Add emacs-gnus-alias.
[guix.git] / gnu / packages / emacs-xyz.scm
blob10b630eed0d4c0989daebf1546f1487735d031ca
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 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 Ricardo Wurmus <rekado@elephly.net>
8 ;;; Copyright © 2016, 2017, 2018, 2019 Chris Marusich <cmmarusich@gmail.com>
9 ;;; Copyright © 2015, 2016, 2018 Christopher Lemmer Webber <cwebber@dustycloud.org>
10 ;;; Copyright © 2016 Adriano Peluso <catonano@gmail.com>
11 ;;; Copyright © 2016, 2017, 2018, 2019 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 ng0 <ng0@n0.is>
16 ;;; Copyright © 2016, 2019 Alex Griffin <a@ajgrf.com>
17 ;;; Copyright © 2016, 2017, 2018, 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
18 ;;; Copyright © 2016, 2017, 2018 Alex Vong <alexvong1995@gmail.com>
19 ;;; Copyright © 2016, 2017, 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
20 ;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
21 ;;; Copyright © 2017, 2018, 2019 Mathieu Othacehe <m.othacehe@gmail.com>
22 ;;; Copyright © 2017, 2018, 2019 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 Jan Nieuwenhuizen <janneke@gnu.org>
29 ;;; Copyright © 2017, 2018, 2019 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 Tobias Geerinckx-Rice <me@tobias.gr>
33 ;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org>
34 ;;; Copyright © 2017, 2018, 2019 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 Pierre Neidhardt <mail@ambrevar.xyz>
38 ;;; Copyright © 2018, 2019 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 Pierre Langlois <pierre.langlois@gmx.com>
44 ;;; Copyright © 2018, 2019 Brett Gilio <brettg@posteo.net>
45 ;;; Copyright © 2019 Dimakakos Dimos <bendersteed@teknik.io>
46 ;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com>
47 ;;; Copyright © 2019 mikadoZero <mikadozero@yandex.com>
48 ;;; Copyright © 2019 Gabriel Hondet <gabrielhondet@gmail.com>
49 ;;; Copyright © 2019 LaFreniere, Joseph <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@autitici.org>
53 ;;; Copyright © 2019 Jens Mølgaard <jens@zete.tk>
54 ;;;
55 ;;; This file is part of GNU Guix.
56 ;;;
57 ;;; GNU Guix is free software; you can redistribute it and/or modify it
58 ;;; under the terms of the GNU General Public License as published by
59 ;;; the Free Software Foundation; either version 3 of the License, or (at
60 ;;; your option) any later version.
61 ;;;
62 ;;; GNU Guix is distributed in the hope that it will be useful, but
63 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
64 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
65 ;;; GNU General Public License for more details.
66 ;;;
67 ;;; You should have received a copy of the GNU General Public License
68 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
70 (define-module (gnu packages emacs-xyz)
71   #:use-module ((guix licenses) #:prefix license:)
72   #:use-module (guix packages)
73   #:use-module (guix cvs-download)
74   #:use-module (guix download)
75   #:use-module (guix git-download)
76   #:use-module (guix build-system gnu)
77   #:use-module (guix build-system cmake)
78   #:use-module (guix build-system emacs)
79   #:use-module (guix build-system glib-or-gtk)
80   #:use-module (guix build-system perl)
81   #:use-module (guix build-system trivial)
82   #:use-module (gnu packages)
83   #:use-module (gnu packages admin)
84   #:use-module (gnu packages audio)
85   #:use-module (gnu packages bash)
86   #:use-module (gnu packages cmake)
87   #:use-module (gnu packages code)
88   #:use-module (gnu packages databases)
89   #:use-module (gnu packages emacs)
90   #:use-module (gnu packages guile)
91   #:use-module (gnu packages gtk)
92   #:use-module (gnu packages gnome)
93   #:use-module (gnu packages ncurses)
94   #:use-module (gnu packages python)
95   #:use-module (gnu packages python-xyz)
96   #:use-module (gnu packages tex)
97   #:use-module (gnu packages texinfo)
98   #:use-module (gnu packages tcl)
99   #:use-module (gnu packages tls)
100   #:use-module (gnu packages pkg-config)
101   #:use-module (gnu packages xorg)
102   #:use-module (gnu packages lesstif)
103   #:use-module (gnu packages llvm)
104   #:use-module (gnu packages image)
105   #:use-module (gnu packages linux)
106   #:use-module (gnu packages libevent)
107   #:use-module (gnu packages music)
108   #:use-module (gnu packages version-control)
109   #:use-module (gnu packages imagemagick)
110   #:use-module (gnu packages w3m)
111   #:use-module (gnu packages wget)
112   #:use-module (gnu packages autotools)
113   #:use-module (gnu packages base)
114   #:use-module (gnu packages compression)
115   #:use-module (gnu packages xml)
116   #:use-module (gnu packages glib)
117   #:use-module (gnu packages acl)
118   #:use-module (gnu packages mail)
119   #:use-module (gnu packages package-management)
120   #:use-module (gnu packages perl)
121   #:use-module (gnu packages pdf)
122   #:use-module (gnu packages scheme)
123   #:use-module (gnu packages speech)
124   #:use-module (gnu packages xiph)
125   #:use-module (gnu packages mp3)
126   #:use-module (gnu packages gettext)
127   #:use-module (gnu packages fribidi)
128   #:use-module (gnu packages gd)
129   #:use-module (gnu packages fontutils)
130   #:use-module (gnu packages password-utils)
131   #:use-module (gnu packages pulseaudio)
132   #:use-module (gnu packages sphinx)
133   #:use-module (gnu packages xdisorg)
134   #:use-module (gnu packages shells)
135   #:use-module (gnu packages sqlite)
136   #:use-module (gnu packages gnupg)
137   #:use-module (gnu packages video)
138   #:use-module (gnu packages haskell)
139   #:use-module (gnu packages wordnet)
140   #:use-module (guix utils)
141   #:use-module (srfi srfi-1)
142   #:use-module (ice-9 match))
145 ;;; Emacs hacking.
148 (define-public emacs-geiser
149   (package
150     (name "emacs-geiser")
151     (version "0.10")
152     (source (origin
153              (method url-fetch)
154              (uri (string-append "mirror://savannah/geiser/" version
155                                  "/geiser-" version ".tar.gz"))
156              (sha256
157               (base32
158                "0pj3l7p8d60c9b4vfprnv6g5l61d74pls4b5dvd84cn4ky9mzwjv"))))
159     (build-system gnu-build-system)
160     (arguments
161      '(#:phases
162        (modify-phases %standard-phases
163          (add-after 'install 'post-install
164            (lambda* (#:key outputs #:allow-other-keys)
165              (symlink "geiser-install.el"
166                       (string-append (assoc-ref outputs "out")
167                                      "/share/emacs/site-lisp/"
168                                      "geiser-autoloads.el"))
169              #t)))))
170     (inputs `(("guile" ,guile-2.2)))
171     (native-inputs `(("emacs" ,emacs-minimal)))
172     (home-page "https://nongnu.org/geiser/")
173     (synopsis "Collection of Emacs modes for Guile and Racket hacking")
174     (description
175      "Geiser is a collection of Emacs major and minor modes that conspire with
176 one or more Scheme implementations to keep the Lisp Machine Spirit alive.  The
177 continuously running Scheme interpreter takes the center of the stage in
178 Geiser.  A bundle of Elisp shims orchestrates the dialog between the Scheme
179 implementation, Emacs and, ultimately, the schemer, giving them access to live
180 metadata.")
181     (license license:bsd-3)))
183 (define-public geiser
184   (deprecated-package "geiser" emacs-geiser))
186 (define-public emacs-paredit
187   (package
188     (name "emacs-paredit")
189     (version "24")
190     (source (origin
191               (method url-fetch)
192               (uri (string-append "http://mumble.net/~campbell/emacs/paredit-"
193                                   version ".el"))
194               (sha256
195                (base32
196                 "0pp3n8q6kc70blqsaw0zlzp6bc327dpgdrjr0cnh7hqg1lras7ka"))))
197     (build-system emacs-build-system)
198     (home-page "http://mumble.net/~campbell/emacs/paredit/")
199     (synopsis "Emacs minor mode for editing parentheses")
200     (description
201      "ParEdit (paredit.el) is a minor mode for performing structured editing
202 of S-expression data.  The typical example of this would be Lisp or Scheme
203 source code.
205 ParEdit helps **keep parentheses balanced** and adds many keys for moving
206 S-expressions and moving around in S-expressions.  Its behavior can be jarring
207 for those who may want transient periods of unbalanced parentheses, such as
208 when typing parentheses directly or commenting out code line by line.")
209     (license license:gpl3+)))
211 (define-public paredit
212   (deprecated-package "paredit" emacs-paredit))
214 (define-public git-modes
215   (package
216     (name "emacs-git-modes")
217     (version "1.2.8")
218     (source (origin
219               (method git-fetch)
220               (uri (git-reference
221                      (url "https://github.com/magit/git-modes")
222                      (commit version)))
223               (file-name (git-file-name name version))
224               (sha256
225                (base32
226                 "08hy7rbfazs6grkpk54i82bz0i0c74zcjk96cip8970h6jn3mj72"))))
227     (build-system emacs-build-system)
228     (home-page "https://github.com/magit/git-modes")
229     (synopsis "Emacs major modes for Git configuration files")
230     (description
231      "This package provides Emacs major modes for editing various Git
232 configuration files, such as .gitattributes, .gitignore, and .git/config.")
233     (license license:gpl3+)))
235 (define-public git-modes/old-name
236   (deprecated-package "git-modes" git-modes))
238 (define-public emacs-with-editor
239   (package
240     (name "emacs-with-editor")
241     (version "2.8.3")
242     (source (origin
243               (method git-fetch)
244               (uri (git-reference
245                     (url "https://github.com/magit/with-editor.git")
246                     (commit (string-append "v" version))))
247               (file-name (git-file-name name version))
248               (sha256
249                (base32
250                 "1z2h9casyw1b93ikq2mf9xixyvbl90zddf0s66lqfiyj2y376pq3"))))
251     (build-system emacs-build-system)
252     (propagated-inputs
253      `(("emacs-dash" ,emacs-dash)))
254     (home-page "https://github.com/magit/with-editor")
255     (synopsis "Emacs library for using Emacsclient as EDITOR")
256     (description
257      "This package provides an Emacs library to use the Emacsclient as
258 @code{$EDITOR} of child processes, making sure they know how to call home.
259 For remote processes a substitute is provided, which communicates with Emacs
260 on stdout instead of using a socket as the Emacsclient does.")
261     (license license:gpl3+)))
263 (define-public emacs-magit
264   ;; Version 2.90.1 has trouble loading the transient library,
265   ;; so we use a more recent commit that fixes it.
266   (let ((commit "b4aec016b5577afa8d889f258b499814d1bb1d94"))
267     (package
268       (name "emacs-magit")
269       (version (git-version "2.90.1" "1" commit))
270       (source (origin
271                 (method git-fetch)
272                 (uri (git-reference
273                       (url "https://github.com/magit/magit")
274                       (commit commit)))
275                 (file-name (git-file-name name version))
276                 (sha256
277                  (base32
278                   "0zl7v6z0y50pcgqsf2r8c1k3r5nwjad9ba7r6sgrnf4rc62br7jv"))))
279       (build-system gnu-build-system)
280       (native-inputs `(("texinfo" ,texinfo)
281                        ("emacs" ,emacs-minimal)))
282       (inputs
283        `(("git" ,git)
284          ("perl" ,perl)))
285       (propagated-inputs
286        `(("dash" ,emacs-dash)
287          ("with-editor" ,emacs-with-editor)
288          ("transient" ,emacs-transient)))
289       (arguments
290        `(#:modules ((guix build gnu-build-system)
291                     (guix build utils)
292                     (guix build emacs-utils))
293          #:imported-modules (,@%gnu-build-system-modules
294                              (guix build emacs-utils))
295          #:test-target "test"
296          #:tests? #f                   ; tests are not included in the release
298          #:make-flags
299          (list (string-append "PREFIX=" %output)
300                ;; Don't put .el files in a sub-directory.
301                (string-append "lispdir=" %output "/share/emacs/site-lisp")
302                (string-append "DASH_DIR="
303                               (assoc-ref %build-inputs "dash")
304                               "/share/emacs/site-lisp/guix.d/dash-"
305                               ,(package-version emacs-dash))
306                (string-append "WITH_EDITOR_DIR="
307                               (assoc-ref %build-inputs "with-editor")
308                               "/share/emacs/site-lisp/guix.d/with-editor-"
309                               ,(package-version emacs-with-editor))
310                (string-append "TRANSIENT_DIR="
311                               (assoc-ref %build-inputs "transient")
312                               "/share/emacs/site-lisp/guix.d/transient-"
313                               ,(package-version emacs-transient)))
315          #:phases
316          (modify-phases %standard-phases
317            (delete 'configure)
318            (add-before
319                'build 'patch-exec-paths
320              (lambda* (#:key inputs #:allow-other-keys)
321                (let ((perl (assoc-ref inputs "perl")))
322                  (make-file-writable "lisp/magit-sequence.el")
323                  (emacs-substitute-variables "lisp/magit-sequence.el"
324                    ("magit-perl-executable" (string-append perl "/bin/perl")))
325                  #t))))))
326       (home-page "https://magit.vc/")
327       (synopsis "Emacs interface for the Git version control system")
328       (description
329        "With Magit, you can inspect and modify your Git repositories with Emacs.
330 You can review and commit the changes you have made to the tracked files, for
331 example, and you can browse the history of past changes.  There is support for
332 cherry picking, reverting, merging, rebasing, and other common Git
333 operations.")
334       (license license:gpl3+))))
336 (define-public magit
337   (deprecated-package "magit" emacs-magit))
339 (define-public emacs-magit-svn
340   (let ((commit "9e33ceee32f665db59909e1c00a667ccdd04178f"))
341     (package
342       (name "emacs-magit-svn")
343       (version (git-version "2.2.1" "1" commit))
344       (source (origin
345                 (method git-fetch)
346                 (uri (git-reference
347                       (url "https://github.com/magit/magit-svn")
348                       (commit commit)))
349                 (file-name (git-file-name name version))
350                 (sha256
351                  (base32
352                   "1mlqz8dh6jy5rv72lgkxv253dgh73fmbaidskicypapvbl3lr6xy"))))
353       (build-system trivial-build-system)
354       (native-inputs `(("emacs" ,emacs-minimal)))
355       (propagated-inputs `(("dash" ,emacs-dash)
356                            ("with-editor" ,emacs-with-editor)
357                            ("magit" ,emacs-magit)
358                            ("transient" ,emacs-transient)))
359       (arguments
360        `(#:modules ((guix build utils)
361                     (guix build emacs-utils))
363          #:builder
364          (begin
365            (use-modules (guix build utils)
366                         (guix build emacs-utils))
368            (let ((emacs    (string-append (assoc-ref %build-inputs "emacs")
369                                           "/bin/emacs"))
370                  (magit    (string-append (assoc-ref %build-inputs "magit")
371                                           "/share/emacs/site-lisp"))
372                  (transient (string-append (assoc-ref %build-inputs "transient")
373                                            "/share/emacs/site-lisp/guix.d/transient-"
374                                            ,(package-version emacs-transient)))
375                  (dash     (string-append (assoc-ref %build-inputs "dash")
376                                           "/share/emacs/site-lisp/guix.d/dash-"
377                                           ,(package-version emacs-dash)))
378                  (with-editor (string-append (assoc-ref %build-inputs "with-editor")
379                                              "/share/emacs/site-lisp/guix.d/with-editor-"
380                                              ,(package-version emacs-with-editor)))
381                  (source   (assoc-ref %build-inputs "source"))
382                  (lisp-dir (string-append %output "/share/emacs/site-lisp")))
384              (install-file (string-append source "/magit-svn.el")
385                            lisp-dir)
387              (with-directory-excursion lisp-dir
388                (parameterize ((%emacs emacs))
389                  (emacs-generate-autoloads ,name lisp-dir)
390                  (setenv "EMACSLOADPATH"
391                          (string-append ":" magit ":" transient
392                                         ":" dash ":" with-editor))
393                  (emacs-batch-eval '(byte-compile-file "magit-svn.el"))))
394              #t))))
395       (home-page "https://github.com/magit/magit-svn")
396       (synopsis "Git-SVN extension to Magit")
397       (description
398        "This package is an extension to Magit, the Git Emacs mode, providing
399 support for Git-SVN.")
400       (license license:gpl3+))))
402 (define-public magit-svn
403   (deprecated-package "magit-svn" emacs-magit-svn))
405 (define-public emacs-magit-popup
406   (package
407     (name "emacs-magit-popup")
408     (version "2.12.5")
409     (source (origin
410               (method git-fetch)
411               (uri (git-reference
412                     (url "https://github.com/magit/magit-popup.git")
413                     (commit (string-append "v" version))))
414               (file-name (git-file-name name version))
415               (sha256
416                (base32
417                 "13riknyqr6vxqll80sfhvz165flvdz367rbd0pr5slb01bnfsi2i"))))
418     (build-system emacs-build-system)
419     (arguments
420      `(#:phases
421        (modify-phases %standard-phases
422          (add-before 'install 'make-info
423            (lambda _
424              (invoke "make" "info"))))))
425     (native-inputs
426      `(("texinfo" ,texinfo)))
427     (propagated-inputs
428      `(("emacs-dash" ,emacs-dash)))
429     (home-page "https://github.com/magit/magit-popup")
430     (synopsis "Define prefix-infix-suffix command combos")
431     (description
432      "This library implements a generic interface for toggling switches and
433 setting options and then invoking an Emacs command which does something with
434 these arguments.  The prototypical use is for the command to call an external
435 process, passing on the arguments as command line arguments.")
436     (license license:gpl3+)))
438 (define-public emacs-minions
439   (package
440     (name "emacs-minions")
441     (version "0.3.1")
442     (source (origin
443               (method git-fetch)
444               (uri (git-reference
445                     (url "https://github.com/tarsius/minions.git")
446                     (commit (string-append "v" version))))
447               (file-name (git-file-name name version))
448               (sha256
449                (base32
450                 "0q2y37zfxlbfvgdn70ikg3abp8vljna4ir9nyqlz1awmz5i1c43s"))))
451     (build-system emacs-build-system)
452     (propagated-inputs
453      `(("emacs-dash" ,emacs-dash)))
454     (home-page "https://github.com/tarsius/minions")
455     (synopsis "Minor-mode menu for the mode line")
456     (description
457      "This package implements a menu that lists enabled minor-modes, as well
458 as commonly but not currently enabled minor-modes.  It can be used to toggle
459 local and global minor-modes, to access mode-specific menus, and to get help
460 about modes.
462 This menu is intended as a replacement for the incomplete yet wide list of
463 enabled minor-modes that is displayed in the mode line by default.  To use the
464 menu like this, enable Minions mode.
466 Alternatively the menu can be bound globally, for example:
467 @code{(global-set-key [S-down-mouse-3] 'minions-minor-modes-menu)}.")
468     (license license:gpl3+)))
470 (define-public emacs-treepy
471   (package
472     (name "emacs-treepy")
473     (version "0.1.1")
474     (source (origin
475               (method git-fetch)
476               (uri (git-reference
477                     (url "https://github.com/volrath/treepy.el.git")
478                     (commit version)))
479               (file-name (git-file-name name version))
480               (sha256
481                (base32
482                 "04zwm6gx9pxfvgfkizx6pvb1ql8pqxjyzqp8flz0432x0gq5nlxk"))))
483     (build-system emacs-build-system)
484     (home-page
485      "https://github.com/volrath/treepy.el")
486     (synopsis "Tree traversal tools")
487     (description
488      "Generic tools for recursive and iterative tree traversal based on
489 clojure.walk and clojure.zip respectively.")
490     (license license:gpl3+)))
492 (define-public emacs-graphql
493   (package
494    (name "emacs-graphql")
495    (version "0.1.1")
496    (source (origin
497              (modules '((guix build utils)))
498              ;; Remove examples file with references to external packages as
499              ;; they do not exist at compilation time.
500              (snippet
501               '(begin (delete-file "examples.el")
502                  #t))
503              (method git-fetch)
504              (uri (git-reference
505                    (url "https://github.com/vermiculus/graphql.el.git")
506                    (commit version)))
507               (file-name (git-file-name name version))
508               (sha256
509                (base32
510                 "0sp0skc1rnhi39szfbq1i99pdgd3bhn4c15cff05iqhjy2d4hniw"))))
511    (build-system emacs-build-system)
512    (home-page
513     "https://github.com/vermiculus/graphql.el")
514    (synopsis "GraphQL utilities")
515    (description
516     "GraphQL.el provides a generally-applicable domain-specific language for
517 creating and executing GraphQL queries against your favorite web services.
518 GraphQL is a data query language and runtime designed and used to request and
519 deliver data to mobile and web apps.")
520    (license license:gpl3+)))
522 (define-public emacs-ghub
523   (package
524     (name "emacs-ghub")
525     (version "3.2.0")
526     (source (origin
527               (method git-fetch)
528               (uri (git-reference
529                      (url "https://github.com/magit/ghub")
530                      (commit (string-append "v" version))))
531               (file-name (git-file-name name version))
532               (sha256
533                (base32
534                 "0lp52qygyavddl1lrgsyb6mq7hcf9h89dy2pzya3mb2va49f0vvl"))))
535     (build-system emacs-build-system)
536     (arguments
537      `(#:phases
538        (modify-phases %standard-phases
539          (add-before 'install 'make-info
540            (lambda _
541              (invoke "make" "info"))))))
542     (native-inputs
543      `(("texinfo" ,texinfo)))
544     (propagated-inputs
545      `(("dash" ,emacs-dash)
546        ("graphql" ,emacs-graphql)
547        ("treepy" ,emacs-treepy)))
548     (home-page "https://github.com/magit/ghub")
549     (synopsis "Emacs client libraries for the APIs of various Git forges")
550     (description
551      "Ghub provides basic support for using the APIs of various Git forges from
552 Emacs packages.  It supports the REST APIs of Github, Github GraphQL, Gitlab,
553 Gitea, Gogs and Bitbucket.  It abstracts access to API resources using only a
554 handful of functions that are not resource-specific.")
555     (license license:gpl3+)))
557 (define-public emacs-scribble-mode
558   (let ((commit "34e9e5edb921813b6483e0fefa848efb6ee4b314")
559         (version "0.0")
560         (revision 0))
561     (package
562       (name "emacs-scribble-mode")
563       (version (if (zero? revision)
564                    version
565                    (string-append version "-"
566                                   (number->string revision)
567                                   "." (string-take commit 7))))
568       (source (origin
569                 (method git-fetch)
570                 (uri (git-reference
571                       (url "https://github.com/emacs-pe/scribble-mode.git")
572                       (commit commit)))
573                 (sha256
574                  (base32
575                   "0598byqpz2q6yi2q4dwd77jj9z3n99z34d3an51s9m2za0nh1qvp"))))
576       (build-system emacs-build-system)
577       (home-page "https://github.com/emacs-pe/scribble-mode")
578       (synopsis "Emacs mode for editing the Scribble documentation syntax.")
579       (description
580        "This package provides basic syntax highlighting and editing support
581 for editing Racket's Scribble documentation syntax in Emacs.")
582       (license license:gpl3+))))
584 (define-public emacs-shroud
585   (package
586     (name "emacs-shroud")
587     (version "1.83.4")
588     (source
589      (origin
590        (method git-fetch)
591        (uri (git-reference
592              (url "https://github.com/o-nly/emacs-shroud.git")
593              (commit version)))
594        (file-name (git-file-name name version))
595        (sha256
596         (base32 "1yvdjx0kp4y8w5yz2cbqq9n6xl5splvmsyyx8ld1xv0q1c9872nf"))))
597     (build-system emacs-build-system)
598     (propagated-inputs
599      `(("emacs-bui" ,emacs-bui)
600        ("emacs-dash" ,emacs-dash)
601        ("emacs-f" ,emacs-f)
602        ("emacs-s" ,emacs-s)
603        ("gnupg" ,gnupg)
604        ("shroud" ,shroud)))
605     (home-page "https://github.com/o-nly/emacs-shroud")
606     (synopsis "Emacs interface to the Shroud password manager")
607     (description
608      "This package provides an Emacs interface to the Shroud password manager,
609 using the Buffers User Interface library.  You can view, copy, and edit secrets
610 from within Emacs.")
611     (license license:gpl3+)))
613 (define-public emacs-unpackaged-el
614   (let ((commit "f4df7f8dfea715e893b2223adda32545803f5cce")
615         (revision "1"))
616     (package
617       (name "emacs-unpackaged-el")
618       (version (git-version "0" revision commit))
619       (source
620        (origin
621          (method git-fetch)
622          (uri (git-reference
623                (url "https://github.com/alphapapa/unpackaged.el")
624                (commit commit)))
625          (file-name (git-file-name name version))
626          (sha256
627           (base32
628            "1yf3zrgqfhnr0az8gn1kqqwnhfi3nc0vbjkcagwcqwk3sp1jda86"))
629          (patches
630           (search-patches "emacs-unpackaged-req.patch"))))
631       (build-system emacs-build-system)
632       (propagated-inputs
633        `(("emacs-dash" ,emacs-dash)
634          ("emacs-org" ,emacs-org)
635          ("emacs-s" ,emacs-s)
636          ("emacs-hydra" ,emacs-hydra)
637          ("emacs-use-package" ,emacs-use-package)))
638       (home-page "https://github.com/alphapapa/unpackaged.el")
639       (synopsis "Useful snippets of Emacs Lisp code")
640       (description "This package provides Emacs Lisp utilities for a variety
641 of tasks, including version control, task management, and regex-based
642 replacement.")
643       (license license:gpl3+))))
645 (define-public emacs-haskell-mode
646   (package
647     (name "emacs-haskell-mode")
648     (version "16.1")
649     (source (origin
650               (method git-fetch)
651               (uri (git-reference
652                      (url "https://github.com/haskell/haskell-mode")
653                      (commit (string-append "v" version))))
654               (file-name (git-file-name name version))
655               (sha256
656                (base32 "1qk36y0v9fzass6785il65c6wb5cfj4ihhwkvgnzmbafpa8p4dvq"))
657               (patches
658                (search-patches ; backport test failure fixes
659                 "haskell-mode-unused-variables.patch"
660                 "haskell-mode-make-check.patch"))))
661     (inputs
662      `(("emacs-el-search" ,emacs-el-search) ; for tests
663        ("emacs-stream" ,emacs-stream)))     ; for tests
664     (propagated-inputs
665      `(("emacs-dash" ,emacs-dash)))
666     (native-inputs
667      `(("emacs" ,emacs-minimal)
668        ("texinfo" ,texinfo)))
669     (build-system gnu-build-system)
670     (arguments
671      `(#:make-flags (list (string-append "EMACS="
672                                          (assoc-ref %build-inputs "emacs")
673                                          "/bin/emacs"))
674        #:modules ((ice-9 match)
675                   (srfi srfi-26)
676                   ,@%gnu-build-system-modules)
677        #:phases
678        (modify-phases %standard-phases
679          (delete 'configure)
680          (add-before
681           'build 'pre-build
682           (lambda* (#:key inputs #:allow-other-keys)
683             (define (el-dir store-dir)
684               (match (find-files store-dir "\\.el$")
685                 ((f1 f2 ...) (dirname f1))
686                 (_ "")))
688             (let ((sh (string-append (assoc-ref inputs "bash") "/bin/sh")))
689               (define emacs-prefix? (cut string-prefix? "emacs-" <>))
691               (setenv "SHELL" "sh")
692               (setenv "EMACSLOADPATH"
693                       (string-concatenate
694                        (map (match-lambda
695                               (((? emacs-prefix? name) . dir)
696                                (string-append (el-dir dir) ":"))
697                               (_ ""))
698                             inputs)))
699               (substitute* (find-files "." "\\.el") (("/bin/sh") sh))
700               ;; embed filename to fix test failure
701               (let ((file "tests/haskell-cabal-tests.el"))
702                 (substitute* file
703                   (("\\(buffer-file-name\\)")
704                    (format #f "(or (buffer-file-name) ~s)" file))))
705               #t)))
706          (replace
707           'install
708           (lambda* (#:key outputs #:allow-other-keys)
709             (let* ((out (assoc-ref outputs "out"))
710                    (el-dir (string-append out "/share/emacs/site-lisp"))
711                    (doc (string-append
712                          out "/share/doc/haskell-mode-" ,version))
713                    (info (string-append out "/share/info")))
714               (define (copy-to-dir dir files)
715                 (for-each (lambda (f)
716                             (install-file f dir))
717                           files))
719               (with-directory-excursion "doc"
720                 (invoke "makeinfo" "haskell-mode.texi")
721                 (install-file "haskell-mode.info" info))
722                (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md"))
723                (copy-to-dir el-dir (find-files "." "\\.elc?"))
724                ;; These are part of other packages.
725                (with-directory-excursion el-dir
726                  (for-each delete-file '("dash.el" "ert.el")))
727                #t))))))
728     (home-page "https://github.com/haskell/haskell-mode")
729     (synopsis "Haskell mode for Emacs")
730     (description
731      "This is an Emacs mode for editing, debugging and developing Haskell
732 programs.")
733     (license license:gpl3+)))
735 (define-public haskell-mode
736   (deprecated-package "haskell-mode" emacs-haskell-mode))
738 (define-public emacs-dante
739   (let ((commit "149dded24ca9cdff09a3d859e4b62638db4aadda")
740         (revision "1"))
741     (package
742       (name "emacs-dante")
743       (version (git-version "1.5" revision commit))
744       (source (origin
745                 (method git-fetch)
746                 (uri (git-reference
747                       (url "https://github.com/jyp/dante")
748                       (commit commit)))
749                 (sha256
750                  (base32
751                   "0i7kj3d6pfys6si9va5f36qzifyac9mahdl0qh40rya9m0syrkla"))
752                 (file-name (git-file-name name version))))
753       (build-system emacs-build-system)
754       (propagated-inputs
755        `(("emacs-dash" ,emacs-dash)
756          ("emacs-f" ,emacs-f)
757          ("emacs-flycheck" ,emacs-flycheck)
758          ("emacs-haskell-mode" ,emacs-haskell-mode)
759          ("emacs-s" ,emacs-s)
760          ("emacs-company" ,emacs-company)
761          ("emacs-lcr" ,emacs-lcr)))
762       (home-page "https://github.com/jyp/dante")
763       (synopsis "Minor mode for interactive Haskell")
764       (description
765        "This package provides a minor mode for Haskell development that
766 supports type hints, definition-jumping, completion, and more.")
767       (license license:gpl3+))))
769 (define-public emacs-flycheck
770   (package
771     (name "emacs-flycheck")
772     (version "31")
773     (source (origin
774               (method url-fetch)
775               (uri (string-append
776                     "https://github.com/flycheck/flycheck/releases/download/"
777                     version "/flycheck-" version ".tar"))
778               (sha256
779                (base32
780                 "01rnwan16m7cyyrfca3c5c60mbj2r3knkpzbhji2fczsf0wns240"))
781               (modules '((guix build utils)))
782               (snippet `(begin
783                           ;; Change 'flycheck-version' so that it does not
784                           ;; attempt to get its version from pkg-info.el.
785                           (substitute* "flycheck.el"
786                             (("\\(pkg-info-version-info 'flycheck\\)")
787                              (string-append "\"" ,version "\"")))
788                           #t))))
789     (build-system emacs-build-system)
790     (propagated-inputs
791      `(("emacs-dash" ,emacs-dash)))
792     (home-page "https://www.flycheck.org")
793     (synopsis "On-the-fly syntax checking")
794     (description
795      "This package provides on-the-fly syntax checking for GNU Emacs.  It is a
796 replacement for the older Flymake extension which is part of GNU Emacs, with
797 many improvements and additional features.
799 Flycheck provides fully-automatic, fail-safe, on-the-fly background syntax
800 checking for over 30 programming and markup languages with more than 70
801 different tools.  It highlights errors and warnings inline in the buffer, and
802 provides an optional IDE-like error list.")
803     (license license:gpl3+)))                     ;+GFDLv1.3+ for the manual
805 (define-public emacs-a
806   (package
807     (name "emacs-a")
808     (version "0.1.1")
809     (source (origin
810               (method git-fetch)
811               (uri (git-reference
812                     (url "https://github.com/plexus/a.el.git")
813                     (commit (string-append "v" version))))
814               (file-name (git-file-name name version))
815               (sha256
816                (base32
817                 "00v9w6qg3bkwdhypq0ssf0phdh0f4bcq59c20lngd6vhk0204dqi"))))
818     (build-system emacs-build-system)
819     (home-page "https://github.com/plexus/a.el/")
820     (synopsis
821      "Emacs library for dealing with association lists and hash tables")
822     (description "@code{emacs-a} provides Emacs Lisp functions for dealing
823 with associative structures in a uniform and functional way.  These functions
824 can take association lists, hash tables, and in some cases vectors (where the
825 index is considered the key).")
826     (license license:gpl3+)))
828 (define-public emacs-ace-jump-mode
829   (package
830     (name "emacs-ace-jump-mode")
831     (version "2.0")
832     (home-page "https://github.com/winterTTr/ace-jump-mode")
833     (source (origin
834               (method git-fetch)
835               (uri (git-reference
836                     (url home-page)
837                     (commit (string-append "v" version))))
838               (sha256
839                (base32
840                 "1bwvzh056ls2v7y26a0s4j5mj582dmds04lx4x6iqihs04ss74bb"))
841               (file-name (git-file-name name version))))
842     (build-system emacs-build-system)
843     (synopsis "Cursor location minor mode for fast navigation")
844     (description "Ace-jump-mode is a fast/direct cursor location minor
845 mode.  It creates an N-Branch search tree internally and marks all
846 the possible position with predefined keys in within the whole Emacs
847 view.  This allows you to move to the character, word, or line almost
848 directly.")
849     (license license:gpl3+)))
851 (define-public emacs-anaphora
852   (package
853     (name "emacs-anaphora")
854     (version "1.0.4")
855     (source
856      (origin
857        (method git-fetch)
858        (uri (git-reference
859              (url "https://github.com/rolandwalker/anaphora.git")
860              (commit (string-append "v" version))))
861        (file-name (git-file-name name version))
862        (sha256
863         (base32
864          "11fgiy029sqz7nvdm7dcal95lacryz9zql0x5h05z48nrrcl4bib"))))
865     (build-system emacs-build-system)
866     (home-page "https://github.com/rolandwalker/anaphora/")
867     (synopsis "Anaphoric expressions for Emacs Lisp")
868     (description "@code{emacs-anaphora} implements anaphoric expressions for
869 Emacs Lisp.
871 Anaphoric expressions implicitly create one or more temporary variables which
872 can be referred to during the expression.  This technique can improve clarity
873 in certain cases.  It also enables recursion for anonymous functions.")
874     (license license:public-domain)))
876 (define-public emacs-xr
877   (package
878     (name "emacs-xr")
879     (version "1.12")
880     (source
881      (origin
882        (method url-fetch)
883        (uri (string-append
884              "https://elpa.gnu.org/packages/xr-" version ".tar"))
885        (sha256
886         (base32
887          "1vv87h0h8ldc1mbsn45w5z1m6jq8j2js4xz23a9ixdby06g60y3g"))))
888     (build-system emacs-build-system)
889     (home-page "http://elpa.gnu.org/packages/xr.html")
890     (synopsis "Convert string regexp to rx notation")
891     (description
892      "This is an inverse companion to the @code{rx} package for translating
893 regexps in string form to the @code{rx} notation.  Its chief uses are:
895 @itemize
896 @item Migrating existing code to @code{rx} form, for better readability and
897 maintainability
898 @item Understanding complex regexp strings and finding errors in them
899 @end itemize
901 In addition to Emacs regexps, this package can also parse and troubleshoot
902 skip set strings, which are arguments to @code{skip-chars-forward} and
903 @code{skip-chars-backward}.")
904     (license license:gpl3+)))
906 (define-public emacs-reformatter
907   (package
908     (name "emacs-reformatter")
909     (version "0.4")
910     (source
911      (origin
912       (method git-fetch)
913       (uri (git-reference
914             (url "https://github.com/purcell/reformatter.el.git")
915             (commit version)))
916       (file-name (git-file-name name version))
917       (sha256
918        (base32
919         "0hhy6x1bkwlhdlarsgm06g3am4yh02yqv8qs34szpzgy53x84qah"))))
920     (build-system emacs-build-system)
921     (home-page "https://github.com/purcell/reformatter.el")
922     (synopsis "Define commands which run reformatters on the current buffer")
923     (description
924      "This library lets elisp authors easily define an idiomatic command to
925 reformat the current buffer using a command-line program, together with an
926 optional minor mode which can apply this command automatically on save.")
927     (license license:gpl3+)))
929 (define-public emacs-relint
930   (package
931     (name "emacs-relint")
932     (version "1.8")
933     (source
934      (origin
935        (method url-fetch)
936        (uri (string-append
937              "https://elpa.gnu.org/packages/relint-" version ".el"))
938        (sha256
939         (base32
940          "1bl6m2h7131acbmr0kqfnjjpv2syiv2mxfnm61g874ynnvkmmkm3"))))
941     (build-system emacs-build-system)
942     (propagated-inputs `(("emacs-xr" ,emacs-xr)))
943     (home-page "https://github.com/mattiase/relint")
944     (synopsis "Elisp regexp mistake finder")
945     (description
946      "Relint (regular expression lint) scans Elisp files for mistakes in
947 regexps, including deprecated syntax and bad practice.  It also checks the
948 regexp-like arguments to @code{skip-chars-forward} and
949 @code{skip-chars-backward}.")
950     (license license:gpl3+)))
952 (define-public emacs-bug-hunter
953   (let ((commit "b88d981afa9154b236c5a3a83b50d5889d46c6a7")
954         (revision "1"))
955     (package
956       (name "emacs-bug-hunter")
957       (version (git-version "1.3.1" revision commit))
958       (source
959        (origin
960          (method git-fetch)
961          (uri (git-reference
962                (url "https://github.com/Malabarba/elisp-bug-hunter.git")
963                (commit commit)))
964          (file-name (git-file-name name commit))
965          (sha256
966           (base32
967            "134fj493sdn93pyyac8rpz1fzahzmayvphsrmqp3wvgysmfqm38l"))))
968       (build-system emacs-build-system)
969       (propagated-inputs
970        `(("emacs-seq" ,emacs-seq)))
971       (home-page "https://github.com/Malabarba/elisp-bug-hunter")
972       (synopsis "Hunt down errors by bisecting elisp files")
973       (description
974        "The Bug Hunter is an Emacs library that finds the source of an error
975 or unexpected behavior inside an elisp configuration file (typically
976 @file{init.el} or @file{.emacs}).")
977       (license license:gpl3+))))
981 ;;; Web browsing.
984 (define-public emacs-w3m
985   ;; Emacs-w3m follows a "rolling release" model.
986   (package
987     (name "emacs-w3m")
988     (version "2018-11-11")
989     (source (origin
990               (method cvs-fetch)
991               (uri (cvs-reference
992                     (root-directory
993                      ":pserver:anonymous@cvs.namazu.org:/storage/cvsroot")
994                     (module "emacs-w3m")
995                     (revision version)))
996               (file-name (string-append name "-" version "-checkout"))
997               (sha256
998                (base32
999                 "0nvahdbjs12zg7zsk4gql02mvnv56cf1rwj2f5p42lwp3xvswiwp"))))
1000     (build-system gnu-build-system)
1001     (native-inputs `(("autoconf" ,autoconf)
1002                      ("texinfo" ,texinfo)
1003                      ("emacs" ,emacs-minimal)))
1004     (inputs `(("w3m" ,w3m)
1005               ("imagemagick" ,imagemagick)))
1006     (arguments
1007      `(#:modules ((guix build gnu-build-system)
1008                   (guix build utils)
1009                   (guix build emacs-utils))
1010        #:imported-modules (,@%gnu-build-system-modules
1011                            (guix build emacs-utils))
1012        #:configure-flags
1013        (let ((out (assoc-ref %outputs "out")))
1014          (list (string-append "--with-lispdir="
1015                               out "/share/emacs/site-lisp")
1016                (string-append "--with-icondir="
1017                               out "/share/images/emacs-w3m")
1018                ;; Leave .el files uncompressed, otherwise GC can't
1019                ;; identify run-time dependencies.  See
1020                ;; <http://lists.gnu.org/archive/html/guix-devel/2015-12/msg00208.html>
1021                "--without-compress-install"))
1022        #:tests? #f                              ; no check target
1023        #:phases
1024        (modify-phases %standard-phases
1025          (add-after 'unpack 'autoconf
1026            (lambda _
1027              (invoke "autoconf")))
1028          (add-before 'configure 'support-emacs!
1029            (lambda _
1030              ;; For some reason 'AC_PATH_EMACS' thinks that 'Emacs 26' is
1031              ;; unsupported.
1032              (substitute* "configure"
1033                (("EMACS_FLAVOR=unsupported")
1034                 "EMACS_FLAVOR=emacs"))
1035              #t))
1036          (add-before 'build 'patch-exec-paths
1037            (lambda* (#:key inputs outputs #:allow-other-keys)
1038              (let ((out (assoc-ref outputs "out"))
1039                    (w3m (assoc-ref inputs "w3m"))
1040                    (imagemagick (assoc-ref inputs "imagemagick"))
1041                    (coreutils (assoc-ref inputs "coreutils")))
1042                (make-file-writable "w3m.el")
1043                (emacs-substitute-variables "w3m.el"
1044                  ("w3m-command" (string-append w3m "/bin/w3m"))
1045                  ("w3m-touch-command"
1046                   (string-append coreutils "/bin/touch"))
1047                  ("w3m-icon-directory"
1048                   (string-append out "/share/images/emacs-w3m")))
1049                (make-file-writable "w3m-image.el")
1050                (emacs-substitute-variables "w3m-image.el"
1051                  ("w3m-imagick-convert-program"
1052                   (string-append imagemagick "/bin/convert"))
1053                  ("w3m-imagick-identify-program"
1054                   (string-append imagemagick "/bin/identify")))
1055                #t)))
1056          (replace 'install
1057            (lambda* (#:key outputs #:allow-other-keys)
1058              (invoke "make" "install" "install-icons")
1059              (with-directory-excursion
1060                  (string-append (assoc-ref outputs "out")
1061                                 "/share/emacs/site-lisp")
1062                (for-each delete-file '("ChangeLog" "ChangeLog.1"))
1063                (symlink "w3m-load.el" "w3m-autoloads.el")
1064                #t))))))
1065     (home-page "http://emacs-w3m.namazu.org/")
1066     (synopsis "Simple Web browser for Emacs based on w3m")
1067     (description
1068      "Emacs-w3m is an emacs interface for the w3m web browser.")
1069     (license license:gpl2+)))
1071 (define-public emacs-wget
1072   (package
1073     (name "emacs-wget")
1074     (version "0.5.0")
1075     (source (origin
1076              (method url-fetch)
1077              (uri (string-append "mirror://debian/pool/main/w/wget-el/wget-el_"
1078                                  version ".orig.tar.gz"))
1079              (sha256
1080               (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff"))))
1081     (build-system gnu-build-system)
1082     (inputs `(("wget" ,wget)))
1083     (native-inputs `(("emacs" ,emacs-minimal)))
1084     (arguments
1085      `(#:modules ((guix build gnu-build-system)
1086                   (guix build utils)
1087                   (guix build emacs-utils))
1088        #:imported-modules (,@%gnu-build-system-modules
1089                            (guix build emacs-utils))
1090        #:tests? #f  ; no check target
1091        #:phases
1092        (modify-phases %standard-phases
1093          (replace 'configure
1094            (lambda* (#:key outputs #:allow-other-keys)
1095              (substitute* "Makefile"
1096                (("/usr/local") (assoc-ref outputs "out"))
1097                (("/site-lisp/emacs-wget") "/site-lisp"))
1098              #t))
1099          (add-before 'build 'patch-exec-paths
1100            (lambda* (#:key inputs outputs #:allow-other-keys)
1101              (let ((wget (assoc-ref inputs "wget")))
1102                (emacs-substitute-variables "wget.el"
1103                  ("wget-command" (string-append wget "/bin/wget"))))
1104              #t))
1105          (add-after 'install 'post-install
1106            (lambda* (#:key outputs #:allow-other-keys)
1107              (emacs-generate-autoloads
1108               "wget" (string-append (assoc-ref outputs "out")
1109                                     "/share/emacs/site-lisp/"))
1110              #t)))))
1111     (home-page "http://www.emacswiki.org/emacs/EmacsWget")
1112     (synopsis "Simple file downloader for Emacs based on wget")
1113     (description
1114      "Emacs-wget is an emacs interface for the wget file downloader.")
1115     (license license:gpl2+)))
1119 ;;; Multimedia.
1122 (define-public emacs-emms
1123   (package
1124     (name "emacs-emms")
1125     (version "5.2")
1126     (source (origin
1127               (method url-fetch)
1128               (uri (string-append "mirror://gnu/emms/emms-"
1129                                   version ".tar.gz"))
1130               (sha256
1131                (base32
1132                 "0cvpfdkagkpi8g02w8f7wzrpdk2ihas0mn5m9fr882xjdfshl21z"))
1133               (modules '((guix build utils)))
1134               (snippet
1135                '(begin
1136                   (substitute* "Makefile"
1137                     (("/usr/bin/install-info")
1138                      ;; No need to use 'install-info' since it would create a
1139                      ;; useless 'dir' file.
1140                      "true")
1141                     (("^INFODIR=.*")
1142                      ;; Install Info files to $out/share/info, not $out/info.
1143                      "INFODIR := $(PREFIX)/share/info\n")
1144                     (("/site-lisp/emms")
1145                      ;; Install directly in share/emacs/site-lisp, not in a
1146                      ;; sub-directory.
1147                      "/site-lisp")
1148                     (("^all: (.*)\n" _ rest)
1149                      ;; Build 'emms-print-metadata'.
1150                      (string-append "all: " rest " emms-print-metadata\n")))
1151                   #t))))
1152     (build-system gnu-build-system)
1153     (arguments
1154      `(#:modules ((guix build gnu-build-system)
1155                   (guix build utils)
1156                   (guix build emacs-utils)
1157                   (ice-9 ftw))
1158        #:imported-modules (,@%gnu-build-system-modules
1159                            (guix build emacs-utils))
1161        #:phases
1162        (modify-phases %standard-phases
1163          (replace 'configure
1164            (lambda* (#:key inputs outputs #:allow-other-keys)
1165              (let ((out     (assoc-ref outputs "out"))
1166                    (flac    (assoc-ref inputs "flac"))
1167                    (vorbis  (assoc-ref inputs "vorbis-tools"))
1168                    (alsa    (assoc-ref inputs "alsa-utils"))
1169                    (mpg321  (assoc-ref inputs "mpg321"))
1170                    (mp3info (assoc-ref inputs "mp3info"))
1171                    (mutagen (assoc-ref inputs "mutagen"))
1172                    (opus    (assoc-ref inputs "opus-tools")))
1173                ;; Specify the installation directory.
1174                (substitute* "Makefile"
1175                  (("PREFIX=.*$")
1176                   (string-append "PREFIX := " out "\n")))
1178                (setenv "SHELL" (which "sh"))
1179                (setenv "CC" "gcc")
1181                ;; Specify the absolute file names of the various
1182                ;; programs so that everything works out-of-the-box.
1183                (with-directory-excursion "lisp"
1184                  (emacs-substitute-variables
1185                      "emms-player-mpg321-remote.el"
1186                    ("emms-player-mpg321-remote-command"
1187                     (string-append mpg321 "/bin/mpg321")))
1188                  (substitute* "emms-player-simple.el"
1189                    (("\"ogg123\"")
1190                     (string-append "\"" vorbis "/bin/ogg123\"")))
1191                  (substitute* "emms-player-simple.el"
1192                    (("\"mpg321\"")
1193                     (string-append "\"" mpg321 "/bin/mpg321\"")))
1194                  (emacs-substitute-variables "emms-info-ogginfo.el"
1195                    ("emms-info-ogginfo-program-name"
1196                     (string-append vorbis "/bin/ogginfo")))
1197                  (emacs-substitute-variables "emms-info-opusinfo.el"
1198                    ("emms-info-opusinfo-program-name"
1199                     (string-append opus "/bin/opusinfo")))
1200                  (emacs-substitute-variables "emms-info-libtag.el"
1201                    ("emms-info-libtag-program-name"
1202                     (string-append out "/bin/emms-print-metadata")))
1203                  (emacs-substitute-variables "emms-info-mp3info.el"
1204                    ("emms-info-mp3info-program-name"
1205                     (string-append mp3info "/bin/mp3info")))
1206                  (emacs-substitute-variables "emms-info-metaflac.el"
1207                    ("emms-info-metaflac-program-name"
1208                     (string-append flac "/bin/metaflac")))
1209                  (emacs-substitute-variables "emms-source-file.el"
1210                    ("emms-source-file-gnu-find" (which "find")))
1211                  (substitute* "emms-volume-amixer.el"
1212                    (("\"amixer\"")
1213                     (string-append "\"" alsa "/bin/amixer\"")))
1214                  (substitute* "emms-tag-editor.el"
1215                    (("\"mid3v2\"")
1216                     (string-append "\"" mutagen "/bin/mid3v2\"")))
1217                  #t))))
1218          (add-before 'install 'pre-install
1219            (lambda* (#:key outputs #:allow-other-keys)
1220              ;; The 'install' rule expects the target directories to exist.
1221              (let* ((out  (assoc-ref outputs "out"))
1222                     (bin  (string-append out "/bin"))
1223                     (man1 (string-append out "/share/man/man1")))
1224                (mkdir-p bin)
1225                (mkdir-p man1)
1227                ;; Ensure that files are not rejected by gzip
1228                (let ((early-1980 315619200)) ; 1980-01-02 UTC
1229                  (ftw "." (lambda (file stat flag)
1230                             (unless (<= early-1980 (stat:mtime stat))
1231                               (utime file early-1980 early-1980))
1232                             #t)))
1233                #t)))
1234          (add-after 'install 'post-install
1235            (lambda* (#:key outputs #:allow-other-keys)
1236              (let ((out (assoc-ref outputs "out")))
1237                (symlink "emms-auto.el"
1238                         (string-append out "/share/emacs/site-lisp/"
1239                                        "emms-autoloads.el")))
1240              #t)))
1241        #:tests? #f))
1242     (native-inputs `(("emacs" ,emacs-minimal)    ;for (guix build emacs-utils)
1243                      ("texinfo" ,texinfo)))
1244     (inputs `(("alsa-utils" ,alsa-utils)
1245               ("flac" ,flac)            ;for metaflac
1246               ("vorbis-tools" ,vorbis-tools)
1247               ("mpg321" ,mpg321)
1248               ("taglib" ,taglib)
1249               ("mp3info" ,mp3info)
1250               ("mutagen" ,python-mutagen)
1251               ("opus-tools" ,opus-tools)))
1252     (properties '((upstream-name . "emms")))
1253     (synopsis "Emacs Multimedia System")
1254     (description
1255      "EMMS is the Emacs Multimedia System.  It is a small front-end which
1256 can control one of the supported external players.  Thus, it supports
1257 whatever formats are supported by your music player.  It also
1258 supports tagging and playlist management, all behind a clean and
1259 light user interface.")
1260     (home-page "https://www.gnu.org/software/emms/")
1261     (license license:gpl3+)))
1263 (define-public emacs-emms-player-mpv
1264   ;; A new mpv backend is included in Emms from 5.0.
1265   (deprecated-package "emacs-emms-player-mpv" emacs-emms))
1267 (define-public emacs-emms-mode-line-cycle
1268   (package
1269     (name "emacs-emms-mode-line-cycle")
1270     (version "0.2.5")
1271     (source
1272      (origin
1273        (method git-fetch)
1274        (uri (git-reference
1275               (url "https://github.com/momomo5717/emms-mode-line-cycle")
1276               (commit version)))
1277        (file-name (git-file-name name version))
1278        (sha256
1279         (base32
1280          "0q80f0plch6k4lhs8c9qm3mfycfbp3kn5sjrk9zxgxwnn901y9mp"))))
1281     (build-system emacs-build-system)
1282     (propagated-inputs
1283      `(("emms" ,emacs-emms)))
1284     (home-page "https://github.com/momomo5717/emms-mode-line-cycle")
1285     (synopsis "Display the EMMS mode line as a ticker")
1286     (description
1287      "This is a minor mode for updating the EMMS mode-line string cyclically
1288 within a specified width.  It is useful for displaying long track titles.")
1289     (license license:gpl3+)))
1293 ;;; Miscellaneous.
1296 (define-public emacs-ace-link
1297   (package
1298     (name "emacs-ace-link")
1299     (version "0.5.0")
1300     (source
1301      (origin
1302        (method git-fetch)
1303        (uri (git-reference
1304              (url "https://github.com/abo-abo/ace-link.git")
1305              (commit version)))
1306        (file-name (git-file-name name version))
1307        (sha256
1308         (base32
1309          "147dz79vg4ym5wg3d544bw2khdb2j3hr73rw4qfm64wf0q2dj0vk"))))
1310     (build-system emacs-build-system)
1311     (propagated-inputs
1312      `(("emacs-avy" ,emacs-avy)))
1313     (home-page "https://github.com/abo-abo/ace-link")
1314     (synopsis "Quickly follow links in Emacs")
1315     (description
1316      "Currently, to jump to a link in a @code{Info-mode}, @code{help-mode},
1317 @code{woman-mode}, @code{org-mode}, @code{eww-mode}, @code{compilation-mode},
1318 @code{goto-address-mode} buffer, you can tab through the links to select the
1319 one you want.  This is an O(N) operation, where the N is the amount of links.
1320 This package turns this into an O(1) operation.  It does so by assigning a
1321 letter to each link using avy.")
1322     (license license:gpl3+)))
1324 (define-public emacs-bbdb
1325   (package
1326     (name "emacs-bbdb")
1327     (version "3.1.2")
1328     (source (origin
1329               (method url-fetch)
1330               (uri (string-append "mirror://savannah/bbdb/bbdb-"
1331                                   version ".tar.gz"))
1332               (sha256
1333                (base32
1334                 "1gs16bbpiiy01w9pyg12868r57kx1v3hnw04gmqsmpc40l1hyy05"))
1335               (modules '((guix build utils)))
1336               (snippet
1337                ;; We don't want to build and install the PDF.
1338                '(begin
1339                   (substitute* "doc/Makefile.in"
1340                     (("^doc_DATA = .*$")
1341                      "doc_DATA =\n"))
1342                   #t))))
1343     (build-system gnu-build-system)
1344     (arguments
1345      '(#:phases
1346        (modify-phases %standard-phases
1347          (add-after 'install 'post-install
1348            (lambda* (#:key outputs #:allow-other-keys)
1349              ;; Add an autoloads file with the right name for guix.el.
1350              (let* ((out  (assoc-ref outputs "out"))
1351                     (site (string-append out "/share/emacs/site-lisp")))
1352                (with-directory-excursion site
1353                  (symlink "bbdb-loaddefs.el" "bbdb-autoloads.el")))
1354              #t)))))
1355     (native-inputs `(("emacs" ,emacs-minimal)))
1356     (home-page "https://savannah.nongnu.org/projects/bbdb/")
1357     (synopsis "Contact management utility for Emacs")
1358     (description
1359      "BBDB is the Insidious Big Brother Database for GNU Emacs.  It provides
1360 an address book for email and snail mail addresses, phone numbers and the
1361 like.  It can be linked with various Emacs mail clients (Message and Mail
1362 mode, Rmail, Gnus, MH-E, and VM).  BBDB is fully customizable.")
1363     (license license:gpl3+)))
1365 (define-public bbdb
1366   (deprecated-package "bbdb" emacs-bbdb))
1368 (define-public emacs-aggressive-indent
1369   (package
1370     (name "emacs-aggressive-indent")
1371     (version "1.8.3")
1372     (source (origin
1373               (method url-fetch)
1374               (uri (string-append "https://elpa.gnu.org/packages/"
1375                                   "aggressive-indent-" version ".el"))
1376               (sha256
1377                (base32
1378                 "0jnzccl50x0wapprgwxinp99pwwa6j43q6msn4gv437j7swy8wnj"))))
1379     (build-system emacs-build-system)
1380     (home-page "https://elpa.gnu.org/packages/aggressive-indent.html")
1381     (synopsis "Minor mode to aggressively keep your code always indented")
1382     (description
1383      "@code{aggressive-indent-mode} is a minor mode that keeps your code
1384 always indented.  It reindents after every change, making it more reliable
1385 than @code{electric-indent-mode}.")
1386     (license license:gpl2+)))
1388 (define-public emacs-link-hint
1389   ;; Last release was in 2015.
1390   (let ((commit "d74a483652486260c052941fedeadddb1ea71f88")
1391         (revision "1"))
1392     (package
1393       (name "emacs-link-hint")
1394       (version (git-version "0.1" revision commit))
1395       (source
1396        (origin
1397          (method git-fetch)
1398          (uri (git-reference
1399                (url "https://github.com/noctuid/link-hint.el")
1400                (commit commit)))
1401          (file-name (git-file-name name version))
1402          (sha256
1403           (base32
1404            "0dghxd165fbds6czy9bfwpid3i4irgp3q08n9mg57sfifi0cmij0"))))
1405       (build-system emacs-build-system)
1406       (propagated-inputs
1407        `(("emacs-avy" ,emacs-avy)))
1408       (home-page "https://github.com/noctuid/link-hint.el")
1409       (synopsis "Vimperator-style link-hinting in Emacs")
1410       (description "This package provides commands for visiting and acting on
1411 links.")
1412       (license license:gpl3+))))
1414 (define-public emacs-ag
1415   (package
1416     (name "emacs-ag")
1417     (version "0.47")
1418     (source (origin
1419               (method git-fetch)
1420               (uri (git-reference
1421                      (url "https://github.com/Wilfred/ag.el.git")
1422                      (commit version)))
1423               (file-name (git-file-name name version))
1424               (sha256
1425                (base32
1426                 "15kp99vwyi7hb1jkq3lwvqzw3v62ycixsq6y4pd1x0nn2v5p5m5r"))))
1427     (build-system emacs-build-system)
1428     (arguments
1429      `(#:phases
1430        (modify-phases %standard-phases
1431          (add-before 'install 'make-info
1432            (lambda _
1433              (with-directory-excursion "docs"
1434                (invoke "make" "info"))))
1435          (add-after 'install 'install-info
1436            (lambda* (#:key outputs #:allow-other-keys)
1437              (let* ((out  (assoc-ref outputs "out"))
1438                     (info (string-append out "/share/info")))
1439                (install-file "docs/_build/texinfo/agel.info" info)
1440                #t))))))
1441     (native-inputs
1442      `(("python-sphinx" ,python-sphinx)
1443        ("texinfo" ,texinfo)))
1444     (propagated-inputs
1445      `(("dash" ,emacs-dash)
1446        ("s" ,emacs-s)
1447        ;; We need to use 'ag' as the executable on remote systems.
1448        ("the-silver-searcher" ,the-silver-searcher)))
1449     (home-page "https://github.com/Wilfred/ag.el")
1450     (synopsis "Front-end for ag (the-silver-searcher) for Emacs")
1451     (description "This package provides the ability to use the silver
1452 searcher, a code searching tool, sometimes abbreviated to @code{ag}.  Features
1453 include version control system awareness, use of Perl compatible regular
1454 expressions, editing the search results directly and searching file names
1455 rather than the contents of files.")
1456     (license license:gpl3+)))
1458 (define-public emacs-async
1459   (package
1460     (name "emacs-async")
1461     (home-page "https://github.com/jwiegley/emacs-async")
1462     (version "1.9.3")
1463     (source (origin
1464               (method git-fetch)
1465               (uri (git-reference
1466                     (url home-page)
1467                     (commit (string-append "v" version))))
1468               (file-name (git-file-name name version))
1469               (sha256
1470                (base32
1471                 "1zsnb6dy8p6y68xgidv3dfxaga4biramfw8fq7wac0sc50vc98vq"))))
1472     (build-system emacs-build-system)
1473     (synopsis "Asynchronous processing in Emacs")
1474     (description
1475      "This package provides the ability to call asynchronous functions and
1476 processes.  For example, it can be used to run dired commands (for copying,
1477 moving, etc.) asynchronously using @code{dired-async-mode}.  Also it is used
1478 as a library for other Emacs packages.")
1479     (license license:gpl3+)))
1481 (define-public emacs-auctex
1482   (package
1483     (name "emacs-auctex")
1484     (version "12.1.2")
1485     (source
1486      (origin
1487        (method url-fetch)
1488        (uri (string-append
1489              "https://elpa.gnu.org/packages/auctex-"
1490              version
1491              ".tar"))
1492        (sha256
1493         (base32
1494          "1yibg2anpmyr2a27wm4xqjsvsi9km2jzb56bf7cwyj8dnjfsd11n"))))
1495     (build-system emacs-build-system)
1496     ;; We use 'emacs' because AUCTeX requires dbus at compile time
1497     ;; ('emacs-minimal' does not provide dbus).
1498     (arguments
1499      `(#:emacs ,emacs
1500        #:include '("\\.el$" "^images/" "^latex/" "\\.info$")
1501        #:exclude '("^tests/" "^latex/README")))
1502     (native-inputs
1503      `(("perl" ,perl)))
1504     (home-page "https://www.gnu.org/software/auctex/")
1505     (synopsis "Integrated environment for TeX")
1506     (description
1507      "AUCTeX is a comprehensive customizable integrated environment for
1508 writing input files for TeX, LaTeX, ConTeXt, Texinfo, and docTeX using Emacs
1509 or XEmacs.")
1510     (license license:gpl3+)))
1512 (define-public emacs-autothemer
1513   (package
1514     (name "emacs-autothemer")
1515     (version "0.2.2")
1516     (source
1517      (origin
1518        (method git-fetch)
1519        (uri (git-reference
1520               (url "https://github.com/sebastiansturm/autothemer.git")
1521               (commit version)))
1522        (file-name (git-file-name name version))
1523        (sha256
1524         (base32
1525          "0cd2pqh6k32sjidkcd8682y4l6mx52xw4a05f38kk8nsrk28m74k"))))
1526     (build-system emacs-build-system)
1527     (propagated-inputs
1528      `(("emacs-dash" ,emacs-dash)))
1529     (home-page "https://github.com/sebastiansturm/autothemer")
1530     (synopsis "Conveniently create Emacs themes")
1531     (description
1532      "Autothemer provides a thin layer on top of @code{deftheme} and
1533 @code{custom-theme-set-faces} that creates a new custom color theme, based on
1534 a set of simplified face specifications and a user-supplied color palette")
1535     (license license:gpl3+)))
1537 (define-public emacs-howm
1538   (package
1539     (name "emacs-howm")
1540     (version "1.4.4")
1541     (source
1542      (origin
1543        (method url-fetch)
1544        (uri (string-append "http://howm.sourceforge.jp/a/howm-"
1545                            version ".tar.gz"))
1546        (sha256
1547         (base32
1548          "0ddm91l6z58j7x59fa966j6q1rg4cinyza4r8ibg80hprn5h31qk"))))
1549     (build-system gnu-build-system)
1550     (native-inputs
1551      `(("emacs" ,emacs-minimal)))
1552     (arguments
1553      `(#:configure-flags
1554        (list (string-append "--with-howmdir=" %output
1555                             "/share/emacs/site-lisp/guix.d/howm-" ,version))
1556        #:modules ((guix build gnu-build-system)
1557                   ((guix build emacs-build-system) #:prefix emacs:)
1558                   (guix build utils))
1559        #:imported-modules (,@%gnu-build-system-modules
1560                            (guix build emacs-build-system)
1561                            (guix build emacs-utils))
1562        #:phases
1563        (modify-phases %standard-phases
1564          (add-after 'install 'make-autoloads
1565            (assoc-ref emacs:%standard-phases 'make-autoloads)))))
1566     (home-page "http://howm.osdn.jp/")
1567     (synopsis "Note-taking tool for Emacs")
1568     (description "Howm is a note-taking tool for Emacs.  Like
1569 code@{emacs-wiki.el}, it facilitates using hyperlinks and doing full-text
1570 searches.  Unlike code@{emacs-wiki.el}, it can be combined with any format.")
1571     (license license:gpl1+)))
1573 (define-public emacs-calfw
1574   (package
1575     (name "emacs-calfw")
1576     (version "1.6")
1577     (source
1578      (origin
1579        (method git-fetch)
1580        (uri (git-reference
1581               (url "https://github.com/kiwanami/emacs-calfw.git")
1582               (commit (string-append "v" version))))
1583        (file-name (git-file-name name version))
1584        (sha256
1585         (base32
1586          "0r42cagvmvvib76kd15nd9ix55ys6i549vxnls4z16s864695zpa"))))
1587     (build-system emacs-build-system)
1588     (propagated-inputs
1589      `(("emacs-howm" ,emacs-howm)))
1590     (home-page "https://github.com/kiwanami/emacs-calfw/")
1591     (synopsis "Calendar framework for Emacs")
1592     (description
1593      "This package displays a calendar view with various schedule data in the
1594 Emacs buffer.")
1595     (license license:gpl3+)))
1597 (define-public emacs-direnv
1598   (package
1599     (name "emacs-direnv")
1600     (version "1.5.0")
1601     (source
1602      (origin
1603        (method git-fetch)
1604        (uri (git-reference
1605               (url "https://github.com/wbolster/emacs-direnv.git")
1606               (commit version)))
1607        (file-name (git-file-name name version))
1608        (sha256
1609         (base32
1610          "02blhinkkfh3iai6j1k5swplf5mkwijy3p7wy38rnd1gnyj2z4la"))))
1611     (build-system emacs-build-system)
1612     (propagated-inputs
1613      `(("dash" ,emacs-dash)
1614        ("with-editor" ,emacs-with-editor)))
1615     (home-page "https://github.com/wbolster/emacs-direnv")
1616     (synopsis "Direnv integration for Emacs")
1617     (description
1618      "This package provides support for invoking direnv to get the environment
1619 for the current file and updating the environment within Emacs to match.
1621 Direnv can be invoked manually, and a global minor mode is included that will
1622 update the environment when the active buffer changes.
1624 Using emacs-direnv means that programs started from Emacs will use the
1625 environment set through Direnv.")
1626     (license license:gpl3+)))
1628 (define-public emacs-ggtags
1629   (package
1630     (name "emacs-ggtags")
1631     (version "0.8.13")
1632     (source
1633      (origin
1634        (method url-fetch)
1635        (uri (string-append "http://elpa.gnu.org/packages/ggtags-"
1636                            version ".el"))
1637        (sha256
1638         (base32
1639          "1qa7lcrcmf76sf6dy8sxbg4adq7rg59fm0n5848w3qxgsr0h45fg"))))
1640     (build-system emacs-build-system)
1641     (inputs
1642      `(("global" ,global)))
1643     (arguments
1644      `(#:phases
1645        (modify-phases %standard-phases
1646          (add-after 'unpack 'configure
1647            (lambda* (#:key inputs #:allow-other-keys)
1648              (chmod "ggtags.el" #o644)
1649              (emacs-substitute-variables "ggtags.el"
1650                ("ggtags-executable-directory"
1651                 (string-append (assoc-ref inputs "global") "/bin")))
1652              #t)))))
1653     (home-page "https://github.com/leoliu/ggtags")
1654     (synopsis "Frontend to the GNU Global source code tagging system")
1655     (description "@code{ggtags} provides a frontend to the GNU Global source
1656 code tagging system.
1658 Features:
1660 @itemize
1661 @item Build on @code{compile.el} for asynchronicity and its large feature-set.
1662 @item Automatically update Global's tag files when needed with tuning for
1663 large source trees.
1664 @item Intuitive navigation among multiple matches with mode-line display of
1665 current match, total matches and exit status.
1666 @item Read tag with completion.
1667 @item Show definition at point.
1668 @item Jump to #include files.
1669 @item Support search history and saving a search to register/bookmark.
1670 @item Query replace.
1671 @item Manage Global's environment variables on a per-project basis.
1672 @item Highlight (definition) tag at point.
1673 @item Abbreviated display of file names.
1674 @item Support all Global search backends: @code{grep}, @code{idutils}, etc.
1675 @item Support exuberant ctags @url{http://ctags.sourceforge.net/} and
1676 @code{pygments} backend.
1677 @item Support all Global's output formats: @code{grep}, @code{ctags-x},
1678 @code{cscope} etc.
1679 @item Support projects on remote hosts (e.g. via @code{tramp}).
1680 @item Support eldoc.
1681 @item Search @code{GTAGSLIBPATH} for references and symbols.
1682 @end itemize\n")
1683     (license license:gpl3+)))
1685 (define-public emacs-go-mode
1686   (package
1687     (name "emacs-go-mode")
1688     (version "1.5.0")
1689     (source (origin
1690               (method git-fetch)
1691               (uri (git-reference
1692                     (url "https://github.com/dominikh/go-mode.el.git")
1693                     (commit (string-append "v" version))))
1694               (file-name (git-file-name name version))
1695               (sha256
1696                (base32
1697                 "1nd2h50yb0493wvf1h7fzplq45rmqn2w7kxpgnlxzhkvq99v8vzf"))))
1698     (build-system emacs-build-system)
1699     (arguments
1700      `(#:phases
1701        (modify-phases %standard-phases
1702          (add-after 'unpack 'make-writable
1703            (lambda _
1704              (for-each make-file-writable (find-files "." "\\.el$"))
1705              #t)))))
1706     (home-page "https://github.com/dominikh/go-mode.el")
1707     (synopsis "Go mode for Emacs")
1708     (description
1709      "This package provides go-mode, an Emacs mode for working with software
1710 written in the Go programming language.")
1711     (license license:bsd-3)))
1713 (define-public emacs-google-maps
1714   (package
1715     (name "emacs-google-maps")
1716     (version "1.0.0")
1717     (source (origin
1718               (method git-fetch)
1719               (uri (git-reference
1720                      (url "https://github.com/jd/google-maps.el.git")
1721                      (commit version)))
1722               (file-name (git-file-name name version))
1723               (sha256
1724                (base32
1725                 "183igr5lp20zcqi7rc01fk76sfxdhksd74i11v16gdsifdkjimd0"))))
1726     (build-system emacs-build-system)
1727     (home-page "https://github.com/jd/google-maps.el")
1728     (synopsis "Access Google Maps from Emacs")
1729     (description "The @code{google-maps} package allows to display Google
1730 Maps directly inside Emacs.")
1731     (license license:gpl3+)))
1733 (define-public emacs-graphviz-dot-mode
1734   (let ((commit "c456a2b65c734089e6c44e87209a5a432a741b1a")
1735         (revision "1"))
1736     (package
1737       (name "emacs-graphviz-dot-mode")
1738       (version (string-append "0.3.11-" revision "."
1739                               (string-take commit 7)))
1740       (source (origin
1741                 (method git-fetch)
1742                 (uri (git-reference
1743                       (url "https://github.com/ppareit/graphviz-dot-mode.git")
1744                       (commit commit)))
1745                 (file-name (git-file-name name version))
1746                 (sha256
1747                  (base32
1748                   "0j1r2rspaakw37b0mx7pwpvdsvixq9sw3xjbww5piihzpdxz58z1"))))
1749       (build-system emacs-build-system)
1750       (arguments
1751        `(#:phases
1752          (modify-phases %standard-phases
1753            (add-before 'install 'make-info
1754              (lambda* (#:key inputs #:allow-other-keys)
1755                (with-directory-excursion "texinfo"
1756                  (substitute* "Makefile"
1757                    (("\\/usr\\/bin\\/gzip")
1758                     (string-append (assoc-ref inputs "gzip") "/bin/gzip")))
1759                  (invoke "make"
1760                          "clean"
1761                          "info"
1762                          (string-append "TEXINFODIR="
1763                                         (assoc-ref inputs "texinfo")
1764                                         "/bin")))))
1765            (add-after 'install 'install-info
1766              (lambda* (#:key outputs #:allow-other-keys)
1767                (let* ((out  (assoc-ref outputs "out"))
1768                       (info (string-append out "/share/info")))
1769                  (install-file "texinfo/graphviz-dot-mode.info.gz" info)
1770                  #t))))))
1771       (native-inputs
1772        `(("texinfo" ,texinfo)
1773          ("gzip" ,gzip)))
1774       (home-page "http://ppareit.github.com/graphviz-dot-mode")
1775       (synopsis "Major mode for editing Graphviz Dot files")
1776       (description
1777        "This Emacs packages helps you to create @file{.dot} or @file{.gv}
1778 files using the dot syntax, and use Graphviz to convert these files to
1779 diagrams.")
1780       (license license:gpl2+))))
1782 (define-public emacs-mmm-mode
1783   (package
1784     (name "emacs-mmm-mode")
1785     (version "0.5.7")
1786     (source
1787      (origin
1788        (method git-fetch)
1789        (uri (git-reference
1790               (url "https://github.com/purcell/mmm-mode.git")
1791               (commit version)))
1792        (file-name (git-file-name name version))
1793        (sha256
1794         (base32
1795          "0lxd55yhz0ag7v1ydff55bg4h8snq5lbk8cjwxqpyq6gh4v7md1h"))))
1796     (build-system gnu-build-system)
1797     (native-inputs
1798      `(("autoconf" ,autoconf)
1799        ("automake" ,automake)
1800        ("emacs" ,emacs-minimal)
1801        ("texinfo" ,texinfo)))
1802     (home-page "https://github.com/purcell/mmm-mode")
1803     (synopsis "Allow multiple major modes in an Emacs buffer")
1804     (description
1805      "MMM Mode is a minor mode that allows multiple major modes to coexist in a
1806 single buffer.")
1807     (license license:gpl3+)))
1809 (define-public emacs-tablist
1810   (package
1811     (name "emacs-tablist")
1812     (version "0.70")
1813     (source (origin
1814               (method git-fetch)
1815               (uri (git-reference
1816                      (url "https://github.com/politza/tablist.git")
1817                      (commit (string-append "v" version))))
1818               (file-name (git-file-name name version))
1819               (sha256
1820                (base32
1821                 "0gy9hxm7bca0l1hfy2pzn86avpifrz3bs8xzpicj4kxw5wi4ygns"))))
1822     (build-system emacs-build-system)
1823     (home-page "https://github.com/politza/tablist")
1824     (synopsis "Extension for @code{tabulated-list-mode}")
1825     (description "Tablist is the Emacs package that provides several
1826 additional features to @code{tabulated-list-mode}: it adds marks,
1827 filters, new key bindings and faces.  It can be enabled by
1828 @code{tablist-mode} or @code{tablist-minor-mode} commands.")
1829     (license license:gpl3+)))
1831 (define-public emacs-pdf-tools
1832   (package
1833     (name "emacs-pdf-tools")
1834     (version "0.90")
1835     (home-page "https://github.com/politza/pdf-tools")
1836     (source (origin
1837               (method git-fetch)
1838               (uri (git-reference (url home-page)
1839                                   (commit (string-append "v" version))))
1840               (file-name (git-file-name name version))
1841               (sha256
1842                (base32
1843                 "0iv2g5kd14zk3r5dzdw7b7hk4b5w7qpbilcqkja46jgxbb6xnpl9"))))
1844     (build-system gnu-build-system)
1845     (arguments
1846      `(#:tests? #f                      ; there are no tests
1847        #:modules ((guix build gnu-build-system)
1848                   ((guix build emacs-build-system) #:prefix emacs:)
1849                   (guix build utils)
1850                   (guix build emacs-utils))
1851        #:imported-modules (,@%gnu-build-system-modules
1852                            (guix build emacs-build-system)
1853                            (guix build emacs-utils))
1854        #:phases
1855        (modify-phases %standard-phases
1856          ;; Build server side using 'gnu-build-system'.
1857          (add-after 'unpack 'enter-server-dir
1858            (lambda _ (chdir "server") #t))
1859          (add-after 'enter-server-dir 'autogen
1860            (lambda _
1861              (invoke "bash" "autogen.sh")))
1863          ;; Build emacs side using 'emacs-build-system'.
1864          (add-after 'compress-documentation 'enter-lisp-dir
1865            (lambda _ (chdir "../lisp") #t))
1866          (add-after 'enter-lisp-dir 'emacs-patch-variables
1867            (lambda* (#:key outputs #:allow-other-keys)
1868              (for-each make-file-writable (find-files "."))
1870              ;; Set path to epdfinfo program.
1871              (emacs-substitute-variables "pdf-info.el"
1872                ("pdf-info-epdfinfo-program"
1873                 (string-append (assoc-ref outputs "out")
1874                                "/bin/epdfinfo")))
1875              ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto
1876              ;; upgrading" that pdf-tools tries to perform.
1877              (emacs-substitute-variables "pdf-tools.el"
1878                ("pdf-tools-handle-upgrades" '()))))
1879          (add-after 'emacs-patch-variables 'emacs-set-emacs-load-path
1880            (assoc-ref emacs:%standard-phases 'set-emacs-load-path))
1881          (add-after 'emacs-set-emacs-load-path 'emacs-install
1882            (assoc-ref emacs:%standard-phases 'install))
1883          (add-after 'emacs-install 'emacs-build
1884            (assoc-ref emacs:%standard-phases 'build))
1885          (add-after 'emacs-install 'emacs-make-autoloads
1886            (assoc-ref emacs:%standard-phases 'make-autoloads)))))
1887     (native-inputs `(("autoconf" ,autoconf)
1888                      ("automake" ,automake)
1889                      ("pkg-config" ,pkg-config)
1890                      ("emacs" ,emacs-minimal)))
1891     (inputs `(("poppler" ,poppler)
1892               ("cairo" ,cairo)
1893               ("glib" ,glib)
1894               ("libpng" ,libpng)
1895               ("zlib" ,zlib)))
1896     (propagated-inputs `(("tablist" ,emacs-tablist)))
1897     (synopsis "Emacs support library for PDF files")
1898     (description
1899      "PDF Tools is, among other things, a replacement of DocView for PDF
1900 files.  The key difference is that pages are not pre-rendered by
1901 e.g. ghostscript and stored in the file-system, but rather created on-demand
1902 and stored in memory.")
1903     (license license:gpl3+)))
1905 (define-public emacs-dash
1906   (package
1907     (name "emacs-dash")
1908     (version "2.16.0")
1909     (source (origin
1910               (method git-fetch)
1911               (uri (git-reference
1912                     (url "https://github.com/magnars/dash.el.git")
1913                     (commit version)))
1914               (file-name (git-file-name name version))
1915               (sha256
1916                (base32
1917                 "150k48llqz2mb66vbznpyj47r6g16amfl7hbg8q46djq8mp7zc2v"))))
1918     (build-system emacs-build-system)
1919     (arguments
1920      `(#:tests? #t
1921        #:test-command '("./run-tests.sh")))
1922     (home-page "https://github.com/magnars/dash.el")
1923     (synopsis "Modern list library for Emacs")
1924     (description "This package provides a modern list API library for Emacs.")
1925     (license license:gpl3+)))
1927 (define-public emacs-bui
1928   (package
1929     (name "emacs-bui")
1930     (version "1.2.1")
1931     (source (origin
1932               (method git-fetch)
1933               (uri (git-reference
1934                     (url "https://notabug.org/alezost/emacs-bui.git")
1935                     (commit (string-append "v" version))))
1936               (file-name (git-file-name name version))
1937               (sha256
1938                (base32
1939                 "0sszdl4kvqbihdh8d7mybpp0d8yw2p3gyiipjcxz9xhvvmw3ww4x"))))
1940     (build-system emacs-build-system)
1941     (propagated-inputs
1942      `(("dash" ,emacs-dash)))
1943     (home-page "https://notabug.org/alezost/emacs-bui")
1944     (synopsis "Buffer interface library for Emacs")
1945     (description
1946      "BUI (Buffer User Interface) is a library for making @code{list} and
1947 @code{info} interfaces to display an arbitrary data of the same
1948 type, for example: packages, buffers, files, etc.")
1949     (license license:gpl3+)))
1951 (define-public emacs-guix
1952   (package
1953     (name "emacs-guix")
1954     (version "0.5.1.1")
1955     (source (origin
1956               (method url-fetch)
1957               (uri (string-append "https://emacs-guix.gitlab.io/website/"
1958                                   "releases/emacs-guix-" version ".tar.gz"))
1959               (sha256
1960                (base32
1961                 "1gxg7lan3njc2yg2d02b2zij0d2cm2pv2q08nqz86s85jk3b6m03"))))
1962     (build-system gnu-build-system)
1963     (arguments
1964      `(#:configure-flags
1965        (let ((guix        (assoc-ref %build-inputs "guix"))
1966              (gcrypt      (assoc-ref %build-inputs "guile-gcrypt"))
1967              (geiser      (assoc-ref %build-inputs "geiser"))
1968              (dash        (assoc-ref %build-inputs "dash"))
1969              (bui         (assoc-ref %build-inputs "bui"))
1970              (magit-popup (assoc-ref %build-inputs "magit-popup"))
1971              (edit-indirect (assoc-ref %build-inputs "edit-indirect"))
1972              (site-lisp   "/share/emacs/site-lisp")
1973              (site-scm    "/share/guile/site")
1974              (site-go     "/lib/guile")
1975              (guile-dir (lambda (dir)
1976                           (car (find-files dir
1977                                            (lambda (file stat)
1978                                              (string-prefix?
1979                                               "2." (basename file)))
1980                                            #:directories? #t)))))
1981          (list (string-append "--with-guix-site-dir="
1982                               (guile-dir (string-append guix site-scm)))
1983                (string-append "--with-guix-site-ccache-dir="
1984                               (guile-dir (string-append guix site-go))
1985                               "/site-ccache")
1986                (string-append "--with-guile-gcrypt-site-dir="
1987                               (guile-dir (string-append gcrypt site-scm)))
1988                (string-append "--with-guile-gcrypt-site-ccache-dir="
1989                               (guile-dir (string-append gcrypt site-go))
1990                               "/site-ccache")
1991                (string-append "--with-geiser-lispdir=" geiser site-lisp)
1992                (string-append "--with-dash-lispdir="
1993                               dash site-lisp "/guix.d/dash-"
1994                               ,(package-version emacs-dash))
1995                (string-append "--with-bui-lispdir="
1996                               bui site-lisp "/guix.d/bui-"
1997                               ,(package-version emacs-bui))
1998                (string-append "--with-editindirect-lispdir="
1999                               edit-indirect site-lisp "/guix.d/edit-indirect-"
2000                               ,(package-version emacs-edit-indirect))
2001                (string-append "--with-popup-lispdir="
2002                               magit-popup site-lisp "/guix.d/magit-popup-"
2003                               ,(package-version emacs-magit-popup))))))
2004     (native-inputs
2005      `(("pkg-config" ,pkg-config)
2006        ("emacs" ,emacs-minimal)))
2007     (inputs
2008      `(("guile" ,guile-2.2)
2009        ("guix" ,guix)))
2010     (propagated-inputs
2011      `(("geiser" ,emacs-geiser)
2012        ("guile-gcrypt" ,guile-gcrypt)
2013        ("dash" ,emacs-dash)
2014        ("bui" ,emacs-bui)
2015        ("edit-indirect" ,emacs-edit-indirect)
2016        ("magit-popup" ,emacs-magit-popup)))
2017     (home-page "https://emacs-guix.gitlab.io/website/")
2018     (synopsis "Emacs interface for GNU Guix")
2019     (description
2020      "Emacs-Guix provides a visual interface, tools and features for the GNU
2021 Guix package manager.  Particularly, it allows you to do various package
2022 management tasks from Emacs.  To begin with, run @code{M-x guix-about} or
2023 @code{M-x guix-help} command.")
2024     (license license:gpl3+)))
2026 (define-public emacs-build-farm
2027   (package
2028     (name "emacs-build-farm")
2029     (version "0.2.2")
2030     (source (origin
2031               (method git-fetch)
2032               (uri (git-reference
2033                     (url "https://notabug.org/alezost/emacs-build-farm.git")
2034                     (commit (string-append "v" version))))
2035               (file-name (git-file-name name version))
2036               (sha256
2037                (base32
2038                 "0i0bwbav5861j2y15j9nd5m9rdqg9q97zgcbld8pivr9nyxy63lz"))))
2039     (build-system emacs-build-system)
2040     (propagated-inputs
2041      `(("bui" ,emacs-bui)
2042        ("magit-popup" ,emacs-magit-popup)))
2043     (home-page "https://notabug.org/alezost/emacs-build-farm")
2044     (synopsis "Emacs interface for Hydra and Cuirass build farms")
2045     (description
2046      "This Emacs package provides an interface for Hydra and
2047 Cuirass (build farms used by Nix and Guix).  It allows you to look at
2048 various data related to the build farm projects, jobsets, builds and
2049 evaluations.  The entry point is @code{M-x build-farm} command.")
2050     (license license:gpl3+)))
2052 (define-public emacs-d-mode
2053   (package
2054     (name "emacs-d-mode")
2055     (version "2.0.9")
2056     (source
2057      (origin
2058        (method git-fetch)
2059        (uri (git-reference
2060              (url "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode.git")
2061              (commit version)))
2062        (file-name (git-file-name name version))
2063        (sha256
2064         (base32 "0fzplvi1sm8k2sabfdvrd7j2xypwqh0g9v1mxa75dajdmcd85zpj"))))
2065     (build-system emacs-build-system)
2066     (propagated-inputs
2067      `(("emacs-undercover" ,emacs-undercover)))
2068     (home-page "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
2069     (synopsis "Emacs major mode for editing D code")
2070     (description "This package provides an Emacs major mode for highlighting
2071 code written in the D programming language.  This mode is currently known to
2072 work with Emacs 24 and 25.")
2073     (license license:gpl2+)))
2075 (define-public emacs-keyfreq
2076   (package
2077     (name "emacs-keyfreq")
2078     (version "20160516.716")
2079     (source
2080       (origin
2081         (method url-fetch)
2082         (uri (string-append "http://melpa.org/packages/keyfreq-"
2083                version ".el"))
2084         (sha256
2085           (base32
2086             "008hd7d06qskc3mx0bbdgpgy2pwxr8185fzlyqf9qjg49y74p6g8"))))
2087     (build-system emacs-build-system)
2088     (home-page "https://github.com/dacap/keyfreq")
2089     (synopsis "Track Emacs command frequencies")
2090     (description "@code{emacs-keyfeq} tracks and shows how many times you used
2091 a command.")
2092     (license license:gpl3+)))
2094 (define-public emacs-olivetti
2095   (package
2096     (name "emacs-olivetti")
2097     (version "1.5.7")
2098     (source (origin
2099               (method url-fetch)
2100               (uri (string-append
2101                     "https://stable.melpa.org/packages/olivetti-"
2102                     version ".el"))
2103               (sha256
2104                (base32
2105                 "1yj2ylg46q0pw1xzlv2b0fv9x8p56x25284s9v2smwjr4vf0nwcj"))))
2106     (build-system emacs-build-system)
2107     (home-page "https://github.com/rnkn/olivetti")
2108     (synopsis "Emacs minor mode for a nice writing environment")
2109     (description "This package provides an Emacs minor mode that puts writing
2110 in the center.")
2111     (license license:gpl3+)))
2113 (define-public emacs-undo-tree
2114   (package
2115     (name "emacs-undo-tree")
2116     (version "0.6.6")
2117     (source (origin
2118               (method git-fetch)
2119               (uri (git-reference
2120                     (url "http://dr-qubit.org/git/undo-tree.git")
2121                     (commit (string-append "release/" version))))
2122               (file-name (git-file-name name version))
2123               (sha256
2124                (base32
2125                 "1hnh2mnmw179gr094r561w6cw1haid0lpvpqvkc24wpj82vphzpa"))))
2126     (build-system emacs-build-system)
2127     (home-page "http://www.dr-qubit.org/emacs.php")
2128     (synopsis "Treat undo history as a tree")
2129     (description "Tree-like interface to Emacs undo system, providing
2130 graphical tree presentation of all previous states of buffer that
2131 allows easily move between them.")
2132     (license license:gpl3+)))
2134 (define-public emacs-s
2135   (package
2136     (name "emacs-s")
2137     (version "1.12.0")
2138     (source
2139      (origin
2140        (method git-fetch)
2141        (uri (git-reference
2142              (url "https://github.com/magnars/s.el.git")
2143              (commit version)))
2144        (file-name (git-file-name name version))
2145        (sha256
2146         (base32 "1g8mqd13llj007al4nlxxx4z2lcsg3wk970mgjn0avwrhjjgdmmv"))))
2147     (build-system emacs-build-system)
2148     (arguments
2149      `(#:tests? #t
2150        #:emacs ,emacs                   ; FIXME: tests fail with emacs-minimal
2151        #:test-command '("./run-tests.sh")))
2152     (home-page "https://github.com/magnars/s.el")
2153     (synopsis "Emacs string manipulation library")
2154     (description "This package provides an Emacs library for manipulating
2155 strings.")
2156     (license license:gpl3+)))
2158 (define-public emacs-symon
2159   (package
2160     (name "emacs-symon")
2161     (version "20160630")
2162     (source
2163      (origin
2164        (method git-fetch)
2165        (uri (git-reference
2166              (url "https://github.com/zk-phi/symon.git")
2167              (commit version)))
2168        (file-name (git-file-name name version))
2169        (sha256
2170         (base32 "1q7di9s8k710nx98wnqnbkkhdimrn0jf6z4xkm4c78l6s5idjwlz"))))
2171     (build-system emacs-build-system)
2172     (home-page "https://github.com/zk-phi/symon")
2173     (synopsis "Tiny graphical system monitor")
2174     (description
2175      "Tiny graphical system monitor for the Emacs minibuffer when idle.")
2176     (license license:gpl2+)))
2178 (define-public emacs-sx
2179   (let ((version "20180212")
2180         (revision "1")
2181         (commit "833435fbf90d1c9e927d165b155f3b1ef39271de"))
2182     (package
2183       (name "emacs-sx")
2184       (version (git-version version revision commit))
2185       (source
2186        (origin
2187          (method git-fetch)
2188          (uri (git-reference
2189                (url "https://github.com/vermiculus/sx.el")
2190                (commit commit)))
2191          (file-name (git-file-name name version))
2192          (sha256
2193           (base32
2194            "1369xaxq1vy3d9yh862ddnhddikdpg2d0wv1ly00pnvdp9v4cqgd"))))
2195       (build-system emacs-build-system)
2196       (propagated-inputs
2197        `(("emacs-markdown-mode" ,emacs-markdown-mode)))
2198       (home-page "https://github.com/vermiculus/sx.el")
2199       (synopsis "Emacs StackExchange client")
2200       (description
2201        "Emacs StackExchange client.  Ask and answer questions on
2202 Stack Overflow, Super User, and other StackExchange sites.")
2203       (license license:gpl3+))))
2205 (define-public emacs-f
2206   (package
2207     (name "emacs-f")
2208     (version "0.20.0")
2209     (source (origin
2210               (method git-fetch)
2211               (uri (git-reference
2212                     (url "https://github.com/rejeep/f.el.git")
2213                     (commit (string-append "v" version))))
2214               (file-name (git-file-name name version))
2215               (sha256
2216                (base32
2217                 "1a47xk3yp1rp17fqg7ldl3d3fb888h0fz3sysqfdz1bfdgs8a9bk"))))
2218     (build-system emacs-build-system)
2219     (propagated-inputs
2220      `(("emacs-s" ,emacs-s)
2221        ("emacs-dash" ,emacs-dash)))
2222     (home-page "https://github.com/rejeep/f.el")
2223     (synopsis "Emacs API for working with files and directories")
2224     (description "This package provides an Emacs library for working with
2225 files and directories.")
2226     (license license:gpl3+)))
2228 (define-public emacs-git-gutter
2229   (package
2230     (name "emacs-git-gutter")
2231     (version "0.90")
2232     (source
2233      (origin
2234        (method git-fetch)
2235        (uri (git-reference
2236              (url "https://github.com/syohex/emacs-git-gutter.git")
2237              (commit version)))
2238        (file-name (git-file-name name version))
2239        (sha256
2240         (base32 "1abagq0psip7cgsqbfjv72qy60ywsny0ibsfcn74ldj6a9v17mz5"))))
2241     (build-system emacs-build-system)
2242     (home-page "https://github.com/syohex/emacs-git-gutter")
2243     (synopsis "See and manage hunks of text in a version control system")
2244     (description
2245      "This package is an Emacs minor mode for displaying and interacting with
2246 hunks of text managed in a version control system.  Added modified and deleted
2247 areas can be indicated with symbols on the edge of the buffer, and commands
2248 can be used to move between and perform actions on these hunks.
2250 Git, Mercurial, Subversion and Bazaar are supported, and many parts of the
2251 display and behaviour is easily customisable.")
2252     (license license:gpl3+)))
2254 (define-public emacs-git-timemachine
2255   (package
2256     (name "emacs-git-timemachine")
2257     (version "4.10")
2258     (source
2259      (origin
2260        (method git-fetch)
2261        (uri (git-reference
2262              (url "https://gitlab.com/pidu/git-timemachine.git")
2263              (commit version)))
2264        (file-name (git-file-name name version))
2265        (sha256
2266         (base32
2267          "08zsn3lsnnf01wkv5ls38jga02s5dnf0j3gigy4qd6im3j3d04m1"))))
2268     (build-system emacs-build-system)
2269     (propagated-inputs
2270      `(("emacs-transient" ,emacs-transient)))
2271     (home-page "https://gitlab.com/pidu/git-timemachine")
2272     (synopsis "Step through historic versions of Git-controlled files")
2273     (description "This package enables you to step through historic versions
2274 of files under Git version control from within Emacs.")
2275     (license license:gpl3+)))
2277 (define-public emacs-minitest
2278   (let ((commit "1aadb7865c1dc69c201cecee275751ecec33a182")
2279         (revision "1"))
2280     (package
2281       (name "emacs-minitest")
2282       (version (git-version "0.8.0" revision commit))
2283       (source (origin
2284                 (method git-fetch)
2285                 (uri (git-reference
2286                       (url "https://github.com/arthurnn/minitest-emacs")
2287                       (commit commit)))
2288                 (file-name (git-file-name name commit))
2289                 (sha256
2290                  (base32
2291                   "1l18zqpdzbnqj2qawq8hj7z7pl8hr8z9d8ihy8jaiqma915hmhj1"))))
2292       (build-system emacs-build-system)
2293       (arguments
2294        '(#:include (cons "^snippets\\/minitest-mode\\/" %default-include)
2295          #:exclude (delete "^[^/]*tests?\\.el$" %default-exclude)))
2296       (propagated-inputs
2297        `(("emacs-dash" ,emacs-dash)
2298          ("emacs-f" ,emacs-f)))
2299       (home-page "https://github.com/arthurnn/minitest-emacs")
2300       (synopsis "Emacs minitest mode")
2301       (description
2302        "The minitest mode provides commands to run the tests for the current
2303 file or line, as well as rerunning the previous tests, or all the tests for a
2304 project.
2306 This package also includes relevant snippets for yasnippet.")
2307       (license license:expat))))
2309 (define-public emacs-el-mock
2310   (package
2311     (name "emacs-el-mock")
2312     (version "1.25.1")
2313     (source
2314      (origin
2315        (method git-fetch)
2316        (uri (git-reference
2317              (url "https://github.com/rejeep/el-mock.el.git")
2318              (commit (string-append "v" version))))
2319        (file-name (git-file-name name version))
2320        (sha256
2321         (base32 "13mv1rhgkwiww2wh5w926jz7idppp492wir1vdl245c5x50dh4f7"))))
2322     (build-system emacs-build-system)
2323     (home-page "https://github.com/rejeep/el-mock.el")
2324     (synopsis "Tiny mock and stub framework in Emacs Lisp")
2325     (description
2326      "Emacs Lisp Mock is a library for mocking and stubbing using readable
2327 syntax.  Most commonly Emacs Lisp Mock is used in conjunction with Emacs Lisp
2328 Expectations, but it can be used in other contexts.")
2329     (license license:gpl3+)))
2331 (define-public emacs-espuds
2332   (package
2333     (name "emacs-espuds")
2334     (version "0.3.3")
2335     (source
2336      (origin
2337        (method git-fetch)
2338        (uri (git-reference
2339              (url "https://github.com/ecukes/espuds.git")
2340              (commit (string-append "v" version))))
2341        (file-name (git-file-name name version))
2342        (sha256
2343         (base32 "16r4j27j9yfdiy841w9q5ykkc6n3wrm7hvfacagb32mydk821ijg"))))
2344     (build-system emacs-build-system)
2345     (propagated-inputs
2346      `(("emacs-s" ,emacs-s)
2347        ("emacs-dash" ,emacs-dash)
2348        ("emacs-f" ,emacs-f)))
2349     (home-page "https://github.com/ecukes/espuds")
2350     (synopsis "Common step definitions for Ecukes")
2351     (description "Espuds is a collection of the most commonly used step
2352 definitions for testing with the Ecukes framework.")
2353     (license license:gpl3+)))
2355 (define-public emacs-spark
2356   (let ((version "20160503")  ; no proper tag, use date of commit
2357         (commit "0bf148c3ede3b31d56fd75f347cdd0b0eae60025")
2358         (revision "1"))
2359     (package
2360       (name "emacs-spark")
2361       (version (git-version version revision commit))
2362       (source
2363        (origin
2364          (method git-fetch)
2365          (uri (git-reference
2366                (url "https://github.com/alvinfrancis/spark.git")
2367                (commit commit)))
2368          (file-name (git-file-name name version))
2369          (sha256
2370           (base32
2371            "1ykqr86j17mi95s08d9fp02d7ych1331b04dcqxzxnmpkhwngyj1"))))
2372       (build-system emacs-build-system)
2373       (home-page "https://github.com/alvinfrancis/spark")
2374       (synopsis "Sparkline generation library for Emacs Lisp")
2375       (description "@code{emacs-spark} is a sparkline generation library for
2376 Emacs Lisp.  It generates a sparkline string given a list of numbers.  It is a
2377 port of @code{cl-spark} to Emacs Lisp.")
2378       (license license:expat))))
2380 (define-public emacs-es-mode
2381   (package
2382     (name "emacs-es-mode")
2383     (version "4.3.0")
2384     (source
2385      (origin
2386        (method git-fetch)
2387        (uri (git-reference
2388              (url "https://github.com/dakrone/es-mode.git")
2389              (commit version)))
2390        (file-name (git-file-name name version))
2391        (sha256
2392         (base32 "1qhfnd5anp5qrmravv7ks5ix763xnki2f5jwcyj70qyxwr0l60cg"))))
2393     (build-system emacs-build-system)
2394     (propagated-inputs
2395      ;; The version of org in Emacs 24.5 is not sufficient, and causes tables
2396      ;; to be rendered incorrectly
2397      `(("emacs-dash" ,emacs-dash)
2398        ("emacs-org" ,emacs-org)
2399        ("emacs-spark" ,emacs-spark)))
2400     (home-page "https://github.com/dakrone/es-mode")
2401     (synopsis "Major mode for editing Elasticsearch queries")
2402     (description "@code{es-mode} includes highlighting, completion and
2403 indentation support for Elasticsearch queries.  Also supported are
2404 @code{es-mode} blocks in @code{org-mode}, for which the results of queries can
2405 be processed through @code{jq}, or in the case of aggregations, can be
2406 rendered in to a table.  In addition, there is an @code{es-command-center}
2407 mode, which displays information about Elasticsearch clusters.")
2408     (license license:gpl3+)))
2410 (define-public emacs-expand-region
2411   (package
2412     (name "emacs-expand-region")
2413     (version "0.11.0")
2414     (source
2415      (origin
2416        (method git-fetch)
2417        (uri (git-reference
2418              (url "https://github.com/magnars/expand-region.el.git")
2419              (commit version)))
2420        (file-name (git-file-name name version))
2421        (sha256
2422         (base32 "0h40dhc3kn8fq86xnwi5lz7ql8my8737y7wkqr897p15y90swr35"))))
2423     (build-system emacs-build-system)
2424     (home-page "https://github.com/magnars/expand-region.el")
2425     (synopsis "Increase selected region by semantic units")
2426     (description
2427      "Expand region increases the selected region by semantic units.  Just
2428 keep pressing the key until it selects what you want.  There's also
2429 @code{er/contract-region} if you expand too far.")
2430     (license license:gpl3+)))
2432 (define-public emacs-fill-column-indicator
2433   (package
2434     (name "emacs-fill-column-indicator")
2435     (version "1.89")
2436     (source
2437      (origin
2438        (method git-fetch)
2439        (uri (git-reference
2440              (url "https://github.com/alpaker/Fill-Column-Indicator.git")
2441              (commit (string-append "v" version))))
2442        (file-name (git-file-name name version))
2443        (sha256
2444         (base32 "010kf8jsly74y7m6mmkn1h6y205kz23zphs50zgy2nag2p88rz9y"))))
2445     (build-system emacs-build-system)
2446     (home-page "https://www.emacswiki.org/emacs/FillColumnIndicator")
2447     (synopsis "Graphically indicate the fill column")
2448     (description
2449      "Fill-column-indicator graphically indicates the location of the fill
2450 column by drawing a thin line down the length of the editing window.")
2451     (license license:gpl3+)))
2453 (define-public emacs-grep-a-lot
2454   (package
2455     (name "emacs-grep-a-lot")
2456     (version "1.0.7")
2457     (source
2458      (origin
2459        (method git-fetch)
2460        (uri (git-reference
2461              (url "https://github.com/ZungBang/emacs-grep-a-lot.git")
2462              (commit "9f9f645b9e308a0d887b66864ff97d0fca1ba4ad")))
2463        (file-name (git-file-name name version))
2464        (sha256
2465         (base32 "1f8262mrlinzgnn4m49hbj1hm3c1mvzza24py4b37sasn49546lw"))))
2466     (build-system emacs-build-system)
2467     (home-page "https://github.com/ZungBang/emacs-grep-a-lot")
2468     (synopsis "Enables multiple grep buffers in Emacs")
2469     (description
2470      "This Emacs package allows managing multiple grep buffers.")
2471     (license license:gpl3+)))
2473 (define-public emacs-inf-ruby
2474   (package
2475     (name "emacs-inf-ruby")
2476     (version "2.5.1")
2477     (source
2478      (origin
2479        (method git-fetch)
2480        (uri (git-reference
2481              (url "https://github.com/nonsequitur/inf-ruby.git")
2482              (commit version)))
2483        (file-name (git-file-name name version))
2484        (sha256
2485         (base32 "1r452h6cyypqlc59q8dx5smkwhck4qjcg1pf9qdw539cpva5q77z"))))
2486     (build-system emacs-build-system)
2487     (home-page "https://github.com/nonsequitur/inf-ruby")
2488     (synopsis "Provides a REPL buffer connected to a Ruby subprocess in Emacs")
2489     (description
2490      "@code{inf-ruby} provides a Read Eval Print Loop (REPL) buffer, allowing
2491 for easy interaction with a ruby subprocess.  Features include support for
2492 detecting specific uses of Ruby, e.g. when using rails, and using a
2493 appropriate console.")
2494     (license license:gpl3+)))
2496 (define-public emacs-znc
2497   (package
2498     (name "emacs-znc")
2499     (version "0.0.2")
2500     (source
2501      (origin
2502        (method url-fetch)
2503        (uri (string-append "https://marmalade-repo.org/packages/znc-"
2504                            version ".el"))
2505        (sha256
2506         (base32
2507          "1d8lqvybgyazin5z0g1c4l3rg1vzrrvf0saqs53jr1zcdg0lianh"))))
2508     (build-system emacs-build-system)
2509     (home-page "https://github.com/sshirokov/ZNC.el")
2510     (synopsis "Make ERC and ZNC get along better")
2511     (description
2512      "This is a thin wrapper around @code{erc} that enables one to use the ZNC
2513 IRC bouncer with ERC.")
2514     (license license:expat)))
2516 (define-public emacs-shut-up
2517   (package
2518     (name "emacs-shut-up")
2519     (version "0.3.2")
2520     (source
2521      (origin
2522        (method git-fetch)
2523        (uri (git-reference
2524              (url "https://github.com/cask/shut-up.git")
2525              (commit (string-append "v" version))))
2526        (file-name (git-file-name name version))
2527        (sha256
2528         (base32 "103yvfgkj78i4bnv1fwk76izsa8h4wyj3vwj1vq7xggj607hkxzq"))))
2529     (build-system emacs-build-system)
2530     (home-page "https://github.com/cask/shut-up")
2531     (synopsis "Silence Emacs")
2532     (description "This package silences most output of Emacs when running an
2533 Emacs shell script.")
2534     (license license:expat)))
2536 (define-public emacs-undercover
2537   (package
2538     (name "emacs-undercover")
2539     (version "0.6.0")
2540     (source
2541      (origin
2542        (method git-fetch)
2543        (uri (git-reference
2544              (url "https://github.com/sviridov/undercover.el.git")
2545              (commit (string-append "v" version))))
2546        (file-name (git-file-name name version))
2547        (sha256
2548         (base32 "06qcvbp5rd0kh3ibrxj5p6r578lwsrgd7yj5c6slwmkdmna2fj33"))))
2549     (build-system emacs-build-system)
2550     (propagated-inputs
2551      `(("emacs-dash" ,emacs-dash)
2552        ("emacs-shut-up" ,emacs-shut-up)))
2553     (home-page "https://github.com/sviridov/undercover.el")
2554     (synopsis "Test coverage library for Emacs Lisp")
2555     (description
2556      "Undercover is a test coverage library for software written in Emacs
2557 Lisp.")
2558     (license license:expat)))
2560 (define-public emacs-paren-face
2561   (package
2562     (name "emacs-paren-face")
2563     (version "1.0.0")
2564     (source
2565      (origin
2566        (method git-fetch)
2567        (uri (git-reference
2568              (url "https://github.com/tarsius/paren-face.git")
2569              (commit version)))
2570        (file-name (git-file-name name version))
2571        (sha256
2572         (base32 "0f128gqn170s6hl62n44i9asais75ns1mpvb4l8vzy1sc0v16c0k"))))
2573     (build-system emacs-build-system)
2574     (home-page "https://github.com/tarsius/paren-face")
2575     (synopsis "Face for parentheses in lisp modes")
2576     (description
2577      "This library defines a face named @code{parenthesis} used just for
2578 parentheses.  The intended purpose of this face is to make parentheses less
2579 visible in Lisp code by dimming them.  Lispers probably don't need to be
2580 constantly made aware of the existence of the parentheses.  Dimming them might
2581 be even more useful for people new to lisp who have not yet learned to
2582 subconsciously blend out the parentheses.")
2583     (license license:gpl3+)))
2585 (define-public emacs-page-break-lines
2586   (package
2587     (name "emacs-page-break-lines")
2588     (version "0.11")
2589     (source
2590      (origin
2591        (method git-fetch)
2592        (uri (git-reference
2593              (url "https://github.com/purcell/page-break-lines.git")
2594              (commit version)))
2595        (file-name (git-file-name name version))
2596        (sha256
2597         (base32 "1wp974716ih2cz9kdmdz7xwjy1qnnfzdzlfr9kchknagw8d9nn12"))))
2598     (build-system emacs-build-system)
2599     (home-page "https://github.com/purcell/page-break-lines")
2600     (synopsis "Display page breaks as tidy horizontal lines")
2601     (description
2602      "This library provides a global mode which displays form feed characters
2603 as horizontal rules.")
2604     (license license:gpl3+)))
2606 (define-public emacs-simple-httpd
2607   (package
2608     (name "emacs-simple-httpd")
2609     (version "1.5.1")
2610     (source
2611      (origin
2612        (method git-fetch)
2613        (uri (git-reference
2614              (url "https://github.com/skeeto/emacs-web-server.git")
2615              (commit version)))
2616        (file-name (git-file-name name version))
2617        (sha256
2618         (base32 "0dpn92rg813c4pq7a1vzj3znyxzp2lmvxqz6pzcqi0l2xn5r3wvb"))))
2619     (build-system emacs-build-system)
2620     (home-page "https://github.com/skeeto/emacs-web-server")
2621     (synopsis "HTTP server in pure Emacs Lisp")
2622     (description
2623      "This package provides a simple HTTP server written in Emacs Lisp to
2624 serve files and directory listings.")
2625     (license license:unlicense)))
2627 (define-public emacs-skewer-mode
2628   (package
2629     (name "emacs-skewer-mode")
2630     (version "1.8.0")
2631     (source
2632      (origin
2633        (method git-fetch)
2634        (uri (git-reference
2635              (url "https://github.com/skeeto/skewer-mode.git")
2636              (commit version)))
2637        (file-name (git-file-name name version))
2638        (sha256
2639         (base32 "1ha7jl7776pk1bki5zj2q0jy66450mn8xr3aqjc0m9kj3gc9qxgw"))))
2640     (build-system emacs-build-system)
2641     (propagated-inputs
2642      `(("emacs-simple-httpd" ,emacs-simple-httpd)
2643        ("emacs-js2-mode" ,emacs-js2-mode)))
2644     (arguments '(#:include '("\\.el$" "\\.js$" "\\.html$")))
2645     (home-page "https://github.com/skeeto/skewer-mode")
2646     (synopsis "Live web development in Emacs")
2647     (description
2648      "Skewer-mode provides live interaction with JavaScript, CSS, and HTML in
2649 a web browser.  Expressions are sent on-the-fly from an editing buffer to be
2650 evaluated in the browser, just like Emacs does with an inferior Lisp process
2651 in Lisp modes.")
2652     (license license:unlicense)))
2654 (define-public emacs-litable
2655   (let ((commit "b0278f3f8dcff424bfbdfdefb545b1fbff33206f"))
2656     (package
2657       (name "emacs-litable")
2658       (version (git-version "0.1" "0" commit))
2659       (source (origin
2660                 (method git-fetch)
2661                 (uri (git-reference
2662                       (url "https://github.com/Fuco1/litable.git")
2663                       (commit commit)))
2664                 (file-name (git-file-name name version))
2665                 (sha256
2666                  (base32
2667                   "0bny40hv9a024n01clxns351cs4j4ifhgcc7m4743xncqf612p7g"))))
2668       (build-system emacs-build-system)
2669       (propagated-inputs
2670        `(("emacs-dash" ,emacs-dash)))
2671       (home-page "https://github.com/Fuco1/litable/")
2672       (synopsis "Dynamic evaluation replacement with Emacs")
2673       (description "This packages provides dynamic evaluation in Emacs.")
2674       (license license:gpl3+))))
2676 (define-public emacs-string-inflection
2677   (package
2678     (name "emacs-string-inflection")
2679     (version "1.0.6")
2680     (source (origin
2681               (method git-fetch)
2682               (uri (git-reference
2683                     (url "https://github.com/akicho8/string-inflection")
2684                     (commit "a150e7bdda60b7824d3a936750ce23f73b0e4edd")))
2685               (file-name (git-file-name name version))
2686               (sha256
2687                (base32
2688                 "1k0sm552iawi49v4zis6dbb81d1rzgky9v0dpv7nj31gnb7bmy7k"))))
2689     (build-system emacs-build-system)
2690     (native-inputs
2691      `(("ert-runner" ,emacs-ert-runner)))
2692     (arguments
2693      `(#:tests? #t
2694        #:test-command '("ert-runner")))
2695     (home-page "https://github.com/akicho8/string-inflection")
2696     (synopsis "Convert symbol names between different naming conventions")
2697     (description
2698      "This Emacs package provides convenient methods for manipulating the
2699 naming style of a symbol.  It supports different naming conventions such as:
2701 @enumerate
2702 @item camel case
2703 @item Pascal case
2704 @item all upper case
2705 @item lower case separated by underscore
2706 @item etc...
2707 @end enumerate\n")
2708     (license license:gpl2+)))
2710 (define-public emacs-stripe-buffer
2711   (package
2712     (name "emacs-stripe-buffer")
2713     (version "0.2.5")
2714     (source
2715      (origin
2716        (method git-fetch)
2717        (uri (git-reference
2718              (url "https://github.com/sabof/stripe-buffer.git")
2719              (commit version)))
2720        (file-name (git-file-name name version))
2721        (sha256
2722         (base32 "035ym1c1vzg6hjsnd258z4dkrfc11lj4c0y4gpgybhk54dq3w9dk"))))
2723     (build-system emacs-build-system)
2724     (home-page "https://github.com/sabof/stripe-buffer/")
2725     (synopsis "Add stripes to list buffers")
2726     (description
2727      "This Emacs package adds faces to add stripes to list buffers and org
2728 tables.")
2729     (license license:gpl2+)))
2731 (define-public emacs-rich-minority
2732   (package
2733     (name "emacs-rich-minority")
2734     (version "1.0.1")
2735     (source
2736      (origin
2737        (method git-fetch)
2738        (uri (git-reference
2739              (url "https://github.com/Malabarba/rich-minority.git")
2740              (commit version)))
2741        (file-name (git-file-name name version))
2742        (sha256
2743         (base32 "11hwf9y5ax207w6rwrsmi3pmn7pn7ap6iys0z8hni2f5zzxjrmx3"))))
2744     (build-system emacs-build-system)
2745     (home-page "https://github.com/Malabarba/rich-minority")
2746     (synopsis "Clean-up and beautify the list of minor modes")
2747     (description
2748      "This Emacs package hides and/or highlights minor modes in the
2749 mode-line.")
2750     (license license:gpl2+)))
2752 (define-public emacs-robe
2753   (package
2754     (name "emacs-robe")
2755     (version "0.8.1")
2756     (source
2757      (origin
2758        (method git-fetch)
2759        (uri (git-reference
2760              (url "https://github.com/dgutov/robe.git")
2761              (commit version)))
2762        (file-name (git-file-name name version))
2763        (sha256
2764         (base32 "0ll7ivxqnglfb0i70ly6qq2yfw9cyi3vq3lmj4s6h6c1c7rm3gcq"))))
2765     (build-system emacs-build-system)
2766     (arguments
2767      '(#:include (cons "^lib\\/" %default-include)))
2768     (propagated-inputs
2769      `(("emacs-inf-ruby" ,emacs-inf-ruby)))
2770     (home-page "https://github.com/dgutov/robe")
2771     (synopsis "Ruby code assistance tool for Emacs")
2772     (description
2773      "Robe can provide information on loaded classes and modules in Ruby code,
2774 as well as where methods are defined.  This allows the user to jump to method
2775 definitions, modules and classes, display method documentation and provide
2776 method and constant name completion.")
2777     (license license:gpl3+)))
2779 (define-public emacs-robot-mode
2780   (let ((commit "32846e7e80ae3471b7c07f9709dcaa4f9b9ed4a0")
2781         (revision "1"))
2782     (package
2783       (name "emacs-robot-mode")
2784       (version (git-version "0.0.0" revision commit))
2785       (source (origin
2786                 (method git-fetch)
2787                 (uri (git-reference
2788                       ;; A better maintained fork of robot-mode.
2789                       (url "https://github.com/jvalkeejarvi/robot-mode.git")
2790                       (commit commit)))
2791                 (file-name (git-file-name name version))
2792                 (sha256
2793                  (base32
2794                   "1i8wf7m0gml8zvvmlgppjzv78b432686p1qdbzgclc7qfcvzag0d"))))
2795       (build-system emacs-build-system)
2796       (propagated-inputs `(("emacs-s" ,emacs-s)))
2797       (home-page "https://github.com/jvalkeejarvi/robot-mode")
2798       (synopsis "Emacs mode for Robot Framework")
2799       (description "This major mode facilitates editing Robot Framework source
2800 files with features such as syntax highlighting, comments, finding keywords,
2801 completing keywords and smart indentation.")
2802       (license license:gpl3+))))
2804 (define-public emacs-rspec
2805   (package
2806     (name "emacs-rspec")
2807     (version "1.11")
2808     (source
2809      (origin
2810        (method git-fetch)
2811        (uri (git-reference
2812              (url "https://github.com/pezra/rspec-mode.git")
2813              (commit (string-append "v" version))))
2814        (file-name (git-file-name name version))
2815        (sha256
2816         (base32 "0hrn5n7aaymwimk511kjij44vqaxbmhly1gwmlmsrnbvvma7f2mp"))))
2817     (build-system emacs-build-system)
2818     (home-page "https://github.com/pezra/rspec-mode")
2819     (synopsis "Provides a rspec mode for working with RSpec")
2820     (description
2821      "The Emacs RSpec mode provides keybindings for Ruby source files, e.g. to
2822 verify the spec associated with the current buffer, or entire project, as well
2823 as moving between the spec files, and corresponding code files.
2825 Also included are keybindings for spec files and Dired buffers, as well as
2826 snippets for yasnippet.")
2827     (license license:gpl3+)))
2829 (define-public emacs-smart-mode-line
2830   (package
2831     (name "emacs-smart-mode-line")
2832     (version "2.12.0")
2833     (source
2834      (origin
2835        (method git-fetch)
2836        (uri (git-reference
2837              (url "https://github.com/Malabarba/smart-mode-line.git")
2838              (commit version)))
2839        (file-name (git-file-name name version))
2840        (sha256
2841         (base32 "1gs4ay9hdg8gmia4ir74qawk80pqwv99hp4yhy108kpfry5mrq6z"))))
2842     (build-system emacs-build-system)
2843     (propagated-inputs
2844      `(("emacs-rich-minority" ,emacs-rich-minority)))
2845     (home-page "https://github.com/Malabarba/smart-mode-line")
2846     (synopsis "Color-coded smart mode-line")
2847     (description
2848      "Smart Mode Line is a mode-line theme for Emacs.  It aims to be easy to
2849 read from small to large monitors by using colors, a prefix feature, and smart
2850 truncation.")
2851     (license license:gpl2+)))
2853 (define-public emacs-sr-speedbar
2854   (let ((commit "77a83fb50f763a465c021eca7343243f465b4a47")
2855         (revision "0"))
2856     (package
2857       (name "emacs-sr-speedbar")
2858       (version (git-version "20161025" revision commit))
2859       (source
2860        (origin
2861          (method git-fetch)
2862          (uri (git-reference
2863                (url "https://github.com/emacsorphanage/sr-speedbar.git")
2864                (commit commit)))
2865          (file-name (git-file-name name version))
2866          (sha256
2867           (base32
2868            "0sd12555hk7z721y00kv3crdybvcn1i08wmd148z5imayzibj153"))))
2869       (build-system emacs-build-system)
2870       (home-page "https://www.emacswiki.org/emacs/SrSpeedbar")
2871       (synopsis "Same frame Emacs @code{speedbar}")
2872       (description
2873        "This Emacs package allows you to show @code{M-x speedbar} in the
2874 same frame (in an extra window).  You can customize the initial width of
2875 the speedbar window.")
2876       (license license:gpl3+))))
2878 (define-public emacs-shell-switcher
2879   (package
2880     (name "emacs-shell-switcher")
2881     (version "1.0.1")
2882     (source
2883      (origin
2884        (method git-fetch)
2885        (uri (git-reference
2886              (url "https://github.com/DamienCassou/shell-switcher.git")
2887              (commit (string-append "v" version))))
2888        (file-name (git-file-name name version))
2889        (sha256
2890         (base32 "0ia7sdip4hl27avckv3qpqgm3k4ynvp3xxq1cy53bqfzzx0gcria"))))
2891     (build-system emacs-build-system)
2892     (home-page "https://github.com/DamienCassou/shell-switcher")
2893     (synopsis "Provide fast switching between shell buffers")
2894     (description
2895      "This package provides commands to quickly switch between shell buffers.")
2896     (license license:gpl3+)))
2898 (define-public emacs-names
2899   (let ((commit "d8baba5360e5253938a25d3e005455b6d2d86971")
2900         (version "20151201.0")
2901         (revision "8"))
2902     (package
2903       (name "emacs-names")
2904       (version (git-version version revision commit))
2905       (source
2906        (origin
2907          (method git-fetch)
2908          (uri (git-reference
2909                (url "https://github.com/Malabarba/names")
2910                (commit commit)))
2911          (file-name (git-file-name name version))
2912          (sha256
2913           (base32
2914            "11wyha2q8y7bzqq3jrzix8n97ywvsibvddrahqcps1a1yqk4hzfz"))))
2915       (build-system emacs-build-system)
2916       (home-page "https://github.com/Malabarba/names/")
2917       (synopsis "Namespace implementation for Emacs Lisp")
2918       (description
2919        "This package provides a macro that writes your namespaces for you.")
2920       (license license:gpl3+))))
2922 (define-public emacs-evil-textobj-syntax
2923   (let ((commit "2d9ba8c75c754b409aea7469f46a5cfa52a872f3")
2924         (version "0")
2925         (revision "1"))
2926     (package
2927       (name "emacs-evil-textobj-syntax")
2928       (version (git-version version revision commit))
2929       (source
2930        (origin
2931          (method git-fetch)
2932          (uri (git-reference
2933                (url "https://github.com/laishulu/evil-textobj-syntax/")
2934                (commit commit)))
2935          (file-name (git-file-name name version))
2936          (sha256
2937           (base32
2938            "031p5i3274dazp7rz6m5y38shfgszm1clmkcf58qfqlvy978ammc"))))
2939       (build-system emacs-build-system)
2940       (propagated-inputs `(("emacs-evil" ,emacs-evil)
2941                            ("emacs-names" ,emacs-names)))
2942       (home-page "https://github.com/laishulu/evil-textobj-syntax/")
2943       (synopsis "Text objects based on syntax highlighting")
2944       (description
2945        "This package provides text objects for @code{evil-mode} with
2946 boundaries defined by syntax highlighting.")
2947       (license license:gpl3+))))
2949 (define-public emacs-flycheck-flow
2950   (let ((commit "9e8e52cfc98af6a23fd906f9cb5d5d470d8cf82d")
2951         (version "1.1")
2952         (revision "1"))
2953     (package
2954       (name "emacs-flycheck-flow")
2955       (version (git-version version revision commit))
2956       (source
2957        (origin
2958          (method git-fetch)
2959          (uri (git-reference
2960                (url "https://github.com/lbolla/emacs-flycheck-flow")
2961                (commit commit)))
2962          (file-name (git-file-name name version))
2963          (sha256
2964           (base32
2965            "14qldlisbmxzammr500gyha2hiv2xgyzfc6mysqii06kbcqn1ik1"))))
2966       (build-system emacs-build-system)
2967       (propagated-inputs
2968        `(("emacs-flycheck" ,emacs-flycheck)))
2969       (home-page "https://github.com/lbolla/emacs-flycheck-flow")
2970       (synopsis "Flow support for @code{flycheck-mode}")
2971       (description
2972        "This package allows @code{flycheck-mode} to provide syntax-checking
2973 for Flow files.")
2974       (license license:gpl3+))))
2976 (define-public emacs-elisp-demos
2977   (let ((commit "4c1fbc392668662890b685ab297e950259227e06")
2978         (version "0.1")
2979         (revision "1"))
2980     (package
2981       (name "emacs-elisp-demos")
2982       (version (git-version version revision commit))
2983       (source
2984        (origin
2985          (method git-fetch)
2986          (uri (git-reference
2987                (url "https://github.com/xuchunyang/elisp-demos")
2988                (commit commit)))
2989          (file-name (git-file-name name version))
2990          (sha256
2991           (base32
2992            "01cbkmjgmzxdf02w9xgbf4bhnx1mh53vvpkri13yxfksym5zizp4"))))
2993       (build-system emacs-build-system)
2994       (arguments '(#:include '("\\.el$" "\\.org$")))
2995       (home-page "https://github.com/xuchunyang/elisp-demos/")
2996       (synopsis "Enhance @code{*Help*} buffers with additional examples")
2997       (description
2998        "This package injects example uses of Elisp functions into their
2999 respective @code{*Help*} buffers.")
3000       (license license:gpl3+))))
3002 (define-public emacs-docker-compose-mode
3003   (package
3004     (name "emacs-docker-compose-mode")
3005     (version "1.1.0")
3006     (source
3007      (origin
3008        (method git-fetch)
3009        (uri (git-reference
3010              (url "https://github.com/meqif/docker-compose-mode")
3011              (commit version)))
3012        (file-name (git-file-name name version))
3013        (sha256
3014         (base32
3015          "1fbcxwfvm33xcdj3cs26d9i1zyrryyjjkv7sc3mfxd45nq8d3ivj"))))
3016     (build-system emacs-build-system)
3017     (propagated-inputs
3018      `(("emacs-dash" ,emacs-dash)
3019        ("emacs-f" ,emacs-f)))
3020     (home-page "https://github.com/meqif/docker-compose-mode/")
3021     (synopsis "Major mode for editing @file{docker-compose} files")
3022     (description
3023      "This is a major mode for @file{docker-compose} files that provides
3024 completion of relevant keywords.")
3025     (license license:expat)))
3027 (define-public emacs-sudo-edit
3028   (let ((commit "cc3d478937b1accd38742bfceba92af02ee9357d")
3029         (version "0.1.0")
3030         (revision "6"))
3031     (package
3032       (name "emacs-sudo-edit")
3033       (version (git-version version revision commit))
3034       (source
3035        (origin
3036          (method git-fetch)
3037          (uri (git-reference
3038                (url "https://github.com/nflath/sudo-edit")
3039                (commit commit)))
3040          (file-name (git-file-name name version))
3041          (sha256
3042           (base32
3043            "1qv58x5j5a3v1s2ylhck1ykbfclq0mbi0gsvaql3nyv8cxazqlwl"))))
3044       (build-system emacs-build-system)
3045       (home-page "https://github.com/nflath/sudo-edit/")
3046       (synopsis "Open files as another user")
3047       (description
3048        "This package allows editing files as another user, including the root
3049 user.")
3050       (license license:gpl3+))))
3052 (define-public emacs-miniedit
3053   (package
3054     (name "emacs-miniedit")
3055     (version "2.0")
3056     (source
3057      (origin
3058        (method git-fetch)
3059        (uri (git-reference
3060              (url "https://github.com/emacsmirror/miniedit")
3061              (commit version)))
3062        (file-name (git-file-name name version))
3063        (sha256
3064         (base32
3065          "1850z96gly0jnr50472idqz1drzqarr0n23bbasslrc501xkg0bq"))))
3066     (build-system emacs-build-system)
3067     (home-page "https://github.com/emacsmirror/miniedit/")
3068     (synopsis "Enhanced editing for minibuffer fields")
3069     (description
3070      "This package provides a function that can be called from the
3071 minibuffer to enable editing the minibuffer input in another buffer with
3072 @code{text-mode} enabled.")
3073     (license license:gpl2+)))
3075 (define-public emacs-ob-ipython
3076   (package
3077     (name "emacs-ob-ipython")
3078     (version "20150704.8807064693")
3079     (source (origin
3080               (method git-fetch)
3081               (uri (git-reference
3082                     (commit "880706469338ab59b5bb7dbe8460016f89755364")
3083                     (url "https://github.com/gregsexton/ob-ipython.git")))
3084               (file-name (git-file-name name version))
3085               (sha256
3086                (base32
3087                 "1scf25snbds9ymagpny30ijbsg479r3nm0ih01dy4m9d0g7qryb7"))))
3088     (build-system emacs-build-system)
3089     (propagated-inputs
3090      `(("emacs-f" ,emacs-f)))
3091     (home-page "http://www.gregsexton.org")
3092     (synopsis "Org-Babel functions for IPython evaluation")
3093     (description "This package adds support to Org-Babel for evaluating Python
3094 source code using IPython.")
3095     (license license:gpl3+)))
3097 (define-public emacs-debbugs
3098   (package
3099     (name "emacs-debbugs")
3100     (version "0.18")
3101     (source (origin
3102               (method url-fetch)
3103               (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
3104                                   version ".tar"))
3105               (sha256
3106                (base32
3107                 "00kich80zdg7v3v613f9prqddkpwpm1nf9sj10f0n6wh15rzwv07"))))
3108     (build-system emacs-build-system)
3109     (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
3110     (propagated-inputs
3111      `(("emacs-async" ,emacs-async)))
3112     (home-page "https://elpa.gnu.org/packages/debbugs.html")
3113     (synopsis "Access the Debbugs bug tracker in Emacs")
3114     (description
3115      "This package lets you access the @uref{http://bugs.gnu.org,GNU Bug
3116 Tracker} from within Emacs.
3118 For instance, it defines the command @code{M-x debbugs-gnu} for listing bugs,
3119 and the command @code{M-x debbugs-gnu-search} for bug searching.  If you
3120 prefer the listing of bugs as TODO items of @code{org-mode}, you could use
3121 @code{M-x debbugs-org} and related commands.
3123 A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug
3124 Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.")
3125     (license license:gpl3+)))
3127 (define-public emacs-ert-expectations
3128   (package
3129     (name "emacs-ert-expectations")
3130     (version "0.2")
3131     (source
3132      (origin
3133        (method url-fetch)
3134        (uri "https://www.emacswiki.org/emacs/download/ert-expectations.el")
3135        (sha256
3136         (base32
3137          "0cwy3ilsid90abzzjb7ha2blq9kmv3gfp3icwwfcz6qczgirq6g7"))))
3138     (build-system emacs-build-system)
3139     (home-page "https://www.emacswiki.org/emacs/ert-expectations.el")
3140     (synopsis "Simple unit test framework for Emacs Lisp")
3141     (description "@code{emacs-ert-expectations} is a simple unit test
3142 framework for Emacs Lisp to be used with @code{ert}.")
3143     (license license:gpl3+)))
3145 (define-public emacs-deferred
3146   (package
3147     (name "emacs-deferred")
3148     (version "0.5.1")
3149     (home-page "https://github.com/kiwanami/emacs-deferred")
3150     (source (origin
3151               (method git-fetch)
3152               (uri (git-reference
3153                     (url home-page)
3154                     (commit (string-append "v" version))))
3155               (file-name (git-file-name name version))
3156               (sha256
3157                (base32
3158                 "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"))))
3159     (build-system emacs-build-system)
3160     (arguments
3161      `(#:phases
3162        (modify-phases %standard-phases
3163          (add-after 'unpack 'set-shell
3164            ;; Setting the SHELL environment variable is required for the tests
3165            ;; to find sh.
3166            (lambda _
3167              (setenv "SHELL" (which "sh"))
3168              #t))
3169          (add-before 'check 'fix-makefile
3170            (lambda _
3171              (substitute* "Makefile"
3172                (("\\$\\(CASK\\) exec ") ""))
3173              #t)))
3174        #:tests? #t
3175        #:test-command '("make" "test")))
3176     (native-inputs
3177      `(("emacs-ert-expectations" ,emacs-ert-expectations)
3178        ("emacs-undercover" ,emacs-undercover)
3179        ("ert-runner" ,emacs-ert-runner)))
3180     (synopsis "Simple asynchronous functions for Emacs Lisp")
3181     (description
3182      "The @code{deferred.el} library provides support for asynchronous tasks.
3183 The API is almost the same as that of
3184 @uref{https://github.com/cho45/jsdeferred, JSDeferred}, a JavaScript library
3185 for asynchronous tasks.")
3186     (license license:gpl3+)))
3188 (define-public emacs-butler
3189   (package
3190     (name "emacs-butler")
3191     (version "0.2.4")
3192     (home-page "https://github.com/AshtonKem/Butler")
3193     (source (origin
3194               (method git-fetch)
3195               (uri (git-reference
3196                     (url home-page)
3197                     (commit version)))
3198               (file-name (git-file-name name version))
3199               (sha256
3200                (base32
3201                 "1pii9dw4skq7nr4na6qxqasl36av8cwjp71bf1fgppqpcd9z8skj"))))
3202     (build-system emacs-build-system)
3203     (propagated-inputs
3204      `(("emacs-deferred" ,emacs-deferred)))
3205     (synopsis "Emacs client for Jenkins")
3206     (description
3207      "Butler provides an interface to connect to Jenkins continuous
3208 integration servers.  Users can specify a list of server in the
3209 @code{butler-server-list} variable and then use @code{M-x butler-status} to
3210 view the build status of those servers' build jobs, and possibly to trigger
3211 build jobs.")
3212     (license license:gpl3+)))
3214 (define-public emacs-company
3215   (package
3216     (name "emacs-company")
3217     (version "0.9.10")
3218     (source
3219      (origin
3220        (method git-fetch)
3221        (uri (git-reference
3222              (url "https://github.com/company-mode/company-mode.git")
3223              (commit version)))
3224        (file-name (git-file-name name version))
3225        (sha256
3226         (base32 "0shmv48bq9l5xm60dwx9lqyq6b39y3d7qjxdlah7dpipv5vhra42"))))
3227     (build-system emacs-build-system)
3228     (arguments
3229      `(#:phases
3230        (modify-phases %standard-phases
3231          (add-before 'check 'fix-bin-dir
3232            (lambda _
3233              ;; The company-files-candidates-normal-root test looks
3234              ;; for the /bin directory, but the build environment has
3235              ;; no /bin directory. Modify the test to look for the
3236              ;; /tmp directory.
3237              (substitute* "test/files-tests.el"
3238                (("/bin/") "/tmp/"))
3239              #t)))
3240        #:tests? #t
3241        #:test-command '("make" "test-batch")))
3242     (home-page "http://company-mode.github.io/")
3243     (synopsis "Modular text completion framework")
3244     (description
3245      "Company is a modular completion mechanism.  Modules for retrieving
3246 completion candidates are called back-ends, modules for displaying them are
3247 front-ends.  Company comes with many back-ends, e.g. @code{company-elisp}.
3248 These are distributed in separate files and can be used individually.")
3249     (license license:gpl3+)))
3251 (define-public emacs-irony-mode
3252   (package
3253     (name "emacs-irony-mode")
3254     (version "1.2.0")
3255     (home-page "https://github.com/Sarcasm/irony-mode")
3256     (source (origin
3257               (method git-fetch)
3258               (uri (git-reference
3259                     (url (string-append home-page ".git"))
3260                     (commit (string-append "v" version))))
3261               (file-name (git-file-name name version))
3262               (sha256
3263                (base32
3264                 "0nhjrnlmss535jbshjjd30vydbr8py21vkx4p294w6d8vg2rssf8"))))
3265     (build-system emacs-build-system)
3266     (inputs `(("server" ,emacs-irony-mode-server)))
3267     (arguments `(#:phases
3268                  (modify-phases %standard-phases
3269                    (add-after 'unpack 'configure
3270                         (lambda* (#:key inputs #:allow-other-keys)
3271                           (chmod "irony.el" #o644)
3272                           (emacs-substitute-variables "irony.el"
3273                             ("irony-server-install-prefix"
3274                              (assoc-ref inputs "server")))
3275                           #t)))))
3276     (synopsis "C/C++/ObjC Code completion and syntax checks for Emacs")
3277     (description "Irony-mode provides Clang-assisted syntax checking and
3278 completion for C, C++, and ObjC in GNU Emacs.  Using @code{libclang} it can
3279 provide syntax checking and autocompletion on compiler level which is very
3280 resistant against false positives.  It also integrates well with other
3281 packages like @code{eldoc-mode} and especially @code{company-mode} as
3282 described on the homepage.")
3283     (license license:gpl3+)))
3285 (define-public emacs-irony-mode-server
3286   (package (inherit emacs-irony-mode)
3287     (name "emacs-irony-mode-server")
3288     (inputs
3289      `(("clang" ,clang)))
3290     (arguments
3291      `(#:phases
3292        (modify-phases %standard-phases
3293          (replace 'configure
3294            (lambda* (#:key outputs #:allow-other-keys)
3295              (let ((out (assoc-ref outputs "out")))
3296                (invoke "cmake"
3297                        "server"
3298                        (string-append "-DCMAKE_INSTALL_PREFIX=" out)) #t))))))
3299     (build-system cmake-build-system)
3300     (synopsis "Server for the Emacs @dfn{irony mode}")))
3302 (define-public emacs-company-irony
3303   (package
3304     (name "emacs-company-irony")
3305     (version "1.1.0")
3306     (source (origin
3307               (method git-fetch)
3308               (uri (git-reference
3309                     (url "https://github.com/Sarcasm/company-irony.git")
3310                     (commit (string-append "v" version))))
3311               (sha256 (base32
3312                        "1qgyam2vyjw90kpxns5cd6bq3qiqjhzpwrlvmi18vyb69qcgqd8a"))
3313               (file-name (git-file-name name version))))
3314     (build-system emacs-build-system)
3315     (inputs
3316      `(("emacs-irony-mode" ,emacs-irony-mode)
3317        ("emacs-company" ,emacs-company)))
3318     (synopsis "C++ completion backend for Company using irony-mode")
3319     (description "This backend for company-mode allows for C++ code completion
3320 with irony-mode using clang-tooling.")
3321     (home-page "https://github.com/Sarcasm/company-irony")
3322     (license license:gpl3+)))
3324 (define-public emacs-flycheck-irony
3325   (package
3326     (name "emacs-flycheck-irony")
3327     (version "0.1.0")
3328     (source (origin
3329               (method git-fetch)
3330               (uri (git-reference
3331                     (url "https://github.com/Sarcasm/flycheck-irony.git")
3332                     (commit (string-append "v" version))))
3333               (file-name (git-file-name name version))
3334               (sha256
3335                (base32 "0qa5a8wzvzxwqql92ibc9s43k8sj3vwn7skz9hfr8av0skkhx996"))))
3336     (build-system emacs-build-system)
3337     (inputs
3338      `(("irony-mode" ,emacs-irony-mode)
3339        ("flycheck-mode" ,emacs-flycheck)
3340        ("emacs-company" ,emacs-company)))
3341     (synopsis "Live syntax checking frontend for Flycheck using irony-mode")
3342     (description "This package provides a frontend for Flycheck that lets
3343 irony-mode do the syntax checking.")
3344     (home-page "https://github.com/Sarcasm/flycheck-irony")
3345     (license license:gpl3+)))
3347 (define-public emacs-irony-eldoc
3348   (package
3349     (name "emacs-irony-eldoc")
3350     (version (package-version emacs-irony-mode))
3351     (source
3352      (origin
3353        (method git-fetch)
3354        (uri (git-reference
3355              (url "https://github.com/ikirill/irony-eldoc.git")
3356              (commit "0df5831eaae264a25422b061eb2792aadde8b3f2")))
3357        (file-name (git-file-name name version))
3358        (sha256
3359         (base32 "1l5qpr66v1l12fb50yh73grb2rr85xxmbj19mm33b5rdrq2bqmmd"))))
3360     (build-system emacs-build-system)
3361     (inputs
3362      `(("irony-mode" ,emacs-irony-mode)))
3363     (synopsis "Eldoc integration for irony-mode")
3364     (description "Irony-eldoc is an eldoc extension that shows documentation
3365 for the current function or variable in the minibuffer.")
3366     (home-page "https://github.com/ikirill/irony-eldoc")
3367     (license license:gpl3+)))
3369 (define-public emacs-company-quickhelp
3370   (package
3371     (name "emacs-company-quickhelp")
3372     (version "2.3.0")
3373     (source
3374      (origin
3375        (method git-fetch)
3376        (uri (git-reference
3377              (url "https://github.com/expez/company-quickhelp.git")
3378              (commit version)))
3379        (file-name (git-file-name name version))
3380        (sha256
3381         (base32 "08ccsfvwdpzpj0gai3xrdb2bv1nl6myjkxsc5774pbvlq9nkfdvr"))))
3382     (build-system emacs-build-system)
3383     (propagated-inputs
3384      `(("emacs-pos-tip" ,emacs-pos-tip)
3385        ("emacs-company" ,emacs-company)))
3386     (home-page "https://github.com/expez/company-quickhelp")
3387     (synopsis "Popup documentation for completion candidates")
3388     (description "@code{company-quickhelp} shows documentation for the
3389 completion candidate when using the Company text completion framework.")
3390     (license license:gpl3+)))
3392 (define-public emacs-multiple-cursors
3393   (package
3394     (name "emacs-multiple-cursors")
3395     (version "1.4.0")
3396     (source
3397      (origin
3398        (method git-fetch)
3399        (uri (git-reference
3400              (url "https://github.com/magnars/multiple-cursors.el.git")
3401              (commit version)))
3402        (file-name (git-file-name name version))
3403        (sha256
3404         (base32 "1ijgvzv5r44xqvz751fd5drbvrspapw6xwv47582w255j363r6ss"))))
3405     (build-system emacs-build-system)
3406     (home-page "https://github.com/magnars/multiple-cursors.el")
3407     (synopsis "Multiple cursors for Emacs")
3408     (description
3409      "This package adds support to Emacs for editing text with multiple
3410 simultaneous cursors.")
3411     (license license:gpl3+)))
3413 (define-public emacs-typo
3414   (package
3415     (name "emacs-typo")
3416     (version "1.1")
3417     (home-page "https://github.com/jorgenschaefer/typoel")
3418     (source (origin
3419               (method git-fetch)
3420               (uri (git-reference
3421                     (url home-page)
3422                     (commit (string-append "v" version))))
3423               (file-name (git-file-name name version))
3424               (sha256
3425                (base32
3426                 "1jhd4grch5iz12gyxwfbsgh4dmz5hj4bg4gnvphccg8dsnni05k2"))))
3427     (build-system emacs-build-system)
3428     (synopsis "Minor mode for typographic editing")
3429     (description
3430      "This package provides two Emacs modes, @code{typo-mode} and
3431 @code{typo-global-mode}.  These modes automatically insert Unicode characters
3432 for quotation marks, dashes, and ellipses.  For example, typing @kbd{\"}
3433 automatically inserts a Unicode opening or closing quotation mark, depending
3434 on context.")
3435     (license license:gpl3+)))
3437 (define-public emacs-company-lsp
3438   (package
3439     (name "emacs-company-lsp")
3440     (version "2.1.0")
3441     (source (origin
3442               (method git-fetch)
3443               (uri (git-reference
3444                     (url "https://github.com/tigersoldier/company-lsp.git")
3445                     (commit version)))
3446               (file-name (git-file-name name version))
3447               (sha256
3448                (base32
3449                 "1hy1x2w0yp5brm7714d1hziz3rpkywb5jp3yj78ibmi9ifny9vri"))))
3450     (build-system emacs-build-system)
3451     (propagated-inputs
3452      `(("emacs-dash" ,emacs-dash)
3453        ("emacs-lsp-mode" ,emacs-lsp-mode)
3454        ("emacs-company" ,emacs-company)
3455        ("emacs-s" ,emacs-s)
3456        ("emacs-dash" ,emacs-dash)))
3457     (home-page "https://github.com/tigersoldier/company-lsp")
3458     (synopsis "Completion for @code{lsp-mode}")
3459     (description
3460      "This package provides completion features that are not possible with
3461 @code{lsp-mode} and @code{company-capf} alone, including support for trigger
3462 characters and asynchronous fetching of completion candidates.")
3463     (license license:gpl3+)))
3465 (define-public emacs-scheme-complete
3466   (let ((commit "9b5cf224bf2a5994bc6d5b152ff487517f1a9bb5"))
3467     (package
3468       (name "emacs-scheme-complete")
3469       (version (string-append "20151223." (string-take commit 8)))
3470       (source
3471        (origin
3472          (method git-fetch)
3473          (uri (git-reference
3474                (url "https://github.com/ashinn/scheme-complete.git")
3475                (commit commit)))
3476          (file-name (git-file-name name version))
3477          (sha256
3478           (base32
3479            "141wn9l0m33w0g3dqmx8nxbfdny1r5xbr6ak61rsz21bk0qafs7x"))
3480          (patches
3481           (search-patches "emacs-scheme-complete-scheme-r5rs-info.patch"))))
3482       (build-system emacs-build-system)
3483       (home-page "https://github.com/ashinn/scheme-complete")
3484       (synopsis "Smart tab completion for Scheme in Emacs")
3485       (description
3486        "This file provides a single function, @code{scheme-smart-complete},
3487 which you can use for intelligent, context-sensitive completion for any Scheme
3488 implementation in Emacs.  To use it just load this file and bind that function
3489 to a key in your preferred mode.")
3490       (license license:public-domain))))
3492 (define-public emacs-scel
3493   (let ((version "20170629")
3494         (revision "1")
3495         (commit "aeea3ad4be9306d14c3a734a4ff54fee10ac135b"))
3496     (package
3497       (name "emacs-scel")
3498       (version (git-version version revision commit))
3499       (source
3500        (origin
3501          (method git-fetch)
3502          (uri (git-reference
3503                (url "https://github.com/supercollider/scel.git")
3504                (commit commit)))
3505          (file-name (git-file-name name version))
3506          (sha256
3507           (base32
3508            "0jvmzs1lsjyndqshhii2y4mnr3wghai26i3p75453zrpxpg0zvvw"))))
3509       (build-system emacs-build-system)
3510       (arguments
3511        `(#:modules ((guix build emacs-build-system)
3512                     ((guix build cmake-build-system) #:prefix cmake:)
3513                     (guix build utils))
3514          #:imported-modules (,@%emacs-build-system-modules
3515                              (guix build cmake-build-system))
3516          #:phases
3517          (modify-phases %standard-phases
3518            (add-after 'unpack 'configure
3519              (lambda* (#:key outputs #:allow-other-keys)
3520                (substitute* "el/CMakeLists.txt"
3521                  (("share/emacs/site-lisp/SuperCollider")
3522                   (string-append
3523                    "share/emacs/site-lisp/guix.d/scel-" ,version)))
3524                ((assoc-ref cmake:%standard-phases 'configure)
3525                 #:outputs outputs
3526                 #:configure-flags '("-DSC_EL_BYTECOMPILE=OFF"))))
3527            (add-after 'set-emacs-load-path 'add-el-dir-to-emacs-load-path
3528              (lambda _
3529                (setenv "EMACSLOADPATH"
3530                        (string-append (getcwd) "/el:" (getenv "EMACSLOADPATH")))
3531                #t))
3532            (replace 'install (assoc-ref cmake:%standard-phases 'install)))))
3533       (inputs
3534        `(("supercollider" ,supercollider)))
3535       (native-inputs
3536        `(("cmake" ,cmake)))
3537       (home-page "https://github.com/supercollider/scel")
3538       (synopsis "SuperCollider Emacs interface")
3539       (description "@code{emacs-scel} is an Emacs interface to SuperCollider.
3540 SuperCollider is a platform for audio synthesis and algorithmic composition.")
3541       (license license:gpl2+))))
3543 (define-public emacs-company-auctex
3544   (let ((commit "48c42c58ce2f0e693301b0cb2d085055410c1b25")
3545         (revision "1"))
3546     (package
3547       (name "emacs-company-auctex")
3548       (version (git-version "0" revision commit))
3549       (source (origin
3550                 (method git-fetch)
3551                 (uri (git-reference
3552                       (url "https://github.com/alexeyr/company-auctex")
3553                       (commit commit)))
3554                 (file-name (git-file-name name version))
3555                 (sha256
3556                  (base32
3557                   "10qn7frn5wcmrlci3v6iliqzj7r9dls87h9zp3xkgrgn4bqprfp8"))))
3558       (build-system emacs-build-system)
3559       (propagated-inputs
3560        `(("emacs-yasnippet" ,emacs-yasnippet)
3561          ("emacs-auctex" ,emacs-auctex)
3562          ("emacs-company" ,emacs-company)))
3563       (home-page "https://github.com/alexeyr/company-auctex/")
3564       (synopsis "Completion for @code{AUCTeX}")
3565       (description
3566        "This package provides a group of backends permitting auto-completion
3567 for @code{AUCTeX}.")
3568       (license license:gpl3+))))
3570 (define-public emacs-mit-scheme-doc
3571   (package
3572     (name "emacs-mit-scheme-doc")
3573     (version "20140203")
3574     (source
3575      (origin
3576        (modules '((guix build utils)))
3577        (snippet
3578         ;; keep only file of interest
3579         '(begin
3580            (for-each delete-file '("dot-emacs.el" "Makefile"))
3581            (install-file "6.945-config/mit-scheme-doc.el" ".")
3582            (delete-file-recursively "6.945-config")
3583            #t))
3584        (file-name (string-append name "-" version ".tar.bz2"))
3585        (method url-fetch)
3586        (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/"
3587                            "6.945/dont-panic/emacs-basic-config.tar.bz2"))
3588        (sha256
3589         (base32
3590          "0dqidg2bd66pawqfarvwca93w5gqf9mikn1k2a2rmd9ymfjpziq1"))))
3591     (build-system emacs-build-system)
3592     (inputs `(("mit-scheme" ,mit-scheme)))
3593     (arguments
3594      `(#:phases
3595        (modify-phases %standard-phases
3596          (add-after 'unpack 'configure-doc
3597            (lambda* (#:key inputs #:allow-other-keys)
3598              (let* ((mit-scheme-dir (assoc-ref inputs "mit-scheme"))
3599                     (doc-dir (string-append mit-scheme-dir "/share/doc/"
3600                                             "mit-scheme-"
3601                                             ,(package-version mit-scheme))))
3602                (substitute* "mit-scheme-doc.el"
3603                  (("http://www\\.gnu\\.org/software/mit-scheme/documentation/mit-scheme-ref/")
3604                   (string-append "file:" doc-dir "/mit-scheme-ref/")))))))))
3605     (home-page "http://groups.csail.mit.edu/mac/users/gjs/6.945/dont-panic/")
3606     (synopsis "MIT-Scheme documentation lookup for Emacs")
3607     (description
3608      "This package provides a set of Emacs functions to search definitions of
3609 identifiers in the MIT-Scheme documentation.")
3610     (license license:gpl2+)))
3612 (define-public emacs-constants
3613   (package
3614     (name "emacs-constants")
3615     (version "2.6")
3616     (home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
3617     (source
3618      (origin
3619        (method git-fetch)
3620        (uri (git-reference
3621              (url "https://github.com/fedeinthemix/emacs-constants.git")
3622              (commit (string-append "v" version))))
3623        (file-name (git-file-name name version))
3624        (sha256
3625         (base32 "0f5sh6b45a8p9kancjp9jk44ws8ww6x50a0i6zgyyvr7dbvii1a0"))))
3626     (build-system emacs-build-system)
3627     (synopsis "Enter definition of constants into an Emacs buffer")
3628     (description
3629      "This package provides functions for inserting the definition of natural
3630 constants and units into an Emacs buffer.")
3631     (license license:gpl2+)))
3633 (define-public emacs-tagedit
3634   (package
3635     (name "emacs-tagedit")
3636     (version "1.4.0")
3637     (source
3638      (origin
3639        (method git-fetch)
3640        (uri (git-reference
3641              (url "https://github.com/magnars/tagedit.git")
3642              (commit version)))
3643        (file-name (git-file-name name version))
3644        (sha256
3645         (base32 "0kq40g46s8kgiafrhdq99h79rz9h5fvgz59k7ralmf86bl4sdmdb"))))
3646     (build-system emacs-build-system)
3647     (propagated-inputs
3648      `(("emacs-s" ,emacs-s)
3649        ("emacs-dash" ,emacs-dash)))
3650     (home-page "https://github.com/magnars/tagedit")
3651     (synopsis "Some paredit-like features for html-mode")
3652     (description
3653      "This package provides a collection of paredit-like functions for editing
3654 in @code{html-mode}.")
3655     (license license:gpl3+)))
3657 (define-public emacs-slime
3658   (package
3659     (name "emacs-slime")
3660     (version "2.23")
3661     (source
3662      (origin
3663        (method git-fetch)
3664        (uri (git-reference
3665              (url "https://github.com/slime/slime.git")
3666              (commit (string-append "v" version))))
3667        (file-name (git-file-name name version))
3668        (sha256
3669         (base32 "0i637n0ragpbj39hqx65nx5k99xf0464c4w6w1qpzykm6z42grky"))))
3670     (build-system emacs-build-system)
3671     (native-inputs
3672      `(("texinfo" ,texinfo)))
3673     (arguments
3674      `(#:include '("\\.el$" "\\.lisp$" "\\.asd$" "contrib")
3675        #:exclude '("^slime-tests.el" "^contrib/test/"
3676                    "^contrib/Makefile$" "^contrib/README.md$")
3677        #:phases
3678        (modify-phases %standard-phases
3679          (add-after 'unpack 'make-git-checkout-writable
3680            (lambda _
3681              (for-each make-file-writable (find-files "."))
3682              #t))
3683          (add-before 'install 'configure
3684            (lambda* _
3685              (emacs-substitute-variables "slime.el"
3686                ("inferior-lisp-program" "sbcl"))
3687              #t))
3688          (add-before 'install 'install-doc
3689            (lambda* (#:key outputs #:allow-other-keys)
3690              (let* ((out (assoc-ref outputs "out"))
3691                     (info-dir (string-append out "/share/info"))
3692                     (doc-dir (string-append out "/share/doc/"
3693                                             ,name "-" ,version))
3694                     (doc-files '("doc/slime-refcard.pdf"
3695                                  "README.md" "NEWS" "PROBLEMS"
3696                                  "CONTRIBUTING.md")))
3697                (with-directory-excursion "doc"
3698                  (substitute* "Makefile"
3699                    (("infodir=/usr/local/info")
3700                     (string-append "infodir=" info-dir)))
3701                  (invoke "make" "html/index.html")
3702                  (invoke "make" "slime.info")
3703                  (install-file "slime.info" info-dir)
3704                  (copy-recursively "html" (string-append doc-dir "/html")))
3705                (for-each (lambda (f)
3706                            (install-file f doc-dir)
3707                            (delete-file f))
3708                          doc-files)
3709                (delete-file-recursively "doc")
3710                #t))))))
3711     (home-page "https://github.com/slime/slime")
3712     (synopsis "Superior Lisp Interaction Mode for Emacs")
3713     (description
3714      "SLIME extends Emacs with support for interactive programming in
3715 Common Lisp.  The features are centered around @command{slime-mode},
3716 an Emacs minor mode that complements the standard @command{lisp-mode}.
3717 While lisp-mode supports editing Lisp source files, @command{slime-mode}
3718 adds support for interacting with a running Common Lisp process
3719 for compilation, debugging, documentation lookup, and so on.")
3720     (license (list license:gpl2+ license:public-domain))))
3722 (define-public emacs-popup
3723   (package
3724     (name "emacs-popup")
3725     (version "0.5.3")
3726     (source
3727      (origin
3728        (method git-fetch)
3729        (uri (git-reference
3730              (url "https://github.com/auto-complete/popup-el.git")
3731              (commit (string-append "v" version))))
3732        (file-name (git-file-name name version))
3733        (sha256
3734         (base32 "1y538siabcf1n00wr4iz5gbxfndw661kx2mn9w1g4lg7yi4n0h0h"))))
3735     (build-system emacs-build-system)
3736     (home-page "https://github.com/auto-complete/popup-el")
3737     (synopsis "Visual Popup User Interface for Emacs")
3738     (description
3739      "Popup.el is a visual popup user interface library for Emacs.
3740 This provides a basic API and common UI widgets such as popup tooltips
3741 and popup menus.")
3742     (license license:gpl3+)))
3744 (define-public emacs-python-environment
3745   (package
3746     (name "emacs-python-environment")
3747     (version "0.0.2")
3748     (source
3749      (origin
3750        (method git-fetch)
3751        (uri (git-reference
3752              (url "https://github.com/tkf/emacs-python-environment/")
3753              (commit version)))
3754        (file-name (git-file-name name version))
3755        (sha256
3756         (base32 "0q6bib9nr6xiq6npzbngyfcjk87yyvwzq1zirr3z1h5wadm34lsk"))))
3757     (build-system emacs-build-system)
3758     (propagated-inputs
3759      `(("emacs-deferred" ,emacs-deferred)))
3760     (home-page "https://github.com/tkf/emacs-python-environment")
3761     (synopsis "Provides a @code{virtualenv} API in Emacs Lisp")
3762     (description
3763      "This package permits automated installation of tools written in Python.")
3764     (license license:gpl3+)))
3766 (define-public emacs-jedi
3767   (package
3768     (name "emacs-jedi")
3769     (version "0.2.7")
3770     (source (origin
3771               (method git-fetch)
3772               (uri (git-reference
3773                     (url "https://github.com/tkf/emacs-jedi/")
3774                     (commit (string-append "v" version))))
3775               (file-name (git-file-name name version))
3776               (sha256
3777                (base32
3778                 "0xbp9fcxgbf298w05hvf52z41kk7r52975ailgdn8sg60xc98fa7"))))
3779     (build-system emacs-build-system)
3780     (native-inputs
3781      `(("emacs-mocker" ,emacs-mocker)))
3782     (propagated-inputs
3783      `(("emacs-auto-complete" ,emacs-auto-complete)
3784        ("emacs-python-environment" ,emacs-python-environment)
3785        ("emacs-epc" ,emacs-epc)))
3786     (home-page "https://github.com/tkf/emacs-jedi")
3787     (synopsis "Provides Python completion in Emacs")
3788     (description
3789      "This package provides completion in Python buffers and also helps find
3790 the locations of docstrings, arguments, and functions.")
3791     (license license:gpl3+)))
3793 (define-public emacs-company-jedi
3794   (package
3795     (name "emacs-company-jedi")
3796     (version "0.04")
3797     (source (origin
3798               (method git-fetch)
3799               (uri (git-reference
3800                     (url "https://github.com/syohex/emacs-company-jedi")
3801                     (commit version)))
3802               (file-name (git-file-name name version))
3803               (sha256
3804                (base32
3805                 "1ihqapp4dv92794rsgyq0rmhwika60cmradqd4bn9b72ss6plxs1"))))
3806     (build-system emacs-build-system)
3807     (propagated-inputs
3808      `(("emacs-jedi" ,emacs-jedi)
3809        ("emacs-company" ,emacs-company)))
3810     (home-page "https://github.com/syohex/emacs-company-jedi")
3811     (synopsis "Provides Python completion in @code{company-mode}")
3812     (description
3813      "This package provides a Company backend for Python.")
3814     (license license:gpl3+)))
3816 (define-public emacs-puppet-mode
3817   (let ((commit "b3ed5057166a4f49dfa9be638523a348b55a2fd2")
3818         (revision "1"))
3819     (package
3820       (name "emacs-puppet-mode")
3821       ;; The last release, 0.3 was several years ago, and there have been many
3822       ;; commits since
3823       (version (git-version "0.3" revision commit))
3824       (source
3825        (origin
3826          (method url-fetch)
3827          (uri (string-append
3828                "https://raw.githubusercontent.com/voxpupuli/puppet-mode/"
3829                commit "/puppet-mode.el"))
3830          (sha256
3831           (base32
3832            "1indycxawsl0p2aqqg754f6735q3cmah9vd886rpn0ncc3ipi1xm"))))
3833       (build-system emacs-build-system)
3834       (home-page "https://github.com/voxpupuli/puppet-mode")
3835       (synopsis "Emacs major mode for the Puppet configuration language")
3836       (description
3837        "This package provides support for the Puppet configuration language,
3838 including syntax highlighting, indentation of expressions and statements,
3839 linting of manifests and integration with Puppet Debugger.")
3840       ;; Also incorporates work covered by the Apache License, Version 2.0
3841       (license license:gpl3+))))
3843 (define-public emacs-god-mode
3844   (let ((commit "6cf0807b6555eb6fcf8387a4e3b667071ef38964")
3845         (revision "1"))
3846     (package
3847       (name "emacs-god-mode")
3848       (version (string-append "20151005.925."
3849                               revision "-" (string-take commit 9)))
3850       (source
3851        (origin
3852          (method git-fetch)
3853          (uri (git-reference
3854                (url "https://github.com/chrisdone/god-mode.git")
3855                (commit commit)))
3856          (file-name (git-file-name name version))
3857          (sha256
3858           (base32
3859            "1am415k4xxcva6y3vbvyvknzc6bma49pq3p85zmpjsdmsp18qdix"))))
3860       (build-system emacs-build-system)
3861       (home-page "https://github.com/chrisdone/god-mode")
3862       (synopsis "Minor mode for entering commands without modifier keys")
3863       (description
3864        "This package provides a global minor mode for entering Emacs commands
3865 without modifier keys.  It's similar to Vim's separation of commands and
3866 insertion mode.  When enabled all keys are implicitly prefixed with
3867 @samp{C-} (among other helpful shortcuts).")
3868       (license license:gpl3+))))
3870 (define-public emacs-jinja2-mode
3871   (package
3872     (name "emacs-jinja2-mode")
3873     (version "0.2")
3874     (source
3875      (origin
3876        (method git-fetch)
3877        (uri (git-reference
3878              (url "https://github.com/paradoxxxzero/jinja2-mode.git")
3879              (commit (string-append "v" version))))
3880        (file-name (git-file-name name version))
3881        (sha256
3882         (base32 "0l26wcy496k6xk7q5sf905xir0p73ziy6c44is77854lv3y0z381"))))
3883     (build-system emacs-build-system)
3884     (home-page "https://github.com/paradoxxxzero/jinja2-mode")
3885     (synopsis "Major mode for jinja2")
3886     (description
3887      "Emacs major mode for jinja2 with: syntax highlighting,
3888 sgml/html integration, and indentation (working with sgml).")
3889     (license license:gpl3+)))
3891 (define-public emacs-company-cabal
3892   ;; The latest version is 0.3.0, but no release has been provided after 0.2.1.
3893   (let ((commit "62112a7259e24bd6c08885629a185afe512b7d3d")
3894         (revision "1"))
3895     (package
3896       (name "emacs-company-cabal")
3897       (version (git-version "0.3.0" revision commit))
3898       (source (origin
3899                 (method git-fetch)
3900                 (uri (git-reference
3901                       (url "https://github.com/iquiw/company-cabal/")
3902                       (commit commit)))
3903                 (file-name (git-file-name name version))
3904                 (sha256
3905                  (base32
3906                   "1gf45xwjzdm8i4q6c6khk4dbg1mmp2r0awz2sjr4dcr2dbd1n7mg"))))
3907       (build-system emacs-build-system)
3908       (propagated-inputs
3909        `(("emacs-company" ,emacs-company)))
3910       (home-page "https://github.com/iquiw/company-cabal/")
3911       (synopsis "Company completion for Haskell Cabal files")
3912       (description
3913        "This package allows for completion of field names, section names,
3914 field values, and more within @code{haskell-cabal-mode}.")
3915       (license license:gpl3+))))
3917 (define-public emacs-rfcview
3918   (package
3919     (name "emacs-rfcview")
3920     (version "0.13")
3921     (home-page "http://www.loveshack.ukfsn.org/emacs")
3922     (source (origin
3923               (method url-fetch)
3924               (uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el")
3925               (sha256
3926                (base32
3927                 "0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz"))))
3928     (build-system emacs-build-system)
3929     (synopsis "Prettify Request for Comments (RFC) documents")
3930     (description "The Internet Engineering Task Force (IETF) and the Internet
3931 Society (ISOC) publish various Internet-related protocols and specifications
3932 as \"Request for Comments\" (RFC) documents and Internet Standard (STD)
3933 documents.  RFCs and STDs are published in a simple text form.  This package
3934 provides an Emacs major mode, rfcview-mode, which makes it more pleasant to
3935 read these documents in Emacs.  It prettifies the text and adds
3936 hyperlinks/menus for easier navigation.  It also provides functions for
3937 browsing the index of RFC documents and fetching them from remote servers or
3938 local directories.")
3939     (license license:gpl3+)))
3941 (define-public emacs-ffap-rfc-space
3942   (package
3943     (name "emacs-ffap-rfc-space")
3944     (version "12")
3945     (home-page "http://user42.tuxfamily.org/ffap-rfc-space/index.html")
3946     (source (origin
3947               (method url-fetch)
3948               (uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el")
3949               (sha256
3950                (base32
3951                 "1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck"))))
3952     (build-system emacs-build-system)
3953     (synopsis "Make ffap recognize an RFC with a space before its number")
3954     (description "The Internet Engineering Task Force (IETF) and the
3955 Internet Society (ISOC) publish various Internet-related protocols and
3956 specifications as \"Request for Comments\" (RFC) documents.  The
3957 built-in Emacs module \"ffap\" (Find File at Point) has the ability to
3958 recognize names at point which look like \"RFC1234\" and \"RFC-1234\"
3959 and load the appropriate RFC from a remote server.  However, it fails
3960 to recognize a name like \"RFC 1234\".  This package enhances ffap so
3961 that it correctly finds RFCs even when a space appears before the
3962 number.")
3963     (license license:gpl3+)))
3965 (define-public emacs-org-bullets
3966   (package
3967     (name "emacs-org-bullets")
3968     (version "0.2.4")
3969     (source
3970      (origin
3971        (method git-fetch)
3972        (uri (git-reference
3973              (url "https://github.com/sabof/org-bullets.git")
3974              (commit version)))
3975        (file-name (git-file-name name version))
3976        (sha256
3977         (base32 "10nr4sjffnqbllv6gmak6pviyynrb7pi5nvrq331h5alm3xcpq0w"))))
3978     (build-system emacs-build-system)
3979     (home-page "https://github.com/sabof/org-bullets")
3980     (synopsis "Show bullets in org-mode as UTF-8 characters")
3981     (description
3982      "This package provides an Emacs minor mode causing bullets in
3983 @code{org-mode} to be rendered as UTF-8 characters.")
3984     (license license:gpl3+)))
3986 (define-public emacs-org-pomodoro
3987   (package
3988     (name "emacs-org-pomodoro")
3989     (version "2.1.0")
3990     (source
3991      (origin
3992        (method git-fetch)
3993        (uri (git-reference
3994              (url "https://github.com/lolownia/org-pomodoro.git")
3995              (commit version)))
3996        (file-name (git-file-name name version))
3997        (sha256
3998         (base32 "0r5shgikm34d66i2hblyknbblpg92lb2zc9x4bcb28xkh7m9d0xv"))))
3999     (build-system emacs-build-system)
4000     (propagated-inputs
4001      `(("emacs-alert" ,emacs-alert)))
4002     (home-page "https://github.com/lolownia/org-pomodoro")
4003     (synopsis "Pomodoro technique for org-mode")
4004     (description "@code{emacs-org-pomodoro} adds very basic support for
4005 Pomodoro technique in Emacs org-mode.
4007 Run @code{M-x org-pomodoro} for the task at point or select one of the
4008 last tasks that you clocked time for.  Each clocked-in pomodoro starts
4009 a timer of 25 minutes and after each pomodoro a break timer of 5
4010 minutes is started automatically.  Every 4 breaks a long break is
4011 started with 20 minutes.  All values are customizable.")
4012     (license license:gpl3+)))
4014 (define-public emacs-org-trello
4015   (package
4016     (name "emacs-org-trello")
4017     (version "0.8.0")
4018     (source
4019      (origin
4020        (method git-fetch)
4021        (uri (git-reference
4022              (url "https://github.com/org-trello/org-trello.git")
4023              (commit version)))
4024        (file-name (git-file-name name version))
4025        (sha256
4026         (base32 "0m5hyhb6211hdmyp1bq6f3fklfgw3957knd96bfdafj727vdnlzm"))))
4027     (build-system emacs-build-system)
4028     (propagated-inputs
4029      `(("emacs-dash" ,emacs-dash)
4030        ("emacs-deferred" ,emacs-deferred)
4031        ("emacs-f" ,emacs-f)
4032        ("emacs-helm" ,emacs-helm)
4033        ("emacs-request" ,emacs-request)
4034        ("emacs-s" ,emacs-s)))
4035     (home-page "https://org-trello.github.io")
4036     (synopsis "Emacs minor mode for interacting with Trello")
4037     (description "This package provides an Emacs minor mode to extend
4038 @code{org-mode} with Trello abilities.  Trello is an online project
4039 organizer.")
4040     (license license:gpl3+)))
4042 (define-public emacs-company-flow
4043   (let ((commit "76ef585c70d2a3206c2eadf24ba61e59124c3a16")
4044         (revision "1"))
4045     (package
4046       (name "emacs-company-flow")
4047       (version (git-version "0.1.0" revision commit))
4048       (source (origin
4049                 (method git-fetch)
4050                 (uri (git-reference
4051                       (url "https://github.com/aaronjensen/company-flow/")
4052                       (commit commit)))
4053                 (file-name (git-file-name name version))
4054                 (sha256
4055                  (base32
4056                   "0zs9cblnbkxa0dxw4lyllmybqizxcdx96gv8jlhx20nrjpi78piw"))))
4057       (build-system emacs-build-system)
4058       (propagated-inputs
4059        `(("emacs-company" ,emacs-company)
4060          ("emacs-dash" ,emacs-dash)))
4061       (home-page "https://github.com/aaronjensen/company-flow/")
4062       (synopsis "Flow backend for @code{company-mode}")
4063       (description
4064        "This package provides completion for JavaScript files utilizing Flow.")
4065       (license license:gpl3+))))
4067 (define-public emacs-atom-one-dark-theme
4068   (let ((commit "1f1185bf667a38d3d0d180ce85fd4c131818aae2")
4069         (revision "0"))
4070     (package
4071      (name "emacs-atom-one-dark-theme")
4072      (version (git-version "0.4.0" revision commit))
4073      (source (origin
4074               (method git-fetch)
4075               (uri (git-reference
4076                     (url "https://github.com/jonathanchu/atom-one-dark-theme.git")
4077                     (commit commit)))
4078               (sha256
4079                (base32
4080                 "1alma16hg3mfjly8a9s3mrswkjjx4lrpdnf43869hn2ibkn7zx9z"))
4081               (file-name (git-file-name name version))))
4082      (build-system emacs-build-system)
4083      (home-page "https://github.com/jonathanchu/atom-one-dark-theme")
4084      (synopsis "Atom One Dark color theme for Emacs")
4085      (description "An Emacs port of the Atom One Dark theme from Atom.io.")
4086      (license license:gpl3+))))
4088 (define-public emacs-zenburn-theme
4089   (package
4090     (name "emacs-zenburn-theme")
4091     (version "2.6")
4092     (source
4093      (origin
4094        (method git-fetch)
4095        (uri (git-reference
4096              (url "https://github.com/bbatsov/zenburn-emacs.git")
4097              (commit (string-append "v" version))))
4098        (file-name (git-file-name name version))
4099        (sha256
4100         (base32 "1n87r5hs7h5r8dgfid66skpzcypl9hssr9m3npp916g6jfsi782f"))))
4101     (build-system emacs-build-system)
4102     (home-page "https://github.com/bbatsov/zenburn-emacs")
4103     (synopsis "Low contrast color theme for Emacs")
4104     (description
4105      "Zenburn theme is a port of the popular Vim Zenburn theme for Emacs.
4106 It is built on top of the custom theme support in Emacs 24 or later.")
4107     (license license:gpl3+)))
4109 (define-public emacs-moe-theme-el
4110   (let ((commit "6e086d855d6bb446bbd1090742815589a81a915f")
4111         (version "1.0")
4112         (revision "1"))
4113     (package
4114       (name "emacs-moe-theme-el")
4115       (version (git-version version revision commit))
4116       (source
4117        (origin
4118          (method git-fetch)
4119          (uri (git-reference
4120                (url "https://github.com/kuanyui/moe-theme.el")
4121                (commit commit)))
4122          (file-name (git-file-name name version))
4123          (sha256
4124           (base32 "0xj4wfd7h4jqnr193pizm9frf6lmwjr0dsdv2l9mqh9k691z1dnc"))))
4125       (build-system emacs-build-system)
4126       (home-page "https://github.com/kuanyui/moe-theme.el")
4127       (synopsis "Anime-inspired color themes")
4128       (description
4129        "This package provides vibrant color schemes with light and dark
4130 variants.")
4131       (license license:gpl3+))))
4133 (define-public emacs-solarized-theme
4134   (package
4135     (name "emacs-solarized-theme")
4136     (version "1.2.2")
4137     (source (origin
4138               (method url-fetch)
4139               (uri (string-append "https://github.com/bbatsov/solarized-emacs/"
4140                                   "archive/v"  version ".tar.gz"))
4141               (file-name (string-append name "-" version ".tar.gz"))
4142               (sha256
4143                (base32
4144                 "1ha3slc6d9wi9ilkhmwrzkvf308n6ph7b0k69pk369s9304awxzx"))))
4145     (build-system emacs-build-system)
4146     (propagated-inputs
4147      `(("emacs-dash" ,emacs-dash)))
4148     (home-page "https://github.com/bbatsov/solarized-emacs")
4149     (synopsis "Port of the Solarized theme for Emacs")
4150     (description
4151      "Solarized for Emacs is a port of the Solarized theme for Vim.  This
4152 package provides a light and a dark variant.")
4153     (license license:gpl3+)))
4155 (define-public emacs-ahungry-theme
4156   (package
4157     (name "emacs-ahungry-theme")
4158     (version "1.10.0")
4159     (source
4160      (origin (method url-fetch)
4161              (uri (string-append "https://elpa.gnu.org/packages/ahungry-theme-"
4162                                  version ".tar"))
4163              (sha256
4164               (base32
4165                "14q5yw56n82qph09bk7wmj5b1snhh9w0nk5s1l7yn9ldg71xq6pm"))))
4166     (build-system emacs-build-system)
4167     (home-page "https://github.com/ahungry/color-theme-ahungry")
4168     (synopsis "Ahungry color theme for Emacs")
4169     (description "Ahungry theme for Emacs provides bright and bold colors.
4170 If you load it from a terminal, you will be able to make use of the
4171 transparent background.  If you load it from a GUI, it will default to a
4172 dark background.")
4173     (license license:gpl3+)))
4175 (define-public emacs-gruvbox-theme
4176   (package
4177     (name "emacs-gruvbox-theme")
4178     (version "1.28.0")
4179     (source (origin
4180               (method git-fetch)
4181               (uri (git-reference
4182                     (url "https://github.com/greduan/emacs-theme-gruvbox.git")
4183                     (commit version)))
4184               (file-name (git-file-name name version))
4185               (sha256
4186                (base32
4187                 "00qq92gp1g55pzm97rh7k0dgxy44pxziridl8kqm4rbpi31r7k9p"))))
4188     (build-system emacs-build-system)
4189     (propagated-inputs
4190      `(("emacs-autothemer" ,emacs-autothemer)))
4191     (home-page "https://github.com/greduan/emacs-theme-gruvbox")
4192     (synopsis "Gruvbox is a retro groove color scheme ported from Vim")
4193     (description
4194      "Gruvbox is heavily inspired by badwolf, jellybeans and solarized.
4196 Designed as a bright theme with pastel 'retro groove' colors and light/dark
4197 mode switching in the way of solarized.  The main focus when developing gruvbox
4198 is to keep colors easily distinguishable, contrast enough and still pleasant
4199 for the eyes.")
4200     (license license:expat))) ; MIT license
4202 (define-public emacs-2048-game
4203   (package
4204     (name "emacs-2048-game")
4205     (version "20151026.1233")
4206     (source
4207      (origin
4208        (method url-fetch)
4209        (uri (string-append "https://melpa.org/packages/2048-game-"
4210                            version ".el"))
4211        (sha256
4212         (base32
4213          "0gy2pvz79whpavp4jmz8h9krzn7brmvv3diixi1d4w51pcdvaldd"))))
4214     (build-system emacs-build-system)
4215     (home-page "https://bitbucket.org/zck/2048.el")
4216     (synopsis "Implementation of the game 2048 in Emacs Lisp")
4217     (description
4218      "This program is an implementation of 2048 for Emacs.
4219 The goal of this game is to create a tile with value 2048.  The size of the
4220 board and goal value can be customized.")
4221   (license license:gpl3+)))
4223 (define-public emacs-base16-theme
4224   (package
4225     (name "emacs-base16-theme")
4226     (version "2.1")
4227     (source
4228      (origin
4229        (method url-fetch)
4230        (uri (string-append "https://stable.melpa.org/packages/base16-theme-"
4231                            version ".tar"))
4232        (sha256
4233         (base32
4234          "0z6hrwz2jlz6jbr381rcqcqvx6hss5cad352klx07rark7zccacj"))))
4235     (build-system emacs-build-system)
4236     (home-page "https://github.com/belak/base16-emacs")
4237     (synopsis "Base16 color themes for Emacs")
4238     (description
4239      "Base16 provides carefully chosen syntax highlighting and a default set
4240 of sixteen colors suitable for a wide range of applications.  Base16 is not a
4241 single theme but a set of guidelines with numerous implementations.")
4242     (license license:expat)))
4244 (define-public emacs-solaire-mode
4245   (package
4246     (name "emacs-solaire-mode")
4247     (version "1.0.9")
4248     (source
4249      (origin
4250        (method git-fetch)
4251        (uri (git-reference
4252              (url "https://github.com/hlissner/emacs-solaire-mode.git")
4253              (commit (string-append "v" version))))
4254        (file-name (git-file-name name version))
4255        (sha256
4256         (base32 "011m4r7s6i9lgjymh7jgq5jwwrpz4vmpvp3c8d4ix96v5hi04kzg"))))
4257     (build-system emacs-build-system)
4258     (home-page "https://github.com/hlissner/emacs-solaire-mode")
4259     (synopsis "Change background of file-visiting buffers in Emacs")
4260     (description
4261      "@code{solaire-mode} is inspired by editors which visually distinguish
4262 code-editing windows from sidebars, popups, terminals, ecetera.  It changes the
4263 background of file-visiting buffers (and certain aspects of the UI) to make
4264 them easier to distinguish from other, less important buffers.")
4265     (license license:expat)))
4267 (define-public emacs-prescient
4268   (package
4269     (name "emacs-prescient")
4270     (version "3.2")
4271     (source (origin
4272               (method git-fetch)
4273               (uri (git-reference
4274                     (url "https://github.com/raxod502/prescient.el/")
4275                     (commit (string-append "v" version))))
4276               (file-name (git-file-name name version))
4277               (sha256
4278                (base32
4279                 "0d60h4rfm5jcf8cf11z91wjqp0xcrviskqzyqhfliqvy2i2yl6ks"))))
4280     (build-system emacs-build-system)
4281     (propagated-inputs
4282      `(("emacs-company" ,emacs-company)
4283        ("emacs-ivy" ,emacs-ivy)))
4284     (home-page "https://github.com/raxod502/prescient.el/")
4285     (synopsis "Library that sorts and filters lists of candidates")
4286     (description
4287      "This package provides a library for sorting and filtering, as well as
4288 extensions for @code{ivy-mode} and @code{company-mode} that make use of the
4289 library.")
4290     (license license:gpl3+)))
4292 (define-public emacs-smartparens
4293   (package
4294     (name "emacs-smartparens")
4295     (version "1.11.0")
4296     (source
4297      (origin
4298        (method git-fetch)
4299        (uri (git-reference
4300              (url "https://github.com/Fuco1/smartparens.git")
4301              (commit version)))
4302        (file-name (git-file-name name version))
4303        (sha256
4304         (base32 "0zij2f2rjjym98w68jkp10n1ckpfprlkk217c3fg16hz5nq4vnm6"))))
4305     (build-system emacs-build-system)
4306     (propagated-inputs
4307      `(("emacs-dash" ,emacs-dash)
4308        ("emacs-markdown-mode" ,emacs-markdown-mode)))
4309     (home-page "https://github.com/Fuco1/smartparens")
4310     (synopsis "Paredit-like insertion, wrapping and navigation with user
4311 defined pairs")
4312     (description
4313      "Smartparens is a minor mode for Emacs that deals with parens pairs
4314 and tries to be smart about it.  It started as a unification effort to
4315 combine functionality of several existing packages in a single,
4316 compatible and extensible way to deal with parentheses, delimiters, tags
4317 and the like.  Some of these packages include autopair, textmate,
4318 wrap-region, electric-pair-mode, paredit and others.  With the basic
4319 features found in other packages it also brings many improvements as
4320 well as completely new features.")
4321     (license license:gpl3+)))
4323 (define-public emacs-highlight-symbol
4324   ;; We prefer a more recent commit that provides an option to squelch
4325   ;; echo-area alerts that can drown out useful information like eldoc
4326   ;; messages.
4327   (let ((commit "7a789c779648c55b16e43278e51be5898c121b3a")
4328         (version "1.3")
4329         (revision "1"))
4330     (package
4331       (name "emacs-highlight-symbol")
4332       (version (git-version version revision commit))
4333       (source
4334        (origin
4335          (method git-fetch)
4336          (uri (git-reference
4337                (url "https://github.com/nschum/highlight-symbol.el.git")
4338                (commit commit)))
4339          (file-name (git-file-name name version))
4340          (sha256
4341           (base32 "19cgyk0sh8nsmf3jbi92i8qsdx4l4yilfq5jj9zfdbj9p5gvwx96"))))
4342       (build-system emacs-build-system)
4343       (home-page "https://nschum.de/src/emacs/highlight-symbol/")
4344       (synopsis "Automatic and manual symbol highlighting for Emacs")
4345       (description
4346        "Use @code{highlight-symbol} to toggle highlighting of the symbol at
4347 point throughout the current buffer.  Use @code{highlight-symbol-mode} to keep
4348 the symbol at point highlighted.
4350 The functions @code{highlight-symbol-next}, @code{highlight-symbol-prev},
4351 @code{highlight-symbol-next-in-defun} and
4352 @code{highlight-symbol-prev-in-defun} allow for cycling through the locations
4353 of any symbol at point.  Use @code{highlight-symbol-nav-mode} to enable key
4354 bindings @code{M-p} and @code{M-p} for navigation.  When
4355 @code{highlight-symbol-on-navigation-p} is set, highlighting is triggered
4356 regardless of @code{highlight-symbol-idle-delay}.
4358 @code{highlight-symbol-query-replace} can be used to replace the symbol. ")
4359       (license license:gpl2+))))
4361 (define-public emacs-hl-todo
4362   (package
4363     (name "emacs-hl-todo")
4364     (version "3.0.0")
4365     (source (origin
4366               (method git-fetch)
4367               (uri (git-reference
4368                     (url "https://github.com/tarsius/hl-todo")
4369                     (commit (string-append "v" version))))
4370               (file-name (git-file-name name version))
4371               (sha256
4372                (base32
4373                 "07xcc04ivpl5sbgb55qz84mz6wa500h0awzw1zq1ba5mfjjq8hls"))))
4374     (build-system emacs-build-system)
4375     (home-page "https://github.com/tarsius/hl-todo")
4376     (synopsis "Emacs mode to highlight TODO and similar keywords")
4377     (description
4378      "This package provides an Emacs mode to highlight TODO and similar
4379 keywords in comments and strings.  This package also provides commands for
4380 moving to the next or previous keyword and to invoke @code{occur} with a
4381 regexp that matches all known keywords.")
4382     (license license:gpl3+)))
4384 (define-public emacs-perspective
4385   (package
4386     (name "emacs-perspective")
4387     (version "2.2")
4388     (source
4389      (origin
4390        (method git-fetch)
4391        (uri (git-reference
4392              (url "https://github.com/nex3/perspective-el.git")
4393              (commit version)))
4394        (file-name (git-file-name name version))
4395        (sha256
4396         (base32
4397          "0pd5sqrrz6y3md20yh6ffy32jdcgb1gc9b4j14pm6r54bqxik68h"))))
4398     (build-system emacs-build-system)
4399     (home-page "https://github.com/nex3/perspective-el")
4400     (synopsis "Switch between named \"perspectives\"")
4401     (description
4402      "This package provides tagged workspaces in Emacs, similar to workspaces in
4403 windows managers such as Awesome and XMonad.  @code{perspective.el} provides
4404 multiple workspaces (or \"perspectives\") for each Emacs frame.  Each
4405 perspective is composed of a window configuration and a set of buffers.
4406 Switching to a perspective activates its window configuration, and when in a
4407 perspective only its buffers are available by default.")
4408     ;; This package is released under the same license as Emacs (GPLv3+) or
4409     ;; the Expat license.
4410     (license license:gpl3+)))
4412 (define-public emacs-test-simple
4413   (package
4414     (name "emacs-test-simple")
4415     (version "1.3.0")
4416     (source
4417      (origin
4418        (method url-fetch)
4419        (uri (string-append "https://elpa.gnu.org/packages/test-simple-"
4420                            version ".el"))
4421        (sha256
4422         (base32
4423          "1yd61jc9ds95a5n09052kwc5gasy57g4lxr0jsff040brlyi9czz"))))
4424     (build-system emacs-build-system)
4425     (home-page "https://github.com/rocky/emacs-test-simple")
4426     (synopsis "Simple unit test framework for Emacs Lisp")
4427     (description
4428      "Test Simple is a simple unit test framework for Emacs Lisp.  It
4429 alleviates the need for context macros, enclosing specifications or required
4430 test tags.  It supports both interactive and non-interactive use.")
4431     (license license:gpl3+)))
4433 (define-public emacs-load-relative
4434   (package
4435     (name "emacs-load-relative")
4436     (version "1.3")
4437     (source
4438      (origin
4439        (method url-fetch)
4440        (uri (string-append "https://elpa.gnu.org/packages/load-relative-"
4441                            version ".el"))
4442        (sha256
4443         (base32
4444          "1hfxb2436jdsi9wfmsv47lkkpa5galjf5q81bqabbsv79rv59dps"))))
4445     (build-system emacs-build-system)
4446     (home-page "http://github.com/rocky/emacs-load-relative")
4447     (synopsis "Emacs Lisp relative file loading related functions")
4448     (description
4449      "Provides functions which facilitate writing multi-file Emacs packages
4450 and running from the source tree without having to \"install\" code or fiddle
4451 with @{load-path}.
4453 The main function, @code{load-relative}, loads an Emacs Lisp file relative to
4454 another (presumably currently running) Emacs Lisp file.")
4455     (license license:gpl3+)))
4457 (define-public emacs-loc-changes
4458   (package
4459     (name "emacs-loc-changes")
4460     (version "1.2")
4461     (source
4462      (origin
4463        (method url-fetch)
4464        (uri (string-append "https://elpa.gnu.org/packages/loc-changes-"
4465                            version ".el"))
4466        (sha256
4467         (base32
4468          "1x8fn8vqasayf1rb8a6nma9n6nbvkx60krmiahyb05vl5rrsw6r3"))))
4469     (build-system emacs-build-system)
4470     (home-page "https://github.com/rocky/emacs-loc-changes")
4471     (synopsis "Keeps track of positions even after buffer changes")
4472     (description
4473      "This Emacs package provides a mean to track important buffer positions
4474 after buffer changes.")
4475     (license license:gpl3+)))
4477 (define-public emacs-realgud
4478   (package
4479     (name "emacs-realgud")
4480     (version "1.5.0")
4481     (source
4482      (origin
4483        (method git-fetch)
4484        (uri (git-reference
4485              (url "https://github.com/realgud/realgud/")
4486              (commit version)))
4487        (sha256
4488         (base32
4489          "0xnick9016wxrgi8v0lycvxhyz8l2k4nfvdpjc5yq476vwrjfzbz"))
4490        (file-name (git-file-name name version))))
4491     (build-system emacs-build-system)
4492     (arguments
4493      `(#:tests? #t
4494        #:phases
4495        (modify-phases %standard-phases
4496          (add-after 'set-emacs-load-path 'fix-autogen-script
4497            (lambda _
4498              (substitute* "autogen.sh"
4499                (("./configure") "sh configure"))))
4500          (add-after 'fix-autogen-script 'autogen
4501            (lambda _
4502              (setenv "CONFIG_SHELL" "sh")
4503              (invoke "sh" "autogen.sh")))
4504          (add-after 'fix-autogen-script 'set-home
4505            (lambda _
4506              (setenv "HOME" (getenv "TMPDIR"))))
4507          (add-before 'patch-el-files 'remove-realgud-pkg.el
4508            (lambda _
4509              ;; FIXME: `patch-el-files' crashes on this file with error:
4510              ;; unable to locate "bashdb".
4511              (delete-file "./test/test-regexp-bashdb.el"))))
4512        #:include (cons* ".*\\.el$" %default-include)))
4513     (native-inputs
4514      `(("autoconf" ,autoconf)
4515        ("automake" ,automake)
4516        ("emacs-test-simple" ,emacs-test-simple)))
4517     (propagated-inputs
4518      `(("emacs-load-relative" ,emacs-load-relative)
4519        ("emacs-loc-changes" ,emacs-loc-changes)))
4520     (home-page "https://github.com/realgud/realgud/")
4521     (synopsis
4522      "Modular front-end for interacting with external debuggers")
4523     (description
4524      "RealGUD is a modular, extensible GNU Emacs front-end for interacting
4525 with external debuggers.  It integrates various debuggers such as gdb, pdb,
4526 ipdb, jdb, lldb, bashdb, zshdb, etc. and allows to visually step code in the
4527 sources.  Unlike GUD, it also supports running multiple debug sessions in
4528 parallel.")
4529     (license license:gpl3+)))
4531 (define-public emacs-request
4532   (package
4533     (name "emacs-request")
4534     (version "0.3.1")
4535     (source (origin
4536               (method git-fetch)
4537               (uri (git-reference
4538                     (url "https://github.com/tkf/emacs-request.git")
4539                     (commit (string-append "v" version))))
4540               (file-name (git-file-name name version))
4541               (sha256
4542                (base32
4543                 "0fhhd349l4iqkrjxqzpckfk2w45x2g4cccpm1dqzv9m49md1wphx"))))
4544     (build-system emacs-build-system)
4545     (propagated-inputs
4546      `(("emacs-deferred" ,emacs-deferred)))
4547     (home-page "https://github.com/tkf/emacs-request")
4548     (synopsis "Package for speaking HTTP in Emacs Lisp")
4549     (description "This package provides a HTTP request library with multiple
4550 backends.  It supports url.el which is shipped with Emacs and the curl command
4551 line program.")
4552     (license license:gpl3+)))
4554 (define-public emacs-rudel
4555   (package
4556     (name "emacs-rudel")
4557     (version "0.3.1")
4558     (source
4559      (origin
4560        (method url-fetch)
4561        (uri (string-append "http://elpa.gnu.org/packages/rudel-"
4562                            version ".tar"))
4563        (sha256
4564         (base32
4565          "0glqa68g509p0s2vcc0i8kzlddnc9brd9jqhnm5rzxz4i050cvnz"))))
4566     (build-system emacs-build-system)
4567     (home-page "http://rudel.sourceforge.net/")
4568     (synopsis "Collaborative editing framework")
4569     (description
4570      "Rudel is a collaborative editing environment for GNU Emacs.  Its purpose
4571 is to share buffers with other users in order to edit the contents of those
4572 buffers collaboratively.  Rudel supports multiple backends to enable
4573 communication with other collaborative editors using different protocols,
4574 though currently Obby (for use with the Gobby editor) is the only
4575 fully-functional one.")
4576     (license license:gpl3+)))
4578 (define-public emacs-hydra
4579   (package
4580     (name "emacs-hydra")
4581     (version "0.15.0")
4582     (source
4583      (origin
4584        (method git-fetch)
4585        (uri (git-reference
4586               (url "https://github.com/abo-abo/hydra")
4587               (commit version)))
4588        (file-name (git-file-name name version))
4589        (sha256
4590         (base32
4591          "0fapvhmhgc9kppf3bvkgry0cd7gyilg7sfvlscfrfjxpx4xvwsfy"))))
4592     (build-system emacs-build-system)
4593     (home-page "https://github.com/abo-abo/hydra")
4594     (synopsis "Make Emacs bindings that stick around")
4595     (description
4596      "This package can be used to tie related commands into a family of short
4597 bindings with a common prefix---a Hydra.  Once you summon the Hydra (through
4598 the prefixed binding), all the heads can be called in succession with only a
4599 short extension.  Any binding that isn't the Hydra's head vanquishes the
4600 Hydra.  Note that the final binding, besides vanquishing the Hydra, will still
4601 serve its original purpose, calling the command assigned to it.  This makes
4602 the Hydra very seamless; it's like a minor mode that disables itself
4603 automatically.")
4604     (license license:gpl3+)))
4606 (define-public emacs-ivy
4607   (package
4608     (name "emacs-ivy")
4609     (version "0.12.0")
4610     (source
4611      (origin
4612        (method git-fetch)
4613        (uri (git-reference
4614              (url "https://github.com/abo-abo/swiper.git")
4615              (commit version)))
4616        (file-name (git-file-name name version))
4617        (sha256
4618         (base32
4619          "0xgngn3jhmyn6mlkk9kmgfgh0w5i50b27syr4cgfgarg6p77j05w"))))
4620     (build-system emacs-build-system)
4621     (arguments
4622      `(#:phases
4623        (modify-phases %standard-phases
4624          (add-after 'install 'install-doc
4625            (lambda* (#:key outputs #:allow-other-keys)
4626              (let* ((out (assoc-ref outputs "out"))
4627                     (info (string-append out "/share/info")))
4628                (with-directory-excursion "doc"
4629                  (invoke "makeinfo" "ivy.texi")
4630                  (install-file "ivy.info" info)
4631                  #t)))))))
4632     (propagated-inputs
4633      `(("emacs-hydra" ,emacs-hydra)))
4634     (native-inputs
4635      `(("texinfo" ,texinfo)))
4636     (home-page "http://oremacs.com/swiper/")
4637     (synopsis "Incremental vertical completion for Emacs")
4638     (description
4639      "This package provides @code{ivy-read} as an alternative to
4640 @code{completing-read} and similar functions.  No attempt is made to determine
4641 the best candidate.  Instead, the user can navigate candidates with
4642 @code{ivy-next-line} and @code{ivy-previous-line}.  The matching is done by
4643 splitting the input text by spaces and re-building it into a regular
4644 expression.")
4645     (license license:gpl3+)))
4647 (define-public emacs-ivy-pass
4648   (let ((commit "5b523de1151f2109fdd6a8114d0af12eef83d3c5")
4649         (revision "1"))
4650     (package
4651       (name "emacs-ivy-pass")
4652       (version (git-version "0.1" revision commit))
4653       (source
4654        (origin
4655          (method git-fetch)
4656          (uri (git-reference
4657                (url "https://github.com/ecraven/ivy-pass.git")
4658                (commit commit)))
4659          (file-name (git-file-name name version))
4660          (sha256
4661           (base32
4662            "18crb4zh2pjf0cmv3b913m9vfng27girjwfqc3mk7vqd1r5a49yk"))))
4663       (build-system emacs-build-system)
4664       (propagated-inputs
4665        `(("emacs-ivy" ,emacs-ivy)
4666          ("emacs-password-store" ,emacs-password-store)
4667          ("password-store" ,password-store)))
4668       (home-page "https://github.com/ecraven/ivy-pass")
4669       (synopsis "Ivy interface for password store (pass)")
4670       (description "This package provides an Ivy interface for working with
4671 the password store @code{pass}.")
4672       (license license:gpl3))))
4674 (define-public emacs-ivy-yasnippet
4675   (let ((commit "32580b4fd23ebf9ca7dde96704f7d53df6e253cd")
4676         (revision "2"))
4677     (package
4678       (name "emacs-ivy-yasnippet")
4679       (version (git-version "0.1" revision commit))
4680       (source
4681        (origin
4682          (method git-fetch)
4683          (uri (git-reference
4684                (url "https://github.com/mkcms/ivy-yasnippet.git")
4685                (commit commit)))
4686          (file-name (git-file-name name version))
4687          (sha256
4688           (base32
4689            "1wfg6mmd5gl1qgvayyzpxlkh9s7jgn20y8l1vh1zbj1czvv51xp8"))))
4690       (build-system emacs-build-system)
4691       (propagated-inputs
4692        `(("emacs-ivy" ,emacs-ivy)
4693          ("emacs-yasnippet" ,emacs-yasnippet)
4694          ("emacs-dash" ,emacs-dash)))
4695       (home-page "https://github.com/mkcms/ivy-yasnippet")
4696       (synopsis "Preview @code{yasnippets} with @code{ivy}")
4697       (description "This package allows you to select @code{yasnippet}
4698 snippets using @code{ivy} completion.  When current selection changes in the
4699 minibuffer, the snippet contents are temporarily expanded in the buffer.  To
4700 use it, call @code{M-x ivy-yasnippet} (but make sure you have enabled
4701 @code{yas-minor-mode} first).")
4702       (license license:gpl3+))))
4704 (define-public emacs-ivy-rich
4705   ;; The latest release version has a small mistake that has since been fixed,
4706   ;; so we use a more recent commit.
4707   (let ((commit "f6bfa293c6df0b43cc411876b665816ec3f03d08")
4708         (version "0.1.4")
4709         (revision "1"))
4710     (package
4711       (name "emacs-ivy-rich")
4712       (version (git-version version revision commit))
4713       (source
4714        (origin
4715          (method git-fetch)
4716          (uri (git-reference
4717                (url "https://github.com/Yevgnen/ivy-rich.git")
4718                (commit commit)))
4719          (file-name (git-file-name name version))
4720          (sha256
4721           (base32 "1s8nwwb1z6lkc58g02pi8w99qms948k8d02lw8k8cq47dw87i219"))))
4722       (build-system emacs-build-system)
4723       (propagated-inputs
4724        `(("emacs-ivy" ,emacs-ivy)))
4725       (home-page "https://github.com/Yevgnen/ivy-rich")
4726       (synopsis "More friendly interface for @code{ivy}")
4727       (description
4728        "This package extends @code{ivy} by showing more information in the
4729 minibuffer for each candidate.  It adds columns showing buffer modes, file
4730 sizes, docstrings, etc.  If @code{emacs-all-the-icons} is installed, it can
4731 show icons as well.")
4732       (license license:gpl3+))))
4734 (define-public emacs-avy
4735   (package
4736     (name "emacs-avy")
4737     (version "0.5.0")
4738     (source
4739      (origin
4740        (method git-fetch)
4741        (uri (git-reference
4742              (url "https://github.com/abo-abo/avy.git")
4743              (commit version)))
4744        (file-name (git-file-name name version))
4745        (sha256
4746         (base32 "09qdni1s74i5pv8741szl5g4ynj8fxn0x65qmwa9rmfkbimnc0fs"))))
4747     (build-system emacs-build-system)
4748     (home-page "https://github.com/abo-abo/avy")
4749     (synopsis "Tree-based completion for Emacs")
4750     (description
4751      "This package provides a generic completion method based on building a
4752 balanced decision tree with each candidate being a leaf.  To traverse the tree
4753 from the root to a desired leaf, typically a sequence of @code{read-key} can
4754 be used.
4756 In order for @code{read-key} to make sense, the tree needs to be visualized
4757 appropriately, with a character at each branch node.  So this completion
4758 method works only for things that you can see on your screen, all at once,
4759 such as the positions of characters, words, line beginnings, links, or
4760 windows.")
4761     (license license:gpl3+)))
4763 (define-public emacs-ace-window
4764   (package
4765     (name "emacs-ace-window")
4766     (version "0.9.0")
4767     (source
4768      (origin
4769        (method git-fetch)
4770        (uri (git-reference
4771              (url "https://github.com/abo-abo/ace-window.git")
4772              (commit version)))
4773        (file-name (git-file-name name version))
4774        (sha256
4775         (base32 "07mcdzjmgrqdvjs94f2n5bkrf5vrq2fwzz256wbm3wzqxqkfy1q6"))))
4776     (build-system emacs-build-system)
4777     (propagated-inputs
4778      `(("emacs-avy" ,emacs-avy)))
4779     (home-page "https://github.com/abo-abo/ace-window")
4780     (synopsis "Quickly switch windows in Emacs")
4781     (description
4782      "@code{ace-window} is meant to replace @code{other-window}.
4783 In fact, when there are only two windows present, @code{other-window} is
4784 called.  If there are more, each window will have its first character
4785 highlighted.  Pressing that character will switch to that window.")
4786     (license license:gpl3+)))
4788 (define-public emacs-iedit
4789   (package
4790     (name "emacs-iedit")
4791     (version "0.9.9.9")
4792     (source
4793      (origin
4794        (method git-fetch)
4795        (uri (git-reference
4796              (url "https://github.com/victorhge/iedit.git")
4797              (commit (string-append "v" version))))
4798        (file-name (git-file-name name version))
4799        (sha256
4800         (base32 "1pwkrm98vlpzsy5iwwfksdaz3zzyi7bvdf5fglhsn4ssf47p787g"))))
4801     (build-system emacs-build-system)
4802     (home-page "http://www.emacswiki.org/emacs/Iedit")
4803     (synopsis "Edit multiple regions in the same way simultaneously")
4804     (description
4805      "This package is an Emacs minor mode and allows you to edit one
4806 occurrence of some text in a buffer (possibly narrowed) or region, and
4807 simultaneously have other occurrences edited in the same way.
4809 You can also use Iedit mode as a quick way to temporarily show only the buffer
4810 lines that match the current text being edited.  This gives you the effect of
4811 a temporary @code{keep-lines} or @code{occur}.")
4812     (license license:gpl3+)))
4814 (define-public emacs-zoutline
4815   (package
4816     (name "emacs-zoutline")
4817     (version "0.2.0")
4818     (source
4819      (origin
4820        (method git-fetch)
4821        (uri (git-reference
4822              (url "https://github.com/abo-abo/zoutline")
4823              (commit version)))
4824        (sha256
4825         (base32
4826          "1w0zh6vs7klgivq5r030a82mcfg1zwic4x3fimyiqyg5n8p67hyx"))
4827        (file-name (git-file-name name version))))
4828     (build-system emacs-build-system)
4829     (home-page "https://github.com/abo-abo/zoutline")
4830     (synopsis "Simple outline library")
4831     (description
4832      "This library provides helpers for outlines.  Outlines allow users to
4833 navigate code in a tree-like fashion.")
4834     (license license:gpl3+)))
4836 (define-public emacs-lispy
4837   (package
4838     (name "emacs-lispy")
4839     (version "0.27.0")
4840     (home-page "https://github.com/abo-abo/lispy")
4841     (source (origin
4842               (method git-fetch)
4843               (uri (git-reference
4844                     (url "https://github.com/abo-abo/lispy")
4845                     (commit version)))
4846               (sha256
4847                (base32
4848                 "1cm7f4pyl73f3vhkb7ah6bbbrj2sa7n0p31g09k7dy4zgx04bgw6"))
4849               (file-name (git-file-name name version))))
4850     (build-system emacs-build-system)
4851     (propagated-inputs
4852      `(("emacs-ace-window" ,emacs-ace-window)
4853        ("emacs-iedit" ,emacs-iedit)
4854        ("emacs-ivy" ,emacs-ivy)
4855        ("emacs-hydra" ,emacs-hydra)
4856        ("emacs-zoutline" ,emacs-zoutline)))
4857     (synopsis "Modal S-expression editing")
4858     (description
4859      "Due to the structure of Lisp syntax it's very rare for the programmer
4860 to want to insert characters right before \"(\" or right after \")\".  Thus
4861 unprefixed printable characters can be used to call commands when the point is
4862 at one of these special locations.  Lispy provides unprefixed keybindings for
4863 S-expression editing when point is at the beginning or end of an
4864 S-expression.")
4865     (license license:gpl3+)))
4867 (define-public emacs-lispyville
4868   (let ((commit "d28b937f0cabd8ce61e2020fe9a733ca80d82c74")
4869         (revision "1"))
4870     (package
4871       (name "emacs-lispyville")
4872       (version (git-version "0.1" revision commit))
4873       (home-page "https://github.com/noctuid/lispyville")
4874       (source (origin
4875                 (method git-fetch)
4876                 (uri (git-reference (url home-page) (commit commit)))
4877                 (sha256
4878                  (base32
4879                   "0f6srwj1qqkfkbmp5n5pjvi6gm7b7xav05p5hrs2i83rjrakzzqx"))
4880                 (file-name (git-file-name name version))))
4881       (propagated-inputs
4882        `(("emacs-evil" ,emacs-evil)
4883          ("emacs-lispy" ,emacs-lispy)))
4884       (build-system emacs-build-system)
4885       (synopsis "Minor mode for integrating Evil with lispy")
4886       (description
4887        "LispyVille's main purpose is to provide a Lisp editing environment
4888 suited towards Evil users.  It can serve as a minimal layer on top of lispy
4889 for better integration with Evil, but it does not require the use of lispy’s
4890 keybinding style.  The provided commands allow for editing Lisp in normal
4891 state and will work even without lispy being enabled.")
4892       (license license:gpl3+))))
4894 (define-public emacs-lpy
4895   (let ((commit "553d28f7b6523ae5d44d34852ab770b871b0b0ad")
4896         (version "0.1.0")
4897         (revision "1"))
4898     (package
4899       (name "emacs-lpy")
4900       (version (git-version version revision commit))
4901       (source
4902        (origin
4903          (method git-fetch)
4904          (uri (git-reference
4905                (url "https://github.com/abo-abo/lpy")
4906                (commit commit)))
4907          (sha256
4908           (base32
4909            "0kl9b3gga18cwv5cq4db8i6b7waj6mp3h2l7qjnp7wq6dpvwhn0i"))
4910          (file-name (git-file-name name version))))
4911       (propagated-inputs
4912        `(("emacs-zoutline" ,emacs-zoutline)
4913          ("emacs-lispy" ,emacs-lispy)))
4914       (build-system emacs-build-system)
4915       (home-page "https://github.com/abo-abo/lpy")
4916       (synopsis "Modal editing for Python")
4917       (description
4918        "This package provides a minor mode for Python that binds useful
4919 commands to unprefixed keys, such as @code{j} or @code{e}, under certain
4920 circumstances, and leaves the keys untouched outside of those situations,
4921 allowing unprefixed keys to insert their respective characters as expected.")
4922       (license license:gpl3+))))
4924 (define-public emacs-clojure-mode
4925   (package
4926     (name "emacs-clojure-mode")
4927     (version "5.6.1")
4928     (source
4929      (origin
4930        (method git-fetch)
4931        (uri (git-reference
4932              (url "https://github.com/clojure-emacs/clojure-mode.git")
4933              (commit version)))
4934        (file-name (git-file-name name version))
4935        (sha256
4936         (base32 "1qadymqzs5fn1sb347xzfw8lqq6s85vvkh4kzm35m61g5i2lm86y"))))
4937     (build-system emacs-build-system)
4938     (native-inputs
4939      `(("emacs-dash" ,emacs-dash)
4940        ("emacs-s" ,emacs-s)
4941        ("ert-runner" ,emacs-ert-runner)))
4942     (arguments
4943      `(#:tests? #t
4944        #:test-command '("ert-runner")))
4945     (home-page "https://github.com/clojure-emacs/clojure-mode")
4946     (synopsis "Major mode for Clojure code")
4947     (description
4948      "This Emacs package provides font-lock, indentation, navigation and basic
4949 refactoring for the @uref{http://clojure.org, Clojure programming language}.
4950 It is recommended to use @code{clojure-mode} with paredit or smartparens.")
4951     (license license:gpl3+)))
4953 (define-public emacs-epl
4954   (package
4955     (name "emacs-epl")
4956     (version "0.8")
4957     (source
4958      (origin
4959        (method git-fetch)
4960        (uri (git-reference
4961              (url "https://github.com/cask/epl.git")
4962              (commit version)))
4963        (file-name (git-file-name name version))
4964        (sha256
4965         (base32 "0sjxd5y5hxhrbgfkpwx6m724r3841b53hgc61a0g5zwispw5pmrr"))))
4966     (build-system emacs-build-system)
4967     (home-page "https://github.com/cask/epl")
4968     (synopsis "Emacs Package Library")
4969     (description
4970      "A package management library for Emacs, based on @code{package.el}.
4972 The purpose of this library is to wrap all the quirks and hassle of
4973 @code{package.el} into a sane API.")
4974     (license license:gpl3+)))
4976 (define-public emacs-counsel-projectile
4977   (package
4978     (name "emacs-counsel-projectile")
4979     (version "0.3.0")
4980     (source (origin
4981               (method git-fetch)
4982               (uri (git-reference
4983                     (url "https://github.com/ericdanan/counsel-projectile")
4984                     (commit version)))
4985               (file-name (git-file-name name version))
4986               (sha256
4987                (base32
4988                 "1inc4ndl0ysfwvxk4avbgpj4qi9rc93da6476a5c81xmwpsv8wmq"))))
4989     (build-system emacs-build-system)
4990     (propagated-inputs
4991      `(("emacs-ivy" ,emacs-ivy)
4992        ("emacs-projectile" ,emacs-projectile)))
4993     (home-page "https://github.com/ericdanan/counsel-projectile")
4994     (synopsis "Enhance Projectile with Ivy")
4995     (description
4996      "This package uses Ivy to provide additional actions for Projectile
4997 commands and replacements for existing functions.")
4998     (license license:gpl3+)))
5000 (define-public emacs-queue
5001   (package
5002     (name "emacs-queue")
5003     (version "0.2")
5004     (source (origin
5005               (method url-fetch)
5006               (uri (string-append "https://elpa.gnu.org/packages/queue-"
5007                                   version ".el"))
5008               (sha256
5009                (base32
5010                 "0cx2848sqnnkkr4zisvqadzxngjyhmb36mh0q3if7q19yjjhmrkb"))))
5011     (build-system emacs-build-system)
5012     (home-page "http://www.dr-qubit.org/tags/computing-code-emacs.html")
5013     (synopsis "Queue data structure for Emacs")
5014     (description
5015      "This Emacs library provides queue data structure.  These queues can be
5016 used both as a first-in last-out (FILO) and as a first-in first-out (FIFO)
5017 stack, i.e. elements can be added to the front or back of the queue, and can
5018 be removed from the front.  This type of data structure is sometimes called an
5019 \"output-restricted deque\".")
5020     (license license:gpl3+)))
5022 (define-public emacs-pkg-info
5023   (package
5024     (name "emacs-pkg-info")
5025     (version "0.6")
5026     (source
5027      (origin
5028        (method git-fetch)
5029        (uri (git-reference
5030              (url "https://github.com/lunaryorn/pkg-info.el.git")
5031              (commit version)))
5032        (file-name (git-file-name name version))
5033        (sha256
5034         (base32 "0nk12dcppdyhav6m6yf7abpywyd7amxd4237zsfd32w4zxsx39k1"))))
5035     (build-system emacs-build-system)
5036     (propagated-inputs `(("emacs-epl" ,emacs-epl)))
5037     (home-page "https://github.com/lunaryorn/pkg-info.el")
5038     (synopsis "Information about Emacs packages")
5039     (description
5040      "This library extracts information from the installed Emacs packages.")
5041     (license license:gpl3+)))
5043 (define-public emacs-spinner
5044   (package
5045     (name "emacs-spinner")
5046     (version "1.7.3")
5047     (source (origin
5048               (method url-fetch)
5049               (uri (string-append "https://elpa.gnu.org/packages/spinner-"
5050                                   version ".el"))
5051               (sha256
5052                (base32
5053                 "19kp1mmndbmw11sgvv2ggfjl4pyf5zrsbh3871f0965pw9z8vahd"))))
5054     (build-system emacs-build-system)
5055     (home-page "https://github.com/Malabarba/spinner.el")
5056     (synopsis "Emacs mode-line spinner for operations in progress")
5057     (description
5058      "This Emacs package adds spinners and progress-bars to the mode-line for
5059 ongoing operations.")
5060     (license license:gpl3+)))
5062 (define-public emacs-sparql-mode
5063   (package
5064     (name "emacs-sparql-mode")
5065     (version "2.0.1")
5066     (source
5067      (origin
5068        (method git-fetch)
5069        (uri (git-reference
5070              (url "https://github.com/ljos/sparql-mode.git")
5071              (commit (string-append "v" version))))
5072        (file-name (git-file-name name version))
5073        (sha256
5074         (base32 "0ywhqk6n5k0l85zjwbnrivnvxjzqipqrggv06lify6yv18qmyl6s"))))
5075     (build-system emacs-build-system)
5076     (home-page "https://github.com/ljos/sparql-mode")
5077     (synopsis "SPARQL mode for Emacs")
5078     (description "This package provides a major mode for Emacs that provides
5079 syntax highlighting for SPARQL.  It also provides a way to execute queries
5080 against a SPARQL HTTP endpoint, such as is provided by Fuseki.  It is also
5081 possible to query other endpoints like DBPedia.")
5082     (license license:gpl3+)))
5084 (define-public emacs-better-defaults
5085   (package
5086     (name "emacs-better-defaults")
5087     (version "0.1.3")
5088     (source
5089      (origin
5090        (method url-fetch)
5091        (uri (string-append "https://github.com/technomancy/better-defaults"
5092                            "/archive/" version ".tar.gz"))
5093        (file-name (string-append name "-" version ".tar.gz"))
5094        (sha256
5095         (base32
5096          "08fg4zslzlxbvyil5g4gwvwd22fh4zsgqprs5wh9hv1rgc6757m2"))))
5097     (build-system emacs-build-system)
5098     (home-page "https://github.com/technomancy/better-defaults")
5099     (synopsis "Better defaults for Emacs")
5100     (description
5101      "Better defaults attempts to address the most obvious deficiencies of the
5102 Emacs default configuration in uncontroversial ways that nearly everyone can
5103 agree upon.")
5104     (license license:gpl3+)))
5106 (define-public emacs-undohist-el
5107   (let ((commit "d2239a5f736724ceb9e3b6bcaa86f4064805cda0")
5108         (revision "1"))
5109     (package
5110       (name "emacs-undohist-el")
5111       (version (git-version "0" revision commit))
5112       (source
5113        (origin
5114          (method git-fetch)
5115          (uri (git-reference
5116                (url "https://github.com/m2ym/undohist-el")
5117                (commit commit)))
5118          (file-name (git-file-name name version))
5119          (sha256
5120           (base32
5121            "1c0daw246ky7b1x5b8h55x79pl1pjqk1k348l487bdd8zdj4w9wx"))
5122          (patches
5123           (search-patches "emacs-undohist-ignored.patch"))))
5124       (build-system emacs-build-system)
5125       (home-page "https://github.com/m2ym/undohist-el")
5126       (synopsis "Save undo history between sessions")
5127       (description "This package allows persistent use of undo history for
5128 individual file buffers.")
5129       (license license:gpl3+))))
5131 (define-public emacs-eprime
5132   (let ((commit "17a481af26496be91c07139a9bfc05cfe722506f"))
5133     (package
5134       (name "emacs-eprime")
5135       (version (string-append "20140513-" (string-take commit 7)))
5136       (source (origin
5137                 (method url-fetch)
5138                 (uri (string-append "https://raw.githubusercontent.com"
5139                                     "/AndrewHynes/eprime-mode/"
5140                                     commit "/eprime-mode.el"))
5141                 (file-name (string-append "eprime-" version ".el"))
5142                 (sha256
5143                  (base32
5144                   "0v68lggkyq7kbcr9zyi573m2g2x251xy3jadlaw8kx02l8krwq8d"))))
5145       (build-system emacs-build-system)
5146       (home-page "https://github.com/AndrewHynes/eprime-mode")
5147       (synopsis "E-prime checking mode for Emacs")
5148       (description "This package provides an E-prime checking mode for Emacs
5149 that highlights non-conforming text.  The subset of the English language called
5150 E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
5151       (license license:gpl3+))))
5153 (define-public emacs-julia-mode
5154   ;; XXX: Upstream version remained stuck at 0.3.  See
5155   ;; <https://github.com/JuliaEditorSupport/julia-emacs/issues/46>.
5156   (let ((commit "115d4dc8a07445301772da8376b232fa8c7168f4")
5157         (revision "1"))
5158     (package
5159       (name "emacs-julia-mode")
5160       (version (string-append "0.3-" revision "." (string-take commit 8)))
5161       (source
5162        (origin
5163          (method git-fetch)
5164          (uri (git-reference
5165                (url "https://github.com/JuliaEditorSupport/julia-emacs.git")
5166                (commit commit)))
5167          (file-name (git-file-name name version))
5168          (sha256
5169           (base32
5170            "1is4dcv6blslpzbjcg8l2jpxi8xj96q4cm0nxjxsyswpm8bw8ki0"))))
5171       (build-system emacs-build-system)
5172       (arguments
5173        `(#:tests? #t
5174          #:test-command '("emacs" "--batch"
5175                           "-l" "julia-mode-tests.el"
5176                           "-f" "ert-run-tests-batch-and-exit")))
5177       (home-page "https://github.com/JuliaEditorSupport/julia-emacs")
5178       (synopsis "Major mode for Julia")
5179       (description "This Emacs package provides a mode for the Julia
5180 programming language.")
5181       (license license:expat))))
5183 (define-public emacs-smex
5184   (package
5185     (name "emacs-smex")
5186     (version "3.0")
5187     (source (origin
5188               (method url-fetch)
5189               (uri (string-append "https://raw.githubusercontent.com"
5190                                   "/nonsequitur/smex/" version "/smex.el"))
5191               (file-name (string-append "smex-" version ".el"))
5192               (sha256
5193                (base32
5194                 "0ar310zx9k5y4i1vl2rawvi712xj9gx77160860jbs691p77cxqp"))))
5195     (build-system emacs-build-system)
5196     (home-page "https://github.com/nonsequitur/smex/")
5197     (synopsis "M-x interface with Ido-style fuzzy matching")
5198     (description
5199      "Smex is a M-x enhancement for Emacs.  Built on top of Ido, it provides a
5200 convenient interface to your recently and most frequently used commands.  And
5201 to all the other commands, too.")
5202     (license license:gpl3+)))
5204 (define-public emacs-js2-mode
5205   (package
5206     (name "emacs-js2-mode")
5207     (version "20190219")
5208     (source
5209      (origin
5210        (method git-fetch)
5211        (uri (git-reference
5212              (url "https://github.com/mooz/js2-mode.git")
5213              (commit version)))
5214        (file-name (git-file-name name version))
5215        (sha256
5216         (base32 "0766bbr4piia9vfr4ivd2gwi8dxah654adv6h28ylz4q8xmfzm1b"))))
5217     (build-system emacs-build-system)
5218     (home-page "https://github.com/mooz/js2-mode/")
5219     (synopsis "Improved JavaScript editing mode for Emacs")
5220     (description
5221      "Js2-mode provides a JavaScript major mode for Emacs that is more
5222 advanced than the built-in javascript-mode.  Features include accurate syntax
5223 highlighting using a recursive-descent parser, on-the-fly reporting of syntax
5224 errors and strict-mode warnings, smart line-wrapping within comments and
5225 strings, and code folding.")
5226     (license license:gpl3+)))
5228 (define-public emacs-nodejs-repl
5229   (package
5230     (name "emacs-nodejs-repl")
5231     (version "0.2.1")
5232     (source (origin
5233               (method git-fetch)
5234               (uri (git-reference
5235                     (url "https://github.com/abicky/nodejs-repl.el")
5236                     (commit version)))
5237               (file-name (git-file-name name version))
5238               (sha256
5239                (base32
5240                 "05ccv87rnw7fss3lib8m9sywjrj6n92fnd7mmhmjh27g2klqc83z"))))
5241     (build-system emacs-build-system)
5242     (home-page "https://github.com/abicky/nodejs-repl.el")
5243     (synopsis "Node.js REPL inside Emacs")
5244     (description
5245      "This program is derived from comint-mode and provides the following
5246 features:
5248 @itemize
5249 @item TAB completion same as Node.js REPL
5250 @item file name completion in string
5251 @item incremental history search
5252 @end itemize")
5253     (license license:gpl3+)))
5255 (define-public emacs-typescript-mode
5256   (package
5257     (name "emacs-typescript-mode")
5258     (version "0.3")
5259     (source (origin
5260               (method git-fetch)
5261               (uri (git-reference
5262                     (url "https://github.com/ananthakumaran/typescript.el")
5263                     (commit (string-append "v" version))))
5264               (file-name (git-file-name name version))
5265               (sha256
5266                (base32
5267                 "002f1xfhq43fjaqliwrgxspryfahpa82va5dw3p8kwil2xwvc6mh"))))
5268     (build-system emacs-build-system)
5269     (home-page "https://github.com/ananthakumaran/typescript.el")
5270     (synopsis "Emacs major mode for editing Typescript code")
5271     (description
5272      "This is based on Karl Landstrom's barebones @code{typescript-mode}.
5273 This is much more robust and works with @code{cc-mode}'s comment
5274 filling (mostly).  The modifications to the original @code{javascript.el} mode
5275 mainly consisted in replacing \"javascript\" with \"typescript\"
5277 The main features of this Typescript mode are syntactic highlighting (enabled
5278 with @code{font-lock-mode} or @code{global-font-lock-mode}), automatic
5279 indentation and filling of comments and C preprocessor fontification.")
5280     (license license:gpl3+)))
5282 (define-public emacs-tide
5283   (package
5284     (name "emacs-tide")
5285     (version "3.2.3")
5286     (source (origin
5287               (method git-fetch)
5288               (uri (git-reference
5289                     (url "https://github.com/ananthakumaran/tide")
5290                     (commit (string-append "v" version))))
5291               (file-name (git-file-name name version))
5292               (sha256
5293                (base32
5294                 "19kjq4kr2j853p5qp1s79zxmrfprli82lsnphbrlp9vbnib28xyd"))))
5295     (build-system emacs-build-system)
5296     (propagated-inputs
5297      `(("emacs-dash" ,emacs-dash)
5298        ("emacs-s" ,emacs-s)
5299        ("emacs-flycheck" ,emacs-flycheck)
5300        ("emacs-typescript-mode" ,emacs-typescript-mode)))
5301     (home-page "https://github.com/ananthakumaran/tide")
5302     (synopsis "Typescript IDE for Emacs")
5303     (description
5304      "Tide is an Interactive Development Environment (IDE) for Emacs which
5305 provides the following features:
5307 @itemize
5308 @item ElDoc
5309 @item Auto complete
5310 @item Flycheck
5311 @item Jump to definition, Jump to type definition
5312 @item Find occurrences
5313 @item Rename symbol
5314 @item Imenu
5315 @item Compile On Save
5316 @item Highlight Identifiers
5317 @item Code Fixes
5318 @item Code Refactor
5319 @item Organize Imports
5320 @end itemize")
5321     (license license:gpl3+)))
5323 (define-public emacs-markdown-mode
5324   (package
5325     (name "emacs-markdown-mode")
5326     (version "2.3")
5327     (source (origin
5328               (method url-fetch)
5329               (uri (string-append "https://raw.githubusercontent.com/jrblevin"
5330                                   "/markdown-mode/v" version
5331                                   "/markdown-mode.el"))
5332               (file-name (string-append "markdown-mode-" version ".el"))
5333               (sha256
5334                (base32
5335                 "152whyrq3dqlqy5wv4mdd94kmal19hs5kwaxjcp2gp2r97lsmdmi"))))
5336     (build-system emacs-build-system)
5337     (home-page "http://jblevins.org/projects/markdown-mode/")
5338     (synopsis "Emacs Major mode for Markdown files")
5339     (description
5340      "Markdown-mode is a major mode for editing Markdown-formatted text files
5341 in Emacs.")
5342     (license license:gpl3+)))
5344 (define-public emacs-edit-indirect
5345   (package
5346     (name "emacs-edit-indirect")
5347     (version "0.1.5")
5348     (source
5349      (origin
5350        (method git-fetch)
5351        (uri (git-reference
5352               (url "https://github.com/Fanael/edit-indirect")
5353               (commit version)))
5354        (file-name (git-file-name name version))
5355        (sha256
5356         (base32
5357          "0by1x53pji39fjrj5bd446kz831nv0vdgw2jqasbym4pc1p2947r"))))
5358     (build-system emacs-build-system)
5359     (home-page "https://github.com/Fanael/edit-indirect")
5360     (synopsis "Edit regions in separate buffers")
5361     (description "This package allows you to edit regions in separate buffers,
5362 like @code{org-edit-src-code} but for arbitrary regions.")
5363     (license license:gpl3+)))
5365 (define-public emacs-projectile
5366   (package
5367     (name "emacs-projectile")
5368     (version "2.0.0")
5369     (source (origin
5370               (method url-fetch)
5371               (uri (string-append "https://raw.githubusercontent.com/bbatsov"
5372                                   "/projectile/v" version "/projectile.el"))
5373               (file-name (string-append "projectile-" version ".el"))
5374               (sha256
5375                (base32
5376                 "149hablms6n9b4wp78dz4pjz1rzyylfw9ayghq5p9d7k661mvyby"))))
5377     (build-system emacs-build-system)
5378     (propagated-inputs
5379      `(("emacs-dash" ,emacs-dash)
5380        ("emacs-pkg-info" ,emacs-pkg-info)))
5381     (home-page "https://github.com/bbatsov/projectile")
5382     (synopsis "Manage and navigate projects in Emacs easily")
5383     (description
5384      "This library provides easy project management and navigation.  The
5385 concept of a project is pretty basic - just a folder containing special file.
5386 Currently git, mercurial and bazaar repos are considered projects by default.
5387 If you want to mark a folder manually as a project just create an empty
5388 .projectile file in it.")
5389     (license license:gpl3+)))
5391 (define-public emacs-elfeed
5392   (package
5393     (name "emacs-elfeed")
5394     (version "3.1.0")
5395     (source
5396      (origin
5397        (method git-fetch)
5398        (uri (git-reference
5399              (url "https://github.com/skeeto/elfeed.git")
5400              (commit version)))
5401        (file-name (git-file-name name version))
5402        (sha256
5403         (base32 "1bzpl6lc7kq9bph4bfz1fn19207blrnhjr2g7yinhn0nnnjmxi8i"))))
5404     (build-system emacs-build-system)
5405     (arguments
5406      `(#:tests? #t
5407        #:test-command '("make" "test")))
5408     (home-page "https://github.com/skeeto/elfeed")
5409     (synopsis "Atom/RSS feed reader for Emacs")
5410     (description
5411      "Elfeed is an extensible web feed reader for Emacs, supporting both Atom
5412 and RSS, with a user interface inspired by notmuch.")
5413     (license license:gpl3+)))
5415 (define-public emacs-elfeed-org
5416   (let ((commit "77b6bbf222487809813de260447d31c4c59902c9"))
5417     (package
5418       (name "emacs-elfeed-org")
5419       (version (git-version "0.1" "1" commit))
5420       (source
5421        (origin
5422          (method git-fetch)
5423          (uri (git-reference
5424                (url "https://github.com/remyhonig/elfeed-org.git")
5425                (commit commit)))
5426          (file-name (git-file-name name version))
5427          (sha256
5428           (base32 "0a2ibka82xq1dhy2z7rd2y9zhcj8rna8357881yz49wf55ccgm53"))))
5429       (build-system emacs-build-system)
5430       (propagated-inputs
5431        `(("emacs-elfeed" ,emacs-elfeed)
5432          ("emacs-org" ,emacs-org)
5433          ("emacs-dash" ,emacs-dash)
5434          ("emacs-s" ,emacs-s)))
5435       (native-inputs
5436        `(("ert-runner" ,emacs-ert-runner)
5437          ("emacs-xtest" ,emacs-xtest)))
5438       (arguments
5439        `(#:tests? #t
5440          #:test-command '("ert-runner" "-L" "org-mode/lisp")
5441          #:phases
5442          (modify-phases %standard-phases
5443            (add-before 'check 'chmod
5444              (lambda _
5445                (chmod "test/fixture-mark-feed-ignore.org" #o644)
5446                #t)))))
5447       (home-page "https://github.com/remyhonig/elfeed-org")
5448       (synopsis "Configure Elfeed with an Org-mode file")
5449       (description
5450        "@code{elfeed-org} lets you manage your Elfeed subscriptions
5451 in Org-mode.  Maintaining tags for all RSS feeds is cumbersome using
5452 the regular flat list, where there is no hierarchy and tag names are
5453 duplicated a lot.  Org-mode makes the book keeping of tags and feeds
5454 much easier.")
5455       (license license:gpl3+))))
5457 (define-public emacs-el-x
5458   (package
5459     (name "emacs-el-x")
5460     (version "0.3.1")
5461     (source (origin
5462               (method git-fetch)
5463               (uri (git-reference
5464                     (url "https://github.com/sigma/el-x.git")
5465                     (commit (string-append "v" version))))
5466               (file-name (git-file-name name version))
5467               (sha256
5468                (base32
5469                 "1i6j44ssxm1xdg0mf91nh1lnprwsaxsx8vsrf720nan7mfr283h5"))))
5470     (build-system emacs-build-system)
5471     (arguments
5472      `(#:phases
5473        (modify-phases %standard-phases
5474          ;; Move the source files to the top level, which is included in
5475          ;; the EMACSLOADPATH.
5476          (add-after 'unpack 'move-source-files
5477            (lambda _
5478              (let ((el-files (find-files "./lisp" ".*\\.el$")))
5479                (for-each (lambda (f)
5480                            (rename-file f (basename f)))
5481                          el-files))
5482              #t)))))
5483     (home-page "https://github.com/sigma/el-x")
5484     (synopsis "Emacs Lisp extensions")
5485     (description "command@{emacs-el-x} defines the @code{dflet} macro to
5486 provide the historic behavior of @code{flet}, as well as
5487 @code{declare-function} stub for older Emacs.")
5488     (license license:gpl2+)))
5490 (define-public emacs-mocker
5491   (package
5492     (name "emacs-mocker")
5493     (version "0.3.1")
5494     (source (origin
5495               (method git-fetch)
5496               (uri (git-reference
5497                     (url "https://github.com/sigma/mocker.el.git")
5498                     (commit (string-append "v" version))))
5499               (file-name (git-file-name name version))
5500               (sha256
5501                (base32
5502                 "1lav7am41v63xgavq8pr88y828jmd1cxd4prjq7jlbxm6nvrwxh2"))))
5503     (build-system emacs-build-system)
5504     (arguments
5505      `(#:tests? #t
5506        #:test-command '("ert-runner")))
5507     (native-inputs
5508      `(("ert-runner" ,emacs-ert-runner)))
5509     (propagated-inputs
5510      `(("emacs-el-x" ,emacs-el-x)))
5511     (home-page "https://github.com/sigma/mocker.el")
5512     (synopsis "Mocking framework for Emacs Lisp")
5513     (description "Mocker.el is a framework for writing tests in Emacs Lisp.
5514 It uses regular Lisp rather than a domain specific language (DSL), which
5515 maximizes flexibility (at the expense of conciseness).")
5516     (license license:gpl2+)))
5518 (define-public emacs-find-file-in-project
5519   (package
5520     (name "emacs-find-file-in-project")
5521     (version "5.4.7")
5522     (source (origin
5523               (method git-fetch)
5524               (uri (git-reference
5525                     (url "https://github.com/technomancy/find-file-in-project.git")
5526                     (commit version)))
5527               (file-name (git-file-name name version))
5528               (sha256
5529                (base32
5530                 "1sdnyqv69mipbgs9yax88m9b6crsa59rjhwrih197pifl4089awr"))))
5531     (build-system emacs-build-system)
5532     (arguments
5533      `(#:phases
5534        (modify-phases %standard-phases
5535          (add-before 'check 'set-shell
5536            ;; Otherwise Emacs shell-file-name is set to "/bin/sh", which doesn't
5537            ;; work.
5538            (lambda _
5539              (setenv "SHELL" (which "sh"))
5540              #t)))
5541        #:tests? #t
5542        #:test-command '("./tests/test.sh")))
5543     (home-page "https://github.com/technomancy/find-file-in-project")
5544     (synopsis "File/directory finder for Emacs")
5545     (description "@code{find-file-in-project} allows to find files or
5546 directories quickly in the current project.  The project root is detected
5547 automatically when Git, Subversion or Mercurial are used.  It also provides
5548 functions to assist in reviewing changes on files.")
5549     (license license:gpl3+)))
5551 (define-public emacs-pyvenv
5552   (package
5553     (name "emacs-pyvenv")
5554     (version "1.20")
5555     (source (origin
5556               (method git-fetch)
5557               (uri (git-reference
5558                     (url "https://github.com/jorgenschaefer/pyvenv.git")
5559                     (commit (string-append "v" version))))
5560               (file-name (git-file-name name version))
5561               (sha256
5562                (base32
5563                 "1x052fsavb94x3scpqd6n9spqgzaahzbdxhg4qa5sy6hqsabn6zh"))))
5564     (build-system emacs-build-system)
5565     (arguments
5566      `(#:phases
5567        (modify-phases %standard-phases
5568          ;; This phase incorrectly attempts to substitute "activate" and fails
5569          ;; doing so.
5570          (delete 'patch-el-files))
5571        #:tests? #t
5572        #:test-command '("ert-runner")))
5573     (native-inputs
5574      `(("ert-runner" ,emacs-ert-runner)
5575        ("emacs-mocker" ,emacs-mocker)))
5576     (home-page "https://github.com/jorgenschaefer/pyvenv")
5577     (synopsis "Python virtual environment interface for Emacs")
5578     (description "pyvenv.el is a minor mode to support using Python virtual
5579 environments (virtualenv) inside Emacs.")
5580     (license license:gpl3+)))
5582 (define-public emacs-highlight-indentation
5583   (package
5584     (name "emacs-highlight-indentation")
5585     (version "0.7.0")
5586     (source (origin
5587               (method git-fetch)
5588               (uri (git-reference
5589                     (url "https://github.com/antonj/Highlight-Indentation-for-Emacs.git")
5590                     (commit (string-append "v" version))))
5591               (file-name (git-file-name name version))
5592               (sha256
5593                (base32
5594                 "00l54k75qk24a0znzl4ij3s3nrnr2wy9ha3za8apphzlm98m907k"))))
5595     (build-system emacs-build-system)
5596     (home-page "https://github.com/antonj/Highlight-Indentation-for-Emacs/")
5597     (synopsis "Highlighting indentation for Emacs")
5598     (description "Provides two minor modes to highlight indentation guides in Emacs:
5599 @enumerate
5600 @item @code{highlight-indentation-mode}, which displays guidelines
5601 indentation (space indentation only).
5602 @item @code{highlight-indentation-current-column-mode}, which displays guidelines for the current-point indentation (space indentation only).
5603 @end enumerate")
5604     (license license:gpl2+)))
5606 (define-public emacs-elpy
5607   (package
5608     (name "emacs-elpy")
5609     (version "1.28.0")
5610     (source (origin
5611               (method git-fetch)
5612               (uri (git-reference
5613                     (url "https://github.com/jorgenschaefer/elpy.git")
5614                     (commit version)))
5615               (file-name (git-file-name name version))
5616               (sha256
5617                (base32
5618                 "073bwxwjzcbmvpcz9q2xjwzx9x7hkvjni6fwvikh6yawzjp56jis"))))
5619     (build-system emacs-build-system)
5620     (arguments
5621      `(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include)
5622        #:phases
5623        ;; TODO: Make `elpy-config' display Guix commands :)
5624        (modify-phases %standard-phases
5625          ;; One elpy test depends on being run inside a Python virtual
5626          ;; environment to pass. We have nothing to gain from doing so here,
5627          ;; so we just trick Elpy into thinking we are (see:
5628          ;; https://github.com/jorgenschaefer/elpy/pull/1293).
5629          (add-before 'check 'fake-virtualenv
5630            (lambda _
5631              (setenv "VIRTUAL_ENV" "/tmp")
5632              #t))
5633          (add-before 'check 'build-doc
5634            (lambda _
5635              (with-directory-excursion "docs"
5636                (invoke "make" "info" "man"))
5637              ;; Move .info file at the root so that it can installed by the
5638              ;; 'move-doc phase.
5639              (rename-file "docs/_build/texinfo/Elpy.info" "Elpy.info")
5640               #t))
5641          (add-after 'build-doc 'install-manpage
5642            (lambda* (#:key outputs #:allow-other-keys)
5643              (let* ((out  (assoc-ref outputs "out"))
5644                     (man1 (string-append out "/share/man/man1")))
5645                (mkdir-p man1)
5646                (copy-file "docs/_build/man/elpy.1"
5647                           (string-append man1 "/elpy.1")))
5648              #t)))
5649        #:tests? #t
5650        #:test-command '("ert-runner")))
5651     (propagated-inputs
5652      `(("emacs-company" ,emacs-company)
5653        ("emacs-find-file-in-project" ,emacs-find-file-in-project)
5654        ("emacs-highlight-indentation" ,emacs-highlight-indentation)
5655        ("emacs-yasnippet" ,emacs-yasnippet)
5656        ("pyvenv" ,emacs-pyvenv)
5657        ("s" ,emacs-s)))
5658     (native-inputs
5659      `(("ert-runner" ,emacs-ert-runner)
5660        ("emacs-f" ,emacs-f)
5661        ("python" ,python-wrapper)
5662        ("python-autopep8" ,python-autopep8)
5663        ("python-black" ,python-black)
5664        ("python-flake8" ,python-flake8)
5665        ("python-jedi" ,python-jedi)
5666        ("python-yapf" ,python-yapf)
5667        ;; For documentation.
5668        ("python-sphinx" ,python-sphinx)
5669        ("texinfo" ,texinfo)))
5670     (home-page "https://github.com/jorgenschaefer/elpy")
5671     (synopsis "Python development environment for Emacs")
5672     (description "Elpy brings powerful Python editing to Emacs.  It combines
5673 and configures a number of other packages written in Emacs Lisp as well as
5674 Python, together offering features such as navigation, documentation,
5675 completion, interactive development and more.")
5676     (license license:gpl3+)))
5678 (define-public emacs-rainbow-delimiters
5679   (package
5680     (name "emacs-rainbow-delimiters")
5681     (version "2.1.3")
5682     (source (origin
5683               (method url-fetch)
5684               (uri (string-append "https://raw.githubusercontent.com/Fanael"
5685                                   "/rainbow-delimiters/" version
5686                                   "/rainbow-delimiters.el"))
5687               (file-name (string-append "rainbow-delimiters-" version ".el"))
5688               (sha256
5689                (base32
5690                 "1b3kampwsjabhcqdp0khgff13wc5jqhy3rbvaa12vnv7qy22l9ck"))))
5691     (build-system emacs-build-system)
5692     (home-page "https://github.com/Fanael/rainbow-delimiters")
5693     (synopsis "Highlight brackets according to their depth")
5694     (description
5695      "Rainbow-delimiters is a \"rainbow parentheses\"-like mode for Emacs which
5696 highlights parentheses, brackets, and braces according to their depth.  Each
5697 successive level is highlighted in a different color, making it easy to spot
5698 matching delimiters, orient yourself in the code, and tell which statements
5699 are at a given level.")
5700     (license license:gpl3+)))
5702 (define-public emacs-rainbow-identifiers
5703   (package
5704     (name "emacs-rainbow-identifiers")
5705     (version "0.2.2")
5706     (source (origin
5707               (method url-fetch)
5708               (uri (string-append "https://raw.githubusercontent.com/Fanael"
5709                                   "/rainbow-identifiers/" version
5710                                   "/rainbow-identifiers.el"))
5711               (file-name (string-append "rainbow-identifiers-" version ".el"))
5712               (sha256
5713                (base32
5714                 "0325abxj47k0g1i8nqrq70w2wr6060ckhhf92krv1s072b3jzm31"))))
5715     (build-system emacs-build-system)
5716     (home-page "https://github.com/Fanael/rainbow-identifiers")
5717     (synopsis "Highlight identifiers in source code")
5718     (description
5719      "Rainbow identifiers mode is an Emacs minor mode providing highlighting of
5720 identifiers based on their names.  Each identifier gets a color based on a hash
5721 of its name.")
5722     (license license:bsd-2)))
5724 (define-public emacs-rainbow-mode
5725   (package
5726     (name "emacs-rainbow-mode")
5727     (version "1.0.1")
5728     (source (origin
5729               (method url-fetch)
5730               (uri (string-append
5731                     "http://elpa.gnu.org/packages/rainbow-mode-" version ".el"))
5732               (sha256
5733                (base32
5734                 "0cpga4ax635rfpj7y2vmh7ank0yw00dcy20gjg1mj74r97by8csf"))))
5735     (build-system emacs-build-system)
5736     (home-page "http://elpa.gnu.org/packages/rainbow-mode.html")
5737     (synopsis "Colorize color names in buffers")
5738     (description
5739      "This minor mode sets background color to strings that match color
5740 names, e.g. #0000ff is displayed in white with a blue background.")
5741     (license license:gpl3+)))
5743 (define-public emacs-visual-fill-column
5744   (package
5745     (name "emacs-visual-fill-column")
5746     (version "1.11")
5747     (source (origin
5748               (method url-fetch)
5749               (uri (string-append "https://codeload.github.com/joostkremers/"
5750                                   "visual-fill-column/tar.gz/" version))
5751               (file-name (string-append name "-" version ".tar.gz"))
5752               (sha256
5753                (base32
5754                 "13jnviakp607zcms7f8ams56mr8wffnq1pghlc6fvqs39663pgwh"))))
5755     (build-system emacs-build-system)
5756     (home-page "https://github.com/joostkremers/visual-fill-column")
5757     (synopsis "Fill-column for visual-line-mode")
5758     (description
5759      "@code{visual-fill-column-mode} is a small Emacs minor mode that mimics
5760 the effect of @code{fill-column} in @code{visual-line-mode}.  Instead of
5761 wrapping lines at the window edge, which is the standard behaviour of
5762 @code{visual-line-mode}, it wraps lines at @code{fill-column}.  If
5763 @code{fill-column} is too large for the window, the text is wrapped at the
5764 window edge.")
5765     (license license:gpl3+)))
5767 (define-public emacs-writeroom
5768   (package
5769     (name "emacs-writeroom")
5770     (version "3.7")
5771     (source
5772      (origin
5773        (method git-fetch)
5774        (uri (git-reference
5775              (url "https://github.com/joostkremers/writeroom-mode.git")
5776              (commit version)))
5777        (file-name (git-file-name name version))
5778        (sha256
5779         (base32 "13nbls5qxz5z8firjxaip8m9vzfbbpxmwrmr01njbk4axpwrpj0z"))))
5780     (build-system emacs-build-system)
5781     (propagated-inputs
5782      `(("emacs-visual-fill-column" ,emacs-visual-fill-column)))
5783     (home-page "https://github.com/joostkremers/writeroom-mode")
5784     (synopsis "Distraction-free writing for Emacs")
5785     (description
5786      "This package defines a minor mode for distraction-free writing.  Some of
5787 the default effects include entering fullscreen, deleting other windows of the
5788 current frame, disabling the mode line, and adding margins to the buffer that
5789 restrict the text width to 80 characters.")
5790     (license license:bsd-3)))
5792 (define-public emacs-ido-completing-read+
5793   (package
5794     (name "emacs-ido-completing-read+")
5795     (version "3.12")
5796     (source (origin
5797               (method url-fetch)
5798               (uri (string-append "https://raw.githubusercontent.com"
5799                                   "/DarwinAwardWinner/ido-ubiquitous/v"
5800                                   version "/ido-completing-read+.el"))
5801               (file-name (string-append "ido-completing-read+-" version ".el"))
5802               (sha256
5803                (base32
5804                 "1cyalb0p7nfsm4n6n9q6rjmvn6adqc0fq8ybnlj3n41n289dkfjf"))))
5805     (build-system emacs-build-system)
5806     (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
5807     (synopsis "Replacement for completing-read using ido")
5808     (description
5809      "The ido-completing-read+ function is a wrapper for ido-completing-read.
5810 Importantly, it detects edge cases that ordinary ido cannot handle and either
5811 adjusts them so ido can handle them, or else simply falls back to the standard
5812 Emacs completion function instead.")
5813     (license license:gpl3+)))
5815 (define-public emacs-ido-ubiquitous
5816   (package
5817     (name "emacs-ido-ubiquitous")
5818     (version "3.12")
5819     (source (origin
5820               (method url-fetch)
5821               (uri (string-append "https://raw.githubusercontent.com"
5822                                   "/DarwinAwardWinner/ido-ubiquitous/v"
5823                                   version "/ido-ubiquitous.el"))
5824               (file-name (string-append "ido-ubiquitous-" version ".el"))
5825               (sha256
5826                (base32
5827                 "197ypji0fb6jsdcq40rpnknwlh3imas6s6jbsvkfm0pz9988c3q2"))))
5828     (build-system emacs-build-system)
5829     (propagated-inputs
5830      `(("emacs-ido-completing-read+" ,emacs-ido-completing-read+)))
5831     (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
5832     (synopsis "Use ido (nearly) everywhere")
5833     (description
5834      "Ido-ubiquitous enables ido-style completion for almost every function
5835 that uses the standard completion function completing-read.")
5836   (license license:gpl3+)))
5838 (define-public emacs-yaml-mode
5839   (package
5840     (name "emacs-yaml-mode")
5841     (version "0.0.13")
5842     (source (origin
5843               (method url-fetch)
5844               (uri (string-append "https://raw.githubusercontent.com/yoshiki"
5845                                   "/yaml-mode/v" version "/yaml-mode.el"))
5846               (file-name (string-append "yaml-mode-" version ".el"))
5847               (sha256
5848                (base32
5849                 "0im88sk9dqw03x6d6zaspgvg9i0pfpgb8f2zygrmbifh2w4pwmvj"))))
5850     (build-system emacs-build-system)
5851     (home-page "https://github.com/yoshiki/yaml-mode")
5852     (synopsis "Major mode for editing YAML files")
5853     (description
5854      "Yaml-mode is an Emacs major mode for editing files in the YAML data
5855 serialization format.  It was initially developed by Yoshiki Kurihara and many
5856 features were added by Marshall Vandegrift.  As YAML and Python share the fact
5857 that indentation determines structure, this mode provides indentation and
5858 indentation command behavior very similar to that of python-mode.")
5859     (license license:gpl3+)))
5861 (define-public emacs-gitlab-ci-mode
5862   (package
5863     (name "emacs-gitlab-ci-mode")
5864     (version "20190425.11.10")
5865     (source (origin
5866               (method git-fetch)
5867               (uri (git-reference
5868                     (url "https://gitlab.com/joewreschnig/gitlab-ci-mode.git")
5869                     (commit (string-append "v" version))))
5870               (file-name (git-file-name name version))
5871               (sha256
5872                (base32
5873                 "1jkp9mnbiccqnha9zs646znqyqvy5jjb81kah7ghbkzdqqk2avm0"))))
5874     (build-system emacs-build-system)
5875     (propagated-inputs
5876      `(("emacs-yaml-mode" ,emacs-yaml-mode)))
5877     (home-page "https://gitlab.com/joewreschnig/gitlab-ci-mode/")
5878     (synopsis "Emacs mode for editing GitLab CI files")
5879     (description
5880      "@code{gitlab-ci-mode} is an Emacs major mode for editing GitLab CI
5881 files.  It provides syntax highlighting and completion for keywords and
5882 special variables.  An interface to GitLab’s CI file linter is also provided
5883 via @code{gitlab-ci-lint}.")
5884     (license license:gpl3+)))
5886 (define-public emacs-web-mode
5887   (package
5888     (name "emacs-web-mode")
5889     (version "16")
5890     (source (origin
5891               (method url-fetch)
5892               (uri (string-append "https://raw.githubusercontent.com/fxbois"
5893                                   "/web-mode/v" version "/web-mode.el"))
5894               (file-name (string-append "web-mode-" version ".el"))
5895               (sha256
5896                (base32
5897                 "1hs5w7kdvcyn4ihyw1kfjg48djn5p7lz4rlbhzzdqv1g56xqx3gw"))))
5898     (build-system emacs-build-system)
5899     (synopsis "Major mode for editing web templates")
5900     (description "Web-mode is an Emacs major mode for editing web templates
5901 aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by
5902 client/server side engines).  Web-mode is compatible with many template
5903 engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker,
5904 Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template,
5905 Dust.js, React/JSX, Angularjs, ejs, etc.")
5906     (home-page "http://web-mode.org/")
5907     (license license:gpl3+)))
5909 (define-public emacs-wgrep
5910   (package
5911     (name "emacs-wgrep")
5912     (version "2.3.0")
5913     (source (origin
5914               (method git-fetch)
5915               (uri (git-reference
5916                     (url "https://github.com/mhayashi1120/Emacs-wgrep")
5917                     (commit version)))
5918               (file-name (git-file-name name version))
5919               (sha256
5920                (base32
5921                 "0pgyf9vfcahb495q01hi1mvkmv846w4rj6zyf52is8x7sjj7x44s"))))
5922     (build-system emacs-build-system)
5923     (home-page "https://github.com/mhayashi1120/Emacs-wgrep")
5924     (synopsis "Edit a grep buffer and apply those changes to the files")
5925     (description
5926      "Emacs wgrep allows you to edit a grep buffer and apply those changes
5927 to the file buffer.  Several backends are supported beside the classic grep:
5928 ack, ag, helm and pt.")
5929     (license license:gpl3+)))
5931 (define-public emacs-helm
5932   (package
5933     (name "emacs-helm")
5934     (version "3.2")
5935     (source
5936      (origin
5937        (method git-fetch)
5938        (uri (git-reference
5939              (url "https://github.com/emacs-helm/helm.git")
5940              (commit (string-append "v" version))))
5941        (file-name (git-file-name name version))
5942        (sha256
5943         (base32 "12yyprpgh2by2pd41i4z9gz55fxg0f90x03bfrsf791xwbhf6931"))))
5944     (build-system emacs-build-system)
5945     (propagated-inputs
5946      `(("emacs-async" ,emacs-async)
5947        ("emacs-popup" ,emacs-popup)))
5948     (home-page "https://emacs-helm.github.io/helm/")
5949     (synopsis "Incremental completion and selection narrowing
5950 framework for Emacs")
5951     (description "Helm is incremental completion and selection narrowing
5952 framework for Emacs.  It will help steer you in the right direction when
5953 you're looking for stuff in Emacs (like buffers, files, etc).  Helm is a fork
5954 of @code{anything.el} originally written by Tamas Patrovic and can be
5955 considered to be its successor.  Helm sets out to clean up the legacy code in
5956 @code{anything.el} and provide a cleaner, leaner and more modular tool, that's
5957 not tied in the trap of backward compatibility.")
5958     (license license:gpl3+)))
5960 (define-public emacs-helm-swoop
5961   (package
5962     (name "emacs-helm-swoop")
5963     (version "1.7.4")
5964     (source
5965      (origin
5966        (method git-fetch)
5967        (uri (git-reference
5968              (url "https://github.com/ShingoFukuyama/helm-swoop.git")
5969              (commit version)))
5970        (file-name (git-file-name name version))
5971        (sha256
5972         (base32 "0b23j1bkpg4pm310hqdhgnl4mxsj05gpl08b6kb2ja4fzrg6adsk"))))
5973     (build-system emacs-build-system)
5974     (propagated-inputs
5975      `(("emacs-helm" ,emacs-helm)))
5976     (home-page "https://github.com/ShingoFukuyama/helm-swoop")
5977     (synopsis "Filter and jump to lines in an Emacs buffer using Helm")
5978     (description
5979      "This package builds on the Helm interface to provide several commands
5980 for search-based navigation of buffers.")
5981     (license license:gpl2+)))
5983 (define-public emacs-helm-projectile
5984   (package
5985     (name "emacs-helm-projectile")
5986     (version "0.14.0")
5987     (source
5988      (origin
5989        (method git-fetch)
5990        (uri (git-reference
5991              (url "https://github.com/bbatsov/helm-projectile.git")
5992              (commit (string-append "v" version))))
5993        (file-name (git-file-name name version))
5994        (sha256
5995         (base32 "0lph38p112fridighqcizpsyzjbv7qr3d8prbfj6w6q6gfl6cna4"))))
5996     (build-system emacs-build-system)
5997     (propagated-inputs
5998      `(("emacs-dash" ,emacs-dash)
5999        ("emacs-helm" ,emacs-helm)
6000        ("emacs-projectile" ,emacs-projectile)))
6001     (home-page "https://github.com/bbatsov/helm-projectile")
6002     (synopsis "Helm integration for Projectile")
6003     (description
6004      "This Emacs library provides a Helm interface for Projectile.")
6005     (license license:gpl3+)))
6007 (define-public emacs-helm-make
6008   (let ((commit "feae8df22bc4b20705ea08ac9adfc2b43bb348d0")
6009         (revision "1"))
6010     (package
6011       (name "emacs-helm-make")
6012       (version (string-append "0.1.0-" revision "." (string-take commit 7)))
6013       (source
6014        (origin
6015          (method git-fetch)
6016          (uri (git-reference
6017                (url "https://github.com/abo-abo/helm-make.git")
6018                (commit commit)))
6019          (file-name (git-file-name name version))
6020          (sha256
6021           (base32
6022            "1y2v77mmd1bfkkz51cnk1l0dg3lvvxc39wlamnm7wjns66dbvlam"))))
6023       (build-system emacs-build-system)
6024       (propagated-inputs
6025        `(("emacs-helm" ,emacs-helm)
6026          ("emacs-projectile" ,emacs-projectile)))
6027       (home-page "https://github.com/abo-abo/helm-make")
6028       (synopsis "Select a Makefile target with helm")
6029       (description "@code{helm-make} or @code{helm-make-projectile} will give
6030 you a @code{helm} selection of directory Makefile's targets.  Selecting a
6031 target will call @code{compile} on it.")
6032       (license license:gpl3+))))
6034 (define-public emacs-cider
6035   (package
6036     (name "emacs-cider")
6037     (version "0.21.0")
6038     (source
6039      (origin
6040        (method git-fetch)
6041        (uri (git-reference
6042              (url "https://github.com/clojure-emacs/cider.git")
6043              (commit (string-append "v" version))))
6044        (file-name (git-file-name name version))
6045        (sha256
6046         (base32
6047          "0lbrwj67fnvynkdkzvnzp3p8vqlz0ldrcs317vg60bqfhx7hvqkj"))))
6048     (build-system emacs-build-system)
6049     (arguments
6050      '(#:exclude                        ; Don't exclude 'cider-test.el'.
6051        '("^\\.dir-locals\\.el$" "^test/")))
6052     (propagated-inputs
6053      `(("emacs-clojure-mode" ,emacs-clojure-mode)
6054        ("emacs-sesman" ,emacs-sesman)
6055        ("emacs-spinner" ,emacs-spinner)
6056        ("emacs-pkg-info" ,emacs-pkg-info)
6057        ("emacs-queue" ,emacs-queue)))
6058     (home-page "https://cider.readthedocs.io/")
6059     (synopsis "Clojure development environment for Emacs")
6060     (description
6061      "CIDER (Clojure Interactive Development Environment that Rocks) aims to
6062 provide an interactive development experience similar to the one you'd get
6063 when programming in Emacs Lisp, Common Lisp (with SLIME or Sly), Scheme (with
6064 Geiser) and Smalltalk.
6066 CIDER is the successor to the now deprecated combination of using SLIME +
6067 swank-clojure for Clojure development.
6069 There are plenty of differences between CIDER and SLIME, but the core ideas
6070 are pretty much the same (and SLIME served as the principle inspiration for
6071 CIDER).")
6072     (license license:gpl3+)))
6074 ;; There hasn't been a tag or release since 2015, so we take the latest
6075 ;; commit.
6076 (define-public emacs-sly
6077   (let ((commit "486bfbe95612bcdc0960c490207970a188e0fbb9")
6078         (revision "1"))
6079     (package
6080       (name "emacs-sly")
6081       (version (string-append "1.0.0-" revision "." (string-take commit 9)))
6082       (source
6083        (origin
6084          (method git-fetch)
6085          (uri (git-reference
6086                (url "https://github.com/joaotavora/sly.git")
6087                (commit commit)))
6088          (file-name (git-file-name name version))
6089          (sha256
6090           (base32
6091            "0ib4q4k3h3qn88pymyjjmlmnpizdn1mfg5gpk5a715nqsgxlg09l"))))
6092       (build-system emacs-build-system)
6093       (arguments
6094        `(#:include (cons "^lib\\/" %default-include)
6095          #:phases
6096          ;; The package provides autoloads.
6097          (modify-phases %standard-phases
6098            (delete 'make-autoloads))))
6099       (home-page "https://github.com/joaotavora/sly")
6100       (synopsis "Sylvester the Cat's Common Lisp IDE")
6101       (description
6102        "SLY is Sylvester the Cat's Common Lisp IDE.  SLY is a fork of SLIME, and
6103 contains the following improvements over it:
6105 @enumerate
6106 @item Completely redesigned REPL based on Emacs's own full-featured
6107   @code{comint.el}
6108 @item Live code annotations via a new @code{sly-stickers} contrib
6109 @item Consistent interactive button interface.  Everything can be copied to
6110   the REPL.
6111 @item Multiple inspectors with independent history
6112 @item Regexp-capable @code{M-x sly-apropos}
6113 @item Contribs are first class SLY citizens and enabled by default
6114 @item Use ASDF to loads contribs on demand.
6115 @end enumerate
6117 SLY tracks SLIME's bugfixes and all its familiar features (debugger, inspector,
6118 xref, etc...) are still available, but with better integration.")
6119       (license license:gpl3+))))
6121 (define-public emacs-lua-mode
6122   (let ((commit "652e299cb967fccca827dda381d61a9c144d97de")
6123         (revision "1"))
6124     (package
6125       (name "emacs-lua-mode")
6126       (version (string-append "20151025." revision "-" (string-take commit 9)))
6127       (home-page "https://github.com/immerrr/lua-mode/")
6128       (source (origin
6129                 (method git-fetch)
6130                 (uri (git-reference
6131                       (url home-page)
6132                       (commit commit)))
6133                 (file-name (string-append name "-" version ".checkout"))
6134                 (sha256
6135                  (base32
6136                   "053025k930wh0lak6rc1973ynfrmm8zsyzfqhhd39x7abkl41hc9"))))
6137       (build-system emacs-build-system)
6138       (synopsis "Major mode for lua")
6139       (description
6140        "This Emacs package provides a mode for @uref{https://www.lua.org/,
6141 Lua programming language}.")
6142       (license license:gpl2+))))
6144 (define-public emacs-ebuild-mode
6145   (package
6146     (name "emacs-ebuild-mode")
6147     (version "1.37")
6148     (source (origin
6149               (method url-fetch)
6150               (uri (string-append
6151                     "https://dev.gentoo.org/~ulm/emacs/ebuild-mode"
6152                     "-" version ".tar.xz"))
6153               (file-name (string-append name "-" version ".tar.xz"))
6154               (sha256
6155                (base32
6156                 "07dzrdjjczkxdfdgi60h4jjkvzi4p0k9rij2wpfp8s03ay3qldpp"))))
6157     (build-system emacs-build-system)
6158     (home-page "https://devmanual.gentoo.org")
6159     (synopsis "Major modes for Gentoo package files")
6160     (description
6161      "This Emacs package provides modes for ebuild, eclass, eblit, GLEP42
6162 news items, openrc and runscripts.")
6163     (license license:gpl2+)))
6165 (define-public emacs-evil
6166   (package
6167     (name "emacs-evil")
6168     (version "1.2.14")
6169     (source
6170      (origin
6171        (method git-fetch)
6172        (uri (git-reference
6173              (url "https://github.com/emacs-evil/evil")
6174              (commit version)))
6175        (file-name (git-file-name name version))
6176        (sha256
6177         (base32
6178          "1833w397xhac5g3pp25szr2gyvclxy91aw27azvbmsx94pyk2a3q"))))
6179     (build-system emacs-build-system)
6180     (propagated-inputs
6181      `(("emacs-undo-tree" ,emacs-undo-tree)
6182        ("emacs-goto-chg" ,emacs-goto-chg)))
6183     (home-page "https://github.com/emacs-evil/evil")
6184     (synopsis "Extensible Vi layer for Emacs")
6185     (description
6186      "Evil is an extensible vi layer for Emacs.  It emulates the
6187 main features of Vim, and provides facilities for writing custom
6188 extensions.")
6189     (license license:gpl3+)))
6191 (define-public emacs-evil-collection
6192   (let ((commit "0748c695dfa89b79eb316da5060360de8c0f04da")
6193         (revision "9"))
6194     (package
6195       (name "emacs-evil-collection")
6196       (version (git-version "0.0.1" revision commit))
6197       (source (origin
6198                 (method git-fetch)
6199                 (uri (git-reference
6200                       (url "https://github.com/emacs-evil/evil-collection")
6201                       (commit commit)))
6202                 (file-name (git-file-name name version))
6203                 (sha256
6204                  (base32
6205                   "17w8nh3q7ffc7776f3qzixk0c0g6vys3xybgw16ky1f416585kvb"))))
6206       (build-system emacs-build-system)
6207       (propagated-inputs
6208        `(("emacs-evil" ,emacs-evil)))
6209       (home-page "https://github.com/emacs-evil/evil-collection")
6210       (synopsis "Collection of Evil bindings for many major and minor modes")
6211       (description "This is a collection of Evil bindings for the parts of
6212 Emacs that Evil does not cover properly by default, such as @code{help-mode},
6213 @code{M-x calendar}, Eshell and more.")
6214       (license license:gpl3+))))
6216 (define-public emacs-goto-chg
6217   (let ((commit "1829a13026c597e358f716d2c7793202458120b5")
6218         (version "1.7.3")
6219         (revision "1"))
6220     (package
6221       (name "emacs-goto-chg")
6222       (version (git-version version revision commit))
6223       (source
6224        (origin
6225          (method git-fetch)
6226          (uri (git-reference
6227                (url "https://github.com/emacs-evil/goto-chg")
6228                (commit commit)))
6229          (file-name (git-file-name name version))
6230          (sha256
6231           (base32
6232            "1y603maw9xwdj3qiarmf1bp13461f9f5ackzicsbynl0i9la3qki"))))
6233       (build-system emacs-build-system)
6234       (propagated-inputs
6235        `(("emacs-undo-tree" ,emacs-undo-tree)))
6236       (home-page "https://github.com/emacs-evil/goto-chg")
6237       (synopsis "Go to the last change in the Emacs buffer")
6238       (description
6239        "This package provides @code{M-x goto-last-change} command that goes to
6240 the point of the most recent edit in the current Emacs buffer.  When repeated,
6241 go to the second most recent edit, etc.  Negative argument, @kbd{C-u -}, is
6242 used for reverse direction.")
6243       (license license:gpl2+))))
6245 (define-public emacs-janpath-evil-numbers
6246   (let ((commit "d988041c1fe6e941dc8d591390750b237f71f524")
6247         (version "0.5")
6248         (revision "1"))
6249     (package
6250       (name "emacs-janpath-evil-numbers")
6251       (version (git-version version revision commit))
6252       (source
6253        (origin
6254          (method git-fetch)
6255          (uri (git-reference
6256                (url "https://github.com/janpath/evil-numbers")
6257                (commit commit)))
6258          (file-name (git-file-name name version))
6259          (sha256
6260           (base32
6261            "16zixhxxcb83m82f2cfiardfn99j3w41v6vh1qk6j9pplrlfw70v"))))
6262       (build-system emacs-build-system)
6263       (propagated-inputs `(("emacs-evil" ,emacs-evil)))
6264       (home-page "https://github.com/janpath/evil-numbers")
6265       (synopsis "Increment and decrement numeric literals")
6266       (description
6267        "This package provides functionality to search for a number up to the
6268 end of a line and increment or decrement it.")
6269       (license license:gpl3+))))
6271 (define-public emacs-evil-exchange
6272   (let ((commit "47691537815150715e64e6f6ec79be7746c96120")
6273         (version "0.41")
6274         (revision "1"))
6275     (package
6276       (name "emacs-evil-exchange")
6277       (version (git-version version revision commit))
6278       (source
6279        (origin
6280          (method git-fetch)
6281          (uri (git-reference
6282                (url "https://github.com/Dewdrops/evil-exchange")
6283                (commit commit)))
6284          (file-name (git-file-name name version))
6285          (sha256
6286           (base32
6287            "0bjpn4yqig17ddym6wqq5fm1b294q74hzcbj9a6gs97fqiwf88xa"))))
6288       (build-system emacs-build-system)
6289       (propagated-inputs `(("emacs-evil" ,emacs-evil)))
6290       (home-page "https://github.com/Dewdrops/evil-exchange")
6291       (synopsis "Exchange text easily within Evil")
6292       (description
6293        "This package, a port of @code{vim-exchange}, provides an Evil operator
6294 for exchanging text.")
6295       (license license:gpl3+))))
6297 (define-public emacs-evil-replace-with-register
6298   (let ((commit "91cc7bf21a94703c441cc9212214075b226b7f67")
6299         (version "0.1")
6300         (revision "1"))
6301     (package
6302       (name "emacs-evil-replace-with-register")
6303       (version (git-version version revision commit))
6304       (source
6305        (origin
6306          (method git-fetch)
6307          (uri (git-reference
6308                (url "https://github.com/Dewdrops/evil-ReplaceWithRegister")
6309                (commit commit)))
6310          (file-name (git-file-name name version))
6311          (sha256
6312           (base32
6313            "14rpn76qrf287s3y2agmddcxi27r226i53ixjvd694ss039g0r11"))))
6314       (build-system emacs-build-system)
6315       (propagated-inputs `(("emacs-evil" ,emacs-evil)))
6316       (home-page "https://github.com/Dewdrops/evil-ReplaceWithRegister")
6317       (synopsis "Quickly replace text with the contents of a register")
6318       (description
6319        "This package provides an Evil operator for replacing text with the
6320 contents of a register.")
6321       (license license:gpl3+))))
6323 (define-public emacs-evil-indent-plus
6324   (let ((commit "0c7501e6efed661242c3a20e0a6c79a6455c2c40")
6325         (version "1.0.0")
6326         (revision "1"))
6327     (package
6328       (name "emacs-evil-indent-plus")
6329       (version (git-version version revision commit))
6330       (source
6331        (origin
6332          (method git-fetch)
6333          (uri (git-reference
6334                (url "https://github.com/TheBB/evil-indent-plus")
6335                (commit commit)))
6336          (file-name (git-file-name name version))
6337          (sha256
6338           (base32
6339            "1g6r1ydscwjvmhh1zg4q3nap4avk8lb9msdqrh7dff6pla0r2qs6"))))
6340       (build-system emacs-build-system)
6341       (propagated-inputs `(("emacs-evil" ,emacs-evil)))
6342       (home-page "https://github.com/TheBB/evil-indent-plus")
6343       (synopsis "Text objects based on indentation")
6344       (description
6345        "This package adds new text objects for @code{evil-mode} based on
6346 blocks having the same or higher indentation, including or excluding
6347 surrounding lines.")
6348       (license license:gpl2+))))
6350 (define-public emacs-evil-text-object-python
6351   (let ((commit "9a064fe6475429145cbcc3b270fcc963b67adb15")
6352         (version "1.0.1")
6353         (revision "1"))
6354     (package
6355       (name "emacs-evil-text-object-python")
6356       (version (git-version version revision commit))
6357       (source
6358        (origin
6359          (method git-fetch)
6360          (uri (git-reference
6361                (url "https://github.com/wbolster/evil-text-object-python")
6362                (commit commit)))
6363          (file-name (git-file-name name version))
6364          (sha256
6365           (base32
6366            "074zpm6mmr1wfl6d5xdf8jk1fs4ccpbzf4ahhkwga9g71xiplszv"))))
6367       (build-system emacs-build-system)
6368       (propagated-inputs `(("emacs-evil" ,emacs-evil)))
6369       (home-page "https://github.com/wbolster/evil-text-object-python")
6370       (synopsis "Text objects for Python")
6371       (description
6372        "This package provides @code{evil-mode} text objects for Python.")
6373       (license license:gpl3+))))
6375 (define-public emacs-evil-lion
6376   (let ((commit "6b03593f5dd6e7c9ca02207f9a73615cf94c93ab")
6377         (version "0.0.2")
6378         (revision "1"))
6379     (package
6380       (name "emacs-evil-lion")
6381       (version (git-version version revision commit))
6382       (source
6383        (origin
6384          (method git-fetch)
6385          (uri (git-reference
6386                (url "https://github.com/edkolev/evil-lion")
6387                (commit commit)))
6388          (file-name (git-file-name name version))
6389          (sha256
6390           (base32
6391            "1a162hynp0jcsn50c1w5a02mrw9w3q05c7lkqzqd25px3d0p772q"))))
6392       (build-system emacs-build-system)
6393       (propagated-inputs `(("emacs-evil" ,emacs-evil)))
6394       (home-page "https://github.com/edkolev/evil-lion")
6395       (synopsis "Align operator for @code{evil-mode}")
6396       (description
6397        "This package, a port of @code{vim-lion}, provides an operator for
6398 aligning text objects based on separators.")
6399       (license license:gpl3+))))
6401 (define-public emacs-evil-expat
6402   (let ((commit "4c344ea19b789002d759a202ffbf594730d2c59a")
6403         (version "0.0.1")
6404         (revision "1"))
6405     (package
6406       (name "emacs-evil-expat")
6407       (version (git-version version revision commit))
6408       (source
6409        (origin
6410          (method git-fetch)
6411          (uri (git-reference
6412                (url "https://github.com/edkolev/evil-expat")
6413                (commit commit)))
6414          (file-name (git-file-name name version))
6415          (sha256
6416           (base32
6417            "16v7fnldxag6l1lsnrnhdjkga9qi78lbdfbb82k6pmv04991mbkr"))))
6418       (build-system emacs-build-system)
6419       (propagated-inputs `(("emacs-evil" ,emacs-evil)))
6420       (home-page "https://github.com/edkolev/evil-expat")
6421       (synopsis "Extra @code{ex} commands for @code{evil-mode}")
6422       (description
6423        "This package provides additional commands for the @code{ex} command
6424 line, including functions for version control with Git and for copying and
6425 pasting into and from @code{tmux} paste buffers.")
6426       (license license:gpl3+))))
6428 (define-public emacs-evil-nerd-commenter
6429   (package
6430     (name "emacs-evil-nerd-commenter")
6431     (version "3.3.7")
6432     (source
6433      (origin
6434        (method git-fetch)
6435        (uri (git-reference
6436              (url "https://github.com/redguardtoo/evil-nerd-commenter")
6437              (commit version)))
6438        (file-name (git-file-name name version))
6439        (sha256
6440         (base32
6441          "1r8shfdddys9vqvrxf7s6z83ydqx9xhqs9sa7klbsajryqcp50b7"))))
6442     (build-system emacs-build-system)
6443     (propagated-inputs `(("emacs-evil" ,emacs-evil)))
6444     (home-page "https://github.com/redguardtoo/evil-nerd-commenter")
6445     (synopsis "Comment and uncomment lines efficiently")
6446     (description
6447      "This package provides text objects and operators for comments within
6448 @code{evil-mode}.")
6449     (license license:gpl3+)))
6451 (define-public emacs-evil-visual-replace
6452   (package
6453     (name "emacs-evil-visual-replace")
6454     (version "0.0.5")
6455     (source
6456      (origin
6457        (method git-fetch)
6458        (uri (git-reference
6459              (url "https://github.com/troyp/evil-visual-replace")
6460              (commit version)))
6461        (file-name (git-file-name name version))
6462        (sha256
6463         (base32
6464          "1gfyrq7xfzmzh3x8k5f08n027dlbwi0pkkxf9c39fkxp4jngibsz"))))
6465     (build-system emacs-build-system)
6466     (propagated-inputs `(("emacs-evil" ,emacs-evil)))
6467     (home-page "https://github.com/troyp/evil-visual-replace")
6468     (synopsis "Replacement commands for @code{evil-mode} visual blocks")
6469     (description
6470      "This package provides versions of @code{query-replace} and
6471 @code{replace-regexp} that work for @code{evil-mode} visual blocks.")
6472     (license license:gpl2+)))
6474 (define-public emacs-evil-visualstar
6475   (let ((commit "06c053d8f7381f91c53311b1234872ca96ced752")
6476         (version "0.0.2")
6477         (revision "1"))
6478     (package
6479       (name "emacs-evil-visualstar")
6480       (version (git-version version revision commit))
6481       (source
6482        (origin
6483          (method git-fetch)
6484          (uri (git-reference
6485                (url "https://github.com/bling/evil-visualstar")
6486                (commit commit)))
6487          (file-name (git-file-name name version))
6488          (sha256
6489           (base32
6490            "0mkbzw12fav945icibc2293m5haxqr3hzkyli2cf4ssk6yvn0x4c"))))
6491       (build-system emacs-build-system)
6492       (propagated-inputs `(("emacs-evil" ,emacs-evil)))
6493       (home-page "https://github.com/bling/evil-visualstar")
6494       (synopsis "Instantly search using the visual selection")
6495       (description
6496        "This package provides @code{evil-mode} functions for using selected text
6497 to search.")
6498       (license license:gpl3+))))
6500 (define-public emacs-monroe
6501   (package
6502     (name "emacs-monroe")
6503     (version "0.3.1")
6504     (source
6505      (origin
6506        (method git-fetch)
6507        (uri (git-reference
6508              (url "https://github.com/sanel/monroe.git")
6509              (commit version)))
6510        (file-name (git-file-name name version))
6511        (sha256
6512         (base32 "101lfrykdbv37spkbw7zihhx26bc1lhjyxbanrcp9880bxj04jiy"))))
6513     (build-system emacs-build-system)
6514     (home-page "https://github.com/sanel/monroe")
6515     (synopsis "Clojure nREPL client for Emacs")
6516     (description
6517      "Monroe is a nREPL client for Emacs, focused on simplicity and easy
6518 distribution, primarily targeting Clojure users")
6519     (license license:gpl3+)))
6521 (define-public emacs-orgalist
6522   (package
6523     (name "emacs-orgalist")
6524     (version "1.9")
6525     (source
6526      (origin
6527        (method url-fetch)
6528        (uri (string-append "https://elpa.gnu.org/packages/"
6529                            "orgalist-" version ".el"))
6530        (sha256
6531         (base32
6532          "1rmmcyiiqkq54hn74nhzxzl4nvd902hv6gq341jwhrm7yiagffi6"))))
6533     (build-system emacs-build-system)
6534     (home-page "http://elpa.gnu.org/packages/orgalist.html")
6535     (synopsis "Manage Org-like lists in non-Org buffers")
6536     (description "Write Org mode's plain lists in non-Org buffers.  More
6537 specifically, Orgalist supports the syntax of Org mode for numbered,
6538 unnumbered, description items, checkboxes, and counter cookies.
6540 The library also implements radio lists, i.e., lists written in Org
6541 syntax later translated into the host format, e.g., LaTeX or HTML.")
6542     (license license:gpl3+)))
6544 (define-public emacs-writegood-mode
6545   (package
6546     (name "emacs-writegood-mode")
6547     (version "2.0.2")
6548     (home-page "https://github.com/bnbeckwith/writegood-mode")
6549     (source (origin
6550               (method git-fetch)
6551               (uri (git-reference
6552                     (url home-page)
6553                     (commit (string-append "v" version))))
6554               (sha256
6555                (base32
6556                 "1nnjn1r669hvvzfycllwap4w04m8rfsk4nzcg8057m1f263kj31b"))
6557               (file-name (string-append name "-checkout"))))
6558     (build-system emacs-build-system)
6559     (synopsis "Polish up poor writing on the fly")
6560     (description
6561      "This minor mode tries to find and highlight problems with your writing
6562 in English as you type.  It primarily detects \"weasel words\" and abuse of
6563 passive voice.")
6564     (license license:gpl3+)))
6566 (define-public emacs-neotree
6567   (package
6568     (name "emacs-neotree")
6569     (version "0.5.2")
6570     (home-page "https://github.com/jaypei/emacs-neotree")
6571     (source (origin
6572               (method url-fetch)
6573               (uri (string-append
6574                     "https://github.com/jaypei/" name
6575                     "/archive/" version ".tar.gz"))
6576               (sha256
6577                (base32
6578                 "1zd6dchwyijnf7kgchfcp51gs938l204dk9z6mljrfqf2zy0gp12"))
6579               (file-name (string-append name "-" version ".tar.gz"))))
6580     (build-system emacs-build-system)
6581     (synopsis "Folder tree view for Emacs")
6582     (description "This Emacs package provides a folder tree view.")
6583     (license license:gpl3+)))
6585 (define-public emacs-org
6586   (package
6587     (name "emacs-org")
6588     ;; emacs-org-contrib inherits from this package.  Please update its sha256
6589     ;; checksum as well.
6590     (version "9.2.3")
6591     (source (origin
6592               (method url-fetch)
6593               (uri (string-append "http://elpa.gnu.org/packages/org-"
6594                                   version ".tar"))
6595               (sha256
6596                (base32
6597                 "0hqy4lns9q5p0l1ylgmlckqprn9sbasszhznanmv0rsh0gzhsbyw"))))
6598     (build-system emacs-build-system)
6599     (home-page "https://orgmode.org/")
6600     (synopsis "Outline-based notes management and organizer")
6601     (description "Org is an Emacs mode for keeping notes, maintaining TODO
6602 lists, and project planning with a fast and effective lightweight markup
6603 language.  It also is an authoring system with unique support for literate
6604 programming and reproducible research.")
6605     (license license:gpl3+)))
6607 (define-public emacs-org-contrib
6608   (package
6609     (inherit emacs-org)
6610     (name "emacs-org-contrib")
6611     (version "20190715")
6612     (source (origin
6613               (method url-fetch)
6614               (uri (string-append "https://orgmode.org/elpa/org-plus-contrib-"
6615                                   version ".tar"))
6616               (sha256
6617                (base32
6618                 "0yxxkcaxhp5bmjsfdd9pz79rj9s7nb4gj5ci51sh4pf8mimk9542"))))
6619     (arguments
6620      `(#:modules ((guix build emacs-build-system)
6621                   (guix build utils)
6622                   (guix build emacs-utils)
6623                   (ice-9 ftw)
6624                   (srfi srfi-1))
6625        #:phases
6626        (modify-phases %standard-phases
6627          (add-after 'install 'delete-org-files
6628            (lambda* (#:key inputs outputs #:allow-other-keys)
6629              (let* ((out (assoc-ref outputs "out"))
6630                     (org (assoc-ref inputs "org"))
6631                     (contrib-files
6632                      (map basename (find-files out)))
6633                     (org+contrib-files
6634                      (map basename (find-files org)))
6635                     (duplicates (lset-intersection
6636                                  string=? contrib-files org+contrib-files)))
6637                (with-directory-excursion
6638                    (string-append
6639                     out "/share/emacs/site-lisp/guix.d/org-contrib-" ,version)
6640                  (for-each delete-file duplicates))
6641                #t))))))
6642     (propagated-inputs
6643      `(("arduino-mode" ,emacs-arduino-mode)
6644        ("cider" ,emacs-cider)
6645        ("org" ,emacs-org)
6646        ("scel" ,emacs-scel)))
6647     (synopsis "Contributed packages to Org mode")
6648     (description "Org is an Emacs mode for keeping notes, maintaining TODO
6649 lists, and project planning with a fast and effective plain-text system.
6651 This package is equivalent to org-plus-contrib, but only includes additional
6652 files that you would find in @file{contrib/} from the git repository.")))
6654 (define-public emacs-flx
6655   (package
6656     (name "emacs-flx")
6657     (version "0.6.1")
6658     (source
6659      (origin
6660        (method url-fetch)
6661        (uri (string-append "https://github.com/lewang/"
6662                            "flx/archive/v" version ".tar.gz"))
6663        (sha256
6664         (base32
6665          "0bkcpnf1j4i2fcc2rllwbz62l00sw2mcia6rm5amgwvlkqavmkv6"))
6666        (file-name (string-append name "-" version ".tar.gz"))))
6667     (build-system emacs-build-system)
6668     (home-page "https://github.com/lewang/flx")
6669     (synopsis "Fuzzy matching for Emacs")
6670     (description
6671      "Flx provides fuzzy matching for emacs a la sublime text.
6672 The sorting algorithm is a balance between word beginnings (abbreviation)
6673 and contiguous matches (substring).  The longer the substring match,
6674 the higher it scores. This maps well to how we think about matching.
6675 Flx has support for ido (interactively do things) through flx-ido.")
6676     (license license:gpl3+)))
6678 (define-public emacs-cyberpunk-theme
6679   (package
6680     (name "emacs-cyberpunk-theme")
6681     (version "1.19")
6682     (source
6683      (origin
6684        (method url-fetch)
6685        (uri (string-append "https://github.com/n3mo/cyberpunk-theme.el/"
6686                            "archive/" version ".tar.gz"))
6687        (sha256
6688         (base32
6689          "05l5fxw1mn5py6mfhxrzyqjq0d8m5m1akfi46vrgh13r414jffvv"))
6690        (file-name (string-append name "-" version ".tar.gz"))))
6691     (build-system emacs-build-system)
6692     (home-page "https://github.com/n3mo/cyberpunk-theme.el")
6693     (synopsis "Cyberpunk theme for emacs built-in color theme support")
6694     (description
6695      "Cyberpunk color theme for the emacs 24+ built-in color theme support
6696 known loosely as deftheme.  Many mode-specific customizations are included.")
6697     (license license:gpl3+)))
6699 (define-public emacs-danneskjold-theme
6700   (let* ((commit "8733d2fe8743e8a01826ea6d4430ef376c727e57")
6701          (revision "1"))
6702     (package
6703       (name "emacs-danneskjold-theme")
6704       (version (string-append "0.0.0-" revision "." (string-take commit 7)))
6705       (home-page "https://github.com/rails-to-cosmos/danneskjold-theme")
6706       (source
6707        (origin
6708          (method git-fetch)
6709          (uri (git-reference
6710                (url home-page)
6711                (commit commit)))
6712          (file-name (git-file-name name version))
6713          (sha256
6714           (base32
6715            "0s6rbsb0y8i8m5b9xm4gw1p1cxsxdqnqxqqb638pygz9f76mbir1"))))
6716       (build-system emacs-build-system)
6717       (arguments
6718        `(#:phases
6719          (modify-phases %standard-phases
6720            (add-after 'unpack 'delete-screenshots
6721              (lambda _
6722                (delete-file-recursively "screenshots") #t)))))
6723       (synopsis "High-contrast Emacs theme")
6724       (description
6725        "@code{danneskjold-theme} is a high-contrast theme for Emacs.")
6726       (license license:gpl3+))))
6728 (define-public emacs-dream-theme
6729   (let* ((commit "107a11d74365046f28a1802a2bdb5e69e4a7488b")
6730          (revision "1"))
6731     (package
6732       (name "emacs-dream-theme")
6733       (version (string-append "0.0.0-" revision "." (string-take commit 7)))
6734       (source
6735        (origin
6736          (method git-fetch)
6737          (uri (git-reference
6738                (url "https://github.com/djcb/dream-theme")
6739                (commit commit)))
6740          (file-name (git-file-name name version))
6741          (sha256
6742           (base32
6743            "0za18nfkq4xqm35k6006vsixcbmvmxqgma4iw5sw37h8vmcsdylk"))))
6744       (build-system emacs-build-system)
6745       (home-page "https://github.com/djcb/dream-theme")
6746       (synopsis "High-contrast Emacs theme")
6747       (description
6748        "@code{dream-theme} is a dark, clean theme for Emacs.  It is inspired
6749 by zenburn, sinburn and similar themes, but slowly diverging from them.")
6750       (license license:gpl3+))))
6752 (define-public emacs-auto-complete
6753   (package
6754     (name "emacs-auto-complete")
6755     (version "1.5.1")
6756     (source
6757      (origin
6758        (method url-fetch)
6759        (uri (string-append "https://github.com/auto-complete/"
6760                            "auto-complete/archive/v" version ".tar.gz"))
6761        (sha256
6762         (base32
6763          "1jvq4lj00hwml75lpmlciazy8f3bbg13gffsfnl835p4qd8l7yqv"))
6764        (file-name (string-append name "-" version ".tar.gz"))))
6765     (build-system emacs-build-system)
6766     (propagated-inputs
6767      `(("emacs-popup" ,emacs-popup)))
6768     (home-page "https://github.com/auto-complete/auto-complete")
6769     (synopsis "Intelligent auto-completion extension for Emacs")
6770     (description
6771      "Auto-Complete is an intelligent auto-completion extension for Emacs.
6772 It extends the standard Emacs completion interface and provides an environment
6773 that allows users to concentrate more on their own work.  Its features are:
6774 a visual interface, reduce overhead of completion by using statistic method,
6775 extensibility.")
6776     (license license:gpl3+)))
6778 (define-public emacs-nginx-mode
6779   (package
6780     (name "emacs-nginx-mode")
6781     (version "1.1.9")
6782     (source
6783      (origin
6784        (method git-fetch)
6785        (uri (git-reference
6786              (url "https://github.com/ajc/nginx-mode.git")
6787              (commit (string-append "v" version))))
6788        (file-name (git-file-name name version))
6789        (sha256
6790         (base32 "17dh5pr3gh6adrbqx588gimxbb2fr7iv2qrxv6r48w2727l344xs"))))
6791     (build-system emacs-build-system)
6792     (home-page "https://github.com/ajc/nginx-mode")
6793     (synopsis "Emacs major mode for editing nginx config files")
6794     (description "This package provides an Emacs major mode for
6795 editing nginx config files.")
6796     (license license:gpl2+)))
6798 (define-public emacs-stream
6799   (package
6800     (name "emacs-stream")
6801     (version "2.2.0")
6802     (home-page "https://github.com/NicolasPetton/stream")
6803     (source
6804      (origin
6805        (method url-fetch)
6806        (file-name (string-append name "-" version ".tar.gz"))
6807        (uri (string-append home-page "/archive/"version ".tar.gz"))
6808        (sha256
6809         (base32 "03ql4nqfz5pn55mjly6clhvc3g7x2d28kj7mrlqmigvjbql39xxc"))))
6810     (build-system emacs-build-system)
6811     (synopsis "Implementation of streams for Emacs")
6812     (description "This library provides an implementation of streams for Emacs.
6813 Streams are implemented as delayed evaluation of cons cells.")
6814     (license license:gpl3+)))
6816 (define-public emacs-el-search
6817   (let ((commit "f26277bfbb3fc3fc74beea6592f294c439796bd4")
6818         (revision "1"))
6819     (package
6820       (name "emacs-el-search")
6821       ;; No ufficial release.
6822       (version (string-append "0.0-" revision "." (string-take commit 7)))
6823       (home-page "https://github.com/emacsmirror/el-search")
6824       (source
6825        (origin
6826          (method git-fetch)
6827          (file-name (string-append name "-" version ".tar.gz"))
6828          (uri (git-reference
6829                (commit commit)
6830                (url (string-append home-page ".git"))))
6831          (sha256
6832           (base32 "12xf40h9sb7xxg2r97gsia94q02543mgiiiw46fzh1ac7b7993g6"))))
6833       (build-system emacs-build-system)
6834       (inputs `(("emacs-stream" ,emacs-stream)))
6835       (synopsis "Expression based interactive search for emacs-lisp-mode")
6836       (description "This package provides expression based interactive search
6837 procedures for emacs-lisp-mode.")
6838       (license license:gpl3+))))
6840 (define-public emacs-ht
6841   (package
6842     (name "emacs-ht")
6843     (version "2.2")
6844     (source
6845      (origin
6846        (method git-fetch)
6847        (uri (git-reference
6848              (url "https://github.com/Wilfred/ht.el.git")
6849              (commit version)))
6850        (file-name (git-file-name name version))
6851        (sha256
6852         (base32 "1p3qa7g0wa0wbviv2f8bda39cjys3naayk5xjm3nxxmqsyy8papx"))))
6853     (build-system emacs-build-system)
6854     (propagated-inputs `(("emacs-dash" ,emacs-dash)))
6855     (home-page "https://github.com/Wilfred/ht.el")
6856     (synopsis "Hash table library for Emacs")
6857     (description
6858      "This package simplifies the use of hash tables in elisp.  It also
6859 provides functions to convert hash tables from and to alists and plists.")
6860     (license license:gpl3+)))
6862 (define-public emacs-log4e
6863   (package
6864     (name "emacs-log4e")
6865     (version "0.3.0")
6866     (source
6867      (origin
6868        (method git-fetch)
6869        (uri (git-reference
6870              (url "https://github.com/aki2o/log4e.git")
6871              (commit (string-append "v" version))))
6872        (file-name (git-file-name name version))
6873        (sha256
6874         (base32 "1l28n7a0v2zkknc70i1wn6qb5i21dkhfizzk8wcj28v44cgzk022"))))
6875     (build-system emacs-build-system)
6876     (arguments
6877      `(#:phases
6878        (modify-phases %standard-phases
6879          (add-after 'unpack 'remove-tests
6880            ;; Guile builder complains about null characters in some
6881            ;; strings of test files.  Remove "test" directory (it is not
6882            ;; needed anyway).
6883            (lambda _
6884              (delete-file-recursively "test"))))))
6885     (home-page "https://github.com/aki2o/log4e")
6886     (synopsis "Logging framework for elisp")
6887     (description
6888      "This package provides a logging framework for elisp.  It allows
6889 you to deal with multiple log levels.")
6890     (license license:gpl3+)))
6892 (define-public emacs-gntp
6893   (package
6894     (name "emacs-gntp")
6895     (version "0.1")
6896     (source
6897      (origin
6898        (method git-fetch)
6899        (uri (git-reference
6900              (url "https://github.com/tekai/gntp.el.git")
6901              (commit (string-append "v" version))))
6902        (file-name (git-file-name name version))
6903        (sha256
6904         (base32 "1nvyjjjydrimpxy4cpg90si7sr8lmldbhlcm2mx8npklp9pn5y3a"))))
6905     (build-system emacs-build-system)
6906     (home-page "https://github.com/tekai/gntp.el")
6907     (synopsis "Growl Notification Protocol for Emacs")
6908     (description
6909      "This package implements the Growl Notification Protocol GNTP
6910 described at @uref{http://www.growlforwindows.com/gfw/help/gntp.aspx}.
6911 It is incomplete as it only lets you send but not receive
6912 notifications.")
6913     (license license:bsd-3)))
6915 (define-public emacs-alert
6916   (package
6917     (name "emacs-alert")
6918     (version "1.3")
6919     (source
6920      (origin
6921        (method git-fetch)
6922        (uri (git-reference
6923              (url "https://github.com/jwiegley/alert.git")
6924              (commit (string-append "v" version))))
6925        (file-name (git-file-name name version))
6926        (sha256
6927         (base32 "0lc0p5cl4hfrzw1z2ghb11k1lvljn5m08jw5fmgwgxv667kwh49r"))))
6928     (build-system emacs-build-system)
6929     (propagated-inputs
6930      `(("emacs-gntp" ,emacs-gntp)
6931        ("emacs-log4e" ,emacs-log4e)))
6932     (home-page "https://github.com/jwiegley/alert")
6933     (synopsis "Growl-style notification system for Emacs")
6934     (description
6935      "Alert is a Growl-workalike for Emacs which uses a common notification
6936 interface and multiple, selectable \"styles\", whose use is fully
6937 customizable by the user.")
6938     (license license:gpl2+)))
6940 (define-public emacs-zones
6941   (let ((commit "3169815c323966ff8e252b44e3558d6d045243fe")
6942         (revision "2"))
6943     (package
6944       (name "emacs-zones")
6945       (version (git-version "0" revision commit))
6946       (source
6947        (origin
6948          (method git-fetch)
6949          (uri (git-reference
6950                (url "https://github.com/emacsmirror/zones.git")
6951                (commit commit)))
6952          (file-name (git-file-name name version))
6953          (sha256
6954           (base32
6955            "039msns5596rz0my7fxpanpxwg1lkhpiibm9ppnlzaajx1hszbzl"))
6956          (patches
6957           (search-patches
6958            "emacs-zones-called-interactively.patch"))))
6959       (build-system emacs-build-system)
6960       (home-page "https://www.emacswiki.org/emacs/Zones")
6961       (synopsis "Define and act on multiple zones of buffer text")
6962       (description "Library @file{zones.el} lets you easily define and
6963 subsequently act on multiple zones of buffer text.  You can think of this as
6964 enlarging the notion of region.  In effect, it can remove the requirement of
6965 target text being a contiguous sequence of characters.  A set of buffer zones
6966 is, in effect, a (typically) noncontiguous set of text.")
6967       (license license:gpl3+))))
6969 (define-public emacs-mu4e-alert
6970   (package
6971     (name "emacs-mu4e-alert")
6972     (version "1.0")
6973     (source
6974      (origin
6975        (method git-fetch)
6976        (uri (git-reference
6977              (url "https://github.com/iqbalansari/mu4e-alert.git")
6978              (commit (string-append "v" version))))
6979        (file-name (git-file-name name version))
6980        (sha256
6981         (base32 "1nvsfbfsma59ilf7c3vjngnmx3aapwvvvaafdy5szm5r6lkicqvg"))))
6982     (build-system emacs-build-system)
6983     (propagated-inputs
6984      `(("emacs-alert" ,emacs-alert)
6985        ("emacs-s" ,emacs-s)
6986        ("emacs-ht" ,emacs-ht)
6987        ("mu" ,mu)))
6988     (home-page "https://github.com/iqbalansari/mu4e-alert")
6989     (synopsis "Desktop notification for mu4e")
6990     (description
6991      "This package provides desktop notifications for mu4e.
6992 Additionally it can display the number of unread emails in the
6993 mode-line.")
6994     (license license:gpl3+)))
6996 (define-public emacs-pretty-mode
6997   (package
6998     (name "emacs-pretty-mode")
6999     (version "2.0.3")
7000     (source
7001      (origin
7002        (method url-fetch)
7003        (uri (string-append "https://github.com/akatov/pretty-mode/"
7004                            "archive/" version ".tar.gz"))
7005        (file-name (string-append name "-" version ".tar.gz"))
7006        (sha256
7007         (base32
7008          "1fan7m4vnqs8kpg7r54kx3g7faadkpkf9kzarfv8n57kq8w157pl"))))
7009     (build-system emacs-build-system)
7010     (home-page "https://github.com/akatov/pretty-mode")
7011     (synopsis "Redisplay parts of the buffer as Unicode symbols")
7012     (description
7013      "Emacs minor mode for redisplaying parts of the buffer as pretty symbols.")
7014     (license license:gpl3+)))
7016 (define-public emacs-yasnippet
7017   (package
7018     (name "emacs-yasnippet")
7019     (version "0.13.0")
7020     (source (origin
7021               (method url-fetch)
7022               (uri (string-append "https://github.com/joaotavora/yasnippet/"
7023                                   "archive/" version ".tar.gz"))
7024               (file-name (string-append name "-" version ".tar.gz"))
7025               (sha256
7026                (base32
7027                 "12ls2x17agzbrj1xynjbmfa11igqxia4hj4fv6fpr66yci2r1plc"))
7028               (modules '((guix build utils)))
7029               (snippet
7030                '(begin
7031                   ;; YASnippet expects a "snippets" subdirectory in the same
7032                   ;; directory as yasnippet.el, but we don't install it
7033                   ;; because it's a git submodule pointing to an external
7034                   ;; repository.  Adjust `yas-snippet-dirs' to prevent
7035                   ;; warnings about a missing directory.
7036                   (substitute* "yasnippet.el"
7037                     (("^ +'yas-installed-snippets-dir\\)\\)\n")
7038                      "))\n"))
7039                   #t))))
7040     (build-system emacs-build-system)
7041     (home-page "https://github.com/joaotavora/yasnippet")
7042     (synopsis "Yet another snippet extension for Emacs")
7043     (description
7044      "YASnippet is a template system for Emacs.  It allows you to type an
7045 abbreviation and automatically expand it into function templates.")
7046     (license license:gpl3+)))
7048 (define-public emacs-yasnippet-snippets
7049   (let ((commit "885050d34737e2fb36a3e7759d60c09347bd4ce0")
7050         (revision "1"))
7051     (package
7052       (name "emacs-yasnippet-snippets")
7053       (version (string-append "1-" revision "." (string-take commit 8)))
7054       (source
7055        (origin
7056          (method git-fetch)
7057          (uri (git-reference
7058                (url "https://github.com/AndreaCrotti/yasnippet-snippets")
7059                (commit commit)))
7060          (file-name (git-file-name name version))
7061          (sha256
7062           (base32
7063            "1m935zgglw0iakzrixld5rcjz3wnj84f8wy2mvc3pggjri9l0qr9"))))
7064       (build-system trivial-build-system)
7065       (arguments
7066        `(#:modules ((ice-9 ftw)
7067                     (ice-9 regex)
7068                     (guix build utils))
7069          #:builder
7070          (begin
7071            (use-modules (ice-9 ftw)
7072                         (ice-9 regex)
7073                         (guix build utils))
7074            (with-directory-excursion (assoc-ref %build-inputs "source")
7075              (for-each (lambda (dir)
7076                          (copy-recursively
7077                           dir
7078                           (string-append %output
7079                                          "/share/emacs/yasnippet-snippets/"
7080                                          dir)))
7081                        (scandir "." (lambda (fname)
7082                                       (and (string-match "-mode$" fname)
7083                                            (directory-exists? fname))))))
7084            #t)))
7085       (home-page "https://github.com/AndreaCrotti/yasnippet-snippets")
7086       (synopsis "Collection of YASnippet snippets for many languages")
7087       (description
7088        "Provides Andrea Crotti's collection of YASnippet snippets.  After installation,
7089 the snippets will be in \"~/.guix-profile/share/emacs/yasnippet-snippets/\".
7090 To make YASnippet aware of these snippets, add the above directory to
7091 @code{yas-snippet-dirs}.")
7092       (license license:expat))))
7094 (define-public emacs-helm-c-yasnippet
7095   (let ((commit "65ca732b510bfc31636708aebcfe4d2d845b59b0")
7096         (revision "1"))
7097     (package
7098       (name "emacs-helm-c-yasnippet")
7099       (version (string-append "0.6.7" "-" revision "."
7100                               (string-take commit 7)))
7101       (source (origin
7102                 (method git-fetch)
7103                 (uri (git-reference
7104                       (url "https://github.com/emacs-jp/helm-c-yasnippet")
7105                       (commit commit)))
7106                 (file-name (git-file-name name version))
7107                 (sha256
7108                  (base32
7109                   "1cbafjqlzxbg19xfdqsinsh7afq58gkf44rsg1qxfgm8g6zhr7f8"))))
7110       (build-system emacs-build-system)
7111       (propagated-inputs
7112        `(("emacs-helm" ,emacs-helm)
7113          ("emacs-yasnippet" ,emacs-yasnippet)))
7114       (home-page "https://github.com/emacs-jp/helm-c-yasnippet")
7115       (synopsis "Helm integration for Yasnippet")
7116       (description "This Emacs library provides Helm interface for
7117 Yasnippet.")
7118       (license license:gpl2+))))
7120 (define-public emacs-helm-system-packages
7121   ;; There won't be a new release after 1.10.1 until
7122   ;; https://github.com/emacs-helm/helm-system-packages/issues/25 is fixed,
7123   ;; and latest commits fix import issues with Guix.
7124   (let ((commit "6572340f41611ef1991e9612d34d59130957ee4a"))
7125     (package
7126       (name "emacs-helm-system-packages")
7127       (version (git-version "1.10.1" "1" commit))
7128       (source (origin
7129                 (method git-fetch)
7130                 (uri (git-reference
7131                       (url "https://github.com/emacs-helm/helm-system-packages")
7132                       (commit commit)))
7133                 (file-name (git-file-name name version))
7134                 (sha256
7135                  (base32
7136                   "0mcz6vkpk12vsyd37xv1rbg4v442sxc3lj8yxskqg294xbdaclz4"))))
7137       (build-system emacs-build-system)
7138       (inputs
7139        `(("recutils" ,recutils)))
7140       (propagated-inputs
7141        `(("emacs-helm" ,emacs-helm)))
7142       (arguments
7143        `(#:phases
7144          (modify-phases %standard-phases
7145            (add-after 'unpack 'configure
7146              (lambda* (#:key inputs outputs #:allow-other-keys)
7147                (let ((recutils (assoc-ref inputs "recutils")))
7148                  ;; Specify the absolute file names of the various
7149                  ;; programs so that everything works out-of-the-box.
7150                  (substitute* "helm-system-packages-guix.el"
7151                    (("recsel") (string-append recutils "/bin/recsel")))))))))
7152       (home-page "https://github.com/emacs-helm/helm-system-packages")
7153       (synopsis "Helm System Packages is an interface to your package manager")
7154       (description "List all available packages in Helm (with installed
7155 packages displayed in their own respective face).  Fuzzy-search, mark and
7156 execute the desired action over any selections of packages: Install,
7157 uninstall, display packages details (in Org Mode) or insert details at point,
7158 find files owned by packages...  And much more, including performing all the
7159 above over the network.")
7160       (license license:gpl3+))))
7162 (define-public emacs-memoize
7163   (package
7164     (name "emacs-memoize")
7165     (version "1.1")
7166     (source
7167      (origin
7168        (method git-fetch)
7169        (uri (git-reference
7170              (url "https://github.com/skeeto/emacs-memoize.git")
7171              (commit version)))
7172        (file-name (git-file-name name version))
7173        (sha256
7174         (base32 "04qgnlg4x6va7x364dhj1wbjmz8p5iq2vk36mn9198k2vxmijwzk"))))
7175     (build-system emacs-build-system)
7176     (arguments
7177      `(#:tests? #t
7178        #:test-command '("emacs" "--batch"
7179                         "-l" "memoize-test.el"
7180                         "-f" "ert-run-tests-batch-and-exit")))
7181     (home-page "https://github.com/skeeto/emacs-memoize")
7182     (synopsis "Emacs lisp memoization library")
7183     (description "@code{emacs-memoize} is an Emacs library for
7184 memoizing functions.")
7185     (license license:unlicense)))
7187 (define-public emacs-linum-relative
7188   (package
7189     (name "emacs-linum-relative")
7190     (version "0.5")
7191     (source
7192      (origin
7193        (method git-fetch)
7194        (uri (git-reference
7195              (url "https://github.com/coldnew/linum-relative.git")
7196              (commit version)))
7197        (file-name (git-file-name name version))
7198        (sha256
7199         (base32 "11bjnqqwvr9zrvz5dlm8a0yw4zg9ysh3jdiq5a6iw09d3f0h1v2s"))))
7200     (build-system emacs-build-system)
7201     (home-page "https://github.com/coldnew/linum-relative")
7202     (synopsis "Relative line numbering for Emacs")
7203     (description "@code{emacs-linum-relative} displays the relative line
7204 number on the left margin in Emacs.")
7205     (license license:gpl2+)))
7207 (define-public emacs-idle-highlight
7208   (package
7209     (name "emacs-idle-highlight")
7210     (version "1.1.3")
7211     (source
7212      (origin
7213        (method git-fetch)
7214        (uri (git-reference
7215              (url "https://github.com/nonsequitur/idle-highlight-mode.git")
7216              (commit version)))
7217        (file-name (git-file-name name version))
7218        (sha256
7219         (base32 "0x4w1ksrw7dicl84zpf4d4scg672dyan9g95jkn6zvri0lr8xciv"))))
7220     (build-system emacs-build-system)
7221     (home-page "https://www.emacswiki.org/emacs/IdleHighlight")
7222     (synopsis "Highlights all occurrences of the word the point is on")
7223     (description
7224      "This Emacs package provides @code{idle-highlight-mode} that sets
7225  an idle timer to highlight all occurrences in the buffer of the word under
7226  the point.")
7227     (license license:gpl3+)))
7229 (define-public emacs-ox-twbs
7230   (package
7231     (name "emacs-ox-twbs")
7232     (version "1.1.1")
7233     (source
7234      (origin
7235        (method git-fetch)
7236        (uri (git-reference
7237              (url "https://github.com/marsmining/ox-twbs.git")
7238              (commit (string-append "v" version))))
7239        (file-name (git-file-name name version))
7240        (sha256
7241         (base32 "0kd45p8y7ykadmai4jn1x1pgpafyqggwb1ccbjzalxw4k9wmd45f"))))
7242     (build-system emacs-build-system)
7243     (home-page "https://github.com/marsmining/ox-twbs")
7244     (synopsis "Export org-mode docs as HTML compatible with Twitter Bootstrap")
7245     (description
7246      "This Emacs package outputs your org-mode docs with a simple, clean and
7247 modern look.  It implements a new HTML back-end for exporting org-mode docs as
7248 HTML compatible with Twitter Bootstrap.  By default, HTML is exported with
7249 jQuery and Bootstrap resources included via osscdn.")
7250     (license license:gpl3+)))
7252 (define-public emacs-highlight-sexp
7253   (package
7254     (name "emacs-highlight-sexp")
7255     (version "1.0")
7256     (source
7257      (origin
7258        (method git-fetch)
7259        (uri (git-reference
7260              (url "https://github.com/daimrod/highlight-sexp.git")
7261              (commit (string-append "v" version))))
7262        (file-name (git-file-name name version))
7263        (sha256
7264         (base32 "12cyk2q5g6p4ac2hykw1cag7dp1prjjnck5f7nalwwaklmy62y79"))))
7265     (build-system emacs-build-system)
7266     (home-page "https://github.com/daimrod/highlight-sexp")
7267     (synopsis "Minor mode that highlights the s-exp at the current position")
7268     (description
7269      "This Emacs package highlights the s-exp at the current position.")
7270     (license license:gpl3+)))
7272 (define-public emacs-highlight-stages
7273   (let ((commit "29cbc5b78261916da042ddb107420083da49b271")
7274         (revision "1"))
7275     (package
7276       (name "emacs-highlight-stages")
7277       (version (string-append "1.1.0" "-" revision "." (string-take commit 7)))
7278       (source
7279        (origin
7280          (method git-fetch)
7281          (uri (git-reference
7282                (url "https://github.com/zk-phi/highlight-stages.git")
7283                (commit commit)))
7284          (file-name (git-file-name name version))
7285          (sha256
7286           (base32
7287            "0r6nbcrr0dqpgm8dir8ahzjy7rw4nrac48byamzrq96r7ajlxlv0"))
7288          (patches
7289           (search-patches "emacs-highlight-stages-add-gexp.patch"))))
7290       (build-system emacs-build-system)
7291       (home-page "https://github.com/wigust/highlight-stages")
7292       (synopsis "Minor mode that highlights (quasi-quoted) expressions")
7293       (description "@code{highlight-stages} provides an Emacs minor mode that
7294 highlights quasi-quoted expressions.")
7295       (license license:gpl3+))))
7297 (define-public emacspeak
7298   (package
7299     (name "emacspeak")
7300     (version "50.0")
7301     (source
7302      (origin
7303        (method url-fetch)
7304        (uri (string-append
7305              "https://github.com/tvraman/emacspeak/releases/download/"
7306              version "/emacspeak-" version ".tar.bz2"))
7307        (sha256
7308         (base32
7309          "0rsj7rzfyqmyidfsjrhjnxi2d43axx6r3gac1fhv5xkkbiiqzqkb"))))
7310     (build-system gnu-build-system)
7311     (arguments
7312      '(#:make-flags (list (string-append "prefix="
7313                                          (assoc-ref %outputs "out")))
7314        #:phases
7315        (modify-phases %standard-phases
7316          (replace 'configure
7317            (lambda _
7318              (setenv "SHELL" (which "sh"))
7319              ;; Configure Emacspeak according to etc/install.org.
7320              (invoke "make" "config")))
7321          (add-after 'build 'build-espeak
7322            (lambda _
7323              (invoke "make" "espeak")))
7324          (replace 'install
7325            (lambda* (#:key inputs outputs #:allow-other-keys)
7326              (let* ((out (assoc-ref outputs "out"))
7327                     (bin (string-append out "/bin"))
7328                     (lisp (string-append out "/share/emacs/site-lisp/emacspeak"))
7329                     (info (string-append out "/share/info"))
7330                     (emacs (string-append (assoc-ref inputs "emacs")
7331                                           "/bin/emacs")))
7332                ;; According to etc/install.org, the Emacspeak directory should
7333                ;; be copied to its installation destination.
7334                (for-each
7335                 (lambda (file)
7336                   (copy-recursively file (string-append lisp "/" file)))
7337                 '("etc" "info" "js" "lisp" "media" "servers" "sounds"
7338                   "stumpwm" "xsl"))
7339                ;; Make sure emacspeak is loaded from the correct directory.
7340                (substitute* "etc/emacspeak.sh"
7341                  (("/lisp/emacspeak-setup.el")
7342                   (string-append lisp "/lisp/emacspeak-setup.el")))
7343                ;; Install the convenient startup script.
7344                (mkdir-p bin)
7345                (copy-file "etc/emacspeak.sh" (string-append bin "/emacspeak")))
7346              #t))
7347          (add-after 'install 'wrap-program
7348            (lambda* (#:key inputs outputs #:allow-other-keys)
7349              (let* ((out (assoc-ref outputs "out"))
7350                     (emacspeak (string-append out "/bin/emacspeak"))
7351                     (espeak (string-append (assoc-ref inputs "espeak")
7352                                            "/bin/espeak")))
7353                ;; The environment variable DTK_PROGRAM tells emacspeak what
7354                ;; program to use for speech.
7355                (wrap-program emacspeak
7356                  `("DTK_PROGRAM" ":" prefix (,espeak)))
7357                #t))))
7358        #:tests? #f)) ; no check target
7359     (inputs
7360      `(("emacs" ,emacs)
7361        ("espeak" ,espeak)
7362        ("perl" ,perl)
7363        ("tcl" ,tcl)
7364        ("tclx" ,tclx)))
7365     (home-page "http://emacspeak.sourceforge.net")
7366     (synopsis "Audio desktop interface for Emacs")
7367     (description
7368      "Emacspeak is a speech interface that allows visually impaired users to
7369 interact independently and efficiently with the computer.  Audio formatting
7370 --a technique pioneered by AsTeR-- and full support for W3C's Aural CSS (ACSS)
7371 allows Emacspeak to produce rich aural presentations of electronic information.
7372 By seamlessly blending all aspects of the Internet such as Web-surfing and
7373 messaging, Emacspeak speech-enables local and remote information via a
7374 consistent and well-integrated user interface.")
7375     (license license:gpl2+)))
7377 (define-public emacs-adaptive-wrap
7378   (package
7379     (name "emacs-adaptive-wrap")
7380     (version "0.5.1")
7381     (source (origin
7382               (method url-fetch)
7383               (uri (string-append
7384                     "http://elpa.gnu.org/packages/adaptive-wrap-"
7385                     version ".el"))
7386               (sha256
7387                (base32
7388                 "0qi7gjprcpywk2daivnlavwsx53hl5wcqvpxbwinvigg42vxh3ll"))))
7389     (build-system emacs-build-system)
7390     (home-page "http://elpa.gnu.org/packages/adaptive-wrap.html")
7391     (synopsis "Smart line-wrapping with wrap-prefix")
7392     (description
7393      "This Emacs package provides the @code{adaptive-wrap-prefix-mode}
7394 minor mode which sets the wrap-prefix property on the fly so that
7395 single-long-line paragraphs get word-wrapped in a way similar to what
7396 you'd get with @kbd{M-q} using @code{adaptive-fill-mode}, but without
7397 actually changing the buffer's text.")
7398     (license license:gpl3+)))
7400 (define-public emacs-diff-hl
7401   (package
7402     (name "emacs-diff-hl")
7403     (version "1.8.6")
7404     (source
7405      (origin
7406        (method git-fetch)
7407        (uri (git-reference
7408              (url "https://github.com/dgutov/diff-hl")
7409              (commit version)))
7410        (sha256
7411         (base32
7412          "1xlsg728mz3cwhrsqvisa0aidic67nymd9g7h4c1h3q63j39yb2s"))))
7413     (build-system emacs-build-system)
7414     (home-page "https://github.com/dgutov/diff-hl")
7415     (synopsis
7416      "Highlight uncommitted changes using VC")
7417     (description
7418      "@code{diff-hl-mode} highlights uncommitted changes on the side of the
7419 window (using the fringe, by default), allows you to jump between
7420 the hunks and revert them selectively.")
7421     (license license:gpl3+)))
7423 (define-public emacs-diminish
7424   (package
7425     (name "emacs-diminish")
7426     (version "0.45")
7427     (source
7428      (origin
7429        (method git-fetch)
7430        (uri (git-reference
7431              (url "https://github.com/myrjola/diminish.el.git")
7432              (commit (string-append "v" version))))
7433        (file-name (git-file-name name version))
7434        (sha256
7435         (base32 "0qpgfgp8hrzz4vdifxq8h25n0a0jlzgf7aa1fpy6r0080v5rqbb6"))))
7436     (build-system emacs-build-system)
7437     (home-page "https://github.com/myrjola/diminish.el")
7438     (synopsis "Diminish minor modes with no modeline display")
7439     (description "@code{emacs-diminish} implements hiding or
7440 abbreviation of the mode line displays (lighters) of minor modes.")
7441     (license license:gpl2+)))
7443 (define-public emacs-use-package
7444   (package
7445     (name "emacs-use-package")
7446     (version "2.4")
7447     (source (origin
7448               (method git-fetch)
7449               (uri (git-reference
7450                     (url "https://github.com/jwiegley/use-package")
7451                     (commit version)))
7452               (file-name (git-file-name name version))
7453               (sha256
7454                (base32
7455                 "1b7mjjh0d6fmkkd9vyj64vca27xqhga0nvyrrcqxpqjn62zq046y"))))
7456     (build-system emacs-build-system)
7457     (propagated-inputs
7458      `(("emacs-diminish" ,emacs-diminish)))
7459     (arguments
7460      `(#:tests? #t
7461        #:test-command '("emacs" "--batch"
7462                         "-l" "use-package-tests.el"
7463                         "-f" "ert-run-tests-batch-and-exit")))
7464     (home-page "https://github.com/jwiegley/use-package")
7465     (synopsis "Declaration for simplifying your .emacs")
7466     (description "The use-package macro allows you to isolate package
7467 configuration in your @file{.emacs} file in a way that is both
7468 performance-oriented and tidy.")
7469     (license license:gpl2+)))
7471 (define-public emacs-strace-mode
7472   (let* ((commit "6a69b4b06db6797af56f33eda5cb28af94e59f11")
7473          (revision "1"))
7474     (package
7475       (name "emacs-strace-mode")
7476       (version (string-append "0.0.2-" revision "." (string-take commit 7)))
7477       (source (origin
7478                 (method git-fetch)
7479                 (uri (git-reference
7480                       (url "https://github.com/pkmoore/strace-mode")
7481                       (commit commit)))
7482                 (file-name (git-file-name name version))
7483                 (sha256
7484                  (base32
7485                   "1lbk2kzdznf2bkfazizfbimaxxzfzv00lrz1ran9dc2zqbc0bj9f"))))
7486       (build-system emacs-build-system)
7487       (home-page "https://github.com/pkmoore/strace-mode")
7488       (synopsis "Emacs major mode to highlight strace outputs")
7489       (description "@code{emacs-strace-mode} provides an Emacs major mode
7490  highlighting strace outputs.")
7491       (license license:gpl3+))))
7493 (define-public emacs-default-encrypt
7494   (package
7495     (name "emacs-default-encrypt")
7496     (version "4.4")
7497     (source
7498      (origin
7499        (method url-fetch)
7500        (uri (string-append
7501              "https://informationelle-selbstbestimmung-im-internet.de"
7502              "/emacs/jl-encrypt" version "/jl-encrypt.el"))
7503        (file-name (string-append "jl-encrypt-" version ".el"))
7504        (sha256
7505         (base32
7506          "0w9ggz075j1zwg7d0rv9k8238g600p7czfnnsnawswi7yps2xk78"))))
7507     (build-system emacs-build-system)
7508     (home-page
7509      "https://informationelle-selbstbestimmung-im-internet.de/Emacs.html")
7510     (synopsis "Automatically encrypt or sign Gnus messages in Emacs")
7511     (description
7512      "DefaultEncrypt is designed to be used with Gnus in Emacs.  It
7513 automatically encrypts messages that you send (e.g., email) when public keys
7514 for all recipients are available, and it protects you from accidentally
7515 sending un-encrypted messages.  It can also be configured to automatically
7516 sign messages that you send.  For details and instructions on how to use
7517 DefaultEncrypt, please refer to the home page or read the comments in the
7518 source file, @file{jl-encrypt.el}.")
7519     (license license:gpl3+)))
7521 (define-public emacs-extend-smime
7522   (package
7523     (name "emacs-extend-smime")
7524     (version "3.3")
7525     (source
7526      (origin
7527        (method url-fetch)
7528        (uri (string-append
7529              "https://informationelle-selbstbestimmung-im-internet.de"
7530              "/emacs/jl-smime" version "/jl-smime.el"))
7531        (file-name (string-append "jl-smime-" version ".el"))
7532        (sha256
7533         (base32
7534          "1iv8s2wjmv3v5qfwlcy9hvvrmxxvp3f8m1krlr789q7bbh35jynh"))))
7535     (build-system emacs-build-system)
7536     (home-page
7537      "https://informationelle-selbstbestimmung-im-internet.de/Emacs.html")
7538     (synopsis "Improved S/MIME support for Gnus in Emacs")
7539     (propagated-inputs
7540      `(("emacs-default-encrypt" ,emacs-default-encrypt)))
7541     (description
7542      ;; TRANSLATORS: ExtendSMIME, DefaultEncrypt, and emacs-default-encrypt
7543      ;; should not be translated.  The name "emacs-default-encrypt" refers to
7544      ;; the Guix package that provides DefaultEncrypt.
7545      "ExtendSMIME is designed to be used with Gnus in Emacs.  It enhances
7546 DefaultEncrypt (emacs-default-encrypt) to support S/MIME (Secure/Multipurpose
7547 Internet Mail Extensions) via LDAP (Lightweight Directory Access Protocol).
7548 Before a message (e.g., email) is sent, ExtendSMIME searches for missing
7549 certificates via LDAP and imports them into @code{gpgsm}.  When certificates
7550 for all recipients are available, DefaultEncrypt automatically encrypts the
7551 message.  For details and instructions on how to use ExtendSMIME, please refer
7552 to the home page or read the comments in the source file,
7553 @file{jl-smime.el}.")
7554     (license license:gpl3+)))
7556 (define-public emacs-htmlize
7557   (package
7558     (name "emacs-htmlize")
7559     (version "1.53")
7560     (source
7561      (origin
7562        (method git-fetch)
7563        (uri (git-reference
7564              (url "https://github.com/hniksic/emacs-htmlize.git")
7565              (commit (string-append "release/" version))))
7566        (file-name (git-file-name name version))
7567        (sha256
7568         (base32 "0dr235c0z8is3pi5xdgqyqljg6px0b2aya6qb79zkyi477bmz4ip"))))
7569     (build-system emacs-build-system)
7570     (home-page "https://github.com/hniksic/emacs-htmlize")
7571     (synopsis "Convert buffer text and decorations to HTML")
7572     (description "@code{emacs-htmlize} converts the buffer text and
7573 the associated decorations to HTML.  Output to CSS, inline CSS and
7574 fonts is supported.")
7575     (license license:gpl2+)))
7577 (define-public emacs-xmlgen
7578   (package
7579     (name "emacs-xmlgen")
7580     (version "0.5")
7581     (source
7582      (origin
7583        (method git-fetch)
7584        (uri (git-reference
7585              (url "https://github.com/philjackson/xmlgen.git")
7586              (commit version)))
7587        (file-name (git-file-name name version))
7588        (sha256
7589         (base32 "096i29v0badx0a6339h9ckdz78zj59gbjdp7vj7vhkq9d830392s"))))
7590     (build-system emacs-build-system)
7591     (arguments
7592      `(#:tests? #t
7593        #:test-command '("emacs" "--batch"
7594                         "-l" "xmlgen-test.el"
7595                         "-f" "ert-run-tests-batch-and-exit")))
7596     (home-page "https://github.com/philjackson/xmlgen")
7597     (synopsis "S-expression to XML domain specific language (DSL) in
7598 Emacs Lisp")
7599     (description "@code{emacs-xmlgen} provides S-expression to XML
7600 conversion for Emacs Lisp.")
7601     (license license:gpl2+)))
7603 (define-public emacs-cdlatex
7604   (package
7605     (name "emacs-cdlatex")
7606     (version "4.7")
7607     (source
7608      (origin
7609        (method git-fetch)
7610        (uri (git-reference
7611              (url "https://github.com/cdominik/cdlatex.git")
7612              (commit version)))
7613        (file-name (git-file-name name version))
7614        (sha256
7615         (base32 "1jj9vmhc4s3ych08bjm1c2xwi81z1p20rj7bvxrgvb5aga2ghi9d"))))
7616     (build-system emacs-build-system)
7617     (propagated-inputs
7618      `(("emacs-auctex" ,emacs-auctex)))
7619     (home-page "https://github.com/cdominik/cdlatex")
7620     (synopsis "Fast Emacs input methods for LaTeX environments and
7621 math")
7622     (description "CDLaTeX is an Emacs minor mode supporting fast
7623 insertion of environment templates and math in LaTeX.  Similar
7624 commands are also offered as part of the AUCTeX package, but it is not
7625 the same - CDLaTeX focuses on speediness for inserting LaTeX
7626 constructs.")
7627     (license license:gpl3+)))
7629 (define-public emacs-cnfonts
7630   (package
7631     (name "emacs-cnfonts")
7632     (version "0.9.1")
7633     (source
7634      (origin
7635        (method git-fetch)
7636        (uri (git-reference
7637              (url "https://github.com/tumashu/cnfonts.git")
7638              (commit (string-append "v" version))))
7639        (file-name (git-file-name name version))
7640        (sha256
7641         (base32 "11d44lf0m0kbzq1mvyqkl4aprys0xqaarp08nij57xnynin1rynx"))))
7642     (build-system emacs-build-system)
7643     (home-page "https://github.com/tumashu/cnfonts")
7644     (synopsis "Emacs Chinese fonts setup tool")
7645     (description "cnfonts is a Chinese fonts setup tool, allowing for easy
7646 configuration of Chinese fonts.")
7647     (license license:gpl2+)))
7649 (define-public emacs-php-mode
7650   (package
7651     (name "emacs-php-mode")
7652     (version "20171225.342")
7653     (source (origin
7654               (method url-fetch)
7655               (uri (string-append
7656                     "https://melpa.org/packages/php-mode-"
7657                     version ".tar"))
7658               (sha256
7659                (base32
7660                 "1zz682f34v4wsm2dyj1gnrnvsrqdq1cy7j8p6cvc398w2fziyg3q"))))
7661     (build-system emacs-build-system)
7662     (home-page "https://github.com/ejmr/php-mode")
7663     (synopsis "Major mode for editing PHP code")
7664     (description "@code{php-mode} is a major mode for editing PHP source
7665 code.  It's an extension of C mode; thus it inherits all C mode's navigation
7666 functionality.  But it colors according to the PHP grammar and indents
7667 according to the PEAR coding guidelines.  It also includes a couple handy
7668 IDE-type features such as documentation search and a source and class
7669 browser.")
7670     (license license:gpl3+)))
7672 (define-public emacs-pos-tip
7673   (package
7674     (name "emacs-pos-tip")
7675     (version "0.4.6")
7676     (source
7677      (origin
7678        (method git-fetch)
7679        (uri (git-reference
7680              (url "https://github.com/pitkali/pos-tip.git")
7681              (commit version)))
7682        (file-name (git-file-name name version))
7683        (sha256
7684         (base32 "0w8bnspnk871qndp18hs0wk4x9x31xr9rwbvf5dc8mcbnj29ch33"))))
7685     (build-system emacs-build-system)
7686     ;; The following functions and variables needed by emacs-pos-tip are
7687     ;; not included in emacs-minimal:
7688     ;; x-display-pixel-width, x-display-pixel-height, x-show-tip
7689     (arguments `(#:emacs ,emacs))
7690     (home-page "https://github.com/pitkali/pos-tip")
7691     (synopsis "Show tooltip at point")
7692     (description "The standard library tooltip.el provides a function for
7693 displaying a tooltip at the mouse position.  However, locating a tooltip at an
7694 arbitrary buffer position in a window is not easy.  Pos-tip provides such a
7695 function to be used by other frontend programs.")
7696     (license license:gpl2+)))
7698 (define-public emacs-pyim-basedict
7699   (package
7700     (name "emacs-pyim-basedict")
7701     (version "0.3.1")
7702     (source
7703      (origin
7704        (method git-fetch)
7705        (uri (git-reference
7706              (url "https://github.com/tumashu/pyim-basedict.git")
7707              (commit (string-append "v" version))))
7708        (file-name (git-file-name name version))
7709        (sha256
7710         (base32 "0576r8ap9gp91ycjf1d47pn13kxp0f9fysn09zlq44hr0s1y2y5d"))))
7711     (build-system emacs-build-system)
7712     (home-page "https://github.com/tumashu/pyim-basedict")
7713     (synopsis "Input method dictionary of pyim")
7714     (description "Pyim-basedict is the default pinyin input method dictionary,
7715 containing words from the rime project.")
7716     (license license:gpl2+)))
7718 (define-public emacs-pyim
7719   (package
7720     (name "emacs-pyim")
7721     (version "1.8")
7722     (source
7723      (origin
7724        (method git-fetch)
7725        (uri (git-reference
7726              (url "https://github.com/tumashu/pyim")
7727              (commit (string-append "v" version))))
7728        (file-name (git-file-name name version))
7729        (sha256
7730         (base32
7731          "16rma4cv7xgky0g3x4an27v30jdi6i1sqw43cl99zhkqvp43l3f9"))))
7732     (build-system emacs-build-system)
7733     (propagated-inputs
7734      `(("emacs-async" ,emacs-async)
7735        ("emacs-pyim-basedict" ,emacs-pyim-basedict)
7736        ("emacs-popup" ,emacs-popup)
7737        ("emacs-posframe" ,emacs-posframe)))
7738     (home-page "https://github.com/tumashu/pyim")
7739     (synopsis "Chinese input method")
7740     (description "Chinese input method which supports quanpin, shuangpin, wubi
7741 and cangjie.")
7742     (license license:gpl2+)))
7744 (define-public emacs-posframe
7745   (package
7746     (name "emacs-posframe")
7747     (version "0.5.0")
7748     (source
7749      (origin
7750        (method git-fetch)
7751        (uri (git-reference
7752              (url "https://github.com/tumashu/posframe")
7753              (commit (string-append "v" version))))
7754        (file-name (git-file-name name version))
7755        (sha256
7756         (base32
7757          "1fhjxj7gi2pj5rdnmf0gddiwd8iifgjgjp01c01npz1gwwixyqh3"))))
7758     (build-system emacs-build-system)
7759     ;; emacs-minimal does not include the function font-info
7760     (arguments `(#:emacs ,emacs))
7761     (home-page "https://github.com/tumashu/posframe")
7762     (synopsis "Pop a posframe (a child frame) at point")
7763     (description "@code{emacs-posframe} can pop a posframe at point.  A
7764 posframe is a child frame displayed within its root window's buffer.
7765 @code{emacs-posframe} is fast and works well with CJK languages.")
7766     (license license:gpl3+)))
7768 (define-public emacs-el2org
7769   (package
7770     (name "emacs-el2org")
7771     (version "0.6.0")
7772     (source
7773      (origin
7774        (method git-fetch)
7775        (uri (git-reference
7776              (url "https://github.com/tumashu/el2org.git")
7777              (commit (string-append "v" version))))
7778        (file-name (git-file-name name version))
7779        (sha256
7780         (base32 "0mzddqny6wpg1fv99xrvlv7rxmaifvmy5bvj4in4pldhm4cx4q1b"))))
7781     (build-system emacs-build-system)
7782     (home-page "https://github.com/tumashu/el2org")
7783     (synopsis "Convert Emacs-lisp file to org file")
7784     (description "El2org is a simple tool, which can convert Emacs-lisp file
7785 to org file, you can use this tool to write orgify commentary.")
7786     (license license:gpl2+)))
7788 (define-public emacs-mustache
7789   (package
7790     (name "emacs-mustache")
7791     (version "0.23")
7792     (source
7793      (origin
7794        (method git-fetch)
7795        (uri (git-reference
7796              (url "https://github.com/Wilfred/mustache.el.git")
7797              (commit version)))
7798        (file-name (git-file-name name version))
7799        (sha256
7800         (base32 "1n2ymd92qpvsby6ms0l3kjhdzzc47rri2aiscc6bs07hm4mjpr9q"))))
7801     (build-system emacs-build-system)
7802     (propagated-inputs
7803      `(("emacs-dash" ,emacs-dash)
7804        ("emacs-ht" ,emacs-ht)
7805        ("emacs-s" ,emacs-s)))
7806     (home-page "https://github.com/Wilfred/mustache.el")
7807     (synopsis "Mustache templating library for Emacs")
7808     (description "Mustache templating library for Emacs, mustache is
7809 a simple web template system, which is described as a logic-less system
7810 because it lacks any explicit control flow statements, both looping and
7811 conditional evaluation can be achieved using section tags processing lists
7812 and lambdas.")
7813     (license license:gpl3+)))
7815 (define-public emacs-org2web
7816   (package
7817     (name "emacs-org2web")
7818     (version "0.9.1")
7819     (source
7820      (origin
7821        (method git-fetch)
7822        (uri (git-reference
7823              (url "https://github.com/tumashu/org2web.git")
7824              (commit (string-append "v" version))))
7825        (file-name (git-file-name name version))
7826        (sha256
7827         (base32 "0wsvfn409a2ivbich8b8zqza78sprirg4bl7igx536ydqclmi0n7"))))
7828     (build-system emacs-build-system)
7829     (propagated-inputs
7830      `(("emacs-dash" ,emacs-dash)
7831        ("emacs-el2org" ,emacs-el2org)
7832        ("emacs-ht" ,emacs-ht)
7833        ("emacs-mustache" ,emacs-mustache)
7834        ("emacs-simple-httpd" ,emacs-simple-httpd)))
7835     (home-page "https://github.com/tumashu/org2web")
7836     (synopsis "Static site generator based on org-mode ")
7837     (description "Org2web is a static site generator based on org-mode,
7838 which code derived from Kelvin H's org-page.")
7839     (license license:gpl2+)))
7841 (define-public emacs-xelb
7842   (package
7843     (name "emacs-xelb")
7844     (version "0.17")
7845     (source (origin
7846               (method url-fetch)
7847               (uri (string-append "https://elpa.gnu.org/packages/xelb-"
7848                                   version ".tar"))
7849               (sha256
7850                (base32
7851                 "0k98580vq253fjdgklgqlwl450saninfw39fbq8lv3xsnp3dcgml"))))
7852     (build-system emacs-build-system)
7853     ;; The following functions and variables needed by emacs-xelb are
7854     ;; not included in emacs-minimal:
7855     ;; x-display-screens, x-keysym-table, x-alt-keysym, x-meta-keysym
7856     ;; x-hyper-keysym, x-super-keysym, libxml-parse-xml-region
7857     ;; x-display-pixel-width, x-display-pixel-height
7858     (arguments
7859      `(#:emacs ,emacs
7860        #:phases
7861        (modify-phases %standard-phases
7862          (add-after 'unpack 'regenerate-el-files
7863            (lambda* (#:key inputs #:allow-other-keys)
7864              (invoke "make"
7865                      (string-append "PROTO_PATH="
7866                                     (assoc-ref inputs "xcb-proto")
7867                                     "/share/xcb")
7868                      (string-append "EMACS_BIN="
7869                                     (assoc-ref inputs "emacs")
7870                                     "/bin/emacs -Q")))))))
7871     (native-inputs `(("xcb-proto" ,xcb-proto)))
7872     (home-page "https://github.com/ch11ng/xelb")
7873     (synopsis "X protocol Emacs Lisp binding")
7874     (description "@code{emacs-xelb} is a pure Emacs Lisp implementation of the
7875 X11 protocol based on the XML description files from the XCB project.  It
7876 features an object-oriented API and permits a certain degree of concurrency.
7877 It should enable you to implement low-level X11 applications.")
7878     (license license:gpl3+)))
7880 (define-public emacs-exwm
7881   (package
7882     (name "emacs-exwm")
7883     (version "0.22")
7884     (synopsis "Emacs X window manager")
7885     (source (origin
7886               (method url-fetch)
7887               (uri (string-append "https://elpa.gnu.org/packages/exwm-"
7888                                   version ".tar"))
7889               (sha256
7890                (base32
7891                 "0lppm8ng37i5s4x7xdrxhjbdcnpl6pyvn4g7w52zbckjsn8qnqh0"))))
7892     (build-system emacs-build-system)
7893     (propagated-inputs
7894      `(("emacs-xelb" ,emacs-xelb)))
7895     (inputs
7896      `(("xhost" ,xhost)
7897        ("dbus" ,dbus)))
7898     ;; The following functions and variables needed by emacs-exwm are
7899     ;; not included in emacs-minimal:
7900     ;; scroll-bar-mode, fringe-mode
7901     ;; x-display-pixel-width, x-display-pixel-height
7902     (arguments
7903      `(#:emacs ,emacs
7904        #:phases
7905        (modify-phases %standard-phases
7906          (add-after 'build 'install-xsession
7907            (lambda* (#:key inputs outputs #:allow-other-keys)
7908              (let* ((out (assoc-ref outputs "out"))
7909                     (xsessions (string-append out "/share/xsessions"))
7910                     (bin (string-append out "/bin"))
7911                     (exwm-executable (string-append bin "/exwm")))
7912                ;; Add a .desktop file to xsessions
7913                (mkdir-p xsessions)
7914                (mkdir-p bin)
7915                (with-output-to-file
7916                    (string-append xsessions "/exwm.desktop")
7917                  (lambda _
7918                    (format #t "[Desktop Entry]~@
7919                      Name=~a~@
7920                      Comment=~a~@
7921                      Exec=~a~@
7922                      TryExec=~:*~a~@
7923                      Type=Application~%" ,name ,synopsis exwm-executable)))
7924                ;; Add a shell wrapper to bin
7925                (with-output-to-file exwm-executable
7926                  (lambda _
7927                    (format #t "#!~a ~@
7928                      ~a +SI:localuser:$USER ~@
7929                      exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
7930                            (string-append (assoc-ref inputs "bash") "/bin/sh")
7931                            (string-append (assoc-ref inputs "xhost") "/bin/xhost")
7932                            (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
7933                            (string-append (assoc-ref inputs "emacs") "/bin/emacs")
7934                            '(cond
7935                              ((file-exists-p "~/.exwm")
7936                               (load-file "~/.exwm"))
7937                              ((not (featurep 'exwm))
7938                               (require 'exwm)
7939                               (require 'exwm-config)
7940                               (exwm-config-default)
7941                               (message (concat "exwm configuration not found. "
7942                                                "Falling back to default configuration...")))))))
7943                (chmod exwm-executable #o555)
7944                #t))))))
7945     (home-page "https://github.com/ch11ng/exwm")
7946     (description "EXWM is a full-featured tiling X window manager for Emacs
7947 built on top of XELB.")
7948     (license license:gpl3+)))
7950 (define-public emacs-switch-window
7951   (package
7952     (name "emacs-switch-window")
7953     (version "1.6.2")
7954     (source
7955      (origin
7956        (method git-fetch)
7957        (uri (git-reference
7958              (url "https://github.com/dimitri/switch-window")
7959              (commit (string-append "v" version))))
7960        (file-name (git-file-name name version))
7961        (sha256
7962         (base32
7963          "0rci96asgamr6qp6nkyr5vwrnslswjxcjd96yccy4aivh0g66yfg"))))
7964     (build-system emacs-build-system)
7965     (home-page "https://github.com/dimitri/switch-window")
7966     (synopsis "Emacs window switch tool")
7967     (description "Switch-window is an emacs window switch tool, which
7968 offer a visual way to choose a window to switch to, delete, split or
7969 other operations.")
7970     (license license:wtfpl2)))
7972 (define-public emacs-exwm-x
7973   (package
7974     (name "emacs-exwm-x")
7975     (version "1.9.0")
7976     (synopsis "Derivative window manager based on EXWM")
7977     (source
7978      (origin
7979        (method git-fetch)
7980        (uri (git-reference
7981              (url "https://github.com/tumashu/exwm-x")
7982              (commit (string-append "v" version))))
7983        (file-name (git-file-name name version))
7984        (sha256
7985         (base32
7986          "03l3dl7s1qys1kkh40rm1sfx7axy1b8sf5f6nyksj9ps6d30p5i4"))))
7987     (build-system emacs-build-system)
7988     (propagated-inputs
7989      `(("emacs-exwm" ,emacs-exwm)
7990        ("emacs-switch-window" ,emacs-switch-window)
7991        ("emacs-ivy" ,emacs-ivy)
7992        ("emacs-use-package" ,emacs-use-package)))
7993     (inputs
7994      `(("xhost" ,xhost)
7995        ("dbus" ,dbus)))
7996     ;; Need emacs instead of emacs-minimal,
7997     ;; for emacs's bin path will be inserted into bin/exwm-x file.
7998     (arguments
7999      `(#:emacs ,emacs
8000        #:phases
8001        (modify-phases %standard-phases
8002          (add-after 'build 'install-xsession
8003            (lambda* (#:key inputs outputs #:allow-other-keys)
8004              (let* ((out (assoc-ref outputs "out"))
8005                     (xsessions (string-append out "/share/xsessions"))
8006                     (bin (string-append out "/bin"))
8007                     (exwm-executable (string-append bin "/exwm-x")))
8008                ;; Add a .desktop file to xsessions
8009                (mkdir-p xsessions)
8010                (mkdir-p bin)
8011                (with-output-to-file
8012                    (string-append xsessions "/exwm-x.desktop")
8013                  (lambda _
8014                    (format #t "[Desktop Entry]~@
8015                      Name=~a~@
8016                      Comment=~a~@
8017                      Exec=~a~@
8018                      TryExec=~@*~a~@
8019                      Type=Application~%" ,name ,synopsis exwm-executable)))
8020                ;; Add a shell wrapper to bin
8021                (with-output-to-file exwm-executable
8022                  (lambda _
8023                    (format #t "#!~a ~@
8024                      ~a +SI:localuser:$USER ~@
8025                      exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
8026                            (string-append (assoc-ref inputs "bash") "/bin/sh")
8027                            (string-append (assoc-ref inputs "xhost") "/bin/xhost")
8028                            (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
8029                            (string-append (assoc-ref inputs "emacs") "/bin/emacs")
8030                            '(require 'exwmx-loader))))
8031                (chmod exwm-executable #o555)
8032                #t))))))
8033     (home-page "https://github.com/tumashu/exwm-x")
8034     (description "EXWM-X is a derivative window manager based on EXWM, with focus
8035 on mouse-control.")
8036     (license license:gpl3+)))
8038 (define-public emacs-gnugo
8039   (package
8040     (name "emacs-gnugo")
8041     (version "3.1.0")
8042     (source
8043      (origin
8044        (method url-fetch)
8045        (uri (string-append "https://elpa.gnu.org/packages/gnugo-"
8046                            version ".tar"))
8047        (sha256
8048         (base32
8049          "0xpjvs250gg71qwapdsb1hlc61gs0gpkjds01srf784fvyxx2gf1"))))
8050     (build-system emacs-build-system)
8051     (arguments
8052      `(#:phases (modify-phases %standard-phases
8053                   (add-after 'unpack 'configure-default-gnugo-xpms-variable
8054                     (lambda _
8055                       (substitute* "gnugo.el"
8056                         (("defvar gnugo-xpms nil")
8057                          "defvar gnugo-xpms #'gnugo-imgen-create-xpms"))
8058                       #t)))))
8059     (propagated-inputs
8060      `(("emacs-ascii-art-to-unicode" ,emacs-ascii-art-to-unicode)
8061        ("emacs-xpm" ,emacs-xpm)))
8062     (home-page "https://elpa.gnu.org/packages/gnugo.html")
8063     (synopsis "Emacs major mode for playing GNU Go")
8064     (description "This package provides an Emacs based interface for GNU Go.
8065 It has a graphical mode where the board and stones are drawn using XPM images
8066 and supports the use of a mouse.")
8067     (license license:gpl3+)))
8069 (define-public emacs-gnuplot
8070   (package
8071     (name "emacs-gnuplot")
8072     (version "0.7.0")
8073     (source
8074      (origin
8075        (method git-fetch)
8076        (uri (git-reference
8077              (url "https://github.com/bruceravel/gnuplot-mode.git")
8078              (commit version)))
8079        (file-name (git-file-name name version))
8080        (sha256
8081         (base32 "0bwri3cvm2vr27kyqkrddm28fs08axnd4nm9amfgp54xp20bn4yn"))))
8082     (build-system gnu-build-system)
8083     (native-inputs `(("emacs" ,emacs-minimal)))
8084     (arguments
8085      (let ((elisp-dir (string-append "/share/emacs/site-lisp/guix.d"
8086                                      "/gnuplot-" version)))
8087        `(#:modules ((guix build gnu-build-system)
8088                     (guix build utils)
8089                     (guix build emacs-utils))
8090          #:imported-modules (,@%gnu-build-system-modules
8091                              (guix build emacs-utils))
8092          #:configure-flags
8093          (list (string-append "EMACS=" (assoc-ref %build-inputs "emacs")
8094                               "/bin/emacs")
8095                (string-append "--with-lispdir=" %output ,elisp-dir))
8096          #:phases
8097          (modify-phases %standard-phases
8098            (add-after 'install 'generate-autoloads
8099              (lambda* (#:key outputs #:allow-other-keys)
8100                (emacs-generate-autoloads
8101                 "gnuplot"
8102                 (string-append (assoc-ref outputs "out") ,elisp-dir))
8103                #t))))))
8104     (home-page "https://github.com/bruceravel/gnuplot-mode")
8105     (synopsis "Emacs major mode for interacting with gnuplot")
8106     (description "@code{emacs-gnuplot} is an emacs major mode for interacting
8107 with gnuplot.")
8108     (license license:gpl2+)))
8110 (define-public emacs-transpose-frame
8111   (package
8112     (name "emacs-transpose-frame")
8113     (version "0.1.0")
8114     (source
8115      (origin
8116        (method url-fetch)
8117        (uri "http://www.emacswiki.org/emacs/download/transpose-frame.el")
8118        (file-name (string-append "transpose-frame-" version ".el"))
8119        (sha256
8120         (base32
8121          "1f67yksgw9s6j0033hmqzaxx2a93jm11sd5ys7cc3li5gfh680m4"))))
8122     (build-system emacs-build-system)
8123     (home-page "https://www.emacswiki.org/emacs/TransposeFrame")
8124     (synopsis "Transpose window arrangement in current frame")
8125     (description "@code{emacs-transpose-frame} provides some interactive
8126 functions which allows users to transpose windows arrangement in currently
8127 selected frame.")
8128     (license license:bsd-2)))
8130 (define-public emacs-key-chord
8131   (package
8132     (name "emacs-key-chord")
8133     (version "0.6")
8134     (source
8135      (origin
8136        (method url-fetch)
8137        (uri "https://www.emacswiki.org/emacs/download/key-chord.el")
8138        (file-name (string-append "key-chord-" version ".el"))
8139        (sha256
8140         (base32
8141          "03m44pqggfrd53nh9dvpdjgm0rvca34qxmd30hr33hzprzjambxg"))))
8142     (build-system emacs-build-system)
8143     (home-page "https://www.emacswiki.org/emacs/key-chord.el")
8144     (synopsis "Map pairs of simultaneously pressed keys to Emacs commands")
8145     (description "@code{emacs-key-chord} provides @code{key-chord-mode}, a
8146 mode for binding key chords to commands.  A key chord is defined as two keys
8147 pressed simultaneously or a single key quickly pressed twice.")
8148     (license license:gpl2+)))
8150 (define-public emacs-evil-surround
8151   (package
8152     (name "emacs-evil-surround")
8153     (version "1.0.4")
8154     (source
8155      (origin
8156        (method git-fetch)
8157        (uri (git-reference
8158              (url "https://github.com/emacs-evil/evil-surround")
8159              (commit version)))
8160        (file-name (git-file-name name version))
8161        (sha256
8162         (base32 "1ajsi6xn8mliwzl24h6pp9rd91z7f20yvkphr9q7k6zpjrd7fb9q"))))
8163     (build-system emacs-build-system)
8164     (propagated-inputs
8165      `(("emacs-evil" ,emacs-evil)))
8166     (home-page "https://github.com/emacs-evil/evil-surround")
8167     (synopsis "Easily modify surrounding parentheses and quotes")
8168     (description "@code{emacs-evil-surround} allows easy deletion, change and
8169 addition of surrounding pairs, such as parentheses and quotes, in evil mode.")
8170     (license license:gpl3+)))
8172 (define-public emacs-evil-commentary
8173   (package
8174     (name "emacs-evil-commentary")
8175     (version "2.1.1")
8176     (source
8177      (origin
8178        (method git-fetch)
8179        (uri (git-reference
8180              (url "https://github.com/linktohack/evil-commentary.git")
8181              (commit (string-append "v" version))))
8182        (file-name (git-file-name name version))
8183        (sha256
8184         (base32 "0zjs9zyqfygnpxapvf0ymmiid40i06cxbhjzd81zw33nafgkf6r4"))))
8185     (build-system emacs-build-system)
8186     (propagated-inputs
8187      `(("emacs-evil" ,emacs-evil)))
8188     (home-page "https://github.com/linktohack/evil-commentary")
8189     (synopsis "Comment out code in evil mode")
8190     (description "@code{emacs-evil-commentary} adds keybindings to easily
8191 comment out lines of code in evil mode.  It provides @code{gcc} to comment out
8192 lines, and @code{gc} to comment out the target of a motion.")
8193     (license license:gpl3+)))
8195 ;; Tests for emacs-ansi have a circular dependency with ert-runner, and
8196 ;; therefore cannot be run
8197 (define-public emacs-ansi
8198   (package
8199     (name "emacs-ansi")
8200     (version "0.4.1")
8201     (source
8202      (origin
8203        (method git-fetch)
8204        (uri (git-reference
8205              (url "https://github.com/rejeep/ansi.el.git")
8206              (commit (string-append "v" version))))
8207        (file-name (git-file-name name version))
8208        (sha256
8209         (base32 "1hbddxarr40ygvaw4pwaivq2l4f0brszw73w1r50lkjlggb7bl3g"))))
8210     (build-system emacs-build-system)
8211     (propagated-inputs
8212      `(("emacs-dash" ,emacs-dash)
8213        ("emacs-s" ,emacs-s)))
8214     (home-page "https://github.com/rejeep/ansi.el")
8215     (synopsis "Convert strings to ANSI")
8216     (description "@code{emacs-ansi} defines functions that turns simple
8217 strings to ANSI strings.  Turning a string into an ANSI string can be to add
8218 color to a text, add color in the background of a text or adding a style, such
8219 as bold, underscore or italic.")
8220     (license license:gpl3+)))
8222 ;; Tests for emacs-commander have a circular dependency with ert-runner, and
8223 ;; therefore cannot be run
8224 (define-public emacs-commander
8225   (package
8226     (name "emacs-commander")
8227     (version "0.7.0")
8228     (source
8229      (origin
8230        (method git-fetch)
8231        (uri (git-reference
8232              (url "https://github.com/rejeep/commander.el.git")
8233              (commit (string-append "v" version))))
8234        (file-name (git-file-name name version))
8235        (sha256
8236         (base32 "1j6hhyzww7wfwk6bllbb5mk4hw4qs8hsgfbfdifsam9c6i4spm45"))))
8237     (build-system emacs-build-system)
8238     (propagated-inputs
8239      `(("emacs-dash" ,emacs-dash)
8240        ("emacs-f" ,emacs-f)
8241        ("emacs-s" ,emacs-s)))
8242     (home-page "https://github.com/rejeep/commander.el")
8243     (synopsis "Emacs command line parser")
8244     (description "@code{emacs-commander} provides command line parsing for
8245 Emacs.")
8246     (license license:gpl3+)))
8248 ;; Tests for ert-runner have a circular dependency with ecukes, and therefore
8249 ;; cannot be run
8250 (define-public emacs-ert-runner
8251   (let ((version "0.7.0")
8252         (revision "1")
8253         (commit "90b8fdd5970ef76a4649be60003b37f82cdc1a65"))
8254     (package
8255       (name "emacs-ert-runner")
8256       (version (git-version "0.7.0" revision commit))
8257       (source
8258        (origin
8259          (method git-fetch)
8260          (uri (git-reference
8261                (url "https://github.com/rejeep/ert-runner.el.git")
8262                (commit commit)))
8263          (file-name (git-file-name name version))
8264          (sha256
8265           (base32
8266            "04nxmyzncacj2wmzd84vv9wkkr2dk9lcb10dvygqmg3p1gadnwzz"))))
8267       (build-system emacs-build-system)
8268       (inputs
8269        `(("emacs-ansi" ,emacs-ansi)
8270          ("emacs-commander" ,emacs-commander)
8271          ("emacs-dash" ,emacs-dash)
8272          ("emacs-f" ,emacs-f)
8273          ("emacs-s" ,emacs-s)
8274          ("emacs-shut-up" ,emacs-shut-up)))
8275       (arguments
8276        `(#:phases
8277          (modify-phases %standard-phases
8278            (add-after 'install 'install-executable
8279              (lambda* (#:key inputs outputs #:allow-other-keys)
8280                (let ((out (assoc-ref outputs "out"))
8281                      (source-directory (string-append
8282                                   (getenv "TMPDIR") "/source")))
8283                  (substitute* "bin/ert-runner"
8284                    (("ERT_RUNNER=\"\\$\\(dirname \\$\\(dirname \\$0\\)\\)")
8285                     (string-append "ERT_RUNNER=\"" out
8286                                    "/share/emacs/site-lisp/guix.d/ert-runner-"
8287                                    ,version)))
8288                  (install-file "bin/ert-runner" (string-append out "/bin"))
8289                  (wrap-program (string-append out "/bin/ert-runner")
8290                    (list "EMACSLOADPATH" ":" 'prefix
8291                          ;; Do not capture the transient source directory in
8292                          ;; the wrapper.
8293                          (delete source-directory
8294                                  (string-split (getenv "EMACSLOADPATH") #\:))))
8295                  #t))))
8296          #:include (cons* "^reporters/.*\\.el$" %default-include)))
8297       (home-page "https://github.com/rejeep/ert-runner.el")
8298       (synopsis "Opinionated Ert testing workflow")
8299       (description "@code{ert-runner} is a tool for Emacs projects tested
8300 using ERT.  It assumes a certain test structure setup and can therefore make
8301 running tests easier.")
8302       (license license:gpl3+))))
8304 (define-public ert-runner
8305   (deprecated-package "ert-runner" emacs-ert-runner))
8307 (define-public emacs-xtest
8308   (package
8309     (name "emacs-xtest")
8310     (version "1.1.0")
8311     (source (origin
8312               (method git-fetch)
8313               (uri (git-reference
8314                     (url "https://github.com/promethial/xtest.git")
8315                     (commit (string-append "v" version))))
8316               (file-name (git-file-name name version))
8317               (sha256
8318                (base32
8319                 "1wqx6hlqcmqiljydih5fx89dw06g8w728pyn4iqsap8jwgjngb09"))))
8320     (arguments
8321      `(#:exclude '()))
8322     (build-system emacs-build-system)
8323     (home-page "https://github.com/promethial/xtest/")
8324     (synopsis "Simple testing with Emacs")
8325     (description "This package provides a simple testing library for Emacs.")
8326     (license license:gpl3+)))
8328 (define-public emacs-disable-mouse
8329   (package
8330     (name "emacs-disable-mouse")
8331     (version "0.2")
8332     (source
8333      (origin
8334        (method git-fetch)
8335        (uri (git-reference
8336              (url "https://github.com/purcell/disable-mouse.git")
8337              (commit version)))
8338        (file-name (git-file-name name version))
8339        (sha256
8340         (base32 "1v1y5hf6k6ng7xsvgb27nh740d14m6l4krr0paccda8zgm4mw357"))))
8341     (build-system emacs-build-system)
8342     (home-page "https://github.com/purcell/disable-mouse")
8343     (synopsis "Disable mouse commands globally")
8344     (description
8345      "Provides @code{disable-mouse-mode} and @code{global-disable-mouse-mode},
8346 pair of minor modes which suppress all mouse events by intercepting them and
8347 running a customisable handler command (@code{ignore} by default). ")
8348     (license license:gpl3+)))
8350 (define-public emacs-json-reformat
8351   (package
8352     (name "emacs-json-reformat")
8353     (version "0.0.6")
8354     (source
8355      (origin
8356        (method git-fetch)
8357        (uri (git-reference
8358              (url "https://github.com/gongo/json-reformat.git")
8359              (commit version)))
8360        (file-name (git-file-name name version))
8361        (sha256
8362         (base32 "0qp4n2k6s69jj4gwwimkpadjv245y54wk3bxb1x96f034gkp81vs"))
8363        (patches (search-patches "emacs-json-reformat-fix-tests.patch"))))
8364     (build-system emacs-build-system)
8365     (propagated-inputs
8366      `(("emacs-undercover" ,emacs-undercover)))
8367     (native-inputs
8368      `(("emacs-dash" ,emacs-dash)
8369        ("emacs-shut-up" ,emacs-shut-up)
8370        ("ert-runner" ,emacs-ert-runner)))
8371     (arguments
8372      `(#:tests? #t
8373        #:test-command '("ert-runner")
8374        #:phases
8375        (modify-phases %standard-phases
8376          (add-before 'check 'make-tests-writable
8377            (lambda _
8378              (for-each make-file-writable (find-files "test"))
8379              #t))
8380          (add-before 'check 'delete-json-objects-order-test
8381            (lambda _
8382              (emacs-batch-edit-file "test/json-reformat-test.el"
8383                `(progn (progn (goto-char (point-min))
8384                               (re-search-forward
8385                                "ert-deftest json-reformat-test:json-reformat-region")
8386                               (beginning-of-line)
8387                               (kill-sexp))
8388                        (basic-save-buffer)))
8389              #t)))))
8390     (home-page "https://github.com/gongo/json-reformat")
8391     (synopsis "Reformatting tool for JSON")
8392     (description "@code{json-reformat} provides a reformatting tool for
8393 @url{http://json.org/, JSON}.")
8394     (license license:gpl3+)))
8396 (define-public emacs-json-snatcher
8397   (package
8398     (name "emacs-json-snatcher")
8399     (version "1.0.0")
8400     (source
8401      (origin
8402        (method git-fetch)
8403        (uri (git-reference
8404              (url "https://github.com/Sterlingg/json-snatcher.git")
8405              (commit version)))
8406        (file-name (git-file-name name version))
8407        (sha256
8408         (base32 "05zsgnk7grgw9jzwl80h5sxfpifxlr37b4mkbvx7mjq4z14xc2jw"))))
8409     (build-system emacs-build-system)
8410     (home-page "https://github.com/sterlingg/json-snatcher")
8411     (synopsis "Grabs the path to JSON values in a JSON file")
8412     (description "@code{emacs-json-snatcher} grabs the path to JSON values in
8413 a @url{http://json.org/, JSON} file.")
8414     (license license:gpl3+)))
8416 (define-public emacs-json-mode
8417   (package
8418     (name "emacs-json-mode")
8419     (version "1.7.0")
8420     (source
8421      (origin
8422        (method git-fetch)
8423        (uri (git-reference
8424              (url "https://github.com/joshwnj/json-mode.git")
8425              (commit (string-append "v" version))))
8426        (file-name (git-file-name name version))
8427        (sha256
8428         (base32 "0i79lqzdg59vkqwjd3q092xxn9vhxspb1vn4pkis0vfvn46g01jy"))))
8429     (build-system emacs-build-system)
8430     (propagated-inputs
8431      `(("emacs-json-reformat" ,emacs-json-reformat)
8432        ("emacs-json-snatcher" ,emacs-json-snatcher)))
8433     (home-page "https://github.com/joshwnj/json-mode")
8434     (synopsis "Major mode for editing JSON files")
8435     (description "@code{json-mode} extends the builtin js-mode syntax
8436 highlighting.")
8437     (license license:gpl3+)))
8439 (define-public emacs-restclient
8440   (let ((commit "422ee8d8b077dffe65706a0f027ed700b84746bc")
8441         (version "0")
8442         (revision "2"))                 ;Guix package revision,
8443                                         ;upstream doesn't have official releases
8444     (package
8445       (name "emacs-restclient")
8446       (version (git-version version revision commit))
8447       (source (origin
8448                 (method git-fetch)
8449                 (uri (git-reference
8450                       (url "https://github.com/pashky/restclient.el.git")
8451                       (commit commit)))
8452                 (sha256
8453                  (base32
8454                   "067nin7vxkdpffxa0q61ybv7szihhvpdinivmci9qkbb86rs9kkz"))
8455                 (file-name (git-file-name name version))))
8456       (build-system emacs-build-system)
8457       (propagated-inputs
8458        `(("emacs-helm" ,emacs-helm)))
8459       (home-page "https://github.com/pashky/restclient.el")
8460       (synopsis "Explore and test HTTP REST webservices")
8461       (description
8462        "This tool allows for testing and exploration of HTTP REST Web services
8463 from within Emacs.  Restclient runs queries from a plan-text query sheet,
8464 displays results pretty-printed in XML or JSON with @code{restclient-mode}")
8465       (license license:public-domain))))
8467 (define-public emacs-whitespace-cleanup-mode
8468   (let ((commit "72427144b054b0238a86e1348c45d986b8830d9d")
8469         (revision "1"))
8470     (package
8471       (name "emacs-whitespace-cleanup-mode")
8472       (version (git-version "0.10" revision commit))
8473       (source (origin
8474                 (method git-fetch)
8475                 (uri (git-reference
8476                       (url "https://github.com/purcell/whitespace-cleanup-mode")
8477                       (commit commit)))
8478                 (sha256
8479                  (base32
8480                   "1zlk534jbwrsabcg3kqlzk4h4hwya60lh6q2n1v4yn4rpf5ghsag"))
8481                 (file-name (git-file-name name version))))
8482       (build-system emacs-build-system)
8483       (home-page "https://github.com/purcell/whitespace-cleanup-mode")
8484       (synopsis "Intelligently call @code{whitespace-cleanup} on save")
8485       (description
8486        "This package provides a minor mode that calls
8487 @code{whitespace-cleanup} before saving the current buffer only if the
8488 whitespace in the buffer was initially clean.")
8489       (license license:gpl3+))))
8491 (define-public emacs-eimp
8492   (let ((version "1.4.0")
8493         (commit "2e7536fe6d8f7faf1bad7a8ae37faba0162c3b4f")
8494         (revision "1"))
8495     (package
8496       (name "emacs-eimp")
8497       (version (git-version version revision commit))
8498       (source
8499        (origin
8500          (method git-fetch)
8501          (uri (git-reference
8502                (url "https://github.com/nicferrier/eimp.git")
8503                (commit commit)))
8504          (file-name (git-file-name name version))
8505          (sha256
8506           (base32
8507            "154d57yafxbcf39r89n5j43c86rp2fki3lw3gwy7ww2g6qkclcra"))))
8508       (build-system emacs-build-system)
8509       (arguments
8510        `(#:phases
8511          (modify-phases %standard-phases
8512            (add-after 'unpack 'configure
8513              (lambda* (#:key inputs #:allow-other-keys)
8514                (let ((imagemagick (assoc-ref inputs "imagemagick")))
8515                  ;; eimp.el is read-only in git.
8516                  (chmod "eimp.el" #o644)
8517                  (emacs-substitute-variables "eimp.el"
8518                    ("eimp-mogrify-program"
8519                     (string-append imagemagick "/bin/mogrify"))))
8520                #t)))))
8521       (inputs
8522        `(("imagemagick" ,imagemagick)))
8523       (home-page "https://github.com/nicferrier/eimp")
8524       (synopsis "Interactive image manipulation utility for Emacs")
8525       (description "@code{emacs-eimp} allows interactive image manipulation
8526 from within Emacs.  It uses the code@{mogrify} utility from ImageMagick to do
8527 the actual transformations.")
8528       (license license:gpl2+))))
8530 (define-public emacs-dired-hacks
8531   (let ((commit "2c1234592aee91dcd9401bcd67213e6a4a464fd9")
8532         (revision "1"))
8533     (package
8534       (name "emacs-dired-hacks")
8535       (version (string-append "0.0.1-" revision "."
8536                               (string-take commit 7)))
8537       (source (origin
8538                 (method git-fetch)
8539                 (uri (git-reference
8540                       (url "https://github.com/Fuco1/dired-hacks.git")
8541                       (commit commit)))
8542                 (file-name (git-file-name name version))
8543                 (sha256
8544                  (base32
8545                   "1g7mky41cahpryzj6frdgzdymknpqq7pidzfjj9304887kijmhj3"))))
8546       (build-system emacs-build-system)
8547       (propagated-inputs
8548        `(("emacs-dash" ,emacs-dash)
8549          ("emacs-eimp" ,emacs-eimp)
8550          ("emacs-f" ,emacs-f)
8551          ("emacs-s" ,emacs-s)))
8552       (home-page "https://github.com/Fuco1/dired-hacks")
8553       (synopsis
8554        "Collection of useful dired additions")
8555       (description
8556        "Collection of Emacs dired mode additions:
8557 @itemize
8558 @item dired-avfs
8559 @item dired-columns
8560 @item dired-filter
8561 @item dired-hacks-utils
8562 @item dired-images
8563 @item dired-list
8564 @item dired-narrow
8565 @item dired-open
8566 @item dired-rainbow
8567 @item dired-ranger
8568 @item dired-subtree
8569 @item dired-tagsistant
8570 @end itemize\n")
8571       (license license:gpl3+))))
8573 (define-public emacs-dired-sidebar
8574   (let ((commit "06bd0d40bab812c61a668129daf29ba359424454")
8575         (revision "0"))
8576     (package
8577       (name "emacs-dired-sidebar")
8578       (home-page "https://github.com/jojojames/dired-sidebar")
8579       (version (git-version "0.0.1" revision commit))
8580       (source (origin
8581                 (method git-fetch)
8582                 (uri (git-reference (url home-page) (commit commit)))
8583                 (file-name (git-file-name name version))
8584                 (sha256
8585                  (base32
8586                   "0lvwvq6sl80sha9fq5m4568sg534dhmifyjqw75bqddcbf3by84x"))))
8587       (build-system emacs-build-system)
8588       (propagated-inputs
8589        `(("emacs-dired-subtree" ,emacs-dired-hacks)))
8590       (synopsis "Sidebar for Emacs using Dired")
8591       (description
8592        "This package provides a sidebar for Emacs similar to @code{NeoTree}
8593 or @code{treemacs}, but leveraging @code{Dired} to do the job of display.")
8594       (license license:gpl3+))))
8596 (define-public emacs-which-key
8597   (package
8598     (name "emacs-which-key")
8599     (version "3.3.1")
8600     (source
8601      (origin
8602        (method git-fetch)
8603        (uri (git-reference
8604              (url "https://github.com/justbur/emacs-which-key.git")
8605              (commit (string-append "v" version))))
8606        (file-name (git-file-name name version))
8607        (sha256
8608         (base32 "1dh6kr00wmql46whjkvnl953zngiv5j99ypvr1b3cb2174623afb"))))
8609     (build-system emacs-build-system)
8610     (arguments
8611      `(#:tests? #t
8612        #:test-command '("emacs" "--batch"
8613                         "-l" "which-key-tests.el"
8614                         "-f" "ert-run-tests-batch-and-exit")))
8615     (home-page "https://github.com/justbur/emacs-which-key")
8616     (synopsis "Display available key bindings in popup")
8617     (description
8618      "@code{emacs-which-key} is a minor mode for Emacs that displays the key
8619 bindings following your currently entered incomplete command (a prefix) in a
8620 popup.  For example, after enabling the minor mode if you enter C-x and wait
8621 for the default of 1 second, the minibuffer will expand with all of the
8622 available key bindings that follow C-x (or as many as space allows given your
8623 settings).")
8624     (license license:gpl3+)))
8626 (define-public emacs-ws-butler
8627   (package
8628     (name "emacs-ws-butler")
8629     (version "0.6")
8630     (source (origin
8631               (method git-fetch)
8632               (uri (git-reference
8633                     (url "https://github.com/lewang/ws-butler.git")
8634                     (commit "323b651dd70ee40a25accc940b8f80c3a3185205")))
8635               (file-name (git-file-name name version))
8636               (sha256
8637                (base32
8638                 "1a4b0lsmwq84qfx51c5xy4fryhb1ysld4fhgw2vr37izf53379sb"))))
8639     (build-system emacs-build-system)
8640     (native-inputs
8641      `(("ert-runner" ,emacs-ert-runner)))
8642     (arguments
8643      `(#:tests? #t
8644        #:test-command '("ert-runner" "tests")))
8645     (home-page "https://github.com/lewang/ws-butler")
8646     (synopsis "Trim spaces from end of lines")
8647     (description
8648      "This Emacs package automatically and unobtrusively trims whitespace
8649 characters from end of lines.")
8650     (license license:gpl3+)))
8652 (define-public emacs-org-edit-latex
8653   (package
8654     (name "emacs-org-edit-latex")
8655     (version "0.8.0")
8656     (source
8657      (origin
8658        (method git-fetch)
8659        (uri (git-reference
8660              (url "https://github.com/et2010/org-edit-latex.git")
8661              (commit (string-append "v" version))))
8662        (file-name (git-file-name name version))
8663        (sha256
8664         (base32 "0zcllyhx9n9vcr5w87h0hfz25v52lvh5fi717cb7mf3jh89zh842"))))
8665     (build-system emacs-build-system)
8666     (propagated-inputs
8667      `(("emacs-auctex" ,emacs-auctex)
8668        ;; The version of org in Emacs 25.2 is not sufficient, because the
8669        ;; `org-latex-make-preamble' function is required.
8670        ("emacs-org" ,emacs-org)))
8671     (home-page "https://github.com/et2010/org-edit-latex")
8672     (synopsis "Edit a latex fragment just like editing a src block")
8673     (description "@code{emacs-org-edit-latex} is an extension for org-mode.
8674 It lets you edit a latex fragment in a dedicated buffer just like editing a
8675 src block.")
8676     (license license:gpl3+)))
8678 (define-public emacs-emamux
8679   (package
8680     (name "emacs-emamux")
8681     (version "0.14")
8682     (source
8683      (origin
8684        (method git-fetch)
8685        (uri (git-reference
8686              (url "https://github.com/syohex/emacs-emamux.git")
8687              (commit version)))
8688        (file-name (git-file-name name version))
8689        (sha256
8690         (base32 "19y69qw79miim9cz5ji54gwspjkcp9g2c1xr5s7jj2fiabnxax6b"))))
8691     (build-system emacs-build-system)
8692     (home-page "https://github.com/syohex/emacs-emamux")
8693     (synopsis "Manipulate Tmux from Emacs")
8694     (description
8695      "@code{emacs-emamux} lets Emacs interact with the @code{tmux} terminal
8696 multiplexer.")
8697     (license license:gpl3+)))
8699 (define-public emacs-rpm-spec-mode
8700   (package
8701     (name "emacs-rpm-spec-mode")
8702     (version "0.16")
8703     (source
8704      (origin
8705        (method url-fetch)
8706        ;; URI has the Fedora release number instead of the version
8707        ;; number. This will have to updated manually every new release.
8708        (uri (string-append
8709              "https://src.fedoraproject.org/cgit/rpms"
8710              "/emacs-rpm-spec-mode.git/snapshot"
8711              "/emacs-rpm-spec-mode-f26.tar.gz"))
8712        (sha256
8713         (base32
8714          "17dz80lhjrc89fj17pysl8slahzrqdkxgcjdk55zls6jizkr6kz3"))))
8715     (build-system emacs-build-system)
8716     (home-page "http://pkgs.fedoraproject.org/cgit/rpms/emacs-rpm-spec-mode.git")
8717     (synopsis "Emacs major mode for editing RPM spec files")
8718     (description "@code{emacs-rpm-spec-mode} provides an Emacs major mode for
8719 editing RPM spec files.")
8720     (license license:gpl2+)))
8722 (define-public emacs-lcr
8723   (package
8724     (name "emacs-lcr")
8725     (version "1.1")
8726     (source
8727      (origin
8728        (method git-fetch)
8729        (uri (git-reference
8730              (url "https://github.com/jyp/lcr")
8731              (commit version)))
8732        (file-name (git-file-name name version))
8733        (sha256
8734         (base32 "0mc55icihxqpf8b05990q1lc2nj2792wcgyr73xsiqx0963sjaj8"))))
8735     (build-system emacs-build-system)
8736     (propagated-inputs
8737      `(("emacs-dash" ,emacs-dash)))
8738     (home-page "https://github.com/jyp/lcr")
8739     (synopsis "Lightweight coroutines in Emacs Lisp")
8740     (description "This package provides macros that can translate code into
8741 equivalent continuation-passing code, as well as miscellaneous utility
8742 functions written in continuation-passing style.")
8743     (license license:gpl3+)))
8745 (define-public emacs-attrap
8746   (let ((commit "3b092bb8f6755a97e6ecb7623b9d2dde58beba4a")
8747         (revision "1"))
8748     (package
8749       (name "emacs-attrap")
8750       (version (git-version "1.0" revision commit))
8751       (source (origin
8752                 (method git-fetch)
8753                 (uri (git-reference
8754                       (url "https://github.com/jyp/attrap")
8755                       (commit commit)))
8756                 (sha256
8757                  (base32
8758                   "05d32980saji8ja1pcv65l0s3dq7w0n5hpikbf246hciy1x067pp"))
8759                 (file-name (git-file-name name version))))
8760       (build-system emacs-build-system)
8761       (propagated-inputs
8762        `(("emacs-dash" ,emacs-dash)
8763          ("emacs-f" ,emacs-f)
8764          ("emacs-flycheck" ,emacs-flycheck)
8765          ("emacs-s" ,emacs-s)))
8766       (home-page "https://github.com/jyp/attrap")
8767       (synopsis "Fix coding error at point")
8768       (description "This package provides a command to fix the Flycheck error
8769 at point.")
8770       (license license:gpl3+))))
8772 (define-public emacs-git-messenger
8773   (package
8774     (name "emacs-git-messenger")
8775     (version "0.18")
8776     (source
8777      (origin
8778        (method git-fetch)
8779        (uri (git-reference
8780              (url "https://github.com/syohex/emacs-git-messenger.git")
8781              (commit version)))
8782        (file-name (git-file-name name version))
8783        (sha256
8784         (base32 "04fnby2nblk8l70gv09asxkmnn53fh1pdfs77ix44npp99fyw8ix"))))
8785     (build-system emacs-build-system)
8786     (propagated-inputs
8787      `(("emacs-popup" ,emacs-popup)))
8788     (arguments
8789      `(#:tests? #t
8790        #:test-command '("emacs" "--batch" "-l" "test/test.el"
8791                         "-f" "ert-run-tests-batch-and-exit")))
8792     (home-page "https://github.com/syohex/emacs-git-messenger")
8793     (synopsis "Popup commit message at current line")
8794     (description "@code{emacs-git-messenger} provides
8795 @code{git-messenger:popup-message}, a function that when called, will popup
8796 the last git commit message for the current line.  This uses git-blame
8797 internally.")
8798     (license license:gpl3+)))
8800 (define-public emacs-gitpatch
8801   (package
8802     (name "emacs-gitpatch")
8803     (version "0.5.1")
8804     (source
8805      (origin
8806        (method git-fetch)
8807        (uri (git-reference
8808              (url "https://github.com/tumashu/gitpatch.git")
8809              (commit (string-append "v" version))))
8810        (file-name (git-file-name name version))
8811        (sha256
8812         (base32 "1drf4fvmak7brf16axkh4nfz8pg44i7pjhfjz3dbkycbpp8y5vig"))))
8813     (build-system emacs-build-system)
8814     (home-page "https://github.com/tumashu/gitpatch")
8815     (synopsis "Mail git patch from Emacs")
8816     (description "@code{emacs-gitpatch} lets users easily send git patches,
8817 created by @code{git format-patch}, from @code{magit}, @code{dired} and
8818 @code{ibuffer} buffers.")
8819     (license license:gpl3+)))
8821 (define-public emacs-erc-hl-nicks
8822   (package
8823     (name "emacs-erc-hl-nicks")
8824     (version "1.3.3")
8825     (source
8826      (origin
8827        (method git-fetch)
8828        (uri (git-reference
8829              (url "https://github.com/leathekd/erc-hl-nicks")
8830              (commit version)))
8831        (file-name (git-file-name name version))
8832        (sha256
8833         (base32 "0c82rxpl5v7bbxirf1ksg06xv5xcddh8nkrpj7i6nvfarwdfnk4f"))))
8834     (build-system emacs-build-system)
8835     (synopsis "Nickname highlighting for Emacs ERC")
8836     (description "@code{erc-hl-nicks} highlights nicknames in ERC, an IRC
8837 client for Emacs.  The main features are:
8838 @itemize
8839 @item Auto-colorizes nicknames without having to specify colors
8840 @item Ignores certain characters that IRC clients add to nicknames to avoid
8841 duplicates (nickname, nickname’, nickname\", etc.)
8842 @item Attempts to produce colors with a sufficient amount of contrast between
8843 the nick color and the background color
8844 @end itemize\n")
8845     (home-page "https://github.com/leathekd/erc-hl-nicks")
8846     (license license:gpl3+)))
8848 (define-public emacs-engine-mode
8849   (package
8850     (name "emacs-engine-mode")
8851     (version "2.0.0")
8852     (source
8853      (origin
8854        (method git-fetch)
8855        (uri (git-reference
8856              (url "https://github.com/hrs/engine-mode.git")
8857              (commit (string-append "v" version))))
8858        (file-name (git-file-name name version))
8859        (sha256
8860         (base32 "02xas46nl28mascqsyr1zcd4hn15bh0fjv2xlxv1kmrj0pis94ml"))))
8861     (build-system emacs-build-system)
8862     (synopsis "Minor mode for defining and querying search engines")
8863     (description "@code{engine-mode} is a global minor mode for Emacs.  It
8864 enables you to easily define search engines, bind them to keybindings, and
8865 query them from the comfort of your editor.")
8866     (home-page "https://github.com/hrs/engine-mode")
8867     (license license:gpl3+)))
8869 (define-public emacs-prop-menu
8870   (package
8871     (name "emacs-prop-menu")
8872     (version "0.1.2")
8873     (source
8874      (origin
8875        (method url-fetch)
8876        (uri (string-append
8877              "http://stable.melpa.org/packages/prop-menu-"
8878              version ".el"))
8879        (sha256
8880         (base32
8881          "01bk4sjafzz7gqrkv9jg0pa85qr34vbk3q8ga2b0m61bndywzgpr"))))
8882     (build-system emacs-build-system)
8883     (home-page
8884      "https://github.com/david-christiansen/prop-menu-el")
8885     (synopsis
8886      "Create and display a context menu based on text and overlay properties")
8887     (description
8888      "This is a library for computing context menus based on text
8889 properties and overlays.  The intended use is to have tools that
8890 annotate source code and others that use these annotations, without
8891 requiring a direct coupling between them, but maintaining
8892 discoverability.
8894 Major modes that wish to use this library should first define an
8895 appropriate value for @code{prop-menu-item-functions}.  Then, they should
8896 bind @code{prop-menu-by-completing-read} to an appropriate
8897 key.  Optionally, a mouse pop-up can be added by binding
8898 @code{prop-menu-show-menu} to a mouse event.")
8899     (license license:gpl3+)))
8901 (define-public emacs-idris-mode
8902   (let ((commit "acc8835449475d7cd205aba213fdd3d41c38ba40")
8903         (revision "0"))
8904     (package
8905       (name "emacs-idris-mode")
8906       (version (git-version "0.9.19" revision commit))
8907       (source
8908        (origin
8909          (method git-fetch)
8910          (uri (git-reference
8911                (url "https://github.com/idris-hackers/idris-mode.git")
8912                (commit commit)))
8913          (file-name (git-file-name name commit))
8914          (sha256
8915           (base32
8916            "0n9xbknc68id0mf8hbfmawi8qpvrs47ix807sk9ffv2g3ik32kk6"))))
8917       (build-system emacs-build-system)
8918       (propagated-inputs
8919        `(("emacs-prop-menu" ,emacs-prop-menu)))
8920       (home-page
8921        "https://github.com/idris-hackers/idris-mode")
8922       (synopsis "Major mode for editing Idris code")
8923       (description
8924        "This is an Emacs mode for editing Idris code.  It requires the latest
8925 version of Idris, and some features may rely on the latest Git version of
8926 Idris.")
8927       (license license:gpl3+))))
8929 (define-public emacs-browse-at-remote
8930   (package
8931     (name "emacs-browse-at-remote")
8932     (version "0.10.0")
8933     (source
8934      (origin
8935        (method git-fetch)
8936        (uri (git-reference
8937              (url "https://github.com/rmuslimov/browse-at-remote.git")
8938              (commit version)))
8939        (file-name (git-file-name name version))
8940        (sha256
8941         (base32 "0vhia7xmszcb3lxrb8wh93a3knjfzj48h8nhj4fh8zj1pjz6args"))))
8942     (build-system emacs-build-system)
8943     (propagated-inputs
8944      `(("emacs-f" ,emacs-f)
8945        ("emacs-s" ,emacs-s)))
8946     (native-inputs
8947      `(("ert-runner" ,emacs-ert-runner)))
8948     (arguments
8949      `(#:tests? #t
8950        #:test-command '("ert-runner")))
8951     (home-page "https://github.com/rmuslimov/browse-at-remote")
8952     (synopsis "Open github/gitlab/bitbucket/stash page from Emacs")
8953     (description
8954      "This Emacs package allows you to open a target page on
8955 github/gitlab (or bitbucket) by calling @code{browse-at-remote} command.
8956 It supports dired buffers and opens them in tree mode at destination.")
8957     (license license:gpl3+)))
8959 (define-public emacs-tiny
8960   (package
8961     (name "emacs-tiny")
8962     (version "0.2.1")
8963     (source
8964      (origin
8965        (method url-fetch)
8966        (uri (string-append "http://elpa.gnu.org/packages/tiny-" version ".tar"))
8967        (sha256
8968         (base32
8969          "1cr73a8gba549ja55x0c2s554f3zywf69zbnd7v82jz5q1k9wd2v"))))
8970     (build-system emacs-build-system)
8971     (home-page "https://github.com/abo-abo/tiny")
8972     (synopsis "Quickly generate linear ranges in Emacs")
8973     (description
8974      "The main command of the @code{tiny} extension for Emacs is @code{tiny-expand}.
8975 It is meant to quickly generate linear ranges, e.g. 5, 6, 7, 8.  Some elisp
8976 proficiency is an advantage, since you can transform your numeric range with
8977 an elisp expression.")
8978     (license license:gpl3+)))
8980 (define-public emacs-emojify
8981   (package
8982     (name "emacs-emojify")
8983     (version "1.2")
8984     (source
8985      (origin
8986        (method git-fetch)
8987        (uri (git-reference
8988              (url "https://github.com/iqbalansari/emacs-emojify")
8989              (commit (string-append "v" version))))
8990        (file-name (git-file-name name version))
8991        (sha256
8992         (base32
8993          "1fqnj5x7ivjkm5y927dqqnm85q5hzczlb0hrfpjalrhasa6ijsrm"))))
8994     (build-system emacs-build-system)
8995     (arguments
8996      `(#:include (cons "^data/" %default-include)))
8997     (propagated-inputs
8998      `(("emacs-ht" ,emacs-ht)))
8999     (home-page "https://github.com/iqbalansari/emacs-emojify")
9000     (synopsis "Display emojis in Emacs")
9001     (description "This package displays emojis in Emacs similar to how Github,
9002 Slack, and other websites do.  It can display plain ASCII like @code{:)} as
9003 well as Github-style emojis like @code{:smile:}.  It provides a minor mode
9004 @code{emojify-mode} to enable the display of emojis in a buffer.")
9005     (license license:gpl3+)))
9007 (define-public emacs-make-it-so
9008   (let ((commit "bc3b01d6b9ed6ff66ebbd524234f9d6df60dd4be")
9009         (version "0.1.0")
9010         (revision "1"))
9011     (package
9012       (name "emacs-make-it-so")
9013       (version (git-version version revision commit))
9014       (source
9015        (origin
9016          (method git-fetch)
9017          (uri (git-reference
9018                (url "https://github.com/abo-abo/make-it-so")
9019                (commit commit)))
9020          (sha256
9021           (base32
9022            "0833bzlscpnkvjnrg3g54yr246afbjwri8n5wxk8drnsq6acvd8z"))))
9023       (build-system emacs-build-system)
9024       (arguments
9025        `(#:include (cons "^recipes/" %default-include)))
9026       (propagated-inputs
9027        `(("emacs-ivy" ,emacs-ivy)))
9028       (home-page "https://github.com/abo-abo/make-it-so")
9029       (synopsis "Transform files with Makefile recipes")
9030       (description "This package provides an interface for selecting from
9031 different conversion recipes, often including tools like @code{ffmpeg} or
9032 @code{convert}.  The conversion command need only be written once, and
9033 subsequent invocations can be readily customized.  Several recipes are
9034 included by default, and more can be readily added.")
9035       (license license:gpl3+))))
9037 (define-public emacs-websocket
9038   (package
9039     (name "emacs-websocket")
9040     (version "1.10")
9041     (source
9042      (origin
9043        (method git-fetch)
9044        (uri (git-reference
9045              (url "https://github.com/ahyatt/emacs-websocket.git")
9046              (commit version)))
9047        (file-name (git-file-name name version))
9048        (sha256
9049         (base32
9050          "1dgrf7na6r6mmkknphzshlbd5fnzisg0qn0j7vfpa38wgsymaq52"))))
9051     (build-system emacs-build-system)
9052     (home-page "http://elpa.gnu.org/packages/websocket.html")
9053     (synopsis "Emacs WebSocket client and server")
9054     (description "This is an Elisp library for WebSocket clients to talk to
9055 WebSocket servers, and for WebSocket servers to accept connections from
9056 WebSocket clients.  This library is designed to be used by other library
9057 writers, to write applications that use WebSockets, and is not useful by
9058 itself.")
9059     (license license:gpl3+)))
9061 (define-public emacs-oauth2
9062   (package
9063     (name "emacs-oauth2")
9064     (version "0.11")
9065     (source
9066      (origin
9067        (method url-fetch)
9068        (uri (string-append "https://elpa.gnu.org/packages/oauth2-"
9069                            version ".el"))
9070        (sha256
9071         (base32
9072          "0ydkc9jazsnbbvfhd47mql52y7k06n3z7r0naqxkwb99j9blqsmp"))))
9073     (build-system emacs-build-system)
9074     (home-page "http://elpa.gnu.org/packages/oauth2.html")
9075     (synopsis "OAuth 2.0 authorization protocol implementation")
9076     (description
9077      "This package provides an Elisp implementation of the OAuth 2.0 draft.
9078 The main entry point is @code{oauth2-auth-and-store} which will return a token
9079 structure.  This token structure can be then used with
9080 @code{oauth2-url-retrieve-synchronously} or @code{oauth2-url-retrieve} to
9081 retrieve any data that need OAuth authentication to be accessed.  If the token
9082 needs to be refreshed, the code handles it automatically and stores the new
9083 value of the access token.")
9084     (license license:gpl3+)))
9086 (define-public emacs-circe
9087   (package
9088     (name "emacs-circe")
9089     (version "2.10")
9090     (source
9091      (origin
9092        (method git-fetch)
9093        (uri (git-reference
9094              (url "https://github.com/jorgenschaefer/circe.git")
9095              (commit (string-append "v" version))))
9096        (file-name (git-file-name name version))
9097        (sha256
9098         (base32
9099          "10gi14kwxd81blddpvqh95lgmpbfgp0m955naxix3bs3r6a75n4s"))))
9100     (build-system emacs-build-system)
9101     (arguments
9102      `(#:tests? #t
9103        #:test-command '("buttercup" "-L" ".")
9104        #:phases
9105        (modify-phases %standard-phases
9106          ;; The HOME environment variable should be set to an existing
9107          ;; directory for the tests to succeed.
9108          (add-before 'check 'set-home
9109            (lambda _
9110              (setenv "HOME" "/tmp")
9111              #t)))))
9112     (native-inputs
9113      `(("emacs-buttercup" ,emacs-buttercup)))
9114     ;; In order to securely connect to an IRC server using TLS, Circe requires
9115     ;; the GnuTLS binary.
9116     (propagated-inputs
9117      `(("gnutls" ,gnutls)))
9118     (home-page "https://github.com/jorgenschaefer/circe")
9119     (synopsis "Client for IRC in Emacs")
9120     (description "Circe is a Client for IRC in Emacs.  It integrates well with
9121 the rest of the editor, using standard Emacs key bindings and indicating
9122 activity in channels in the status bar so it stays out of your way unless you
9123 want to use it.")
9124     (license license:gpl3+)))
9126 (define-public emacs-tracking
9127   (package
9128     (inherit emacs-circe)
9129     (name "emacs-tracking")
9130     (arguments
9131      ;; "tracking.el" is a library extracted from Circe package.  It requires
9132      ;; "shorten.el".
9133      `(#:include '("^shorten.el$" "^tracking.el$")
9134        ,@(package-arguments emacs-circe)))
9135     (home-page "https://github.com/jorgenschaefer/circe/wiki/Tracking")
9136     (synopsis "Buffer tracking library")
9137     (description "@code{tracking.el} provides a way for different modes to
9138 notify the user that a buffer needs attention.  The user then can cycle
9139 through them using @key{C-c C-SPC}.")
9140     (license license:gpl3+)))
9142 (define-public emacs-slack
9143   (let ((commit "10fbb81f567b44647ad125a48ecd72df106fb624")
9144         (revision "6"))
9145     (package
9146       (name "emacs-slack")
9147       (version (git-version "0.0.2" revision commit))
9148       (source (origin
9149                 (method git-fetch)
9150                 (uri (git-reference
9151                       (url "https://github.com/yuya373/emacs-slack.git")
9152                       (commit commit)))
9153                 (file-name (git-file-name name commit))
9154                 (sha256
9155                  (base32
9156                   "01ln9rbalgpxw6rbr4czhy6bd8wrrpyf0qgn2chcq3zmmrn4sy1z"))))
9157       (build-system emacs-build-system)
9158       (arguments
9159        `(#:phases
9160          (modify-phases %standard-phases
9161            ;; HOME needs to exist for source compilation.
9162            (add-before 'build 'set-HOME
9163              (lambda _ (setenv "HOME" "/tmp") #t)))))
9164       (propagated-inputs
9165        `(("emacs-alert" ,emacs-alert)
9166          ("emacs-emojify" ,emacs-emojify)
9167          ("emacs-helm" ,emacs-helm)
9168          ("emacs-request" ,emacs-request)
9169          ("emacs-websocket" ,emacs-websocket)
9170          ("emacs-oauth2" ,emacs-oauth2)
9171          ("emacs-circe" ,emacs-circe)))
9172       (home-page "https://github.com/yuya373/emacs-slack")
9173       (synopsis "Slack client for Emacs")
9174       (description "This package provides an Emacs client for the Slack
9175 messaging service.")
9176       (license license:gpl3+))))
9178 (define-public emacs-bash-completion
9179   (package
9180    (name "emacs-bash-completion")
9181    (version "2.1.0")
9182    (source
9183     (origin
9184       (method git-fetch)
9185       (uri (git-reference
9186             (url "https://github.com/szermatt/emacs-bash-completion.git")
9187             (commit version)))
9188       (file-name (git-file-name name version))
9189       (sha256
9190        (base32 "1a1wxcqzh0javjmxwi3lng5i99xiylm8lm04kv4q1lh9bli6vmv0"))))
9191    (inputs `(("bash" ,bash)))
9192    (build-system emacs-build-system)
9193    (arguments
9194     `(#:phases
9195       (modify-phases %standard-phases
9196         (add-after 'unpack 'make-git-checkout-writable
9197           (λ _
9198             (for-each make-file-writable (find-files "."))
9199             #t))
9200         (add-before 'install 'configure
9201           (lambda* (#:key inputs #:allow-other-keys)
9202             (let ((bash (assoc-ref inputs "bash")))
9203               (emacs-substitute-variables "bash-completion.el"
9204                 ("bash-completion-prog" (string-append bash "/bin/bash"))))
9205             #t)))))
9206    (home-page "https://github.com/szermatt/emacs-bash-completion")
9207    (synopsis "Bash completion for the shell buffer")
9208    (description
9209     "@code{bash-completion} defines dynamic completion hooks for shell-mode
9210 and shell-command prompts that are based on Bash completion.")
9211    (license license:gpl2+)))
9213 (define-public emacs-easy-kill
9214   (package
9215     (name "emacs-easy-kill")
9216     (version "0.9.3")
9217     (source (origin
9218               (method url-fetch)
9219               (uri (string-append "https://elpa.gnu.org/packages/easy-kill-"
9220                                   version ".tar"))
9221               (sha256
9222                (base32
9223                 "17nw0mglmg877axwg1d0gs03yc0p04lzmd3pl0nsnqbh3303fnqb"))))
9224     (build-system emacs-build-system)
9225     (home-page "https://github.com/leoliu/easy-kill")
9226     (synopsis "Kill and mark things easily in Emacs")
9227     (description
9228      "This package provides commands @code{easy-kill} and @code{easy-mark} to
9229 let users kill or mark things easily.")
9230     (license license:gpl3+)))
9232 (define-public emacs-csv-mode
9233   (package
9234     (name "emacs-csv-mode")
9235     (version "1.7")
9236     (source
9237      (origin
9238        (method url-fetch)
9239        (uri (string-append "http://elpa.gnu.org/packages/csv-mode-"
9240                            version ".el"))
9241        (sha256
9242         (base32
9243          "0r4bip0w3h55i8h6sxh06czf294mrhavybz0zypzrjw91m1bi7z6"))))
9244     (build-system emacs-build-system)
9245     (home-page
9246      "http://elpa.gnu.org/packages/csv-mode.html")
9247     (synopsis
9248      "Major mode for editing comma/char separated values")
9249     (description
9250      "This Emacs package implements CSV mode, a major mode for editing records
9251 in a generalized CSV (character-separated values) format.")
9252     (license license:gpl3+)))
9254 (define-public emacs-transmission
9255   (package
9256     (name "emacs-transmission")
9257     (version "0.12.1")
9258     (source
9259      (origin
9260        (method git-fetch)
9261        (uri (git-reference
9262              (url "https://github.com/holomorph/transmission.git")
9263              (commit version)))
9264        (file-name (git-file-name name version))
9265        (sha256
9266         (base32 "0kvg2gawsgy440x1fsl2c4pkxwp3zirq9rzixanklk0ryijhd3ry"))))
9267     (build-system emacs-build-system)
9268     (home-page "https://github.com/holomorph/transmission")
9269     (synopsis "Emacs interface to a Transmission session")
9270     (description "This package provides an Emacs interface to interact with a
9271 running session of the Transmission Bittorrent client.
9273 Features:
9275 @itemize
9276 @item List, add, start/stop, verify, remove torrents.
9277 @item Set speed limits, ratio limits, bandwidth priorities, trackers.
9278 @item Navigate to the corresponding file list, torrent info, peer info
9279 contexts.
9280 @item Toggle downloading and set priorities for individual files.
9281 @end itemize\n")
9282     (license license:gpl3+)))
9284 (define-public emacs-polymode
9285   (package
9286     (name "emacs-polymode")
9287     (version "0.2")
9288     (source (origin
9289               (method git-fetch)
9290               (uri (git-reference
9291                     (url "https://github.com/polymode/polymode.git")
9292                     (commit (string-append "v" version))))
9293               (file-name (git-file-name name version))
9294               (sha256
9295                (base32
9296                 "04v0gnzfsjb50bgly6kvpryx8cyzwjaq2llw4qv9ijw1l6ixmq3b"))))
9297     (build-system emacs-build-system)
9298     (home-page "https://github.com/polymode/polymode")
9299     (synopsis "Framework for multiple Emacs modes based on indirect buffers")
9300     (description
9301      "Polymode is an Emacs package that offers generic support for multiple
9302 major modes inside a single Emacs buffer.  It is lightweight, object oriented
9303 and highly extensible.  Creating a new polymode typically takes only a few
9304 lines of code.  Polymode also provides extensible facilities for external
9305 literate programming tools for exporting, weaving and tangling.")
9306     (license license:gpl3+)))
9308 (define-public emacs-polymode-ansible
9309   (let ((commit "b26094d029e25dc797b94254f797e7807a57e4c8"))
9310     (package
9311       (name "emacs-polymode-ansible")
9312       ;; No upstream version release yet.
9313       (version (git-version "0.1" "1" commit))
9314       (source
9315        (origin
9316          (method git-fetch)
9317          (uri (git-reference
9318                (url "https://gitlab.com/mavit/poly-ansible")
9319                (commit commit)))
9320          (file-name (git-file-name name version))
9321          (sha256
9322           (base32
9323            "055shddqibib3hx2ykwdz910nrqws40cd407mq946l2bf6v87gj6"))))
9324       (build-system emacs-build-system)
9325       (propagated-inputs
9326        `(("emacs-ansible-doc" ,emacs-ansible-doc)
9327          ("emacs-jinja2-mode" ,emacs-jinja2-mode)
9328          ("emacs-polymode" ,emacs-polymode)
9329          ("emacs-yaml-mode" ,emacs-yaml-mode)))
9330       (properties '((upstream-name . "poly-ansible")))
9331       (home-page "https://gitlab.com/mavit/poly-ansible/")
9332       (synopsis "Polymode for Ansible - Jinja2 in YAML")
9333       (description
9334        "Edit YAML files for Ansible containing embedded Jinja2 templating.")
9335       (license license:gpl3+))))
9337 (define-public emacs-polymode-org
9338   (package
9339     (name "emacs-polymode-org")
9340     (version "0.2")
9341     (source
9342      (origin
9343        (method git-fetch)
9344        (uri (git-reference
9345              (url "https://github.com/polymode/poly-org.git")
9346              (commit (string-append "v" version))))
9347        (file-name (git-file-name name version))
9348        (sha256
9349         (base32
9350          "04x6apjad4kg30456z1j4ipp64yjgkcaim6hqr6bb0rmrianqhck"))))
9351     (build-system emacs-build-system)
9352     (propagated-inputs
9353      `(("emacs-polymode" ,emacs-polymode)))
9354     (properties '((upstream-name . "poly-org")))
9355     (home-page "https://github.com/polymode/poly-org")
9356     (synopsis "Polymode definitions for Org mode buffers")
9357     (description
9358      "Provides definitions for @code{emacs-polymode} to support
9359 @code{emacs-org} buffers.  Edit source blocks in an Org mode buffer using the
9360 native modes of the blocks' languages while remaining inside the primary Org
9361 buffer.")
9362     (license license:gpl3+)))
9364 (define-public eless
9365   (package
9366     (name "eless")
9367     (version "0.3")
9368     (source
9369      (origin
9370        (method git-fetch)
9371        (uri (git-reference
9372              (url "https://github.com/kaushalmodi/eless.git")
9373              (commit (string-append "v" version))))
9374        (file-name (git-file-name name version))
9375        (sha256
9376         (base32 "0jr7vhh4vw69llhi0fh9ljscljkszkj0acdxl04da5hvqv6pnqbb"))))
9377     (build-system trivial-build-system)
9378     (inputs
9379      `(("bash" ,bash)))
9380     (arguments
9381      `(#:modules ((guix build utils))
9382        #:builder
9383        (begin
9384          (use-modules (guix build utils))
9385          (copy-recursively (assoc-ref %build-inputs "source") "source")
9386          (chdir "source")
9387          (substitute* "eless" (("/usr/bin/env bash")
9388                                (string-append (assoc-ref %build-inputs "bash")
9389                                               "/bin/bash")))
9390          (install-file "eless" (string-append %output "/bin"))
9391          (install-file "doc/eless.info" (string-append %output "/share/info"))
9392          #t)))
9393     (home-page "https://github.com/kaushalmodi/eless")
9394     (synopsis "Use Emacs as a paginator")
9395     (description "@code{eless} provides a combination of Bash script
9396 and a minimal Emacs view-mode.
9398 Feautures:
9400 @itemize
9401 @item Independent of a user’s Emacs config.
9402 @item Customizable via the @code{(locate-user-emacs-file \"elesscfg\")} config.
9403 @item Not require an Emacs server to be already running.
9404 @item Syntax highlighting.
9405 @item Org-mode file rendering.
9406 @item @code{man} page viewer.
9407 @item Info viewer.
9408 @item Dired, wdired, (batch edit symbolic links).
9409 @item Colored diffs, git diff, git log, ls with auto ANSI detection.
9410 @item Filter log files lines matching a regexp.
9411 @item Auto-revert log files similar to @code{tail -f}.
9412 @item Quickly change frame and font sizes.
9413 @end itemize\n")
9414     (license license:expat)))
9416 (define-public emacs-evil-matchit
9417   (package
9418     (name "emacs-evil-matchit")
9419     (version "2.3.0")
9420     (source
9421      (origin
9422        (method git-fetch)
9423        (uri (git-reference
9424              (url "https://github.com/redguardtoo/evil-matchit.git")
9425              (commit version)))
9426        (file-name (git-file-name name version))
9427        (sha256
9428         (base32 "0y6q42hml7jgf060d83m7hf270h01858g5kxw12na9n4r4jjpdg1"))))
9429     (build-system emacs-build-system)
9430     (propagated-inputs
9431      `(("emacs-evil" ,emacs-evil)))
9432     (home-page "https://github.com/redguardtoo/evil-matchit")
9433     (synopsis "Vim matchit ported into Emacs")
9434     (description
9435      "@code{evil-matchit} is a minor mode for jumping between matching tags in
9436 evil mode using @kbd{%}.  It is a port of @code{matchit} for Vim.")
9437     (license license:gpl3+)))
9439 (define-public emacs-evil-smartparens
9440   (package
9441     (name "emacs-evil-smartparens")
9442     (version "0.4.0")
9443     (source
9444      (origin
9445        (method git-fetch)
9446        (uri (git-reference
9447              (url "https://github.com/expez/evil-smartparens.git")
9448              (commit version)))
9449        (file-name (git-file-name name version))
9450        (sha256
9451         (base32 "1di4qz5fbrlwbg16c2j0m7y8zqfxw027qd7zqmc3rwk9znbhg7wl"))))
9452     (build-system emacs-build-system)
9453     (propagated-inputs
9454      `(("emacs-evil" ,emacs-evil)
9455        ("emacs-smartparens" ,emacs-smartparens)))
9456     (home-page "https://github.com/expez/evil-smartparens")
9457     (synopsis "Emacs Evil integration for Smartparens")
9458     (description "@code{emacs-evil-smartparens} is an Emacs minor mode which
9459 makes Evil play nice with Smartparens.  Evil is an Emacs minor mode that
9460 emulates Vim features and provides Vim-like key bindings.")
9461     (license license:gpl3+)))
9463 (define-public emacs-evil-quickscope
9464   (package
9465     (name "emacs-evil-quickscope")
9466     (version "0.1.4")
9467     (source
9468      (origin
9469        (method git-fetch)
9470        (uri (git-reference
9471              (url "https://github.com/blorbx/evil-quickscope.git")
9472              (commit (string-append "v" version))))
9473        (file-name (git-file-name name version))
9474        (sha256
9475         (base32 "1ja9ggj70wf0nmma4xnc1zdzg2crq9h1cv3cj7cgwjmllflgkfq7"))))
9476     (build-system emacs-build-system)
9477     (propagated-inputs
9478      `(("emacs-evil" ,emacs-evil)))
9479     (arguments
9480      `(#:tests? #t
9481        #:test-command '("emacs" "--batch"
9482                         "-l" "evil-quickscope-tests.el"
9483                         "-f" "ert-run-tests-batch-and-exit")))
9484     (home-page "https://github.com/blorbx/evil-quickscope")
9485     (synopsis "Target highlighting for emacs evil-mode f,F,t and T commands")
9486     (description "@code{emacs-evil-quickscope} highlights targets for Evil
9487 mode’s f,F,t,T keys, allowing for quick navigation within a line.  It is a
9488 port of quick-scope for Vim.  Evil is an Emacs minor mode that emulates Vim
9489 features and provides Vim-like key bindings.")
9490     (license license:gpl3+)))
9492 (define-public emacs-bongo
9493   (package
9494     (name "emacs-bongo")
9495     (version "1.0")
9496     (source
9497      (origin
9498        (method git-fetch)
9499        (uri (git-reference
9500              (url "https://github.com/dbrock/bongo.git")
9501              (commit version)))
9502        (file-name (git-file-name name version))
9503        (sha256
9504         (base32 "1q3ws2vn062dh7ci6jn2k2bcn7szh3ap64sgwkzdd6f1pas37fnr"))))
9505     (build-system emacs-build-system)
9506     (home-page "https://github.com/dbrock/bongo")
9507     (synopsis "Media player for Emacs")
9508     (description
9509      "This package provides a flexible media player for Emacs.  @code{Bongo}
9510 supports multiple backends such as @code{vlc}, @code{mpg123},
9511 @code{ogg123}, @code{speexdec}, @code{timidity}, @code{mikmod} and
9512 @code{afplay}.")
9513     (license license:gpl2+)))
9515 (define-public emacs-groovy-modes
9516   (package
9517     (name "emacs-groovy-modes")
9518     (version "2.0")
9519     (source (origin
9520               (method url-fetch)
9521               (uri (string-append
9522                     "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes"
9523                     "/archive/" version ".tar.gz"))
9524               (file-name (string-append name "-" version ".tar.gz"))
9525               (sha256
9526                (base32
9527                 "15j0hnkx9nppjzda5cqsxxz5f3bq9hc4xfyjcdypzqiypcvmpa39"))))
9528     (build-system emacs-build-system)
9529     (propagated-inputs
9530      `(("emacs-s" ,emacs-s)))
9531     (home-page "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
9532     (synopsis "Groovy related modes for Emacs")
9533     (description
9534      "This package provides @code{groovy-mode} for syntax highlighting in
9535 Groovy source files, REPL integration with run-groovy and Grails project
9536 navigation with the grails mode.")
9537     (license license:gpl3+)))
9539 (define-public groovy-emacs-modes
9540   (deprecated-package "groovy-emacs-modes" emacs-groovy-modes))
9542 (define-public emacs-org-tree-slide
9543   (let ((commit "dff8f1a4a64c8dd0a1fde0b0131e2fe186747134")
9544         (revision "0"))
9545     (package
9546       (name "emacs-org-tree-slide")
9547       (version (git-version "0.1" revision commit))
9548       (home-page "https://github.com/takaxp/org-tree-slide")
9549       (source (origin
9550                 (method git-fetch)
9551                 (uri (git-reference (url home-page) (commit commit)))
9552                 (sha256
9553                  (base32
9554                   "153bg0x7ypla11pq51jmsgzfjklwwnrq56xgpbfhk1j16xwz9hyf"))
9555                 (file-name (git-file-name name version))))
9556       (build-system emacs-build-system)
9557       (synopsis "Presentation tool for org-mode")
9558       (description
9559        "Org-tree-slide provides a slideshow mode to view org-mode files.  Use
9560 @code{org-tree-slide-mode} to enter the slideshow mode, and then @kbd{C->} and
9561 @kbd{C-<} to jump to the next and previous slide.")
9562       (license license:gpl3+))))
9564 (define-public emacs-scratch-el
9565   (let ((commit "2cdf2b841ce7a0987093f65b0cc431947549f897")
9566         (revision "1"))
9567     (package
9568       (name "emacs-scratch-el")
9569       (version (git-version "1.2" revision commit))
9570       (source (origin
9571                 (method git-fetch)
9572                 (uri (git-reference
9573                       (url "https://github.com/ieure/scratch-el.git")
9574                       (commit commit)))
9575                 (file-name (git-file-name name version))
9576                 (sha256
9577                  (base32
9578                   "0wscsndynjmnliajqaz28r1ww81j8wh84zwaaswx51abhwgl0idf"))))
9579       (build-system emacs-build-system)
9580       (native-inputs
9581        `(("texinfo" ,texinfo)))
9582       (arguments
9583        '(#:phases
9584          (modify-phases %standard-phases
9585            (add-after 'install 'install-doc
9586              (lambda* (#:key outputs #:allow-other-keys)
9587                (unless (invoke "makeinfo" "scratch.texi")
9588                  (error "makeinfo failed"))
9589                (install-file "scratch.info"
9590                              (string-append (assoc-ref outputs "out")
9591                                             "/share/info"))
9592                #t)))))
9593       (home-page "https://github.com/ieure/scratch-el/")
9594       (synopsis "Create scratch buffers with the same mode as current buffer")
9595       (description "Scratch is an extension to Emacs that enables one to create
9596 scratch buffers that are in the same mode as the current buffer.  This is
9597 notably useful when working on code in some language; you may grab code into a
9598 scratch buffer, and, by virtue of this extension, do so using the Emacs
9599 formatting rules for that language.")
9600       (license license:bsd-2))))
9602 (define-public emacs-kv
9603   (package
9604     (name "emacs-kv")
9605     (version "0.0.19")
9606     (source
9607      (origin
9608        (method git-fetch)
9609        (uri (git-reference
9610              (url "https://github.com/nicferrier/emacs-kv.git")
9611              (commit "721148475bce38a70e0b678ba8aa923652e8900e")))
9612        (file-name (git-file-name name version))
9613        (sha256
9614         (base32
9615          "0r0lz2s6gvy04fwnafai668jsf4546h4k6zd6isx5wpk0n33pj5m"))))
9616     (build-system emacs-build-system)
9617     (arguments
9618      `(#:tests? #t
9619        #:test-command '("emacs" "--batch" "-l" "kv-tests.el"
9620                         "-f" "ert-run-tests-batch-and-exit")))
9621     (home-page "https://github.com/nicferrier/emacs-kv")
9622     (synopsis "Key/Value data structures library for Emacs Lisp")
9623     (description "@code{emacs-kv} is a collection of tools for dealing with
9624 key/value data structures such as plists, alists and hash-tables in Emacs
9625 Lisp.")
9626     (license license:gpl3+)))
9628 (define-public emacs-esxml
9629   (package
9630     (name "emacs-esxml")
9631     (version "0.3.4")
9632     (source (origin
9633               (method git-fetch)
9634               (uri (git-reference
9635                     (url "https://github.com/tali713/esxml.git")
9636                     (commit version)))
9637               (file-name (git-file-name name version))
9638               (sha256
9639                (base32
9640                 "00vv8a75wdklygdyr4km9mc2ismxak69c45jmcny41xl44rp9x8m"))))
9641     (build-system emacs-build-system)
9642     (arguments
9643      `(#:phases
9644        (modify-phases %standard-phases
9645          (add-after 'unpack 'fix-sources
9646            (lambda _
9647              ;; See: https://github.com/tali713/esxml/pull/28.
9648              (substitute* "css-lite.el"
9649                ((";;; main interface")
9650                 (string-append ";;; main interface\n"
9651                                "(require 'cl-lib)"))
9652                (("mapcan")
9653                 "cl-mapcan")
9654                (("',\\(cl-mapcan #'process-css-rule rules\\)")
9655                 "(cl-mapcan #'process-css-rule ',rules)"))
9656              (substitute* "esxml-form.el"
9657                ((",esxml-form-field-defn")
9658                 "#'esxml-form-field-defn"))
9659              ;; See: https://github.com/tali713/esxml/issues/25
9660              (delete-file "esxpath.el")
9661              #t)))))
9662     (propagated-inputs
9663      `(("emacs-kv" ,emacs-kv)))
9664     (home-page "https://github.com/tali713/esxml/")
9665     (synopsis "SXML for EmacsLisp")
9666     (description "This is XML/XHTML done with S-Expressions in EmacsLisp.
9667 Simply, this is the easiest way to write HTML or XML in Lisp.  This library
9668 uses the native form of XML representation as used by many libraries already
9669 included within Emacs.  See @code{esxml-to-xml} for a concise description of
9670 the format.")
9671     (license license:gpl3+)))
9673 (define-public emacs-nov-el
9674   (package
9675     (name "emacs-nov-el")
9676     (version "0.2.6")
9677     (source (origin
9678               (method git-fetch)
9679               (uri (git-reference
9680                     (url "https://github.com/wasamasa/nov.el.git")
9681                     (commit version)))
9682               (file-name (git-file-name name version))
9683               (sha256
9684                (base32
9685                 "188h5gzn1zf443g0b7q5bpmvvpr6ds5h8aci8vxc92py56rhyrvc"))))
9686     (build-system emacs-build-system)
9687     (arguments
9688      `(#:phases
9689        (modify-phases %standard-phases
9690          (add-after 'unpack 'embed-path-to-unzip
9691            (lambda _
9692              (substitute* "nov.el"
9693                (("\\(executable-find \"unzip\"\\)")
9694                 (string-append "\"" (which "unzip") "\"")))
9695              #t)))))
9696     (propagated-inputs
9697      `(("emacs-dash" ,emacs-dash)
9698        ("emacs-esxml" ,emacs-esxml)))
9699     (inputs
9700      `(("unzip" ,unzip)))
9701     (home-page "https://github.com/wasamasa/nov.el/")
9702     (synopsis "Major mode for reading EPUBs in Emacs")
9703     (description "@code{nov.el} provides a major mode for reading EPUB
9704 documents.
9706 Features:
9708 @itemize
9709 @item Basic navigation (jump to TOC, previous/next chapter)
9710 @item Remembering and restoring the last read position
9711 @item Jump to next chapter when scrolling beyond end
9712 @item Renders EPUB2 (@code{.ncx}) and EPUB3 (@code{<nav>}) TOCs
9713 @item Hyperlinks to internal and external targets
9714 @item Supports textual and image documents
9715 @item View source of document files
9716 @item Metadata display
9717 @item Image rescaling
9718 @end itemize
9720     (license license:gpl3+)))
9722 (define-public epipe
9723   (package
9724     (name "epipe")
9725     (version "0.1.0")
9726     (source
9727      (origin
9728        (method git-fetch)
9729        (uri (git-reference
9730              (url "https://github.com/cute-jumper/epipe.git")
9731              (commit version)))
9732        (file-name (git-file-name name version))
9733        (sha256
9734         (base32 "0lkisi1s7sn12nx8zh58qmsxwnk1rjwryj18wcbr148xqz3swg57"))))
9735     (build-system trivial-build-system)
9736     (inputs
9737      `(("bash" ,bash)
9738        ("perl" ,perl)))
9739     (arguments
9740      `(#:modules
9741        ((guix build utils))
9742        #:builder
9743        (begin
9744          (use-modules (guix build utils))
9745          ;; Extract source.
9746          (copy-recursively (assoc-ref %build-inputs "source") "source")
9747          (chdir "source")
9748          ;; Patch shebangs.
9749          (substitute* "epipe"
9750            (("/usr/bin/env bash")
9751             (string-append (assoc-ref %build-inputs "bash") "/bin/bash")))
9752          (patch-shebang "epipe.pl"
9753                         (list (string-append (assoc-ref %build-inputs "perl")
9754                                              "/bin")))
9755          ;; Install.
9756          (for-each (lambda (file)
9757                      (install-file file (string-append %output "/bin")))
9758                    '("epipe" "epipe.pl"))
9759          #t)))
9760     (home-page "https://github.com/cute-jumper/epipe")
9761     (synopsis "Pipe to the @code{emacsclient}")
9762     (description "@code{epipe} provides an utility to use your editor in
9763 the pipeline, featuring the support for running @code{emacsclient}.")
9764     (license license:gpl3+)))
9766 (define-public emacs-hcl-mode
9767   (package
9768     (name "emacs-hcl-mode")
9769     (version "0.03")
9770     (source
9771      (origin
9772        (method git-fetch)
9773        (uri (git-reference
9774              (url "https://github.com/syohex/emacs-hcl-mode.git")
9775              (commit version)))
9776        (file-name (git-file-name name version))
9777        (sha256
9778         (base32 "0jqrgq15jz6pvx38pnwkizzfiih0d3nxqphyrc92nqpcyimg8b6g"))))
9779     (build-system emacs-build-system)
9780     (home-page "https://github.com/syohex/emacs-hcl-mode")
9781     (synopsis "Major mode for the Hashicorp Configuration Language")
9782     (description
9783      "@code{emacs-hcl-mode} provides an Emacs major mode for working with
9784 @acronym{HCL, Hashicorp Configuration Language}.  It provides syntax
9785 highlighting and indentation support.")
9786     (license license:gpl3+)))
9788 (define-public emacs-terraform-mode
9789   (package
9790     (name "emacs-terraform-mode")
9791     (version "0.06")
9792     (source
9793      (origin
9794        (method git-fetch)
9795        (uri (git-reference
9796              (url "https://github.com/syohex/emacs-terraform-mode.git")
9797              (commit version)))
9798        (file-name (git-file-name name version))
9799        (sha256
9800         (base32 "05hn8kskx9lcgn7bzgam99c629zlryir2pickwrqndacjrqpdykx"))))
9801     (build-system emacs-build-system)
9802     (propagated-inputs
9803      `(("emacs-hcl-mode" ,emacs-hcl-mode)))
9804     (home-page "https://github.com/syohex/emacs-terraform-mode")
9805     (synopsis "Major mode for Terraform")
9806     (description
9807      "@code{emacs-terraform-mode} provides a major mode for working with
9808 @uref{https://www.terraform.io/, Terraform} configuration files.  Most of the
9809 functionality is inherited from @code{hcl-mode}.")
9810     (license license:gpl3+)))
9812 (define-public emacs-exec-path-from-shell
9813   (package
9814     (name "emacs-exec-path-from-shell")
9815     (version "1.12")
9816     (source
9817      (origin
9818        (method git-fetch)
9819        (uri (git-reference
9820              (url "https://github.com/purcell/exec-path-from-shell")
9821              (commit version)))
9822        (sha256
9823         (base32
9824          "1ga8bpxngd3ph2hdiik92c612ki71qxw818i6rgx6f6a5r0sbf3p"))))
9825     (build-system emacs-build-system)
9826     (home-page "https://github.com/purcell/exec-path-from-shell")
9827     (synopsis "Get environment variables such as @var{PATH} from the shell")
9828     (description
9829      "This library allows the user to set Emacs @var{exec-path} and @var{PATH}
9830 from the shell @var{PATH}, so that @code{shell-command}, @code{compile} and
9831 the like work as expected on systems on which Emacs is not guaranteed to
9832 inherit a login shell's environment variables.  It also allows other
9833 environment variables to be retrieved from the shell, so that Emacs will see
9834 the same values you get in a terminal.")
9835     (license license:gpl3+)))
9837 (define-public emacs-deft
9838   (package
9839     (name "emacs-deft")
9840     (version "0.8")
9841     (source
9842      (origin
9843        (method url-fetch)
9844        (uri (string-append "https://stable.melpa.org/packages/deft-"
9845                            version ".el"))
9846        (sha256
9847         (base32
9848          "1vb9cjxskc7c0yyf9pvxy1fzypg1vrcgwnjz0m3hslinsgdyig58"))))
9849     (build-system emacs-build-system)
9850     (home-page "https://jblevins.org/projects/deft/")
9851     (synopsis "Quickly browse, filter, and edit plain text notes")
9852     (description
9853      "Deft is an Emacs mode for quickly browsing, filtering, and editing
9854 directories of plain text notes, inspired by Notational Velocity.")
9855     (license license:bsd-3)))
9857 (define-public emacs-anzu
9858   (package
9859     (name "emacs-anzu")
9860     (version "0.62")
9861     (source
9862      (origin
9863        (method git-fetch)
9864        (uri (git-reference
9865              (url "https://github.com/syohex/emacs-anzu.git")
9866              (commit version)))
9867        (file-name (git-file-name name version))
9868        (sha256
9869         (base32 "1lzvc0ihcbplir4hqfyxfqpsd78arz15gk92kmq4f8ggbkl37fan"))))
9870     (build-system emacs-build-system)
9871     (home-page "https://github.com/syohex/emacs-anzu")
9872     (synopsis "Show number of matches in mode-line while searching")
9873     (description
9874      "Anzu provides a minor mode which displays \"current match/total
9875 matches\" in the mode line in various search modes.  This is an Emacs port of
9876 Anzu.zim.")
9877     (license license:gpl3+)))
9879 (define-public emacs-ascii-art-to-unicode
9880   (package
9881     (name "emacs-ascii-art-to-unicode")
9882     (version "1.12")
9883     (source
9884      (origin
9885        (method url-fetch)
9886        (uri (string-append "https://elpa.gnu.org/packages/ascii-art-to-unicode-"
9887                            version ".el"))
9888        (sha256
9889         (base32
9890          "1w9h2lyriafxj71r79774gh822cz8mry3gdfzyj6ym6v9mvqypna"))))
9891     (build-system emacs-build-system)
9892     (home-page "https://elpa.gnu.org/packages/ascii-art-to-unicode.html")
9893     (synopsis "ASCII to Unicode art converter for Emacs")
9894     (description "This Emacs package provides the commands @command{aa2u} and
9895 @command{aa2u-rectangle}.  Both of these commands can be used to convert
9896 simple ASCII art line drawings to Unicode; the former works on the active
9897 region of the buffer, while the latter works on rectangular selections.")
9898     (license license:gpl3+)))
9900 (define-public emacs-emmet-mode
9901   (package
9902     (name "emacs-emmet-mode")
9903     (version "1.0.8")
9904     (source (origin
9905               (method git-fetch)
9906               (uri (git-reference
9907                      (url "https://github.com/smihica/emmet-mode.git")
9908                      (commit version)))
9909               (file-name (git-file-name name version))
9910               (sha256
9911                (base32
9912                 "1dsa85bk33j90h1ypaz1ylqh9yp2xvlga237h3kwa5y3sb0d5ydi"))))
9913     (build-system emacs-build-system)
9914     (home-page "https://github.com/smihica/emmet-mode")
9915     (synopsis "Unofficial Emmet's support for Emacs")
9916     (description
9917      "Unfold CSS-selector-like expressions to markup.  It is intended to be
9918 used with SGML-like languages: XML, HTML, XHTML, XSL, etc.")
9919     (license license:gpl3+)))
9921 (define-public emacs-ergoemacs-mode
9922   (let ((commit "3ce23bba3cb50562693860f87f3528c471d603ba")
9923         (revision "1"))
9924     (package
9925       (name "emacs-ergoemacs-mode")
9926       (version (git-version "5.16.10.12" revision commit))
9927       (source
9928        (origin
9929          (method git-fetch)
9930          (uri (git-reference
9931                (url "https://github.com/ergoemacs/ergoemacs-mode.git")
9932                (commit commit)))
9933          (sha256
9934           (base32
9935            "1s3b9bridl78hh1mxmdk9nqlmqhibbaxk0a1cixmsf23s06w8w6l"))))
9936       (build-system emacs-build-system)
9937       (propagated-inputs
9938        `(("emacs-undo-tree" ,emacs-undo-tree)))
9939       (home-page "https://ergoemacs.github.io/")
9940       (synopsis "Emacs mode based on common modern interface and ergonomics")
9941       (description
9942        "This package provides an efficient Emacs keybinding set based on
9943 statistics of command frequency, and supports common shortcuts for open,
9944 close, copy, cut, paste, undo, redo.")
9945       (license license:gpl3+))))
9947 (define-public emacs-password-store
9948   (package
9949     (name "emacs-password-store")
9950     (version "1.7.3")
9951     (source (origin
9952               (method url-fetch)
9953               (uri
9954                (string-append "https://git.zx2c4.com/password-store/snapshot/"
9955                               "password-store-" version ".tar.xz"))
9956               (sha256
9957                (base32
9958                 "1x53k5dn3cdmvy8m4fqdld4hji5n676ksl0ql4armkmsds26av1b"))))
9959     (build-system emacs-build-system)
9960     (arguments
9961      `(#:phases
9962        (modify-phases %standard-phases
9963          (add-after 'unpack 'extract-el-file
9964            (lambda _
9965              (copy-file "contrib/emacs/password-store.el" "password-store.el")
9966              (delete-file-recursively "contrib")
9967              (delete-file-recursively "man")
9968              (delete-file-recursively "src")
9969              (delete-file-recursively "tests"))))))
9970     (propagated-inputs
9971      `(("emacs-f" ,emacs-f)
9972        ("emacs-s" ,emacs-s)
9973        ("emacs-with-editor" ,emacs-with-editor)
9974        ("password-store" ,password-store)))
9975     (home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs")
9976     (synopsis "Password store (pass) support for Emacs")
9977     (description
9978      "This package provides functions for working with pass (\"the
9979 standard Unix password manager\").")
9980     (license license:gpl2+)))
9982 (define-public emacs-pass
9983   (package
9984     (name "emacs-pass")
9985     (version "1.8")
9986     (source
9987      (origin
9988        (method git-fetch)
9989        (uri (git-reference
9990              (url "https://github.com/NicolasPetton/pass.git")
9991              (commit version)))
9992        (file-name (git-file-name name version))
9993        (sha256
9994         (base32 "05h4hacv3yygyjcjj004qbyqjpkl4pyhwgp25gsz8mw5c66l70cx"))))
9995     (build-system emacs-build-system)
9996     (propagated-inputs
9997      `(("emacs-password-store" ,emacs-password-store)
9998        ("emacs-f" ,emacs-f)))
9999     (home-page "https://github.com/NicolasPetton/pass")
10000     (synopsis "Major mode for @file{password-store.el}")
10001     (description "This is a major mode for managing password-store (pass)
10002 keychains.  The keychain entries are displayed in a directory-like structure
10003 and can be consulted and modified.")
10004     (license license:gpl3+)))
10006 (define-public emacs-evil-anzu
10007   (package
10008     (name "emacs-evil-anzu")
10009     (version "0.03")
10010     (source
10011      (origin
10012        (method git-fetch)
10013        (uri (git-reference
10014              (url "https://github.com/syohex/emacs-evil-anzu")
10015              (commit version)))
10016        (file-name (git-file-name name version))
10017        (sha256
10018         (base32 "0lw7fg4gqwj30r0l6k2ni36sxqkf65zf0d0z3rxnpwbxlf8dlkrr"))))
10019     (build-system emacs-build-system)
10020     (propagated-inputs
10021      `(("emacs-evil" ,emacs-evil)
10022        ("emacs-anzu" ,emacs-anzu)))
10023     (home-page "https://github.com/syohex/emacs-evil-anzu")
10024     (synopsis "Anzu for evil-mode")
10025     (description "@code{anzu} provides a minor mode that displays the current
10026 match and total match information in the mode-line in various search modes.")
10027     (license license:gpl3+)))
10029 (define-public emacs-pg
10030   (let ((commit "4f6516ec3946d95dcef49abb6703cc89ecb5183d"))
10031     (package
10032       (name "emacs-pg")
10033       (version (git-version "0.1" "1" commit))
10034       (source (origin
10035                 (method git-fetch)
10036                 (uri (git-reference (url "https://github.com/cbbrowne/pg.el")
10037                                     (commit commit)))
10038                 (file-name (git-file-name name version))
10039                 (sha256
10040                  (base32
10041                   "1zh7v4nnpzvbi8yj1ynlqlawk5bmlxi6s80b5f2y7hkdqb5q26k0"))))
10042       (build-system emacs-build-system)
10043       (home-page "https://github.com/cbbrowne/pg.el")
10044       (synopsis "Emacs Lisp interface for PostgreSQL")
10045       (description
10046        "This package provides an Emacs Lisp interface for PostgreSQL.")
10047       (license license:gpl3+))))
10049 (define-public emacs-cl-generic
10050   (package
10051     (name "emacs-cl-generic")
10052     (version "0.3")
10053     (source
10054      (origin
10055        (method url-fetch)
10056        (uri (string-append "https://elpa.gnu.org/packages/cl-generic-"
10057                            version ".el"))
10058        (sha256
10059         (base32
10060          "0vb338bhjpsnrf60qgxny4z5rjrnifahnrv9axd4shay89d894zq"))))
10061     (build-system emacs-build-system)
10062     (home-page "https://elpa.gnu.org/packages/seq.html")
10063     (synopsis
10064      "Forward @code{cl-generic} compatibility for Emacs before version 25")
10065     (description "This package provides a subset of the features of the
10066 @code{cl-generic} package introduced in Emacs-25, for use on previous
10067 @code{emacsen}.")
10068     (license license:gpl3+)))
10070 (define-public emacs-finalize
10071   (package
10072   (name "emacs-finalize")
10073   (version "2.0.0")
10074   (source
10075     (origin
10076       (method git-fetch)
10077       (uri (git-reference
10078             (url "https://github.com/skeeto/elisp-finalize.git")
10079             (commit version)))
10080       (file-name (git-file-name name version))
10081       (sha256
10082         (base32 "1gvlm4i62af5jscwz0jccc8ra0grprxpg2rlq91d5nn8dn5lpy79"))))
10083   (build-system emacs-build-system)
10084   (propagated-inputs
10085     `(("emacs-cl-generic" ,emacs-cl-generic)))
10086   (home-page "https://github.com/skeeto/elisp-finalize")
10087   (synopsis "Finalizers for Emacs Lisp")
10088   (description
10089     "This package will allows to immediately run a callback (a finalizer)
10090 after its registered lisp object has been garbage collected.  This allows for
10091 extra resources, such as buffers and processes, to be cleaned up after the
10092 object has been freed.")
10093   (license license:unlicense)))
10095 (define-public emacs-emacsql
10096   (package
10097     (name "emacs-emacsql")
10098     (version "3.0.0")
10099     (source (origin
10100               (method git-fetch)
10101               (uri (git-reference
10102                     (url "https://github.com/skeeto/emacsql.git")
10103                     (commit (string-append version))))
10104               (file-name (git-file-name name version))
10105               (sha256
10106                (base32
10107                 "1c84gxr1majqj4b59wgdy3lzm3ap66w9qsrnkx8hdbk9895ak81g"))))
10108     (build-system emacs-build-system)
10109     (arguments
10110      `(#:modules ((guix build emacs-build-system)
10111                   (guix build utils)
10112                   (guix build emacs-utils)
10113                   (srfi srfi-26))
10114        #:phases
10115        (modify-phases %standard-phases
10116          (delete 'build) ;‘build-emacsql-sqlite’ compiles ‘*.el’ files.
10117          (add-before 'install 'patch-elisp-shell-shebangs
10118            (lambda _
10119              (substitute* (find-files "." "\\.el")
10120                (("/bin/sh") (which "sh")))
10121              #t))
10122          (add-after 'patch-elisp-shell-shebangs 'setenv-shell
10123            (lambda _
10124              (setenv "SHELL" "sh")))
10125          (add-after 'setenv-shell 'build-emacsql-sqlite
10126            (lambda _
10127              (invoke "make" "binary" "CC=gcc")))
10128          (add-after 'build-emacsql-sqlite 'install-emacsql-sqlite
10129            ;; This build phase installs emacs-emacsql binary.
10130            (lambda* (#:key outputs #:allow-other-keys)
10131              (install-file "sqlite/emacsql-sqlite"
10132                            (string-append (assoc-ref outputs "out")
10133                                           "/bin"))
10134              #t))
10135          (add-after 'install-emacsql-sqlite 'patch-emacsql-sqlite.el
10136            ;; This build phase removes interactive prompts
10137            ;; and makes sure Emacs look for binaries in the right places.
10138            (lambda* (#:key outputs #:allow-other-keys)
10139              (let ((file "emacsql-sqlite.el"))
10140                (chmod file #o644)
10141                (emacs-substitute-sexps file
10142                  ;; Make sure Emacs looks for ‘GCC’ binary in the right place.
10143                  ("(executable-find" (which "gcc"))
10144                  ;; Make sure Emacs looks for ‘emacsql-sqlite’ binary
10145                  ;; in the right place.
10146                  ("(defvar emacsql-sqlite-executable"
10147                   (string-append (assoc-ref outputs "out")
10148                                  "/bin/emacsql-sqlite"))))))
10149          (replace 'install
10150            (lambda* (#:key outputs #:allow-other-keys)
10151              (let* ((out (assoc-ref outputs "out")))
10152                (install-file "sqlite/emacsql-sqlite"
10153                              (string-append out "/bin"))
10154                (for-each (cut install-file <>
10155                               (string-append out "/share/emacs/site-lisp/guix.d/"
10156                                              "emacsql" "-" ,version))
10157                          (find-files "." "\\.elc*$")))
10158              #t)))))
10159     (inputs
10160      `(("emacs-minimal" ,emacs-minimal)
10161        ("mariadb" ,mariadb)
10162        ("postgresql" ,postgresql)))
10163     (propagated-inputs
10164      `(("emacs-finalize" ,emacs-finalize)
10165        ("emacs-pg" ,emacs-pg)))
10166     (home-page "https://github.com/skeeto/emacsql")
10167     (synopsis "Emacs high-level SQL database front-end")
10168     (description "Any readable Lisp value can be stored as a value in EmacSQL,
10169 including numbers, strings, symbols, lists, vectors, and closures.  EmacSQL
10170 has no concept of @code{TEXT} values; it's all just Lisp objects.  The Lisp
10171 object @code{nil} corresponds 1:1 with @code{NULL} in the database.")
10172     (license license:gpl3+)))
10174 (define-public emacs-closql
10175   (package
10176     (name "emacs-closql")
10177     (version "1.0.0")
10178     (source
10179      (origin
10180        (method git-fetch)
10181        (uri (git-reference
10182              (url "https://github.com/emacscollective/closql.git")
10183              (commit (string-append "v" version))))
10184        (file-name (git-file-name name version))
10185        (sha256
10186         (base32
10187          "1xhpfjjkjqfc1k2rj77cscclz5r7gpvv3hi202x178vdcpipjwar"))))
10188     (build-system emacs-build-system)
10189     (propagated-inputs
10190      `(("emacs-emacsql" ,emacs-emacsql)))
10191     (home-page "https://github.com/emacscollective/closql")
10192     (synopsis "Store EIEIO objects using EmacSQL")
10193     (description
10194      "This package allows to store uniform EIEIO objects in an EmacSQL
10195 database.  SQLite is used as backend.  This library imposes some restrictions
10196 on what kind of objects can be stored; it isn't intended to store arbitrary
10197 objects.  All objects have to share a common superclass and subclasses cannot
10198 add any additional instance slots.")
10199     (license license:gpl3)))
10201 (define-public emacs-epkg
10202   ;; The release version is to old for the current database scheme.
10203   (let ((commit "432312b9583ed7b88ad9644fd1bf2183765a892e"))
10204     (package
10205       (name "emacs-epkg")
10206       (version (git-version "3.0.0" "1" commit))
10207       (source
10208        (origin
10209          (method git-fetch)
10210          (uri (git-reference
10211                (url "https://github.com/emacscollective/epkg.git")
10212                (commit commit)))
10213          (file-name (git-file-name name version))
10214          (sha256
10215           (base32
10216            "0d882kahn7a0vri7a9r15lvmfx1zn2hsga6jfcc6jv0hqbswlb2k"))))
10217       (build-system emacs-build-system)
10218       (propagated-inputs
10219        `(("emacs-closql" ,emacs-closql)
10220          ("emacs-dash" ,emacs-dash)))
10221       (home-page "https://emacsmirror.net")
10222       (synopsis "Browse the Emacsmirror package database")
10223       (description "This package provides access to a local copy of the
10224 Emacsmirror package database.  It provides low-level functions for querying
10225 the database and a @file{package.el} user interface for browsing the database.
10226 Epkg itself is not a package manager.
10228 Getting a local copy:
10230 @example
10231 git clone https://github.com/emacsmirror/epkgs.git ~/.emacs.d/epkgs
10232 cd ~/.emacs.d/epkgs
10233 git submodule init
10234 git config --global url.https://github.com/.insteadOf git@@github.com:
10235 git submodule update
10236 @end example
10238 Some submodule may be missing.  In this case Git will prompt for a GitHub user
10239 name and password.  To skip it press a @key{Return} key.
10241 You could get a Epkg package list by invoking @code{epkg-list-packages} in
10242 Emacs.")
10243       (license license:gpl3+))))
10245 (define-public emacs-elisp-slime-nav
10246   (package
10247     (name "emacs-elisp-slime-nav")
10248     (version "0.9")
10249     (source
10250      (origin
10251        (method git-fetch)
10252        (uri (git-reference
10253              (url "https://github.com/purcell/elisp-slime-nav.git")
10254              (commit version)))
10255        (file-name (git-file-name name version))
10256        (sha256
10257         (base32 "11vyy0bvzbs1h1kggikrvhd658j7c730w0pdp6qkm60rigvfi1ih"))))
10258     (build-system emacs-build-system)
10259     (home-page "https://github.com/purcell/elisp-slime-nav")
10260     (synopsis "Make @code{M-.} and @code{M-,} work for elisp like they do in SLIME")
10261     (description
10262      "This package provides SLIME's convenient @code{M-.}and @code{M-,} navigation
10263 in @code{emacs-lisp-mode}, together with an elisp equivalent of
10264 @code{slime-describe-symbol}.")
10265     (license license:gpl3+)))
10267 (define-public emacs-dedicated
10268   (package
10269     (name "emacs-dedicated")
10270     (version "1.0.0")
10271     (source
10272      (origin
10273        (method git-fetch)
10274        (uri (git-reference
10275              (url "https://github.com/emacsorphanage/dedicated.git")
10276              (commit version)))
10277        (file-name (git-file-name name version))
10278        (sha256
10279         (base32 "0pba9s0h37sxyqh733vi6k5raa4cs7aradipf3826inw36jcw414"))))
10280     (build-system emacs-build-system)
10281     (home-page "https://github.com/emacsorphanage/dedicated")
10282     (synopsis "Emacs minor mode for toggling a windows's \"dedicated\" flag")
10283     (description
10284      "This simple Emacs minor mode allows you to toggle a window's
10285 \"dedicated\" flag.  When a window is \"dedicated\", Emacs will not select
10286 files into that window.  This can be quite handy since many commands will use
10287 another window to show results (compilation mode, starting info, and so on).
10288 A dedicated window won't be used for such a purpose.  For details, please read
10289 the source file.")
10290     (license license:gpl2+)))
10292 (define-public emacs-nnreddit
10293   (let ((commit "9843f99d01fd8f1eea2fc685965a7c7f4eeb187a")
10294         (revision "1"))
10295     (package
10296       (name "emacs-nnreddit")
10297       (version (string-append "0.0.1-" revision "."
10298                               (string-take commit 7)))
10299       (source (origin
10300                 (method git-fetch)
10301                 (uri (git-reference
10302                       (url "https://github.com/paul-issartel/nnreddit.git")
10303                       (commit commit)))
10304                 (file-name (git-file-name name version))
10305                 (sha256
10306                  (base32
10307                   "0j4h3bnga640250jdq8bwyja49r41ssrsjd6lba4gzzllqk02nbn"))))
10308       (build-system emacs-build-system)
10309       (home-page "https://github.com/paul-issartel/nnreddit")
10310       (synopsis "Reddit backend for the Gnus newsreader")
10311       (description "@url{https://www.reddit.com} backend for the Gnus
10312 newsreader.")
10313       (license license:gpl3+))))
10315 (define-public emacs-makey
10316   (package
10317     (name "emacs-makey")
10318     (version "0.3")
10319     (source
10320      (origin
10321        (method git-fetch)
10322        (uri (git-reference
10323              (url "https://github.com/mickeynp/makey.git")
10324              (commit version)))
10325        (file-name (git-file-name name version))
10326        (sha256
10327         (base32 "1rr7vpm3xxzcaam3m8xni3ajy8ycyljix07n2jzczayri9sd8csy"))))
10328     (build-system emacs-build-system)
10329     (home-page "https://github.com/mickeynp/makey")
10330     (synopsis "Emacs interactive command-line mode")
10331     (description
10332      "This package provides an Emacs interactive command-line mode.")
10333     (license license:gpl3+)))
10335 (define-public emacs-outorg
10336   (let ((commit "78b0695121fb974bc4e971eb4ef7f8afd6d89d64"))
10337     (package
10338       (name "emacs-outorg")
10339       (version (git-version "2.0" "1" commit))
10340       (source
10341        (origin
10342          (method git-fetch)
10343          (uri (git-reference
10344                (url "https://github.com/alphapapa/outorg")
10345                (commit commit)))
10346          (file-name (git-file-name name version))
10347          (sha256
10348           (base32
10349            "03aclh4m3f7rb821gr9pwvnqkkl91px3qxdcarpf3ypa1x4fxvlj"))))
10350       (build-system emacs-build-system)
10351       (home-page "https://github.com/alphapapa/outorg")
10352       (synopsis "Org-style comment editing")
10353       (description "Outorg is for editing comment-sections of source-code
10354 files in temporary Org-mode buffers.  It turns conventional
10355 literate-programming upside-down in that the default mode is the
10356 programming-mode, and special action has to be taken to switch to the
10357 text-mode (i.e. Org-mode).")
10358       (license license:gpl3+))))
10360 (define-public emacs-outshine
10361   (package
10362     (name "emacs-outshine")
10363     (version "3.0.1")
10364     (source (origin
10365               (method git-fetch)
10366               (uri (git-reference
10367                     (url "https://github.com/alphapapa/outshine.git")
10368                     (commit (string-append "v" version))))
10369               (file-name (git-file-name name version))
10370               (sha256
10371                (base32
10372                 "1lh9f5dgdbwfyzxk6nsg1xwdjs8gc6p9mbyyhp6f8fnk3h0y88cg"))))
10373     (build-system emacs-build-system)
10374     (propagated-inputs
10375      `(("emacs-outorg" ,emacs-outorg)))
10376     (home-page "https://github.com/alphapapa/outshine")
10377     (synopsis "Emacs outline with outshine")
10378     (description "Outshine attempts to bring the look and feel of
10379 @code{org-mode} to an Emacs outside of the Org major-mode.  It is an extension
10380 of @code{outline-minor-mode} (@code{org-mode} itself derives from
10381 outline-mode), so there is no such thing like an outshine mode, only
10382 @code{outline-minor-mode} with outshine extensions loaded.")
10383     (license license:gpl3+)))
10385 (define-public emacs-frecency
10386   (let ((commit "31ef9ff4af1a4fed3dcc24ea74037feea8795c87")
10387         (version "0.1-pre")
10388         (revision "1"))
10389     (package
10390       (name "emacs-frecency")
10391       (version (git-version version revision commit))
10392       (source (origin
10393                 (method git-fetch)
10394                 (uri (git-reference
10395                       (url "https://github.com/alphapapa/frecency.el")
10396                       (commit commit)))
10397                 (sha256
10398                  (base32
10399                   "051aihjdg3x22svaxhwylpi8i6s2x9j8syvsj1jgilgjjdy15l6j"))
10400                 (file-name (git-file-name name version))))
10401       (build-system emacs-build-system)
10402       (propagated-inputs
10403        `(("emacs-a" ,emacs-a)
10404          ("emacs-dash" ,emacs-dash)))
10405       (home-page "https://github.com/alphapapa/frecency.el")
10406       (synopsis "Sort items by frequency and recency of access")
10407       (description "This package provides a way of sorting items via
10408 a heuristic based on frequency and recency.")
10409       (license license:gpl3+))))
10411 (define-public emacs-org-recent-headings
10412   (package
10413     (name "emacs-org-recent-headings")
10414     (version "0.1")
10415     (source (origin
10416               (method git-fetch)
10417               (uri (git-reference
10418                     (url "https://github.com/alphapapa/org-recent-headings.git")
10419                     (commit version)))
10420               (file-name (git-file-name name version))
10421               (sha256
10422                (base32
10423                 "0gsrzmg3mssh9s28yjm9m866fnhm1pcligssz1q6brga6dm6f2yy"))))
10424     (build-system emacs-build-system)
10425     (propagated-inputs
10426      `(("emacs-org" ,emacs-org)
10427        ("emacs-dash" ,emacs-dash)
10428        ("emacs-frecency" ,emacs-frecency)))
10429     (home-page "https://github.com/alphapapa/org-recent-headings")
10430     (synopsis "Navigate to recently used Org headings and lists")
10431     (description "This package maintains a list of recently used Org headings,
10432 as well as functions for navigating between these headings.")
10433     (license license:gpl3+)))
10435 (define-public emacs-org-super-agenda
10436   (package
10437    (name "emacs-org-super-agenda")
10438    (version "1.1")
10439    (source (origin
10440             (method git-fetch)
10441             (uri (git-reference
10442                   (url "https://github.com/alphapapa/org-super-agenda")
10443                   (commit version)))
10444             (file-name (git-file-name name version))
10445             (sha256
10446              (base32
10447               "0vzf91lsxnhwf52kvm8ycpf0wb9c8l91689vyhwgv4wz8q6cvjwp"))))
10448    (build-system emacs-build-system)
10449    (propagated-inputs
10450     `(("emacs-org" ,emacs-org)
10451       ("emacs-dash" ,emacs-dash)
10452       ("emacs-ht" ,emacs-ht)
10453       ("emacs-s" ,emacs-s)))
10454    (home-page "https://github.com/alphapapa/org-super-agenda")
10455    (synopsis "Supercharged Org agenda")
10456    (description "This package allows items in the Org agenda to be grouped
10457 into sections while preserving the structure imposed by any timestamps.")
10458    (license license:gpl3+)))
10460 (define-public emacs-org-make-toc
10461   (package
10462     (name "emacs-org-make-toc")
10463     (version "0.3")
10464     (source (origin
10465               (method git-fetch)
10466               (uri (git-reference
10467                     (url "https://github.com/alphapapa/org-make-toc")
10468                     (commit version)))
10469               (file-name (git-file-name name version))
10470               (sha256
10471                (base32
10472                 "0syhj8q4pv33xgl5qa6x27yhwqvfhffw5xqp819hj4qs1ddlc7j5"))))
10473     (build-system emacs-build-system)
10474     (propagated-inputs
10475      `(("emacs-org" ,emacs-org)
10476        ("emacs-dash" ,emacs-dash)
10477        ("emacs-s" ,emacs-s)))
10478     (home-page "https://github.com/alphapapa/org-make-toc")
10479     (synopsis "Maintain a table of contents for an Org file")
10480     (description "This package facilitates the creation and maintenance of
10481 tables of contents.")
10482     (license license:gpl3+)))
10484 (define-public emacs-org-ql
10485   (let ((commit "0aec8ec60395197b2ef2b885c216cf84286efed9")
10486         (version "0.1-pre")
10487         (revision "1"))
10488     (package
10489       (name "emacs-org-ql")
10490       (version (git-version version revision commit))
10491       (source (origin
10492                 (method git-fetch)
10493                 (uri (git-reference
10494                       (url "https://github.com/alphapapa/org-ql")
10495                       (commit commit)))
10496                 (sha256
10497                  (base32
10498                   "0bj85hxhym7rvkaddcxybxdm7g7w439wij9f2w5ljz1hmvp55991"))
10499                 (file-name (git-file-name name version))))
10500       (build-system emacs-build-system)
10501       (propagated-inputs
10502        `(("emacs-s" ,emacs-s)
10503          ("emacs-dash" ,emacs-dash)))
10504       (home-page "https://github.com/alphapapa/org-ql")
10505       (synopsis "Query language for Org buffers")
10506       (description "This package provides a Lispy query language for Org
10507 files, allowing for actions to be performed based on search criteria.")
10508       (license license:gpl3+))))
10510 (define-public emacs-parsebib
10511   (package
10512     (name "emacs-parsebib")
10513     (version "2.3.1")
10514     (source
10515      (origin
10516        (method git-fetch)
10517        (uri (git-reference
10518              (url "https://github.com/joostkremers/parsebib.git")
10519              (commit version)))
10520        (file-name (git-file-name name version))
10521        (sha256
10522         (base32 "1bnqnxkb9dnl0fjrrjx0xn9jsqki2h8ygw3d5dm4bl79smah3qkh"))))
10523     (build-system emacs-build-system)
10524     (home-page "https://github.com/joostkremers/parsebib")
10525     (synopsis "Library for parsing bib files")
10526     (description
10527      "This package provides an Emacs library for parsing bib files.")
10528     (license license:gpl3+)))
10530 (define-public emacs-biblio
10531   (package
10532     (name "emacs-biblio")
10533     (version "0.2")
10534     (source
10535      (origin
10536        (method git-fetch)
10537        (uri (git-reference
10538              (url "https://github.com/cpitclaudel/biblio.el.git")
10539              (commit version)))
10540        (file-name (git-file-name name version))
10541        (sha256
10542         (base32 "1gxjind6r235az59dr8liv03d8994mqb8a7m28j3c12q7p70aziz"))))
10543     (build-system emacs-build-system)
10544     (propagated-inputs
10545      `(("emacs-seq" ,emacs-seq)
10546        ("emacs-dash" ,emacs-dash)
10547        ("emacs-let-alist" ,emacs-let-alist)))
10548     (home-page "https://github.com/cpitclaudel/biblio.el")
10549     (synopsis "Browse and import bibliographic references")
10550     (description "This package provides an extensible Emacs package for
10551 browsing and fetching references.
10553 @file{biblio.el} makes it easy to browse and gather bibliographic references
10554 and publications from various sources, by keywords or by DOI.  References are
10555 automatically fetched from well-curated sources, and formatted as BibTeX.")
10556     (license license:gpl3+)))
10558 (define-public emacs-helm-bibtex
10559   (let ((commit "8ed898fb5a68f18e9bb9973832a5c1f8abcfc463")
10560         (revision "1"))
10561     (package
10562       (name "emacs-helm-bibtex")
10563       (version (string-append "2.0.0" "-" revision "."
10564                               (string-take commit 7)))
10565       (source
10566        (origin
10567          (method git-fetch)
10568          (uri (git-reference
10569                (url "https://github.com/tmalsburg/helm-bibtex.git")
10570                (commit commit)))
10571          (file-name (git-file-name name version))
10572          (sha256
10573           (base32
10574            "14lyx0vbqr97p3anzrsp7m3q0kqclyjcdwplpraim403fcklzbnz"))))
10575       (build-system emacs-build-system)
10576       (propagated-inputs
10577        `(("emacs-helm" ,emacs-helm)
10578          ("emacs-parsebib" ,emacs-parsebib)
10579          ("emacs-s" ,emacs-s)
10580          ("emacs-dash" ,emacs-dash)
10581          ("emacs-f" ,emacs-f)
10582          ("emacs-biblio" ,emacs-biblio)
10583          ("emacs-ivy" ,emacs-ivy)))
10584       (home-page "https://github.com/tmalsburg/helm-bibtex")
10585       (synopsis "Bibliography manager based on Helm")
10586       (description "This package provides bibliography manager for Emacs,
10587 based on Helm and the bibtex-completion backend.
10589 Key features:
10591 @itemize
10592 @item Quick access to your bibliography from within Emacs
10593 @item Powerful search capabilities
10594 @item Provides instant search results as you type
10595 @item Tightly integrated with LaTeX authoring, emails, Org mode, etc.
10596 @item Open the PDFs, URLs, or DOIs associated with an entry
10597 @item Insert LaTeX cite commands, Ebib links, or Pandoc citations,
10598 BibTeX entries, or plain text references at point, attach PDFs to emails
10599 @item Support for note taking
10600 @item Quick access to online bibliographic databases such as Pubmed,
10601 arXiv, Google Scholar, Library of Congress, etc.
10602 @item Imports BibTeX entries from CrossRef and other sources.
10603 @end itemize\n")
10604       (license license:gpl3+))))
10606 (define-public emacs-ewmctrl
10607   (let ((commit "3d0217c4d6cdb5c308b6cb4293574f470d4faacf"))
10608     (package
10609       (name "emacs-ewmctrl")
10610       (version (git-version "0.0.1" "1" commit))
10611       (source
10612        (origin
10613          (method git-fetch)
10614          (uri (git-reference
10615                (url "https://github.com/flexibeast/ewmctrl.git")
10616                (commit commit)))
10617          (file-name (git-file-name name version))
10618          (sha256
10619           (base32
10620            "0ilwvx0qryv3v6xf0gxqwnfm6pf96gxap8h9g3f6z6lk9ff4n1wi"))))
10621       (build-system emacs-build-system)
10622       (arguments
10623        '(#:phases
10624          (modify-phases %standard-phases
10625            (add-after 'unpack 'patch-ewmctrl
10626              ;; This build phase makes sure ‘ewmctrl’ looks
10627              ;; for ‘wmctrl’ in the right place.
10628              (lambda _
10629                (let ((file "ewmctrl.el"))
10630                  (chmod file #o644)
10631                  (emacs-substitute-sexps file
10632                    ("(defcustom ewmctrl-wmctrl-path" (which "wmctrl")))))))))
10633       (inputs
10634        `(("wmctrl" ,wmctrl)))
10635       (home-page "https://github.com/flexibeast/ewmctrl")
10636       (synopsis "Emacs interface to @code{wmctrl}")
10637       (description "@code{ewmctrl} provides an Emacs interface to
10638 @code{wmctrl} command-line window-management program.")
10639       (license license:gpl3+))))
10641 (define-public emacs-erc-image
10642   (let ((commit "82fb3871f02e24b1e880770b9a3d187aab43d0f0")
10643         (revision "1"))
10644     (package
10645       (name "emacs-erc-image")
10646       (version (git-version "0" revision commit))
10647       (source
10648        (origin
10649          (method git-fetch)
10650          (uri (git-reference
10651                (url "https://github.com/kidd/erc-image.el")
10652                (commit commit)))
10653          (file-name (git-file-name name version))
10654          (sha256
10655           (base32
10656            "1q8mkf612fb4fjp8h4kbr107wn083iqfdgv8f80pcmil8y33dw9i"))))
10657       (build-system emacs-build-system)
10658       (home-page "https://github.com/kidd/erc-image.el")
10659       (synopsis "Show inlined images (png/jpg/gif/svg) in ERC buffers")
10660       (description "This plugin subscribes to hooks @code{erc-insert-modify-hook}
10661 and @code{erc-send-modify-hook} to download and show images.")
10662       (license license:gpl3+))))
10664 (define-public emacs-helm-gtags
10665   (package
10666     (name "emacs-helm-gtags")
10667     (version "1.5.6")
10668     (source
10669      (origin
10670        (method git-fetch)
10671        (uri (git-reference
10672              (url "https://github.com/syohex/emacs-helm-gtags.git")
10673              (commit version)))
10674        (file-name (git-file-name name version))
10675        (sha256
10676         (base32 "0zyspn9rqfs3hkq8qx0q1w5qiv30ignbmycyv0vn3a6q7a5fsnhx"))))
10677     (build-system emacs-build-system)
10678     (propagated-inputs
10679      `(("emacs-helm" ,emacs-helm)))
10680     (home-page "https://github.com/syohex/emacs-helm-gtags")
10681     (synopsis "Emacs Helm interface to GNU Global")
10682     (description
10683      "@code{emacs-helm-gtags} provides a Emacs Helm interface to GNU Global.")
10684     (license license:gpl3+)))
10686 (define-public emacs-list-utils
10687   (package
10688     (name "emacs-list-utils")
10689     (version "0.4.4")
10690     (source
10691      (origin
10692        (method git-fetch)
10693        (uri (git-reference
10694              (url "https://github.com/rolandwalker/list-utils.git")
10695              (commit (string-append "v" version))))
10696        (file-name (git-file-name name version))
10697        (sha256
10698         (base32 "0ql159v7sxs33yh2l080kchrj52vk34knz50cvqi3ykpb7djg3sz"))))
10699     (build-system emacs-build-system)
10700     (home-page "https://github.com/rolandwalker/list-utils")
10701     (synopsis "List-manipulation utility functions")
10702     (description "This package provides a list manipulation library for Emacs.")
10703     (license license:gpl3+)))
10705 (define-public emacs-move-text
10706   (package
10707     (name "emacs-move-text")
10708     (version "2.0.8")
10709     (source
10710      (origin
10711        (method git-fetch)
10712        (uri (git-reference
10713              (url "https://github.com/emacsfodder/move-text.git")
10714              (commit version)))
10715        (file-name (git-file-name name version))
10716        (sha256
10717         (base32 "06jxk5g23822gfmwrxhc34zand3dr8p2wjh1zs3j61ibz6n0nmz1"))))
10718     (build-system emacs-build-system)
10719     (home-page "https://github.com/emacsfodder/move-text")
10720     (synopsis "Move current line or region with M-up or M-down")
10721     (description "This package provide functions to move the current line
10722 using @kbd{M-up} or @kbd{M-down} if a region is marked, it will move the
10723 region instead.")
10724     (license license:gpl3+)))
10726 (define-public emacs-validate
10727   (package
10728     (name "emacs-validate")
10729     (version "1.0.5")
10730     (source (origin
10731               (method url-fetch)
10732               (uri (string-append "https://github.com/Malabarba/validate.el"
10733                                   "/archive/" version ".tar.gz"))
10734               (file-name (string-append name "-" version ".tar.gz"))
10735               (sha256
10736                (base32
10737                 "125mbd111f1h1baw0z3fzm48y1bvaigljyzvvnqgrn0shxbj0khg"))))
10738     (build-system emacs-build-system)
10739     (home-page "https://github.com/Malabarba/validate.el")
10740     (synopsis "Emacs library for scheme validation")
10741     (description "This Emacs library provides two functions that perform
10742 schema validation.")
10743     (license license:gpl3+)))
10745 (define-public emacs-rainbow-blocks
10746   (let ((commit "dd435d7bb34ff6f162a5f315df308b90b7e9f842"))
10747     (package
10748       (name "emacs-rainbow-blocks")
10749       (version (git-version "1.0.0" "1" commit))
10750       (source (origin
10751                 (method git-fetch)
10752                 (uri (git-reference
10753                       (url "https://github.com/istib/rainbow-blocks.git")
10754                       (commit commit)))
10755                 (file-name (git-file-name name version))
10756                 (sha256
10757                  (base32
10758                   "06yfb3i7wzvqrhkb61zib9xvpb5i00s4frizkzff66im05k0n795"))))
10759       (build-system emacs-build-system)
10760       (home-page "https://github.com/istib/rainbow-blocks")
10761       (synopsis "Highlight sexp blocks")
10762       (description "Rainbow-blocks is an Emacs mode that highlights blocks
10763 made of parentheses, brackets, and braces according to their depth.  Each
10764 successive level is highlighted in a different color.  This makes it easy to
10765 orient yourself in the code, and tell which statements are at a given level.")
10766       (license license:gpl3+))))
10768 (define-public emacs-hierarchy
10769   (package
10770     (name "emacs-hierarchy")
10771     (version "0.7.0")
10772     (source
10773      (origin
10774        (method git-fetch)
10775        (uri (git-reference
10776              (url "https://github.com/DamienCassou/hierarchy.git")
10777              (commit (string-append "v" version))))
10778        (file-name (git-file-name name version))
10779        (sha256
10780         (base32 "1kykbb1sil5cycfa5aj8dhsxc5yrx1641i2np5kwdjid6ahdlz5r"))))
10781     (build-system emacs-build-system)
10782     (home-page "https://github.com/DamienCassou/hierarchy")
10783     (synopsis "Library to create and display hierarchy structures")
10784     (description "This package provides an Emacs library to create, query,
10785 navigate and display hierarchy structures.")
10786     (license license:gpl3+)))
10788 (define-public emacs-tree-mode
10789   (let ((commit "b06078826d5875d74b0e7b7ac47b0d0917610534")
10790         (revision "1"))
10791     (package
10792       (name "emacs-tree-mode")
10793       (version (string-append "0.0.1" "-" revision "."
10794                               (string-take commit 7)))
10795       (source
10796        (origin
10797          (method git-fetch)
10798          (uri (git-reference
10799                (url "https://github.com/emacsorphanage/tree-mode.git")
10800                (commit commit)))
10801          (file-name (git-file-name name version))
10802          (sha256
10803           (base32
10804            "13bbdhdmqg4x9yghanhr8fsbsxbnypzxdxgicz31sjjm675kpnix"))))
10805       (build-system emacs-build-system)
10806       (home-page "https://github.com/emacsorphanage/tree-mode")
10807       (synopsis "Emacs mode to manage tree widgets")
10808       (description
10809        "This package provides an Emacs library to manage tree widgets.")
10810       (license license:gpl3+))))
10812 (define-public emacs-md4rd
10813   (package
10814     (name "emacs-md4rd")
10815     (version "0.3.1")
10816     (source (origin
10817               (method git-fetch)
10818               (uri (git-reference
10819                     (url "https://github.com/ahungry/md4rd.git")
10820                     (commit version)))
10821               (file-name (git-file-name name version))
10822               (sha256
10823                (base32
10824                 "1n6g6k4adzkkn1g7z4j27s35xy12c1fg2r08gv345ddr3wplq4ri"))))
10825     (propagated-inputs
10826      `(("emacs-hierarchy" ,emacs-hierarchy)
10827        ("emacs-request" ,emacs-request)
10828        ("emacs-dash" ,emacs-dash)
10829        ("emacs-s" ,emacs-s)
10830        ("emacs-tree-mode" ,emacs-tree-mode)))
10831     (build-system emacs-build-system)
10832     (home-page "https://github.com/ahungry/md4rd")
10833     (synopsis "Emacs Mode for Reddit")
10834     (description
10835      "This package allows to read Reddit from within Emacs interactively.")
10836     (license license:gpl3+)))
10838 (define-public emacs-pulseaudio-control
10839   (let ((commit "7e1a87068379075a5e9ce36c64c686c03d20d379")
10840         (revision "3"))
10841     (package
10842       (name "emacs-pulseaudio-control")
10843       (version (git-version "0.0.1" revision commit))
10844       (source
10845        (origin
10846          (method git-fetch)
10847          (uri (git-reference
10848                (url "https://github.com/flexibeast/pulseaudio-control.git")
10849                (commit commit)))
10850          (file-name (git-file-name name version))
10851          (sha256
10852           (base32
10853            "0wcaqyh15x56255rrj350089z15pnwixa2vf0ly6dv0hjmzmh3mr"))))
10854       (build-system emacs-build-system)
10855       (arguments
10856        '(#:phases (modify-phases %standard-phases
10857                     (add-after 'unpack 'patch-file-name
10858                       (lambda* (#:key inputs #:allow-other-keys)
10859                         (let ((pulseaudio (assoc-ref inputs "pulseaudio")))
10860                           (chmod "pulseaudio-control.el" #o600)
10861                           (emacs-substitute-variables "pulseaudio-control.el"
10862                             ("pulseaudio-control-pactl-path"
10863                              (string-append pulseaudio "/bin/pactl")))
10864                           #t))))))
10865       (inputs `(("pulseaudio" ,pulseaudio)))
10866       (home-page "https://github.com/flexibeast/pulseaudio-control")
10867       (synopsis "Control @code{pulseaudio} from Emacs")
10868       (description
10869        "This package allows to control @code{pulseaudio} from Emacs.")
10870       (license license:gpl3+))))
10872 (define-public emacs-datetime
10873   (package
10874     (name "emacs-datetime")
10875     (version "0.3")
10876     (source
10877      (origin
10878        (method git-fetch)
10879        (uri (git-reference
10880              (url "https://github.com/doublep/datetime.git")
10881              (commit version)))
10882        (file-name (git-file-name name version))
10883        (sha256
10884         (base32 "0fdswqi53qx924lib7nd9dazn0916xf1ybrh3bcn3f8cn6b8ikg5"))))
10885     (build-system emacs-build-system)
10886     (home-page "https://github.com/doublep/datetime/")
10887     (synopsis "Library to work with dates in Emacs")
10888     (description "Parsing, formatting, matching and recoding
10889 timestamps and date-time format strings library for Emacs.")
10890     (license license:gpl3+)))
10892 (define-public emacs-org-mind-map
10893   (let ((commit "9d6e262bedd94daf9de269f4d56de277275677cb")
10894         (revision "1"))
10895     (package
10896       (name "emacs-org-mind-map")
10897       (version (string-append "0.0.1" "-" revision "."
10898                               (string-take commit 7)))
10899       (source
10900        (origin
10901          (method git-fetch)
10902          (uri (git-reference
10903                (url "https://github.com/theodorewiles/org-mind-map.git")
10904                (commit commit)))
10905          (file-name (git-file-name name version))
10906          (sha256
10907           (base32
10908            "0jgkkgq7g64zckrmjib0hvz0qy3ynz5vz13qbmlpf096l3bb65wn"))))
10909       (propagated-inputs
10910        `(("emacs-dash" ,emacs-dash)))
10911       (build-system emacs-build-system)
10912       (home-page "https://github.com/theodorewiles/org-mind-map")
10913       (synopsis "Create Graphviz directed graphs from Org files")
10914       (description
10915        "This package creates Graphviz directed graphs from Org files.")
10916       (license license:gpl3+))))
10918 (define-public emacs-npm-mode
10919   (package
10920     (name "emacs-npm-mode")
10921     (version "0.6.0")
10922     (source
10923      (origin
10924        (method git-fetch)
10925        (uri (git-reference
10926              (url "https://github.com/mojochao/npm-mode.git")
10927              (commit version)))
10928        (file-name (git-file-name name version))
10929        (sha256
10930         (base32 "1mh6nbffciw4yhv049kdhh796ysj1x21ndm3fwymhskb3dy0w1ss"))))
10931     (build-system emacs-build-system)
10932     (home-page "https://github.com/mojochao/npm-mode")
10933     (synopsis "Minor mode for working with @code{npm} projects")
10934     (description
10935      "@code{npm-mode} provides a minor mode to work with @code{npm} projects.")
10936     (license license:gpl3+)))
10938 (define-public emacs-seq
10939   (package
10940     (name "emacs-seq")
10941     (version "2.20")
10942     (source
10943      (origin
10944        (method url-fetch)
10945        (uri (string-append "http://elpa.gnu.org/packages/seq-" version ".tar"))
10946        (sha256
10947         (base32
10948          "0vrpx6nnyjb0gsypknzagimlhvcvi5y1rcdkpxyqr42415zr8d0n"))))
10949     (build-system emacs-build-system)
10950     (home-page "http://elpa.gnu.org/packages/seq.html")
10951     (synopsis "Sequence manipulation functions")
10952     (description "Sequence-manipulation functions that complement basic
10953 functions provided by @file{subr.el}.")
10954     (license license:gpl3+)))
10956 (define-public emacs-itail
10957   (let ((commit "6e43c20da03be3b9c6ece93b7dc3495975ec1888")
10958         (revision "1"))
10959     (package
10960       (name "emacs-itail")
10961       (version (string-append "0.0.1" "-" revision "."
10962                               (string-take commit 7)))
10963       (source
10964        (origin
10965          (method git-fetch)
10966          (uri (git-reference
10967                (url "https://github.com/re5et/itail.git")
10968                (commit commit)))
10969          (file-name (git-file-name name version))
10970          (sha256
10971           (base32
10972            "044nzxh1hq41faxw3lix0wy78vfz304pjcaa5a11dqfz7q3gx5cv"))))
10973       (build-system emacs-build-system)
10974       (home-page "https://github.com/re5et/itail")
10975       (synopsis "Interactive @code{tail} Emacs mode")
10976       (description "@code{itail} provides interactive @code{tail} mode
10977 that allows you to filter the tail with unix pipes and highlight the
10978 contents of the tailed file.  Works locally or on remote files using
10979 tramp.")
10980       (license license:gpl3+))))
10982 (define-public emacs-loop
10983   (package
10984     (name "emacs-loop")
10985     (version "1.3")
10986     (source
10987      (origin
10988        (method git-fetch)
10989        (uri (git-reference
10990              (url "https://github.com/Wilfred/loop.el.git")
10991              (commit version)))
10992        (file-name (git-file-name name version))
10993        (sha256
10994         (base32 "1gs95xnmnn8aa4794k7h8mw1sz1nfdh9v0caqj6yvnsdnwy74n5x"))))
10995     (build-system emacs-build-system)
10996     (home-page "https://github.com/Wilfred/loop.el")
10997     (synopsis "Imperative loop structures for Emacs")
10998     (description "Loop structures familiar to users of other languages.  This
10999 library adds a selection of popular loop structures as well as break and
11000 continue.")
11001     (license license:gpl3+)))
11003 (define-public emacs-elisp-refs
11004   (package
11005     (name "emacs-elisp-refs")
11006     (version "1.3")
11007     (source
11008      (origin
11009        (method git-fetch)
11010        (uri (git-reference
11011              (url "https://github.com/Wilfred/elisp-refs.git")
11012              (commit version)))
11013        (file-name (git-file-name name version))
11014        (sha256
11015         (base32 "0w7k91xf69zc0zkjrw8h8sjdjf9xq9qs5zhvajhd718lzf93564b"))))
11016     (build-system emacs-build-system)
11017     (propagated-inputs
11018      `(("emacs-dash" ,emacs-dash)
11019        ("emacs-f" ,emacs-f)
11020        ("emacs-list-utils" ,emacs-list-utils)
11021        ("emacs-loop" ,emacs-loop)
11022        ("emacs-s" ,emacs-s)
11023        ("emacs-shut-up" ,emacs-shut-up)))
11024     (home-page "https://github.com/Wilfred/elisp-refs")
11025     (synopsis "Find callers of elisp functions or macros")
11026     (description "Find references to functions, macros or variables.  Unlike a
11027 dumb text search, @code{elisp-refs} actually parses the code, so it's never
11028 confused by comments or @code{foo-bar} matching @code{foo}.")
11029     (license license:gpl3+)))
11031 (define-public emacs-crux
11032   (let ((commit "4f5c8fefd5a6aa52e128c4a0401cc86410d6ac8f")
11033         (revision "1"))
11034     (package
11035       (name "emacs-crux")
11036       (version (string-append "0.3.0" "-" revision "."
11037                               (string-take commit 7)))
11038       (source
11039        (origin
11040          (method git-fetch)
11041          (uri (git-reference
11042                (url "https://github.com/bbatsov/crux.git")
11043                (commit commit)))
11044          (file-name (git-file-name name version))
11045          (sha256
11046           (base32
11047            "1fdxvv25cs01sg6fmvmzxpzvs50i6v8n2jya60lbavxqqhi0sbxd"))))
11048       (build-system emacs-build-system)
11049       (home-page "https://github.com/bbatsov/crux")
11050       (synopsis "Collection of useful functions for Emacs")
11051       (description
11052        "@code{crux} provides a collection of useful functions for Emacs.")
11053       (license license:gpl3+))))
11055 (define-public emacs-edit-server
11056   (package
11057     (name "emacs-edit-server")
11058     (version "1.13")
11059     (source
11060      (origin
11061        (method git-fetch)
11062        (uri (git-reference
11063              (url "https://github.com/stsquad/emacs_chrome.git")
11064              (commit (string-append "v" version))))
11065        (file-name (git-file-name name version))
11066        (sha256
11067         (base32 "12dp1xj09jrp0kxp9xb6cak9dn6zkyis1wfn4fnhzmxxnrd8c5rn"))))
11068     (build-system emacs-build-system)
11069     (arguments
11070      `(#:phases
11071        (modify-phases %standard-phases
11072          (add-after 'unpack 'chdir-elisp
11073            ;; Elisp directory is not in root of the source.
11074            (lambda _
11075              (chdir "servers"))))))
11076     (home-page "https://github.com/stsquad/emacs_chrome")
11077     (synopsis "Server that responds to edit requests from Chromium")
11078     (description
11079      "This package provides an edit server to respond to requests from Emacs.")
11080     (license license:gpl3+)))
11082 (define-public emacs-m-buffer-el
11083   (package
11084     (name "emacs-m-buffer-el")
11085     (version "0.15")
11086     (source
11087      (origin
11088        (method url-fetch)
11089        (uri (string-append "https://github.com/phillord/m-buffer-el"
11090                            "/archive/" "v" version ".tar.gz"))
11091        (file-name (string-append name "-" version ".tar.gz"))
11092        (sha256
11093         (base32
11094          "17vdcc8q37q9db98jyww1c0ivinmwfcw4l04zccfacalra63a214"))))
11095     (arguments
11096      `(#:phases
11097        (modify-phases %standard-phases
11098          (add-before 'install 'check
11099            (lambda* (#:key inputs #:allow-other-keys)
11100              (invoke "emacs" "--batch" "-L" "."
11101                      "-l" "test/m-buffer-test.el"
11102                      "-l" "test/m-buffer-at-test.el"
11103                      "-f" "ert-run-tests-batch-and-exit"))))))
11104     (build-system emacs-build-system)
11105     (home-page "https://github.com/phillord/m-buffer-el")
11106     (synopsis "List oriented buffer operations for Emacs")
11107     (description "@code{m-buffer} provides a set of list-orientated functions
11108 for operating over the contents of Emacs buffers.")
11109     (license license:gpl3+)))
11111 (define-public emacs-let-alist
11112   (package
11113     (name "emacs-let-alist")
11114     (version "1.0.5")
11115     (source
11116      (origin
11117        (method url-fetch)
11118        (uri (string-append
11119              "https://elpa.gnu.org/packages/let-alist-" version ".el"))
11120        (sha256
11121         (base32
11122          "0r7b9jni50la1m79kklml11syg8d2fmdlr83pv005sv1wh02jszw"))))
11123     (build-system emacs-build-system)
11124     (home-page "https://elpa.gnu.org/packages/let-alist.html")
11125     (synopsis "Easily let-bind values of an assoc-list by their names")
11126     (description "This package offers a single macro, @code{let-alist}.  This
11127 macro takes a first argument (whose value must be an alist) and a body.")
11128     (license license:gpl3+)))
11130 (define-public emacs-esup
11131   (let ((commit "a589005a9a888537deef94d6fe38a9b8790c97c7")
11132         (revision "1"))
11133     (package
11134       (name "emacs-esup")
11135       (version (string-append "0.6" "-" revision "."
11136                               (string-take commit 7)))
11137       (source
11138        (origin
11139          (method git-fetch)
11140          (uri (git-reference
11141                (url "https://github.com/jschaf/esup.git")
11142                (commit commit)))
11143          (file-name (git-file-name name version))
11144          (sha256
11145           (base32
11146            "04lxmd0h7mfjjl0qghrycgff0vcv950j1wqv0dbkr61jxp64n5fv"))))
11147       ;; TODO: Add tests
11148       (build-system emacs-build-system)
11149       (home-page "https://github.com/jschaf/esup")
11150       (synopsis "Emacs start up profiler")
11151       (description "Benchmark Emacs Startup time without ever leaving
11152 your Emacs.")
11153       (license license:gpl2+))))
11155 (define-public emacs-restart-emacs
11156   (let ((commit "9aa90d3df9e08bc420e1c9845ee3ff568e911bd9")
11157         (revision "1"))
11158     (package
11159       (name "emacs-restart-emacs")
11160       (version (git-version "0.1.1" revision commit))
11161       (source
11162        (origin
11163          (method git-fetch)
11164          (uri (git-reference
11165                (url "https://github.com/iqbalansari/restart-emacs.git")
11166                (commit commit)))
11167          (file-name (git-file-name name version))
11168          (sha256
11169           (base32 "02x1a85k7r95z8091zgjiaj9nf0zvx1jy4xvl3hr12qbnrx1wfav"))))
11170       (build-system emacs-build-system)
11171       (home-page "https://github.com/iqbalansari/restart-emacs")
11172       (synopsis "Restart Emacs from within Emacs")
11173       (description "This package provides a simple command to restart Emacs from
11174 within Emacs.")
11175       (license license:gpl3+))))
11177 (define-public emacs-sourcemap
11178   (package
11179     (name "emacs-sourcemap")
11180     (version "0.03")
11181     (source
11182      (origin
11183        (method git-fetch)
11184        (uri (git-reference
11185              (url "https://github.com/syohex/emacs-sourcemap.git")
11186              (commit version)))
11187        (file-name (git-file-name name version))
11188        (sha256
11189         (base32 "115g2mfpbfywp8xnag4gsb50klfvplqfh928a5mabb5s8v4a3582"))))
11190     (build-system emacs-build-system)
11191     (home-page "https://github.com/syohex/emacs-sourcemap")
11192     (synopsis "Sourcemap parser")
11193     (description "Sourcemap parser")
11194     (license license:gpl3+)))
11196 (define-public emacs-macrostep
11197   (let ((commit "424e3734a1ee526a1bd7b5c3cd1d3ef19d184267"))
11198     (package
11199       (name "emacs-macrostep")
11200       (version (git-version "0.9" "1" commit))
11201       (source (origin
11202                 (method git-fetch)
11203                 (uri (git-reference
11204                       (url "https://github.com/joddie/macrostep.git")
11205                       (commit commit)))
11206                 (file-name (git-file-name name version))
11207                 (sha256
11208                  (base32
11209                   "1fm40mxdn289cyzgw992223dgrjmwxn4q8svyyxfaxjrpb38jhjz"))))
11210       (build-system emacs-build-system)
11211       (arguments
11212        '(#:phases
11213          (modify-phases %standard-phases
11214            (add-before 'check 'remove-test
11215              ;; Fails because of requirement ‘/bin/sh’.
11216              (lambda _
11217                (let ((file "macrostep-test.el"))
11218                  (chmod file #o644)
11219                  (emacs-batch-edit-file file
11220                    `(progn (progn (goto-char (point-min))
11221                                   (re-search-forward
11222                                    "(ert-deftest macrostep-expand-c-macros")
11223                                   (beginning-of-line)
11224                                   (kill-sexp))
11225                            (basic-save-buffer))))))
11226            (add-before 'install 'check
11227              (lambda _
11228                (invoke "emacs" "--batch" "-L" "."
11229                        "-l" "macrostep-test.el"
11230                        "-f" "ert-run-tests-batch-and-exit"))))))
11231       (home-page "https://github.com/joddie/macrostep")
11232       (synopsis "Interactive macro-expander for Emacs")
11233       (description "@code{macrostep} is an Emacs minor mode for interactively
11234 stepping through the expansion of macros in Emacs Lisp source code.  It lets
11235 you see exactly what happens at each step of the expansion process by
11236 pretty-printing the expanded forms inline in the source buffer, which is
11237 temporarily read-only while macro expansions are visible.  You can expand and
11238 collapse macro forms one step at a time, and evaluate or instrument the
11239 expansions for debugging with Edebug as normal (but see “Bugs and known
11240 limitations”, below).  Single-stepping through the expansion is particularly
11241 useful for debugging macros that expand into another macro form.  These can be
11242 difficult to debug with Emacs’ built-in macroexpand, which continues expansion
11243 until the top-level form is no longer a macro call.")
11244       (license license:gpl3+))))
11246 (define-public emacs-parent-mode
11247   (package
11248     (name "emacs-parent-mode")
11249     (version "2.3")
11250     (source
11251      (origin
11252        (method git-fetch)
11253        (uri (git-reference
11254              (url "https://github.com/Fanael/parent-mode.git")
11255              (commit version)))
11256        (file-name (git-file-name name version))
11257        (sha256
11258         (base32 "0i5bc7lyyrx6swqlrp9l5x72yzwi53qn6ldrfs99gh08b3yvsnni"))))
11259     (build-system emacs-build-system)
11260     (home-page "https://github.com/Fanael/parent-mode")
11261     (synopsis "Get major mode's parent modes")
11262     (description "Get major mode's parent modes")
11263     (license license:gpl3+)))
11265 (define-public emacs-lacarte
11266   (package
11267     (name "emacs-lacarte")
11268     (version "0.1")
11269     (source (origin
11270               (method url-fetch)
11271               (uri "https://www.emacswiki.org/emacs/download/lacarte.el")
11272               (sha256
11273                (base32
11274                 "1sbmk37ljq5j7dsw5c37sbxvlfgdqswh7bi4dknyjzfxlq50f4am"))))
11275     (build-system emacs-build-system)
11276     (home-page "https://www.emacswiki.org/emacs/lacarte.el")
11277     (synopsis "Execute menu items as commands, with completion")
11278     (description "Execute menu items as commands, with completion.")
11279     (license license:gpl3)))
11281 (define-public emacs-isearch-prop
11282   (let ((commit "5e9dc44cf582d998aaa73ccd4d07cbda01248156")
11283         (revision "1"))
11284     (package
11285       (name "emacs-isearch-prop")
11286       (version (git-version "0" revision commit))
11287       (source
11288        (origin
11289          (method git-fetch)
11290          (uri (git-reference
11291                (url "https://github.com/emacsmirror/isearch-prop.git")
11292                (commit commit)))
11293          (file-name (git-file-name name version))
11294          (sha256
11295           (base32
11296            "1xawppy705ybsgx566zvj8zk2aajq0sqvhvfs7nijqq32lx0a2zl"))))
11297       (build-system emacs-build-system)
11298       (home-page "https://www.emacswiki.org/emacs/isearch-prop.el")
11299       (synopsis "Extensions to @code{isearch.el}")
11300       (description "The Emacs library @code{isearch-prop.el} lets you search within
11301   contexts.  You can limit incremental search to a set of zones of
11302   buffer text, search contexts that in effect constitute a multi-region.
11303   These zones can be defined in various ways, including some ways
11304   provided specially by this library.")
11305       (license license:gpl3+))))
11307 (define-public emacs-company-lua
11308   (let ((commit "0be8122f3adf57ad27953bf4b03545d6298d3da4"))
11309     (package
11310       (name "emacs-company-lua")
11311       (version (git-version "0.1" "1" commit))
11312       (source
11313        (origin
11314          (method git-fetch)
11315          (uri (git-reference
11316                (url "https://github.com/ptrv/company-lua.git")
11317                (commit commit)))
11318          (file-name (git-file-name name version))
11319          (sha256
11320           (base32
11321            "1d9i165apgmwns7b2fd5wcpjpkah3dyj20v5sb8ynvz6qhhr5r9c"))))
11322       (build-system emacs-build-system)
11323       (propagated-inputs
11324        `(("emacs-company" ,emacs-company)
11325          ("emacs-s" ,emacs-s)
11326          ("emacs-f" ,emacs-f)
11327          ("emacs-lua-mode" ,emacs-lua-mode)))
11328       (home-page "https://github.com/ptrv/company-lua")
11329       (synopsis "Company backend for Lua")
11330       (description
11331        "This package provides Company backend for Lua programming language.")
11332       (license license:gpl3+))))
11334 (define-public emacs-beginend
11335   (package
11336     (name "emacs-beginend")
11337     (version "2.0.0")
11338     (source
11339      (origin
11340        (method git-fetch)
11341        (uri (git-reference
11342              (url "https://github.com/DamienCassou/beginend.git")
11343              (commit (string-append "v" version))))
11344        (file-name (git-file-name name version))
11345        (sha256
11346         (base32 "1jbhg73g1rrkbwql5vi2b0ys9avfazmwzwgd90gkzwavw0ch9cvl"))))
11347     ;; TODO: Run tests.
11348     (build-system emacs-build-system)
11349     (inputs
11350      `(("emacs-undercover" ,emacs-undercover))) ; For tests.
11351     (home-page "https://github.com/DamienCassou/beginend")
11352     (synopsis "Redefine @code{M-<} and @code{M->} for Emacs modes")
11353     (description "@code{beginend} redefines @code{M-<} and @code{M->}
11354 keybindings for Emacs modes so that point moves to meaningful
11355 locations.  Redefined keys are still accessible by pressing the same
11356 key again.")
11357     (license license:gpl3+)))
11359 (define-public emacs-mbsync
11360   (let ((commit "42077e83ae2db778ce0f8e22f8357b40355526b3")
11361         (revision "1"))
11362     (package
11363       (name "emacs-mbsync")
11364       (version (string-append "0.0.1" "-" revision "."
11365                               (string-take commit 7)))
11366       (source
11367        (origin
11368          (method git-fetch)
11369          (uri (git-reference
11370                (url "https://github.com/dimitri/mbsync-el.git")
11371                (commit commit)))
11372          (file-name (git-file-name name version))
11373          (sha256
11374           (base32
11375            "0yj93y2mpxlir8x73znlg1slxlv4blm1vjv5h2w3j8lxg8bxvmn6"))))
11376       (build-system emacs-build-system)
11377       (home-page "https://github.com/dimitri/mbsync-el")
11378       (synopsis "Interface to mbsync for Emacs")
11379       (description "This package allows to call the @code{mbsync} from
11380 within Emacs.")
11381       (license license:gpl3+))))
11383 (define-public emacs-ibuffer-projectile
11384   (let ((commit "c18ac540ee46cb759fc5df18747f6e8d23563011")
11385         (revision "1"))
11386     (package
11387       (name "emacs-ibuffer-projectile")
11388       (version (string-append "0.2" "-" revision "."
11389                               (string-take commit 7)))
11390       (source
11391        (origin
11392          (method git-fetch)
11393          (uri (git-reference
11394                (url "https://github.com/purcell/ibuffer-projectile.git")
11395                (commit commit)))
11396          (file-name (git-file-name name version))
11397          (sha256
11398           (base32
11399            "1nd26cwwdpnwj0g4w393rd59klpyr6wqrnyr6scmwb5d06bsm44n"))))
11400       (build-system emacs-build-system)
11401       (propagated-inputs
11402        `(("emacs-projectile" ,emacs-projectile)))
11403       (home-page "https://github.com/purcell/ibuffer-projectile")
11404       (synopsis "Group ibuffer's list by projectile root")
11405       (description "Adds functionality to Emacs @code{ibuffer} for
11406 grouping buffers by their projectile root directory.")
11407       (license license:gpl3+))))
11409 (define-public emacs-helm-mode-manager
11410   (package
11411     (name "emacs-helm-mode-manager")
11412     (version "1.0.0")
11413     (source
11414      (origin
11415        (method url-fetch)
11416        (uri (string-append "https://github.com/istib/helm-mode-manager/"
11417                            "archive/" version ".tar.gz"))
11418        (file-name (string-append name "-" version ".tar.gz"))
11419        (sha256
11420         (base32
11421          "0wllj321z16hgrx0ddwzk5wz4mnnx5am7w5nclqclfc5dfdn92wm"))))
11422     (build-system emacs-build-system)
11423     (propagated-inputs
11424      `(("emacs-helm" ,emacs-helm)))
11425     (home-page "https://github.com/istib/helm-mode-manager/")
11426     (synopsis "Switch and toggle Emacs major and minor modes using Helm")
11427     (description "This package provides a Helm interface for toggling Emacs
11428 major or minor mode.
11430 @itemize
11431 @item @code{helm-switch-major-mode} list of all major modes
11432 @item @code{helm-enable-minor-mode} list of all inactive minor modes
11433 @item @code{helm-disable-minor-mode} list of all ACTIVE minor modes
11434 @end itemize\n
11436 Hitting @code{RET} enables the mode, @code{C-z} shows the mode
11437 documentation.")
11438     (license license:gpl3+)))
11440 (define-public emacs-hy-mode
11441   (package
11442     (name "emacs-hy-mode")
11443     (version "1.0.3")
11444     (source
11445      (origin
11446        (method git-fetch)
11447        (uri (git-reference
11448              (url "https://github.com/hylang/hy-mode.git")
11449              (commit (string-append "v" version))))
11450        (file-name (git-file-name name version))
11451        (sha256
11452         (base32 "1jxximiznz7fw9ys5k6plw85zrbzvxidql7py1fdi425fdp4058z"))))
11453     (build-system emacs-build-system)
11454     (propagated-inputs
11455      `(("emacs-dash" ,emacs-dash)
11456        ("emacs-s" ,emacs-s)))
11457     (home-page "https://github.com/hylang/hy-mode")
11458     (synopsis "Major mode for Hylang")
11459     (description "This package provides a major mode for Hylang.")
11460     (license license:gpl3+)))
11462 (define-public emacs-web-beautify
11463   (package
11464     (name "emacs-web-beautify")
11465     (version "0.3.2")
11466     (source
11467      (origin
11468        (method git-fetch)
11469        (uri (git-reference
11470              (url "https://github.com/yasuyk/web-beautify.git")
11471              (commit version)))
11472        (file-name (git-file-name name version))
11473        (sha256
11474         (base32 "0vms7zz3ym53wf1zdrkbf2ky2xjr1v134ngsd0jr8azyi8siw84d"))))
11475     (build-system emacs-build-system)
11476     (home-page "https://github.com/yasuyk/web-beautify")
11477     (synopsis "Format HTML, CSS and JavaScript, JSON")
11478     (description "This package provides an Emacs functions to format HTML,
11479 CSS, JavaScript, JSON.")
11480     (license license:gpl3+)))
11482 (define-public emacs-helm-shell-history
11483   (let ((commit "110d3c35c52fe4b89b29e79ea4c8626bce7266a1"))
11484     (package
11485       (name "emacs-helm-shell-history")
11486       (version (git-version "0.1" "1" commit))
11487       (source
11488        (origin
11489          (method git-fetch)
11490          (uri (git-reference
11491                (url "https://github.com/yuutayamada/helm-shell-history.git")
11492                (commit commit)))
11493          (file-name (git-file-name name version))
11494          (sha256
11495           (base32
11496            "18fkjcz69g4dyaxhf9j8svr5x6dhsdnglddwisis8hdn504scpfj"))))
11497       (build-system emacs-build-system)
11498       (arguments
11499        '(#:phases
11500          (modify-phases %standard-phases
11501            (add-before 'check 'patch-helm-shell-history-file
11502              (lambda _
11503                (let ((file "helm-shell-history.el"))
11504                  (chmod file #o644)
11505                  (emacs-substitute-sexps file
11506                    ("(defvar helm-shell-history-file"
11507                     `(expand-file-name "~/.bash_history"))))
11508                #t)))))
11509       (propagated-inputs
11510        `(("emacs-helm" ,emacs-helm)))
11511       (home-page "https://github.com/yuutayamada/helm-shell-history")
11512       (synopsis "Find shell history with Emacs Helm")
11513       (description "This package provides an Emacs Helm interface to search
11514 throw a shell history.")
11515       (license license:gpl3+))))
11517 (define-public emacs-discover-my-major
11518   (package
11519     (name "emacs-discover-my-major")
11520     (version "1.0")
11521     (source
11522      (origin
11523        (method url-fetch)
11524        (uri
11525         (string-append "https://github.com/steckerhalter/discover-my-major"
11526                        "/archive/" version ".tar.gz"))
11527        (file-name (string-append name "-" version ".tar.gz"))
11528        (sha256
11529         (base32
11530          "0nah41f92rrl2l405kpqr6iaks11jyclgl4z7ilfymbr4ifmsiyl"))))
11531     (build-system emacs-build-system)
11532     (propagated-inputs
11533      `(("emacs-makey" ,emacs-makey)))
11534     (home-page "https://github.com/steckerhalter/discover-my-major")
11535     (synopsis "Discover key bindings for the current Emacs major mode")
11536     (description "This package provides allows to discover key bindings and
11537 their meaning for the current Emacs major-mode.")
11538     (license license:gpl3+)))
11540 (define-public emacs-org-ref
11541   (let ((commit "8c9b5d7efb9f0c1ad5186b8203bdd017f4249129")
11542         (revision "1"))
11543     (package
11544       (name "emacs-org-ref")
11545       (version (string-append "1.1.1" "-" revision "."
11546                               (string-take commit 7)))
11547       (source
11548        (origin
11549          (method git-fetch)
11550          (uri (git-reference
11551                (url "https://github.com/jkitchin/org-ref.git")
11552                (commit commit)))
11553          (file-name (git-file-name name version))
11554          (sha256
11555           (base32
11556            "1rxz0bjdsayk0slv23i07d9xhj2m7s4hsc81wc2d1cs52dkr5zmz"))))
11557       (build-system emacs-build-system)
11558       (propagated-inputs
11559        `(("emacs-dash" ,emacs-dash)
11560          ("emacs-helm" ,emacs-helm)
11561          ("emacs-helm-bibtex" ,emacs-helm-bibtex)
11562          ("emacs-ivy" ,emacs-ivy)
11563          ("emacs-hydra" ,emacs-hydra)
11564          ("emacs-key-chord" ,emacs-key-chord)
11565          ("emacs-s" ,emacs-s)
11566          ("emacs-f" ,emacs-f)
11567          ("emacs-pdf-tools" ,emacs-pdf-tools)))
11568       (home-page "https://github.com/jkitchin/org-ref")
11569       (synopsis "Citations, cross-references and bibliographies in org-mode")
11570       (description
11571        "Lisp code to setup bibliography, cite, ref and label org-mode links.
11572 Also sets up reftex and helm for org-mode citations.  The links are
11573 clickable and do things that are useful.
11575 The default setup uses helm-bibtex.
11577 You should really read org-ref.org in this package for details.")
11578       (license license:gpl3+))))
11580 ;; This project is unmaintained.  Please use emacs-org-re-reveal instead.
11581 (define-public emacs-org-reveal
11582   (let ((commit "9210413202a360a559a51e8275faa42be68cf44b"))
11583     (package
11584       (name "emacs-org-reveal")
11585       (version (git-version "0.1" "3" commit))
11586       (source (origin
11587                 (method git-fetch)
11588                 (uri (git-reference
11589                       (url "https://github.com/yjwen/org-reveal.git")
11590                       (commit commit)))
11591                 (file-name (git-file-name name version))
11592                 (sha256
11593                  (base32
11594                   "1wlfk823d3vrn480m38j7ncaqm193lvh6y22b92fx4b3yhdbndza"))))
11595       (build-system emacs-build-system)
11596       (home-page "https://github.com/yjwen/org-reveal")
11597       (synopsis "Org and Reveal.js powered HTML presentation tool")
11598       (description "Org-Reveal is a command@{org-mode} extension that allows
11599 to create beautiful presentations (slides) with 3D effects from simple but
11600 powerful Org contents.")
11601       (license license:gpl3+))))
11603 (define-public emacs-org-re-reveal
11604   (package
11605     (name "emacs-org-re-reveal")
11606     (version "1.0.3")
11607     (source (origin
11608               (method git-fetch)
11609               (uri (git-reference
11610                     (url "https://gitlab.com/oer/org-re-reveal.git")
11611                     (commit "50cc6574c77f12d423f6cd096d8f76feb3673abc")))
11612               (file-name (git-file-name name version))
11613               (sha256
11614                (base32
11615                 "1v3z30gpimg4spf6zzqwp9b597zxk89h0vpq6xp58js4rjg4ixk8"))))
11616     (build-system emacs-build-system)
11617     (propagated-inputs
11618      `(("emacs-htmlize" ,emacs-htmlize)
11619        ("emacs-org" ,emacs-org)))
11620     (home-page "https://gitlab.com/oer/org-re-reveal")
11621     (synopsis "Build HTML presentations with reveal.js from Org source files")
11622     (description "This project started as fork of org-reveal.  It provides an
11623 export back-end for HTML presentations with reveal.js from Org mode source
11624 files.")
11625     (license license:gpl3+)))
11627 (define-public emacs-add-hooks
11628   (package
11629     (name "emacs-add-hooks")
11630     (version "3.1.1")
11631     (source
11632      (origin
11633        (method git-fetch)
11634        (uri (git-reference
11635              (url "https://github.com/nickmccurdy/add-hooks.git")
11636              (commit version)))
11637        (file-name (git-file-name name version))
11638        (sha256
11639         (base32 "1jv9fpcsm572zg0j1mbpbfkqgdlqapy89xhhj19pswkhjns1y2wl"))))
11640     (build-system emacs-build-system)
11641     (home-page "https://github.com/nickmccurdy/add-hooks/")
11642     (synopsis "Emacs function for setting multiple hooks")
11643     (description "This package provides a @code{add-hooks} function tidies up
11644 duplicate hook and function names further into a single declarative call.")
11645     (license license:gpl3+)))
11647 (define-public emacs-fancy-narrow
11648   (package
11649     (name "emacs-fancy-narrow")
11650     (version "0.9.5")
11651     (source
11652      (origin
11653        (method git-fetch)
11654        (uri (git-reference
11655              (url "https://github.com/Malabarba/fancy-narrow.git")
11656              (commit version)))
11657        (file-name (git-file-name name version))
11658        (sha256
11659         (base32 "0vcr1gnqawvc1yclqs23jvxm6bqix8kpflf1c7znb0wzxmz9kx7y"))))
11660     (build-system emacs-build-system)
11661     (home-page "https://github.com/Malabarba/fancy-narrow/releases")
11662     (synopsis "Imitate @code{narrow-to-region} with more eye candy")
11663     (description
11664      "Unlike @code{narrow-to-region}, which completely hides text outside
11665 the narrowed region, this package simply de-emphasizes the text, makes it
11666 read-only, and makes it unreachable.  This leads to a much more natural
11667 feeling where the region stays static (instead of being brutally moved to a
11668 blank slate) and is clearly highlighted with respect to the rest of the
11669 buffer.")
11670     (license license:gpl2+)))
11672 (define-public emacs-know-your-http-well
11673   (package
11674     (name "emacs-know-your-http-well")
11675     (version "0.5.0")
11676     (source
11677      (origin
11678        (method git-fetch)
11679        (uri (git-reference
11680              (url "https://github.com/for-GET/know-your-http-well.git")
11681              (commit (string-append "v" version))))
11682        (file-name (git-file-name name version))
11683        (sha256
11684         (base32 "1lppggnii2r9fvlhh33gbdrwb50za8lnalavlq9s86ngndn4n94k"))))
11685     (arguments
11686      `(#:phases
11687        (modify-phases %standard-phases
11688          (add-after 'unpack 'install-json-files
11689            (lambda* (#:key outputs #:allow-other-keys)
11690              (for-each (lambda (directory)
11691                          (copy-recursively directory
11692                                            (string-append
11693                                             (assoc-ref outputs "out")
11694                                             directory)))
11695                        '("js" "json"))))
11696          (add-after 'unpack 'chdir-elisp
11697            ;; Elisp directory is not in root of the source.
11698            (lambda _
11699              (chdir "emacs"))))))
11700     (build-system emacs-build-system)
11701     (home-page "https://github.com/for-GET/know-your-http-well")
11702     (synopsis "Meaning of HTTP headers codes")
11703     (description "Meaning of HTTP headers codes.")
11704     (license license:gpl3+)))
11706 (define-public emacs-navi-mode
11707   (let ((commit "c1d38e8237f4e14af020a0b7d4f118ea198ab674"))
11708     (package
11709       (name "emacs-navi-mode")
11710       (version (git-version "2.0" "1" commit))
11711       (source
11712        (origin
11713          (method git-fetch)
11714          (uri (git-reference
11715                (url "https://github.com/alphapapa/navi.git")
11716                (commit commit)))
11717          (file-name (git-file-name name version))
11718          (sha256
11719           (base32
11720            "0jj5spk14hgb7zb1cd2n8whcw4k1kd5zb6llwj96v178yaws7l8k"))))
11721       (build-system emacs-build-system)
11722       (propagated-inputs
11723        `(("emacs-outshine" ,emacs-outshine)
11724          ("emacs-outorg" ,emacs-outorg)))
11725       (home-page "https://github.com/alphapapa/navi")
11726       (synopsis "Emacs major-mode for easy buffer-navigation")
11727       (description
11728        "This package provides an Emacs major-mode for easy buffer-navigation")
11729       (license license:gpl3+))))
11731 (define-public emacs-download-region
11732   (let ((commit "eb9e557529a73b4cfc8281c70dd0d95db333fffa")
11733         (revision "1"))
11734     (package
11735       (name "emacs-download-region")
11736       (version (string-append "0.0.1" "-" revision "."
11737                               (string-take commit 7)))
11738       (source
11739        (origin
11740          (method git-fetch)
11741          (uri (git-reference
11742                (url "https://github.com/zk-phi/download-region.git")
11743                (commit commit)))
11744          (file-name (git-file-name name version))
11745          (sha256
11746           (base32
11747            "0v52djg39b6k2snizd9x0qc009ws5y0ywqsfwhqgcbs5ymzh7dsc"))))
11748       (build-system emacs-build-system)
11749       (home-page "https://github.com/zk-phi/download-region")
11750       (synopsis "In buffer download manager for Emacs")
11751       (description "@code{download-region} provides in buffer
11752 downloading manager for Emacs.")
11753       (license license:gpl3+))))
11755 (define-public emacs-helpful
11756   (package
11757     (name "emacs-helpful")
11758     (version "0.16")
11759     (source
11760      (origin
11761        (method git-fetch)
11762        (uri (git-reference
11763              (url "https://github.com/Wilfred/helpful.git")
11764              (commit version)))
11765        (file-name (git-file-name name version))
11766        (sha256
11767         (base32 "1pzlx3galyryd3hd84hnd7r5s6yl9sdrfhy1s6dgz40glw41wmpr"))))
11768     (build-system emacs-build-system)
11769     (propagated-inputs
11770      `(("emacs-elisp-refs" ,emacs-elisp-refs)
11771        ("emacs-dash" ,emacs-dash)
11772        ("emacs-s" ,emacs-s)
11773        ("emacs-f" ,emacs-f)
11774        ("emacs-shut-up" ,emacs-shut-up)))
11775     (home-page "https://github.com/Wilfred/helpful")
11776     (synopsis "More contextual information in Emacs help")
11777     (description "@code{helpful} is an alternative to the built-in Emacs help
11778 that provides much more contextual information.
11780 @itemize
11781 @item Show the source code for interactively defined functions (unlike the
11782 built-in Help).
11783 @item Fall back to the raw sexp if no source is available.
11784 @item Show where a function is being called.
11785 @item Docstrings will Highlight the summary (the first sentence), include
11786 cross-references, hide superfluous puncuation.
11787 @item Show you the properties that have been applied to the current
11788 symbol.  This provides visibility of features like edebug or byte-code
11789 optimisation.
11790 @item Provide a separate @code{helpful-command} function to view interactive
11791 functions.
11792 @item Display any keybindings that apply to interactive functions.
11793 @item Trace, disassemble functions from inside Helpful.  This is discoverable
11794 and doesn't require memorisation of commands.
11795 @end itemize\n")
11796     (license license:gpl3+)))
11798 (define-public emacs-logview
11799   (package
11800     (name "emacs-logview")
11801     (version "0.9")
11802     (source
11803      (origin
11804        (method git-fetch)
11805        (uri (git-reference
11806              (url "https://github.com/doublep/logview.git")
11807              (commit version)))
11808        (file-name (git-file-name name version))
11809        (sha256
11810         (base32 "1qhzs75pxnaksbhczmpdcy2zmrqavlzkzss7ik5nv2wf9vs0sn02"))))
11811     (propagated-inputs
11812      `(("emacs-datetime" ,emacs-datetime)))
11813     (build-system emacs-build-system)
11814     (home-page "https://github.com/doublep/logview/")
11815     (synopsis "Emacs mode for viewing log files")
11816     (description "@code{logview} provides an Emacs mode to view log files.")
11817     (license license:gpl3+)))
11819 (define-public emacs-suggest
11820   (package
11821     (name "emacs-suggest")
11822     (version "0.7")
11823     (home-page "https://github.com/Wilfred/suggest.el")
11824     (source
11825      (origin
11826        (method git-fetch)
11827        (uri (git-reference
11828              (url home-page)
11829              (commit version)))
11830        (file-name (git-file-name name version))
11831        (sha256
11832         (base32
11833          "01v8plska5d3g19sb1m4ph1i3ayprfzk8mi6mpabjy6zad397xjl"))))
11834     (build-system emacs-build-system)
11835     (propagated-inputs
11836      `(("emacs-loop" ,emacs-loop)
11837        ("emacs-dash" ,emacs-dash)
11838        ("emacs-s" ,emacs-s)
11839        ("emacs-f" ,emacs-f)
11840        ("emacs-spinner" ,emacs-spinner)
11841        ("emacs-shut-up" ,emacs-shut-up)))
11842     (synopsis "Suggest Elisp functions that give the output requested")
11843     (description "Suggest.el will find functions that give the output
11844 requested.  It's a great way of exploring list, string and arithmetic
11845 functions.")
11846     (license license:gpl3+)))
11848 (define-public emacs-benchmark-init
11849   (package
11850     (name "emacs-benchmark-init")
11851     (version "1.0")
11852     (source
11853      (origin
11854        (method git-fetch)
11855        (uri (git-reference
11856              (url "https://github.com/dholm/benchmark-init-el.git")
11857              (commit version)))
11858        (file-name (git-file-name name version))
11859        (sha256
11860         (base32 "1kyn1izm5sbqbp9whnhk9dn3yc7zy8bz5san5w3ivi3rpx15fh94"))))
11861     (build-system emacs-build-system)
11862     (home-page "https://github.com/dholm/benchmark-init-el")
11863     (synopsis "Benchmark Emacs @code{require} and @code{load} calls")
11864     (description "@code{benchmark-init} provides a way to keep track of where
11865 time is being spent during Emacs startup in order to optimize startup time.")
11866     (license license:gpl3+)))
11868 (define-public emacs-emms-player-simple-mpv
11869   ;; A new mpv backend is included in Emms from 5.0.
11870   (deprecated-package "emacs-emms-player-simple-mpv" emacs-emms))
11872 (define-public emacs-magit-gerrit
11873   (let ((version "0.3")
11874         (revision "1")
11875         (commit "ece6f369694aca17f3ac166ed2801b432acfe20d"))
11876     (package
11877       (name "emacs-magit-gerrit")
11878       (version (git-version version revision commit))
11879       (source (origin
11880                 (method git-fetch)
11881                 (uri (git-reference
11882                       (url "https://github.com/terranpro/magit-gerrit.git")
11883                       (commit commit)))
11884                 (file-name (git-file-name name version))
11885                 (sha256
11886                  (base32
11887                   "0mms0gxv9a3ns8lk5k2wjibm3088y1cmpr3axjdh6ppv7r5wdvii"))))
11888       (build-system emacs-build-system)
11889       (propagated-inputs
11890        `(("emacs-magit" ,emacs-magit)))
11891       (home-page "https://github.com/terranpro/magit-gerrit")
11892       (synopsis "Magit extension for Gerrit")
11893       (description "This Magit extension provides integration with Gerrit,
11894 which makes it possible to conduct Gerrit code reviews directly from within
11895 Emacs.")
11896       (license license:gpl3+))))
11898 (define-public emacs-magit-org-todos-el
11899   (let ((commit "df206287737b9671f2e36ae7b1474ebbe9940d2a"))
11900     (package
11901       (name "emacs-magit-org-todos-el")
11902       (version (git-version "0.1.1" "1" commit))
11903       (source
11904        (origin
11905          (method git-fetch)
11906          (uri (git-reference
11907                (url "https://github.com/danielma/magit-org-todos.el.git")
11908                (commit commit)))
11909          (file-name (git-file-name name version))
11910          (sha256
11911           (base32
11912            "0kdp7k7jnnrkhsg0xh1c3h7iz0vgi120gf5xwl1hxy61avivnxrn"))))
11913       (propagated-inputs
11914        `(("magit" ,emacs-magit)))
11915       (build-system emacs-build-system)
11916       (home-page "https://github.com/danielma/magit-org-todos.el")
11917       (synopsis "Get todo.org into Emacs Magit status")
11918       (description "This package allows you to get @file{todo.org} into your
11919 magit status.
11921 If you have a @file{todo.org} file with @code{TODO} items in the root of your
11922 repository, @code{magit-org-todos} will create a section in your Magit status
11923 buffer with each of your todos.")
11924       (license license:gpl3+))))
11926 (define-public emacs-f3
11927   (package
11928     (name "emacs-f3")
11929     (version "0.1")
11930     (source
11931      (origin
11932        (method git-fetch)
11933        (uri (git-reference
11934              (url "https://github.com/cosmicexplorer/f3.git")
11935              (commit version)))
11936        (file-name (git-file-name name version))
11937        (sha256
11938         (base32 "1qg48zbjdjqimw4516ymrsilz41zkib9321q0caf9474s9xyp2bi"))))
11939     (build-system emacs-build-system)
11940     (propagated-inputs
11941      `(("emacs-helm" ,emacs-helm)))
11942     (home-page "https://github.com/cosmicexplorer/f3")
11943     (synopsis "Fantastic File Finder for Emacs")
11944     (description
11945      "The Fantastic File Finder for Emacs.  Find files fast, using helm.")
11946     (license license:gpl3+)))
11948 (define-public emacs-lice-el
11949   (let ((commit "4339929927c62bd636f89bb39ea999d18d269250"))
11950     (package
11951       (name "emacs-lice-el")
11952       (version (git-version "0.2" "1" commit))
11953       (source (origin
11954                 (method git-fetch)
11955                 (uri (git-reference
11956                       (url "https://github.com/buzztaiki/lice-el.git")
11957                       (commit commit)))
11958                 (file-name (git-file-name name version))
11959                 (sha256
11960                  (base32
11961                   "0879z761b7gajkhq176ps745xpdrivch349crransv8fnsc759yb"))))
11962       (build-system emacs-build-system)
11963       (home-page "https://github.com/buzztaiki/lice-el")
11964       (synopsis "License and header template for Emacs")
11965       (description "@code{lice.el} provides following features:
11967 @itemize
11968 @item License template management.
11969 @item File header insertion.
11970 @end itemize\n")
11971       (license license:gpl3+))))
11973 (define-public emacs-academic-phrases
11974   (let ((commit "0823ed8c24b26c32f909b896a469833ec4d7b656"))
11975     (package
11976       (name "emacs-academic-phrases")
11977       (version (git-version "0.1" "1" commit))
11978       (source
11979        (origin
11980          (method git-fetch)
11981          (uri (git-reference
11982                (url "https://github.com/nashamri/academic-phrases.git")
11983                (commit commit)))
11984          (file-name (git-file-name name version))
11985          (sha256
11986           (base32
11987            "0qfzsq8jh05w4zkr0cvq3i1hdn97bq344vcqjg46sib26x3wpz6r"))))
11988       (build-system emacs-build-system)
11989       (propagated-inputs
11990        `(("emacs-dash" ,emacs-dash)
11991          ("emacs-s" ,emacs-s)
11992          ("emacs-ht" ,emacs-ht)))
11993       (home-page "https://github.com/nashamri/academic-phrases")
11994       (synopsis "Bypass that mental block when writing your papers")
11995       (description
11996        "When writing your academic paper, you might get stuck trying to find
11997 the right phrase that captures your intention.  This package tries to
11998 alleviate that problem by presenting you with a list of phrases organized by
11999 the topic or by the paper section that you are writing.  This package has
12000 around 600 phrases so far.
12002 Using this package is easy, just call @code{academic-phrases} to get a list of
12003 phrases organized by topic, or call @code{academic-phrases-by-section} to
12004 browse the phrases by the paper section and fill-in the blanks if required.")
12005       (license license:gpl3+))))
12007 (define-public emacs-auto-yasnippet
12008   (let ((commit "d1ccfea87312c6dd8cf8501ab5b71b1d3d44d95b"))
12009     (package
12010       (name "emacs-auto-yasnippet")
12011       (version (git-version "0.3.0" "1" commit))
12012       (source (origin
12013                 (method git-fetch)
12014                 (uri (git-reference
12015                       (url "https://github.com/abo-abo/auto-yasnippet.git")
12016                       (commit commit)))
12017                 (file-name (git-file-name name version))
12018                 (sha256
12019                  (base32
12020                   "1i8k2qiyzd5rq0zplk4xb5nfa5mp0ibxbzwqj6c7877waq7244xk"))))
12021       (build-system emacs-build-system)
12022       (arguments
12023        '(#:phases
12024          (modify-phases %standard-phases
12025            (add-before 'install 'check
12026              (lambda _
12027                (invoke "emacs" "--batch"
12028                        "-l" "auto-yasnippet.el"
12029                        "-l" "auto-yasnippet-test.el"
12030                        "-f" "ert-run-tests-batch-and-exit"))))))
12031       (propagated-inputs
12032        `(("emacs-yasnippet" ,emacs-yasnippet)))
12033       (home-page "https://github.com/abo-abo/auto-yasnippet/")
12034       (synopsis "Quickly create disposable yasnippets")
12035       (description "This package provides a hybrid of keyboard macros and
12036 yasnippet.  You create the snippet on the go, usually to be used just in the
12037 one place.  It's fast, because you're not leaving the current buffer, and all
12038 you do is enter the code you'd enter anyway, just placing ~ where you'd like
12039 yasnippet fields and mirrors to be.")
12040       (license license:gpl3+))))
12042 (define-public emacs-highlight-numbers
12043   (package
12044     (name "emacs-highlight-numbers")
12045     (version "0.2.3")
12046     (source
12047      (origin
12048        (method git-fetch)
12049        (uri (git-reference
12050              (url "https://github.com/Fanael/highlight-numbers.git")
12051              (commit version)))
12052        (file-name (git-file-name name version))
12053        (sha256
12054         (base32 "1r07mpyr7rhd7bkg778hx6vbhb4n9ixgzkpszhgks7ri6ia38pj8"))))
12055     (build-system emacs-build-system)
12056     (propagated-inputs
12057      `(("emacs-parent-mode" ,emacs-parent-mode)))
12058     (home-page "https://github.com/Fanael/highlight-numbers")
12059     (synopsis "Highlight numbers in source code")
12060     (description "@code{highlight-numbers-mode} provides a minor mode for
12061 syntax highlighting of numeric literals in source code.
12063 It s customizable: it's easy to add or redefine what exactly consitutes a
12064 \"number\" in given major mode.  See @code{highlight-numbers-modelist}.")
12065     (license license:gpl3+)))
12067 (define-public emacs-darkroom
12068   (package
12069     (name "emacs-darkroom")
12070     (version "0.1")
12071     (source (origin
12072               (method url-fetch)
12073               (uri (string-append "https://elpa.gnu.org/packages/darkroom-"
12074                                   version ".el"))
12075               (sha256
12076                (base32
12077                 "0fif8fm1h7x7g16949shfnaik5f5488clsvkf8bi5izpqp3vi6ak"))))
12078     (build-system emacs-build-system)
12079     (home-page "https://elpa.gnu.org/packages/darkroom.html")
12080     (synopsis "Remove visual distractions and focus on writing")
12081     (description "@code{darkroom-mode} makes visual distractions disappear.
12082 The mode-line is temporarily elided, text is enlarged and margins are adjusted
12083 so that it's centered on the window.
12085 @code{darkroom-tentative-mode} is similar, but it doesn't immediately turn-on
12086 @code{darkroom-mode}, unless the current buffer lives in the sole window of
12087 the Emacs frame (i.e. all other windows are deleted).  Whenever the frame is
12088 split to display more windows and more buffers, the buffer exits
12089 @code{darkroom-mode}.  Whenever they are deleted, the buffer re-enters
12090 @code{darkroom-mode}.")
12091     (license license:gpl3+)))
12093 (define-public emacs-rsw-elisp
12094   (package
12095     (name "emacs-rsw-elisp")
12096     (version "1.0.5")
12097     (source (origin
12098               (method url-fetch)
12099               (uri (string-append "https://github.com/rswgnu/rsw-elisp"
12100                                   "/archive/" version ".tar.gz"))
12101               (file-name (string-append name "-" version ".tar.gz"))
12102               (sha256
12103                (base32
12104                 "1jnn7xfwl3wxc87v44ccsf1wwp80par3xgcvfb1icd6zchjmlcps"))))
12105     (build-system emacs-build-system)
12106     (home-page "https://github.com/rswgnu/rsw-elisp")
12107     (synopsis "Improved expressions that interactively evaluate Emacs Lisp")
12108     (description "This package improves and replaces the GNU Emacs commands
12109 that interactively evaluate Emacs Lisp expressions.  The new commands replace
12110 standard key bindings and are all prefixed with @code{rsw-elisp-}.  They work
12111 the same way as the old commands when called non-interactively; only the
12112 interactive behavior should be different.")
12113     (license license:gpl3+)))
12115 (define-public emacs-default-text-scale
12116   (let ((commit "968e985e219235f3e744d6d967e592acbaf6e0a8")
12117         (revision "1"))
12118     (package
12119       (name "emacs-default-text-scale")
12120       (version (string-append "0.1" "-" revision "."
12121                               (string-take commit 7)))
12122       (source (origin
12123                 (method git-fetch)
12124                 (uri (git-reference
12125                       (url "https://github.com/purcell/default-text-scale")
12126                       (commit commit)))
12127                 (file-name (git-file-name name version))
12128                 (sha256
12129                  (base32
12130                   "0zds01c3q5yny6ab1fxfkzzgn1kgl3q23lxxap905f4qd70v922h"))))
12131       (build-system emacs-build-system)
12132       (home-page "https://github.com/purcell/default-text-scale")
12133       (synopsis "Adjust the font size in all Emacs frames")
12134       (description "This package provides commands for increasing or
12135 decreasing the default font size in all GUI Emacs frames.")
12136       (license license:gpl3+))))
12138 (define-public emacs-mixed-pitch
12139   (package
12140     (name "emacs-mixed-pitch")
12141     (version "1.0.1")
12142     (source
12143      (origin
12144        (method git-fetch)
12145        (uri (git-reference
12146              (url "https://gitlab.com/jabranham/mixed-pitch.git")
12147              (commit version)))
12148        (file-name (git-file-name name version))
12149        (sha256
12150         (base32 "1458sy5b6bis1i0k23jdqk6hfqg0ghk637r3ajql2g19ym48rf58"))))
12151     (build-system emacs-build-system)
12152     (home-page "https://gitlab.com/jabranham/mixed-pitch")
12153     (synopsis "Mix variable- and fixed-pitch fonts in the same Emacs buffer")
12154     (description
12155      "@code{mixed-pitch-mode} is a minor mode that enables mixing
12156 variable-pitch and fixed-pitch fonts in the same buffer.  The list
12157 @code{mixed-pitch-fixed-pitch-faces} defines the faces that are kept
12158 fixed-pitch,everything else becomes variable-pitch.")
12159     (license license:gpl3+)))
12161 (define-public emacs-visual-regexp
12162   (package
12163     (name "emacs-visual-regexp")
12164     (version "1.1.1")
12165     (source
12166      (origin
12167        (method git-fetch)
12168        (uri (git-reference
12169              (url "https://github.com/benma/visual-regexp.el.git")
12170              (commit (string-append "v" version))))
12171        (file-name (git-file-name name version))
12172        (sha256
12173         (base32 "12zpmzwyp85dzsjpxd3279kpfi9yz3jwc1k9fnb3xv3pjiil5svg"))))
12174     (build-system emacs-build-system)
12175     (home-page "https://github.com/benma/visual-regexp.el/")
12176     (synopsis "Regexp command with interactive visual feedback")
12177     (description "This package provides an Emacs regexp command with
12178 interactive visual feedback.")
12179     (license license:gpl3+)))
12181 (define-public emacs-faceup
12182   (let ((commit "6c92dad56a133e14e7b27831e1bcf9b3a71ff154")
12183         (revision "1"))
12184     (package
12185       (name "emacs-faceup")
12186       (version (string-append "0.0.1" "-" revision "."
12187                               (string-take commit 7)))
12188       (source
12189        (origin
12190          (method git-fetch)
12191          (uri (git-reference
12192                (url "https://github.com/Lindydancer/faceup.git")
12193                (commit commit)))
12194          (file-name (git-file-name name version))
12195          (sha256
12196           (base32
12197            "1yzmy7flrhrh0i10bdszx8idx6r8h6czm4vm4q0z6fp5fw94zwrx"))))
12198       (build-system emacs-build-system)
12199       (home-page "https://github.com/Lindydancer/faceup")
12200       (synopsis "Markup language for faces and font-lock regression testing")
12201       (description "Emacs is capable of highlighting buffers based on
12202 language-specific @code{font-lock} rules.  This package makes it possible to
12203 perform regression test for packages that provide font-lock rules.")
12204       (license license:gpl3+))))
12206 (define-public emacs-racket-mode
12207   (let ((commit "b977873e6128f8399432dcd60cc39f6a6f803d9c")
12208         (revision "2"))
12209     (package
12210       (name "emacs-racket-mode")
12211       (version (string-append "0.0.2" "-" revision "."
12212                               (string-take commit 7)))
12213       (source
12214        (origin
12215          (method git-fetch)
12216          (uri (git-reference
12217                (url "https://github.com/greghendershott/racket-mode")
12218                (commit commit)))
12219          (file-name (git-file-name name version))
12220          (sha256
12221           (base32
12222            "0vp4bbbplqvmnhjpl6ajrlydmrhqzil56cfbs18m5c5fddx0zlh7"))))
12223       (build-system emacs-build-system)
12224       (arguments
12225        `(#:include '("\\.el$" "\\.rkt$")))
12226       (propagated-inputs
12227        `(("emacs-faceup" ,emacs-faceup)
12228          ("emacs-s" ,emacs-s)))
12229       (home-page "https://github.com/greghendershott/racket-mode")
12230       (synopsis "Major mode for Racket language")
12231       (description "@code{racket-mode} provides:
12233 @itemize
12234 @item Focus on Racket (not various Schemes).
12235 @item Follow DrRacket concepts where applicable.
12236 @item Thorough font-lock and indent.
12237 @end itemize\n")
12238       (license license:gpl3+))))
12240 (define-public emacs-grep-context
12241   (let ((commit "a17c57e66687a54e195e08afe776bdd60cb6c0a7"))
12242     (package
12243       (name "emacs-grep-context")
12244       (version (git-version "0.1" "1" commit))
12245       (source
12246        (origin
12247          (method git-fetch)
12248          (uri (git-reference
12249                (url "https://github.com/mkcms/grep-context.git")
12250                (commit commit)))
12251          (file-name (git-file-name name version))
12252          (sha256
12253           (base32
12254            "1nqfa6kjzjshww4hnwg1c0vcr90bdjihy3kmixq3c3jkvxg99b62"))))
12255       (build-system emacs-build-system)
12256       (propagated-inputs
12257        `(("emacs-dash" ,emacs-dash)))
12258       (home-page "https://github.com/nashamri/academic-phrases")
12259       (synopsis "Increase context in compilation and grep buffers")
12260       (description
12261        "This package provides an Emacs package for more context in
12262 compilation/grep buffers.  Works with @code{wgrep}, @code{ack}, @code{ag},
12263 @code{ivy}.")
12264       (license license:gpl3+))))
12266 (define-public emacs-helm-firefox
12267   (let ((commit "0ad34b7b5abc485a86cae6920c14de861cbeb085")
12268         (revision "1"))
12269     (package
12270       (name "emacs-helm-firefox")
12271       (version (string-append "0.0.1" "-" revision "."
12272                               (string-take commit 7)))
12273       (source
12274        (origin
12275          (method git-fetch)
12276          (uri (git-reference
12277                (url "https://github.com/emacs-helm/helm-firefox.git")
12278                (commit commit)))
12279          (file-name (git-file-name name version))
12280          (sha256
12281           (base32
12282            "08mjsi2f9s29fkk35cj1rrparjnkm836qmbfdwdz7y51f9varjbs"))))
12283       (propagated-inputs
12284        `(("emacs-helm" ,emacs-helm)))
12285       (build-system emacs-build-system)
12286       (home-page "https://github.com/emacs-helm/helm-firefox")
12287       (synopsis "Display firefox bookmarks with Emacs Helm interface")
12288       (description "Display firefox bookmarks with Emacs Helm interface")
12289       (license license:gpl3+))))
12291 (define-public emacs-interactive-align
12292   (package
12293     (name "emacs-interactive-align")
12294     (version "0.1.0")
12295     (source
12296      (origin
12297        (method url-fetch)
12298        (uri (string-append "https://github.com/mkcms/interactive-align/"
12299                            "archive/" "v" version ".tar.gz"))
12300        (file-name (string-append name "-" version ".tar.gz"))
12301        (sha256
12302         (base32
12303          "0sibpgb4lp6yy3pziak8f3hz4b28yj0dqy2nzh51z3d0b63h528m"))))
12304     (build-system emacs-build-system)
12305     (home-page "https://github.com/mkcms/interactive-align/")
12306     (synopsis "Interactive align-regexp command in Emacs")
12307     (description "Interactive align-regexp command in Emacs")
12308     (license license:gpl3+)))
12310 (define-public emacs-shift-number
12311   (package
12312     (name "emacs-shift-number")
12313     (version "0.1")
12314     (source
12315      (origin
12316        (method url-fetch)
12317        (uri (string-append "https://github.com/alezost/shift-number.el"
12318                            "/archive/" "v" version ".tar.gz"))
12319        (file-name (string-append name "-" version ".tar.gz"))
12320        (sha256
12321         (base32
12322          "1g79m0hqn9jgpm565vvh8pdfzndc4vw7xisnh5qysj55qfg8cb1x"))))
12323     (build-system emacs-build-system)
12324     (home-page "https://github.com/alezost/shift-number.el")
12325     (synopsis "Increase or decrease the number at point")
12326     (description "@code{emacs-shift-number} provides commands
12327 @code{shift-number-up} to increase and @code{shift-number-down} to
12328 decrease the number at point.")
12329     (license license:gpl3+)))
12331 (define-public emacs-highlight-defined
12332   (package
12333     (name "emacs-highlight-defined")
12334     (version "0.1.5")
12335     (source
12336      (origin
12337        (method git-fetch)
12338        (uri (git-reference
12339              (url "https://github.com/Fanael/highlight-defined.git")
12340              (commit version)))
12341        (file-name (git-file-name name version))
12342        (sha256
12343         (base32 "08czwa165rnd5z0dwwdddn7zi5w63sdk31l47bj0598kbly01n7r"))))
12344     (build-system emacs-build-system)
12345     (home-page "https://github.com/Fanael/highlight-defined")
12346     (synopsis "Syntax highlighting of known Elisp symbols")
12347     (description "Minor mode providing syntax highlighting of known Emacs Lisp
12348 symbols.  Currently the code distinguishes Lisp functions, built-in functions,
12349 macros, faces and variables.  To enable call @code{highlight-defined-mode}. ")
12350     (license license:gpl3+)))
12352 (define-public emacs-parinfer-mode
12353   (package
12354     (name "emacs-parinfer-mode")
12355     (version "0.4.10")
12356     (source
12357      (origin
12358        (method git-fetch)
12359        (uri (git-reference
12360              (url "https://github.com/DogLooksGood/parinfer-mode.git")
12361              (commit (string-append "v" version))))
12362        (file-name (git-file-name name version))
12363        (sha256
12364         (base32 "0v97ncb0w1slb0x8861l3yr1kqz6fgw1fwl1z9lz6hh8p2ih34sk"))))
12365     (propagated-inputs
12366      `(("emacs-dash" ,emacs-dash)
12367        ("emacs-rainbow-delimiters" ,emacs-rainbow-delimiters)
12368        ("emacs-company" ,emacs-company)))
12369     (build-system emacs-build-system)
12370     (home-page "https://github.com/DogLooksGood/parinfer-mode/")
12371     (synopsis "Lisp structure editing mode")
12372     (description "@code{parinfer-mode} is a proof-of-concept editor
12373 mode for Lisp programming languages.  It will infer some changes to
12374 keep Parens and Indentation inline with one another.")
12375     (license license:gpl3+)))
12377 (define-public emacs-helm-eww
12378   (package
12379     (name "emacs-helm-eww")
12380     (version "1.2")
12381     (source (origin
12382               (method git-fetch)
12383               (uri (git-reference
12384                     (url "https://github.com/emacs-helm/helm-eww.git")
12385                     (commit version)))
12386               (file-name (git-file-name name version))
12387               (sha256
12388                (base32
12389                 "0hpq1h0p69c9k6hkd2mjpprx213sc5475q7pr2zpmwrjdzgcv70z"))))
12390     (propagated-inputs
12391      `(("emacs-helm" ,emacs-helm)))
12392     (build-system emacs-build-system)
12393     (home-page "https://github.com/emacs-helm/helm-eww/")
12394     (synopsis "Helm interface to EWW")
12395     (description "This package provides a Helm interface for EWW buffers,
12396 bookmarks and history.")
12397     (license license:gpl3+)))
12399 (define-public emacs-stumpwm-mode
12400   (let ((commit "5328f85fbf6a8b08c758c17b9435368bf7a68f39"))
12401     (package
12402       (name "emacs-stumpwm-mode")
12403       (version (git-version "0.0.1" "1" commit))
12404       (source (origin
12405                 (method git-fetch)
12406                 (uri (git-reference
12407                       (url "https://github.com/stumpwm/stumpwm-contrib.git")
12408                       (commit commit)))
12409                 (file-name (git-file-name name version))
12410                 (sha256
12411                  (base32
12412                   "00kf4k8bqadi5s667wb96sn549v2kvw01zwszjrg7nhd805m1ng6"))))
12413       (build-system emacs-build-system)
12414       (arguments
12415        `(#:phases
12416          (modify-phases %standard-phases
12417            (add-after 'unpack 'chdir-elisp
12418              ;; Elisp directory is not in root of the source.
12419              (lambda _
12420                (chdir "util/swm-emacs"))))))
12421       (home-page "https://github.com/stumpwm/stumpwm-contrib")
12422       (synopsis "Emacs minor-mode for Stumpwm")
12423       (description "Emacs minor-mode for Stumpwm")
12424       (license license:gpl3+))))
12426 (define-public emacs-irfc
12427   (package
12428     (name "emacs-irfc")
12429     (version "20130824.507-1")
12430     (source
12431      (origin
12432        (method url-fetch)
12433        (uri "https://www.emacswiki.org/emacs/download/irfc.el")
12434        (file-name (string-append "irfc-" version ".el"))
12435        (sha256
12436         (base32
12437          "0rbfrza56kvspvgrwg0b5bj30d0qncqdsmfxn3y5caq4ifcj77hv"))))
12438     (build-system emacs-build-system)
12439     (home-page "https://www.emacswiki.org/emacs/download/irfc.el")
12440     (synopsis "Interface for IETF RFC document")
12441     (description
12442      "This package provides an Emacs interface for IETF RFC document.")
12443     (license license:gpl3+)))
12445 (define-public emacs-ido-vertical-mode
12446   (package
12447     (name "emacs-ido-vertical-mode")
12448     (version "0.1.6")
12449     (source
12450      (origin
12451        (method git-fetch)
12452        (uri (git-reference
12453              (url "https://github.com/creichert/ido-vertical-mode.el.git")
12454              (commit (string-append "v" version))))
12455        (file-name (git-file-name name version))
12456        (sha256
12457         (base32 "1lv82q639xjnmvby56nwqn23ijh6f163bk675s33dkingm8csj8k"))))
12458     (build-system emacs-build-system)
12459     (home-page "https://github.com/creichert/ido-vertical-mode.el")
12460     (synopsis "Makes ido-mode display vertically")
12461     (description "Makes ido-mode display prospects vertically.")
12462     (license license:gpl3+)))
12464 (define-public emacs-wordgen
12465   (package
12466     (name "emacs-wordgen")
12467     (version "0.1.4")
12468     (source
12469      (origin
12470        (method git-fetch)
12471        (uri (git-reference
12472              (url "https://github.com/Fanael/wordgen.el.git")
12473              (commit version)))
12474        (file-name (git-file-name name version))
12475        (sha256
12476         (base32 "06vbc9ycz1nbjwjkg99y3lj6jwb6lnwnmkqf09yr00jjrrfhfash"))))
12477     (build-system emacs-build-system)
12478     (home-page "https://github.com/Fanael/wordgen.el")
12479     (synopsis "Random word generator")
12480     (description "This package provides functions to generate random words
12481 using user-provided rules.")
12482     (license license:gpl3+)))
12484 (define-public emacs-on-screen
12485   (package
12486     (name "emacs-on-screen")
12487     (version "1.3.2")
12488     (source
12489      (origin
12490        (method url-fetch)
12491        (uri (string-append
12492              "http://elpa.gnu.org/packages/on-screen-" version ".el"))
12493        (file-name (string-append name "-" version ".el"))
12494        (sha256
12495         (base32
12496          "15d18mjgv1pnwl6kf3pr5w64q1322p1l1qlfvnckglwmzy5sl2qv"))))
12497     (build-system emacs-build-system)
12498     (home-page
12499      "https://github.com/michael-heerdegen/on-screen.el")
12500     (synopsis "Guide your eyes while scrolling")
12501     (description
12502      "Scrolling can be distracting because your eyes may lose
12503 orientation.  This library implements a minor mode that highlights
12504 the previously visible buffer part after each scroll.")
12505     (license license:gpl3+)))
12507 (define-public emacs-highlight-escape-sequences
12508   (let ((commit "08d846a7aa748209d65fecead2b6a766c3e5cb41")
12509         (revision "1"))
12510     (package
12511       (name "emacs-highlight-escape-sequences")
12512       (version (string-append "0.0.1" "-" revision "."
12513                               (string-take commit 7)))
12514       (source
12515        (origin
12516          (method git-fetch)
12517          (uri (git-reference
12518                (url "https://github.com/dgutov/highlight-escape-sequences.git")
12519                (commit commit)))
12520          (file-name (git-file-name name version))
12521          (sha256
12522           (base32
12523            "05mc3w1f8ykf80914a1yddw6j8cmh0h57llm07xh89s53821v2is"))))
12524       (build-system emacs-build-system)
12525       (home-page "https://github.com/dgutov/highlight-escape-sequences")
12526       (synopsis "Highlight escape sequences in Emacs")
12527       (description "@code{highlight-escape-sequences} provides an
12528 Emacs minor mode to escape sequences in code.")
12529       (license license:gpl3+))))
12531 (define-public emacs-dashboard
12532   (package
12533     (name "emacs-dashboard")
12534     (version "1.5.0")
12535     (source
12536      (origin
12537        (method git-fetch)
12538        (uri (git-reference
12539              (url "https://github.com/rakanalh/emacs-dashboard.git")
12540              (commit version)))
12541        (file-name (git-file-name name version))
12542        (sha256
12543         (base32 "0ihpcagwgc9qy70lf2y3dvx2bm5h9lnqh4sx6643cr8pp06ysbvq"))))
12544     (build-system emacs-build-system)
12545     (propagated-inputs
12546      `(("emacs-page-break-lines" ,emacs-page-break-lines)))
12547     (arguments
12548      '(#:include '("\\.el$" "\\.txt$" "\\.png$")
12549        #:phases
12550        (modify-phases %standard-phases
12551          (add-after 'unpack 'patch-dashboard-widgets
12552            ;; This phase fixes compilation error.
12553            (lambda _
12554              (chmod "dashboard-widgets.el" #o666)
12555              (emacs-substitute-variables "dashboard-widgets.el"
12556                ("dashboard-init-info"
12557                 '(format "Loaded in %s" (emacs-init-time))))
12558              #t)))))
12559     (home-page "https://github.com/rakanalh/emacs-dashboard")
12560     (synopsis "Startup screen extracted from Spacemacs")
12561     (description "This package provides an extensible Emacs dashboard, with
12562 sections for bookmarks, projectil projects, org-agenda and more. ")
12563     (license license:gpl3+)))
12565 (define-public emacs-slime-company
12566   (package
12567     (name "emacs-slime-company")
12568     (version "1.1")
12569     (source
12570      (origin
12571        (method git-fetch)
12572        (uri (git-reference
12573              (url "https://github.com/anwyn/slime-company.git")
12574              (commit (string-append "v" version))))
12575        (file-name (git-file-name name version))
12576        (sha256
12577         (base32 "1hl1hqkc1pxga9k2k8k15d7dip7sfsmwf4wm4sh346m6nj606q8g"))))
12578     (build-system emacs-build-system)
12579     (propagated-inputs
12580      `(("emacs-slime" ,emacs-slime)
12581        ("emacs-company" ,emacs-company)))
12582     (home-page "https://company-mode.github.io")
12583     (synopsis "SLIME completion backend for @code{company-mode}")
12584     (description
12585      "This is a backend implementation for the completion package
12586 @code{company-mode} which supports the normal and the fuzzy completion
12587 modes of SLIME.")
12588     (license license:gpl3+)))
12590 (define-public emacs-sml-mode
12591   (package
12592     (name "emacs-sml-mode")
12593     (version "6.9")
12594     (source
12595      (origin
12596        (method url-fetch)
12597        (uri (string-append "http://elpa.gnu.org/packages/sml-mode-"
12598                            version ".el"))
12599        (sha256
12600         (base32 "1bdg9ywpvj85hxqah9w1raxlcrhkyx67nw22jwd1bd5j0fhmgqij"))))
12601     (build-system emacs-build-system)
12602     (home-page "http://elpa.gnu.org/packages/sml-mode.html")
12603     (synopsis "Major mode for editing (Standard) ML")
12604     (description "SML-MODE is a major Emacs mode for editing Standard ML.
12605 It provides syntax highlighting and automatic indentation and
12606 comes with sml-proc which allows interaction with an inferior SML
12607 interactive loop.")
12608     (license license:gpl3+)))
12610 (define-public emacs-eros
12611   (let ((commit "a42e45c9b2397156c684330b0fc90ee0eba773f5")
12612         (revision "1"))
12613     (package
12614       (name "emacs-eros")
12615       (version (string-append "0.0.1" "-" revision "."
12616                               (string-take commit 7)))
12617       (source
12618        (origin
12619          (method git-fetch)
12620          (uri (git-reference
12621                (url "https://github.com/xiongtx/eros.git")
12622                (commit commit)))
12623          (file-name (git-file-name name version))
12624          (sha256
12625           (base32
12626            "0whlsq90v13fz69k3wjrwcwb9gkpfxqjd75mg3nrp85j9nwhb5i4"))))
12627       (build-system emacs-build-system)
12628       (home-page "https://github.com/xiongtx/eros")
12629       (synopsis "Evaluation result overlays")
12630       (description "@code{eros} provides evaluation result overlays.")
12631       (license license:gpl3+))))
12633 (define-public emacs-stickyfunc-enhance
12634   (let ((commit "13bdba51fcd83ccbc3267959d23afc94d458dcb0")
12635         (revision "1"))
12636     (package
12637       (name "emacs-stickyfunc-enhance")
12638       (version "0.1")
12639       (source
12640        (origin
12641          (method git-fetch)
12642          (uri (git-reference
12643                (url "https://github.com/tuhdo/semantic-stickyfunc-enhance.git")
12644                (commit commit)))
12645          (file-name (git-file-name name version))
12646          (sha256
12647           (base32
12648            "16dxjsr5nj20blww4xpd4jzgjprzzh1nwvb810ggdmp9paf4iy0g"))))
12649       (build-system emacs-build-system)
12650       (home-page "https://github.com/tuhdo/semantic-stickyfunc-enhance")
12651       (synopsis "Enhancement to stock @code{semantic-stickyfunc-mode}")
12652       (description
12653        "@code{semantic-stickyfunc-mode} shows the function point is currently
12654 in at the first line of the current buffer.  This is useful when you have a
12655 very long function that spreads more than a screen, and you don't have to
12656 scroll up to read the function name and then scroll down to original position.")
12657       (license license:gpl3+))))
12659 (define-public emacs-git-auto-commit-mode
12660   (package
12661     (name "emacs-git-auto-commit-mode")
12662     (version "4.4.0")
12663     (source
12664      (origin
12665        (method git-fetch)
12666        (uri (git-reference
12667              (url "https://github.com/ryuslash/git-auto-commit-mode.git")
12668              (commit version)))
12669        (file-name (git-file-name name version))
12670        (sha256
12671         (base32 "0psmr7749nzxln4b500sl3vrf24x3qijp12ir0i5z4x25k72hrlh"))))
12672     (build-system emacs-build-system)
12673     (home-page "https://github.com/ryuslash/git-auto-commit-mode")
12674     (synopsis "Emacs Minor mode to automatically commit and push")
12675     (description "@code{git-auto-commit-mode} is an Emacs minor mode that
12676 tries to commit changes to a file after every save.
12678 When @code{gac-automatically-push-p} is non-nil, it also tries to push to
12679 the current upstream.")
12680     (license license:gpl3+)))
12682 (define-public emacs-company-restclient
12683   (package
12684     (name "emacs-company-restclient")
12685     (version "0.3.0")
12686     (source
12687      (origin
12688        (method git-fetch)
12689        (uri (git-reference
12690              (url "https://github.com/iquiw/company-restclient.git")
12691              (commit (string-append "v" version))))
12692        (file-name (git-file-name name version))
12693        (sha256
12694         (base32 "0yp0hlrgcr6yy1xkjvfckys2k24x9xg7y6336ma61bdwn5lpv0x0"))))
12695     (build-system emacs-build-system)
12696     (propagated-inputs
12697      `(("emacs-company" ,emacs-company)
12698        ("emacs-know-your-http-well" ,emacs-know-your-http-well)
12699        ("emacs-restclient" ,emacs-restclient)))
12700     (home-page "https://github.com/iquiw/company-restclient")
12701     (synopsis "Company-mode completion back-end for restclient-mode")
12702     (description "@code{company-mode} back-end for
12703 @code{restclient-mode}.
12705 It provides auto-completion for HTTP methods and headers in
12706 @code{restclient-mode}.  Completion source is given by
12707 @code{know-your-http-well}.")
12708     (license license:gpl3+)))
12710 (define-public emacs-noflet
12711   (let ((version "20170629")
12712         (revision "1")
12713         (commit "7ae84dc3257637af7334101456dafe1759c6b68a"))
12714     (package
12715       (name "emacs-noflet")
12716       (version (git-version version revision commit))
12717       (source
12718        (origin
12719          (method git-fetch)
12720          (uri (git-reference
12721                (url "https://github.com/nicferrier/emacs-noflet")
12722                (commit commit)))
12723          (file-name (git-file-name name version))
12724          (sha256
12725           (base32
12726            "0g70gnmfi8n24jzfci9nrj0n9bn1qig7b8f9f325rin8h7x32ypf"))))
12727       (build-system emacs-build-system)
12728       (arguments
12729        `(#:phases
12730          (modify-phases %standard-phases
12731            (add-after 'unpack 'require-dash
12732              ;; noflet.el uses -map from dash, but (require 'dash) is
12733              ;; missing. So, add it.
12734              (lambda _
12735                (substitute* "noflet.el"
12736                  ((";;; Code:") ";;; Code:\n(require 'dash)"))
12737                #t)))))
12738       (propagated-inputs
12739        `(("emacs-dash" ,emacs-dash)))
12740       (home-page "https://github.com/nicferrier/emacs-noflet")
12741       (synopsis "Locally override functions")
12742       (description "@code{emacs-noflet} lets you locally override functions,
12743 in the manner of @command{flet}, but with access to the original function
12744 through the symbol: @command{this-fn}.")
12745       (license license:gpl3+))))
12747 (define-public emacs-dumb-jump
12748   (package
12749     (name "emacs-dumb-jump")
12750     (version "0.5.2")
12751     (source
12752      (origin
12753        (method git-fetch)
12754        (uri (git-reference
12755              (url "https://github.com/jacktasia/dumb-jump.git")
12756              (commit (string-append "v" version))))
12757        (file-name (git-file-name name version))
12758        (sha256
12759         (base32 "00ph85vp8sa3k99qrdxfz4l8zx121q9xf47vvspzg26bk9l4nwin"))))
12760     (build-system emacs-build-system)
12761     (arguments
12762      `(#:tests? #f ; FIXME: Tests freeze when run.
12763        #:test-command '("ert-runner")
12764        #:phases
12765        (modify-phases %standard-phases
12766          (add-after 'unpack 'set-shell
12767            (lambda _
12768              ;; Setting the SHELL environment variable is required for the
12769              ;; tests to find sh.
12770              (setenv "SHELL" (which "sh"))
12771              #t)))))
12772     (native-inputs
12773      `(("emacs-el-mock" ,emacs-el-mock)
12774        ("emacs-noflet" ,emacs-noflet)
12775        ("emacs-undercover" ,emacs-undercover)
12776        ("ert-runner" ,emacs-ert-runner)))
12777     (propagated-inputs
12778      `(("emacs-f" ,emacs-f)
12779        ("emacs-popup" ,emacs-popup)))
12780     (home-page "https://github.com/jacktasia/dumb-jump")
12781     (synopsis "Jump to definition for multiple languages without configuration")
12782     (description "Dumb Jump is an Emacs \"jump to definition\" package with
12783 support for multiple programming languages that favors \"just working\" over
12784 speed or accuracy.  This means minimal --- and ideally zero --- configuration
12785 with absolutely no stored indexes (tags) or persistent background processes.
12786 Dumb Jump performs best with The Silver Searcher @command{ag} or ripgrep
12787 @command{rg} installed.")
12788     (license license:gpl3+)))
12790 (define-public emacs-dts-mode
12791   (let ((commit "9ee0854446dcc6c53d2b8d2941051768dba50344")
12792         (revision "1"))
12793     (package
12794       (name "emacs-dts-mode")
12795       (version (string-append "0.1.0-" revision "." (string-take commit 7)))
12796       (source
12797        (origin
12798          (method git-fetch)
12799          (uri (git-reference
12800                (url "https://github.com/bgamari/dts-mode.git")
12801                (commit commit)))
12802          (file-name (git-file-name name version))
12803          (sha256
12804           (base32
12805            "1k8lljdbc90nd29xrhdrsscxavzdq532wq2mg7ljc94krj7538b1"))))
12806       (build-system emacs-build-system)
12807       (home-page "https://github.com/bgamari/dts-mode.git")
12808       (synopsis "Emacs minor mode for editing device tree files")
12809       (description
12810        "This package provides an Emacs minor mode for highlighting
12811 device tree files.")
12812       (license license:gpl3+))))
12814 (define-public emacs-daemons
12815   (package
12816     (name "emacs-daemons")
12817     (version "2.0.0")
12818     (source
12819      (origin
12820        (method git-fetch)
12821        (uri (git-reference
12822              (url "https://github.com/cbowdon/daemons.el")
12823              (commit version)))
12824        (file-name (git-file-name name version))
12825        (sha256
12826         (base32
12827          "00bkzfaw3bqykcks610vk9wlpa2z360xn32bpsrycacwfv29j7g4"))))
12828     (build-system emacs-build-system)
12829     (home-page "https://github.com/cbowdon/daemons.el")
12830     (synopsis "Emacs UI for managing init system services")
12831     (description
12832      "This is an Emacs mode to give you a UI for managing init system
12833 daemons (services) for those getting tired of typing out @code{sudo service
12834 my_thing reload} all the time.  It offers a consistent UI over different init
12835 systems.")
12836     (license license:gpl3+)))
12838 (define-public emacs-isearch+
12839   (let ((commit "95e49af9dbf0254e095a11f115e101b52659520a")
12840         (revision "1"))
12841     (package
12842       (name "emacs-isearch+")
12843       (version (git-version "0" revision commit))
12844       (source
12845        (origin
12846          (method git-fetch)
12847          (uri (git-reference
12848                (url "https://github.com/emacsmirror/isearch-plus.git")
12849                (commit commit)))
12850          (file-name (git-file-name name version))
12851          (sha256
12852           (base32
12853            "0xhd9zgknf4lvzyf4apirpd7spb1hbpzkvys00a7pkmd0vvahk0v"))))
12854       (build-system emacs-build-system)
12855       (home-page "https://www.emacswiki.org/emacs/isearch+.el")
12856       (synopsis "Extensions to @code{isearch.el}")
12857       (description "This package extends @code{isearch} with advice, dynamic
12858 filters, highlighting of regexp group levels, and more.")
12859       (license license:gpl2+))))
12861 (define-public emacs-eshell-bookmark
12862   (package
12863     (name "emacs-eshell-bookmark")
12864     (version "2.0.0")
12865     (source
12866      (origin
12867        (method git-fetch)
12868        (uri (git-reference
12869              (url "https://github.com/Fuco1/eshell-bookmark")
12870              (commit version)))
12871        (file-name (git-file-name name version))
12872        (sha256
12873         (base32
12874          "14dmsnixf9vqdhsixw693sml0fn80zcf0b37z049fb40cmppqxdw"))))
12875     (build-system emacs-build-system)
12876     (home-page "https://github.com/Fuco1/eshell-bookmark")
12877     (synopsis "Provide @file{bookmark.el} integration for @code{eshell}")
12878     (description
12879      "This package allows for bookmarking @code{eshell} buffers.  Upon
12880 visiting the bookmark, a new @code{eshell} session will be opened in the
12881 appropriate directory if no @code{eshell} session is active.")
12882     (license license:gpl3+)))
12884 (define-public emacs-eshell-z
12885   (package
12886     (name "emacs-eshell-z")
12887     (version "0.3.2")
12888     (source
12889      (origin
12890        (method git-fetch)
12891        (uri (git-reference
12892              (url "https://github.com/xuchunyang/eshell-z")
12893              (commit (string-append "v" version))))
12894        (file-name (git-file-name name version))
12895        (sha256
12896         (base32
12897          "1aac4m814jgxwpz7lbyx5r4z5dmawp4sk7pwbx0zqpnbcsaq5wwc"))))
12898     (build-system emacs-build-system)
12899     (home-page "https://github.com/xuchunyang/eshell-z")
12900     (synopsis "Quick navigation to frequently visited directories")
12901     (description
12902      "This package is a port of @code{z}, and keeps track of visited directories
12903 and commands invoked within them in order to enable navigation via input of
12904 matching regexps.")
12905     (license license:gpl3+)))
12907 (define-public emacs-esh-autosuggest
12908   (package
12909     (name "emacs-esh-autosuggest")
12910     (version "2.0.0")
12911     (source
12912      (origin
12913        (method git-fetch)
12914        (uri (git-reference
12915              (url "https://github.com/dieggsy/esh-autosuggest")
12916              (commit version)))
12917        (file-name (git-file-name name version))
12918        (sha256
12919         (base32
12920          "116pdjgpjy9b0psm5kzwkwy7dq8vn0p6dy75dl1zsy2xrjf1iqdw"))))
12921     (build-system emacs-build-system)
12922     (propagated-inputs `(("emacs-company" ,emacs-company)))
12923     (home-page "https://github.com/dieggsy/esh-autosuggest")
12924     (synopsis "Fish-like autosuggestions in Eshell")
12925     (description
12926      "This package assumes you use something other than company for eshell
12927 completion (e.g. @code{eshell-pcomplete}, @code{completion-at-point},
12928 @code{helm-esh-pcomplete}).  @code{company-mode} is used solely as a mechanism
12929 for history autosuggestions.
12931 Unless you're using @code{use-package}'s hook keyword, you can enable the
12932 autosuggestions with:
12933 @code{(add-hook 'eshell-mode-hook #'esh-autosuggest-mode)}")
12934     (license license:gpl3+)))
12936 (define-public emacs-desktop-environment
12937   (package
12938     (name "emacs-desktop-environment")
12939     (version "0.2.2")
12940     (source
12941      (origin
12942        (method git-fetch)
12943        (uri (git-reference
12944              (url "https://gitlab.petton.fr/DamienCassou/desktop-environment")
12945              (commit (string-append "v" version))))
12946        (file-name (git-file-name name version))
12947        (sha256
12948         (base32
12949          "14ija2rrz3zjhjbzxg84j5fq6xph4ah7w9bkqnq37by040cydvhw"))))
12950     (build-system emacs-build-system)
12951     (home-page "https://gitlab.petton.fr/DamienCassou/desktop-environment")
12952     (synopsis "Control your GNU/Linux desktop environment from Emacs")
12953     (description
12954      "This package helps you control your GNU/Linux desktop from Emacs.
12955 With @code{desktop-environment}, you can control the brightness and volume as
12956 well as take screenshots and lock your screen.  The package depends on the
12957 availability of shell commands to do the hard work for us.  These commands can
12958 be changed by customizing the appropriate variables.")
12959     (license license:gpl3+)))
12961 (define-public emacs-org-caldav
12962   (package
12963     (name "emacs-org-caldav")
12964     (version "20180403")
12965     (source
12966      (origin
12967        (method url-fetch)
12968        (uri (string-append
12969              "https://github.com/dengste/org-caldav/raw/"
12970              "8d3492c27a09f437d2d94f2736c56d7652e87aa0"
12971              "/org-caldav.el"))
12972        (sha256
12973         (base32
12974          "1fh4gh68ddj0is99z2ccyh97v6psnyda61n2dsadzqhcxn51amlc"))))
12975     (build-system emacs-build-system)
12976     (propagated-inputs `(("emacs-org" ,emacs-org)))
12977     (home-page "https://github.com/dengste/org-caldav")
12978     (synopsis
12979      "Sync Org files with external calendars via the CalDAV protocol")
12980     (description
12981      "Synchronize between events in Org-mode files and a CalDAV calendar.
12982 This code is still alpha.")
12983     (license license:gpl3+)))
12985 (define-public emacs-zotxt
12986   (package
12987     (name "emacs-zotxt")
12988     (version "20180518")
12989     (source
12990      (origin
12991        (method git-fetch)
12992        (uri (git-reference
12993              (url "https://github.com/egh/zotxt-emacs.git")
12994              (commit "23a4a9f74a658222027d53a9a83cd4bcc583ca8b")))
12995        (file-name (git-file-name name version))
12996        (sha256
12997         (base32 "09fq3w9yk9kn6bz7y9kgpiw612dvj3yzsdk734js6zgb0p8lfd2c"))))
12998     (build-system emacs-build-system)
12999     (propagated-inputs
13000      `(("emacs-deferred" ,emacs-deferred)
13001        ("emacs-request" ,emacs-request)))
13002     (home-page "https://github.com/egh/zotxt-emacs")
13003     (synopsis "Integrate Emacs with Zotero")
13004     (description "This package provides two integration features between Emacs
13005 and the Zotero research assistant: Insertion of links to Zotero items into an
13006 Org-mode file, and citations of Zotero items in Pandoc Markdown files.")
13007     (license license:gpl3+)))
13009 (define-public emacs-evil-ediff
13010   ;; Evil-Ediff is included in Evil Collection from 20180617.
13011   (deprecated-package "emacs-evil-ediff" emacs-evil-collection))
13013 (define-public emacs-evil-magit
13014   (let ((commit "e2fec5877994c0c19f0c25fa01f3d22cb0ab38ba"))
13015     (package
13016       (name "emacs-evil-magit")
13017       (version (git-version "0.4.2" "2" commit))
13018       (source
13019        (origin
13020          (method git-fetch)
13021          (uri (git-reference
13022                (url "https://github.com/emacs-evil/evil-magit")
13023                (commit commit)))
13024          (file-name (git-file-name name version))
13025          (sha256
13026           (base32
13027            "134v7s03jvbhm70mavwab85r09i68g2a5bvriirh0chz1av2y16v"))))
13028       (build-system emacs-build-system)
13029       (propagated-inputs
13030        `(("emacs-evil" ,emacs-evil)
13031          ("magit" ,emacs-magit)))
13032       (home-page
13033        "https://github.com/emacs-evil/evil-magit")
13034       (synopsis "Evil-based key bindings for Magit")
13035       (description
13036        "This Emacs library configures Magit and Evil to play well with each other.
13037 For some background see @url{https://github.com/magit/evil-magit/issues/1}.
13038 See the README at @url{https://github.com/justbur/evil-magit} for a table
13039 describing the key binding changes.")
13040       (license license:gpl3+))))
13042 (define-public emacs-evil-mu4e
13043   ;; Evil-mu4e is included in Evil Collection from 20180617.
13044   (deprecated-package "emacs-evil-mu4e" emacs-evil-collection))
13046 (define-public emacs-evil-multiedit
13047   (package
13048     (name "emacs-evil-multiedit")
13049     (version "1.3.9")
13050     (source
13051      (origin
13052        (method git-fetch)
13053        (uri (git-reference
13054              (url "https://github.com/hlissner/evil-multiedit")
13055              (commit (string-append "v" version))))
13056        (file-name (git-file-name name version))
13057        (sha256
13058         (base32
13059          "19h3kqylqzbjv4297wkzzxdmn9yxbg6z4ga4ssrqri90xs7m3rw3"))))
13060     (build-system emacs-build-system)
13061     (propagated-inputs
13062      `(("emacs-evil" ,emacs-evil)
13063        ("emacs-iedit" ,emacs-iedit)))
13064     (home-page
13065      "https://github.com/hlissner/evil-multiedit")
13066     (synopsis "Multiple cursors for Evil mode")
13067     (description
13068      "This plugin was an answer to the lack of proper multiple cursor support
13069 in Emacs+Evil.  It allows you to select and edit matches interactively,
13070 integrating @code{iedit-mode} into Evil mode with an attempt at sensible
13071 defaults.")
13072     (license license:gpl3+)))
13074 (define-public emacs-evil-org
13075   (let ((commit "b6d652a9163d3430a9e0933a554bdbee5244bbf6"))
13076     (package
13077       (name "emacs-evil-org")
13078       (version (git-version "0.1.1" "1" commit))
13079       (source
13080        (origin
13081          (method git-fetch)
13082          (uri (git-reference
13083                (url "https://github.com/Somelauw/evil-org-mode")
13084                (commit commit)))
13085          (file-name (git-file-name name version))
13086          (sha256
13087           (base32
13088            "176hrw7y7nczffbyhsa167b8rvfacsmcafm2gpkrdjqlrikbmrhl"))))
13089       (build-system emacs-build-system)
13090       (propagated-inputs `(("emacs-evil" ,emacs-evil)))
13091       (home-page
13092        "https://github.com/Somelauw/evil-org-mode")
13093       (synopsis "Evil keybindings for Org mode")
13094       (description
13095        "This package adds supplemental Evil mode key-bindings to Emacs
13096 Org-mode.  It features:
13097 @itemize
13098 @item normal, visual and insert mode bindings;
13099 @item key bindings organised in key themes;
13100 @item operators like > and < to work on headings;
13101 @item text objects;
13102 @item table support;
13103 @item calendar (date selection) support;
13104 @item agenda support.
13105 @end itemize\n")
13106       (license license:gpl3+))))
13108 (define-public emacs-debpaste
13109   (package
13110     (name "emacs-debpaste")
13111     (version "0.1.5")
13112     (home-page "https://github.com/alezost/debpaste.el")
13113     (source
13114      (origin
13115        (method git-fetch)
13116        (uri (git-reference (url home-page)
13117                            (commit (string-append "v" version))))
13118        (file-name (string-append name "-" version ".tar.gz"))
13119        (sha256
13120         (base32
13121          "1wi70r56pd5z0x4dp4m58p9asq03j74kdm4fi9vai83vsl2z9amq"))))
13122     (build-system emacs-build-system)
13123     (propagated-inputs
13124      `(("emacs-xml-rpc" ,emacs-xml-rpc)))
13125     (synopsis "Manipulate pastes from the Debian Pastezone")
13126     (description "Debpaste is an Emacs interface for the Debian Pastezone,
13127 allowing you to receive, post, and delete pastes.  It communicates with the
13128 server using XML-RPC.")
13129     (license license:gpl3+)))
13131 (define-public emacs-xml-rpc
13132   (let ((commit "8f624f8b964e9145acb504e4457c9510e87dd93c")
13133         (revision "1"))
13134     (package
13135       (name "emacs-xml-rpc")
13136       (version (git-version "1.6.12" revision commit))
13137       (source
13138        (origin
13139          (method git-fetch)
13140          (uri (git-reference
13141                (url "https://github.com/hexmode/xml-rpc-el")
13142                (commit commit)))
13143          (file-name (git-file-name name version))
13144          (sha256
13145           (base32
13146            "0xa54z52rsfl3n0xgmbycj4zazp8ksgdwcq56swzs6wp72zlalmj"))))
13147       (build-system emacs-build-system)
13148       (home-page "https://github.com/hexmode/xml-rpc-el")
13149       (synopsis "XML-RPC client for Emacs")
13150       (description "This package provides an XML-RPC client for Emacs capable
13151 of both synchronous and asynchronous method calls using the @code{url}
13152 package's async retrieval functionality.  @file{xml-rpc.el} represents XML-RPC
13153 datatypes as Lisp values, automatically converting to and from the XML
13154 datastructures as needed, both for method parameters and return values, making
13155 using XML-RPC methods fairly transparent to the Lisp code.")
13156       (license license:gpl3+))))
13158 (define-public emacs-xpm
13159   (package
13160     (name "emacs-xpm")
13161     (version "1.0.4")
13162     (source
13163      (origin
13164        (method url-fetch)
13165        (uri (string-append "https://elpa.gnu.org/packages/xpm-"
13166                            version ".tar"))
13167        (sha256
13168         (base32
13169          "075miyashh9cm3b0gk6ngld3rm8bfgnh4qxnhxmmvjgzf6a64grh"))))
13170     (build-system emacs-build-system)
13171     (home-page "https://elpa.gnu.org/packages/xpm.html")
13172     (synopsis "XPM image editing mode for Emacs")
13173     (description "This Emacs package makes editing XPM images easy (and maybe
13174 fun).  Editing is done directly on the (textual) image format, for maximal
13175 cohesion with the Emacs Way.")
13176     (license license:gpl3+)))
13178 (define-public emacs-fish-completion
13179   (package
13180     (name "emacs-fish-completion")
13181     (version "1.1")
13182     (source
13183      (origin
13184        (method git-fetch)
13185        (uri (git-reference
13186              (url "https://gitlab.com/Ambrevar/emacs-fish-completion.git")
13187              (commit version)))
13188        (file-name (git-file-name name version))
13189        (sha256
13190         (base32
13191          "1pjqnbyjmj64q5nwq1mrdxcls4fp5y0b6zqs785i0s6wdvrm4021"))))
13192     (build-system emacs-build-system)
13193     (inputs `(("fish" ,fish)))
13194     (arguments
13195      `(#:phases
13196        (modify-phases %standard-phases
13197          (add-after 'unpack 'configure
13198            (lambda* (#:key inputs outputs #:allow-other-keys)
13199              (let ((fish (assoc-ref inputs "fish")))
13200                ;; Specify the absolute file names of the various
13201                ;; programs so that everything works out-of-the-box.
13202                (make-file-writable "fish-completion.el")
13203                (emacs-substitute-variables
13204                    "fish-completion.el"
13205                  ("fish-completion-command"
13206                   (string-append fish "/bin/fish")))))))))
13207     (home-page
13208      "https://gitlab.com/Ambrevar/emacs-fish-completion")
13209     (synopsis "Fish completion for Emacs pcomplete")
13210     (description
13211      "This package provides completion for the Fish shell to pcomplete (used
13212 by shell and Eshell).  You can set it up globally with:
13214 @example
13215 (when (and (executable-find \"fish\")
13216            (require 'fish-completion nil t))
13217   (global-fish-completion-mode))
13218 @end example
13220 Alternatively, you can call the @code{fish-completion-mode} manually or in
13221 shell/Eshell mode hook.
13223 The package @code{emacs-bash-completion} is an optional dependency: if available,
13224 @code{fish-completion-complete} can be configured to fall back on bash to further
13225 try completing.  See @code{fish-completion-fallback-on-bash-p}.")
13226     (license license:gpl3+)))
13228 (define-public emacs-gif-screencast
13229   (let ((commit "12b25442b97b84abae74ecb5190a9d14ff7cfe5a"))
13230     (package
13231       (name "emacs-gif-screencast")
13232       (version (git-version "20180616" "1" commit))
13233       (source
13234        (origin
13235          (method url-fetch)
13236          (uri (string-append
13237                "https://gitlab.com/Ambrevar/emacs-gif-screencast/"
13238                "repository/archive.tar.gz?ref="
13239                commit))
13240          (sha256
13241           (base32
13242            "0lc457i78xjkn5idr2aaiadkh76zcsksj84z0qh80a9y775syrgh"))))
13243       (build-system emacs-build-system)
13244       (inputs
13245        `(("scrot" ,scrot)
13246          ("imagemagick" ,imagemagick)
13247          ("gifsicle" ,gifsicle)))
13248      (arguments
13249       `(#:phases
13250        (modify-phases %standard-phases
13251          (add-after 'unpack 'configure
13252            (lambda* (#:key inputs outputs #:allow-other-keys)
13253              (let ((scrot (assoc-ref inputs "scrot"))
13254                    (imagemagick (assoc-ref inputs "imagemagick"))
13255                    (gifsicle (assoc-ref inputs "gifsicle")))
13256                ;; Specify the absolute file names of the various
13257                ;; programs so that everything works out-of-the-box.
13258                (emacs-substitute-variables
13259                    "gif-screencast.el"
13260                  ("gif-screencast-program"
13261                   (string-append scrot "/bin/scrot"))
13262                  ("gif-screencast-convert-program"
13263                   (string-append imagemagick "/bin/convert"))
13264                  ("gif-screencast-cropping-program"
13265                   (string-append imagemagick "/bin/mogrify"))
13266                  ("gif-screencast-optimize-program"
13267                   (string-append imagemagick "/bin/gifsicle")))))))))
13268       (home-page
13269        "https://gitlab.com/Ambrevar/emacs-gif-screencast")
13270       (synopsis "One-frame-per-action GIF recording")
13271       (description
13272        "Call @code{gif-screencast} to start a recording.
13273 A screenshot is taken for every user action.  Call
13274 @code{gif-screencast-stop} (<f9> by default) to finish recording and create
13275 the GIF result.")
13276       (license license:gpl3+))))
13278 (define-public emacs-google-translate
13279   (package
13280     (name "emacs-google-translate")
13281     (version "0.11.18")
13282     (source
13283      (origin
13284        (method git-fetch)
13285        (uri (git-reference
13286              (url "https://github.com/atykhonov/google-translate/")
13287              (commit (string-append "v" version))))
13288        (file-name (git-file-name name version))
13289        (sha256
13290         (base32
13291          "1kbiqisqyk31l94gxsirhnrdkj51ylgcb16fk2wf7zigmf13jqzp"))))
13292     (build-system emacs-build-system)
13293     (home-page "https://github.com/atykhonov/google-translate")
13294     (synopsis "Emacs interface to Google Translate")
13295     (description
13296      "This package provides an Emacs interface to the Google Translate
13297 on-line service.")
13298     (license license:gpl3+)))
13300 (define-public emacs-helm-company
13301   (let ((commit "d3fc093a0e833b4dee6561c00d6df3d62aa50f3f"))
13302     (package
13303       (name "emacs-helm-company")
13304       (version (git-version "0.2.3" "1" commit))
13305       (source
13306        (origin
13307          (method git-fetch)
13308          (uri (git-reference
13309                (url "https://github.com/Sodel-the-Vociferous/helm-company")
13310                (commit commit)))
13311          (file-name (git-file-name name version))
13312          (sha256
13313           (base32
13314            "1ciirsanhajdqm5iwl8k9ywf4jha1wdv4sc4d9kslyrfr9zn4q6k"))))
13315       (build-system emacs-build-system)
13316       (propagated-inputs
13317        `(("emacs-helm" ,emacs-helm)
13318          ("emacs-company" ,emacs-company)))
13319       (home-page "https://github.com/Sodel-the-Vociferous/helm-company")
13320       (synopsis "Helm interface for company-mode")
13321       (description
13322        "This is a Helm interface to company-mode, a text completion
13323 framework.")
13324       (license license:gpl3+))))
13326 (define-public emacs-helm-descbinds
13327   (let ((commit "033be73f21778633813264ce1634a6e1ad873d8e"))
13328     (package
13329       (name "emacs-helm-descbinds")
13330       (version (git-version "1.13" "1" commit))
13331       (source
13332        (origin
13333          (method git-fetch)
13334          (uri (git-reference
13335                (url "https://github.com/emacs-helm/helm-descbinds")
13336                (commit commit)))
13337          (file-name (git-file-name name version))
13338          (sha256
13339           (base32
13340            "1n89p56qwa243w1c85i5awnaf7piwjsvfi7nmnsrwm33hix5dknk"))))
13341       (build-system emacs-build-system)
13342       (propagated-inputs `(("emacs-helm" ,emacs-helm)))
13343       (home-page "https://github.com/emacs-helm/helm-descbinds")
13344       (synopsis "Convenient @code{describe-bindings} with Helm")
13345       (description
13346        "This package is a replacement of @code{describe-bindings} for Helm.
13347 @code{describe-bindings} is replaced with @code{helm-descbinds}.  As usual,
13348 type @code{C-h b}, or any incomplete key sequence plus @code{C-h}, to run
13349 @code{helm-descbinds}.  The bindings are presented in a similar way as
13350 @code{describe-bindings} does, but you can use completion to find the command
13351 you searched for and execute it, or view its documentation.")
13352     (license license:gpl3+))))
13354 (define-public emacs-helm-emms
13355   (let ((commit "b785cb845a98a643eba9d5d53c9c0b4e6810a3cd"))
13356     (package
13357       (name "emacs-helm-emms")
13358       (version (git-version "1.3" "2" commit))
13359       (source
13360        (origin
13361          (method git-fetch)
13362          (uri (git-reference
13363                (url "https://github.com/emacs-helm/helm-emms")
13364                (commit commit)))
13365          (file-name (git-file-name name version))
13366          (sha256
13367           (base32
13368            "1595r09y3rmwd46nnhvjja3hb8j2ila295ijxv61cg52ws4wginh"))))
13369       (build-system emacs-build-system)
13370       (propagated-inputs
13371        `(("emacs-helm" ,emacs-helm)
13372          ("emacs-emms" ,emacs-emms)))
13373       (home-page
13374        "https://github.com/emacs-helm/helm-emms")
13375       (synopsis "Emms for Helm")
13376       (description "Helm interface for Emms to browse all tracks and all folders
13377 from @code{emms-source-file-default-directory}.")
13378       (license license:gpl3+))))
13380 (define-public emacs-helm-exwm
13381   (let ((commit "56266f261ba3b3d2753b374b50da20eb768c06f5"))
13382     (package
13383       (name "emacs-helm-exwm")
13384       (version (git-version "20180703" "2" commit))
13385       (source
13386        (origin
13387          (method git-fetch)
13388          (uri (git-reference
13389                (url "https://github.com/emacs-helm/helm-exwm.git")
13390                (commit commit)))
13391          (sha256
13392           (base32 "064ziinqa5sdv7rfjn0y278l12kld176fr88k4h78pgf2f2n7cd8"))))
13393       (build-system emacs-build-system)
13394       (propagated-inputs
13395        `(("emacs-helm" ,emacs-helm)
13396          ("emacs-exwm" ,emacs-exwm)))
13397       (home-page
13398        "https://github.com/emacs-helm/helm-exwm")
13399       (synopsis "Helm for EXWM buffers")
13400       (description
13401        "@code{helm-exwm} runs a Helm session over the list of EXWM buffers.
13402 @code{helm-exwm-switch} is a convenience X application launcher using Helm to
13403 switch between the various windows of one or several specific applications.
13404 See @code{helm-exwm-switch-browser} for an example.")
13405       (license license:gpl3+))))
13407 (define-public emacs-helm-flycheck
13408   (let ((commit "3cf7d3bb194acacc6395f88360588013d92675d6"))
13409     (package
13410       (name "emacs-helm-flycheck")
13411       (version (git-version "0.4" "1" commit))
13412       (source
13413        (origin
13414          (method git-fetch)
13415          (uri (git-reference
13416                (url "https://github.com/yasuyk/helm-flycheck")
13417                (commit commit)))
13418          (file-name (git-file-name name version))
13419          (sha256
13420           (base32
13421            "1a2yfxhz04klwhcandqvfzysxp6b7bxyxx1xk1x3kds5hif5fkl4"))))
13422       (build-system emacs-build-system)
13423       (propagated-inputs
13424        `(("emacs-dash" ,emacs-dash)
13425          ("emacs-flycheck" ,emacs-flycheck)
13426          ("emacs-helm" ,emacs-helm)))
13427       (home-page "https://github.com/yasuyk/helm-flycheck")
13428       (synopsis "Show Flycheck errors with Helm")
13429       (description
13430        "This integrates Flycheck with Helm.")
13431       (license license:gpl3+))))
13433 (define-public emacs-helm-ls-git
13434   (let ((commit "76654c776a7f6e2e5290645e748aac2a746f7daa"))
13435     (package
13436       (name "emacs-helm-ls-git")
13437       (version (git-version "1.9.1" "1" commit))
13438       (source
13439        (origin
13440          (method git-fetch)
13441          (uri (git-reference
13442                (url "https://github.com/emacs-helm/helm-ls-git")
13443                (commit commit)))
13444          (file-name (git-file-name name version))
13445          (sha256
13446           (base32
13447            "0vsq1n3xl3ghy5zik2scm7jrs501n4kybdqd6yw6j0cv4jxdqbr0"))))
13448       (build-system emacs-build-system)
13449       (propagated-inputs `(("emacs-helm" ,emacs-helm)))
13450       (home-page "https://github.com/emacs-helm/helm-ls-git")
13451       (synopsis "Helm interface for listing the files in a Git repository")
13452       (description
13453        "This package provides a Helm interface for Git files.
13454 @itemize
13455 @item Display the open buffers in project.
13456 @item Display a status source showing state of project (modified files etc.).
13457 @item Display a list of all files in project under git control.
13458 @item Quickly look at diffs of modified files.
13459 @item Allow switching to @code{git status} with your preferred frontend
13460 (vc-dir, Magit,etc.).
13461 @item Full integration of git-grep, also allow usage of @code{helm-grep} (you
13462 can use ack-grep instead of grep).
13463 @item Integrate usage of gid from id-utils.
13464 @item Full integration with @code{helm-find-files}, allow you to browse
13465 projects unrelated to current-buffer.
13466 @item In addition, all actions of type files and buffers are provided.
13467 @end itemize\n")
13468       (license license:gpl3+))))
13470 (define-public emacs-helm-mu
13471   (let ((commit "77e6fea24e01481418738421dbcfe28ef1bd63cf"))
13472     (package
13473       (name "emacs-helm-mu")
13474       (version (git-version  "20180513" "1" commit))
13475       (source
13476        (origin
13477          (method git-fetch)
13478          (uri (git-reference
13479                (url "https://github.com/emacs-helm/helm-mu.git")
13480                (commit commit)))
13481          (sha256
13482           (base32 "1lh0ahxdc5b2z18m9p30gwg8sbg33sjwkjr38p7h5xsm5fm7i0fz"))))
13483       (build-system emacs-build-system)
13484       (propagated-inputs
13485        `(("emacs-helm" ,emacs-helm)
13486          ("mu" ,mu)))
13487       (home-page
13488        "https://github.com/emacs-helm/helm-mu")
13489       (synopsis
13490        "Helm sources for searching emails and contacts")
13491       (description
13492        "Helm sources for searching emails and contacts using @code{mu} and
13493 @code{mu4e}.  Mu is an indexer for maildirs and mu4e is a mutt-like MUA for
13494 Emacs build on top of mu.  Mu is highly efficient making it possible to get
13495 instant results even for huge maildirs.  It also provides search operators,
13496 e.g: @code{from:Peter to:Anne flag:attach search term}.")
13497       (license license:gpl3+))))
13499 (define-public emacs-helm-pass
13500   (package
13501     (name "emacs-helm-pass")
13502     (version "0.3")
13503     (source
13504      (origin
13505        (method git-fetch)
13506        (uri (git-reference
13507              (url "https://github.com/emacs-helm/helm-pass")
13508              (commit version)))
13509        (file-name (git-file-name name version))
13510        (sha256
13511         (base32
13512          "0vglaknmir3yv4iwibwn8r40ran8d04gcyp99hx73ldmf3zqpnxv"))))
13513     (build-system emacs-build-system)
13514     (propagated-inputs
13515      `(("emacs-helm" ,emacs-helm)
13516        ("emacs-password-store" ,emacs-password-store)))
13517     (home-page "https://github.com/emacs-helm/helm-pass")
13518     (synopsis "Helm interface to pass, the standard Unix password manager")
13519     (description
13520      "Users of @code{helm-pass} may also be interested in functionality
13521 provided by other Emacs packages dealing with pass:
13522 @itemize
13523 @item @code{emacs-password-store}, which @code{helm-pass} relies on.
13524 @item @code{emacs-pass}, a major mode for @code{pass}.
13525 @item @code{auth-source-pass.el}: integration of Emacs' auth-source with
13526 @code{pass}, included in Emacs 26+).
13527 @end itemize\n")
13528     (license license:gpl3+)))
13530 (define-public emacs-image+
13531   (let ((commit "6834d0c09bb4df9ecc0d7a559bd7827fed48fffc"))
13532     (package
13533       (name "emacs-image+")
13534       (version (git-version "0.6.2" "1" commit))
13535       (source
13536        (origin
13537          (method git-fetch)
13538          (uri (git-reference
13539                (url "https://github.com/mhayashi1120/Emacs-imagex")
13540                (commit commit)))
13541          (file-name (git-file-name name version))
13542          (sha256
13543           (base32
13544            "0v66wk9nh0raih4jhrzmmyi5lbysjnmbv791vm2230ffi2hmwxnd"))))
13545       (build-system emacs-build-system)
13546       (inputs `(("imagemagick" ,imagemagick)))
13547       (arguments
13548        `(#:phases
13549          (modify-phases %standard-phases
13550            (add-after 'unpack 'configure
13551              (lambda* (#:key inputs outputs #:allow-other-keys)
13552                (let ((imagemagick (assoc-ref inputs "imagemagick")))
13553                  ;; Specify the absolute file names of the various
13554                  ;; programs so that everything works out-of-the-box.
13555                  (chmod "image+.el" #o666)
13556                  (emacs-substitute-variables
13557                      "image+.el"
13558                    ("imagex-convert-command"
13559                     (string-append imagemagick "/bin/convert"))
13560                    ("imagex-identify-command"
13561                     (string-append imagemagick "/bin/identify")))))))))
13562       (home-page "https://github.com/mhayashi1120/Emacs-imagex")
13563       (synopsis "Image manipulation extensions for Emacs")
13564       (description
13565        "Image+ provides keybindings allowing you to zoom in or zoom out of an
13566 image, rotate it, save modified images, and more.")
13567       (license license:gpl3+))))
13569 (define-public emacs-package-lint
13570   (let ((commit "69bb89d00ba212b734c676ad056aa793c450b288"))
13571     (package
13572       (name "emacs-package-lint")
13573       (version (git-version "0.5" "1" commit))
13574       (source
13575        (origin
13576          (method git-fetch)
13577          (uri (git-reference
13578                (url "https://github.com/purcell/package-lint")
13579                (commit commit)))
13580          (file-name (git-file-name name version))
13581          (sha256
13582           (base32
13583            "1hfricsgmy3x9snnd2p4xq6vnnv94qdsxxnxp07b3hqc9bhw31rq"))))
13584       (build-system emacs-build-system)
13585       (home-page "https://github.com/purcell/package-lint")
13586       (synopsis "Linting library for elisp package authors")
13587       (description
13588        "This provides a list of issues with the Emacs package metadata of a file,
13589 e.g. the package dependencies it requires.  See function
13590 @code{package-lint-buffer}.  Checks will currently be enabled only if a
13591 \"Package-Requires:\" or \"Package-Version:\" header is present in the
13592 file.")
13593       (license license:gpl3+))))
13595 (define-public emacs-picpocket
13596   (let ((version "40")
13597         (commit "6fd88b8711c4370662c0f9c462170187d092a046"))
13598     (package
13599       (name "emacs-picpocket")
13600       (version version)
13601       (source
13602        (origin
13603          (method git-fetch)
13604          (uri (git-reference
13605                (url "https://github.com/johanclaesson/picpocket")
13606                (commit commit)))
13607          (file-name (git-file-name name version))
13608          (sha256
13609           (base32 "1mdzzxf7xm7zwrpnqqxa27d1cr31pd72d7ilbwljv13qp177a3yw"))))
13610       (build-system emacs-build-system)
13611       (arguments ; needed for running tests
13612        `(#:tests? #t
13613          #:emacs ,emacs
13614          #:test-command '("emacs" "--batch"
13615                           "-l" "picpocket-test.el"
13616                           "-f" "ert-run-tests-batch-and-exit")))
13617       (home-page "https://github.com/johanclaesson/picpocket")
13618       (synopsis "Image viewer for Emacs")
13619       (description
13620        "Picpocket is an image viewer for GNU Emacs.  It has commands for:
13622 @itemize
13623 @item File operations on the picture files (delete, move, copy, hardlink).
13624 @item Scale and rotate the picture.
13625 @item Associate pictures with tags which are saved to disk.
13626 @item Filter pictures according to tags.
13627 @item Customizing keystrokes for quick tagging and file operations.
13628 @item Undo and browse history of undoable commands.
13629 @end itemize")
13630       (license license:gpl3+))))
13632 (define-public emacs-wgrep-helm
13633   ;; `emacs-wgrep-helm' was mistakenly added.
13634   (deprecated-package "emacs-wgrep-helm" emacs-wgrep))
13636 (define-public emacs-mu4e-conversation
13637   (let ((commit "e7d4bfcb0d392b0aed1f705ccac2419a168d1f5e"))
13638     (package
13639       (name "emacs-mu4e-conversation")
13640       (version (git-version "20181126" "4" commit))
13641       (source
13642        (origin
13643          (method url-fetch)
13644          (uri (string-append
13645                "https://gitlab.com/Ambrevar/mu4e-conversation/"
13646                "repository/archive.tar.gz?ref="
13647                commit))
13648          (file-name (git-file-name name version))
13649          (sha256
13650           (base32
13651            "0b52hf9rm2afba9pvgink9bwqm705sk0y5qikp0ff5sk53wqvy29"))))
13652       (build-system emacs-build-system)
13653       (propagated-inputs
13654        `(("mu" ,mu)))
13655       (home-page
13656        "https://gitlab.com/Ambrevar/mu4e-conversation")
13657       (synopsis
13658        "Show a complete thread in a single buffer")
13659       (description
13660        "This package offers an alternate view to mu4e's e-mail display.  It
13661 shows all e-mails of a thread in a single view, where each correspondent has
13662 their own face.  Threads can be displayed linearly (in which case e-mails are
13663 displayed in chronological order) or as an Org document where the node tree
13664 maps the thread tree.")
13665       (license license:gpl3+))))
13667 (define-public emacs-pinentry
13668   (let ((commit "dcc9ba03252ee5d39e03bba31b420e0708c3ba0c")
13669         (revision "1"))
13670     (package
13671       (name "emacs-pinentry")
13672       (version (git-version "0.1" revision commit))
13673       (source
13674        (origin
13675          (method url-fetch)
13676          (uri (string-append
13677                "http://git.savannah.gnu.org/cgit/emacs/elpa.git/plain"
13678                "/packages/pinentry/pinentry.el?id=" commit))
13679          (file-name (string-append "pinentry.el"))
13680          (sha256
13681           (base32
13682            "1lf30q6r8nz5cjzclbb9bbymsk2y75nskvb55hnjdv93gr3j0sik"))))
13683       (build-system emacs-build-system)
13684       (propagated-inputs
13685        `(("gnupg" ,gnupg)))
13686       (home-page "https://elpa.gnu.org/packages/pinentry.html")
13687       (synopsis "GnuPG Pinentry server implementation")
13688       (description
13689        "This package allows GnuPG passphrase to be prompted through the
13690 minibuffer instead of graphical dialog.
13692 To use, add @code{allow-emacs-pinentry} to @code{~/.gnupg/gpg-agent.conf},
13693 reload the configuration with @code{gpgconf --reload gpg-agent}, and start the
13694 server with @code{M-x pinentry-start}.")
13695       (license license:gpl3+))))
13697 (define-public emacs-so-long
13698   (let ((commit "3ebe97decdb5cbbfba82ca686e0ad2c7d2722b4a")
13699         (version "1.0")
13700         (revision "1"))
13701     (package
13702       (name "emacs-so-long")
13703       (version (git-version version revision commit))
13704       (source
13705        (origin
13706          (method git-fetch)
13707          (uri (git-reference
13708                (url "https://git.savannah.gnu.org/git/so-long.git")
13709                (commit commit)))
13710          (file-name (git-file-name name version))
13711          (sha256
13712           (base32
13713            "0fi71g5rsdsi978jz8406k8hvzgnssm9wxar8yqfhs97178r9s5m"))))
13714       (build-system emacs-build-system)
13715       (home-page "https://www.emacswiki.org/emacs/SoLong")
13716       (synopsis "Improve performance in files with long lines")
13717       (description "This package improves the performance of Emacs when
13718 viewing files with long lines.")
13719       (license license:gpl3+))))
13721 (define-public emacs-github-review
13722   (let ((commit "9c3ffe30fba5d02e9951e76d1a5be2ed046663da")
13723         (version "0.1")
13724         (revision "1"))
13725     (package
13726       (name "emacs-github-review")
13727       (version (git-version version revision commit))
13728       (source
13729        (origin
13730          (method git-fetch)
13731          (uri (git-reference
13732                (url "https://github.com/charignon/github-review")
13733                (commit commit)))
13734          (file-name (git-file-name name version))
13735          (sha256
13736           (base32
13737            "078rv6f2p3wrznhgvmkhd071bwy72007f5l2m2a0r1k2i3vbfaja"))))
13738       (build-system emacs-build-system)
13739       (inputs
13740        `(("emacs-dash" ,emacs-dash)
13741          ("emacs-s" ,emacs-s)
13742          ("emacs-ghub" ,emacs-ghub)))
13743       (home-page "https://github.com/charignon/github-review")
13744       (synopsis "Review GitHub pull requests within Emacs")
13745       (description "This package provides commands to pull in, comment on, and
13746 accept and reject GitHub pull requests.")
13747       (license license:gpl3+))))
13749 (define-public emacs-deadgrep
13750   (let ((commit "caeb37b8d6ab83f0eba353d6bbb29678190d4419")
13751         (version "0.7")
13752         (revision "1"))
13753     (package
13754       (name "emacs-deadgrep")
13755       (version (git-version version revision commit))
13756       (source
13757        (origin
13758          (method git-fetch)
13759          (uri (git-reference
13760                (url "https://github.com/Wilfred/deadgrep")
13761                (commit commit)))
13762          (file-name (git-file-name name version))
13763          (sha256
13764           (base32
13765            "158fqha8nilwfzmw15lcsq8b099j8wclzq303md0j4mfr2q2gfvs"))))
13766       (build-system emacs-build-system)
13767       (inputs
13768        `(("emacs-dash" ,emacs-dash)
13769          ("emacs-s" ,emacs-s)
13770          ("emacs-spinner" ,emacs-spinner)))
13771       (home-page "https://github.com/Wilfred/deadgrep")
13772       (synopsis "Frontend for @code{ripgrep}")
13773       (description "This package provides an Emacs interface for performing
13774 searches with @code{ripgrep}.")
13775       (license license:gpl3+))))
13777 (define-public emacs-focus
13778   (let ((commit "ab42b8779929beeb7878c7fb3d3ccd80d9327c7f")
13779         (version "0.1.1")
13780         (revision "1"))
13781     (package
13782       (name "emacs-focus")
13783       (version (git-version version revision commit))
13784       (source
13785        (origin
13786          (method git-fetch)
13787          (uri (git-reference
13788                (url "https://github.com/larstvei/Focus")
13789                (commit commit)))
13790          (file-name (git-file-name name version))
13791          (sha256
13792           (base32
13793            "079v1syid7h2vr2ya6hs6hl0pgj60qdsw60mqw4cj2zllmkrkwj4"))))
13794       (build-system emacs-build-system)
13795       (home-page "https://github.com/larstvei/Focus")
13796       (synopsis "Minor mode for focusing in on relevant text")
13797       (description "This package provides a minor mode that dims the color of
13798 text in neighboring sections.")
13799       (license license:gpl3+))))
13801 (define-public emacs-pandoc-mode
13802   (package
13803     (name "emacs-pandoc-mode")
13804     (version "2.27.2")
13805     (source
13806      (origin
13807        (method git-fetch)
13808        (uri (git-reference
13809              (url "https://github.com/joostkremers/pandoc-mode")
13810              (commit version)))
13811        (file-name (git-file-name name version))
13812        (sha256
13813         (base32
13814          "04bqc7mhgkfks3nsvimd3rrriv4nqbksmv5ahlbbd03aqa2b0vrv"))))
13815     (build-system emacs-build-system)
13816     (propagated-inputs
13817      `(("emacs-dash" ,emacs-dash)
13818        ("emacs-hydra" ,emacs-hydra)))
13819     (home-page "https://github.com/joostkremers/pandoc-mode")
13820     (synopsis "Minor mode for interacting with Pandoc")
13821     (description "This package provides a Hydra menu for interacting with the
13822 Pandoc, the document-conversion tool.")
13823     (license license:bsd-3)))
13825 (define-public emacs-ccls
13826   (let ((commit "2764ddd57b03646f0327ea680a954b4a67450aef")
13827         (version "0.1")
13828         (revision "1"))
13829     (package
13830       (name "emacs-ccls")
13831       (version (git-version version revision commit))
13832       (source
13833        (origin
13834          (method git-fetch)
13835          (uri (git-reference
13836                (url "https://github.com/MaskRay/emacs-ccls")
13837                (commit commit)))
13838          (file-name (git-file-name name version))
13839          (sha256
13840           (base32
13841            "16427jvzhjy8kpvlgl3qzkzppv98124hkgi8q8pv1h7m46k9lhh3"))))
13842       (build-system emacs-build-system)
13843       (propagated-inputs
13844        `(("emacs-dash" ,emacs-dash)
13845          ("emacs-projectile" ,emacs-projectile)
13846          ("emacs-lsp-mode" ,emacs-lsp-mode)))
13847       (home-page "https://github.com/MaskRay/emacs-ccls")
13848       (synopsis "Emacs support for the @code{ccls} language server")
13849       (description "This package extends @code{lsp-mode} to work with @code{C}
13850 and @code{C++} files through the @code{ccls} language server.")
13851       (license license:bsd-3))))
13853 (define-public emacs-org-brain
13854   (package
13855     (name "emacs-org-brain")
13856     (version "0.5")
13857     (source
13858      (origin
13859        (method git-fetch)
13860        (uri (git-reference
13861              (url "https://github.com/Kungsgeten/org-brain.git")
13862              (commit "3faf9303af3f2356e3444e69c22dc6c5774047d1")))
13863        (file-name (git-file-name name version))
13864        (sha256
13865         (base32
13866          "1ad681zk6kckw2zbk0r4iaj4bw8cfqrbd1s3gdwgdjlzq81q9mmj"))))
13867     (build-system emacs-build-system)
13868     (home-page "https://github.com/Kungsgeten/org-brain")
13869     (synopsis "Org-mode wiki and concept-mapping for Emacs")
13870     (description "@code{emacs-org-brain} implements a variant of concept
13871 mapping in Emacs, using @code{org-mode}.  An org-brain is a network of
13872 org-mode entries, where each entry is a file or a headline, and you can get a
13873 visual overview of the relationships between the entries: parents, children,
13874 siblings and friends.  This visual overview can also be used to browse your
13875 entries.  You can think of entries as nodes in a mind map, or pages in a
13876 wiki.")
13877     (license license:expat)))
13879 (define-public emacs-recent-addresses
13880   (let ((commit "afbbfdc43b81e620acf827ca20d297e0c517b6eb")
13881         (revision "1"))
13882     (package
13883       (name "emacs-recent-addresses")
13884       (home-page "http://nschum.de/src/emacs/recent-addresses/")
13885       (version (git-version "0.1" revision commit))
13886       (source (origin
13887                 (method git-fetch)
13888                 (uri (git-reference
13889                       ;; Note: Use a branch that works with Helm.  Submitted
13890                       ;; at <https://github.com/nschum/recent-addresses.el/pull/1>.
13891                       (url "https://github.com/civodul/recent-addresses.el")
13892                       (commit commit)))
13893                 (sha256
13894                  (base32
13895                   "0ajrq0galjmdyjdjyxazykjyax3gh6hvfk4s7l657pi11g0q5zax"))
13896                 (file-name (git-file-name name version))))
13897       (build-system emacs-build-system)
13898       (synopsis "Record recently-used email addressed and auto-complete them")
13899       (description
13900        "@code{recent-addresses} is an Emacs package that allows you to quickly
13901 look up previously used email addresses.  It can be used alongside the Gnus
13902 email client.")
13903       (license license:gpl2+))))
13905 (define-public emacs-fold-dwim
13906   (let ((commit "c46f4bb2ce91b4e307136320e72c28dd50b6cd8b")
13907         (revision "0"))
13908     (package
13909       (name "emacs-fold-dwim")
13910       (version (git-version "1.2" revision commit))
13911       (home-page "https://github.com/emacsattic/fold-dwim")
13912       (source (origin
13913                 (method git-fetch)
13914                 (uri (git-reference (url home-page) (commit commit)))
13915                 (sha256
13916                  (base32
13917                   "1yz1wis31asw6xa5maliyd1ck2q02xnnh7dc6swgj9cb4wi7k6i1"))
13918                 (file-name (git-file-name name version))))
13919       (build-system emacs-build-system)
13920       (synopsis "Unified user interface for Emacs folding modes")
13921       (description
13922        "DWIM stands for \"do what I mean\", as in the idea that one keystroke
13923 can do different things depending on the context.  In this package, it means
13924 that, if the cursor is in a currently hidden folded construction, we want to
13925 show it; if it's not, we want to hide whatever fold the cursor is in.")
13926       (license license:gpl2+))))
13928 (define-public emacs-markup-faces
13929   (package
13930     (name "emacs-markup-faces")
13931     (version "1.0.0")
13932     (source
13933      (origin
13934        (method url-fetch)
13935        (uri (string-append "https://stable.melpa.org/packages/markup-faces-"
13936                            version ".el"))
13937        (sha256
13938         (base32
13939          "124dxbaa25fwxnpwsygpz7pw6da6dnnw7y2lic3jf8rgz7lw4v32"))))
13940     (build-system emacs-build-system)
13941     (home-page "https://github.com/sensorflo/markup-faces")
13942     (synopsis "Collection of Emacs faces for markup language modes")
13943     (description "emacs-markup-faces is like font-lock-faces, but tailored for
13944 markup languages instead programming languages.  The sub group markup-faces-text
13945 is also intended for 'text viewing modes' such as info or (wo)man.  This gives a
13946 common look and feel, or let's say theme, across different markup language modes
13947 and 'text viewing modes' respectively.")
13948     (license license:gpl3+)))
13950 (define-public emacs-adoc-mode
13951   (package
13952     (name "emacs-adoc-mode")
13953     (version "0.6.6")
13954     (source
13955      (origin
13956        (method url-fetch)
13957        (uri (string-append "https://stable.melpa.org/packages/adoc-mode-"
13958                            version ".el"))
13959        (sha256
13960         (base32
13961          "1c6hrgxxsnl2c19rgjykpm7r4xg9lp6bmk5z6bi7g8pqlrgwffcy"))))
13962     (build-system emacs-build-system)
13963     (propagated-inputs
13964      `(("emacs-markup-faces" ,emacs-markup-faces)))
13965     (home-page "https://github.com/sensorflo/adoc-mode/wiki")
13966     (synopsis "AsciiDoc mode for Emacs")
13967     (description "This package provides an Emacs major mode for editing AsciiDoc
13968 files.  It focuses on highlighting the document to improve readability.")
13969     (license license:gpl2+)))
13971 (define-public emacs-rust-mode
13972   (let ((commit
13973          ;; Last release is old (2016), use more recent commit to get bug
13974          ;; fixes.
13975          "64b4a2450e4d4c47f6307851c9b2598cd2254d68")
13976         (revision "0"))
13977     (package
13978       (name "emacs-rust-mode")
13979       (version (git-version "0.3.0" revision commit))
13980       (source (origin
13981                 (method git-fetch)
13982                 (uri
13983                  (git-reference
13984                   (url "https://github.com/rust-lang/rust-mode")
13985                   (commit commit)))
13986                 (file-name (git-file-name name version))
13987                 (sha256
13988                  (base32
13989                   "0pbz36lljgb7bdgx3h3g0pq1nss1kvn8mhk1l3mknsmynd6w4nd8"))))
13990       (build-system emacs-build-system)
13991       (arguments
13992        `(#:phases
13993          (modify-phases %standard-phases
13994            (replace 'check
13995              (lambda _
13996                (invoke "sh" "run_rust_emacs_tests.sh"))))))
13997       (home-page "https://github.com/rust-lang/rust-mode")
13998       (synopsis "Major Emacs mode for editing Rust source code")
13999       (description "This package provides a major Emacs mode for editing Rust
14000 source code.")
14001       (license (list license:expat
14002                      license:asl2.0)))))
14004 (define-public emacs-ztree
14005   (let ((commit "c54425a094353ec40a8179f9eab3596f76c6cf94"))
14006     (package
14007       (name "emacs-ztree")
14008       (version (git-version "1.0.5" "1" commit))
14009       (source
14010        (origin
14011          (method git-fetch)
14012          (uri (git-reference
14013                (url "https://github.com/fourier/ztree")
14014                (commit commit)))
14015          (file-name (git-file-name name version))
14016          (sha256
14017           (base32
14018            "0j8fpxds8m1zi04nrs8vv21091abvh4n8ab76f1sgdxnp4l5cfb0"))))
14019       (build-system emacs-build-system)
14020       (home-page "https://github.com/fourier/ztree")
14021       (synopsis "Directory tree comparison mode for Emacs")
14022       (description "Ztree is a project dedicated to implementation of several
14023 text-tree applications inside GNU Emacs.  It consists of 2 subprojects:
14024 @command{ztree-diff} and @command{ztree-dir} (the basis of
14025 @command{ztree-diff}).")
14026       (license license:gpl3))))
14028 (define-public emacs-helm-org-contacts
14029   (let ((commit "0af703bd9a43032b89fdf5559673151d1ac2fffc"))
14030     (package
14031       (name "emacs-helm-org-contacts")
14032       (version (git-version "20180707" "1" commit))
14033       (source
14034        (origin
14035          (method git-fetch)
14036          (uri (git-reference
14037                (url "https://github.com/tmalsburg/helm-org-contacts")
14038                (commit commit)))
14039          (file-name (git-file-name name version))
14040          (sha256
14041           (base32
14042            "1cl7cm2ic9pg4vc9cdh84vzjj1x2lpd5ymimiva8h4l17kiphk4s"))))
14043       (build-system emacs-build-system)
14044       (propagated-inputs
14045        `(("emacs-dash" ,emacs-dash)
14046          ("emacs-helm" ,emacs-helm)
14047          ("emacs-s" ,emacs-s)))
14048       (home-page "https://github.com/tmalsburg/helm-org-contacts")
14049       (synopsis "Helm source for org-contacts")
14050       (description "This Helm source can be used to search contacts stored in
14051 org-contacts format.  There are actions for inserting postal addresses, email
14052 addresses, and phone numbers in the buffer where @command{helm-org-contacts}
14053 was called.")
14054       (license license:gpl3))))
14056 (define-public emacs-dired-du
14057   (package
14058     (name "emacs-dired-du")
14059     (version "0.5.1")
14060     (source
14061      (origin
14062        (method url-fetch)
14063        (uri (string-append
14064              "https://elpa.gnu.org/packages/dired-du-"
14065              version ".tar"))
14066        (sha256
14067         (base32
14068          "1091scnrjh0a4gja4z6jxic6ghy1yryv46qk9c76pmh50cpw6766"))))
14069     (build-system emacs-build-system)
14070     (home-page "http://elpa.gnu.org/packages/dired-du.html")
14071     (synopsis "Dired with recursive directory sizes")
14072     (description
14073      "Display the recursive size of directories in Dired.
14074 This file defines a minor mode @command{dired-du-mode} to show the recursive
14075 size of directories in Dired buffers.  If @command{du} program is available,
14076 then the directory sizes are obtained with it.  Otherwise, the directory sizes
14077 are obtained with Lisp.  The former is faster and provide a more precise
14078 value.  For directories where the user doesn't have read permission, the
14079 recursive size is not obtained.  Once this mode is enabled, every new Dired
14080 buffer displays recursive dir sizes.")
14081     (license license:gpl3+)))
14083 (define-public emacs-dired-rsync
14084   (package
14085     (name "emacs-dired-rsync")
14086     (version "0.4")
14087     (source (origin
14088               (method git-fetch)
14089               (uri (git-reference
14090                     (url "https://github.com/stsquad/dired-rsync.git")
14091                     (commit version)))
14092               (file-name (git-file-name name version))
14093               (sha256
14094                (base32
14095                 "0jzbn0izxqgz719gb6fpr60zbcb6w1ama13ngpvrig82nlhs37fv"))))
14096     (build-system emacs-build-system)
14097     (propagated-inputs
14098      `(("emacs-s" ,emacs-s)
14099        ("emacs-dash" ,emacs-dash)))
14100     (home-page "https://github.com/stsquad/dired-rsync/")
14101     (synopsis "Support for rsync from Emacs dired buffers")
14102     (description "This package adds a single command @code{dired-rsync} which
14103 allows the user to copy marked files in a dired buffer via @code{rsync}.  This
14104 is useful, especially for large files, because the copy happens in the
14105 background and doesn’t lock up Emacs.  It is also more efficient than using
14106 tramps own encoding methods for moving data between systems.")
14107     (license license:gpl3+)))
14109 (define-public emacs-pcre2el
14110   ;; Last release is very old so we get the latest commit.
14111   (let ((commit "0b5b2a2c173aab3fd14aac6cf5e90ad3bf58fa7d"))
14112     (package
14113       (name "emacs-pcre2el")
14114       (version (git-version "1.8" "1" commit))
14115       (source
14116        (origin
14117          (method git-fetch)
14118          (uri (git-reference
14119                (url "https://github.com/joddie/pcre2el")
14120                (commit commit)))
14121          (file-name (git-file-name name version))
14122          (sha256
14123           (base32
14124            "14br6ad138qx1z822wqssswqiihxiynz1k69p6mcdisr2q8yyi1z"))))
14125       (build-system emacs-build-system)
14126       (home-page "https://github.com/joddie/pcre2el")
14127       (synopsis "Convert between PCRE, Emacs and rx regexp syntax")
14128       (description "@code{pcre2el} or @code{rxt} (RegeXp Translator or RegeXp
14129 Tools) is a utility for working with regular expressions in Emacs, based on a
14130 recursive-descent parser for regexp syntax.  In addition to converting (a
14131 subset of) PCRE syntax into its Emacs equivalent, it can do the following:
14133 @itemize
14134 @item convert Emacs syntax to PCRE
14135 @item convert either syntax to @code{rx}, an S-expression based regexp syntax
14136 @item untangle complex regexps by showing the parse tree in @code{rx} form and
14137 highlighting the corresponding chunks of code
14138 @item show the complete list of strings (productions) matching a regexp,
14139 provided the list is finite
14140 @item provide live font-locking of regexp syntax (so far only for Elisp
14141 buffers – other modes on the TODO list).
14142 @end itemize\n")
14143       (license license:gpl3))))
14145 (define-public emacs-magit-todos
14146   (package
14147     (name "emacs-magit-todos")
14148     (version "1.2")
14149     (source
14150      (origin
14151        (method git-fetch)
14152        (uri (git-reference
14153              (url "https://github.com/alphapapa/magit-todos")
14154              (commit version)))
14155        (file-name (git-file-name name version))
14156        (sha256
14157         (base32
14158          "17a18gszbypz82bj36xbfyykc4s9rz83vwmpxvlf65svhd51c0nh"))))
14159     (build-system emacs-build-system)
14160     (propagated-inputs
14161      `(("emacs-async" ,emacs-async)
14162        ("emacs-dash" ,emacs-dash)
14163        ("emacs-f" ,emacs-f)
14164        ("emacs-hl-todo" ,emacs-hl-todo)
14165        ("magit" ,emacs-magit)
14166        ("emacs-pcre2el" ,emacs-pcre2el)
14167        ("emacs-s" ,emacs-s)))
14168     (home-page "https://github.com/alphapapa/magit-todos")
14169     (synopsis "Show source files' TODOs (and FIXMEs, etc) in Magit status buffer")
14170     (description "This package displays keyword entries from source code
14171 comments and Org files in the Magit status buffer.  Activating an item jumps
14172 to it in its file.  By default, it uses keywords from @code{hl-todo}, minus a
14173 few (like NOTE).")
14174     (license license:gpl3)))
14176 (define-public emacs-git-annex
14177   ;; Unreleased version has a fontification fix.
14178   (let ((commit "ebdb44aef1883f1b2b8058e05d30fb9315b03707")
14179         (revision "1"))
14180     (package
14181       (name "emacs-git-annex")
14182       (version (string-append "1.1-" revision "." (string-take commit 8)))
14183       (source
14184        (origin
14185          (method git-fetch)
14186          (uri (git-reference
14187                (url "https://github.com/jwiegley/git-annex-el")
14188                (commit commit)))
14189          (file-name (git-file-name name version))
14190          (sha256
14191           (base32
14192            "1mzv40gj7k10h7h5s43my8msgzjpj680qprqa9pp8nbyhl49v3wh"))))
14193       (build-system emacs-build-system)
14194       (home-page "https://github.com/jwiegley/git-annex-el")
14195       (synopsis "Emacs integration for git-annex")
14196       (description "Enhances Dired and buffers visiting annex files with
14197 git-annex functionality.  In Dired, the names of annex files are shortened by
14198 hiding the symbolic links and fontified based on whether content is present.
14199 Commands for performing some common operations (e.g., unlocking and adding
14200 files) are provided.")
14201       (license license:gpl2+))))
14203 (define-public emacs-hackernews
14204   (let ((commit "916c3da8da45c757f5ec2faeed57fa370513d4ac"))
14205     (package
14206       (name "emacs-hackernews")
14207       (version (git-version "0.5.0" "1" commit))
14208       (source
14209        (origin
14210          (method git-fetch)
14211          (uri (git-reference
14212                (url "https://github.com/clarete/hackernews.el")
14213                (commit commit)))
14214          (file-name (git-file-name name version))
14215          (sha256
14216           (base32
14217            "09bxaaczana1cfvxyk9aagjvdszkj0j1yldl5r4xa60b59lxihsg"))))
14218       (build-system emacs-build-system)
14219       (home-page "https://github.com/clarete/hackernews.el")
14220       (synopsis "Hacker News client for Emacs")
14221       (description "The @command{hackernews} package is able to fetch stories
14222 from six different Hacker News feeds, namely top, new, best, ask, show and job
14223 stories.  The default feed is top stories, which corresponds to the Hacker
14224 News homepage.")
14225       (license license:gpl3))))
14227 (define-public emacs-youtube-dl
14228   (let ((commit "7c9d7a7d05b72a7d1b1257a36c5e2b2567b185dd"))
14229     (package
14230       (name "emacs-youtube-dl")
14231       (version (git-version "1.0" "1" commit))
14232       (source
14233        (origin
14234          (method git-fetch)
14235          (uri (git-reference
14236                (url "https://github.com/skeeto/youtube-dl-emacs/")
14237                (commit commit)))
14238          (file-name (git-file-name name version))
14239          (sha256
14240           (base32
14241            "0mh4s089a4x8s380agzb2306kdp1hl204px1n5rrrrdcls7imnh6"))))
14242       (build-system emacs-build-system)
14243       (inputs
14244        `(("youtube-dl" ,youtube-dl)))
14245       (arguments
14246        `(#:phases
14247          (modify-phases %standard-phases
14248            (add-after 'unpack 'configure
14249              (lambda* (#:key inputs #:allow-other-keys)
14250                (let ((youtube-dl (assoc-ref inputs "youtube-dl")))
14251                  ;; .el is read-only in git.
14252                  (chmod "youtube-dl.el" #o644)
14253                  ;; Specify the absolute file names of the various
14254                  ;; programs so that everything works out-of-the-box.
14255                  (emacs-substitute-variables
14256                      "youtube-dl.el"
14257                    ("youtube-dl-program"
14258                     (string-append youtube-dl "/bin/youtube-dl")))))))))
14259       (home-page "https://github.com/skeeto/youtube-dl-emacs/")
14260       (synopsis "Emacs youtube-dl download manager")
14261       (description "This package manages a video download queue for
14262 @command{youtube-dl}, which serves as the back end.  It manages a single
14263 @command{youtube-dl} subprocess, downloading one video at a time.  New videos
14264 can be queued at any time.")
14265       (license license:unlicense))))
14267 (define-public emacs-org-web-tools
14268   (package
14269     (name "emacs-org-web-tools")
14270     (version "1.0")
14271     (source
14272      (origin
14273        (method git-fetch)
14274        (uri (git-reference
14275              (url "https://github.com/alphapapa/org-web-tools")
14276              (commit version)))
14277        (file-name (git-file-name name version))
14278        (sha256
14279         (base32
14280          "0kak9h5ny00d39gnwspv53nadnag01brw2fq9zk5wpfc91h9bjng"))))
14281     (build-system emacs-build-system)
14282     (propagated-inputs
14283      `(("emacs-dash" ,emacs-dash)
14284        ("emacs-esxml" ,emacs-esxml)
14285        ("emacs-s" ,emacs-s)))
14286     (inputs
14287      `(("pandoc" ,ghc-pandoc)))
14288     (arguments
14289      `(#:phases
14290        (modify-phases %standard-phases
14291          (add-after 'unpack 'patch-exec-paths
14292            (lambda* (#:key inputs #:allow-other-keys)
14293              (let ((pandoc (assoc-ref inputs "pandoc")))
14294                (substitute* "org-web-tools.el"
14295                  (("\"pandoc\"") (string-append "\"" pandoc "/bin/pandoc\"")))
14296                #t))))))
14297     (home-page "https://github.com/alphapapa/org-web-tools")
14298     (synopsis "Display/Process web page as Org-mode content")
14299     (description "This package contains library functions and commands useful
14300 for retrieving web page content and processing it into Org-mode content.
14302 For example, you can copy a URL to the clipboard or kill-ring, then run a
14303 command that downloads the page, isolates the “readable” content with
14304 @command{eww-readable}, converts it to Org-mode content with Pandoc, and
14305 displays it in an Org-mode buffer.  Another command does all of that but
14306 inserts it as an Org entry instead of displaying it in a new buffer.")
14307     (license license:gpl3+)))
14309 (define-public emacs-blimp
14310   (let ((commit "e420763d6d18b5d1be552cdbc47f91418343db03"))
14311     (package
14312       (name "emacs-blimp")
14313       (version (git-version "0.0.0" "1" commit))
14314       (source
14315        (origin
14316          (method git-fetch)
14317          (uri (git-reference
14318                (url "https://github.com/walseb/blimp")
14319                (commit commit)))
14320          (file-name (git-file-name name version))
14321          (sha256
14322           (base32
14323            "09wmhpym516b81dfq8smdmysh1fn610dzlyvyl2rkx8600f0fizd"))))
14324       (build-system emacs-build-system)
14325       (propagated-inputs
14326        `(("emacs-eimp" ,emacs-eimp)))
14327       (home-page "https://github.com/walseb/blimp")
14328       (synopsis "Emacs wrapper around all Imagemagick commands")
14329       (description "Blimp (Bustling Image Manipulation Package) is a complete
14330 wrapper around all Imagemagick commands with descriptions, autocompletion (for
14331 some commands) and hints displayed in prompt using @command{eimp.el} to
14332 execute its commands and resize images.")
14333       (license license:gpl3+))))
14335 (define-public emacs-synosaurus
14336   (let ((commit "8bf95b935976ec0a1964cf175ed57cc5f6f93bdb"))
14337     (package
14338       (name "emacs-synosaurus")
14339       (version (git-version "0.1.0" "1" commit))
14340       (source
14341        (origin
14342          (method git-fetch)
14343          (uri (git-reference
14344                (url "https://github.com/hpdeifel/synosaurus")
14345                (commit commit)))
14346          (file-name (git-file-name name version))
14347          (sha256
14348           (base32
14349            "15by9jccab6kyplxa6k0glzaivxkqdigl33gl2qi2cvy6f2q7gva"))))
14350       (build-system emacs-build-system)
14351       (propagated-inputs
14352        `(("wordnet" ,wordnet)))
14353       (arguments
14354        `(#:phases
14355          (modify-phases %standard-phases
14356            (add-after 'unpack 'configure
14357              (lambda* (#:key inputs outputs #:allow-other-keys)
14358                (let ((wn (assoc-ref inputs "wordnet")))
14359                  ;; .el is read-only in git.
14360                  (chmod "synosaurus-wordnet.el" #o644)
14361                  ;; Specify the absolute file names of the various
14362                  ;; programs so that everything works out-of-the-box.
14363                  (emacs-substitute-variables
14364                      "synosaurus-wordnet.el"
14365                    ("wordnet-command"
14366                     (string-append wn "/bin/wn")))))))))
14367       (home-page "https://github.com/hpdeifel/synosaurus")
14368       (synopsis "Extensible thesaurus mode for Emacs")
14369       (description "Synosaurus is a thesaurus fontend for Emacs with pluggable
14370 backends, including the @command{wordnet} offline backend.")
14371       (license license:gpl3+))))
14373 (define-public emacs-editorconfig
14374   (package
14375     (name "emacs-editorconfig")
14376     (version "0.8.0")
14377     (source
14378      (origin
14379        (method git-fetch)
14380        (uri (git-reference
14381              (url "https://github.com/editorconfig/editorconfig-emacs")
14382              (commit (string-append "v" version))))
14383        (file-name (git-file-name name version))
14384        (sha256
14385         (base32
14386          "1b2cpqz75pivl323bs60j5rszwi787x6vy68csycikqz9mhpmjn9"))))
14387     (build-system emacs-build-system)
14388     (home-page "https://github.com/editorconfig/editorconfig-emacs")
14389     (synopsis "Define and maintain consistent coding styles between different
14390 editors and IDEs")
14391     (description "The EditorConfig project consists of a file format for
14392 defining coding styles and a collection of text editor plugins that enable
14393 editors to read the file format and adhere to defined styles.  EditorConfig
14394 files are easily readable and they work nicely with version control systems.")
14395     (license license:gpl3+)))
14397 (define-public emacs-all-the-icons
14398   (package
14399     (name "emacs-all-the-icons")
14400     (version "3.2.0")
14401     (source
14402      (origin
14403        (method git-fetch)
14404        (uri (git-reference
14405              (url "https://github.com/domtronn/all-the-icons.el.git")
14406              (commit version)))
14407        (file-name (git-file-name name version))
14408        (sha256
14409         (base32
14410          "1sdl33117lccznj38021lwcdnpi9nxmym295q6y460y4dm4lx0jn"))))
14411     (build-system emacs-build-system)
14412     (arguments
14413      `(#:include '("\\.el$" "^data/" "^fonts/")
14414        ;; Compiling "test/" fails with "Symbol’s value as variable is void:
14415        ;; all-the-icons--root-code".  Ignoring tests.
14416        #:exclude '("^test/")
14417        #:tests? #f))
14418     (propagated-inputs
14419      `(("f" ,emacs-f)
14420        ("memoize" ,emacs-memoize)))
14421     (home-page "https://github.com/domtronn/all-the-icons.el")
14422     (synopsis "Collect icon fonts and propertize them within Emacs")
14423     (description "All-the-icons is a utility package to collect various icon
14424 fonts and propertize them within Emacs.  Icon fonts allow you to propertize
14425 and format icons the same way you would normal text.  This enables things such
14426 as better scaling of and anti aliasing of the icons.")
14427     ;; Package is released under Expat license.  Elisp files are licensed
14428     ;; under GPL3+.  Fonts come with various licenses: Expat for
14429     ;; "all-the-icons.ttf" and "file-icons.ttf", Apache License 2.0 for
14430     ;; "material-design-icons.ttf", and SIL OFL 1.1 for "fontawesome.ttf",
14431     ;; "ocitcons.ttf" and "weathericons.ttf".
14432     (license
14433      (list license:expat license:gpl3+ license:silofl1.1 license:asl2.0))))
14435 (define-public emacs-powerline
14436   (package
14437     (name "emacs-powerline")
14438     (version "2.4")
14439     (source
14440      (origin
14441        (method git-fetch)
14442        (uri (git-reference
14443              (url "https://github.com/milkypostman/powerline.git")
14444              (commit version)))
14445        (file-name (git-file-name name version))
14446        (sha256
14447         (base32
14448          "1hp3xp18943n0rlggz55150020ivw8gvi1vyxkr4z8xhpwq4gaar"))))
14449     (build-system emacs-build-system)
14450     (home-page "https://github.com/milkypostman/powerline/")
14451     (synopsis "Mode-line plugin for Emacs")
14452     (description "Powerline is a utility plugin which allows you to create
14453 a better-looking, more functional Emacs mode-line.  A collection of predefined
14454 themes comes with the package.")
14455     (license license:gpl3+)))
14457 (define-public emacs-spaceline
14458   (package
14459     (name "emacs-spaceline")
14460     (version "2.0.1")
14461     (source
14462      (origin
14463        (method git-fetch)
14464        (uri (git-reference
14465              (url "https://github.com/TheBB/spaceline.git")
14466              (commit (string-append "v" version))))
14467        (file-name (git-file-name name version))
14468        (sha256
14469         (base32
14470          "1q8r95zfrh0vxna5ml2pq9b9f66clfqcl4d2qy2aizkvzyxg6skl"))))
14471     (build-system emacs-build-system)
14472     (propagated-inputs
14473      `(("dash" ,emacs-dash)
14474        ("powerline" ,emacs-powerline)
14475        ("s" ,emacs-s)))
14476     (home-page "https://github.com/TheBB/spaceline")
14477     (synopsis "Powerline theme from Spacemacs")
14478     (description "Spaceline provides Spacemacs' mode-line theme.
14479 This package provides features for three kinds of users.
14481 @itemize
14482 @item You just want to use the Spacemacs mode-line theme and forget about it.
14483 @item You want to use something similar to the Spacemacs mode-line theme, but
14484 with a handful of easy tweaks.
14485 @item You want an easy-to-use library for building your own mode-line from
14486 scratch, and you think the Spacemacs theme looks good.
14487 @end itemize")
14488     (license license:gpl3+)))
14490 (define-public emacs-column-marker
14491   (package
14492     (name "emacs-column-marker")
14493     (version "9")
14494     (source
14495      (origin
14496        (method url-fetch)
14497        (uri "https://www.emacswiki.org/emacs/download/column-marker.el")
14498        (sha256 (base32 "05bv198zhqw5hqq6cr11mhz02dpca74hhp1ycwq369m0yb2naxy9"))))
14499     (build-system emacs-build-system)
14500     (home-page "https://www.emacswiki.org/emacs/ColumnMarker")
14501     (synopsis "Emacs mode for highlighting columns")
14502     (description
14503      "With @code{column-marker.el} you can highlight any number of text columns.
14504 Three such highlight column markers are provided by default.  This is
14505 especially useful for languages like COBOL or Fortran where certain columns
14506 have special meaning.  It is also handy for aligning text across long vertical
14507 distances.  Multi-column characters, such as @kbd{TAB} are treated
14508 correctly.")
14509     (license license:gpl2+)))
14511 (define-public emacs-slime-repl-ansi-color
14512   (let ((commit "ad03263f5d4de473bc173b64a6fc3dc1106393d7"))
14513     (package
14514       (name "emacs-slime-repl-ansi-color")
14515       (version (git-version "0.0.0" "1" commit))
14516       (source (origin
14517                 (method git-fetch)
14518                 (uri (git-reference
14519                       (url "https://github.com/deadtrickster/slime-repl-ansi-color")
14520                       (commit commit)))
14521                 (file-name (git-file-name name version))
14522                 (sha256
14523                  (base32
14524                   "0bpg7gxz310x7bnlg324c507sxc5gxwwz6h64h6kdq141r73vbi4"))))
14525       (build-system emacs-build-system)
14526       (home-page "https://github.com/deadtrickster/slime-repl-ansi-color")
14527       (synopsis "Color ANSI codes in the REPL of SLIME")
14528       (description "Color ANSI codes in the REPL of SLIME")
14529       (license license:gpl2+))))
14531 (define-public emacs-helm-slime
14532   (package
14533     (name "emacs-helm-slime")
14534     (version "0.3.0")
14535     (source (origin
14536               (method git-fetch)
14537               (uri (git-reference
14538                     (url "https://github.com/emacs-helm/helm-slime")
14539                     (commit version)))
14540               (file-name (git-file-name name version))
14541               (sha256
14542                (base32
14543                 "1qhb9446rpj17pm0hi3miy5gs5k3ld43bq29kzy0y26bf7ivfcjv"))))
14544     (build-system emacs-build-system)
14545     (propagated-inputs
14546      `(("emacs-helm" ,emacs-helm)
14547        ("emacs-slime" ,emacs-slime)))
14548     (home-page "https://github.com/emacs-helm/helm-slime")
14549     (synopsis "Helm for SLIME, the Superior Lisp Interaction Mode for Emacs")
14550     (description "Helm-SLIME defines a few new commands:
14552 @itemize
14553 @item helm-slime-complete: Select a symbol from the SLIME completion systems.
14554 @item helm-slime-list-connections: Yet another slime-list-connections with Helm.
14555 @item: helm-slime-apropos: Yet another slime-apropos with Helm.
14556 @item helm-slime-repl-history: Select an input from the SLIME REPL history and insert it.
14557 @end itemize\n")
14558     (license license:gpl3+)))
14560 (define-public emacs-gtk-look
14561   (package
14562     (name "emacs-gtk-look")
14563     (version "29")
14564     (source (origin
14565               (method url-fetch)
14566               (uri "https://download.tuxfamily.org/user42/gtk-look.el")
14567               (sha256
14568                (base32
14569                 "14p2nwrd51cr1v06fxbjjn6jdrkf9d6vcxhmscm0kl677s25ypsp"))))
14570     (build-system emacs-build-system)
14571     (arguments
14572      `(#:phases
14573        (modify-phases %standard-phases
14574          (add-after 'unpack 'configure
14575            (lambda _
14576              ;; File is read-only.
14577              (chmod "gtk-look.el" #o644)
14578              (emacs-substitute-variables "gtk-look.el"
14579                ("gtk-lookup-devhelp-indices"
14580                 '(list (expand-file-name "~/.guix-profile/share/gtk-doc/html/*/*.devhelp*"))))
14581              #t)))))
14582     (home-page "http://user42.tuxfamily.org/gtk-look/index.html")
14583     (synopsis "Find and display HTML documentation for GTK, GNOME and Glib")
14584     (description "@command{gtk-look} finds and displays HTML documentation for
14585 GTK, GNOME and Glib functions and variables in Emacs, similar to what
14586 info-lookup-symbol does for info files (C-h S).  The documentation is expected
14587 to be devhelp indexes with HTML files.  The location of the indexes can be
14588 customized.  In addition to C code development @command{gtk-look} is good for
14590 @itemize
14591 @item @command{perl-gtk2}, recognising class funcs like
14592 @command{Gtk2::Label->new} and bare method names like @command{set_text}.
14593 @item @command{guile-gnome}, recognising methods like @command{set-text} and
14594 classes like @command{<gtk-window>}.
14595 @end itemize\n")
14596     (license license:gpl3+)))
14598 (define-public emacs-ov
14599   (package
14600     (name "emacs-ov")
14601     (version "1.0.6")
14602     (source (origin
14603               (method git-fetch)
14604               (uri (git-reference
14605                     (url "https://github.com/ShingoFukuyama/ov.el.git")
14606                     (commit version)))
14607               (file-name (git-file-name name version))
14608               (sha256
14609                (base32
14610                 "0qxk2rf84j86syxi8xknsq252irwg7sz396v3bb4wqz4prpj0kzc"))))
14611     (build-system emacs-build-system)
14612     (home-page "https://github.com/ShingoFukuyama/ov.el")
14613     (synopsis "Overlay library for Emacs Lisp")
14614     (description "@code{ov.el} provides a simple way to manipulate overlays in
14615 Emacs.")
14616     (license license:gpl3+)))
14618 (define-public emacs-matrix-client
14619   (let ((commit "a0623667b07a4bf60980c97b078e9faed97ace79"))
14620     (package
14621       (name "emacs-matrix-client")
14622       (version (git-version "0.0.0" "4" commit))
14623       (source (origin
14624                 (method git-fetch)
14625                 (uri (git-reference
14626                       (url "https://github.com/jgkamat/matrix-client-el.git")
14627                       (commit commit)))
14628                 (file-name (git-file-name name version))
14629                 (sha256
14630                  (base32
14631                   "1zya8id3y9wzjaj7nplq7br6nhm3lsskv0fkn1xr1y77fzcfgcdb"))))
14632       (build-system emacs-build-system)
14633       (arguments
14634        `(#:phases
14635          (modify-phases %standard-phases
14636            (add-after 'unpack 'add-missing-require
14637              ;; Fix a filter error at runtime due to a missing require.
14638              ;; Reported upstream:
14639              ;; <https://github.com/alphapapa/matrix-client.el/issues/76>
14640              (lambda _
14641                (substitute* "matrix-client-room.el"
14642                  (("\\(require 'dash-functional\\)" all)
14643                   (string-append all "\n" "(require 'anaphora)")))
14644                #t)))))
14645       (propagated-inputs
14646        `(("a" ,emacs-a)
14647          ("anaphora" ,emacs-anaphora)
14648          ("dash" ,emacs-dash)
14649          ("esxml" ,emacs-esxml)
14650          ("f" ,emacs-f)
14651          ("frame-purpose" ,emacs-frame-purpose)
14652          ("ht" ,emacs-ht)
14653          ("ov" ,emacs-ov)
14654          ("rainbow-identifiers" ,emacs-rainbow-identifiers)
14655          ("request" ,emacs-request)
14656          ("s" ,emacs-s)
14657          ("tracking" ,emacs-tracking)))
14658       (home-page "https://github.com/jgkamat/matrix-client-el")
14659       (synopsis "Matrix client for Emacs")
14660       (description "@code{matrix-client} is a simple chat UI to Matrix.org
14661 rooms.  It also provides an API which allows Emacs to seamlessly create
14662 RPC channels with users and other software.")
14663       (license license:gpl3+))))
14665 (define-public emacs-sesman
14666   (package
14667     (name "emacs-sesman")
14668     (version "0.3.3")
14669     (source
14670      (origin
14671        (method git-fetch)
14672        (uri (git-reference
14673              (url "https://github.com/vspinu/sesman.git")
14674              (commit (string-append "v" version))))
14675        (file-name (git-file-name name version))
14676        (sha256
14677         (base32
14678          "0r32f8ma9ddczxrrdz0nadp14j3zmk10q1ch02gb82synkx3xdra"))))
14679     (build-system emacs-build-system)
14680     (arguments
14681      `(#:tests? #t
14682        #:test-command '("make" "test")))
14683     (home-page "https://github.com/vspinu/sesman")
14684     (synopsis "Session manager for Emacs based IDEs")
14685     (description "Sesman provides facilities for session management and
14686 interactive session association with the current contexts (project, directory,
14687 buffers).  While sesman can be used to manage arbitrary sessions, it primary
14688 targets the Emacs based IDEs (CIDER, ESS, Geiser, Robe, SLIME etc.)")
14689     (license license:gpl3+)))
14691 (define-public emacs-buttercup
14692   (package
14693     (name "emacs-buttercup")
14694     (version "1.16")
14695     (source
14696      (origin
14697        (method git-fetch)
14698        (uri (git-reference
14699              (url "https://github.com/jorgenschaefer/emacs-buttercup.git")
14700              (commit (string-append "v" version))))
14701        (file-name (git-file-name name version))
14702        (sha256
14703         (base32
14704          "0dckgcyzsav6ld78bcyrrygy1cz1jvqgav6vy8f6klpmk3r8xrl1"))))
14705     (build-system emacs-build-system)
14706     (arguments
14707      `(#:tests? #t
14708        #:test-command '("make" "test")
14709        #:phases
14710        (modify-phases %standard-phases
14711          (add-after 'install 'install-bin
14712            (lambda* (#:key outputs #:allow-other-keys)
14713              (install-file "bin/buttercup"
14714                            (string-append (assoc-ref outputs "out") "/bin"))
14715              #t)))))
14716     (home-page "https://github.com/jorgenschaefer/emacs-buttercup")
14717     (synopsis "Behavior driven emacs lisp testing framework")
14718     (description "Buttercup is a behavior-driven development framework for
14719 testing Emacs Lisp code.  It allows to group related tests so they can share
14720 common set-up and tear-down code, and allows the programmer to \"spy\" on
14721 functions to ensure they are called with the right arguments during testing.")
14722     (license license:gpl3+)))
14724 (define-public emacs-wordnut
14725   (let ((commit "feac531404041855312c1a046bde7ea18c674915")
14726         (revision "0"))
14727     (package
14728       (name "emacs-wordnut")
14729       (version (git-version "0.1" revision commit))
14730       (home-page "https://github.com/gromnitsky/wordnut")
14731       (source (origin
14732                 (method git-fetch)
14733                 (uri (git-reference (url home-page) (commit commit)))
14734                 (sha256
14735                  (base32
14736                   "1jl0b6g64a9w0q7bfvwha67vgws5xd15b7mkfyb5gkz3pymqhfxn"))
14737                 (patches
14738                  (search-patches "emacs-wordnut-require-adaptive-wrap.patch"))
14739                 (file-name (git-file-name name version))))
14740       (build-system emacs-build-system)
14741       (propagated-inputs
14742        `(("wordnet" ,wordnet)
14743          ("emacs-adaptive-wrap" ,emacs-adaptive-wrap)))
14744       (synopsis "Major mode for WordNet")
14745       (description "This Emacs package provides an interface for
14746 @code{wordnet}.  Features include completion, if the query is not found
14747 too ambiguous and navigation in the result buffer.")
14748       (license license:gpl3+))))
14750 (define-public emacs-frame-purpose
14751   (package
14752     (name "emacs-frame-purpose")
14753     (version "1.0")
14754     (source (origin
14755               (method git-fetch)
14756               (uri (git-reference
14757                     (url "https://github.com/alphapapa/frame-purpose.el.git")
14758                     (commit version)))
14759               (sha256
14760                (base32
14761                 "0jq2aam1yvccw887ighd1wm2xkvk5bv53ffiz3crcl16a255aj4q"))
14762               (file-name (git-file-name name version))))
14763     (build-system emacs-build-system)
14764     (inputs
14765      `(("dash" ,emacs-dash)))
14766     (synopsis "Purpose-specific frames for Emacs")
14767     (description "@code{frame-purpose} makes it easy to open purpose-specific
14768 frames that only show certain buffers, e.g. by buffers’ major mode, their
14769 filename or directory, etc, with custom frame/X-window titles, icons, and
14770 other frame parameters.")
14771     (home-page "https://github.com/alphapapa/frame-purpose.el")
14772     (license license:gpl3+)))
14774 (define-public emacs-arduino-mode
14775   (let ((commit "3e2bad4569ad26e929e6db2cbcff0d6d36812698")) ;no release yet
14776     (package
14777       (name "emacs-arduino-mode")
14778       (version (git-version "0" "0" commit))
14779       (source (origin
14780                 (method git-fetch)
14781                 (uri (git-reference
14782                       (url "https://github.com/bookest/arduino-mode.git")
14783                       (commit commit)))
14784                 (sha256
14785                  (base32
14786                   "1yvaqjc9hadbnnay5fprnh890xsp53kidad1zpb4a5z4a5z61n3c"))
14787                 (file-name (git-file-name name version))))
14788       (build-system emacs-build-system)
14789       (synopsis "Emacs major mode for editing Arduino sketches")
14790       (description "Emacs major mode for editing Arduino sketches.")
14791       (home-page "https://github.com/bookest/arduino-mode")
14792       (license license:gpl3+))))
14794 (define-public emacs-general
14795   (let ((commit "675050199b5a30d54a24b58a367db32c0bdc47f5"))
14796     (package
14797       (name "emacs-general")
14798       (version (git-version "0" "0" commit))
14799       (home-page "https://github.com/noctuid/general.el")
14800       (source (origin
14801                 (method git-fetch)
14802                 (uri (git-reference
14803                       (url (string-append home-page ".git"))
14804                       (commit commit)))
14805                 (sha256
14806                  (base32
14807                   "175yyhzk57yk1sskxh3d2jzhrh2waiibbcfsll167qxr117yji5h"))
14808                 (file-name (git-file-name name version))))
14809       (build-system emacs-build-system)
14810       (synopsis "More convenient key definitions in emacs")
14811       (description "@code{general.el} provides a more convenient method for
14812 binding keys in emacs (for both evil and non-evil users).  Like
14813 @code{use-package}, which provides a convenient, unified interface for
14814 managing packages, @code{general.el} is intended to provide a convenient,
14815 unified interface for key definitions.  While this package does implement some
14816 completely new functionality (such as the ability to make vim-style
14817 keybindings under non-prefix keys with an optional timeout), its primary
14818 purpose is to build on existing functionality to make key definition more
14819 clear and concise.  @code{general-define-key} is user-extensible and supports
14820 defining multiple keys in multiple keymaps at once, implicitly wrapping key
14821 strings with (@code{kbd ...}), using named prefix key sequences (like the
14822 leader key in vim), and much more.")
14823       (license license:gpl3+))))
14825 (define-public emacs-tldr
14826   (let ((commit "398b197c8d2238628b07e1b32d0f373876279f4c"))
14827     (package
14828       (name "emacs-tldr")
14829       (version (git-version "0" "0" commit))
14830       (home-page "https://github.com/kuanyui/tldr.el")
14831       (source (origin
14832                 (method git-fetch)
14833                 (uri (git-reference
14834                       (url (string-append home-page ".git"))
14835                       (commit commit)))
14836                 (sha256
14837                  (base32
14838                   "0iq7qlis6c6r2qkdpncrhh5vsihkhvy5x4y1y8cjb7zxkh62w33f"))
14839                 (file-name (git-file-name name version))))
14840       (build-system emacs-build-system)
14841       (synopsis "Simplified and community-driven man pages for Emacs")
14842       (description "@code{emacs-tldr} allows the user to access tldr pages
14843 from within emacs.  The @code{tldr} pages are a community effort to simplify
14844 the man pages with practical examples.")
14845       (license license:wtfpl2))))
14847 (define-public emacs-window-layout
14848   (package
14849     (name "emacs-window-layout")
14850     (version "1.4")
14851     (home-page "https://github.com/kiwanami/emacs-window-layout")
14852     (source (origin
14853               (method git-fetch)
14854               (uri (git-reference
14855                     (url home-page)
14856                     (commit (string-append "v" version))))
14857               (sha256
14858                (base32
14859                 "0wgqi8r844lbx52fn6az8c1n8m681rp6dkfzd54wmdk1ka7zmvv6"))
14860               (file-name (git-file-name name version))))
14861     (build-system emacs-build-system)
14862     (synopsis "Simple window layout management framework for emacs")
14863     (description "A window-layout management library that can split a frame
14864 or a window into some windows according to a layout recipe.")
14865     (license license:gpl3+)))
14867 (define-public emacs-e2wm
14868   (package
14869       (name "emacs-e2wm")
14870       (version "1.4")
14871       (home-page "https://github.com/kiwanami/emacs-window-manager")
14872       (source (origin
14873                 (method git-fetch)
14874                 (uri (git-reference
14875                       (url home-page)
14876                       (commit (string-append "v" version))))
14877                 (sha256
14878                  (base32
14879                   "12midsrx07pdrsr1qbl2rpi7xyhxqx08bkz7n7gf8vsmqkpfp56s"))
14880                 (file-name (git-file-name name version))))
14881       (build-system emacs-build-system)
14882       (propagated-inputs
14883        `(("emacs-window-layout" ,emacs-window-layout)))
14884       (synopsis "Equilibrium Emacs Window Manager")
14885       (description "E2WM is a window manager for Emacs.  It enables to
14886 customize the place of pop-up window, how the windows are split, how the
14887 buffers are located in the windows, keybinds to manipulate windows and
14888 buffers, etc.  It also has plug-ins to help your Emacs life.")
14889       (license license:gpl3+)))
14891 (define-public emacs-ctable
14892   (let ((commit "b8830d1ca95abb100a81bc32011bd17d5ecba000"))
14893     (package
14894       (name "emacs-ctable")
14895       (version (git-version "0.1.2" "1" commit))
14896       (home-page "https://github.com/kiwanami/emacs-ctable")
14897       (source (origin
14898                 (method git-fetch)
14899                 (uri (git-reference
14900                       (url home-page)
14901                       (commit commit)))
14902                 (sha256
14903                  (base32
14904                   "0pg303pnqscrsbx9579hc815angszsgf9vpd2z2f8p4f4ka6a00h"))
14905                 (file-name (git-file-name name version))))
14906       (build-system emacs-build-system)
14907       (synopsis "Table component for Emacs Lisp")
14908       (description "This program is a table component for Emacs Lisp.  Other
14909 programs can use this table component for the application UI.")
14910       (license license:gpl3+))))
14912 (define-public emacs-epc
14913   (let ((commit "e1bfa5ca163273859336e3cc89b4b6460f7f8cda"))
14914     (package
14915       (name "emacs-epc")
14916       (version (git-version "0.1.1" "1" commit))
14917       (home-page "https://github.com/kiwanami/emacs-epc")
14918       (source (origin
14919                 (method git-fetch)
14920                 (uri (git-reference
14921                       (url home-page)
14922                       (commit commit)))
14923                 (sha256
14924                  (base32
14925                   "15nkrjgi64f829isfd6xrhl4zw8jirr8pkas7nisrbk1av868hx0"))
14926                 (file-name (git-file-name name version))))
14927       (build-system emacs-build-system)
14928       (propagated-inputs
14929        `(("emacs-deferred" ,emacs-deferred)
14930          ("emacs-ctable" ,emacs-ctable)))
14931       (synopsis "RPC stack for Emacs Lisp")
14932       (description "This program is an asynchronous RPC stack for Emacs.
14933 Using this RPC stack, Emacs can communicate with the peer process
14934 smoothly.  Because the protocol employs S-expression encoding and consists of
14935 asynchronous communications, the RPC response is fairly good.")
14936       (license license:gpl3+))))
14938 (define-public emacs-edbi
14939   (let ((commit "6f50aaf4bde75255221f2292c7a4ad3fa9d918c0"))
14940     (package
14941       (name "emacs-edbi")
14942       (version (git-version "0.1.3" "1" commit))
14943       (home-page "https://github.com/kiwanami/emacs-edbi")
14944       (source (origin
14945                 (method git-fetch)
14946                 (uri (git-reference
14947                       (url home-page)
14948                       (commit commit)))
14949                 (sha256
14950                  (base32
14951                   "0x0igyvdcm4863n7zndvcv6wgzwgn7324cbfjja6xd7r0k936zdy"))
14952                 (file-name (git-file-name name version))))
14953       (build-system emacs-build-system)
14954       (inputs
14955        `(("perl" ,perl)
14956          ("perl-rpc-epc-service" ,perl-rpc-epc-service)
14957          ("perl-dbi" ,perl-dbi)
14958          ;; TODO: Adding support for perl-dbd-mysql and others would
14959          ;; dramatically increase the closure size.  Make several packages?
14960          ("perl-dbd-sqlite" ,perl-dbd-sqlite)))
14961       (propagated-inputs
14962        `(("emacs-e2wm" ,emacs-e2wm)
14963          ("emacs-epc" ,emacs-epc)))
14964       (arguments
14965        `(#:include '("\\.el$" "\\.pl$")
14966          #:phases
14967          (modify-phases %standard-phases
14968            (add-after 'install 'patch-path
14969              (lambda* (#:key inputs outputs #:allow-other-keys)
14970                (let ((perl (assoc-ref inputs "perl"))
14971                      (dir (string-append  (assoc-ref outputs "out")
14972                                           "/share/emacs/site-lisp/guix.d/edbi-"
14973                                           ,version)))
14974                  (substitute* (string-append dir  "/edbi.el")
14975                    (("\"perl\"") (string-append "\"" perl "/bin/perl\"")))
14976                  (chmod (string-append dir "/edbi-bridge.pl") #o555)
14977                  (wrap-program (string-append dir "/edbi-bridge.pl")
14978                    `("PERL5LIB" ":" prefix (,(getenv "PERL5LIB"))))
14979                  #t))))))
14980       (synopsis "Database Interface for Emacs Lisp")
14981       (description "This program connects the database server through Perl's
14982 DBI, and provides DB-accessing API and the simple management UI.")
14983       (license license:gpl3+))))
14985 (define-public emacs-edbi-sqlite
14986   (let ((commit "52cb9ca1af7691b592f2cfd2f007847e7a4ccd5f"))
14987     (package
14988       (name "emacs-edbi-sqlite")
14989       (version (git-version "0.1.1" "1" commit))
14990       (home-page "https://github.com/proofit404/edbi-sqlite")
14991       (source (origin
14992                 (method git-fetch)
14993                 (uri (git-reference
14994                       (url home-page)
14995                       (commit commit)))
14996                 (sha256
14997                  (base32
14998                   "1vll81386fx90lq5sy4rlxcik6mvw7zx5cc51f0yaca9bkcckp51"))
14999                 (file-name (git-file-name name version))))
15000       (build-system emacs-build-system)
15001       (propagated-inputs
15002        `(("emacs-edbi" ,emacs-edbi)))
15003       (synopsis "Open SQLite files in Emacs")
15004       (description "This package is a convenience wrapper for @command{edbi}
15005 to open SQLite databases.")
15006       (license license:gpl3+))))
15008 (define-public emacs-nix-mode
15009   (package
15010     (name "emacs-nix-mode")
15011     (version "1.4.1")
15012     (source
15013      (origin
15014        (method git-fetch)
15015        (uri (git-reference
15016              (url "https://github.com/NixOS/nix-mode.git")
15017              (commit (string-append "v" version))))
15018        (file-name (git-file-name name version))
15019        (sha256
15020         (base32 "04xpgg9nba5m1bl7ci5l456whcb8nfhsbvgxyx89bp0zqgr005q7"))))
15021     (build-system emacs-build-system)
15022     (inputs
15023      `(("emacs-company" ,emacs-company)
15024        ("emacs-json-mode" ,emacs-json-mode)
15025        ("emacs-mmm-mode" ,emacs-mmm-mode)))
15026     (home-page "https://github.com/NixOS/nix-mode")
15027     (synopsis "Emacs major mode for editing Nix expressions")
15028     (description "@code{nixos-mode} provides an Emacs major mode for editing
15029 Nix expressions.  It supports syntax highlighting, indenting and refilling of
15030 comments.")
15031     (license license:lgpl2.1+)))
15033 (define-public emacs-simple-mpc
15034   ;; There have been no releases.
15035   (let ((commit "bee8520e81292b4c7353e45b193f9a13b482f5b2")
15036         (revision "1"))
15037     (package
15038       (name "emacs-simple-mpc")
15039       (version (git-version "0" revision commit))
15040       (source
15041        (origin
15042          (method git-fetch)
15043          (uri (git-reference
15044                (url "https://github.com/jorenvo/simple-mpc.git")
15045                (commit commit)))
15046          (file-name (git-file-name name version))
15047          (sha256
15048           (base32
15049            "1ja06pv007cmzjjgka95jlg31k7d29jrih1yxyblsxv85s9sg21q"))))
15050       (build-system emacs-build-system)
15051       (propagated-inputs `(("emacs-s" ,emacs-s)))
15052       (home-page "https://github.com/jorenvo/simple-mpc")
15053       (synopsis "Simple Emacs frontend to mpc")
15054       (description "This package provides an Emacs major mode which acts as a
15055 front end to mpc, a client for the @dfn{Music Player Daemon} (MPD).")
15056       (license license:gpl3+))))
15058 (define-public emacs-mkmcc-gnuplot-mode
15059   (package
15060     (name "emacs-mkmcc-gnuplot-mode")
15061     (version "1.2.0")
15062     (source
15063      (origin
15064        (method git-fetch)
15065        (uri (git-reference
15066              (url "https://github.com/mkmcc/gnuplot-mode")
15067              (commit "601f6392986f0cba332c87678d31ae0d0a496ce7")))
15068        (file-name (git-file-name name version))
15069        (sha256
15070         (base32
15071          "14f0yh1rjqc3337j4sbqzfb7pjim2c8a7wk1a73xkrdkmjn82vgb"))))
15072     (build-system emacs-build-system)
15073     (home-page "https://mkmcc.github.io/software/gnuplot-mode.html")
15074     (synopsis "Minimal emacs major mode for editing gnuplot scripts")
15075     (description "@code{emacs-mkmcc-gnuplot-mode} is a minimal emacs major
15076 mode for editing gnuplot scripts.  It provides syntax highlighting,
15077 indentation and a command to plot the file.")
15078     (license license:gpl3+)))
15080 (define-public emacs-dtrt-indent
15081   (package
15082     (name "emacs-dtrt-indent")
15083     (version "0.8")
15084     (source (origin
15085               (method git-fetch)
15086               (uri (git-reference
15087                     (url "https://github.com/jscheid/dtrt-indent")
15088                     (commit version)))
15089               (file-name (git-file-name name version))
15090               (sha256
15091                (base32
15092                 "0pgf0pvqd8k4yzhdn2df9lp0y8hmlm2ccrh07jivwlccs95pcz7z"))))
15093     (build-system emacs-build-system)
15094     (home-page "https://github.com/jscheid/dtrt-indent")
15095     (synopsis "Minor mode that guesses the indentation offset")
15096     (description "This package provides a minor mode that guesses the
15097 indentation offset originally used for creating source code files and
15098 transparently adjusts the corresponding settings in Emacs, making it more
15099 convenient to edit foreign files.")
15100     (license license:gpl2+)))
15102 (define-public emacs-repo
15103   (package
15104     (name "emacs-repo")
15105     (version "0.1.3")
15106     (source (origin
15107               (method git-fetch)
15108               (uri (git-reference
15109                     (url "https://github.com/canatella/repo-el")
15110                     (commit version)))
15111               (file-name (git-file-name name version))
15112               (sha256
15113                (base32
15114                 "0rbvcvm7bfr6ncji7cllfxyyr6x7n9fx863byp243phsj3n93adz"))))
15115     (build-system emacs-build-system)
15116     (native-inputs
15117      `(("emacs-el-mock" ,emacs-el-mock)
15118        ("ert-runner" ,emacs-ert-runner)))
15119     (propagated-inputs
15120      `(("emacs-f" ,emacs-f)
15121        ("magit" ,emacs-magit)))
15122     (home-page "https://github.com/canatella/repo-el")
15123     (synopsis "Emacs interface for the Google Repo tool")
15124     (description "This package provides integration of the Google Repo tool
15125 with emacs.  It displays the output of the @code{repo status} command in a
15126 buffer and launches Magit from the status buffer for the project at point.")
15127     (license license:gpl3+)))
15129 (define-public emacs-alect-themes
15130   (package
15131     (name "emacs-alect-themes")
15132     (version "0.9")
15133     (source (origin
15134               (method git-fetch)
15135               (uri (git-reference
15136                     (url "https://github.com/alezost/alect-themes")
15137                     (commit (string-append "v" version))))
15138               (file-name (git-file-name name version))
15139               (sha256
15140                (base32
15141                 "0nffxpdm0sa7bynwi0rmlwpc4qmvbda5ankhzz7fmk4ap9fkjxv9"))))
15142     (build-system emacs-build-system)
15143     (home-page "https://github.com/alezost/alect-themes")
15144     (synopsis "Low contrast, light, dark and black color theme for Emacs")
15145     (description "@code{emacs-alect-themes} provides configurable light, dark
15146 and black color themes for Emacs.  The themes are intended to be used with
15147 GUI.")
15148     (license license:gpl3+)))
15150 (define-public emacs-google-c-style
15151   (let ((commit "6271f3f473ceb3a7fef99388a3040903b1a145f1")
15152         (revision "0"))
15153     (package
15154       (name "emacs-google-c-style")
15155       (version (git-version "0.1" revision commit))
15156       (source (origin
15157                 (method git-fetch)
15158                 (uri (git-reference
15159                       (url "https://github.com/google/styleguide")
15160                       (commit commit)))
15161                 (file-name (git-file-name name version))
15162                 (sha256
15163                  (base32
15164                   "1jghyyasdl15c4gaqaxmdn43am63k6bykn5ab83f1ahv9zi1krxk"))))
15165       (build-system emacs-build-system)
15166       (home-page "https://github.com/google/styleguide")
15167       (synopsis "Emacs settings file for Google C/C++ style")
15168       (description "@code{emacs-google-c-style} provides an Emacs settings
15169 file for Google C and C++ style.")
15170       (license license:gpl1+))))
15172 (define-public emacs-redshank
15173   (let ((commit "f98e68f532e622bcd464292ca4a9cf5fbea14ebb")
15174         (revision "1"))
15175     (package
15176       (name "emacs-redshank")
15177       (version (git-version "0.1" revision commit))
15178       (source (origin
15179                 (method git-fetch)
15180                 (uri (git-reference
15181                       (url "http://www.foldr.org/~michaelw/projects/redshank.git")
15182                       (commit commit)))
15183                 (file-name (git-file-name name version))
15184                 (sha256
15185                  (base32
15186                   "1jdkgvd5xy9hl5q611jwah2n05abjp7qcy9sj4k1z11x0ii62b6p"))))
15187       (build-system emacs-build-system)
15188       (propagated-inputs
15189        `(("emacs-paredit" ,emacs-paredit)))
15190       (home-page "http://www.foldr.org/~michaelw/emacs/redshank/")
15191       (synopsis "Common Lisp Editing Extensions (for Emacs)")
15192       (description "Redshank is a collection of code-wrangling Emacs macros
15193 mostly geared towards Common Lisp, but some are useful for other Lisp
15194 dialects, too.  Redshank's code transformations aim to be expression-based (as
15195 opposed to character-based).")
15196       (license license:gpl1+))))
15198 (define-public emacs-disk-usage
15199   (package
15200     (name "emacs-disk-usage")
15201     (version "1.3.3")
15202     (source
15203      (origin
15204        (method git-fetch)
15205        (uri (git-reference
15206              (url "https://gitlab.com/Ambrevar/emacs-disk-usage.git")
15207              (commit version)))
15208        (file-name (git-file-name name version))
15209        (sha256
15210         (base32
15211          "0hv2gsd8k5fbjgckgiyisq4rn1i7y4rchbjy8kmixjv6mx563bll"))))
15212     (build-system emacs-build-system)
15213     (home-page "https://gitlab.com/Ambrevar/emacs-disk-usage")
15214     (synopsis "Sort and browse disk usage listings with Emacs")
15215     (description "Disk Usage is a file system analyzer: it offers a tabulated
15216 view of file listings sorted by size.  Directory sizes are computed
15217 recursively.  The results are cached for speed.")
15218     (license license:gpl3+)))
15220 (define-public emacs-orgit
15221   (package
15222     (name "emacs-orgit")
15223     (version "1.5.3")
15224     (home-page "https://github.com/magit/orgit")
15225     (source (origin
15226               (method git-fetch)
15227               (uri (git-reference
15228                     (url home-page)
15229                     (commit (string-append "v" version))))
15230               (file-name (git-file-name name version))
15231               (sha256
15232                (base32
15233                 "1ywavzki510rslsgfm0cnn3mlh644p61ha2nfb715xhkg7cd3j9g"))))
15234     (build-system emacs-build-system)
15235     (propagated-inputs
15236      `(("emacs-dash" ,emacs-dash)
15237        ("emacs-magit" ,emacs-magit)))
15238     (synopsis "Support for Org links to Magit buffers")
15239     (description "This package defines several Org link types, which can be
15240 used to link to certain Magit buffers.  Use the command
15241 @command{org-store-link} while such a buffer is current to store a link.
15242 Later you can insert it into an Org buffer using the command
15243 @code{org-insert-link}.")
15244     (license license:gpl3+)))
15246 (define-public emacs-amx
15247   (package
15248     (name "emacs-amx")
15249     (version "3.2")
15250     (source (origin
15251               (method git-fetch)
15252               (uri (git-reference
15253                     (url "https://github.com/DarwinAwardWinner/amx")
15254                     (commit (string-append "v" version))))
15255               (file-name (git-file-name name version))
15256               (sha256
15257                (base32
15258                 "0bb8y1dmzyqkrb4mg6zndcsxppby3glridv2aap2pv05gv8kx7mj"))))
15259     (build-system emacs-build-system)
15260     (propagated-inputs `(("emacs-s" ,emacs-s)))
15261     (home-page "https://github.com/DarwinAwardWinner/amx")
15262     (synopsis "Alternative interface for M-x")
15263     (description "Amx is an alternative interface for M-x in Emacs.  It
15264 provides several enhancements over the ordinary
15265 @code{execute-extended-command}, such as prioritizing your most-used commands
15266 in the completion list and showing keyboard shortcuts, and it supports several
15267 completion systems for selecting commands, such as ido and ivy.")
15268     (license license:gpl3+)))
15270 (define-public emacs-lorem-ipsum
15271   (let ((commit "4b39f6fed455d67f635b3837cf5668bf74d0f6cd"))
15272     (package
15273       (name "emacs-lorem-ipsum")
15274       (version (git-version "0.2" "1" commit))
15275       (home-page "https://github.com/jschaf/emacs-lorem-ipsum/")
15276       (source (origin
15277                 (method git-fetch)
15278                 (uri (git-reference
15279                       (url home-page)
15280                       (commit commit)))
15281                 (file-name (git-file-name name version))
15282                 (sha256
15283                  (base32
15284                   "0a3b18p3vdjci89prsgdzjnfxsl8p67vjhf8ai4qdng7zvh50lir"))))
15285       (build-system emacs-build-system)
15286       (synopsis "Insert dummy pseudo Latin text in Emacs")
15287       (description "This package provides convenience functions to insert
15288 dummy Latin text into a buffer.  This can be useful if you need to produce
15289 paragraphs or pages of text for testing purposes.")
15290       (license license:gpl3+))))
15292 (define-public emacs-lisp-extra-font-lock
15293   (let ((commit "4605eccbe1a7fcbd3cacf5b71249435413b4db4f"))
15294     (package
15295       (name "emacs-lisp-extra-font-lock")
15296       (version (git-version "0.0.6" "1" commit))
15297       (home-page "https://github.com/Lindydancer/lisp-extra-font-lock")
15298       (source (origin
15299                 (method git-fetch)
15300                 (uri (git-reference
15301                       (url home-page)
15302                       (commit commit)))
15303                 (file-name (git-file-name name version))
15304                 (sha256
15305                  (base32
15306                   "152vcp3mdlv33jf5va4rinl1d0k960gnfhbrqqrafazgx9j3ya8w"))))
15307       (build-system emacs-build-system)
15308       (synopsis "Highlight bound variables and quoted expressions in Emacs")
15309       (description "This package highlight the location where local variables
15310 is created (bound, for example, by let) as well as quoted and backquoted
15311 constant expressions.")
15312       (license license:gpl3+))))
15314 (define-public emacs-docker-tramp
15315   (package
15316     (name "emacs-docker-tramp")
15317     (version "0.1")
15318     (source
15319      (origin
15320        (method git-fetch)
15321        (uri (git-reference
15322              (url "https://github.com/emacs-pe/docker-tramp.el")
15323              (commit (string-append "v" version))))
15324        (file-name (git-file-name name version))
15325        (sha256
15326         (base32
15327          "0lxvzmfg52fhxrhbvp92zwp7cv4i1rlxnkyyzgngj3sjm7y60yvg"))))
15328     (build-system emacs-build-system)
15329     (home-page "https://github.com/emacs-pe/docker-tramp.el")
15330     (synopsis "TRAMP integration for docker containers")
15331     (description
15332      "This package provides a TRAMP method for Docker containers.")
15333     (license license:gpl3+)))
15335 (define-public emacs-docker
15336   (package
15337     (name "emacs-docker")
15338     (version "1.2.0")
15339     (source (origin
15340               (method git-fetch)
15341               (uri (git-reference
15342                     (url "https://github.com/Silex/docker.el")
15343                     (commit version)))
15344               (file-name (git-file-name name version))
15345               (sha256
15346                (base32
15347                 "15kd86kaq1x6giz855q9w6zvnyc742j309j0pmm86rwx398g4rq1"))))
15348     (inputs
15349      `(("emacs-undercover" ,emacs-undercover)))
15350     (propagated-inputs
15351      `(("emacs-dash" ,emacs-dash)
15352        ("emacs-docker-tramp" ,emacs-docker-tramp)
15353        ("emacs-magit-popup" ,emacs-magit-popup)
15354        ("emacs-s" ,emacs-s)
15355        ("emacs-tablist" ,emacs-tablist)
15356        ("emacs-json-mode" ,emacs-json-mode)))
15357     (arguments
15358      `(#:phases
15359        (modify-phases %standard-phases
15360          (delete 'check)))) ;no tests
15361     (build-system emacs-build-system)
15362     (home-page "https://github.com/Silex/docker.el")
15363     (synopsis "Manage docker from Emacs")
15364     (description "This package provides an Emacs interface for Docker.")
15365     (license license:gpl3+)))
15367 (define-public emacs-dockerfile-mode
15368   ;; Latest upstream release is too old.
15369   (let ((commit "7223d92718f78fa3ab15667cdb2ed90cfeb579e7"))
15370     (package
15371       (name "emacs-dockerfile-mode")
15372       (version (git-version "1.2" "1" commit))
15373       (source
15374        (origin
15375          (method git-fetch)
15376          (uri (git-reference
15377                (url "https://github.com/spotify/dockerfile-mode.git")
15378                (commit commit)))
15379          (file-name (git-file-name name version))
15380          (sha256
15381           (base32
15382            "0hmipgl4rk6aih11i8mnspwdijjiwk2y0wns6lzs8bgkvy3c064r"))))
15383       (build-system emacs-build-system)
15384       (propagated-inputs
15385        `(("emacs-s" ,emacs-s)))
15386       (home-page "https://github.com/spotify/dockerfile-mode")
15387       (synopsis "Major mode for editing Dockerfile")
15388       (description
15389        "This package provides a major mode @code{dockerfile-mode} for use with
15390 the standard @code{Dockerfile} file format.")
15391       (license license:asl2.0))))
15393 (define-public emacs-lsp-mode
15394   (package
15395     (name "emacs-lsp-mode")
15396     (version "6.0")
15397     (source (origin
15398               (method git-fetch)
15399               (uri (git-reference
15400                     (url "https://github.com/emacs-lsp/lsp-mode.git")
15401                     (commit version)))
15402               (file-name (git-file-name name version))
15403               (sha256
15404                (base32
15405                 "1v1mq6ixzlgiazj8fmg4xaqhsqn3l89iqy74yndhvzh2rdf0pbkl"))))
15406     (build-system emacs-build-system)
15407     (propagated-inputs
15408      `(("emacs-dash" ,emacs-dash)
15409        ("emacs-f" ,emacs-f)
15410        ("emacs-ht" ,emacs-ht)
15411        ("emacs-spinner" ,emacs-spinner)))
15412     (home-page "https://github.com/emacs-lsp/lsp-mode")
15413     (synopsis "Emacs client and library for the Language Server Protocol")
15414     (description "@code{LSP-mode} is a client and library implementation for
15415 the Language Server Protocol.  This mode aims to provide an IDE-like
15416 experience by providing optional integration with other popular Emacs packages
15417 like @code{company}, @code{flycheck}, and @code{projectile}.")
15418     (license license:gpl3+)))
15420 (define-public emacs-lsp-ui
15421   (package
15422     (name "emacs-lsp-ui")
15423     (version "6.0")
15424     (source (origin
15425               (method git-fetch)
15426               (uri (git-reference
15427                     (url "https://github.com/emacs-lsp/lsp-ui.git")
15428                     (commit version)))
15429               (file-name (git-file-name name version))
15430               (sha256
15431                (base32
15432                 "1r4327fd8cvjxfwkddp5c4bdskyncbs4sx9m3z2w4d773y2jrakc"))))
15433     (build-system emacs-build-system)
15434     (propagated-inputs
15435      `(("emacs-dash" ,emacs-dash)
15436        ("emacs-lsp-mode" ,emacs-lsp-mode)
15437        ("emacs-markdown-mode" ,emacs-markdown-mode)
15438        ("emacs-flycheck" ,emacs-flycheck)))
15439     (home-page "https://github.com/emacs-lsp/lsp-ui")
15440     (synopsis "User interface extensions for @code{lsp-mode}")
15441     (description
15442      "@code{LSP-ui} contains several enhancements and integrations for
15443 @code{lsp-mode}, such as visual flychecking, displaying references in-line,
15444 and code peeking.")
15445     (license license:gpl3+)))
15447 (define-public emacs-helm-notmuch
15448   (package
15449     (name "emacs-helm-notmuch")
15450     (version "1.2")
15451     (home-page "https://github.com/emacs-helm/helm-notmuch/")
15452     (source (origin
15453               (method git-fetch)
15454               (uri (git-reference
15455                     (url home-page)
15456                     (commit version)))
15457               (file-name (git-file-name name version))
15458               (sha256
15459                (base32
15460                 "1k038dbdpaa411gl4071x19fklhnizhr346plxw23lsnxir9dhqc"))))
15461     (build-system emacs-build-system)
15462     (propagated-inputs
15463      `(("emacs-helm" ,emacs-helm)
15464        ("notmuch" ,notmuch)))
15465     (synopsis "Search emails with Emacs Notmuch and Helm")
15466     (description
15467      "This package can be used to search emails in Emacs, searching result
15468 displays as you type thanks to Helm, though @command{notmuch-search} does the
15469 real search.")
15470     (license license:gpl3+)))
15472 (define-public emacs-elmacro
15473   (let ((commit "89b9b0feabafd01fee48111d67131c4c9b5fed9a"))
15474     (package
15475       (name "emacs-elmacro")
15476       (version (git-version "1.1.0" "1" commit))
15477       (home-page "https://github.com/Silex/elmacro")
15478       (source (origin
15479                 (method git-fetch)
15480                 (uri (git-reference
15481                       (url home-page)
15482                       (commit commit)))
15483                 (file-name (git-file-name name version))
15484                 (sha256
15485                  (base32
15486                   "06wkzafh6vbcjf0m3sl253mgcq32p8cdv7vsfmyx51baa36938ha"))))
15487       (build-system emacs-build-system)
15488       (propagated-inputs
15489        `(("emacs-s" ,emacs-s)
15490          ("emacs-dash" ,emacs-dash)))
15491       (synopsis "Convert keyboard macros to Emacs Lisp")
15492       (description
15493        "This package displays keyboard macros or latest interactive commands
15494 as Emacs Lisp.")
15495       (license license:gpl3+))))
15497 (define-public emacs-transient
15498   ;; 0.1.0 depends on lv.el but not later versions.
15499   (let ((commit "7e45a57ec81185631fe763733f64c99021df2a06"))
15500     (package
15501       (name "emacs-transient")
15502       (version (git-version "0.1.0" "1" commit))
15503       (source (origin
15504                 (method git-fetch)
15505                 (uri (git-reference
15506                       (url "https://github.com/magit/transient")
15507                       (commit commit)))
15508                 (file-name (git-file-name name version))
15509                 (sha256
15510                  (base32
15511                   "0r6d4c1lga3bk0s7q7y4v4hbpxnd9h40cjxybqvax2z902931fz1"))))
15512       (build-system gnu-build-system)
15513       (native-inputs `(("texinfo" ,texinfo)
15514                        ("emacs" ,emacs-minimal)))
15515       (propagated-inputs
15516        `(("dash" ,emacs-dash)))
15517       (arguments
15518        `(#:modules ((guix build gnu-build-system)
15519                     (guix build utils)
15520                     (srfi srfi-26)
15521                     (guix build emacs-utils))
15522          #:imported-modules (,@%gnu-build-system-modules
15523                              (guix build emacs-utils))
15524          #:tests? #f                   ; tests are not included in the release
15525          #:make-flags (list "lisp" "info"
15526                             (string-append "LOAD_PATH=-L . -L "
15527                                            (assoc-ref %build-inputs "dash")
15528                                            "/share/emacs/site-lisp/guix.d/dash-"
15529                                            ,(package-version emacs-dash)))
15530          #:phases
15531          (modify-phases %standard-phases
15532            (delete 'configure)
15533            (replace 'install
15534              (lambda* (#:key inputs outputs #:allow-other-keys)
15535                (let* ((out (assoc-ref outputs "out"))
15536                       (lisp (string-append out "/share/emacs/site-lisp/guix.d/"
15537                                            "transient" "-" ,version))
15538                       (info (string-append out "/share/info")))
15539                  (for-each (cut install-file <> lisp)
15540                            (find-files "." "\\.elc*$"))
15541                  (install-file "docs/transient.info" (string-append info)))
15542                #t)))))
15543       (home-page "https://magit.vc/manual/transient")
15544       (synopsis "Transient commands in Emacs")
15545       (description
15546        "Taking inspiration from prefix keys and prefix arguments in Emacs,
15547 Transient implements a similar abstraction involving a prefix command, infix
15548 arguments and suffix commands.  We could call this abstraction a \"transient
15549 command\", but because it always involves at least two commands (a prefix and
15550 a suffix) we prefer to call it just a \"transient\".")
15551       (license license:gpl3+))))
15553 (define-public emacs-matcha
15554   (let ((commit "c7df5cf5cdac9ae369e241342389ccda0205eab9"))
15555     (package
15556       (name "emacs-matcha")
15557       (version (git-version "0.0.1" "1" commit)) ;no upstream release
15558       (source (origin
15559                 (method git-fetch)
15560                 (uri (git-reference
15561                       (url "https://github.com/jojojames/matcha.git")
15562                       (commit commit)))
15563                 (file-name (git-file-name name version))
15564                 (sha256
15565                  (base32
15566                   "1lfnh1glg6al677m7ci0x8g5wjdhjxlfl3nv1f1ppsw4dpnwsj9b"))))
15567       (propagated-inputs
15568        `(("emacs-hydra" ,emacs-hydra)
15569          ("emacs-transient" ,emacs-transient)))
15570       (build-system emacs-build-system)
15571       (home-page "https://github.com/jojojames/matcha/")
15572       (synopsis "Collection of hydras with a generic interface to launch them")
15573       (description "Matcha provides a collection of transients for various
15574 packages with a consistent way to use them.")
15575       (license license:gpl3+))))
15577 (define-public emacs-undo-propose-el
15578   (let ((commit "5f1fa99a04369a959aad01b476fe4f34229f28cd")
15579         (version "1.0.0")
15580         (revision "1"))
15581     (package
15582       (name "emacs-undo-propose-el")
15583       (version (git-version version revision commit))
15584       (source
15585        (origin
15586          (method git-fetch)
15587          (uri (git-reference
15588                (url "https://github.com/jackkamm/undo-propose-el")
15589                (commit commit)))
15590          (file-name (git-file-name name version))
15591          (sha256
15592           (base32
15593            "1p9h1fqmva07mcs46rqrg9vqn537b615as84s9b7xh76k1r8h1c0"))))
15594       (build-system emacs-build-system)
15595       (home-page "https://github.com/jackkamm/undo-propose-el")
15596       (synopsis "Simple and safe navigation of @code{undo} history")
15597       (description "This package permits navigation of @code{undo} history in a
15598 temporary buffer, which is read-only save for @code{undo} commands, and
15599 subsequent committal of a chain of @code{undo} commands as a single edit in
15600 the @code{undo} history.")
15601       (license license:gpl3+))))
15603 (define-public emacs-elisp-docstring-mode
15604   (let ((commit "f512e509dd690f65133e55563ebbfd2dede5034f")
15605         (version "0.0.1")
15606         (revision "1"))
15607     (package
15608       (name "emacs-elisp-docstring-mode")
15609       (version (git-version version revision commit))
15610       (source
15611        (origin
15612          (method git-fetch)
15613          (uri (git-reference
15614                (url "https://github.com/Fuco1/elisp-docstring-mode")
15615                (commit commit)))
15616          (file-name (git-file-name name version))
15617          (sha256
15618           (base32
15619            "0al8m75p359h4n82rf0dsl22qfdg9cwwywn5pn7x6gb96c7qrqaa"))))
15620       (build-system emacs-build-system)
15621       (home-page "https://github.com/Fuco1/elisp-docstring-mode")
15622       (synopsis "Major mode for editing Emacs Lisp docstrings")
15623       (description "This package provides font lock and automatic escaping and
15624 unescaping of quotes.")
15625       (license license:gpl3+))))
15627 (define-public emacs-vimrc-mode
15628   (let ((commit "13bc150a870d5d4a95f1111e4740e2b22813c30e")
15629         (version "0.3.1")
15630         (revision "1"))
15631     (package
15632       (name "emacs-vimrc-mode")
15633       (version (git-version version revision commit))
15634       (source
15635        (origin
15636          (method git-fetch)
15637          (uri (git-reference
15638                (url "https://github.com/mcandre/vimrc-mode")
15639                (commit commit)))
15640          (file-name (git-file-name name version))
15641          (sha256
15642           (base32
15643            "0026dqs3hwygk2k2xfra90w5sfnxrfj7l69jz7sq5glavbf340pk"))))
15644       (build-system emacs-build-system)
15645       (home-page "https://github.com/mcandre/vimrc-mode")
15646       (synopsis "Major mode for Vimscript")
15647       (description "This package provides font lock and @code{beginning-} and
15648 @code{end-of-defun} functions for Vimscript files.")
15649       (license license:gpl3+))))
15651 (define-public emacs-flycheck-haskell
15652   (let ((commit "32ddff87165a7d3a35e7318bee997b5b4bd41278")
15653         (version "0.8")
15654         (revision "79"))
15655     (package
15656       (name "emacs-flycheck-haskell")
15657       (version (git-version version revision commit))
15658       (source
15659        (origin
15660          (method git-fetch)
15661          (uri (git-reference
15662                (url "https://github.com/flycheck/flycheck-haskell")
15663                (commit commit)))
15664          (file-name (git-file-name name version))
15665          (sha256
15666           (base32
15667            "10pgsbagq6qj4mshq5sypv0q0khck92b30sc793b4g1pfpsxvgjn"))))
15668       (build-system emacs-build-system)
15669       (propagated-inputs
15670        `(("emacs-dash" ,emacs-dash)
15671          ("emacs-seq" ,emacs-seq)
15672          ("emacs-flycheck" ,emacs-flycheck)
15673          ("emacs-haskell-mode" ,emacs-haskell-mode)
15674          ("emacs-let-alist" ,emacs-let-alist)))
15675       (home-page "https://github.com/flycheck/flycheck-haskell")
15676       (synopsis "Flycheck for Haskell")
15677       (description "This package configures syntax-checking for Haskell
15678 buffers.")
15679       (license license:gpl3+))))
15681 (define-public emacs-js2-refactor-el
15682   (let ((commit "79124b3274c43ad1f9ec6205fa362576552db02f")
15683         (version "0.9.0")
15684         (revision "27"))
15685     (package
15686       (name "emacs-js2-refactor-el")
15687       (version (git-version version revision commit))
15688       (source
15689        (origin
15690          (method git-fetch)
15691          (uri (git-reference
15692                (url "https://github.com/magnars/js2-refactor.el")
15693                (commit commit)))
15694          (file-name (git-file-name name version))
15695          (sha256
15696           (base32
15697            "1wswhlpbd3airrhyncb9vblqigwnqg9n96z0iis8jnz37q2whica"))))
15698       (build-system emacs-build-system)
15699       (propagated-inputs
15700        `(("emacs-dash" ,emacs-dash)
15701          ("emacs-s" ,emacs-s)
15702          ("emacs-js2-mode" ,emacs-js2-mode)
15703          ("emacs-yasnippet" ,emacs-yasnippet)
15704          ("emacs-multiple-cursors" ,emacs-multiple-cursors)))
15705       (native-inputs
15706        `(("emacs-buttercup" ,emacs-buttercup)
15707          ("emacs-espuds" ,emacs-espuds)))
15708       (home-page "https://github.com/magnars/js2-refactor.el")
15709       (synopsis "JavaScript refactoring in Emacs")
15710       (description "This package provides various refactoring functions for
15711 JavaScript.")
15712       (license license:gpl3+))))
15714 (define-public emacs-prettier
15715   (let ((commit "e9b73e81d3e1642aec682195f127a42dfb0b5774")
15716         (version "0.1.0")
15717         (revision "1"))
15718     (package
15719       (name "emacs-prettier")
15720       (version (git-version version revision commit))
15721       (source
15722        (origin
15723          (method git-fetch)
15724          (uri (git-reference
15725                (url "https://github.com/prettier/prettier-emacs")
15726                (commit commit)))
15727          (file-name (git-file-name name version))
15728          (sha256
15729           (base32
15730            "0hj4fv3fgc60i6jrsx4a81s5c9fsxxafhhs3q2q1dypsscjci9ph"))))
15731       (build-system emacs-build-system)
15732       (home-page "https://github.com/prettier/prettier-emacs")
15733       (synopsis "Automatic formatting of JavaScript code")
15734       (description "This package integrates Prettier with Emacs, and
15735 provides a minor mode that autoformats the buffer upon saving.")
15736       (license license:expat))))
15738 (define-public emacs-fish-mode
15739   (package
15740     (name "emacs-fish-mode")
15741     (version "0.1.4")
15742     (source
15743      (origin
15744        (method git-fetch)
15745        (uri (git-reference
15746              (url "https://github.com/wwwjfy/emacs-fish")
15747              (commit version)))
15748        (file-name (git-file-name name version))
15749        (sha256
15750         (base32
15751          "0a74ghmjjrxfdhk4mvq6lar4w6l6lc4iilabs99smqr2fn5rsslq"))))
15752     (build-system emacs-build-system)
15753     (home-page "https://github.com/wwwjfy/emacs-fish")
15754     (synopsis "Major mode for Fish shell scripts")
15755     (description "This package provides syntax highlighting and indentation
15756 functions for Fish shell scripts.")
15757     (license license:gpl3+)))
15759 (define-public emacs-eshell-up
15760   (let ((commit "9c100bae5c3020e8d9307e4332d3b64e7dc28519")
15761         (version "0.0.3")
15762         (revision "12"))
15763     (package
15764       (name "emacs-eshell-up")
15765       (version (git-version version revision commit))
15766       (source
15767        (origin
15768          (method git-fetch)
15769          (uri (git-reference
15770                (url "https://github.com/peterwvj/eshell-up")
15771                (commit commit)))
15772          (file-name (git-file-name name version))
15773          (sha256
15774           (base32
15775            "00zdbcncjabgj5mp47l1chymx5na18v2g4kj730dgmj3rnl3iz2q"))))
15776       (build-system emacs-build-system)
15777       (home-page "https://github.com/peterwvj/eshell-up")
15778       (synopsis "Quickly go to a parent directory in @code{Eshell}")
15779       (description "This package provides quick navigation to a specific
15780 parent directory using @code{Eshell}.")
15781       (license license:gpl3+))))
15783 (define-public emacs-tco-el
15784   (let ((commit "482db5313f090b17ed22ccd856f0e141dc75afe6")
15785         (version "0.3")
15786         (revision "1"))
15787     (package
15788       (name "emacs-tco-el")
15789       (version (git-version version revision commit))
15790       (source
15791        (origin
15792          (method git-fetch)
15793          (uri (git-reference
15794                (url "https://github.com/Wilfred/tco.el")
15795                (commit commit)))
15796          (file-name (git-file-name name version))
15797          (sha256
15798           (base32
15799            "1z7xkbrqznk6ni687qqknp8labcyhl8y6576hjfri89fn21385y9"))))
15800       (build-system emacs-build-system)
15801       (propagated-inputs
15802        `(("emacs-dash" ,emacs-dash)))
15803       (home-page "https://github.com/Wilfred/tco.el")
15804       (synopsis "Tail-call optimization for Emacs Lisp")
15805       (description "This package provides tail-call optimization for Emacs
15806 Lisp functions that call themselves in tail position.")
15807       (license license:gpl3+))))
15809 (define-public emacs-equake
15810   (let ((commit "ed15fd55cd4f2276161a6f712ed0b83cd10a8cdc")
15811         (version "0.85")
15812         (revision "1"))
15813     (package
15814       (name "emacs-equake")
15815       (version (git-version version revision commit))
15816       (source
15817        (origin
15818          (method git-fetch)
15819          (uri (git-reference
15820                (url "https://gitlab.com/emacsomancer/equake/")
15821                (commit commit)))
15822          (file-name (git-file-name name version))
15823          (sha256
15824           (base32
15825            "04kj88rlnn22gwmmv2gly2ibi6jka6l2cd4979pi6lhlvqqgjdnj"))))
15826       (build-system emacs-build-system)
15827       (propagated-inputs
15828        `(("emacs-dash" ,emacs-dash)
15829          ("emacs-tco-el" ,emacs-tco-el)))
15830       (home-page "https://gitlab.com/emacsomancer/equake/")
15831       (synopsis "Drop-down console for @code{Eshell} and terminal emulators")
15832       (description "This package provides a Quake-style drop-down console
15833 compatible with Emacs' shell modes.")
15834       (license license:gpl3+))))
15836 (define-public emacs-vdiff
15837   (let ((commit "09e15fc932bfd2febe1d4a65780a532394562b07")
15838         (version "0.2.3")
15839         (revision "1"))
15840     (package
15841       (name "emacs-vdiff")
15842       (version (git-version version revision commit))
15843       (source
15844        (origin
15845          (method git-fetch)
15846          (uri (git-reference
15847                (url "https://github.com/justbur/emacs-vdiff/")
15848                (commit commit)))
15849          (file-name (git-file-name name version))
15850          (sha256
15851           (base32
15852            "1gvqi5l4zs872nn4pmj603aza09d81qad2rgijzv268lif8z34db"))))
15853       (build-system emacs-build-system)
15854       (propagated-inputs
15855        `(("emacs-hydra" ,emacs-hydra)))
15856       (home-page "https://github.com/justbur/emacs-vdiff/")
15857       (synopsis "Frontend for diffing based on vimdiff")
15858       (description "This package permits comparisons of two or three buffers
15859 based on diff output.")
15860       (license license:gpl3+))))
15862 (define-public emacs-vdiff-magit
15863   ;; Need to use a more recent commit than the latest release version because
15864   ;; of Magit and Transient
15865   (let ((commit "b100d126c69e5c26a61ae05aa1778bcc4302b597")
15866         (version "0.3.2")
15867         (revision "8"))
15868     (package
15869       (name "emacs-vdiff-magit")
15870       (version (git-version version revision commit))
15871       (source
15872        (origin
15873          (method git-fetch)
15874          (uri (git-reference
15875                (url "https://github.com/justbur/emacs-vdiff-magit/")
15876                (commit commit)))
15877          (file-name (git-file-name name version))
15878          (sha256
15879           (base32
15880            "16cjmrzflf2i1w01973sl944xrfanakba8sb4dpwi79d92xp03xy"))))
15881       (build-system emacs-build-system)
15882       (propagated-inputs
15883        `(("emacs-vdiff" ,emacs-vdiff)
15884          ("emacs-magit" ,emacs-magit)
15885          ("emacs-transient" ,emacs-transient)))
15886       (home-page "https://github.com/justbur/emacs-vdiff-magit/")
15887       (synopsis "Frontend for diffing based on vimdiff")
15888       (description "This package permits comparisons of two or three buffers
15889 based on diff output.")
15890       (license license:gpl3+))))
15892 (define-public emacs-all-the-icons-dired
15893   (let ((commit "980b7747d6c4a7992a1ec56afad908956db0a519")
15894         (version "1.0")
15895         (revision "1"))
15896     (package
15897       (name "emacs-all-the-icons-dired")
15898       (version (git-version version revision commit))
15899       (source
15900        (origin
15901          (method git-fetch)
15902          (uri (git-reference
15903                (url "https://github.com/jtbm37/all-the-icons-dired/")
15904                (commit commit)))
15905          (file-name (git-file-name name version))
15906          (sha256
15907           (base32
15908            "1pvbgyxfj4j205nj1r02045f1y4wgavdsk7f45hxkkhms1rj8jyy"))))
15909       (build-system emacs-build-system)
15910       (propagated-inputs
15911        `(("emacs-all-the-icons" ,emacs-all-the-icons)))
15912       (home-page "https://github.com/jtbm37/all-the-icons-dired/")
15913       (synopsis "Show icons for each file in @code{dired-mode}")
15914       (description "This package allows icons from @file{all-the-icons.el} to
15915 be used in @code{dired-mode}.")
15916       (license license:gpl3+))))
15918 (define-public emacs-exwm-edit
15919   (let ((commit "961c0f3ea45766b888c73d7353da13d329538034")
15920         (version "0.0.1")
15921         (revision "1"))
15922     (package
15923       (name "emacs-exwm-edit")
15924       (version (git-version version revision commit))
15925       (source
15926        (origin
15927          (method git-fetch)
15928          (uri (git-reference
15929                (url "https://github.com/agzam/exwm-edit/")
15930                (commit commit)))
15931          (file-name (git-file-name name version))
15932          (sha256
15933           (base32
15934            "087pk5ckx753qrn6xpka9khhlp7iqlz76w7861x90av2f5cgy6fw"))))
15935       (build-system emacs-build-system)
15936       (propagated-inputs
15937        `(("emacs-exwm" ,emacs-exwm)))
15938       (home-page "https://github.com/agzam/exwm-edit/")
15939       (synopsis "Open temp buffers for editing text from EXWM buffers")
15940       (description "This package facilitates editing text from EXWM buffers by
15941 generating a temp buffer in which any useful Emacs utilities and modes can be
15942 invoked.")
15943       (license license:gpl3+))))
15945 (define-public emacs-ert-async
15946   (package
15947     (name "emacs-ert-async")
15948     (version "0.1.2")
15949     (source
15950      (origin
15951        (method git-fetch)
15952        (uri (git-reference
15953              (url "https://github.com/rejeep/ert-async.el")
15954              (commit (string-append "v" version))))
15955        (file-name (git-file-name name version))
15956        (sha256
15957         (base32
15958          "0hn9i405nfhjd1h9vnwj43nxbbz00khrwkjq0acfyxjaz1shfac9"))))
15959     (build-system emacs-build-system)
15960     (home-page "https://github.com/rejeep/ert-async.el")
15961     (synopsis "Async support for ERT")
15962     (description "This package allows ERT to work with asynchronous tests.")
15963     (license license:gpl3+)))
15965 (define-public emacs-prodigy-el
15966   (let ((commit "701dccaa56de9e6a330c05bde33bce4f3b3d6a97")
15967         (version "0.7.0")
15968         (revision "28"))
15969     (package
15970       (name "emacs-prodigy-el")
15971       (version (git-version version revision commit))
15972       (source
15973        (origin
15974          (method git-fetch)
15975          (uri (git-reference
15976                (url "https://github.com/rejeep/prodigy.el")
15977                (commit commit)))
15978          (file-name (git-file-name name version))
15979          (sha256
15980           (base32
15981            "1vyvxawlayp2nra0q83146q2nzv8qwn5a4nj0sx1jc90a0a83vgj"))))
15982       (build-system emacs-build-system)
15983       (propagated-inputs
15984        `(("emacs-dash" ,emacs-dash)
15985          ("emacs-s" ,emacs-s)
15986          ("emacs-f" ,emacs-f)))
15987       (native-inputs
15988        `(("emacs-el-mock" ,emacs-el-mock)
15989          ("emacs-ert-async" ,emacs-ert-async)))
15990       (home-page "https://github.com/rejeep/prodigy.el")
15991       (synopsis "Manage external services from within Emacs")
15992       (description "This package provides a GUI for defining and monitoring services.")
15993       (license license:gpl3+))))
15995 (define-public emacs-web-server
15996   (let ((commit "cafa5b7582c57252a0884b2c33da9b18fb678713")
15997         (version "0.1.1")
15998         (revision "1"))
15999     (package
16000       (name "emacs-web-server")
16001       (version (git-version version revision commit))
16002       (source
16003        (origin
16004          (method git-fetch)
16005          (uri (git-reference
16006                (url "https://github.com/eschulte/emacs-web-server/")
16007                (commit commit)))
16008          (file-name (git-file-name name version))
16009          (sha256
16010           (base32
16011            "1c0lfqmbs5hvz3fh3c8wgp6ipwmxrwx9xj264bjpj3phixd5419y"))))
16012       (build-system emacs-build-system)
16013       (home-page "https://github.com/eschulte/emacs-web-server/")
16014       (synopsis "Web server with handlers in Emacs Lisp")
16015       (description "This package supports HTTP GET and POST requests with
16016 url-encoded parameters, as well as web sockets.")
16017       (license license:gpl3+))))
16019 (define-public emacs-markdown-preview-mode
16020   (package
16021     (name "emacs-markdown-preview-mode")
16022     (version "0.9.2")
16023     (source
16024      (origin
16025        (method git-fetch)
16026        (uri (git-reference
16027              (url "https://github.com/ancane/markdown-preview-mode")
16028              (commit (string-append "v" version))))
16029        (file-name (git-file-name name version))
16030        (sha256
16031         (base32
16032          "1d1id99gagymvzdfa1mwqh8y3szm8ii47rpijkfi1qnifjg5jaq9"))))
16033     (build-system emacs-build-system)
16034     (propagated-inputs
16035      `(("emacs-markdown-mode" ,emacs-markdown-mode)
16036        ("emacs-websocket" ,emacs-websocket)
16037        ("emacs-web-server" ,emacs-web-server)))
16038     (arguments '(#:include '("\\.el$" "\\.html$")))
16039     (home-page "https://github.com/ancane/markdown-preview-mode")
16040     (synopsis "Live web development in Emacs")
16041     (description "This package provides a minor mode for preview of Markdown
16042 files, and sends rendered Markdown to a web browser.")
16043     (license license:gpl3+)))
16045 (define-public emacs-dotenv-mode
16046   (package
16047     (name "emacs-dotenv-mode")
16048     (version "0.2.4")
16049     (source
16050      (origin
16051        (method git-fetch)
16052        (uri (git-reference
16053              (url "https://github.com/preetpalS/emacs-dotenv-mode")
16054              (commit (string-append "v" version))))
16055        (file-name (git-file-name name version))
16056        (sha256
16057         (base32
16058          "1fplkhxnsgdrg10iqsmw162zny2idz4vvv35spsb9j0hsk8imclc"))))
16059     (build-system emacs-build-system)
16060     (home-page "https://github.com/preetpalS/emacs-dotenv-mode")
16061     (synopsis "Major mode for @file{.env} files")
16062     (description "This package provides syntax highlighting for @file{.env}
16063 files.")
16064     (license license:gpl3+)))
16066 (define-public emacs-add-node-modules-path
16067   (let ((commit "f31e69ccb681f882aebb806ce6e9478e3ac39708")
16068         (version "1.2.0")
16069         (revision "10"))
16070     (package
16071       (name "emacs-add-node-modules-path")
16072       (version (git-version version revision commit))
16073       (source
16074        (origin
16075          (method git-fetch)
16076          (uri (git-reference
16077                (url "https://github.com/codesuki/add-node-modules-path")
16078                (commit commit)))
16079          (file-name (git-file-name name version))
16080          (sha256
16081           (base32
16082            "0p106bqmvdr8by5iv02bshm339qbrjcch2d15mrm4h3nav03v306"))))
16083       (build-system emacs-build-system)
16084       (home-page "https://github.com/codesuki/add-node-modules-path")
16085       (synopsis "Add @file{node_modules} to the buffer-local @file{exec-path}")
16086       (description "This package searches the parent directories of the
16087 current file for the project's @file{node_modules/.bin/} directory, allowing
16088 Emacs to find project-specific installations of packages.")
16089       (license license:expat))))
16091 (define-public emacs-flow-minor-mode
16092   (let ((commit "d1b32a7dd0d33c6a00a106da5f4b2323602cbd3e")
16093         (version "0.3")
16094         (revision "4"))
16095     (package
16096       (name "emacs-flow-minor-mode")
16097       (version (git-version version revision commit))
16098       (source
16099        (origin
16100          (method git-fetch)
16101          (uri (git-reference
16102                (url "https://github.com/an-sh/flow-minor-mode")
16103                (commit commit)))
16104          (file-name (git-file-name name version))
16105          (sha256
16106           (base32
16107            "169r4ib9qg9q6fm3p0p23qs1qx4pa9pg1qvyq4ysr85i7kwygppl"))))
16108       (build-system emacs-build-system)
16109       (home-page "https://github.com/an-sh/flow-minor-mode")
16110       (synopsis "Minor mode for JavaScript Flow files")
16111       (description "This package integrates Flow with Emacs, allowing for
16112 definition-jumping and type-checking on demand.")
16113       (license license:bsd-3))))
16115 (define-public emacs-rjsx-mode
16116   (let ((commit "03dd8d1683501e81b58674d64c3032b7b718402c")
16117         (version "0.4.0")
16118         (revision "35"))
16119     (package
16120       (name "emacs-rjsx-mode")
16121       (version (git-version version revision commit))
16122       (source
16123        (origin
16124          (method git-fetch)
16125          (uri (git-reference
16126                (url "https://github.com/felipeochoa/rjsx-mode")
16127                (commit commit)))
16128          (file-name (git-file-name name version))
16129          (sha256
16130           (base32
16131            "1kc44g9f38klpjklmz9n50a28nqv7prz6ck6ghdr6bnj1s98pb8a"))))
16132       (build-system emacs-build-system)
16133       (propagated-inputs
16134        `(("emacs-js2-mode" ,emacs-js2-mode)))
16135       (home-page "https://github.com/felipeochoa/rjsx-mode")
16136       (synopsis "Major mode for JSX files")
16137       (description "This package extends the parser of @code{js2-mode} to
16138 support JSX syntax.")
16139       (license license:expat))))
16141 (define-public emacs-origami-el
16142   (let ((commit "1f38085c8f9af7842765ed63f7d6dfe4dab59366")
16143         (version "1.0")
16144         (revision "1"))
16145     (package
16146       (name "emacs-origami-el")
16147       (version (git-version version revision commit))
16148       (source
16149        (origin
16150          (method git-fetch)
16151          (uri (git-reference
16152                (url "https://github.com/gregsexton/origami.el")
16153                (commit commit)))
16154          (file-name (git-file-name name version))
16155          (sha256
16156           (base32
16157            "0ha1qsz2p36pqa0sa2sp83lspbgx5lr7930qxnwd585liajzdd9x"))))
16158       (build-system emacs-build-system)
16159       (propagated-inputs
16160        `(("emacs-dash" ,emacs-dash)
16161          ("emacs-s" ,emacs-s)))
16162       (home-page "https://github.com/gregsexton/origami.el")
16163       (synopsis "Flexible text-folding")
16164       (description "This package provides a minor mode for collapsing and
16165 expanding regions of text without modifying the actual contents.")
16166       (license license:expat))))
16168 (define-public emacs-peep-dired
16169   (let ((commit "c88a9a3050197840edfe145f11e0bb9488de32f4")
16170         (version "0")
16171         (revision "1"))
16172     (package
16173       (name "emacs-peep-dired")
16174       (version (git-version version revision commit))
16175       (source
16176        (origin
16177          (method git-fetch)
16178          (uri (git-reference
16179                (url "https://github.com/asok/peep-dired")
16180                (commit commit)))
16181          (file-name (git-file-name name version))
16182          (sha256
16183           (base32
16184            "1wy5qpnfri1gha2cnl6q20qar8dbl2mimpb43bnhmm2g3wgjyad6"))))
16185       (build-system emacs-build-system)
16186       (home-page "https://github.com/asok/peep-dired")
16187       (synopsis "Preview files in another window")
16188       (description "This package provides a minor mode that allows files to be
16189 previewed by scrolling up and down within a @code{dired} buffer.")
16190       (license license:gpl3+))))
16192 (define-public emacs-counsel-etags
16193   (package
16194     (name "emacs-counsel-etags")
16195     (version "1.8.4")
16196     (source
16197      (origin
16198        (method git-fetch)
16199        (uri (git-reference
16200              (url "https://github.com/redguardtoo/counsel-etags")
16201              (commit version)))
16202        (file-name (git-file-name name version))
16203        (sha256
16204         (base32
16205          "14my9jvxl26a5yn381h5pi5481y9d9gyk7wnxxd0s4sjc964c5h5"))))
16206     (build-system emacs-build-system)
16207     (propagated-inputs
16208      `(("emacs-ivy" ,emacs-ivy)))
16209     (home-page "https://github.com/redguardtoo/counsel-etags")
16210     (synopsis "Fast @code{Ctags}/@code{Etags} solution with @code{ivy-mode}")
16211     (description "This package uses @code{ivy-mode} to facilitate navigating
16212 and searching through @code{Ctags} files.")
16213     (license license:gpl3+)))
16215 (define-public emacs-org-download
16216   (let ((commit "ac72bf8fce3e855da60687027b6b8601cf1de480")
16217         (version "0.1.0")
16218         (revision "1"))
16219     (package
16220       (name "emacs-org-download")
16221       (version (git-version version revision commit))
16222       (source (origin
16223                 (method git-fetch)
16224                 (uri (git-reference
16225                       (url "https://github.com/abo-abo/org-download")
16226                       (commit commit)))
16227                 (sha256
16228                  (base32
16229                   "0ax5wd44765wnwabkam1g2r62gq8crx2qq733s2mg1z72cfvwxqb"))
16230                 (file-name (git-file-name name version))))
16231       (build-system emacs-build-system)
16232       (propagated-inputs
16233        `(("emacs-org" ,emacs-org)
16234          ("emacs-async" ,emacs-async)))
16235       (home-page "https://github.com/abo-abo/org-download")
16236       (synopsis "Facilitate moving images")
16237       (description "This package provides utilities for managing image files
16238 copied into @code{org-mode} buffers.")
16239       (license license:gpl3+))))
16241 (define-public emacs-helm-dash
16242   (let ((commit "192b862185df661439a06de644791171e899348a")
16243         (version "1.3.0")
16244         (revision "18"))
16245     (package
16246       (name "emacs-helm-dash")
16247       (version (git-version version revision commit))
16248       (source
16249        (origin
16250          (method git-fetch)
16251          (uri (git-reference
16252                (url "https://github.com/areina/helm-dash")
16253                (commit commit)))
16254          (file-name (git-file-name name version))
16255          (sha256
16256           (base32
16257            "06am5vnr4hsxkvh2b8q8kb80y5x1h3qyv7gwggswwhfa7w2vba3w"))))
16258       (build-system emacs-build-system)
16259       (propagated-inputs
16260        `(("emacs-helm" ,emacs-helm)))
16261       (home-page "https://github.com/areina/helm-dash")
16262       (synopsis "Offline documentation browser for APIs using Dash docsets")
16263       (description "This package uses Helm to install and navigate through
16264 Dash docsets.")
16265       (license license:gpl3+))))
16267 (define-public emacs-counsel-dash
16268   (let ((commit "07fa74a94ff4da5b6c8c4810f5e143e701b480d2")
16269         (version "0.1.3")
16270         (revision "3"))
16271     (package
16272       (name "emacs-counsel-dash")
16273       (version (git-version version revision commit))
16274       (source
16275        (origin
16276          (method git-fetch)
16277          (uri (git-reference
16278                (url "https://github.com/nathankot/counsel-dash")
16279                (commit commit)))
16280          (file-name (git-file-name name version))
16281          (sha256
16282           (base32
16283            "17h2m9zsadq270mkq12kmdzmpbfjiwjbg8n1rg2apqnm1ndgcwf8"))))
16284       (build-system emacs-build-system)
16285       (propagated-inputs
16286        `(("emacs-helm-dash" ,emacs-helm-dash)
16287          ("emacs-dash" ,emacs-dash)
16288          ("emacs-ivy" ,emacs-ivy)))
16289       (home-page "https://github.com/nathankot/counsel-dash")
16290       (synopsis "Offline documentation browser for APIs using Dash docsets")
16291       (description "This package uses @code{ivy-mode} to install and navigate
16292 through Dash docsets.")
16293       (license license:expat))))
16295 (define-public emacs-el-patch
16296   (package
16297     (name "emacs-el-patch")
16298     (version "2.2.3")
16299     (source
16300      (origin
16301        (method git-fetch)
16302        (uri (git-reference
16303              (url "https://github.com/raxod502/el-patch")
16304              (commit version)))
16305        (file-name (git-file-name name version))
16306        (sha256
16307         (base32
16308          "18djslz177q6q33y82zmg2v6n9236a76kiqfvxdk4vbqzjbq82f7"))))
16309     (build-system emacs-build-system)
16310     (home-page "https://github.com/raxod502/el-patch")
16311     (synopsis "Future-proof your Emacs customizations")
16312     (description "This package allows for an alternate definition of an Elisp
16313 function to be specified and for any differences from the original definition
16314 to be examined using Ediff.")
16315     (license license:expat)))
16317 (define-public emacs-info-plus
16318   (let ((commit "b837d710f7d58db586116cf6f75e75a9a074bc4b")
16319         (version "5101")
16320         (revision "55"))
16321     (package
16322       (name "emacs-info-plus")
16323       (version (git-version version revision commit))
16324       (source
16325        (origin
16326          (method git-fetch)
16327          (uri (git-reference
16328                (url "https://github.com/emacsmirror/info-plus")
16329                (commit commit)))
16330          (file-name (git-file-name name version))
16331          (sha256
16332           (base32
16333            "1knyjkdm4rcs3qrc51jllw46ph7ycq5zxnvl70ydchzfwava43h6"))))
16334       (build-system emacs-build-system)
16335       (home-page "https://github.com/emacsmirror/info-plus")
16336       (synopsis "Extensions to @file{info.el}")
16337       (description "This package extends Emacs' @file{info.el} by allowing
16338 outline-enabled table of contents, additional metadata association for Info
16339 nodes, and more.")
16340       (license license:gpl2+))))
16342 (define-public emacs-eval-sexp-fu-el
16343   (package
16344     (name "emacs-eval-sexp-fu-el")
16345     (version "0.5.0")
16346     (source
16347      (origin
16348        (method git-fetch)
16349        (uri (git-reference
16350              (url "https://github.com/hchbaw/eval-sexp-fu.el")
16351              (commit (string-append "v" version))))
16352        (file-name (git-file-name name version))
16353        (sha256
16354         (base32
16355          "01mpnpgmlnfbi2yw9dxz5iw72mw3lk223bj172i4fnx3xdrrxbij"))))
16356     (build-system emacs-build-system)
16357     (home-page "https://github.com/hchbaw/eval-sexp-fu.el")
16358     (synopsis "Enhancements for evaluating s-expressions")
16359     (description "This package provides provides variants of
16360 @code{eval-last-sexp} that work on the containing list or s-expression, as
16361 well as an option for visually flashing evaluated s-expressions.")
16362     (license license:gpl3+)))
16364 (define-public emacs-counsel-tramp
16365   (package
16366     (name "emacs-counsel-tramp")
16367     (version "0.6.3")
16368     (source
16369      (origin
16370        (method git-fetch)
16371        (uri (git-reference
16372              (url "https://github.com/masasam/emacs-counsel-tramp")
16373              (commit version)))
16374        (file-name (git-file-name name version))
16375        (sha256
16376         (base32
16377          "1qy9lf7cyv6hp9mmpwh92cpdcffbxzyzchx6878d5pmk9qh6xy92"))))
16378     (build-system emacs-build-system)
16379     (propagated-inputs
16380      `(("emacs-ivy" ,emacs-ivy)))
16381     (home-page "https://github.com/masasam/emacs-counsel-tramp")
16382     (synopsis "Ivy interface for TRAMP")
16383     (description "This package allows @code{ivy-mode} to display and filter
16384 SSH servers.")
16385     (license license:gpl3+)))
16387 (define-public emacs-eacl
16388   (package
16389     (name "emacs-eacl")
16390     (version "2.0.1")
16391     (source
16392      (origin
16393        (method git-fetch)
16394        (uri (git-reference
16395              (url "https://github.com/redguardtoo/eacl")
16396              (commit version)))
16397        (file-name (git-file-name name version))
16398        (sha256
16399         (base32
16400          "0ksn11sm3g1ja5lpjz3hrzzw8b480mfcb3q589m52qjgvvn5iyfv"))))
16401     (build-system emacs-build-system)
16402     (propagated-inputs
16403      `(("emacs-ivy" ,emacs-ivy)))
16404     (home-page "https://github.com/redguardtoo/eacl")
16405     (synopsis "Auto-complete lines by using @code{grep} on a project")
16406     (description "This package provides auto-completion cammands for single
16407 and multiple lines of code in a project.")
16408     (license license:gpl3+)))
16410 (define-public emacs-semantic-refactor
16411   ;; The last release, 0.5, was made on 2015-07-26 and there have been 47
16412   ;; commits since then.
16413   (let ((commit "6f2c97d17fb70f4ca2112f5a2b99a8ec162004f5"))
16414     (package
16415       (name "emacs-semantic-refactor")
16416       (version (git-version "0.5" "1" commit))
16417       (source
16418        (origin
16419          (method git-fetch)
16420          (uri (git-reference
16421                (url "https://github.com/tuhdo/semantic-refactor")
16422                (commit commit)))
16423          (file-name (git-file-name name version))
16424          (sha256
16425           (base32
16426            "1lyz3zjkx2csh0xdy1zpx8s32qp1p3sig57mwi9xhgpqjyf0axmb"))))
16427       (build-system emacs-build-system)
16428       (home-page "https://github.com/tuhdo/semantic-refactor")
16429       (synopsis "Refactoring tool for C/C++ and Lisp dialects")
16430       (description "This package provides a refactoring tool based on the
16431 Emacs Semantic parser framework.  For C and C++ it supports operations such as:
16433 @enumerate
16434 @item Generating class implementations
16435 @item Generating function prototypes
16436 @item Converting functions to function pointers
16437 @item Moving semantic units
16438 @item etc...
16439 @end enumerate
16441 For Lisp dialects like Clojure, ELisp, and Scheme, it supports operations such
16444 @enumerate
16445 @item Formatting the whole buffer
16446 @item Converting sexpressions to one or multiple lines
16447 @item etc...
16448 @end enumerate\n")
16449       (license license:gpl3+))))
16451 (define-public emacs-nhexl-mode
16452   (package
16453     (name "emacs-nhexl-mode")
16454     (version "1.2")
16455     (source
16456      (origin
16457        (method url-fetch)
16458        (uri (string-append
16459              "https://elpa.gnu.org/packages/nhexl-mode-"
16460              version ".el"))
16461        (sha256
16462         (base32
16463          "031h22p564qdvr9khs05qcba06pmsk68cr7zyc7c04hfr3y3ziaf"))))
16464     (build-system emacs-build-system)
16465     (home-page "http://elpa.gnu.org/packages/nhexl-mode.html")
16466     (synopsis "Minor mode to edit files via hex-dump format")
16467     (description
16468      "This package implements NHexl mode, a minor mode for editing files
16469 in hex dump format.  The mode command is called @command{nhexl-mode}.
16471 This minor mode implements similar functionality to @command{hexl-mode},
16472 but using a different implementation technique, which makes it
16473 usable as a \"plain\" minor mode.  It works on any buffer, and does
16474 not mess with the undo log or with the major mode.
16476 It also comes with:
16478 @itemize
16479 @item @command{nhexl-nibble-edit-mode}: a \"nibble editor\" minor mode, where
16480 the cursor pretends to advance by nibbles (4-bit) and the self-insertion keys
16481 (which only work for hex-digits) will only modify the nibble under point.
16482 @item @command{nhexl-overwrite-only-mode}: a minor mode to try and avoid
16483 moving text.  In this minor mode, not only self-inserting keys overwrite
16484 existing text, but commands like `yank' and @command{kill-region} as well.
16485 @item It overrides @code{C-u} to use hexadecimal, so you can do @code{C-u a 4
16486 C-f} to advance by #xa4 characters.
16487 @end itemize\n")
16488     (license license:gpl3+)))
16490 (define-public emacs-helm-wikipedia
16491   (let ((commit "126f044e0a0e1432e0791c33ce2a41875d704a9b"))
16492     (package
16493       (name "emacs-helm-wikipedia")
16494       (version (git-version "0.0.0" "1" commit))
16495       (home-page "https://github.com/emacs-helm/helm-wikipedia/")
16496       (source
16497        (origin
16498          (method git-fetch)
16499          (uri (git-reference
16500                (url home-page)
16501                (commit commit)))
16502          (file-name (git-file-name name version))
16503          (sha256
16504           (base32
16505            "148a5xsnbsiddhf9cl7yxdk41lrv38h0pip91kcflw9d7l0dp7pr"))))
16506       (build-system emacs-build-system)
16507       (inputs
16508        `(("helm" ,emacs-helm)))
16509       (synopsis "Search suggestions and article extracts from Wikipedia for Emacs")
16510       (description
16511        "This package provides an Emacs Helm interface for search suggestions
16512 and article extracts for Wikipedia.")
16513       (license license:gpl3+))))
16515 (define-public emacs-webfeeder
16516   (package
16517   (name "emacs-webfeeder")
16518   (version "1.0.0")
16519   (source
16520     (origin
16521       (method url-fetch)
16522       (uri (string-append
16523              "https://elpa.gnu.org/packages/webfeeder-"
16524              version
16525              ".tar"))
16526       (sha256
16527         (base32
16528           "06y5vxw9m6pmbrzb8v2i3w9dnhgqxz06vyx1knmgi9cczlrj4a64"))))
16529   (build-system emacs-build-system)
16530   (home-page "https://gitlab.com/Ambrevar/emacs-webfeeder")
16531   (synopsis "Build RSS and Atom webfeeds from HTML files")
16532   (description
16533     "Webfeeder is an Emacs library to generate RSS and Atom feeds from HTML
16534 files.  The various elements of the HTML input are parsed with customizable
16535 functions (e.g. @code{webfeeder-title-function}).")
16536   (license license:gpl3+)))
16538 (define-public emacs-evil-numbers
16539   (let ((commit "6ea1c8c3a9b37bed63d48f1128e9a4910e68187e"))
16540     (package
16541       (name "emacs-evil-numbers")
16542       (version (git-version "0.4" "1" commit))
16543       (source (origin
16544                 (method git-fetch)
16545                 (uri (git-reference
16546                       (url "https://github.com/dieggsy/evil-numbers")
16547                       (commit commit)))
16548                 (file-name (git-file-name name version))
16549                 (sha256
16550                  (base32
16551                   "1aq95hj8x13py0pwsnc6wvd8cc5yv5qin8ym9js42y5966vwj4np"))))
16552       (build-system emacs-build-system)
16553       (home-page "https://github.com/dieggsy/evil-numbers")
16554       (synopsis "Increment and decrement numbers in Emacs")
16555       (description "This package increments and decrements binary, octal,
16556 decimal and hex literals.  It works like C-a/C-x in Vim, i.e. searches for
16557 number up to EOL and then increments or decrements and keeps zero padding up
16558 (unlike in Vim).  When a region is active, as in Evil's visual mode, all the
16559 numbers within that region will be incremented/decremented (unlike in Vim).
16561 It is a fork of https://github.com/cofi/evil-numbers, which is unmaintained.")
16562       (license license:gpl3+))))
16564 (define-public emacs-rotate-text
16565   (package
16566     (name "emacs-rotate-text")
16567     (version "0.1")
16568     (source (origin
16569               (method git-fetch)
16570               (uri (git-reference
16571                     (url "https://github.com/nschum/rotate-text.el.git")
16572                     (commit version)))
16573               (file-name (git-file-name name version))
16574               (sha256
16575                (base32
16576                 "1cgxv4aibkvv6lnssynn0438a615fz3zq8hg9sb0lhfgsr99pxln"))))
16577     (build-system emacs-build-system)
16578     (home-page "http://nschum.de/src/emacs/rotate-text/")
16579     (synopsis "Cycle through words, symbols and patterns in Emacs")
16580     (description "@code{rotate-text} allows you rotate to commonly
16581 interchanged text with a single keystroke.  For example, you can toggle
16582 between \"frame-width\" and \"frame-height\", between \"public\",
16583 \"protected\" and \"private\" and between \"variable1\", \"variable2\" through
16584 \"variableN\".")
16585     (license license:gpl2+)))
16587 (define-public emacs-ediprolog
16588   (package
16589     (name "emacs-ediprolog")
16590     (version "1.2")
16591     (source
16592      (origin
16593        (method url-fetch)
16594        (uri (string-append
16595              "https://elpa.gnu.org/packages/ediprolog-"
16596              version
16597              ".el"))
16598        (sha256
16599         (base32
16600          "039ffvp7c810mjyargmgw1i87g0z8qs8qicq826sd9aiz9hprfaz"))))
16601     (build-system emacs-build-system)
16602     (home-page "http://elpa.gnu.org/packages/ediprolog.html")
16603     (synopsis "Emacs Does Interactive Prolog")
16604     (description "This package provides a major mode that let the user
16605 interact with SWI-Prolog in all buffers.  For instance, one can consult Prolog
16606 programs and evaluate embedded queries.  This mode is focused on the command
16607 @code{ediprolog-dwim} (Do What I Mean) which is supposed to, depending on the
16608 context, carry out the appropriate action.")
16609     (license license:gpl3+)))
16611 (define-public emacs-evil-cleverparens
16612   (let ((commit "8c45879d49bfa6d4e414b6c1df700a4a51cbb869")
16613         (revision "1"))
16614     (package
16615       (name "emacs-evil-cleverparens")
16616       (version (git-version "2017-07-17" revision commit))
16617       (source (origin
16618                 (method git-fetch)
16619                 (uri (git-reference
16620                       (url "https://github.com/luxbock/evil-cleverparens.git")
16621                       (commit commit)))
16622                 (sha256 (base32 "0lhnybpnk4n2yhlcnj9zxn0vi5hpjfaqfhvyfy7ckzz74g8v7iyw"))
16623                 (file-name (git-file-name name version))))
16624       (build-system emacs-build-system)
16625       (propagated-inputs
16626        `(("emacs-evil" ,emacs-evil)
16627          ("emacs-paredit" ,emacs-paredit)
16628          ("emacs-smartparens" ,emacs-smartparens)))
16629       (home-page "https://github.com/luxbock/evil-cleverparens")
16630       (synopsis "Emacs modal editing optimized for editing Lisp")
16631       (description "@code{evil-cleverparens} remaps Evil keybindings to allow
16632 modal editing with screwing up the structure of Lisp code.  Alternatives for
16633 verb commands which would are normally destructive (such as deletion) are
16634 provided.  Those alternative commands are and bound by default to their
16635 corresponding Evil keys.")
16636       (license license:expat))))
16638 (define-public emacs-xterm-color
16639   (let ((commit "a452ab38a7cfae97078062ff8885b5d74fd1e5a6")
16640         (version "1.8")
16641         (revision "1"))
16642     (package
16643       (name "emacs-xterm-color")
16644       (version (git-version version revision commit))
16645       (source (origin
16646                 (method git-fetch)
16647                 (uri (git-reference
16648                       (url "https://github.com/atomontage/xterm-color.git")
16649                       (commit commit)))
16650                 (sha256
16651                  (base32
16652                   "02kpajb993yshhjhsizpfcbrcndyzkf4dqfipifhxxng50dhp95i"))
16653                 (file-name (git-file-name name version))))
16654       (build-system emacs-build-system)
16655       (home-page "https://github.com/atomontage/xterm-color")
16656       (synopsis "ANSI & xterm-256 color text property translator for Emacs")
16657       (description "@code{xterm-color.el} is an ANSI control sequence to
16658 text-property translator.")
16659       (license license:bsd-2))))
16661 (define-public emacs-org-noter
16662   (package
16663     (name "emacs-org-noter")
16664     (version "1.3.0")
16665     (source
16666       (origin
16667         (method url-fetch)
16668         (uri (string-append
16669                "https://stable.melpa.org/packages/org-noter-"
16670                version
16671                ".el"))
16672         (sha256
16673           (base32
16674             "1hczwva73gsyanl1ldhdvql01gy0hy2g861yzkaklyb763sx58x4"))))
16675     (build-system emacs-build-system)
16676     (propagated-inputs `(("emacs-org" ,emacs-org)))
16677     (home-page "https://github.com/weirdNox/org-noter")
16678     (synopsis "Synchronized, Org-mode, document annotator")
16679     (description
16680      "This package lets you create notes that are kept in sync when you
16681 scroll through the document, but that are external to it---the notes
16682 themselves live in an Org-mode file.  As such, this leverages the power of
16683 Org-mode (the notes may have outlines, latex fragments, babel, etc...) while
16684 acting like notes that are made @emph{in} the document.")
16685     (license license:gpl3+)))
16687 (define-public emacs-multi-term
16688   (let ((commit "0804b11e52b960c80f5cd0712ee1e53ae70d83a4"))
16689     (package
16690       (name "emacs-multi-term")
16691       (version "1.2")
16692       (source (origin
16693                 (method git-fetch)
16694                 (uri (git-reference
16695                       (url "https://github.com/manateelazycat/multi-term.git")
16696                       (commit commit)))
16697                 (file-name (git-file-name name version))
16698                 (sha256
16699                  (base32
16700                   "0apvidmvb7rv05qjnjhax42ma8wrimik5vxx620dlbv17svz7iyf"))))
16701       (build-system emacs-build-system)
16702       (inputs `(("zsh" ,zsh)))
16703       (home-page "https://github.com/manateelazycat/multi-term")
16704       (synopsis "Manage multiple terminal buffers in Emacs")
16705       (description
16706        "This package enhances @code{term.el} with the following features:
16708 @enumerate
16709 @item Functions to switch between multiple terminal buffers
16710 @item List of keys to be intercepted by @code{emacs-multi-term} instead of by
16711 the underlying terminal
16712 @item Kills the unused buffer left after exiting the terminal
16713 @item Kills the running sub-processes along with the terminal when killing the
16714 it forcibly
16715 @item Dedicated window for debugging program.
16716 @end enumerate")
16717       (license license:gpl3+))))
16719 (define-public emacs-elpher
16720   (package
16721     (name "emacs-elpher")
16722     (version "1.4.6")
16723     (source
16724      (origin
16725        (method git-fetch)
16726        (uri (git-reference
16727              (url "https://github.com/tgvaughan/elpher")
16728              (commit (string-append "v" version))))
16729        (file-name (git-file-name name version))
16730        (sha256
16731         (base32
16732          "07xansmhn4l0b9ghzf56vyx8cqg0q01aq3pz5ikx2i19v5f0rc66"))))
16733     (build-system emacs-build-system)
16734     (native-inputs
16735      `(("texinfo" ,texinfo)))
16736     (arguments
16737      `(#:phases
16738        (modify-phases %standard-phases
16739          (add-before 'install 'build-doc
16740            (lambda _
16741              (invoke "makeinfo" "elpher.texi"))))))
16742     (home-page "https://github.com/tgvaughan/elpher")
16743     (synopsis "Gopher client for Emacs")
16744     (description "Elpher is a full-featured gopher client for Emacs.  Its
16745 features include intuitive keyboard and mouse-driven browsing, out-of-the-box
16746 compatibility with evil-mode, clickable web and gopher links in plain text,
16747 caching of visited sites, pleasant and configurable visualization of Gopher
16748 directories, direct visualisation of image files, jumping directly to links by
16749 name (with autocompletion), a simple bookmark management system and
16750 connections using TLS encryption.")
16751     (license license:gpl3+)))
16753 (define-public emacs-zerodark-theme
16754   (package
16755     (name "emacs-zerodark-theme")
16756     (version "4.5")
16757     (source
16758      (origin
16759        (method git-fetch)
16760        (uri (git-reference
16761              (url "https://gitlab.petton.fr/nico/zerodark-theme.git")
16762              (commit version)))
16763        (file-name (git-file-name name version))
16764        (sha256
16765         (base32
16766          "0nnlxzsmhsbszqigcyxak9i1a0digrd13gv6v18ck4h760mihh1m"))))
16767     (build-system emacs-build-system)
16768     (propagated-inputs
16769      `(("emacs-all-the-icons" ,emacs-all-the-icons)))
16770     (home-page
16771      "https://gitlab.petton.fr/nico/zerodark-theme")
16772     (synopsis
16773      "Dark, medium contrast theme for Emacs")
16774     (description
16775      "Zerodark is a dark theme inspired from One Dark and Niflheim.
16776 An optional mode-line format can be enabled with @code{zerodark-setup-modeline-format}.")
16777     (license license:gpl3+)))
16779 (define-public emacs-gnus-alias
16780   (package
16781     (name "emacs-gnus-alias")
16782     (version "20150316")
16783     (source (origin
16784               (method git-fetch)
16785               (uri (git-reference
16786                     (url "https://github.com/hexmode/gnus-alias.git")
16787                     (commit "9447d3ccb4c0e75d0468899cccff7aa249657bac")))
16788               (file-name (git-file-name name version))
16789               (sha256
16790                (base32
16791                 "1i278npayv3kfxxd1ypi9n83q5l402sbc1zkm11pf8g006ifqsp4"))))
16792     (build-system emacs-build-system)
16793     (home-page "https://melpa.org/#/gnus-alias")
16794     (synopsis "Alternative to @code{gnus-posting-styles}")
16795     (description "This Emacs add-on provides a simple mechanism to switch
16796 Identities when using a @code{message-mode} or a @code{message-mode} derived
16797 mode.  Identities can include @code{From} and @code{Organisation} headers,
16798 extra headers, body and signature.  Other features include:
16800 @itemize
16801 @item Switch Identities in a message buffer.
16802 @item Access original message to help determine Identity of the followup/reply
16803 message.
16804 @item Act on a forwarded message as if it were a message being replied to.
16805 @item Start a new message with a given Identity pre-selected.
16806 @end itemize")
16807     (license license:gpl2+)))