gnu: perl: Update home page.
[jackhill/guix/guix.git] / gnu / packages / emacs-xyz.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2014 Taylan Ulrich Bayirli/Kammer <taylanbayirli@gmail.com>
3 ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 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 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 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 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 ;;;
51 ;;; This file is part of GNU Guix.
52 ;;;
53 ;;; GNU Guix is free software; you can redistribute it and/or modify it
54 ;;; under the terms of the GNU General Public License as published by
55 ;;; the Free Software Foundation; either version 3 of the License, or (at
56 ;;; your option) any later version.
57 ;;;
58 ;;; GNU Guix is distributed in the hope that it will be useful, but
59 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
60 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
61 ;;; GNU General Public License for more details.
62 ;;;
63 ;;; You should have received a copy of the GNU General Public License
64 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
65
66 (define-module (gnu packages emacs-xyz)
67 #:use-module ((guix licenses) #:prefix license:)
68 #:use-module (guix packages)
69 #:use-module (guix cvs-download)
70 #:use-module (guix download)
71 #:use-module (guix git-download)
72 #:use-module (guix build-system gnu)
73 #:use-module (guix build-system cmake)
74 #:use-module (guix build-system emacs)
75 #:use-module (guix build-system glib-or-gtk)
76 #:use-module (guix build-system perl)
77 #:use-module (guix build-system trivial)
78 #:use-module (gnu packages)
79 #:use-module (gnu packages admin)
80 #:use-module (gnu packages audio)
81 #:use-module (gnu packages bash)
82 #:use-module (gnu packages cmake)
83 #:use-module (gnu packages code)
84 #:use-module (gnu packages databases)
85 #:use-module (gnu packages emacs)
86 #:use-module (gnu packages guile)
87 #:use-module (gnu packages gtk)
88 #:use-module (gnu packages gnome)
89 #:use-module (gnu packages ncurses)
90 #:use-module (gnu packages python)
91 #:use-module (gnu packages python-xyz)
92 #:use-module (gnu packages tex)
93 #:use-module (gnu packages texinfo)
94 #:use-module (gnu packages tcl)
95 #:use-module (gnu packages tls)
96 #:use-module (gnu packages pkg-config)
97 #:use-module (gnu packages xorg)
98 #:use-module (gnu packages lesstif)
99 #:use-module (gnu packages llvm)
100 #:use-module (gnu packages image)
101 #:use-module (gnu packages linux)
102 #:use-module (gnu packages libevent)
103 #:use-module (gnu packages music)
104 #:use-module (gnu packages version-control)
105 #:use-module (gnu packages imagemagick)
106 #:use-module (gnu packages w3m)
107 #:use-module (gnu packages wget)
108 #:use-module (gnu packages autotools)
109 #:use-module (gnu packages base)
110 #:use-module (gnu packages compression)
111 #:use-module (gnu packages xml)
112 #:use-module (gnu packages glib)
113 #:use-module (gnu packages acl)
114 #:use-module (gnu packages mail)
115 #:use-module (gnu packages package-management)
116 #:use-module (gnu packages perl)
117 #:use-module (gnu packages pdf)
118 #:use-module (gnu packages scheme)
119 #:use-module (gnu packages speech)
120 #:use-module (gnu packages xiph)
121 #:use-module (gnu packages mp3)
122 #:use-module (gnu packages gettext)
123 #:use-module (gnu packages fribidi)
124 #:use-module (gnu packages gd)
125 #:use-module (gnu packages fontutils)
126 #:use-module (gnu packages password-utils)
127 #:use-module (gnu packages pulseaudio)
128 #:use-module (gnu packages sphinx)
129 #:use-module (gnu packages xdisorg)
130 #:use-module (gnu packages shells)
131 #:use-module (gnu packages sqlite)
132 #:use-module (gnu packages gnupg)
133 #:use-module (gnu packages video)
134 #:use-module (gnu packages haskell)
135 #:use-module (gnu packages wordnet)
136 #:use-module (guix utils)
137 #:use-module (srfi srfi-1)
138 #:use-module (ice-9 match))
139
140 ;;;
141 ;;; Emacs hacking.
142 ;;;
143
144 (define-public emacs-geiser
145 (package
146 (name "emacs-geiser")
147 (version "0.10")
148 (source (origin
149 (method url-fetch)
150 (uri (string-append "mirror://savannah/geiser/" version
151 "/geiser-" version ".tar.gz"))
152 (sha256
153 (base32
154 "0pj3l7p8d60c9b4vfprnv6g5l61d74pls4b5dvd84cn4ky9mzwjv"))))
155 (build-system gnu-build-system)
156 (arguments
157 '(#:phases
158 (modify-phases %standard-phases
159 (add-after 'install 'post-install
160 (lambda* (#:key outputs #:allow-other-keys)
161 (symlink "geiser-install.el"
162 (string-append (assoc-ref outputs "out")
163 "/share/emacs/site-lisp/"
164 "geiser-autoloads.el"))
165 #t)))))
166 (inputs `(("guile" ,guile-2.2)))
167 (native-inputs `(("emacs" ,emacs-minimal)))
168 (home-page "https://nongnu.org/geiser/")
169 (synopsis "Collection of Emacs modes for Guile and Racket hacking")
170 (description
171 "Geiser is a collection of Emacs major and minor modes that conspire with
172 one or more Scheme implementations to keep the Lisp Machine Spirit alive. The
173 continuously running Scheme interpreter takes the center of the stage in
174 Geiser. A bundle of Elisp shims orchestrates the dialog between the Scheme
175 implementation, Emacs and, ultimately, the schemer, giving them access to live
176 metadata.")
177 (license license:bsd-3)))
178
179 (define-public geiser
180 (deprecated-package "geiser" emacs-geiser))
181
182 (define-public emacs-paredit
183 (package
184 (name "emacs-paredit")
185 (version "24")
186 (source (origin
187 (method url-fetch)
188 (uri (string-append "http://mumble.net/~campbell/emacs/paredit-"
189 version ".el"))
190 (sha256
191 (base32
192 "0pp3n8q6kc70blqsaw0zlzp6bc327dpgdrjr0cnh7hqg1lras7ka"))))
193 (build-system emacs-build-system)
194 (home-page "http://mumble.net/~campbell/emacs/paredit/")
195 (synopsis "Emacs minor mode for editing parentheses")
196 (description
197 "ParEdit (paredit.el) is a minor mode for performing structured editing
198 of S-expression data. The typical example of this would be Lisp or Scheme
199 source code.
200
201 ParEdit helps **keep parentheses balanced** and adds many keys for moving
202 S-expressions and moving around in S-expressions. Its behavior can be jarring
203 for those who may want transient periods of unbalanced parentheses, such as
204 when typing parentheses directly or commenting out code line by line.")
205 (license license:gpl3+)))
206
207 (define-public paredit
208 (deprecated-package "paredit" emacs-paredit))
209
210 (define-public git-modes
211 (package
212 (name "emacs-git-modes")
213 (version "1.2.8")
214 (source (origin
215 (method git-fetch)
216 (uri (git-reference
217 (url "https://github.com/magit/git-modes")
218 (commit version)))
219 (file-name (git-file-name name version))
220 (sha256
221 (base32
222 "08hy7rbfazs6grkpk54i82bz0i0c74zcjk96cip8970h6jn3mj72"))))
223 (build-system emacs-build-system)
224 (home-page "https://github.com/magit/git-modes")
225 (synopsis "Emacs major modes for Git configuration files")
226 (description
227 "This package provides Emacs major modes for editing various Git
228 configuration files, such as .gitattributes, .gitignore, and .git/config.")
229 (license license:gpl3+)))
230
231 (define-public git-modes/old-name
232 (deprecated-package "git-modes" git-modes))
233
234 (define-public emacs-with-editor
235 (package
236 (name "emacs-with-editor")
237 (version "2.8.0")
238 (source (origin
239 (method git-fetch)
240 (uri (git-reference
241 (url "https://github.com/magit/with-editor.git")
242 (commit (string-append "v" version))))
243 (file-name (git-file-name name version))
244 (sha256
245 (base32
246 "1bbzvxnjpxqyvi808isld025b3pcidn4r2xf8hnk9bmzcfdvdr6q"))))
247 (build-system emacs-build-system)
248 (propagated-inputs
249 `(("emacs-dash" ,emacs-dash)))
250 (home-page "https://github.com/magit/with-editor")
251 (synopsis "Emacs library for using Emacsclient as EDITOR")
252 (description
253 "This package provides an Emacs library to use the Emacsclient as
254 @code{$EDITOR} of child processes, making sure they know how to call home.
255 For remote processes a substitute is provided, which communicates with Emacs
256 on stdout instead of using a socket as the Emacsclient does.")
257 (license license:gpl3+)))
258
259 (define-public emacs-magit
260 ;; Version 2.90.1 has trouble loading the transient library,
261 ;; so we use a more recent commit that fixes it.
262 (let ((commit "b4aec016b5577afa8d889f258b499814d1bb1d94"))
263 (package
264 (name "emacs-magit")
265 (version (git-version "2.90.1" "1" commit))
266 (source (origin
267 (method git-fetch)
268 (uri (git-reference
269 (url "https://github.com/magit/magit")
270 (commit commit)))
271 (file-name (git-file-name name version))
272 (sha256
273 (base32
274 "0zl7v6z0y50pcgqsf2r8c1k3r5nwjad9ba7r6sgrnf4rc62br7jv"))))
275 (build-system gnu-build-system)
276 (native-inputs `(("texinfo" ,texinfo)
277 ("emacs" ,emacs-minimal)))
278 (inputs
279 `(("git" ,git)
280 ("perl" ,perl)))
281 (propagated-inputs
282 `(("dash" ,emacs-dash)
283 ("with-editor" ,emacs-with-editor)
284 ("transient" ,emacs-transient)))
285 (arguments
286 `(#:modules ((guix build gnu-build-system)
287 (guix build utils)
288 (guix build emacs-utils))
289 #:imported-modules (,@%gnu-build-system-modules
290 (guix build emacs-utils))
291 #:test-target "test"
292 #:tests? #f ; tests are not included in the release
293
294 #:make-flags
295 (list (string-append "PREFIX=" %output)
296 ;; Don't put .el files in a sub-directory.
297 (string-append "lispdir=" %output "/share/emacs/site-lisp")
298 (string-append "DASH_DIR="
299 (assoc-ref %build-inputs "dash")
300 "/share/emacs/site-lisp/guix.d/dash-"
301 ,(package-version emacs-dash))
302 (string-append "WITH_EDITOR_DIR="
303 (assoc-ref %build-inputs "with-editor")
304 "/share/emacs/site-lisp/guix.d/with-editor-"
305 ,(package-version emacs-with-editor))
306 (string-append "TRANSIENT_DIR="
307 (assoc-ref %build-inputs "transient")
308 "/share/emacs/site-lisp/guix.d/transient-"
309 ,(package-version emacs-transient)))
310
311 #:phases
312 (modify-phases %standard-phases
313 (delete 'configure)
314 (add-before
315 'build 'patch-exec-paths
316 (lambda* (#:key inputs #:allow-other-keys)
317 (let ((perl (assoc-ref inputs "perl")))
318 (make-file-writable "lisp/magit-sequence.el")
319 (emacs-substitute-variables "lisp/magit-sequence.el"
320 ("magit-perl-executable" (string-append perl "/bin/perl")))
321 #t))))))
322 (home-page "https://magit.vc/")
323 (synopsis "Emacs interface for the Git version control system")
324 (description
325 "With Magit, you can inspect and modify your Git repositories with Emacs.
326 You can review and commit the changes you have made to the tracked files, for
327 example, and you can browse the history of past changes. There is support for
328 cherry picking, reverting, merging, rebasing, and other common Git
329 operations.")
330 (license license:gpl3+))))
331
332 (define-public magit
333 (deprecated-package "magit" emacs-magit))
334
335 (define-public emacs-magit-svn
336 (let ((commit "9e33ceee32f665db59909e1c00a667ccdd04178f"))
337 (package
338 (name "emacs-magit-svn")
339 (version (git-version "2.2.1" "1" commit))
340 (source (origin
341 (method git-fetch)
342 (uri (git-reference
343 (url "https://github.com/magit/magit-svn")
344 (commit commit)))
345 (file-name (git-file-name name version))
346 (sha256
347 (base32
348 "1mlqz8dh6jy5rv72lgkxv253dgh73fmbaidskicypapvbl3lr6xy"))))
349 (build-system trivial-build-system)
350 (native-inputs `(("emacs" ,emacs-minimal)))
351 (propagated-inputs `(("dash" ,emacs-dash)
352 ("with-editor" ,emacs-with-editor)
353 ("magit" ,emacs-magit)
354 ("transient" ,emacs-transient)))
355 (arguments
356 `(#:modules ((guix build utils)
357 (guix build emacs-utils))
358
359 #:builder
360 (begin
361 (use-modules (guix build utils)
362 (guix build emacs-utils))
363
364 (let ((emacs (string-append (assoc-ref %build-inputs "emacs")
365 "/bin/emacs"))
366 (magit (string-append (assoc-ref %build-inputs "magit")
367 "/share/emacs/site-lisp"))
368 (transient (string-append (assoc-ref %build-inputs "transient")
369 "/share/emacs/site-lisp/guix.d/transient-"
370 ,(package-version emacs-transient)))
371 (dash (string-append (assoc-ref %build-inputs "dash")
372 "/share/emacs/site-lisp/guix.d/dash-"
373 ,(package-version emacs-dash)))
374 (with-editor (string-append (assoc-ref %build-inputs "with-editor")
375 "/share/emacs/site-lisp/guix.d/with-editor-"
376 ,(package-version emacs-with-editor)))
377 (source (assoc-ref %build-inputs "source"))
378 (lisp-dir (string-append %output "/share/emacs/site-lisp")))
379
380 (install-file (string-append source "/magit-svn.el")
381 lisp-dir)
382
383 (with-directory-excursion lisp-dir
384 (parameterize ((%emacs emacs))
385 (emacs-generate-autoloads ,name lisp-dir)
386 (setenv "EMACSLOADPATH"
387 (string-append ":" magit ":" transient
388 ":" dash ":" with-editor))
389 (emacs-batch-eval '(byte-compile-file "magit-svn.el"))))
390 #t))))
391 (home-page "https://github.com/magit/magit-svn")
392 (synopsis "Git-SVN extension to Magit")
393 (description
394 "This package is an extension to Magit, the Git Emacs mode, providing
395 support for Git-SVN.")
396 (license license:gpl3+))))
397
398 (define-public magit-svn
399 (deprecated-package "magit-svn" emacs-magit-svn))
400
401 (define-public emacs-magit-popup
402 (package
403 (name "emacs-magit-popup")
404 (version "2.12.5")
405 (source (origin
406 (method git-fetch)
407 (uri (git-reference
408 (url "https://github.com/magit/magit-popup.git")
409 (commit (string-append "v" version))))
410 (file-name (git-file-name name version))
411 (sha256
412 (base32
413 "13riknyqr6vxqll80sfhvz165flvdz367rbd0pr5slb01bnfsi2i"))))
414 (build-system emacs-build-system)
415 (arguments
416 `(#:phases
417 (modify-phases %standard-phases
418 (add-before 'install 'make-info
419 (lambda _
420 (invoke "make" "info"))))))
421 (native-inputs
422 `(("texinfo" ,texinfo)))
423 (propagated-inputs
424 `(("emacs-dash" ,emacs-dash)))
425 (home-page "https://github.com/magit/magit-popup")
426 (synopsis "Define prefix-infix-suffix command combos")
427 (description
428 "This library implements a generic interface for toggling switches and
429 setting options and then invoking an Emacs command which does something with
430 these arguments. The prototypical use is for the command to call an external
431 process, passing on the arguments as command line arguments.")
432 (license license:gpl3+)))
433
434 (define-public emacs-treepy
435 (package
436 (name "emacs-treepy")
437 (version "0.1.1")
438 (source (origin
439 (method git-fetch)
440 (uri (git-reference
441 (url "https://github.com/volrath/treepy.el.git")
442 (commit version)))
443 (file-name (git-file-name name version))
444 (sha256
445 (base32
446 "04zwm6gx9pxfvgfkizx6pvb1ql8pqxjyzqp8flz0432x0gq5nlxk"))))
447 (build-system emacs-build-system)
448 (home-page
449 "https://github.com/volrath/treepy.el")
450 (synopsis "Tree traversal tools")
451 (description
452 "Generic tools for recursive and iterative tree traversal based on
453 clojure.walk and clojure.zip respectively.")
454 (license license:gpl3+)))
455
456 (define-public emacs-graphql
457 (package
458 (name "emacs-graphql")
459 (version "0.1.1")
460 (source (origin
461 (modules '((guix build utils)))
462 ;; Remove examples file with references to external packages as
463 ;; they do not exist at compilation time.
464 (snippet
465 '(begin (delete-file "examples.el")
466 #t))
467 (method git-fetch)
468 (uri (git-reference
469 (url "https://github.com/vermiculus/graphql.el.git")
470 (commit version)))
471 (file-name (git-file-name name version))
472 (sha256
473 (base32
474 "0sp0skc1rnhi39szfbq1i99pdgd3bhn4c15cff05iqhjy2d4hniw"))))
475 (build-system emacs-build-system)
476 (home-page
477 "https://github.com/vermiculus/graphql.el")
478 (synopsis "GraphQL utilities")
479 (description
480 "GraphQL.el provides a generally-applicable domain-specific language for
481 creating and executing GraphQL queries against your favorite web services.
482 GraphQL is a data query language and runtime designed and used to request and
483 deliver data to mobile and web apps.")
484 (license license:gpl3+)))
485
486 (define-public emacs-ghub
487 (package
488 (name "emacs-ghub")
489 (version "3.2.0")
490 (source (origin
491 (method git-fetch)
492 (uri (git-reference
493 (url "https://github.com/magit/ghub")
494 (commit (string-append "v" version))))
495 (file-name (git-file-name name version))
496 (sha256
497 (base32
498 "0lp52qygyavddl1lrgsyb6mq7hcf9h89dy2pzya3mb2va49f0vvl"))))
499 (build-system emacs-build-system)
500 (arguments
501 `(#:phases
502 (modify-phases %standard-phases
503 (add-before 'install 'make-info
504 (lambda _
505 (invoke "make" "info"))))))
506 (native-inputs
507 `(("texinfo" ,texinfo)))
508 (propagated-inputs
509 `(("dash" ,emacs-dash)
510 ("graphql" ,emacs-graphql)
511 ("treepy" ,emacs-treepy)))
512 (home-page "https://github.com/magit/ghub")
513 (synopsis "Emacs client libraries for the APIs of various Git forges")
514 (description
515 "Ghub provides basic support for using the APIs of various Git forges from
516 Emacs packages. It supports the REST APIs of Github, Github GraphQL, Gitlab,
517 Gitea, Gogs and Bitbucket. It abstracts access to API resources using only a
518 handful of functions that are not resource-specific.")
519 (license license:gpl3+)))
520
521 (define-public emacs-scribble-mode
522 (let ((commit "34e9e5edb921813b6483e0fefa848efb6ee4b314")
523 (version "0.0")
524 (revision 0))
525 (package
526 (name "emacs-scribble-mode")
527 (version (if (zero? revision)
528 version
529 (string-append version "-"
530 (number->string revision)
531 "." (string-take commit 7))))
532 (source (origin
533 (method git-fetch)
534 (uri (git-reference
535 (url "https://github.com/emacs-pe/scribble-mode.git")
536 (commit commit)))
537 (sha256
538 (base32
539 "0598byqpz2q6yi2q4dwd77jj9z3n99z34d3an51s9m2za0nh1qvp"))))
540 (build-system emacs-build-system)
541 (home-page "https://github.com/emacs-pe/scribble-mode")
542 (synopsis "Emacs mode for editing the Scribble documentation syntax.")
543 (description
544 "This package provides basic syntax highlighting and editing support
545 for editing Racket's Scribble documentation syntax in Emacs.")
546 (license license:gpl3+))))
547
548 (define-public emacs-unpackaged-el
549 (let ((commit "f4df7f8dfea715e893b2223adda32545803f5cce")
550 (revision "1"))
551 (package
552 (name "emacs-unpackaged-el")
553 (version (git-version "0" revision commit))
554 (source
555 (origin
556 (method git-fetch)
557 (uri (git-reference
558 (url "https://github.com/alphapapa/unpackaged.el")
559 (commit commit)))
560 (file-name (git-file-name name version))
561 (sha256
562 (base32
563 "1yf3zrgqfhnr0az8gn1kqqwnhfi3nc0vbjkcagwcqwk3sp1jda86"))))
564 (build-system emacs-build-system)
565 (propagated-inputs
566 `(("emacs-dash" ,emacs-dash)
567 ("emacs-org" ,emacs-org)
568 ("emacs-s" ,emacs-s)
569 ("emacs-use-package" ,emacs-use-package)))
570 (home-page "https://github.com/alphapapa/unpackaged.el")
571 (synopsis "Useful snippets of Emacs Lisp code")
572 (description "This package provides Emacs Lisp utilities for a variety
573 of tasks, including version control, task management, and regex-based
574 replacement.")
575 (license license:gpl3+))))
576
577 (define-public emacs-haskell-mode
578 (package
579 (name "emacs-haskell-mode")
580 (version "16.1")
581 (source (origin
582 (method git-fetch)
583 (uri (git-reference
584 (url "https://github.com/haskell/haskell-mode")
585 (commit (string-append "v" version))))
586 (file-name (git-file-name name version))
587 (sha256
588 (base32 "1qk36y0v9fzass6785il65c6wb5cfj4ihhwkvgnzmbafpa8p4dvq"))
589 (patches
590 (search-patches ; backport test failure fixes
591 "haskell-mode-unused-variables.patch"
592 "haskell-mode-make-check.patch"))))
593 (inputs
594 `(("emacs-el-search" ,emacs-el-search) ; for tests
595 ("emacs-stream" ,emacs-stream))) ; for tests
596 (propagated-inputs
597 `(("emacs-dash" ,emacs-dash)))
598 (native-inputs
599 `(("emacs" ,emacs-minimal)
600 ("texinfo" ,texinfo)))
601 (build-system gnu-build-system)
602 (arguments
603 `(#:make-flags (list (string-append "EMACS="
604 (assoc-ref %build-inputs "emacs")
605 "/bin/emacs"))
606 #:modules ((ice-9 match)
607 (srfi srfi-26)
608 ,@%gnu-build-system-modules)
609 #:phases
610 (modify-phases %standard-phases
611 (delete 'configure)
612 (add-before
613 'build 'pre-build
614 (lambda* (#:key inputs #:allow-other-keys)
615 (define (el-dir store-dir)
616 (match (find-files store-dir "\\.el$")
617 ((f1 f2 ...) (dirname f1))
618 (_ "")))
619
620 (let ((sh (string-append (assoc-ref inputs "bash") "/bin/sh")))
621 (define emacs-prefix? (cut string-prefix? "emacs-" <>))
622
623 (setenv "SHELL" "sh")
624 (setenv "EMACSLOADPATH"
625 (string-concatenate
626 (map (match-lambda
627 (((? emacs-prefix? name) . dir)
628 (string-append (el-dir dir) ":"))
629 (_ ""))
630 inputs)))
631 (substitute* (find-files "." "\\.el") (("/bin/sh") sh))
632 ;; embed filename to fix test failure
633 (let ((file "tests/haskell-cabal-tests.el"))
634 (substitute* file
635 (("\\(buffer-file-name\\)")
636 (format #f "(or (buffer-file-name) ~s)" file))))
637 #t)))
638 (replace
639 'install
640 (lambda* (#:key outputs #:allow-other-keys)
641 (let* ((out (assoc-ref outputs "out"))
642 (el-dir (string-append out "/share/emacs/site-lisp"))
643 (doc (string-append
644 out "/share/doc/haskell-mode-" ,version))
645 (info (string-append out "/share/info")))
646 (define (copy-to-dir dir files)
647 (for-each (lambda (f)
648 (install-file f dir))
649 files))
650
651 (with-directory-excursion "doc"
652 (invoke "makeinfo" "haskell-mode.texi")
653 (install-file "haskell-mode.info" info))
654 (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md"))
655 (copy-to-dir el-dir (find-files "." "\\.elc?"))
656 ;; These are part of other packages.
657 (with-directory-excursion el-dir
658 (for-each delete-file '("dash.el" "ert.el")))
659 #t))))))
660 (home-page "https://github.com/haskell/haskell-mode")
661 (synopsis "Haskell mode for Emacs")
662 (description
663 "This is an Emacs mode for editing, debugging and developing Haskell
664 programs.")
665 (license license:gpl3+)))
666
667 (define-public haskell-mode
668 (deprecated-package "haskell-mode" emacs-haskell-mode))
669
670 (define-public emacs-flycheck
671 (package
672 (name "emacs-flycheck")
673 (version "31")
674 (source (origin
675 (method url-fetch)
676 (uri (string-append
677 "https://github.com/flycheck/flycheck/releases/download/"
678 version "/flycheck-" version ".tar"))
679 (sha256
680 (base32
681 "01rnwan16m7cyyrfca3c5c60mbj2r3knkpzbhji2fczsf0wns240"))
682 (modules '((guix build utils)))
683 (snippet `(begin
684 ;; Change 'flycheck-version' so that it does not
685 ;; attempt to get its version from pkg-info.el.
686 (substitute* "flycheck.el"
687 (("\\(pkg-info-version-info 'flycheck\\)")
688 (string-append "\"" ,version "\"")))
689 #t))))
690 (build-system emacs-build-system)
691 (propagated-inputs
692 `(("emacs-dash" ,emacs-dash)))
693 (home-page "https://www.flycheck.org")
694 (synopsis "On-the-fly syntax checking")
695 (description
696 "This package provides on-the-fly syntax checking for GNU Emacs. It is a
697 replacement for the older Flymake extension which is part of GNU Emacs, with
698 many improvements and additional features.
699
700 Flycheck provides fully-automatic, fail-safe, on-the-fly background syntax
701 checking for over 30 programming and markup languages with more than 70
702 different tools. It highlights errors and warnings inline in the buffer, and
703 provides an optional IDE-like error list.")
704 (license license:gpl3+))) ;+GFDLv1.3+ for the manual
705
706 (define-public emacs-a
707 (package
708 (name "emacs-a")
709 (version "0.1.1")
710 (source (origin
711 (method git-fetch)
712 (uri (git-reference
713 (url "https://github.com/plexus/a.el.git")
714 (commit (string-append "v" version))))
715 (file-name (git-file-name name version))
716 (sha256
717 (base32
718 "00v9w6qg3bkwdhypq0ssf0phdh0f4bcq59c20lngd6vhk0204dqi"))))
719 (build-system emacs-build-system)
720 (home-page "https://github.com/plexus/a.el/")
721 (synopsis
722 "Emacs library for dealing with association lists and hash tables")
723 (description "@code{emacs-a} provides Emacs Lisp functions for dealing
724 with associative structures in a uniform and functional way. These functions
725 can take association lists, hash tables, and in some cases vectors (where the
726 index is considered the key).")
727 (license license:gpl3+)))
728
729 (define-public emacs-ace-jump-mode
730 (package
731 (name "emacs-ace-jump-mode")
732 (version "2.0")
733 (home-page "https://github.com/winterTTr/ace-jump-mode")
734 (source (origin
735 (method git-fetch)
736 (uri (git-reference
737 (url home-page)
738 (commit (string-append "v" version))))
739 (sha256
740 (base32
741 "1bwvzh056ls2v7y26a0s4j5mj582dmds04lx4x6iqihs04ss74bb"))
742 (file-name (git-file-name name version))))
743 (build-system emacs-build-system)
744 (synopsis "Cursor location minor mode for fast navigation")
745 (description "Ace-jump-mode is a fast/direct cursor location minor
746 mode. It creates an N-Branch search tree internally and marks all
747 the possible position with predefined keys in within the whole Emacs
748 view. This allows you to move to the character, word, or line almost
749 directly.")
750 (license license:gpl3+)))
751
752 (define-public emacs-anaphora
753 (package
754 (name "emacs-anaphora")
755 (version "1.0.4")
756 (source
757 (origin
758 (method git-fetch)
759 (uri (git-reference
760 (url "https://github.com/rolandwalker/anaphora.git")
761 (commit (string-append "v" version))))
762 (file-name (git-file-name name version))
763 (sha256
764 (base32
765 "11fgiy029sqz7nvdm7dcal95lacryz9zql0x5h05z48nrrcl4bib"))))
766 (build-system emacs-build-system)
767 (home-page "https://github.com/rolandwalker/anaphora/")
768 (synopsis "Anaphoric expressions for Emacs Lisp")
769 (description "@code{emacs-anaphora} implements anaphoric expressions for
770 Emacs Lisp.
771
772 Anaphoric expressions implicitly create one or more temporary variables which
773 can be referred to during the expression. This technique can improve clarity
774 in certain cases. It also enables recursion for anonymous functions.")
775 (license license:public-domain)))
776
777 (define-public emacs-xr
778 (package
779 (name "emacs-xr")
780 (version "1.11")
781 (source
782 (origin
783 (method url-fetch)
784 (uri (string-append
785 "https://elpa.gnu.org/packages/xr-" version ".tar"))
786 (sha256
787 (base32
788 "0xwfs2mkmgf63sfp5jwmw0ybc8pa0rlxh5aqwb348ddgmclv322f"))))
789 (build-system emacs-build-system)
790 (home-page "http://elpa.gnu.org/packages/xr.html")
791 (synopsis "Convert string regexp to rx notation")
792 (description
793 "This is an inverse companion to the @code{rx} package for translating
794 regexps in string form to the @code{rx} notation. Its chief uses are:
795
796 @itemize
797 @item Migrating existing code to @code{rx} form, for better readability and
798 maintainability
799 @item Understanding complex regexp strings and finding errors in them
800 @end itemize
801
802 In addition to Emacs regexps, this package can also parse and troubleshoot
803 skip set strings, which are arguments to @code{skip-chars-forward} and
804 @code{skip-chars-backward}.")
805 (license license:gpl3+)))
806
807 (define-public emacs-relint
808 (package
809 (name "emacs-relint")
810 (version "1.7")
811 (source
812 (origin
813 (method url-fetch)
814 (uri (string-append
815 "https://elpa.gnu.org/packages/relint-" version ".el"))
816 (sha256
817 (base32
818 "0h9nc84yv5lmbaa8any6i3bqcn6xn1gy6cv6kqaywn0nnqrm17i1"))))
819 (build-system emacs-build-system)
820 (propagated-inputs `(("emacs-xr" ,emacs-xr)))
821 (home-page "https://github.com/mattiase/relint")
822 (synopsis "Elisp regexp mistake finder")
823 (description
824 "Relint (regular expression lint) scans Elisp files for mistakes in
825 regexps, including deprecated syntax and bad practice. It also checks the
826 regexp-like arguments to @code{skip-chars-forward} and
827 @code{skip-chars-backward}.")
828 (license license:gpl3+)))
829
830 \f
831 ;;;
832 ;;; Web browsing.
833 ;;;
834
835 (define-public emacs-w3m
836 ;; Emacs-w3m follows a "rolling release" model.
837 (package
838 (name "emacs-w3m")
839 (version "2018-11-11")
840 (source (origin
841 (method cvs-fetch)
842 (uri (cvs-reference
843 (root-directory
844 ":pserver:anonymous@cvs.namazu.org:/storage/cvsroot")
845 (module "emacs-w3m")
846 (revision version)))
847 (file-name (string-append name "-" version "-checkout"))
848 (sha256
849 (base32
850 "0nvahdbjs12zg7zsk4gql02mvnv56cf1rwj2f5p42lwp3xvswiwp"))))
851 (build-system gnu-build-system)
852 (native-inputs `(("autoconf" ,autoconf)
853 ("texinfo" ,texinfo)
854 ("emacs" ,emacs-minimal)))
855 (inputs `(("w3m" ,w3m)
856 ("imagemagick" ,imagemagick)))
857 (arguments
858 `(#:modules ((guix build gnu-build-system)
859 (guix build utils)
860 (guix build emacs-utils))
861 #:imported-modules (,@%gnu-build-system-modules
862 (guix build emacs-utils))
863 #:configure-flags
864 (let ((out (assoc-ref %outputs "out")))
865 (list (string-append "--with-lispdir="
866 out "/share/emacs/site-lisp")
867 (string-append "--with-icondir="
868 out "/share/images/emacs-w3m")
869 ;; Leave .el files uncompressed, otherwise GC can't
870 ;; identify run-time dependencies. See
871 ;; <http://lists.gnu.org/archive/html/guix-devel/2015-12/msg00208.html>
872 "--without-compress-install"))
873 #:tests? #f ; no check target
874 #:phases
875 (modify-phases %standard-phases
876 (add-after 'unpack 'autoconf
877 (lambda _
878 (invoke "autoconf")))
879 (add-before 'configure 'support-emacs!
880 (lambda _
881 ;; For some reason 'AC_PATH_EMACS' thinks that 'Emacs 26' is
882 ;; unsupported.
883 (substitute* "configure"
884 (("EMACS_FLAVOR=unsupported")
885 "EMACS_FLAVOR=emacs"))
886 #t))
887 (add-before 'build 'patch-exec-paths
888 (lambda* (#:key inputs outputs #:allow-other-keys)
889 (let ((out (assoc-ref outputs "out"))
890 (w3m (assoc-ref inputs "w3m"))
891 (imagemagick (assoc-ref inputs "imagemagick"))
892 (coreutils (assoc-ref inputs "coreutils")))
893 (make-file-writable "w3m.el")
894 (emacs-substitute-variables "w3m.el"
895 ("w3m-command" (string-append w3m "/bin/w3m"))
896 ("w3m-touch-command"
897 (string-append coreutils "/bin/touch"))
898 ("w3m-icon-directory"
899 (string-append out "/share/images/emacs-w3m")))
900 (make-file-writable "w3m-image.el")
901 (emacs-substitute-variables "w3m-image.el"
902 ("w3m-imagick-convert-program"
903 (string-append imagemagick "/bin/convert"))
904 ("w3m-imagick-identify-program"
905 (string-append imagemagick "/bin/identify")))
906 #t)))
907 (replace 'install
908 (lambda* (#:key outputs #:allow-other-keys)
909 (invoke "make" "install" "install-icons")
910 (with-directory-excursion
911 (string-append (assoc-ref outputs "out")
912 "/share/emacs/site-lisp")
913 (for-each delete-file '("ChangeLog" "ChangeLog.1"))
914 (symlink "w3m-load.el" "w3m-autoloads.el")
915 #t))))))
916 (home-page "http://emacs-w3m.namazu.org/")
917 (synopsis "Simple Web browser for Emacs based on w3m")
918 (description
919 "Emacs-w3m is an emacs interface for the w3m web browser.")
920 (license license:gpl2+)))
921
922 (define-public emacs-wget
923 (package
924 (name "emacs-wget")
925 (version "0.5.0")
926 (source (origin
927 (method url-fetch)
928 (uri (string-append "mirror://debian/pool/main/w/wget-el/wget-el_"
929 version ".orig.tar.gz"))
930 (sha256
931 (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff"))))
932 (build-system gnu-build-system)
933 (inputs `(("wget" ,wget)))
934 (native-inputs `(("emacs" ,emacs-minimal)))
935 (arguments
936 `(#:modules ((guix build gnu-build-system)
937 (guix build utils)
938 (guix build emacs-utils))
939 #:imported-modules (,@%gnu-build-system-modules
940 (guix build emacs-utils))
941 #:tests? #f ; no check target
942 #:phases
943 (modify-phases %standard-phases
944 (replace 'configure
945 (lambda* (#:key outputs #:allow-other-keys)
946 (substitute* "Makefile"
947 (("/usr/local") (assoc-ref outputs "out"))
948 (("/site-lisp/emacs-wget") "/site-lisp"))
949 #t))
950 (add-before 'build 'patch-exec-paths
951 (lambda* (#:key inputs outputs #:allow-other-keys)
952 (let ((wget (assoc-ref inputs "wget")))
953 (emacs-substitute-variables "wget.el"
954 ("wget-command" (string-append wget "/bin/wget"))))
955 #t))
956 (add-after 'install 'post-install
957 (lambda* (#:key outputs #:allow-other-keys)
958 (emacs-generate-autoloads
959 "wget" (string-append (assoc-ref outputs "out")
960 "/share/emacs/site-lisp/"))
961 #t)))))
962 (home-page "http://www.emacswiki.org/emacs/EmacsWget")
963 (synopsis "Simple file downloader for Emacs based on wget")
964 (description
965 "Emacs-wget is an emacs interface for the wget file downloader.")
966 (license license:gpl2+)))
967
968 \f
969 ;;;
970 ;;; Multimedia.
971 ;;;
972
973 (define-public emacs-emms
974 (package
975 (name "emacs-emms")
976 (version "5.2")
977 (source (origin
978 (method url-fetch)
979 (uri (string-append "mirror://gnu/emms/emms-"
980 version ".tar.gz"))
981 (sha256
982 (base32
983 "0cvpfdkagkpi8g02w8f7wzrpdk2ihas0mn5m9fr882xjdfshl21z"))
984 (modules '((guix build utils)))
985 (snippet
986 '(begin
987 (substitute* "Makefile"
988 (("/usr/bin/install-info")
989 ;; No need to use 'install-info' since it would create a
990 ;; useless 'dir' file.
991 "true")
992 (("^INFODIR=.*")
993 ;; Install Info files to $out/share/info, not $out/info.
994 "INFODIR := $(PREFIX)/share/info\n")
995 (("/site-lisp/emms")
996 ;; Install directly in share/emacs/site-lisp, not in a
997 ;; sub-directory.
998 "/site-lisp")
999 (("^all: (.*)\n" _ rest)
1000 ;; Build 'emms-print-metadata'.
1001 (string-append "all: " rest " emms-print-metadata\n")))
1002 #t))))
1003 (build-system gnu-build-system)
1004 (arguments
1005 `(#:modules ((guix build gnu-build-system)
1006 (guix build utils)
1007 (guix build emacs-utils)
1008 (ice-9 ftw))
1009 #:imported-modules (,@%gnu-build-system-modules
1010 (guix build emacs-utils))
1011
1012 #:phases
1013 (modify-phases %standard-phases
1014 (replace 'configure
1015 (lambda* (#:key inputs outputs #:allow-other-keys)
1016 (let ((out (assoc-ref outputs "out"))
1017 (flac (assoc-ref inputs "flac"))
1018 (vorbis (assoc-ref inputs "vorbis-tools"))
1019 (alsa (assoc-ref inputs "alsa-utils"))
1020 (mpg321 (assoc-ref inputs "mpg321"))
1021 (mp3info (assoc-ref inputs "mp3info"))
1022 (mutagen (assoc-ref inputs "mutagen"))
1023 (opus (assoc-ref inputs "opus-tools")))
1024 ;; Specify the installation directory.
1025 (substitute* "Makefile"
1026 (("PREFIX=.*$")
1027 (string-append "PREFIX := " out "\n")))
1028
1029 (setenv "SHELL" (which "sh"))
1030 (setenv "CC" "gcc")
1031
1032 ;; Specify the absolute file names of the various
1033 ;; programs so that everything works out-of-the-box.
1034 (with-directory-excursion "lisp"
1035 (emacs-substitute-variables
1036 "emms-player-mpg321-remote.el"
1037 ("emms-player-mpg321-remote-command"
1038 (string-append mpg321 "/bin/mpg321")))
1039 (substitute* "emms-player-simple.el"
1040 (("\"ogg123\"")
1041 (string-append "\"" vorbis "/bin/ogg123\"")))
1042 (substitute* "emms-player-simple.el"
1043 (("\"mpg321\"")
1044 (string-append "\"" mpg321 "/bin/mpg321\"")))
1045 (emacs-substitute-variables "emms-info-ogginfo.el"
1046 ("emms-info-ogginfo-program-name"
1047 (string-append vorbis "/bin/ogginfo")))
1048 (emacs-substitute-variables "emms-info-opusinfo.el"
1049 ("emms-info-opusinfo-program-name"
1050 (string-append opus "/bin/opusinfo")))
1051 (emacs-substitute-variables "emms-info-libtag.el"
1052 ("emms-info-libtag-program-name"
1053 (string-append out "/bin/emms-print-metadata")))
1054 (emacs-substitute-variables "emms-info-mp3info.el"
1055 ("emms-info-mp3info-program-name"
1056 (string-append mp3info "/bin/mp3info")))
1057 (emacs-substitute-variables "emms-info-metaflac.el"
1058 ("emms-info-metaflac-program-name"
1059 (string-append flac "/bin/metaflac")))
1060 (emacs-substitute-variables "emms-source-file.el"
1061 ("emms-source-file-gnu-find" (which "find")))
1062 (substitute* "emms-volume-amixer.el"
1063 (("\"amixer\"")
1064 (string-append "\"" alsa "/bin/amixer\"")))
1065 (substitute* "emms-tag-editor.el"
1066 (("\"mid3v2\"")
1067 (string-append "\"" mutagen "/bin/mid3v2\"")))
1068 #t))))
1069 (add-before 'install 'pre-install
1070 (lambda* (#:key outputs #:allow-other-keys)
1071 ;; The 'install' rule expects the target directories to exist.
1072 (let* ((out (assoc-ref outputs "out"))
1073 (bin (string-append out "/bin"))
1074 (man1 (string-append out "/share/man/man1")))
1075 (mkdir-p bin)
1076 (mkdir-p man1)
1077
1078 ;; Ensure that files are not rejected by gzip
1079 (let ((early-1980 315619200)) ; 1980-01-02 UTC
1080 (ftw "." (lambda (file stat flag)
1081 (unless (<= early-1980 (stat:mtime stat))
1082 (utime file early-1980 early-1980))
1083 #t)))
1084 #t)))
1085 (add-after 'install 'post-install
1086 (lambda* (#:key outputs #:allow-other-keys)
1087 (let ((out (assoc-ref outputs "out")))
1088 (symlink "emms-auto.el"
1089 (string-append out "/share/emacs/site-lisp/"
1090 "emms-autoloads.el")))
1091 #t)))
1092 #:tests? #f))
1093 (native-inputs `(("emacs" ,emacs-minimal) ;for (guix build emacs-utils)
1094 ("texinfo" ,texinfo)))
1095 (inputs `(("alsa-utils" ,alsa-utils)
1096 ("flac" ,flac) ;for metaflac
1097 ("vorbis-tools" ,vorbis-tools)
1098 ("mpg321" ,mpg321)
1099 ("taglib" ,taglib)
1100 ("mp3info" ,mp3info)
1101 ("mutagen" ,python-mutagen)
1102 ("opus-tools" ,opus-tools)))
1103 (properties '((upstream-name . "emms")))
1104 (synopsis "Emacs Multimedia System")
1105 (description
1106 "EMMS is the Emacs Multimedia System. It is a small front-end which
1107 can control one of the supported external players. Thus, it supports
1108 whatever formats are supported by your music player. It also
1109 supports tagging and playlist management, all behind a clean and
1110 light user interface.")
1111 (home-page "https://www.gnu.org/software/emms/")
1112 (license license:gpl3+)))
1113
1114 (define-public emacs-emms-player-mpv
1115 ;; A new mpv backend is included in Emms from 5.0.
1116 (deprecated-package "emacs-emms-player-mpv" emacs-emms))
1117
1118 (define-public emacs-emms-mode-line-cycle
1119 (package
1120 (name "emacs-emms-mode-line-cycle")
1121 (version "0.2.5")
1122 (source
1123 (origin
1124 (method git-fetch)
1125 (uri (git-reference
1126 (url "https://github.com/momomo5717/emms-mode-line-cycle")
1127 (commit version)))
1128 (file-name (git-file-name name version))
1129 (sha256
1130 (base32
1131 "0q80f0plch6k4lhs8c9qm3mfycfbp3kn5sjrk9zxgxwnn901y9mp"))))
1132 (build-system emacs-build-system)
1133 (propagated-inputs
1134 `(("emms" ,emacs-emms)))
1135 (home-page "https://github.com/momomo5717/emms-mode-line-cycle")
1136 (synopsis "Display the EMMS mode line as a ticker")
1137 (description
1138 "This is a minor mode for updating the EMMS mode-line string cyclically
1139 within a specified width. It is useful for displaying long track titles.")
1140 (license license:gpl3+)))
1141
1142 \f
1143 ;;;
1144 ;;; Miscellaneous.
1145 ;;;
1146
1147 (define-public emacs-ace-link
1148 (package
1149 (name "emacs-ace-link")
1150 (version "0.5.0")
1151 (source
1152 (origin
1153 (method git-fetch)
1154 (uri (git-reference
1155 (url "https://github.com/abo-abo/ace-link.git")
1156 (commit version)))
1157 (file-name (git-file-name name version))
1158 (sha256
1159 (base32
1160 "147dz79vg4ym5wg3d544bw2khdb2j3hr73rw4qfm64wf0q2dj0vk"))))
1161 (build-system emacs-build-system)
1162 (propagated-inputs
1163 `(("emacs-avy" ,emacs-avy)))
1164 (home-page "https://github.com/abo-abo/ace-link")
1165 (synopsis "Quickly follow links in Emacs")
1166 (description
1167 "Currently, to jump to a link in a @code{Info-mode}, @code{help-mode},
1168 @code{woman-mode}, @code{org-mode}, @code{eww-mode}, @code{compilation-mode},
1169 @code{goto-address-mode} buffer, you can tab through the links to select the
1170 one you want. This is an O(N) operation, where the N is the amount of links.
1171 This package turns this into an O(1) operation. It does so by assigning a
1172 letter to each link using avy.")
1173 (license license:gpl3+)))
1174
1175 (define-public emacs-bbdb
1176 (package
1177 (name "emacs-bbdb")
1178 (version "3.1.2")
1179 (source (origin
1180 (method url-fetch)
1181 (uri (string-append "mirror://savannah/bbdb/bbdb-"
1182 version ".tar.gz"))
1183 (sha256
1184 (base32
1185 "1gs16bbpiiy01w9pyg12868r57kx1v3hnw04gmqsmpc40l1hyy05"))
1186 (modules '((guix build utils)))
1187 (snippet
1188 ;; We don't want to build and install the PDF.
1189 '(begin
1190 (substitute* "doc/Makefile.in"
1191 (("^doc_DATA = .*$")
1192 "doc_DATA =\n"))
1193 #t))))
1194 (build-system gnu-build-system)
1195 (arguments
1196 '(#:phases
1197 (modify-phases %standard-phases
1198 (add-after 'install 'post-install
1199 (lambda* (#:key outputs #:allow-other-keys)
1200 ;; Add an autoloads file with the right name for guix.el.
1201 (let* ((out (assoc-ref outputs "out"))
1202 (site (string-append out "/share/emacs/site-lisp")))
1203 (with-directory-excursion site
1204 (symlink "bbdb-loaddefs.el" "bbdb-autoloads.el")))
1205 #t)))))
1206 (native-inputs `(("emacs" ,emacs-minimal)))
1207 (home-page "https://savannah.nongnu.org/projects/bbdb/")
1208 (synopsis "Contact management utility for Emacs")
1209 (description
1210 "BBDB is the Insidious Big Brother Database for GNU Emacs. It provides
1211 an address book for email and snail mail addresses, phone numbers and the
1212 like. It can be linked with various Emacs mail clients (Message and Mail
1213 mode, Rmail, Gnus, MH-E, and VM). BBDB is fully customizable.")
1214 (license license:gpl3+)))
1215
1216 (define-public bbdb
1217 (deprecated-package "bbdb" emacs-bbdb))
1218
1219 (define-public emacs-aggressive-indent
1220 (package
1221 (name "emacs-aggressive-indent")
1222 (version "1.8.3")
1223 (source (origin
1224 (method url-fetch)
1225 (uri (string-append "https://elpa.gnu.org/packages/"
1226 "aggressive-indent-" version ".el"))
1227 (sha256
1228 (base32
1229 "0jnzccl50x0wapprgwxinp99pwwa6j43q6msn4gv437j7swy8wnj"))))
1230 (build-system emacs-build-system)
1231 (home-page "https://elpa.gnu.org/packages/aggressive-indent.html")
1232 (synopsis "Minor mode to aggressively keep your code always indented")
1233 (description
1234 "@code{aggressive-indent-mode} is a minor mode that keeps your code
1235 always indented. It reindents after every change, making it more reliable
1236 than @code{electric-indent-mode}.")
1237 (license license:gpl2+)))
1238
1239 (define-public emacs-link-hint
1240 ;; Last release was in 2015.
1241 (let ((commit "d74a483652486260c052941fedeadddb1ea71f88")
1242 (revision "1"))
1243 (package
1244 (name "emacs-link-hint")
1245 (version (git-version "0.1" revision commit))
1246 (source
1247 (origin
1248 (method git-fetch)
1249 (uri (git-reference
1250 (url "https://github.com/noctuid/link-hint.el")
1251 (commit commit)))
1252 (file-name (git-file-name name version))
1253 (sha256
1254 (base32
1255 "0dghxd165fbds6czy9bfwpid3i4irgp3q08n9mg57sfifi0cmij0"))))
1256 (build-system emacs-build-system)
1257 (propagated-inputs
1258 `(("emacs-avy" ,emacs-avy)))
1259 (home-page "https://github.com/noctuid/link-hint.el")
1260 (synopsis "Vimperator-style link-hinting in Emacs")
1261 (description "This package provides commands for visiting and acting on
1262 links.")
1263 (license license:gpl3+))))
1264
1265 (define-public emacs-ag
1266 (package
1267 (name "emacs-ag")
1268 (version "0.47")
1269 (source (origin
1270 (method git-fetch)
1271 (uri (git-reference
1272 (url "https://github.com/Wilfred/ag.el.git")
1273 (commit version)))
1274 (file-name (git-file-name name version))
1275 (sha256
1276 (base32
1277 "15kp99vwyi7hb1jkq3lwvqzw3v62ycixsq6y4pd1x0nn2v5p5m5r"))))
1278 (build-system emacs-build-system)
1279 (arguments
1280 `(#:phases
1281 (modify-phases %standard-phases
1282 (add-before 'install 'make-info
1283 (lambda _
1284 (with-directory-excursion "docs"
1285 (invoke "make" "info"))))
1286 (add-after 'install 'install-info
1287 (lambda* (#:key outputs #:allow-other-keys)
1288 (let* ((out (assoc-ref outputs "out"))
1289 (info (string-append out "/share/info")))
1290 (install-file "docs/_build/texinfo/agel.info" info)
1291 #t))))))
1292 (native-inputs
1293 `(("python-sphinx" ,python-sphinx)
1294 ("texinfo" ,texinfo)))
1295 (propagated-inputs
1296 `(("dash" ,emacs-dash)
1297 ("s" ,emacs-s)
1298 ;; We need to use 'ag' as the executable on remote systems.
1299 ("the-silver-searcher" ,the-silver-searcher)))
1300 (home-page "https://github.com/Wilfred/ag.el")
1301 (synopsis "Front-end for ag (the-silver-searcher) for Emacs")
1302 (description "This package provides the ability to use the silver
1303 searcher, a code searching tool, sometimes abbreviated to @code{ag}. Features
1304 include version control system awareness, use of Perl compatible regular
1305 expressions, editing the search results directly and searching file names
1306 rather than the contents of files.")
1307 (license license:gpl3+)))
1308
1309 (define-public emacs-async
1310 (package
1311 (name "emacs-async")
1312 (home-page "https://github.com/jwiegley/emacs-async")
1313 (version "1.9.3")
1314 (source (origin
1315 (method git-fetch)
1316 (uri (git-reference
1317 (url home-page)
1318 (commit (string-append "v" version))))
1319 (file-name (git-file-name name version))
1320 (sha256
1321 (base32
1322 "1zsnb6dy8p6y68xgidv3dfxaga4biramfw8fq7wac0sc50vc98vq"))))
1323 (build-system emacs-build-system)
1324 (synopsis "Asynchronous processing in Emacs")
1325 (description
1326 "This package provides the ability to call asynchronous functions and
1327 processes. For example, it can be used to run dired commands (for copying,
1328 moving, etc.) asynchronously using @code{dired-async-mode}. Also it is used
1329 as a library for other Emacs packages.")
1330 (license license:gpl3+)))
1331
1332 (define-public emacs-auctex
1333 (package
1334 (name "emacs-auctex")
1335 (version "12.1.2")
1336 (source
1337 (origin
1338 (method url-fetch)
1339 (uri (string-append
1340 "https://elpa.gnu.org/packages/auctex-"
1341 version
1342 ".tar"))
1343 (sha256
1344 (base32
1345 "1yibg2anpmyr2a27wm4xqjsvsi9km2jzb56bf7cwyj8dnjfsd11n"))))
1346 (build-system emacs-build-system)
1347 ;; We use 'emacs' because AUCTeX requires dbus at compile time
1348 ;; ('emacs-minimal' does not provide dbus).
1349 (arguments
1350 `(#:emacs ,emacs
1351 #:include '("\\.el$" "^images/" "^latex/" "\\.info$")
1352 #:exclude '("^tests/" "^latex/README")))
1353 (native-inputs
1354 `(("perl" ,perl)))
1355 (home-page "https://www.gnu.org/software/auctex/")
1356 (synopsis "Integrated environment for TeX")
1357 (description
1358 "AUCTeX is a comprehensive customizable integrated environment for
1359 writing input files for TeX, LaTeX, ConTeXt, Texinfo, and docTeX using Emacs
1360 or XEmacs.")
1361 (license license:gpl3+)))
1362
1363 (define-public emacs-autothemer
1364 (package
1365 (name "emacs-autothemer")
1366 (version "0.2.2")
1367 (source
1368 (origin
1369 (method git-fetch)
1370 (uri (git-reference
1371 (url "https://github.com/sebastiansturm/autothemer.git")
1372 (commit version)))
1373 (file-name (git-file-name name version))
1374 (sha256
1375 (base32
1376 "0cd2pqh6k32sjidkcd8682y4l6mx52xw4a05f38kk8nsrk28m74k"))))
1377 (build-system emacs-build-system)
1378 (propagated-inputs
1379 `(("emacs-dash" ,emacs-dash)))
1380 (home-page "https://github.com/sebastiansturm/autothemer")
1381 (synopsis "Conveniently create Emacs themes")
1382 (description
1383 "Autothemer provides a thin layer on top of @code{deftheme} and
1384 @code{custom-theme-set-faces} that creates a new custom color theme, based on
1385 a set of simplified face specifications and a user-supplied color palette")
1386 (license license:gpl3+)))
1387
1388 (define-public emacs-howm
1389 (package
1390 (name "emacs-howm")
1391 (version "1.4.4")
1392 (source
1393 (origin
1394 (method url-fetch)
1395 (uri (string-append "http://howm.sourceforge.jp/a/howm-"
1396 version ".tar.gz"))
1397 (sha256
1398 (base32
1399 "0ddm91l6z58j7x59fa966j6q1rg4cinyza4r8ibg80hprn5h31qk"))))
1400 (build-system gnu-build-system)
1401 (native-inputs
1402 `(("emacs" ,emacs-minimal)))
1403 (arguments
1404 `(#:configure-flags
1405 (list (string-append "--with-howmdir=" %output
1406 "/share/emacs/site-lisp/guix.d/howm-" ,version))
1407 #:modules ((guix build gnu-build-system)
1408 ((guix build emacs-build-system) #:prefix emacs:)
1409 (guix build utils))
1410 #:imported-modules (,@%gnu-build-system-modules
1411 (guix build emacs-build-system)
1412 (guix build emacs-utils))
1413 #:phases
1414 (modify-phases %standard-phases
1415 (add-after 'install 'make-autoloads
1416 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
1417 (home-page "http://howm.osdn.jp/")
1418 (synopsis "Note-taking tool for Emacs")
1419 (description "Howm is a note-taking tool for Emacs. Like
1420 code@{emacs-wiki.el}, it facilitates using hyperlinks and doing full-text
1421 searches. Unlike code@{emacs-wiki.el}, it can be combined with any format.")
1422 (license license:gpl1+)))
1423
1424 (define-public emacs-calfw
1425 (package
1426 (name "emacs-calfw")
1427 (version "1.6")
1428 (source
1429 (origin
1430 (method git-fetch)
1431 (uri (git-reference
1432 (url "https://github.com/kiwanami/emacs-calfw.git")
1433 (commit (string-append "v" version))))
1434 (file-name (git-file-name name version))
1435 (sha256
1436 (base32
1437 "0r42cagvmvvib76kd15nd9ix55ys6i549vxnls4z16s864695zpa"))))
1438 (build-system emacs-build-system)
1439 (propagated-inputs
1440 `(("emacs-howm" ,emacs-howm)))
1441 (home-page "https://github.com/kiwanami/emacs-calfw/")
1442 (synopsis "Calendar framework for Emacs")
1443 (description
1444 "This package displays a calendar view with various schedule data in the
1445 Emacs buffer.")
1446 (license license:gpl3+)))
1447
1448 (define-public emacs-direnv
1449 (package
1450 (name "emacs-direnv")
1451 (version "1.5.0")
1452 (source
1453 (origin
1454 (method git-fetch)
1455 (uri (git-reference
1456 (url "https://github.com/wbolster/emacs-direnv.git")
1457 (commit version)))
1458 (file-name (git-file-name name version))
1459 (sha256
1460 (base32
1461 "02blhinkkfh3iai6j1k5swplf5mkwijy3p7wy38rnd1gnyj2z4la"))))
1462 (build-system emacs-build-system)
1463 (propagated-inputs
1464 `(("dash" ,emacs-dash)
1465 ("with-editor" ,emacs-with-editor)))
1466 (home-page "https://github.com/wbolster/emacs-direnv")
1467 (synopsis "Direnv integration for Emacs")
1468 (description
1469 "This package provides support for invoking direnv to get the environment
1470 for the current file and updating the environment within Emacs to match.
1471
1472 Direnv can be invoked manually, and a global minor mode is included that will
1473 update the environment when the active buffer changes.
1474
1475 Using emacs-direnv means that programs started from Emacs will use the
1476 environment set through Direnv.")
1477 (license license:gpl3+)))
1478
1479 (define-public emacs-ggtags
1480 (package
1481 (name "emacs-ggtags")
1482 (version "0.8.13")
1483 (source
1484 (origin
1485 (method url-fetch)
1486 (uri (string-append "http://elpa.gnu.org/packages/ggtags-"
1487 version ".el"))
1488 (sha256
1489 (base32
1490 "1qa7lcrcmf76sf6dy8sxbg4adq7rg59fm0n5848w3qxgsr0h45fg"))))
1491 (build-system emacs-build-system)
1492 (inputs
1493 `(("global" ,global)))
1494 (arguments
1495 `(#:phases
1496 (modify-phases %standard-phases
1497 (add-after 'unpack 'configure
1498 (lambda* (#:key inputs #:allow-other-keys)
1499 (chmod "ggtags.el" #o644)
1500 (emacs-substitute-variables "ggtags.el"
1501 ("ggtags-executable-directory"
1502 (string-append (assoc-ref inputs "global") "/bin")))
1503 #t)))))
1504 (home-page "https://github.com/leoliu/ggtags")
1505 (synopsis "Frontend to the GNU Global source code tagging system")
1506 (description "@code{ggtags} provides a frontend to the GNU Global source
1507 code tagging system.
1508
1509 Features:
1510
1511 @itemize
1512 @item Build on @code{compile.el} for asynchronicity and its large feature-set.
1513 @item Automatically update Global's tag files when needed with tuning for
1514 large source trees.
1515 @item Intuitive navigation among multiple matches with mode-line display of
1516 current match, total matches and exit status.
1517 @item Read tag with completion.
1518 @item Show definition at point.
1519 @item Jump to #include files.
1520 @item Support search history and saving a search to register/bookmark.
1521 @item Query replace.
1522 @item Manage Global's environment variables on a per-project basis.
1523 @item Highlight (definition) tag at point.
1524 @item Abbreviated display of file names.
1525 @item Support all Global search backends: @code{grep}, @code{idutils}, etc.
1526 @item Support exuberant ctags @url{http://ctags.sourceforge.net/} and
1527 @code{pygments} backend.
1528 @item Support all Global's output formats: @code{grep}, @code{ctags-x},
1529 @code{cscope} etc.
1530 @item Support projects on remote hosts (e.g. via @code{tramp}).
1531 @item Support eldoc.
1532 @item Search @code{GTAGSLIBPATH} for references and symbols.
1533 @end itemize\n")
1534 (license license:gpl3+)))
1535
1536 (define-public emacs-go-mode
1537 (package
1538 (name "emacs-go-mode")
1539 (version "1.5.0")
1540 (source (origin
1541 (method git-fetch)
1542 (uri (git-reference
1543 (url "https://github.com/dominikh/go-mode.el.git")
1544 (commit (string-append "v" version))))
1545 (file-name (git-file-name name version))
1546 (sha256
1547 (base32
1548 "1nd2h50yb0493wvf1h7fzplq45rmqn2w7kxpgnlxzhkvq99v8vzf"))))
1549 (build-system emacs-build-system)
1550 (arguments
1551 `(#:phases
1552 (modify-phases %standard-phases
1553 (add-after 'unpack 'make-writable
1554 (lambda _
1555 (for-each make-file-writable (find-files "." "\\.el$"))
1556 #t)))))
1557 (home-page "https://github.com/dominikh/go-mode.el")
1558 (synopsis "Go mode for Emacs")
1559 (description
1560 "This package provides go-mode, an Emacs mode for working with software
1561 written in the Go programming language.")
1562 (license license:bsd-3)))
1563
1564 (define-public emacs-google-maps
1565 (package
1566 (name "emacs-google-maps")
1567 (version "1.0.0")
1568 (source (origin
1569 (method git-fetch)
1570 (uri (git-reference
1571 (url "https://github.com/jd/google-maps.el.git")
1572 (commit version)))
1573 (file-name (git-file-name name version))
1574 (sha256
1575 (base32
1576 "183igr5lp20zcqi7rc01fk76sfxdhksd74i11v16gdsifdkjimd0"))))
1577 (build-system emacs-build-system)
1578 (home-page "https://github.com/jd/google-maps.el")
1579 (synopsis "Access Google Maps from Emacs")
1580 (description "The @code{google-maps} package allows to display Google
1581 Maps directly inside Emacs.")
1582 (license license:gpl3+)))
1583
1584 (define-public emacs-graphviz-dot-mode
1585 (let ((commit "c456a2b65c734089e6c44e87209a5a432a741b1a")
1586 (revision "1"))
1587 (package
1588 (name "emacs-graphviz-dot-mode")
1589 (version (string-append "0.3.11-" revision "."
1590 (string-take commit 7)))
1591 (source (origin
1592 (method git-fetch)
1593 (uri (git-reference
1594 (url "https://github.com/ppareit/graphviz-dot-mode.git")
1595 (commit commit)))
1596 (file-name (git-file-name name version))
1597 (sha256
1598 (base32
1599 "0j1r2rspaakw37b0mx7pwpvdsvixq9sw3xjbww5piihzpdxz58z1"))))
1600 (build-system emacs-build-system)
1601 (arguments
1602 `(#:phases
1603 (modify-phases %standard-phases
1604 (add-before 'install 'make-info
1605 (lambda* (#:key inputs #:allow-other-keys)
1606 (with-directory-excursion "texinfo"
1607 (substitute* "Makefile"
1608 (("\\/usr\\/bin\\/gzip")
1609 (string-append (assoc-ref inputs "gzip") "/bin/gzip")))
1610 (invoke "make"
1611 "clean"
1612 "info"
1613 (string-append "TEXINFODIR="
1614 (assoc-ref inputs "texinfo")
1615 "/bin")))))
1616 (add-after 'install 'install-info
1617 (lambda* (#:key outputs #:allow-other-keys)
1618 (let* ((out (assoc-ref outputs "out"))
1619 (info (string-append out "/share/info")))
1620 (install-file "texinfo/graphviz-dot-mode.info.gz" info)
1621 #t))))))
1622 (native-inputs
1623 `(("texinfo" ,texinfo)
1624 ("gzip" ,gzip)))
1625 (home-page "http://ppareit.github.com/graphviz-dot-mode")
1626 (synopsis "Major mode for editing Graphviz Dot files")
1627 (description
1628 "This Emacs packages helps you to create @file{.dot} or @file{.gv}
1629 files using the dot syntax, and use Graphviz to convert these files to
1630 diagrams.")
1631 (license license:gpl2+))))
1632
1633 (define-public emacs-mmm-mode
1634 (package
1635 (name "emacs-mmm-mode")
1636 (version "0.5.7")
1637 (source
1638 (origin
1639 (method git-fetch)
1640 (uri (git-reference
1641 (url "https://github.com/purcell/mmm-mode.git")
1642 (commit version)))
1643 (file-name (git-file-name name version))
1644 (sha256
1645 (base32
1646 "0lxd55yhz0ag7v1ydff55bg4h8snq5lbk8cjwxqpyq6gh4v7md1h"))))
1647 (build-system gnu-build-system)
1648 (native-inputs
1649 `(("autoconf" ,autoconf)
1650 ("automake" ,automake)
1651 ("emacs" ,emacs-minimal)
1652 ("texinfo" ,texinfo)))
1653 (home-page "https://github.com/purcell/mmm-mode")
1654 (synopsis "Allow multiple major modes in an Emacs buffer")
1655 (description
1656 "MMM Mode is a minor mode that allows multiple major modes to coexist in a
1657 single buffer.")
1658 (license license:gpl3+)))
1659
1660 (define-public emacs-tablist
1661 (package
1662 (name "emacs-tablist")
1663 (version "0.70")
1664 (source (origin
1665 (method git-fetch)
1666 (uri (git-reference
1667 (url "https://github.com/politza/tablist.git")
1668 (commit (string-append "v" version))))
1669 (file-name (git-file-name name version))
1670 (sha256
1671 (base32
1672 "0gy9hxm7bca0l1hfy2pzn86avpifrz3bs8xzpicj4kxw5wi4ygns"))))
1673 (build-system emacs-build-system)
1674 (home-page "https://github.com/politza/tablist")
1675 (synopsis "Extension for @code{tabulated-list-mode}")
1676 (description "Tablist is the Emacs package that provides several
1677 additional features to @code{tabulated-list-mode}: it adds marks,
1678 filters, new key bindings and faces. It can be enabled by
1679 @code{tablist-mode} or @code{tablist-minor-mode} commands.")
1680 (license license:gpl3+)))
1681
1682 (define-public emacs-pdf-tools
1683 (package
1684 (name "emacs-pdf-tools")
1685 (version "0.90")
1686 (home-page "https://github.com/politza/pdf-tools")
1687 (source (origin
1688 (method git-fetch)
1689 (uri (git-reference (url home-page)
1690 (commit (string-append "v" version))))
1691 (file-name (git-file-name name version))
1692 (sha256
1693 (base32
1694 "0iv2g5kd14zk3r5dzdw7b7hk4b5w7qpbilcqkja46jgxbb6xnpl9"))))
1695 (build-system gnu-build-system)
1696 (arguments
1697 `(#:tests? #f ; there are no tests
1698 #:modules ((guix build gnu-build-system)
1699 ((guix build emacs-build-system) #:prefix emacs:)
1700 (guix build utils)
1701 (guix build emacs-utils))
1702 #:imported-modules (,@%gnu-build-system-modules
1703 (guix build emacs-build-system)
1704 (guix build emacs-utils))
1705 #:phases
1706 (modify-phases %standard-phases
1707 ;; Build server side using 'gnu-build-system'.
1708 (add-after 'unpack 'enter-server-dir
1709 (lambda _ (chdir "server") #t))
1710 (add-after 'enter-server-dir 'autogen
1711 (lambda _
1712 (invoke "bash" "autogen.sh")))
1713
1714 ;; Build emacs side using 'emacs-build-system'.
1715 (add-after 'compress-documentation 'enter-lisp-dir
1716 (lambda _ (chdir "../lisp") #t))
1717 (add-after 'enter-lisp-dir 'emacs-patch-variables
1718 (lambda* (#:key outputs #:allow-other-keys)
1719 (for-each make-file-writable (find-files "."))
1720
1721 ;; Set path to epdfinfo program.
1722 (emacs-substitute-variables "pdf-info.el"
1723 ("pdf-info-epdfinfo-program"
1724 (string-append (assoc-ref outputs "out")
1725 "/bin/epdfinfo")))
1726 ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto
1727 ;; upgrading" that pdf-tools tries to perform.
1728 (emacs-substitute-variables "pdf-tools.el"
1729 ("pdf-tools-handle-upgrades" '()))))
1730 (add-after 'emacs-patch-variables 'emacs-set-emacs-load-path
1731 (assoc-ref emacs:%standard-phases 'set-emacs-load-path))
1732 (add-after 'emacs-set-emacs-load-path 'emacs-install
1733 (assoc-ref emacs:%standard-phases 'install))
1734 (add-after 'emacs-install 'emacs-build
1735 (assoc-ref emacs:%standard-phases 'build))
1736 (add-after 'emacs-install 'emacs-make-autoloads
1737 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
1738 (native-inputs `(("autoconf" ,autoconf)
1739 ("automake" ,automake)
1740 ("pkg-config" ,pkg-config)
1741 ("emacs" ,emacs-minimal)))
1742 (inputs `(("poppler" ,poppler)
1743 ("cairo" ,cairo)
1744 ("glib" ,glib)
1745 ("libpng" ,libpng)
1746 ("zlib" ,zlib)))
1747 (propagated-inputs `(("tablist" ,emacs-tablist)))
1748 (synopsis "Emacs support library for PDF files")
1749 (description
1750 "PDF Tools is, among other things, a replacement of DocView for PDF
1751 files. The key difference is that pages are not pre-rendered by
1752 e.g. ghostscript and stored in the file-system, but rather created on-demand
1753 and stored in memory.")
1754 (license license:gpl3+)))
1755
1756 (define-public emacs-dash
1757 (package
1758 (name "emacs-dash")
1759 (version "2.16.0")
1760 (source (origin
1761 (method git-fetch)
1762 (uri (git-reference
1763 (url "https://github.com/magnars/dash.el.git")
1764 (commit version)))
1765 (file-name (git-file-name name version))
1766 (sha256
1767 (base32
1768 "150k48llqz2mb66vbznpyj47r6g16amfl7hbg8q46djq8mp7zc2v"))))
1769 (build-system emacs-build-system)
1770 (arguments
1771 `(#:tests? #t
1772 #:test-command '("./run-tests.sh")))
1773 (home-page "https://github.com/magnars/dash.el")
1774 (synopsis "Modern list library for Emacs")
1775 (description "This package provides a modern list API library for Emacs.")
1776 (license license:gpl3+)))
1777
1778 (define-public emacs-bui
1779 (package
1780 (name "emacs-bui")
1781 (version "1.2.1")
1782 (source (origin
1783 (method git-fetch)
1784 (uri (git-reference
1785 (url "https://notabug.org/alezost/emacs-bui.git")
1786 (commit (string-append "v" version))))
1787 (file-name (git-file-name name version))
1788 (sha256
1789 (base32
1790 "0sszdl4kvqbihdh8d7mybpp0d8yw2p3gyiipjcxz9xhvvmw3ww4x"))))
1791 (build-system emacs-build-system)
1792 (propagated-inputs
1793 `(("dash" ,emacs-dash)))
1794 (home-page "https://notabug.org/alezost/emacs-bui")
1795 (synopsis "Buffer interface library for Emacs")
1796 (description
1797 "BUI (Buffer User Interface) is a library for making @code{list} and
1798 @code{info} interfaces to display an arbitrary data of the same
1799 type, for example: packages, buffers, files, etc.")
1800 (license license:gpl3+)))
1801
1802 (define-public emacs-guix
1803 (package
1804 (name "emacs-guix")
1805 (version "0.5.1.1")
1806 (source (origin
1807 (method url-fetch)
1808 (uri (string-append "https://emacs-guix.gitlab.io/website/"
1809 "releases/emacs-guix-" version ".tar.gz"))
1810 (sha256
1811 (base32
1812 "1gxg7lan3njc2yg2d02b2zij0d2cm2pv2q08nqz86s85jk3b6m03"))))
1813 (build-system gnu-build-system)
1814 (arguments
1815 `(#:configure-flags
1816 (let ((guix (assoc-ref %build-inputs "guix"))
1817 (gcrypt (assoc-ref %build-inputs "guile-gcrypt"))
1818 (geiser (assoc-ref %build-inputs "geiser"))
1819 (dash (assoc-ref %build-inputs "dash"))
1820 (bui (assoc-ref %build-inputs "bui"))
1821 (magit-popup (assoc-ref %build-inputs "magit-popup"))
1822 (edit-indirect (assoc-ref %build-inputs "edit-indirect"))
1823 (site-lisp "/share/emacs/site-lisp")
1824 (site-scm "/share/guile/site")
1825 (site-go "/lib/guile")
1826 (guile-dir (lambda (dir)
1827 (car (find-files dir
1828 (lambda (file stat)
1829 (string-prefix?
1830 "2." (basename file)))
1831 #:directories? #t)))))
1832 (list (string-append "--with-guix-site-dir="
1833 (guile-dir (string-append guix site-scm)))
1834 (string-append "--with-guix-site-ccache-dir="
1835 (guile-dir (string-append guix site-go))
1836 "/site-ccache")
1837 (string-append "--with-guile-gcrypt-site-dir="
1838 (guile-dir (string-append gcrypt site-scm)))
1839 (string-append "--with-guile-gcrypt-site-ccache-dir="
1840 (guile-dir (string-append gcrypt site-go))
1841 "/site-ccache")
1842 (string-append "--with-geiser-lispdir=" geiser site-lisp)
1843 (string-append "--with-dash-lispdir="
1844 dash site-lisp "/guix.d/dash-"
1845 ,(package-version emacs-dash))
1846 (string-append "--with-bui-lispdir="
1847 bui site-lisp "/guix.d/bui-"
1848 ,(package-version emacs-bui))
1849 (string-append "--with-editindirect-lispdir="
1850 edit-indirect site-lisp "/guix.d/edit-indirect-"
1851 ,(package-version emacs-edit-indirect))
1852 (string-append "--with-popup-lispdir="
1853 magit-popup site-lisp "/guix.d/magit-popup-"
1854 ,(package-version emacs-magit-popup))))))
1855 (native-inputs
1856 `(("pkg-config" ,pkg-config)
1857 ("emacs" ,emacs-minimal)))
1858 (inputs
1859 `(("guile" ,guile-2.2)
1860 ("guix" ,guix)))
1861 (propagated-inputs
1862 `(("geiser" ,emacs-geiser)
1863 ("guile-gcrypt" ,guile-gcrypt)
1864 ("dash" ,emacs-dash)
1865 ("bui" ,emacs-bui)
1866 ("edit-indirect" ,emacs-edit-indirect)
1867 ("magit-popup" ,emacs-magit-popup)))
1868 (home-page "https://emacs-guix.gitlab.io/website/")
1869 (synopsis "Emacs interface for GNU Guix")
1870 (description
1871 "Emacs-Guix provides a visual interface, tools and features for the GNU
1872 Guix package manager. Particularly, it allows you to do various package
1873 management tasks from Emacs. To begin with, run @code{M-x guix-about} or
1874 @code{M-x guix-help} command.")
1875 (license license:gpl3+)))
1876
1877 (define-public emacs-build-farm
1878 (package
1879 (name "emacs-build-farm")
1880 (version "0.2.2")
1881 (source (origin
1882 (method git-fetch)
1883 (uri (git-reference
1884 (url "https://notabug.org/alezost/emacs-build-farm.git")
1885 (commit (string-append "v" version))))
1886 (file-name (git-file-name name version))
1887 (sha256
1888 (base32
1889 "0i0bwbav5861j2y15j9nd5m9rdqg9q97zgcbld8pivr9nyxy63lz"))))
1890 (build-system emacs-build-system)
1891 (propagated-inputs
1892 `(("bui" ,emacs-bui)
1893 ("magit-popup" ,emacs-magit-popup)))
1894 (home-page "https://notabug.org/alezost/emacs-build-farm")
1895 (synopsis "Emacs interface for Hydra and Cuirass build farms")
1896 (description
1897 "This Emacs package provides an interface for Hydra and
1898 Cuirass (build farms used by Nix and Guix). It allows you to look at
1899 various data related to the build farm projects, jobsets, builds and
1900 evaluations. The entry point is @code{M-x build-farm} command.")
1901 (license license:gpl3+)))
1902
1903 (define-public emacs-d-mode
1904 (package
1905 (name "emacs-d-mode")
1906 (version "2.0.9")
1907 (source
1908 (origin
1909 (method git-fetch)
1910 (uri (git-reference
1911 (url "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode.git")
1912 (commit version)))
1913 (file-name (git-file-name name version))
1914 (sha256
1915 (base32 "0fzplvi1sm8k2sabfdvrd7j2xypwqh0g9v1mxa75dajdmcd85zpj"))))
1916 (build-system emacs-build-system)
1917 (propagated-inputs
1918 `(("emacs-undercover" ,emacs-undercover)))
1919 (home-page "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
1920 (synopsis "Emacs major mode for editing D code")
1921 (description "This package provides an Emacs major mode for highlighting
1922 code written in the D programming language. This mode is currently known to
1923 work with Emacs 24 and 25.")
1924 (license license:gpl2+)))
1925
1926 (define-public emacs-keyfreq
1927 (package
1928 (name "emacs-keyfreq")
1929 (version "20160516.716")
1930 (source
1931 (origin
1932 (method url-fetch)
1933 (uri (string-append "http://melpa.org/packages/keyfreq-"
1934 version ".el"))
1935 (sha256
1936 (base32
1937 "008hd7d06qskc3mx0bbdgpgy2pwxr8185fzlyqf9qjg49y74p6g8"))))
1938 (build-system emacs-build-system)
1939 (home-page "https://github.com/dacap/keyfreq")
1940 (synopsis "Track Emacs command frequencies")
1941 (description "@code{emacs-keyfeq} tracks and shows how many times you used
1942 a command.")
1943 (license license:gpl3+)))
1944
1945 (define-public emacs-olivetti
1946 (package
1947 (name "emacs-olivetti")
1948 (version "1.5.7")
1949 (source (origin
1950 (method url-fetch)
1951 (uri (string-append
1952 "https://stable.melpa.org/packages/olivetti-"
1953 version ".el"))
1954 (sha256
1955 (base32
1956 "1yj2ylg46q0pw1xzlv2b0fv9x8p56x25284s9v2smwjr4vf0nwcj"))))
1957 (build-system emacs-build-system)
1958 (home-page "https://github.com/rnkn/olivetti")
1959 (synopsis "Emacs minor mode for a nice writing environment")
1960 (description "This package provides an Emacs minor mode that puts writing
1961 in the center.")
1962 (license license:gpl3+)))
1963
1964 (define-public emacs-undo-tree
1965 (package
1966 (name "emacs-undo-tree")
1967 (version "0.6.6")
1968 (source (origin
1969 (method git-fetch)
1970 (uri (git-reference
1971 (url "http://dr-qubit.org/git/undo-tree.git")
1972 (commit (string-append "release/" version))))
1973 (file-name (git-file-name name version))
1974 (sha256
1975 (base32
1976 "1hnh2mnmw179gr094r561w6cw1haid0lpvpqvkc24wpj82vphzpa"))))
1977 (build-system emacs-build-system)
1978 (home-page "http://www.dr-qubit.org/emacs.php")
1979 (synopsis "Treat undo history as a tree")
1980 (description "Tree-like interface to Emacs undo system, providing
1981 graphical tree presentation of all previous states of buffer that
1982 allows easily move between them.")
1983 (license license:gpl3+)))
1984
1985 (define-public emacs-s
1986 (package
1987 (name "emacs-s")
1988 (version "1.12.0")
1989 (source
1990 (origin
1991 (method git-fetch)
1992 (uri (git-reference
1993 (url "https://github.com/magnars/s.el.git")
1994 (commit version)))
1995 (file-name (git-file-name name version))
1996 (sha256
1997 (base32 "1g8mqd13llj007al4nlxxx4z2lcsg3wk970mgjn0avwrhjjgdmmv"))))
1998 (build-system emacs-build-system)
1999 (arguments
2000 `(#:tests? #t
2001 #:emacs ,emacs ; FIXME: tests fail with emacs-minimal
2002 #:test-command '("./run-tests.sh")))
2003 (home-page "https://github.com/magnars/s.el")
2004 (synopsis "Emacs string manipulation library")
2005 (description "This package provides an Emacs library for manipulating
2006 strings.")
2007 (license license:gpl3+)))
2008
2009 (define-public emacs-symon
2010 (package
2011 (name "emacs-symon")
2012 (version "20160630")
2013 (source
2014 (origin
2015 (method git-fetch)
2016 (uri (git-reference
2017 (url "https://github.com/zk-phi/symon.git")
2018 (commit version)))
2019 (file-name (git-file-name name version))
2020 (sha256
2021 (base32 "1q7di9s8k710nx98wnqnbkkhdimrn0jf6z4xkm4c78l6s5idjwlz"))))
2022 (build-system emacs-build-system)
2023 (home-page "https://github.com/zk-phi/symon")
2024 (synopsis "Tiny graphical system monitor")
2025 (description
2026 "Tiny graphical system monitor for the Emacs minibuffer when idle.")
2027 (license license:gpl2+)))
2028
2029 (define-public emacs-sx
2030 (let ((version "20180212")
2031 (revision "1")
2032 (commit "833435fbf90d1c9e927d165b155f3b1ef39271de"))
2033 (package
2034 (name "emacs-sx")
2035 (version (git-version version revision commit))
2036 (source
2037 (origin
2038 (method git-fetch)
2039 (uri (git-reference
2040 (url "https://github.com/vermiculus/sx.el")
2041 (commit commit)))
2042 (file-name (git-file-name name version))
2043 (sha256
2044 (base32
2045 "1369xaxq1vy3d9yh862ddnhddikdpg2d0wv1ly00pnvdp9v4cqgd"))))
2046 (build-system emacs-build-system)
2047 (propagated-inputs
2048 `(("emacs-markdown-mode" ,emacs-markdown-mode)))
2049 (home-page "https://github.com/vermiculus/sx.el")
2050 (synopsis "Emacs StackExchange client")
2051 (description
2052 "Emacs StackExchange client. Ask and answer questions on
2053 Stack Overflow, Super User, and other StackExchange sites.")
2054 (license license:gpl3+))))
2055
2056 (define-public emacs-f
2057 (package
2058 (name "emacs-f")
2059 (version "0.20.0")
2060 (source (origin
2061 (method git-fetch)
2062 (uri (git-reference
2063 (url "https://github.com/rejeep/f.el.git")
2064 (commit (string-append "v" version))))
2065 (file-name (git-file-name name version))
2066 (sha256
2067 (base32
2068 "1a47xk3yp1rp17fqg7ldl3d3fb888h0fz3sysqfdz1bfdgs8a9bk"))))
2069 (build-system emacs-build-system)
2070 (propagated-inputs
2071 `(("emacs-s" ,emacs-s)
2072 ("emacs-dash" ,emacs-dash)))
2073 (home-page "https://github.com/rejeep/f.el")
2074 (synopsis "Emacs API for working with files and directories")
2075 (description "This package provides an Emacs library for working with
2076 files and directories.")
2077 (license license:gpl3+)))
2078
2079 (define-public emacs-git-gutter
2080 (package
2081 (name "emacs-git-gutter")
2082 (version "0.90")
2083 (source
2084 (origin
2085 (method git-fetch)
2086 (uri (git-reference
2087 (url "https://github.com/syohex/emacs-git-gutter.git")
2088 (commit version)))
2089 (file-name (git-file-name name version))
2090 (sha256
2091 (base32 "1abagq0psip7cgsqbfjv72qy60ywsny0ibsfcn74ldj6a9v17mz5"))))
2092 (build-system emacs-build-system)
2093 (home-page "https://github.com/syohex/emacs-git-gutter")
2094 (synopsis "See and manage hunks of text in a version control system")
2095 (description
2096 "This package is an Emacs minor mode for displaying and interacting with
2097 hunks of text managed in a version control system. Added modified and deleted
2098 areas can be indicated with symbols on the edge of the buffer, and commands
2099 can be used to move between and perform actions on these hunks.
2100
2101 Git, Mercurial, Subversion and Bazaar are supported, and many parts of the
2102 display and behaviour is easily customisable.")
2103 (license license:gpl3+)))
2104
2105 (define-public emacs-git-timemachine
2106 (package
2107 (name "emacs-git-timemachine")
2108 (version "4.5")
2109 (source
2110 (origin
2111 (method url-fetch)
2112 (uri (string-append "https://gitlab.com/pidu/git-timemachine"
2113 "/-/archive/" version
2114 "/git-timemachine-" version ".tar.gz"))
2115 (file-name (string-append name "-" version ".tar.gz"))
2116 (sha256
2117 (base32
2118 "0ii40qcincasg7s1yrvqcxkqcqzb4sfs7gcxscn6m4x4ans165zy"))))
2119 (build-system emacs-build-system)
2120 (home-page "https://gitlab.com/pidu/git-timemachine")
2121 (synopsis "Step through historic versions of Git-controlled files")
2122 (description "This package enables you to step through historic versions
2123 of files under Git version control from within Emacs.")
2124 (license license:gpl3+)))
2125
2126 (define-public emacs-minitest
2127 (let ((commit "1aadb7865c1dc69c201cecee275751ecec33a182")
2128 (revision "1"))
2129 (package
2130 (name "emacs-minitest")
2131 (version (git-version "0.8.0" revision commit))
2132 (source (origin
2133 (method git-fetch)
2134 (uri (git-reference
2135 (url "https://github.com/arthurnn/minitest-emacs")
2136 (commit commit)))
2137 (file-name (git-file-name name commit))
2138 (sha256
2139 (base32
2140 "1l18zqpdzbnqj2qawq8hj7z7pl8hr8z9d8ihy8jaiqma915hmhj1"))))
2141 (build-system emacs-build-system)
2142 (arguments
2143 '(#:include (cons "^snippets\\/minitest-mode\\/" %default-include)
2144 #:exclude (delete "^[^/]*tests?\\.el$" %default-exclude)))
2145 (propagated-inputs
2146 `(("emacs-dash" ,emacs-dash)
2147 ("emacs-f" ,emacs-f)))
2148 (home-page "https://github.com/arthurnn/minitest-emacs")
2149 (synopsis "Emacs minitest mode")
2150 (description
2151 "The minitest mode provides commands to run the tests for the current
2152 file or line, as well as rerunning the previous tests, or all the tests for a
2153 project.
2154
2155 This package also includes relevant snippets for yasnippet.")
2156 (license license:expat))))
2157
2158 (define-public emacs-el-mock
2159 (package
2160 (name "emacs-el-mock")
2161 (version "1.25.1")
2162 (source
2163 (origin
2164 (method git-fetch)
2165 (uri (git-reference
2166 (url "https://github.com/rejeep/el-mock.el.git")
2167 (commit (string-append "v" version))))
2168 (file-name (git-file-name name version))
2169 (sha256
2170 (base32 "13mv1rhgkwiww2wh5w926jz7idppp492wir1vdl245c5x50dh4f7"))))
2171 (build-system emacs-build-system)
2172 (home-page "https://github.com/rejeep/el-mock.el")
2173 (synopsis "Tiny mock and stub framework in Emacs Lisp")
2174 (description
2175 "Emacs Lisp Mock is a library for mocking and stubbing using readable
2176 syntax. Most commonly Emacs Lisp Mock is used in conjunction with Emacs Lisp
2177 Expectations, but it can be used in other contexts.")
2178 (license license:gpl3+)))
2179
2180 (define-public emacs-espuds
2181 (package
2182 (name "emacs-espuds")
2183 (version "0.3.3")
2184 (source
2185 (origin
2186 (method git-fetch)
2187 (uri (git-reference
2188 (url "https://github.com/ecukes/espuds.git")
2189 (commit (string-append "v" version))))
2190 (file-name (git-file-name name version))
2191 (sha256
2192 (base32 "16r4j27j9yfdiy841w9q5ykkc6n3wrm7hvfacagb32mydk821ijg"))))
2193 (build-system emacs-build-system)
2194 (propagated-inputs
2195 `(("emacs-s" ,emacs-s)
2196 ("emacs-dash" ,emacs-dash)
2197 ("emacs-f" ,emacs-f)))
2198 (home-page "https://github.com/ecukes/espuds")
2199 (synopsis "Common step definitions for Ecukes")
2200 (description "Espuds is a collection of the most commonly used step
2201 definitions for testing with the Ecukes framework.")
2202 (license license:gpl3+)))
2203
2204 (define-public emacs-spark
2205 (let ((version "20160503") ; no proper tag, use date of commit
2206 (commit "0bf148c3ede3b31d56fd75f347cdd0b0eae60025")
2207 (revision "1"))
2208 (package
2209 (name "emacs-spark")
2210 (version (git-version version revision commit))
2211 (source
2212 (origin
2213 (method git-fetch)
2214 (uri (git-reference
2215 (url "https://github.com/alvinfrancis/spark.git")
2216 (commit commit)))
2217 (file-name (git-file-name name version))
2218 (sha256
2219 (base32
2220 "1ykqr86j17mi95s08d9fp02d7ych1331b04dcqxzxnmpkhwngyj1"))))
2221 (build-system emacs-build-system)
2222 (home-page "https://github.com/alvinfrancis/spark")
2223 (synopsis "Sparkline generation library for Emacs Lisp")
2224 (description "@code{emacs-spark} is a sparkline generation library for
2225 Emacs Lisp. It generates a sparkline string given a list of numbers. It is a
2226 port of @code{cl-spark} to Emacs Lisp.")
2227 (license license:expat))))
2228
2229 (define-public emacs-es-mode
2230 (package
2231 (name "emacs-es-mode")
2232 (version "4.3.0")
2233 (source
2234 (origin
2235 (method git-fetch)
2236 (uri (git-reference
2237 (url "https://github.com/dakrone/es-mode.git")
2238 (commit version)))
2239 (file-name (git-file-name name version))
2240 (sha256
2241 (base32 "1qhfnd5anp5qrmravv7ks5ix763xnki2f5jwcyj70qyxwr0l60cg"))))
2242 (build-system emacs-build-system)
2243 (propagated-inputs
2244 ;; The version of org in Emacs 24.5 is not sufficient, and causes tables
2245 ;; to be rendered incorrectly
2246 `(("emacs-dash" ,emacs-dash)
2247 ("emacs-org" ,emacs-org)
2248 ("emacs-spark" ,emacs-spark)))
2249 (home-page "https://github.com/dakrone/es-mode")
2250 (synopsis "Major mode for editing Elasticsearch queries")
2251 (description "@code{es-mode} includes highlighting, completion and
2252 indentation support for Elasticsearch queries. Also supported are
2253 @code{es-mode} blocks in @code{org-mode}, for which the results of queries can
2254 be processed through @code{jq}, or in the case of aggregations, can be
2255 rendered in to a table. In addition, there is an @code{es-command-center}
2256 mode, which displays information about Elasticsearch clusters.")
2257 (license license:gpl3+)))
2258
2259 (define-public emacs-expand-region
2260 (package
2261 (name "emacs-expand-region")
2262 (version "0.11.0")
2263 (source
2264 (origin
2265 (method git-fetch)
2266 (uri (git-reference
2267 (url "https://github.com/magnars/expand-region.el.git")
2268 (commit version)))
2269 (file-name (git-file-name name version))
2270 (sha256
2271 (base32 "0h40dhc3kn8fq86xnwi5lz7ql8my8737y7wkqr897p15y90swr35"))))
2272 (build-system emacs-build-system)
2273 (home-page "https://github.com/magnars/expand-region.el")
2274 (synopsis "Increase selected region by semantic units")
2275 (description
2276 "Expand region increases the selected region by semantic units. Just
2277 keep pressing the key until it selects what you want. There's also
2278 @code{er/contract-region} if you expand too far.")
2279 (license license:gpl3+)))
2280
2281 (define-public emacs-fill-column-indicator
2282 (package
2283 (name "emacs-fill-column-indicator")
2284 (version "1.89")
2285 (source
2286 (origin
2287 (method git-fetch)
2288 (uri (git-reference
2289 (url "https://github.com/alpaker/Fill-Column-Indicator.git")
2290 (commit (string-append "v" version))))
2291 (file-name (git-file-name name version))
2292 (sha256
2293 (base32 "010kf8jsly74y7m6mmkn1h6y205kz23zphs50zgy2nag2p88rz9y"))))
2294 (build-system emacs-build-system)
2295 (home-page "https://www.emacswiki.org/emacs/FillColumnIndicator")
2296 (synopsis "Graphically indicate the fill column")
2297 (description
2298 "Fill-column-indicator graphically indicates the location of the fill
2299 column by drawing a thin line down the length of the editing window.")
2300 (license license:gpl3+)))
2301
2302 (define-public emacs-grep-a-lot
2303 (package
2304 (name "emacs-grep-a-lot")
2305 (version "1.0.7")
2306 (source
2307 (origin
2308 (method git-fetch)
2309 (uri (git-reference
2310 (url "https://github.com/ZungBang/emacs-grep-a-lot.git")
2311 (commit "9f9f645b9e308a0d887b66864ff97d0fca1ba4ad")))
2312 (file-name (git-file-name name version))
2313 (sha256
2314 (base32 "1f8262mrlinzgnn4m49hbj1hm3c1mvzza24py4b37sasn49546lw"))))
2315 (build-system emacs-build-system)
2316 (home-page "https://github.com/ZungBang/emacs-grep-a-lot")
2317 (synopsis "Enables multiple grep buffers in Emacs")
2318 (description
2319 "This Emacs package allows managing multiple grep buffers.")
2320 (license license:gpl3+)))
2321
2322 (define-public emacs-inf-ruby
2323 (package
2324 (name "emacs-inf-ruby")
2325 (version "2.5.1")
2326 (source
2327 (origin
2328 (method git-fetch)
2329 (uri (git-reference
2330 (url "https://github.com/nonsequitur/inf-ruby.git")
2331 (commit version)))
2332 (file-name (git-file-name name version))
2333 (sha256
2334 (base32 "1r452h6cyypqlc59q8dx5smkwhck4qjcg1pf9qdw539cpva5q77z"))))
2335 (build-system emacs-build-system)
2336 (home-page "https://github.com/nonsequitur/inf-ruby")
2337 (synopsis "Provides a REPL buffer connected to a Ruby subprocess in Emacs")
2338 (description
2339 "@code{inf-ruby} provides a Read Eval Print Loop (REPL) buffer, allowing
2340 for easy interaction with a ruby subprocess. Features include support for
2341 detecting specific uses of Ruby, e.g. when using rails, and using a
2342 appropriate console.")
2343 (license license:gpl3+)))
2344
2345 (define-public emacs-znc
2346 (package
2347 (name "emacs-znc")
2348 (version "0.0.2")
2349 (source
2350 (origin
2351 (method url-fetch)
2352 (uri (string-append "https://marmalade-repo.org/packages/znc-"
2353 version ".el"))
2354 (sha256
2355 (base32
2356 "1d8lqvybgyazin5z0g1c4l3rg1vzrrvf0saqs53jr1zcdg0lianh"))))
2357 (build-system emacs-build-system)
2358 (home-page "https://github.com/sshirokov/ZNC.el")
2359 (synopsis "Make ERC and ZNC get along better")
2360 (description
2361 "This is a thin wrapper around @code{erc} that enables one to use the ZNC
2362 IRC bouncer with ERC.")
2363 (license license:expat)))
2364
2365 (define-public emacs-shut-up
2366 (package
2367 (name "emacs-shut-up")
2368 (version "0.3.2")
2369 (source
2370 (origin
2371 (method git-fetch)
2372 (uri (git-reference
2373 (url "https://github.com/cask/shut-up.git")
2374 (commit (string-append "v" version))))
2375 (file-name (git-file-name name version))
2376 (sha256
2377 (base32 "103yvfgkj78i4bnv1fwk76izsa8h4wyj3vwj1vq7xggj607hkxzq"))))
2378 (build-system emacs-build-system)
2379 (home-page "https://github.com/cask/shut-up")
2380 (synopsis "Silence Emacs")
2381 (description "This package silences most output of Emacs when running an
2382 Emacs shell script.")
2383 (license license:expat)))
2384
2385 (define-public emacs-undercover
2386 (package
2387 (name "emacs-undercover")
2388 (version "0.6.0")
2389 (source
2390 (origin
2391 (method git-fetch)
2392 (uri (git-reference
2393 (url "https://github.com/sviridov/undercover.el.git")
2394 (commit (string-append "v" version))))
2395 (file-name (git-file-name name version))
2396 (sha256
2397 (base32 "06qcvbp5rd0kh3ibrxj5p6r578lwsrgd7yj5c6slwmkdmna2fj33"))))
2398 (build-system emacs-build-system)
2399 (propagated-inputs
2400 `(("emacs-dash" ,emacs-dash)
2401 ("emacs-shut-up" ,emacs-shut-up)))
2402 (home-page "https://github.com/sviridov/undercover.el")
2403 (synopsis "Test coverage library for Emacs Lisp")
2404 (description
2405 "Undercover is a test coverage library for software written in Emacs
2406 Lisp.")
2407 (license license:expat)))
2408
2409 (define-public emacs-paren-face
2410 (package
2411 (name "emacs-paren-face")
2412 (version "1.0.0")
2413 (source
2414 (origin
2415 (method git-fetch)
2416 (uri (git-reference
2417 (url "https://github.com/tarsius/paren-face.git")
2418 (commit version)))
2419 (file-name (git-file-name name version))
2420 (sha256
2421 (base32 "0f128gqn170s6hl62n44i9asais75ns1mpvb4l8vzy1sc0v16c0k"))))
2422 (build-system emacs-build-system)
2423 (home-page "https://github.com/tarsius/paren-face")
2424 (synopsis "Face for parentheses in lisp modes")
2425 (description
2426 "This library defines a face named @code{parenthesis} used just for
2427 parentheses. The intended purpose of this face is to make parentheses less
2428 visible in Lisp code by dimming them. Lispers probably don't need to be
2429 constantly made aware of the existence of the parentheses. Dimming them might
2430 be even more useful for people new to lisp who have not yet learned to
2431 subconsciously blend out the parentheses.")
2432 (license license:gpl3+)))
2433
2434 (define-public emacs-page-break-lines
2435 (package
2436 (name "emacs-page-break-lines")
2437 (version "0.11")
2438 (source
2439 (origin
2440 (method git-fetch)
2441 (uri (git-reference
2442 (url "https://github.com/purcell/page-break-lines.git")
2443 (commit version)))
2444 (file-name (git-file-name name version))
2445 (sha256
2446 (base32 "1wp974716ih2cz9kdmdz7xwjy1qnnfzdzlfr9kchknagw8d9nn12"))))
2447 (build-system emacs-build-system)
2448 (home-page "https://github.com/purcell/page-break-lines")
2449 (synopsis "Display page breaks as tidy horizontal lines")
2450 (description
2451 "This library provides a global mode which displays form feed characters
2452 as horizontal rules.")
2453 (license license:gpl3+)))
2454
2455 (define-public emacs-simple-httpd
2456 (package
2457 (name "emacs-simple-httpd")
2458 (version "1.4.6")
2459 (source
2460 (origin
2461 (method git-fetch)
2462 (uri (git-reference
2463 (url "https://github.com/skeeto/emacs-web-server.git")
2464 (commit version)))
2465 (file-name (git-file-name name version))
2466 (sha256
2467 (base32 "1qmkc0w28l53zzf5yd2grrk1sq222g5qnsm35ph25s1cfvc1qb2g"))))
2468 (build-system emacs-build-system)
2469 (home-page "https://github.com/skeeto/emacs-http-server")
2470 (synopsis "HTTP server in pure Emacs Lisp")
2471 (description
2472 "This package provides a simple HTTP server written in Emacs Lisp to
2473 serve files and directory listings.")
2474 (license license:unlicense)))
2475
2476 (define-public emacs-skewer-mode
2477 (package
2478 (name "emacs-skewer-mode")
2479 (version "1.6.2")
2480 (source
2481 (origin
2482 (method git-fetch)
2483 (uri (git-reference
2484 (url "https://github.com/skeeto/skewer-mode.git")
2485 (commit version)))
2486 (file-name (git-file-name name version))
2487 (sha256
2488 (base32 "05jndz0c26q60s416vqgvr66axdmxb7qsr2g70fvl5iqavnayhpv"))))
2489 (build-system emacs-build-system)
2490 (propagated-inputs
2491 `(("emacs-simple-httpd" ,emacs-simple-httpd)
2492 ("emacs-js2-mode" ,emacs-js2-mode)))
2493 (arguments '(#:include '("\\.el$" "\\.js$" "\\.html$")))
2494 (home-page "https://github.com/skeeto/skewer-mode")
2495 (synopsis "Live web development in Emacs")
2496 (description
2497 "Skewer-mode provides live interaction with JavaScript, CSS, and HTML in
2498 a web browser. Expressions are sent on-the-fly from an editing buffer to be
2499 evaluated in the browser, just like Emacs does with an inferior Lisp process
2500 in Lisp modes.")
2501 (license license:unlicense)))
2502
2503 (define-public emacs-string-inflection
2504 (package
2505 (name "emacs-string-inflection")
2506 (version "1.0.6")
2507 (source (origin
2508 (method git-fetch)
2509 (uri (git-reference
2510 (url "https://github.com/akicho8/string-inflection")
2511 (commit "a150e7bdda60b7824d3a936750ce23f73b0e4edd")))
2512 (file-name (git-file-name name version))
2513 (sha256
2514 (base32
2515 "1k0sm552iawi49v4zis6dbb81d1rzgky9v0dpv7nj31gnb7bmy7k"))))
2516 (build-system emacs-build-system)
2517 (native-inputs
2518 `(("ert-runner" ,emacs-ert-runner)))
2519 (arguments
2520 `(#:tests? #t
2521 #:test-command '("ert-runner")))
2522 (home-page "https://github.com/akicho8/string-inflection")
2523 (synopsis "Convert symbol names between different naming conventions")
2524 (description
2525 "This Emacs package provides convenient methods for manipulating the
2526 naming style of a symbol. It supports different naming conventions such as:
2527
2528 @enumerate
2529 @item camel case
2530 @item Pascal case
2531 @item all upper case
2532 @item lower case separated by underscore
2533 @item etc...
2534 @end enumerate\n")
2535 (license license:gpl2+)))
2536
2537 (define-public emacs-stripe-buffer
2538 (package
2539 (name "emacs-stripe-buffer")
2540 (version "0.2.5")
2541 (source
2542 (origin
2543 (method git-fetch)
2544 (uri (git-reference
2545 (url "https://github.com/sabof/stripe-buffer.git")
2546 (commit version)))
2547 (file-name (git-file-name name version))
2548 (sha256
2549 (base32 "035ym1c1vzg6hjsnd258z4dkrfc11lj4c0y4gpgybhk54dq3w9dk"))))
2550 (build-system emacs-build-system)
2551 (home-page "https://github.com/sabof/stripe-buffer/")
2552 (synopsis "Add stripes to list buffers")
2553 (description
2554 "This Emacs package adds faces to add stripes to list buffers and org
2555 tables.")
2556 (license license:gpl2+)))
2557
2558 (define-public emacs-rich-minority
2559 (package
2560 (name "emacs-rich-minority")
2561 (version "1.0.1")
2562 (source
2563 (origin
2564 (method git-fetch)
2565 (uri (git-reference
2566 (url "https://github.com/Malabarba/rich-minority.git")
2567 (commit version)))
2568 (file-name (git-file-name name version))
2569 (sha256
2570 (base32 "11hwf9y5ax207w6rwrsmi3pmn7pn7ap6iys0z8hni2f5zzxjrmx3"))))
2571 (build-system emacs-build-system)
2572 (home-page "https://github.com/Malabarba/rich-minority")
2573 (synopsis "Clean-up and beautify the list of minor modes")
2574 (description
2575 "This Emacs package hides and/or highlights minor modes in the
2576 mode-line.")
2577 (license license:gpl2+)))
2578
2579 (define-public emacs-robe
2580 (package
2581 (name "emacs-robe")
2582 (version "0.8.1")
2583 (source
2584 (origin
2585 (method git-fetch)
2586 (uri (git-reference
2587 (url "https://github.com/dgutov/robe.git")
2588 (commit version)))
2589 (file-name (git-file-name name version))
2590 (sha256
2591 (base32 "0ll7ivxqnglfb0i70ly6qq2yfw9cyi3vq3lmj4s6h6c1c7rm3gcq"))))
2592 (build-system emacs-build-system)
2593 (arguments
2594 '(#:include (cons "^lib\\/" %default-include)))
2595 (propagated-inputs
2596 `(("emacs-inf-ruby" ,emacs-inf-ruby)))
2597 (home-page "https://github.com/dgutov/robe")
2598 (synopsis "Ruby code assistance tool for Emacs")
2599 (description
2600 "Robe can provide information on loaded classes and modules in Ruby code,
2601 as well as where methods are defined. This allows the user to jump to method
2602 definitions, modules and classes, display method documentation and provide
2603 method and constant name completion.")
2604 (license license:gpl3+)))
2605
2606 (define-public emacs-robot-mode
2607 (let ((commit "32846e7e80ae3471b7c07f9709dcaa4f9b9ed4a0")
2608 (revision "1"))
2609 (package
2610 (name "emacs-robot-mode")
2611 (version (git-version "0.0.0" revision commit))
2612 (source (origin
2613 (method git-fetch)
2614 (uri (git-reference
2615 ;; A better maintained fork of robot-mode.
2616 (url "https://github.com/jvalkeejarvi/robot-mode.git")
2617 (commit commit)))
2618 (file-name (git-file-name name version))
2619 (sha256
2620 (base32
2621 "1i8wf7m0gml8zvvmlgppjzv78b432686p1qdbzgclc7qfcvzag0d"))))
2622 (build-system emacs-build-system)
2623 (propagated-inputs `(("emacs-s" ,emacs-s)))
2624 (home-page "https://github.com/jvalkeejarvi/robot-mode")
2625 (synopsis "Emacs mode for Robot Framework")
2626 (description "This major mode facilitates editing Robot Framework source
2627 files with features such as syntax highlighting, comments, finding keywords,
2628 completing keywords and smart indentation.")
2629 (license license:gpl3+))))
2630
2631 (define-public emacs-rspec
2632 (package
2633 (name "emacs-rspec")
2634 (version "1.11")
2635 (source
2636 (origin
2637 (method git-fetch)
2638 (uri (git-reference
2639 (url "https://github.com/pezra/rspec-mode.git")
2640 (commit (string-append "v" version))))
2641 (file-name (git-file-name name version))
2642 (sha256
2643 (base32 "0hrn5n7aaymwimk511kjij44vqaxbmhly1gwmlmsrnbvvma7f2mp"))))
2644 (build-system emacs-build-system)
2645 (home-page "https://github.com/pezra/rspec-mode")
2646 (synopsis "Provides a rspec mode for working with RSpec")
2647 (description
2648 "The Emacs RSpec mode provides keybindings for Ruby source files, e.g. to
2649 verify the spec associated with the current buffer, or entire project, as well
2650 as moving between the spec files, and corresponding code files.
2651
2652 Also included are keybindings for spec files and Dired buffers, as well as
2653 snippets for yasnippet.")
2654 (license license:gpl3+)))
2655
2656 (define-public emacs-smart-mode-line
2657 (package
2658 (name "emacs-smart-mode-line")
2659 (version "2.12.0")
2660 (source
2661 (origin
2662 (method git-fetch)
2663 (uri (git-reference
2664 (url "https://github.com/Malabarba/smart-mode-line.git")
2665 (commit version)))
2666 (file-name (git-file-name name version))
2667 (sha256
2668 (base32 "1gs4ay9hdg8gmia4ir74qawk80pqwv99hp4yhy108kpfry5mrq6z"))))
2669 (build-system emacs-build-system)
2670 (propagated-inputs
2671 `(("emacs-rich-minority" ,emacs-rich-minority)))
2672 (home-page "https://github.com/Malabarba/smart-mode-line")
2673 (synopsis "Color-coded smart mode-line")
2674 (description
2675 "Smart Mode Line is a mode-line theme for Emacs. It aims to be easy to
2676 read from small to large monitors by using colors, a prefix feature, and smart
2677 truncation.")
2678 (license license:gpl2+)))
2679
2680 (define-public emacs-sr-speedbar
2681 (let ((commit "77a83fb50f763a465c021eca7343243f465b4a47")
2682 (revision "0"))
2683 (package
2684 (name "emacs-sr-speedbar")
2685 (version (git-version "20161025" revision commit))
2686 (source
2687 (origin
2688 (method git-fetch)
2689 (uri (git-reference
2690 (url "https://github.com/emacsorphanage/sr-speedbar.git")
2691 (commit commit)))
2692 (file-name (git-file-name name version))
2693 (sha256
2694 (base32
2695 "0sd12555hk7z721y00kv3crdybvcn1i08wmd148z5imayzibj153"))))
2696 (build-system emacs-build-system)
2697 (home-page "https://www.emacswiki.org/emacs/SrSpeedbar")
2698 (synopsis "Same frame Emacs @code{speedbar}")
2699 (description
2700 "This Emacs package allows you to show @code{M-x speedbar} in the
2701 same frame (in an extra window). You can customize the initial width of
2702 the speedbar window.")
2703 (license license:gpl3+))))
2704
2705 (define-public emacs-shell-switcher
2706 (package
2707 (name "emacs-shell-switcher")
2708 (version "1.0.1")
2709 (source
2710 (origin
2711 (method git-fetch)
2712 (uri (git-reference
2713 (url "https://github.com/DamienCassou/shell-switcher.git")
2714 (commit (string-append "v" version))))
2715 (file-name (git-file-name name version))
2716 (sha256
2717 (base32 "0ia7sdip4hl27avckv3qpqgm3k4ynvp3xxq1cy53bqfzzx0gcria"))))
2718 (build-system emacs-build-system)
2719 (home-page "https://github.com/DamienCassou/shell-switcher")
2720 (synopsis "Provide fast switching between shell buffers")
2721 (description
2722 "This package provides commands to quickly switch between shell buffers.")
2723 (license license:gpl3+)))
2724
2725 (define-public emacs-names
2726 (let ((commit "d8baba5360e5253938a25d3e005455b6d2d86971")
2727 (version "20151201.0")
2728 (revision "8"))
2729 (package
2730 (name "emacs-names")
2731 (version (git-version version revision commit))
2732 (source
2733 (origin
2734 (method git-fetch)
2735 (uri (git-reference
2736 (url "https://github.com/Malabarba/names")
2737 (commit commit)))
2738 (file-name (git-file-name name version))
2739 (sha256
2740 (base32
2741 "11wyha2q8y7bzqq3jrzix8n97ywvsibvddrahqcps1a1yqk4hzfz"))))
2742 (build-system emacs-build-system)
2743 (home-page "https://github.com/Malabarba/names/")
2744 (synopsis "Namespace implementation for Emacs Lisp")
2745 (description
2746 "This package provides a macro that writes your namespaces for you.")
2747 (license license:gpl3+))))
2748
2749 (define-public emacs-evil-textobj-syntax
2750 (let ((commit "2d9ba8c75c754b409aea7469f46a5cfa52a872f3")
2751 (version "0")
2752 (revision "1"))
2753 (package
2754 (name "emacs-evil-textobj-syntax")
2755 (version (git-version version revision commit))
2756 (source
2757 (origin
2758 (method git-fetch)
2759 (uri (git-reference
2760 (url "https://github.com/laishulu/evil-textobj-syntax/")
2761 (commit commit)))
2762 (file-name (git-file-name name version))
2763 (sha256
2764 (base32
2765 "031p5i3274dazp7rz6m5y38shfgszm1clmkcf58qfqlvy978ammc"))))
2766 (build-system emacs-build-system)
2767 (propagated-inputs `(("emacs-evil" ,emacs-evil)
2768 ("emacs-names" ,emacs-names)))
2769 (home-page "https://github.com/laishulu/evil-textobj-syntax/")
2770 (synopsis "Text objects based on syntax highlighting")
2771 (description
2772 "This package provides text objects for @code{evil-mode} with
2773 boundaries defined by syntax highlighting.")
2774 (license license:gpl3+))))
2775
2776 (define-public emacs-flycheck-flow
2777 (let ((commit "9e8e52cfc98af6a23fd906f9cb5d5d470d8cf82d")
2778 (version "1.1")
2779 (revision "1"))
2780 (package
2781 (name "emacs-flycheck-flow")
2782 (version (git-version version revision commit))
2783 (source
2784 (origin
2785 (method git-fetch)
2786 (uri (git-reference
2787 (url "https://github.com/lbolla/emacs-flycheck-flow")
2788 (commit commit)))
2789 (file-name (git-file-name name version))
2790 (sha256
2791 (base32
2792 "14qldlisbmxzammr500gyha2hiv2xgyzfc6mysqii06kbcqn1ik1"))))
2793 (build-system emacs-build-system)
2794 (propagated-inputs
2795 `(("emacs-flycheck" ,emacs-flycheck)))
2796 (home-page "https://github.com/lbolla/emacs-flycheck-flow")
2797 (synopsis "Flow support for @code{flycheck-mode}")
2798 (description
2799 "This package allows @code{flycheck-mode} to provide syntax-checking
2800 for Flow files.")
2801 (license license:gpl3+))))
2802
2803 (define-public emacs-elisp-demos
2804 (let ((commit "4c1fbc392668662890b685ab297e950259227e06")
2805 (version "0.1")
2806 (revision "1"))
2807 (package
2808 (name "emacs-elisp-demos")
2809 (version (git-version version revision commit))
2810 (source
2811 (origin
2812 (method git-fetch)
2813 (uri (git-reference
2814 (url "https://github.com/xuchunyang/elisp-demos")
2815 (commit commit)))
2816 (file-name (git-file-name name version))
2817 (sha256
2818 (base32
2819 "01cbkmjgmzxdf02w9xgbf4bhnx1mh53vvpkri13yxfksym5zizp4"))))
2820 (build-system emacs-build-system)
2821 (arguments '(#:include '("\\.el$" "\\.org$")))
2822 (home-page "https://github.com/xuchunyang/elisp-demos/")
2823 (synopsis "Enhance @code{*Help*} buffers with additional examples")
2824 (description
2825 "This package injects example uses of Elisp functions into their
2826 respective @code{*Help*} buffers.")
2827 (license license:gpl3+))))
2828
2829 (define-public emacs-docker-compose-mode
2830 (package
2831 (name "emacs-docker-compose-mode")
2832 (version "1.1.0")
2833 (source
2834 (origin
2835 (method git-fetch)
2836 (uri (git-reference
2837 (url "https://github.com/meqif/docker-compose-mode")
2838 (commit version)))
2839 (file-name (git-file-name name version))
2840 (sha256
2841 (base32
2842 "1fbcxwfvm33xcdj3cs26d9i1zyrryyjjkv7sc3mfxd45nq8d3ivj"))))
2843 (build-system emacs-build-system)
2844 (propagated-inputs
2845 `(("emacs-dash" ,emacs-dash)
2846 ("emacs-f" ,emacs-f)))
2847 (home-page "https://github.com/meqif/docker-compose-mode/")
2848 (synopsis "Major mode for editing @file{docker-compose} files")
2849 (description
2850 "This is a major mode for @file{docker-compose} files that provides
2851 completion of relevant keywords.")
2852 (license license:expat)))
2853
2854 (define-public emacs-sudo-edit
2855 (let ((commit "cc3d478937b1accd38742bfceba92af02ee9357d")
2856 (version "0.1.0")
2857 (revision "6"))
2858 (package
2859 (name "emacs-sudo-edit")
2860 (version (git-version version revision commit))
2861 (source
2862 (origin
2863 (method git-fetch)
2864 (uri (git-reference
2865 (url "https://github.com/nflath/sudo-edit")
2866 (commit commit)))
2867 (file-name (git-file-name name version))
2868 (sha256
2869 (base32
2870 "1qv58x5j5a3v1s2ylhck1ykbfclq0mbi0gsvaql3nyv8cxazqlwl"))))
2871 (build-system emacs-build-system)
2872 (home-page "https://github.com/nflath/sudo-edit/")
2873 (synopsis "Open files as another user")
2874 (description
2875 "This package allows editing files as another user, including the root
2876 user.")
2877 (license license:gpl3+))))
2878
2879 (define-public emacs-miniedit
2880 (package
2881 (name "emacs-miniedit")
2882 (version "2.0")
2883 (source
2884 (origin
2885 (method git-fetch)
2886 (uri (git-reference
2887 (url "https://github.com/emacsmirror/miniedit")
2888 (commit version)))
2889 (file-name (git-file-name name version))
2890 (sha256
2891 (base32
2892 "1850z96gly0jnr50472idqz1drzqarr0n23bbasslrc501xkg0bq"))))
2893 (build-system emacs-build-system)
2894 (home-page "https://github.com/emacsmirror/miniedit/")
2895 (synopsis "Enhanced editing for minibuffer fields")
2896 (description
2897 "This package provides a function that can be called from the
2898 minibuffer to enable editing the minibuffer input in another buffer with
2899 @code{text-mode} enabled.")
2900 (license license:gpl2+)))
2901
2902 (define-public emacs-ob-ipython
2903 (package
2904 (name "emacs-ob-ipython")
2905 (version "20150704.8807064693")
2906 (source (origin
2907 (method git-fetch)
2908 (uri (git-reference
2909 (commit "880706469338ab59b5bb7dbe8460016f89755364")
2910 (url "https://github.com/gregsexton/ob-ipython.git")))
2911 (file-name (git-file-name name version))
2912 (sha256
2913 (base32
2914 "1scf25snbds9ymagpny30ijbsg479r3nm0ih01dy4m9d0g7qryb7"))))
2915 (build-system emacs-build-system)
2916 (propagated-inputs
2917 `(("emacs-f" ,emacs-f)))
2918 (home-page "http://www.gregsexton.org")
2919 (synopsis "Org-Babel functions for IPython evaluation")
2920 (description "This package adds support to Org-Babel for evaluating Python
2921 source code using IPython.")
2922 (license license:gpl3+)))
2923
2924 (define-public emacs-debbugs
2925 (package
2926 (name "emacs-debbugs")
2927 (version "0.18")
2928 (source (origin
2929 (method url-fetch)
2930 (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
2931 version ".tar"))
2932 (sha256
2933 (base32
2934 "00kich80zdg7v3v613f9prqddkpwpm1nf9sj10f0n6wh15rzwv07"))))
2935 (build-system emacs-build-system)
2936 (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
2937 (propagated-inputs
2938 `(("emacs-async" ,emacs-async)))
2939 (home-page "https://elpa.gnu.org/packages/debbugs.html")
2940 (synopsis "Access the Debbugs bug tracker in Emacs")
2941 (description
2942 "This package lets you access the @uref{http://bugs.gnu.org,GNU Bug
2943 Tracker} from within Emacs.
2944
2945 For instance, it defines the command @code{M-x debbugs-gnu} for listing bugs,
2946 and the command @code{M-x debbugs-gnu-search} for bug searching. If you
2947 prefer the listing of bugs as TODO items of @code{org-mode}, you could use
2948 @code{M-x debbugs-org} and related commands.
2949
2950 A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug
2951 Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.")
2952 (license license:gpl3+)))
2953
2954 (define-public emacs-ert-expectations
2955 (package
2956 (name "emacs-ert-expectations")
2957 (version "0.2")
2958 (source
2959 (origin
2960 (method url-fetch)
2961 (uri "https://www.emacswiki.org/emacs/download/ert-expectations.el")
2962 (sha256
2963 (base32
2964 "0cwy3ilsid90abzzjb7ha2blq9kmv3gfp3icwwfcz6qczgirq6g7"))))
2965 (build-system emacs-build-system)
2966 (home-page "https://www.emacswiki.org/emacs/ert-expectations.el")
2967 (synopsis "Simple unit test framework for Emacs Lisp")
2968 (description "@code{emacs-ert-expectations} is a simple unit test
2969 framework for Emacs Lisp to be used with @code{ert}.")
2970 (license license:gpl3+)))
2971
2972 (define-public emacs-deferred
2973 (package
2974 (name "emacs-deferred")
2975 (version "0.5.1")
2976 (home-page "https://github.com/kiwanami/emacs-deferred")
2977 (source (origin
2978 (method git-fetch)
2979 (uri (git-reference
2980 (url home-page)
2981 (commit (string-append "v" version))))
2982 (file-name (git-file-name name version))
2983 (sha256
2984 (base32
2985 "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"))))
2986 (build-system emacs-build-system)
2987 (arguments
2988 `(#:phases
2989 (modify-phases %standard-phases
2990 (add-after 'unpack 'set-shell
2991 ;; Setting the SHELL environment variable is required for the tests
2992 ;; to find sh.
2993 (lambda _
2994 (setenv "SHELL" (which "sh"))
2995 #t))
2996 (add-before 'check 'fix-makefile
2997 (lambda _
2998 (substitute* "Makefile"
2999 (("\\$\\(CASK\\) exec ") ""))
3000 #t)))
3001 #:tests? #t
3002 #:test-command '("make" "test")))
3003 (native-inputs
3004 `(("emacs-ert-expectations" ,emacs-ert-expectations)
3005 ("emacs-undercover" ,emacs-undercover)
3006 ("ert-runner" ,emacs-ert-runner)))
3007 (synopsis "Simple asynchronous functions for Emacs Lisp")
3008 (description
3009 "The @code{deferred.el} library provides support for asynchronous tasks.
3010 The API is almost the same as that of
3011 @uref{https://github.com/cho45/jsdeferred, JSDeferred}, a JavaScript library
3012 for asynchronous tasks.")
3013 (license license:gpl3+)))
3014
3015 (define-public emacs-butler
3016 (package
3017 (name "emacs-butler")
3018 (version "0.2.4")
3019 (home-page "https://github.com/AshtonKem/Butler")
3020 (source (origin
3021 (method git-fetch)
3022 (uri (git-reference
3023 (url home-page)
3024 (commit version)))
3025 (file-name (git-file-name name version))
3026 (sha256
3027 (base32
3028 "1pii9dw4skq7nr4na6qxqasl36av8cwjp71bf1fgppqpcd9z8skj"))))
3029 (build-system emacs-build-system)
3030 (propagated-inputs
3031 `(("emacs-deferred" ,emacs-deferred)))
3032 (synopsis "Emacs client for Jenkins")
3033 (description
3034 "Butler provides an interface to connect to Jenkins continuous
3035 integration servers. Users can specify a list of server in the
3036 @code{butler-server-list} variable and then use @code{M-x butler-status} to
3037 view the build status of those servers' build jobs, and possibly to trigger
3038 build jobs.")
3039 (license license:gpl3+)))
3040
3041 (define-public emacs-company
3042 (package
3043 (name "emacs-company")
3044 (version "0.9.7")
3045 (source
3046 (origin
3047 (method git-fetch)
3048 (uri (git-reference
3049 (url "https://github.com/company-mode/company-mode.git")
3050 (commit version)))
3051 (file-name (git-file-name name version))
3052 (sha256
3053 (base32 "1gpapjxs4l6fmmj22q0q1pyhj1yd9j5iqfqnjf1abskkj69lqkpj"))))
3054 (build-system emacs-build-system)
3055 (arguments
3056 `(#:phases
3057 (modify-phases %standard-phases
3058 (add-before 'check 'fix-bin-dir
3059 (lambda _
3060 ;; The company-files-candidates-normal-root test looks
3061 ;; for the /bin directory, but the build environment has
3062 ;; no /bin directory. Modify the test to look for the
3063 ;; /tmp directory.
3064 (substitute* "test/files-tests.el"
3065 (("/bin/") "/tmp/"))
3066 #t)))
3067 #:tests? #t
3068 #:test-command '("make" "test-batch")))
3069 (home-page "http://company-mode.github.io/")
3070 (synopsis "Modular text completion framework")
3071 (description
3072 "Company is a modular completion mechanism. Modules for retrieving
3073 completion candidates are called back-ends, modules for displaying them are
3074 front-ends. Company comes with many back-ends, e.g. @code{company-elisp}.
3075 These are distributed in separate files and can be used individually.")
3076 (license license:gpl3+)))
3077
3078 (define-public emacs-irony-mode
3079 (package
3080 (name "emacs-irony-mode")
3081 (version "1.2.0")
3082 (home-page "https://github.com/Sarcasm/irony-mode")
3083 (source (origin
3084 (method git-fetch)
3085 (uri (git-reference
3086 (url (string-append home-page ".git"))
3087 (commit (string-append "v" version))))
3088 (file-name (git-file-name name version))
3089 (sha256
3090 (base32
3091 "0nhjrnlmss535jbshjjd30vydbr8py21vkx4p294w6d8vg2rssf8"))))
3092 (build-system emacs-build-system)
3093 (inputs `(("server" ,emacs-irony-mode-server)))
3094 (arguments `(#:phases
3095 (modify-phases %standard-phases
3096 (add-after 'unpack 'configure
3097 (lambda* (#:key inputs #:allow-other-keys)
3098 (chmod "irony.el" #o644)
3099 (emacs-substitute-variables "irony.el"
3100 ("irony-server-install-prefix"
3101 (assoc-ref inputs "server")))
3102 #t)))))
3103 (synopsis "C/C++/ObjC Code completion and syntax checks for Emacs")
3104 (description "Irony-mode provides Clang-assisted syntax checking and
3105 completion for C, C++, and ObjC in GNU Emacs. Using @code{libclang} it can
3106 provide syntax checking and autocompletion on compiler level which is very
3107 resistant against false positives. It also integrates well with other
3108 packages like @code{eldoc-mode} and especially @code{company-mode} as
3109 described on the homepage.")
3110 (license license:gpl3+)))
3111
3112 (define-public emacs-irony-mode-server
3113 (package (inherit emacs-irony-mode)
3114 (name "emacs-irony-mode-server")
3115 (inputs
3116 `(("clang" ,clang)))
3117 (arguments
3118 `(#:phases
3119 (modify-phases %standard-phases
3120 (replace 'configure
3121 (lambda* (#:key outputs #:allow-other-keys)
3122 (let ((out (assoc-ref outputs "out")))
3123 (invoke "cmake"
3124 "server"
3125 (string-append "-DCMAKE_INSTALL_PREFIX=" out)) #t))))))
3126 (build-system cmake-build-system)
3127 (synopsis "Server for the Emacs @dfn{irony mode}")))
3128
3129 (define-public emacs-company-irony
3130 (package
3131 (name "emacs-company-irony")
3132 (version "1.1.0")
3133 (source (origin
3134 (method git-fetch)
3135 (uri (git-reference
3136 (url "https://github.com/Sarcasm/company-irony.git")
3137 (commit (string-append "v" version))))
3138 (sha256 (base32
3139 "1qgyam2vyjw90kpxns5cd6bq3qiqjhzpwrlvmi18vyb69qcgqd8a"))
3140 (file-name (git-file-name name version))))
3141 (build-system emacs-build-system)
3142 (inputs
3143 `(("emacs-irony-mode" ,emacs-irony-mode)
3144 ("emacs-company" ,emacs-company)))
3145 (synopsis "C++ completion backend for Company using irony-mode")
3146 (description "This backend for company-mode allows for C++ code completion
3147 with irony-mode using clang-tooling.")
3148 (home-page "https://github.com/Sarcasm/company-irony")
3149 (license license:gpl3+)))
3150
3151 (define-public emacs-flycheck-irony
3152 (package
3153 (name "emacs-flycheck-irony")
3154 (version "0.1.0")
3155 (source (origin
3156 (method git-fetch)
3157 (uri (git-reference
3158 (url "https://github.com/Sarcasm/flycheck-irony.git")
3159 (commit (string-append "v" version))))
3160 (file-name (git-file-name name version))
3161 (sha256
3162 (base32 "0qa5a8wzvzxwqql92ibc9s43k8sj3vwn7skz9hfr8av0skkhx996"))))
3163 (build-system emacs-build-system)
3164 (inputs
3165 `(("irony-mode" ,emacs-irony-mode)
3166 ("flycheck-mode" ,emacs-flycheck)
3167 ("emacs-company" ,emacs-company)))
3168 (synopsis "Live syntax checking frontend for Flycheck using irony-mode")
3169 (description "This package provides a frontend for Flycheck that lets
3170 irony-mode do the syntax checking.")
3171 (home-page "https://github.com/Sarcasm/flycheck-irony")
3172 (license license:gpl3+)))
3173
3174 (define-public emacs-irony-eldoc
3175 (package
3176 (name "emacs-irony-eldoc")
3177 (version (package-version emacs-irony-mode))
3178 (source
3179 (origin
3180 (method git-fetch)
3181 (uri (git-reference
3182 (url "https://github.com/ikirill/irony-eldoc.git")
3183 (commit "0df5831eaae264a25422b061eb2792aadde8b3f2")))
3184 (file-name (git-file-name name version))
3185 (sha256
3186 (base32 "1l5qpr66v1l12fb50yh73grb2rr85xxmbj19mm33b5rdrq2bqmmd"))))
3187 (build-system emacs-build-system)
3188 (inputs
3189 `(("irony-mode" ,emacs-irony-mode)))
3190 (synopsis "Eldoc integration for irony-mode")
3191 (description "Irony-eldoc is an eldoc extension that shows documentation
3192 for the current function or variable in the minibuffer.")
3193 (home-page "https://github.com/ikirill/irony-eldoc")
3194 (license license:gpl3+)))
3195
3196 (define-public emacs-company-quickhelp
3197 (package
3198 (name "emacs-company-quickhelp")
3199 (version "2.3.0")
3200 (source
3201 (origin
3202 (method git-fetch)
3203 (uri (git-reference
3204 (url "https://github.com/expez/company-quickhelp.git")
3205 (commit version)))
3206 (file-name (git-file-name name version))
3207 (sha256
3208 (base32 "08ccsfvwdpzpj0gai3xrdb2bv1nl6myjkxsc5774pbvlq9nkfdvr"))))
3209 (build-system emacs-build-system)
3210 (propagated-inputs
3211 `(("emacs-pos-tip" ,emacs-pos-tip)
3212 ("emacs-company" ,emacs-company)))
3213 (home-page "https://github.com/expez/company-quickhelp")
3214 (synopsis "Popup documentation for completion candidates")
3215 (description "@code{company-quickhelp} shows documentation for the
3216 completion candidate when using the Company text completion framework.")
3217 (license license:gpl3+)))
3218
3219 (define-public emacs-multiple-cursors
3220 (package
3221 (name "emacs-multiple-cursors")
3222 (version "1.4.0")
3223 (source
3224 (origin
3225 (method git-fetch)
3226 (uri (git-reference
3227 (url "https://github.com/magnars/multiple-cursors.el.git")
3228 (commit version)))
3229 (file-name (git-file-name name version))
3230 (sha256
3231 (base32 "1ijgvzv5r44xqvz751fd5drbvrspapw6xwv47582w255j363r6ss"))))
3232 (build-system emacs-build-system)
3233 (home-page "https://github.com/magnars/multiple-cursors.el")
3234 (synopsis "Multiple cursors for Emacs")
3235 (description
3236 "This package adds support to Emacs for editing text with multiple
3237 simultaneous cursors.")
3238 (license license:gpl3+)))
3239
3240 (define-public emacs-typo
3241 (package
3242 (name "emacs-typo")
3243 (version "1.1")
3244 (home-page "https://github.com/jorgenschaefer/typoel")
3245 (source (origin
3246 (method git-fetch)
3247 (uri (git-reference
3248 (url home-page)
3249 (commit (string-append "v" version))))
3250 (file-name (git-file-name name version))
3251 (sha256
3252 (base32
3253 "1jhd4grch5iz12gyxwfbsgh4dmz5hj4bg4gnvphccg8dsnni05k2"))))
3254 (build-system emacs-build-system)
3255 (synopsis "Minor mode for typographic editing")
3256 (description
3257 "This package provides two Emacs modes, @code{typo-mode} and
3258 @code{typo-global-mode}. These modes automatically insert Unicode characters
3259 for quotation marks, dashes, and ellipses. For example, typing @kbd{\"}
3260 automatically inserts a Unicode opening or closing quotation mark, depending
3261 on context.")
3262 (license license:gpl3+)))
3263
3264 (define-public emacs-company-lsp
3265 (package
3266 (name "emacs-company-lsp")
3267 (version "2.1.0")
3268 (source (origin
3269 (method git-fetch)
3270 (uri (git-reference
3271 (url "https://github.com/tigersoldier/company-lsp.git")
3272 (commit version)))
3273 (file-name (git-file-name name version))
3274 (sha256
3275 (base32
3276 "1hy1x2w0yp5brm7714d1hziz3rpkywb5jp3yj78ibmi9ifny9vri"))))
3277 (build-system emacs-build-system)
3278 (propagated-inputs
3279 `(("emacs-dash" ,emacs-dash)
3280 ("emacs-lsp-mode" ,emacs-lsp-mode)
3281 ("emacs-company" ,emacs-company)
3282 ("emacs-s" ,emacs-s)
3283 ("emacs-dash" ,emacs-dash)))
3284 (home-page "https://github.com/tigersoldier/company-lsp")
3285 (synopsis "Completion for @code{lsp-mode}")
3286 (description
3287 "This package provides completion features that are not possible with
3288 @code{lsp-mode} and @code{company-capf} alone, including support for trigger
3289 characters and asynchronous fetching of completion candidates.")
3290 (license license:gpl3+)))
3291
3292 (define-public emacs-scheme-complete
3293 (let ((commit "9b5cf224bf2a5994bc6d5b152ff487517f1a9bb5"))
3294 (package
3295 (name "emacs-scheme-complete")
3296 (version (string-append "20151223." (string-take commit 8)))
3297 (source
3298 (origin
3299 (method git-fetch)
3300 (uri (git-reference
3301 (url "https://github.com/ashinn/scheme-complete.git")
3302 (commit commit)))
3303 (file-name (git-file-name name version))
3304 (sha256
3305 (base32
3306 "141wn9l0m33w0g3dqmx8nxbfdny1r5xbr6ak61rsz21bk0qafs7x"))
3307 (patches
3308 (search-patches "emacs-scheme-complete-scheme-r5rs-info.patch"))))
3309 (build-system emacs-build-system)
3310 (home-page "https://github.com/ashinn/scheme-complete")
3311 (synopsis "Smart tab completion for Scheme in Emacs")
3312 (description
3313 "This file provides a single function, @code{scheme-smart-complete},
3314 which you can use for intelligent, context-sensitive completion for any Scheme
3315 implementation in Emacs. To use it just load this file and bind that function
3316 to a key in your preferred mode.")
3317 (license license:public-domain))))
3318
3319 (define-public emacs-scel
3320 (let ((version "20170629")
3321 (revision "1")
3322 (commit "aeea3ad4be9306d14c3a734a4ff54fee10ac135b"))
3323 (package
3324 (name "emacs-scel")
3325 (version (git-version version revision commit))
3326 (source
3327 (origin
3328 (method git-fetch)
3329 (uri (git-reference
3330 (url "https://github.com/supercollider/scel.git")
3331 (commit commit)))
3332 (file-name (git-file-name name version))
3333 (sha256
3334 (base32
3335 "0jvmzs1lsjyndqshhii2y4mnr3wghai26i3p75453zrpxpg0zvvw"))))
3336 (build-system emacs-build-system)
3337 (arguments
3338 `(#:modules ((guix build emacs-build-system)
3339 ((guix build cmake-build-system) #:prefix cmake:)
3340 (guix build utils))
3341 #:imported-modules (,@%emacs-build-system-modules
3342 (guix build cmake-build-system))
3343 #:phases
3344 (modify-phases %standard-phases
3345 (add-after 'unpack 'configure
3346 (lambda* (#:key outputs #:allow-other-keys)
3347 (substitute* "el/CMakeLists.txt"
3348 (("share/emacs/site-lisp/SuperCollider")
3349 (string-append
3350 "share/emacs/site-lisp/guix.d/scel-" ,version)))
3351 ((assoc-ref cmake:%standard-phases 'configure)
3352 #:outputs outputs
3353 #:configure-flags '("-DSC_EL_BYTECOMPILE=OFF"))))
3354 (add-after 'set-emacs-load-path 'add-el-dir-to-emacs-load-path
3355 (lambda _
3356 (setenv "EMACSLOADPATH"
3357 (string-append (getcwd) "/el:" (getenv "EMACSLOADPATH")))
3358 #t))
3359 (replace 'install (assoc-ref cmake:%standard-phases 'install)))))
3360 (inputs
3361 `(("supercollider" ,supercollider)))
3362 (native-inputs
3363 `(("cmake" ,cmake)))
3364 (home-page "https://github.com/supercollider/scel")
3365 (synopsis "SuperCollider Emacs interface")
3366 (description "@code{emacs-scel} is an Emacs interface to SuperCollider.
3367 SuperCollider is a platform for audio synthesis and algorithmic composition.")
3368 (license license:gpl2+))))
3369
3370 (define-public emacs-company-auctex
3371 (let ((commit "48c42c58ce2f0e693301b0cb2d085055410c1b25")
3372 (revision "1"))
3373 (package
3374 (name "emacs-company-auctex")
3375 (version (git-version "0" revision commit))
3376 (source (origin
3377 (method git-fetch)
3378 (uri (git-reference
3379 (url "https://github.com/alexeyr/company-auctex")
3380 (commit commit)))
3381 (file-name (git-file-name name version))
3382 (sha256
3383 (base32
3384 "10qn7frn5wcmrlci3v6iliqzj7r9dls87h9zp3xkgrgn4bqprfp8"))))
3385 (build-system emacs-build-system)
3386 (propagated-inputs
3387 `(("emacs-yasnippet" ,emacs-yasnippet)
3388 ("emacs-auctex" ,emacs-auctex)
3389 ("emacs-company" ,emacs-company)))
3390 (home-page "https://github.com/alexeyr/company-auctex/")
3391 (synopsis "Completion for @code{AUCTeX}")
3392 (description
3393 "This package provides a group of backends permitting auto-completion
3394 for @code{AUCTeX}.")
3395 (license license:gpl3+))))
3396
3397 (define-public emacs-mit-scheme-doc
3398 (package
3399 (name "emacs-mit-scheme-doc")
3400 (version "20140203")
3401 (source
3402 (origin
3403 (modules '((guix build utils)))
3404 (snippet
3405 ;; keep only file of interest
3406 '(begin
3407 (for-each delete-file '("dot-emacs.el" "Makefile"))
3408 (install-file "6.945-config/mit-scheme-doc.el" ".")
3409 (delete-file-recursively "6.945-config")
3410 #t))
3411 (file-name (string-append name "-" version ".tar.bz2"))
3412 (method url-fetch)
3413 (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/"
3414 "6.945/dont-panic/emacs-basic-config.tar.bz2"))
3415 (sha256
3416 (base32
3417 "0dqidg2bd66pawqfarvwca93w5gqf9mikn1k2a2rmd9ymfjpziq1"))))
3418 (build-system emacs-build-system)
3419 (inputs `(("mit-scheme" ,mit-scheme)))
3420 (arguments
3421 `(#:phases
3422 (modify-phases %standard-phases
3423 (add-after 'unpack 'configure-doc
3424 (lambda* (#:key inputs #:allow-other-keys)
3425 (let* ((mit-scheme-dir (assoc-ref inputs "mit-scheme"))
3426 (doc-dir (string-append mit-scheme-dir "/share/doc/"
3427 "mit-scheme-"
3428 ,(package-version mit-scheme))))
3429 (substitute* "mit-scheme-doc.el"
3430 (("http://www\\.gnu\\.org/software/mit-scheme/documentation/mit-scheme-ref/")
3431 (string-append "file:" doc-dir "/mit-scheme-ref/")))))))))
3432 (home-page "http://groups.csail.mit.edu/mac/users/gjs/6.945/dont-panic/")
3433 (synopsis "MIT-Scheme documentation lookup for Emacs")
3434 (description
3435 "This package provides a set of Emacs functions to search definitions of
3436 identifiers in the MIT-Scheme documentation.")
3437 (license license:gpl2+)))
3438
3439 (define-public emacs-constants
3440 (package
3441 (name "emacs-constants")
3442 (version "2.6")
3443 (home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
3444 (source
3445 (origin
3446 (method git-fetch)
3447 (uri (git-reference
3448 (url "https://github.com/fedeinthemix/emacs-constants.git")
3449 (commit (string-append "v" version))))
3450 (file-name (git-file-name name version))
3451 (sha256
3452 (base32 "0f5sh6b45a8p9kancjp9jk44ws8ww6x50a0i6zgyyvr7dbvii1a0"))))
3453 (build-system emacs-build-system)
3454 (synopsis "Enter definition of constants into an Emacs buffer")
3455 (description
3456 "This package provides functions for inserting the definition of natural
3457 constants and units into an Emacs buffer.")
3458 (license license:gpl2+)))
3459
3460 (define-public emacs-tagedit
3461 (package
3462 (name "emacs-tagedit")
3463 (version "1.4.0")
3464 (source
3465 (origin
3466 (method git-fetch)
3467 (uri (git-reference
3468 (url "https://github.com/magnars/tagedit.git")
3469 (commit version)))
3470 (file-name (git-file-name name version))
3471 (sha256
3472 (base32 "0kq40g46s8kgiafrhdq99h79rz9h5fvgz59k7ralmf86bl4sdmdb"))))
3473 (build-system emacs-build-system)
3474 (propagated-inputs
3475 `(("emacs-s" ,emacs-s)
3476 ("emacs-dash" ,emacs-dash)))
3477 (home-page "https://github.com/magnars/tagedit")
3478 (synopsis "Some paredit-like features for html-mode")
3479 (description
3480 "This package provides a collection of paredit-like functions for editing
3481 in @code{html-mode}.")
3482 (license license:gpl3+)))
3483
3484 (define-public emacs-slime
3485 (package
3486 (name "emacs-slime")
3487 (version "2.23")
3488 (source
3489 (origin
3490 (method git-fetch)
3491 (uri (git-reference
3492 (url "https://github.com/slime/slime.git")
3493 (commit (string-append "v" version))))
3494 (file-name (git-file-name name version))
3495 (sha256
3496 (base32 "0i637n0ragpbj39hqx65nx5k99xf0464c4w6w1qpzykm6z42grky"))))
3497 (build-system emacs-build-system)
3498 (native-inputs
3499 `(("texinfo" ,texinfo)))
3500 (arguments
3501 `(#:include '("\\.el$" "\\.lisp$" "\\.asd$" "contrib")
3502 #:exclude '("^slime-tests.el" "^contrib/test/"
3503 "^contrib/Makefile$" "^contrib/README.md$")
3504 #:phases
3505 (modify-phases %standard-phases
3506 (add-after 'unpack 'make-git-checkout-writable
3507 (lambda _
3508 (for-each make-file-writable (find-files "."))
3509 #t))
3510 (add-before 'install 'configure
3511 (lambda* _
3512 (emacs-substitute-variables "slime.el"
3513 ("inferior-lisp-program" "sbcl"))
3514 #t))
3515 (add-before 'install 'install-doc
3516 (lambda* (#:key outputs #:allow-other-keys)
3517 (let* ((out (assoc-ref outputs "out"))
3518 (info-dir (string-append out "/share/info"))
3519 (doc-dir (string-append out "/share/doc/"
3520 ,name "-" ,version))
3521 (doc-files '("doc/slime-refcard.pdf"
3522 "README.md" "NEWS" "PROBLEMS"
3523 "CONTRIBUTING.md")))
3524 (with-directory-excursion "doc"
3525 (substitute* "Makefile"
3526 (("infodir=/usr/local/info")
3527 (string-append "infodir=" info-dir)))
3528 (invoke "make" "html/index.html")
3529 (invoke "make" "slime.info")
3530 (install-file "slime.info" info-dir)
3531 (copy-recursively "html" (string-append doc-dir "/html")))
3532 (for-each (lambda (f)
3533 (install-file f doc-dir)
3534 (delete-file f))
3535 doc-files)
3536 (delete-file-recursively "doc")
3537 #t))))))
3538 (home-page "https://github.com/slime/slime")
3539 (synopsis "Superior Lisp Interaction Mode for Emacs")
3540 (description
3541 "SLIME extends Emacs with support for interactive programming in
3542 Common Lisp. The features are centered around @command{slime-mode},
3543 an Emacs minor mode that complements the standard @command{lisp-mode}.
3544 While lisp-mode supports editing Lisp source files, @command{slime-mode}
3545 adds support for interacting with a running Common Lisp process
3546 for compilation, debugging, documentation lookup, and so on.")
3547 (license (list license:gpl2+ license:public-domain))))
3548
3549 (define-public emacs-popup
3550 (package
3551 (name "emacs-popup")
3552 (version "0.5.3")
3553 (source
3554 (origin
3555 (method git-fetch)
3556 (uri (git-reference
3557 (url "https://github.com/auto-complete/popup-el.git")
3558 (commit (string-append "v" version))))
3559 (file-name (git-file-name name version))
3560 (sha256
3561 (base32 "1y538siabcf1n00wr4iz5gbxfndw661kx2mn9w1g4lg7yi4n0h0h"))))
3562 (build-system emacs-build-system)
3563 (home-page "https://github.com/auto-complete/popup-el")
3564 (synopsis "Visual Popup User Interface for Emacs")
3565 (description
3566 "Popup.el is a visual popup user interface library for Emacs.
3567 This provides a basic API and common UI widgets such as popup tooltips
3568 and popup menus.")
3569 (license license:gpl3+)))
3570
3571 (define-public emacs-python-environment
3572 (package
3573 (name "emacs-python-environment")
3574 (version "0.0.2")
3575 (source
3576 (origin
3577 (method git-fetch)
3578 (uri (git-reference
3579 (url "https://github.com/tkf/emacs-python-environment/")
3580 (commit version)))
3581 (file-name (git-file-name name version))
3582 (sha256
3583 (base32 "0q6bib9nr6xiq6npzbngyfcjk87yyvwzq1zirr3z1h5wadm34lsk"))))
3584 (build-system emacs-build-system)
3585 (propagated-inputs
3586 `(("emacs-deferred" ,emacs-deferred)))
3587 (home-page "https://github.com/tkf/emacs-python-environment")
3588 (synopsis "Provides a @code{virtualenv} API in Emacs Lisp")
3589 (description
3590 "This package permits automated installation of tools written in Python.")
3591 (license license:gpl3+)))
3592
3593 (define-public emacs-jedi
3594 (package
3595 (name "emacs-jedi")
3596 (version "0.2.7")
3597 (source (origin
3598 (method git-fetch)
3599 (uri (git-reference
3600 (url "https://github.com/tkf/emacs-jedi/")
3601 (commit (string-append "v" version))))
3602 (file-name (git-file-name name version))
3603 (sha256
3604 (base32
3605 "0xbp9fcxgbf298w05hvf52z41kk7r52975ailgdn8sg60xc98fa7"))))
3606 (build-system emacs-build-system)
3607 (native-inputs
3608 `(("emacs-mocker" ,emacs-mocker)))
3609 (propagated-inputs
3610 `(("emacs-auto-complete" ,emacs-auto-complete)
3611 ("emacs-python-environment" ,emacs-python-environment)
3612 ("emacs-epc" ,emacs-epc)))
3613 (home-page "https://github.com/tkf/emacs-jedi")
3614 (synopsis "Provides Python completion in Emacs")
3615 (description
3616 "This package provides completion in Python buffers and also helps find
3617 the locations of docstrings, arguments, and functions.")
3618 (license license:gpl3+)))
3619
3620 (define-public emacs-company-jedi
3621 (package
3622 (name "emacs-company-jedi")
3623 (version "0.04")
3624 (source (origin
3625 (method git-fetch)
3626 (uri (git-reference
3627 (url "https://github.com/syohex/emacs-company-jedi")
3628 (commit version)))
3629 (file-name (git-file-name name version))
3630 (sha256
3631 (base32
3632 "1ihqapp4dv92794rsgyq0rmhwika60cmradqd4bn9b72ss6plxs1"))))
3633 (build-system emacs-build-system)
3634 (propagated-inputs
3635 `(("emacs-jedi" ,emacs-jedi)
3636 ("emacs-company" ,emacs-company)))
3637 (home-page "https://github.com/syohex/emacs-company-jedi")
3638 (synopsis "Provides Python completion in @code{company-mode}")
3639 (description
3640 "This package provides a Company backend for Python.")
3641 (license license:gpl3+)))
3642
3643 (define-public emacs-puppet-mode
3644 (let ((commit "b3ed5057166a4f49dfa9be638523a348b55a2fd2")
3645 (revision "1"))
3646 (package
3647 (name "emacs-puppet-mode")
3648 ;; The last release, 0.3 was several years ago, and there have been many
3649 ;; commits since
3650 (version (git-version "0.3" revision commit))
3651 (source
3652 (origin
3653 (method url-fetch)
3654 (uri (string-append
3655 "https://raw.githubusercontent.com/voxpupuli/puppet-mode/"
3656 commit "/puppet-mode.el"))
3657 (sha256
3658 (base32
3659 "1indycxawsl0p2aqqg754f6735q3cmah9vd886rpn0ncc3ipi1xm"))))
3660 (build-system emacs-build-system)
3661 (home-page "https://github.com/voxpupuli/puppet-mode")
3662 (synopsis "Emacs major mode for the Puppet configuration language")
3663 (description
3664 "This package provides support for the Puppet configuration language,
3665 including syntax highlighting, indentation of expressions and statements,
3666 linting of manifests and integration with Puppet Debugger.")
3667 ;; Also incorporates work covered by the Apache License, Version 2.0
3668 (license license:gpl3+))))
3669
3670 (define-public emacs-god-mode
3671 (let ((commit "6cf0807b6555eb6fcf8387a4e3b667071ef38964")
3672 (revision "1"))
3673 (package
3674 (name "emacs-god-mode")
3675 (version (string-append "20151005.925."
3676 revision "-" (string-take commit 9)))
3677 (source
3678 (origin
3679 (method git-fetch)
3680 (uri (git-reference
3681 (url "https://github.com/chrisdone/god-mode.git")
3682 (commit commit)))
3683 (file-name (git-file-name name version))
3684 (sha256
3685 (base32
3686 "1am415k4xxcva6y3vbvyvknzc6bma49pq3p85zmpjsdmsp18qdix"))))
3687 (build-system emacs-build-system)
3688 (home-page "https://github.com/chrisdone/god-mode")
3689 (synopsis "Minor mode for entering commands without modifier keys")
3690 (description
3691 "This package provides a global minor mode for entering Emacs commands
3692 without modifier keys. It's similar to Vim's separation of commands and
3693 insertion mode. When enabled all keys are implicitly prefixed with
3694 @samp{C-} (among other helpful shortcuts).")
3695 (license license:gpl3+))))
3696
3697 (define-public emacs-jinja2-mode
3698 (package
3699 (name "emacs-jinja2-mode")
3700 (version "0.2")
3701 (source
3702 (origin
3703 (method git-fetch)
3704 (uri (git-reference
3705 (url "https://github.com/paradoxxxzero/jinja2-mode.git")
3706 (commit (string-append "v" version))))
3707 (file-name (git-file-name name version))
3708 (sha256
3709 (base32 "0l26wcy496k6xk7q5sf905xir0p73ziy6c44is77854lv3y0z381"))))
3710 (build-system emacs-build-system)
3711 (home-page "https://github.com/paradoxxxzero/jinja2-mode")
3712 (synopsis "Major mode for jinja2")
3713 (description
3714 "Emacs major mode for jinja2 with: syntax highlighting,
3715 sgml/html integration, and indentation (working with sgml).")
3716 (license license:gpl3+)))
3717
3718 (define-public emacs-company-cabal
3719 ;; The latest version is 0.3.0, but no release has been provided after 0.2.1.
3720 (let ((commit "62112a7259e24bd6c08885629a185afe512b7d3d")
3721 (revision "1"))
3722 (package
3723 (name "emacs-company-cabal")
3724 (version (git-version "0.3.0" revision commit))
3725 (source (origin
3726 (method git-fetch)
3727 (uri (git-reference
3728 (url "https://github.com/iquiw/company-cabal/")
3729 (commit commit)))
3730 (file-name (git-file-name name version))
3731 (sha256
3732 (base32
3733 "1gf45xwjzdm8i4q6c6khk4dbg1mmp2r0awz2sjr4dcr2dbd1n7mg"))))
3734 (build-system emacs-build-system)
3735 (propagated-inputs
3736 `(("emacs-company" ,emacs-company)))
3737 (home-page "https://github.com/iquiw/company-cabal/")
3738 (synopsis "Company completion for Haskell Cabal files")
3739 (description
3740 "This package allows for completion of field names, section names,
3741 field values, and more within @code{haskell-cabal-mode}.")
3742 (license license:gpl3+))))
3743
3744 (define-public emacs-rfcview
3745 (package
3746 (name "emacs-rfcview")
3747 (version "0.13")
3748 (home-page "http://www.loveshack.ukfsn.org/emacs")
3749 (source (origin
3750 (method url-fetch)
3751 (uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el")
3752 (sha256
3753 (base32
3754 "0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz"))))
3755 (build-system emacs-build-system)
3756 (synopsis "Prettify Request for Comments (RFC) documents")
3757 (description "The Internet Engineering Task Force (IETF) and the Internet
3758 Society (ISOC) publish various Internet-related protocols and specifications
3759 as \"Request for Comments\" (RFC) documents and Internet Standard (STD)
3760 documents. RFCs and STDs are published in a simple text form. This package
3761 provides an Emacs major mode, rfcview-mode, which makes it more pleasant to
3762 read these documents in Emacs. It prettifies the text and adds
3763 hyperlinks/menus for easier navigation. It also provides functions for
3764 browsing the index of RFC documents and fetching them from remote servers or
3765 local directories.")
3766 (license license:gpl3+)))
3767
3768 (define-public emacs-ffap-rfc-space
3769 (package
3770 (name "emacs-ffap-rfc-space")
3771 (version "12")
3772 (home-page "http://user42.tuxfamily.org/ffap-rfc-space/index.html")
3773 (source (origin
3774 (method url-fetch)
3775 (uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el")
3776 (sha256
3777 (base32
3778 "1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck"))))
3779 (build-system emacs-build-system)
3780 (synopsis "Make ffap recognize an RFC with a space before its number")
3781 (description "The Internet Engineering Task Force (IETF) and the
3782 Internet Society (ISOC) publish various Internet-related protocols and
3783 specifications as \"Request for Comments\" (RFC) documents. The
3784 built-in Emacs module \"ffap\" (Find File at Point) has the ability to
3785 recognize names at point which look like \"RFC1234\" and \"RFC-1234\"
3786 and load the appropriate RFC from a remote server. However, it fails
3787 to recognize a name like \"RFC 1234\". This package enhances ffap so
3788 that it correctly finds RFCs even when a space appears before the
3789 number.")
3790 (license license:gpl3+)))
3791
3792 (define-public emacs-org-bullets
3793 (package
3794 (name "emacs-org-bullets")
3795 (version "0.2.4")
3796 (source
3797 (origin
3798 (method git-fetch)
3799 (uri (git-reference
3800 (url "https://github.com/sabof/org-bullets.git")
3801 (commit version)))
3802 (file-name (git-file-name name version))
3803 (sha256
3804 (base32 "10nr4sjffnqbllv6gmak6pviyynrb7pi5nvrq331h5alm3xcpq0w"))))
3805 (build-system emacs-build-system)
3806 (home-page "https://github.com/sabof/org-bullets")
3807 (synopsis "Show bullets in org-mode as UTF-8 characters")
3808 (description
3809 "This package provides an Emacs minor mode causing bullets in
3810 @code{org-mode} to be rendered as UTF-8 characters.")
3811 (license license:gpl3+)))
3812
3813 (define-public emacs-org-pomodoro
3814 (package
3815 (name "emacs-org-pomodoro")
3816 (version "2.1.0")
3817 (source
3818 (origin
3819 (method git-fetch)
3820 (uri (git-reference
3821 (url "https://github.com/lolownia/org-pomodoro.git")
3822 (commit version)))
3823 (file-name (git-file-name name version))
3824 (sha256
3825 (base32 "0r5shgikm34d66i2hblyknbblpg92lb2zc9x4bcb28xkh7m9d0xv"))))
3826 (build-system emacs-build-system)
3827 (propagated-inputs
3828 `(("emacs-alert" ,emacs-alert)))
3829 (home-page "https://github.com/lolownia/org-pomodoro")
3830 (synopsis "Pomodoro technique for org-mode")
3831 (description "@code{emacs-org-pomodoro} adds very basic support for
3832 Pomodoro technique in Emacs org-mode.
3833
3834 Run @code{M-x org-pomodoro} for the task at point or select one of the
3835 last tasks that you clocked time for. Each clocked-in pomodoro starts
3836 a timer of 25 minutes and after each pomodoro a break timer of 5
3837 minutes is started automatically. Every 4 breaks a long break is
3838 started with 20 minutes. All values are customizable.")
3839 (license license:gpl3+)))
3840
3841 (define-public emacs-org-trello
3842 (package
3843 (name "emacs-org-trello")
3844 (version "0.8.0")
3845 (source
3846 (origin
3847 (method git-fetch)
3848 (uri (git-reference
3849 (url "https://github.com/org-trello/org-trello.git")
3850 (commit version)))
3851 (file-name (git-file-name name version))
3852 (sha256
3853 (base32 "0m5hyhb6211hdmyp1bq6f3fklfgw3957knd96bfdafj727vdnlzm"))))
3854 (build-system emacs-build-system)
3855 (propagated-inputs
3856 `(("emacs-dash" ,emacs-dash)
3857 ("emacs-deferred" ,emacs-deferred)
3858 ("emacs-f" ,emacs-f)
3859 ("emacs-helm" ,emacs-helm)
3860 ("emacs-request" ,emacs-request)
3861 ("emacs-s" ,emacs-s)))
3862 (home-page "https://org-trello.github.io")
3863 (synopsis "Emacs minor mode for interacting with Trello")
3864 (description "This package provides an Emacs minor mode to extend
3865 @code{org-mode} with Trello abilities. Trello is an online project
3866 organizer.")
3867 (license license:gpl3+)))
3868
3869 (define-public emacs-company-flow
3870 (let ((commit "76ef585c70d2a3206c2eadf24ba61e59124c3a16")
3871 (revision "1"))
3872 (package
3873 (name "emacs-company-flow")
3874 (version (git-version "0.1.0" revision commit))
3875 (source (origin
3876 (method git-fetch)
3877 (uri (git-reference
3878 (url "https://github.com/aaronjensen/company-flow/")
3879 (commit commit)))
3880 (file-name (git-file-name name version))
3881 (sha256
3882 (base32
3883 "0zs9cblnbkxa0dxw4lyllmybqizxcdx96gv8jlhx20nrjpi78piw"))))
3884 (build-system emacs-build-system)
3885 (propagated-inputs
3886 `(("emacs-company" ,emacs-company)
3887 ("emacs-dash" ,emacs-dash)))
3888 (home-page "https://github.com/aaronjensen/company-flow/")
3889 (synopsis "Flow backend for @code{company-mode}")
3890 (description
3891 "This package provides completion for JavaScript files utilizing Flow.")
3892 (license license:gpl3+))))
3893
3894 (define-public emacs-atom-one-dark-theme
3895 (let ((commit "1f1185bf667a38d3d0d180ce85fd4c131818aae2")
3896 (revision "0"))
3897 (package
3898 (name "emacs-atom-one-dark-theme")
3899 (version (git-version "0.4.0" revision commit))
3900 (source (origin
3901 (method git-fetch)
3902 (uri (git-reference
3903 (url "https://github.com/jonathanchu/atom-one-dark-theme.git")
3904 (commit commit)))
3905 (sha256
3906 (base32
3907 "1alma16hg3mfjly8a9s3mrswkjjx4lrpdnf43869hn2ibkn7zx9z"))
3908 (file-name (git-file-name name version))))
3909 (build-system emacs-build-system)
3910 (home-page "https://github.com/jonathanchu/atom-one-dark-theme")
3911 (synopsis "Atom One Dark color theme for Emacs")
3912 (description "An Emacs port of the Atom One Dark theme from Atom.io.")
3913 (license license:gpl3+))))
3914
3915 (define-public emacs-zenburn-theme
3916 (package
3917 (name "emacs-zenburn-theme")
3918 (version "2.6")
3919 (source
3920 (origin
3921 (method git-fetch)
3922 (uri (git-reference
3923 (url "https://github.com/bbatsov/zenburn-emacs.git")
3924 (commit (string-append "v" version))))
3925 (file-name (git-file-name name version))
3926 (sha256
3927 (base32 "1n87r5hs7h5r8dgfid66skpzcypl9hssr9m3npp916g6jfsi782f"))))
3928 (build-system emacs-build-system)
3929 (home-page "https://github.com/bbatsov/zenburn-emacs")
3930 (synopsis "Low contrast color theme for Emacs")
3931 (description
3932 "Zenburn theme is a port of the popular Vim Zenburn theme for Emacs.
3933 It is built on top of the custom theme support in Emacs 24 or later.")
3934 (license license:gpl3+)))
3935
3936 (define-public emacs-solarized-theme
3937 (package
3938 (name "emacs-solarized-theme")
3939 (version "1.2.2")
3940 (source (origin
3941 (method url-fetch)
3942 (uri (string-append "https://github.com/bbatsov/solarized-emacs/"
3943 "archive/v" version ".tar.gz"))
3944 (file-name (string-append name "-" version ".tar.gz"))
3945 (sha256
3946 (base32
3947 "1ha3slc6d9wi9ilkhmwrzkvf308n6ph7b0k69pk369s9304awxzx"))))
3948 (build-system emacs-build-system)
3949 (propagated-inputs
3950 `(("emacs-dash" ,emacs-dash)))
3951 (home-page "https://github.com/bbatsov/solarized-emacs")
3952 (synopsis "Port of the Solarized theme for Emacs")
3953 (description
3954 "Solarized for Emacs is a port of the Solarized theme for Vim. This
3955 package provides a light and a dark variant.")
3956 (license license:gpl3+)))
3957
3958 (define-public emacs-ahungry-theme
3959 (package
3960 (name "emacs-ahungry-theme")
3961 (version "1.10.0")
3962 (source
3963 (origin (method url-fetch)
3964 (uri (string-append "https://elpa.gnu.org/packages/ahungry-theme-"
3965 version ".tar"))
3966 (sha256
3967 (base32
3968 "14q5yw56n82qph09bk7wmj5b1snhh9w0nk5s1l7yn9ldg71xq6pm"))))
3969 (build-system emacs-build-system)
3970 (home-page "https://github.com/ahungry/color-theme-ahungry")
3971 (synopsis "Ahungry color theme for Emacs")
3972 (description "Ahungry theme for Emacs provides bright and bold colors.
3973 If you load it from a terminal, you will be able to make use of the
3974 transparent background. If you load it from a GUI, it will default to a
3975 dark background.")
3976 (license license:gpl3+)))
3977
3978 (define-public emacs-2048-game
3979 (package
3980 (name "emacs-2048-game")
3981 (version "20151026.1233")
3982 (source
3983 (origin
3984 (method url-fetch)
3985 (uri (string-append "https://melpa.org/packages/2048-game-"
3986 version ".el"))
3987 (sha256
3988 (base32
3989 "0gy2pvz79whpavp4jmz8h9krzn7brmvv3diixi1d4w51pcdvaldd"))))
3990 (build-system emacs-build-system)
3991 (home-page "https://bitbucket.org/zck/2048.el")
3992 (synopsis "Implementation of the game 2048 in Emacs Lisp")
3993 (description
3994 "This program is an implementation of 2048 for Emacs.
3995 The goal of this game is to create a tile with value 2048. The size of the
3996 board and goal value can be customized.")
3997 (license license:gpl3+)))
3998
3999 (define-public emacs-base16-theme
4000 (package
4001 (name "emacs-base16-theme")
4002 (version "2.1")
4003 (source
4004 (origin
4005 (method url-fetch)
4006 (uri (string-append "https://stable.melpa.org/packages/base16-theme-"
4007 version ".tar"))
4008 (sha256
4009 (base32
4010 "0z6hrwz2jlz6jbr381rcqcqvx6hss5cad352klx07rark7zccacj"))))
4011 (build-system emacs-build-system)
4012 (home-page "https://github.com/belak/base16-emacs")
4013 (synopsis "Base16 color themes for Emacs")
4014 (description
4015 "Base16 provides carefully chosen syntax highlighting and a default set
4016 of sixteen colors suitable for a wide range of applications. Base16 is not a
4017 single theme but a set of guidelines with numerous implementations.")
4018 (license license:expat)))
4019
4020 (define-public emacs-prescient
4021 (package
4022 (name "emacs-prescient")
4023 (version "2.2.2")
4024 (source (origin
4025 (method git-fetch)
4026 (uri (git-reference
4027 (url "https://github.com/raxod502/prescient.el/")
4028 (commit (string-append "v" version))))
4029 (file-name (git-file-name name version))
4030 (sha256
4031 (base32
4032 "1ncplx5p3cffyzg9ygzqqxj0vpvwrz9rp2n4z6c375a78fyydrk0"))))
4033 (build-system emacs-build-system)
4034 (propagated-inputs
4035 `(("emacs-company" ,emacs-company)
4036 ("emacs-ivy" ,emacs-ivy)))
4037 (home-page "https://github.com/raxod502/prescient.el/")
4038 (synopsis "Library that sorts and filters lists of candidates")
4039 (description
4040 "This package provides a library for sorting and filtering, as well as
4041 extensions for @code{ivy-mode} and @code{company-mode} that make use of the
4042 library.")
4043 (license license:gpl3+)))
4044
4045 (define-public emacs-smartparens
4046 (package
4047 (name "emacs-smartparens")
4048 (version "1.11.0")
4049 (source
4050 (origin
4051 (method git-fetch)
4052 (uri (git-reference
4053 (url "https://github.com/Fuco1/smartparens.git")
4054 (commit version)))
4055 (file-name (git-file-name name version))
4056 (sha256
4057 (base32 "0zij2f2rjjym98w68jkp10n1ckpfprlkk217c3fg16hz5nq4vnm6"))))
4058 (build-system emacs-build-system)
4059 (propagated-inputs
4060 `(("emacs-dash" ,emacs-dash)
4061 ("emacs-markdown-mode" ,emacs-markdown-mode)))
4062 (home-page "https://github.com/Fuco1/smartparens")
4063 (synopsis "Paredit-like insertion, wrapping and navigation with user
4064 defined pairs")
4065 (description
4066 "Smartparens is a minor mode for Emacs that deals with parens pairs
4067 and tries to be smart about it. It started as a unification effort to
4068 combine functionality of several existing packages in a single,
4069 compatible and extensible way to deal with parentheses, delimiters, tags
4070 and the like. Some of these packages include autopair, textmate,
4071 wrap-region, electric-pair-mode, paredit and others. With the basic
4072 features found in other packages it also brings many improvements as
4073 well as completely new features.")
4074 (license license:gpl3+)))
4075
4076 (define-public emacs-highlight-symbol
4077 (package
4078 (name "emacs-highlight-symbol")
4079 (version "1.3")
4080 (source
4081 (origin
4082 (method git-fetch)
4083 (uri (git-reference
4084 (url "https://github.com/nschum/highlight-symbol.el.git")
4085 (commit version)))
4086 (file-name (git-file-name name version))
4087 (sha256
4088 (base32 "09z13kv2g21kjjkkm3iyaz93sdjmdy2d563r8n7r7ng94acrn7f6"))))
4089 (build-system emacs-build-system)
4090 (home-page "https://nschum.de/src/emacs/highlight-symbol")
4091 (synopsis "Automatic and manual symbol highlighting for Emacs")
4092 (description
4093 "Use @code{highlight-symbol} to toggle highlighting of the symbol at
4094 point throughout the current buffer. Use @code{highlight-symbol-mode} to keep
4095 the symbol at point highlighted.
4096
4097 The functions @code{highlight-symbol-next}, @code{highlight-symbol-prev},
4098 @code{highlight-symbol-next-in-defun} and
4099 @code{highlight-symbol-prev-in-defun} allow for cycling through the locations
4100 of any symbol at point. Use @code{highlight-symbol-nav-mode} to enable key
4101 bindings @code{M-p} and @code{M-p} for navigation. When
4102 @code{highlight-symbol-on-navigation-p} is set, highlighting is triggered
4103 regardless of @code{highlight-symbol-idle-delay}.
4104
4105 @code{highlight-symbol-query-replace} can be used to replace the symbol. ")
4106 (license license:gpl2+)))
4107
4108 (define-public emacs-hl-todo
4109 (package
4110 (name "emacs-hl-todo")
4111 (version "3.0.0")
4112 (source (origin
4113 (method git-fetch)
4114 (uri (git-reference
4115 (url "https://github.com/tarsius/hl-todo")
4116 (commit (string-append "v" version))))
4117 (file-name (git-file-name name version))
4118 (sha256
4119 (base32
4120 "07xcc04ivpl5sbgb55qz84mz6wa500h0awzw1zq1ba5mfjjq8hls"))))
4121 (build-system emacs-build-system)
4122 (home-page "https://github.com/tarsius/hl-todo")
4123 (synopsis "Emacs mode to highlight TODO and similar keywords")
4124 (description
4125 "This package provides an Emacs mode to highlight TODO and similar
4126 keywords in comments and strings. This package also provides commands for
4127 moving to the next or previous keyword and to invoke @code{occur} with a
4128 regexp that matches all known keywords.")
4129 (license license:gpl3+)))
4130
4131 (define-public emacs-perspective
4132 (package
4133 (name "emacs-perspective")
4134 (version "1.12")
4135 (source
4136 (origin
4137 (method url-fetch)
4138 (uri (string-append "https://github.com/nex3/perspective-el/"
4139 "archive/" version ".tar.gz"))
4140 (file-name (string-append name "-" version ".tar.gz"))
4141 (sha256
4142 (base32
4143 "078ahh0kmhdylq5ib9c81c76kz1n02xwc83pm729d00i84ibviic"))))
4144 (build-system emacs-build-system)
4145 (home-page "https://github.com/nex3/perspective-el")
4146 (synopsis "Switch between named \"perspectives\"")
4147 (description
4148 "This package provides tagged workspaces in Emacs, similar to workspaces in
4149 windows managers such as Awesome and XMonad. @code{perspective.el} provides
4150 multiple workspaces (or \"perspectives\") for each Emacs frame. Each
4151 perspective is composed of a window configuration and a set of buffers.
4152 Switching to a perspective activates its window configuration, and when in a
4153 perspective only its buffers are available by default.")
4154 ;; This package is released under the same license as Emacs (GPLv3+) or
4155 ;; the Expat license.
4156 (license license:gpl3+)))
4157
4158 (define-public emacs-test-simple
4159 (package
4160 (name "emacs-test-simple")
4161 (version "1.3.0")
4162 (source
4163 (origin
4164 (method url-fetch)
4165 (uri (string-append "https://elpa.gnu.org/packages/test-simple-"
4166 version ".el"))
4167 (sha256
4168 (base32
4169 "1yd61jc9ds95a5n09052kwc5gasy57g4lxr0jsff040brlyi9czz"))))
4170 (build-system emacs-build-system)
4171 (home-page "https://github.com/rocky/emacs-test-simple")
4172 (synopsis "Simple unit test framework for Emacs Lisp")
4173 (description
4174 "Test Simple is a simple unit test framework for Emacs Lisp. It
4175 alleviates the need for context macros, enclosing specifications or required
4176 test tags. It supports both interactive and non-interactive use.")
4177 (license license:gpl3+)))
4178
4179 (define-public emacs-load-relative
4180 (package
4181 (name "emacs-load-relative")
4182 (version "1.3")
4183 (source
4184 (origin
4185 (method url-fetch)
4186 (uri (string-append "https://elpa.gnu.org/packages/load-relative-"
4187 version ".el"))
4188 (sha256
4189 (base32
4190 "1hfxb2436jdsi9wfmsv47lkkpa5galjf5q81bqabbsv79rv59dps"))))
4191 (build-system emacs-build-system)
4192 (home-page "http://github.com/rocky/emacs-load-relative")
4193 (synopsis "Emacs Lisp relative file loading related functions")
4194 (description
4195 "Provides functions which facilitate writing multi-file Emacs packages
4196 and running from the source tree without having to \"install\" code or fiddle
4197 with @{load-path}.
4198
4199 The main function, @code{load-relative}, loads an Emacs Lisp file relative to
4200 another (presumably currently running) Emacs Lisp file.")
4201 (license license:gpl3+)))
4202
4203 (define-public emacs-loc-changes
4204 (package
4205 (name "emacs-loc-changes")
4206 (version "1.2")
4207 (source
4208 (origin
4209 (method url-fetch)
4210 (uri (string-append "https://elpa.gnu.org/packages/loc-changes-"
4211 version ".el"))
4212 (sha256
4213 (base32
4214 "1x8fn8vqasayf1rb8a6nma9n6nbvkx60krmiahyb05vl5rrsw6r3"))))
4215 (build-system emacs-build-system)
4216 (home-page "https://github.com/rocky/emacs-loc-changes")
4217 (synopsis "Keeps track of positions even after buffer changes")
4218 (description
4219 "This Emacs package provides a mean to track important buffer positions
4220 after buffer changes.")
4221 (license license:gpl3+)))
4222
4223 (define-public emacs-realgud
4224 (package
4225 (name "emacs-realgud")
4226 (version "1.4.5")
4227 (source
4228 (origin
4229 (method url-fetch)
4230 (uri (string-append "https://elpa.gnu.org/packages/realgud-"
4231 version ".tar"))
4232 (sha256
4233 (base32
4234 "108wgxg7fb4byaiasgvbxv2hq7b00biq9f0mh9hy6vw4160y5w24"))
4235 (patches
4236 ;; Patch awaiting inclusion upstream (see:
4237 ;; https://github.com/realgud/realgud/pull/226).
4238 (search-patches "emacs-realgud-fix-configure-ac.patch"))))
4239 (build-system emacs-build-system)
4240 (arguments
4241 `(#:tests? #t
4242 #:phases
4243 (modify-phases %standard-phases
4244 (add-after 'set-emacs-load-path 'fix-autogen-script
4245 (lambda _
4246 (substitute* "autogen.sh"
4247 (("./configure") "sh configure"))))
4248 (add-after 'fix-autogen-script 'autogen
4249 (lambda _
4250 (setenv "CONFIG_SHELL" "sh")
4251 (invoke "sh" "autogen.sh")))
4252 (add-after 'fix-autogen-script 'set-home
4253 (lambda _
4254 (setenv "HOME" (getenv "TMPDIR"))))
4255 (add-before 'patch-el-files 'remove-realgud-pkg.el
4256 (lambda _
4257 ;; XXX: This file is auto-generated at some point and causes
4258 ;; substitute* to crash during the `patch-el-files' phase with:
4259 ;; ERROR: In procedure stat: No such file or directory:
4260 ;; "./realgud-pkg.el"
4261 (delete-file "./realgud-pkg.el")
4262 ;; FIXME: `patch-el-files' crashes on this file with error:
4263 ;; unable to locate "bashdb".
4264 (delete-file "./test/test-regexp-bashdb.el"))))
4265 #:include (cons* ".*\\.el$" %default-include)))
4266 (native-inputs
4267 `(("autoconf" ,autoconf)
4268 ("automake" ,automake)
4269 ("emacs-test-simple" ,emacs-test-simple)))
4270 (propagated-inputs
4271 `(("emacs-load-relative" ,emacs-load-relative)
4272 ("emacs-loc-changes" ,emacs-loc-changes)))
4273 (home-page "https://github.com/realgud/realgud/")
4274 (synopsis
4275 "Modular front-end for interacting with external debuggers")
4276 (description
4277 "RealGUD is a modular, extensible GNU Emacs front-end for interacting
4278 with external debuggers. It integrates various debuggers such as gdb, pdb,
4279 ipdb, jdb, lldb, bashdb, zshdb, etc. and allows to visually step code in the
4280 sources. Unlike GUD, it also supports running multiple debug sessions in
4281 parallel.")
4282 (license license:gpl3+)))
4283
4284 (define-public emacs-request
4285 (package
4286 (name "emacs-request")
4287 (version "0.3.0")
4288 (source (origin
4289 (method git-fetch)
4290 (uri (git-reference
4291 (url "https://github.com/tkf/emacs-request.git")
4292 (commit (string-append "v" version))))
4293 (file-name (git-file-name name version))
4294 (sha256
4295 (base32
4296 "0wyxqbb35yqf6ci47531lk32d6fppamx9d8826kdz983vm87him7"))))
4297 (build-system emacs-build-system)
4298 (propagated-inputs
4299 `(("emacs-deferred" ,emacs-deferred)))
4300 (home-page "https://github.com/tkf/emacs-request")
4301 (synopsis "Package for speaking HTTP in Emacs Lisp")
4302 (description "This package provides a HTTP request library with multiple
4303 backends. It supports url.el which is shipped with Emacs and the curl command
4304 line program.")
4305 (license license:gpl3+)))
4306
4307 (define-public emacs-rudel
4308 (package
4309 (name "emacs-rudel")
4310 (version "0.3.1")
4311 (source
4312 (origin
4313 (method url-fetch)
4314 (uri (string-append "http://elpa.gnu.org/packages/rudel-"
4315 version ".tar"))
4316 (sha256
4317 (base32
4318 "0glqa68g509p0s2vcc0i8kzlddnc9brd9jqhnm5rzxz4i050cvnz"))))
4319 (build-system emacs-build-system)
4320 (home-page "http://rudel.sourceforge.net/")
4321 (synopsis "Collaborative editing framework")
4322 (description
4323 "Rudel is a collaborative editing environment for GNU Emacs. Its purpose
4324 is to share buffers with other users in order to edit the contents of those
4325 buffers collaboratively. Rudel supports multiple backends to enable
4326 communication with other collaborative editors using different protocols,
4327 though currently Obby (for use with the Gobby editor) is the only
4328 fully-functional one.")
4329 (license license:gpl3+)))
4330
4331 (define-public emacs-hydra
4332 (package
4333 (name "emacs-hydra")
4334 (version "0.14.0")
4335 (source
4336 (origin
4337 (method git-fetch)
4338 (uri (git-reference
4339 (url "https://github.com/abo-abo/hydra")
4340 (commit version)))
4341 (file-name (git-file-name name version))
4342 (sha256
4343 (base32
4344 "0ln4z2796ycy33g5jcxkqvm7638qxy4sipsab7d2864hh700cikg"))))
4345 (build-system emacs-build-system)
4346 (home-page "https://github.com/abo-abo/hydra")
4347 (synopsis "Make Emacs bindings that stick around")
4348 (description
4349 "This package can be used to tie related commands into a family of short
4350 bindings with a common prefix---a Hydra. Once you summon the Hydra (through
4351 the prefixed binding), all the heads can be called in succession with only a
4352 short extension. Any binding that isn't the Hydra's head vanquishes the
4353 Hydra. Note that the final binding, besides vanquishing the Hydra, will still
4354 serve its original purpose, calling the command assigned to it. This makes
4355 the Hydra very seamless; it's like a minor mode that disables itself
4356 automatically.")
4357 (license license:gpl3+)))
4358
4359 (define-public emacs-ivy
4360 (package
4361 (name "emacs-ivy")
4362 (version "0.11.0")
4363 (source
4364 (origin
4365 (method git-fetch)
4366 (uri (git-reference
4367 (url "https://github.com/abo-abo/swiper.git")
4368 (commit version)))
4369 (file-name (git-file-name name version))
4370 (sha256
4371 (base32
4372 "009n8zjycs62cv4i1k9adbb284wz2w3r13xki2740sj34k683v13"))))
4373 (build-system emacs-build-system)
4374 (arguments
4375 `(#:phases
4376 (modify-phases %standard-phases
4377 (add-after 'install 'install-doc
4378 (lambda* (#:key outputs #:allow-other-keys)
4379 (let* ((out (assoc-ref outputs "out"))
4380 (info (string-append out "/share/info")))
4381 (with-directory-excursion "doc"
4382 (invoke "makeinfo" "ivy.texi")
4383 (install-file "ivy.info" info)
4384 #t)))))))
4385 (propagated-inputs
4386 `(("emacs-hydra" ,emacs-hydra)))
4387 (native-inputs
4388 `(("texinfo" ,texinfo)))
4389 (home-page "http://oremacs.com/swiper/")
4390 (synopsis "Incremental vertical completion for Emacs")
4391 (description
4392 "This package provides @code{ivy-read} as an alternative to
4393 @code{completing-read} and similar functions. No attempt is made to determine
4394 the best candidate. Instead, the user can navigate candidates with
4395 @code{ivy-next-line} and @code{ivy-previous-line}. The matching is done by
4396 splitting the input text by spaces and re-building it into a regular
4397 expression.")
4398 (license license:gpl3+)))
4399
4400 (define-public emacs-ivy-yasnippet
4401 (let ((commit "32580b4fd23ebf9ca7dde96704f7d53df6e253cd")
4402 (revision "2"))
4403 (package
4404 (name "emacs-ivy-yasnippet")
4405 (version (git-version "0.1" revision commit))
4406 (source
4407 (origin
4408 (method git-fetch)
4409 (uri (git-reference
4410 (url "https://github.com/mkcms/ivy-yasnippet.git")
4411 (commit commit)))
4412 (file-name (git-file-name name version))
4413 (sha256
4414 (base32
4415 "1wfg6mmd5gl1qgvayyzpxlkh9s7jgn20y8l1vh1zbj1czvv51xp8"))))
4416 (build-system emacs-build-system)
4417 (propagated-inputs
4418 `(("emacs-ivy" ,emacs-ivy)
4419 ("emacs-yasnippet" ,emacs-yasnippet)
4420 ("emacs-dash" ,emacs-dash)))
4421 (home-page "https://github.com/mkcms/ivy-yasnippet")
4422 (synopsis "Preview @code{yasnippets} with @code{ivy}")
4423 (description "This package allows you to select @code{yasnippet}
4424 snippets using @code{ivy} completion. When current selection changes in the
4425 minibuffer, the snippet contents are temporarily expanded in the buffer. To
4426 use it, call @code{M-x ivy-yasnippet} (but make sure you have enabled
4427 @code{yas-minor-mode} first).")
4428 (license license:gpl3+))))
4429
4430 (define-public emacs-ivy-rich
4431 (package
4432 (name "emacs-ivy-rich")
4433 (version "0.1.0")
4434 (source
4435 (origin
4436 (method git-fetch)
4437 (uri (git-reference
4438 (url "https://github.com/Yevgnen/ivy-rich.git")
4439 (commit version)))
4440 (file-name (git-file-name name version))
4441 (sha256
4442 (base32 "0ayf3dwfhafcbqnckm65zy8nc1rv9ji939qfn53wbhxkrgqdicgz"))))
4443 (build-system emacs-build-system)
4444 (propagated-inputs
4445 `(("emacs-ivy" ,emacs-ivy)))
4446 (home-page "https://github.com/Yevgnen/ivy-rich")
4447 (synopsis "More friendly interface for @code{ivy}")
4448 (description
4449 "This package extends @code{ivy} by showing more information in the
4450 minibuffer for each candidate. It adds columns showing buffer modes, file
4451 sizes, docstrings, etc. If @code{emacs-all-the-icons} is installed, it can
4452 show icons as well.")
4453 (license license:gpl3+)))
4454
4455 (define-public emacs-avy
4456 (package
4457 (name "emacs-avy")
4458 (version "0.4.0")
4459 (source
4460 (origin
4461 (method git-fetch)
4462 (uri (git-reference
4463 (url "https://github.com/abo-abo/avy.git")
4464 (commit version)))
4465 (file-name (git-file-name name version))
4466 (sha256
4467 (base32 "0rq9ab264565z83cly743nbhrd9m967apmnlhqr1gy8dm4hcy7nm"))))
4468 (build-system emacs-build-system)
4469 (home-page "https://github.com/abo-abo/avy")
4470 (synopsis "Tree-based completion for Emacs")
4471 (description
4472 "This package provides a generic completion method based on building a
4473 balanced decision tree with each candidate being a leaf. To traverse the tree
4474 from the root to a desired leaf, typically a sequence of @code{read-key} can
4475 be used.
4476
4477 In order for @code{read-key} to make sense, the tree needs to be visualized
4478 appropriately, with a character at each branch node. So this completion
4479 method works only for things that you can see on your screen, all at once,
4480 such as the positions of characters, words, line beginnings, links, or
4481 windows.")
4482 (license license:gpl3+)))
4483
4484 (define-public emacs-ace-window
4485 (package
4486 (name "emacs-ace-window")
4487 (version "0.9.0")
4488 (source
4489 (origin
4490 (method git-fetch)
4491 (uri (git-reference
4492 (url "https://github.com/abo-abo/ace-window.git")
4493 (commit version)))
4494 (file-name (git-file-name name version))
4495 (sha256
4496 (base32 "07mcdzjmgrqdvjs94f2n5bkrf5vrq2fwzz256wbm3wzqxqkfy1q6"))))
4497 (build-system emacs-build-system)
4498 (propagated-inputs
4499 `(("emacs-avy" ,emacs-avy)))
4500 (home-page "https://github.com/abo-abo/ace-window")
4501 (synopsis "Quickly switch windows in Emacs")
4502 (description
4503 "@code{ace-window} is meant to replace @code{other-window}.
4504 In fact, when there are only two windows present, @code{other-window} is
4505 called. If there are more, each window will have its first character
4506 highlighted. Pressing that character will switch to that window.")
4507 (license license:gpl3+)))
4508
4509 (define-public emacs-iedit
4510 (package
4511 (name "emacs-iedit")
4512 (version "0.9.9.9")
4513 (source
4514 (origin
4515 (method git-fetch)
4516 (uri (git-reference
4517 (url "https://github.com/victorhge/iedit.git")
4518 (commit (string-append "v" version))))
4519 (file-name (git-file-name name version))
4520 (sha256
4521 (base32 "1pwkrm98vlpzsy5iwwfksdaz3zzyi7bvdf5fglhsn4ssf47p787g"))))
4522 (build-system emacs-build-system)
4523 (home-page "http://www.emacswiki.org/emacs/Iedit")
4524 (synopsis "Edit multiple regions in the same way simultaneously")
4525 (description
4526 "This package is an Emacs minor mode and allows you to edit one
4527 occurrence of some text in a buffer (possibly narrowed) or region, and
4528 simultaneously have other occurrences edited in the same way.
4529
4530 You can also use Iedit mode as a quick way to temporarily show only the buffer
4531 lines that match the current text being edited. This gives you the effect of
4532 a temporary @code{keep-lines} or @code{occur}.")
4533 (license license:gpl3+)))
4534
4535 (define-public emacs-zoutline
4536 (let ((commit "b3ee0f0e0b916838c2d2c249beba74ffdb8d5699")
4537 (revision "0"))
4538 (package
4539 (name "emacs-zoutline")
4540 (version (git-version "0.1" revision commit))
4541 (home-page "https://github.com/abo-abo/zoutline")
4542 (source (origin
4543 (method git-fetch)
4544 (uri (git-reference (url home-page) (commit commit)))
4545 (sha256
4546 (base32
4547 "0sd0017piw0dis6dhpq5dkqd3acisxqgipl7dj8gmc1vnswhdwr8"))
4548 (file-name (git-file-name name version))))
4549 (build-system emacs-build-system)
4550 (synopsis "Simple outline library")
4551 (description
4552 "This library provides helpers for outlines. Outlines allow users to
4553 navigate code in a tree-like fashion.")
4554 (license license:gpl3+))))
4555
4556 (define-public emacs-lispy
4557 ;; Release 0.26.0 was almost 3 years ago, and there have been ~772 commits
4558 ;; since.
4559 (let ((commit "f94cfc6b8f9c3afe7d028c366928049c011023de")
4560 (revision "1"))
4561 (package
4562 (name "emacs-lispy")
4563 (version (git-version "0.26.0" revision commit))
4564 (home-page "https://github.com/abo-abo/lispy")
4565 (source (origin
4566 (method git-fetch)
4567 (uri (git-reference (url home-page) (commit commit)))
4568 (sha256
4569 (base32
4570 "1bm2cpwizg1qfpm377gpx1af1hm5maw69if1csnk5vwaphmv8c4g"))
4571 (file-name (git-file-name name version))))
4572 (build-system emacs-build-system)
4573 (propagated-inputs
4574 `(("emacs-ace-window" ,emacs-ace-window)
4575 ("emacs-iedit" ,emacs-iedit)
4576 ("emacs-ivy" ,emacs-ivy)
4577 ("emacs-hydra" ,emacs-hydra)
4578 ("emacs-zoutline" ,emacs-zoutline)))
4579 (synopsis "Modal S-expression editing")
4580 (description
4581 "Due to the structure of Lisp syntax it's very rare for the programmer
4582 to want to insert characters right before \"(\" or right after \")\". Thus
4583 unprefixed printable characters can be used to call commands when the point is
4584 at one of these special locations. Lispy provides unprefixed keybindings for
4585 S-expression editing when point is at the beginning or end of an
4586 S-expression.")
4587 (license license:gpl3+))))
4588
4589 (define-public emacs-lispyville
4590 (let ((commit "d28b937f0cabd8ce61e2020fe9a733ca80d82c74")
4591 (revision "1"))
4592 (package
4593 (name "emacs-lispyville")
4594 (version (git-version "0.1" revision commit))
4595 (home-page "https://github.com/noctuid/lispyville")
4596 (source (origin
4597 (method git-fetch)
4598 (uri (git-reference (url home-page) (commit commit)))
4599 (sha256
4600 (base32
4601 "0f6srwj1qqkfkbmp5n5pjvi6gm7b7xav05p5hrs2i83rjrakzzqx"))
4602 (file-name (git-file-name name version))))
4603 (propagated-inputs
4604 `(("emacs-evil" ,emacs-evil)
4605 ("emacs-lispy" ,emacs-lispy)))
4606 (build-system emacs-build-system)
4607 (synopsis "Minor mode for integrating Evil with lispy")
4608 (description
4609 "LispyVille's main purpose is to provide a Lisp editing environment
4610 suited towards Evil users. It can serve as a minimal layer on top of lispy
4611 for better integration with Evil, but it does not require the use of lispy’s
4612 keybinding style. The provided commands allow for editing Lisp in normal
4613 state and will work even without lispy being enabled.")
4614 (license license:gpl3+))))
4615
4616 (define-public emacs-clojure-mode
4617 (package
4618 (name "emacs-clojure-mode")
4619 (version "5.6.1")
4620 (source
4621 (origin
4622 (method git-fetch)
4623 (uri (git-reference
4624 (url "https://github.com/clojure-emacs/clojure-mode.git")
4625 (commit version)))
4626 (file-name (git-file-name name version))
4627 (sha256
4628 (base32 "1qadymqzs5fn1sb347xzfw8lqq6s85vvkh4kzm35m61g5i2lm86y"))))
4629 (build-system emacs-build-system)
4630 (native-inputs
4631 `(("emacs-dash" ,emacs-dash)
4632 ("emacs-s" ,emacs-s)
4633 ("ert-runner" ,emacs-ert-runner)))
4634 (arguments
4635 `(#:tests? #t
4636 #:test-command '("ert-runner")))
4637 (home-page "https://github.com/clojure-emacs/clojure-mode")
4638 (synopsis "Major mode for Clojure code")
4639 (description
4640 "This Emacs package provides font-lock, indentation, navigation and basic
4641 refactoring for the @uref{http://clojure.org, Clojure programming language}.
4642 It is recommended to use @code{clojure-mode} with paredit or smartparens.")
4643 (license license:gpl3+)))
4644
4645 (define-public emacs-epl
4646 (package
4647 (name "emacs-epl")
4648 (version "0.8")
4649 (source
4650 (origin
4651 (method git-fetch)
4652 (uri (git-reference
4653 (url "https://github.com/cask/epl.git")
4654 (commit version)))
4655 (file-name (git-file-name name version))
4656 (sha256
4657 (base32 "0sjxd5y5hxhrbgfkpwx6m724r3841b53hgc61a0g5zwispw5pmrr"))))
4658 (build-system emacs-build-system)
4659 (home-page "https://github.com/cask/epl")
4660 (synopsis "Emacs Package Library")
4661 (description
4662 "A package management library for Emacs, based on @code{package.el}.
4663
4664 The purpose of this library is to wrap all the quirks and hassle of
4665 @code{package.el} into a sane API.")
4666 (license license:gpl3+)))
4667
4668 (define-public emacs-counsel-projectile
4669 (package
4670 (name "emacs-counsel-projectile")
4671 (version "0.3.0")
4672 (source (origin
4673 (method git-fetch)
4674 (uri (git-reference
4675 (url "https://github.com/ericdanan/counsel-projectile")
4676 (commit version)))
4677 (file-name (git-file-name name version))
4678 (sha256
4679 (base32
4680 "1inc4ndl0ysfwvxk4avbgpj4qi9rc93da6476a5c81xmwpsv8wmq"))))
4681 (build-system emacs-build-system)
4682 (propagated-inputs
4683 `(("emacs-ivy" ,emacs-ivy)
4684 ("emacs-projectile" ,emacs-projectile)))
4685 (home-page "https://github.com/ericdanan/counsel-projectile")
4686 (synopsis "Enhance Projectile with Ivy")
4687 (description
4688 "This package uses Ivy to provide additional actions for Projectile
4689 commands and replacements for existing functions.")
4690 (license license:gpl3+)))
4691
4692 (define-public emacs-queue
4693 (package
4694 (name "emacs-queue")
4695 (version "0.2")
4696 (source (origin
4697 (method url-fetch)
4698 (uri (string-append "https://elpa.gnu.org/packages/queue-"
4699 version ".el"))
4700 (sha256
4701 (base32
4702 "0cx2848sqnnkkr4zisvqadzxngjyhmb36mh0q3if7q19yjjhmrkb"))))
4703 (build-system emacs-build-system)
4704 (home-page "http://www.dr-qubit.org/tags/computing-code-emacs.html")
4705 (synopsis "Queue data structure for Emacs")
4706 (description
4707 "This Emacs library provides queue data structure. These queues can be
4708 used both as a first-in last-out (FILO) and as a first-in first-out (FIFO)
4709 stack, i.e. elements can be added to the front or back of the queue, and can
4710 be removed from the front. This type of data structure is sometimes called an
4711 \"output-restricted deque\".")
4712 (license license:gpl3+)))
4713
4714 (define-public emacs-pkg-info
4715 (package
4716 (name "emacs-pkg-info")
4717 (version "0.6")
4718 (source
4719 (origin
4720 (method git-fetch)
4721 (uri (git-reference
4722 (url "https://github.com/lunaryorn/pkg-info.el.git")
4723 (commit version)))
4724 (file-name (git-file-name name version))
4725 (sha256
4726 (base32 "0nk12dcppdyhav6m6yf7abpywyd7amxd4237zsfd32w4zxsx39k1"))))
4727 (build-system emacs-build-system)
4728 (propagated-inputs `(("emacs-epl" ,emacs-epl)))
4729 (home-page "https://github.com/lunaryorn/pkg-info.el")
4730 (synopsis "Information about Emacs packages")
4731 (description
4732 "This library extracts information from the installed Emacs packages.")
4733 (license license:gpl3+)))
4734
4735 (define-public emacs-spinner
4736 (package
4737 (name "emacs-spinner")
4738 (version "1.7.3")
4739 (source (origin
4740 (method url-fetch)
4741 (uri (string-append "https://elpa.gnu.org/packages/spinner-"
4742 version ".el"))
4743 (sha256
4744 (base32
4745 "19kp1mmndbmw11sgvv2ggfjl4pyf5zrsbh3871f0965pw9z8vahd"))))
4746 (build-system emacs-build-system)
4747 (home-page "https://github.com/Malabarba/spinner.el")
4748 (synopsis "Emacs mode-line spinner for operations in progress")
4749 (description
4750 "This Emacs package adds spinners and progress-bars to the mode-line for
4751 ongoing operations.")
4752 (license license:gpl3+)))
4753
4754 (define-public emacs-sparql-mode
4755 (package
4756 (name "emacs-sparql-mode")
4757 (version "2.0.1")
4758 (source
4759 (origin
4760 (method git-fetch)
4761 (uri (git-reference
4762 (url "https://github.com/ljos/sparql-mode.git")
4763 (commit (string-append "v" version))))
4764 (file-name (git-file-name name version))
4765 (sha256
4766 (base32 "0ywhqk6n5k0l85zjwbnrivnvxjzqipqrggv06lify6yv18qmyl6s"))))
4767 (build-system emacs-build-system)
4768 (home-page "https://github.com/ljos/sparql-mode")
4769 (synopsis "SPARQL mode for Emacs")
4770 (description "This package provides a major mode for Emacs that provides
4771 syntax highlighting for SPARQL. It also provides a way to execute queries
4772 against a SPARQL HTTP endpoint, such as is provided by Fuseki. It is also
4773 possible to query other endpoints like DBPedia.")
4774 (license license:gpl3+)))
4775
4776 (define-public emacs-better-defaults
4777 (package
4778 (name "emacs-better-defaults")
4779 (version "0.1.3")
4780 (source
4781 (origin
4782 (method url-fetch)
4783 (uri (string-append "https://github.com/technomancy/better-defaults"
4784 "/archive/" version ".tar.gz"))
4785 (file-name (string-append name "-" version ".tar.gz"))
4786 (sha256
4787 (base32
4788 "08fg4zslzlxbvyil5g4gwvwd22fh4zsgqprs5wh9hv1rgc6757m2"))))
4789 (build-system emacs-build-system)
4790 (home-page "https://github.com/technomancy/better-defaults")
4791 (synopsis "Better defaults for Emacs")
4792 (description
4793 "Better defaults attempts to address the most obvious deficiencies of the
4794 Emacs default configuration in uncontroversial ways that nearly everyone can
4795 agree upon.")
4796 (license license:gpl3+)))
4797
4798 (define-public emacs-undohist-el
4799 (let ((commit "d2239a5f736724ceb9e3b6bcaa86f4064805cda0")
4800 (revision "1"))
4801 (package
4802 (name "emacs-undohist-el")
4803 (version (git-version "0" revision commit))
4804 (source
4805 (origin
4806 (method git-fetch)
4807 (uri (git-reference
4808 (url "https://github.com/m2ym/undohist-el")
4809 (commit commit)))
4810 (file-name (git-file-name name version))
4811 (sha256
4812 (base32
4813 "1c0daw246ky7b1x5b8h55x79pl1pjqk1k348l487bdd8zdj4w9wx"))
4814 (patches
4815 (search-patches "emacs-undohist-ignored.patch"))))
4816 (build-system emacs-build-system)
4817 (home-page "https://github.com/m2ym/undohist-el")
4818 (synopsis "Save undo history between sessions")
4819 (description "This package allows persistent use of undo history for
4820 individual file buffers.")
4821 (license license:gpl3+))))
4822
4823 (define-public emacs-eprime
4824 (let ((commit "17a481af26496be91c07139a9bfc05cfe722506f"))
4825 (package
4826 (name "emacs-eprime")
4827 (version (string-append "20140513-" (string-take commit 7)))
4828 (source (origin
4829 (method url-fetch)
4830 (uri (string-append "https://raw.githubusercontent.com"
4831 "/AndrewHynes/eprime-mode/"
4832 commit "/eprime-mode.el"))
4833 (file-name (string-append "eprime-" version ".el"))
4834 (sha256
4835 (base32
4836 "0v68lggkyq7kbcr9zyi573m2g2x251xy3jadlaw8kx02l8krwq8d"))))
4837 (build-system emacs-build-system)
4838 (home-page "https://github.com/AndrewHynes/eprime-mode")
4839 (synopsis "E-prime checking mode for Emacs")
4840 (description "This package provides an E-prime checking mode for Emacs
4841 that highlights non-conforming text. The subset of the English language called
4842 E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
4843 (license license:gpl3+))))
4844
4845 (define-public emacs-julia-mode
4846 ;; XXX: Upstream version remained stuck at 0.3. See
4847 ;; <https://github.com/JuliaEditorSupport/julia-emacs/issues/46>.
4848 (let ((commit "115d4dc8a07445301772da8376b232fa8c7168f4")
4849 (revision "1"))
4850 (package
4851 (name "emacs-julia-mode")
4852 (version (string-append "0.3-" revision "." (string-take commit 8)))
4853 (source
4854 (origin
4855 (method git-fetch)
4856 (uri (git-reference
4857 (url "https://github.com/JuliaEditorSupport/julia-emacs.git")
4858 (commit commit)))
4859 (file-name (git-file-name name version))
4860 (sha256
4861 (base32
4862 "1is4dcv6blslpzbjcg8l2jpxi8xj96q4cm0nxjxsyswpm8bw8ki0"))))
4863 (build-system emacs-build-system)
4864 (arguments
4865 `(#:tests? #t
4866 #:test-command '("emacs" "--batch"
4867 "-l" "julia-mode-tests.el"
4868 "-f" "ert-run-tests-batch-and-exit")))
4869 (home-page "https://github.com/JuliaEditorSupport/julia-emacs")
4870 (synopsis "Major mode for Julia")
4871 (description "This Emacs package provides a mode for the Julia
4872 programming language.")
4873 (license license:expat))))
4874
4875 (define-public emacs-smex
4876 (package
4877 (name "emacs-smex")
4878 (version "3.0")
4879 (source (origin
4880 (method url-fetch)
4881 (uri (string-append "https://raw.githubusercontent.com"
4882 "/nonsequitur/smex/" version "/smex.el"))
4883 (file-name (string-append "smex-" version ".el"))
4884 (sha256
4885 (base32
4886 "0ar310zx9k5y4i1vl2rawvi712xj9gx77160860jbs691p77cxqp"))))
4887 (build-system emacs-build-system)
4888 (home-page "https://github.com/nonsequitur/smex/")
4889 (synopsis "M-x interface with Ido-style fuzzy matching")
4890 (description
4891 "Smex is a M-x enhancement for Emacs. Built on top of Ido, it provides a
4892 convenient interface to your recently and most frequently used commands. And
4893 to all the other commands, too.")
4894 (license license:gpl3+)))
4895
4896 (define-public emacs-js2-mode
4897 (package
4898 (name "emacs-js2-mode")
4899 (version "20190219")
4900 (source
4901 (origin
4902 (method git-fetch)
4903 (uri (git-reference
4904 (url "https://github.com/mooz/js2-mode.git")
4905 (commit version)))
4906 (file-name (git-file-name name version))
4907 (sha256
4908 (base32 "0766bbr4piia9vfr4ivd2gwi8dxah654adv6h28ylz4q8xmfzm1b"))))
4909 (build-system emacs-build-system)
4910 (home-page "https://github.com/mooz/js2-mode/")
4911 (synopsis "Improved JavaScript editing mode for Emacs")
4912 (description
4913 "Js2-mode provides a JavaScript major mode for Emacs that is more
4914 advanced than the built-in javascript-mode. Features include accurate syntax
4915 highlighting using a recursive-descent parser, on-the-fly reporting of syntax
4916 errors and strict-mode warnings, smart line-wrapping within comments and
4917 strings, and code folding.")
4918 (license license:gpl3+)))
4919
4920 (define-public emacs-nodejs-repl
4921 (package
4922 (name "emacs-nodejs-repl")
4923 (version "0.2.0")
4924 (source (origin
4925 (method url-fetch)
4926 (uri (string-append "https://github.com/abicky/nodejs-repl.el"
4927 "/archive/" version ".tar.gz"))
4928 (sha256
4929 (base32
4930 "0hq2cqdq2668yf48g7qnkci90nhih1gnhacsgz355jnib56lhmkz"))
4931 (file-name (string-append name "-" version ".tar.gz"))))
4932 (build-system emacs-build-system)
4933 (home-page "https://github.com/abicky/nodejs-repl.el")
4934 (synopsis "Node.js REPL inside Emacs")
4935 (description
4936 "This program is derived from comint-mode and provides the following
4937 features:
4938
4939 @itemize
4940 @item TAB completion same as Node.js REPL
4941 @item file name completion in string
4942 @item incremental history search
4943 @end itemize")
4944 (license license:gpl3+)))
4945
4946 (define-public emacs-typescript-mode
4947 (package
4948 (name "emacs-typescript-mode")
4949 (version "0.3")
4950 (source (origin
4951 (method url-fetch)
4952 (uri (string-append
4953 "https://github.com/ananthakumaran/typescript.el"
4954 "/archive/v" version ".tar.gz"))
4955 (sha256
4956 (base32
4957 "1gqjirm8scf0wysm7x97zdfbs4qa5nqdl64jfbkd18iskv5mg3rj"))
4958 (file-name (string-append name "-" version ".tar.gz"))))
4959 (build-system emacs-build-system)
4960 (home-page "https://github.com/ananthakumaran/typescript.el")
4961 (synopsis "Emacs major mode for editing Typescript code")
4962 (description
4963 "This is based on Karl Landstrom's barebones @code{typescript-mode}.
4964 This is much more robust and works with @code{cc-mode}'s comment
4965 filling (mostly). The modifications to the original @code{javascript.el} mode
4966 mainly consisted in replacing \"javascript\" with \"typescript\"
4967
4968 The main features of this Typescript mode are syntactic highlighting (enabled
4969 with @code{font-lock-mode} or @code{global-font-lock-mode}), automatic
4970 indentation and filling of comments and C preprocessor fontification.")
4971 (license license:gpl3+)))
4972
4973 (define-public emacs-tide
4974 (package
4975 (name "emacs-tide")
4976 (version "3.2.3")
4977 (source (origin
4978 (method url-fetch)
4979 (uri (string-append "https://github.com/ananthakumaran/tide"
4980 "/archive/v" version ".tar.gz"))
4981 (sha256
4982 (base32
4983 "1c600myr2yqbkmy9lify38lz0zzjdqk1733db5n7vsay16vn6fzi"))
4984 (file-name (string-append name "-" version ".tar.gz"))))
4985 (build-system emacs-build-system)
4986 (propagated-inputs
4987 `(("emacs-dash" ,emacs-dash)
4988 ("emacs-s" ,emacs-s)
4989 ("emacs-flycheck" ,emacs-flycheck)
4990 ("emacs-typescript-mode" ,emacs-typescript-mode)))
4991 (home-page "https://github.com/ananthakumaran/tide")
4992 (synopsis "Typescript IDE for Emacs")
4993 (description
4994 "Tide is an Interactive Development Environment (IDE) for Emacs which
4995 provides the following features:
4996
4997 @itemize
4998 @item ElDoc
4999 @item Auto complete
5000 @item Flycheck
5001 @item Jump to definition, Jump to type definition
5002 @item Find occurrences
5003 @item Rename symbol
5004 @item Imenu
5005 @item Compile On Save
5006 @item Highlight Identifiers
5007 @item Code Fixes
5008 @item Code Refactor
5009 @item Organize Imports
5010 @end itemize")
5011 (license license:gpl3+)))
5012
5013 (define-public emacs-markdown-mode
5014 (package
5015 (name "emacs-markdown-mode")
5016 (version "2.3")
5017 (source (origin
5018 (method url-fetch)
5019 (uri (string-append "https://raw.githubusercontent.com/jrblevin"
5020 "/markdown-mode/v" version
5021 "/markdown-mode.el"))
5022 (file-name (string-append "markdown-mode-" version ".el"))
5023 (sha256
5024 (base32
5025 "152whyrq3dqlqy5wv4mdd94kmal19hs5kwaxjcp2gp2r97lsmdmi"))))
5026 (build-system emacs-build-system)
5027 (home-page "http://jblevins.org/projects/markdown-mode/")
5028 (synopsis "Emacs Major mode for Markdown files")
5029 (description
5030 "Markdown-mode is a major mode for editing Markdown-formatted text files
5031 in Emacs.")
5032 (license license:gpl3+)))
5033
5034 (define-public emacs-edit-indirect
5035 (package
5036 (name "emacs-edit-indirect")
5037 (version "0.1.5")
5038 (source
5039 (origin
5040 (method git-fetch)
5041 (uri (git-reference
5042 (url "https://github.com/Fanael/edit-indirect")
5043 (commit version)))
5044 (file-name (git-file-name name version))
5045 (sha256
5046 (base32
5047 "0by1x53pji39fjrj5bd446kz831nv0vdgw2jqasbym4pc1p2947r"))))
5048 (build-system emacs-build-system)
5049 (home-page "https://github.com/Fanael/edit-indirect")
5050 (synopsis "Edit regions in separate buffers")
5051 (description "This package allows you to edit regions in separate buffers,
5052 like @code{org-edit-src-code} but for arbitrary regions.")
5053 (license license:gpl3+)))
5054
5055 (define-public emacs-projectile
5056 (package
5057 (name "emacs-projectile")
5058 (version "2.0.0")
5059 (source (origin
5060 (method url-fetch)
5061 (uri (string-append "https://raw.githubusercontent.com/bbatsov"
5062 "/projectile/v" version "/projectile.el"))
5063 (file-name (string-append "projectile-" version ".el"))
5064 (sha256
5065 (base32
5066 "149hablms6n9b4wp78dz4pjz1rzyylfw9ayghq5p9d7k661mvyby"))))
5067 (build-system emacs-build-system)
5068 (propagated-inputs
5069 `(("emacs-dash" ,emacs-dash)
5070 ("emacs-pkg-info" ,emacs-pkg-info)))
5071 (home-page "https://github.com/bbatsov/projectile")
5072 (synopsis "Manage and navigate projects in Emacs easily")
5073 (description
5074 "This library provides easy project management and navigation. The
5075 concept of a project is pretty basic - just a folder containing special file.
5076 Currently git, mercurial and bazaar repos are considered projects by default.
5077 If you want to mark a folder manually as a project just create an empty
5078 .projectile file in it.")
5079 (license license:gpl3+)))
5080
5081 (define-public emacs-elfeed
5082 (package
5083 (name "emacs-elfeed")
5084 (version "3.1.0")
5085 (source
5086 (origin
5087 (method git-fetch)
5088 (uri (git-reference
5089 (url "https://github.com/skeeto/elfeed.git")
5090 (commit version)))
5091 (file-name (git-file-name name version))
5092 (sha256
5093 (base32 "1bzpl6lc7kq9bph4bfz1fn19207blrnhjr2g7yinhn0nnnjmxi8i"))))
5094 (build-system emacs-build-system)
5095 (arguments
5096 `(#:tests? #t
5097 #:test-command '("make" "test")))
5098 (home-page "https://github.com/skeeto/elfeed")
5099 (synopsis "Atom/RSS feed reader for Emacs")
5100 (description
5101 "Elfeed is an extensible web feed reader for Emacs, supporting both Atom
5102 and RSS, with a user interface inspired by notmuch.")
5103 (license license:gpl3+)))
5104
5105 (define-public emacs-el-x
5106 (package
5107 (name "emacs-el-x")
5108 (version "0.3.1")
5109 (source (origin
5110 (method git-fetch)
5111 (uri (git-reference
5112 (url "https://github.com/sigma/el-x.git")
5113 (commit (string-append "v" version))))
5114 (file-name (git-file-name name version))
5115 (sha256
5116 (base32
5117 "1i6j44ssxm1xdg0mf91nh1lnprwsaxsx8vsrf720nan7mfr283h5"))))
5118 (build-system emacs-build-system)
5119 (arguments
5120 `(#:phases
5121 (modify-phases %standard-phases
5122 ;; Move the source files to the top level, which is included in
5123 ;; the EMACSLOADPATH.
5124 (add-after 'unpack 'move-source-files
5125 (lambda _
5126 (let ((el-files (find-files "./lisp" ".*\\.el$")))
5127 (for-each (lambda (f)
5128 (rename-file f (basename f)))
5129 el-files))
5130 #t)))))
5131 (home-page "https://github.com/sigma/el-x")
5132 (synopsis "Emacs Lisp extensions")
5133 (description "command@{emacs-el-x} defines the @code{dflet} macro to
5134 provide the historic behavior of @code{flet}, as well as
5135 @code{declare-function} stub for older Emacs.")
5136 (license license:gpl2+)))
5137
5138 (define-public emacs-mocker
5139 (package
5140 (name "emacs-mocker")
5141 (version "0.3.1")
5142 (source (origin
5143 (method git-fetch)
5144 (uri (git-reference
5145 (url "https://github.com/sigma/mocker.el.git")
5146 (commit (string-append "v" version))))
5147 (file-name (git-file-name name version))
5148 (sha256
5149 (base32
5150 "1lav7am41v63xgavq8pr88y828jmd1cxd4prjq7jlbxm6nvrwxh2"))))
5151 (build-system emacs-build-system)
5152 (arguments
5153 `(#:tests? #t
5154 #:test-command '("ert-runner")))
5155 (native-inputs
5156 `(("ert-runner" ,emacs-ert-runner)))
5157 (propagated-inputs
5158 `(("emacs-el-x" ,emacs-el-x)))
5159 (home-page "https://github.com/sigma/mocker.el")
5160 (synopsis "Mocking framework for Emacs Lisp")
5161 (description "Mocker.el is a framework for writing tests in Emacs Lisp.
5162 It uses regular Lisp rather than a domain specific language (DSL), which
5163 maximizes flexibility (at the expense of conciseness).")
5164 (license license:gpl2+)))
5165
5166 (define-public emacs-find-file-in-project
5167 (package
5168 (name "emacs-find-file-in-project")
5169 (version "5.4.7")
5170 (source (origin
5171 (method git-fetch)
5172 (uri (git-reference
5173 (url "https://github.com/technomancy/find-file-in-project.git")
5174 (commit version)))
5175 (file-name (git-file-name name version))
5176 (sha256
5177 (base32
5178 "1sdnyqv69mipbgs9yax88m9b6crsa59rjhwrih197pifl4089awr"))))
5179 (build-system emacs-build-system)
5180 (arguments
5181 `(#:phases
5182 (modify-phases %standard-phases
5183 (add-before 'check 'set-shell
5184 ;; Otherwise Emacs shell-file-name is set to "/bin/sh", which doesn't
5185 ;; work.
5186 (lambda _
5187 (setenv "SHELL" (which "sh"))
5188 #t)))
5189 #:tests? #t
5190 #:test-command '("./tests/test.sh")))
5191 (home-page "https://github.com/technomancy/find-file-in-project")
5192 (synopsis "File/directory finder for Emacs")
5193 (description "@code{find-file-in-project} allows to find files or
5194 directories quickly in the current project. The project root is detected
5195 automatically when Git, Subversion or Mercurial are used. It also provides
5196 functions to assist in reviewing changes on files.")
5197 (license license:gpl3+)))
5198
5199 (define-public emacs-pyvenv
5200 (package
5201 (name "emacs-pyvenv")
5202 (version "1.20")
5203 (source (origin
5204 (method git-fetch)
5205 (uri (git-reference
5206 (url "https://github.com/jorgenschaefer/pyvenv.git")
5207 (commit (string-append "v" version))))
5208 (file-name (git-file-name name version))
5209 (sha256
5210 (base32
5211 "1x052fsavb94x3scpqd6n9spqgzaahzbdxhg4qa5sy6hqsabn6zh"))))
5212 (build-system emacs-build-system)
5213 (arguments
5214 `(#:phases
5215 (modify-phases %standard-phases
5216 ;; This phase incorrectly attempts to substitute "activate" and fails
5217 ;; doing so.
5218 (delete 'patch-el-files))
5219 #:tests? #t
5220 #:test-command '("ert-runner")))
5221 (native-inputs
5222 `(("ert-runner" ,emacs-ert-runner)
5223 ("emacs-mocker" ,emacs-mocker)))
5224 (home-page "https://github.com/jorgenschaefer/pyvenv")
5225 (synopsis "Python virtual environment interface for Emacs")
5226 (description "pyvenv.el is a minor mode to support using Python virtual
5227 environments (virtualenv) inside Emacs.")
5228 (license license:gpl3+)))
5229
5230 (define-public emacs-highlight-indentation
5231 (package
5232 (name "emacs-highlight-indentation")
5233 (version "0.7.0")
5234 (source (origin
5235 (method git-fetch)
5236 (uri (git-reference
5237 (url "https://github.com/antonj/Highlight-Indentation-for-Emacs.git")
5238 (commit (string-append "v" version))))
5239 (file-name (git-file-name name version))
5240 (sha256
5241 (base32
5242 "00l54k75qk24a0znzl4ij3s3nrnr2wy9ha3za8apphzlm98m907k"))))
5243 (build-system emacs-build-system)
5244 (home-page "https://github.com/antonj/Highlight-Indentation-for-Emacs/")
5245 (synopsis "Highlighting indentation for Emacs")
5246 (description "Provides two minor modes to highlight indentation guides in Emacs:
5247 @enumerate
5248 @item @code{highlight-indentation-mode}, which displays guidelines
5249 indentation (space indentation only).
5250 @item @code{highlight-indentation-current-column-mode}, which displays guidelines for the current-point indentation (space indentation only).
5251 @end enumerate")
5252 (license license:gpl2+)))
5253
5254 (define-public emacs-elpy
5255 (package
5256 (name "emacs-elpy")
5257 (version "1.28.0")
5258 (source (origin
5259 (method git-fetch)
5260 (uri (git-reference
5261 (url "https://github.com/jorgenschaefer/elpy.git")
5262 (commit version)))
5263 (file-name (git-file-name name version))
5264 (sha256
5265 (base32
5266 "073bwxwjzcbmvpcz9q2xjwzx9x7hkvjni6fwvikh6yawzjp56jis"))))
5267 (build-system emacs-build-system)
5268 (arguments
5269 `(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include)
5270 #:phases
5271 ;; TODO: Make `elpy-config' display Guix commands :)
5272 (modify-phases %standard-phases
5273 ;; One elpy test depends on being run inside a Python virtual
5274 ;; environment to pass. We have nothing to gain from doing so here,
5275 ;; so we just trick Elpy into thinking we are (see:
5276 ;; https://github.com/jorgenschaefer/elpy/pull/1293).
5277 (add-before 'check 'fake-virtualenv
5278 (lambda _
5279 (setenv "VIRTUAL_ENV" "/tmp")
5280 #t))
5281 (add-before 'check 'build-doc
5282 (lambda _
5283 (with-directory-excursion "docs"
5284 (invoke "make" "info" "man"))
5285 ;; Move .info file at the root so that it can installed by the
5286 ;; 'move-doc phase.
5287 (rename-file "docs/_build/texinfo/Elpy.info" "Elpy.info")
5288 #t))
5289 (add-after 'build-doc 'install-manpage
5290 (lambda* (#:key outputs #:allow-other-keys)
5291 (let* ((out (assoc-ref outputs "out"))
5292 (man1 (string-append out "/share/man/man1")))
5293 (mkdir-p man1)
5294 (copy-file "docs/_build/man/elpy.1"
5295 (string-append man1 "/elpy.1")))
5296 #t)))
5297 #:tests? #t
5298 #:test-command '("ert-runner")))
5299 (propagated-inputs
5300 `(("emacs-company" ,emacs-company)
5301 ("emacs-find-file-in-project" ,emacs-find-file-in-project)
5302 ("emacs-highlight-indentation" ,emacs-highlight-indentation)
5303 ("emacs-yasnippet" ,emacs-yasnippet)
5304 ("pyvenv" ,emacs-pyvenv)
5305 ("s" ,emacs-s)))
5306 (native-inputs
5307 `(("ert-runner" ,emacs-ert-runner)
5308 ("emacs-f" ,emacs-f)
5309 ("python" ,python-wrapper)
5310 ("python-autopep8" ,python-autopep8)
5311 ("python-black" ,python-black)
5312 ("python-flake8" ,python-flake8)
5313 ("python-jedi" ,python-jedi)
5314 ("python-yapf" ,python-yapf)
5315 ;; For documentation.
5316 ("python-sphinx" ,python-sphinx)
5317 ("texinfo" ,texinfo)))
5318 (home-page "https://github.com/jorgenschaefer/elpy")
5319 (synopsis "Python development environment for Emacs")
5320 (description "Elpy brings powerful Python editing to Emacs. It combines
5321 and configures a number of other packages written in Emacs Lisp as well as
5322 Python, together offering features such as navigation, documentation,
5323 completion, interactive development and more.")
5324 (license license:gpl3+)))
5325
5326 (define-public emacs-rainbow-delimiters
5327 (package
5328 (name "emacs-rainbow-delimiters")
5329 (version "2.1.3")
5330 (source (origin
5331 (method url-fetch)
5332 (uri (string-append "https://raw.githubusercontent.com/Fanael"
5333 "/rainbow-delimiters/" version
5334 "/rainbow-delimiters.el"))
5335 (file-name (string-append "rainbow-delimiters-" version ".el"))
5336 (sha256
5337 (base32
5338 "1b3kampwsjabhcqdp0khgff13wc5jqhy3rbvaa12vnv7qy22l9ck"))))
5339 (build-system emacs-build-system)
5340 (home-page "https://github.com/Fanael/rainbow-delimiters")
5341 (synopsis "Highlight brackets according to their depth")
5342 (description
5343 "Rainbow-delimiters is a \"rainbow parentheses\"-like mode for Emacs which
5344 highlights parentheses, brackets, and braces according to their depth. Each
5345 successive level is highlighted in a different color, making it easy to spot
5346 matching delimiters, orient yourself in the code, and tell which statements
5347 are at a given level.")
5348 (license license:gpl3+)))
5349
5350 (define-public emacs-rainbow-identifiers
5351 (package
5352 (name "emacs-rainbow-identifiers")
5353 (version "0.2.2")
5354 (source (origin
5355 (method url-fetch)
5356 (uri (string-append "https://raw.githubusercontent.com/Fanael"
5357 "/rainbow-identifiers/" version
5358 "/rainbow-identifiers.el"))
5359 (file-name (string-append "rainbow-identifiers-" version ".el"))
5360 (sha256
5361 (base32
5362 "0325abxj47k0g1i8nqrq70w2wr6060ckhhf92krv1s072b3jzm31"))))
5363 (build-system emacs-build-system)
5364 (home-page "https://github.com/Fanael/rainbow-identifiers")
5365 (synopsis "Highlight identifiers in source code")
5366 (description
5367 "Rainbow identifiers mode is an Emacs minor mode providing highlighting of
5368 identifiers based on their names. Each identifier gets a color based on a hash
5369 of its name.")
5370 (license license:bsd-2)))
5371
5372 (define-public emacs-rainbow-mode
5373 (package
5374 (name "emacs-rainbow-mode")
5375 (version "1.0.1")
5376 (source (origin
5377 (method url-fetch)
5378 (uri (string-append
5379 "http://elpa.gnu.org/packages/rainbow-mode-" version ".el"))
5380 (sha256
5381 (base32
5382 "0cpga4ax635rfpj7y2vmh7ank0yw00dcy20gjg1mj74r97by8csf"))))
5383 (build-system emacs-build-system)
5384 (home-page "http://elpa.gnu.org/packages/rainbow-mode.html")
5385 (synopsis "Colorize color names in buffers")
5386 (description
5387 "This minor mode sets background color to strings that match color
5388 names, e.g. #0000ff is displayed in white with a blue background.")
5389 (license license:gpl3+)))
5390
5391 (define-public emacs-visual-fill-column
5392 (package
5393 (name "emacs-visual-fill-column")
5394 (version "1.11")
5395 (source (origin
5396 (method url-fetch)
5397 (uri (string-append "https://codeload.github.com/joostkremers/"
5398 "visual-fill-column/tar.gz/" version))
5399 (file-name (string-append name "-" version ".tar.gz"))
5400 (sha256
5401 (base32
5402 "13jnviakp607zcms7f8ams56mr8wffnq1pghlc6fvqs39663pgwh"))))
5403 (build-system emacs-build-system)
5404 (home-page "https://github.com/joostkremers/visual-fill-column")
5405 (synopsis "Fill-column for visual-line-mode")
5406 (description
5407 "@code{visual-fill-column-mode} is a small Emacs minor mode that mimics
5408 the effect of @code{fill-column} in @code{visual-line-mode}. Instead of
5409 wrapping lines at the window edge, which is the standard behaviour of
5410 @code{visual-line-mode}, it wraps lines at @code{fill-column}. If
5411 @code{fill-column} is too large for the window, the text is wrapped at the
5412 window edge.")
5413 (license license:gpl3+)))
5414
5415 (define-public emacs-writeroom
5416 (package
5417 (name "emacs-writeroom")
5418 (version "3.7")
5419 (source
5420 (origin
5421 (method git-fetch)
5422 (uri (git-reference
5423 (url "https://github.com/joostkremers/writeroom-mode.git")
5424 (commit version)))
5425 (file-name (git-file-name name version))
5426 (sha256
5427 (base32 "13nbls5qxz5z8firjxaip8m9vzfbbpxmwrmr01njbk4axpwrpj0z"))))
5428 (build-system emacs-build-system)
5429 (propagated-inputs
5430 `(("emacs-visual-fill-column" ,emacs-visual-fill-column)))
5431 (home-page "https://github.com/joostkremers/writeroom-mode")
5432 (synopsis "Distraction-free writing for Emacs")
5433 (description
5434 "This package defines a minor mode for distraction-free writing. Some of
5435 the default effects include entering fullscreen, deleting other windows of the
5436 current frame, disabling the mode line, and adding margins to the buffer that
5437 restrict the text width to 80 characters.")
5438 (license license:bsd-3)))
5439
5440 (define-public emacs-ido-completing-read+
5441 (package
5442 (name "emacs-ido-completing-read+")
5443 (version "3.12")
5444 (source (origin
5445 (method url-fetch)
5446 (uri (string-append "https://raw.githubusercontent.com"
5447 "/DarwinAwardWinner/ido-ubiquitous/v"
5448 version "/ido-completing-read+.el"))
5449 (file-name (string-append "ido-completing-read+-" version ".el"))
5450 (sha256
5451 (base32
5452 "1cyalb0p7nfsm4n6n9q6rjmvn6adqc0fq8ybnlj3n41n289dkfjf"))))
5453 (build-system emacs-build-system)
5454 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
5455 (synopsis "Replacement for completing-read using ido")
5456 (description
5457 "The ido-completing-read+ function is a wrapper for ido-completing-read.
5458 Importantly, it detects edge cases that ordinary ido cannot handle and either
5459 adjusts them so ido can handle them, or else simply falls back to the standard
5460 Emacs completion function instead.")
5461 (license license:gpl3+)))
5462
5463 (define-public emacs-ido-ubiquitous
5464 (package
5465 (name "emacs-ido-ubiquitous")
5466 (version "3.12")
5467 (source (origin
5468 (method url-fetch)
5469 (uri (string-append "https://raw.githubusercontent.com"
5470 "/DarwinAwardWinner/ido-ubiquitous/v"
5471 version "/ido-ubiquitous.el"))
5472 (file-name (string-append "ido-ubiquitous-" version ".el"))
5473 (sha256
5474 (base32
5475 "197ypji0fb6jsdcq40rpnknwlh3imas6s6jbsvkfm0pz9988c3q2"))))
5476 (build-system emacs-build-system)
5477 (propagated-inputs
5478 `(("emacs-ido-completing-read+" ,emacs-ido-completing-read+)))
5479 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
5480 (synopsis "Use ido (nearly) everywhere")
5481 (description
5482 "Ido-ubiquitous enables ido-style completion for almost every function
5483 that uses the standard completion function completing-read.")
5484 (license license:gpl3+)))
5485
5486 (define-public emacs-yaml-mode
5487 (package
5488 (name "emacs-yaml-mode")
5489 (version "0.0.13")
5490 (source (origin
5491 (method url-fetch)
5492 (uri (string-append "https://raw.githubusercontent.com/yoshiki"
5493 "/yaml-mode/v" version "/yaml-mode.el"))
5494 (file-name (string-append "yaml-mode-" version ".el"))
5495 (sha256
5496 (base32
5497 "0im88sk9dqw03x6d6zaspgvg9i0pfpgb8f2zygrmbifh2w4pwmvj"))))
5498 (build-system emacs-build-system)
5499 (home-page "https://github.com/yoshiki/yaml-mode")
5500 (synopsis "Major mode for editing YAML files")
5501 (description
5502 "Yaml-mode is an Emacs major mode for editing files in the YAML data
5503 serialization format. It was initially developed by Yoshiki Kurihara and many
5504 features were added by Marshall Vandegrift. As YAML and Python share the fact
5505 that indentation determines structure, this mode provides indentation and
5506 indentation command behavior very similar to that of python-mode.")
5507 (license license:gpl3+)))
5508
5509 (define-public emacs-web-mode
5510 (package
5511 (name "emacs-web-mode")
5512 (version "16")
5513 (source (origin
5514 (method url-fetch)
5515 (uri (string-append "https://raw.githubusercontent.com/fxbois"
5516 "/web-mode/v" version "/web-mode.el"))
5517 (file-name (string-append "web-mode-" version ".el"))
5518 (sha256
5519 (base32
5520 "1hs5w7kdvcyn4ihyw1kfjg48djn5p7lz4rlbhzzdqv1g56xqx3gw"))))
5521 (build-system emacs-build-system)
5522 (synopsis "Major mode for editing web templates")
5523 (description "Web-mode is an Emacs major mode for editing web templates
5524 aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by
5525 client/server side engines). Web-mode is compatible with many template
5526 engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker,
5527 Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template,
5528 Dust.js, React/JSX, Angularjs, ejs, etc.")
5529 (home-page "http://web-mode.org/")
5530 (license license:gpl3+)))
5531
5532 (define-public emacs-wgrep
5533 (package
5534 (name "emacs-wgrep")
5535 (version "2.3.0")
5536 (source (origin
5537 (method url-fetch)
5538 (uri (string-append
5539 "https://github.com/mhayashi1120/Emacs-wgrep/archive/"
5540 version ".tar.gz"))
5541 (file-name (string-append name "-" version ".tar.gz"))
5542 (sha256
5543 (base32
5544 "1cssqbg03fjb6xwf7idv1l3jjsh9r5r232ryi11czqlxfiv658bj"))))
5545 (build-system emacs-build-system)
5546 (home-page "https://github.com/mhayashi1120/Emacs-wgrep")
5547 (synopsis "Edit a grep buffer and apply those changes to the files")
5548 (description
5549 "Emacs wgrep allows you to edit a grep buffer and apply those changes
5550 to the file buffer. Several backends are supported beside the classic grep:
5551 ack, ag, helm and pt.")
5552 (license license:gpl3+)))
5553
5554 (define-public emacs-helm
5555 (package
5556 (name "emacs-helm")
5557 (version "3.1")
5558 (source
5559 (origin
5560 (method git-fetch)
5561 (uri (git-reference
5562 (url "https://github.com/emacs-helm/helm.git")
5563 (commit (string-append "v" version))))
5564 (file-name (git-file-name name version))
5565 (sha256
5566 (base32 "1x3nv8zvp8vvl30bm2d83hd7zxb0ca64pc8kwb81ml9al6r3mm01"))))
5567 (build-system emacs-build-system)
5568 (propagated-inputs
5569 `(("emacs-async" ,emacs-async)
5570 ("emacs-popup" ,emacs-popup)))
5571 (home-page "https://emacs-helm.github.io/helm/")
5572 (synopsis "Incremental completion and selection narrowing
5573 framework for Emacs")
5574 (description "Helm is incremental completion and selection narrowing
5575 framework for Emacs. It will help steer you in the right direction when
5576 you're looking for stuff in Emacs (like buffers, files, etc). Helm is a fork
5577 of @code{anything.el} originally written by Tamas Patrovic and can be
5578 considered to be its successor. Helm sets out to clean up the legacy code in
5579 @code{anything.el} and provide a cleaner, leaner and more modular tool, that's
5580 not tied in the trap of backward compatibility.")
5581 (license license:gpl3+)))
5582
5583 (define-public emacs-helm-swoop
5584 (package
5585 (name "emacs-helm-swoop")
5586 (version "1.7.4")
5587 (source
5588 (origin
5589 (method git-fetch)
5590 (uri (git-reference
5591 (url "https://github.com/ShingoFukuyama/helm-swoop.git")
5592 (commit version)))
5593 (file-name (git-file-name name version))
5594 (sha256
5595 (base32 "0b23j1bkpg4pm310hqdhgnl4mxsj05gpl08b6kb2ja4fzrg6adsk"))))
5596 (build-system emacs-build-system)
5597 (propagated-inputs
5598 `(("emacs-helm" ,emacs-helm)))
5599 (home-page "https://github.com/ShingoFukuyama/helm-swoop")
5600 (synopsis "Filter and jump to lines in an Emacs buffer using Helm")
5601 (description
5602 "This package builds on the Helm interface to provide several commands
5603 for search-based navigation of buffers.")
5604 (license license:gpl2+)))
5605
5606 (define-public emacs-helm-projectile
5607 (package
5608 (name "emacs-helm-projectile")
5609 (version "0.14.0")
5610 (source
5611 (origin
5612 (method git-fetch)
5613 (uri (git-reference
5614 (url "https://github.com/bbatsov/helm-projectile.git")
5615 (commit (string-append "v" version))))
5616 (file-name (git-file-name name version))
5617 (sha256
5618 (base32 "0lph38p112fridighqcizpsyzjbv7qr3d8prbfj6w6q6gfl6cna4"))))
5619 (build-system emacs-build-system)
5620 (propagated-inputs
5621 `(("emacs-dash" ,emacs-dash)
5622 ("emacs-helm" ,emacs-helm)
5623 ("emacs-projectile" ,emacs-projectile)))
5624 (home-page "https://github.com/bbatsov/helm-projectile")
5625 (synopsis "Helm integration for Projectile")
5626 (description
5627 "This Emacs library provides a Helm interface for Projectile.")
5628 (license license:gpl3+)))
5629
5630 (define-public emacs-helm-make
5631 (let ((commit "feae8df22bc4b20705ea08ac9adfc2b43bb348d0")
5632 (revision "1"))
5633 (package
5634 (name "emacs-helm-make")
5635 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
5636 (source
5637 (origin
5638 (method git-fetch)
5639 (uri (git-reference
5640 (url "https://github.com/abo-abo/helm-make.git")
5641 (commit commit)))
5642 (file-name (git-file-name name version))
5643 (sha256
5644 (base32
5645 "1y2v77mmd1bfkkz51cnk1l0dg3lvvxc39wlamnm7wjns66dbvlam"))))
5646 (build-system emacs-build-system)
5647 (propagated-inputs
5648 `(("emacs-helm" ,emacs-helm)
5649 ("emacs-projectile" ,emacs-projectile)))
5650 (home-page "https://github.com/abo-abo/helm-make")
5651 (synopsis "Select a Makefile target with helm")
5652 (description "@code{helm-make} or @code{helm-make-projectile} will give
5653 you a @code{helm} selection of directory Makefile's targets. Selecting a
5654 target will call @code{compile} on it.")
5655 (license license:gpl3+))))
5656
5657 (define-public emacs-cider
5658 (package
5659 (name "emacs-cider")
5660 (version "0.21.0")
5661 (source
5662 (origin
5663 (method git-fetch)
5664 (uri (git-reference
5665 (url "https://github.com/clojure-emacs/cider.git")
5666 (commit (string-append "v" version))))
5667 (file-name (git-file-name name version))
5668 (sha256
5669 (base32
5670 "0lbrwj67fnvynkdkzvnzp3p8vqlz0ldrcs317vg60bqfhx7hvqkj"))))
5671 (build-system emacs-build-system)
5672 (arguments
5673 '(#:exclude ; Don't exclude 'cider-test.el'.
5674 '("^\\.dir-locals\\.el$" "^test/")))
5675 (propagated-inputs
5676 `(("emacs-clojure-mode" ,emacs-clojure-mode)
5677 ("emacs-sesman" ,emacs-sesman)
5678 ("emacs-spinner" ,emacs-spinner)
5679 ("emacs-pkg-info" ,emacs-pkg-info)
5680 ("emacs-queue" ,emacs-queue)))
5681 (home-page "https://cider.readthedocs.io/")
5682 (synopsis "Clojure development environment for Emacs")
5683 (description
5684 "CIDER (Clojure Interactive Development Environment that Rocks) aims to
5685 provide an interactive development experience similar to the one you'd get
5686 when programming in Emacs Lisp, Common Lisp (with SLIME or Sly), Scheme (with
5687 Geiser) and Smalltalk.
5688
5689 CIDER is the successor to the now deprecated combination of using SLIME +
5690 swank-clojure for Clojure development.
5691
5692 There are plenty of differences between CIDER and SLIME, but the core ideas
5693 are pretty much the same (and SLIME served as the principle inspiration for
5694 CIDER).")
5695 (license license:gpl3+)))
5696
5697 ;; There hasn't been a tag or release since 2015, so we take the latest
5698 ;; commit.
5699 (define-public emacs-sly
5700 (let ((commit "486bfbe95612bcdc0960c490207970a188e0fbb9")
5701 (revision "1"))
5702 (package
5703 (name "emacs-sly")
5704 (version (string-append "1.0.0-" revision "." (string-take commit 9)))
5705 (source
5706 (origin
5707 (method git-fetch)
5708 (uri (git-reference
5709 (url "https://github.com/joaotavora/sly.git")
5710 (commit commit)))
5711 (file-name (git-file-name name version))
5712 (sha256
5713 (base32
5714 "0ib4q4k3h3qn88pymyjjmlmnpizdn1mfg5gpk5a715nqsgxlg09l"))))
5715 (build-system emacs-build-system)
5716 (arguments
5717 `(#:include (cons "^lib\\/" %default-include)
5718 #:phases
5719 ;; The package provides autoloads.
5720 (modify-phases %standard-phases
5721 (delete 'make-autoloads))))
5722 (home-page "https://github.com/joaotavora/sly")
5723 (synopsis "Sylvester the Cat's Common Lisp IDE")
5724 (description
5725 "SLY is Sylvester the Cat's Common Lisp IDE. SLY is a fork of SLIME, and
5726 contains the following improvements over it:
5727
5728 @enumerate
5729 @item Completely redesigned REPL based on Emacs's own full-featured
5730 @code{comint.el}
5731 @item Live code annotations via a new @code{sly-stickers} contrib
5732 @item Consistent interactive button interface. Everything can be copied to
5733 the REPL.
5734 @item Multiple inspectors with independent history
5735 @item Regexp-capable @code{M-x sly-apropos}
5736 @item Contribs are first class SLY citizens and enabled by default
5737 @item Use ASDF to loads contribs on demand.
5738 @end enumerate
5739
5740 SLY tracks SLIME's bugfixes and all its familiar features (debugger, inspector,
5741 xref, etc...) are still available, but with better integration.")
5742 (license license:gpl3+))))
5743
5744 (define-public emacs-lua-mode
5745 (let ((commit "652e299cb967fccca827dda381d61a9c144d97de")
5746 (revision "1"))
5747 (package
5748 (name "emacs-lua-mode")
5749 (version (string-append "20151025." revision "-" (string-take commit 9)))
5750 (home-page "https://github.com/immerrr/lua-mode/")
5751 (source (origin
5752 (method git-fetch)
5753 (uri (git-reference
5754 (url home-page)
5755 (commit commit)))
5756 (file-name (string-append name "-" version ".checkout"))
5757 (sha256
5758 (base32
5759 "053025k930wh0lak6rc1973ynfrmm8zsyzfqhhd39x7abkl41hc9"))))
5760 (build-system emacs-build-system)
5761 (synopsis "Major mode for lua")
5762 (description
5763 "This Emacs package provides a mode for @uref{https://www.lua.org/,
5764 Lua programming language}.")
5765 (license license:gpl2+))))
5766
5767 (define-public emacs-ebuild-mode
5768 (package
5769 (name "emacs-ebuild-mode")
5770 (version "1.37")
5771 (source (origin
5772 (method url-fetch)
5773 (uri (string-append
5774 "https://dev.gentoo.org/~ulm/emacs/ebuild-mode"
5775 "-" version ".tar.xz"))
5776 (file-name (string-append name "-" version ".tar.xz"))
5777 (sha256
5778 (base32
5779 "07dzrdjjczkxdfdgi60h4jjkvzi4p0k9rij2wpfp8s03ay3qldpp"))))
5780 (build-system emacs-build-system)
5781 (home-page "https://devmanual.gentoo.org")
5782 (synopsis "Major modes for Gentoo package files")
5783 (description
5784 "This Emacs package provides modes for ebuild, eclass, eblit, GLEP42
5785 news items, openrc and runscripts.")
5786 (license license:gpl2+)))
5787
5788 (define-public emacs-evil
5789 (package
5790 (name "emacs-evil")
5791 (version "1.2.14")
5792 (source
5793 (origin
5794 (method git-fetch)
5795 (uri (git-reference
5796 (url "https://github.com/emacs-evil/evil")
5797 (commit version)))
5798 (file-name (git-file-name name version))
5799 (sha256
5800 (base32
5801 "1833w397xhac5g3pp25szr2gyvclxy91aw27azvbmsx94pyk2a3q"))))
5802 (build-system emacs-build-system)
5803 (propagated-inputs
5804 `(("emacs-undo-tree" ,emacs-undo-tree)
5805 ("emacs-goto-chg" ,emacs-goto-chg)))
5806 (home-page "https://github.com/emacs-evil/evil")
5807 (synopsis "Extensible Vi layer for Emacs")
5808 (description
5809 "Evil is an extensible vi layer for Emacs. It emulates the
5810 main features of Vim, and provides facilities for writing custom
5811 extensions.")
5812 (license license:gpl3+)))
5813
5814 (define-public emacs-evil-collection
5815 (let ((commit "0748c695dfa89b79eb316da5060360de8c0f04da")
5816 (revision "9"))
5817 (package
5818 (name "emacs-evil-collection")
5819 (version (git-version "0.0.1" revision commit))
5820 (source (origin
5821 (method git-fetch)
5822 (uri (git-reference
5823 (url "https://github.com/emacs-evil/evil-collection")
5824 (commit commit)))
5825 (file-name (git-file-name name version))
5826 (sha256
5827 (base32
5828 "17w8nh3q7ffc7776f3qzixk0c0g6vys3xybgw16ky1f416585kvb"))))
5829 (build-system emacs-build-system)
5830 (propagated-inputs
5831 `(("emacs-evil" ,emacs-evil)))
5832 (home-page "https://github.com/emacs-evil/evil-collection")
5833 (synopsis "Collection of Evil bindings for many major and minor modes")
5834 (description "This is a collection of Evil bindings for the parts of
5835 Emacs that Evil does not cover properly by default, such as @code{help-mode},
5836 @code{M-x calendar}, Eshell and more.")
5837 (license license:gpl3+))))
5838
5839 (define-public emacs-goto-chg
5840 (package
5841 (name "emacs-goto-chg")
5842 (version "1.6")
5843 (source
5844 (origin
5845 (method url-fetch)
5846 ;; There is no versioned source.
5847 (uri "https://www.emacswiki.org/emacs/download/goto-chg.el")
5848 (file-name (string-append "goto-chg-" version ".el"))
5849 (sha256
5850 (base32
5851 "078d6p4br5vips7b9x4v6cy0wxf6m5ij9gpqd4g33bryn22gnpij"))))
5852 (build-system emacs-build-system)
5853 ;; There is no other home page.
5854 (home-page "https://www.emacswiki.org/emacs/goto-chg.el")
5855 (synopsis "Go to the last change in the Emacs buffer")
5856 (description
5857 "This package provides @code{M-x goto-last-change} command that goes to
5858 the point of the most recent edit in the current Emacs buffer. When repeated,
5859 go to the second most recent edit, etc. Negative argument, @kbd{C-u -}, is
5860 used for reverse direction.")
5861 (license license:gpl2+)))
5862
5863 (define-public emacs-janpath-evil-numbers
5864 (let ((commit "d988041c1fe6e941dc8d591390750b237f71f524")
5865 (version "0.5")
5866 (revision "1"))
5867 (package
5868 (name "emacs-janpath-evil-numbers")
5869 (version (git-version version revision commit))
5870 (source
5871 (origin
5872 (method git-fetch)
5873 (uri (git-reference
5874 (url "https://github.com/janpath/evil-numbers")
5875 (commit commit)))
5876 (file-name (git-file-name name version))
5877 (sha256
5878 (base32
5879 "16zixhxxcb83m82f2cfiardfn99j3w41v6vh1qk6j9pplrlfw70v"))))
5880 (build-system emacs-build-system)
5881 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
5882 (home-page "https://github.com/janpath/evil-numbers")
5883 (synopsis "Increment and decrement numeric literals")
5884 (description
5885 "This package provides functionality to search for a number up to the
5886 end of a line and increment or decrement it.")
5887 (license license:gpl3+))))
5888
5889 (define-public emacs-evil-exchange
5890 (let ((commit "47691537815150715e64e6f6ec79be7746c96120")
5891 (version "0.41")
5892 (revision "1"))
5893 (package
5894 (name "emacs-evil-exchange")
5895 (version (git-version version revision commit))
5896 (source
5897 (origin
5898 (method git-fetch)
5899 (uri (git-reference
5900 (url "https://github.com/Dewdrops/evil-exchange")
5901 (commit commit)))
5902 (file-name (git-file-name name version))
5903 (sha256
5904 (base32
5905 "0bjpn4yqig17ddym6wqq5fm1b294q74hzcbj9a6gs97fqiwf88xa"))))
5906 (build-system emacs-build-system)
5907 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
5908 (home-page "https://github.com/Dewdrops/evil-exchange")
5909 (synopsis "Exchange text easily within Evil")
5910 (description
5911 "This package, a port of @code{vim-exchange}, provides an Evil operator
5912 for exchanging text.")
5913 (license license:gpl3+))))
5914
5915 (define-public emacs-evil-replace-with-register
5916 (let ((commit "91cc7bf21a94703c441cc9212214075b226b7f67")
5917 (version "0.1")
5918 (revision "1"))
5919 (package
5920 (name "emacs-evil-replace-with-register")
5921 (version (git-version version revision commit))
5922 (source
5923 (origin
5924 (method git-fetch)
5925 (uri (git-reference
5926 (url "https://github.com/Dewdrops/evil-ReplaceWithRegister")
5927 (commit commit)))
5928 (file-name (git-file-name name version))
5929 (sha256
5930 (base32
5931 "14rpn76qrf287s3y2agmddcxi27r226i53ixjvd694ss039g0r11"))))
5932 (build-system emacs-build-system)
5933 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
5934 (home-page "https://github.com/Dewdrops/evil-ReplaceWithRegister")
5935 (synopsis "Quickly replace text with the contents of a register")
5936 (description
5937 "This package provides an Evil operator for replacing text with the
5938 contents of a register.")
5939 (license license:gpl3+))))
5940
5941 (define-public emacs-evil-indent-plus
5942 (let ((commit "0c7501e6efed661242c3a20e0a6c79a6455c2c40")
5943 (version "1.0.0")
5944 (revision "1"))
5945 (package
5946 (name "emacs-evil-indent-plus")
5947 (version (git-version version revision commit))
5948 (source
5949 (origin
5950 (method git-fetch)
5951 (uri (git-reference
5952 (url "https://github.com/TheBB/evil-indent-plus")
5953 (commit commit)))
5954 (file-name (git-file-name name version))
5955 (sha256
5956 (base32
5957 "1g6r1ydscwjvmhh1zg4q3nap4avk8lb9msdqrh7dff6pla0r2qs6"))))
5958 (build-system emacs-build-system)
5959 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
5960 (home-page "https://github.com/TheBB/evil-indent-plus")
5961 (synopsis "Text objects based on indentation")
5962 (description
5963 "This package adds new text objects for @code{evil-mode} based on
5964 blocks having the same or higher indentation, including or excluding
5965 surrounding lines.")
5966 (license license:gpl2+))))
5967
5968 (define-public emacs-evil-text-object-python
5969 (let ((commit "9a064fe6475429145cbcc3b270fcc963b67adb15")
5970 (version "1.0.1")
5971 (revision "1"))
5972 (package
5973 (name "emacs-evil-text-object-python")
5974 (version (git-version version revision commit))
5975 (source
5976 (origin
5977 (method git-fetch)
5978 (uri (git-reference
5979 (url "https://github.com/wbolster/evil-text-object-python")
5980 (commit commit)))
5981 (file-name (git-file-name name version))
5982 (sha256
5983 (base32
5984 "074zpm6mmr1wfl6d5xdf8jk1fs4ccpbzf4ahhkwga9g71xiplszv"))))
5985 (build-system emacs-build-system)
5986 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
5987 (home-page "https://github.com/wbolster/evil-text-object-python")
5988 (synopsis "Text objects for Python")
5989 (description
5990 "This package provides @code{evil-mode} text objects for Python.")
5991 (license license:gpl3+))))
5992
5993 (define-public emacs-evil-lion
5994 (let ((commit "6b03593f5dd6e7c9ca02207f9a73615cf94c93ab")
5995 (version "0.0.2")
5996 (revision "1"))
5997 (package
5998 (name "emacs-evil-lion")
5999 (version (git-version version revision commit))
6000 (source
6001 (origin
6002 (method git-fetch)
6003 (uri (git-reference
6004 (url "https://github.com/edkolev/evil-lion")
6005 (commit commit)))
6006 (file-name (git-file-name name version))
6007 (sha256
6008 (base32
6009 "1a162hynp0jcsn50c1w5a02mrw9w3q05c7lkqzqd25px3d0p772q"))))
6010 (build-system emacs-build-system)
6011 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
6012 (home-page "https://github.com/edkolev/evil-lion")
6013 (synopsis "Align operator for @code{evil-mode}")
6014 (description
6015 "This package, a port of @code{vim-lion}, provides an operator for
6016 aligning text objects based on separators.")
6017 (license license:gpl3+))))
6018
6019 (define-public emacs-evil-expat
6020 (let ((commit "4c344ea19b789002d759a202ffbf594730d2c59a")
6021 (version "0.0.1")
6022 (revision "1"))
6023 (package
6024 (name "emacs-evil-expat")
6025 (version (git-version version revision commit))
6026 (source
6027 (origin
6028 (method git-fetch)
6029 (uri (git-reference
6030 (url "https://github.com/edkolev/evil-expat")
6031 (commit commit)))
6032 (file-name (git-file-name name version))
6033 (sha256
6034 (base32
6035 "16v7fnldxag6l1lsnrnhdjkga9qi78lbdfbb82k6pmv04991mbkr"))))
6036 (build-system emacs-build-system)
6037 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
6038 (home-page "https://github.com/edkolev/evil-expat")
6039 (synopsis "Extra @code{ex} commands for @code{evil-mode}")
6040 (description
6041 "This package provides additional commands for the @code{ex} command
6042 line, including functions for version control with Git and for copying and
6043 pasting into and from @code{tmux} paste buffers.")
6044 (license license:gpl3+))))
6045
6046 (define-public emacs-evil-nerd-commenter
6047 (package
6048 (name "emacs-evil-nerd-commenter")
6049 (version "3.3.7")
6050 (source
6051 (origin
6052 (method git-fetch)
6053 (uri (git-reference
6054 (url "https://github.com/redguardtoo/evil-nerd-commenter")
6055 (commit version)))
6056 (file-name (git-file-name name version))
6057 (sha256
6058 (base32
6059 "1r8shfdddys9vqvrxf7s6z83ydqx9xhqs9sa7klbsajryqcp50b7"))))
6060 (build-system emacs-build-system)
6061 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
6062 (home-page "https://github.com/redguardtoo/evil-nerd-commenter")
6063 (synopsis "Comment and uncomment lines efficiently")
6064 (description
6065 "This package provides text objects and operators for comments within
6066 @code{evil-mode}.")
6067 (license license:gpl3+)))
6068
6069 (define-public emacs-evil-visual-replace
6070 (package
6071 (name "emacs-evil-visual-replace")
6072 (version "0.0.5")
6073 (source
6074 (origin
6075 (method git-fetch)
6076 (uri (git-reference
6077 (url "https://github.com/troyp/evil-visual-replace")
6078 (commit version)))
6079 (file-name (git-file-name name version))
6080 (sha256
6081 (base32
6082 "1gfyrq7xfzmzh3x8k5f08n027dlbwi0pkkxf9c39fkxp4jngibsz"))))
6083 (build-system emacs-build-system)
6084 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
6085 (home-page "https://github.com/troyp/evil-visual-replace")
6086 (synopsis "Replacement commands for @code{evil-mode} visual blocks")
6087 (description
6088 "This package provides versions of @code{query-replace} and
6089 @code{replace-regexp} that work for @code{evil-mode} visual blocks.")
6090 (license license:gpl2+)))
6091
6092 (define-public emacs-evil-visualstar
6093 (let ((commit "06c053d8f7381f91c53311b1234872ca96ced752")
6094 (version "0.0.2")
6095 (revision "1"))
6096 (package
6097 (name "emacs-evil-visualstar")
6098 (version (git-version version revision commit))
6099 (source
6100 (origin
6101 (method git-fetch)
6102 (uri (git-reference
6103 (url "https://github.com/bling/evil-visualstar")
6104 (commit commit)))
6105 (file-name (git-file-name name version))
6106 (sha256
6107 (base32
6108 "0mkbzw12fav945icibc2293m5haxqr3hzkyli2cf4ssk6yvn0x4c"))))
6109 (build-system emacs-build-system)
6110 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
6111 (home-page "https://github.com/bling/evil-visualstar")
6112 (synopsis "Instantly search using the visual selection")
6113 (description
6114 "This package provides @code{evil-mode} functions for using selected text
6115 to search.")
6116 (license license:gpl3+))))
6117
6118 (define-public emacs-monroe
6119 (package
6120 (name "emacs-monroe")
6121 (version "0.3.1")
6122 (source
6123 (origin
6124 (method git-fetch)
6125 (uri (git-reference
6126 (url "https://github.com/sanel/monroe.git")
6127 (commit version)))
6128 (file-name (git-file-name name version))
6129 (sha256
6130 (base32 "101lfrykdbv37spkbw7zihhx26bc1lhjyxbanrcp9880bxj04jiy"))))
6131 (build-system emacs-build-system)
6132 (home-page "https://github.com/sanel/monroe")
6133 (synopsis "Clojure nREPL client for Emacs")
6134 (description
6135 "Monroe is a nREPL client for Emacs, focused on simplicity and easy
6136 distribution, primarily targeting Clojure users")
6137 (license license:gpl3+)))
6138
6139 (define-public emacs-orgalist
6140 (package
6141 (name "emacs-orgalist")
6142 (version "1.9")
6143 (source
6144 (origin
6145 (method url-fetch)
6146 (uri (string-append "https://elpa.gnu.org/packages/"
6147 "orgalist-" version ".el"))
6148 (sha256
6149 (base32
6150 "1rmmcyiiqkq54hn74nhzxzl4nvd902hv6gq341jwhrm7yiagffi6"))))
6151 (build-system emacs-build-system)
6152 (home-page "http://elpa.gnu.org/packages/orgalist.html")
6153 (synopsis "Manage Org-like lists in non-Org buffers")
6154 (description "Write Org mode's plain lists in non-Org buffers. More
6155 specifically, Orgalist supports the syntax of Org mode for numbered,
6156 unnumbered, description items, checkboxes, and counter cookies.
6157
6158 The library also implements radio lists, i.e., lists written in Org
6159 syntax later translated into the host format, e.g., LaTeX or HTML.")
6160 (license license:gpl3+)))
6161
6162 (define-public emacs-writegood-mode
6163 (package
6164 (name "emacs-writegood-mode")
6165 (version "2.0.2")
6166 (home-page "https://github.com/bnbeckwith/writegood-mode")
6167 (source (origin
6168 (method git-fetch)
6169 (uri (git-reference
6170 (url home-page)
6171 (commit (string-append "v" version))))
6172 (sha256
6173 (base32
6174 "1nnjn1r669hvvzfycllwap4w04m8rfsk4nzcg8057m1f263kj31b"))
6175 (file-name (string-append name "-checkout"))))
6176 (build-system emacs-build-system)
6177 (synopsis "Polish up poor writing on the fly")
6178 (description
6179 "This minor mode tries to find and highlight problems with your writing
6180 in English as you type. It primarily detects \"weasel words\" and abuse of
6181 passive voice.")
6182 (license license:gpl3+)))
6183
6184 (define-public emacs-neotree
6185 (package
6186 (name "emacs-neotree")
6187 (version "0.5.2")
6188 (home-page "https://github.com/jaypei/emacs-neotree")
6189 (source (origin
6190 (method url-fetch)
6191 (uri (string-append
6192 "https://github.com/jaypei/" name
6193 "/archive/" version ".tar.gz"))
6194 (sha256
6195 (base32
6196 "1zd6dchwyijnf7kgchfcp51gs938l204dk9z6mljrfqf2zy0gp12"))
6197 (file-name (string-append name "-" version ".tar.gz"))))
6198 (build-system emacs-build-system)
6199 (synopsis "Folder tree view for Emacs")
6200 (description "This Emacs package provides a folder tree view.")
6201 (license license:gpl3+)))
6202
6203 (define-public emacs-org
6204 (package
6205 (name "emacs-org")
6206 ;; emacs-org-contrib inherits from this package. Please update its sha256
6207 ;; checksum as well.
6208 (version "9.2.3")
6209 (source (origin
6210 (method url-fetch)
6211 (uri (string-append "http://elpa.gnu.org/packages/org-"
6212 version ".tar"))
6213 (sha256
6214 (base32
6215 "0hqy4lns9q5p0l1ylgmlckqprn9sbasszhznanmv0rsh0gzhsbyw"))))
6216 (build-system emacs-build-system)
6217 (home-page "https://orgmode.org/")
6218 (synopsis "Outline-based notes management and organizer")
6219 (description "Org is an Emacs mode for keeping notes, maintaining TODO
6220 lists, and project planning with a fast and effective lightweight markup
6221 language. It also is an authoring system with unique support for literate
6222 programming and reproducible research.")
6223 (license license:gpl3+)))
6224
6225 (define-public emacs-org-contrib
6226 (package
6227 (inherit emacs-org)
6228 (name "emacs-org-contrib")
6229 (version "20190402")
6230 (source (origin
6231 (method url-fetch)
6232 (uri (string-append "https://orgmode.org/elpa/org-plus-contrib-"
6233 version ".tar"))
6234 (sha256
6235 (base32
6236 "0hbrhhq6sa0gz4ylzr54raxandqs4y953894b0hlr553b8sfl1wk"))))
6237 (arguments
6238 `(#:modules ((guix build emacs-build-system)
6239 (guix build utils)
6240 (guix build emacs-utils)
6241 (ice-9 ftw)
6242 (srfi srfi-1))
6243 #:phases
6244 (modify-phases %standard-phases
6245 (add-after 'install 'delete-org-files
6246 (lambda* (#:key inputs outputs #:allow-other-keys)
6247 (let* ((out (assoc-ref outputs "out"))
6248 (org (assoc-ref inputs "org"))
6249 (contrib-files
6250 (map basename (find-files out)))
6251 (org+contrib-files
6252 (map basename (find-files org)))
6253 (duplicates (lset-intersection
6254 string=? contrib-files org+contrib-files)))
6255 (with-directory-excursion
6256 (string-append
6257 out "/share/emacs/site-lisp/guix.d/org-contrib-" ,version)
6258 (for-each delete-file duplicates))
6259 #t))))))
6260 (propagated-inputs
6261 `(("arduino-mode" ,emacs-arduino-mode)
6262 ("cider" ,emacs-cider)
6263 ("org" ,emacs-org)
6264 ("scel" ,emacs-scel)))
6265 (synopsis "Contributed packages to Org mode")
6266 (description "Org is an Emacs mode for keeping notes, maintaining TODO
6267 lists, and project planning with a fast and effective plain-text system.
6268
6269 This package is equivalent to org-plus-contrib, but only includes additional
6270 files that you would find in @file{contrib/} from the git repository.")))
6271
6272 (define-public emacs-flx
6273 (package
6274 (name "emacs-flx")
6275 (version "0.6.1")
6276 (source
6277 (origin
6278 (method url-fetch)
6279 (uri (string-append "https://github.com/lewang/"
6280 "flx/archive/v" version ".tar.gz"))
6281 (sha256
6282 (base32
6283 "0bkcpnf1j4i2fcc2rllwbz62l00sw2mcia6rm5amgwvlkqavmkv6"))
6284 (file-name (string-append name "-" version ".tar.gz"))))
6285 (build-system emacs-build-system)
6286 (home-page "https://github.com/lewang/flx")
6287 (synopsis "Fuzzy matching for Emacs")
6288 (description
6289 "Flx provides fuzzy matching for emacs a la sublime text.
6290 The sorting algorithm is a balance between word beginnings (abbreviation)
6291 and contiguous matches (substring). The longer the substring match,
6292 the higher it scores. This maps well to how we think about matching.
6293 Flx has support for ido (interactively do things) through flx-ido.")
6294 (license license:gpl3+)))
6295
6296 (define-public emacs-cyberpunk-theme
6297 (package
6298 (name "emacs-cyberpunk-theme")
6299 (version "1.19")
6300 (source
6301 (origin
6302 (method url-fetch)
6303 (uri (string-append "https://github.com/n3mo/cyberpunk-theme.el/"
6304 "archive/" version ".tar.gz"))
6305 (sha256
6306 (base32
6307 "05l5fxw1mn5py6mfhxrzyqjq0d8m5m1akfi46vrgh13r414jffvv"))
6308 (file-name (string-append name "-" version ".tar.gz"))))
6309 (build-system emacs-build-system)
6310 (home-page "https://github.com/n3mo/cyberpunk-theme.el")
6311 (synopsis "Cyberpunk theme for emacs built-in color theme support")
6312 (description
6313 "Cyberpunk color theme for the emacs 24+ built-in color theme support
6314 known loosely as deftheme. Many mode-specific customizations are included.")
6315 (license license:gpl3+)))
6316
6317 (define-public emacs-danneskjold-theme
6318 (let* ((commit "8733d2fe8743e8a01826ea6d4430ef376c727e57")
6319 (revision "1"))
6320 (package
6321 (name "emacs-danneskjold-theme")
6322 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
6323 (home-page "https://github.com/rails-to-cosmos/danneskjold-theme")
6324 (source
6325 (origin
6326 (method git-fetch)
6327 (uri (git-reference
6328 (url home-page)
6329 (commit commit)))
6330 (file-name (git-file-name name version))
6331 (sha256
6332 (base32
6333 "0s6rbsb0y8i8m5b9xm4gw1p1cxsxdqnqxqqb638pygz9f76mbir1"))))
6334 (build-system emacs-build-system)
6335 (arguments
6336 `(#:phases
6337 (modify-phases %standard-phases
6338 (add-after 'unpack 'delete-screenshots
6339 (lambda _
6340 (delete-file-recursively "screenshots") #t)))))
6341 (synopsis "High-contrast Emacs theme")
6342 (description
6343 "@code{danneskjold-theme} is a high-contrast theme for Emacs.")
6344 (license license:gpl3+))))
6345
6346 (define-public emacs-dream-theme
6347 (let* ((commit "107a11d74365046f28a1802a2bdb5e69e4a7488b")
6348 (revision "1"))
6349 (package
6350 (name "emacs-dream-theme")
6351 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
6352 (source
6353 (origin
6354 (method git-fetch)
6355 (uri (git-reference
6356 (url "https://github.com/djcb/dream-theme")
6357 (commit commit)))
6358 (file-name (git-file-name name version))
6359 (sha256
6360 (base32
6361 "0za18nfkq4xqm35k6006vsixcbmvmxqgma4iw5sw37h8vmcsdylk"))))
6362 (build-system emacs-build-system)
6363 (home-page "https://github.com/djcb/dream-theme")
6364 (synopsis "High-contrast Emacs theme")
6365 (description
6366 "@code{dream-theme} is a dark, clean theme for Emacs. It is inspired
6367 by zenburn, sinburn and similar themes, but slowly diverging from them.")
6368 (license license:gpl3+))))
6369
6370 (define-public emacs-auto-complete
6371 (package
6372 (name "emacs-auto-complete")
6373 (version "1.5.1")
6374 (source
6375 (origin
6376 (method url-fetch)
6377 (uri (string-append "https://github.com/auto-complete/"
6378 "auto-complete/archive/v" version ".tar.gz"))
6379 (sha256
6380 (base32
6381 "1jvq4lj00hwml75lpmlciazy8f3bbg13gffsfnl835p4qd8l7yqv"))
6382 (file-name (string-append name "-" version ".tar.gz"))))
6383 (build-system emacs-build-system)
6384 (propagated-inputs
6385 `(("emacs-popup" ,emacs-popup)))
6386 (home-page "https://github.com/auto-complete/auto-complete")
6387 (synopsis "Intelligent auto-completion extension for Emacs")
6388 (description
6389 "Auto-Complete is an intelligent auto-completion extension for Emacs.
6390 It extends the standard Emacs completion interface and provides an environment
6391 that allows users to concentrate more on their own work. Its features are:
6392 a visual interface, reduce overhead of completion by using statistic method,
6393 extensibility.")
6394 (license license:gpl3+)))
6395
6396 (define-public emacs-nginx-mode
6397 (package
6398 (name "emacs-nginx-mode")
6399 (version "1.1.9")
6400 (source
6401 (origin
6402 (method git-fetch)
6403 (uri (git-reference
6404 (url "https://github.com/ajc/nginx-mode.git")
6405 (commit (string-append "v" version))))
6406 (file-name (git-file-name name version))
6407 (sha256
6408 (base32 "17dh5pr3gh6adrbqx588gimxbb2fr7iv2qrxv6r48w2727l344xs"))))
6409 (build-system emacs-build-system)
6410 (home-page "https://github.com/ajc/nginx-mode")
6411 (synopsis "Emacs major mode for editing nginx config files")
6412 (description "This package provides an Emacs major mode for
6413 editing nginx config files.")
6414 (license license:gpl2+)))
6415
6416 (define-public emacs-stream
6417 (package
6418 (name "emacs-stream")
6419 (version "2.2.0")
6420 (home-page "https://github.com/NicolasPetton/stream")
6421 (source
6422 (origin
6423 (method url-fetch)
6424 (file-name (string-append name "-" version ".tar.gz"))
6425 (uri (string-append home-page "/archive/"version ".tar.gz"))
6426 (sha256
6427 (base32 "03ql4nqfz5pn55mjly6clhvc3g7x2d28kj7mrlqmigvjbql39xxc"))))
6428 (build-system emacs-build-system)
6429 (synopsis "Implementation of streams for Emacs")
6430 (description "This library provides an implementation of streams for Emacs.
6431 Streams are implemented as delayed evaluation of cons cells.")
6432 (license license:gpl3+)))
6433
6434 (define-public emacs-el-search
6435 (let ((commit "f26277bfbb3fc3fc74beea6592f294c439796bd4")
6436 (revision "1"))
6437 (package
6438 (name "emacs-el-search")
6439 ;; No ufficial release.
6440 (version (string-append "0.0-" revision "." (string-take commit 7)))
6441 (home-page "https://github.com/emacsmirror/el-search")
6442 (source
6443 (origin
6444 (method git-fetch)
6445 (file-name (string-append name "-" version ".tar.gz"))
6446 (uri (git-reference
6447 (commit commit)
6448 (url (string-append home-page ".git"))))
6449 (sha256
6450 (base32 "12xf40h9sb7xxg2r97gsia94q02543mgiiiw46fzh1ac7b7993g6"))))
6451 (build-system emacs-build-system)
6452 (inputs `(("emacs-stream" ,emacs-stream)))
6453 (synopsis "Expression based interactive search for emacs-lisp-mode")
6454 (description "This package provides expression based interactive search
6455 procedures for emacs-lisp-mode.")
6456 (license license:gpl3+))))
6457
6458 (define-public emacs-ht
6459 (package
6460 (name "emacs-ht")
6461 (version "2.2")
6462 (source
6463 (origin
6464 (method git-fetch)
6465 (uri (git-reference
6466 (url "https://github.com/Wilfred/ht.el.git")
6467 (commit version)))
6468 (file-name (git-file-name name version))
6469 (sha256
6470 (base32 "1p3qa7g0wa0wbviv2f8bda39cjys3naayk5xjm3nxxmqsyy8papx"))))
6471 (build-system emacs-build-system)
6472 (propagated-inputs `(("emacs-dash" ,emacs-dash)))
6473 (home-page "https://github.com/Wilfred/ht.el")
6474 (synopsis "Hash table library for Emacs")
6475 (description
6476 "This package simplifies the use of hash tables in elisp. It also
6477 provides functions to convert hash tables from and to alists and plists.")
6478 (license license:gpl3+)))
6479
6480 (define-public emacs-log4e
6481 (package
6482 (name "emacs-log4e")
6483 (version "0.3.0")
6484 (source
6485 (origin
6486 (method git-fetch)
6487 (uri (git-reference
6488 (url "https://github.com/aki2o/log4e.git")
6489 (commit (string-append "v" version))))
6490 (file-name (git-file-name name version))
6491 (sha256
6492 (base32 "1l28n7a0v2zkknc70i1wn6qb5i21dkhfizzk8wcj28v44cgzk022"))))
6493 (build-system emacs-build-system)
6494 (arguments
6495 `(#:phases
6496 (modify-phases %standard-phases
6497 (add-after 'unpack 'remove-tests
6498 ;; Guile builder complains about null characters in some
6499 ;; strings of test files. Remove "test" directory (it is not
6500 ;; needed anyway).
6501 (lambda _
6502 (delete-file-recursively "test"))))))
6503 (home-page "https://github.com/aki2o/log4e")
6504 (synopsis "Logging framework for elisp")
6505 (description
6506 "This package provides a logging framework for elisp. It allows
6507 you to deal with multiple log levels.")
6508 (license license:gpl3+)))
6509
6510 (define-public emacs-gntp
6511 (package
6512 (name "emacs-gntp")
6513 (version "0.1")
6514 (source
6515 (origin
6516 (method git-fetch)
6517 (uri (git-reference
6518 (url "https://github.com/tekai/gntp.el.git")
6519 (commit (string-append "v" version))))
6520 (file-name (git-file-name name version))
6521 (sha256
6522 (base32 "1nvyjjjydrimpxy4cpg90si7sr8lmldbhlcm2mx8npklp9pn5y3a"))))
6523 (build-system emacs-build-system)
6524 (home-page "https://github.com/tekai/gntp.el")
6525 (synopsis "Growl Notification Protocol for Emacs")
6526 (description
6527 "This package implements the Growl Notification Protocol GNTP
6528 described at @uref{http://www.growlforwindows.com/gfw/help/gntp.aspx}.
6529 It is incomplete as it only lets you send but not receive
6530 notifications.")
6531 (license license:bsd-3)))
6532
6533 (define-public emacs-alert
6534 (package
6535 (name "emacs-alert")
6536 (version "1.2")
6537 (source
6538 (origin
6539 (method git-fetch)
6540 (uri (git-reference
6541 (url "https://github.com/jwiegley/alert.git")
6542 (commit (string-append "v" version))))
6543 (file-name (git-file-name name version))
6544 (sha256
6545 (base32 "1vpc3q40m6dcrslki4bg725j4kv6c6xfxwjjl1ilg7la49fwwf26"))))
6546 (build-system emacs-build-system)
6547 (propagated-inputs
6548 `(("emacs-gntp" ,emacs-gntp)
6549 ("emacs-log4e" ,emacs-log4e)))
6550 (home-page "https://github.com/jwiegley/alert")
6551 (synopsis "Growl-style notification system for Emacs")
6552 (description
6553 "Alert is a Growl-workalike for Emacs which uses a common notification
6554 interface and multiple, selectable \"styles\", whose use is fully
6555 customizable by the user.")
6556 (license license:gpl2+)))
6557
6558 (define-public emacs-zones
6559 (let ((commit "353fc38a6544eb59887bee045e373406f1d038a5")
6560 (revision "1"))
6561 (package
6562 (name "emacs-zones")
6563 (version (git-version "0" revision commit))
6564 (source
6565 (origin
6566 (method git-fetch)
6567 (uri (git-reference
6568 (url "https://github.com/emacsmirror/zones.git")
6569 (commit commit)))
6570 (file-name (git-file-name name version))
6571 (sha256
6572 (base32
6573 "0gwnw2giii2a14nlh62xp45f47cw6ikqphhzpmcw6c7mn9x5z2ar"))
6574 (patches
6575 (search-patches
6576 "emacs-zones-called-interactively.patch"))))
6577 (build-system emacs-build-system)
6578 (home-page "https://www.emacswiki.org/emacs/Zones")
6579 (synopsis "Define and act on multiple zones of buffer text")
6580 (description "Library @file{zones.el} lets you easily define and
6581 subsequently act on multiple zones of buffer text. You can think of this as
6582 enlarging the notion of region. In effect, it can remove the requirement of
6583 target text being a contiguous sequence of characters. A set of buffer zones
6584 is, in effect, a (typically) noncontiguous set of text.")
6585 (license license:gpl3+))))
6586
6587 (define-public emacs-mu4e-alert
6588 (package
6589 (name "emacs-mu4e-alert")
6590 (version "1.0")
6591 (source
6592 (origin
6593 (method git-fetch)
6594 (uri (git-reference
6595 (url "https://github.com/iqbalansari/mu4e-alert.git")
6596 (commit (string-append "v" version))))
6597 (file-name (git-file-name name version))
6598 (sha256
6599 (base32 "1nvsfbfsma59ilf7c3vjngnmx3aapwvvvaafdy5szm5r6lkicqvg"))))
6600 (build-system emacs-build-system)
6601 (propagated-inputs
6602 `(("emacs-alert" ,emacs-alert)
6603 ("emacs-s" ,emacs-s)
6604 ("emacs-ht" ,emacs-ht)
6605 ("mu" ,mu)))
6606 (home-page "https://github.com/iqbalansari/mu4e-alert")
6607 (synopsis "Desktop notification for mu4e")
6608 (description
6609 "This package provides desktop notifications for mu4e.
6610 Additionally it can display the number of unread emails in the
6611 mode-line.")
6612 (license license:gpl3+)))
6613
6614 (define-public emacs-pretty-mode
6615 (package
6616 (name "emacs-pretty-mode")
6617 (version "2.0.3")
6618 (source
6619 (origin
6620 (method url-fetch)
6621 (uri (string-append "https://github.com/akatov/pretty-mode/"
6622 "archive/" version ".tar.gz"))
6623 (file-name (string-append name "-" version ".tar.gz"))
6624 (sha256
6625 (base32
6626 "1fan7m4vnqs8kpg7r54kx3g7faadkpkf9kzarfv8n57kq8w157pl"))))
6627 (build-system emacs-build-system)
6628 (home-page "https://github.com/akatov/pretty-mode")
6629 (synopsis "Redisplay parts of the buffer as Unicode symbols")
6630 (description
6631 "Emacs minor mode for redisplaying parts of the buffer as pretty symbols.")
6632 (license license:gpl3+)))
6633
6634 (define-public emacs-yasnippet
6635 (package
6636 (name "emacs-yasnippet")
6637 (version "0.13.0")
6638 (source (origin
6639 (method url-fetch)
6640 (uri (string-append "https://github.com/joaotavora/yasnippet/"
6641 "archive/" version ".tar.gz"))
6642 (file-name (string-append name "-" version ".tar.gz"))
6643 (sha256
6644 (base32
6645 "12ls2x17agzbrj1xynjbmfa11igqxia4hj4fv6fpr66yci2r1plc"))
6646 (modules '((guix build utils)))
6647 (snippet
6648 '(begin
6649 ;; YASnippet expects a "snippets" subdirectory in the same
6650 ;; directory as yasnippet.el, but we don't install it
6651 ;; because it's a git submodule pointing to an external
6652 ;; repository. Adjust `yas-snippet-dirs' to prevent
6653 ;; warnings about a missing directory.
6654 (substitute* "yasnippet.el"
6655 (("^ +'yas-installed-snippets-dir\\)\\)\n")
6656 "))\n"))
6657 #t))))
6658 (build-system emacs-build-system)
6659 (home-page "https://github.com/joaotavora/yasnippet")
6660 (synopsis "Yet another snippet extension for Emacs")
6661 (description
6662 "YASnippet is a template system for Emacs. It allows you to type an
6663 abbreviation and automatically expand it into function templates.")
6664 (license license:gpl3+)))
6665
6666 (define-public emacs-yasnippet-snippets
6667 (let ((commit "885050d34737e2fb36a3e7759d60c09347bd4ce0")
6668 (revision "1"))
6669 (package
6670 (name "emacs-yasnippet-snippets")
6671 (version (string-append "1-" revision "." (string-take commit 8)))
6672 (source
6673 (origin
6674 (method git-fetch)
6675 (uri (git-reference
6676 (url "https://github.com/AndreaCrotti/yasnippet-snippets")
6677 (commit commit)))
6678 (file-name (git-file-name name version))
6679 (sha256
6680 (base32
6681 "1m935zgglw0iakzrixld5rcjz3wnj84f8wy2mvc3pggjri9l0qr9"))))
6682 (build-system trivial-build-system)
6683 (arguments
6684 `(#:modules ((ice-9 ftw)
6685 (ice-9 regex)
6686 (guix build utils))
6687 #:builder
6688 (begin
6689 (use-modules (ice-9 ftw)
6690 (ice-9 regex)
6691 (guix build utils))
6692 (with-directory-excursion (assoc-ref %build-inputs "source")
6693 (for-each (lambda (dir)
6694 (copy-recursively
6695 dir
6696 (string-append %output
6697 "/share/emacs/yasnippet-snippets/"
6698 dir)))
6699 (scandir "." (lambda (fname)
6700 (and (string-match "-mode$" fname)
6701 (directory-exists? fname))))))
6702 #t)))
6703 (home-page "https://github.com/AndreaCrotti/yasnippet-snippets")
6704 (synopsis "Collection of YASnippet snippets for many languages")
6705 (description
6706 "Provides Andrea Crotti's collection of YASnippet snippets. After installation,
6707 the snippets will be in \"~/.guix-profile/share/emacs/yasnippet-snippets/\".
6708 To make YASnippet aware of these snippets, add the above directory to
6709 @code{yas-snippet-dirs}.")
6710 (license license:expat))))
6711
6712 (define-public emacs-helm-c-yasnippet
6713 (let ((commit "65ca732b510bfc31636708aebcfe4d2d845b59b0")
6714 (revision "1"))
6715 (package
6716 (name "emacs-helm-c-yasnippet")
6717 (version (string-append "0.6.7" "-" revision "."
6718 (string-take commit 7)))
6719 (source (origin
6720 (method git-fetch)
6721 (uri (git-reference
6722 (url "https://github.com/emacs-jp/helm-c-yasnippet")
6723 (commit commit)))
6724 (file-name (git-file-name name version))
6725 (sha256
6726 (base32
6727 "1cbafjqlzxbg19xfdqsinsh7afq58gkf44rsg1qxfgm8g6zhr7f8"))))
6728 (build-system emacs-build-system)
6729 (propagated-inputs
6730 `(("emacs-helm" ,emacs-helm)
6731 ("emacs-yasnippet" ,emacs-yasnippet)))
6732 (home-page "https://github.com/emacs-jp/helm-c-yasnippet")
6733 (synopsis "Helm integration for Yasnippet")
6734 (description "This Emacs library provides Helm interface for
6735 Yasnippet.")
6736 (license license:gpl2+))))
6737
6738 (define-public emacs-helm-system-packages
6739 ;; There won't be a new release after 1.10.1 until
6740 ;; https://github.com/emacs-helm/helm-system-packages/issues/25 is fixed,
6741 ;; and latest commits fix import issues with Guix.
6742 (let ((commit "6572340f41611ef1991e9612d34d59130957ee4a"))
6743 (package
6744 (name "emacs-helm-system-packages")
6745 (version (git-version "1.10.1" "1" commit))
6746 (source (origin
6747 (method git-fetch)
6748 (uri (git-reference
6749 (url "https://github.com/emacs-helm/helm-system-packages")
6750 (commit commit)))
6751 (file-name (git-file-name name version))
6752 (sha256
6753 (base32
6754 "0mcz6vkpk12vsyd37xv1rbg4v442sxc3lj8yxskqg294xbdaclz4"))))
6755 (build-system emacs-build-system)
6756 (inputs
6757 `(("recutils" ,recutils)))
6758 (propagated-inputs
6759 `(("emacs-helm" ,emacs-helm)))
6760 (arguments
6761 `(#:phases
6762 (modify-phases %standard-phases
6763 (add-after 'unpack 'configure
6764 (lambda* (#:key inputs outputs #:allow-other-keys)
6765 (let ((recutils (assoc-ref inputs "recutils")))
6766 ;; Specify the absolute file names of the various
6767 ;; programs so that everything works out-of-the-box.
6768 (substitute* "helm-system-packages-guix.el"
6769 (("recsel") (string-append recutils "/bin/recsel")))))))))
6770 (home-page "https://github.com/emacs-helm/helm-system-packages")
6771 (synopsis "Helm System Packages is an interface to your package manager")
6772 (description "List all available packages in Helm (with installed
6773 packages displayed in their own respective face). Fuzzy-search, mark and
6774 execute the desired action over any selections of packages: Install,
6775 uninstall, display packages details (in Org Mode) or insert details at point,
6776 find files owned by packages... And much more, including performing all the
6777 above over the network.")
6778 (license license:gpl3+))))
6779
6780 (define-public emacs-memoize
6781 (package
6782 (name "emacs-memoize")
6783 (version "1.1")
6784 (source
6785 (origin
6786 (method git-fetch)
6787 (uri (git-reference
6788 (url "https://github.com/skeeto/emacs-memoize.git")
6789 (commit version)))
6790 (file-name (git-file-name name version))
6791 (sha256
6792 (base32 "04qgnlg4x6va7x364dhj1wbjmz8p5iq2vk36mn9198k2vxmijwzk"))))
6793 (build-system emacs-build-system)
6794 (arguments
6795 `(#:tests? #t
6796 #:test-command '("emacs" "--batch"
6797 "-l" "memoize-test.el"
6798 "-f" "ert-run-tests-batch-and-exit")))
6799 (home-page "https://github.com/skeeto/emacs-memoize")
6800 (synopsis "Emacs lisp memoization library")
6801 (description "@code{emacs-memoize} is an Emacs library for
6802 memoizing functions.")
6803 (license license:unlicense)))
6804
6805 (define-public emacs-linum-relative
6806 (package
6807 (name "emacs-linum-relative")
6808 (version "0.5")
6809 (source
6810 (origin
6811 (method git-fetch)
6812 (uri (git-reference
6813 (url "https://github.com/coldnew/linum-relative.git")
6814 (commit version)))
6815 (file-name (git-file-name name version))
6816 (sha256
6817 (base32 "11bjnqqwvr9zrvz5dlm8a0yw4zg9ysh3jdiq5a6iw09d3f0h1v2s"))))
6818 (build-system emacs-build-system)
6819 (home-page "https://github.com/coldnew/linum-relative")
6820 (synopsis "Relative line numbering for Emacs")
6821 (description "@code{emacs-linum-relative} displays the relative line
6822 number on the left margin in Emacs.")
6823 (license license:gpl2+)))
6824
6825 (define-public emacs-idle-highlight
6826 (package
6827 (name "emacs-idle-highlight")
6828 (version "1.1.3")
6829 (source
6830 (origin
6831 (method git-fetch)
6832 (uri (git-reference
6833 (url "https://github.com/nonsequitur/idle-highlight-mode.git")
6834 (commit version)))
6835 (file-name (git-file-name name version))
6836 (sha256
6837 (base32 "0x4w1ksrw7dicl84zpf4d4scg672dyan9g95jkn6zvri0lr8xciv"))))
6838 (build-system emacs-build-system)
6839 (home-page "https://www.emacswiki.org/emacs/IdleHighlight")
6840 (synopsis "Highlights all occurrences of the word the point is on")
6841 (description
6842 "This Emacs package provides @code{idle-highlight-mode} that sets
6843 an idle timer to highlight all occurrences in the buffer of the word under
6844 the point.")
6845 (license license:gpl3+)))
6846
6847 (define-public emacs-ox-twbs
6848 (package
6849 (name "emacs-ox-twbs")
6850 (version "1.1.1")
6851 (source
6852 (origin
6853 (method git-fetch)
6854 (uri (git-reference
6855 (url "https://github.com/marsmining/ox-twbs.git")
6856 (commit (string-append "v" version))))
6857 (file-name (git-file-name name version))
6858 (sha256
6859 (base32 "0kd45p8y7ykadmai4jn1x1pgpafyqggwb1ccbjzalxw4k9wmd45f"))))
6860 (build-system emacs-build-system)
6861 (home-page "https://github.com/marsmining/ox-twbs")
6862 (synopsis "Export org-mode docs as HTML compatible with Twitter Bootstrap")
6863 (description
6864 "This Emacs package outputs your org-mode docs with a simple, clean and
6865 modern look. It implements a new HTML back-end for exporting org-mode docs as
6866 HTML compatible with Twitter Bootstrap. By default, HTML is exported with
6867 jQuery and Bootstrap resources included via osscdn.")
6868 (license license:gpl3+)))
6869
6870 (define-public emacs-highlight-sexp
6871 (package
6872 (name "emacs-highlight-sexp")
6873 (version "1.0")
6874 (source
6875 (origin
6876 (method git-fetch)
6877 (uri (git-reference
6878 (url "https://github.com/daimrod/highlight-sexp.git")
6879 (commit (string-append "v" version))))
6880 (file-name (git-file-name name version))
6881 (sha256
6882 (base32 "12cyk2q5g6p4ac2hykw1cag7dp1prjjnck5f7nalwwaklmy62y79"))))
6883 (build-system emacs-build-system)
6884 (home-page "https://github.com/daimrod/highlight-sexp")
6885 (synopsis "Minor mode that highlights the s-exp at the current position")
6886 (description
6887 "This Emacs package highlights the s-exp at the current position.")
6888 (license license:gpl3+)))
6889
6890 (define-public emacs-highlight-stages
6891 (let ((commit "29cbc5b78261916da042ddb107420083da49b271")
6892 (revision "1"))
6893 (package
6894 (name "emacs-highlight-stages")
6895 (version (string-append "1.1.0" "-" revision "." (string-take commit 7)))
6896 (source
6897 (origin
6898 (method git-fetch)
6899 (uri (git-reference
6900 (url "https://github.com/zk-phi/highlight-stages.git")
6901 (commit commit)))
6902 (file-name (git-file-name name version))
6903 (sha256
6904 (base32
6905 "0r6nbcrr0dqpgm8dir8ahzjy7rw4nrac48byamzrq96r7ajlxlv0"))
6906 (patches
6907 (search-patches "emacs-highlight-stages-add-gexp.patch"))))
6908 (build-system emacs-build-system)
6909 (home-page "https://github.com/wigust/highlight-stages")
6910 (synopsis "Minor mode that highlights (quasi-quoted) expressions")
6911 (description "@code{highlight-stages} provides an Emacs minor mode that
6912 highlights quasi-quoted expressions.")
6913 (license license:gpl3+))))
6914
6915 (define-public emacspeak
6916 (package
6917 (name "emacspeak")
6918 (version "49.0")
6919 (source
6920 (origin
6921 (method url-fetch)
6922 (uri (string-append
6923 "https://github.com/tvraman/emacspeak/releases/download/"
6924 version "/emacspeak-" version ".tar.bz2"))
6925 (sha256
6926 (base32
6927 "1smf26m7201z0bk49lzbw9zhbjfi6wylidfjixb8ylp6g0wnh8dx"))))
6928 (build-system gnu-build-system)
6929 (arguments
6930 '(#:make-flags (list (string-append "prefix="
6931 (assoc-ref %outputs "out")))
6932 #:phases
6933 (modify-phases %standard-phases
6934 (replace 'configure
6935 (lambda* (#:key outputs #:allow-other-keys)
6936 (let* ((out (assoc-ref outputs "out"))
6937 (lisp (string-append out
6938 "/share/emacs/site-lisp/emacspeak")))
6939 (setenv "SHELL" (which "sh"))
6940 ;; Configure Emacspeak according to etc/install.org.
6941 (invoke "make" "config"))))
6942 (add-after 'build 'build-espeak
6943 (lambda _
6944 (invoke "make" "espeak")))
6945 (replace 'install
6946 (lambda* (#:key inputs outputs #:allow-other-keys)
6947 (let* ((out (assoc-ref outputs "out"))
6948 (bin (string-append out "/bin"))
6949 (lisp (string-append out "/share/emacs/site-lisp/emacspeak"))
6950 (info (string-append out "/share/info"))
6951 (emacs (string-append (assoc-ref inputs "emacs")
6952 "/bin/emacs")))
6953 ;; According to etc/install.org, the Emacspeak directory should
6954 ;; be copied to its installation destination.
6955 (for-each
6956 (lambda (file)
6957 (copy-recursively file (string-append lisp "/" file)))
6958 '("etc" "info" "js" "lisp" "media" "scapes" "servers" "sounds"
6959 "stumpwm" "xsl"))
6960 ;; Make sure emacspeak is loaded from the correct directory.
6961 (substitute* "etc/emacspeak.sh"
6962 (("/lisp/emacspeak-setup.el")
6963 (string-append lisp "/lisp/emacspeak-setup.el")))
6964 ;; Install the convenient startup script.
6965 (mkdir-p bin)
6966 (copy-file "etc/emacspeak.sh" (string-append bin "/emacspeak")))
6967 #t))
6968 (add-after 'install 'wrap-program
6969 (lambda* (#:key inputs outputs #:allow-other-keys)
6970 (let* ((out (assoc-ref outputs "out"))
6971 (emacspeak (string-append out "/bin/emacspeak"))
6972 (espeak (string-append (assoc-ref inputs "espeak")
6973 "/bin/espeak")))
6974 ;; The environment variable DTK_PROGRAM tells emacspeak what
6975 ;; program to use for speech.
6976 (wrap-program emacspeak
6977 `("DTK_PROGRAM" ":" prefix (,espeak)))
6978 #t))))
6979 #:tests? #f)) ; no check target
6980 (inputs
6981 `(("emacs" ,emacs)
6982 ("espeak" ,espeak)
6983 ("perl" ,perl)
6984 ("tcl" ,tcl)
6985 ("tclx" ,tclx)))
6986 (home-page "http://emacspeak.sourceforge.net")
6987 (synopsis "Audio desktop interface for Emacs")
6988 (description
6989 "Emacspeak is a speech interface that allows visually impaired users to
6990 interact independently and efficiently with the computer. Audio formatting
6991 --a technique pioneered by AsTeR-- and full support for W3C's Aural CSS (ACSS)
6992 allows Emacspeak to produce rich aural presentations of electronic information.
6993 By seamlessly blending all aspects of the Internet such as Web-surfing and
6994 messaging, Emacspeak speech-enables local and remote information via a
6995 consistent and well-integrated user interface.")
6996 (license license:gpl2+)))
6997
6998 (define-public emacs-adaptive-wrap
6999 (package
7000 (name "emacs-adaptive-wrap")
7001 (version "0.5.1")
7002 (source (origin
7003 (method url-fetch)
7004 (uri (string-append
7005 "http://elpa.gnu.org/packages/adaptive-wrap-"
7006 version ".el"))
7007 (sha256
7008 (base32
7009 "0qi7gjprcpywk2daivnlavwsx53hl5wcqvpxbwinvigg42vxh3ll"))))
7010 (build-system emacs-build-system)
7011 (home-page "http://elpa.gnu.org/packages/adaptive-wrap.html")
7012 (synopsis "Smart line-wrapping with wrap-prefix")
7013 (description
7014 "This Emacs package provides the @code{adaptive-wrap-prefix-mode}
7015 minor mode which sets the wrap-prefix property on the fly so that
7016 single-long-line paragraphs get word-wrapped in a way similar to what
7017 you'd get with @kbd{M-q} using @code{adaptive-fill-mode}, but without
7018 actually changing the buffer's text.")
7019 (license license:gpl3+)))
7020
7021 (define-public emacs-diff-hl
7022 (package
7023 (name "emacs-diff-hl")
7024 (version "1.8.5")
7025 (source
7026 (origin
7027 (method url-fetch)
7028 (uri (string-append "https://elpa.gnu.org/packages/diff-hl-"
7029 version ".tar"))
7030 (sha256
7031 (base32
7032 "1vxc7z7c2qs0mx7l5sa4sybi5qbzv0s79flj74p1ynw8dl3qxg3d"))))
7033 (build-system emacs-build-system)
7034 (home-page "https://github.com/dgutov/diff-hl")
7035 (synopsis
7036 "Highlight uncommitted changes using VC")
7037 (description
7038 "@code{diff-hl-mode} highlights uncommitted changes on the side of the
7039 window (using the fringe, by default), allows you to jump between
7040 the hunks and revert them selectively.")
7041 (license license:gpl3+)))
7042
7043 (define-public emacs-diminish
7044 (package
7045 (name "emacs-diminish")
7046 (version "0.45")
7047 (source
7048 (origin
7049 (method git-fetch)
7050 (uri (git-reference
7051 (url "https://github.com/myrjola/diminish.el.git")
7052 (commit (string-append "v" version))))
7053 (file-name (git-file-name name version))
7054 (sha256
7055 (base32 "0qpgfgp8hrzz4vdifxq8h25n0a0jlzgf7aa1fpy6r0080v5rqbb6"))))
7056 (build-system emacs-build-system)
7057 (home-page "https://github.com/myrjola/diminish.el")
7058 (synopsis "Diminish minor modes with no modeline display")
7059 (description "@code{emacs-diminish} implements hiding or
7060 abbreviation of the mode line displays (lighters) of minor modes.")
7061 (license license:gpl2+)))
7062
7063 (define-public emacs-use-package
7064 (package
7065 (name "emacs-use-package")
7066 (version "2.4")
7067 (source (origin
7068 (method git-fetch)
7069 (uri (git-reference
7070 (url "https://github.com/jwiegley/use-package")
7071 (commit version)))
7072 (file-name (git-file-name name version))
7073 (sha256
7074 (base32
7075 "1b7mjjh0d6fmkkd9vyj64vca27xqhga0nvyrrcqxpqjn62zq046y"))))
7076 (build-system emacs-build-system)
7077 (propagated-inputs
7078 `(("emacs-diminish" ,emacs-diminish)))
7079 (arguments
7080 `(#:tests? #t
7081 #:test-command '("emacs" "--batch"
7082 "-l" "use-package-tests.el"
7083 "-f" "ert-run-tests-batch-and-exit")))
7084 (home-page "https://github.com/jwiegley/use-package")
7085 (synopsis "Declaration for simplifying your .emacs")
7086 (description "The use-package macro allows you to isolate package
7087 configuration in your @file{.emacs} file in a way that is both
7088 performance-oriented and tidy.")
7089 (license license:gpl2+)))
7090
7091 (define-public emacs-strace-mode
7092 (let* ((commit "6a69b4b06db6797af56f33eda5cb28af94e59f11")
7093 (revision "1"))
7094 (package
7095 (name "emacs-strace-mode")
7096 (version (string-append "0.0.2-" revision "." (string-take commit 7)))
7097 (source (origin
7098 (method git-fetch)
7099 (uri (git-reference
7100 (url "https://github.com/pkmoore/strace-mode")
7101 (commit commit)))
7102 (file-name (git-file-name name version))
7103 (sha256
7104 (base32
7105 "1lbk2kzdznf2bkfazizfbimaxxzfzv00lrz1ran9dc2zqbc0bj9f"))))
7106 (build-system emacs-build-system)
7107 (home-page "https://github.com/pkmoore/strace-mode")
7108 (synopsis "Emacs major mode to highlight strace outputs")
7109 (description "@code{emacs-strace-mode} provides an Emacs major mode
7110 highlighting strace outputs.")
7111 (license license:gpl3+))))
7112
7113 (define-public emacs-default-encrypt
7114 (package
7115 (name "emacs-default-encrypt")
7116 (version "4.3")
7117 (source
7118 (origin
7119 (method url-fetch)
7120 (uri (string-append
7121 "https://www.informationelle-selbstbestimmung-im-internet.de"
7122 "/emacs/jl-encrypt" version "/jl-encrypt.el"))
7123 (file-name (string-append "jl-encrypt-" version ".el"))
7124 (sha256
7125 (base32
7126 "16i3rlfp3jxlqvndn8idylhmczync3gwmy8a019v29vyr48rnnr0"))))
7127 (build-system emacs-build-system)
7128 (home-page "https://www.informationelle-selbstbestimmung-im-internet.de/Emacs.html")
7129 (synopsis "Automatically encrypt or sign Gnus messages in Emacs")
7130 (description
7131 "DefaultEncrypt is designed to be used with Gnus in Emacs. It
7132 automatically encrypts messages that you send (e.g., email) when public keys
7133 for all recipients are available, and it protects you from accidentally
7134 sending un-encrypted messages. It can also be configured to automatically
7135 sign messages that you send. For details and instructions on how to use
7136 DefaultEncrypt, please refer to the home page or read the comments in the
7137 source file, @file{jl-encrypt.el}.")
7138 (license license:gpl3+)))
7139
7140 (define-public emacs-htmlize
7141 (package
7142 (name "emacs-htmlize")
7143 (version "1.53")
7144 (source
7145 (origin
7146 (method git-fetch)
7147 (uri (git-reference
7148 (url "https://github.com/hniksic/emacs-htmlize.git")
7149 (commit (string-append "release/" version))))
7150 (file-name (git-file-name name version))
7151 (sha256
7152 (base32 "0dr235c0z8is3pi5xdgqyqljg6px0b2aya6qb79zkyi477bmz4ip"))))
7153 (build-system emacs-build-system)
7154 (home-page "https://github.com/hniksic/emacs-htmlize")
7155 (synopsis "Convert buffer text and decorations to HTML")
7156 (description "@code{emacs-htmlize} converts the buffer text and
7157 the associated decorations to HTML. Output to CSS, inline CSS and
7158 fonts is supported.")
7159 (license license:gpl2+)))
7160
7161 (define-public emacs-xmlgen
7162 (package
7163 (name "emacs-xmlgen")
7164 (version "0.5")
7165 (source
7166 (origin
7167 (method git-fetch)
7168 (uri (git-reference
7169 (url "https://github.com/philjackson/xmlgen.git")
7170 (commit version)))
7171 (file-name (git-file-name name version))
7172 (sha256
7173 (base32 "096i29v0badx0a6339h9ckdz78zj59gbjdp7vj7vhkq9d830392s"))))
7174 (build-system emacs-build-system)
7175 (arguments
7176 `(#:tests? #t
7177 #:test-command '("emacs" "--batch"
7178 "-l" "xmlgen-test.el"
7179 "-f" "ert-run-tests-batch-and-exit")))
7180 (home-page "https://github.com/philjackson/xmlgen")
7181 (synopsis "S-expression to XML domain specific language (DSL) in
7182 Emacs Lisp")
7183 (description "@code{emacs-xmlgen} provides S-expression to XML
7184 conversion for Emacs Lisp.")
7185 (license license:gpl2+)))
7186
7187 (define-public emacs-cdlatex
7188 (package
7189 (name "emacs-cdlatex")
7190 (version "4.7")
7191 (source
7192 (origin
7193 (method git-fetch)
7194 (uri (git-reference
7195 (url "https://github.com/cdominik/cdlatex.git")
7196 (commit version)))
7197 (file-name (git-file-name name version))
7198 (sha256
7199 (base32 "1jj9vmhc4s3ych08bjm1c2xwi81z1p20rj7bvxrgvb5aga2ghi9d"))))
7200 (build-system emacs-build-system)
7201 (propagated-inputs
7202 `(("emacs-auctex" ,emacs-auctex)))
7203 (home-page "https://github.com/cdominik/cdlatex")
7204 (synopsis "Fast Emacs input methods for LaTeX environments and
7205 math")
7206 (description "CDLaTeX is an Emacs minor mode supporting fast
7207 insertion of environment templates and math in LaTeX. Similar
7208 commands are also offered as part of the AUCTeX package, but it is not
7209 the same - CDLaTeX focuses on speediness for inserting LaTeX
7210 constructs.")
7211 (license license:gpl3+)))
7212
7213 (define-public emacs-cnfonts
7214 (package
7215 (name "emacs-cnfonts")
7216 (version "0.9.1")
7217 (source
7218 (origin
7219 (method git-fetch)
7220 (uri (git-reference
7221 (url "https://github.com/tumashu/cnfonts.git")
7222 (commit (string-append "v" version))))
7223 (file-name (git-file-name name version))
7224 (sha256
7225 (base32 "11d44lf0m0kbzq1mvyqkl4aprys0xqaarp08nij57xnynin1rynx"))))
7226 (build-system emacs-build-system)
7227 (home-page "https://github.com/tumashu/cnfonts")
7228 (synopsis "Emacs Chinese fonts setup tool")
7229 (description "cnfonts is a Chinese fonts setup tool, allowing for easy
7230 configuration of Chinese fonts.")
7231 (license license:gpl2+)))
7232
7233 (define-public emacs-php-mode
7234 (package
7235 (name "emacs-php-mode")
7236 (version "20171225.342")
7237 (source (origin
7238 (method url-fetch)
7239 (uri (string-append
7240 "https://melpa.org/packages/php-mode-"
7241 version ".tar"))
7242 (sha256
7243 (base32
7244 "1zz682f34v4wsm2dyj1gnrnvsrqdq1cy7j8p6cvc398w2fziyg3q"))))
7245 (build-system emacs-build-system)
7246 (home-page "https://github.com/ejmr/php-mode")
7247 (synopsis "Major mode for editing PHP code")
7248 (description "@code{php-mode} is a major mode for editing PHP source
7249 code. It's an extension of C mode; thus it inherits all C mode's navigation
7250 functionality. But it colors according to the PHP grammar and indents
7251 according to the PEAR coding guidelines. It also includes a couple handy
7252 IDE-type features such as documentation search and a source and class
7253 browser.")
7254 (license license:gpl3+)))
7255
7256 (define-public emacs-pos-tip
7257 (package
7258 (name "emacs-pos-tip")
7259 (version "0.4.6")
7260 (source
7261 (origin
7262 (method git-fetch)
7263 (uri (git-reference
7264 (url "https://github.com/pitkali/pos-tip.git")
7265 (commit version)))
7266 (file-name (git-file-name name version))
7267 (sha256
7268 (base32 "0w8bnspnk871qndp18hs0wk4x9x31xr9rwbvf5dc8mcbnj29ch33"))))
7269 (build-system emacs-build-system)
7270 ;; The following functions and variables needed by emacs-pos-tip are
7271 ;; not included in emacs-minimal:
7272 ;; x-display-pixel-width, x-display-pixel-height, x-show-tip
7273 (arguments `(#:emacs ,emacs))
7274 (home-page "https://github.com/pitkali/pos-tip")
7275 (synopsis "Show tooltip at point")
7276 (description "The standard library tooltip.el provides a function for
7277 displaying a tooltip at the mouse position. However, locating a tooltip at an
7278 arbitrary buffer position in a window is not easy. Pos-tip provides such a
7279 function to be used by other frontend programs.")
7280 (license license:gpl2+)))
7281
7282 (define-public emacs-pyim-basedict
7283 (package
7284 (name "emacs-pyim-basedict")
7285 (version "0.3.1")
7286 (source
7287 (origin
7288 (method git-fetch)
7289 (uri (git-reference
7290 (url "https://github.com/tumashu/pyim-basedict.git")
7291 (commit (string-append "v" version))))
7292 (file-name (git-file-name name version))
7293 (sha256
7294 (base32 "0576r8ap9gp91ycjf1d47pn13kxp0f9fysn09zlq44hr0s1y2y5d"))))
7295 (build-system emacs-build-system)
7296 (home-page "https://github.com/tumashu/pyim-basedict")
7297 (synopsis "Input method dictionary of pyim")
7298 (description "Pyim-basedict is the default pinyin input method dictionary,
7299 containing words from the rime project.")
7300 (license license:gpl2+)))
7301
7302 (define-public emacs-pyim
7303 (package
7304 (name "emacs-pyim")
7305 (version "1.8")
7306 (source
7307 (origin
7308 (method git-fetch)
7309 (uri (git-reference
7310 (url "https://github.com/tumashu/pyim")
7311 (commit (string-append "v" version))))
7312 (file-name (git-file-name name version))
7313 (sha256
7314 (base32
7315 "16rma4cv7xgky0g3x4an27v30jdi6i1sqw43cl99zhkqvp43l3f9"))))
7316 (build-system emacs-build-system)
7317 (propagated-inputs
7318 `(("emacs-async" ,emacs-async)
7319 ("emacs-pyim-basedict" ,emacs-pyim-basedict)
7320 ("emacs-popup" ,emacs-popup)
7321 ("emacs-posframe" ,emacs-posframe)))
7322 (home-page "https://github.com/tumashu/pyim")
7323 (synopsis "Chinese input method")
7324 (description "Chinese input method which supports quanpin, shuangpin, wubi
7325 and cangjie.")
7326 (license license:gpl2+)))
7327
7328 (define-public emacs-posframe
7329 (package
7330 (name "emacs-posframe")
7331 (version "0.4.2")
7332 (source
7333 (origin
7334 (method url-fetch)
7335 (uri (string-append
7336 "https://elpa.gnu.org/packages/posframe-" version ".el"))
7337 (sha256
7338 (base32
7339 "1h8vvxvsg41vc1nnglqjs2q0k1yzfsn72skga9s76qa3zxmx6kds"))))
7340 (build-system emacs-build-system)
7341 ;; emacs-minimal does not include the function font-info
7342 (arguments `(#:emacs ,emacs))
7343 (home-page "https://github.com/tumashu/posframe")
7344 (synopsis "Pop a posframe (a child frame) at point")
7345 (description "@code{emacs-posframe} can pop a posframe at point. A
7346 posframe is a child frame displayed within its root window's buffer.
7347 @code{emacs-posframe} is fast and works well with CJK languages.")
7348 (license license:gpl3+)))
7349
7350 (define-public emacs-el2org
7351 (package
7352 (name "emacs-el2org")
7353 (version "0.6.0")
7354 (source
7355 (origin
7356 (method git-fetch)
7357 (uri (git-reference
7358 (url "https://github.com/tumashu/el2org.git")
7359 (commit (string-append "v" version))))
7360 (file-name (git-file-name name version))
7361 (sha256
7362 (base32 "0mzddqny6wpg1fv99xrvlv7rxmaifvmy5bvj4in4pldhm4cx4q1b"))))
7363 (build-system emacs-build-system)
7364 (home-page "https://github.com/tumashu/el2org")
7365 (synopsis "Convert Emacs-lisp file to org file")
7366 (description "El2org is a simple tool, which can convert Emacs-lisp file
7367 to org file, you can use this tool to write orgify commentary.")
7368 (license license:gpl2+)))
7369
7370 (define-public emacs-mustache
7371 (package
7372 (name "emacs-mustache")
7373 (version "0.23")
7374 (source
7375 (origin
7376 (method git-fetch)
7377 (uri (git-reference
7378 (url "https://github.com/Wilfred/mustache.el.git")
7379 (commit version)))
7380 (file-name (git-file-name name version))
7381 (sha256
7382 (base32 "1n2ymd92qpvsby6ms0l3kjhdzzc47rri2aiscc6bs07hm4mjpr9q"))))
7383 (build-system emacs-build-system)
7384 (propagated-inputs
7385 `(("emacs-dash" ,emacs-dash)
7386 ("emacs-ht" ,emacs-ht)
7387 ("emacs-s" ,emacs-s)))
7388 (home-page "https://github.com/Wilfred/mustache.el")
7389 (synopsis "Mustache templating library for Emacs")
7390 (description "Mustache templating library for Emacs, mustache is
7391 a simple web template system, which is described as a logic-less system
7392 because it lacks any explicit control flow statements, both looping and
7393 conditional evaluation can be achieved using section tags processing lists
7394 and lambdas.")
7395 (license license:gpl3+)))
7396
7397 (define-public emacs-org2web
7398 (package
7399 (name "emacs-org2web")
7400 (version "0.9.1")
7401 (source
7402 (origin
7403 (method git-fetch)
7404 (uri (git-reference
7405 (url "https://github.com/tumashu/org2web.git")
7406 (commit (string-append "v" version))))
7407 (file-name (git-file-name name version))
7408 (sha256
7409 (base32 "0wsvfn409a2ivbich8b8zqza78sprirg4bl7igx536ydqclmi0n7"))))
7410 (build-system emacs-build-system)
7411 (propagated-inputs
7412 `(("emacs-dash" ,emacs-dash)
7413 ("emacs-el2org" ,emacs-el2org)
7414 ("emacs-ht" ,emacs-ht)
7415 ("emacs-mustache" ,emacs-mustache)
7416 ("emacs-simple-httpd" ,emacs-simple-httpd)))
7417 (home-page "https://github.com/tumashu/org2web")
7418 (synopsis "Static site generator based on org-mode ")
7419 (description "Org2web is a static site generator based on org-mode,
7420 which code derived from Kelvin H's org-page.")
7421 (license license:gpl2+)))
7422
7423 (define-public emacs-xelb
7424 (package
7425 (name "emacs-xelb")
7426 (version "0.17")
7427 (source (origin
7428 (method url-fetch)
7429 (uri (string-append "https://elpa.gnu.org/packages/xelb-"
7430 version ".tar"))
7431 (sha256
7432 (base32
7433 "0k98580vq253fjdgklgqlwl450saninfw39fbq8lv3xsnp3dcgml"))))
7434 (build-system emacs-build-system)
7435 ;; The following functions and variables needed by emacs-xelb are
7436 ;; not included in emacs-minimal:
7437 ;; x-display-screens, x-keysym-table, x-alt-keysym, x-meta-keysym
7438 ;; x-hyper-keysym, x-super-keysym, libxml-parse-xml-region
7439 ;; x-display-pixel-width, x-display-pixel-height
7440 (arguments
7441 `(#:emacs ,emacs
7442 #:phases
7443 (modify-phases %standard-phases
7444 (add-after 'unpack 'regenerate-el-files
7445 (lambda* (#:key inputs #:allow-other-keys)
7446 (invoke "make"
7447 (string-append "PROTO_PATH="
7448 (assoc-ref inputs "xcb-proto")
7449 "/share/xcb")
7450 (string-append "EMACS_BIN="
7451 (assoc-ref inputs "emacs")
7452 "/bin/emacs -Q")))))))
7453 (native-inputs `(("xcb-proto" ,xcb-proto)))
7454 (home-page "https://github.com/ch11ng/xelb")
7455 (synopsis "X protocol Emacs Lisp binding")
7456 (description "@code{emacs-xelb} is a pure Emacs Lisp implementation of the
7457 X11 protocol based on the XML description files from the XCB project. It
7458 features an object-oriented API and permits a certain degree of concurrency.
7459 It should enable you to implement low-level X11 applications.")
7460 (license license:gpl3+)))
7461
7462 (define-public emacs-exwm
7463 (package
7464 (name "emacs-exwm")
7465 (version "0.22")
7466 (synopsis "Emacs X window manager")
7467 (source (origin
7468 (method url-fetch)
7469 (uri (string-append "https://elpa.gnu.org/packages/exwm-"
7470 version ".tar"))
7471 (sha256
7472 (base32
7473 "0lppm8ng37i5s4x7xdrxhjbdcnpl6pyvn4g7w52zbckjsn8qnqh0"))))
7474 (build-system emacs-build-system)
7475 (propagated-inputs
7476 `(("emacs-xelb" ,emacs-xelb)))
7477 (inputs
7478 `(("xhost" ,xhost)
7479 ("dbus" ,dbus)))
7480 ;; The following functions and variables needed by emacs-exwm are
7481 ;; not included in emacs-minimal:
7482 ;; scroll-bar-mode, fringe-mode
7483 ;; x-display-pixel-width, x-display-pixel-height
7484 (arguments
7485 `(#:emacs ,emacs
7486 #:phases
7487 (modify-phases %standard-phases
7488 (add-after 'build 'install-xsession
7489 (lambda* (#:key inputs outputs #:allow-other-keys)
7490 (let* ((out (assoc-ref outputs "out"))
7491 (xsessions (string-append out "/share/xsessions"))
7492 (bin (string-append out "/bin"))
7493 (exwm-executable (string-append bin "/exwm")))
7494 ;; Add a .desktop file to xsessions
7495 (mkdir-p xsessions)
7496 (mkdir-p bin)
7497 (with-output-to-file
7498 (string-append xsessions "/exwm.desktop")
7499 (lambda _
7500 (format #t "[Desktop Entry]~@
7501 Name=~a~@
7502 Comment=~a~@
7503 Exec=~a~@
7504 TryExec=~:*~a~@
7505 Type=Application~%" ,name ,synopsis exwm-executable)))
7506 ;; Add a shell wrapper to bin
7507 (with-output-to-file exwm-executable
7508 (lambda _
7509 (format #t "#!~a ~@
7510 ~a +SI:localuser:$USER ~@
7511 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
7512 (string-append (assoc-ref inputs "bash") "/bin/sh")
7513 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
7514 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
7515 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
7516 '(cond
7517 ((file-exists-p "~/.exwm")
7518 (load-file "~/.exwm"))
7519 ((not (featurep 'exwm))
7520 (require 'exwm)
7521 (require 'exwm-config)
7522 (exwm-config-default)
7523 (message (concat "exwm configuration not found. "
7524 "Falling back to default configuration...")))))))
7525 (chmod exwm-executable #o555)
7526 #t))))))
7527 (home-page "https://github.com/ch11ng/exwm")
7528 (description "EXWM is a full-featured tiling X window manager for Emacs
7529 built on top of XELB.")
7530 (license license:gpl3+)))
7531
7532 (define-public emacs-switch-window
7533 (package
7534 (name "emacs-switch-window")
7535 (version "1.6.2")
7536 (source
7537 (origin
7538 (method git-fetch)
7539 (uri (git-reference
7540 (url "https://github.com/dimitri/switch-window")
7541 (commit (string-append "v" version))))
7542 (file-name (git-file-name name version))
7543 (sha256
7544 (base32
7545 "0rci96asgamr6qp6nkyr5vwrnslswjxcjd96yccy4aivh0g66yfg"))))
7546 (build-system emacs-build-system)
7547 (home-page "https://github.com/dimitri/switch-window")
7548 (synopsis "Emacs window switch tool")
7549 (description "Switch-window is an emacs window switch tool, which
7550 offer a visual way to choose a window to switch to, delete, split or
7551 other operations.")
7552 (license license:wtfpl2)))
7553
7554 (define-public emacs-exwm-x
7555 (package
7556 (name "emacs-exwm-x")
7557 (version "1.9.0")
7558 (synopsis "Derivative window manager based on EXWM")
7559 (source
7560 (origin
7561 (method git-fetch)
7562 (uri (git-reference
7563 (url "https://github.com/tumashu/exwm-x")
7564 (commit (string-append "v" version))))
7565 (file-name (git-file-name name version))
7566 (sha256
7567 (base32
7568 "03l3dl7s1qys1kkh40rm1sfx7axy1b8sf5f6nyksj9ps6d30p5i4"))))
7569 (build-system emacs-build-system)
7570 (propagated-inputs
7571 `(("emacs-exwm" ,emacs-exwm)
7572 ("emacs-switch-window" ,emacs-switch-window)
7573 ("emacs-ivy" ,emacs-ivy)
7574 ("emacs-use-package" ,emacs-use-package)))
7575 (inputs
7576 `(("xhost" ,xhost)
7577 ("dbus" ,dbus)))
7578 ;; Need emacs instead of emacs-minimal,
7579 ;; for emacs's bin path will be inserted into bin/exwm-x file.
7580 (arguments
7581 `(#:emacs ,emacs
7582 #:phases
7583 (modify-phases %standard-phases
7584 (add-after 'build 'install-xsession
7585 (lambda* (#:key inputs outputs #:allow-other-keys)
7586 (let* ((out (assoc-ref outputs "out"))
7587 (xsessions (string-append out "/share/xsessions"))
7588 (bin (string-append out "/bin"))
7589 (exwm-executable (string-append bin "/exwm-x")))
7590 ;; Add a .desktop file to xsessions
7591 (mkdir-p xsessions)
7592 (mkdir-p bin)
7593 (with-output-to-file
7594 (string-append xsessions "/exwm-x.desktop")
7595 (lambda _
7596 (format #t "[Desktop Entry]~@
7597 Name=~a~@
7598 Comment=~a~@
7599 Exec=~a~@
7600 TryExec=~@*~a~@
7601 Type=Application~%" ,name ,synopsis exwm-executable)))
7602 ;; Add a shell wrapper to bin
7603 (with-output-to-file exwm-executable
7604 (lambda _
7605 (format #t "#!~a ~@
7606 ~a +SI:localuser:$USER ~@
7607 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
7608 (string-append (assoc-ref inputs "bash") "/bin/sh")
7609 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
7610 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
7611 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
7612 '(require 'exwmx-loader))))
7613 (chmod exwm-executable #o555)
7614 #t))))))
7615 (home-page "https://github.com/tumashu/exwm-x")
7616 (description "EXWM-X is a derivative window manager based on EXWM, with focus
7617 on mouse-control.")
7618 (license license:gpl3+)))
7619
7620 (define-public emacs-gnuplot
7621 (package
7622 (name "emacs-gnuplot")
7623 (version "0.7.0")
7624 (source
7625 (origin
7626 (method git-fetch)
7627 (uri (git-reference
7628 (url "https://github.com/bruceravel/gnuplot-mode.git")
7629 (commit version)))
7630 (file-name (git-file-name name version))
7631 (sha256
7632 (base32 "0bwri3cvm2vr27kyqkrddm28fs08axnd4nm9amfgp54xp20bn4yn"))))
7633 (build-system gnu-build-system)
7634 (native-inputs `(("emacs" ,emacs-minimal)))
7635 (arguments
7636 (let ((elisp-dir (string-append "/share/emacs/site-lisp/guix.d"
7637 "/gnuplot-" version)))
7638 `(#:modules ((guix build gnu-build-system)
7639 (guix build utils)
7640 (guix build emacs-utils))
7641 #:imported-modules (,@%gnu-build-system-modules
7642 (guix build emacs-utils))
7643 #:configure-flags
7644 (list (string-append "EMACS=" (assoc-ref %build-inputs "emacs")
7645 "/bin/emacs")
7646 (string-append "--with-lispdir=" %output ,elisp-dir))
7647 #:phases
7648 (modify-phases %standard-phases
7649 (add-after 'install 'generate-autoloads
7650 (lambda* (#:key outputs #:allow-other-keys)
7651 (emacs-generate-autoloads
7652 "gnuplot"
7653 (string-append (assoc-ref outputs "out") ,elisp-dir))
7654 #t))))))
7655 (home-page "https://github.com/bruceravel/gnuplot-mode")
7656 (synopsis "Emacs major mode for interacting with gnuplot")
7657 (description "@code{emacs-gnuplot} is an emacs major mode for interacting
7658 with gnuplot.")
7659 (license license:gpl2+)))
7660
7661 (define-public emacs-transpose-frame
7662 (package
7663 (name "emacs-transpose-frame")
7664 (version "0.1.0")
7665 (source
7666 (origin
7667 (method url-fetch)
7668 (uri "http://www.emacswiki.org/emacs/download/transpose-frame.el")
7669 (file-name (string-append "transpose-frame-" version ".el"))
7670 (sha256
7671 (base32
7672 "1f67yksgw9s6j0033hmqzaxx2a93jm11sd5ys7cc3li5gfh680m4"))))
7673 (build-system emacs-build-system)
7674 (home-page "https://www.emacswiki.org/emacs/TransposeFrame")
7675 (synopsis "Transpose window arrangement in current frame")
7676 (description "@code{emacs-transpose-frame} provides some interactive
7677 functions which allows users to transpose windows arrangement in currently
7678 selected frame.")
7679 (license license:bsd-2)))
7680
7681 (define-public emacs-key-chord
7682 (package
7683 (name "emacs-key-chord")
7684 (version "0.6")
7685 (source
7686 (origin
7687 (method url-fetch)
7688 (uri "https://www.emacswiki.org/emacs/download/key-chord.el")
7689 (file-name (string-append "key-chord-" version ".el"))
7690 (sha256
7691 (base32
7692 "03m44pqggfrd53nh9dvpdjgm0rvca34qxmd30hr33hzprzjambxg"))))
7693 (build-system emacs-build-system)
7694 (home-page "https://www.emacswiki.org/emacs/key-chord.el")
7695 (synopsis "Map pairs of simultaneously pressed keys to Emacs commands")
7696 (description "@code{emacs-key-chord} provides @code{key-chord-mode}, a
7697 mode for binding key chords to commands. A key chord is defined as two keys
7698 pressed simultaneously or a single key quickly pressed twice.")
7699 (license license:gpl2+)))
7700
7701 (define-public emacs-evil-surround
7702 (package
7703 (name "emacs-evil-surround")
7704 (version "1.0.0")
7705 (source
7706 (origin
7707 (method git-fetch)
7708 (uri (git-reference
7709 (url "https://github.com/timcharper/evil-surround.git")
7710 (commit (string-append "v" version))))
7711 (file-name (git-file-name name version))
7712 (sha256
7713 (base32 "1smv7sqhm1l2bi9fmispnlmjssidblwkmiiycj1n3ag54q27z031"))))
7714 (build-system emacs-build-system)
7715 (propagated-inputs
7716 `(("emacs-evil" ,emacs-evil)))
7717 (home-page "https://github.com/timcharper/evil-surround")
7718 (synopsis "Easily modify surrounding parentheses and quotes")
7719 (description "@code{emacs-evil-surround} allows easy deletion, change and
7720 addition of surrounding pairs, such as parentheses and quotes, in evil mode.")
7721 (license license:gpl3+)))
7722
7723 (define-public emacs-evil-commentary
7724 (package
7725 (name "emacs-evil-commentary")
7726 (version "2.1.1")
7727 (source
7728 (origin
7729 (method git-fetch)
7730 (uri (git-reference
7731 (url "https://github.com/linktohack/evil-commentary.git")
7732 (commit (string-append "v" version))))
7733 (file-name (git-file-name name version))
7734 (sha256
7735 (base32 "0zjs9zyqfygnpxapvf0ymmiid40i06cxbhjzd81zw33nafgkf6r4"))))
7736 (build-system emacs-build-system)
7737 (propagated-inputs
7738 `(("emacs-evil" ,emacs-evil)))
7739 (home-page "https://github.com/linktohack/evil-commentary")
7740 (synopsis "Comment out code in evil mode")
7741 (description "@code{emacs-evil-commentary} adds keybindings to easily
7742 comment out lines of code in evil mode. It provides @code{gcc} to comment out
7743 lines, and @code{gc} to comment out the target of a motion.")
7744 (license license:gpl3+)))
7745
7746 ;; Tests for emacs-ansi have a circular dependency with ert-runner, and
7747 ;; therefore cannot be run
7748 (define-public emacs-ansi
7749 (package
7750 (name "emacs-ansi")
7751 (version "0.4.1")
7752 (source
7753 (origin
7754 (method git-fetch)
7755 (uri (git-reference
7756 (url "https://github.com/rejeep/ansi.el.git")
7757 (commit (string-append "v" version))))
7758 (file-name (git-file-name name version))
7759 (sha256
7760 (base32 "1hbddxarr40ygvaw4pwaivq2l4f0brszw73w1r50lkjlggb7bl3g"))))
7761 (build-system emacs-build-system)
7762 (propagated-inputs
7763 `(("emacs-dash" ,emacs-dash)
7764 ("emacs-s" ,emacs-s)))
7765 (home-page "https://github.com/rejeep/ansi.el")
7766 (synopsis "Convert strings to ANSI")
7767 (description "@code{emacs-ansi} defines functions that turns simple
7768 strings to ANSI strings. Turning a string into an ANSI string can be to add
7769 color to a text, add color in the background of a text or adding a style, such
7770 as bold, underscore or italic.")
7771 (license license:gpl3+)))
7772
7773 ;; Tests for emacs-commander have a circular dependency with ert-runner, and
7774 ;; therefore cannot be run
7775 (define-public emacs-commander
7776 (package
7777 (name "emacs-commander")
7778 (version "0.7.0")
7779 (source
7780 (origin
7781 (method git-fetch)
7782 (uri (git-reference
7783 (url "https://github.com/rejeep/commander.el.git")
7784 (commit (string-append "v" version))))
7785 (file-name (git-file-name name version))
7786 (sha256
7787 (base32 "1j6hhyzww7wfwk6bllbb5mk4hw4qs8hsgfbfdifsam9c6i4spm45"))))
7788 (build-system emacs-build-system)
7789 (propagated-inputs
7790 `(("emacs-dash" ,emacs-dash)
7791 ("emacs-f" ,emacs-f)
7792 ("emacs-s" ,emacs-s)))
7793 (home-page "https://github.com/rejeep/commander.el")
7794 (synopsis "Emacs command line parser")
7795 (description "@code{emacs-commander} provides command line parsing for
7796 Emacs.")
7797 (license license:gpl3+)))
7798
7799 ;; Tests for ert-runner have a circular dependency with ecukes, and therefore
7800 ;; cannot be run
7801 (define-public emacs-ert-runner
7802 (let ((version "0.7.0")
7803 (revision "1")
7804 (commit "90b8fdd5970ef76a4649be60003b37f82cdc1a65"))
7805 (package
7806 (name "emacs-ert-runner")
7807 (version (git-version "0.7.0" revision commit))
7808 (source
7809 (origin
7810 (method git-fetch)
7811 (uri (git-reference
7812 (url "https://github.com/rejeep/ert-runner.el.git")
7813 (commit commit)))
7814 (file-name (git-file-name name version))
7815 (sha256
7816 (base32
7817 "04nxmyzncacj2wmzd84vv9wkkr2dk9lcb10dvygqmg3p1gadnwzz"))))
7818 (build-system emacs-build-system)
7819 (inputs
7820 `(("emacs-ansi" ,emacs-ansi)
7821 ("emacs-commander" ,emacs-commander)
7822 ("emacs-dash" ,emacs-dash)
7823 ("emacs-f" ,emacs-f)
7824 ("emacs-s" ,emacs-s)
7825 ("emacs-shut-up" ,emacs-shut-up)))
7826 (arguments
7827 `(#:phases
7828 (modify-phases %standard-phases
7829 (add-after 'install 'install-executable
7830 (lambda* (#:key inputs outputs #:allow-other-keys)
7831 (let ((out (assoc-ref outputs "out"))
7832 (source-directory (string-append
7833 (getenv "TMPDIR") "/source")))
7834 (substitute* "bin/ert-runner"
7835 (("ERT_RUNNER=\"\\$\\(dirname \\$\\(dirname \\$0\\)\\)")
7836 (string-append "ERT_RUNNER=\"" out
7837 "/share/emacs/site-lisp/guix.d/ert-runner-"
7838 ,version)))
7839 (install-file "bin/ert-runner" (string-append out "/bin"))
7840 (wrap-program (string-append out "/bin/ert-runner")
7841 (list "EMACSLOADPATH" ":" 'prefix
7842 ;; Do not capture the transient source directory in
7843 ;; the wrapper.
7844 (delete source-directory
7845 (string-split (getenv "EMACSLOADPATH") #\:))))
7846 #t))))
7847 #:include (cons* "^reporters/.*\\.el$" %default-include)))
7848 (home-page "https://github.com/rejeep/ert-runner.el")
7849 (synopsis "Opinionated Ert testing workflow")
7850 (description "@code{ert-runner} is a tool for Emacs projects tested
7851 using ERT. It assumes a certain test structure setup and can therefore make
7852 running tests easier.")
7853 (license license:gpl3+))))
7854
7855 (define-public ert-runner
7856 (deprecated-package "ert-runner" emacs-ert-runner))
7857
7858 (define-public emacs-disable-mouse
7859 (package
7860 (name "emacs-disable-mouse")
7861 (version "0.2")
7862 (source
7863 (origin
7864 (method git-fetch)
7865 (uri (git-reference
7866 (url "https://github.com/purcell/disable-mouse.git")
7867 (commit version)))
7868 (file-name (git-file-name name version))
7869 (sha256
7870 (base32 "1v1y5hf6k6ng7xsvgb27nh740d14m6l4krr0paccda8zgm4mw357"))))
7871 (build-system emacs-build-system)
7872 (home-page "https://github.com/purcell/disable-mouse")
7873 (synopsis "Disable mouse commands globally")
7874 (description
7875 "Provides @code{disable-mouse-mode} and @code{global-disable-mouse-mode},
7876 pair of minor modes which suppress all mouse events by intercepting them and
7877 running a customisable handler command (@code{ignore} by default). ")
7878 (license license:gpl3+)))
7879
7880 (define-public emacs-json-reformat
7881 (package
7882 (name "emacs-json-reformat")
7883 (version "0.0.6")
7884 (source
7885 (origin
7886 (method git-fetch)
7887 (uri (git-reference
7888 (url "https://github.com/gongo/json-reformat.git")
7889 (commit version)))
7890 (file-name (git-file-name name version))
7891 (sha256
7892 (base32 "0qp4n2k6s69jj4gwwimkpadjv245y54wk3bxb1x96f034gkp81vs"))
7893 (patches (search-patches "emacs-json-reformat-fix-tests.patch"))))
7894 (build-system emacs-build-system)
7895 (propagated-inputs
7896 `(("emacs-undercover" ,emacs-undercover)))
7897 (native-inputs
7898 `(("emacs-dash" ,emacs-dash)
7899 ("emacs-shut-up" ,emacs-shut-up)
7900 ("ert-runner" ,emacs-ert-runner)))
7901 (arguments
7902 `(#:tests? #t
7903 #:test-command '("ert-runner")
7904 #:phases
7905 (modify-phases %standard-phases
7906 (add-before 'check 'make-tests-writable
7907 (lambda _
7908 (for-each make-file-writable (find-files "test"))
7909 #t))
7910 (add-before 'check 'delete-json-objects-order-test
7911 (lambda _
7912 (emacs-batch-edit-file "test/json-reformat-test.el"
7913 `(progn (progn (goto-char (point-min))
7914 (re-search-forward
7915 "ert-deftest json-reformat-test:json-reformat-region")
7916 (beginning-of-line)
7917 (kill-sexp))
7918 (basic-save-buffer)))
7919 #t)))))
7920 (home-page "https://github.com/gongo/json-reformat")
7921 (synopsis "Reformatting tool for JSON")
7922 (description "@code{json-reformat} provides a reformatting tool for
7923 @url{http://json.org/, JSON}.")
7924 (license license:gpl3+)))
7925
7926 (define-public emacs-json-snatcher
7927 (package
7928 (name "emacs-json-snatcher")
7929 (version "1.0.0")
7930 (source
7931 (origin
7932 (method git-fetch)
7933 (uri (git-reference
7934 (url "https://github.com/Sterlingg/json-snatcher.git")
7935 (commit version)))
7936 (file-name (git-file-name name version))
7937 (sha256
7938 (base32 "05zsgnk7grgw9jzwl80h5sxfpifxlr37b4mkbvx7mjq4z14xc2jw"))))
7939 (build-system emacs-build-system)
7940 (home-page "https://github.com/sterlingg/json-snatcher")
7941 (synopsis "Grabs the path to JSON values in a JSON file")
7942 (description "@code{emacs-json-snatcher} grabs the path to JSON values in
7943 a @url{http://json.org/, JSON} file.")
7944 (license license:gpl3+)))
7945
7946 (define-public emacs-json-mode
7947 (package
7948 (name "emacs-json-mode")
7949 (version "1.7.0")
7950 (source
7951 (origin
7952 (method git-fetch)
7953 (uri (git-reference
7954 (url "https://github.com/joshwnj/json-mode.git")
7955 (commit (string-append "v" version))))
7956 (file-name (git-file-name name version))
7957 (sha256
7958 (base32 "0i79lqzdg59vkqwjd3q092xxn9vhxspb1vn4pkis0vfvn46g01jy"))))
7959 (build-system emacs-build-system)
7960 (propagated-inputs
7961 `(("emacs-json-reformat" ,emacs-json-reformat)
7962 ("emacs-json-snatcher" ,emacs-json-snatcher)))
7963 (home-page "https://github.com/joshwnj/json-mode")
7964 (synopsis "Major mode for editing JSON files")
7965 (description "@code{json-mode} extends the builtin js-mode syntax
7966 highlighting.")
7967 (license license:gpl3+)))
7968
7969 (define-public emacs-restclient
7970 (let ((commit "07a3888bb36d0e29608142ebe743b4362b800f40")
7971 (revision "1")) ;Guix package revision,
7972 ;upstream doesn't have official releases
7973 (package
7974 (name "emacs-restclient")
7975 (version (string-append revision "."
7976 (string-take commit 7)))
7977 (source (origin
7978 (method git-fetch)
7979 (uri (git-reference
7980 (url "https://github.com/pashky/restclient.el.git")
7981 (commit commit)))
7982 (sha256
7983 (base32
7984 "00lmjhb5im1kgrp54yipf1h9pshxzgjlg71yf2rq5n973gvb0w0q"))
7985 (file-name (git-file-name name version))))
7986 (build-system emacs-build-system)
7987 (propagated-inputs
7988 `(("emacs-helm" ,emacs-helm)))
7989 (home-page "https://github.com/pashky/restclient.el")
7990 (synopsis "Explore and test HTTP REST webservices")
7991 (description
7992 "This tool allows for testing and exploration of HTTP REST Web services
7993 from within Emacs. Restclient runs queries from a plan-text query sheet,
7994 displays results pretty-printed in XML or JSON with @code{restclient-mode}")
7995 (license license:public-domain))))
7996
7997 (define-public emacs-eimp
7998 (let ((version "1.4.0")
7999 (commit "2e7536fe6d8f7faf1bad7a8ae37faba0162c3b4f")
8000 (revision "1"))
8001 (package
8002 (name "emacs-eimp")
8003 (version (git-version version revision commit))
8004 (source
8005 (origin
8006 (method git-fetch)
8007 (uri (git-reference
8008 (url "https://github.com/nicferrier/eimp.git")
8009 (commit commit)))
8010 (file-name (git-file-name name version))
8011 (sha256
8012 (base32
8013 "154d57yafxbcf39r89n5j43c86rp2fki3lw3gwy7ww2g6qkclcra"))))
8014 (build-system emacs-build-system)
8015 (arguments
8016 `(#:phases
8017 (modify-phases %standard-phases
8018 (add-after 'unpack 'configure
8019 (lambda* (#:key inputs #:allow-other-keys)
8020 (let ((imagemagick (assoc-ref inputs "imagemagick")))
8021 ;; eimp.el is read-only in git.
8022 (chmod "eimp.el" #o644)
8023 (emacs-substitute-variables "eimp.el"
8024 ("eimp-mogrify-program"
8025 (string-append imagemagick "/bin/mogrify"))))
8026 #t)))))
8027 (inputs
8028 `(("imagemagick" ,imagemagick)))
8029 (home-page "https://github.com/nicferrier/eimp")
8030 (synopsis "Interactive image manipulation utility for Emacs")
8031 (description "@code{emacs-eimp} allows interactive image manipulation
8032 from within Emacs. It uses the code@{mogrify} utility from ImageMagick to do
8033 the actual transformations.")
8034 (license license:gpl2+))))
8035
8036 (define-public emacs-dired-hacks
8037 (let ((commit "2c1234592aee91dcd9401bcd67213e6a4a464fd9")
8038 (revision "1"))
8039 (package
8040 (name "emacs-dired-hacks")
8041 (version (string-append "0.0.1-" revision "."
8042 (string-take commit 7)))
8043 (source (origin
8044 (method git-fetch)
8045 (uri (git-reference
8046 (url "https://github.com/Fuco1/dired-hacks.git")
8047 (commit commit)))
8048 (file-name (git-file-name name version))
8049 (sha256
8050 (base32
8051 "1g7mky41cahpryzj6frdgzdymknpqq7pidzfjj9304887kijmhj3"))))
8052 (build-system emacs-build-system)
8053 (propagated-inputs
8054 `(("emacs-dash" ,emacs-dash)
8055 ("emacs-eimp" ,emacs-eimp)
8056 ("emacs-f" ,emacs-f)
8057 ("emacs-s" ,emacs-s)))
8058 (home-page "https://github.com/Fuco1/dired-hacks")
8059 (synopsis
8060 "Collection of useful dired additions")
8061 (description
8062 "Collection of Emacs dired mode additions:
8063 @itemize
8064 @item dired-avfs
8065 @item dired-columns
8066 @item dired-filter
8067 @item dired-hacks-utils
8068 @item dired-images
8069 @item dired-list
8070 @item dired-narrow
8071 @item dired-open
8072 @item dired-rainbow
8073 @item dired-ranger
8074 @item dired-subtree
8075 @item dired-tagsistant
8076 @end itemize\n")
8077 (license license:gpl3+))))
8078
8079 (define-public emacs-dired-sidebar
8080 (let ((commit "06bd0d40bab812c61a668129daf29ba359424454")
8081 (revision "0"))
8082 (package
8083 (name "emacs-dired-sidebar")
8084 (home-page "https://github.com/jojojames/dired-sidebar")
8085 (version (git-version "0.0.1" revision commit))
8086 (source (origin
8087 (method git-fetch)
8088 (uri (git-reference (url home-page) (commit commit)))
8089 (file-name (git-file-name name version))
8090 (sha256
8091 (base32
8092 "0lvwvq6sl80sha9fq5m4568sg534dhmifyjqw75bqddcbf3by84x"))))
8093 (build-system emacs-build-system)
8094 (propagated-inputs
8095 `(("emacs-dired-subtree" ,emacs-dired-hacks)))
8096 (synopsis "Sidebar for Emacs using Dired")
8097 (description
8098 "This package provides a sidebar for Emacs similar to @code{NeoTree}
8099 or @code{treemacs}, but leveraging @code{Dired} to do the job of display.")
8100 (license license:gpl3+))))
8101
8102 (define-public emacs-which-key
8103 (package
8104 (name "emacs-which-key")
8105 (version "3.3.1")
8106 (source
8107 (origin
8108 (method git-fetch)
8109 (uri (git-reference
8110 (url "https://github.com/justbur/emacs-which-key.git")
8111 (commit (string-append "v" version))))
8112 (file-name (git-file-name name version))
8113 (sha256
8114 (base32 "1dh6kr00wmql46whjkvnl953zngiv5j99ypvr1b3cb2174623afb"))))
8115 (build-system emacs-build-system)
8116 (arguments
8117 `(#:tests? #t
8118 #:test-command '("emacs" "--batch"
8119 "-l" "which-key-tests.el"
8120 "-f" "ert-run-tests-batch-and-exit")))
8121 (home-page "https://github.com/justbur/emacs-which-key")
8122 (synopsis "Display available key bindings in popup")
8123 (description
8124 "@code{emacs-which-key} is a minor mode for Emacs that displays the key
8125 bindings following your currently entered incomplete command (a prefix) in a
8126 popup. For example, after enabling the minor mode if you enter C-x and wait
8127 for the default of 1 second, the minibuffer will expand with all of the
8128 available key bindings that follow C-x (or as many as space allows given your
8129 settings).")
8130 (license license:gpl3+)))
8131
8132 (define-public emacs-ws-butler
8133 (package
8134 (name "emacs-ws-butler")
8135 (version "0.6")
8136 (source (origin
8137 (method git-fetch)
8138 (uri (git-reference
8139 (url "https://github.com/lewang/ws-butler.git")
8140 (commit "323b651dd70ee40a25accc940b8f80c3a3185205")))
8141 (file-name (git-file-name name version))
8142 (sha256
8143 (base32
8144 "1a4b0lsmwq84qfx51c5xy4fryhb1ysld4fhgw2vr37izf53379sb"))))
8145 (build-system emacs-build-system)
8146 (native-inputs
8147 `(("ert-runner" ,emacs-ert-runner)))
8148 (arguments
8149 `(#:tests? #t
8150 #:test-command '("ert-runner" "tests")))
8151 (home-page "https://github.com/lewang/ws-butler")
8152 (synopsis "Trim spaces from end of lines")
8153 (description
8154 "This Emacs package automatically and unobtrusively trims whitespace
8155 characters from end of lines.")
8156 (license license:gpl3+)))
8157
8158 (define-public emacs-org-edit-latex
8159 (package
8160 (name "emacs-org-edit-latex")
8161 (version "0.8.0")
8162 (source
8163 (origin
8164 (method git-fetch)
8165 (uri (git-reference
8166 (url "https://github.com/et2010/org-edit-latex.git")
8167 (commit (string-append "v" version))))
8168 (file-name (git-file-name name version))
8169 (sha256
8170 (base32 "0zcllyhx9n9vcr5w87h0hfz25v52lvh5fi717cb7mf3jh89zh842"))))
8171 (build-system emacs-build-system)
8172 (propagated-inputs
8173 `(("emacs-auctex" ,emacs-auctex)
8174 ;; The version of org in Emacs 25.2 is not sufficient, because the
8175 ;; `org-latex-make-preamble' function is required.
8176 ("emacs-org" ,emacs-org)))
8177 (home-page "https://github.com/et2010/org-edit-latex")
8178 (synopsis "Edit a latex fragment just like editing a src block")
8179 (description "@code{emacs-org-edit-latex} is an extension for org-mode.
8180 It lets you edit a latex fragment in a dedicated buffer just like editing a
8181 src block.")
8182 (license license:gpl3+)))
8183
8184 (define-public emacs-emamux
8185 (package
8186 (name "emacs-emamux")
8187 (version "0.14")
8188 (source
8189 (origin
8190 (method git-fetch)
8191 (uri (git-reference
8192 (url "https://github.com/syohex/emacs-emamux.git")
8193 (commit version)))
8194 (file-name (git-file-name name version))
8195 (sha256
8196 (base32 "19y69qw79miim9cz5ji54gwspjkcp9g2c1xr5s7jj2fiabnxax6b"))))
8197 (build-system emacs-build-system)
8198 (home-page "https://github.com/syohex/emacs-emamux")
8199 (synopsis "Manipulate Tmux from Emacs")
8200 (description
8201 "@code{emacs-emamux} lets Emacs interact with the @code{tmux} terminal
8202 multiplexer.")
8203 (license license:gpl3+)))
8204
8205 (define-public emacs-rpm-spec-mode
8206 (package
8207 (name "emacs-rpm-spec-mode")
8208 (version "0.16")
8209 (source
8210 (origin
8211 (method url-fetch)
8212 ;; URI has the Fedora release number instead of the version
8213 ;; number. This will have to updated manually every new release.
8214 (uri (string-append
8215 "https://src.fedoraproject.org/cgit/rpms"
8216 "/emacs-rpm-spec-mode.git/snapshot"
8217 "/emacs-rpm-spec-mode-f26.tar.gz"))
8218 (sha256
8219 (base32
8220 "17dz80lhjrc89fj17pysl8slahzrqdkxgcjdk55zls6jizkr6kz3"))))
8221 (build-system emacs-build-system)
8222 (home-page "http://pkgs.fedoraproject.org/cgit/rpms/emacs-rpm-spec-mode.git")
8223 (synopsis "Emacs major mode for editing RPM spec files")
8224 (description "@code{emacs-rpm-spec-mode} provides an Emacs major mode for
8225 editing RPM spec files.")
8226 (license license:gpl2+)))
8227
8228 (define-public emacs-git-messenger
8229 (package
8230 (name "emacs-git-messenger")
8231 (version "0.18")
8232 (source
8233 (origin
8234 (method git-fetch)
8235 (uri (git-reference
8236 (url "https://github.com/syohex/emacs-git-messenger.git")
8237 (commit version)))
8238 (file-name (git-file-name name version))
8239 (sha256
8240 (base32 "04fnby2nblk8l70gv09asxkmnn53fh1pdfs77ix44npp99fyw8ix"))))
8241 (build-system emacs-build-system)
8242 (propagated-inputs
8243 `(("emacs-popup" ,emacs-popup)))
8244 (arguments
8245 `(#:tests? #t
8246 #:test-command '("emacs" "--batch" "-l" "test/test.el"
8247 "-f" "ert-run-tests-batch-and-exit")))
8248 (home-page "https://github.com/syohex/emacs-git-messenger")
8249 (synopsis "Popup commit message at current line")
8250 (description "@code{emacs-git-messenger} provides
8251 @code{git-messenger:popup-message}, a function that when called, will popup
8252 the last git commit message for the current line. This uses git-blame
8253 internally.")
8254 (license license:gpl3+)))
8255
8256 (define-public emacs-gitpatch
8257 (package
8258 (name "emacs-gitpatch")
8259 (version "0.5.0")
8260 (source
8261 (origin
8262 (method git-fetch)
8263 (uri (git-reference
8264 (url "https://github.com/tumashu/gitpatch.git")
8265 (commit (string-append "v" version))))
8266 (file-name (git-file-name name version))
8267 (sha256
8268 (base32 "1jj12pjwza6cq8a3kr8nqnmm3vxs0wam8h983irry4xr4ifywsn4"))))
8269 (build-system emacs-build-system)
8270 (home-page "https://github.com/tumashu/gitpatch")
8271 (synopsis "Mail git patch from Emacs")
8272 (description "@code{emacs-gitpatch} lets users easily send git patches,
8273 created by @code{git format-patch}, from @code{magit}, @code{dired} and
8274 @code{ibuffer} buffers.")
8275 (license license:gpl3+)))
8276
8277 (define-public emacs-erc-hl-nicks
8278 (package
8279 (name "emacs-erc-hl-nicks")
8280 (version "1.3.3")
8281 (source
8282 (origin
8283 (method url-fetch)
8284 (uri (string-append "https://github.com/leathekd/erc-hl-nicks"
8285 "/archive/" version ".tar.gz"))
8286 (file-name (string-append name "-" version ".tar.gz"))
8287 (sha256
8288 (base32
8289 "1a1r2kc3688g8c2ybkpwh88kgmnqhg3h3032g2yn4zr9m0n3vpkr"))))
8290 (build-system emacs-build-system)
8291 (synopsis "Nickname highlighting for Emacs ERC")
8292 (description "@code{erc-hl-nicks} highlights nicknames in ERC, an IRC
8293 client for Emacs. The main features are:
8294 @itemize
8295 @item Auto-colorizes nicknames without having to specify colors
8296 @item Ignores certain characters that IRC clients add to nicknames to avoid
8297 duplicates (nickname, nickname’, nickname\", etc.)
8298 @item Attempts to produce colors with a sufficient amount of contrast between
8299 the nick color and the background color
8300 @end itemize\n")
8301 (home-page "https://github.com/leathekd/erc-hl-nicks")
8302 (license license:gpl3+)))
8303
8304 (define-public emacs-engine-mode
8305 (package
8306 (name "emacs-engine-mode")
8307 (version "2.0.0")
8308 (source
8309 (origin
8310 (method git-fetch)
8311 (uri (git-reference
8312 (url "https://github.com/hrs/engine-mode.git")
8313 (commit (string-append "v" version))))
8314 (file-name (git-file-name name version))
8315 (sha256
8316 (base32 "02xas46nl28mascqsyr1zcd4hn15bh0fjv2xlxv1kmrj0pis94ml"))))
8317 (build-system emacs-build-system)
8318 (synopsis "Minor mode for defining and querying search engines")
8319 (description "@code{engine-mode} is a global minor mode for Emacs. It
8320 enables you to easily define search engines, bind them to keybindings, and
8321 query them from the comfort of your editor.")
8322 (home-page "https://github.com/hrs/engine-mode")
8323 (license license:gpl3+)))
8324
8325 (define-public emacs-prop-menu
8326 (package
8327 (name "emacs-prop-menu")
8328 (version "0.1.2")
8329 (source
8330 (origin
8331 (method url-fetch)
8332 (uri (string-append
8333 "http://stable.melpa.org/packages/prop-menu-"
8334 version ".el"))
8335 (sha256
8336 (base32
8337 "01bk4sjafzz7gqrkv9jg0pa85qr34vbk3q8ga2b0m61bndywzgpr"))))
8338 (build-system emacs-build-system)
8339 (home-page
8340 "https://github.com/david-christiansen/prop-menu-el")
8341 (synopsis
8342 "Create and display a context menu based on text and overlay properties")
8343 (description
8344 "This is a library for computing context menus based on text
8345 properties and overlays. The intended use is to have tools that
8346 annotate source code and others that use these annotations, without
8347 requiring a direct coupling between them, but maintaining
8348 discoverability.
8349
8350 Major modes that wish to use this library should first define an
8351 appropriate value for @code{prop-menu-item-functions}. Then, they should
8352 bind @code{prop-menu-by-completing-read} to an appropriate
8353 key. Optionally, a mouse pop-up can be added by binding
8354 @code{prop-menu-show-menu} to a mouse event.")
8355 (license license:gpl3+)))
8356
8357 (define-public emacs-idris-mode
8358 (package
8359 (name "emacs-idris-mode")
8360 (version "0.9.19")
8361 (source
8362 (origin
8363 (method url-fetch)
8364 (uri (string-append
8365 "http://stable.melpa.org/packages/idris-mode-"
8366 version ".tar"))
8367 (sha256
8368 (base32
8369 "16hl2s22l3wc9drnwzw6hn7xrm49ml9lii0s6k218dgahdgsncmf"))))
8370 (build-system emacs-build-system)
8371 (propagated-inputs
8372 `(("emacs-prop-menu" ,emacs-prop-menu)))
8373 (home-page
8374 "https://github.com/idris-hackers/idris-mode")
8375 (synopsis "Major mode for editing Idris code")
8376 (description
8377 "This is an Emacs mode for editing Idris code. It requires the latest
8378 version of Idris, and some features may rely on the latest Git version of
8379 Idris.")
8380 (license license:gpl3+)))
8381
8382 (define-public emacs-browse-at-remote
8383 (package
8384 (name "emacs-browse-at-remote")
8385 (version "0.10.0")
8386 (source
8387 (origin
8388 (method git-fetch)
8389 (uri (git-reference
8390 (url "https://github.com/rmuslimov/browse-at-remote.git")
8391 (commit version)))
8392 (file-name (git-file-name name version))
8393 (sha256
8394 (base32 "0vhia7xmszcb3lxrb8wh93a3knjfzj48h8nhj4fh8zj1pjz6args"))))
8395 (build-system emacs-build-system)
8396 (propagated-inputs
8397 `(("emacs-f" ,emacs-f)
8398 ("emacs-s" ,emacs-s)))
8399 (native-inputs
8400 `(("ert-runner" ,emacs-ert-runner)))
8401 (arguments
8402 `(#:tests? #t
8403 #:test-command '("ert-runner")))
8404 (home-page "https://github.com/rmuslimov/browse-at-remote")
8405 (synopsis "Open github/gitlab/bitbucket/stash page from Emacs")
8406 (description
8407 "This Emacs package allows you to open a target page on
8408 github/gitlab (or bitbucket) by calling @code{browse-at-remote} command.
8409 It supports dired buffers and opens them in tree mode at destination.")
8410 (license license:gpl3+)))
8411
8412 (define-public emacs-tiny
8413 (package
8414 (name "emacs-tiny")
8415 (version "0.2.1")
8416 (source
8417 (origin
8418 (method url-fetch)
8419 (uri (string-append "http://elpa.gnu.org/packages/tiny-" version ".tar"))
8420 (sha256
8421 (base32
8422 "1cr73a8gba549ja55x0c2s554f3zywf69zbnd7v82jz5q1k9wd2v"))))
8423 (build-system emacs-build-system)
8424 (home-page "https://github.com/abo-abo/tiny")
8425 (synopsis "Quickly generate linear ranges in Emacs")
8426 (description
8427 "The main command of the @code{tiny} extension for Emacs is @code{tiny-expand}.
8428 It is meant to quickly generate linear ranges, e.g. 5, 6, 7, 8. Some elisp
8429 proficiency is an advantage, since you can transform your numeric range with
8430 an elisp expression.")
8431 (license license:gpl3+)))
8432
8433 (define-public emacs-emojify
8434 (package
8435 (name "emacs-emojify")
8436 (version "0.4")
8437 (source
8438 (origin
8439 (method url-fetch)
8440 (uri (string-append "https://github.com/iqbalansari/emacs-emojify/"
8441 "releases/download/v" version "/emojify-"
8442 version ".tar"))
8443 (sha256
8444 (base32
8445 "0k84v2d2bkiwcky9fi1yyprgkj46g7wh6pyl9gzmcd7sqv051d5n"))))
8446 (build-system emacs-build-system)
8447 (arguments
8448 `(#:phases
8449 (modify-phases %standard-phases
8450 (add-after 'install 'install-data
8451 (lambda* (#:key outputs #:allow-other-keys)
8452 (copy-recursively "data"
8453 (string-append (assoc-ref outputs "out")
8454 "/share/emacs/site-lisp/guix.d/"
8455 "emojify-" ,version "/data"))
8456 #t)))))
8457 (propagated-inputs
8458 `(("emacs-ht" ,emacs-ht)))
8459 (home-page "https://github.com/iqbalansari/emacs-emojify")
8460 (synopsis "Display emojis in Emacs")
8461 (description "This package displays emojis in Emacs similar to how Github,
8462 Slack, and other websites do. It can display plain ASCII like @code{:)} as
8463 well as Github-style emojis like @code{:smile:}. It provides a minor mode
8464 @code{emojify-mode} to enable the display of emojis in a buffer.")
8465 (license license:gpl3+)))
8466
8467 (define-public emacs-websocket
8468 (package
8469 (name "emacs-websocket")
8470 (version "1.10")
8471 (source
8472 (origin
8473 (method git-fetch)
8474 (uri (git-reference
8475 (url "https://github.com/ahyatt/emacs-websocket.git")
8476 (commit version)))
8477 (file-name (git-file-name name version))
8478 (sha256
8479 (base32
8480 "1dgrf7na6r6mmkknphzshlbd5fnzisg0qn0j7vfpa38wgsymaq52"))))
8481 (build-system emacs-build-system)
8482 (home-page "http://elpa.gnu.org/packages/websocket.html")
8483 (synopsis "Emacs WebSocket client and server")
8484 (description "This is an Elisp library for WebSocket clients to talk to
8485 WebSocket servers, and for WebSocket servers to accept connections from
8486 WebSocket clients. This library is designed to be used by other library
8487 writers, to write applications that use WebSockets, and is not useful by
8488 itself.")
8489 (license license:gpl3+)))
8490
8491 (define-public emacs-oauth2
8492 (package
8493 (name "emacs-oauth2")
8494 (version "0.11")
8495 (source
8496 (origin
8497 (method url-fetch)
8498 (uri (string-append "https://elpa.gnu.org/packages/oauth2-"
8499 version ".el"))
8500 (sha256
8501 (base32
8502 "0ydkc9jazsnbbvfhd47mql52y7k06n3z7r0naqxkwb99j9blqsmp"))))
8503 (build-system emacs-build-system)
8504 (home-page "http://elpa.gnu.org/packages/oauth2.html")
8505 (synopsis "OAuth 2.0 authorization protocol implementation")
8506 (description
8507 "This package provides an Elisp implementation of the OAuth 2.0 draft.
8508 The main entry point is @code{oauth2-auth-and-store} which will return a token
8509 structure. This token structure can be then used with
8510 @code{oauth2-url-retrieve-synchronously} or @code{oauth2-url-retrieve} to
8511 retrieve any data that need OAuth authentication to be accessed. If the token
8512 needs to be refreshed, the code handles it automatically and stores the new
8513 value of the access token.")
8514 (license license:gpl3+)))
8515
8516 (define-public emacs-circe
8517 (package
8518 (name "emacs-circe")
8519 (version "2.10")
8520 (source
8521 (origin
8522 (method git-fetch)
8523 (uri (git-reference
8524 (url "https://github.com/jorgenschaefer/circe.git")
8525 (commit (string-append "v" version))))
8526 (file-name (git-file-name name version))
8527 (sha256
8528 (base32
8529 "10gi14kwxd81blddpvqh95lgmpbfgp0m955naxix3bs3r6a75n4s"))))
8530 (build-system emacs-build-system)
8531 (arguments
8532 `(#:tests? #t
8533 #:test-command '("buttercup" "-L" ".")
8534 #:phases
8535 (modify-phases %standard-phases
8536 ;; The HOME environment variable should be set to an existing
8537 ;; directory for the tests to succeed.
8538 (add-before 'check 'set-home
8539 (lambda _
8540 (setenv "HOME" "/tmp")
8541 #t)))))
8542 (native-inputs
8543 `(("emacs-buttercup" ,emacs-buttercup)))
8544 ;; In order to securely connect to an IRC server using TLS, Circe requires
8545 ;; the GnuTLS binary.
8546 (propagated-inputs
8547 `(("gnutls" ,gnutls)))
8548 (home-page "https://github.com/jorgenschaefer/circe")
8549 (synopsis "Client for IRC in Emacs")
8550 (description "Circe is a Client for IRC in Emacs. It integrates well with
8551 the rest of the editor, using standard Emacs key bindings and indicating
8552 activity in channels in the status bar so it stays out of your way unless you
8553 want to use it.")
8554 (license license:gpl3+)))
8555
8556 (define-public emacs-tracking
8557 (package
8558 (inherit emacs-circe)
8559 (name "emacs-tracking")
8560 (arguments
8561 ;; "tracking.el" is a library extracted from Circe package. It requires
8562 ;; "shorten.el".
8563 `(#:include '("^shorten.el$" "^tracking.el$")
8564 ,@(package-arguments emacs-circe)))
8565 (home-page "https://github.com/jorgenschaefer/circe/wiki/Tracking")
8566 (synopsis "Buffer tracking library")
8567 (description "@code{tracking.el} provides a way for different modes to
8568 notify the user that a buffer needs attention. The user then can cycle
8569 through them using @key{C-c C-SPC}.")
8570 (license license:gpl3+)))
8571
8572 (define-public emacs-slack
8573 (let ((commit "10fbb81f567b44647ad125a48ecd72df106fb624")
8574 (revision "6"))
8575 (package
8576 (name "emacs-slack")
8577 (version (git-version "0.0.2" revision commit))
8578 (source (origin
8579 (method git-fetch)
8580 (uri (git-reference
8581 (url "https://github.com/yuya373/emacs-slack.git")
8582 (commit commit)))
8583 (file-name (git-file-name name commit))
8584 (sha256
8585 (base32
8586 "01ln9rbalgpxw6rbr4czhy6bd8wrrpyf0qgn2chcq3zmmrn4sy1z"))))
8587 (build-system emacs-build-system)
8588 (arguments
8589 `(#:phases
8590 (modify-phases %standard-phases
8591 ;; HOME needs to exist for source compilation.
8592 (add-before 'build 'set-HOME
8593 (lambda _ (setenv "HOME" "/tmp") #t)))))
8594 (propagated-inputs
8595 `(("emacs-alert" ,emacs-alert)
8596 ("emacs-emojify" ,emacs-emojify)
8597 ("emacs-helm" ,emacs-helm)
8598 ("emacs-request" ,emacs-request)
8599 ("emacs-websocket" ,emacs-websocket)
8600 ("emacs-oauth2" ,emacs-oauth2)
8601 ("emacs-circe" ,emacs-circe)))
8602 (home-page "https://github.com/yuya373/emacs-slack")
8603 (synopsis "Slack client for Emacs")
8604 (description "This package provides an Emacs client for the Slack
8605 messaging service.")
8606 (license license:gpl3+))))
8607
8608 (define-public emacs-bash-completion
8609 (package
8610 (name "emacs-bash-completion")
8611 (version "2.1.0")
8612 (source
8613 (origin
8614 (method git-fetch)
8615 (uri (git-reference
8616 (url "https://github.com/szermatt/emacs-bash-completion.git")
8617 (commit version)))
8618 (file-name (git-file-name name version))
8619 (sha256
8620 (base32 "1a1wxcqzh0javjmxwi3lng5i99xiylm8lm04kv4q1lh9bli6vmv0"))))
8621 (inputs `(("bash" ,bash)))
8622 (build-system emacs-build-system)
8623 (arguments
8624 `(#:phases
8625 (modify-phases %standard-phases
8626 (add-after 'unpack 'make-git-checkout-writable
8627 (λ _
8628 (for-each make-file-writable (find-files "."))
8629 #t))
8630 (add-before 'install 'configure
8631 (lambda* (#:key inputs #:allow-other-keys)
8632 (let ((bash (assoc-ref inputs "bash")))
8633 (emacs-substitute-variables "bash-completion.el"
8634 ("bash-completion-prog" (string-append bash "/bin/bash"))))
8635 #t)))))
8636 (home-page "https://github.com/szermatt/emacs-bash-completion")
8637 (synopsis "Bash completion for the shell buffer")
8638 (description
8639 "@code{bash-completion} defines dynamic completion hooks for shell-mode
8640 and shell-command prompts that are based on Bash completion.")
8641 (license license:gpl2+)))
8642
8643 (define-public emacs-easy-kill
8644 (package
8645 (name "emacs-easy-kill")
8646 (version "0.9.3")
8647 (source (origin
8648 (method url-fetch)
8649 (uri (string-append "https://elpa.gnu.org/packages/easy-kill-"
8650 version ".tar"))
8651 (sha256
8652 (base32
8653 "17nw0mglmg877axwg1d0gs03yc0p04lzmd3pl0nsnqbh3303fnqb"))))
8654 (build-system emacs-build-system)
8655 (home-page "https://github.com/leoliu/easy-kill")
8656 (synopsis "Kill and mark things easily in Emacs")
8657 (description
8658 "This package provides commands @code{easy-kill} and @code{easy-mark} to
8659 let users kill or mark things easily.")
8660 (license license:gpl3+)))
8661
8662 (define-public emacs-csv-mode
8663 (package
8664 (name "emacs-csv-mode")
8665 (version "1.7")
8666 (source
8667 (origin
8668 (method url-fetch)
8669 (uri (string-append "http://elpa.gnu.org/packages/csv-mode-"
8670 version ".el"))
8671 (sha256
8672 (base32
8673 "0r4bip0w3h55i8h6sxh06czf294mrhavybz0zypzrjw91m1bi7z6"))))
8674 (build-system emacs-build-system)
8675 (home-page
8676 "http://elpa.gnu.org/packages/csv-mode.html")
8677 (synopsis
8678 "Major mode for editing comma/char separated values")
8679 (description
8680 "This Emacs package implements CSV mode, a major mode for editing records
8681 in a generalized CSV (character-separated values) format.")
8682 (license license:gpl3+)))
8683
8684 (define-public emacs-transmission
8685 (package
8686 (name "emacs-transmission")
8687 (version "0.12.1")
8688 (source
8689 (origin
8690 (method git-fetch)
8691 (uri (git-reference
8692 (url "https://github.com/holomorph/transmission.git")
8693 (commit version)))
8694 (file-name (git-file-name name version))
8695 (sha256
8696 (base32 "0kvg2gawsgy440x1fsl2c4pkxwp3zirq9rzixanklk0ryijhd3ry"))))
8697 (build-system emacs-build-system)
8698 (home-page "https://github.com/holomorph/transmission")
8699 (synopsis "Emacs interface to a Transmission session")
8700 (description "This package provides an Emacs interface to interact with a
8701 running session of the Transmission Bittorrent client.
8702
8703 Features:
8704
8705 @itemize
8706 @item List, add, start/stop, verify, remove torrents.
8707 @item Set speed limits, ratio limits, bandwidth priorities, trackers.
8708 @item Navigate to the corresponding file list, torrent info, peer info
8709 contexts.
8710 @item Toggle downloading and set priorities for individual files.
8711 @end itemize\n")
8712 (license license:gpl3+)))
8713
8714 (define-public emacs-polymode
8715 (package
8716 (name "emacs-polymode")
8717 (version "0.1.5")
8718 (source (origin
8719 (method git-fetch)
8720 (uri (git-reference
8721 (url "https://github.com/vspinu/polymode.git")
8722 (commit (string-append "v" version))))
8723 (file-name (git-file-name name version))
8724 (sha256
8725 (base32
8726 "0wwphs54jx48a3ca6x1qaz56j3j9bg4mv8g2akkffrzbdcb8sbc7"))))
8727 (build-system emacs-build-system)
8728 (arguments
8729 `(#:include (cons* "^modes/.*\\.el$" %default-include)
8730 #:phases
8731 (modify-phases %standard-phases
8732 (add-after 'set-emacs-load-path 'add-modes-subdir-to-load-path
8733 (lambda _
8734 (setenv "EMACSLOADPATH"
8735 (string-append (getenv "EMACSLOADPATH")
8736 ":" (getcwd) "/modes" ":")))))))
8737 (home-page "https://github.com/vspinu/polymode")
8738 (synopsis "Framework for multiple Emacs modes based on indirect buffers")
8739 (description "Polymode is an Emacs package that offers generic support
8740 for multiple major modes inside a single Emacs buffer. It is lightweight,
8741 object oriented and highly extensible. Creating a new polymode typically
8742 takes only a few lines of code. Polymode also provides extensible facilities
8743 for external literate programming tools for exporting, weaving and tangling.")
8744 (license license:gpl3+)))
8745
8746 (define-public emacs-polymode-ansible
8747 (let ((commit "b26094d029e25dc797b94254f797e7807a57e4c8"))
8748 (package
8749 (name "emacs-polymode-ansible")
8750 ;; No upstream version release yet.
8751 (version (git-version "0.1" "1" commit))
8752 (source
8753 (origin
8754 (method git-fetch)
8755 (uri (git-reference
8756 (url "https://gitlab.com/mavit/poly-ansible")
8757 (commit commit)))
8758 (file-name (git-file-name name version))
8759 (sha256
8760 (base32
8761 "055shddqibib3hx2ykwdz910nrqws40cd407mq946l2bf6v87gj6"))))
8762 (build-system emacs-build-system)
8763 (propagated-inputs
8764 `(("emacs-ansible-doc" ,emacs-ansible-doc)
8765 ("emacs-jinja2-mode" ,emacs-jinja2-mode)
8766 ("emacs-polymode" ,emacs-polymode)
8767 ("emacs-yaml-mode" ,emacs-yaml-mode)))
8768 (properties '((upstream-name . "poly-ansible")))
8769 (home-page "https://gitlab.com/mavit/poly-ansible/")
8770 (synopsis "Polymode for Ansible - Jinja2 in YAML")
8771 (description
8772 "Edit YAML files for Ansible containing embedded Jinja2 templating.")
8773 (license license:gpl3+))))
8774
8775 (define-public eless
8776 (package
8777 (name "eless")
8778 (version "0.3")
8779 (source
8780 (origin
8781 (method git-fetch)
8782 (uri (git-reference
8783 (url "https://github.com/kaushalmodi/eless.git")
8784 (commit (string-append "v" version))))
8785 (file-name (git-file-name name version))
8786 (sha256
8787 (base32 "0jr7vhh4vw69llhi0fh9ljscljkszkj0acdxl04da5hvqv6pnqbb"))))
8788 (build-system trivial-build-system)
8789 (inputs
8790 `(("bash" ,bash)))
8791 (arguments
8792 `(#:modules ((guix build utils))
8793 #:builder
8794 (begin
8795 (use-modules (guix build utils))
8796 (copy-recursively (assoc-ref %build-inputs "source") "source")
8797 (chdir "source")
8798 (substitute* "eless" (("/usr/bin/env bash")
8799 (string-append (assoc-ref %build-inputs "bash")
8800 "/bin/bash")))
8801 (install-file "eless" (string-append %output "/bin"))
8802 (install-file "doc/eless.info" (string-append %output "/share/info"))
8803 #t)))
8804 (home-page "https://github.com/kaushalmodi/eless")
8805 (synopsis "Use Emacs as a paginator")
8806 (description "@code{eless} provides a combination of Bash script
8807 and a minimal Emacs view-mode.
8808
8809 Feautures:
8810
8811 @itemize
8812 @item Independent of a user’s Emacs config.
8813 @item Customizable via the @code{(locate-user-emacs-file \"elesscfg\")} config.
8814 @item Not require an Emacs server to be already running.
8815 @item Syntax highlighting.
8816 @item Org-mode file rendering.
8817 @item @code{man} page viewer.
8818 @item Info viewer.
8819 @item Dired, wdired, (batch edit symbolic links).
8820 @item Colored diffs, git diff, git log, ls with auto ANSI detection.
8821 @item Filter log files lines matching a regexp.
8822 @item Auto-revert log files similar to @code{tail -f}.
8823 @item Quickly change frame and font sizes.
8824 @end itemize\n")
8825 (license license:expat)))
8826
8827 (define-public emacs-evil-matchit
8828 (package
8829 (name "emacs-evil-matchit")
8830 (version "2.2.9")
8831 (source
8832 (origin
8833 (method git-fetch)
8834 (uri (git-reference
8835 (url "https://github.com/redguardtoo/evil-matchit.git")
8836 (commit version)))
8837 (file-name (git-file-name name version))
8838 (sha256
8839 (base32 "12if45pxfndy3d7r4gd3zx4d3jk4d64fdmwkhc3y5zhqq9h9iy4c"))))
8840 (build-system emacs-build-system)
8841 (propagated-inputs
8842 `(("emacs-evil" ,emacs-evil)))
8843 (home-page "https://github.com/redguardtoo/evil-matchit")
8844 (synopsis "Vim matchit ported into Emacs")
8845 (description
8846 "@code{evil-matchit} is a minor mode for jumping between matching tags in
8847 evil mode using @kbd{%}. It is a port of @code{matchit} for Vim.")
8848 (license license:gpl3+)))
8849
8850 (define-public emacs-evil-smartparens
8851 (package
8852 (name "emacs-evil-smartparens")
8853 (version "0.4.0")
8854 (source
8855 (origin
8856 (method git-fetch)
8857 (uri (git-reference
8858 (url "https://github.com/expez/evil-smartparens.git")
8859 (commit version)))
8860 (file-name (git-file-name name version))
8861 (sha256
8862 (base32 "1di4qz5fbrlwbg16c2j0m7y8zqfxw027qd7zqmc3rwk9znbhg7wl"))))
8863 (build-system emacs-build-system)
8864 (propagated-inputs
8865 `(("emacs-evil" ,emacs-evil)
8866 ("emacs-smartparens" ,emacs-smartparens)))
8867 (home-page "https://github.com/expez/evil-smartparens")
8868 (synopsis "Emacs Evil integration for Smartparens")
8869 (description "@code{emacs-evil-smartparens} is an Emacs minor mode which
8870 makes Evil play nice with Smartparens. Evil is an Emacs minor mode that
8871 emulates Vim features and provides Vim-like key bindings.")
8872 (license license:gpl3+)))
8873
8874 (define-public emacs-evil-quickscope
8875 (package
8876 (name "emacs-evil-quickscope")
8877 (version "0.1.4")
8878 (source
8879 (origin
8880 (method git-fetch)
8881 (uri (git-reference
8882 (url "https://github.com/blorbx/evil-quickscope.git")
8883 (commit (string-append "v" version))))
8884 (file-name (git-file-name name version))
8885 (sha256
8886 (base32 "1ja9ggj70wf0nmma4xnc1zdzg2crq9h1cv3cj7cgwjmllflgkfq7"))))
8887 (build-system emacs-build-system)
8888 (propagated-inputs
8889 `(("emacs-evil" ,emacs-evil)))
8890 (arguments
8891 `(#:tests? #t
8892 #:test-command '("emacs" "--batch"
8893 "-l" "evil-quickscope-tests.el"
8894 "-f" "ert-run-tests-batch-and-exit")))
8895 (home-page "https://github.com/blorbx/evil-quickscope")
8896 (synopsis "Target highlighting for emacs evil-mode f,F,t and T commands")
8897 (description "@code{emacs-evil-quickscope} highlights targets for Evil
8898 mode’s f,F,t,T keys, allowing for quick navigation within a line. It is a
8899 port of quick-scope for Vim. Evil is an Emacs minor mode that emulates Vim
8900 features and provides Vim-like key bindings.")
8901 (license license:gpl3+)))
8902
8903 (define-public emacs-bongo
8904 (package
8905 (name "emacs-bongo")
8906 (version "1.0")
8907 (source
8908 (origin
8909 (method git-fetch)
8910 (uri (git-reference
8911 (url "https://github.com/dbrock/bongo.git")
8912 (commit version)))
8913 (file-name (git-file-name name version))
8914 (sha256
8915 (base32 "1q3ws2vn062dh7ci6jn2k2bcn7szh3ap64sgwkzdd6f1pas37fnr"))))
8916 (build-system emacs-build-system)
8917 (home-page "https://github.com/dbrock/bongo")
8918 (synopsis "Media player for Emacs")
8919 (description
8920 "This package provides a flexible media player for Emacs. @code{Bongo}
8921 supports multiple backends such as @code{vlc}, @code{mpg123},
8922 @code{ogg123}, @code{speexdec}, @code{timidity}, @code{mikmod} and
8923 @code{afplay}.")
8924 (license license:gpl2+)))
8925
8926 (define-public emacs-groovy-modes
8927 (package
8928 (name "emacs-groovy-modes")
8929 (version "2.0")
8930 (source (origin
8931 (method url-fetch)
8932 (uri (string-append
8933 "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes"
8934 "/archive/" version ".tar.gz"))
8935 (file-name (string-append name "-" version ".tar.gz"))
8936 (sha256
8937 (base32
8938 "15j0hnkx9nppjzda5cqsxxz5f3bq9hc4xfyjcdypzqiypcvmpa39"))))
8939 (build-system emacs-build-system)
8940 (propagated-inputs
8941 `(("emacs-s" ,emacs-s)))
8942 (home-page "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
8943 (synopsis "Groovy related modes for Emacs")
8944 (description
8945 "This package provides @code{groovy-mode} for syntax highlighting in
8946 Groovy source files, REPL integration with run-groovy and Grails project
8947 navigation with the grails mode.")
8948 (license license:gpl3+)))
8949
8950 (define-public groovy-emacs-modes
8951 (deprecated-package "groovy-emacs-modes" emacs-groovy-modes))
8952
8953 (define-public emacs-org-tree-slide
8954 (let ((commit "dff8f1a4a64c8dd0a1fde0b0131e2fe186747134")
8955 (revision "0"))
8956 (package
8957 (name "emacs-org-tree-slide")
8958 (version (git-version "0.1" revision commit))
8959 (home-page "https://github.com/takaxp/org-tree-slide")
8960 (source (origin
8961 (method git-fetch)
8962 (uri (git-reference (url home-page) (commit commit)))
8963 (sha256
8964 (base32
8965 "153bg0x7ypla11pq51jmsgzfjklwwnrq56xgpbfhk1j16xwz9hyf"))
8966 (file-name (git-file-name name version))))
8967 (build-system emacs-build-system)
8968 (synopsis "Presentation tool for org-mode")
8969 (description
8970 "Org-tree-slide provides a slideshow mode to view org-mode files. Use
8971 @code{org-tree-slide-mode} to enter the slideshow mode, and then @kbd{C->} and
8972 @kbd{C-<} to jump to the next and previous slide.")
8973 (license license:gpl3+))))
8974
8975 (define-public emacs-scratch-el
8976 (let ((commit "2cdf2b841ce7a0987093f65b0cc431947549f897")
8977 (revision "1"))
8978 (package
8979 (name "emacs-scratch-el")
8980 (version (git-version "1.2" revision commit))
8981 (source (origin
8982 (method git-fetch)
8983 (uri (git-reference
8984 (url "https://github.com/ieure/scratch-el.git")
8985 (commit commit)))
8986 (file-name (git-file-name name version))
8987 (sha256
8988 (base32
8989 "0wscsndynjmnliajqaz28r1ww81j8wh84zwaaswx51abhwgl0idf"))))
8990 (build-system emacs-build-system)
8991 (native-inputs
8992 `(("texinfo" ,texinfo)))
8993 (arguments
8994 '(#:phases
8995 (modify-phases %standard-phases
8996 (add-after 'install 'install-doc
8997 (lambda* (#:key outputs #:allow-other-keys)
8998 (unless (invoke "makeinfo" "scratch.texi")
8999 (error "makeinfo failed"))
9000 (install-file "scratch.info"
9001 (string-append (assoc-ref outputs "out")
9002 "/share/info"))
9003 #t)))))
9004 (home-page "https://github.com/ieure/scratch-el/")
9005 (synopsis "Create scratch buffers with the same mode as current buffer")
9006 (description "Scratch is an extension to Emacs that enables one to create
9007 scratch buffers that are in the same mode as the current buffer. This is
9008 notably useful when working on code in some language; you may grab code into a
9009 scratch buffer, and, by virtue of this extension, do so using the Emacs
9010 formatting rules for that language.")
9011 (license license:bsd-2))))
9012
9013 (define-public emacs-kv
9014 (package
9015 (name "emacs-kv")
9016 (version "0.0.19")
9017 (source
9018 (origin
9019 (method git-fetch)
9020 (uri (git-reference
9021 (url "https://github.com/nicferrier/emacs-kv.git")
9022 (commit "721148475bce38a70e0b678ba8aa923652e8900e")))
9023 (file-name (git-file-name name version))
9024 (sha256
9025 (base32
9026 "0r0lz2s6gvy04fwnafai668jsf4546h4k6zd6isx5wpk0n33pj5m"))))
9027 (build-system emacs-build-system)
9028 (arguments
9029 `(#:tests? #t
9030 #:test-command '("emacs" "--batch" "-l" "kv-tests.el"
9031 "-f" "ert-run-tests-batch-and-exit")))
9032 (home-page "https://github.com/nicferrier/emacs-kv")
9033 (synopsis "Key/Value data structures library for Emacs Lisp")
9034 (description "@code{emacs-kv} is a collection of tools for dealing with
9035 key/value data structures such as plists, alists and hash-tables in Emacs
9036 Lisp.")
9037 (license license:gpl3+)))
9038
9039 (define-public emacs-esxml
9040 (package
9041 (name "emacs-esxml")
9042 (version "0.3.4")
9043 (source (origin
9044 (method git-fetch)
9045 (uri (git-reference
9046 (url "https://github.com/tali713/esxml.git")
9047 (commit version)))
9048 (file-name (git-file-name name version))
9049 (sha256
9050 (base32
9051 "00vv8a75wdklygdyr4km9mc2ismxak69c45jmcny41xl44rp9x8m"))))
9052 (build-system emacs-build-system)
9053 (arguments
9054 `(#:phases
9055 (modify-phases %standard-phases
9056 (add-after 'unpack 'fix-sources
9057 (lambda _
9058 ;; See: https://github.com/tali713/esxml/pull/28.
9059 (substitute* "css-lite.el"
9060 ((";;; main interface")
9061 (string-append ";;; main interface\n"
9062 "(require 'cl-lib)"))
9063 (("mapcan")
9064 "cl-mapcan")
9065 (("',\\(cl-mapcan #'process-css-rule rules\\)")
9066 "(cl-mapcan #'process-css-rule ',rules)"))
9067 (substitute* "esxml-form.el"
9068 ((",esxml-form-field-defn")
9069 "#'esxml-form-field-defn"))
9070 ;; See: https://github.com/tali713/esxml/issues/25
9071 (delete-file "esxpath.el")
9072 #t)))))
9073 (propagated-inputs
9074 `(("emacs-kv" ,emacs-kv)))
9075 (home-page "https://github.com/tali713/esxml/")
9076 (synopsis "SXML for EmacsLisp")
9077 (description "This is XML/XHTML done with S-Expressions in EmacsLisp.
9078 Simply, this is the easiest way to write HTML or XML in Lisp. This library
9079 uses the native form of XML representation as used by many libraries already
9080 included within Emacs. See @code{esxml-to-xml} for a concise description of
9081 the format.")
9082 (license license:gpl3+)))
9083
9084 (define-public emacs-nov-el
9085 (package
9086 (name "emacs-nov-el")
9087 (version "0.2.6")
9088 (source (origin
9089 (method git-fetch)
9090 (uri (git-reference
9091 (url "https://github.com/wasamasa/nov.el.git")
9092 (commit version)))
9093 (file-name (git-file-name name version))
9094 (sha256
9095 (base32
9096 "188h5gzn1zf443g0b7q5bpmvvpr6ds5h8aci8vxc92py56rhyrvc"))))
9097 (build-system emacs-build-system)
9098 (arguments
9099 `(#:phases
9100 (modify-phases %standard-phases
9101 (add-after 'unpack 'embed-path-to-unzip
9102 (lambda _
9103 (substitute* "nov.el"
9104 (("\\(executable-find \"unzip\"\\)")
9105 (string-append "\"" (which "unzip") "\"")))
9106 #t)))))
9107 (propagated-inputs
9108 `(("emacs-dash" ,emacs-dash)
9109 ("emacs-esxml" ,emacs-esxml)))
9110 (inputs
9111 `(("unzip" ,unzip)))
9112 (home-page "https://github.com/wasamasa/nov.el/")
9113 (synopsis "Major mode for reading EPUBs in Emacs")
9114 (description "@code{nov.el} provides a major mode for reading EPUB
9115 documents.
9116
9117 Features:
9118
9119 @itemize
9120 @item Basic navigation (jump to TOC, previous/next chapter)
9121 @item Remembering and restoring the last read position
9122 @item Jump to next chapter when scrolling beyond end
9123 @item Renders EPUB2 (@code{.ncx}) and EPUB3 (@code{<nav>}) TOCs
9124 @item Hyperlinks to internal and external targets
9125 @item Supports textual and image documents
9126 @item View source of document files
9127 @item Metadata display
9128 @item Image rescaling
9129 @end itemize
9130 ")
9131 (license license:gpl3+)))
9132
9133 (define-public epipe
9134 (package
9135 (name "epipe")
9136 (version "0.1.0")
9137 (source
9138 (origin
9139 (method git-fetch)
9140 (uri (git-reference
9141 (url "https://github.com/cute-jumper/epipe.git")
9142 (commit version)))
9143 (file-name (git-file-name name version))
9144 (sha256
9145 (base32 "0lkisi1s7sn12nx8zh58qmsxwnk1rjwryj18wcbr148xqz3swg57"))))
9146 (build-system trivial-build-system)
9147 (inputs
9148 `(("bash" ,bash)
9149 ("perl" ,perl)))
9150 (arguments
9151 `(#:modules
9152 ((guix build utils))
9153 #:builder
9154 (begin
9155 (use-modules (guix build utils))
9156 ;; Extract source.
9157 (copy-recursively (assoc-ref %build-inputs "source") "source")
9158 (chdir "source")
9159 ;; Patch shebangs.
9160 (substitute* "epipe"
9161 (("/usr/bin/env bash")
9162 (string-append (assoc-ref %build-inputs "bash") "/bin/bash")))
9163 (patch-shebang "epipe.pl"
9164 (list (string-append (assoc-ref %build-inputs "perl")
9165 "/bin")))
9166 ;; Install.
9167 (for-each (lambda (file)
9168 (install-file file (string-append %output "/bin")))
9169 '("epipe" "epipe.pl"))
9170 #t)))
9171 (home-page "https://github.com/cute-jumper/epipe")
9172 (synopsis "Pipe to the @code{emacsclient}")
9173 (description "@code{epipe} provides an utility to use your editor in
9174 the pipeline, featuring the support for running @code{emacsclient}.")
9175 (license license:gpl3+)))
9176
9177 (define-public emacs-hcl-mode
9178 (package
9179 (name "emacs-hcl-mode")
9180 (version "0.03")
9181 (source
9182 (origin
9183 (method git-fetch)
9184 (uri (git-reference
9185 (url "https://github.com/syohex/emacs-hcl-mode.git")
9186 (commit version)))
9187 (file-name (git-file-name name version))
9188 (sha256
9189 (base32 "0jqrgq15jz6pvx38pnwkizzfiih0d3nxqphyrc92nqpcyimg8b6g"))))
9190 (build-system emacs-build-system)
9191 (home-page "https://github.com/syohex/emacs-hcl-mode")
9192 (synopsis "Major mode for the Hashicorp Configuration Language")
9193 (description
9194 "@code{emacs-hcl-mode} provides an Emacs major mode for working with
9195 @acronym{HCL, Hashicorp Configuration Language}. It provides syntax
9196 highlighting and indentation support.")
9197 (license license:gpl3+)))
9198
9199 (define-public emacs-terraform-mode
9200 (package
9201 (name "emacs-terraform-mode")
9202 (version "0.06")
9203 (source
9204 (origin
9205 (method git-fetch)
9206 (uri (git-reference
9207 (url "https://github.com/syohex/emacs-terraform-mode.git")
9208 (commit version)))
9209 (file-name (git-file-name name version))
9210 (sha256
9211 (base32 "05hn8kskx9lcgn7bzgam99c629zlryir2pickwrqndacjrqpdykx"))))
9212 (build-system emacs-build-system)
9213 (propagated-inputs
9214 `(("emacs-hcl-mode" ,emacs-hcl-mode)))
9215 (home-page "https://github.com/syohex/emacs-terraform-mode")
9216 (synopsis "Major mode for Terraform")
9217 (description
9218 "@code{emacs-terraform-mode} provides a major mode for working with
9219 @uref{https://www.terraform.io/, Terraform} configuration files. Most of the
9220 functionality is inherited from @code{hcl-mode}.")
9221 (license license:gpl3+)))
9222
9223 (define-public emacs-exec-path-from-shell
9224 (package
9225 (name "emacs-exec-path-from-shell")
9226 (version "1.11")
9227 (source
9228 (origin
9229 (method url-fetch)
9230 (uri (string-append
9231 "https://stable.melpa.org/packages/exec-path-from-shell-"
9232 version ".el"))
9233 (sha256
9234 (base32
9235 "03qjgb81cq1l3j54lvlf98r75vmmgd06mj6qh5wa6mz4xzp4w26r"))))
9236 (build-system emacs-build-system)
9237 (home-page "https://github.com/purcell/exec-path-from-shell")
9238 (synopsis "Get environment variables such as @var{PATH} from the shell")
9239 (description
9240 "This library allows the user to set Emacs @var{exec-path} and @var{PATH}
9241 from the shell @var{PATH}, so that @code{shell-command}, @code{compile} and
9242 the like work as expected on systems on which Emacs is not guaranteed to
9243 inherit a login shell's environment variables. It also allows other
9244 environment variables to be retrieved from the shell, so that Emacs will see
9245 the same values you get in a terminal.")
9246 (license license:gpl3+)))
9247
9248 (define-public emacs-deft
9249 (package
9250 (name "emacs-deft")
9251 (version "0.8")
9252 (source
9253 (origin
9254 (method url-fetch)
9255 (uri (string-append "https://stable.melpa.org/packages/deft-"
9256 version ".el"))
9257 (sha256
9258 (base32
9259 "1vb9cjxskc7c0yyf9pvxy1fzypg1vrcgwnjz0m3hslinsgdyig58"))))
9260 (build-system emacs-build-system)
9261 (home-page "https://jblevins.org/projects/deft/")
9262 (synopsis "Quickly browse, filter, and edit plain text notes")
9263 (description
9264 "Deft is an Emacs mode for quickly browsing, filtering, and editing
9265 directories of plain text notes, inspired by Notational Velocity.")
9266 (license license:bsd-3)))
9267
9268 (define-public emacs-anzu
9269 (package
9270 (name "emacs-anzu")
9271 (version "0.62")
9272 (source
9273 (origin
9274 (method git-fetch)
9275 (uri (git-reference
9276 (url "https://github.com/syohex/emacs-anzu.git")
9277 (commit version)))
9278 (file-name (git-file-name name version))
9279 (sha256
9280 (base32 "1lzvc0ihcbplir4hqfyxfqpsd78arz15gk92kmq4f8ggbkl37fan"))))
9281 (build-system emacs-build-system)
9282 (home-page "https://github.com/syohex/emacs-anzu")
9283 (synopsis "Show number of matches in mode-line while searching")
9284 (description
9285 "Anzu provides a minor mode which displays \"current match/total
9286 matches\" in the mode line in various search modes. This is an Emacs port of
9287 Anzu.zim.")
9288 (license license:gpl3+)))
9289
9290 (define-public emacs-emmet-mode
9291 (package
9292 (name "emacs-emmet-mode")
9293 (version "1.0.8")
9294 (source (origin
9295 (method git-fetch)
9296 (uri (git-reference
9297 (url "https://github.com/smihica/emmet-mode.git")
9298 (commit version)))
9299 (file-name (git-file-name name version))
9300 (sha256
9301 (base32
9302 "1dsa85bk33j90h1ypaz1ylqh9yp2xvlga237h3kwa5y3sb0d5ydi"))))
9303 (build-system emacs-build-system)
9304 (home-page "https://github.com/smihica/emmet-mode")
9305 (synopsis "Unofficial Emmet's support for Emacs")
9306 (description
9307 "Unfold CSS-selector-like expressions to markup. It is intended to be
9308 used with SGML-like languages: XML, HTML, XHTML, XSL, etc.")
9309 (license license:gpl3+)))
9310
9311 (define-public emacs-ergoemacs-mode
9312 (let ((commit "3ce23bba3cb50562693860f87f3528c471d603ba")
9313 (revision "1"))
9314 (package
9315 (name "emacs-ergoemacs-mode")
9316 (version (git-version "5.16.10.12" revision commit))
9317 (source
9318 (origin
9319 (method git-fetch)
9320 (uri (git-reference
9321 (url "https://github.com/ergoemacs/ergoemacs-mode.git")
9322 (commit commit)))
9323 (sha256
9324 (base32
9325 "1s3b9bridl78hh1mxmdk9nqlmqhibbaxk0a1cixmsf23s06w8w6l"))))
9326 (build-system emacs-build-system)
9327 (propagated-inputs
9328 `(("emacs-undo-tree" ,emacs-undo-tree)))
9329 (home-page "https://ergoemacs.github.io/")
9330 (synopsis "Emacs mode based on common modern interface and ergonomics")
9331 (description
9332 "This package provides an efficient Emacs keybinding set based on
9333 statistics of command frequency, and supports common shortcuts for open,
9334 close, copy, cut, paste, undo, redo.")
9335 (license license:gpl3+))))
9336
9337 (define-public emacs-password-store
9338 (package
9339 (name "emacs-password-store")
9340 (version "1.7.3")
9341 (source (origin
9342 (method url-fetch)
9343 (uri
9344 (string-append "https://git.zx2c4.com/password-store/snapshot/"
9345 "password-store-" version ".tar.xz"))
9346 (sha256
9347 (base32
9348 "1x53k5dn3cdmvy8m4fqdld4hji5n676ksl0ql4armkmsds26av1b"))))
9349 (build-system emacs-build-system)
9350 (arguments
9351 `(#:phases
9352 (modify-phases %standard-phases
9353 (add-after 'unpack 'extract-el-file
9354 (lambda _
9355 (copy-file "contrib/emacs/password-store.el" "password-store.el")
9356 (delete-file-recursively "contrib")
9357 (delete-file-recursively "man")
9358 (delete-file-recursively "src")
9359 (delete-file-recursively "tests"))))))
9360 (propagated-inputs
9361 `(("emacs-f" ,emacs-f)
9362 ("emacs-s" ,emacs-s)
9363 ("emacs-with-editor" ,emacs-with-editor)
9364 ("password-store" ,password-store)))
9365 (home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs")
9366 (synopsis "Password store (pass) support for Emacs")
9367 (description
9368 "This package provides functions for working with pass (\"the
9369 standard Unix password manager\").")
9370 (license license:gpl2+)))
9371
9372 (define-public emacs-pass
9373 (package
9374 (name "emacs-pass")
9375 (version "1.8")
9376 (source
9377 (origin
9378 (method git-fetch)
9379 (uri (git-reference
9380 (url "https://github.com/NicolasPetton/pass.git")
9381 (commit version)))
9382 (file-name (git-file-name name version))
9383 (sha256
9384 (base32 "05h4hacv3yygyjcjj004qbyqjpkl4pyhwgp25gsz8mw5c66l70cx"))))
9385 (build-system emacs-build-system)
9386 (propagated-inputs
9387 `(("emacs-password-store" ,emacs-password-store)
9388 ("emacs-f" ,emacs-f)))
9389 (home-page "https://github.com/NicolasPetton/pass")
9390 (synopsis "Major mode for @file{password-store.el}")
9391 (description "This is a major mode for managing password-store (pass)
9392 keychains. The keychain entries are displayed in a directory-like structure
9393 and can be consulted and modified.")
9394 (license license:gpl3+)))
9395
9396 (define-public emacs-evil-anzu
9397 (package
9398 (name "emacs-evil-anzu")
9399 (version "0.03")
9400 (source
9401 (origin
9402 (method url-fetch)
9403 (uri (string-append "https://github.com/syohex/emacs-evil-anzu"
9404 "/archive/" version ".tar.gz"))
9405 (file-name (string-append name "-" version ".tar.gz"))
9406 (sha256
9407 (base32 "032hh2946z529cizqsg8pm6cpn5qdj8lfk3qskmx6xv3g2ra56ns"))))
9408 (build-system emacs-build-system)
9409 (propagated-inputs
9410 `(("emacs-evil" ,emacs-evil)
9411 ("emacs-anzu" ,emacs-anzu)))
9412 (home-page "https://github.com/syohex/emacs-evil-anzu")
9413 (synopsis "Anzu for evil-mode")
9414 (description "@code{anzu} provides a minor mode that displays the current
9415 match and total match information in the mode-line in various search modes.")
9416 (license license:gpl3+)))
9417
9418 (define-public emacs-pg
9419 (let ((commit "4f6516ec3946d95dcef49abb6703cc89ecb5183d"))
9420 (package
9421 (name "emacs-pg")
9422 (version (git-version "0.1" "1" commit))
9423 (source (origin
9424 (method git-fetch)
9425 (uri (git-reference (url "https://github.com/cbbrowne/pg.el")
9426 (commit commit)))
9427 (file-name (git-file-name name version))
9428 (sha256
9429 (base32
9430 "1zh7v4nnpzvbi8yj1ynlqlawk5bmlxi6s80b5f2y7hkdqb5q26k0"))))
9431 (build-system emacs-build-system)
9432 (home-page "https://github.com/cbbrowne/pg.el")
9433 (synopsis "Emacs Lisp interface for PostgreSQL")
9434 (description
9435 "This package provides an Emacs Lisp interface for PostgreSQL.")
9436 (license license:gpl3+))))
9437
9438 (define-public emacs-cl-generic
9439 (package
9440 (name "emacs-cl-generic")
9441 (version "0.3")
9442 (source
9443 (origin
9444 (method url-fetch)
9445 (uri (string-append "https://elpa.gnu.org/packages/cl-generic-"
9446 version ".el"))
9447 (sha256
9448 (base32
9449 "0vb338bhjpsnrf60qgxny4z5rjrnifahnrv9axd4shay89d894zq"))))
9450 (build-system emacs-build-system)
9451 (home-page "https://elpa.gnu.org/packages/seq.html")
9452 (synopsis
9453 "Forward @code{cl-generic} compatibility for Emacs before version 25")
9454 (description "This package provides a subset of the features of the
9455 @code{cl-generic} package introduced in Emacs-25, for use on previous
9456 @code{emacsen}.")
9457 (license license:gpl3+)))
9458
9459 (define-public emacs-finalize
9460 (package
9461 (name "emacs-finalize")
9462 (version "2.0.0")
9463 (source
9464 (origin
9465 (method git-fetch)
9466 (uri (git-reference
9467 (url "https://github.com/skeeto/elisp-finalize.git")
9468 (commit version)))
9469 (file-name (git-file-name name version))
9470 (sha256
9471 (base32 "1gvlm4i62af5jscwz0jccc8ra0grprxpg2rlq91d5nn8dn5lpy79"))))
9472 (build-system emacs-build-system)
9473 (propagated-inputs
9474 `(("emacs-cl-generic" ,emacs-cl-generic)))
9475 (home-page "https://github.com/skeeto/elisp-finalize")
9476 (synopsis "Finalizers for Emacs Lisp")
9477 (description
9478 "This package will allows to immediately run a callback (a finalizer)
9479 after its registered lisp object has been garbage collected. This allows for
9480 extra resources, such as buffers and processes, to be cleaned up after the
9481 object has been freed.")
9482 (license license:unlicense)))
9483
9484 (define-public emacs-emacsql
9485 (package
9486 (name "emacs-emacsql")
9487 (version "3.0.0")
9488 (source (origin
9489 (method git-fetch)
9490 (uri (git-reference
9491 (url "https://github.com/skeeto/emacsql.git")
9492 (commit (string-append version))))
9493 (file-name (git-file-name name version))
9494 (sha256
9495 (base32
9496 "1c84gxr1majqj4b59wgdy3lzm3ap66w9qsrnkx8hdbk9895ak81g"))))
9497 (build-system emacs-build-system)
9498 (arguments
9499 `(#:modules ((guix build emacs-build-system)
9500 (guix build utils)
9501 (guix build emacs-utils)
9502 (srfi srfi-26))
9503 #:phases
9504 (modify-phases %standard-phases
9505 (delete 'build) ;‘build-emacsql-sqlite’ compiles ‘*.el’ files.
9506 (add-before 'install 'patch-elisp-shell-shebangs
9507 (lambda _
9508 (substitute* (find-files "." "\\.el")
9509 (("/bin/sh") (which "sh")))
9510 #t))
9511 (add-after 'patch-elisp-shell-shebangs 'setenv-shell
9512 (lambda _
9513 (setenv "SHELL" "sh")))
9514 (add-after 'setenv-shell 'build-emacsql-sqlite
9515 (lambda _
9516 (invoke "make" "binary" "CC=gcc")))
9517 (add-after 'build-emacsql-sqlite 'install-emacsql-sqlite
9518 ;; This build phase installs emacs-emacsql binary.
9519 (lambda* (#:key outputs #:allow-other-keys)
9520 (install-file "sqlite/emacsql-sqlite"
9521 (string-append (assoc-ref outputs "out")
9522 "/bin"))
9523 #t))
9524 (add-after 'install-emacsql-sqlite 'patch-emacsql-sqlite.el
9525 ;; This build phase removes interactive prompts
9526 ;; and makes sure Emacs look for binaries in the right places.
9527 (lambda* (#:key outputs #:allow-other-keys)
9528 (let ((file "emacsql-sqlite.el"))
9529 (chmod file #o644)
9530 (emacs-substitute-sexps file
9531 ;; Make sure Emacs looks for ‘GCC’ binary in the right place.
9532 ("(executable-find" (which "gcc"))
9533 ;; Make sure Emacs looks for ‘emacsql-sqlite’ binary
9534 ;; in the right place.
9535 ("(defvar emacsql-sqlite-executable"
9536 (string-append (assoc-ref outputs "out")
9537 "/bin/emacsql-sqlite"))))))
9538 (replace 'install
9539 (lambda* (#:key outputs #:allow-other-keys)
9540 (let* ((out (assoc-ref outputs "out")))
9541 (install-file "sqlite/emacsql-sqlite"
9542 (string-append out "/bin"))
9543 (for-each (cut install-file <>
9544 (string-append out "/share/emacs/site-lisp/guix.d/"
9545 "emacsql" "-" ,version))
9546 (find-files "." "\\.elc*$")))
9547 #t)))))
9548 (inputs
9549 `(("emacs-minimal" ,emacs-minimal)
9550 ("mariadb" ,mariadb)
9551 ("postgresql" ,postgresql)))
9552 (propagated-inputs
9553 `(("emacs-finalize" ,emacs-finalize)
9554 ("emacs-pg" ,emacs-pg)))
9555 (home-page "https://github.com/skeeto/emacsql")
9556 (synopsis "Emacs high-level SQL database front-end")
9557 (description "Any readable Lisp value can be stored as a value in EmacSQL,
9558 including numbers, strings, symbols, lists, vectors, and closures. EmacSQL
9559 has no concept of @code{TEXT} values; it's all just Lisp objects. The Lisp
9560 object @code{nil} corresponds 1:1 with @code{NULL} in the database.")
9561 (license license:gpl3+)))
9562
9563 (define-public emacs-closql
9564 (package
9565 (name "emacs-closql")
9566 (version "1.0.0")
9567 (source
9568 (origin
9569 (method git-fetch)
9570 (uri (git-reference
9571 (url "https://github.com/emacscollective/closql.git")
9572 (commit (string-append "v" version))))
9573 (file-name (git-file-name name version))
9574 (sha256
9575 (base32
9576 "1xhpfjjkjqfc1k2rj77cscclz5r7gpvv3hi202x178vdcpipjwar"))))
9577 (build-system emacs-build-system)
9578 (propagated-inputs
9579 `(("emacs-emacsql" ,emacs-emacsql)))
9580 (home-page "https://github.com/emacscollective/closql")
9581 (synopsis "Store EIEIO objects using EmacSQL")
9582 (description
9583 "This package allows to store uniform EIEIO objects in an EmacSQL
9584 database. SQLite is used as backend. This library imposes some restrictions
9585 on what kind of objects can be stored; it isn't intended to store arbitrary
9586 objects. All objects have to share a common superclass and subclasses cannot
9587 add any additional instance slots.")
9588 (license license:gpl3)))
9589
9590 (define-public emacs-epkg
9591 ;; The release version is to old for the current database scheme.
9592 (let ((commit "432312b9583ed7b88ad9644fd1bf2183765a892e"))
9593 (package
9594 (name "emacs-epkg")
9595 (version (git-version "3.0.0" "1" commit))
9596 (source
9597 (origin
9598 (method git-fetch)
9599 (uri (git-reference
9600 (url "https://github.com/emacscollective/epkg.git")
9601 (commit commit)))
9602 (file-name (git-file-name name version))
9603 (sha256
9604 (base32
9605 "0d882kahn7a0vri7a9r15lvmfx1zn2hsga6jfcc6jv0hqbswlb2k"))))
9606 (build-system emacs-build-system)
9607 (propagated-inputs
9608 `(("emacs-closql" ,emacs-closql)
9609 ("emacs-dash" ,emacs-dash)))
9610 (home-page "https://emacsmirror.net")
9611 (synopsis "Browse the Emacsmirror package database")
9612 (description "This package provides access to a local copy of the
9613 Emacsmirror package database. It provides low-level functions for querying
9614 the database and a @file{package.el} user interface for browsing the database.
9615 Epkg itself is not a package manager.
9616
9617 Getting a local copy:
9618
9619 @example
9620 git clone https://github.com/emacsmirror/epkgs.git ~/.emacs.d/epkgs
9621 cd ~/.emacs.d/epkgs
9622 git submodule init
9623 git config --global url.https://github.com/.insteadOf git@@github.com:
9624 git submodule update
9625 @end example
9626
9627 Some submodule may be missing. In this case Git will prompt for a GitHub user
9628 name and password. To skip it press a @key{Return} key.
9629
9630 You could get a Epkg package list by invoking @code{epkg-list-packages} in
9631 Emacs.")
9632 (license license:gpl3+))))
9633
9634 (define-public emacs-elisp-slime-nav
9635 (package
9636 (name "emacs-elisp-slime-nav")
9637 (version "0.9")
9638 (source
9639 (origin
9640 (method git-fetch)
9641 (uri (git-reference
9642 (url "https://github.com/purcell/elisp-slime-nav.git")
9643 (commit version)))
9644 (file-name (git-file-name name version))
9645 (sha256
9646 (base32 "11vyy0bvzbs1h1kggikrvhd658j7c730w0pdp6qkm60rigvfi1ih"))))
9647 (build-system emacs-build-system)
9648 (home-page "https://github.com/purcell/elisp-slime-nav")
9649 (synopsis "Make @code{M-.} and @code{M-,} work for elisp like they do in SLIME")
9650 (description
9651 "This package provides SLIME's convenient @code{M-.}and @code{M-,} navigation
9652 in @code{emacs-lisp-mode}, together with an elisp equivalent of
9653 @code{slime-describe-symbol}.")
9654 (license license:gpl3+)))
9655
9656 (define-public emacs-dedicated
9657 (package
9658 (name "emacs-dedicated")
9659 (version "1.0.0")
9660 (source
9661 (origin
9662 (method git-fetch)
9663 (uri (git-reference
9664 (url "https://github.com/emacsorphanage/dedicated.git")
9665 (commit version)))
9666 (file-name (git-file-name name version))
9667 (sha256
9668 (base32 "0pba9s0h37sxyqh733vi6k5raa4cs7aradipf3826inw36jcw414"))))
9669 (build-system emacs-build-system)
9670 (home-page "https://github.com/emacsorphanage/dedicated")
9671 (synopsis "Emacs minor mode for toggling a windows's \"dedicated\" flag")
9672 (description
9673 "This simple Emacs minor mode allows you to toggle a window's
9674 \"dedicated\" flag. When a window is \"dedicated\", Emacs will not select
9675 files into that window. This can be quite handy since many commands will use
9676 another window to show results (compilation mode, starting info, and so on).
9677 A dedicated window won't be used for such a purpose. For details, please read
9678 the source file.")
9679 (license license:gpl2+)))
9680
9681 (define-public emacs-nnreddit
9682 (let ((commit "9843f99d01fd8f1eea2fc685965a7c7f4eeb187a")
9683 (revision "1"))
9684 (package
9685 (name "emacs-nnreddit")
9686 (version (string-append "0.0.1-" revision "."
9687 (string-take commit 7)))
9688 (source (origin
9689 (method git-fetch)
9690 (uri (git-reference
9691 (url "https://github.com/paul-issartel/nnreddit.git")
9692 (commit commit)))
9693 (file-name (git-file-name name version))
9694 (sha256
9695 (base32
9696 "0j4h3bnga640250jdq8bwyja49r41ssrsjd6lba4gzzllqk02nbn"))))
9697 (build-system emacs-build-system)
9698 (home-page "https://github.com/paul-issartel/nnreddit")
9699 (synopsis "Reddit backend for the Gnus newsreader")
9700 (description "@url{https://www.reddit.com} backend for the Gnus
9701 newsreader.")
9702 (license license:gpl3+))))
9703
9704 (define-public emacs-makey
9705 (package
9706 (name "emacs-makey")
9707 (version "0.3")
9708 (source
9709 (origin
9710 (method git-fetch)
9711 (uri (git-reference
9712 (url "https://github.com/mickeynp/makey.git")
9713 (commit version)))
9714 (file-name (git-file-name name version))
9715 (sha256
9716 (base32 "1rr7vpm3xxzcaam3m8xni3ajy8ycyljix07n2jzczayri9sd8csy"))))
9717 (build-system emacs-build-system)
9718 (home-page "https://github.com/mickeynp/makey")
9719 (synopsis "Emacs interactive command-line mode")
9720 (description
9721 "This package provides an Emacs interactive command-line mode.")
9722 (license license:gpl3+)))
9723
9724 (define-public emacs-outorg
9725 (let ((commit "78b0695121fb974bc4e971eb4ef7f8afd6d89d64"))
9726 (package
9727 (name "emacs-outorg")
9728 (version (git-version "2.0" "1" commit))
9729 (source
9730 (origin
9731 (method git-fetch)
9732 (uri (git-reference
9733 (url "https://github.com/alphapapa/outorg")
9734 (commit commit)))
9735 (file-name (git-file-name name version))
9736 (sha256
9737 (base32
9738 "03aclh4m3f7rb821gr9pwvnqkkl91px3qxdcarpf3ypa1x4fxvlj"))))
9739 (build-system emacs-build-system)
9740 (home-page "https://github.com/alphapapa/outorg")
9741 (synopsis "Org-style comment editing")
9742 (description "Outorg is for editing comment-sections of source-code
9743 files in temporary Org-mode buffers. It turns conventional
9744 literate-programming upside-down in that the default mode is the
9745 programming-mode, and special action has to be taken to switch to the
9746 text-mode (i.e. Org-mode).")
9747 (license license:gpl3+))))
9748
9749 (define-public emacs-outshine
9750 (let ((commit "5f1a6b70231d2811c522e4e5e8c89ff461b311d6"))
9751 (package
9752 (name "emacs-outshine")
9753 (version (git-version "2.0" "1" commit))
9754 (source (origin
9755 (method git-fetch)
9756 (uri (git-reference
9757 (url "https://github.com/alphapapa/outshine.git")
9758 (commit commit)))
9759 (file-name (git-file-name name version))
9760 (sha256
9761 (base32
9762 "1l9v1dfhgg7il11ifbhvcvrg3acfjk9sdxlc3lja1k54d7dp60jv"))))
9763 (build-system emacs-build-system)
9764 (propagated-inputs
9765 `(("emacs-outorg" ,emacs-outorg)))
9766 (home-page "https://github.com/alphapapa/outshine")
9767 (synopsis "Emacs outline with outshine")
9768 (description "Outshine attempts to bring the look and feel of
9769 @code{org-mode} to an Emacs outside of the Org major-mode. It is an extension
9770 of @code{outline-minor-mode} (@code{org-mode} itself derives from
9771 outline-mode), so there is no such thing like an outshine mode, only
9772 @code{outline-minor-mode} with outshine extensions loaded.")
9773 (license license:gpl3+))))
9774
9775 (define-public emacs-parsebib
9776 (package
9777 (name "emacs-parsebib")
9778 (version "2.3.1")
9779 (source
9780 (origin
9781 (method git-fetch)
9782 (uri (git-reference
9783 (url "https://github.com/joostkremers/parsebib.git")
9784 (commit version)))
9785 (file-name (git-file-name name version))
9786 (sha256
9787 (base32 "1bnqnxkb9dnl0fjrrjx0xn9jsqki2h8ygw3d5dm4bl79smah3qkh"))))
9788 (build-system emacs-build-system)
9789 (home-page "https://github.com/joostkremers/parsebib")
9790 (synopsis "Library for parsing bib files")
9791 (description
9792 "This package provides an Emacs library for parsing bib files.")
9793 (license license:gpl3+)))
9794
9795 (define-public emacs-biblio
9796 (package
9797 (name "emacs-biblio")
9798 (version "0.2")
9799 (source
9800 (origin
9801 (method git-fetch)
9802 (uri (git-reference
9803 (url "https://github.com/cpitclaudel/biblio.el.git")
9804 (commit version)))
9805 (file-name (git-file-name name version))
9806 (sha256
9807 (base32 "1gxjind6r235az59dr8liv03d8994mqb8a7m28j3c12q7p70aziz"))))
9808 (build-system emacs-build-system)
9809 (propagated-inputs
9810 `(("emacs-seq" ,emacs-seq)
9811 ("emacs-dash" ,emacs-dash)
9812 ("emacs-let-alist" ,emacs-let-alist)))
9813 (home-page "https://github.com/cpitclaudel/biblio.el")
9814 (synopsis "Browse and import bibliographic references")
9815 (description "This package provides an extensible Emacs package for
9816 browsing and fetching references.
9817
9818 @file{biblio.el} makes it easy to browse and gather bibliographic references
9819 and publications from various sources, by keywords or by DOI. References are
9820 automatically fetched from well-curated sources, and formatted as BibTeX.")
9821 (license license:gpl3+)))
9822
9823 (define-public emacs-helm-bibtex
9824 (let ((commit "8ed898fb5a68f18e9bb9973832a5c1f8abcfc463")
9825 (revision "1"))
9826 (package
9827 (name "emacs-helm-bibtex")
9828 (version (string-append "2.0.0" "-" revision "."
9829 (string-take commit 7)))
9830 (source
9831 (origin
9832 (method git-fetch)
9833 (uri (git-reference
9834 (url "https://github.com/tmalsburg/helm-bibtex.git")
9835 (commit commit)))
9836 (file-name (git-file-name name version))
9837 (sha256
9838 (base32
9839 "14lyx0vbqr97p3anzrsp7m3q0kqclyjcdwplpraim403fcklzbnz"))))
9840 (build-system emacs-build-system)
9841 (propagated-inputs
9842 `(("emacs-helm" ,emacs-helm)
9843 ("emacs-parsebib" ,emacs-parsebib)
9844 ("emacs-s" ,emacs-s)
9845 ("emacs-dash" ,emacs-dash)
9846 ("emacs-f" ,emacs-f)
9847 ("emacs-biblio" ,emacs-biblio)
9848 ("emacs-ivy" ,emacs-ivy)))
9849 (home-page "https://github.com/tmalsburg/helm-bibtex")
9850 (synopsis "Bibliography manager based on Helm")
9851 (description "This package provides bibliography manager for Emacs,
9852 based on Helm and the bibtex-completion backend.
9853
9854 Key features:
9855
9856 @itemize
9857 @item Quick access to your bibliography from within Emacs
9858 @item Powerful search capabilities
9859 @item Provides instant search results as you type
9860 @item Tightly integrated with LaTeX authoring, emails, Org mode, etc.
9861 @item Open the PDFs, URLs, or DOIs associated with an entry
9862 @item Insert LaTeX cite commands, Ebib links, or Pandoc citations,
9863 BibTeX entries, or plain text references at point, attach PDFs to emails
9864 @item Support for note taking
9865 @item Quick access to online bibliographic databases such as Pubmed,
9866 arXiv, Google Scholar, Library of Congress, etc.
9867 @item Imports BibTeX entries from CrossRef and other sources.
9868 @end itemize\n")
9869 (license license:gpl3+))))
9870
9871 (define-public emacs-ewmctrl
9872 (let ((commit "3d0217c4d6cdb5c308b6cb4293574f470d4faacf"))
9873 (package
9874 (name "emacs-ewmctrl")
9875 (version (git-version "0.0.1" "1" commit))
9876 (source
9877 (origin
9878 (method git-fetch)
9879 (uri (git-reference
9880 (url "https://github.com/flexibeast/ewmctrl.git")
9881 (commit commit)))
9882 (file-name (git-file-name name version))
9883 (sha256
9884 (base32
9885 "0ilwvx0qryv3v6xf0gxqwnfm6pf96gxap8h9g3f6z6lk9ff4n1wi"))))
9886 (build-system emacs-build-system)
9887 (arguments
9888 '(#:phases
9889 (modify-phases %standard-phases
9890 (add-after 'unpack 'patch-ewmctrl
9891 ;; This build phase makes sure ‘ewmctrl’ looks
9892 ;; for ‘wmctrl’ in the right place.
9893 (lambda _
9894 (let ((file "ewmctrl.el"))
9895 (chmod file #o644)
9896 (emacs-substitute-sexps file
9897 ("(defcustom ewmctrl-wmctrl-path" (which "wmctrl")))))))))
9898 (inputs
9899 `(("wmctrl" ,wmctrl)))
9900 (home-page "https://github.com/flexibeast/ewmctrl")
9901 (synopsis "Emacs interface to @code{wmctrl}")
9902 (description "@code{ewmctrl} provides an Emacs interface to
9903 @code{wmctrl} command-line window-management program.")
9904 (license license:gpl3+))))
9905
9906 (define-public emacs-erc-image
9907 (let ((commit "82fb3871f02e24b1e880770b9a3d187aab43d0f0")
9908 (revision "1"))
9909 (package
9910 (name "emacs-erc-image")
9911 (version (git-version "0" revision commit))
9912 (source
9913 (origin
9914 (method git-fetch)
9915 (uri (git-reference
9916 (url "https://github.com/kidd/erc-image.el")
9917 (commit commit)))
9918 (file-name (git-file-name name version))
9919 (sha256
9920 (base32
9921 "1q8mkf612fb4fjp8h4kbr107wn083iqfdgv8f80pcmil8y33dw9i"))))
9922 (build-system emacs-build-system)
9923 (home-page "https://github.com/kidd/erc-image.el")
9924 (synopsis "Show inlined images (png/jpg/gif/svg) in ERC buffers")
9925 (description "This plugin subscribes to hooks @code{erc-insert-modify-hook}
9926 and @code{erc-send-modify-hook} to download and show images.")
9927 (license license:gpl3+))))
9928
9929 (define-public emacs-helm-gtags
9930 (package
9931 (name "emacs-helm-gtags")
9932 (version "1.5.6")
9933 (source
9934 (origin
9935 (method git-fetch)
9936 (uri (git-reference
9937 (url "https://github.com/syohex/emacs-helm-gtags.git")
9938 (commit version)))
9939 (file-name (git-file-name name version))
9940 (sha256
9941 (base32 "0zyspn9rqfs3hkq8qx0q1w5qiv30ignbmycyv0vn3a6q7a5fsnhx"))))
9942 (build-system emacs-build-system)
9943 (propagated-inputs
9944 `(("emacs-helm" ,emacs-helm)))
9945 (home-page "https://github.com/syohex/emacs-helm-gtags")
9946 (synopsis "Emacs Helm interface to GNU Global")
9947 (description
9948 "@code{emacs-helm-gtags} provides a Emacs Helm interface to GNU Global.")
9949 (license license:gpl3+)))
9950
9951 (define-public emacs-list-utils
9952 (package
9953 (name "emacs-list-utils")
9954 (version "0.4.4")
9955 (source
9956 (origin
9957 (method git-fetch)
9958 (uri (git-reference
9959 (url "https://github.com/rolandwalker/list-utils.git")
9960 (commit (string-append "v" version))))
9961 (file-name (git-file-name name version))
9962 (sha256
9963 (base32 "0ql159v7sxs33yh2l080kchrj52vk34knz50cvqi3ykpb7djg3sz"))))
9964 (build-system emacs-build-system)
9965 (home-page "https://github.com/rolandwalker/list-utils")
9966 (synopsis "List-manipulation utility functions")
9967 (description "This package provides a list manipulation library for Emacs.")
9968 (license license:gpl3+)))
9969
9970 (define-public emacs-move-text
9971 (package
9972 (name "emacs-move-text")
9973 (version "2.0.8")
9974 (source
9975 (origin
9976 (method git-fetch)
9977 (uri (git-reference
9978 (url "https://github.com/emacsfodder/move-text.git")
9979 (commit version)))
9980 (file-name (git-file-name name version))
9981 (sha256
9982 (base32 "06jxk5g23822gfmwrxhc34zand3dr8p2wjh1zs3j61ibz6n0nmz1"))))
9983 (build-system emacs-build-system)
9984 (home-page "https://github.com/emacsfodder/move-text")
9985 (synopsis "Move current line or region with M-up or M-down")
9986 (description "This package provide functions to move the current line
9987 using @kbd{M-up} or @kbd{M-down} if a region is marked, it will move the
9988 region instead.")
9989 (license license:gpl3+)))
9990
9991 (define-public emacs-validate
9992 (package
9993 (name "emacs-validate")
9994 (version "1.0.5")
9995 (source (origin
9996 (method url-fetch)
9997 (uri (string-append "https://github.com/Malabarba/validate.el"
9998 "/archive/" version ".tar.gz"))
9999 (file-name (string-append name "-" version ".tar.gz"))
10000 (sha256
10001 (base32
10002 "125mbd111f1h1baw0z3fzm48y1bvaigljyzvvnqgrn0shxbj0khg"))))
10003 (build-system emacs-build-system)
10004 (home-page "https://github.com/Malabarba/validate.el")
10005 (synopsis "Emacs library for scheme validation")
10006 (description "This Emacs library provides two functions that perform
10007 schema validation.")
10008 (license license:gpl3+)))
10009
10010 (define-public emacs-rainbow-blocks
10011 (let ((commit "dd435d7bb34ff6f162a5f315df308b90b7e9f842"))
10012 (package
10013 (name "emacs-rainbow-blocks")
10014 (version (git-version "1.0.0" "1" commit))
10015 (source (origin
10016 (method git-fetch)
10017 (uri (git-reference
10018 (url "https://github.com/istib/rainbow-blocks.git")
10019 (commit commit)))
10020 (file-name (git-file-name name version))
10021 (sha256
10022 (base32
10023 "06yfb3i7wzvqrhkb61zib9xvpb5i00s4frizkzff66im05k0n795"))))
10024 (build-system emacs-build-system)
10025 (home-page "https://github.com/istib/rainbow-blocks")
10026 (synopsis "Highlight sexp blocks")
10027 (description "Rainbow-blocks is an Emacs mode that highlights blocks
10028 made of parentheses, brackets, and braces according to their depth. Each
10029 successive level is highlighted in a different color. This makes it easy to
10030 orient yourself in the code, and tell which statements are at a given level.")
10031 (license license:gpl3+))))
10032
10033 (define-public emacs-hierarchy
10034 (package
10035 (name "emacs-hierarchy")
10036 (version "0.7.0")
10037 (source
10038 (origin
10039 (method git-fetch)
10040 (uri (git-reference
10041 (url "https://github.com/DamienCassou/hierarchy.git")
10042 (commit (string-append "v" version))))
10043 (file-name (git-file-name name version))
10044 (sha256
10045 (base32 "1kykbb1sil5cycfa5aj8dhsxc5yrx1641i2np5kwdjid6ahdlz5r"))))
10046 (build-system emacs-build-system)
10047 (home-page "https://github.com/DamienCassou/hierarchy")
10048 (synopsis "Library to create and display hierarchy structures")
10049 (description "This package provides an Emacs library to create, query,
10050 navigate and display hierarchy structures.")
10051 (license license:gpl3+)))
10052
10053 (define-public emacs-tree-mode
10054 (let ((commit "b06078826d5875d74b0e7b7ac47b0d0917610534")
10055 (revision "1"))
10056 (package
10057 (name "emacs-tree-mode")
10058 (version (string-append "0.0.1" "-" revision "."
10059 (string-take commit 7)))
10060 (source
10061 (origin
10062 (method git-fetch)
10063 (uri (git-reference
10064 (url "https://github.com/emacsorphanage/tree-mode.git")
10065 (commit commit)))
10066 (file-name (git-file-name name version))
10067 (sha256
10068 (base32
10069 "13bbdhdmqg4x9yghanhr8fsbsxbnypzxdxgicz31sjjm675kpnix"))))
10070 (build-system emacs-build-system)
10071 (home-page "https://github.com/emacsorphanage/tree-mode")
10072 (synopsis "Emacs mode to manage tree widgets")
10073 (description
10074 "This package provides an Emacs library to manage tree widgets.")
10075 (license license:gpl3+))))
10076
10077 (define-public emacs-md4rd
10078 (let ((commit "c55512c2f7680db2a1e73db6bdf93adecaf40fec")
10079 (revision "1"))
10080 (package
10081 (name "emacs-md4rd")
10082 (version (string-append "0.0.2" "-" revision "."
10083 (string-take commit 7)))
10084 (source (origin
10085 (method git-fetch)
10086 (uri (git-reference
10087 (url "https://github.com/ahungry/md4rd.git")
10088 (commit commit)))
10089 (file-name (git-file-name name version))
10090 (sha256
10091 (base32
10092 "0mvv1mvsrpkrmikcpfqf2zbawnzgq33j6zjdrlv48mcw57xb2ak9"))))
10093 (propagated-inputs
10094 `(("emacs-hierarchy" ,emacs-hierarchy)
10095 ("emacs-request" ,emacs-request)
10096 ("emacs-dash" ,emacs-dash)
10097 ("emacs-s" ,emacs-s)
10098 ("emacs-tree-mode" ,emacs-tree-mode)))
10099 (build-system emacs-build-system)
10100 (home-page "https://github.com/ahungry/md4rd")
10101 (synopsis "Emacs Mode for Reddit")
10102 (description
10103 "This package allows to read Reddit from within Emacs interactively.")
10104 (license license:gpl3+))))
10105
10106 (define-public emacs-pulseaudio-control
10107 (let ((commit "7e1a87068379075a5e9ce36c64c686c03d20d379")
10108 (revision "3"))
10109 (package
10110 (name "emacs-pulseaudio-control")
10111 (version (git-version "0.0.1" revision commit))
10112 (source
10113 (origin
10114 (method git-fetch)
10115 (uri (git-reference
10116 (url "https://github.com/flexibeast/pulseaudio-control.git")
10117 (commit commit)))
10118 (file-name (git-file-name name version))
10119 (sha256
10120 (base32
10121 "0wcaqyh15x56255rrj350089z15pnwixa2vf0ly6dv0hjmzmh3mr"))))
10122 (build-system emacs-build-system)
10123 (arguments
10124 '(#:phases (modify-phases %standard-phases
10125 (add-after 'unpack 'patch-file-name
10126 (lambda* (#:key inputs #:allow-other-keys)
10127 (let ((pulseaudio (assoc-ref inputs "pulseaudio")))
10128 (chmod "pulseaudio-control.el" #o600)
10129 (emacs-substitute-variables "pulseaudio-control.el"
10130 ("pulseaudio-control-pactl-path"
10131 (string-append pulseaudio "/bin/pactl")))
10132 #t))))))
10133 (inputs `(("pulseaudio" ,pulseaudio)))
10134 (home-page "https://github.com/flexibeast/pulseaudio-control")
10135 (synopsis "Control @code{pulseaudio} from Emacs")
10136 (description
10137 "This package allows to control @code{pulseaudio} from Emacs.")
10138 (license license:gpl3+))))
10139
10140 (define-public emacs-datetime
10141 (package
10142 (name "emacs-datetime")
10143 (version "0.3")
10144 (source
10145 (origin
10146 (method git-fetch)
10147 (uri (git-reference
10148 (url "https://github.com/doublep/datetime.git")
10149 (commit version)))
10150 (file-name (git-file-name name version))
10151 (sha256
10152 (base32 "0fdswqi53qx924lib7nd9dazn0916xf1ybrh3bcn3f8cn6b8ikg5"))))
10153 (build-system emacs-build-system)
10154 (home-page "https://github.com/doublep/datetime/")
10155 (synopsis "Library to work with dates in Emacs")
10156 (description "Parsing, formatting, matching and recoding
10157 timestamps and date-time format strings library for Emacs.")
10158 (license license:gpl3+)))
10159
10160 (define-public emacs-org-mind-map
10161 (let ((commit "9d6e262bedd94daf9de269f4d56de277275677cb")
10162 (revision "1"))
10163 (package
10164 (name "emacs-org-mind-map")
10165 (version (string-append "0.0.1" "-" revision "."
10166 (string-take commit 7)))
10167 (source
10168 (origin
10169 (method git-fetch)
10170 (uri (git-reference
10171 (url "https://github.com/theodorewiles/org-mind-map.git")
10172 (commit commit)))
10173 (file-name (git-file-name name version))
10174 (sha256
10175 (base32
10176 "0jgkkgq7g64zckrmjib0hvz0qy3ynz5vz13qbmlpf096l3bb65wn"))))
10177 (propagated-inputs
10178 `(("emacs-dash" ,emacs-dash)))
10179 (build-system emacs-build-system)
10180 (home-page "https://github.com/theodorewiles/org-mind-map")
10181 (synopsis "Create Graphviz directed graphs from Org files")
10182 (description
10183 "This package creates Graphviz directed graphs from Org files.")
10184 (license license:gpl3+))))
10185
10186 (define-public emacs-npm-mode
10187 (package
10188 (name "emacs-npm-mode")
10189 (version "0.6.0")
10190 (source
10191 (origin
10192 (method git-fetch)
10193 (uri (git-reference
10194 (url "https://github.com/mojochao/npm-mode.git")
10195 (commit version)))
10196 (file-name (git-file-name name version))
10197 (sha256
10198 (base32 "1mh6nbffciw4yhv049kdhh796ysj1x21ndm3fwymhskb3dy0w1ss"))))
10199 (build-system emacs-build-system)
10200 (home-page "https://github.com/mojochao/npm-mode")
10201 (synopsis "Minor mode for working with @code{npm} projects")
10202 (description
10203 "@code{npm-mode} provides a minor mode to work with @code{npm} projects.")
10204 (license license:gpl3+)))
10205
10206 (define-public emacs-seq
10207 (package
10208 (name "emacs-seq")
10209 (version "2.20")
10210 (source
10211 (origin
10212 (method url-fetch)
10213 (uri (string-append "http://elpa.gnu.org/packages/seq-" version ".tar"))
10214 (sha256
10215 (base32
10216 "0vrpx6nnyjb0gsypknzagimlhvcvi5y1rcdkpxyqr42415zr8d0n"))))
10217 (build-system emacs-build-system)
10218 (home-page "http://elpa.gnu.org/packages/seq.html")
10219 (synopsis "Sequence manipulation functions")
10220 (description "Sequence-manipulation functions that complement basic
10221 functions provided by @file{subr.el}.")
10222 (license license:gpl3+)))
10223
10224 (define-public emacs-itail
10225 (let ((commit "6e43c20da03be3b9c6ece93b7dc3495975ec1888")
10226 (revision "1"))
10227 (package
10228 (name "emacs-itail")
10229 (version (string-append "0.0.1" "-" revision "."
10230 (string-take commit 7)))
10231 (source
10232 (origin
10233 (method git-fetch)
10234 (uri (git-reference
10235 (url "https://github.com/re5et/itail.git")
10236 (commit commit)))
10237 (file-name (git-file-name name version))
10238 (sha256
10239 (base32
10240 "044nzxh1hq41faxw3lix0wy78vfz304pjcaa5a11dqfz7q3gx5cv"))))
10241 (build-system emacs-build-system)
10242 (home-page "https://github.com/re5et/itail")
10243 (synopsis "Interactive @code{tail} Emacs mode")
10244 (description "@code{itail} provides interactive @code{tail} mode
10245 that allows you to filter the tail with unix pipes and highlight the
10246 contents of the tailed file. Works locally or on remote files using
10247 tramp.")
10248 (license license:gpl3+))))
10249
10250 (define-public emacs-loop
10251 (package
10252 (name "emacs-loop")
10253 (version "1.3")
10254 (source
10255 (origin
10256 (method git-fetch)
10257 (uri (git-reference
10258 (url "https://github.com/Wilfred/loop.el.git")
10259 (commit version)))
10260 (file-name (git-file-name name version))
10261 (sha256
10262 (base32 "1gs95xnmnn8aa4794k7h8mw1sz1nfdh9v0caqj6yvnsdnwy74n5x"))))
10263 (build-system emacs-build-system)
10264 (home-page "https://github.com/Wilfred/loop.el")
10265 (synopsis "Imperative loop structures for Emacs")
10266 (description "Loop structures familiar to users of other languages. This
10267 library adds a selection of popular loop structures as well as break and
10268 continue.")
10269 (license license:gpl3+)))
10270
10271 (define-public emacs-elisp-refs
10272 (package
10273 (name "emacs-elisp-refs")
10274 (version "1.3")
10275 (source
10276 (origin
10277 (method git-fetch)
10278 (uri (git-reference
10279 (url "https://github.com/Wilfred/elisp-refs.git")
10280 (commit version)))
10281 (file-name (git-file-name name version))
10282 (sha256
10283 (base32 "0w7k91xf69zc0zkjrw8h8sjdjf9xq9qs5zhvajhd718lzf93564b"))))
10284 (build-system emacs-build-system)
10285 (propagated-inputs
10286 `(("emacs-dash" ,emacs-dash)
10287 ("emacs-f" ,emacs-f)
10288 ("emacs-list-utils" ,emacs-list-utils)
10289 ("emacs-loop" ,emacs-loop)
10290 ("emacs-s" ,emacs-s)
10291 ("emacs-shut-up" ,emacs-shut-up)))
10292 (home-page "https://github.com/Wilfred/elisp-refs")
10293 (synopsis "Find callers of elisp functions or macros")
10294 (description "Find references to functions, macros or variables. Unlike a
10295 dumb text search, @code{elisp-refs} actually parses the code, so it's never
10296 confused by comments or @code{foo-bar} matching @code{foo}.")
10297 (license license:gpl3+)))
10298
10299 (define-public emacs-crux
10300 (let ((commit "4f5c8fefd5a6aa52e128c4a0401cc86410d6ac8f")
10301 (revision "1"))
10302 (package
10303 (name "emacs-crux")
10304 (version (string-append "0.3.0" "-" revision "."
10305 (string-take commit 7)))
10306 (source
10307 (origin
10308 (method git-fetch)
10309 (uri (git-reference
10310 (url "https://github.com/bbatsov/crux.git")
10311 (commit commit)))
10312 (file-name (git-file-name name version))
10313 (sha256
10314 (base32
10315 "1fdxvv25cs01sg6fmvmzxpzvs50i6v8n2jya60lbavxqqhi0sbxd"))))
10316 (build-system emacs-build-system)
10317 (home-page "https://github.com/bbatsov/crux")
10318 (synopsis "Collection of useful functions for Emacs")
10319 (description
10320 "@code{crux} provides a collection of useful functions for Emacs.")
10321 (license license:gpl3+))))
10322
10323 (define-public emacs-edit-server
10324 (package
10325 (name "emacs-edit-server")
10326 (version "1.13")
10327 (source
10328 (origin
10329 (method git-fetch)
10330 (uri (git-reference
10331 (url "https://github.com/stsquad/emacs_chrome.git")
10332 (commit (string-append "v" version))))
10333 (file-name (git-file-name name version))
10334 (sha256
10335 (base32 "12dp1xj09jrp0kxp9xb6cak9dn6zkyis1wfn4fnhzmxxnrd8c5rn"))))
10336 (build-system emacs-build-system)
10337 (arguments
10338 `(#:phases
10339 (modify-phases %standard-phases
10340 (add-after 'unpack 'chdir-elisp
10341 ;; Elisp directory is not in root of the source.
10342 (lambda _
10343 (chdir "servers"))))))
10344 (home-page "https://github.com/stsquad/emacs_chrome")
10345 (synopsis "Server that responds to edit requests from Chromium")
10346 (description
10347 "This package provides an edit server to respond to requests from Emacs.")
10348 (license license:gpl3+)))
10349
10350 (define-public emacs-m-buffer-el
10351 (package
10352 (name "emacs-m-buffer-el")
10353 (version "0.15")
10354 (source
10355 (origin
10356 (method url-fetch)
10357 (uri (string-append "https://github.com/phillord/m-buffer-el"
10358 "/archive/" "v" version ".tar.gz"))
10359 (file-name (string-append name "-" version ".tar.gz"))
10360 (sha256
10361 (base32
10362 "17vdcc8q37q9db98jyww1c0ivinmwfcw4l04zccfacalra63a214"))))
10363 (arguments
10364 `(#:phases
10365 (modify-phases %standard-phases
10366 (add-before 'install 'check
10367 (lambda* (#:key inputs #:allow-other-keys)
10368 (invoke "emacs" "--batch" "-L" "."
10369 "-l" "test/m-buffer-test.el"
10370 "-l" "test/m-buffer-at-test.el"
10371 "-f" "ert-run-tests-batch-and-exit"))))))
10372 (build-system emacs-build-system)
10373 (home-page "https://github.com/phillord/m-buffer-el")
10374 (synopsis "List oriented buffer operations for Emacs")
10375 (description "@code{m-buffer} provides a set of list-orientated functions
10376 for operating over the contents of Emacs buffers.")
10377 (license license:gpl3+)))
10378
10379 (define-public emacs-let-alist
10380 (package
10381 (name "emacs-let-alist")
10382 (version "1.0.5")
10383 (source
10384 (origin
10385 (method url-fetch)
10386 (uri (string-append
10387 "https://elpa.gnu.org/packages/let-alist-" version ".el"))
10388 (sha256
10389 (base32
10390 "0r7b9jni50la1m79kklml11syg8d2fmdlr83pv005sv1wh02jszw"))))
10391 (build-system emacs-build-system)
10392 (home-page "https://elpa.gnu.org/packages/let-alist.html")
10393 (synopsis "Easily let-bind values of an assoc-list by their names")
10394 (description "This package offers a single macro, @code{let-alist}. This
10395 macro takes a first argument (whose value must be an alist) and a body.")
10396 (license license:gpl3+)))
10397
10398 (define-public emacs-esup
10399 (let ((commit "a589005a9a888537deef94d6fe38a9b8790c97c7")
10400 (revision "1"))
10401 (package
10402 (name "emacs-esup")
10403 (version (string-append "0.6" "-" revision "."
10404 (string-take commit 7)))
10405 (source
10406 (origin
10407 (method git-fetch)
10408 (uri (git-reference
10409 (url "https://github.com/jschaf/esup.git")
10410 (commit commit)))
10411 (file-name (git-file-name name version))
10412 (sha256
10413 (base32
10414 "04lxmd0h7mfjjl0qghrycgff0vcv950j1wqv0dbkr61jxp64n5fv"))))
10415 ;; TODO: Add tests
10416 (build-system emacs-build-system)
10417 (home-page "https://github.com/jschaf/esup")
10418 (synopsis "Emacs start up profiler")
10419 (description "Benchmark Emacs Startup time without ever leaving
10420 your Emacs.")
10421 (license license:gpl2+))))
10422
10423 (define-public emacs-sourcemap
10424 (package
10425 (name "emacs-sourcemap")
10426 (version "0.03")
10427 (source
10428 (origin
10429 (method git-fetch)
10430 (uri (git-reference
10431 (url "https://github.com/syohex/emacs-sourcemap.git")
10432 (commit version)))
10433 (file-name (git-file-name name version))
10434 (sha256
10435 (base32 "115g2mfpbfywp8xnag4gsb50klfvplqfh928a5mabb5s8v4a3582"))))
10436 (build-system emacs-build-system)
10437 (home-page "https://github.com/syohex/emacs-sourcemap")
10438 (synopsis "Sourcemap parser")
10439 (description "Sourcemap parser")
10440 (license license:gpl3+)))
10441
10442 (define-public emacs-macrostep
10443 (let ((commit "424e3734a1ee526a1bd7b5c3cd1d3ef19d184267"))
10444 (package
10445 (name "emacs-macrostep")
10446 (version (git-version "0.9" "1" commit))
10447 (source (origin
10448 (method git-fetch)
10449 (uri (git-reference
10450 (url "https://github.com/joddie/macrostep.git")
10451 (commit commit)))
10452 (file-name (git-file-name name version))
10453 (sha256
10454 (base32
10455 "1fm40mxdn289cyzgw992223dgrjmwxn4q8svyyxfaxjrpb38jhjz"))))
10456 (build-system emacs-build-system)
10457 (arguments
10458 '(#:phases
10459 (modify-phases %standard-phases
10460 (add-before 'check 'remove-test
10461 ;; Fails because of requirement ‘/bin/sh’.
10462 (lambda _
10463 (let ((file "macrostep-test.el"))
10464 (chmod file #o644)
10465 (emacs-batch-edit-file file
10466 `(progn (progn (goto-char (point-min))
10467 (re-search-forward
10468 "(ert-deftest macrostep-expand-c-macros")
10469 (beginning-of-line)
10470 (kill-sexp))
10471 (basic-save-buffer))))))
10472 (add-before 'install 'check
10473 (lambda _
10474 (invoke "emacs" "--batch" "-L" "."
10475 "-l" "macrostep-test.el"
10476 "-f" "ert-run-tests-batch-and-exit"))))))
10477 (home-page "https://github.com/joddie/macrostep")
10478 (synopsis "Interactive macro-expander for Emacs")
10479 (description "@code{macrostep} is an Emacs minor mode for interactively
10480 stepping through the expansion of macros in Emacs Lisp source code. It lets
10481 you see exactly what happens at each step of the expansion process by
10482 pretty-printing the expanded forms inline in the source buffer, which is
10483 temporarily read-only while macro expansions are visible. You can expand and
10484 collapse macro forms one step at a time, and evaluate or instrument the
10485 expansions for debugging with Edebug as normal (but see “Bugs and known
10486 limitations”, below). Single-stepping through the expansion is particularly
10487 useful for debugging macros that expand into another macro form. These can be
10488 difficult to debug with Emacs’ built-in macroexpand, which continues expansion
10489 until the top-level form is no longer a macro call.")
10490 (license license:gpl3+))))
10491
10492 (define-public emacs-parent-mode
10493 (package
10494 (name "emacs-parent-mode")
10495 (version "2.3")
10496 (source
10497 (origin
10498 (method git-fetch)
10499 (uri (git-reference
10500 (url "https://github.com/Fanael/parent-mode.git")
10501 (commit version)))
10502 (file-name (git-file-name name version))
10503 (sha256
10504 (base32 "0i5bc7lyyrx6swqlrp9l5x72yzwi53qn6ldrfs99gh08b3yvsnni"))))
10505 (build-system emacs-build-system)
10506 (home-page "https://github.com/Fanael/parent-mode")
10507 (synopsis "Get major mode's parent modes")
10508 (description "Get major mode's parent modes")
10509 (license license:gpl3+)))
10510
10511 (define-public emacs-lacarte
10512 (package
10513 (name "emacs-lacarte")
10514 (version "0.1")
10515 (source (origin
10516 (method url-fetch)
10517 (uri "https://www.emacswiki.org/emacs/download/lacarte.el")
10518 (sha256
10519 (base32
10520 "1sbmk37ljq5j7dsw5c37sbxvlfgdqswh7bi4dknyjzfxlq50f4am"))))
10521 (build-system emacs-build-system)
10522 (home-page "https://www.emacswiki.org/emacs/lacarte.el")
10523 (synopsis "Execute menu items as commands, with completion")
10524 (description "Execute menu items as commands, with completion.")
10525 (license license:gpl3)))
10526
10527 (define-public emacs-isearch-prop
10528 (let ((commit "5e9dc44cf582d998aaa73ccd4d07cbda01248156")
10529 (revision "1"))
10530 (package
10531 (name "emacs-isearch-prop")
10532 (version (git-version "0" revision commit))
10533 (source
10534 (origin
10535 (method git-fetch)
10536 (uri (git-reference
10537 (url "https://github.com/emacsmirror/isearch-prop.git")
10538 (commit commit)))
10539 (file-name (git-file-name name version))
10540 (sha256
10541 (base32
10542 "1xawppy705ybsgx566zvj8zk2aajq0sqvhvfs7nijqq32lx0a2zl"))))
10543 (build-system emacs-build-system)
10544 (home-page "https://www.emacswiki.org/emacs/isearch-prop.el")
10545 (synopsis "Extensions to @code{isearch.el}")
10546 (description "The Emacs library @code{isearch-prop.el} lets you search within
10547 contexts. You can limit incremental search to a set of zones of
10548 buffer text, search contexts that in effect constitute a multi-region.
10549 These zones can be defined in various ways, including some ways
10550 provided specially by this library.")
10551 (license license:gpl3+))))
10552
10553 (define-public emacs-company-lua
10554 (let ((commit "0be8122f3adf57ad27953bf4b03545d6298d3da4"))
10555 (package
10556 (name "emacs-company-lua")
10557 (version (git-version "0.1" "1" commit))
10558 (source
10559 (origin
10560 (method git-fetch)
10561 (uri (git-reference
10562 (url "https://github.com/ptrv/company-lua.git")
10563 (commit commit)))
10564 (file-name (git-file-name name version))
10565 (sha256
10566 (base32
10567 "1d9i165apgmwns7b2fd5wcpjpkah3dyj20v5sb8ynvz6qhhr5r9c"))))
10568 (build-system emacs-build-system)
10569 (propagated-inputs
10570 `(("emacs-company" ,emacs-company)
10571 ("emacs-s" ,emacs-s)
10572 ("emacs-f" ,emacs-f)
10573 ("emacs-lua-mode" ,emacs-lua-mode)))
10574 (home-page "https://github.com/ptrv/company-lua")
10575 (synopsis "Company backend for Lua")
10576 (description
10577 "This package provides Company backend for Lua programming language.")
10578 (license license:gpl3+))))
10579
10580 (define-public emacs-beginend
10581 (package
10582 (name "emacs-beginend")
10583 (version "2.0.0")
10584 (source
10585 (origin
10586 (method git-fetch)
10587 (uri (git-reference
10588 (url "https://github.com/DamienCassou/beginend.git")
10589 (commit (string-append "v" version))))
10590 (file-name (git-file-name name version))
10591 (sha256
10592 (base32 "1jbhg73g1rrkbwql5vi2b0ys9avfazmwzwgd90gkzwavw0ch9cvl"))))
10593 ;; TODO: Run tests.
10594 (build-system emacs-build-system)
10595 (inputs
10596 `(("emacs-undercover" ,emacs-undercover))) ; For tests.
10597 (home-page "https://github.com/DamienCassou/beginend")
10598 (synopsis "Redefine @code{M-<} and @code{M->} for Emacs modes")
10599 (description "@code{beginend} redefines @code{M-<} and @code{M->}
10600 keybindings for Emacs modes so that point moves to meaningful
10601 locations. Redefined keys are still accessible by pressing the same
10602 key again.")
10603 (license license:gpl3+)))
10604
10605 (define-public emacs-mbsync
10606 (let ((commit "42077e83ae2db778ce0f8e22f8357b40355526b3")
10607 (revision "1"))
10608 (package
10609 (name "emacs-mbsync")
10610 (version (string-append "0.0.1" "-" revision "."
10611 (string-take commit 7)))
10612 (source
10613 (origin
10614 (method git-fetch)
10615 (uri (git-reference
10616 (url "https://github.com/dimitri/mbsync-el.git")
10617 (commit commit)))
10618 (file-name (git-file-name name version))
10619 (sha256
10620 (base32
10621 "0yj93y2mpxlir8x73znlg1slxlv4blm1vjv5h2w3j8lxg8bxvmn6"))))
10622 (build-system emacs-build-system)
10623 (home-page "https://github.com/dimitri/mbsync-el")
10624 (synopsis "Interface to mbsync for Emacs")
10625 (description "This package allows to call the @code{mbsync} from
10626 within Emacs.")
10627 (license license:gpl3+))))
10628
10629 (define-public emacs-ibuffer-projectile
10630 (let ((commit "c18ac540ee46cb759fc5df18747f6e8d23563011")
10631 (revision "1"))
10632 (package
10633 (name "emacs-ibuffer-projectile")
10634 (version (string-append "0.2" "-" revision "."
10635 (string-take commit 7)))
10636 (source
10637 (origin
10638 (method git-fetch)
10639 (uri (git-reference
10640 (url "https://github.com/purcell/ibuffer-projectile.git")
10641 (commit commit)))
10642 (file-name (git-file-name name version))
10643 (sha256
10644 (base32
10645 "1nd26cwwdpnwj0g4w393rd59klpyr6wqrnyr6scmwb5d06bsm44n"))))
10646 (build-system emacs-build-system)
10647 (propagated-inputs
10648 `(("emacs-projectile" ,emacs-projectile)))
10649 (home-page "https://github.com/purcell/ibuffer-projectile")
10650 (synopsis "Group ibuffer's list by projectile root")
10651 (description "Adds functionality to Emacs @code{ibuffer} for
10652 grouping buffers by their projectile root directory.")
10653 (license license:gpl3+))))
10654
10655 (define-public emacs-helm-mode-manager
10656 (package
10657 (name "emacs-helm-mode-manager")
10658 (version "1.0.0")
10659 (source
10660 (origin
10661 (method url-fetch)
10662 (uri (string-append "https://github.com/istib/helm-mode-manager/"
10663 "archive/" version ".tar.gz"))
10664 (file-name (string-append name "-" version ".tar.gz"))
10665 (sha256
10666 (base32
10667 "0wllj321z16hgrx0ddwzk5wz4mnnx5am7w5nclqclfc5dfdn92wm"))))
10668 (build-system emacs-build-system)
10669 (propagated-inputs
10670 `(("emacs-helm" ,emacs-helm)))
10671 (home-page "https://github.com/istib/helm-mode-manager/")
10672 (synopsis "Switch and toggle Emacs major and minor modes using Helm")
10673 (description "This package provides a Helm interface for toggling Emacs
10674 major or minor mode.
10675
10676 @itemize
10677 @item @code{helm-switch-major-mode} list of all major modes
10678 @item @code{helm-enable-minor-mode} list of all inactive minor modes
10679 @item @code{helm-disable-minor-mode} list of all ACTIVE minor modes
10680 @end itemize\n
10681
10682 Hitting @code{RET} enables the mode, @code{C-z} shows the mode
10683 documentation.")
10684 (license license:gpl3+)))
10685
10686 (define-public emacs-hy-mode
10687 (package
10688 (name "emacs-hy-mode")
10689 (version "1.0.3")
10690 (source
10691 (origin
10692 (method git-fetch)
10693 (uri (git-reference
10694 (url "https://github.com/hylang/hy-mode.git")
10695 (commit (string-append "v" version))))
10696 (file-name (git-file-name name version))
10697 (sha256
10698 (base32 "1jxximiznz7fw9ys5k6plw85zrbzvxidql7py1fdi425fdp4058z"))))
10699 (build-system emacs-build-system)
10700 (propagated-inputs
10701 `(("emacs-dash" ,emacs-dash)
10702 ("emacs-s" ,emacs-s)))
10703 (home-page "https://github.com/hylang/hy-mode")
10704 (synopsis "Major mode for Hylang")
10705 (description "This package provides a major mode for Hylang.")
10706 (license license:gpl3+)))
10707
10708 (define-public emacs-web-beautify
10709 (package
10710 (name "emacs-web-beautify")
10711 (version "0.3.2")
10712 (source
10713 (origin
10714 (method git-fetch)
10715 (uri (git-reference
10716 (url "https://github.com/yasuyk/web-beautify.git")
10717 (commit version)))
10718 (file-name (git-file-name name version))
10719 (sha256
10720 (base32 "0vms7zz3ym53wf1zdrkbf2ky2xjr1v134ngsd0jr8azyi8siw84d"))))
10721 (build-system emacs-build-system)
10722 (home-page "https://github.com/yasuyk/web-beautify")
10723 (synopsis "Format HTML, CSS and JavaScript, JSON")
10724 (description "This package provides an Emacs functions to format HTML,
10725 CSS, JavaScript, JSON.")
10726 (license license:gpl3+)))
10727
10728 (define-public emacs-helm-shell-history
10729 (let ((commit "110d3c35c52fe4b89b29e79ea4c8626bce7266a1"))
10730 (package
10731 (name "emacs-helm-shell-history")
10732 (version (git-version "0.1" "1" commit))
10733 (source
10734 (origin
10735 (method git-fetch)
10736 (uri (git-reference
10737 (url "https://github.com/yuutayamada/helm-shell-history.git")
10738 (commit commit)))
10739 (file-name (git-file-name name version))
10740 (sha256
10741 (base32
10742 "18fkjcz69g4dyaxhf9j8svr5x6dhsdnglddwisis8hdn504scpfj"))))
10743 (build-system emacs-build-system)
10744 (arguments
10745 '(#:phases
10746 (modify-phases %standard-phases
10747 (add-before 'check 'patch-helm-shell-history-file
10748 (lambda _
10749 (let ((file "helm-shell-history.el"))
10750 (chmod file #o644)
10751 (emacs-substitute-sexps file
10752 ("(defvar helm-shell-history-file"
10753 `(expand-file-name "~/.bash_history"))))
10754 #t)))))
10755 (propagated-inputs
10756 `(("emacs-helm" ,emacs-helm)))
10757 (home-page "https://github.com/yuutayamada/helm-shell-history")
10758 (synopsis "Find shell history with Emacs Helm")
10759 (description "This package provides an Emacs Helm interface to search
10760 throw a shell history.")
10761 (license license:gpl3+))))
10762
10763 (define-public emacs-discover-my-major
10764 (package
10765 (name "emacs-discover-my-major")
10766 (version "1.0")
10767 (source
10768 (origin
10769 (method url-fetch)
10770 (uri
10771 (string-append "https://github.com/steckerhalter/discover-my-major"
10772 "/archive/" version ".tar.gz"))
10773 (file-name (string-append name "-" version ".tar.gz"))
10774 (sha256
10775 (base32
10776 "0nah41f92rrl2l405kpqr6iaks11jyclgl4z7ilfymbr4ifmsiyl"))))
10777 (build-system emacs-build-system)
10778 (propagated-inputs
10779 `(("emacs-makey" ,emacs-makey)))
10780 (home-page "https://github.com/steckerhalter/discover-my-major")
10781 (synopsis "Discover key bindings for the current Emacs major mode")
10782 (description "This package provides allows to discover key bindings and
10783 their meaning for the current Emacs major-mode.")
10784 (license license:gpl3+)))
10785
10786 (define-public emacs-org-ref
10787 (let ((commit "8c9b5d7efb9f0c1ad5186b8203bdd017f4249129")
10788 (revision "1"))
10789 (package
10790 (name "emacs-org-ref")
10791 (version (string-append "1.1.1" "-" revision "."
10792 (string-take commit 7)))
10793 (source
10794 (origin
10795 (method git-fetch)
10796 (uri (git-reference
10797 (url "https://github.com/jkitchin/org-ref.git")
10798 (commit commit)))
10799 (file-name (git-file-name name version))
10800 (sha256
10801 (base32
10802 "1rxz0bjdsayk0slv23i07d9xhj2m7s4hsc81wc2d1cs52dkr5zmz"))))
10803 (build-system emacs-build-system)
10804 (propagated-inputs
10805 `(("emacs-dash" ,emacs-dash)
10806 ("emacs-helm" ,emacs-helm)
10807 ("emacs-helm-bibtex" ,emacs-helm-bibtex)
10808 ("emacs-ivy" ,emacs-ivy)
10809 ("emacs-hydra" ,emacs-hydra)
10810 ("emacs-key-chord" ,emacs-key-chord)
10811 ("emacs-s" ,emacs-s)
10812 ("emacs-f" ,emacs-f)
10813 ("emacs-pdf-tools" ,emacs-pdf-tools)))
10814 (home-page "https://github.com/jkitchin/org-ref")
10815 (synopsis "Citations, cross-references and bibliographies in org-mode")
10816 (description
10817 "Lisp code to setup bibliography, cite, ref and label org-mode links.
10818 Also sets up reftex and helm for org-mode citations. The links are
10819 clickable and do things that are useful.
10820
10821 The default setup uses helm-bibtex.
10822
10823 You should really read org-ref.org in this package for details.")
10824 (license license:gpl3+))))
10825
10826 ;; This project is unmaintained. Please use emacs-org-re-reveal instead.
10827 (define-public emacs-org-reveal
10828 (let ((commit "1cdd088ec5fab631c564dca7f9f74fd3e9b7d4d4"))
10829 (package
10830 (name "emacs-org-reveal")
10831 (version (git-version "0.1" "2" commit))
10832 (source (origin
10833 (method git-fetch)
10834 (uri (git-reference
10835 (url "https://github.com/yjwen/org-reveal.git")
10836 (commit commit)))
10837 (file-name (git-file-name name version))
10838 (sha256
10839 (base32
10840 "1vjxjadq2i74p96y9jxnqj1yb86fsgxzmn7bjgnb88ay6nvc1l72"))))
10841 (build-system emacs-build-system)
10842 (home-page "https://github.com/yjwen/org-reveal")
10843 (synopsis "Org and Reveal.js powered HTML presentation tool")
10844 (description "Org-Reveal is a command@{org-mode} extension that allows
10845 to create beautiful presentations (slides) with 3D effects from simple but
10846 powerful Org contents.")
10847 (license license:gpl3+))))
10848
10849 (define-public emacs-org-re-reveal
10850 (package
10851 (name "emacs-org-re-reveal")
10852 (version "1.0.3")
10853 (source (origin
10854 (method git-fetch)
10855 (uri (git-reference
10856 (url "https://gitlab.com/oer/org-re-reveal.git")
10857 (commit "50cc6574c77f12d423f6cd096d8f76feb3673abc")))
10858 (file-name (git-file-name name version))
10859 (sha256
10860 (base32
10861 "1v3z30gpimg4spf6zzqwp9b597zxk89h0vpq6xp58js4rjg4ixk8"))))
10862 (build-system emacs-build-system)
10863 (propagated-inputs
10864 `(("emacs-htmlize" ,emacs-htmlize)
10865 ("emacs-org" ,emacs-org)))
10866 (home-page "https://gitlab.com/oer/org-re-reveal")
10867 (synopsis "Build HTML presentations with reveal.js from Org source files")
10868 (description "This project started as fork of org-reveal. It provides an
10869 export back-end for HTML presentations with reveal.js from Org mode source
10870 files.")
10871 (license license:gpl3+)))
10872
10873 (define-public emacs-add-hooks
10874 (package
10875 (name "emacs-add-hooks")
10876 (version "3.1.1")
10877 (source
10878 (origin
10879 (method git-fetch)
10880 (uri (git-reference
10881 (url "https://github.com/nickmccurdy/add-hooks.git")
10882 (commit version)))
10883 (file-name (git-file-name name version))
10884 (sha256
10885 (base32 "1jv9fpcsm572zg0j1mbpbfkqgdlqapy89xhhj19pswkhjns1y2wl"))))
10886 (build-system emacs-build-system)
10887 (home-page "https://github.com/nickmccurdy/add-hooks/")
10888 (synopsis "Emacs function for setting multiple hooks")
10889 (description "This package provides a @code{add-hooks} function tidies up
10890 duplicate hook and function names further into a single declarative call.")
10891 (license license:gpl3+)))
10892
10893 (define-public emacs-fancy-narrow
10894 (package
10895 (name "emacs-fancy-narrow")
10896 (version "0.9.5")
10897 (source
10898 (origin
10899 (method git-fetch)
10900 (uri (git-reference
10901 (url "https://github.com/Malabarba/fancy-narrow.git")
10902 (commit version)))
10903 (file-name (git-file-name name version))
10904 (sha256
10905 (base32 "0vcr1gnqawvc1yclqs23jvxm6bqix8kpflf1c7znb0wzxmz9kx7y"))))
10906 (build-system emacs-build-system)
10907 (home-page "https://github.com/Malabarba/fancy-narrow/releases")
10908 (synopsis "Imitate @code{narrow-to-region} with more eye candy")
10909 (description
10910 "Unlike @code{narrow-to-region}, which completely hides text outside
10911 the narrowed region, this package simply de-emphasizes the text, makes it
10912 read-only, and makes it unreachable. This leads to a much more natural
10913 feeling where the region stays static (instead of being brutally moved to a
10914 blank slate) and is clearly highlighted with respect to the rest of the
10915 buffer.")
10916 (license license:gpl2+)))
10917
10918 (define-public emacs-know-your-http-well
10919 (package
10920 (name "emacs-know-your-http-well")
10921 (version "0.5.0")
10922 (source
10923 (origin
10924 (method git-fetch)
10925 (uri (git-reference
10926 (url "https://github.com/for-GET/know-your-http-well.git")
10927 (commit (string-append "v" version))))
10928 (file-name (git-file-name name version))
10929 (sha256
10930 (base32 "1lppggnii2r9fvlhh33gbdrwb50za8lnalavlq9s86ngndn4n94k"))))
10931 (arguments
10932 `(#:phases
10933 (modify-phases %standard-phases
10934 (add-after 'unpack 'install-json-files
10935 (lambda* (#:key outputs #:allow-other-keys)
10936 (for-each (lambda (directory)
10937 (copy-recursively directory
10938 (string-append
10939 (assoc-ref outputs "out")
10940 directory)))
10941 '("js" "json"))))
10942 (add-after 'unpack 'chdir-elisp
10943 ;; Elisp directory is not in root of the source.
10944 (lambda _
10945 (chdir "emacs"))))))
10946 (build-system emacs-build-system)
10947 (home-page "https://github.com/for-GET/know-your-http-well")
10948 (synopsis "Meaning of HTTP headers codes")
10949 (description "Meaning of HTTP headers codes.")
10950 (license license:gpl3+)))
10951
10952 (define-public emacs-navi-mode
10953 (let ((commit "c1d38e8237f4e14af020a0b7d4f118ea198ab674"))
10954 (package
10955 (name "emacs-navi-mode")
10956 (version (git-version "2.0" "1" commit))
10957 (source
10958 (origin
10959 (method git-fetch)
10960 (uri (git-reference
10961 (url "https://github.com/alphapapa/navi.git")
10962 (commit commit)))
10963 (file-name (git-file-name name version))
10964 (sha256
10965 (base32
10966 "0jj5spk14hgb7zb1cd2n8whcw4k1kd5zb6llwj96v178yaws7l8k"))))
10967 (build-system emacs-build-system)
10968 (propagated-inputs
10969 `(("emacs-outshine" ,emacs-outshine)
10970 ("emacs-outorg" ,emacs-outorg)))
10971 (home-page "https://github.com/alphapapa/navi")
10972 (synopsis "Emacs major-mode for easy buffer-navigation")
10973 (description
10974 "This package provides an Emacs major-mode for easy buffer-navigation")
10975 (license license:gpl3+))))
10976
10977 (define-public emacs-download-region
10978 (let ((commit "eb9e557529a73b4cfc8281c70dd0d95db333fffa")
10979 (revision "1"))
10980 (package
10981 (name "emacs-download-region")
10982 (version (string-append "0.0.1" "-" revision "."
10983 (string-take commit 7)))
10984 (source
10985 (origin
10986 (method git-fetch)
10987 (uri (git-reference
10988 (url "https://github.com/zk-phi/download-region.git")
10989 (commit commit)))
10990 (file-name (git-file-name name version))
10991 (sha256
10992 (base32
10993 "0v52djg39b6k2snizd9x0qc009ws5y0ywqsfwhqgcbs5ymzh7dsc"))))
10994 (build-system emacs-build-system)
10995 (home-page "https://github.com/zk-phi/download-region")
10996 (synopsis "In buffer download manager for Emacs")
10997 (description "@code{download-region} provides in buffer
10998 downloading manager for Emacs.")
10999 (license license:gpl3+))))
11000
11001 (define-public emacs-helpful
11002 (package
11003 (name "emacs-helpful")
11004 (version "0.15")
11005 (source
11006 (origin
11007 (method git-fetch)
11008 (uri (git-reference
11009 (url "https://github.com/Wilfred/helpful.git")
11010 (commit version)))
11011 (file-name (git-file-name name version))
11012 (sha256
11013 (base32 "1rqnx7672175288yqaslw0d9vw04j6psw7mys8j9zcp2i72hlvkn"))))
11014 (build-system emacs-build-system)
11015 (propagated-inputs
11016 `(("emacs-elisp-refs" ,emacs-elisp-refs)))
11017 (home-page "https://github.com/Wilfred/helpful")
11018 (synopsis "More contextual information in Emacs help")
11019 (description "@code{helpful} is an alternative to the built-in Emacs help
11020 that provides much more contextual information.
11021
11022 @itemize
11023 @item Show the source code for interactively defined functions (unlike the
11024 built-in Help).
11025 @item Fall back to the raw sexp if no source is available.
11026 @item Show where a function is being called.
11027 @item Docstrings will Highlight the summary (the first sentence), include
11028 cross-references, hide superfluous puncuation.
11029 @item Show you the properties that have been applied to the current
11030 symbol. This provides visibility of features like edebug or byte-code
11031 optimisation.
11032 @item Provide a separate @code{helpful-command} function to view interactive
11033 functions.
11034 @item Display any keybindings that apply to interactive functions.
11035 @item Trace, disassemble functions from inside Helpful. This is discoverable
11036 and doesn't require memorisation of commands.
11037 @end itemize\n")
11038 (license license:gpl3+)))
11039
11040 (define-public emacs-logview
11041 (package
11042 (name "emacs-logview")
11043 (version "0.9")
11044 (source
11045 (origin
11046 (method git-fetch)
11047 (uri (git-reference
11048 (url "https://github.com/doublep/logview.git")
11049 (commit version)))
11050 (file-name (git-file-name name version))
11051 (sha256
11052 (base32 "1qhzs75pxnaksbhczmpdcy2zmrqavlzkzss7ik5nv2wf9vs0sn02"))))
11053 (propagated-inputs
11054 `(("emacs-datetime" ,emacs-datetime)))
11055 (build-system emacs-build-system)
11056 (home-page "https://github.com/doublep/logview/")
11057 (synopsis "Emacs mode for viewing log files")
11058 (description "@code{logview} provides an Emacs mode to view log files.")
11059 (license license:gpl3+)))
11060
11061 (define-public emacs-suggest
11062 (package
11063 (name "emacs-suggest")
11064 (version "0.7")
11065 (home-page "https://github.com/Wilfred/suggest.el")
11066 (source
11067 (origin
11068 (method git-fetch)
11069 (uri (git-reference
11070 (url home-page)
11071 (commit version)))
11072 (file-name (git-file-name name version))
11073 (sha256
11074 (base32
11075 "01v8plska5d3g19sb1m4ph1i3ayprfzk8mi6mpabjy6zad397xjl"))))
11076 (build-system emacs-build-system)
11077 (propagated-inputs
11078 `(("emacs-loop" ,emacs-loop)
11079 ("emacs-dash" ,emacs-dash)
11080 ("emacs-s" ,emacs-s)
11081 ("emacs-f" ,emacs-f)
11082 ("emacs-spinner" ,emacs-spinner)
11083 ("emacs-shut-up" ,emacs-shut-up)))
11084 (synopsis "Suggest Elisp functions that give the output requested")
11085 (description "Suggest.el will find functions that give the output
11086 requested. It's a great way of exploring list, string and arithmetic
11087 functions.")
11088 (license license:gpl3+)))
11089
11090 (define-public emacs-benchmark-init
11091 (package
11092 (name "emacs-benchmark-init")
11093 (version "1.0")
11094 (source
11095 (origin
11096 (method git-fetch)
11097 (uri (git-reference
11098 (url "https://github.com/dholm/benchmark-init-el.git")
11099 (commit version)))
11100 (file-name (git-file-name name version))
11101 (sha256
11102 (base32 "1kyn1izm5sbqbp9whnhk9dn3yc7zy8bz5san5w3ivi3rpx15fh94"))))
11103 (build-system emacs-build-system)
11104 (home-page "https://github.com/dholm/benchmark-init-el")
11105 (synopsis "Benchmark Emacs @code{require} and @code{load} calls")
11106 (description "@code{benchmark-init} provides a way to keep track of where
11107 time is being spent during Emacs startup in order to optimize startup time.")
11108 (license license:gpl3+)))
11109
11110 (define-public emacs-emms-player-simple-mpv
11111 ;; A new mpv backend is included in Emms from 5.0.
11112 (deprecated-package "emacs-emms-player-simple-mpv" emacs-emms))
11113
11114 (define-public emacs-magit-gerrit
11115 (let ((version "0.3")
11116 (revision "1")
11117 (commit "ece6f369694aca17f3ac166ed2801b432acfe20d"))
11118 (package
11119 (name "emacs-magit-gerrit")
11120 (version (git-version version revision commit))
11121 (source (origin
11122 (method git-fetch)
11123 (uri (git-reference
11124 (url "https://github.com/terranpro/magit-gerrit.git")
11125 (commit commit)))
11126 (file-name (git-file-name name version))
11127 (sha256
11128 (base32
11129 "0mms0gxv9a3ns8lk5k2wjibm3088y1cmpr3axjdh6ppv7r5wdvii"))))
11130 (build-system emacs-build-system)
11131 (propagated-inputs
11132 `(("emacs-magit" ,emacs-magit)))
11133 (home-page "https://github.com/terranpro/magit-gerrit")
11134 (synopsis "Magit extension for Gerrit")
11135 (description "This Magit extension provides integration with Gerrit,
11136 which makes it possible to conduct Gerrit code reviews directly from within
11137 Emacs.")
11138 (license license:gpl3+))))
11139
11140 (define-public emacs-magit-org-todos-el
11141 (let ((commit "df206287737b9671f2e36ae7b1474ebbe9940d2a"))
11142 (package
11143 (name "emacs-magit-org-todos-el")
11144 (version (git-version "0.1.1" "1" commit))
11145 (source
11146 (origin
11147 (method git-fetch)
11148 (uri (git-reference
11149 (url "https://github.com/danielma/magit-org-todos.el.git")
11150 (commit commit)))
11151 (file-name (git-file-name name version))
11152 (sha256
11153 (base32
11154 "0kdp7k7jnnrkhsg0xh1c3h7iz0vgi120gf5xwl1hxy61avivnxrn"))))
11155 (propagated-inputs
11156 `(("magit" ,emacs-magit)))
11157 (build-system emacs-build-system)
11158 (home-page "https://github.com/danielma/magit-org-todos.el")
11159 (synopsis "Get todo.org into Emacs Magit status")
11160 (description "This package allows you to get @file{todo.org} into your
11161 magit status.
11162
11163 If you have a @file{todo.org} file with @code{TODO} items in the root of your
11164 repository, @code{magit-org-todos} will create a section in your Magit status
11165 buffer with each of your todos.")
11166 (license license:gpl3+))))
11167
11168 (define-public emacs-f3
11169 (package
11170 (name "emacs-f3")
11171 (version "0.1")
11172 (source
11173 (origin
11174 (method git-fetch)
11175 (uri (git-reference
11176 (url "https://github.com/cosmicexplorer/f3.git")
11177 (commit version)))
11178 (file-name (git-file-name name version))
11179 (sha256
11180 (base32 "1qg48zbjdjqimw4516ymrsilz41zkib9321q0caf9474s9xyp2bi"))))
11181 (build-system emacs-build-system)
11182 (propagated-inputs
11183 `(("emacs-helm" ,emacs-helm)))
11184 (home-page "https://github.com/cosmicexplorer/f3")
11185 (synopsis "Fantastic File Finder for Emacs")
11186 (description
11187 "The Fantastic File Finder for Emacs. Find files fast, using helm.")
11188 (license license:gpl3+)))
11189
11190 (define-public emacs-lice-el
11191 (let ((commit "4339929927c62bd636f89bb39ea999d18d269250"))
11192 (package
11193 (name "emacs-lice-el")
11194 (version (git-version "0.2" "1" commit))
11195 (source (origin
11196 (method git-fetch)
11197 (uri (git-reference
11198 (url "https://github.com/buzztaiki/lice-el.git")
11199 (commit commit)))
11200 (file-name (git-file-name name version))
11201 (sha256
11202 (base32
11203 "0879z761b7gajkhq176ps745xpdrivch349crransv8fnsc759yb"))))
11204 (build-system emacs-build-system)
11205 (home-page "https://github.com/buzztaiki/lice-el")
11206 (synopsis "License and header template for Emacs")
11207 (description "@code{lice.el} provides following features:
11208
11209 @itemize
11210 @item License template management.
11211 @item File header insertion.
11212 @end itemize\n")
11213 (license license:gpl3+))))
11214
11215 (define-public emacs-academic-phrases
11216 (let ((commit "0823ed8c24b26c32f909b896a469833ec4d7b656"))
11217 (package
11218 (name "emacs-academic-phrases")
11219 (version (git-version "0.1" "1" commit))
11220 (source
11221 (origin
11222 (method git-fetch)
11223 (uri (git-reference
11224 (url "https://github.com/nashamri/academic-phrases.git")
11225 (commit commit)))
11226 (file-name (git-file-name name version))
11227 (sha256
11228 (base32
11229 "0qfzsq8jh05w4zkr0cvq3i1hdn97bq344vcqjg46sib26x3wpz6r"))))
11230 (build-system emacs-build-system)
11231 (propagated-inputs
11232 `(("emacs-dash" ,emacs-dash)
11233 ("emacs-s" ,emacs-s)
11234 ("emacs-ht" ,emacs-ht)))
11235 (home-page "https://github.com/nashamri/academic-phrases")
11236 (synopsis "Bypass that mental block when writing your papers")
11237 (description
11238 "When writing your academic paper, you might get stuck trying to find
11239 the right phrase that captures your intention. This package tries to
11240 alleviate that problem by presenting you with a list of phrases organized by
11241 the topic or by the paper section that you are writing. This package has
11242 around 600 phrases so far.
11243
11244 Using this package is easy, just call @code{academic-phrases} to get a list of
11245 phrases organized by topic, or call @code{academic-phrases-by-section} to
11246 browse the phrases by the paper section and fill-in the blanks if required.")
11247 (license license:gpl3+))))
11248
11249 (define-public emacs-auto-yasnippet
11250 (let ((commit "d1ccfea87312c6dd8cf8501ab5b71b1d3d44d95b"))
11251 (package
11252 (name "emacs-auto-yasnippet")
11253 (version (git-version "0.3.0" "1" commit))
11254 (source (origin
11255 (method git-fetch)
11256 (uri (git-reference
11257 (url "https://github.com/abo-abo/auto-yasnippet.git")
11258 (commit commit)))
11259 (file-name (git-file-name name version))
11260 (sha256
11261 (base32
11262 "1i8k2qiyzd5rq0zplk4xb5nfa5mp0ibxbzwqj6c7877waq7244xk"))))
11263 (build-system emacs-build-system)
11264 (arguments
11265 '(#:phases
11266 (modify-phases %standard-phases
11267 (add-before 'install 'check
11268 (lambda _
11269 (invoke "emacs" "--batch"
11270 "-l" "auto-yasnippet.el"
11271 "-l" "auto-yasnippet-test.el"
11272 "-f" "ert-run-tests-batch-and-exit"))))))
11273 (propagated-inputs
11274 `(("emacs-yasnippet" ,emacs-yasnippet)))
11275 (home-page "https://github.com/abo-abo/auto-yasnippet/")
11276 (synopsis "Quickly create disposable yasnippets")
11277 (description "This package provides a hybrid of keyboard macros and
11278 yasnippet. You create the snippet on the go, usually to be used just in the
11279 one place. It's fast, because you're not leaving the current buffer, and all
11280 you do is enter the code you'd enter anyway, just placing ~ where you'd like
11281 yasnippet fields and mirrors to be.")
11282 (license license:gpl3+))))
11283
11284 (define-public emacs-highlight-numbers
11285 (package
11286 (name "emacs-highlight-numbers")
11287 (version "0.2.3")
11288 (source
11289 (origin
11290 (method git-fetch)
11291 (uri (git-reference
11292 (url "https://github.com/Fanael/highlight-numbers.git")
11293 (commit version)))
11294 (file-name (git-file-name name version))
11295 (sha256
11296 (base32 "1r07mpyr7rhd7bkg778hx6vbhb4n9ixgzkpszhgks7ri6ia38pj8"))))
11297 (build-system emacs-build-system)
11298 (propagated-inputs
11299 `(("emacs-parent-mode" ,emacs-parent-mode)))
11300 (home-page "https://github.com/Fanael/highlight-numbers")
11301 (synopsis "Highlight numbers in source code")
11302 (description "@code{highlight-numbers-mode} provides a minor mode for
11303 syntax highlighting of numeric literals in source code.
11304
11305 It s customizable: it's easy to add or redefine what exactly consitutes a
11306 \"number\" in given major mode. See @code{highlight-numbers-modelist}.")
11307 (license license:gpl3+)))
11308
11309 (define-public emacs-darkroom
11310 (package
11311 (name "emacs-darkroom")
11312 (version "0.1")
11313 (source (origin
11314 (method url-fetch)
11315 (uri (string-append "https://elpa.gnu.org/packages/darkroom-"
11316 version ".el"))
11317 (sha256
11318 (base32
11319 "0fif8fm1h7x7g16949shfnaik5f5488clsvkf8bi5izpqp3vi6ak"))))
11320 (build-system emacs-build-system)
11321 (home-page "https://elpa.gnu.org/packages/darkroom.html")
11322 (synopsis "Remove visual distractions and focus on writing")
11323 (description "@code{darkroom-mode} makes visual distractions disappear.
11324 The mode-line is temporarily elided, text is enlarged and margins are adjusted
11325 so that it's centered on the window.
11326
11327 @code{darkroom-tentative-mode} is similar, but it doesn't immediately turn-on
11328 @code{darkroom-mode}, unless the current buffer lives in the sole window of
11329 the Emacs frame (i.e. all other windows are deleted). Whenever the frame is
11330 split to display more windows and more buffers, the buffer exits
11331 @code{darkroom-mode}. Whenever they are deleted, the buffer re-enters
11332 @code{darkroom-mode}.")
11333 (license license:gpl3+)))
11334
11335 (define-public emacs-rsw-elisp
11336 (package
11337 (name "emacs-rsw-elisp")
11338 (version "1.0.5")
11339 (source (origin
11340 (method url-fetch)
11341 (uri (string-append "https://github.com/rswgnu/rsw-elisp"
11342 "/archive/" version ".tar.gz"))
11343 (file-name (string-append name "-" version ".tar.gz"))
11344 (sha256
11345 (base32
11346 "1jnn7xfwl3wxc87v44ccsf1wwp80par3xgcvfb1icd6zchjmlcps"))))
11347 (build-system emacs-build-system)
11348 (home-page "https://github.com/rswgnu/rsw-elisp")
11349 (synopsis "Improved expressions that interactively evaluate Emacs Lisp")
11350 (description "This package improves and replaces the GNU Emacs commands
11351 that interactively evaluate Emacs Lisp expressions. The new commands replace
11352 standard key bindings and are all prefixed with @code{rsw-elisp-}. They work
11353 the same way as the old commands when called non-interactively; only the
11354 interactive behavior should be different.")
11355 (license license:gpl3+)))
11356
11357 (define-public emacs-default-text-scale
11358 (let ((commit "968e985e219235f3e744d6d967e592acbaf6e0a8")
11359 (revision "1"))
11360 (package
11361 (name "emacs-default-text-scale")
11362 (version (string-append "0.1" "-" revision "."
11363 (string-take commit 7)))
11364 (source (origin
11365 (method git-fetch)
11366 (uri (git-reference
11367 (url "https://github.com/purcell/default-text-scale")
11368 (commit commit)))
11369 (file-name (git-file-name name version))
11370 (sha256
11371 (base32
11372 "0zds01c3q5yny6ab1fxfkzzgn1kgl3q23lxxap905f4qd70v922h"))))
11373 (build-system emacs-build-system)
11374 (home-page "https://github.com/purcell/default-text-scale")
11375 (synopsis "Adjust the font size in all Emacs frames")
11376 (description "This package provides commands for increasing or
11377 decreasing the default font size in all GUI Emacs frames.")
11378 (license license:gpl3+))))
11379
11380 (define-public emacs-visual-regexp
11381 (package
11382 (name "emacs-visual-regexp")
11383 (version "1.1.1")
11384 (source
11385 (origin
11386 (method git-fetch)
11387 (uri (git-reference
11388 (url "https://github.com/benma/visual-regexp.el.git")
11389 (commit (string-append "v" version))))
11390 (file-name (git-file-name name version))
11391 (sha256
11392 (base32 "12zpmzwyp85dzsjpxd3279kpfi9yz3jwc1k9fnb3xv3pjiil5svg"))))
11393 (build-system emacs-build-system)
11394 (home-page "https://github.com/benma/visual-regexp.el/")
11395 (synopsis "Regexp command with interactive visual feedback")
11396 (description "This package provides an Emacs regexp command with
11397 interactive visual feedback.")
11398 (license license:gpl3+)))
11399
11400 (define-public emacs-faceup
11401 (let ((commit "6c92dad56a133e14e7b27831e1bcf9b3a71ff154")
11402 (revision "1"))
11403 (package
11404 (name "emacs-faceup")
11405 (version (string-append "0.0.1" "-" revision "."
11406 (string-take commit 7)))
11407 (source
11408 (origin
11409 (method git-fetch)
11410 (uri (git-reference
11411 (url "https://github.com/Lindydancer/faceup.git")
11412 (commit commit)))
11413 (file-name (git-file-name name version))
11414 (sha256
11415 (base32
11416 "1yzmy7flrhrh0i10bdszx8idx6r8h6czm4vm4q0z6fp5fw94zwrx"))))
11417 (build-system emacs-build-system)
11418 (home-page "https://github.com/Lindydancer/faceup")
11419 (synopsis "Markup language for faces and font-lock regression testing")
11420 (description "Emacs is capable of highlighting buffers based on
11421 language-specific @code{font-lock} rules. This package makes it possible to
11422 perform regression test for packages that provide font-lock rules.")
11423 (license license:gpl3+))))
11424
11425 (define-public emacs-racket-mode
11426 (let ((commit "b977873e6128f8399432dcd60cc39f6a6f803d9c")
11427 (revision "2"))
11428 (package
11429 (name "emacs-racket-mode")
11430 (version (string-append "0.0.2" "-" revision "."
11431 (string-take commit 7)))
11432 (source
11433 (origin
11434 (method git-fetch)
11435 (uri (git-reference
11436 (url "https://github.com/greghendershott/racket-mode")
11437 (commit commit)))
11438 (file-name (git-file-name name version))
11439 (sha256
11440 (base32
11441 "0vp4bbbplqvmnhjpl6ajrlydmrhqzil56cfbs18m5c5fddx0zlh7"))))
11442 (build-system emacs-build-system)
11443 (arguments
11444 `(#:include '("\\.el$" "\\.rkt$")))
11445 (propagated-inputs
11446 `(("emacs-faceup" ,emacs-faceup)
11447 ("emacs-s" ,emacs-s)))
11448 (home-page "https://github.com/greghendershott/racket-mode")
11449 (synopsis "Major mode for Racket language")
11450 (description "@code{racket-mode} provides:
11451
11452 @itemize
11453 @item Focus on Racket (not various Schemes).
11454 @item Follow DrRacket concepts where applicable.
11455 @item Thorough font-lock and indent.
11456 @end itemize\n")
11457 (license license:gpl3+))))
11458
11459 (define-public emacs-grep-context
11460 (let ((commit "a17c57e66687a54e195e08afe776bdd60cb6c0a7"))
11461 (package
11462 (name "emacs-grep-context")
11463 (version (git-version "0.1" "1" commit))
11464 (source
11465 (origin
11466 (method git-fetch)
11467 (uri (git-reference
11468 (url "https://github.com/mkcms/grep-context.git")
11469 (commit commit)))
11470 (file-name (git-file-name name version))
11471 (sha256
11472 (base32
11473 "1nqfa6kjzjshww4hnwg1c0vcr90bdjihy3kmixq3c3jkvxg99b62"))))
11474 (build-system emacs-build-system)
11475 (propagated-inputs
11476 `(("emacs-dash" ,emacs-dash)))
11477 (home-page "https://github.com/nashamri/academic-phrases")
11478 (synopsis "Increase context in compilation and grep buffers")
11479 (description
11480 "This package provides an Emacs package for more context in
11481 compilation/grep buffers. Works with @code{wgrep}, @code{ack}, @code{ag},
11482 @code{ivy}.")
11483 (license license:gpl3+))))
11484
11485 (define-public emacs-helm-firefox
11486 (let ((commit "0ad34b7b5abc485a86cae6920c14de861cbeb085")
11487 (revision "1"))
11488 (package
11489 (name "emacs-helm-firefox")
11490 (version (string-append "0.0.1" "-" revision "."
11491 (string-take commit 7)))
11492 (source
11493 (origin
11494 (method git-fetch)
11495 (uri (git-reference
11496 (url "https://github.com/emacs-helm/helm-firefox.git")
11497 (commit commit)))
11498 (file-name (git-file-name name version))
11499 (sha256
11500 (base32
11501 "08mjsi2f9s29fkk35cj1rrparjnkm836qmbfdwdz7y51f9varjbs"))))
11502 (propagated-inputs
11503 `(("emacs-helm" ,emacs-helm)))
11504 (build-system emacs-build-system)
11505 (home-page "https://github.com/emacs-helm/helm-firefox")
11506 (synopsis "Display firefox bookmarks with Emacs Helm interface")
11507 (description "Display firefox bookmarks with Emacs Helm interface")
11508 (license license:gpl3+))))
11509
11510 (define-public emacs-interactive-align
11511 (package
11512 (name "emacs-interactive-align")
11513 (version "0.1.0")
11514 (source
11515 (origin
11516 (method url-fetch)
11517 (uri (string-append "https://github.com/mkcms/interactive-align/"
11518 "archive/" "v" version ".tar.gz"))
11519 (file-name (string-append name "-" version ".tar.gz"))
11520 (sha256
11521 (base32
11522 "0sibpgb4lp6yy3pziak8f3hz4b28yj0dqy2nzh51z3d0b63h528m"))))
11523 (build-system emacs-build-system)
11524 (home-page "https://github.com/mkcms/interactive-align/")
11525 (synopsis "Interactive align-regexp command in Emacs")
11526 (description "Interactive align-regexp command in Emacs")
11527 (license license:gpl3+)))
11528
11529 (define-public emacs-shift-number
11530 (package
11531 (name "emacs-shift-number")
11532 (version "0.1")
11533 (source
11534 (origin
11535 (method url-fetch)
11536 (uri (string-append "https://github.com/alezost/shift-number.el"
11537 "/archive/" "v" version ".tar.gz"))
11538 (file-name (string-append name "-" version ".tar.gz"))
11539 (sha256
11540 (base32
11541 "1g79m0hqn9jgpm565vvh8pdfzndc4vw7xisnh5qysj55qfg8cb1x"))))
11542 (build-system emacs-build-system)
11543 (home-page "https://github.com/alezost/shift-number.el")
11544 (synopsis "Increase or decrease the number at point")
11545 (description "@code{emacs-shift-number} provides commands
11546 @code{shift-number-up} to increase and @code{shift-number-down} to
11547 decrease the number at point.")
11548 (license license:gpl3+)))
11549
11550 (define-public emacs-highlight-defined
11551 (package
11552 (name "emacs-highlight-defined")
11553 (version "0.1.5")
11554 (source
11555 (origin
11556 (method git-fetch)
11557 (uri (git-reference
11558 (url "https://github.com/Fanael/highlight-defined.git")
11559 (commit version)))
11560 (file-name (git-file-name name version))
11561 (sha256
11562 (base32 "08czwa165rnd5z0dwwdddn7zi5w63sdk31l47bj0598kbly01n7r"))))
11563 (build-system emacs-build-system)
11564 (home-page "https://github.com/Fanael/highlight-defined")
11565 (synopsis "Syntax highlighting of known Elisp symbols")
11566 (description "Minor mode providing syntax highlighting of known Emacs Lisp
11567 symbols. Currently the code distinguishes Lisp functions, built-in functions,
11568 macros, faces and variables. To enable call @code{highlight-defined-mode}. ")
11569 (license license:gpl3+)))
11570
11571 (define-public emacs-parinfer-mode
11572 (package
11573 (name "emacs-parinfer-mode")
11574 (version "0.4.10")
11575 (source
11576 (origin
11577 (method git-fetch)
11578 (uri (git-reference
11579 (url "https://github.com/DogLooksGood/parinfer-mode.git")
11580 (commit (string-append "v" version))))
11581 (file-name (git-file-name name version))
11582 (sha256
11583 (base32 "0v97ncb0w1slb0x8861l3yr1kqz6fgw1fwl1z9lz6hh8p2ih34sk"))))
11584 (propagated-inputs
11585 `(("emacs-dash" ,emacs-dash)
11586 ("emacs-rainbow-delimiters" ,emacs-rainbow-delimiters)
11587 ("emacs-company" ,emacs-company)))
11588 (build-system emacs-build-system)
11589 (home-page "https://github.com/DogLooksGood/parinfer-mode/")
11590 (synopsis "Lisp structure editing mode")
11591 (description "@code{parinfer-mode} is a proof-of-concept editor
11592 mode for Lisp programming languages. It will infer some changes to
11593 keep Parens and Indentation inline with one another.")
11594 (license license:gpl3+)))
11595
11596 (define-public emacs-helm-eww
11597 (package
11598 (name "emacs-helm-eww")
11599 (version "1.2")
11600 (source (origin
11601 (method git-fetch)
11602 (uri (git-reference
11603 (url "https://github.com/emacs-helm/helm-eww.git")
11604 (commit version)))
11605 (file-name (git-file-name name version))
11606 (sha256
11607 (base32
11608 "0hpq1h0p69c9k6hkd2mjpprx213sc5475q7pr2zpmwrjdzgcv70z"))))
11609 (propagated-inputs
11610 `(("emacs-helm" ,emacs-helm)))
11611 (build-system emacs-build-system)
11612 (home-page "https://github.com/emacs-helm/helm-eww/")
11613 (synopsis "Helm interface to EWW")
11614 (description "This package provides a Helm interface for EWW buffers,
11615 bookmarks and history.")
11616 (license license:gpl3+)))
11617
11618 (define-public emacs-stumpwm-mode
11619 (let ((commit "8fbe071d2c6c040794060a354eb377218dc10b35")
11620 (revision "1"))
11621 (package
11622 (name "emacs-stumpwm-mode")
11623 (version (string-append "0.0.1-" revision "."
11624 (string-take commit 7)))
11625 (source (origin
11626 (method git-fetch)
11627 (uri (git-reference
11628 (url "https://github.com/stumpwm/stumpwm-contrib.git")
11629 (commit commit)))
11630 (file-name (git-file-name name version))
11631 (sha256
11632 (base32
11633 "1dfwsvz1c8w6j4jp0kzaz78ml3f5dp0a5pvf090kwpbpg176r7iq"))))
11634 (build-system emacs-build-system)
11635 (arguments
11636 `(#:phases
11637 (modify-phases %standard-phases
11638 (add-after 'unpack 'chdir-elisp
11639 ;; Elisp directory is not in root of the source.
11640 (lambda _
11641 (chdir "util/swm-emacs"))))))
11642 (home-page "https://github.com/stumpwm/stumpwm-contrib")
11643 (synopsis "Emacs minor-mode for Stumpwm")
11644 (description "Emacs minor-mode for Stumpwm")
11645 (license license:gpl3+))))
11646
11647 (define-public emacs-irfc
11648 (package
11649 (name "emacs-irfc")
11650 (version "20130824.507-1")
11651 (source
11652 (origin
11653 (method url-fetch)
11654 (uri "https://www.emacswiki.org/emacs/download/irfc.el")
11655 (file-name (string-append "irfc-" version ".el"))
11656 (sha256
11657 (base32
11658 "0rbfrza56kvspvgrwg0b5bj30d0qncqdsmfxn3y5caq4ifcj77hv"))))
11659 (build-system emacs-build-system)
11660 (home-page "https://www.emacswiki.org/emacs/download/irfc.el")
11661 (synopsis "Interface for IETF RFC document")
11662 (description
11663 "This package provides an Emacs interface for IETF RFC document.")
11664 (license license:gpl3+)))
11665
11666 (define-public emacs-ido-vertical-mode
11667 (package
11668 (name "emacs-ido-vertical-mode")
11669 (version "0.1.6")
11670 (source
11671 (origin
11672 (method git-fetch)
11673 (uri (git-reference
11674 (url "https://github.com/creichert/ido-vertical-mode.el.git")
11675 (commit (string-append "v" version))))
11676 (file-name (git-file-name name version))
11677 (sha256
11678 (base32 "1lv82q639xjnmvby56nwqn23ijh6f163bk675s33dkingm8csj8k"))))
11679 (build-system emacs-build-system)
11680 (home-page "https://github.com/creichert/ido-vertical-mode.el")
11681 (synopsis "Makes ido-mode display vertically")
11682 (description "Makes ido-mode display prospects vertically.")
11683 (license license:gpl3+)))
11684
11685 (define-public emacs-wordgen
11686 (package
11687 (name "emacs-wordgen")
11688 (version "0.1.4")
11689 (source
11690 (origin
11691 (method git-fetch)
11692 (uri (git-reference
11693 (url "https://github.com/Fanael/wordgen.el.git")
11694 (commit version)))
11695 (file-name (git-file-name name version))
11696 (sha256
11697 (base32 "06vbc9ycz1nbjwjkg99y3lj6jwb6lnwnmkqf09yr00jjrrfhfash"))))
11698 (build-system emacs-build-system)
11699 (home-page "https://github.com/Fanael/wordgen.el")
11700 (synopsis "Random word generator")
11701 (description "This package provides functions to generate random words
11702 using user-provided rules.")
11703 (license license:gpl3+)))
11704
11705 (define-public emacs-on-screen
11706 (package
11707 (name "emacs-on-screen")
11708 (version "1.3.2")
11709 (source
11710 (origin
11711 (method url-fetch)
11712 (uri (string-append
11713 "http://elpa.gnu.org/packages/on-screen-" version ".el"))
11714 (file-name (string-append name "-" version ".el"))
11715 (sha256
11716 (base32
11717 "15d18mjgv1pnwl6kf3pr5w64q1322p1l1qlfvnckglwmzy5sl2qv"))))
11718 (build-system emacs-build-system)
11719 (home-page
11720 "https://github.com/michael-heerdegen/on-screen.el")
11721 (synopsis "Guide your eyes while scrolling")
11722 (description
11723 "Scrolling can be distracting because your eyes may lose
11724 orientation. This library implements a minor mode that highlights
11725 the previously visible buffer part after each scroll.")
11726 (license license:gpl3+)))
11727
11728 (define-public emacs-highlight-escape-sequences
11729 (let ((commit "08d846a7aa748209d65fecead2b6a766c3e5cb41")
11730 (revision "1"))
11731 (package
11732 (name "emacs-highlight-escape-sequences")
11733 (version (string-append "0.0.1" "-" revision "."
11734 (string-take commit 7)))
11735 (source
11736 (origin
11737 (method git-fetch)
11738 (uri (git-reference
11739 (url "https://github.com/dgutov/highlight-escape-sequences.git")
11740 (commit commit)))
11741 (file-name (git-file-name name version))
11742 (sha256
11743 (base32
11744 "05mc3w1f8ykf80914a1yddw6j8cmh0h57llm07xh89s53821v2is"))))
11745 (build-system emacs-build-system)
11746 (home-page "https://github.com/dgutov/highlight-escape-sequences")
11747 (synopsis "Highlight escape sequences in Emacs")
11748 (description "@code{highlight-escape-sequences} provides an
11749 Emacs minor mode to escape sequences in code.")
11750 (license license:gpl3+))))
11751
11752 (define-public emacs-dashboard
11753 (package
11754 (name "emacs-dashboard")
11755 (version "1.2.4")
11756 (source
11757 (origin
11758 (method git-fetch)
11759 (uri (git-reference
11760 (url "https://github.com/rakanalh/emacs-dashboard.git")
11761 (commit version)))
11762 (file-name (git-file-name name version))
11763 (sha256
11764 (base32 "1hhh1kfsz87qfmh45wjf2r93rz79rq0vbyxlfrsl02092zjbl1zr"))))
11765 (build-system emacs-build-system)
11766 (propagated-inputs
11767 `(("emacs-page-break-lines" ,emacs-page-break-lines)))
11768 (arguments '(#:include '("\\.el$" "\\.txt$" "\\.png$")))
11769 (home-page "https://github.com/rakanalh/emacs-dashboard")
11770 (synopsis "Startup screen extracted from Spacemacs")
11771 (description "This package provides an extensible Emacs dashboard, with
11772 sections for bookmarks, projectil projects, org-agenda and more. ")
11773 (license license:gpl3+)))
11774
11775 (define-public emacs-slime-company
11776 (package
11777 (name "emacs-slime-company")
11778 (version "1.1")
11779 (source
11780 (origin
11781 (method git-fetch)
11782 (uri (git-reference
11783 (url "https://github.com/anwyn/slime-company.git")
11784 (commit (string-append "v" version))))
11785 (file-name (git-file-name name version))
11786 (sha256
11787 (base32 "1hl1hqkc1pxga9k2k8k15d7dip7sfsmwf4wm4sh346m6nj606q8g"))))
11788 (build-system emacs-build-system)
11789 (propagated-inputs
11790 `(("emacs-slime" ,emacs-slime)
11791 ("emacs-company" ,emacs-company)))
11792 (home-page "https://company-mode.github.io")
11793 (synopsis "SLIME completion backend for @code{company-mode}")
11794 (description
11795 "This is a backend implementation for the completion package
11796 @code{company-mode} which supports the normal and the fuzzy completion
11797 modes of SLIME.")
11798 (license license:gpl3+)))
11799
11800 (define-public emacs-sml-mode
11801 (package
11802 (name "emacs-sml-mode")
11803 (version "6.9")
11804 (source
11805 (origin
11806 (method url-fetch)
11807 (uri (string-append "http://elpa.gnu.org/packages/sml-mode-"
11808 version ".el"))
11809 (sha256
11810 (base32 "1bdg9ywpvj85hxqah9w1raxlcrhkyx67nw22jwd1bd5j0fhmgqij"))))
11811 (build-system emacs-build-system)
11812 (home-page "http://elpa.gnu.org/packages/sml-mode.html")
11813 (synopsis "Major mode for editing (Standard) ML")
11814 (description "SML-MODE is a major Emacs mode for editing Standard ML.
11815 It provides syntax highlighting and automatic indentation and
11816 comes with sml-proc which allows interaction with an inferior SML
11817 interactive loop.")
11818 (license license:gpl3+)))
11819
11820 (define-public emacs-eros
11821 (let ((commit "a42e45c9b2397156c684330b0fc90ee0eba773f5")
11822 (revision "1"))
11823 (package
11824 (name "emacs-eros")
11825 (version (string-append "0.0.1" "-" revision "."
11826 (string-take commit 7)))
11827 (source
11828 (origin
11829 (method git-fetch)
11830 (uri (git-reference
11831 (url "https://github.com/xiongtx/eros.git")
11832 (commit commit)))
11833 (file-name (git-file-name name version))
11834 (sha256
11835 (base32
11836 "0whlsq90v13fz69k3wjrwcwb9gkpfxqjd75mg3nrp85j9nwhb5i4"))))
11837 (build-system emacs-build-system)
11838 (home-page "https://github.com/xiongtx/eros")
11839 (synopsis "Evaluation result overlays")
11840 (description "@code{eros} provides evaluation result overlays.")
11841 (license license:gpl3+))))
11842
11843 (define-public emacs-stickyfunc-enhance
11844 (let ((commit "13bdba51fcd83ccbc3267959d23afc94d458dcb0")
11845 (revision "1"))
11846 (package
11847 (name "emacs-stickyfunc-enhance")
11848 (version "0.1")
11849 (source
11850 (origin
11851 (method git-fetch)
11852 (uri (git-reference
11853 (url "https://github.com/tuhdo/semantic-stickyfunc-enhance.git")
11854 (commit commit)))
11855 (file-name (git-file-name name version))
11856 (sha256
11857 (base32
11858 "16dxjsr5nj20blww4xpd4jzgjprzzh1nwvb810ggdmp9paf4iy0g"))))
11859 (build-system emacs-build-system)
11860 (home-page "https://github.com/tuhdo/semantic-stickyfunc-enhance")
11861 (synopsis "Enhancement to stock @code{semantic-stickyfunc-mode}")
11862 (description
11863 "@code{semantic-stickyfunc-mode} shows the function point is currently
11864 in at the first line of the current buffer. This is useful when you have a
11865 very long function that spreads more than a screen, and you don't have to
11866 scroll up to read the function name and then scroll down to original position.")
11867 (license license:gpl3+))))
11868
11869 (define-public emacs-git-auto-commit-mode
11870 (package
11871 (name "emacs-git-auto-commit-mode")
11872 (version "4.4.0")
11873 (source
11874 (origin
11875 (method git-fetch)
11876 (uri (git-reference
11877 (url "https://github.com/ryuslash/git-auto-commit-mode.git")
11878 (commit version)))
11879 (file-name (git-file-name name version))
11880 (sha256
11881 (base32 "0psmr7749nzxln4b500sl3vrf24x3qijp12ir0i5z4x25k72hrlh"))))
11882 (build-system emacs-build-system)
11883 (home-page "https://github.com/ryuslash/git-auto-commit-mode")
11884 (synopsis "Emacs Minor mode to automatically commit and push")
11885 (description "@code{git-auto-commit-mode} is an Emacs minor mode that
11886 tries to commit changes to a file after every save.
11887
11888 When @code{gac-automatically-push-p} is non-nil, it also tries to push to
11889 the current upstream.")
11890 (license license:gpl3+)))
11891
11892 (define-public emacs-company-restclient
11893 (package
11894 (name "emacs-company-restclient")
11895 (version "0.1.0")
11896 (source
11897 (origin
11898 (method git-fetch)
11899 (uri (git-reference
11900 (url "https://github.com/iquiw/company-restclient.git")
11901 (commit (string-append "v" version))))
11902 (file-name (git-file-name name version))
11903 (sha256
11904 (base32 "0i1fh5lvqwlgn3g3fzh0xacxyljx6gkryipn133vfkv4jbns51n4"))))
11905 (build-system emacs-build-system)
11906 (propagated-inputs
11907 `(("emacs-company" ,emacs-company)
11908 ("emacs-know-your-http-well" ,emacs-know-your-http-well)
11909 ("emacs-restclient" ,emacs-restclient)))
11910 (home-page "https://github.com/iquiw/company-restclient")
11911 (synopsis "Company-mode completion back-end for restclient-mode")
11912 (description "@code{company-mode} back-end for
11913 @code{restclient-mode}.
11914
11915 It provides auto-completion for HTTP methods and headers in
11916 @code{restclient-mode}. Completion source is given by
11917 @code{know-your-http-well}.")
11918 (license license:gpl3+)))
11919
11920 (define-public emacs-noflet
11921 (let ((version "20170629")
11922 (revision "1")
11923 (commit "7ae84dc3257637af7334101456dafe1759c6b68a"))
11924 (package
11925 (name "emacs-noflet")
11926 (version (git-version version revision commit))
11927 (source
11928 (origin
11929 (method git-fetch)
11930 (uri (git-reference
11931 (url "https://github.com/nicferrier/emacs-noflet")
11932 (commit commit)))
11933 (file-name (git-file-name name version))
11934 (sha256
11935 (base32
11936 "0g70gnmfi8n24jzfci9nrj0n9bn1qig7b8f9f325rin8h7x32ypf"))))
11937 (build-system emacs-build-system)
11938 (arguments
11939 `(#:phases
11940 (modify-phases %standard-phases
11941 (add-after 'unpack 'require-dash
11942 ;; noflet.el uses -map from dash, but (require 'dash) is
11943 ;; missing. So, add it.
11944 (lambda _
11945 (substitute* "noflet.el"
11946 ((";;; Code:") ";;; Code:\n(require 'dash)"))
11947 #t)))))
11948 (propagated-inputs
11949 `(("emacs-dash" ,emacs-dash)))
11950 (home-page "https://github.com/nicferrier/emacs-noflet")
11951 (synopsis "Locally override functions")
11952 (description "@code{emacs-noflet} lets you locally override functions,
11953 in the manner of @command{flet}, but with access to the original function
11954 through the symbol: @command{this-fn}.")
11955 (license license:gpl3+))))
11956
11957 (define-public emacs-dumb-jump
11958 (package
11959 (name "emacs-dumb-jump")
11960 (version "0.5.2")
11961 (source
11962 (origin
11963 (method git-fetch)
11964 (uri (git-reference
11965 (url "https://github.com/jacktasia/dumb-jump.git")
11966 (commit (string-append "v" version))))
11967 (file-name (git-file-name name version))
11968 (sha256
11969 (base32 "00ph85vp8sa3k99qrdxfz4l8zx121q9xf47vvspzg26bk9l4nwin"))))
11970 (build-system emacs-build-system)
11971 (arguments
11972 `(#:tests? #f ; FIXME: Tests freeze when run.
11973 #:test-command '("ert-runner")
11974 #:phases
11975 (modify-phases %standard-phases
11976 (add-after 'unpack 'set-shell
11977 (lambda _
11978 ;; Setting the SHELL environment variable is required for the
11979 ;; tests to find sh.
11980 (setenv "SHELL" (which "sh"))
11981 #t)))))
11982 (native-inputs
11983 `(("emacs-el-mock" ,emacs-el-mock)
11984 ("emacs-noflet" ,emacs-noflet)
11985 ("emacs-undercover" ,emacs-undercover)
11986 ("ert-runner" ,emacs-ert-runner)))
11987 (propagated-inputs
11988 `(("emacs-f" ,emacs-f)
11989 ("emacs-popup" ,emacs-popup)))
11990 (home-page "https://github.com/jacktasia/dumb-jump")
11991 (synopsis "Jump to definition for multiple languages without configuration")
11992 (description "Dumb Jump is an Emacs \"jump to definition\" package with
11993 support for multiple programming languages that favors \"just working\" over
11994 speed or accuracy. This means minimal --- and ideally zero --- configuration
11995 with absolutely no stored indexes (tags) or persistent background processes.
11996 Dumb Jump performs best with The Silver Searcher @command{ag} or ripgrep
11997 @command{rg} installed.")
11998 (license license:gpl3+)))
11999
12000 (define-public emacs-dts-mode
12001 (let ((commit "9ee0854446dcc6c53d2b8d2941051768dba50344")
12002 (revision "1"))
12003 (package
12004 (name "emacs-dts-mode")
12005 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
12006 (source
12007 (origin
12008 (method git-fetch)
12009 (uri (git-reference
12010 (url "https://github.com/bgamari/dts-mode.git")
12011 (commit commit)))
12012 (file-name (git-file-name name version))
12013 (sha256
12014 (base32
12015 "1k8lljdbc90nd29xrhdrsscxavzdq532wq2mg7ljc94krj7538b1"))))
12016 (build-system emacs-build-system)
12017 (home-page "https://github.com/bgamari/dts-mode.git")
12018 (synopsis "Emacs minor mode for editing device tree files")
12019 (description
12020 "This package provides an Emacs minor mode for highlighting
12021 device tree files.")
12022 (license license:gpl3+))))
12023
12024 (define-public emacs-daemons
12025 (package
12026 (name "emacs-daemons")
12027 (version "2.0.0")
12028 (source
12029 (origin
12030 (method git-fetch)
12031 (uri (git-reference
12032 (url "https://github.com/cbowdon/daemons.el")
12033 (commit version)))
12034 (file-name (git-file-name name version))
12035 (sha256
12036 (base32
12037 "00bkzfaw3bqykcks610vk9wlpa2z360xn32bpsrycacwfv29j7g4"))))
12038 (build-system emacs-build-system)
12039 (home-page "https://github.com/cbowdon/daemons.el")
12040 (synopsis "Emacs UI for managing init system services")
12041 (description
12042 "This is an Emacs mode to give you a UI for managing init system
12043 daemons (services) for those getting tired of typing out @code{sudo service
12044 my_thing reload} all the time. It offers a consistent UI over different init
12045 systems.")
12046 (license license:gpl3+)))
12047
12048 (define-public emacs-isearch+
12049 (let ((commit "95e49af9dbf0254e095a11f115e101b52659520a")
12050 (revision "1"))
12051 (package
12052 (name "emacs-isearch+")
12053 (version (git-version "0" revision commit))
12054 (source
12055 (origin
12056 (method git-fetch)
12057 (uri (git-reference
12058 (url "https://github.com/emacsmirror/isearch-plus.git")
12059 (commit commit)))
12060 (file-name (git-file-name name version))
12061 (sha256
12062 (base32
12063 "0xhd9zgknf4lvzyf4apirpd7spb1hbpzkvys00a7pkmd0vvahk0v"))))
12064 (build-system emacs-build-system)
12065 (home-page "https://www.emacswiki.org/emacs/isearch+.el")
12066 (synopsis "Extensions to @code{isearch.el}")
12067 (description "This package extends @code{isearch} with advice, dynamic
12068 filters, highlighting of regexp group levels, and more.")
12069 (license license:gpl2+))))
12070
12071 (define-public emacs-eshell-bookmark
12072 (package
12073 (name "emacs-eshell-bookmark")
12074 (version "2.0.0")
12075 (source
12076 (origin
12077 (method git-fetch)
12078 (uri (git-reference
12079 (url "https://github.com/Fuco1/eshell-bookmark")
12080 (commit version)))
12081 (file-name (git-file-name name version))
12082 (sha256
12083 (base32
12084 "14dmsnixf9vqdhsixw693sml0fn80zcf0b37z049fb40cmppqxdw"))))
12085 (build-system emacs-build-system)
12086 (home-page "https://github.com/Fuco1/eshell-bookmark")
12087 (synopsis "Provide @file{bookmark.el} integration for @code{eshell}")
12088 (description
12089 "This package allows for bookmarking @code{eshell} buffers. Upon
12090 visiting the bookmark, a new @code{eshell} session will be opened in the
12091 appropriate directory if no @code{eshell} session is active.")
12092 (license license:gpl3+)))
12093
12094 (define-public emacs-eshell-z
12095 (package
12096 (name "emacs-eshell-z")
12097 (version "0.3.2")
12098 (source
12099 (origin
12100 (method git-fetch)
12101 (uri (git-reference
12102 (url "https://github.com/xuchunyang/eshell-z")
12103 (commit (string-append "v" version))))
12104 (file-name (git-file-name name version))
12105 (sha256
12106 (base32
12107 "1aac4m814jgxwpz7lbyx5r4z5dmawp4sk7pwbx0zqpnbcsaq5wwc"))))
12108 (build-system emacs-build-system)
12109 (home-page "https://github.com/xuchunyang/eshell-z")
12110 (synopsis "Quick navigation to frequently visited directories")
12111 (description
12112 "This package is a port of @code{z}, and keeps track of visited directories
12113 and commands invoked within them in order to enable navigation via input of
12114 matching regexps.")
12115 (license license:gpl3+)))
12116
12117 (define-public emacs-esh-autosuggest
12118 (package
12119 (name "emacs-esh-autosuggest")
12120 (version "2.0.0")
12121 (source
12122 (origin
12123 (method git-fetch)
12124 (uri (git-reference
12125 (url "https://github.com/dieggsy/esh-autosuggest")
12126 (commit version)))
12127 (file-name (git-file-name name version))
12128 (sha256
12129 (base32
12130 "116pdjgpjy9b0psm5kzwkwy7dq8vn0p6dy75dl1zsy2xrjf1iqdw"))))
12131 (build-system emacs-build-system)
12132 (propagated-inputs `(("emacs-company" ,emacs-company)))
12133 (home-page "https://github.com/dieggsy/esh-autosuggest")
12134 (synopsis "Fish-like autosuggestions in Eshell")
12135 (description
12136 "This package assumes you use something other than company for eshell
12137 completion (e.g. @code{eshell-pcomplete}, @code{completion-at-point},
12138 @code{helm-esh-pcomplete}). @code{company-mode} is used solely as a mechanism
12139 for history autosuggestions.
12140
12141 Unless you're using @code{use-package}'s hook keyword, you can enable the
12142 autosuggestions with:
12143 @code{(add-hook 'eshell-mode-hook #'esh-autosuggest-mode)}")
12144 (license license:gpl3+)))
12145
12146 (define-public emacs-desktop-environment
12147 (package
12148 (name "emacs-desktop-environment")
12149 (version "0.2.1")
12150 (source
12151 (origin
12152 (method git-fetch)
12153 (uri (git-reference
12154 (url "https://gitlab.petton.fr/DamienCassou/desktop-environment")
12155 (commit (string-append "v" version))))
12156 (file-name (git-file-name name version))
12157 (sha256
12158 (base32
12159 "0n5sa94dwhnkfp3x42pggsbr5db38m85hl8ddb3qs7yfdi9bjm52"))))
12160 (build-system emacs-build-system)
12161 (home-page "https://gitlab.petton.fr/DamienCassou/desktop-environment")
12162 (synopsis "Control your GNU/Linux desktop environment from Emacs")
12163 (description
12164 "This package helps you control your GNU/Linux desktop from Emacs.
12165 With @code{desktop-environment}, you can control the brightness and volume as
12166 well as take screenshots and lock your screen. The package depends on the
12167 availability of shell commands to do the hard work for us. These commands can
12168 be changed by customizing the appropriate variables.")
12169 (license license:gpl3+)))
12170
12171 (define-public emacs-org-caldav
12172 (package
12173 (name "emacs-org-caldav")
12174 (version "20180403")
12175 (source
12176 (origin
12177 (method url-fetch)
12178 (uri (string-append
12179 "https://github.com/dengste/org-caldav/raw/"
12180 "8d3492c27a09f437d2d94f2736c56d7652e87aa0"
12181 "/org-caldav.el"))
12182 (sha256
12183 (base32
12184 "1fh4gh68ddj0is99z2ccyh97v6psnyda61n2dsadzqhcxn51amlc"))))
12185 (build-system emacs-build-system)
12186 (propagated-inputs `(("emacs-org" ,emacs-org)))
12187 (home-page "https://github.com/dengste/org-caldav")
12188 (synopsis
12189 "Sync Org files with external calendars via the CalDAV protocol")
12190 (description
12191 "Synchronize between events in Org-mode files and a CalDAV calendar.
12192 This code is still alpha.")
12193 (license license:gpl3+)))
12194
12195 (define-public emacs-zotxt
12196 (package
12197 (name "emacs-zotxt")
12198 (version "20180518")
12199 (source
12200 (origin
12201 (method git-fetch)
12202 (uri (git-reference
12203 (url "https://github.com/egh/zotxt-emacs.git")
12204 (commit "23a4a9f74a658222027d53a9a83cd4bcc583ca8b")))
12205 (file-name (git-file-name name version))
12206 (sha256
12207 (base32 "09fq3w9yk9kn6bz7y9kgpiw612dvj3yzsdk734js6zgb0p8lfd2c"))))
12208 (build-system emacs-build-system)
12209 (propagated-inputs
12210 `(("emacs-deferred" ,emacs-deferred)
12211 ("emacs-request" ,emacs-request)))
12212 (home-page "https://github.com/egh/zotxt-emacs")
12213 (synopsis "Integrate Emacs with Zotero")
12214 (description "This package provides two integration features between Emacs
12215 and the Zotero research assistant: Insertion of links to Zotero items into an
12216 Org-mode file, and citations of Zotero items in Pandoc Markdown files.")
12217 (license license:gpl3+)))
12218
12219 (define-public emacs-evil-ediff
12220 ;; Evil-Ediff is included in Evil Collection from 20180617.
12221 (deprecated-package "emacs-evil-ediff" emacs-evil-collection))
12222
12223 (define-public emacs-evil-magit
12224 (let ((commit "e2fec5877994c0c19f0c25fa01f3d22cb0ab38ba"))
12225 (package
12226 (name "emacs-evil-magit")
12227 (version (git-version "0.4.2" "2" commit))
12228 (source
12229 (origin
12230 (method git-fetch)
12231 (uri (git-reference
12232 (url "https://github.com/emacs-evil/evil-magit")
12233 (commit commit)))
12234 (file-name (git-file-name name version))
12235 (sha256
12236 (base32
12237 "134v7s03jvbhm70mavwab85r09i68g2a5bvriirh0chz1av2y16v"))))
12238 (build-system emacs-build-system)
12239 (propagated-inputs
12240 `(("emacs-evil" ,emacs-evil)
12241 ("magit" ,emacs-magit)))
12242 (home-page
12243 "https://github.com/emacs-evil/evil-magit")
12244 (synopsis "Evil-based key bindings for Magit")
12245 (description
12246 "This Emacs library configures Magit and Evil to play well with each other.
12247 For some background see @url{https://github.com/magit/evil-magit/issues/1}.
12248 See the README at @url{https://github.com/justbur/evil-magit} for a table
12249 describing the key binding changes.")
12250 (license license:gpl3+))))
12251
12252 (define-public emacs-evil-mu4e
12253 ;; Evil-mu4e is included in Evil Collection from 20180617.
12254 (deprecated-package "emacs-evil-mu4e" emacs-evil-collection))
12255
12256 (define-public emacs-evil-multiedit
12257 (package
12258 (name "emacs-evil-multiedit")
12259 (version "1.3.9")
12260 (source
12261 (origin
12262 (method git-fetch)
12263 (uri (git-reference
12264 (url "https://github.com/hlissner/evil-multiedit")
12265 (commit (string-append "v" version))))
12266 (file-name (git-file-name name version))
12267 (sha256
12268 (base32
12269 "19h3kqylqzbjv4297wkzzxdmn9yxbg6z4ga4ssrqri90xs7m3rw3"))))
12270 (build-system emacs-build-system)
12271 (propagated-inputs
12272 `(("emacs-evil" ,emacs-evil)
12273 ("emacs-iedit" ,emacs-iedit)))
12274 (home-page
12275 "https://github.com/hlissner/evil-multiedit")
12276 (synopsis "Multiple cursors for Evil mode")
12277 (description
12278 "This plugin was an answer to the lack of proper multiple cursor support
12279 in Emacs+Evil. It allows you to select and edit matches interactively,
12280 integrating @code{iedit-mode} into Evil mode with an attempt at sensible
12281 defaults.")
12282 (license license:gpl3+)))
12283
12284 (define-public emacs-evil-org
12285 (let ((commit "b6d652a9163d3430a9e0933a554bdbee5244bbf6"))
12286 (package
12287 (name "emacs-evil-org")
12288 (version (git-version "0.1.1" "1" commit))
12289 (source
12290 (origin
12291 (method git-fetch)
12292 (uri (git-reference
12293 (url "https://github.com/Somelauw/evil-org-mode")
12294 (commit commit)))
12295 (file-name (git-file-name name version))
12296 (sha256
12297 (base32
12298 "176hrw7y7nczffbyhsa167b8rvfacsmcafm2gpkrdjqlrikbmrhl"))))
12299 (build-system emacs-build-system)
12300 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
12301 (home-page
12302 "https://github.com/Somelauw/evil-org-mode")
12303 (synopsis "Evil keybindings for Org mode")
12304 (description
12305 "This package adds supplemental Evil mode key-bindings to Emacs
12306 Org-mode. It features:
12307 @itemize
12308 @item normal, visual and insert mode bindings;
12309 @item key bindings organised in key themes;
12310 @item operators like > and < to work on headings;
12311 @item text objects;
12312 @item table support;
12313 @item calendar (date selection) support;
12314 @item agenda support.
12315 @end itemize\n")
12316 (license license:gpl3+))))
12317
12318 (define-public emacs-debpaste
12319 (package
12320 (name "emacs-debpaste")
12321 (version "0.1.5")
12322 (home-page "https://github.com/alezost/debpaste.el")
12323 (source
12324 (origin
12325 (method git-fetch)
12326 (uri (git-reference (url home-page)
12327 (commit (string-append "v" version))))
12328 (file-name (string-append name "-" version ".tar.gz"))
12329 (sha256
12330 (base32
12331 "1wi70r56pd5z0x4dp4m58p9asq03j74kdm4fi9vai83vsl2z9amq"))))
12332 (build-system emacs-build-system)
12333 (propagated-inputs
12334 `(("emacs-xml-rpc" ,emacs-xml-rpc)))
12335 (synopsis "Manipulate pastes from the Debian Pastezone")
12336 (description "Debpaste is an Emacs interface for the Debian Pastezone,
12337 allowing you to receive, post, and delete pastes. It communicates with the
12338 server using XML-RPC.")
12339 (license license:gpl3+)))
12340
12341 (define-public emacs-xml-rpc
12342 (let ((commit "8f624f8b964e9145acb504e4457c9510e87dd93c")
12343 (revision "1"))
12344 (package
12345 (name "emacs-xml-rpc")
12346 (version (git-version "1.6.12" revision commit))
12347 (source
12348 (origin
12349 (method git-fetch)
12350 (uri (git-reference
12351 (url "https://github.com/hexmode/xml-rpc-el")
12352 (commit commit)))
12353 (file-name (git-file-name name version))
12354 (sha256
12355 (base32
12356 "0xa54z52rsfl3n0xgmbycj4zazp8ksgdwcq56swzs6wp72zlalmj"))))
12357 (build-system emacs-build-system)
12358 (home-page "https://github.com/hexmode/xml-rpc-el")
12359 (synopsis "XML-RPC client for Emacs")
12360 (description "This package provides an XML-RPC client for Emacs capable
12361 of both synchronous and asynchronous method calls using the @code{url}
12362 package's async retrieval functionality. @file{xml-rpc.el} represents XML-RPC
12363 datatypes as Lisp values, automatically converting to and from the XML
12364 datastructures as needed, both for method parameters and return values, making
12365 using XML-RPC methods fairly transparent to the Lisp code.")
12366 (license license:gpl3+))))
12367
12368 (define-public emacs-fish-completion
12369 (package
12370 (name "emacs-fish-completion")
12371 (version "1.0")
12372 (source
12373 (origin
12374 (method url-fetch)
12375 (uri (string-append
12376 "https://gitlab.com/Ambrevar/emacs-fish-completion/repository/"
12377 "archive.tar.gz?ref="
12378 version))
12379 (sha256
12380 (base32
12381 "1hpma1c5j50ja03ibr7h1xmyv7k8j3rbvqivad47kwqhlsgw0jk0"))))
12382 (build-system emacs-build-system)
12383 (inputs `(("fish" ,fish)))
12384 (arguments
12385 `(#:phases
12386 (modify-phases %standard-phases
12387 (add-after 'unpack 'configure
12388 (lambda* (#:key inputs outputs #:allow-other-keys)
12389 (let ((fish (assoc-ref inputs "fish")))
12390 ;; Specify the absolute file names of the various
12391 ;; programs so that everything works out-of-the-box.
12392 (emacs-substitute-variables
12393 "fish-completion.el"
12394 ("fish-completion-command"
12395 (string-append fish "/bin/fish")))))))))
12396 (home-page
12397 "https://gitlab.com/Ambrevar/emacs-fish-completion")
12398 (synopsis "Fish completion for Emacs pcomplete")
12399 (description
12400 "This package provides completion for the Fish shell to pcomplete (used
12401 by shell and Eshell). You can set it up globally with:
12402
12403 @example
12404 (when (and (executable-find \"fish\")
12405 (require 'fish-completion nil t))
12406 (global-fish-completion-mode))
12407 @end example
12408
12409 Alternatively, you can call the @code{fish-completion-mode} manually or in
12410 shell/Eshell mode hook.
12411
12412 The package @code{emacs-bash-completion} is an optional dependency: if available,
12413 @code{fish-completion-complete} can be configured to fall back on bash to further
12414 try completing. See @code{fish-completion-fallback-on-bash-p}.")
12415 (license license:gpl3+)))
12416
12417 (define-public emacs-gif-screencast
12418 (let ((commit "12b25442b97b84abae74ecb5190a9d14ff7cfe5a"))
12419 (package
12420 (name "emacs-gif-screencast")
12421 (version (git-version "20180616" "1" commit))
12422 (source
12423 (origin
12424 (method url-fetch)
12425 (uri (string-append
12426 "https://gitlab.com/Ambrevar/emacs-gif-screencast/"
12427 "repository/archive.tar.gz?ref="
12428 commit))
12429 (sha256
12430 (base32
12431 "0lc457i78xjkn5idr2aaiadkh76zcsksj84z0qh80a9y775syrgh"))))
12432 (build-system emacs-build-system)
12433 (inputs
12434 `(("scrot" ,scrot)
12435 ("imagemagick" ,imagemagick)
12436 ("gifsicle" ,gifsicle)))
12437 (arguments
12438 `(#:phases
12439 (modify-phases %standard-phases
12440 (add-after 'unpack 'configure
12441 (lambda* (#:key inputs outputs #:allow-other-keys)
12442 (let ((scrot (assoc-ref inputs "scrot"))
12443 (imagemagick (assoc-ref inputs "imagemagick"))
12444 (gifsicle (assoc-ref inputs "gifsicle")))
12445 ;; Specify the absolute file names of the various
12446 ;; programs so that everything works out-of-the-box.
12447 (emacs-substitute-variables
12448 "gif-screencast.el"
12449 ("gif-screencast-program"
12450 (string-append scrot "/bin/scrot"))
12451 ("gif-screencast-convert-program"
12452 (string-append imagemagick "/bin/convert"))
12453 ("gif-screencast-cropping-program"
12454 (string-append imagemagick "/bin/mogrify"))
12455 ("gif-screencast-optimize-program"
12456 (string-append imagemagick "/bin/gifsicle")))))))))
12457 (home-page
12458 "https://gitlab.com/Ambrevar/emacs-gif-screencast")
12459 (synopsis "One-frame-per-action GIF recording")
12460 (description
12461 "Call @code{gif-screencast} to start a recording.
12462 A screenshot is taken for every user action. Call
12463 @code{gif-screencast-stop} (<f9> by default) to finish recording and create
12464 the GIF result.")
12465 (license license:gpl3+))))
12466
12467 (define-public emacs-google-translate
12468 (package
12469 (name "emacs-google-translate")
12470 (version "0.11.16")
12471 (source
12472 (origin
12473 (method url-fetch)
12474 (uri (string-append "https://github.com/atykhonov/google-translate/"
12475 "archive/v" version ".tar.gz"))
12476 (file-name (string-append name "-" version ".tar.gz"))
12477 (sha256
12478 (base32
12479 "01n9spj1d0gjfj39x526rl3m9c28wnx9afipmf5s8y77cx3mfwhl"))))
12480 (build-system emacs-build-system)
12481 (home-page "https://github.com/atykhonov/google-translate")
12482 (synopsis "Emacs interface to Google Translate")
12483 (description
12484 "This package provides an Emacs interface to the Google Translate
12485 on-line service.")
12486 (license license:gpl3+)))
12487
12488 (define-public emacs-helm-company
12489 (let ((commit "d3fc093a0e833b4dee6561c00d6df3d62aa50f3f"))
12490 (package
12491 (name "emacs-helm-company")
12492 (version (git-version "0.2.3" "1" commit))
12493 (source
12494 (origin
12495 (method git-fetch)
12496 (uri (git-reference
12497 (url "https://github.com/Sodel-the-Vociferous/helm-company")
12498 (commit commit)))
12499 (file-name (git-file-name name version))
12500 (sha256
12501 (base32
12502 "1ciirsanhajdqm5iwl8k9ywf4jha1wdv4sc4d9kslyrfr9zn4q6k"))))
12503 (build-system emacs-build-system)
12504 (propagated-inputs
12505 `(("emacs-helm" ,emacs-helm)
12506 ("emacs-company" ,emacs-company)))
12507 (home-page "https://github.com/Sodel-the-Vociferous/helm-company")
12508 (synopsis "Helm interface for company-mode")
12509 (description
12510 "This is a Helm interface to company-mode, a text completion
12511 framework.")
12512 (license license:gpl3+))))
12513
12514 (define-public emacs-helm-descbinds
12515 (let ((commit "033be73f21778633813264ce1634a6e1ad873d8e"))
12516 (package
12517 (name "emacs-helm-descbinds")
12518 (version (git-version "1.13" "1" commit))
12519 (source
12520 (origin
12521 (method git-fetch)
12522 (uri (git-reference
12523 (url "https://github.com/emacs-helm/helm-descbinds")
12524 (commit commit)))
12525 (file-name (git-file-name name version))
12526 (sha256
12527 (base32
12528 "1n89p56qwa243w1c85i5awnaf7piwjsvfi7nmnsrwm33hix5dknk"))))
12529 (build-system emacs-build-system)
12530 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
12531 (home-page "https://github.com/emacs-helm/helm-descbinds")
12532 (synopsis "Convenient @code{describe-bindings} with Helm")
12533 (description
12534 "This package is a replacement of @code{describe-bindings} for Helm.
12535 @code{describe-bindings} is replaced with @code{helm-descbinds}. As usual,
12536 type @code{C-h b}, or any incomplete key sequence plus @code{C-h}, to run
12537 @code{helm-descbinds}. The bindings are presented in a similar way as
12538 @code{describe-bindings} does, but you can use completion to find the command
12539 you searched for and execute it, or view its documentation.")
12540 (license license:gpl3+))))
12541
12542 (define-public emacs-helm-emms
12543 (let ((commit "b785cb845a98a643eba9d5d53c9c0b4e6810a3cd"))
12544 (package
12545 (name "emacs-helm-emms")
12546 (version (git-version "1.3" "2" commit))
12547 (source
12548 (origin
12549 (method git-fetch)
12550 (uri (git-reference
12551 (url "https://github.com/emacs-helm/helm-emms")
12552 (commit commit)))
12553 (file-name (git-file-name name version))
12554 (sha256
12555 (base32
12556 "1595r09y3rmwd46nnhvjja3hb8j2ila295ijxv61cg52ws4wginh"))))
12557 (build-system emacs-build-system)
12558 (propagated-inputs
12559 `(("emacs-helm" ,emacs-helm)
12560 ("emacs-emms" ,emacs-emms)))
12561 (home-page
12562 "https://github.com/emacs-helm/helm-emms")
12563 (synopsis "Emms for Helm")
12564 (description "Helm interface for Emms to browse all tracks and all folders
12565 from @code{emms-source-file-default-directory}.")
12566 (license license:gpl3+))))
12567
12568 (define-public emacs-helm-exwm
12569 (let ((commit "56266f261ba3b3d2753b374b50da20eb768c06f5"))
12570 (package
12571 (name "emacs-helm-exwm")
12572 (version (git-version "20180703" "2" commit))
12573 (source
12574 (origin
12575 (method git-fetch)
12576 (uri (git-reference
12577 (url "https://github.com/emacs-helm/helm-exwm.git")
12578 (commit commit)))
12579 (sha256
12580 (base32 "064ziinqa5sdv7rfjn0y278l12kld176fr88k4h78pgf2f2n7cd8"))))
12581 (build-system emacs-build-system)
12582 (propagated-inputs
12583 `(("emacs-helm" ,emacs-helm)
12584 ("emacs-exwm" ,emacs-exwm)))
12585 (home-page
12586 "https://github.com/emacs-helm/helm-exwm")
12587 (synopsis "Helm for EXWM buffers")
12588 (description
12589 "@code{helm-exwm} runs a Helm session over the list of EXWM buffers.
12590 @code{helm-exwm-switch} is a convenience X application launcher using Helm to
12591 switch between the various windows of one or several specific applications.
12592 See @code{helm-exwm-switch-browser} for an example.")
12593 (license license:gpl3+))))
12594
12595 (define-public emacs-helm-flycheck
12596 (let ((commit "3cf7d3bb194acacc6395f88360588013d92675d6"))
12597 (package
12598 (name "emacs-helm-flycheck")
12599 (version (git-version "0.4" "1" commit))
12600 (source
12601 (origin
12602 (method git-fetch)
12603 (uri (git-reference
12604 (url "https://github.com/yasuyk/helm-flycheck")
12605 (commit commit)))
12606 (file-name (git-file-name name version))
12607 (sha256
12608 (base32
12609 "1a2yfxhz04klwhcandqvfzysxp6b7bxyxx1xk1x3kds5hif5fkl4"))))
12610 (build-system emacs-build-system)
12611 (propagated-inputs
12612 `(("emacs-dash" ,emacs-dash)
12613 ("emacs-flycheck" ,emacs-flycheck)
12614 ("emacs-helm" ,emacs-helm)))
12615 (home-page "https://github.com/yasuyk/helm-flycheck")
12616 (synopsis "Show Flycheck errors with Helm")
12617 (description
12618 "This integrates Flycheck with Helm.")
12619 (license license:gpl3+))))
12620
12621 (define-public emacs-helm-ls-git
12622 (let ((commit "76654c776a7f6e2e5290645e748aac2a746f7daa"))
12623 (package
12624 (name "emacs-helm-ls-git")
12625 (version (git-version "1.9.1" "1" commit))
12626 (source
12627 (origin
12628 (method git-fetch)
12629 (uri (git-reference
12630 (url "https://github.com/emacs-helm/helm-ls-git")
12631 (commit commit)))
12632 (file-name (git-file-name name version))
12633 (sha256
12634 (base32
12635 "0vsq1n3xl3ghy5zik2scm7jrs501n4kybdqd6yw6j0cv4jxdqbr0"))))
12636 (build-system emacs-build-system)
12637 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
12638 (home-page "https://github.com/emacs-helm/helm-ls-git")
12639 (synopsis "Helm interface for listing the files in a Git repository")
12640 (description
12641 "This package provides a Helm interface for Git files.
12642 @itemize
12643 @item Display the open buffers in project.
12644 @item Display a status source showing state of project (modified files etc.).
12645 @item Display a list of all files in project under git control.
12646 @item Quickly look at diffs of modified files.
12647 @item Allow switching to @code{git status} with your preferred frontend
12648 (vc-dir, Magit,etc.).
12649 @item Full integration of git-grep, also allow usage of @code{helm-grep} (you
12650 can use ack-grep instead of grep).
12651 @item Integrate usage of gid from id-utils.
12652 @item Full integration with @code{helm-find-files}, allow you to browse
12653 projects unrelated to current-buffer.
12654 @item In addition, all actions of type files and buffers are provided.
12655 @end itemize\n")
12656 (license license:gpl3+))))
12657
12658 (define-public emacs-helm-mu
12659 (let ((commit "77e6fea24e01481418738421dbcfe28ef1bd63cf"))
12660 (package
12661 (name "emacs-helm-mu")
12662 (version (git-version "20180513" "1" commit))
12663 (source
12664 (origin
12665 (method git-fetch)
12666 (uri (git-reference
12667 (url "https://github.com/emacs-helm/helm-mu.git")
12668 (commit commit)))
12669 (sha256
12670 (base32 "1lh0ahxdc5b2z18m9p30gwg8sbg33sjwkjr38p7h5xsm5fm7i0fz"))))
12671 (build-system emacs-build-system)
12672 (propagated-inputs
12673 `(("emacs-helm" ,emacs-helm)
12674 ("mu" ,mu)))
12675 (home-page
12676 "https://github.com/emacs-helm/helm-mu")
12677 (synopsis
12678 "Helm sources for searching emails and contacts")
12679 (description
12680 "Helm sources for searching emails and contacts using @code{mu} and
12681 @code{mu4e}. Mu is an indexer for maildirs and mu4e is a mutt-like MUA for
12682 Emacs build on top of mu. Mu is highly efficient making it possible to get
12683 instant results even for huge maildirs. It also provides search operators,
12684 e.g: @code{from:Peter to:Anne flag:attach search term}.")
12685 (license license:gpl3+))))
12686
12687 (define-public emacs-helm-pass
12688 (package
12689 (name "emacs-helm-pass")
12690 (version "0.3")
12691 (source
12692 (origin
12693 (method git-fetch)
12694 (uri (git-reference
12695 (url "https://github.com/emacs-helm/helm-pass")
12696 (commit version)))
12697 (file-name (git-file-name name version))
12698 (sha256
12699 (base32
12700 "0vglaknmir3yv4iwibwn8r40ran8d04gcyp99hx73ldmf3zqpnxv"))))
12701 (build-system emacs-build-system)
12702 (propagated-inputs
12703 `(("emacs-helm" ,emacs-helm)
12704 ("emacs-password-store" ,emacs-password-store)))
12705 (home-page "https://github.com/emacs-helm/helm-pass")
12706 (synopsis "Helm interface to pass, the standard Unix password manager")
12707 (description
12708 "Users of @code{helm-pass} may also be interested in functionality
12709 provided by other Emacs packages dealing with pass:
12710 @itemize
12711 @item @code{emacs-password-store}, which @code{helm-pass} relies on.
12712 @item @code{emacs-pass}, a major mode for @code{pass}.
12713 @item @code{auth-source-pass.el}: integration of Emacs' auth-source with
12714 @code{pass}, included in Emacs 26+).
12715 @end itemize\n")
12716 (license license:gpl3+)))
12717
12718 (define-public emacs-image+
12719 (let ((commit "6834d0c09bb4df9ecc0d7a559bd7827fed48fffc"))
12720 (package
12721 (name "emacs-image+")
12722 (version (git-version "0.6.2" "1" commit))
12723 (source
12724 (origin
12725 (method git-fetch)
12726 (uri (git-reference
12727 (url "https://github.com/mhayashi1120/Emacs-imagex")
12728 (commit commit)))
12729 (file-name (git-file-name name version))
12730 (sha256
12731 (base32
12732 "0v66wk9nh0raih4jhrzmmyi5lbysjnmbv791vm2230ffi2hmwxnd"))))
12733 (build-system emacs-build-system)
12734 (inputs `(("imagemagick" ,imagemagick)))
12735 (arguments
12736 `(#:phases
12737 (modify-phases %standard-phases
12738 (add-after 'unpack 'configure
12739 (lambda* (#:key inputs outputs #:allow-other-keys)
12740 (let ((imagemagick (assoc-ref inputs "imagemagick")))
12741 ;; Specify the absolute file names of the various
12742 ;; programs so that everything works out-of-the-box.
12743 (chmod "image+.el" #o666)
12744 (emacs-substitute-variables
12745 "image+.el"
12746 ("imagex-convert-command"
12747 (string-append imagemagick "/bin/convert"))
12748 ("imagex-identify-command"
12749 (string-append imagemagick "/bin/identify")))))))))
12750 (home-page "https://github.com/mhayashi1120/Emacs-imagex")
12751 (synopsis "Image manipulation extensions for Emacs")
12752 (description
12753 "Image+ provides keybindings allowing you to zoom in or zoom out of an
12754 image, rotate it, save modified images, and more.")
12755 (license license:gpl3+))))
12756
12757 (define-public emacs-package-lint
12758 (let ((commit "69bb89d00ba212b734c676ad056aa793c450b288"))
12759 (package
12760 (name "emacs-package-lint")
12761 (version (git-version "0.5" "1" commit))
12762 (source
12763 (origin
12764 (method git-fetch)
12765 (uri (git-reference
12766 (url "https://github.com/purcell/package-lint")
12767 (commit commit)))
12768 (file-name (git-file-name name version))
12769 (sha256
12770 (base32
12771 "1hfricsgmy3x9snnd2p4xq6vnnv94qdsxxnxp07b3hqc9bhw31rq"))))
12772 (build-system emacs-build-system)
12773 (home-page "https://github.com/purcell/package-lint")
12774 (synopsis "Linting library for elisp package authors")
12775 (description
12776 "This provides a list of issues with the Emacs package metadata of a file,
12777 e.g. the package dependencies it requires. See function
12778 @code{package-lint-buffer}. Checks will currently be enabled only if a
12779 \"Package-Requires:\" or \"Package-Version:\" header is present in the
12780 file.")
12781 (license license:gpl3+))))
12782
12783 (define-public emacs-picpocket
12784 (let ((version "40")
12785 (commit "6fd88b8711c4370662c0f9c462170187d092a046"))
12786 (package
12787 (name "emacs-picpocket")
12788 (version version)
12789 (source
12790 (origin
12791 (method git-fetch)
12792 (uri (git-reference
12793 (url "https://github.com/johanclaesson/picpocket")
12794 (commit commit)))
12795 (file-name (git-file-name name version))
12796 (sha256
12797 (base32 "1mdzzxf7xm7zwrpnqqxa27d1cr31pd72d7ilbwljv13qp177a3yw"))))
12798 (build-system emacs-build-system)
12799 (arguments ; needed for running tests
12800 `(#:tests? #t
12801 #:emacs ,emacs
12802 #:test-command '("emacs" "--batch"
12803 "-l" "picpocket-test.el"
12804 "-f" "ert-run-tests-batch-and-exit")))
12805 (home-page "https://github.com/johanclaesson/picpocket")
12806 (synopsis "Image viewer for Emacs")
12807 (description
12808 "Picpocket is an image viewer for GNU Emacs. It has commands for:
12809
12810 @itemize
12811 @item File operations on the picture files (delete, move, copy, hardlink).
12812 @item Scale and rotate the picture.
12813 @item Associate pictures with tags which are saved to disk.
12814 @item Filter pictures according to tags.
12815 @item Customizing keystrokes for quick tagging and file operations.
12816 @item Undo and browse history of undoable commands.
12817 @end itemize")
12818 (license license:gpl3+))))
12819
12820 (define-public emacs-wgrep-helm
12821 ;; `emacs-wgrep-helm' was mistakenly added.
12822 (deprecated-package "emacs-wgrep-helm" emacs-wgrep))
12823
12824 (define-public emacs-mu4e-conversation
12825 (let ((commit "e7d4bfcb0d392b0aed1f705ccac2419a168d1f5e"))
12826 (package
12827 (name "emacs-mu4e-conversation")
12828 (version (git-version "20181126" "4" commit))
12829 (source
12830 (origin
12831 (method url-fetch)
12832 (uri (string-append
12833 "https://gitlab.com/Ambrevar/mu4e-conversation/"
12834 "repository/archive.tar.gz?ref="
12835 commit))
12836 (file-name (git-file-name name version))
12837 (sha256
12838 (base32
12839 "0b52hf9rm2afba9pvgink9bwqm705sk0y5qikp0ff5sk53wqvy29"))))
12840 (build-system emacs-build-system)
12841 (propagated-inputs
12842 `(("mu" ,mu)))
12843 (home-page
12844 "https://gitlab.com/Ambrevar/mu4e-conversation")
12845 (synopsis
12846 "Show a complete thread in a single buffer")
12847 (description
12848 "This package offers an alternate view to mu4e's e-mail display. It
12849 shows all e-mails of a thread in a single view, where each correspondent has
12850 their own face. Threads can be displayed linearly (in which case e-mails are
12851 displayed in chronological order) or as an Org document where the node tree
12852 maps the thread tree.")
12853 (license license:gpl3+))))
12854
12855 (define-public emacs-pinentry
12856 (let ((commit "dcc9ba03252ee5d39e03bba31b420e0708c3ba0c")
12857 (revision "1"))
12858 (package
12859 (name "emacs-pinentry")
12860 (version (git-version "0.1" revision commit))
12861 (source
12862 (origin
12863 (method url-fetch)
12864 (uri (string-append
12865 "http://git.savannah.gnu.org/cgit/emacs/elpa.git/plain"
12866 "/packages/pinentry/pinentry.el?id=" commit))
12867 (file-name (string-append "pinentry.el"))
12868 (sha256
12869 (base32
12870 "1lf30q6r8nz5cjzclbb9bbymsk2y75nskvb55hnjdv93gr3j0sik"))))
12871 (build-system emacs-build-system)
12872 (propagated-inputs
12873 `(("gnupg" ,gnupg)))
12874 (home-page "https://elpa.gnu.org/packages/pinentry.html")
12875 (synopsis "GnuPG Pinentry server implementation")
12876 (description
12877 "This package allows GnuPG passphrase to be prompted through the
12878 minibuffer instead of graphical dialog.
12879
12880 To use, add @code{allow-emacs-pinentry} to @code{~/.gnupg/gpg-agent.conf},
12881 reload the configuration with @code{gpgconf --reload gpg-agent}, and start the
12882 server with @code{M-x pinentry-start}.")
12883 (license license:gpl3+))))
12884
12885 (define-public emacs-org-brain
12886 (package
12887 (name "emacs-org-brain")
12888 (version "0.5")
12889 (source
12890 (origin
12891 (method git-fetch)
12892 (uri (git-reference
12893 (url "https://github.com/Kungsgeten/org-brain.git")
12894 (commit "3faf9303af3f2356e3444e69c22dc6c5774047d1")))
12895 (file-name (git-file-name name version))
12896 (sha256
12897 (base32
12898 "1ad681zk6kckw2zbk0r4iaj4bw8cfqrbd1s3gdwgdjlzq81q9mmj"))))
12899 (build-system emacs-build-system)
12900 (home-page "https://github.com/Kungsgeten/org-brain")
12901 (synopsis "Org-mode wiki and concept-mapping for Emacs")
12902 (description "@code{emacs-org-brain} implements a variant of concept
12903 mapping in Emacs, using @code{org-mode}. An org-brain is a network of
12904 org-mode entries, where each entry is a file or a headline, and you can get a
12905 visual overview of the relationships between the entries: parents, children,
12906 siblings and friends. This visual overview can also be used to browse your
12907 entries. You can think of entries as nodes in a mind map, or pages in a
12908 wiki.")
12909 (license license:expat)))
12910
12911 (define-public emacs-recent-addresses
12912 (let ((commit "afbbfdc43b81e620acf827ca20d297e0c517b6eb")
12913 (revision "1"))
12914 (package
12915 (name "emacs-recent-addresses")
12916 (home-page "http://nschum.de/src/emacs/recent-addresses/")
12917 (version (git-version "0.1" revision commit))
12918 (source (origin
12919 (method git-fetch)
12920 (uri (git-reference
12921 ;; Note: Use a branch that works with Helm. Submitted
12922 ;; at <https://github.com/nschum/recent-addresses.el/pull/1>.
12923 (url "https://github.com/civodul/recent-addresses.el")
12924 (commit commit)))
12925 (sha256
12926 (base32
12927 "0ajrq0galjmdyjdjyxazykjyax3gh6hvfk4s7l657pi11g0q5zax"))
12928 (file-name (git-file-name name version))))
12929 (build-system emacs-build-system)
12930 (synopsis "Record recently-used email addressed and auto-complete them")
12931 (description
12932 "@code{recent-addresses} is an Emacs package that allows you to quickly
12933 look up previously used email addresses. It can be used alongside the Gnus
12934 email client.")
12935 (license license:gpl2+))))
12936
12937 (define-public emacs-fold-dwim
12938 (let ((commit "c46f4bb2ce91b4e307136320e72c28dd50b6cd8b")
12939 (revision "0"))
12940 (package
12941 (name "emacs-fold-dwim")
12942 (version (git-version "1.2" revision commit))
12943 (home-page "https://github.com/emacsattic/fold-dwim")
12944 (source (origin
12945 (method git-fetch)
12946 (uri (git-reference (url home-page) (commit commit)))
12947 (sha256
12948 (base32
12949 "1yz1wis31asw6xa5maliyd1ck2q02xnnh7dc6swgj9cb4wi7k6i1"))
12950 (file-name (git-file-name name version))))
12951 (build-system emacs-build-system)
12952 (synopsis "Unified user interface for Emacs folding modes")
12953 (description
12954 "DWIM stands for \"do what I mean\", as in the idea that one keystroke
12955 can do different things depending on the context. In this package, it means
12956 that, if the cursor is in a currently hidden folded construction, we want to
12957 show it; if it's not, we want to hide whatever fold the cursor is in.")
12958 (license license:gpl2+))))
12959
12960 (define-public emacs-markup-faces
12961 (package
12962 (name "emacs-markup-faces")
12963 (version "1.0.0")
12964 (source
12965 (origin
12966 (method url-fetch)
12967 (uri (string-append "https://stable.melpa.org/packages/markup-faces-"
12968 version ".el"))
12969 (sha256
12970 (base32
12971 "124dxbaa25fwxnpwsygpz7pw6da6dnnw7y2lic3jf8rgz7lw4v32"))))
12972 (build-system emacs-build-system)
12973 (home-page "https://github.com/sensorflo/markup-faces")
12974 (synopsis "Collection of Emacs faces for markup language modes")
12975 (description "emacs-markup-faces is like font-lock-faces, but tailored for
12976 markup languages instead programming languages. The sub group markup-faces-text
12977 is also intended for 'text viewing modes' such as info or (wo)man. This gives a
12978 common look and feel, or let's say theme, across different markup language modes
12979 and 'text viewing modes' respectively.")
12980 (license license:gpl3+)))
12981
12982 (define-public emacs-adoc-mode
12983 (package
12984 (name "emacs-adoc-mode")
12985 (version "0.6.6")
12986 (source
12987 (origin
12988 (method url-fetch)
12989 (uri (string-append "https://stable.melpa.org/packages/adoc-mode-"
12990 version ".el"))
12991 (sha256
12992 (base32
12993 "1c6hrgxxsnl2c19rgjykpm7r4xg9lp6bmk5z6bi7g8pqlrgwffcy"))))
12994 (build-system emacs-build-system)
12995 (propagated-inputs
12996 `(("emacs-markup-faces" ,emacs-markup-faces)))
12997 (home-page "https://github.com/sensorflo/adoc-mode/wiki")
12998 (synopsis "AsciiDoc mode for Emacs")
12999 (description "This package provides an Emacs major mode for editing AsciiDoc
13000 files. It focuses on highlighting the document to improve readability.")
13001 (license license:gpl2+)))
13002
13003 (define-public emacs-rust-mode
13004 (let ((commit
13005 ;; Last release is old (2016), use more recent commit to get bug
13006 ;; fixes.
13007 "64b4a2450e4d4c47f6307851c9b2598cd2254d68")
13008 (revision "0"))
13009 (package
13010 (name "emacs-rust-mode")
13011 (version (git-version "0.3.0" revision commit))
13012 (source (origin
13013 (method git-fetch)
13014 (uri
13015 (git-reference
13016 (url "https://github.com/rust-lang/rust-mode")
13017 (commit commit)))
13018 (file-name (git-file-name name version))
13019 (sha256
13020 (base32
13021 "0pbz36lljgb7bdgx3h3g0pq1nss1kvn8mhk1l3mknsmynd6w4nd8"))))
13022 (build-system emacs-build-system)
13023 (arguments
13024 `(#:phases
13025 (modify-phases %standard-phases
13026 (replace 'check
13027 (lambda _
13028 (invoke "sh" "run_rust_emacs_tests.sh"))))))
13029 (home-page "https://github.com/rust-lang/rust-mode")
13030 (synopsis "Major Emacs mode for editing Rust source code")
13031 (description "This package provides a major Emacs mode for editing Rust
13032 source code.")
13033 (license (list license:expat
13034 license:asl2.0)))))
13035
13036 (define-public emacs-ztree
13037 (let ((commit "c54425a094353ec40a8179f9eab3596f76c6cf94"))
13038 (package
13039 (name "emacs-ztree")
13040 (version (git-version "1.0.5" "1" commit))
13041 (source
13042 (origin
13043 (method git-fetch)
13044 (uri (git-reference
13045 (url "https://github.com/fourier/ztree")
13046 (commit commit)))
13047 (file-name (git-file-name name version))
13048 (sha256
13049 (base32
13050 "0j8fpxds8m1zi04nrs8vv21091abvh4n8ab76f1sgdxnp4l5cfb0"))))
13051 (build-system emacs-build-system)
13052 (home-page "https://github.com/fourier/ztree")
13053 (synopsis "Directory tree comparison mode for Emacs")
13054 (description "Ztree is a project dedicated to implementation of several
13055 text-tree applications inside GNU Emacs. It consists of 2 subprojects:
13056 @command{ztree-diff} and @command{ztree-dir} (the basis of
13057 @command{ztree-diff}).")
13058 (license license:gpl3))))
13059
13060 (define-public emacs-helm-org-contacts
13061 (let ((commit "0af703bd9a43032b89fdf5559673151d1ac2fffc"))
13062 (package
13063 (name "emacs-helm-org-contacts")
13064 (version (git-version "20180707" "1" commit))
13065 (source
13066 (origin
13067 (method git-fetch)
13068 (uri (git-reference
13069 (url "https://github.com/tmalsburg/helm-org-contacts")
13070 (commit commit)))
13071 (file-name (git-file-name name version))
13072 (sha256
13073 (base32
13074 "1cl7cm2ic9pg4vc9cdh84vzjj1x2lpd5ymimiva8h4l17kiphk4s"))))
13075 (build-system emacs-build-system)
13076 (propagated-inputs
13077 `(("emacs-dash" ,emacs-dash)
13078 ("emacs-helm" ,emacs-helm)
13079 ("emacs-s" ,emacs-s)))
13080 (home-page "https://github.com/tmalsburg/helm-org-contacts")
13081 (synopsis "Helm source for org-contacts")
13082 (description "This Helm source can be used to search contacts stored in
13083 org-contacts format. There are actions for inserting postal addresses, email
13084 addresses, and phone numbers in the buffer where @command{helm-org-contacts}
13085 was called.")
13086 (license license:gpl3))))
13087
13088 (define-public emacs-dired-du
13089 (package
13090 (name "emacs-dired-du")
13091 (version "0.5.1")
13092 (source
13093 (origin
13094 (method url-fetch)
13095 (uri (string-append
13096 "https://elpa.gnu.org/packages/dired-du-"
13097 version ".tar"))
13098 (sha256
13099 (base32
13100 "1091scnrjh0a4gja4z6jxic6ghy1yryv46qk9c76pmh50cpw6766"))))
13101 (build-system emacs-build-system)
13102 (home-page "http://elpa.gnu.org/packages/dired-du.html")
13103 (synopsis "Dired with recursive directory sizes")
13104 (description
13105 "Display the recursive size of directories in Dired.
13106 This file defines a minor mode @command{dired-du-mode} to show the recursive
13107 size of directories in Dired buffers. If @command{du} program is available,
13108 then the directory sizes are obtained with it. Otherwise, the directory sizes
13109 are obtained with Lisp. The former is faster and provide a more precise
13110 value. For directories where the user doesn't have read permission, the
13111 recursive size is not obtained. Once this mode is enabled, every new Dired
13112 buffer displays recursive dir sizes.")
13113 (license license:gpl3+)))
13114
13115 (define-public emacs-dired-rsync
13116 (package
13117 (name "emacs-dired-rsync")
13118 (version "0.4")
13119 (source (origin
13120 (method git-fetch)
13121 (uri (git-reference
13122 (url "https://github.com/stsquad/dired-rsync.git")
13123 (commit version)))
13124 (file-name (git-file-name name version))
13125 (sha256
13126 (base32
13127 "0jzbn0izxqgz719gb6fpr60zbcb6w1ama13ngpvrig82nlhs37fv"))))
13128 (build-system emacs-build-system)
13129 (propagated-inputs
13130 `(("emacs-s" ,emacs-s)
13131 ("emacs-dash" ,emacs-dash)))
13132 (home-page "https://github.com/stsquad/dired-rsync/")
13133 (synopsis "Support for rsync from Emacs dired buffers")
13134 (description "This package adds a single command @code{dired-rsync} which
13135 allows the user to copy marked files in a dired buffer via @code{rsync}. This
13136 is useful, especially for large files, because the copy happens in the
13137 background and doesn’t lock up Emacs. It is also more efficient than using
13138 tramps own encoding methods for moving data between systems.")
13139 (license license:gpl3+)))
13140
13141 (define-public emacs-pcre2el
13142 ;; Last release is very old so we get the latest commit.
13143 (let ((commit "0b5b2a2c173aab3fd14aac6cf5e90ad3bf58fa7d"))
13144 (package
13145 (name "emacs-pcre2el")
13146 (version (git-version "1.8" "1" commit))
13147 (source
13148 (origin
13149 (method git-fetch)
13150 (uri (git-reference
13151 (url "https://github.com/joddie/pcre2el")
13152 (commit commit)))
13153 (file-name (git-file-name name version))
13154 (sha256
13155 (base32
13156 "14br6ad138qx1z822wqssswqiihxiynz1k69p6mcdisr2q8yyi1z"))))
13157 (build-system emacs-build-system)
13158 (home-page "https://github.com/joddie/pcre2el")
13159 (synopsis "Convert between PCRE, Emacs and rx regexp syntax")
13160 (description "@code{pcre2el} or @code{rxt} (RegeXp Translator or RegeXp
13161 Tools) is a utility for working with regular expressions in Emacs, based on a
13162 recursive-descent parser for regexp syntax. In addition to converting (a
13163 subset of) PCRE syntax into its Emacs equivalent, it can do the following:
13164
13165 @itemize
13166 @item convert Emacs syntax to PCRE
13167 @item convert either syntax to @code{rx}, an S-expression based regexp syntax
13168 @item untangle complex regexps by showing the parse tree in @code{rx} form and
13169 highlighting the corresponding chunks of code
13170 @item show the complete list of strings (productions) matching a regexp,
13171 provided the list is finite
13172 @item provide live font-locking of regexp syntax (so far only for Elisp
13173 buffers – other modes on the TODO list).
13174 @end itemize\n")
13175 (license license:gpl3))))
13176
13177 (define-public emacs-magit-todos
13178 (package
13179 (name "emacs-magit-todos")
13180 (version "1.1.7")
13181 (source
13182 (origin
13183 (method git-fetch)
13184 (uri (git-reference
13185 (url "https://github.com/alphapapa/magit-todos")
13186 (commit version)))
13187 (file-name (git-file-name name version))
13188 (sha256
13189 (base32
13190 "0qagdxpik64n4rw9scy451ws5sw00v64ri9g2dcw7b66bx2c6c6w"))))
13191 (build-system emacs-build-system)
13192 (propagated-inputs
13193 `(("emacs-async" ,emacs-async)
13194 ("emacs-dash" ,emacs-dash)
13195 ("emacs-f" ,emacs-f)
13196 ("emacs-hl-todo" ,emacs-hl-todo)
13197 ("magit" ,emacs-magit)
13198 ("emacs-pcre2el" ,emacs-pcre2el)
13199 ("emacs-s" ,emacs-s)))
13200 (home-page "https://github.com/alphapapa/magit-todos")
13201 (synopsis "Show source files' TODOs (and FIXMEs, etc) in Magit status buffer")
13202 (description "This package displays keyword entries from source code
13203 comments and Org files in the Magit status buffer. Activating an item jumps
13204 to it in its file. By default, it uses keywords from @code{hl-todo}, minus a
13205 few (like NOTE).")
13206 (license license:gpl3)))
13207
13208 (define-public emacs-git-annex
13209 ;; Unreleased version has a fontification fix.
13210 (let ((commit "ebdb44aef1883f1b2b8058e05d30fb9315b03707")
13211 (revision "1"))
13212 (package
13213 (name "emacs-git-annex")
13214 (version (string-append "1.1-" revision "." (string-take commit 8)))
13215 (source
13216 (origin
13217 (method git-fetch)
13218 (uri (git-reference
13219 (url "https://github.com/jwiegley/git-annex-el")
13220 (commit commit)))
13221 (file-name (git-file-name name version))
13222 (sha256
13223 (base32
13224 "1mzv40gj7k10h7h5s43my8msgzjpj680qprqa9pp8nbyhl49v3wh"))))
13225 (build-system emacs-build-system)
13226 (home-page "https://github.com/jwiegley/git-annex-el")
13227 (synopsis "Emacs integration for git-annex")
13228 (description "Enhances Dired and buffers visiting annex files with
13229 git-annex functionality. In Dired, the names of annex files are shortened by
13230 hiding the symbolic links and fontified based on whether content is present.
13231 Commands for performing some common operations (e.g., unlocking and adding
13232 files) are provided.")
13233 (license license:gpl2+))))
13234
13235 (define-public emacs-hackernews
13236 (let ((commit "916c3da8da45c757f5ec2faeed57fa370513d4ac"))
13237 (package
13238 (name "emacs-hackernews")
13239 (version (git-version "0.5.0" "1" commit))
13240 (source
13241 (origin
13242 (method git-fetch)
13243 (uri (git-reference
13244 (url "https://github.com/clarete/hackernews.el")
13245 (commit commit)))
13246 (file-name (git-file-name name version))
13247 (sha256
13248 (base32
13249 "09bxaaczana1cfvxyk9aagjvdszkj0j1yldl5r4xa60b59lxihsg"))))
13250 (build-system emacs-build-system)
13251 (home-page "https://github.com/clarete/hackernews.el")
13252 (synopsis "Hacker News client for Emacs")
13253 (description "The @command{hackernews} package is able to fetch stories
13254 from six different Hacker News feeds, namely top, new, best, ask, show and job
13255 stories. The default feed is top stories, which corresponds to the Hacker
13256 News homepage.")
13257 (license license:gpl3))))
13258
13259 (define-public emacs-youtube-dl
13260 (let ((commit "7c9d7a7d05b72a7d1b1257a36c5e2b2567b185dd"))
13261 (package
13262 (name "emacs-youtube-dl")
13263 (version (git-version "1.0" "1" commit))
13264 (source
13265 (origin
13266 (method git-fetch)
13267 (uri (git-reference
13268 (url "https://github.com/skeeto/youtube-dl-emacs/")
13269 (commit commit)))
13270 (file-name (git-file-name name version))
13271 (sha256
13272 (base32
13273 "0mh4s089a4x8s380agzb2306kdp1hl204px1n5rrrrdcls7imnh6"))))
13274 (build-system emacs-build-system)
13275 (inputs
13276 `(("youtube-dl" ,youtube-dl)))
13277 (arguments
13278 `(#:phases
13279 (modify-phases %standard-phases
13280 (add-after 'unpack 'configure
13281 (lambda* (#:key inputs #:allow-other-keys)
13282 (let ((youtube-dl (assoc-ref inputs "youtube-dl")))
13283 ;; .el is read-only in git.
13284 (chmod "youtube-dl.el" #o644)
13285 ;; Specify the absolute file names of the various
13286 ;; programs so that everything works out-of-the-box.
13287 (emacs-substitute-variables
13288 "youtube-dl.el"
13289 ("youtube-dl-program"
13290 (string-append youtube-dl "/bin/youtube-dl")))))))))
13291 (home-page "https://github.com/skeeto/youtube-dl-emacs/")
13292 (synopsis "Emacs youtube-dl download manager")
13293 (description "This package manages a video download queue for
13294 @command{youtube-dl}, which serves as the back end. It manages a single
13295 @command{youtube-dl} subprocess, downloading one video at a time. New videos
13296 can be queued at any time.")
13297 (license license:unlicense))))
13298
13299 (define-public emacs-org-web-tools
13300 (package
13301 (name "emacs-org-web-tools")
13302 (version "1.0")
13303 (source
13304 (origin
13305 (method git-fetch)
13306 (uri (git-reference
13307 (url "https://github.com/alphapapa/org-web-tools")
13308 (commit version)))
13309 (file-name (git-file-name name version))
13310 (sha256
13311 (base32
13312 "0kak9h5ny00d39gnwspv53nadnag01brw2fq9zk5wpfc91h9bjng"))))
13313 (build-system emacs-build-system)
13314 (propagated-inputs
13315 `(("emacs-dash" ,emacs-dash)
13316 ("emacs-esxml" ,emacs-esxml)
13317 ("emacs-s" ,emacs-s)))
13318 (inputs
13319 `(("pandoc" ,ghc-pandoc)))
13320 (arguments
13321 `(#:phases
13322 (modify-phases %standard-phases
13323 (add-after 'unpack 'patch-exec-paths
13324 (lambda* (#:key inputs #:allow-other-keys)
13325 (let ((pandoc (assoc-ref inputs "pandoc")))
13326 (substitute* "org-web-tools.el"
13327 (("\"pandoc\"") (string-append "\"" pandoc "/bin/pandoc\"")))
13328 #t))))))
13329 (home-page "https://github.com/alphapapa/org-web-tools")
13330 (synopsis "Display/Process web page as Org-mode content")
13331 (description "This package contains library functions and commands useful
13332 for retrieving web page content and processing it into Org-mode content.
13333
13334 For example, you can copy a URL to the clipboard or kill-ring, then run a
13335 command that downloads the page, isolates the “readable” content with
13336 @command{eww-readable}, converts it to Org-mode content with Pandoc, and
13337 displays it in an Org-mode buffer. Another command does all of that but
13338 inserts it as an Org entry instead of displaying it in a new buffer.")
13339 (license license:gpl3+)))
13340
13341 (define-public emacs-blimp
13342 (let ((commit "e420763d6d18b5d1be552cdbc47f91418343db03"))
13343 (package
13344 (name "emacs-blimp")
13345 (version (git-version "0.0.0" "1" commit))
13346 (source
13347 (origin
13348 (method git-fetch)
13349 (uri (git-reference
13350 (url "https://github.com/walseb/blimp")
13351 (commit commit)))
13352 (file-name (git-file-name name version))
13353 (sha256
13354 (base32
13355 "09wmhpym516b81dfq8smdmysh1fn610dzlyvyl2rkx8600f0fizd"))))
13356 (build-system emacs-build-system)
13357 (propagated-inputs
13358 `(("emacs-eimp" ,emacs-eimp)))
13359 (home-page "https://github.com/walseb/blimp")
13360 (synopsis "Emacs wrapper around all Imagemagick commands")
13361 (description "Blimp (Bustling Image Manipulation Package) is a complete
13362 wrapper around all Imagemagick commands with descriptions, autocompletion (for
13363 some commands) and hints displayed in prompt using @command{eimp.el} to
13364 execute its commands and resize images.")
13365 (license license:gpl3+))))
13366
13367 (define-public emacs-synosaurus
13368 (let ((commit "8bf95b935976ec0a1964cf175ed57cc5f6f93bdb"))
13369 (package
13370 (name "emacs-synosaurus")
13371 (version (git-version "0.1.0" "1" commit))
13372 (source
13373 (origin
13374 (method git-fetch)
13375 (uri (git-reference
13376 (url "https://github.com/hpdeifel/synosaurus")
13377 (commit commit)))
13378 (file-name (git-file-name name version))
13379 (sha256
13380 (base32
13381 "15by9jccab6kyplxa6k0glzaivxkqdigl33gl2qi2cvy6f2q7gva"))))
13382 (build-system emacs-build-system)
13383 (propagated-inputs
13384 `(("wordnet" ,wordnet)))
13385 (arguments
13386 `(#:phases
13387 (modify-phases %standard-phases
13388 (add-after 'unpack 'configure
13389 (lambda* (#:key inputs outputs #:allow-other-keys)
13390 (let ((wn (assoc-ref inputs "wordnet")))
13391 ;; .el is read-only in git.
13392 (chmod "synosaurus-wordnet.el" #o644)
13393 ;; Specify the absolute file names of the various
13394 ;; programs so that everything works out-of-the-box.
13395 (emacs-substitute-variables
13396 "synosaurus-wordnet.el"
13397 ("wordnet-command"
13398 (string-append wn "/bin/wn")))))))))
13399 (home-page "https://github.com/hpdeifel/synosaurus")
13400 (synopsis "Extensible thesaurus mode for Emacs")
13401 (description "Synosaurus is a thesaurus fontend for Emacs with pluggable
13402 backends, including the @command{wordnet} offline backend.")
13403 (license license:gpl3+))))
13404
13405 (define-public emacs-editorconfig
13406 (package
13407 (name "emacs-editorconfig")
13408 (version "0.7.14")
13409 (source
13410 (origin
13411 (method git-fetch)
13412 (uri (git-reference
13413 (url "https://github.com/editorconfig/editorconfig-emacs")
13414 (commit (string-append "v" version))))
13415 (file-name (git-file-name name version))
13416 (sha256
13417 (base32
13418 "19j2428ij7sqvrqs7rqg1mcnv9109y6drqba40dkv3vrkk5d2yia"))))
13419 (build-system emacs-build-system)
13420 (home-page "https://github.com/editorconfig/editorconfig-emacs")
13421 (synopsis "Define and maintain consistent coding styles between different
13422 editors and IDEs")
13423 (description "The EditorConfig project consists of a file format for
13424 defining coding styles and a collection of text editor plugins that enable
13425 editors to read the file format and adhere to defined styles. EditorConfig
13426 files are easily readable and they work nicely with version control systems.")
13427 (license license:gpl3+)))
13428
13429 (define-public emacs-all-the-icons
13430 (package
13431 (name "emacs-all-the-icons")
13432 (version "3.2.0")
13433 (source
13434 (origin
13435 (method git-fetch)
13436 (uri (git-reference
13437 (url "https://github.com/domtronn/all-the-icons.el.git")
13438 (commit version)))
13439 (file-name (git-file-name name version))
13440 (sha256
13441 (base32
13442 "1sdl33117lccznj38021lwcdnpi9nxmym295q6y460y4dm4lx0jn"))))
13443 (build-system emacs-build-system)
13444 (arguments
13445 `(#:include '("\\.el$" "^data/" "^fonts/")
13446 ;; Compiling "test/" fails with "Symbol’s value as variable is void:
13447 ;; all-the-icons--root-code". Ignoring tests.
13448 #:exclude '("^test/")
13449 #:tests? #f))
13450 (propagated-inputs
13451 `(("f" ,emacs-f)
13452 ("memoize" ,emacs-memoize)))
13453 (home-page "https://github.com/domtronn/all-the-icons.el")
13454 (synopsis "Collect icon fonts and propertize them within Emacs")
13455 (description "All-the-icons is a utility package to collect various icon
13456 fonts and propertize them within Emacs. Icon fonts allow you to propertize
13457 and format icons the same way you would normal text. This enables things such
13458 as better scaling of and anti aliasing of the icons.")
13459 ;; Package is released under Expat license. Elisp files are licensed
13460 ;; under GPL3+. Fonts come with various licenses: Expat for
13461 ;; "all-the-icons.ttf" and "file-icons.ttf", Apache License 2.0 for
13462 ;; "material-design-icons.ttf", and SIL OFL 1.1 for "fontawesome.ttf",
13463 ;; "ocitcons.ttf" and "weathericons.ttf".
13464 (license
13465 (list license:expat license:gpl3+ license:silofl1.1 license:asl2.0))))
13466
13467 (define-public emacs-powerline
13468 (package
13469 (name "emacs-powerline")
13470 (version "2.4")
13471 (source
13472 (origin
13473 (method git-fetch)
13474 (uri (git-reference
13475 (url "https://github.com/milkypostman/powerline.git")
13476 (commit version)))
13477 (file-name (git-file-name name version))
13478 (sha256
13479 (base32
13480 "1hp3xp18943n0rlggz55150020ivw8gvi1vyxkr4z8xhpwq4gaar"))))
13481 (build-system emacs-build-system)
13482 (home-page "https://github.com/milkypostman/powerline/")
13483 (synopsis "Mode-line plugin for Emacs")
13484 (description "Powerline is a utility plugin which allows you to create
13485 a better-looking, more functional Emacs mode-line. A collection of predefined
13486 themes comes with the package.")
13487 (license license:gpl3+)))
13488
13489 (define-public emacs-spaceline
13490 (package
13491 (name "emacs-spaceline")
13492 (version "2.0.1")
13493 (source
13494 (origin
13495 (method git-fetch)
13496 (uri (git-reference
13497 (url "https://github.com/TheBB/spaceline.git")
13498 (commit (string-append "v" version))))
13499 (file-name (git-file-name name version))
13500 (sha256
13501 (base32
13502 "1q8r95zfrh0vxna5ml2pq9b9f66clfqcl4d2qy2aizkvzyxg6skl"))))
13503 (build-system emacs-build-system)
13504 (propagated-inputs
13505 `(("dash" ,emacs-dash)
13506 ("powerline" ,emacs-powerline)
13507 ("s" ,emacs-s)))
13508 (home-page "https://github.com/TheBB/spaceline")
13509 (synopsis "Powerline theme from Spacemacs")
13510 (description "Spaceline provides Spacemacs' mode-line theme.
13511 This package provides features for three kinds of users.
13512
13513 @itemize
13514 @item You just want to use the Spacemacs mode-line theme and forget about it.
13515 @item You want to use something similar to the Spacemacs mode-line theme, but
13516 with a handful of easy tweaks.
13517 @item You want an easy-to-use library for building your own mode-line from
13518 scratch, and you think the Spacemacs theme looks good.
13519 @end itemize")
13520 (license license:gpl3+)))
13521
13522 (define-public emacs-column-marker
13523 (package
13524 (name "emacs-column-marker")
13525 (version "9")
13526 (source
13527 (origin
13528 (method url-fetch)
13529 (uri "https://www.emacswiki.org/emacs/download/column-marker.el")
13530 (sha256 (base32 "05bv198zhqw5hqq6cr11mhz02dpca74hhp1ycwq369m0yb2naxy9"))))
13531 (build-system emacs-build-system)
13532 (home-page "https://www.emacswiki.org/emacs/ColumnMarker")
13533 (synopsis "Emacs mode for highlighting columns")
13534 (description
13535 "With @code{column-marker.el} you can highlight any number of text columns.
13536 Three such highlight column markers are provided by default. This is
13537 especially useful for languages like COBOL or Fortran where certain columns
13538 have special meaning. It is also handy for aligning text across long vertical
13539 distances. Multi-column characters, such as @kbd{TAB} are treated
13540 correctly.")
13541 (license license:gpl2+)))
13542
13543 (define-public emacs-slime-repl-ansi-color
13544 (let ((commit "ad03263f5d4de473bc173b64a6fc3dc1106393d7"))
13545 (package
13546 (name "emacs-slime-repl-ansi-color")
13547 (version (git-version "0.0.0" "1" commit))
13548 (source (origin
13549 (method git-fetch)
13550 (uri (git-reference
13551 (url "https://github.com/deadtrickster/slime-repl-ansi-color")
13552 (commit commit)))
13553 (file-name (git-file-name name version))
13554 (sha256
13555 (base32
13556 "0bpg7gxz310x7bnlg324c507sxc5gxwwz6h64h6kdq141r73vbi4"))))
13557 (build-system emacs-build-system)
13558 (home-page "https://github.com/deadtrickster/slime-repl-ansi-color")
13559 (synopsis "Color ANSI codes in the REPL of SLIME")
13560 (description "Color ANSI codes in the REPL of SLIME")
13561 (license license:gpl2+))))
13562
13563 (define-public emacs-helm-slime
13564 (package
13565 (name "emacs-helm-slime")
13566 (version "0.3.0")
13567 (source (origin
13568 (method git-fetch)
13569 (uri (git-reference
13570 (url "https://github.com/emacs-helm/helm-slime")
13571 (commit version)))
13572 (file-name (git-file-name name version))
13573 (sha256
13574 (base32
13575 "1qhb9446rpj17pm0hi3miy5gs5k3ld43bq29kzy0y26bf7ivfcjv"))))
13576 (build-system emacs-build-system)
13577 (propagated-inputs
13578 `(("emacs-helm" ,emacs-helm)
13579 ("emacs-slime" ,emacs-slime)))
13580 (home-page "https://github.com/emacs-helm/helm-slime")
13581 (synopsis "Helm for SLIME, the Superior Lisp Interaction Mode for Emacs")
13582 (description "Helm-SLIME defines a few new commands:
13583
13584 @itemize
13585 @item helm-slime-complete: Select a symbol from the SLIME completion systems.
13586 @item helm-slime-list-connections: Yet another slime-list-connections with Helm.
13587 @item: helm-slime-apropos: Yet another slime-apropos with Helm.
13588 @item helm-slime-repl-history: Select an input from the SLIME REPL history and insert it.
13589 @end itemize\n")
13590 (license license:gpl3+)))
13591
13592 (define-public emacs-gtk-look
13593 (package
13594 (name "emacs-gtk-look")
13595 (version "29")
13596 (source (origin
13597 (method url-fetch)
13598 (uri "https://download.tuxfamily.org/user42/gtk-look.el")
13599 (sha256
13600 (base32
13601 "14p2nwrd51cr1v06fxbjjn6jdrkf9d6vcxhmscm0kl677s25ypsp"))))
13602 (build-system emacs-build-system)
13603 (arguments
13604 `(#:phases
13605 (modify-phases %standard-phases
13606 (add-after 'unpack 'configure
13607 (lambda _
13608 ;; File is read-only.
13609 (chmod "gtk-look.el" #o644)
13610 (emacs-substitute-variables "gtk-look.el"
13611 ("gtk-lookup-devhelp-indices"
13612 '(list (expand-file-name "~/.guix-profile/share/gtk-doc/html/*/*.devhelp*"))))
13613 #t)))))
13614 (home-page "http://user42.tuxfamily.org/gtk-look/index.html")
13615 (synopsis "Find and display HTML documentation for GTK, GNOME and Glib")
13616 (description "@command{gtk-look} finds and displays HTML documentation for
13617 GTK, GNOME and Glib functions and variables in Emacs, similar to what
13618 info-lookup-symbol does for info files (C-h S). The documentation is expected
13619 to be devhelp indexes with HTML files. The location of the indexes can be
13620 customized. In addition to C code development @command{gtk-look} is good for
13621
13622 @itemize
13623 @item @command{perl-gtk2}, recognising class funcs like
13624 @command{Gtk2::Label->new} and bare method names like @command{set_text}.
13625 @item @command{guile-gnome}, recognising methods like @command{set-text} and
13626 classes like @command{<gtk-window>}.
13627 @end itemize\n")
13628 (license license:gpl3+)))
13629
13630 (define-public emacs-ov
13631 (package
13632 (name "emacs-ov")
13633 (version "1.0.6")
13634 (source (origin
13635 (method git-fetch)
13636 (uri (git-reference
13637 (url "https://github.com/ShingoFukuyama/ov.el.git")
13638 (commit version)))
13639 (file-name (git-file-name name version))
13640 (sha256
13641 (base32
13642 "0qxk2rf84j86syxi8xknsq252irwg7sz396v3bb4wqz4prpj0kzc"))))
13643 (build-system emacs-build-system)
13644 (home-page "https://github.com/ShingoFukuyama/ov.el")
13645 (synopsis "Overlay library for Emacs Lisp")
13646 (description "@code{ov.el} provides a simple way to manipulate overlays in
13647 Emacs.")
13648 (license license:gpl3+)))
13649
13650 (define-public emacs-matrix-client
13651 (let ((commit "a0623667b07a4bf60980c97b078e9faed97ace79"))
13652 (package
13653 (name "emacs-matrix-client")
13654 (version (git-version "0.0.0" "4" commit))
13655 (source (origin
13656 (method git-fetch)
13657 (uri (git-reference
13658 (url "https://github.com/jgkamat/matrix-client-el.git")
13659 (commit commit)))
13660 (file-name (git-file-name name version))
13661 (sha256
13662 (base32
13663 "1zya8id3y9wzjaj7nplq7br6nhm3lsskv0fkn1xr1y77fzcfgcdb"))))
13664 (build-system emacs-build-system)
13665 (arguments
13666 `(#:phases
13667 (modify-phases %standard-phases
13668 (add-after 'unpack 'add-missing-require
13669 ;; Fix a filter error at runtime due to a missing require.
13670 ;; Reported upstream:
13671 ;; <https://github.com/alphapapa/matrix-client.el/issues/76>
13672 (lambda _
13673 (substitute* "matrix-client-room.el"
13674 (("\\(require 'dash-functional\\)" all)
13675 (string-append all "\n" "(require 'anaphora)")))
13676 #t)))))
13677 (propagated-inputs
13678 `(("a" ,emacs-a)
13679 ("anaphora" ,emacs-anaphora)
13680 ("dash" ,emacs-dash)
13681 ("esxml" ,emacs-esxml)
13682 ("f" ,emacs-f)
13683 ("frame-purpose" ,emacs-frame-purpose)
13684 ("ht" ,emacs-ht)
13685 ("ov" ,emacs-ov)
13686 ("rainbow-identifiers" ,emacs-rainbow-identifiers)
13687 ("request" ,emacs-request)
13688 ("s" ,emacs-s)
13689 ("tracking" ,emacs-tracking)))
13690 (home-page "https://github.com/jgkamat/matrix-client-el")
13691 (synopsis "Matrix client for Emacs")
13692 (description "@code{matrix-client} is a simple chat UI to Matrix.org
13693 rooms. It also provides an API which allows Emacs to seamlessly create
13694 RPC channels with users and other software.")
13695 (license license:gpl3+))))
13696
13697 (define-public emacs-sesman
13698 (package
13699 (name "emacs-sesman")
13700 (version "0.3.3")
13701 (source
13702 (origin
13703 (method git-fetch)
13704 (uri (git-reference
13705 (url "https://github.com/vspinu/sesman.git")
13706 (commit (string-append "v" version))))
13707 (file-name (git-file-name name version))
13708 (sha256
13709 (base32
13710 "0r32f8ma9ddczxrrdz0nadp14j3zmk10q1ch02gb82synkx3xdra"))))
13711 (build-system emacs-build-system)
13712 (arguments
13713 `(#:tests? #t
13714 #:test-command '("make" "test")))
13715 (home-page "https://github.com/vspinu/sesman")
13716 (synopsis "Session manager for Emacs based IDEs")
13717 (description "Sesman provides facilities for session management and
13718 interactive session association with the current contexts (project, directory,
13719 buffers). While sesman can be used to manage arbitrary sessions, it primary
13720 targets the Emacs based IDEs (CIDER, ESS, Geiser, Robe, SLIME etc.)")
13721 (license license:gpl3+)))
13722
13723 (define-public emacs-buttercup
13724 (package
13725 (name "emacs-buttercup")
13726 (version "1.16")
13727 (source
13728 (origin
13729 (method git-fetch)
13730 (uri (git-reference
13731 (url "https://github.com/jorgenschaefer/emacs-buttercup.git")
13732 (commit (string-append "v" version))))
13733 (file-name (git-file-name name version))
13734 (sha256
13735 (base32
13736 "0dckgcyzsav6ld78bcyrrygy1cz1jvqgav6vy8f6klpmk3r8xrl1"))))
13737 (build-system emacs-build-system)
13738 (arguments
13739 `(#:tests? #t
13740 #:test-command '("make" "test")
13741 #:phases
13742 (modify-phases %standard-phases
13743 (add-after 'install 'install-bin
13744 (lambda* (#:key outputs #:allow-other-keys)
13745 (install-file "bin/buttercup"
13746 (string-append (assoc-ref outputs "out") "/bin"))
13747 #t)))))
13748 (home-page "https://github.com/jorgenschaefer/emacs-buttercup")
13749 (synopsis "Behavior driven emacs lisp testing framework")
13750 (description "Buttercup is a behavior-driven development framework for
13751 testing Emacs Lisp code. It allows to group related tests so they can share
13752 common set-up and tear-down code, and allows the programmer to \"spy\" on
13753 functions to ensure they are called with the right arguments during testing.")
13754 (license license:gpl3+)))
13755
13756 (define-public emacs-wordnut
13757 (let ((commit "feac531404041855312c1a046bde7ea18c674915")
13758 (revision "0"))
13759 (package
13760 (name "emacs-wordnut")
13761 (version (git-version "0.1" revision commit))
13762 (home-page "https://github.com/gromnitsky/wordnut")
13763 (source (origin
13764 (method git-fetch)
13765 (uri (git-reference (url home-page) (commit commit)))
13766 (sha256
13767 (base32
13768 "1jl0b6g64a9w0q7bfvwha67vgws5xd15b7mkfyb5gkz3pymqhfxn"))
13769 (patches
13770 (search-patches "emacs-wordnut-require-adaptive-wrap.patch"))
13771 (file-name (git-file-name name version))))
13772 (build-system emacs-build-system)
13773 (propagated-inputs
13774 `(("wordnet" ,wordnet)
13775 ("emacs-adaptive-wrap" ,emacs-adaptive-wrap)))
13776 (synopsis "Major mode for WordNet")
13777 (description "This Emacs package provides an interface for
13778 @code{wordnet}. Features include completion, if the query is not found
13779 too ambiguous and navigation in the result buffer.")
13780 (license license:gpl3+))))
13781
13782 (define-public emacs-frame-purpose
13783 (package
13784 (name "emacs-frame-purpose")
13785 (version "1.0")
13786 (source (origin
13787 (method git-fetch)
13788 (uri (git-reference
13789 (url "https://github.com/alphapapa/frame-purpose.el.git")
13790 (commit version)))
13791 (sha256
13792 (base32
13793 "0jq2aam1yvccw887ighd1wm2xkvk5bv53ffiz3crcl16a255aj4q"))
13794 (file-name (git-file-name name version))))
13795 (build-system emacs-build-system)
13796 (inputs
13797 `(("dash" ,emacs-dash)))
13798 (synopsis "Purpose-specific frames for Emacs")
13799 (description "@code{frame-purpose} makes it easy to open purpose-specific
13800 frames that only show certain buffers, e.g. by buffers’ major mode, their
13801 filename or directory, etc, with custom frame/X-window titles, icons, and
13802 other frame parameters.")
13803 (home-page "https://github.com/alphapapa/frame-purpose.el")
13804 (license license:gpl3+)))
13805
13806 (define-public emacs-arduino-mode
13807 (let ((commit "3e2bad4569ad26e929e6db2cbcff0d6d36812698")) ;no release yet
13808 (package
13809 (name "emacs-arduino-mode")
13810 (version (git-version "0" "0" commit))
13811 (source (origin
13812 (method git-fetch)
13813 (uri (git-reference
13814 (url "https://github.com/bookest/arduino-mode.git")
13815 (commit commit)))
13816 (sha256
13817 (base32
13818 "1yvaqjc9hadbnnay5fprnh890xsp53kidad1zpb4a5z4a5z61n3c"))
13819 (file-name (git-file-name name version))))
13820 (build-system emacs-build-system)
13821 (synopsis "Emacs major mode for editing Arduino sketches")
13822 (description "Emacs major mode for editing Arduino sketches.")
13823 (home-page "https://github.com/bookest/arduino-mode")
13824 (license license:gpl3+))))
13825
13826 (define-public emacs-general
13827 (let ((commit "675050199b5a30d54a24b58a367db32c0bdc47f5"))
13828 (package
13829 (name "emacs-general")
13830 (version (git-version "0" "0" commit))
13831 (home-page "https://github.com/noctuid/general.el")
13832 (source (origin
13833 (method git-fetch)
13834 (uri (git-reference
13835 (url (string-append home-page ".git"))
13836 (commit commit)))
13837 (sha256
13838 (base32
13839 "175yyhzk57yk1sskxh3d2jzhrh2waiibbcfsll167qxr117yji5h"))
13840 (file-name (git-file-name name version))))
13841 (build-system emacs-build-system)
13842 (synopsis "More convenient key definitions in emacs")
13843 (description "@code{general.el} provides a more convenient method for
13844 binding keys in emacs (for both evil and non-evil users). Like
13845 @code{use-package}, which provides a convenient, unified interface for
13846 managing packages, @code{general.el} is intended to provide a convenient,
13847 unified interface for key definitions. While this package does implement some
13848 completely new functionality (such as the ability to make vim-style
13849 keybindings under non-prefix keys with an optional timeout), its primary
13850 purpose is to build on existing functionality to make key definition more
13851 clear and concise. @code{general-define-key} is user-extensible and supports
13852 defining multiple keys in multiple keymaps at once, implicitly wrapping key
13853 strings with (@code{kbd ...}), using named prefix key sequences (like the
13854 leader key in vim), and much more.")
13855 (license license:gpl3+))))
13856
13857 (define-public emacs-tldr
13858 (let ((commit "398b197c8d2238628b07e1b32d0f373876279f4c"))
13859 (package
13860 (name "emacs-tldr")
13861 (version (git-version "0" "0" commit))
13862 (home-page "https://github.com/kuanyui/tldr.el")
13863 (source (origin
13864 (method git-fetch)
13865 (uri (git-reference
13866 (url (string-append home-page ".git"))
13867 (commit commit)))
13868 (sha256
13869 (base32
13870 "0iq7qlis6c6r2qkdpncrhh5vsihkhvy5x4y1y8cjb7zxkh62w33f"))
13871 (file-name (git-file-name name version))))
13872 (build-system emacs-build-system)
13873 (synopsis "Simplified and community-driven man pages for Emacs")
13874 (description "@code{emacs-tldr} allows the user to access tldr pages
13875 from within emacs. The @code{tldr} pages are a community effort to simplify
13876 the man pages with practical examples.")
13877 (license license:wtfpl2))))
13878
13879 (define-public emacs-window-layout
13880 (package
13881 (name "emacs-window-layout")
13882 (version "1.4")
13883 (home-page "https://github.com/kiwanami/emacs-window-layout")
13884 (source (origin
13885 (method git-fetch)
13886 (uri (git-reference
13887 (url home-page)
13888 (commit (string-append "v" version))))
13889 (sha256
13890 (base32
13891 "0wgqi8r844lbx52fn6az8c1n8m681rp6dkfzd54wmdk1ka7zmvv6"))
13892 (file-name (git-file-name name version))))
13893 (build-system emacs-build-system)
13894 (synopsis "Simple window layout management framework for emacs")
13895 (description "A window-layout management library that can split a frame
13896 or a window into some windows according to a layout recipe.")
13897 (license license:gpl3+)))
13898
13899 (define-public emacs-e2wm
13900 (package
13901 (name "emacs-e2wm")
13902 (version "1.4")
13903 (home-page "https://github.com/kiwanami/emacs-window-manager")
13904 (source (origin
13905 (method git-fetch)
13906 (uri (git-reference
13907 (url home-page)
13908 (commit (string-append "v" version))))
13909 (sha256
13910 (base32
13911 "12midsrx07pdrsr1qbl2rpi7xyhxqx08bkz7n7gf8vsmqkpfp56s"))
13912 (file-name (git-file-name name version))))
13913 (build-system emacs-build-system)
13914 (propagated-inputs
13915 `(("emacs-window-layout" ,emacs-window-layout)))
13916 (synopsis "Equilibrium Emacs Window Manager")
13917 (description "E2WM is a window manager for Emacs. It enables to
13918 customize the place of pop-up window, how the windows are split, how the
13919 buffers are located in the windows, keybinds to manipulate windows and
13920 buffers, etc. It also has plug-ins to help your Emacs life.")
13921 (license license:gpl3+)))
13922
13923 (define-public emacs-ctable
13924 (let ((commit "b8830d1ca95abb100a81bc32011bd17d5ecba000"))
13925 (package
13926 (name "emacs-ctable")
13927 (version (git-version "0.1.2" "1" commit))
13928 (home-page "https://github.com/kiwanami/emacs-ctable")
13929 (source (origin
13930 (method git-fetch)
13931 (uri (git-reference
13932 (url home-page)
13933 (commit commit)))
13934 (sha256
13935 (base32
13936 "0pg303pnqscrsbx9579hc815angszsgf9vpd2z2f8p4f4ka6a00h"))
13937 (file-name (git-file-name name version))))
13938 (build-system emacs-build-system)
13939 (synopsis "Table component for Emacs Lisp")
13940 (description "This program is a table component for Emacs Lisp. Other
13941 programs can use this table component for the application UI.")
13942 (license license:gpl3+))))
13943
13944 (define-public emacs-epc
13945 (let ((commit "e1bfa5ca163273859336e3cc89b4b6460f7f8cda"))
13946 (package
13947 (name "emacs-epc")
13948 (version (git-version "0.1.1" "1" commit))
13949 (home-page "https://github.com/kiwanami/emacs-epc")
13950 (source (origin
13951 (method git-fetch)
13952 (uri (git-reference
13953 (url home-page)
13954 (commit commit)))
13955 (sha256
13956 (base32
13957 "15nkrjgi64f829isfd6xrhl4zw8jirr8pkas7nisrbk1av868hx0"))
13958 (file-name (git-file-name name version))))
13959 (build-system emacs-build-system)
13960 (propagated-inputs
13961 `(("emacs-deferred" ,emacs-deferred)
13962 ("emacs-ctable" ,emacs-ctable)))
13963 (synopsis "RPC stack for Emacs Lisp")
13964 (description "This program is an asynchronous RPC stack for Emacs.
13965 Using this RPC stack, Emacs can communicate with the peer process
13966 smoothly. Because the protocol employs S-expression encoding and consists of
13967 asynchronous communications, the RPC response is fairly good.")
13968 (license license:gpl3+))))
13969
13970 (define-public emacs-edbi
13971 (let ((commit "6f50aaf4bde75255221f2292c7a4ad3fa9d918c0"))
13972 (package
13973 (name "emacs-edbi")
13974 (version (git-version "0.1.3" "1" commit))
13975 (home-page "https://github.com/kiwanami/emacs-edbi")
13976 (source (origin
13977 (method git-fetch)
13978 (uri (git-reference
13979 (url home-page)
13980 (commit commit)))
13981 (sha256
13982 (base32
13983 "0x0igyvdcm4863n7zndvcv6wgzwgn7324cbfjja6xd7r0k936zdy"))
13984 (file-name (git-file-name name version))))
13985 (build-system emacs-build-system)
13986 (inputs
13987 `(("perl" ,perl)
13988 ("perl-rpc-epc-service" ,perl-rpc-epc-service)
13989 ("perl-dbi" ,perl-dbi)
13990 ;; TODO: Adding support for perl-dbd-mysql and others would
13991 ;; dramatically increase the closure size. Make several packages?
13992 ("perl-dbd-sqlite" ,perl-dbd-sqlite)))
13993 (propagated-inputs
13994 `(("emacs-e2wm" ,emacs-e2wm)
13995 ("emacs-epc" ,emacs-epc)))
13996 (arguments
13997 `(#:include '("\\.el$" "\\.pl$")
13998 #:phases
13999 (modify-phases %standard-phases
14000 (add-after 'install 'patch-path
14001 (lambda* (#:key inputs outputs #:allow-other-keys)
14002 (let ((perl (assoc-ref inputs "perl"))
14003 (dir (string-append (assoc-ref outputs "out")
14004 "/share/emacs/site-lisp/guix.d/edbi-"
14005 ,version)))
14006 (substitute* (string-append dir "/edbi.el")
14007 (("\"perl\"") (string-append "\"" perl "/bin/perl\"")))
14008 (chmod (string-append dir "/edbi-bridge.pl") #o555)
14009 (wrap-program (string-append dir "/edbi-bridge.pl")
14010 `("PERL5LIB" ":" prefix (,(getenv "PERL5LIB"))))
14011 #t))))))
14012 (synopsis "Database Interface for Emacs Lisp")
14013 (description "This program connects the database server through Perl's
14014 DBI, and provides DB-accessing API and the simple management UI.")
14015 (license license:gpl3+))))
14016
14017 (define-public emacs-edbi-sqlite
14018 (let ((commit "52cb9ca1af7691b592f2cfd2f007847e7a4ccd5f"))
14019 (package
14020 (name "emacs-edbi-sqlite")
14021 (version (git-version "0.1.1" "1" commit))
14022 (home-page "https://github.com/proofit404/edbi-sqlite")
14023 (source (origin
14024 (method git-fetch)
14025 (uri (git-reference
14026 (url home-page)
14027 (commit commit)))
14028 (sha256
14029 (base32
14030 "1vll81386fx90lq5sy4rlxcik6mvw7zx5cc51f0yaca9bkcckp51"))
14031 (file-name (git-file-name name version))))
14032 (build-system emacs-build-system)
14033 (propagated-inputs
14034 `(("emacs-edbi" ,emacs-edbi)))
14035 (synopsis "Open SQLite files in Emacs")
14036 (description "This package is a convenience wrapper for @command{edbi}
14037 to open SQLite databases.")
14038 (license license:gpl3+))))
14039
14040 (define-public emacs-nix-mode
14041 (package
14042 (name "emacs-nix-mode")
14043 (version "1.2.2")
14044 (source
14045 (origin
14046 (method git-fetch)
14047 (uri (git-reference
14048 (url "https://github.com/NixOS/nix-mode.git")
14049 (commit (string-append "v" version))))
14050 (file-name (git-file-name name version))
14051 (sha256
14052 (base32 "1vz3s2jx14nzy53f04d821n4f2s22ys5h9s7af6cnpynkwawyhhq"))))
14053 (build-system emacs-build-system)
14054 (inputs
14055 `(("emacs-company" ,emacs-company)
14056 ("emacs-mmm-mode" ,emacs-mmm-mode)))
14057 (home-page "https://github.com/NixOS/nix-mode")
14058 (synopsis "Emacs major mode for editing Nix expressions")
14059 (description "@code{nixos-mode} provides an Emacs major mode for editing
14060 Nix expressions. It supports syntax highlighting, indenting and refilling of
14061 comments.")
14062 (license license:lgpl2.1+)))
14063
14064 (define-public emacs-simple-mpc
14065 ;; There have been no releases.
14066 (let ((commit "bee8520e81292b4c7353e45b193f9a13b482f5b2")
14067 (revision "1"))
14068 (package
14069 (name "emacs-simple-mpc")
14070 (version (git-version "0" revision commit))
14071 (source
14072 (origin
14073 (method git-fetch)
14074 (uri (git-reference
14075 (url "https://github.com/jorenvo/simple-mpc.git")
14076 (commit commit)))
14077 (file-name (git-file-name name version))
14078 (sha256
14079 (base32
14080 "1ja06pv007cmzjjgka95jlg31k7d29jrih1yxyblsxv85s9sg21q"))))
14081 (build-system emacs-build-system)
14082 (propagated-inputs `(("emacs-s" ,emacs-s)))
14083 (home-page "https://github.com/jorenvo/simple-mpc")
14084 (synopsis "Simple Emacs frontend to mpc")
14085 (description "This package provides an Emacs major mode which acts as a
14086 front end to mpc, a client for the @dfn{Music Player Daemon} (MPD).")
14087 (license license:gpl3+))))
14088
14089 (define-public emacs-mkmcc-gnuplot-mode
14090 (package
14091 (name "emacs-mkmcc-gnuplot-mode")
14092 (version "1.2.0")
14093 (source
14094 (origin
14095 (method git-fetch)
14096 (uri (git-reference
14097 (url "https://github.com/mkmcc/gnuplot-mode")
14098 (commit "601f6392986f0cba332c87678d31ae0d0a496ce7")))
14099 (file-name (git-file-name name version))
14100 (sha256
14101 (base32
14102 "14f0yh1rjqc3337j4sbqzfb7pjim2c8a7wk1a73xkrdkmjn82vgb"))))
14103 (build-system emacs-build-system)
14104 (home-page "https://mkmcc.github.io/software/gnuplot-mode.html")
14105 (synopsis "Minimal emacs major mode for editing gnuplot scripts")
14106 (description "@code{emacs-mkmcc-gnuplot-mode} is a minimal emacs major
14107 mode for editing gnuplot scripts. It provides syntax highlighting,
14108 indentation and a command to plot the file.")
14109 (license license:gpl3+)))
14110
14111 (define-public emacs-dtrt-indent
14112 (package
14113 (name "emacs-dtrt-indent")
14114 (version "0.8")
14115 (source (origin
14116 (method git-fetch)
14117 (uri (git-reference
14118 (url "https://github.com/jscheid/dtrt-indent")
14119 (commit version)))
14120 (file-name (git-file-name name version))
14121 (sha256
14122 (base32
14123 "0pgf0pvqd8k4yzhdn2df9lp0y8hmlm2ccrh07jivwlccs95pcz7z"))))
14124 (build-system emacs-build-system)
14125 (home-page "https://github.com/jscheid/dtrt-indent")
14126 (synopsis "Minor mode that guesses the indentation offset")
14127 (description "This package provides a minor mode that guesses the
14128 indentation offset originally used for creating source code files and
14129 transparently adjusts the corresponding settings in Emacs, making it more
14130 convenient to edit foreign files.")
14131 (license license:gpl2+)))
14132
14133 (define-public emacs-repo
14134 (package
14135 (name "emacs-repo")
14136 (version "0.1.3")
14137 (source (origin
14138 (method git-fetch)
14139 (uri (git-reference
14140 (url "https://github.com/canatella/repo-el")
14141 (commit version)))
14142 (file-name (git-file-name name version))
14143 (sha256
14144 (base32
14145 "0rbvcvm7bfr6ncji7cllfxyyr6x7n9fx863byp243phsj3n93adz"))))
14146 (build-system emacs-build-system)
14147 (native-inputs
14148 `(("emacs-el-mock" ,emacs-el-mock)
14149 ("ert-runner" ,emacs-ert-runner)))
14150 (propagated-inputs
14151 `(("emacs-f" ,emacs-f)
14152 ("magit" ,emacs-magit)))
14153 (home-page "https://github.com/canatella/repo-el")
14154 (synopsis "Emacs interface for the Google Repo tool")
14155 (description "This package provides integration of the Google Repo tool
14156 with emacs. It displays the output of the @code{repo status} command in a
14157 buffer and launches Magit from the status buffer for the project at point.")
14158 (license license:gpl3+)))
14159
14160 (define-public emacs-alect-themes
14161 (package
14162 (name "emacs-alect-themes")
14163 (version "0.9")
14164 (source (origin
14165 (method git-fetch)
14166 (uri (git-reference
14167 (url "https://github.com/alezost/alect-themes")
14168 (commit (string-append "v" version))))
14169 (file-name (git-file-name name version))
14170 (sha256
14171 (base32
14172 "0nffxpdm0sa7bynwi0rmlwpc4qmvbda5ankhzz7fmk4ap9fkjxv9"))))
14173 (build-system emacs-build-system)
14174 (home-page "https://github.com/alezost/alect-themes")
14175 (synopsis "Low contrast, light, dark and black color theme for Emacs")
14176 (description "@code{emacs-alect-themes} provides configurable light, dark
14177 and black color themes for Emacs. The themes are intended to be used with
14178 GUI.")
14179 (license license:gpl3+)))
14180
14181 (define-public emacs-google-c-style
14182 (let ((commit "6271f3f473ceb3a7fef99388a3040903b1a145f1")
14183 (revision "0"))
14184 (package
14185 (name "emacs-google-c-style")
14186 (version (git-version "0.1" revision commit))
14187 (source (origin
14188 (method git-fetch)
14189 (uri (git-reference
14190 (url "https://github.com/google/styleguide")
14191 (commit commit)))
14192 (file-name (git-file-name name version))
14193 (sha256
14194 (base32
14195 "1jghyyasdl15c4gaqaxmdn43am63k6bykn5ab83f1ahv9zi1krxk"))))
14196 (build-system emacs-build-system)
14197 (home-page "https://github.com/google/styleguide")
14198 (synopsis "Emacs settings file for Google C/C++ style")
14199 (description "@code{emacs-google-c-style} provides an Emacs settings
14200 file for Google C and C++ style.")
14201 (license license:gpl1+))))
14202
14203 (define-public emacs-redshank
14204 (let ((commit "f98e68f532e622bcd464292ca4a9cf5fbea14ebb")
14205 (revision "1"))
14206 (package
14207 (name "emacs-redshank")
14208 (version (git-version "0.1" revision commit))
14209 (source (origin
14210 (method git-fetch)
14211 (uri (git-reference
14212 (url "http://www.foldr.org/~michaelw/projects/redshank.git")
14213 (commit commit)))
14214 (file-name (git-file-name name version))
14215 (sha256
14216 (base32
14217 "1jdkgvd5xy9hl5q611jwah2n05abjp7qcy9sj4k1z11x0ii62b6p"))))
14218 (build-system emacs-build-system)
14219 (propagated-inputs
14220 `(("emacs-paredit" ,emacs-paredit)))
14221 (home-page "http://www.foldr.org/~michaelw/emacs/redshank/")
14222 (synopsis "Common Lisp Editing Extensions (for Emacs)")
14223 (description "Redshank is a collection of code-wrangling Emacs macros
14224 mostly geared towards Common Lisp, but some are useful for other Lisp
14225 dialects, too. Redshank's code transformations aim to be expression-based (as
14226 opposed to character-based).")
14227 (license license:gpl1+))))
14228
14229 (define-public emacs-disk-usage
14230 (package
14231 (name "emacs-disk-usage")
14232 (version "1.3.3")
14233 (home-page "https://gitlab.com/Ambrevar/emacs-disk-usage")
14234 (source
14235 (origin
14236 (method url-fetch)
14237 (uri (string-append
14238 "https://elpa.gnu.org/packages/disk-usage-"
14239 version
14240 ".el"))
14241 (sha256
14242 (base32
14243 "0h1jwznd41gi0vg830ilfgm01q05zknikzahwasm9cizwm2wyizj"))))
14244 (build-system emacs-build-system)
14245 (synopsis "Sort and browse disk usage listings with Emacs")
14246 (description "Disk Usage is a file system analyzer: it offers a tabulated
14247 view of file listings sorted by size. Directory sizes are computed
14248 recursively. The results are cached for speed.")
14249 (license license:gpl3+)))
14250
14251 (define-public emacs-orgit
14252 (let ((commit "2456436a7e64d26bcf455b3890a586acaa3e7f93"))
14253 (package
14254 (name "emacs-orgit")
14255 (version (git-version "1.5.1" "2" commit))
14256 (home-page "https://github.com/magit/orgit")
14257 (source (origin
14258 (method git-fetch)
14259 (uri (git-reference
14260 (url home-page)
14261 (commit commit)))
14262 (file-name (git-file-name name version))
14263 (sha256
14264 (base32
14265 "1i52dq2ynddb1irgigr5mdwfbfd3bvm1f29jnzd7nlc0nk186nvh"))))
14266 (build-system emacs-build-system)
14267 (propagated-inputs
14268 `(("emacs-dash" ,emacs-dash)
14269 ("emacs-magit" ,emacs-magit)))
14270 (synopsis "Support for Org links to Magit buffers")
14271 (description "This package defines several Org link types, which can be
14272 used to link to certain Magit buffers. Use the command
14273 @command{org-store-link} while such a buffer is current to store a link.
14274 Later you can insert it into an Org buffer using the command
14275 @code{org-insert-link}.")
14276 (license license:gpl3+))))
14277
14278 (define-public emacs-amx
14279 (package
14280 (name "emacs-amx")
14281 (version "3.2")
14282 (source (origin
14283 (method git-fetch)
14284 (uri (git-reference
14285 (url "https://github.com/DarwinAwardWinner/amx")
14286 (commit (string-append "v" version))))
14287 (file-name (git-file-name name version))
14288 (sha256
14289 (base32
14290 "0bb8y1dmzyqkrb4mg6zndcsxppby3glridv2aap2pv05gv8kx7mj"))))
14291 (build-system emacs-build-system)
14292 (propagated-inputs `(("emacs-s" ,emacs-s)))
14293 (home-page "https://github.com/DarwinAwardWinner/amx")
14294 (synopsis "Alternative interface for M-x")
14295 (description "Amx is an alternative interface for M-x in Emacs. It
14296 provides several enhancements over the ordinary
14297 @code{execute-extended-command}, such as prioritizing your most-used commands
14298 in the completion list and showing keyboard shortcuts, and it supports several
14299 completion systems for selecting commands, such as ido and ivy.")
14300 (license license:gpl3+)))
14301
14302 (define-public emacs-lorem-ipsum
14303 (let ((commit "4b39f6fed455d67f635b3837cf5668bf74d0f6cd"))
14304 (package
14305 (name "emacs-lorem-ipsum")
14306 (version (git-version "0.2" "1" commit))
14307 (home-page "https://github.com/jschaf/emacs-lorem-ipsum/")
14308 (source (origin
14309 (method git-fetch)
14310 (uri (git-reference
14311 (url home-page)
14312 (commit commit)))
14313 (file-name (git-file-name name version))
14314 (sha256
14315 (base32
14316 "0a3b18p3vdjci89prsgdzjnfxsl8p67vjhf8ai4qdng7zvh50lir"))))
14317 (build-system emacs-build-system)
14318 (synopsis "Insert dummy pseudo Latin text in Emacs")
14319 (description "This package provides convenience functions to insert
14320 dummy Latin text into a buffer. This can be useful if you need to produce
14321 paragraphs or pages of text for testing purposes.")
14322 (license license:gpl3+))))
14323
14324 (define-public emacs-lisp-extra-font-lock
14325 (let ((commit "4605eccbe1a7fcbd3cacf5b71249435413b4db4f"))
14326 (package
14327 (name "emacs-lisp-extra-font-lock")
14328 (version (git-version "0.0.6" "1" commit))
14329 (home-page "https://github.com/Lindydancer/lisp-extra-font-lock")
14330 (source (origin
14331 (method git-fetch)
14332 (uri (git-reference
14333 (url home-page)
14334 (commit commit)))
14335 (file-name (git-file-name name version))
14336 (sha256
14337 (base32
14338 "152vcp3mdlv33jf5va4rinl1d0k960gnfhbrqqrafazgx9j3ya8w"))))
14339 (build-system emacs-build-system)
14340 (synopsis "Highlight bound variables and quoted expressions in Emacs")
14341 (description "This package highlight the location where local variables
14342 is created (bound, for example, by let) as well as quoted and backquoted
14343 constant expressions.")
14344 (license license:gpl3+))))
14345
14346 (define-public emacs-docker-tramp
14347 (package
14348 (name "emacs-docker-tramp")
14349 (version "0.1")
14350 (source
14351 (origin
14352 (method git-fetch)
14353 (uri (git-reference
14354 (url "https://github.com/emacs-pe/docker-tramp.el")
14355 (commit (string-append "v" version))))
14356 (file-name (git-file-name name version))
14357 (sha256
14358 (base32
14359 "0lxvzmfg52fhxrhbvp92zwp7cv4i1rlxnkyyzgngj3sjm7y60yvg"))))
14360 (build-system emacs-build-system)
14361 (home-page "https://github.com/emacs-pe/docker-tramp.el")
14362 (synopsis "TRAMP integration for docker containers")
14363 (description
14364 "This package provides a TRAMP method for Docker containers.")
14365 (license license:gpl3+)))
14366
14367 (define-public emacs-docker
14368 (package
14369 (name "emacs-docker")
14370 (version "1.2.0")
14371 (source (origin
14372 (method git-fetch)
14373 (uri (git-reference
14374 (url "https://github.com/Silex/docker.el")
14375 (commit version)))
14376 (file-name (git-file-name name version))
14377 (sha256
14378 (base32
14379 "15kd86kaq1x6giz855q9w6zvnyc742j309j0pmm86rwx398g4rq1"))))
14380 (inputs
14381 `(("emacs-undercover" ,emacs-undercover)))
14382 (propagated-inputs
14383 `(("emacs-dash" ,emacs-dash)
14384 ("emacs-docker-tramp" ,emacs-docker-tramp)
14385 ("emacs-magit-popup" ,emacs-magit-popup)
14386 ("emacs-s" ,emacs-s)
14387 ("emacs-tablist" ,emacs-tablist)
14388 ("emacs-json-mode" ,emacs-json-mode)))
14389 (arguments
14390 `(#:phases
14391 (modify-phases %standard-phases
14392 (delete 'check)))) ;no tests
14393 (build-system emacs-build-system)
14394 (home-page "https://github.com/Silex/docker.el")
14395 (synopsis "Manage docker from Emacs")
14396 (description "This package provides an Emacs interface for Docker.")
14397 (license license:gpl3+)))
14398
14399 (define-public emacs-dockerfile-mode
14400 ;; Latest upstream release is too old.
14401 (let ((commit "7223d92718f78fa3ab15667cdb2ed90cfeb579e7"))
14402 (package
14403 (name "emacs-dockerfile-mode")
14404 (version (git-version "1.2" "1" commit))
14405 (source
14406 (origin
14407 (method git-fetch)
14408 (uri (git-reference
14409 (url "https://github.com/spotify/dockerfile-mode.git")
14410 (commit commit)))
14411 (file-name (git-file-name name version))
14412 (sha256
14413 (base32
14414 "0hmipgl4rk6aih11i8mnspwdijjiwk2y0wns6lzs8bgkvy3c064r"))))
14415 (build-system emacs-build-system)
14416 (propagated-inputs
14417 `(("emacs-s" ,emacs-s)))
14418 (home-page "https://github.com/spotify/dockerfile-mode")
14419 (synopsis "Major mode for editing Dockerfile")
14420 (description
14421 "This package provides a major mode @code{dockerfile-mode} for use with
14422 the standard @code{Dockerfile} file format.")
14423 (license license:asl2.0))))
14424
14425 (define-public emacs-lsp-mode
14426 (package
14427 (name "emacs-lsp-mode")
14428 (version "6.0")
14429 (source (origin
14430 (method git-fetch)
14431 (uri (git-reference
14432 (url "https://github.com/emacs-lsp/lsp-mode.git")
14433 (commit version)))
14434 (file-name (git-file-name name version))
14435 (sha256
14436 (base32
14437 "1v1mq6ixzlgiazj8fmg4xaqhsqn3l89iqy74yndhvzh2rdf0pbkl"))))
14438 (build-system emacs-build-system)
14439 (propagated-inputs
14440 `(("emacs-dash" ,emacs-dash)
14441 ("emacs-f" ,emacs-f)
14442 ("emacs-ht" ,emacs-ht)
14443 ("emacs-spinner" ,emacs-spinner)))
14444 (home-page "https://github.com/emacs-lsp/lsp-mode")
14445 (synopsis "Emacs client and library for the Language Server Protocol")
14446 (description "@code{LSP-mode} is a client and library implementation for
14447 the Language Server Protocol. This mode aims to provide an IDE-like
14448 experience by providing optional integration with other popular Emacs packages
14449 like @code{company}, @code{flycheck}, and @code{projectile}.")
14450 (license license:gpl3+)))
14451
14452 (define-public emacs-lsp-ui
14453 (package
14454 (name "emacs-lsp-ui")
14455 (version "6.0")
14456 (source (origin
14457 (method git-fetch)
14458 (uri (git-reference
14459 (url "https://github.com/emacs-lsp/lsp-ui.git")
14460 (commit version)))
14461 (file-name (git-file-name name version))
14462 (sha256
14463 (base32
14464 "1r4327fd8cvjxfwkddp5c4bdskyncbs4sx9m3z2w4d773y2jrakc"))))
14465 (build-system emacs-build-system)
14466 (propagated-inputs
14467 `(("emacs-dash" ,emacs-dash)
14468 ("emacs-lsp-mode" ,emacs-lsp-mode)
14469 ("emacs-markdown-mode" ,emacs-markdown-mode)
14470 ("emacs-flycheck" ,emacs-flycheck)))
14471 (home-page "https://github.com/emacs-lsp/lsp-ui")
14472 (synopsis "User interface extensions for @code{lsp-mode}")
14473 (description
14474 "@code{LSP-ui} contains several enhancements and integrations for
14475 @code{lsp-mode}, such as visual flychecking, displaying references in-line,
14476 and code peeking.")
14477 (license license:gpl3+)))
14478
14479 (define-public emacs-helm-notmuch
14480 (package
14481 (name "emacs-helm-notmuch")
14482 (version "1.2")
14483 (home-page "https://github.com/emacs-helm/helm-notmuch/")
14484 (source (origin
14485 (method git-fetch)
14486 (uri (git-reference
14487 (url home-page)
14488 (commit version)))
14489 (file-name (git-file-name name version))
14490 (sha256
14491 (base32
14492 "1k038dbdpaa411gl4071x19fklhnizhr346plxw23lsnxir9dhqc"))))
14493 (build-system emacs-build-system)
14494 (propagated-inputs
14495 `(("emacs-helm" ,emacs-helm)
14496 ("notmuch" ,notmuch)))
14497 (synopsis "Search emails with Emacs Notmuch and Helm")
14498 (description
14499 "This package can be used to search emails in Emacs, searching result
14500 displays as you type thanks to Helm, though @command{notmuch-search} does the
14501 real search.")
14502 (license license:gpl3+)))
14503
14504 (define-public emacs-elmacro
14505 (let ((commit "89b9b0feabafd01fee48111d67131c4c9b5fed9a"))
14506 (package
14507 (name "emacs-elmacro")
14508 (version (git-version "1.1.0" "1" commit))
14509 (home-page "https://github.com/Silex/elmacro")
14510 (source (origin
14511 (method git-fetch)
14512 (uri (git-reference
14513 (url home-page)
14514 (commit commit)))
14515 (file-name (git-file-name name version))
14516 (sha256
14517 (base32
14518 "06wkzafh6vbcjf0m3sl253mgcq32p8cdv7vsfmyx51baa36938ha"))))
14519 (build-system emacs-build-system)
14520 (propagated-inputs
14521 `(("emacs-s" ,emacs-s)
14522 ("emacs-dash" ,emacs-dash)))
14523 (synopsis "Convert keyboard macros to Emacs Lisp")
14524 (description
14525 "This package displays keyboard macros or latest interactive commands
14526 as Emacs Lisp.")
14527 (license license:gpl3+))))
14528
14529 (define-public emacs-transient
14530 ;; 0.1.0 depends on lv.el but not later versions.
14531 (let ((commit "7e45a57ec81185631fe763733f64c99021df2a06"))
14532 (package
14533 (name "emacs-transient")
14534 (version (git-version "0.1.0" "1" commit))
14535 (source (origin
14536 (method git-fetch)
14537 (uri (git-reference
14538 (url "https://github.com/magit/transient")
14539 (commit commit)))
14540 (file-name (git-file-name name version))
14541 (sha256
14542 (base32
14543 "0r6d4c1lga3bk0s7q7y4v4hbpxnd9h40cjxybqvax2z902931fz1"))))
14544 (build-system gnu-build-system)
14545 (native-inputs `(("texinfo" ,texinfo)
14546 ("emacs" ,emacs-minimal)))
14547 (propagated-inputs
14548 `(("dash" ,emacs-dash)))
14549 (arguments
14550 `(#:modules ((guix build gnu-build-system)
14551 (guix build utils)
14552 (srfi srfi-26)
14553 (guix build emacs-utils))
14554 #:imported-modules (,@%gnu-build-system-modules
14555 (guix build emacs-utils))
14556 #:tests? #f ; tests are not included in the release
14557 #:make-flags (list "lisp" "info"
14558 (string-append "LOAD_PATH=-L . -L "
14559 (assoc-ref %build-inputs "dash")
14560 "/share/emacs/site-lisp/guix.d/dash-"
14561 ,(package-version emacs-dash)))
14562 #:phases
14563 (modify-phases %standard-phases
14564 (delete 'configure)
14565 (replace 'install
14566 (lambda* (#:key inputs outputs #:allow-other-keys)
14567 (let* ((out (assoc-ref outputs "out"))
14568 (lisp (string-append out "/share/emacs/site-lisp/guix.d/"
14569 "transient" "-" ,version))
14570 (info (string-append out "/share/info")))
14571 (for-each (cut install-file <> lisp)
14572 (find-files "." "\\.elc*$"))
14573 (install-file "docs/transient.info" (string-append info)))
14574 #t)))))
14575 (home-page "https://magit.vc/manual/transient")
14576 (synopsis "Transient commands in Emacs")
14577 (description
14578 "Taking inspiration from prefix keys and prefix arguments in Emacs,
14579 Transient implements a similar abstraction involving a prefix command, infix
14580 arguments and suffix commands. We could call this abstraction a \"transient
14581 command\", but because it always involves at least two commands (a prefix and
14582 a suffix) we prefer to call it just a \"transient\".")
14583 (license license:gpl3+))))
14584
14585 (define-public emacs-undo-propose-el
14586 (let ((commit "5f1fa99a04369a959aad01b476fe4f34229f28cd")
14587 (version "1.0.0")
14588 (revision "1"))
14589 (package
14590 (name "emacs-undo-propose-el")
14591 (version (git-version version revision commit))
14592 (source
14593 (origin
14594 (method git-fetch)
14595 (uri (git-reference
14596 (url "https://github.com/jackkamm/undo-propose-el")
14597 (commit commit)))
14598 (file-name (git-file-name name version))
14599 (sha256
14600 (base32
14601 "1p9h1fqmva07mcs46rqrg9vqn537b615as84s9b7xh76k1r8h1c0"))))
14602 (build-system emacs-build-system)
14603 (home-page "https://github.com/jackkamm/undo-propose-el")
14604 (synopsis "Simple and safe navigation of @code{undo} history")
14605 (description "This package permits navigation of @code{undo} history in a
14606 temporary buffer, which is read-only save for @code{undo} commands, and
14607 subsequent committal of a chain of @code{undo} commands as a single edit in
14608 the @code{undo} history.")
14609 (license license:gpl3+))))
14610
14611 (define-public emacs-elisp-docstring-mode
14612 (let ((commit "f512e509dd690f65133e55563ebbfd2dede5034f")
14613 (version "0.0.1")
14614 (revision "1"))
14615 (package
14616 (name "emacs-elisp-docstring-mode")
14617 (version (git-version version revision commit))
14618 (source
14619 (origin
14620 (method git-fetch)
14621 (uri (git-reference
14622 (url "https://github.com/Fuco1/elisp-docstring-mode")
14623 (commit commit)))
14624 (file-name (git-file-name name version))
14625 (sha256
14626 (base32
14627 "0al8m75p359h4n82rf0dsl22qfdg9cwwywn5pn7x6gb96c7qrqaa"))))
14628 (build-system emacs-build-system)
14629 (home-page "https://github.com/Fuco1/elisp-docstring-mode")
14630 (synopsis "Major mode for editing Emacs Lisp docstrings")
14631 (description "This package provides font lock and automatic escaping and
14632 unescaping of quotes.")
14633 (license license:gpl3+))))
14634
14635 (define-public emacs-vimrc-mode
14636 (let ((commit "13bc150a870d5d4a95f1111e4740e2b22813c30e")
14637 (version "0.3.1")
14638 (revision "1"))
14639 (package
14640 (name "emacs-vimrc-mode")
14641 (version (git-version version revision commit))
14642 (source
14643 (origin
14644 (method git-fetch)
14645 (uri (git-reference
14646 (url "https://github.com/mcandre/vimrc-mode")
14647 (commit commit)))
14648 (file-name (git-file-name name version))
14649 (sha256
14650 (base32
14651 "0026dqs3hwygk2k2xfra90w5sfnxrfj7l69jz7sq5glavbf340pk"))))
14652 (build-system emacs-build-system)
14653 (home-page "https://github.com/mcandre/vimrc-mode")
14654 (synopsis "Major mode for Vimscript")
14655 (description "This package provides font lock and @code{beginning-} and
14656 @code{end-of-defun} functions for Vimscript files.")
14657 (license license:gpl3+))))
14658
14659 (define-public emacs-flycheck-haskell
14660 (let ((commit "32ddff87165a7d3a35e7318bee997b5b4bd41278")
14661 (version "0.8")
14662 (revision "79"))
14663 (package
14664 (name "emacs-flycheck-haskell")
14665 (version (git-version version revision commit))
14666 (source
14667 (origin
14668 (method git-fetch)
14669 (uri (git-reference
14670 (url "https://github.com/flycheck/flycheck-haskell")
14671 (commit commit)))
14672 (file-name (git-file-name name version))
14673 (sha256
14674 (base32
14675 "10pgsbagq6qj4mshq5sypv0q0khck92b30sc793b4g1pfpsxvgjn"))))
14676 (build-system emacs-build-system)
14677 (propagated-inputs
14678 `(("emacs-dash" ,emacs-dash)
14679 ("emacs-seq" ,emacs-seq)
14680 ("emacs-flycheck" ,emacs-flycheck)
14681 ("emacs-haskell-mode" ,emacs-haskell-mode)
14682 ("emacs-let-alist" ,emacs-let-alist)))
14683 (home-page "https://github.com/flycheck/flycheck-haskell")
14684 (synopsis "Flycheck for Haskell")
14685 (description "This package configures syntax-checking for Haskell
14686 buffers.")
14687 (license license:gpl3+))))
14688
14689 (define-public emacs-js2-refactor-el
14690 (let ((commit "79124b3274c43ad1f9ec6205fa362576552db02f")
14691 (version "0.9.0")
14692 (revision "27"))
14693 (package
14694 (name "emacs-js2-refactor-el")
14695 (version (git-version version revision commit))
14696 (source
14697 (origin
14698 (method git-fetch)
14699 (uri (git-reference
14700 (url "https://github.com/magnars/js2-refactor.el")
14701 (commit commit)))
14702 (file-name (git-file-name name version))
14703 (sha256
14704 (base32
14705 "1wswhlpbd3airrhyncb9vblqigwnqg9n96z0iis8jnz37q2whica"))))
14706 (build-system emacs-build-system)
14707 (propagated-inputs
14708 `(("emacs-dash" ,emacs-dash)
14709 ("emacs-s" ,emacs-s)
14710 ("emacs-js2-mode" ,emacs-js2-mode)
14711 ("emacs-yasnippet" ,emacs-yasnippet)
14712 ("emacs-multiple-cursors" ,emacs-multiple-cursors)))
14713 (native-inputs
14714 `(("emacs-buttercup" ,emacs-buttercup)
14715 ("emacs-espuds" ,emacs-espuds)))
14716 (home-page "https://github.com/magnars/js2-refactor.el")
14717 (synopsis "JavaScript refactoring in Emacs")
14718 (description "This package provides various refactoring functions for
14719 JavaScript.")
14720 (license license:gpl3+))))
14721
14722 (define-public emacs-prettier
14723 (let ((commit "e9b73e81d3e1642aec682195f127a42dfb0b5774")
14724 (version "0.1.0")
14725 (revision "1"))
14726 (package
14727 (name "emacs-prettier")
14728 (version (git-version version revision commit))
14729 (source
14730 (origin
14731 (method git-fetch)
14732 (uri (git-reference
14733 (url "https://github.com/prettier/prettier-emacs")
14734 (commit commit)))
14735 (file-name (git-file-name name version))
14736 (sha256
14737 (base32
14738 "0hj4fv3fgc60i6jrsx4a81s5c9fsxxafhhs3q2q1dypsscjci9ph"))))
14739 (build-system emacs-build-system)
14740 (home-page "https://github.com/prettier/prettier-emacs")
14741 (synopsis "Automatic formatting of JavaScript code")
14742 (description "This package integrates Prettier with Emacs, and
14743 provides a minor mode that autoformats the buffer upon saving.")
14744 (license license:expat))))
14745
14746 (define-public emacs-fish-mode
14747 (package
14748 (name "emacs-fish-mode")
14749 (version "0.1.4")
14750 (source
14751 (origin
14752 (method git-fetch)
14753 (uri (git-reference
14754 (url "https://github.com/wwwjfy/emacs-fish")
14755 (commit version)))
14756 (file-name (git-file-name name version))
14757 (sha256
14758 (base32
14759 "0a74ghmjjrxfdhk4mvq6lar4w6l6lc4iilabs99smqr2fn5rsslq"))))
14760 (build-system emacs-build-system)
14761 (home-page "https://github.com/wwwjfy/emacs-fish")
14762 (synopsis "Major mode for Fish shell scripts")
14763 (description "This package provides syntax highlighting and indentation
14764 functions for Fish shell scripts.")
14765 (license license:gpl3+)))
14766
14767 (define-public emacs-eshell-up
14768 (let ((commit "9c100bae5c3020e8d9307e4332d3b64e7dc28519")
14769 (version "0.0.3")
14770 (revision "12"))
14771 (package
14772 (name "emacs-eshell-up")
14773 (version (git-version version revision commit))
14774 (source
14775 (origin
14776 (method git-fetch)
14777 (uri (git-reference
14778 (url "https://github.com/peterwvj/eshell-up")
14779 (commit commit)))
14780 (file-name (git-file-name name version))
14781 (sha256
14782 (base32
14783 "00zdbcncjabgj5mp47l1chymx5na18v2g4kj730dgmj3rnl3iz2q"))))
14784 (build-system emacs-build-system)
14785 (home-page "https://github.com/peterwvj/eshell-up")
14786 (synopsis "Quickly go to a parent directory in @code{Eshell}")
14787 (description "This package provides quick navigation to a specific
14788 parent directory using @code{Eshell}.")
14789 (license license:gpl3+))))
14790
14791 (define-public emacs-tco-el
14792 (let ((commit "482db5313f090b17ed22ccd856f0e141dc75afe6")
14793 (version "0.3")
14794 (revision "1"))
14795 (package
14796 (name "emacs-tco-el")
14797 (version (git-version version revision commit))
14798 (source
14799 (origin
14800 (method git-fetch)
14801 (uri (git-reference
14802 (url "https://github.com/Wilfred/tco.el")
14803 (commit commit)))
14804 (file-name (git-file-name name version))
14805 (sha256
14806 (base32
14807 "1z7xkbrqznk6ni687qqknp8labcyhl8y6576hjfri89fn21385y9"))))
14808 (build-system emacs-build-system)
14809 (propagated-inputs
14810 `(("emacs-dash" ,emacs-dash)))
14811 (home-page "https://github.com/Wilfred/tco.el")
14812 (synopsis "Tail-call optimization for Emacs Lisp")
14813 (description "This package provides tail-call optimization for Emacs
14814 Lisp functions that call themselves in tail position.")
14815 (license license:gpl3+))))
14816
14817 (define-public emacs-equake
14818 (let ((commit "ed15fd55cd4f2276161a6f712ed0b83cd10a8cdc")
14819 (version "0.85")
14820 (revision "1"))
14821 (package
14822 (name "emacs-equake")
14823 (version (git-version version revision commit))
14824 (source
14825 (origin
14826 (method git-fetch)
14827 (uri (git-reference
14828 (url "https://gitlab.com/emacsomancer/equake/")
14829 (commit commit)))
14830 (file-name (git-file-name name version))
14831 (sha256
14832 (base32
14833 "04kj88rlnn22gwmmv2gly2ibi6jka6l2cd4979pi6lhlvqqgjdnj"))))
14834 (build-system emacs-build-system)
14835 (propagated-inputs
14836 `(("emacs-dash" ,emacs-dash)
14837 ("emacs-tco-el" ,emacs-tco-el)))
14838 (home-page "https://gitlab.com/emacsomancer/equake/")
14839 (synopsis "Drop-down console for @code{Eshell} and terminal emulators")
14840 (description "This package provides a Quake-style drop-down console
14841 compatible with Emacs' shell modes.")
14842 (license license:gpl3+))))
14843
14844 (define-public emacs-vdiff
14845 (let ((commit "09e15fc932bfd2febe1d4a65780a532394562b07")
14846 (version "0.2.3")
14847 (revision "1"))
14848 (package
14849 (name "emacs-vdiff")
14850 (version (git-version version revision commit))
14851 (source
14852 (origin
14853 (method git-fetch)
14854 (uri (git-reference
14855 (url "https://github.com/justbur/emacs-vdiff/")
14856 (commit commit)))
14857 (file-name (git-file-name name version))
14858 (sha256
14859 (base32
14860 "1gvqi5l4zs872nn4pmj603aza09d81qad2rgijzv268lif8z34db"))))
14861 (build-system emacs-build-system)
14862 (propagated-inputs
14863 `(("emacs-hydra" ,emacs-hydra)))
14864 (home-page "https://github.com/justbur/emacs-vdiff/")
14865 (synopsis "Frontend for diffing based on vimdiff")
14866 (description "This package permits comparisons of two or three buffers
14867 based on diff output.")
14868 (license license:gpl3+))))
14869
14870 (define-public emacs-vdiff-magit
14871 ;; Need to use a more recent commit than the latest release version because
14872 ;; of Magit and Transient
14873 (let ((commit "b100d126c69e5c26a61ae05aa1778bcc4302b597")
14874 (version "0.3.2")
14875 (revision "8"))
14876 (package
14877 (name "emacs-vdiff-magit")
14878 (version (git-version version revision commit))
14879 (source
14880 (origin
14881 (method git-fetch)
14882 (uri (git-reference
14883 (url "https://github.com/justbur/emacs-vdiff-magit/")
14884 (commit commit)))
14885 (file-name (git-file-name name version))
14886 (sha256
14887 (base32
14888 "16cjmrzflf2i1w01973sl944xrfanakba8sb4dpwi79d92xp03xy"))))
14889 (build-system emacs-build-system)
14890 (propagated-inputs
14891 `(("emacs-vdiff" ,emacs-vdiff)
14892 ("emacs-magit" ,emacs-magit)
14893 ("emacs-transient" ,emacs-transient)))
14894 (home-page "https://github.com/justbur/emacs-vdiff-magit/")
14895 (synopsis "Frontend for diffing based on vimdiff")
14896 (description "This package permits comparisons of two or three buffers
14897 based on diff output.")
14898 (license license:gpl3+))))
14899
14900 (define-public emacs-all-the-icons-dired
14901 (let ((commit "980b7747d6c4a7992a1ec56afad908956db0a519")
14902 (version "1.0")
14903 (revision "1"))
14904 (package
14905 (name "emacs-all-the-icons-dired")
14906 (version (git-version version revision commit))
14907 (source
14908 (origin
14909 (method git-fetch)
14910 (uri (git-reference
14911 (url "https://github.com/jtbm37/all-the-icons-dired/")
14912 (commit commit)))
14913 (file-name (git-file-name name version))
14914 (sha256
14915 (base32
14916 "1pvbgyxfj4j205nj1r02045f1y4wgavdsk7f45hxkkhms1rj8jyy"))))
14917 (build-system emacs-build-system)
14918 (propagated-inputs
14919 `(("emacs-all-the-icons" ,emacs-all-the-icons)))
14920 (home-page "https://github.com/jtbm37/all-the-icons-dired/")
14921 (synopsis "Show icons for each file in @code{dired-mode}")
14922 (description "This package allows icons from @file{all-the-icons.el} to
14923 be used in @code{dired-mode}.")
14924 (license license:gpl3+))))
14925
14926 (define-public emacs-exwm-edit
14927 (let ((commit "961c0f3ea45766b888c73d7353da13d329538034")
14928 (version "0.0.1")
14929 (revision "1"))
14930 (package
14931 (name "emacs-exwm-edit")
14932 (version (git-version version revision commit))
14933 (source
14934 (origin
14935 (method git-fetch)
14936 (uri (git-reference
14937 (url "https://github.com/agzam/exwm-edit/")
14938 (commit commit)))
14939 (file-name (git-file-name name version))
14940 (sha256
14941 (base32
14942 "087pk5ckx753qrn6xpka9khhlp7iqlz76w7861x90av2f5cgy6fw"))))
14943 (build-system emacs-build-system)
14944 (propagated-inputs
14945 `(("emacs-exwm" ,emacs-exwm)))
14946 (home-page "https://github.com/agzam/exwm-edit/")
14947 (synopsis "Open temp buffers for editing text from EXWM buffers")
14948 (description "This package facilitates editing text from EXWM buffers by
14949 generating a temp buffer in which any useful Emacs utilities and modes can be
14950 invoked.")
14951 (license license:gpl3+))))
14952
14953 (define-public emacs-ert-async
14954 (package
14955 (name "emacs-ert-async")
14956 (version "0.1.2")
14957 (source
14958 (origin
14959 (method git-fetch)
14960 (uri (git-reference
14961 (url "https://github.com/rejeep/ert-async.el")
14962 (commit (string-append "v" version))))
14963 (file-name (git-file-name name version))
14964 (sha256
14965 (base32
14966 "0hn9i405nfhjd1h9vnwj43nxbbz00khrwkjq0acfyxjaz1shfac9"))))
14967 (build-system emacs-build-system)
14968 (home-page "https://github.com/rejeep/ert-async.el")
14969 (synopsis "Async support for ERT")
14970 (description "This package allows ERT to work with asynchronous tests.")
14971 (license license:gpl3+)))
14972
14973 (define-public emacs-prodigy-el
14974 (let ((commit "701dccaa56de9e6a330c05bde33bce4f3b3d6a97")
14975 (version "0.7.0")
14976 (revision "28"))
14977 (package
14978 (name "emacs-prodigy-el")
14979 (version (git-version version revision commit))
14980 (source
14981 (origin
14982 (method git-fetch)
14983 (uri (git-reference
14984 (url "https://github.com/rejeep/prodigy.el")
14985 (commit commit)))
14986 (file-name (git-file-name name version))
14987 (sha256
14988 (base32
14989 "1vyvxawlayp2nra0q83146q2nzv8qwn5a4nj0sx1jc90a0a83vgj"))))
14990 (build-system emacs-build-system)
14991 (propagated-inputs
14992 `(("emacs-dash" ,emacs-dash)
14993 ("emacs-s" ,emacs-s)
14994 ("emacs-f" ,emacs-f)))
14995 (native-inputs
14996 `(("emacs-el-mock" ,emacs-el-mock)
14997 ("emacs-ert-async" ,emacs-ert-async)))
14998 (home-page "https://github.com/rejeep/prodigy.el")
14999 (synopsis "Manage external services from within Emacs")
15000 (description "This package provides a GUI for defining and monitoring services.")
15001 (license license:gpl3+))))
15002
15003 (define-public emacs-web-server
15004 (let ((commit "cafa5b7582c57252a0884b2c33da9b18fb678713")
15005 (version "0.1.1")
15006 (revision "1"))
15007 (package
15008 (name "emacs-web-server")
15009 (version (git-version version revision commit))
15010 (source
15011 (origin
15012 (method git-fetch)
15013 (uri (git-reference
15014 (url "https://github.com/eschulte/emacs-web-server/")
15015 (commit commit)))
15016 (file-name (git-file-name name version))
15017 (sha256
15018 (base32
15019 "1c0lfqmbs5hvz3fh3c8wgp6ipwmxrwx9xj264bjpj3phixd5419y"))))
15020 (build-system emacs-build-system)
15021 (home-page "https://github.com/eschulte/emacs-web-server/")
15022 (synopsis "Web server with handlers in Emacs Lisp")
15023 (description "This package supports HTTP GET and POST requests with
15024 url-encoded parameters, as well as web sockets.")
15025 (license license:gpl3+))))
15026
15027 (define-public emacs-markdown-preview-mode
15028 (package
15029 (name "emacs-markdown-preview-mode")
15030 (version "0.9.2")
15031 (source
15032 (origin
15033 (method git-fetch)
15034 (uri (git-reference
15035 (url "https://github.com/ancane/markdown-preview-mode")
15036 (commit (string-append "v" version))))
15037 (file-name (git-file-name name version))
15038 (sha256
15039 (base32
15040 "1d1id99gagymvzdfa1mwqh8y3szm8ii47rpijkfi1qnifjg5jaq9"))))
15041 (build-system emacs-build-system)
15042 (propagated-inputs
15043 `(("emacs-markdown-mode" ,emacs-markdown-mode)
15044 ("emacs-websocket" ,emacs-websocket)
15045 ("emacs-web-server" ,emacs-web-server)))
15046 (arguments '(#:include '("\\.el$" "\\.html$")))
15047 (home-page "https://github.com/ancane/markdown-preview-mode")
15048 (synopsis "Live web development in Emacs")
15049 (description "This package provides a minor mode for preview of Markdown
15050 files, and sends rendered Markdown to a web browser.")
15051 (license license:gpl3+)))
15052
15053 (define-public emacs-dotenv-mode
15054 (package
15055 (name "emacs-dotenv-mode")
15056 (version "0.2.4")
15057 (source
15058 (origin
15059 (method git-fetch)
15060 (uri (git-reference
15061 (url "https://github.com/preetpalS/emacs-dotenv-mode")
15062 (commit (string-append "v" version))))
15063 (file-name (git-file-name name version))
15064 (sha256
15065 (base32
15066 "1fplkhxnsgdrg10iqsmw162zny2idz4vvv35spsb9j0hsk8imclc"))))
15067 (build-system emacs-build-system)
15068 (home-page "https://github.com/preetpalS/emacs-dotenv-mode")
15069 (synopsis "Major mode for @file{.env} files")
15070 (description "This package provides syntax highlighting for @file{.env}
15071 files.")
15072 (license license:gpl3+)))
15073
15074 (define-public emacs-add-node-modules-path
15075 (let ((commit "f31e69ccb681f882aebb806ce6e9478e3ac39708")
15076 (version "1.2.0")
15077 (revision "10"))
15078 (package
15079 (name "emacs-add-node-modules-path")
15080 (version (git-version version revision commit))
15081 (source
15082 (origin
15083 (method git-fetch)
15084 (uri (git-reference
15085 (url "https://github.com/codesuki/add-node-modules-path")
15086 (commit commit)))
15087 (file-name (git-file-name name version))
15088 (sha256
15089 (base32
15090 "0p106bqmvdr8by5iv02bshm339qbrjcch2d15mrm4h3nav03v306"))))
15091 (build-system emacs-build-system)
15092 (home-page "https://github.com/codesuki/add-node-modules-path")
15093 (synopsis "Add @file{node_modules} to the buffer-local @file{exec-path}")
15094 (description "This package searches the parent directories of the
15095 current file for the project's @file{node_modules/.bin/} directory, allowing
15096 Emacs to find project-specific installations of packages.")
15097 (license license:expat))))
15098
15099 (define-public emacs-flow-minor-mode
15100 (let ((commit "d1b32a7dd0d33c6a00a106da5f4b2323602cbd3e")
15101 (version "0.3")
15102 (revision "4"))
15103 (package
15104 (name "emacs-flow-minor-mode")
15105 (version (git-version version revision commit))
15106 (source
15107 (origin
15108 (method git-fetch)
15109 (uri (git-reference
15110 (url "https://github.com/an-sh/flow-minor-mode")
15111 (commit commit)))
15112 (file-name (git-file-name name version))
15113 (sha256
15114 (base32
15115 "169r4ib9qg9q6fm3p0p23qs1qx4pa9pg1qvyq4ysr85i7kwygppl"))))
15116 (build-system emacs-build-system)
15117 (home-page "https://github.com/an-sh/flow-minor-mode")
15118 (synopsis "Minor mode for JavaScript Flow files")
15119 (description "This package integrates Flow with Emacs, allowing for
15120 definition-jumping and type-checking on demand.")
15121 (license license:bsd-3))))
15122
15123 (define-public emacs-rjsx-mode
15124 (let ((commit "03dd8d1683501e81b58674d64c3032b7b718402c")
15125 (version "0.4.0")
15126 (revision "35"))
15127 (package
15128 (name "emacs-rjsx-mode")
15129 (version (git-version version revision commit))
15130 (source
15131 (origin
15132 (method git-fetch)
15133 (uri (git-reference
15134 (url "https://github.com/felipeochoa/rjsx-mode")
15135 (commit commit)))
15136 (file-name (git-file-name name version))
15137 (sha256
15138 (base32
15139 "1kc44g9f38klpjklmz9n50a28nqv7prz6ck6ghdr6bnj1s98pb8a"))))
15140 (build-system emacs-build-system)
15141 (propagated-inputs
15142 `(("emacs-js2-mode" ,emacs-js2-mode)))
15143 (home-page "https://github.com/felipeochoa/rjsx-mode")
15144 (synopsis "Major mode for JSX files")
15145 (description "This package extends the parser of @code{js2-mode} to
15146 support JSX syntax.")
15147 (license license:expat))))
15148
15149 (define-public emacs-origami-el
15150 (let ((commit "1f38085c8f9af7842765ed63f7d6dfe4dab59366")
15151 (version "1.0")
15152 (revision "1"))
15153 (package
15154 (name "emacs-origami-el")
15155 (version (git-version version revision commit))
15156 (source
15157 (origin
15158 (method git-fetch)
15159 (uri (git-reference
15160 (url "https://github.com/gregsexton/origami.el")
15161 (commit commit)))
15162 (file-name (git-file-name name version))
15163 (sha256
15164 (base32
15165 "0ha1qsz2p36pqa0sa2sp83lspbgx5lr7930qxnwd585liajzdd9x"))))
15166 (build-system emacs-build-system)
15167 (propagated-inputs
15168 `(("emacs-dash" ,emacs-dash)
15169 ("emacs-s" ,emacs-s)))
15170 (home-page "https://github.com/gregsexton/origami.el")
15171 (synopsis "Flexible text-folding")
15172 (description "This package provides a minor mode for collapsing and
15173 expanding regions of text without modifying the actual contents.")
15174 (license license:expat))))
15175
15176 (define-public emacs-peep-dired
15177 (let ((commit "c88a9a3050197840edfe145f11e0bb9488de32f4")
15178 (version "0")
15179 (revision "1"))
15180 (package
15181 (name "emacs-peep-dired")
15182 (version (git-version version revision commit))
15183 (source
15184 (origin
15185 (method git-fetch)
15186 (uri (git-reference
15187 (url "https://github.com/asok/peep-dired")
15188 (commit commit)))
15189 (file-name (git-file-name name version))
15190 (sha256
15191 (base32
15192 "1wy5qpnfri1gha2cnl6q20qar8dbl2mimpb43bnhmm2g3wgjyad6"))))
15193 (build-system emacs-build-system)
15194 (home-page "https://github.com/asok/peep-dired")
15195 (synopsis "Preview files in another window")
15196 (description "This package provides a minor mode that allows files to be
15197 previewed by scrolling up and down within a @code{dired} buffer.")
15198 (license license:gpl3+))))
15199
15200 (define-public emacs-counsel-etags
15201 (package
15202 (name "emacs-counsel-etags")
15203 (version "1.8.3")
15204 (source
15205 (origin
15206 (method git-fetch)
15207 (uri (git-reference
15208 (url "https://github.com/redguardtoo/counsel-etags")
15209 (commit version)))
15210 (file-name (git-file-name name version))
15211 (sha256
15212 (base32
15213 "1d8nlrbsyza6q7yqm9248bxxsf49qf6hchg3zwv0l11acn3w8np5"))))
15214 (build-system emacs-build-system)
15215 (propagated-inputs
15216 `(("emacs-ivy" ,emacs-ivy)))
15217 (home-page "https://github.com/redguardtoo/counsel-etags")
15218 (synopsis "Fast @code{Ctags}/@code{Etags} solution with @code{ivy-mode}")
15219 (description "This package uses @code{ivy-mode} to facilitate navigating
15220 and searching through @code{Ctags} files.")
15221 (license license:gpl3+)))
15222
15223 (define-public emacs-helm-dash
15224 (let ((commit "192b862185df661439a06de644791171e899348a")
15225 (version "1.3.0")
15226 (revision "18"))
15227 (package
15228 (name "emacs-helm-dash")
15229 (version (git-version version revision commit))
15230 (source
15231 (origin
15232 (method git-fetch)
15233 (uri (git-reference
15234 (url "https://github.com/areina/helm-dash")
15235 (commit commit)))
15236 (file-name (git-file-name name version))
15237 (sha256
15238 (base32
15239 "06am5vnr4hsxkvh2b8q8kb80y5x1h3qyv7gwggswwhfa7w2vba3w"))))
15240 (build-system emacs-build-system)
15241 (propagated-inputs
15242 `(("emacs-helm" ,emacs-helm)))
15243 (home-page "https://github.com/areina/helm-dash")
15244 (synopsis "Offline documentation browser for APIs using Dash docsets")
15245 (description "This package uses Helm to install and navigate through
15246 Dash docsets.")
15247 (license license:gpl3+))))
15248
15249 (define-public emacs-counsel-dash
15250 (let ((commit "07fa74a94ff4da5b6c8c4810f5e143e701b480d2")
15251 (version "0.1.3")
15252 (revision "3"))
15253 (package
15254 (name "emacs-counsel-dash")
15255 (version (git-version version revision commit))
15256 (source
15257 (origin
15258 (method git-fetch)
15259 (uri (git-reference
15260 (url "https://github.com/nathankot/counsel-dash")
15261 (commit commit)))
15262 (file-name (git-file-name name version))
15263 (sha256
15264 (base32
15265 "17h2m9zsadq270mkq12kmdzmpbfjiwjbg8n1rg2apqnm1ndgcwf8"))))
15266 (build-system emacs-build-system)
15267 (propagated-inputs
15268 `(("emacs-helm-dash" ,emacs-helm-dash)
15269 ("emacs-dash" ,emacs-dash)
15270 ("emacs-ivy" ,emacs-ivy)))
15271 (home-page "https://github.com/nathankot/counsel-dash")
15272 (synopsis "Offline documentation browser for APIs using Dash docsets")
15273 (description "This package uses @code{ivy-mode} to install and navigate
15274 through Dash docsets.")
15275 (license license:expat))))
15276
15277 (define-public emacs-el-patch
15278 (package
15279 (name "emacs-el-patch")
15280 (version "2.2.3")
15281 (source
15282 (origin
15283 (method git-fetch)
15284 (uri (git-reference
15285 (url "https://github.com/raxod502/el-patch")
15286 (commit version)))
15287 (file-name (git-file-name name version))
15288 (sha256
15289 (base32
15290 "18djslz177q6q33y82zmg2v6n9236a76kiqfvxdk4vbqzjbq82f7"))))
15291 (build-system emacs-build-system)
15292 (home-page "https://github.com/raxod502/el-patch")
15293 (synopsis "Future-proof your Emacs customizations")
15294 (description "This package allows for an alternate definition of an Elisp
15295 function to be specified and for any differences from the original definition
15296 to be examined using Ediff.")
15297 (license license:expat)))
15298
15299 (define-public emacs-info-plus
15300 (let ((commit "b837d710f7d58db586116cf6f75e75a9a074bc4b")
15301 (version "5101")
15302 (revision "55"))
15303 (package
15304 (name "emacs-info-plus")
15305 (version (git-version version revision commit))
15306 (source
15307 (origin
15308 (method git-fetch)
15309 (uri (git-reference
15310 (url "https://github.com/emacsmirror/info-plus")
15311 (commit commit)))
15312 (file-name (git-file-name name version))
15313 (sha256
15314 (base32
15315 "1knyjkdm4rcs3qrc51jllw46ph7ycq5zxnvl70ydchzfwava43h6"))))
15316 (build-system emacs-build-system)
15317 (home-page "https://github.com/emacsmirror/info-plus")
15318 (synopsis "Extensions to @file{info.el}")
15319 (description "This package extends Emacs' @file{info.el} by allowing
15320 outline-enabled table of contents, additional metadata association for Info
15321 nodes, and more.")
15322 (license license:gpl2+))))
15323
15324 (define-public emacs-eval-sexp-fu-el
15325 (package
15326 (name "emacs-eval-sexp-fu-el")
15327 (version "0.5.0")
15328 (source
15329 (origin
15330 (method git-fetch)
15331 (uri (git-reference
15332 (url "https://github.com/hchbaw/eval-sexp-fu.el")
15333 (commit (string-append "v" version))))
15334 (file-name (git-file-name name version))
15335 (sha256
15336 (base32
15337 "01mpnpgmlnfbi2yw9dxz5iw72mw3lk223bj172i4fnx3xdrrxbij"))))
15338 (build-system emacs-build-system)
15339 (home-page "https://github.com/hchbaw/eval-sexp-fu.el")
15340 (synopsis "Enhancements for evaluating s-expressions")
15341 (description "This package provides provides variants of
15342 @code{eval-last-sexp} that work on the containing list or s-expression, as
15343 well as an option for visually flashing evaluated s-expressions.")
15344 (license license:gpl3+)))
15345
15346 (define-public emacs-counsel-tramp
15347 (package
15348 (name "emacs-counsel-tramp")
15349 (version "0.6.2")
15350 (source
15351 (origin
15352 (method git-fetch)
15353 (uri (git-reference
15354 (url "https://github.com/masasam/emacs-counsel-tramp")
15355 (commit version)))
15356 (file-name (git-file-name name version))
15357 (sha256
15358 (base32
15359 "0nz0733x2b9b5nkwivvhv5c8747dng451na1sdfbkx5x9fjs5gc7"))))
15360 (build-system emacs-build-system)
15361 (propagated-inputs
15362 `(("emacs-ivy" ,emacs-ivy)))
15363 (home-page "https://github.com/masasam/emacs-counsel-tramp")
15364 (synopsis "Ivy interface for TRAMP")
15365 (description "This package allows @code{ivy-mode} to display and filter
15366 SSH servers.")
15367 (license license:gpl3+)))
15368
15369 (define-public emacs-eacl
15370 (package
15371 (name "emacs-eacl")
15372 (version "2.0.1")
15373 (source
15374 (origin
15375 (method git-fetch)
15376 (uri (git-reference
15377 (url "https://github.com/redguardtoo/eacl")
15378 (commit version)))
15379 (file-name (git-file-name name version))
15380 (sha256
15381 (base32
15382 "0ksn11sm3g1ja5lpjz3hrzzw8b480mfcb3q589m52qjgvvn5iyfv"))))
15383 (build-system emacs-build-system)
15384 (propagated-inputs
15385 `(("emacs-ivy" ,emacs-ivy)))
15386 (home-page "https://github.com/redguardtoo/eacl")
15387 (synopsis "Auto-complete lines by using @code{grep} on a project")
15388 (description "This package provides auto-completion cammands for single
15389 and multiple lines of code in a project.")
15390 (license license:gpl3+)))
15391
15392 (define-public emacs-semantic-refactor
15393 ;; The last release, 0.5, was made on 2015-07-26 and there have been 47
15394 ;; commits since then.
15395 (let ((commit "6f2c97d17fb70f4ca2112f5a2b99a8ec162004f5"))
15396 (package
15397 (name "emacs-semantic-refactor")
15398 (version (git-version "0.5" "1" commit))
15399 (source
15400 (origin
15401 (method git-fetch)
15402 (uri (git-reference
15403 (url "https://github.com/tuhdo/semantic-refactor")
15404 (commit commit)))
15405 (file-name (git-file-name name version))
15406 (sha256
15407 (base32
15408 "1lyz3zjkx2csh0xdy1zpx8s32qp1p3sig57mwi9xhgpqjyf0axmb"))))
15409 (build-system emacs-build-system)
15410 (home-page "https://github.com/tuhdo/semantic-refactor")
15411 (synopsis "Refactoring tool for C/C++ and Lisp dialects")
15412 (description "This package provides a refactoring tool based on the
15413 Emacs Semantic parser framework. For C and C++ it supports operations such as:
15414
15415 @enumerate
15416 @item Generating class implementations
15417 @item Generating function prototypes
15418 @item Converting functions to function pointers
15419 @item Moving semantic units
15420 @item etc...
15421 @end enumerate
15422
15423 For Lisp dialects like Clojure, ELisp, and Scheme, it supports operations such
15424 as:
15425
15426 @enumerate
15427 @item Formatting the whole buffer
15428 @item Converting sexpressions to one or multiple lines
15429 @item etc...
15430 @end enumerate\n")
15431 (license license:gpl3+))))
15432
15433 (define-public emacs-nhexl-mode
15434 (package
15435 (name "emacs-nhexl-mode")
15436 (version "1.2")
15437 (source
15438 (origin
15439 (method url-fetch)
15440 (uri (string-append
15441 "https://elpa.gnu.org/packages/nhexl-mode-"
15442 version ".el"))
15443 (sha256
15444 (base32
15445 "031h22p564qdvr9khs05qcba06pmsk68cr7zyc7c04hfr3y3ziaf"))))
15446 (build-system emacs-build-system)
15447 (home-page "http://elpa.gnu.org/packages/nhexl-mode.html")
15448 (synopsis "Minor mode to edit files via hex-dump format")
15449 (description
15450 "This package implements NHexl mode, a minor mode for editing files
15451 in hex dump format. The mode command is called @command{nhexl-mode}.
15452
15453 This minor mode implements similar functionality to @command{hexl-mode},
15454 but using a different implementation technique, which makes it
15455 usable as a \"plain\" minor mode. It works on any buffer, and does
15456 not mess with the undo log or with the major mode.
15457
15458 It also comes with:
15459
15460 @itemize
15461 @item @command{nhexl-nibble-edit-mode}: a \"nibble editor\" minor mode, where
15462 the cursor pretends to advance by nibbles (4-bit) and the self-insertion keys
15463 (which only work for hex-digits) will only modify the nibble under point.
15464 @item @command{nhexl-overwrite-only-mode}: a minor mode to try and avoid
15465 moving text. In this minor mode, not only self-inserting keys overwrite
15466 existing text, but commands like `yank' and @command{kill-region} as well.
15467 @item It overrides @code{C-u} to use hexadecimal, so you can do @code{C-u a 4
15468 C-f} to advance by #xa4 characters.
15469 @end itemize\n")
15470 (license license:gpl3+)))
15471
15472 (define-public emacs-helm-wikipedia
15473 (let ((commit "126f044e0a0e1432e0791c33ce2a41875d704a9b"))
15474 (package
15475 (name "emacs-helm-wikipedia")
15476 (version (git-version "0.0.0" "1" commit))
15477 (home-page "https://github.com/emacs-helm/helm-wikipedia/")
15478 (source
15479 (origin
15480 (method git-fetch)
15481 (uri (git-reference
15482 (url home-page)
15483 (commit commit)))
15484 (file-name (git-file-name name version))
15485 (sha256
15486 (base32
15487 "148a5xsnbsiddhf9cl7yxdk41lrv38h0pip91kcflw9d7l0dp7pr"))))
15488 (build-system emacs-build-system)
15489 (inputs
15490 `(("helm" ,emacs-helm)))
15491 (synopsis "Search suggestions and article extracts from Wikipedia for Emacs")
15492 (description
15493 "This package provides an Emacs Helm interface for search suggestions
15494 and article extracts for Wikipedia.")
15495 (license license:gpl3+))))
15496
15497 (define-public emacs-webfeeder
15498 (package
15499 (name "emacs-webfeeder")
15500 (version "1.0.0")
15501 (source
15502 (origin
15503 (method url-fetch)
15504 (uri (string-append
15505 "https://elpa.gnu.org/packages/webfeeder-"
15506 version
15507 ".tar"))
15508 (sha256
15509 (base32
15510 "06y5vxw9m6pmbrzb8v2i3w9dnhgqxz06vyx1knmgi9cczlrj4a64"))))
15511 (build-system emacs-build-system)
15512 (home-page "https://gitlab.com/Ambrevar/emacs-webfeeder")
15513 (synopsis "Build RSS and Atom webfeeds from HTML files")
15514 (description
15515 "Webfeeder is an Emacs library to generate RSS and Atom feeds from HTML
15516 files. The various elements of the HTML input are parsed with customizable
15517 functions (e.g. @code{webfeeder-title-function}).")
15518 (license license:gpl3+)))
15519
15520 (define-public emacs-evil-numbers
15521 (let ((commit "6ea1c8c3a9b37bed63d48f1128e9a4910e68187e"))
15522 (package
15523 (name "emacs-evil-numbers")
15524 (version (git-version "0.4" "1" commit))
15525 (source (origin
15526 (method git-fetch)
15527 (uri (git-reference
15528 (url "https://github.com/dieggsy/evil-numbers")
15529 (commit commit)))
15530 (file-name (git-file-name name version))
15531 (sha256
15532 (base32
15533 "1aq95hj8x13py0pwsnc6wvd8cc5yv5qin8ym9js42y5966vwj4np"))))
15534 (build-system emacs-build-system)
15535 (home-page "https://github.com/dieggsy/evil-numbers")
15536 (synopsis "Increment and decrement numbers in Emacs")
15537 (description "This package increments and decrements binary, octal,
15538 decimal and hex literals. It works like C-a/C-x in Vim, i.e. searches for
15539 number up to EOL and then increments or decrements and keeps zero padding up
15540 (unlike in Vim). When a region is active, as in Evil's visual mode, all the
15541 numbers within that region will be incremented/decremented (unlike in Vim).
15542
15543 It is a fork of https://github.com/cofi/evil-numbers, which is unmaintained.")
15544 (license license:gpl3+))))
15545
15546 (define-public emacs-rotate-text
15547 (package
15548 (name "emacs-rotate-text")
15549 (version "0.1")
15550 (source (origin
15551 (method git-fetch)
15552 (uri (git-reference
15553 (url "https://github.com/nschum/rotate-text.el.git")
15554 (commit version)))
15555 (file-name (git-file-name name version))
15556 (sha256
15557 (base32
15558 "1cgxv4aibkvv6lnssynn0438a615fz3zq8hg9sb0lhfgsr99pxln"))))
15559 (build-system emacs-build-system)
15560 (home-page "http://nschum.de/src/emacs/rotate-text/")
15561 (synopsis "Cycle through words, symbols and patterns in Emacs")
15562 (description "@code{rotate-text} allows you rotate to commonly
15563 interchanged text with a single keystroke. For example, you can toggle
15564 between \"frame-width\" and \"frame-height\", between \"public\",
15565 \"protected\" and \"private\" and between \"variable1\", \"variable2\" through
15566 \"variableN\".")
15567 (license license:gpl2+)))
15568
15569 (define-public emacs-ediprolog
15570 (package
15571 (name "emacs-ediprolog")
15572 (version "1.2")
15573 (source
15574 (origin
15575 (method url-fetch)
15576 (uri (string-append
15577 "https://elpa.gnu.org/packages/ediprolog-"
15578 version
15579 ".el"))
15580 (sha256
15581 (base32
15582 "039ffvp7c810mjyargmgw1i87g0z8qs8qicq826sd9aiz9hprfaz"))))
15583 (build-system emacs-build-system)
15584 (home-page "http://elpa.gnu.org/packages/ediprolog.html")
15585 (synopsis "Emacs Does Interactive Prolog")
15586 (description "This package provides a major mode that let the user
15587 interact with SWI-Prolog in all buffers. For instance, one can consult Prolog
15588 programs and evaluate embedded queries. This mode is focused on the command
15589 @code{ediprolog-dwim} (Do What I Mean) which is supposed to, depending on the
15590 context, carry out the appropriate action.")
15591 (license license:gpl3+)))
15592
15593 (define-public emacs-evil-cleverparens
15594 (let ((commit "8c45879d49bfa6d4e414b6c1df700a4a51cbb869")
15595 (revision "1"))
15596 (package
15597 (name "emacs-evil-cleverparens")
15598 (version (git-version "2017-07-17" revision commit))
15599 (source (origin
15600 (method git-fetch)
15601 (uri (git-reference
15602 (url "https://github.com/luxbock/evil-cleverparens.git")
15603 (commit commit)))
15604 (sha256 (base32 "0lhnybpnk4n2yhlcnj9zxn0vi5hpjfaqfhvyfy7ckzz74g8v7iyw"))
15605 (file-name (git-file-name name version))))
15606 (build-system emacs-build-system)
15607 (propagated-inputs
15608 `(("emacs-evil" ,emacs-evil)
15609 ("emacs-paredit" ,emacs-paredit)
15610 ("emacs-smartparens" ,emacs-smartparens)))
15611 (home-page "https://github.com/luxbock/evil-cleverparens")
15612 (synopsis "Emacs modal editing optimized for editing Lisp")
15613 (description "@code{evil-cleverparens} remaps Evil keybindings to allow
15614 modal editing with screwing up the structure of Lisp code. Alternatives for
15615 verb commands which would are normally destructive (such as deletion) are
15616 provided. Those alternative commands are and bound by default to their
15617 corresponding Evil keys.")
15618 (license license:expat))))