Merge branch 'master' into staging
[jackhill/guix/guix.git] / gnu / packages / emacs-xyz.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2014 Taylan Ulrich Bayirli/Kammer <taylanbayirli@gmail.com>
3 ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
4 ;;; Copyright © 2014, 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
5 ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Alex Kost <alezost@gmail.com>
6 ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
7 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
8 ;;; Copyright © 2016, 2017, 2018, 2019 Chris Marusich <cmmarusich@gmail.com>
9 ;;; Copyright © 2015, 2016, 2018, 2020 Christopher Lemmer Webber <cwebber@dustycloud.org>
10 ;;; Copyright © 2016 Adriano Peluso <catonano@gmail.com>
11 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
12 ;;; Copyright © 2016 David Thompson <davet@gnu.org>
13 ;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
14 ;;; Copyright © 2016, 2017 Roel Janssen <roel@gnu.org>
15 ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
16 ;;; Copyright © 2016, 2019 Alex Griffin <a@ajgrf.com>
17 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
18 ;;; Copyright © 2016, 2017, 2018 Alex Vong <alexvong1995@gmail.com>
19 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Arun Isaac <arunisaac@systemreboot.net>
20 ;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
21 ;;; Copyright © 2017, 2018, 2019, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
22 ;;; Copyright © 2017, 2018, 2019, 2020 Clément Lassieur <clement@lassieur.org>
23 ;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
24 ;;; Copyright © 2017, 2018 Kyle Meyer <kyle@kyleam.com>
25 ;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
26 ;;; Copyright © 2017 George Clemmer <myglc2@gmail.com>
27 ;;; Copyright © 2017, 2018 Feng Shu <tumashu@163.com>
28 ;;; Copyright © 2017, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
29 ;;; Copyright © 2017, 2018, 2019, 2020 Oleg Pykhalov <go.wigust@gmail.com>
30 ;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
31 ;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
32 ;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
33 ;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org>
34 ;;; Copyright © 2017, 2018, 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
35 ;;; Copyright © 2018 Sohom Bhattacharjee <soham.bhattacharjee15@gmail.com>
36 ;;; Copyright © 2018, 2019 Mathieu Lirzin <mthl@gnu.org>
37 ;;; Copyright © 2018, 2019, 2020 Pierre Neidhardt <mail@ambrevar.xyz>
38 ;;; Copyright © 2018, 2019, 2020 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
39 ;;; Copyright © 2018, 2019 Jack Hill <jackhill@jackhill.us>
40 ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
41 ;;; Copyright © 2018 Alex Branham <alex.branham@gmail.com>
42 ;;; Copyright © 2018 Thorsten Wilms <t_w_@freenet.de>
43 ;;; Copyright © 2018, 2019, 2020 Pierre Langlois <pierre.langlois@gmx.com>
44 ;;; Copyright © 2018, 2019, 2020 Brett Gilio <brettg@gnu.org>
45 ;;; Copyright © 2019, 2020 Dimakakos Dimos <bendersteed@teknik.io>
46 ;;; Copyright © 2019, 2020 Brian Leung <bkleung89@gmail.com>
47 ;;; Copyright © 2019 mikadoZero <mikadozero@yandex.com>
48 ;;; Copyright © 2019 Gabriel Hondet <gabrielhondet@gmail.com>
49 ;;; Copyright © 2019, 2020 Joseph LaFreniere <joseph@lafreniere.xyz>
50 ;;; Copyright © 2019 Amar Singh <nly@disroot.org>
51 ;;; Copyright © 2019 Baptiste Strazzulla <bstrazzull@hotmail.fr>
52 ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
53 ;;; Copyright © 2019 Jens Mølgaard <jens@zete.tk>
54 ;;; Copyright © 2019, 2020 Amin Bandali <bandali@gnu.org>
55 ;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
56 ;;; Copyright © 2019 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
57 ;;; Copyright © 2019 Stephen Webber <montokapro@gmail.com>
58 ;;; Copyright © 2019 Leo Prikler <leo.prikler@student.tugraz.at>
59 ;;; Copyright © 2019 David Wilson <david@daviwil.com>
60 ;;; Copyright © 2020 Paul Garlick <pgarlick@tourbillion-technology.com>
61 ;;; Copyright © 2020 Robert Smith <robertsmith@posteo.net>
62 ;;; Copyright © 2020 Evan Straw <evan.straw99@gmail.com>
63 ;;; Copyright © 2020 Masaya Tojo <masaya@tojo.tokyo>
64 ;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
65 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
66 ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
67 ;;; Copyright © 2020 6033fe7de85d <6033fe7de85d@airmail.cc>
68 ;;; Copyright © 2020 John Soo <jsoo1@asu.edu>
69 ;;; Copyright © 2020 Jérémy Korwin-Zmijowski <jeremy@korwin-zmijowski.fr>
70 ;;; Copyright © 2020 Alberto Eleuterio Flores Guerrero <barbanegra+guix@posteo.mx>
71 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
72 ;;; Copyright © 2020 pinoaffe <pinoaffe@airmail.cc>
73 ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
74 ;;; Copyright © 2020 Ryan Desfosses <rdes@protonmail.com>
75 ;;; Copyright © 2020 Marcin Karpezo <sirmacik@wioo.waw.pl>
76 ;;; Copyright © 2020 Fredrik Salomonsson <plattfot@gmail.com>
77 ;;; Copyright © 2020 Ryan Desfosses <rdes@protonmail.com>
78 ;;; Copyright © 2020 Eric Bavier <bavier@posteo.net>
79 ;;; Copyright © 2020 Morgan Smith <Morgan.J.Smith@outlook.com>
80 ;;; Copyright © 2020 Peng Mei Yu <i@pengmeiyu.com>
81 ;;; Copyright © 2020 Niklas Eklund <niklas.eklund@posteo.net>
82 ;;; Copyright © 2020 Marco Grassi <marco.au.grassi98@protonmail.com>
83 ;;; Copyright © 2020 Tomás Ortín Fernández <tomasortin@mailbox.org>
84 ;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
85 ;;; Copyright © 2020 Adam Kandur <rndd@tuta.io>
86 ;;; Copyright © 2020 Tim Howes <timhowes@lavabit.com>
87 ;;; Copyright © 2020 Noah Landis <noahlandis@posteo.net>
88 ;;;
89 ;;; This file is part of GNU Guix.
90 ;;;
91 ;;; GNU Guix is free software; you can redistribute it and/or modify it
92 ;;; under the terms of the GNU General Public License as published by
93 ;;; the Free Software Foundation; either version 3 of the License, or (at
94 ;;; your option) any later version.
95 ;;;
96 ;;; GNU Guix is distributed in the hope that it will be useful, but
97 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
98 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
99 ;;; GNU General Public License for more details.
100 ;;;
101 ;;; You should have received a copy of the GNU General Public License
102 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
103
104 (define-module (gnu packages emacs-xyz)
105 #:use-module ((guix licenses) #:prefix license:)
106 #:use-module (guix packages)
107 #:use-module (guix cvs-download)
108 #:use-module (guix download)
109 #:use-module (guix bzr-download)
110 #:use-module (guix git-download)
111 #:use-module (guix hg-download)
112 #:use-module (guix build-system gnu)
113 #:use-module (guix build-system cmake)
114 #:use-module (guix build-system emacs)
115 #:use-module (guix build-system glib-or-gtk)
116 #:use-module (guix build-system perl)
117 #:use-module (guix build-system trivial)
118 #:use-module (gnu packages)
119 #:use-module (gnu packages admin)
120 #:use-module (gnu packages audio)
121 #:use-module (gnu packages bash)
122 #:use-module (gnu packages cmake)
123 #:use-module (gnu packages code)
124 #:use-module (gnu packages cpp)
125 #:use-module (gnu packages curl)
126 #:use-module (gnu packages databases)
127 #:use-module (gnu packages dictionaries)
128 #:use-module (gnu packages djvu)
129 #:use-module (gnu packages emacs)
130 #:use-module (gnu packages guile)
131 #:use-module (gnu packages gtk)
132 #:use-module (gnu packages gnome)
133 #:use-module (gnu packages haskell-apps)
134 #:use-module (gnu packages ibus)
135 #:use-module (gnu packages ncurses)
136 #:use-module (gnu packages python)
137 #:use-module (gnu packages python-xyz)
138 #:use-module (gnu packages telephony)
139 #:use-module (gnu packages terminals)
140 #:use-module (gnu packages tex)
141 #:use-module (gnu packages texinfo)
142 #:use-module (gnu packages tcl)
143 #:use-module (gnu packages tls)
144 #:use-module (gnu packages pkg-config)
145 #:use-module (gnu packages xorg)
146 #:use-module (gnu packages lesstif)
147 #:use-module (gnu packages llvm)
148 #:use-module (gnu packages image)
149 #:use-module (gnu packages linux)
150 #:use-module (gnu packages libevent)
151 #:use-module (gnu packages lua)
152 #:use-module (gnu packages music)
153 #:use-module (gnu packages version-control)
154 #:use-module (gnu packages imagemagick)
155 #:use-module (gnu packages w3m)
156 #:use-module (gnu packages web)
157 #:use-module (gnu packages wget)
158 #:use-module (gnu packages autotools)
159 #:use-module (gnu packages base)
160 #:use-module (gnu packages compression)
161 #:use-module (gnu packages node)
162 #:use-module (gnu packages xml)
163 #:use-module (gnu packages glib)
164 #:use-module (gnu packages acl)
165 #:use-module (gnu packages mail)
166 #:use-module (gnu packages messaging)
167 #:use-module (gnu packages package-management)
168 #:use-module (gnu packages perl)
169 #:use-module (gnu packages pdf)
170 #:use-module (gnu packages ruby)
171 #:use-module (gnu packages rust-apps)
172 #:use-module (gnu packages scheme)
173 #:use-module (gnu packages speech)
174 #:use-module (gnu packages xiph)
175 #:use-module (gnu packages mp3)
176 #:use-module (gnu packages gettext)
177 #:use-module (gnu packages fribidi)
178 #:use-module (gnu packages gd)
179 #:use-module (gnu packages fontutils)
180 #:use-module (gnu packages password-utils)
181 #:use-module (gnu packages pulseaudio)
182 #:use-module (gnu packages sphinx)
183 #:use-module (gnu packages xdisorg)
184 #:use-module (gnu packages shells)
185 #:use-module (gnu packages sqlite)
186 #:use-module (gnu packages ghostscript)
187 #:use-module (gnu packages gnupg)
188 #:use-module (gnu packages video)
189 #:use-module (gnu packages haskell-xyz)
190 #:use-module (gnu packages wordnet)
191 #:use-module (gnu packages photo)
192 #:use-module (gnu packages uml)
193 #:use-module (gnu packages finance)
194 #:use-module (guix utils)
195 #:use-module (srfi srfi-1)
196 #:use-module (ice-9 match))
197
198 ;;;
199 ;;; Emacs hacking.
200 ;;;
201
202 (define-public emacs-geiser
203 (package
204 (name "emacs-geiser")
205 (version "0.12")
206 (source
207 (origin
208 (method git-fetch)
209 (uri (git-reference
210 (url "https://gitlab.com/jaor/geiser/")
211 (commit version)))
212 (file-name (git-file-name name version))
213 (sha256
214 (base32 "0n718xpys7v94zaf9lpmsx97qgn6qxif1acr718wyvpmfr4hiv08"))))
215 (build-system gnu-build-system)
216 (arguments
217 '(#:phases
218 (modify-phases %standard-phases
219 (add-after 'install 'post-install
220 (lambda* (#:key outputs #:allow-other-keys)
221 (symlink "geiser-install.el"
222 (string-append (assoc-ref outputs "out")
223 "/share/emacs/site-lisp/"
224 "geiser-autoloads.el"))
225 #t)))))
226 (inputs
227 `(("guile" ,guile-2.2)))
228 (native-inputs
229 `(("emacs" ,emacs-minimal)
230 ("autoconf" ,autoconf)
231 ("automake" ,automake)
232 ("texinfo" ,texinfo)))
233 (home-page "https://nongnu.org/geiser/")
234 (synopsis "Collection of Emacs modes for Guile and Racket hacking")
235 (description
236 "Geiser is a collection of Emacs major and minor modes that conspire with
237 one or more Scheme implementations to keep the Lisp Machine Spirit alive. The
238 continuously running Scheme interpreter takes the center of the stage in
239 Geiser. A bundle of Elisp shims orchestrates the dialog between the Scheme
240 implementation, Emacs and, ultimately, the schemer, giving them access to live
241 metadata.")
242 (license license:bsd-3)))
243
244 (define-public emacs-ac-geiser
245 (let ((commit "93818c936ee7e2f1ba1b315578bde363a7d43d05")
246 (revision "0"))
247 (package
248 (name "emacs-ac-geiser")
249 (version (git-version "0.1" revision commit))
250 (source
251 (origin
252 (uri (git-reference
253 (url "https://github.com/xiaohanyu/ac-geiser")
254 (commit commit)))
255 (method git-fetch)
256 (sha256
257 (base32 "00n2qa26yilaj837n1yp6lbqa4gf30nkkbvanl7m9ih7k48ssqmw"))
258 (file-name (git-file-name name version))))
259 (build-system emacs-build-system)
260 (propagated-inputs
261 `(("geiser" ,emacs-geiser)
262 ("auto-complete" ,emacs-auto-complete)))
263 (synopsis "Auto-complete backend for geiser")
264 (description
265 "This package provides an auto-complete source for Scheme projects
266 using geiser.")
267 (license license:bsd-3)
268 (home-page "https://github.com/xiaohanyu/ac-geiser"))))
269
270 (define-public emacs-hyperbole
271 (package
272 (name "emacs-hyperbole")
273 (version "7.1.3")
274 (source
275 (origin
276 (method url-fetch)
277 (uri (string-append "https://elpa.gnu.org/packages/"
278 "hyperbole-" version ".tar"))
279 (sha256
280 (base32 "0bizibn4qgxqp89fyik6p47s9hss1g932mg8k7pznn3kkhj5c8rh"))
281 (patches
282 (search-patches "emacs-hyperbole-toggle-messaging.patch"))))
283 (build-system emacs-build-system)
284 (arguments
285 `(#:include '("DEMO"
286 "DEMO-ROLO.otl"
287 "HY-ABOUT"
288 "\\.el$"
289 "\\.info$"
290 "\\.kotl$")
291 #:phases
292 (modify-phases %standard-phases
293 ;; Fix build issues about missing "domainname" and "hpmap:dir-user"
294 ;; parent dir.
295 (add-after 'unpack 'fix-build
296 (lambda* (#:key inputs #:allow-other-keys)
297 (substitute* "hypb.el"
298 (("/bin/domainname")
299 (string-append (assoc-ref inputs "inetutils")
300 "/bin/dnsdomainname")))
301 (substitute* "hyperbole.el"
302 (("\\(hyperb:check-dir-user\\)") ""))
303 #t)))))
304 (inputs
305 `(("inetutils" ,inetutils)))
306 (home-page "https://www.gnu.org/software/hyperbole/")
307 (synopsis "The Everyday Hypertextual Information Manager")
308 (description
309 "GNU Hyperbole, or just Hyperbole, is an easy-to-use, yet powerful and
310 programmable hypertextual information management system implemented as a GNU
311 Emacs package. It offers rapid views and interlinking of all kinds of textual
312 information, utilizing Emacs for editing. It can dramatically increase your
313 productivity and greatly reduce the number of keyboard/mouse keys you'll need
314 to work efficiently. Hyperbole lets you:
315
316 @itemize
317 @item Quickly create hyperlink buttons either from the keyboard or by dragging
318 between a source and destination window with a mouse button depressed. Later,
319 activate buttons by pressing/clicking on them or by giving the name of the
320 button.
321 @item Activate many kinds of \"implicit buttons\" recognized by context within
322 text buffers, e.g. URLs, grep output lines, and git commits. A single key or
323 mouse button automatically does the right thing in dozens of contexts; just
324 press and go.
325 @item Build outlines with multi-level numbered outline nodes, e.g. 1.4.8.6,
326 that all renumber automatically as any node or tree is moved in the outline.
327 Each node also has a permanent hyperlink anchor that you can reference from
328 any other node.
329 @item Manage all your contacts quickly with hierarchical categories and embed
330 hyperlinks within each entry. Or create an archive of documents with
331 hierarchical entries and use the same search mechanism to quickly find any
332 matching entry.
333 @item Use single keys to easily manage your Emacs windows or frames and
334 quickly retrieve saved window and frame configurations.
335 @item Search for things in your current buffers, in a directory tree or across
336 major web search engines with the touch of a few keys.
337 @end itemize
338
339 The common thread in all these features is making retrieval, management and
340 display of information fast and easy. That is Hyperbole's purpose.")
341 (license license:gpl3+)))
342
343 (define-public emacs-paredit
344 (package
345 (name "emacs-paredit")
346 (version "24")
347 (source (origin
348 (method url-fetch)
349 (uri (string-append "http://mumble.net/~campbell/emacs/paredit-"
350 version ".el"))
351 (sha256
352 (base32
353 "0pp3n8q6kc70blqsaw0zlzp6bc327dpgdrjr0cnh7hqg1lras7ka"))))
354 (build-system emacs-build-system)
355 (home-page "http://mumble.net/~campbell/emacs/paredit/")
356 (synopsis "Emacs minor mode for editing parentheses")
357 (description
358 "ParEdit (paredit.el) is a minor mode for performing structured editing
359 of S-expression data. The typical example of this would be Lisp or Scheme
360 source code.
361
362 ParEdit helps **keep parentheses balanced** and adds many keys for moving
363 S-expressions and moving around in S-expressions. Its behavior can be jarring
364 for those who may want transient periods of unbalanced parentheses, such as
365 when typing parentheses directly or commenting out code line by line.")
366 (license license:gpl3+)))
367
368 (define-public git-modes
369 (package
370 (name "emacs-git-modes")
371 (version "1.2.8")
372 (source (origin
373 (method git-fetch)
374 (uri (git-reference
375 (url "https://github.com/magit/git-modes")
376 (commit version)))
377 (file-name (git-file-name name version))
378 (sha256
379 (base32
380 "08hy7rbfazs6grkpk54i82bz0i0c74zcjk96cip8970h6jn3mj72"))))
381 (build-system emacs-build-system)
382 (home-page "https://github.com/magit/git-modes")
383 (synopsis "Emacs major modes for Git configuration files")
384 (description
385 "This package provides Emacs major modes for editing various Git
386 configuration files, such as .gitattributes, .gitignore, and .git/config.")
387 (license license:gpl3+)))
388
389 (define-public emacs-with-editor
390 ;; This commit fixes an (magit) issue with emacs 28, see
391 ;; https://lists.gnu.org/archive/html/help-gnu-emacs/2020-10/msg00211.html
392 (let ((commit "c4768f51c7415119519b4626d8643d60e584098c")
393 (revision "1"))
394 (package
395 (name "emacs-with-editor")
396 (version (git-version "2.9.4" revision commit))
397 (source
398 (origin
399 (method git-fetch)
400 (uri (git-reference
401 (url "https://github.com/magit/with-editor")
402 (commit commit)))
403 (file-name (git-file-name name version))
404 (sha256
405 (base32 "01ysb9pnscpmingay6njdywkqgj4hn5l5d9igsg3x7p7061jwwix"))))
406 (build-system emacs-build-system)
407 (arguments
408 `(#:phases
409 (modify-phases %standard-phases
410 (add-before 'install 'make-info
411 (lambda _
412 (invoke "makeinfo" "--no-split"
413 "-o" "with-editor.info" "with-editor.texi"))))))
414 (native-inputs
415 `(("texinfo" ,texinfo)))
416 (propagated-inputs
417 `(("emacs-dash" ,emacs-dash)))
418 (home-page "https://github.com/magit/with-editor")
419 (synopsis "Emacs library for using Emacsclient as EDITOR")
420 (description
421 "This package provides an Emacs library to use the Emacsclient as
422 @code{$EDITOR} of child processes, making sure they know how to call home.
423 For remote processes a substitute is provided, which communicates with Emacs
424 on stdout instead of using a socket as the Emacsclient does.")
425 (license license:gpl3+))))
426
427 (define-public emacs-libgit
428 (let ((commit "0ef8b13aef011a98b7da756e4f1ce3bb18e4d55a")
429 (revision "1"))
430 (package
431 (name "emacs-libgit")
432 (version (git-version "20200515" revision commit))
433 (source (origin
434 (method git-fetch)
435 (uri (git-reference
436 (url "https://github.com/magit/libegit2")
437 (commit commit)))
438 (file-name (git-file-name name version))
439 (sha256
440 (base32
441 "0pnjr3bg6y6354dfjjxfj0g51swzgl1fncpprah75x4k94rd369f"))
442 (patches (search-patches
443 ;; Submitted for inclusion upstream (see:
444 ;; https://github.com/magit/libegit2/pull/96).
445 "emacs-libgit-use-system-libgit2.patch"))))
446 ;; Use the cmake-build-system as it provides support for cross builds.
447 (build-system cmake-build-system)
448 (arguments
449 `(#:configure-flags '("-DUSE_SYSTEM_LIBGIT2=x")
450 ;; Add the emacs-build-system byte compilation and install phases.
451 #:imported-modules (,@%cmake-build-system-modules
452 (guix build emacs-build-system)
453 (guix build emacs-utils))
454 #:modules ((guix build cmake-build-system)
455 ((guix build emacs-build-system) #:prefix emacs:)
456 (guix build emacs-utils)
457 (guix build utils))
458 #:phases
459 (modify-phases %standard-phases
460 (add-after 'unpack 'set-libgit--module-file
461 (lambda* (#:key outputs #:allow-other-keys)
462 (let ((out (assoc-ref outputs "out")))
463 (make-file-writable "libgit.el")
464 (emacs-substitute-variables "libgit.el"
465 ("libgit--module-file"
466 (string-append out "/share/emacs/site-lisp/libegit2.so")))
467 #t)))
468 (add-before 'install 'prepare-for-install
469 (lambda _
470 (let ((s (string-append "../" ,name "-" ,version "-checkout")))
471 (copy-file "libegit2.so" (string-append s "/libegit2.so"))
472 (chdir s)
473 #t)))
474 (replace 'install
475 (lambda* (#:key outputs #:allow-other-keys)
476 (let ((install (assoc-ref emacs:%standard-phases 'install)))
477 (install #:outputs outputs
478 #:include (cons "\\.so$"
479 emacs:%default-include)))))
480 (add-after 'install 'make-autoloads
481 (assoc-ref emacs:%standard-phases 'make-autoloads))
482 (add-after 'make-autoloads 'enable-autoloads-compilation
483 (assoc-ref emacs:%standard-phases 'enable-autoloads-compilation))
484 (add-after 'enable-autoloads-compilation 'patch-el-files
485 (assoc-ref emacs:%standard-phases 'patch-el-files))
486 (add-after 'patch-el-files 'emacs-build
487 (assoc-ref emacs:%standard-phases 'build))
488 (add-after 'emacs-build 'validate-compiled-autoloads
489 (assoc-ref emacs:%standard-phases 'validate-compiled-autoloads)))))
490 (native-inputs
491 `(("pkg-config" ,pkg-config)
492 ("emacs" ,emacs-no-x)
493 ("git" ,git-minimal)))
494 (inputs
495 `(("libgit2" ,libgit2)))
496 (home-page "https://github.com/magit/libegit2")
497 (synopsis "Emacs bindings for libgit2")
498 (description "This is an experimental module written in C providing
499 libgit2 bindings for Emacs, intended to boost the performance of Magit.")
500 ;; The LICENSE file says GPL v2+, but libgit.el says GPL v3+.
501 (license license:gpl3+))))
502
503 (define-public emacs-magit
504 ;; There hasn't been an official release since 2018-11-16.
505 (let ((commit "7f486d47fe7042edba8d9a855a4c2c301a30bc6b")
506 (revision "6"))
507 (package
508 (name "emacs-magit")
509 (version (git-version "2.90.1" revision commit))
510 (source
511 (origin
512 (method git-fetch)
513 (uri (git-reference
514 (url "https://github.com/magit/magit")
515 (commit commit)))
516 (file-name (git-file-name name version))
517 (sha256
518 (base32 "05kyc5y5wa1p3h8j7mbgvfc4zcj998zi26lnnmksj9wnvahzxfms"))))
519 (build-system emacs-build-system)
520 (arguments
521 `(#:emacs ,emacs-no-x ;module support is required
522 #:tests? #t
523 #:test-command '("make" "test")
524 #:phases
525 (modify-phases %standard-phases
526 (add-after 'unpack 'build-info-manual
527 (lambda _
528 (invoke "make" "info")
529 ;; Copy info files to the lisp directory, which acts as
530 ;; the root of the project for the emacs-build-system.
531 (for-each (lambda (f)
532 (install-file f "lisp"))
533 (find-files "Documentation" "\\.info$"))
534 (chdir "lisp")
535 #t))
536 (add-after 'build-info-manual 'set-magit-version
537 (lambda _
538 (make-file-writable "magit.el")
539 (emacs-substitute-variables "magit.el"
540 ("magit-version" ,version))
541 #t))
542 (add-after 'set-magit-version 'patch-exec-paths
543 (lambda* (#:key inputs #:allow-other-keys)
544 (let ((perl (assoc-ref inputs "perl")))
545 (make-file-writable "magit-sequence.el")
546 (emacs-substitute-variables "magit-sequence.el"
547 ("magit-perl-executable" (string-append perl "/bin/perl")))
548 #t)))
549 (add-before 'check 'configure-git
550 (lambda _
551 ;; Otherwise some tests fail with error "unable to auto-detect
552 ;; email address".
553 (setenv "HOME" (getcwd))
554 (invoke "git" "config" "--global" "user.name" "toto")
555 (invoke "git" "config" "--global" "user.email"
556 "toto@toto.com")))
557 (add-after 'configure-git 'disable-tramp-test
558 (lambda _
559 ;; There is an issue causing TRAMP to fail in the build
560 ;; environment. Setting the tramp-remote-shell parameter of
561 ;; the sudo-method to the file name of the shell didn't help.
562 (chdir "..")
563 (substitute* "t/magit-tests.el"
564 (("^\\(ert-deftest magit-toplevel:tramp.*" all)
565 (string-append all " (skip-unless nil)")))
566 #t))
567 (add-before 'install 'enter-lisp-directory
568 (lambda _
569 (chdir "lisp")
570 #t)))))
571 (native-inputs
572 `(("texinfo" ,texinfo)))
573 (inputs
574 `(("git" ,git)
575 ("perl" ,perl)))
576 (propagated-inputs
577 `(("emacs-dash" ,emacs-dash)
578 ("emacs-libgit" ,emacs-libgit)
579 ("emacs-transient" ,emacs-transient)
580 ("emacs-with-editor" ,emacs-with-editor)))
581 (home-page "https://magit.vc/")
582 (synopsis "Emacs interface for the Git version control system")
583 (description
584 "With Magit, you can inspect and modify your Git repositories
585 with Emacs. You can review and commit the changes you have made to
586 the tracked files, for example, and you can browse the history of past
587 changes. There is support for cherry picking, reverting, merging,
588 rebasing, and other common Git operations.")
589 (license license:gpl3+))))
590
591 (define-public emacs-magit-svn
592 (let ((commit "9e33ceee32f665db59909e1c00a667ccdd04178f"))
593 (package
594 (name "emacs-magit-svn")
595 (version (git-version "2.2.1" "2" commit))
596 (source (origin
597 (method git-fetch)
598 (uri (git-reference
599 (url "https://github.com/magit/magit-svn")
600 (commit commit)))
601 (file-name (git-file-name name version))
602 (sha256
603 (base32
604 "1mlqz8dh6jy5rv72lgkxv253dgh73fmbaidskicypapvbl3lr6xy"))))
605 (build-system emacs-build-system)
606 (propagated-inputs `(("dash" ,emacs-dash)
607 ("with-editor" ,emacs-with-editor)
608 ("magit" ,emacs-magit)
609 ("transient" ,emacs-transient)))
610 (home-page "https://github.com/magit/magit-svn")
611 (synopsis "Git-SVN extension to Magit")
612 (description
613 "This package is an extension to Magit, the Git Emacs mode, providing
614 support for Git-SVN.")
615 (license license:gpl3+))))
616
617 (define-public emacs-magit-popup
618 (package
619 (name "emacs-magit-popup")
620 (version "2.13.3")
621 (source
622 (origin
623 (method git-fetch)
624 (uri (git-reference
625 (url "https://github.com/magit/magit-popup")
626 (commit (string-append "v" version))))
627 (file-name (git-file-name name version))
628 (sha256
629 (base32 "0znp6gx6vpcsybg774ab06mdgxb7sfk3gki1yp2qhkanav13i6q1"))))
630 (build-system emacs-build-system)
631 (arguments
632 `(#:phases
633 (modify-phases %standard-phases
634 (add-before 'install 'make-info
635 (lambda _
636 (invoke "make" "info"))))))
637 (native-inputs
638 `(("texinfo" ,texinfo)))
639 (propagated-inputs
640 `(("emacs-dash" ,emacs-dash)))
641 (home-page "https://github.com/magit/magit-popup")
642 (synopsis "Define prefix-infix-suffix command combos")
643 (description
644 "This library implements a generic interface for toggling switches and
645 setting options and then invoking an Emacs command which does something with
646 these arguments. The prototypical use is for the command to call an external
647 process, passing on the arguments as command line arguments.")
648 (license license:gpl3+)))
649
650 (define-public emacs-magit-annex
651 (let ((commit "ef5dce6267e9118a5eca82a22bcad0b67826c23a")
652 (revision "1"))
653 (package
654 (name "emacs-magit-annex")
655 (version (git-version "1.7.1" revision commit))
656 (source (origin
657 (method git-fetch)
658 (uri (git-reference
659 (url "https://github.com/magit/magit-annex")
660 (commit commit)))
661 (file-name (git-file-name name version))
662 (sha256
663 (base32
664 "0vzkydgl889cq173zjl89g2vrddb9abc4a8gljiz3b4a7n5b1nrd"))))
665 (build-system emacs-build-system)
666 (propagated-inputs
667 `(("magit" ,emacs-magit)
668 ("transient" ,emacs-transient)))
669 (home-page "https://github.com/magit/magit-annex/")
670 (synopsis "Git-annex support for Magit")
671 (description
672 "Magit-annex adds a few git-annex operations to the Magit interface.")
673 (license license:gpl3+))))
674
675 (define-public emacs-minions
676 (package
677 (name "emacs-minions")
678 (version "0.3.4")
679 (source
680 (origin
681 (method git-fetch)
682 (uri (git-reference
683 (url "https://github.com/tarsius/minions")
684 (commit (string-append "v" version))))
685 (file-name (git-file-name name version))
686 (sha256
687 (base32 "1rvsfg9aabvyzzxd38kvjwkm9675zcmrfhzj5x6wj0ba3n0k34q5"))))
688 (build-system emacs-build-system)
689 (propagated-inputs
690 `(("emacs-dash" ,emacs-dash)))
691 (home-page "https://github.com/tarsius/minions")
692 (synopsis "Minor-mode menu for the mode line")
693 (description
694 "This package implements a menu that lists enabled minor-modes, as well
695 as commonly but not currently enabled minor-modes. It can be used to toggle
696 local and global minor-modes, to access mode-specific menus, and to get help
697 about modes.
698
699 This menu is intended as a replacement for the incomplete yet wide list of
700 enabled minor-modes that is displayed in the mode line by default. To use the
701 menu like this, enable Minions mode.
702
703 Alternatively the menu can be bound globally, for example:
704 @code{(global-set-key [S-down-mouse-3] 'minions-minor-modes-menu)}.")
705 (license license:gpl3+)))
706
707 (define-public emacs-moody
708 (package
709 (name "emacs-moody")
710 (version "0.5.3")
711 (source (origin
712 (method git-fetch)
713 (uri (git-reference
714 (url "https://github.com/tarsius/moody")
715 (commit (string-append "v" version))))
716 (file-name (git-file-name name version))
717 (sha256
718 (base32
719 "1xyw4l42053595r76lj8safsx6pj25as0107wd96by3h7dg9m586"))))
720 (build-system emacs-build-system)
721 (home-page "https://github.com/tarsius/moody")
722 (synopsis "Tabs and ribbons for Emacs mode-line")
723 (description
724 "@code{emacs-moody} provides utilities for displaying elements of
725 the mode line as tabs and ribbons. It also provides replacements for a few
726 built-in elements. The biggest difference to similar packages is that
727 this one is much simpler and much more consistent. When using this package,
728 then only the color of the mode line changes when a window becomes in-/active.")
729 (license license:gpl3+)))
730
731 (define-public emacs-treepy
732 (package
733 (name "emacs-treepy")
734 (version "0.1.2")
735 (source (origin
736 (method git-fetch)
737 (uri (git-reference
738 (url "https://github.com/volrath/treepy.el")
739 (commit version)))
740 (file-name (git-file-name name version))
741 (sha256
742 (base32
743 "0pmrpij80m5kgcr8bw36r8wllgppasw08vn3ghwvis9srpaq75cn"))))
744 (build-system emacs-build-system)
745 (home-page
746 "https://github.com/volrath/treepy.el")
747 (synopsis "Tree traversal tools")
748 (description
749 "Generic tools for recursive and iterative tree traversal based on
750 clojure.walk and clojure.zip respectively.")
751 (license license:gpl3+)))
752
753 (define-public emacs-typing
754 (let ((commit "a2ef25dde2d8eb91bd9c0c6164cb5208208647fa")
755 (revision "0"))
756 (package
757 (name "emacs-typing")
758 (version (git-version "1.1.4" revision commit))
759 (source
760 (origin
761 (method git-fetch)
762 (uri (git-reference
763 (url "https://github.com/kensanata/typing")
764 (commit commit)))
765 (file-name (git-file-name name version))
766 (sha256
767 (base32
768 "1dbh0srbf54lgd60ia79y9cfnq3kxlgw01qzdjs9mk3nfazzpgnv"))))
769 (build-system emacs-build-system)
770 (home-page "https://github.com/kensanata/typing/")
771 (synopsis "Emacs game where you have to type fast")
772 (description "The Typing of Emacs is a game for Emacs that
773 forces you to type words correctly as fast as possible, otherwise
774 you will die. The game builds the list of words from the active buffer.")
775 (license license:gpl2+))))
776
777 (define-public emacs-graphql
778 (package
779 (name "emacs-graphql")
780 (version "0.1.1")
781 (source (origin
782 (modules '((guix build utils)))
783 ;; Remove examples file with references to external packages as
784 ;; they do not exist at compilation time.
785 (snippet
786 '(begin (delete-file "examples.el")
787 #t))
788 (method git-fetch)
789 (uri (git-reference
790 (url "https://github.com/vermiculus/graphql.el")
791 (commit version)))
792 (file-name (git-file-name name version))
793 (sha256
794 (base32
795 "0sp0skc1rnhi39szfbq1i99pdgd3bhn4c15cff05iqhjy2d4hniw"))))
796 (build-system emacs-build-system)
797 (home-page
798 "https://github.com/vermiculus/graphql.el")
799 (synopsis "GraphQL utilities")
800 (description
801 "GraphQL.el provides a generally-applicable domain-specific language for
802 creating and executing GraphQL queries against your favorite web services.
803 GraphQL is a data query language and runtime designed and used to request and
804 deliver data to mobile and web apps.")
805 (license license:gpl3+)))
806
807 (define-public emacs-graphql-mode
808 ;; No tagged commit.
809 (let ((commit "9bed568ec86242dbe30bdbab324aa0eb2cd9bf08")
810 (revision "1"))
811 (package
812 (name "emacs-graphql-mode")
813 (version commit)
814 (source
815 (origin
816 (method git-fetch)
817 (uri (git-reference
818 (url "https://github.com/davazp/graphql-mode")
819 (commit commit)))
820 (file-name (git-file-name name version))
821 (sha256
822 (base32 "0x9y7qq6y0zg8ncamzvk68ccmdyzh7xsj0xs0ykyl20d5wdpplj4"))))
823 (build-system emacs-build-system)
824 (home-page "https://github.com/davazp/graphql-mode")
825 (synopsis "Emacs mode to edit GraphQL schema and queries")
826 (description
827 "This package implements a major mode to edit GraphQL schemas and
828 query. The basic functionality includes syntax highlight and indentation.
829 Additionally, it is able to send GraphQL queries to an end-point URL.
830
831 Files with the @file{.graphql} and @file{.gql} extensions are
832 automatically opened with this mode.")
833 (license license:gpl3+))))
834
835 (define-public emacs-ghub
836 (package
837 (name "emacs-ghub")
838 (version "3.4.1")
839 (source
840 (origin
841 (method git-fetch)
842 (uri (git-reference
843 (url "https://github.com/magit/ghub")
844 (commit (string-append "v" version))))
845 (file-name (git-file-name name version))
846 (sha256
847 (base32 "07iy4203ppvzkh67sb0v968hnypnvy4dpfy0qpqrp8zmc455dxq5"))))
848 (build-system emacs-build-system)
849 (arguments
850 `(#:phases
851 (modify-phases %standard-phases
852 (add-before 'install 'make-info
853 (lambda _
854 (invoke "make" "info"))))))
855 (native-inputs
856 `(("texinfo" ,texinfo)))
857 (propagated-inputs
858 `(("dash" ,emacs-dash)
859 ("emacs-let-alist" ,emacs-let-alist)
860 ("treepy" ,emacs-treepy)))
861 (home-page "https://github.com/magit/ghub")
862 (synopsis "Emacs client libraries for the APIs of various Git forges")
863 (description
864 "Ghub provides basic support for using the APIs of various Git forges from
865 Emacs packages. It supports the REST APIs of Github, Github GraphQL, Gitlab,
866 Gitea, Gogs and Bitbucket. It abstracts access to API resources using only a
867 handful of functions that are not resource-specific.")
868 (license license:gpl3+)))
869
870 (define-public emacs-typit
871 ;; Last release is from 2017.
872 (let ((commit "231cb7df43253b84323520b8ed70f128d37003af")
873 (revision "1"))
874 (package
875 (name "emacs-typit")
876 (version (git-version "0.2.1" revision commit))
877 (source
878 (origin
879 (method git-fetch)
880 (uri (git-reference
881 (url "https://github.com/mrkkrp/typit")
882 (commit commit)))
883 (file-name (git-file-name name version))
884 (sha256
885 (base32 "1savrxs7xl92ifyxpxkkzv2didr7lb405h0dwz1bs1wldr5fb53f"))))
886 (build-system emacs-build-system)
887 (arguments
888 `(#:phases
889 (modify-phases %standard-phases
890 (add-after 'install 'install-dictionaries
891 (lambda* (#:key outputs #:allow-other-keys)
892 (let* ((out (assoc-ref outputs "out"))
893 (site-lisp
894 (string-append
895 out "/share/emacs/site-lisp/dict")))
896 (mkdir-p site-lisp)
897 (copy-recursively "dict" site-lisp)
898 #t))))))
899 (propagated-inputs
900 `(("emacs-f" ,emacs-f)
901 ("emacs-mmt" ,emacs-mmt)))
902 (home-page "https://github.com/mrkkrp/typit")
903 (synopsis "Typing game for Emacs with two difficulties")
904 (description "Emacs Typit is a typing game for Emacs. Words that are
905 picked randomly from the most frequent words in language you're practicing,
906 until time is up.")
907 (license license:gpl3+))))
908
909 (define-public emacs-scribble-mode
910 (let ((commit "217945d54de5e4bb207033f2116baa28f5c5ecf2")
911 (revision "2"))
912 (package
913 (name "emacs-scribble-mode")
914 (version (git-version "0.1" revision commit))
915 (source (origin
916 (method git-fetch)
917 (uri (git-reference
918 (url "https://github.com/emacs-pe/scribble-mode")
919 (commit commit)))
920 (file-name (git-file-name name version))
921 (sha256
922 (base32
923 "1s5ccw1a5ack01wd94ywfcrar9j98agchwdh30q7iyxr0d2z4sii"))))
924 (build-system emacs-build-system)
925 (home-page "https://github.com/emacs-pe/scribble-mode")
926 (synopsis "Emacs mode for editing the Scribble documentation syntax.")
927 (description
928 "This package provides basic syntax highlighting and editing support
929 for editing Racket's Scribble documentation syntax in Emacs.")
930 (license license:gpl3+))))
931
932 (define-public emacs-shroud
933 (package
934 (name "emacs-shroud")
935 (version "1.105")
936 (source
937 (origin
938 (method git-fetch)
939 (uri (git-reference
940 (url "https://git.savannah.gnu.org/git/emacs-shroud.git")
941 (commit version)))
942 (file-name (git-file-name name version))
943 (sha256
944 (base32 "0q2pb3w8s833fjhkzicciw2php4lsnismad1dnwgp2lcway757ra"))))
945 (build-system gnu-build-system)
946 (native-inputs
947 `(("autoconf" ,autoconf)
948 ("automake" ,automake)
949 ("texinfo" ,texinfo)
950 ("perl" ,perl)
951 ("emacs-minimal" ,emacs-minimal)))
952 (propagated-inputs
953 `(("emacs-bui" ,emacs-bui)
954 ("emacs-dash" ,emacs-dash)
955 ("emacs-f" ,emacs-f)
956 ("emacs-s" ,emacs-s)
957 ("gnupg" ,gnupg)
958 ("shroud" ,shroud)))
959 (home-page "https://www.nongnu.org/emacs-shroud")
960 (synopsis "Emacs interface to the Shroud password manager")
961 (description
962 "This package provides an Emacs interface to the Shroud password manager,
963 using the Buffers User Interface library. You can view, copy, and edit secrets
964 from within Emacs.")
965 (license license:gpl3+)))
966
967 (define-public emacs-solidity
968 ;; This commit fixes a spacing issue and adds new keywords.
969 (let ((commit "d166a86b83907e0cfd64c191e9dfce4b44a9843e")
970 (revision "0"))
971 (package
972 (name "emacs-solidity")
973 (version (git-version "0.1.10" revision commit))
974 (source
975 (origin
976 (method git-fetch)
977 (uri (git-reference
978 (url "https://github.com/ethereum/emacs-solidity")
979 (commit commit)))
980 (file-name (git-file-name name version))
981 (sha256
982 (base32 "19hgvsrqch2vp49ag6m76bi5qxd20v95z0ib838rib9as15b17wq"))))
983 (build-system emacs-build-system)
984 (propagated-inputs
985 `(("emacs-company" ,emacs-company)
986 ("emacs-flycheck" ,emacs-flycheck)))
987 (home-page "https://github.com/ethereum/emacs-solidity")
988 (synopsis "Major mode for writing Solidity code")
989 (description
990 "This is a simple language mode for the Solidity language. It is
991 a constant work in progress as the language itself also progresses.")
992 (license license:gpl3+))))
993
994 (define-public emacs-unpackaged-el
995 (let ((commit "746801a677ada6cd6fa076e423aa0953779f3fad")
996 (revision "3"))
997 (package
998 (name "emacs-unpackaged-el")
999 (version (git-version "0" revision commit))
1000 (source
1001 (origin
1002 (method git-fetch)
1003 (uri (git-reference
1004 (url "https://github.com/alphapapa/unpackaged.el")
1005 (commit commit)))
1006 (file-name (git-file-name name version))
1007 (sha256
1008 (base32
1009 "0jvb2ci0h0lj368qhbff3pzkxj3nhlligpbkjzi525k9rkjgm7l8"))))
1010 (build-system emacs-build-system)
1011 (propagated-inputs
1012 `(("emacs-dash" ,emacs-dash)
1013 ("emacs-org" ,emacs-org)
1014 ("emacs-s" ,emacs-s)
1015 ("emacs-hydra" ,emacs-hydra)
1016 ("emacs-use-package" ,emacs-use-package)))
1017 (arguments
1018 `(#:phases
1019 (modify-phases %standard-phases
1020 (add-after 'unpack 'require-hydra
1021 (lambda _
1022 (substitute* "unpackaged.el"
1023 ((";;; Code:") ";;; Code:\n(require 'hydra)"))
1024 #t)))))
1025 (home-page "https://github.com/alphapapa/unpackaged.el")
1026 (synopsis "Useful snippets of Emacs Lisp code")
1027 (description "This package provides Emacs Lisp utilities for a variety
1028 of tasks, including version control, task management, and regex-based
1029 replacement.")
1030 (license license:gpl3+))))
1031
1032 (define-public emacs-haskell-mode
1033 (package
1034 (name "emacs-haskell-mode")
1035 (version "17.2")
1036 (source
1037 (origin
1038 (method git-fetch)
1039 (uri (git-reference
1040 (url "https://github.com/haskell/haskell-mode")
1041 (commit version)))
1042 (file-name (git-file-name name version))
1043 (sha256
1044 (base32 "0zxbacqzr84krmhqpvzndnvlcjh1gs1x20ys0dykgd7chyhci5j5"))))
1045 (propagated-inputs
1046 `(("emacs-dash" ,emacs-dash)))
1047 (native-inputs
1048 `(("emacs" ,emacs-minimal)
1049 ("emacs-el-search" ,emacs-el-search)
1050 ("emacs-stream" ,emacs-stream)
1051 ("texinfo" ,texinfo)))
1052 (build-system gnu-build-system)
1053 (arguments
1054 `(#:make-flags (list (string-append "EMACS="
1055 (assoc-ref %build-inputs "emacs")
1056 "/bin/emacs"))
1057 #:modules ((ice-9 match)
1058 (srfi srfi-26)
1059 ,@%gnu-build-system-modules)
1060 #:phases
1061 (modify-phases %standard-phases
1062 (delete 'configure)
1063 (add-before 'build 'pre-build
1064 (lambda* (#:key inputs #:allow-other-keys)
1065 (define (el-dir store-dir)
1066 (match (find-files store-dir "\\.el$")
1067 ((f1 f2 ...) (dirname f1))
1068 (_ "")))
1069
1070 (let ((sh (string-append (assoc-ref inputs "bash") "/bin/sh")))
1071 (define emacs-prefix? (cut string-prefix? "emacs-" <>))
1072
1073 (setenv "SHELL" "sh")
1074 (setenv "EMACSLOADPATH"
1075 (string-concatenate
1076 (map (match-lambda
1077 (((? emacs-prefix? name) . dir)
1078 (string-append (el-dir dir) ":"))
1079 (_ ""))
1080 inputs)))
1081 (substitute* (find-files "." "\\.el") (("/bin/sh") sh))
1082 #t)))
1083 (add-before 'check 'delete-failing-tests
1084 ;; XXX: these tests require GHC executable, which would be a big
1085 ;; native input.
1086 (lambda _
1087 (with-directory-excursion "tests"
1088 ;; File `haskell-indent-tests.el' fails with
1089 ;; `haskell-indent-put-region-in-literate-2'
1090 ;; on Emacs 27.1+
1091 ;; XXX: https://github.com/haskell/haskell-mode/issues/1714
1092 (for-each delete-file
1093 '("haskell-indent-tests.el"
1094 "haskell-customize-tests.el"
1095 "inferior-haskell-tests.el")))
1096 #t))
1097 (replace 'install
1098 (lambda* (#:key outputs #:allow-other-keys)
1099 (let* ((out (assoc-ref outputs "out"))
1100 (el-dir (string-append out "/share/emacs/site-lisp"))
1101 (doc (string-append
1102 out "/share/doc/haskell-mode-" ,version))
1103 (info (string-append out "/share/info")))
1104 (define (copy-to-dir dir files)
1105 (for-each (lambda (f)
1106 (install-file f dir))
1107 files))
1108
1109 (with-directory-excursion "doc"
1110 (invoke "makeinfo" "haskell-mode.texi")
1111 (install-file "haskell-mode.info" info))
1112 (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md"))
1113 (copy-to-dir el-dir (find-files "." "\\.elc?"))
1114 #t))))))
1115 (home-page "https://github.com/haskell/haskell-mode")
1116 (synopsis "Haskell mode for Emacs")
1117 (description
1118 "This is an Emacs mode for editing, debugging and developing Haskell
1119 programs.")
1120 (license license:gpl3+)))
1121
1122 (define-public emacs-dante
1123 (let ((commit "38b589417294c7ea44bf65b73b8046d950f9531b")
1124 (revision "1"))
1125 (package
1126 (name "emacs-dante")
1127 (version (git-version "1.6" revision commit))
1128 (source (origin
1129 (method git-fetch)
1130 (uri (git-reference
1131 (url "https://github.com/jyp/dante")
1132 (commit commit)))
1133 (sha256
1134 (base32
1135 "1mnmn635552zlwd4zr68jbvdjipl6gi4mi6wiyck28fsmq8kw96h"))
1136 (file-name (git-file-name name version))))
1137 (build-system emacs-build-system)
1138 (propagated-inputs
1139 `(("emacs-dash" ,emacs-dash)
1140 ("emacs-f" ,emacs-f)
1141 ("emacs-flycheck" ,emacs-flycheck)
1142 ("emacs-haskell-mode" ,emacs-haskell-mode)
1143 ("emacs-s" ,emacs-s)
1144 ("emacs-company" ,emacs-company)
1145 ("emacs-lcr" ,emacs-lcr)))
1146 (home-page "https://github.com/jyp/dante")
1147 (synopsis "Minor mode for interactive Haskell")
1148 (description
1149 "This package provides a minor mode for Haskell development that
1150 supports type hints, definition-jumping, completion, and more.")
1151 (license license:gpl3+))))
1152
1153 (define-public emacs-flycheck
1154 ;; Last release version was more than 500 commits ago.
1155 (let ((commit "9bcf6b665e15db94870bebc81dc8248c3eec20d3")
1156 (revision "2"))
1157 (package
1158 (name "emacs-flycheck")
1159 (version (git-version "31" revision commit))
1160 (source
1161 (origin
1162 (method git-fetch)
1163 (uri (git-reference
1164 (url "https://github.com/flycheck/flycheck/")
1165 (commit commit)))
1166 (sha256
1167 (base32 "015ixss5bjr7gvhj8mkw5x2x1hy6fvvsjarr2xpv0gskkkngs7pg"))
1168 (file-name (git-file-name name version))))
1169 (build-system emacs-build-system)
1170 (propagated-inputs
1171 `(("emacs-dash" ,emacs-dash)))
1172 (native-inputs
1173 `(("emacs-shut-up" ,emacs-shut-up)))
1174 (arguments
1175 `(#:phases
1176 (modify-phases %standard-phases
1177 (add-after 'unpack 'change-flycheck-version
1178 (lambda _
1179 (substitute* "flycheck.el"
1180 (("\\(pkg-info-version-info 'flycheck\\)")
1181 (string-append "\"" ,version "\"")))
1182 #t)))
1183 ;; TODO: many failing tests
1184 #:tests? #f
1185 #:test-command '("emacs" "-Q" "--batch" "-L" "."
1186 "--load" "test/flycheck-test"
1187 "--load" "test/run.el"
1188 "-f" "flycheck-run-tests-main")))
1189 (home-page "https://www.flycheck.org")
1190 (synopsis "On-the-fly syntax checking")
1191 (description
1192 "This package provides on-the-fly syntax checking for GNU Emacs. It is a
1193 replacement for the older Flymake extension which is part of GNU Emacs, with
1194 many improvements and additional features.
1195
1196 Flycheck provides fully-automatic, fail-safe, on-the-fly background syntax
1197 checking for over 30 programming and markup languages with more than 70
1198 different tools. It highlights errors and warnings inline in the buffer, and
1199 provides an optional IDE-like error list.")
1200 (license license:gpl3+)))) ;+GFDLv1.3+ for the manual
1201
1202 (define-public emacs-flymake-shellcheck
1203 ;; No tag, version grabbed from source .el file.
1204 (let ((commit "78956f0e5bb9c4d35989657a55929e8e3f5691e6")
1205 (revision "0"))
1206 (package
1207 (name "emacs-flymake-shellcheck")
1208 (version (git-version "0.1" revision commit))
1209 (source
1210 (origin
1211 (method git-fetch)
1212 (uri (git-reference
1213 (url "https://github.com/federicotdn/flymake-shellcheck")
1214 (commit commit)))
1215 (file-name (git-file-name name version))
1216 (sha256
1217 (base32 "068mx5p4drwgppy4ry1rfq6qi79w6d82b4rnpl2jm37grsg94lix"))))
1218 (build-system emacs-build-system)
1219 (home-page "https://github.com/federicotdn/flymake-shellcheck")
1220 (synopsis "Flymake backend for Bash/Sh powered by ShellCheck")
1221 (description
1222 "This package provides a backend for Flymake to use the
1223 tool ShellCheck for static analyzing @command{bash} and @command{sh}
1224 scripts.")
1225 (license license:gpl3+))))
1226
1227 (define-public emacs-a
1228 (package
1229 (name "emacs-a")
1230 (version "0.1.1")
1231 (source (origin
1232 (method git-fetch)
1233 (uri (git-reference
1234 (url "https://github.com/plexus/a.el")
1235 (commit (string-append "v" version))))
1236 (file-name (git-file-name name version))
1237 (sha256
1238 (base32
1239 "00v9w6qg3bkwdhypq0ssf0phdh0f4bcq59c20lngd6vhk0204dqi"))))
1240 (build-system emacs-build-system)
1241 (home-page "https://github.com/plexus/a.el/")
1242 (synopsis
1243 "Emacs library for dealing with association lists and hash tables")
1244 (description "@code{emacs-a} provides Emacs Lisp functions for dealing
1245 with associative structures in a uniform and functional way. These functions
1246 can take association lists, hash tables, and in some cases vectors (where the
1247 index is considered the key).")
1248 (license license:gpl3+)))
1249
1250 (define-public emacs-ace-jump-mode
1251 (package
1252 (name "emacs-ace-jump-mode")
1253 (version "2.0")
1254 (home-page "https://github.com/winterTTr/ace-jump-mode")
1255 (source (origin
1256 (method git-fetch)
1257 (uri (git-reference
1258 (url home-page)
1259 (commit (string-append "v" version))))
1260 (sha256
1261 (base32
1262 "1bwvzh056ls2v7y26a0s4j5mj582dmds04lx4x6iqihs04ss74bb"))
1263 (file-name (git-file-name name version))))
1264 (build-system emacs-build-system)
1265 (synopsis "Cursor location minor mode for fast navigation")
1266 (description "Ace-jump-mode is a fast/direct cursor location minor
1267 mode. It creates an N-Branch search tree internally and marks all
1268 the possible position with predefined keys in within the whole Emacs
1269 view. This allows you to move to the character, word, or line almost
1270 directly.")
1271 (license license:gpl3+)))
1272
1273 (define-public emacs-anaphora
1274 (package
1275 (name "emacs-anaphora")
1276 (version "1.0.4")
1277 (source
1278 (origin
1279 (method git-fetch)
1280 (uri (git-reference
1281 (url "https://github.com/rolandwalker/anaphora")
1282 (commit (string-append "v" version))))
1283 (file-name (git-file-name name version))
1284 (sha256
1285 (base32
1286 "11fgiy029sqz7nvdm7dcal95lacryz9zql0x5h05z48nrrcl4bib"))))
1287 (build-system emacs-build-system)
1288 (home-page "https://github.com/rolandwalker/anaphora/")
1289 (synopsis "Anaphoric expressions for Emacs Lisp")
1290 (description "@code{emacs-anaphora} implements anaphoric expressions for
1291 Emacs Lisp.
1292
1293 Anaphoric expressions implicitly create one or more temporary variables which
1294 can be referred to during the expression. This technique can improve clarity
1295 in certain cases. It also enables recursion for anonymous functions.")
1296 (license license:public-domain)))
1297
1298 (define-public emacs-xr
1299 (package
1300 (name "emacs-xr")
1301 (version "1.19")
1302 (source
1303 (origin
1304 (method url-fetch)
1305 (uri (string-append "https://elpa.gnu.org/packages/xr-" version ".tar"))
1306 (sha256
1307 (base32 "1aa3iqh0r635jw8k89zh8y4am9d4hfrqpk9mrdh2b51invjn8llq"))))
1308 (build-system emacs-build-system)
1309 (home-page "https://elpa.gnu.org/packages/xr.html")
1310 (synopsis "Convert string regexp to rx notation")
1311 (description
1312 "This is an inverse companion to the @code{rx} package for translating
1313 regexps in string form to the @code{rx} notation. Its chief uses are:
1314
1315 @itemize
1316 @item Migrating existing code to @code{rx} form, for better readability and
1317 maintainability
1318 @item Understanding complex regexp strings and finding errors in them
1319 @end itemize
1320
1321 In addition to Emacs regexps, this package can also parse and troubleshoot
1322 skip set strings, which are arguments to @code{skip-chars-forward} and
1323 @code{skip-chars-backward}.")
1324 (license license:gpl3+)))
1325
1326 (define-public emacs-ample-regexps
1327 (let ((commit "153969ce547afe410b8986f01c9ed4087c9cd20b")
1328 (revision "2"))
1329 (package
1330 (name "emacs-ample-regexps")
1331 (version (git-version "0.1" revision commit))
1332 (source
1333 (origin
1334 (method git-fetch)
1335 (uri (git-reference
1336 (url "https://github.com/immerrr/ample-regexps.el")
1337 (commit commit)))
1338 (file-name (git-file-name name version))
1339 (sha256
1340 (base32
1341 "0dkp7bcd7h2ds40wyszy11nmh7c2jxrwy04ayz7pbxh53ir7s2k0"))))
1342 (build-system emacs-build-system)
1343 (native-inputs
1344 `(("ert-runner" ,emacs-ert-runner)))
1345 (arguments
1346 `(#:tests? #t
1347 #:test-command '("ert-runner" "-l" "ample-regexps")))
1348 (home-page "https://github.com/immerrr/ample-regexps.el")
1349 (synopsis "Compose and reuse Emacs regexps")
1350 (description
1351 "This package allows common parts of regexps to be easily picked out
1352 and reused.")
1353 (license license:gpl3+))))
1354
1355 (define-public emacs-ample-theme
1356 (let ((commit "536966adf882446165a1f756830028faa792c7a9")
1357 (revision "1"))
1358 (package
1359 (name "emacs-ample-theme")
1360 (version (git-version "0.0.0" revision commit))
1361 (source (origin
1362 (method git-fetch)
1363 (uri (git-reference
1364 (url "https://github.com/jordonbiondo/ample-theme")
1365 (commit commit)))
1366 (file-name (git-file-name name version))
1367 (sha256
1368 (base32
1369 "07bpv8dag40qjnm5000pgzpazj4whfxf93x2vprz26sg3mjfx0nf"))))
1370 (build-system emacs-build-system)
1371 (home-page "https://github.com/jordonbiondo/ample-theme")
1372 (synopsis "Theme for Emacs providing dark, light, and flat versions")
1373 (description "Ample themes is a collection of three themes sharing a
1374 similar pallet with a light, dark and flat versions with a focus on being easy
1375 on the eyes during night and day. They only support GUI and 256 colour
1376 terminals.")
1377 (license license:gpl3+))))
1378
1379 (define-public emacs-reformatter
1380 (package
1381 (name "emacs-reformatter")
1382 (version "0.6")
1383 (source
1384 (origin
1385 (method git-fetch)
1386 (uri (git-reference
1387 (url "https://github.com/purcell/reformatter.el")
1388 (commit version)))
1389 (file-name (git-file-name name version))
1390 (sha256
1391 (base32 "1dfn7c3gpavpiwd73v2pasd8wd8b62dczhg9iv1cgh8vaqlsf92x"))))
1392 (build-system emacs-build-system)
1393 (home-page "https://github.com/purcell/reformatter.el")
1394 (synopsis "Define commands which run reformatters on the current buffer")
1395 (description
1396 "This library lets elisp authors easily define an idiomatic command to
1397 reformat the current buffer using a command-line program, together with an
1398 optional minor mode which can apply this command automatically on save.")
1399 (license license:gpl3+)))
1400
1401 (define-public emacs-relint
1402 (package
1403 (name "emacs-relint")
1404 (version "1.18")
1405 (source
1406 (origin
1407 (method url-fetch)
1408 (uri (string-append "https://elpa.gnu.org/packages/"
1409 "relint-" version ".tar"))
1410 (sha256
1411 (base32 "0zfislsksrkn6qs0w26yaff5xr7xqy2x235dcdpz8s2v35b6dhci"))))
1412 (build-system emacs-build-system)
1413 (propagated-inputs `(("emacs-xr" ,emacs-xr)))
1414 (home-page "https://github.com/mattiase/relint")
1415 (synopsis "Elisp regexp mistake finder")
1416 (description
1417 "Relint (regular expression lint) scans Elisp files for mistakes in
1418 regexps, including deprecated syntax and bad practice. It also checks the
1419 regexp-like arguments to @code{skip-chars-forward} and
1420 @code{skip-chars-backward}.")
1421 (license license:gpl3+)))
1422
1423 (define-public emacs-bug-hunter
1424 (let ((commit "b88d981afa9154b236c5a3a83b50d5889d46c6a7")
1425 (revision "1"))
1426 (package
1427 (name "emacs-bug-hunter")
1428 (version (git-version "1.3.1" revision commit))
1429 (source
1430 (origin
1431 (method git-fetch)
1432 (uri (git-reference
1433 (url "https://github.com/Malabarba/elisp-bug-hunter")
1434 (commit commit)))
1435 (file-name (git-file-name name commit))
1436 (sha256
1437 (base32
1438 "134fj493sdn93pyyac8rpz1fzahzmayvphsrmqp3wvgysmfqm38l"))))
1439 (build-system emacs-build-system)
1440 (home-page "https://github.com/Malabarba/elisp-bug-hunter")
1441 (synopsis "Hunt down errors by bisecting elisp files")
1442 (description
1443 "The Bug Hunter is an Emacs library that finds the source of an error
1444 or unexpected behavior inside an elisp configuration file (typically
1445 @file{init.el} or @file{.emacs}).")
1446 (license license:gpl3+))))
1447
1448 \f
1449 ;;;
1450 ;;; Web browsing.
1451 ;;;
1452
1453 (define-public emacs-w3m
1454 ;; Emacs-w3m follows a "rolling release" model.
1455 (package
1456 (name "emacs-w3m")
1457 (version "2018-11-11")
1458 (source (origin
1459 (method cvs-fetch)
1460 (uri (cvs-reference
1461 (root-directory
1462 ":pserver:anonymous@cvs.namazu.org:/storage/cvsroot")
1463 (module "emacs-w3m")
1464 (revision version)))
1465 (file-name (string-append name "-" version "-checkout"))
1466 (sha256
1467 (base32
1468 "0nvahdbjs12zg7zsk4gql02mvnv56cf1rwj2f5p42lwp3xvswiwp"))))
1469 (build-system gnu-build-system)
1470 (native-inputs `(("autoconf" ,autoconf)
1471 ("texinfo" ,texinfo)
1472 ("emacs" ,emacs-minimal)))
1473 (inputs `(("w3m" ,w3m)
1474 ("imagemagick" ,imagemagick)))
1475 (arguments
1476 `(#:modules ((guix build gnu-build-system)
1477 (guix build utils)
1478 (guix build emacs-utils))
1479 #:imported-modules (,@%gnu-build-system-modules
1480 (guix build emacs-utils))
1481 #:configure-flags
1482 (let ((out (assoc-ref %outputs "out")))
1483 (list (string-append "--with-lispdir="
1484 out "/share/emacs/site-lisp")
1485 (string-append "--with-icondir="
1486 out "/share/images/emacs-w3m")
1487 ;; Leave .el files uncompressed, otherwise GC can't
1488 ;; identify run-time dependencies. See
1489 ;; <http://lists.gnu.org/archive/html/guix-devel/2015-12/msg00208.html>
1490 "--without-compress-install"))
1491 #:tests? #f ; no check target
1492 #:phases
1493 (modify-phases %standard-phases
1494 (add-after 'unpack 'autoconf
1495 (lambda _
1496 (invoke "autoconf")))
1497 (add-before 'configure 'support-emacs!
1498 (lambda _
1499 ;; For some reason 'AC_PATH_EMACS' thinks that 'Emacs 26' is
1500 ;; unsupported.
1501 (substitute* "configure"
1502 (("EMACS_FLAVOR=unsupported")
1503 "EMACS_FLAVOR=emacs"))
1504 #t))
1505 (add-before 'build 'patch-exec-paths
1506 (lambda* (#:key inputs outputs #:allow-other-keys)
1507 (let ((out (assoc-ref outputs "out"))
1508 (w3m (assoc-ref inputs "w3m"))
1509 (imagemagick (assoc-ref inputs "imagemagick"))
1510 (coreutils (assoc-ref inputs "coreutils")))
1511 (make-file-writable "w3m.el")
1512 (emacs-substitute-variables "w3m.el"
1513 ("w3m-command" (string-append w3m "/bin/w3m"))
1514 ("w3m-touch-command"
1515 (string-append coreutils "/bin/touch"))
1516 ("w3m-icon-directory"
1517 (string-append out "/share/images/emacs-w3m")))
1518 (make-file-writable "w3m-image.el")
1519 (emacs-substitute-variables "w3m-image.el"
1520 ("w3m-imagick-convert-program"
1521 (string-append imagemagick "/bin/convert"))
1522 ("w3m-imagick-identify-program"
1523 (string-append imagemagick "/bin/identify")))
1524 #t)))
1525 (replace 'install
1526 (lambda* (#:key outputs #:allow-other-keys)
1527 (invoke "make" "install" "install-icons")
1528 (with-directory-excursion
1529 (string-append (assoc-ref outputs "out")
1530 "/share/emacs/site-lisp")
1531 (for-each delete-file '("ChangeLog" "ChangeLog.1"))
1532 (symlink "w3m-load.el" "w3m-autoloads.el")
1533 #t))))))
1534 (home-page "http://emacs-w3m.namazu.org/")
1535 (synopsis "Simple Web browser for Emacs based on w3m")
1536 (description
1537 "Emacs-w3m is an emacs interface for the w3m web browser.")
1538 (license license:gpl2+)))
1539
1540 (define-public emacs-wget
1541 (package
1542 (name "emacs-wget")
1543 (version "0.5.0")
1544 (source (origin
1545 (method url-fetch)
1546 (uri (string-append "mirror://debian/pool/main/w/wget-el/wget-el_"
1547 version ".orig.tar.gz"))
1548 (sha256
1549 (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff"))))
1550 (build-system gnu-build-system)
1551 (inputs `(("wget" ,wget)))
1552 (native-inputs `(("emacs" ,emacs-minimal)))
1553 (arguments
1554 `(#:modules ((guix build gnu-build-system)
1555 (guix build utils)
1556 (guix build emacs-utils))
1557 #:imported-modules (,@%gnu-build-system-modules
1558 (guix build emacs-utils))
1559 #:tests? #f ; no check target
1560 #:phases
1561 (modify-phases %standard-phases
1562 (replace 'configure
1563 (lambda* (#:key outputs #:allow-other-keys)
1564 (substitute* "Makefile"
1565 (("/usr/local") (assoc-ref outputs "out"))
1566 (("/site-lisp/emacs-wget") "/site-lisp"))
1567 #t))
1568 (add-before 'build 'patch-exec-paths
1569 (lambda* (#:key inputs outputs #:allow-other-keys)
1570 (let ((wget (assoc-ref inputs "wget")))
1571 (emacs-substitute-variables "wget.el"
1572 ("wget-command" (string-append wget "/bin/wget"))))
1573 #t))
1574 (add-after 'install 'post-install
1575 (lambda* (#:key outputs #:allow-other-keys)
1576 (emacs-generate-autoloads
1577 "wget" (string-append (assoc-ref outputs "out")
1578 "/share/emacs/site-lisp/"))
1579 #t)))))
1580 (home-page "https://www.emacswiki.org/emacs/EmacsWget")
1581 (synopsis "Simple file downloader for Emacs based on wget")
1582 (description
1583 "Emacs-wget is an emacs interface for the wget file downloader.")
1584 (license license:gpl2+)))
1585
1586 (define-public emacs-eww-lnum
1587 (package
1588 (name "emacs-eww-lnum")
1589 (version "1.1")
1590 (source (origin
1591 (method git-fetch)
1592 (uri (git-reference
1593 (url "https://github.com/m00natic/eww-lnum")
1594 (commit version)))
1595 (file-name (git-file-name name version))
1596 (sha256
1597 (base32
1598 "0gs6bi3s2sszc6v2b26929azmn5513kvyin99n4d0ark1jdbjmv2"))))
1599 (build-system emacs-build-system)
1600 (home-page "https://github.com/m00natic/eww-lnum")
1601 (synopsis "Conkeror-like functionality for Eww")
1602 (description "This is extension to the Emacs browser Eww that adds
1603 Conkeror-like functionality. In short, currently visible links, forms,
1604 buttons are temporarily assigned numbers with which the former can be
1605 immediately activated. Also filtering can be applied so selection can be
1606 incrementally confined in Isearch manner.")
1607 (license license:gpl3+)))
1608
1609
1610 \f
1611 ;;;
1612 ;;; Multimedia.
1613 ;;;
1614
1615 (define emacs-emms-print-metadata
1616 (package
1617 (name "emacs-emms-print-metadata")
1618 (version "6.2")
1619 (source
1620 (origin
1621 (method url-fetch)
1622 (uri (string-append "https://elpa.gnu.org/packages/"
1623 "emms-" version ".tar"))
1624 (sha256
1625 (base32 "0d95sjrh9vpl41vz26y8clgji987z15lj4ky2kr9yrl0zpa8yv35"))))
1626 (build-system gnu-build-system)
1627 (arguments
1628 `(#:make-flags '("emms-print-metadata")
1629 #:tests? #f ; No tests.
1630 #:phases
1631 (modify-phases %standard-phases
1632 (delete 'configure)
1633 (replace 'install
1634 (lambda* (#:key outputs #:allow-other-keys)
1635 (let* ((out (assoc-ref outputs "out")))
1636 (install-file "src/emms-print-metadata"
1637 (string-append out "/bin"))
1638 (install-file "emms-print-metadata.1"
1639 (string-append out "/share/man/man1"))
1640 #t))))))
1641 (inputs
1642 `(("taglib" ,taglib)))
1643 (home-page "https://www.gnu.org/software/emms/")
1644 (synopsis "The Emacs Multimedia System")
1645 (description
1646 "EMMS is the Emacs Multimedia System. It is a small front-end which
1647 can control one of the supported external players. Thus, it supports
1648 whatever formats are supported by your music player. It also
1649 supports tagging and playlist management, all behind a clean and
1650 light user interface.")
1651 (license license:gpl3+)))
1652
1653 (define-public emacs-emms
1654 (package
1655 (inherit emacs-emms-print-metadata)
1656 (name "emacs-emms")
1657 (build-system emacs-build-system)
1658 (arguments
1659 `(#:phases
1660 (modify-phases %standard-phases
1661 (add-after 'unpack 'set-external-programs
1662 ;; Specify the absolute file names of the various programs
1663 ;; so that everything works out-of-the-box. (tinytag missing)
1664 (lambda* (#:key inputs outputs #:allow-other-keys)
1665 (let ((out (assoc-ref outputs "out"))
1666 (emms-print-metadata (assoc-ref inputs "emms-print-metadata"))
1667 (flac (assoc-ref inputs "flac"))
1668 (vorbis (assoc-ref inputs "vorbis-tools"))
1669 (alsa (assoc-ref inputs "alsa-utils"))
1670 (mpg321 (assoc-ref inputs "mpg321"))
1671 (mp3info (assoc-ref inputs "mp3info"))
1672 (mutagen (assoc-ref inputs "mutagen"))
1673 (exiftool (assoc-ref inputs "perl-image-exiftool"))
1674 (opus (assoc-ref inputs "opus-tools")))
1675 (emacs-substitute-variables "emms-player-mpg321-remote.el"
1676 ("emms-player-mpg321-remote-command"
1677 (string-append mpg321 "/bin/mpg321")))
1678 (substitute* "emms-player-simple.el"
1679 (("\"ogg123\"")
1680 (string-append "\"" vorbis "/bin/ogg123\"")))
1681 (substitute* "emms-player-simple.el"
1682 (("\"mpg321\"")
1683 (string-append "\"" mpg321 "/bin/mpg321\"")))
1684 (emacs-substitute-variables "emms-info-ogginfo.el"
1685 ("emms-info-ogginfo-program-name"
1686 (string-append vorbis "/bin/ogginfo")))
1687 (emacs-substitute-variables "emms-info-opusinfo.el"
1688 ("emms-info-opusinfo-program-name"
1689 (string-append opus "/bin/opusinfo")))
1690 (emacs-substitute-variables "emms-info-libtag.el"
1691 ("emms-info-libtag-program-name"
1692 (string-append emms-print-metadata "/bin/emms-print-metadata")))
1693 (emacs-substitute-variables "emms-info-mp3info.el"
1694 ("emms-info-mp3info-program-name"
1695 (string-append mp3info "/bin/mp3info")))
1696 (emacs-substitute-variables "emms-info-metaflac.el"
1697 ("emms-info-metaflac-program-name"
1698 (string-append flac "/bin/metaflac")))
1699 (emacs-substitute-variables "emms-source-file.el"
1700 ("emms-source-file-gnu-find" (which "find")))
1701 (substitute* "emms-volume-amixer.el"
1702 (("\"amixer\"")
1703 (string-append "\"" alsa "/bin/amixer\"")))
1704 (substitute* "emms-tag-editor.el"
1705 (("\"mid3v2\"")
1706 (string-append "\"" mutagen "/bin/mid3v2\"")))
1707 (substitute* "emms-info-exiftool.el"
1708 (("\"exiftool\"")
1709 (string-append "\"" exiftool "/bin/exiftool\"")))
1710 #t))))))
1711 (inputs
1712 `(("emms-print-metadata" ,emacs-emms-print-metadata)
1713 ("alsa-utils" ,alsa-utils)
1714 ("flac" ,flac) ;for metaflac
1715 ("vorbis-tools" ,vorbis-tools)
1716 ("mpg321" ,mpg321)
1717 ("mp3info" ,mp3info)
1718 ("mutagen" ,python-mutagen)
1719 ("perl-image-exiftool" ,perl-image-exiftool)
1720 ("opus-tools" ,opus-tools)))))
1721
1722 (define-public emacs-emms-mode-line-cycle
1723 (package
1724 (name "emacs-emms-mode-line-cycle")
1725 (version "0.2.5")
1726 (source
1727 (origin
1728 (method git-fetch)
1729 (uri (git-reference
1730 (url "https://github.com/momomo5717/emms-mode-line-cycle")
1731 (commit version)))
1732 (file-name (git-file-name name version))
1733 (sha256
1734 (base32
1735 "0q80f0plch6k4lhs8c9qm3mfycfbp3kn5sjrk9zxgxwnn901y9mp"))))
1736 (build-system emacs-build-system)
1737 (propagated-inputs
1738 `(("emms" ,emacs-emms)))
1739 (home-page "https://github.com/momomo5717/emms-mode-line-cycle")
1740 (synopsis "Display the EMMS mode line as a ticker")
1741 (description
1742 "This is a minor mode for updating the EMMS mode-line string cyclically
1743 within a specified width. It is useful for displaying long track titles.")
1744 (license license:gpl3+)))
1745
1746 \f
1747 ;;;
1748 ;;; Miscellaneous.
1749 ;;;
1750
1751 (define-public emacs-ace-link
1752 (package
1753 (name "emacs-ace-link")
1754 (version "0.5.0")
1755 (source
1756 (origin
1757 (method git-fetch)
1758 (uri (git-reference
1759 (url "https://github.com/abo-abo/ace-link")
1760 (commit version)))
1761 (file-name (git-file-name name version))
1762 (sha256
1763 (base32
1764 "147dz79vg4ym5wg3d544bw2khdb2j3hr73rw4qfm64wf0q2dj0vk"))))
1765 (build-system emacs-build-system)
1766 (propagated-inputs
1767 `(("emacs-avy" ,emacs-avy)))
1768 (home-page "https://github.com/abo-abo/ace-link")
1769 (synopsis "Quickly follow links in Emacs")
1770 (description
1771 "Currently, to jump to a link in a @code{Info-mode}, @code{help-mode},
1772 @code{woman-mode}, @code{org-mode}, @code{eww-mode}, @code{compilation-mode},
1773 @code{goto-address-mode} buffer, you can tab through the links to select the
1774 one you want. This is an O(N) operation, where the N is the amount of links.
1775 This package turns this into an O(1) operation. It does so by assigning a
1776 letter to each link using avy.")
1777 (license license:gpl3+)))
1778
1779 (define-public emacs-auto-sudoedit
1780 (package
1781 (name "emacs-auto-sudoedit")
1782 (version "1.0.0")
1783 (source
1784 (origin
1785 (method git-fetch)
1786 (uri (git-reference
1787 (url "https://github.com/ncaq/auto-sudoedit")
1788 (commit (string-append "v" version))))
1789 (file-name (git-file-name name version))
1790 (sha256
1791 (base32 "10p0hc95j382km8655pqld9wxg10j1f36czzppkdd6a55cxarv9f"))))
1792 (propagated-inputs
1793 `(("emacs-f" ,emacs-f)))
1794 (build-system emacs-build-system)
1795 (home-page "https://github.com/ncaq/auto-sudoedit")
1796 (synopsis "Automatically re-open read-only files with sudo")
1797 (description
1798 "This package automatically reopens a file or directory with
1799 @command{sudo} if it cannot write to it.")
1800 (license license:expat)))
1801
1802 (define-public emacs-bbdb
1803 (package
1804 (name "emacs-bbdb")
1805 (version "3.2")
1806 (source
1807 (origin
1808 (method url-fetch)
1809 (uri (string-append "https://elpa.gnu.org/packages/"
1810 "bbdb-" version ".tar"))
1811 (sha256
1812 (base32 "1p56dg0mja2b2figy7yhdx714zd5j6njzn0k07zjka3jc06izvjx"))))
1813 (build-system emacs-build-system)
1814 (arguments
1815 ;; XXX: The following file cannot be byte-compiled, because et requires
1816 ;; `vm-autoloads', from the VM package, with is neither in Emacs nor
1817 ;; packaged in Guix. So, don't bother for now.
1818 `(#:exclude '("bbdb-vm\\.el")))
1819 (home-page "http://elpa.gnu.org/packages/bbdb.html")
1820 (synopsis "Contact management utility for Emacs")
1821 (description
1822 "BBDB is the Insidious Big Brother Database for GNU Emacs. It provides
1823 an address book for email and snail mail addresses, phone numbers and the
1824 like. It can be linked with various Emacs mail clients (Message and Mail
1825 mode, Rmail, Gnus, MH-E, and VM). BBDB is fully customizable.")
1826 (license license:gpl3+)))
1827
1828 (define-public emacs-bluetooth
1829 (package
1830 (name "emacs-bluetooth")
1831 (version "0.2")
1832 (source
1833 (origin
1834 (method url-fetch)
1835 (uri (string-append "https://elpa.gnu.org/packages/"
1836 "bluetooth-" version ".el"))
1837 (sha256
1838 (base32 "1dq04p6ms0zx4awlypp4crkz7dzal4xg8ac7p8fqacz196rczssp"))))
1839 (build-system emacs-build-system)
1840 (inputs
1841 `(("bluez" ,bluez)))
1842 (propagated-inputs
1843 `(("emacs-dash" ,emacs-dash)))
1844 (home-page "https://gitlab.com/rstocker/emacs-bluetooth")
1845 (synopsis "Manage Bluetooth devices using Emacs")
1846 (description
1847 "This package implements basic Bluetooth management functionality, such
1848 as connecting and disconnecting devices, setting properties and aliases,
1849 putting the adapter in discovery mode and controlling its power supply. It
1850 also includes a pairing agent.")
1851 (license license:gpl3+)))
1852
1853 (define-public emacs-aggressive-indent
1854 (package
1855 (name "emacs-aggressive-indent")
1856 (version "1.8.3")
1857 (source (origin
1858 (method url-fetch)
1859 (uri (string-append "https://elpa.gnu.org/packages/"
1860 "aggressive-indent-" version ".el"))
1861 (sha256
1862 (base32
1863 "0jnzccl50x0wapprgwxinp99pwwa6j43q6msn4gv437j7swy8wnj"))))
1864 (build-system emacs-build-system)
1865 (home-page "https://elpa.gnu.org/packages/aggressive-indent.html")
1866 (synopsis "Minor mode to aggressively keep your code always indented")
1867 (description
1868 "@code{aggressive-indent-mode} is a minor mode that keeps your code
1869 always indented. It reindents after every change, making it more reliable
1870 than @code{electric-indent-mode}.")
1871 (license license:gpl2+)))
1872
1873 (define-public emacs-gcmh
1874 ;; No tagged release upstream, but the commit below correspond to the 0.2.1
1875 ;; release.
1876 (let ((commit "0089f9c3a6d4e9a310d0791cf6fa8f35642ecfd9"))
1877 (package
1878 (name "emacs-gcmh")
1879 (version "0.2.1")
1880 (source
1881 (origin
1882 (method git-fetch)
1883 (uri (git-reference
1884 (url "https://gitlab.com/koral/gcmh")
1885 (commit commit)))
1886 (sha256
1887 (base32 "0yh1ap8phv3x44rp0yr6z884xqw2apanbx4c0acqglvj0gaaqx25"))
1888 (file-name (git-file-name name version))))
1889 (build-system emacs-build-system)
1890 (home-page "https://gitlab.com/koral/gcmh")
1891 (synopsis "Emacs Garbage Collector Magic Hack")
1892 (description
1893 "This package enforces a sneaky @dfn{garbage collector} (GC) strategy
1894 to minimize GC interference with the activity. During normal use a high GC
1895 threshold is set. When idling GC is immediately triggered and a low threshold
1896 is set.")
1897 (license license:gpl3+))))
1898
1899 (define-public emacs-ctrlf
1900 (package
1901 (name "emacs-ctrlf")
1902 (version "1.2")
1903 (source
1904 (origin
1905 (method git-fetch)
1906 (uri (git-reference
1907 (url "https://github.com/raxod502/ctrlf")
1908 (commit (string-append "v" version))))
1909 (file-name (git-file-name name version))
1910 (sha256
1911 (base32 "1f0k3432brc96am6az6xr1nks1vacqzixhdgwfn2xklb8if9a5xi"))))
1912 (build-system emacs-build-system)
1913 (home-page "https://github.com/raxod502/ctrlf/")
1914 (synopsis "Single-buffer text search in Emacs")
1915 (description "CTRLF (pronounced @emph{control F}) is an intuitive and
1916 efficient solution for single-buffer text search in Emacs, replacing packages
1917 such as Isearch, Swiper, and helm-swoop. It takes inspiration from the
1918 widely-adopted and battle-tested @samp{Ctrl+F} interfaces in programs such as
1919 web browsers, but follows the flow and keybindings of Isearch.")
1920 (license license:expat)))
1921
1922 (define-public emacs-dhall-mode
1923 ;; There is no proper release. The base version is extracted from the
1924 ;; "Version" keyword in the main file.
1925 (let ((revision "1")
1926 (commit "484bcf8f78f1183ef45c3b04a362bb73690c6b9b"))
1927 (package
1928 (name "emacs-dhall-mode")
1929 (version (git-version "0.1.3" revision commit))
1930 (source
1931 (origin
1932 (method git-fetch)
1933 (uri
1934 (git-reference
1935 (url "https://github.com/psibi/dhall-mode")
1936 (commit commit)))
1937 (file-name (git-file-name name version))
1938 (sha256
1939 (base32 "1wggg8jlzg9rph4jhxp6yiri178rnasbv38838i973kjgqjxrl76"))))
1940 (build-system emacs-build-system)
1941 (propagated-inputs
1942 `(("emacs-reformatter" ,emacs-reformatter)))
1943 (home-page "https://github.com/psibi/dhall-mode")
1944 (synopsis "Major mode for working with Dhall configuration language")
1945 (description
1946 "Dhall-mode provides an Emacs Major mode for working with the Dhall
1947 configuration language. It features:
1948
1949 @itemize
1950 @item Syntax highlighting
1951 @item Multiline support for String
1952 @item Basic indentation, commenting
1953 @item Automatic formatting on save using dhall-format.
1954 @item Error highlighting.
1955 @end itemize")
1956 (license license:gpl3+))))
1957
1958 (define-public emacs-link-hint
1959 ;; Last release was in 2015.
1960 (let ((commit "d74a483652486260c052941fedeadddb1ea71f88")
1961 (revision "1"))
1962 (package
1963 (name "emacs-link-hint")
1964 (version (git-version "0.1" revision commit))
1965 (source
1966 (origin
1967 (method git-fetch)
1968 (uri (git-reference
1969 (url "https://github.com/noctuid/link-hint.el")
1970 (commit commit)))
1971 (file-name (git-file-name name version))
1972 (sha256
1973 (base32
1974 "0dghxd165fbds6czy9bfwpid3i4irgp3q08n9mg57sfifi0cmij0"))))
1975 (build-system emacs-build-system)
1976 (propagated-inputs
1977 `(("emacs-avy" ,emacs-avy)))
1978 (home-page "https://github.com/noctuid/link-hint.el")
1979 (synopsis "Vimperator-style link-hinting in Emacs")
1980 (description "This package provides commands for visiting and acting on
1981 links.")
1982 (license license:gpl3+))))
1983
1984 (define-public emacs-ag
1985 (package
1986 (name "emacs-ag")
1987 (version "0.48")
1988 (source (origin
1989 (method git-fetch)
1990 (uri (git-reference
1991 (url "https://github.com/Wilfred/ag.el")
1992 (commit version)))
1993 (file-name (git-file-name name version))
1994 (sha256
1995 (base32
1996 "1p918y24vcn2pdliaymd210xp9fvhd4a1srqbv2lfiqrh59yjidx"))))
1997 (build-system emacs-build-system)
1998 (arguments
1999 `(#:phases
2000 (modify-phases %standard-phases
2001 (add-before 'install 'make-info
2002 (lambda _
2003 (with-directory-excursion "docs"
2004 (invoke "make" "info"))))
2005 (add-after 'install 'install-info
2006 (lambda* (#:key outputs #:allow-other-keys)
2007 (let* ((out (assoc-ref outputs "out"))
2008 (info (string-append out "/share/info")))
2009 (install-file "docs/_build/texinfo/agel.info" info)
2010 #t))))))
2011 (native-inputs
2012 `(("python-sphinx" ,python-sphinx)
2013 ("texinfo" ,texinfo)))
2014 (propagated-inputs
2015 `(("dash" ,emacs-dash)
2016 ("s" ,emacs-s)
2017 ;; We need to use 'ag' as the executable on remote systems.
2018 ("the-silver-searcher" ,the-silver-searcher)))
2019 (home-page "https://github.com/Wilfred/ag.el")
2020 (synopsis "Front-end for ag (the-silver-searcher) for Emacs")
2021 (description "This package provides the ability to use the silver
2022 searcher, a code searching tool, sometimes abbreviated to @code{ag}. Features
2023 include version control system awareness, use of Perl compatible regular
2024 expressions, editing the search results directly and searching file names
2025 rather than the contents of files.")
2026 (license license:gpl3+)))
2027
2028 (define-public emacs-async
2029 (package
2030 (name "emacs-async")
2031 (home-page "https://github.com/jwiegley/emacs-async")
2032 (version "1.9.4")
2033 (source (origin
2034 (method git-fetch)
2035 (uri (git-reference
2036 (url home-page)
2037 (commit (string-append "v" version))))
2038 (file-name (git-file-name name version))
2039 (sha256
2040 (base32
2041 "0hhpyxb3d531jb2f3wvzx25183f0anm8nxv6mh0p825q2gkm6ly7"))))
2042 (build-system emacs-build-system)
2043 (synopsis "Asynchronous processing in Emacs")
2044 (description
2045 "This package provides the ability to call asynchronous functions and
2046 processes. For example, it can be used to run dired commands (for copying,
2047 moving, etc.) asynchronously using @code{dired-async-mode}. Also it is used
2048 as a library for other Emacs packages.")
2049 (license license:gpl3+)))
2050
2051 (define-public emacs-auctex
2052 (package
2053 (name "emacs-auctex")
2054 (version "12.3.1")
2055 (source
2056 (origin
2057 (method url-fetch)
2058 (uri (string-append "https://elpa.gnu.org/packages/"
2059 "auctex-" version ".tar"))
2060 (sha256
2061 (base32 "0kn48mmsvp1yp8fjcl4lriymhyskv5s70wscmf596xf56s7mqas4"))))
2062 (build-system emacs-build-system)
2063 ;; We use 'emacs' because AUCTeX requires dbus at compile time
2064 ;; ('emacs-minimal' does not provide dbus).
2065 (arguments
2066 `(#:emacs ,emacs
2067 #:include '("\\.el$" "^images/" "^latex/" "\\.info$")
2068 #:exclude '("^tests/" "^latex/README")
2069 #:phases
2070 (modify-phases %standard-phases
2071 (add-after 'unpack 'configure
2072 (lambda* (#:key inputs #:allow-other-keys)
2073 (emacs-substitute-variables "preview.el"
2074 ("preview-gs-command"
2075 (string-append (assoc-ref inputs "ghostscript") "/bin/gs")))
2076 (substitute* "preview.el"
2077 (("\"dvipng ")
2078 (string-append "\"" (assoc-ref inputs "texlive")
2079 "/bin/dvipng "))
2080 (("\"dvips ")
2081 (string-append "\"" (assoc-ref inputs "texlive")
2082 "/bin/dvips "))
2083 (("\"pdf2dsc ")
2084 (string-append "\"" (assoc-ref inputs "ghostscript")
2085 "/bin/pdf2dsc ")))))
2086 (add-after 'install 'install-doc
2087 (lambda* (#:key outputs #:allow-other-keys)
2088 (let* ((out (assoc-ref outputs "out"))
2089 (etc-dir (string-append out "/share/" ,name "/"
2090 ,version "/etc")))
2091 (with-directory-excursion "doc"
2092 (setenv "HOME" (getenv "TMPDIR")) ; for mktextfm
2093 (invoke "pdftex" "tex-ref")
2094 (install-file "tex-ref.pdf"
2095 (string-append etc-dir "/refcards")))
2096 #t))))))
2097 (native-inputs
2098 `(("perl" ,perl)))
2099 (inputs
2100 `(("ghostscript" ,ghostscript)
2101 ("texlive" ,(texlive-union (list texlive-amsfonts)))))
2102 (home-page "https://www.gnu.org/software/auctex/")
2103 (synopsis "Integrated environment for TeX")
2104 (description
2105 "AUCTeX is a comprehensive customizable integrated environment for
2106 writing input files for TeX, LaTeX, ConTeXt, Texinfo, and docTeX using Emacs
2107 or XEmacs.")
2108 (license license:gpl3+)))
2109
2110 (define-public emacs-autothemer
2111 (package
2112 (name "emacs-autothemer")
2113 (version "0.2.2")
2114 (source
2115 (origin
2116 (method git-fetch)
2117 (uri (git-reference
2118 (url "https://github.com/sebastiansturm/autothemer")
2119 (commit version)))
2120 (file-name (git-file-name name version))
2121 (sha256
2122 (base32
2123 "0cd2pqh6k32sjidkcd8682y4l6mx52xw4a05f38kk8nsrk28m74k"))))
2124 (build-system emacs-build-system)
2125 (propagated-inputs
2126 `(("emacs-dash" ,emacs-dash)))
2127 (home-page "https://github.com/sebastiansturm/autothemer")
2128 (synopsis "Conveniently create Emacs themes")
2129 (description
2130 "Autothemer provides a thin layer on top of @code{deftheme} and
2131 @code{custom-theme-set-faces} that creates a new custom color theme, based on
2132 a set of simplified face specifications and a user-supplied color palette")
2133 (license license:gpl3+)))
2134
2135 (define-public emacs-howm
2136 (package
2137 (name "emacs-howm")
2138 (version "1.4.6")
2139 (source
2140 (origin
2141 (method url-fetch)
2142 (uri (string-append "https://howm.sourceforge.jp/a/"
2143 "howm-" version ".tar.gz"))
2144 (sha256
2145 (base32 "17ihch1zbk08ih7gc232jlmbw7hax8ldb9glxp8d75k4asa98qh5"))))
2146 (build-system gnu-build-system)
2147 (native-inputs
2148 `(("emacs" ,emacs-minimal)))
2149 (arguments
2150 `(#:configure-flags
2151 (list (string-append "--with-howmdir=" %output
2152 "/share/emacs/site-lisp/"))
2153 #:modules ((guix build gnu-build-system)
2154 ((guix build emacs-build-system) #:prefix emacs:)
2155 (guix build utils))
2156 #:imported-modules (,@%gnu-build-system-modules
2157 (guix build emacs-build-system)
2158 (guix build emacs-utils))
2159 #:phases
2160 (modify-phases %standard-phases
2161 (add-after 'install 'make-autoloads
2162 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
2163 (home-page "https://howm.osdn.jp/")
2164 (synopsis "Note-taking tool for Emacs")
2165 (description "Howm is a note-taking tool for Emacs. Like
2166 code@{emacs-wiki.el}, it facilitates using hyperlinks and doing full-text
2167 searches. Unlike code@{emacs-wiki.el}, it can be combined with any format.")
2168 (license license:gpl1+)))
2169
2170 (define-public emacs-bm
2171 (package
2172 (name "emacs-bm")
2173 (version "201905")
2174 (source
2175 (origin
2176 (method git-fetch)
2177 (uri (git-reference
2178 (url "https://github.com/joodland/bm")
2179 (commit version)))
2180 (file-name (git-file-name name version))
2181 (sha256
2182 (base32 "180b3rc13asrmsdh7v405d54jkrininvaj52xhp71vw91ng51dkn"))))
2183 (build-system emacs-build-system)
2184 (home-page "https://github.com/joodland/bm")
2185 (synopsis "Visual bookmarks for Emacs")
2186 (description "This package provides visible, buffer local bookmarks and
2187 the ability to jump forward and backward to the next bookmark.")
2188 (license license:gpl2+)))
2189
2190 (define-public emacs-calfw
2191 (package
2192 (name "emacs-calfw")
2193 (version "1.6")
2194 (source
2195 (origin
2196 (method git-fetch)
2197 (uri (git-reference
2198 (url "https://github.com/kiwanami/emacs-calfw")
2199 (commit (string-append "v" version))))
2200 (file-name (git-file-name name version))
2201 (sha256
2202 (base32
2203 "0r42cagvmvvib76kd15nd9ix55ys6i549vxnls4z16s864695zpa"))))
2204 (build-system emacs-build-system)
2205 (propagated-inputs
2206 `(("emacs-howm" ,emacs-howm)))
2207 (home-page "https://github.com/kiwanami/emacs-calfw/")
2208 (synopsis "Calendar framework for Emacs")
2209 (description
2210 "This package displays a calendar view with various schedule data in the
2211 Emacs buffer.")
2212 (license license:gpl3+)))
2213
2214 (define-public emacs-caps-lock
2215 (package
2216 (name "emacs-caps-lock")
2217 (version "1.0")
2218 (source
2219 (origin
2220 (method url-fetch)
2221 (uri (string-append "https://elpa.gnu.org/packages/"
2222 "caps-lock-" version ".el"))
2223 (sha256
2224 (base32 "1i4hwam81p4dr0bk8257fkiz4xmv6knkjxj7a00fa35kgx5blpva"))))
2225 (build-system emacs-build-system)
2226 (home-page "http://elpa.gnu.org/packages/caps-lock.html")
2227 (synopsis "Caps Lock as a minor mode")
2228 (description
2229 "This package provides a minor mode to emulate the behavior of a Caps
2230 Lock key.")
2231 (license license:gpl3+)))
2232
2233 (define-public emacs-chronometrist
2234 (package
2235 (name "emacs-chronometrist")
2236 (version "0.5.5")
2237 (source
2238 (origin
2239 (method git-fetch)
2240 (uri (git-reference
2241 (url "https://github.com/contrapunctus-1/chronometrist.git")
2242 (commit (string-append "v" version))))
2243 (file-name (git-file-name name version))
2244 (sha256
2245 (base32 "1zccyfpgq68ixrcl8jq2r38165ngkqrb42y2hkyab6gxhvh4wkpl"))))
2246 (build-system emacs-build-system)
2247 (arguments
2248 `(#:phases
2249 (modify-phases %standard-phases
2250 (add-after 'unpack 'chdir-elisp
2251 ;; Elisp directory is not in root of the source.
2252 (lambda _
2253 (chdir "elisp")
2254 #t))
2255 (add-after 'install 'install-doc
2256 ;; Documentation consists of several Markdown files.
2257 (lambda* (#:key outputs #:allow-other-keys)
2258 (let* ((out (assoc-ref outputs "out"))
2259 (doc (string-append out
2260 "/share/doc/emacs-chronometrist-"
2261 ,version)))
2262 (with-directory-excursion "../doc"
2263 (for-each (lambda (f) (install-file f doc))
2264 (cons* "../UNLICENSE"
2265 "../WTFPL"
2266 (find-files "." "\\.md$")))))
2267 #t)))))
2268 (propagated-inputs
2269 `(("emacs-anaphora" ,emacs-anaphora)
2270 ("emacs-dash" ,emacs-dash)
2271 ("emacs-s" ,emacs-s)
2272 ("emacs-ts" ,emacs-ts)))
2273 (home-page "https://github.com/contrapunctus-1/chronometrist")
2274 (synopsis "Time tracker for Emacs")
2275 (description "Chronometrist is a time tracker in Emacs, largely modelled
2276 after the Android application, @emph{A Time Tracker}.
2277
2278 Its features are:
2279 @itemize
2280 @item Simple and efficient to use,
2281 @item Displays useful information about your time usage,
2282 @item Support for both mouse and keyboard,
2283 @item Human errors in tracking are easily fixed by editing a plain text file,
2284 @item Hooks to let you perform arbitrary actions when starting/stopping tasks.
2285 @end itemize")
2286 ;; Software is dual-licensed.
2287 (license (list license:unlicense license:wtfpl2))))
2288
2289 (define-public emacs-direnv
2290 (package
2291 (name "emacs-direnv")
2292 (version "2.1.0")
2293 (source
2294 (origin
2295 (method git-fetch)
2296 (uri (git-reference
2297 (url "https://github.com/wbolster/emacs-direnv")
2298 (commit version)))
2299 (file-name (git-file-name name version))
2300 (sha256
2301 (base32 "0xkqn4604k2imas6azy1www56br8ls4iv9a44pxcd8h94j1fp44d"))))
2302 (build-system emacs-build-system)
2303 (propagated-inputs
2304 `(("dash" ,emacs-dash)
2305 ("with-editor" ,emacs-with-editor)))
2306 (home-page "https://github.com/wbolster/emacs-direnv")
2307 (synopsis "Direnv integration for Emacs")
2308 (description
2309 "This package provides support for invoking direnv to get the environment
2310 for the current file and updating the environment within Emacs to match.
2311
2312 Direnv can be invoked manually, and a global minor mode is included that will
2313 update the environment when the active buffer changes.
2314
2315 Using emacs-direnv means that programs started from Emacs will use the
2316 environment set through Direnv.")
2317 (license license:gpl3+)))
2318
2319 (define-public emacs-elf-mode
2320 (package
2321 (name "emacs-elf-mode")
2322 (version "0.1.0")
2323 (source
2324 (origin
2325 (method git-fetch)
2326 (uri
2327 (git-reference
2328 (url "https://github.com/abo-abo/elf-mode")
2329 (commit version)))
2330 (file-name (git-file-name name version))
2331 (sha256
2332 (base32 "0cbvjbk2893ag1iy8ggixpirfiyhssm7fii96hb9jqdz874cdl0k"))))
2333 (build-system emacs-build-system)
2334 (home-page "https://github.com/abo-abo/elf-mode")
2335 (synopsis "Show symbol list when opening a binary file in Emacs")
2336 (description "This Emacs package provides a command showing the symbols
2337 that the binary uses instead of the actual binary contents.")
2338 (license license:gpl3+)))
2339
2340 (define-public emacs-form-feed
2341 (package
2342 (name "emacs-form-feed")
2343 (version "0.2.2")
2344 (source
2345 (origin
2346 (method git-fetch)
2347 (uri (git-reference
2348 (url "https://github.com/wasamasa/form-feed")
2349 (commit version)))
2350 (file-name (git-file-name name version))
2351 (sha256
2352 (base32 "171jna631b2iqcimfsik9c66gii8nc0zdb58m077w00rn7rcxbh2"))))
2353 (build-system emacs-build-system)
2354 (home-page "https://github.com/wasamasa/form-feed")
2355 (synopsis "Display ^L glyphs as horizontal lines")
2356 (description
2357 "This package provides a minor mode @code{form-feed-mode} to display page
2358 delimiters which usually appear as ^L glyphs on a single line as horizontal
2359 lines spanning the entire window. The minor mode is suitable for inclusion
2360 into mode hooks and is intended to be used that way.")
2361 (license license:gpl3+)))
2362
2363 (define-public emacs-ggtags
2364 (package
2365 (name "emacs-ggtags")
2366 (version "0.8.13")
2367 (source
2368 (origin
2369 (method url-fetch)
2370 (uri (string-append "https://elpa.gnu.org/packages/ggtags-"
2371 version ".el"))
2372 (sha256
2373 (base32
2374 "1qa7lcrcmf76sf6dy8sxbg4adq7rg59fm0n5848w3qxgsr0h45fg"))))
2375 (build-system emacs-build-system)
2376 (inputs
2377 `(("global" ,global)))
2378 (arguments
2379 `(#:phases
2380 (modify-phases %standard-phases
2381 (add-after 'unpack 'configure
2382 (lambda* (#:key inputs #:allow-other-keys)
2383 (chmod "ggtags.el" #o644)
2384 (emacs-substitute-variables "ggtags.el"
2385 ("ggtags-executable-directory"
2386 (string-append (assoc-ref inputs "global") "/bin")))
2387 #t)))))
2388 (home-page "https://github.com/leoliu/ggtags")
2389 (synopsis "Frontend to the GNU Global source code tagging system")
2390 (description "@code{ggtags} provides a frontend to the GNU Global source
2391 code tagging system.
2392
2393 Features:
2394
2395 @itemize
2396 @item Build on @code{compile.el} for asynchronicity and its large feature-set.
2397 @item Automatically update Global's tag files when needed with tuning for
2398 large source trees.
2399 @item Intuitive navigation among multiple matches with mode-line display of
2400 current match, total matches and exit status.
2401 @item Read tag with completion.
2402 @item Show definition at point.
2403 @item Jump to #include files.
2404 @item Support search history and saving a search to register/bookmark.
2405 @item Query replace.
2406 @item Manage Global's environment variables on a per-project basis.
2407 @item Highlight (definition) tag at point.
2408 @item Abbreviated display of file names.
2409 @item Support all Global search backends: @code{grep}, @code{idutils}, etc.
2410 @item Support exuberant ctags @url{http://ctags.sourceforge.net/} and
2411 @code{pygments} backend.
2412 @item Support all Global's output formats: @code{grep}, @code{ctags-x},
2413 @code{cscope} etc.
2414 @item Support projects on remote hosts (e.g. via @code{tramp}).
2415 @item Support eldoc.
2416 @item Search @code{GTAGSLIBPATH} for references and symbols.
2417 @end itemize\n")
2418 (license license:gpl3+)))
2419
2420 (define-public emacs-go-mode
2421 (package
2422 (name "emacs-go-mode")
2423 (version "1.5.0")
2424 (source (origin
2425 (method git-fetch)
2426 (uri (git-reference
2427 (url "https://github.com/dominikh/go-mode.el")
2428 (commit (string-append "v" version))))
2429 (file-name (git-file-name name version))
2430 (sha256
2431 (base32
2432 "1nd2h50yb0493wvf1h7fzplq45rmqn2w7kxpgnlxzhkvq99v8vzf"))))
2433 (build-system emacs-build-system)
2434 (arguments
2435 `(#:phases
2436 (modify-phases %standard-phases
2437 (add-after 'unpack 'make-writable
2438 (lambda _
2439 (for-each make-file-writable (find-files "." "\\.el$"))
2440 #t)))))
2441 (home-page "https://github.com/dominikh/go-mode.el")
2442 (synopsis "Go mode for Emacs")
2443 (description
2444 "This package provides go-mode, an Emacs mode for working with software
2445 written in the Go programming language.")
2446 (license license:bsd-3)))
2447
2448 (define-public emacs-google-maps
2449 ;; There has been no new release tag since 2013.
2450 (let ((commit "2eb16ff609f5a9f8d02c15238a111fbb7db6c146")
2451 (revision "1"))
2452 (package
2453 (name "emacs-google-maps")
2454 (version (git-version "1.0.0" revision commit))
2455 (source
2456 (origin
2457 (method git-fetch)
2458 (uri (git-reference
2459 (url "https://github.com/jd/google-maps.el")
2460 (commit commit)))
2461 (file-name (git-file-name name version))
2462 (sha256
2463 (base32 "1bl0dnksbf14d0xcnvdy9qpvzc5c8jwkxpmfvgayj6djikxnw2md"))))
2464 (build-system emacs-build-system)
2465 (home-page "https://github.com/jd/google-maps.el")
2466 (synopsis "Access Google Maps from Emacs")
2467 (description "The @code{google-maps} package displays Google Maps
2468 directly inside Emacs. It requires a Google Map Static API key to function.")
2469 (license license:gpl3+))))
2470
2471 (define-public emacs-graphviz-dot-mode
2472 (package
2473 (name "emacs-graphviz-dot-mode")
2474 (version "0.4.2")
2475 (source
2476 (origin
2477 (method git-fetch)
2478 (uri (git-reference
2479 (url "https://github.com/ppareit/graphviz-dot-mode")
2480 (commit (string-append "v" version))))
2481 (file-name (git-file-name name version))
2482 (sha256
2483 (base32 "1v1p85wk73nfsvv66qf90flgf9dqhmv15z1r7q4zmc4ifklqn08m"))))
2484 (build-system emacs-build-system)
2485 (arguments
2486 `(#:phases
2487 (modify-phases %standard-phases
2488 (add-before 'install 'make-info
2489 (lambda* (#:key inputs #:allow-other-keys)
2490 (with-directory-excursion "texinfo"
2491 (substitute* "Makefile"
2492 (("\\/usr\\/bin\\/gzip")
2493 (string-append (assoc-ref inputs "gzip") "/bin/gzip")))
2494 (invoke "make"
2495 "clean"
2496 "info"
2497 (string-append "TEXINFODIR="
2498 (assoc-ref inputs "texinfo")
2499 "/bin")))))
2500 (add-after 'install 'install-info
2501 (lambda* (#:key outputs #:allow-other-keys)
2502 (let* ((out (assoc-ref outputs "out"))
2503 (info (string-append out "/share/info")))
2504 (install-file "texinfo/graphviz-dot-mode.info.gz" info)
2505 #t))))))
2506 (native-inputs
2507 `(("gzip" ,gzip)
2508 ("texinfo" ,texinfo)))
2509 (propagated-inputs
2510 `(("emacs-company" ,emacs-company)))
2511 (home-page "http://ppareit.github.com/graphviz-dot-mode")
2512 (synopsis "Major mode for editing Graphviz DOT files")
2513 (description
2514 "This Emacs package helps you to create @file{.dot} or @file{.gv} files
2515 using the DOT syntax, and use Graphviz to convert these files to diagrams.")
2516 (license license:gpl2+)))
2517
2518 (define-public emacs-imenu-list
2519 (package
2520 (name "emacs-imenu-list")
2521 (version "0.8")
2522 (source
2523 (origin
2524 (method git-fetch)
2525 (uri
2526 (git-reference
2527 (url "https://github.com/bmag/imenu-list")
2528 (commit (string-append "v" version))))
2529 (file-name (git-file-name name version))
2530 (sha256
2531 (base32 "13xh9bdl3k6ccfq83wjmkpi4269qahv4davki4wq18dr4amrzhlx"))))
2532 (build-system emacs-build-system)
2533 (home-page "https://github.com/bmag/imenu-list")
2534 (synopsis
2535 "Automatically tracks the current buffer's imenu entries")
2536 (description
2537 "This Emacs minor mode creates an automatically updated buffer called
2538 @code{*Ilist*} that is populated with the current buffer's imenu entries.
2539 This buffer is typically shown as a sidebar (Emacs vertically splits the
2540 window).")
2541 (license license:gpl3+)))
2542
2543 (define-public emacs-mmm-mode
2544 (package
2545 (name "emacs-mmm-mode")
2546 (version "0.5.8")
2547 (source
2548 (origin
2549 (method url-fetch)
2550 (uri (string-append "https://elpa.gnu.org/packages/"
2551 "mmm-mode-" version ".tar"))
2552 (sha256
2553 (base32 "05ckf4zapdpvnd3sqpw6kxaa567zh536a36m9qzx3sqyjbyn5fb4"))))
2554 (build-system emacs-build-system)
2555 (home-page "https://github.com/purcell/mmm-mode")
2556 (synopsis "Allow multiple major modes in an Emacs buffer")
2557 (description
2558 "MMM Mode is a minor mode that allows multiple major modes to coexist in
2559 a single buffer.")
2560 (license license:gpl3+)))
2561
2562 (define-public emacs-mmt
2563 (package
2564 (name "emacs-mmt")
2565 (version "0.2.0")
2566 (source
2567 (origin
2568 (method git-fetch)
2569 (uri (git-reference
2570 (url "https://github.com/mrkkrp/mmt")
2571 (commit version)))
2572 (file-name (git-file-name name version))
2573 (sha256
2574 (base32 "13vbfc5597v0gd87qyhn10f93nb477vjpg3jlpphbax9fvkf4gav"))))
2575 (build-system emacs-build-system)
2576 (home-page "https://github.com/mrkkrp/mmt")
2577 (synopsis "Classic tools to write Emacs Lisp macros")
2578 (description "Emacs MMT is a package that contains classic tools for Emacs
2579 Lisp developers who want to write macros with convenience.")
2580 (license license:gpl3+)))
2581
2582 (define-public emacs-tablist
2583 (package
2584 (name "emacs-tablist")
2585 (version "1.0")
2586 (source (origin
2587 (method git-fetch)
2588 (uri (git-reference
2589 (url "https://github.com/politza/tablist")
2590 (commit (string-append "v" version))))
2591 (file-name (git-file-name name version))
2592 (sha256
2593 (base32
2594 "0pzsdg0rm59daw34ppss79cg05z9wnr8nkmdcc48nkd0p69ip2yy"))))
2595 (build-system emacs-build-system)
2596 (home-page "https://github.com/politza/tablist")
2597 (synopsis "Extension for @code{tabulated-list-mode}")
2598 (description "Tablist is the Emacs package that provides several
2599 additional features to @code{tabulated-list-mode}: it adds marks,
2600 filters, new key bindings and faces. It can be enabled by
2601 @code{tablist-mode} or @code{tablist-minor-mode} commands.")
2602 (license license:gpl3+)))
2603
2604 (define-public emacs-djvu
2605 (package
2606 (name "emacs-djvu")
2607 (version "1.1.1")
2608 (source
2609 (origin
2610 (method url-fetch)
2611 (uri (string-append "https://elpa.gnu.org/packages/"
2612 "djvu-" version ".el"))
2613 (sha256
2614 (base32 "0z2qk1v4qkvcwl27ycqfb8vyszq5v6b8ci29b4la00yaki16p04i"))))
2615 (build-system emacs-build-system)
2616 (inputs `(("djview" ,djview)
2617 ("djvulibre" ,djvulibre)))
2618 (arguments
2619 `(#:phases
2620 (modify-phases %standard-phases
2621 (add-after 'unpack 'configure
2622 (lambda* (#:key inputs outputs #:allow-other-keys)
2623 (let ((file "djvu.el")
2624 (djview (assoc-ref inputs "djview"))
2625 (djvulibre (assoc-ref inputs "djvulibre")))
2626 ;; Specify the absolute executable locations.
2627 (chmod file #o644)
2628 (substitute* file
2629 (("\"djvused\"") (string-append "\"" djvulibre "/bin/djvused\""))
2630 (("\"djvm\"") (string-append "\"" djvulibre "/bin/djvm\""))
2631 (("\"ddjvu\"") (string-append "\"" djvulibre "/bin/ddjvu\"")))
2632 (emacs-substitute-variables file
2633 ("djvu-djview-command" (string-append djview "/bin/djview"))))
2634 #t)))))
2635 (home-page "http://elpa.gnu.org/packages/djvu.html")
2636 (synopsis "Edit and view Djvu files via djvused")
2637 (description
2638 "This package is a front end for the command-line program djvused from
2639 DjVuLibre, see @url{http://djvu.sourceforge.net/}.")
2640 (license license:gpl3+)))
2641
2642 (define-public emacs-pabbrev
2643 (package
2644 (name "emacs-pabbrev")
2645 (version "4.2.1")
2646 (source
2647 (origin
2648 (method url-fetch)
2649 (uri (string-append "https://elpa.gnu.org/packages/"
2650 "pabbrev-" version ".el"))
2651 (sha256
2652 (base32 "19v5adk61y8fpigw7k6wz6dj79jwr450hnbi7fj0jvb21cvjmfxh"))))
2653 (build-system emacs-build-system)
2654 (home-page "http://elpa.gnu.org/packages/pabbrev.html")
2655 (synopsis "Predictive abbreviation expansion")
2656 (description
2657 "The code provides a abbreviation expansion for Emacs. It is
2658 fairly similar to Dabbrev expansion, which works based on the contents
2659 of the current buffer (or other buffers).
2660
2661 Predictive abbreviation expansion works based on the previously
2662 written text. Unlike dynamic abbreviation, the text is analysed
2663 during idle time, while Emacs is doing nothing else.")
2664 (license license:gpl3+)))
2665
2666 (define-public emacs-pdf-tools
2667 ;; XXX: Development branch fixes an incompatibility with Emacs 27+. See
2668 ;; <https://github.com/politza/pdf-tools/issues/616>.
2669 (let ((commit "c510442ab89c8a9e9881230eeb364f4663f59e76")
2670 (revision "1"))
2671 (package
2672 (name "emacs-pdf-tools")
2673 (version (git-version "0.90" revision commit))
2674 (source
2675 (origin
2676 (method git-fetch)
2677 (uri (git-reference
2678 (url "https://github.com/politza/pdf-tools")
2679 (commit commit)))
2680 (file-name (git-file-name name version))
2681 (sha256
2682 (base32 "17z3cpn76g9dp62drjrgrqpp1bgf4gl5k5gspylskpvd4kj4bq4d"))))
2683 (build-system gnu-build-system)
2684 (arguments
2685 `(#:tests? #f ; there are no tests
2686 #:modules ((guix build gnu-build-system)
2687 ((guix build emacs-build-system) #:prefix emacs:)
2688 (guix build utils)
2689 (guix build emacs-utils))
2690 #:imported-modules (,@%gnu-build-system-modules
2691 (guix build emacs-build-system)
2692 (guix build emacs-utils))
2693 #:phases
2694 (modify-phases %standard-phases
2695 ;; Build server side using 'gnu-build-system'.
2696 (add-after 'unpack 'enter-server-dir
2697 (lambda _ (chdir "server") #t))
2698 (add-after 'enter-server-dir 'autogen
2699 (lambda _
2700 (invoke "bash" "autogen.sh")))
2701
2702 ;; Build emacs side using 'emacs-build-system'.
2703 (add-after 'compress-documentation 'enter-lisp-dir
2704 (lambda _ (chdir "../lisp") #t))
2705 (add-after 'enter-lisp-dir 'emacs-patch-variables
2706 (lambda* (#:key outputs #:allow-other-keys)
2707 (for-each make-file-writable (find-files "."))
2708
2709 ;; Set path to epdfinfo program.
2710 (emacs-substitute-variables "pdf-info.el"
2711 ("pdf-info-epdfinfo-program"
2712 (string-append (assoc-ref outputs "out")
2713 "/bin/epdfinfo")))
2714 ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto
2715 ;; upgrading" that pdf-tools tries to perform.
2716 (emacs-substitute-variables "pdf-tools.el"
2717 ("pdf-tools-handle-upgrades" '()))))
2718 (add-after 'emacs-patch-variables 'emacs-add-source-to-load-path
2719 (assoc-ref emacs:%standard-phases 'add-source-to-load-path))
2720 (add-after 'emacs-add-source-to-load-path 'emacs-install
2721 (assoc-ref emacs:%standard-phases 'install))
2722 (add-after 'emacs-install 'emacs-build
2723 (assoc-ref emacs:%standard-phases 'build))
2724 (add-after 'emacs-install 'emacs-make-autoloads
2725 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
2726 (native-inputs
2727 `(("autoconf" ,autoconf)
2728 ("automake" ,automake)
2729 ("pkg-config" ,pkg-config)
2730 ("emacs" ,emacs-minimal)))
2731 (inputs
2732 `(("poppler" ,poppler)
2733 ("cairo" ,cairo)
2734 ("glib" ,glib)
2735 ("libpng" ,libpng)
2736 ("zlib" ,zlib)))
2737 (propagated-inputs
2738 `(("tablist" ,emacs-tablist)))
2739 (home-page "https://github.com/politza/pdf-tools")
2740 (synopsis "Emacs support library for PDF files")
2741 (description
2742 "PDF Tools is, among other things, a replacement of DocView for PDF
2743 files. The key difference is that pages are not pre-rendered by
2744 e.g. ghostscript and stored in the file-system, but rather created on-demand
2745 and stored in memory.")
2746 (license license:gpl3+))))
2747
2748 (define-public emacs-dash
2749 (package
2750 (name "emacs-dash")
2751 (version "2.17.0")
2752 (source (origin
2753 (method git-fetch)
2754 (uri (git-reference
2755 (url "https://github.com/magnars/dash.el")
2756 (commit version)))
2757 (file-name (git-file-name name version))
2758 (sha256
2759 (base32
2760 "153f55dqkhs8w2xlf6b88wp5vlkap7h8vjd9wxh4jp2ram5g4l1n"))))
2761 (build-system emacs-build-system)
2762 (arguments
2763 `(#:tests? #t
2764 #:test-command '("./run-tests.sh")))
2765 (home-page "https://github.com/magnars/dash.el")
2766 (synopsis "Modern list library for Emacs")
2767 (description "This package provides a modern list API library for Emacs.")
2768 (license license:gpl3+)))
2769
2770 (define-public emacs-bui
2771 (package
2772 (name "emacs-bui")
2773 (version "1.2.1")
2774 (source (origin
2775 (method git-fetch)
2776 (uri (git-reference
2777 (url "https://notabug.org/alezost/emacs-bui.git")
2778 (commit (string-append "v" version))))
2779 (file-name (git-file-name name version))
2780 (sha256
2781 (base32
2782 "0sszdl4kvqbihdh8d7mybpp0d8yw2p3gyiipjcxz9xhvvmw3ww4x"))))
2783 (build-system emacs-build-system)
2784 (propagated-inputs
2785 `(("dash" ,emacs-dash)))
2786 (home-page "https://notabug.org/alezost/emacs-bui")
2787 (synopsis "Buffer interface library for Emacs")
2788 (description
2789 "BUI (Buffer User Interface) is a library for making @code{list} and
2790 @code{info} interfaces to display an arbitrary data of the same
2791 type, for example: packages, buffers, files, etc.")
2792 (license license:gpl3+)))
2793
2794 (define-public emacs-guix
2795 (let ((commit "58a840d0671091e3064e36244790ef8839da87d6")
2796 (revision "2"))
2797 (package
2798 (name "emacs-guix")
2799 (version (git-version "0.5.2" revision commit))
2800 (source (origin
2801 (method git-fetch)
2802 (uri (git-reference
2803 (url "https://gitlab.com/emacs-guix/emacs-guix")
2804 (commit commit)))
2805 (file-name (git-file-name name version))
2806 (sha256
2807 (base32
2808 "1qnr5sixmvrhr9rinrhfy7sy20mikjvvwbdixwkbx30qpcdwgwj1"))))
2809 (build-system gnu-build-system)
2810 (native-inputs
2811 `(("autoconf" ,autoconf)
2812 ("automake" ,automake)
2813 ("pkg-config" ,pkg-config)
2814 ("texinfo" ,texinfo)
2815 ("emacs" ,emacs-minimal)))
2816 (inputs
2817 `(("guile" ,@(assoc-ref (package-native-inputs guix) "guile"))
2818 ("guix" ,guix)))
2819 (propagated-inputs
2820 `(("geiser" ,emacs-geiser)
2821 ("guile-gcrypt" ,guile-gcrypt)
2822 ("dash" ,emacs-dash)
2823 ("bui" ,emacs-bui)
2824 ("edit-indirect" ,emacs-edit-indirect)
2825 ("magit-popup" ,emacs-magit-popup)))
2826 (home-page "https://emacs-guix.gitlab.io/website/")
2827 (synopsis "Emacs interface for GNU Guix")
2828 (description
2829 "Emacs-Guix provides a visual interface, tools and features for the GNU
2830 Guix package manager. Particularly, it allows you to do various package
2831 management tasks from Emacs. To begin with, run @code{M-x guix-about} or
2832 @code{M-x guix-help} command.")
2833 (license license:gpl3+))))
2834
2835 (define-public emacs-build-farm
2836 (package
2837 (name "emacs-build-farm")
2838 (version "0.2.2")
2839 (source (origin
2840 (method git-fetch)
2841 (uri (git-reference
2842 (url "https://notabug.org/alezost/emacs-build-farm.git")
2843 (commit (string-append "v" version))))
2844 (file-name (git-file-name name version))
2845 (sha256
2846 (base32
2847 "0i0bwbav5861j2y15j9nd5m9rdqg9q97zgcbld8pivr9nyxy63lz"))))
2848 (build-system emacs-build-system)
2849 (propagated-inputs
2850 `(("bui" ,emacs-bui)
2851 ("magit-popup" ,emacs-magit-popup)))
2852 (home-page "https://notabug.org/alezost/emacs-build-farm")
2853 (synopsis "Emacs interface for Hydra and Cuirass build farms")
2854 (description
2855 "This Emacs package provides an interface for Hydra and
2856 Cuirass (build farms used by Nix and Guix). It allows you to look at
2857 various data related to the build farm projects, jobsets, builds and
2858 evaluations. The entry point is @code{M-x build-farm} command.")
2859 (license license:gpl3+)))
2860
2861 (define-public emacs-d-mode
2862 (package
2863 (name "emacs-d-mode")
2864 (version "2.0.10")
2865 (source
2866 (origin
2867 (method git-fetch)
2868 (uri (git-reference
2869 (url "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
2870 (commit version)))
2871 (file-name (git-file-name name version))
2872 (sha256
2873 (base32 "0915kb9jcaixgindhj85fmykkhvj31ckp1yg6746fznwdgfrlifv"))))
2874 (build-system emacs-build-system)
2875 (propagated-inputs
2876 `(("emacs-undercover" ,emacs-undercover)))
2877 (home-page "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
2878 (synopsis "Emacs major mode for editing D code")
2879 (description "This package provides an Emacs major mode for highlighting
2880 code written in the D programming language. This mode is currently known to
2881 work with Emacs 24 and 25.")
2882 (license license:gpl2+)))
2883
2884 (define-public emacs-extempore-mode
2885 ;; Use the latest commit at time of packaging. There are no releases or tags.
2886 (let ((commit "09518ae6650d7be33a4633a4c0f31b7130d04c6e")
2887 (revision "1"))
2888 (package
2889 (name "emacs-extempore-mode")
2890 (version (git-version "0.0.0" revision commit))
2891 (source
2892 (origin
2893 (method git-fetch)
2894 (uri (git-reference
2895 (url "https://github.com/extemporelang/extempore-emacs-mode")
2896 (commit commit)))
2897 (file-name (git-file-name name version))
2898 (sha256
2899 (base32 "0hfza9lzdsz94gxhmzyp9fwviscv19rmnjgd0q613faayn11sjsp"))))
2900 (build-system emacs-build-system)
2901 (home-page "https://github.com/extemporelang/extempore-emacs-mode")
2902 (synopsis "Emacs major mode for Extempore source files")
2903 (description
2904 "This package provides a major mode for editing Extempore code. It can
2905 create an Extempore REPL, connect the current @code{extempore-mode} buffer to a
2906 running Extempore process, and more.")
2907 (license license:bsd-2))))
2908
2909 (define-public emacs-kakoune
2910 ;; Package has no release. Version is extracted from "Version:" keyword in
2911 ;; main file.
2912 (let ((commit "d73d14e69ea38076af50cc69f846808383ff539d")
2913 (revision "0"))
2914 (package
2915 (name "emacs-kakoune")
2916 (version (git-version "0.1" revision commit))
2917 (source
2918 (origin
2919 (method git-fetch)
2920 (uri (git-reference
2921 (url "https://github.com/jmorag/kakoune.el")
2922 (commit commit)))
2923 (file-name (git-file-name name version))
2924 (sha256
2925 (base32 "0nk6jdy1y5mc3ryd0smiqghrk6iv34d5grc7f7migmshlbq0np92"))))
2926 (build-system emacs-build-system)
2927 (propagated-inputs
2928 `(("emacs-expand-region" ,emacs-expand-region)
2929 ("emacs-multiple-cursors" ,emacs-multiple-cursors)
2930 ("emacs-ryo-modal" ,emacs-ryo-modal)))
2931 (home-page "https://github.com/jmorag/kakoune.el")
2932 (synopsis "Emacs simple simulation, but not emulation, of Kakoune")
2933 (description "This package provides many, but not all of the editing
2934 primitives in the Kakoune editor. Unlike Evil mode for Vim, this is a very
2935 shallow emulation, which seeks to do as little work as possible, leveraging
2936 Emacs native editing commands and the work of other packages wherever
2937 possible.")
2938 (license license:expat))))
2939
2940 (define-public emacs-kana
2941 ;; Package has no release. Version is extracted from "Version:" keyword in
2942 ;; main file.
2943 (let ((commit "b239c3c3c6124b46ff720cca7b80ecbafd7fa489")
2944 (revision "0"))
2945 (package
2946 (name "emacs-kana")
2947 (version (git-version "1.0.0" revision commit))
2948 (source
2949 (origin
2950 (method git-fetch)
2951 (uri (git-reference
2952 (url "https://github.com/chenyanming/kana")
2953 (commit commit)))
2954 (file-name (git-file-name name version))
2955 (sha256
2956 (base32 "0vrrl1kniq4h111jvnapvx3wybvsl3alfaygw634mmryr3h7pwi8"))))
2957 (build-system emacs-build-system)
2958 (home-page "https://github.com/chenyanming/kana")
2959 (synopsis "Learn Japanese Kana in Emacs")
2960 (description
2961 "This Emacs mode displays Hiragana and Katakana flashcards. It can use
2962 functionality from Emacs Kanji mode if it is installed.")
2963 (license license:gpl3+))))
2964
2965 (define-public emacs-kanji
2966 ;; Package has no release. Version is extracted from "Version:" keyword in
2967 ;; main file.
2968 (let ((commit "5e9d5b72468ece11cfb81b729be6babf63ede425")
2969 (revision "0"))
2970 (package
2971 (name "emacs-kanji")
2972 (version (git-version "1.0" revision commit))
2973 (source
2974 (origin
2975 (method git-fetch)
2976 (uri (git-reference
2977 (url "https://github.com/wsgac/kanji-mode")
2978 (commit commit)))
2979 (file-name (git-file-name name version))
2980 (sha256
2981 (base32 "1zh7klqaza840q5f44zzh1wrnd6sqa2k93z3dgx3yhhsxfd1dxvy"))))
2982 (build-system emacs-build-system)
2983 (home-page "https://github.com/wsgac/kanji-mode")
2984 (synopsis "Emacs minor mode for displaying Japanese Kanji stroke order")
2985 (description
2986 "This minor mode displays the stroke order of the Kanji sign under
2987 cursor in a transient buffer. It has a built-in collection of SVG images
2988 depicting stroke orders for all Kanji. The collection is a slightly modified
2989 and limited version of the images provided by the KanjiVG project.")
2990 (license license:gpl3+))))
2991
2992 (define-public emacs-keyfreq
2993 (package
2994 (name "emacs-keyfreq")
2995 (version "20160516.716")
2996 (source
2997 (origin
2998 (method url-fetch)
2999 (uri (string-append "http://melpa.org/packages/keyfreq-"
3000 version ".el"))
3001 (sha256
3002 (base32
3003 "008hd7d06qskc3mx0bbdgpgy2pwxr8185fzlyqf9qjg49y74p6g8"))))
3004 (build-system emacs-build-system)
3005 (home-page "https://github.com/dacap/keyfreq")
3006 (synopsis "Track Emacs command frequencies")
3007 (description "@code{emacs-keyfeq} tracks and shows how many times you used
3008 a command.")
3009 (license license:gpl3+)))
3010
3011 (define-public emacs-olivetti
3012 (package
3013 (name "emacs-olivetti")
3014 (version "1.11.1")
3015 (source
3016 (origin
3017 (method git-fetch)
3018 (uri (git-reference
3019 (url "https://github.com/rnkn/olivetti")
3020 (commit (string-append "v" version))))
3021 (file-name (git-file-name name version))
3022 (sha256
3023 (base32 "0rghxjdzyfykd4qc2zkavvbyf9xc899k1b8hbk890f1y3vakqvqz"))))
3024 (build-system emacs-build-system)
3025 (home-page "https://github.com/rnkn/olivetti")
3026 (synopsis "Emacs minor mode for a nice writing environment")
3027 (description "This package provides an Emacs minor mode that puts writing
3028 in the center.")
3029 (license license:gpl3+)))
3030
3031 (define-public emacs-undo-tree
3032 (package
3033 (name "emacs-undo-tree")
3034 (version "0.7.5")
3035 (source
3036 (origin
3037 (method url-fetch)
3038 (uri (string-append "https://elpa.gnu.org/packages/"
3039 "undo-tree-" version ".el"))
3040 (sha256
3041 (base32 "00admi87gqm0akhfqm4dcp9fw8ihpygy030955jswkha4zs7lw2p"))))
3042 (build-system emacs-build-system)
3043 (home-page "http://www.dr-qubit.org/emacs.php")
3044 (synopsis "Treat undo history as a tree")
3045 (description
3046 "Tree-like interface to Emacs undo system, providing
3047 graphical tree presentation of all previous states of buffer that
3048 allows easily move between them.")
3049 (license license:gpl3+)))
3050
3051 (define-public emacs-s
3052 (package
3053 (name "emacs-s")
3054 (version "1.12.0")
3055 (source
3056 (origin
3057 (method git-fetch)
3058 (uri (git-reference
3059 (url "https://github.com/magnars/s.el")
3060 (commit version)))
3061 (file-name (git-file-name name version))
3062 (sha256
3063 (base32 "1g8mqd13llj007al4nlxxx4z2lcsg3wk970mgjn0avwrhjjgdmmv"))))
3064 (build-system emacs-build-system)
3065 (arguments
3066 `(#:tests? #t
3067 #:emacs ,emacs ; FIXME: tests fail with emacs-minimal
3068 #:test-command '("./run-tests.sh")))
3069 (home-page "https://github.com/magnars/s.el")
3070 (synopsis "Emacs string manipulation library")
3071 (description "This package provides an Emacs library for manipulating
3072 strings.")
3073 (license license:gpl3+)))
3074
3075 (define-public emacs-symon
3076 (package
3077 (name "emacs-symon")
3078 (version "20160630")
3079 (source
3080 (origin
3081 (method git-fetch)
3082 (uri (git-reference
3083 (url "https://github.com/zk-phi/symon")
3084 (commit version)))
3085 (file-name (git-file-name name version))
3086 (sha256
3087 (base32 "1q7di9s8k710nx98wnqnbkkhdimrn0jf6z4xkm4c78l6s5idjwlz"))))
3088 (build-system emacs-build-system)
3089 (home-page "https://github.com/zk-phi/symon")
3090 (synopsis "Tiny graphical system monitor")
3091 (description
3092 "Tiny graphical system monitor for the Emacs minibuffer when idle.")
3093 (license license:gpl2+)))
3094
3095 (define-public emacs-sx
3096 (let ((version "20191229")
3097 (revision "0")
3098 (commit "e9d1093c97507a6d7b4f4710ef65200dae725e5f"))
3099 (package
3100 (name "emacs-sx")
3101 (version (git-version version revision commit))
3102 (source
3103 (origin
3104 (method git-fetch)
3105 (uri (git-reference
3106 (url "https://github.com/vermiculus/sx.el")
3107 (commit commit)))
3108 (file-name (git-file-name name version))
3109 (sha256
3110 (base32 "0m90ddwm8j0y6d1ppqhd2gil1107k202blw6mzm5bdambn4nfqkf"))))
3111 (build-system emacs-build-system)
3112 (propagated-inputs
3113 `(("emacs-markdown-mode" ,emacs-markdown-mode)))
3114 (home-page "https://github.com/vermiculus/sx.el")
3115 (synopsis "Emacs StackExchange client")
3116 (description
3117 "Emacs StackExchange client. Ask and answer questions on
3118 Stack Overflow, Super User, and other StackExchange sites.")
3119 (license license:gpl3+))))
3120
3121 (define-public emacs-toc-org
3122 (package
3123 (name "emacs-toc-org")
3124 (version "1.1.0")
3125 (source
3126 (origin
3127 (method git-fetch)
3128 (uri (git-reference
3129 (url "https://github.com/snosov1/toc-org")
3130 (commit version)))
3131 (file-name (git-file-name name version))
3132 (sha256
3133 (base32 "0lk0rji85a1c0c5r9an0fdvsm4n4jyixsknmr8ywha3lfmc2p0l8"))))
3134 (build-system emacs-build-system)
3135 (home-page "https://github.com/snosov1/toc-org")
3136 (synopsis "Table of Contents generator for Emacs Org mode")
3137 (description
3138 "This package generates a table of contents when saving in Org and
3139 Markdown files.")
3140 (license license:gpl2+)))
3141
3142 (define-public emacs-toml-mode
3143 (let ((version "0.1.3")
3144 (revision "0")
3145 (commit "f6c61817b00f9c4a3cab1bae9c309e0fc45cdd06"))
3146 (package
3147 (name "emacs-toml-mode")
3148 (version (git-version version revision commit))
3149 (source
3150 (origin
3151 (method git-fetch)
3152 (uri (git-reference
3153 (url "https://github.com/dryman/toml-mode.el")
3154 (commit commit)))
3155 (file-name (git-file-name name version))
3156 (sha256
3157 (base32 "05b4ksay85c8y5ncax0qsvnmplwsfiw24z16a58gkarjz938hb57"))))
3158 (build-system emacs-build-system)
3159 (home-page "https://github.com/dryman/toml-mode.el")
3160 (synopsis "Emacs major mode for editing TOML files")
3161 (description
3162 ;; XXX: Ideally we'd use @acronym for "TOML", but Guile's Texinfo
3163 ;; parser does not currently support @comma{}, making it impossible
3164 ;; to use commas in the @acronym arguments.
3165 "This package provides a major mode for editing files in @dfn{TOML}
3166 (Tom's Obvious, Minimal Language) data format.")
3167 (license license:gpl3+))))
3168
3169 (define-public emacs-twittering-mode
3170 (package
3171 (name "emacs-twittering-mode")
3172 (version "3.1.0")
3173 (source
3174 (origin
3175 (method url-fetch)
3176 (uri (string-append "mirror://sourceforge/twmode"
3177 "/twittering-mode-" version
3178 "/twittering-mode-" version ".tar.xz"))
3179 (sha256
3180 (base32 "02imis1gxz90lah0b5n37j2hlsaw5igss11d85vpsm5d1bgw8j28"))))
3181 (build-system emacs-build-system)
3182 (home-page "http://twmode.sourceforge.net")
3183 (synopsis "Emacs major mode for Twitter")
3184 (description
3185 "Twittering mode is an Emacs major mode for Twitter.
3186 You can check timelines, tweet, mark posts as favorites and so on with
3187 Emacs.")
3188 (license license:gpl2+)))
3189
3190 (define-public emacs-f
3191 (package
3192 (name "emacs-f")
3193 (version "0.20.0")
3194 (source (origin
3195 (method git-fetch)
3196 (uri (git-reference
3197 (url "https://github.com/rejeep/f.el")
3198 (commit (string-append "v" version))))
3199 (file-name (git-file-name name version))
3200 (sha256
3201 (base32
3202 "1a47xk3yp1rp17fqg7ldl3d3fb888h0fz3sysqfdz1bfdgs8a9bk"))))
3203 (build-system emacs-build-system)
3204 (propagated-inputs
3205 `(("emacs-s" ,emacs-s)
3206 ("emacs-dash" ,emacs-dash)))
3207 (home-page "https://github.com/rejeep/f.el")
3208 (synopsis "Emacs API for working with files and directories")
3209 (description "This package provides an Emacs library for working with
3210 files and directories.")
3211 (license license:gpl3+)))
3212
3213 (define-public emacs-fountain-mode
3214 (package
3215 (name "emacs-fountain-mode")
3216 (version "3.3.0")
3217 (source
3218 (origin
3219 (method git-fetch)
3220 (uri (git-reference
3221 (url "https://github.com/rnkn/fountain-mode")
3222 (commit (string-append "v" version))))
3223 (file-name (git-file-name name version))
3224 (sha256
3225 (base32 "04jrv6i4ah3i8c9hcd9wyaw2vrxr46f50qb9qwna2v7qa5vaway3"))))
3226 (build-system emacs-build-system)
3227 (home-page "https://github.com/rnkn/fountain-mode")
3228 (synopsis "Major mode for screenwriting in Fountain markup")
3229 (description "Fountain Mode is a scriptwriting program for GNU Emacs
3230 using the Fountain plain text markup format.")
3231 (license license:gpl3+)))
3232
3233 (define-public emacs-fringe-helper
3234 (let ((commit "ef4a9c023bae18ec1ddd7265f1f2d6d2e775efdd")
3235 (revision "1"))
3236 (package
3237 (name "emacs-fringe-helper")
3238 (version (git-version "1.0.1" revision commit))
3239 (source
3240 (origin
3241 (method git-fetch)
3242 (uri (git-reference
3243 (url "https://github.com/nschum/fringe-helper.el")
3244 (commit commit)))
3245 (file-name (git-file-name name version))
3246 (sha256
3247 (base32 "0ra9rc53l1gvkqank8apasl3r7wz2yfjrcvmfk3wpxhh24ppxv9d"))))
3248 (build-system emacs-build-system)
3249 (arguments
3250 `(#:tests? #t
3251 #:test-command '("emacs" "--batch"
3252 "-l" "tests.el"
3253 "-f" "ert-run-tests-batch-and-exit")))
3254 (home-page "https://github.com/nschum/fringe-helper.el")
3255 (synopsis "Helper functions for fringe bitmaps")
3256 (description
3257 "This package allows fringe bitmaps to be defined with a visual string
3258 representation.")
3259 (license license:gpl2+))))
3260
3261 (define-public emacs-git-gutter
3262 (package
3263 (name "emacs-git-gutter")
3264 (version "0.90")
3265 (source
3266 (origin
3267 (method git-fetch)
3268 (uri (git-reference
3269 (url "https://github.com/syohex/emacs-git-gutter")
3270 (commit version)))
3271 (file-name (git-file-name name version))
3272 (sha256
3273 (base32 "1abagq0psip7cgsqbfjv72qy60ywsny0ibsfcn74ldj6a9v17mz5"))))
3274 (build-system emacs-build-system)
3275 (home-page "https://github.com/syohex/emacs-git-gutter")
3276 (synopsis "See and manage hunks of text in a version control system")
3277 (description
3278 "This package is an Emacs minor mode for displaying and interacting with
3279 hunks of text managed in a version control system. Added modified and deleted
3280 areas can be indicated with symbols on the edge of the buffer, and commands
3281 can be used to move between and perform actions on these hunks.
3282
3283 Git, Mercurial, Subversion and Bazaar are supported, and many parts of the
3284 display and behaviour is easily customisable.")
3285 (license license:gpl3+)))
3286
3287 (define-public emacs-git-gutter-fringe
3288 (let ((commit "16226caab44174301f1659f7bf8cc67a76153445")
3289 (revision "1"))
3290 (package
3291 (name "emacs-git-gutter-fringe")
3292 (version (git-version "0.23" revision commit))
3293 (source
3294 (origin
3295 (method git-fetch)
3296 (uri (git-reference
3297 (url "https://github.com/syohex/git-gutter-fringe")
3298 (commit commit)))
3299 (file-name (git-file-name name version))
3300 (sha256
3301 (base32 "1y77gjl0yznamdj0f55d418zb75k22izisjg7ikvrfsl2yfqf3pm"))))
3302 (build-system emacs-build-system)
3303 (propagated-inputs
3304 `(("emacs-git-gutter" ,emacs-git-gutter)
3305 ("emacs-fringe-helper" ,emacs-fringe-helper)))
3306 (home-page "https://github.com/syohex/git-gutter-fringe")
3307 (synopsis "See and manage hunks of text in a version control system")
3308 (description
3309 "This package extends @code{git-gutter} to use the fringe area of a
3310 window.")
3311 (license license:gpl3+))))
3312
3313 (define-public emacs-git-link
3314 (package
3315 (name "emacs-git-link")
3316 (version "0.7.5")
3317 (source
3318 (origin
3319 (method git-fetch)
3320 (uri (git-reference
3321 (url "https://github.com/sshaw/git-link")
3322 (commit (string-append "v" version))))
3323 (file-name (git-file-name name version))
3324 (sha256
3325 (base32 "04xa6lp8wkjb6zs096bf4sz124grcjj15xv1h009bmn2j95rggj6"))))
3326 (build-system emacs-build-system)
3327 (arguments
3328 `(#:tests? #t
3329 #:test-command '("make" "test")))
3330 (home-page "https://github.com/sshaw/git-link")
3331 (synopsis "Create links for files and commits in GitHub/GitLab/etc. repos")
3332 (description
3333 "@code{git-link} returns the URL for the current buffer's file location
3334 at the current line number or active region. @code{git-link-commit} returns
3335 the URL for a commit. URLs are added to the kill ring.")
3336 (license license:gpl3+)))
3337
3338 (define-public emacs-apheleia
3339 (package
3340 (name "emacs-apheleia")
3341 (version "1.0")
3342 (source
3343 (origin
3344 (method git-fetch)
3345 (uri (git-reference
3346 (url "https://github.com/raxod502/apheleia")
3347 (commit (string-append "v" version))))
3348 (file-name (git-file-name name version))
3349 (sha256
3350 (base32 "04pls7zahy4jfkikv6fvd9vfpm4glhyanmmkx79hgi9pwdv966rf"))))
3351 (build-system emacs-build-system)
3352 (home-page "https://github.com/raxod502/apheleia")
3353 (synopsis "Reformat buffer stably")
3354 (description
3355 "This package allows for a buffer to be reformatted without moving point,
3356 so that running a formatting tool like @code{Prettier} or @code{Black} upon
3357 saving won't move point back to the beginning of the buffer.")
3358 (license license:gpl3+)))
3359
3360 (define-public emacs-git-timemachine
3361 (package
3362 (name "emacs-git-timemachine")
3363 (version "4.11")
3364 (source
3365 (origin
3366 (method git-fetch)
3367 (uri (git-reference
3368 (url "https://gitlab.com/pidu/git-timemachine.git")
3369 (commit version)))
3370 (file-name (git-file-name name version))
3371 (sha256
3372 (base32
3373 "1pz4l1xnq6s67w5yq9107vm8dg7rqf8n9dmbn90jys97c722g70n"))))
3374 (build-system emacs-build-system)
3375 (propagated-inputs
3376 `(("emacs-transient" ,emacs-transient)))
3377 (home-page "https://gitlab.com/pidu/git-timemachine")
3378 (synopsis "Step through historic versions of Git-controlled files")
3379 (description "This package enables you to step through historic versions
3380 of files under Git version control from within Emacs.")
3381 (license license:gpl3+)))
3382
3383 (define-public emacs-minitest
3384 (let ((commit "1aadb7865c1dc69c201cecee275751ecec33a182")
3385 (revision "1"))
3386 (package
3387 (name "emacs-minitest")
3388 (version (git-version "0.8.0" revision commit))
3389 (source (origin
3390 (method git-fetch)
3391 (uri (git-reference
3392 (url "https://github.com/arthurnn/minitest-emacs")
3393 (commit commit)))
3394 (file-name (git-file-name name commit))
3395 (sha256
3396 (base32
3397 "1l18zqpdzbnqj2qawq8hj7z7pl8hr8z9d8ihy8jaiqma915hmhj1"))))
3398 (build-system emacs-build-system)
3399 (arguments
3400 '(#:include (cons "^snippets\\/minitest-mode\\/" %default-include)
3401 #:exclude (delete "^[^/]*tests?\\.el$" %default-exclude)))
3402 (propagated-inputs
3403 `(("emacs-dash" ,emacs-dash)
3404 ("emacs-f" ,emacs-f)))
3405 (home-page "https://github.com/arthurnn/minitest-emacs")
3406 (synopsis "Emacs minitest mode")
3407 (description
3408 "The minitest mode provides commands to run the tests for the current
3409 file or line, as well as rerunning the previous tests, or all the tests for a
3410 project.
3411
3412 This package also includes relevant snippets for yasnippet.")
3413 (license license:expat))))
3414
3415 (define-public emacs-gdscript-mode
3416 (package
3417 (name "emacs-gdscript-mode")
3418 (version "1.4.0")
3419 (source
3420 (origin
3421 (method git-fetch)
3422 (uri (git-reference
3423 (url "https://github.com/godotengine/emacs-gdscript-mode")
3424 (commit version)))
3425 (file-name (git-file-name name version))
3426 (sha256
3427 (base32 "09q0himrz7a6xgz0jmcl85qc5xhk5fwi6d2vw1n8qaiavm96ksdy"))))
3428 (build-system emacs-build-system)
3429 (home-page "https://github.com/godotengine/emacs-gdscript-mode")
3430 (synopsis "GDScript support and syntax highlighting in Emacs")
3431 (description
3432 "This package adds support for the GDScript programming language from the
3433 Godot game engine in Emacs. It features all the essentials, e.g., syntax
3434 highlighting, code folding, indentation, automatic pairing, auto-completion,
3435 and code formatting.")
3436 (license license:gpl3+)))
3437
3438 (define-public emacs-el-mock
3439 (package
3440 (name "emacs-el-mock")
3441 (version "1.25.1")
3442 (source
3443 (origin
3444 (method git-fetch)
3445 (uri (git-reference
3446 (url "https://github.com/rejeep/el-mock.el")
3447 (commit (string-append "v" version))))
3448 (file-name (git-file-name name version))
3449 (sha256
3450 (base32 "13mv1rhgkwiww2wh5w926jz7idppp492wir1vdl245c5x50dh4f7"))))
3451 (build-system emacs-build-system)
3452 (home-page "https://github.com/rejeep/el-mock.el")
3453 (synopsis "Tiny mock and stub framework in Emacs Lisp")
3454 (description
3455 "Emacs Lisp Mock is a library for mocking and stubbing using readable
3456 syntax. Most commonly Emacs Lisp Mock is used in conjunction with Emacs Lisp
3457 Expectations, but it can be used in other contexts.")
3458 (license license:gpl3+)))
3459
3460 (define-public emacs-espuds
3461 (package
3462 (name "emacs-espuds")
3463 (version "0.3.3")
3464 (source
3465 (origin
3466 (method git-fetch)
3467 (uri (git-reference
3468 (url "https://github.com/ecukes/espuds")
3469 (commit (string-append "v" version))))
3470 (file-name (git-file-name name version))
3471 (sha256
3472 (base32 "16r4j27j9yfdiy841w9q5ykkc6n3wrm7hvfacagb32mydk821ijg"))))
3473 (build-system emacs-build-system)
3474 (propagated-inputs
3475 `(("emacs-s" ,emacs-s)
3476 ("emacs-dash" ,emacs-dash)
3477 ("emacs-f" ,emacs-f)))
3478 (home-page "https://github.com/ecukes/espuds")
3479 (synopsis "Common step definitions for Ecukes")
3480 (description "Espuds is a collection of the most commonly used step
3481 definitions for testing with the Ecukes framework.")
3482 (license license:gpl3+)))
3483
3484 (define-public emacs-spark
3485 (let ((version "20160503") ; no proper tag, use date of commit
3486 (commit "0bf148c3ede3b31d56fd75f347cdd0b0eae60025")
3487 (revision "1"))
3488 (package
3489 (name "emacs-spark")
3490 (version (git-version version revision commit))
3491 (source
3492 (origin
3493 (method git-fetch)
3494 (uri (git-reference
3495 (url "https://github.com/alvinfrancis/spark")
3496 (commit commit)))
3497 (file-name (git-file-name name version))
3498 (sha256
3499 (base32
3500 "1ykqr86j17mi95s08d9fp02d7ych1331b04dcqxzxnmpkhwngyj1"))))
3501 (build-system emacs-build-system)
3502 (home-page "https://github.com/alvinfrancis/spark")
3503 (synopsis "Sparkline generation library for Emacs Lisp")
3504 (description "@code{emacs-spark} is a sparkline generation library for
3505 Emacs Lisp. It generates a sparkline string given a list of numbers. It is a
3506 port of @code{cl-spark} to Emacs Lisp.")
3507 (license license:expat))))
3508
3509 (define-public emacs-es-mode
3510 (package
3511 (name "emacs-es-mode")
3512 (version "4.3.0")
3513 (source
3514 (origin
3515 (method git-fetch)
3516 (uri (git-reference
3517 (url "https://github.com/dakrone/es-mode")
3518 (commit version)))
3519 (file-name (git-file-name name version))
3520 (sha256
3521 (base32 "1qhfnd5anp5qrmravv7ks5ix763xnki2f5jwcyj70qyxwr0l60cg"))))
3522 (build-system emacs-build-system)
3523 (propagated-inputs
3524 ;; The version of org in Emacs 24.5 is not sufficient, and causes tables
3525 ;; to be rendered incorrectly
3526 `(("emacs-dash" ,emacs-dash)
3527 ("emacs-org" ,emacs-org)
3528 ("emacs-spark" ,emacs-spark)))
3529 (home-page "https://github.com/dakrone/es-mode")
3530 (synopsis "Major mode for editing Elasticsearch queries")
3531 (description "@code{es-mode} includes highlighting, completion and
3532 indentation support for Elasticsearch queries. Also supported are
3533 @code{es-mode} blocks in @code{org-mode}, for which the results of queries can
3534 be processed through @code{jq}, or in the case of aggregations, can be
3535 rendered in to a table. In addition, there is an @code{es-command-center}
3536 mode, which displays information about Elasticsearch clusters.")
3537 (license license:gpl3+)))
3538
3539 (define-public emacs-expand-region
3540 (package
3541 (name "emacs-expand-region")
3542 (version "0.11.0")
3543 (source
3544 (origin
3545 (method git-fetch)
3546 (uri (git-reference
3547 (url "https://github.com/magnars/expand-region.el")
3548 (commit version)))
3549 (file-name (git-file-name name version))
3550 (sha256
3551 (base32 "0h40dhc3kn8fq86xnwi5lz7ql8my8737y7wkqr897p15y90swr35"))))
3552 (build-system emacs-build-system)
3553 (home-page "https://github.com/magnars/expand-region.el")
3554 (synopsis "Increase selected region by semantic units")
3555 (description
3556 "Expand region increases the selected region by semantic units. Just
3557 keep pressing the key until it selects what you want. There's also
3558 @code{er/contract-region} if you expand too far.")
3559 (license license:gpl3+)))
3560
3561 (define-public emacs-explain-pause-mode
3562 (let ((commit "2356c8c3639cbeeb9751744dbe737267849b4b51")
3563 (revision "0"))
3564 (package
3565 (name "emacs-explain-pause-mode")
3566 (version (git-version "0.1" revision commit))
3567 (source (origin
3568 (method git-fetch)
3569 (uri (git-reference
3570 (url "https://github.com/lastquestion/explain-pause-mode")
3571 (commit commit)))
3572 (file-name (git-file-name name version))
3573 (sha256
3574 (base32
3575 "0frnfwqal9mrnrz6q4v7vcai26ahaw81894arff1yjw372pfgv7v"))))
3576 (build-system emacs-build-system)
3577 (native-inputs
3578 `(("emacs" ,emacs-buttercup)))
3579 (arguments
3580 '(#:tests? #t
3581 ;; Don't run case-tests as they will fail to create sockets because
3582 ;; the path is too long
3583 #:test-command '("make" "byte-compile" "unit-tests")
3584 ;; Parallel testing will cause the tests to run before
3585 ;; byte-compilation is finished
3586 #:parallel-tests? #f))
3587 (home-page "https://github.com/lastquestion/explain-pause-mode")
3588 (synopsis "Top-like interface to determine why Emacs paused")
3589 (description
3590 "This package monitors Emacs function calls and records their execution
3591 time. This information can be reviewed to determine what is causing the user
3592 interface to pause.")
3593 (license license:gpl3+))))
3594
3595 (define-public emacs-fill-column-indicator
3596 (package
3597 (name "emacs-fill-column-indicator")
3598 (version "1.90")
3599 (source
3600 (origin
3601 (method git-fetch)
3602 (uri (git-reference
3603 (url "https://github.com/alpaker/Fill-Column-Indicator")
3604 (commit version)))
3605 (file-name (git-file-name name version))
3606 (sha256
3607 (base32 "0snjznxdwwfdgccdcvrnk467416r244r2r5qcm2sga8l0ha9gw9z"))))
3608 (build-system emacs-build-system)
3609 (home-page "https://www.emacswiki.org/emacs/FillColumnIndicator")
3610 (synopsis "Graphically indicate the fill column")
3611 (description
3612 "Fill-column-indicator graphically indicates the location of the fill
3613 column by drawing a thin line down the length of the editing window.")
3614 (license license:gpl3+)))
3615
3616 (define-public emacs-grep-a-lot
3617 (package
3618 (name "emacs-grep-a-lot")
3619 (version "1.0.7")
3620 (source
3621 (origin
3622 (method git-fetch)
3623 (uri (git-reference
3624 (url "https://github.com/ZungBang/emacs-grep-a-lot")
3625 (commit "9f9f645b9e308a0d887b66864ff97d0fca1ba4ad")))
3626 (file-name (git-file-name name version))
3627 (sha256
3628 (base32 "1f8262mrlinzgnn4m49hbj1hm3c1mvzza24py4b37sasn49546lw"))))
3629 (build-system emacs-build-system)
3630 (home-page "https://github.com/ZungBang/emacs-grep-a-lot")
3631 (synopsis "Enables multiple grep buffers in Emacs")
3632 (description
3633 "This Emacs package allows managing multiple grep buffers.")
3634 (license license:gpl3+)))
3635
3636 (define-public emacs-fd
3637 (package
3638 (name "emacs-fd")
3639 (version "0.1.0")
3640 (source (origin
3641 (method git-fetch)
3642 (uri (git-reference
3643 (url "https://github.com/yqrashawn/fd-dired")
3644 (commit version)))
3645 (file-name (git-file-name name version))
3646 (sha256
3647 (base32
3648 "1fas0fpvym2lyzybwm44gly9jz6a2fpp72yxnwfbqqjkfgk9910y"))))
3649 (build-system emacs-build-system)
3650 (home-page "https://github.com/yqrashawn/fd-dired")
3651 (synopsis "Dired-mode interface for fd result")
3652 (description "This package provides a dired-mode interface for fd's
3653 result.")
3654 (license license:gpl3+)))
3655
3656 (define-public emacs-rg
3657 (package
3658 (name "emacs-rg")
3659 (version "2.0.2")
3660 (source
3661 (origin
3662 (method git-fetch)
3663 (uri (git-reference
3664 (url "https://github.com/dajva/rg.el")
3665 (commit version)))
3666 (file-name (git-file-name name version))
3667 (sha256
3668 (base32 "15qcnsnbni0aincm9pxpfhff3c5ivd5zs2s2qchjzhcn4kdm6kxr"))))
3669 (build-system emacs-build-system)
3670 (arguments
3671 '(#:phases
3672 (modify-phases %standard-phases
3673 (add-after 'unpack 'hardcode-rg-path
3674 ;; Hardcode the path to ripgrep.
3675 (lambda _
3676 (let ((file "rg.el"))
3677 (chmod file #o644)
3678 (emacs-substitute-sexps file
3679 ("(defcustom rg-executable" (which "rg")))))))))
3680 (propagated-inputs
3681 `(("emacs-s" ,emacs-s)
3682 ("emacs-transient" ,emacs-transient)
3683 ("emacs-wgrep" ,emacs-wgrep)))
3684 (inputs
3685 `(("ripgrep" ,ripgrep)))
3686 (home-page "https://rgel.readthedocs.io/en/latest/")
3687 (synopsis "Search tool based on @code{ripgrep}")
3688 (description
3689 "@code{rg} is an Emacs search package based on the @code{ripgrep} command
3690 line tool. It allows one to interactively search based on the editing context
3691 then refine or modify the search results.")
3692 (license license:gpl3+)))
3693
3694 (define-public emacs-inf-ruby
3695 (package
3696 (name "emacs-inf-ruby")
3697 (version "2.5.2")
3698 (source
3699 (origin
3700 (method git-fetch)
3701 (uri (git-reference
3702 (url "https://github.com/nonsequitur/inf-ruby")
3703 (commit version)))
3704 (file-name (git-file-name name version))
3705 (sha256
3706 (base32 "0a1hhvfbl6mq8rjsi77fg9fh5a91hi5scjrg9rjqc5ffbql67y0v"))))
3707 (build-system emacs-build-system)
3708 (home-page "https://github.com/nonsequitur/inf-ruby")
3709 (synopsis "Provides a REPL buffer connected to a Ruby subprocess in Emacs")
3710 (description
3711 "@code{inf-ruby} provides a Read Eval Print Loop (REPL) buffer, allowing
3712 for easy interaction with a ruby subprocess. Features include support for
3713 detecting specific uses of Ruby, e.g. when using rails, and using a
3714 appropriate console.")
3715 (license license:gpl3+)))
3716
3717 (define-public emacs-znc
3718 (package
3719 (name "emacs-znc")
3720 (version "0.0.2")
3721 (source
3722 (origin
3723 (method url-fetch)
3724 (uri (string-append "https://marmalade-repo.org/packages/znc-"
3725 version ".el"))
3726 (sha256
3727 (base32
3728 "1d8lqvybgyazin5z0g1c4l3rg1vzrrvf0saqs53jr1zcdg0lianh"))))
3729 (build-system emacs-build-system)
3730 (home-page "https://github.com/sshirokov/ZNC.el")
3731 (synopsis "Make ERC and ZNC get along better")
3732 (description
3733 "This is a thin wrapper around @code{erc} that enables one to use the ZNC
3734 IRC bouncer with ERC.")
3735 (license license:expat)))
3736
3737 (define-public emacs-erc-status-sidebar
3738 (let ((commit "ea4189a1dbfe60117359c36e681ad7c389e2968c")
3739 (revision "1"))
3740 (package
3741 (name "emacs-erc-status-sidebar")
3742 (version (git-version "0.1" revision commit))
3743 (source
3744 (origin
3745 (method git-fetch)
3746 (uri (git-reference
3747 (url "https://github.com/drewbarbs/erc-status-sidebar")
3748 (commit commit)))
3749 (file-name (git-file-name name version))
3750 (sha256
3751 (base32 "1hwlhzgx03z8891sblz56zdp8zj0izh72kxykgcnz5rrkyc3vfi3"))))
3752 (build-system emacs-build-system)
3753 (home-page "https://github.com/drewbarbs/erc-status-sidebar")
3754 (synopsis "Hexchat-like activity overview for ERC channels")
3755 (description
3756 "This package provides a Hexchat-like status bar for joined channels in
3757 ERC, an Emacs client for IRC (Internet Relay Chat). It relies on the
3758 @code{erc-track} module, and displays all the same information
3759 @code{erc-track} does in the mode line, but in an alternative format.")
3760 (license license:expat))))
3761
3762 (define-public emacs-shut-up
3763 (package
3764 (name "emacs-shut-up")
3765 (version "0.3.2")
3766 (source
3767 (origin
3768 (method git-fetch)
3769 (uri (git-reference
3770 (url "https://github.com/cask/shut-up")
3771 (commit (string-append "v" version))))
3772 (file-name (git-file-name name version))
3773 (sha256
3774 (base32 "103yvfgkj78i4bnv1fwk76izsa8h4wyj3vwj1vq7xggj607hkxzq"))))
3775 (build-system emacs-build-system)
3776 (home-page "https://github.com/cask/shut-up")
3777 (synopsis "Silence Emacs")
3778 (description "This package silences most output of Emacs when running an
3779 Emacs shell script.")
3780 (license license:expat)))
3781
3782 (define-public emacs-undercover
3783 (package
3784 (name "emacs-undercover")
3785 (version "0.6.1")
3786 (source
3787 (origin
3788 (method git-fetch)
3789 (uri (git-reference
3790 (url "https://github.com/sviridov/undercover.el")
3791 (commit version)))
3792 (file-name (git-file-name name version))
3793 (sha256
3794 (base32 "080bmfwyfi8663y8x594770hqz7mff7zvj2v03qdfwbhdr9w9y29"))))
3795 (build-system emacs-build-system)
3796 (propagated-inputs
3797 `(("emacs-dash" ,emacs-dash)
3798 ("emacs-shut-up" ,emacs-shut-up)))
3799 (home-page "https://github.com/sviridov/undercover.el")
3800 (synopsis "Test coverage library for Emacs Lisp")
3801 (description
3802 "Undercover is a test coverage library for software written in Emacs
3803 Lisp.")
3804 (license license:expat)))
3805
3806 (define-public emacs-paren-face
3807 (package
3808 (name "emacs-paren-face")
3809 (version "1.0.6")
3810 (source
3811 (origin
3812 (method git-fetch)
3813 (uri (git-reference
3814 (url "https://github.com/tarsius/paren-face")
3815 (commit version)))
3816 (file-name (git-file-name name version))
3817 (sha256
3818 (base32 "17bdcxah216z928387yx6z9lmp4jsi461n8fwiqaibn2qy5fagas"))))
3819 (build-system emacs-build-system)
3820 (home-page "https://github.com/tarsius/paren-face")
3821 (synopsis "Face for parentheses in Lisp modes")
3822 (description
3823 "This library defines a face named @code{parenthesis} used just for
3824 parentheses. The intended purpose of this face is to make parentheses less
3825 visible in Lisp code by dimming them. Lispers probably don't need to be
3826 constantly made aware of the existence of the parentheses. Dimming them might
3827 be even more useful for people new to Lisp who have not yet learned to
3828 subconsciously blend out the parentheses.")
3829 (license license:gpl3+)))
3830
3831 (define-public emacs-page-break-lines
3832 (package
3833 (name "emacs-page-break-lines")
3834 (version "0.11")
3835 (source
3836 (origin
3837 (method git-fetch)
3838 (uri (git-reference
3839 (url "https://github.com/purcell/page-break-lines")
3840 (commit version)))
3841 (file-name (git-file-name name version))
3842 (sha256
3843 (base32 "1wp974716ih2cz9kdmdz7xwjy1qnnfzdzlfr9kchknagw8d9nn12"))))
3844 (build-system emacs-build-system)
3845 (home-page "https://github.com/purcell/page-break-lines")
3846 (synopsis "Display page breaks as tidy horizontal lines")
3847 (description
3848 "This library provides a global mode which displays form feed characters
3849 as horizontal rules.")
3850 (license license:gpl3+)))
3851
3852 (define-public emacs-simple-httpd
3853 (package
3854 (name "emacs-simple-httpd")
3855 (version "1.5.1")
3856 (source
3857 (origin
3858 (method git-fetch)
3859 (uri (git-reference
3860 (url "https://github.com/skeeto/emacs-web-server")
3861 (commit version)))
3862 (file-name (git-file-name name version))
3863 (sha256
3864 (base32 "0dpn92rg813c4pq7a1vzj3znyxzp2lmvxqz6pzcqi0l2xn5r3wvb"))))
3865 (build-system emacs-build-system)
3866 (home-page "https://github.com/skeeto/emacs-web-server")
3867 (synopsis "HTTP server in pure Emacs Lisp")
3868 (description
3869 "This package provides a simple HTTP server written in Emacs Lisp to
3870 serve files and directory listings.")
3871 (license license:unlicense)))
3872
3873 (define-public emacs-skewer-mode
3874 (package
3875 (name "emacs-skewer-mode")
3876 (version "1.8.0")
3877 (source
3878 (origin
3879 (method git-fetch)
3880 (uri (git-reference
3881 (url "https://github.com/skeeto/skewer-mode")
3882 (commit version)))
3883 (file-name (git-file-name name version))
3884 (sha256
3885 (base32 "1ha7jl7776pk1bki5zj2q0jy66450mn8xr3aqjc0m9kj3gc9qxgw"))))
3886 (build-system emacs-build-system)
3887 (propagated-inputs
3888 `(("emacs-simple-httpd" ,emacs-simple-httpd)
3889 ("emacs-js2-mode" ,emacs-js2-mode)))
3890 (arguments '(#:include '("\\.el$" "\\.js$" "\\.html$")))
3891 (home-page "https://github.com/skeeto/skewer-mode")
3892 (synopsis "Live web development in Emacs")
3893 (description
3894 "Skewer-mode provides live interaction with JavaScript, CSS, and HTML in
3895 a web browser. Expressions are sent on-the-fly from an editing buffer to be
3896 evaluated in the browser, just like Emacs does with an inferior Lisp process
3897 in Lisp modes.")
3898 (license license:unlicense)))
3899
3900 (define-public emacs-litable
3901 (let ((commit "b0278f3f8dcff424bfbdfdefb545b1fbff33206f"))
3902 (package
3903 (name "emacs-litable")
3904 (version (git-version "0.1" "0" commit))
3905 (source (origin
3906 (method git-fetch)
3907 (uri (git-reference
3908 (url "https://github.com/Fuco1/litable")
3909 (commit commit)))
3910 (file-name (git-file-name name version))
3911 (sha256
3912 (base32
3913 "0bny40hv9a024n01clxns351cs4j4ifhgcc7m4743xncqf612p7g"))))
3914 (build-system emacs-build-system)
3915 (propagated-inputs
3916 `(("emacs-dash" ,emacs-dash)))
3917 (home-page "https://github.com/Fuco1/litable/")
3918 (synopsis "Dynamic evaluation replacement with Emacs")
3919 (description "This package provides dynamic evaluation in Emacs.")
3920 (license license:gpl3+))))
3921
3922 (define-public emacs-literate-calc-mode
3923 (let ((commit "e855bd718fa7d0d70b8f43264e10664369dd3a37")
3924 (revision "0"))
3925 (package
3926 (name "emacs-literate-calc-mode")
3927 (version (git-version "0.1" revision commit))
3928 (source
3929 (origin
3930 (method git-fetch)
3931 (uri (git-reference
3932 (url "https://github.com/sulami/literate-calc-mode.el")
3933 (commit commit)))
3934 (file-name (git-file-name name version))
3935 (sha256
3936 (base32 "0mk4cig8g8ibz97mvyan79fkypyanh7r0h7h20ibafq09nb0mw01"))))
3937 (build-system emacs-build-system)
3938 (propagated-inputs
3939 `(("emacs-s" ,emacs-s)))
3940 (home-page "https://github.com/sulami/literate-calc-mode.el")
3941 (synopsis "Literate programming for Emacs Calc")
3942 (description
3943 "This library provides literate programming for Calc. There is both
3944 a major and a minor mode. The major mode does some basic syntax highlighting,
3945 while the minor mode only evaluates all Calc statements while typing. In
3946 particular, the minor mode works quite well with Org or Markdown modes, or
3947 other markup language major modes.")
3948 (license license:gpl3+))))
3949
3950 (define-public emacs-standard-dirs
3951 (package
3952 (name "emacs-standard-dirs")
3953 (version "2.0.0")
3954 (home-page "https://github.com/lafrenierejm/standard-dirs.el")
3955 (source
3956 (origin
3957 (method git-fetch)
3958 (uri (git-reference
3959 (url home-page)
3960 (commit version)))
3961 (file-name (git-file-name name version))
3962 (sha256
3963 (base32 "0r814qcrhvx4qlx4sdzwdmrhiryslqclx0bnpp0qcrbx6g8qfl25"))))
3964 (build-system emacs-build-system)
3965 (propagated-inputs
3966 `(("emacs-f" ,emacs-f)
3967 ("emacs-s" ,emacs-s)))
3968 (synopsis "Platform-specific paths for config, cache, and other data")
3969 (description
3970 "This package provides platform-specific paths for reading and writing
3971 configuration, cache, and other data.")
3972 (license license:gpl3+)))
3973
3974 (define-public emacs-string-inflection
3975 (package
3976 (name "emacs-string-inflection")
3977 (version "1.0.6")
3978 (source (origin
3979 (method git-fetch)
3980 (uri (git-reference
3981 (url "https://github.com/akicho8/string-inflection")
3982 (commit "a150e7bdda60b7824d3a936750ce23f73b0e4edd")))
3983 (file-name (git-file-name name version))
3984 (sha256
3985 (base32
3986 "1k0sm552iawi49v4zis6dbb81d1rzgky9v0dpv7nj31gnb7bmy7k"))))
3987 (build-system emacs-build-system)
3988 (native-inputs
3989 `(("ert-runner" ,emacs-ert-runner)))
3990 (arguments
3991 `(#:tests? #t
3992 #:test-command '("ert-runner")))
3993 (home-page "https://github.com/akicho8/string-inflection")
3994 (synopsis "Convert symbol names between different naming conventions")
3995 (description
3996 "This Emacs package provides convenient methods for manipulating the
3997 naming style of a symbol. It supports different naming conventions such as:
3998
3999 @enumerate
4000 @item camel case
4001 @item Pascal case
4002 @item all upper case
4003 @item lower case separated by underscore
4004 @item etc...
4005 @end enumerate\n")
4006 (license license:gpl2+)))
4007
4008 (define-public emacs-stripe-buffer
4009 (package
4010 (name "emacs-stripe-buffer")
4011 (version "0.2.5")
4012 (source
4013 (origin
4014 (method git-fetch)
4015 (uri (git-reference
4016 (url "https://github.com/sabof/stripe-buffer")
4017 (commit version)))
4018 (file-name (git-file-name name version))
4019 (sha256
4020 (base32 "035ym1c1vzg6hjsnd258z4dkrfc11lj4c0y4gpgybhk54dq3w9dk"))))
4021 (build-system emacs-build-system)
4022 (home-page "https://github.com/sabof/stripe-buffer/")
4023 (synopsis "Add stripes to list buffers")
4024 (description
4025 "This Emacs package adds faces to add stripes to list buffers and org
4026 tables.")
4027 (license license:gpl2+)))
4028
4029 (define-public emacs-org-beautify-theme
4030 ;; Latest release (0.4) is not tagged, use commit hash.
4031 (let ((commit "df6a1114fda313e1689363e196c8284fbe2a2738")
4032 (revision "0"))
4033 (package
4034 (name "emacs-org-beautify-theme")
4035 (version "0.4")
4036 (source
4037 (origin
4038 (method git-fetch)
4039 (uri (git-reference
4040 (url "https://github.com/jonnay/org-beautify-theme")
4041 (commit commit)))
4042 (file-name (git-file-name name version))
4043 (sha256
4044 (base32 "1lkz7736swimad12khwbbqc4gxjydgr1k45p4mx03s25pv1w920y"))))
4045 (build-system emacs-build-system)
4046 (home-page "https://github.com/jonnay/org-beautify-theme")
4047 (synopsis "Theme to make Org mode look more beautiful")
4048 (description
4049 "The theme adds padding between headings, increases the size of titles,
4050 strike through completed TODO headings, changes Org blocks, changes Org check
4051 boxes, and more.")
4052 (license license:gpl3+))))
4053
4054 (define-public emacs-org-rich-yank
4055 (package
4056 (name "emacs-org-rich-yank")
4057 (version "0.2.1")
4058 (source
4059 (origin
4060 (method git-fetch)
4061 (uri (git-reference
4062 (url "https://github.com/unhammer/org-rich-yank")
4063 (commit (string-append "v" version))))
4064 (file-name (git-file-name name version))
4065 (sha256
4066 (base32 "0gxb0fnh5gxjmld0hnk5hli0cvdd8gjd27m30bk2b80kwldxlq1z"))))
4067 (build-system emacs-build-system)
4068 (home-page "https://github.com/unhammer/org-rich-yank")
4069 (synopsis "Automatically surround source code pasted into Org with
4070 @code{#+BEGIN_SRC} blocks")
4071 (description
4072 "This package provides a utility function for Org buffers that makes a
4073 @code{_SRC} block with the appropriate language annotation for code that has
4074 been copied from an Emacs major mode.")
4075 (license license:gpl2+)))
4076
4077 (define-public emacs-ob-erlang
4078 (let ((revision "1")
4079 (commit "f1a8c665b8f7d0ab32267a9961de8eed872e6333"))
4080 (package
4081 (name "emacs-ob-erlang")
4082 (version (git-version "20180827" revision commit))
4083 (source (origin
4084 (method git-fetch)
4085 (uri (git-reference
4086 (url "https://github.com/xfwduke/ob-erlang")
4087 (commit commit)))
4088 (file-name (git-file-name name version))
4089 (sha256
4090 (base32
4091 "0b5zajqiy6955yvlqwy92prrqy89lqchsv4ss2ylws3p4s14rhij"))))
4092 (build-system emacs-build-system)
4093 (home-page "https://github.com/xfwduke/ob-erlang/")
4094 (synopsis "Org-babel support for Erlang")
4095 (description "This package adds support for working with Erlang code
4096 blocks with @code{org-babel} in @code{org-mode}.")
4097 (license license:gpl3+))))
4098
4099 (define-public emacs-ob-restclient
4100 (let ((commit "f7449b2068498fe9d8ab9589e0a638148861533f"))
4101 (package
4102 (name "emacs-ob-restclient")
4103 (version (git-version "0.02" "2" commit))
4104 (source
4105 (origin
4106 (method git-fetch)
4107 (uri (git-reference
4108 (url "https://github.com/alf/ob-restclient.el")
4109 (commit commit)))
4110 (file-name (git-file-name name version))
4111 (sha256
4112 (base32 "0s3931w9ab3yfml2pmq71rw21yf6hpg7m3vihxyy3vs6zli1cvmq"))))
4113 (propagated-inputs
4114 `(("emacs-restclient" ,emacs-restclient)))
4115 (build-system emacs-build-system)
4116 (home-page "https://github.com/alf/ob-restclient.el")
4117 (synopsis "Org-babel functionality for @code{restclient-mode}")
4118 (description
4119 "This package integrates @code{restclient-mode} with Org.")
4120 (license license:gpl3+))))
4121
4122 (define-public emacs-org-now
4123 (let ((commit "8f6b277a73f1c66e58ccb4b7f40d406851befc91"))
4124 (package
4125 (name "emacs-org-now")
4126 (version (git-version "0.1-pre" "1" commit))
4127 (source
4128 (origin
4129 (method git-fetch)
4130 (uri (git-reference
4131 (url "https://github.com/alphapapa/org-now")
4132 (commit commit)))
4133 (file-name (git-file-name name version))
4134 (sha256
4135 (base32 "117zzkryznznk6h4i1jqzdn888nl019xrgxm2gza0lndx8dxsg2c"))))
4136 (propagated-inputs
4137 `(("emacs-dash" ,emacs-dash)))
4138 (build-system emacs-build-system)
4139 (home-page "https://github.com/alphapapa/org-now")
4140 (synopsis "Show current Org tasks in a sidebar")
4141 (description
4142 "This package provides commands to show Org headings in a sidebar
4143 window while working on them. After defining one heading as the \"now\"
4144 heading, other headings can be refiled to it with one command, and back to
4145 their original location with another.")
4146 (license license:gpl3+))))
4147
4148 (define-public emacs-rich-minority
4149 (package
4150 (name "emacs-rich-minority")
4151 (version "1.0.3")
4152 (source
4153 (origin
4154 (method git-fetch)
4155 (uri (git-reference
4156 (url "https://github.com/Malabarba/rich-minority")
4157 (commit version)))
4158 (file-name (git-file-name name version))
4159 (sha256
4160 (base32
4161 "1kn7c9qr9ykj68iqffzzmjsr6aazwac8cxb7j960sjb282rq0yyj"))))
4162 (build-system emacs-build-system)
4163 (home-page "https://github.com/Malabarba/rich-minority")
4164 (synopsis "Clean-up and beautify the list of minor modes")
4165 (description
4166 "This Emacs package hides and/or highlights minor modes in the
4167 mode-line.")
4168 (license license:gpl2+)))
4169
4170 (define-public emacs-robe
4171 (package
4172 (name "emacs-robe")
4173 (version "0.8.2")
4174 (source
4175 (origin
4176 (method git-fetch)
4177 (uri (git-reference
4178 (url "https://github.com/dgutov/robe")
4179 (commit version)))
4180 (file-name (git-file-name name version))
4181 (sha256
4182 (base32 "0qw18wi54yg971n4wnjqkd8lqj5lbs9ra8bvmngif2bzhqlfdsbn"))))
4183 (build-system emacs-build-system)
4184 (arguments
4185 '(#:include (cons "^lib\\/" %default-include)))
4186 (propagated-inputs
4187 `(("emacs-inf-ruby" ,emacs-inf-ruby)))
4188 (home-page "https://github.com/dgutov/robe")
4189 (synopsis "Ruby code assistance tool for Emacs")
4190 (description
4191 "Robe can provide information on loaded classes and modules in Ruby code,
4192 as well as where methods are defined. This allows the user to jump to method
4193 definitions, modules and classes, display method documentation and provide
4194 method and constant name completion.")
4195 (license license:gpl3+)))
4196
4197 (define-public emacs-robot-mode
4198 (let ((commit "32846e7e80ae3471b7c07f9709dcaa4f9b9ed4a0")
4199 (revision "1"))
4200 (package
4201 (name "emacs-robot-mode")
4202 (version (git-version "0.0.0" revision commit))
4203 (source (origin
4204 (method git-fetch)
4205 (uri (git-reference
4206 ;; A better maintained fork of robot-mode.
4207 (url "https://github.com/jvalkeejarvi/robot-mode")
4208 (commit commit)))
4209 (file-name (git-file-name name version))
4210 (sha256
4211 (base32
4212 "1i8wf7m0gml8zvvmlgppjzv78b432686p1qdbzgclc7qfcvzag0d"))))
4213 (build-system emacs-build-system)
4214 (propagated-inputs `(("emacs-s" ,emacs-s)))
4215 (home-page "https://github.com/jvalkeejarvi/robot-mode")
4216 (synopsis "Emacs mode for Robot Framework")
4217 (description "This major mode facilitates editing Robot Framework source
4218 files with features such as syntax highlighting, comments, finding keywords,
4219 completing keywords and smart indentation.")
4220 (license license:gpl3+))))
4221
4222 (define-public emacs-rspec
4223 (let ((commit "66ea7cc9699d6edc6115daa024818adbd85efc20")
4224 (revision "1"))
4225 (package
4226 (name "emacs-rspec")
4227 (version (git-version "1.11" revision commit))
4228 (source
4229 (origin
4230 (method git-fetch)
4231 (uri (git-reference
4232 (url "https://github.com/pezra/rspec-mode")
4233 (commit commit)))
4234 (file-name (git-file-name name version))
4235 (sha256
4236 (base32 "0b11s8r0pi7ah54km4yg4fqff8wkk409d25qnlwm1l94pdwjd1c8"))))
4237 (build-system emacs-build-system)
4238 (arguments
4239 `(#:include (cons "^snippets\\/rspec-mode\\/" %default-include)
4240 #:tests? #t
4241 #:test-command '("make" "test")))
4242 (home-page "https://github.com/pezra/rspec-mode")
4243 (synopsis "Provides a rspec mode for working with RSpec")
4244 (description
4245 "The Emacs RSpec mode provides keybindings for Ruby source files, e.g. to
4246 verify the spec associated with the current buffer, or entire project, as well
4247 as moving between the spec files, and corresponding code files.
4248
4249 Also included are keybindings for spec files and Dired buffers, as well as
4250 snippets for yasnippet.")
4251 (license license:gpl3+))))
4252
4253 (define-public emacs-smart-mode-line
4254 (package
4255 (name "emacs-smart-mode-line")
4256 (version "2.13")
4257 (source
4258 (origin
4259 (method git-fetch)
4260 (uri (git-reference
4261 (url "https://github.com/Malabarba/smart-mode-line")
4262 (commit version)))
4263 (file-name (git-file-name name version))
4264 (sha256
4265 (base32 "164b697xm1rwcggv37dymhf3npbyh2bs59z8b6m5x35lb4c3lf8b"))))
4266 (build-system emacs-build-system)
4267 (propagated-inputs
4268 `(("emacs-rich-minority" ,emacs-rich-minority)))
4269 (home-page "https://github.com/Malabarba/smart-mode-line")
4270 (synopsis "Color-coded smart mode-line")
4271 (description
4272 "Smart Mode Line is a mode-line theme for Emacs. It aims to be easy to
4273 read from small to large monitors by using colors, a prefix feature, and smart
4274 truncation.")
4275 (license license:gpl2+)))
4276
4277 (define-public emacs-sqlite
4278 ;; XXX: There is no tagged commit.
4279 (let ((commit "dad42b8bbca4994be1871343dd18fd6528ee5797")
4280 (revision "0"))
4281 (package
4282 (name "emacs-sqlite")
4283 (build-system emacs-build-system)
4284 (version (git-version "1.0" revision commit))
4285 (source
4286 (origin
4287 (method git-fetch)
4288 (uri (git-reference
4289 (url "https://gitlab.com/cnngimenez/sqlite.el")
4290 (commit commit)))
4291 (file-name (git-file-name name version))
4292 (sha256
4293 (base32 "06ln4vijl8kii3nzc5cscgsadx1fqgxksflijd3ain83bn8g4wrd"))))
4294 (home-page "https://gitlab.com/cnngimenez/sqlite.el")
4295 (synopsis "SQLite interface for Emacs Lisp")
4296 (description "Emacs SQLite is a simple SQLite interface for connecting
4297 and retrieving information using the SQLite program through Elisp programming.
4298 It is not intended as a user interface.")
4299 (license license:gpl3+))))
4300
4301 (define-public emacs-sr-speedbar
4302 (let ((commit "77a83fb50f763a465c021eca7343243f465b4a47")
4303 (revision "0"))
4304 (package
4305 (name "emacs-sr-speedbar")
4306 (version (git-version "20161025" revision commit))
4307 (source
4308 (origin
4309 (method git-fetch)
4310 (uri (git-reference
4311 (url "https://github.com/emacsorphanage/sr-speedbar")
4312 (commit commit)))
4313 (file-name (git-file-name name version))
4314 (sha256
4315 (base32
4316 "0sd12555hk7z721y00kv3crdybvcn1i08wmd148z5imayzibj153"))))
4317 (build-system emacs-build-system)
4318 (home-page "https://www.emacswiki.org/emacs/SrSpeedbar")
4319 (synopsis "Same frame Emacs @code{speedbar}")
4320 (description
4321 "This Emacs package allows you to show @code{M-x speedbar} in the
4322 same frame (in an extra window). You can customize the initial width of
4323 the speedbar window.")
4324 (license license:gpl3+))))
4325
4326 (define-public emacs-shell-switcher
4327 (package
4328 (name "emacs-shell-switcher")
4329 (version "1.0.1")
4330 (source
4331 (origin
4332 (method git-fetch)
4333 (uri (git-reference
4334 (url "https://github.com/DamienCassou/shell-switcher")
4335 (commit (string-append "v" version))))
4336 (file-name (git-file-name name version))
4337 (sha256
4338 (base32 "0ia7sdip4hl27avckv3qpqgm3k4ynvp3xxq1cy53bqfzzx0gcria"))))
4339 (build-system emacs-build-system)
4340 (home-page "https://github.com/DamienCassou/shell-switcher")
4341 (synopsis "Provide fast switching between shell buffers")
4342 (description
4343 "This package provides commands to quickly switch between shell buffers.")
4344 (license license:gpl3+)))
4345
4346 (define-public emacs-shx
4347 (package
4348 (name "emacs-shx")
4349 (version "1.5.0")
4350 (source (origin
4351 (method git-fetch)
4352 (uri (git-reference
4353 (url "https://github.com/riscy/shx-for-emacs")
4354 (commit (string-append "v" version))))
4355 (file-name (git-file-name name version))
4356 (sha256
4357 (base32 "1cb5w6p9gnfxgh8qp7yj2f5ibpk1b4b5af3ynldaaj6yfpa8hqzn"))))
4358 (build-system emacs-build-system)
4359 (arguments
4360 `(#:tests? #t
4361 #:test-command
4362 '("emacs" "--batch" "--quiet"
4363 "--script" "test/script.el")))
4364 (home-page "https://github.com/riscy/shx-for-emacs")
4365 (synopsis "Extras for the comint-mode shell")
4366 (description
4367 "This package extends @code{comint-mode}: it parses markup in the output
4368 stream, enabling plots and graphics to be embedded, and adds command-line
4369 functions which plug into Emacs (e.g. use @code{:e <filename>} to edit a
4370 file).")
4371 (license license:gpl3+)))
4372
4373 (define-public emacs-names
4374 (let ((commit "d8baba5360e5253938a25d3e005455b6d2d86971")
4375 (version "20151201.0")
4376 (revision "8"))
4377 (package
4378 (name "emacs-names")
4379 (version (git-version version revision commit))
4380 (source
4381 (origin
4382 (method git-fetch)
4383 (uri (git-reference
4384 (url "https://github.com/Malabarba/names")
4385 (commit commit)))
4386 (file-name (git-file-name name version))
4387 (sha256
4388 (base32
4389 "11wyha2q8y7bzqq3jrzix8n97ywvsibvddrahqcps1a1yqk4hzfz"))))
4390 (build-system emacs-build-system)
4391 (home-page "https://github.com/Malabarba/names/")
4392 (synopsis "Namespace implementation for Emacs Lisp")
4393 (description
4394 "This package provides a macro that writes your namespaces for you.")
4395 (license license:gpl3+))))
4396
4397 (define-public emacs-evil-leader
4398 (package
4399 (name "emacs-evil-leader")
4400 (version "0.4.3")
4401 (source
4402 (origin
4403 (method git-fetch)
4404 (uri
4405 (git-reference
4406 (url "https://github.com/cofi/evil-leader")
4407 (commit version)))
4408 (file-name (git-file-name name version))
4409 (sha256
4410 (base32 "1k2zinchs0jjllp8zkpggckyy63dkyi5yig3p46vh4w45jdzysk5"))))
4411 (inputs
4412 `(("emacs-evil" ,emacs-evil)))
4413 (build-system emacs-build-system)
4414 (home-page "https://github.com/cofi/evil-leader")
4415 (synopsis "Implement <leader> feature from Vim")
4416 (description
4417 "Evil Leader provides the @code{<leader>} feature from Vim that provides
4418 an easy way to bind keys under a configurable prefix key.")
4419 (license license:gpl3+)))
4420
4421 (define-public emacs-evil-textobj-syntax
4422 (let ((commit "2d9ba8c75c754b409aea7469f46a5cfa52a872f3")
4423 (version "0")
4424 (revision "1"))
4425 (package
4426 (name "emacs-evil-textobj-syntax")
4427 (version (git-version version revision commit))
4428 (source
4429 (origin
4430 (method git-fetch)
4431 (uri (git-reference
4432 (url "https://github.com/laishulu/evil-textobj-syntax/")
4433 (commit commit)))
4434 (file-name (git-file-name name version))
4435 (sha256
4436 (base32
4437 "031p5i3274dazp7rz6m5y38shfgszm1clmkcf58qfqlvy978ammc"))))
4438 (build-system emacs-build-system)
4439 (propagated-inputs `(("emacs-evil" ,emacs-evil)
4440 ("emacs-names" ,emacs-names)))
4441 (home-page "https://github.com/laishulu/evil-textobj-syntax/")
4442 (synopsis "Text objects based on syntax highlighting")
4443 (description
4444 "This package provides text objects for @code{evil-mode} with
4445 boundaries defined by syntax highlighting.")
4446 (license license:gpl3+))))
4447
4448 (define-public emacs-flycheck-flow
4449 (let ((commit "9e8e52cfc98af6a23fd906f9cb5d5d470d8cf82d")
4450 (version "1.1")
4451 (revision "1"))
4452 (package
4453 (name "emacs-flycheck-flow")
4454 (version (git-version version revision commit))
4455 (source
4456 (origin
4457 (method git-fetch)
4458 (uri (git-reference
4459 (url "https://github.com/lbolla/emacs-flycheck-flow")
4460 (commit commit)))
4461 (file-name (git-file-name name version))
4462 (sha256
4463 (base32
4464 "14qldlisbmxzammr500gyha2hiv2xgyzfc6mysqii06kbcqn1ik1"))))
4465 (build-system emacs-build-system)
4466 (propagated-inputs
4467 `(("emacs-flycheck" ,emacs-flycheck)))
4468 (home-page "https://github.com/lbolla/emacs-flycheck-flow")
4469 (synopsis "Flow support for @code{flycheck-mode}")
4470 (description
4471 "This package allows @code{flycheck-mode} to provide syntax-checking
4472 for Flow files.")
4473 (license license:gpl3+))))
4474
4475 (define-public emacs-flycheck-grammalecte
4476 (package
4477 (name "emacs-flycheck-grammalecte")
4478 (version "1.2")
4479 (source
4480 (origin
4481 (method url-fetch)
4482 (uri (string-append "https://git.deparis.io/"
4483 "flycheck-grammalecte/snapshot/"
4484 "flycheck-grammalecte-" version ".tar.xz"))
4485 (sha256
4486 (base32 "1mzmzyik843r4j0ibpwqrxmb0g4xmirrf3lxr010bddkmmxf749a"))))
4487 (build-system emacs-build-system)
4488 (arguments
4489 `(#:include '("\\.(el|py)$")
4490 #:exclude '("^test-profile.el$")
4491 #:emacs ,emacs ;need libxml support
4492 #:phases
4493 (modify-phases %standard-phases
4494 (add-after 'unpack 'specify-python-location
4495 ;; Hard-code python3 executable location in the library.
4496 (lambda* (#:key inputs #:allow-other-keys)
4497 (let ((python3 (string-append (assoc-ref inputs "python")
4498 "/bin/python3")))
4499 (substitute* "flycheck-grammalecte.el"
4500 (("\"python3") (string-append "\"" python3)))
4501 (substitute* '("conjugueur.py" "flycheck-grammalecte.py")
4502 (("/usr/bin/env python3?") python3))
4503 #t)))
4504 (add-before 'build 'link-to-grammalecte
4505 ;; XXX: The Python part of the package requires grammalecte, but
4506 ;; the library is not specified in PYTHONPATH, since we're not
4507 ;; using Python build system. As a workaround, we symlink
4508 ;; grammalecte libraries here.
4509 (lambda* (#:key inputs outputs #:allow-other-keys)
4510 (let* ((out (assoc-ref outputs "out"))
4511 (grammalecte (assoc-ref inputs "grammalecte"))
4512 (version ,(version-major+minor (package-version python))))
4513 (with-directory-excursion
4514 (string-append out "/share/emacs/site-lisp")
4515 (symlink (string-append grammalecte "/lib/"
4516 "python" version "/site-packages/"
4517 "grammalecte")
4518 "grammalecte"))
4519 #t))))))
4520 (inputs
4521 `(("grammalecte" ,grammalecte)
4522 ("python" ,python)))
4523 (propagated-inputs
4524 `(("emacs-flycheck" ,emacs-flycheck)))
4525 (home-page "https://git.deparis.io/flycheck-grammalecte/")
4526 (synopsis "Integrate Grammalecte with Flycheck")
4527 (description
4528 "Integrate the French grammar and typography checker Grammalecte with
4529 Flycheck to automatically look for mistakes in your writings. It also
4530 provides an easy way to find synonyms and antonyms for a given word (to avoid
4531 repetitions for example).")
4532 (license license:gpl3+)))
4533
4534 (define-public emacs-flycheck-guile
4535 (package
4536 (name "emacs-flycheck-guile")
4537 (version "0.2")
4538 (source
4539 (origin
4540 (method git-fetch)
4541 (uri
4542 (git-reference
4543 (url "https://github.com/flatwhatson/flycheck-guile")
4544 (commit version)))
4545 (file-name (git-file-name name version))
4546 (sha256
4547 (base32 "0cs5r0ik6a3bl1k3imjl0r8y1i69kx9x9m9cgxj470qk34brwyj5"))))
4548 (propagated-inputs
4549 `(("emacs-flycheck" ,emacs-flycheck)
4550 ("emacs-geiser" ,emacs-geiser)))
4551 (build-system emacs-build-system)
4552 (home-page "https://github.com/flatwhatson/flycheck-guile")
4553 (synopsis "GNU Guile support for Flycheck")
4554 (description
4555 "This package provides a Flycheck checker for GNU Guile using @code{guild
4556 compile}.")
4557 (license license:gpl3+)))
4558
4559 (define-public emacs-flycheck-ledger
4560 (package
4561 (name "emacs-flycheck-ledger")
4562 (version "0.5")
4563 (source
4564 (origin
4565 (method git-fetch)
4566 (uri (git-reference
4567 (url "https://github.com/purcell/flycheck-ledger.git")
4568 (commit version)))
4569 (file-name (git-file-name name version))
4570 (sha256
4571 (base32 "1djrj3is0dzrl2703bw7bclf33dp4xqmy144q7xj5pvpb9v3kf50"))))
4572 (inputs `(("ledger" ,ledger)))
4573 (arguments
4574 `(#:phases
4575 (modify-phases %standard-phases
4576 (add-after 'unpack 'configure
4577 (lambda* (#:key inputs outputs #:allow-other-keys)
4578 (let ((ledger (assoc-ref inputs "ledger")))
4579 ;; Specify the absolute executable location of ledger.
4580 (substitute* "flycheck-ledger.el"
4581 (("\"ledger\"") (string-append "\"" ledger "\""))))
4582 #t)))))
4583 (propagated-inputs
4584 `(("emacs-flycheck" ,emacs-flycheck)))
4585 (build-system emacs-build-system)
4586 (home-page "https://github.com/purcell/flycheck-ledger")
4587 (synopsis "Ledger support for Flycheck")
4588 (description
4589 "This Flycheck checker uses the output of @code{ledger balance} on the
4590 current file to find errors such as unbalanced transactions and syntax
4591 errors.")
4592 (license license:gpl3+)))
4593
4594 (define-public emacs-flycheck-rust
4595 (package
4596 (name "emacs-flycheck-rust")
4597 (version "1.1")
4598 (source
4599 (origin
4600 (method git-fetch)
4601 (uri
4602 (git-reference
4603 (url "https://github.com/flycheck/flycheck-rust")
4604 (commit version)))
4605 (file-name (git-file-name name version))
4606 (sha256
4607 (base32 "1fh6j5w2387nh2fwwjphkhq17cgj5m2q5k0fhidvgc2w65lzbr1r"))))
4608 (propagated-inputs
4609 `(("emacs-dash" ,emacs-dash)
4610 ("emacs-flycheck" ,emacs-flycheck)
4611 ("emacs-let-alist" ,emacs-let-alist)))
4612 (build-system emacs-build-system)
4613 (home-page "https://github.com/flycheck/flycheck-rust")
4614 (synopsis "Rust/Cargo support for Flycheck")
4615 (description
4616 "This Flycheck extension configures Flycheck automatically for
4617 the current Cargo project.")
4618 (license license:gpl3+)))
4619
4620 (define-public emacs-elisp-demos
4621 (package
4622 (name "emacs-elisp-demos")
4623 (version "2020.02.19")
4624 (source
4625 (origin
4626 (method git-fetch)
4627 (uri (git-reference
4628 (url "https://github.com/xuchunyang/elisp-demos")
4629 (commit version)))
4630 (file-name (git-file-name name version))
4631 (sha256
4632 (base32
4633 "0mckgaz92v3y2vlkggx9kd51fd1mahylw39c42l51dyv8wscm7sc"))))
4634 (build-system emacs-build-system)
4635 (arguments
4636 `(#:include '("\\.el$" "\\.org$")
4637 #:tests? #t
4638 #:test-command '("make" "test")))
4639 (home-page "https://github.com/xuchunyang/elisp-demos/")
4640 (synopsis "Enhance @code{*Help*} buffers with additional examples")
4641 (description
4642 "This package injects example uses of Elisp functions into their
4643 respective @code{*Help*} buffers.")
4644 (license license:gpl3+)))
4645
4646 (define-public emacs-docker-compose-mode
4647 (package
4648 (name "emacs-docker-compose-mode")
4649 (version "1.1.0")
4650 (source
4651 (origin
4652 (method git-fetch)
4653 (uri (git-reference
4654 (url "https://github.com/meqif/docker-compose-mode")
4655 (commit version)))
4656 (file-name (git-file-name name version))
4657 (sha256
4658 (base32
4659 "1fbcxwfvm33xcdj3cs26d9i1zyrryyjjkv7sc3mfxd45nq8d3ivj"))))
4660 (build-system emacs-build-system)
4661 (propagated-inputs
4662 `(("emacs-dash" ,emacs-dash)
4663 ("emacs-f" ,emacs-f)))
4664 (home-page "https://github.com/meqif/docker-compose-mode/")
4665 (synopsis "Major mode for editing @file{docker-compose} files")
4666 (description
4667 "This is a major mode for @file{docker-compose} files that provides
4668 completion of relevant keywords.")
4669 (license license:expat)))
4670
4671 (define-public emacs-dvc
4672 (let ((revision "591") ;no tags or official releases
4673 (guix-revision "1"))
4674 (package
4675 (name "emacs-dvc")
4676 (version (string-append "0.0.0-" guix-revision "." revision))
4677 (source
4678 (origin
4679 (method bzr-fetch)
4680 (uri (bzr-reference
4681 (url "lp:dvc")
4682 (revision revision)))
4683 (sha256
4684 (base32
4685 "03pqn493w70wcpgaxvqnfgynxghw114l9pyiv3r414d84vzhan6h"))
4686 (file-name (string-append name "-" version "-checkout"))))
4687 (build-system gnu-build-system)
4688 (arguments
4689 `(#:configure-flags
4690 (list (string-append "--with-lispdir=" (assoc-ref %outputs "out")
4691 "/share/emacs/site-lisp/"))
4692 #:tests? #f ;no test suite
4693 #:phases
4694 (modify-phases %standard-phases
4695 (add-before 'build 'set-home
4696 ;; Something in dvc-bookmarks.el attempts to write config files in
4697 ;; $HOME during the autoload generation.
4698 (lambda _ (setenv "HOME" (getenv "TMPDIR")) #t))
4699 (add-before 'build 'fix-texinfo
4700 ;; See https://bugs.launchpad.net/dvc/+bug/1264383.
4701 (lambda _
4702 (substitute* "texinfo/dvc-intro.texinfo"
4703 (("@itemx update ``to''")
4704 "@item update ``to''")
4705 (("@itemx brief")
4706 "@item brief")
4707 (("@itemx full")
4708 "@item full")
4709 (("@itemx drop")
4710 "@item drop")
4711 (("@itemx left file")
4712 "@item left file"))
4713 #t)))))
4714 (native-inputs
4715 `(("autoconf" ,autoconf)
4716 ("automake" ,automake) ;for aclocal
4717 ("emacs" ,emacs-minimal)
4718 ("texinfo" ,texinfo)))
4719 (home-page "http://xsteve.at/prg/emacs_dvc/index.html")
4720 (synopsis "Emacs front-end for various distributed version control systems.")
4721 (description "DVC is a legacy Emacs front-end for a number of
4722 distributed version control systems. It currently supports GNU Arch, GNU
4723 Bazaar, git, Mercurial, and Monotone. It also provides some integration with
4724 Gnus, e.g., for applying patches received by email.")
4725 (license license:gpl2+))))
4726
4727 (define-public emacs-sudo-edit
4728 (let ((commit "cc3d478937b1accd38742bfceba92af02ee9357d")
4729 (revision "6"))
4730 (package
4731 (name "emacs-sudo-edit")
4732 (version (git-version "0.1.0" revision commit))
4733 (source
4734 (origin
4735 (method git-fetch)
4736 (uri (git-reference
4737 (url "https://github.com/nflath/sudo-edit")
4738 (commit commit)))
4739 (file-name (git-file-name name version))
4740 (sha256
4741 (base32
4742 "1qv58x5j5a3v1s2ylhck1ykbfclq0mbi0gsvaql3nyv8cxazqlwl"))))
4743 (build-system emacs-build-system)
4744 (native-inputs
4745 `(("emacs-undercover" ,emacs-undercover)))
4746 (arguments
4747 `(#:phases
4748 (modify-phases %standard-phases
4749 (add-before 'check 'fix-makefile
4750 (lambda _
4751 (substitute* "Makefile"
4752 (("\\$\\(CASK\\) exec ") ""))
4753 #t)))
4754 #:tests? #t
4755 #:test-command '("make" "test")))
4756 (home-page "https://github.com/nflath/sudo-edit/")
4757 (synopsis "Open files as another user")
4758 (description
4759 "This package allows editing files as another user, including the root
4760 user.")
4761 (license license:gpl3+))))
4762
4763 (define-public emacs-miniedit
4764 (package
4765 (name "emacs-miniedit")
4766 (version "2.0")
4767 (source
4768 (origin
4769 (method git-fetch)
4770 (uri (git-reference
4771 (url "https://github.com/emacsmirror/miniedit")
4772 (commit version)))
4773 (file-name (git-file-name name version))
4774 (sha256
4775 (base32
4776 "1850z96gly0jnr50472idqz1drzqarr0n23bbasslrc501xkg0bq"))))
4777 (build-system emacs-build-system)
4778 (home-page "https://github.com/emacsmirror/miniedit/")
4779 (synopsis "Enhanced editing for minibuffer fields")
4780 (description
4781 "This package provides a function that can be called from the
4782 minibuffer to enable editing the minibuffer input in another buffer with
4783 @code{text-mode} enabled.")
4784 (license license:gpl2+)))
4785
4786 (define-public emacs-ob-ipython
4787 (package
4788 (name "emacs-ob-ipython")
4789 (version "20180224")
4790 (source (origin
4791 (method git-fetch)
4792 (uri (git-reference
4793 (commit "7147455230841744fb5b95dcbe03320313a77124")
4794 (url "https://github.com/gregsexton/ob-ipython")))
4795 (file-name (git-file-name name version))
4796 (sha256
4797 (base32
4798 "1a10fc2jk37ni5sjjvf87s5nyaz2a6h2mlj5dxh4dhv5sd3bb85p"))))
4799 (build-system emacs-build-system)
4800 (propagated-inputs
4801 `(("emacs-f" ,emacs-f)))
4802 (home-page "http://www.gregsexton.org")
4803 (synopsis "Org-Babel functions for IPython evaluation")
4804 (description "This package adds support to Org-Babel for evaluating Python
4805 source code using IPython.")
4806 (license license:gpl3+)))
4807
4808 (define-public emacs-debbugs
4809 (package
4810 (name "emacs-debbugs")
4811 (version "0.26")
4812 (source
4813 (origin
4814 (method url-fetch)
4815 (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
4816 version ".tar"))
4817 (sha256
4818 (base32 "14n2rrs3ccvlp8fhxs08awlqdfawxwbj8nq1xpa0wwlbfvxnf24c"))))
4819 (build-system emacs-build-system)
4820 (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
4821 (propagated-inputs
4822 `(("emacs-async" ,emacs-async)))
4823 (home-page "https://elpa.gnu.org/packages/debbugs.html")
4824 (synopsis "Access the Debbugs bug tracker in Emacs")
4825 (description
4826 "This package lets you access the @uref{http://bugs.gnu.org,GNU Bug
4827 Tracker} from within Emacs.
4828
4829 For instance, it defines the command @code{M-x debbugs-gnu} for listing bugs,
4830 and the command @code{M-x debbugs-gnu-search} for bug searching. If you
4831 prefer the listing of bugs as TODO items of @code{org-mode}, you could use
4832 @code{M-x debbugs-org} and related commands.
4833
4834 A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug
4835 Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.")
4836 (license license:gpl3+)))
4837
4838 (define-public emacs-ert-expectations
4839 (package
4840 (name "emacs-ert-expectations")
4841 (version "0.2")
4842 (source
4843 (origin
4844 (method url-fetch)
4845 (uri "https://www.emacswiki.org/emacs/download/ert-expectations.el")
4846 (sha256
4847 (base32
4848 "0cwy3ilsid90abzzjb7ha2blq9kmv3gfp3icwwfcz6qczgirq6g7"))))
4849 (build-system emacs-build-system)
4850 (home-page "https://www.emacswiki.org/emacs/ert-expectations.el")
4851 (synopsis "Simple unit test framework for Emacs Lisp")
4852 (description "@code{emacs-ert-expectations} is a simple unit test
4853 framework for Emacs Lisp to be used with @code{ert}.")
4854 (license license:gpl3+)))
4855
4856 (define-public emacs-deferred
4857 (package
4858 (name "emacs-deferred")
4859 (version "0.5.1")
4860 (home-page "https://github.com/kiwanami/emacs-deferred")
4861 (source (origin
4862 (method git-fetch)
4863 (uri (git-reference
4864 (url home-page)
4865 (commit (string-append "v" version))))
4866 (file-name (git-file-name name version))
4867 (sha256
4868 (base32
4869 "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"))))
4870 (build-system emacs-build-system)
4871 (arguments
4872 `(#:phases
4873 (modify-phases %standard-phases
4874 (add-after 'unpack 'set-shell
4875 ;; Setting the SHELL environment variable is required for the tests
4876 ;; to find sh.
4877 (lambda _
4878 (setenv "SHELL" (which "sh"))
4879 #t))
4880 (add-before 'check 'fix-makefile
4881 (lambda _
4882 (substitute* "Makefile"
4883 (("\\$\\(CASK\\) exec ") ""))
4884 #t)))
4885 #:tests? #t
4886 #:test-command '("make" "test")))
4887 (native-inputs
4888 `(("emacs-ert-expectations" ,emacs-ert-expectations)
4889 ("emacs-undercover" ,emacs-undercover)
4890 ("ert-runner" ,emacs-ert-runner)))
4891 (synopsis "Simple asynchronous functions for Emacs Lisp")
4892 (description
4893 "The @code{deferred.el} library provides support for asynchronous tasks.
4894 The API is almost the same as that of
4895 @uref{https://github.com/cho45/jsdeferred, JSDeferred}, a JavaScript library
4896 for asynchronous tasks.")
4897 (license license:gpl3+)))
4898
4899 (define-public emacs-butler
4900 (package
4901 (name "emacs-butler")
4902 (version "0.2.4")
4903 (home-page "https://github.com/AshtonKem/Butler")
4904 (source (origin
4905 (method git-fetch)
4906 (uri (git-reference
4907 (url home-page)
4908 (commit version)))
4909 (file-name (git-file-name name version))
4910 (sha256
4911 (base32
4912 "1pii9dw4skq7nr4na6qxqasl36av8cwjp71bf1fgppqpcd9z8skj"))))
4913 (build-system emacs-build-system)
4914 (propagated-inputs
4915 `(("emacs-deferred" ,emacs-deferred)))
4916 (synopsis "Emacs client for Jenkins")
4917 (description
4918 "Butler provides an interface to connect to Jenkins continuous
4919 integration servers. Users can specify a list of server in the
4920 @code{butler-server-list} variable and then use @code{M-x butler-status} to
4921 view the build status of those servers' build jobs, and possibly to trigger
4922 build jobs.")
4923 (license license:gpl3+)))
4924
4925 (define-public emacs-company
4926 (package
4927 (name "emacs-company")
4928 (version "0.9.13")
4929 (source
4930 (origin
4931 (method url-fetch)
4932 (uri (string-append "https://elpa.gnu.org/packages/"
4933 "company-" version ".tar"))
4934 (sha256
4935 (base32 "1c9x9wlzzsn7vrsm57l2l44nqx455saa6wrm853szzg09qn8dlnw"))))
4936 (build-system emacs-build-system)
4937 (home-page "https://company-mode.github.io/")
4938 (synopsis "Modular text completion framework")
4939 (description
4940 "Company is a modular completion mechanism. Modules for retrieving
4941 completion candidates are called back-ends, modules for displaying them are
4942 front-ends. Company comes with many back-ends, e.g., @code{company-elisp}.
4943 These are distributed in separate files and can be used individually.")
4944 (license license:gpl3+)))
4945
4946 (define-public emacs-company-box
4947 ;; There is no release yet. Version is extracted from the main
4948 ;; file.
4949 (let ((version "0.0.1")
4950 (revision "0")
4951 (commit "be37a9a30dc112ab172af21af694e2cb04a74f85"))
4952 (package
4953 (name "emacs-company-box")
4954 (version (git-version version revision commit))
4955 (source
4956 (origin
4957 (method git-fetch)
4958 (uri (git-reference
4959 (url "https://github.com/sebastiencs/company-box")
4960 (commit commit)))
4961 (file-name (git-file-name name version))
4962 (sha256
4963 (base32 "13fgmdy51gqdwijqfvb784pirx4lgva0y7ysi0c3fcx8f82cdj59"))))
4964 (build-system emacs-build-system)
4965 (propagated-inputs
4966 `(("emacs-company" ,emacs-company)
4967 ("emacs-dash" ,emacs-dash)
4968 ("emacs-frame-local" ,emacs-frame-local)))
4969 (home-page "https://github.com/sebastiencs/company-box")
4970 (synopsis "Company front-end with icons")
4971 (description
4972 "Company box is a Company front-end. It supports different
4973 colors for different backends, associates icons to functions,
4974 variables... and their backends, and displays candidate's
4975 documentation. It is not limited by the current window size or
4976 buffer's text properties.
4977
4978 This package is not compatible with a TTY.")
4979 (license license:gpl3+))))
4980
4981 (define-public emacs-company-posframe
4982 (let ((version "0.1.0")
4983 (revision "2")
4984 (commit "4bfb8bccef4b64479f4147de6bf6fbd05df2a67e"))
4985 (package
4986 (name "emacs-company-posframe")
4987 (version (git-version version revision commit))
4988 (source (origin
4989 (method git-fetch)
4990 (uri (git-reference
4991 (url "https://github.com/tumashu/company-posframe")
4992 (commit commit)))
4993 (file-name (git-file-name name version))
4994 (sha256
4995 (base32
4996 "0k19gkh8xbap4j1jjqw6lnkp1v2q76fz3ryrns7kvbzmca3y5599"))))
4997 (build-system emacs-build-system)
4998 (propagated-inputs
4999 `(("emacs-company" ,emacs-company)
5000 ("emacs-posframe" ,emacs-posframe)))
5001 (home-page "https://github.com/tumashu/company-posframe")
5002 (synopsis "Use a posframe for @code{emacs-company}'s candidate menu")
5003 (description
5004 "Allows @code{emacs-company} to use child frames for its candidate menus.
5005
5006 @code{emacs-company-posframe} is fast enough for daily use and supports CJK
5007 languages.")
5008 (license license:gpl3+))))
5009
5010 (define-public emacs-irony-mode
5011 (package
5012 (name "emacs-irony-mode")
5013 (version "1.4.0")
5014 (home-page "https://github.com/Sarcasm/irony-mode")
5015 (source (origin
5016 (method git-fetch)
5017 (uri (git-reference
5018 (url (string-append home-page ".git"))
5019 (commit (string-append "v" version))))
5020 (file-name (git-file-name name version))
5021 (sha256
5022 (base32
5023 "0n2nfcq58md1p2xdhq1smh8v7lsyj0ci7ma5xyd6bkg5rvhsh10i"))))
5024 (build-system emacs-build-system)
5025 (inputs `(("server" ,emacs-irony-mode-server)))
5026 (arguments `(#:phases
5027 (modify-phases %standard-phases
5028 (add-after 'unpack 'configure
5029 (lambda* (#:key inputs #:allow-other-keys)
5030 (chmod "irony.el" #o644)
5031 (emacs-substitute-variables "irony.el"
5032 ("irony-server-install-prefix"
5033 (assoc-ref inputs "server")))
5034 #t)))))
5035 (synopsis "C/C++/ObjC Code completion and syntax checks for Emacs")
5036 (description "Irony-mode provides Clang-assisted syntax checking and
5037 completion for C, C++, and ObjC in GNU Emacs. Using @code{libclang} it can
5038 provide syntax checking and autocompletion on compiler level which is very
5039 resistant against false positives. It also integrates well with other
5040 packages like @code{eldoc-mode} and especially @code{company-mode} as
5041 described on the homepage.")
5042 (license license:gpl3+)))
5043
5044 (define-public emacs-irony-mode-server
5045 (package (inherit emacs-irony-mode)
5046 (name "emacs-irony-mode-server")
5047 (inputs
5048 `(("clang" ,clang)))
5049 (arguments
5050 `(#:phases
5051 (modify-phases %standard-phases
5052 (replace 'configure
5053 (lambda* (#:key outputs #:allow-other-keys)
5054 (let ((out (assoc-ref outputs "out")))
5055 (invoke "cmake"
5056 "server"
5057 (string-append "-DCMAKE_INSTALL_PREFIX=" out)) #t))))))
5058 (build-system cmake-build-system)
5059 (synopsis "Server for the Emacs @dfn{irony mode}")))
5060
5061 (define-public emacs-company-irony
5062 (package
5063 (name "emacs-company-irony")
5064 (version "1.1.0")
5065 (source (origin
5066 (method git-fetch)
5067 (uri (git-reference
5068 (url "https://github.com/Sarcasm/company-irony")
5069 (commit (string-append "v" version))))
5070 (sha256 (base32
5071 "1qgyam2vyjw90kpxns5cd6bq3qiqjhzpwrlvmi18vyb69qcgqd8a"))
5072 (file-name (git-file-name name version))))
5073 (build-system emacs-build-system)
5074 (inputs
5075 `(("emacs-irony-mode" ,emacs-irony-mode)
5076 ("emacs-company" ,emacs-company)))
5077 (synopsis "C++ completion backend for Company using irony-mode")
5078 (description "This backend for company-mode allows for C++ code completion
5079 with irony-mode using clang-tooling.")
5080 (home-page "https://github.com/Sarcasm/company-irony")
5081 (license license:gpl3+)))
5082
5083 (define-public emacs-flycheck-irony
5084 (package
5085 (name "emacs-flycheck-irony")
5086 (version "0.1.0")
5087 (source (origin
5088 (method git-fetch)
5089 (uri (git-reference
5090 (url "https://github.com/Sarcasm/flycheck-irony")
5091 (commit (string-append "v" version))))
5092 (file-name (git-file-name name version))
5093 (sha256
5094 (base32 "0qa5a8wzvzxwqql92ibc9s43k8sj3vwn7skz9hfr8av0skkhx996"))))
5095 (build-system emacs-build-system)
5096 (inputs
5097 `(("irony-mode" ,emacs-irony-mode)
5098 ("flycheck-mode" ,emacs-flycheck)
5099 ("emacs-company" ,emacs-company)))
5100 (synopsis "Live syntax checking frontend for Flycheck using irony-mode")
5101 (description "This package provides a frontend for Flycheck that lets
5102 irony-mode do the syntax checking.")
5103 (home-page "https://github.com/Sarcasm/flycheck-irony")
5104 (license license:gpl3+)))
5105
5106 (define-public emacs-irony-eldoc
5107 (package
5108 (name "emacs-irony-eldoc")
5109 (version (package-version emacs-irony-mode))
5110 (source
5111 (origin
5112 (method git-fetch)
5113 (uri (git-reference
5114 (url "https://github.com/ikirill/irony-eldoc")
5115 (commit "0df5831eaae264a25422b061eb2792aadde8b3f2")))
5116 (file-name (git-file-name name version))
5117 (sha256
5118 (base32 "1l5qpr66v1l12fb50yh73grb2rr85xxmbj19mm33b5rdrq2bqmmd"))))
5119 (build-system emacs-build-system)
5120 (inputs
5121 `(("irony-mode" ,emacs-irony-mode)))
5122 (synopsis "Eldoc integration for irony-mode")
5123 (description "Irony-eldoc is an eldoc extension that shows documentation
5124 for the current function or variable in the minibuffer.")
5125 (home-page "https://github.com/ikirill/irony-eldoc")
5126 (license license:gpl3+)))
5127
5128 (define-public emacs-company-quickhelp
5129 ;; XXX: release version 2.3.0 is on an unmaintained branch for some reason,
5130 ;; so we use the latest 2.2.0 commit instead
5131 (let ((commit "479676cade80a9f03802ca3d956591820ed5c537")
5132 (revision "1"))
5133 (package
5134 (name "emacs-company-quickhelp")
5135 (version (git-version "2.2.0" revision commit))
5136 (source
5137 (origin
5138 (method git-fetch)
5139 (uri (git-reference
5140 (url "https://github.com/expez/company-quickhelp")
5141 (commit commit)))
5142 (file-name (git-file-name name version))
5143 (sha256
5144 (base32 "0hbqpnaf4hnin3nmdzmfj3v22kk9a97b6zssqs96ns36d9h52xcp"))))
5145 (build-system emacs-build-system)
5146 (propagated-inputs
5147 `(("emacs-pos-tip" ,emacs-pos-tip)
5148 ("emacs-company" ,emacs-company)))
5149 (home-page "https://github.com/expez/company-quickhelp")
5150 (synopsis "Popup documentation for completion candidates")
5151 (description "@code{company-quickhelp} shows documentation for the
5152 completion candidate when using the Company text completion framework.")
5153 (license license:gpl3+))))
5154
5155 (define-public emacs-math-symbol-lists
5156 (let ((commit "dc7531cff0c845d5470a50c24d5d7309b2ced7eb")
5157 (revision "1"))
5158 (package
5159 (name "emacs-math-symbol-lists")
5160 (version (git-version "1.2.1" revision commit))
5161 (source
5162 (origin
5163 (method git-fetch)
5164 (uri (git-reference
5165 (url "https://github.com/vspinu/math-symbol-lists")
5166 (commit commit)))
5167 (file-name (git-file-name name version))
5168 (sha256
5169 (base32 "094m21i9rns6m59cmhxcivxxafbg52w8f8na4y3v47aq67zmhhqm"))))
5170 (build-system emacs-build-system)
5171 (home-page "https://github.com/vspinu/math-symbol-lists")
5172 (synopsis "Lists of Unicode math symbols and @code{LaTeX} commands")
5173 (description "This is a storage package used by completion engines like
5174 @code{company-math}.")
5175 (license license:gpl3+))))
5176
5177 (define-public emacs-company-coq
5178 (package
5179 (name "emacs-company-coq")
5180 (version "1.0.1")
5181 (source
5182 (origin
5183 (method git-fetch)
5184 (uri
5185 (git-reference
5186 (url "https://github.com/cpitclaudel/company-coq")
5187 (commit version)))
5188 (file-name (git-file-name name version))
5189 (sha256
5190 (base32 "0dxi4h8xqq5647k7h89s4pi8nwyj3brlhsckrv3p3b1g4dr6mk3b"))))
5191 (inputs
5192 `(("emacs-company" ,emacs-company)
5193 ("emacs-company-math" ,emacs-company-math)
5194 ("emacs-dash" ,emacs-dash)
5195 ("emacs-yasnippet" ,emacs-yasnippet)))
5196 (build-system emacs-build-system)
5197 (home-page "https://github.com/cpitclaudel/company-coq")
5198 (synopsis "Emacs extensions for Proof General's Coq mode")
5199 (description "This package includes a collection of Company mode backends
5200 for Proof-General's Coq mode, and many useful extensions to Proof-General. It
5201 features:
5202
5203 @itemize
5204 @item Prettification of operators, types, and subscripts,
5205 @item Auto-completion,
5206 @item Insertion of cases,
5207 @item Fully explicit intros,
5208 @item Outlines, code folding, and jumping to definition,
5209 @item Help with errors,
5210 @item and more.
5211 @end itemize")
5212 (license license:gpl3+)))
5213
5214 (define-public emacs-company-math
5215 (let ((commit "600e49449644f6835f9dc3501bc58461999e8ab9")
5216 (revision "1"))
5217 (package
5218 (name "emacs-company-math")
5219 (version (git-version "1.3" revision commit))
5220 (source
5221 (origin
5222 (method git-fetch)
5223 (uri (git-reference
5224 (url "https://github.com/vspinu/company-math")
5225 (commit commit)))
5226 (file-name (git-file-name name version))
5227 (sha256
5228 (base32
5229 "1ps2lpkzn8mjbpcbvvy1qz3xbgrh6951x8y9bsd1fm32drdph9lh"))))
5230 (build-system emacs-build-system)
5231 (propagated-inputs
5232 `(("emacs-math-symbol-lists" ,emacs-math-symbol-lists)
5233 ("emacs-company" ,emacs-company)))
5234 (home-page "https://github.com/vspinu/company-math")
5235 (synopsis "Completion backends for Unicode math symbols and @code{LaTeX} tags")
5236 (description "This package provides a backend for use with
5237 @code{company-mode} allowing for completion of common math symbols.")
5238 (license license:gpl3+))))
5239
5240 (define-public emacs-compdef
5241 (let ((commit "67104a38763cc819644f711248b170a43bce151b")
5242 (revision "2"))
5243 (package
5244 (name "emacs-compdef")
5245 (version (git-version "0.2" revision commit))
5246 (source
5247 (origin
5248 (method git-fetch)
5249 (uri (git-reference
5250 (url "https://gitlab.com/jjzmajic/compdef.git")
5251 (commit commit)))
5252 (file-name (git-file-name name version))
5253 (sha256
5254 (base32 "1f6y6cr67gps9jp5hd20xszfd3k26v70g6z4g5db6wdkvlnc2wkg"))))
5255 (build-system emacs-build-system)
5256 (home-page "https://gitlab.com/jjzmajic/compdef")
5257 (synopsis "Set local completion backends")
5258 (description "This package provides a function to cleanly set local
5259 completion backends according to mode, and integrates with
5260 @code{use-package}.")
5261 (license license:gpl3+))))
5262
5263 (define-public emacs-icomplete-vertical
5264 (package
5265 (name "emacs-icomplete-vertical")
5266 (version "0.1")
5267 (source
5268 (origin
5269 (method git-fetch)
5270 (uri (git-reference
5271 (url "https://github.com/oantolin/icomplete-vertical")
5272 (commit version)))
5273 (file-name (git-file-name name version))
5274 (sha256
5275 (base32
5276 "1bqnlvv1gvrjriazvzd3bq98r8ii6fqax0zznhvkl1ij5pf55a90"))))
5277 (build-system emacs-build-system)
5278 (home-page "https://github.com/oantolin/icomplete-vertical")
5279 (synopsis "Display icomplete candidates vertically")
5280 (description
5281 "This package defines a global minor mode to display Icomplete
5282 completion candidates vertically.")
5283 (license license:gpl3+)))
5284
5285 (define-public emacs-handle
5286 (let ((commit "51c050bc1c6e5caf0eb47ecd985daea1db7241ab")
5287 (revision "2"))
5288 (package
5289 (name "emacs-handle")
5290 (version (git-version "0.1" revision commit))
5291 (source
5292 (origin
5293 (method git-fetch)
5294 (uri (git-reference
5295 (url "https://gitlab.com/jjzmajic/handle.git")
5296 (commit commit)))
5297 (file-name (git-file-name name version))
5298 (sha256
5299 (base32 "14f15qzfmwdslml4rv37zb5d1lsjf0jibriz636hb7q7knx1n4sg"))))
5300 (build-system emacs-build-system)
5301 (propagated-inputs
5302 `(("emacs-parent-mode" ,emacs-parent-mode)))
5303 (home-page "https://gitlab.com/jjzmajic/handle")
5304 (synopsis "Handle generic functions across related major modes")
5305 (description "This package provides generic functions that specialize on
5306 major modes and intended purpose rather than on arguments. Different
5307 callables for tasks like expression evaluation, definition-jumping, and more
5308 can now be grouped accordingly and tried in sequence until one of them
5309 succeeds.")
5310 (license license:gpl3+))))
5311
5312 (define-public emacs-nswbuff
5313 (let ((commit "362da7f3687e2eb5bb11667347de85f4a9d002bc")
5314 (revision "1"))
5315 (package
5316 (name "emacs-nswbuff")
5317 (version (git-version "1.0" revision commit))
5318 (source
5319 (origin
5320 (method git-fetch)
5321 (uri (git-reference
5322 (url "https://github.com/joostkremers/nswbuff")
5323 (commit commit)))
5324 (file-name (git-file-name name version))
5325 (sha256
5326 (base32 "0l2xfz8z5qd4hz3kv6zn7h6qq3narkilri8a071y1n8j31jps4ma"))))
5327 (build-system emacs-build-system)
5328 (home-page "https://github.com/joostkremers/nswbuff")
5329 (synopsis "Quickly switch between buffers")
5330 (description "This package allows for navigating between buffers within
5331 a customizable list.")
5332 (license license:gpl3+))))
5333
5334 (define-public emacs-phi-search
5335 (let ((commit "9a089b8271cb1cff9640848850298c9ec855286c")
5336 (revision "1"))
5337 (package
5338 (name "emacs-phi-search")
5339 (version (git-version "20160630" revision commit))
5340 (source
5341 (origin
5342 (method git-fetch)
5343 (uri (git-reference
5344 (url "https://github.com/zk-phi/phi-search")
5345 (commit commit)))
5346 (file-name (git-file-name name version))
5347 (sha256
5348 (base32 "1gr5plcbrfdc4pglfj905s89hf8x0kc083h30wcnd81bnw9jwz1x"))))
5349 (build-system emacs-build-system)
5350 (home-page "https://github.com/zk-phi/phi-search")
5351 (synopsis "Interactive search compatible with @code{multiple-cursors}")
5352 (description "This package can be used with @code{multiple-cursors} to
5353 provide an incremental search that moves all fake cursors in sync.")
5354 (license license:gpl2+))))
5355
5356 (define-public emacs-phi-search-mc
5357 (let ((commit "7aa671910f766437089aec26c3aa7814222d1356")
5358 (revision "1"))
5359 (package
5360 (name "emacs-phi-search-mc")
5361 (version (git-version "2.2.1" revision commit))
5362 (source
5363 (origin
5364 (method git-fetch)
5365 (uri (git-reference
5366 (url "https://github.com/knu/phi-search-mc.el")
5367 (commit commit)))
5368 (file-name (git-file-name name version))
5369 (sha256
5370 (base32 "0wr86ad0yl52im6b9z0b9pzmhcn39qg5m9878yfv1nbxliw40lcd"))))
5371 (build-system emacs-build-system)
5372 (propagated-inputs
5373 `(("emacs-phi-search" ,emacs-phi-search)
5374 ("emacs-multiple-cursors" ,emacs-multiple-cursors)))
5375 (home-page "https://github.com/knu/phi-search-mc.el")
5376 (synopsis "Extend @code{phi-search} with additional
5377 @code{multiple-cursors} functionality")
5378 (description "This package provides further integration between
5379 @code{multiple-cursors} and @code{phi-search}, a package that allows for
5380 interactive searches to move multiple fake cursors.")
5381 (license license:bsd-2))))
5382
5383 (define-public emacs-multiple-cursors
5384 (package
5385 (name "emacs-multiple-cursors")
5386 (version "1.4.0")
5387 (source
5388 (origin
5389 (method git-fetch)
5390 (uri (git-reference
5391 (url "https://github.com/magnars/multiple-cursors.el")
5392 (commit version)))
5393 (file-name (git-file-name name version))
5394 (sha256
5395 (base32 "1ijgvzv5r44xqvz751fd5drbvrspapw6xwv47582w255j363r6ss"))))
5396 (build-system emacs-build-system)
5397 (home-page "https://github.com/magnars/multiple-cursors.el")
5398 (synopsis "Multiple cursors for Emacs")
5399 (description
5400 "This package adds support to Emacs for editing text with multiple
5401 simultaneous cursors.")
5402 (license license:gpl3+)))
5403
5404 (define-public emacs-mc-extras
5405 (let ((commit "053abc52181b8718559d7361a587bbb795faf164")
5406 (revision "1"))
5407 (package
5408 (name "emacs-mc-extras")
5409 (version (git-version "1.2.4" revision commit))
5410 (source
5411 (origin
5412 (method git-fetch)
5413 (uri (git-reference
5414 (url "https://github.com/knu/mc-extras.el")
5415 (commit commit)))
5416 (file-name (git-file-name name version))
5417 (sha256
5418 (base32 "16y48qrd20m20vypvys5jp4v4gc1qrqlkm75s1pk1r68i9zrw481"))))
5419 (build-system emacs-build-system)
5420 (propagated-inputs
5421 `(("emacs-multiple-cursors" ,emacs-multiple-cursors)))
5422 (home-page "https://github.com/knu/mc-extras.el")
5423 (synopsis "Extra functions for manipulating multiple cursors")
5424 (description
5425 "This package provides additional functions for
5426 @code{multiple-cursors}, including functions for marking s-expressions,
5427 comparing characters, removing cursors, and more.")
5428 (license license:bsd-2))))
5429
5430 (define-public emacs-typo
5431 (package
5432 (name "emacs-typo")
5433 (version "1.1")
5434 (home-page "https://github.com/jorgenschaefer/typoel")
5435 (source (origin
5436 (method git-fetch)
5437 (uri (git-reference
5438 (url home-page)
5439 (commit (string-append "v" version))))
5440 (file-name (git-file-name name version))
5441 (sha256
5442 (base32
5443 "1jhd4grch5iz12gyxwfbsgh4dmz5hj4bg4gnvphccg8dsnni05k2"))))
5444 (build-system emacs-build-system)
5445 (synopsis "Minor mode for typographic editing")
5446 (description
5447 "This package provides two Emacs modes, @code{typo-mode} and
5448 @code{typo-global-mode}. These modes automatically insert Unicode characters
5449 for quotation marks, dashes, and ellipses. For example, typing @kbd{\"}
5450 automatically inserts a Unicode opening or closing quotation mark, depending
5451 on context.")
5452 (license license:gpl3+)))
5453
5454 (define-public emacs-company-lsp
5455 (package
5456 (name "emacs-company-lsp")
5457 (version "2.1.0")
5458 (source (origin
5459 (method git-fetch)
5460 (uri (git-reference
5461 (url "https://github.com/tigersoldier/company-lsp")
5462 (commit version)))
5463 (file-name (git-file-name name version))
5464 (sha256
5465 (base32
5466 "1hy1x2w0yp5brm7714d1hziz3rpkywb5jp3yj78ibmi9ifny9vri"))))
5467 (build-system emacs-build-system)
5468 (propagated-inputs
5469 `(("emacs-dash" ,emacs-dash)
5470 ("emacs-lsp-mode" ,emacs-lsp-mode)
5471 ("emacs-company" ,emacs-company)
5472 ("emacs-s" ,emacs-s)
5473 ("emacs-dash" ,emacs-dash)))
5474 (native-inputs
5475 `(("emacs-buttercup" ,emacs-buttercup)))
5476 (arguments
5477 `(#:tests? #t
5478 #:test-command '("buttercup" "-L" ".")))
5479 (home-page "https://github.com/tigersoldier/company-lsp")
5480 (synopsis "Completion for @code{lsp-mode}")
5481 (description
5482 "This package provides completion features that are not possible with
5483 @code{lsp-mode} and @code{company-capf} alone, including support for trigger
5484 characters and asynchronous fetching of completion candidates.")
5485 (license license:gpl3+)))
5486
5487 (define-public emacs-scala-mode
5488 (package
5489 (name "emacs-scala-mode")
5490 (version "1.1.0")
5491 (source
5492 (origin
5493 (method git-fetch)
5494 (uri (git-reference
5495 (url "https://github.com/hvesalai/emacs-scala-mode")
5496 (commit (string-append "v" version))))
5497 (file-name (git-file-name name version))
5498 (sha256
5499 (base32 "1072lsin7dxadc0xyhy42wd0cw549axbbd4dy95wfmfcc1xbzjwv"))))
5500 (build-system emacs-build-system)
5501 (home-page "https://github.com/hvesalai/emacs-scala-mode")
5502 (synopsis "Emacs major mode for Scala")
5503 (description
5504 "This package provides basic Emacs support for the Scala language,
5505 including: local indenting of code, comments and multi-line strings, motion
5506 commands and highlighting.")
5507 ;; There are no copyright headers in the source code. The LICENSE file
5508 ;; indicates GPL3.
5509 (license license:gpl3)))
5510
5511 (define-public emacs-sbt-mode
5512 (package
5513 (name "emacs-sbt-mode")
5514 (version "2.0.0")
5515 (source
5516 (origin
5517 (method git-fetch)
5518 (uri (git-reference
5519 (url "https://github.com/hvesalai/emacs-sbt-mode")
5520 (commit (string-append "v" version))))
5521 (file-name (git-file-name name version))
5522 (sha256
5523 (base32 "0lv9ridzk9x6rkf7lj21srnszypyq04vqg05vl10zhpz1yqlnbjd"))))
5524 (build-system emacs-build-system)
5525 (home-page "https://github.com/hvesalai/emacs-sbt-mode")
5526 (synopsis "Basic functionality for interacting with sbt inside Emacs")
5527 (description
5528 "This mode provides basic functionality required for successfully
5529 interacting with sbt inside Emacs. The core functionality includes
5530 interacting with the sbt shell and Scala console, compiling code and
5531 navigation to errors.")
5532 (license license:gpl3+)))
5533
5534 (define-public emacs-scheme-complete
5535 (let ((commit "9b5cf224bf2a5994bc6d5b152ff487517f1a9bb5"))
5536 (package
5537 (name "emacs-scheme-complete")
5538 (version (string-append "20151223." (string-take commit 8)))
5539 (source
5540 (origin
5541 (method git-fetch)
5542 (uri (git-reference
5543 (url "https://github.com/ashinn/scheme-complete")
5544 (commit commit)))
5545 (file-name (git-file-name name version))
5546 (sha256
5547 (base32
5548 "141wn9l0m33w0g3dqmx8nxbfdny1r5xbr6ak61rsz21bk0qafs7x"))
5549 (patches
5550 (search-patches "emacs-scheme-complete-scheme-r5rs-info.patch"))))
5551 (build-system emacs-build-system)
5552 (home-page "https://github.com/ashinn/scheme-complete")
5553 (synopsis "Smart tab completion for Scheme in Emacs")
5554 (description
5555 "This file provides a single function, @code{scheme-smart-complete},
5556 which you can use for intelligent, context-sensitive completion for any Scheme
5557 implementation in Emacs. To use it just load this file and bind that function
5558 to a key in your preferred mode.")
5559 (license license:public-domain))))
5560
5561 (define-public emacs-scel
5562 (let ((version "20170629")
5563 (revision "1")
5564 (commit "aeea3ad4be9306d14c3a734a4ff54fee10ac135b"))
5565 (package
5566 (name "emacs-scel")
5567 (version (git-version version revision commit))
5568 (source
5569 (origin
5570 (method git-fetch)
5571 (uri (git-reference
5572 (url "https://github.com/supercollider/scel")
5573 (commit commit)))
5574 (file-name (git-file-name name version))
5575 (sha256
5576 (base32
5577 "0jvmzs1lsjyndqshhii2y4mnr3wghai26i3p75453zrpxpg0zvvw"))))
5578 (build-system emacs-build-system)
5579 (arguments
5580 `(#:modules ((guix build emacs-build-system)
5581 ((guix build cmake-build-system) #:prefix cmake:)
5582 (guix build utils))
5583 #:imported-modules (,@%emacs-build-system-modules
5584 (guix build cmake-build-system))
5585 #:phases
5586 (modify-phases %standard-phases
5587 (add-after 'unpack 'configure
5588 (lambda* (#:key outputs #:allow-other-keys)
5589 (substitute* "el/CMakeLists.txt"
5590 (("share/emacs/site-lisp/SuperCollider")
5591 (string-append
5592 "share/emacs/site-lisp")))
5593 ((assoc-ref cmake:%standard-phases 'configure)
5594 #:outputs outputs
5595 #:configure-flags '("-DSC_EL_BYTECOMPILE=OFF"))))
5596 (add-after 'add-source-to-load-path 'add-el-dir-to-emacs-load-path
5597 (lambda _
5598 (setenv "EMACSLOADPATH"
5599 (string-append (getcwd) "/el:" (getenv "EMACSLOADPATH")))
5600 #t))
5601 (replace 'install (assoc-ref cmake:%standard-phases 'install)))))
5602 (inputs
5603 `(("supercollider" ,supercollider)))
5604 (native-inputs
5605 `(("cmake" ,cmake-minimal)))
5606 (home-page "https://github.com/supercollider/scel")
5607 (synopsis "SuperCollider Emacs interface")
5608 (description "@code{emacs-scel} is an Emacs interface to SuperCollider.
5609 SuperCollider is a platform for audio synthesis and algorithmic composition.")
5610 (license license:gpl2+))))
5611
5612 (define-public emacs-company-auctex
5613 (let ((commit "48c42c58ce2f0e693301b0cb2d085055410c1b25")
5614 (revision "1"))
5615 (package
5616 (name "emacs-company-auctex")
5617 (version (git-version "0" revision commit))
5618 (source (origin
5619 (method git-fetch)
5620 (uri (git-reference
5621 (url "https://github.com/alexeyr/company-auctex")
5622 (commit commit)))
5623 (file-name (git-file-name name version))
5624 (sha256
5625 (base32
5626 "10qn7frn5wcmrlci3v6iliqzj7r9dls87h9zp3xkgrgn4bqprfp8"))))
5627 (build-system emacs-build-system)
5628 (propagated-inputs
5629 `(("emacs-yasnippet" ,emacs-yasnippet)
5630 ("emacs-auctex" ,emacs-auctex)
5631 ("emacs-company" ,emacs-company)))
5632 (home-page "https://github.com/alexeyr/company-auctex/")
5633 (synopsis "Completion for @code{AUCTeX}")
5634 (description
5635 "This package provides a group of backends permitting auto-completion
5636 for @code{AUCTeX}.")
5637 (license license:gpl3+))))
5638
5639 (define-public emacs-mit-scheme-doc
5640 (package
5641 (name "emacs-mit-scheme-doc")
5642 (version "20140203")
5643 (source
5644 (origin
5645 (modules '((guix build utils)))
5646 (snippet
5647 ;; keep only file of interest
5648 '(begin
5649 (for-each delete-file '("dot-emacs.el" "Makefile"))
5650 (install-file "6.945-config/mit-scheme-doc.el" ".")
5651 (delete-file-recursively "6.945-config")
5652 #t))
5653 (file-name (string-append name "-" version ".tar.bz2"))
5654 (method url-fetch)
5655 (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/"
5656 "6.945/dont-panic/emacs-basic-config.tar.bz2"))
5657 (sha256
5658 (base32
5659 "0dqidg2bd66pawqfarvwca93w5gqf9mikn1k2a2rmd9ymfjpziq1"))))
5660 (build-system emacs-build-system)
5661 (inputs `(("mit-scheme" ,mit-scheme)))
5662 (arguments
5663 `(#:phases
5664 (modify-phases %standard-phases
5665 (add-after 'unpack 'configure-doc
5666 (lambda* (#:key inputs #:allow-other-keys)
5667 (let* ((mit-scheme-dir (assoc-ref inputs "mit-scheme"))
5668 (doc-dir (string-append mit-scheme-dir "/share/doc/"
5669 "mit-scheme-"
5670 ,(package-version mit-scheme))))
5671 (substitute* "mit-scheme-doc.el"
5672 (("http://www\\.gnu\\.org/software/mit-scheme/documentation/mit-scheme-ref/")
5673 (string-append "file:" doc-dir "/mit-scheme-ref/")))))))))
5674 (home-page "https://groups.csail.mit.edu/mac/users/gjs/6.945/dont-panic/")
5675 (synopsis "MIT-Scheme documentation lookup for Emacs")
5676 (description
5677 "This package provides a set of Emacs functions to search definitions of
5678 identifiers in the MIT-Scheme documentation.")
5679 (license license:gpl2+)))
5680
5681 (define-public emacs-constants
5682 (package
5683 (name "emacs-constants")
5684 (version "2.6")
5685 (home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
5686 (source
5687 (origin
5688 (method git-fetch)
5689 (uri (git-reference
5690 (url "https://github.com/fedeinthemix/emacs-constants")
5691 (commit (string-append "v" version))))
5692 (file-name (git-file-name name version))
5693 (sha256
5694 (base32 "0f5sh6b45a8p9kancjp9jk44ws8ww6x50a0i6zgyyvr7dbvii1a0"))))
5695 (build-system emacs-build-system)
5696 (synopsis "Enter definition of constants into an Emacs buffer")
5697 (description
5698 "This package provides functions for inserting the definition of natural
5699 constants and units into an Emacs buffer.")
5700 (license license:gpl2+)))
5701
5702 (define-public emacs-tagedit
5703 (package
5704 (name "emacs-tagedit")
5705 (version "1.4.0")
5706 (source
5707 (origin
5708 (method git-fetch)
5709 (uri (git-reference
5710 (url "https://github.com/magnars/tagedit")
5711 (commit version)))
5712 (file-name (git-file-name name version))
5713 (sha256
5714 (base32 "0kq40g46s8kgiafrhdq99h79rz9h5fvgz59k7ralmf86bl4sdmdb"))))
5715 (build-system emacs-build-system)
5716 (propagated-inputs
5717 `(("emacs-s" ,emacs-s)
5718 ("emacs-dash" ,emacs-dash)))
5719 (home-page "https://github.com/magnars/tagedit")
5720 (synopsis "Some paredit-like features for html-mode")
5721 (description
5722 "This package provides a collection of paredit-like functions for editing
5723 in @code{html-mode}.")
5724 (license license:gpl3+)))
5725
5726 (define-public emacs-slime
5727 (package
5728 (name "emacs-slime")
5729 (version "2.26")
5730 (source
5731 (origin
5732 (method git-fetch)
5733 (uri (git-reference
5734 (url "https://github.com/slime/slime")
5735 (commit (string-append "v" version))))
5736 (file-name (git-file-name name version))
5737 (sha256
5738 (base32 "0mxb1wnw19v0s72w2wkz5afdlzvpy5nn7pr4vav403qybac0sw5c"))))
5739 (build-system emacs-build-system)
5740 (native-inputs
5741 `(("texinfo" ,texinfo)))
5742 (arguments
5743 `(#:include '("\\.el$" "\\.lisp$" "\\.asd$" "contrib")
5744 #:exclude '("^slime-tests.el" "^contrib/test/"
5745 "^contrib/Makefile$" "^contrib/README.md$")
5746 #:phases
5747 (modify-phases %standard-phases
5748 (add-after 'unpack 'make-git-checkout-writable
5749 (lambda _
5750 (for-each make-file-writable (find-files "."))
5751 #t))
5752 (add-before 'install 'configure
5753 (lambda* _
5754 (emacs-substitute-variables "slime.el"
5755 ("inferior-lisp-program" "sbcl"))
5756 #t))
5757 (add-before 'install 'install-doc
5758 (lambda* (#:key outputs #:allow-other-keys)
5759 (let* ((out (assoc-ref outputs "out"))
5760 (info-dir (string-append out "/share/info"))
5761 (doc-dir (string-append out "/share/doc/"
5762 ,name "-" ,version))
5763 (doc-files '("doc/slime-refcard.pdf"
5764 "README.md" "NEWS" "PROBLEMS"
5765 "CONTRIBUTING.md")))
5766 (with-directory-excursion "doc"
5767 (substitute* "Makefile"
5768 (("infodir=/usr/local/info")
5769 (string-append "infodir=" info-dir)))
5770 (invoke "make" "html/index.html")
5771 (invoke "make" "slime.info")
5772 (install-file "slime.info" info-dir)
5773 (copy-recursively "html" (string-append doc-dir "/html")))
5774 (for-each (lambda (f)
5775 (install-file f doc-dir)
5776 (delete-file f))
5777 doc-files)
5778 (delete-file-recursively "doc")
5779 #t))))))
5780 (home-page "https://github.com/slime/slime")
5781 (synopsis "Superior Lisp Interaction Mode for Emacs")
5782 (description
5783 "SLIME extends Emacs with support for interactive programming in
5784 Common Lisp. The features are centered around @command{slime-mode},
5785 an Emacs minor mode that complements the standard @command{lisp-mode}.
5786 While lisp-mode supports editing Lisp source files, @command{slime-mode}
5787 adds support for interacting with a running Common Lisp process
5788 for compilation, debugging, documentation lookup, and so on.")
5789 (license (list license:gpl2+ license:public-domain))))
5790
5791 (define-public emacs-popup
5792 (package
5793 (name "emacs-popup")
5794 (version "0.5.8")
5795 (source
5796 (origin
5797 (method git-fetch)
5798 (uri (git-reference
5799 (url "https://github.com/auto-complete/popup-el")
5800 (commit (string-append "v" version))))
5801 (file-name (git-file-name name version))
5802 (sha256
5803 (base32 "0qrsz4z9q2bfq9xv4n94mvyslm232v2ql9r1fjycx7rnmpqggiwl"))))
5804 (build-system emacs-build-system)
5805 (home-page "https://github.com/auto-complete/popup-el")
5806 (synopsis "Visual Popup User Interface for Emacs")
5807 (description
5808 "Popup.el is a visual popup user interface library for Emacs.
5809 This provides a basic API and common UI widgets such as popup tooltips
5810 and popup menus.")
5811 (license license:gpl3+)))
5812
5813 (define-public emacs-python-black
5814 (package
5815 (name "emacs-python-black")
5816 (version "1.0.0")
5817 (source
5818 (origin
5819 (method git-fetch)
5820 (uri (git-reference
5821 (url "https://github.com/wbolster/emacs-python-black")
5822 (commit version)))
5823 (file-name (git-file-name name version))
5824 (sha256
5825 (base32
5826 "0fjnd85nlkck156dj6cahk8chhgkbgl2kwywqzi8bl4yj700m4dk"))))
5827 (build-system emacs-build-system)
5828 (propagated-inputs
5829 `(("emacs-dash" ,emacs-dash)
5830 ("emacs-reformatter" ,emacs-reformatter)
5831 ("python-black-macchiato" ,python-black-macchiato)))
5832 (arguments `(#:tests? #f))
5833 (home-page "https://github.com/wbolster/emacs-python-black")
5834 (synopsis "Reformat Python code via @code{python-black}")
5835 (description
5836 "This package makes it easy to reformat Python code using
5837 @code{python-black} and @code{python-black-macchiato} for entire and partial
5838 buffers, respectively.")
5839 (license license:bsd-3)))
5840
5841 (define-public emacs-py-isort
5842 (package
5843 (name "emacs-py-isort")
5844 (version "2016.1")
5845 (source
5846 (origin
5847 (method git-fetch)
5848 (uri (git-reference
5849 (url "https://github.com/paetzke/py-isort.el")
5850 (commit (string-append "v" version))))
5851 (file-name (git-file-name name version))
5852 (sha256
5853 (base32 "08i55gv392wc12x8v3dca0dmz8a8p9ljsqhyajsb6qv1k120wqhx"))))
5854 (build-system emacs-build-system)
5855 (arguments
5856 `(#:tests? #f)) ;tests fail with "emacs: standard input is not a tty"
5857 (propagated-inputs
5858 `(("python-isort" ,python-isort)))
5859 (home-page "https://github.com/paetzke/py-isort.el")
5860 (synopsis "Sort the imports in Python buffers")
5861 (description
5862 "This package provides commands and a minor mode to sort Python imports
5863 using @code{python-isort}.")
5864 (license license:gpl3+)))
5865
5866 (define-public emacs-python-environment
5867 (package
5868 (name "emacs-python-environment")
5869 (version "0.0.2")
5870 (source
5871 (origin
5872 (method git-fetch)
5873 (uri (git-reference
5874 (url "https://github.com/tkf/emacs-python-environment/")
5875 (commit version)))
5876 (file-name (git-file-name name version))
5877 (sha256
5878 (base32 "0q6bib9nr6xiq6npzbngyfcjk87yyvwzq1zirr3z1h5wadm34lsk"))))
5879 (build-system emacs-build-system)
5880 (propagated-inputs
5881 `(("emacs-deferred" ,emacs-deferred)))
5882 (home-page "https://github.com/tkf/emacs-python-environment")
5883 (synopsis "Provides a @code{virtualenv} API in Emacs Lisp")
5884 (description
5885 "This package permits automated installation of tools written in Python.")
5886 (license license:gpl3+)))
5887
5888 (define-public emacs-jedi
5889 (package
5890 (name "emacs-jedi")
5891 (version "0.2.8")
5892 (source (origin
5893 (method git-fetch)
5894 (uri (git-reference
5895 (url "https://github.com/tkf/emacs-jedi/")
5896 (commit (string-append "v" version))))
5897 (file-name (git-file-name name version))
5898 (sha256
5899 (base32
5900 "1bckxppfzd5gwn0aw4h86igb7igal9axqncq7j8zmflg7zppncf1"))))
5901 (build-system emacs-build-system)
5902 (native-inputs
5903 `(("emacs-mocker" ,emacs-mocker)))
5904 (propagated-inputs
5905 `(("emacs-auto-complete" ,emacs-auto-complete)
5906 ("emacs-python-environment" ,emacs-python-environment)
5907 ("emacs-epc" ,emacs-epc)))
5908 (home-page "https://github.com/tkf/emacs-jedi")
5909 (synopsis "Provides Python completion in Emacs")
5910 (description
5911 "This package provides completion in Python buffers and also helps find
5912 the locations of docstrings, arguments, and functions.")
5913 (license license:gpl3+)))
5914
5915 (define-public emacs-company-jedi
5916 (package
5917 (name "emacs-company-jedi")
5918 (version "0.04")
5919 (source (origin
5920 (method git-fetch)
5921 (uri (git-reference
5922 (url "https://github.com/syohex/emacs-company-jedi")
5923 (commit version)))
5924 (file-name (git-file-name name version))
5925 (sha256
5926 (base32
5927 "1ihqapp4dv92794rsgyq0rmhwika60cmradqd4bn9b72ss6plxs1"))))
5928 (build-system emacs-build-system)
5929 (propagated-inputs
5930 `(("emacs-jedi" ,emacs-jedi)
5931 ("emacs-company" ,emacs-company)))
5932 (home-page "https://github.com/syohex/emacs-company-jedi")
5933 (synopsis "Provides Python completion in @code{company-mode}")
5934 (description
5935 "This package provides a Company backend for Python.")
5936 (license license:gpl3+)))
5937
5938 (define-public emacs-puppet-mode
5939 (let ((commit "b3ed5057166a4f49dfa9be638523a348b55a2fd2")
5940 (revision "1"))
5941 (package
5942 (name "emacs-puppet-mode")
5943 ;; The last release, 0.3 was several years ago, and there have been many
5944 ;; commits since
5945 (version (git-version "0.3" revision commit))
5946 (source
5947 (origin
5948 (method url-fetch)
5949 (uri (string-append
5950 "https://raw.githubusercontent.com/voxpupuli/puppet-mode/"
5951 commit "/puppet-mode.el"))
5952 (sha256
5953 (base32
5954 "1indycxawsl0p2aqqg754f6735q3cmah9vd886rpn0ncc3ipi1xm"))))
5955 (build-system emacs-build-system)
5956 (home-page "https://github.com/voxpupuli/puppet-mode")
5957 (synopsis "Emacs major mode for the Puppet configuration language")
5958 (description
5959 "This package provides support for the Puppet configuration language,
5960 including syntax highlighting, indentation of expressions and statements,
5961 linting of manifests and integration with Puppet Debugger.")
5962 ;; Also incorporates work covered by the Apache License, Version 2.0
5963 (license license:gpl3+))))
5964
5965 (define-public emacs-god-mode
5966 (package
5967 (name "emacs-god-mode")
5968 (version "2.17.0")
5969 (source
5970 (origin
5971 (method git-fetch)
5972 (uri (git-reference
5973 (url "https://github.com/chrisdone/god-mode")
5974 (commit version)))
5975 (file-name (git-file-name name version))
5976 (sha256
5977 (base32
5978 "1d2nrj35fzhnycchi0b7m5mbk5fyq7bgpbkkvc5xzqafclrsnapi"))))
5979 (build-system emacs-build-system)
5980 (home-page "https://github.com/chrisdone/god-mode")
5981 (synopsis "Minor mode for entering commands without modifier keys")
5982 (description
5983 "This package provides a global minor mode for entering Emacs commands
5984 without modifier keys. It's similar to Vim's separation of commands and
5985 insertion mode. When enabled all keys are implicitly prefixed with
5986 @samp{C-} (among other helpful shortcuts).")
5987 (license license:gpl3+)))
5988
5989 (define-public emacs-jinja2-mode
5990 (package
5991 (name "emacs-jinja2-mode")
5992 (version "0.2")
5993 (source
5994 (origin
5995 (method git-fetch)
5996 (uri (git-reference
5997 (url "https://github.com/paradoxxxzero/jinja2-mode")
5998 (commit (string-append "v" version))))
5999 (file-name (git-file-name name version))
6000 (sha256
6001 (base32 "0l26wcy496k6xk7q5sf905xir0p73ziy6c44is77854lv3y0z381"))))
6002 (build-system emacs-build-system)
6003 (home-page "https://github.com/paradoxxxzero/jinja2-mode")
6004 (synopsis "Major mode for jinja2")
6005 (description
6006 "Emacs major mode for jinja2 with: syntax highlighting,
6007 sgml/html integration, and indentation (working with sgml).")
6008 (license license:gpl3+)))
6009
6010 (define-public emacs-company-cabal
6011 ;; The latest version is 0.3.0, but no release has been provided after 0.2.1.
6012 (let ((commit "62112a7259e24bd6c08885629a185afe512b7d3d")
6013 (revision "1"))
6014 (package
6015 (name "emacs-company-cabal")
6016 (version (git-version "0.3.0" revision commit))
6017 (source (origin
6018 (method git-fetch)
6019 (uri (git-reference
6020 (url "https://github.com/iquiw/company-cabal/")
6021 (commit commit)))
6022 (file-name (git-file-name name version))
6023 (sha256
6024 (base32
6025 "1gf45xwjzdm8i4q6c6khk4dbg1mmp2r0awz2sjr4dcr2dbd1n7mg"))))
6026 (build-system emacs-build-system)
6027 (propagated-inputs
6028 `(("emacs-company" ,emacs-company)))
6029 (arguments
6030 `(#:include (cons "^tools\\/" %default-include)))
6031 (home-page "https://github.com/iquiw/company-cabal/")
6032 (synopsis "Company completion for Haskell Cabal files")
6033 (description
6034 "This package allows for completion of field names, section names,
6035 field values, and more within @code{haskell-cabal-mode}.")
6036 (license license:gpl3+))))
6037
6038 (define-public emacs-rfcview
6039 (package
6040 (name "emacs-rfcview")
6041 (version "0.13")
6042 (home-page "http://www.loveshack.ukfsn.org/emacs")
6043 (source (origin
6044 (method url-fetch)
6045 (uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el")
6046 (sha256
6047 (base32
6048 "0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz"))))
6049 (build-system emacs-build-system)
6050 (synopsis "Prettify Request for Comments (RFC) documents")
6051 (description "The Internet Engineering Task Force (IETF) and the Internet
6052 Society (ISOC) publish various Internet-related protocols and specifications
6053 as \"Request for Comments\" (RFC) documents and Internet Standard (STD)
6054 documents. RFCs and STDs are published in a simple text form. This package
6055 provides an Emacs major mode, rfcview-mode, which makes it more pleasant to
6056 read these documents in Emacs. It prettifies the text and adds
6057 hyperlinks/menus for easier navigation. It also provides functions for
6058 browsing the index of RFC documents and fetching them from remote servers or
6059 local directories.")
6060 (license license:gpl3+)))
6061
6062 (define-public emacs-ffap-rfc-space
6063 (package
6064 (name "emacs-ffap-rfc-space")
6065 (version "12")
6066 (home-page "https://user42.tuxfamily.org/ffap-rfc-space/index.html")
6067 (source (origin
6068 (method url-fetch)
6069 (uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el")
6070 (sha256
6071 (base32
6072 "1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck"))))
6073 (build-system emacs-build-system)
6074 (synopsis "Make ffap recognize an RFC with a space before its number")
6075 (description "The Internet Engineering Task Force (IETF) and the
6076 Internet Society (ISOC) publish various Internet-related protocols and
6077 specifications as \"Request for Comments\" (RFC) documents. The
6078 built-in Emacs module \"ffap\" (Find File at Point) has the ability to
6079 recognize names at point which look like \"RFC1234\" and \"RFC-1234\"
6080 and load the appropriate RFC from a remote server. However, it fails
6081 to recognize a name like \"RFC 1234\". This package enhances ffap so
6082 that it correctly finds RFCs even when a space appears before the
6083 number.")
6084 (license license:gpl3+)))
6085
6086 (define-public emacs-feature-mode
6087 (let ((version "20190801")
6088 (revision "1")
6089 (commit "11ae1671629bfedaa553c7b819676d64eb320992"))
6090 (package
6091 (name "emacs-feature-mode")
6092 (version (git-version version revision commit))
6093 (source (origin
6094 (method git-fetch)
6095 (uri (git-reference
6096 (url "https://github.com/michaelklishin/cucumber.el")
6097 (commit commit)))
6098 (file-name (git-file-name name version))
6099 (sha256
6100 (base32
6101 "0yd4gkxz9xcbgibfgr8apsid3f83nmg5jgqk5nql0linj5gymc28"))))
6102 (build-system emacs-build-system)
6103 (arguments
6104 `(#:include (cons* "^features\\/" "snippets\\/" "^support\\/"
6105 %default-include)))
6106 (home-page "https://github.com/michaelklishin/cucumber.el/")
6107 (synopsis "Emacs mode for editing Gherkin plain text user stories")
6108 (description "Major mode for editing Gherkin (popularized by the
6109 Cucumber tool) user stories. Also known by the name @code{cucumber.el}.")
6110 (license license:gpl2+))))
6111
6112 (define-public emacs-org-bullets
6113 (package
6114 (name "emacs-org-bullets")
6115 (version "0.2.4")
6116 (source
6117 (origin
6118 (method git-fetch)
6119 (uri (git-reference
6120 (url "https://github.com/sabof/org-bullets")
6121 (commit version)))
6122 (file-name (git-file-name name version))
6123 (sha256
6124 (base32 "10nr4sjffnqbllv6gmak6pviyynrb7pi5nvrq331h5alm3xcpq0w"))))
6125 (build-system emacs-build-system)
6126 (home-page "https://github.com/sabof/org-bullets")
6127 (synopsis "Show bullets in org-mode as UTF-8 characters")
6128 (description
6129 "This package provides an Emacs minor mode causing bullets in
6130 @code{org-mode} to be rendered as UTF-8 characters.")
6131 (license license:gpl3+)))
6132
6133 (define-public emacs-org-drill
6134 (package
6135 (name "emacs-org-drill")
6136 (version "2.7.0")
6137 (source
6138 (origin
6139 (method git-fetch)
6140 (uri (git-reference
6141 (url "https://gitlab.com/phillord/org-drill")
6142 (commit version)))
6143 (file-name (git-file-name name version))
6144 (sha256
6145 (base32 "13y302lyscdqrba1sfx60yf5ji2xi7fbsvjsjbw7hiz63kg6rccy"))))
6146 (build-system emacs-build-system)
6147 (propagated-inputs
6148 `(("emacs-org" ,emacs-org)
6149 ("emacs-persist" ,emacs-persist)))
6150 (home-page "https://gitlab.com/phillord/org-drill")
6151 (synopsis "Flash card memorization system using Org mode")
6152 (description
6153 "This package uses spaced repetition algorithms to conduct interactive
6154 drill sessions to aid in memorization. In these sessions you are shown flash
6155 cards created in Org mode.")
6156 (license license:gpl3+)))
6157
6158 (define-public emacs-org-superstar
6159 (package
6160 (name "emacs-org-superstar")
6161 (version "1.4.0")
6162 (source
6163 (origin
6164 (method git-fetch)
6165 (uri (git-reference
6166 (url "https://github.com/integral-dw/org-superstar-mode")
6167 (commit (string-append "v" version))))
6168 (file-name (git-file-name name version))
6169 (sha256
6170 (base32 "1aklp6nk05ghpq7ybsbvn28wrygfwqvq58k1hjll97nbhd7h0gyb"))))
6171 (build-system emacs-build-system)
6172 (propagated-inputs
6173 `(("emacs-org" ,emacs-org)))
6174 (home-page "https://github.com/integral-dw/org-superstar-mode")
6175 (synopsis "Prettify headings and plain lists in Org mode")
6176 (description "This package prettifies headings and plain lists in
6177 Org mode. It is a direct descendant of @code{org-bullets}, with most
6178 of the code base completely rewritten.
6179
6180 Currently, this package prettifies Org heading lines by:
6181 @itemize
6182 @item replacing trailing bullets by UTF-8 bullets,
6183 @item hiding leading stars, customizing their look or removing them from vision,
6184 @item applying a custom face to the header bullet,
6185 @item applying a custom face to the leading bullets,
6186 @item using double-bullets for inline tasks,
6187 @item (optional) using special bullets for TODO keywords.
6188 @end itemize
6189
6190 It also prettifies Org plain list bullets by:
6191 @itemize
6192 @item replacing each bullet type (*, + and -) with UTF-8 bullets,
6193 @item applying a custom face to item bullets.
6194 @end itemize
6195
6196 Features degrade gracefully when viewed from terminal.")
6197 (license license:gpl3+)))
6198
6199 (define-public emacs-org-pomodoro
6200 ;; Last release version was from 2016.
6201 (let ((commit "aa07c11318f91219336197e62c47bc7a3d090479")
6202 (revision "1"))
6203 (package
6204 (name "emacs-org-pomodoro")
6205 (version (git-version "2.1.0" revision commit))
6206 (source
6207 (origin
6208 (method git-fetch)
6209 (uri (git-reference
6210 (url "https://github.com/marcinkoziej/org-pomodoro")
6211 (commit commit)))
6212 (file-name (git-file-name name version))
6213 (sha256
6214 (base32 "0nbprh2nhnmb7ngp9ndr6zr37ashcsvpi5slv7a37x1dl7j6w1k4"))))
6215 (build-system emacs-build-system)
6216 (propagated-inputs
6217 `(("emacs-alert" ,emacs-alert)))
6218 (arguments
6219 `(#:include (cons "^resources\\/" %default-include)
6220 #:tests? #t
6221 #:test-command '("emacs" "--batch"
6222 "-l" "org-pomodoro-tests.el"
6223 "-f" "ert-run-tests-batch-and-exit")
6224 #:phases
6225 (modify-phases %standard-phases
6226 (add-before 'check 'make-tests-writable
6227 (lambda _
6228 (make-file-writable "org-pomodoro-tests.el")
6229 #t))
6230 (add-before 'check 'add-require
6231 (lambda _
6232 (emacs-batch-edit-file "org-pomodoro-tests.el"
6233 `(progn (progn (goto-char (point-min))
6234 (re-search-forward
6235 "ert-deftest")
6236 (beginning-of-line)
6237 (forward-line -1)
6238 (insert "(require 'org-pomodoro)"))
6239 (basic-save-buffer)))
6240 #t)))))
6241 (home-page "https://github.com/marcinkoziej/org-pomodoro")
6242 (synopsis "Pomodoro technique for org-mode")
6243 (description "@code{emacs-org-pomodoro} adds very basic support for
6244 Pomodoro technique in Emacs org-mode.
6245
6246 Run @code{M-x org-pomodoro} for the task at point or select one of the
6247 last tasks that you clocked time for. Each clocked-in pomodoro starts
6248 a timer of 25 minutes and after each pomodoro a break timer of 5
6249 minutes is started automatically. Every 4 breaks a long break is
6250 started with 20 minutes. All values are customizable.")
6251 (license license:gpl3+))))
6252
6253 (define-public emacs-org-sidebar
6254 (package
6255 (name "emacs-org-sidebar")
6256 (version "0.2")
6257 (source
6258 (origin
6259 (method git-fetch)
6260 (uri (git-reference
6261 (url "https://github.com/alphapapa/org-sidebar")
6262 (commit version)))
6263 (file-name (git-file-name name version))
6264 (sha256
6265 (base32 "106h06vjfbqfj761vbxwymd6612ds8c6fk053yzgbrqzm3hn2c03"))))
6266 (build-system emacs-build-system)
6267 (propagated-inputs
6268 `(("emacs-dash" ,emacs-dash)
6269 ("emacs-org-super-agenda" ,emacs-org-super-agenda)
6270 ("emacs-org" ,emacs-org)
6271 ("emacs-org-ql" ,emacs-org-ql)
6272 ("emacs-s" ,emacs-s)))
6273 (home-page "https://github.com/alphapapa/org-sidebar")
6274 (synopsis "Helpful sidebar for Org buffers")
6275 (description "This package provides a sidebar for Org buffers. At the
6276 top is a chronological list of scheduled and deadlined tasks in the current
6277 buffer (similar to the Org agenda ,but without all its features), and below
6278 that is a list of all other non-done to-do items. If the buffer is narrowed,
6279 the sidebar only shows items in the narrowed portion; this allows seeing an
6280 overview of tasks in a subtree.")
6281 (license license:gpl3+)))
6282
6283 (define-public emacs-org-trello
6284 (package
6285 (name "emacs-org-trello")
6286 (version "0.8.1")
6287 (source
6288 (origin
6289 (method git-fetch)
6290 (uri (git-reference
6291 (url "https://github.com/org-trello/org-trello")
6292 (commit version)))
6293 (file-name (git-file-name name version))
6294 (sha256
6295 (base32
6296 "02gx3kv4mkij69ln8x8wf9n28x17pbb4kv85v78d3lxph7ykqimc"))))
6297 (build-system emacs-build-system)
6298 (propagated-inputs
6299 `(("emacs-dash" ,emacs-dash)
6300 ("emacs-deferred" ,emacs-deferred)
6301 ("emacs-f" ,emacs-f)
6302 ("emacs-helm" ,emacs-helm)
6303 ("emacs-request" ,emacs-request)
6304 ("emacs-s" ,emacs-s)))
6305 (home-page "https://org-trello.github.io")
6306 (synopsis "Emacs minor mode for interacting with Trello")
6307 (description "This package provides an Emacs minor mode to extend
6308 @code{org-mode} with Trello abilities. Trello is an online project
6309 organizer.")
6310 (license license:gpl3+)))
6311
6312 (define-public emacs-org-tanglesync
6313 (let ((commit "d99181f173b4e55b4e835d99fcd415e62beb047f")
6314 (revision "2"))
6315 (package
6316 (name "emacs-org-tanglesync")
6317 (version (git-version "0.6" revision commit))
6318 (source
6319 (origin
6320 (method git-fetch)
6321 (uri (git-reference
6322 (url "https://github.com/mtekman/org-tanglesync.el")
6323 (commit commit)))
6324 (file-name (git-file-name name version))
6325 (sha256
6326 (base32 "0x94gy1bgfd1f3p9w2bfrqj11bwy9ql0cpi1gw6srpj7kykx0lml"))))
6327 (build-system emacs-build-system)
6328 (propagated-inputs
6329 `(("emacs-org" ,emacs-org)))
6330 (home-page "https://github.com/mtekman/org-tanglesync.el")
6331 (synopsis "Sync Org source blocks with tangled external files")
6332 (description "This package automatically pulls changes from source code
6333 to their corresponding tangled blocks.")
6334 (license license:gpl3+))))
6335
6336 (define-public emacs-company-flow
6337 (let ((commit "76ef585c70d2a3206c2eadf24ba61e59124c3a16")
6338 (revision "1"))
6339 (package
6340 (name "emacs-company-flow")
6341 (version (git-version "0.1.0" revision commit))
6342 (source (origin
6343 (method git-fetch)
6344 (uri (git-reference
6345 (url "https://github.com/aaronjensen/company-flow/")
6346 (commit commit)))
6347 (file-name (git-file-name name version))
6348 (sha256
6349 (base32
6350 "0zs9cblnbkxa0dxw4lyllmybqizxcdx96gv8jlhx20nrjpi78piw"))))
6351 (build-system emacs-build-system)
6352 (propagated-inputs
6353 `(("emacs-company" ,emacs-company)
6354 ("emacs-dash" ,emacs-dash)))
6355 (home-page "https://github.com/aaronjensen/company-flow/")
6356 (synopsis "Flow backend for @code{company-mode}")
6357 (description
6358 "This package provides completion for JavaScript files utilizing Flow.")
6359 (license license:gpl3+))))
6360
6361 (define-public emacs-habitica
6362 (let ((commit "c45c602ddf9d6cbb0e3baf5cb3e1b7ef90f2759d")
6363 (revision "1"))
6364 (package
6365 (name "emacs-habitica")
6366 (version (git-version "1.0" revision commit))
6367 (source
6368 (origin
6369 (method git-fetch)
6370 (uri (git-reference
6371 (url "https://github.com/abrochard/emacs-habitica")
6372 (commit commit)))
6373 (file-name (git-file-name name version))
6374 (sha256
6375 (base32
6376 "0wgnzn3z98bl28jgqi7xklw9fwx2wwgihj3mq0jb8ah4vn70d0j3"))))
6377 (build-system emacs-build-system)
6378 (home-page "https://github.com/abrochard/emacs-habitica")
6379 (synopsis "Emacs interface for Habitica")
6380 (description "Emacs extension for @uref{https://habitica.com/, Habitica},
6381 a RPG style habit tracker and todo list.")
6382 (license license:gpl3+))))
6383
6384 (define-public emacs-atom-one-dark-theme
6385 (let ((commit "1f1185bf667a38d3d0d180ce85fd4c131818aae2")
6386 (revision "0"))
6387 (package
6388 (name "emacs-atom-one-dark-theme")
6389 (version (git-version "0.4.0" revision commit))
6390 (source (origin
6391 (method git-fetch)
6392 (uri (git-reference
6393 (url "https://github.com/jonathanchu/atom-one-dark-theme")
6394 (commit commit)))
6395 (sha256
6396 (base32
6397 "1alma16hg3mfjly8a9s3mrswkjjx4lrpdnf43869hn2ibkn7zx9z"))
6398 (file-name (git-file-name name version))))
6399 (build-system emacs-build-system)
6400 (home-page "https://github.com/jonathanchu/atom-one-dark-theme")
6401 (synopsis "Atom One Dark color theme for Emacs")
6402 (description "An Emacs port of the Atom One Dark theme from Atom.io.")
6403 (license license:gpl3+))))
6404
6405 (define-public emacs-zenburn-theme
6406 (package
6407 (name "emacs-zenburn-theme")
6408 (version "2.6")
6409 (source
6410 (origin
6411 (method git-fetch)
6412 (uri (git-reference
6413 (url "https://github.com/bbatsov/zenburn-emacs")
6414 (commit (string-append "v" version))))
6415 (file-name (git-file-name name version))
6416 (sha256
6417 (base32 "1n87r5hs7h5r8dgfid66skpzcypl9hssr9m3npp916g6jfsi782f"))))
6418 (build-system emacs-build-system)
6419 (home-page "https://github.com/bbatsov/zenburn-emacs")
6420 (synopsis "Low contrast color theme for Emacs")
6421 (description
6422 "Zenburn theme is a port of the popular Vim Zenburn theme for Emacs.
6423 It is built on top of the custom theme support in Emacs 24 or later.")
6424 (license license:gpl3+)))
6425
6426 (define-public emacs-moe-theme-el
6427 (let ((commit "6e086d855d6bb446bbd1090742815589a81a915f")
6428 (version "1.0")
6429 (revision "1"))
6430 (package
6431 (name "emacs-moe-theme-el")
6432 (version (git-version version revision commit))
6433 (source
6434 (origin
6435 (method git-fetch)
6436 (uri (git-reference
6437 (url "https://github.com/kuanyui/moe-theme.el")
6438 (commit commit)))
6439 (file-name (git-file-name name version))
6440 (sha256
6441 (base32 "0xj4wfd7h4jqnr193pizm9frf6lmwjr0dsdv2l9mqh9k691z1dnc"))))
6442 (build-system emacs-build-system)
6443 (home-page "https://github.com/kuanyui/moe-theme.el")
6444 (synopsis "Anime-inspired color themes")
6445 (description
6446 "This package provides vibrant color schemes with light and dark
6447 variants.")
6448 (license license:gpl3+))))
6449
6450 (define-public emacs-solarized-theme
6451 (package
6452 (name "emacs-solarized-theme")
6453 (version "1.3.1")
6454 (source
6455 (origin
6456 (method git-fetch)
6457 (uri (git-reference
6458 (url "https://github.com/bbatsov/solarized-emacs/")
6459 (commit (string-append "v" version))))
6460 (file-name (git-file-name name version))
6461 (sha256
6462 (base32 "15ql8xcixgm7mbs7rsbybwszanqibq057j5b5ds89a31dw7zxf1g"))))
6463 (build-system emacs-build-system)
6464 (propagated-inputs
6465 `(("emacs-dash" ,emacs-dash)))
6466 (home-page "https://github.com/bbatsov/solarized-emacs")
6467 (synopsis "Port of the Solarized theme for Emacs")
6468 (description
6469 "Solarized for Emacs is a port of the Solarized theme for Vim. This
6470 package provides a light and a dark variant.")
6471 (license license:gpl3+)))
6472
6473 (define-public emacs-poet-theme
6474 (let ((commit "d84f7b259cc9b6ff8d442cf4c38bd6c7065ff8f4")
6475 (revision "0"))
6476 (package
6477 (name "emacs-poet-theme")
6478 (version (git-version "0" revision commit))
6479 (source
6480 (origin
6481 (method git-fetch)
6482 (uri (git-reference
6483 (url "https://github.com/kunalb/poet")
6484 (commit commit)))
6485 (file-name (git-file-name name version))
6486 (sha256
6487 (base32
6488 "0a84jdaj619mb59a46dmkk2sfs42rylqk9ryl1drgs8d3lia79mz"))))
6489 (build-system emacs-build-system)
6490 (home-page "https://github.com/kunalb/poet/")
6491 (synopsis "Emacs theme for prose")
6492 (description
6493 "Emacs has very good support for multiple fonts in a single file. Poet
6494 uses this support to make it much more convenient to write prose within Emacs,
6495 with particular attention paid to @code{org-mode} and @code{markdown-mode}.
6496 Code blocks, tables, etc are formatted in monospace text with the appropriate
6497 backgrounds.")
6498 (license license:expat))))
6499
6500 (define-public emacs-ahungry-theme
6501 (package
6502 (name "emacs-ahungry-theme")
6503 (version "1.10.0")
6504 (source
6505 (origin (method url-fetch)
6506 (uri (string-append "https://elpa.gnu.org/packages/ahungry-theme-"
6507 version ".tar"))
6508 (sha256
6509 (base32
6510 "14q5yw56n82qph09bk7wmj5b1snhh9w0nk5s1l7yn9ldg71xq6pm"))))
6511 (build-system emacs-build-system)
6512 (home-page "https://github.com/ahungry/color-theme-ahungry")
6513 (synopsis "Ahungry color theme for Emacs")
6514 (description "Ahungry theme for Emacs provides bright and bold colors.
6515 If you load it from a terminal, you will be able to make use of the
6516 transparent background. If you load it from a GUI, it will default to a
6517 dark background.")
6518 (license license:gpl3+)))
6519
6520 (define-public emacs-gruvbox-theme
6521 (package
6522 (name "emacs-gruvbox-theme")
6523 (version "1.28.0")
6524 (source (origin
6525 (method git-fetch)
6526 (uri (git-reference
6527 (url "https://github.com/greduan/emacs-theme-gruvbox")
6528 (commit version)))
6529 (file-name (git-file-name name version))
6530 (sha256
6531 (base32
6532 "00qq92gp1g55pzm97rh7k0dgxy44pxziridl8kqm4rbpi31r7k9p"))))
6533 (build-system emacs-build-system)
6534 (propagated-inputs
6535 `(("emacs-autothemer" ,emacs-autothemer)))
6536 (home-page "https://github.com/greduan/emacs-theme-gruvbox")
6537 (synopsis "Gruvbox is a retro groove color scheme ported from Vim")
6538 (description
6539 "Gruvbox is heavily inspired by badwolf, jellybeans and solarized.
6540
6541 Designed as a bright theme with pastel 'retro groove' colors and light/dark
6542 mode switching in the way of solarized. The main focus when developing gruvbox
6543 is to keep colors easily distinguishable, contrast enough and still pleasant
6544 for the eyes.")
6545 (license license:expat))) ; MIT license
6546
6547 (define-public emacs-spacegray-theme
6548 (let ((commit "9826265c2bceb2ebc1c5e16a45021da0253ace97")
6549 (revision "0"))
6550 (package
6551 (name "emacs-spacegray-theme")
6552 (version (git-version "0" revision commit))
6553 (source (origin
6554 (method git-fetch)
6555 (uri (git-reference
6556 (url "https://github.com/bruce/emacs-spacegray-theme")
6557 (commit commit)))
6558 (file-name (git-file-name name version))
6559 (sha256
6560 (base32
6561 "0aplwmm17ypbns5blc4rf5rr6dasj0zp5ibykpfl43fh4bd8z89n"))))
6562 (build-system emacs-build-system)
6563 (home-page "https://github.com/bruce/emacs-spacegray-theme")
6564 (synopsis "Port of Sublime Text's Spacegray theme for Emacs")
6565 (description
6566 "@code{spacegray-theme} is an Emacs port of the Spacegray theme from
6567 Sublime Text. It features a dark blue/gray background and soft blue, green,
6568 orange and red as accent colors.")
6569 (license license:expat)))) ; MIT license
6570
6571 (define-public emacs-2048-game
6572 (package
6573 (name "emacs-2048-game")
6574 (version "20151026.1233")
6575 (source
6576 (origin
6577 (method url-fetch)
6578 (uri (string-append "https://melpa.org/packages/2048-game-"
6579 version ".el"))
6580 (sha256
6581 (base32
6582 "0gy2pvz79whpavp4jmz8h9krzn7brmvv3diixi1d4w51pcdvaldd"))))
6583 (build-system emacs-build-system)
6584 (home-page "https://hg.sr.ht/~zck/game-2048")
6585 (synopsis "Implementation of the game 2048 in Emacs Lisp")
6586 (description
6587 "This program is an implementation of 2048 for Emacs.
6588 The goal of this game is to create a tile with value 2048. The size of the
6589 board and goal value can be customized.")
6590 (license license:gpl3+)))
6591
6592 (define-public emacs-chess
6593 (package
6594 (name "emacs-chess")
6595 (version "2.0.4")
6596 (source
6597 (origin
6598 (method url-fetch)
6599 (uri (string-append "https://elpa.gnu.org/packages/"
6600 "chess-" version ".tar"))
6601 (sha256
6602 (base32 "1sq1bjmp513vldfh7hc2bbfc54665abqiz0kqgqq3gijckaxn5js"))))
6603 (build-system emacs-build-system)
6604 (arguments
6605 `(#:phases
6606 (modify-phases %standard-phases
6607 (add-after 'install 'install-pieces
6608 (lambda* (#:key outputs #:allow-other-keys)
6609 (let* ((out (assoc-ref outputs "out"))
6610 (pieces
6611 (string-append out "/share/emacs/site-lisp/pieces")))
6612 (mkdir-p pieces)
6613 (copy-recursively "pieces" pieces)
6614 #t))))))
6615 (home-page "https://elpa.gnu.org/packages/chess.html")
6616 (synopsis "Play chess in GNU Emacs")
6617 (description
6618 "Chess is an Emacs Lisp library and several clients on top of the
6619 underlying library functionality for performing various activities related to
6620 the game of chess.")
6621 (license license:gpl3+)))
6622
6623 (define-public emacs-4clojure
6624 ;; There is no release. Base version is extracted from Version keyword in
6625 ;; the main file.
6626 (let ((commit "4eccf8c7d4341a36c269451838114b27836699f9")
6627 (revision "1"))
6628 (package
6629 (name "emacs-4clojure")
6630 (version (git-version "0.2.1" revision commit))
6631 (source
6632 (origin
6633 (method git-fetch)
6634 (uri (git-reference
6635 (url "https://github.com/emacsorphanage/4clojure")
6636 (commit commit)))
6637 (file-name (git-file-name name version))
6638 (sha256
6639 (base32 "19x653lzc1dxil4ix257hciidbdmbhaxhs6qhlkwi9ygjrlrgvnk"))))
6640 (build-system emacs-build-system)
6641 (propagated-inputs
6642 `(("emacs-request" ,emacs-request)))
6643 (home-page "https://github.com/emacsorphanage/4clojure/")
6644 (synopsis "Open and evaluate 4clojure questions in Emacs")
6645 (description "Emacs 4clojure interacts with
6646 @url{http://www.4clojure.com, 4clojure} problems. You can open a specific
6647 question and move to the next or previous one. You can also verify your
6648 answers.")
6649 (license license:gpl3+))))
6650
6651 (define-public emacs-base16-theme
6652 (package
6653 (name "emacs-base16-theme")
6654 (version "2.2")
6655 (source
6656 (origin
6657 (method git-fetch)
6658 (uri (git-reference
6659 (url "https://github.com/belak/base16-emacs")
6660 (commit version)))
6661 (file-name (git-file-name name version))
6662 (sha256
6663 (base32 "01w89g413s1da6rf94y1xnhw79cjy2bqb01yfjs58cy492cm0vr6"))))
6664 (build-system emacs-build-system)
6665 (home-page "https://github.com/belak/base16-emacs")
6666 (synopsis "Base16 color themes for Emacs")
6667 (description
6668 "Base16 provides carefully chosen syntax highlighting and a default set
6669 of sixteen colors suitable for a wide range of applications. Base16 is not a
6670 single theme but a set of guidelines with numerous implementations.")
6671 (license license:expat)))
6672
6673 (define-public emacs-solaire-mode
6674 (package
6675 (name "emacs-solaire-mode")
6676 (version "1.0.9")
6677 (source
6678 (origin
6679 (method git-fetch)
6680 (uri (git-reference
6681 (url "https://github.com/hlissner/emacs-solaire-mode")
6682 (commit (string-append "v" version))))
6683 (file-name (git-file-name name version))
6684 (sha256
6685 (base32 "011m4r7s6i9lgjymh7jgq5jwwrpz4vmpvp3c8d4ix96v5hi04kzg"))))
6686 (build-system emacs-build-system)
6687 (home-page "https://github.com/hlissner/emacs-solaire-mode")
6688 (synopsis "Change background of file-visiting buffers in Emacs")
6689 (description
6690 "@code{solaire-mode} is inspired by editors which visually distinguish
6691 code-editing windows from sidebars, popups, terminals, ecetera. It changes the
6692 background of file-visiting buffers (and certain aspects of the UI) to make
6693 them easier to distinguish from other, less important buffers.")
6694 (license license:expat)))
6695
6696 (define-public emacs-prescient
6697 (package
6698 (name "emacs-prescient")
6699 (version "5.0")
6700 (source
6701 (origin
6702 (method git-fetch)
6703 (uri (git-reference
6704 (url "https://github.com/raxod502/prescient.el")
6705 (commit (string-append "v" version))))
6706 (file-name (git-file-name name version))
6707 (sha256
6708 (base32 "001q4l730bhw4d508jxlpzh1z459qzpg6rbncp12jrfm5yidksix"))))
6709 (build-system emacs-build-system)
6710 (propagated-inputs
6711 `(("emacs-company" ,emacs-company)
6712 ("emacs-ivy" ,emacs-ivy)
6713 ("emacs-selectrum" ,emacs-selectrum)))
6714 (home-page "https://github.com/raxod502/prescient.el/")
6715 (synopsis "Emacs library for sorting and filtering candidates")
6716 (description
6717 "Prescient is a library for sorting and filtering, as well as extensions
6718 for Ivy and Company that make use of the library.")
6719 (license license:expat)))
6720
6721 (define-public emacs-selectrum
6722 (package
6723 (name "emacs-selectrum")
6724 (version "3.0")
6725 (source
6726 (origin
6727 (method git-fetch)
6728 (uri (git-reference
6729 (url "https://github.com/raxod502/selectrum")
6730 (commit (string-append "v" version))))
6731 (file-name (git-file-name name version))
6732 (sha256
6733 (base32 "0j10yxlikyg7qxcmp4fnddyd5nc3hlz080d1zcbijq020a08k86g"))))
6734 (build-system emacs-build-system)
6735 (home-page "https://github.com/raxod502/selectrum/")
6736 (synopsis "Incremental narrowing in Emacs")
6737 (description "Selectrum is a solution for incremental narrowing in
6738 Emacs, replacing Helm, Ivy, and IDO. Its design philosophy is based
6739 on choosing the right abstractions and prioritizing consistency and
6740 predictability over special-cased improvements for particular cases.
6741 As such, Selectrum follows existing Emacs conventions where they exist
6742 and are reasonable, and it declines to implement features which have
6743 marginal benefit compared to the additional complexity of a new
6744 interface.")
6745 (license license:expat)))
6746
6747 (define-public emacs-smartparens
6748 (package
6749 (name "emacs-smartparens")
6750 (version "1.11.0")
6751 (source
6752 (origin
6753 (method git-fetch)
6754 (uri (git-reference
6755 (url "https://github.com/Fuco1/smartparens")
6756 (commit version)))
6757 (file-name (git-file-name name version))
6758 (sha256
6759 (base32 "0zij2f2rjjym98w68jkp10n1ckpfprlkk217c3fg16hz5nq4vnm6"))))
6760 (build-system emacs-build-system)
6761 (propagated-inputs
6762 `(("emacs-dash" ,emacs-dash)
6763 ("emacs-markdown-mode" ,emacs-markdown-mode)))
6764 (home-page "https://github.com/Fuco1/smartparens")
6765 (synopsis "Paredit-like insertion, wrapping and navigation with user
6766 defined pairs")
6767 (description
6768 "Smartparens is a minor mode for Emacs that deals with parens pairs
6769 and tries to be smart about it. It started as a unification effort to
6770 combine functionality of several existing packages in a single,
6771 compatible and extensible way to deal with parentheses, delimiters, tags
6772 and the like. Some of these packages include autopair, textmate,
6773 wrap-region, electric-pair-mode, paredit and others. With the basic
6774 features found in other packages it also brings many improvements as
6775 well as completely new features.")
6776 (license license:gpl3+)))
6777
6778 (define-public emacs-highlight-symbol
6779 ;; We prefer a more recent commit that provides an option to squelch
6780 ;; echo-area alerts that can drown out useful information like eldoc
6781 ;; messages.
6782 (let ((commit "7a789c779648c55b16e43278e51be5898c121b3a")
6783 (version "1.3")
6784 (revision "1"))
6785 (package
6786 (name "emacs-highlight-symbol")
6787 (version (git-version version revision commit))
6788 (source
6789 (origin
6790 (method git-fetch)
6791 (uri (git-reference
6792 (url "https://github.com/nschum/highlight-symbol.el")
6793 (commit commit)))
6794 (file-name (git-file-name name version))
6795 (sha256
6796 (base32 "19cgyk0sh8nsmf3jbi92i8qsdx4l4yilfq5jj9zfdbj9p5gvwx96"))))
6797 (build-system emacs-build-system)
6798 (home-page "https://nschum.de/src/emacs/highlight-symbol/")
6799 (synopsis "Automatic and manual symbol highlighting for Emacs")
6800 (description
6801 "Use @code{highlight-symbol} to toggle highlighting of the symbol at
6802 point throughout the current buffer. Use @code{highlight-symbol-mode} to keep
6803 the symbol at point highlighted.
6804
6805 The functions @code{highlight-symbol-next}, @code{highlight-symbol-prev},
6806 @code{highlight-symbol-next-in-defun} and
6807 @code{highlight-symbol-prev-in-defun} allow for cycling through the locations
6808 of any symbol at point. Use @code{highlight-symbol-nav-mode} to enable key
6809 bindings @code{M-p} and @code{M-p} for navigation. When
6810 @code{highlight-symbol-on-navigation-p} is set, highlighting is triggered
6811 regardless of @code{highlight-symbol-idle-delay}.
6812
6813 @code{highlight-symbol-query-replace} can be used to replace the symbol. ")
6814 (license license:gpl2+))))
6815
6816 (define-public emacs-symbol-overlay
6817 (package
6818 (name "emacs-symbol-overlay")
6819 (version "4.2")
6820 (source
6821 (origin
6822 (method git-fetch)
6823 (uri (git-reference
6824 (url "https://github.com/wolray/symbol-overlay")
6825 (commit version)))
6826 (file-name (git-file-name name version))
6827 (sha256
6828 (base32 "10n0871xzycifyqp73xnbqmrgy60imlb26yhm3p6vfj3d84mg1b2"))))
6829 (build-system emacs-build-system)
6830 (home-page "https://github.com/wolray/symbol-overlay")
6831 (synopsis "Highlight symbols and perform various search operations on them")
6832 (description
6833 "This package provides functions for highlighting and navigating
6834 between symbols.")
6835 (license license:gpl3+)))
6836
6837 (define-public emacs-hl-todo
6838 (package
6839 (name "emacs-hl-todo")
6840 (version "3.1.2")
6841 (source (origin
6842 (method git-fetch)
6843 (uri (git-reference
6844 (url "https://github.com/tarsius/hl-todo")
6845 (commit (string-append "v" version))))
6846 (file-name (git-file-name name version))
6847 (sha256
6848 (base32
6849 "1i5mdmkbrxqx75grwl01pywbgl8pasr00mq6fidspp0aligsbg6w"))))
6850 (build-system emacs-build-system)
6851 (home-page "https://github.com/tarsius/hl-todo")
6852 (synopsis "Emacs mode to highlight TODO and similar keywords")
6853 (description
6854 "This package provides an Emacs mode to highlight TODO and similar
6855 keywords in comments and strings. This package also provides commands for
6856 moving to the next or previous keyword and to invoke @code{occur} with a
6857 regexp that matches all known keywords.")
6858 (license license:gpl3+)))
6859
6860 (define-public emacs-perspective
6861 (package
6862 (name "emacs-perspective")
6863 (version "2.11")
6864 (source
6865 (origin
6866 (method git-fetch)
6867 (uri (git-reference
6868 (url "https://github.com/nex3/perspective-el")
6869 (commit version)))
6870 (file-name (git-file-name name version))
6871 (sha256
6872 (base32
6873 "0nka5z6226r174ligja023qx2bb1pfyjbanafxprbyxkr17b2794"))))
6874 (build-system emacs-build-system)
6875 (arguments
6876 `(#:tests? #t
6877 #:test-command '("emacs" "-Q" "-batch" "-L" "."
6878 "-l" "test/test-perspective.el"
6879 "-f" "ert-run-tests-batch-and-exit")))
6880 (home-page "https://github.com/nex3/perspective-el")
6881 (synopsis "Switch between named \"perspectives\"")
6882 (description
6883 "This package provides tagged workspaces in Emacs, similar to workspaces in
6884 windows managers such as Awesome and XMonad. @code{perspective.el} provides
6885 multiple workspaces (or \"perspectives\") for each Emacs frame. Each
6886 perspective is composed of a window configuration and a set of buffers.
6887 Switching to a perspective activates its window configuration, and when in a
6888 perspective only its buffers are available by default.")
6889 ;; This package is released under the same license as Emacs (GPLv3+) or
6890 ;; the Expat license.
6891 (license license:gpl3+)))
6892
6893 (define-public emacs-persp-mode
6894 (package
6895 (name "emacs-persp-mode")
6896 (version "2.9.8")
6897 (source
6898 (origin
6899 (method git-fetch)
6900 (uri (git-reference
6901 (url "https://github.com/Bad-ptr/persp-mode.el")
6902 (commit (string-append "v" version))))
6903 (file-name (git-file-name name version))
6904 (sha256
6905 (base32
6906 "0b4y7a6j70s9lvr37riyy9k5kh3yvmx0m6nd9c0c8572ji4ij65g"))))
6907 (build-system emacs-build-system)
6908 (home-page "https://github.com/Bad-ptr/persp-mode.el")
6909 (synopsis "Switch between named \"perspectives\" shared among frames")
6910 (description
6911 "This package extends @code{perspective.el} to enable perspectives that
6912 can be saved to and restored from a file.")
6913 (license license:gpl2+)))
6914
6915 (define-public emacs-test-simple
6916 (package
6917 (name "emacs-test-simple")
6918 (version "1.3.0")
6919 (source
6920 (origin
6921 (method url-fetch)
6922 (uri (string-append "https://elpa.gnu.org/packages/test-simple-"
6923 version ".el"))
6924 (sha256
6925 (base32
6926 "1yd61jc9ds95a5n09052kwc5gasy57g4lxr0jsff040brlyi9czz"))))
6927 (build-system emacs-build-system)
6928 (home-page "https://github.com/rocky/emacs-test-simple")
6929 (synopsis "Simple unit test framework for Emacs Lisp")
6930 (description
6931 "Test Simple is a simple unit test framework for Emacs Lisp. It
6932 alleviates the need for context macros, enclosing specifications or required
6933 test tags. It supports both interactive and non-interactive use.")
6934 (license license:gpl3+)))
6935
6936 (define-public emacs-load-relative
6937 (package
6938 (name "emacs-load-relative")
6939 (version "1.3.1")
6940 (source
6941 (origin
6942 (method url-fetch)
6943 (uri (string-append "https://elpa.gnu.org/packages/load-relative-"
6944 version ".el"))
6945 (sha256
6946 (base32 "1m37scr82lqqy954fchjxrmdh4lngrl4d1yzxhp3yfjhsydizhrj"))))
6947 (build-system emacs-build-system)
6948 (home-page "https://github.com/rocky/emacs-load-relative")
6949 (synopsis "Emacs Lisp relative file loading related functions")
6950 (description
6951 "Provides functions which facilitate writing multi-file Emacs packages
6952 and running from the source tree without having to \"install\" code or fiddle
6953 with @{load-path}.
6954
6955 The main function, @code{load-relative}, loads an Emacs Lisp file relative to
6956 another (presumably currently running) Emacs Lisp file.")
6957 (license license:gpl3+)))
6958
6959 (define-public emacs-loc-changes
6960 (package
6961 (name "emacs-loc-changes")
6962 (version "1.2")
6963 (source
6964 (origin
6965 (method url-fetch)
6966 (uri (string-append "https://elpa.gnu.org/packages/loc-changes-"
6967 version ".el"))
6968 (sha256
6969 (base32
6970 "1x8fn8vqasayf1rb8a6nma9n6nbvkx60krmiahyb05vl5rrsw6r3"))))
6971 (build-system emacs-build-system)
6972 (home-page "https://github.com/rocky/emacs-loc-changes")
6973 (synopsis "Keeps track of positions even after buffer changes")
6974 (description
6975 "This Emacs package provides a mean to track important buffer positions
6976 after buffer changes.")
6977 (license license:gpl3+)))
6978
6979 (define-public emacs-realgud
6980 (package
6981 (name "emacs-realgud")
6982 (version "1.5.1")
6983 (source
6984 (origin
6985 (method git-fetch)
6986 (uri (git-reference
6987 (url "https://github.com/realgud/realgud/")
6988 (commit version)))
6989 (sha256
6990 (base32
6991 "1d3s23jk0i34wpyxfajydgyyvsxnpbqrfl0mgydsq7zw2c75ylnq"))
6992 (file-name (git-file-name name version))))
6993 (build-system emacs-build-system)
6994 (arguments
6995 `(#:tests? #t
6996 #:phases
6997 (modify-phases %standard-phases
6998 (add-after 'unpack 'fix-realgud:run-process-void-error
6999 ;; See: https://github.com/realgud/realgud/issues/269.
7000 (lambda _
7001 (substitute* '("realgud/debugger/gdb/gdb.el"
7002 "realgud/debugger/gub/gub.el")
7003 (("^\\(require 'load-relative\\).*" anchor)
7004 (string-append anchor
7005 "(require-relative-list \
7006 '(\"../../common/run\") \"realgud:\")\n")))
7007 #t))
7008 (add-after 'unpack 'fix-autogen-script
7009 (lambda _
7010 (substitute* "autogen.sh"
7011 (("./configure") "sh configure"))
7012 #t))
7013 (add-after 'fix-autogen-script 'autogen
7014 (lambda _
7015 (setenv "CONFIG_SHELL" "sh")
7016 (invoke "sh" "autogen.sh")))
7017 (add-after 'fix-autogen-script 'set-home
7018 (lambda _
7019 (setenv "HOME" (getenv "TMPDIR"))
7020 #t))
7021 (add-before 'patch-el-files 'remove-realgud-pkg.el
7022 (lambda _
7023 ;; FIXME: `patch-el-files' crashes on this file with error:
7024 ;; unable to locate "bashdb".
7025 (delete-file "./test/test-regexp-bashdb.el")
7026 #t)))
7027 #:include (cons* ".*\\.el$" %default-include)))
7028 (native-inputs
7029 `(("autoconf" ,autoconf)
7030 ("automake" ,automake)
7031 ("emacs-test-simple" ,emacs-test-simple)))
7032 (propagated-inputs
7033 `(("emacs-load-relative" ,emacs-load-relative)
7034 ("emacs-loc-changes" ,emacs-loc-changes)))
7035 (home-page "https://github.com/realgud/realgud/")
7036 (synopsis
7037 "Modular front-end for interacting with external debuggers")
7038 (description
7039 "RealGUD is a modular, extensible GNU Emacs front-end for interacting
7040 with external debuggers. It integrates various debuggers such as gdb, pdb,
7041 ipdb, jdb, lldb, bashdb, zshdb, etc. and allows to visually step code in the
7042 sources. Unlike GUD, it also supports running multiple debug sessions in
7043 parallel.")
7044 (license license:gpl3+)))
7045
7046 (define-public emacs-request
7047 (package
7048 (name "emacs-request")
7049 (version "0.3.2")
7050 (source (origin
7051 (method git-fetch)
7052 (uri (git-reference
7053 (url "https://github.com/tkf/emacs-request")
7054 (commit (string-append "v" version))))
7055 (file-name (git-file-name name version))
7056 (sha256
7057 (base32
7058 "1djywhvvb6kwdj0nd3axjvb7k2g06dzkc6hsf29w9rsk96vr8ryl"))))
7059 (build-system emacs-build-system)
7060 (arguments
7061 `(#:tests? #f)) ; requires network access.
7062 (propagated-inputs
7063 `(("emacs-deferred" ,emacs-deferred)))
7064 (home-page "https://github.com/tkf/emacs-request")
7065 (synopsis "Package for speaking HTTP in Emacs Lisp")
7066 (description "This package provides a HTTP request library with multiple
7067 backends. It supports url.el which is shipped with Emacs and the curl command
7068 line program.")
7069 (license license:gpl3+)))
7070
7071 (define-public emacs-rudel
7072 (package
7073 (name "emacs-rudel")
7074 (version "0.3.2")
7075 (source
7076 (origin
7077 (method url-fetch)
7078 (uri (string-append "https://elpa.gnu.org/packages/rudel-"
7079 version ".tar"))
7080 (sha256
7081 (base32 "03hcvpp6ykavidwn5x48gs986w1i5icvh7ks6p74pdaagpgw4jmk"))))
7082 (build-system emacs-build-system)
7083 (home-page "http://rudel.sourceforge.net/")
7084 (synopsis "Collaborative editing framework")
7085 (description
7086 "Rudel is a collaborative editing environment for GNU Emacs. Its purpose
7087 is to share buffers with other users in order to edit the contents of those
7088 buffers collaboratively. Rudel supports multiple backends to enable
7089 communication with other collaborative editors using different protocols,
7090 though currently Obby (for use with the Gobby editor) is the only
7091 fully-functional one.")
7092 (license license:gpl3+)))
7093
7094 (define-public emacs-hydra
7095 (package
7096 (name "emacs-hydra")
7097 (version "0.15.0")
7098 (source
7099 (origin
7100 (method git-fetch)
7101 (uri (git-reference
7102 (url "https://github.com/abo-abo/hydra")
7103 (commit version)))
7104 (file-name (git-file-name name version))
7105 (sha256
7106 (base32
7107 "0fapvhmhgc9kppf3bvkgry0cd7gyilg7sfvlscfrfjxpx4xvwsfy"))))
7108 (build-system emacs-build-system)
7109 (arguments
7110 `(#:tests? #t
7111 #:test-command '("make" "test")))
7112 (home-page "https://github.com/abo-abo/hydra")
7113 (synopsis "Make Emacs bindings that stick around")
7114 (description
7115 "This package can be used to tie related commands into a family of short
7116 bindings with a common prefix---a Hydra. Once you summon the Hydra (through
7117 the prefixed binding), all the heads can be called in succession with only a
7118 short extension. Any binding that isn't the Hydra's head vanquishes the
7119 Hydra. Note that the final binding, besides vanquishing the Hydra, will still
7120 serve its original purpose, calling the command assigned to it. This makes
7121 the Hydra very seamless; it's like a minor mode that disables itself
7122 automatically.")
7123 (license license:gpl3+)))
7124
7125 (define-public emacs-interleave
7126 (package
7127 (name "emacs-interleave")
7128 (version "1.4.0")
7129 (source
7130 (origin
7131 (method git-fetch)
7132 (uri
7133 (git-reference
7134 (url "https://github.com/rudolfochrist/interleave")
7135 (commit (string-append "interleave-" version))))
7136 (file-name (git-file-name name version))
7137 (sha256
7138 (base32 "0l5b681mrpk12lx5c16m7kc13p29z6zismwg1llsjg7cdmrmsrcb"))))
7139 (build-system emacs-build-system)
7140 (home-page "https://github.com/rudolfochrist/interleave")
7141 (synopsis "Emacs minor mode to interleave notes and text books")
7142 (description
7143 "Interleave is a minor mode that presents a document viewer side
7144 by side to an Org buffer with your notes relevant to the current page.")
7145 (license license:gpl3+)))
7146
7147 (define-public emacs-ivy
7148 (package
7149 (name "emacs-ivy")
7150 (version "0.13.1")
7151 (source
7152 (origin
7153 (method url-fetch)
7154 (uri (string-append "https://elpa.gnu.org/packages/ivy-" version ".tar"))
7155 (sha256
7156 (base32 "0n0ixhdykbdpis4krkqq6zncbby28p34742q96n0l91w0p19slcx"))))
7157 (build-system emacs-build-system)
7158 (propagated-inputs
7159 `(("emacs-hydra" ,emacs-hydra)))
7160 (home-page "https://github.com/abo-abo/swiper")
7161 (synopsis "Incremental vertical completion for Emacs")
7162 (description
7163 "This package provides @code{ivy-read} as an alternative to
7164 @code{completing-read} and similar functions. No attempt is made to determine
7165 the best candidate. Instead, the user can navigate candidates with
7166 @code{ivy-next-line} and @code{ivy-previous-line}. The matching is done by
7167 splitting the input text by spaces and re-building it into a regular
7168 expression.")
7169 (license license:gpl3+)))
7170
7171 (define-public emacs-counsel
7172 (package
7173 (name "emacs-counsel")
7174 (version "0.13.1")
7175 (source
7176 (origin
7177 (method url-fetch)
7178 (uri (string-append "https://elpa.gnu.org/packages/"
7179 "counsel-" version ".el"))
7180 (sha256
7181 (base32 "1y3hr3j5bh5mbyh1cqzxx04181qpvj4xyv1gym2gxcjd30nfllli"))))
7182 (build-system emacs-build-system)
7183 (propagated-inputs
7184 `(("emacs-swiper" ,emacs-swiper)))
7185 (home-page "https://github.com/abo-abo/swiper")
7186 (synopsis "Various completion functions using Ivy")
7187 (description
7188 "Just call one of the interactive functions in a file to complete the
7189 corresponding thing using Ivy.
7190
7191 The following completions are currently available:
7192 @itemize
7193 @item Symbol completion for Elisp, Common Lisp, Python, Clojure, C, C++.
7194 @item Describe functions for Elisp: function, variable, library, command,
7195 @item bindings, theme.
7196 @item Navigation functions: imenu, ace-line, semantic, outline.
7197 @item Git utilities: git-files, git-grep, git-log, git-stash, git-checkout.
7198 @item Grep utilities: grep, ag, pt, recoll, ack, rg.
7199 @item System utilities: process list, rhythmbox, linux-app.
7200 @item Many more.
7201 @end itemize")
7202 (license license:gpl3+)))
7203
7204 (define-public emacs-swiper
7205 (package
7206 (name "emacs-swiper")
7207 (version "0.13.1")
7208 (source
7209 (origin
7210 (method url-fetch)
7211 (uri (string-append "https://elpa.gnu.org/packages/"
7212 "swiper-" version ".el"))
7213 (sha256
7214 (base32 "06ild7kck0x5ry8bf0al24nh04q01q3jhj6jjl4xz8n2s6jnn70y"))))
7215 (build-system emacs-build-system)
7216 (propagated-inputs
7217 `(("emacs-ivy" ,emacs-ivy)))
7218 (home-page "https://github.com/abo-abo/swiper")
7219 (synopsis "Isearch with an overview")
7220 (description
7221 "This package gives an overview of the current regex search candidates.
7222 The search regex can be split into groups with a space. Each group is
7223 highlighted with a different face.
7224
7225 It can double as a quick `regex-builder', although only single lines will be
7226 matched.")
7227 (license license:gpl3+)))
7228
7229 (define-public emacs-ivy-xref
7230 (let ((commit "1a35fc0f070388701b05b0a455cbe262e924d547")
7231 (revision "1"))
7232 (package
7233 (name "emacs-ivy-xref")
7234 (version (git-version "0.1" revision commit))
7235 (source
7236 (origin
7237 (method git-fetch)
7238 (uri (git-reference
7239 (url "https://github.com/alexmurray/ivy-xref")
7240 (commit commit)))
7241 (file-name (git-file-name name version))
7242 (sha256
7243 (base32
7244 "0d71nm9d9ajp5i6dnl8h1hw9jqp8gd1ajgninb1h13i80rplzl9k"))))
7245 (build-system emacs-build-system)
7246 (propagated-inputs
7247 `(("emacs-ivy" ,emacs-ivy)))
7248 (home-page "https://github.com/alexmurray/ivy-xref")
7249 (synopsis "Ivy interface for @code{xref}")
7250 (description "This package provides an Ivy interface for selecting from
7251 @code{xref} results.")
7252 (license license:gpl3))))
7253
7254 (define-public emacs-ivy-pass
7255 (let ((commit "5b523de1151f2109fdd6a8114d0af12eef83d3c5")
7256 (revision "1"))
7257 (package
7258 (name "emacs-ivy-pass")
7259 (version (git-version "0.1" revision commit))
7260 (source
7261 (origin
7262 (method git-fetch)
7263 (uri (git-reference
7264 (url "https://github.com/ecraven/ivy-pass")
7265 (commit commit)))
7266 (file-name (git-file-name name version))
7267 (sha256
7268 (base32
7269 "18crb4zh2pjf0cmv3b913m9vfng27girjwfqc3mk7vqd1r5a49yk"))))
7270 (build-system emacs-build-system)
7271 (propagated-inputs
7272 `(("emacs-ivy" ,emacs-ivy)
7273 ("emacs-password-store" ,emacs-password-store)
7274 ("password-store" ,password-store)))
7275 (home-page "https://github.com/ecraven/ivy-pass")
7276 (synopsis "Ivy interface for password store (pass)")
7277 (description "This package provides an Ivy interface for working with
7278 the password store @code{pass}.")
7279 (license license:gpl3))))
7280
7281 (define-public emacs-ivy-yasnippet
7282 (let ((commit "32580b4fd23ebf9ca7dde96704f7d53df6e253cd")
7283 (revision "2"))
7284 (package
7285 (name "emacs-ivy-yasnippet")
7286 (version (git-version "0.1" revision commit))
7287 (source
7288 (origin
7289 (method git-fetch)
7290 (uri (git-reference
7291 (url "https://github.com/mkcms/ivy-yasnippet")
7292 (commit commit)))
7293 (file-name (git-file-name name version))
7294 (sha256
7295 (base32
7296 "1wfg6mmd5gl1qgvayyzpxlkh9s7jgn20y8l1vh1zbj1czvv51xp8"))))
7297 (build-system emacs-build-system)
7298 (propagated-inputs
7299 `(("emacs-ivy" ,emacs-ivy)
7300 ("emacs-yasnippet" ,emacs-yasnippet)
7301 ("emacs-dash" ,emacs-dash)))
7302 (home-page "https://github.com/mkcms/ivy-yasnippet")
7303 (synopsis "Preview @code{yasnippets} with @code{ivy}")
7304 (description "This package allows you to select @code{yasnippet}
7305 snippets using @code{ivy} completion. When current selection changes in the
7306 minibuffer, the snippet contents are temporarily expanded in the buffer. To
7307 use it, call @code{M-x ivy-yasnippet} (but make sure you have enabled
7308 @code{yas-minor-mode} first).")
7309 (license license:gpl3+))))
7310
7311 (define-public emacs-ivy-rich
7312 (package
7313 (name "emacs-ivy-rich")
7314 (version "0.1.6")
7315 (source
7316 (origin
7317 (method git-fetch)
7318 (uri (git-reference
7319 (url "https://github.com/Yevgnen/ivy-rich")
7320 (commit version)))
7321 (file-name (git-file-name name version))
7322 (sha256
7323 (base32 "1ra18v6lgz3m6asm6d5b92zn1x22yiz4cwxd9b54dnvwi11121m7"))))
7324 (build-system emacs-build-system)
7325 (propagated-inputs
7326 `(("emacs-ivy" ,emacs-ivy)))
7327 (home-page "https://github.com/Yevgnen/ivy-rich")
7328 (synopsis "More friendly interface for @code{ivy}")
7329 (description
7330 "This package extends Ivy by showing more information in the minibuffer
7331 for each candidate. It adds columns showing buffer modes, file sizes,
7332 docstrings, etc. If @code{emacs-all-the-icons} is installed, it can show
7333 icons as well.")
7334 (license license:gpl3+)))
7335
7336 (define-public emacs-avy
7337 (package
7338 (name "emacs-avy")
7339 (version "0.5.0")
7340 (source
7341 (origin
7342 (method git-fetch)
7343 (uri (git-reference
7344 (url "https://github.com/abo-abo/avy")
7345 (commit version)))
7346 (file-name (git-file-name name version))
7347 (sha256
7348 (base32 "09qdni1s74i5pv8741szl5g4ynj8fxn0x65qmwa9rmfkbimnc0fs"))))
7349 (build-system emacs-build-system)
7350 (arguments
7351 `(#:tests? #t
7352 #:test-command '("make" "test")))
7353 (home-page "https://github.com/abo-abo/avy")
7354 (synopsis "Tree-based completion for Emacs")
7355 (description
7356 "This package provides a generic completion method based on building a
7357 balanced decision tree with each candidate being a leaf. To traverse the tree
7358 from the root to a desired leaf, typically a sequence of @code{read-key} can
7359 be used.
7360
7361 In order for @code{read-key} to make sense, the tree needs to be visualized
7362 appropriately, with a character at each branch node. So this completion
7363 method works only for things that you can see on your screen, all at once,
7364 such as the positions of characters, words, line beginnings, links, or
7365 windows.")
7366 (license license:gpl3+)))
7367
7368 (define-public emacs-ace-window
7369 (package
7370 (name "emacs-ace-window")
7371 (version "0.10.0")
7372 (source
7373 (origin
7374 (method git-fetch)
7375 (uri (git-reference
7376 (url "https://github.com/abo-abo/ace-window")
7377 (commit version)))
7378 (file-name (git-file-name name version))
7379 (sha256
7380 (base32
7381 "0f3r40d5yxp2pm2j0nn86s29nqj8py0jxjbj50v4ci3hsd92d8jl"))))
7382 (build-system emacs-build-system)
7383 (propagated-inputs
7384 `(("emacs-avy" ,emacs-avy)))
7385 (home-page "https://github.com/abo-abo/ace-window")
7386 (synopsis "Quickly switch windows in Emacs")
7387 (description
7388 "@code{ace-window} is meant to replace @code{other-window}.
7389 In fact, when there are only two windows present, @code{other-window} is
7390 called. If there are more, each window will have its first character
7391 highlighted. Pressing that character will switch to that window.")
7392 (license license:gpl3+)))
7393
7394 (define-public emacs-windsize
7395 ;; There is no proper release. The base version is extracted from the
7396 ;; "Version" keyword in the main file.
7397 (let ((revision "1")
7398 (commit "62c2846bbe95b0a73e996c75e4a644d05f57aaaa"))
7399 (package
7400 (name "emacs-windsize")
7401 (version (git-version "0.1" revision commit))
7402 (source
7403 (origin
7404 (method git-fetch)
7405 (uri (git-reference
7406 (url "https://github.com/grammati/windsize")
7407 (commit commit)))
7408 (file-name (git-file-name name version))
7409 (sha256
7410 (base32 "13kfrmv3vmkfanxv9nym5v43hx5p7xkgqmx65zcxh4gcbaham1mi"))))
7411 (build-system emacs-build-system)
7412 (home-page "https://github.com/grammati/windsize")
7413 (synopsis "Easy resizing of Emacs windows")
7414 (description
7415 "This package allows moving the borders of the active window
7416 with the arrow keys. It prefers to move the right or bottom border when
7417 possible, and falls back to moving the left or top border otherwise.")
7418 (license license:gpl3+))))
7419
7420 (define-public emacs-iedit
7421 ;; Last release version was in 2016.
7422 (let ((commit "e2c100cdd67b7d82835d281ac2cd1bf4f374bc8f")
7423 (revision "1"))
7424 (package
7425 (name "emacs-iedit")
7426 (version (git-version "0.9.9.9" revision commit))
7427 (source
7428 (origin
7429 (method git-fetch)
7430 (uri (git-reference
7431 (url "https://github.com/victorhge/iedit")
7432 (commit commit)))
7433 (file-name (git-file-name name version))
7434 (sha256
7435 (base32 "0wr3w2id95wx2rma8n1ifjrv9rx37ly26ijc5zi58id0yrip3hnc"))))
7436 (build-system emacs-build-system)
7437 (home-page "https://www.emacswiki.org/emacs/Iedit")
7438 (synopsis "Edit multiple regions in the same way simultaneously")
7439 (description
7440 "This package is an Emacs minor mode and allows you to edit one
7441 occurrence of some text in a buffer (possibly narrowed) or region, and
7442 simultaneously have other occurrences edited in the same way.
7443
7444 You can also use Iedit mode as a quick way to temporarily show only the buffer
7445 lines that match the current text being edited. This gives you the effect of
7446 a temporary @code{keep-lines} or @code{occur}.")
7447 (license license:gpl3+))))
7448
7449 (define-public emacs-zoutline
7450 (package
7451 (name "emacs-zoutline")
7452 (version "0.2.0")
7453 (source
7454 (origin
7455 (method git-fetch)
7456 (uri (git-reference
7457 (url "https://github.com/abo-abo/zoutline")
7458 (commit version)))
7459 (sha256
7460 (base32
7461 "1w0zh6vs7klgivq5r030a82mcfg1zwic4x3fimyiqyg5n8p67hyx"))
7462 (file-name (git-file-name name version))))
7463 (build-system emacs-build-system)
7464 (home-page "https://github.com/abo-abo/zoutline")
7465 (synopsis "Simple outline library")
7466 (description
7467 "This library provides helpers for outlines. Outlines allow users to
7468 navigate code in a tree-like fashion.")
7469 (license license:gpl3+)))
7470
7471 (define-public emacs-lispy
7472 ;; No release since May 2019 and tons of fixes have landed on master.
7473 ;; https://github.com/abo-abo/lispy/issues/513
7474 (let ((commit "5c8a59ae7dd3dd342e7c86a8c0acdbd13e2989f3"))
7475 (package
7476 (name "emacs-lispy")
7477 (version (git-version "0.27.0" "1" commit))
7478 (home-page "https://github.com/abo-abo/lispy")
7479 (source (origin
7480 (method git-fetch)
7481 (uri (git-reference
7482 (url "https://github.com/abo-abo/lispy")
7483 (commit commit)))
7484 (sha256
7485 (base32
7486 "0738v9bp4dlxbwsnykvc35yh4dl4pvw25jl8srb7r3744ydvgyii"))
7487 (file-name (git-file-name name version))))
7488 (build-system emacs-build-system)
7489 (propagated-inputs
7490 `(("emacs-ace-window" ,emacs-ace-window)
7491 ("emacs-hydra" ,emacs-hydra)
7492 ("emacs-iedit" ,emacs-iedit)
7493 ("emacs-swiper" ,emacs-swiper)
7494 ("emacs-zoutline" ,emacs-zoutline)))
7495 (native-inputs
7496 `(("which" ,which)
7497 ("emacs-clojure-mode" ,emacs-clojure-mode)
7498 ("emacs-undercover" ,emacs-undercover)))
7499 (arguments
7500 `(#:include (cons* "^lispy-clojure\\.clj$"
7501 "^lispy-python\\.py$"
7502 %default-include)
7503 #:phases
7504 ;; XXX: Some failing tests
7505 (modify-phases %standard-phases
7506 (add-before 'check 'make-test-writable
7507 (lambda _
7508 (make-file-writable "lispy-test.el")
7509 #t))
7510 (add-before 'check 'remove-failing-test
7511 (lambda _
7512 (emacs-batch-edit-file "lispy-test.el"
7513 `(progn
7514 (dolist (test '("lispy-eval-python-str" "lispy--clojure-dot-object"))
7515 (goto-char (point-min))
7516 (re-search-forward
7517 (concat "ert-deftest " test))
7518 (beginning-of-line)
7519 (kill-sexp))
7520 (basic-save-buffer)))
7521 #t)))
7522 #:tests? #t
7523 ;; Set BEMACS to prevent the test suite from loading straight.el.
7524 #:test-command '("make" "test" "BEMACS=emacs -batch")))
7525 (synopsis "Modal S-expression editing")
7526 (description
7527 "Due to the structure of Lisp syntax it's very rare for the programmer
7528 to want to insert characters right before \"(\" or right after \")\". Thus
7529 unprefixed printable characters can be used to call commands when the point is
7530 at one of these special locations. Lispy provides unprefixed keybindings for
7531 S-expression editing when point is at the beginning or end of an
7532 S-expression.")
7533 (license license:gpl3+))))
7534
7535 (define-public emacs-lispyville
7536 (let ((commit "1bf38088c981f5ab4ef2e2684952ab6af96378db")
7537 (revision "2"))
7538 (package
7539 (name "emacs-lispyville")
7540 (version (git-version "0.1" revision commit))
7541 (home-page "https://github.com/noctuid/lispyville")
7542 (source (origin
7543 (method git-fetch)
7544 (uri (git-reference (url home-page) (commit commit)))
7545 (sha256
7546 (base32
7547 "07z8qqvaxf963kwn7l2gk47989zb7r3d8ybqjs2cg6hzmzb77wbw"))
7548 (file-name (git-file-name name version))))
7549 (propagated-inputs
7550 `(("emacs-evil" ,emacs-evil)
7551 ("emacs-lispy" ,emacs-lispy)))
7552 (build-system emacs-build-system)
7553 (synopsis "Minor mode for integrating Evil with lispy")
7554 (description
7555 "LispyVille's main purpose is to provide a Lisp editing environment
7556 suited towards Evil users. It can serve as a minimal layer on top of lispy
7557 for better integration with Evil, but it does not require the use of lispy’s
7558 keybinding style. The provided commands allow for editing Lisp in normal
7559 state and will work even without lispy being enabled.")
7560 (license license:gpl3+))))
7561
7562 (define-public emacs-lpy
7563 (let ((commit "43b401fe15f0f0d01edb189378b9498121e9f766")
7564 (revision "3"))
7565 (package
7566 (name "emacs-lpy")
7567 (version (git-version "0.1.0" revision commit))
7568 (source
7569 (origin
7570 (method git-fetch)
7571 (uri (git-reference
7572 (url "https://github.com/abo-abo/lpy")
7573 (commit commit)))
7574 (sha256
7575 (base32
7576 "0xj1r7cn1rivaxhvawvmgx9fg3xilpfw4lkf2x2aqplr4s85ijas"))
7577 (file-name (git-file-name name version))))
7578 (propagated-inputs
7579 `(("emacs-zoutline" ,emacs-zoutline)
7580 ("emacs-lispy" ,emacs-lispy)))
7581 (build-system emacs-build-system)
7582 (home-page "https://github.com/abo-abo/lpy")
7583 (synopsis "Modal editing for Python")
7584 (description
7585 "This package provides a minor mode for Python that binds useful
7586 commands to unprefixed keys, such as @code{j} or @code{e}, under certain
7587 circumstances, and leaves the keys untouched outside of those situations,
7588 allowing unprefixed keys to insert their respective characters as expected.")
7589 (license license:gpl3+))))
7590
7591 (define-public emacs-clojure-mode
7592 (package
7593 (name "emacs-clojure-mode")
7594 (version "5.12.0")
7595 (source
7596 (origin
7597 (method git-fetch)
7598 (uri (git-reference
7599 (url "https://github.com/clojure-emacs/clojure-mode")
7600 (commit version)))
7601 (file-name (git-file-name name version))
7602 (sha256
7603 (base32 "14ipfy9ji39pnb9x7bzjp8lyqyxk168fx017m823j7a2g9i0sgp3"))))
7604 (build-system emacs-build-system)
7605 (native-inputs
7606 `(("emacs-buttercup" ,emacs-buttercup)
7607 ("emacs-dash" ,emacs-dash)
7608 ("emacs-paredit" ,emacs-paredit)
7609 ("emacs-s" ,emacs-s)))
7610 (arguments
7611 `(#:tests? #t
7612 #:test-command '("buttercup")
7613 #:phases
7614 (modify-phases %standard-phases
7615 (add-before 'check 'fix-tests
7616 ;; See: https://github.com/clojure-emacs/clojure-mode/issues/568
7617 (lambda _
7618 (substitute* "clojure-mode.el"
7619 (("\\(list \\(cdr project\\)\\)" line)
7620 (string-append "\"Return the list of directory roots of the PROJECT.\"\n"
7621 line)))
7622 #t)))))
7623 (home-page "https://github.com/clojure-emacs/clojure-mode")
7624 (synopsis "Major mode for Clojure code")
7625 (description
7626 "This Emacs package provides font-lock, indentation, navigation and basic
7627 refactoring for the @uref{http://clojure.org, Clojure programming language}.
7628 It is recommended to use @code{clojure-mode} with Paredit or Smartparens.")
7629 (license license:gpl3+)))
7630
7631 (define-public emacs-epl
7632 (package
7633 (name "emacs-epl")
7634 (version "0.9")
7635 (source
7636 (origin
7637 (method git-fetch)
7638 (uri (git-reference
7639 (url "https://github.com/cask/epl")
7640 (commit version)))
7641 (file-name (git-file-name name version))
7642 (sha256
7643 (base32 "0d3z5z90ln8ipk1yds1n1p8fj9yyh2kpspqjs7agl38indra3nb4"))))
7644 (build-system emacs-build-system)
7645 (home-page "https://github.com/cask/epl")
7646 (synopsis "Emacs Package Library")
7647 (description
7648 "A package management library for Emacs, based on @code{package.el}.
7649
7650 The purpose of this library is to wrap all the quirks and hassle of
7651 @code{package.el} into a sane API.")
7652 (license license:gpl3+)))
7653
7654 (define-public emacs-counsel-notmuch
7655 ;; Upstream provides no release. Extract version for main file.
7656 (let ((commit "a4a1562935e4180c42524c51609d1283e9be0688")
7657 (revision "0"))
7658 (package
7659 (name "emacs-counsel-notmuch")
7660 (version (git-version "1.0" revision commit))
7661 (source
7662 (origin
7663 (method git-fetch)
7664 (uri (git-reference
7665 (url "https://github.com/fuxialexander/counsel-notmuch.git")
7666 (commit commit)))
7667 (file-name (git-file-name name version))
7668 (sha256
7669 (base32 "01k1321d961kc2i660a5595bqk0d85f16snsxngsn5si6y83kqr7"))))
7670 (build-system emacs-build-system)
7671 (arguments
7672 `(#:phases
7673 (modify-phases %standard-phases
7674 (add-after 'unpack 'locate-notmuch
7675 (lambda* (#:key inputs #:allow-other-keys)
7676 (make-file-writable "counsel-notmuch.el")
7677 (emacs-substitute-variables "counsel-notmuch.el"
7678 ("counsel-notmuch-path"
7679 (string-append (assoc-ref inputs "notmuch")
7680 "/bin/notmuch")))
7681 #t)))))
7682 (inputs
7683 `(("emacs-counsel" ,emacs-counsel)
7684 ("notmuch" ,notmuch)
7685 ("emacs-s" ,emacs-s)))
7686 (home-page "https://github.com/fuxialexander/counsel-notmuch")
7687 (synopsis "Search emails in Notmuch asynchronously with Ivy")
7688 (description
7689 "This package can be used to search emails in Notmuch
7690 asynchronously, with Counsel and Ivy. Simply call
7691 @code{counsel-notmuch} and input your Notmuch query.")
7692 (license license:gpl3+))))
7693
7694 (define-public emacs-counsel-projectile
7695 (package
7696 (name "emacs-counsel-projectile")
7697 (version "0.3.1")
7698 (source (origin
7699 (method git-fetch)
7700 (uri (git-reference
7701 (url "https://github.com/ericdanan/counsel-projectile")
7702 (commit version)))
7703 (file-name (git-file-name name version))
7704 (sha256
7705 (base32
7706 "1k4n5lw6wwbgpwv0dg9dw0bjzi0hvbgkzrs1zmq36yhfz6y8gwnh"))))
7707 (build-system emacs-build-system)
7708 (propagated-inputs
7709 `(("emacs-counsel" ,emacs-counsel)
7710 ("emacs-projectile" ,emacs-projectile)))
7711 (home-page "https://github.com/ericdanan/counsel-projectile")
7712 (synopsis "Enhance Projectile with Ivy")
7713 (description
7714 "This package uses Ivy to provide additional actions for Projectile
7715 commands and replacements for existing functions.")
7716 (license license:gpl3+)))
7717
7718 (define-public emacs-qml-mode
7719 (package
7720 (name "emacs-qml-mode")
7721 (version "0.4")
7722 (source (origin
7723 (method git-fetch)
7724 (uri (git-reference
7725 (url "https://github.com/coldnew/qml-mode")
7726 (commit version)))
7727 (file-name (git-file-name name version))
7728 (sha256
7729 (base32
7730 "1sncsvzjfgmhp4m8w5jd4y51k24n2jfpgvrkd64wlhhzbj3wb947"))))
7731 (build-system emacs-build-system)
7732 (home-page "https://github.com/coldnew/qml-mode/")
7733 (synopsis "Qt Modeling Language (QML) mode for Emacs")
7734 (description "This package provides the @code{qml-mode} major Emacs mode
7735 for editing source files written in the Qt Modeling Language (QML) user
7736 interface markup language. It provides syntax highlighting and basic
7737 navigation commands. @code{qml-mode} is derived from code{js-mode}, the Emacs
7738 builtin JavaScript mode.")
7739 (license license:gpl2+)))
7740
7741 (define-public emacs-queue
7742 (package
7743 (name "emacs-queue")
7744 (version "0.2")
7745 (source (origin
7746 (method url-fetch)
7747 (uri (string-append "https://elpa.gnu.org/packages/queue-"
7748 version ".el"))
7749 (sha256
7750 (base32
7751 "0cx2848sqnnkkr4zisvqadzxngjyhmb36mh0q3if7q19yjjhmrkb"))))
7752 (build-system emacs-build-system)
7753 (home-page "http://www.dr-qubit.org/tags/computing-code-emacs.html")
7754 (synopsis "Queue data structure for Emacs")
7755 (description
7756 "This Emacs library provides queue data structure. These queues can be
7757 used both as a first-in last-out (FILO) and as a first-in first-out (FIFO)
7758 stack, i.e. elements can be added to the front or back of the queue, and can
7759 be removed from the front. This type of data structure is sometimes called an
7760 \"output-restricted deque\".")
7761 (license license:gpl3+)))
7762
7763 (define-public emacs-quickrun
7764 (package
7765 (name "emacs-quickrun")
7766 (version "2.3.1")
7767 (source
7768 (origin
7769 (method git-fetch)
7770 (uri (git-reference
7771 (url "https://github.com/emacsorphanage/quickrun")
7772 (commit version)))
7773 (sha256
7774 (base32 "0a1n2v09h0n7d9p2izflqqang4ny0b46dlqvmxvkkik4bb6f4wcz"))
7775 (file-name (git-file-name name version))))
7776 (build-system emacs-build-system)
7777 (home-page "https://github.com/emacsorphanage/quickrun")
7778 (synopsis "Execute editing buffer and show its output quickly")
7779 (description
7780 "This package evaluates the content of a buffer, or region, and displays
7781 the result. Quickrun executes not only script languages (Perl, Ruby, Python
7782 etc), but also compiling languages (C, C++, Go, Java etc) and markup
7783 languages.")
7784 (license license:gpl3+)))
7785
7786 (define-public emacs-pkg-info
7787 (package
7788 (name "emacs-pkg-info")
7789 (version "0.6")
7790 (source
7791 (origin
7792 (method git-fetch)
7793 (uri (git-reference
7794 (url "https://github.com/lunaryorn/pkg-info.el")
7795 (commit version)))
7796 (file-name (git-file-name name version))
7797 (sha256
7798 (base32 "0nk12dcppdyhav6m6yf7abpywyd7amxd4237zsfd32w4zxsx39k1"))))
7799 (build-system emacs-build-system)
7800 (propagated-inputs `(("emacs-epl" ,emacs-epl)))
7801 (home-page "https://github.com/lunaryorn/pkg-info.el")
7802 (synopsis "Information about Emacs packages")
7803 (description
7804 "This library extracts information from the installed Emacs packages.")
7805 (license license:gpl3+)))
7806
7807 (define-public emacs-spinner
7808 (package
7809 (name "emacs-spinner")
7810 (version "1.7.3")
7811 (source (origin
7812 (method url-fetch)
7813 (uri (string-append "https://elpa.gnu.org/packages/spinner-"
7814 version ".el"))
7815 (sha256
7816 (base32
7817 "19kp1mmndbmw11sgvv2ggfjl4pyf5zrsbh3871f0965pw9z8vahd"))))
7818 (build-system emacs-build-system)
7819 (home-page "https://github.com/Malabarba/spinner.el")
7820 (synopsis "Emacs mode-line spinner for operations in progress")
7821 (description
7822 "This Emacs package adds spinners and progress-bars to the mode-line for
7823 ongoing operations.")
7824 (license license:gpl3+)))
7825
7826 (define-public emacs-sparql-mode
7827 (package
7828 (name "emacs-sparql-mode")
7829 (version "4.0.2")
7830 (source
7831 (origin
7832 (method git-fetch)
7833 (uri (git-reference
7834 (url "https://github.com/ljos/sparql-mode")
7835 (commit (string-append "v" version))))
7836 (file-name (git-file-name name version))
7837 (sha256
7838 (base32 "0hqp8r24wvzrkl630wbm0lynrcrnawv2yn2a3xgwqwwhwgva35rn"))))
7839 (build-system emacs-build-system)
7840 (propagated-inputs
7841 `(("emacs-company" ,emacs-company)))
7842 (home-page "https://github.com/ljos/sparql-mode")
7843 (synopsis "SPARQL mode for Emacs")
7844 (description
7845 "This package is a major mode for Emacs that provides syntax highlighting
7846 for SPARQL. It can also execute queries against a SPARQL HTTP endpoint, such
7847 as Fuseki or DBPedia.")
7848 (license license:gpl3+)))
7849
7850 (define-public emacs-better-defaults
7851 (package
7852 (name "emacs-better-defaults")
7853 (version "0.1.3")
7854 (source
7855 (origin
7856 (method git-fetch)
7857 (uri (git-reference
7858 (url "https://github.com/technomancy/better-defaults")
7859 (commit version)))
7860 (file-name (git-file-name name version))
7861 (sha256
7862 (base32
7863 "1rxznx2l0cdpiz8mad8s6q17m1fngpgb1cki7ch6yh18r3qz8ysr"))))
7864 (build-system emacs-build-system)
7865 (home-page "https://github.com/technomancy/better-defaults")
7866 (synopsis "Better defaults for Emacs")
7867 (description
7868 "Better defaults attempts to address the most obvious deficiencies of the
7869 Emacs default configuration in uncontroversial ways that nearly everyone can
7870 agree upon.")
7871 (license license:gpl3+)))
7872
7873 (define-public emacs-undohist-el
7874 (let ((commit "d2239a5f736724ceb9e3b6bcaa86f4064805cda0")
7875 (revision "1"))
7876 (package
7877 (name "emacs-undohist-el")
7878 (version (git-version "0" revision commit))
7879 (source
7880 (origin
7881 (method git-fetch)
7882 (uri (git-reference
7883 (url "https://github.com/m2ym/undohist-el")
7884 (commit commit)))
7885 (file-name (git-file-name name version))
7886 (sha256
7887 (base32
7888 "1c0daw246ky7b1x5b8h55x79pl1pjqk1k348l487bdd8zdj4w9wx"))
7889 (patches
7890 (search-patches "emacs-undohist-ignored.patch"))))
7891 (build-system emacs-build-system)
7892 (home-page "https://github.com/m2ym/undohist-el")
7893 (synopsis "Save undo history between sessions")
7894 (description "This package allows persistent use of undo history for
7895 individual file buffers.")
7896 (license license:gpl3+))))
7897
7898 (define-public emacs-eprime
7899 (let ((commit "17a481af26496be91c07139a9bfc05cfe722506f"))
7900 (package
7901 (name "emacs-eprime")
7902 (version (string-append "20140513-" (string-take commit 7)))
7903 (source (origin
7904 (method url-fetch)
7905 (uri (string-append "https://raw.githubusercontent.com"
7906 "/AndrewHynes/eprime-mode/"
7907 commit "/eprime-mode.el"))
7908 (file-name (string-append "eprime-" version ".el"))
7909 (sha256
7910 (base32
7911 "0v68lggkyq7kbcr9zyi573m2g2x251xy3jadlaw8kx02l8krwq8d"))))
7912 (build-system emacs-build-system)
7913 (home-page "https://github.com/AndrewHynes/eprime-mode")
7914 (synopsis "E-prime checking mode for Emacs")
7915 (description "This package provides an E-prime checking mode for Emacs
7916 that highlights non-conforming text. The subset of the English language called
7917 E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
7918 (license license:gpl3+))))
7919
7920 (define-public emacs-julia-mode
7921 (package
7922 (name "emacs-julia-mode")
7923 (version "0.4")
7924 (source
7925 (origin
7926 (method git-fetch)
7927 (uri (git-reference
7928 (url "https://github.com/JuliaEditorSupport/julia-emacs")
7929 (commit version)))
7930 (file-name (git-file-name name version))
7931 (sha256
7932 (base32
7933 "1w131jb9mhvyjxa0p93iwfhzidgbcs6b8i6jg79yisqb9wchik99"))))
7934 (build-system emacs-build-system)
7935 (arguments
7936 `(#:tests? #t
7937 #:test-command '("emacs" "--batch"
7938 "-l" "julia-mode-tests.el"
7939 "-f" "ert-run-tests-batch-and-exit")))
7940 (home-page "https://github.com/JuliaEditorSupport/julia-emacs")
7941 (synopsis "Major mode for Julia")
7942 (description "This Emacs package provides a mode for the Julia
7943 programming language.")
7944 (license license:expat)))
7945
7946 (define-public emacs-smex
7947 (package
7948 (name "emacs-smex")
7949 (version "3.0")
7950 (source (origin
7951 (method url-fetch)
7952 (uri (string-append "https://raw.githubusercontent.com"
7953 "/nonsequitur/smex/" version "/smex.el"))
7954 (file-name (string-append "smex-" version ".el"))
7955 (sha256
7956 (base32
7957 "0ar310zx9k5y4i1vl2rawvi712xj9gx77160860jbs691p77cxqp"))))
7958 (build-system emacs-build-system)
7959 (home-page "https://github.com/nonsequitur/smex/")
7960 (synopsis "M-x interface with Ido-style fuzzy matching")
7961 (description
7962 "Smex is a M-x enhancement for Emacs. Built on top of Ido, it provides a
7963 convenient interface to your recently and most frequently used commands. And
7964 to all the other commands, too.")
7965 (license license:gpl3+)))
7966
7967 (define-public emacs-js2-mode
7968 (let ((commit "40aab27581279d0fdbfeb9afeb85f39d401a927f")
7969 (revision "1"))
7970 (package
7971 (name "emacs-js2-mode")
7972 (version (git-version "20190219" revision commit))
7973 (source
7974 (origin
7975 (method git-fetch)
7976 (uri (git-reference
7977 (url "https://github.com/mooz/js2-mode")
7978 (commit commit)))
7979 (file-name (git-file-name name version))
7980 (sha256
7981 (base32 "0ysd0ji3vvk2zpjcg1wl7b2hva8471vq0ypib4h6spnpjdr43vzk"))))
7982 (build-system emacs-build-system)
7983 (arguments
7984 `(#:tests? #t
7985 #:test-command '("make" "test")))
7986 (home-page "https://github.com/mooz/js2-mode/")
7987 (synopsis "Improved JavaScript editing mode for Emacs")
7988 (description
7989 "Js2-mode provides a JavaScript major mode for Emacs that is more
7990 advanced than the built-in javascript-mode. Features include accurate syntax
7991 highlighting using a recursive-descent parser, on-the-fly reporting of syntax
7992 errors and strict-mode warnings, smart line-wrapping within comments and
7993 strings, and code folding.")
7994 (license license:gpl3+))))
7995
7996 (define-public emacs-nodejs-repl
7997 (package
7998 (name "emacs-nodejs-repl")
7999 (version "0.2.2")
8000 (source (origin
8001 (method git-fetch)
8002 (uri (git-reference
8003 (url "https://github.com/abicky/nodejs-repl.el")
8004 (commit version)))
8005 (file-name (git-file-name name version))
8006 (sha256
8007 (base32
8008 "1kkj888k9x5n0i7xkia177gzsa84my3g8n0n7v65281cc4f1yhk5"))))
8009 (build-system emacs-build-system)
8010 (inputs
8011 `(("node" ,node)))
8012 (native-inputs
8013 `(("emacs-ert-expectations" ,emacs-ert-expectations)))
8014 (arguments
8015 `(#:phases
8016 (modify-phases %standard-phases
8017 (add-after 'unpack 'set-shell
8018 ;; Setting the SHELL environment variable is required for the tests
8019 ;; to find sh.
8020 (lambda _
8021 (setenv "SHELL" (which "sh"))
8022 #t))
8023 (add-after 'unpack 'configure
8024 (lambda* (#:key inputs outputs #:allow-other-keys)
8025 (let ((node (assoc-ref inputs "node")))
8026 ;; Specify the absolute file names of the various
8027 ;; programs so that everything works out-of-the-box.
8028 (make-file-writable "nodejs-repl.el")
8029 (emacs-substitute-variables
8030 "nodejs-repl.el"
8031 ("nodejs-repl-command"
8032 (string-append node "/bin/node")))))))
8033 #:tests? #t
8034 #:test-command '("emacs" "-Q" "--batch"
8035 "-L" "."
8036 "-l" "test/test.el"
8037 "-f" "ert-run-tests-batch-and-exit")))
8038 (home-page "https://github.com/abicky/nodejs-repl.el")
8039 (synopsis "Node.js REPL inside Emacs")
8040 (description
8041 "This program is derived from comint-mode and provides the following
8042 features:
8043
8044 @itemize
8045 @item TAB completion same as Node.js REPL
8046 @item file name completion in string
8047 @item incremental history search
8048 @end itemize")
8049 (license license:gpl3+)))
8050
8051 (define-public emacs-typescript-mode
8052 (package
8053 (name "emacs-typescript-mode")
8054 (version "0.3")
8055 (source (origin
8056 (method git-fetch)
8057 (uri (git-reference
8058 (url "https://github.com/ananthakumaran/typescript.el")
8059 (commit (string-append "v" version))))
8060 (file-name (git-file-name name version))
8061 (sha256
8062 (base32
8063 "002f1xfhq43fjaqliwrgxspryfahpa82va5dw3p8kwil2xwvc6mh"))))
8064 (build-system emacs-build-system)
8065 (home-page "https://github.com/ananthakumaran/typescript.el")
8066 (synopsis "Emacs major mode for editing Typescript code")
8067 (description
8068 "This is based on Karl Landstrom's barebones @code{typescript-mode}.
8069 This is much more robust and works with @code{cc-mode}'s comment
8070 filling (mostly). The modifications to the original @code{javascript.el} mode
8071 mainly consisted in replacing \"javascript\" with \"typescript\"
8072
8073 The main features of this Typescript mode are syntactic highlighting (enabled
8074 with @code{font-lock-mode} or @code{global-font-lock-mode}), automatic
8075 indentation and filling of comments and C preprocessor fontification.")
8076 (license license:gpl3+)))
8077
8078 (define-public emacs-tide
8079 (package
8080 (name "emacs-tide")
8081 (version "3.2.3")
8082 (source (origin
8083 (method git-fetch)
8084 (uri (git-reference
8085 (url "https://github.com/ananthakumaran/tide")
8086 (commit (string-append "v" version))))
8087 (file-name (git-file-name name version))
8088 (sha256
8089 (base32
8090 "19kjq4kr2j853p5qp1s79zxmrfprli82lsnphbrlp9vbnib28xyd"))))
8091 (build-system emacs-build-system)
8092 (propagated-inputs
8093 `(("emacs-dash" ,emacs-dash)
8094 ("emacs-s" ,emacs-s)
8095 ("emacs-flycheck" ,emacs-flycheck)
8096 ("emacs-typescript-mode" ,emacs-typescript-mode)))
8097 (home-page "https://github.com/ananthakumaran/tide")
8098 (synopsis "Typescript IDE for Emacs")
8099 (description
8100 "Tide is an Interactive Development Environment (IDE) for Emacs which
8101 provides the following features:
8102
8103 @itemize
8104 @item ElDoc
8105 @item Auto complete
8106 @item Flycheck
8107 @item Jump to definition, Jump to type definition
8108 @item Find occurrences
8109 @item Rename symbol
8110 @item Imenu
8111 @item Compile On Save
8112 @item Highlight Identifiers
8113 @item Code Fixes
8114 @item Code Refactor
8115 @item Organize Imports
8116 @end itemize")
8117 (license license:gpl3+)))
8118
8119 (define-public emacs-markdown-mode
8120 (package
8121 (name "emacs-markdown-mode")
8122 (version "2.4")
8123 (source
8124 (origin
8125 (method git-fetch)
8126 (uri (git-reference
8127 (url "https://github.com/jrblevin/markdown-mode")
8128 (commit (string-append "v" version))))
8129 (file-name (git-file-name name version))
8130 (sha256
8131 (base32 "0g0ja4h651yfabm3k6gbw4y8w7wibc9283fyfzb33kjj38ivl5d7"))))
8132 (build-system emacs-build-system)
8133 (home-page "https://jblevins.org/projects/markdown-mode/")
8134 (synopsis "Emacs Major mode for Markdown files")
8135 (description
8136 "Markdown-mode is a major mode for editing Markdown-formatted text files
8137 in Emacs.")
8138 (license license:gpl3+)))
8139
8140 (define-public emacs-evil-markdown
8141 (let ((commit "685d7fbb81bc02fa32779d2a127b99a0c8c7436b")
8142 (revision "2"))
8143 (package
8144 (name "emacs-evil-markdown")
8145 (version (git-version "0.0.2" revision commit))
8146 (source
8147 (origin
8148 (method git-fetch)
8149 (uri (git-reference
8150 (url "https://github.com/Somelauw/evil-markdown")
8151 (commit commit)))
8152 (file-name (git-file-name name version))
8153 (sha256
8154 (base32 "1z1sjn6dcqv8mmkh6nfcwhnql2z6xr9yx3hs77bfxj79pf3c466p"))))
8155 (build-system emacs-build-system)
8156 (propagated-inputs
8157 `(("emacs-evil" ,emacs-evil)
8158 ("emacs-markdown-mode" ,emacs-markdown-mode)))
8159 (home-page "https://github.com/Somelauw/evil-markdown/")
8160 (synopsis "Evil keybindings for @code{markdown-mode}")
8161 (description
8162 "This package provides custom text objects and bindings for
8163 @code{markdown-mode}.")
8164 (license license:gpl3+))))
8165
8166 (define-public emacs-edit-indirect
8167 (package
8168 (name "emacs-edit-indirect")
8169 (version "0.1.6")
8170 (source
8171 (origin
8172 (method git-fetch)
8173 (uri (git-reference
8174 (url "https://github.com/Fanael/edit-indirect")
8175 (commit version)))
8176 (file-name (git-file-name name version))
8177 (sha256
8178 (base32 "189nvmlkki1jfszm9i0crbb1p4nzgmbly0wpvpg0i8vmw7vrpl40"))))
8179 (build-system emacs-build-system)
8180 (home-page "https://github.com/Fanael/edit-indirect")
8181 (synopsis "Edit regions in separate buffers")
8182 (description "This package allows you to edit regions in separate buffers,
8183 like @code{org-edit-src-code} but for arbitrary regions.")
8184 (license license:bsd-2)))
8185
8186 (define-public emacs-projectile
8187 (package
8188 (name "emacs-projectile")
8189 (version "2.2.0")
8190 (source (origin
8191 (method url-fetch)
8192 (uri (string-append "https://raw.githubusercontent.com/bbatsov"
8193 "/projectile/v" version "/projectile.el"))
8194 (file-name (string-append "projectile-" version ".el"))
8195 (sha256
8196 (base32
8197 "1d983siysg98bjbb2r99qbrpvpf6dn85si8gyak4z05m67s8sn6v"))))
8198 (build-system emacs-build-system)
8199 (propagated-inputs
8200 `(("emacs-dash" ,emacs-dash)
8201 ("emacs-pkg-info" ,emacs-pkg-info)))
8202 (home-page "https://github.com/bbatsov/projectile")
8203 (synopsis "Manage and navigate projects in Emacs easily")
8204 (description
8205 "This library provides easy project management and navigation. The
8206 concept of a project is pretty basic - just a folder containing special file.
8207 Currently git, mercurial and bazaar repos are considered projects by default.
8208 If you want to mark a folder manually as a project just create an empty
8209 .projectile file in it.")
8210 (license license:gpl3+)))
8211
8212 (define-public emacs-skeletor
8213 (let ((commit "47c5b761aee8452716c97a69949ac2f675affe13")
8214 (revision "1"))
8215 (package
8216 (name "emacs-skeletor")
8217 (version (git-version "1.6.1" revision commit))
8218 (source (origin
8219 (method git-fetch)
8220 (uri (git-reference
8221 (url "https://github.com/chrisbarrett/skeletor.el")
8222 (commit commit)))
8223 (file-name (git-file-name name version))
8224 (sha256
8225 (base32
8226 "12bdgykfh4mwsqdazxjdvha62h3q3v33159ypy91f6x59y01fi0n"))))
8227 (build-system emacs-build-system)
8228 (propagated-inputs
8229 `(("emacs-s" ,emacs-s)
8230 ("emacs-f" ,emacs-f)
8231 ("emacs-dash" ,emacs-dash)
8232 ("emacs-let-alist" ,emacs-let-alist)))
8233 (native-inputs
8234 `(("emacs-ert-runner" ,emacs-ert-runner)))
8235 (arguments
8236 `(#:include (cons "^project-skeletons\\/" %default-include)
8237 ;; XXX: one failing test involving initializing a git repo
8238 #:phases
8239 (modify-phases %standard-phases
8240 (add-before 'check 'make-test-writable
8241 (lambda _
8242 (make-file-writable "test/skeletor-test.el")
8243 #t))
8244 (add-before 'check 'remove-git-test
8245 (lambda _
8246 (emacs-batch-edit-file "test/skeletor-test.el"
8247 `(progn
8248 (progn
8249 (goto-char (point-min))
8250 (re-search-forward
8251 "ert-deftest initialises-git-repo")
8252 (beginning-of-line)
8253 (kill-sexp))
8254 (basic-save-buffer)))
8255 #t)))
8256 #:tests? #t
8257 #:test-command '("ert-runner")))
8258 (home-page "https://github.com/chrisbarrett/skeletor.el")
8259 (synopsis "Project skeletons for Emacs")
8260 (description "This package provides project templates and automates the
8261 mundane parts of setting up a new project, such as version control, licenses,
8262 and tooling.")
8263 (license license:gpl3+))))
8264
8265 (define-public emacs-elfeed
8266 (package
8267 (name "emacs-elfeed")
8268 (version "3.3.0")
8269 (source
8270 (origin
8271 (method git-fetch)
8272 (uri (git-reference
8273 (url "https://github.com/skeeto/elfeed")
8274 (commit version)))
8275 (file-name (git-file-name name version))
8276 (sha256
8277 (base32 "0j8a94val4ml7g1vcjgzk1w89h55sxfdrwnncmz6qbh1y2xsz8c5"))))
8278 (build-system emacs-build-system)
8279 (arguments
8280 `(#:tests? #t
8281 #:test-command '("make" "test")))
8282 (home-page "https://github.com/skeeto/elfeed")
8283 (synopsis "Atom/RSS feed reader for Emacs")
8284 (description
8285 "Elfeed is an extensible web feed reader for Emacs, supporting both Atom
8286 and RSS, with a user interface inspired by notmuch.")
8287 (license license:gpl3+)))
8288
8289 (define-public emacs-elfeed-org
8290 (let ((commit "77b6bbf222487809813de260447d31c4c59902c9"))
8291 (package
8292 (name "emacs-elfeed-org")
8293 (version (git-version "0.1" "1" commit))
8294 (source
8295 (origin
8296 (method git-fetch)
8297 (uri (git-reference
8298 (url "https://github.com/remyhonig/elfeed-org")
8299 (commit commit)))
8300 (file-name (git-file-name name version))
8301 (sha256
8302 (base32 "0a2ibka82xq1dhy2z7rd2y9zhcj8rna8357881yz49wf55ccgm53"))))
8303 (build-system emacs-build-system)
8304 (propagated-inputs
8305 `(("emacs-elfeed" ,emacs-elfeed)
8306 ("emacs-org" ,emacs-org)
8307 ("emacs-dash" ,emacs-dash)
8308 ("emacs-s" ,emacs-s)))
8309 (native-inputs
8310 `(("ert-runner" ,emacs-ert-runner)
8311 ("emacs-xtest" ,emacs-xtest)))
8312 (arguments
8313 `(#:tests? #t
8314 #:test-command '("ert-runner" "-L" "org-mode/lisp")
8315 #:phases
8316 (modify-phases %standard-phases
8317 (add-before 'check 'chmod
8318 (lambda _
8319 (chmod "test/fixture-mark-feed-ignore.org" #o644)
8320 #t)))))
8321 (home-page "https://github.com/remyhonig/elfeed-org")
8322 (synopsis "Configure Elfeed with an Org-mode file")
8323 (description
8324 "@code{elfeed-org} lets you manage your Elfeed subscriptions
8325 in Org-mode. Maintaining tags for all RSS feeds is cumbersome using
8326 the regular flat list, where there is no hierarchy and tag names are
8327 duplicated a lot. Org-mode makes the book keeping of tags and feeds
8328 much easier.")
8329 (license license:gpl3+))))
8330
8331 (define-public emacs-el-x
8332 (package
8333 (name "emacs-el-x")
8334 (version "0.3.1")
8335 (source (origin
8336 (method git-fetch)
8337 (uri (git-reference
8338 (url "https://github.com/sigma/el-x")
8339 (commit (string-append "v" version))))
8340 (file-name (git-file-name name version))
8341 (sha256
8342 (base32
8343 "1i6j44ssxm1xdg0mf91nh1lnprwsaxsx8vsrf720nan7mfr283h5"))))
8344 (build-system emacs-build-system)
8345 (arguments
8346 `(#:phases
8347 (modify-phases %standard-phases
8348 ;; Move the source files to the top level, which is included in
8349 ;; the EMACSLOADPATH.
8350 (add-after 'unpack 'move-source-files
8351 (lambda _
8352 (let ((el-files (find-files "./lisp" ".*\\.el$")))
8353 (for-each (lambda (f)
8354 (rename-file f (basename f)))
8355 el-files))
8356 #t)))))
8357 (home-page "https://github.com/sigma/el-x")
8358 (synopsis "Emacs Lisp extensions")
8359 (description "command@{emacs-el-x} defines the @code{dflet} macro to
8360 provide the historic behavior of @code{flet}, as well as
8361 @code{declare-function} stub for older Emacs.")
8362 (license license:gpl2+)))
8363
8364 (define-public emacs-mocker
8365 (package
8366 (name "emacs-mocker")
8367 (version "0.3.1")
8368 (source (origin
8369 (method git-fetch)
8370 (uri (git-reference
8371 (url "https://github.com/sigma/mocker.el")
8372 (commit (string-append "v" version))))
8373 (file-name (git-file-name name version))
8374 (sha256
8375 (base32
8376 "1lav7am41v63xgavq8pr88y828jmd1cxd4prjq7jlbxm6nvrwxh2"))))
8377 (build-system emacs-build-system)
8378 (arguments
8379 `(#:tests? #t
8380 #:test-command '("ert-runner")))
8381 (native-inputs
8382 `(("ert-runner" ,emacs-ert-runner)))
8383 (propagated-inputs
8384 `(("emacs-el-x" ,emacs-el-x)))
8385 (home-page "https://github.com/sigma/mocker.el")
8386 (synopsis "Mocking framework for Emacs Lisp")
8387 (description "Mocker.el is a framework for writing tests in Emacs Lisp.
8388 It uses regular Lisp rather than a domain specific language (DSL), which
8389 maximizes flexibility (at the expense of conciseness).")
8390 (license license:gpl2+)))
8391
8392 (define-public emacs-find-file-in-project
8393 (package
8394 (name "emacs-find-file-in-project")
8395 (version "5.7.10")
8396 (source (origin
8397 (method git-fetch)
8398 (uri (git-reference
8399 (url "https://github.com/technomancy/find-file-in-project")
8400 (commit version)))
8401 (file-name (git-file-name name version))
8402 (sha256
8403 (base32
8404 "156sfd5xs831sdlkf7p5m20hzznv1zlf9nm3pfm8n8ixp13fnzj0"))))
8405 (build-system emacs-build-system)
8406 (arguments
8407 `(#:tests? #t
8408 #:test-command '("ert-runner" "tests")))
8409 (native-inputs
8410 `(("ert-runner" ,emacs-ert-runner)))
8411 (home-page "https://github.com/technomancy/find-file-in-project")
8412 (synopsis "File/directory finder for Emacs")
8413 (description "@code{find-file-in-project} finds files or
8414 directories quickly in the current project. The project root is detected
8415 automatically when Git, Subversion or Mercurial are used. It also provides
8416 functions to assist in reviewing changes on files.")
8417 (license license:gpl3+)))
8418
8419 (define-public emacs-pyvenv
8420 (package
8421 (name "emacs-pyvenv")
8422 (version "1.21")
8423 (source (origin
8424 (method git-fetch)
8425 (uri (git-reference
8426 (url "https://github.com/jorgenschaefer/pyvenv")
8427 (commit (string-append "v" version))))
8428 (file-name (git-file-name name version))
8429 (sha256
8430 (base32
8431 "055sgk8zf4wb5nqsf3qasf5gg861zlb1831733f1qcrd2ij5gzxx"))))
8432 (build-system emacs-build-system)
8433 (arguments
8434 `(#:phases
8435 (modify-phases %standard-phases
8436 ;; This phase incorrectly attempts to substitute "activate" and fails
8437 ;; doing so.
8438 (delete 'patch-el-files))
8439 #:tests? #t
8440 #:test-command '("ert-runner")))
8441 (native-inputs
8442 `(("ert-runner" ,emacs-ert-runner)
8443 ("emacs-mocker" ,emacs-mocker)))
8444 (home-page "https://github.com/jorgenschaefer/pyvenv")
8445 (synopsis "Python virtual environment interface for Emacs")
8446 (description "pyvenv.el is a minor mode to support using Python virtual
8447 environments (virtualenv) inside Emacs.")
8448 (license license:gpl3+)))
8449
8450 (define-public emacs-highlight-indent-guides
8451 (let ((version "0.8.5") ; from package metadata
8452 (revision "0")
8453 (commit "c2c9de4d01edfb89609c91d4d7f1d81312015a2c"))
8454 (package
8455 (name "emacs-highlight-indent-guides")
8456 (version (git-version version revision commit))
8457 (source
8458 (origin
8459 (method git-fetch)
8460 (uri (git-reference
8461 (url "https://github.com/DarthFennec/highlight-indent-guides")
8462 (commit commit)))
8463 (file-name (git-file-name name version))
8464 (sha256
8465 (base32 "10chvqnmdmkx6i9sigqframr85ziyafiz44glwhvhjajfkv42ad2"))))
8466 (build-system emacs-build-system)
8467 (home-page
8468 "https://github.com/DarthFennec/highlight-indent-guides")
8469 (synopsis "Minor mode to highlight indentation")
8470 (description
8471 "This package provides a minor mode to highlight indentation levels via
8472 font-lock. Indent widths are dynamically discovered, which means this
8473 correctly highlights in any mode, regardless of indent width, even in
8474 languages with non-uniform indentation such as Haskell. This mode works
8475 properly around hard tabs and mixed indentation and behaves well in large
8476 buffers.")
8477 (license license:expat))))
8478
8479 (define-public emacs-highlight-indentation
8480 ;; Last release version is from 2015.
8481 (let ((commit "d03803f2c06749c430443a3d24e039cbafc9c58f")
8482 (revision "1"))
8483 (package
8484 (name "emacs-highlight-indentation")
8485 (version (git-version "0.7.0" revision commit))
8486 (source
8487 (origin
8488 (method git-fetch)
8489 (uri (git-reference
8490 (url "https://github.com/antonj/Highlight-Indentation-for-Emacs")
8491 (commit commit)))
8492 (file-name (git-file-name name version))
8493 (sha256
8494 (base32
8495 "1jq0gf4kcx9hvrw40rnw5c2qynjpjw1vsjbi2i4lqjbsnfnxn4wz"))))
8496 (build-system emacs-build-system)
8497 (home-page "https://github.com/antonj/Highlight-Indentation-for-Emacs/")
8498 (synopsis "Highlighting indentation for Emacs")
8499 (description "This package provides two minor modes to highlight
8500 indentation guides in Emacs:
8501
8502 @enumerate
8503 @item @code{highlight-indentation-mode}, which displays guidelines
8504 indentation (space indentation only).
8505 @item @code{highlight-indentation-current-column-mode}, which displays
8506 guidelines for the current-point indentation (space indentation only).
8507 @end enumerate")
8508 (license license:gpl2+))))
8509
8510 (define-public emacs-elpy
8511 (package
8512 (name "emacs-elpy")
8513 (version "1.34.0")
8514 (source (origin
8515 (method git-fetch)
8516 (uri (git-reference
8517 (url "https://github.com/jorgenschaefer/elpy")
8518 (commit version)))
8519 (file-name (git-file-name name version))
8520 (sha256
8521 (base32
8522 "1x1z298axbh4xalssnq9nkf2z1sdgmx839vb01xz18kr9lfavx1x"))))
8523 (build-system emacs-build-system)
8524 (arguments
8525 `(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include)
8526 #:phases
8527 (modify-phases %standard-phases
8528 ;; The following tests fail when building with Emacs 27 (see:
8529 ;; https://github.com/jorgenschaefer/elpy/issues/1812).
8530 (add-after 'unpack 'disable-problematic-tests
8531 (lambda _
8532 (substitute* "test/elpy-company-backend-test.el"
8533 (("elpy-company-backend-should-add-shell-candidates.*" all)
8534 (string-append all " (skip-unless nil)\n")))
8535 (substitute* "test/elpy-folding-fold-comments-test.el"
8536 (("elpy-fold-at-point-should-fold-and-unfold-comments.*" all)
8537 (string-append all " (skip-unless nil)\n")))
8538 #t))
8539 ;; The default environment of the RPC uses Virtualenv to install
8540 ;; Python dependencies from PyPI. We don't want/need this in Guix.
8541 (add-before 'check 'do-not-use-virtualenv
8542 (lambda _
8543 (setenv "ELPY_TEST_DONT_USE_VIRTUALENV" "1")
8544 (substitute* "elpy-rpc.el"
8545 (("defcustom elpy-rpc-virtualenv-path 'default")
8546 "defcustom elpy-rpc-virtualenv-path 'system"))
8547 #t))
8548 (add-before 'check 'build-doc
8549 (lambda _
8550 (with-directory-excursion "docs"
8551 (invoke "make" "info" "man"))
8552 ;; Move .info file at the root so that it can installed by the
8553 ;; 'move-doc phase.
8554 (rename-file "docs/_build/texinfo/Elpy.info" "Elpy.info")
8555 #t))
8556 (add-after 'build-doc 'install-manpage
8557 (lambda* (#:key outputs #:allow-other-keys)
8558 (let* ((out (assoc-ref outputs "out"))
8559 (man1 (string-append out "/share/man/man1")))
8560 (mkdir-p man1)
8561 (copy-file "docs/_build/man/elpy.1"
8562 (string-append man1 "/elpy.1")))
8563 #t)))
8564 #:tests? #t
8565 #:test-command '("ert-runner")))
8566 (propagated-inputs
8567 `(("emacs-company" ,emacs-company)
8568 ("emacs-find-file-in-project" ,emacs-find-file-in-project)
8569 ("emacs-highlight-indentation" ,emacs-highlight-indentation)
8570 ("emacs-yasnippet" ,emacs-yasnippet)
8571 ("pyvenv" ,emacs-pyvenv)
8572 ("s" ,emacs-s)
8573 ;; The following are recommended Python dependencies that make Elpy
8574 ;; much more useful. Installing these avoids Elpy prompting to install them
8575 ;; from PyPI using pip.
8576 ("python-autopep8" ,python-autopep8)
8577 ("python-black" ,python-black)
8578 ("python-flake8" ,python-flake8)
8579 ("python-jedi" ,python-jedi)
8580 ("python-rope" ,python-rope)
8581 ("python-yapf" ,python-yapf)))
8582 (native-inputs
8583 `(("ert-runner" ,emacs-ert-runner)
8584 ("emacs-f" ,emacs-f)
8585 ("python" ,python-wrapper)
8586 ;; For documentation.
8587 ("python-sphinx" ,python-sphinx)
8588 ("texinfo" ,texinfo)))
8589 (home-page "https://github.com/jorgenschaefer/elpy")
8590 (synopsis "Python development environment for Emacs")
8591 (description "Elpy brings powerful Python editing to Emacs. It combines
8592 and configures a number of other packages written in Emacs Lisp as well as
8593 Python, together offering features such as navigation, documentation,
8594 completion, interactive development and more.")
8595 (license license:gpl3+)))
8596
8597 (define-public emacs-rainbow-delimiters
8598 (package
8599 (name "emacs-rainbow-delimiters")
8600 (version "2.1.4")
8601 (source (origin
8602 (method git-fetch)
8603 (uri (git-reference
8604 (url "https://github.com/Fanael/rainbow-delimiters")
8605 (commit version)))
8606 (file-name (git-file-name name version))
8607 (sha256
8608 (base32
8609 "1zr2669savnmkc68hiqsq9wccm6bs1j6jbmlac1xqh6nq7xgq36g"))))
8610 (build-system emacs-build-system)
8611 (home-page "https://github.com/Fanael/rainbow-delimiters")
8612 (arguments
8613 `(#:tests? #t
8614 #:test-command '("emacs" "-Q" "-batch"
8615 "-l" "rainbow-delimiters-test.el"
8616 "-f" "ert-run-tests-batch-and-exit")))
8617 (synopsis "Highlight brackets according to their depth")
8618 (description
8619 "Rainbow-delimiters is a \"rainbow parentheses\"-like mode for Emacs which
8620 highlights parentheses, brackets, and braces according to their depth. Each
8621 successive level is highlighted in a different color, making it easy to spot
8622 matching delimiters, orient yourself in the code, and tell which statements
8623 are at a given level.")
8624 (license license:gpl3+)))
8625
8626 (define-public emacs-rainbow-identifiers
8627 (package
8628 (name "emacs-rainbow-identifiers")
8629 (version "0.2.2")
8630 (source (origin
8631 (method url-fetch)
8632 (uri (string-append "https://raw.githubusercontent.com/Fanael"
8633 "/rainbow-identifiers/" version
8634 "/rainbow-identifiers.el"))
8635 (file-name (string-append "rainbow-identifiers-" version ".el"))
8636 (sha256
8637 (base32
8638 "0325abxj47k0g1i8nqrq70w2wr6060ckhhf92krv1s072b3jzm31"))))
8639 (build-system emacs-build-system)
8640 (home-page "https://github.com/Fanael/rainbow-identifiers")
8641 (synopsis "Highlight identifiers in source code")
8642 (description
8643 "Rainbow identifiers mode is an Emacs minor mode providing highlighting of
8644 identifiers based on their names. Each identifier gets a color based on a hash
8645 of its name.")
8646 (license license:bsd-2)))
8647
8648 (define-public emacs-rainbow-mode
8649 (package
8650 (name "emacs-rainbow-mode")
8651 (version "1.0.5")
8652 (source
8653 (origin
8654 (method url-fetch)
8655 (uri (string-append "https://elpa.gnu.org/packages/"
8656 "rainbow-mode-" version ".el"))
8657 (sha256
8658 (base32 "159fps843k5pap9k04a7ll1k3gw6d9c6w08lq4bbc3lqg78aa2l9"))))
8659 (build-system emacs-build-system)
8660 (home-page "https://elpa.gnu.org/packages/rainbow-mode.html")
8661 (synopsis "Colorize color names in buffers")
8662 (description
8663 "This minor mode sets background color to strings that match color
8664 names, e.g., @samp{#0000ff} is displayed in white with a blue background.")
8665 (license license:gpl3+)))
8666
8667 (define-public emacs-ryo-modal
8668 ;; Package has no release. Version is extracted from "Version:" keyword in
8669 ;; main file.
8670 (let ((commit "3a54312eea7023a86ca3f8eb3c03c872554bff2f")
8671 (revision "0"))
8672 (package
8673 (name "emacs-ryo-modal")
8674 (version (git-version "0.4" revision commit))
8675 (source
8676 (origin
8677 (method git-fetch)
8678 (uri (git-reference
8679 (url "https://github.com/Kungsgeten/ryo-modal")
8680 (commit commit)))
8681 (file-name (git-file-name name version))
8682 (sha256
8683 (base32 "1cyvp3bi6yhckbdnq98xvghmhdzghya5y9wd7hxjawibs75rza95"))))
8684 (build-system emacs-build-system)
8685 (home-page "https://github.com/Kungsgeten/ryo-modal")
8686 (synopsis "Emacs minor mode for defining modal editing environments")
8687 (description "RYO modal provides a convenient way of defining modal
8688 keybindings in Emacs, and does not come with any predefined bindings.")
8689 (license license:expat))))
8690
8691 (define-public emacs-visual-fill-column
8692 (package
8693 (name "emacs-visual-fill-column")
8694 (version "1.11")
8695 (source (origin
8696 (method url-fetch)
8697 (uri (string-append "https://codeload.github.com/joostkremers/"
8698 "visual-fill-column/tar.gz/" version))
8699 (file-name (string-append name "-" version ".tar.gz"))
8700 (sha256
8701 (base32
8702 "13jnviakp607zcms7f8ams56mr8wffnq1pghlc6fvqs39663pgwh"))))
8703 (build-system emacs-build-system)
8704 (home-page "https://github.com/joostkremers/visual-fill-column")
8705 (synopsis "Fill-column for visual-line-mode")
8706 (description
8707 "@code{visual-fill-column-mode} is a small Emacs minor mode that mimics
8708 the effect of @code{fill-column} in @code{visual-line-mode}. Instead of
8709 wrapping lines at the window edge, which is the standard behaviour of
8710 @code{visual-line-mode}, it wraps lines at @code{fill-column}. If
8711 @code{fill-column} is too large for the window, the text is wrapped at the
8712 window edge.")
8713 (license license:gpl3+)))
8714
8715 (define-public emacs-writeroom
8716 (package
8717 (name "emacs-writeroom")
8718 (version "3.10")
8719 (source
8720 (origin
8721 (method git-fetch)
8722 (uri (git-reference
8723 (url "https://github.com/joostkremers/writeroom-mode")
8724 (commit version)))
8725 (file-name (git-file-name name version))
8726 (sha256
8727 (base32
8728 "0la4q2dm123l4rdfh0ry03b99ihvh324y7iw12az909198bcx335"))))
8729 (build-system emacs-build-system)
8730 (propagated-inputs
8731 `(("emacs-visual-fill-column" ,emacs-visual-fill-column)))
8732 (home-page "https://github.com/joostkremers/writeroom-mode")
8733 (synopsis "Distraction-free writing for Emacs")
8734 (description
8735 "This package defines a minor mode for distraction-free writing. Some of
8736 the default effects include entering fullscreen, deleting other windows of the
8737 current frame, disabling the mode line, and adding margins to the buffer that
8738 restrict the text width to 80 characters.")
8739 (license license:bsd-3)))
8740
8741 (define-public emacs-ido-completing-read+
8742 (package
8743 (name "emacs-ido-completing-read+")
8744 (version "3.12")
8745 (source (origin
8746 (method url-fetch)
8747 (uri (string-append "https://raw.githubusercontent.com"
8748 "/DarwinAwardWinner/ido-ubiquitous/v"
8749 version "/ido-completing-read+.el"))
8750 (file-name (string-append "ido-completing-read+-" version ".el"))
8751 (sha256
8752 (base32
8753 "1cyalb0p7nfsm4n6n9q6rjmvn6adqc0fq8ybnlj3n41n289dkfjf"))))
8754 (build-system emacs-build-system)
8755 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
8756 (synopsis "Replacement for completing-read using ido")
8757 (description
8758 "The ido-completing-read+ function is a wrapper for ido-completing-read.
8759 Importantly, it detects edge cases that ordinary ido cannot handle and either
8760 adjusts them so ido can handle them, or else simply falls back to the standard
8761 Emacs completion function instead.")
8762 (license license:gpl3+)))
8763
8764 (define-public emacs-ido-ubiquitous
8765 (package
8766 (name "emacs-ido-ubiquitous")
8767 (version "3.12")
8768 (source (origin
8769 (method url-fetch)
8770 (uri (string-append "https://raw.githubusercontent.com"
8771 "/DarwinAwardWinner/ido-ubiquitous/v"
8772 version "/ido-ubiquitous.el"))
8773 (file-name (string-append "ido-ubiquitous-" version ".el"))
8774 (sha256
8775 (base32
8776 "197ypji0fb6jsdcq40rpnknwlh3imas6s6jbsvkfm0pz9988c3q2"))))
8777 (build-system emacs-build-system)
8778 (propagated-inputs
8779 `(("emacs-ido-completing-read+" ,emacs-ido-completing-read+)))
8780 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
8781 (synopsis "Use ido (nearly) everywhere")
8782 (description
8783 "Ido-ubiquitous enables ido-style completion for almost every function
8784 that uses the standard completion function completing-read.")
8785 (license license:gpl3+)))
8786
8787 (define-public emacs-yaml-mode
8788 (package
8789 (name "emacs-yaml-mode")
8790 (version "0.0.15")
8791 (source
8792 (origin
8793 (method git-fetch)
8794 (uri (git-reference
8795 (url "https://github.com/yoshiki/yaml-mode")
8796 (commit version)))
8797 (file-name (git-file-name name version))
8798 (sha256
8799 (base32 "0gsa153yp8lmwrvcc3nzpw5lj037y7q2nm23k5k404r5as4k355l"))))
8800 (build-system emacs-build-system)
8801 (home-page "https://github.com/yoshiki/yaml-mode")
8802 (synopsis "Major mode for editing YAML files")
8803 (description
8804 "Yaml mode is an Emacs major mode for editing files in the YAML data
8805 serialization format. As YAML and Python share the fact that indentation
8806 determines structure, this mode provides indentation and indentation command
8807 behavior very similar to that of Python mode.")
8808 (license license:gpl3+)))
8809
8810 (define-public emacs-gitlab-ci-mode
8811 (package
8812 (name "emacs-gitlab-ci-mode")
8813 (version "20190425.11.10")
8814 (source (origin
8815 (method git-fetch)
8816 (uri (git-reference
8817 (url "https://gitlab.com/joewreschnig/gitlab-ci-mode.git")
8818 (commit (string-append "v" version))))
8819 (file-name (git-file-name name version))
8820 (sha256
8821 (base32
8822 "1jkp9mnbiccqnha9zs646znqyqvy5jjb81kah7ghbkzdqqk2avm0"))))
8823 (build-system emacs-build-system)
8824 (propagated-inputs
8825 `(("emacs-yaml-mode" ,emacs-yaml-mode)))
8826 (home-page "https://gitlab.com/joewreschnig/gitlab-ci-mode/")
8827 (synopsis "Emacs mode for editing GitLab CI files")
8828 (description
8829 "@code{gitlab-ci-mode} is an Emacs major mode for editing GitLab CI
8830 files. It provides syntax highlighting and completion for keywords and
8831 special variables. An interface to GitLab’s CI file linter is also provided
8832 via @code{gitlab-ci-lint}.")
8833 (license license:gpl3+)))
8834
8835 (define-public emacs-gitlab-snip-helm
8836 (package
8837 (name "emacs-gitlab-snip-helm")
8838 (version "0.0.2")
8839 (source (origin
8840 (method git-fetch)
8841 (uri (git-reference
8842 (url "https://gitlab.com/sasanidas/gitlab-snip-helm.git")
8843 (commit version)))
8844 (file-name (git-file-name name version))
8845 (sha256
8846 (base32
8847 "1c5js19zyb1z61hapvbfcl5jhrjqij46cxldgqij6al0scw44dga"))))
8848 (build-system emacs-build-system)
8849 (propagated-inputs
8850 `(("emacs-dash" ,emacs-dash)
8851 ("emacs-helm" ,emacs-helm)))
8852 (home-page "https://gitlab.com/sasanidas/gitlab-snip-helm/")
8853 (synopsis "GitLab snippet API interaction for Emacs")
8854 (description "This package provides GitLab snippet API interaction for
8855 Emacs.")
8856 (license license:gpl3+)))
8857
8858 (define-public emacs-web-mode
8859 (package
8860 (name "emacs-web-mode")
8861 (version "17")
8862 (source
8863 (origin
8864 (method git-fetch)
8865 (uri (git-reference
8866 (url "https://github.com/fxbois/web-mode")
8867 (commit (string-append "v" version))))
8868 (file-name (git-file-name name version))
8869 (sha256
8870 (base32 "0jr5a1nzp8nbdng0k2fcaymiiv9ngrbknbrqaswgqn3akvx793jk"))))
8871 (build-system emacs-build-system)
8872 (synopsis "Major mode for editing web templates")
8873 (description "Web mode is an Emacs major mode for editing web templates
8874 aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by
8875 client/server side engines). Web mode is compatible with many template
8876 engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker,
8877 Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template,
8878 Dust.js, React/JSX, Angularjs, ejs, etc.")
8879 (home-page "http://web-mode.org/")
8880 (license license:gpl3+)))
8881
8882 (define-public emacs-wgrep
8883 (package
8884 (name "emacs-wgrep")
8885 (version "2.3.2")
8886 (source (origin
8887 (method git-fetch)
8888 (uri (git-reference
8889 (url "https://github.com/mhayashi1120/Emacs-wgrep")
8890 (commit version)))
8891 (file-name (git-file-name name version))
8892 (sha256
8893 (base32
8894 "00cwqzb94jlq4mwgv8z7r3mn0a6mhq95z6j189kacq9g4473zh8d"))))
8895 (build-system emacs-build-system)
8896 (home-page "https://github.com/mhayashi1120/Emacs-wgrep")
8897 (synopsis "Edit a grep buffer and apply those changes to the files")
8898 (description
8899 "Emacs wgrep allows you to edit a grep buffer and apply those changes
8900 to the file buffer. Several backends are supported beside the classic grep:
8901 ack, ag, helm and pt.")
8902 (license license:gpl3+)))
8903
8904 (define-public emacs-helm
8905 (package
8906 (name "emacs-helm")
8907 (version "3.7.0")
8908 (source
8909 (origin
8910 (method git-fetch)
8911 (uri (git-reference
8912 (url "https://github.com/emacs-helm/helm")
8913 (commit (string-append "v" version))))
8914 (file-name (git-file-name name version))
8915 (sha256
8916 (base32 "0lxq13bsbh7xawgsq08kjm7s28x9yl8mid3538flv5kcc1rv2b9y"))))
8917 (build-system emacs-build-system)
8918 (propagated-inputs
8919 `(("emacs-async" ,emacs-async)
8920 ("emacs-popup" ,emacs-popup)))
8921 (home-page "https://emacs-helm.github.io/helm/")
8922 (synopsis "Incremental completion and selection narrowing
8923 framework for Emacs")
8924 (description "Helm is incremental completion and selection narrowing
8925 framework for Emacs. It will help steer you in the right direction when
8926 you're looking for stuff in Emacs (like buffers, files, etc). Helm is a fork
8927 of @code{anything.el} originally written by Tamas Patrovic and can be
8928 considered to be its successor. Helm sets out to clean up the legacy code in
8929 @code{anything.el} and provide a cleaner, leaner and more modular tool, that's
8930 not tied in the trap of backward compatibility.")
8931 (license license:gpl3+)))
8932
8933 (define-public emacs-helm-org
8934 (let ((commit "8457e1e46227bf87726e05c42cec5a4b51c2ef7b")
8935 (revision "3"))
8936 (package
8937 (name "emacs-helm-org")
8938 (version (git-version "1.0" revision commit))
8939 (source
8940 (origin
8941 (method git-fetch)
8942 (uri (git-reference
8943 (url "https://github.com/emacs-helm/helm-org")
8944 (commit commit)))
8945 (file-name (git-file-name name version))
8946 (sha256
8947 (base32 "0kcjhwwi492n9m2w894hvdavfvhj45zygy7bwvx103wvpay5h6h6"))))
8948 (build-system emacs-build-system)
8949 (propagated-inputs
8950 `(("emacs-helm" ,emacs-helm)))
8951 (home-page "https://github.com/emacs-helm/helm-org")
8952 (synopsis "Helm interface to the Silver Searcher")
8953 (description
8954 "This package provides a frontend for grepping tools like ag and ack,
8955 as well as features for editing search results.")
8956 (license license:gpl3+))))
8957
8958 (define-public emacs-helm-swoop
8959 (package
8960 (name "emacs-helm-swoop")
8961 (version "3.0.0")
8962 (source
8963 (origin
8964 (method git-fetch)
8965 (uri (git-reference
8966 (url "https://github.com/emacsorphanage/helm-swoop")
8967 (commit version)))
8968 (file-name (git-file-name name version))
8969 (sha256
8970 (base32 "1qjay0fvryxa8n1ws6r1by512p2fylb2nj7ycm1497fcalb0d706"))))
8971 (build-system emacs-build-system)
8972 (propagated-inputs
8973 `(("emacs-helm" ,emacs-helm)))
8974 (home-page "https://github.com/emacsorphanage/helm-swoop")
8975 (synopsis "Filter and jump to lines in an Emacs buffer using Helm")
8976 (description
8977 "This package builds on the Helm interface to provide several commands
8978 for search-based navigation of buffers.")
8979 (license license:gpl2+)))
8980
8981 (define-public emacs-helm-ag
8982 (package
8983 (name "emacs-helm-ag")
8984 (version "0.62")
8985 (source
8986 (origin
8987 (method git-fetch)
8988 (uri (git-reference
8989 (url "https://github.com/syohex/emacs-helm-ag")
8990 (commit version)))
8991 (file-name (git-file-name name version))
8992 (sha256
8993 (base32 "0xgbpp8xqdiyvfs64x0q909g77ml28z3irw2lnasvpsg0dfdm2zy"))))
8994 (build-system emacs-build-system)
8995 (propagated-inputs
8996 `(("emacs-helm" ,emacs-helm)))
8997 (home-page "https://github.com/syohex/emacs-helm-ag")
8998 (synopsis "Helm interface to the Silver Searcher")
8999 (description
9000 "This package provides a frontend for grepping tools like ag and ack,
9001 as well as features for editing search results.")
9002 (license license:gpl3+)))
9003
9004 (define-public emacs-helm-projectile
9005 (package
9006 (name "emacs-helm-projectile")
9007 (version "1.0.0")
9008 (source
9009 (origin
9010 (method git-fetch)
9011 (uri (git-reference
9012 (url "https://github.com/bbatsov/helm-projectile")
9013 (commit (string-append "v" version))))
9014 (file-name (git-file-name name version))
9015 (sha256
9016 (base32 "05gpg90gg03yalmv9fw1y9k21i2l617iipvs0p9n80aln8nrzs8g"))))
9017 (build-system emacs-build-system)
9018 (propagated-inputs
9019 `(("emacs-helm" ,emacs-helm)
9020 ("emacs-projectile" ,emacs-projectile)))
9021 (home-page "https://github.com/bbatsov/helm-projectile")
9022 (synopsis "Helm integration for Projectile")
9023 (description
9024 "This Emacs library provides a Helm interface for Projectile.")
9025 (license license:gpl3+)))
9026
9027 (define-public emacs-taskrunner
9028 (let ((commit "3afd4a546d42339543d3d4e51b175fc3e82b3358")
9029 (revision "1"))
9030 (package
9031 (name "emacs-taskrunner")
9032 (version (git-version "0.6" revision commit))
9033 (source
9034 (origin
9035 (method git-fetch)
9036 (uri (git-reference
9037 (url "https://github.com/emacs-taskrunner/emacs-taskrunner")
9038 (commit commit)))
9039 (file-name (git-file-name name version))
9040 (sha256
9041 (base32
9042 "1lkdvmjn3alhqxq2i64sdr977sbw3g0b2670d9bwyzi67qh0jxrv"))))
9043 (build-system emacs-build-system)
9044 (propagated-inputs
9045 `(("emacs-async" ,emacs-async)
9046 ("emacs-projectile" ,emacs-projectile)))
9047 (home-page "https://github.com/emacs-taskrunner/emacs-taskrunner")
9048 (synopsis "Retrieve tasks from various build systems and task-runners")
9049 (description "This package parses Makefiles and build-system files for
9050 multiple project types.")
9051 (license license:gpl3+))))
9052
9053 (define-public emacs-ivy-taskrunner
9054 (let ((commit "75d8d67cfe3c29663fe0f5508a887adf40ed5162")
9055 (revision "1"))
9056 (package
9057 (name "emacs-ivy-taskrunner")
9058 (version (git-version "0.9" revision commit))
9059 (source
9060 (origin
9061 (method git-fetch)
9062 (uri (git-reference
9063 (url "https://github.com/emacs-taskrunner/ivy-taskrunner")
9064 (commit commit)))
9065 (file-name (git-file-name name version))
9066 (sha256
9067 (base32
9068 "1wf4s4k0ap21f7g5w6128an8nsvbja7f5n889vcml5b6gjz058db"))))
9069 (build-system emacs-build-system)
9070 (propagated-inputs
9071 `(("emacs-ivy" ,emacs-ivy)
9072 ("emacs-taskrunner" ,emacs-taskrunner)
9073 ("emacs-projectile" ,emacs-projectile)))
9074 (home-page "https://github.com/emacs-taskrunner/ivy-taskrunner")
9075 (synopsis "Retrieve build-system tasks using Ivy")
9076 (description "This package provides an Ivy interface for selecting
9077 Makefile targets.")
9078 (license license:gpl3+))))
9079
9080 (define-public emacs-helm-taskrunner
9081 (let ((commit "1910dac19cbc7bd4fd08b0faf9affd455339fbea")
9082 (revision "1"))
9083 (package
9084 (name "emacs-helm-taskrunner")
9085 (version (git-version "0.9" revision commit))
9086 (source
9087 (origin
9088 (method git-fetch)
9089 (uri (git-reference
9090 (url "https://github.com/emacs-taskrunner/helm-taskrunner")
9091 (commit commit)))
9092 (file-name (git-file-name name version))
9093 (sha256
9094 (base32
9095 "182lmr858fx6rdhp1fy7kv8dvrhzcnxzwfck1q22s6xs8x85d5q7"))))
9096 (build-system emacs-build-system)
9097 (propagated-inputs
9098 `(("emacs-helm" ,emacs-helm)
9099 ("emacs-taskrunner" ,emacs-taskrunner)
9100 ("emacs-projectile" ,emacs-projectile)))
9101 (home-page "https://github.com/emacs-taskrunner/helm-taskrunner")
9102 (synopsis "Retrieve build-system tasks using Helm")
9103 (description "This package provides a Helm interface for selecting
9104 Makefile targets.")
9105 (license license:gpl3+))))
9106
9107 (define-public emacs-helm-make
9108 (let ((commit "feae8df22bc4b20705ea08ac9adfc2b43bb348d0")
9109 (revision "1"))
9110 (package
9111 (name "emacs-helm-make")
9112 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
9113 (source
9114 (origin
9115 (method git-fetch)
9116 (uri (git-reference
9117 (url "https://github.com/abo-abo/helm-make")
9118 (commit commit)))
9119 (file-name (git-file-name name version))
9120 (sha256
9121 (base32
9122 "1y2v77mmd1bfkkz51cnk1l0dg3lvvxc39wlamnm7wjns66dbvlam"))))
9123 (build-system emacs-build-system)
9124 (propagated-inputs
9125 `(("emacs-helm" ,emacs-helm)
9126 ("emacs-projectile" ,emacs-projectile)))
9127 (home-page "https://github.com/abo-abo/helm-make")
9128 (synopsis "Select a Makefile target with helm")
9129 (description "@code{helm-make} or @code{helm-make-projectile} will give
9130 you a @code{helm} selection of directory Makefile's targets. Selecting a
9131 target will call @code{compile} on it.")
9132 (license license:gpl3+))))
9133
9134 (define-public emacs-cider
9135 (package
9136 (name "emacs-cider")
9137 (version "0.26.1")
9138 (source
9139 (origin
9140 (method git-fetch)
9141 (uri (git-reference
9142 (url "https://github.com/clojure-emacs/cider")
9143 (commit (string-append "v" version))))
9144 (file-name (git-file-name name version))
9145 (sha256
9146 (base32 "0m77jbxl380dp1wyj12m82bb06r80js8yxl530ryp1mwvy74f00d"))))
9147 (build-system emacs-build-system)
9148 (arguments
9149 '(#:exclude ;don't exclude 'cider-test.el'
9150 '("^\\.dir-locals\\.el$" "^test/")))
9151 (propagated-inputs
9152 `(("emacs-clojure-mode" ,emacs-clojure-mode)
9153 ("emacs-parseedn" ,emacs-parseedn)
9154 ("emacs-pkg-info" ,emacs-pkg-info)
9155 ("emacs-queue" ,emacs-queue)
9156 ("emacs-sesman" ,emacs-sesman)
9157 ("emacs-spinner" ,emacs-spinner)))
9158 (home-page "https://cider.mx/")
9159 (synopsis "Clojure development environment for Emacs")
9160 (description
9161 "CIDER (Clojure Interactive Development Environment that Rocks) aims to
9162 provide an interactive development experience similar to the one you'd get
9163 when programming in Emacs Lisp, Common Lisp (with SLIME or Sly), Scheme (with
9164 Geiser) and Smalltalk.
9165
9166 CIDER is the successor to the now deprecated combination of using SLIME +
9167 swank-clojure for Clojure development.
9168
9169 There are plenty of differences between CIDER and SLIME, but the core ideas
9170 are pretty much the same (and SLIME served as the principle inspiration for
9171 CIDER).")
9172 (license license:gpl3+)))
9173
9174 ;; There hasn't been a tag or release since 2016, so we take the latest
9175 ;; commit.
9176 (define-public emacs-sly
9177 (let ((commit "8e22c1f62667434ec1acd1e0c6b7ec1c22dc0958")
9178 ;; Update together with sbcl-slynk-boot0.
9179 (revision "6"))
9180 (package
9181 (name "emacs-sly")
9182 (version (git-version "1.0.0" revision commit))
9183 (source
9184 (origin
9185 (method git-fetch)
9186 (uri (git-reference
9187 (url "https://github.com/joaotavora/sly")
9188 (commit commit)))
9189 (file-name (git-file-name name version))
9190 (sha256
9191 (base32
9192 "09wyqixsn7k889i54amf8bwjg6iyirp89xmcrgfwal010kh1ixcl"))))
9193 (build-system emacs-build-system)
9194 (native-inputs
9195 `(("texinfo" ,texinfo)))
9196 (arguments
9197 `(#:include (cons* "^contrib\\/" "^lib\\/" "^slynk\\/" %default-include)
9198 #:phases
9199 ;; The package provides autoloads.
9200 (modify-phases %standard-phases
9201 (delete 'make-autoloads)
9202 (add-before 'install 'install-doc
9203 (lambda* (#:key outputs #:allow-other-keys)
9204 (let* ((out (assoc-ref outputs "out"))
9205 (info-dir (string-append out "/share/info"))
9206 (doc-dir (string-append out "/share/doc/"
9207 ,name "-" ,version))
9208 (doc-files '(;; "doc/sly-refcard.pdf" ; See sly-refcard.pdf below.
9209 "README.md" "NEWS.md" "PROBLEMS.md"
9210 "CONTRIBUTING.md")))
9211 (with-directory-excursion "doc"
9212 (substitute* "Makefile"
9213 (("infodir=/usr/local/info")
9214 (string-append "infodir=" info-dir))
9215 ;; Don't rebuild contributors.texi since we are not in
9216 ;; the git repo.
9217 (("contributors.texi: Makefile texinfo-tabulate.awk")
9218 "contributors.texi:"))
9219 (invoke "make" "html/index.html")
9220 (invoke "make" "sly.info")
9221 ;; TODO: We need minimal texlive with "preprint" package
9222 ;; (for fullpage.sty). (invoke "make" "sly-refcard.pdf")
9223 (install-file "sly.info" info-dir)
9224 (copy-recursively "html" (string-append doc-dir "/html")))
9225 (for-each (lambda (f)
9226 (install-file f doc-dir)
9227 (delete-file f))
9228 doc-files)
9229 (delete-file-recursively "doc")
9230 #t))))))
9231 (home-page "https://github.com/joaotavora/sly")
9232 (synopsis "Sylvester the Cat's Common Lisp IDE")
9233 (description
9234 "SLY is Sylvester the Cat's Common Lisp IDE. SLY is a fork of SLIME, and
9235 contains the following improvements over it:
9236
9237 @enumerate
9238 @item Completely redesigned REPL based on Emacs's own full-featured
9239 @code{comint.el}.
9240 @item Live code annotations via a new @code{sly-stickers} contrib.
9241 @item Consistent interactive button interface. Everything can be copied to
9242 the REPL.
9243 @item Multiple inspectors with independent history.
9244 @item Regexp-capable @code{M-x sly-apropos}.
9245 @item Contribs are first class SLY citizens and enabled by default.
9246 @item Use ASDF to loads contribs on demand.
9247 @end enumerate
9248
9249 SLY tracks SLIME's bugfixes and all its familiar features (debugger, inspector,
9250 xref, etc...) are still available, but with better integration.")
9251 (license license:gpl3+))))
9252
9253 (define-public emacs-sly-quicklisp
9254 (let ((commit "01ebe3976a244309f2e277c09206831135a0b66c")
9255 (revision "1"))
9256 (package
9257 (name "emacs-sly-quicklisp")
9258 (version (git-version "0.0.0" revision commit))
9259 (home-page "https://github.com/joaotavora/sly-quicklisp")
9260 (source
9261 (origin
9262 (method git-fetch)
9263 (uri (git-reference
9264 (url home-page)
9265 (commit commit)))
9266 (file-name (git-file-name name version))
9267 (sha256
9268 (base32
9269 "1vfqmvayf35g6y3ljsm3rlzv5jm50qikhh4lv2zkkswj6gkkb1cv"))))
9270 (build-system emacs-build-system)
9271 (propagated-inputs
9272 `(("emacs-sly" ,emacs-sly)))
9273 (arguments
9274 `(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
9275 #:phases
9276 ;; The package provides autoloads.
9277 (modify-phases %standard-phases
9278 (delete 'make-autoloads)
9279 (delete 'enable-autoloads-compilation))))
9280 (synopsis "Quicklisp support for SLY")
9281 (description
9282 "@command{sly-quicklisp} is an external contrib for SLY that provides a
9283 sly-quickload command that prompts the user for a package to install. ")
9284 (license license:gpl3+))))
9285
9286 (define-public emacs-sly-asdf
9287 (let ((commit "32ce14994e8faee9321605cec36d156b02996c46")
9288 (revision "4"))
9289 (package
9290 (name "emacs-sly-asdf")
9291 (version (git-version "0.1.0" revision commit))
9292 (home-page "https://github.com/mmgeorge/sly-asdf")
9293 (source
9294 (origin
9295 (method git-fetch)
9296 (uri (git-reference
9297 (url home-page)
9298 (commit commit)))
9299 (file-name (git-file-name name version))
9300 (sha256
9301 (base32
9302 "09x8l37wwqw74xc2frwzbfdb1if8rb3szg5akdk3v2qhik4sm3dd"))))
9303 (build-system emacs-build-system)
9304 (propagated-inputs
9305 `(("emacs-sly" ,emacs-sly)
9306 ("emacs-popup" ,emacs-popup)))
9307 (arguments
9308 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)))
9309 (synopsis "ASDF contrib for SLY")
9310 (description
9311 "@command{sly-asdf} is an external contrib for SLY that provides
9312 additional support for working with ASDF projects.")
9313 (license license:gpl3+))))
9314
9315 (define-public emacs-sly-named-readtables
9316 (let ((commit "a5a42674ccffa97ccd5e4e9742beaf3ea719931f")
9317 (revision "1"))
9318 (package
9319 (name "emacs-sly-named-readtables")
9320 (version (git-version "0.1" revision commit))
9321 (home-page "https://github.com/joaotavora/sly-named-readtables")
9322 (source
9323 (origin
9324 (method git-fetch)
9325 (uri (git-reference
9326 (url home-page)
9327 (commit commit)))
9328 (file-name (git-file-name name version))
9329 (sha256
9330 (base32
9331 "16asd119rzqrlclps2q6yrkis8jy5an5xgzzqvb7jdyq39zxg54q"))))
9332 (build-system emacs-build-system)
9333 (propagated-inputs
9334 `(("emacs-sly" ,emacs-sly)))
9335 (arguments
9336 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
9337 #:phases (modify-phases %standard-phases
9338 ;; Byte compilation of the autoload file fails.
9339 (delete 'enable-autoloads-compilation))))
9340 (synopsis "Named-readtables support for SLY")
9341 (description
9342 "@command{sly-named-readtables} is an external contrib for SLY that
9343 enables different readtables to be active in different parts of the same
9344 file.")
9345 (license license:gpl3+))))
9346
9347 (define-public emacs-sly-macrostep
9348 (let ((commit "5113e4e926cd752b1d0bcc1508b3ebad5def5fad")
9349 (revision "2"))
9350 (package
9351 (name "emacs-sly-macrostep")
9352 (version (git-version "0.1" revision commit))
9353 (home-page "https://github.com/joaotavora/sly-macrostep")
9354 (source
9355 (origin
9356 (method git-fetch)
9357 (uri (git-reference
9358 (url home-page)
9359 (commit commit)))
9360 (file-name (git-file-name name version))
9361 (sha256
9362 (base32
9363 "1nxf28gn4f3n0wnv7nb5sgl36fz175y470zs9hig4kq8cp0yal0r"))))
9364 (build-system emacs-build-system)
9365 (propagated-inputs
9366 `(("emacs-sly" ,emacs-sly)
9367 ("emacs-macrostep" ,emacs-macrostep)))
9368 (arguments
9369 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
9370 #:phases
9371 ;; The package provides autoloads.
9372 (modify-phases %standard-phases
9373 (delete 'make-autoloads)
9374 (delete 'enable-autoloads-compilation))))
9375 (synopsis "Expand Common Lisp macros inside source files with SLY")
9376 (description
9377 "@command{sly-macrostep} is a SLY contrib for expanding CL macros right
9378 inside the source file.")
9379 (license license:gpl3+))))
9380
9381 (define-public emacs-sly-package-inferred
9382 (let ((commit "800e71e2be631422277e2ec77e6d6f6ea20e95ef")
9383 (revision "1"))
9384 (package
9385 (name "emacs-sly-package-inferred")
9386 (version (git-version "0.1" revision commit))
9387 (home-page "https://github.com/40ants/sly-package-inferred")
9388 (source
9389 (origin
9390 (method git-fetch)
9391 (uri (git-reference
9392 (url home-page)
9393 (commit commit)))
9394 (file-name (git-file-name name version))
9395 (sha256
9396 (base32
9397 "1216idyp034nkqddhw4p53jkhhdxa6xnjjmsvijpf4rxqnfqvapg"))))
9398 (build-system emacs-build-system)
9399 (propagated-inputs
9400 `(("emacs-sly" ,emacs-sly)))
9401 (arguments
9402 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
9403 #:phases
9404 ;; The package provides autoloads.
9405 (modify-phases %standard-phases
9406 (delete 'make-autoloads))))
9407 (synopsis "Improved package inferred systems support for SLY")
9408 (description
9409 "@command{sly-package-inferred} is an external contrib for SLY that
9410 replaces its completion with a function which is better suited for systems
9411 using package inferred style.")
9412 (license license:gpl3+))))
9413
9414 (define-public emacs-lua-mode
9415 (package
9416 (name "emacs-lua-mode")
9417 (version "20201010")
9418 (home-page "https://github.com/immerrr/lua-mode/")
9419 (source
9420 (origin
9421 (method git-fetch)
9422 (uri (git-reference
9423 (url home-page)
9424 (commit (string-append "v" version))))
9425 (file-name (git-file-name name version))
9426 (sha256
9427 (base32 "0zf43f7fkrgki6pbc09zak975p4jx1yf3ipfs38hypfl9s5d6xrf"))))
9428 (build-system emacs-build-system)
9429 (arguments
9430 `(#:tests? #t
9431 #:test-command '("buttercup" "-l" "lua-mode.el")))
9432 (native-inputs
9433 `(("emacs-buttercup" ,emacs-buttercup)
9434 ("lua" ,lua)))
9435 (synopsis "Major mode for lua")
9436 (description
9437 "This Emacs package provides a mode for @uref{https://www.lua.org/,
9438 Lua programming language}.")
9439 (license license:gpl2+)))
9440
9441 (define-public emacs-ebuild-mode
9442 (package
9443 (name "emacs-ebuild-mode")
9444 (version "1.51")
9445 (source
9446 (origin
9447 (method url-fetch)
9448 (uri (string-append
9449 "https://dev.gentoo.org/~ulm/emacs/"
9450 "ebuild-mode-" version ".tar.xz"))
9451 (file-name (string-append name "-" version ".tar.xz"))
9452 (sha256
9453 (base32 "0sfmd6ns2qdmybcynlvc4fqzkbkzmm54rn87wyirdcqnpy0x03i2"))))
9454 (build-system emacs-build-system)
9455 (arguments
9456 '(#:phases
9457 (modify-phases %standard-phases
9458 (add-after 'install 'install-doc
9459 (lambda* (#:key outputs #:allow-other-keys)
9460 (invoke "make" "ebuild-mode.info")
9461 (install-file "ebuild-mode.info"
9462 (string-append (assoc-ref outputs "out")
9463 "/share/info"))
9464 #t)))))
9465 (native-inputs
9466 `(("texinfo" ,texinfo)))
9467 (home-page "https://devmanual.gentoo.org")
9468 (synopsis "Major modes for Gentoo package files")
9469 (description
9470 "This Emacs package provides modes for ebuild, eclass, eblit, GLEP42
9471 news items, openrc and runscripts.")
9472 (license license:gpl2+)))
9473
9474 (define-public emacs-evil
9475 (package
9476 (name "emacs-evil")
9477 (version "1.14.0")
9478 (source
9479 (origin
9480 (method git-fetch)
9481 (uri (git-reference
9482 (url "https://github.com/emacs-evil/evil")
9483 (commit version)))
9484 (file-name (git-file-name name version))
9485 (sha256
9486 (base32
9487 "17xrn3s6a4afmls8fw8nnxa1jq9dmj2qqrxa2vngh50hxpz8840p"))))
9488 (arguments
9489 `(#:phases
9490 (modify-phases %standard-phases
9491 (add-before 'check 'fix-test-helpers
9492 (lambda _
9493 (substitute* "evil-test-helpers.el"
9494 (("\\(undo-tree-mode 1\\)") ""))
9495 #t))
9496 (add-before 'install 'make-info
9497 (lambda _
9498 (with-directory-excursion "doc/build/texinfo"
9499 (invoke "makeinfo" "--no-split"
9500 "-o" "evil.info" "evil.texi")))))))
9501 (build-system emacs-build-system)
9502 (native-inputs `(("texinfo" ,texinfo)))
9503 (home-page "https://github.com/emacs-evil/evil")
9504 (synopsis "Extensible Vi layer for Emacs")
9505 (description
9506 "Evil is an extensible vi layer for Emacs. It emulates the
9507 main features of Vim, and provides facilities for writing custom
9508 extensions.")
9509 (license license:gpl3+)))
9510
9511 (define-public emacs-evil-collection
9512 (let ((commit "8c256263ad100fecd6246c6c55cbb19dab717c39")
9513 (revision "18"))
9514 (package
9515 (name "emacs-evil-collection")
9516 (version (git-version "0.0.3" revision commit))
9517 (source (origin
9518 (method git-fetch)
9519 (uri (git-reference
9520 (url "https://github.com/emacs-evil/evil-collection")
9521 (commit commit)))
9522 (file-name (git-file-name name version))
9523 (sha256
9524 (base32
9525 "0hz1yfv5g016dm99bwnibbmyhbi21qlc39ckd7p3s82az89hgf2n"))))
9526 (build-system emacs-build-system)
9527 (propagated-inputs
9528 `(("emacs-evil" ,emacs-evil)
9529 ("emacs-annalist" ,emacs-annalist)))
9530 (arguments
9531 `(#:include (cons* "^modes\\/" %default-include)))
9532 (home-page "https://github.com/emacs-evil/evil-collection")
9533 (synopsis "Collection of Evil bindings for many major and minor modes")
9534 (description "This is a collection of Evil bindings for the parts of
9535 Emacs that Evil does not cover properly by default, such as @code{help-mode},
9536 @code{M-x calendar}, Eshell and more.")
9537 (license license:gpl3+))))
9538
9539 (define-public emacs-goto-chg
9540 (let ((commit "1829a13026c597e358f716d2c7793202458120b5")
9541 (version "1.7.3")
9542 (revision "1"))
9543 (package
9544 (name "emacs-goto-chg")
9545 (version (git-version version revision commit))
9546 (source
9547 (origin
9548 (method git-fetch)
9549 (uri (git-reference
9550 (url "https://github.com/emacs-evil/goto-chg")
9551 (commit commit)))
9552 (file-name (git-file-name name version))
9553 (sha256
9554 (base32
9555 "1y603maw9xwdj3qiarmf1bp13461f9f5ackzicsbynl0i9la3qki"))))
9556 (build-system emacs-build-system)
9557 (propagated-inputs
9558 `(("emacs-undo-tree" ,emacs-undo-tree)))
9559 (home-page "https://github.com/emacs-evil/goto-chg")
9560 (synopsis "Go to the last change in the Emacs buffer")
9561 (description
9562 "This package provides @code{M-x goto-last-change} command that goes to
9563 the point of the most recent edit in the current Emacs buffer. When repeated,
9564 go to the second most recent edit, etc. Negative argument, @kbd{C-u -}, is
9565 used for reverse direction.")
9566 (license license:gpl2+))))
9567
9568 (define-public emacs-janpath-evil-numbers
9569 (let ((commit "d988041c1fe6e941dc8d591390750b237f71f524")
9570 (version "0.5")
9571 (revision "1"))
9572 (package
9573 (name "emacs-janpath-evil-numbers")
9574 (version (git-version version revision commit))
9575 (source
9576 (origin
9577 (method git-fetch)
9578 (uri (git-reference
9579 (url "https://github.com/janpath/evil-numbers")
9580 (commit commit)))
9581 (file-name (git-file-name name version))
9582 (sha256
9583 (base32
9584 "16zixhxxcb83m82f2cfiardfn99j3w41v6vh1qk6j9pplrlfw70v"))))
9585 (build-system emacs-build-system)
9586 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9587 (home-page "https://github.com/janpath/evil-numbers")
9588 (synopsis "Increment and decrement numeric literals")
9589 (description
9590 "This package provides functionality to search for a number up to the
9591 end of a line and increment or decrement it.")
9592 (license license:gpl3+))))
9593
9594 (define-public emacs-evil-owl
9595 (let ((commit "24c5f43df375194386344e69bc720ea3986c9510")
9596 (revision "3"))
9597 (package
9598 (name "emacs-evil-owl")
9599 (version (git-version "0.0.1" revision commit))
9600 (source
9601 (origin
9602 (method git-fetch)
9603 (uri (git-reference
9604 (url "https://github.com/mamapanda/evil-owl")
9605 (commit commit)))
9606 (file-name (git-file-name name version))
9607 (sha256
9608 (base32
9609 "0bqzch14whlmrcasakah3psrzswvkzd7mmi8hx5s64kfp29wbdhi"))))
9610 (build-system emacs-build-system)
9611 (propagated-inputs
9612 `(("emacs-evil" ,emacs-evil)))
9613 (arguments
9614 `(#:tests? #t
9615 #:test-command '("make" "test")))
9616 (home-page "https://github.com/mamapanda/evil-owl")
9617 (synopsis "Preview candidates when using Evil registers and marks")
9618 (description
9619 "This package supplements Evil's register- and mark-based commands with
9620 a popup window for previewing candidates.")
9621 (license license:gpl3+))))
9622
9623 (define-public emacs-evil-args
9624 (let ((commit "758ad5ae54ad34202064fec192c88151c08cb387")
9625 (revision "1"))
9626 (package
9627 (name "emacs-evil-args")
9628 (version (git-version "1.0" revision commit))
9629 (source
9630 (origin
9631 (method git-fetch)
9632 (uri (git-reference
9633 (url "https://github.com/wcsmith/evil-args")
9634 (commit commit)))
9635 (file-name (git-file-name name version))
9636 (sha256
9637 (base32
9638 "0k35glgsirc3cph8v5hhjrqfh4ndwh8a28qbr03y3jl8s453xcj7"))))
9639 (build-system emacs-build-system)
9640 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9641 (home-page "https://github.com/wcsmith/evil-args")
9642 (synopsis "Motions and text objects for delimited arguments in Evil")
9643 (description
9644 "This package provides motions and text objects for delimited
9645 arguments, such as arguments separated by commas and semicolons.")
9646 (license license:expat))))
9647
9648 (define-public emacs-evil-escape
9649 (package
9650 (name "emacs-evil-escape")
9651 (version "3.14")
9652 (source
9653 (origin
9654 (method git-fetch)
9655 (uri
9656 (git-reference
9657 (url "https://github.com/syl20bnr/evil-escape")
9658 (commit (string-append "v" version))))
9659 (file-name (git-file-name name version))
9660 (sha256
9661 (base32 "0s8lmmm25qabicwaj9jybpbd8mkc62yl7jnhk1lpablydjkv3w2i"))))
9662 (propagated-inputs
9663 `(("emacs-evil" ,emacs-evil)))
9664 (build-system emacs-build-system)
9665 (home-page "https://github.com/syl20bnr/evil-escape")
9666 (synopsis "Escape from insert state and everything else in Emacs")
9667 (description
9668 "Evil escape provides a customizable key sequence to escape from insert
9669 state and everything else in Emacs.")
9670 (license license:gpl3+)))
9671
9672 (define-public emacs-evil-exchange
9673 (let ((commit "47691537815150715e64e6f6ec79be7746c96120")
9674 (version "0.41")
9675 (revision "1"))
9676 (package
9677 (name "emacs-evil-exchange")
9678 (version (git-version version revision commit))
9679 (source
9680 (origin
9681 (method git-fetch)
9682 (uri (git-reference
9683 (url "https://github.com/Dewdrops/evil-exchange")
9684 (commit commit)))
9685 (file-name (git-file-name name version))
9686 (sha256
9687 (base32
9688 "0bjpn4yqig17ddym6wqq5fm1b294q74hzcbj9a6gs97fqiwf88xa"))))
9689 (build-system emacs-build-system)
9690 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9691 (native-inputs `(("emacs-ert-runner" ,emacs-ert-runner)))
9692 (arguments
9693 `(#:phases
9694 (modify-phases %standard-phases
9695 (add-before 'check 'fix-makefile
9696 (lambda _
9697 (substitute* "Makefile"
9698 (("cask exec ") ""))
9699 #t)))
9700 #:tests? #t
9701 #:test-command '("make" "test")))
9702 (home-page "https://github.com/Dewdrops/evil-exchange")
9703 (synopsis "Exchange text easily within Evil")
9704 (description
9705 "This package, a port of @code{vim-exchange}, provides an Evil operator
9706 for exchanging text.")
9707 (license license:gpl3+))))
9708
9709 (define-public emacs-evil-replace-with-register
9710 (let ((commit "91cc7bf21a94703c441cc9212214075b226b7f67")
9711 (version "0.1")
9712 (revision "1"))
9713 (package
9714 (name "emacs-evil-replace-with-register")
9715 (version (git-version version revision commit))
9716 (source
9717 (origin
9718 (method git-fetch)
9719 (uri (git-reference
9720 (url "https://github.com/Dewdrops/evil-ReplaceWithRegister")
9721 (commit commit)))
9722 (file-name (git-file-name name version))
9723 (sha256
9724 (base32
9725 "14rpn76qrf287s3y2agmddcxi27r226i53ixjvd694ss039g0r11"))))
9726 (build-system emacs-build-system)
9727 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9728 (home-page "https://github.com/Dewdrops/evil-ReplaceWithRegister")
9729 (synopsis "Quickly replace text with the contents of a register")
9730 (description
9731 "This package provides an Evil operator for replacing text with the
9732 contents of a register.")
9733 (license license:gpl3+))))
9734
9735 (define-public emacs-evil-indent-plus
9736 (let ((commit "0c7501e6efed661242c3a20e0a6c79a6455c2c40")
9737 (version "1.0.0")
9738 (revision "1"))
9739 (package
9740 (name "emacs-evil-indent-plus")
9741 (version (git-version version revision commit))
9742 (source
9743 (origin
9744 (method git-fetch)
9745 (uri (git-reference
9746 (url "https://github.com/TheBB/evil-indent-plus")
9747 (commit commit)))
9748 (file-name (git-file-name name version))
9749 (sha256
9750 (base32
9751 "1g6r1ydscwjvmhh1zg4q3nap4avk8lb9msdqrh7dff6pla0r2qs6"))))
9752 (build-system emacs-build-system)
9753 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9754 (home-page "https://github.com/TheBB/evil-indent-plus")
9755 (synopsis "Text objects based on indentation")
9756 (description
9757 "This package adds new text objects for @code{evil-mode} based on
9758 blocks having the same or higher indentation, including or excluding
9759 surrounding lines.")
9760 (license license:gpl2+))))
9761
9762 (define-public emacs-evil-text-object-python
9763 (let ((commit "9a064fe6475429145cbcc3b270fcc963b67adb15")
9764 (version "1.0.1")
9765 (revision "1"))
9766 (package
9767 (name "emacs-evil-text-object-python")
9768 (version (git-version version revision commit))
9769 (source
9770 (origin
9771 (method git-fetch)
9772 (uri (git-reference
9773 (url "https://github.com/wbolster/evil-text-object-python")
9774 (commit commit)))
9775 (file-name (git-file-name name version))
9776 (sha256
9777 (base32
9778 "074zpm6mmr1wfl6d5xdf8jk1fs4ccpbzf4ahhkwga9g71xiplszv"))))
9779 (build-system emacs-build-system)
9780 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9781 (home-page "https://github.com/wbolster/evil-text-object-python")
9782 (synopsis "Text objects for Python")
9783 (description
9784 "This package provides @code{evil-mode} text objects for Python.")
9785 (license license:gpl3+))))
9786
9787 (define-public emacs-evil-lion
9788 (let ((commit "6b03593f5dd6e7c9ca02207f9a73615cf94c93ab")
9789 (revision "1"))
9790 (package
9791 (name "emacs-evil-lion")
9792 (version (git-version "0.0.2" revision commit))
9793 (source
9794 (origin
9795 (method git-fetch)
9796 (uri (git-reference
9797 (url "https://github.com/edkolev/evil-lion")
9798 (commit commit)))
9799 (file-name (git-file-name name version))
9800 (sha256
9801 (base32
9802 "1a162hynp0jcsn50c1w5a02mrw9w3q05c7lkqzqd25px3d0p772q"))))
9803 (build-system emacs-build-system)
9804 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9805 (arguments
9806 `(#:tests? #t
9807 #:test-command '("make" "test")))
9808 (home-page "https://github.com/edkolev/evil-lion")
9809 (synopsis "Align operator for @code{evil-mode}")
9810 (description
9811 "This package, a port of @code{vim-lion}, provides an operator for
9812 aligning text objects based on separators.")
9813 (license license:gpl3+))))
9814
9815 (define-public emacs-evil-expat
9816 (let ((commit "f4fcd0aa3edc359adb5c986b5dd9188d220d84e2")
9817 (revision "1"))
9818 (package
9819 (name "emacs-evil-expat")
9820 (version (git-version "0.0.1" revision commit))
9821 (source
9822 (origin
9823 (method git-fetch)
9824 (uri (git-reference
9825 (url "https://github.com/edkolev/evil-expat")
9826 (commit commit)))
9827 (file-name (git-file-name name version))
9828 (sha256
9829 (base32
9830 "0872ix682hkdz0k8pn6sb54rqkx00rz5fxpd5j2snx406yagpaxz"))))
9831 (build-system emacs-build-system)
9832 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9833 (arguments
9834 `(#:tests? #t
9835 #:test-command '("make" "test")))
9836 (home-page "https://github.com/edkolev/evil-expat")
9837 (synopsis "Extra @code{ex} commands for @code{evil-mode}")
9838 (description
9839 "This package provides additional commands for the @code{ex} command
9840 line, including functions for version control with Git and for copying and
9841 pasting into and from @code{tmux} paste buffers.")
9842 (license license:gpl3+))))
9843
9844 (define-public emacs-evil-nerd-commenter
9845 (package
9846 (name "emacs-evil-nerd-commenter")
9847 (version "3.3.8")
9848 (source
9849 (origin
9850 (method git-fetch)
9851 (uri (git-reference
9852 (url "https://github.com/redguardtoo/evil-nerd-commenter")
9853 (commit version)))
9854 (file-name (git-file-name name version))
9855 (sha256
9856 (base32
9857 "0qd5a89mzvdyhd8lm13iwp220vzpd6dajwx54frlc5bzsxdmg6vc"))))
9858 (build-system emacs-build-system)
9859 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9860 (arguments
9861 `(#:tests? #t
9862 #:test-command '("make" "test")))
9863 (home-page "https://github.com/redguardtoo/evil-nerd-commenter")
9864 (synopsis "Comment and uncomment lines efficiently")
9865 (description
9866 "This package provides text objects and operators for comments within
9867 @code{evil-mode}.")
9868 (license license:gpl3+)))
9869
9870 (define-public emacs-evil-visual-replace
9871 (package
9872 (name "emacs-evil-visual-replace")
9873 (version "0.0.5")
9874 (source
9875 (origin
9876 (method git-fetch)
9877 (uri (git-reference
9878 (url "https://github.com/troyp/evil-visual-replace")
9879 (commit version)))
9880 (file-name (git-file-name name version))
9881 (sha256
9882 (base32
9883 "1gfyrq7xfzmzh3x8k5f08n027dlbwi0pkkxf9c39fkxp4jngibsz"))))
9884 (build-system emacs-build-system)
9885 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9886 (home-page "https://github.com/troyp/evil-visual-replace")
9887 (synopsis "Replacement commands for @code{evil-mode} visual blocks")
9888 (description
9889 "This package provides versions of @code{query-replace} and
9890 @code{replace-regexp} that work for @code{evil-mode} visual blocks.")
9891 (license license:gpl2+)))
9892
9893 (define-public emacs-evil-visualstar
9894 (let ((commit "06c053d8f7381f91c53311b1234872ca96ced752")
9895 (version "0.0.2")
9896 (revision "1"))
9897 (package
9898 (name "emacs-evil-visualstar")
9899 (version (git-version version revision commit))
9900 (source
9901 (origin
9902 (method git-fetch)
9903 (uri (git-reference
9904 (url "https://github.com/bling/evil-visualstar")
9905 (commit commit)))
9906 (file-name (git-file-name name version))
9907 (sha256
9908 (base32
9909 "0mkbzw12fav945icibc2293m5haxqr3hzkyli2cf4ssk6yvn0x4c"))))
9910 (build-system emacs-build-system)
9911 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9912 (home-page "https://github.com/bling/evil-visualstar")
9913 (synopsis "Instantly search using the visual selection")
9914 (description
9915 "This package provides @code{evil-mode} functions for using selected text
9916 to search.")
9917 (license license:gpl3+))))
9918
9919 (define-public emacs-monky
9920 (package
9921 (name "emacs-monky")
9922 (version "0.1")
9923 (source (origin
9924 (method git-fetch)
9925 (uri (git-reference
9926 (url "https://github.com/ananthakumaran/monky")
9927 (commit version)))
9928 (file-name (git-file-name name version))
9929 (sha256
9930 (base32
9931 "1fgn7al4zwz2k5wb5dy3byqg9lsrjk9fra341mxh5ma2pfwxjgps"))))
9932 (build-system emacs-build-system)
9933 (home-page "https://ananthakumaran.in/monky/index.html")
9934 (arguments
9935 `(#:tests? #t
9936 #:test-command '("emacs" "--batch"
9937 "-l" "test/monky-unit-test.el"
9938 "-f" "ert-run-tests-batch-and-exit")))
9939 (synopsis "Interactive interface for the Mercurial version control system")
9940 (description
9941 "Monky provides an Emacs interface for Mercurial (Hg). Using Monky, you
9942 can selectively commit files, view the diffs, and other things.")
9943 (license license:gpl3+)))
9944
9945 (define-public emacs-monroe
9946 (package
9947 (name "emacs-monroe")
9948 (version "0.3.1")
9949 (source
9950 (origin
9951 (method git-fetch)
9952 (uri (git-reference
9953 (url "https://github.com/sanel/monroe")
9954 (commit version)))
9955 (file-name (git-file-name name version))
9956 (sha256
9957 (base32 "101lfrykdbv37spkbw7zihhx26bc1lhjyxbanrcp9880bxj04jiy"))))
9958 (build-system emacs-build-system)
9959 (home-page "https://github.com/sanel/monroe")
9960 (synopsis "Clojure nREPL client for Emacs")
9961 (description
9962 "Monroe is a nREPL client for Emacs, focused on simplicity and easy
9963 distribution, primarily targeting Clojure users")
9964 (license license:gpl3+)))
9965
9966 (define-public emacs-orgalist
9967 (package
9968 (name "emacs-orgalist")
9969 (version "1.13")
9970 (source
9971 (origin
9972 (method url-fetch)
9973 (uri (string-append "https://elpa.gnu.org/packages/"
9974 "orgalist-" version ".el"))
9975 (sha256
9976 (base32 "1wkxc5kcy1g4lx6pd78pa8znncjyl9zyhsvz7wpp56qmhq4hlav3"))))
9977 (build-system emacs-build-system)
9978 (home-page "https://elpa.gnu.org/packages/orgalist.html")
9979 (synopsis "Manage Org-like lists in non-Org buffers")
9980 (description "Orgalist writes and manages Org mode's plain lists in
9981 non-Org buffers. More specifically, it supports the syntax of Org mode for
9982 numbered, unnumbered, description items, checkboxes, and counter cookies.
9983
9984 The library also implements radio lists, i.e., lists written in Org syntax
9985 later translated into the host format, e.g., LaTeX or HTML.")
9986 (license license:gpl3+)))
9987
9988 (define-public emacs-writegood-mode
9989 (package
9990 (name "emacs-writegood-mode")
9991 (version "2.0.2")
9992 (home-page "https://github.com/bnbeckwith/writegood-mode")
9993 (source (origin
9994 (method git-fetch)
9995 (uri (git-reference
9996 (url home-page)
9997 (commit (string-append "v" version))))
9998 (sha256
9999 (base32
10000 "1nnjn1r669hvvzfycllwap4w04m8rfsk4nzcg8057m1f263kj31b"))
10001 (file-name (string-append name "-checkout"))))
10002 (build-system emacs-build-system)
10003 (synopsis "Polish up poor writing on the fly")
10004 (description
10005 "This minor mode tries to find and highlight problems with your writing
10006 in English as you type. It primarily detects \"weasel words\" and abuse of
10007 passive voice.")
10008 (license license:gpl3+)))
10009
10010 (define-public emacs-neotree
10011 (package
10012 (name "emacs-neotree")
10013 (version "0.5.2")
10014 (home-page "https://github.com/jaypei/emacs-neotree")
10015 (source (origin
10016 (method git-fetch)
10017 (uri (git-reference
10018 (url home-page)
10019 (commit version)))
10020 (sha256
10021 (base32
10022 "0hx72fq10772bbyqrj7mhhp02k26cccjxdadiqm1ykainhfmn1x0"))
10023 (file-name (git-file-name name version))))
10024 (build-system emacs-build-system)
10025 (synopsis "Folder tree view for Emacs")
10026 (description "This Emacs package provides a folder tree view.")
10027 (license license:gpl3+)))
10028
10029 (define-public emacs-org
10030 (package
10031 (name "emacs-org")
10032 ;; emacs-org-contrib inherits from this package. Please update it as
10033 ;; well.
10034 (version "9.4")
10035 (source
10036 (origin
10037 (method url-fetch)
10038 (uri (string-append "https://elpa.gnu.org/packages/org-" version ".tar"))
10039 (sha256
10040 (base32 "1awkrh3y90q7c0as3327rqj0zylf5cpjzr1pyvbzymli16irhwb6"))))
10041 (build-system emacs-build-system)
10042 (arguments
10043 `(#:phases
10044 (modify-phases %standard-phases
10045 (add-after 'install 'install-documentation
10046 (lambda* (#:key outputs #:allow-other-keys)
10047 (let* ((share (string-append (assoc-ref outputs "out") "/share"))
10048 (info-dir (string-append share "/info"))
10049 (doc-dir (string-append share "/doc/" ,name "-" ,version)))
10050 (install-file "org" info-dir)
10051 (install-file "orgcard.pdf" doc-dir))
10052 #t)))))
10053 (home-page "https://orgmode.org/")
10054 (synopsis "Outline-based notes management and organizer")
10055 (description "Org is an Emacs mode for keeping notes, maintaining TODO
10056 lists, and project planning with a fast and effective lightweight markup
10057 language. It also is an authoring system with unique support for literate
10058 programming and reproducible research.")
10059 (license license:gpl3+)))
10060
10061 (define-public emacs-org-contrib
10062 (package
10063 (inherit emacs-org)
10064 (name "emacs-org-contrib")
10065 (version "20200914")
10066 (source
10067 (origin
10068 (method url-fetch)
10069 (uri (string-append "https://orgmode.org/elpa/"
10070 "org-plus-contrib-" version ".tar"))
10071 (sha256
10072 (base32 "1naq25g4d95cx29axx428rnpc4m9hd0j7w1l0vqwkdjyr5qfj0ab"))
10073 ;; ob-sclang.el is packaged separately to avoid the dependency on
10074 ;; SuperCollider and qtwebengine.
10075 (modules '((guix build utils)))
10076 (snippet '(begin (delete-file "ob-sclang.el") #t))))
10077 (arguments
10078 `(#:modules ((guix build emacs-build-system)
10079 (guix build utils)
10080 (guix build emacs-utils)
10081 (ice-9 ftw)
10082 (srfi srfi-1))
10083 #:phases
10084 (modify-phases %standard-phases
10085 (add-after 'install 'delete-org-files
10086 (lambda* (#:key inputs outputs #:allow-other-keys)
10087 (let* ((out (assoc-ref outputs "out"))
10088 (org (assoc-ref inputs "org"))
10089 (contrib-files
10090 (map basename (find-files out)))
10091 (org+contrib-files
10092 (map basename (find-files org)))
10093 (duplicates (lset-intersection string=?
10094 contrib-files
10095 org+contrib-files)))
10096 (with-directory-excursion
10097 (string-append out "/share/emacs/site-lisp")
10098 (for-each delete-file duplicates))
10099 #t))))))
10100 (propagated-inputs
10101 `(("arduino-mode" ,emacs-arduino-mode)
10102 ("cider" ,emacs-cider)
10103 ("org" ,emacs-org)))
10104 (synopsis "Contributed packages to Org mode")
10105 (description "Org is an Emacs mode for keeping notes, maintaining TODO
10106 lists, and project planning with a fast and effective plain-text system.
10107
10108 This package is equivalent to org-plus-contrib, but only includes additional
10109 files that you would find in @file{contrib/} from the git repository.")))
10110
10111 (define-public emacs-ob-sclang
10112 (package
10113 (inherit emacs-org-contrib)
10114 (name "emacs-ob-sclang")
10115 (source
10116 (origin (inherit (package-source emacs-org-contrib))
10117 (modules '((guix build utils)))
10118 (snippet
10119 '(begin
10120 (for-each (lambda (file)
10121 (unless (equal? file "./ob-sclang.el")
10122 (delete-file file)))
10123 (find-files "." "\\.el"))
10124 #t))))
10125 (propagated-inputs
10126 `(("org" ,emacs-org)
10127 ("scel" ,emacs-scel)))
10128 (synopsis "Org Babel support for SuperCollider")
10129 (description "This package adds support for evaluating @code{sclang}
10130 Org mode source blocks. It is extracted from the @code{emacs-org-contrib}
10131 package.")))
10132
10133 (define-public emacs-org-edna
10134 (package
10135 (name "emacs-org-edna")
10136 (version "1.1.2")
10137 (source (origin
10138 (method bzr-fetch)
10139 (uri (bzr-reference
10140 (url "bzr://bzr.savannah.nongnu.org/org-edna-el")
10141 (revision version)))
10142 (file-name (string-append name "-" version "-checkout"))
10143 (sha256
10144 (base32
10145 "01dblddgx0yid5hrgl4swbr4grhv057kfbdy122wihzqpsrgq86n"))))
10146 (build-system emacs-build-system)
10147 (home-page "https://savannah.nongnu.org/projects/org-edna-el/")
10148 (synopsis "Manage Org task dependencies")
10149 (description "This package provides an extensible means of specifying
10150 conditions which must be fulfilled before a task can be completed and actions
10151 to take once it is. Org Edna runs when either the BLOCKER or TRIGGER
10152 properties are set on a heading, and when it is changing from a TODO state to
10153 a DONE state.")
10154 (license license:gpl3+)))
10155
10156 (define-public emacs-flx
10157 (package
10158 (name "emacs-flx")
10159 (version "0.6.1")
10160 (source
10161 (origin
10162 (method git-fetch)
10163 (uri (git-reference
10164 (url "https://github.com/lewang/flx")
10165 (commit (string-append "v" version))))
10166 (sha256
10167 (base32
10168 "0sjybrcnb2sl33swy3q664vqrparajcl0m455gciiih2j87hwadc"))
10169 (file-name (git-file-name name version))))
10170 (build-system emacs-build-system)
10171 (home-page "https://github.com/lewang/flx")
10172 (synopsis "Fuzzy matching for Emacs")
10173 (description
10174 "Flx provides fuzzy matching for emacs a la sublime text.
10175 The sorting algorithm is a balance between word beginnings (abbreviation)
10176 and contiguous matches (substring). The longer the substring match,
10177 the higher it scores. This maps well to how we think about matching.
10178 Flx has support for ido (interactively do things) through flx-ido.")
10179 (license license:gpl3+)))
10180
10181 (define-public emacs-cyberpunk-theme
10182 (package
10183 (name "emacs-cyberpunk-theme")
10184 (version "1.22")
10185 (source
10186 (origin
10187 (method git-fetch)
10188 (uri (git-reference
10189 (url "https://github.com/n3mo/cyberpunk-theme.el/")
10190 (commit version)))
10191 (sha256
10192 (base32
10193 "06nff38pcy5rgz13svkajsg0jjk73qy4a8m7p9f76yxcywxlgxlc"))
10194 (file-name (git-file-name name version))))
10195 (build-system emacs-build-system)
10196 (home-page "https://github.com/n3mo/cyberpunk-theme.el")
10197 (synopsis "Cyberpunk theme for Emacs built-in color theme support")
10198 (description
10199 "Cyberpunk color theme for the Emacs 24+ built-in color theme support
10200 known loosely as deftheme. Many mode-specific customizations are included.")
10201 (license license:gpl3+)))
10202
10203 (define-public emacs-danneskjold-theme
10204 (let* ((commit "8733d2fe8743e8a01826ea6d4430ef376c727e57")
10205 (revision "1"))
10206 (package
10207 (name "emacs-danneskjold-theme")
10208 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
10209 (home-page "https://github.com/rails-to-cosmos/danneskjold-theme")
10210 (source
10211 (origin
10212 (method git-fetch)
10213 (uri (git-reference
10214 (url home-page)
10215 (commit commit)))
10216 (file-name (git-file-name name version))
10217 (sha256
10218 (base32
10219 "0s6rbsb0y8i8m5b9xm4gw1p1cxsxdqnqxqqb638pygz9f76mbir1"))))
10220 (build-system emacs-build-system)
10221 (arguments
10222 `(#:phases
10223 (modify-phases %standard-phases
10224 (add-after 'unpack 'delete-screenshots
10225 (lambda _
10226 (delete-file-recursively "screenshots") #t)))))
10227 (synopsis "High-contrast Emacs theme")
10228 (description
10229 "@code{danneskjold-theme} is a high-contrast theme for Emacs.")
10230 (license license:gpl3+))))
10231
10232 (define-public emacs-dream-theme
10233 (let* ((commit "107a11d74365046f28a1802a2bdb5e69e4a7488b")
10234 (revision "1"))
10235 (package
10236 (name "emacs-dream-theme")
10237 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
10238 (source
10239 (origin
10240 (method git-fetch)
10241 (uri (git-reference
10242 (url "https://github.com/djcb/dream-theme")
10243 (commit commit)))
10244 (file-name (git-file-name name version))
10245 (sha256
10246 (base32
10247 "0za18nfkq4xqm35k6006vsixcbmvmxqgma4iw5sw37h8vmcsdylk"))))
10248 (build-system emacs-build-system)
10249 (home-page "https://github.com/djcb/dream-theme")
10250 (synopsis "High-contrast Emacs theme")
10251 (description
10252 "@code{dream-theme} is a dark, clean theme for Emacs. It is inspired
10253 by zenburn, sinburn and similar themes, but slowly diverging from them.")
10254 (license license:gpl3+))))
10255
10256 (define-public emacs-dracula-theme
10257 (package
10258 (name "emacs-dracula-theme")
10259 (version "1.7.0")
10260 (source
10261 (origin
10262 (method git-fetch)
10263 (uri (git-reference
10264 (url "https://github.com/dracula/emacs")
10265 (commit (string-append "v" version))))
10266 (file-name (git-file-name name version))
10267 (sha256
10268 (base32 "15y2djc5jljlvls1x9kp50m1kp0dcksmyixafsyimj66xpq9ngh0"))))
10269 (build-system emacs-build-system)
10270 (home-page "https://draculatheme.com/")
10271 (synopsis "Dark theme for Emacs")
10272 (description
10273 "Dracula is a dark color theme for many editors, shells and more. This
10274 package provides the Emacs theme.")
10275 (license license:expat)))
10276
10277 (define-public emacs-auto-complete
10278 (package
10279 (name "emacs-auto-complete")
10280 (version "1.5.1")
10281 (source
10282 (origin
10283 (method git-fetch)
10284 (uri (git-reference
10285 (url "https://github.com/auto-complete/auto-complete")
10286 (commit (string-append "v" version))))
10287 (sha256
10288 (base32
10289 "04i9b11iksg6acn885wl3qgi5xpsm3yszlqmd2x21yhprndlz7gb"))
10290 (file-name (git-file-name name version))))
10291 (build-system emacs-build-system)
10292 (propagated-inputs
10293 `(("emacs-popup" ,emacs-popup)))
10294 (home-page "https://github.com/auto-complete/auto-complete")
10295 (synopsis "Intelligent auto-completion extension for Emacs")
10296 (description
10297 "Auto-Complete is an intelligent auto-completion extension for Emacs.
10298 It extends the standard Emacs completion interface and provides an environment
10299 that allows users to concentrate more on their own work. Its features are:
10300 a visual interface, reduce overhead of completion by using statistic method,
10301 extensibility.")
10302 (license license:gpl3+)))
10303
10304 (define-public emacs-nginx-mode
10305 (package
10306 (name "emacs-nginx-mode")
10307 (version "1.1.9")
10308 (source
10309 (origin
10310 (method git-fetch)
10311 (uri (git-reference
10312 (url "https://github.com/ajc/nginx-mode")
10313 (commit (string-append "v" version))))
10314 (file-name (git-file-name name version))
10315 (sha256
10316 (base32 "17dh5pr3gh6adrbqx588gimxbb2fr7iv2qrxv6r48w2727l344xs"))))
10317 (build-system emacs-build-system)
10318 (home-page "https://github.com/ajc/nginx-mode")
10319 (synopsis "Emacs major mode for editing nginx config files")
10320 (description "This package provides an Emacs major mode for
10321 editing nginx config files.")
10322 (license license:gpl2+)))
10323
10324 (define-public emacs-stream
10325 (package
10326 (name "emacs-stream")
10327 (version "2.2.5")
10328 (source
10329 (origin
10330 (method url-fetch)
10331 (uri (string-append "https://elpa.gnu.org/packages/"
10332 "stream-" version ".tar"))
10333 (file-name (git-file-name name version))
10334 (sha256
10335 (base32 "00c3n4gyxzv7vczqms0d62kl8zsmjfyxa92mwxn2snyx857a9jfw"))))
10336 (build-system emacs-build-system)
10337 (home-page "http://elpa.gnu.org/packages/stream.html")
10338 (synopsis "Implementation of streams for Emacs")
10339 (description "This library provides an implementation of streams for Emacs.
10340 Streams are implemented as delayed evaluation of cons cells.")
10341 (license license:gpl3+)))
10342
10343 (define-public emacs-cl-print
10344 (let ((commit "1a70c553dfb04352afb5b8696fe0cef8acc8f991")
10345 (revision "1"))
10346 (package
10347 (name "emacs-cl-print")
10348 (version (git-version "1.0" revision commit))
10349 (source
10350 (origin
10351 (method git-fetch)
10352 (uri (git-reference
10353 (url "https://github.com/emacsmirror/cl-print")
10354 (commit commit)))
10355 (file-name (git-file-name name version))
10356 (sha256
10357 (base32 "164zbnsi5mssvcpy0158fm7fw5cmd1r5nkpn29fmd2b2scy3gm79"))))
10358 (build-system emacs-build-system)
10359 (home-page "https://github.com/emacsmirror/cl-print")
10360 (synopsis "CL-style generic printing")
10361 (description "This package provides a generic function,
10362 @code{cl-print-object}, to which the programmer can add any method they
10363 please.")
10364 (license license:gpl3+))))
10365
10366 (define-public emacs-el-search
10367 (let ((commit "07bed84dd8ae9e4c6c648834224b1d33fdbd51e0")
10368 (revision "2"))
10369 (package
10370 (name "emacs-el-search")
10371 (version (git-version "1.12.6.1" revision commit))
10372 (source
10373 (origin
10374 (method git-fetch)
10375 (uri (git-reference
10376 (url "https://github.com/emacsmirror/el-search")
10377 (commit commit)))
10378 (file-name (git-file-name name version))
10379 (sha256
10380 (base32 "10w1ldgijdhfsrazp0y3bm76jv5wvdn94k1yp0pmc2m1896b58ak"))))
10381 (build-system emacs-build-system)
10382 (inputs
10383 `(("emacs-stream" ,emacs-stream)
10384 ("emacs-cl-print" ,emacs-cl-print)))
10385 (home-page "https://github.com/emacsmirror/el-search")
10386 (synopsis "Expression based interactive search for emacs-lisp-mode")
10387 (description "This package provides expression based interactive search
10388 procedures for emacs-lisp-mode.")
10389 (license license:gpl3+))))
10390
10391 (define-public emacs-ht
10392 (package
10393 (name "emacs-ht")
10394 (version "2.2")
10395 (source
10396 (origin
10397 (method git-fetch)
10398 (uri (git-reference
10399 (url "https://github.com/Wilfred/ht.el")
10400 (commit version)))
10401 (file-name (git-file-name name version))
10402 (sha256
10403 (base32 "1p3qa7g0wa0wbviv2f8bda39cjys3naayk5xjm3nxxmqsyy8papx"))))
10404 (build-system emacs-build-system)
10405 (propagated-inputs `(("emacs-dash" ,emacs-dash)))
10406 (native-inputs
10407 `(("emacs-ert-runner" ,emacs-ert-runner)))
10408 (arguments
10409 `(#:tests? #t
10410 #:test-command '("ert-runner")))
10411 (home-page "https://github.com/Wilfred/ht.el")
10412 (synopsis "Hash table library for Emacs")
10413 (description
10414 "This package simplifies the use of hash tables in elisp. It also
10415 provides functions to convert hash tables from and to alists and plists.")
10416 (license license:gpl3+)))
10417
10418 (define-public emacs-log4e
10419 (package
10420 (name "emacs-log4e")
10421 (version "0.3.0")
10422 (source
10423 (origin
10424 (method git-fetch)
10425 (uri (git-reference
10426 (url "https://github.com/aki2o/log4e")
10427 (commit (string-append "v" version))))
10428 (file-name (git-file-name name version))
10429 (sha256
10430 (base32 "1l28n7a0v2zkknc70i1wn6qb5i21dkhfizzk8wcj28v44cgzk022"))))
10431 (build-system emacs-build-system)
10432 (arguments
10433 `(#:phases
10434 (modify-phases %standard-phases
10435 (add-after 'unpack 'remove-tests
10436 ;; Guile builder complains about null characters in some
10437 ;; strings of test files. Remove "test" directory (it is not
10438 ;; needed anyway).
10439 (lambda _
10440 (delete-file-recursively "test"))))))
10441 (home-page "https://github.com/aki2o/log4e")
10442 (synopsis "Logging framework for elisp")
10443 (description
10444 "This package provides a logging framework for elisp. It allows
10445 you to deal with multiple log levels.")
10446 (license license:gpl3+)))
10447
10448 (define-public emacs-gntp
10449 (package
10450 (name "emacs-gntp")
10451 (version "0.1")
10452 (source
10453 (origin
10454 (method git-fetch)
10455 (uri (git-reference
10456 (url "https://github.com/tekai/gntp.el")
10457 (commit (string-append "v" version))))
10458 (file-name (git-file-name name version))
10459 (sha256
10460 (base32 "1nvyjjjydrimpxy4cpg90si7sr8lmldbhlcm2mx8npklp9pn5y3a"))))
10461 (build-system emacs-build-system)
10462 (home-page "https://github.com/tekai/gntp.el")
10463 (synopsis "Growl Notification Protocol for Emacs")
10464 (description
10465 "This package implements the Growl Notification Protocol GNTP
10466 described at @uref{http://www.growlforwindows.com/gfw/help/gntp.aspx}.
10467 It is incomplete as it only lets you send but not receive
10468 notifications.")
10469 (license license:bsd-3)))
10470
10471 (define-public emacs-alert
10472 (package
10473 (name "emacs-alert")
10474 (version "1.3")
10475 (source
10476 (origin
10477 (method git-fetch)
10478 (uri (git-reference
10479 (url "https://github.com/jwiegley/alert")
10480 (commit (string-append "v" version))))
10481 (file-name (git-file-name name version))
10482 (sha256
10483 (base32 "0lc0p5cl4hfrzw1z2ghb11k1lvljn5m08jw5fmgwgxv667kwh49r"))))
10484 (build-system emacs-build-system)
10485 (propagated-inputs
10486 `(("emacs-gntp" ,emacs-gntp)
10487 ("emacs-log4e" ,emacs-log4e)))
10488 (home-page "https://github.com/jwiegley/alert")
10489 (synopsis "Growl-style notification system for Emacs")
10490 (description
10491 "Alert is a Growl-workalike for Emacs which uses a common notification
10492 interface and multiple, selectable \"styles\", whose use is fully
10493 customizable by the user.")
10494 (license license:gpl2+)))
10495
10496 (define-public emacs-zones
10497 (package
10498 (name "emacs-zones")
10499 (version "2019.7.13")
10500 (source
10501 (origin
10502 (method url-fetch)
10503 (uri (string-append "https://elpa.gnu.org/packages/"
10504 "zones-" version ".el"))
10505 (sha256
10506 (base32 "0qp1ba2pkqx9d35g7z8hf8qs2k455krf2a92l4rka3ipsbnmq5k1"))))
10507 (build-system emacs-build-system)
10508 (home-page "https://www.emacswiki.org/emacs/Zones")
10509 (synopsis "Define and act on multiple zones of buffer text")
10510 (description
10511 "Library @file{zones.el} lets you easily define and subsequently act on
10512 multiple zones of buffer text. You can think of this as enlarging the notion
10513 of region. In effect, it can remove the requirement of target text being
10514 a contiguous sequence of characters. A set of buffer zones is, in effect,
10515 a (typically) noncontiguous set of text.")
10516 (license license:gpl3+)))
10517
10518 (define-public emacs-mu4e-alert
10519 (package
10520 (name "emacs-mu4e-alert")
10521 (version "1.0")
10522 (source
10523 (origin
10524 (method git-fetch)
10525 (uri (git-reference
10526 (url "https://github.com/iqbalansari/mu4e-alert")
10527 (commit (string-append "v" version))))
10528 (file-name (git-file-name name version))
10529 (sha256
10530 (base32 "1nvsfbfsma59ilf7c3vjngnmx3aapwvvvaafdy5szm5r6lkicqvg"))))
10531 (build-system emacs-build-system)
10532 (propagated-inputs
10533 `(("emacs-alert" ,emacs-alert)
10534 ("emacs-s" ,emacs-s)
10535 ("emacs-ht" ,emacs-ht)
10536 ("mu" ,mu)))
10537 (home-page "https://github.com/iqbalansari/mu4e-alert")
10538 (synopsis "Desktop notification for mu4e")
10539 (description
10540 "This package provides desktop notifications for mu4e.
10541 Additionally it can display the number of unread emails in the
10542 mode-line.")
10543 (license license:gpl3+)))
10544
10545 (define-public emacs-mu4e-jump-to-list
10546 (let ((commit "358bba003543b49ffa266e503e54aebd0ebe614b")
10547 (revision "1"))
10548 (package
10549 (name "emacs-mu4e-jump-to-list")
10550 (version (git-version "1.0" revision commit))
10551 (source
10552 (origin
10553 (method git-fetch)
10554 (uri (git-reference
10555 (url "https://gitlab.com/wavexx/mu4e-jump-to-list.el.git")
10556 (commit commit)))
10557 (file-name (git-file-name name version))
10558 (sha256
10559 (base32
10560 "00y9nap61q1z2cdql4k9g7fgi2gdgd9iy5s5lzrd9a4agbx6r7sv"))))
10561 (build-system emacs-build-system)
10562 (propagated-inputs
10563 `(("mu" ,mu)))
10564 (home-page "https://gitlab.com/wavexx/mu4e-jump-to-list.el")
10565 (synopsis "Select and view mailing lists in mu4e")
10566 (description
10567 "@code{mu4e-jump-to-list} allows you to select and view mailing lists
10568 automatically using existing List-ID headers in your mu database. Just press
10569 \"l\" in the headers view and any mailing list you've subscribed to will be
10570 automatically discovered and presented in recency order.")
10571 (license license:gpl3+))))
10572
10573 (define-public emacs-mu4e-patch
10574 (let ((commit "522da46c1653b1cacc79cde91d6534da7ae9517d")
10575 (revision "1"))
10576 (package
10577 (name "emacs-mu4e-patch")
10578 (version (git-version "0.1.0" revision commit))
10579 (source (origin
10580 (method git-fetch)
10581 (uri (git-reference
10582 (url "https://github.com/seanfarley/mu4e-patch")
10583 (commit commit)))
10584 (file-name (git-file-name name version))
10585 (sha256
10586 (base32
10587 "10lzf3b70pk6rzdrgx0ww0gc94v0ydh9zj1gbsa20xw27ds7hmfn"))))
10588 (build-system emacs-build-system)
10589 (propagated-inputs
10590 `(("mu" ,mu)))
10591 (home-page "https://github.com/seanfarley/mu4e-patch")
10592 (synopsis "Colorize patch-like emails in mu4e")
10593 (description
10594 "Extension for mu4e to colorize patch-like emails with diff-mode.
10595 This is based on Frank Terbeck's @code{gnus-article-treat-patch.el} but has
10596 been adapted to work with mu4e.")
10597 (license license:gpl3+))))
10598
10599 (define-public emacs-pretty-mode
10600 (package
10601 (name "emacs-pretty-mode")
10602 (version "2.0.3")
10603 (source
10604 (origin
10605 (method git-fetch)
10606 (uri (git-reference
10607 (url "https://github.com/akatov/pretty-mode/")
10608 (commit version)))
10609 (file-name (git-file-name name version))
10610 (sha256
10611 (base32
10612 "013fig9i4fyx16krp2vfv953p3rwdzr38zs6i50af4pqz4vrcfvh"))))
10613 (build-system emacs-build-system)
10614 (home-page "https://github.com/akatov/pretty-mode")
10615 (synopsis "Redisplay parts of the buffer as Unicode symbols")
10616 (description
10617 "Emacs minor mode for redisplaying parts of the buffer as pretty symbols.")
10618 (license license:gpl3+)))
10619
10620 (define-public emacs-yasnippet
10621 (package
10622 (name "emacs-yasnippet")
10623 (version "0.14.0")
10624 (source
10625 (origin
10626 (method git-fetch)
10627 (uri (git-reference
10628 (url "https://github.com/joaotavora/yasnippet")
10629 (commit version)))
10630 (file-name (git-file-name name version))
10631 (sha256
10632 (base32 "0via9dzw8m5lzymg1h78xkwjssh39zr3g6ccyamlf1rjzjsyxknv"))))
10633 (build-system emacs-build-system)
10634 (arguments
10635 `(#:tests? #t
10636 #:test-command '("emacs" "--batch"
10637 "-l" "yasnippet-tests.el"
10638 "-f" "ert-run-tests-batch-and-exit")
10639 #:phases
10640 (modify-phases %standard-phases
10641 ;; Set HOME, otherwise test-rebindings fails.
10642 (add-before 'check 'set-home
10643 (lambda _
10644 (setenv "HOME" (getcwd))
10645 #t)))))
10646 (home-page "https://github.com/joaotavora/yasnippet")
10647 (synopsis "Yet another snippet extension for Emacs")
10648 (description "YASnippet is a template system for Emacs. It allows you to
10649 type an abbreviation and automatically expand it into function templates.")
10650 (license license:gpl3+)))
10651
10652 (define-public emacs-yasnippet-snippets
10653 (package
10654 (name "emacs-yasnippet-snippets")
10655 (version "0.23")
10656 (source
10657 (origin
10658 (method git-fetch)
10659 (uri (git-reference
10660 (url "https://github.com/AndreaCrotti/yasnippet-snippets")
10661 (commit version)))
10662 (file-name (git-file-name name version))
10663 (sha256
10664 (base32 "18pcnjnqvcky6i49p38vy3ms5xiisn27vy47pc3vsgr3r2n87mqb"))))
10665 (build-system trivial-build-system)
10666 (arguments
10667 `(#:modules ((guix build utils))
10668 #:builder
10669 (begin
10670 (use-modules (guix build utils))
10671 (let* ((source (assoc-ref %build-inputs "source"))
10672 (out (assoc-ref %outputs "out"))
10673 (snippet-dir
10674 (string-append out "/share/emacs/yasnippet-snippets/")))
10675 (with-directory-excursion source
10676 (mkdir-p snippet-dir)
10677 (copy-recursively "snippets" snippet-dir)))
10678 #t)))
10679 (home-page "https://github.com/AndreaCrotti/yasnippet-snippets")
10680 (synopsis "Collection of YASnippet snippets for many languages")
10681 (description
10682 "Provides Andrea Crotti's collection of YASnippet snippets. After installation,
10683 the snippets will be in \"~/.guix-profile/share/emacs/yasnippet-snippets/\".
10684 To make YASnippet aware of these snippets, add the above directory to
10685 @code{yas-snippet-dirs}.")
10686 (license license:gpl3+)))
10687
10688 (define-public emacs-helm-c-yasnippet
10689 (let ((commit "65ca732b510bfc31636708aebcfe4d2d845b59b0")
10690 (revision "1"))
10691 (package
10692 (name "emacs-helm-c-yasnippet")
10693 (version (string-append "0.6.7" "-" revision "."
10694 (string-take commit 7)))
10695 (source (origin
10696 (method git-fetch)
10697 (uri (git-reference
10698 (url "https://github.com/emacs-jp/helm-c-yasnippet")
10699 (commit commit)))
10700 (file-name (git-file-name name version))
10701 (sha256
10702 (base32
10703 "1cbafjqlzxbg19xfdqsinsh7afq58gkf44rsg1qxfgm8g6zhr7f8"))))
10704 (build-system emacs-build-system)
10705 (propagated-inputs
10706 `(("emacs-helm" ,emacs-helm)
10707 ("emacs-yasnippet" ,emacs-yasnippet)))
10708 (home-page "https://github.com/emacs-jp/helm-c-yasnippet")
10709 (synopsis "Helm integration for Yasnippet")
10710 (description "This Emacs library provides Helm interface for
10711 Yasnippet.")
10712 (license license:gpl2+))))
10713
10714 (define-public emacs-helm-system-packages
10715 (package
10716 (name "emacs-helm-system-packages")
10717 (version "1.10.2")
10718 (source (origin
10719 (method git-fetch)
10720 (uri (git-reference
10721 (url "https://github.com/emacs-helm/helm-system-packages")
10722 (commit (string-append "v" version))))
10723 (file-name (git-file-name name version))
10724 (sha256
10725 (base32
10726 "13a8jpj4wwm0yjv8hnsizgjf8wi3r2ap87lyvw7g4c7snp2dydwa"))))
10727 (build-system emacs-build-system)
10728 (inputs
10729 `(("recutils" ,recutils)))
10730 (propagated-inputs
10731 `(("emacs-helm" ,emacs-helm)))
10732 (arguments
10733 `(#:phases
10734 (modify-phases %standard-phases
10735 (add-after 'unpack 'configure
10736 (lambda* (#:key inputs outputs #:allow-other-keys)
10737 (let ((recutils (assoc-ref inputs "recutils")))
10738 ;; Specify the absolute file names of the various
10739 ;; programs so that everything works out-of-the-box.
10740 (substitute* "helm-system-packages-guix.el"
10741 (("recsel") (string-append recutils "/bin/recsel")))))))))
10742 (home-page "https://github.com/emacs-helm/helm-system-packages")
10743 (synopsis "Helm System Packages is an interface to your package manager")
10744 (description "List all available packages in Helm (with installed
10745 packages displayed in their own respective face). Fuzzy-search, mark and
10746 execute the desired action over any selections of packages: Install,
10747 uninstall, display packages details (in Org Mode) or insert details at point,
10748 find files owned by packages... And much more, including performing all the
10749 above over the network.")
10750 (license license:gpl3+)))
10751
10752 (define-public emacs-helm-org-rifle
10753 (package
10754 (name "emacs-helm-org-rifle")
10755 (version "1.7.0")
10756 (source
10757 (origin
10758 (method git-fetch)
10759 (uri (git-reference
10760 (url "https://github.com/alphapapa/helm-org-rifle")
10761 (commit version)))
10762 (file-name (git-file-name name version))
10763 (sha256
10764 (base32
10765 "058zvh7cdall7dl3xay9ibcjvs13fbqp8fli3lz980pinmsds3r2"))))
10766 (build-system emacs-build-system)
10767 (propagated-inputs
10768 `(("emacs-dash" ,emacs-dash)
10769 ("emacs-f" ,emacs-f)
10770 ("emacs-helm" ,emacs-helm)
10771 ("emacs-org" ,emacs-org)
10772 ("emacs-s" ,emacs-s)))
10773 (home-page "https://github.com/alphapapa/helm-org-rifle")
10774 (synopsis "Rifle through Org files")
10775 (description "This package searches both headings and contents of entries
10776 in Org buffers and displays matching entries.")
10777 (license license:gpl3+)))
10778
10779 (define-public emacs-dired-git-info
10780 ;; Upstream has no proper release. The base version is extracted from the
10781 ;; "Version" keyword in the main file.
10782 (let ((commit "91d57e3a4c5104c66a3abc18e281ee55e8979176")
10783 (revision "0"))
10784 (package
10785 (name "emacs-dired-git-info")
10786 (version (git-version "0.3.1" revision commit))
10787 (source
10788 (origin
10789 (method git-fetch)
10790 (uri
10791 (git-reference
10792 (url "https://github.com/clemera/dired-git-info")
10793 (commit commit)))
10794 (file-name (git-file-name name version))
10795 (sha256
10796 (base32 "1dr4iv95s4barxxj56znqkl9z0lg5jw731jmjr01s6vn8ar69gik"))))
10797 (build-system emacs-build-system)
10798 (home-page "https://github.com/clemera/dired-git-info/")
10799 (synopsis "Show git info in Emacs Dired")
10800 (description "This Emacs package provides a minor mode which shows git
10801 information inside the Dired buffer.")
10802 (license license:gpl3+))))
10803
10804 (define-public emacs-dired-toggle-sudo
10805 (let ((commit "13bbe52c54893f5aa3e56228450ffdd0c9e1d169")
10806 (revision "0"))
10807 (package
10808 (name "emacs-dired-toggle-sudo")
10809 (version (git-version "1.0" revision commit))
10810 (source
10811 (origin
10812 (method git-fetch)
10813 (uri (git-reference
10814 (url "https://github.com/renard/dired-toggle-sudo")
10815 (commit commit)))
10816 (file-name (git-file-name name version))
10817 (sha256
10818 (base32
10819 "1fw1pb1z6krqd1pfxxhr6rrfr9ckkcb0zsjzbjk0i2i1q5cg6car"))))
10820 (build-system emacs-build-system)
10821 (home-page "https://github.com/renard/dired-toggle-sudo")
10822 (synopsis "Browse directory with @code{sudo} privileges")
10823 (description "This package allows for the use of @code{dired} with
10824 @code{sudo} privileges.")
10825 (license license:wtfpl2))))
10826
10827 (define-public emacs-diredfl
10828 (package
10829 (name "emacs-diredfl")
10830 (version "0.4")
10831 (source
10832 (origin
10833 (method git-fetch)
10834 (uri
10835 (git-reference
10836 (url "https://github.com/purcell/diredfl")
10837 (commit version)))
10838 (file-name (git-file-name name version))
10839 (sha256
10840 (base32 "1zb2lz7rp58zqvpniqcsmqabi7nqg2d8bfd0hgmq68bn2hd25b5z"))))
10841 (build-system emacs-build-system)
10842 (home-page "https://github.com/purcell/diredfl/")
10843 (synopsis "Extra Emacs font lock rules for a more colourful Dired")
10844 (description "This library enables additional font locking in Dired mode.
10845 This is adapted from the extra font lock rules provided by Drew Adams' Dired+
10846 package.")
10847 (license license:gpl3+)))
10848
10849 (define-public emacs-memoize
10850 (package
10851 (name "emacs-memoize")
10852 (version "1.1")
10853 (source
10854 (origin
10855 (method git-fetch)
10856 (uri (git-reference
10857 (url "https://github.com/skeeto/emacs-memoize")
10858 (commit version)))
10859 (file-name (git-file-name name version))
10860 (sha256
10861 (base32 "04qgnlg4x6va7x364dhj1wbjmz8p5iq2vk36mn9198k2vxmijwzk"))))
10862 (build-system emacs-build-system)
10863 (arguments
10864 `(#:tests? #t
10865 #:test-command '("emacs" "--batch"
10866 "-l" "memoize-test.el"
10867 "-f" "ert-run-tests-batch-and-exit")))
10868 (home-page "https://github.com/skeeto/emacs-memoize")
10869 (synopsis "Emacs lisp memoization library")
10870 (description "@code{emacs-memoize} is an Emacs library for
10871 memoizing functions.")
10872 (license license:unlicense)))
10873
10874 (define-public emacs-linum-relative
10875 (package
10876 (name "emacs-linum-relative")
10877 (version "0.6")
10878 (source
10879 (origin
10880 (method git-fetch)
10881 (uri (git-reference
10882 (url "https://github.com/coldnew/linum-relative")
10883 (commit version)))
10884 (file-name (git-file-name name version))
10885 (sha256
10886 (base32 "0b3n1gk2w1p72x0zfdz9l70winq2fnjpjrgq0awxx730xk7ypp5n"))))
10887 (build-system emacs-build-system)
10888 (home-page "https://github.com/coldnew/linum-relative")
10889 (synopsis "Relative line numbering for Emacs")
10890 (description "@code{emacs-linum-relative} displays the relative line
10891 number on the left margin in Emacs.")
10892 (license license:gpl2+)))
10893
10894 (define-public emacs-idle-highlight
10895 (package
10896 (name "emacs-idle-highlight")
10897 (version "1.1.3")
10898 (source
10899 (origin
10900 (method git-fetch)
10901 (uri (git-reference
10902 (url "https://github.com/nonsequitur/idle-highlight-mode")
10903 (commit version)))
10904 (file-name (git-file-name name version))
10905 (sha256
10906 (base32 "0x4w1ksrw7dicl84zpf4d4scg672dyan9g95jkn6zvri0lr8xciv"))))
10907 (build-system emacs-build-system)
10908 (home-page "https://www.emacswiki.org/emacs/IdleHighlight")
10909 (synopsis "Highlights all occurrences of the word the point is on")
10910 (description
10911 "This Emacs package provides @code{idle-highlight-mode} that sets
10912 an idle timer to highlight all occurrences in the buffer of the word under
10913 the point.")
10914 (license license:gpl3+)))
10915
10916 (define-public emacs-ox-twbs
10917 (package
10918 (name "emacs-ox-twbs")
10919 (version "1.1.1")
10920 (source
10921 (origin
10922 (method git-fetch)
10923 (uri (git-reference
10924 (url "https://github.com/marsmining/ox-twbs")
10925 (commit (string-append "v" version))))
10926 (file-name (git-file-name name version))
10927 (sha256
10928 (base32 "0kd45p8y7ykadmai4jn1x1pgpafyqggwb1ccbjzalxw4k9wmd45f"))))
10929 (build-system emacs-build-system)
10930 (home-page "https://github.com/marsmining/ox-twbs")
10931 (synopsis "Export org-mode docs as HTML compatible with Twitter Bootstrap")
10932 (description
10933 "This Emacs package outputs your org-mode docs with a simple, clean and
10934 modern look. It implements a new HTML back-end for exporting org-mode docs as
10935 HTML compatible with Twitter Bootstrap. By default, HTML is exported with
10936 jQuery and Bootstrap resources included via osscdn.")
10937 (license license:gpl3+)))
10938
10939 (define-public emacs-highlight-sexp
10940 (package
10941 (name "emacs-highlight-sexp")
10942 (version "1.0")
10943 (source
10944 (origin
10945 (method git-fetch)
10946 (uri (git-reference
10947 (url "https://github.com/daimrod/highlight-sexp")
10948 (commit (string-append "v" version))))
10949 (file-name (git-file-name name version))
10950 (sha256
10951 (base32 "12cyk2q5g6p4ac2hykw1cag7dp1prjjnck5f7nalwwaklmy62y79"))))
10952 (build-system emacs-build-system)
10953 (home-page "https://github.com/daimrod/highlight-sexp")
10954 (synopsis "Minor mode that highlights the s-exp at the current position")
10955 (description
10956 "This Emacs package highlights the s-exp at the current position.")
10957 (license license:gpl3+)))
10958
10959 (define-public emacs-highlight-stages
10960 (let ((commit "29cbc5b78261916da042ddb107420083da49b271")
10961 (revision "1"))
10962 (package
10963 (name "emacs-highlight-stages")
10964 (version (string-append "1.1.0" "-" revision "." (string-take commit 7)))
10965 (source
10966 (origin
10967 (method git-fetch)
10968 (uri (git-reference
10969 (url "https://github.com/zk-phi/highlight-stages")
10970 (commit commit)))
10971 (file-name (git-file-name name version))
10972 (sha256
10973 (base32
10974 "0r6nbcrr0dqpgm8dir8ahzjy7rw4nrac48byamzrq96r7ajlxlv0"))
10975 (patches
10976 (search-patches "emacs-highlight-stages-add-gexp.patch"))))
10977 (build-system emacs-build-system)
10978 (home-page "https://github.com/wigust/highlight-stages")
10979 (synopsis "Minor mode that highlights (quasi-quoted) expressions")
10980 (description "@code{highlight-stages} provides an Emacs minor mode that
10981 highlights quasi-quoted expressions.")
10982 (license license:gpl3+))))
10983
10984 (define-public emacspeak
10985 (package
10986 (name "emacspeak")
10987 (version "52.0")
10988 (source
10989 (origin
10990 (method url-fetch)
10991 (uri (string-append
10992 "https://github.com/tvraman/emacspeak/releases/download/"
10993 version "/emacspeak-" version ".tar.bz2"))
10994 (sha256
10995 (base32 "0x5b0s38r5ih2lk7f5hasi9arrgxlmmq5jaddadbxi8in2gw2jzl"))))
10996 (build-system gnu-build-system)
10997 (arguments
10998 '(#:make-flags (list (string-append "prefix="
10999 (assoc-ref %outputs "out")))
11000 #:phases
11001 (modify-phases %standard-phases
11002 (add-after 'unpack 'delete-broken-symlink
11003 (lambda _
11004 (delete-file "lisp/sudoku.el")
11005 #t))
11006 (replace 'configure
11007 (lambda _
11008 (setenv "SHELL" (which "sh"))
11009 ;; Configure Emacspeak according to etc/install.org.
11010 (invoke "make" "config")))
11011 (add-after 'build 'build-espeak
11012 (lambda _
11013 (invoke "make" "espeak")))
11014 (replace 'install
11015 (lambda* (#:key inputs outputs #:allow-other-keys)
11016 (let* ((out (assoc-ref outputs "out"))
11017 (bin (string-append out "/bin"))
11018 (lisp (string-append out "/share/emacs/site-lisp/emacspeak"))
11019 (info (string-append out "/share/info"))
11020 (emacs (string-append (assoc-ref inputs "emacs")
11021 "/bin/emacs")))
11022 ;; According to etc/install.org, the Emacspeak directory should
11023 ;; be copied to its installation destination.
11024 (for-each
11025 (lambda (file)
11026 (copy-recursively file (string-append lisp "/" file)))
11027 '("etc" "info" "js" "lisp" "media" "servers" "sounds"
11028 "stumpwm" "xsl"))
11029 ;; Make sure emacspeak is loaded from the correct directory.
11030 (substitute* "run"
11031 (("\\./lisp/emacspeak-setup.el")
11032 (string-append lisp "/lisp/emacspeak-setup.el")))
11033 ;; Install the convenient startup script.
11034 (mkdir-p bin)
11035 (copy-file "run" (string-append bin "/emacspeak")))
11036 #t))
11037 (add-after 'install 'wrap-program
11038 (lambda* (#:key inputs outputs #:allow-other-keys)
11039 (let* ((out (assoc-ref outputs "out"))
11040 (emacspeak (string-append out "/bin/emacspeak"))
11041 (espeak (string-append (assoc-ref inputs "espeak")
11042 "/bin/espeak")))
11043 ;; The environment variable DTK_PROGRAM tells emacspeak what
11044 ;; program to use for speech.
11045 (wrap-program emacspeak
11046 `("DTK_PROGRAM" ":" prefix (,espeak)))
11047 #t))))
11048 #:tests? #f)) ; no check target
11049 (inputs
11050 `(("emacs" ,emacs)
11051 ("espeak" ,espeak-ng)
11052 ("perl" ,perl)
11053 ("tcl" ,tcl)
11054 ("tclx" ,tclx)))
11055 (home-page "http://emacspeak.sourceforge.net")
11056 (synopsis "Audio desktop interface for Emacs")
11057 (description
11058 "Emacspeak is a speech interface that allows visually impaired users to
11059 interact independently and efficiently with the computer. Audio
11060 formatting---a technique pioneered by AsTeR---and full support for W3C's Aural
11061 CSS (ACSS) allows Emacspeak to produce rich aural presentations of electronic
11062 information. By seamlessly blending all aspects of the Internet such as
11063 Web-surfing and messaging, Emacspeak speech-enables local and remote
11064 information via a consistent and well-integrated user interface.")
11065 (license license:gpl2+)))
11066
11067 (define-public emacs-adaptive-wrap
11068 (package
11069 (name "emacs-adaptive-wrap")
11070 (version "0.7")
11071 (source
11072 (origin
11073 (method url-fetch)
11074 (uri (string-append "https://elpa.gnu.org/packages/"
11075 "adaptive-wrap-" version ".el"))
11076 (sha256
11077 (base32 "10fb8gzvkbnrgzv28n1rczs03dvapr7rvi0kd73j6yf1zg2iz6qp"))))
11078 (build-system emacs-build-system)
11079 (home-page "https://elpa.gnu.org/packages/adaptive-wrap.html")
11080 (synopsis "Smart line-wrapping with wrap-prefix")
11081 (description
11082 "This Emacs package provides the @code{adaptive-wrap-prefix-mode}
11083 minor mode which sets the wrap-prefix property on the fly so that
11084 single-long-line paragraphs get word-wrapped in a way similar to what
11085 you'd get with @kbd{M-q} using @code{adaptive-fill-mode}, but without
11086 actually changing the buffer's text.")
11087 (license license:gpl3+)))
11088
11089 (define-public emacs-diff-hl
11090 (package
11091 (name "emacs-diff-hl")
11092 (version "1.8.7")
11093 (source
11094 (origin
11095 (method git-fetch)
11096 (uri (git-reference
11097 (url "https://github.com/dgutov/diff-hl")
11098 (commit version)))
11099 (file-name (git-file-name name version))
11100 (sha256
11101 (base32 "0i7x6qgr3nydcwhw72sbc8z9x9dfhgkf0dqj9nakvx36vn1bblbq"))))
11102 (build-system emacs-build-system)
11103 (home-page "https://github.com/dgutov/diff-hl")
11104 (synopsis
11105 "Highlight uncommitted changes using VC")
11106 (description
11107 "@code{diff-hl-mode} highlights uncommitted changes on the side of the
11108 window (using the fringe, by default), allows you to jump between
11109 the hunks and revert them selectively.")
11110 (license license:gpl3+)))
11111
11112 (define-public emacs-diminish
11113 (package
11114 (name "emacs-diminish")
11115 (version "0.45")
11116 (source
11117 (origin
11118 (method git-fetch)
11119 (uri (git-reference
11120 (url "https://github.com/myrjola/diminish.el")
11121 (commit (string-append "v" version))))
11122 (file-name (git-file-name name version))
11123 (sha256
11124 (base32 "0qpgfgp8hrzz4vdifxq8h25n0a0jlzgf7aa1fpy6r0080v5rqbb6"))))
11125 (build-system emacs-build-system)
11126 (home-page "https://github.com/myrjola/diminish.el")
11127 (synopsis "Diminish minor modes with no modeline display")
11128 (description "@code{emacs-diminish} implements hiding or
11129 abbreviation of the mode line displays (lighters) of minor modes.")
11130 (license license:gpl2+)))
11131
11132 (define-public emacs-use-package
11133 (package
11134 (name "emacs-use-package")
11135 (version "2.4.1")
11136 (source (origin
11137 (method git-fetch)
11138 (uri (git-reference
11139 (url "https://github.com/jwiegley/use-package")
11140 (commit version)))
11141 (file-name (git-file-name name version))
11142 (sha256
11143 (base32
11144 "088kl3bml0rs5bkfymgzr15ram9qvy66h1kaisrbkynh0yxvf8g9"))))
11145 (build-system emacs-build-system)
11146 (native-inputs
11147 `(("texinfo" ,texinfo)))
11148 (propagated-inputs
11149 `(("emacs-diminish" ,emacs-diminish)))
11150 (arguments
11151 `(#:tests? #t
11152 #:test-command '("emacs" "--batch"
11153 "-l" "use-package-tests.el"
11154 "-f" "ert-run-tests-batch-and-exit")
11155 #:phases
11156 (modify-phases %standard-phases
11157 (add-before 'install 'install-manual
11158 (lambda* (#:key outputs #:allow-other-keys)
11159 (let* ((out (assoc-ref outputs "out"))
11160 (info-dir (string-append out "/share/info")))
11161 (mkdir-p info-dir)
11162 (install-file "use-package.info" info-dir)
11163 #t)))
11164 (add-before 'install-manual 'build-manual
11165 (lambda _
11166 (invoke "makeinfo" "use-package.texi")
11167 #t)))))
11168 (home-page "https://github.com/jwiegley/use-package")
11169 (synopsis "Declaration for simplifying your .emacs")
11170 (description "The use-package macro allows you to isolate package
11171 configuration in your @file{.emacs} file in a way that is both
11172 performance-oriented and tidy.")
11173 (license license:gpl2+)))
11174
11175 (define-public emacs-leaf
11176 (package
11177 (name "emacs-leaf")
11178 (version "4.3.2")
11179 (source
11180 (origin
11181 (method url-fetch)
11182 (uri (string-append "https://elpa.gnu.org/packages/"
11183 "leaf-" version ".tar"))
11184 (sha256
11185 (base32 "190sfnnii9jnj8amjkdabd8w9k2xyalhg4h488a5gzjxdzz2s6zi"))))
11186 (build-system emacs-build-system)
11187 (home-page "https://github.com/conao3/leaf.el")
11188 (synopsis "Simplify your init.el configuration, extended use-package")
11189 (description
11190 "This package provides macros that allows you to declaratively configure
11191 settings typical of an Elisp package with various keywords. The syntax is
11192 similar, but not identical to use-package -- overall, leaf aims at a cleaner
11193 and more predictable implementation.")
11194 (license license:agpl3+)))
11195
11196 (define-public emacs-strace-mode
11197 (let* ((commit "6a69b4b06db6797af56f33eda5cb28af94e59f11")
11198 (revision "1"))
11199 (package
11200 (name "emacs-strace-mode")
11201 (version (string-append "0.0.2-" revision "." (string-take commit 7)))
11202 (source (origin
11203 (method git-fetch)
11204 (uri (git-reference
11205 (url "https://github.com/pkmoore/strace-mode")
11206 (commit commit)))
11207 (file-name (git-file-name name version))
11208 (sha256
11209 (base32
11210 "1lbk2kzdznf2bkfazizfbimaxxzfzv00lrz1ran9dc2zqbc0bj9f"))))
11211 (build-system emacs-build-system)
11212 (home-page "https://github.com/pkmoore/strace-mode")
11213 (synopsis "Emacs major mode to highlight strace outputs")
11214 (description "@code{emacs-strace-mode} provides an Emacs major mode
11215 highlighting strace outputs.")
11216 (license license:gpl3+))))
11217
11218 (define-public emacs-default-encrypt
11219 (package
11220 (name "emacs-default-encrypt")
11221 (version "4.4")
11222 (source
11223 (origin
11224 (method url-fetch)
11225 (uri (string-append
11226 "https://informationelle-selbstbestimmung-im-internet.de"
11227 "/emacs/jl-encrypt" version "/jl-encrypt.el"))
11228 (file-name (string-append "jl-encrypt-" version ".el"))
11229 (sha256
11230 (base32
11231 "0w9ggz075j1zwg7d0rv9k8238g600p7czfnnsnawswi7yps2xk78"))))
11232 (build-system emacs-build-system)
11233 (home-page
11234 "https://informationelle-selbstbestimmung-im-internet.de/Emacs.html")
11235 (synopsis "Automatically encrypt or sign Gnus messages in Emacs")
11236 (description
11237 "DefaultEncrypt is designed to be used with Gnus in Emacs. It
11238 automatically encrypts messages that you send (e.g., email) when public keys
11239 for all recipients are available, and it protects you from accidentally
11240 sending un-encrypted messages. It can also be configured to automatically
11241 sign messages that you send. For details and instructions on how to use
11242 DefaultEncrypt, please refer to the home page or read the comments in the
11243 source file, @file{jl-encrypt.el}.")
11244 (license license:gpl3+)))
11245
11246 (define-public emacs-extend-smime
11247 (package
11248 (name "emacs-extend-smime")
11249 (version "3.3")
11250 (source
11251 (origin
11252 (method url-fetch)
11253 (uri (string-append
11254 "https://informationelle-selbstbestimmung-im-internet.de"
11255 "/emacs/jl-smime" version "/jl-smime.el"))
11256 (file-name (string-append "jl-smime-" version ".el"))
11257 (sha256
11258 (base32
11259 "1iv8s2wjmv3v5qfwlcy9hvvrmxxvp3f8m1krlr789q7bbh35jynh"))))
11260 (build-system emacs-build-system)
11261 (home-page
11262 "https://informationelle-selbstbestimmung-im-internet.de/Emacs.html")
11263 (synopsis "Improved S/MIME support for Gnus in Emacs")
11264 (propagated-inputs
11265 `(("emacs-default-encrypt" ,emacs-default-encrypt)))
11266 (description
11267 ;; TRANSLATORS: ExtendSMIME, DefaultEncrypt, and emacs-default-encrypt
11268 ;; should not be translated. The name "emacs-default-encrypt" refers to
11269 ;; the Guix package that provides DefaultEncrypt.
11270 "ExtendSMIME is designed to be used with Gnus in Emacs. It enhances
11271 DefaultEncrypt (emacs-default-encrypt) to support S/MIME (Secure/Multipurpose
11272 Internet Mail Extensions) via LDAP (Lightweight Directory Access Protocol).
11273 Before a message (e.g., email) is sent, ExtendSMIME searches for missing
11274 certificates via LDAP and imports them into @code{gpgsm}. When certificates
11275 for all recipients are available, DefaultEncrypt automatically encrypts the
11276 message. For details and instructions on how to use ExtendSMIME, please refer
11277 to the home page or read the comments in the source file,
11278 @file{jl-smime.el}.")
11279 (license license:gpl3+)))
11280
11281 (define-public emacs-htmlize
11282 (package
11283 (name "emacs-htmlize")
11284 (version "1.55")
11285 (source
11286 (origin
11287 (method git-fetch)
11288 (uri (git-reference
11289 (url "https://github.com/hniksic/emacs-htmlize")
11290 (commit (string-append "release/" version))))
11291 (file-name (git-file-name name version))
11292 (sha256
11293 (base32 "0gi3xshscpa53qrj8yplfsqahcilc2ybcc2p7gnh5nbnf2n1n97x"))))
11294 (build-system emacs-build-system)
11295 (home-page "https://github.com/hniksic/emacs-htmlize")
11296 (synopsis "Convert buffer text and decorations to HTML")
11297 (description "@code{emacs-htmlize} converts the buffer text and
11298 the associated decorations to HTML. Output to CSS, inline CSS and
11299 fonts is supported.")
11300 (license license:gpl2+)))
11301
11302 (define-public emacs-xmlgen
11303 (package
11304 (name "emacs-xmlgen")
11305 (version "0.5")
11306 (source
11307 (origin
11308 (method git-fetch)
11309 (uri (git-reference
11310 (url "https://github.com/philjackson/xmlgen")
11311 (commit version)))
11312 (file-name (git-file-name name version))
11313 (sha256
11314 (base32 "096i29v0badx0a6339h9ckdz78zj59gbjdp7vj7vhkq9d830392s"))))
11315 (build-system emacs-build-system)
11316 (arguments
11317 `(#:tests? #t
11318 #:test-command '("emacs" "--batch"
11319 "-l" "xmlgen-test.el"
11320 "-f" "ert-run-tests-batch-and-exit")))
11321 (home-page "https://github.com/philjackson/xmlgen")
11322 (synopsis "S-expression to XML domain specific language (DSL) in
11323 Emacs Lisp")
11324 (description "@code{emacs-xmlgen} provides S-expression to XML
11325 conversion for Emacs Lisp.")
11326 (license license:gpl2+)))
11327
11328 (define-public emacs-cdlatex
11329 (package
11330 (name "emacs-cdlatex")
11331 (version "4.7")
11332 (source
11333 (origin
11334 (method git-fetch)
11335 (uri (git-reference
11336 (url "https://github.com/cdominik/cdlatex")
11337 (commit version)))
11338 (file-name (git-file-name name version))
11339 (sha256
11340 (base32 "1jj9vmhc4s3ych08bjm1c2xwi81z1p20rj7bvxrgvb5aga2ghi9d"))))
11341 (build-system emacs-build-system)
11342 (propagated-inputs
11343 `(("emacs-auctex" ,emacs-auctex)))
11344 (home-page "https://github.com/cdominik/cdlatex")
11345 (synopsis "Fast Emacs input methods for LaTeX environments and
11346 math")
11347 (description "CDLaTeX is an Emacs minor mode supporting fast
11348 insertion of environment templates and math in LaTeX. Similar
11349 commands are also offered as part of the AUCTeX package, but it is not
11350 the same - CDLaTeX focuses on speediness for inserting LaTeX
11351 constructs.")
11352 (license license:gpl3+)))
11353
11354 (define-public emacs-cnfonts
11355 (package
11356 (name "emacs-cnfonts")
11357 (version "0.9.1")
11358 (source
11359 (origin
11360 (method git-fetch)
11361 (uri (git-reference
11362 (url "https://github.com/tumashu/cnfonts")
11363 (commit (string-append "v" version))))
11364 (file-name (git-file-name name version))
11365 (sha256
11366 (base32 "11d44lf0m0kbzq1mvyqkl4aprys0xqaarp08nij57xnynin1rynx"))))
11367 (build-system emacs-build-system)
11368 (home-page "https://github.com/tumashu/cnfonts")
11369 (synopsis "Emacs Chinese fonts setup tool")
11370 (description "cnfonts is a Chinese fonts setup tool, allowing for easy
11371 configuration of Chinese fonts.")
11372 (license license:gpl2+)))
11373
11374 (define-public emacs-boon
11375 (package
11376 (name "emacs-boon")
11377 (version "1.1")
11378 (source
11379 (origin
11380 (method git-fetch)
11381 (uri (git-reference
11382 (url "https://github.com/jyp/boon")
11383 (commit version)))
11384 (file-name (git-file-name name version))
11385 (sha256
11386 (base32 "1ss9bjs34q41pa0g0nbdzd8fwpjcbd2239rdlx5aykfv9v0b8j77"))))
11387 (build-system emacs-build-system)
11388 (propagated-inputs
11389 `(("emacs-dash" ,emacs-dash)
11390 ("emacs-expand-region" ,emacs-expand-region)
11391 ("emacs-multiple-cursors" ,emacs-multiple-cursors)
11392 ("emacs-powerline" ,emacs-powerline)
11393 ("emacs-spaceline" ,emacs-spaceline)))
11394 (home-page "https://github.com/jyp/boon")
11395 (synopsis "Ergonomic command mode for Emacs")
11396 (description "Boon is a complete package for modal editing with a focus on
11397 ergonomics and modularity. Spacial allocation of keys comes first, mnemonics
11398 second. Most common operations are mapped to the home row, common editing
11399 commands are bound to keys reachable with the left hand and movement keys are
11400 reached with the right hand.")
11401 (license license:gpl3+)))
11402
11403 (define-public emacs-csharp-mode
11404 (package
11405 (name "emacs-csharp-mode")
11406 (version "0.10.0")
11407 (source
11408 (origin
11409 (method git-fetch)
11410 (uri (git-reference
11411 (url "https://github.com/josteink/csharp-mode")
11412 (commit (string-append "v" version))))
11413 (file-name (git-file-name name version))
11414 (sha256
11415 (base32 "0vwkbla2gkfa9dzxfvrvr7hd2z16769iwbycl7k6l701dnwli1fw"))))
11416 (build-system emacs-build-system)
11417 (home-page "https://github.com/josteink/csharp-mode")
11418 (synopsis "Major mode for C# code")
11419 (description
11420 "This is a C# editing mode for Emacs, based on CC mode. It handles
11421 syntax coloring, indentation, insertion of matched pairs of curly braces and
11422 documentation generation. In addition, it provides menu-based navigation
11423 using Imenu, and Compilation mode support for MSBuild, devenv and xbuild.")
11424 ;; XXX: Project switched to GPL3+ after 0.10.0 release.
11425 (license license:gpl2+)))
11426
11427 (define-public emacs-php-mode
11428 (package
11429 (name "emacs-php-mode")
11430 (version "1.23.0")
11431 (source
11432 (origin
11433 (method git-fetch)
11434 (uri (git-reference
11435 (url "https://github.com/ejmr/php-mode")
11436 (commit (string-append "v" version))))
11437 (file-name (git-file-name name version))
11438 (sha256
11439 (base32 "0wnkcxg6djy4jvxhshiy1iw6b5cf79pjwjhfd1a060cavhfm4v5c"))))
11440 (build-system emacs-build-system)
11441 (home-page "https://github.com/ejmr/php-mode")
11442 (synopsis "Major mode for editing PHP code")
11443 (description
11444 "PHP mode is a major mode for editing PHP source code. It's an extension
11445 of C mode; thus it inherits all C mode's navigation functionality. But it
11446 colors according to the PHP grammar and indents according to the PEAR coding
11447 guidelines. It also includes a couple handy IDE-type features such as
11448 documentation search and a source and class browser.")
11449 (license license:gpl3+)))
11450
11451 (define-public emacs-pos-tip
11452 (package
11453 (name "emacs-pos-tip")
11454 (version "0.4.6")
11455 (source
11456 (origin
11457 (method git-fetch)
11458 (uri (git-reference
11459 (url "https://github.com/pitkali/pos-tip")
11460 (commit version)))
11461 (file-name (git-file-name name version))
11462 (sha256
11463 (base32 "0w8bnspnk871qndp18hs0wk4x9x31xr9rwbvf5dc8mcbnj29ch33"))))
11464 (build-system emacs-build-system)
11465 ;; The following functions and variables needed by emacs-pos-tip are
11466 ;; not included in emacs-minimal:
11467 ;; x-display-pixel-width, x-display-pixel-height, x-show-tip
11468 (arguments `(#:emacs ,emacs))
11469 (home-page "https://github.com/pitkali/pos-tip")
11470 (synopsis "Show tooltip at point")
11471 (description "The standard library tooltip.el provides a function for
11472 displaying a tooltip at the mouse position. However, locating a tooltip at an
11473 arbitrary buffer position in a window is not easy. Pos-tip provides such a
11474 function to be used by other frontend programs.")
11475 (license license:gpl2+)))
11476
11477 (define-public emacs-pyim-basedict
11478 (package
11479 (name "emacs-pyim-basedict")
11480 (version "0.3.1")
11481 (source
11482 (origin
11483 (method git-fetch)
11484 (uri (git-reference
11485 (url "https://github.com/tumashu/pyim-basedict")
11486 (commit (string-append "v" version))))
11487 (file-name (git-file-name name version))
11488 (sha256
11489 (base32 "0576r8ap9gp91ycjf1d47pn13kxp0f9fysn09zlq44hr0s1y2y5d"))))
11490 (build-system emacs-build-system)
11491 (home-page "https://github.com/tumashu/pyim-basedict")
11492 (synopsis "Input method dictionary of pyim")
11493 (description "Pyim-basedict is the default pinyin input method dictionary,
11494 containing words from the Rime project.")
11495 (license license:gpl2+)))
11496
11497 (define-public emacs-pyim
11498 (package
11499 (name "emacs-pyim")
11500 (version "1.8")
11501 (source
11502 (origin
11503 (method git-fetch)
11504 (uri (git-reference
11505 (url "https://github.com/tumashu/pyim")
11506 (commit (string-append "v" version))))
11507 (file-name (git-file-name name version))
11508 (sha256
11509 (base32
11510 "16rma4cv7xgky0g3x4an27v30jdi6i1sqw43cl99zhkqvp43l3f9"))))
11511 (build-system emacs-build-system)
11512 (propagated-inputs
11513 `(("emacs-async" ,emacs-async)
11514 ("emacs-pyim-basedict" ,emacs-pyim-basedict)
11515 ("emacs-popup" ,emacs-popup)
11516 ("emacs-posframe" ,emacs-posframe)))
11517 (home-page "https://github.com/tumashu/pyim")
11518 (synopsis "Chinese input method")
11519 (description "Chinese input method which supports quanpin, shuangpin, wubi
11520 and cangjie.")
11521 (license license:gpl2+)))
11522
11523 (define-public emacs-posframe
11524 (package
11525 (name "emacs-posframe")
11526 (version "0.8.3")
11527 (source
11528 (origin
11529 (method url-fetch)
11530 (uri (string-append "https://elpa.gnu.org/packages/"
11531 "posframe-" version ".el"))
11532 (sha256
11533 (base32 "05m56aw2yxik0pgcvyr5c92j2mwfksxgq1syzvik6161gy8hdd0g"))))
11534 (build-system emacs-build-system)
11535 ;; emacs-minimal does not include the function font-info.
11536 (arguments
11537 `(#:emacs ,emacs))
11538 (home-page "https://github.com/tumashu/posframe")
11539 (synopsis "Pop a posframe (a child frame) at point")
11540 (description
11541 "Posframe can pop a posframe at point. A posframe is a child frame
11542 displayed within its root window's buffer. Posframe is fast and works well
11543 with CJK languages.")
11544 (license license:gpl3+)))
11545
11546 (define-public emacs-el2org
11547 (package
11548 (name "emacs-el2org")
11549 (version "0.6.0")
11550 (source
11551 (origin
11552 (method git-fetch)
11553 (uri (git-reference
11554 (url "https://github.com/tumashu/el2org")
11555 (commit (string-append "v" version))))
11556 (file-name (git-file-name name version))
11557 (sha256
11558 (base32 "0mzddqny6wpg1fv99xrvlv7rxmaifvmy5bvj4in4pldhm4cx4q1b"))))
11559 (build-system emacs-build-system)
11560 (home-page "https://github.com/tumashu/el2org")
11561 (synopsis "Convert Emacs-lisp file to org file")
11562 (description "El2org is a simple tool, which can convert Emacs-lisp file
11563 to org file, you can use this tool to write orgify commentary.")
11564 (license license:gpl2+)))
11565
11566 (define-public emacs-mustache
11567 (package
11568 (name "emacs-mustache")
11569 (version "0.23")
11570 (source
11571 (origin
11572 (method git-fetch)
11573 (uri (git-reference
11574 (url "https://github.com/Wilfred/mustache.el")
11575 (commit version)))
11576 (file-name (git-file-name name version))
11577 (sha256
11578 (base32 "1n2ymd92qpvsby6ms0l3kjhdzzc47rri2aiscc6bs07hm4mjpr9q"))))
11579 (build-system emacs-build-system)
11580 (propagated-inputs
11581 `(("emacs-dash" ,emacs-dash)
11582 ("emacs-ht" ,emacs-ht)
11583 ("emacs-s" ,emacs-s)))
11584 (home-page "https://github.com/Wilfred/mustache.el")
11585 (synopsis "Mustache templating library for Emacs")
11586 (description "Mustache templating library for Emacs, mustache is
11587 a simple web template system, which is described as a logic-less system
11588 because it lacks any explicit control flow statements, both looping and
11589 conditional evaluation can be achieved using section tags processing lists
11590 and lambdas.")
11591 (license license:gpl3+)))
11592
11593 (define-public emacs-org2web
11594 (package
11595 (name "emacs-org2web")
11596 (version "0.9.1")
11597 (source
11598 (origin
11599 (method git-fetch)
11600 (uri (git-reference
11601 (url "https://github.com/tumashu/org2web")
11602 (commit (string-append "v" version))))
11603 (file-name (git-file-name name version))
11604 (sha256
11605 (base32 "0wsvfn409a2ivbich8b8zqza78sprirg4bl7igx536ydqclmi0n7"))))
11606 (build-system emacs-build-system)
11607 (propagated-inputs
11608 `(("emacs-dash" ,emacs-dash)
11609 ("emacs-el2org" ,emacs-el2org)
11610 ("emacs-ht" ,emacs-ht)
11611 ("emacs-mustache" ,emacs-mustache)
11612 ("emacs-simple-httpd" ,emacs-simple-httpd)))
11613 (home-page "https://github.com/tumashu/org2web")
11614 (synopsis "Static site generator based on org-mode ")
11615 (description "Org2web is a static site generator based on org-mode,
11616 which code derived from Kelvin H's org-page.")
11617 (license license:gpl2+)))
11618
11619 (define-public emacs-xelb
11620 (package
11621 (name "emacs-xelb")
11622 (version "0.18")
11623 (source (origin
11624 (method url-fetch)
11625 (uri (string-append "https://elpa.gnu.org/packages/xelb-"
11626 version ".tar"))
11627 (sha256
11628 (base32
11629 "1fp5mzl63sh0h3ws4l5p4qgvi7ny8a3fj6k4dhqa98xgw2bx03v7"))))
11630 (build-system emacs-build-system)
11631 ;; The following functions and variables needed by emacs-xelb are
11632 ;; not included in emacs-minimal:
11633 ;; x-display-screens, x-keysym-table, x-alt-keysym, x-meta-keysym
11634 ;; x-hyper-keysym, x-super-keysym, libxml-parse-xml-region
11635 ;; x-display-pixel-width, x-display-pixel-height
11636 (arguments
11637 `(#:emacs ,emacs
11638 #:phases
11639 (modify-phases %standard-phases
11640 (add-after 'unpack 'regenerate-el-files
11641 (lambda* (#:key inputs #:allow-other-keys)
11642 (invoke "make"
11643 (string-append "PROTO_PATH="
11644 (assoc-ref inputs "xcb-proto")
11645 "/share/xcb")
11646 (string-append "EMACS_BIN="
11647 (assoc-ref inputs "emacs")
11648 "/bin/emacs -Q")))))))
11649 (native-inputs `(("xcb-proto" ,xcb-proto)))
11650 (home-page "https://github.com/ch11ng/xelb")
11651 (synopsis "X protocol Emacs Lisp binding")
11652 (description "@code{emacs-xelb} is a pure Emacs Lisp implementation of the
11653 X11 protocol based on the XML description files from the XCB project. It
11654 features an object-oriented API and permits a certain degree of concurrency.
11655 It should enable you to implement low-level X11 applications.")
11656 (license license:gpl3+)))
11657
11658 (define-public emacs-exwm
11659 (package
11660 (name "emacs-exwm")
11661 (version "0.24")
11662 (synopsis "Emacs X window manager")
11663 (source
11664 (origin
11665 (method url-fetch)
11666 (uri (string-append "https://elpa.gnu.org/packages/"
11667 "exwm-" version ".tar"))
11668 (sha256
11669 (base32 "0lj1a3cmbpf4h6x8k6x8cdm1qb51ca6filydnvi5zcda8zpl060s"))
11670 (patches
11671 ;; Patch fixing fullscreen view. Applied upstream as
11672 ;; edb930005b0ba83051ca8a59b493e9a3c8ef580a. It can be removed in
11673 ;; next release.
11674 (search-patches "emacs-exwm-fix-fullscreen-states.patch"))))
11675 (build-system emacs-build-system)
11676 (propagated-inputs
11677 `(("emacs-xelb" ,emacs-xelb)))
11678 (inputs
11679 `(("xhost" ,xhost)
11680 ("dbus" ,dbus)))
11681 ;; The following functions and variables needed by emacs-exwm are
11682 ;; not included in emacs-minimal:
11683 ;; scroll-bar-mode, fringe-mode
11684 ;; x-display-pixel-width, x-display-pixel-height
11685 (arguments
11686 `(#:emacs ,emacs
11687 #:phases
11688 (modify-phases %standard-phases
11689 (add-after 'build 'install-xsession
11690 (lambda* (#:key inputs outputs #:allow-other-keys)
11691 (let* ((out (assoc-ref outputs "out"))
11692 (xsessions (string-append out "/share/xsessions"))
11693 (bin (string-append out "/bin"))
11694 (exwm-executable (string-append bin "/exwm")))
11695 ;; Add a .desktop file to xsessions
11696 (mkdir-p xsessions)
11697 (mkdir-p bin)
11698 (make-desktop-entry-file
11699 (string-append xsessions "/exwm.desktop")
11700 #:name ,name
11701 #:comment ,synopsis
11702 #:exec exwm-executable
11703 #:try-exec exwm-executable)
11704 ;; Add a shell wrapper to bin
11705 (with-output-to-file exwm-executable
11706 (lambda _
11707 (format #t "#!~a ~@
11708 ~a +SI:localuser:$USER ~@
11709 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
11710 (string-append (assoc-ref inputs "bash") "/bin/sh")
11711 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
11712 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
11713 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
11714 '(cond
11715 ((file-exists-p "~/.exwm")
11716 (load-file "~/.exwm"))
11717 ((not (featurep 'exwm))
11718 (require 'exwm)
11719 (require 'exwm-config)
11720 (exwm-config-default)
11721 (message (concat "exwm configuration not found. "
11722 "Falling back to default configuration...")))))))
11723 (chmod exwm-executable #o555)
11724 #t))))))
11725 (home-page "https://github.com/ch11ng/exwm")
11726 (description
11727 "EXWM is a full-featured tiling X window manager for Emacs built on top
11728 of XELB.")
11729 (license license:gpl3+)))
11730
11731 (define-public emacs-xelb-no-x-toolkit
11732 (package
11733 (inherit emacs-xelb)
11734 (name "emacs-xelb-no-x-toolkit")
11735 (arguments
11736 (substitute-keyword-arguments (package-arguments emacs-xelb)
11737 ((#:emacs emacs) `,emacs-no-x-toolkit)))))
11738
11739 (define-public emacs-exwm-no-x-toolkit
11740 (package
11741 (inherit emacs-exwm)
11742 (name "emacs-exwm-no-x-toolkit")
11743 (synopsis "Emacs X window manager (without an X toolkit)")
11744 (propagated-inputs
11745 `(("emacs-xelb-no-x-toolkit" ,emacs-xelb-no-x-toolkit)))
11746 (arguments
11747 (substitute-keyword-arguments (package-arguments emacs-exwm)
11748 ((#:emacs emacs) `,emacs-no-x-toolkit)))))
11749
11750 (define-public emacs-switch-window
11751 (package
11752 (name "emacs-switch-window")
11753 (version "1.6.2")
11754 (source
11755 (origin
11756 (method git-fetch)
11757 (uri (git-reference
11758 (url "https://github.com/dimitri/switch-window")
11759 (commit (string-append "v" version))))
11760 (file-name (git-file-name name version))
11761 (sha256
11762 (base32
11763 "0rci96asgamr6qp6nkyr5vwrnslswjxcjd96yccy4aivh0g66yfg"))))
11764 (build-system emacs-build-system)
11765 (home-page "https://github.com/dimitri/switch-window")
11766 (synopsis "Emacs window switch tool")
11767 (description "Switch-window is an emacs window switch tool, which
11768 offer a visual way to choose a window to switch to, delete, split or
11769 other operations.")
11770 (license license:wtfpl2)))
11771
11772 (define-public emacs-exwm-x
11773 (package
11774 (name "emacs-exwm-x")
11775 (version "1.9.0")
11776 (synopsis "Derivative window manager based on EXWM")
11777 (source
11778 (origin
11779 (method git-fetch)
11780 (uri (git-reference
11781 (url "https://github.com/tumashu/exwm-x")
11782 (commit (string-append "v" version))))
11783 (file-name (git-file-name name version))
11784 (sha256
11785 (base32
11786 "03l3dl7s1qys1kkh40rm1sfx7axy1b8sf5f6nyksj9ps6d30p5i4"))))
11787 (build-system emacs-build-system)
11788 (propagated-inputs
11789 `(("emacs-counsel" ,emacs-counsel)
11790 ("emacs-exwm" ,emacs-exwm)
11791 ("emacs-switch-window" ,emacs-switch-window)
11792 ("emacs-use-package" ,emacs-use-package)))
11793 (inputs
11794 `(("xhost" ,xhost)
11795 ("dbus" ,dbus)))
11796 ;; Need emacs instead of emacs-minimal,
11797 ;; for emacs's bin path will be inserted into bin/exwm-x file.
11798 (arguments
11799 `(#:emacs ,emacs
11800 #:phases
11801 (modify-phases %standard-phases
11802 (add-after 'build 'install-xsession
11803 (lambda* (#:key inputs outputs #:allow-other-keys)
11804 (let* ((out (assoc-ref outputs "out"))
11805 (xsessions (string-append out "/share/xsessions"))
11806 (bin (string-append out "/bin"))
11807 (exwm-executable (string-append bin "/exwm-x")))
11808 ;; Add a .desktop file to xsessions
11809 (mkdir-p xsessions)
11810 (mkdir-p bin)
11811 (with-output-to-file
11812 (string-append xsessions "/exwm-x.desktop")
11813 (lambda _
11814 (format #t "[Desktop Entry]~@
11815 Name=~a~@
11816 Comment=~a~@
11817 Exec=~a~@
11818 TryExec=~@*~a~@
11819 Type=Application~%" ,name ,synopsis exwm-executable)))
11820 ;; Add a shell wrapper to bin
11821 (with-output-to-file exwm-executable
11822 (lambda _
11823 (format #t "#!~a ~@
11824 ~a +SI:localuser:$USER ~@
11825 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
11826 (string-append (assoc-ref inputs "bash") "/bin/sh")
11827 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
11828 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
11829 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
11830 '(require 'exwmx-loader))))
11831 (chmod exwm-executable #o555)
11832 #t))))))
11833 (home-page "https://github.com/tumashu/exwm-x")
11834 (description "EXWM-X is a derivative window manager based on EXWM, with focus
11835 on mouse-control.")
11836 (license license:gpl3+)))
11837
11838 (define-public emacs-gnugo
11839 (package
11840 (name "emacs-gnugo")
11841 (version "3.1.0")
11842 (source
11843 (origin
11844 (method url-fetch)
11845 (uri (string-append "https://elpa.gnu.org/packages/gnugo-"
11846 version ".tar"))
11847 (sha256
11848 (base32
11849 "0xpjvs250gg71qwapdsb1hlc61gs0gpkjds01srf784fvyxx2gf1"))))
11850 (build-system emacs-build-system)
11851 (arguments
11852 `(#:phases (modify-phases %standard-phases
11853 (add-after 'unpack 'configure-default-gnugo-xpms-variable
11854 (lambda _
11855 (substitute* "gnugo.el"
11856 (("defvar gnugo-xpms nil")
11857 "defvar gnugo-xpms #'gnugo-imgen-create-xpms"))
11858 #t)))))
11859 (propagated-inputs
11860 `(("emacs-ascii-art-to-unicode" ,emacs-ascii-art-to-unicode)
11861 ("emacs-xpm" ,emacs-xpm)))
11862 (home-page "https://elpa.gnu.org/packages/gnugo.html")
11863 (synopsis "Emacs major mode for playing GNU Go")
11864 (description "This package provides an Emacs based interface for GNU Go.
11865 It has a graphical mode where the board and stones are drawn using XPM images
11866 and supports the use of a mouse.")
11867 (license license:gpl3+)))
11868
11869 (define-public emacs-gnuplot
11870 (package
11871 (name "emacs-gnuplot")
11872 (version "0.7.0")
11873 (source
11874 (origin
11875 (method git-fetch)
11876 (uri (git-reference
11877 (url "https://github.com/emacsorphanage/gnuplot-mode")
11878 (commit version)))
11879 (file-name (git-file-name name version))
11880 (sha256
11881 (base32 "0bwri3cvm2vr27kyqkrddm28fs08axnd4nm9amfgp54xp20bn4yn"))))
11882 (build-system emacs-build-system)
11883 (home-page "https://github.com/emacsorphanage/gnuplot-mode")
11884 (synopsis "Emacs major mode for interacting with Gnuplot")
11885 (description
11886 "Emacs Gnuplot is an Emacs major mode for interacting with Gnuplot.")
11887 (license license:gpl2+)))
11888
11889 (define-public emacs-transpose-frame
11890 (package
11891 (name "emacs-transpose-frame")
11892 (version "0.1.0")
11893 (source
11894 (origin
11895 (method url-fetch)
11896 (uri "https://www.emacswiki.org/emacs/download/transpose-frame.el")
11897 (file-name (string-append "transpose-frame-" version ".el"))
11898 (sha256
11899 (base32
11900 "1f67yksgw9s6j0033hmqzaxx2a93jm11sd5ys7cc3li5gfh680m4"))))
11901 (build-system emacs-build-system)
11902 (home-page "https://www.emacswiki.org/emacs/TransposeFrame")
11903 (synopsis "Transpose window arrangement in current frame")
11904 (description "@code{emacs-transpose-frame} provides some interactive
11905 functions which allows users to transpose windows arrangement in currently
11906 selected frame.")
11907 (license license:bsd-2)))
11908
11909 (define-public emacs-key-chord
11910 (package
11911 (name "emacs-key-chord")
11912 (version "0.6")
11913 (source
11914 (origin
11915 (method url-fetch)
11916 (uri "https://www.emacswiki.org/emacs/download/key-chord.el")
11917 (file-name (string-append "key-chord-" version ".el"))
11918 (sha256
11919 (base32
11920 "03m44pqggfrd53nh9dvpdjgm0rvca34qxmd30hr33hzprzjambxg"))))
11921 (build-system emacs-build-system)
11922 (home-page "https://www.emacswiki.org/emacs/key-chord.el")
11923 (synopsis "Map pairs of simultaneously pressed keys to Emacs commands")
11924 (description "@code{emacs-key-chord} provides @code{key-chord-mode}, a
11925 mode for binding key chords to commands. A key chord is defined as two keys
11926 pressed simultaneously or a single key quickly pressed twice.")
11927 (license license:gpl2+)))
11928
11929 (define-public emacs-evil-surround
11930 (package
11931 (name "emacs-evil-surround")
11932 (version "1.1.1")
11933 (source
11934 (origin
11935 (method git-fetch)
11936 (uri (git-reference
11937 (url "https://github.com/emacs-evil/evil-surround")
11938 (commit version)))
11939 (file-name (git-file-name name version))
11940 (sha256
11941 (base32 "1gfgmr4909m36gknprcam6q4rkcqfbi6w43ky7x6jnlmgb6mxggg"))))
11942 (build-system emacs-build-system)
11943 (propagated-inputs
11944 `(("emacs-evil" ,emacs-evil)))
11945 (arguments
11946 `(#:tests? #t
11947 #:test-command '("make" "test")))
11948 (home-page "https://github.com/emacs-evil/evil-surround")
11949 (synopsis "Easily modify surrounding parentheses and quotes")
11950 (description "@code{emacs-evil-surround} allows easy deletion, change and
11951 addition of surrounding pairs, such as parentheses and quotes, in evil mode.")
11952 (license license:gpl3+)))
11953
11954 (define-public emacs-evil-commentary
11955 (package
11956 (name "emacs-evil-commentary")
11957 (version "2.1.1")
11958 (source
11959 (origin
11960 (method git-fetch)
11961 (uri (git-reference
11962 (url "https://github.com/linktohack/evil-commentary")
11963 (commit (string-append "v" version))))
11964 (file-name (git-file-name name version))
11965 (sha256
11966 (base32 "0zjs9zyqfygnpxapvf0ymmiid40i06cxbhjzd81zw33nafgkf6r4"))))
11967 (build-system emacs-build-system)
11968 (propagated-inputs
11969 `(("emacs-evil" ,emacs-evil)))
11970 (home-page "https://github.com/linktohack/evil-commentary")
11971 (synopsis "Comment out code in evil mode")
11972 (description "@code{emacs-evil-commentary} adds keybindings to easily
11973 comment out lines of code in evil mode. It provides @code{gcc} to comment out
11974 lines, and @code{gc} to comment out the target of a motion.")
11975 (license license:gpl3+)))
11976
11977 ;; Tests for emacs-ansi have a circular dependency with ert-runner, and
11978 ;; therefore cannot be run
11979 (define-public emacs-ansi
11980 (let ((commit "a41d5cc719297515d85bb5256980cd1204a71b88")
11981 (revision "1"))
11982 (package
11983 (name "emacs-ansi")
11984 (version (git-version "0.4.1" revision commit))
11985 (source
11986 (origin
11987 (method git-fetch)
11988 (uri (git-reference
11989 (url "https://github.com/rejeep/ansi.el")
11990 (commit commit)))
11991 (file-name (git-file-name name version))
11992 (sha256
11993 (base32 "051v8dmji90chwbsyqsqry7h35mksal2j6rgw1kpmjsni86d79y1"))))
11994 (build-system emacs-build-system)
11995 (propagated-inputs
11996 `(("emacs-dash" ,emacs-dash)
11997 ("emacs-s" ,emacs-s)))
11998 (home-page "https://github.com/rejeep/ansi.el")
11999 (synopsis "Convert strings to ANSI")
12000 (description "@code{emacs-ansi} defines functions that turns simple
12001 strings to ANSI strings. Turning a string into an ANSI string can be to add
12002 color to a text, add color in the background of a text or adding a style, such
12003 as bold, underscore or italic.")
12004 (license license:gpl3+))))
12005
12006 ;; Tests for emacs-commander have a circular dependency with ert-runner, and
12007 ;; therefore cannot be run
12008 (define-public emacs-commander
12009 (package
12010 (name "emacs-commander")
12011 (version "0.7.0")
12012 (source
12013 (origin
12014 (method git-fetch)
12015 (uri (git-reference
12016 (url "https://github.com/rejeep/commander.el")
12017 (commit (string-append "v" version))))
12018 (file-name (git-file-name name version))
12019 (sha256
12020 (base32 "1j6hhyzww7wfwk6bllbb5mk4hw4qs8hsgfbfdifsam9c6i4spm45"))))
12021 (build-system emacs-build-system)
12022 (propagated-inputs
12023 `(("emacs-dash" ,emacs-dash)
12024 ("emacs-f" ,emacs-f)
12025 ("emacs-s" ,emacs-s)))
12026 (home-page "https://github.com/rejeep/commander.el")
12027 (synopsis "Emacs command line parser")
12028 (description "@code{emacs-commander} provides command line parsing for
12029 Emacs.")
12030 (license license:gpl3+)))
12031
12032 (define-public emacs-eglot
12033 (package
12034 (name "emacs-eglot")
12035 (version "1.6")
12036 (source
12037 (origin
12038 (method url-fetch)
12039 (uri (string-append "https://elpa.gnu.org/packages/"
12040 "eglot-" version ".tar"))
12041 (sha256
12042 (base32 "15hd6sx7qrpvlvhwwkcgdiki8pswwf4mm7hkm0xvznskfcp44spx"))))
12043 (build-system emacs-build-system)
12044 (propagated-inputs
12045 `(("emacs-jsonrpc" ,emacs-jsonrpc)))
12046 (home-page "https://github.com/joaotavora/eglot")
12047 (synopsis "Client for Language Server Protocol (LSP) servers")
12048 (description
12049 "Emacs Polyglot, or Eglot, is an Emacs @acronym{Language Server Protocol,
12050 LSP} client that stays out of the way. It guesses the LSP program to start
12051 for the current file, using the major mode as a hint. It prompts you to enter
12052 one if it fails.")
12053 (license license:gpl3+)))
12054
12055 ;; Tests for ert-runner have a circular dependency with ecukes, and therefore
12056 ;; cannot be run
12057 (define-public emacs-ert-runner
12058 (package
12059 (name "emacs-ert-runner")
12060 (version "0.8.0")
12061 (source
12062 (origin
12063 (method git-fetch)
12064 (uri (git-reference
12065 (url "https://github.com/rejeep/ert-runner.el")
12066 (commit (string-append "v" version))))
12067 (file-name (git-file-name name version))
12068 (sha256
12069 (base32
12070 "08gygn9fjank5gpi4v6ynrkn0jbknxbwsn7md4p9ndygdbmnkf98"))))
12071 (build-system emacs-build-system)
12072 (inputs
12073 `(("emacs-ansi" ,emacs-ansi)
12074 ("emacs-commander" ,emacs-commander)
12075 ("emacs-dash" ,emacs-dash)
12076 ("emacs-f" ,emacs-f)
12077 ("emacs-s" ,emacs-s)
12078 ("emacs-shut-up" ,emacs-shut-up)))
12079 (arguments
12080 `(#:phases
12081 (modify-phases %standard-phases
12082 (add-after 'install 'install-executable
12083 (lambda* (#:key inputs outputs #:allow-other-keys)
12084 (let ((out (assoc-ref outputs "out"))
12085 (source-directory (string-append
12086 (getenv "TMPDIR") "/source")))
12087 (substitute* "bin/ert-runner"
12088 (("ERT_RUNNER=\"\\$\\(dirname \\$\\(dirname \\$0\\)\\)")
12089 (string-append "ERT_RUNNER=\"" out
12090 "/share/emacs/site-lisp")))
12091 (install-file "bin/ert-runner" (string-append out "/bin"))
12092 (wrap-program (string-append out "/bin/ert-runner")
12093 (list "EMACSLOADPATH" ":" 'prefix
12094 ;; Do not capture the transient source directory in
12095 ;; the wrapper.
12096 (delete source-directory
12097 (string-split (getenv "EMACSLOADPATH") #\:))))
12098 #t))))
12099 #:include (cons* "^reporters/.*\\.el$" %default-include)))
12100 (home-page "https://github.com/rejeep/ert-runner.el")
12101 (synopsis "Opinionated Ert testing workflow")
12102 (description "@code{ert-runner} is a tool for Emacs projects tested
12103 using ERT. It assumes a certain test structure setup and can therefore make
12104 running tests easier.")
12105 (license license:gpl3+)))
12106
12107 (define-public emacs-xtest
12108 (package
12109 (name "emacs-xtest")
12110 (version "1.1.0")
12111 (source (origin
12112 (method git-fetch)
12113 (uri (git-reference
12114 (url "https://github.com/promethial/xtest")
12115 (commit (string-append "v" version))))
12116 (file-name (git-file-name name version))
12117 (sha256
12118 (base32
12119 "1wqx6hlqcmqiljydih5fx89dw06g8w728pyn4iqsap8jwgjngb09"))))
12120 (arguments
12121 `(#:exclude '()))
12122 (build-system emacs-build-system)
12123 (home-page "https://github.com/promethial/xtest/")
12124 (synopsis "Simple testing with Emacs")
12125 (description "This package provides a simple testing library for Emacs.")
12126 (license license:gpl3+)))
12127
12128 (define-public emacs-disable-mouse
12129 (package
12130 (name "emacs-disable-mouse")
12131 (version "0.3")
12132 (source
12133 (origin
12134 (method git-fetch)
12135 (uri (git-reference
12136 (url "https://github.com/purcell/disable-mouse")
12137 (commit version)))
12138 (file-name (git-file-name name version))
12139 (sha256
12140 (base32 "0l6mai68ns3qw3rlvjvzsnqwdy7bxqiy0vdwflq0l1plxb1vazyc"))))
12141 (build-system emacs-build-system)
12142 (home-page "https://github.com/purcell/disable-mouse")
12143 (synopsis "Disable mouse commands globally")
12144 (description
12145 "Provides @code{disable-mouse-mode} and @code{global-disable-mouse-mode},
12146 pair of minor modes which suppress all mouse events by intercepting them and
12147 running a customisable handler command (@code{ignore} by default). ")
12148 (license license:gpl3+)))
12149
12150 (define-public emacs-json-reformat
12151 (package
12152 (name "emacs-json-reformat")
12153 (version "0.0.6")
12154 (source
12155 (origin
12156 (method git-fetch)
12157 (uri (git-reference
12158 (url "https://github.com/gongo/json-reformat")
12159 (commit version)))
12160 (file-name (git-file-name name version))
12161 (sha256
12162 (base32 "0qp4n2k6s69jj4gwwimkpadjv245y54wk3bxb1x96f034gkp81vs"))
12163 (patches (search-patches "emacs-json-reformat-fix-tests.patch"))))
12164 (build-system emacs-build-system)
12165 (propagated-inputs
12166 `(("emacs-undercover" ,emacs-undercover)))
12167 (native-inputs
12168 `(("emacs-dash" ,emacs-dash)
12169 ("emacs-shut-up" ,emacs-shut-up)
12170 ("ert-runner" ,emacs-ert-runner)))
12171 (arguments
12172 `(#:tests? #t
12173 #:test-command '("ert-runner")
12174 #:phases
12175 (modify-phases %standard-phases
12176 (add-before 'check 'make-tests-writable
12177 (lambda _
12178 (for-each make-file-writable (find-files "test"))
12179 #t))
12180 (add-before 'check 'delete-json-objects-order-test
12181 (lambda _
12182 (emacs-batch-edit-file "test/json-reformat-test.el"
12183 `(progn (progn (goto-char (point-min))
12184 (re-search-forward
12185 "ert-deftest json-reformat-test:json-reformat-region")
12186 (beginning-of-line)
12187 (kill-sexp))
12188 (basic-save-buffer)))
12189 #t)))))
12190 (home-page "https://github.com/gongo/json-reformat")
12191 (synopsis "Reformatting tool for JSON")
12192 (description "@code{json-reformat} provides a reformatting tool for
12193 @url{http://json.org/, JSON}.")
12194 (license license:gpl3+)))
12195
12196 (define-public emacs-json-snatcher
12197 (package
12198 (name "emacs-json-snatcher")
12199 (version "1.0.0")
12200 (source
12201 (origin
12202 (method git-fetch)
12203 (uri (git-reference
12204 (url "https://github.com/Sterlingg/json-snatcher")
12205 (commit version)))
12206 (file-name (git-file-name name version))
12207 (sha256
12208 (base32 "05zsgnk7grgw9jzwl80h5sxfpifxlr37b4mkbvx7mjq4z14xc2jw"))))
12209 (build-system emacs-build-system)
12210 (home-page "https://github.com/sterlingg/json-snatcher")
12211 (synopsis "Grabs the path to JSON values in a JSON file")
12212 (description "@code{emacs-json-snatcher} grabs the path to JSON values in
12213 a @url{http://json.org/, JSON} file.")
12214 (license license:gpl3+)))
12215
12216 (define-public emacs-json-mode
12217 (package
12218 (name "emacs-json-mode")
12219 (version "1.7.0")
12220 (source
12221 (origin
12222 (method git-fetch)
12223 (uri (git-reference
12224 (url "https://github.com/joshwnj/json-mode")
12225 (commit (string-append "v" version))))
12226 (file-name (git-file-name name version))
12227 (sha256
12228 (base32 "0i79lqzdg59vkqwjd3q092xxn9vhxspb1vn4pkis0vfvn46g01jy"))))
12229 (build-system emacs-build-system)
12230 (propagated-inputs
12231 `(("emacs-json-reformat" ,emacs-json-reformat)
12232 ("emacs-json-snatcher" ,emacs-json-snatcher)))
12233 (home-page "https://github.com/joshwnj/json-mode")
12234 (synopsis "Major mode for editing JSON files")
12235 (description "@code{json-mode} extends the builtin js-mode syntax
12236 highlighting.")
12237 (license license:gpl3+)))
12238
12239 (define-public emacs-jsonrpc
12240 (package
12241 (name "emacs-jsonrpc")
12242 (version "1.0.12")
12243 (source
12244 (origin
12245 (method url-fetch)
12246 (uri (string-append "https://elpa.gnu.org/packages/"
12247 "jsonrpc-" version ".el"))
12248 (sha256
12249 (base32 "0cqp05awikbrn88ifld3vwnv6cxgmr83wlnsvxw8bqb96djz70ad"))))
12250 (build-system emacs-build-system)
12251 (home-page "http://elpa.gnu.org/packages/jsonrpc.html")
12252 (synopsis "JSON-RPC library")
12253 (description
12254 "This library implements the JSONRPC 2.0 specification as
12255 described in @url{http://www.jsonrpc.org/}. As the name suggests,
12256 JSONRPC is a generic Remote Procedure Call protocol designed around
12257 JSON objects.")
12258 (license license:gpl3+)))
12259
12260 (define-public emacs-restclient
12261 (let ((commit "ac8aad6c6b9e9d918062fa3c89c22c2f4ec48bc3")
12262 (version "0")
12263 (revision "3")) ;Guix package revision,
12264 ;upstream doesn't have official releases
12265 (package
12266 (name "emacs-restclient")
12267 (version (git-version version revision commit))
12268 (source (origin
12269 (method git-fetch)
12270 (uri (git-reference
12271 (url "https://github.com/pashky/restclient.el")
12272 (commit commit)))
12273 (sha256
12274 (base32
12275 "1a2c7xzy7rsan1zcdskia6m7n6j29xacfkqjlfdhzk6rr1bpzkwk"))
12276 (file-name (git-file-name name version))))
12277 (build-system emacs-build-system)
12278 (propagated-inputs
12279 `(("emacs-helm" ,emacs-helm)
12280 ("emacs-jq-mode" ,emacs-jq-mode)))
12281 (home-page "https://github.com/pashky/restclient.el")
12282 (synopsis "Explore and test HTTP REST webservices")
12283 (description
12284 "This tool allows for testing and exploration of HTTP REST Web services
12285 from within Emacs. Restclient runs queries from a plan-text query sheet,
12286 displays results pretty-printed in XML or JSON with @code{restclient-mode}")
12287 (license license:public-domain))))
12288
12289 (define-public emacs-jq-mode
12290 (package
12291 (name "emacs-jq-mode")
12292 (version "0.5.0")
12293 (source
12294 (origin
12295 (method git-fetch)
12296 (uri (git-reference
12297 (url "https://github.com/ljos/jq-mode")
12298 (commit (string-append "v" version))))
12299 (file-name (git-file-name name version))
12300 (sha256
12301 (base32 "0xk0if5i9cz4w06lx8v1vdm112pn1ybqgfw048sx15yyvfzgril1"))))
12302 (build-system emacs-build-system)
12303 (home-page "https://github.com/ljos/jq-mode")
12304 (synopsis "Major mode for editing jq queries")
12305 (description
12306 "Jq mode is an Emacs major mode for editing jq-scripts.")
12307 (license license:gpl3+)))
12308
12309 (define-public emacs-whitespace-cleanup-mode
12310 (let ((commit "72427144b054b0238a86e1348c45d986b8830d9d")
12311 (revision "1"))
12312 (package
12313 (name "emacs-whitespace-cleanup-mode")
12314 (version (git-version "0.10" revision commit))
12315 (source (origin
12316 (method git-fetch)
12317 (uri (git-reference
12318 (url "https://github.com/purcell/whitespace-cleanup-mode")
12319 (commit commit)))
12320 (sha256
12321 (base32
12322 "1zlk534jbwrsabcg3kqlzk4h4hwya60lh6q2n1v4yn4rpf5ghsag"))
12323 (file-name (git-file-name name version))))
12324 (build-system emacs-build-system)
12325 (home-page "https://github.com/purcell/whitespace-cleanup-mode")
12326 (synopsis "Intelligently call @code{whitespace-cleanup} on save")
12327 (description
12328 "This package provides a minor mode that calls
12329 @code{whitespace-cleanup} before saving the current buffer only if the
12330 whitespace in the buffer was initially clean.")
12331 (license license:gpl3+))))
12332
12333 (define-public emacs-eimp
12334 (let ((version "1.4.0")
12335 (commit "2e7536fe6d8f7faf1bad7a8ae37faba0162c3b4f")
12336 (revision "1"))
12337 (package
12338 (name "emacs-eimp")
12339 (version (git-version version revision commit))
12340 (source
12341 (origin
12342 (method git-fetch)
12343 (uri (git-reference
12344 (url "https://github.com/nicferrier/eimp")
12345 (commit commit)))
12346 (file-name (git-file-name name version))
12347 (sha256
12348 (base32
12349 "154d57yafxbcf39r89n5j43c86rp2fki3lw3gwy7ww2g6qkclcra"))))
12350 (build-system emacs-build-system)
12351 (arguments
12352 `(#:phases
12353 (modify-phases %standard-phases
12354 (add-after 'unpack 'configure
12355 (lambda* (#:key inputs #:allow-other-keys)
12356 (let ((imagemagick (assoc-ref inputs "imagemagick")))
12357 ;; eimp.el is read-only in git.
12358 (chmod "eimp.el" #o644)
12359 (emacs-substitute-variables "eimp.el"
12360 ("eimp-mogrify-program"
12361 (string-append imagemagick "/bin/mogrify"))))
12362 #t)))))
12363 (inputs
12364 `(("imagemagick" ,imagemagick)))
12365 (home-page "https://github.com/nicferrier/eimp")
12366 (synopsis "Interactive image manipulation utility for Emacs")
12367 (description "@code{emacs-eimp} allows interactive image manipulation
12368 from within Emacs. It uses the code@{mogrify} utility from ImageMagick to do
12369 the actual transformations.")
12370 (license license:gpl2+))))
12371
12372 (define-public emacs-dired-hacks
12373 (let ((commit "886befe113fae397407c804f72c45613d1d43535")
12374 (revision "2"))
12375 (package
12376 (name "emacs-dired-hacks")
12377 (version (git-version "0.0.1" revision commit))
12378 (source (origin
12379 (method git-fetch)
12380 (uri (git-reference
12381 (url "https://github.com/Fuco1/dired-hacks")
12382 (commit commit)))
12383 (file-name (git-file-name name version))
12384 (sha256
12385 (base32
12386 "1cvibg90ggyrivpjmcfprpi2fx7dpa68f8kzg08s88gw5ib75djl"))))
12387 (build-system emacs-build-system)
12388 (propagated-inputs
12389 `(("emacs-dash" ,emacs-dash)
12390 ("emacs-eimp" ,emacs-eimp)
12391 ("emacs-f" ,emacs-f)
12392 ("emacs-s" ,emacs-s)))
12393 (home-page "https://github.com/Fuco1/dired-hacks")
12394 (synopsis
12395 "Collection of useful dired additions")
12396 (description
12397 "This package provides the following collection of Emacs dired mode
12398 additions:
12399
12400 @itemize
12401 @item dired-avfs
12402 @item dired-columns
12403 @item dired-filter
12404 @item dired-hacks-utils
12405 @item dired-images
12406 @item dired-list
12407 @item dired-narrow
12408 @item dired-open
12409 @item dired-rainbow
12410 @item dired-ranger
12411 @item dired-subtree
12412 @item dired-tagsistant
12413 @end itemize\n")
12414 (license license:gpl3+))))
12415
12416 (define-public emacs-dired-sidebar
12417 (let ((commit "21ccb6723bea69f2e2ca25998268d8a039f904cc")
12418 (revision "1"))
12419 (package
12420 (name "emacs-dired-sidebar")
12421 (home-page "https://github.com/jojojames/dired-sidebar")
12422 (version (git-version "0.1.0" revision commit))
12423 (source (origin
12424 (method git-fetch)
12425 (uri (git-reference (url home-page) (commit commit)))
12426 (file-name (git-file-name name version))
12427 (sha256
12428 (base32
12429 "0mck4qk6srbbf8xnn2sg11j822z4ybxvgavvy402d5sli515i8ca"))))
12430 (build-system emacs-build-system)
12431 (propagated-inputs
12432 `(("emacs-dired-subtree" ,emacs-dired-hacks)))
12433 (synopsis "Sidebar for Emacs using Dired")
12434 (description
12435 "This package provides a sidebar for Emacs similar to @code{NeoTree}
12436 or @code{treemacs}, but leveraging @code{Dired} to do the job of display.")
12437 (license license:gpl3+))))
12438
12439 (define-public emacs-which-key
12440 (package
12441 (name "emacs-which-key")
12442 (version "3.5.0")
12443 (source
12444 (origin
12445 (method git-fetch)
12446 (uri (git-reference
12447 (url "https://github.com/justbur/emacs-which-key")
12448 (commit (string-append "v" version))))
12449 (file-name (git-file-name name version))
12450 (sha256
12451 (base32 "13lgjsm9pwgjsxg7lzc1c9sw2bzssxikfj6grnshqfll8kz8yr4r"))))
12452 (build-system emacs-build-system)
12453 (arguments
12454 `(#:tests? #t
12455 #:test-command '("emacs" "--batch"
12456 "-l" "which-key-tests.el"
12457 "-f" "ert-run-tests-batch-and-exit")))
12458 (home-page "https://github.com/justbur/emacs-which-key")
12459 (synopsis "Display available key bindings in popup")
12460 (description
12461 "@code{emacs-which-key} is a minor mode for Emacs that displays the key
12462 bindings following your currently entered incomplete command (a prefix) in a
12463 popup. For example, after enabling the minor mode if you enter C-x and wait
12464 for the default of 1 second, the minibuffer will expand with all of the
12465 available key bindings that follow C-x (or as many as space allows given your
12466 settings).")
12467 (license license:gpl3+)))
12468
12469 (define-public emacs-hercules
12470 (package
12471 (name "emacs-hercules")
12472 (version "0.2.1")
12473 (source
12474 (origin
12475 (method git-fetch)
12476 (uri (git-reference
12477 (url "https://gitlab.com/jjzmajic/hercules.el.git")
12478 (commit (string-append "v" version))))
12479 (file-name (git-file-name name version))
12480 (sha256
12481 (base32
12482 "19939pf5d6p2facmfhpyghx0vipb5k6ry3bmkmjfkj1zp132zfqf"))))
12483 (build-system emacs-build-system)
12484 (propagated-inputs
12485 `(("emacs-which-key" ,emacs-which-key)))
12486 (home-page "https://gitlab.com/jjzmajic/hercules.el")
12487 (synopsis "Call a chain of related commands without repeated prefix keys")
12488 (description
12489 "This package provides sticky-key-like functionality to obviate the
12490 need for repeated prefix-key sequences, and can reuse existing keymaps. The
12491 list of commands is displayed in a handy popup.")
12492 (license license:gpl3+)))
12493
12494 (define-public emacs-ws-butler
12495 (package
12496 (name "emacs-ws-butler")
12497 (version "0.6")
12498 (source (origin
12499 (method git-fetch)
12500 (uri (git-reference
12501 (url "https://github.com/lewang/ws-butler")
12502 (commit "323b651dd70ee40a25accc940b8f80c3a3185205")))
12503 (file-name (git-file-name name version))
12504 (sha256
12505 (base32
12506 "1a4b0lsmwq84qfx51c5xy4fryhb1ysld4fhgw2vr37izf53379sb"))))
12507 (build-system emacs-build-system)
12508 (native-inputs
12509 `(("ert-runner" ,emacs-ert-runner)))
12510 (arguments
12511 `(#:tests? #t
12512 #:test-command '("ert-runner" "tests")))
12513 (home-page "https://github.com/lewang/ws-butler")
12514 (synopsis "Trim spaces from end of lines")
12515 (description
12516 "This Emacs package automatically and unobtrusively trims whitespace
12517 characters from end of lines.")
12518 (license license:gpl3+)))
12519
12520 (define-public emacs-openwith
12521 (let ((changeset "aeb78782ec87680ea9f082a3f20a3675b3770cf9")
12522 (revision "0"))
12523 (package
12524 (name "emacs-openwith")
12525 (home-page "https://bitbucket.org/jpkotta/openwith")
12526 (version (git-version "0.0.1" revision changeset))
12527 (source (origin
12528 (method hg-fetch)
12529 (uri (hg-reference (url home-page) (changeset changeset)))
12530 (file-name (git-file-name name version))
12531 (sha256
12532 (base32
12533 "1wl6gnxsyhaad4cl9bxjc0qbc5jzvlwbwjbajs0n1s6qr07d6r01"))))
12534 (build-system emacs-build-system)
12535 (synopsis "Open external applications for files with Emacs")
12536 (description
12537 "This package enables you to associate file name patterns with external
12538 applications that are automatically invoked when you use commands like
12539 @code{find-file}. For example, you can have it open @code{png} files with
12540 @code{feh} and @code{mp4} files with @code{mpv}. This is especially useful
12541 when browsing files with Dired.")
12542 (license license:gpl2+))))
12543
12544 (define-public emacs-org-edit-latex
12545 (package
12546 (name "emacs-org-edit-latex")
12547 (version "0.8.0")
12548 (source
12549 (origin
12550 (method git-fetch)
12551 (uri (git-reference
12552 (url "https://github.com/et2010/org-edit-latex")
12553 (commit (string-append "v" version))))
12554 (file-name (git-file-name name version))
12555 (sha256
12556 (base32 "0zcllyhx9n9vcr5w87h0hfz25v52lvh5fi717cb7mf3jh89zh842"))))
12557 (build-system emacs-build-system)
12558 (propagated-inputs
12559 `(("emacs-auctex" ,emacs-auctex)
12560 ;; The version of org in Emacs 25.2 is not sufficient, because the
12561 ;; `org-latex-make-preamble' function is required.
12562 ("emacs-org" ,emacs-org)))
12563 (home-page "https://github.com/et2010/org-edit-latex")
12564 (synopsis "Edit a latex fragment just like editing a src block")
12565 (description "@code{emacs-org-edit-latex} is an extension for org-mode.
12566 It lets you edit a latex fragment in a dedicated buffer just like editing a
12567 src block.")
12568 (license license:gpl3+)))
12569
12570 (define-public emacs-emamux
12571 (package
12572 (name "emacs-emamux")
12573 (version "0.14")
12574 (source
12575 (origin
12576 (method git-fetch)
12577 (uri (git-reference
12578 (url "https://github.com/syohex/emacs-emamux")
12579 (commit version)))
12580 (file-name (git-file-name name version))
12581 (sha256
12582 (base32 "19y69qw79miim9cz5ji54gwspjkcp9g2c1xr5s7jj2fiabnxax6b"))))
12583 (build-system emacs-build-system)
12584 (home-page "https://github.com/syohex/emacs-emamux")
12585 (synopsis "Manipulate Tmux from Emacs")
12586 (description
12587 "@code{emacs-emamux} lets Emacs interact with the @code{tmux} terminal
12588 multiplexer.")
12589 (license license:gpl3+)))
12590
12591 (define-public emacs-rpm-spec-mode
12592 (package
12593 (name "emacs-rpm-spec-mode")
12594 (version "0.16")
12595 (source
12596 (origin
12597 (method url-fetch)
12598 ;; URI has the Fedora release number instead of the version
12599 ;; number. This will have to updated manually every new release.
12600 (uri (string-append
12601 "https://src.fedoraproject.org/cgit/rpms"
12602 "/emacs-rpm-spec-mode.git/snapshot"
12603 "/emacs-rpm-spec-mode-f26.tar.gz"))
12604 (sha256
12605 (base32
12606 "17dz80lhjrc89fj17pysl8slahzrqdkxgcjdk55zls6jizkr6kz3"))))
12607 (build-system emacs-build-system)
12608 (home-page "http://pkgs.fedoraproject.org/cgit/rpms/emacs-rpm-spec-mode.git")
12609 (synopsis "Emacs major mode for editing RPM spec files")
12610 (description "@code{emacs-rpm-spec-mode} provides an Emacs major mode for
12611 editing RPM spec files.")
12612 (license license:gpl2+)))
12613
12614 (define-public emacs-lcr
12615 (package
12616 (name "emacs-lcr")
12617 (version "1.1")
12618 (source
12619 (origin
12620 (method git-fetch)
12621 (uri (git-reference
12622 (url "https://github.com/jyp/lcr")
12623 (commit version)))
12624 (file-name (git-file-name name version))
12625 (sha256
12626 (base32 "0mc55icihxqpf8b05990q1lc2nj2792wcgyr73xsiqx0963sjaj8"))))
12627 (build-system emacs-build-system)
12628 (propagated-inputs
12629 `(("emacs-dash" ,emacs-dash)))
12630 (home-page "https://github.com/jyp/lcr")
12631 (synopsis "Lightweight coroutines in Emacs Lisp")
12632 (description "This package provides macros that can translate code into
12633 equivalent continuation-passing code, as well as miscellaneous utility
12634 functions written in continuation-passing style.")
12635 (license license:gpl3+)))
12636
12637 (define-public emacs-attrap
12638 (let ((commit "18cd1f7832870a36c404e872fa83a271fe8e688d")
12639 (revision "2"))
12640 (package
12641 (name "emacs-attrap")
12642 (version (git-version "1.0" revision commit))
12643 (source (origin
12644 (method git-fetch)
12645 (uri (git-reference
12646 (url "https://github.com/jyp/attrap")
12647 (commit commit)))
12648 (sha256
12649 (base32
12650 "078391949h0fgmshin8f79a1a595m06ig577rkgjqgngcp0d61l9"))
12651 (file-name (git-file-name name version))))
12652 (build-system emacs-build-system)
12653 (propagated-inputs
12654 `(("emacs-dash" ,emacs-dash)
12655 ("emacs-f" ,emacs-f)
12656 ("emacs-flycheck" ,emacs-flycheck)
12657 ("emacs-s" ,emacs-s)))
12658 (home-page "https://github.com/jyp/attrap")
12659 (synopsis "Fix coding error at point")
12660 (description "This package provides a command to fix the Flycheck error
12661 at point.")
12662 (license license:gpl3+))))
12663
12664 (define-public emacs-git-messenger
12665 (package
12666 (name "emacs-git-messenger")
12667 (version "0.18")
12668 (source
12669 (origin
12670 (method git-fetch)
12671 (uri (git-reference
12672 (url "https://github.com/syohex/emacs-git-messenger")
12673 (commit version)))
12674 (file-name (git-file-name name version))
12675 (sha256
12676 (base32 "04fnby2nblk8l70gv09asxkmnn53fh1pdfs77ix44npp99fyw8ix"))))
12677 (build-system emacs-build-system)
12678 (propagated-inputs
12679 `(("emacs-popup" ,emacs-popup)))
12680 (arguments
12681 `(#:tests? #t
12682 #:test-command '("emacs" "--batch" "-l" "test/test.el"
12683 "-f" "ert-run-tests-batch-and-exit")))
12684 (home-page "https://github.com/syohex/emacs-git-messenger")
12685 (synopsis "Popup commit message at current line")
12686 (description "@code{emacs-git-messenger} provides
12687 @code{git-messenger:popup-message}, a function that when called, will popup
12688 the last git commit message for the current line. This uses git-blame
12689 internally.")
12690 (license license:gpl3+)))
12691
12692 (define-public emacs-gitpatch
12693 (package
12694 (name "emacs-gitpatch")
12695 (version "0.5.1")
12696 (source
12697 (origin
12698 (method git-fetch)
12699 (uri (git-reference
12700 (url "https://github.com/tumashu/gitpatch")
12701 (commit (string-append "v" version))))
12702 (file-name (git-file-name name version))
12703 (sha256
12704 (base32 "1drf4fvmak7brf16axkh4nfz8pg44i7pjhfjz3dbkycbpp8y5vig"))))
12705 (build-system emacs-build-system)
12706 (home-page "https://github.com/tumashu/gitpatch")
12707 (synopsis "Mail git patch from Emacs")
12708 (description "@code{emacs-gitpatch} lets users easily send git patches,
12709 created by @code{git format-patch}, from @code{magit}, @code{dired} and
12710 @code{ibuffer} buffers.")
12711 (license license:gpl3+)))
12712
12713 (define-public emacs-erc-hl-nicks
12714 (package
12715 (name "emacs-erc-hl-nicks")
12716 (version "1.3.4")
12717 (source
12718 (origin
12719 (method git-fetch)
12720 (uri (git-reference
12721 (url "https://github.com/leathekd/erc-hl-nicks")
12722 (commit version)))
12723 (file-name (git-file-name name version))
12724 (sha256
12725 (base32 "0k57scxa8rm859fqsm8srhps7rlq06jzazhjbwnadzrh8i5fyvra"))))
12726 (build-system emacs-build-system)
12727 (synopsis "Nickname highlighting for Emacs ERC")
12728 (description "@code{erc-hl-nicks} highlights nicknames in ERC, an IRC
12729 client for Emacs. The main features are:
12730 @itemize
12731 @item Auto-colorizes nicknames without having to specify colors
12732 @item Ignores certain characters that IRC clients add to nicknames to avoid
12733 duplicates (nickname, nickname’, nickname\", etc.)
12734 @item Attempts to produce colors with a sufficient amount of contrast between
12735 the nick color and the background color
12736 @end itemize\n")
12737 (home-page "https://github.com/leathekd/erc-hl-nicks")
12738 (license license:gpl3+)))
12739
12740 (define-public emacs-engine-mode
12741 (package
12742 (name "emacs-engine-mode")
12743 (version "2.1.1")
12744 (source
12745 (origin
12746 (method git-fetch)
12747 (uri (git-reference
12748 (url "https://github.com/hrs/engine-mode")
12749 (commit (string-append "v" version))))
12750 (file-name (git-file-name name version))
12751 (sha256
12752 (base32 "1xka8i4cdvp5r2v2mkli1zz17x1sdsnmszbhqav2rf94v656d91i"))))
12753 (build-system emacs-build-system)
12754 (synopsis "Minor mode for defining and querying search engines")
12755 (description "@code{engine-mode} is a global minor mode for Emacs. It
12756 enables you to easily define search engines, bind them to keybindings, and
12757 query them from the comfort of your editor.")
12758 (home-page "https://github.com/hrs/engine-mode")
12759 (license license:gpl3+)))
12760
12761 (define-public emacs-prop-menu
12762 (package
12763 (name "emacs-prop-menu")
12764 (version "0.1.2")
12765 (source
12766 (origin
12767 (method git-fetch)
12768 (uri (git-reference
12769 (url "https://github.com/david-christiansen/prop-menu-el")
12770 (commit version)))
12771 (file-name (git-file-name name version))
12772 (sha256
12773 (base32
12774 "18ap2liz5r5a8ja2zz9182fnfm47jnsbyblpq859zks356k37iwc"))))
12775 (build-system emacs-build-system)
12776 (home-page
12777 "https://github.com/david-christiansen/prop-menu-el")
12778 (synopsis
12779 "Create and display a context menu based on text and overlay properties")
12780 (description
12781 "This is a library for computing context menus based on text
12782 properties and overlays. The intended use is to have tools that
12783 annotate source code and others that use these annotations, without
12784 requiring a direct coupling between them, but maintaining
12785 discoverability.
12786
12787 Major modes that wish to use this library should first define an
12788 appropriate value for @code{prop-menu-item-functions}. Then, they should
12789 bind @code{prop-menu-by-completing-read} to an appropriate
12790 key. Optionally, a mouse pop-up can be added by binding
12791 @code{prop-menu-show-menu} to a mouse event.")
12792 (license license:gpl3+)))
12793
12794 (define-public emacs-idris-mode
12795 (let ((commit "b77eadd8ac2048d5c882b4464bd9673e45dd6a59")
12796 (revision "0"))
12797 (package
12798 (name "emacs-idris-mode")
12799 (version (git-version "1.0" revision commit))
12800 (source
12801 (origin
12802 (method git-fetch)
12803 (uri (git-reference
12804 (url "https://github.com/idris-hackers/idris-mode")
12805 (commit commit)))
12806 (file-name (git-file-name name commit))
12807 (sha256
12808 (base32
12809 "1v8av6jza1j00ln75zjwaca0vmmv0fhhhi94p84rlfzgzykyb9g1"))))
12810 (build-system emacs-build-system)
12811 (propagated-inputs
12812 `(("emacs-prop-menu" ,emacs-prop-menu)))
12813 (home-page
12814 "https://github.com/idris-hackers/idris-mode")
12815 (synopsis "Major mode for editing Idris code")
12816 (description
12817 "This is an Emacs mode for editing Idris code. It is compatible with
12818 the latest versions of Idris 1.")
12819 (license license:gpl3+))))
12820
12821 (define-public emacs-browse-at-remote
12822 (package
12823 (name "emacs-browse-at-remote")
12824 (version "0.14.0")
12825 (source
12826 (origin
12827 (method git-fetch)
12828 (uri (git-reference
12829 (url "https://github.com/rmuslimov/browse-at-remote")
12830 (commit version)))
12831 (file-name (git-file-name name version))
12832 (sha256
12833 (base32 "0bx4ns0jb0sqrjk1nsspvl3mhz3n12925azf7brlwb1vcgnji09v"))))
12834 (build-system emacs-build-system)
12835 (propagated-inputs
12836 `(("emacs-f" ,emacs-f)
12837 ("emacs-s" ,emacs-s)))
12838 (native-inputs
12839 `(("ert-runner" ,emacs-ert-runner)))
12840 (arguments
12841 `(#:tests? #t
12842 #:test-command '("ert-runner")))
12843 (home-page "https://github.com/rmuslimov/browse-at-remote")
12844 (synopsis "Open github/gitlab/bitbucket/stash page from Emacs")
12845 (description
12846 "This Emacs package allows you to open a target page on
12847 github/gitlab (or bitbucket) by calling @code{browse-at-remote} command.
12848 It supports dired buffers and opens them in tree mode at destination.")
12849 (license license:gpl3+)))
12850
12851 (define-public emacs-tiny
12852 (let ((commit "fd8a6b0b0c564d8242259e20e557ee6041f40908")
12853 (revision "1"))
12854 (package
12855 (name "emacs-tiny")
12856 (version (git-version "0.2.1" revision commit))
12857 (source
12858 (origin
12859 (method git-fetch)
12860 (uri (git-reference
12861 (url "https://github.com/abo-abo/tiny")
12862 (commit commit)))
12863 (file-name (git-file-name name version))
12864 (sha256
12865 (base32
12866 "1498j392ap2mk4zmsm2id16pfgvj78r428da9vw7hdrzzibai2cx"))))
12867 (build-system emacs-build-system)
12868 (arguments
12869 `(#:tests? #t
12870 #:test-command '("make" "test")))
12871 (home-page "https://github.com/abo-abo/tiny")
12872 (synopsis "Quickly generate linear ranges in Emacs")
12873 (description
12874 "The main command of the @code{tiny} extension for Emacs is @code{tiny-expand}.
12875 It is meant to quickly generate linear ranges, e.g. 5, 6, 7, 8. Some elisp
12876 proficiency is an advantage, since you can transform your numeric range with
12877 an elisp expression.")
12878 (license license:gpl3+))))
12879
12880 (define-public emacs-emojify
12881 (package
12882 (name "emacs-emojify")
12883 (version "1.2")
12884 (source
12885 (origin
12886 (method git-fetch)
12887 (uri (git-reference
12888 (url "https://github.com/iqbalansari/emacs-emojify")
12889 (commit (string-append "v" version))))
12890 (file-name (git-file-name name version))
12891 (sha256
12892 (base32
12893 "1fqnj5x7ivjkm5y927dqqnm85q5hzczlb0hrfpjalrhasa6ijsrm"))))
12894 (build-system emacs-build-system)
12895 (arguments
12896 `(#:include (cons "^data/" %default-include)))
12897 (propagated-inputs
12898 `(("emacs-ht" ,emacs-ht)))
12899 (home-page "https://github.com/iqbalansari/emacs-emojify")
12900 (synopsis "Display emojis in Emacs")
12901 (description "This package displays emojis in Emacs similar to how Github,
12902 Slack, and other websites do. It can display plain ASCII like @code{:)} as
12903 well as Github-style emojis like @code{:smile:}. It provides a minor mode
12904 @code{emojify-mode} to enable the display of emojis in a buffer.")
12905 (license license:gpl3+)))
12906
12907 (define-public emacs-make-it-so
12908 (let ((commit "b73dfb640588123c9eece230ad72b37604f5c126")
12909 (revision "2"))
12910 (package
12911 (name "emacs-make-it-so")
12912 (version (git-version "0.1.0" revision commit))
12913 (source
12914 (origin
12915 (method git-fetch)
12916 (uri (git-reference
12917 (url "https://github.com/abo-abo/make-it-so")
12918 (commit commit)))
12919 (file-name (git-file-name name version))
12920 (sha256
12921 (base32
12922 "0p6xhyinzzkrwzbpxqfm8hlii0ikvmmylya240bwsa77w0g1k6xq"))))
12923 (build-system emacs-build-system)
12924 (arguments
12925 `(#:include (cons "^recipes/" %default-include)))
12926 (propagated-inputs
12927 `(("emacs-ivy" ,emacs-ivy)))
12928 (home-page "https://github.com/abo-abo/make-it-so")
12929 (synopsis "Transform files with Makefile recipes")
12930 (description "This package provides an interface for selecting from
12931 different conversion recipes, often including tools like @code{ffmpeg} or
12932 @code{convert}. The conversion command need only be written once, and
12933 subsequent invocations can be readily customized. Several recipes are
12934 included by default, and more can be readily added.")
12935 (license license:gpl3+))))
12936
12937 (define-public emacs-unidecode
12938 (let ((commit "5502ada9287b4012eabb879f12f5b0a9df52c5b7")
12939 (revision "1"))
12940 (package
12941 (name "emacs-unidecode")
12942 (version (git-version "0.2" revision commit))
12943 (source
12944 (origin
12945 (method git-fetch)
12946 (uri (git-reference
12947 (url "https://github.com/sindikat/unidecode")
12948 (commit commit)))
12949 (file-name (git-file-name name version))
12950 (sha256
12951 (base32
12952 "03x3nakbhmakwm977mwrf8jifvjnfwzpjv6wrwpizbqjnkgfchmn"))))
12953 (build-system emacs-build-system)
12954 (arguments
12955 `(#:include (cons* "^tools/" "^data/" %default-include)
12956 #:tests? #t
12957 #:test-command '("emacs" "--batch"
12958 "-l" "unidecode-test.el"
12959 "-f" "ert-run-tests-batch-and-exit")
12960 #:phases
12961 (modify-phases %standard-phases
12962 (add-before 'check 'make-tests-writable
12963 (lambda _
12964 (make-file-writable "unidecode-test.el")
12965 #t))
12966 (add-before 'check 'add-require
12967 (lambda _
12968 (emacs-batch-edit-file "unidecode-test.el"
12969 `(progn (progn (goto-char (point-min))
12970 (re-search-forward
12971 "ert-deftest")
12972 (forward-line -1)
12973 (insert "(require 'unidecode)"))
12974 (basic-save-buffer)))
12975 #t)))))
12976 (home-page "https://github.com/sindikat/unidecode")
12977 (synopsis "Transliterate Unicode text to ASCII")
12978 (description "This package provides functions for converting Unicode to ASCII.")
12979 (license license:gpl2+))))
12980
12981 (define-public emacs-pubmed
12982 (package
12983 (name "emacs-pubmed")
12984 (version "0.2.1")
12985 (source
12986 (origin
12987 (method git-fetch)
12988 (uri (git-reference
12989 (url "https://gitlab.com/fvdbeek/emacs-pubmed.git")
12990 (commit (string-append "v" version))))
12991 (file-name (git-file-name name version))
12992 (sha256
12993 (base32
12994 "15bwjxc7g43m5pi8z17anaqqkvi209r7kk1chmf175477gvrv7c0"))))
12995 (build-system emacs-build-system)
12996 (propagated-inputs
12997 `(("emacs-deferred" ,emacs-deferred)
12998 ("emacs-esxml" ,emacs-esxml)
12999 ("emacs-s" ,emacs-s)
13000 ("emacs-unidecode" ,emacs-unidecode)))
13001 (home-page "https://gitlab.com/fvdbeek/emacs-pubmed")
13002 (synopsis "Interface to PubMed")
13003 (description "This package provides an Emacs interface to the PubMed
13004 database of references on life sciences.")
13005 (license license:gpl3+)))
13006
13007 (define-public emacs-websocket
13008 (package
13009 (name "emacs-websocket")
13010 (version "1.12")
13011 (source
13012 (origin
13013 (method url-fetch)
13014 (uri (string-append "https://elpa.gnu.org/packages/"
13015 "websocket-" version ".tar"))
13016 (sha256
13017 (base32 "0ap4z80c6pzpb69wrx0hsvwzignxmd2b9xy974by9gf5xm2wpa8w"))))
13018 (build-system emacs-build-system)
13019 (home-page "https://elpa.gnu.org/packages/websocket.html")
13020 (synopsis "Emacs WebSocket client and server")
13021 (description
13022 "This is an Elisp library for WebSocket clients to talk to WebSocket
13023 servers, and for WebSocket servers to accept connections from WebSocket
13024 clients. This library is designed to be used by other library writers, to
13025 write applications that use WebSockets, and is not useful by itself.")
13026 (license license:gpl3+)))
13027
13028 (define-public emacs-oauth2
13029 (package
13030 (name "emacs-oauth2")
13031 (version "0.15")
13032 (source
13033 (origin
13034 (method url-fetch)
13035 (uri (string-append "https://elpa.gnu.org/packages/"
13036 "oauth2-" version ".el"))
13037 (sha256
13038 (base32 "0ij17g6i8d4cyzc8v6sy2qglwhzd767331gavll6d507krdh3ca3"))))
13039 (build-system emacs-build-system)
13040 (home-page "https://elpa.gnu.org/packages/oauth2.html")
13041 (synopsis "OAuth 2.0 authorization protocol implementation")
13042 (description
13043 "This package provides an Elisp implementation of the OAuth 2.0 draft.
13044 The main entry point is @code{oauth2-auth-and-store} which will return a token
13045 structure. This token structure can be then used with
13046 @code{oauth2-url-retrieve-synchronously} or @code{oauth2-url-retrieve} to
13047 retrieve any data that need OAuth authentication to be accessed. If the token
13048 needs to be refreshed, the code handles it automatically and stores the new
13049 value of the access token.")
13050 (license license:gpl3+)))
13051
13052 (define-public emacs-auth-source-xoauth2
13053 (package
13054 (name "emacs-auth-source-xoauth2")
13055 (version "1.0")
13056 (source
13057 (origin
13058 (method git-fetch)
13059 (uri (git-reference
13060 (url "https://github.com/ccrusius/auth-source-xoauth2")
13061 (commit (string-append "v" version))))
13062 (file-name (git-file-name name version))
13063 (sha256
13064 (base32 "0nl859csl8xcd6ybpjj15ph8l8fxwkwf45kbylss68alkyf1rl3v"))))
13065 (build-system emacs-build-system)
13066 (home-page "https://github.com/ccrusius/auth-source-xoauth2")
13067 (synopsis "XOAuth2 authentication capabilities for Emacs auth-source")
13068 (description
13069 "This package adds XOAuth2 authentication capabilities to Emacs
13070 auth-source. This integration requires some preliminary work on the users’
13071 part, which includes creating tokens.")
13072 (license license:asl2.0)))
13073
13074 (define-public emacs-circe
13075 (package
13076 (name "emacs-circe")
13077 (version "2.11")
13078 (source
13079 (origin
13080 (method git-fetch)
13081 (uri (git-reference
13082 (url "https://github.com/jorgenschaefer/circe")
13083 (commit (string-append "v" version))))
13084 (file-name (git-file-name name version))
13085 (sha256
13086 (base32 "0cr9flk310yn2jgvj4hbqw9nj5wlfi0fazdkqafzidgz6iq150wd"))))
13087 (build-system emacs-build-system)
13088 (arguments
13089 `(#:tests? #t
13090 #:test-command '("buttercup" "-L" ".")
13091 #:phases
13092 (modify-phases %standard-phases
13093 ;; The HOME environment variable should be set to an existing
13094 ;; directory for the tests to succeed.
13095 (add-before 'check 'set-home
13096 (lambda _
13097 (setenv "HOME" "/tmp")
13098 #t)))))
13099 (native-inputs
13100 `(("emacs-buttercup" ,emacs-buttercup)))
13101 ;; In order to securely connect to an IRC server using TLS, Circe requires
13102 ;; the GnuTLS binary.
13103 (propagated-inputs
13104 `(("gnutls" ,gnutls)))
13105 (home-page "https://github.com/jorgenschaefer/circe")
13106 (synopsis "Client for IRC in Emacs")
13107 (description "Circe is a Client for IRC in Emacs. It integrates well with
13108 the rest of the editor, using standard Emacs key bindings and indicating
13109 activity in channels in the status bar so it stays out of your way unless you
13110 want to use it.")
13111 (license license:gpl3+)))
13112
13113 (define-public emacs-tracking
13114 (package
13115 (inherit emacs-circe)
13116 (name "emacs-tracking")
13117 (arguments
13118 ;; "tracking.el" is a library extracted from Circe package. It requires
13119 ;; "shorten.el".
13120 `(#:include '("^shorten.el$" "^tracking.el$")
13121 ,@(package-arguments emacs-circe)))
13122 (home-page "https://github.com/jorgenschaefer/circe/wiki/Tracking")
13123 (synopsis "Buffer tracking library")
13124 (description "@code{tracking.el} provides a way for different modes to
13125 notify the user that a buffer needs attention. The user then can cycle
13126 through them using @key{C-c C-SPC}.")
13127 (license license:gpl3+)))
13128
13129 (define-public emacs-slack
13130 (let ((commit "a6d9f49bc6161f12c594d25254e77eedf4a67666")
13131 (revision "8"))
13132 (package
13133 (name "emacs-slack")
13134 (version (git-version "0.0.2" revision commit))
13135 (source (origin
13136 (method git-fetch)
13137 (uri (git-reference
13138 (url "https://github.com/yuya373/emacs-slack")
13139 (commit commit)))
13140 (file-name (git-file-name name commit))
13141 (sha256
13142 (base32
13143 "0crjjankqi4bqjk5pdz4r2ixf56n1nnq8ab1gz3sbl3v6as6262w"))))
13144 (build-system emacs-build-system)
13145 (arguments
13146 `(#:phases
13147 (modify-phases %standard-phases
13148 ;; HOME needs to exist for source compilation.
13149 (add-before 'build 'set-HOME
13150 (lambda _ (setenv "HOME" "/tmp") #t)))))
13151 (propagated-inputs
13152 `(("emacs-alert" ,emacs-alert)
13153 ("emacs-emojify" ,emacs-emojify)
13154 ("emacs-helm" ,emacs-helm)
13155 ("emacs-request" ,emacs-request)
13156 ("emacs-websocket" ,emacs-websocket)
13157 ("emacs-oauth2" ,emacs-oauth2)
13158 ("emacs-circe" ,emacs-circe)))
13159 (home-page "https://github.com/yuya373/emacs-slack")
13160 (synopsis "Slack client for Emacs")
13161 (description "This package provides an Emacs client for the Slack
13162 messaging service.")
13163 (license license:gpl3+))))
13164
13165 (define-public emacs-bash-completion
13166 (package
13167 (name "emacs-bash-completion")
13168 (version "3.1.0")
13169 (source
13170 (origin
13171 (method git-fetch)
13172 (uri (git-reference
13173 (url "https://github.com/szermatt/emacs-bash-completion")
13174 (commit (string-append "v" version))))
13175 (file-name (git-file-name name version))
13176 (sha256
13177 (base32 "11j2k3irixp47r2iglxdmjphahqhgnxg98n2xwagwzyq99lsamj4"))))
13178 (inputs `(("bash" ,bash)))
13179 (build-system emacs-build-system)
13180 (arguments
13181 `(#:phases
13182 (modify-phases %standard-phases
13183 (add-after 'unpack 'make-git-checkout-writable
13184 (λ _
13185 (for-each make-file-writable (find-files "."))
13186 #t))
13187 (add-before 'install 'configure
13188 (lambda* (#:key inputs #:allow-other-keys)
13189 (let ((bash (assoc-ref inputs "bash")))
13190 (emacs-substitute-variables "bash-completion.el"
13191 ("bash-completion-prog" (string-append bash "/bin/bash"))))
13192 #t)))))
13193 (home-page "https://github.com/szermatt/emacs-bash-completion")
13194 (synopsis "Bash completion for the shell buffer")
13195 (description
13196 "@code{bash-completion} defines dynamic completion hooks for shell-mode
13197 and shell-command prompts that are based on Bash completion.")
13198 (license license:gpl2+)))
13199
13200 (define-public emacs-easy-kill
13201 (package
13202 (name "emacs-easy-kill")
13203 (version "0.9.3")
13204 (source (origin
13205 (method url-fetch)
13206 (uri (string-append "https://elpa.gnu.org/packages/easy-kill-"
13207 version ".tar"))
13208 (sha256
13209 (base32
13210 "17nw0mglmg877axwg1d0gs03yc0p04lzmd3pl0nsnqbh3303fnqb"))))
13211 (build-system emacs-build-system)
13212 (home-page "https://github.com/leoliu/easy-kill")
13213 (synopsis "Kill and mark things easily in Emacs")
13214 (description
13215 "This package provides commands @code{easy-kill} and @code{easy-mark} to
13216 let users kill or mark things easily.")
13217 (license license:gpl3+)))
13218
13219 (define-public emacs-csv-mode
13220 (package
13221 (name "emacs-csv-mode")
13222 (version "1.12")
13223 (source
13224 (origin
13225 (method url-fetch)
13226 (uri (string-append "https://elpa.gnu.org/packages/"
13227 "csv-mode-" version ".tar"))
13228 (sha256
13229 (base32 "0bya12smlrzwv4cbcmch4kg1fazp4k0ndrh1z17ix9p8c14d0v1j"))))
13230 (build-system emacs-build-system)
13231 (home-page "https://elpa.gnu.org/packages/csv-mode.html")
13232 (synopsis "Major mode for editing comma/char separated values")
13233 (description
13234 "This Emacs package implements CSV mode, a major mode for editing records
13235 in a generalized CSV (character-separated values) format.")
13236 (license license:gpl3+)))
13237
13238 (define-public emacs-transmission
13239 (package
13240 (name "emacs-transmission")
13241 (version "0.12.1")
13242 (source
13243 (origin
13244 (method git-fetch)
13245 (uri (git-reference
13246 (url "https://github.com/holomorph/transmission")
13247 (commit version)))
13248 (file-name (git-file-name name version))
13249 (sha256
13250 (base32 "0kvg2gawsgy440x1fsl2c4pkxwp3zirq9rzixanklk0ryijhd3ry"))))
13251 (build-system emacs-build-system)
13252 (home-page "https://github.com/holomorph/transmission")
13253 (synopsis "Emacs interface to a Transmission session")
13254 (description "This package provides an Emacs interface to interact with a
13255 running session of the Transmission Bittorrent client.
13256
13257 Features:
13258
13259 @itemize
13260 @item List, add, start/stop, verify, remove torrents.
13261 @item Set speed limits, ratio limits, bandwidth priorities, trackers.
13262 @item Navigate to the corresponding file list, torrent info, peer info
13263 contexts.
13264 @item Toggle downloading and set priorities for individual files.
13265 @end itemize\n")
13266 (license license:gpl3+)))
13267
13268 (define-public emacs-polymode
13269 (package
13270 (name "emacs-polymode")
13271 (version "0.2")
13272 (source (origin
13273 (method git-fetch)
13274 (uri (git-reference
13275 (url "https://github.com/polymode/polymode")
13276 (commit (string-append "v" version))))
13277 (file-name (git-file-name name version))
13278 (sha256
13279 (base32
13280 "04v0gnzfsjb50bgly6kvpryx8cyzwjaq2llw4qv9ijw1l6ixmq3b"))))
13281 (build-system emacs-build-system)
13282 (home-page "https://github.com/polymode/polymode")
13283 (synopsis "Framework for multiple Emacs modes based on indirect buffers")
13284 (description
13285 "Polymode is an Emacs package that offers generic support for multiple
13286 major modes inside a single Emacs buffer. It is lightweight, object oriented
13287 and highly extensible. Creating a new polymode typically takes only a few
13288 lines of code. Polymode also provides extensible facilities for external
13289 literate programming tools for exporting, weaving and tangling.")
13290 (license license:gpl3+)))
13291
13292 (define-public emacs-polymode-ansible
13293 (let ((commit "b26094d029e25dc797b94254f797e7807a57e4c8"))
13294 (package
13295 (name "emacs-polymode-ansible")
13296 ;; No upstream version release yet.
13297 (version (git-version "0.1" "1" commit))
13298 (source
13299 (origin
13300 (method git-fetch)
13301 (uri (git-reference
13302 (url "https://gitlab.com/mavit/poly-ansible")
13303 (commit commit)))
13304 (file-name (git-file-name name version))
13305 (sha256
13306 (base32
13307 "055shddqibib3hx2ykwdz910nrqws40cd407mq946l2bf6v87gj6"))))
13308 (build-system emacs-build-system)
13309 (propagated-inputs
13310 `(("emacs-ansible-doc" ,emacs-ansible-doc)
13311 ("emacs-jinja2-mode" ,emacs-jinja2-mode)
13312 ("emacs-polymode" ,emacs-polymode)
13313 ("emacs-yaml-mode" ,emacs-yaml-mode)))
13314 (properties '((upstream-name . "poly-ansible")))
13315 (home-page "https://gitlab.com/mavit/poly-ansible/")
13316 (synopsis "Polymode for Ansible - Jinja2 in YAML")
13317 (description
13318 "Edit YAML files for Ansible containing embedded Jinja2 templating.")
13319 (license license:gpl3+))))
13320
13321 (define-public emacs-powershell
13322 ;; Tagged branch 0.1 is outdated (2015).
13323 (let ((revision "0")
13324 (commit "d1b3f95669343399f199f291ef76c09a0ede5e60"))
13325 (package
13326 (name "emacs-powershell")
13327 (build-system emacs-build-system)
13328 (version (git-version "0.3" revision commit))
13329 (source
13330 (origin
13331 (method git-fetch)
13332 (uri (git-reference
13333 (url "https://github.com/jschaf/powershell.el")
13334 (commit commit)))
13335 (file-name (git-file-name name version))
13336 (sha256
13337 (base32 "1cxhzaaig88zhylyycvb3849r85j1ijqklnh9zbqsfl2zhpb0g5c"))))
13338 (home-page "https://github.com/jschaf/powershell.el")
13339 (synopsis "Emacs mode for editing PowerShell scripts")
13340 (description
13341 "Powershell is an Emacs major mode for editing and running
13342 Microsoft PowerShell files.")
13343 (license license:gpl3+))))
13344
13345 (define-public emacs-polymode-org
13346 (package
13347 (name "emacs-polymode-org")
13348 (version "0.2")
13349 (source
13350 (origin
13351 (method git-fetch)
13352 (uri (git-reference
13353 (url "https://github.com/polymode/poly-org")
13354 (commit (string-append "v" version))))
13355 (file-name (git-file-name name version))
13356 (sha256
13357 (base32
13358 "04x6apjad4kg30456z1j4ipp64yjgkcaim6hqr6bb0rmrianqhck"))))
13359 (build-system emacs-build-system)
13360 (propagated-inputs
13361 `(("emacs-polymode" ,emacs-polymode)))
13362 (properties '((upstream-name . "poly-org")))
13363 (home-page "https://github.com/polymode/poly-org")
13364 (synopsis "Polymode definitions for Org mode buffers")
13365 (description
13366 "Provides definitions for @code{emacs-polymode} to support
13367 @code{emacs-org} buffers. Edit source blocks in an Org mode buffer using the
13368 native modes of the blocks' languages while remaining inside the primary Org
13369 buffer.")
13370 (license license:gpl3+)))
13371
13372 (define-public eless
13373 (package
13374 (name "eless")
13375 (version "0.3")
13376 (source
13377 (origin
13378 (method git-fetch)
13379 (uri (git-reference
13380 (url "https://github.com/kaushalmodi/eless")
13381 (commit (string-append "v" version))))
13382 (file-name (git-file-name name version))
13383 (sha256
13384 (base32 "0jr7vhh4vw69llhi0fh9ljscljkszkj0acdxl04da5hvqv6pnqbb"))))
13385 (build-system trivial-build-system)
13386 (inputs
13387 `(("bash" ,bash)))
13388 (arguments
13389 `(#:modules ((guix build utils))
13390 #:builder
13391 (begin
13392 (use-modules (guix build utils))
13393 (copy-recursively (assoc-ref %build-inputs "source") "source")
13394 (chdir "source")
13395 (substitute* "eless" (("/usr/bin/env bash")
13396 (string-append (assoc-ref %build-inputs "bash")
13397 "/bin/bash")))
13398 (install-file "eless" (string-append %output "/bin"))
13399 (install-file "doc/eless.info" (string-append %output "/share/info"))
13400 #t)))
13401 (home-page "https://github.com/kaushalmodi/eless")
13402 (synopsis "Use Emacs as a paginator")
13403 (description "@code{eless} provides a combination of Bash script
13404 and a minimal Emacs view-mode.
13405
13406 Features:
13407
13408 @itemize
13409 @item Independent of a user’s Emacs config.
13410 @item Customizable via the @code{(locate-user-emacs-file \"elesscfg\")} config.
13411 @item Not require an Emacs server to be already running.
13412 @item Syntax highlighting.
13413 @item Org-mode file rendering.
13414 @item @code{man} page viewer.
13415 @item Info viewer.
13416 @item Dired, wdired, (batch edit symbolic links).
13417 @item Colored diffs, git diff, git log, ls with auto ANSI detection.
13418 @item Filter log files lines matching a regexp.
13419 @item Auto-revert log files similar to @code{tail -f}.
13420 @item Quickly change frame and font sizes.
13421 @end itemize\n")
13422 (license license:expat)))
13423
13424 (define-public emacs-evil-matchit
13425 (package
13426 (name "emacs-evil-matchit")
13427 (version "2.3.9")
13428 (source
13429 (origin
13430 (method git-fetch)
13431 (uri (git-reference
13432 (url "https://github.com/redguardtoo/evil-matchit")
13433 (commit version)))
13434 (file-name (git-file-name name version))
13435 (sha256
13436 (base32 "1jk5qkqz3c4fnh6d2y889k5ycz8ipbkmzk4i8bl86xv9rhis1pv9"))))
13437 (build-system emacs-build-system)
13438 (propagated-inputs
13439 `(("emacs-evil" ,emacs-evil)))
13440 (home-page "https://github.com/redguardtoo/evil-matchit")
13441 (synopsis "Vim matchit ported into Emacs")
13442 (description
13443 "@code{evil-matchit} is a minor mode for jumping between matching tags in
13444 evil mode using @kbd{%}. It is a port of @code{matchit} for Vim.")
13445 (license license:gpl3+)))
13446
13447 (define-public emacs-evil-smartparens
13448 (package
13449 (name "emacs-evil-smartparens")
13450 (version "0.4.0")
13451 (source
13452 (origin
13453 (method git-fetch)
13454 (uri (git-reference
13455 (url "https://github.com/expez/evil-smartparens")
13456 (commit version)))
13457 (file-name (git-file-name name version))
13458 (sha256
13459 (base32 "1di4qz5fbrlwbg16c2j0m7y8zqfxw027qd7zqmc3rwk9znbhg7wl"))))
13460 (build-system emacs-build-system)
13461 (propagated-inputs
13462 `(("emacs-evil" ,emacs-evil)
13463 ("emacs-smartparens" ,emacs-smartparens)))
13464 (home-page "https://github.com/expez/evil-smartparens")
13465 (synopsis "Emacs Evil integration for Smartparens")
13466 (description "@code{emacs-evil-smartparens} is an Emacs minor mode which
13467 makes Evil play nice with Smartparens. Evil is an Emacs minor mode that
13468 emulates Vim features and provides Vim-like key bindings.")
13469 (license license:gpl3+)))
13470
13471 (define-public emacs-evil-quickscope
13472 (package
13473 (name "emacs-evil-quickscope")
13474 (version "0.1.4")
13475 (source
13476 (origin
13477 (method git-fetch)
13478 (uri (git-reference
13479 (url "https://github.com/blorbx/evil-quickscope")
13480 (commit (string-append "v" version))))
13481 (file-name (git-file-name name version))
13482 (sha256
13483 (base32 "1ja9ggj70wf0nmma4xnc1zdzg2crq9h1cv3cj7cgwjmllflgkfq7"))))
13484 (build-system emacs-build-system)
13485 (propagated-inputs
13486 `(("emacs-evil" ,emacs-evil)))
13487 (arguments
13488 `(#:tests? #t
13489 #:test-command '("emacs" "--batch"
13490 "-l" "evil-quickscope-tests.el"
13491 "-f" "ert-run-tests-batch-and-exit")))
13492 (home-page "https://github.com/blorbx/evil-quickscope")
13493 (synopsis "Target highlighting for emacs evil-mode f,F,t and T commands")
13494 (description "@code{emacs-evil-quickscope} highlights targets for Evil
13495 mode’s f,F,t,T keys, allowing for quick navigation within a line. It is a
13496 port of quick-scope for Vim. Evil is an Emacs minor mode that emulates Vim
13497 features and provides Vim-like key bindings.")
13498 (license license:gpl3+)))
13499
13500 (define-public emacs-bongo
13501 (package
13502 (name "emacs-bongo")
13503 (version "1.1")
13504 (source
13505 (origin
13506 (method git-fetch)
13507 (uri (git-reference
13508 (url "https://github.com/dbrock/bongo")
13509 (commit version)))
13510 (file-name (git-file-name name version))
13511 (sha256
13512 (base32 "1nszph9mn98flyhn1jq3y6mdh6jymjkvj5ng36ql016dj92apvhv"))))
13513 (build-system emacs-build-system)
13514 (home-page "https://github.com/dbrock/bongo")
13515 (synopsis "Media player for Emacs")
13516 (description
13517 "This package provides a flexible media player for Emacs. @code{Bongo}
13518 supports multiple backends such as @code{vlc}, @code{mpg123},
13519 @code{ogg123}, @code{speexdec}, @code{timidity}, @code{mikmod} and
13520 @code{afplay}.")
13521 (license license:gpl2+)))
13522
13523 (define-public emacs-groovy-modes
13524 (package
13525 (name "emacs-groovy-modes")
13526 (version "2.0")
13527 (source (origin
13528 (method git-fetch)
13529 (uri (git-reference
13530 (url "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
13531 (commit version)))
13532 (file-name (git-file-name name version))
13533 (sha256
13534 (base32
13535 "0c1d4cbnlny8gpcd20zr1wxx6ggf28jgh7sgd5r1skpsvjpbfqx2"))))
13536 (build-system emacs-build-system)
13537 (propagated-inputs
13538 `(("emacs-s" ,emacs-s)))
13539 (home-page "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
13540 (synopsis "Groovy related modes for Emacs")
13541 (description
13542 "This package provides @code{groovy-mode} for syntax highlighting in
13543 Groovy source files, REPL integration with run-groovy and Grails project
13544 navigation with the grails mode.")
13545 (license license:gpl3+)))
13546
13547 (define-public emacs-jenkinsfile-mode
13548 (let ((commit "00d259ff9b870d234540e00e1d7c83cccdb063b8")
13549 (revision "1"))
13550 (package
13551 (name "emacs-jenkinsfile-mode")
13552 (version (git-version "0.0.1" revision commit))
13553 (source (origin
13554 (method git-fetch)
13555 (uri (git-reference
13556 (url "https://github.com/john2x/jenkinsfile-mode")
13557 (commit commit)))
13558 (file-name (git-file-name name version))
13559 (sha256
13560 (base32
13561 "0srf6xdjnrd4v4ks9pal7i48wmkcl4q5ry7d0yzfx1c9pz2qg9zx"))))
13562 (propagated-inputs
13563 `(("emacs-groovy-modes" ,emacs-groovy-modes)))
13564 (build-system emacs-build-system)
13565 (home-page "https://github.com/john2x/jenkinsfile-mode/")
13566 (synopsis "Emacs major-mode for editing Jenkinsfile")
13567 (description "This package provides a @code{jenkinsfile-mode} derived
13568 from @code{groovy-mode} for editing Jenkins declarative pipeline files.")
13569 (license license:gpl3+))))
13570
13571 (define-public emacs-org-tree-slide
13572 (let ((commit "036a36eec1cf712d3db155572aed325daa372eb5")
13573 (revision "2"))
13574 (package
13575 (name "emacs-org-tree-slide")
13576 (version (git-version "2.8.4" revision commit))
13577 (source (origin
13578 (method git-fetch)
13579 (uri (git-reference
13580 (url "https://github.com/takaxp/org-tree-slide")
13581 (commit commit)))
13582 (sha256
13583 (base32
13584 "1r8ncx25xmxicgciyv5przp68y8qgy40fm10ba55awvql4xcm0yk"))
13585 (file-name (git-file-name name version))))
13586 (build-system emacs-build-system)
13587 (home-page "https://github.com/takaxp/org-tree-slide")
13588 (synopsis "Presentation tool for org-mode")
13589 (description
13590 "Org-tree-slide provides a slideshow mode to view org-mode files. Use
13591 @code{org-tree-slide-mode} to enter the slideshow mode, and then @kbd{C->} and
13592 @kbd{C-<} to jump to the next and previous slide.")
13593 (license license:gpl3+))))
13594
13595 (define-public emacs-scratch-el
13596 (let ((commit "2cdf2b841ce7a0987093f65b0cc431947549f897")
13597 (revision "1"))
13598 (package
13599 (name "emacs-scratch-el")
13600 (version (git-version "1.2" revision commit))
13601 (source (origin
13602 (method git-fetch)
13603 (uri (git-reference
13604 (url "https://github.com/ieure/scratch-el")
13605 (commit commit)))
13606 (file-name (git-file-name name version))
13607 (sha256
13608 (base32
13609 "0wscsndynjmnliajqaz28r1ww81j8wh84zwaaswx51abhwgl0idf"))))
13610 (build-system emacs-build-system)
13611 (native-inputs
13612 `(("texinfo" ,texinfo)))
13613 (arguments
13614 '(#:phases
13615 (modify-phases %standard-phases
13616 (add-after 'install 'install-doc
13617 (lambda* (#:key outputs #:allow-other-keys)
13618 (unless (invoke "makeinfo" "scratch.texi")
13619 (error "makeinfo failed"))
13620 (install-file "scratch.info"
13621 (string-append (assoc-ref outputs "out")
13622 "/share/info"))
13623 #t)))))
13624 (home-page "https://github.com/ieure/scratch-el/")
13625 (synopsis "Create scratch buffers with the same mode as current buffer")
13626 (description "Scratch is an extension to Emacs that enables one to create
13627 scratch buffers that are in the same mode as the current buffer. This is
13628 notably useful when working on code in some language; you may grab code into a
13629 scratch buffer, and, by virtue of this extension, do so using the Emacs
13630 formatting rules for that language.")
13631 (license license:bsd-2))))
13632
13633 (define-public emacs-kv
13634 (package
13635 (name "emacs-kv")
13636 (version "0.0.19")
13637 (source
13638 (origin
13639 (method git-fetch)
13640 (uri (git-reference
13641 (url "https://github.com/nicferrier/emacs-kv")
13642 (commit "721148475bce38a70e0b678ba8aa923652e8900e")))
13643 (file-name (git-file-name name version))
13644 (sha256
13645 (base32
13646 "0r0lz2s6gvy04fwnafai668jsf4546h4k6zd6isx5wpk0n33pj5m"))))
13647 (build-system emacs-build-system)
13648 (arguments
13649 `(#:tests? #t
13650 #:test-command '("emacs" "--batch" "-l" "kv-tests.el"
13651 "-f" "ert-run-tests-batch-and-exit")))
13652 (home-page "https://github.com/nicferrier/emacs-kv")
13653 (synopsis "Key/Value data structures library for Emacs Lisp")
13654 (description "@code{emacs-kv} is a collection of tools for dealing with
13655 key/value data structures such as plists, alists and hash-tables in Emacs
13656 Lisp.")
13657 (license license:gpl3+)))
13658
13659 (define-public emacs-esxml
13660 (package
13661 (name "emacs-esxml")
13662 (version "0.3.4")
13663 (source (origin
13664 (method git-fetch)
13665 (uri (git-reference
13666 (url "https://github.com/tali713/esxml")
13667 (commit version)))
13668 (file-name (git-file-name name version))
13669 (sha256
13670 (base32
13671 "00vv8a75wdklygdyr4km9mc2ismxak69c45jmcny41xl44rp9x8m"))))
13672 (build-system emacs-build-system)
13673 (arguments
13674 `(#:phases
13675 (modify-phases %standard-phases
13676 (add-after 'unpack 'fix-sources
13677 (lambda _
13678 ;; See: https://github.com/tali713/esxml/pull/28.
13679 (substitute* "css-lite.el"
13680 ((";;; main interface")
13681 (string-append ";;; main interface\n"
13682 "(require 'cl-lib)"))
13683 (("mapcan")
13684 "cl-mapcan")
13685 (("',\\(cl-mapcan #'process-css-rule rules\\)")
13686 "(cl-mapcan #'process-css-rule ',rules)"))
13687 (substitute* "esxml-form.el"
13688 ((",esxml-form-field-defn")
13689 "#'esxml-form-field-defn"))
13690 ;; See: https://github.com/tali713/esxml/issues/25
13691 (delete-file "esxpath.el")
13692 #t)))))
13693 (propagated-inputs
13694 `(("emacs-kv" ,emacs-kv)))
13695 (home-page "https://github.com/tali713/esxml/")
13696 (synopsis "SXML for EmacsLisp")
13697 (description "This is XML/XHTML done with S-Expressions in EmacsLisp.
13698 Simply, this is the easiest way to write HTML or XML in Lisp. This library
13699 uses the native form of XML representation as used by many libraries already
13700 included within Emacs. See @code{esxml-to-xml} for a concise description of
13701 the format.")
13702 (license license:gpl3+)))
13703
13704 (define-public emacs-nov-el
13705 (package
13706 (name "emacs-nov-el")
13707 (version "0.3.1")
13708 (source
13709 (origin
13710 (method git-fetch)
13711 (uri (git-reference
13712 (url "https://depp.brause.cc/nov.el.git")
13713 (commit version)))
13714 (file-name (git-file-name name version))
13715 (sha256
13716 (base32 "13r7lvyyyv62m57m4s4xjs4qz2ckhqk6ib514px7qzc7mdzcz9i9"))))
13717 (build-system emacs-build-system)
13718 (arguments
13719 `(#:phases
13720 (modify-phases %standard-phases
13721 (add-after 'unpack 'embed-path-to-unzip
13722 (lambda _
13723 (substitute* "nov.el"
13724 (("\\(executable-find \"unzip\"\\)")
13725 (string-append "\"" (which "unzip") "\"")))
13726 #t)))))
13727 (propagated-inputs
13728 `(("emacs-dash" ,emacs-dash)
13729 ("emacs-esxml" ,emacs-esxml)))
13730 (inputs
13731 `(("unzip" ,unzip)))
13732 (home-page "https://depp.brause.cc/nov.el/")
13733 (synopsis "Major mode for reading EPUBs in Emacs")
13734 (description "@code{nov.el} provides a major mode for reading EPUB
13735 documents.
13736
13737 Features:
13738
13739 @itemize
13740 @item Basic navigation (jump to TOC, previous/next chapter)
13741 @item Remembering and restoring the last read position
13742 @item Jump to next chapter when scrolling beyond end
13743 @item Renders EPUB2 (@code{.ncx}) and EPUB3 (@code{<nav>}) TOCs
13744 @item Hyperlinks to internal and external targets
13745 @item Supports textual and image documents
13746 @item View source of document files
13747 @item Metadata display
13748 @item Image rescaling
13749 @end itemize
13750 ")
13751 (license license:gpl3+)))
13752
13753 (define-public epipe
13754 (package
13755 (name "epipe")
13756 (version "0.1.0")
13757 (source
13758 (origin
13759 (method git-fetch)
13760 (uri (git-reference
13761 (url "https://github.com/cute-jumper/epipe")
13762 (commit version)))
13763 (file-name (git-file-name name version))
13764 (sha256
13765 (base32 "0lkisi1s7sn12nx8zh58qmsxwnk1rjwryj18wcbr148xqz3swg57"))))
13766 (build-system trivial-build-system)
13767 (inputs
13768 `(("bash" ,bash)
13769 ("perl" ,perl)))
13770 (arguments
13771 `(#:modules
13772 ((guix build utils))
13773 #:builder
13774 (begin
13775 (use-modules (guix build utils))
13776 ;; Extract source.
13777 (copy-recursively (assoc-ref %build-inputs "source") "source")
13778 (chdir "source")
13779 ;; Patch shebangs.
13780 (substitute* "epipe"
13781 (("/usr/bin/env bash")
13782 (string-append (assoc-ref %build-inputs "bash") "/bin/bash")))
13783 (patch-shebang "epipe.pl"
13784 (list (string-append (assoc-ref %build-inputs "perl")
13785 "/bin")))
13786 ;; Install.
13787 (for-each (lambda (file)
13788 (install-file file (string-append %output "/bin")))
13789 '("epipe" "epipe.pl"))
13790 #t)))
13791 (home-page "https://github.com/cute-jumper/epipe")
13792 (synopsis "Pipe to the @code{emacsclient}")
13793 (description "@code{epipe} provides an utility to use your editor in
13794 the pipeline, featuring the support for running @code{emacsclient}.")
13795 (license license:gpl3+)))
13796
13797 (define-public emacs-hcl-mode
13798 (package
13799 (name "emacs-hcl-mode")
13800 (version "0.03")
13801 (source
13802 (origin
13803 (method git-fetch)
13804 (uri (git-reference
13805 (url "https://github.com/syohex/emacs-hcl-mode")
13806 (commit version)))
13807 (file-name (git-file-name name version))
13808 (sha256
13809 (base32 "0jqrgq15jz6pvx38pnwkizzfiih0d3nxqphyrc92nqpcyimg8b6g"))))
13810 (build-system emacs-build-system)
13811 (home-page "https://github.com/syohex/emacs-hcl-mode")
13812 (synopsis "Major mode for the Hashicorp Configuration Language")
13813 (description
13814 "@code{emacs-hcl-mode} provides an Emacs major mode for working with
13815 @acronym{HCL, Hashicorp Configuration Language}. It provides syntax
13816 highlighting and indentation support.")
13817 (license license:gpl3+)))
13818
13819 (define-public emacs-terraform-mode
13820 (package
13821 (name "emacs-terraform-mode")
13822 (version "0.06")
13823 (source
13824 (origin
13825 (method git-fetch)
13826 (uri (git-reference
13827 (url "https://github.com/syohex/emacs-terraform-mode")
13828 (commit version)))
13829 (file-name (git-file-name name version))
13830 (sha256
13831 (base32 "05hn8kskx9lcgn7bzgam99c629zlryir2pickwrqndacjrqpdykx"))))
13832 (build-system emacs-build-system)
13833 (propagated-inputs
13834 `(("emacs-hcl-mode" ,emacs-hcl-mode)))
13835 (home-page "https://github.com/syohex/emacs-terraform-mode")
13836 (synopsis "Major mode for Terraform")
13837 (description
13838 "@code{emacs-terraform-mode} provides a major mode for working with
13839 @uref{https://www.terraform.io/, Terraform} configuration files. Most of the
13840 functionality is inherited from @code{hcl-mode}.")
13841 (license license:gpl3+)))
13842
13843 (define-public emacs-exec-path-from-shell
13844 (package
13845 (name "emacs-exec-path-from-shell")
13846 (version "1.12")
13847 (source
13848 (origin
13849 (method git-fetch)
13850 (uri (git-reference
13851 (url "https://github.com/purcell/exec-path-from-shell")
13852 (commit version)))
13853 (file-name (git-file-name name version))
13854 (sha256
13855 (base32
13856 "1ga8bpxngd3ph2hdiik92c612ki71qxw818i6rgx6f6a5r0sbf3p"))))
13857 (build-system emacs-build-system)
13858 (home-page "https://github.com/purcell/exec-path-from-shell")
13859 (synopsis "Get environment variables such as @var{PATH} from the shell")
13860 (description
13861 "This library allows the user to set Emacs @var{exec-path} and @var{PATH}
13862 from the shell @var{PATH}, so that @code{shell-command}, @code{compile} and
13863 the like work as expected on systems on which Emacs is not guaranteed to
13864 inherit a login shell's environment variables. It also allows other
13865 environment variables to be retrieved from the shell, so that Emacs will see
13866 the same values you get in a terminal.")
13867 (license license:gpl3+)))
13868
13869 (define-public emacs-frog-menu
13870 (package
13871 (name "emacs-frog-menu")
13872 (version "0.2.11")
13873 (source
13874 (origin
13875 (method url-fetch)
13876 (uri (string-append "https://elpa.gnu.org/packages/"
13877 "frog-menu-" version ".el"))
13878 (sha256
13879 (base32 "06iw11z61fd0g4w3562k3smcmzaq3nivvvc6gzm8y8k5pcrqzdff"))))
13880 (build-system emacs-build-system)
13881 (propagated-inputs
13882 `(("emacs-avy" ,emacs-avy)
13883 ("emacs-posframe" ,emacs-posframe)))
13884 (home-page "https://github.com/clemera/frog-menu")
13885 (synopsis "Quickly pick items from ad hoc menus")
13886 (description
13887 "This package provides a popup offering a preview of a list of candidates
13888 on which user-defined dispatch actions can act.")
13889 (license license:gpl3+)))
13890
13891 (define-public emacs-frog-jump-buffer
13892 (let ((commit "2d7b342785ae27d45f5d252272df6eb773c78e20")
13893 (revision "1"))
13894 (package
13895 (name "emacs-frog-jump-buffer")
13896 (version (git-version "0.1.4" revision commit))
13897 (source
13898 (origin
13899 (method git-fetch)
13900 (uri (git-reference
13901 (url "https://github.com/waymondo/frog-jump-buffer")
13902 (commit commit)))
13903 (file-name (git-file-name name version))
13904 (sha256
13905 (base32
13906 "1z00by8hiss1r2lwmzrl8pnz6jykia2849dqqm4l3z5rf6lwvc0f"))))
13907 (build-system emacs-build-system)
13908 (propagated-inputs
13909 `(("emacs-dash" ,emacs-dash)
13910 ("emacs-frog-menu" ,emacs-frog-menu)
13911 ("emacs-avy" ,emacs-avy)))
13912 (home-page "https://github.com/waymondo/frog-jump-buffer")
13913 (synopsis "Jump to any Emacs buffer with minimal keystrokes")
13914 (description
13915 "This package provides a preview window of buffers that can be switched
13916 to with quicklink-style selections.")
13917 (license license:gpl3+))))
13918
13919 (define-public emacs-deft
13920 (package
13921 (name "emacs-deft")
13922 (version "0.8")
13923 (source
13924 (origin
13925 (method git-fetch)
13926 (uri (git-reference
13927 (url "https://github.com/jrblevin/deft")
13928 (commit (string-append "v" version))))
13929 (file-name (git-file-name name version))
13930 (sha256
13931 (base32
13932 "0z7cilgiz6krvl5h2z72hkch43qxmypb0k6p5vxn5lx1p6v0mrf2"))))
13933 (build-system emacs-build-system)
13934 (home-page "https://jblevins.org/projects/deft/")
13935 (synopsis "Quickly browse, filter, and edit plain text notes")
13936 (description
13937 "Deft is an Emacs mode for quickly browsing, filtering, and editing
13938 directories of plain text notes, inspired by Notational Velocity.")
13939 (license license:bsd-3)))
13940
13941 (define-public emacs-anzu
13942 (package
13943 (name "emacs-anzu")
13944 (version "0.62")
13945 (source
13946 (origin
13947 (method git-fetch)
13948 (uri (git-reference
13949 (url "https://github.com/syohex/emacs-anzu")
13950 (commit version)))
13951 (file-name (git-file-name name version))
13952 (sha256
13953 (base32 "1lzvc0ihcbplir4hqfyxfqpsd78arz15gk92kmq4f8ggbkl37fan"))))
13954 (build-system emacs-build-system)
13955 (home-page "https://github.com/syohex/emacs-anzu")
13956 (synopsis "Show number of matches in mode-line while searching")
13957 (description
13958 "Anzu provides a minor mode which displays \"current match/total
13959 matches\" in the mode line in various search modes. This is an Emacs port of
13960 Anzu.zim.")
13961 (license license:gpl3+)))
13962
13963 (define-public emacs-ascii-art-to-unicode
13964 (package
13965 (name "emacs-ascii-art-to-unicode")
13966 (version "1.12")
13967 (source
13968 (origin
13969 (method url-fetch)
13970 (uri (string-append "https://elpa.gnu.org/packages/ascii-art-to-unicode-"
13971 version ".el"))
13972 (sha256
13973 (base32
13974 "1w9h2lyriafxj71r79774gh822cz8mry3gdfzyj6ym6v9mvqypna"))))
13975 (build-system emacs-build-system)
13976 (home-page "https://elpa.gnu.org/packages/ascii-art-to-unicode.html")
13977 (synopsis "ASCII to Unicode art converter for Emacs")
13978 (description "This Emacs package provides the commands @command{aa2u} and
13979 @command{aa2u-rectangle}. Both of these commands can be used to convert
13980 simple ASCII art line drawings to Unicode; the former works on the active
13981 region of the buffer, while the latter works on rectangular selections.")
13982 (license license:gpl3+)))
13983
13984 (define-public emacs-emmet-mode
13985 (let ((commit "1acb821e0142136344ccf40c1e5fb664d7db2e70")
13986 (revision "1"))
13987 (package
13988 (name "emacs-emmet-mode")
13989 (version (git-version "1.0.8" revision commit))
13990 (source (origin
13991 (method git-fetch)
13992 (uri (git-reference
13993 (url "https://github.com/smihica/emmet-mode")
13994 (commit commit)))
13995 (file-name (git-file-name name version))
13996 (sha256
13997 (base32
13998 "1p25h191bm0h5b3w5apg7wks51k7pb7h4dlww4jbl9ri4d33fzcl"))))
13999 (build-system emacs-build-system)
14000 (home-page "https://github.com/smihica/emmet-mode")
14001 (synopsis "Unofficial Emmet's support for Emacs")
14002 (description
14003 "Unfold CSS-selector-like expressions to markup. It is intended to be
14004 used with SGML-like languages: XML, HTML, XHTML, XSL, etc.")
14005 (license license:gpl3+))))
14006
14007 (define-public emacs-ergoemacs-mode
14008 (let ((commit "3ce23bba3cb50562693860f87f3528c471d603ba")
14009 (revision "1"))
14010 (package
14011 (name "emacs-ergoemacs-mode")
14012 (version (git-version "5.16.10.12" revision commit))
14013 (source
14014 (origin
14015 (method git-fetch)
14016 (uri (git-reference
14017 (url "https://github.com/ergoemacs/ergoemacs-mode")
14018 (commit commit)))
14019 (file-name (git-file-name name version))
14020 (sha256
14021 (base32
14022 "1s3b9bridl78hh1mxmdk9nqlmqhibbaxk0a1cixmsf23s06w8w6l"))))
14023 (build-system emacs-build-system)
14024 (propagated-inputs
14025 `(("emacs-undo-tree" ,emacs-undo-tree)))
14026 (home-page "https://ergoemacs.github.io/")
14027 (synopsis "Emacs mode based on common modern interface and ergonomics")
14028 (description
14029 "This package provides an efficient Emacs keybinding set based on
14030 statistics of command frequency, and supports common shortcuts for open,
14031 close, copy, cut, paste, undo, redo.")
14032 (license license:gpl3+))))
14033
14034 (define-public emacs-password-store
14035 (package
14036 (name "emacs-password-store")
14037 (version "1.7.3")
14038 (source (origin
14039 (method url-fetch)
14040 (uri
14041 (string-append "https://git.zx2c4.com/password-store/snapshot/"
14042 "password-store-" version ".tar.xz"))
14043 (sha256
14044 (base32
14045 "1x53k5dn3cdmvy8m4fqdld4hji5n676ksl0ql4armkmsds26av1b"))))
14046 (build-system emacs-build-system)
14047 (arguments
14048 `(#:phases
14049 (modify-phases %standard-phases
14050 (add-after 'unpack 'extract-el-file
14051 (lambda _
14052 (copy-file "contrib/emacs/password-store.el" "password-store.el")
14053 (delete-file-recursively "contrib")
14054 (delete-file-recursively "man")
14055 (delete-file-recursively "src")
14056 (delete-file-recursively "tests"))))))
14057 (propagated-inputs
14058 `(("emacs-f" ,emacs-f)
14059 ("emacs-s" ,emacs-s)
14060 ("emacs-with-editor" ,emacs-with-editor)
14061 ("password-store" ,password-store)))
14062 (home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs")
14063 (synopsis "Password store (pass) support for Emacs")
14064 (description
14065 "This package provides functions for working with pass (\"the
14066 standard Unix password manager\").")
14067 (license license:gpl2+)))
14068
14069 (define-public emacs-auth-source-pass
14070 (let ((commit "847a1f54ed48856b4dfaaa184583ef2c84173edf")
14071 (revision "2"))
14072 (package
14073 (name "emacs-auth-source-pass")
14074 (version (git-version "5.0.0" revision commit))
14075 (source
14076 (origin
14077 (method git-fetch)
14078 (uri (git-reference
14079 (url "https://github.com/DamienCassou/auth-password-store")
14080 (commit commit)))
14081 (file-name (git-file-name name version))
14082 (sha256
14083 (base32 "0g48z5w6n3c54zqfpx65dfyl9jqbl15idvbb1hhw2pd9f9r8fykk"))))
14084 (build-system emacs-build-system)
14085 (arguments
14086 `(#:tests? #t
14087 #:test-command '("emacs" "--batch"
14088 "-L" "."
14089 "-l" "test/auth-source-pass-tests.el"
14090 "-f" "ert-run-tests-batch-and-exit")))
14091 (home-page "https://github.com/DamienCassou/auth-password-store")
14092 (synopsis "Integrate @code{auth-source} with @code{password-store}")
14093 (description "This package helps Emacs integrate with the Unix
14094 @code{password-store} application.")
14095 (license license:gpl3+))))
14096
14097 (define-public emacs-pass
14098 (package
14099 (name "emacs-pass")
14100 (version "2.0")
14101 (source
14102 (origin
14103 (method git-fetch)
14104 (uri (git-reference
14105 (url "https://github.com/NicolasPetton/pass")
14106 (commit version)))
14107 (file-name (git-file-name name version))
14108 (sha256
14109 (base32 "0jc8j421mlflspg24jvrqc2n3y5n3cpk3hjy560il8g36xi1049p"))))
14110 (build-system emacs-build-system)
14111 (propagated-inputs
14112 `(("emacs-password-store" ,emacs-password-store)
14113 ("emacs-f" ,emacs-f)))
14114 (home-page "https://github.com/NicolasPetton/pass")
14115 (synopsis "Major mode for @file{password-store.el}")
14116 (description "This is a major mode for managing password-store (pass)
14117 keychains. The keychain entries are displayed in a directory-like structure
14118 and can be consulted and modified.")
14119 (license license:gpl3+)))
14120
14121 (define-public emacs-psc-ide
14122 ;; There is no proper release. The base version is extracted from the
14123 ;; "Version" keyword in the main file.
14124 (let ((commit "7fc2b841be25f5bc5e1eb7d0634436181c38b3fe")
14125 (revision "1"))
14126 (package
14127 (name "emacs-psc-ide")
14128 (version (git-version "0.1.0" revision commit))
14129 (source
14130 (origin
14131 (method git-fetch)
14132 (uri
14133 (git-reference
14134 (url "https://github.com/purescript-emacs/psc-ide-emacs")
14135 (commit commit)))
14136 (file-name (git-file-name name version))
14137 (sha256
14138 (base32 "0r0fymyai30jimm34z1cmav4wgij8ci6s1d9y7qigygfbbfrdsmj"))))
14139 (build-system emacs-build-system)
14140 (propagated-inputs
14141 `(("emacs-company" ,emacs-company)
14142 ("emacs-dash" ,emacs-dash)
14143 ("emacs-flycheck" ,emacs-flycheck)
14144 ("emacs-let-alist" ,emacs-let-alist)
14145 ("emacs-s" ,emacs-s)))
14146 (home-page "https://github.com/purescript-emacs/psc-ide-emacs")
14147 (synopsis "Emacs integration for PureScript's psc-ide tool")
14148 (description
14149 "This package provices Emacs integration for @code{psc-ide}, an IDE
14150 protocol for PureScript programming language. It features:
14151
14152 @itemize
14153 @item Completions
14154 @item Type at point
14155 @item Go to definition
14156 @item Automatic imports
14157 @item Case split
14158 @item Build system integration, and
14159 @item Flycheck support
14160 @end itemize")
14161 (license license:gpl3+))))
14162
14163 (define-public emacs-evil-anzu
14164 (package
14165 (name "emacs-evil-anzu")
14166 (version "0.03")
14167 (source
14168 (origin
14169 (method git-fetch)
14170 (uri (git-reference
14171 (url "https://github.com/syohex/emacs-evil-anzu")
14172 (commit version)))
14173 (file-name (git-file-name name version))
14174 (sha256
14175 (base32 "0lw7fg4gqwj30r0l6k2ni36sxqkf65zf0d0z3rxnpwbxlf8dlkrr"))))
14176 (build-system emacs-build-system)
14177 (propagated-inputs
14178 `(("emacs-evil" ,emacs-evil)
14179 ("emacs-anzu" ,emacs-anzu)))
14180 (home-page "https://github.com/syohex/emacs-evil-anzu")
14181 (synopsis "Anzu for evil-mode")
14182 (description "@code{anzu} provides a minor mode that displays the current
14183 match and total match information in the mode-line in various search modes.")
14184 (license license:gpl3+)))
14185
14186 (define-public emacs-pg
14187 (let ((commit "4f6516ec3946d95dcef49abb6703cc89ecb5183d"))
14188 (package
14189 (name "emacs-pg")
14190 (version (git-version "0.1" "1" commit))
14191 (source (origin
14192 (method git-fetch)
14193 (uri (git-reference (url "https://github.com/cbbrowne/pg.el")
14194 (commit commit)))
14195 (file-name (git-file-name name version))
14196 (sha256
14197 (base32
14198 "1zh7v4nnpzvbi8yj1ynlqlawk5bmlxi6s80b5f2y7hkdqb5q26k0"))))
14199 (build-system emacs-build-system)
14200 (home-page "https://github.com/cbbrowne/pg.el")
14201 (synopsis "Emacs Lisp interface for PostgreSQL")
14202 (description
14203 "This package provides an Emacs Lisp interface for PostgreSQL.")
14204 (license license:gpl3+))))
14205
14206 (define-public emacs-finalize
14207 (package
14208 (name "emacs-finalize")
14209 (version "2.0.0")
14210 (source
14211 (origin
14212 (method git-fetch)
14213 (uri (git-reference
14214 (url "https://github.com/skeeto/elisp-finalize")
14215 (commit version)))
14216 (file-name (git-file-name name version))
14217 (sha256
14218 (base32 "1gvlm4i62af5jscwz0jccc8ra0grprxpg2rlq91d5nn8dn5lpy79"))))
14219 (build-system emacs-build-system)
14220 (home-page "https://github.com/skeeto/elisp-finalize")
14221 (synopsis "Finalizers for Emacs Lisp")
14222 (description
14223 "This package runs a callback (a finalizer)
14224 after its registered lisp object has been garbage collected. This allows
14225 extra resources, such as buffers and processes, to be cleaned up after the
14226 object has been freed.")
14227 (license license:unlicense)))
14228
14229 (define-public emacs-emacsql
14230 (package
14231 (name "emacs-emacsql")
14232 (version "3.0.0")
14233 (source (origin
14234 (method git-fetch)
14235 (uri (git-reference
14236 (url "https://github.com/skeeto/emacsql")
14237 (commit (string-append version))))
14238 (file-name (git-file-name name version))
14239 (sha256
14240 (base32
14241 "1c84gxr1majqj4b59wgdy3lzm3ap66w9qsrnkx8hdbk9895ak81g"))))
14242 (build-system emacs-build-system)
14243 (arguments
14244 `(#:modules ((guix build emacs-build-system)
14245 (guix build utils)
14246 (guix build emacs-utils)
14247 (srfi srfi-26))
14248 #:phases
14249 (modify-phases %standard-phases
14250 (delete 'build) ;‘build-emacsql-sqlite’ compiles ‘*.el’ files.
14251 (add-before 'install 'patch-elisp-shell-shebangs
14252 (lambda _
14253 (substitute* (find-files "." "\\.el")
14254 (("/bin/sh") (which "sh")))
14255 #t))
14256 (add-after 'patch-elisp-shell-shebangs 'setenv-shell
14257 (lambda _
14258 (setenv "SHELL" "sh")))
14259 (add-after 'setenv-shell 'build-emacsql-sqlite
14260 (lambda _
14261 (invoke "make" "binary" "CC=gcc")))
14262 (add-after 'build-emacsql-sqlite 'install-emacsql-sqlite
14263 ;; This build phase installs emacs-emacsql binary.
14264 (lambda* (#:key outputs #:allow-other-keys)
14265 (install-file "sqlite/emacsql-sqlite"
14266 (string-append (assoc-ref outputs "out")
14267 "/bin"))
14268 #t))
14269 (add-after 'install-emacsql-sqlite 'patch-emacsql-sqlite.el
14270 ;; This build phase removes interactive prompts
14271 ;; and makes sure Emacs look for binaries in the right places.
14272 (lambda* (#:key outputs #:allow-other-keys)
14273 (let ((file "emacsql-sqlite.el"))
14274 (chmod file #o644)
14275 (emacs-substitute-sexps file
14276 ;; Make sure Emacs looks for ‘GCC’ binary in the right place.
14277 ("(executable-find" (which "gcc"))
14278 ;; Make sure Emacs looks for ‘emacsql-sqlite’ binary
14279 ;; in the right place.
14280 ("(defvar emacsql-sqlite-executable"
14281 (string-append (assoc-ref outputs "out")
14282 "/bin/emacsql-sqlite"))))))
14283 (replace 'install
14284 (lambda* (#:key outputs #:allow-other-keys)
14285 (let* ((out (assoc-ref outputs "out")))
14286 (install-file "sqlite/emacsql-sqlite"
14287 (string-append out "/bin"))
14288 (for-each (cut install-file <>
14289 (string-append out "/share/emacs/site-lisp"))
14290 (find-files "." "\\.elc*$")))
14291 #t)))))
14292 (inputs
14293 `(("emacs-minimal" ,emacs-minimal)
14294 ("mariadb" ,mariadb "lib")
14295 ("mariadb-dev" ,mariadb "dev")
14296 ("postgresql" ,postgresql)))
14297 (propagated-inputs
14298 `(("emacs-finalize" ,emacs-finalize)
14299 ("emacs-pg" ,emacs-pg)))
14300 (home-page "https://github.com/skeeto/emacsql")
14301 (synopsis "Emacs high-level SQL database front-end")
14302 (description "Any readable Lisp value can be stored as a value in EmacSQL,
14303 including numbers, strings, symbols, lists, vectors, and closures. EmacSQL
14304 has no concept of @code{TEXT} values; it's all just Lisp objects. The Lisp
14305 object @code{nil} corresponds 1:1 with @code{NULL} in the database.")
14306 (license license:gpl3+)))
14307
14308 (define-public emacs-emacsql-sqlite3
14309 (package
14310 (name "emacs-emacsql-sqlite3")
14311 (version "1.0.1")
14312 (source (origin
14313 (method git-fetch)
14314 (uri (git-reference
14315 (url "https://github.com/cireu/emacsql-sqlite3")
14316 (commit version)))
14317 (file-name (git-file-name name version))
14318 (sha256
14319 (base32
14320 "1yy9y27rckm776jnl2rh1fz3bh09690xwzq7102vlw7xkb9s7jhj"))))
14321 (build-system emacs-build-system)
14322 (native-inputs
14323 `(("ert-runner" ,emacs-ert-runner)))
14324 (inputs
14325 `(("sqlite" ,sqlite)))
14326 (propagated-inputs
14327 `(("emacs-emacsql" ,emacs-emacsql)))
14328 (arguments
14329 `(#:tests? #t
14330 #:test-command '("emacs" "-Q" "--batch" "-L" "."
14331 "--load" "emacsql-sqlite3-test.el"
14332 "-f" "ert-run-tests-batch-and-exit")
14333 #:phases
14334 (modify-phases %standard-phases
14335 (add-after 'unpack 'embed-path-to-sqlite3
14336 (lambda _
14337 (substitute* "emacsql-sqlite3.el"
14338 (("\\(executable-find \"sqlite3\"\\)")
14339 (string-append "\"" (which "sqlite3") "\"")))
14340 #t)))))
14341 (home-page "https://github.com/cireu/emacsql-sqlite3")
14342 (synopsis "EmacSQL backend for SQLite")
14343 (description "This is yet another EmacSQL backend for SQLite which uses
14344 official @command{sqlite3} executable to access SQL database.")
14345 (license license:gpl3+)))
14346
14347 (define-public emacs-closql
14348 ;; Take a commit newer than 1.0.0 release because of Emacs upgrade to 26.3.
14349 (let ((commit "70b98dbae53611d10a461d9b4a6f71086910dcef"))
14350 (package
14351 (name "emacs-closql")
14352 (version (git-version "1.0.0" "1" commit))
14353 (source
14354 (origin
14355 (method git-fetch)
14356 (uri (git-reference
14357 (url "https://github.com/emacscollective/closql")
14358 (commit commit)))
14359 (file-name (git-file-name name version))
14360 (sha256
14361 (base32
14362 "1wvhrihg663f61yzc7f0vha2abjdnlwbk0gjcwakdfk1bhwf5ikh"))))
14363 (build-system emacs-build-system)
14364 (propagated-inputs
14365 `(("emacs-emacsql" ,emacs-emacsql)))
14366 (home-page "https://github.com/emacscollective/closql")
14367 (synopsis "Store EIEIO objects using EmacSQL")
14368 (description
14369 "This package stores uniform EIEIO objects in an EmacSQL
14370 database. SQLite is used as backend. This library imposes some restrictions
14371 on what kind of objects can be stored; it isn't intended to store arbitrary
14372 objects. All objects have to share a common superclass and subclasses cannot
14373 add any additional instance slots.")
14374 (license license:gpl3))))
14375
14376 (define-public emacs-epkg
14377 (package
14378 (name "emacs-epkg")
14379 (version "3.2.2")
14380 (source
14381 (origin
14382 (method git-fetch)
14383 (uri (git-reference
14384 (url "https://github.com/emacscollective/epkg")
14385 (commit (string-append "v" version))))
14386 (file-name (git-file-name name version))
14387 (sha256
14388 (base32
14389 "1pxz611qb3m33r6343h0xhwqvvhjl131zyc2klplzgb23rkm8lk0"))))
14390 (build-system emacs-build-system)
14391 (propagated-inputs
14392 `(("emacs-closql" ,emacs-closql)
14393 ("emacs-dash" ,emacs-dash)))
14394 (home-page "https://emacsmirror.net")
14395 (synopsis "Browse the Emacsmirror package database")
14396 (description "This package provides access to a local copy of the
14397 Emacsmirror package database. It provides low-level functions for querying
14398 the database and a @file{package.el} user interface for browsing the database.
14399 Epkg itself is not a package manager.
14400
14401 Getting a local copy:
14402
14403 @example
14404 git clone https://github.com/emacsmirror/epkgs.git ~/.emacs.d/epkgs
14405 cd ~/.emacs.d/epkgs
14406 git submodule init
14407 git config --global url.https://github.com/.insteadOf git@@github.com:
14408 git submodule update
14409 @end example
14410
14411 Some submodule may be missing. In this case Git will prompt for a GitHub user
14412 name and password. To skip it press a @key{Return} key.
14413
14414 You could get a Epkg package list by invoking @code{epkg-list-packages} in
14415 Emacs.")
14416 (license license:gpl3+)))
14417
14418 (define-public emacs-elisp-slime-nav
14419 (package
14420 (name "emacs-elisp-slime-nav")
14421 (version "0.9")
14422 (source
14423 (origin
14424 (method git-fetch)
14425 (uri (git-reference
14426 (url "https://github.com/purcell/elisp-slime-nav")
14427 (commit version)))
14428 (file-name (git-file-name name version))
14429 (sha256
14430 (base32 "11vyy0bvzbs1h1kggikrvhd658j7c730w0pdp6qkm60rigvfi1ih"))))
14431 (build-system emacs-build-system)
14432 (home-page "https://github.com/purcell/elisp-slime-nav")
14433 (synopsis "Make @code{M-.} and @code{M-,} work for elisp like they do in SLIME")
14434 (description
14435 "This package provides SLIME's convenient @code{M-.}and @code{M-,} navigation
14436 in @code{emacs-lisp-mode}, together with an elisp equivalent of
14437 @code{slime-describe-symbol}.")
14438 (license license:gpl3+)))
14439
14440 (define-public emacs-dedicated
14441 (package
14442 (name "emacs-dedicated")
14443 (version "1.0.0")
14444 (source
14445 (origin
14446 (method git-fetch)
14447 (uri (git-reference
14448 (url "https://github.com/emacsorphanage/dedicated")
14449 (commit version)))
14450 (file-name (git-file-name name version))
14451 (sha256
14452 (base32 "0pba9s0h37sxyqh733vi6k5raa4cs7aradipf3826inw36jcw414"))))
14453 (build-system emacs-build-system)
14454 (home-page "https://github.com/emacsorphanage/dedicated")
14455 (synopsis "Emacs minor mode for toggling a windows's \"dedicated\" flag")
14456 (description
14457 "This simple Emacs minor mode allows you to toggle a window's
14458 \"dedicated\" flag. When a window is \"dedicated\", Emacs will not select
14459 files into that window. This can be quite handy since many commands will use
14460 another window to show results (compilation mode, starting info, and so on).
14461 A dedicated window won't be used for such a purpose. For details, please read
14462 the source file.")
14463 (license license:gpl2+)))
14464
14465 (define-public emacs-nnreddit
14466 (let ((commit "9843f99d01fd8f1eea2fc685965a7c7f4eeb187a")
14467 (revision "1"))
14468 (package
14469 (name "emacs-nnreddit")
14470 (version (string-append "0.0.1-" revision "."
14471 (string-take commit 7)))
14472 (source (origin
14473 (method git-fetch)
14474 (uri (git-reference
14475 (url "https://github.com/paul-issartel/nnreddit")
14476 (commit commit)))
14477 (file-name (git-file-name name version))
14478 (sha256
14479 (base32
14480 "0j4h3bnga640250jdq8bwyja49r41ssrsjd6lba4gzzllqk02nbn"))))
14481 (build-system emacs-build-system)
14482 (home-page "https://github.com/paul-issartel/nnreddit")
14483 (synopsis "Reddit backend for the Gnus newsreader")
14484 (description "@url{https://www.reddit.com} backend for the Gnus
14485 newsreader.")
14486 (license license:gpl3+))))
14487
14488 (define-public emacs-makey
14489 (package
14490 (name "emacs-makey")
14491 (version "0.3")
14492 (source
14493 (origin
14494 (method git-fetch)
14495 (uri (git-reference
14496 (url "https://github.com/mickeynp/makey")
14497 (commit version)))
14498 (file-name (git-file-name name version))
14499 (sha256
14500 (base32 "1rr7vpm3xxzcaam3m8xni3ajy8ycyljix07n2jzczayri9sd8csy"))))
14501 (build-system emacs-build-system)
14502 (home-page "https://github.com/mickeynp/makey")
14503 (synopsis "Emacs interactive command-line mode")
14504 (description
14505 "This package provides an Emacs interactive command-line mode.")
14506 (license license:gpl3+)))
14507
14508 (define-public emacs-outorg
14509 (let ((commit "78b0695121fb974bc4e971eb4ef7f8afd6d89d64"))
14510 (package
14511 (name "emacs-outorg")
14512 (version (git-version "2.0" "1" commit))
14513 (source
14514 (origin
14515 (method git-fetch)
14516 (uri (git-reference
14517 (url "https://github.com/alphapapa/outorg")
14518 (commit commit)))
14519 (file-name (git-file-name name version))
14520 (sha256
14521 (base32
14522 "03aclh4m3f7rb821gr9pwvnqkkl91px3qxdcarpf3ypa1x4fxvlj"))))
14523 (build-system emacs-build-system)
14524 (home-page "https://github.com/alphapapa/outorg")
14525 (synopsis "Org-style comment editing")
14526 (description "Outorg is for editing comment-sections of source-code
14527 files in temporary Org-mode buffers. It turns conventional
14528 literate-programming upside-down in that the default mode is the
14529 programming-mode, and special action has to be taken to switch to the
14530 text-mode (i.e. Org-mode).")
14531 (license license:gpl3+))))
14532
14533 (define-public emacs-outshine
14534 (package
14535 (name "emacs-outshine")
14536 (version "3.0.1")
14537 (source (origin
14538 (method git-fetch)
14539 (uri (git-reference
14540 (url "https://github.com/alphapapa/outshine")
14541 (commit (string-append "v" version))))
14542 (file-name (git-file-name name version))
14543 (sha256
14544 (base32
14545 "1lh9f5dgdbwfyzxk6nsg1xwdjs8gc6p9mbyyhp6f8fnk3h0y88cg"))))
14546 (build-system emacs-build-system)
14547 (propagated-inputs
14548 `(("emacs-outorg" ,emacs-outorg)))
14549 (home-page "https://github.com/alphapapa/outshine")
14550 (synopsis "Emacs outline with outshine")
14551 (description "Outshine attempts to bring the look and feel of
14552 @code{org-mode} to an Emacs outside of the Org major-mode. It is an extension
14553 of @code{outline-minor-mode} (@code{org-mode} itself derives from
14554 outline-mode), so there is no such thing like an outshine mode, only
14555 @code{outline-minor-mode} with outshine extensions loaded.")
14556 (license license:gpl3+)))
14557
14558 (define-public emacs-frecency
14559 (let ((commit "31ef9ff4af1a4fed3dcc24ea74037feea8795c87")
14560 (version "0.1-pre")
14561 (revision "1"))
14562 (package
14563 (name "emacs-frecency")
14564 (version (git-version version revision commit))
14565 (source (origin
14566 (method git-fetch)
14567 (uri (git-reference
14568 (url "https://github.com/alphapapa/frecency.el")
14569 (commit commit)))
14570 (sha256
14571 (base32
14572 "051aihjdg3x22svaxhwylpi8i6s2x9j8syvsj1jgilgjjdy15l6j"))
14573 (file-name (git-file-name name version))))
14574 (build-system emacs-build-system)
14575 (propagated-inputs
14576 `(("emacs-a" ,emacs-a)
14577 ("emacs-dash" ,emacs-dash)))
14578 (home-page "https://github.com/alphapapa/frecency.el")
14579 (synopsis "Sort items by frequency and recency of access")
14580 (description "This package provides a way of sorting items via
14581 a heuristic based on frequency and recency.")
14582 (license license:gpl3+))))
14583
14584 (define-public emacs-org-recent-headings
14585 (package
14586 (name "emacs-org-recent-headings")
14587 (version "0.1")
14588 (source (origin
14589 (method git-fetch)
14590 (uri (git-reference
14591 (url "https://github.com/alphapapa/org-recent-headings")
14592 (commit version)))
14593 (file-name (git-file-name name version))
14594 (sha256
14595 (base32
14596 "0gsrzmg3mssh9s28yjm9m866fnhm1pcligssz1q6brga6dm6f2yy"))))
14597 (build-system emacs-build-system)
14598 (propagated-inputs
14599 `(("emacs-org" ,emacs-org)
14600 ("emacs-dash" ,emacs-dash)
14601 ("emacs-frecency" ,emacs-frecency)))
14602 (home-page "https://github.com/alphapapa/org-recent-headings")
14603 (synopsis "Navigate to recently used Org headings and lists")
14604 (description "This package maintains a list of recently used Org headings,
14605 as well as functions for navigating between these headings.")
14606 (license license:gpl3+)))
14607
14608 (define-public emacs-org-super-agenda
14609 ;; emacs-org-sidebar depends on a newer commit than the latest release version.
14610 (let ((commit "a87ca11fbbe72ab6c1c4c3b55ae9e1e93ebfb8ba")
14611 (revision "3"))
14612 (package
14613 (name "emacs-org-super-agenda")
14614 (version (git-version "1.1.1" revision commit))
14615 (source (origin
14616 (method git-fetch)
14617 (uri (git-reference
14618 (url "https://github.com/alphapapa/org-super-agenda")
14619 (commit commit)))
14620 (file-name (git-file-name name version))
14621 (sha256
14622 (base32
14623 "08b7babdaqblb6jff57an4kbcxk6fkhf668620fipfjgbsnqv3ff"))))
14624 (build-system emacs-build-system)
14625 (propagated-inputs
14626 `(("emacs-org" ,emacs-org)
14627 ("emacs-dash" ,emacs-dash)
14628 ("emacs-ts" ,emacs-ts)
14629 ("emacs-ht" ,emacs-ht)
14630 ("emacs-s" ,emacs-s)))
14631 (home-page "https://github.com/alphapapa/org-super-agenda")
14632 (synopsis "Supercharged Org agenda")
14633 (description "This package allows items in the Org agenda to be grouped
14634 into sections while preserving the structure imposed by any timestamps.")
14635 (license license:gpl3+))))
14636
14637 (define-public emacs-org-make-toc
14638 (package
14639 (name "emacs-org-make-toc")
14640 (version "0.5")
14641 (source (origin
14642 (method git-fetch)
14643 (uri (git-reference
14644 (url "https://github.com/alphapapa/org-make-toc")
14645 (commit version)))
14646 (file-name (git-file-name name version))
14647 (sha256
14648 (base32
14649 "180ji6nnj6qj0rs1rdp1zlcrfsqf7ikb44ym8icbp5d6al2s4hnr"))))
14650 (build-system emacs-build-system)
14651 (propagated-inputs
14652 `(("emacs-org" ,emacs-org)
14653 ("emacs-dash" ,emacs-dash)
14654 ("emacs-s" ,emacs-s)))
14655 (home-page "https://github.com/alphapapa/org-make-toc")
14656 (synopsis "Maintain a table of contents for an Org file")
14657 (description "This package facilitates the creation and maintenance of
14658 tables of contents.")
14659 (license license:gpl3+)))
14660
14661 (define-public emacs-ts
14662 (package
14663 (name "emacs-ts")
14664 (version "0.2")
14665 (source
14666 (origin
14667 (method git-fetch)
14668 (uri (git-reference
14669 (url "https://github.com/alphapapa/ts.el")
14670 (commit version)))
14671 (sha256
14672 (base32 "0hmzc1ppnkkr0lfq5fhzqr6icv6iqz824a6bnns7zr466hhqp3qb"))
14673 (file-name (git-file-name name version))))
14674 (build-system emacs-build-system)
14675 (propagated-inputs
14676 `(("emacs-s" ,emacs-s)
14677 ("emacs-dash" ,emacs-dash)))
14678 (arguments
14679 ;; XXX: Three tests are failing because of a timezone-related issue
14680 ;; with how they're written. On my machine, all the failing test
14681 ;; results are 18000 seconds (5 hours) off.
14682
14683 ;; The ts-parse-org function accepts a string without any timezone
14684 ;; info, not assumed to be in Unix time, and converts it to a so-called
14685 ;; ts struct. The ts-unix function (accessor) accepts a ts struct,
14686 ;; then seems to assume the struct's corresponding time is in terms of
14687 ;; the user's current time zone, before returning a Unix time in
14688 ;; seconds.
14689
14690 ;; The failing tests all have similar problems, but nothing else about
14691 ;; the library seems particularly off.
14692
14693 `(#:tests? #t
14694 #:test-command '("emacs" "--batch"
14695 "-l" "test/test.el"
14696 "-f" "ert-run-tests-batch-and-exit")
14697 #:phases
14698 (modify-phases %standard-phases
14699 (add-before 'check 'make-tests-writable
14700 (lambda _
14701 (make-file-writable "test/test.el")
14702 #t))
14703 (add-before 'check 'delete-failing-tests
14704 (lambda _
14705 (emacs-batch-edit-file "test/test.el"
14706 `(progn (progn
14707 (goto-char (point-min))
14708 (dolist (test-regexp
14709 '("ert-deftest ts-format"
14710 "ert-deftest ts-parse-org\\_>"
14711 "ert-deftest ts-parse-org-element"
14712 "ert-deftest ts-update"))
14713 (re-search-forward test-regexp)
14714 (beginning-of-line)
14715 (kill-sexp)))
14716 (basic-save-buffer)))
14717 #t)))))
14718 (home-page "https://github.com/alphapapa/ts.el")
14719 (synopsis "Timestamp and date/time library")
14720 (description "This package facilitates manipulating dates, times, and
14721 timestamps by providing a @code{ts} struct.")
14722 (license license:gpl3+)))
14723
14724 (define-public emacs-peg
14725 (package
14726 (name "emacs-peg")
14727 (version "1.0")
14728 (source
14729 (origin
14730 (method url-fetch)
14731 (uri (string-append "https://elpa.gnu.org/packages/peg-" version ".tar"))
14732 (sha256
14733 (base32 "0skr5dz9k34r409hisnj37n1b7n62l3md0glnfx578xkbmxlpcxl"))))
14734 (build-system emacs-build-system)
14735 (home-page "https://elpa.gnu.org/packages/peg.html")
14736 (synopsis "Parsing Expression Grammars in Elisp")
14737 (description "This package provides a macro that parses the current buffer
14738 according to a parsing expression grammar.")
14739 (license license:gpl3+)))
14740
14741 (define-public emacs-org-ql
14742 (package
14743 (name "emacs-org-ql")
14744 (version "0.3.2")
14745 (source (origin
14746 (method git-fetch)
14747 (uri (git-reference
14748 (url "https://github.com/alphapapa/org-ql")
14749 (commit version)))
14750 (sha256
14751 (base32
14752 "11bhpi2l28vp8mm9nx18jljbqdnh9vxpv9kp1dn9lpsgivcdbc34"))
14753 (file-name (git-file-name name version))))
14754 (build-system emacs-build-system)
14755 (propagated-inputs
14756 `(("emacs-s" ,emacs-s)
14757 ("emacs-f" ,emacs-f)
14758 ("emacs-ov" ,emacs-ov)
14759 ("emacs-peg" ,emacs-peg)
14760 ("emacs-org-super-agenda" ,emacs-org-super-agenda)
14761 ("emacs-ts" ,emacs-ts)
14762 ("emacs-org" ,emacs-org)
14763 ("emacs-helm" ,emacs-helm)
14764 ("emacs-helm-org" ,emacs-helm-org)
14765 ("emacs-dash" ,emacs-dash)))
14766 (native-inputs
14767 `(("emacs-buttercup" ,emacs-buttercup)))
14768 (arguments
14769 `(#:phases
14770 (modify-phases %standard-phases
14771 (add-after 'unpack 'require-helm
14772 (lambda _
14773 (substitute* "helm-org-ql.el"
14774 (("^;;;; Requirements")
14775 ";;;; Requirements\n(require 'helm)\n(require 'helm-org)"))
14776 #t)))
14777 #:tests? #t
14778 #:test-command '("buttercup" "-L" ".")))
14779 (home-page "https://github.com/alphapapa/org-ql/")
14780 (synopsis "Query language for Org buffers")
14781 (description "This package provides a Lispy query language for Org
14782 files, allowing for actions to be performed based on search criteria.")
14783 (license license:gpl3+)))
14784
14785 (define-public emacs-org-auto-expand
14786 (let ((commit "4938d5f6460e2f8f051ba9ac000b291bfa43ef62")
14787 (revision "1"))
14788 (package
14789 (name "emacs-org-auto-expand")
14790 (version (git-version "0.1" revision commit))
14791 (source (origin
14792 (method git-fetch)
14793 (uri (git-reference
14794 (url "https://github.com/alphapapa/org-auto-expand")
14795 (commit commit)))
14796 (file-name (git-file-name name version))
14797 (sha256
14798 (base32
14799 "1my0c6xmkh37lwi6l472lz9d86lf20h6xcllzlxm1lxa24rhva6v"))))
14800 (build-system emacs-build-system)
14801 (propagated-inputs
14802 `(("emacs-org" ,emacs-org)
14803 ("emacs-dash" ,emacs-dash)))
14804 (home-page "https://github.com/alphapapa/org-auto-expand")
14805 (synopsis "Automatically expand certain Org headings")
14806 (description "This package allows a customizable set of headings in Org
14807 files to be expanded upon opening them.")
14808 (license license:gpl3+))))
14809
14810 (define-public emacs-parsebib
14811 (package
14812 (name "emacs-parsebib")
14813 (version "2.3.3")
14814 (source
14815 (origin
14816 (method git-fetch)
14817 (uri (git-reference
14818 (url "https://github.com/joostkremers/parsebib")
14819 (commit version)))
14820 (file-name (git-file-name name version))
14821 (sha256
14822 (base32 "0mpgyy9qfb5x4fvlmb274hgayjbwf0bgk65dxyx31zikjwpcd56p"))))
14823 (build-system emacs-build-system)
14824 (home-page "https://github.com/joostkremers/parsebib")
14825 (synopsis "Library for parsing @file{.bib} files")
14826 (description
14827 "This package provides an Emacs library for parsing @file{.bib} files.")
14828 (license license:gpl3+)))
14829
14830 (define-public emacs-ebib
14831 (package
14832 (name "emacs-ebib")
14833 (version "2.22.1")
14834 (source
14835 (origin
14836 (method git-fetch)
14837 (uri (git-reference
14838 (url "https://github.com/joostkremers/ebib")
14839 (commit version)))
14840 (file-name (git-file-name name version))
14841 (sha256
14842 (base32 "0spiz5r2y4pdpyc4d3f9w228giq0j9rm8f5h5akzn5rwiq9pfkwz"))))
14843 (build-system emacs-build-system)
14844 (propagated-inputs
14845 `(("emacs-parsebib" ,emacs-parsebib)))
14846 (home-page "https://joostkremers.github.io/ebib/")
14847 (synopsis "BibTeX database manager for Emacs")
14848 (description
14849 "Ebib is a BibTeX database manager that runs in GNU Emacs.
14850 With Ebib you can create, sort and manage your @file{.bib} database files, all
14851 within Emacs. It supports searching, multi-line field values and
14852 @samp{@@String} and @samp{@@Preamble} definitions. Ebib integrates
14853 with (La)TeX mode, Org mode and other Emacs editing modes.")
14854 ;; The Ebib source files are released under a BSD license with
14855 ;; the exception of org-ebib.el, which is released under the GNU
14856 ;; GPL.
14857 (license (list license:bsd-3
14858 license:gpl3+))))
14859
14860 (define-public emacs-biblio
14861 (package
14862 (name "emacs-biblio")
14863 (version "0.2")
14864 (source
14865 (origin
14866 (method git-fetch)
14867 (uri (git-reference
14868 (url "https://github.com/cpitclaudel/biblio.el")
14869 (commit version)))
14870 (file-name (git-file-name name version))
14871 (sha256
14872 (base32 "1gxjind6r235az59dr8liv03d8994mqb8a7m28j3c12q7p70aziz"))))
14873 (build-system emacs-build-system)
14874 (propagated-inputs
14875 `(("emacs-dash" ,emacs-dash)
14876 ("emacs-let-alist" ,emacs-let-alist)))
14877 (home-page "https://github.com/cpitclaudel/biblio.el")
14878 (synopsis "Browse and import bibliographic references")
14879 (description "This package provides an extensible Emacs package for
14880 browsing and fetching references.
14881
14882 @file{biblio.el} makes it easy to browse and gather bibliographic references
14883 and publications from various sources, by keywords or by DOI. References are
14884 automatically fetched from well-curated sources, and formatted as BibTeX.")
14885 (license license:gpl3+)))
14886
14887 (define-public emacs-helm-bibtex
14888 (let ((commit "d4471232be26793fbf56c0ac3690b5f537c378b9")
14889 (revision "2"))
14890 (package
14891 (name "emacs-helm-bibtex")
14892 (version (string-append "2.0.0" "-" revision "."
14893 (string-take commit 7)))
14894 (source
14895 (origin
14896 (method git-fetch)
14897 (uri (git-reference
14898 (url "https://github.com/tmalsburg/helm-bibtex")
14899 (commit commit)))
14900 (file-name (git-file-name name version))
14901 (sha256
14902 (base32
14903 "1bkzhic6qckb267025il1r3xcpz99kisphxiafni1pxvf9jafr0j"))))
14904 (build-system emacs-build-system)
14905 (propagated-inputs
14906 `(("emacs-helm" ,emacs-helm)
14907 ("emacs-parsebib" ,emacs-parsebib)
14908 ("emacs-s" ,emacs-s)
14909 ("emacs-dash" ,emacs-dash)
14910 ("emacs-f" ,emacs-f)
14911 ("emacs-biblio" ,emacs-biblio)
14912 ("emacs-ivy" ,emacs-ivy)))
14913 (home-page "https://github.com/tmalsburg/helm-bibtex")
14914 (synopsis "Bibliography manager based on Helm")
14915 (description "This package provides bibliography manager for Emacs,
14916 based on Helm and the bibtex-completion backend.
14917
14918 Key features:
14919
14920 @itemize
14921 @item Quick access to your bibliography from within Emacs
14922 @item Powerful search capabilities
14923 @item Provides instant search results as you type
14924 @item Tightly integrated with LaTeX authoring, emails, Org mode, etc.
14925 @item Open the PDFs, URLs, or DOIs associated with an entry
14926 @item Insert LaTeX cite commands, Ebib links, or Pandoc citations,
14927 BibTeX entries, or plain text references at point, attach PDFs to emails
14928 @item Support for note taking
14929 @item Quick access to online bibliographic databases such as Pubmed,
14930 arXiv, Google Scholar, Library of Congress, etc.
14931 @item Imports BibTeX entries from CrossRef and other sources.
14932 @end itemize\n")
14933 (license license:gpl3+))))
14934
14935 (define-public emacs-ewmctrl
14936 (let ((commit "3d0217c4d6cdb5c308b6cb4293574f470d4faacf"))
14937 (package
14938 (name "emacs-ewmctrl")
14939 (version (git-version "0.0.1" "1" commit))
14940 (source
14941 (origin
14942 (method git-fetch)
14943 (uri (git-reference
14944 (url "https://github.com/flexibeast/ewmctrl")
14945 (commit commit)))
14946 (file-name (git-file-name name version))
14947 (sha256
14948 (base32
14949 "0ilwvx0qryv3v6xf0gxqwnfm6pf96gxap8h9g3f6z6lk9ff4n1wi"))))
14950 (build-system emacs-build-system)
14951 (arguments
14952 '(#:phases
14953 (modify-phases %standard-phases
14954 (add-after 'unpack 'patch-ewmctrl
14955 ;; This build phase makes sure ‘ewmctrl’ looks
14956 ;; for ‘wmctrl’ in the right place.
14957 (lambda _
14958 (let ((file "ewmctrl.el"))
14959 (chmod file #o644)
14960 (emacs-substitute-sexps file
14961 ("(defcustom ewmctrl-wmctrl-path" (which "wmctrl")))))))))
14962 (inputs
14963 `(("wmctrl" ,wmctrl)))
14964 (home-page "https://github.com/flexibeast/ewmctrl")
14965 (synopsis "Emacs interface to @code{wmctrl}")
14966 (description "@code{ewmctrl} provides an Emacs interface to
14967 @code{wmctrl} command-line window-management program.")
14968 (license license:gpl3+))))
14969
14970 (define-public emacs-erc-image
14971 (let ((commit "82fb3871f02e24b1e880770b9a3d187aab43d0f0")
14972 (revision "3"))
14973 (package
14974 (name "emacs-erc-image")
14975 (version (git-version "0" revision commit))
14976 (source
14977 (origin
14978 (method git-fetch)
14979 (uri (git-reference
14980 (url "https://github.com/kidd/erc-image.el")
14981 (commit commit)))
14982 (file-name (git-file-name name version))
14983 (sha256
14984 (base32
14985 "1q8mkf612fb4fjp8h4kbr107wn083iqfdgv8f80pcmil8y33dw9i"))))
14986 (build-system emacs-build-system)
14987 (arguments
14988 `(#:phases (modify-phases %standard-phases
14989 ;; The package autoloader fails to provide
14990 ;; the image module when handled by Guix.
14991 ;; Disable this phase, and let the package
14992 ;; handle the `eval-after-load' procedure.
14993 (delete 'make-autoloads))))
14994 (home-page "https://github.com/kidd/erc-image.el")
14995 (synopsis "Show inlined images (png/jpg/gif/svg) in ERC buffers")
14996 (description "This plugin subscribes to hooks @code{erc-insert-modify-hook}
14997 and @code{erc-send-modify-hook} to download and show images.")
14998 (license license:gpl3+))))
14999
15000 (define-public emacs-helm-gtags
15001 (package
15002 (name "emacs-helm-gtags")
15003 (version "1.5.7")
15004 (source
15005 (origin
15006 (method git-fetch)
15007 (uri (git-reference
15008 (url "https://github.com/syohex/emacs-helm-gtags")
15009 (commit version)))
15010 (file-name (git-file-name name version))
15011 (sha256
15012 (base32 "1kc1jzk10nfd2v20g8dwnb6a944afrwdwnkzl06w4ba8k4yim7gi"))))
15013 (build-system emacs-build-system)
15014 (propagated-inputs
15015 `(("emacs-helm" ,emacs-helm)))
15016 (home-page "https://github.com/syohex/emacs-helm-gtags")
15017 (synopsis "Emacs Helm interface to GNU Global")
15018 (description
15019 "@code{emacs-helm-gtags} provides a Emacs Helm interface to GNU Global.")
15020 (license license:gpl3+)))
15021
15022 (define-public emacs-list-utils
15023 (package
15024 (name "emacs-list-utils")
15025 (version "0.4.6")
15026 (source
15027 (origin
15028 (method git-fetch)
15029 (uri (git-reference
15030 (url "https://github.com/rolandwalker/list-utils")
15031 (commit (string-append "v" version))))
15032 (file-name (git-file-name name version))
15033 (sha256
15034 (base32 "07hbz2md52ccy95gv4d5n6szrfmpfqf3w4kwqdg2cf54c7kgf7hw"))))
15035 (build-system emacs-build-system)
15036 (home-page "https://github.com/rolandwalker/list-utils")
15037 (synopsis "List-manipulation utility functions")
15038 (description "This package provides a list manipulation library for Emacs.")
15039 (license license:gpl3+)))
15040
15041 (define-public emacs-parsec
15042 ;; Last release is too old (2016).
15043 (let ((revision "0")
15044 (commit "2cbbbc2254aa7bcaa4fb5e07c8c1bf2f381dba26"))
15045 (package
15046 (name "emacs-parsec")
15047 (version (git-version "0.1.3" revision commit))
15048 (source
15049 (origin
15050 (method git-fetch)
15051 (uri (git-reference
15052 (url "https://github.com/cute-jumper/parsec.el")
15053 (commit commit)))
15054 (file-name (git-file-name name version))
15055 (sha256
15056 (base32 "1g1s8s45g3kkbi3h7w0pmadmzdswb64mkdvdpg2lihg341kx37gm"))))
15057 (build-system emacs-build-system)
15058 (home-page "https://github.com/cute-jumper/parsec.el")
15059 (synopsis "Parser combinator library for Emacs Lisp")
15060 (description
15061 "Parsec is a parser combinator library for Emacs Lisp, similar to
15062 Haskell's Parsec library. It contains most of the parser combinators in
15063 Text.Parsec.Combinator, and more combinators can be added if necessary! Most
15064 of the parser combinators have the same behavior as their Haskell
15065 counterparts. Parsec also comes with a simple error handling mechanism so
15066 that it can display an error message showing how the parser fails.")
15067 (license license:gpl3+))))
15068
15069 (define-public emacs-move-text
15070 (package
15071 (name "emacs-move-text")
15072 (version "2.0.8")
15073 (source
15074 (origin
15075 (method git-fetch)
15076 (uri (git-reference
15077 (url "https://github.com/emacsfodder/move-text")
15078 (commit version)))
15079 (file-name (git-file-name name version))
15080 (sha256
15081 (base32 "06jxk5g23822gfmwrxhc34zand3dr8p2wjh1zs3j61ibz6n0nmz1"))))
15082 (build-system emacs-build-system)
15083 (home-page "https://github.com/emacsfodder/move-text")
15084 (synopsis "Move current line or region with M-up or M-down")
15085 (description "This package provide functions to move the current line
15086 using @kbd{M-up} or @kbd{M-down} if a region is marked, it will move the
15087 region instead.")
15088 (license license:gpl3+)))
15089
15090 (define-public emacs-validate
15091 (package
15092 (name "emacs-validate")
15093 (version "1.0.5")
15094 (source (origin
15095 (method git-fetch)
15096 (uri (git-reference
15097 (url "https://github.com/Malabarba/validate.el")
15098 (commit version)))
15099 (file-name (git-file-name name version))
15100 (sha256
15101 (base32
15102 "1l12ibx6cw4mgicgjpw71fb4fr4sd0k54lvbpq7ngc29br3j6i4v"))))
15103 (build-system emacs-build-system)
15104 (home-page "https://github.com/Malabarba/validate.el")
15105 (synopsis "Emacs library for scheme validation")
15106 (description "This Emacs library provides two functions that perform
15107 schema validation.")
15108 (license license:gpl3+)))
15109
15110 (define-public emacs-rainbow-blocks
15111 (let ((commit "dd435d7bb34ff6f162a5f315df308b90b7e9f842"))
15112 (package
15113 (name "emacs-rainbow-blocks")
15114 (version (git-version "1.0.0" "1" commit))
15115 (source (origin
15116 (method git-fetch)
15117 (uri (git-reference
15118 (url "https://github.com/istib/rainbow-blocks")
15119 (commit commit)))
15120 (file-name (git-file-name name version))
15121 (sha256
15122 (base32
15123 "06yfb3i7wzvqrhkb61zib9xvpb5i00s4frizkzff66im05k0n795"))))
15124 (build-system emacs-build-system)
15125 (home-page "https://github.com/istib/rainbow-blocks")
15126 (synopsis "Highlight sexp blocks")
15127 (description "Rainbow-blocks is an Emacs mode that highlights blocks
15128 made of parentheses, brackets, and braces according to their depth. Each
15129 successive level is highlighted in a different color. This makes it easy to
15130 orient yourself in the code, and tell which statements are at a given level.")
15131 (license license:gpl3+))))
15132
15133 (define-public emacs-hierarchy
15134 (package
15135 (name "emacs-hierarchy")
15136 (version "0.7.0")
15137 (source
15138 (origin
15139 (method git-fetch)
15140 (uri (git-reference
15141 (url "https://github.com/DamienCassou/hierarchy")
15142 (commit (string-append "v" version))))
15143 (file-name (git-file-name name version))
15144 (sha256
15145 (base32 "1kykbb1sil5cycfa5aj8dhsxc5yrx1641i2np5kwdjid6ahdlz5r"))))
15146 (build-system emacs-build-system)
15147 (native-inputs
15148 `(("emacs-buttercup" ,emacs-buttercup)))
15149 (arguments
15150 `(#:tests? #t
15151 #:test-command '("buttercup" "-L" ".")))
15152 (home-page "https://github.com/DamienCassou/hierarchy")
15153 (synopsis "Library to create and display hierarchy structures")
15154 (description "This package provides an Emacs library to create, query,
15155 navigate and display hierarchy structures.")
15156 (license license:gpl3+)))
15157
15158 (define-public emacs-tree-mode
15159 (let ((commit "b06078826d5875d74b0e7b7ac47b0d0917610534")
15160 (revision "1"))
15161 (package
15162 (name "emacs-tree-mode")
15163 (version (string-append "0.0.1" "-" revision "."
15164 (string-take commit 7)))
15165 (source
15166 (origin
15167 (method git-fetch)
15168 (uri (git-reference
15169 (url "https://github.com/emacsorphanage/tree-mode")
15170 (commit commit)))
15171 (file-name (git-file-name name version))
15172 (sha256
15173 (base32
15174 "13bbdhdmqg4x9yghanhr8fsbsxbnypzxdxgicz31sjjm675kpnix"))))
15175 (build-system emacs-build-system)
15176 (home-page "https://github.com/emacsorphanage/tree-mode")
15177 (synopsis "Emacs mode to manage tree widgets")
15178 (description
15179 "This package provides an Emacs library to manage tree widgets.")
15180 (license license:gpl3+))))
15181
15182 (define-public emacs-md4rd
15183 (package
15184 (name "emacs-md4rd")
15185 (version "0.3.1")
15186 (source (origin
15187 (method git-fetch)
15188 (uri (git-reference
15189 (url "https://github.com/ahungry/md4rd")
15190 (commit version)))
15191 (file-name (git-file-name name version))
15192 (sha256
15193 (base32
15194 "1n6g6k4adzkkn1g7z4j27s35xy12c1fg2r08gv345ddr3wplq4ri"))))
15195 (propagated-inputs
15196 `(("emacs-hierarchy" ,emacs-hierarchy)
15197 ("emacs-request" ,emacs-request)
15198 ("emacs-dash" ,emacs-dash)
15199 ("emacs-s" ,emacs-s)
15200 ("emacs-tree-mode" ,emacs-tree-mode)))
15201 (build-system emacs-build-system)
15202 (home-page "https://github.com/ahungry/md4rd")
15203 (synopsis "Emacs Mode for Reddit")
15204 (description
15205 "This package allows reading Reddit from within Emacs interactively.")
15206 (license license:gpl3+)))
15207
15208 (define-public emacs-pulseaudio-control
15209 (let ((commit "7e1a87068379075a5e9ce36c64c686c03d20d379")
15210 (revision "3"))
15211 (package
15212 (name "emacs-pulseaudio-control")
15213 (version (git-version "0.0.1" revision commit))
15214 (source
15215 (origin
15216 (method git-fetch)
15217 (uri (git-reference
15218 (url "https://github.com/flexibeast/pulseaudio-control")
15219 (commit commit)))
15220 (file-name (git-file-name name version))
15221 (sha256
15222 (base32
15223 "0wcaqyh15x56255rrj350089z15pnwixa2vf0ly6dv0hjmzmh3mr"))))
15224 (build-system emacs-build-system)
15225 (arguments
15226 '(#:phases (modify-phases %standard-phases
15227 (add-after 'unpack 'patch-file-name
15228 (lambda* (#:key inputs #:allow-other-keys)
15229 (let ((pulseaudio (assoc-ref inputs "pulseaudio")))
15230 (chmod "pulseaudio-control.el" #o600)
15231 (emacs-substitute-variables "pulseaudio-control.el"
15232 ("pulseaudio-control-pactl-path"
15233 (string-append pulseaudio "/bin/pactl")))
15234 #t))))))
15235 (inputs `(("pulseaudio" ,pulseaudio)))
15236 (home-page "https://github.com/flexibeast/pulseaudio-control")
15237 (synopsis "Control @code{pulseaudio} from Emacs")
15238 (description
15239 "This package allows controlling @code{pulseaudio} from Emacs.")
15240 (license license:gpl3+))))
15241
15242 (define-public emacs-datetime
15243 (package
15244 (name "emacs-datetime")
15245 (version "0.6.6")
15246 (source
15247 (origin
15248 (method git-fetch)
15249 (uri (git-reference
15250 (url "https://github.com/doublep/datetime")
15251 (commit version)))
15252 (file-name (git-file-name name version))
15253 (sha256
15254 (base32
15255 "0a3q667pybpmsjkbgf6287jwgpnx8brp5314wb8zbczw6ncygnbi"))))
15256 (build-system emacs-build-system)
15257 (inputs
15258 `(("emacs-extmap" ,emacs-extmap)))
15259 (home-page "https://github.com/doublep/datetime/")
15260 (synopsis "Library to work with dates in Emacs")
15261 (description "Parsing, formatting, matching and recoding
15262 timestamps and date-time format strings library for Emacs.")
15263 (license license:gpl3+)))
15264
15265 (define-public emacs-org-mind-map
15266 (let ((commit "9d6e262bedd94daf9de269f4d56de277275677cb")
15267 (revision "1"))
15268 (package
15269 (name "emacs-org-mind-map")
15270 (version (string-append "0.0.1" "-" revision "."
15271 (string-take commit 7)))
15272 (source
15273 (origin
15274 (method git-fetch)
15275 (uri (git-reference
15276 (url "https://github.com/theodorewiles/org-mind-map")
15277 (commit commit)))
15278 (file-name (git-file-name name version))
15279 (sha256
15280 (base32
15281 "0jgkkgq7g64zckrmjib0hvz0qy3ynz5vz13qbmlpf096l3bb65wn"))))
15282 (propagated-inputs
15283 `(("emacs-dash" ,emacs-dash)))
15284 (build-system emacs-build-system)
15285 (home-page "https://github.com/theodorewiles/org-mind-map")
15286 (synopsis "Create Graphviz directed graphs from Org files")
15287 (description
15288 "This package creates Graphviz directed graphs from Org files.")
15289 (license license:gpl3+))))
15290
15291 (define-public emacs-npm-mode
15292 (package
15293 (name "emacs-npm-mode")
15294 (version "0.6.0")
15295 (source
15296 (origin
15297 (method git-fetch)
15298 (uri (git-reference
15299 (url "https://github.com/mojochao/npm-mode")
15300 (commit version)))
15301 (file-name (git-file-name name version))
15302 (sha256
15303 (base32 "1mh6nbffciw4yhv049kdhh796ysj1x21ndm3fwymhskb3dy0w1ss"))))
15304 (build-system emacs-build-system)
15305 (home-page "https://github.com/mojochao/npm-mode")
15306 (synopsis "Minor mode for working with @code{npm} projects")
15307 (description
15308 "@code{npm-mode} provides a minor mode to work with @code{npm} projects.")
15309 (license license:gpl3+)))
15310
15311 (define-public emacs-itail
15312 (let ((commit "6e43c20da03be3b9c6ece93b7dc3495975ec1888")
15313 (revision "1"))
15314 (package
15315 (name "emacs-itail")
15316 (version (string-append "0.0.1" "-" revision "."
15317 (string-take commit 7)))
15318 (source
15319 (origin
15320 (method git-fetch)
15321 (uri (git-reference
15322 (url "https://github.com/re5et/itail")
15323 (commit commit)))
15324 (file-name (git-file-name name version))
15325 (sha256
15326 (base32
15327 "044nzxh1hq41faxw3lix0wy78vfz304pjcaa5a11dqfz7q3gx5cv"))))
15328 (build-system emacs-build-system)
15329 (home-page "https://github.com/re5et/itail")
15330 (synopsis "Interactive @code{tail} Emacs mode")
15331 (description "@code{itail} provides interactive @code{tail} mode
15332 that allows you to filter the tail with unix pipes and highlight the
15333 contents of the tailed file. Works locally or on remote files using
15334 tramp.")
15335 (license license:gpl3+))))
15336
15337 (define-public emacs-loop
15338 (package
15339 (name "emacs-loop")
15340 (version "1.3")
15341 (source
15342 (origin
15343 (method git-fetch)
15344 (uri (git-reference
15345 (url "https://github.com/Wilfred/loop.el")
15346 (commit version)))
15347 (file-name (git-file-name name version))
15348 (sha256
15349 (base32 "1gs95xnmnn8aa4794k7h8mw1sz1nfdh9v0caqj6yvnsdnwy74n5x"))))
15350 (build-system emacs-build-system)
15351 (native-inputs
15352 `(("emacs-ert-runner" ,emacs-ert-runner)
15353 ("emacs-undercover" ,emacs-undercover)))
15354 (arguments
15355 `(#:tests? #t
15356 #:test-command '("ert-runner")))
15357 (home-page "https://github.com/Wilfred/loop.el")
15358 (synopsis "Imperative loop structures for Emacs")
15359 (description "Loop structures familiar to users of other languages. This
15360 library adds a selection of popular loop structures as well as break and
15361 continue.")
15362 (license license:gpl3+)))
15363
15364 (define-public emacs-elisp-refs
15365 (package
15366 (name "emacs-elisp-refs")
15367 (version "1.3")
15368 (source
15369 (origin
15370 (method git-fetch)
15371 (uri (git-reference
15372 (url "https://github.com/Wilfred/elisp-refs")
15373 (commit version)))
15374 (file-name (git-file-name name version))
15375 (sha256
15376 (base32 "0w7k91xf69zc0zkjrw8h8sjdjf9xq9qs5zhvajhd718lzf93564b"))))
15377 (build-system emacs-build-system)
15378 (propagated-inputs
15379 `(("emacs-dash" ,emacs-dash)
15380 ("emacs-f" ,emacs-f)
15381 ("emacs-list-utils" ,emacs-list-utils)
15382 ("emacs-loop" ,emacs-loop)
15383 ("emacs-s" ,emacs-s)
15384 ("emacs-shut-up" ,emacs-shut-up)))
15385 (native-inputs
15386 `(("emacs-ert-runner" ,emacs-ert-runner)
15387 ("emacs-undercover" ,emacs-undercover)))
15388 (arguments
15389 `(#:tests? #t
15390 #:test-command '("ert-runner")
15391 #:phases
15392 (modify-phases %standard-phases
15393 (add-before 'check 'disable-refs-next-match-test
15394 ;; Hack to disable the failing test for emacs27
15395 ;; https://github.com/Wilfred/elisp-refs/issues/29
15396 (lambda _
15397 (substitute* "test/unit-test.el"
15398 (("ert-deftest elisp-refs-next-match")
15399 "defun elisp-refs-next-match"))
15400 #t)))))
15401 (home-page "https://github.com/Wilfred/elisp-refs")
15402 (synopsis "Find callers of elisp functions or macros")
15403 (description "Find references to functions, macros or variables. Unlike a
15404 dumb text search, @code{elisp-refs} actually parses the code, so it's never
15405 confused by comments or @code{foo-bar} matching @code{foo}.")
15406 (license license:gpl3+)))
15407
15408 (define-public emacs-crux
15409 (let ((commit "308f17d914e2cd79cbc809de66d02b03ceb82859")
15410 (revision "2"))
15411 (package
15412 (name "emacs-crux")
15413 (version (git-version "0.3.0" revision commit))
15414 (source
15415 (origin
15416 (method git-fetch)
15417 (uri (git-reference
15418 (url "https://github.com/bbatsov/crux")
15419 (commit commit)))
15420 (file-name (git-file-name name version))
15421 (sha256
15422 (base32
15423 "0rf84finwlvmy0xpgyljjvnrijlmkzjyw9rh97svgxp9c1rzfk0x"))))
15424 (build-system emacs-build-system)
15425 (home-page "https://github.com/bbatsov/crux")
15426 (synopsis "Collection of useful functions for Emacs")
15427 (description
15428 "@code{crux} provides a collection of useful functions for Emacs.")
15429 (license license:gpl3+))))
15430
15431 (define-public emacs-edit-server
15432 (package
15433 (name "emacs-edit-server")
15434 (version "1.15")
15435 (source
15436 (origin
15437 (method git-fetch)
15438 (uri (git-reference
15439 (url "https://github.com/stsquad/emacs_chrome")
15440 (commit (string-append "v" version))))
15441 (file-name (git-file-name name version))
15442 (sha256
15443 (base32 "0xxby3ghs38i1l7kag12rnzlzcg9297pm8k6kqq3aqzsg9d2950y"))))
15444 (build-system emacs-build-system)
15445 (arguments
15446 `(#:phases
15447 (modify-phases %standard-phases
15448 (add-after 'unpack 'chdir-elisp
15449 ;; Elisp directory is not in root of the source.
15450 (lambda _
15451 (chdir "servers"))))))
15452 (home-page "https://github.com/stsquad/emacs_chrome")
15453 (synopsis "Server that responds to edit requests from Chromium")
15454 (description
15455 "This package provides an edit server to respond to requests from Emacs.")
15456 (license license:gpl3+)))
15457
15458 (define-public emacs-m-buffer-el
15459 (package
15460 (name "emacs-m-buffer-el")
15461 (version "0.15")
15462 (source
15463 (origin
15464 (method git-fetch)
15465 (uri (git-reference
15466 (url "https://github.com/phillord/m-buffer-el")
15467 (commit (string-append "v" version))))
15468 (file-name (git-file-name name version))
15469 (sha256
15470 (base32
15471 "1sx76i59razwccvn6x7rx5a124bfyjw9fcbxf4gj7nsg33qiq809"))))
15472 (arguments
15473 `(#:phases
15474 (modify-phases %standard-phases
15475 (add-before 'install 'check
15476 (lambda* (#:key inputs #:allow-other-keys)
15477 (invoke "emacs" "--batch" "-L" "."
15478 "-l" "test/m-buffer-test.el"
15479 "-l" "test/m-buffer-at-test.el"
15480 "-f" "ert-run-tests-batch-and-exit"))))))
15481 (build-system emacs-build-system)
15482 (home-page "https://github.com/phillord/m-buffer-el")
15483 (synopsis "List oriented buffer operations for Emacs")
15484 (description "@code{m-buffer} provides a set of list-orientated functions
15485 for operating over the contents of Emacs buffers.")
15486 (license license:gpl3+)))
15487
15488 (define-public emacs-let-alist
15489 (package
15490 (name "emacs-let-alist")
15491 (version "1.0.6")
15492 (source
15493 (origin
15494 (method url-fetch)
15495 (uri (string-append
15496 "https://elpa.gnu.org/packages/let-alist-" version ".el"))
15497 (sha256
15498 (base32 "0szj7vnjzz4zci5fvz7xqgcpi4pzdyyf4qi2s8xar2hi7v3yaawr"))))
15499 (build-system emacs-build-system)
15500 (home-page "https://elpa.gnu.org/packages/let-alist.html")
15501 (synopsis "Easily let-bind values of an assoc-list by their names")
15502 (description "This package offers a single macro, @code{let-alist}. This
15503 macro takes a first argument (whose value must be an alist) and a body.")
15504 (license license:gpl3+)))
15505
15506 (define-public emacs-esup
15507 (let ((commit "0de8af8233d9ce1b67f05a50f25c481c4f1118d8")
15508 (revision "1"))
15509 (package
15510 (name "emacs-esup")
15511 (version (git-version "0.7.1" revision commit))
15512 (source
15513 (origin
15514 (method git-fetch)
15515 (uri (git-reference
15516 (url "https://github.com/jschaf/esup")
15517 (commit commit)))
15518 (file-name (git-file-name name version))
15519 (sha256
15520 (base32
15521 "01khb3xyj0ylwib6ryzzvqmkh5wvzxiq2n3l0s3h9zv7wx849bzv"))))
15522 (build-system emacs-build-system)
15523 (native-inputs
15524 `(("emacs-noflet" ,emacs-noflet)
15525 ("emacs-undercover" ,emacs-undercover)
15526 ("emacs-buttercup" ,emacs-buttercup)))
15527 (propagated-inputs
15528 `(("emacs-dash" ,emacs-dash)))
15529 (arguments
15530 `(#:tests? #t
15531 #:test-command '("buttercup" "-L" ".")))
15532 (home-page "https://github.com/jschaf/esup")
15533 (synopsis "Emacs start up profiler")
15534 (description "Benchmark Emacs Startup time without ever leaving
15535 your Emacs.")
15536 (license license:gpl2+))))
15537
15538 (define-public emacs-restart-emacs
15539 (let ((commit "9aa90d3df9e08bc420e1c9845ee3ff568e911bd9")
15540 (revision "1"))
15541 (package
15542 (name "emacs-restart-emacs")
15543 (version (git-version "0.1.1" revision commit))
15544 (source
15545 (origin
15546 (method git-fetch)
15547 (uri (git-reference
15548 (url "https://github.com/iqbalansari/restart-emacs")
15549 (commit commit)))
15550 (file-name (git-file-name name version))
15551 (sha256
15552 (base32 "02x1a85k7r95z8091zgjiaj9nf0zvx1jy4xvl3hr12qbnrx1wfav"))))
15553 (build-system emacs-build-system)
15554 (home-page "https://github.com/iqbalansari/restart-emacs")
15555 (synopsis "Restart Emacs from within Emacs")
15556 (description "This package provides a simple command to restart Emacs from
15557 within Emacs.")
15558 (license license:gpl3+))))
15559
15560 (define-public emacs-sourcemap
15561 (package
15562 (name "emacs-sourcemap")
15563 (version "0.03")
15564 (source
15565 (origin
15566 (method git-fetch)
15567 (uri (git-reference
15568 (url "https://github.com/syohex/emacs-sourcemap")
15569 (commit version)))
15570 (file-name (git-file-name name version))
15571 (sha256
15572 (base32 "115g2mfpbfywp8xnag4gsb50klfvplqfh928a5mabb5s8v4a3582"))))
15573 (build-system emacs-build-system)
15574 (home-page "https://github.com/syohex/emacs-sourcemap")
15575 (synopsis "Sourcemap parser")
15576 (description "Sourcemap parser")
15577 (license license:gpl3+)))
15578
15579 (define-public emacs-macrostep
15580 (let ((commit "424e3734a1ee526a1bd7b5c3cd1d3ef19d184267"))
15581 (package
15582 (name "emacs-macrostep")
15583 (version (git-version "0.9" "1" commit))
15584 (source (origin
15585 (method git-fetch)
15586 (uri (git-reference
15587 (url "https://github.com/joddie/macrostep")
15588 (commit commit)))
15589 (file-name (git-file-name name version))
15590 (sha256
15591 (base32
15592 "1fm40mxdn289cyzgw992223dgrjmwxn4q8svyyxfaxjrpb38jhjz"))))
15593 (build-system emacs-build-system)
15594 (arguments
15595 '(#:phases
15596 (modify-phases %standard-phases
15597 (add-before 'check 'remove-test
15598 ;; Fails because of requirement ‘/bin/sh’.
15599 (lambda _
15600 (let ((file "macrostep-test.el"))
15601 (chmod file #o644)
15602 (emacs-batch-edit-file file
15603 `(progn (progn (goto-char (point-min))
15604 (re-search-forward
15605 "(ert-deftest macrostep-expand-c-macros")
15606 (beginning-of-line)
15607 (kill-sexp))
15608 (basic-save-buffer))))))
15609 (add-before 'install 'check
15610 (lambda _
15611 (invoke "emacs" "--batch" "-L" "."
15612 "-l" "macrostep-test.el"
15613 "-f" "ert-run-tests-batch-and-exit"))))))
15614 (home-page "https://github.com/joddie/macrostep")
15615 (synopsis "Interactive macro-expander for Emacs")
15616 (description "@code{macrostep} is an Emacs minor mode for interactively
15617 stepping through the expansion of macros in Emacs Lisp source code. It lets
15618 you see exactly what happens at each step of the expansion process by
15619 pretty-printing the expanded forms inline in the source buffer, which is
15620 temporarily read-only while macro expansions are visible. You can expand and
15621 collapse macro forms one step at a time, and evaluate or instrument the
15622 expansions for debugging with Edebug as normal (but see “Bugs and known
15623 limitations”, below). Single-stepping through the expansion is particularly
15624 useful for debugging macros that expand into another macro form. These can be
15625 difficult to debug with Emacs’ built-in macroexpand, which continues expansion
15626 until the top-level form is no longer a macro call.")
15627 (license license:gpl3+))))
15628
15629 (define-public emacs-parent-mode
15630 (package
15631 (name "emacs-parent-mode")
15632 (version "2.3")
15633 (source
15634 (origin
15635 (method git-fetch)
15636 (uri (git-reference
15637 (url "https://github.com/Fanael/parent-mode")
15638 (commit version)))
15639 (file-name (git-file-name name version))
15640 (sha256
15641 (base32 "0i5bc7lyyrx6swqlrp9l5x72yzwi53qn6ldrfs99gh08b3yvsnni"))))
15642 (build-system emacs-build-system)
15643 (home-page "https://github.com/Fanael/parent-mode")
15644 (synopsis "Get major mode's parent modes")
15645 (description "Get major mode's parent modes")
15646 (license license:gpl3+)))
15647
15648 (define-public emacs-lacarte
15649 (package
15650 (name "emacs-lacarte")
15651 (version "0.1")
15652 (source (origin
15653 (method url-fetch)
15654 (uri "https://www.emacswiki.org/emacs/download/lacarte.el")
15655 (sha256
15656 (base32
15657 "1sbmk37ljq5j7dsw5c37sbxvlfgdqswh7bi4dknyjzfxlq50f4am"))))
15658 (build-system emacs-build-system)
15659 (home-page "https://www.emacswiki.org/emacs/lacarte.el")
15660 (synopsis "Execute menu items as commands, with completion")
15661 (description "Execute menu items as commands, with completion.")
15662 (license license:gpl3)))
15663
15664 (define-public emacs-isearch-prop
15665 (let ((commit "4a2765f835dd115d472142da05215c4c748809f4")
15666 (revision "2"))
15667 (package
15668 (name "emacs-isearch-prop")
15669 (version (git-version "0" revision commit))
15670 (source
15671 (origin
15672 (method git-fetch)
15673 (uri (git-reference
15674 (url "https://github.com/emacsmirror/isearch-prop")
15675 (commit commit)))
15676 (file-name (git-file-name name version))
15677 (sha256
15678 (base32
15679 "06gdk5m84q6pxwng8rjxny1zkll8f3m2x6lw4xyib2dvg7iaslh3"))))
15680 (build-system emacs-build-system)
15681 (home-page "https://www.emacswiki.org/emacs/isearch-prop.el")
15682 (synopsis "Extensions to @code{isearch.el}")
15683 (description "The Emacs library @code{isearch-prop.el} lets you search within
15684 contexts. You can limit incremental search to a set of zones of
15685 buffer text, search contexts that in effect constitute a multi-region.
15686 These zones can be defined in various ways, including some ways
15687 provided specially by this library.")
15688 (license license:gpl3+))))
15689
15690 (define-public emacs-company-lua
15691 (let ((commit "29f6819de4d691e5fd0b62893a9f4fbc1c6fcb52")
15692 (revision "2"))
15693 (package
15694 (name "emacs-company-lua")
15695 (version (git-version "0.1" "2" commit))
15696 (source
15697 (origin
15698 (method git-fetch)
15699 (uri (git-reference
15700 (url "https://github.com/ptrv/company-lua")
15701 (commit commit)))
15702 (file-name (git-file-name name version))
15703 (sha256
15704 (base32
15705 "0ny2dcc7c585p7v3j6q0rpkbj1qmf2ismy8a5020jpr585xvz0hh"))))
15706 (build-system emacs-build-system)
15707 (propagated-inputs
15708 `(("emacs-company" ,emacs-company)
15709 ("emacs-s" ,emacs-s)
15710 ("emacs-f" ,emacs-f)
15711 ("emacs-lua-mode" ,emacs-lua-mode)))
15712 (arguments
15713 `(#:include (cons* "^lua\\/" %default-include)))
15714 (home-page "https://github.com/ptrv/company-lua")
15715 (synopsis "Company backend for Lua")
15716 (description
15717 "This package provides Company backend for Lua programming language.")
15718 (license license:gpl3+))))
15719
15720 (define-public emacs-beginend
15721 (package
15722 (name "emacs-beginend")
15723 (version "2.2.0")
15724 (source
15725 (origin
15726 (method git-fetch)
15727 (uri (git-reference
15728 (url "https://github.com/DamienCassou/beginend")
15729 (commit (string-append "v" version))))
15730 (file-name (git-file-name name version))
15731 (sha256
15732 (base32 "1r9033zlx2q2dk3bjz004flxdiw79qiswq0zqdjnlzwassvk0f35"))))
15733 ;; TODO: Run tests.
15734 (build-system emacs-build-system)
15735 (inputs
15736 `(("emacs-undercover" ,emacs-undercover))) ; For tests.
15737 (home-page "https://github.com/DamienCassou/beginend")
15738 (synopsis "Redefine @code{M-<} and @code{M->} for Emacs modes")
15739 (description "@code{beginend} redefines @code{M-<} and @code{M->}
15740 keybindings for Emacs modes so that point moves to meaningful
15741 locations. Redefined keys are still accessible by pressing the same
15742 key again.")
15743 (license license:gpl3+)))
15744
15745 (define-public emacs-mbsync
15746 (let ((commit "b62491c0e0d89eb9c66261a16d7ac81231c9c453")
15747 (revision "4"))
15748 (package
15749 (name "emacs-mbsync")
15750 (version (git-version "0.1.2" revision commit))
15751 (source
15752 (origin
15753 (method git-fetch)
15754 (uri (git-reference
15755 (url "https://github.com/dimitri/mbsync-el")
15756 (commit commit)))
15757 (file-name (git-file-name name version))
15758 (sha256
15759 (base32
15760 "1zlih37mkqjn2czl12zn7lgxxljvrwhqqpbksj9c91zn0f0rm3mz"))))
15761 (build-system emacs-build-system)
15762 (home-page "https://github.com/dimitri/mbsync-el")
15763 (synopsis "Interface to mbsync for Emacs")
15764 (description "This package calls @code{mbsync} from
15765 within Emacs.")
15766 (license license:gpl3+))))
15767
15768 (define-public emacs-ibuffer-projectile
15769 (let ((commit "76496214144687cee0b5139be2e61b1e400cac87")
15770 (revision "2"))
15771 (package
15772 (name "emacs-ibuffer-projectile")
15773 (version (git-version "0.2" revision commit))
15774 (source
15775 (origin
15776 (method git-fetch)
15777 (uri (git-reference
15778 (url "https://github.com/purcell/ibuffer-projectile")
15779 (commit commit)))
15780 (file-name (git-file-name name version))
15781 (sha256
15782 (base32
15783 "0vv9xwb1qd5x8zhqmmsn1nrpd11cql9hxb7483nsdhcfwl4apqav"))))
15784 (build-system emacs-build-system)
15785 (propagated-inputs
15786 `(("emacs-projectile" ,emacs-projectile)))
15787 (home-page "https://github.com/purcell/ibuffer-projectile")
15788 (synopsis "Group ibuffer's list by projectile root")
15789 (description "Adds functionality to Emacs @code{ibuffer} for
15790 grouping buffers by their projectile root directory.")
15791 (license license:gpl3+))))
15792
15793 (define-public emacs-elm-mode
15794 (package
15795 (name "emacs-elm-mode")
15796 (version "0.21.0")
15797 (source
15798 (origin
15799 (method git-fetch)
15800 (uri
15801 (git-reference
15802 (url "https://github.com/jcollard/elm-mode")
15803 (commit (string-append "v" version))))
15804 (file-name (git-file-name name version))
15805 (sha256
15806 (base32 "0iwk4fmw8hq3ry4ky1zc7lgl4cpbnrjyk74c2xzddfspi3ks41fd"))))
15807 (propagated-inputs
15808 `(("emacs-dash" ,emacs-dash)
15809 ("emacs-f" ,emacs-f)
15810 ("emacs-reformatter" ,emacs-reformatter)
15811 ("emacs-s" ,emacs-s)))
15812 (build-system emacs-build-system)
15813 (home-page "https://github.com/jcollard/elm-mode")
15814 (synopsis "Emacs major mode for editing Elm source code")
15815 (description
15816 "This package provides a major mode for editing Elm source code, and
15817 working with common core and third-party Elm tools. Its features are:
15818
15819 @itemize
15820 @item Syntax highlighting
15821 @item Intelligent indentation
15822 @item Integration with elm-make
15823 @item Integration with elm-repl
15824 @item Integration with elm-reactor
15825 @item Integration with elm-package
15826 @item Integration with elm-oracle
15827 @item Integration with elm-format
15828 @item Integration with elm-test
15829 @end itemize")
15830 (license license:gpl3+)))
15831
15832 (define-public emacs-helm-mode-manager
15833 (package
15834 (name "emacs-helm-mode-manager")
15835 (version "1.0.0")
15836 (source
15837 (origin
15838 (method git-fetch)
15839 (uri (git-reference
15840 (url "https://github.com/istib/helm-mode-manager")
15841 (commit version)))
15842 (file-name (git-file-name name version))
15843 (sha256
15844 (base32
15845 "1srx5f0s9x7zan7ayqd6scxfhcvr3nkd4yzs96hphd87rb18apzk"))))
15846 (build-system emacs-build-system)
15847 (propagated-inputs
15848 `(("emacs-helm" ,emacs-helm)))
15849 (home-page "https://github.com/istib/helm-mode-manager/")
15850 (synopsis "Switch and toggle Emacs major and minor modes using Helm")
15851 (description "This package provides a Helm interface for toggling Emacs
15852 major or minor mode.
15853
15854 @itemize
15855 @item @code{helm-switch-major-mode} list of all major modes
15856 @item @code{helm-enable-minor-mode} list of all inactive minor modes
15857 @item @code{helm-disable-minor-mode} list of all ACTIVE minor modes
15858 @end itemize\n
15859
15860 Hitting @code{RET} enables the mode, @code{C-z} shows the mode
15861 documentation.")
15862 (license license:gpl3+)))
15863
15864 (define-public emacs-hy-mode
15865 (package
15866 (name "emacs-hy-mode")
15867 (version "1.0.4")
15868 (source
15869 (origin
15870 (method git-fetch)
15871 (uri (git-reference
15872 (url "https://github.com/hylang/hy-mode")
15873 (commit (string-append "v" version))))
15874 (file-name (git-file-name name version))
15875 (sha256
15876 (base32 "0gihxlmfminadaqdr8d2zccd7wwygl3m0gfzxsk5izi7f8hl4w7f"))))
15877 (build-system emacs-build-system)
15878 (propagated-inputs
15879 `(("emacs-dash" ,emacs-dash)
15880 ("emacs-s" ,emacs-s)))
15881 (home-page "https://github.com/hylang/hy-mode")
15882 (synopsis "Major mode for Hylang")
15883 (description "This package provides a major mode for Hylang.")
15884 (license license:gpl3+)))
15885
15886 (define-public emacs-web-beautify
15887 (package
15888 (name "emacs-web-beautify")
15889 (version "0.3.2")
15890 (source
15891 (origin
15892 (method git-fetch)
15893 (uri (git-reference
15894 (url "https://github.com/yasuyk/web-beautify")
15895 (commit version)))
15896 (file-name (git-file-name name version))
15897 (sha256
15898 (base32 "0vms7zz3ym53wf1zdrkbf2ky2xjr1v134ngsd0jr8azyi8siw84d"))))
15899 (build-system emacs-build-system)
15900 (home-page "https://github.com/yasuyk/web-beautify")
15901 (synopsis "Format HTML, CSS and JavaScript, JSON")
15902 (description "This package provides an Emacs functions to format HTML,
15903 CSS, JavaScript, JSON.")
15904 (license license:gpl3+)))
15905
15906 (define-public emacs-helm-shell-history
15907 (let ((commit "110d3c35c52fe4b89b29e79ea4c8626bce7266a1"))
15908 (package
15909 (name "emacs-helm-shell-history")
15910 (version (git-version "0.1" "1" commit))
15911 (source
15912 (origin
15913 (method git-fetch)
15914 (uri (git-reference
15915 (url "https://github.com/yuutayamada/helm-shell-history")
15916 (commit commit)))
15917 (file-name (git-file-name name version))
15918 (sha256
15919 (base32
15920 "18fkjcz69g4dyaxhf9j8svr5x6dhsdnglddwisis8hdn504scpfj"))))
15921 (build-system emacs-build-system)
15922 (arguments
15923 '(#:phases
15924 (modify-phases %standard-phases
15925 (add-before 'check 'patch-helm-shell-history-file
15926 (lambda _
15927 (let ((file "helm-shell-history.el"))
15928 (chmod file #o644)
15929 (emacs-substitute-sexps file
15930 ("(defvar helm-shell-history-file"
15931 `(expand-file-name "~/.bash_history"))))
15932 #t)))))
15933 (propagated-inputs
15934 `(("emacs-helm" ,emacs-helm)))
15935 (home-page "https://github.com/yuutayamada/helm-shell-history")
15936 (synopsis "Find shell history with Emacs Helm")
15937 (description "This package provides an Emacs Helm interface to search
15938 throw a shell history.")
15939 (license license:gpl3+))))
15940
15941 (define-public emacs-discover-my-major
15942 (package
15943 (name "emacs-discover-my-major")
15944 (version "1.0")
15945 (source
15946 (origin
15947 (method git-fetch)
15948 (uri (git-reference
15949 (url "https://framagit.org/steckerhalter/discover-my-major.git/")
15950 (commit version)))
15951 (file-name (git-file-name name version))
15952 (sha256
15953 (base32
15954 "1wlqyl03hhnflbyay3qlvdzqzvv5rbybcjpfddggda7ias9h0pr4"))))
15955 (build-system emacs-build-system)
15956 (propagated-inputs
15957 `(("emacs-makey" ,emacs-makey)))
15958 (home-page "https://framagit.org/steckerhalter/discover-my-major/")
15959 (synopsis "Discover key bindings for the current Emacs major mode")
15960 (description "This package discovers key bindings and
15961 their meaning for the current Emacs major-mode.")
15962 (license license:gpl3+)))
15963
15964 (define-public emacs-org-ref
15965 ;; No release since June 2017.
15966 (let ((commit "5bb9be2232db72b04754d7e4c02a3976ad422f6f")
15967 (revision "2"))
15968 (package
15969 (name "emacs-org-ref")
15970 (version (git-version "1.1.1" revision commit))
15971 (source
15972 (origin
15973 (method git-fetch)
15974 (uri (git-reference
15975 (url "https://github.com/jkitchin/org-ref")
15976 (commit commit)))
15977 (file-name (git-file-name name version))
15978 (sha256
15979 (base32 "15gcvbfj19kyv4nxa632b261dwhb26m99plq230qhv9ssfwfgxbx"))))
15980 (build-system emacs-build-system)
15981 (propagated-inputs
15982 `(("emacs-dash" ,emacs-dash)
15983 ("emacs-f" ,emacs-f)
15984 ("emacs-helm" ,emacs-helm)
15985 ("emacs-helm-bibtex" ,emacs-helm-bibtex)
15986 ("emacs-htmlize" ,emacs-htmlize)
15987 ("emacs-hydra" ,emacs-hydra)
15988 ("emacs-ivy" ,emacs-ivy)
15989 ("emacs-key-chord" ,emacs-key-chord)
15990 ("emacs-pdf-tools" ,emacs-pdf-tools)
15991 ("emacs-s" ,emacs-s)))
15992 (home-page "https://github.com/jkitchin/org-ref")
15993 (synopsis "Citations, cross-references and bibliographies in Org mode")
15994 (description
15995 "Org Ref is an Emacs library that provides rich support for citations,
15996 labels and cross-references in Org mode.
15997
15998 The basic idea of Org Ref is that it defines a convenient interface to insert
15999 citations from a reference database (e.g., from BibTeX files), and a set of
16000 functional Org links for citations, cross-references and labels that export
16001 properly to LaTeX, and that provide clickable functionality to the user. Org
16002 Ref interfaces with Helm BibTeX to facilitate citation entry, and it can also
16003 use RefTeX.
16004
16005 It also provides a fairly large number of utilities for finding bad citations,
16006 extracting BibTeX entries from citations in an Org file, and functions to
16007 create and modify BibTeX entries from a variety of sources, most notably from
16008 a DOI.
16009
16010 Org Ref is especially suitable for Org documents destined for LaTeX export and
16011 scientific publication. Org Ref is also useful for research documents and
16012 notes.")
16013 (license license:gpl3+))))
16014
16015 (define-public emacs-org-reveal
16016 (let ((commit "84039bb499290926511b04749882ecb5eda45a0c"))
16017 (package
16018 (name "emacs-org-reveal")
16019 (version (git-version "20200607" "1" commit))
16020 (source (origin
16021 (method git-fetch)
16022 (uri (git-reference
16023 (url "https://github.com/yjwen/org-reveal")
16024 (commit commit)))
16025 (file-name (git-file-name name version))
16026 (sha256
16027 (base32
16028 "1fx3xmnkpfljrdmy0dsyq79k93ky57gcqm1ad9qbzykk7qjvmmi8"))))
16029 (build-system emacs-build-system)
16030 (home-page "https://github.com/yjwen/org-reveal")
16031 (synopsis "Org and Reveal.js powered HTML presentation tool")
16032 (description "Org-Reveal is a @command{org-mode} extension that allows
16033 to create beautiful presentations (slides) with 3D effects from simple but
16034 powerful Org contents.")
16035 (license license:gpl3+))))
16036
16037 (define-public emacs-org-re-reveal
16038 (package
16039 (name "emacs-org-re-reveal")
16040 (version "3.1.1")
16041 (source (origin
16042 (method git-fetch)
16043 (uri (git-reference
16044 (url "https://gitlab.com/oer/org-re-reveal")
16045 (commit version)))
16046 (file-name (git-file-name name version))
16047 (sha256
16048 (base32
16049 "0an799lxy1j48zlg00982d1rhg46ls4fz4v7r7qdh6228icq5hij"))))
16050 (build-system emacs-build-system)
16051 (propagated-inputs
16052 `(("emacs-htmlize" ,emacs-htmlize)
16053 ("emacs-org" ,emacs-org)))
16054 (home-page "https://gitlab.com/oer/org-re-reveal")
16055 (synopsis "Build HTML presentations with reveal.js from Org source files")
16056 (description "This project started as fork of org-reveal. It provides an
16057 export back-end for HTML presentations with reveal.js from Org mode source
16058 files.")
16059 (license license:gpl3+)))
16060
16061 (define-public emacs-add-hooks
16062 (package
16063 (name "emacs-add-hooks")
16064 (version "3.1.1")
16065 (source
16066 (origin
16067 (method git-fetch)
16068 (uri (git-reference
16069 (url "https://github.com/nickmccurdy/add-hooks")
16070 (commit version)))
16071 (file-name (git-file-name name version))
16072 (sha256
16073 (base32 "1jv9fpcsm572zg0j1mbpbfkqgdlqapy89xhhj19pswkhjns1y2wl"))))
16074 (build-system emacs-build-system)
16075 (home-page "https://github.com/nickmccurdy/add-hooks/")
16076 (synopsis "Emacs function for setting multiple hooks")
16077 (description "This package provides a @code{add-hooks} function tidies up
16078 duplicate hook and function names further into a single declarative call.")
16079 (license license:gpl3+)))
16080
16081 (define-public emacs-fancy-battery
16082 (package
16083 (name "emacs-fancy-battery")
16084 (version "0.2")
16085 (source
16086 (origin
16087 (method git-fetch)
16088 (uri (git-reference
16089 (url "https://github.com/emacsorphanage/fancy-battery")
16090 (commit version)))
16091 (file-name (git-file-name name version))
16092 (sha256
16093 (base32 "05lwcwf412m717yhwpjrswqkm8c3i7391rmiwv2k8xc1vk6dpp4g"))))
16094 (build-system emacs-build-system)
16095 (home-page "https://github.com/emacsorphanage/fancy-battery")
16096 (synopsis "Display battery status in Emacs mode line")
16097 (description "This package provides @code{fancy-battery-mode} which is
16098 like the built-in @code{display-battery-mode}, but more fancy. It just the
16099 remaining time, uses colours to indicate the status of the battery, and is
16100 more customizable.")
16101 (license license:gpl3)))
16102
16103 (define-public emacs-fancy-narrow
16104 (package
16105 (name "emacs-fancy-narrow")
16106 (version "0.9.5")
16107 (source
16108 (origin
16109 (method git-fetch)
16110 (uri (git-reference
16111 (url "https://github.com/Malabarba/fancy-narrow")
16112 (commit version)))
16113 (file-name (git-file-name name version))
16114 (sha256
16115 (base32 "0vcr1gnqawvc1yclqs23jvxm6bqix8kpflf1c7znb0wzxmz9kx7y"))))
16116 (build-system emacs-build-system)
16117 (home-page "https://github.com/Malabarba/fancy-narrow/releases")
16118 (synopsis "Imitate @code{narrow-to-region} with more eye candy")
16119 (description
16120 "Unlike @code{narrow-to-region}, which completely hides text outside
16121 the narrowed region, this package simply de-emphasizes the text, makes it
16122 read-only, and makes it unreachable. This leads to a much more natural
16123 feeling where the region stays static (instead of being brutally moved to a
16124 blank slate) and is clearly highlighted with respect to the rest of the
16125 buffer.")
16126 (license license:gpl2+)))
16127
16128 (define-public emacs-know-your-http-well
16129 (package
16130 (name "emacs-know-your-http-well")
16131 (version "0.5.0")
16132 (source
16133 (origin
16134 (method git-fetch)
16135 (uri (git-reference
16136 (url "https://github.com/for-GET/know-your-http-well")
16137 (commit (string-append "v" version))))
16138 (file-name (git-file-name name version))
16139 (sha256
16140 (base32 "1lppggnii2r9fvlhh33gbdrwb50za8lnalavlq9s86ngndn4n94k"))))
16141 (arguments
16142 `(#:phases
16143 (modify-phases %standard-phases
16144 (add-after 'unpack 'install-json-files
16145 (lambda* (#:key outputs #:allow-other-keys)
16146 (for-each (lambda (directory)
16147 (copy-recursively directory
16148 (string-append
16149 (assoc-ref outputs "out")
16150 directory)))
16151 '("js" "json"))))
16152 (add-after 'unpack 'chdir-elisp
16153 ;; Elisp directory is not in root of the source.
16154 (lambda _
16155 (chdir "emacs"))))))
16156 (build-system emacs-build-system)
16157 (home-page "https://github.com/for-GET/know-your-http-well")
16158 (synopsis "Meaning of HTTP headers codes")
16159 (description "Meaning of HTTP headers codes.")
16160 (license license:gpl3+)))
16161
16162 (define-public emacs-navi-mode
16163 (let ((commit "c1d38e8237f4e14af020a0b7d4f118ea198ab674"))
16164 (package
16165 (name "emacs-navi-mode")
16166 (version (git-version "2.0" "1" commit))
16167 (source
16168 (origin
16169 (method git-fetch)
16170 (uri (git-reference
16171 (url "https://github.com/alphapapa/navi")
16172 (commit commit)))
16173 (file-name (git-file-name name version))
16174 (sha256
16175 (base32
16176 "0jj5spk14hgb7zb1cd2n8whcw4k1kd5zb6llwj96v178yaws7l8k"))))
16177 (build-system emacs-build-system)
16178 (propagated-inputs
16179 `(("emacs-outshine" ,emacs-outshine)
16180 ("emacs-outorg" ,emacs-outorg)))
16181 (home-page "https://github.com/alphapapa/navi")
16182 (synopsis "Emacs major-mode for easy buffer-navigation")
16183 (description
16184 "This package provides an Emacs major-mode for easy buffer-navigation")
16185 (license license:gpl3+))))
16186
16187 (define-public emacs-download-region
16188 (let ((commit "eb9e557529a73b4cfc8281c70dd0d95db333fffa")
16189 (revision "1"))
16190 (package
16191 (name "emacs-download-region")
16192 (version (string-append "0.0.1" "-" revision "."
16193 (string-take commit 7)))
16194 (source
16195 (origin
16196 (method git-fetch)
16197 (uri (git-reference
16198 (url "https://github.com/zk-phi/download-region")
16199 (commit commit)))
16200 (file-name (git-file-name name version))
16201 (sha256
16202 (base32
16203 "0v52djg39b6k2snizd9x0qc009ws5y0ywqsfwhqgcbs5ymzh7dsc"))))
16204 (build-system emacs-build-system)
16205 (home-page "https://github.com/zk-phi/download-region")
16206 (synopsis "In buffer download manager for Emacs")
16207 (description "@code{download-region} provides in buffer
16208 downloading manager for Emacs.")
16209 (license license:gpl3+))))
16210
16211 (define-public emacs-helpful
16212 (package
16213 (name "emacs-helpful")
16214 (version "0.18")
16215 (source
16216 (origin
16217 (method git-fetch)
16218 (uri (git-reference
16219 (url "https://github.com/Wilfred/helpful")
16220 (commit version)))
16221 (file-name (git-file-name name version))
16222 (sha256
16223 (base32 "0gdjxykqkal2x765mi51m99i5ql23i1fy909wy4mzj5ajhjfgqcc"))))
16224 (build-system emacs-build-system)
16225 (propagated-inputs
16226 `(("emacs-elisp-refs" ,emacs-elisp-refs)
16227 ("emacs-dash" ,emacs-dash)
16228 ("emacs-s" ,emacs-s)
16229 ("emacs-f" ,emacs-f)
16230 ("emacs-shut-up" ,emacs-shut-up)))
16231 (native-inputs
16232 `(("emacs-ert-runner" ,emacs-ert-runner)
16233 ("emacs-undercover" ,emacs-undercover)))
16234 (arguments
16235 `(#:tests? #t
16236 #:test-command '("ert-runner")))
16237 (home-page "https://github.com/Wilfred/helpful")
16238 (synopsis "More contextual information in Emacs help")
16239 (description "@code{helpful} is an alternative to the built-in Emacs help
16240 that provides much more contextual information.
16241
16242 @itemize
16243 @item Show the source code for interactively defined functions (unlike the
16244 built-in Help).
16245 @item Fall back to the raw sexp if no source is available.
16246 @item Show where a function is being called.
16247 @item Docstrings will Highlight the summary (the first sentence), include
16248 cross-references, hide superfluous puncuation.
16249 @item Show you the properties that have been applied to the current
16250 symbol. This provides visibility of features like edebug or byte-code
16251 optimisation.
16252 @item Provide a separate @code{helpful-command} function to view interactive
16253 functions.
16254 @item Display any keybindings that apply to interactive functions.
16255 @item Trace, disassemble functions from inside Helpful. This is discoverable
16256 and doesn't require memorisation of commands.
16257 @end itemize\n")
16258 (license license:gpl3+)))
16259
16260 (define-public emacs-logview
16261 (package
16262 (name "emacs-logview")
16263 (version "0.9")
16264 (source
16265 (origin
16266 (method git-fetch)
16267 (uri (git-reference
16268 (url "https://github.com/doublep/logview")
16269 (commit version)))
16270 (file-name (git-file-name name version))
16271 (sha256
16272 (base32 "1qhzs75pxnaksbhczmpdcy2zmrqavlzkzss7ik5nv2wf9vs0sn02"))))
16273 (propagated-inputs
16274 `(("emacs-datetime" ,emacs-datetime)))
16275 (build-system emacs-build-system)
16276 (home-page "https://github.com/doublep/logview/")
16277 (synopsis "Emacs mode for viewing log files")
16278 (description "@code{logview} provides an Emacs mode to view log files.")
16279 (license license:gpl3+)))
16280
16281 (define-public emacs-suggest
16282 (package
16283 (name "emacs-suggest")
16284 (version "0.7")
16285 (home-page "https://github.com/Wilfred/suggest.el")
16286 (source
16287 (origin
16288 (method git-fetch)
16289 (uri (git-reference
16290 (url home-page)
16291 (commit version)))
16292 (file-name (git-file-name name version))
16293 (sha256
16294 (base32
16295 "01v8plska5d3g19sb1m4ph1i3ayprfzk8mi6mpabjy6zad397xjl"))))
16296 (build-system emacs-build-system)
16297 (propagated-inputs
16298 `(("emacs-loop" ,emacs-loop)
16299 ("emacs-dash" ,emacs-dash)
16300 ("emacs-s" ,emacs-s)
16301 ("emacs-f" ,emacs-f)
16302 ("emacs-spinner" ,emacs-spinner)
16303 ("emacs-shut-up" ,emacs-shut-up)))
16304 (native-inputs
16305 `(("emacs-ert-runner" ,emacs-ert-runner)
16306 ("emacs-undercover" ,emacs-undercover)))
16307 (arguments
16308 `(#:tests? #t
16309 #:test-command '("ert-runner")))
16310 (synopsis "Suggest Elisp functions that give the output requested")
16311 (description "Suggest.el will find functions that give the output
16312 requested. It's a great way of exploring list, string and arithmetic
16313 functions.")
16314 (license license:gpl3+)))
16315
16316 (define-public emacs-benchmark-init
16317 (package
16318 (name "emacs-benchmark-init")
16319 (version "1.0")
16320 (source
16321 (origin
16322 (method git-fetch)
16323 (uri (git-reference
16324 (url "https://github.com/dholm/benchmark-init-el")
16325 (commit version)))
16326 (file-name (git-file-name name version))
16327 (sha256
16328 (base32 "1kyn1izm5sbqbp9whnhk9dn3yc7zy8bz5san5w3ivi3rpx15fh94"))))
16329 (build-system emacs-build-system)
16330 (home-page "https://github.com/dholm/benchmark-init-el")
16331 (synopsis "Benchmark Emacs @code{require} and @code{load} calls")
16332 (description "@code{benchmark-init} provides a way to keep track of where
16333 time is being spent during Emacs startup in order to optimize startup time.")
16334 (license license:gpl3+)))
16335
16336 (define-public emacs-magit-gerrit
16337 (let ((version "0.3")
16338 (revision "1")
16339 (commit "ece6f369694aca17f3ac166ed2801b432acfe20d"))
16340 (package
16341 (name "emacs-magit-gerrit")
16342 (version (git-version version revision commit))
16343 (source (origin
16344 (method git-fetch)
16345 (uri (git-reference
16346 (url "https://github.com/terranpro/magit-gerrit")
16347 (commit commit)))
16348 (file-name (git-file-name name version))
16349 (sha256
16350 (base32
16351 "0mms0gxv9a3ns8lk5k2wjibm3088y1cmpr3axjdh6ppv7r5wdvii"))))
16352 (build-system emacs-build-system)
16353 (propagated-inputs
16354 `(("emacs-magit" ,emacs-magit)))
16355 (home-page "https://github.com/terranpro/magit-gerrit")
16356 (synopsis "Magit extension for Gerrit")
16357 (description "This Magit extension provides integration with Gerrit,
16358 which makes it possible to conduct Gerrit code reviews directly from within
16359 Emacs.")
16360 (license license:gpl3+))))
16361
16362 (define-public emacs-magit-org-todos-el
16363 (let ((commit "df206287737b9671f2e36ae7b1474ebbe9940d2a"))
16364 (package
16365 (name "emacs-magit-org-todos-el")
16366 (version (git-version "0.1.1" "1" commit))
16367 (source
16368 (origin
16369 (method git-fetch)
16370 (uri (git-reference
16371 (url "https://github.com/danielma/magit-org-todos.el")
16372 (commit commit)))
16373 (file-name (git-file-name name version))
16374 (sha256
16375 (base32
16376 "0kdp7k7jnnrkhsg0xh1c3h7iz0vgi120gf5xwl1hxy61avivnxrn"))))
16377 (propagated-inputs
16378 `(("magit" ,emacs-magit)))
16379 (build-system emacs-build-system)
16380 (home-page "https://github.com/danielma/magit-org-todos.el")
16381 (synopsis "Get todo.org into Emacs Magit status")
16382 (description "This package allows you to get @file{todo.org} into your
16383 magit status.
16384
16385 If you have a @file{todo.org} file with @code{TODO} items in the root of your
16386 repository, @code{magit-org-todos} will create a section in your Magit status
16387 buffer with each of your todos.")
16388 (license license:gpl3+))))
16389
16390 (define-public emacs-vcsh
16391 (package
16392 (name "emacs-vcsh")
16393 (version "0.4.4")
16394 (source
16395 (origin
16396 (method git-fetch)
16397 (uri (git-reference
16398 (url "https://gitlab.com/stepnem/vcsh-el.git")
16399 (commit version)))
16400 (file-name (git-file-name name version))
16401 (sha256
16402 (base32 "183pffdiqb7qqmjq31wxl3fpv8qswqgg99gb716rddiyk15ysri7"))))
16403 (build-system emacs-build-system)
16404 (home-page "https://gitlab.com/stepnem/vcsh-el")
16405 (synopsis "Emacs VCSH integration")
16406 (description
16407 "This library provides basic ``enter'' functionality and a few
16408 convenience commands to initialize a @acronym{VCSH, Version Control System for
16409 $HOME} repository and add files to it. It can be used in conjunction with
16410 Magit.")
16411 (license license:public-domain)))
16412
16413 (define-public emacs-f3
16414 (package
16415 (name "emacs-f3")
16416 (version "0.1")
16417 (source
16418 (origin
16419 (method git-fetch)
16420 (uri (git-reference
16421 (url "https://github.com/cosmicexplorer/f3")
16422 (commit version)))
16423 (file-name (git-file-name name version))
16424 (sha256
16425 (base32 "1qg48zbjdjqimw4516ymrsilz41zkib9321q0caf9474s9xyp2bi"))))
16426 (build-system emacs-build-system)
16427 (propagated-inputs
16428 `(("emacs-helm" ,emacs-helm)))
16429 (home-page "https://github.com/cosmicexplorer/f3")
16430 (synopsis "Fantastic File Finder for Emacs")
16431 (description
16432 "The Fantastic File Finder for Emacs. Find files fast, using helm.")
16433 (license license:gpl3+)))
16434
16435 (define-public emacs-lice-el
16436 (let ((commit "482e58ab83fff86ed754b00be27b62a219597e7c"))
16437 (package
16438 (name "emacs-lice-el")
16439 (version (git-version "0.2" "2" commit))
16440 (source (origin
16441 (method git-fetch)
16442 (uri (git-reference
16443 (url "https://github.com/buzztaiki/lice-el")
16444 (commit commit)))
16445 (file-name (git-file-name name version))
16446 (sha256
16447 (base32
16448 "0yxkjyhfk8kpr8yqz54gdx6xwkj4s8bnbz60162jh12crj0bs5n7"))))
16449 (build-system emacs-build-system)
16450 (arguments
16451 `(#:phases
16452 (modify-phases %standard-phases
16453 (add-after 'unpack 'patch-template-directory
16454 (lambda* (#:key outputs #:allow-other-keys)
16455 (chmod "lice.el" #o666)
16456 (emacs-substitute-variables "lice.el"
16457 ("lice:system-template-directory"
16458 (string-append (assoc-ref outputs "out")
16459 "/share/emacs-lice-el/template")))
16460 #t))
16461 (add-after 'install 'install-templates
16462 (lambda* (#:key outputs #:allow-other-keys)
16463 (copy-recursively
16464 "template"
16465 (string-append (assoc-ref outputs "out")
16466 "/share/emacs-lice-el/template"))
16467 #t)))))
16468 (home-page "https://github.com/buzztaiki/lice-el")
16469 (synopsis "License and header template for Emacs")
16470 (description "@code{lice.el} provides following features:
16471
16472 @itemize
16473 @item License template management.
16474 @item File header insertion.
16475 @end itemize\n")
16476 (license license:gpl3+))))
16477
16478 (define-public emacs-academic-phrases
16479 (let ((commit "0823ed8c24b26c32f909b896a469833ec4d7b656"))
16480 (package
16481 (name "emacs-academic-phrases")
16482 (version (git-version "0.1" "1" commit))
16483 (source
16484 (origin
16485 (method git-fetch)
16486 (uri (git-reference
16487 (url "https://github.com/nashamri/academic-phrases")
16488 (commit commit)))
16489 (file-name (git-file-name name version))
16490 (sha256
16491 (base32
16492 "0qfzsq8jh05w4zkr0cvq3i1hdn97bq344vcqjg46sib26x3wpz6r"))))
16493 (build-system emacs-build-system)
16494 (propagated-inputs
16495 `(("emacs-dash" ,emacs-dash)
16496 ("emacs-s" ,emacs-s)
16497 ("emacs-ht" ,emacs-ht)))
16498 (home-page "https://github.com/nashamri/academic-phrases")
16499 (synopsis "Bypass that mental block when writing your papers")
16500 (description
16501 "When writing your academic paper, you might get stuck trying to find
16502 the right phrase that captures your intention. This package tries to
16503 alleviate that problem by presenting you with a list of phrases organized by
16504 the topic or by the paper section that you are writing. This package has
16505 around 600 phrases so far.
16506
16507 Using this package is easy, just call @code{academic-phrases} to get a list of
16508 phrases organized by topic, or call @code{academic-phrases-by-section} to
16509 browse the phrases by the paper section and fill-in the blanks if required.")
16510 (license license:gpl3+))))
16511
16512 (define-public emacs-auto-yasnippet
16513 (let ((commit "624b0d9711222073a2a3f2186e2605eb99fc83c9")
16514 (revision "2"))
16515 (package
16516 (name "emacs-auto-yasnippet")
16517 (version (git-version "0.3.0" revision commit))
16518 (source (origin
16519 (method git-fetch)
16520 (uri (git-reference
16521 (url "https://github.com/abo-abo/auto-yasnippet")
16522 (commit commit)))
16523 (file-name (git-file-name name version))
16524 (sha256
16525 (base32
16526 "15g8wi067f345xhpi0c12w0h04p4f4lpccwmdjdfj8hzfl4gyxy9"))))
16527 (build-system emacs-build-system)
16528 (arguments
16529 '(#:tests? #t
16530 #:test-command '("make" "test")))
16531 (propagated-inputs
16532 `(("emacs-yasnippet" ,emacs-yasnippet)))
16533 (home-page "https://github.com/abo-abo/auto-yasnippet/")
16534 (synopsis "Quickly create disposable yasnippets")
16535 (description "This package provides a hybrid of keyboard macros and
16536 yasnippet. You create the snippet on the go, usually to be used just in the
16537 one place. It's fast, because you're not leaving the current buffer, and all
16538 you do is enter the code you'd enter anyway, just placing ~ where you'd like
16539 yasnippet fields and mirrors to be.")
16540 (license license:gpl3+))))
16541
16542 (define-public emacs-highlight-numbers
16543 (package
16544 (name "emacs-highlight-numbers")
16545 (version "0.2.3")
16546 (source
16547 (origin
16548 (method git-fetch)
16549 (uri (git-reference
16550 (url "https://github.com/Fanael/highlight-numbers")
16551 (commit version)))
16552 (file-name (git-file-name name version))
16553 (sha256
16554 (base32 "1r07mpyr7rhd7bkg778hx6vbhb4n9ixgzkpszhgks7ri6ia38pj8"))))
16555 (build-system emacs-build-system)
16556 (propagated-inputs
16557 `(("emacs-parent-mode" ,emacs-parent-mode)))
16558 (home-page "https://github.com/Fanael/highlight-numbers")
16559 (synopsis "Highlight numbers in source code")
16560 (description "@code{highlight-numbers-mode} provides a minor mode for
16561 syntax highlighting of numeric literals in source code.
16562
16563 It s customizable: it's easy to add or redefine what exactly constitutes a
16564 \"number\" in given major mode. See @code{highlight-numbers-modelist}.")
16565 (license license:gpl3+)))
16566
16567 (define-public emacs-darkroom
16568 (package
16569 (name "emacs-darkroom")
16570 (version "0.3")
16571 (source
16572 (origin
16573 (method url-fetch)
16574 (uri (string-append "https://elpa.gnu.org/packages/"
16575 "darkroom-" version ".el"))
16576 (sha256
16577 (base32 "0l1xg5kqmjw22k78qnsln0ifx2dx74xxqj0qp8xxcpqvzzx0xh86"))))
16578 (build-system emacs-build-system)
16579 (home-page "https://elpa.gnu.org/packages/darkroom.html")
16580 (synopsis "Remove visual distractions and focus on writing")
16581 (description "@code{darkroom-mode} makes visual distractions disappear.
16582 The mode-line is temporarily elided, text is enlarged and margins are adjusted
16583 so that it's centered on the window.
16584
16585 @code{darkroom-tentative-mode} is similar, but it doesn't immediately turn-on
16586 @code{darkroom-mode}, unless the current buffer lives in the sole window of
16587 the Emacs frame (i.e. all other windows are deleted). Whenever the frame is
16588 split to display more windows and more buffers, the buffer exits
16589 @code{darkroom-mode}. Whenever they are deleted, the buffer re-enters
16590 @code{darkroom-mode}.")
16591 (license license:gpl3+)))
16592
16593 (define-public emacs-rsw-elisp
16594 (package
16595 (name "emacs-rsw-elisp")
16596 (version "1.0.5")
16597 (source (origin
16598 (method git-fetch)
16599 (uri (git-reference
16600 (url "https://github.com/rswgnu/rsw-elisp")
16601 (commit version)))
16602 (file-name (git-file-name name version))
16603 (sha256
16604 (base32
16605 "0dfq8myg0r91900bk1s70amsmm4mjk2qsg12v5pk7lla5d2vnyaf"))))
16606 (build-system emacs-build-system)
16607 (home-page "https://github.com/rswgnu/rsw-elisp")
16608 (synopsis "Improved expressions that interactively evaluate Emacs Lisp")
16609 (description "This package improves and replaces the GNU Emacs commands
16610 that interactively evaluate Emacs Lisp expressions. The new commands replace
16611 standard key bindings and are all prefixed with @code{rsw-elisp-}. They work
16612 the same way as the old commands when called non-interactively; only the
16613 interactive behavior should be different.")
16614 (license license:gpl3+)))
16615
16616 (define-public emacs-default-text-scale
16617 (let ((commit "968e985e219235f3e744d6d967e592acbaf6e0a8")
16618 (revision "1"))
16619 (package
16620 (name "emacs-default-text-scale")
16621 (version (string-append "0.1" "-" revision "."
16622 (string-take commit 7)))
16623 (source (origin
16624 (method git-fetch)
16625 (uri (git-reference
16626 (url "https://github.com/purcell/default-text-scale")
16627 (commit commit)))
16628 (file-name (git-file-name name version))
16629 (sha256
16630 (base32
16631 "0zds01c3q5yny6ab1fxfkzzgn1kgl3q23lxxap905f4qd70v922h"))))
16632 (build-system emacs-build-system)
16633 (home-page "https://github.com/purcell/default-text-scale")
16634 (synopsis "Adjust the font size in all Emacs frames")
16635 (description "This package provides commands for increasing or
16636 decreasing the default font size in all GUI Emacs frames.")
16637 (license license:gpl3+))))
16638
16639 (define-public emacs-mixed-pitch
16640 ;; This commit contains fixes for visual alignment of line numbers and
16641 ;; org-indent-mode.
16642 (let ((commit "d305108f9520e196b533f05d1dcc284cf535faaf")
16643 (tag "1.1.0")
16644 (revision "0"))
16645 (package
16646 (name "emacs-mixed-pitch")
16647 (version (git-version tag revision commit))
16648 (source
16649 (origin
16650 (method git-fetch)
16651 (uri (git-reference
16652 (url "https://gitlab.com/jabranham/mixed-pitch.git")
16653 (commit commit)))
16654 (file-name (git-file-name name version))
16655 (sha256
16656 (base32 "0yx89is3g2m8af8vfsz5rgjmfmx7mfrxlffb1x6y4b8lh9l0k6dj"))))
16657 (build-system emacs-build-system)
16658 (home-page "https://gitlab.com/jabranham/mixed-pitch")
16659 (synopsis "Mix variable- and fixed-pitch fonts in the same Emacs buffer")
16660 (description
16661 "@code{mixed-pitch-mode} is a minor mode that enables mixing
16662 variable-pitch and fixed-pitch fonts in the same buffer. The list
16663 @code{mixed-pitch-fixed-pitch-faces} defines the faces that are kept
16664 fixed-pitch,everything else becomes variable-pitch.")
16665 (license license:gpl3+))))
16666
16667 (define-public emacs-visual-regexp
16668 (package
16669 (name "emacs-visual-regexp")
16670 (version "1.1.2")
16671 (source
16672 (origin
16673 (method git-fetch)
16674 (uri (git-reference
16675 (url "https://github.com/benma/visual-regexp.el")
16676 (commit (string-append "v" version))))
16677 (file-name (git-file-name name version))
16678 (sha256
16679 (base32 "12p3rlhdphwmx1kxsjzcl2wj3i6qgpvw8iwhg1whs6yqgaxivixd"))))
16680 (build-system emacs-build-system)
16681 (home-page "https://github.com/benma/visual-regexp.el/")
16682 (synopsis "Regexp command with interactive visual feedback")
16683 (description "This package provides an Emacs regexp command with
16684 interactive visual feedback.")
16685 (license license:gpl3+)))
16686
16687 (define-public emacs-faceup
16688 (let ((commit "6c92dad56a133e14e7b27831e1bcf9b3a71ff154")
16689 (revision "1"))
16690 (package
16691 (name "emacs-faceup")
16692 (version (string-append "0.0.1" "-" revision "."
16693 (string-take commit 7)))
16694 (source
16695 (origin
16696 (method git-fetch)
16697 (uri (git-reference
16698 (url "https://github.com/Lindydancer/faceup")
16699 (commit commit)))
16700 (file-name (git-file-name name version))
16701 (sha256
16702 (base32
16703 "1yzmy7flrhrh0i10bdszx8idx6r8h6czm4vm4q0z6fp5fw94zwrx"))))
16704 (build-system emacs-build-system)
16705 (home-page "https://github.com/Lindydancer/faceup")
16706 (synopsis "Markup language for faces and font-lock regression testing")
16707 (description "Emacs is capable of highlighting buffers based on
16708 language-specific @code{font-lock} rules. This package makes it possible to
16709 perform regression test for packages that provide font-lock rules.")
16710 (license license:gpl3+))))
16711
16712 (define-public emacs-racket-mode
16713 (let ((commit "5eb31a284c8db5102bc71b1e2c6ce3a095ae085b")
16714 (revision "6"))
16715 (package
16716 (name "emacs-racket-mode")
16717 (version (git-version "0.0.2" revision commit))
16718 (source
16719 (origin
16720 (method git-fetch)
16721 (uri (git-reference
16722 (url "https://github.com/greghendershott/racket-mode")
16723 (commit commit)))
16724 (file-name (git-file-name name version))
16725 (sha256
16726 (base32
16727 "081h6rd0gv88m0wvnmghi242kl39x1sz34qr4cq9vz04iwvnmgrm"))))
16728 (build-system emacs-build-system)
16729 (arguments
16730 `(#:include '("\\.el$" "\\.rkt$")))
16731 (propagated-inputs
16732 `(("emacs-faceup" ,emacs-faceup)
16733 ("emacs-pos-tip" ,emacs-pos-tip)
16734 ("emacs-s" ,emacs-s)))
16735 (home-page "https://www.racket-mode.com/")
16736 (synopsis "Major mode for the Racket language")
16737 (description "@code{racket-mode} provides:
16738
16739 @itemize
16740 @item Focus on Racket (not various Schemes).
16741 @item Follow DrRacket concepts where applicable.
16742 @item Thorough font-lock and indent.
16743 @end itemize\n")
16744 (license license:gpl3+))))
16745
16746 (define-public emacs-grep-context
16747 (let ((commit "5a4e3efdf775755c1bbefcfe4b461c1166d81d7d")
16748 (revision "1"))
16749 (package
16750 (name "emacs-grep-context")
16751 (version (git-version "0.1.0" revision commit))
16752 (source
16753 (origin
16754 (method git-fetch)
16755 (uri (git-reference
16756 (url "https://github.com/mkcms/grep-context")
16757 (commit commit)))
16758 (file-name (git-file-name name version))
16759 (sha256
16760 (base32
16761 "00q7l4a3c0ay6g5ff9bfa2qgkiswsyh4s6pqnpg0zpzhvv5710f5"))))
16762 (build-system emacs-build-system)
16763 (propagated-inputs
16764 `(("emacs-dash" ,emacs-dash)))
16765 (home-page "https://github.com/mkcms/grep-context")
16766 (synopsis "Increase context in compilation and grep buffers")
16767 (description
16768 "This package provides an Emacs package for more context in
16769 compilation/grep buffers. Works with @code{wgrep}, @code{ack}, @code{ag},
16770 @code{ivy}.")
16771 (license license:gpl3+))))
16772
16773 (define-public emacs-helm-firefox
16774 (let ((commit "0ad34b7b5abc485a86cae6920c14de861cbeb085")
16775 (revision "1"))
16776 (package
16777 (name "emacs-helm-firefox")
16778 (version (string-append "0.0.1" "-" revision "."
16779 (string-take commit 7)))
16780 (source
16781 (origin
16782 (method git-fetch)
16783 (uri (git-reference
16784 (url "https://github.com/emacs-helm/helm-firefox")
16785 (commit commit)))
16786 (file-name (git-file-name name version))
16787 (sha256
16788 (base32
16789 "08mjsi2f9s29fkk35cj1rrparjnkm836qmbfdwdz7y51f9varjbs"))))
16790 (propagated-inputs
16791 `(("emacs-helm" ,emacs-helm)))
16792 (build-system emacs-build-system)
16793 (home-page "https://github.com/emacs-helm/helm-firefox")
16794 (synopsis "Display firefox bookmarks with Emacs Helm interface")
16795 (description "Display firefox bookmarks with Emacs Helm interface")
16796 (license license:gpl3+))))
16797
16798 (define-public emacs-interactive-align
16799 (package
16800 (name "emacs-interactive-align")
16801 (version "0.4.2")
16802 (source
16803 (origin
16804 (method git-fetch)
16805 (uri (git-reference
16806 (url "https://github.com/mkcms/interactive-align")
16807 (commit (string-append "v" version))))
16808 (file-name (git-file-name name version))
16809 (sha256
16810 (base32
16811 "0bh03w91i622hbar5dcq631ndxx1y8kd3h655pgw1g0lqkv1mlnc"))))
16812 (build-system emacs-build-system)
16813 (home-page "https://github.com/mkcms/interactive-align/")
16814 (synopsis "Interactive align-regexp command in Emacs")
16815 (description "Interactive align-regexp command in Emacs")
16816 (license license:gpl3+)))
16817
16818 (define-public emacs-shift-number
16819 (package
16820 (name "emacs-shift-number")
16821 (version "0.1")
16822 (source
16823 (origin
16824 (method git-fetch)
16825 (uri (git-reference
16826 (url "https://github.com/alezost/shift-number.el")
16827 (commit (string-append "v" version))))
16828 (file-name (git-file-name name version))
16829 (sha256
16830 (base32
16831 "0zlwmzsxkv4mkggylxfx2fkrwgz7dz3zbg2gkn2rxcpy2k2gla64"))))
16832 (build-system emacs-build-system)
16833 (home-page "https://github.com/alezost/shift-number.el")
16834 (synopsis "Increase or decrease the number at point")
16835 (description "@code{emacs-shift-number} provides commands
16836 @code{shift-number-up} to increase and @code{shift-number-down} to
16837 decrease the number at point.")
16838 (license license:gpl3+)))
16839
16840 (define-public emacs-highlight-defined
16841 (package
16842 (name "emacs-highlight-defined")
16843 (version "0.1.5")
16844 (source
16845 (origin
16846 (method git-fetch)
16847 (uri (git-reference
16848 (url "https://github.com/Fanael/highlight-defined")
16849 (commit version)))
16850 (file-name (git-file-name name version))
16851 (sha256
16852 (base32 "08czwa165rnd5z0dwwdddn7zi5w63sdk31l47bj0598kbly01n7r"))))
16853 (build-system emacs-build-system)
16854 (home-page "https://github.com/Fanael/highlight-defined")
16855 (synopsis "Syntax highlighting of known Elisp symbols")
16856 (description "Minor mode providing syntax highlighting of known Emacs Lisp
16857 symbols. Currently the code distinguishes Lisp functions, built-in functions,
16858 macros, faces and variables. To enable call @code{highlight-defined-mode}. ")
16859 (license license:gpl3+)))
16860
16861 (define-public emacs-parinfer-mode
16862 (package
16863 (name "emacs-parinfer-mode")
16864 (version "0.4.10")
16865 (source
16866 (origin
16867 (method git-fetch)
16868 (uri (git-reference
16869 (url "https://github.com/DogLooksGood/parinfer-mode")
16870 (commit (string-append "v" version))))
16871 (file-name (git-file-name name version))
16872 (sha256
16873 (base32 "0v97ncb0w1slb0x8861l3yr1kqz6fgw1fwl1z9lz6hh8p2ih34sk"))))
16874 (propagated-inputs
16875 `(("emacs-dash" ,emacs-dash)
16876 ("emacs-rainbow-delimiters" ,emacs-rainbow-delimiters)
16877 ("emacs-company" ,emacs-company)))
16878 (build-system emacs-build-system)
16879 (home-page "https://github.com/DogLooksGood/parinfer-mode/")
16880 (synopsis "Lisp structure editing mode")
16881 (description "@code{parinfer-mode} is a proof-of-concept editor
16882 mode for Lisp programming languages. It will infer some changes to
16883 keep Parens and Indentation inline with one another.")
16884 (license license:gpl3+)))
16885
16886 (define-public emacs-helm-eww
16887 (package
16888 (name "emacs-helm-eww")
16889 (version "1.2")
16890 (source (origin
16891 (method git-fetch)
16892 (uri (git-reference
16893 (url "https://github.com/emacs-helm/helm-eww")
16894 (commit version)))
16895 (file-name (git-file-name name version))
16896 (sha256
16897 (base32
16898 "0hpq1h0p69c9k6hkd2mjpprx213sc5475q7pr2zpmwrjdzgcv70z"))))
16899 (propagated-inputs
16900 `(("emacs-helm" ,emacs-helm)))
16901 (build-system emacs-build-system)
16902 (home-page "https://github.com/emacs-helm/helm-eww/")
16903 (synopsis "Helm interface to EWW")
16904 (description "This package provides a Helm interface for EWW buffers,
16905 bookmarks and history.")
16906 (license license:gpl3+)))
16907
16908 (define-public emacs-stumpwm-mode
16909 (let ((commit "920f8fc1488f7953f205e1dda4c2ecbbbda56d6")
16910 (revision "3"))
16911 (package
16912 (name "emacs-stumpwm-mode")
16913 (version (git-version "0.0.1" revision commit))
16914 (source (origin
16915 (method git-fetch)
16916 (uri (git-reference
16917 (url "https://github.com/stumpwm/stumpwm-contrib")
16918 (commit commit)))
16919 (file-name (git-file-name name version))
16920 (sha256
16921 (base32
16922 "0giac390bq95ag41xkxqp8jjrhfx1wpgglz7jg5rkm0wjhcwmyml"))))
16923 (build-system emacs-build-system)
16924 (arguments
16925 `(#:phases
16926 (modify-phases %standard-phases
16927 (add-after 'unpack 'chdir-elisp
16928 ;; Elisp directory is not in root of the source.
16929 (lambda _
16930 (chdir "util/swm-emacs"))))))
16931 (home-page "https://github.com/stumpwm/stumpwm-contrib")
16932 (synopsis "Emacs minor-mode for Stumpwm")
16933 (description "Emacs minor-mode for Stumpwm")
16934 (license license:gpl3+))))
16935
16936 (define-public emacs-irfc
16937 (package
16938 (name "emacs-irfc")
16939 (version "20130824.507-1")
16940 (source
16941 (origin
16942 (method url-fetch)
16943 (uri "https://www.emacswiki.org/emacs/download/irfc.el")
16944 (file-name (string-append "irfc-" version ".el"))
16945 (sha256
16946 (base32
16947 "0rbfrza56kvspvgrwg0b5bj30d0qncqdsmfxn3y5caq4ifcj77hv"))))
16948 (build-system emacs-build-system)
16949 (home-page "https://www.emacswiki.org/emacs/download/irfc.el")
16950 (synopsis "Interface for IETF RFC document")
16951 (description
16952 "This package provides an Emacs interface for IETF RFC document.")
16953 (license license:gpl3+)))
16954
16955 (define-public emacs-ido-vertical-mode
16956 (package
16957 (name "emacs-ido-vertical-mode")
16958 (version "0.1.6")
16959 (source
16960 (origin
16961 (method git-fetch)
16962 (uri (git-reference
16963 (url "https://github.com/creichert/ido-vertical-mode.el")
16964 (commit (string-append "v" version))))
16965 (file-name (git-file-name name version))
16966 (sha256
16967 (base32 "1lv82q639xjnmvby56nwqn23ijh6f163bk675s33dkingm8csj8k"))))
16968 (build-system emacs-build-system)
16969 (home-page "https://github.com/creichert/ido-vertical-mode.el")
16970 (synopsis "Makes ido-mode display vertically")
16971 (description "Makes ido-mode display prospects vertically.")
16972 (license license:gpl3+)))
16973
16974 (define-public emacs-wordgen
16975 (package
16976 (name "emacs-wordgen")
16977 (version "0.1.4")
16978 (source
16979 (origin
16980 (method git-fetch)
16981 (uri (git-reference
16982 (url "https://github.com/Fanael/wordgen.el")
16983 (commit version)))
16984 (file-name (git-file-name name version))
16985 (sha256
16986 (base32 "06vbc9ycz1nbjwjkg99y3lj6jwb6lnwnmkqf09yr00jjrrfhfash"))))
16987 (build-system emacs-build-system)
16988 (home-page "https://github.com/Fanael/wordgen.el")
16989 (synopsis "Random word generator")
16990 (description "This package provides functions to generate random words
16991 using user-provided rules.")
16992 (license license:gpl3+)))
16993
16994 (define-public emacs-on-screen
16995 (package
16996 (name "emacs-on-screen")
16997 (version "1.3.3")
16998 (source
16999 (origin
17000 (method url-fetch)
17001 (uri (string-append
17002 "https://elpa.gnu.org/packages/on-screen-" version ".el"))
17003 (file-name (string-append name "-" version ".el"))
17004 (sha256
17005 (base32 "0ga4hw23ki583li2z2hr7l6hk1nc2kdg4afndg06cm9jn158wza7"))))
17006 (build-system emacs-build-system)
17007 (home-page "https://github.com/michael-heerdegen/on-screen.el")
17008 (synopsis "Guide your eyes while scrolling")
17009 (description
17010 "Scrolling can be distracting because your eyes may lose
17011 orientation. This library implements a minor mode that highlights
17012 the previously visible buffer part after each scroll.")
17013 (license license:gpl3+)))
17014
17015 (define-public emacs-highlight-escape-sequences
17016 ;; No release upstream. Extract version from main file.
17017 (let ((commit "08d846a7aa748209d65fecead2b6a766c3e5cb41")
17018 (revision "0"))
17019 (package
17020 (name "emacs-highlight-escape-sequences")
17021 (version (git-version "0.4" revision commit))
17022 (source
17023 (origin
17024 (method git-fetch)
17025 (uri (git-reference
17026 (url "https://github.com/dgutov/highlight-escape-sequences")
17027 (commit commit)))
17028 (file-name (git-file-name name version))
17029 (sha256
17030 (base32 "05mc3w1f8ykf80914a1yddw6j8cmh0h57llm07xh89s53821v2is"))))
17031 (build-system emacs-build-system)
17032 (home-page "https://github.com/dgutov/highlight-escape-sequences")
17033 (synopsis "Highlight escape sequences in Emacs")
17034 (description "@code{highlight-escape-sequences} provides an
17035 Emacs minor mode to escape sequences in code.")
17036 (license license:gpl3+))))
17037
17038 (define-public emacs-dashboard
17039 (package
17040 (name "emacs-dashboard")
17041 (version "1.6.0")
17042 (source
17043 (origin
17044 (method git-fetch)
17045 (uri (git-reference
17046 (url "https://github.com/rakanalh/emacs-dashboard")
17047 (commit version)))
17048 (file-name (git-file-name name version))
17049 (sha256
17050 (base32 "1g6g8vad1kdmv1zxp95a8sn70idl26isqjb3xk1r95pqnx1cn591"))))
17051 (build-system emacs-build-system)
17052 (propagated-inputs
17053 `(("emacs-page-break-lines" ,emacs-page-break-lines)))
17054 (arguments
17055 '(#:include '("\\.el$" "\\.txt$" "\\.png$")
17056 #:phases
17057 (modify-phases %standard-phases
17058 (add-after 'unpack 'patch-dashboard-widgets
17059 ;; This phase fixes compilation error.
17060 (lambda _
17061 (chmod "dashboard-widgets.el" #o666)
17062 (emacs-substitute-variables "dashboard-widgets.el"
17063 ("dashboard-init-info"
17064 '(format "Loaded in %s" (emacs-init-time))))
17065 #t)))))
17066 (home-page "https://github.com/rakanalh/emacs-dashboard")
17067 (synopsis "Startup screen extracted from Spacemacs")
17068 (description "This package provides an extensible Emacs dashboard, with
17069 sections for bookmarks, projectil projects, org-agenda and more. ")
17070 (license license:gpl3+)))
17071
17072 (define-public emacs-slime-company
17073 (package
17074 (name "emacs-slime-company")
17075 (version "1.1")
17076 (source
17077 (origin
17078 (method git-fetch)
17079 (uri (git-reference
17080 (url "https://github.com/anwyn/slime-company")
17081 (commit (string-append "v" version))))
17082 (file-name (git-file-name name version))
17083 (sha256
17084 (base32 "1hl1hqkc1pxga9k2k8k15d7dip7sfsmwf4wm4sh346m6nj606q8g"))))
17085 (build-system emacs-build-system)
17086 (propagated-inputs
17087 `(("emacs-slime" ,emacs-slime)
17088 ("emacs-company" ,emacs-company)))
17089 (home-page "https://company-mode.github.io")
17090 (synopsis "SLIME completion backend for @code{company-mode}")
17091 (description
17092 "This is a backend implementation for the completion package
17093 @code{company-mode} which supports the normal and the fuzzy completion
17094 modes of SLIME.")
17095 (license license:gpl3+)))
17096
17097 (define-public emacs-sml-mode
17098 (package
17099 (name "emacs-sml-mode")
17100 (version "6.10")
17101 (source
17102 (origin
17103 (method url-fetch)
17104 (uri (string-append "https://elpa.gnu.org/packages/sml-mode-"
17105 version ".el"))
17106 (sha256
17107 (base32 "01yf0s474r9xhj6nbs14ljn9ccxb5yy758i17c8nmgmqvm8fx7sb"))))
17108 (build-system emacs-build-system)
17109 (home-page "https://elpa.gnu.org/packages/sml-mode.html")
17110 (synopsis "Major mode for editing (Standard) ML")
17111 (description "SML-MODE is a major Emacs mode for editing Standard ML.
17112 It provides syntax highlighting and automatic indentation and
17113 comes with sml-proc which allows interaction with an inferior SML
17114 interactive loop.")
17115 (license license:gpl3+)))
17116
17117 (define-public emacs-eros
17118 (let ((commit "dd8910279226259e100dab798b073a52f9b4233a")
17119 (revision "2"))
17120 (package
17121 (name "emacs-eros")
17122 (version (git-version "0.0.1" revision commit))
17123 (source
17124 (origin
17125 (method git-fetch)
17126 (uri (git-reference
17127 (url "https://github.com/xiongtx/eros")
17128 (commit commit)))
17129 (file-name (git-file-name name version))
17130 (sha256
17131 (base32
17132 "08chj3a0lw4ygi2sv7wj0i6ihfbi8jhylr8p92inif8b88r6wg3k"))))
17133 (build-system emacs-build-system)
17134 (home-page "https://github.com/xiongtx/eros")
17135 (synopsis "Evaluation result overlays")
17136 (description "@code{eros} provides evaluation result overlays.")
17137 (license license:gpl3+))))
17138
17139 (define-public emacs-stickyfunc-enhance
17140 (let ((commit "13bdba51fcd83ccbc3267959d23afc94d458dcb0")
17141 (revision "1"))
17142 (package
17143 (name "emacs-stickyfunc-enhance")
17144 (version "0.1")
17145 (source
17146 (origin
17147 (method git-fetch)
17148 (uri (git-reference
17149 (url "https://github.com/tuhdo/semantic-stickyfunc-enhance")
17150 (commit commit)))
17151 (file-name (git-file-name name version))
17152 (sha256
17153 (base32
17154 "16dxjsr5nj20blww4xpd4jzgjprzzh1nwvb810ggdmp9paf4iy0g"))))
17155 (build-system emacs-build-system)
17156 (home-page "https://github.com/tuhdo/semantic-stickyfunc-enhance")
17157 (synopsis "Enhancement to stock @code{semantic-stickyfunc-mode}")
17158 (description
17159 "@code{semantic-stickyfunc-mode} shows the function point is currently
17160 in at the first line of the current buffer. This is useful when you have a
17161 very long function that spreads more than a screen, and you don't have to
17162 scroll up to read the function name and then scroll down to original position.")
17163 (license license:gpl3+))))
17164
17165 (define-public emacs-git-auto-commit-mode
17166 (package
17167 (name "emacs-git-auto-commit-mode")
17168 (version "4.7.0")
17169 (source
17170 (origin
17171 (method git-fetch)
17172 (uri (git-reference
17173 (url "https://github.com/ryuslash/git-auto-commit-mode")
17174 (commit version)))
17175 (file-name (git-file-name name version))
17176 (sha256
17177 (base32 "0gpib57f7xza04g3iyihw5v15hb7pncqsmvyggib902yvcxlkvqf"))))
17178 (build-system emacs-build-system)
17179 (native-inputs
17180 `(("emacs-buttercup" ,emacs-buttercup)
17181 ("git" ,git)))
17182 (arguments
17183 `(#:tests? #t
17184 #:test-command '("buttercup" "-L" ".")))
17185 (home-page "https://github.com/ryuslash/git-auto-commit-mode")
17186 (synopsis "Emacs Minor mode to automatically commit and push")
17187 (description "@code{git-auto-commit-mode} is an Emacs minor mode that
17188 tries to commit changes to a file after every save.
17189
17190 When @code{gac-automatically-push-p} is non-nil, it also tries to push to the
17191 current upstream.")
17192 (license license:gpl3+)))
17193
17194 (define-public emacs-scroll-on-drag
17195 (let ((commit "888abd04c34753b1fc4b2fe541bc004ebec5c996")
17196 (revision "1"))
17197 (package
17198 (name "emacs-scroll-on-drag")
17199 (version (git-version "0.1" revision commit))
17200 (source
17201 (origin
17202 (method git-fetch)
17203 (uri (git-reference
17204 (url "https://gitlab.com/ideasman42/emacs-scroll-on-drag.git")
17205 (commit commit)))
17206 (file-name (git-file-name name version))
17207 (sha256
17208 (base32
17209 "1si4hdqa3jw1inbyh3wb3i5i9grbms1nwky3vyk9zg7iznwm8a9p"))))
17210 (build-system emacs-build-system)
17211 (home-page "https://gitlab.com/ideasman42/emacs-scroll-on-drag")
17212 (synopsis "Interactive scrolling")
17213 (description "This package permits scrolling at increasing speeds based
17214 on drag distance.")
17215 (license license:gpl3+))))
17216
17217 (define-public emacs-company-restclient
17218 (package
17219 (name "emacs-company-restclient")
17220 (version "0.3.0")
17221 (source
17222 (origin
17223 (method git-fetch)
17224 (uri (git-reference
17225 (url "https://github.com/iquiw/company-restclient")
17226 (commit (string-append "v" version))))
17227 (file-name (git-file-name name version))
17228 (sha256
17229 (base32 "0yp0hlrgcr6yy1xkjvfckys2k24x9xg7y6336ma61bdwn5lpv0x0"))))
17230 (build-system emacs-build-system)
17231 (propagated-inputs
17232 `(("emacs-company" ,emacs-company)
17233 ("emacs-know-your-http-well" ,emacs-know-your-http-well)
17234 ("emacs-restclient" ,emacs-restclient)))
17235 (home-page "https://github.com/iquiw/company-restclient")
17236 (synopsis "Company-mode completion back-end for restclient-mode")
17237 (description "@code{company-mode} back-end for
17238 @code{restclient-mode}.
17239
17240 It provides auto-completion for HTTP methods and headers in
17241 @code{restclient-mode}. Completion source is given by
17242 @code{know-your-http-well}.")
17243 (license license:gpl3+)))
17244
17245 (define-public emacs-noflet
17246 (let ((version "20170629")
17247 (revision "1")
17248 (commit "7ae84dc3257637af7334101456dafe1759c6b68a"))
17249 (package
17250 (name "emacs-noflet")
17251 (version (git-version version revision commit))
17252 (source
17253 (origin
17254 (method git-fetch)
17255 (uri (git-reference
17256 (url "https://github.com/nicferrier/emacs-noflet")
17257 (commit commit)))
17258 (file-name (git-file-name name version))
17259 (sha256
17260 (base32
17261 "0g70gnmfi8n24jzfci9nrj0n9bn1qig7b8f9f325rin8h7x32ypf"))))
17262 (build-system emacs-build-system)
17263 (arguments
17264 `(#:phases
17265 (modify-phases %standard-phases
17266 (add-after 'unpack 'require-dash
17267 ;; noflet.el uses -map from dash, but (require 'dash) is
17268 ;; missing. So, add it.
17269 (lambda _
17270 (substitute* "noflet.el"
17271 ((";;; Code:") ";;; Code:\n(require 'dash)"))
17272 #t)))))
17273 (propagated-inputs
17274 `(("emacs-dash" ,emacs-dash)))
17275 (home-page "https://github.com/nicferrier/emacs-noflet")
17276 (synopsis "Locally override functions")
17277 (description "@code{emacs-noflet} lets you locally override functions,
17278 in the manner of @command{flet}, but with access to the original function
17279 through the symbol: @command{this-fn}.")
17280 (license license:gpl3+))))
17281
17282 (define-public emacs-dumb-jump
17283 (package
17284 (name "emacs-dumb-jump")
17285 (version "0.5.3")
17286 (source
17287 (origin
17288 (method git-fetch)
17289 (uri (git-reference
17290 (url "https://github.com/jacktasia/dumb-jump")
17291 (commit (string-append "v" version))))
17292 (file-name (git-file-name name version))
17293 (sha256
17294 (base32 "1njf60264snhxrd36m4z687lqfkis0p9mmrr7cf1c8l0lfdvawxi"))))
17295 (build-system emacs-build-system)
17296 (arguments
17297 `(#:tests? #f ; FIXME: Tests freeze when run.
17298 #:test-command '("ert-runner")
17299 #:phases
17300 (modify-phases %standard-phases
17301 (add-after 'unpack 'set-shell
17302 (lambda _
17303 ;; Setting the SHELL environment variable is required for the
17304 ;; tests to find sh.
17305 (setenv "SHELL" (which "sh"))
17306 #t)))))
17307 (native-inputs
17308 `(("emacs-el-mock" ,emacs-el-mock)
17309 ("emacs-noflet" ,emacs-noflet)
17310 ("emacs-undercover" ,emacs-undercover)
17311 ("ert-runner" ,emacs-ert-runner)))
17312 (propagated-inputs
17313 `(("emacs-f" ,emacs-f)
17314 ("emacs-popup" ,emacs-popup)))
17315 (home-page "https://github.com/jacktasia/dumb-jump")
17316 (synopsis "Jump to definition for multiple languages without configuration")
17317 (description "Dumb Jump is an Emacs \"jump to definition\" package with
17318 support for multiple programming languages that favors \"just working\" over
17319 speed or accuracy. This means minimal --- and ideally zero --- configuration
17320 with absolutely no stored indexes (tags) or persistent background processes.
17321 Dumb Jump performs best with The Silver Searcher @command{ag} or ripgrep
17322 @command{rg} installed.")
17323 (license license:gpl3+)))
17324
17325 (define-public emacs-dts-mode
17326 (let ((commit "9ee0854446dcc6c53d2b8d2941051768dba50344")
17327 (revision "1"))
17328 (package
17329 (name "emacs-dts-mode")
17330 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
17331 (source
17332 (origin
17333 (method git-fetch)
17334 (uri (git-reference
17335 (url "https://github.com/bgamari/dts-mode")
17336 (commit commit)))
17337 (file-name (git-file-name name version))
17338 (sha256
17339 (base32
17340 "1k8lljdbc90nd29xrhdrsscxavzdq532wq2mg7ljc94krj7538b1"))))
17341 (build-system emacs-build-system)
17342 (home-page "https://github.com/bgamari/dts-mode.git")
17343 (synopsis "Emacs minor mode for editing device tree files")
17344 (description
17345 "This package provides an Emacs minor mode for highlighting
17346 device tree files.")
17347 (license license:gpl3+))))
17348
17349 (define-public emacs-daemons
17350 (package
17351 (name "emacs-daemons")
17352 (version "2.0.0")
17353 (source
17354 (origin
17355 (method git-fetch)
17356 (uri (git-reference
17357 (url "https://github.com/cbowdon/daemons.el")
17358 (commit version)))
17359 (file-name (git-file-name name version))
17360 (sha256
17361 (base32
17362 "00bkzfaw3bqykcks610vk9wlpa2z360xn32bpsrycacwfv29j7g4"))))
17363 (build-system emacs-build-system)
17364 (home-page "https://github.com/cbowdon/daemons.el")
17365 (synopsis "Emacs UI for managing init system services")
17366 (description
17367 "This is an Emacs mode to give you a UI for managing init system
17368 daemons (services) for those getting tired of typing out @code{sudo service
17369 my_thing reload} all the time. It offers a consistent UI over different init
17370 systems.")
17371 (license license:gpl3+)))
17372
17373 (define-public emacs-isearch+
17374 (let ((commit "7c251b91a67bf914066e23e269ba52fda5b45f5f")
17375 (revision "2"))
17376 (package
17377 (name "emacs-isearch+")
17378 (version (git-version "0" revision commit))
17379 (source
17380 (origin
17381 (method git-fetch)
17382 (uri (git-reference
17383 (url "https://github.com/emacsmirror/isearch-plus")
17384 (commit commit)))
17385 (file-name (git-file-name name version))
17386 (sha256
17387 (base32
17388 "1w2799714jcdycjlxgs8lpmmz6dmzvcvqy8xwxhvmgpb60g4f2yr"))))
17389 (build-system emacs-build-system)
17390 (home-page "https://www.emacswiki.org/emacs/isearch+.el")
17391 (synopsis "Extensions to @code{isearch.el}")
17392 (description "This package extends @code{isearch} with advice, dynamic
17393 filters, highlighting of regexp group levels, and more.")
17394 (license license:gpl2+))))
17395
17396 (define-public emacs-eshell-bookmark
17397 (package
17398 (name "emacs-eshell-bookmark")
17399 (version "2.0.0")
17400 (source
17401 (origin
17402 (method git-fetch)
17403 (uri (git-reference
17404 (url "https://github.com/Fuco1/eshell-bookmark")
17405 (commit version)))
17406 (file-name (git-file-name name version))
17407 (sha256
17408 (base32
17409 "14dmsnixf9vqdhsixw693sml0fn80zcf0b37z049fb40cmppqxdw"))))
17410 (build-system emacs-build-system)
17411 (home-page "https://github.com/Fuco1/eshell-bookmark")
17412 (synopsis "Provide @file{bookmark.el} integration for @code{eshell}")
17413 (description
17414 "This package allows for bookmarking @code{eshell} buffers. Upon
17415 visiting the bookmark, a new @code{eshell} session will be opened in the
17416 appropriate directory if no @code{eshell} session is active.")
17417 (license license:gpl3+)))
17418
17419 (define-public emacs-eshell-syntax-highlighting
17420 (package
17421 (name "emacs-eshell-syntax-highlighting")
17422 (version "0.2")
17423 (source
17424 (origin
17425 (method git-fetch)
17426 (uri (git-reference
17427 (url "https://github.com/akreisher/eshell-syntax-highlighting")
17428 (commit version)))
17429 (file-name (git-file-name name version))
17430 (sha256
17431 (base32 "0id27874wsb5y169030x8g1ldpa1mnskv1s2j3ygqiyh5fvpfash"))))
17432 (build-system emacs-build-system)
17433 (home-page "https://github.com/akreisher/eshell-syntax-highlighting")
17434 (synopsis "Add syntax highlighting to Eshell")
17435 (description
17436 "This package highlights user commands at the Eshell interactive prompt
17437 to provide feedback on the validity of commands and syntax.")
17438 (license license:gpl3+)))
17439
17440 (define-public emacs-eshell-z
17441 (package
17442 (name "emacs-eshell-z")
17443 (version "0.4")
17444 (source
17445 (origin
17446 (method git-fetch)
17447 (uri (git-reference
17448 (url "https://github.com/xuchunyang/eshell-z")
17449 (commit (string-append "v" version))))
17450 (file-name (git-file-name name version))
17451 (sha256
17452 (base32
17453 "13dwaq8q23rwmrkpy3gvf7aswrkk6b9ak5221xl7n0bld4wdhq3j"))))
17454 (build-system emacs-build-system)
17455 (home-page "https://github.com/xuchunyang/eshell-z")
17456 (synopsis "Quick navigation to frequently visited directories")
17457 (description
17458 "This package is a port of @code{z}, and keeps track of visited directories
17459 and commands invoked within them in order to enable navigation via input of
17460 matching regexps.")
17461 (license license:gpl3+)))
17462
17463 (define-public emacs-esh-autosuggest
17464 (package
17465 (name "emacs-esh-autosuggest")
17466 (version "2.0.0")
17467 (source
17468 (origin
17469 (method git-fetch)
17470 (uri (git-reference
17471 (url "https://github.com/dieggsy/esh-autosuggest")
17472 (commit version)))
17473 (file-name (git-file-name name version))
17474 (sha256
17475 (base32
17476 "116pdjgpjy9b0psm5kzwkwy7dq8vn0p6dy75dl1zsy2xrjf1iqdw"))))
17477 (build-system emacs-build-system)
17478 (propagated-inputs `(("emacs-company" ,emacs-company)))
17479 (home-page "https://github.com/dieggsy/esh-autosuggest")
17480 (synopsis "Fish-like autosuggestions in Eshell")
17481 (description
17482 "This package assumes you use something other than company for eshell
17483 completion (e.g. @code{eshell-pcomplete}, @code{completion-at-point},
17484 @code{helm-esh-pcomplete}). @code{company-mode} is used solely as a mechanism
17485 for history autosuggestions.
17486
17487 Unless you're using @code{use-package}'s hook keyword, you can enable the
17488 autosuggestions with:
17489 @code{(add-hook 'eshell-mode-hook #'esh-autosuggest-mode)}")
17490 (license license:gpl3+)))
17491
17492 (define-public emacs-desktop-environment
17493 (package
17494 (name "emacs-desktop-environment")
17495 (version "0.3.0")
17496 (source
17497 (origin
17498 (method git-fetch)
17499 (uri (git-reference
17500 (url "https://gitlab.petton.fr/DamienCassou/desktop-environment")
17501 (commit (string-append "v" version))))
17502 (file-name (git-file-name name version))
17503 (sha256
17504 (base32
17505 "195n99xvxyh4cfxjpfa1h1maalqrxf7nyi0bh3lqa1z6z5bdb6x2"))))
17506 (build-system emacs-build-system)
17507 (home-page "https://gitlab.petton.fr/DamienCassou/desktop-environment")
17508 (synopsis "Control your GNU/Linux desktop environment from Emacs")
17509 (description
17510 "This package helps you control your GNU/Linux desktop from Emacs.
17511 With @code{desktop-environment}, you can control the brightness and volume as
17512 well as take screenshots and lock your screen. The package depends on the
17513 availability of shell commands to do the hard work for us. These commands can
17514 be changed by customizing the appropriate variables.")
17515 (license license:gpl3+)))
17516
17517 (define-public emacs-org-caldav
17518 (let ((commit "a563500c9884f38ce08793e2964f8274adde163d"))
17519 (package
17520 (name "emacs-org-caldav")
17521 (version (git-version "0.0.0" "1" commit))
17522 (source
17523 (origin
17524 (method git-fetch)
17525 (uri (git-reference
17526 (url "https://github.com/dengste/org-caldav")
17527 (commit commit)))
17528 (file-name (git-file-name name version))
17529 (sha256
17530 (base32
17531 "18qi1iv5dc0gsvkv9ifal3cjpm568nlb907v8a53cnm4439x1l0l"))))
17532 (build-system emacs-build-system)
17533 (arguments
17534 ;; Tests require to have two specific calendars on a test server.
17535 `(#:exclude '("^org-caldav-testsuite\\.el")))
17536 (propagated-inputs
17537 `(("emacs-org" ,emacs-org)))
17538 (home-page "https://github.com/dengste/org-caldav")
17539 (synopsis "Sync Org files with external calendars via the CalDAV protocol")
17540 (description "Synchronize between events in Org files and a CalDAV
17541 calendar.")
17542 (license license:gpl3+))))
17543
17544 (define-public emacs-zotxt
17545 (package
17546 (name "emacs-zotxt")
17547 (version "20180518")
17548 (source
17549 (origin
17550 (method git-fetch)
17551 (uri (git-reference
17552 (url "https://github.com/egh/zotxt-emacs")
17553 (commit "23a4a9f74a658222027d53a9a83cd4bcc583ca8b")))
17554 (file-name (git-file-name name version))
17555 (sha256
17556 (base32 "09fq3w9yk9kn6bz7y9kgpiw612dvj3yzsdk734js6zgb0p8lfd2c"))))
17557 (build-system emacs-build-system)
17558 (propagated-inputs
17559 `(("emacs-deferred" ,emacs-deferred)
17560 ("emacs-request" ,emacs-request)))
17561 (home-page "https://github.com/egh/zotxt-emacs")
17562 (synopsis "Integrate Emacs with Zotero")
17563 (description "This package provides two integration features between Emacs
17564 and the Zotero research assistant: Insertion of links to Zotero items into an
17565 Org-mode file, and citations of Zotero items in Pandoc Markdown files.")
17566 (license license:gpl3+)))
17567
17568 (define-public emacs-evil-magit
17569 (let ((commit "253c644807013fe92429acdef418748794b8f254")
17570 (revision "4"))
17571 (package
17572 (name "emacs-evil-magit")
17573 (version (git-version "0.4.2" revision commit))
17574 (source
17575 (origin
17576 (method git-fetch)
17577 (uri (git-reference
17578 (url "https://github.com/emacs-evil/evil-magit")
17579 (commit commit)))
17580 (file-name (git-file-name name version))
17581 (sha256
17582 (base32
17583 "08mh7phxsdb9w4dfs0pmr4l4fdzzr2rm88z2s8karfi5j5ik2ag5"))))
17584 (build-system emacs-build-system)
17585 (propagated-inputs
17586 `(("emacs-evil" ,emacs-evil)
17587 ("magit" ,emacs-magit)))
17588 (arguments
17589 `(#:tests? #t
17590 #:test-command '("emacs" "-Q" "-batch"
17591 "-L" "."
17592 "-l" "evil-magit-tests"
17593 "-f" "ert-run-tests-batch-and-exit")))
17594 (home-page
17595 "https://github.com/emacs-evil/evil-magit")
17596 (synopsis "Evil-based key bindings for Magit")
17597 (description
17598 "This Emacs library configures Magit and Evil to play well with each other.
17599 For some background see @url{https://github.com/magit/evil-magit/issues/1}.
17600 See the README at @url{https://github.com/justbur/evil-magit} for a table
17601 describing the key binding changes.")
17602 (license license:gpl3+))))
17603
17604 (define-public emacs-evil-multiedit
17605 (package
17606 (name "emacs-evil-multiedit")
17607 (version "1.3.9")
17608 (source
17609 (origin
17610 (method git-fetch)
17611 (uri (git-reference
17612 (url "https://github.com/hlissner/evil-multiedit")
17613 (commit (string-append "v" version))))
17614 (file-name (git-file-name name version))
17615 (sha256
17616 (base32
17617 "19h3kqylqzbjv4297wkzzxdmn9yxbg6z4ga4ssrqri90xs7m3rw3"))))
17618 (build-system emacs-build-system)
17619 (propagated-inputs
17620 `(("emacs-evil" ,emacs-evil)
17621 ("emacs-iedit" ,emacs-iedit)))
17622 (native-inputs
17623 `(("emacs-ert-runner" ,emacs-ert-runner)))
17624 (arguments
17625 `(#:phases
17626 (modify-phases %standard-phases
17627 (add-before 'check 'fix-makefile
17628 (lambda _
17629 (substitute* "Makefile"
17630 (("@cask exec ") ""))
17631 #t)))
17632 #:tests? #t
17633 #:test-command '("make" "test")))
17634 (home-page
17635 "https://github.com/hlissner/evil-multiedit")
17636 (synopsis "Multiple cursors for Evil mode")
17637 (description
17638 "This plugin was an answer to the lack of proper multiple cursor support
17639 in Emacs+Evil. It allows you to select and edit matches interactively,
17640 integrating @code{iedit-mode} into Evil mode with an attempt at sensible
17641 defaults.")
17642 (license license:gpl3+)))
17643
17644 (define-public emacs-evil-mc
17645 (let ((commit "1cabb869fe70cef49f7dc06f015c3ade1a969c8c")
17646 (revision "2"))
17647 (package
17648 (name "emacs-evil-mc")
17649 (version (git-version "0.0.3" revision commit))
17650 (source
17651 (origin
17652 (method git-fetch)
17653 (uri (git-reference
17654 (url "https://github.com/gabesoft/evil-mc")
17655 (commit commit)))
17656 (file-name (git-file-name name version))
17657 (sha256
17658 (base32 "0p83p90faq1p02lmsfs7zrnky3cyzgy8z4m83a81r9kakjzhkrnb"))))
17659 (build-system emacs-build-system)
17660 (propagated-inputs
17661 `(("emacs-evil" ,emacs-evil)))
17662 (native-inputs
17663 `(("emacs-espuds" ,emacs-espuds)))
17664 (home-page "https://github.com/gabesoft/evil-mc")
17665 (synopsis "Interactive search compatible with @code{multiple-cursors}")
17666 (description "This package can be used with @code{multiple-cursors} to
17667 provide an incremental search that moves all fake cursors in sync.")
17668 (license license:expat))))
17669
17670 (define-public emacs-evil-org
17671 (let ((commit "9d4be14118bf27094a30dbff349b815f098aacbf"))
17672 (package
17673 (name "emacs-evil-org")
17674 (version (git-version "1.0.2" "1" commit))
17675 (source
17676 (origin
17677 (method git-fetch)
17678 (uri (git-reference
17679 (url "https://github.com/Somelauw/evil-org-mode")
17680 (commit commit)))
17681 (file-name (git-file-name name version))
17682 (sha256
17683 (base32
17684 "1fxxfkinb0gq4p5b686r7z4jrkv98zfgh5z889zkjacncv8ibswn"))))
17685 (build-system emacs-build-system)
17686 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
17687 (home-page
17688 "https://github.com/Somelauw/evil-org-mode")
17689 (synopsis "Evil keybindings for Org mode")
17690 (description
17691 "This package adds supplemental Evil mode key-bindings to Emacs
17692 Org-mode. It features:
17693 @itemize
17694 @item normal, visual and insert mode bindings;
17695 @item key bindings organised in key themes;
17696 @item operators like > and < to work on headings;
17697 @item text objects;
17698 @item table support;
17699 @item calendar (date selection) support;
17700 @item agenda support.
17701 @end itemize\n")
17702 (license license:gpl3+))))
17703
17704 (define-public emacs-debpaste
17705 (package
17706 (name "emacs-debpaste")
17707 (version "0.1.5")
17708 (home-page "https://github.com/alezost/debpaste.el")
17709 (source
17710 (origin
17711 (method git-fetch)
17712 (uri (git-reference (url home-page)
17713 (commit (string-append "v" version))))
17714 (file-name (git-file-name name version))
17715 (sha256
17716 (base32
17717 "1wi70r56pd5z0x4dp4m58p9asq03j74kdm4fi9vai83vsl2z9amq"))))
17718 (build-system emacs-build-system)
17719 (propagated-inputs
17720 `(("emacs-xml-rpc" ,emacs-xml-rpc)))
17721 (synopsis "Manipulate pastes from the Debian Pastezone")
17722 (description "Debpaste is an Emacs interface for the Debian Pastezone,
17723 allowing you to receive, post, and delete pastes. It communicates with the
17724 server using XML-RPC.")
17725 (license license:gpl3+)))
17726
17727 (define-public emacs-xml-rpc
17728 (let ((commit "8f624f8b964e9145acb504e4457c9510e87dd93c")
17729 (revision "1"))
17730 (package
17731 (name "emacs-xml-rpc")
17732 (version (git-version "1.6.12" revision commit))
17733 (source
17734 (origin
17735 (method git-fetch)
17736 (uri (git-reference
17737 (url "https://github.com/hexmode/xml-rpc-el")
17738 (commit commit)))
17739 (file-name (git-file-name name version))
17740 (sha256
17741 (base32
17742 "0xa54z52rsfl3n0xgmbycj4zazp8ksgdwcq56swzs6wp72zlalmj"))))
17743 (build-system emacs-build-system)
17744 (home-page "https://github.com/hexmode/xml-rpc-el")
17745 (synopsis "XML-RPC client for Emacs")
17746 (description "This package provides an XML-RPC client for Emacs capable
17747 of both synchronous and asynchronous method calls using the @code{url}
17748 package's async retrieval functionality. @file{xml-rpc.el} represents XML-RPC
17749 datatypes as Lisp values, automatically converting to and from the XML
17750 datastructures as needed, both for method parameters and return values, making
17751 using XML-RPC methods fairly transparent to the Lisp code.")
17752 (license license:gpl3+))))
17753
17754 (define-public emacs-xpm
17755 (package
17756 (name "emacs-xpm")
17757 (version "1.0.4")
17758 (source
17759 (origin
17760 (method url-fetch)
17761 (uri (string-append "https://elpa.gnu.org/packages/xpm-"
17762 version ".tar"))
17763 (sha256
17764 (base32
17765 "075miyashh9cm3b0gk6ngld3rm8bfgnh4qxnhxmmvjgzf6a64grh"))))
17766 (build-system emacs-build-system)
17767 (home-page "https://elpa.gnu.org/packages/xpm.html")
17768 (synopsis "XPM image editing mode for Emacs")
17769 (description "This Emacs package makes editing XPM images easy (and maybe
17770 fun). Editing is done directly on the (textual) image format, for maximal
17771 cohesion with the Emacs Way.")
17772 (license license:gpl3+)))
17773
17774 (define-public emacs-fish-completion
17775 (package
17776 (name "emacs-fish-completion")
17777 (version "1.2")
17778 (source
17779 (origin
17780 (method git-fetch)
17781 (uri (git-reference
17782 (url "https://gitlab.com/Ambrevar/emacs-fish-completion.git")
17783 (commit version)))
17784 (file-name (git-file-name name version))
17785 (sha256
17786 (base32
17787 "17lqip1i1rrsvxzz4bx9rqf1fvwd3hriwg3sj6qxmfc8pylnp37q"))))
17788 (build-system emacs-build-system)
17789 (inputs `(("fish" ,fish)))
17790 (arguments
17791 `(#:phases
17792 (modify-phases %standard-phases
17793 (add-after 'unpack 'configure
17794 (lambda* (#:key inputs outputs #:allow-other-keys)
17795 (let ((fish (assoc-ref inputs "fish")))
17796 ;; Specify the absolute file names of the various
17797 ;; programs so that everything works out-of-the-box.
17798 (make-file-writable "fish-completion.el")
17799 (emacs-substitute-variables
17800 "fish-completion.el"
17801 ("fish-completion-command"
17802 (string-append fish "/bin/fish")))))))))
17803 (home-page
17804 "https://gitlab.com/Ambrevar/emacs-fish-completion")
17805 (synopsis "Fish completion for Emacs pcomplete")
17806 (description
17807 "This package provides completion for the Fish shell to pcomplete (used
17808 by shell and Eshell). You can set it up globally with:
17809
17810 @example
17811 (when (and (executable-find \"fish\")
17812 (require 'fish-completion nil t))
17813 (global-fish-completion-mode))
17814 @end example
17815
17816 Alternatively, you can call the @code{fish-completion-mode} manually or in
17817 shell/Eshell mode hook.
17818
17819 The package @code{emacs-bash-completion} is an optional dependency: if available,
17820 @code{fish-completion-complete} can be configured to fall back on bash to further
17821 try completing. See @code{fish-completion-fallback-on-bash-p}.")
17822 (license license:gpl3+)))
17823
17824 (define-public emacs-gif-screencast
17825 (package
17826 (name "emacs-gif-screencast")
17827 (version "1.1")
17828 (source
17829 (origin
17830 (method git-fetch)
17831 (uri (git-reference
17832 (url "https://gitlab.com/Ambrevar/emacs-gif-screencast.git")
17833 (commit version)))
17834 (file-name (git-file-name name version))
17835 (sha256
17836 (base32
17837 "1g1by8lvf8c9vzm4wwsi5kp285kaj0ahsl54048ympin4pi0njw9"))))
17838 (build-system emacs-build-system)
17839 (inputs
17840 `(("scrot" ,scrot)
17841 ("imagemagick" ,imagemagick)
17842 ("gifsicle" ,gifsicle)))
17843 (arguments
17844 `(#:phases
17845 (modify-phases %standard-phases
17846 (add-after 'unpack 'configure
17847 (lambda* (#:key inputs outputs #:allow-other-keys)
17848 (let ((scrot (assoc-ref inputs "scrot"))
17849 (imagemagick (assoc-ref inputs "imagemagick"))
17850 (gifsicle (assoc-ref inputs "gifsicle")))
17851 (make-file-writable "gif-screencast.el")
17852 ;; Specify the absolute file names of the various
17853 ;; programs so that everything works out-of-the-box.
17854 (emacs-substitute-variables
17855 "gif-screencast.el"
17856 ("gif-screencast-program"
17857 (string-append scrot "/bin/scrot"))
17858 ("gif-screencast-convert-program"
17859 (string-append imagemagick "/bin/convert"))
17860 ("gif-screencast-cropping-program"
17861 (string-append imagemagick "/bin/mogrify"))
17862 ("gif-screencast-optimize-program"
17863 (string-append gifsicle "/bin/gifsicle")))))))))
17864 (home-page
17865 "https://gitlab.com/Ambrevar/emacs-gif-screencast")
17866 (synopsis "One-frame-per-action GIF recording")
17867 (description
17868 "Call @code{gif-screencast} to start a recording.
17869 A screenshot is taken for every user action. Call
17870 @code{gif-screencast-stop} (<f9> by default) to finish recording and create
17871 the GIF result.")
17872 (license license:gpl3+)))
17873
17874 (define-public emacs-google-translate
17875 (package
17876 (name "emacs-google-translate")
17877 (version "0.12.0")
17878 (source
17879 (origin
17880 (method git-fetch)
17881 (uri (git-reference
17882 (url "https://github.com/atykhonov/google-translate/")
17883 (commit (string-append "v" version))))
17884 (file-name (git-file-name name version))
17885 (sha256
17886 (base32
17887 "0rwpij2bm8d4jq2w5snkp88mfryplw8166dsrjm407n2p6xr48zx"))))
17888 (build-system emacs-build-system)
17889 (home-page "https://github.com/atykhonov/google-translate")
17890 (synopsis "Emacs interface to Google Translate")
17891 (description
17892 "This package provides an Emacs interface to the Google Translate
17893 on-line service.")
17894 (license license:gpl3+)))
17895
17896 (define-public emacs-helm-company
17897 (package
17898 (name "emacs-helm-company")
17899 (version "0.2.5")
17900 (source
17901 (origin
17902 (method git-fetch)
17903 (uri (git-reference
17904 (url "https://github.com/Sodel-the-Vociferous/helm-company")
17905 (commit (string-append "v" version))))
17906 (file-name (git-file-name name version))
17907 (sha256
17908 (base32
17909 "1ci37w6ahnqrfpb284gjvxmimlf61sdxb9k192yy9q983cksv2hx"))))
17910 (build-system emacs-build-system)
17911 (propagated-inputs
17912 `(("emacs-helm" ,emacs-helm)
17913 ("emacs-company" ,emacs-company)))
17914 (native-inputs
17915 `(("emacs-ert-runner" ,emacs-ert-runner)))
17916 (arguments
17917 `(#:tests? #t
17918 #:test-command '("ert-runner")))
17919 (home-page "https://github.com/Sodel-the-Vociferous/helm-company")
17920 (synopsis "Helm interface for company-mode")
17921 (description
17922 "This is a Helm interface to company-mode, a text completion
17923 framework.")
17924 (license license:gpl3+)))
17925
17926 (define-public emacs-helm-descbinds
17927 (let ((commit "033be73f21778633813264ce1634a6e1ad873d8e"))
17928 (package
17929 (name "emacs-helm-descbinds")
17930 (version (git-version "1.13" "1" commit))
17931 (source
17932 (origin
17933 (method git-fetch)
17934 (uri (git-reference
17935 (url "https://github.com/emacs-helm/helm-descbinds")
17936 (commit commit)))
17937 (file-name (git-file-name name version))
17938 (sha256
17939 (base32
17940 "1n89p56qwa243w1c85i5awnaf7piwjsvfi7nmnsrwm33hix5dknk"))))
17941 (build-system emacs-build-system)
17942 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
17943 (home-page "https://github.com/emacs-helm/helm-descbinds")
17944 (synopsis "Convenient @code{describe-bindings} with Helm")
17945 (description
17946 "This package is a replacement of @code{describe-bindings} for Helm.
17947 @code{describe-bindings} is replaced with @code{helm-descbinds}. As usual,
17948 type @code{C-h b}, or any incomplete key sequence plus @code{C-h}, to run
17949 @code{helm-descbinds}. The bindings are presented in a similar way as
17950 @code{describe-bindings} does, but you can use completion to find the command
17951 you searched for and execute it, or view its documentation.")
17952 (license license:gpl3+))))
17953
17954 (define-public emacs-helm-emms
17955 (let ((commit "37e5aa029abfa5a5c48636314de8157142944fa2"))
17956 (package
17957 (name "emacs-helm-emms")
17958 (version (git-version "1.3" "3" commit))
17959 (source
17960 (origin
17961 (method git-fetch)
17962 (uri (git-reference
17963 (url "https://github.com/emacs-helm/helm-emms")
17964 (commit commit)))
17965 (file-name (git-file-name name version))
17966 (sha256
17967 (base32
17968 "0r1ai6xhzayyik30w2sx9n62bxxwm12vfmjspv0daqif9az8y3vg"))))
17969 (build-system emacs-build-system)
17970 (propagated-inputs
17971 `(("emacs-helm" ,emacs-helm)
17972 ("emacs-emms" ,emacs-emms)))
17973 (home-page
17974 "https://github.com/emacs-helm/helm-emms")
17975 (synopsis "Emms for Helm")
17976 (description "Helm interface for Emms to browse all tracks and all folders
17977 from @code{emms-source-file-default-directory}.")
17978 (license license:gpl3+))))
17979
17980 (define-public emacs-helm-exwm
17981 (package
17982 (name "emacs-helm-exwm")
17983 (version "0.0.2")
17984 (source
17985 (origin
17986 (method git-fetch)
17987 (uri (git-reference
17988 (url "https://github.com/emacs-helm/helm-exwm")
17989 (commit version)))
17990 (file-name (git-file-name name version))
17991 (sha256
17992 (base32 "0g4k01ps14bp2az8v6dcag9llg045k2b4kdis81xx4lvw76znr9v"))))
17993 (build-system emacs-build-system)
17994 (propagated-inputs
17995 `(("emacs-helm" ,emacs-helm)
17996 ("emacs-exwm" ,emacs-exwm)))
17997 (home-page
17998 "https://github.com/emacs-helm/helm-exwm")
17999 (synopsis "Helm for EXWM buffers")
18000 (description
18001 "@code{helm-exwm} runs a Helm session over the list of EXWM buffers.
18002 @code{helm-exwm-switch} is a convenience X application launcher using Helm to
18003 switch between the various windows of one or several specific applications.
18004 See @code{helm-exwm-switch-browser} for an example.")
18005 (license license:gpl3+)))
18006
18007 (define-public emacs-helm-flycheck
18008 (let ((commit "3cf7d3bb194acacc6395f88360588013d92675d6"))
18009 (package
18010 (name "emacs-helm-flycheck")
18011 (version (git-version "0.4" "1" commit))
18012 (source
18013 (origin
18014 (method git-fetch)
18015 (uri (git-reference
18016 (url "https://github.com/yasuyk/helm-flycheck")
18017 (commit commit)))
18018 (file-name (git-file-name name version))
18019 (sha256
18020 (base32
18021 "1a2yfxhz04klwhcandqvfzysxp6b7bxyxx1xk1x3kds5hif5fkl4"))))
18022 (build-system emacs-build-system)
18023 (propagated-inputs
18024 `(("emacs-dash" ,emacs-dash)
18025 ("emacs-flycheck" ,emacs-flycheck)
18026 ("emacs-helm" ,emacs-helm)))
18027 (home-page "https://github.com/yasuyk/helm-flycheck")
18028 (synopsis "Show Flycheck errors with Helm")
18029 (description
18030 "This integrates Flycheck with Helm.")
18031 (license license:gpl3+))))
18032
18033 (define-public emacs-helm-ls-git
18034 (let ((commit "76654c776a7f6e2e5290645e748aac2a746f7daa"))
18035 (package
18036 (name "emacs-helm-ls-git")
18037 (version (git-version "1.9.1" "1" commit))
18038 (source
18039 (origin
18040 (method git-fetch)
18041 (uri (git-reference
18042 (url "https://github.com/emacs-helm/helm-ls-git")
18043 (commit commit)))
18044 (file-name (git-file-name name version))
18045 (sha256
18046 (base32
18047 "0vsq1n3xl3ghy5zik2scm7jrs501n4kybdqd6yw6j0cv4jxdqbr0"))))
18048 (build-system emacs-build-system)
18049 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
18050 (home-page "https://github.com/emacs-helm/helm-ls-git")
18051 (synopsis "Helm interface for listing the files in a Git repository")
18052 (description
18053 "This package provides a Helm interface for Git files.
18054 @itemize
18055 @item Display the open buffers in project.
18056 @item Display a status source showing state of project (modified files etc.).
18057 @item Display a list of all files in project under git control.
18058 @item Quickly look at diffs of modified files.
18059 @item Allow switching to @code{git status} with your preferred frontend
18060 (vc-dir, Magit,etc.).
18061 @item Full integration of git-grep, also allow usage of @code{helm-grep} (you
18062 can use ack-grep instead of grep).
18063 @item Integrate usage of gid from id-utils.
18064 @item Full integration with @code{helm-find-files}, allow you to browse
18065 projects unrelated to current-buffer.
18066 @item In addition, all actions of type files and buffers are provided.
18067 @end itemize\n")
18068 (license license:gpl3+))))
18069
18070 (define-public emacs-helm-mu
18071 (let ((commit "77e6fea24e01481418738421dbcfe28ef1bd63cf"))
18072 (package
18073 (name "emacs-helm-mu")
18074 (version (git-version "20180513" "1" commit))
18075 (source
18076 (origin
18077 (method git-fetch)
18078 (uri (git-reference
18079 (url "https://github.com/emacs-helm/helm-mu")
18080 (commit commit)))
18081 (file-name (git-file-name name version))
18082 (sha256
18083 (base32 "1lh0ahxdc5b2z18m9p30gwg8sbg33sjwkjr38p7h5xsm5fm7i0fz"))))
18084 (build-system emacs-build-system)
18085 (propagated-inputs
18086 `(("emacs-helm" ,emacs-helm)
18087 ("mu" ,mu)))
18088 (home-page
18089 "https://github.com/emacs-helm/helm-mu")
18090 (synopsis
18091 "Helm sources for searching emails and contacts")
18092 (description
18093 "Helm sources for searching emails and contacts using @code{mu} and
18094 @code{mu4e}. Mu is an indexer for maildirs and mu4e is a mutt-like MUA for
18095 Emacs build on top of mu. Mu is highly efficient making it possible to get
18096 instant results even for huge maildirs. It also provides search operators,
18097 e.g: @code{from:Peter to:Anne flag:attach search term}.")
18098 (license license:gpl3+))))
18099
18100 (define-public emacs-helm-pass
18101 (package
18102 (name "emacs-helm-pass")
18103 (version "0.3")
18104 (source
18105 (origin
18106 (method git-fetch)
18107 (uri (git-reference
18108 (url "https://github.com/emacs-helm/helm-pass")
18109 (commit version)))
18110 (file-name (git-file-name name version))
18111 (sha256
18112 (base32
18113 "0vglaknmir3yv4iwibwn8r40ran8d04gcyp99hx73ldmf3zqpnxv"))))
18114 (build-system emacs-build-system)
18115 (propagated-inputs
18116 `(("emacs-helm" ,emacs-helm)
18117 ("emacs-password-store" ,emacs-password-store)))
18118 (home-page "https://github.com/emacs-helm/helm-pass")
18119 (synopsis "Helm interface to pass, the standard Unix password manager")
18120 (description
18121 "Users of @code{helm-pass} may also be interested in functionality
18122 provided by other Emacs packages dealing with pass:
18123 @itemize
18124 @item @code{emacs-password-store}, which @code{helm-pass} relies on.
18125 @item @code{emacs-pass}, a major mode for @code{pass}.
18126 @item @code{auth-source-pass.el}: integration of Emacs' auth-source with
18127 @code{pass}, included in Emacs 26+).
18128 @end itemize\n")
18129 (license license:gpl3+)))
18130
18131 (define-public emacs-image+
18132 (let ((commit "6834d0c09bb4df9ecc0d7a559bd7827fed48fffc"))
18133 (package
18134 (name "emacs-image+")
18135 (version (git-version "0.6.2" "1" commit))
18136 (source
18137 (origin
18138 (method git-fetch)
18139 (uri (git-reference
18140 (url "https://github.com/mhayashi1120/Emacs-imagex")
18141 (commit commit)))
18142 (file-name (git-file-name name version))
18143 (sha256
18144 (base32
18145 "0v66wk9nh0raih4jhrzmmyi5lbysjnmbv791vm2230ffi2hmwxnd"))))
18146 (build-system emacs-build-system)
18147 (inputs `(("imagemagick" ,imagemagick)))
18148 (arguments
18149 `(#:phases
18150 (modify-phases %standard-phases
18151 (add-after 'unpack 'configure
18152 (lambda* (#:key inputs outputs #:allow-other-keys)
18153 (let ((imagemagick (assoc-ref inputs "imagemagick")))
18154 ;; Specify the absolute file names of the various
18155 ;; programs so that everything works out-of-the-box.
18156 (chmod "image+.el" #o666)
18157 (emacs-substitute-variables
18158 "image+.el"
18159 ("imagex-convert-command"
18160 (string-append imagemagick "/bin/convert"))
18161 ("imagex-identify-command"
18162 (string-append imagemagick "/bin/identify")))))))))
18163 (home-page "https://github.com/mhayashi1120/Emacs-imagex")
18164 (synopsis "Image manipulation extensions for Emacs")
18165 (description
18166 "Image+ provides keybindings allowing you to zoom in or zoom out of an
18167 image, rotate it, save modified images, and more.")
18168 (license license:gpl3+))))
18169
18170 (define-public emacs-package-lint
18171 (let ((commit "69bb89d00ba212b734c676ad056aa793c450b288"))
18172 (package
18173 (name "emacs-package-lint")
18174 (version (git-version "0.5" "1" commit))
18175 (source
18176 (origin
18177 (method git-fetch)
18178 (uri (git-reference
18179 (url "https://github.com/purcell/package-lint")
18180 (commit commit)))
18181 (file-name (git-file-name name version))
18182 (sha256
18183 (base32
18184 "1hfricsgmy3x9snnd2p4xq6vnnv94qdsxxnxp07b3hqc9bhw31rq"))))
18185 (build-system emacs-build-system)
18186 (home-page "https://github.com/purcell/package-lint")
18187 (synopsis "Linting library for elisp package authors")
18188 (description
18189 "This provides a list of issues with the Emacs package metadata of a file,
18190 e.g. the package dependencies it requires. See function
18191 @code{package-lint-buffer}. Checks will currently be enabled only if a
18192 \"Package-Requires:\" or \"Package-Version:\" header is present in the
18193 file.")
18194 (license license:gpl3+))))
18195
18196 (define-public emacs-picpocket
18197 (let ((version "40")
18198 (commit "6fd88b8711c4370662c0f9c462170187d092a046"))
18199 (package
18200 (name "emacs-picpocket")
18201 (version version)
18202 (source
18203 (origin
18204 (method git-fetch)
18205 (uri (git-reference
18206 (url "https://github.com/johanclaesson/picpocket")
18207 (commit commit)))
18208 (file-name (git-file-name name version))
18209 (sha256
18210 (base32 "1mdzzxf7xm7zwrpnqqxa27d1cr31pd72d7ilbwljv13qp177a3yw"))))
18211 (build-system emacs-build-system)
18212 (arguments ; needed for running tests
18213 `(#:tests? #t
18214 #:emacs ,emacs
18215 #:test-command '("emacs" "--batch"
18216 "-l" "picpocket-test.el"
18217 "-f" "ert-run-tests-batch-and-exit")))
18218 (home-page "https://github.com/johanclaesson/picpocket")
18219 (synopsis "Image viewer for Emacs")
18220 (description
18221 "Picpocket is an image viewer for GNU Emacs. It has commands for:
18222
18223 @itemize
18224 @item File operations on the picture files (delete, move, copy, hardlink).
18225 @item Scale and rotate the picture.
18226 @item Associate pictures with tags which are saved to disk.
18227 @item Filter pictures according to tags.
18228 @item Customizing keystrokes for quick tagging and file operations.
18229 @item Undo and browse history of undoable commands.
18230 @end itemize")
18231 (license license:gpl3+))))
18232
18233 (define-public emacs-mu4e-conversation
18234 (let ((commit "98110bb9c300fc9866dee8e0023355f9f79c9b96")
18235 (revision "5"))
18236 (package
18237 (name "emacs-mu4e-conversation")
18238 (version (git-version "0.0.1" revision commit))
18239 (source
18240 (origin
18241 (method git-fetch)
18242 (uri (git-reference
18243 (url "https://gitlab.com/Ambrevar/mu4e-conversation.git")
18244 (commit commit)))
18245 (file-name (git-file-name name version))
18246 (sha256
18247 (base32
18248 "080s96jkcw2p288sp1vgds91rgl693iz6hi2dv56p2ih0nnivwlg"))))
18249 (build-system emacs-build-system)
18250 (propagated-inputs
18251 `(("mu" ,mu)))
18252 (home-page
18253 "https://gitlab.com/Ambrevar/mu4e-conversation")
18254 (synopsis
18255 "Show a complete thread in a single buffer")
18256 (description
18257 "This package offers an alternate view to mu4e's e-mail display. It
18258 shows all e-mails of a thread in a single view, where each correspondent has
18259 their own face. Threads can be displayed linearly (in which case e-mails are
18260 displayed in chronological order) or as an Org document where the node tree
18261 maps the thread tree.")
18262 (license license:gpl3+))))
18263
18264 (define-public emacs-pinentry
18265 (let ((commit "dcc9ba03252ee5d39e03bba31b420e0708c3ba0c")
18266 (revision "1"))
18267 (package
18268 (name "emacs-pinentry")
18269 (version (git-version "0.1" revision commit))
18270 (source
18271 (origin
18272 (method url-fetch)
18273 (uri (string-append
18274 "http://git.savannah.gnu.org/cgit/emacs/elpa.git/plain"
18275 "/packages/pinentry/pinentry.el?id=" commit))
18276 (file-name (string-append "pinentry.el"))
18277 (sha256
18278 (base32
18279 "1lf30q6r8nz5cjzclbb9bbymsk2y75nskvb55hnjdv93gr3j0sik"))))
18280 (build-system emacs-build-system)
18281 (propagated-inputs
18282 `(("gnupg" ,gnupg)))
18283 (home-page "https://elpa.gnu.org/packages/pinentry.html")
18284 (synopsis "GnuPG Pinentry server implementation")
18285 (description
18286 "This package allows GnuPG passphrase to be prompted through the
18287 minibuffer instead of graphical dialog.
18288
18289 To use, add @code{allow-emacs-pinentry} to @code{~/.gnupg/gpg-agent.conf},
18290 reload the configuration with @code{gpgconf --reload gpg-agent}, and start the
18291 server with @code{M-x pinentry-start}.")
18292 (license license:gpl3+))))
18293
18294 (define-public emacs-so-long
18295 (let ((commit "cfae473b1bf65f78ddb015159e667ec0103d881c")
18296 (revision "2"))
18297 (package
18298 (name "emacs-so-long")
18299 (version (git-version "1.0" revision commit))
18300 (source
18301 (origin
18302 (method git-fetch)
18303 (uri (git-reference
18304 (url "https://git.savannah.gnu.org/git/so-long.git")
18305 (commit commit)))
18306 (file-name (git-file-name name version))
18307 (sha256
18308 (base32
18309 "0g943n5cl9lz5s7hszg6yvp10xd1xvd8mfgxyg0yckmp8fqkswin"))))
18310 (build-system emacs-build-system)
18311 (home-page "https://www.emacswiki.org/emacs/SoLong")
18312 (synopsis "Improve performance in files with long lines")
18313 (description "This package improves the performance of Emacs when
18314 viewing files with long lines. It is included as standard with Emacs 27 or
18315 later.")
18316 (license license:gpl3+))))
18317
18318 (define-public emacs-github-review
18319 (let ((commit "a13a3b4f1b6114a32af843971a145ab880f51232")
18320 (revision "2"))
18321 (package
18322 (name "emacs-github-review")
18323 (version (git-version "0.1" revision commit))
18324 (source
18325 (origin
18326 (method git-fetch)
18327 (uri (git-reference
18328 (url "https://github.com/charignon/github-review")
18329 (commit commit)))
18330 (file-name (git-file-name name version))
18331 (sha256
18332 (base32
18333 "0injfpxzgfhmqalba845j5l5cdcxxqz43knhxwinf36g52nfabl0"))))
18334 (build-system emacs-build-system)
18335 (inputs
18336 `(("emacs-dash" ,emacs-dash)
18337 ("emacs-s" ,emacs-s)
18338 ("emacs-ghub" ,emacs-ghub)))
18339 (native-inputs
18340 `(("emacs-buttercup" ,emacs-buttercup)
18341 ("emacs-undercover" ,emacs-undercover)))
18342 (arguments
18343 `(#:tests? #t
18344 #:test-command '("buttercup" "-L" "test/github-review-test.el")))
18345 (home-page "https://github.com/charignon/github-review")
18346 (synopsis "Review GitHub pull requests within Emacs")
18347 (description "This package provides commands to pull in, comment on, and
18348 accept and reject GitHub pull requests.")
18349 (license license:gpl3+))))
18350
18351 (define-public emacs-deadgrep
18352 (let ((commit "7e50e71c6ff4e17dded43e0836dae4e5ec020fcf")
18353 (revision "1"))
18354 (package
18355 (name "emacs-deadgrep")
18356 (version (git-version "0.10" revision commit))
18357 (source
18358 (origin
18359 (method git-fetch)
18360 (uri (git-reference
18361 (url "https://github.com/Wilfred/deadgrep")
18362 (commit commit)))
18363 (file-name (git-file-name name version))
18364 (sha256
18365 (base32
18366 "1vjhrq02l8gvdn2haygzq7277hnhjchs9xrfpcnh76gqip200gx4"))))
18367 (build-system emacs-build-system)
18368 (propagated-inputs
18369 `(("emacs-dash" ,emacs-dash)
18370 ("emacs-s" ,emacs-s)
18371 ("emacs-spinner" ,emacs-spinner)))
18372 (home-page "https://github.com/Wilfred/deadgrep")
18373 (synopsis "Frontend for @code{ripgrep}")
18374 (description "This package provides an Emacs interface for performing
18375 searches with @code{ripgrep}.")
18376 (license license:gpl3+))))
18377
18378 (define-public emacs-focus
18379 (let ((commit "ab42b8779929beeb7878c7fb3d3ccd80d9327c7f")
18380 (version "0.1.1")
18381 (revision "1"))
18382 (package
18383 (name "emacs-focus")
18384 (version (git-version version revision commit))
18385 (source
18386 (origin
18387 (method git-fetch)
18388 (uri (git-reference
18389 (url "https://github.com/larstvei/Focus")
18390 (commit commit)))
18391 (file-name (git-file-name name version))
18392 (sha256
18393 (base32
18394 "079v1syid7h2vr2ya6hs6hl0pgj60qdsw60mqw4cj2zllmkrkwj4"))))
18395 (build-system emacs-build-system)
18396 (home-page "https://github.com/larstvei/Focus")
18397 (synopsis "Minor mode for focusing in on relevant text")
18398 (description "This package provides a minor mode that dims the color of
18399 text in neighboring sections.")
18400 (license license:gpl3+))))
18401
18402 (define-public emacs-pandoc-mode
18403 (package
18404 (name "emacs-pandoc-mode")
18405 (version "2.27.2")
18406 (source
18407 (origin
18408 (method git-fetch)
18409 (uri (git-reference
18410 (url "https://github.com/joostkremers/pandoc-mode")
18411 (commit version)))
18412 (file-name (git-file-name name version))
18413 (sha256
18414 (base32
18415 "04bqc7mhgkfks3nsvimd3rrriv4nqbksmv5ahlbbd03aqa2b0vrv"))))
18416 (build-system emacs-build-system)
18417 (propagated-inputs
18418 `(("emacs-dash" ,emacs-dash)
18419 ("emacs-hydra" ,emacs-hydra)))
18420 (home-page "https://github.com/joostkremers/pandoc-mode")
18421 (synopsis "Minor mode for interacting with Pandoc")
18422 (description "This package provides a Hydra menu for interacting with the
18423 Pandoc, the document-conversion tool.")
18424 (license license:bsd-3)))
18425
18426 (define-public emacs-hlint-refactor-mode
18427 (let ((commit "c4307f86aad6d02e32e9b30cb6edc115584c791c")
18428 (revision "1"))
18429 (package
18430 (name "emacs-hlint-refactor-mode")
18431 (version (git-version "0.0.1" revision commit))
18432 (source
18433 (origin
18434 (method git-fetch)
18435 (uri (git-reference
18436 (url "https://github.com/mpickering/hlint-refactor-mode")
18437 (commit commit)))
18438 (file-name (git-file-name name version))
18439 (sha256
18440 (base32
18441 "1c71w9s34n0i7mm4njchxn6s3ri1y6mh3akgbg4nq41d42h8iap3"))))
18442 (build-system emacs-build-system)
18443 (propagated-inputs
18444 `(("apply-refact" ,apply-refact)
18445 ("hlint" ,hlint)))
18446 (home-page "https://github.com/mpickering/hlint-refactor-mode")
18447 (synopsis "Emacs bindings for @code{hlint}'s @code{--refactor} option")
18448 (description "This package applies refactoring suggestions from
18449 @code{hlint}.")
18450 (license license:expat))))
18451
18452 (define-public emacs-ccls
18453 (let ((commit "aab3e31fd716daf59f9794e62d473357263e8cc0")
18454 (revision "4"))
18455 (package
18456 (name "emacs-ccls")
18457 (version (git-version "0.1" revision commit))
18458 (source
18459 (origin
18460 (method git-fetch)
18461 (uri (git-reference
18462 (url "https://github.com/MaskRay/emacs-ccls")
18463 (commit commit)))
18464 (file-name (git-file-name name version))
18465 (sha256
18466 (base32
18467 "1ykgw21ypyhwlyflppjcgqrj1xw4d9rld4z65qvwhk3f12cv113j"))))
18468 (build-system emacs-build-system)
18469 (propagated-inputs
18470 `(("ccls" ,ccls)
18471 ("emacs-dash" ,emacs-dash)
18472 ("emacs-projectile" ,emacs-projectile)
18473 ("emacs-lsp-mode" ,emacs-lsp-mode)))
18474 (home-page "https://github.com/MaskRay/emacs-ccls")
18475 (synopsis "Emacs support for the @code{ccls} language server")
18476 (description "This package extends @code{lsp-mode} to work with @code{C}
18477 and @code{C++} files through the @code{ccls} language server.")
18478 (license license:expat))))
18479
18480 (define-public emacs-org-brain
18481 (package
18482 (name "emacs-org-brain")
18483 (version "0.5")
18484 (source
18485 (origin
18486 (method git-fetch)
18487 (uri (git-reference
18488 (url "https://github.com/Kungsgeten/org-brain")
18489 (commit "3faf9303af3f2356e3444e69c22dc6c5774047d1")))
18490 (file-name (git-file-name name version))
18491 (sha256
18492 (base32
18493 "1ad681zk6kckw2zbk0r4iaj4bw8cfqrbd1s3gdwgdjlzq81q9mmj"))))
18494 (build-system emacs-build-system)
18495 (home-page "https://github.com/Kungsgeten/org-brain")
18496 (synopsis "Org-mode wiki and concept-mapping for Emacs")
18497 (description "@code{emacs-org-brain} implements a variant of concept
18498 mapping in Emacs, using @code{org-mode}. An org-brain is a network of
18499 org-mode entries, where each entry is a file or a headline, and you can get a
18500 visual overview of the relationships between the entries: parents, children,
18501 siblings and friends. This visual overview can also be used to browse your
18502 entries. You can think of entries as nodes in a mind map, or pages in a
18503 wiki.")
18504 (license license:expat)))
18505
18506 (define-public emacs-recent-addresses
18507 (let ((commit "afbbfdc43b81e620acf827ca20d297e0c517b6eb")
18508 (revision "1"))
18509 (package
18510 (name "emacs-recent-addresses")
18511 (home-page "https://nschum.de/src/emacs/recent-addresses/")
18512 (version (git-version "0.1" revision commit))
18513 (source (origin
18514 (method git-fetch)
18515 (uri (git-reference
18516 ;; Note: Use a branch that works with Helm. Submitted
18517 ;; at <https://github.com/nschum/recent-addresses.el/pull/1>.
18518 (url "https://github.com/civodul/recent-addresses.el")
18519 (commit commit)))
18520 (sha256
18521 (base32
18522 "0ajrq0galjmdyjdjyxazykjyax3gh6hvfk4s7l657pi11g0q5zax"))
18523 (file-name (git-file-name name version))))
18524 (build-system emacs-build-system)
18525 (synopsis "Record recently-used email addressed and auto-complete them")
18526 (description
18527 "@code{recent-addresses} is an Emacs package that allows you to quickly
18528 look up previously used email addresses. It can be used alongside the Gnus
18529 email client.")
18530 (license license:gpl2+))))
18531
18532 (define-public emacs-fold-dwim
18533 (let ((commit "c46f4bb2ce91b4e307136320e72c28dd50b6cd8b")
18534 (revision "0"))
18535 (package
18536 (name "emacs-fold-dwim")
18537 (version (git-version "1.2" revision commit))
18538 (home-page "https://github.com/emacsattic/fold-dwim")
18539 (source (origin
18540 (method git-fetch)
18541 (uri (git-reference (url home-page) (commit commit)))
18542 (sha256
18543 (base32
18544 "1yz1wis31asw6xa5maliyd1ck2q02xnnh7dc6swgj9cb4wi7k6i1"))
18545 (file-name (git-file-name name version))))
18546 (build-system emacs-build-system)
18547 (synopsis "Unified user interface for Emacs folding modes")
18548 (description
18549 "DWIM stands for \"do what I mean\", as in the idea that one keystroke
18550 can do different things depending on the context. In this package, it means
18551 that, if the cursor is in a currently hidden folded construction, we want to
18552 show it; if it's not, we want to hide whatever fold the cursor is in.")
18553 (license license:gpl2+))))
18554
18555 (define-public emacs-markup-faces
18556 (package
18557 (name "emacs-markup-faces")
18558 (version "1.0.0")
18559 (source
18560 (origin
18561 (method url-fetch)
18562 (uri (string-append "https://stable.melpa.org/packages/markup-faces-"
18563 version ".el"))
18564 (sha256
18565 (base32
18566 "124dxbaa25fwxnpwsygpz7pw6da6dnnw7y2lic3jf8rgz7lw4v32"))))
18567 (build-system emacs-build-system)
18568 (home-page "https://github.com/sensorflo/markup-faces")
18569 (synopsis "Collection of Emacs faces for markup language modes")
18570 (description "emacs-markup-faces is like font-lock-faces, but tailored for
18571 markup languages instead programming languages. The sub group markup-faces-text
18572 is also intended for 'text viewing modes' such as info or (wo)man. This gives a
18573 common look and feel, or let's say theme, across different markup language modes
18574 and 'text viewing modes' respectively.")
18575 (license license:gpl3+)))
18576
18577 (define-public emacs-adoc-mode
18578 (package
18579 (name "emacs-adoc-mode")
18580 (version "0.6.6")
18581 (source
18582 (origin
18583 (method git-fetch)
18584 (uri (git-reference
18585 (url "https://github.com/sensorflo/adoc-mode")
18586 (commit (string-append "V" version))))
18587 (file-name (git-file-name name version))
18588 (sha256
18589 (base32
18590 "0kp2aafjhqxz3mjr9hkkss85r4n51chws5a2qj1xzb63dh36liwm"))))
18591 (build-system emacs-build-system)
18592 (arguments
18593 `(#:phases
18594 (modify-phases %standard-phases
18595 ;; See: https://github.com/sensorflo/adoc-mode/issues/39.
18596 (add-after 'unpack 'disable-failing-tests
18597 (lambda _
18598 (let-syntax
18599 ((disable-tests
18600 (syntax-rules ()
18601 ((_ file ())
18602 (syntax-error "test names list must not be empty"))
18603 ((_ file (test-name ...))
18604 (substitute* file
18605 (((string-append "^\\(ert-deftest " test-name ".*") all)
18606 (string-append all "(skip-unless nil)\n")) ...)))))
18607 (disable-tests "adoc-mode-test.el"
18608 ("adoctest-test-tempo-delimited-blocks"
18609 "adoctest-test-tempo-macros"
18610 "adoctest-test-tempo-paragraphs"
18611 "adoctest-test-tempo-passthroug-macros"
18612 "adoctest-test-tempo-quotes")))
18613 #t)))
18614 #:tests? #t
18615 #:test-command '("emacs" "-Q" "-batch"
18616 "-l" "adoc-mode-test.el"
18617 "-f" "ert-run-tests-batch-and-exit")))
18618 (propagated-inputs
18619 `(("emacs-markup-faces" ,emacs-markup-faces)))
18620 (home-page "https://github.com/sensorflo/adoc-mode/wiki")
18621 (synopsis "AsciiDoc mode for Emacs")
18622 (description "This package provides an Emacs major mode for editing AsciiDoc
18623 files. It focuses on highlighting the document to improve readability.")
18624 (license license:gpl2+)))
18625
18626 (define-public emacs-racer
18627 (package
18628 (name "emacs-racer")
18629 (version "1.2")
18630 (source
18631 (origin
18632 (method git-fetch)
18633 (uri
18634 (git-reference
18635 (url "https://github.com/racer-rust/emacs-racer")
18636 (commit version)))
18637 (file-name (git-file-name name version))
18638 (sha256
18639 (base32 "0xj5iki10cg8j8vvqjlw6lfx97k3agwirhchcjnzbnkry48x9qi6"))))
18640 (arguments
18641 `(#:tests? #t
18642 #:test-command '("make" "test")
18643 #:phases
18644 (modify-phases %standard-phases
18645 (add-before 'check 'fix-makefile
18646 (lambda _
18647 (substitute* "Makefile"
18648 (("\\$\\{CASK\\} exec ") ""))
18649 #t))
18650 ;; Two tests are failing with Emacs 27, as reported here:
18651 ;; <https://github.com/racer-rust/emacs-racer/issues/136>. Disable
18652 ;; them.
18653 (add-before 'check 'fix-failing-tests
18654 (lambda _
18655 (substitute* "test/racer-test.el"
18656 (("`Write`") "Write")
18657 (("^\\\\\\[`str\\]:.*") "")
18658 ((" \\[`str`\\]") " str"))
18659 #t)))))
18660 (native-inputs
18661 `(("emacs-ert-runner" ,emacs-ert-runner)
18662 ("emacs-undercover" ,emacs-undercover)))
18663 (propagated-inputs
18664 `(("emacs-dash" ,emacs-dash)
18665 ("emacs-f" ,emacs-f)
18666 ("emacs-pos-tip" ,emacs-pos-tip)
18667 ("emacs-rust-mode" ,emacs-rust-mode)
18668 ("emacs-s" ,emacs-s)))
18669 (build-system emacs-build-system)
18670 (home-page "https://github.com/racer-rust/emacs-racer")
18671 (synopsis "Racer support for Emacs")
18672 (description
18673 "This is the official Emacs package for Racer. It supports code
18674 completion of variables, functions and modules. It can also jump to
18675 definition of functions and types, and show a help buffer based on the
18676 docstring of the thing at point.")
18677 (license license:expat)))
18678
18679 (define-public emacs-rust-mode
18680 (package
18681 (name "emacs-rust-mode")
18682 (version "0.5.0")
18683 (source (origin
18684 (method git-fetch)
18685 (uri (git-reference
18686 (url "https://github.com/rust-lang/rust-mode")
18687 (commit version)))
18688 (file-name (git-file-name name version))
18689 (sha256
18690 (base32
18691 "1f3nnl0d7p9b5cv1bpm0hj898qmr2psxfvmqr61bh684z7fgc045"))))
18692 (build-system emacs-build-system)
18693 (arguments
18694 `(#:phases
18695 (modify-phases %standard-phases
18696 (replace 'check
18697 (lambda _
18698 (invoke "sh" "run_rust_emacs_tests.sh"))))))
18699 (home-page "https://github.com/rust-lang/rust-mode")
18700 (synopsis "Major Emacs mode for editing Rust source code")
18701 (description "This package provides a major Emacs mode for editing Rust
18702 source code.")
18703 (license (list license:expat
18704 license:asl2.0))))
18705
18706 (define-public emacs-ztree
18707 (let ((commit "c54425a094353ec40a8179f9eab3596f76c6cf94"))
18708 (package
18709 (name "emacs-ztree")
18710 (version (git-version "1.0.5" "1" commit))
18711 (source
18712 (origin
18713 (method git-fetch)
18714 (uri (git-reference
18715 (url "https://github.com/fourier/ztree")
18716 (commit commit)))
18717 (file-name (git-file-name name version))
18718 (sha256
18719 (base32
18720 "0j8fpxds8m1zi04nrs8vv21091abvh4n8ab76f1sgdxnp4l5cfb0"))))
18721 (build-system emacs-build-system)
18722 (home-page "https://github.com/fourier/ztree")
18723 (synopsis "Directory tree comparison mode for Emacs")
18724 (description "Ztree is a project dedicated to implementation of several
18725 text-tree applications inside GNU Emacs. It consists of 2 subprojects:
18726 @command{ztree-diff} and @command{ztree-dir} (the basis of
18727 @command{ztree-diff}).")
18728 (license license:gpl3))))
18729
18730 (define-public emacs-helm-org-contacts
18731 (let ((commit "e7f11615802df55bb8b679450b5a5ef82a9081f9"))
18732 (package
18733 (name "emacs-helm-org-contacts")
18734 (version (git-version "20200310" "1" commit))
18735 (source
18736 (origin
18737 (method git-fetch)
18738 (uri (git-reference
18739 (url "https://github.com/tmalsburg/helm-org-contacts")
18740 (commit commit)))
18741 (file-name (git-file-name name version))
18742 (sha256
18743 (base32
18744 "06a1gbrq3qcfsn0kyv4i24x1xxfrrwqa3kgfj4xa4va88q2vqyb5"))))
18745 (build-system emacs-build-system)
18746 (propagated-inputs
18747 `(("emacs-dash" ,emacs-dash)
18748 ("emacs-helm" ,emacs-helm)
18749 ("emacs-s" ,emacs-s)))
18750 (home-page "https://github.com/tmalsburg/helm-org-contacts")
18751 (synopsis "Helm source for org-contacts")
18752 (description "This Helm source can be used to search contacts stored in
18753 org-contacts format. There are actions for inserting postal addresses, email
18754 addresses, and phone numbers in the buffer where @command{helm-org-contacts}
18755 was called.")
18756 (license license:gpl3))))
18757
18758 (define-public emacs-dired-du
18759 (package
18760 (name "emacs-dired-du")
18761 (version "0.5.2")
18762 (source
18763 (origin
18764 (method url-fetch)
18765 (uri (string-append
18766 "https://elpa.gnu.org/packages/dired-du-" version ".tar"))
18767 (sha256
18768 (base32 "0vhph7vcicsiq28b10h3b4dvnhckcy4gccpdgsad5j7pwa5k26m1"))))
18769 (build-system emacs-build-system)
18770 (home-page "https://elpa.gnu.org/packages/dired-du.html")
18771 (synopsis "Dired with recursive directory sizes")
18772 (description
18773 "Display the recursive size of directories in Dired.
18774 This file defines a minor mode @command{dired-du-mode} to show the recursive
18775 size of directories in Dired buffers. If @command{du} program is available,
18776 then the directory sizes are obtained with it. Otherwise, the directory sizes
18777 are obtained with Lisp. The former is faster and provide a more precise
18778 value. For directories where the user doesn't have read permission, the
18779 recursive size is not obtained. Once this mode is enabled, every new Dired
18780 buffer displays recursive dir sizes.")
18781 (license license:gpl3+)))
18782
18783 (define-public emacs-dired-rsync
18784 (package
18785 (name "emacs-dired-rsync")
18786 (version "0.4")
18787 (source (origin
18788 (method git-fetch)
18789 (uri (git-reference
18790 (url "https://github.com/stsquad/dired-rsync")
18791 (commit version)))
18792 (file-name (git-file-name name version))
18793 (sha256
18794 (base32
18795 "0jzbn0izxqgz719gb6fpr60zbcb6w1ama13ngpvrig82nlhs37fv"))))
18796 (build-system emacs-build-system)
18797 (propagated-inputs
18798 `(("emacs-s" ,emacs-s)
18799 ("emacs-dash" ,emacs-dash)))
18800 (home-page "https://github.com/stsquad/dired-rsync/")
18801 (synopsis "Support for rsync from Emacs dired buffers")
18802 (description "This package adds a single command @code{dired-rsync} which
18803 allows the user to copy marked files in a dired buffer via @code{rsync}. This
18804 is useful, especially for large files, because the copy happens in the
18805 background and doesn’t lock up Emacs. It is also more efficient than using
18806 tramps own encoding methods for moving data between systems.")
18807 (license license:gpl3+)))
18808
18809 (define-public emacs-pcre2el
18810 ;; Last release is very old so we get the latest commit.
18811 (let ((commit "0b5b2a2c173aab3fd14aac6cf5e90ad3bf58fa7d"))
18812 (package
18813 (name "emacs-pcre2el")
18814 (version (git-version "1.8" "1" commit))
18815 (source
18816 (origin
18817 (method git-fetch)
18818 (uri (git-reference
18819 (url "https://github.com/joddie/pcre2el")
18820 (commit commit)))
18821 (file-name (git-file-name name version))
18822 (sha256
18823 (base32
18824 "14br6ad138qx1z822wqssswqiihxiynz1k69p6mcdisr2q8yyi1z"))))
18825 (build-system emacs-build-system)
18826 (home-page "https://github.com/joddie/pcre2el")
18827 (synopsis "Convert between PCRE, Emacs and rx regexp syntax")
18828 (description "@code{pcre2el} or @code{rxt} (RegeXp Translator or RegeXp
18829 Tools) is a utility for working with regular expressions in Emacs, based on a
18830 recursive-descent parser for regexp syntax. In addition to converting (a
18831 subset of) PCRE syntax into its Emacs equivalent, it can do the following:
18832
18833 @itemize
18834 @item convert Emacs syntax to PCRE
18835 @item convert either syntax to @code{rx}, an S-expression based regexp syntax
18836 @item untangle complex regexps by showing the parse tree in @code{rx} form and
18837 highlighting the corresponding chunks of code
18838 @item show the complete list of strings (productions) matching a regexp,
18839 provided the list is finite
18840 @item provide live font-locking of regexp syntax (so far only for Elisp
18841 buffers – other modes on the TODO list).
18842 @end itemize\n")
18843 (license license:gpl3))))
18844
18845 (define-public emacs-magit-todos
18846 (package
18847 (name "emacs-magit-todos")
18848 (version "1.4.1")
18849 (source
18850 (origin
18851 (method git-fetch)
18852 (uri (git-reference
18853 (url "https://github.com/alphapapa/magit-todos")
18854 (commit version)))
18855 (file-name (git-file-name name version))
18856 (sha256
18857 (base32
18858 "1rcl6j53yabxqk3jzgaxvm3wqq7rayf1hdib2v2fapw5b0layym6"))))
18859 (build-system emacs-build-system)
18860 (propagated-inputs
18861 `(("emacs-async" ,emacs-async)
18862 ("emacs-dash" ,emacs-dash)
18863 ("emacs-f" ,emacs-f)
18864 ("emacs-hl-todo" ,emacs-hl-todo)
18865 ("magit" ,emacs-magit)
18866 ("emacs-pcre2el" ,emacs-pcre2el)
18867 ("emacs-s" ,emacs-s)))
18868 (home-page "https://github.com/alphapapa/magit-todos")
18869 (synopsis "Show source files' TODOs (and FIXMEs, etc) in Magit status buffer")
18870 (description "This package displays keyword entries from source code
18871 comments and Org files in the Magit status buffer. Activating an item jumps
18872 to it in its file. By default, it uses keywords from @code{hl-todo}, minus a
18873 few (like NOTE).")
18874 (license license:gpl3)))
18875
18876 (define-public emacs-git-annex
18877 ;; Unreleased version has a fontification fix.
18878 (let ((commit "1324d3f23c534fe79391a2c256bb8803054e383b")
18879 (revision "2"))
18880 (package
18881 (name "emacs-git-annex")
18882 (version (git-version "1.1" revision commit))
18883 (source
18884 (origin
18885 (method git-fetch)
18886 (uri (git-reference
18887 (url "https://github.com/jwiegley/git-annex-el")
18888 (commit commit)))
18889 (file-name (git-file-name name version))
18890 (sha256
18891 (base32
18892 "1lfky2nsrlndlbvk6vwbswnvbvkz1sxgg0n3r5q6xykdkjym0lrh"))))
18893 (build-system emacs-build-system)
18894 (home-page "https://github.com/jwiegley/git-annex-el")
18895 (synopsis "Emacs integration for git-annex")
18896 (description "Enhances Dired and buffers visiting annex files with
18897 git-annex functionality. In Dired, the names of annex files are shortened by
18898 hiding the symbolic links and fontified based on whether content is present.
18899 Commands for performing some common operations (e.g., unlocking and adding
18900 files) are provided.")
18901 (license license:gpl2+))))
18902
18903 (define-public emacs-hackernews
18904 (let ((commit "2362d7b00e59da7caddc8c0adc24dccb42fddef9")
18905 (revision "2"))
18906 (package
18907 (name "emacs-hackernews")
18908 (version (git-version "0.5.0" revision commit))
18909 (source
18910 (origin
18911 (method git-fetch)
18912 (uri (git-reference
18913 (url "https://github.com/clarete/hackernews.el")
18914 (commit commit)))
18915 (file-name (git-file-name name version))
18916 (sha256
18917 (base32
18918 "1hcc5b173yzcvvd2ls3jxrmsw2w9bi21m9hcpcirkn0nh93ywadv"))))
18919 (build-system emacs-build-system)
18920 (home-page "https://github.com/clarete/hackernews.el")
18921 (synopsis "Hacker News client for Emacs")
18922 (description "The @command{hackernews} package is able to fetch stories
18923 from six different Hacker News feeds, namely top, new, best, ask, show and job
18924 stories. The default feed is top stories, which corresponds to the Hacker
18925 News homepage.")
18926 (license license:gpl3))))
18927
18928 (define-public emacs-youtube-dl
18929 (let ((commit "af877b5bc4f01c04fccfa7d47a2c328926f20ef4")
18930 (revision "2"))
18931 (package
18932 (name "emacs-youtube-dl")
18933 (version (git-version "1.0" "2" commit))
18934 (source
18935 (origin
18936 (method git-fetch)
18937 (uri (git-reference
18938 (url "https://github.com/skeeto/youtube-dl-emacs/")
18939 (commit commit)))
18940 (file-name (git-file-name name version))
18941 (sha256
18942 (base32
18943 "0zkl9jkjbx0lmp9ylv4rqg1zwqibk053s4rp7s1h0i18nzk7vn8j"))))
18944 (build-system emacs-build-system)
18945 (inputs
18946 `(("youtube-dl" ,youtube-dl)))
18947 (arguments
18948 `(#:phases
18949 (modify-phases %standard-phases
18950 (add-after 'unpack 'configure
18951 (lambda* (#:key inputs #:allow-other-keys)
18952 (let ((youtube-dl (assoc-ref inputs "youtube-dl")))
18953 ;; .el is read-only in git.
18954 (chmod "youtube-dl.el" #o644)
18955 ;; Specify the absolute file names of the various
18956 ;; programs so that everything works out-of-the-box.
18957 (emacs-substitute-variables
18958 "youtube-dl.el"
18959 ("youtube-dl-program"
18960 (string-append youtube-dl "/bin/youtube-dl")))))))))
18961 (home-page "https://github.com/skeeto/youtube-dl-emacs/")
18962 (synopsis "Emacs youtube-dl download manager")
18963 (description "This package manages a video download queue for
18964 @command{youtube-dl}, which serves as the back end. It manages a single
18965 @command{youtube-dl} subprocess, downloading one video at a time. New videos
18966 can be queued at any time.")
18967 (license license:unlicense))))
18968
18969 (define-public emacs-ytdl
18970 (package
18971 (name "emacs-ytdl")
18972 (version "1.3.5")
18973 (source
18974 (origin
18975 (method git-fetch)
18976 (uri (git-reference
18977 (url "https://gitlab.com/tuedachu/ytdl")
18978 (commit version)))
18979 (file-name (git-file-name name version))
18980 (sha256
18981 (base32 "1xv93ny942gha1ipic5r6z4icjsb7src7ssdck9983kks3zacjk7"))))
18982 (build-system emacs-build-system)
18983 (inputs
18984 `(("youtube-dl" ,youtube-dl)))
18985 (propagated-inputs
18986 `(("async" ,emacs-async)
18987 ("transient" ,emacs-transient)))
18988 (arguments
18989 `(#:phases
18990 (modify-phases %standard-phases
18991 (add-after 'unpack 'configure
18992 (lambda* (#:key inputs #:allow-other-keys)
18993 (let ((youtube-dl (assoc-ref inputs "youtube-dl")))
18994 ;; .el is read-only in git.
18995 (make-file-writable "ytdl.el")
18996 ;; Specify the absolute file names of the various programs so
18997 ;; that everything works out-of-the-box.
18998 (emacs-substitute-variables "ytdl.el"
18999 ("ytdl-command" (string-append youtube-dl "/bin/youtube-dl")))
19000 #t))))))
19001 (home-page "https://gitlab.com/tuedachu/ytdl")
19002 (synopsis "Emacs interface for youtube-dl")
19003 (description
19004 "This package manages a video download queue for @command{youtube-dl},
19005 which serves as the back end. New videos can be queued at any time. All
19006 youtube-dl backends are supported. It is possible to create download profiles
19007 depending on the downloaded URL.")
19008 (license license:gpl3+)))
19009
19010 (define-public emacs-org-web-tools
19011 (package
19012 (name "emacs-org-web-tools")
19013 (version "1.0")
19014 (source
19015 (origin
19016 (method git-fetch)
19017 (uri (git-reference
19018 (url "https://github.com/alphapapa/org-web-tools")
19019 (commit version)))
19020 (file-name (git-file-name name version))
19021 (sha256
19022 (base32
19023 "0kak9h5ny00d39gnwspv53nadnag01brw2fq9zk5wpfc91h9bjng"))))
19024 (build-system emacs-build-system)
19025 (propagated-inputs
19026 `(("emacs-dash" ,emacs-dash)
19027 ("emacs-esxml" ,emacs-esxml)
19028 ("emacs-s" ,emacs-s)))
19029 (inputs
19030 `(("pandoc" ,pandoc)))
19031 (arguments
19032 `(#:phases
19033 (modify-phases %standard-phases
19034 (add-after 'unpack 'patch-exec-paths
19035 (lambda* (#:key inputs #:allow-other-keys)
19036 (let ((pandoc (assoc-ref inputs "pandoc")))
19037 (substitute* "org-web-tools.el"
19038 (("\"pandoc\"") (string-append "\"" pandoc "/bin/pandoc\"")))
19039 #t))))))
19040 (home-page "https://github.com/alphapapa/org-web-tools")
19041 (synopsis "Display/Process web page as Org-mode content")
19042 (description "This package contains library functions and commands useful
19043 for retrieving web page content and processing it into Org-mode content.
19044
19045 For example, you can copy a URL to the clipboard or kill-ring, then run a
19046 command that downloads the page, isolates the “readable” content with
19047 @command{eww-readable}, converts it to Org-mode content with Pandoc, and
19048 displays it in an Org-mode buffer. Another command does all of that but
19049 inserts it as an Org entry instead of displaying it in a new buffer.")
19050 (license license:gpl3+)))
19051
19052 (define-public emacs-blimp
19053 (let ((commit "e420763d6d18b5d1be552cdbc47f91418343db03"))
19054 (package
19055 (name "emacs-blimp")
19056 (version (git-version "0.0.0" "1" commit))
19057 (source
19058 (origin
19059 (method git-fetch)
19060 (uri (git-reference
19061 (url "https://github.com/walseb/blimp")
19062 (commit commit)))
19063 (file-name (git-file-name name version))
19064 (sha256
19065 (base32
19066 "09wmhpym516b81dfq8smdmysh1fn610dzlyvyl2rkx8600f0fizd"))))
19067 (build-system emacs-build-system)
19068 (propagated-inputs
19069 `(("emacs-eimp" ,emacs-eimp)))
19070 (home-page "https://github.com/walseb/blimp")
19071 (synopsis "Emacs wrapper around all Imagemagick commands")
19072 (description "Blimp (Bustling Image Manipulation Package) is a complete
19073 wrapper around all Imagemagick commands with descriptions, autocompletion (for
19074 some commands) and hints displayed in prompt using @command{eimp.el} to
19075 execute its commands and resize images.")
19076 (license license:gpl3+))))
19077
19078 (define-public emacs-synosaurus
19079 (let ((commit "8bf95b935976ec0a1964cf175ed57cc5f6f93bdb"))
19080 (package
19081 (name "emacs-synosaurus")
19082 (version (git-version "0.1.0" "1" commit))
19083 (source
19084 (origin
19085 (method git-fetch)
19086 (uri (git-reference
19087 (url "https://github.com/hpdeifel/synosaurus")
19088 (commit commit)))
19089 (file-name (git-file-name name version))
19090 (sha256
19091 (base32
19092 "15by9jccab6kyplxa6k0glzaivxkqdigl33gl2qi2cvy6f2q7gva"))))
19093 (build-system emacs-build-system)
19094 (propagated-inputs
19095 `(("wordnet" ,wordnet)))
19096 (arguments
19097 `(#:phases
19098 (modify-phases %standard-phases
19099 (add-after 'unpack 'configure
19100 (lambda* (#:key inputs outputs #:allow-other-keys)
19101 (let ((wn (assoc-ref inputs "wordnet")))
19102 ;; .el is read-only in git.
19103 (chmod "synosaurus-wordnet.el" #o644)
19104 ;; Specify the absolute file names of the various
19105 ;; programs so that everything works out-of-the-box.
19106 (emacs-substitute-variables
19107 "synosaurus-wordnet.el"
19108 ("wordnet-command"
19109 (string-append wn "/bin/wn")))))))))
19110 (home-page "https://github.com/hpdeifel/synosaurus")
19111 (synopsis "Extensible thesaurus mode for Emacs")
19112 (description "Synosaurus is a thesaurus fontend for Emacs with pluggable
19113 backends, including the @command{wordnet} offline backend.")
19114 (license license:gpl3+))))
19115
19116 (define-public emacs-editorconfig
19117 (package
19118 (name "emacs-editorconfig")
19119 (version "0.8.1")
19120 (source
19121 (origin
19122 (method git-fetch)
19123 (uri (git-reference
19124 (url "https://github.com/editorconfig/editorconfig-emacs")
19125 (commit (string-append "v" version))))
19126 (file-name (git-file-name name version))
19127 (sha256
19128 (base32
19129 "1djlhkap7zddknzvjsjz0agpfsms1ih05zcpg1bikid2vs4gddyr"))))
19130 (build-system emacs-build-system)
19131 (home-page "https://github.com/editorconfig/editorconfig-emacs")
19132 (synopsis "Define and maintain consistent coding styles between different
19133 editors and IDEs")
19134 (description "The EditorConfig project consists of a file format for
19135 defining coding styles and a collection of text editor plugins that enable
19136 editors to read the file format and adhere to defined styles. EditorConfig
19137 files are easily readable and they work nicely with version control systems.")
19138 (license license:gpl3+)))
19139
19140 (define-public emacs-all-the-icons
19141 (package
19142 (name "emacs-all-the-icons")
19143 (version "4.0.1")
19144 (source
19145 (origin
19146 (method git-fetch)
19147 (uri (git-reference
19148 (url "https://github.com/domtronn/all-the-icons.el")
19149 (commit version)))
19150 (file-name (git-file-name name version))
19151 (sha256
19152 (base32 "0yh7gnv9xfqn8q4rzaa6wpyn9575vyfxy7d3afly2mqsb367fgm5"))))
19153 (build-system emacs-build-system)
19154 (arguments
19155 `(#:include '("\\.el$" "^data/" "^fonts/")
19156 ;; Compiling "test/" fails with "Symbol’s value as variable is void:
19157 ;; all-the-icons--root-code". Ignoring tests.
19158 #:exclude '("^test/")
19159 #:tests? #f))
19160 (propagated-inputs
19161 `(("f" ,emacs-f)
19162 ("memoize" ,emacs-memoize)))
19163 (home-page "https://github.com/domtronn/all-the-icons.el")
19164 (synopsis "Collect icon fonts and propertize them within Emacs")
19165 (description
19166 "All-the-icons is a utility package to collect various icon fonts and
19167 propertize them within Emacs. Icon fonts allow you to propertize and format
19168 icons the same way you would normal text. This enables things such as better
19169 scaling of and anti aliasing of the icons.")
19170 ;; Package is released under Expat license. Elisp files are licensed
19171 ;; under GPL3+. Fonts come with various licenses: Expat for
19172 ;; "all-the-icons.ttf" and "file-icons.ttf", Apache License 2.0 for
19173 ;; "material-design-icons.ttf", and SIL OFL 1.1 for "fontawesome.ttf",
19174 ;; "ocitcons.ttf" and "weathericons.ttf".
19175 (license
19176 (list license:expat license:gpl3+ license:silofl1.1 license:asl2.0))))
19177
19178 (define-public emacs-wttrin
19179 (let ((commit "df5427ce2a5ad4dab652dbb1c4a1834d7ddc2abc")
19180 (revision "1"))
19181 (package
19182 (name "emacs-wttrin")
19183 (version (git-version "0.2.0" revision commit))
19184 (source (origin
19185 (method git-fetch)
19186 (uri (git-reference
19187 (url "https://github.com/bcbcarl/emacs-wttrin")
19188 (commit commit)))
19189 (file-name (git-file-name name version))
19190 (sha256
19191 (base32
19192 "1ai655f10iayb4vw0ass2j3x83f4vsv90326mnywkzfl3sxd432z"))))
19193 (build-system emacs-build-system)
19194 (propagated-inputs
19195 `(("emacs-xterm-color" ,emacs-xterm-color)))
19196 (home-page "https://github.com/bcbcarl/emacs-wttrin")
19197 (synopsis "Frontend for weather web service @url{wttr.in}")
19198 (description "This package provides local weather information from
19199 @url{wttr.in}.")
19200 (license license:expat))))
19201
19202 (define-public emacs-browse-kill-ring
19203 (let ((commit "1ef72cc6accd94cd7032c02b1b2c78ae7f1d1965")
19204 (revision "0"))
19205 (package
19206 (name "emacs-browse-kill-ring")
19207 (version (git-version "2.0.0" revision commit))
19208 (source
19209 (origin
19210 (method git-fetch)
19211 (uri (git-reference
19212 (url "https://github.com/browse-kill-ring/browse-kill-ring")
19213 (commit commit)))
19214 (file-name (git-file-name name version))
19215 (sha256
19216 (base32
19217 "0mil32g7hcw376jibs5hdyv00xbaql3m4a27rwqaafg0x59avxdj"))))
19218 (build-system emacs-build-system)
19219 (home-page "https://github.com/browse-kill-ring/browse-kill-ring")
19220 (synopsis "Interactively insert items from kill-ring")
19221 (description
19222 "Did you ever feel that @code{C-y M-y M-y M-y ...} is not a great way
19223 of trying to find that piece of text you know you killed a while back? Then
19224 @code{browse-kill-ring.el} is for you.")
19225 (license license:gpl2+))))
19226
19227 (define-public emacs-powerline
19228 (package
19229 (name "emacs-powerline")
19230 (version "2.4")
19231 (source
19232 (origin
19233 (method git-fetch)
19234 (uri (git-reference
19235 (url "https://github.com/milkypostman/powerline")
19236 (commit version)))
19237 (file-name (git-file-name name version))
19238 (sha256
19239 (base32
19240 "1hp3xp18943n0rlggz55150020ivw8gvi1vyxkr4z8xhpwq4gaar"))))
19241 (build-system emacs-build-system)
19242 (home-page "https://github.com/milkypostman/powerline/")
19243 (synopsis "Mode-line plugin for Emacs")
19244 (description "Powerline is a utility plugin which allows you to create
19245 a better-looking, more functional Emacs mode-line. A collection of predefined
19246 themes comes with the package.")
19247 (license license:gpl3+)))
19248
19249 (define-public emacs-spaceline
19250 (package
19251 (name "emacs-spaceline")
19252 (version "2.0.1")
19253 (source
19254 (origin
19255 (method git-fetch)
19256 (uri (git-reference
19257 (url "https://github.com/TheBB/spaceline")
19258 (commit (string-append "v" version))))
19259 (file-name (git-file-name name version))
19260 (sha256
19261 (base32
19262 "1q8r95zfrh0vxna5ml2pq9b9f66clfqcl4d2qy2aizkvzyxg6skl"))))
19263 (build-system emacs-build-system)
19264 (propagated-inputs
19265 `(("dash" ,emacs-dash)
19266 ("powerline" ,emacs-powerline)
19267 ("s" ,emacs-s)))
19268 (home-page "https://github.com/TheBB/spaceline")
19269 (synopsis "Powerline theme from Spacemacs")
19270 (description "Spaceline provides Spacemacs' mode-line theme.
19271 This package provides features for three kinds of users.
19272
19273 @itemize
19274 @item You just want to use the Spacemacs mode-line theme and forget about it.
19275 @item You want to use something similar to the Spacemacs mode-line theme, but
19276 with a handful of easy tweaks.
19277 @item You want an easy-to-use library for building your own mode-line from
19278 scratch, and you think the Spacemacs theme looks good.
19279 @end itemize")
19280 (license license:gpl3+)))
19281
19282 (define-public emacs-spaceline-next
19283 (let ((commit "1b26af2c1a701481ac5d90928fe0200e389756c3")
19284 (last-release-version "2.0.1")
19285 (revision "0"))
19286 (package
19287 (inherit emacs-spaceline)
19288 (name "emacs-spaceline-next")
19289 (version (git-version last-release-version revision commit))
19290 (source
19291 (origin
19292 (method git-fetch)
19293 (uri (git-reference
19294 (url "https://github.com/TheBB/spaceline.git")
19295 (commit commit)))
19296 (sha256
19297 (base32 "11lwckqcgzsahrkkm5wk1ph4kc7d4yz05r7251g8c9f0q6vdj9dp"))
19298 (file-name (git-file-name name version)))))))
19299
19300 (define-public emacs-column-marker
19301 (package
19302 (name "emacs-column-marker")
19303 (version "9")
19304 (source
19305 (origin
19306 (method url-fetch)
19307 (uri "https://www.emacswiki.org/emacs/download/column-marker.el")
19308 (sha256 (base32 "05bv198zhqw5hqq6cr11mhz02dpca74hhp1ycwq369m0yb2naxy9"))))
19309 (build-system emacs-build-system)
19310 (home-page "https://www.emacswiki.org/emacs/ColumnMarker")
19311 (synopsis "Emacs mode for highlighting columns")
19312 (description
19313 "With @code{column-marker.el} you can highlight any number of text columns.
19314 Three such highlight column markers are provided by default. This is
19315 especially useful for languages like COBOL or Fortran where certain columns
19316 have special meaning. It is also handy for aligning text across long vertical
19317 distances. Multi-column characters, such as @kbd{TAB} are treated
19318 correctly.")
19319 (license license:gpl2+)))
19320
19321 (define-public emacs-slime-repl-ansi-color
19322 (let ((commit "ad03263f5d4de473bc173b64a6fc3dc1106393d7"))
19323 (package
19324 (name "emacs-slime-repl-ansi-color")
19325 (version (git-version "0.0.0" "1" commit))
19326 (source (origin
19327 (method git-fetch)
19328 (uri (git-reference
19329 (url "https://github.com/deadtrickster/slime-repl-ansi-color")
19330 (commit commit)))
19331 (file-name (git-file-name name version))
19332 (sha256
19333 (base32
19334 "0bpg7gxz310x7bnlg324c507sxc5gxwwz6h64h6kdq141r73vbi4"))))
19335 (build-system emacs-build-system)
19336 (home-page "https://github.com/deadtrickster/slime-repl-ansi-color")
19337 (synopsis "Color ANSI codes in the REPL of SLIME")
19338 (description "Color ANSI codes in the REPL of SLIME")
19339 (license license:gpl2+))))
19340
19341 (define-public emacs-helm-slime
19342 (package
19343 (name "emacs-helm-slime")
19344 (version "0.4.0")
19345 (source (origin
19346 (method git-fetch)
19347 (uri (git-reference
19348 (url "https://github.com/emacs-helm/helm-slime")
19349 (commit version)))
19350 (file-name (git-file-name name version))
19351 (sha256
19352 (base32
19353 "0mrpjhpijdrq353fnfvdj9l9xfsz390qlcvifcair9732ma7i8l0"))))
19354 (build-system emacs-build-system)
19355 (propagated-inputs
19356 `(("emacs-helm" ,emacs-helm)
19357 ("emacs-slime" ,emacs-slime)))
19358 (home-page "https://github.com/emacs-helm/helm-slime")
19359 (synopsis "Helm for SLIME, the Superior Lisp Interaction Mode for Emacs")
19360 (description "Helm-SLIME defines a few new commands:
19361
19362 @itemize
19363 @item helm-slime-complete: Select a symbol from the SLIME completion systems.
19364 @item helm-slime-list-connections: Yet another slime-list-connections with Helm.
19365 @item: helm-slime-apropos: Yet another slime-apropos with Helm.
19366 @item helm-slime-repl-history: Select an input from the SLIME REPL history and insert it.
19367 @end itemize\n")
19368 (license license:gpl3+)))
19369
19370 (define-public emacs-helm-sly
19371 (package
19372 (name "emacs-helm-sly")
19373 (version "0.5.0")
19374 (source (origin
19375 (method git-fetch)
19376 (uri (git-reference
19377 (url "https://github.com/emacs-helm/helm-sly")
19378 (commit version)))
19379 (file-name (git-file-name name version))
19380 (sha256
19381 (base32
19382 "1690rxwwg69jbcjhi51nyjlx3gziaiaa8ssyal71gmc6schq2592"))))
19383 (build-system emacs-build-system)
19384 (propagated-inputs
19385 `(("emacs-helm" ,emacs-helm)
19386 ("emacs-sly" ,emacs-sly)))
19387 (home-page "https://github.com/emacs-helm/helm-sly")
19388 (synopsis "Helm for SLY, a Common Lisp interaction mode for Emacs")
19389 (description "Helm-SLY defines a few new commands:
19390
19391 @itemize
19392 @item @code{helm-sly-list-connections}: Yet another Lisp connection list with
19393 Helm.
19394 @item @code{helm-sly-apropos}: Yet another @command{apropos} with Helm.
19395 @item @code{helm-sly-mini}: Like @command{helm-sly-list-connections}, but
19396 include an extra source of Lisp-related buffers, like the events buffer or the
19397 scratch buffer.
19398 @end itemize\n")
19399 (license license:gpl3+)))
19400
19401 (define-public emacs-gtk-look
19402 (package
19403 (name "emacs-gtk-look")
19404 (version "29")
19405 (source (origin
19406 (method url-fetch)
19407 (uri "https://download.tuxfamily.org/user42/gtk-look.el")
19408 (sha256
19409 (base32
19410 "14p2nwrd51cr1v06fxbjjn6jdrkf9d6vcxhmscm0kl677s25ypsp"))))
19411 (build-system emacs-build-system)
19412 (arguments
19413 `(#:phases
19414 (modify-phases %standard-phases
19415 (add-after 'unpack 'configure
19416 (lambda _
19417 ;; File is read-only.
19418 (chmod "gtk-look.el" #o644)
19419 (emacs-substitute-variables "gtk-look.el"
19420 ("gtk-lookup-devhelp-indices"
19421 '(list (expand-file-name "~/.guix-profile/share/gtk-doc/html/*/*.devhelp*"))))
19422 #t)))))
19423 (home-page "http://user42.tuxfamily.org/gtk-look/index.html")
19424 (synopsis "Find and display HTML documentation for GTK, GNOME and Glib")
19425 (description "@command{gtk-look} finds and displays HTML documentation for
19426 GTK, GNOME and Glib functions and variables in Emacs, similar to what
19427 info-lookup-symbol does for info files (C-h S). The documentation is expected
19428 to be devhelp indexes with HTML files. The location of the indexes can be
19429 customized. In addition to C code development @command{gtk-look} is good for
19430
19431 @itemize
19432 @item @command{perl-gtk2}, recognising class funcs like
19433 @command{Gtk2::Label->new} and bare method names like @command{set_text}.
19434 @item @command{guile-gnome}, recognising methods like @command{set-text} and
19435 classes like @command{<gtk-window>}.
19436 @end itemize\n")
19437 (license license:gpl3+)))
19438
19439 (define-public emacs-ov
19440 (package
19441 (name "emacs-ov")
19442 (version "1.0.6")
19443 (source (origin
19444 (method git-fetch)
19445 (uri (git-reference
19446 (url "https://github.com/ShingoFukuyama/ov.el")
19447 (commit version)))
19448 (file-name (git-file-name name version))
19449 (sha256
19450 (base32
19451 "0qxk2rf84j86syxi8xknsq252irwg7sz396v3bb4wqz4prpj0kzc"))))
19452 (build-system emacs-build-system)
19453 (home-page "https://github.com/ShingoFukuyama/ov.el")
19454 (synopsis "Overlay library for Emacs Lisp")
19455 (description "@code{ov.el} provides a simple way to manipulate overlays in
19456 Emacs.")
19457 (license license:gpl3+)))
19458
19459 (define-public emacs-matrix-client
19460 (let ((commit "59c792423fd0503f1375f356bec56130e65d3b51"))
19461 (package
19462 (name "emacs-matrix-client")
19463 (version (git-version "0.0.0" "5" commit))
19464 (source (origin
19465 (method git-fetch)
19466 (uri (git-reference
19467 (url "https://github.com/jgkamat/matrix-client-el")
19468 (commit commit)))
19469 (file-name (git-file-name name version))
19470 (sha256
19471 (base32
19472 "1gmpw14q9zkvviqpnmvh5vbyxk42038yilxm6b2zqw7mwxfc1xra"))))
19473 (build-system emacs-build-system)
19474 (arguments
19475 `(#:phases
19476 (modify-phases %standard-phases
19477 (add-after 'unpack 'add-missing-require
19478 ;; Fix a filter error at runtime due to a missing require.
19479 ;; Reported upstream:
19480 ;; <https://github.com/alphapapa/matrix-client.el/issues/76>
19481 (lambda _
19482 (substitute* "matrix-client-room.el"
19483 (("\\(require 'dash-functional\\)" all)
19484 (string-append all "\n" "(require 'anaphora)")))
19485 #t)))))
19486 (propagated-inputs
19487 `(("a" ,emacs-a)
19488 ("anaphora" ,emacs-anaphora)
19489 ("dash" ,emacs-dash)
19490 ("esxml" ,emacs-esxml)
19491 ("f" ,emacs-f)
19492 ("frame-purpose" ,emacs-frame-purpose)
19493 ("ht" ,emacs-ht)
19494 ("ov" ,emacs-ov)
19495 ("rainbow-identifiers" ,emacs-rainbow-identifiers)
19496 ("request" ,emacs-request)
19497 ("s" ,emacs-s)
19498 ("tracking" ,emacs-tracking)))
19499 (home-page "https://github.com/jgkamat/matrix-client-el")
19500 (synopsis "Matrix client for Emacs")
19501 (description "@code{matrix-client} is a simple chat UI to Matrix.org
19502 rooms. It also provides an API which allows Emacs to seamlessly create
19503 RPC channels with users and other software.")
19504 (license license:gpl3+))))
19505
19506 (define-public emacs-sesman
19507 (package
19508 (name "emacs-sesman")
19509 (version "0.3.4")
19510 (source
19511 (origin
19512 (method git-fetch)
19513 (uri (git-reference
19514 (url "https://github.com/vspinu/sesman")
19515 (commit (string-append "v" version))))
19516 (file-name (git-file-name name version))
19517 (sha256
19518 (base32
19519 "0z5jb4vpbjsi63w3wjy6d2lgz33qdfvrgfb3bszv4hcf6a96y7fc"))))
19520 (build-system emacs-build-system)
19521 (arguments
19522 `(#:phases
19523 (modify-phases %standard-phases
19524 (add-after 'unpack 'set-shell
19525 ;; Setting the SHELL environment variable is required for the tests
19526 ;; to find sh.
19527 (lambda _
19528 (setenv "SHELL" (which "sh"))
19529 #t)))
19530 #:tests? #t
19531 #:test-command '("make" "test")))
19532 (home-page "https://github.com/vspinu/sesman")
19533 (synopsis "Session manager for Emacs based IDEs")
19534 (description "Sesman provides facilities for session management and
19535 interactive session association with the current contexts (project, directory,
19536 buffers). While sesman can be used to manage arbitrary sessions, it primary
19537 targets the Emacs based IDEs (CIDER, ESS, Geiser, Robe, SLIME etc.)")
19538 (license license:gpl3+)))
19539
19540 (define-public emacs-buttercup
19541 (package
19542 (name "emacs-buttercup")
19543 (version "1.23")
19544 (source
19545 (origin
19546 (method git-fetch)
19547 (uri (git-reference
19548 (url "https://github.com/jorgenschaefer/emacs-buttercup")
19549 (commit (string-append "v" version))))
19550 (file-name (git-file-name name version))
19551 (sha256
19552 (base32
19553 "0ym1hajy47n5f1rxic8qfxrwd8zc1r7csz1v4hrwhwm4qld4krfr"))))
19554 (build-system emacs-build-system)
19555 (arguments
19556 `(#:tests? #t
19557 #:test-command '("make" "test")
19558 #:phases
19559 (modify-phases %standard-phases
19560 (add-after 'install 'install-bin
19561 (lambda* (#:key outputs #:allow-other-keys)
19562 (install-file "bin/buttercup"
19563 (string-append (assoc-ref outputs "out") "/bin"))
19564 #t)))))
19565 (home-page "https://github.com/jorgenschaefer/emacs-buttercup")
19566 (synopsis "Behavior driven emacs lisp testing framework")
19567 (description "Buttercup is a behavior-driven development framework for
19568 testing Emacs Lisp code. It groups related tests so they can share
19569 common set-up and tear-down code, and allows the programmer to \"spy\" on
19570 functions to ensure they are called with the right arguments during testing.")
19571 (license license:gpl3+)))
19572
19573 (define-public emacs-cort
19574 ;; Choosing a recent commit to fix some bugs.
19575 ;; https://github.com/conao3/cort.el/issues/106
19576 (let ((commit "495c3972b92b57a0cb5dd65ce5de9d3c6b8b6509")
19577 (revision "1"))
19578 (package
19579 (name "emacs-cort")
19580 (version (git-version "3.0.5" revision commit))
19581 (source (origin
19582 (method git-fetch)
19583 (uri (git-reference
19584 (url "https://github.com/conao3/cort.el")
19585 (commit commit)))
19586 (file-name (git-file-name name version))
19587 (sha256
19588 (base32
19589 "0f4irq1arh9c7lf9a5bla25am0jy5r6lj8ayb8k9k7lrirzhyk99"))))
19590 (build-system emacs-build-system)
19591 (propagated-inputs
19592 `(("emacs-ansi" ,emacs-ansi)))
19593 (arguments
19594 `(#:tests? #t
19595 #:test-command '("emacs" "--batch" "--quick"
19596 "--directory=." "--load=cort-tests.el"
19597 "--funcall=cort-test-run")))
19598 (home-page "https://github.com/conao3/cort.el")
19599 (synopsis "Unit test framework for the Emacs Lisp")
19600 (description "@code{cort} is a lightweight Emacs Lisp unit test library.")
19601 (license license:gpl3+))))
19602
19603 (define-public emacs-wordnut
19604 (let ((commit "feac531404041855312c1a046bde7ea18c674915")
19605 (revision "0"))
19606 (package
19607 (name "emacs-wordnut")
19608 (version (git-version "0.1" revision commit))
19609 (home-page "https://github.com/gromnitsky/wordnut")
19610 (source (origin
19611 (method git-fetch)
19612 (uri (git-reference (url home-page) (commit commit)))
19613 (sha256
19614 (base32
19615 "1jl0b6g64a9w0q7bfvwha67vgws5xd15b7mkfyb5gkz3pymqhfxn"))
19616 (patches
19617 (search-patches "emacs-wordnut-require-adaptive-wrap.patch"))
19618 (file-name (git-file-name name version))))
19619 (build-system emacs-build-system)
19620 (propagated-inputs
19621 `(("wordnet" ,wordnet)
19622 ("emacs-adaptive-wrap" ,emacs-adaptive-wrap)))
19623 (synopsis "Major mode for WordNet")
19624 (description "This Emacs package provides an interface for
19625 @code{wordnet}. Features include completion, if the query is not found
19626 too ambiguous and navigation in the result buffer.")
19627 (license license:gpl3+))))
19628
19629 (define-public emacs-frame-local
19630 ;; There is no release yet. Version is extracted from the main
19631 ;; file.
19632 (let ((version "0.0.1")
19633 (revision "0")
19634 (commit "7ee1106c3bcd4022f48421f8cb1ef4f995da816e"))
19635 (package
19636 (name "emacs-frame-local")
19637 (version (git-version version revision commit))
19638 (source
19639 (origin
19640 (method git-fetch)
19641 (uri (git-reference
19642 (url "https://github.com/sebastiencs/frame-local")
19643 (commit commit)))
19644 (file-name (git-file-name name version))
19645 (sha256
19646 (base32 "0zfxsxdh3bd3fd566zl0byp13p5b8f4cgkwl637imvarvahczigp"))))
19647 (build-system emacs-build-system)
19648 (home-page "https://github.com/sebastiencs/frame-local")
19649 (synopsis "Access variables local to an Emacs frame")
19650 (description
19651 "This packages allows setting and accessing variables local to
19652 an Emacs frame. Note that the variables created with this package do
19653 not have any relation with variables defined by @code{defvar},
19654 @code{defconst}, etc.")
19655 (license license:gpl3+))))
19656
19657 (define-public emacs-frame-purpose
19658 (package
19659 (name "emacs-frame-purpose")
19660 (version "1.0")
19661 (source (origin
19662 (method git-fetch)
19663 (uri (git-reference
19664 (url "https://github.com/alphapapa/frame-purpose.el")
19665 (commit version)))
19666 (sha256
19667 (base32
19668 "0jq2aam1yvccw887ighd1wm2xkvk5bv53ffiz3crcl16a255aj4q"))
19669 (file-name (git-file-name name version))))
19670 (build-system emacs-build-system)
19671 (inputs
19672 `(("dash" ,emacs-dash)))
19673 (synopsis "Purpose-specific frames for Emacs")
19674 (description "@code{frame-purpose} makes it easy to open purpose-specific
19675 frames that only show certain buffers, e.g. by buffers’ major mode, their
19676 filename or directory, etc, with custom frame/X-window titles, icons, and
19677 other frame parameters.")
19678 (home-page "https://github.com/alphapapa/frame-purpose.el")
19679 (license license:gpl3+)))
19680
19681 (define-public emacs-arduino-mode
19682 (let ((commit "23ae47c9f28f559e70b790b471f20310e163a39b")
19683 (revision "1")) ;no release yet
19684 (package
19685 (name "emacs-arduino-mode")
19686 (version (git-version "0" revision commit))
19687 (source (origin
19688 (method git-fetch)
19689 (uri (git-reference
19690 (url "https://github.com/stardiviner/arduino-mode")
19691 (commit commit)))
19692 (sha256
19693 (base32
19694 "08vnbz9gpah1l93fzfd87aawrhcnh2v1kyfxgsn88pdwg8awz8rx"))
19695 (file-name (git-file-name name version))))
19696 (build-system emacs-build-system)
19697 (inputs
19698 `(("spinner" ,emacs-spinner)
19699 ("flycheck" ,emacs-flycheck)))
19700 (arguments
19701 `(#:phases
19702 (modify-phases %standard-phases
19703 ;; Emacs complains that "defmethod" and "defgeneric" are obsolete
19704 ;; macros when compiling. Substitute them with the recommended
19705 ;; macros "cl-defmethod" and "cl-defgeneric", respectively.
19706 (add-after 'unpack 'fix-obsolete
19707 (lambda _
19708 (substitute* "ede-arduino.el"
19709 (("defmethod") "cl-defmethod")
19710 (("defgeneric") "cl-defgeneric"))
19711 #t)))))
19712 (synopsis "Emacs major mode for editing Arduino sketches")
19713 (description "Emacs major mode for editing Arduino sketches.")
19714 (home-page "https://github.com/stardiviner/arduino-mode")
19715 (license license:gpl3+))))
19716
19717 (define-public emacs-annalist
19718 (let ((commit "e0601539c9ac0171a684ea3ff6266d215d1d08e6")
19719 (revision "1"))
19720 (package
19721 (name "emacs-annalist")
19722 (version (git-version "1.0.0" revision commit))
19723 (source (origin
19724 (method git-fetch)
19725 (uri (git-reference
19726 (url "https://github.com/noctuid/annalist.el")
19727 (commit commit)))
19728 (sha256
19729 (base32
19730 "10bmimdzpi6cql4sb2hbgdvrza83xbac50bi9qng4z662pfnlaam"))
19731 (file-name (git-file-name name version))))
19732 (build-system emacs-build-system)
19733 (native-inputs
19734 `(("emacs-buttercup" ,emacs-buttercup)
19735 ("emacs-lispy" ,emacs-lispy)
19736 ("emacs-evil" ,emacs-evil)))
19737 (arguments
19738 `(#:phases
19739 (modify-phases %standard-phases
19740 (add-before 'check 'fix-makefile
19741 (lambda _
19742 (substitute* "Makefile"
19743 (("cask exec ") ""))
19744 #t)))
19745 #:tests? #t
19746 #:test-command '("make" "test")))
19747 (home-page "https://github.com/noctuid/annalist.el")
19748 (synopsis "Record and display information with Org headings and tables")
19749 (description "This package allows for keybindings, settings, hooks, and
19750 advice to be recorded and displayed.")
19751 (license license:gpl3+))))
19752
19753 (define-public emacs-general
19754 (let ((commit "a0b17d207badf462311b2eef7c065b884462cb7c")
19755 (revision "4"))
19756 (package
19757 (name "emacs-general")
19758 (version (git-version "0" revision commit))
19759 (source
19760 (origin
19761 (method git-fetch)
19762 (uri (git-reference
19763 (url "https://github.com/noctuid/general.el")
19764 (commit commit)))
19765 (sha256
19766 (base32 "0wn5rk3gkimdklip392mnjrmkymgrb7q9skifi03cbpjam1anzvv"))
19767 (file-name (git-file-name name version))))
19768 (build-system emacs-build-system)
19769 (native-inputs
19770 `(("emacs-buttercup" ,emacs-buttercup)
19771 ("emacs-evil" ,emacs-evil)
19772 ("emacs-which-key" ,emacs-which-key)
19773 ("emacs-use-package" ,emacs-use-package)))
19774 (arguments
19775 `(#:tests? #t
19776 #:test-command '("buttercup" "-L" "test/test-general.el")))
19777 (home-page "https://github.com/noctuid/general.el")
19778 (synopsis "More convenient key definitions in emacs")
19779 (description "@code{general.el} provides a more convenient method for
19780 binding keys in emacs (for both evil and non-evil users). Like
19781 @code{use-package}, which provides a convenient, unified interface for
19782 managing packages, @code{general.el} is intended to provide a convenient,
19783 unified interface for key definitions. While this package does implement some
19784 completely new functionality (such as the ability to make vim-style
19785 keybindings under non-prefix keys with an optional timeout), its primary
19786 purpose is to build on existing functionality to make key definition more
19787 clear and concise. @code{general-define-key} is user-extensible and supports
19788 defining multiple keys in multiple keymaps at once, implicitly wrapping key
19789 strings with (@code{kbd ...}), using named prefix key sequences (like the
19790 leader key in vim), and much more.")
19791 (license license:gpl3+))))
19792
19793 (define-public emacs-tldr
19794 (let ((commit "7203d1be3dcbf12131846ffe06601933fa874d74"))
19795 (package
19796 (name "emacs-tldr")
19797 (version (git-version "0" "1" commit))
19798 (home-page "https://github.com/kuanyui/tldr.el")
19799 (source (origin
19800 (method git-fetch)
19801 (uri (git-reference
19802 (url (string-append home-page ".git"))
19803 (commit commit)))
19804 (sha256
19805 (base32
19806 "1bw6la463l2yfm7rp76ga4makfy4kpxgwi7ni5gxk31w11g26ryk"))
19807 (file-name (git-file-name name version))))
19808 (build-system emacs-build-system)
19809 (propagated-inputs
19810 `(("emacs-request" ,emacs-request)))
19811 (synopsis "Simplified and community-driven man pages for Emacs")
19812 (description "@code{emacs-tldr} allows the user to access tldr pages
19813 from within emacs. The @code{tldr} pages are a community effort to simplify
19814 the man pages with practical examples.")
19815 (license license:wtfpl2))))
19816
19817 (define-public emacs-window-layout
19818 (package
19819 (name "emacs-window-layout")
19820 (version "1.4")
19821 (home-page "https://github.com/kiwanami/emacs-window-layout")
19822 (source (origin
19823 (method git-fetch)
19824 (uri (git-reference
19825 (url home-page)
19826 (commit (string-append "v" version))))
19827 (sha256
19828 (base32
19829 "0wgqi8r844lbx52fn6az8c1n8m681rp6dkfzd54wmdk1ka7zmvv6"))
19830 (file-name (git-file-name name version))))
19831 (build-system emacs-build-system)
19832 (synopsis "Simple window layout management framework for emacs")
19833 (description "A window-layout management library that can split a frame
19834 or a window into some windows according to a layout recipe.")
19835 (license license:gpl3+)))
19836
19837 (define-public emacs-e2wm
19838 (package
19839 (name "emacs-e2wm")
19840 (version "1.4")
19841 (home-page "https://github.com/kiwanami/emacs-window-manager")
19842 (source (origin
19843 (method git-fetch)
19844 (uri (git-reference
19845 (url home-page)
19846 (commit (string-append "v" version))))
19847 (sha256
19848 (base32
19849 "12midsrx07pdrsr1qbl2rpi7xyhxqx08bkz7n7gf8vsmqkpfp56s"))
19850 (file-name (git-file-name name version))))
19851 (build-system emacs-build-system)
19852 (propagated-inputs
19853 `(("emacs-window-layout" ,emacs-window-layout)))
19854 (synopsis "Equilibrium Emacs Window Manager")
19855 (description "E2WM is a window manager for Emacs. It enables to
19856 customize the place of pop-up window, how the windows are split, how the
19857 buffers are located in the windows, keybinds to manipulate windows and
19858 buffers, etc. It also has plug-ins to help your Emacs life.")
19859 (license license:gpl3+)))
19860
19861 (define-public emacs-ctable
19862 (let ((commit "b8830d1ca95abb100a81bc32011bd17d5ecba000"))
19863 (package
19864 (name "emacs-ctable")
19865 (version (git-version "0.1.2" "1" commit))
19866 (home-page "https://github.com/kiwanami/emacs-ctable")
19867 (source (origin
19868 (method git-fetch)
19869 (uri (git-reference
19870 (url home-page)
19871 (commit commit)))
19872 (sha256
19873 (base32
19874 "0pg303pnqscrsbx9579hc815angszsgf9vpd2z2f8p4f4ka6a00h"))
19875 (file-name (git-file-name name version))))
19876 (build-system emacs-build-system)
19877 (synopsis "Table component for Emacs Lisp")
19878 (description "This program is a table component for Emacs Lisp. Other
19879 programs can use this table component for the application UI.")
19880 (license license:gpl3+))))
19881
19882 (define-public emacs-leetcode
19883 (let ((commit "8624496af9e105c3e07d88844b37ede87540d604")
19884 (revision "1"))
19885 (package
19886 (name "emacs-leetcode")
19887 (version (git-version "0" "1" commit))
19888 (home-page "https://github.com/ginqi7/leetcode-emacs.git")
19889 (source (origin
19890 (method git-fetch)
19891 (uri (git-reference
19892 (url "https://github.com/ginqi7/leetcode-emacs")
19893 (commit commit)))
19894 (sha256
19895 (base32
19896 "11pp7ydlmwrv7djf9mwk4xzn295xbmdnj5x13bfj5yjpjr89p531"))
19897 (file-name (git-file-name name version))))
19898 (build-system emacs-build-system)
19899 (propagated-inputs
19900 `(("emacs-names" ,emacs-names)
19901 ("emacs-ctable" ,emacs-ctable)))
19902 (synopsis "Solve and submit LeetCode problems from within Emacs")
19903 (description "This package provides an Emacs interface to LeetCode
19904 allowing users to log in and solve problems of their choice using Emacs.")
19905 (license license:unlicense))))
19906
19907 (define-public emacs-epc
19908 (let ((commit "e1bfa5ca163273859336e3cc89b4b6460f7f8cda"))
19909 (package
19910 (name "emacs-epc")
19911 (version (git-version "0.1.1" "1" commit))
19912 (home-page "https://github.com/kiwanami/emacs-epc")
19913 (source (origin
19914 (method git-fetch)
19915 (uri (git-reference
19916 (url home-page)
19917 (commit commit)))
19918 (sha256
19919 (base32
19920 "15nkrjgi64f829isfd6xrhl4zw8jirr8pkas7nisrbk1av868hx0"))
19921 (file-name (git-file-name name version))))
19922 (build-system emacs-build-system)
19923 (propagated-inputs
19924 `(("emacs-deferred" ,emacs-deferred)
19925 ("emacs-ctable" ,emacs-ctable)))
19926 (synopsis "RPC stack for Emacs Lisp")
19927 (description "This program is an asynchronous RPC stack for Emacs.
19928 Using this RPC stack, Emacs can communicate with the peer process
19929 smoothly. Because the protocol employs S-expression encoding and consists of
19930 asynchronous communications, the RPC response is fairly good.")
19931 (license license:gpl3+))))
19932
19933 (define-public emacs-edbi
19934 (let ((commit "6f50aaf4bde75255221f2292c7a4ad3fa9d918c0"))
19935 (package
19936 (name "emacs-edbi")
19937 (version (git-version "0.1.3" "1" commit))
19938 (home-page "https://github.com/kiwanami/emacs-edbi")
19939 (source (origin
19940 (method git-fetch)
19941 (uri (git-reference
19942 (url home-page)
19943 (commit commit)))
19944 (sha256
19945 (base32
19946 "0x0igyvdcm4863n7zndvcv6wgzwgn7324cbfjja6xd7r0k936zdy"))
19947 (file-name (git-file-name name version))))
19948 (build-system emacs-build-system)
19949 (inputs
19950 `(("perl" ,perl)
19951 ("perl-rpc-epc-service" ,perl-rpc-epc-service)
19952 ("perl-dbi" ,perl-dbi)
19953 ;; TODO: Adding support for perl-dbd-mysql and others would
19954 ;; dramatically increase the closure size. Make several packages?
19955 ("perl-dbd-sqlite" ,perl-dbd-sqlite)))
19956 (propagated-inputs
19957 `(("emacs-e2wm" ,emacs-e2wm)
19958 ("emacs-epc" ,emacs-epc)))
19959 (arguments
19960 `(#:include '("\\.el$" "\\.pl$")
19961 #:phases
19962 (modify-phases %standard-phases
19963 (add-after 'install 'patch-path
19964 (lambda* (#:key inputs outputs #:allow-other-keys)
19965 (let ((perl (assoc-ref inputs "perl"))
19966 (dir (string-append (assoc-ref outputs "out")
19967 "/share/emacs/site-lisp")))
19968 (substitute* (string-append dir "/edbi.el")
19969 (("\"perl\"") (string-append "\"" perl "/bin/perl\"")))
19970 (chmod (string-append dir "/edbi-bridge.pl") #o555)
19971 (wrap-program (string-append dir "/edbi-bridge.pl")
19972 `("PERL5LIB" ":" prefix (,(getenv "PERL5LIB"))))
19973 #t))))))
19974 (synopsis "Database Interface for Emacs Lisp")
19975 (description "This program connects the database server through Perl's
19976 DBI, and provides DB-accessing API and the simple management UI.")
19977 (license license:gpl3+))))
19978
19979 (define-public emacs-edbi-sqlite
19980 (let ((commit "52cb9ca1af7691b592f2cfd2f007847e7a4ccd5f"))
19981 (package
19982 (name "emacs-edbi-sqlite")
19983 (version (git-version "0.1.1" "1" commit))
19984 (home-page "https://github.com/proofit404/edbi-sqlite")
19985 (source (origin
19986 (method git-fetch)
19987 (uri (git-reference
19988 (url home-page)
19989 (commit commit)))
19990 (sha256
19991 (base32
19992 "1vll81386fx90lq5sy4rlxcik6mvw7zx5cc51f0yaca9bkcckp51"))
19993 (file-name (git-file-name name version))))
19994 (build-system emacs-build-system)
19995 (propagated-inputs
19996 `(("emacs-edbi" ,emacs-edbi)))
19997 (synopsis "Open SQLite files in Emacs")
19998 (description "This package is a convenience wrapper for @command{edbi}
19999 to open SQLite databases.")
20000 (license license:gpl3+))))
20001
20002 (define-public emacs-nix-mode
20003 (package
20004 (name "emacs-nix-mode")
20005 (version "1.4.5")
20006 (source
20007 (origin
20008 (method git-fetch)
20009 (uri (git-reference
20010 (url "https://github.com/NixOS/nix-mode")
20011 (commit (string-append "v" version))))
20012 (file-name (git-file-name name version))
20013 (sha256
20014 (base32 "1bqlhkxg0faddhvxx909dq46dxdxk4mdyhdpww92dmzgxdpq38sx"))))
20015 (build-system emacs-build-system)
20016 (inputs
20017 `(("emacs-company" ,emacs-company)
20018 ("emacs-json-mode" ,emacs-json-mode)
20019 ("emacs-mmm-mode" ,emacs-mmm-mode)))
20020 (home-page "https://github.com/NixOS/nix-mode")
20021 (synopsis "Emacs major mode for editing Nix expressions")
20022 (description "@code{nixos-mode} provides an Emacs major mode for editing
20023 Nix expressions. It supports syntax highlighting, indenting and refilling of
20024 comments.")
20025 (license license:lgpl2.1+)))
20026
20027 (define-public emacs-libmpdel
20028 (package
20029 (name "emacs-libmpdel")
20030 (version "1.1.2")
20031 (source (origin
20032 (method git-fetch)
20033 (uri (git-reference
20034 (url "https://gitea.petton.fr/mpdel/libmpdel.git")
20035 (commit (string-append "v" version))))
20036 (file-name (git-file-name name version))
20037 (sha256
20038 (base32
20039 "0dnjndpv6bmz5blfs75ynmbm32g23l4slg5p3941b1i94a08qzpy"))))
20040 (build-system emacs-build-system)
20041 (home-page "https://gitea.petton.fr/mpdel/libmpdel")
20042 (synopsis "Emacs library to communicate with Music Player Daemon (MPD)")
20043 (description
20044 "An Emacs library client to communicate with Music Player Daemon (MPD), a
20045 flexible, powerful, server-side application for playing music.")
20046 (license license:gpl3+)))
20047
20048 (define-public emacs-mpdel
20049 (package
20050 (name "emacs-mpdel")
20051 (version "1.0.0")
20052 (source
20053 (origin
20054 (method git-fetch)
20055 (uri (git-reference
20056 (url "https://gitea.petton.fr/mpdel/mpdel.git")
20057 (commit (string-append "v" version))))
20058 (file-name (git-file-name name version))
20059 (sha256
20060 (base32
20061 "0pyyvbzskr44dxbmlp3y0r6s459fd51cvwjmnjaqxfxflr5v891g"))))
20062 (build-system emacs-build-system)
20063 (inputs
20064 `(("emacs-libmpdel" ,emacs-libmpdel)))
20065 (home-page "https://gitea.petton.fr/mpdel/mpdel")
20066 (synopsis "Emacs user interface for Music Player Daemon (MPD)")
20067 (description
20068 "MPDel provides an Emacs user interface to control playback (play, pause,
20069 next, volume) and display and control the current playlist as well as your
20070 stored playlists.")
20071 (license license:gpl3+)))
20072
20073 (define-public emacs-vterm
20074 (let ((version "0")
20075 (revision "3")
20076 (commit "14e4afdfc160b2e625c3e483d169786ac00cb4fe"))
20077 (package
20078 (name "emacs-vterm")
20079 (version (git-version version revision commit))
20080 (source (origin
20081 (method git-fetch)
20082 (uri (git-reference
20083 (url "https://github.com/akermu/emacs-libvterm")
20084 (commit commit)))
20085 (file-name (git-file-name name version))
20086 (sha256
20087 (base32
20088 "0wl613rxw493i3397n34qwqnd5fkyqrnn1fx3y2040xhvjl9rx70"))))
20089 (build-system emacs-build-system)
20090 (arguments
20091 `(#:modules ((guix build emacs-build-system)
20092 ((guix build cmake-build-system) #:prefix cmake:)
20093 (guix build emacs-utils)
20094 (guix build utils))
20095 #:imported-modules (,@%emacs-build-system-modules
20096 (guix build cmake-build-system))
20097 #:phases
20098 (modify-phases %standard-phases
20099 (add-before 'add-source-to-load-path 'substitute-vterm-module-path
20100 (lambda* (#:key outputs #:allow-other-keys)
20101 (chmod "vterm.el" #o644)
20102 (emacs-substitute-sexps "vterm.el"
20103 ("(require 'vterm-module nil t)"
20104 `(module-load
20105 ,(string-append (assoc-ref outputs "out")
20106 "/lib/vterm-module.so"))))
20107 #t))
20108 (add-after 'build 'configure
20109 ;; Run cmake.
20110 (lambda* (#:key outputs #:allow-other-keys)
20111 ((assoc-ref cmake:%standard-phases 'configure)
20112 #:outputs outputs
20113 #:out-of-source? #f
20114 #:configure-flags '("-DUSE_SYSTEM_LIBVTERM=ON"))
20115 #t))
20116 (add-after 'configure 'make
20117 ;; Run make.
20118 (lambda* (#:key (make-flags '()) outputs #:allow-other-keys)
20119 ;; Compile the shared object file.
20120 (apply invoke "make" "all" make-flags)
20121 ;; Move the file into /lib.
20122 (install-file
20123 "vterm-module.so"
20124 (string-append (assoc-ref outputs "out") "/lib"))
20125 #t)))
20126 #:tests? #f))
20127 (native-inputs
20128 `(("cmake" ,cmake-minimal)
20129 ("libtool" ,libtool)
20130 ("libvterm" ,libvterm)))
20131 (home-page "https://github.com/akermu/emacs-libvterm")
20132 (synopsis "Emacs libvterm integration")
20133 (description "This package implements a bridge to @code{libvterm} to
20134 display a terminal in an Emacs buffer.")
20135 (license license:gpl3+))))
20136
20137 (define-public emacs-simple-mpc
20138 ;; There have been no releases.
20139 (let ((commit "bee8520e81292b4c7353e45b193f9a13b482f5b2")
20140 (revision "1"))
20141 (package
20142 (name "emacs-simple-mpc")
20143 (version (git-version "0" revision commit))
20144 (source
20145 (origin
20146 (method git-fetch)
20147 (uri (git-reference
20148 (url "https://github.com/jorenvo/simple-mpc")
20149 (commit commit)))
20150 (file-name (git-file-name name version))
20151 (sha256
20152 (base32
20153 "1ja06pv007cmzjjgka95jlg31k7d29jrih1yxyblsxv85s9sg21q"))))
20154 (build-system emacs-build-system)
20155 (propagated-inputs `(("emacs-s" ,emacs-s)))
20156 (home-page "https://github.com/jorenvo/simple-mpc")
20157 (synopsis "Simple Emacs frontend to mpc")
20158 (description "This package provides an Emacs major mode which acts as a
20159 front end to mpc, a client for the @dfn{Music Player Daemon} (MPD).")
20160 (license license:gpl3+))))
20161
20162 (define-public emacs-mkmcc-gnuplot-mode
20163 (package
20164 (name "emacs-mkmcc-gnuplot-mode")
20165 (version "1.2.0")
20166 (source
20167 (origin
20168 (method git-fetch)
20169 (uri (git-reference
20170 (url "https://github.com/mkmcc/gnuplot-mode")
20171 (commit "601f6392986f0cba332c87678d31ae0d0a496ce7")))
20172 (file-name (git-file-name name version))
20173 (sha256
20174 (base32
20175 "14f0yh1rjqc3337j4sbqzfb7pjim2c8a7wk1a73xkrdkmjn82vgb"))))
20176 (build-system emacs-build-system)
20177 (home-page "https://mkmcc.github.io/software/gnuplot-mode.html")
20178 (synopsis "Minimal emacs major mode for editing gnuplot scripts")
20179 (description "@code{emacs-mkmcc-gnuplot-mode} is a minimal emacs major
20180 mode for editing gnuplot scripts. It provides syntax highlighting,
20181 indentation and a command to plot the file.")
20182 (license license:gpl3+)))
20183
20184 (define-public emacs-cmake-font-lock
20185 (let ((commit "e0ceaaae19c13b66f781512e3295bfc6707b56f4")
20186 (revision "1"))
20187 (package
20188 (name "emacs-cmake-font-lock")
20189 (version (git-version "0.1.5" revision commit))
20190 (source (origin
20191 (method git-fetch)
20192 (uri (git-reference
20193 (url "https://github.com/Lindydancer/cmake-font-lock")
20194 (commit commit)))
20195 (file-name (git-file-name name version))
20196 (sha256
20197 (base32
20198 "03gsyn95dlmsn15bl353bphi3qy7ccn5bss3f7n97kf38bllh0yf"))))
20199 (build-system emacs-build-system)
20200 (native-inputs
20201 `(("emacs-faceup" ,emacs-faceup)))
20202 (arguments
20203 `(#:include (cons "^admin\\/" %default-include)))
20204 (home-page "https://github.com/Lindydancer/cmake-font-lock")
20205 (synopsis "Advanced type-aware syntax-highlighting for CMake")
20206 (description "This package highlights function arguments in CMake
20207 according to their use.")
20208 (license license:gpl3+))))
20209
20210 (define-public emacs-dtrt-indent
20211 (package
20212 (name "emacs-dtrt-indent")
20213 (version "1.2")
20214 (source (origin
20215 (method git-fetch)
20216 (uri (git-reference
20217 (url "https://github.com/jscheid/dtrt-indent")
20218 (commit version)))
20219 (file-name (git-file-name name version))
20220 (sha256
20221 (base32
20222 "0p5v5xwr0s59hv3s0f85byafphc85qv76g41crad9fhnxzab9rly"))))
20223 (build-system emacs-build-system)
20224 (home-page "https://github.com/jscheid/dtrt-indent")
20225 (synopsis "Minor mode that guesses the indentation offset")
20226 (description "This package provides a minor mode that guesses the
20227 indentation offset originally used for creating source code files and
20228 transparently adjusts the corresponding settings in Emacs, making it more
20229 convenient to edit foreign files.")
20230 (license license:gpl2+)))
20231
20232 (define-public emacs-repo
20233 (package
20234 (name "emacs-repo")
20235 (version "0.1.3")
20236 (source (origin
20237 (method git-fetch)
20238 (uri (git-reference
20239 (url "https://github.com/canatella/repo-el")
20240 (commit version)))
20241 (file-name (git-file-name name version))
20242 (sha256
20243 (base32
20244 "0rbvcvm7bfr6ncji7cllfxyyr6x7n9fx863byp243phsj3n93adz"))))
20245 (build-system emacs-build-system)
20246 (native-inputs
20247 `(("emacs-el-mock" ,emacs-el-mock)
20248 ("ert-runner" ,emacs-ert-runner)))
20249 (propagated-inputs
20250 `(("emacs-f" ,emacs-f)
20251 ("magit" ,emacs-magit)))
20252 (home-page "https://github.com/canatella/repo-el")
20253 (synopsis "Emacs interface for the Google Repo tool")
20254 (description "This package provides integration of the Google Repo tool
20255 with emacs. It displays the output of the @code{repo status} command in a
20256 buffer and launches Magit from the status buffer for the project at point.")
20257 (license license:gpl3+)))
20258
20259 (define-public emacs-alect-themes
20260 (package
20261 (name "emacs-alect-themes")
20262 (version "0.9")
20263 (source (origin
20264 (method git-fetch)
20265 (uri (git-reference
20266 (url "https://github.com/alezost/alect-themes")
20267 (commit (string-append "v" version))))
20268 (file-name (git-file-name name version))
20269 (sha256
20270 (base32
20271 "0nffxpdm0sa7bynwi0rmlwpc4qmvbda5ankhzz7fmk4ap9fkjxv9"))))
20272 (build-system emacs-build-system)
20273 (home-page "https://github.com/alezost/alect-themes")
20274 (synopsis "Low contrast, light, dark and black color theme for Emacs")
20275 (description "@code{emacs-alect-themes} provides configurable light, dark
20276 and black color themes for Emacs. The themes are intended to be used with
20277 GUI.")
20278 (license license:gpl3+)))
20279
20280 (define-public emacs-google-c-style
20281 (let ((commit "6271f3f473ceb3a7fef99388a3040903b1a145f1")
20282 (revision "0"))
20283 (package
20284 (name "emacs-google-c-style")
20285 (version (git-version "0.1" revision commit))
20286 (source (origin
20287 (method git-fetch)
20288 (uri (git-reference
20289 (url "https://github.com/google/styleguide")
20290 (commit commit)))
20291 (file-name (git-file-name name version))
20292 (sha256
20293 (base32
20294 "1jghyyasdl15c4gaqaxmdn43am63k6bykn5ab83f1ahv9zi1krxk"))))
20295 (build-system emacs-build-system)
20296 (home-page "https://github.com/google/styleguide")
20297 (synopsis "Emacs settings file for Google C/C++ style")
20298 (description "@code{emacs-google-c-style} provides an Emacs settings
20299 file for Google C and C++ style.")
20300 (license license:gpl1+))))
20301
20302 (define-public emacs-redshank
20303 (let ((commit "f98e68f532e622bcd464292ca4a9cf5fbea14ebb")
20304 (revision "1"))
20305 (package
20306 (name "emacs-redshank")
20307 (version (git-version "0.1" revision commit))
20308 (source (origin
20309 (method git-fetch)
20310 (uri (git-reference
20311 (url "http://www.foldr.org/~michaelw/projects/redshank.git")
20312 (commit commit)))
20313 (file-name (git-file-name name version))
20314 (sha256
20315 (base32
20316 "1jdkgvd5xy9hl5q611jwah2n05abjp7qcy9sj4k1z11x0ii62b6p"))))
20317 (build-system emacs-build-system)
20318 (propagated-inputs
20319 `(("emacs-paredit" ,emacs-paredit)))
20320 (home-page "http://www.foldr.org/~michaelw/emacs/redshank/")
20321 (synopsis "Common Lisp Editing Extensions (for Emacs)")
20322 (description "Redshank is a collection of code-wrangling Emacs macros
20323 mostly geared towards Common Lisp, but some are useful for other Lisp
20324 dialects, too. Redshank's code transformations aim to be expression-based (as
20325 opposed to character-based).")
20326 (license license:gpl1+))))
20327
20328 (define-public emacs-disk-usage
20329 (package
20330 (name "emacs-disk-usage")
20331 (version "1.3.3")
20332 (source
20333 (origin
20334 (method git-fetch)
20335 (uri (git-reference
20336 (url "https://gitlab.com/Ambrevar/emacs-disk-usage.git")
20337 (commit version)))
20338 (file-name (git-file-name name version))
20339 (sha256
20340 (base32
20341 "0hv2gsd8k5fbjgckgiyisq4rn1i7y4rchbjy8kmixjv6mx563bll"))))
20342 (build-system emacs-build-system)
20343 (home-page "https://gitlab.com/Ambrevar/emacs-disk-usage")
20344 (synopsis "Sort and browse disk usage listings with Emacs")
20345 (description "Disk Usage is a file system analyzer: it offers a tabulated
20346 view of file listings sorted by size. Directory sizes are computed
20347 recursively. The results are cached for speed.")
20348 (license license:gpl3+)))
20349
20350 (define-public emacs-orgit
20351 (package
20352 (name "emacs-orgit")
20353 (version "1.5.3")
20354 (home-page "https://github.com/magit/orgit")
20355 (source (origin
20356 (method git-fetch)
20357 (uri (git-reference
20358 (url home-page)
20359 (commit (string-append "v" version))))
20360 (file-name (git-file-name name version))
20361 (sha256
20362 (base32
20363 "1ywavzki510rslsgfm0cnn3mlh644p61ha2nfb715xhkg7cd3j9g"))))
20364 (build-system emacs-build-system)
20365 (propagated-inputs
20366 `(("emacs-dash" ,emacs-dash)
20367 ("emacs-magit" ,emacs-magit)))
20368 (synopsis "Support for Org links to Magit buffers")
20369 (description "This package defines several Org link types, which can be
20370 used to link to certain Magit buffers. Use the command
20371 @command{org-store-link} while such a buffer is current to store a link.
20372 Later you can insert it into an Org buffer using the command
20373 @code{org-insert-link}.")
20374 (license license:gpl3+)))
20375
20376 (define-public emacs-amx
20377 (package
20378 (name "emacs-amx")
20379 (version "3.3")
20380 (source
20381 (origin
20382 (method git-fetch)
20383 (uri (git-reference
20384 (url "https://github.com/DarwinAwardWinner/amx")
20385 (commit (string-append "v" version))))
20386 (file-name (git-file-name name version))
20387 (sha256
20388 (base32 "0ikjzs119g57cwh2v3jmy63lggqc0ib99q5gsl93slkk4y2ihavw"))))
20389 (build-system emacs-build-system)
20390 (propagated-inputs
20391 `(("emacs-s" ,emacs-s)))
20392 (home-page "https://github.com/DarwinAwardWinner/amx")
20393 (synopsis "Alternative M-x interface for Emacs")
20394 (description "Amx is an alternative interface for M-x in Emacs. It
20395 provides several enhancements over the ordinary
20396 @code{execute-extended-command}, such as prioritizing your most-used commands
20397 in the completion list and showing keyboard shortcuts, and it supports several
20398 completion systems for selecting commands, such as Ido and Ivy.")
20399 (license license:gpl3+)))
20400
20401 (define-public emacs-lorem-ipsum
20402 (let ((commit "4b39f6fed455d67f635b3837cf5668bf74d0f6cd"))
20403 (package
20404 (name "emacs-lorem-ipsum")
20405 (version (git-version "0.2" "1" commit))
20406 (home-page "https://github.com/jschaf/emacs-lorem-ipsum/")
20407 (source (origin
20408 (method git-fetch)
20409 (uri (git-reference
20410 (url home-page)
20411 (commit commit)))
20412 (file-name (git-file-name name version))
20413 (sha256
20414 (base32
20415 "0a3b18p3vdjci89prsgdzjnfxsl8p67vjhf8ai4qdng7zvh50lir"))))
20416 (build-system emacs-build-system)
20417 (synopsis "Insert dummy pseudo Latin text in Emacs")
20418 (description "This package provides convenience functions to insert
20419 dummy Latin text into a buffer. This can be useful if you need to produce
20420 paragraphs or pages of text for testing purposes.")
20421 (license license:gpl3+))))
20422
20423 (define-public emacs-lisp-extra-font-lock
20424 (let ((commit "4605eccbe1a7fcbd3cacf5b71249435413b4db4f"))
20425 (package
20426 (name "emacs-lisp-extra-font-lock")
20427 (version (git-version "0.0.6" "1" commit))
20428 (home-page "https://github.com/Lindydancer/lisp-extra-font-lock")
20429 (source (origin
20430 (method git-fetch)
20431 (uri (git-reference
20432 (url home-page)
20433 (commit commit)))
20434 (file-name (git-file-name name version))
20435 (sha256
20436 (base32
20437 "152vcp3mdlv33jf5va4rinl1d0k960gnfhbrqqrafazgx9j3ya8w"))))
20438 (build-system emacs-build-system)
20439 (synopsis "Highlight bound variables and quoted expressions in Emacs")
20440 (description "This package highlight the location where local variables
20441 is created (bound, for example, by let) as well as quoted and backquoted
20442 constant expressions.")
20443 (license license:gpl3+))))
20444
20445 (define-public emacs-docker-tramp
20446 (package
20447 (name "emacs-docker-tramp")
20448 (version "0.1")
20449 (source
20450 (origin
20451 (method git-fetch)
20452 (uri (git-reference
20453 (url "https://github.com/emacs-pe/docker-tramp.el")
20454 (commit (string-append "v" version))))
20455 (file-name (git-file-name name version))
20456 (sha256
20457 (base32
20458 "0lxvzmfg52fhxrhbvp92zwp7cv4i1rlxnkyyzgngj3sjm7y60yvg"))))
20459 (build-system emacs-build-system)
20460 (home-page "https://github.com/emacs-pe/docker-tramp.el")
20461 (synopsis "TRAMP integration for docker containers")
20462 (description
20463 "This package provides a TRAMP method for Docker containers.")
20464 (license license:gpl3+)))
20465
20466 (define-public emacs-docker
20467 (package
20468 (name "emacs-docker")
20469 (version "1.3.0")
20470 (source (origin
20471 (method git-fetch)
20472 (uri (git-reference
20473 (url "https://github.com/Silex/docker.el")
20474 (commit version)))
20475 (file-name (git-file-name name version))
20476 (sha256
20477 (base32
20478 "1g8r1faqp0z0vqp9qrl8m84pa0v2ddvc91klphdkfmldwv7rfipw"))))
20479 (inputs
20480 `(("emacs-undercover" ,emacs-undercover)))
20481 (propagated-inputs
20482 `(("emacs-dash" ,emacs-dash)
20483 ("emacs-docker-tramp" ,emacs-docker-tramp)
20484 ("emacs-magit-popup" ,emacs-magit-popup)
20485 ("emacs-s" ,emacs-s)
20486 ("emacs-tablist" ,emacs-tablist)
20487 ("emacs-json-mode" ,emacs-json-mode)))
20488 (arguments
20489 `(#:phases
20490 (modify-phases %standard-phases
20491 (delete 'check)))) ;no tests
20492 (build-system emacs-build-system)
20493 (home-page "https://github.com/Silex/docker.el")
20494 (synopsis "Manage docker from Emacs")
20495 (description "This package provides an Emacs interface for Docker.")
20496 (license license:gpl3+)))
20497
20498 (define-public emacs-dockerfile-mode
20499 (package
20500 (name "emacs-dockerfile-mode")
20501 (version "1.3")
20502 (source
20503 (origin
20504 (method git-fetch)
20505 (uri (git-reference
20506 (url "https://github.com/spotify/dockerfile-mode")
20507 (commit (string-append "v" version))))
20508 (file-name (git-file-name name version))
20509 (sha256
20510 (base32
20511 "1br73dsls42fn4rwagljkpa3l4wwj6f7jxfn3gmgl6c54z81av3v"))))
20512 (build-system emacs-build-system)
20513 (propagated-inputs
20514 `(("emacs-s" ,emacs-s)))
20515 (home-page "https://github.com/spotify/dockerfile-mode")
20516 (synopsis "Major mode for editing Dockerfile")
20517 (description
20518 "This package provides a major mode @code{dockerfile-mode} for use with
20519 the standard @code{Dockerfile} file format.")
20520 (license license:asl2.0)))
20521
20522 (define-public emacs-lsp-mode
20523 (package
20524 (name "emacs-lsp-mode")
20525 (version "7.0.1")
20526 (source
20527 (origin
20528 (method git-fetch)
20529 (uri (git-reference
20530 (url "https://github.com/emacs-lsp/lsp-mode")
20531 (commit version)))
20532 (file-name (git-file-name name version))
20533 (sha256
20534 (base32 "1z8zm7qr21hvhl6rnbznv2l9drh1pp5y4zkjrx5ac4x77b8i4aaz"))))
20535 (build-system emacs-build-system)
20536 (propagated-inputs
20537 `(("emacs-dash" ,emacs-dash)
20538 ("emacs-f" ,emacs-f)
20539 ("emacs-ht" ,emacs-ht)
20540 ("emacs-hydra" ,emacs-hydra)
20541 ("emacs-markdown-mode" ,emacs-markdown-mode)
20542 ("emacs-spinner" ,emacs-spinner)))
20543 (home-page "https://emacs-lsp.github.io/lsp-mode/")
20544 (synopsis "Emacs client and library for the Language Server Protocol")
20545 (description
20546 "LSP mode is a client and library implementation for the Language Server
20547 Protocol. This mode creates an IDE-like experience by providing optional
20548 integration with other popular Emacs packages like Company, Flycheck, and
20549 Projectile.")
20550 (license license:gpl3+)))
20551
20552 (define-public emacs-pfuture
20553 (package
20554 (name "emacs-pfuture")
20555 (version "1.9")
20556 (source (origin
20557 (method git-fetch)
20558 (uri (git-reference
20559 (url "https://github.com/Alexander-Miller/pfuture")
20560 (commit version)))
20561 (file-name (git-file-name name version))
20562 (sha256
20563 (base32
20564 "1chpin5277vbl2xvsl04pzzk7a9dbcvclibm2496gz6yvd19pwsf"))))
20565 (build-system emacs-build-system)
20566 (home-page
20567 "https://github.com/Alexander-Miller/pfuture")
20568 (synopsis "Simple wrapper around asynchronous processes for Emacs")
20569 (description "This package provides a simple wrapper around asynchronous
20570 processes for Emacs")
20571 (license license:gpl3+)))
20572
20573 (define-public emacs-treemacs
20574 (package
20575 (name "emacs-treemacs")
20576 (version "2.8")
20577 (source (origin
20578 (method git-fetch)
20579 (uri (git-reference
20580 (url "https://github.com/Alexander-Miller/treemacs")
20581 (commit version)))
20582 (file-name (git-file-name name version))
20583 (sha256
20584 (base32
20585 "0m083g3pg0n4ymi1w0jx34awr7cqbm4r561adij9kklblxsz7sc2"))))
20586 (build-system emacs-build-system)
20587 (propagated-inputs
20588 `(("emacs-ace-window" ,emacs-ace-window)
20589 ("emacs-dash" ,emacs-dash)
20590 ("emacs-f" ,emacs-f)
20591 ("emacs-ht" ,emacs-ht)
20592 ("emacs-hydra" ,emacs-hydra)
20593 ("emacs-pfuture" ,emacs-pfuture)
20594 ("emacs-s" ,emacs-s)))
20595 (native-inputs
20596 `(("emacs-buttercup" ,emacs-buttercup)
20597 ("emacs-el-mock" ,emacs-el-mock)))
20598 (inputs
20599 `(("python" ,python)))
20600 (arguments
20601 `(#:tests? #t
20602 #:phases
20603 (modify-phases %standard-phases
20604 (add-after 'unpack 'fix-makefile
20605 (lambda _
20606 (substitute* "Makefile"
20607 (("@\\$\\(CASK\\) exec ") "")
20608 ;; Guix does not need to prepare dependencies before testing.
20609 (("test: prepare") "test:"))
20610 #t))
20611 (add-after 'fix-makefile 'chdir-elisp
20612 ;; Elisp directory is not in root of the source.
20613 (lambda _
20614 (chdir "src/elisp")))
20615 (replace 'check
20616 ;; FIXME: Work around ‘treemacs--parse-collapsed-dirs’ and
20617 ;; `treemacs-collect-child-nodes' test failures.
20618 (lambda _
20619 (with-directory-excursion "../.." ;treemacs root
20620 (chmod "test/test-treemacs.el" #o644)
20621 (emacs-substitute-sexps "test/test-treemacs.el"
20622 ("(describe \"treemacs--parse-collapsed-dirs\"" "")
20623 ("\"Finds only direct childre\"" ""))
20624 (invoke "make" "test"))))
20625 (add-before 'install 'patch-paths
20626 (lambda* (#:key inputs outputs #:allow-other-keys)
20627 (with-directory-excursion "../.." ;treemacs root
20628 (chmod "src/elisp/treemacs-core-utils.el" #o644)
20629 (emacs-substitute-variables "src/elisp/treemacs-core-utils.el"
20630 ("treemacs-dir"
20631 (string-append (assoc-ref outputs "out") "/")))
20632 (chmod "src/elisp/treemacs-icons.el" #o644)
20633 (substitute* "src/elisp/treemacs-icons.el"
20634 (("icons/default") "share/emacs-treemacs/images"))
20635 (chmod "src/elisp/treemacs-customization.el" #o644)
20636 (emacs-substitute-variables "src/elisp/treemacs-customization.el"
20637 ("treemacs-python-executable"
20638 (string-append (assoc-ref inputs "python") "/bin/python3")))
20639 (chmod "src/elisp/treemacs-async.el" #o644)
20640 (substitute* "src/elisp/treemacs-async.el"
20641 (("src/scripts") (string-append "share/" ,name "/scripts"))))
20642 #t))
20643 (add-after 'install 'install-data
20644 (lambda* (#:key outputs #:allow-other-keys)
20645 (let ((out (assoc-ref outputs "out")))
20646 (with-directory-excursion "../.." ;treemacs root
20647 (copy-recursively "icons/default"
20648 (string-append out "/share/" ,name "/images"))
20649 (copy-recursively
20650 "src/scripts"
20651 (string-append out "/share/" ,name "/scripts"))
20652 #t)))))))
20653 (home-page "https://github.com/Alexander-Miller/treemacs")
20654 (synopsis "Emacs tree style file explorer")
20655 (description
20656 "Treemacs is a file and project explorer similar to NeoTree or Vim's
20657 NerdTree, but largely inspired by the Project Explorer in Eclipse. It shows
20658 the file system outlines of your projects in a simple tree layout allowing
20659 quick navigation and exploration, while also possessing basic file management
20660 utilities.")
20661 (license license:gpl3+)))
20662
20663 (define-public emacs-treemacs-extra
20664 (package
20665 (inherit emacs-treemacs)
20666 (name "emacs-treemacs-extra")
20667 (propagated-inputs
20668 `(,@(package-propagated-inputs emacs-treemacs)
20669 ("emacs-evil" ,emacs-evil)
20670 ("emacs-magit" ,emacs-magit)
20671 ("emacs-projectile" ,emacs-projectile)
20672 ("emacs-persp-mode" ,emacs-persp-mode)))
20673 (arguments
20674 (substitute-keyword-arguments
20675 (package-arguments emacs-treemacs)
20676 ((#:phases phases)
20677 `(modify-phases ,phases
20678 (add-after 'chdir-elisp 'copy-extra
20679 (lambda _
20680 (copy-recursively "../extra" ".")))))))))
20681
20682 (define-public emacs-libyaml
20683 ;; Upstream made no release so far.
20684 (let ((version "0")
20685 (revision "1")
20686 (commit "703e0d448c7ee24e25b513a3c65980c80e166805"))
20687 (package
20688 (name "emacs-libyaml")
20689 (version (git-version version revision commit))
20690 (source
20691 (origin
20692 (method git-fetch)
20693 (uri (git-reference
20694 (url "https://github.com/syohex/emacs-libyaml")
20695 (commit commit)))
20696 (file-name (git-file-name name version))
20697 (sha256
20698 (base32 "08l7pm9v50ykd3fkbm0bh2kcd57cadbc5i9r6rj51vd32w3pl2yl"))))
20699 (build-system emacs-build-system)
20700 (arguments
20701 `(#:tests? #f ;no test
20702 #:modules ((guix build emacs-build-system)
20703 (guix build emacs-utils)
20704 (guix build utils))
20705 #:imported-modules (,@%emacs-build-system-modules
20706 (guix build gnu-build-system))
20707 #:phases
20708 (modify-phases %standard-phases
20709 (add-before 'add-source-to-load-path 'substitute-libyaml-core-path
20710 (lambda* (#:key outputs #:allow-other-keys)
20711 (chmod "libyaml.el" #o644)
20712 (substitute* "libyaml.el"
20713 (("^\\(require 'libyaml-core\\)")
20714 (string-append "(module-load \"" (assoc-ref outputs "out")
20715 "/lib/libyaml-core.so\")")))
20716 #t))
20717 (add-after 'check 'make
20718 ;; Run make.
20719 (lambda* (#:key (make-flags '()) outputs #:allow-other-keys)
20720 ;; Compile the shared object file.
20721 (apply invoke "make" "all" "CPPFLAGS=" make-flags)
20722 ;; Move the file into /lib.
20723 (install-file "libyaml-core.so"
20724 (string-append (assoc-ref outputs "out") "/lib"))
20725 #t)))))
20726 (native-inputs `(("libyaml" ,libyaml)))
20727 (home-page "https://github.com/syohex/emacs-libyaml")
20728 (synopsis "Libyaml bindings for Emacs")
20729 (description
20730 "This package implements bindings for LibYAML to be able to parse YAML
20731 files in Elisp.")
20732 (license license:gpl3+))))
20733
20734 (define-public emacs-lsp-java
20735 (package
20736 (name "emacs-lsp-java")
20737 (version "2.2")
20738 (source (origin
20739 (method git-fetch)
20740 (uri (git-reference
20741 (url "https://github.com/emacs-lsp/lsp-java")
20742 (commit version)))
20743 (file-name (git-file-name name version))
20744 (sha256
20745 (base32
20746 "0hcnvbyaqyypgby1bfj4zbrbq97amk8hfx0sj4w73rl46yf4jk3j"))))
20747 (build-system emacs-build-system)
20748 (propagated-inputs
20749 `(("emacs-lsp-mode" ,emacs-lsp-mode)
20750 ("emacs-markdown-mode" ,emacs-markdown-mode)
20751 ("emacs-dash" ,emacs-dash)
20752 ("emacs-f" ,emacs-f)
20753 ("emacs-ht" ,emacs-ht)
20754 ("emacs-request" ,emacs-request)
20755 ("emacs-treemacs" ,emacs-treemacs)))
20756 (home-page "https://github.com/emacs-lsp/lsp-java/")
20757 (synopsis "Java support for lsp-mode")
20758 (description "Emacs Java IDE using Eclipse JDT Language Server.")
20759 (license license:gpl3+)))
20760
20761 (define-public emacs-lsp-ui
20762 (package
20763 (name "emacs-lsp-ui")
20764 (version "7.0.1")
20765 (source (origin
20766 (method git-fetch)
20767 (uri (git-reference
20768 (url "https://github.com/emacs-lsp/lsp-ui")
20769 (commit version)))
20770 (file-name (git-file-name name version))
20771 (sha256
20772 (base32
20773 "09dmhhxmfjnzdc5kygwsjf8nwqlnq9rbgrca679s2wy93miqj7vc"))))
20774 (build-system emacs-build-system)
20775 (propagated-inputs
20776 `(("emacs-dash" ,emacs-dash)
20777 ("emacs-lsp-mode" ,emacs-lsp-mode)
20778 ("emacs-markdown-mode" ,emacs-markdown-mode)
20779 ("emacs-flycheck" ,emacs-flycheck)))
20780 (home-page "https://github.com/emacs-lsp/lsp-ui")
20781 (synopsis "User interface extensions for @code{lsp-mode}")
20782 (description
20783 "@code{LSP-ui} contains several enhancements and integrations for
20784 @code{lsp-mode}, such as visual flychecking, displaying references in-line,
20785 and code peeking.")
20786 (license license:gpl3+)))
20787
20788 (define-public emacs-lsp-lua-emmy
20789 (let ((commit "ab53fb2a8b8942804eb75bab5624fd19f1d360bf"))
20790 (package
20791 (name "emacs-lsp-lua-emmy")
20792 (version (git-version "0.1.0" "1" commit))
20793 (source (origin
20794 (method git-fetch)
20795 (uri (git-reference
20796 (url "https://github.com/phenix3443/lsp-lua-emmy")
20797 (commit commit)))
20798 (file-name (git-file-name name version))
20799 (sha256
20800 (base32
20801 "0rbizis73n1w5ig07fj1han74chbc1zpbp5bn37rj0gz608aqka8"))))
20802 (build-system emacs-build-system)
20803 (propagated-inputs
20804 `(("emacs-lsp-mode" ,emacs-lsp-mode)))
20805 (home-page "https://github.com/phenix3443/lsp-lua-emmy/")
20806 (synopsis "Lua support in @code{lsp-mode} client for Emacs")
20807 (description "This package provides a Lua language support in
20808 @code{lsp-mode} client for Emacs.")
20809 (license license:gpl3+))))
20810
20811 (define-public emacs-lsp-ivy
20812 (let ((commit "caf1e1d7e22ed0b5fe18dd508d1a6f83dd163288")
20813 (revision "2"))
20814 (package
20815 (name "emacs-lsp-ivy")
20816 (version (git-version "0.1" revision commit))
20817 (source (origin
20818 (method git-fetch)
20819 (uri (git-reference
20820 (url "https://github.com/emacs-lsp/lsp-ivy")
20821 (commit commit)))
20822 (file-name (git-file-name name version))
20823 (sha256
20824 (base32
20825 "084ds4qhzhivfnicy3h7z4mblxgcqx8pfnkbjr9qjrfng7cisy4z"))))
20826 (build-system emacs-build-system)
20827 (propagated-inputs
20828 `(("emacs-ivy" ,emacs-ivy)
20829 ("emacs-lsp-mode" ,emacs-lsp-mode)
20830 ("emacs-dash" ,emacs-dash)))
20831 (home-page "https://github.com/emacs-lsp/lsp-ivy")
20832 (synopsis "Provide LSP-enhanced completion for symbols")
20833 (description
20834 "This package enhances @code{ivy} with completion for symbols from
20835 workspaces with a LSP-compliant server running.")
20836 (license license:gpl3+))))
20837
20838 (define-public emacs-helm-lsp
20839 (let ((commit "3a58ca4cfd94b9ab1e15e819d3b16ef568e8889b")
20840 (revision "1"))
20841 (package
20842 (name "emacs-helm-lsp")
20843 (version (git-version "0.1" revision commit))
20844 (source (origin
20845 (method git-fetch)
20846 (uri (git-reference
20847 (url "https://github.com/emacs-lsp/helm-lsp")
20848 (commit commit)))
20849 (file-name (git-file-name name version))
20850 (sha256
20851 (base32
20852 "0wh5zai3s17ss2q8wcdd6d87hv1h3nbyrxxs4js9cas8m6y2ssjv"))))
20853 (build-system emacs-build-system)
20854 (propagated-inputs
20855 `(("emacs-helm" ,emacs-helm)
20856 ("emacs-lsp-mode" ,emacs-lsp-mode)
20857 ("emacs-dash" ,emacs-dash)))
20858 (home-page "https://github.com/emacs-lsp/helm-lsp")
20859 (synopsis "Provide LSP-enhanced completion for symbols")
20860 (description
20861 "This package enhances @code{helm} with completion for symbols from
20862 workspaces with a LSP-compliant server running.")
20863 (license license:gpl3+))))
20864
20865 (define-public emacs-helm-notmuch
20866 (package
20867 (name "emacs-helm-notmuch")
20868 (version "1.2")
20869 (home-page "https://github.com/emacs-helm/helm-notmuch/")
20870 (source (origin
20871 (method git-fetch)
20872 (uri (git-reference
20873 (url home-page)
20874 (commit version)))
20875 (file-name (git-file-name name version))
20876 (sha256
20877 (base32
20878 "1k038dbdpaa411gl4071x19fklhnizhr346plxw23lsnxir9dhqc"))))
20879 (build-system emacs-build-system)
20880 (propagated-inputs
20881 `(("emacs-helm" ,emacs-helm)
20882 ("notmuch" ,notmuch)))
20883 (synopsis "Search emails with Emacs Notmuch and Helm")
20884 (description
20885 "This package can be used to search emails in Emacs, searching result
20886 displays as you type thanks to Helm, though @command{notmuch-search} does the
20887 real search.")
20888 (license license:gpl3+)))
20889
20890 (define-public emacs-elmacro
20891 (let ((commit "89b9b0feabafd01fee48111d67131c4c9b5fed9a"))
20892 (package
20893 (name "emacs-elmacro")
20894 (version (git-version "1.1.0" "1" commit))
20895 (home-page "https://github.com/Silex/elmacro")
20896 (source (origin
20897 (method git-fetch)
20898 (uri (git-reference
20899 (url home-page)
20900 (commit commit)))
20901 (file-name (git-file-name name version))
20902 (sha256
20903 (base32
20904 "06wkzafh6vbcjf0m3sl253mgcq32p8cdv7vsfmyx51baa36938ha"))))
20905 (build-system emacs-build-system)
20906 (propagated-inputs
20907 `(("emacs-s" ,emacs-s)
20908 ("emacs-dash" ,emacs-dash)))
20909 (synopsis "Convert keyboard macros to Emacs Lisp")
20910 (description
20911 "This package displays keyboard macros or latest interactive commands
20912 as Emacs Lisp.")
20913 (license license:gpl3+))))
20914
20915 (define-public emacs-transient
20916 (let ((revision "1")
20917 (commit "a6e4cced303b3febd59412b24a97eaf1e855e6d7"))
20918 (package
20919 (name "emacs-transient")
20920 (version (git-version "0.2.0" revision commit))
20921 (source (origin
20922 (method git-fetch)
20923 (uri (git-reference
20924 (url "https://github.com/magit/transient")
20925 (commit commit)))
20926 (file-name (git-file-name name version))
20927 (sha256
20928 (base32
20929 "01xsw9sxr50valc2q590ngy3ra2ll01p39l9cbzvqqz6mxyymxmd"))))
20930 (build-system emacs-build-system)
20931 (arguments
20932 `(#:tests? #f ;no test suite
20933 #:phases
20934 (modify-phases %standard-phases
20935 (add-after 'unpack 'build-info-manual
20936 (lambda _
20937 (invoke "make" "info")
20938 ;; Move the info file to lisp so that it gets installed by the
20939 ;; emacs-build-system.
20940 (rename-file "docs/transient.info" "lisp/transient.info")
20941 #t))
20942 (add-after 'build-info-manual 'enter-lisp-directory
20943 (lambda _
20944 (chdir "lisp")
20945 #t)))))
20946 (native-inputs
20947 `(("texinfo" ,texinfo)))
20948 (propagated-inputs
20949 `(("dash" ,emacs-dash)))
20950 (home-page "https://magit.vc/manual/transient")
20951 (synopsis "Transient commands in Emacs")
20952 (description "Taking inspiration from prefix keys and prefix arguments
20953 in Emacs, Transient implements a similar abstraction involving a prefix
20954 command, infix arguments and suffix commands. We could call this abstraction
20955 a \"transient command\", but because it always involves at least two
20956 commands (a prefix and a suffix) we prefer to call it just a \"transient\".")
20957 (license license:gpl3+))))
20958
20959 (define-public emacs-forge
20960 (let ((commit "09bf8adc9c9afb492632e612f51f39e1cc15fca0"))
20961 (package
20962 (name "emacs-forge")
20963 (version (git-version "0.1.0" "4" commit))
20964 (source
20965 (origin
20966 (method git-fetch)
20967 (uri (git-reference
20968 (url "https://github.com/magit/forge")
20969 (commit commit)))
20970 (file-name (git-file-name name version))
20971 (sha256
20972 (base32
20973 "148h1rvmfmxyrfy2q5l0vzblr7lpsyw1si30hfwhzsj8fvj21qcr"))))
20974 (build-system emacs-build-system)
20975 (native-inputs
20976 `(("texinfo" ,texinfo)))
20977 (propagated-inputs
20978 `(("emacs-closql" ,emacs-closql)
20979 ("emacs-dash" ,emacs-dash)
20980 ("emacs-emacsql-sqlite" ,emacs-emacsql)
20981 ("emacs-ghub" ,emacs-ghub)
20982 ("emacs-let-alist" ,emacs-let-alist)
20983 ("emacs-magit" ,emacs-magit)
20984 ("emacs-markdown-mode" ,emacs-markdown-mode)
20985 ("emacs-transient" ,emacs-transient)))
20986 (arguments
20987 `(#:tests? #f ;no tests
20988 #:phases
20989 (modify-phases %standard-phases
20990 (add-after 'unpack 'build-info-manual
20991 (lambda _
20992 (invoke "make" "info")
20993 ;; Move the info file to lisp so that it gets installed by the
20994 ;; emacs-build-system.
20995 (rename-file "docs/forge.info" "lisp/forge.info")))
20996 (add-after 'build-info-manual 'chdir-lisp
20997 (lambda _
20998 (chdir "lisp")
20999 #t)))))
21000 (home-page "https://github.com/magit/forge/")
21001 (synopsis "Access Git forges from Magit")
21002 (description "Work with Git forges, such as Github and Gitlab, from the
21003 comfort of Magit and the rest of Emacs.")
21004 (license license:gpl3+))))
21005
21006 (define-public emacs-matcha
21007 (let ((commit "c7df5cf5cdac9ae369e241342389ccda0205eab9"))
21008 (package
21009 (name "emacs-matcha")
21010 (version (git-version "0.0.1" "1" commit)) ;no upstream release
21011 (source (origin
21012 (method git-fetch)
21013 (uri (git-reference
21014 (url "https://github.com/jojojames/matcha")
21015 (commit commit)))
21016 (file-name (git-file-name name version))
21017 (sha256
21018 (base32
21019 "1lfnh1glg6al677m7ci0x8g5wjdhjxlfl3nv1f1ppsw4dpnwsj9b"))))
21020 (propagated-inputs
21021 `(("emacs-hydra" ,emacs-hydra)
21022 ("emacs-transient" ,emacs-transient)))
21023 (build-system emacs-build-system)
21024 (home-page "https://github.com/jojojames/matcha/")
21025 (synopsis "Collection of hydras with a generic interface to launch them")
21026 (description "Matcha provides a collection of transients for various
21027 packages with a consistent way to use them.")
21028 (license license:gpl3+))))
21029
21030 (define-public emacs-undo-propose-el
21031 (let ((commit "f80baee566807d733fbacbab08a897bcd62579c3")
21032 (revision "3"))
21033 (package
21034 (name "emacs-undo-propose-el")
21035 (version (git-version "3.0.0" revision commit))
21036 (source
21037 (origin
21038 (method git-fetch)
21039 (uri (git-reference
21040 (url "https://github.com/jackkamm/undo-propose-el")
21041 (commit commit)))
21042 (file-name (git-file-name name version))
21043 (sha256
21044 (base32
21045 "00rqz63bhh66q78l646q3w16gydygj8h4d8np0dpbifgzciak90b"))))
21046 (build-system emacs-build-system)
21047 (arguments
21048 `(#:tests? #t
21049 #:test-command '("make" "test")))
21050 (home-page "https://github.com/jackkamm/undo-propose-el")
21051 (synopsis "Simple and safe navigation of @code{undo} history")
21052 (description "This package permits navigation of @code{undo} history in a
21053 temporary buffer, which is read-only save for @code{undo} commands, and
21054 subsequent committal of a chain of @code{undo} commands as a single edit in
21055 the @code{undo} history.")
21056 (license license:gpl3+))))
21057
21058 (define-public emacs-elisp-docstring-mode
21059 (let ((commit "f512e509dd690f65133e55563ebbfd2dede5034f")
21060 (version "0.0.1")
21061 (revision "1"))
21062 (package
21063 (name "emacs-elisp-docstring-mode")
21064 (version (git-version version revision commit))
21065 (source
21066 (origin
21067 (method git-fetch)
21068 (uri (git-reference
21069 (url "https://github.com/Fuco1/elisp-docstring-mode")
21070 (commit commit)))
21071 (file-name (git-file-name name version))
21072 (sha256
21073 (base32
21074 "0al8m75p359h4n82rf0dsl22qfdg9cwwywn5pn7x6gb96c7qrqaa"))))
21075 (build-system emacs-build-system)
21076 (home-page "https://github.com/Fuco1/elisp-docstring-mode")
21077 (synopsis "Major mode for editing Emacs Lisp docstrings")
21078 (description "This package provides font lock and automatic escaping and
21079 unescaping of quotes.")
21080 (license license:gpl3+))))
21081
21082 (define-public emacs-vimrc-mode
21083 (let ((commit "13bc150a870d5d4a95f1111e4740e2b22813c30e")
21084 (version "0.3.1")
21085 (revision "1"))
21086 (package
21087 (name "emacs-vimrc-mode")
21088 (version (git-version version revision commit))
21089 (source
21090 (origin
21091 (method git-fetch)
21092 (uri (git-reference
21093 (url "https://github.com/mcandre/vimrc-mode")
21094 (commit commit)))
21095 (file-name (git-file-name name version))
21096 (sha256
21097 (base32
21098 "0026dqs3hwygk2k2xfra90w5sfnxrfj7l69jz7sq5glavbf340pk"))))
21099 (build-system emacs-build-system)
21100 (home-page "https://github.com/mcandre/vimrc-mode")
21101 (synopsis "Major mode for Vimscript")
21102 (description "This package provides font lock and @code{beginning-} and
21103 @code{end-of-defun} functions for Vimscript files.")
21104 (license license:gpl3+))))
21105
21106 (define-public emacs-flycheck-elm
21107 (let ((revision "0")
21108 (commit "1b60050efd4729bfba548f3e5adbcb58436667cb"))
21109 (package
21110 (name "emacs-flycheck-elm")
21111 (version (git-version "0" revision commit))
21112 (source
21113 (origin
21114 (method git-fetch)
21115 (uri
21116 (git-reference
21117 (url "https://github.com/bsermons/flycheck-elm")
21118 (commit commit)))
21119 (file-name (git-file-name name version))
21120 (sha256
21121 (base32 "1kjms9d2c98ffd1qxs879qhg0n4jzic0r5kni9y4gz3v09ww8zms"))))
21122 (build-system emacs-build-system)
21123 (propagated-inputs
21124 `(("emacs-flycheck" ,emacs-flycheck)
21125 ("emacs-let-alist" ,emacs-let-alist)))
21126 (home-page "https://github.com/bsermons/flycheck-elm")
21127 (synopsis "Flycheck support for the Elm language")
21128 (description "Flycheck Elm adds Flycheck support for Elm language.")
21129 (license license:gpl3+))))
21130
21131 (define-public emacs-flycheck-haskell
21132 (let ((commit "32ddff87165a7d3a35e7318bee997b5b4bd41278")
21133 (revision "2"))
21134 (package
21135 (name "emacs-flycheck-haskell")
21136 (version (git-version "0.8" revision commit))
21137 (source
21138 (origin
21139 (method git-fetch)
21140 (uri (git-reference
21141 (url "https://github.com/flycheck/flycheck-haskell")
21142 (commit commit)))
21143 (file-name (git-file-name name version))
21144 (sha256
21145 (base32
21146 "10pgsbagq6qj4mshq5sypv0q0khck92b30sc793b4g1pfpsxvgjn"))))
21147 (build-system emacs-build-system)
21148 (propagated-inputs
21149 `(("emacs-dash" ,emacs-dash)
21150 ("emacs-flycheck" ,emacs-flycheck)
21151 ("emacs-haskell-mode" ,emacs-haskell-mode)
21152 ("emacs-let-alist" ,emacs-let-alist)))
21153 (arguments
21154 `(#:include '("\\.el$" "\\.hs$")))
21155 (home-page "https://github.com/flycheck/flycheck-haskell")
21156 (synopsis "Flycheck for Haskell")
21157 (description "This package configures syntax-checking for Haskell
21158 buffers.")
21159 (license license:gpl3+))))
21160
21161 (define-public emacs-js2-refactor-el
21162 (let ((commit "d4c40b5fc86d3edd7c6a7d83ac86483ee1cb7a28")
21163 (revision "2"))
21164 (package
21165 (name "emacs-js2-refactor-el")
21166 (version (git-version "0.9.0" revision commit))
21167 (source
21168 (origin
21169 (method git-fetch)
21170 (uri (git-reference
21171 (url "https://github.com/magnars/js2-refactor.el")
21172 (commit commit)))
21173 (file-name (git-file-name name version))
21174 (sha256
21175 (base32
21176 "08b25y3raz0p98zxk9xdd8nj9shqd6mzrqhbq1gg4cwsmi7h7ly1"))))
21177 (build-system emacs-build-system)
21178 (propagated-inputs
21179 `(("emacs-dash" ,emacs-dash)
21180 ("emacs-s" ,emacs-s)
21181 ("emacs-js2-mode" ,emacs-js2-mode)
21182 ("emacs-yasnippet" ,emacs-yasnippet)
21183 ("emacs-multiple-cursors" ,emacs-multiple-cursors)))
21184 (native-inputs
21185 `(("emacs-buttercup" ,emacs-buttercup)
21186 ("emacs-espuds" ,emacs-espuds)))
21187 (home-page "https://github.com/magnars/js2-refactor.el")
21188 (synopsis "JavaScript refactoring in Emacs")
21189 (description "This package provides various refactoring functions for
21190 JavaScript.")
21191 (license license:gpl3+))))
21192
21193 (define-public emacs-prettier
21194 (let ((commit "e9b73e81d3e1642aec682195f127a42dfb0b5774")
21195 (version "0.1.0")
21196 (revision "1"))
21197 (package
21198 (name "emacs-prettier")
21199 (version (git-version version revision commit))
21200 (source
21201 (origin
21202 (method git-fetch)
21203 (uri (git-reference
21204 (url "https://github.com/prettier/prettier-emacs")
21205 (commit commit)))
21206 (file-name (git-file-name name version))
21207 (sha256
21208 (base32
21209 "0hj4fv3fgc60i6jrsx4a81s5c9fsxxafhhs3q2q1dypsscjci9ph"))))
21210 (build-system emacs-build-system)
21211 (home-page "https://github.com/prettier/prettier-emacs")
21212 (synopsis "Automatic formatting of JavaScript code")
21213 (description "This package integrates Prettier with Emacs, and
21214 provides a minor mode that autoformats the buffer upon saving.")
21215 (license license:expat))))
21216
21217 (define-public emacs-fish-mode
21218 (package
21219 (name "emacs-fish-mode")
21220 (version "0.1.4")
21221 (source
21222 (origin
21223 (method git-fetch)
21224 (uri (git-reference
21225 (url "https://github.com/wwwjfy/emacs-fish")
21226 (commit version)))
21227 (file-name (git-file-name name version))
21228 (sha256
21229 (base32
21230 "0a74ghmjjrxfdhk4mvq6lar4w6l6lc4iilabs99smqr2fn5rsslq"))))
21231 (build-system emacs-build-system)
21232 (home-page "https://github.com/wwwjfy/emacs-fish")
21233 (synopsis "Major mode for Fish shell scripts")
21234 (description "This package provides syntax highlighting and indentation
21235 functions for Fish shell scripts.")
21236 (license license:gpl3+)))
21237
21238 (define-public emacs-eshell-up
21239 (let ((commit "9c100bae5c3020e8d9307e4332d3b64e7dc28519")
21240 (version "0.0.3")
21241 (revision "12"))
21242 (package
21243 (name "emacs-eshell-up")
21244 (version (git-version version revision commit))
21245 (source
21246 (origin
21247 (method git-fetch)
21248 (uri (git-reference
21249 (url "https://github.com/peterwvj/eshell-up")
21250 (commit commit)))
21251 (file-name (git-file-name name version))
21252 (sha256
21253 (base32
21254 "00zdbcncjabgj5mp47l1chymx5na18v2g4kj730dgmj3rnl3iz2q"))))
21255 (build-system emacs-build-system)
21256 (home-page "https://github.com/peterwvj/eshell-up")
21257 (synopsis "Quickly go to a parent directory in @code{Eshell}")
21258 (description "This package provides quick navigation to a specific
21259 parent directory using @code{Eshell}.")
21260 (license license:gpl3+))))
21261
21262 (define-public emacs-tco-el
21263 (let ((commit "482db5313f090b17ed22ccd856f0e141dc75afe6")
21264 (revision "1"))
21265 (package
21266 (name "emacs-tco-el")
21267 (version (git-version "0.3" revision commit))
21268 (source
21269 (origin
21270 (method git-fetch)
21271 (uri (git-reference
21272 (url "https://github.com/Wilfred/tco.el")
21273 (commit commit)))
21274 (file-name (git-file-name name version))
21275 (sha256
21276 (base32
21277 "1z7xkbrqznk6ni687qqknp8labcyhl8y6576hjfri89fn21385y9"))))
21278 (build-system emacs-build-system)
21279 (propagated-inputs
21280 `(("emacs-dash" ,emacs-dash)))
21281 (native-inputs
21282 `(("emacs-ert-runner" ,emacs-ert-runner)
21283 ("emacs-undercover" ,emacs-undercover)))
21284 (arguments
21285 `(#:tests? #t
21286 #:test-command '("ert-runner")))
21287 (home-page "https://github.com/Wilfred/tco.el")
21288 (synopsis "Tail-call optimization for Emacs Lisp")
21289 (description "This package provides tail-call optimization for Emacs
21290 Lisp functions that call themselves in tail position.")
21291 (license license:gpl3+))))
21292
21293 (define-public emacs-equake
21294 (let ((commit "7eddc025ee61b83029363e22219af228b8c20681")
21295 (revision "2"))
21296 (package
21297 (name "emacs-equake")
21298 (version (git-version "0.85" revision commit))
21299 (source
21300 (origin
21301 (method git-fetch)
21302 (uri (git-reference
21303 (url "https://gitlab.com/emacsomancer/equake/")
21304 (commit commit)))
21305 (file-name (git-file-name name version))
21306 (sha256
21307 (base32
21308 "1c55pbqak3d02sw6z1139baxzy401b90g0gxzcc3j6sgplz6sc6w"))))
21309 (build-system emacs-build-system)
21310 (propagated-inputs
21311 `(("emacs-dash" ,emacs-dash)
21312 ("emacs-tco-el" ,emacs-tco-el)))
21313 (home-page "https://gitlab.com/emacsomancer/equake/")
21314 (synopsis "Drop-down console for @code{Eshell} and terminal emulators")
21315 (description "This package provides a Quake-style drop-down console
21316 compatible with Emacs' shell modes.")
21317 (license license:gpl3+))))
21318
21319 (define-public emacs-vdiff
21320 ;; There is no proper tag, but the commit below matches the version bump.
21321 (let ((commit "007e44be19d068fd6b49874b6e9b8df8b1f552bd"))
21322 (package
21323 (name "emacs-vdiff")
21324 (version "0.2.4")
21325 (source
21326 (origin
21327 (method git-fetch)
21328 (uri (git-reference
21329 (url "https://github.com/justbur/emacs-vdiff")
21330 (commit commit)))
21331 (file-name (git-file-name name version))
21332 (sha256
21333 (base32 "197xrwph1llrzjgkhlvagiwdgfp68pb45w5afg89ndahpqc2725s"))))
21334 (build-system emacs-build-system)
21335 (propagated-inputs
21336 `(("emacs-hydra" ,emacs-hydra)))
21337 (arguments
21338 `(#:tests? #t
21339 #:test-command '("emacs" "-Q" "-batch" "-L" "."
21340 "-l" "vdiff-test.el"
21341 "-f" "ert-run-tests-batch-and-exit")))
21342 (home-page "https://github.com/justbur/emacs-vdiff/")
21343 (synopsis "Frontend for diffing based on vimdiff")
21344 (description
21345 "This package permits comparisons of two or three buffers based on diff
21346 output.")
21347 (license license:gpl3+))))
21348
21349 (define-public emacs-vdiff-magit
21350 ;; Need to use a more recent commit than the latest release version because
21351 ;; of Magit and Transient
21352 (let ((commit "b100d126c69e5c26a61ae05aa1778bcc4302b597")
21353 (version "0.3.2")
21354 (revision "8"))
21355 (package
21356 (name "emacs-vdiff-magit")
21357 (version (git-version version revision commit))
21358 (source
21359 (origin
21360 (method git-fetch)
21361 (uri (git-reference
21362 (url "https://github.com/justbur/emacs-vdiff-magit/")
21363 (commit commit)))
21364 (file-name (git-file-name name version))
21365 (sha256
21366 (base32
21367 "16cjmrzflf2i1w01973sl944xrfanakba8sb4dpwi79d92xp03xy"))))
21368 (build-system emacs-build-system)
21369 (propagated-inputs
21370 `(("emacs-vdiff" ,emacs-vdiff)
21371 ("emacs-magit" ,emacs-magit)
21372 ("emacs-transient" ,emacs-transient)))
21373 (home-page "https://github.com/justbur/emacs-vdiff-magit/")
21374 (synopsis "Frontend for diffing based on vimdiff")
21375 (description "This package permits comparisons of two or three buffers
21376 based on diff output.")
21377 (license license:gpl3+))))
21378
21379 (define-public emacs-all-the-icons-dired
21380 (let ((commit "980b7747d6c4a7992a1ec56afad908956db0a519")
21381 (version "1.0")
21382 (revision "1"))
21383 (package
21384 (name "emacs-all-the-icons-dired")
21385 (version (git-version version revision commit))
21386 (source
21387 (origin
21388 (method git-fetch)
21389 (uri (git-reference
21390 (url "https://github.com/jtbm37/all-the-icons-dired/")
21391 (commit commit)))
21392 (file-name (git-file-name name version))
21393 (sha256
21394 (base32
21395 "1pvbgyxfj4j205nj1r02045f1y4wgavdsk7f45hxkkhms1rj8jyy"))))
21396 (build-system emacs-build-system)
21397 (propagated-inputs
21398 `(("emacs-all-the-icons" ,emacs-all-the-icons)))
21399 (home-page "https://github.com/jtbm37/all-the-icons-dired/")
21400 (synopsis "Show icons for each file in @code{dired-mode}")
21401 (description "This package allows icons from @file{all-the-icons.el} to
21402 be used in @code{dired-mode}.")
21403 (license license:gpl3+))))
21404
21405 (define-public emacs-exwm-edit
21406 (let ((commit "e1291e311840f1049106fe98cec032a1c75efd2b")
21407 (version "0.0.1")
21408 (revision "3"))
21409 (package
21410 (name "emacs-exwm-edit")
21411 (version (git-version version revision commit))
21412 (source
21413 (origin
21414 (method git-fetch)
21415 (uri (git-reference
21416 (url "https://github.com/agzam/exwm-edit/")
21417 (commit commit)))
21418 (file-name (git-file-name name version))
21419 (sha256
21420 (base32
21421 "031cb8fvv5n30djr9lpl6vz3rl15zykfvjlgkjc8l33a3l5mw8j0"))))
21422 (build-system emacs-build-system)
21423 (propagated-inputs
21424 `(("emacs-exwm" ,emacs-exwm)))
21425 (home-page "https://github.com/agzam/exwm-edit/")
21426 (synopsis "Open temp buffers for editing text from EXWM buffers")
21427 (description "This package facilitates editing text from EXWM buffers by
21428 generating a temp buffer in which any useful Emacs utilities and modes can be
21429 invoked.")
21430 (license license:gpl3+))))
21431
21432 (define-public emacs-ert-async
21433 (package
21434 (name "emacs-ert-async")
21435 (version "0.1.2")
21436 (source
21437 (origin
21438 (method git-fetch)
21439 (uri (git-reference
21440 (url "https://github.com/rejeep/ert-async.el")
21441 (commit (string-append "v" version))))
21442 (file-name (git-file-name name version))
21443 (sha256
21444 (base32
21445 "0hn9i405nfhjd1h9vnwj43nxbbz00khrwkjq0acfyxjaz1shfac9"))))
21446 (build-system emacs-build-system)
21447 (home-page "https://github.com/rejeep/ert-async.el")
21448 (synopsis "Async support for ERT")
21449 (description "This package allows ERT to work with asynchronous tests.")
21450 (license license:gpl3+)))
21451
21452 (define-public emacs-prodigy-el
21453 (let ((commit "0a12eec1f001a4eef16b2c0c524f02f2647a4ff1")
21454 (revision "2"))
21455 (package
21456 (name "emacs-prodigy-el")
21457 (version (git-version "0.7.0" revision commit))
21458 (source
21459 (origin
21460 (method git-fetch)
21461 (uri (git-reference
21462 (url "https://github.com/rejeep/prodigy.el")
21463 (commit commit)))
21464 (file-name (git-file-name name version))
21465 (sha256
21466 (base32
21467 "02kysq57kqzg0zkhaf302ada9cp9spgp71z8vbdq4c7dl6x75h4g"))))
21468 (build-system emacs-build-system)
21469 (propagated-inputs
21470 `(("emacs-dash" ,emacs-dash)
21471 ("emacs-s" ,emacs-s)
21472 ("emacs-f" ,emacs-f)))
21473 (native-inputs
21474 `(("emacs-el-mock" ,emacs-el-mock)
21475 ("emacs-ert-async" ,emacs-ert-async)))
21476 (home-page "https://github.com/rejeep/prodigy.el")
21477 (synopsis "Manage external services from within Emacs")
21478 (description "This package provides a GUI for defining and monitoring services.")
21479 (license license:gpl3+))))
21480
21481 (define-public emacs-web-server
21482 (package
21483 (name "emacs-web-server")
21484 (version "0.1.2")
21485 (source
21486 (origin
21487 (method url-fetch)
21488 (uri (string-append "https://elpa.gnu.org/packages/"
21489 "web-server-" version ".tar"))
21490 (sha256
21491 (base32 "10lcsl4dg2yr9zjd99gq9jz150wvvh6r5y9pd88l8y9vz16f2lim"))))
21492 (build-system emacs-build-system)
21493 (home-page "https://github.com/eschulte/emacs-web-server/")
21494 (synopsis "Web server with handlers in Emacs Lisp")
21495 (description "This package supports HTTP GET and POST requests with
21496 url-encoded parameters, as well as web sockets.")
21497 (license license:gpl3+)))
21498
21499 (define-public emacs-markdown-preview-mode
21500 (package
21501 (name "emacs-markdown-preview-mode")
21502 (version "0.9.2")
21503 (source
21504 (origin
21505 (method git-fetch)
21506 (uri (git-reference
21507 (url "https://github.com/ancane/markdown-preview-mode")
21508 (commit (string-append "v" version))))
21509 (file-name (git-file-name name version))
21510 (sha256
21511 (base32
21512 "1d1id99gagymvzdfa1mwqh8y3szm8ii47rpijkfi1qnifjg5jaq9"))))
21513 (build-system emacs-build-system)
21514 (propagated-inputs
21515 `(("emacs-markdown-mode" ,emacs-markdown-mode)
21516 ("emacs-websocket" ,emacs-websocket)
21517 ("emacs-web-server" ,emacs-web-server)))
21518 (arguments '(#:include '("\\.el$" "\\.html$")))
21519 (home-page "https://github.com/ancane/markdown-preview-mode")
21520 (synopsis "Preview Markdown files")
21521 (description "This package provides a minor mode for preview of Markdown
21522 files, and sends rendered Markdown to a web browser.")
21523 (license license:gpl3+)))
21524
21525 (define-public emacs-dotenv-mode
21526 (package
21527 (name "emacs-dotenv-mode")
21528 (version "0.2.4")
21529 (source
21530 (origin
21531 (method git-fetch)
21532 (uri (git-reference
21533 (url "https://github.com/preetpalS/emacs-dotenv-mode")
21534 (commit (string-append "v" version))))
21535 (file-name (git-file-name name version))
21536 (sha256
21537 (base32
21538 "1fplkhxnsgdrg10iqsmw162zny2idz4vvv35spsb9j0hsk8imclc"))))
21539 (build-system emacs-build-system)
21540 (home-page "https://github.com/preetpalS/emacs-dotenv-mode")
21541 (synopsis "Major mode for @file{.env} files")
21542 (description "This package provides syntax highlighting for @file{.env}
21543 files.")
21544 (license license:gpl3+)))
21545
21546 (define-public emacs-add-node-modules-path
21547 (let ((commit "f31e69ccb681f882aebb806ce6e9478e3ac39708")
21548 (version "1.2.0")
21549 (revision "10"))
21550 (package
21551 (name "emacs-add-node-modules-path")
21552 (version (git-version version revision commit))
21553 (source
21554 (origin
21555 (method git-fetch)
21556 (uri (git-reference
21557 (url "https://github.com/codesuki/add-node-modules-path")
21558 (commit commit)))
21559 (file-name (git-file-name name version))
21560 (sha256
21561 (base32
21562 "0p106bqmvdr8by5iv02bshm339qbrjcch2d15mrm4h3nav03v306"))))
21563 (build-system emacs-build-system)
21564 (home-page "https://github.com/codesuki/add-node-modules-path")
21565 (synopsis "Add @file{node_modules} to the buffer-local @file{exec-path}")
21566 (description "This package searches the parent directories of the
21567 current file for the project's @file{node_modules/.bin/} directory, allowing
21568 Emacs to find project-specific installations of packages.")
21569 (license license:expat))))
21570
21571 (define-public emacs-flow-minor-mode
21572 (let ((commit "d1b32a7dd0d33c6a00a106da5f4b2323602cbd3e")
21573 (version "0.3")
21574 (revision "4"))
21575 (package
21576 (name "emacs-flow-minor-mode")
21577 (version (git-version version revision commit))
21578 (source
21579 (origin
21580 (method git-fetch)
21581 (uri (git-reference
21582 (url "https://github.com/an-sh/flow-minor-mode")
21583 (commit commit)))
21584 (file-name (git-file-name name version))
21585 (sha256
21586 (base32
21587 "169r4ib9qg9q6fm3p0p23qs1qx4pa9pg1qvyq4ysr85i7kwygppl"))))
21588 (build-system emacs-build-system)
21589 (home-page "https://github.com/an-sh/flow-minor-mode")
21590 (synopsis "Minor mode for JavaScript Flow files")
21591 (description "This package integrates Flow with Emacs, allowing for
21592 definition-jumping and type-checking on demand.")
21593 (license license:bsd-3))))
21594
21595 (define-public emacs-rjsx-mode
21596 (let ((commit "0e7fa6b4facdec4f85a7a8865bdf59dfd57217b5")
21597 (revision "2"))
21598 (package
21599 (name "emacs-rjsx-mode")
21600 (version (git-version "0.4" revision commit))
21601 (source
21602 (origin
21603 (method git-fetch)
21604 (uri (git-reference
21605 (url "https://github.com/felipeochoa/rjsx-mode")
21606 (commit commit)))
21607 (file-name (git-file-name name version))
21608 (sha256
21609 (base32
21610 "0s0871sx3ch09kgvbcp9na4zdrfrda62xjq8m9knbq5vnj8q8qpi"))))
21611 (build-system emacs-build-system)
21612 (propagated-inputs
21613 `(("emacs-js2-mode" ,emacs-js2-mode)))
21614 (arguments
21615 `(#:tests? #t
21616 #:test-command '("make" "test")))
21617 (home-page "https://github.com/felipeochoa/rjsx-mode")
21618 (synopsis "Major mode for JSX files")
21619 (description "This package extends the parser of @code{js2-mode} to
21620 support JSX syntax.")
21621 (license license:expat))))
21622
21623 (define-public emacs-origami-el
21624 (let ((commit "1f38085c8f9af7842765ed63f7d6dfe4dab59366")
21625 (version "1.0")
21626 (revision "1"))
21627 (package
21628 (name "emacs-origami-el")
21629 (version (git-version version revision commit))
21630 (source
21631 (origin
21632 (method git-fetch)
21633 (uri (git-reference
21634 (url "https://github.com/gregsexton/origami.el")
21635 (commit commit)))
21636 (file-name (git-file-name name version))
21637 (sha256
21638 (base32
21639 "0ha1qsz2p36pqa0sa2sp83lspbgx5lr7930qxnwd585liajzdd9x"))))
21640 (build-system emacs-build-system)
21641 (propagated-inputs
21642 `(("emacs-dash" ,emacs-dash)
21643 ("emacs-s" ,emacs-s)))
21644 (home-page "https://github.com/gregsexton/origami.el")
21645 (synopsis "Flexible text-folding")
21646 (description "This package provides a minor mode for collapsing and
21647 expanding regions of text without modifying the actual contents.")
21648 (license license:expat))))
21649
21650 (define-public emacs-peep-dired
21651 (let ((commit "c88a9a3050197840edfe145f11e0bb9488de32f4")
21652 (version "0")
21653 (revision "1"))
21654 (package
21655 (name "emacs-peep-dired")
21656 (version (git-version version revision commit))
21657 (source
21658 (origin
21659 (method git-fetch)
21660 (uri (git-reference
21661 (url "https://github.com/asok/peep-dired")
21662 (commit commit)))
21663 (file-name (git-file-name name version))
21664 (sha256
21665 (base32
21666 "1wy5qpnfri1gha2cnl6q20qar8dbl2mimpb43bnhmm2g3wgjyad6"))))
21667 (build-system emacs-build-system)
21668 (home-page "https://github.com/asok/peep-dired")
21669 (synopsis "Preview files in another window")
21670 (description "This package provides a minor mode that allows files to be
21671 previewed by scrolling up and down within a @code{dired} buffer.")
21672 (license license:gpl3+))))
21673
21674 (define-public emacs-counsel-etags
21675 (package
21676 (name "emacs-counsel-etags")
21677 (version "1.9.11")
21678 (source
21679 (origin
21680 (method git-fetch)
21681 (uri (git-reference
21682 (url "https://github.com/redguardtoo/counsel-etags")
21683 (commit version)))
21684 (file-name (git-file-name name version))
21685 (sha256
21686 (base32 "0h0br41vkrx9l7bqr55bafqd715drxxwm41qif6iffhgdpvf69ym"))))
21687 (build-system emacs-build-system)
21688 (propagated-inputs
21689 `(("emacs-counsel" ,emacs-counsel)))
21690 (arguments
21691 `(#:tests? #t
21692 #:test-command '("make" "test")))
21693 (home-page "https://github.com/redguardtoo/counsel-etags")
21694 (synopsis "Fast @code{Ctags}/@code{Etags} solution with @code{ivy-mode}")
21695 (description "This package uses @code{ivy-mode} to facilitate navigating
21696 and searching through @code{Ctags} files.")
21697 (license license:gpl3+)))
21698
21699 (define-public emacs-ivy-clipmenu
21700 (let ((commit "d2071f2c5043a05d610cd1952e84176ca78c31dc"))
21701 (package
21702 (name "emacs-ivy-clipmenu")
21703 (version (git-version "0.0.1" "1" commit))
21704 (source (origin
21705 (method git-fetch)
21706 (uri (git-reference
21707 (url "https://github.com/wpcarro/ivy-clipmenu.el")
21708 (commit commit)))
21709 (file-name (git-file-name name version))
21710 (sha256
21711 (base32
21712 "0npd8glzk5z4n7y9mzbsbzi0cf3by19fqcki052jr3dga363lds7"))))
21713 (propagated-inputs
21714 `(("emacs-f" ,emacs-f)
21715 ("emacs-ivy" ,emacs-ivy)))
21716 (build-system emacs-build-system)
21717 (home-page "https://github.com/wpcarro/ivy-clipmenu.el")
21718 (synopsis "Ivy integration with clipmenu")
21719 (description "Ivy integration with the clipboard manager, clipmenu.")
21720 (license license:expat))))
21721
21722 (define-public emacs-org-download
21723 (let ((commit "42ac361ef5502017e6fc1bceb00333eba90402f4")
21724 (revision "3"))
21725 (package
21726 (name "emacs-org-download")
21727 (version (git-version "0.1.0" revision commit))
21728 (source (origin
21729 (method git-fetch)
21730 (uri (git-reference
21731 (url "https://github.com/abo-abo/org-download")
21732 (commit commit)))
21733 (file-name (git-file-name name version))
21734 (sha256
21735 (base32 "0cg4y7hy7xbq4vrbdicfzgvyaf3cjbx2zkqd4yl0y2garz71j99l"))))
21736 (build-system emacs-build-system)
21737 (propagated-inputs
21738 `(("emacs-org" ,emacs-org)
21739 ("emacs-async" ,emacs-async)))
21740 (home-page "https://github.com/abo-abo/org-download")
21741 (synopsis "Facilitate moving images")
21742 (description "This package provides utilities for managing image files
21743 copied into @code{org-mode} buffers.")
21744 (license license:gpl3+))))
21745
21746 (define-public emacs-dash-docs
21747 (let ((commit "111fd9b97001f1ad887b45e5308a14ddd68ce70a")
21748 (revision "1"))
21749 (package
21750 (name "emacs-dash-docs")
21751 (version (git-version "1.4.0" revision commit))
21752 (source
21753 (origin
21754 (method git-fetch)
21755 (uri (git-reference
21756 (url "https://github.com/dash-docs-el/dash-docs")
21757 (commit commit)))
21758 (file-name (git-file-name name version))
21759 (sha256
21760 (base32
21761 "0sckb7z0ylflva212bns7iq9mfnffgjghi0qspsbfwra35zb9xng"))))
21762 (build-system emacs-build-system)
21763 (propagated-inputs
21764 `(("emacs-async" ,emacs-async)))
21765 (native-inputs
21766 `(("emacs-undercover" ,emacs-undercover)
21767 ("emacs-ert-runner" ,emacs-ert-runner)))
21768 (arguments
21769 `(#:tests? #t
21770 #:test-command '("ert-runner")
21771 #:phases
21772 ;; this test requires network access, so remove it
21773 (modify-phases %standard-phases
21774 (add-before 'check 'make-tests-writable
21775 (lambda _
21776 (make-file-writable "test/dash-docs-test.el")
21777 #t))
21778 (add-before 'check 'delete-test
21779 (lambda _
21780 (emacs-batch-edit-file "test/dash-docs-test.el"
21781 `(progn (progn
21782 (goto-char (point-min))
21783 (re-search-forward "ert-deftest dash-docs-official-docsets-test")
21784 (beginning-of-line)
21785 (kill-sexp))
21786 (basic-save-buffer)))
21787 #t)))))
21788 (home-page "https://github.com/dash-docs-el/dash-docs")
21789 (synopsis "Offline documentation browser for APIs using Dash docsets")
21790 (description "This package exposes functionality to work with Dash docsets.")
21791 (license license:gpl3+))))
21792
21793 (define-public emacs-helm-dash
21794 (let ((commit "7f853bd34da666f0e9a883011c80f451b06f6c59")
21795 (revision "2"))
21796 (package
21797 (name "emacs-helm-dash")
21798 (version (git-version "1.3.0" revision commit))
21799 (source
21800 (origin
21801 (method git-fetch)
21802 (uri (git-reference
21803 (url "https://github.com/areina/helm-dash")
21804 (commit commit)))
21805 (file-name (git-file-name name version))
21806 (sha256
21807 (base32
21808 "0r192vzry1212ihabg9pgw9xar8zdgnbgy0vsgvfm8s5wj6ny7jp"))))
21809 (build-system emacs-build-system)
21810 (propagated-inputs
21811 `(("emacs-helm" ,emacs-helm)
21812 ("emacs-dash-docs" ,emacs-dash-docs)))
21813 (home-page "https://github.com/areina/helm-dash")
21814 (synopsis "Offline documentation browser for APIs using Dash docsets")
21815 (description "This package uses Helm to install and navigate through
21816 Dash docsets.")
21817 (license license:gpl3+))))
21818
21819 (define-public emacs-counsel-dash
21820 (let ((commit "370d5f6f14b5294d0eb717f7b2a6a8e93df1ed24")
21821 (revision "4"))
21822 (package
21823 (name "emacs-counsel-dash")
21824 (version (git-version "0.1.3" revision commit))
21825 (source
21826 (origin
21827 (method git-fetch)
21828 (uri (git-reference
21829 (url "https://github.com/dash-docs-el/counsel-dash")
21830 (commit commit)))
21831 (file-name (git-file-name name version))
21832 (sha256
21833 (base32 "1fn38vbz46ijarjvhgw7iy7dj9s2a2miy95fyy9f8b5sj8nrdfvz"))))
21834 (build-system emacs-build-system)
21835 (propagated-inputs
21836 `(("emacs-counsel" ,emacs-counsel)
21837 ("emacs-dash-docs" ,emacs-dash-docs)))
21838 (home-page "https://github.com/dash-docs-el/counsel-dash")
21839 (synopsis "Offline documentation browser for APIs using Dash docsets")
21840 (description "This package uses @code{ivy-mode} to install and navigate
21841 through Dash docsets.")
21842 (license license:expat))))
21843
21844 (define-public emacs-calibredb
21845 (package
21846 (name "emacs-calibredb")
21847 (version "2.7.0")
21848 (source
21849 (origin
21850 (method git-fetch)
21851 (uri (git-reference
21852 (url "https://github.com/chenyanming/calibredb.el")
21853 (commit version)))
21854 (file-name (git-file-name name version))
21855 (sha256
21856 (base32 "1w3kz9iny72gk54jdafz8sy5sv6hnpm3rw4fn1r8aznx4p00f9dy"))))
21857 (build-system emacs-build-system)
21858 (propagated-inputs
21859 `(("emacs-dash" ,emacs-dash)
21860 ("emacs-s" ,emacs-s)
21861 ("emacs-transient" ,emacs-transient)))
21862 (home-page "https://github.com/chenyanming/calibredb.el")
21863 (synopsis "Yet another calibre client for Emacs")
21864 (description "This package integrates calibre into Emacs.
21865 @enumerate
21866 @item Powerful ebook dashboard.
21867 @item Manage ebooks, actually not only ebooks!
21868 @item Manage Ebook libraries.
21869 @item Another bookmarks solution, by setting the tags and comments.
21870 @item Quick search, filter, make actions on items with ivy and helm.
21871 @item Org-ref support.
21872 @end enumerate")
21873 (license license:gpl3)))
21874
21875 (define-public emacs-el-patch
21876 (package
21877 (name "emacs-el-patch")
21878 (version "2.2.3")
21879 (source
21880 (origin
21881 (method git-fetch)
21882 (uri (git-reference
21883 (url "https://github.com/raxod502/el-patch")
21884 (commit version)))
21885 (file-name (git-file-name name version))
21886 (sha256
21887 (base32
21888 "18djslz177q6q33y82zmg2v6n9236a76kiqfvxdk4vbqzjbq82f7"))))
21889 (build-system emacs-build-system)
21890 (home-page "https://github.com/raxod502/el-patch")
21891 (synopsis "Future-proof your Emacs customizations")
21892 (description "This package allows for an alternate definition of an Elisp
21893 function to be specified and for any differences from the original definition
21894 to be examined using Ediff.")
21895 (license license:expat)))
21896
21897 (define-public emacs-info-plus
21898 (let ((commit "4a6b93c170169594e1e8ea60cd799a1a88a969da")
21899 (revision "2"))
21900 (package
21901 (name "emacs-info-plus")
21902 (version (git-version "0" revision commit))
21903 (source
21904 (origin
21905 (method git-fetch)
21906 (uri (git-reference
21907 (url "https://github.com/emacsmirror/info-plus")
21908 (commit commit)))
21909 (file-name (git-file-name name version))
21910 (sha256
21911 (base32
21912 "1xzmx7m1qbl3b1x6yq1db1a108xqaa64ljfv1hdw763zmy4kc6m0"))))
21913 (build-system emacs-build-system)
21914 (home-page "https://github.com/emacsmirror/info-plus")
21915 (synopsis "Extensions to @file{info.el}")
21916 (description "This package extends Emacs' @file{info.el} by allowing
21917 outline-enabled table of contents, additional metadata association for Info
21918 nodes, and more.")
21919 (license license:gpl2+))))
21920
21921 (define-public emacs-eval-sexp-fu-el
21922 (package
21923 (name "emacs-eval-sexp-fu-el")
21924 (version "0.5.0")
21925 (source
21926 (origin
21927 (method git-fetch)
21928 (uri (git-reference
21929 (url "https://github.com/hchbaw/eval-sexp-fu.el")
21930 (commit (string-append "v" version))))
21931 (file-name (git-file-name name version))
21932 (sha256
21933 (base32
21934 "01mpnpgmlnfbi2yw9dxz5iw72mw3lk223bj172i4fnx3xdrrxbij"))))
21935 (build-system emacs-build-system)
21936 (home-page "https://github.com/hchbaw/eval-sexp-fu.el")
21937 (synopsis "Enhancements for evaluating s-expressions")
21938 (description "This package provides provides variants of
21939 @code{eval-last-sexp} that work on the containing list or s-expression, as
21940 well as an option for visually flashing evaluated s-expressions.")
21941 (license license:gpl3+)))
21942
21943 (define-public emacs-counsel-tramp
21944 (package
21945 (name "emacs-counsel-tramp")
21946 (version "0.7.5")
21947 (source
21948 (origin
21949 (method git-fetch)
21950 (uri (git-reference
21951 (url "https://github.com/masasam/emacs-counsel-tramp")
21952 (commit version)))
21953 (file-name (git-file-name name version))
21954 (sha256
21955 (base32 "18qlwyjqxap2qfbz14ma6yqp4p3v4q2y8idc355s4szjdd2as2lr"))))
21956 (build-system emacs-build-system)
21957 (propagated-inputs
21958 `(("emacs-counsel" ,emacs-counsel)))
21959 (home-page "https://github.com/masasam/emacs-counsel-tramp")
21960 (synopsis "Ivy interface for TRAMP")
21961 (description
21962 "This package allows @code{ivy-mode} to display and filter SSH servers.")
21963 (license license:gpl3+)))
21964
21965 (define-public emacs-tramp
21966 (package
21967 (name "emacs-tramp")
21968 (version "2.4.4.3")
21969 (source
21970 (origin
21971 (method url-fetch)
21972 (uri (string-append "https://elpa.gnu.org/packages/"
21973 "tramp-" version ".tar"))
21974 (sha256
21975 (base32 "0ms739a61d7jkq0lkf4dxql6kjrq435d6ds079bb1fpzglbnqkym"))))
21976 (build-system emacs-build-system)
21977 (arguments
21978 `(#:emacs ,emacs ;need D-Bus
21979 #:phases
21980 (modify-phases %standard-phases
21981 ;; All but one "/bin/" directory refer to remote
21982 ;; environments, which may not be Guix. Do not patch them
21983 ;; blindly. However, local encoding shell has to be patched.
21984 (replace 'patch-el-files
21985 (lambda* (#:key inputs #:allow-other-keys)
21986 (let ((sh (assoc-ref inputs "bash"))
21987 (file "tramp.el"))
21988 (emacs-substitute-variables file
21989 ("tramp-encoding-shell" (string-append sh "/bin/sh"))))
21990 #t)))))
21991 (inputs
21992 `(("bash" ,bash)))
21993 (home-page "https://savannah.gnu.org/projects/tramp")
21994 (synopsis "Remote file editing package for Emacs")
21995 (description
21996 "Tramp stands for ``Transparent Remote (file) Access, Multiple
21997 Protocol''. This package provides remote file editing, using
21998 a combination of @command{rsh} and @command{rcp} or other work-alike
21999 programs, such as @command{ssh} and @command{scp}.")
22000 (license license:gpl3+)))
22001
22002 (define-public emacs-tramp-auto-auth
22003 (let ((commit "f15a12dfab651aff60f4a9d70f868030a12344ac"))
22004 (package
22005 (name "emacs-tramp-auto-auth")
22006 (version (git-version "20191027" "1" commit))
22007 (source
22008 (origin
22009 (method git-fetch)
22010 (uri (git-reference
22011 (url "https://github.com/oitofelix/tramp-auto-auth")
22012 (commit commit)))
22013 (file-name (git-file-name name version))
22014 (sha256
22015 (base32
22016 "09nkjgwppjfgv04q0gv468qihgx4y3p39lpwbd6vbh3wgbccas9k"))))
22017 (build-system emacs-build-system)
22018 (home-page "https://github.com/oitofelix/tramp-auto-auth")
22019 (synopsis "TRAMP automatic authentication library")
22020 (description "This package provides @code{tramp-auto-auth-mode} Emacs
22021 global minor mode whose purpose is to automatically feed TRAMP sub-processes
22022 with passwords for paths matching regexps.")
22023 (license license:gpl3+))))
22024
22025 (define-public emacs-eacl
22026 (package
22027 (name "emacs-eacl")
22028 (version "2.0.1")
22029 (source
22030 (origin
22031 (method git-fetch)
22032 (uri (git-reference
22033 (url "https://github.com/redguardtoo/eacl")
22034 (commit version)))
22035 (file-name (git-file-name name version))
22036 (sha256
22037 (base32
22038 "0ksn11sm3g1ja5lpjz3hrzzw8b480mfcb3q589m52qjgvvn5iyfv"))))
22039 (build-system emacs-build-system)
22040 (propagated-inputs
22041 `(("emacs-ivy" ,emacs-ivy)))
22042 (home-page "https://github.com/redguardtoo/eacl")
22043 (synopsis "Auto-complete lines by using @code{grep} on a project")
22044 (description "This package provides auto-completion commands for single
22045 and multiple lines of code in a project.")
22046 (license license:gpl3+)))
22047
22048 (define-public emacs-semantic-refactor
22049 ;; The last release, 0.5, was made on 2015-07-26 and there have been 47
22050 ;; commits since then.
22051 (let ((commit "6f2c97d17fb70f4ca2112f5a2b99a8ec162004f5"))
22052 (package
22053 (name "emacs-semantic-refactor")
22054 (version (git-version "0.5" "1" commit))
22055 (source
22056 (origin
22057 (method git-fetch)
22058 (uri (git-reference
22059 (url "https://github.com/tuhdo/semantic-refactor")
22060 (commit commit)))
22061 (file-name (git-file-name name version))
22062 (sha256
22063 (base32
22064 "1lyz3zjkx2csh0xdy1zpx8s32qp1p3sig57mwi9xhgpqjyf0axmb"))))
22065 (build-system emacs-build-system)
22066 (home-page "https://github.com/tuhdo/semantic-refactor")
22067 (synopsis "Refactoring tool for C/C++ and Lisp dialects")
22068 (description "This package provides a refactoring tool based on the
22069 Emacs Semantic parser framework. For C and C++ it supports operations such as:
22070
22071 @enumerate
22072 @item Generating class implementations
22073 @item Generating function prototypes
22074 @item Converting functions to function pointers
22075 @item Moving semantic units
22076 @item etc...
22077 @end enumerate
22078
22079 For Lisp dialects like Clojure, ELisp, and Scheme, it supports operations such
22080 as:
22081
22082 @enumerate
22083 @item Formatting the whole buffer
22084 @item Converting sexpressions to one or multiple lines
22085 @item etc...
22086 @end enumerate\n")
22087 (license license:gpl3+))))
22088
22089 (define-public emacs-nhexl-mode
22090 (package
22091 (name "emacs-nhexl-mode")
22092 (version "1.5")
22093 (source
22094 (origin
22095 (method url-fetch)
22096 (uri (string-append "https://elpa.gnu.org/packages/"
22097 "nhexl-mode-" version ".el"))
22098 (sha256
22099 (base32 "0qvxfg7sv4iqyjxzaim6b4v9k5hav36qd4vkf9jwzw6p5fri8w8d"))))
22100 (build-system emacs-build-system)
22101 (home-page "https://elpa.gnu.org/packages/nhexl-mode.html")
22102 (synopsis "Minor mode to edit files via hex-dump format")
22103 (description
22104 "This package implements NHexl mode, a minor mode for editing files
22105 in hex dump format. The mode command is called @command{nhexl-mode}.
22106
22107 This minor mode implements similar functionality to @command{hexl-mode},
22108 but using a different implementation technique, which makes it
22109 usable as a \"plain\" minor mode. It works on any buffer, and does
22110 not mess with the undo log or with the major mode.
22111
22112 It also comes with:
22113
22114 @itemize
22115 @item @command{nhexl-nibble-edit-mode}: a \"nibble editor\" minor mode, where
22116 the cursor pretends to advance by nibbles (4-bit) and the self-insertion keys
22117 (which only work for hex-digits) will only modify the nibble under point.
22118 @item @command{nhexl-overwrite-only-mode}: a minor mode to try and avoid
22119 moving text. In this minor mode, not only self-inserting keys overwrite
22120 existing text, but commands like `yank' and @command{kill-region} as well.
22121 @item It overrides @code{C-u} to use hexadecimal, so you can do @code{C-u a 4
22122 C-f} to advance by #xa4 characters.
22123 @end itemize")
22124 (license license:gpl3+)))
22125
22126 (define-public emacs-helm-wikipedia
22127 (let ((commit "126f044e0a0e1432e0791c33ce2a41875d704a9b"))
22128 (package
22129 (name "emacs-helm-wikipedia")
22130 (version (git-version "0.0.0" "1" commit))
22131 (home-page "https://github.com/emacs-helm/helm-wikipedia/")
22132 (source
22133 (origin
22134 (method git-fetch)
22135 (uri (git-reference
22136 (url home-page)
22137 (commit commit)))
22138 (file-name (git-file-name name version))
22139 (sha256
22140 (base32
22141 "148a5xsnbsiddhf9cl7yxdk41lrv38h0pip91kcflw9d7l0dp7pr"))))
22142 (build-system emacs-build-system)
22143 (inputs
22144 `(("helm" ,emacs-helm)))
22145 (synopsis "Search suggestions and article extracts from Wikipedia for Emacs")
22146 (description
22147 "This package provides an Emacs Helm interface for search suggestions
22148 and article extracts for Wikipedia.")
22149 (license license:gpl3+))))
22150
22151 (define-public emacs-webfeeder
22152 (package
22153 (name "emacs-webfeeder")
22154 (version "1.1.0")
22155 (source
22156 (origin
22157 (method url-fetch)
22158 (uri (string-append
22159 "https://elpa.gnu.org/packages/webfeeder-"
22160 version
22161 ".tar"))
22162 (sha256
22163 (base32
22164 "09wz6v58xc86hdnz6g54ckaxkm6844yyk2ffbxh4s5sdvgqrzdd8"))))
22165 (build-system emacs-build-system)
22166 (home-page "https://gitlab.com/Ambrevar/emacs-webfeeder")
22167 (synopsis "Build RSS and Atom webfeeds from HTML files")
22168 (description
22169 "Webfeeder is an Emacs library to generate RSS and Atom feeds from HTML
22170 files. The various elements of the HTML input are parsed with customizable
22171 functions (e.g. @code{webfeeder-title-function}).")
22172 (license license:gpl3+)))
22173
22174 (define-public emacs-evil-numbers
22175 (let ((commit "6ea1c8c3a9b37bed63d48f1128e9a4910e68187e"))
22176 (package
22177 (name "emacs-evil-numbers")
22178 (version (git-version "0.4" "1" commit))
22179 (source (origin
22180 (method git-fetch)
22181 (uri (git-reference
22182 (url "https://github.com/dieggsy/evil-numbers")
22183 (commit commit)))
22184 (file-name (git-file-name name version))
22185 (sha256
22186 (base32
22187 "1aq95hj8x13py0pwsnc6wvd8cc5yv5qin8ym9js42y5966vwj4np"))))
22188 (build-system emacs-build-system)
22189 (home-page "https://github.com/dieggsy/evil-numbers")
22190 (synopsis "Increment and decrement numbers in Emacs")
22191 (description "This package increments and decrements binary, octal,
22192 decimal and hex literals. It works like C-a/C-x in Vim, i.e. searches for
22193 number up to EOL and then increments or decrements and keeps zero padding up
22194 (unlike in Vim). When a region is active, as in Evil's visual mode, all the
22195 numbers within that region will be incremented/decremented (unlike in Vim).
22196
22197 It is a fork of https://github.com/cofi/evil-numbers, which is unmaintained.")
22198 (license license:gpl3+))))
22199
22200 (define-public emacs-rotate-text
22201 (package
22202 (name "emacs-rotate-text")
22203 (version "0.1")
22204 (source (origin
22205 (method git-fetch)
22206 (uri (git-reference
22207 (url "https://github.com/nschum/rotate-text.el")
22208 (commit version)))
22209 (file-name (git-file-name name version))
22210 (sha256
22211 (base32
22212 "1cgxv4aibkvv6lnssynn0438a615fz3zq8hg9sb0lhfgsr99pxln"))))
22213 (build-system emacs-build-system)
22214 (home-page "https://nschum.de/src/emacs/rotate-text/")
22215 (synopsis "Cycle through words, symbols and patterns in Emacs")
22216 (description "@code{rotate-text} allows you rotate to commonly
22217 interchanged text with a single keystroke. For example, you can toggle
22218 between \"frame-width\" and \"frame-height\", between \"public\",
22219 \"protected\" and \"private\" and between \"variable1\", \"variable2\" through
22220 \"variableN\".")
22221 (license license:gpl2+)))
22222
22223 (define-public emacs-ediprolog
22224 (package
22225 (name "emacs-ediprolog")
22226 (version "2.1")
22227 (source
22228 (origin
22229 (method url-fetch)
22230 (uri (string-append
22231 "https://elpa.gnu.org/packages/ediprolog-"
22232 version
22233 ".el"))
22234 (sha256
22235 (base32 "1piimsmzpirw8plrpy79xbpnvynzzhcxi31g6lg6is8gridiv3md"))))
22236 (build-system emacs-build-system)
22237 (home-page "https://elpa.gnu.org/packages/ediprolog.html")
22238 (synopsis "Emacs Does Interactive Prolog")
22239 (description "This package provides a major mode that let the user
22240 interact with SWI-Prolog in all buffers. For instance, one can consult Prolog
22241 programs and evaluate embedded queries. This mode is focused on the command
22242 @code{ediprolog-dwim} (Do What I Mean) which is supposed to, depending on the
22243 context, carry out the appropriate action.")
22244 (license license:gpl3+)))
22245
22246 (define-public emacs-evil-cleverparens
22247 (let ((commit "8c45879d49bfa6d4e414b6c1df700a4a51cbb869")
22248 (revision "1"))
22249 (package
22250 (name "emacs-evil-cleverparens")
22251 (version (git-version "2017-07-17" revision commit))
22252 (source (origin
22253 (method git-fetch)
22254 (uri (git-reference
22255 (url "https://github.com/luxbock/evil-cleverparens")
22256 (commit commit)))
22257 (sha256 (base32 "0lhnybpnk4n2yhlcnj9zxn0vi5hpjfaqfhvyfy7ckzz74g8v7iyw"))
22258 (file-name (git-file-name name version))))
22259 (build-system emacs-build-system)
22260 (propagated-inputs
22261 `(("emacs-evil" ,emacs-evil)
22262 ("emacs-paredit" ,emacs-paredit)
22263 ("emacs-smartparens" ,emacs-smartparens)))
22264 (home-page "https://github.com/luxbock/evil-cleverparens")
22265 (synopsis "Emacs modal editing optimized for editing Lisp")
22266 (description "@code{evil-cleverparens} remaps Evil keybindings to allow
22267 modal editing with screwing up the structure of Lisp code. Alternatives for
22268 verb commands which would are normally destructive (such as deletion) are
22269 provided. Those alternative commands are and bound by default to their
22270 corresponding Evil keys.")
22271 (license license:expat))))
22272
22273 (define-public emacs-evil-traces
22274 (let ((commit "1931e3ea2c64b4aec393a9c25063c330deff55e3")
22275 (revision "2"))
22276 (package
22277 (name "emacs-evil-traces")
22278 (version (git-version "0.0.1" revision commit))
22279 (source (origin
22280 (method git-fetch)
22281 (uri (git-reference
22282 (url "https://github.com/mamapanda/evil-traces")
22283 (commit commit)))
22284 (file-name (git-file-name name version))
22285 (sha256
22286 (base32
22287 "12p9lfxscs182vbd4dy0m5gacs3d4kyprbz5yndpwvl8g2qsqplz"))))
22288 (build-system emacs-build-system)
22289 (propagated-inputs
22290 `(("emacs-evil" ,emacs-evil)))
22291 (arguments
22292 `(#:phases
22293 (modify-phases %standard-phases
22294 (add-after 'unpack 'set-shell
22295 ;; Setting the SHELL environment variable is required for the tests
22296 ;; to find sh.
22297 (lambda _
22298 (setenv "SHELL" (which "sh"))
22299 #t)))
22300 #:tests? #t
22301 #:test-command '("make" "test")))
22302 (home-page "https://github.com/mamapanda/evil-traces")
22303 (synopsis "Visual hints for @code{evil-ex}")
22304 (description "This package adds visual hints to certain @code{ex}
22305 commands in @code{evil-mode}.")
22306 (license license:gpl3+))))
22307
22308 (define-public emacs-evil-tmux-navigator
22309 (package
22310 (name "emacs-evil-tmux-navigator")
22311 (version "0.1.5")
22312 (source
22313 (origin
22314 (method git-fetch)
22315 (uri
22316 (git-reference
22317 (url "https://github.com/keith/evil-tmux-navigator")
22318 (commit version)))
22319 (file-name (git-file-name name version))
22320 (sha256
22321 (base32
22322 "1na44rbc03sr5b4z9pvnps6n4nmrqcz58nywix9825l74a419ijx"))))
22323 (propagated-inputs
22324 `(("emacs-evil" ,emacs-evil)))
22325 (build-system emacs-build-system)
22326 (home-page "https://github.com/keith/evil-tmux-navigator")
22327 (synopsis
22328 "Navigate seamlessly between emacs windows and tmux panes")
22329 (description
22330 "This package lets you use C-h, C-j, C-k and C-l to navigate between
22331 Emacs windows and tmux panes.")
22332 (license license:expat)))
22333
22334 (define-public emacs-xclip
22335 (package
22336 (name "emacs-xclip")
22337 (version "1.10")
22338 (source
22339 (origin
22340 (method url-fetch)
22341 (uri (string-append "https://elpa.gnu.org/packages/"
22342 "xclip-" version ".el"))
22343 (sha256
22344 (base32 "0i3i9kwfg8qmhcmqhhnrb1kljgwkccv63s9q1mjwqfjldyfh8j8i"))))
22345 (build-system emacs-build-system)
22346 (home-page "http://elpa.gnu.org/packages/xclip.html")
22347 (synopsis "Copy and paste GUI clipboard from Emacs in text terminal")
22348 (description
22349 "This package allows Emacs to copy to and paste from the GUI clipboard
22350 when running in text terminal.
22351
22352 It can use external command-line tools for that, e.g., @command{xclip} or
22353 @command{xsel}, which you may need to install in order for the package to
22354 work.")
22355 (license license:gpl3+)))
22356
22357 (define-public emacs-xterm-color
22358 (package
22359 (name "emacs-xterm-color")
22360 (version "1.9")
22361 (source (origin
22362 (method git-fetch)
22363 (uri (git-reference
22364 (url "https://github.com/atomontage/xterm-color")
22365 (commit version)))
22366 (file-name (git-file-name name version))
22367 (sha256
22368 (base32
22369 "0i9ivc5xhl5y5v0l18kbhfg8s2abb9zaimyx951b8bc0f5as68xm"))))
22370 (build-system emacs-build-system)
22371 (home-page "https://github.com/atomontage/xterm-color")
22372 (synopsis "ANSI & xterm-256 color text property translator for Emacs")
22373 (description "@code{xterm-color.el} is an ANSI control sequence to
22374 text-property translator.")
22375 (license license:bsd-2)))
22376
22377 (define-public emacs-org-noter
22378 (package
22379 (name "emacs-org-noter")
22380 (version "1.4.1")
22381 (source
22382 (origin
22383 (method git-fetch)
22384 (uri (git-reference
22385 (url "https://github.com/weirdNox/org-noter")
22386 (commit version)))
22387 (file-name (git-file-name name version))
22388 (sha256
22389 (base32
22390 "1vwfpdi7hfkxx4vi0cwg7rvqby3i0mymzdkyzrqzv30dazmcjpag"))))
22391 (build-system emacs-build-system)
22392 (propagated-inputs `(("emacs-org" ,emacs-org)))
22393 (home-page "https://github.com/weirdNox/org-noter")
22394 (synopsis "Synchronized, Org-mode, document annotator")
22395 (description
22396 "This package lets you create notes that are kept in sync when you
22397 scroll through the document, but that are external to it---the notes
22398 themselves live in an Org-mode file. As such, this leverages the power of
22399 Org-mode (the notes may have outlines, latex fragments, babel, etc...) while
22400 acting like notes that are made @emph{in} the document.")
22401 (license license:gpl3+)))
22402
22403 (define-public emacs-org-redmine
22404 (let ((commit "e77d013bc3784947c46a5c53f03cd7d3c68552fc"))
22405 (package
22406 (name "emacs-org-redmine")
22407 (version (git-version "0.1" "1" commit))
22408 (source (origin
22409 (method git-fetch)
22410 (uri (git-reference
22411 (url "https://github.com/gongo/org-redmine")
22412 (commit commit)))
22413 (file-name (git-file-name name version))
22414 (sha256
22415 (base32
22416 "06miv3mf2a39vkf6mmm5ssc47inqh7dq82khsyc03anz4d4lj822"))))
22417 (build-system emacs-build-system)
22418 (home-page "https://github.com/gongo/org-redmine/")
22419 (synopsis "Redmine tools using Emacs")
22420 (description "This program provides an Emacs client for Redmine.")
22421 (license license:gpl3+))))
22422
22423 (define-public emacs-multi-term
22424 ;; No upstream release. Extract version from main file.
22425 (let ((commit "017c77c550115936860e2ea71b88e585371475d5")
22426 (revision "0"))
22427 (package
22428 (name "emacs-multi-term")
22429 (version (git-version "1.5" revision commit))
22430 (source
22431 (origin
22432 (method git-fetch)
22433 (uri (git-reference
22434 (url "https://github.com/manateelazycat/multi-term")
22435 (commit commit)))
22436 (file-name (git-file-name name version))
22437 (sha256
22438 (base32 "043dqd8i8h6hbcg11rzprxin2yq5lb902zlrb7mxah44vyp8wrdi"))))
22439 (build-system emacs-build-system)
22440 (inputs
22441 `(("zsh" ,zsh)))
22442 (home-page "https://github.com/manateelazycat/multi-term")
22443 (synopsis "Manage multiple terminal buffers in Emacs")
22444 (description
22445 "This package enhances @code{term.el} with the following features:
22446
22447 @enumerate
22448 @item Functions to switch between multiple terminal buffers
22449 @item List of keys to be intercepted by @code{emacs-multi-term} instead of by
22450 the underlying terminal
22451 @item Kills the unused buffer left after exiting the terminal
22452 @item Kills the running sub-processes along with the terminal when killing the
22453 it forcibly
22454 @item Dedicated window for debugging program.
22455 @end enumerate")
22456 (license license:gpl3+))))
22457
22458 (define-public emacs-elpher
22459 (package
22460 (name "emacs-elpher")
22461 (version "2.10.2")
22462 (source
22463 (origin
22464 (method git-fetch)
22465 (uri (git-reference
22466 (url "git://thelambdalab.xyz/elpher.git")
22467 (commit (string-append "v" version))))
22468 (file-name (git-file-name name version))
22469 (sha256
22470 (base32 "0xqiisirpvw4ka9417pq4r73x937wl3qbf8cpn2i03akm8d58smd"))))
22471 (build-system emacs-build-system)
22472 (native-inputs
22473 `(("texinfo" ,texinfo)))
22474 (arguments
22475 `(#:phases
22476 (modify-phases %standard-phases
22477 (add-before 'install 'build-doc
22478 (lambda _
22479 (invoke "makeinfo" "elpher.texi"))))))
22480 (home-page "gopher://thelambdalab.xyz/1/projects/elpher/")
22481 (synopsis "Gopher client for Emacs")
22482 (description "Elpher is a full-featured gopher client for Emacs. Its
22483 features include intuitive keyboard and mouse-driven browsing, out-of-the-box
22484 compatibility with evil-mode, clickable web and gopher links in plain text,
22485 caching of visited sites, pleasant and configurable visualization of Gopher
22486 directories, direct visualisation of image files, jumping directly to links by
22487 name (with autocompletion), a simple bookmark management system and
22488 connections using TLS encryption.")
22489 (license license:gpl3+)))
22490
22491 (define-public emacs-zerodark-theme
22492 (package
22493 (name "emacs-zerodark-theme")
22494 (version "4.6")
22495 (source
22496 (origin
22497 (method git-fetch)
22498 (uri (git-reference
22499 (url "https://github.com/NicolasPetton/zerodark-theme")
22500 (commit version)))
22501 (file-name (git-file-name name version))
22502 (sha256
22503 (base32
22504 "0pfyd1iqs7l2ngwgvj9n0r9k1px7yl16h8n502xdyf0pprxcs4p6"))))
22505 (build-system emacs-build-system)
22506 (propagated-inputs
22507 `(("emacs-flycheck" ,emacs-flycheck)
22508 ("emacs-all-the-icons" ,emacs-all-the-icons)))
22509 (home-page
22510 "https://gitlab.petton.fr/nico/zerodark-theme")
22511 (synopsis
22512 "Dark, medium contrast theme for Emacs")
22513 (description
22514 "Zerodark is a dark theme inspired from One Dark and Niflheim.
22515 An optional mode-line format can be enabled with @code{zerodark-setup-modeline-format}.")
22516 (license license:gpl3+)))
22517
22518 (define-public emacs-gnus-alias
22519 (package
22520 (name "emacs-gnus-alias")
22521 (version "20150316")
22522 (source (origin
22523 (method git-fetch)
22524 (uri (git-reference
22525 (url "https://github.com/hexmode/gnus-alias")
22526 (commit "9447d3ccb4c0e75d0468899cccff7aa249657bac")))
22527 (file-name (git-file-name name version))
22528 (sha256
22529 (base32
22530 "1i278npayv3kfxxd1ypi9n83q5l402sbc1zkm11pf8g006ifqsp4"))))
22531 (build-system emacs-build-system)
22532 (home-page "https://melpa.org/#/gnus-alias")
22533 (synopsis "Alternative to @code{gnus-posting-styles}")
22534 (description "This Emacs add-on provides a simple mechanism to switch
22535 Identities when using a @code{message-mode} or a @code{message-mode} derived
22536 mode. Identities can include @code{From} and @code{Organisation} headers,
22537 extra headers, body and signature. Other features include:
22538
22539 @itemize
22540 @item Switch Identities in a message buffer.
22541 @item Access original message to help determine Identity of the followup/reply
22542 message.
22543 @item Act on a forwarded message as if it were a message being replied to.
22544 @item Start a new message with a given Identity pre-selected.
22545 @end itemize")
22546 (license license:gpl2+)))
22547
22548 (define-public emacs-ox-epub
22549 (package
22550 (name "emacs-ox-epub")
22551 (version "0.3")
22552 (source (origin
22553 (method git-fetch)
22554 (uri (git-reference
22555 (url "https://github.com/ofosos/ox-epub")
22556 (commit (string-append "v" version))))
22557 (file-name (git-file-name name version))
22558 (sha256
22559 (base32
22560 "057sqmvm8hwkhcg3yd4i8zz2xlqsqrpyiklyiw750s3i5mxdn0k7"))))
22561 (build-system emacs-build-system)
22562 (home-page "https://github.com/ofosos/ox-epub")
22563 (synopsis "Export org mode projects to EPUB")
22564 (description "@code{ox-epub} extends the (X)HTML exporter to generate
22565 @code{.epub} files directly from OrgMode. This will export EPUB version 2,
22566 which should give broad compatibility. It should also be relatiely easy to
22567 convert the resulting @code{.epub} to a @code{.mobi} file. Needs a working
22568 zip utility (default is @code{zip}).")
22569 (license license:gpl3+)))
22570
22571 (define-public emacs-ox-hugo
22572 (package
22573 (name "emacs-ox-hugo")
22574 (version "0.8")
22575 (source
22576 (origin
22577 (method git-fetch)
22578 (uri (git-reference
22579 (url "https://github.com/kaushalmodi/ox-hugo")
22580 (commit (string-append "v" version))))
22581 (file-name (git-file-name name version))
22582 (sha256
22583 (base32
22584 "11h464cyc28ld0b0zridgm4drydc1qjxbm1y24zrwlkyqqjk6yr7"))))
22585 (build-system emacs-build-system)
22586 (home-page "https://ox-hugo.scripter.co")
22587 (synopsis "Hugo markdown back-end for Org export engine")
22588 (description
22589 "Ox-hugo is an Org exporter backend that exports Org to Hugo-compatible
22590 Markdown, Blackfriday, and also generates the front-matter in TOML or YAML
22591 format.")
22592 (license license:gpl3+)))
22593
22594 (define-public emacs-ox-pandoc
22595 (package
22596 (name "emacs-ox-pandoc")
22597 (version "20180510")
22598 (source (origin
22599 (method git-fetch)
22600 (uri (git-reference
22601 (url "https://github.com/kawabata/ox-pandoc")
22602 (commit "aa37dc7e94213d4ebedb85c384c1ba35007da18e")))
22603 (file-name (git-file-name name version))
22604 (sha256
22605 (base32
22606 "0iibxplgdp34bpq1yll2gmqjd8d8lnqn4mqjvx6cdf0y438yr4jz"))))
22607 (build-system emacs-build-system)
22608 (inputs
22609 `(("pandoc" ,pandoc)))
22610 (propagated-inputs
22611 `(("emacs-dash" ,emacs-dash)
22612 ("emacs-ht" ,emacs-ht)))
22613 (home-page "https://github.com/kawabata/ox-pandoc")
22614 (synopsis "Org exporter for Pandoc")
22615 (description "@code{ox-pandoc} is an exporter for converting Org-mode
22616 files to numerous other formats via Pandoc.")
22617 (license license:gpl3+)))
22618
22619 (define-public emacs-wc-mode
22620 (package
22621 (name "emacs-wc-mode")
22622 (version "1.3")
22623 (source (origin
22624 (method git-fetch)
22625 (uri (git-reference
22626 (url "https://github.com/bnbeckwith/wc-mode")
22627 (commit (string-append "v" version))))
22628 (file-name (git-file-name name version))
22629 (sha256
22630 (base32
22631 "0pjlxv46zzqdq6q131jb306vqlg4sfqls1x8vag7mmfw462hafqp"))))
22632 (build-system emacs-build-system)
22633 (home-page "https://github.com/bnbeckwith/wc-mode")
22634 (synopsis "Running word count with goals (minor mode)")
22635 (description "@code{wc-mode} is a minor mode, providing a ‘wc’ function
22636 for Emacs buffers as well as a modeline addition with live word, line and
22637 character counts. Additionally, a user can set specific goals for adding or
22638 deleting words. These goals were partly inspired by 750words.com where the
22639 goal of the site is to encourage writing by setting a goal of 750 words at a
22640 time.")
22641 (license license:gpl3+)))
22642
22643 (define-public emacs-mastodon
22644 (package
22645 (name "emacs-mastodon")
22646 (version "0.9.0")
22647 (source (origin
22648 (method git-fetch)
22649 (uri (git-reference
22650 (url "https://github.com/jdenen/mastodon.el")
22651 (commit version)))
22652 (file-name (git-file-name name version))
22653 (sha256
22654 (base32
22655 "0hwax6y9dghqwsbnb6f1bnc7gh8xsh5cvcnayk2sn49x8b0zi5h1"))))
22656 (build-system emacs-build-system)
22657 (arguments
22658 `(#:phases
22659 (modify-phases %standard-phases
22660 ;; Move the source files to the top level, which is included in
22661 ;; the EMACSLOADPATH.
22662 (add-after 'unpack 'move-source-files
22663 (lambda _
22664 (let ((el-files (find-files "./lisp" ".*\\.el$")))
22665 (for-each (lambda (f)
22666 (rename-file f (basename f)))
22667 el-files))
22668 #t)))))
22669 (home-page "https://github.com/jdenen/mastodon.el")
22670 (synopsis "Emacs client for Mastodon")
22671 (description "@code{mastodon.el} is an Emacs client for Mastodon, the
22672 federated microblogging social network.")
22673 (license license:gpl3+)))
22674
22675 (define-public emacs-ebdb
22676 (package
22677 (name "emacs-ebdb")
22678 (version "0.6.20")
22679 (source
22680 (origin
22681 (method url-fetch)
22682 (uri (string-append "https://elpa.gnu.org/packages/"
22683 "ebdb-" version ".tar"))
22684 (sha256
22685 (base32 "1rhmnz2g4nmk893gzxm1hfwqf5nan20yss5mxilfpza2jh4368h3"))))
22686 (build-system emacs-build-system)
22687 (home-page "https://github.com/girzel/ebdb")
22688 (synopsis "EIEIO port of BBDB, Emacs's contact-management package")
22689 (description
22690 "EBDB is a contact management/addressbook package for Emacs. It's
22691 a re-write of the Insidious Big Brother Database (BBDB) using Emacs
22692 Lisp's (relatively new) EIEIO object oriented libraries.")
22693 (license license:gpl3+)))
22694
22695 (define-public emacs-refactor
22696 (package
22697 (name "emacs-refactor")
22698 (version "0.4")
22699 (source (origin
22700 (method git-fetch)
22701 (uri (git-reference
22702 (url "https://github.com/Wilfred/emacs-refactor")
22703 (commit version)))
22704 (file-name (git-file-name name version))
22705 (sha256
22706 (base32
22707 "1yky7vlv91501xb43xk19rr8mxlvrsxhawsc98jivf64nad5dqay"))))
22708 (build-system emacs-build-system)
22709 (propagated-inputs
22710 `(("emacs-dash" ,emacs-dash)
22711 ("emacs-s" ,emacs-s)
22712 ("emacs-popup" ,emacs-popup)
22713 ("emacs-list-utils" ,emacs-list-utils)
22714 ("emacs-iedit" ,emacs-iedit)))
22715 (home-page "https://github.com/Wilfred/emacs-refactor/")
22716 (synopsis "Language-specific refactoring in Emacs")
22717 (description "Emacs Refactor (EMR) is a framework for providing
22718 language-specific refactoring in Emacs. It includes refactoring commands for
22719 a variety of languages, including elisp itself.")
22720 (license license:gpl3+)))
22721
22722 (define-public emacs-flyspell-correct
22723 (package
22724 (name "emacs-flyspell-correct")
22725 (version "0.5")
22726 (source
22727 (origin
22728 (method git-fetch)
22729 (uri (git-reference
22730 (url "https://github.com/d12frosted/flyspell-correct")
22731 (commit (string-append "v" version))))
22732 (file-name (git-file-name name version))
22733 (sha256
22734 (base32
22735 "1r9hmz7sihhy7npv6nxp04sy57glzmfax5d67mwn96fdnc0yhlnd"))))
22736 (build-system emacs-build-system)
22737 (propagated-inputs
22738 `(("emacs-helm" ,emacs-helm)
22739 ("emacs-ivy" ,emacs-ivy)
22740 ("emacs-popup" ,emacs-popup)))
22741 (home-page
22742 "https://github.com/d12frosted/flyspell-correct")
22743 (synopsis
22744 "Correcting words with flyspell via custom interfaces")
22745 (description
22746 "This package provides functionality for correcting words via custom
22747 interfaces. Several interfaces are supported beside the classic ido: popup,
22748 helm and ivy.")
22749 (license license:gpl3+)))
22750
22751 (define-public emacs-org-emms
22752 (let ((commit "07a8917f3d628c32e5de1dbd118ac08203772533")
22753 (revision "1"))
22754 (package
22755 (name "emacs-org-emms")
22756 (version
22757 (git-version "0.1" revision commit))
22758 (source
22759 (origin
22760 (method git-fetch)
22761 (uri (git-reference
22762 (url "https://gitlab.com/jagrg/org-emms.git")
22763 (commit commit)))
22764 (file-name (git-file-name name commit))
22765 (sha256
22766 (base32
22767 "1sqsm5sv311xfdk4f4rsnvprdf2v2vm7l1b3vqi7pc0g8adlnw1d"))))
22768 (build-system emacs-build-system)
22769 (propagated-inputs
22770 `(("emms" ,emacs-emms)
22771 ("emacs-org" ,emacs-org)))
22772 (home-page "https://gitlab.com/jagrg/org-emms")
22773 (synopsis "Play multimedia files from org-mode")
22774 (description
22775 "This package provides a new org link type for playing back multimedia
22776 files from org-mode using EMMS, The Emacs Multimedia System. If the link
22777 contains a track position, playback will start at the specified position.")
22778 (license license:gpl3+))))
22779
22780 (define-public emacs-org-jira
22781 (package
22782 (name "emacs-org-jira")
22783 (version "4.3.1")
22784 (source
22785 (origin
22786 (method git-fetch)
22787 (uri (git-reference
22788 (url "https://github.com/ahungry/org-jira")
22789 (commit version)))
22790 (file-name (git-file-name name version))
22791 (sha256
22792 (base32
22793 "1l80r2a9zzbfk2c78i40h0ww79vm9v4j6xi2h5i4w9kqh10rs6h2"))))
22794 (build-system emacs-build-system)
22795 (propagated-inputs
22796 `(("emacs-request" ,emacs-request)
22797 ("emacs-s" ,emacs-s)
22798 ("emacs-dash" ,emacs-dash)
22799 ("emacs-org" ,emacs-org)))
22800 (home-page "https://github.com/ahungry/org-jira")
22801 (synopsis "Syncing between Jira and Org-mode")
22802 (description
22803 "This package provides an extension to org-mode for syncing issues with
22804 JIRA issue servers.")
22805 (license license:gpl3+)))
22806
22807 (define-public emacs-systemd-mode
22808 (package
22809 (name "emacs-systemd-mode")
22810 (version "1.6")
22811 (source (origin
22812 (method git-fetch)
22813 (uri (git-reference
22814 (url "https://github.com/holomorph/systemd-mode")
22815 (commit (string-append "v" version))))
22816 (file-name (git-file-name name version))
22817 (sha256
22818 (base32
22819 "0ylgnvpfindg4cxccbqy02ic7p0i9rygf1w16dm1filwhbqvjplq"))))
22820 (build-system emacs-build-system)
22821 (arguments '(#:include '("\\.el$" "\\.txt$")))
22822 (home-page "https://github.com/holomorph/systemd-mode")
22823 (synopsis
22824 "Major mode for editing systemd units")
22825 (description
22826 "Major mode for editing systemd units in GNU Emacs.")
22827 (license license:gpl3+)))
22828
22829 (define-public emacs-ssh-config-mode
22830 (let ((commit "4c1dfa57d452cb5654453bf186c8ff63e1e71b56")
22831 (revision "1"))
22832 (package
22833 (name "emacs-ssh-config-mode")
22834 (version (git-version "8.0" revision commit))
22835 (source
22836 (origin
22837 (method git-fetch)
22838 (uri
22839 (git-reference
22840 (url "https://github.com/jhgorrell/ssh-config-mode-el")
22841 (commit commit)))
22842 (file-name (git-file-name name commit))
22843 (sha256
22844 (base32
22845 "0crglfdazzckizbwzmgl2rn6j85avfzkr1q7ijxd17rp2anvr9bd"))))
22846 (build-system emacs-build-system)
22847 (arguments '(#:include '("\\.el$" "\\.txt$")))
22848 (home-page
22849 "https://github.com/jhgorrell/ssh-config-mode-el")
22850 (synopsis
22851 "Mode for fontification of ~/.ssh/config")
22852 (description
22853 "This package fontifies the ssh config keywords and creates
22854 keybindings for skipping from host section to host section.")
22855 (license license:gpl3+))))
22856
22857 (define-public emacs-ssh-agency
22858 (package
22859 (name "emacs-ssh-agency")
22860 (version "0.4")
22861 (source (origin
22862 (method git-fetch)
22863 (uri (git-reference
22864 (url "https://github.com/magit/ssh-agency")
22865 (commit version)))
22866 (file-name (git-file-name name version))
22867 (sha256
22868 (base32
22869 "0895n7bss4wdydic1gflr03f2cwdyqywl16gvb599lpn288jhwvz"))))
22870 (build-system emacs-build-system)
22871 (propagated-inputs
22872 `(("dash" ,emacs-dash)))
22873 (home-page "https://github.com/magit/ssh-agency")
22874 (synopsis "Manage @code{ssh-agent} from Emacs")
22875 (description
22876 "This package provides functions to startup @code{ssh-agent}, set the
22877 needed environment variables in Emacs, and prompt for passphrases from within
22878 Emacs so that pushes and pulls from @code{magit} will not require entering any
22879 passphrase.
22880
22881 It can also be useful on Unix-like platforms to delay having to enter your
22882 passphrase until the first time you push to a remote.")
22883 (license license:gpl3+)))
22884
22885 (define-public emacs-tao-theme
22886 (let ((commit "c5107fbe7e752f4e58c2d2147ff18a1ebb12937c")
22887 (revision "0"))
22888 (package
22889 (name "emacs-tao-theme")
22890 (version (git-version "0" revision commit))
22891 (source
22892 (origin
22893 (method git-fetch)
22894 (uri (git-reference
22895 (url "https://github.com/11111000000/tao-theme-emacs")
22896 (commit commit)))
22897 (file-name (git-file-name name version))
22898 (sha256
22899 (base32
22900 "07vvlglmkj87hpxz79s3bl2cjn71vain57fdxs7j9vlr5jkchxwn"))))
22901 (build-system emacs-build-system)
22902 (home-page "https://github.com/11111000000/tao-theme-emacs")
22903 (synopsis "Parameterized uncolored color themes for Emacs")
22904 (description
22905 "This package provides two parameterized uncolored color themes for
22906 Emacs: @code{tao-yin} and @code{tao-yang}. The default
22907 @code{tao-theme-scale-fn} is @code{tao-theme-golden-scale}.
22908
22909 You can customize: @code{tao-theme-scale-fn}, that returns 16 2-digit numbers;
22910 @code{tao-theme-scale-filter-fn}, for edge filter; and
22911 @code{tao-theme-use-height}.")
22912 (license license:gpl3+))))
22913
22914 (define-public emacs-almost-mono-themes
22915 (let ((commit "c3a85c1a665530a5d830665969725cdba8eceb75")
22916 (revision "0"))
22917 (package
22918 (name "emacs-almost-mono-themes")
22919 (version (git-version "0" revision commit))
22920 (source
22921 (origin
22922 (method git-fetch)
22923 (uri (git-reference
22924 (url "https://github.com/cryon/almost-mono-themes")
22925 (commit commit)))
22926 (file-name (git-file-name name version))
22927 (sha256
22928 (base32
22929 "034k32xkr5ma415hlkbl35z0jxc4sa1inf87hg3y6lrlfl83fyjh"))))
22930 (build-system emacs-build-system)
22931 (home-page "https://github.com/cryon/almost-mono-themes")
22932 (synopsis "Almost monochromatic themes for emacs in a few variants")
22933 (description
22934 "This package provides a collection of almost monochrome Emacs themes:
22935 @code{almost-mono-black} and @code{almost-mono-white}.")
22936 (license license:gpl3+))))
22937
22938 (define-public emacs-quasi-monochrome
22939 (let ((commit "68060dbbc0bbfe4924387392874186c5a29bb434")
22940 (revision "0"))
22941 (package
22942 (name "emacs-quasi-monochrome")
22943 (version (git-version "1.2" revision commit))
22944 (source
22945 (origin
22946 (method git-fetch)
22947 (uri (git-reference
22948 (url "https://github.com/lbolla/emacs-quasi-monochrome")
22949 (commit commit)))
22950 (file-name (git-file-name name version))
22951 (sha256
22952 (base32
22953 "0zp2xr0bjfqrpb0bqczzick1vvbjmipjavrdi70kw6a9caynvq22"))))
22954 (build-system emacs-build-system)
22955 (home-page "https://github.com/lbolla/emacs-quasi-monochrome")
22956 (synopsis "Dark color theme for Emacs")
22957 (description
22958 "This package provides a dark color theme with a black background, high
22959 contrast and few colors.")
22960 (license license:gpl3+))))
22961
22962 (define-public emacs-doom-themes
22963 (let ((commit "e803fc4ac8cf7118e2d1544d8241b848b5e79e9f")
22964 (revision "5")
22965 (version "2.1.6"))
22966 (package
22967 (name "emacs-doom-themes")
22968 (version (git-version version revision commit))
22969 (source (origin
22970 (method git-fetch)
22971 (uri (git-reference
22972 (url "https://github.com/hlissner/emacs-doom-themes")
22973 (commit commit)))
22974 (file-name (git-file-name name version))
22975 (sha256
22976 (base32 "128hdmf0jkzr12fv2r6z349qiwba6q97hsb6b1n2qlhi0v5v3mfh"))))
22977 (build-system emacs-build-system)
22978 (native-inputs
22979 `(("emacs-ert-runner" ,emacs-ert-runner)))
22980 (arguments
22981 `(#:tests? #t
22982 #:test-command '("ert-runner")
22983 #:modules ((guix build emacs-build-system)
22984 (guix build utils)
22985 (guix build emacs-utils)
22986 (srfi srfi-1))
22987 #:phases
22988 (modify-phases %standard-phases
22989 (add-after 'unpack 'move-themes
22990 (lambda _
22991 ;; Move the source files to the top level, which is in the
22992 ;; EMACSLOADPATH.
22993 (for-each (lambda (f)
22994 (rename-file f (basename f)))
22995 (find-files "./themes" ".*\\.el$"))
22996 #t)))))
22997 (synopsis "Wide collection of color themes for Emacs")
22998 (description "Emacs-doom-themes contains numerous popular color themes for
22999 Emacs that integrate with major modes like Org-mode.")
23000 (home-page "https://github.com/hlissner/emacs-doom-themes")
23001 (license license:expat))))
23002
23003 (define-public emacs-modus-operandi-theme
23004 (package
23005 (name "emacs-modus-operandi-theme")
23006 (version "0.13.0")
23007 (source
23008 (origin
23009 (method git-fetch)
23010 (uri (git-reference
23011 (url "https://gitlab.com/protesilaos/modus-themes")
23012 (commit version)))
23013 (file-name (git-file-name name version))
23014 (sha256
23015 (base32 "0i6n3pzrmlgabsijy6z0hhs71q7g99yagwr2m33lr30skqc9rvdn"))))
23016 (build-system emacs-build-system)
23017 (arguments
23018 `(#:phases
23019 (modify-phases %standard-phases
23020 (add-after 'unpack 'remove-other-theme
23021 (lambda _
23022 (delete-file "modus-vivendi-theme.el")
23023 #t)))))
23024 (home-page "https://gitlab.com/protesilaos/modus-themes")
23025 (synopsis "Accessible light theme (WCAG AAA)")
23026 (description
23027 "Modus operandi is the light version of the Modus accessible themes for
23028 GNU Emacs. The contrast ratio between foreground and background values should
23029 always be greater than 7:1, which conforms with the WCAG AAA accessibility
23030 standard. This is the highest standard of its kind.")
23031 (license license:gpl3+)))
23032
23033 (define-public emacs-modus-vivendi-theme
23034 (package
23035 (name "emacs-modus-vivendi-theme")
23036 (version "0.13.0")
23037 (source
23038 (origin
23039 (method git-fetch)
23040 (uri (git-reference
23041 (url "https://gitlab.com/protesilaos/modus-themes")
23042 (commit version)))
23043 (file-name (git-file-name name version))
23044 (sha256
23045 (base32 "0i6n3pzrmlgabsijy6z0hhs71q7g99yagwr2m33lr30skqc9rvdn"))))
23046 (build-system emacs-build-system)
23047 (arguments
23048 `(#:phases
23049 (modify-phases %standard-phases
23050 (add-after 'unpack 'remove-other-theme
23051 (lambda _
23052 (delete-file "modus-operandi-theme.el")
23053 #t)))))
23054 (home-page "https://gitlab.com/protesilaos/modus-themes")
23055 (synopsis "Accessible dark theme (WCAG AAA)")
23056 (description
23057 "Modus vivendi is the dark version of the Modus accessible themes for GNU
23058 Emacs. The contrast ratio between foreground and background values should
23059 always be greater than 7:1, which conforms with the WCAG AAA accessibility
23060 standard. This is the highest standard of its kind.")
23061 (license license:gpl3+)))
23062
23063 (define-public emacs-modus-themes
23064 (deprecated-package "emacs-modus-themes" emacs-modus-operandi-theme))
23065
23066 (define-public emacs-punpun-theme
23067 (let ((commit "2f78125609277b2478abdebd8f9d5ee10a823b65")
23068 (revision "0"))
23069 (package
23070 (name "emacs-punpun-theme")
23071 (version (git-version "0" revision commit))
23072 (source
23073 (origin
23074 (method git-fetch)
23075 (uri (git-reference
23076 (url "https://github.com/wasamasa/punpun-theme")
23077 (commit commit)))
23078 (file-name (git-file-name name version))
23079 (sha256
23080 (base32
23081 "1sgxrj3igzq86h3whfymxf4qzv9kpvcrlhbvjmnp7fwrplys0n7d"))))
23082 (build-system emacs-build-system)
23083 (home-page "https://github.com/wasamasa/punpun-theme")
23084 (synopsis "Bleak Emacs theme")
23085 (description
23086 "A bleak theme. Uses shades of gray and the occasional splash of
23087 color. Designed for 256-color terminals. Comes in light and dark!")
23088 (license license:gpl3+))))
23089
23090 (define-public emacs-spacemacs-theme
23091 (let ((commit "f79c40fb241e204539fde97200abae91e828e585")
23092 (revision "1"))
23093 (package
23094 (name "emacs-spacemacs-theme")
23095 (version (git-version "0" revision commit)) ;no release yet
23096 (source
23097 (origin
23098 (method git-fetch)
23099 (uri (git-reference
23100 (url "https://github.com/nashamri/spacemacs-theme")
23101 (commit commit)))
23102 (file-name (git-file-name name version))
23103 (sha256
23104 (base32 "1l2kkiyrskkpx8f901v0wrzaah1wjg15zdyv88spj3mh3hwd3b6n"))))
23105 (build-system emacs-build-system)
23106 (home-page "https://github.com/nashamri/spacemacs-theme")
23107 (synopsis
23108 "Light and dark theme for spacemacs that supports GUI and terminal")
23109 (description
23110 "Spacemacs theme is an Emacs color theme that started as
23111 a theme for Spacemacs. The theme comes with dark and light variants
23112 and it should work well with 256 color terminals.")
23113 (license license:gpl3+))))
23114
23115 (define-public emacs-elixir-mode
23116 (package
23117 (name "emacs-elixir-mode")
23118 (version "2.3.1")
23119 (source
23120 (origin
23121 (method git-fetch)
23122 (uri (git-reference
23123 (url "https://github.com/elixir-editors/emacs-elixir")
23124 (commit (string-append "v" version))))
23125 (file-name (git-file-name name version))
23126 (sha256
23127 (base32 "06bi68x49v6f7flpz279mm4jpg31ll3s274givm3pvr8slcxs6xg"))))
23128 (build-system emacs-build-system)
23129 (propagated-inputs
23130 `(("emacs-pkg-info" ,emacs-pkg-info)))
23131 (home-page
23132 "https://github.com/elixir-editors/emacs-elixir")
23133 (synopsis "Major mode for editing Elixir files")
23134 (description
23135 "Elixir-Mode provides font-locking, indentation and navigation support
23136 for the Elixir programming language.")
23137 (license license:gpl3+)))
23138
23139 (define-public emacs-dimmer
23140 (package
23141 (name "emacs-dimmer")
23142 (version "0.4.2")
23143 (source
23144 (origin
23145 (method git-fetch)
23146 (uri (git-reference
23147 (url "https://github.com/gonewest818/dimmer.el")
23148 (commit version)))
23149 (file-name (git-file-name name version))
23150 (sha256
23151 (base32
23152 "0dw0qh5hm1x76s5cqxvylvmjgy0jwy11xm258g6kmx6w1k6r1d2l"))))
23153 (build-system emacs-build-system)
23154 (home-page "https://github.com/gonewest818/dimmer.el")
23155 (synopsis "Visually highlights the selected buffer in Emacs")
23156 (description "Dimmer provides a minor mode that indicates which buffer is
23157 currently active by dimming the faces in the other buffers. It does this
23158 nondestructively, and computes the dimmed faces dynamically such that your
23159 overall color scheme is shown in a muted form without requiring you to define
23160 what is a \"dim\" version of every face.")
23161 (license license:gpl3+)))
23162
23163 (define-public emacs-minibuffer-line
23164 (package
23165 (name "emacs-minibuffer-line")
23166 (version "0.1")
23167 (source
23168 (origin
23169 (method url-fetch)
23170 (uri (string-append
23171 "https://elpa.gnu.org/packages/minibuffer-line-"
23172 version
23173 ".el"))
23174 (sha256
23175 (base32 "1ny4iirp26na5118wfgxlv6fxlrdclzdbd9m0lkrv51w0qw7spil"))))
23176 (build-system emacs-build-system)
23177 (home-page "https://elpa.gnu.org/packages/minibuffer-line.html")
23178 (synopsis "Display status info in the minibuffer window")
23179 (description
23180 "This package lets you display various status information in the
23181 minibuffer window instead of the mode-line. Of course, this is only displayed
23182 when the minibuffer window is not already used for other things (e.g. a
23183 minibuffer or an each area message).
23184
23185 The contents and aspect is controlled by the @code{minibuffer-line-format}
23186 variable and the @code{minibuffer-line} face.")
23187 (license license:gpl3+)))
23188
23189 (define-public emacs-eshell-prompt-extras
23190 (package
23191 (name "emacs-eshell-prompt-extras")
23192 (version "1.0")
23193 (home-page "https://github.com/zwild/eshell-prompt-extras")
23194 (source
23195 (origin
23196 (method git-fetch)
23197 (uri (git-reference
23198 (url home-page)
23199 (commit version)))
23200 (file-name (git-file-name name version))
23201 (sha256
23202 (base32
23203 "0gb07mns23dgqqr6qfy7d6ndizy15sqgbgfaig6k5xbjnwi02v9g"))))
23204 (build-system emacs-build-system)
23205 (synopsis "Display extra information and color for your Eshell prompt")
23206 (description "This library displays various customizable elements for
23207 @code{eshell} prompts: remote user, remote host, python virtual environment
23208 info, git branch, git dirty info and git unpushed number. Multiple themes are
23209 available.")
23210 (license license:gpl3+)))
23211
23212 (define-public emacs-eshell-did-you-mean
23213 (package
23214 (name "emacs-eshell-did-you-mean")
23215 (version "0.1")
23216 (home-page "https://github.com/xuchunyang/eshell-did-you-mean")
23217 (source
23218 (origin
23219 (method git-fetch)
23220 (uri (git-reference
23221 (url home-page)
23222 (commit (string-append "v" version))))
23223 (file-name (git-file-name name version))
23224 (sha256
23225 (base32
23226 "0v0wshck5n4hspcv1zk1g2nm6xiigcjp16lx0dc8wzkl6ymljvbg"))))
23227 (build-system emacs-build-system)
23228 (synopsis "Display suggestions on 'command not found' in Eshell")
23229 (description "This library adds a list of 'Did you mean...' suggestions
23230 when the command was not found in Eshell. The suggestions are found after the
23231 commands that bear resemblance to the input command.")
23232 (license license:gpl3+)))
23233
23234 (define-public emacs-unfill
23235 (package
23236 (name "emacs-unfill")
23237 (version "0.2")
23238 (home-page "https://github.com/purcell/unfill")
23239 (source
23240 (origin
23241 (method git-fetch)
23242 (uri (git-reference
23243 (url home-page)
23244 (commit version)))
23245 (file-name (git-file-name name version))
23246 (sha256
23247 (base32 "0wyradin5igp25nsd3n22i2ppxhmy49ac1iq1w2715v8pfmiydnc"))))
23248 (build-system emacs-build-system)
23249 (synopsis "Inverse of Emacs' @code{fill-paragraph} and @code{fill-region}")
23250 (description
23251 "The functions in this package provide the inverse of Emacs'
23252 @code{fill-paragraph} and @code{fill-region}.")
23253 (license license:gpl3+)))
23254
23255 (define-public emacs-windower
23256 (package
23257 (name "emacs-windower")
23258 (version "0.0.1")
23259 (home-page "https://gitlab.com/ambrevar/emacs-windower")
23260 (source
23261 (origin
23262 (method git-fetch)
23263 (uri (git-reference
23264 (url home-page)
23265 (commit version)))
23266 (file-name (git-file-name name version))
23267 (sha256
23268 (base32 "0h24gb1ip0czfasxm8wwcc3v19g7mznzw2sxkmmfb5iis59p7dfy"))))
23269 (build-system emacs-build-system)
23270 (synopsis "Helper functions for window manipulation in Emacs")
23271 (description
23272 "This package provides helper functions for window manipulation in Emacs,
23273 such as:
23274
23275 @itemize
23276 @item switch to last buffer,
23277 @item toggle single window display,
23278 @item toggle between horizontal and vertical splits,
23279 @item move borders more naturally,
23280 @item swap windows à-la @code{windmove}.
23281 @end itemize")
23282 (license license:gpl3+)))
23283
23284 (define-public emacs-flycheck-cpplint
23285 (let ((commit "1d8a090861572258ab704915263feeb3a436c3d2")
23286 (revision "1"))
23287 (package
23288 (name "emacs-flycheck-cpplint")
23289 (version (git-version "0.1" revision commit))
23290 (source
23291 (origin
23292 (method git-fetch)
23293 (uri (git-reference
23294 (url "https://github.com/flycheck/flycheck-google-cpplint")
23295 (commit commit)))
23296 (file-name (git-file-name name version))
23297 (sha256
23298 (base32 "0l6sg83f6z8x2alnblpv03rj442sbnkkkcbf8i0agjmx3713a5yx"))))
23299 (build-system emacs-build-system)
23300 (arguments
23301 `(#:phases
23302 (modify-phases %standard-phases
23303 (add-after 'unpack 'set-cpplint-path
23304 (lambda _
23305 (substitute* "flycheck-google-cpplint.el"
23306 (("\"cpplint.py\"")
23307 (string-append "\"" (which "cpplint") "\"")))
23308 #t)))))
23309 (inputs
23310 `(("cpplint" ,cpplint)))
23311 (propagated-inputs
23312 `(("flycheck-mode" ,emacs-flycheck)))
23313 (synopsis "Google C++ checker for Flycheck")
23314 (description "This package provides a interface for @code{cpplint} over
23315 Flycheck plugin. @code{cpplint} is a static code checker for C++, following
23316 Google guidelines.")
23317 (home-page "https://github.com/flycheck/flycheck-google-cpplint")
23318 (license license:gpl3+))))
23319
23320 (define-public emacs-helm-fish-completion
23321 (package
23322 (name "emacs-helm-fish-completion")
23323 (version "0.6")
23324 (home-page "https://github.com/emacs-helm/helm-fish-completion")
23325 (source
23326 (origin
23327 (method git-fetch)
23328 (uri (git-reference
23329 (url home-page)
23330 (commit version)))
23331 (file-name (git-file-name name version))
23332 (sha256
23333 (base32 "1j2vfngq3512naaayv9kx0d1q2zg1xgs69l8afc7swg72h0l0imw"))))
23334 (build-system emacs-build-system)
23335 (propagated-inputs
23336 `(("helm" ,emacs-helm)
23337 ("fish-completion" ,emacs-fish-completion)))
23338 (synopsis "Helm interface for Emacs fish-completion")
23339 (description "Helm Fish Completion is a Helm interface for Emacs
23340 fish-completion. It can be used in both Eshell and M-x shell.")
23341 (license license:gpl3+)))
23342
23343 (define-public emacs-telega
23344 ;; This package has versions newer than indicated on MELPA.
23345 ;; Get the current version from `telega-version` in telega.el.
23346 ;; or by running M-x telega-version.
23347 (let ((commit "e53996777570a5bed84d21f6c8defd4f51c8e255")
23348 (revision "0")
23349 (version "0.6.28"))
23350 (package
23351 (name "emacs-telega")
23352 (version (git-version version revision commit))
23353 (source
23354 (origin
23355 (method git-fetch)
23356 (uri (git-reference
23357 (url "https://github.com/zevlg/telega.el")
23358 (commit commit)))
23359 (sha256
23360 (base32
23361 "058x6svgy33lyqjqq0l3byv8bysqig9jmh3kx8shaqr0ypfrjhi3"))
23362 (patches (search-patches
23363 "emacs-telega-patch-server-functions.patch"
23364 "emacs-telega-test-env.patch"))
23365 (file-name (git-file-name name version))))
23366 (build-system gnu-build-system)
23367 (arguments
23368 `(#:modules ((guix build gnu-build-system)
23369 ((guix build emacs-build-system) #:prefix emacs:)
23370 (guix build utils)
23371 (guix build emacs-utils))
23372 #:imported-modules (,@%gnu-build-system-modules
23373 (guix build emacs-build-system)
23374 (guix build emacs-utils))
23375 #:test-target "test"
23376 ;; TODO: Currently tgVOIP is not functional, thus we have disabled it
23377 ;; temporarily.
23378 ;; #:make-flags (list "WITH_VOIP=t")
23379 #:phases
23380 (modify-phases %standard-phases
23381 (add-after 'unpack 'prefix-patch
23382 (lambda _
23383 (substitute* "server/Makefile"
23384 (("CC=cc")
23385 "CC=gcc")
23386 (("INSTALL_PREFIX=\\$\\(HOME\\)/.telega")
23387 (string-append "INSTALL_PREFIX=" (assoc-ref %outputs "out")
23388 "/bin"))
23389 ;; Manually invoke `run_tests.py` after install phase.
23390 (("python3 run_tests.py")
23391 ""))
23392 #t))
23393 (add-after 'check 'telega-paths-patch
23394 (lambda* (#:key inputs #:allow-other-keys)
23395 ;; Hard-code paths to `ffplay` and `ffmpeg`.
23396 (let ((ffplay-bin (string-append (assoc-ref inputs "ffmpeg")
23397 "/bin/ffplay"))
23398 (ffmpeg-bin (string-append (assoc-ref inputs "ffmpeg")
23399 "/bin/ffmpeg")))
23400 (substitute* "telega-ffplay.el"
23401 (("\\(executable-find \"ffplay\"\\)")
23402 (string-append
23403 "(and (file-executable-p \"" ffplay-bin "\")"
23404 "\"" ffplay-bin "\")"))
23405 (("\\(executable-find \"ffmpeg\"\\)")
23406 (string-append
23407 "(and (file-executable-p \"" ffmpeg-bin "\")"
23408 "\"" ffmpeg-bin "\")"))))
23409 ;; Modify telega-util to reflect unique dir name in
23410 ;; `telega-install-data' phase.
23411 (substitute* "telega-util.el"
23412 (("\\(concat \"etc/\" filename\\) telega--lib-directory")
23413 "(concat \"telega-data/\" filename)
23414 (locate-dominating-file telega--lib-directory
23415 \"telega-data\")"))
23416 ;; Modify telega.el to reflect unique dir name in
23417 ;; `telega-install-contrib' phase.
23418 (substitute* "telega.el"
23419 (("\\(push \\(expand-file-name \"contrib\" telega--lib-directory\\) load-path\\)")
23420 "(push (expand-file-name \"telega-contrib\"
23421 (locate-dominating-file telega--lib-directory
23422 \"telega-contrib\")) load-path)"))
23423 #t))
23424 ;; The server test suite has a hardcoded path.
23425 ;; Reset this behavior to use the proper path.
23426 (add-after 'unpack 'server-suite-patch
23427 (lambda _
23428 (substitute* "server/run_tests.py"
23429 (("~/.telega/telega-server")
23430 (string-append (assoc-ref %outputs "out")
23431 "/bin/telega-server")))
23432 #t))
23433 (add-after 'install 'run-server-suite
23434 (lambda _
23435 (invoke "python3" "server/run_tests.py")
23436 #t))
23437 (delete 'configure)
23438 ;; Build emacs-side using `emacs-build-system'
23439 (add-after 'compress-documentation 'emacs-add-source-to-load-path
23440 (assoc-ref emacs:%standard-phases 'add-source-to-load-path))
23441 ;; Manually invoke bytecompilation for the contrib
23442 ;; subdirectory.
23443 (add-after 'emacs-add-source-to-load-path 'emacs-bytecomp-contrib
23444 (lambda _
23445 (substitute* "Makefile"
23446 (("byte-recompile-directory \".\"")
23447 "byte-recompile-directory \"contrib\""))
23448 (invoke "make" "compile")
23449 #t))
23450 (add-after 'emacs-bytecomp-contrib 'emacs-install
23451 (assoc-ref emacs:%standard-phases 'install))
23452 ;; This step installs subdir /etc, which contains images, sounds and
23453 ;; various other data, next to the site-lisp dir.
23454 (add-after 'emacs-install 'telega-install-data
23455 (lambda* (#:key outputs #:allow-other-keys)
23456 (copy-recursively
23457 "etc"
23458 (string-append (assoc-ref outputs "out")
23459 "/share/emacs/telega-data/"))
23460 #t))
23461 (add-after 'emacs-install 'telega-install-contrib
23462 (lambda* (#:key outputs #:allow-other-keys)
23463 (copy-recursively
23464 "contrib"
23465 (string-append (assoc-ref outputs "out")
23466 "/share/emacs/telega-contrib"))
23467 #t))
23468 (add-after 'telega-install-contrib 'emacs-build
23469 (assoc-ref emacs:%standard-phases 'build))
23470 (add-after 'telega-install-contrib 'emacs-make-autoloads
23471 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
23472 (inputs
23473 `(("ffmpeg" ,ffmpeg))) ; mp4/gif support.
23474 (propagated-inputs
23475 `(("emacs-visual-fill-column" ,emacs-visual-fill-column)
23476 ("emacs-company" ,emacs-company)
23477 ("emacs-rainbow-identifiers"
23478 ,emacs-rainbow-identifiers)
23479 ("libwebp" ,libwebp))) ; sticker support.
23480 (native-inputs
23481 `(("tdlib" ,tdlib)
23482 ;; Use Emacs with wide ints on 32-bit architectures.
23483 ("emacs" ,(match (%current-system)
23484 ((or "i686-linux" "armhf-linux")
23485 emacs-wide-int)
23486 (_
23487 emacs)))
23488 ("python" ,python)))
23489 (synopsis "GNU Emacs client for the Telegram messenger")
23490 (description
23491 "Telega is a full-featured, unofficial GNU Emacs-based client for the
23492 Telegram messaging platform.")
23493 (home-page "https://github.com/zevlg/telega.el")
23494 (license license:gpl3+))))
23495
23496 (define-public emacs-doom-modeline
23497 (package
23498 (name "emacs-doom-modeline")
23499 (version "3.0.0")
23500 (source (origin
23501 (method git-fetch)
23502 (uri (git-reference
23503 (url "https://github.com/seagle0128/doom-modeline")
23504 (commit (string-append "v" version))))
23505 (sha256
23506 (base32
23507 "08m75rl5i812pa87zcsjvb4mm3jjhpwzgx9mf2m7sxj807airz5d"))
23508 (file-name (git-file-name name version))))
23509 (build-system emacs-build-system)
23510 (arguments
23511 `(#:test-command '("ert-runner")))
23512 (native-inputs `(("emacs-ert-runner" ,emacs-ert-runner)))
23513 (propagated-inputs
23514 `(("emacs-all-the-icons" ,emacs-all-the-icons)
23515 ("emacs-dash" ,emacs-dash)
23516 ("emacs-shrink-path" ,emacs-shrink-path)))
23517 (synopsis "Fancy and fast mode-line inspired by minimalism design")
23518 (description "Doom modeline is a complete modeline for GNU Emacs inspired
23519 by the Doom theme collection. This modeline features support for mode-specific
23520 icon support, git integration, and several other utilities.")
23521 (home-page "https://github.com/seagle0128/doom-modeline/")
23522 (license license:gpl3+)))
23523
23524 (define-public emacs-mood-line
23525 (package
23526 (name "emacs-mood-line")
23527 (version "1.2.4")
23528 (source
23529 (origin
23530 (method git-fetch)
23531 (uri (git-reference
23532 (url "https://gitlab.com/jessieh/mood-line")
23533 (commit version)))
23534 (file-name (git-file-name name version))
23535 (sha256
23536 (base32 "0fh9j9fkgl433nykfzjnzap5labi4sdndfk1nv4f904ij69pmvxb"))))
23537 (build-system emacs-build-system)
23538 (home-page "https://gitlab.com/jessieh/mood-line")
23539 (synopsis "Minimal mode-line for Emacs")
23540 (description
23541 "Mood-line is a minimal Emacs mode-line configuration that aims to
23542 replicate some of the features of the Doom modeline package.")
23543 (license license:gpl2+)))
23544
23545 (define-public emacs-frames-only-mode
23546 (package
23547 (name "emacs-frames-only-mode")
23548 (version "1.0.0")
23549 (source
23550 (origin
23551 (method git-fetch)
23552 (uri (git-reference
23553 (url "https://github.com/davidshepherd7/frames-only-mode")
23554 (commit version)))
23555 (file-name (git-file-name name version))
23556 (sha256
23557 (base32 "0y0sdjixaxvywrlp2sw51wnczhk51q1svl5aghbk9rkxpwv9ys9v"))))
23558 (build-system emacs-build-system)
23559 (propagated-inputs
23560 `(("emacs-dash" ,emacs-dash)
23561 ("emacs-s" ,emacs-s)))
23562 (home-page "https://github.com/davidshepherd7/frames-only-mode")
23563 (synopsis "Use frames instead of Emacs windows")
23564 (description
23565 "This is an Emacs global minor mode to use Emacs frames instead of Emacs'
23566 internal windowing system. This combines particularly well with tiling window
23567 managers such as XMonad.")
23568 (license license:gpl3+)))
23569
23570 (define-public emacs-modalka
23571 (package
23572 (name "emacs-modalka")
23573 (version "0.1.5")
23574 (source
23575 (origin
23576 (method git-fetch)
23577 (uri (git-reference
23578 (url "https://github.com/mrkkrp/modalka")
23579 (commit version)))
23580 (file-name (git-file-name name version))
23581 (sha256
23582 (base32 "0ggj8q92sb6wp3hs1vhpmy56id0p3i9zwnw24g2v7xa7w8ac9s7l"))))
23583 (build-system emacs-build-system)
23584 (home-page "https://github.com/mrkkrp/modalka")
23585 (synopsis "Minor mode to easily define native custom modal editing")
23586 (description
23587 "This is a building kit to help switch to modal editing in Emacs. The
23588 main goal of the package is to make modal editing in Emacs as natural and
23589 native as possible. Modalka lets you define your own keys and does not come
23590 with a preconfigured set of keys.")
23591 (license license:gpl3+)))
23592
23593 (define-public emacs-shrink-path
23594 (package
23595 (name "emacs-shrink-path")
23596 (version "0.3.1")
23597 (source
23598 (origin
23599 (method git-fetch)
23600 (uri (git-reference
23601 (url "https://gitlab.com/bennya/shrink-path.el.git")
23602 (commit (string-append "v" version))))
23603 (sha256
23604 (base32
23605 "0kx0c4syd7k6ff9j463bib32pz4wq0rzjlg6b0yqnymlzfr1mbki"))
23606 (file-name (git-file-name name version))))
23607 (build-system emacs-build-system)
23608 (propagated-inputs
23609 `(("emacs-s" ,emacs-s)
23610 ("emacs-dash" ,emacs-dash)
23611 ("emacs-f" ,emacs-f)))
23612 (home-page "https://gitlab.com/bennya/shrink-path.el")
23613 (synopsis "Fish-style path truncation in emacs-lisp")
23614 (description "This package provides utility functions that allow for
23615 Fish-style truncated directories in eshell and various modelines.")
23616 (license license:gpl3+)))
23617
23618 (define-public emacs-org-present
23619 (let ((commit "d13acd70eff6a1608bc991920232146a0de76b21"))
23620 (package
23621 (name "emacs-org-present")
23622 (version "0.0.1")
23623 (source
23624 (origin
23625 (method git-fetch)
23626 (uri (git-reference
23627 (url "https://github.com/rlister/org-present")
23628 (commit commit)))
23629 (file-name (git-file-name name version))
23630 (sha256
23631 (base32
23632 "0jz8xiny3rv9ql0p623byz32pip1b82j2c2nyfz2wd114kiabb6q"))))
23633 (build-system emacs-build-system)
23634 (synopsis "Ultra-minimalist presentation minor-mode for Emacs org-mode")
23635 (description "Org-present is an extremely minimalist presentation tool
23636 for Emacs org-mode. Simply layout your presentation with each slide under a
23637 top-level header, start the minor mode with @code{org-present}, and page through
23638 each slide with left/right keys.")
23639 (home-page "https://github.com/rlister/org-present")
23640 (license license:gpl2))))
23641
23642 (define-public emacs-fullframe
23643 (package
23644 (name "emacs-fullframe")
23645 (version "0.5.0")
23646 (source
23647 (origin
23648 (method git-fetch)
23649 (uri (git-reference
23650 (url "https://github.com/tomterl/fullframe")
23651 (commit version)))
23652 (sha256
23653 (base32
23654 "0m43qnhp6ibsskpjkxc86p3lrjsjc0ndqml3lbd65s79x4x7i3fi"))
23655 (file-name (git-file-name name version))))
23656 (build-system emacs-build-system)
23657 (home-page "https://github.com/tomterl/fullframe")
23658 (synopsis "Generalized automatic execution in a single frame")
23659 (description "This library provides helpers for single-window-per-frame
23660 execution of buffer-exposing commands.")
23661 (license license:gpl3+)))
23662
23663 (define-public emacs-eshell-toggle
23664 (let ((commit "ddfbe0a693497c4d4bc5494a19970ba4f6ab9033")
23665 (revision "1"))
23666 (package
23667 (name "emacs-eshell-toggle")
23668 (version (git-version "0.10.0" revision commit))
23669 (source
23670 (origin
23671 (method git-fetch)
23672 (uri (git-reference
23673 (url "https://github.com/4DA/eshell-toggle")
23674 (commit commit)))
23675 (sha256
23676 (base32
23677 "0xqrp8pwbmfxjdqipgpw5nw633mvhjjjm3k3j9sh9xdpmw05hhws"))
23678 (file-name (git-file-name name version))))
23679 (build-system emacs-build-system)
23680 (propagated-inputs
23681 `(("emacs-dash" ,emacs-dash)))
23682 (home-page "https://github.com/4DA/eshell-toggle")
23683 (synopsis "Show and hide an @code{eshell} instance")
23684 (description "This package toggles an @code{eshell} instance for the
23685 current buffer.")
23686 (license license:gpl3+))))
23687
23688 (define-public emacs-repl-toggle
23689 (package
23690 (name "emacs-repl-toggle")
23691 (version "0.6.1")
23692 (source
23693 (origin
23694 (method git-fetch)
23695 (uri (git-reference
23696 (url "https://github.com/tomterl/repl-toggle")
23697 (commit version)))
23698 (sha256
23699 (base32
23700 "12h3xxja3isnhvrqx7m2g7a5d8h68cc85pbqyhiipfxyafyl1yxd"))
23701 (file-name (git-file-name name version))))
23702 (build-system emacs-build-system)
23703 (propagated-inputs
23704 `(("emacs-fullframe" ,emacs-fullframe)))
23705 (home-page "https://github.com/tomterl/repl-toggle")
23706 (synopsis "Switch to and from current major mode's REPL")
23707 (description "This package provides a function to switch to and from a
23708 REPL appropriate to the current major mode.")
23709 (license license:gpl3+)))
23710
23711 (define-public emacs-rime
23712 (package
23713 (name "emacs-rime")
23714 (version "1.0.3")
23715 (source
23716 (origin
23717 (method git-fetch)
23718 (uri (git-reference
23719 (url "https://github.com/DogLooksGood/emacs-rime")
23720 (commit (string-append "v" version))))
23721 (file-name (git-file-name name version))
23722 (sha256
23723 (base32 "08rzkiqwcl8j3i2yyibll5lcsj8720plzm9zfdgmxgkw7vhcyix5"))))
23724 (build-system emacs-build-system)
23725 (arguments
23726 '(#:phases
23727 (modify-phases %standard-phases
23728 (add-after 'unpack 'patch-rime-data-path
23729 (lambda* (#:key inputs #:allow-other-keys)
23730 (make-file-writable "rime.el")
23731 (emacs-substitute-variables "rime.el"
23732 ("rime-share-data-dir"
23733 (string-append (assoc-ref inputs "rime-data")
23734 "/share/rime-data")))
23735 #t))
23736 (add-before 'install 'build-emacs-module
23737 (lambda _
23738 (invoke "make" "lib")))
23739 (add-after 'install 'install-emacs-module
23740 (lambda* (#:key outputs #:allow-other-keys)
23741 (install-file "librime-emacs.so"
23742 (string-append (assoc-ref outputs "out")
23743 "/share/emacs/site-lisp"))
23744 #t)))))
23745 (inputs
23746 `(("librime" ,librime)
23747 ("rime-data" ,rime-data)))
23748 (propagated-inputs
23749 `(("emacs-dash" ,emacs-dash)
23750 ("emacs-popup" ,emacs-popup)
23751 ("emacs-posframe" ,emacs-posframe)))
23752 (home-page "https://github.com/DogLooksGood/emacs-rime")
23753 (synopsis "Rime input method in Emacs")
23754 (description
23755 "Rime is an Emacs input method built upon Rime input method engine.")
23756 (license license:gpl3+)))
23757
23758 (define-public emacs-blackout
23759 (let ((commit "4bac44671fca4c98d96aa94c79946bf4d4baf0ee")
23760 (revision "1"))
23761 (package
23762 (name "emacs-blackout")
23763 (version (git-version "1.0" revision commit))
23764 (source
23765 (origin
23766 (method git-fetch)
23767 (uri (git-reference
23768 (url "https://github.com/raxod502/blackout")
23769 (commit commit)))
23770 (sha256
23771 (base32
23772 "1wnh0nwy6r3a18sy9sqmrwv04vnmaflxy4g7mq8jiyyjijri7l1b"))
23773 (file-name (git-file-name name version))))
23774 (build-system emacs-build-system)
23775 (home-page "https://github.com/raxod502/blackout")
23776 (synopsis "Clean up mode lighters")
23777 (description "This package provides a function for hiding and customizing
23778 display of major and minor modes in the mode line.")
23779 (license license:gpl3+))))
23780
23781 (define-public emacs-ivy-omni-org
23782 (let ((commit "5460a9fc061a4a5ae8372dc8df966ced94abab58")
23783 (revision "1"))
23784 (package
23785 (name "emacs-ivy-omni-org")
23786 (version (git-version "0.2.1" revision commit))
23787 (source
23788 (origin
23789 (method git-fetch)
23790 (uri (git-reference
23791 (url "https://github.com/akirak/ivy-omni-org")
23792 (commit commit)))
23793 (file-name (git-file-name name version))
23794 (sha256
23795 (base32
23796 "1np1f51hc3phkl5w02a9a79gl38ra2d535i784fn4pqaasvm0rq8"))))
23797 (build-system emacs-build-system)
23798 (propagated-inputs
23799 `(("emacs-ivy" ,emacs-ivy)
23800 ("emacs-dash" ,emacs-dash)))
23801 (synopsis "Browse anything in Org mode")
23802 (description "This package allows Org items to be accessed via the Ivy
23803 interface.")
23804 (home-page "https://github.com/akirak/ivy-omni-org")
23805 (license license:gpl3+))))
23806
23807 (define-public emacs-ivy-posframe
23808 (package
23809 (name "emacs-ivy-posframe")
23810 (version "0.5.2")
23811 (source
23812 (origin
23813 (method url-fetch)
23814 (uri (string-append "https://elpa.gnu.org/packages/"
23815 "ivy-posframe-" version ".el"))
23816 (sha256
23817 (base32 "01zc2yj7g4lfz7qblx7k6sg54v0h4w0frnnmsf92lwypfijd2lsj"))))
23818 (build-system emacs-build-system)
23819 (propagated-inputs
23820 `(("emacs-ivy" ,emacs-ivy)
23821 ("emacs-posframe" ,emacs-posframe)))
23822 (home-page "https://github.com/tumashu/ivy-posframe")
23823 (synopsis "Pop a posframe (a child frame) to show Ivy candidates")
23824 (description
23825 "This package provides an Emacs Ivy extension, which let Ivy use
23826 posframe to show its candidate menu.")
23827 (license license:gpl3+)))
23828
23829 (define-public emacs-shackle
23830 (let ((commit "7ccbe513852a1d1700b698547efca14b8940319d")
23831 (revision "1"))
23832 (package
23833 (name "emacs-shackle")
23834 (version (git-version "1.0.3" revision commit))
23835 (source
23836 (origin
23837 (method git-fetch)
23838 (uri (git-reference
23839 (url "https://github.com/wasamasa/shackle")
23840 (commit commit)))
23841 (file-name (git-file-name name version))
23842 (sha256
23843 (base32
23844 "0agsp8ia4irr540r898ifhjqp28n1zsq1pilv1kc272spn3qhvp9"))))
23845 (build-system emacs-build-system)
23846 (synopsis "Enforce rules for popups")
23847 (description "This package provides a global minor mode in which users
23848 can specify how popup-displaying functions occupy the screen.")
23849 (home-page "https://github.com/wasamasa/shackle")
23850 (license license:gpl3+))))
23851
23852 (define-public emacs-helm-lacarte
23853 (let ((commit "40a6c449720be521435b6b1da7911af3a0b9dca0")
23854 (revision "1"))
23855 (package
23856 (name "emacs-helm-lacarte")
23857 (version (git-version "0" revision commit))
23858 (source
23859 (origin
23860 (method git-fetch)
23861 (uri (git-reference
23862 (url "https://github.com/emacs-helm/helm-lacarte")
23863 (commit commit)))
23864 (file-name (git-file-name name version))
23865 (sha256
23866 (base32
23867 "0dkfd3lap2v7b4nckzv8v7hczmzwzhbl75haqkra107ln91ldbwc"))))
23868 (build-system emacs-build-system)
23869 (propagated-inputs
23870 `(("emacs-helm" ,emacs-helm)
23871 ("emacs-lacarte" ,emacs-lacarte)))
23872 (synopsis "Helm interface to @code{lacarte.el}")
23873 (description "This package provides a Helm interface to
23874 @code{lacarte.el}, a package that displays mode-specific commands as menu
23875 items.")
23876 (home-page "https://github.com/emacs-helm/helm-lacarte")
23877 (license license:gpl3+))))
23878
23879 (define-public emacs-esh-help
23880 (let ((commit "417673ed18a983930a66a6692dbfb288a995cb80")
23881 (revision "1"))
23882 (package
23883 (name "emacs-esh-help")
23884 (version (git-version "1.0.1" revision commit))
23885 (source
23886 (origin
23887 (method git-fetch)
23888 (uri (git-reference
23889 (url "https://github.com/tom-tan/esh-help")
23890 (commit commit)))
23891 (file-name (git-file-name name version))
23892 (sha256
23893 (base32
23894 "0x7d51a6ljl014zy7mi27vzcqqbcwg9z4drq29fr2ajk82mqhlgd"))))
23895 (build-system emacs-build-system)
23896 (propagated-inputs
23897 `(("emacs-dash" ,emacs-dash)))
23898 (synopsis "Help functions for Eshell")
23899 (description "This package provides a @code{run-help} function inspired
23900 by @code{zsh} as well as @code{eldoc} support.")
23901 (home-page "https://github.com/tom-tan/esh-help")
23902 (license license:gpl3+))))
23903
23904 (define-public emacs-isearch-dabbrev
23905 (let ((commit "1efe7abba4923015cbc2462395deaec5446a9cc8")
23906 (revision "1"))
23907 (package
23908 (name "emacs-isearch-dabbrev")
23909 (version (git-version "0.1" revision commit))
23910 (source
23911 (origin
23912 (method git-fetch)
23913 (uri (git-reference
23914 (url "https://github.com/Dewdrops/isearch-dabbrev")
23915 (commit commit)))
23916 (file-name (git-file-name name version))
23917 (sha256
23918 (base32
23919 "17d0816awadvsw1qc7r0p6ira75jmgxaj9hsk9ypayxsaf6ynyrb"))))
23920 (build-system emacs-build-system)
23921 (synopsis "Use @code{dabbrev} within @code{isearch}")
23922 (description "This package allows @code{dabbrev-expand} to be used
23923 within @code{isearch-mode}.")
23924 (home-page "https://github.com/Dewdrops/isearch-dabbrev")
23925 (license license:gpl3+))))
23926
23927 (define-public emacs-helm-linux-disks
23928 (let ((commit "2cdc8116a08534289eb0dc76461d0f93a0bdf231")
23929 (revision "1"))
23930 (package
23931 (name "emacs-helm-linux-disks")
23932 (version (git-version "0.1" revision commit))
23933 (source
23934 (origin
23935 (method git-fetch)
23936 (uri (git-reference
23937 (url "https://github.com/Akirak/helm-linux-disks")
23938 (commit commit)))
23939 (file-name (git-file-name name version))
23940 (sha256
23941 (base32
23942 "1limw82zd8jz3mhh9rqlmhj4cjhfgybs9argfjid1an3vpyhc85i"))))
23943 (build-system emacs-build-system)
23944 (propagated-inputs
23945 `(("emacs-helm" ,emacs-helm)))
23946 (synopsis "Mount/unmount volumes in Linux via Helm")
23947 (description "This package provides a Helm interface to run operations
23948 on removable volumes in Linux.")
23949 (home-page "https://github.com/Akirak/helm-linux-disks")
23950 (license license:gpl3+))))
23951
23952 (define-public emacs-psession
23953 (let ((commit "3e97267c92b164584e06a6c70ee7491714c7c12c")
23954 (revision "1"))
23955 (package
23956 (name "emacs-psession")
23957 (version (git-version "1.5" revision commit))
23958 (source
23959 (origin
23960 (method git-fetch)
23961 (uri (git-reference
23962 (url "https://github.com/thierryvolpiatto/psession")
23963 (commit commit)))
23964 (file-name (git-file-name name version))
23965 (sha256
23966 (base32
23967 "15frl618393bc891d0yi3mdxzvbq790a86vfvp3dyd5riz4ddg95"))))
23968 (build-system emacs-build-system)
23969 (propagated-inputs
23970 `(("emacs-async" ,emacs-async)))
23971 (synopsis "Persistent save of @code{elisp} objects.")
23972 (description "This package provides minor modes for saving Emacs session
23973 data, including buffers, window configuration, variables, and more.")
23974 (home-page "https://github.com/thierryvolpiatto/psession")
23975 (license license:gpl3+))))
23976
23977 (define-public emacs-parseedn
23978 (package
23979 (name "emacs-parseedn")
23980 (version "0.1.0")
23981 (source
23982 (origin
23983 (method git-fetch)
23984 (uri (git-reference
23985 (url "https://github.com/clojure-emacs/parseedn")
23986 (commit (string-append "v" version))))
23987 (file-name (git-file-name name version))
23988 (sha256
23989 (base32
23990 "11wi3hwcgmy54p6ivpijqm7v0hj6j75a19qk5z779bqfrp79b4pc"))))
23991 (build-system emacs-build-system)
23992 (propagated-inputs
23993 `(("emacs-a" ,emacs-a)
23994 ("emacs-parseclj" ,emacs-parseclj)))
23995 (home-page "https://cider.mx")
23996 (synopsis "EDN parser for Emacs Lisp")
23997 (description
23998 "An Emacs Lisp library for parsing EDN (Clojure) data.
23999 It uses parseclj's shift-reduce parser internally.")
24000 (license license:gpl3+)))
24001
24002 (define-public emacs-parseclj
24003 (package
24004 (name "emacs-parseclj")
24005 (version "0.1.0")
24006 (source
24007 (origin
24008 (method git-fetch)
24009 (uri (git-reference
24010 (url "https://github.com/clojure-emacs/parseclj")
24011 (commit (string-append "v" version))))
24012 (file-name (git-file-name name version))
24013 (sha256
24014 (base32
24015 "03bm5dm4hmkqimv4wqxjjh5814pxysmm7z54bv2rf7zwv1x7dggr"))))
24016 (build-system emacs-build-system)
24017 (propagated-inputs `(("emacs-a" ,emacs-a)))
24018 (home-page "https://cider.mx")
24019 (synopsis "Clojure parser for Emacs Lisp")
24020 (description
24021 "An Emacs Lisp library for parsing Clojure code and EDN data.
24022 It supports several input and output formats, all powered by the
24023 same shift-reduce parser function.")
24024 (license license:gpl3+)))
24025
24026 (define-public emacs-hide-mode-line
24027 (package
24028 (name "emacs-hide-mode-line")
24029 (version "1.0.2")
24030 (source (origin
24031 (method git-fetch)
24032 (uri (git-reference
24033 (url "https://github.com/hlissner/emacs-hide-mode-line")
24034 (commit (string-append "v" version))))
24035 (file-name (git-file-name name version))
24036 (sha256
24037 (base32
24038 "0dfzjgxfkcw4wisbyldsm1km18pfp9j8xgadn6qnsz11l55bpgyp"))))
24039 (build-system emacs-build-system)
24040 (synopsis "Emacs plugin that hides the mode-line")
24041 (description "A minor mode that hides the mode-line in your current
24042 buffer. It can be used to toggle an alternative mode-line, toggle its visibility,
24043 or simply disable the mode-line in buffers where it is not very useful.")
24044 (home-page "https://github.com/hlissner/emacs-hide-mode-line")
24045 (license license:expat)))
24046
24047 (define-public emacs-helm-cider
24048 ;; No new release since March 2018.
24049 (let ((commit "9363cc537f06233345aa3af5cd46aa5681ad607b"))
24050 (package
24051 (name "emacs-helm-cider")
24052 (version (git-version "0.4.0" "1" commit))
24053 (home-page "https://github.com/clojure-emacs/helm-cider")
24054 (source (origin
24055 (method git-fetch)
24056 (uri (git-reference
24057 (url home-page)
24058 (commit commit)))
24059 (file-name (git-file-name name version))
24060 (sha256
24061 (base32
24062 "0vfn4smqba1vsshz48ggkj8gs94la0sxb1sq4shrb41qj2x3dci7"))))
24063 (build-system emacs-build-system)
24064 (propagated-inputs
24065 `(("emacs-helm" ,emacs-helm)
24066 ("emacs-cider" ,emacs-cider)))
24067 (synopsis "Helm interface to Clojure's CIDER")
24068 (description "Helm-CIDER adds Helm interfaces to
24069 @command{cider-apropos}, @command{cider-apropos-documentation},
24070 @command{cider-browse-ns} (namespaces).
24071
24072 It also provides original Helm commands: @command{helm-cider-spec},
24073 @command{helm-cider-spec-ns}, @command{helm-cider-repl-history},
24074 @command{helm-cider-cheatsheet}.")
24075 (license license:gpl3+))))
24076
24077 (define-public emacs-edn
24078 ;; No release since February 2016
24079 (let ((commit "be9e32d1b49e35247b263b0243df7cfdc8d413ab"))
24080 (package
24081 (name "emacs-edn")
24082 (version (git-version "1.1.2" "1" commit))
24083 (home-page "https://github.com/expez/edn.el")
24084 (source (origin
24085 (method git-fetch)
24086 (uri (git-reference
24087 (url home-page)
24088 (commit commit)))
24089 (file-name (git-file-name name version))
24090 (sha256
24091 (base32
24092 "1xp2hjhn52k6l1g6ypva6dsklpawni7gvjafbz6404f9dyxflh7l"))))
24093 (build-system emacs-build-system)
24094 (propagated-inputs
24095 `(("emacs-peg" ,emacs-peg)))
24096 (synopsis "Read and write EDN from Elisp")
24097 (description "This is an Emacs Lisp library for reading and writing the
24098 data format @code{edn}. See @url{https://github.com/edn-format/edn}.")
24099 (license license:gpl3+))))
24100
24101 (define-public emacs-helm-clojuredocs
24102 (let ((commit "5a7f0f2cb401be0b09e73262a1c18265ab9a3cea"))
24103 (package
24104 (name "emacs-helm-clojuredocs")
24105 (version (git-version "0.3" "1" commit))
24106 (home-page "https://github.com/mbuczko/helm-clojuredocs")
24107 (source (origin
24108 (method git-fetch)
24109 (uri (git-reference
24110 (url home-page)
24111 (commit commit)))
24112 (file-name (git-file-name name version))
24113 (sha256
24114 (base32
24115 "015b8zxh91ljhqvn6z43gy08di54xcw9skw0i7frj3d7gk984qhl"))))
24116 (build-system emacs-build-system)
24117 (propagated-inputs
24118 `(("emacs-helm" ,emacs-helm)
24119 ("emacs-edn" ,emacs-edn)))
24120 (synopsis "Search help on clojuredocs.org with Helm")
24121 (description "This package provides a Helm interface to lookup Clojure
24122 documentation on @url{https://clojuredocs.org} with Helm.
24123
24124 Two function are exposed:
24125 @itemize
24126 @item @command{helm-clojuredocs}: opens a Helm session with no initial
24127 pattern. Searching starts with minimal 3 characters entered.
24128 @item @command{helm-clojuredocs-at-point}: opens a Helm session with initial
24129 pattern guessed from thing under current cursor position.
24130 @end itemize\n")
24131 (license license:gpl3+))))
24132
24133 (define-public emacs-helm-selector
24134 (package
24135 (name "emacs-helm-selector")
24136 (version "0.3")
24137 (home-page "https://github.com/emacs-helm/helm-selector")
24138 (source
24139 (origin
24140 (method git-fetch)
24141 (uri (git-reference
24142 (url home-page)
24143 (commit version)))
24144 (file-name (git-file-name name version))
24145 (sha256
24146 (base32
24147 "134rxm4zicn565k3q5q15iiqcvcyiq6lsvmsqr53ifjjbq8pd9y6"))))
24148 (build-system emacs-build-system)
24149 (propagated-inputs
24150 `(("emacs-helm" ,emacs-helm)))
24151 (synopsis "Convenient related-buffer selection for Emacs Helm")
24152 (description "Helm Selector is a collection of Helm helper functions for
24153 convenient buffer selection.
24154
24155 It is especially helpful to create Helm sessions to navigate buffers of a
24156 given mode in a “do what I mean” fashion:
24157
24158 If current buffer is not of mode X, switch to last buffer of mode X. If
24159 current buffer is of mode X, show a Helm session of all buffers in mode X. In
24160 the Helm session, it’s also possible to input an arbitrary name which will be
24161 used for the creation of a new buffer of mode X.")
24162 (license license:gpl3+)))
24163
24164 (define-public emacs-helm-wordnut
24165 (let ((commit "9681a9535a839cd5d042c302945ae595852fe7bf"))
24166 (package
24167 (name "emacs-helm-wordnut")
24168 (version (git-version "0.1" "1" commit))
24169 (home-page "https://github.com/emacs-helm/helm-wordnut")
24170 (source
24171 (origin
24172 (method git-fetch)
24173 (uri (git-reference
24174 (url home-page)
24175 (commit commit)))
24176 (file-name (git-file-name name version))
24177 (sha256
24178 (base32
24179 "0msj7nbsb363pxamxi7n2z08cp5jizkpjbwia8f5a161wjglrihs"))))
24180 (build-system emacs-build-system)
24181 (inputs
24182 `(("wordnet" ,wordnet)))
24183 (propagated-inputs
24184 `(("emacs-helm" ,emacs-helm)))
24185 (arguments
24186 `(#:phases
24187 (modify-phases %standard-phases
24188 (add-after 'unpack 'configure
24189 (lambda* (#:key inputs #:allow-other-keys)
24190 (let ((wn (assoc-ref inputs "wordnet")))
24191 ;; .el is read-only in git.
24192 (chmod "helm-wordnut.el" #o644)
24193 ;; Specify the absolute file names of the various
24194 ;; programs so that everything works out-of-the-box.
24195 (emacs-substitute-variables "helm-wordnut.el"
24196 ("helm-wordnut-prog" (string-append wn "/bin/wn"))
24197 ("helm-wordnut-wordnet-location"
24198 (string-append wn "/dict")))))))))
24199 (synopsis "Emacs Helm interface for Wordnet")
24200 (description "This package is merely a combination of two other Emacs
24201 packages: @code{helm-wordnet} and @code{wordnut}. It features word completion
24202 with Helm and displays a buffer of all the different result types available to
24203 Wordnet.")
24204 (license license:gpl3+))))
24205
24206 (define-public emacs-metal-mercury-mode
24207 (let ((commit "99e2d8fb7177cae3bfa2dec2910fc28216d5f5a8")
24208 (revision "1")
24209 (version "0.0.0"))
24210 (package
24211 (name "emacs-metal-mercury-mode")
24212 (version (git-version version revision commit))
24213 (source
24214 (origin
24215 (method git-fetch)
24216 (uri (git-reference
24217 (url "https://github.com/ahungry/metal-mercury-mode")
24218 (commit commit)))
24219 (sha256
24220 (base32
24221 "0iil5k3rgifz2vqwsy12rbv5rzyvidq4sgwazsb2hzys8xynmfn5"))
24222 (file-name (git-file-name name version))))
24223 (build-system emacs-build-system)
24224 (propagated-inputs
24225 `(("emacs-dash" ,emacs-dash)))
24226 (synopsis "Major mode for editing Mercury files")
24227 (description
24228 "Major mode for editing Mercury files. This is a rewrite of the original
24229 mercury-mode provided by Emacs as a wrapper around prolog-mode.")
24230 (home-page "https://github.com/ahungry/metal-mercury-mode")
24231 (license license:gpl3+))))
24232
24233 (define-public emacs-boxquote
24234 ;; The following commit is 2.1 release with a switch to GPL3+ license.
24235 (let ((commit "7e47e0e2853bc1215739b2e28f260e9eed93b2c5")
24236 (revision "0"))
24237 (package
24238 (name "emacs-boxquote")
24239 (version (git-version "2.1" revision commit))
24240 (source
24241 (origin
24242 (method git-fetch)
24243 (uri (git-reference
24244 (url "https://github.com/davep/boxquote.el")
24245 (commit commit)))
24246 (file-name (git-file-name name version))
24247 (sha256
24248 (base32 "1aqhg24gajvllbqxb0zxrnx6sddas37k2ldfinqyszd856sjhsg3"))))
24249 (build-system emacs-build-system)
24250 (home-page "https://github.com/davep/boxquote.el")
24251 (synopsis "Quote text with different kinds of boxes")
24252 (description "@code{boxquote} provides a set of functions for using
24253 a text quoting style that partially boxes in the left hand side of an area of
24254 text, such a marking style might be used to show externally included text or
24255 example code.")
24256 (license license:gpl3+))))
24257
24258 (define-public emacs-buffer-move
24259 (package
24260 (name "emacs-buffer-move")
24261 (version "0.6.2")
24262 (source
24263 (origin
24264 (method git-fetch)
24265 (uri (git-reference
24266 (url "https://github.com/lukhas/buffer-move")
24267 (commit version)))
24268 (file-name (git-file-name name version))
24269 (sha256
24270 (base32 "0xdks4jfqyhkh34y48iq3gz8swp0f526kwnaai5mhgvazvs4za8c"))))
24271 (build-system emacs-build-system)
24272 (home-page "https://github.com/lukhas/buffer-move")
24273 (synopsis "Functions for moving Emacs' buffers around")
24274 (description
24275 "This package define functions for swapping buffers between windows
24276 contained in the same frame. An alternate behavior is to have the current
24277 window switch to the previous buffer instead of swapping with the other
24278 window.")
24279 (license license:gpl3+)))
24280
24281 (define-public emacs-company-ebdb
24282 (package
24283 (name "emacs-company-ebdb")
24284 (version "1.1")
24285 (source
24286 (origin
24287 (method url-fetch)
24288 (uri (string-append "https://elpa.gnu.org/packages/"
24289 "company-ebdb-" version ".el"))
24290 (sha256
24291 (base32 "146qpiigz12zp1823ggxfrx090g0mxs7gz1ba7sa0iq6ibgzwwm9"))))
24292 (build-system emacs-build-system)
24293 (propagated-inputs
24294 `(("emacs-company" ,emacs-company)))
24295 (home-page "https://elpa.gnu.org/packages/company-ebdb.html")
24296 (synopsis "Company completion backend for EBDB in Message mode")
24297 (description "@code{company-ebdb} provides Company mode integration for
24298 EBDB. It is copied more or less intact from @code{company-bbdb}, originally
24299 by Jan Tatarik.")
24300 (license license:gpl3+)))
24301
24302 (define-public emacs-mwim
24303 ;; Use the latest commit not in a release version as of yet, since it
24304 ;; contains a bug fix for the cases where `comment-start-skip' is nil.
24305 (let ((commit "b4f3edb4c0fb8f8b71cecbf8095c2c25a8ffbf85")
24306 (revision "0"))
24307 (package
24308 (name "emacs-mwim")
24309 (version (git-version "0.4" revision commit))
24310 (source
24311 (origin
24312 (method git-fetch)
24313 (uri (git-reference
24314 (url "https://github.com/alezost/mwim.el")
24315 (commit commit)))
24316 (file-name (git-file-name name version))
24317 (sha256
24318 (base32 "0l3k611gp9g2x2vfmh92wnhnda81dslpwwpb8mxmzk308man77ya"))))
24319 (build-system emacs-build-system)
24320 (home-page "https://github.com/alezost/mwim.el")
24321 (synopsis "Move to the beginning/end of line, code or comment")
24322 (description "@code{mwim} provides several commands to switch between
24323 various line positions, like moving to the beginning/end of code, line, or
24324 comment.")
24325 (license license:gpl3+))))
24326
24327 (define-public emacs-delight
24328 (package
24329 (name "emacs-delight")
24330 (version "1.7")
24331 (source
24332 (origin
24333 (method url-fetch)
24334 (uri (string-append "https://elpa.gnu.org/packages/"
24335 "delight-" version ".el"))
24336 (sha256
24337 (base32 "0pihsghrf9xnd1kqlq48qmjcmp5ra95wwwgrb3l8m1wagmmc0bi1"))))
24338 (build-system emacs-build-system)
24339 (home-page "https://elpa.gnu.org/packages/delight.html")
24340 (synopsis "Dimmer switch for your mode-line lighter text")
24341 (description "@code{delight} enables customizing or hiding the
24342 mode-line text (lighter) of major and minor modes.")
24343 (license license:gpl3+)))
24344
24345 (define-public emacs-unkillable-scratch
24346 ;; Use the latest (unreleased) commit as of now, since it contains a handy
24347 ;; `unkillable-scratch-do-not-reset-scratch-buffer' customization to not
24348 ;; repopulate the scratch buffer with `initial-scratch-message'.
24349 (let ((commit "b24c2a760529833f230c14cb02ff6e7ec92288ab")
24350 (revision "0"))
24351 (package
24352 (name "emacs-unkillable-scratch")
24353 (version (git-version "1.0.0" revision commit))
24354 (source
24355 (origin
24356 (method git-fetch)
24357 (uri (git-reference
24358 (url "https://github.com/EricCrosson/unkillable-scratch")
24359 (commit commit)))
24360 (file-name (git-file-name name version))
24361 (sha256
24362 (base32 "13wjbcxr3km4s96yhpavgs5acs5pvqv3ih1p84diqb3x3i6wd4pa"))))
24363 (build-system emacs-build-system)
24364 (home-page "https://github.com/EricCrosson/unkillable-scratch")
24365 (synopsis "Prevents the *scratch* buffer from being killed")
24366 (description "@code{unkillable-scratch} helps prevent killing buffers
24367 matching a given regexp.")
24368 (license license:gpl2+))))
24369
24370 (define-public emacs-switch-buffer-functions
24371 (package
24372 (name "emacs-switch-buffer-functions")
24373 (version "0.0.1")
24374 (source
24375 (origin
24376 (method git-fetch)
24377 (uri (git-reference
24378 (url "https://github.com/10sr/switch-buffer-functions-el")
24379 (commit (string-append "v" version))))
24380 (file-name (git-file-name name version))
24381 (sha256
24382 (base32 "0pq53b8wrjbrxd5hnrcdi0z7mffp4bax55hn90k9ca3j76lhbn1k"))))
24383 (build-system emacs-build-system)
24384 (home-page "https://github.com/10sr/switch-buffer-functions-el")
24385 (synopsis "Hooks run when switching current buffer")
24386 (description "This package provides a hook variable
24387 @code{switch-buffer-functions}. The hooks will be run when the current buffer
24388 is changed after an interactive command, i.e., when @code{post-command-hook}
24389 hooks are run. The hooked functions will be called with both the previous and
24390 the current buffer.")
24391 (license license:unlicense)))
24392
24393 (define-public emacs-erc-scrolltoplace
24394 (package
24395 (name "emacs-erc-scrolltoplace")
24396 (version "0.1.0")
24397 (source
24398 (origin
24399 (method git-fetch)
24400 (uri (git-reference
24401 (url "https://gitlab.com/jgkamat/erc-scrolltoplace.git")
24402 (commit version)))
24403 (file-name (git-file-name name version))
24404 (sha256
24405 (base32 "11zpqwh1mlfifbgnvhc63bvnhg340jgxssm3m43hr1sxsyb52lh6"))))
24406 (build-system emacs-build-system)
24407 (propagated-inputs
24408 `(("emacs-switch-buffer-functions" ,emacs-switch-buffer-functions)))
24409 (home-page "https://gitlab.com/jgkamat/erc-scrolltoplace")
24410 (synopsis "ERC module to replace scrolltobottom while using keep-place")
24411 (description "@code{erc-scrolltoplace} is an ERC module to try
24412 to emulate @code{scrolltobottom} while @code{keep-place} is enabled.")
24413 (license license:gpl3+)))
24414
24415 (define-public emacs-dmenu
24416 ;; Use the latest commit, as there are no tagged releases.
24417 (let ((commit "e8cc9b27c79d3ecc252267c082ab8e9c82eab264")
24418 (revision "0"))
24419 (package
24420 (name "emacs-dmenu")
24421 (version (git-version "0.1" revision commit))
24422 (source
24423 (origin
24424 (method git-fetch)
24425 (uri (git-reference
24426 (url "https://github.com/lujun9972/el-dmenu")
24427 (commit commit)))
24428 (file-name (git-file-name name version))
24429 (sha256
24430 (base32 "098ncygms1r33zhjlq4fj2p4jc91v5whqrm3fazzdk7sd6dilf25"))))
24431 (build-system emacs-build-system)
24432 (home-page "https://github.com/lujun9972/el-dmenu")
24433 (synopsis "Simulate the @command{dmenu} command line program")
24434 (description "This package provides a @command{dmenu} command for
24435 launching other commands/applications from within Emacs, similar to the
24436 @command{dmenu} program. This is especially useful when using EXWM.")
24437 (license license:gpl3+))))
24438
24439 (define-public emacs-no-littering
24440 (package
24441 (name "emacs-no-littering")
24442 (version "1.2.0")
24443 (source
24444 (origin
24445 (method git-fetch)
24446 (uri (git-reference
24447 (url "https://github.com/emacscollective/no-littering")
24448 (commit (string-append "v" version))))
24449 (file-name (git-file-name name version))
24450 (sha256
24451 (base32 "1hma9var0nmrmjlh16s49hbfc1s4jvfd2prqxf14lxfd51404niw"))))
24452 (build-system emacs-build-system)
24453 (home-page "https://github.com/emacscollective/no-littering")
24454 (synopsis "Help keep ~/.emacs.d/ clean")
24455 (description "The default paths used to store configuration files and
24456 persistent data are not consistent across Emacs packages, be them built-in or
24457 third-party ones. @code{no-littering} sets out to help clean
24458 @file{~/.emacs.d/} by putting configuration files and persistent data files in
24459 two user-defined directories, as well as using more descriptive names for
24460 files and subdirectories when appropriate.")
24461 (license license:gpl3+)))
24462
24463 (define-public emacs-meson-mode
24464 (package
24465 (name "emacs-meson-mode")
24466 (version "0.3")
24467 (source
24468 (origin
24469 (method git-fetch)
24470 (uri (git-reference
24471 (url "https://github.com/wentasah/meson-mode")
24472 (commit (string-append "v" version))))
24473 (file-name (git-file-name name version))
24474 (sha256
24475 (base32 "0hlqvq3j4f6g16nj3bm2wbkncn8hv8c8iqd0sch3w80wwqnr622y"))))
24476 (build-system emacs-build-system)
24477 (home-page "https://github.com/wentasah/meson-mode")
24478 (synopsis "Major mode for Meson build system files")
24479 (description
24480 "This is an Emacs major mode for Meson build system files. Syntax
24481 highlighting works reliably. Indentation works too, but there are probably
24482 cases where it breaks.")
24483 (license license:gpl3+)))
24484
24485 (define-public emacs-message-x
24486 ;; Use the latest commit, as there are no tagged releases.
24487 (let ((commit "5524de7bbfdd8749c110f48de5afb024d9f83133")
24488 (revision "0"))
24489 (package
24490 (name "emacs-message-x")
24491 (version (git-version "1.23" revision commit))
24492 (source
24493 (origin
24494 (method git-fetch)
24495 (uri (git-reference
24496 (url "https://github.com/emacsmirror/message-x")
24497 (commit commit)))
24498 (file-name (git-file-name name version))
24499 (sha256
24500 (base32 "0qy1xf11j357lsnbb829hnbg7fq1cii4cx54fwf0wgjh1bv2abvj"))))
24501 (build-system emacs-build-system)
24502 (home-page "https://www.emacswiki.org/emacs/message-x.el")
24503 (synopsis "Customizable completion in message headers")
24504 (description "@code{message-x} assigns a context-sensitive function to
24505 the TAB key in Message mode. When on a header line, it performs completion
24506 based on which header we are in (for example, newsgroup name completion makes
24507 sense on the @samp{Newsgroups} header, whereas mail alias expansion makes
24508 sense in the @samp{To} and @samp{Cc} headers). When in the message body, this
24509 executes a different function (default: @code{indent-relative}).")
24510 (license license:gpl2+))))
24511
24512 (define-public emacs-glsl-mode
24513 ;; No tag, version grabbed from source .el file.
24514 (let ((commit "b07112016436d9634cd4ef747f9af6b01366d136")
24515 (revision "0"))
24516 (package
24517 (name "emacs-glsl-mode")
24518 (version (git-version "2.4" revision commit))
24519 (source
24520 (origin
24521 (method git-fetch)
24522 (uri (git-reference
24523 (url "https://github.com/jimhourihan/glsl-mode")
24524 (commit commit)))
24525 (file-name (git-file-name name version))
24526 (sha256
24527 (base32 "0bav9ipfm0vy26n74ngsmjzc7fsyqz6xmriadzx55s44h8p5dn1s"))))
24528 (build-system emacs-build-system)
24529 (home-page "https://github.com/jimhourihan/glsl-mode")
24530 (synopsis "Major mode for Open GLSL shader files")
24531 (description
24532 "This package provides a major mode for editing OpenGLSL grammar files,
24533 usually files ending with @file{.vert}, @file{.frag}, @file{.glsl} or
24534 @file{.geom}. It is based on C mode plus some features and pre-specified
24535 fontifications.")
24536 (license license:gpl3+))))
24537
24538 (define-public emacs-gnus-harvest
24539 (let ((commit "feda071a87b799bd5d23cacde3ee71f0b166e75d")
24540 (revision "0"))
24541 (package
24542 (name "emacs-gnus-harvest")
24543 (version (git-version "1.0" revision commit))
24544 (source
24545 (origin
24546 (method git-fetch)
24547 (uri (git-reference
24548 (url "https://github.com/jwiegley/gnus-harvest")
24549 (commit commit)))
24550 (file-name (git-file-name name version))
24551 (sha256
24552 (base32 "08zb7vc3v3wdxkzgi902vlc5ybfvm8fxrvm5drnwfsjj9873pbcb"))))
24553 (build-system emacs-build-system)
24554 (inputs
24555 `(("sqlite" ,sqlite)))
24556 (arguments
24557 `(#:phases
24558 (modify-phases %standard-phases
24559 (add-before 'build 'patch-exec-paths
24560 (lambda* (#:key inputs #:allow-other-keys)
24561 (let ((sqlite (assoc-ref inputs "sqlite"))
24562 (file "gnus-harvest.el"))
24563 (make-file-writable file)
24564 (emacs-substitute-variables file
24565 ("gnus-harvest-sqlite-program"
24566 (string-append sqlite "/bin/sqlite3"))))
24567 #t)))))
24568 (home-page "https://github.com/jwiegley/gnus-harvest")
24569 (synopsis
24570 "Harvest email addresses from read/written Gnus articles")
24571 (description "@code{gnus-harvest} notices email address in every message
24572 or post you read or write, and collects them in a SQLite database, which can
24573 be easily and quickly queried to determine the completion list. It optionally
24574 uses BBDB and Message-X.")
24575 (license license:gpl3+))))
24576
24577 (define-public emacs-auto-dictionary-mode
24578 (package
24579 (name "emacs-auto-dictionary-mode")
24580 (version "1.1")
24581 (source
24582 (origin
24583 (method git-fetch)
24584 (uri (git-reference
24585 (url "https://github.com/nschum/auto-dictionary-mode")
24586 (commit version)))
24587 (file-name (git-file-name name version))
24588 (sha256
24589 (base32 "191294k92qp8gmfypf0q8j8qrym96aqikzvyb9p03wqvbr3r1dsk"))))
24590 (build-system emacs-build-system)
24591 (home-page "http://nschum.de/src/emacs/auto-dictionary/")
24592 (synopsis "Automatic dictionary switcher for Emacs spell checking")
24593 (description "@code{auto-dictionary} is a minor mode that hooks into
24594 Flyspell's on-the-fly spell checking and extends these checks to also detect
24595 language. Auto-dictionary then sets @code{ispell-dictionary} to use the
24596 detected language.")
24597 (license license:gpl2+)))
24598
24599 (define-public emacs-persist
24600 (package
24601 (name "emacs-persist")
24602 (version "0.4")
24603 (source
24604 (origin
24605 (method url-fetch)
24606 (uri (string-append "https://elpa.gnu.org/packages/"
24607 "persist-" version ".tar"))
24608 (sha256
24609 (base32 "0gpxy41qawzss2526j9a7lys60vqma1lvamn4bfabwza7gfhac0q"))))
24610 (build-system emacs-build-system)
24611 (home-page "http://elpa.gnu.org/packages/persist.html")
24612 (synopsis "Persist variables between Emacs sessions")
24613 (description
24614 "This package provides variables which persist across sessions.
24615 Values are stored in a directory in @code{user-emacs-directory}, using
24616 one file per value. This makes it easy to delete or remove unused
24617 variables.")
24618 (license license:gpl3+)))
24619
24620 (define-public emacs-company-emoji
24621 (package
24622 (name "emacs-company-emoji")
24623 (version "2.5.2")
24624 (source
24625 (origin
24626 (method git-fetch)
24627 (uri (git-reference
24628 (url "https://github.com/dunn/company-emoji/")
24629 (commit version)))
24630 (file-name (git-file-name name version))
24631 (sha256
24632 (base32 "0r9zcbm3nb3zw5cwrkl098v5b49jbga5404bj7j55g6k4rwkjar2"))))
24633 (build-system emacs-build-system)
24634 (propagated-inputs
24635 `(("emacs-company" ,emacs-company)))
24636 (home-page "https://github.com/dunn/company-emoji/")
24637 (synopsis "Company completion back-end for emoji")
24638 (description
24639 "This library is a Company back-end providing auto-completion for
24640 emoji.")
24641 (license license:gpl3+)))
24642
24643 (define-public emacs-exiftool
24644 (package
24645 (name "emacs-exiftool")
24646 (version "0.3.2")
24647 (source
24648 (origin
24649 (method git-fetch)
24650 (uri (git-reference
24651 (url "https://git.systemreboot.net/exiftool.el/")
24652 (commit (string-append "v" version))))
24653 (file-name (git-file-name name version))
24654 (sha256
24655 (base32
24656 "0bv58is66cz21yhc0qqkp1z4nk13zfi2l7i6pjbhyi0g1n88qqyv"))))
24657 (build-system emacs-build-system)
24658 (arguments
24659 `(#:tests? #t
24660 #:test-command '("make" "-C" "tests")
24661 #:phases
24662 (modify-phases %standard-phases
24663 (add-after 'unpack 'configure
24664 (lambda* (#:key inputs #:allow-other-keys)
24665 (make-file-writable "exiftool.el")
24666 (emacs-substitute-variables "exiftool.el"
24667 ("exiftool-executable"
24668 (string-append (assoc-ref inputs "perl-image-exiftool")
24669 "/bin/exiftool")))
24670 #t)))))
24671 (inputs
24672 `(("perl-image-exiftool" ,perl-image-exiftool)))
24673 (home-page "https://git.systemreboot.net/exiftool.el/about/")
24674 (synopsis "Elisp wrapper around ExifTool")
24675 (description "@code{emacs-exiftool} is an Elisp wrapper around ExifTool.
24676 ExifTool supports reading and writing metadata in various formats including
24677 EXIF, XMP and IPTC.")
24678 (license license:gpl3+)))
24679
24680 (define-public emacs-password-generator
24681 (package
24682 (name "emacs-password-generator")
24683 (version "1.01")
24684 (home-page "https://github.com/zargener/emacs-password-genarator")
24685 (source
24686 (origin
24687 (method git-fetch)
24688 (uri (git-reference
24689 (url home-page)
24690 (commit "904cdb591a04305ba882ce19e1d117f5fa60f7d3")))
24691 (file-name (git-file-name name version))
24692 (sha256
24693 (base32
24694 "1qgvn79qz1h8ykm5i1qv2fja4v2y0g2i0n5sf7byhnqhqlwn63nv"))))
24695 (build-system emacs-build-system)
24696 (synopsis "Generate passwords inside Emacs")
24697 (description "@code{emacs-password-generator} provides simple functions to
24698 generate random passwords and insert them into the current buffer. It also
24699 supports generation of phonetic and numeric passwords.")
24700 (license license:artistic2.0)))
24701
24702 (define-public emacs-csv
24703 (package
24704 (name "emacs-csv")
24705 (version "2.1")
24706 (home-page "https://gitlab.com/u11/csv.el")
24707 (source
24708 (origin
24709 (method git-fetch)
24710 (uri (git-reference
24711 (url home-page)
24712 (commit (string-append "V" version))))
24713 (file-name (git-file-name name version))
24714 (sha256
24715 (base32
24716 "1vmazjrfcsa9aa9aw8bq5sazdhqvhxyj837dyw5lmh8gk7z0xdaa"))))
24717 (build-system emacs-build-system)
24718 (synopsis "Elisp functions for reading and parsing CSV files")
24719 (description
24720 "@code{csv.el} provides functions for reading and parsing @acronym{CSV,
24721 Comma-Separated Values} files. It follows the format as defined in RFC 4180
24722 @emph{Common Format and MIME Type for CSV
24723 Files} (@url{http://tools.ietf.org/html/rfc4180}).")
24724 (license license:gpl3+)))
24725
24726 (define-public emacs-org-journal
24727 (package
24728 (name "emacs-org-journal")
24729 (version "2.1.1")
24730 (source
24731 (origin
24732 (method git-fetch)
24733 (uri (git-reference
24734 (url "https://github.com/bastibe/org-journal")
24735 (commit version)))
24736 (file-name (git-file-name name version))
24737 (sha256
24738 (base32 "1p9i6v3bwi1ab576vc9qg1ki91197d6nkkg857s52zsan1zlkzzw"))))
24739 (build-system emacs-build-system)
24740 (home-page "https://github.com/bastibe/org-journal")
24741 (synopsis "Simple Org mode journaling mode")
24742 (description
24743 "Org Journal is a set of functions to maintain a simple personal diary /
24744 journal using in Emacs, adapted from
24745 @url{https://www.emacswiki.org/emacs/PersonalDiary}. Convenient bindings
24746 allow the creation of journal records in the current daily, weekly, monthly or
24747 yearly file and search within all records or specified time intervals. All
24748 records can be browsed and searched from the Emacs Calendar for convenience.
24749 All entries in a specified TODO state will be carried over to the next day.")
24750 (license license:bsd-3)))
24751
24752 (define-public emacs-org-static-blog
24753 (package
24754 (name "emacs-org-static-blog")
24755 (version "1.3.0")
24756 (source
24757 (origin
24758 (method git-fetch)
24759 (uri (git-reference
24760 (url "https://github.com/bastibe/org-static-blog")
24761 (commit version)))
24762 (file-name (git-file-name name version))
24763 (sha256
24764 (base32 "15iy3z8rglaqbx1fz14inh18ksgjsmq30b8hyv3lgjvcc9ssaiw0"))))
24765 (build-system emacs-build-system)
24766 (home-page "https://github.com/bastibe/org-static-blog")
24767 (synopsis
24768 "Simple Org mode based static blog generator")
24769 (description
24770 "@code{emacs-org-static-blog} is one more static blog generator, it
24771 focuses on being simple. All files are simple Org files in a directory. The
24772 only requirement is that every Org file must have a @samp{title} and
24773 a @samp{date} keywords, and optionally, a @samp{filetags} keyword.")
24774 (license license:bsd-3)))
24775
24776 (define-public emacs-ddskk
24777 ;; XXX: Upstream adds code names to their release tags, so version and code
24778 ;; name below need to be updated together.
24779 (let ((version "16.3")
24780 (code-name "Kutomatsunai"))
24781 (package
24782 (name "emacs-ddskk")
24783 (version version)
24784 (source
24785 (origin
24786 (method git-fetch)
24787 (uri (git-reference
24788 (url "https://github.com/skk-dev/ddskk")
24789 (commit (string-append "ddskk-" version "_" code-name))))
24790 (file-name (git-file-name name version))
24791 (sha256
24792 (base32 "0ln4x8f35z5y3kf9m718g223bn3lzcmw40jfjg2j5yi24ydf1wm9"))))
24793 (build-system gnu-build-system)
24794 (arguments
24795 `(#:modules ((guix build gnu-build-system)
24796 (guix build utils)
24797 (guix build emacs-utils))
24798 #:imported-modules (,@%gnu-build-system-modules
24799 (guix build emacs-utils))
24800 #:test-target "test"
24801 #:phases
24802 (modify-phases %standard-phases
24803 (replace 'configure
24804 (lambda* (#:key outputs #:allow-other-keys)
24805 (make-file-writable "SKK-MK")
24806 (emacs-substitute-variables "SKK-MK"
24807 ("PREFIX" (assoc-ref outputs "out"))
24808 ("LISPDIR" '(expand-file-name "/share/emacs/site-lisp" PREFIX))
24809 ("SKK_PREFIX" "")
24810 ("SKK_INFODIR" '(expand-file-name "info" PREFIX)))
24811 (for-each make-file-writable (find-files "./doc"))
24812 #t)))))
24813 (native-inputs
24814 `(("emacs-minimal" ,emacs-minimal)))
24815 (home-page "https://github.com/skk-dev/ddskk")
24816 (synopsis "Simple Kana to Kanji conversion program")
24817 (description
24818 "Daredevil SKK is a version of @acronym{SKK, Simple Kana to Kanji
24819 conversion program}, a Japanese input method on Emacs.")
24820 (license license:gpl2+))))
24821
24822 (define-public emacs-objed
24823 (package
24824 (name "emacs-objed")
24825 (version "0.8.3")
24826 (source
24827 (origin
24828 (method url-fetch)
24829 (uri (string-append
24830 "https://elpa.gnu.org/packages/objed-" version ".tar"))
24831 (sha256
24832 (base32
24833 "1s38d6bvggdk5p45ww1jb4gxifzgjwgw1m6ar920nlg0j4fgbcvr"))))
24834 (build-system emacs-build-system)
24835 (home-page "https://github.com/clemera/objed")
24836 (synopsis "Navigate and edit text objects")
24837 (description
24838 "@code{emacs-objed} allows navigating and editing text objects. It
24839 enables modal editing and composition of commands, too. It combines ideas of
24840 other Editors like Vim or Kakoune and tries to align them with regular Emacs
24841 conventions.")
24842 (license license:gpl3+)))
24843
24844 (define-public emacs-haskell-snippets
24845 ;; The commit below is 5 commits ahead of release, and includes a build fix.
24846 (let ((commit "07b0f460b946fd1be26c29652cb0468b47782f3a"))
24847 (package
24848 (name "emacs-haskell-snippets")
24849 (version (git-version "0.1.0" "0" commit))
24850 (source
24851 (origin
24852 (method git-fetch)
24853 (uri
24854 (git-reference
24855 (url "https://github.com/haskell/haskell-snippets")
24856 (commit commit)))
24857 (file-name (git-file-name name version))
24858 (sha256
24859 (base32 "0a7y3awi9hcyahggf0ghsdwvsmrhr9yq634wy9lkqjzrm2hqj0ci"))))
24860 (build-system emacs-build-system)
24861 (arguments
24862 `(#:phases
24863 (modify-phases %standard-phases
24864 (add-after 'install 'install-snippets
24865 (lambda* (#:key outputs #:allow-other-keys)
24866 (let* ((out (assoc-ref outputs "out"))
24867 (snippets
24868 (string-append
24869 out "/share/emacs/site-lisp/snippets/haskell-mode")))
24870 (mkdir-p snippets)
24871 (copy-recursively "snippets/haskell-mode" snippets)
24872 #t))))))
24873 (propagated-inputs
24874 `(("emacs-yasnippet" ,emacs-yasnippet)))
24875 (home-page "https://github.com/haskell/haskell-snippets")
24876 (synopsis "Official collection of YASnippet Haskell snippets for Emacs")
24877 (description "Haskell-Snippets is a collection of YASnippet Haskell
24878 snippets for Emacs.")
24879 (license license:expat))))
24880
24881 (define-public emacs-org-roam
24882 (package
24883 (name "emacs-org-roam")
24884 (version "1.2.2")
24885 (source
24886 (origin
24887 (method git-fetch)
24888 (uri (git-reference
24889 (url "https://github.com/org-roam/org-roam")
24890 (commit (string-append "v" version))))
24891 (file-name (git-file-name name version))
24892 (sha256
24893 (base32 "0fanv0nl03qn65amxsq4q544zrhv94a37gdg9bwydik9439avbsc"))))
24894 (build-system emacs-build-system)
24895 (propagated-inputs
24896 `(("emacs-company" ,emacs-company)
24897 ("emacs-dash" ,emacs-dash)
24898 ("emacs-emacsql-sqlite3" ,emacs-emacsql-sqlite3)
24899 ("emacs-f" ,emacs-f)
24900 ("emacs-org-ref" ,emacs-org-ref)
24901 ("emacs-s" ,emacs-s)))
24902 (home-page "https://github.com/org-roam/org-roam/")
24903 (synopsis "Non-hierarchical note-taking with Org mode")
24904 (description "Emacs Org Roam is a solution for taking non-hierarchical
24905 notes with Org mode. Notes are captured without hierarchy and are connected
24906 by tags. Notes can be found and created quickly. Org Roam should also work
24907 as a plug-and-play solution for anyone already using Org mode for their
24908 personal wiki.")
24909 (license license:gpl3+)))
24910
24911 (define-public emacs-org-generate
24912 (package
24913 (name "emacs-org-generate")
24914 (version "1.0.0")
24915 (source (origin
24916 (method git-fetch)
24917 (uri (git-reference
24918 (url "https://github.com/conao3/org-generate.el.git")
24919 (commit (string-append "v" version))))
24920 (file-name (git-file-name name version))
24921 (sha256
24922 (base32
24923 "0z2frp5mn3lp2xskwanw2rncrwa50x3aphy87vfxmhx4fqlqrzy8"))))
24924 (inputs
24925 `(("emacs-cort" ,emacs-cort))) ;tests suite
24926 (propagated-inputs
24927 `(("emacs-mustache" ,emacs-mustache)))
24928 (arguments
24929 `(#:tests? #t
24930 #:test-command '("emacs" "--batch" "--quick"
24931 "--directory=." "--load=org-generate-tests.el"
24932 "--funcall=cort-test-run")))
24933 (build-system emacs-build-system)
24934 (home-page "https://github.com/conao3/org-generate.el")
24935 (synopsis "Generate template files and folders from Org document")
24936 (description "This package generates files and folders from Emacs
24937 org-mode templates.")
24938 (license license:gpl3+)))
24939
24940 (define-public emacs-uml-mode
24941 ;; Package has no release. Version is extracted from "Version:" keyword in
24942 ;; main file.
24943 (let ((commit "4c37ac1c4424b2313cd8f16ba48a98a4cc214200")
24944 (revision "1"))
24945 (package
24946 (name "emacs-uml-mode")
24947 (version (git-version "0.0.4" revision commit))
24948 (source
24949 (origin
24950 (method git-fetch)
24951 (uri (git-reference
24952 (url "https://github.com/ianxm/emacs-uml")
24953 (commit commit)))
24954 (file-name (git-file-name name version))
24955 (sha256
24956 (base32 "145i4srnfvd1vyibri2a1l6p9mbjvkkwlrpi41134pbarqffcnka"))))
24957 (build-system emacs-build-system)
24958 (home-page "https://github.com/ianxm/emacs-uml")
24959 (synopsis "Minor mode for editing ASCII UML sequence diagrams")
24960 (description "Emacs UML mode is a minor mode that makes it easy to build
24961 ASCII UML sequence diagrams in Emacs, which can be embedded in source code,
24962 comments or emails.")
24963 (license license:gpl3+))))
24964
24965 (define-public emacs-trashed
24966 (package
24967 (name "emacs-trashed")
24968 (version "1.9.0")
24969 (source
24970 (origin
24971 (method git-fetch)
24972 (uri (git-reference
24973 (url "https://github.com/shingo256/trashed/")
24974 (commit version)))
24975 (file-name (git-file-name name version))
24976 (sha256
24977 (base32 "13grdi12iwlw4fiphdfmvclfpbr6ajlgfbfyi7v41z8k3rxz4ypz"))))
24978 (build-system emacs-build-system)
24979 (home-page "https://github.com/shingo256/trashed/")
24980 (synopsis "View and edit system trash can in Emacs")
24981 (description "Open, view, browse, restore or permanently delete trashed
24982 files or directories in trash can with Dired-like look and feel. The trash
24983 can has to be compliant with freedesktop.org. In Emacs, you can trash files by
24984 deleting them with @code{(setq delete-by-moving-to-trash t)}. This package
24985 provides a simple but convenient user interface to manage those trashed
24986 files.")
24987 (license license:gpl3+)))
24988
24989 (define-public emacs-plantuml-mode
24990 (package
24991 (name "emacs-plantuml-mode")
24992 (version "1.4.1")
24993 (source
24994 (origin
24995 (method git-fetch)
24996 (uri (git-reference
24997 (url "https://github.com/skuro/plantuml-mode")
24998 (commit (string-append "v" version))))
24999 (file-name (git-file-name name version))
25000 (sha256
25001 (base32 "0yp41d2dmf3sx7qnl5x0zdjcr9y71b2wwc9m0q31v22xqn938ipc"))))
25002 (arguments
25003 '(#:phases
25004 (modify-phases %standard-phases
25005 (add-after 'unpack 'use-local-plantuml
25006 (lambda* (#:key inputs #:allow-other-keys)
25007 (let ((plantuml (assoc-ref inputs "plantuml"))
25008 (file "plantuml-mode.el"))
25009 (chmod file #o644)
25010 (emacs-substitute-variables file
25011 ("plantuml-jar-path"
25012 (string-append plantuml "/share/java/plantuml.jar"))
25013 ("plantuml-executable-path"
25014 (string-append plantuml "/bin/plantuml"))
25015 ("plantuml-server-url" 'nil)
25016 ("plantuml-default-exec-mode" ''executable))
25017 (emacs-batch-edit-file file
25018 `(progn (progn
25019 (goto-char (point-min))
25020 (re-search-forward "(defun plantuml-download-jar")
25021 (beginning-of-line)
25022 (kill-sexp))
25023 (basic-save-buffer)))
25024 #t))))))
25025 (inputs
25026 `(("plantuml" ,plantuml)))
25027 (propagated-inputs
25028 `(("emacs-dash" ,emacs-dash)))
25029 (build-system emacs-build-system)
25030 (home-page "https://github.com/skuro/plantuml-mode")
25031 (synopsis "Major mode for editing PlantUML sources")
25032 (description "This package provides a major mode for editing PlantUML
25033 sources. It features syntax highlighting, autocompletion, preview of buffer
25034 or region and use of locally installed binaries.")
25035 (license license:gpl3+)))
25036
25037 (define-public emacs-execline
25038 (let ((commit "c75dd9b2c54d8e59fc35fd4bd98d8e213948a3f5")
25039 (revision "1"))
25040 (package
25041 (name "emacs-execline")
25042 (version (git-version "0.1" revision commit))
25043 (source (origin
25044 (method git-fetch)
25045 (uri (git-reference
25046 (url "https://gitlab.com/KAction/emacs-execline/")
25047 (commit commit)))
25048 (file-name (git-file-name name version))
25049 (sha256
25050 (base32
25051 "02q531c9wvdwflhggflnci4a36h2bb90bq25bbhw6i2lvrd9sk55"))))
25052 (build-system emacs-build-system)
25053 (propagated-inputs
25054 `(("emacs-s" ,emacs-s)))
25055 (arguments
25056 `(#:tests? #t
25057 #:test-command '("emacs" "-Q" "-batch" "-L" "."
25058 "-l" "t/indent.el"
25059 "-f" "ert-run-tests-batch-and-exit")))
25060 (home-page "https://gitlab.com/KAction/emacs-execline/")
25061 (synopsis "Major Emacs mode for editing execline scripts")
25062 (description
25063 "This package provides a major mode for editing execline scripts.
25064
25065 Features:
25066 @itemize
25067 @item Syntax highlighting of commends, builtin commands and variable substitution.
25068 @item Completion of builtin commands.
25069 @item Working @code{comment-region} command.
25070 @item Indentation of blocks.
25071 @item Automatic enable of mode in @file{*.exec} files.
25072 @item Automatic enable of mode in files with @code{execlineb} interpreter.
25073 @end itemize\n")
25074 (license license:gpl3+))))
25075
25076 (define-public emacs-shell-pop
25077 (let ((commit "4b4394037940a890a313d715d203d9ead2d156a6")
25078 (revision "0"))
25079 (package
25080 (name "emacs-shell-pop")
25081 (version (git-version "0.64" revision commit))
25082 (source
25083 (origin
25084 (method git-fetch)
25085 (uri (git-reference
25086 (url "https://github.com/kyagi/shell-pop-el")
25087 (commit commit)))
25088 (file-name (git-file-name name version))
25089 (sha256
25090 (base32 "0s77n6b9iw1x3dv91ybkpgy3zvqd12si7zw3lg0m2b6j1akrawsg"))))
25091 (build-system emacs-build-system)
25092 (home-page "https://github.com/kyagi/shell-pop-el")
25093 (synopsis "Utility which helps with pop up shell buffer")
25094 (description
25095 "This Emacs utility helps you pop up and pop out shell buffer window
25096 easily. Four pre-set options are: @samp{shell}, @samp{terminal},
25097 @samp{ansi-term}, and @samp{eshell}. You can also set your custom shell if
25098 you use some other configuration.")
25099 (license license:gpl3+))))
25100
25101 (define-public emacs-extmap
25102 (package
25103 (name "emacs-extmap")
25104 (version "1.1.1")
25105 (source
25106 (origin
25107 (method git-fetch)
25108 (uri (git-reference
25109 (url "https://github.com/doublep/extmap")
25110 (commit version)))
25111 (file-name (git-file-name name version))
25112 (sha256
25113 (base32
25114 "09kia3mr4si8kn46kyiza9nl669b22vmgc70ng3mqz742lph5siw"))))
25115 (build-system emacs-build-system)
25116 (home-page "https://github.com/doublep/extmap")
25117 (synopsis "Externally-stored constant mapping for Emacs Lisp")
25118 (description "A very simple package that lets you build a
25119 read-only, constant database that maps Emacs Lisp symbols to
25120 arbitrary Emacs Lisp objects.")
25121 (license license:gpl3+)))
25122
25123 (define-public emacs-csound-mode
25124 (package
25125 (name "emacs-csound-mode")
25126 (version "0.2.1")
25127 (source
25128 (origin
25129 (method git-fetch)
25130 (uri (git-reference
25131 (url "https://github.com/hlolli/csound-mode")
25132 (commit version)))
25133 (file-name (git-file-name name version))
25134 (sha256
25135 (base32
25136 "1c88ak0jaj51fwiqniqxd7xyk23wjl9m57znzm8j267ld8g12znp"))))
25137 (build-system emacs-build-system)
25138 (arguments
25139 `(#:phases
25140 (modify-phases %standard-phases
25141 (add-after 'unpack 'disable-breaking-compilation
25142 (lambda _
25143 (for-each (lambda (file)
25144 (chmod file #o600) ; needed to write changes.
25145 (emacs-batch-disable-compilation file))
25146 '("csound-font-lock.el"))
25147 #t)))))
25148 (inputs
25149 `(("emacs-highlight" ,emacs-highlight)
25150 ("emacs-multi" ,emacs-multi)
25151 ("emacs-shut-up" ,emacs-shut-up)))
25152 (home-page "https://github.com/hlolli/csound-mode")
25153 (synopsis "Emacs major mode for coding in CSound")
25154 (description "Provides both a basic major mode for editing
25155 CSound files, as well as a REPL for fast feedback when composing
25156 and sound-designing.")
25157 (license license:gpl3+)))
25158
25159 (define-public emacs-multi
25160 (package
25161 (name "emacs-multi")
25162 (version "2.0.1")
25163 (source
25164 (origin
25165 (method git-fetch)
25166 (uri (git-reference
25167 (url "https://github.com/kurisuwhyte/emacs-multi")
25168 (commit (string-append "v" version))))
25169 (file-name (git-file-name name version))
25170 (sha256
25171 (base32
25172 "11zabs7qpdhri6n90ck7pgwcbz46d813nyl73h5m1i8jvz1wzx7v"))))
25173 (build-system emacs-build-system)
25174 (home-page "https://github.com/kurisuwhyte/emacs-multi")
25175 (synopsis "Clojure-style multi-methods for Emacs Lisp")
25176 (description "Provides Emacs Lisp with a form of polymorphism
25177 by way of predicate dispatching. Methods consist of a dispatch
25178 function, and a series of branches. The dispatch function is
25179 applied to the arguments, and the result value is checked against
25180 the expectations of each branch to define which one to invoke.")
25181 (license license:expat)))
25182
25183 (define-public emacs-highlight
25184 (let ((commit "9258a2b8362d737115cbd87618f947eadb140411")
25185 (revision "1"))
25186 (package
25187 (name "emacs-highlight")
25188 (version "0.0.0")
25189 (source
25190 (origin
25191 (method git-fetch)
25192 (uri (git-reference
25193 (url "https://github.com/emacsmirror/highlight/")
25194 (commit commit)))
25195 (file-name (git-file-name name commit))
25196 (sha256
25197 (base32
25198 "0pbqzgbfkm8smi23j94hirxh2r1yc0ipyjbbv1y906br6bx5c1a8"))))
25199 (build-system emacs-build-system)
25200 (home-page "https://github.com/emacsmirror/highlight")
25201 (synopsis "Highlighting commands for GNU Emacs")
25202 (description "This library adds the possibility for ad-hoc
25203 applying highlighting to any face in GNU Emacs. The functionality
25204 of this library depends on overlays, which by default are not
25205 picked up when copy-pasting text from buffer to buffer.")
25206 (license license:gpl2+))))
25207
25208 (define-public emacs-org-webring
25209 (package
25210 (name "emacs-org-webring")
25211 (version "1.9.8-rc4")
25212 (source
25213 (origin
25214 (method git-fetch)
25215 (uri (git-reference
25216 (url "https://git.sr.ht/~brettgilio/org-webring")
25217 (commit version)))
25218 (file-name (git-file-name name version))
25219 (sha256
25220 (base32
25221 "0z2q29i9ng2vkzb6qbwb0dzvz8yv44p0kg07lx59pcdbv7mznjmc"))))
25222 (build-system emacs-build-system)
25223 (arguments
25224 `(#:phases
25225 (modify-phases %standard-phases
25226 (add-after 'install 'install-assets
25227 (lambda* (#:key outputs #:allow-other-keys)
25228 (let* ((out (assoc-ref outputs "out"))
25229 (assets
25230 (string-append out "/share/emacs/org-webring-assets")))
25231 (mkdir-p assets)
25232 (copy-recursively "assets" assets)
25233 #t))))))
25234 (propagated-inputs
25235 `(("emacs-xmlgen" ,emacs-xmlgen)))
25236 (home-page "https://sr.ht/~brettgilio/org-webring")
25237 (synopsis "Generate webrings for Org-based sites / blogs")
25238 (description "Org-webring is an alternative implementation of a
25239 feed-based webring, taking inspiration from openring by Drew DeVault.
25240 Intended to integrate with Org-based websites and blogs (either
25241 directly, or indirectly, as in ox-hugo), it will fetch a given list of
25242 web feed files and correctly parse and format the elements to be
25243 displayed for sharing.")
25244 (license license:gpl3+)))
25245
25246 (define-public emacs-scpaste
25247 (let ((commit "cd4fa0aafecd839736e0b6cba68b4fc4d7045472")
25248 (revision "0"))
25249 (package
25250 (name "emacs-scpaste")
25251 (version "0.6.5")
25252 (source
25253 (origin
25254 (method git-fetch)
25255 (uri (git-reference
25256 (url "https://git.sr.ht/~technomancy/scpaste")
25257 (commit commit)))
25258 (file-name (git-file-name name commit))
25259 (sha256
25260 (base32
25261 "1nvwbwl26z03963g9c82b3ggm39r95z1vp7c9qsa9mjm46dyq27w"))))
25262 (build-system emacs-build-system)
25263 (propagated-inputs
25264 `(("emacs-htmlize" ,emacs-htmlize)))
25265 (home-page "https://git.sr.ht/~technomancy/scpaste")
25266 (synopsis "Emacs-based static HTML pastebin")
25267 (description "This library will place an HTML copy of a
25268 buffer on an active webserver to which the user has SSH access.
25269 It is similar in purpose to services such as Gist or Pastebin,
25270 but is much simpler since it assumes the user has access to a
25271 publicly-accessible HTTP server.")
25272 (license license:gpl3+))))
25273
25274 (define-public emacs-company-reftex
25275 (package
25276 (name "emacs-company-reftex")
25277 (version "0.1.0")
25278 (source
25279 (origin
25280 (method git-fetch)
25281 (uri (git-reference
25282 (url "https://github.com/TheBB/company-reftex")
25283 (commit "275ef708f08d3bf0eb30632148e5c6184eeaacdb")))
25284 (file-name (git-file-name name version))
25285 (sha256
25286 (base32
25287 "118cgw5lsffqdqz95mnkw36mmnsbg9m52r2np4m7v14mjjwr9fby"))))
25288 (build-system emacs-build-system)
25289 (propagated-inputs
25290 `(("emacs-company" ,emacs-company)
25291 ("emacs-s" ,emacs-s)))
25292 (home-page "https://github.com/TheBB/company-reftex")
25293 (synopsis "RefTeX backends for company-mode")
25294 (description "This package provides company-mode backends for completing
25295 label references and citations in LaTeX. It is based on RefTeX, which is
25296 included with Emacs.")
25297 (license license:gpl3+)))
25298
25299 (define-public emacs-html-to-hiccup
25300 ;; Package has no release. Version is extracted from "Version:" keyword in
25301 ;; main file.
25302 (let ((commit "50a52e2b0d13d865187acdf775b8203d5003f2f1")
25303 (revision "0"))
25304 (package
25305 (name "emacs-html-to-hiccup")
25306 (version (git-version "1" revision commit))
25307 (source
25308 (origin
25309 (method git-fetch)
25310 (uri (git-reference
25311 (url "https://github.com/plexus/html-to-hiccup")
25312 (commit commit)))
25313 (file-name (git-file-name name version))
25314 (sha256
25315 (base32 "1qi092mw2n08v6yr0j6hlpx0pnlcnhxjqbsrlw9pn4yin6zk91yp"))))
25316 (build-system emacs-build-system)
25317 (propagated-inputs
25318 `(("dash" ,emacs-dash)
25319 ("s" ,emacs-s)))
25320 (home-page "https://github.com/plexus/html-to-hiccup")
25321 (synopsis "Turn HTML into Hiccup syntax")
25322 (description
25323 "This is an Emacs package that turns HTML into Hiccup syntax
25324 which is a popular notation to use when doing Clojure/ClojureScript
25325 web development.")
25326 ;; There is a conflict between the repository official LICENSE
25327 ;; file and the header of the main elisp file which indicates
25328 ;; that it is licensed under the GPL version 3 or later.
25329 (license (list license:mpl2.0 license:gpl3+)))))
25330
25331 (define-public emacs-iter2
25332 (package
25333 (name "emacs-iter2")
25334 (version "1.0")
25335 (source
25336 (origin
25337 (method git-fetch)
25338 (uri (git-reference
25339 (url "https://github.com/doublep/iter2")
25340 (commit version)))
25341 (file-name (git-file-name name version))
25342 (sha256
25343 (base32 "0gaq3z2v1q4r9mkyq71dzmqakhi0p8g7ph4z0n3a11rvyc3z9ykx"))))
25344 (build-system emacs-build-system)
25345 (home-page "https://github.com/doublep/iter2")
25346 (synopsis "Reimplementation of Elisp generators")
25347 (description "@code{iter2} is a fully compatible reimplementation of
25348 built-in generator package. It provides @code{iter2-defun} and
25349 @code{iter2-lambda} forms that can be used in place of @code{iter-defun} and
25350 @code{iter-lambda}. All other functions and macros (e.g. @code{iter-yield},
25351 @code{iter-next}) are intentionally not duplicated: just use the ones from the
25352 original package.")
25353 (license license:gpl3+)))
25354
25355 (define-public emacs-promise
25356 (package
25357 (name "emacs-promise")
25358 (version "1.1")
25359 (source
25360 (origin
25361 (method git-fetch)
25362 (uri (git-reference
25363 (url "https://github.com/chuntaro/emacs-promise")
25364 (commit version)))
25365 (file-name (git-file-name name version))
25366 (sha256
25367 (base32 "1xb34zdbwjvahfhycjphdkm925kgd22dr298c57hwxza4ljc2hxj"))))
25368 (build-system emacs-build-system)
25369 (home-page "https://github.com/chuntaro/emacs-promise")
25370 (synopsis "Promises/A+ for Emacs")
25371 (description "This is a simple implementation of Promises/A+.
25372
25373 This implementation ports the following Promises/A+ features
25374 faithfully. See @url{https://github.com/then/promise}.
25375
25376 @itemize
25377 @item The same API as the JavaScript version of Promise can be used.
25378 @item It has all the @code{then}, @code{catch}, @code{resolve}, @code{reject},
25379 @code{all}, @code{race}, etc.
25380 @item It supports \"thenable\".
25381 @item It supports \"Inheritance of Promise\".
25382 @item It supports \"rejection-tracking\".
25383 @end itemize\n")
25384 (license license:gpl3+)))
25385
25386 (define-public emacs-async-await
25387 (package
25388 (name "emacs-async-await")
25389 (version "1.1")
25390 (source
25391 (origin
25392 (method git-fetch)
25393 (uri (git-reference
25394 (url "https://github.com/chuntaro/emacs-async-await")
25395 (commit version)))
25396 (file-name (git-file-name name version))
25397 (sha256
25398 (base32 "0aav9qdswnw7ynqlzn0sm34as5fj2d85syxgg8zjabzp6646ay29"))))
25399 (build-system emacs-build-system)
25400 (propagated-inputs
25401 `(("promise" ,emacs-promise)
25402 ("iter2" ,emacs-iter2)))
25403 (home-page "https://github.com/chuntaro/emacs-async-await")
25404 (synopsis "Async/Await for Emacs")
25405 (description "This is a simple implementation of Async/Await inspired by
25406 the TypeScript implementation.")
25407 (license license:gpl3+)))
25408
25409 (define-public emacs-rocket-chat
25410 ;; No release.
25411 (let ((commit "96fe27a8678de5ae4061f635108a7192eee13f98"))
25412 (package
25413 (name "emacs-rocket-chat")
25414 (version (git-version "0.0.0" "1" commit))
25415 (source
25416 (origin
25417 (method git-fetch)
25418 (uri (git-reference
25419 (url "https://github.com/4hiziri/rocket-chat")
25420 (commit commit)))
25421 (file-name (git-file-name name version))
25422 (sha256
25423 (base32 "02a4j0yy7330kfr3rd3k2agdj01ii6989nki598anbamq6xvj5ql"))))
25424 (build-system emacs-build-system)
25425 (propagated-inputs
25426 `(("async-await" ,emacs-async-await)
25427 ("request" ,emacs-request)))
25428 (home-page "https://github.com/4hiziri/rocket-chat")
25429 (synopsis "Emacs Rocket.chat client")
25430 (description "This package provides an Emacs client for the Rocket.chat
25431 service.")
25432 (license license:expat))))
25433
25434 (define-public emacs-monokai-theme
25435 (package
25436 (name "emacs-monokai-theme")
25437 (version "3.5.3")
25438 (source
25439 (origin
25440 (method git-fetch)
25441 (uri (git-reference
25442 (url "https://github.com/oneKelvinSmith/monokai-emacs")
25443 (commit (string-append "v" version))))
25444 (file-name (git-file-name name version))
25445 (sha256
25446 (base32 "0dy8c3349j7fmp8052hbgvk0b7ldlv5jqpg0paq1i0hlypivd30i"))))
25447 (build-system emacs-build-system)
25448 (home-page "https://github.com/oneKelvinSmith/monokai-emacs")
25449 (synopsis "High contrast color theme for Emacs")
25450 (description
25451 "Monokai theme is a port of the popular TextMate Monokai theme for
25452 Emacs.")
25453 (license license:gpl3+)))
25454
25455 (define-public emacs-nord-theme
25456 (package
25457 (name "emacs-nord-theme")
25458 (version "0.5.0")
25459 (source
25460 (origin
25461 (method git-fetch)
25462 (uri (git-reference
25463 (url "https://github.com/arcticicestudio/nord-emacs")
25464 (commit (string-append "v" version))))
25465 (file-name (git-file-name name version))
25466 (sha256
25467 (base32 "096f8cik4jz89bvkifwp3gm9iraqrd75ljy2q9js724v7yj88711"))))
25468 (build-system emacs-build-system)
25469 (home-page "https://www.nordtheme.com/")
25470 (synopsis "Low contrast arctic color theme for Emacs")
25471 (description
25472 "Nord is an arctic, north-bluish color scheme created for a clean and
25473 uncluttered design pattern to achieve optimal focus and readability for code
25474 syntax highlighting and UI components.")
25475 (license license:expat)))