gnu: emacs-mu4e-alert: Fix byte compilation.
[jackhill/guix/guix.git] / gnu / packages / emacs.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 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 Alex Kost <alezost@gmail.com>
6 ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
7 ;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
8 ;;; Copyright © 2016, 2017 Chris Marusich <cmmarusich@gmail.com>
9 ;;; Copyright © 2015, 2016 Christopher Allan Webber <cwebber@dustycloud.org>
10 ;;; Copyright © 2016 Adriano Peluso <catonano@gmail.com>
11 ;;; Copyright © 2016, 2017, 2018 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 Nils Gillmann <ng0@n0.is>
16 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
17 ;;; Copyright © 2016, 2017, 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
18 ;;; Copyright © 2016, 2017 Alex Vong <alexvong1995@gmail.com>
19 ;;; Copyright © 2016, 2017, 2018 Arun Isaac <arunisaac@systemreboot.net>
20 ;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
21 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
22 ;;; Copyright © 2017 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 Feng Shu <tumashu@163.com>
28 ;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
29 ;;; Copyright © 2017, 2018 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 Tobias Geerinckx-Rice <me@tobias.gr>
33 ;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org>
34 ;;; Copyright © 2017, 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
35 ;;; Copyright © 2018 Sohom Bhattacharjee <soham.bhattacharjee15@gmail.com>
36 ;;; Copyright © 2018 Mathieu Lirzin <mthl@gnu.org>
37 ;;;
38 ;;; This file is part of GNU Guix.
39 ;;;
40 ;;; GNU Guix is free software; you can redistribute it and/or modify it
41 ;;; under the terms of the GNU General Public License as published by
42 ;;; the Free Software Foundation; either version 3 of the License, or (at
43 ;;; your option) any later version.
44 ;;;
45 ;;; GNU Guix is distributed in the hope that it will be useful, but
46 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
47 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
48 ;;; GNU General Public License for more details.
49 ;;;
50 ;;; You should have received a copy of the GNU General Public License
51 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
52
53 (define-module (gnu packages emacs)
54 #:use-module ((guix licenses) #:prefix license:)
55 #:use-module (guix packages)
56 #:use-module (guix download)
57 #:use-module (guix git-download)
58 #:use-module (guix gexp)
59 #:use-module (guix monads)
60 #:use-module (guix store)
61 #:use-module (guix build-system gnu)
62 #:use-module (guix build-system emacs)
63 #:use-module (guix build-system glib-or-gtk)
64 #:use-module (guix build-system trivial)
65 #:use-module (gnu packages)
66 #:use-module (gnu packages audio)
67 #:use-module (gnu packages bash)
68 #:use-module (gnu packages code)
69 #:use-module (gnu packages guile)
70 #:use-module (gnu packages gtk)
71 #:use-module (gnu packages gnome)
72 #:use-module (gnu packages ncurses)
73 #:use-module (gnu packages python)
74 #:use-module (gnu packages tex)
75 #:use-module (gnu packages texinfo)
76 #:use-module (gnu packages tcl)
77 #:use-module (gnu packages tls)
78 #:use-module (gnu packages pkg-config)
79 #:use-module (gnu packages xorg)
80 #:use-module (gnu packages lesstif)
81 #:use-module (gnu packages image)
82 #:use-module (gnu packages linux)
83 #:use-module (gnu packages version-control)
84 #:use-module (gnu packages imagemagick)
85 #:use-module (gnu packages w3m)
86 #:use-module (gnu packages wget)
87 #:use-module (gnu packages autotools)
88 #:use-module (gnu packages base)
89 #:use-module (gnu packages compression)
90 #:use-module (gnu packages xml)
91 #:use-module (gnu packages glib)
92 #:use-module (gnu packages acl)
93 #:use-module (gnu packages mail)
94 #:use-module (gnu packages package-management)
95 #:use-module (gnu packages perl)
96 #:use-module (gnu packages pdf)
97 #:use-module (gnu packages scheme)
98 #:use-module (gnu packages statistics)
99 #:use-module (gnu packages xiph)
100 #:use-module (gnu packages mp3)
101 #:use-module (gnu packages gettext)
102 #:use-module (gnu packages fribidi)
103 #:use-module (gnu packages gd)
104 #:use-module (gnu packages fontutils)
105 #:use-module (gnu packages password-utils)
106 #:use-module (guix utils)
107 #:use-module (srfi srfi-1)
108 #:use-module (ice-9 match))
109
110 (define-public emacs
111 (package
112 (name "emacs")
113 (version "25.3")
114 (source (origin
115 (method url-fetch)
116 (uri (string-append "mirror://gnu/emacs/emacs-"
117 version ".tar.xz"))
118 (sha256
119 (base32
120 "02y00y9q42g1iqgz5qhmsja75hwxd88yrn9zp14lanay0zkwafi5"))
121 (patches (search-patches "emacs-exec-path.patch"
122 "emacs-fix-scheme-indent-function.patch"
123 "emacs-source-date-epoch.patch"))
124 (modules '((guix build utils)))
125 (snippet
126 ;; Delete the bundled byte-compiled elisp files and
127 ;; generated autoloads.
128 '(with-directory-excursion "lisp"
129 (for-each delete-file
130 (append (find-files "." "\\.elc$")
131 (find-files "." "loaddefs\\.el$")
132 ;; This is the only "autoloads" file that
133 ;; does not have "*loaddefs.el" name.
134 '("eshell/esh-groups.el")))
135
136 ;; Make sure Tramp looks for binaries in the right places on
137 ;; remote GuixSD machines, where 'getconf PATH' returns
138 ;; something bogus.
139 (substitute* "net/tramp-sh.el"
140 ;; Patch the line after "(defcustom tramp-remote-path".
141 (("\\(tramp-default-remote-path")
142 (format #f "(tramp-default-remote-path ~s ~s ~s ~s "
143 "~/.guix-profile/bin" "~/.guix-profile/sbin"
144 "/run/current-system/profile/bin"
145 "/run/current-system/profile/sbin")))
146
147 ;; Make sure Man looks for C header files in the right
148 ;; places.
149 (substitute* "man.el"
150 (("\"/usr/local/include\"" line)
151 (string-join
152 (list line
153 "\"~/.guix-profile/include\""
154 "\"/var/guix/profiles/system/profile/include\"")
155 " ")))))))
156 (build-system glib-or-gtk-build-system)
157 (arguments
158 `(#:phases
159 (modify-phases %standard-phases
160 (add-before 'configure 'fix-/bin/pwd
161 (lambda _
162 ;; Use `pwd', not `/bin/pwd'.
163 (substitute* (find-files "." "^Makefile\\.in$")
164 (("/bin/pwd")
165 "pwd"))))
166 (add-after 'install 'install-site-start
167 ;; Use 'guix-emacs' in "site-start.el". This way, Emacs packages
168 ;; provided by Guix and installed in
169 ;; ~/.guix-profile/share/emacs/site-lisp/guix.d/PACKAGE-VERSION are
170 ;; automatically found.
171 (lambda* (#:key inputs outputs #:allow-other-keys)
172 (let* ((out (assoc-ref outputs "out"))
173 (lisp-dir (string-append out "/share/emacs/site-lisp")))
174 (copy-file (assoc-ref inputs "guix-emacs.el")
175 (string-append lisp-dir "/guix-emacs.el"))
176 (with-output-to-file (string-append lisp-dir "/site-start.el")
177 (lambda ()
178 (display
179 (string-append "(when (require 'guix-emacs nil t)\n"
180 " (guix-emacs-autoload-packages))\n"))))
181 #t))))))
182 (inputs
183 `(("gnutls" ,gnutls)
184 ("ncurses" ,ncurses)
185
186 ;; TODO: Add the optional dependencies.
187 ("libx11" ,libx11)
188 ("gtk+" ,gtk+)
189 ("libxft" ,libxft)
190 ("libtiff" ,libtiff)
191 ("giflib" ,giflib)
192 ("libjpeg" ,libjpeg-8)
193 ("imagemagick" ,imagemagick)
194 ("acl" ,acl)
195
196 ;; When looking for libpng `configure' links with `-lpng -lz', so we
197 ;; must also provide zlib as an input.
198 ("libpng" ,libpng)
199 ("zlib" ,zlib)
200
201 ("librsvg" ,librsvg)
202 ("libxpm" ,libxpm)
203 ("libxml2" ,libxml2)
204 ("libice" ,libice)
205 ("libsm" ,libsm)
206 ("alsa-lib" ,alsa-lib)
207 ("dbus" ,dbus)
208
209 ;; multilingualization support
210 ("libotf" ,libotf)
211 ("m17n-lib" ,m17n-lib)))
212 (native-inputs
213 `(("guix-emacs.el" ,(search-auxiliary-file "emacs/guix-emacs.el"))
214 ("pkg-config" ,pkg-config)
215 ("texinfo" ,texinfo)))
216
217 (native-search-paths
218 (list (search-path-specification
219 (variable "INFOPATH")
220 (files '("share/info")))))
221
222 (home-page "https://www.gnu.org/software/emacs/")
223 (synopsis "The extensible, customizable, self-documenting text editor")
224 (description
225 "GNU Emacs is an extensible and highly customizable text editor. It is
226 based on an Emacs Lisp interpreter with extensions for text editing. Emacs
227 has been extended in essentially all areas of computing, giving rise to a
228 vast array of packages supporting, e.g., email, IRC and XMPP messaging,
229 spreadsheets, remote server editing, and much more. Emacs includes extensive
230 documentation on all aspects of the system, from basic editing to writing
231 large Lisp programs. It has full Unicode support for nearly all human
232 languages.")
233 (license license:gpl3+)))
234
235 (define-public emacs-minimal
236 ;; This is the version that you should use as an input to packages that just
237 ;; need to byte-compile .el files.
238 (package (inherit emacs)
239 (name "emacs-minimal")
240 (synopsis "The extensible text editor (used only for byte-compilation)")
241 (build-system gnu-build-system)
242 (arguments
243 (substitute-keyword-arguments (package-arguments emacs)
244 ((#:phases phases)
245 `(modify-phases ,phases
246 (delete 'install-site-start)))))
247 (inputs
248 `(("ncurses" ,ncurses)))
249 (native-inputs
250 `(("pkg-config" ,pkg-config)))))
251
252 (define-public emacs-no-x
253 (package (inherit emacs)
254 (name "emacs-no-x")
255 (synopsis "The extensible, customizable, self-documenting text
256 editor (console only)")
257 (build-system gnu-build-system)
258 (inputs (fold alist-delete
259 (package-inputs emacs)
260 '("libx11" "gtk+" "libxft" "libtiff" "giflib" "libjpeg"
261 "imagemagick" "libpng" "librsvg" "libxpm" "libice"
262 "libsm"
263
264 ;; These depend on libx11, so remove them as well.
265 "libotf" "m17n-lib" "dbus")))))
266
267 (define-public emacs-no-x-toolkit
268 (package (inherit emacs)
269 (name "emacs-no-x-toolkit")
270 (synopsis "The extensible, customizable, self-documenting text
271 editor (without an X toolkit)" )
272 (build-system gnu-build-system)
273 (inputs (append `(("inotify-tools" ,inotify-tools))
274 (alist-delete "gtk+" (package-inputs emacs))))
275 (arguments (append '(#:configure-flags '("--with-x-toolkit=no"))
276 (package-arguments emacs)))))
277
278 (define-public guile-emacs
279 (package (inherit emacs)
280 (name "guile-emacs")
281 (version "20150512.41120e0")
282 (source (origin
283 (method git-fetch)
284 (uri (git-reference
285 (url "git://git.hcoop.net/git/bpt/emacs.git")
286 (commit "41120e0f595b16387eebfbf731fff70481de1b4b")))
287 (file-name (string-append name "-" version "-checkout"))
288 (patches (search-patches "guile-emacs-fix-configure.patch"))
289 (sha256
290 (base32
291 "0lvcvsz0f4mawj04db35p1dvkffdqkz8pkhc0jzh9j9x2i63kcz6"))))
292 (native-inputs
293 `(("autoconf" ,autoconf)
294 ("automake" ,automake)
295 ("guile" ,guile-for-guile-emacs)
296 ,@(package-native-inputs emacs)))
297 (arguments
298 (substitute-keyword-arguments `(;; Build fails if we allow parallel build.
299 #:parallel-build? #f
300 ;; Tests aren't passing for now.
301 #:tests? #f
302 ,@(package-arguments emacs))
303 ((#:phases phases)
304 `(modify-phases ,phases
305 (add-after 'unpack 'autogen
306 (lambda _
307 (zero? (system* "sh" "autogen.sh"))))
308 ;; Build sometimes fails: deps/dispnew.d: No such file or directory
309 (add-before 'build 'make-deps-dir
310 (lambda _
311 (zero? (system* "mkdir" "-p" "src/deps"))))))))))
312
313 \f
314 ;;;
315 ;;; Emacs hacking.
316 ;;;
317
318 (define-public geiser
319 (package
320 (name "geiser")
321 (version "0.9")
322 (source (origin
323 (method url-fetch)
324 (uri (string-append "mirror://savannah/geiser/" version
325 "/geiser-" version ".tar.gz"))
326 (sha256
327 (base32
328 "0phz9d8wjk4p13vqannv0003fwh8qqrp0gfzcs2hgq1mrmv1srss"))))
329 (build-system gnu-build-system)
330 (arguments
331 '(#:phases
332 (modify-phases %standard-phases
333 (add-after 'install 'post-install
334 (lambda* (#:key outputs #:allow-other-keys)
335 (symlink "geiser-install.el"
336 (string-append (assoc-ref outputs "out")
337 "/share/emacs/site-lisp/"
338 "geiser-autoloads.el"))
339 #t)))))
340 (inputs `(("guile" ,guile-2.0)))
341 (native-inputs `(("emacs" ,emacs-minimal)))
342 (home-page "https://nongnu.org/geiser/")
343 (synopsis "Collection of Emacs modes for Guile and Racket hacking")
344 (description
345 "Geiser is a collection of Emacs major and minor modes that conspire with
346 one or more Scheme implementations to keep the Lisp Machine Spirit alive. The
347 continuously running Scheme interpreter takes the center of the stage in
348 Geiser. A bundle of Elisp shims orchestrates the dialog between the Scheme
349 implementation, Emacs and, ultimately, the schemer, giving them access to live
350 metadata.")
351 (license license:bsd-3)))
352
353 (define-public geiser-next
354 ;; This has become "geiser".
355 (deprecated-package "geiser-next" geiser))
356
357 (define-public paredit
358 (package
359 (name "emacs-paredit")
360 (version "24")
361 (source (origin
362 (method url-fetch)
363 (uri (string-append "http://mumble.net/~campbell/emacs/paredit-"
364 version ".el"))
365 (sha256
366 (base32
367 "0pp3n8q6kc70blqsaw0zlzp6bc327dpgdrjr0cnh7hqg1lras7ka"))))
368 (build-system emacs-build-system)
369 (home-page "http://mumble.net/~campbell/emacs/paredit/")
370 (synopsis "Emacs minor mode for editing parentheses")
371 (description
372 "ParEdit (paredit.el) is a minor mode for performing structured editing
373 of S-expression data. The typical example of this would be Lisp or Scheme
374 source code.
375
376 ParEdit helps **keep parentheses balanced** and adds many keys for moving
377 S-expressions and moving around in S-expressions. Its behavior can be jarring
378 for those who may want transient periods of unbalanced parentheses, such as
379 when typing parentheses directly or commenting out code line by line.")
380 (license license:gpl3+)))
381
382 (define-public paredit/old-name
383 (deprecated-package "paredit" paredit))
384
385 (define-public git-modes
386 (package
387 (name "emacs-git-modes")
388 (version "1.2.7")
389 (source (origin
390 (method url-fetch)
391 (uri (string-append
392 "https://github.com/magit/git-modes/archive/"
393 version ".tar.gz"))
394 (file-name (string-append name "-" version ".tar.gz"))
395 (sha256
396 (base32
397 "1mzl70s0xyysnjq1j10mc5vn9i022n5vd82kxsgp4xxqq7gc4qnx"))))
398 (build-system emacs-build-system)
399 (home-page "https://github.com/magit/git-modes")
400 (synopsis "Emacs major modes for Git configuration files")
401 (description
402 "This package provides Emacs major modes for editing various Git
403 configuration files, such as .gitattributes, .gitignore, and .git/config.")
404 (license license:gpl3+)))
405
406 (define-public git-modes/old-name
407 (deprecated-package "git-modes" git-modes))
408
409 (define-public emacs-with-editor
410 (package
411 (name "emacs-with-editor")
412 (version "2.7.0")
413 (source (origin
414 (method url-fetch)
415 (uri (string-append
416 "https://github.com/magit/with-editor/archive/v"
417 version ".tar.gz"))
418 (file-name (string-append name "-" version ".tar.gz"))
419 (sha256
420 (base32
421 "0kah7pv211zx9fsb5g4hd51bqcq2bxd1chdykd488ihvfz1l5y14"))))
422 (build-system emacs-build-system)
423 (propagated-inputs
424 `(("emacs-dash" ,emacs-dash)))
425 (home-page "https://github.com/magit/with-editor")
426 (synopsis "Emacs library for using Emacsclient as EDITOR")
427 (description
428 "This package provides an Emacs library to use the Emacsclient as
429 @code{$EDITOR} of child processes, making sure they know how to call home.
430 For remote processes a substitute is provided, which communicates with Emacs
431 on stdout instead of using a socket as the Emacsclient does.")
432 (license license:gpl3+)))
433
434 (define-public magit
435 (package
436 (name "magit")
437 (version "2.11.0")
438 (source (origin
439 (method url-fetch)
440 (uri (string-append
441 "https://github.com/magit/magit/releases/download/"
442 version "/" name "-" version ".tar.gz"))
443 (sha256
444 (base32
445 "11xly5bma9jc1jhs8fqbqrci8kz1y26yfq7dqjkqfy956wvfg6hz"))))
446 (build-system gnu-build-system)
447 (native-inputs `(("texinfo" ,texinfo)
448 ("emacs" ,emacs-minimal)))
449 (inputs
450 `(("git" ,git)
451 ("perl" ,perl)))
452 (propagated-inputs
453 `(("dash" ,emacs-dash)
454 ;; XXX Add 'magit-popup' dependency for the next release (after 2.11.0).
455 ("with-editor" ,emacs-with-editor)))
456 (arguments
457 `(#:test-target "test"
458 #:tests? #f ; tests are not included in the release
459
460 #:make-flags
461 (list (string-append "PREFIX=" %output)
462 ;; Don't put .el files in a sub-directory.
463 (string-append "lispdir=" %output "/share/emacs/site-lisp")
464 (string-append "DASH_DIR="
465 (assoc-ref %build-inputs "dash")
466 "/share/emacs/site-lisp/guix.d/dash-"
467 ,(package-version emacs-dash))
468 (string-append "WITH_EDITOR_DIR="
469 (assoc-ref %build-inputs "with-editor")
470 "/share/emacs/site-lisp/guix.d/with-editor-"
471 ,(package-version emacs-with-editor)))
472
473 #:phases
474 (modify-phases %standard-phases
475 (delete 'configure)
476 (add-before
477 'build 'patch-exec-paths
478 (lambda* (#:key inputs #:allow-other-keys)
479 (let ((perl (assoc-ref inputs "perl")))
480 (substitute* "lisp/magit-sequence.el"
481 (("perl") (string-append perl "/bin/perl")))
482 #t))))))
483 (home-page "http://magit.github.io/")
484 (synopsis "Emacs interface for the Git version control system")
485 (description
486 "With Magit, you can inspect and modify your Git repositories with Emacs.
487 You can review and commit the changes you have made to the tracked files, for
488 example, and you can browse the history of past changes. There is support for
489 cherry picking, reverting, merging, rebasing, and other common Git
490 operations.")
491 (license license:gpl3+)))
492
493 (define-public magit-svn
494 (package
495 (name "magit-svn")
496 (version "2.2.0")
497 (source (origin
498 (method url-fetch)
499 (uri (string-append
500 "https://github.com/magit/magit-svn/archive/"
501 version ".tar.gz"))
502 (file-name (string-append name "-" version ".tar.gz"))
503 (sha256
504 (base32
505 "1c3n377v436zaxamlsz04y1ahdhp96x1vd43zaryv4y10m02ba47"))))
506 (build-system trivial-build-system)
507 (native-inputs `(("emacs" ,emacs-minimal)
508 ("tar" ,tar)
509 ("gzip" ,gzip)))
510 (propagated-inputs `(("dash" ,emacs-dash)
511 ("with-editor" ,emacs-with-editor)
512 ("magit" ,magit)))
513 (arguments
514 `(#:modules ((guix build utils)
515 (guix build emacs-utils))
516
517 #:builder
518 (begin
519 (use-modules (guix build utils)
520 (guix build emacs-utils))
521
522 (let* ((tar (string-append (assoc-ref %build-inputs "tar")
523 "/bin/tar"))
524 (PATH (string-append (assoc-ref %build-inputs "gzip")
525 "/bin"))
526 (emacs (string-append (assoc-ref %build-inputs "emacs")
527 "/bin/emacs"))
528 (magit (string-append (assoc-ref %build-inputs "magit")
529 "/share/emacs/site-lisp"))
530 (dash (string-append (assoc-ref %build-inputs "dash")
531 "/share/emacs/site-lisp/guix.d/dash-"
532 ,(package-version emacs-dash)))
533 (with-editor (string-append (assoc-ref %build-inputs "with-editor")
534 "/share/emacs/site-lisp/guix.d/with-editor-"
535 ,(package-version emacs-with-editor)))
536 (source (assoc-ref %build-inputs "source"))
537 (lisp-dir (string-append %output "/share/emacs/site-lisp")))
538 (setenv "PATH" PATH)
539 (system* tar "xvf" source)
540
541 (install-file (string-append ,name "-" ,version "/magit-svn.el")
542 lisp-dir)
543
544 (with-directory-excursion lisp-dir
545 (parameterize ((%emacs emacs))
546 (emacs-generate-autoloads ,name lisp-dir)
547 (setenv "EMACSLOADPATH"
548 (string-append ":" magit ":" dash ":" with-editor))
549 (emacs-batch-eval '(byte-compile-file "magit-svn.el"))))))))
550 (home-page "https://github.com/magit/magit-svn")
551 (synopsis "Git-SVN extension to Magit")
552 (description
553 "This package is an extension to Magit, the Git Emacs mode, providing
554 support for Git-SVN.")
555 (license license:gpl3+)))
556
557 (define-public emacs-magit-popup
558 (package
559 (name "emacs-magit-popup")
560 (version "2.12.0")
561 (source (origin
562 (method url-fetch)
563 (uri (string-append
564 "https://github.com/magit/magit-popup/archive/v"
565 version ".tar.gz"))
566 (file-name (string-append name "-" version ".tar.gz"))
567 (sha256
568 (base32
569 "1dnk611f7lww6rb03hk8ijg2jwxx9f26pjfff4bwjmnjz7hnd6vz"))))
570 (build-system emacs-build-system)
571 (arguments
572 `(#:phases
573 (modify-phases %standard-phases
574 (add-before 'install 'make-info
575 (lambda _
576 (zero? (system* "make" "info")))))))
577 (native-inputs
578 `(("texinfo" ,texinfo)))
579 (propagated-inputs
580 `(("emacs-dash" ,emacs-dash)))
581 (home-page "https://github.com/magit/magit-popup")
582 (synopsis "Define prefix-infix-suffix command combos")
583 (description
584 "This library implements a generic interface for toggling switches and
585 setting options and then invoking an Emacs command which does something with
586 these arguments. The prototypical use is for the command to call an external
587 process, passing on the arguments as command line arguments.")
588 (license license:gpl3+)))
589
590 (define-public haskell-mode
591 (package
592 (name "haskell-mode")
593 (version "16.1")
594 (source (origin
595 (method url-fetch)
596 (file-name (string-append name "-" version ".tar.gz"))
597 (uri (string-append
598 "https://github.com/haskell/haskell-mode/archive/v"
599 version ".tar.gz"))
600 (sha256
601 (base32 "0g6lcjw7lcgavv3yrd8xjcyqgfyjl787y32r1z14amw2f009m78h"))))
602 (inputs
603 `(("emacs-el-search" ,emacs-el-search) ; for tests
604 ("emacs-stream" ,emacs-stream))) ; for tests
605 (propagated-inputs
606 `(("emacs-dash" ,emacs-dash)))
607 (native-inputs
608 `(("emacs" ,emacs-minimal)
609 ("texinfo" ,texinfo)))
610 (build-system gnu-build-system)
611 (arguments
612 `(#:make-flags (list (string-append "EMACS="
613 (assoc-ref %build-inputs "emacs")
614 "/bin/emacs"))
615 #:modules ((ice-9 match)
616 (srfi srfi-26)
617 ,@%gnu-build-system-modules)
618 #:phases
619 (modify-phases %standard-phases
620 (delete 'configure)
621 (add-before
622 'build 'pre-build
623 (lambda* (#:key inputs #:allow-other-keys)
624 (define (el-dir store-dir)
625 (match (find-files store-dir "\\.el$")
626 ((f1 f2 ...) (dirname f1))
627 (_ "")))
628
629 (let ((sh (string-append (assoc-ref inputs "bash") "/bin/sh")))
630 (define emacs-prefix? (cut string-prefix? "emacs-" <>))
631
632 (setenv "SHELL" "sh")
633 (setenv "EMACSLOADPATH"
634 (string-concatenate
635 (map (match-lambda
636 (((? emacs-prefix? name) . dir)
637 (string-append (el-dir dir) ":"))
638 (_ ""))
639 inputs)))
640 (substitute* (find-files "." "\\.el") (("/bin/sh") sh))
641 (substitute* "tests/haskell-code-conventions.el"
642 ;; Function name recently changed in "emacs-el-search".
643 (("el-search--search-pattern") "el-search-forward")
644 ;; Don't contact home.
645 (("\\(when \\(>= emacs-major-version 25\\)")
646 "(require 'el-search) (when nil"))
647 #t)))
648 (replace
649 'install
650 (lambda* (#:key outputs #:allow-other-keys)
651 (let* ((out (assoc-ref outputs "out"))
652 (el-dir (string-append out "/share/emacs/site-lisp"))
653 (doc (string-append
654 out "/share/doc/haskell-mode-" ,version))
655 (info (string-append out "/share/info")))
656 (define (copy-to-dir dir files)
657 (for-each (lambda (f)
658 (install-file f dir))
659 files))
660
661 (with-directory-excursion "doc"
662 (unless (zero? (system* "makeinfo" "haskell-mode.texi"))
663 (error "makeinfo failed"))
664 (install-file "haskell-mode.info" info))
665 (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md"))
666 (copy-to-dir el-dir (find-files "." "\\.elc?"))
667 ;; These are part of other packages.
668 (with-directory-excursion el-dir
669 (for-each delete-file '("dash.el" "ert.el")))
670 #t))))))
671 (home-page "https://github.com/haskell/haskell-mode")
672 (synopsis "Haskell mode for Emacs")
673 (description
674 "This is an Emacs mode for editing, debugging and developing Haskell
675 programs.")
676 (license license:gpl3+)))
677
678 (define-public flycheck
679 (package
680 (name "emacs-flycheck")
681 (version "31")
682 (source (origin
683 (method url-fetch)
684 (uri (string-append
685 "https://github.com/flycheck/flycheck/releases/download/"
686 version "/flycheck-" version ".tar"))
687 (sha256
688 (base32
689 "01rnwan16m7cyyrfca3c5c60mbj2r3knkpzbhji2fczsf0wns240"))))
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 \f
707 ;;;
708 ;;; Web browsing.
709 ;;;
710
711 (define-public emacs-w3m
712 (package
713 (name "emacs-w3m")
714 (version "1.4.538+0.20141022")
715 (source (origin
716 (method url-fetch)
717 (uri (string-append "mirror://debian/pool/main/w/w3m-el/w3m-el_"
718 version ".orig.tar.gz"))
719 (sha256
720 (base32
721 "0zfxmq86pwk64yv0426gnjrvhjrgrjqn08sdcdhmmjmfpmqvm79y"))))
722 (build-system gnu-build-system)
723 (native-inputs `(("autoconf" ,autoconf)
724 ("emacs" ,emacs-minimal)))
725 (inputs `(("w3m" ,w3m)
726 ("imagemagick" ,imagemagick)))
727 (arguments
728 `(#:modules ((guix build gnu-build-system)
729 (guix build utils)
730 (guix build emacs-utils))
731 #:imported-modules (,@%gnu-build-system-modules
732 (guix build emacs-utils))
733 #:configure-flags
734 (let ((out (assoc-ref %outputs "out")))
735 (list (string-append "--with-lispdir="
736 out "/share/emacs/site-lisp")
737 (string-append "--with-icondir="
738 out "/share/images/emacs-w3m")
739 ;; Leave .el files uncompressed, otherwise GC can't
740 ;; identify run-time dependencies. See
741 ;; <http://lists.gnu.org/archive/html/guix-devel/2015-12/msg00208.html>
742 "--without-compress-install"))
743 #:tests? #f ; no check target
744 #:phases
745 (modify-phases %standard-phases
746 (add-after 'unpack 'autoconf
747 (lambda _
748 (zero? (system* "autoconf"))))
749 (add-before 'build 'patch-exec-paths
750 (lambda* (#:key inputs outputs #:allow-other-keys)
751 (let ((out (assoc-ref outputs "out"))
752 (w3m (assoc-ref inputs "w3m"))
753 (imagemagick (assoc-ref inputs "imagemagick"))
754 (coreutils (assoc-ref inputs "coreutils")))
755 (emacs-substitute-variables "w3m.el"
756 ("w3m-command" (string-append w3m "/bin/w3m"))
757 ("w3m-touch-command"
758 (string-append coreutils "/bin/touch"))
759 ("w3m-image-viewer"
760 (string-append imagemagick "/bin/display"))
761 ("w3m-icon-directory"
762 (string-append out "/share/images/emacs-w3m")))
763 (emacs-substitute-variables "w3m-image.el"
764 ("w3m-imagick-convert-program"
765 (string-append imagemagick "/bin/convert"))
766 ("w3m-imagick-identify-program"
767 (string-append imagemagick "/bin/identify")))
768 #t)))
769 (replace 'install
770 (lambda* (#:key outputs #:allow-other-keys)
771 (and (zero? (system* "make" "install" "install-icons"))
772 (with-directory-excursion
773 (string-append (assoc-ref outputs "out")
774 "/share/emacs/site-lisp")
775 (for-each delete-file '("ChangeLog" "ChangeLog.1"))
776 (symlink "w3m-load.el" "w3m-autoloads.el")
777 #t)))))))
778 (home-page "http://emacs-w3m.namazu.org/")
779 (synopsis "Simple Web browser for Emacs based on w3m")
780 (description
781 "Emacs-w3m is an emacs interface for the w3m web browser.")
782 (license license:gpl2+)))
783
784 (define-public emacs-wget
785 (package
786 (name "emacs-wget")
787 (version "0.5.0")
788 (source (origin
789 (method url-fetch)
790 (uri (string-append "mirror://debian/pool/main/w/wget-el/wget-el_"
791 version ".orig.tar.gz"))
792 (sha256
793 (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff"))))
794 (build-system gnu-build-system)
795 (inputs `(("wget" ,wget)))
796 (native-inputs `(("emacs" ,emacs-minimal)))
797 (arguments
798 `(#:modules ((guix build gnu-build-system)
799 (guix build utils)
800 (guix build emacs-utils))
801 #:imported-modules (,@%gnu-build-system-modules
802 (guix build emacs-utils))
803 #:tests? #f ; no check target
804 #:phases
805 (modify-phases %standard-phases
806 (replace 'configure
807 (lambda* (#:key outputs #:allow-other-keys)
808 (substitute* "Makefile"
809 (("/usr/local") (assoc-ref outputs "out"))
810 (("/site-lisp/emacs-wget") "/site-lisp"))
811 #t))
812 (add-before 'build 'patch-exec-paths
813 (lambda* (#:key inputs outputs #:allow-other-keys)
814 (let ((wget (assoc-ref inputs "wget")))
815 (emacs-substitute-variables "wget.el"
816 ("wget-command" (string-append wget "/bin/wget"))))
817 #t))
818 (add-after 'install 'post-install
819 (lambda* (#:key outputs #:allow-other-keys)
820 (emacs-generate-autoloads
821 "wget" (string-append (assoc-ref outputs "out")
822 "/share/emacs/site-lisp/"))
823 #t)))))
824 (home-page "http://www.emacswiki.org/emacs/EmacsWget")
825 (synopsis "Simple file downloader for Emacs based on wget")
826 (description
827 "Emacs-wget is an emacs interface for the wget file downloader.")
828 (license license:gpl2+)))
829
830 \f
831 ;;;
832 ;;; Multimedia.
833 ;;;
834
835 (define-public emms
836 (package
837 (name "emacs-emms")
838 (version "4.4")
839 (source (origin
840 (method url-fetch)
841 (uri (string-append "mirror://gnu/emms/emms-"
842 version ".tar.gz"))
843 (sha256
844 (base32
845 "1b0kalhn81dir26jgsma30i5bbly7d3s1ngqpf01zjjpr7lw5v0h"))
846 (modules '((guix build utils)))
847 (snippet
848 '(substitute* "Makefile"
849 (("/usr/bin/install-info")
850 ;; No need to use 'install-info' since it would create a
851 ;; useless 'dir' file.
852 "true")
853 (("^INFODIR=.*")
854 ;; Install Info files to $out/share/info, not $out/info.
855 "INFODIR := $(PREFIX)/share/info\n")
856 (("/site-lisp/emms")
857 ;; Install directly in share/emacs/site-lisp, not in a
858 ;; sub-directory.
859 "/site-lisp")
860 (("^all: (.*)\n" _ rest)
861 ;; Build 'emms-print-metadata'.
862 (string-append "all: " rest " emms-print-metadata\n"))))))
863 (build-system gnu-build-system)
864 (arguments
865 `(#:modules ((guix build gnu-build-system)
866 (guix build utils)
867 (guix build emacs-utils))
868 #:imported-modules (,@%gnu-build-system-modules
869 (guix build emacs-utils))
870
871 #:phases
872 (modify-phases %standard-phases
873 (replace 'configure
874 (lambda* (#:key inputs outputs #:allow-other-keys)
875 (let ((out (assoc-ref outputs "out"))
876 (flac (assoc-ref inputs "flac"))
877 (vorbis (assoc-ref inputs "vorbis-tools"))
878 (alsa (assoc-ref inputs "alsa-utils"))
879 (mpg321 (assoc-ref inputs "mpg321"))
880 (mp3info (assoc-ref inputs "mp3info")))
881 ;; Specify the installation directory.
882 (substitute* "Makefile"
883 (("PREFIX=.*$")
884 (string-append "PREFIX := " out "\n")))
885
886 (setenv "SHELL" (which "sh"))
887 (setenv "CC" "gcc")
888
889 ;; Specify the absolute file names of the various
890 ;; programs so that everything works out-of-the-box.
891 (with-directory-excursion "lisp"
892 (emacs-substitute-variables
893 "emms-player-mpg321-remote.el"
894 ("emms-player-mpg321-remote-command"
895 (string-append mpg321 "/bin/mpg321")))
896 (substitute* "emms-player-simple.el"
897 (("\"ogg123\"")
898 (string-append "\"" vorbis "/bin/ogg123\"")))
899 (substitute* "emms-player-simple.el"
900 (("\"mpg321\"")
901 (string-append "\"" mpg321 "/bin/mpg321\"")))
902 (emacs-substitute-variables "emms-info-ogginfo.el"
903 ("emms-info-ogginfo-program-name"
904 (string-append vorbis "/bin/ogginfo")))
905 (emacs-substitute-variables "emms-info-libtag.el"
906 ("emms-info-libtag-program-name"
907 (string-append out "/bin/emms-print-metadata")))
908 (emacs-substitute-variables "emms-info-mp3info.el"
909 ("emms-info-mp3info-program-name"
910 (string-append mp3info "/bin/mp3info")))
911 (emacs-substitute-variables "emms-info-metaflac.el"
912 ("emms-info-metaflac-program-name"
913 (string-append flac "/bin/metaflac")))
914 (emacs-substitute-variables "emms-source-file.el"
915 ("emms-source-file-gnu-find" (which "find")))
916 (substitute* "emms-volume-amixer.el"
917 (("\"amixer\"")
918 (string-append "\"" alsa "/bin/amixer\"")))
919 (substitute* "emms-tag-editor.el"
920 (("\"mp3info\"")
921 (string-append "\"" mp3info "/bin/mp3info\"")))))))
922 (add-before 'install 'pre-install
923 (lambda* (#:key outputs #:allow-other-keys)
924 ;; The 'install' rule expects the target directories to exist.
925 (let* ((out (assoc-ref outputs "out"))
926 (bin (string-append out "/bin"))
927 (man1 (string-append out "/share/man/man1")))
928 (mkdir-p bin)
929 (mkdir-p man1)
930 #t)))
931 (add-after 'install 'post-install
932 (lambda* (#:key outputs #:allow-other-keys)
933 (let ((out (assoc-ref outputs "out")))
934 (symlink "emms-auto.el"
935 (string-append out "/share/emacs/site-lisp/"
936 "emms-autoloads.el"))))))
937 #:tests? #f))
938 (native-inputs `(("emacs" ,emacs-minimal) ;for (guix build emacs-utils)
939 ("texinfo" ,texinfo)))
940 (inputs `(("alsa-utils" ,alsa-utils)
941 ("flac" ,flac) ;for metaflac
942 ("vorbis-tools" ,vorbis-tools)
943 ("mpg321" ,mpg321)
944 ("taglib" ,taglib)
945 ("mp3info" ,mp3info)))
946 (properties '((upstream-name . "emms")))
947 (synopsis "Emacs Multimedia System")
948 (description
949 "EMMS is the Emacs Multimedia System. It is a small front-end which
950 can control one of the supported external players. Thus, it supports
951 whatever formats are supported by your music player. It also
952 supports tagging and playlist management, all behind a clean and
953 light user interface.")
954 (home-page "https://www.gnu.org/software/emms/")
955 (license license:gpl3+)))
956
957 (define-public emacs-emms-player-mpv
958 (package
959 (name "emacs-emms-player-mpv")
960 (version "0.0.13")
961 (source
962 (origin
963 (method url-fetch)
964 (uri (string-append "https://github.com/dochang/emms-player-mpv/archive/"
965 version ".tar.gz"))
966 (file-name (string-append name "-" version ".tar.gz"))
967 (sha256
968 (base32
969 "01i0bz7wdqzcnv5r63m9xgl07yf1nmn86dwy00rcfsn5za46y3r3"))))
970 (build-system emacs-build-system)
971 (propagated-inputs
972 `(("emms" ,emms)))
973 (home-page "https://github.com/dochang/emms-player-mpv/")
974 (synopsis "Mpv support for EMMS")
975 (description
976 "This package provides an EMMS player that uses mpv. It supports pause
977 and seeking.")
978 (license license:gpl3+)))
979
980 (define-public emacs-emms-mode-line-cycle
981 (package
982 (name "emacs-emms-mode-line-cycle")
983 (version "0.2.5")
984 (source
985 (origin
986 (method url-fetch)
987 (uri (string-append "https://github.com/momomo5717/emms-mode-line-cycle"
988 "/archive/" version ".tar.gz"))
989 (file-name (string-append name "-" version ".tar.gz"))
990 (sha256
991 (base32
992 "0ifszi930pnaxk1x8pcydmvnp06868gc7nfx14q17zbajbx735k6"))))
993 (build-system emacs-build-system)
994 (propagated-inputs
995 `(("emms" ,emms)))
996 (home-page "https://github.com/momomo5717/emms-mode-line-cycle")
997 (synopsis "Display the EMMS mode line as a ticker")
998 (description
999 "This is a minor mode for updating the EMMS mode-line string cyclically
1000 within a specified width. It is useful for displaying long track titles.")
1001 (license license:gpl3+)))
1002
1003 \f
1004 ;;;
1005 ;;; Miscellaneous.
1006 ;;;
1007
1008 (define-public bbdb
1009 (package
1010 (name "bbdb")
1011 (version "3.1.2")
1012 (source (origin
1013 (method url-fetch)
1014 (uri (string-append "mirror://savannah/bbdb/bbdb-"
1015 version ".tar.gz"))
1016 (sha256
1017 (base32
1018 "1gs16bbpiiy01w9pyg12868r57kx1v3hnw04gmqsmpc40l1hyy05"))
1019 (modules '((guix build utils)))
1020 (snippet
1021 ;; We don't want to build and install the PDF.
1022 '(substitute* "doc/Makefile.in"
1023 (("^doc_DATA = .*$")
1024 "doc_DATA =\n")))))
1025 (build-system gnu-build-system)
1026 (arguments
1027 '(#:phases
1028 (modify-phases %standard-phases
1029 (add-after 'install 'post-install
1030 (lambda* (#:key outputs #:allow-other-keys)
1031 ;; Add an autoloads file with the right name for guix.el.
1032 (let* ((out (assoc-ref outputs "out"))
1033 (site (string-append out "/share/emacs/site-lisp")))
1034 (with-directory-excursion site
1035 (symlink "bbdb-loaddefs.el" "bbdb-autoloads.el")))
1036 #t)))))
1037 (native-inputs `(("emacs" ,emacs-minimal)))
1038 (home-page "https://savannah.nongnu.org/projects/bbdb/")
1039 (synopsis "Contact management utility for Emacs")
1040 (description
1041 "BBDB is the Insidious Big Brother Database for GNU Emacs. It provides
1042 an address book for email and snail mail addresses, phone numbers and the
1043 like. It can be linked with various Emacs mail clients (Message and Mail
1044 mode, Rmail, Gnus, MH-E, and VM). BBDB is fully customizable.")
1045 (license license:gpl3+)))
1046
1047 (define-public emacs-aggressive-indent
1048 (package
1049 (name "emacs-aggressive-indent")
1050 (version "1.8.3")
1051 (source (origin
1052 (method url-fetch)
1053 (uri (string-append "https://elpa.gnu.org/packages/"
1054 "aggressive-indent-" version ".el"))
1055 (sha256
1056 (base32
1057 "0jnzccl50x0wapprgwxinp99pwwa6j43q6msn4gv437j7swy8wnj"))))
1058 (build-system emacs-build-system)
1059 (home-page "https://elpa.gnu.org/packages/aggressive-indent.html")
1060 (synopsis "Minor mode to aggressively keep your code always indented")
1061 (description
1062 "@code{aggressive-indent-mode} is a minor mode that keeps your code
1063 always indented. It reindents after every change, making it more reliable
1064 than @code{electric-indent-mode}.")
1065 (license license:gpl2+)))
1066
1067 (define-public emacs-ag
1068 (package
1069 (name "emacs-ag")
1070 (version "0.47")
1071 (source (origin
1072 (method url-fetch)
1073 (uri (string-append
1074 "https://github.com/Wilfred/ag.el/archive/"
1075 version ".tar.gz"))
1076 (file-name (string-append name "-" version ".tar.gz"))
1077 (sha256
1078 (base32
1079 "1rlmp6wnyhqfg86dbz17r914msp58favn4kd4yrdwyia265a4lar"))))
1080 (build-system emacs-build-system)
1081 (arguments
1082 `(#:phases
1083 (modify-phases %standard-phases
1084 (add-before 'install 'make-info
1085 (lambda _
1086 (with-directory-excursion "docs"
1087 (zero? (system* "make" "info")))))
1088 (add-after 'install 'install-info
1089 (lambda* (#:key outputs #:allow-other-keys)
1090 (let* ((out (assoc-ref outputs "out"))
1091 (info (string-append out "/share/info")))
1092 (install-file "docs/_build/texinfo/agel.info" info)
1093 #t))))))
1094 (native-inputs
1095 `(("python-sphinx" ,python-sphinx)
1096 ("texinfo" ,texinfo)))
1097 (propagated-inputs
1098 `(("dash" ,emacs-dash)
1099 ("s" ,emacs-s)
1100 ;; We need to use 'ag' as the executable on remote systems.
1101 ("the-silver-searcher" ,the-silver-searcher)))
1102 (home-page "https://github.com/Wilfred/ag.el")
1103 (synopsis "Front-end for ag (the-silver-searcher) for Emacs")
1104 (description "This package provides the ability to use the silver
1105 searcher, a code searching tool, sometimes abbreviated to @code{ag}. Features
1106 include version control system awareness, use of Perl compatible regular
1107 expressions, editing the search results directly and searching file names
1108 rather than the contents of files.")
1109 (license license:gpl3+)))
1110
1111 (define-public emacs-async
1112 (package
1113 (name "emacs-async")
1114 (version "1.9.2")
1115 (source (origin
1116 (method url-fetch)
1117 (uri (string-append "https://elpa.gnu.org/packages/async-"
1118 version ".tar"))
1119 (sha256
1120 (base32
1121 "17fnvrj7jww29sav6a6jpizclg4w2962m6h37akpii71gf0vrffw"))))
1122 (build-system emacs-build-system)
1123 (home-page "https://elpa.gnu.org/packages/async.html")
1124 (synopsis "Asynchronous processing in Emacs")
1125 (description
1126 "This package provides the ability to call asynchronous functions and
1127 processes. For example, it can be used to run dired commands (for copying,
1128 moving, etc.) asynchronously using @code{dired-async-mode}. Also it is used
1129 as a library for other Emacs packages.")
1130 (license license:gpl3+)))
1131
1132 (define-public emacs-auctex
1133 (package
1134 (name "emacs-auctex")
1135 (version "12.1.0")
1136 (source
1137 (origin
1138 (method url-fetch)
1139 (uri (string-append
1140 "https://elpa.gnu.org/packages/auctex-"
1141 version
1142 ".tar"))
1143 (sha256
1144 (base32
1145 "0iy5x61xqkxaph2hq64sg50l1c6yp6qhzppwadayxkdz00b46sas"))))
1146 (build-system emacs-build-system)
1147 ;; We use 'emacs' because AUCTeX requires dbus at compile time
1148 ;; ('emacs-minimal' does not provide dbus).
1149 (arguments
1150 `(#:emacs ,emacs
1151 #:include '("\\.el$" "^images/" "^latex/" "\\.info$")
1152 #:exclude '("^tests/" "^latex/README")))
1153 (native-inputs
1154 `(("perl" ,perl)))
1155 (home-page "https://www.gnu.org/software/auctex/")
1156 (synopsis "Integrated environment for TeX")
1157 (description
1158 "AUCTeX is a comprehensive customizable integrated environment for
1159 writing input files for TeX, LaTeX, ConTeXt, Texinfo, and docTeX using Emacs
1160 or XEmacs.")
1161 (license license:gpl3+)))
1162
1163 (define-public emacs-autothemer
1164 (package
1165 (name "emacs-autothemer")
1166 (version "0.2.2")
1167 (source
1168 (origin
1169 (method url-fetch)
1170 (uri (string-append "https://github.com/sebastiansturm/autothemer/archive/"
1171 version ".tar.gz"))
1172 (file-name (string-append name "-" version ".tar.gz"))
1173 (sha256
1174 (base32
1175 "0rd28r9wfrbll212am4ih9hrvypx785aff76va2cbfxdwm9kixsa"))))
1176 (build-system emacs-build-system)
1177 (propagated-inputs
1178 `(("emacs-dash" ,emacs-dash)))
1179 (home-page "https://github.com/sebastiansturm/autothemer")
1180 (synopsis "Conveniently create Emacs themes")
1181 (description
1182 "Autothemer provides a thin layer on top of @code{deftheme} and
1183 @code{custom-theme-set-faces} that creates a new custom color theme, based on
1184 a set of simplified face specifications and a user-supplied color palette")
1185 (license license:gpl3+)))
1186
1187 (define-public emacs-calfw
1188 (package
1189 (name "emacs-calfw")
1190 (version "1.5")
1191 (source
1192 (origin
1193 (method url-fetch)
1194 (uri (string-append
1195 "https://github.com/kiwanami/emacs-calfw/archive/v"
1196 version ".tar.gz"))
1197 (file-name (string-append name "-" version ".tar.gz"))
1198 (sha256
1199 (base32
1200 "17ssg8gx66yp63nhygjq2r6kgl4h45cacmrxsxs9f0lrfcx37k0l"))))
1201 (build-system emacs-build-system)
1202 (home-page "https://github.com/kiwanami/emacs-calfw/")
1203 (synopsis "Calendar framework for Emacs")
1204 (description
1205 "This package displays a calendar view with various schedule data in the
1206 Emacs buffer.")
1207 (license license:gpl3+)))
1208
1209 (define-public emacs-direnv
1210 (package
1211 (name "emacs-direnv")
1212 (version "1.2.0")
1213 (source
1214 (origin
1215 (method url-fetch)
1216 (uri (string-append
1217 "https://github.com/wbolster/emacs-direnv/archive/"
1218 version ".tar.gz"))
1219 (file-name (string-append name "-" version ".tar.gz"))
1220 (sha256
1221 (base32
1222 "0m9nxawklhiiysyibzzhh2zkxgq1fskqvaqb06f7r8dnhabfy9fr"))))
1223 (build-system emacs-build-system)
1224 (propagated-inputs
1225 `(("dash" ,emacs-dash)
1226 ("with-editor" ,emacs-with-editor)))
1227 (home-page "https://github.com/wbolster/emacs-direnv")
1228 (synopsis "Direnv integration for Emacs")
1229 (description
1230 "This package provides support for invoking direnv to get the environment
1231 for the current file and updating the environment within Emacs to match.
1232
1233 Direnv can be invoked manually, and a global minor mode is included that will
1234 update the environment when the active buffer changes.
1235
1236 Using emacs-direnv means that programs started from Emacs will use the
1237 environment set through Direnv.")
1238 (license license:gpl3+)))
1239
1240 (define-public emacs-ggtags
1241 (package
1242 (name "emacs-ggtags")
1243 (version "0.8.12")
1244 (source
1245 (origin
1246 (method url-fetch)
1247 (uri (string-append "http://elpa.gnu.org/packages/ggtags-"
1248 version ".el"))
1249 (sha256
1250 (base32
1251 "0ny3llk021g6r0s75xdm4hzpbxv393ddm2r6f2xdk8kqnq4gnirp"))))
1252 (build-system emacs-build-system)
1253 (home-page "https://github.com/leoliu/ggtags")
1254 (synopsis "Frontend to the GNU Global source code tagging system")
1255 (description "@code{ggtags} provides a frontend to the GNU Global source
1256 code tagging system.
1257
1258 Features:
1259
1260 @itemize
1261 @item Build on @code{compile.el} for asynchronicity and its large feature-set.
1262 @item Automatically update Global's tag files when needed with tuning for
1263 large source trees.
1264 @item Intuitive navigation among multiple matches with mode-line display of
1265 current match, total matches and exit status.
1266 @item Read tag with completion.
1267 @item Show definition at point.
1268 @item Jump to #include files.
1269 @item Support search history and saving a search to register/bookmark.
1270 @item Query replace.
1271 @item Manage Global's environment variables on a per-project basis.
1272 @item Highlight (definition) tag at point.
1273 @item Abbreviated display of file names.
1274 @item Support all Global search backends: @code{grep}, @code{idutils}, etc.
1275 @item Support exuberant ctags @url{http://ctags.sourceforge.net/} and
1276 @code{pygments} backend.
1277 @item Support all Global's output formats: @code{grep}, @code{ctags-x},
1278 @code{cscope} etc.
1279 @item Support projects on remote hosts (e.g. via @code{tramp}).
1280 @item Support eldoc.
1281 @item Search @code{GTAGSLIBPATH} for references and symbols.
1282 @end itemize\n")
1283 (license license:gpl3+)))
1284
1285 (define-public emacs-go-mode
1286 (package
1287 (name "emacs-go-mode")
1288 (version "1.5.0")
1289 (source (origin
1290 (method url-fetch)
1291 (uri (string-append "https://github.com/dominikh/go-mode.el/"
1292 "archive/v" version ".tar.gz"))
1293 (file-name (string-append name "-" version ".tar.gz"))
1294 (sha256
1295 (base32
1296 "1adngbjyb8qnwg7n6r2y31djw9j6qf3b9fi63zd85035q7x4ljnm"))))
1297 (build-system emacs-build-system)
1298 (home-page "https://github.com/dominikh/go-mode.el")
1299 (synopsis "Go mode for Emacs")
1300 (description
1301 "This package provides go-mode, an Emacs mode for working with software
1302 written in the Go programming language.")
1303 (license license:bsd-3)))
1304
1305 (define-public emacs-google-maps
1306 (package
1307 (name "emacs-google-maps")
1308 (version "1.0.0")
1309 (source (origin
1310 (method url-fetch)
1311 (uri (string-append "https://github.com/jd/google-maps.el/"
1312 "archive/" version ".tar.gz"))
1313 (file-name (string-append name "-" version ".tar.gz"))
1314 (sha256
1315 (base32
1316 "014bxapm4d8vjxbzrfjdpsavxyfx981mlcb10aq5rmigr6il8ybs"))))
1317 (build-system emacs-build-system)
1318 (home-page "https://github.com/jd/google-maps.el")
1319 (synopsis "Access Google Maps from Emacs")
1320 (description "The @code{google-maps} package allows to display Google
1321 Maps directly inside Emacs.")
1322 (license license:gpl3+)))
1323
1324 (define-public emacs-graphviz-dot-mode
1325 (let ((commit "fdaabbcc95d9156e3dadc84f81a4750c5b692580")
1326 (revision "1"))
1327 (package
1328 (name "emacs-graphviz-dot-mode")
1329 (version (string-append "0.3.10-" revision "."
1330 (string-take commit 7)))
1331 (source (origin
1332 (method git-fetch)
1333 (uri (git-reference
1334 (url "https://github.com/ppareit/graphviz-dot-mode.git")
1335 (commit commit)))
1336 (file-name (string-append name "-" version "-checkout"))
1337 (sha256
1338 (base32
1339 "1s1qh5r0xp6hs0rl5yz5mkmjhpg04bh449c7vgjbb1pjsl1dl714"))))
1340 (build-system emacs-build-system)
1341 (arguments
1342 `(#:phases
1343 (modify-phases %standard-phases
1344 (add-before 'install 'make-info
1345 (lambda* (#:key inputs #:allow-other-keys)
1346 (with-directory-excursion "texinfo"
1347 (substitute* "Makefile"
1348 (("\\/usr\\/bin\\/gzip")
1349 (string-append (assoc-ref inputs "gzip") "/bin/gzip")))
1350 (zero?
1351 (system* "make"
1352 "clean"
1353 "info"
1354 (string-append "TEXINFODIR="
1355 (assoc-ref inputs "texinfo")
1356 "/bin"))))))
1357 (add-after 'install 'install-info
1358 (lambda* (#:key outputs #:allow-other-keys)
1359 (let* ((out (assoc-ref outputs "out"))
1360 (info (string-append out "/share/info")))
1361 (install-file "texinfo/graphviz-dot-mode.info.gz" info)
1362 #t))))))
1363 (native-inputs
1364 `(("texinfo" ,texinfo)
1365 ("gzip" ,gzip)))
1366 (home-page "http://ppareit.github.com/graphviz-dot-mode")
1367 (synopsis "Major mode for editing Graphviz Dot files")
1368 (description
1369 "This Emacs packages helps you to create @file{.dot} or @file{.gv}
1370 files using the dot syntax, and use Graphviz to convert these files to
1371 diagrams.")
1372 (license license:gpl2+))))
1373
1374 (define-public emacs-mmm-mode
1375 (package
1376 (name "emacs-mmm-mode")
1377 (version "0.5.5")
1378 (source
1379 (origin
1380 (method url-fetch)
1381 (uri (string-append
1382 "https://github.com/purcell/mmm-mode/archive/"
1383 version ".tar.gz"))
1384 (file-name (string-append name "-" version ".tar.gz"))
1385 (sha256
1386 (base32
1387 "0c5ing3hcr74k78hqhrfwiv6m3n8hqfrw89j2x34vf60f4iyqzqc"))))
1388 (build-system gnu-build-system)
1389 (arguments
1390 '(#:phases
1391 (modify-phases %standard-phases
1392 (add-after 'unpack 'autogen
1393 (lambda _
1394 (zero? (system* "sh" "autogen.sh")))))))
1395 (native-inputs
1396 `(("autoconf" ,autoconf)
1397 ("automake" ,automake)
1398 ("emacs" ,emacs-minimal)
1399 ("texinfo" ,texinfo)))
1400 (home-page "https://github.com/purcell/mmm-mode")
1401 (synopsis "Allow multiple major modes in an Emacs buffer")
1402 (description
1403 "MMM Mode is a minor mode that allows multiple major modes to coexist in a
1404 single buffer.")
1405 (license license:gpl3+)))
1406
1407 (define-public emacs-tablist
1408 (package
1409 (name "emacs-tablist")
1410 (version "0.70")
1411 (source (origin
1412 (method url-fetch)
1413 (uri (string-append
1414 "https://github.com/politza/tablist/archive/v"
1415 version ".tar.gz"))
1416 (file-name (string-append name "-" version ".tar.gz"))
1417 (sha256
1418 (base32
1419 "177d6s7ym1mwz1nhnl09r14z3n093g9a2szm97xsaig0c204xz9c"))))
1420 (build-system emacs-build-system)
1421 (home-page "https://github.com/politza/tablist")
1422 (synopsis "Extension for @code{tabulated-list-mode}")
1423 (description "Tablist is the Emacs package that provides several
1424 additional features to @code{tabulated-list-mode}: it adds marks,
1425 filters, new key bindings and faces. It can be enabled by
1426 @code{tablist-mode} or @code{tablist-minor-mode} commands.")
1427 (license license:gpl3+)))
1428
1429 (define-public emacs-pdf-tools
1430 (package
1431 (name "emacs-pdf-tools")
1432 (version "0.80")
1433 (source (origin
1434 (method url-fetch)
1435 (uri (string-append
1436 "https://github.com/politza/pdf-tools/archive/v"
1437 version ".tar.gz"))
1438 (file-name (string-append name "-" version ".tar.gz"))
1439 (sha256
1440 (base32
1441 "06imydn3a92vr57azpn1zhqc14kxyyslmyi9ldsyphan9b724gb6"))))
1442 (build-system gnu-build-system)
1443 (arguments
1444 `(#:tests? #f ; there are no tests
1445 #:modules ((guix build gnu-build-system)
1446 ((guix build emacs-build-system) #:prefix emacs:)
1447 (guix build utils)
1448 (guix build emacs-utils))
1449 #:imported-modules (,@%gnu-build-system-modules
1450 (guix build emacs-build-system)
1451 (guix build emacs-utils))
1452 #:phases
1453 (modify-phases %standard-phases
1454 ;; Build server side using 'gnu-build-system'.
1455 (add-after 'unpack 'enter-server-dir
1456 (lambda _ (chdir "server") #t))
1457 (add-after 'enter-server-dir 'autogen
1458 (lambda _
1459 (zero? (system* "bash" "autogen.sh"))))
1460
1461 ;; Build emacs side using 'emacs-build-system'.
1462 (add-after 'compress-documentation 'enter-lisp-dir
1463 (lambda _ (chdir "../lisp") #t))
1464 (add-after 'enter-lisp-dir 'emacs-patch-variables
1465 (lambda* (#:key outputs #:allow-other-keys)
1466 ;; Set path to epdfinfo program.
1467 (emacs-substitute-variables "pdf-info.el"
1468 ("pdf-info-epdfinfo-program"
1469 (string-append (assoc-ref outputs "out")
1470 "/bin/epdfinfo")))
1471 ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto
1472 ;; upgrading" that pdf-tools tries to perform.
1473 (emacs-substitute-variables "pdf-tools.el"
1474 ("pdf-tools-handle-upgrades" '()))))
1475 (add-after 'emacs-patch-variables 'emacs-install
1476 (assoc-ref emacs:%standard-phases 'install))
1477 (add-after 'emacs-install 'emacs-build
1478 (assoc-ref emacs:%standard-phases 'build))
1479 (add-after 'emacs-install 'emacs-make-autoloads
1480 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
1481 (native-inputs `(("autoconf" ,autoconf)
1482 ("automake" ,automake)
1483 ("pkg-config" ,pkg-config)
1484 ("emacs" ,emacs-minimal)))
1485 (inputs `(("poppler" ,poppler)
1486 ("cairo" ,cairo)
1487 ("glib" ,glib)
1488 ("libpng" ,libpng)
1489 ("zlib" ,zlib)))
1490 (propagated-inputs `(("tablist" ,emacs-tablist)))
1491 (synopsis "Emacs support library for PDF files")
1492 (description
1493 "PDF Tools is, among other things, a replacement of DocView for PDF
1494 files. The key difference is that pages are not pre-rendered by
1495 e.g. ghostscript and stored in the file-system, but rather created on-demand
1496 and stored in memory.")
1497 (home-page "https://github.com/politza/pdf-tools")
1498 (license license:gpl3+)))
1499
1500 (define-public emacs-dash
1501 (package
1502 (name "emacs-dash")
1503 (version "2.13.0")
1504 (source (origin
1505 (method url-fetch)
1506 (uri (string-append
1507 "https://github.com/magnars/dash.el/archive/"
1508 version ".tar.gz"))
1509 (file-name (string-append name "-" version ".tar.gz"))
1510 (sha256
1511 (base32
1512 "1pjlkrzr8n45bnp3xs3dybvy0nz3gwamrfc7vsi1nhpkkw99ihhb"))))
1513 (build-system emacs-build-system)
1514 (arguments
1515 `(#:phases
1516 (modify-phases %standard-phases
1517 (add-before 'install 'check
1518 (lambda _
1519 (zero? (system* "./run-tests.sh")))))))
1520 (home-page "https://github.com/magnars/dash.el")
1521 (synopsis "Modern list library for Emacs")
1522 (description "This package provides a modern list API library for Emacs.")
1523 (license license:gpl3+)))
1524
1525 (define-public emacs-bui
1526 (package
1527 (name "emacs-bui")
1528 (version "1.1.0")
1529 (source (origin
1530 (method url-fetch)
1531 (uri (string-append
1532 "https://github.com/alezost/bui.el/archive/v"
1533 version ".tar.gz"))
1534 (file-name (string-append name "-" version ".tar.gz"))
1535 (sha256
1536 (base32
1537 "112k0mq6xpy0r47vk66miw7rxbkv3d06pv3pd0vcmrhcnhnnk486"))))
1538 (build-system emacs-build-system)
1539 (propagated-inputs
1540 `(("dash" ,emacs-dash)))
1541 (home-page "https://github.com/alezost/bui.el")
1542 (synopsis "Buffer interface library for Emacs")
1543 (description
1544 "BUI (Buffer User Interface) is a library for making @code{list} and
1545 @code{info} interfaces to display an arbitrary data of the same
1546 type, for example: packages, buffers, files, etc.")
1547 (license license:gpl3+)))
1548
1549 (define-public emacs-guix
1550 (package
1551 (name "emacs-guix")
1552 (version "0.3.4")
1553 (source (origin
1554 (method url-fetch)
1555 (uri (string-append "https://github.com/alezost/guix.el"
1556 "/releases/download/v" version
1557 "/emacs-guix-" version ".tar.gz"))
1558 (sha256
1559 (base32
1560 "152zf9vkafmnnf7by5armg165npznb961csgnvr8iwdj3smvivjf"))))
1561 (build-system gnu-build-system)
1562 (arguments
1563 `(#:configure-flags
1564 (let ((guix (assoc-ref %build-inputs "guix"))
1565 (geiser (assoc-ref %build-inputs "geiser"))
1566 (dash (assoc-ref %build-inputs "dash"))
1567 (bui (assoc-ref %build-inputs "bui"))
1568 (magit-popup (assoc-ref %build-inputs "magit-popup"))
1569 (site-lisp "/share/emacs/site-lisp"))
1570 (list (string-append "--with-guix-site-dir="
1571 (car (find-files (string-append guix
1572 "/share/guile/site")
1573 (lambda (file stat)
1574 (string-prefix?
1575 "2."
1576 (basename file)))
1577 #:directories? #t)))
1578 (string-append "--with-guix-site-ccache-dir="
1579 (car (find-files (string-append guix "/lib/guile")
1580 (lambda (file stat)
1581 (string-prefix?
1582 "2." (basename file)))
1583 #:directories? #t))
1584 "/site-ccache")
1585 (string-append "--with-geiser-lispdir=" geiser site-lisp)
1586 (string-append "--with-dash-lispdir="
1587 dash site-lisp "/guix.d/dash-"
1588 ,(package-version emacs-dash))
1589 (string-append "--with-bui-lispdir="
1590 bui site-lisp "/guix.d/bui-"
1591 ,(package-version emacs-bui))
1592 (string-append "--with-popup-lispdir="
1593 magit-popup site-lisp "/guix.d/magit-popup-"
1594 ,(package-version emacs-magit-popup))))))
1595 (native-inputs
1596 `(("pkg-config" ,pkg-config)
1597 ("emacs" ,emacs-minimal)))
1598 (inputs
1599 `(("guile" ,guile-2.2)
1600 ("guix" ,guix)))
1601 (propagated-inputs
1602 `(("geiser" ,geiser)
1603 ("dash" ,emacs-dash)
1604 ("bui" ,emacs-bui)
1605 ("magit-popup" ,emacs-magit-popup)))
1606 (home-page "https://alezost.github.io/guix.el/")
1607 (synopsis "Emacs interface for GNU Guix")
1608 (description
1609 "Emacs-Guix provides a visual interface, tools and features for the GNU
1610 Guix package manager. Particularly, it allows you to do various package
1611 management tasks from Emacs. To begin with, run @code{M-x guix-about} or
1612 @code{M-x guix-help} command.")
1613 (license license:gpl3+)))
1614
1615 (define-public emacs-d-mode
1616 (package
1617 (name "emacs-d-mode")
1618 (version "2.0.8")
1619 (source (origin
1620 (method url-fetch)
1621 (uri (string-append
1622 "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode/"
1623 "archive/" version ".tar.gz"))
1624 (file-name (string-append name "-" version ".tar.gz"))
1625 (sha256
1626 (base32
1627 "0knpgi55jm09282aqf8pv55zillpnpzf9f4sgm6gwsmvxf17xaw0"))))
1628 (build-system emacs-build-system)
1629 (propagated-inputs
1630 `(("emacs-undercover" ,emacs-undercover)))
1631 (home-page "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
1632 (synopsis "Emacs major mode for editing D code")
1633 (description "This package provides an Emacs major mode for highlighting
1634 code written in the D programming language. This mode is currently known to
1635 work with Emacs 24 and 25.")
1636 (license license:gpl2+)))
1637
1638 (define-public emacs-keyfreq
1639 (package
1640 (name "emacs-keyfreq")
1641 (version "20160516.716")
1642 (source
1643 (origin
1644 (method url-fetch)
1645 (uri (string-append "http://melpa.org/packages/keyfreq-"
1646 version ".el"))
1647 (sha256
1648 (base32
1649 "008hd7d06qskc3mx0bbdgpgy2pwxr8185fzlyqf9qjg49y74p6g8"))))
1650 (build-system emacs-build-system)
1651 (home-page "https://github.com/dacap/keyfreq")
1652 (synopsis "Track Emacs command frequencies")
1653 (description "@code{emacs-keyfeq} tracks and shows how many times you used
1654 a command.")
1655 (license license:gpl3+)))
1656
1657 (define-public emacs-olivetti
1658 (package
1659 (name "emacs-olivetti")
1660 (version "1.5.7")
1661 (source (origin
1662 (method url-fetch)
1663 (uri (string-append
1664 "https://stable.melpa.org/packages/olivetti-"
1665 version ".el"))
1666 (sha256
1667 (base32
1668 "1yj2ylg46q0pw1xzlv2b0fv9x8p56x25284s9v2smwjr4vf0nwcj"))))
1669 (build-system emacs-build-system)
1670 (home-page "https://github.com/rnkn/olivetti")
1671 (synopsis "Emacs minor mode for a nice writing environment")
1672 (description "This package provides an Emacs minor mode that puts writing
1673 in the center.")
1674 (license license:gpl3+)))
1675
1676 (define-public emacs-undo-tree
1677 (package
1678 (name "emacs-undo-tree")
1679 (version "0.6.6")
1680 (source (origin
1681 (method git-fetch)
1682 (uri (git-reference
1683 (url "http://dr-qubit.org/git/undo-tree.git")
1684 (commit (string-append "release/" version))))
1685 (file-name (string-append name "-" version "-checkout"))
1686 (sha256
1687 (base32
1688 "1hnh2mnmw179gr094r561w6cw1haid0lpvpqvkc24wpj82vphzpa"))))
1689 (build-system emacs-build-system)
1690 (home-page "http://www.dr-qubit.org/emacs.php")
1691 (synopsis "Treat undo history as a tree")
1692 (description "Tree-like interface to Emacs undo system, providing
1693 graphical tree presentation of all previous states of buffer that
1694 allows easily move between them.")
1695 (license license:gpl3+)))
1696
1697 (define-public emacs-s
1698 (package
1699 (name "emacs-s")
1700 (version "1.12.0")
1701 (source (origin
1702 (method url-fetch)
1703 (uri (string-append
1704 "https://github.com/magnars/s.el/archive/"
1705 version ".tar.gz"))
1706 (file-name (string-append name "-" version ".tar.gz"))
1707 (sha256
1708 (base32
1709 "0xbl75863pcm806zg0x1lw7qznzjq2c8320k8js7apyag8q4srvh"))))
1710 (build-system emacs-build-system)
1711 (arguments
1712 `(#:phases
1713 (modify-phases %standard-phases
1714 (add-before 'install 'check
1715 (lambda _
1716 (zero? (system* "./run-tests.sh")))))))
1717 (home-page "https://github.com/magnars/s.el")
1718 (synopsis "Emacs string manipulation library")
1719 (description "This package provides an Emacs library for manipulating
1720 strings.")
1721 (license license:gpl3+)))
1722
1723 (define-public emacs-symon
1724 (package
1725 (name "emacs-symon")
1726 (version "20160630")
1727 (source
1728 (origin
1729 (method url-fetch)
1730 (uri (string-append "https://github.com/zk-phi/symon/archive/"
1731 version ".tar.gz"))
1732 (file-name (string-append name "-" version ".tar.gz"))
1733 (sha256
1734 (base32
1735 "0h4jcgdnq98wc9rj72nwyazq8498yg55jfljiij5qwbn1xf1g5zz"))))
1736 (build-system emacs-build-system)
1737 (home-page "https://github.com/zk-phi/symon")
1738 (synopsis "Tiny graphical system monitor")
1739 (description
1740 "Tiny graphical system monitor for the Emacs minibuffer when idle.")
1741 (license license:gpl2+)))
1742
1743 (define-public emacs-sx
1744 (package
1745 (name "emacs-sx")
1746 (version "0.4")
1747 (source (origin
1748 (method url-fetch)
1749 (uri (string-append "https://github.com/vermiculus/sx.el/"
1750 "archive/v" version ".tar.gz"))
1751 (file-name (string-append name "-" version ".tar.gz"))
1752 (sha256
1753 (base32
1754 "1w0xghfljqg31axcnv8gzlrd8pw25nji6idnrhflq0af9qh1dw03"))))
1755 (build-system emacs-build-system)
1756 (propagated-inputs
1757 `(("emacs-markdown-mode" ,emacs-markdown-mode)))
1758 (home-page "https://github.com/vermiculus/sx.el/")
1759 (synopsis "Emacs StackExchange client")
1760 (description
1761 "Emacs StackExchange client. Ask and answer questions on
1762 Stack Overflow, Super User, and other StackExchange sites.")
1763 (license license:gpl3+)))
1764
1765 (define-public emacs-f
1766 (package
1767 (name "emacs-f")
1768 (version "0.19.0")
1769 (source (origin
1770 (method url-fetch)
1771 (uri (string-append
1772 "https://github.com/rejeep/f.el/archive/v"
1773 version ".tar.gz"))
1774 (file-name (string-append name "-" version ".tar.gz"))
1775 (sha256
1776 (base32
1777 "05195n80ywa68qykxn7dza6qd59rhakvlzhaa9l6mcpmjf9l9grs"))))
1778 (build-system emacs-build-system)
1779 (propagated-inputs
1780 `(("emacs-s" ,emacs-s)
1781 ("emacs-dash" ,emacs-dash)))
1782 (home-page "https://github.com/rejeep/f.el")
1783 (synopsis "Emacs API for working with files and directories")
1784 (description "This package provides an Emacs library for working with
1785 files and directories.")
1786 (license license:gpl3+)))
1787
1788 (define-public emacs-git-gutter
1789 (package
1790 (name "emacs-git-gutter")
1791 (version "0.90")
1792 (source (origin
1793 (method url-fetch)
1794 (uri (string-append
1795 "https://github.com/syohex/" name "/archive/"
1796 version ".tar.gz"))
1797 (file-name (string-append name "-" version ".tar.gz"))
1798 (sha256
1799 (base32
1800 "1nmhvhpq1l56mj2yq3ag23rw3x4xgnsy8szp30s26l0yjnkhc4qg"))))
1801 (build-system emacs-build-system)
1802 (home-page "https://github.com/syohex/emacs-git-gutter")
1803 (synopsis "See and manage hunks of text in a version control system")
1804 (description
1805 "This package is an Emacs minor mode for displaying and interacting with
1806 hunks of text managed in a version control system. Added modified and deleted
1807 areas can be indicated with symbols on the edge of the buffer, and commands
1808 can be used to move between and perform actions on these hunks.
1809
1810 Git, Mercurial, Subversion and Bazaar are supported, and many parts of the
1811 display and behaviour is easily customisable.")
1812 (license license:gpl3+)))
1813
1814 (define-public emacs-git-timemachine
1815 (package
1816 (name "emacs-git-timemachine")
1817 (version "3.0")
1818 (source
1819 (origin
1820 (method url-fetch)
1821 (uri (string-append "https://github.com/pidu/git-timemachine/"
1822 "archive/" version ".tar.gz"))
1823 (file-name (string-append name "-" version ".tar.gz"))
1824 (sha256
1825 (base32
1826 "1l4g0r69wfrnjsywv03v4bpdd53byg6zdx6mzabfxyymss3kvisa"))))
1827 (build-system emacs-build-system)
1828 (home-page "https://github.com/pidu/git-timemachine")
1829 (synopsis "Step through historic versions of Git-controlled files")
1830 (description "This package enables you to step through historic versions
1831 of files under Git version control from within Emacs.")
1832 (license license:gpl3+)))
1833
1834 (define-public emacs-minitest
1835 (let ((commit "1aadb7865c1dc69c201cecee275751ecec33a182")
1836 (revision "1"))
1837 (package
1838 (name "emacs-minitest")
1839 (version (git-version "0.8.0" revision commit))
1840 (source (origin
1841 (method git-fetch)
1842 (uri (git-reference
1843 (url "https://github.com/arthurnn/minitest-emacs")
1844 (commit commit)))
1845 (file-name (git-file-name name commit))
1846 (sha256
1847 (base32
1848 "1l18zqpdzbnqj2qawq8hj7z7pl8hr8z9d8ihy8jaiqma915hmhj1"))))
1849 (build-system emacs-build-system)
1850 (arguments
1851 '(#:include (cons "^snippets\\/minitest-mode\\/" %default-include)
1852 #:exclude (delete "^[^/]*tests?\\.el$" %default-exclude)))
1853 (propagated-inputs
1854 `(("emacs-dash" ,emacs-dash)
1855 ("emacs-f" ,emacs-f)))
1856 (home-page "https://github.com/arthurnn/minitest-emacs")
1857 (synopsis "Emacs minitest mode")
1858 (description
1859 "The minitest mode provides commands to run the tests for the current
1860 file or line, as well as rerunning the previous tests, or all the tests for a
1861 project.
1862
1863 This package also includes relevant snippets for yasnippet.")
1864 (license license:expat))))
1865
1866 (define-public emacs-el-mock
1867 (package
1868 (name "emacs-el-mock")
1869 (version "1.25.1")
1870 (source
1871 (origin
1872 (method url-fetch)
1873 (uri (string-append "https://github.com/rejeep/el-mock.el/"
1874 "archive/v" version ".tar.gz"))
1875 (file-name (string-append name "-" version ".tar.gz"))
1876 (sha256
1877 (base32
1878 "16xw94n58xxn3zvgyj72bmzs0k5lkvswjmzs79ws9n7rzdivb38b"))))
1879 (build-system emacs-build-system)
1880 (home-page "https://github.com/rejeep/el-mock.el")
1881 (synopsis "Tiny mock and stub framework in Emacs Lisp")
1882 (description
1883 "Emacs Lisp Mock is a library for mocking and stubbing using readable
1884 syntax. Most commonly Emacs Lisp Mock is used in conjunction with Emacs Lisp
1885 Expectations, but it can be used in other contexts.")
1886 (license license:gpl3+)))
1887
1888 (define-public emacs-espuds
1889 (package
1890 (name "emacs-espuds")
1891 (version "0.3.3")
1892 (source
1893 (origin
1894 (method url-fetch)
1895 (uri (string-append "https://github.com/ecukes/espuds/"
1896 "archive/v" version ".tar.gz"))
1897 (file-name (string-append name "-" version ".tar.gz"))
1898 (sha256
1899 (base32
1900 "0xv551376pbmh735a3zjwc9z4qdx6ngj1vpq3xqjpn0a1rwjyn4k"))))
1901 (build-system emacs-build-system)
1902 (propagated-inputs
1903 `(("emacs-s" ,emacs-s)
1904 ("emacs-dash" ,emacs-dash)
1905 ("emacs-f" ,emacs-f)))
1906 (home-page "https://github.com/ecukes/espuds")
1907 (synopsis "Common step definitions for Ecukes")
1908 (description "Espuds is a collection of the most commonly used step
1909 definitions for testing with the Ecukes framework.")
1910 (license license:gpl3+)))
1911
1912 (define-public emacs-spark
1913 (let ((version "20160503") ; no proper tag, use date of commit
1914 (commit "0bf148c3ede3b31d56fd75f347cdd0b0eae60025")
1915 (revision "1"))
1916 (package
1917 (name "emacs-spark")
1918 (version (git-version version revision commit))
1919 (source
1920 (origin
1921 (method git-fetch)
1922 (uri (git-reference
1923 (url "https://github.com/alvinfrancis/spark.git")
1924 (commit commit)))
1925 (file-name (git-file-name name version))
1926 (sha256
1927 (base32
1928 "1ykqr86j17mi95s08d9fp02d7ych1331b04dcqxzxnmpkhwngyj1"))))
1929 (build-system emacs-build-system)
1930 (home-page "https://github.com/alvinfrancis/spark")
1931 (synopsis "Sparkline generation library for Emacs Lisp")
1932 (description "@code{emacs-spark} is a sparkline generation library for
1933 Emacs Lisp. It generates a sparkline string given a list of numbers. It is a
1934 port of @code{cl-spark} to Emacs Lisp.")
1935 (license license:expat))))
1936
1937 (define-public emacs-es-mode
1938 (package
1939 (name "emacs-es-mode")
1940 (version "4.3.0")
1941 (source (origin
1942 (method url-fetch)
1943 (uri (string-append
1944 "https://github.com/dakrone/es-mode/archive/"
1945 version ".tar.gz"))
1946 (file-name (string-append name "-" version ".tar.gz"))
1947 (sha256
1948 (base32
1949 "0y86qdcb3g7fkcb4pzsjh3syzql6w3314hg1wqxq4a8bbk3y0cgr"))))
1950 (build-system emacs-build-system)
1951 (propagated-inputs
1952 ;; The version of org in Emacs 24.5 is not sufficient, and causes tables
1953 ;; to be rendered incorrectly
1954 `(("emacs-dash" ,emacs-dash)
1955 ("emacs-org" ,emacs-org)
1956 ("emacs-spark" ,emacs-spark)))
1957 (home-page "https://github.com/dakrone/es-mode")
1958 (synopsis "Major mode for editing Elasticsearch queries")
1959 (description "@code{es-mode} includes highlighting, completion and
1960 indentation support for Elasticsearch queries. Also supported are
1961 @code{es-mode} blocks in @code{org-mode}, for which the results of queries can
1962 be processed through @code{jq}, or in the case of aggregations, can be
1963 rendered in to a table. In addition, there is an @code{es-command-center}
1964 mode, which displays information about Elasticsearch clusters.")
1965 (license license:gpl3+)))
1966
1967 (define-public emacs-expand-region
1968 (package
1969 (name "emacs-expand-region")
1970 (version "0.11.0")
1971 (source
1972 (origin
1973 (method url-fetch)
1974 (uri (string-append "https://github.com/magnars/expand-region.el"
1975 "/archive/" version ".tar.gz"))
1976 (file-name (string-append name "-" version ".tar.gz"))
1977 (sha256
1978 (base32
1979 "08dy1f411sh9wwww53rjw80idcf3vpki6ba2arl4hl5jcw9651g0"))))
1980 (build-system emacs-build-system)
1981 (home-page "https://github.com/magnars/expand-region.el")
1982 (synopsis "Increase selected region by semantic units")
1983 (description
1984 "Expand region increases the selected region by semantic units. Just
1985 keep pressing the key until it selects what you want. There's also
1986 @code{er/contract-region} if you expand too far.")
1987 (license license:gpl3+)))
1988
1989 (define-public emacs-fill-column-indicator
1990 (package
1991 (name "emacs-fill-column-indicator")
1992 (version "1.81")
1993 (source
1994 (origin
1995 (method url-fetch)
1996 (uri (string-append "https://github.com/alpaker/Fill-Column-Indicator"
1997 "/archive/v" version ".tar.gz"))
1998 (file-name (string-append name "-" version ".tar.gz"))
1999 (sha256
2000 (base32
2001 "1xwyqbjbbicmvhlb85vg4j5snwy1vd7rfk89ws4viws5ljkhhyg8"))))
2002 (build-system emacs-build-system)
2003 (home-page "https://www.emacswiki.org/emacs/FillColumnIndicator")
2004 (synopsis "Graphically indicate the fill column")
2005 (description
2006 "Fill-column-indicator graphically indicates the location of the fill
2007 column by drawing a thin line down the length of the editing window.")
2008 (license license:gpl3+)))
2009
2010 (define-public emacs-grep-a-lot
2011 (package
2012 (name "emacs-grep-a-lot")
2013 (version "1.0.7")
2014 (source (origin
2015 (method git-fetch)
2016 (uri (git-reference
2017 (url "https://github.com/ZungBang/emacs-grep-a-lot.git")
2018 (commit "9f9f645b9e308a0d887b66864ff97d0fca1ba4ad")))
2019 (file-name (string-append name "-" version "-checkout"))
2020 (sha256
2021 (base32
2022 "1f8262mrlinzgnn4m49hbj1hm3c1mvzza24py4b37sasn49546lw"))))
2023 (build-system emacs-build-system)
2024 (home-page "https://github.com/ZungBang/emacs-grep-a-lot")
2025 (synopsis "Enables multiple grep buffers in Emacs")
2026 (description
2027 "This Emacs package allows managing multiple grep buffers.")
2028 (license license:gpl3+)))
2029
2030 (define-public emacs-inf-ruby
2031 (package
2032 (name "emacs-inf-ruby")
2033 (version "2.5.1")
2034 (source
2035 (origin
2036 (method url-fetch)
2037 (uri (string-append "https://github.com/nonsequitur/inf-ruby/"
2038 "archive/" version ".tar.gz"))
2039 (file-name (string-append name "-" version ".tar.gz"))
2040 (sha256
2041 (base32
2042 "0m7323k649ckxql1grsdnf71bjhys7l4qb8wbpphb1mr1q8i4066"))))
2043 (build-system emacs-build-system)
2044 (home-page "https://github.com/nonsequitur/inf-ruby")
2045 (synopsis "Provides a REPL buffer connected to a Ruby subprocess in Emacs")
2046 (description
2047 "@code{inf-ruby} provides a Read Eval Print Loop (REPL) buffer, allowing
2048 for easy interaction with a ruby subprocess. Features include support for
2049 detecting specific uses of Ruby, e.g. when using rails, and using a
2050 appropriate console.")
2051 (license license:gpl3+)))
2052
2053 (define-public emacs-znc
2054 (package
2055 (name "emacs-znc")
2056 (version "0.0.2")
2057 (source
2058 (origin
2059 (method url-fetch)
2060 (uri (string-append "https://marmalade-repo.org/packages/znc-"
2061 version ".el"))
2062 (sha256
2063 (base32
2064 "1d8lqvybgyazin5z0g1c4l3rg1vzrrvf0saqs53jr1zcdg0lianh"))))
2065 (build-system emacs-build-system)
2066 (home-page "https://github.com/sshirokov/ZNC.el")
2067 (synopsis "Make ERC and ZNC get along better")
2068 (description
2069 "This is a thin wrapper around @code{erc} that enables one to use the ZNC
2070 IRC bouncer with ERC.")
2071 (license license:expat)))
2072
2073 (define-public emacs-shut-up
2074 (package
2075 (name "emacs-shut-up")
2076 (version "0.3.2")
2077 (source
2078 (origin
2079 (method url-fetch)
2080 (uri (string-append "https://github.com/cask/shut-up/"
2081 "archive/v" version ".tar.gz"))
2082 (file-name (string-append name "-" version ".tar.gz"))
2083 (sha256
2084 (base32
2085 "09kzrjdkb569iviyg7ydwq44yh84m3f9hkl7jizfrlk0w4gz67d1"))))
2086 (build-system emacs-build-system)
2087 (home-page "https://github.com/cask/shut-up")
2088 (synopsis "Silence Emacs")
2089 (description "This package silences most output of Emacs when running an
2090 Emacs shell script.")
2091 (license license:expat)))
2092
2093 (define-public emacs-undercover
2094 (package
2095 (name "emacs-undercover")
2096 (version "0.6.0")
2097 (source
2098 (origin
2099 (method url-fetch)
2100 (uri (string-append "https://github.com/sviridov/undercover.el/"
2101 "archive/v" version ".tar.gz"))
2102 (file-name (string-append name "-" version ".tar.gz"))
2103 (sha256
2104 (base32
2105 "0f48fi0xnbsqs382rgh85m9mq1wdnr0yib7as9xhwzvq0hsr5m0a"))))
2106 (build-system emacs-build-system)
2107 (propagated-inputs
2108 `(("emacs-dash" ,emacs-dash)
2109 ("emacs-shut-up" ,emacs-shut-up)))
2110 (home-page "https://github.com/sviridov/undercover.el")
2111 (synopsis "Test coverage library for Emacs Lisp")
2112 (description
2113 "Undercover is a test coverage library for software written in Emacs
2114 Lisp.")
2115 (license license:expat)))
2116
2117 (define-public emacs-paren-face
2118 (package
2119 (name "emacs-paren-face")
2120 (version "1.0.0")
2121 (source
2122 (origin
2123 (method url-fetch)
2124 (uri (string-append "https://github.com/tarsius/paren-face/archive/"
2125 version ".tar.gz"))
2126 (file-name (string-append name "-" version ".tar.gz"))
2127 (sha256
2128 (base32
2129 "0y4qrhxa9332vsvr999jg7qj1ymnfgwpf591yi4a4jgg90pm7qnn"))))
2130 (build-system emacs-build-system)
2131 (home-page "https://github.com/tarsius/paren-face")
2132 (synopsis "Face for parentheses in lisp modes")
2133 (description
2134 "This library defines a face named @code{parenthesis} used just for
2135 parentheses. The intended purpose of this face is to make parentheses less
2136 visible in Lisp code by dimming them. Lispers probably don't need to be
2137 constantly made aware of the existence of the parentheses. Dimming them might
2138 be even more useful for people new to lisp who have not yet learned to
2139 subconsciously blend out the parentheses.")
2140 (license license:gpl3+)))
2141
2142 (define-public emacs-page-break-lines
2143 (package
2144 (name "emacs-page-break-lines")
2145 (version "0.11")
2146 (source
2147 (origin
2148 (method url-fetch)
2149 (uri (string-append "https://github.com/purcell/page-break-lines/"
2150 "archive/" version ".tar.gz"))
2151 (file-name (string-append name "-" version ".tar.gz"))
2152 (sha256
2153 (base32
2154 "1zzhziq5kbrm9rxk30kx2glz455fp1blqxg8cpcf6l8xl3w8z4pg"))))
2155 (build-system emacs-build-system)
2156 (home-page "https://github.com/purcell/page-break-lines")
2157 (synopsis "Display page breaks as tidy horizontal lines")
2158 (description
2159 "This library provides a global mode which displays form feed characters
2160 as horizontal rules.")
2161 (license license:gpl3+)))
2162
2163 (define-public emacs-simple-httpd
2164 (package
2165 (name "emacs-simple-httpd")
2166 (version "1.4.6")
2167 (source
2168 (origin
2169 (method url-fetch)
2170 (uri (string-append "https://github.com/skeeto/emacs-web-server/"
2171 "archive/" version ".tar.gz"))
2172 (file-name (string-append name "-" version ".tar.gz"))
2173 (sha256
2174 (base32
2175 "01r7h3imnj4qx1m53a2wjafvbylcyz5f9r2rg2cs7ky3chlg220r"))))
2176 (build-system emacs-build-system)
2177 (home-page "https://github.com/skeeto/emacs-http-server")
2178 (synopsis "HTTP server in pure Emacs Lisp")
2179 (description
2180 "This package provides a simple HTTP server written in Emacs Lisp to
2181 serve files and directory listings.")
2182 (license license:unlicense)))
2183
2184 (define-public emacs-skewer-mode
2185 (package
2186 (name "emacs-skewer-mode")
2187 (version "1.6.2")
2188 (source
2189 (origin
2190 (method url-fetch)
2191 (uri (string-append "https://github.com/skeeto/skewer-mode/archive/"
2192 version ".tar.gz"))
2193 (file-name (string-append name "-" version ".tar.gz"))
2194 (sha256
2195 (base32
2196 "07jpz374j0j964szy3zznrkyja2kpdl3xa87wh7349mzxivqxdx0"))))
2197 (build-system emacs-build-system)
2198 (propagated-inputs
2199 `(("emacs-simple-httpd" ,emacs-simple-httpd)
2200 ("emacs-js2-mode" ,emacs-js2-mode)))
2201 (arguments '(#:include '("\\.el$" "\\.js$" "\\.html$")))
2202 (home-page "https://github.com/skeeto/skewer-mode")
2203 (synopsis "Live web development in Emacs")
2204 (description
2205 "Skewer-mode provides live interaction with JavaScript, CSS, and HTML in
2206 a web browser. Expressions are sent on-the-fly from an editing buffer to be
2207 evaluated in the browser, just like Emacs does with an inferior Lisp process
2208 in Lisp modes.")
2209 (license license:unlicense)))
2210
2211 (define-public emacs-string-inflection
2212 (package
2213 (name "emacs-string-inflection")
2214 (version "1.0.6")
2215 (source (origin
2216 (method git-fetch)
2217 (uri (git-reference
2218 (url "https://github.com/akicho8/string-inflection")
2219 (commit "a150e7bdda60b7824d3a936750ce23f73b0e4edd")))
2220 (file-name (string-append name "-" version "-checkout"))
2221 (sha256
2222 (base32
2223 "1k0sm552iawi49v4zis6dbb81d1rzgky9v0dpv7nj31gnb7bmy7k"))))
2224 (build-system emacs-build-system)
2225 (native-inputs
2226 `(("ert-runner" ,ert-runner)))
2227 (arguments
2228 `(#:phases
2229 (modify-phases %standard-phases
2230 (add-before 'install 'check
2231 (lambda _
2232 (zero? (system* "ert-runner")))))))
2233 (home-page "https://github.com/akicho8/string-inflection")
2234 (synopsis "Convert symbol names between different naming conventions")
2235 (description
2236 "This Emacs package provides convenient methods for manipulating the
2237 naming style of a symbol. It supports different naming conventions such as:
2238
2239 @enumerate
2240 @item camel case
2241 @item Pascal case
2242 @item all upper case
2243 @item lower case separated by underscore
2244 @item etc...
2245 @end enumerate\n")
2246 (license license:gpl2+)))
2247
2248 (define-public emacs-stripe-buffer
2249 (package
2250 (name "emacs-stripe-buffer")
2251 (version "0.2.5")
2252 (source
2253 (origin
2254 (method url-fetch)
2255 (uri (string-append "https://github.com/sabof/stripe-buffer/"
2256 "archive/" version ".tar.gz"))
2257 (file-name (string-append name "-" version ".tar.gz"))
2258 (sha256
2259 (base32
2260 "1p515dq7raly5hw94kiwm3vzsfih0d8af622q4ipvvljsm98aiik"))))
2261 (build-system emacs-build-system)
2262 (home-page "https://github.com/sabof/stripe-buffer/")
2263 (synopsis "Add stripes to list buffers")
2264 (description
2265 "This Emacs package adds faces to add stripes to list buffers and org
2266 tables.")
2267 (license license:gpl2+)))
2268
2269 (define-public emacs-rich-minority
2270 (package
2271 (name "emacs-rich-minority")
2272 (version "1.0.1")
2273 (source
2274 (origin
2275 (method url-fetch)
2276 (uri (string-append "https://github.com/Malabarba/rich-minority/"
2277 "archive/" version ".tar.gz"))
2278 (file-name (string-append name "-" version ".tar.gz"))
2279 (sha256
2280 (base32
2281 "1l0cb0q7kyi88nwfqd542psnkgwnjklpzc5rx32gzd3lkwkrbr8v"))))
2282 (build-system emacs-build-system)
2283 (home-page "https://github.com/Malabarba/rich-minority")
2284 (synopsis "Clean-up and beautify the list of minor modes")
2285 (description
2286 "This Emacs package hides and/or highlights minor modes in the
2287 mode-line.")
2288 (license license:gpl2+)))
2289
2290 (define-public emacs-robe
2291 (package
2292 (name "emacs-robe")
2293 (version "0.8.1")
2294 (source
2295 (origin
2296 (method url-fetch)
2297 (uri (string-append "https://github.com/dgutov/robe/"
2298 "archive/" version ".tar.gz"))
2299 (file-name (string-append name "-" version ".tar.gz"))
2300 (sha256
2301 (base32
2302 "1vp45y99fwj88z04ah4yppz4z568qcib646az6m9az5ar0f203br"))))
2303 (build-system emacs-build-system)
2304 (arguments
2305 '(#:include (cons "^lib\\/" %default-include)))
2306 (propagated-inputs
2307 `(("emacs-inf-ruby" ,emacs-inf-ruby)))
2308 (home-page "https://github.com/dgutov/robe")
2309 (synopsis "Ruby code assistance tool for Emacs")
2310 (description
2311 "Robe can provide information on loaded classes and modules in Ruby code,
2312 as well as where methods are defined. This allows the user to jump to method
2313 definitions, modules and classes, display method documentation and provide
2314 method and constant name completion.")
2315 (license license:gpl3+)))
2316
2317 (define-public emacs-rspec
2318 (package
2319 (name "emacs-rspec")
2320 (version "1.11")
2321 (source
2322 (origin
2323 (method url-fetch)
2324 (uri (string-append "https://github.com/pezra/rspec-mode/"
2325 "archive/v" version ".tar.gz"))
2326 (file-name (string-append name "-" version ".tar.gz"))
2327 (sha256
2328 (base32
2329 "1j0a7ms5516nlg60qfyn730pfxys6acm0rgyxh5xfkpi6jafgpvw"))))
2330 (build-system emacs-build-system)
2331 (home-page "https://github.com/pezra/rspec-mode")
2332 (synopsis "Provides a rspec mode for working with RSpec")
2333 (description
2334 "The Emacs RSpec mode provides keybindings for Ruby source files, e.g. to
2335 verify the spec associated with the current buffer, or entire project, as well
2336 as moving between the spec files, and coresponding code files.
2337
2338 Also included are keybindings for spec files and Dired buffers, as well as
2339 snippets for yasnippet.")
2340 (license license:gpl3+)))
2341
2342 (define-public emacs-smart-mode-line
2343 (package
2344 (name "emacs-smart-mode-line")
2345 (version "2.10.1")
2346 (source
2347 (origin
2348 (method url-fetch)
2349 (uri (string-append "https://github.com/Malabarba/smart-mode-line/"
2350 "archive/" version ".tar.gz"))
2351 (file-name (string-append name "-" version ".tar.gz"))
2352 (sha256
2353 (base32
2354 "0i9wajabrrsjzwd842q0m2611kf0q31p9hg1pdj81177gynkw8l8"))))
2355 (build-system emacs-build-system)
2356 (propagated-inputs
2357 `(("emacs-rich-minority" ,emacs-rich-minority)))
2358 (home-page "https://github.com/Malabarba/smart-mode-line")
2359 (synopsis "Color-coded smart mode-line")
2360 (description
2361 "Smart Mode Line is a mode-line theme for Emacs. It aims to be easy to
2362 read from small to large monitors by using colors, a prefix feature, and smart
2363 truncation.")
2364 (license license:gpl2+)))
2365
2366 (define-public emacs-sr-speedbar
2367 (let ((commit "77a83fb50f763a465c021eca7343243f465b4a47")
2368 (revision "0"))
2369 (package
2370 (name "emacs-sr-speedbar")
2371 (version (git-version "20161025" revision commit))
2372 (source
2373 (origin
2374 (method git-fetch)
2375 (uri (git-reference
2376 (url "https://github.com/emacsorphanage/sr-speedbar.git")
2377 (commit commit)))
2378 (file-name (git-file-name name version))
2379 (sha256
2380 (base32
2381 "0sd12555hk7z721y00kv3crdybvcn1i08wmd148z5imayzibj153"))))
2382 (build-system emacs-build-system)
2383 (home-page "https://www.emacswiki.org/emacs/SrSpeedbar")
2384 (synopsis "Same frame Emacs @code{speedbar}")
2385 (description
2386 "This Emacs package allows you to show @code{M-x speedbar} in the
2387 same frame (in an extra window). You can customize the initial width of
2388 the speedbar window.")
2389 (license license:gpl3+))))
2390
2391 (define-public emacs-shell-switcher
2392 (package
2393 (name "emacs-shell-switcher")
2394 (version "1.0.1")
2395 (source
2396 (origin
2397 (method url-fetch)
2398 (uri (string-append "https://github.com/DamienCassou/shell-switcher"
2399 "/archive/v" version ".tar.gz"))
2400 (file-name (string-append name "-" version ".tar.gz"))
2401 (sha256
2402 (base32
2403 "1c23mfkdqz2g9rixd9smm323vzlvhzz3ng34ambcqjfq309qb2nz"))))
2404 (build-system emacs-build-system)
2405 (home-page "https://github.com/DamienCassou/shell-switcher")
2406 (synopsis "Provide fast switching between shell buffers")
2407 (description
2408 "This package provides commands to quickly switch between shell buffers.")
2409 (license license:gpl3+)))
2410
2411 (define-public emacs-ob-ipython
2412 (package
2413 (name "emacs-ob-ipython")
2414 (version "20150704.8807064693")
2415 (source (origin
2416 (method git-fetch)
2417 (uri (git-reference
2418 (commit "880706469338ab59b5bb7dbe8460016f89755364")
2419 (url "https://github.com/gregsexton/ob-ipython.git")))
2420 (file-name (string-append name "-" version "-checkout"))
2421 (sha256
2422 (base32
2423 "1scf25snbds9ymagpny30ijbsg479r3nm0ih01dy4m9d0g7qryb7"))))
2424 (build-system emacs-build-system)
2425 (propagated-inputs
2426 `(("emacs-f" ,emacs-f)))
2427 (home-page "http://www.gregsexton.org")
2428 (synopsis "Org-Babel functions for IPython evaluation")
2429 (description "This package adds support to Org-Babel for evaluating Python
2430 source code using IPython.")
2431 (license license:gpl3+)))
2432
2433 (define-public emacs-debbugs
2434 (package
2435 (name "emacs-debbugs")
2436 (version "0.15")
2437 (source (origin
2438 (method url-fetch)
2439 (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
2440 version ".tar"))
2441 (sha256
2442 (base32
2443 "1x7jw2ldgkknyxg7x9fhnqkary691icnysmi3xw0g2fjrvllzhqw"))))
2444 (build-system emacs-build-system)
2445 (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
2446 (propagated-inputs
2447 `(("emacs-async" ,emacs-async)))
2448 (home-page "https://elpa.gnu.org/packages/debbugs.html")
2449 (synopsis "Access the Debbugs bug tracker in Emacs")
2450 (description
2451 "This package lets you access the @uref{http://bugs.gnu.org,GNU Bug
2452 Tracker} from within Emacs.
2453
2454 For instance, it defines the command @code{M-x debbugs-gnu} for listing bugs,
2455 and the command @code{M-x debbugs-gnu-search} for bug searching. If you
2456 prefer the listing of bugs as TODO items of @code{org-mode}, you could use
2457 @code{M-x debbugs-org} and related commands.
2458
2459 A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug
2460 Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.")
2461 (license license:gpl3+)))
2462
2463 (define-public emacs-deferred
2464 (package
2465 (name "emacs-deferred")
2466 (version "0.5.1")
2467 (home-page "https://github.com/kiwanami/emacs-deferred")
2468 (source (origin
2469 (method git-fetch)
2470 (uri (git-reference
2471 (url home-page)
2472 (commit (string-append "v" version))))
2473 (sha256
2474 (base32
2475 "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"))
2476 (file-name (string-append name "-" version))))
2477 (build-system emacs-build-system)
2478 ;; FIXME: Would need 'el-expectations' to actually run tests.
2479 (synopsis "Simple asynchronous functions for Emacs Lisp")
2480 (description
2481 "The @code{deferred.el} library provides support for asynchronous tasks.
2482 The API is almost the same as that of
2483 @uref{https://github.com/cho45/jsdeferred, JSDeferred}, a JavaScript library
2484 for asynchronous tasks.")
2485 (license license:gpl3+)))
2486
2487 (define-public butler
2488 (package
2489 (name "emacs-butler")
2490 (version "0.2.4")
2491 (home-page "https://github.com/AshtonKem/Butler")
2492 (source (origin
2493 (method git-fetch)
2494 (uri (git-reference
2495 (url home-page)
2496 (commit version)))
2497 (sha256
2498 (base32
2499 "1pii9dw4skq7nr4na6qxqasl36av8cwjp71bf1fgppqpcd9z8skj"))
2500 (file-name (string-append name "-" version))))
2501 (build-system emacs-build-system)
2502 (propagated-inputs
2503 `(("emacs-deferred" ,emacs-deferred)))
2504 (synopsis "Emacs client for Jenkins")
2505 (description
2506 "Butler provides an interface to connect to Jenkins continuous
2507 integration servers. Users can specify a list of server in the
2508 @code{butler-server-list} variable and then use @code{M-x butler-status} to
2509 view the build status of those servers' build jobs, and possibly to trigger
2510 build jobs.")
2511 (license license:gpl3+)))
2512
2513 (define-public emacs-company
2514 (package
2515 (name "emacs-company")
2516 (version "0.9.3")
2517 (source
2518 (origin
2519 (method url-fetch)
2520 (uri (string-append "https://github.com/company-mode/company-mode/archive/"
2521 version ".tar.gz"))
2522 (file-name (string-append name "-" version ".tar.gz"))
2523 (sha256
2524 (base32
2525 "1fyrpchpdmvszssy1qmsw41aqpv6q5rybvs1bw00nv9xdhiaq4vh"))))
2526 (build-system emacs-build-system)
2527 (arguments
2528 `(#:phases
2529 (modify-phases %standard-phases
2530 (add-before 'install 'check
2531 (lambda _
2532 ;; The company-files-candidates-normal-root test looks
2533 ;; for the /bin directory, but the build environment has
2534 ;; no /bin directory. Modify the test to look for the
2535 ;; /tmp directory.
2536 (substitute* "test/files-tests.el"
2537 (("/bin/") "/tmp/"))
2538 (zero? (system* "make" "test-batch")))))))
2539 (home-page "http://company-mode.github.io/")
2540 (synopsis "Modular text completion framework")
2541 (description
2542 "Company is a modular completion mechanism. Modules for retrieving
2543 completion candidates are called back-ends, modules for displaying them are
2544 front-ends. Company comes with many back-ends, e.g. @code{company-elisp}.
2545 These are distributed in separate files and can be used individually.")
2546 (license license:gpl3+)))
2547
2548 (define-public emacs-company-quickhelp
2549 (package
2550 (name "emacs-company-quickhelp")
2551 (version "2.3.0")
2552 (source
2553 (origin
2554 (method url-fetch)
2555 (uri (string-append
2556 "https://github.com/expez/company-quickhelp/archive/"
2557 version ".tar.gz"))
2558 (file-name (string-append name "-" version ".tar.gz"))
2559 (sha256
2560 (base32
2561 "0xrn2z1dgk5gmkmp2jkn9g83ckk39lqp5pyyv8rl7f6gqvib3qh0"))))
2562 (build-system emacs-build-system)
2563 (propagated-inputs
2564 `(("emacs-pos-tip" ,emacs-pos-tip)
2565 ("emacs-company" ,emacs-company)))
2566 (home-page "https://github.com/expez/company-quickhelp")
2567 (synopsis "Popup documentation for completion candidates")
2568 (description "@code{company-quickhelp} shows documentation for the
2569 completion candidate when using the Company text completion framework.")
2570 (license license:gpl3+)))
2571
2572 (define-public emacs-multiple-cursors
2573 (package
2574 (name "emacs-multiple-cursors")
2575 (version "1.4.0")
2576 (source
2577 (origin
2578 (method url-fetch)
2579 (uri (string-append "https://github.com/magnars/multiple-cursors.el/"
2580 "archive/" version ".tar.gz"))
2581 (file-name (string-append name "-" version ".tar.gz"))
2582 (sha256
2583 (base32
2584 "0hihihlvcvzayg5fnqzcg45fhvlmq6xlq58syy00rjwbry9w389k"))))
2585 (build-system emacs-build-system)
2586 (home-page "https://github.com/magnars/multiple-cursors.el")
2587 (synopsis "Multiple cursors for Emacs")
2588 (description
2589 "This package adds support to Emacs for editing text with multiple
2590 simultaneous cursors.")
2591 (license license:gpl3+)))
2592
2593 (define-public typo
2594 (package
2595 (name "emacs-typo")
2596 (version "1.1")
2597 (home-page "https://github.com/jorgenschaefer/typoel")
2598 (source (origin
2599 (method git-fetch)
2600 (uri (git-reference
2601 (url home-page)
2602 (commit (string-append "v" version))))
2603 (sha256
2604 (base32
2605 "1jhd4grch5iz12gyxwfbsgh4dmz5hj4bg4gnvphccg8dsnni05k2"))
2606 (file-name (string-append name "-" version))))
2607 (build-system emacs-build-system)
2608 (synopsis "Minor mode for typographic editing")
2609 (description
2610 "This package provides two Emacs modes, @code{typo-mode} and
2611 @code{typo-global-mode}. These modes automatically insert Unicode characters
2612 for quotation marks, dashes, and ellipses. For example, typing @kbd{\"}
2613 automatically inserts a Unicode opening or closing quotation mark, depending
2614 on context.")
2615 (license license:gpl3+)))
2616
2617 (define-public emacs-scheme-complete
2618 (let ((commit "9b5cf224bf2a5994bc6d5b152ff487517f1a9bb5"))
2619 (package
2620 (name "emacs-scheme-complete")
2621 (version (string-append "20151223." (string-take commit 8)))
2622 (source
2623 (origin
2624 (file-name (string-append name "-" version))
2625 (method git-fetch)
2626 (uri (git-reference
2627 (url "https://github.com/ashinn/scheme-complete.git")
2628 (commit commit)))
2629 (sha256
2630 (base32
2631 "141wn9l0m33w0g3dqmx8nxbfdny1r5xbr6ak61rsz21bk0qafs7x"))
2632 (patches
2633 (search-patches "emacs-scheme-complete-scheme-r5rs-info.patch"))))
2634 (build-system emacs-build-system)
2635 (home-page "https://github.com/ashinn/scheme-complete")
2636 (synopsis "Smart tab completion for Scheme in Emacs")
2637 (description
2638 "This file provides a single function, @code{scheme-smart-complete},
2639 which you can use for intelligent, context-sensitive completion for any Scheme
2640 implementation in Emacs. To use it just load this file and bind that function
2641 to a key in your preferred mode.")
2642 (license license:public-domain))))
2643
2644 (define-public emacs-mit-scheme-doc
2645 (package
2646 (name "emacs-mit-scheme-doc")
2647 (version "20140203")
2648 (source
2649 (origin
2650 (modules '((guix build utils)))
2651 (snippet
2652 ;; keep only file of interest
2653 '(begin
2654 (for-each delete-file '("dot-emacs.el" "Makefile"))
2655 (install-file "6.945-config/mit-scheme-doc.el" ".")
2656 (delete-file-recursively "6.945-config")))
2657 (file-name (string-append name "-" version ".tar.bz2"))
2658 (method url-fetch)
2659 (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/"
2660 "6.945/dont-panic/emacs-basic-config.tar.bz2"))
2661 (sha256
2662 (base32
2663 "0dqidg2bd66pawqfarvwca93w5gqf9mikn1k2a2rmd9ymfjpziq1"))))
2664 (build-system emacs-build-system)
2665 (inputs `(("mit-scheme" ,mit-scheme)))
2666 (arguments
2667 `(#:phases
2668 (modify-phases %standard-phases
2669 (add-after 'unpack 'configure-doc
2670 (lambda* (#:key inputs #:allow-other-keys)
2671 (let* ((mit-scheme-dir (assoc-ref inputs "mit-scheme"))
2672 (doc-dir (string-append mit-scheme-dir "/share/doc/"
2673 "mit-scheme-"
2674 ,(package-version mit-scheme))))
2675 (substitute* "mit-scheme-doc.el"
2676 (("http://www\\.gnu\\.org/software/mit-scheme/documentation/mit-scheme-ref/")
2677 (string-append "file:" doc-dir "/mit-scheme-ref/")))))))))
2678 (home-page "http://groups.csail.mit.edu/mac/users/gjs/6.945/dont-panic/")
2679 (synopsis "MIT-Scheme documentation lookup for Emacs")
2680 (description
2681 "This package provides a set of Emacs functions to search definitions of
2682 identifiers in the MIT-Scheme documentation.")
2683 (license license:gpl2+)))
2684
2685 (define-public emacs-constants
2686 (package
2687 (name "emacs-constants")
2688 (version "2.6")
2689 (home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
2690 (source
2691 (origin
2692 (file-name (string-append name "-" version ".tar.gz"))
2693 (method url-fetch)
2694 (uri (string-append "https://github.com/fedeinthemix/emacs-constants"
2695 "/archive/v" version ".tar.gz"))
2696 (sha256
2697 (base32
2698 "0pnrpmmxq8mh5h2hbrp5vcym0j0fh6dv3s7c5ccn18wllhzg9g7n"))))
2699 (build-system emacs-build-system)
2700 (synopsis "Enter definition of constants into an Emacs buffer")
2701 (description
2702 "This package provides functions for inserting the definition of natural
2703 constants and units into an Emacs buffer.")
2704 (license license:gpl2+)))
2705
2706 (define-public emacs-tagedit
2707 (package
2708 (name "emacs-tagedit")
2709 (version "1.4.0")
2710 (source
2711 (origin
2712 (method url-fetch)
2713 (uri (string-append "https://github.com/magnars/tagedit/"
2714 "archive/" version ".tar.gz"))
2715 (file-name (string-append name "-" version ".tar.gz"))
2716 (sha256
2717 (base32
2718 "1apfnann4qklfdsmdi7icjsj18x7gwx8d83iqr4z25clszz95xfq"))))
2719 (build-system emacs-build-system)
2720 (propagated-inputs
2721 `(("emacs-s" ,emacs-s)
2722 ("emacs-dash" ,emacs-dash)))
2723 (home-page "https://github.com/magnars/tagedit")
2724 (synopsis "Some paredit-like features for html-mode")
2725 (description
2726 "This package provides a collection of paredit-like functions for editing
2727 in @code{html-mode}.")
2728 (license license:gpl3+)))
2729
2730 (define-public emacs-slime
2731 (package
2732 (name "emacs-slime")
2733 (version "2.20")
2734 (source
2735 (origin
2736 (file-name (string-append name "-" version ".tar.gz"))
2737 (method url-fetch)
2738 (uri (string-append
2739 "https://github.com/slime/slime/archive/v"
2740 version ".tar.gz"))
2741 (sha256
2742 (base32
2743 "086lq5y4pvj9wihy0si02xxvyzpzz8mcg3hz1cvy9zxlyjwzr1gk"))))
2744 (build-system emacs-build-system)
2745 (native-inputs
2746 `(("texinfo" ,texinfo)))
2747 (arguments
2748 `(#:include '("\\.el$" "\\.lisp$" "\\.asd$" "contrib")
2749 #:exclude '("^slime-tests.el" "^contrib/test/"
2750 "^contrib/Makefile$" "^contrib/README.md$")
2751 #:phases
2752 (modify-phases %standard-phases
2753 (add-before 'install 'configure
2754 (lambda* _
2755 (emacs-substitute-variables "slime.el"
2756 ("inferior-lisp-program" "sbcl"))
2757 #t))
2758 (add-before 'install 'install-doc
2759 (lambda* (#:key outputs #:allow-other-keys)
2760 (let* ((out (assoc-ref outputs "out"))
2761 (info-dir (string-append out "/share/info"))
2762 (doc-dir (string-append out "/share/doc/"
2763 ,name "-" ,version))
2764 (doc-files '("doc/slime-refcard.pdf"
2765 "README.md" "NEWS" "PROBLEMS"
2766 "CONTRIBUTING.md")))
2767 (with-directory-excursion "doc"
2768 (substitute* "Makefile"
2769 (("infodir=/usr/local/info")
2770 (string-append "infodir=" info-dir)))
2771 (system* "make" "html/index.html")
2772 (system* "make" "slime.info")
2773 (install-file "slime.info" info-dir)
2774 (copy-recursively "html" (string-append doc-dir "/html")))
2775 (for-each (lambda (f)
2776 (install-file f doc-dir)
2777 (delete-file f))
2778 doc-files)
2779 (delete-file-recursively "doc")
2780 #t))))))
2781 (home-page "https://github.com/slime/slime")
2782 (synopsis "Superior Lisp Interaction Mode for Emacs")
2783 (description
2784 "SLIME extends Emacs with support for interactive programming in
2785 Common Lisp. The features are centered around @command{slime-mode},
2786 an Emacs minor mode that complements the standard @command{lisp-mode}.
2787 While lisp-mode supports editing Lisp source files, @command{slime-mode}
2788 adds support for interacting with a running Common Lisp process
2789 for compilation, debugging, documentation lookup, and so on.")
2790 (license license:gpl2+)))
2791
2792 (define-public emacs-popup
2793 (package
2794 (name "emacs-popup")
2795 (version "0.5.3")
2796 (source (origin
2797 (method url-fetch)
2798 (uri (string-append
2799 "https://github.com/auto-complete/popup-el/archive/v"
2800 version ".tar.gz"))
2801 (file-name (string-append name "-" version ".tar.gz"))
2802 (sha256
2803 (base32
2804 "1yrgfj8y69xmcb6kwgplhq68ndm9410qwh7sd2knnd1gchpphdc0"))))
2805 (build-system emacs-build-system)
2806 (home-page "https://github.com/auto-complete/popup-el")
2807 (synopsis "Visual Popup User Interface for Emacs")
2808 (description
2809 "Popup.el is a visual popup user interface library for Emacs.
2810 This provides a basic API and common UI widgets such as popup tooltips
2811 and popup menus.")
2812 (license license:gpl3+)))
2813
2814 (define-public emacs-god-mode
2815 (let ((commit "6cf0807b6555eb6fcf8387a4e3b667071ef38964")
2816 (revision "1"))
2817 (package
2818 (name "emacs-god-mode")
2819 (version (string-append "20151005.925."
2820 revision "-" (string-take commit 9)))
2821 (source
2822 (origin
2823 (method git-fetch)
2824 (uri (git-reference
2825 (url "https://github.com/chrisdone/god-mode.git")
2826 (commit commit)))
2827 (file-name (string-append name "-" version "-checkout"))
2828 (sha256
2829 (base32
2830 "1am415k4xxcva6y3vbvyvknzc6bma49pq3p85zmpjsdmsp18qdix"))))
2831 (build-system emacs-build-system)
2832 (home-page "https://github.com/chrisdone/god-mode")
2833 (synopsis "Minor mode for entering commands without modifier keys")
2834 (description
2835 "This package provides a global minor mode for entering Emacs commands
2836 without modifier keys. It's similar to Vim's separation of commands and
2837 insertion mode. When enabled all keys are implicitly prefixed with
2838 @samp{C-} (among other helpful shortcuts).")
2839 (license license:gpl3+))))
2840
2841 (define-public emacs-jinja2-mode
2842 (package
2843 (name "emacs-jinja2-mode")
2844 (version "0.2")
2845 (source
2846 (origin
2847 (method url-fetch)
2848 (uri (string-append "https://github.com/paradoxxxzero/jinja2-mode/"
2849 "archive/v" version ".tar.gz"))
2850 (file-name (string-append name "-" version ".tar.gz"))
2851 (sha256
2852 (base32
2853 "0cgxjab1kla2zc2fj7bzib6i7snp08zshandmp9kqcm85l262xpn"))))
2854 (build-system emacs-build-system)
2855 (home-page "https://github.com/paradoxxxzero/jinja2-mode")
2856 (synopsis "Major mode for jinja2")
2857 (description
2858 "Emacs major mode for jinja2 with: syntax highlighting,
2859 sgml/html integration, and indentation (working with sgml).")
2860 (license license:gpl3+)))
2861
2862 (define-public emacs-rfcview
2863 (package
2864 (name "emacs-rfcview")
2865 (version "0.13")
2866 (home-page "http://www.loveshack.ukfsn.org/emacs")
2867 (source (origin
2868 (method url-fetch)
2869 (uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el")
2870 (sha256
2871 (base32
2872 "0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz"))))
2873 (build-system emacs-build-system)
2874 (synopsis "Prettify Request for Comments (RFC) documents")
2875 (description "The Internet Engineering Task Force (IETF) and the Internet
2876 Society (ISOC) publish various Internet-related protocols and specifications
2877 as \"Request for Comments\" (RFC) documents and Internet Standard (STD)
2878 documents. RFCs and STDs are published in a simple text form. This package
2879 provides an Emacs major mode, rfcview-mode, which makes it more pleasant to
2880 read these documents in Emacs. It prettifies the text and adds
2881 hyperlinks/menus for easier navigation. It also provides functions for
2882 browsing the index of RFC documents and fetching them from remote servers or
2883 local directories.")
2884 (license license:gpl3+)))
2885
2886 (define-public emacs-ffap-rfc-space
2887 (package
2888 (name "emacs-ffap-rfc-space")
2889 (version "12")
2890 (home-page "http://user42.tuxfamily.org/ffap-rfc-space/index.html")
2891 (source (origin
2892 (method url-fetch)
2893 (uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el")
2894 (sha256
2895 (base32
2896 "1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck"))))
2897 (build-system emacs-build-system)
2898 (synopsis "Make ffap recognize an RFC with a space before its number")
2899 (description "The Internet Engineering Task Force (IETF) and the
2900 Internet Society (ISOC) publish various Internet-related protocols and
2901 specifications as \"Request for Comments\" (RFC) documents. The
2902 built-in Emacs module \"ffap\" (Find File at Point) has the ability to
2903 recognize names at point which look like \"RFC1234\" and \"RFC-1234\"
2904 and load the appropriate RFC from a remote server. However, it fails
2905 to recognize a name like \"RFC 1234\". This package enhances ffap so
2906 that it correctly finds RFCs even when a space appears before the
2907 number.")
2908 (license license:gpl3+)))
2909
2910 (define-public emacs-org-bullets
2911 (package
2912 (name "emacs-org-bullets")
2913 (version "0.2.4")
2914 (source
2915 (origin
2916 (method url-fetch)
2917 (uri (string-append "https://github.com/sabof/org-bullets/archive/"
2918 version ".tar.gz"))
2919 (file-name (string-append name "-" version ".tar.gz"))
2920 (sha256
2921 (base32
2922 "1dyxvpb73vj80v8br2q9rf255hfphrgaw91fbvwdcd735np9pcnh"))))
2923 (build-system emacs-build-system)
2924 (home-page "https://github.com/sabof/org-bullets")
2925 (synopsis "Show bullets in org-mode as UTF-8 characters")
2926 (description
2927 "This package provides an Emacs minor mode causing bullets in
2928 @code{org-mode} to be rendered as UTF-8 characters.")
2929 (license license:gpl3+)))
2930
2931 (define-public emacs-org-pomodoro
2932 (package
2933 (name "emacs-org-pomodoro")
2934 (version "2.1.0")
2935 (source
2936 (origin
2937 (method url-fetch)
2938 (uri (string-append
2939 "https://github.com/lolownia/org-pomodoro/archive/"
2940 version ".tar.gz"))
2941 (file-name (string-append name "-" version ".tar.gz"))
2942 (sha256
2943 (base32
2944 "1jalsggw3q5kvj353f84x4nl04a5vmq07h75ggppy1627lb31zm4"))))
2945 (build-system emacs-build-system)
2946 (propagated-inputs
2947 `(("emacs-alert" ,emacs-alert)))
2948 (home-page "https://github.com/lolownia/org-pomodoro")
2949 (synopsis "Pomodoro technique for org-mode")
2950 (description "@code{emacs-org-pomodoro} adds very basic support for
2951 Pomodoro technique in Emacs org-mode.
2952
2953 Run @code{M-x org-pomodoro} for the task at point or select one of the
2954 last tasks that you clocked time for. Each clocked-in pomodoro starts
2955 a timer of 25 minutes and after each pomodoro a break timer of 5
2956 minutes is started automatically. Every 4 breaks a long break is
2957 started with 20 minutes. All values are customizable.")
2958 (license license:gpl3+)))
2959
2960 (define-public emacs-org-trello
2961 (package
2962 (name "emacs-org-trello")
2963 (version "0.7.9")
2964 (source (origin
2965 (method url-fetch)
2966 (uri (string-append
2967 "https://github.com/org-trello/org-trello/archive/"
2968 version ".tar.gz"))
2969 (file-name (string-append name "-" version ".tar.gz"))
2970 (sha256
2971 (base32
2972 "074dka8g673bj1ck5vavbjaij5jyniygdlw51mdds005wd2br9wf"))))
2973 (build-system emacs-build-system)
2974 (propagated-inputs
2975 `(("emacs-deferred" ,emacs-deferred)
2976 ("emacs-request" ,emacs-request)
2977 ("emacs-dash" ,emacs-dash)
2978 ("emacs-s" ,emacs-s)))
2979 (home-page "https://org-trello.github.io")
2980 (synopsis "Emacs minor mode for interacting with Trello")
2981 (description "This package provides an Emacs minor mode to extend
2982 @code{org-mode} with Trello abilities. Trello is an online project
2983 organizer.")
2984 (license license:gpl3+)))
2985
2986 (define-public emacs-zenburn-theme
2987 (package
2988 (name "emacs-zenburn-theme")
2989 (version "2.5")
2990 (source (origin
2991 (method url-fetch)
2992 (uri (string-append
2993 "https://github.com/bbatsov/zenburn-emacs/archive/v"
2994 version ".tar.gz"))
2995 (file-name (string-append name "-" version ".tar.gz"))
2996 (sha256
2997 (base32
2998 "03kfhzgbbbl8ivpzzky6qxw4j9mmp452m1sk7wikxmcalfnix0gn"))))
2999 (build-system emacs-build-system)
3000 (home-page "https://github.com/bbatsov/zenburn-emacs")
3001 (synopsis "Low contrast color theme for Emacs")
3002 (description
3003 "Zenburn theme is a port of the popular Vim Zenburn theme for Emacs.
3004 It is built on top of the custom theme support in Emacs 24 or later.")
3005 (license license:gpl3+)))
3006
3007 (define-public emacs-solarized-theme
3008 (package
3009 (name "emacs-solarized-theme")
3010 (version "1.2.2")
3011 (source (origin
3012 (method url-fetch)
3013 (uri (string-append "https://github.com/bbatsov/solarized-emacs/"
3014 "archive/v" version ".tar.gz"))
3015 (file-name (string-append name "-" version ".tar.gz"))
3016 (sha256
3017 (base32
3018 "1ha3slc6d9wi9ilkhmwrzkvf308n6ph7b0k69pk369s9304awxzx"))))
3019 (build-system emacs-build-system)
3020 (propagated-inputs
3021 `(("emacs-dash" ,emacs-dash)))
3022 (home-page "https://github.com/bbatsov/solarized-emacs")
3023 (synopsis "Port of the Solarized theme for Emacs")
3024 (description
3025 "Solarized for Emacs is a port of the Solarized theme for Vim. This
3026 package provides a light and a dark variant.")
3027 (license license:gpl3+)))
3028
3029 (define-public emacs-ahungry-theme
3030 (package
3031 (name "emacs-ahungry-theme")
3032 (version "1.10.0")
3033 (source
3034 (origin (method url-fetch)
3035 (uri (string-append "https://elpa.gnu.org/packages/ahungry-theme-"
3036 version ".tar"))
3037 (sha256
3038 (base32
3039 "14q5yw56n82qph09bk7wmj5b1snhh9w0nk5s1l7yn9ldg71xq6pm"))))
3040 (build-system emacs-build-system)
3041 (home-page "https://github.com/ahungry/color-theme-ahungry")
3042 (synopsis "Ahungry color theme for Emacs")
3043 (description "Ahungry theme for Emacs provides bright and bold colors.
3044 If you load it from a terminal, you will be able to make use of the
3045 transparent background. If you load it from a GUI, it will default to a
3046 dark background.")
3047 (license license:gpl3+)))
3048
3049 (define-public emacs-2048-game
3050 (package
3051 (name "emacs-2048-game")
3052 (version "20151026.1233")
3053 (source
3054 (origin
3055 (method url-fetch)
3056 (uri (string-append "https://melpa.org/packages/2048-game-"
3057 version ".el"))
3058 (sha256
3059 (base32
3060 "0gy2pvz79whpavp4jmz8h9krzn7brmvv3diixi1d4w51pcdvaldd"))))
3061 (build-system emacs-build-system)
3062 (home-page "https://bitbucket.org/zck/2048.el")
3063 (synopsis "Implementation of the game 2048 in Emacs Lisp")
3064 (description
3065 "This program is an implementation of 2048 for Emacs.
3066 The goal of this game is to create a tile with value 2048. The size of the
3067 board and goal value can be customized.")
3068 (license license:gpl3+)))
3069
3070 (define-public emacs-base16-theme
3071 (package
3072 (name "emacs-base16-theme")
3073 (version "2.1")
3074 (source
3075 (origin
3076 (method url-fetch)
3077 (uri (string-append "https://stable.melpa.org/packages/base16-theme-"
3078 version ".tar"))
3079 (sha256
3080 (base32
3081 "0z6hrwz2jlz6jbr381rcqcqvx6hss5cad352klx07rark7zccacj"))))
3082 (build-system emacs-build-system)
3083 (home-page "https://github.com/belak/base16-emacs")
3084 (synopsis "Base16 color themes for Emacs")
3085 (description
3086 "Base16 provides carefully chosen syntax highlighting and a default set
3087 of sixteen colors suitable for a wide range of applications. Base16 is not a
3088 single theme but a set of guidelines with numerous implementations.")
3089 (license license:expat)))
3090
3091 (define-public emacs-smartparens
3092 (package
3093 (name "emacs-smartparens")
3094 (version "1.11.0")
3095 (source (origin
3096 (method url-fetch)
3097 (uri (string-append
3098 "https://github.com/Fuco1/smartparens/archive/"
3099 version ".tar.gz"))
3100 (file-name (string-append name "-" version ".tar.gz"))
3101 (sha256
3102 (base32
3103 "0q5as813xs8y29i3v2rm97phd6m7xsmmw6hwbvx57gwmi8i1c409"))))
3104 (build-system emacs-build-system)
3105 (propagated-inputs `(("emacs-dash" ,emacs-dash)))
3106 (home-page "https://github.com/Fuco1/smartparens")
3107 (synopsis "Paredit-like insertion, wrapping and navigation with user
3108 defined pairs")
3109 (description
3110 "Smartparens is a minor mode for Emacs that deals with parens pairs
3111 and tries to be smart about it. It started as a unification effort to
3112 combine functionality of several existing packages in a single,
3113 compatible and extensible way to deal with parentheses, delimiters, tags
3114 and the like. Some of these packages include autopair, textmate,
3115 wrap-region, electric-pair-mode, paredit and others. With the basic
3116 features found in other packages it also brings many improvements as
3117 well as completely new features.")
3118 (license license:gpl3+)))
3119
3120 (define-public emacs-highlight-symbol
3121 (package
3122 (name "emacs-highlight-symbol")
3123 (version "1.3")
3124 (source (origin
3125 (method url-fetch)
3126 (uri (string-append
3127 "https://github.com/nschum/highlight-symbol.el/archive/"
3128 version ".tar.gz"))
3129 (file-name (string-append name "-" version ".tar.gz"))
3130 (sha256
3131 (base32
3132 "1n7k1qns0fn0jsyc0hrjac5nzk21xw48yc30vyrhwvc51h0b9g90"))))
3133 (build-system emacs-build-system)
3134 (home-page "https://nschum.de/src/emacs/highlight-symbol")
3135 (synopsis "Automatic and manual symbol highlighting for Emacs")
3136 (description
3137 "Use @code{highlight-symbol} to toggle highlighting of the symbol at
3138 point throughout the current buffer. Use @code{highlight-symbol-mode} to keep
3139 the symbol at point highlighted.
3140
3141 The functions @code{highlight-symbol-next}, @code{highlight-symbol-prev},
3142 @code{highlight-symbol-next-in-defun} and
3143 @code{highlight-symbol-prev-in-defun} allow for cycling through the locations
3144 of any symbol at point. Use @code{highlight-symbol-nav-mode} to enable key
3145 bindings @code{M-p} and @code{M-p} for navigation. When
3146 @code{highlight-symbol-on-navigation-p} is set, highlighting is triggered
3147 regardless of @code{highlight-symbol-idle-delay}.
3148
3149 @code{highlight-symbol-query-replace} can be used to replace the symbol. ")
3150 (license license:gpl2+)))
3151
3152 (define-public emacs-hl-todo
3153 (package
3154 (name "emacs-hl-todo")
3155 (version "1.8.0")
3156 (source (origin
3157 (method url-fetch)
3158 (uri (string-append
3159 "https://raw.githubusercontent.com/tarsius/hl-todo/"
3160 version "/hl-todo.el"))
3161 (file-name (string-append "hl-todo-" version ".el"))
3162 (sha256
3163 (base32
3164 "0g0h9v4572p7mcird8wsj1c41haf60krslm6mlpi4mdbh248kv6z"))))
3165 (build-system emacs-build-system)
3166 (home-page "https://github.com/tarsius/hl-todo")
3167 (synopsis "Emacs mode to highlight TODO and similar keywords")
3168 (description
3169 "This package provides an Emacs mode to highlight TODO and similar
3170 keywords in comments and strings. This package also provides commands for
3171 moving to the next or previous keyword and to invoke @code{occur} with a
3172 regexp that matches all known keywords.")
3173 (license license:gpl3+)))
3174
3175 (define-public emacs-perspective
3176 (package
3177 (name "emacs-perspective")
3178 (version "1.12")
3179 (source
3180 (origin
3181 (method url-fetch)
3182 (uri (string-append "https://github.com/nex3/perspective-el/"
3183 "archive/" version ".tar.gz"))
3184 (file-name (string-append name "-" version ".tar.gz"))
3185 (sha256
3186 (base32
3187 "078ahh0kmhdylq5ib9c81c76kz1n02xwc83pm729d00i84ibviic"))))
3188 (build-system emacs-build-system)
3189 (home-page "https://github.com/nex3/perspective-el")
3190 (synopsis "Switch between named \"perspectives\"")
3191 (description
3192 "This package provides tagged workspaces in Emacs, similar to workspaces in
3193 windows managers such as Awesome and XMonad. @code{perspective.el} provides
3194 multiple workspaces (or \"perspectives\") for each Emacs frame. Each
3195 perspective is composed of a window configuration and a set of buffers.
3196 Switching to a perspective activates its window configuration, and when in a
3197 perspective only its buffers are available by default.")
3198 ;; This package is released under the same license as Emacs (GPLv3+) or
3199 ;; the Expat license.
3200 (license license:gpl3+)))
3201
3202 (define-public emacs-test-simple
3203 (package
3204 (name "emacs-test-simple")
3205 (version "1.3.0")
3206 (source
3207 (origin
3208 (method url-fetch)
3209 (uri (string-append "https://elpa.gnu.org/packages/test-simple-"
3210 version ".el"))
3211 (sha256
3212 (base32
3213 "1yd61jc9ds95a5n09052kwc5gasy57g4lxr0jsff040brlyi9czz"))))
3214 (build-system emacs-build-system)
3215 (home-page "https://github.com/rocky/emacs-test-simple")
3216 (synopsis "Simple unit test framework for Emacs Lisp")
3217 (description
3218 "Test Simple is a simple unit test framework for Emacs Lisp. It
3219 alleviates the need for context macros, enclosing specifications or required
3220 test tags. It supports both interactive and non-interactive use.")
3221 (license license:gpl3+)))
3222
3223 (define-public emacs-load-relative
3224 (package
3225 (name "emacs-load-relative")
3226 (version "1.3")
3227 (source
3228 (origin
3229 (method url-fetch)
3230 (uri (string-append "https://elpa.gnu.org/packages/load-relative-"
3231 version ".el"))
3232 (sha256
3233 (base32
3234 "1hfxb2436jdsi9wfmsv47lkkpa5galjf5q81bqabbsv79rv59dps"))))
3235 (build-system emacs-build-system)
3236 (home-page "http://github.com/rocky/emacs-load-relative")
3237 (synopsis "Emacs Lisp relative file loading related functions")
3238 (description
3239 "Provides functions which facilitate writing multi-file Emacs packages
3240 and running from the source tree without having to \"install\" code or fiddle
3241 with @{load-path}.
3242
3243 The main function, @code{load-relative}, loads an Emacs Lisp file relative to
3244 another (presumably currently running) Emacs Lisp file.")
3245 (license license:gpl3+)))
3246
3247 (define-public emacs-loc-changes
3248 (package
3249 (name "emacs-loc-changes")
3250 (version "1.2")
3251 (source
3252 (origin
3253 (method url-fetch)
3254 (uri (string-append "https://elpa.gnu.org/packages/loc-changes-"
3255 version ".el"))
3256 (sha256
3257 (base32
3258 "1x8fn8vqasayf1rb8a6nma9n6nbvkx60krmiahyb05vl5rrsw6r3"))))
3259 (build-system emacs-build-system)
3260 (home-page "https://github.com/rocky/emacs-loc-changes")
3261 (synopsis "Keeps track of positions even after buffer changes")
3262 (description
3263 "This Emacs package provides a mean to track important buffer positions
3264 after buffer changes.")
3265 (license license:gpl3+)))
3266
3267 (define-public emacs-realgud
3268 (package
3269 (name "emacs-realgud")
3270 (version "1.4.4")
3271 (source
3272 (origin
3273 (method url-fetch)
3274 (uri (string-append "https://elpa.gnu.org/packages/realgud-"
3275 version ".tar"))
3276 (sha256
3277 (base32
3278 "1nc8km339ip90h1j55ahfga03v7x7rh4iycmw6yrxyzir68vwn7c"))))
3279 (build-system emacs-build-system)
3280 (arguments
3281 `(#:tests? #t
3282 #:phases
3283 (modify-phases %standard-phases
3284 (add-after 'unpack 'fix-autogen-script
3285 (lambda _
3286 (substitute* "autogen.sh"
3287 (("./configure") "sh configure"))))
3288 (add-after 'fix-autogen-script 'autogen
3289 (lambda _
3290 (setenv "CONFIG_SHELL" "sh")
3291 (invoke "sh" "autogen.sh")))
3292 (add-after 'fix-autogen-script 'set-home
3293 (lambda _
3294 (setenv "HOME" (getenv "TMPDIR"))))
3295 (add-before 'patch-el-files 'remove-realgud-pkg.el
3296 (lambda _
3297 ;; XXX: This file is auto-generated at some point and causes
3298 ;; substitute* to crash during the `patch-el-files' phase with:
3299 ;; ERROR: In procedure stat: No such file or directory:
3300 ;; "./realgud-pkg.el"
3301 (delete-file "./realgud-pkg.el")
3302 ;; FIXME: `patch-el-files' crashes on this file with error:
3303 ;; unable to locate "bashdb".
3304 (delete-file "./test/test-regexp-bashdb.el"))))
3305 #:include (cons* ".*\\.el$" %default-include)))
3306 (native-inputs
3307 `(("autoconf" ,autoconf)
3308 ("automake" ,automake)
3309 ("emacs-test-simple" ,emacs-test-simple)))
3310 (propagated-inputs
3311 `(("emacs-load-relative" ,emacs-load-relative)
3312 ("emacs-loc-changes" ,emacs-loc-changes)))
3313 (home-page "https://github.com/realgud/realgud/")
3314 (synopsis
3315 "Modular front-end for interacting with external debuggers")
3316 (description
3317 "RealGUD is a modular, extensible GNU Emacs front-end for interacting
3318 with external debuggers. It integrates various debuggers such as gdb, pdb,
3319 ipdb, jdb, lldb, bashdb, zshdb, etc. and allows to visually step code in the
3320 sources. Unlike GUD, it also supports running multiple debug sessions in
3321 parallel.")
3322 (license license:gpl3+)))
3323
3324 (define-public emacs-request
3325 (package
3326 (name "emacs-request")
3327 (version "0.3.0")
3328 (source (origin
3329 (method git-fetch)
3330 (uri (git-reference
3331 (url "https://github.com/tkf/emacs-request.git")
3332 (commit (string-append "v" version))))
3333 (file-name (string-append name "-" version "-checkout"))
3334 (sha256
3335 (base32
3336 "0wyxqbb35yqf6ci47531lk32d6fppamx9d8826kdz983vm87him7"))))
3337 (build-system emacs-build-system)
3338 (home-page "https://github.com/tkf/emacs-request")
3339 (synopsis "Package for speaking HTTP in Emacs Lisp")
3340 (description "This package provides a HTTP request library with multiple
3341 backends. It supports url.el which is shipped with Emacs and the curl command
3342 line program.")
3343 (license license:gpl3+)))
3344
3345 (define-public emacs-rudel
3346 (package
3347 (name "emacs-rudel")
3348 (version "0.3.1")
3349 (source
3350 (origin
3351 (method url-fetch)
3352 (uri (string-append "http://elpa.gnu.org/packages/rudel-"
3353 version ".tar"))
3354 (sha256
3355 (base32
3356 "0glqa68g509p0s2vcc0i8kzlddnc9brd9jqhnm5rzxz4i050cvnz"))))
3357 (build-system emacs-build-system)
3358 (home-page "http://rudel.sourceforge.net/")
3359 (synopsis "Collaborative editing framework")
3360 (description
3361 "Rudel is a collaborative editing environment for GNU Emacs. Its purpose
3362 is to share buffers with other users in order to edit the contents of those
3363 buffers collaboratively. Rudel supports multiple backends to enable
3364 communication with other collaborative editors using different protocols,
3365 though currently Obby (for use with the Gobby editor) is the only
3366 fully-functional one.")
3367 (license license:gpl3+)))
3368
3369 (define-public emacs-hydra
3370 (package
3371 (name "emacs-hydra")
3372 (version "0.14.0")
3373 (source
3374 (origin
3375 (method url-fetch)
3376 (uri (string-append "https://github.com/abo-abo/hydra/archive/"
3377 version ".tar.gz"))
3378 (file-name (string-append name "-" version ".tar.gz"))
3379 (sha256
3380 (base32
3381 "0884k3ffwzhh6krbd8l7vvm184dkagb2jf4q8xzg72plln34qrm8"))))
3382 (build-system emacs-build-system)
3383 (home-page "https://github.com/abo-abo/hydra")
3384 (synopsis "Make Emacs bindings that stick around")
3385 (description
3386 "This package can be used to tie related commands into a family of short
3387 bindings with a common prefix---a Hydra. Once you summon the Hydra (through
3388 the prefixed binding), all the heads can be called in succession with only a
3389 short extension. Any binding that isn't the Hydra's head vanquishes the
3390 Hydra. Note that the final binding, besides vanquishing the Hydra, will still
3391 serve its original purpose, calling the command assigned to it. This makes
3392 the Hydra very seamless; it's like a minor mode that disables itself
3393 automatically.")
3394 (license license:gpl3+)))
3395
3396 (define-public emacs-ivy
3397 (package
3398 (name "emacs-ivy")
3399 (version "0.10.0")
3400 (source
3401 (origin
3402 (method git-fetch)
3403 (uri (git-reference
3404 (url "https://github.com/abo-abo/swiper.git")
3405 (commit version)))
3406 (file-name (string-append name "-" version "-checkout"))
3407 (sha256
3408 (base32
3409 "14vnigqb5c3yi4q9ysw1fiwdqyqwyklqpb9wnjf81chm7s2mshnr"))))
3410 (build-system emacs-build-system)
3411 (arguments
3412 `(#:phases
3413 (modify-phases %standard-phases
3414 (add-after 'install 'install-doc
3415 (lambda* (#:key outputs #:allow-other-keys)
3416 (let* ((out (assoc-ref outputs "out"))
3417 (info (string-append out "/share/info")))
3418 (with-directory-excursion "doc"
3419 (unless (zero? (system* "makeinfo" "ivy.texi"))
3420 (error "makeinfo failed"))
3421 (install-file "ivy.info" info))))))))
3422 (propagated-inputs
3423 `(("emacs-hydra" ,emacs-hydra)))
3424 (native-inputs
3425 `(("texinfo" ,texinfo)))
3426 (home-page "http://oremacs.com/swiper/")
3427 (synopsis "Incremental vertical completion for Emacs")
3428 (description
3429 "This package provides @code{ivy-read} as an alternative to
3430 @code{completing-read} and similar functions. No attempt is made to determine
3431 the best candidate. Instead, the user can navigate candidates with
3432 @code{ivy-next-line} and @code{ivy-previous-line}. The matching is done by
3433 splitting the input text by spaces and re-building it into a regular
3434 expression.")
3435 (license license:gpl3+)))
3436
3437 (define-public emacs-avy
3438 (package
3439 (name "emacs-avy")
3440 (version "0.4.0")
3441 (source
3442 (origin
3443 (method url-fetch)
3444 (uri (string-append "https://github.com/abo-abo/avy/archive/"
3445 version ".tar.gz"))
3446 (file-name (string-append name "-" version ".tar.gz"))
3447 (sha256
3448 (base32
3449 "1wdrq512h25ymzjbf2kbsdymvd2ryfwzb6bh5bc3yv7q203im796"))))
3450 (build-system emacs-build-system)
3451 (home-page "https://github.com/abo-abo/avy")
3452 (synopsis "Tree-based completion for Emacs")
3453 (description
3454 "This package provides a generic completion method based on building a
3455 balanced decision tree with each candidate being a leaf. To traverse the tree
3456 from the root to a desired leaf, typically a sequence of @code{read-key} can
3457 be used.
3458
3459 In order for @code{read-key} to make sense, the tree needs to be visualized
3460 appropriately, with a character at each branch node. So this completion
3461 method works only for things that you can see on your screen, all at once,
3462 such as the positions of characters, words, line beginnings, links, or
3463 windows.")
3464 (license license:gpl3+)))
3465
3466 (define-public emacs-ace-window
3467 (package
3468 (name "emacs-ace-window")
3469 (version "0.9.0")
3470 (source
3471 (origin
3472 (method url-fetch)
3473 (uri (string-append "https://github.com/abo-abo/ace-window/archive/"
3474 version ".tar.gz"))
3475 (file-name (string-append name "-" version ".tar.gz"))
3476 (sha256
3477 (base32
3478 "1p2sgfl5dml4zbd6ldql6lm2m9vmd236ah996ni32x254s48j5pn"))))
3479 (build-system emacs-build-system)
3480 (propagated-inputs
3481 `(("emacs-avy" ,emacs-avy)))
3482 (home-page "https://github.com/abo-abo/ace-window")
3483 (synopsis "Quickly switch windows in Emacs")
3484 (description
3485 "@code{ace-window} is meant to replace @code{other-window}.
3486 In fact, when there are only two windows present, @code{other-window} is
3487 called. If there are more, each window will have its first character
3488 highlighted. Pressing that character will switch to that window.")
3489 (license license:gpl3+)))
3490
3491 (define-public emacs-iedit
3492 (package
3493 (name "emacs-iedit")
3494 (version "0.9.9.9")
3495 (source
3496 (origin
3497 (method url-fetch)
3498 (uri (string-append "https://github.com/victorhge/iedit/archive/v"
3499 version ".tar.gz"))
3500 (file-name (string-append name "-" version ".tar.gz"))
3501 (sha256
3502 (base32
3503 "1hv8q6pr85ss9g3158l1fqv3m62vsq8rslsi86jicr2dcxyascr0"))))
3504 (build-system emacs-build-system)
3505 (home-page "http://www.emacswiki.org/emacs/Iedit")
3506 (synopsis "Edit multiple regions in the same way simultaneously")
3507 (description
3508 "This package is an Emacs minor mode and allows you to edit one
3509 occurrence of some text in a buffer (possibly narrowed) or region, and
3510 simultaneously have other occurrences edited in the same way.
3511
3512 You can also use Iedit mode as a quick way to temporarily show only the buffer
3513 lines that match the current text being edited. This gives you the effect of
3514 a temporary @code{keep-lines} or @code{occur}.")
3515 (license license:gpl3+)))
3516
3517 (define-public emacs-lispy
3518 (package
3519 (name "emacs-lispy")
3520 (version "0.26.0")
3521 (source
3522 (origin
3523 (method url-fetch)
3524 (uri (string-append "https://github.com/abo-abo/lispy/archive/"
3525 version ".tar.gz"))
3526 (file-name (string-append name "-" version ".tar.gz"))
3527 (sha256
3528 (base32
3529 "15gig95cvamw5zlw99cxggd27c18b9scznjj97gvjn2zbljcaqzl"))))
3530 (build-system emacs-build-system)
3531 (propagated-inputs
3532 `(("emacs-ace-window" ,emacs-ace-window)
3533 ("emacs-iedit" ,emacs-iedit)
3534 ("emacs-ivy" ,emacs-ivy)
3535 ("emacs-hydra" ,emacs-hydra)))
3536 (home-page "https://github.com/abo-abo/lispy")
3537 (synopsis "Modal S-expression editing")
3538 (description
3539 "Due to the structure of Lisp syntax it's very rare for the programmer to
3540 want to insert characters right before \"(\" or right after \")\". Thus
3541 unprefixed printable characters can be used to call commands when the point is
3542 at one of these special locations. Lispy provides unprefixed keybindings for
3543 S-expression editing when point is at the beginning or end of an
3544 S-expression.")
3545 (license license:gpl3+)))
3546
3547 (define-public emacs-clojure-mode
3548 (package
3549 (name "emacs-clojure-mode")
3550 (version "5.6.1")
3551 (source (origin
3552 (method url-fetch)
3553 (uri (string-append
3554 "https://github.com/clojure-emacs/clojure-mode/archive/"
3555 version ".tar.gz"))
3556 (file-name (string-append name "-" version ".tar.gz"))
3557 (sha256
3558 (base32
3559 "1f4k1hncy5ygh4izn7mqfp744nnisrp9ywn2njknbjxx34ai1q88"))))
3560 (build-system emacs-build-system)
3561 (native-inputs
3562 `(("emacs-dash" ,emacs-dash)
3563 ("emacs-s" ,emacs-s)
3564 ("ert-runner" ,ert-runner)))
3565 (arguments
3566 `(#:phases
3567 (modify-phases %standard-phases
3568 (add-after 'install 'check
3569 (lambda _
3570 (zero? (system* "ert-runner")))))))
3571 (home-page "https://github.com/clojure-emacs/clojure-mode")
3572 (synopsis "Major mode for Clojure code")
3573 (description
3574 "This Emacs package provides font-lock, indentation, navigation and basic
3575 refactoring for the @uref{http://clojure.org, Clojure programming language}.
3576 It is recommended to use @code{clojure-mode} with paredit or smartparens.")
3577 (license license:gpl3+)))
3578
3579 (define-public emacs-epl
3580 (package
3581 (name "emacs-epl")
3582 (version "0.8")
3583 (source (origin
3584 (method url-fetch)
3585 (uri (string-append
3586 "https://github.com/cask/epl/archive/"
3587 version ".tar.gz"))
3588 (file-name (string-append name "-" version ".tar.gz"))
3589 (sha256
3590 (base32
3591 "1511n3a3f5gvaf2b4nh018by61ciyzi3y3603fzqma7p9hrckarc"))))
3592 (build-system emacs-build-system)
3593 (home-page "https://github.com/cask/epl")
3594 (synopsis "Emacs Package Library")
3595 (description
3596 "A package management library for Emacs, based on @code{package.el}.
3597
3598 The purpose of this library is to wrap all the quirks and hassle of
3599 @code{package.el} into a sane API.")
3600 (license license:gpl3+)))
3601
3602 (define-public emacs-queue
3603 (package
3604 (name "emacs-queue")
3605 (version "0.2")
3606 (source (origin
3607 (method url-fetch)
3608 (uri (string-append "https://elpa.gnu.org/packages/queue-"
3609 version ".el"))
3610 (sha256
3611 (base32
3612 "0cx2848sqnnkkr4zisvqadzxngjyhmb36mh0q3if7q19yjjhmrkb"))))
3613 (build-system emacs-build-system)
3614 (home-page "http://www.dr-qubit.org/tags/computing-code-emacs.html")
3615 (synopsis "Queue data structure for Emacs")
3616 (description
3617 "This Emacs library provides queue data structure. These queues can be
3618 used both as a first-in last-out (FILO) and as a first-in first-out (FIFO)
3619 stack, i.e. elements can be added to the front or back of the queue, and can
3620 be removed from the front. This type of data structure is sometimes called an
3621 \"output-restricted deque\".")
3622 (license license:gpl3+)))
3623
3624 (define-public emacs-pkg-info
3625 (package
3626 (name "emacs-pkg-info")
3627 (version "0.6")
3628 (source (origin
3629 (method url-fetch)
3630 (uri (string-append
3631 "https://github.com/lunaryorn/pkg-info.el/archive/"
3632 version ".tar.gz"))
3633 (file-name (string-append name "-" version ".tar.gz"))
3634 (sha256
3635 (base32
3636 "1gy1jks5mmm02gg1c8gcyr4f8a9s5ggzhk56gv33b9mzjqzi5rd5"))))
3637 (build-system emacs-build-system)
3638 (propagated-inputs `(("emacs-epl" ,emacs-epl)))
3639 (home-page "https://github.com/lunaryorn/pkg-info.el")
3640 (synopsis "Information about Emacs packages")
3641 (description
3642 "This library extracts information from the installed Emacs packages.")
3643 (license license:gpl3+)))
3644
3645 (define-public emacs-spinner
3646 (package
3647 (name "emacs-spinner")
3648 (version "1.7.3")
3649 (source (origin
3650 (method url-fetch)
3651 (uri (string-append "https://elpa.gnu.org/packages/spinner-"
3652 version ".el"))
3653 (sha256
3654 (base32
3655 "19kp1mmndbmw11sgvv2ggfjl4pyf5zrsbh3871f0965pw9z8vahd"))))
3656 (build-system emacs-build-system)
3657 (home-page "https://github.com/Malabarba/spinner.el")
3658 (synopsis "Emacs mode-line spinner for operations in progress")
3659 (description
3660 "This Emacs package adds spinners and progress-bars to the mode-line for
3661 ongoing operations.")
3662 (license license:gpl3+)))
3663
3664 (define-public emacs-sparql-mode
3665 (package
3666 (name "emacs-sparql-mode")
3667 (version "2.0.1")
3668 (source (origin
3669 (method url-fetch)
3670 (uri (string-append "https://github.com/ljos/sparql-mode/archive/"
3671 "v" version ".tar.gz"))
3672 (file-name (string-append name "-" version ".tar.gz"))
3673 (sha256
3674 (base32
3675 "1s93mkllxnhy7fw616cnnc2danacdlarys0g3cn89drh0llh53cv"))))
3676 (build-system emacs-build-system)
3677 (home-page "https://github.com/ljos/sparql-mode")
3678 (synopsis "SPARQL mode for Emacs")
3679 (description "This package provides a major mode for Emacs that provides
3680 syntax highlighting for SPARQL. It also provides a way to execute queries
3681 against a SPARQL HTTP endpoint, such as is provided by Fuseki. It is also
3682 possible to query other endpoints like DBPedia.")
3683 (license license:gpl3+)))
3684
3685 (define-public emacs-better-defaults
3686 (package
3687 (name "emacs-better-defaults")
3688 (version "0.1.3")
3689 (source
3690 (origin
3691 (method url-fetch)
3692 (uri (string-append "https://github.com/technomancy/better-defaults"
3693 "/archive/" version ".tar.gz"))
3694 (file-name (string-append name "-" version ".tar.gz"))
3695 (sha256
3696 (base32
3697 "08fg4zslzlxbvyil5g4gwvwd22fh4zsgqprs5wh9hv1rgc6757m2"))))
3698 (build-system emacs-build-system)
3699 (home-page "https://github.com/technomancy/better-defaults")
3700 (synopsis "Better defaults for Emacs")
3701 (description
3702 "Better defaults attempts to address the most obvious deficiencies of the
3703 Emacs default configuration in uncontroversial ways that nearly everyone can
3704 agree upon.")
3705 (license license:gpl3+)))
3706
3707 (define-public emacs-eprime
3708 (let ((commit "17a481af26496be91c07139a9bfc05cfe722506f"))
3709 (package
3710 (name "emacs-eprime")
3711 (version (string-append "20140513-" (string-take commit 7)))
3712 (source (origin
3713 (method url-fetch)
3714 (uri (string-append "https://raw.githubusercontent.com"
3715 "/AndrewHynes/eprime-mode/"
3716 commit "/eprime-mode.el"))
3717 (file-name (string-append "eprime-" version ".el"))
3718 (sha256
3719 (base32
3720 "0v68lggkyq7kbcr9zyi573m2g2x251xy3jadlaw8kx02l8krwq8d"))))
3721 (build-system emacs-build-system)
3722 (home-page "https://github.com/AndrewHynes/eprime-mode")
3723 (synopsis "E-prime checking mode for Emacs")
3724 (description "This package provides an E-prime checking mode for Emacs
3725 that highlights non-conforming text. The subset of the English language called
3726 E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
3727 (license license:gpl3+))))
3728
3729 (define-public emacs-julia-mode
3730 ;; XXX: Upstream version remained stuck at 0.3. See
3731 ;; <https://github.com/JuliaEditorSupport/julia-emacs/issues/46>.
3732 (let ((commit "115d4dc8a07445301772da8376b232fa8c7168f4")
3733 (revision "1"))
3734 (package
3735 (name "emacs-julia-mode")
3736 (version (string-append "0.3-" revision "." (string-take commit 8)))
3737 (source
3738 (origin
3739 (method git-fetch)
3740 (uri (git-reference
3741 (url "https://github.com/JuliaEditorSupport/julia-emacs.git")
3742 (commit commit)))
3743 (file-name (string-append name "-" version "-checkout"))
3744 (sha256
3745 (base32
3746 "1is4dcv6blslpzbjcg8l2jpxi8xj96q4cm0nxjxsyswpm8bw8ki0"))))
3747 (build-system emacs-build-system)
3748 (arguments
3749 `(#:phases
3750 (modify-phases %standard-phases
3751 (add-before 'install 'check
3752 (lambda _
3753 (zero? (system* "emacs" "-batch"
3754 "-l" "julia-mode.el"
3755 "-l" "julia-mode-tests.el"
3756 "-f" "ert-run-tests-batch-and-exit")))))))
3757 (home-page "https://github.com/JuliaEditorSupport/julia-emacs")
3758 (synopsis "Major mode for Julia")
3759 (description "This Emacs package provides a mode for the Julia
3760 programming language.")
3761 (license license:expat))))
3762
3763 (define-public emacs-ess
3764 (package
3765 (name "emacs-ess")
3766 (version "16.10")
3767 (source (origin
3768 (method url-fetch)
3769 (uri (string-append "http://ess.r-project.org/downloads/ess/ess-"
3770 version ".tgz"))
3771 (sha256
3772 (base32
3773 "04m8lwp3ylh2vl7k2bjjs7mxbm64j4sdckqpvnm9k0qhaqf02pjk"))
3774 (modules '((guix build utils)))
3775 (snippet
3776 '(begin
3777 ;; Stop ESS from trying to bundle an external julia-mode.el.
3778 (substitute* "lisp/Makefile"
3779 (("^\tjulia-mode.elc\\\\\n") "")
3780 (("^all: \\$\\(ELC\\) ess-custom.el julia-mode.el")
3781 "all: $(ELC) ess-custom.el"))))))
3782 (build-system gnu-build-system)
3783 (arguments
3784 (let ((base-directory "/share/emacs/site-lisp/guix.d/ess"))
3785 `(#:make-flags (list (string-append "PREFIX=" %output)
3786 (string-append "ETCDIR=" %output "/"
3787 ,base-directory "/etc")
3788 (string-append "LISPDIR=" %output "/"
3789 ,base-directory))
3790 #:phases
3791 (modify-phases %standard-phases
3792 (delete 'configure)
3793 (add-before 'build 'more-shebang-patching
3794 (lambda* (#:key inputs #:allow-other-keys)
3795 (substitute* "Makeconf"
3796 (("SHELL = /bin/sh")
3797 (string-append "SHELL = " (which "sh"))))))
3798 ;; FIXME: the texlive-union insists on regenerating fonts. It stores
3799 ;; them in HOME, so it needs to be writeable.
3800 (add-before 'build 'set-HOME
3801 (lambda _ (setenv "HOME" "/tmp") #t))
3802 (replace 'check
3803 (lambda _
3804 (zero? (system* "make" "test"))))))))
3805 (inputs
3806 `(("emacs" ,emacs-minimal)
3807 ("r-minimal" ,r-minimal)))
3808 (native-inputs
3809 `(("perl" ,perl)
3810 ("texinfo" ,texinfo)
3811 ("texlive" ,(texlive-union (list texlive-latex-natbib
3812 texlive-latex-seminar
3813 texlive-latex-hyperref
3814 texlive-tex-texinfo)))))
3815 (home-page "https://ess.r-project.org/")
3816 (synopsis "Emacs mode for statistical analysis programs")
3817 (description "Emacs Speaks Statistics (ESS) is an add-on package for GNU
3818 Emacs. It is designed to support editing of scripts and interaction with
3819 various statistical analysis programs such as R and OpenBUGS.")
3820 (license license:gpl2+)))
3821
3822 (define-public emacs-smex
3823 (package
3824 (name "emacs-smex")
3825 (version "3.0")
3826 (source (origin
3827 (method url-fetch)
3828 (uri (string-append "https://raw.githubusercontent.com"
3829 "/nonsequitur/smex/" version "/smex.el"))
3830 (file-name (string-append "smex-" version ".el"))
3831 (sha256
3832 (base32
3833 "0ar310zx9k5y4i1vl2rawvi712xj9gx77160860jbs691p77cxqp"))))
3834 (build-system emacs-build-system)
3835 (home-page "https://github.com/nonsequitur/smex/")
3836 (synopsis "M-x interface with Ido-style fuzzy matching")
3837 (description
3838 "Smex is a M-x enhancement for Emacs. Built on top of Ido, it provides a
3839 convenient interface to your recently and most frequently used commands. And
3840 to all the other commands, too.")
3841 (license license:gpl3+)))
3842
3843 (define-public emacs-js2-mode
3844 (package
3845 (name "emacs-js2-mode")
3846 (version "20150909")
3847 (source (origin
3848 (method url-fetch)
3849 (uri (string-append "https://github.com/mooz/js2-mode/archive/"
3850 version ".tar.gz"))
3851 (file-name (string-append name "-" version ".tar.gz"))
3852 (sha256
3853 (base32
3854 "1nsm36c4kwb473p13i58fgrnlk8fbn3rdhj47d9xz70az4ra44q0"))))
3855 (build-system emacs-build-system)
3856 (home-page "https://github.com/mooz/js2-mode/")
3857 (synopsis "Improved JavaScript editing mode for Emacs")
3858 (description
3859 "Js2-mode provides a JavaScript major mode for Emacs that is more
3860 advanced than the built-in javascript-mode. Features include accurate syntax
3861 highlighting using a recursive-descent parser, on-the-fly reporting of syntax
3862 errors and strict-mode warnings, smart line-wrapping within comments and
3863 strings, and code folding.")
3864 (license license:gpl3+)))
3865
3866 (define-public emacs-markdown-mode
3867 (package
3868 (name "emacs-markdown-mode")
3869 (version "2.3")
3870 (source (origin
3871 (method url-fetch)
3872 (uri (string-append "https://raw.githubusercontent.com/jrblevin"
3873 "/markdown-mode/v" version
3874 "/markdown-mode.el"))
3875 (file-name (string-append "markdown-mode-" version ".el"))
3876 (sha256
3877 (base32
3878 "152whyrq3dqlqy5wv4mdd94kmal19hs5kwaxjcp2gp2r97lsmdmi"))))
3879 (build-system emacs-build-system)
3880 (home-page "http://jblevins.org/projects/markdown-mode/")
3881 (synopsis "Emacs Major mode for Markdown files")
3882 (description
3883 "Markdown-mode is a major mode for editing Markdown-formatted text files
3884 in Emacs.")
3885 (license license:gpl3+)))
3886
3887 (define-public emacs-edit-indirect
3888 (package
3889 (name "emacs-edit-indirect")
3890 (version "0.1.4")
3891 (source
3892 (origin
3893 (method url-fetch)
3894 (uri (string-append "https://github.com/Fanael/edit-indirect/archive/"
3895 version ".tar.gz"))
3896 (file-name (string-append name "-" version ".tar.gz"))
3897 (sha256
3898 (base32
3899 "07kr58rd1p5j764wminsssazr73hy51yw8iqcsv5z2dwgj7msv71"))))
3900 (build-system emacs-build-system)
3901 (home-page "https://github.com/Fanael/edit-indirect")
3902 (synopsis "Edit regions in separate buffers")
3903 (description "This package allows you to edit regions in separate buffers,
3904 like @code{org-edit-src-code} but for arbitrary regions.")
3905 (license license:gpl3+)))
3906
3907 (define-public emacs-projectile
3908 (package
3909 (name "emacs-projectile")
3910 (version "0.14.0")
3911 (source (origin
3912 (method url-fetch)
3913 (uri (string-append "https://raw.githubusercontent.com/bbatsov"
3914 "/projectile/v" version "/projectile.el"))
3915 (file-name (string-append "projectile-" version ".el"))
3916 (sha256
3917 (base32
3918 "1ql1wnzhblbwnv66hf2y0wq45g71hh6s9inc090lmhm1vgylbd1f"))))
3919 (build-system emacs-build-system)
3920 (propagated-inputs
3921 `(("emacs-dash" ,emacs-dash)
3922 ("emacs-pkg-info" ,emacs-pkg-info)))
3923 (home-page "https://github.com/bbatsov/projectile")
3924 (synopsis "Manage and navigate projects in Emacs easily")
3925 (description
3926 "This library provides easy project management and navigation. The
3927 concept of a project is pretty basic - just a folder containing special file.
3928 Currently git, mercurial and bazaar repos are considered projects by default.
3929 If you want to mark a folder manually as a project just create an empty
3930 .projectile file in it.")
3931 (license license:gpl3+)))
3932
3933 (define-public emacs-elfeed
3934 (package
3935 (name "emacs-elfeed")
3936 (version "2.3.0")
3937 (source (origin
3938 (method url-fetch)
3939 (uri (string-append "https://github.com/skeeto/elfeed/archive/"
3940 version ".tar.gz"))
3941 (file-name (string-append name "-" version ".tar.gz"))
3942 (sha256
3943 (base32
3944 "1fd1mx0q1qb9vgdzls5ppxfriyid48blg8smgjspiazp7kxakzxv"))))
3945 (build-system emacs-build-system)
3946 (arguments
3947 `(#:phases
3948 (modify-phases %standard-phases
3949 (add-before 'install 'check
3950 (lambda _
3951 (zero? (system* "make" "test")))))))
3952 (home-page "https://github.com/skeeto/elfeed")
3953 (synopsis "Atom/RSS feed reader for Emacs")
3954 (description
3955 "Elfeed is an extensible web feed reader for Emacs, supporting both Atom
3956 and RSS, with a user interface inspired by notmuch.")
3957 (license license:gpl3+)))
3958
3959 (define-public emacs-rainbow-delimiters
3960 (package
3961 (name "emacs-rainbow-delimiters")
3962 (version "2.1.3")
3963 (source (origin
3964 (method url-fetch)
3965 (uri (string-append "https://raw.githubusercontent.com/Fanael"
3966 "/rainbow-delimiters/" version
3967 "/rainbow-delimiters.el"))
3968 (file-name (string-append "rainbow-delimiters-" version ".el"))
3969 (sha256
3970 (base32
3971 "1b3kampwsjabhcqdp0khgff13wc5jqhy3rbvaa12vnv7qy22l9ck"))))
3972 (build-system emacs-build-system)
3973 (home-page "https://github.com/Fanael/rainbow-delimiters")
3974 (synopsis "Highlight brackets according to their depth")
3975 (description
3976 "Rainbow-delimiters is a \"rainbow parentheses\"-like mode for Emacs which
3977 highlights parentheses, brackets, and braces according to their depth. Each
3978 successive level is highlighted in a different color, making it easy to spot
3979 matching delimiters, orient yourself in the code, and tell which statements
3980 are at a given level.")
3981 (license license:gpl3+)))
3982
3983 (define-public emacs-rainbow-identifiers
3984 (package
3985 (name "emacs-rainbow-identifiers")
3986 (version "0.2.2")
3987 (source (origin
3988 (method url-fetch)
3989 (uri (string-append "https://raw.githubusercontent.com/Fanael"
3990 "/rainbow-identifiers/" version
3991 "/rainbow-identifiers.el"))
3992 (file-name (string-append "rainbow-identifiers-" version ".el"))
3993 (sha256
3994 (base32
3995 "0325abxj47k0g1i8nqrq70w2wr6060ckhhf92krv1s072b3jzm31"))))
3996 (build-system emacs-build-system)
3997 (home-page "https://github.com/Fanael/rainbow-identifiers")
3998 (synopsis "Highlight identifiers in source code")
3999 (description
4000 "Rainbow identifiers mode is an Emacs minor mode providing highlighting of
4001 identifiers based on their names. Each identifier gets a color based on a hash
4002 of its name.")
4003 (license license:bsd-2)))
4004
4005 (define-public emacs-rainbow-mode
4006 (package
4007 (name "emacs-rainbow-mode")
4008 (version "0.13")
4009 (source (origin
4010 (method url-fetch)
4011 (uri (string-append
4012 "http://elpa.gnu.org/packages/rainbow-mode-" version ".el"))
4013 (sha256
4014 (base32
4015 "1d3aamx6qgqqpqijwsr02ggwrh67gfink1bir0692alfkm3zdddl"))))
4016 (build-system emacs-build-system)
4017 (home-page "http://elpa.gnu.org/packages/rainbow-mode.html")
4018 (synopsis "Colorize color names in buffers")
4019 (description
4020 "This minor mode sets background color to strings that match color
4021 names, e.g. #0000ff is displayed in white with a blue background.")
4022 (license license:gpl3+)))
4023
4024 (define-public emacs-visual-fill-column
4025 (package
4026 (name "emacs-visual-fill-column")
4027 (version "1.11")
4028 (source (origin
4029 (method url-fetch)
4030 (uri (string-append "https://codeload.github.com/joostkremers/"
4031 "visual-fill-column/tar.gz/" version))
4032 (file-name (string-append name "-" version ".tar.gz"))
4033 (sha256
4034 (base32
4035 "13jnviakp607zcms7f8ams56mr8wffnq1pghlc6fvqs39663pgwh"))))
4036 (build-system emacs-build-system)
4037 (home-page "https://github.com/joostkremers/visual-fill-column")
4038 (synopsis "Fill-column for visual-line-mode")
4039 (description
4040 "@code{visual-fill-column-mode} is a small Emacs minor mode that mimics
4041 the effect of @code{fill-column} in @code{visual-line-mode}. Instead of
4042 wrapping lines at the window edge, which is the standard behaviour of
4043 @code{visual-line-mode}, it wraps lines at @code{fill-column}. If
4044 @code{fill-column} is too large for the window, the text is wrapped at the
4045 window edge.")
4046 (license license:gpl3+)))
4047
4048 (define-public emacs-writeroom
4049 (package
4050 (name "emacs-writeroom")
4051 (version "3.7")
4052 (source (origin
4053 (method url-fetch)
4054 (uri (string-append
4055 "https://github.com/joostkremers/writeroom-mode/archive/"
4056 version ".tar.gz"))
4057 (file-name (string-append name "-" version ".tar.gz"))
4058 (sha256
4059 (base32
4060 "0yqgp5h3kvvpgva4azakb2wnjl7gsyh45glf75crspv3xyq57f2r"))))
4061 (build-system emacs-build-system)
4062 (propagated-inputs
4063 `(("emacs-visual-fill-column" ,emacs-visual-fill-column)))
4064 (home-page "https://github.com/joostkremers/writeroom-mode")
4065 (synopsis "Distraction-free writing for Emacs")
4066 (description
4067 "This package defines a minor mode for distraction-free writing. Some of
4068 the default effects include entering fullscreen, deleting other windows of the
4069 current frame, disabling the mode line, and adding margins to the buffer that
4070 restrict the text width to 80 characters.")
4071 (license license:bsd-3)))
4072
4073 (define-public emacs-ido-completing-read+
4074 (package
4075 (name "emacs-ido-completing-read+")
4076 (version "3.12")
4077 (source (origin
4078 (method url-fetch)
4079 (uri (string-append "https://raw.githubusercontent.com"
4080 "/DarwinAwardWinner/ido-ubiquitous/v"
4081 version "/ido-completing-read+.el"))
4082 (file-name (string-append "ido-completing-read+-" version ".el"))
4083 (sha256
4084 (base32
4085 "1cyalb0p7nfsm4n6n9q6rjmvn6adqc0fq8ybnlj3n41n289dkfjf"))))
4086 (build-system emacs-build-system)
4087 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
4088 (synopsis "Replacement for completing-read using ido")
4089 (description
4090 "The ido-completing-read+ function is a wrapper for ido-completing-read.
4091 Importantly, it detects edge cases that ordinary ido cannot handle and either
4092 adjusts them so ido can handle them, or else simply falls back to the standard
4093 Emacs completion function instead.")
4094 (license license:gpl3+)))
4095
4096 (define-public emacs-ido-ubiquitous
4097 (package
4098 (name "emacs-ido-ubiquitous")
4099 (version "3.12")
4100 (source (origin
4101 (method url-fetch)
4102 (uri (string-append "https://raw.githubusercontent.com"
4103 "/DarwinAwardWinner/ido-ubiquitous/v"
4104 version "/ido-ubiquitous.el"))
4105 (file-name (string-append "ido-ubiquitous-" version ".el"))
4106 (sha256
4107 (base32
4108 "197ypji0fb6jsdcq40rpnknwlh3imas6s6jbsvkfm0pz9988c3q2"))))
4109 (build-system emacs-build-system)
4110 (propagated-inputs
4111 `(("emacs-ido-completing-read+" ,emacs-ido-completing-read+)))
4112 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
4113 (synopsis "Use ido (nearly) everywhere")
4114 (description
4115 "Ido-ubiquitous enables ido-style completion for almost every function
4116 that uses the standard completion function completing-read.")
4117 (license license:gpl3+)))
4118
4119 (define-public emacs-yaml-mode
4120 (package
4121 (name "emacs-yaml-mode")
4122 (version "0.0.13")
4123 (source (origin
4124 (method url-fetch)
4125 (uri (string-append "https://raw.githubusercontent.com/yoshiki"
4126 "/yaml-mode/v" version "/yaml-mode.el"))
4127 (file-name (string-append "yaml-mode-" version ".el"))
4128 (sha256
4129 (base32
4130 "0im88sk9dqw03x6d6zaspgvg9i0pfpgb8f2zygrmbifh2w4pwmvj"))))
4131 (build-system emacs-build-system)
4132 (home-page "https://github.com/yoshiki/yaml-mode")
4133 (synopsis "Major mode for editing YAML files")
4134 (description
4135 "Yaml-mode is an Emacs major mode for editing files in the YAML data
4136 serialization format. It was initially developed by Yoshiki Kurihara and many
4137 features were added by Marshall Vandegrift. As YAML and Python share the fact
4138 that indentation determines structure, this mode provides indentation and
4139 indentation command behavior very similar to that of python-mode.")
4140 (license license:gpl3+)))
4141
4142 (define-public emacs-web-mode
4143 (package
4144 (name "emacs-web-mode")
4145 (version "14")
4146 (source (origin
4147 (method url-fetch)
4148 (uri (string-append "https://raw.githubusercontent.com/fxbois"
4149 "/web-mode/v" version "/web-mode.el"))
4150 (file-name (string-append "web-mode-" version ".el"))
4151 (sha256
4152 (base32
4153 "086hik5fmxg3kx74qmransx9cz961qd22d4m6ah2dw6cwaj1s3s5"))))
4154 (build-system emacs-build-system)
4155 (synopsis "Major mode for editing web templates")
4156 (description "Web-mode is an Emacs major mode for editing web templates
4157 aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by
4158 client/server side engines). Web-mode is compatible with many template
4159 engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker,
4160 Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template,
4161 Dust.js, React/JSX, Angularjs, ejs, etc.")
4162 (home-page "http://web-mode.org/")
4163 (license license:gpl3+)))
4164
4165 (define-public emacs-wgrep
4166 (package
4167 (name "emacs-wgrep")
4168 (version "2.1.10")
4169 (source (origin
4170 (method url-fetch)
4171 (uri (string-append
4172 "https://github.com/mhayashi1120/Emacs-wgrep/archive/"
4173 version ".tar.gz"))
4174 (file-name (string-append name "-" version ".tar.gz"))
4175 (sha256
4176 (base32
4177 "1r2bpypar70xg6dsx12x1k74f39ww930rday7rgqpyknzsx1k4l1"))))
4178 (build-system emacs-build-system)
4179 (home-page "https://github.com/mhayashi1120/Emacs-wgrep")
4180 (synopsis "Edit a grep buffer and apply those changes to the files")
4181 (description
4182 "Emacs wgrep allows you to edit a grep buffer and apply those changes to
4183 the file buffer.")
4184 (license license:gpl3+)))
4185
4186 (define-public emacs-helm
4187 (package
4188 (name "emacs-helm")
4189 (version "2.9.0")
4190 (source (origin
4191 (method url-fetch)
4192 (uri (string-append
4193 "https://github.com/" name "/helm/archive/v"
4194 version ".tar.gz"))
4195 (file-name (string-append name "-" version ".tar.gz"))
4196 (sha256
4197 (base32
4198 "1798gn0za11cxdbi436javfczv4abniccxcl0jppl463r8lzb8is"))))
4199 (build-system emacs-build-system)
4200 (propagated-inputs
4201 `(("emacs-async" ,emacs-async)
4202 ("emacs-popup" ,emacs-popup)))
4203 (home-page "https://emacs-helm.github.io/helm/")
4204 (synopsis "Incremental completion and selection narrowing
4205 framework for Emacs")
4206 (description "Helm is incremental completion and selection narrowing
4207 framework for Emacs. It will help steer you in the right direction when
4208 you're looking for stuff in Emacs (like buffers, files, etc). Helm is a fork
4209 of @code{anything.el} originally written by Tamas Patrovic and can be
4210 considered to be its successor. Helm sets out to clean up the legacy code in
4211 @code{anything.el} and provide a cleaner, leaner and more modular tool, that's
4212 not tied in the trap of backward compatibility.")
4213 (license license:gpl3+)))
4214
4215 (define-public emacs-helm-swoop
4216 (package
4217 (name "emacs-helm-swoop")
4218 (version "1.7.4")
4219 (source (origin
4220 (method url-fetch)
4221 (uri (string-append
4222 "https://github.com/ShingoFukuyama/helm-swoop/archive/"
4223 version
4224 ".tar.gz"))
4225 (file-name (string-append name "-" version ".tar.gz"))
4226 (sha256
4227 (base32
4228 "1ssivsjzlnkg049cg993l8fp09l5nhpz6asj7w5c91zp5kpc6fh7"))))
4229 (build-system emacs-build-system)
4230 (propagated-inputs
4231 `(("emacs-helm" ,emacs-helm)))
4232 (home-page "https://github.com/ShingoFukuyama/helm-swoop")
4233 (synopsis "Filter and jump to lines in an Emacs buffer using Helm")
4234 (description
4235 "This package builds on the Helm interface to provide several commands
4236 for search-based navigation of buffers.")
4237 (license license:gpl2+)))
4238
4239 (define-public emacs-helm-projectile
4240 (package
4241 (name "emacs-helm-projectile")
4242 (version "0.14.0")
4243 (source (origin
4244 (method url-fetch)
4245 (uri (string-append
4246 "https://github.com/bbatsov/helm-projectile/archive/v"
4247 version
4248 ".tar.gz"))
4249 (file-name (string-append name "-" version ".tar.gz"))
4250 (sha256
4251 (base32
4252 "19cfmilqh8kbab3b2hmx6lyrj73q6vfmn3p730x95g23iz16mnd5"))))
4253 (build-system emacs-build-system)
4254 (propagated-inputs
4255 `(("emacs-dash" ,emacs-dash)
4256 ("emacs-helm" ,emacs-helm)
4257 ("emacs-projectile" ,emacs-projectile)))
4258 (home-page "https://github.com/bbatsov/helm-projectile")
4259 (synopsis "Helm integration for Projectile")
4260 (description
4261 "This Emacs library provides a Helm interface for Projectile.")
4262 (license license:gpl3+)))
4263
4264 (define-public emacs-helm-make
4265 (let ((commit "feae8df22bc4b20705ea08ac9adfc2b43bb348d0")
4266 (revision "1"))
4267 (package
4268 (name "emacs-helm-make")
4269 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
4270 (source
4271 (origin
4272 (method git-fetch)
4273 (uri (git-reference
4274 (url "https://github.com/abo-abo/helm-make.git")
4275 (commit commit)))
4276 (file-name (string-append name "-" version "-checkout"))
4277 (sha256
4278 (base32
4279 "1y2v77mmd1bfkkz51cnk1l0dg3lvvxc39wlamnm7wjns66dbvlam"))))
4280 (build-system emacs-build-system)
4281 (propagated-inputs
4282 `(("emacs-helm" ,emacs-helm)
4283 ("emacs-projectile" ,emacs-projectile)))
4284 (home-page "https://github.com/abo-abo/helm-make")
4285 (synopsis "Select a Makefile target with helm")
4286 (description "@code{helm-make} or @code{helm-make-projectile} will give
4287 you a @code{helm} selection of directory Makefile's targets. Selecting a
4288 target will call @code{compile} on it.")
4289 (license license:gpl3+))))
4290
4291 (define-public emacs-cider
4292 (package
4293 (name "emacs-cider")
4294 (version "0.15.1")
4295 (source (origin
4296 (method url-fetch)
4297 (uri (string-append
4298 "https://github.com/clojure-emacs/cider/archive/v"
4299 version ".tar.gz"))
4300 (file-name (string-append name "-" version ".tar.gz"))
4301 (sha256
4302 (base32
4303 "1j5hlmi14ypszv1f9nvq0jjlz7i742flg0ny3055l7i4x089xx6g"))))
4304 (build-system emacs-build-system)
4305 (arguments
4306 '(#:exclude ; Don't exclude 'cider-test.el'.
4307 '("^\\.dir-locals\\.el$" "^test/")))
4308 (propagated-inputs
4309 `(("emacs-clojure-mode" ,emacs-clojure-mode)
4310 ("emacs-spinner" ,emacs-spinner)
4311 ("emacs-pkg-info" ,emacs-pkg-info)
4312 ("emacs-queue" ,emacs-queue)))
4313 (home-page "https://cider.readthedocs.org/")
4314 (synopsis "Clojure development environment for Emacs")
4315 (description
4316 "CIDER (Clojure Interactive Development Environment that Rocks) aims to
4317 provide an interactive development experience similar to the one you'd get
4318 when programming in Emacs Lisp, Common Lisp (with SLIME or Sly), Scheme (with
4319 Geiser) and Smalltalk.
4320
4321 CIDER is the successor to the now deprecated combination of using SLIME +
4322 swank-clojure for Clojure development.
4323
4324 There are plenty of differences between CIDER and SLIME, but the core ideas
4325 are pretty much the same (and SLIME served as the principle inspiration for
4326 CIDER).")
4327 (license license:gpl3+)))
4328
4329 ;; There hasn't been a tag or release since 2015, so we take the latest
4330 ;; commit.
4331 (define-public emacs-sly
4332 (let ((commit "486bfbe95612bcdc0960c490207970a188e0fbb9")
4333 (revision "1"))
4334 (package
4335 (name "emacs-sly")
4336 (version (string-append "1.0.0-" revision "." (string-take commit 9)))
4337 (source
4338 (origin
4339 (method git-fetch)
4340 (uri (git-reference
4341 (url "https://github.com/joaotavora/sly.git")
4342 (commit commit)))
4343 (file-name (git-file-name name version))
4344 (sha256
4345 (base32
4346 "0ib4q4k3h3qn88pymyjjmlmnpizdn1mfg5gpk5a715nqsgxlg09l"))))
4347 (build-system emacs-build-system)
4348 (arguments
4349 `(#:include (cons "^lib\\/" %default-include)
4350 #:phases
4351 ;; The package provides autoloads.
4352 (modify-phases %standard-phases
4353 (delete 'make-autoloads))))
4354 (home-page "https://github.com/joaotavora/sly")
4355 (synopsis "Sylvester the Cat's Common Lisp IDE")
4356 (description
4357 "SLY is Sylvester the Cat's Common Lisp IDE. SLY is a fork of SLIME, and
4358 contains the following improvements over it:
4359
4360 @enumerate
4361 @item Completely redesigned REPL based on Emacs's own full-featured
4362 @code{comint.el}
4363 @item Live code annotations via a new @code{sly-stickers} contrib
4364 @item Consistent interactive button interface. Everything can be copied to
4365 the REPL.
4366 @item Multiple inspectors with independent history
4367 @item Regexp-capable @code{M-x sly-apropos}
4368 @item Contribs are first class SLY citizens and enabled by default
4369 @item Use ASDF to loads contribs on demand.
4370 @end enumerate
4371
4372 SLY tracks SLIME's bugfixes and all its familar features (debugger, inspector,
4373 xref, etc...) are still available, but with better integration.")
4374 (license license:gpl3+))))
4375
4376 (define-public emacs-lua-mode
4377 (let ((commit "652e299cb967fccca827dda381d61a9c144d97de")
4378 (revision "1"))
4379 (package
4380 (name "emacs-lua-mode")
4381 (version (string-append "20151025." revision "-" (string-take commit 9)))
4382 (home-page "https://github.com/immerrr/lua-mode/")
4383 (source (origin
4384 (method git-fetch)
4385 (uri (git-reference
4386 (url home-page)
4387 (commit commit)))
4388 (file-name (string-append name "-" version ".checkout"))
4389 (sha256
4390 (base32
4391 "053025k930wh0lak6rc1973ynfrmm8zsyzfqhhd39x7abkl41hc9"))))
4392 (build-system emacs-build-system)
4393 (synopsis "Major mode for lua")
4394 (description
4395 "This Emacs package provides a mode for @uref{https://www.lua.org/,
4396 Lua programing language}.")
4397 (license license:gpl2+))))
4398
4399 (define-public emacs-ebuild-mode
4400 (package
4401 (name "emacs-ebuild-mode")
4402 (version "1.37")
4403 (source (origin
4404 (method url-fetch)
4405 (uri (string-append
4406 "https://dev.gentoo.org/~ulm/emacs/ebuild-mode"
4407 "-" version ".tar.xz"))
4408 (file-name (string-append name "-" version ".tar.xz"))
4409 (sha256
4410 (base32
4411 "07dzrdjjczkxdfdgi60h4jjkvzi4p0k9rij2wpfp8s03ay3qldpp"))))
4412 (build-system emacs-build-system)
4413 (home-page "https://devmanual.gentoo.org")
4414 (synopsis "Major modes for Gentoo package files")
4415 (description
4416 "This Emacs package provides modes for ebuild, eclass, eblit, GLEP42
4417 news items, openrc and runscripts.")
4418 (license license:gpl2+)))
4419
4420 (define-public emacs-evil
4421 (package
4422 (name "emacs-evil")
4423 (version "1.2.13")
4424 (source
4425 (origin
4426 (method url-fetch)
4427 (uri (string-append "https://github.com/emacs-evil/evil/archive/"
4428 version ".tar.gz"))
4429 (file-name (string-append name "-" version ".tar.gz"))
4430 (sha256
4431 (base32
4432 "1z63zsxmsc6mh74wv6065carwqmgs7b7lz5044s12xvgsjfbwi8h"))))
4433 (build-system emacs-build-system)
4434 (propagated-inputs
4435 `(("emacs-undo-tree" ,emacs-undo-tree)
4436 ("emacs-goto-chg" ,emacs-goto-chg)))
4437 (home-page "https://github.com/emacs-evil/evil")
4438 (synopsis "Extensible Vi layer for Emacs")
4439 (description
4440 "Evil is an extensible vi layer for Emacs. It emulates the
4441 main features of Vim, and provides facilities for writing custom
4442 extensions.")
4443 (license license:gpl3+)))
4444
4445 (define-public emacs-goto-chg
4446 (package
4447 (name "emacs-goto-chg")
4448 (version "1.6")
4449 (source
4450 (origin
4451 (method url-fetch)
4452 ;; There is no versioned source.
4453 (uri "https://www.emacswiki.org/emacs/download/goto-chg.el")
4454 (file-name (string-append "goto-chg-" version ".el"))
4455 (sha256
4456 (base32
4457 "078d6p4br5vips7b9x4v6cy0wxf6m5ij9gpqd4g33bryn22gnpij"))))
4458 (build-system emacs-build-system)
4459 ;; There is no other home page.
4460 (home-page "https://www.emacswiki.org/emacs/goto-chg.el")
4461 (synopsis "Go to the last change in the Emacs buffer")
4462 (description
4463 "This package provides @code{M-x goto-last-change} command that goes to
4464 the point of the most recent edit in the current Emacs buffer. When repeated,
4465 go to the second most recent edit, etc. Negative argument, @kbd{C-u -}, is
4466 used for reverse direction.")
4467 (license license:gpl2+)))
4468
4469 (define-public emacs-monroe
4470 (package
4471 (name "emacs-monroe")
4472 (version "0.3.1")
4473 (source
4474 (origin
4475 (method url-fetch)
4476 (uri (string-append "https://github.com/sanel/monroe/archive/"
4477 version ".tar.gz"))
4478 (file-name (string-append name "-" version ".tar.gz"))
4479 (sha256
4480 (base32
4481 "0icdx8shkd951phlnmcq1vqaxp1l667q5rjscskc5r22aylakh4w"))))
4482 (build-system emacs-build-system)
4483 (home-page "https://github.com/sanel/monroe")
4484 (synopsis "Clojure nREPL client for Emacs")
4485 (description
4486 "Monroe is a nREPL client for Emacs, focused on simplicity and easy
4487 distribution, primarily targeting Clojure users")
4488 (license license:gpl3+)))
4489
4490 (define-public emacs-writegood-mode
4491 (package
4492 (name "emacs-writegood-mode")
4493 (version "2.0.2")
4494 (home-page "https://github.com/bnbeckwith/writegood-mode")
4495 (source (origin
4496 (method git-fetch)
4497 (uri (git-reference
4498 (url home-page)
4499 (commit (string-append "v" version))))
4500 (sha256
4501 (base32
4502 "1nnjn1r669hvvzfycllwap4w04m8rfsk4nzcg8057m1f263kj31b"))
4503 (file-name (string-append name "-checkout"))))
4504 (build-system emacs-build-system)
4505 (synopsis "Polish up poor writing on the fly")
4506 (description
4507 "This minor mode tries to find and highlight problems with your writing
4508 in English as you type. It primarily detects \"weasel words\" and abuse of
4509 passive voice.")
4510 (license license:gpl3+)))
4511
4512 (define-public emacs-neotree
4513 (package
4514 (name "emacs-neotree")
4515 (version "0.5.2")
4516 (home-page "https://github.com/jaypei/emacs-neotree")
4517 (source (origin
4518 (method url-fetch)
4519 (uri (string-append
4520 "https://github.com/jaypei/" name
4521 "/archive/" version ".tar.gz"))
4522 (sha256
4523 (base32
4524 "1zd6dchwyijnf7kgchfcp51gs938l204dk9z6mljrfqf2zy0gp12"))
4525 (file-name (string-append name "-" version ".tar.gz"))))
4526 (build-system emacs-build-system)
4527 (synopsis "Folder tree view for Emacs")
4528 (description "This Emacs package provides a folder tree view.")
4529 (license license:gpl3+)))
4530
4531 (define-public emacs-org
4532 (package
4533 (name "emacs-org")
4534 ;; emacs-org-contrib inherits from this package. Please update its sha256
4535 ;; checksum as well.
4536 (version "9.1.9")
4537 (source (origin
4538 (method url-fetch)
4539 (uri (string-append "http://elpa.gnu.org/packages/org-"
4540 version ".tar"))
4541 (sha256
4542 (base32
4543 "16yr0srfzsrzv2b1f2wjk8gb2pyhsgj2hxbscixirkxqz674c5cl"))))
4544 (build-system emacs-build-system)
4545 (home-page "https://orgmode.org/")
4546 (synopsis "Outline-based notes management and organizer")
4547 (description "Org is an Emacs mode for keeping notes, maintaining TODO
4548 lists, and project planning with a fast and effective plain-text system. It
4549 also is an authoring system with unique support for literate programming and
4550 reproducible research.")
4551 (license license:gpl3+)))
4552
4553 (define-public emacs-org-contrib
4554 (package
4555 (inherit emacs-org)
4556 (name "emacs-org-contrib")
4557 (version "20180327")
4558 (source (origin
4559 (method url-fetch)
4560 (uri (string-append "https://orgmode.org/elpa/org-plus-contrib-"
4561 version ".tar"))
4562 (sha256
4563 (base32
4564 "1y1nn0bxnh9y4a3zrqng8n639j5da5387q2314sr3a8ggy1nb93s"))))
4565 (arguments
4566 `(#:modules ((guix build emacs-build-system)
4567 (guix build utils)
4568 (guix build emacs-utils)
4569 (ice-9 ftw)
4570 (srfi srfi-1))
4571 #:phases
4572 (modify-phases %standard-phases
4573 (add-after 'install 'delete-org-files
4574 (lambda* (#:key inputs outputs #:allow-other-keys)
4575 (let* ((out (assoc-ref outputs "out"))
4576 (org (assoc-ref inputs "emacs-org"))
4577 (contrib-files
4578 (map basename (find-files out)))
4579 (org+contrib-files
4580 (map basename (find-files org)))
4581 (duplicates (lset-intersection
4582 string=? contrib-files org+contrib-files)))
4583 (with-directory-excursion
4584 (string-append
4585 out "/share/emacs/site-lisp/guix.d/org-contrib-" ,version)
4586 (for-each delete-file duplicates))
4587 #t))))))
4588 (propagated-inputs
4589 `(("emacs-org" ,emacs-org)))
4590 (synopsis "Contributed packages to Org mode")
4591 (description "Org is an Emacs mode for keeping notes, maintaining TODO
4592 lists, and project planning with a fast and effective plain-text system.
4593
4594 This package is equivalent to org-plus-contrib, but only includes additional
4595 files that you would find in @file{contrib/} from the git repository.")))
4596
4597 (define-public emacs-flx
4598 (package
4599 (name "emacs-flx")
4600 (version "0.6.1")
4601 (source
4602 (origin
4603 (method url-fetch)
4604 (uri (string-append "https://github.com/lewang/"
4605 "flx/archive/v" version ".tar.gz"))
4606 (sha256
4607 (base32
4608 "0bkcpnf1j4i2fcc2rllwbz62l00sw2mcia6rm5amgwvlkqavmkv6"))
4609 (file-name (string-append name "-" version ".tar.gz"))))
4610 (build-system emacs-build-system)
4611 (home-page "https://github.com/lewang/flx")
4612 (synopsis "Fuzzy matching for Emacs")
4613 (description
4614 "Flx provides fuzzy matching for emacs a la sublime text.
4615 The sorting algorithm is a balance between word beginnings (abbreviation)
4616 and contiguous matches (substring). The longer the substring match,
4617 the higher it scores. This maps well to how we think about matching.
4618 Flx has support for ido (interactively do things) through flx-ido.")
4619 (license license:gpl3+)))
4620
4621 (define-public emacs-cyberpunk-theme
4622 (package
4623 (name "emacs-cyberpunk-theme")
4624 (version "1.19")
4625 (source
4626 (origin
4627 (method url-fetch)
4628 (uri (string-append "https://github.com/n3mo/cyberpunk-theme.el/"
4629 "archive/" version ".tar.gz"))
4630 (sha256
4631 (base32
4632 "05l5fxw1mn5py6mfhxrzyqjq0d8m5m1akfi46vrgh13r414jffvv"))
4633 (file-name (string-append name "-" version ".tar.gz"))))
4634 (build-system emacs-build-system)
4635 (home-page "https://github.com/n3mo/cyberpunk-theme.el")
4636 (synopsis "Cyberpunk theme for emacs built-in color theme support")
4637 (description
4638 "Cyberpunk color theme for the emacs 24+ built-in color theme support
4639 known loosely as deftheme. Many mode-specific customizations are included.")
4640 (license license:gpl3+)))
4641
4642 (define-public emacs-danneskjold-theme
4643 (let* ((commit "8733d2fe8743e8a01826ea6d4430ef376c727e57")
4644 (revision "1"))
4645 (package
4646 (name "emacs-danneskjold-theme")
4647 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
4648 (home-page "https://github.com/rails-to-cosmos/danneskjold-theme")
4649 (source
4650 (origin
4651 (method git-fetch)
4652 (uri (git-reference
4653 (url home-page)
4654 (commit commit)))
4655 (file-name (string-append name "-" version "-checkout"))
4656 (sha256
4657 (base32
4658 "0s6rbsb0y8i8m5b9xm4gw1p1cxsxdqnqxqqb638pygz9f76mbir1"))))
4659 (build-system emacs-build-system)
4660 (arguments
4661 `(#:phases
4662 (modify-phases %standard-phases
4663 (add-after 'unpack 'delete-screenshots
4664 (lambda _
4665 (delete-file-recursively "screenshots") #t)))))
4666 (synopsis "High-contrast Emacs theme")
4667 (description
4668 "@code{danneskjold-theme} is a high-contrast theme for Emacs.")
4669 (license license:gpl3+))))
4670
4671 (define-public emacs-dream-theme
4672 (let* ((commit "107a11d74365046f28a1802a2bdb5e69e4a7488b")
4673 (revision "1"))
4674 (package
4675 (name "emacs-dream-theme")
4676 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
4677 (source
4678 (origin
4679 (method git-fetch)
4680 (uri (git-reference
4681 (url "https://github.com/djcb/dream-theme")
4682 (commit commit)))
4683 (file-name (string-append name "-" version "-checkout"))
4684 (sha256
4685 (base32
4686 "0za18nfkq4xqm35k6006vsixcbmvmxqgma4iw5sw37h8vmcsdylk"))))
4687 (build-system emacs-build-system)
4688 (home-page "https://github.com/djcb/dream-theme")
4689 (synopsis "High-contrast Emacs theme")
4690 (description
4691 "@code{dream-theme} is a dark, clean theme for Emacs. It is inspired
4692 by zenburn, sinburn and similar themes, but slowly diverging from them.")
4693 (license license:gpl3+))))
4694
4695 (define-public emacs-auto-complete
4696 (package
4697 (name "emacs-auto-complete")
4698 (version "1.5.1")
4699 (source
4700 (origin
4701 (method url-fetch)
4702 (uri (string-append "https://github.com/auto-complete/"
4703 "auto-complete/archive/v" version ".tar.gz"))
4704 (sha256
4705 (base32
4706 "1jvq4lj00hwml75lpmlciazy8f3bbg13gffsfnl835p4qd8l7yqv"))
4707 (file-name (string-append name "-" version ".tar.gz"))))
4708 (build-system emacs-build-system)
4709 (propagated-inputs
4710 `(("emacs-popup" ,emacs-popup)))
4711 (home-page "https://github.com/auto-complete/auto-complete")
4712 (synopsis "Intelligent auto-completion extension for Emacs")
4713 (description
4714 "Auto-Complete is an intelligent auto-completion extension for Emacs.
4715 It extends the standard Emacs completion interface and provides an environment
4716 that allows users to concentrate more on their own work. Its features are:
4717 a visual interface, reduce overhead of completion by using statistic method,
4718 extensibility.")
4719 (license license:gpl3+)))
4720
4721 (define-public m17n-db
4722 (package
4723 (name "m17n-db")
4724 (version "1.7.0")
4725 (source
4726 (origin
4727 (method url-fetch)
4728 (uri (string-append "mirror://savannah/m17n/m17n-db-"
4729 version ".tar.gz"))
4730 (sha256
4731 (base32 "1w08hnsbknrcjlzp42c99bgwc9hzsnf5m4apdv0dacql2s09zfm2"))))
4732 (build-system gnu-build-system)
4733 (inputs
4734 `(("gettext" ,gettext-minimal)))
4735 (arguments
4736 `(#:configure-flags
4737 (list (string-append "--with-charmaps="
4738 (assoc-ref %build-inputs "libc")
4739 "/share/i18n/charmaps"))))
4740 ;; With `guix lint' the home-page URI returns a small page saying
4741 ;; that your browser does not handle frames. This triggers the "URI
4742 ;; returns suspiciously small file" warning.
4743 (home-page "https://www.nongnu.org/m17n/")
4744 (synopsis "Multilingual text processing library (database)")
4745 (description "The m17n library realizes multilingualization of
4746 many aspects of applications. The m17n library represents
4747 multilingual text as an object named M-text. M-text is a string with
4748 attributes called text properties, and designed to substitute for
4749 string in C. Text properties carry any information required to input,
4750 display and edit the text.
4751
4752 This package contains the library database.")
4753 (license license:lgpl2.1+)))
4754
4755 (define-public m17n-lib
4756 (package
4757 (name "m17n-lib")
4758 (version "1.7.0")
4759 (source
4760 (origin
4761 (method url-fetch)
4762 (uri (string-append "mirror://savannah/m17n/m17n-lib-"
4763 version ".tar.gz"))
4764 (sha256
4765 (base32 "10yv730i25g1rpzv6q49m6xn4p8fjm7jdwvik2h70sn8w3hm7f4f"))))
4766 (build-system gnu-build-system)
4767 (inputs
4768 `(("fribidi" ,fribidi)
4769 ("gd" ,gd)
4770 ("libotf" ,libotf)
4771 ("libxft" ,libxft)
4772 ("libxml2" ,libxml2)
4773 ("m17n-db" ,m17n-db)))
4774 (arguments
4775 `(#:parallel-build? #f))
4776 ;; With `guix lint' the home-page URI returns a small page saying
4777 ;; that your browser does not handle frames. This triggers the "URI
4778 ;; returns suspiciously small file" warning.
4779 (home-page "https://www.nongnu.org/m17n/")
4780 (synopsis "Multilingual text processing library (runtime)")
4781 (description "The m17n library realizes multilingualization of
4782 many aspects of applications. The m17n library represents
4783 multilingual text as an object named M-text. M-text is a string with
4784 attributes called text properties, and designed to substitute for
4785 string in C. Text properties carry any information required to input,
4786 display and edit the text.
4787
4788 This package contains the library runtime.")
4789 (license license:lgpl2.1+)))
4790
4791 (define-public emacs-nginx-mode
4792 (package
4793 (name "emacs-nginx-mode")
4794 (version "1.1.4")
4795 (source
4796 (origin
4797 (method url-fetch)
4798 (uri (string-append
4799 "https://github.com/ajc/nginx-mode/archive/v"
4800 version ".tar.gz"))
4801 (file-name (string-append name "-" version ".tar.gz"))
4802 (sha256
4803 (base32
4804 "1lvkj07kq0jkskr2f61vqb5rlrbnaz9a76ikq40w6925i2r970rr"))))
4805 (build-system emacs-build-system)
4806 (home-page "https://github.com/ajc/nginx-mode")
4807 (synopsis "Emacs major mode for editing nginx config files")
4808 (description "This package provides an Emacs major mode for
4809 editing nginx config files.")
4810 (license license:gpl2+)))
4811
4812 (define-public emacs-stream
4813 (package
4814 (name "emacs-stream")
4815 (version "2.2.0")
4816 (home-page "https://github.com/NicolasPetton/stream")
4817 (source
4818 (origin
4819 (method url-fetch)
4820 (file-name (string-append name "-" version ".tar.gz"))
4821 (uri (string-append home-page "/archive/"version ".tar.gz"))
4822 (sha256
4823 (base32 "03ql4nqfz5pn55mjly6clhvc3g7x2d28kj7mrlqmigvjbql39xxc"))))
4824 (build-system emacs-build-system)
4825 (synopsis "Implementation of streams for Emacs")
4826 (description "This library provides an implementation of streams for Emacs.
4827 Streams are implemented as delayed evaluation of cons cells.")
4828 (license license:gpl3+)))
4829
4830 (define-public emacs-el-search
4831 (let ((commit "f26277bfbb3fc3fc74beea6592f294c439796bd4")
4832 (revision "1"))
4833 (package
4834 (name "emacs-el-search")
4835 ;; No ufficial release.
4836 (version (string-append "0.0-" revision "." (string-take commit 7)))
4837 (home-page "https://github.com/emacsmirror/el-search")
4838 (source
4839 (origin
4840 (method git-fetch)
4841 (file-name (string-append name "-" version ".tar.gz"))
4842 (uri (git-reference
4843 (commit commit)
4844 (url (string-append home-page ".git"))))
4845 (sha256
4846 (base32 "12xf40h9sb7xxg2r97gsia94q02543mgiiiw46fzh1ac7b7993g6"))))
4847 (build-system emacs-build-system)
4848 (inputs `(("emacs-stream" ,emacs-stream)))
4849 (synopsis "Expression based interactive search for emacs-lisp-mode")
4850 (description "This package provides expression based interactive search
4851 procedures for emacs-lisp-mode.")
4852 (license license:gpl3+))))
4853
4854 (define-public emacs-ht
4855 (package
4856 (name "emacs-ht")
4857 (version "2.1")
4858 (source
4859 (origin
4860 (method url-fetch)
4861 (uri (string-append
4862 "https://github.com/Wilfred/ht.el/archive/"
4863 version ".tar.gz"))
4864 (file-name (string-append name "-" version ".tar.gz"))
4865 (sha256
4866 (base32
4867 "1lpba36kzxcc966fvsbrfpy8ah9gnvay0yk26gbyjil0rggrbqzj"))))
4868 (build-system emacs-build-system)
4869 (propagated-inputs `(("emacs-dash" ,emacs-dash)))
4870 (home-page "https://github.com/Wilfred/ht.el")
4871 (synopsis "Hash table library for Emacs")
4872 (description
4873 "This package simplifies the use of hash tables in elisp. It also
4874 provides functions to convert hash tables from and to alists and plists.")
4875 (license license:gpl3+)))
4876
4877 (define-public emacs-log4e
4878 (package
4879 (name "emacs-log4e")
4880 (version "0.3.0")
4881 (source
4882 (origin
4883 (method url-fetch)
4884 (uri (string-append
4885 "https://github.com/aki2o/log4e/archive/v"
4886 version ".tar.gz"))
4887 (file-name (string-append name "-" version ".tar.gz"))
4888 (sha256
4889 (base32
4890 "0nbdpbw353snda3v19l9hsm6gimppwnpxj18amm350bm81lyim2g"))))
4891 (build-system emacs-build-system)
4892 (arguments
4893 `(#:phases
4894 (modify-phases %standard-phases
4895 (add-after 'unpack 'remove-tests
4896 ;; Guile builder complains about null characters in some
4897 ;; strings of test files. Remove "test" directory (it is not
4898 ;; needed anyway).
4899 (lambda _
4900 (delete-file-recursively "test"))))))
4901 (home-page "https://github.com/aki2o/log4e")
4902 (synopsis "Logging framework for elisp")
4903 (description
4904 "This package provides a logging framework for elisp. It allows
4905 you to deal with multiple log levels.")
4906 (license license:gpl3+)))
4907
4908 (define-public emacs-gntp
4909 (package
4910 (name "emacs-gntp")
4911 (version "0.1")
4912 (source
4913 (origin
4914 (method url-fetch)
4915 (uri (string-append
4916 "https://github.com/tekai/gntp.el/archive/v"
4917 version ".tar.gz"))
4918 (file-name (string-append name "-" version ".tar.gz"))
4919 (sha256
4920 (base32
4921 "16c1dfkia9yhl206bdhjr3b8kfvqcqr38jl5lq8qsyrrzsnmghny"))))
4922 (build-system emacs-build-system)
4923 (home-page "https://github.com/tekai/gntp.el")
4924 (synopsis "Growl Notification Protocol for Emacs")
4925 (description
4926 "This package implements the Growl Notification Protocol GNTP
4927 described at @uref{http://www.growlforwindows.com/gfw/help/gntp.aspx}.
4928 It is incomplete as it only lets you send but not receive
4929 notifications.")
4930 (license license:bsd-3)))
4931
4932 (define-public emacs-alert
4933 (package
4934 (name "emacs-alert")
4935 (version "1.2")
4936 (source
4937 (origin
4938 (method url-fetch)
4939 (uri (string-append
4940 "https://github.com/jwiegley/alert/archive/v"
4941 version ".tar.gz"))
4942 (file-name (string-append name "-" version ".tar.gz"))
4943 (sha256
4944 (base32
4945 "1693kck3k2iz5zhpmxwqyafxm68hr6gzs60lkxd3j1wlp2c9fwyr"))))
4946 (build-system emacs-build-system)
4947 (propagated-inputs
4948 `(("emacs-gntp" ,emacs-gntp)
4949 ("emacs-log4e" ,emacs-log4e)))
4950 (home-page "https://github.com/jwiegley/alert")
4951 (synopsis "Growl-style notification system for Emacs")
4952 (description
4953 "Alert is a Growl-workalike for Emacs which uses a common notification
4954 interface and multiple, selectable \"styles\", whose use is fully
4955 customizable by the user.")
4956 (license license:gpl2+)))
4957
4958 (define-public emacs-mu4e-alert
4959 (package
4960 (name "emacs-mu4e-alert")
4961 (version "1.0")
4962 (source
4963 (origin
4964 (method url-fetch)
4965 (uri (string-append
4966 "https://github.com/iqbalansari/mu4e-alert/archive/v"
4967 version ".tar.gz"))
4968 (file-name (string-append name "-" version ".tar.gz"))
4969 (sha256
4970 (base32
4971 "07qc834qnxn8xi4bw5nawj8g91bmkzw0r0vahkgysp7r9xrf57gj"))))
4972 (build-system emacs-build-system)
4973 (propagated-inputs
4974 `(("emacs-alert" ,emacs-alert)
4975 ("emacs-s" ,emacs-s)
4976 ("emacs-ht" ,emacs-ht)
4977 ("mu" ,mu)))
4978 (home-page "https://github.com/iqbalansari/mu4e-alert")
4979 (synopsis "Desktop notification for mu4e")
4980 (description
4981 "This package provides desktop notifications for mu4e.
4982 Additionally it can display the number of unread emails in the
4983 mode-line.")
4984 (license license:gpl3+)))
4985
4986 (define-public emacs-pretty-mode
4987 (package
4988 (name "emacs-pretty-mode")
4989 (version "2.0.3")
4990 (source
4991 (origin
4992 (method url-fetch)
4993 (uri (string-append "https://github.com/akatov/pretty-mode/"
4994 "archive/" version ".tar.gz"))
4995 (file-name (string-append name "-" version ".tar.gz"))
4996 (sha256
4997 (base32
4998 "1fan7m4vnqs8kpg7r54kx3g7faadkpkf9kzarfv8n57kq8w157pl"))))
4999 (build-system emacs-build-system)
5000 (home-page "https://github.com/akatov/pretty-mode")
5001 (synopsis "Redisplay parts of the buffer as Unicode symbols")
5002 (description
5003 "Emacs minor mode for redisplaying parts of the buffer as pretty symbols.")
5004 (license license:gpl3+)))
5005
5006 (define-public emacs-yasnippet
5007 (package
5008 (name "emacs-yasnippet")
5009 (version "0.12.2")
5010 (source (origin
5011 (method url-fetch)
5012 (uri (string-append "https://github.com/joaotavora/yasnippet/"
5013 "archive/" version ".tar.gz"))
5014 (file-name (string-append name "-" version ".tar.gz"))
5015 (sha256
5016 (base32
5017 "01jabaz0g67bsziayrxgv74px55fx4nlrcl0csl8f1by2102pwc5"))
5018 (modules '((guix build utils)))
5019 (snippet
5020 '(begin
5021 ;; YASnippet expects a "snippets" subdirectory in the same
5022 ;; directory as yasnippet.el, but we don't install it
5023 ;; because it's a git submodule pointing to an external
5024 ;; repository. Adjust `yas-snippet-dirs' to prevent
5025 ;; warnings about a missing directory.
5026 (substitute* "yasnippet.el"
5027 (("^ +'yas-installed-snippets-dir\\)\\)\n")
5028 "))\n"))))))
5029 (build-system emacs-build-system)
5030 (home-page "https://github.com/joaotavora/yasnippet")
5031 (synopsis "Yet another snippet extension for Emacs")
5032 (description
5033 "YASnippet is a template system for Emacs. It allows you to type an
5034 abbreviation and automatically expand it into function templates.")
5035 (license license:gpl3+)))
5036
5037 (define-public emacs-yasnippet-snippets
5038 (let ((commit "885050d34737e2fb36a3e7759d60c09347bd4ce0")
5039 (revision "1"))
5040 (package
5041 (name "emacs-yasnippet-snippets")
5042 (version (string-append "1-" revision "." (string-take commit 8)))
5043 (source
5044 (origin
5045 (method git-fetch)
5046 (uri (git-reference
5047 (url "https://github.com/AndreaCrotti/yasnippet-snippets")
5048 (commit commit)))
5049 (file-name (string-append name "-" version "-checkout"))
5050 (sha256
5051 (base32
5052 "1m935zgglw0iakzrixld5rcjz3wnj84f8wy2mvc3pggjri9l0qr9"))))
5053 (build-system trivial-build-system)
5054 (arguments
5055 `(#:modules ((ice-9 ftw)
5056 (ice-9 regex)
5057 (guix build utils))
5058 #:builder
5059 (begin
5060 (use-modules (ice-9 ftw)
5061 (ice-9 regex)
5062 (guix build utils))
5063 (with-directory-excursion (assoc-ref %build-inputs "source")
5064 (for-each (lambda (dir)
5065 (copy-recursively
5066 dir
5067 (string-append %output
5068 "/share/emacs/yasnippet-snippets/"
5069 dir)))
5070 (scandir "." (lambda (fname)
5071 (and (string-match "-mode$" fname)
5072 (directory-exists? fname)))))))))
5073 (home-page "https://github.com/AndreaCrotti/yasnippet-snippets")
5074 (synopsis "Collection of YASnippet snippets for many languages")
5075 (description
5076 "Provides Andrea Crotti's collection of YASnippet snippets. After installation,
5077 the snippets will be in \"~/.guix-profile/share/emacs/yasnippet-snippets/\".
5078 To make YASnippet aware of these snippets, add the above directory to
5079 @code{yas-snippet-dirs}.")
5080 (license license:expat))))
5081
5082 (define-public emacs-helm-c-yasnippet
5083 (let ((commit "65ca732b510bfc31636708aebcfe4d2d845b59b0")
5084 (revision "1"))
5085 (package
5086 (name "emacs-helm-c-yasnippet")
5087 (version (string-append "0.6.7" "-" revision "."
5088 (string-take commit 7)))
5089 (source (origin
5090 (method git-fetch)
5091 (uri (git-reference
5092 (url "https://github.com/emacs-jp/helm-c-yasnippet")
5093 (commit commit)))
5094 (file-name (string-append name "-" version "-checkout"))
5095 (sha256
5096 (base32
5097 "1cbafjqlzxbg19xfdqsinsh7afq58gkf44rsg1qxfgm8g6zhr7f8"))))
5098 (build-system emacs-build-system)
5099 (propagated-inputs
5100 `(("emacs-helm" ,emacs-helm)
5101 ("emacs-yasnippet" ,emacs-yasnippet)))
5102 (home-page "https://github.com/emacs-jp/helm-c-yasnippet")
5103 (synopsis "Helm integration for Yasnippet")
5104 (description "This Emacs library provides Helm interface for
5105 Yasnippet.")
5106 (license license:gpl2+))))
5107
5108 (define-public emacs-memoize
5109 (package
5110 (name "emacs-memoize")
5111 (version "20130421.b55eab0")
5112 (source
5113 (origin
5114 (method git-fetch)
5115 (uri (git-reference
5116 (url "https://github.com/skeeto/emacs-memoize")
5117 (commit "b55eab0cb6ab05d941e07b8c01f1655c0cf1dd75")))
5118 (file-name (string-append name "-" version ".tar.gz"))
5119 (sha256
5120 (base32
5121 "0fjwlrdm270qcrqffvarw5yhijk656q4lam79ybhaznzj0dq3xpw"))))
5122 (build-system emacs-build-system)
5123 (arguments
5124 `(#:phases
5125 (modify-phases %standard-phases
5126 (add-before 'install 'check
5127 (lambda _
5128 (zero? (system* "emacs" "-batch" "-l" "memoize.el"
5129 "-l" "memoize-test.el"
5130 "-f" "ert-run-tests-batch-and-exit")))))))
5131 (home-page "https://github.com/skeeto/emacs-memoize")
5132 (synopsis "Emacs lisp memoization library")
5133 (description "@code{emacs-memoize} is an Emacs library for
5134 memoizing functions.")
5135 (license license:unlicense)))
5136
5137 (define-public emacs-linum-relative
5138 (package
5139 (name "emacs-linum-relative")
5140 (version "0.5")
5141 (source
5142 (origin
5143 (method url-fetch)
5144 (uri (string-append
5145 "https://github.com/coldnew/linum-relative/archive/"
5146 version ".tar.gz"))
5147 (file-name (string-append name "-" version ".tar.gz"))
5148 (sha256
5149 (base32
5150 "0s4frvr27866lw1rn3jal9wj5rkz9fx4yiszqv7w06azsdgsqksv"))))
5151 (build-system emacs-build-system)
5152 (home-page "https://github.com/coldnew/linum-relative")
5153 (synopsis "Relative line numbering for Emacs")
5154 (description "@code{emacs-linum-relative} displays the relative line
5155 number on the left margin in Emacs.")
5156 (license license:gpl2+)))
5157
5158 (define-public emacs-idle-highlight
5159 (package
5160 (name "emacs-idle-highlight")
5161 (version "1.1.3")
5162 (source
5163 (origin
5164 (method url-fetch)
5165 (uri (string-append
5166 "https://github.com/nonsequitur/idle-highlight-mode/archive/"
5167 version ".tar.gz"))
5168 (file-name (string-append name "-" version ".tar.gz"))
5169 (sha256
5170 (base32
5171 "0kdv10hrgqpskjh0zvpnzwlkn5bccnqxas62gkws6njln57bf8nl"))))
5172 (build-system emacs-build-system)
5173 (home-page "https://www.emacswiki.org/emacs/IdleHighlight")
5174 (synopsis "Highlights all occurrences of the word the point is on")
5175 (description
5176 "This Emacs package provides @code{idle-highlight-mode} that sets
5177 an idle timer to highlight all occurrences in the buffer of the word under
5178 the point.")
5179 (license license:gpl3+)))
5180
5181 (define-public emacs-ox-twbs
5182 (package
5183 (name "emacs-ox-twbs")
5184 (version "1.1.1")
5185 (source
5186 (origin
5187 (method url-fetch)
5188 (uri (string-append
5189 "https://github.com/marsmining/ox-twbs/archive/v"
5190 version ".tar.gz"))
5191 (file-name (string-append name "-" version ".tar.gz"))
5192 (sha256
5193 (base32
5194 "1zaq8dczq5wijjk36114k2x3hfrqig3lyx6djril6wyk67vczyqs"))))
5195 (build-system emacs-build-system)
5196 (home-page "https://github.com/marsmining/ox-twbs")
5197 (synopsis "Export org-mode docs as HTML compatible with Twitter Bootstrap")
5198 (description
5199 "This Emacs package outputs your org-mode docs with a simple, clean and
5200 modern look. It implements a new HTML back-end for exporting org-mode docs as
5201 HTML compatible with Twitter Bootstrap. By default, HTML is exported with
5202 jQuery and Bootstrap resources included via osscdn.")
5203 (license license:gpl3+)))
5204
5205 (define-public emacs-highlight-sexp
5206 (package
5207 (name "emacs-highlight-sexp")
5208 (version "1.0")
5209 (source
5210 (origin
5211 (method url-fetch)
5212 (uri (string-append
5213 "https://github.com/daimrod/highlight-sexp/archive/v"
5214 version ".tar.gz"))
5215 (file-name (string-append name "-" version ".tar.gz"))
5216 (sha256
5217 (base32
5218 "0jwx87qkln1rg9wmv4qkgkml935fh2pkgrg5x4ca6n5dgb4q6rj1"))))
5219 (build-system emacs-build-system)
5220 (home-page "https://github.com/daimrod/highlight-sexp")
5221 (synopsis "Minor mode that highlights the s-exp at the current position")
5222 (description
5223 "This Emacs package highlights the s-exp at the current position.")
5224 (license license:gpl3+)))
5225
5226 (define-public emacs-highlight-stages
5227 (let ((commit "29cbc5b78261916da042ddb107420083da49b271")
5228 (revision "1"))
5229 (package
5230 (name "emacs-highlight-stages")
5231 (version (string-append "1.1.0" "-" revision "." (string-take commit 7)))
5232 (source
5233 (origin
5234 (method git-fetch)
5235 (uri (git-reference
5236 (url "https://github.com/zk-phi/highlight-stages.git")
5237 (commit commit)))
5238 (file-name (string-append name "-" version "-checkout"))
5239 (sha256
5240 (base32
5241 "0r6nbcrr0dqpgm8dir8ahzjy7rw4nrac48byamzrq96r7ajlxlv0"))
5242 (patches
5243 (search-patches "emacs-highlight-stages-add-gexp.patch"))))
5244 (build-system emacs-build-system)
5245 (home-page "https://github.com/wigust/highlight-stages")
5246 (synopsis "Minor mode that highlights (quasi-quoted) expressions")
5247 (description "@code{highlight-stages} provides an Emacs minor mode that
5248 highlights quasi-quoted expressions.")
5249 (license license:gpl3+))))
5250
5251 (define-public emacspeak
5252 (package
5253 (name "emacspeak")
5254 (version "47.0")
5255 (source
5256 (origin
5257 (method url-fetch)
5258 (uri (string-append
5259 "https://github.com/tvraman/emacspeak/releases/download/"
5260 version "/emacspeak-" version ".tar.bz2"))
5261 (sha256
5262 (base32
5263 "0xbcc266x752y68s3g096m161irzvsqym3axzqn8rb276a8x55n7"))))
5264 (build-system gnu-build-system)
5265 (arguments
5266 '(#:make-flags (list (string-append "prefix="
5267 (assoc-ref %outputs "out")))
5268 #:phases
5269 (modify-phases %standard-phases
5270 (replace 'configure
5271 (lambda _
5272 ;; Configure Emacspeak according to etc/install.org.
5273 (setenv "SHELL" (which "sh"))
5274 (zero? (system* "make" "config"))))
5275 (add-after 'build 'build-espeak
5276 (lambda _
5277 (zero? (system* "make" "espeak"))))
5278 (replace 'install
5279 (lambda* (#:key outputs #:allow-other-keys)
5280 (let* ((out (assoc-ref outputs "out"))
5281 (bin (string-append out "/bin"))
5282 (lisp (string-append out "/share/emacs/site-lisp/emacspeak"))
5283 (info (string-append out "/share/info")))
5284 ;; According to etc/install.org, the Emacspeak directory should
5285 ;; be copied to its installation destination.
5286 (for-each
5287 (lambda (file)
5288 (copy-recursively file (string-append lisp "/" file)))
5289 '("etc" "info" "lisp" "media" "servers" "sounds" "stumpwm"
5290 "xsl"))
5291 ;; Make sure emacspeak is loaded from the correct directory.
5292 (substitute* "etc/emacspeak.sh"
5293 (("exec emacs.*$")
5294 (string-append "exec emacs -l " lisp
5295 "/lisp/emacspeak-setup.el $CL_ALL")))
5296 ;; Install the convenient startup script.
5297 (mkdir-p bin)
5298 (copy-file "etc/emacspeak.sh" (string-append bin "/emacspeak")))
5299 #t))
5300 (add-after 'install 'wrap-program
5301 (lambda* (#:key inputs outputs #:allow-other-keys)
5302 (let* ((out (assoc-ref outputs "out"))
5303 (emacspeak (string-append out "/bin/emacspeak"))
5304 (espeak (string-append (assoc-ref inputs "espeak")
5305 "/bin/espeak")))
5306 ;; The environment variable DTK_PROGRAM tells emacspeak what
5307 ;; program to use for speech.
5308 (wrap-program emacspeak
5309 `("DTK_PROGRAM" ":" prefix (,espeak)))
5310 #t))))
5311 #:tests? #f)) ; no check target
5312 (inputs
5313 `(("espeak" ,espeak)
5314 ("tcl" ,tcl)
5315 ("tclx" ,tclx)))
5316 (native-inputs `(("emacs" ,emacs-minimal)))
5317 (home-page "http://emacspeak.sourceforge.net")
5318 (synopsis "Audio desktop interface for Emacs")
5319 (description
5320 "Emacspeak is a speech interface that allows visually impaired users to
5321 interact independently and efficiently with the computer. Audio formatting
5322 --a technique pioneered by AsTeR-- and full support for W3C's Aural CSS (ACSS)
5323 allows Emacspeak to produce rich aural presentations of electronic information.
5324 By seamlessly blending all aspects of the Internet such as Web-surfing and
5325 messaging, Emacspeak speech-enables local and remote information via a
5326 consistent and well-integrated user interface.")
5327 (license license:gpl2+)))
5328
5329 (define-public emacs-adaptive-wrap
5330 (package
5331 (name "emacs-adaptive-wrap")
5332 (version "0.5.1")
5333 (source (origin
5334 (method url-fetch)
5335 (uri (string-append
5336 "http://elpa.gnu.org/packages/adaptive-wrap-"
5337 version ".el"))
5338 (sha256
5339 (base32
5340 "0qi7gjprcpywk2daivnlavwsx53hl5wcqvpxbwinvigg42vxh3ll"))))
5341 (build-system emacs-build-system)
5342 (home-page "http://elpa.gnu.org/packages/adaptive-wrap.html")
5343 (synopsis "Smart line-wrapping with wrap-prefix")
5344 (description
5345 "This Emacs package provides the @code{adaptive-wrap-prefix-mode}
5346 minor mode which sets the wrap-prefix property on the fly so that
5347 single-long-line paragraphs get word-wrapped in a way similar to what
5348 you'd get with @kbd{M-q} using @code{adaptive-fill-mode}, but without
5349 actually changing the buffer's text.")
5350 (license license:gpl3+)))
5351
5352 (define-public emacs-diff-hl
5353 (package
5354 (name "emacs-diff-hl")
5355 (version "1.8.4")
5356 (source
5357 (origin
5358 (method url-fetch)
5359 (uri (string-append "http://elpa.gnu.org/packages/diff-hl-"
5360 version ".tar"))
5361 (sha256
5362 (base32
5363 "0axhidc3cym7a2x4rpxf4745qss9s9ajyg4s9h5b4zn7v7fyp71n"))))
5364 (build-system emacs-build-system)
5365 (home-page "https://github.com/dgutov/diff-hl")
5366 (synopsis
5367 "Highlight uncommitted changes using VC")
5368 (description
5369 "@code{diff-hl-mode} highlights uncommitted changes on the side of the
5370 window (using the fringe, by default), allows you to jump between
5371 the hunks and revert them selectively.")
5372 (license license:gpl3+)))
5373
5374 (define-public emacs-diminish
5375 (package
5376 (name "emacs-diminish")
5377 (version "0.45")
5378 (source
5379 (origin
5380 (method url-fetch)
5381 (uri (string-append
5382 "https://github.com/myrjola/diminish.el/archive/v"
5383 version ".tar.gz"))
5384 (file-name (string-append name "-" version ".tar.gz"))
5385 (sha256
5386 (base32
5387 "0i3629sv5cfrrb00hcnmaqzgs8mk36yasc1ax3ry1ga09nr6rkj9"))))
5388 (build-system emacs-build-system)
5389 (home-page "https://github.com/myrjola/diminish.el")
5390 (synopsis "Diminish minor modes with no modeline display")
5391 (description "@code{emacs-diminish} implements hiding or
5392 abbreviation of the mode line displays (lighters) of minor modes.")
5393 (license license:gpl2+)))
5394
5395 (define-public emacs-use-package
5396 (package
5397 (name "emacs-use-package")
5398 (version "2.3")
5399 (source
5400 (origin
5401 (method url-fetch)
5402 (uri (string-append
5403 "https://github.com/jwiegley/use-package/archive/"
5404 version ".tar.gz"))
5405 (file-name (string-append name "-" version ".tar.gz"))
5406 (sha256
5407 (base32
5408 "0x4h136jb3imyli6zsh7dyzjrra6pv0v6b0yk94jdng3rdfcmsf5"))))
5409 (build-system emacs-build-system)
5410 (propagated-inputs
5411 `(("emacs-diminish" ,emacs-diminish)))
5412 (arguments
5413 `(#:phases
5414 (modify-phases %standard-phases
5415 (add-before 'install 'check
5416 (lambda _
5417 (zero? (system* "emacs" "--batch" "-L" "."
5418 "-l" "use-package-tests.el"
5419 "-f" "ert-run-tests-batch-and-exit"))
5420 ;; Tests fail in this release, but have been fixed in
5421 ;; upstream commit 7956d40eed57d6c06bef36ebc174cf57d934e30d
5422 #t)))))
5423 (home-page "https://github.com/jwiegley/use-package")
5424 (synopsis "Declaration for simplifying your .emacs")
5425 (description "The use-package macro allows you to isolate package
5426 configuration in your @file{.emacs} file in a way that is both
5427 performance-oriented and tidy.")
5428 (license license:gpl2+)))
5429
5430 (define-public emacs-strace-mode
5431 (let* ((commit "6a69b4b06db6797af56f33eda5cb28af94e59f11")
5432 (revision "1"))
5433 (package
5434 (name "emacs-strace-mode")
5435 (version (string-append "0.0.2-" revision "." (string-take commit 7)))
5436 (source (origin
5437 (method git-fetch)
5438 (uri (git-reference
5439 (url "https://github.com/pkmoore/strace-mode")
5440 (commit commit)))
5441 (file-name (string-append name "-" version "-checkout"))
5442 (sha256
5443 (base32
5444 "1lbk2kzdznf2bkfazizfbimaxxzfzv00lrz1ran9dc2zqbc0bj9f"))))
5445 (build-system emacs-build-system)
5446 (home-page "https://github.com/pkmoore/strace-mode")
5447 (synopsis "Emacs major mode to highlight strace outputs")
5448 (description "@code{emacs-strace-mode} provides an Emacs major mode
5449 highlighting strace outputs.")
5450 (license license:gpl3+))))
5451
5452 (define-public emacs-default-encrypt
5453 (package
5454 (name "emacs-default-encrypt")
5455 (version "4.3")
5456 (source
5457 (origin
5458 (method url-fetch)
5459 (uri (string-append
5460 "https://www.informationelle-selbstbestimmung-im-internet.de"
5461 "/emacs/jl-encrypt" version "/jl-encrypt.el"))
5462 (file-name (string-append "jl-encrypt-" version ".el"))
5463 (sha256
5464 (base32
5465 "16i3rlfp3jxlqvndn8idylhmczync3gwmy8a019v29vyr48rnnr0"))))
5466 (build-system emacs-build-system)
5467 (home-page "https://www.informationelle-selbstbestimmung-im-internet.de/Emacs.html")
5468 (synopsis "Automatically encrypt or sign Gnus messages in Emacs")
5469 (description
5470 "DefaultEncrypt is designed to be used with Gnus in Emacs. It
5471 automatically encrypts messages that you send (e.g., email) when public keys
5472 for all recipients are available, and it protects you from accidentally
5473 sending un-encrypted messages. It can also be configured to automatically
5474 sign messages that you send. For details and instructions on how to use
5475 DefaultEncrypt, please refer to the home page or read the comments in the
5476 source file, @file{jl-encrypt.el}.")
5477 (license license:gpl3+)))
5478
5479 (define-public emacs-htmlize
5480 (package
5481 (name "emacs-htmlize")
5482 (version "1.51")
5483 (source
5484 (origin
5485 (method url-fetch)
5486 (uri (string-append
5487 "https://github.com/hniksic/emacs-htmlize/archive/release/"
5488 version ".tar.gz"))
5489 (file-name (string-append name "-" version ".tar.gz"))
5490 (sha256
5491 (base32
5492 "1fy1lybzrxl8a8r88f6p19nz8ygmvcxhxbnymkxh7jqaz25viwld"))))
5493 (build-system emacs-build-system)
5494 (home-page "https://github.com/hniksic/emacs-htmlize")
5495 (synopsis "Convert buffer text and decorations to HTML")
5496 (description "@code{emacs-htmlize} converts the buffer text and
5497 the associated decorations to HTML. Output to CSS, inline CSS and
5498 fonts is supported.")
5499 (license license:gpl2+)))
5500
5501 (define-public emacs-xmlgen
5502 (package
5503 (name "emacs-xmlgen")
5504 (version "0.5")
5505 (source
5506 (origin
5507 (method url-fetch)
5508 (uri (string-append
5509 "https://github.com/philjackson/xmlgen/archive/"
5510 version ".tar.gz"))
5511 (file-name (string-append name "-" version ".tar.gz"))
5512 (sha256
5513 (base32
5514 "0zay490vjby3f7455r0vydmjg7q1gwc78hilpfb0rg4gwz224z8r"))))
5515 (build-system emacs-build-system)
5516 (arguments
5517 `(#:phases
5518 (modify-phases %standard-phases
5519 (add-before 'install 'check
5520 (lambda _
5521 (zero? (system* "emacs" "--batch" "-L" "."
5522 "-l" "xmlgen-test.el"
5523 "-f" "ert-run-tests-batch-and-exit")))))))
5524 (home-page "https://github.com/philjackson/xmlgen")
5525 (synopsis "S-expression to XML domain specific language (DSL) in
5526 Emacs Lisp")
5527 (description "@code{emacs-xmlgen} provides S-expression to XML
5528 conversion for Emacs Lisp.")
5529 (license license:gpl2+)))
5530
5531 (define-public emacs-cdlatex
5532 (package
5533 (name "emacs-cdlatex")
5534 (version "4.7")
5535 (source
5536 (origin
5537 (method url-fetch)
5538 (uri (string-append
5539 "https://github.com/cdominik/cdlatex/archive/"
5540 version ".tar.gz"))
5541 (file-name (string-append name "-" version ".tar.gz"))
5542 (sha256
5543 (base32
5544 "0pivapphmykc6vhvpx7hdyl55ls37vc4jcrxpvs4yk7jzcmwa9xp"))))
5545 (build-system emacs-build-system)
5546 (propagated-inputs
5547 `(("emacs-auctex" ,emacs-auctex)))
5548 (home-page "https://github.com/cdominik/cdlatex")
5549 (synopsis "Fast Emacs input methods for LaTeX environments and
5550 math")
5551 (description "CDLaTeX is an Emacs minor mode supporting fast
5552 insertion of environment templates and math in LaTeX. Similar
5553 commands are also offered as part of the AUCTeX package, but it is not
5554 the same - CDLaTeX focuses on speediness for inserting LaTeX
5555 constructs.")
5556 (license license:gpl3+)))
5557
5558 (define-public emacs-cnfonts
5559 (package
5560 (name "emacs-cnfonts")
5561 (version "0.9.1")
5562 (source (origin
5563 (method url-fetch)
5564 (uri (string-append
5565 "https://github.com/tumashu/cnfonts/archive/v"
5566 version ".tar.gz"))
5567 (file-name (string-append name "-" version ".tar.gz"))
5568 (sha256
5569 (base32
5570 "1l6cgcvc6md1zq97ccczankpyi0k4vjx6apflny6kjq3p33lyhf4"))))
5571 (build-system emacs-build-system)
5572 (home-page "https://github.com/tumashu/cnfonts")
5573 (synopsis "Emacs Chinese fonts setup tool")
5574 (description "cnfonts is a Chinese fonts setup tool, allowing for easy
5575 configuration of Chinese fonts.")
5576 (license license:gpl2+)))
5577
5578 (define-public emacs-php-mode
5579 (package
5580 (name "emacs-php-mode")
5581 (version "20171225.342")
5582 (source (origin
5583 (method url-fetch)
5584 (uri (string-append
5585 "https://melpa.org/packages/php-mode-"
5586 version ".tar"))
5587 (sha256
5588 (base32
5589 "1zz682f34v4wsm2dyj1gnrnvsrqdq1cy7j8p6cvc398w2fziyg3q"))))
5590 (build-system emacs-build-system)
5591 (home-page "https://github.com/ejmr/php-mode")
5592 (synopsis "Major mode for editing PHP code")
5593 (description "@code{php-mode} is a major mode for editing PHP source
5594 code. It's an extension of C mode; thus it inherits all C mode's navigation
5595 functionality. But it colors according to the PHP grammar and indents
5596 according to the PEAR coding guidelines. It also includes a couple handy
5597 IDE-type features such as documentation search and a source and class
5598 browser.")
5599 (license license:gpl3+)))
5600
5601 (define-public emacs-pos-tip
5602 (package
5603 (name "emacs-pos-tip")
5604 (version "0.4.6")
5605 (source (origin
5606 (method url-fetch)
5607 (uri (string-append
5608 "https://github.com/pitkali/pos-tip/archive/"
5609 version ".tar.gz"))
5610 (file-name (string-append name "-" version ".tar.gz"))
5611 (sha256
5612 (base32
5613 "12jqfy26vjk7lq0aa8yn8zqj8c85fkvx7y9prj0pcn4wqiz2ad2r"))))
5614 (build-system emacs-build-system)
5615 ;; The following functions and variables needed by emacs-pos-tip are
5616 ;; not included in emacs-minimal:
5617 ;; x-display-pixel-width, x-display-pixel-height, x-show-tip
5618 (arguments `(#:emacs ,emacs))
5619 (home-page "https://github.com/pitkali/pos-tip")
5620 (synopsis "Show tooltip at point")
5621 (description "The standard library tooltip.el provides a function for
5622 displaying a tooltip at the mouse position. However, locating a tooltip at an
5623 arbitrary buffer position in a window is not easy. Pos-tip provides such a
5624 function to be used by other frontend programs.")
5625 (license license:gpl2+)))
5626
5627 (define-public emacs-pyim-basedict
5628 (package
5629 (name "emacs-pyim-basedict")
5630 (version "0.3.1")
5631 (source (origin
5632 (method url-fetch)
5633 (uri (string-append
5634 "https://github.com/tumashu/pyim-basedict/archive/v"
5635 version ".tar.gz"))
5636 (file-name (string-append name "-" version ".tar.gz"))
5637 (sha256
5638 (base32
5639 "0nfgxviavkgrpyfsw60xsws4fk51fcmgl8fp6zf4ibqjjbp53n3n"))))
5640 (build-system emacs-build-system)
5641 (home-page "https://github.com/tumashu/pyim-basedict")
5642 (synopsis "Input method dictionary of pyim")
5643 (description "Pyim-basedict is the default pinyin input method dictionary,
5644 containing words from the rime project.")
5645 (license license:gpl2+)))
5646
5647 (define-public emacs-pyim
5648 (package
5649 (name "emacs-pyim")
5650 (version "1.6.4")
5651 (source (origin
5652 (method url-fetch)
5653 (uri (string-append
5654 "https://github.com/tumashu/pyim/archive/v"
5655 version ".tar.gz"))
5656 (file-name (string-append name "-" version ".tar.gz"))
5657 (sha256
5658 (base32
5659 "0hfg8q9hcjifvnlghw2g94dfxfirms2psq2ghqb28fhkf0lks13r"))))
5660 (build-system emacs-build-system)
5661 (propagated-inputs
5662 `(("emacs-async" ,emacs-async)
5663 ("emacs-pyim-basedict" ,emacs-pyim-basedict)
5664 ("emacs-popup" ,emacs-popup)
5665 ("emacs-pos-tip" ,emacs-pos-tip)))
5666 (home-page "https://github.com/tumashu/pyim")
5667 (synopsis "Chinese input method")
5668 (description "Chinese input method which supports quanpin, shuangpin, wubi
5669 and cangjie.")
5670 (license license:gpl2+)))
5671
5672 (define-public emacs-el2org
5673 (package
5674 (name "emacs-el2org")
5675 (version "0.6.0")
5676 (source (origin
5677 (method url-fetch)
5678 (uri (string-append
5679 "https://github.com/tumashu/el2org/archive/v"
5680 version ".tar.gz"))
5681 (file-name (string-append name "-" version ".tar.gz"))
5682 (sha256
5683 (base32
5684 "0gd3km1swwvg2w0kdi7370f54wgrflxn63gjgssfjc1iyc9sbqwq"))))
5685 (build-system emacs-build-system)
5686 (home-page "https://github.com/tumashu/el2org")
5687 (synopsis "Convert Emacs-lisp file to org file")
5688 (description "El2org is a simple tool, which can convert Emacs-lisp file
5689 to org file, you can use this tool to write orgify commentary.")
5690 (license license:gpl2+)))
5691
5692 (define-public emacs-mustache
5693 (package
5694 (name "emacs-mustache")
5695 (version "0.23")
5696 (source (origin
5697 (method url-fetch)
5698 (uri (string-append
5699 "https://github.com/Wilfred/mustache.el/archive/"
5700 version ".tar.gz"))
5701 (file-name (string-append name "-" version ".tar.gz"))
5702 (sha256
5703 (base32
5704 "0k9lcgil7kykkv1ylrgwy1g13ldjjmgi2cwmysgyb2vlj3jbwpdj"))))
5705 (build-system emacs-build-system)
5706 (propagated-inputs
5707 `(("emacs-dash" ,emacs-dash)
5708 ("emacs-ht" ,emacs-ht)
5709 ("emacs-s" ,emacs-s)))
5710 (home-page "https://github.com/Wilfred/mustache.el")
5711 (synopsis "Mustache templating library for Emacs")
5712 (description "Mustache templating library for Emacs, mustache is
5713 a simple web template system, which is described as a logic-less system
5714 because it lacks any explicit control flow statements, both looping and
5715 conditional evaluation can be achieved using section tags processing lists
5716 and lambdas.")
5717 (license license:gpl3+)))
5718
5719 (define-public emacs-org2web
5720 (package
5721 (name "emacs-org2web")
5722 (version "0.9.1")
5723 (source (origin
5724 (method url-fetch)
5725 (uri (string-append
5726 "https://github.com/tumashu/org2web/archive/v"
5727 version ".tar.gz"))
5728 (file-name (string-append name "-" version ".tar.gz"))
5729 (sha256
5730 (base32
5731 "1c0ixcphlhp4c4qdiwq40bc3yp1gp1llp8pxrk4s7ny9n68s52zp"))))
5732 (build-system emacs-build-system)
5733 (propagated-inputs
5734 `(("emacs-dash" ,emacs-dash)
5735 ("emacs-el2org" ,emacs-el2org)
5736 ("emacs-ht" ,emacs-ht)
5737 ("emacs-mustache" ,emacs-mustache)
5738 ("emacs-simple-httpd" ,emacs-simple-httpd)))
5739 (home-page "https://github.com/tumashu/org2web")
5740 (synopsis "Static site generator based on org-mode ")
5741 (description "Org2web is a static site generator based on org-mode,
5742 which code derived from Kelvin H's org-page.")
5743 (license license:gpl2+)))
5744
5745 (define-public emacs-xelb
5746 (package
5747 (name "emacs-xelb")
5748 (version "0.14")
5749 (source (origin
5750 (method url-fetch)
5751 (uri (string-append "https://elpa.gnu.org/packages/xelb-"
5752 version ".tar"))
5753 (sha256
5754 (base32
5755 "09flnbjy9ck784kprz036rwg9qk45hpv0w5hz3pz3zhwyk57fv74"))))
5756 (build-system emacs-build-system)
5757 ;; The following functions and variables needed by emacs-xelb are
5758 ;; not included in emacs-minimal:
5759 ;; x-display-screens, x-keysym-table, x-alt-keysym, x-meta-keysym
5760 ;; x-hyper-keysym, x-super-keysym, libxml-parse-xml-region
5761 ;; x-display-pixel-width, x-display-pixel-height
5762 (arguments
5763 `(#:emacs ,emacs
5764 #:phases
5765 (modify-phases %standard-phases
5766 (add-after 'unpack 'regenerate-el-files
5767 (lambda* (#:key inputs #:allow-other-keys)
5768 (zero? (system* "make"
5769 (string-append "PROTO_PATH="
5770 (assoc-ref inputs "xcb-proto")
5771 "/share/xcb")
5772 (string-append "EMACS_BIN="
5773 (assoc-ref inputs "emacs")
5774 "/bin/emacs -Q"))))))))
5775 (native-inputs `(("xcb-proto" ,xcb-proto)))
5776 (home-page "https://github.com/ch11ng/xelb")
5777 (synopsis "X protocol Emacs Lisp binding")
5778 (description "@code{emacs-xelb} is a pure Emacs Lisp implementation of the
5779 X11 protocol based on the XML description files from the XCB project. It
5780 features an object-oriented API and permits a certain degree of concurrency.
5781 It should enable you to implement low-level X11 applications.")
5782 (license license:gpl3+)))
5783
5784 (define-public emacs-exwm
5785 (package
5786 (name "emacs-exwm")
5787 (version "0.18")
5788 (synopsis "Emacs X window manager")
5789 (source (origin
5790 (method url-fetch)
5791 (uri (string-append "https://elpa.gnu.org/packages/exwm-"
5792 version ".tar"))
5793 (sha256
5794 (base32
5795 "1shz5bf4v4gg3arjaaldics5qkg3aiiaf3ngys8lb6qyxhcpvh6q"))))
5796 (build-system emacs-build-system)
5797 (propagated-inputs
5798 `(("emacs-xelb" ,emacs-xelb)))
5799 (inputs
5800 `(("xhost" ,xhost)
5801 ("dbus" ,dbus)))
5802 ;; The following functions and variables needed by emacs-exwm are
5803 ;; not included in emacs-minimal:
5804 ;; scroll-bar-mode, fringe-mode
5805 ;; x-display-pixel-width, x-display-pixel-height
5806 (arguments
5807 `(#:emacs ,emacs
5808 #:phases
5809 (modify-phases %standard-phases
5810 (add-after 'build 'install-xsession
5811 (lambda* (#:key inputs outputs #:allow-other-keys)
5812 (let* ((out (assoc-ref outputs "out"))
5813 (xsessions (string-append out "/share/xsessions"))
5814 (bin (string-append out "/bin"))
5815 (exwm-executable (string-append bin "/exwm")))
5816 ;; Add a .desktop file to xsessions
5817 (mkdir-p xsessions)
5818 (mkdir-p bin)
5819 (with-output-to-file
5820 (string-append xsessions "/exwm.desktop")
5821 (lambda _
5822 (format #t "[Desktop Entry]~@
5823 Name=~a~@
5824 Comment=~a~@
5825 Exec=~a~@
5826 TryExec=~@*~a~@
5827 Type=Application~%" ,name ,synopsis exwm-executable)))
5828 ;; Add a shell wrapper to bin
5829 (with-output-to-file exwm-executable
5830 (lambda _
5831 (format #t "#!~a ~@
5832 ~a +SI:localuser:$USER ~@
5833 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
5834 (string-append (assoc-ref inputs "bash") "/bin/sh")
5835 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
5836 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
5837 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
5838 '(cond
5839 ((file-exists-p "~/.exwm")
5840 (load-file "~/.exwm"))
5841 ((not (featurep 'exwm))
5842 (require 'exwm)
5843 (require 'exwm-config)
5844 (exwm-config-default)
5845 (message (concat "exwm configuration not found. "
5846 "Falling back to default configuration...")))))))
5847 (chmod exwm-executable #o555)
5848 #t))))))
5849 (home-page "https://github.com/ch11ng/exwm")
5850 (description "EXWM is a full-featured tiling X window manager for Emacs
5851 built on top of XELB.")
5852 (license license:gpl3+)))
5853
5854 (define-public emacs-switch-window
5855 (package
5856 (name "emacs-switch-window")
5857 (version "1.5.1")
5858 (source (origin
5859 (method url-fetch)
5860 (uri (string-append
5861 "https://github.com/dimitri/switch-window/archive/v"
5862 version ".tar.gz"))
5863 (file-name (string-append name "-" version ".tar.gz"))
5864 (sha256
5865 (base32
5866 "07f99apxscwvsp2bjxsbi462c433kcglrjh6xl0gyafs1nvvvnd8"))))
5867 (build-system emacs-build-system)
5868 (home-page "https://github.com/dimitri/switch-window")
5869 (synopsis "Emacs window switch tool")
5870 (description "Switch-window is an emacs window switch tool, which
5871 offer a visual way to choose a window to switch to, delete, split or
5872 other operations.")
5873 (license license:wtfpl2)))
5874
5875 (define-public emacs-exwm-x
5876 (package
5877 (name "emacs-exwm-x")
5878 (version "1.8.1")
5879 (synopsis "Derivative window manager based on EXWM")
5880 (source (origin
5881 (method url-fetch)
5882 (uri (string-append
5883 "https://github.com/tumashu/exwm-x/archive/v"
5884 version ".tar.gz"))
5885 (file-name (string-append name "-" version ".tar.gz"))
5886 (sha256
5887 (base32
5888 "0ali1100aacq4zbvcck80h51pvw204jlxhn4aikkqq4ngbx03kkr"))))
5889 (build-system emacs-build-system)
5890 (propagated-inputs
5891 `(("emacs-exwm" ,emacs-exwm)
5892 ("emacs-switch-window" ,emacs-switch-window)
5893 ("emacs-ivy" ,emacs-ivy)
5894 ("emacs-use-package" ,emacs-use-package)))
5895 (inputs
5896 `(("xhost" ,xhost)
5897 ("dbus" ,dbus)))
5898 ;; Need emacs instead of emacs-minimal,
5899 ;; for emacs's bin path will be inserted into bin/exwm-x file.
5900 (arguments
5901 `(#:emacs ,emacs
5902 #:phases
5903 (modify-phases %standard-phases
5904 (add-after 'build 'install-xsession
5905 (lambda* (#:key inputs outputs #:allow-other-keys)
5906 (let* ((out (assoc-ref outputs "out"))
5907 (xsessions (string-append out "/share/xsessions"))
5908 (bin (string-append out "/bin"))
5909 (exwm-executable (string-append bin "/exwm-x")))
5910 ;; Add a .desktop file to xsessions
5911 (mkdir-p xsessions)
5912 (mkdir-p bin)
5913 (with-output-to-file
5914 (string-append xsessions "/exwm-x.desktop")
5915 (lambda _
5916 (format #t "[Desktop Entry]~@
5917 Name=~a~@
5918 Comment=~a~@
5919 Exec=~a~@
5920 TryExec=~@*~a~@
5921 Type=Application~%" ,name ,synopsis exwm-executable)))
5922 ;; Add a shell wrapper to bin
5923 (with-output-to-file exwm-executable
5924 (lambda _
5925 (format #t "#!~a ~@
5926 ~a +SI:localuser:$USER ~@
5927 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
5928 (string-append (assoc-ref inputs "bash") "/bin/sh")
5929 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
5930 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
5931 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
5932 '(require 'exwmx-loader))))
5933 (chmod exwm-executable #o555)
5934 #t))))))
5935 (home-page "https://github.com/tumashu/exwm-x")
5936 (description "EXWM-X is a derivative window manager based on EXWM, with focus
5937 on mouse-control.")
5938 (license license:gpl3+)))
5939
5940 (define-public emacs-gnuplot
5941 (package
5942 (name "emacs-gnuplot")
5943 (version "0.7.0")
5944 (source
5945 (origin
5946 (method url-fetch)
5947 (uri (string-append
5948 "https://github.com/bruceravel/gnuplot-mode/archive/"
5949 version ".tar.gz"))
5950 (file-name (string-append name "-" version ".tar.gz"))
5951 (sha256
5952 (base32
5953 "0glzymrn138lwig7p4cj17x4if5jisr6l4g6wcbxisqkqgc1h01i"))))
5954 (build-system gnu-build-system)
5955 (native-inputs `(("emacs" ,emacs-minimal)))
5956 (arguments
5957 (let ((elisp-dir (string-append "/share/emacs/site-lisp/guix.d"
5958 "/gnuplot-" version)))
5959 `(#:modules ((guix build gnu-build-system)
5960 (guix build utils)
5961 (guix build emacs-utils))
5962 #:imported-modules (,@%gnu-build-system-modules
5963 (guix build emacs-utils))
5964 #:configure-flags
5965 (list (string-append "EMACS=" (assoc-ref %build-inputs "emacs")
5966 "/bin/emacs")
5967 (string-append "--with-lispdir=" %output ,elisp-dir))
5968 #:phases
5969 (modify-phases %standard-phases
5970 (add-after 'install 'generate-autoloads
5971 (lambda* (#:key outputs #:allow-other-keys)
5972 (emacs-generate-autoloads
5973 "gnuplot"
5974 (string-append (assoc-ref outputs "out") ,elisp-dir))
5975 #t))))))
5976 (home-page "https://github.com/bruceravel/gnuplot-mode")
5977 (synopsis "Emacs major mode for interacting with gnuplot")
5978 (description "@code{emacs-gnuplot} is an emacs major mode for interacting
5979 with gnuplot.")
5980 (license license:gpl2+)))
5981
5982 (define-public emacs-transpose-frame
5983 (package
5984 (name "emacs-transpose-frame")
5985 (version "0.1.0")
5986 (source
5987 (origin
5988 (method url-fetch)
5989 (uri "http://www.emacswiki.org/emacs/download/transpose-frame.el")
5990 (file-name (string-append "transpose-frame-" version ".el"))
5991 (sha256
5992 (base32
5993 "1f67yksgw9s6j0033hmqzaxx2a93jm11sd5ys7cc3li5gfh680m4"))))
5994 (build-system emacs-build-system)
5995 (home-page "https://www.emacswiki.org/emacs/TransposeFrame")
5996 (synopsis "Transpose window arrangement in current frame")
5997 (description "@code{emacs-transpose-frame} provides some interactive
5998 functions which allows users to transpose windows arrangement in currently
5999 selected frame.")
6000 (license license:bsd-2)))
6001
6002 (define-public emacs-key-chord
6003 (package
6004 (name "emacs-key-chord")
6005 (version "0.6")
6006 (source
6007 (origin
6008 (method url-fetch)
6009 (uri "https://www.emacswiki.org/emacs/download/key-chord.el")
6010 (file-name (string-append "key-chord-" version ".el"))
6011 (sha256
6012 (base32
6013 "03m44pqggfrd53nh9dvpdjgm0rvca34qxmd30hr33hzprzjambxg"))))
6014 (build-system emacs-build-system)
6015 (home-page "https://www.emacswiki.org/emacs/key-chord.el")
6016 (synopsis "Map pairs of simultaneously pressed keys to Emacs commands")
6017 (description "@code{emacs-key-chord} provides @code{key-chord-mode}, a
6018 mode for binding key chords to commands. A key chord is defined as two keys
6019 pressed simultaneously or a single key quickly pressed twice.")
6020 (license license:gpl2+)))
6021
6022 (define-public emacs-evil-surround
6023 (package
6024 (name "emacs-evil-surround")
6025 (version "1.0.0")
6026 (source
6027 (origin
6028 (method url-fetch)
6029 (uri (string-append
6030 "https://github.com/timcharper/evil-surround/archive/v"
6031 version ".tar.gz"))
6032 (file-name (string-append name "-" version ".tar.gz"))
6033 (sha256
6034 (base32
6035 "0p572jgic3q1ia1nz37kclir729ay6i2f4sa7wnaapyxly2lwb3r"))))
6036 (build-system emacs-build-system)
6037 (propagated-inputs
6038 `(("emacs-evil" ,emacs-evil)))
6039 (home-page "https://github.com/timcharper/evil-surround")
6040 (synopsis "Easily modify surrounding parantheses and quotes")
6041 (description "@code{emacs-evil-surround} allows easy deletion, change and
6042 addition of surrounding pairs, such as parantheses and quotes, in evil mode.")
6043 (license license:gpl3+)))
6044
6045 (define-public emacs-evil-commentary
6046 (package
6047 (name "emacs-evil-commentary")
6048 (version "2.1.1")
6049 (source
6050 (origin
6051 (method url-fetch)
6052 (uri (string-append
6053 "https://github.com/linktohack/evil-commentary/archive/v"
6054 version ".tar.gz"))
6055 (file-name (string-append name "-" version ".tar.gz"))
6056 (sha256
6057 (base32
6058 "1jdya0i921nwskwrzdsj0vrr3m7gm49dy6f6pk9p5nxaarfxk230"))))
6059 (build-system emacs-build-system)
6060 (propagated-inputs
6061 `(("emacs-evil" ,emacs-evil)))
6062 (home-page "https://github.com/linktohack/evil-commentary")
6063 (synopsis "Comment out code in evil mode")
6064 (description "@code{emacs-evil-commentary} adds keybindings to easily
6065 comment out lines of code in evil mode. It provides @code{gcc} to comment out
6066 lines, and @code{gc} to comment out the target of a motion.")
6067 (license license:gpl3+)))
6068
6069 ;; Tests for emacs-ansi have a circular dependency with ert-runner, and
6070 ;; therefore cannot be run
6071 (define-public emacs-ansi
6072 (package
6073 (name "emacs-ansi")
6074 (version "0.4.1")
6075 (source
6076 (origin
6077 (method url-fetch)
6078 (uri (string-append "https://github.com/rejeep/ansi.el/archive/v"
6079 version ".tar.gz"))
6080 (file-name (string-append name "-" version ".tar.gz"))
6081 (sha256
6082 (base32
6083 "13jj4vbi98j3p17hs99bmy7g21jd5h4v3wpxk4pkvhylm3bfwjw8"))))
6084 (build-system emacs-build-system)
6085 (propagated-inputs
6086 `(("emacs-dash" ,emacs-dash)
6087 ("emacs-s" ,emacs-s)))
6088 (home-page "https://github.com/rejeep/ansi.el")
6089 (synopsis "Convert strings to ANSI")
6090 (description "@code{emacs-ansi} defines functions that turns simple
6091 strings to ANSI strings. Turning a string into an ANSI string can be to add
6092 color to a text, add color in the background of a text or adding a style, such
6093 as bold, underscore or italic.")
6094 (license license:gpl3+)))
6095
6096 ;; Tests for emacs-commander have a circular dependency with ert-runner, and
6097 ;; therefore cannot be run
6098 (define-public emacs-commander
6099 (package
6100 (name "emacs-commander")
6101 (version "0.7.0")
6102 (source
6103 (origin
6104 (method url-fetch)
6105 (uri (string-append "https://github.com/rejeep/commander.el/archive/v"
6106 version ".tar.gz"))
6107 (file-name (string-append name "-" version ".tar.gz"))
6108 (sha256
6109 (base32
6110 "196s2i15z7gwxa97l1wkxvjnfmj5n38wwm6d3g4zz15l2vqggc2y"))))
6111 (build-system emacs-build-system)
6112 (propagated-inputs
6113 `(("emacs-dash" ,emacs-dash)
6114 ("emacs-f" ,emacs-f)
6115 ("emacs-s" ,emacs-s)))
6116 (home-page "https://github.com/rejeep/commander.el")
6117 (synopsis "Emacs command line parser")
6118 (description "@code{emacs-commander} provides command line parsing for
6119 Emacs.")
6120 (license license:gpl3+)))
6121
6122 ;; Tests for ert-runner have a circular dependency with ecukes, and therefore
6123 ;; cannot be run
6124 (define-public ert-runner
6125 (let ((dependencies
6126 `(("emacs-ansi" ,emacs-ansi)
6127 ("emacs-commander" ,emacs-commander)
6128 ("emacs-dash" ,emacs-dash)
6129 ("emacs-f" ,emacs-f)
6130 ("emacs-s" ,emacs-s)
6131 ("emacs-shut-up" ,emacs-shut-up))))
6132 (package
6133 (name "ert-runner")
6134 (version "0.7.0")
6135 (source
6136 (origin
6137 (method url-fetch)
6138 (uri (string-append "https://github.com/rejeep/ert-runner.el/archive/v"
6139 version ".tar.gz"))
6140 (file-name (string-append name "-" version ".tar.gz"))
6141 (sha256
6142 (base32
6143 "1657nck9i96a4xgl8crfqq0s8gflzp21pkkzwg6m3z5npjxklgwp"))))
6144 (build-system emacs-build-system)
6145 (inputs dependencies)
6146 (arguments
6147 `(#:phases
6148 (modify-phases %standard-phases
6149 (add-after 'install 'install-executable
6150 (lambda* (#:key inputs outputs #:allow-other-keys)
6151 (let ((out (assoc-ref outputs "out")))
6152 (substitute* "bin/ert-runner"
6153 (("ERT_RUNNER=\"\\$\\(dirname \\$\\(dirname \\$0\\)\\)")
6154 (string-append "ERT_RUNNER=\"" out
6155 "/share/emacs/site-lisp/guix.d/"
6156 ,name "-" ,version)))
6157 (install-file "bin/ert-runner" (string-append out "/bin"))
6158 (wrap-program (string-append out "/bin/ert-runner")
6159 (list "EMACSLOADPATH" ":" '=
6160 (append
6161 ,(match dependencies
6162 (((labels packages) ...)
6163 `(map (lambda (label package version)
6164 (string-append (assoc-ref inputs label)
6165 "/share/emacs/site-lisp/guix.d/"
6166 (string-drop package 6)
6167 "-" version))
6168 ',labels
6169 ',(map package-name packages)
6170 ',(map package-version packages))))
6171 ;; empty element to include the default load path as
6172 ;; determined by emacs' standard initialization
6173 ;; procedure
6174 (list ""))))
6175 #t))))
6176 #:include (cons* "^reporters/.*\\.el$" %default-include)))
6177 (home-page "https://github.com/rejeep/ert-runner.el")
6178 (synopsis "Opinionated Ert testing workflow")
6179 (description "@code{ert-runner} is a tool for Emacs projects tested
6180 using ERT. It assumes a certain test structure setup and can therefore make
6181 running tests easier.")
6182 (license license:gpl3+))))
6183
6184 (define-public emacs-disable-mouse
6185 (package
6186 (name "emacs-disable-mouse")
6187 (version "0.2")
6188 (source
6189 (origin
6190 (method url-fetch)
6191 (uri (string-append
6192 "https://github.com/purcell/disable-mouse/archive/"
6193 version ".tar.gz"))
6194 (file-name (string-append name "-" version ".tar.gz"))
6195 (sha256
6196 (base32
6197 "0haqpq23r1wx04lsqrrg3p5visg9hx5i36dg55ab003wfsrlrzbc"))))
6198 (build-system emacs-build-system)
6199 (home-page "https://github.com/purcell/disable-mouse")
6200 (synopsis "Disable mouse commands globally")
6201 (description
6202 "Provides @code{disable-mouse-mode} and @code{global-disable-mouse-mode},
6203 pair of minor modes which suppress all mouse events by intercepting them and
6204 running a customisable handler command (@code{ignore} by default). ")
6205 (license license:gpl3+)))
6206
6207 (define-public emacs-json-reformat
6208 (package
6209 (name "emacs-json-reformat")
6210 (version "0.0.6")
6211 (source
6212 (origin
6213 (method url-fetch)
6214 (uri (string-append "https://github.com/gongo/json-reformat/archive/"
6215 version ".tar.gz"))
6216 (file-name (string-append name "-" version ".tar.gz"))
6217 (sha256
6218 (base32
6219 "11fbq4scrgr7m0iwnzcrn2g7xvqwm2gf82sa7zy1l0nil7265p28"))
6220 (patches (search-patches "emacs-json-reformat-fix-tests.patch"))))
6221 (build-system emacs-build-system)
6222 (propagated-inputs `(("emacs-undercover" ,emacs-undercover)))
6223 (inputs
6224 `(("emacs-dash" ,emacs-dash) ; for tests
6225 ("emacs-shut-up" ,emacs-shut-up))) ; for tests
6226 (arguments
6227 `(#:phases
6228 (modify-phases %standard-phases
6229 (add-before 'install 'check
6230 (lambda* (#:key inputs #:allow-other-keys)
6231 (zero? (system* "emacs" "--batch" "-L" "."
6232 "-L" (string-append
6233 (assoc-ref inputs "emacs-undercover")
6234 "/share/emacs/site-lisp/guix.d/undercover-"
6235 ,(package-version emacs-undercover))
6236 "-L" (string-append
6237 (assoc-ref inputs "emacs-dash")
6238 "/share/emacs/site-lisp/guix.d/dash-"
6239 ,(package-version emacs-dash))
6240 "-L" (string-append
6241 (assoc-ref inputs "emacs-shut-up")
6242 "/share/emacs/site-lisp/guix.d/shut-up-"
6243 ,(package-version emacs-shut-up))
6244 "-l" "test/test-helper.el"
6245 "-l" "test/json-reformat-test.el"
6246 "-f" "ert-run-tests-batch-and-exit"))
6247 #t)))))
6248 (home-page "https://github.com/gongo/json-reformat")
6249 (synopsis "Reformatting tool for JSON")
6250 (description "@code{json-reformat} provides a reformatting tool for
6251 @url{http://json.org/, JSON}.")
6252 (license license:gpl3+)))
6253
6254 (define-public emacs-json-snatcher
6255 (package
6256 (name "emacs-json-snatcher")
6257 (version "1.0.0")
6258 (source
6259 (origin
6260 (method url-fetch)
6261 (uri (string-append "https://github.com/Sterlingg/json-snatcher/archive/"
6262 version ".tar.gz"))
6263 (file-name (string-append name "-" version ".tar.gz"))
6264 (sha256
6265 (base32
6266 "1nfiwsifpdiz0lbrqa77nl0crnfrv5h85ans9b0g5rggnmyshcfb"))))
6267 (build-system emacs-build-system)
6268 (home-page "https://github.com/sterlingg/json-snatcher")
6269 (synopsis "Grabs the path to JSON values in a JSON file")
6270 (description "@code{emacs-json-snatcher} grabs the path to JSON values in
6271 a @url{http://json.org/, JSON} file.")
6272 (license license:gpl3+)))
6273
6274 (define-public emacs-json-mode
6275 (package
6276 (name "emacs-json-mode")
6277 (version "1.7.0")
6278 (source
6279 (origin
6280 (method url-fetch)
6281 (uri (string-append "https://github.com/joshwnj/json-mode/archive/"
6282 "v" version ".tar.gz"))
6283 (file-name (string-append name "-" version ".tar.gz"))
6284 (sha256
6285 (base32
6286 "06h45p4cn767pk9sqi2zb1c65wy5gyyijqxzpglp80zwxhvajdz5"))))
6287 (build-system emacs-build-system)
6288 (propagated-inputs
6289 `(("emacs-json-reformat" ,emacs-json-reformat)
6290 ("emacs-json-snatcher" ,emacs-json-snatcher)))
6291 (home-page "https://github.com/joshwnj/json-mode")
6292 (synopsis "Major mode for editing JSON files")
6293 (description "@code{json-mode} extends the builtin js-mode syntax
6294 highlighting.")
6295 (license license:gpl3+)))
6296
6297 (define-public emacs-restclient
6298 (let ((commit "07a3888bb36d0e29608142ebe743b4362b800f40")
6299 (revision "1")) ;Guix package revision,
6300 ;upstream doesn't have official releases
6301 (package
6302 (name "emacs-restclient")
6303 (version (string-append revision "."
6304 (string-take commit 7)))
6305 (source (origin
6306 (method git-fetch)
6307 (uri (git-reference
6308 (url "https://github.com/pashky/restclient.el.git")
6309 (commit commit)))
6310 (sha256
6311 (base32
6312 "00lmjhb5im1kgrp54yipf1h9pshxzgjlg71yf2rq5n973gvb0w0q"))
6313 (file-name (git-file-name name version))))
6314 (build-system emacs-build-system)
6315 (propagated-inputs
6316 `(("emacs-helm" ,emacs-helm)))
6317 (home-page "https://github.com/pashky/restclient.el")
6318 (synopsis "Explore and test HTTP REST webservices")
6319 (description
6320 "This tool allows for testing and exploration of HTTP REST Web services
6321 from within Emacs. Restclient runs queries from a plan-text query sheet,
6322 displays results pretty-printed in XML or JSON with @code{restclient-mode}")
6323 (license license:public-domain))))
6324
6325 (define-public emacs-dired-hacks
6326 (let ((commit "eda68006ce73bbf6b9b995bfd70d08bec8cade36")
6327 (revision "1"))
6328 (package
6329 (name "emacs-dired-hacks")
6330 (version (string-append "0.0.1-" revision "."
6331 (string-take commit 7)))
6332 (source (origin
6333 (method git-fetch)
6334 (uri (git-reference
6335 (url "https://github.com/Fuco1/dired-hacks.git")
6336 (commit commit)))
6337 (file-name (string-append name "-" version "-checkout"))
6338 (sha256
6339 (base32
6340 "1w7ssl9zssn5rcha6apf4h8drkd02k4xgvs203bdbqyqp9wz9brx"))))
6341 (build-system emacs-build-system)
6342 (propagated-inputs
6343 `(("emacs-dash" ,emacs-dash)
6344 ("emacs-f" ,emacs-f)
6345 ("emacs-s" ,emacs-s)))
6346 (home-page "https://github.com/Fuco1/dired-hacks")
6347 (synopsis
6348 "Collection of useful dired additions")
6349 (description
6350 "Collection of Emacs dired mode additions:
6351 @itemize
6352 @item dired-avfs
6353 @item dired-columns
6354 @item dired-filter
6355 @item dired-hacks-utils
6356 @item dired-images
6357 @item dired-list
6358 @item dired-narrow
6359 @item dired-open
6360 @item dired-rainbow
6361 @item dired-ranger
6362 @item dired-subtree
6363 @item dired-tagsistant
6364 @end itemize\n")
6365 (license license:gpl3+))))
6366
6367 (define-public emacs-which-key
6368 (package
6369 (name "emacs-which-key")
6370 (version "3.0.2")
6371 (source
6372 (origin
6373 (method url-fetch)
6374 (uri (string-append
6375 "https://github.com/justbur/emacs-which-key/archive/v"
6376 version ".tar.gz"))
6377 (sha256
6378 (base32
6379 "1xvd70cwq9n31f28viyjxmr3nn8l153gsy6scpszvgvjxkiikv24"))
6380 (file-name (string-append name "-" version ".tar.gz"))))
6381 (build-system emacs-build-system)
6382 (arguments
6383 `(#:phases
6384 (modify-phases %standard-phases
6385 (add-before 'install 'check
6386 (lambda _
6387 (zero? (system* "emacs" "--batch" "-L" "."
6388 "-l" "which-key-tests.el"
6389 "-f" "ert-run-tests-batch-and-exit")))))))
6390 (home-page "https://github.com/justbur/emacs-which-key")
6391 (synopsis "Display available key bindings in popup")
6392 (description
6393 "@code{emacs-which-key} is a minor mode for Emacs that displays the key
6394 bindings following your currently entered incomplete command (a prefix) in a
6395 popup. For example, after enabling the minor mode if you enter C-x and wait
6396 for the default of 1 second, the minibuffer will expand with all of the
6397 available key bindings that follow C-x (or as many as space allows given your
6398 settings).")
6399 (license license:gpl3+)))
6400
6401 (define-public emacs-ws-butler
6402 (package
6403 (name "emacs-ws-butler")
6404 (version "0.6")
6405 (source (origin
6406 (method git-fetch)
6407 (uri (git-reference
6408 (url "https://github.com/lewang/ws-butler.git")
6409 (commit "323b651dd70ee40a25accc940b8f80c3a3185205")))
6410 (file-name (string-append name "-" version "-checkout"))
6411 (sha256
6412 (base32
6413 "1a4b0lsmwq84qfx51c5xy4fryhb1ysld4fhgw2vr37izf53379sb"))))
6414 (build-system emacs-build-system)
6415 (native-inputs
6416 `(("ert-runner" ,ert-runner)))
6417 (arguments
6418 `(#:phases
6419 (modify-phases %standard-phases
6420 (add-before 'install 'check
6421 (lambda _
6422 (zero? (system* "ert-runner" "tests")))))))
6423 (home-page "https://github.com/lewang/ws-butler")
6424 (synopsis "Trim spaces from end of lines")
6425 (description
6426 "This Emacs package automatically and unobtrusively trims whitespace
6427 characters from end of lines.")
6428 (license license:gpl3+)))
6429
6430 (define-public emacs-org-edit-latex
6431 (package
6432 (name "emacs-org-edit-latex")
6433 (version "0.8.0")
6434 (source
6435 (origin
6436 (method url-fetch)
6437 (uri (string-append
6438 "https://github.com/et2010/org-edit-latex/archive/v"
6439 version ".tar.gz"))
6440 (file-name (string-append name "-" version ".tar.gz"))
6441 (sha256
6442 (base32
6443 "1y4h6wrs8286h9pbsv4d8fr67a885vz8b2k80qgv5qddipi2i78p"))))
6444 (build-system emacs-build-system)
6445 (propagated-inputs
6446 `(("emacs-auctex" ,emacs-auctex)
6447 ;; The version of org in Emacs 25.2 is not sufficient, because the
6448 ;; `org-latex-make-preamble' function is required.
6449 ("emacs-org" ,emacs-org)))
6450 (home-page "https://github.com/et2010/org-edit-latex")
6451 (synopsis "Edit a latex fragment just like editing a src block")
6452 (description "@code{emacs-org-edit-latex} is an extension for org-mode.
6453 It lets you edit a latex fragment in a dedicated buffer just like editing a
6454 src block.")
6455 (license license:gpl3+)))
6456
6457 (define-public emacs-emamux
6458 (package
6459 (name "emacs-emamux")
6460 (version "0.14")
6461 (source (origin
6462 (method url-fetch)
6463 (uri (string-append
6464 "https://github.com/syohex/emacs-emamux/archive/"
6465 version ".tar.gz"))
6466 (file-name (string-append name "-" version ".tar.gz"))
6467 (sha256
6468 (base32
6469 "0wlqg4icy037bj70b0qmhvwvmiwhagpnx6pnxhq6gzy1hvwlilkx"))))
6470 (build-system emacs-build-system)
6471 (home-page "https://github.com/syohex/emacs-emamux")
6472 (synopsis "Manipulate Tmux from Emacs")
6473 (description
6474 "@code{emacs-emamux} lets Emacs interact with the @code{tmux} terminal
6475 multiplexer.")
6476 (license license:gpl3+)))
6477
6478 (define-public emacs-rpm-spec-mode
6479 (package
6480 (name "emacs-rpm-spec-mode")
6481 (version "0.16")
6482 (source
6483 (origin
6484 (method url-fetch)
6485 ;; URI has the Fedora release number instead of the version
6486 ;; number. This will have to updated manually every new release.
6487 (uri (string-append
6488 "https://src.fedoraproject.org/cgit/rpms"
6489 "/emacs-rpm-spec-mode.git/snapshot"
6490 "/emacs-rpm-spec-mode-f26.tar.gz"))
6491 (sha256
6492 (base32
6493 "17dz80lhjrc89fj17pysl8slahzrqdkxgcjdk55zls6jizkr6kz3"))))
6494 (build-system emacs-build-system)
6495 (home-page "http://pkgs.fedoraproject.org/cgit/rpms/emacs-rpm-spec-mode.git")
6496 (synopsis "Emacs major mode for editing RPM spec files")
6497 (description "@code{emacs-rpm-spec-mode} provides an Emacs major mode for
6498 editing RPM spec files.")
6499 (license license:gpl2+)))
6500
6501 (define-public emacs-git-messenger
6502 (package
6503 (name "emacs-git-messenger")
6504 (version "0.18")
6505 (source
6506 (origin
6507 (method url-fetch)
6508 (uri (string-append
6509 "https://github.com/syohex/emacs-git-messenger/archive/"
6510 version ".tar.gz"))
6511 (file-name (string-append name "-" version ".tar.gz"))
6512 (sha256
6513 (base32
6514 "17mqki6g0wx46fn7dcbcc2pjxik7vvrcb1j9jzxim8b9psbsbnp9"))))
6515 (build-system emacs-build-system)
6516 (propagated-inputs
6517 `(("emacs-popup" ,emacs-popup)))
6518 (arguments
6519 `(#:phases
6520 (modify-phases %standard-phases
6521 (add-before 'install 'check
6522 (lambda* (#:key inputs #:allow-other-keys)
6523 (zero? (system* "emacs" "--batch" "-L" "."
6524 "-L" (string-append
6525 (assoc-ref inputs "emacs-popup")
6526 "/share/emacs/site-lisp/guix.d/popup-"
6527 ,(package-version emacs-popup))
6528 "-l" "test/test.el"
6529 "-f" "ert-run-tests-batch-and-exit")))))))
6530 (home-page "https://github.com/syohex/emacs-git-messenger")
6531 (synopsis "Popup commit message at current line")
6532 (description "@code{emacs-git-messenger} provides
6533 @code{git-messenger:popup-message}, a function that when called, will popup
6534 the last git commit message for the current line. This uses git-blame
6535 internally.")
6536 (license license:gpl3+)))
6537
6538 (define-public emacs-gitpatch
6539 (package
6540 (name "emacs-gitpatch")
6541 (version "0.5.0")
6542 (source
6543 (origin
6544 (method url-fetch)
6545 (uri (string-append "https://github.com/tumashu/gitpatch/archive/"
6546 "v" version ".tar.gz"))
6547 (file-name (string-append name "-" version ".tar.gz"))
6548 (sha256
6549 (base32
6550 "1yj6pmic541lcnscjin300k380qp9xdfprs55xg1q57jrkq6f6k7"))))
6551 (build-system emacs-build-system)
6552 (home-page "https://github.com/tumashu/gitpatch")
6553 (synopsis "Mail git patch from Emacs")
6554 (description "@code{emacs-gitpatch} lets users easily send git patches,
6555 created by @code{git format-patch}, from @code{magit}, @code{dired} and
6556 @code{ibuffer} buffers.")
6557 (license license:gpl3+)))
6558
6559 (define-public emacs-erc-hl-nicks
6560 (package
6561 (name "emacs-erc-hl-nicks")
6562 (version "1.3.2")
6563 (source
6564 (origin
6565 (method url-fetch)
6566 (uri (string-append "https://github.com/leathekd/erc-hl-nicks"
6567 "/archive/" version ".tar.gz"))
6568 (file-name (string-append name "-" version ".tar.gz"))
6569 (sha256
6570 (base32
6571 "01svpl9bps5kx4y1wnymakxya2cznqmlynvqv2r500wpnbxczrbs"))))
6572 (build-system emacs-build-system)
6573 (synopsis "Nickname highlighting for Emacs ERC")
6574 (description "@code{erc-hl-nicks} highlights nicknames in ERC, an IRC
6575 client for Emacs. The main features are:
6576 @itemize
6577 @item Auto-colorizes nicknames without having to specify colors
6578 @item Ignores certain characters that IRC clients add to nicknames to avoid
6579 duplicates (nickname, nickname’, nickname\", etc.)
6580 @item Attempts to produce colors with a sufficient amount of contrast between
6581 the nick color and the background color
6582 @end itemize\n")
6583 (home-page "https://github.com/leathekd/erc-hl-nicks")
6584 (license license:gpl3+)))
6585
6586 (define-public emacs-engine-mode
6587 (package
6588 (name "emacs-engine-mode")
6589 (version "2.0.0")
6590 (source
6591 (origin
6592 (method url-fetch)
6593 (uri (string-append "https://github.com/hrs/engine-mode/archive/"
6594 "v" version ".tar.gz"))
6595 (file-name (string-append name "-" version ".tar.gz"))
6596 (sha256
6597 (base32
6598 "1vm4p7pcp1vnwwxvps1bhm7i7hkabqqxl898knxf2hqvxys76684"))))
6599 (build-system emacs-build-system)
6600 (synopsis "Minor mode for defining and querying search engines")
6601 (description "@code{engine-mode} is a global minor mode for Emacs. It
6602 enables you to easily define search engines, bind them to keybindings, and
6603 query them from the comfort of your editor.")
6604 (home-page "https://github.com/hrs/engine-mode")
6605 (license license:gpl3+)))
6606
6607 (define-public emacs-prop-menu
6608 (package
6609 (name "emacs-prop-menu")
6610 (version "0.1.2")
6611 (source
6612 (origin
6613 (method url-fetch)
6614 (uri (string-append
6615 "http://stable.melpa.org/packages/prop-menu-"
6616 version ".el"))
6617 (sha256
6618 (base32
6619 "01bk4sjafzz7gqrkv9jg0pa85qr34vbk3q8ga2b0m61bndywzgpr"))))
6620 (build-system emacs-build-system)
6621 (home-page
6622 "https://github.com/david-christiansen/prop-menu-el")
6623 (synopsis
6624 "Create and display a context menu based on text and overlay properties")
6625 (description
6626 "This is a library for computing context menus based on text
6627 properties and overlays. The intended use is to have tools that
6628 annotate source code and others that use these annotations, without
6629 requiring a direct coupling between them, but maintaining
6630 discoverability.
6631
6632 Major modes that wish to use this library should first define an
6633 appropriate value for @code{prop-menu-item-functions}. Then, they should
6634 bind @code{prop-menu-by-completing-read} to an appropriate
6635 key. Optionally, a mouse pop-up can be added by binding
6636 @code{prop-menu-show-menu} to a mouse event.")
6637 (license license:gpl3+)))
6638
6639 (define-public emacs-idris-mode
6640 (package
6641 (name "emacs-idris-mode")
6642 (version "0.9.19")
6643 (source
6644 (origin
6645 (method url-fetch)
6646 (uri (string-append
6647 "http://stable.melpa.org/packages/idris-mode-"
6648 version ".tar"))
6649 (sha256
6650 (base32
6651 "0ld4kfwnyyhlsnj5f6cbn4is4mpxdqalk2aifkw02r00mbr9n294"))))
6652 (build-system emacs-build-system)
6653 (propagated-inputs
6654 `(("emacs-prop-menu" ,emacs-prop-menu)))
6655 (home-page
6656 "https://github.com/idris-hackers/idris-mode")
6657 (synopsis "Major mode for editing Idris code")
6658 (description
6659 "This is an Emacs mode for editing Idris code. It requires the latest
6660 version of Idris, and some features may rely on the latest Git version of
6661 Idris.")
6662 (license license:gpl3+)))
6663
6664 (define-public emacs-browse-at-remote
6665 (let ((commit "31dcf77d7c89a12f230e2b2332585db2c44530ef")
6666 (revision "1"))
6667 (package
6668 (name "emacs-browse-at-remote")
6669 (version (string-append "0.9.0-" revision "."
6670 (string-take commit 7)))
6671 (source (origin
6672 (method git-fetch)
6673 (uri (git-reference
6674 (url "https://github.com/rmuslimov/browse-at-remote.git")
6675 (commit commit)))
6676 (file-name (string-append name "-" version "-checkout"))
6677 (patches
6678 (search-patches "emacs-browse-at-remote-cgit-gnu.patch"))
6679 (sha256
6680 (base32
6681 "017cb8lf7zbg0jmr7zxzd7d5kz2jy35cvw5vcpdmq1fdr3wqwkgj"))))
6682 (build-system emacs-build-system)
6683 (propagated-inputs
6684 `(("emacs-f" ,emacs-f)
6685 ("emacs-s" ,emacs-s)))
6686 (native-inputs
6687 `(("ert-runner" ,ert-runner)))
6688 (arguments
6689 `(#:phases
6690 (modify-phases %standard-phases
6691 (add-before 'install 'check
6692 (lambda _
6693 (zero? (system* "ert-runner")))))))
6694 (home-page "https://github.com/rmuslimov/browse-at-remote")
6695 (synopsis "Open github/gitlab/bitbucket/stash page from Emacs")
6696 (description
6697 "This Emacs package allows you to open a target page on
6698 github/gitlab (or bitbucket) by calling @code{browse-at-remote} command.
6699 It supports dired buffers and opens them in tree mode at destination.")
6700 (license license:gpl3+))))
6701
6702 (define-public emacs-tiny
6703 (package
6704 (name "emacs-tiny")
6705 (version "0.2.1")
6706 (source
6707 (origin
6708 (method url-fetch)
6709 (uri (string-append "http://elpa.gnu.org/packages/tiny-" version ".tar"))
6710 (sha256
6711 (base32
6712 "1cr73a8gba549ja55x0c2s554f3zywf69zbnd7v82jz5q1k9wd2v"))))
6713 (build-system emacs-build-system)
6714 (home-page "https://github.com/abo-abo/tiny")
6715 (synopsis "Quickly generate linear ranges in Emacs")
6716 (description
6717 "The main command of the @code{tiny} extension for Emacs is @code{tiny-expand}.
6718 It is meant to quickly generate linear ranges, e.g. 5, 6, 7, 8. Some elisp
6719 proficiency is an advantage, since you can transform your numeric range with
6720 an elisp expression.")
6721 (license license:gpl3+)))
6722
6723 (define-public emacs-emojify
6724 (package
6725 (name "emacs-emojify")
6726 (version "0.4")
6727 (source
6728 (origin
6729 (method url-fetch)
6730 (uri (string-append "https://github.com/iqbalansari/emacs-emojify/"
6731 "releases/download/v" version "/emojify-"
6732 version ".tar"))
6733 (sha256
6734 (base32
6735 "0k84v2d2bkiwcky9fi1yyprgkj46g7wh6pyl9gzmcd7sqv051d5n"))))
6736 (build-system emacs-build-system)
6737 (arguments
6738 `(#:phases
6739 (modify-phases %standard-phases
6740 (add-after 'install 'install-data
6741 (lambda* (#:key outputs #:allow-other-keys)
6742 (copy-recursively "data"
6743 (string-append (assoc-ref outputs "out")
6744 "/share/emacs/site-lisp/guix.d/"
6745 "emojify-" ,version "/data"))
6746 #t)))))
6747 (propagated-inputs
6748 `(("emacs-ht" ,emacs-ht)))
6749 (home-page "https://github.com/iqbalansari/emacs-emojify")
6750 (synopsis "Display emojis in Emacs")
6751 (description "This package displays emojis in Emacs similar to how Github,
6752 Slack, and other websites do. It can display plain ASCII like @code{:)} as
6753 well as Github-style emojis like @code{:smile:}. It provides a minor mode
6754 @code{emojify-mode} to enable the display of emojis in a buffer.")
6755 (license license:gpl3+)))
6756
6757 (define-public emacs-websocket
6758 (package
6759 (name "emacs-websocket")
6760 (version "1.8")
6761 (source
6762 (origin
6763 (method url-fetch)
6764 (uri (string-append "https://elpa.gnu.org/packages/websocket-"
6765 version ".tar"))
6766 (sha256
6767 (base32
6768 "0dcxmnnm8z7cvsc7nkb822a1g6w03klp7cijjnfq0pz84p3w9cd9"))))
6769 (build-system emacs-build-system)
6770 (home-page "http://elpa.gnu.org/packages/websocket.html")
6771 (synopsis "Emacs WebSocket client and server")
6772 (description "This is an Elisp library for WebSocket clients to talk to
6773 WebSocket servers, and for WebSocket servers to accept connections from
6774 WebSocket clients. This library is designed to be used by other library
6775 writers, to write applications that use WebSockets, and is not useful by
6776 itself.")
6777 (license license:gpl3+)))
6778
6779 (define-public emacs-oauth2
6780 (package
6781 (name "emacs-oauth2")
6782 (version "0.11")
6783 (source
6784 (origin
6785 (method url-fetch)
6786 (uri (string-append "https://elpa.gnu.org/packages/oauth2-"
6787 version ".el"))
6788 (sha256
6789 (base32
6790 "0ydkc9jazsnbbvfhd47mql52y7k06n3z7r0naqxkwb99j9blqsmp"))))
6791 (build-system emacs-build-system)
6792 (home-page "http://elpa.gnu.org/packages/oauth2.html")
6793 (synopsis "OAuth 2.0 authorization protocol implementation")
6794 (description
6795 "This package provides an Elisp implementation of the OAuth 2.0 draft.
6796 The main entry point is @code{oauth2-auth-and-store} which will return a token
6797 structure. This token structure can be then used with
6798 @code{oauth2-url-retrieve-synchronously} or @code{oauth2-url-retrieve} to
6799 retrieve any data that need OAuth authentication to be accessed. If the token
6800 needs to be refreshed, the code handles it automatically and stores the new
6801 value of the access token.")
6802 (license license:gpl3+)))
6803
6804 (define-public emacs-circe
6805 (package
6806 (name "emacs-circe")
6807 (version "2.6")
6808 (source
6809 (origin
6810 (method git-fetch)
6811 (uri (git-reference
6812 (url "https://github.com/jorgenschaefer/circe.git")
6813 (commit (string-append "v" version))))
6814 (file-name (string-append name "-" version "-checkout"))
6815 (sha256
6816 (base32
6817 "19h3983zy3f15cgs86irvbdzz55qyjm48qd7gjlzcxplr7vnnh0j"))))
6818 (build-system emacs-build-system)
6819 ;; In order to securely connect to an IRC server using TLS, Circe requires
6820 ;; the GnuTLS binary.
6821 (propagated-inputs
6822 `(("gnutls" ,gnutls)))
6823 (home-page "https://github.com/jorgenschaefer/circe")
6824 (synopsis "Client for IRC in Emacs")
6825 (description "Circe is a Client for IRC in Emacs. It integrates well with
6826 the rest of the editor, using standard Emacs key bindings and indicating
6827 activity in channels in the status bar so it stays out of your way unless you
6828 want to use it.")
6829 (license license:gpl3+)))
6830
6831 (define-public emacs-slack
6832 (let ((commit "92724604879149cf331fa8778d089813a9d4ce1a")
6833 (revision "3"))
6834 (package
6835 (name "emacs-slack")
6836 (version (string-append "0-" revision "." (string-take commit 7)))
6837 (source (origin
6838 (method git-fetch)
6839 (uri (git-reference
6840 (url "https://github.com/yuya373/emacs-slack.git")
6841 (commit commit)))
6842 (file-name (string-append name "-" version "-checkout"))
6843 (sha256
6844 (base32
6845 "1fdf8s3ca356k7m7f5kqzfamfl2nrqjj2pynjv3kkrr0ad15nxmw"))))
6846 (build-system emacs-build-system)
6847 (propagated-inputs
6848 `(("emacs-alert" ,emacs-alert)
6849 ("emacs-emojify" ,emacs-emojify)
6850 ("emacs-request" ,emacs-request)
6851 ("emacs-websocket" ,emacs-websocket)
6852 ("emacs-oauth2" ,emacs-oauth2)
6853 ("emacs-circe" ,emacs-circe)))
6854 (home-page "https://github.com/yuya373/emacs-slack")
6855 (synopsis "Slack client for Emacs")
6856 (description "This package provides an Emacs client for the Slack
6857 messaging service.")
6858 (license license:gpl3+))))
6859
6860 (define-public emacs-bash-completion
6861 (package
6862 (name "emacs-bash-completion")
6863 (version "2.0.0")
6864 (source
6865 (origin
6866 (method url-fetch)
6867 (uri (string-append
6868 "https://github.com/szermatt/emacs-bash-completion/archive/v"
6869 version ".tar.gz"))
6870 (file-name (string-append name "-" version ".tar.gz"))
6871 (sha256
6872 (base32
6873 "0mkci4a1fy8z4cmry8mx5vsx4f16a8r454slnh7lqzidnhfi63hj"))))
6874 (inputs `(("bash" ,bash)))
6875 (build-system emacs-build-system)
6876 (arguments
6877 `(#:phases
6878 (modify-phases %standard-phases
6879 (add-before 'install 'configure
6880 (lambda* (#:key inputs #:allow-other-keys)
6881 (let ((bash (assoc-ref inputs "bash")))
6882 (emacs-substitute-variables "bash-completion.el"
6883 ("bash-completion-prog" (string-append bash "/bin/bash"))))
6884 #t)))))
6885 (home-page "https://github.com/szermatt/emacs-bash-completion")
6886 (synopsis "BASH completion for the shell buffer")
6887 (description
6888 "@code{bash-completion} defines dynamic completion hooks for shell-mode
6889 and shell-command prompts that are based on bash completion.")
6890 (license license:gpl2+)))
6891
6892 (define-public emacs-easy-kill
6893 (package
6894 (name "emacs-easy-kill")
6895 (version "0.9.3")
6896 (source (origin
6897 (method url-fetch)
6898 (uri (string-append "https://elpa.gnu.org/packages/easy-kill-"
6899 version ".tar"))
6900 (sha256
6901 (base32
6902 "17nw0mglmg877axwg1d0gs03yc0p04lzmd3pl0nsnqbh3303fnqb"))))
6903 (build-system emacs-build-system)
6904 (home-page "https://github.com/leoliu/easy-kill")
6905 (synopsis "Kill and mark things easily in Emacs")
6906 (description
6907 "This package provides commands @code{easy-kill} and @code{easy-mark} to
6908 let users kill or mark things easily.")
6909 (license license:gpl3+)))
6910
6911 (define-public emacs-csv-mode
6912 (package
6913 (name "emacs-csv-mode")
6914 (version "1.7")
6915 (source
6916 (origin
6917 (method url-fetch)
6918 (uri (string-append "http://elpa.gnu.org/packages/csv-mode-"
6919 version ".el"))
6920 (sha256
6921 (base32
6922 "0r4bip0w3h55i8h6sxh06czf294mrhavybz0zypzrjw91m1bi7z6"))))
6923 (build-system emacs-build-system)
6924 (home-page
6925 "http://elpa.gnu.org/packages/csv-mode.html")
6926 (synopsis
6927 "Major mode for editing comma/char separated values")
6928 (description
6929 "This Emacs package implements CSV mode, a major mode for editing records
6930 in a generalized CSV (character-separated values) format.")
6931 (license license:gpl3+)))
6932
6933 (define-public emacs-transmission
6934 (package
6935 (name "emacs-transmission")
6936 (version "0.12.1")
6937 (source (origin
6938 (method url-fetch)
6939 (uri (string-append
6940 "https://github.com/holomorph/transmission/archive/"
6941 version ".tar.gz"))
6942 (file-name (string-append name "-" version ".tar.gz"))
6943 (sha256
6944 (base32
6945 "1rrlgn96gi1ljfwbwvlyyxbq75xzamlbdhq1bpyadxxmxcvlmk3n"))))
6946 (build-system emacs-build-system)
6947 (home-page "https://github.com/holomorph/transmission")
6948 (synopsis "Emacs interface to a Transmission session")
6949 (description "This package provides an Emacs interface to interact with a
6950 running session of the Transmission Bittorrent client.
6951
6952 Features:
6953
6954 @itemize
6955 @item List, add, start/stop, verify, remove torrents.
6956 @item Set speed limits, ratio limits, bandwidth priorities, trackers.
6957 @item Navigate to the corresponding file list, torrent info, peer info
6958 contexts.
6959 @item Toggle downloading and set priorities for individual files.
6960 @end itemize\n")
6961 (license license:gpl3+)))
6962
6963 (define-public emacs-polymode
6964 ;; There hasn't been a proper release.
6965 (let ((commit "0340f5e7e55235832e59673f027cc79a23cbdcd6")
6966 (revision "1"))
6967 (package
6968 (name "emacs-polymode")
6969 (version (string-append "1.0-" revision "." (string-take commit 7)))
6970 (source (origin
6971 (method git-fetch)
6972 (uri (git-reference
6973 (url "https://github.com/vspinu/polymode.git")
6974 (commit commit)))
6975 (file-name (string-append name "-" version "-checkout"))
6976 (sha256
6977 (base32
6978 "057cybkq3cy07n5s332k071sjiky3mziy003lza4rh75mgqkwhmh"))))
6979 (build-system emacs-build-system)
6980 (home-page "https://github.com/vspinu/polymode")
6981 (synopsis "Framework for multiple Emacs modes based on indirect buffers")
6982 (description "Polymode is an Emacs package that offers generic support
6983 for multiple major modes inside a single Emacs buffer. It is lightweight,
6984 object oriented and highly extensible. Creating a new polymode typically
6985 takes only a few lines of code. Polymode also provides extensible facilities
6986 for external literate programming tools for exporting, weaving and tangling.")
6987 (license license:gpl3+))))
6988
6989 (define-public eless
6990 (package
6991 (name "eless")
6992 (version "0.3")
6993 (source (origin
6994 (method url-fetch)
6995 (uri (string-append
6996 "https://github.com/kaushalmodi/eless/archive/"
6997 "v" version ".tar.gz"))
6998 (file-name (string-append name "-" version ".tar.gz"))
6999 (sha256
7000 (base32
7001 "0gjnnhgw5xs1w3qfnkvwa2nv44gnxr8pkhx3c7qig45p8nh1461h"))))
7002 (build-system trivial-build-system)
7003 (inputs
7004 `(("bash" ,bash)))
7005 (native-inputs
7006 `(("tar" ,tar)
7007 ("gzip" ,gzip)))
7008 (arguments
7009 `(#:modules ((guix build utils))
7010 #:builder
7011 (begin
7012 (use-modules (guix build utils))
7013 (setenv "PATH" (string-append
7014 (assoc-ref %build-inputs "tar") "/bin" ":"
7015 (assoc-ref %build-inputs "gzip") "/bin"))
7016 (system* "tar" "xvf" (assoc-ref %build-inputs "source"))
7017 (chdir (string-append "eless" "-" ,version))
7018 (substitute* "eless" (("/usr/bin/env bash")
7019 (string-append (assoc-ref %build-inputs "bash")
7020 "/bin/bash")))
7021 (install-file "eless" (string-append %output "/bin"))
7022 (install-file "doc/eless.info" (string-append %output "/share/info"))
7023 #t)))
7024 (home-page "https://github.com/kaushalmodi/eless")
7025 (synopsis "Use Emacs as a paginator")
7026 (description "@code{eless} provides a combination of Bash script
7027 and a minimal Emacs view-mode.
7028
7029 Feautures:
7030
7031 @itemize
7032 @item Independent of a user’s Emacs config.
7033 @item Customizable via the @code{(locate-user-emacs-file \"elesscfg\")} config.
7034 @item Not require an Emacs server to be already running.
7035 @item Syntax highlighting.
7036 @item Org-mode file rendering.
7037 @item @code{man} page viewer.
7038 @item Info viewer.
7039 @item Dired, wdired, (batch edit symbolic links).
7040 @item Colored diffs, git diff, git log, ls with auto ANSI detection.
7041 @item Filter log files lines matching a regexp.
7042 @item Auto-revert log files similar to @code{tail -f}.
7043 @item Quickly change frame and font sizes.
7044 @end itemize\n")
7045 (license license:expat)))
7046
7047 (define-public emacs-evil-matchit
7048 (package
7049 (name "emacs-evil-matchit")
7050 (version "2.2.6")
7051 (source
7052 (origin
7053 (method url-fetch)
7054 (uri (string-append
7055 "https://github.com/redguardtoo/evil-matchit/archive/"
7056 version ".tar.gz"))
7057 (file-name (string-append name "-" version ".tar.gz"))
7058 (sha256
7059 (base32
7060 "1yp9sl6542317mn1060ri90zyf6bs6qylagndhqy02p368q31rhi"))))
7061 (build-system emacs-build-system)
7062 (propagated-inputs
7063 `(("emacs-evil" ,emacs-evil)))
7064 (home-page "https://github.com/redguardtoo/evil-matchit")
7065 (synopsis "Vim matchit ported into Emacs")
7066 (description
7067 "@code{evil-matchit} is a minor mode for jumping between matching tags in
7068 evil mode using @kbd{%}. It is a port of @code{matchit} for Vim.")
7069 (license license:gpl3+)))
7070
7071 (define-public emacs-evil-smartparens
7072 (package
7073 (name "emacs-evil-smartparens")
7074 (version "0.4.0")
7075 (source
7076 (origin
7077 (method url-fetch)
7078 (uri (string-append
7079 "https://github.com/expez/evil-smartparens/archive/"
7080 version ".tar.gz"))
7081 (file-name (string-append name "-" version ".tar.gz"))
7082 (sha256
7083 (base32
7084 "1bwzdd3054d407d5j4m3njsbvmc9r8zzp33m32pj3b3irxrl68q0"))))
7085 (build-system emacs-build-system)
7086 (propagated-inputs
7087 `(("emacs-evil" ,emacs-evil)
7088 ("emacs-smartparens" ,emacs-smartparens)))
7089 (home-page "https://github.com/expez/evil-smartparens")
7090 (synopsis "Emacs Evil integration for Smartparens")
7091 (description "@code{emacs-evil-smartparens} is an Emacs minor mode which
7092 makes Evil play nice with Smartparens. Evil is an Emacs minor mode that
7093 emulates Vim features and provides Vim-like key bindings.")
7094 (license license:gpl3+)))
7095
7096 (define-public emacs-evil-quickscope
7097 (package
7098 (name "emacs-evil-quickscope")
7099 (version "0.1.4")
7100 (source
7101 (origin
7102 (method url-fetch)
7103 (uri (string-append "https://github.com/blorbx/evil-quickscope/archive/v"
7104 version ".tar.gz"))
7105 (file-name (string-append name "-" version ".tar.gz"))
7106 (sha256
7107 (base32
7108 "1r26a412mmar7vbf89zcifswiwpdg30mjzj32xdyqss57aqi83ma"))))
7109 (build-system emacs-build-system)
7110 (propagated-inputs
7111 `(("emacs-evil" ,emacs-evil)))
7112 (arguments
7113 `(#:phases
7114 (modify-phases %standard-phases
7115 (add-before 'install 'check
7116 (lambda* (#:key inputs #:allow-other-keys)
7117 (invoke "emacs" "--batch" "-L"
7118 (string-append (assoc-ref inputs "emacs-evil")
7119 "/share/emacs/site-lisp/guix.d/evil-"
7120 ,(package-version emacs-evil))
7121 "-l" "evil-quickscope-tests.el"
7122 "-f" "ert-run-tests-batch-and-exit"))))))
7123 (home-page "https://github.com/blorbx/evil-quickscope")
7124 (synopsis "Target highlighting for emacs evil-mode f,F,t and T commands")
7125 (description "@code{emacs-evil-quickscope} highlights targets for Evil
7126 mode’s f,F,t,T keys, allowing for quick navigation within a line. It is a
7127 port of quick-scope for Vim. Evil is an Emacs minor mode that emulates Vim
7128 features and provides Vim-like key bindings.")
7129 (license license:gpl3+)))
7130
7131 (define-public emacs-bongo
7132 (package
7133 (name "emacs-bongo")
7134 (version "1.0")
7135 (source
7136 (origin
7137 (method url-fetch)
7138 (uri (string-append
7139 "https://github.com/dbrock/bongo/archive/"
7140 version ".tar.gz"))
7141 (file-name (string-append name "-" version ".tar.gz"))
7142 (sha256
7143 (base32
7144 "1pcsyyrvj7djjjwpaswd1i782hvqvlvs39cy9ns0k795si6xd64d"))))
7145 (build-system emacs-build-system)
7146 (home-page "https://github.com/dbrock/bongo")
7147 (synopsis "Media player for Emacs")
7148 (description
7149 "This package provides a flexible media player for Emacs. @code{Bongo}
7150 supports multiple backends such as @code{vlc}, @code{mpg123},
7151 @code{ogg123}, @code{speexdec}, @code{timidity}, @code{mikmod} and
7152 @code{afplay}.")
7153 (license license:gpl2+)))
7154
7155 (define-public groovy-emacs-modes
7156 (package
7157 (name "groovy-emacs-modes")
7158 (version "2.0")
7159 (source (origin
7160 (method url-fetch)
7161 (uri (string-append
7162 "https://github.com/Groovy-Emacs-Modes/" name
7163 "/archive/" version ".tar.gz"))
7164 (file-name (string-append name "-" version ".tar.gz"))
7165 (sha256
7166 (base32
7167 "15j0hnkx9nppjzda5cqsxxz5f3bq9hc4xfyjcdypzqiypcvmpa39"))))
7168 (build-system emacs-build-system)
7169 (propagated-inputs
7170 `(("emacs-s" ,emacs-s)))
7171 (home-page "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
7172 (synopsis "Groovy related modes for Emacs")
7173 (description
7174 "This package provides @code{groovy-mode} for syntax highlighing in
7175 Groovy source files, REPL integration with run-groovy and Grails project
7176 navigation with the grails mode.")
7177 (license license:gpl3+)))
7178
7179 (define-public org-tree-slide
7180 (let ((commit "dff8f1a4a64c8dd0a1fde0b0131e2fe186747134")
7181 (revision "0"))
7182 (package
7183 (name "emacs-org-tree-slide")
7184 (version (git-version "0.1" revision commit))
7185 (home-page "https://github.com/takaxp/org-tree-slide")
7186 (source (origin
7187 (method git-fetch)
7188 (uri (git-reference (url home-page) (commit commit)))
7189 (sha256
7190 (base32
7191 "153bg0x7ypla11pq51jmsgzfjklwwnrq56xgpbfhk1j16xwz9hyf"))
7192 (file-name (git-file-name name version))))
7193 (build-system emacs-build-system)
7194 (synopsis "Presentation tool for org-mode")
7195 (description
7196 "Org-tree-slide provides a slideshow mode to view org-mode files. Use
7197 @code{org-tree-slide-mode} to enter the slideshow mode, and then @kbd{C->} and
7198 @kbd{C-<} to jump to the next and previous slide.")
7199 (license license:gpl3+))))
7200
7201 (define-public emacs-scratch-el
7202 (let ((commit "2cdf2b841ce7a0987093f65b0cc431947549f897")
7203 (revision "1"))
7204 (package
7205 (name "emacs-scratch-el")
7206 (version (git-version "1.2" revision commit))
7207 (source (origin
7208 (method git-fetch)
7209 (uri (git-reference
7210 (url "https://github.com/ieure/scratch-el.git")
7211 (commit commit)))
7212 (file-name (git-file-name name version))
7213 (sha256
7214 (base32
7215 "0wscsndynjmnliajqaz28r1ww81j8wh84zwaaswx51abhwgl0idf"))))
7216 (build-system emacs-build-system)
7217 (native-inputs
7218 `(("texinfo" ,texinfo)))
7219 (arguments
7220 '(#:phases
7221 (modify-phases %standard-phases
7222 (add-after 'install 'install-doc
7223 (lambda* (#:key outputs #:allow-other-keys)
7224 (unless (invoke "makeinfo" "scratch.texi")
7225 (error "makeinfo failed"))
7226 (install-file "scratch.info"
7227 (string-append (assoc-ref outputs "out")
7228 "/share/info"))
7229 #t)))))
7230 (home-page "https://github.com/ieure/scratch-el/")
7231 (synopsis "Create scratch buffers with the same mode as current buffer")
7232 (description "Scratch is an extension to Emacs that enables one to create
7233 scratch buffers that are in the same mode as the current buffer. This is
7234 notably useful when working on code in some language; you may grab code into a
7235 scratch buffer, and, by virtue of this extension, do so using the Emacs
7236 formatting rules for that language.")
7237 (license license:bsd-2))))
7238
7239 (define-public emacs-esxml
7240 (package
7241 (name "emacs-esxml")
7242 (version "0.3.4")
7243 (source (origin
7244 (method git-fetch)
7245 (uri (git-reference
7246 (url "https://github.com/tali713/esxml.git")
7247 (commit version)))
7248 (file-name (git-file-name name version))
7249 (sha256
7250 (base32
7251 "00vv8a75wdklygdyr4km9mc2ismxak69c45jmcny41xl44rp9x8m"))))
7252 (build-system emacs-build-system)
7253 (home-page "https://github.com/tali713/esxml/")
7254 (synopsis "SXML for EmacsLisp")
7255 (description "This is XML/XHTML done with S-Expressions in EmacsLisp.
7256 Simply, this is the easiest way to write HTML or XML in Lisp. This library
7257 uses the native form of XML representation as used by many libraries already
7258 included within Emacs. See @code{esxml-to-xml} for a concise description of
7259 the format.")
7260 (license license:gpl3+)))
7261
7262 (define-public emacs-nov-el
7263 (package
7264 (name "emacs-nov-el")
7265 (version "0.2.2")
7266 (source (origin
7267 (method git-fetch)
7268 (uri (git-reference
7269 (url "https://github.com/wasamasa/nov.el.git")
7270 (commit version)))
7271 (file-name (git-file-name name version))
7272 (sha256
7273 (base32
7274 "03s0qjvwk1f7y3i4wh2p5y3z4hdv00adgz8za3vphzc0q8i1kjzb"))))
7275 (build-system emacs-build-system)
7276 (arguments
7277 `(#:phases
7278 (modify-phases %standard-phases
7279 (add-after 'unpack 'embed-path-to-unzip
7280 (lambda _
7281 (substitute* "nov.el"
7282 (("\\(executable-find \"unzip\"\\)")
7283 (string-append "\"" (which "unzip") "\"")))
7284 #t)))))
7285 (propagated-inputs
7286 `(("emacs-dash" ,emacs-dash)
7287 ("emacs-esxml" ,emacs-esxml)))
7288 (inputs
7289 `(("unzip" ,unzip)))
7290 (home-page "https://github.com/wasamasa/nov.el/")
7291 (synopsis "Major mode for reading EPUBs in Emacs")
7292 (description "@code{nov.el} provides a major mode for reading EPUB
7293 documents.
7294
7295 Features:
7296
7297 @itemize
7298 @item Basic navigation (jump to TOC, previous/next chapter)
7299 @item Remembering and restoring the last read position
7300 @item Jump to next chapter when scrolling beyond end
7301 @item Renders EPUB2 (@code{.ncx}) and EPUB3 (@code{<nav>}) TOCs
7302 @item Hyperlinks to internal and external targets
7303 @item Supports textual and image documents
7304 @item View source of document files
7305 @item Metadata display
7306 @item Image rescaling
7307 @end itemize
7308 ")
7309 (license license:gpl3+)))
7310
7311 (define-public epipe
7312 (package
7313 (name "epipe")
7314 (version "0.1.0")
7315 (source
7316 (origin
7317 (method url-fetch)
7318 (uri (string-append "https://github.com/cute-jumper/epipe/archive/"
7319 version ".tar.gz"))
7320 (file-name (string-append name "-" version ".tar.gz"))
7321 (sha256
7322 (base32
7323 "05a036852g4j63k1mhvyfrcsgkl9lczayi7x61570ysw3cli5wp5"))))
7324 (build-system trivial-build-system)
7325 (inputs
7326 `(("bash" ,bash)
7327 ("perl" ,perl)))
7328 (native-inputs
7329 `(("tar" ,tar)
7330 ("gzip" ,gzip)))
7331 (arguments
7332 `(#:modules
7333 ((guix build utils))
7334 #:builder
7335 (begin
7336 (use-modules (guix build utils))
7337 ;; Extract source
7338 (setenv "PATH" (string-append
7339 (assoc-ref %build-inputs "tar") "/bin" ":"
7340 (assoc-ref %build-inputs "gzip") "/bin"))
7341 (system* "tar" "xvf" (assoc-ref %build-inputs "source"))
7342 (chdir (string-append ,name "-" ,version))
7343 ;; Patch shebangs
7344 (substitute* "epipe"
7345 (("/usr/bin/env bash")
7346 (string-append (assoc-ref %build-inputs "bash") "/bin/bash")))
7347 (patch-shebang "epipe.pl"
7348 (list (string-append (assoc-ref %build-inputs "perl")
7349 "/bin")))
7350 ;; Installation
7351 (for-each (lambda (file)
7352 (install-file file (string-append %output "/bin")))
7353 '("epipe" "epipe.pl"))
7354 #t)))
7355 (home-page "https://github.com/cute-jumper/epipe")
7356 (synopsis "Pipe to the @code{emacsclient}")
7357 (description "@code{epipe} provides an utility to use your editor in
7358 the pipeline, featuring the support for running @code{emacsclient}.")
7359 (license license:gpl3+)))
7360
7361 (define-public emacs-hcl-mode
7362 (package
7363 (name "emacs-hcl-mode")
7364 (version "0.03")
7365 (source
7366 (origin
7367 (method url-fetch)
7368 (uri (string-append
7369 "https://github.com/syohex/emacs-hcl-mode/archive/"
7370 version ".tar.gz"))
7371 (file-name (string-append name "-" version ".tar.gz"))
7372 (sha256
7373 (base32
7374 "0pvw74qpwh0znqzp6syp4wxjqs7dp1hbn5h7xfk97mff9l5d8k6x"))))
7375 (build-system emacs-build-system)
7376 (home-page "https://github.com/syohex/emacs-hcl-mode")
7377 (synopsis "Major mode for the Hashicorp Configuration Language")
7378 (description
7379 "@code{emacs-hcl-mode} provides an Emacs major mode for working with
7380 @acronym{HCL, Hashicorp Configuration Language}. It provides syntax
7381 highlighting and indentation support.")
7382 (license license:gpl3+)))
7383
7384 (define-public emacs-terraform-mode
7385 (package
7386 (name "emacs-terraform-mode")
7387 (version "0.06")
7388 (source
7389 (origin
7390 (method url-fetch)
7391 (uri (string-append
7392 "https://github.com/syohex/emacs-terraform-mode/archive/"
7393 version ".tar.gz"))
7394 (file-name (string-append name "-" version ".tar.gz"))
7395 (sha256
7396 (base32
7397 "0h9267ifdjmcin4sj8slxydbacx4bqicbvg8pa1qq2l72h9m5381"))))
7398 (build-system emacs-build-system)
7399 (propagated-inputs
7400 `(("emacs-hcl-mode" ,emacs-hcl-mode)))
7401 (home-page "https://github.com/syohex/emacs-terraform-mode")
7402 (synopsis "Major mode for Terraform")
7403 (description
7404 "@code{emacs-terraform-mode} provides a major mode for working with
7405 @uref{https://www.terraform.io/, Terraform} configuration files. Most of the
7406 functionality is inherited from @code{hcl-mode}.")
7407 (license license:gpl3+)))
7408
7409 (define-public emacs-exec-path-from-shell
7410 (package
7411 (name "emacs-exec-path-from-shell")
7412 (version "1.11")
7413 (source
7414 (origin
7415 (method url-fetch)
7416 (uri (string-append
7417 "https://stable.melpa.org/packages/exec-path-from-shell-"
7418 version ".el"))
7419 (sha256
7420 (base32
7421 "03qjgb81cq1l3j54lvlf98r75vmmgd06mj6qh5wa6mz4xzp4w26r"))))
7422 (build-system emacs-build-system)
7423 (home-page "https://github.com/purcell/exec-path-from-shell")
7424 (synopsis "Get environment variables such as @var{PATH} from the shell")
7425 (description
7426 "This library allows the user to set Emacs @var{exec-path} and @var{PATH}
7427 from the shell @var{PATH}, so that @code{shell-command}, @code{compile} and
7428 the like work as expected on systems on which Emacs is not guaranteed to
7429 inherit a login shell's environment variables. It also allows other
7430 environment variables to be retrieved from the shell, so that Emacs will see
7431 the same values you get in a terminal.")
7432 (license license:gpl3+)))
7433
7434 (define-public emacs-deft
7435 (package
7436 (name "emacs-deft")
7437 (version "0.8")
7438 (source
7439 (origin
7440 (method url-fetch)
7441 (uri (string-append "https://stable.melpa.org/packages/deft-"
7442 version ".el"))
7443 (sha256
7444 (base32
7445 "1vb9cjxskc7c0yyf9pvxy1fzypg1vrcgwnjz0m3hslinsgdyig58"))))
7446 (build-system emacs-build-system)
7447 (home-page "https://jblevins.org/projects/deft/")
7448 (synopsis "Quickly browse, filter, and edit plain text notes")
7449 (description
7450 "Deft is an Emacs mode for quickly browsing, filtering, and editing
7451 directories of plain text notes, inspired by Notational Velocity.")
7452 (license license:bsd-3)))
7453
7454 (define-public emacs-anzu
7455 (package
7456 (name "emacs-anzu")
7457 (version "0.62")
7458 (source
7459 (origin
7460 (method url-fetch)
7461 (uri (string-append "https://github.com/syohex/emacs-anzu/archive/"
7462 version ".tar.gz"))
7463 (file-name (string-append name "-" version ".tar.gz"))
7464 (sha256
7465 (base32
7466 "16cg3897x5znbmgk7sdy0qyd0fbic9dmmz0dchq2vz5z29yhg4cz"))))
7467 (build-system emacs-build-system)
7468 (home-page "https://github.com/syohex/emacs-anzu")
7469 (synopsis "Show number of matches in mode-line while searching")
7470 (description
7471 "Anzu provides a minor mode which displays \"current match/total
7472 matches\" in the mode line in various search modes. This is an Emacs port of
7473 Anzu.zim.")
7474 (license license:gpl3+)))
7475
7476 (define-public emacs-emmet-mode
7477 (package
7478 (name "emacs-emmet-mode")
7479 (version "1.0.8")
7480 (source (origin
7481 (method url-fetch)
7482 (uri (string-append "https://github.com/smihica/emmet-mode"
7483 "/archive/" version ".tar.gz"))
7484 (file-name (string-append name "-" version ".tar.gz"))
7485 (sha256
7486 (base32
7487 "0g3p22yabfcp98cfv9dgl9il2m2pd53isq2q11vb3s7qyn31f7zj"))))
7488 (build-system emacs-build-system)
7489 (home-page "https://github.com/smihica/emmet-mode")
7490 (synopsis "Unofficial Emmet's support for Emacs")
7491 (description
7492 "Unfold CSS-selector-like expressions to markup. It is intended to be
7493 used with SGML-like languages: XML, HTML, XHTML, XSL, etc.")
7494 (license license:gpl3+)))
7495
7496 (define-public emacs-password-store
7497 (package
7498 (name "emacs-password-store")
7499 (version "1.7.1")
7500 (source (origin
7501 (method url-fetch)
7502 (uri
7503 (string-append "https://git.zx2c4.com/password-store/snapshot/"
7504 "password-store-" version ".tar.xz"))
7505 (sha256
7506 (base32
7507 "0scqkpll2q8jhzcgcsh9kqz0gwdpvynivqjmmbzax2irjfaiklpn"))))
7508 (build-system emacs-build-system)
7509 (arguments
7510 `(#:phases
7511 (modify-phases %standard-phases
7512 (add-after 'unpack 'extract-el-file
7513 (lambda _
7514 (copy-file "contrib/emacs/password-store.el" "password-store.el")
7515 (delete-file-recursively "contrib")
7516 (delete-file-recursively "man")
7517 (delete-file-recursively "src")
7518 (delete-file-recursively "tests"))))))
7519 (propagated-inputs
7520 `(("emacs-f" ,emacs-f)
7521 ("emacs-s" ,emacs-s)
7522 ("password-store" ,password-store)))
7523 (home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs")
7524 (synopsis "Password store (pass) support for Emacs")
7525 (description
7526 "This package provides functions for working with pass (\"the
7527 standard Unix password manager\").")
7528 (license license:gpl2+)))
7529
7530 (define-public emacs-pass
7531 (package
7532 (name "emacs-pass")
7533 (version "1.7")
7534 (source (origin
7535 (method url-fetch)
7536 (uri (string-append
7537 "https://github.com/NicolasPetton/pass/archive/"
7538 version ".tar.gz"))
7539 (sha256
7540 (base32
7541 "0zlx9v6z0q3w9qhq9bq6vb7sli4c9x7qccm2wq55j0nw7bwy2yvj"))
7542 (file-name (string-append name "-" version ".tar.gz"))))
7543 (build-system emacs-build-system)
7544 (propagated-inputs
7545 `(("emacs-password-store" ,emacs-password-store)
7546 ("emacs-f" ,emacs-f)))
7547 (home-page "https://github.com/NicolasPetton/pass")
7548 (synopsis "Major mode for @file{password-store.el}")
7549 (description "This is a major mode for managing password-store (pass)
7550 keychains. The keychain entries are displayed in a directory-like structure
7551 and can be consulted and modified.")
7552 (license license:gpl3+)))
7553
7554 (define-public emacs-evil-anzu
7555 (package
7556 (name "emacs-evil-anzu")
7557 (version "0.03")
7558 (source
7559 (origin
7560 (method url-fetch)
7561 (uri (string-append "https://github.com/syohex/emacs-evil-anzu"
7562 "/archive/" version ".tar.gz"))
7563 (file-name (string-append name "-" version ".tar.gz"))
7564 (sha256
7565 (base32 "032hh2946z529cizqsg8pm6cpn5qdj8lfk3qskmx6xv3g2ra56ns"))))
7566 (build-system emacs-build-system)
7567 (propagated-inputs
7568 `(("emacs-evil" ,emacs-evil)
7569 ("emacs-anzu" ,emacs-anzu)))
7570 (home-page "https://github.com/syohex/emacs-evil-anzu")
7571 (synopsis "Anzu for evil-mode")
7572 (description "@code{anzu} provides a minor mode that displays the current
7573 match and total match information in the mode-line in various search modes.")
7574 (license license:gpl3+)))