gnu: emacs-default-encrypt: Update source URI.
[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 Ludovic Courtès <ludo@gnu.org>
4 ;;; Copyright © 2014, 2015, 2016 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 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 humanitiesNerd <catonano@gmail.com>
11 ;;; Copyright © 2016 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 Roel Janssen <roel@gnu.org>
15 ;;; Copyright © 2016, 2017 ng0 <contact.ng0@cryptolab.net>
16 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
17 ;;; Copyright © 2016, 2017 Nicolas Goaziou <mail@nicolasgoaziou.fr>
18 ;;; Copyright © 2016 Alex Vong <alexvong1995@gmail.com>
19 ;;; Copyright © 2016, 2017 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 Kyle Meyer <kyle@kyleam.com>
25 ;;; Copyright © 2017 Kei Kebreau <kei@openmailbox.org>
26 ;;;
27 ;;; This file is part of GNU Guix.
28 ;;;
29 ;;; GNU Guix is free software; you can redistribute it and/or modify it
30 ;;; under the terms of the GNU General Public License as published by
31 ;;; the Free Software Foundation; either version 3 of the License, or (at
32 ;;; your option) any later version.
33 ;;;
34 ;;; GNU Guix is distributed in the hope that it will be useful, but
35 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
36 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
37 ;;; GNU General Public License for more details.
38 ;;;
39 ;;; You should have received a copy of the GNU General Public License
40 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
41
42 (define-module (gnu packages emacs)
43 #:use-module ((guix licenses) #:prefix license:)
44 #:use-module (guix packages)
45 #:use-module (guix download)
46 #:use-module (guix git-download)
47 #:use-module (guix gexp)
48 #:use-module (guix monads)
49 #:use-module (guix store)
50 #:use-module (guix build-system gnu)
51 #:use-module (guix build-system emacs)
52 #:use-module (guix build-system glib-or-gtk)
53 #:use-module (guix build-system trivial)
54 #:use-module (gnu packages)
55 #:use-module (gnu packages audio)
56 #:use-module (gnu packages code)
57 #:use-module (gnu packages guile)
58 #:use-module (gnu packages gtk)
59 #:use-module (gnu packages gnome)
60 #:use-module (gnu packages ncurses)
61 #:use-module (gnu packages tex)
62 #:use-module (gnu packages texinfo)
63 #:use-module (gnu packages tcl)
64 #:use-module (gnu packages tls)
65 #:use-module (gnu packages pkg-config)
66 #:use-module (gnu packages xorg)
67 #:use-module (gnu packages lesstif)
68 #:use-module (gnu packages image)
69 #:use-module (gnu packages linux)
70 #:use-module (gnu packages version-control)
71 #:use-module (gnu packages imagemagick)
72 #:use-module (gnu packages w3m)
73 #:use-module (gnu packages wget)
74 #:use-module (gnu packages autotools)
75 #:use-module (gnu packages base)
76 #:use-module (gnu packages compression)
77 #:use-module (gnu packages xml)
78 #:use-module (gnu packages glib)
79 #:use-module (gnu packages acl)
80 #:use-module (gnu packages package-management)
81 #:use-module (gnu packages perl)
82 #:use-module (gnu packages pdf)
83 #:use-module (gnu packages scheme)
84 #:use-module (gnu packages statistics)
85 #:use-module (gnu packages xiph)
86 #:use-module (gnu packages mp3)
87 #:use-module (gnu packages gettext)
88 #:use-module (gnu packages fribidi)
89 #:use-module (gnu packages gd)
90 #:use-module (gnu packages fontutils)
91 #:use-module (guix utils)
92 #:use-module (srfi srfi-1))
93
94 (define-public emacs
95 (package
96 (name "emacs")
97 (version "25.1")
98 (source (origin
99 (method url-fetch)
100 (uri (string-append "mirror://gnu/emacs/emacs-"
101 version ".tar.xz"))
102 (sha256
103 (base32
104 "0cwgyiyymnx4xdg99dm2drfxcyhy2jmyf0rkr9fwj9mwwf77kwhr"))
105 (patches (search-patches "emacs-exec-path.patch"
106 "emacs-fix-scheme-indent-function.patch"
107 "emacs-source-date-epoch.patch"))
108 (modules '((guix build utils)))
109 (snippet
110 ;; Delete the bundled byte-compiled elisp files and
111 ;; generated autoloads.
112 '(with-directory-excursion "lisp"
113 (for-each delete-file
114 (append (find-files "." "\\.elc$")
115 (find-files "." "loaddefs\\.el$")
116 ;; This is the only "autoloads" file that
117 ;; does not have "*loaddefs.el" name.
118 '("eshell/esh-groups.el")))
119
120 ;; Make sure Tramp looks for binaries in the right places on
121 ;; remote GuixSD machines, where 'getconf PATH' returns
122 ;; something bogus.
123 (substitute* "net/tramp-sh.el"
124 ;; Patch the line after "(defcustom tramp-remote-path".
125 (("\\(tramp-default-remote-path")
126 (format #f "(tramp-default-remote-path ~s ~s ~s ~s "
127 "~/.guix-profile/bin" "~/.guix-profile/sbin"
128 "/run/current-system/profile/bin"
129 "/run/current-system/profile/sbin")))))))
130 (build-system glib-or-gtk-build-system)
131 (arguments
132 `(#:phases
133 (modify-phases %standard-phases
134 (add-before 'configure 'fix-/bin/pwd
135 (lambda _
136 ;; Use `pwd', not `/bin/pwd'.
137 (substitute* (find-files "." "^Makefile\\.in$")
138 (("/bin/pwd")
139 "pwd"))))
140 (add-after 'install 'install-site-start
141 ;; Use 'guix-emacs' in "site-start.el". This way, Emacs packages
142 ;; provided by Guix and installed in
143 ;; ~/.guix-profile/share/emacs/site-lisp/guix.d/PACKAGE-VERSION are
144 ;; automatically found.
145 (lambda* (#:key inputs outputs #:allow-other-keys)
146 (let* ((out (assoc-ref outputs "out"))
147 (lisp-dir (string-append out "/share/emacs/site-lisp")))
148 (copy-file (assoc-ref inputs "guix-emacs.el")
149 (string-append lisp-dir "/guix-emacs.el"))
150 (with-output-to-file (string-append lisp-dir "/site-start.el")
151 (lambda ()
152 (display
153 (string-append "(when (require 'guix-emacs nil t)\n"
154 " (guix-emacs-autoload-packages))\n"))))
155 #t))))))
156 (inputs
157 `(("gnutls" ,gnutls)
158 ("ncurses" ,ncurses)
159
160 ;; TODO: Add the optional dependencies.
161 ("libx11" ,libx11)
162 ("gtk+" ,gtk+)
163 ("libxft" ,libxft)
164 ("libtiff" ,libtiff)
165 ("giflib" ,giflib)
166 ("libjpeg" ,libjpeg-8)
167 ("acl" ,acl)
168
169 ;; When looking for libpng `configure' links with `-lpng -lz', so we
170 ;; must also provide zlib as an input.
171 ("libpng" ,libpng)
172 ("zlib" ,zlib)
173
174 ("librsvg" ,librsvg)
175 ("libxpm" ,libxpm)
176 ("libxml2" ,libxml2)
177 ("libice" ,libice)
178 ("libsm" ,libsm)
179 ("alsa-lib" ,alsa-lib)
180 ("dbus" ,dbus)
181
182 ;; multilingualization support
183 ("libotf" ,libotf)
184 ("m17n-lib" ,m17n-lib)))
185 (native-inputs
186 `(("guix-emacs.el" ,(search-auxiliary-file "emacs/guix-emacs.el"))
187 ("pkg-config" ,pkg-config)
188 ("texinfo" ,texinfo)))
189
190 (native-search-paths
191 (list (search-path-specification
192 (variable "INFOPATH")
193 (files '("share/info")))))
194
195 (home-page "https://www.gnu.org/software/emacs/")
196 (synopsis "The extensible, customizable, self-documenting text editor")
197 (description
198 "GNU Emacs is an extensible and highly customizable text editor. It is
199 based on an Emacs Lisp interpreter with extensions for text editing. Emacs
200 has been extended in essentially all areas of computing, giving rise to a
201 vast array of packages supporting, e.g., email, IRC and XMPP messaging,
202 spreadsheets, remote server editing, and much more. Emacs includes extensive
203 documentation on all aspects of the system, from basic editing to writing
204 large Lisp programs. It has full Unicode support for nearly all human
205 languages.")
206 (license license:gpl3+)))
207
208 (define-public emacs-minimal
209 ;; This is the version that you should use as an input to packages that just
210 ;; need to byte-compile .el files.
211 (package (inherit emacs)
212 (name "emacs-minimal")
213 (synopsis "The extensible text editor (used only for byte-compilation)")
214 (build-system gnu-build-system)
215 (arguments
216 (substitute-keyword-arguments (package-arguments emacs)
217 ((#:phases phases)
218 `(modify-phases ,phases
219 (delete 'install-site-start)))))
220 (inputs
221 `(("ncurses" ,ncurses)))
222 (native-inputs
223 `(("pkg-config" ,pkg-config)))))
224
225 (define-public emacs-no-x
226 (package (inherit emacs)
227 (name "emacs-no-x")
228 (synopsis "The extensible, customizable, self-documenting text
229 editor (console only)")
230 (build-system gnu-build-system)
231 (inputs (fold alist-delete
232 (package-inputs emacs)
233 '("libx11" "gtk+" "libxft" "libtiff" "giflib" "libjpeg"
234 "libpng" "librsvg" "libxpm" "libice" "libsm"
235
236 ;; D-Bus depends on libx11, so remove it as well.
237 "dbus")))))
238
239 (define-public emacs-no-x-toolkit
240 (package (inherit emacs)
241 (name "emacs-no-x-toolkit")
242 (synopsis "The extensible, customizable, self-documenting text
243 editor (without an X toolkit)" )
244 (build-system gnu-build-system)
245 (inputs (append `(("inotify-tools" ,inotify-tools))
246 (alist-delete "gtk+" (package-inputs emacs))))
247 (arguments (append '(#:configure-flags '("--with-x-toolkit=no"))
248 (package-arguments emacs)))))
249
250 (define-public guile-emacs
251 (package (inherit emacs)
252 (name "guile-emacs")
253 (version "20150512.41120e0")
254 (source (origin
255 (method git-fetch)
256 (uri (git-reference
257 (url "git://git.hcoop.net/git/bpt/emacs.git")
258 (commit "41120e0f595b16387eebfbf731fff70481de1b4b")))
259 (sha256
260 (base32
261 "0lvcvsz0f4mawj04db35p1dvkffdqkz8pkhc0jzh9j9x2i63kcz6"))))
262 (native-inputs
263 `(("autoconf" ,autoconf)
264 ("automake" ,automake)
265 ("guile" ,guile-for-guile-emacs)
266 ,@(package-native-inputs emacs)))
267 (arguments
268 (substitute-keyword-arguments `(;; Build fails if we allow parallel build.
269 #:parallel-build? #f
270 ;; Tests aren't passing for now.
271 #:tests? #f
272 ,@(package-arguments emacs))
273 ((#:phases phases)
274 `(modify-phases ,phases
275 (add-after 'unpack 'autogen
276 (lambda _
277 (zero? (system* "sh" "autogen.sh"))))))))))
278
279 \f
280 ;;;
281 ;;; Emacs hacking.
282 ;;;
283
284 (define-public geiser
285 (package
286 (name "geiser")
287 (version "0.9")
288 (source (origin
289 (method url-fetch)
290 (uri (string-append "mirror://savannah/geiser/" version
291 "/geiser-" version ".tar.gz"))
292 (sha256
293 (base32
294 "0phz9d8wjk4p13vqannv0003fwh8qqrp0gfzcs2hgq1mrmv1srss"))))
295 (build-system gnu-build-system)
296 (arguments
297 '(#:phases (alist-cons-after
298 'install 'post-install
299 (lambda* (#:key outputs #:allow-other-keys)
300 (symlink "geiser-install.el"
301 (string-append (assoc-ref outputs "out")
302 "/share/emacs/site-lisp/"
303 "geiser-autoloads.el")))
304 %standard-phases)))
305 (inputs `(("guile" ,guile-2.0)))
306 (native-inputs `(("emacs" ,emacs-minimal)))
307 (home-page "http://nongnu.org/geiser/")
308 (synopsis "Collection of Emacs modes for Guile and Racket hacking")
309 (description
310 "Geiser is a collection of Emacs major and minor modes that conspire with
311 one or more Scheme implementations to keep the Lisp Machine Spirit alive. The
312 continuously running Scheme interpreter takes the center of the stage in
313 Geiser. A bundle of Elisp shims orchestrates the dialog between the Scheme
314 implementation, Emacs and, ultimately, the schemer, giving them access to live
315 metadata.")
316 (license license:bsd-3)))
317
318 (define-public geiser-next
319 ;; This has become "geiser".
320 (deprecated-package "geiser-next" geiser))
321
322 (define-public paredit
323 (package
324 (name "emacs-paredit")
325 (version "24")
326 (source (origin
327 (method url-fetch)
328 (uri (string-append "http://mumble.net/~campbell/emacs/paredit-"
329 version ".el"))
330 (sha256
331 (base32
332 "0pp3n8q6kc70blqsaw0zlzp6bc327dpgdrjr0cnh7hqg1lras7ka"))))
333 (build-system trivial-build-system)
334 (native-inputs `(("emacs" ,emacs-minimal)))
335 (arguments
336 `(#:modules ((guix build utils)
337 (guix build emacs-utils))
338 #:builder
339 (begin
340 (use-modules (guix build utils))
341 (use-modules (guix build emacs-utils))
342
343 (let* ((emacs (string-append (assoc-ref %build-inputs "emacs")
344 "/bin/emacs"))
345 (source (assoc-ref %build-inputs "source"))
346 (lisp-dir (string-append %output
347 "/share/emacs/site-lisp"))
348 (target (string-append lisp-dir "/paredit.el")))
349 (mkdir-p lisp-dir)
350 (copy-file source target)
351 (with-directory-excursion lisp-dir
352 (parameterize ((%emacs emacs))
353 (emacs-generate-autoloads ,name lisp-dir)
354 (emacs-batch-eval '(byte-compile-file "paredit.el"))))))))
355 (home-page "http://mumble.net/~campbell/emacs/paredit/")
356 (synopsis "Emacs minor mode for editing parentheses")
357 (description
358 "ParEdit (paredit.el) is a minor mode for performing structured editing
359 of S-expression data. The typical example of this would be Lisp or Scheme
360 source code.
361
362 ParEdit helps **keep parentheses balanced** and adds many keys for moving
363 S-expressions and moving around in S-expressions. Its behavior can be jarring
364 for those who may want transient periods of unbalanced parentheses, such as
365 when typing parentheses directly or commenting out code line by line.")
366 (license license:gpl3+)))
367
368 (define-public paredit/old-name
369 (deprecated-package "paredit" paredit))
370
371 (define-public git-modes
372 (package
373 (name "git-modes")
374 (version "1.2.4")
375 (source (origin
376 (method url-fetch)
377 (uri (string-append
378 "https://github.com/magit/git-modes/archive/"
379 version ".tar.gz"))
380 (file-name (string-append name "-" version ".tar.gz"))
381 (sha256
382 (base32
383 "0xxrmf0jnyljxvllc22qa0v8lgi4k1ldnayjm5hf68m25jsr378l"))))
384 (build-system gnu-build-system)
385 (arguments
386 `(#:modules ((guix build gnu-build-system)
387 (guix build emacs-utils)
388 (guix build utils))
389 #:imported-modules (,@%gnu-build-system-modules
390 (guix build emacs-utils))
391
392 #:make-flags (list (string-append "PREFIX="
393 (assoc-ref %outputs "out"))
394 ;; Don't put .el files in a 'git-modes'
395 ;; sub-directory.
396 (string-append "LISPDIR="
397 (assoc-ref %outputs "out")
398 "/share/emacs/site-lisp"))
399 #:tests? #f ; no check target
400 #:phases (modify-phases %standard-phases
401 (delete 'configure)
402 (add-after 'install 'emacs-autoloads
403 (lambda* (#:key outputs #:allow-other-keys)
404 (let* ((out (assoc-ref outputs "out"))
405 (lisp (string-append
406 out "/share/emacs/site-lisp/")))
407 (emacs-generate-autoloads ,name lisp)))))))
408 (native-inputs `(("emacs" ,emacs-minimal)))
409 (home-page "https://github.com/magit/git-modes")
410 (synopsis "Emacs major modes for Git configuration files")
411 (description
412 "This package provides Emacs major modes for editing various Git
413 configuration files, such as .gitattributes, .gitignore, and .git/config.")
414 (license license:gpl3+)))
415
416 (define-public emacs-with-editor
417 (package
418 (name "emacs-with-editor")
419 (version "2.5.10")
420 (source (origin
421 (method url-fetch)
422 (uri (string-append
423 "https://github.com/magit/with-editor/archive/v"
424 version ".tar.gz"))
425 (file-name (string-append name "-" version ".tar.gz"))
426 (sha256
427 (base32
428 "0lsxa1hghybkzvqhqvvym3hxbyp9vjcnnpb9j800z0vyhbnlka67"))))
429 (build-system emacs-build-system)
430 (propagated-inputs
431 `(("emacs-dash" ,emacs-dash)))
432 (home-page "https://github.com/magit/with-editor")
433 (synopsis "Emacs library for using Emacsclient as EDITOR")
434 (description
435 "This package provides an Emacs library to use the Emacsclient as
436 @code{$EDITOR} of child processes, making sure they know how to call home.
437 For remote processes a substitute is provided, which communicates with Emacs
438 on stdout instead of using a socket as the Emacsclient does.")
439 (license license:gpl3+)))
440
441 (define-public magit
442 (package
443 (name "magit")
444 (version "2.10.3")
445 (source (origin
446 (method url-fetch)
447 (uri (string-append
448 "https://github.com/magit/magit/releases/download/"
449 version "/" name "-" version ".tar.gz"))
450 (sha256
451 (base32
452 "03ln65ss420gc3h4pi56dayd1p163xfxrxrd9fkb9xnkl8mjglqk"))))
453 (build-system gnu-build-system)
454 (native-inputs `(("texinfo" ,texinfo)
455 ("emacs" ,emacs-minimal)))
456 (inputs
457 `(("git" ,git)
458 ("perl" ,perl)))
459 (propagated-inputs
460 `(("dash" ,emacs-dash)
461 ("with-editor" ,emacs-with-editor)))
462 (arguments
463 `(#:modules ((guix build gnu-build-system)
464 (guix build utils)
465 (guix build emacs-utils))
466 #:imported-modules (,@%gnu-build-system-modules
467 (guix build emacs-utils))
468
469 #:test-target "test"
470 #:tests? #f ; tests are not included in the release
471
472 #:make-flags
473 (list (string-append "PREFIX=" %output)
474 ;; Don't put .el files in a sub-directory.
475 (string-append "lispdir=" %output "/share/emacs/site-lisp")
476 (string-append "DASH_DIR="
477 (assoc-ref %build-inputs "dash")
478 "/share/emacs/site-lisp/guix.d/dash-"
479 ,(package-version emacs-dash))
480 (string-append "WITH_EDITOR_DIR="
481 (assoc-ref %build-inputs "with-editor")
482 "/share/emacs/site-lisp/guix.d/with-editor-"
483 ,(package-version emacs-with-editor)))
484
485 #:phases
486 (modify-phases %standard-phases
487 (delete 'configure)
488 (add-before
489 'build 'patch-exec-paths
490 (lambda* (#:key inputs #:allow-other-keys)
491 (let ((git (assoc-ref inputs "git"))
492 (perl (assoc-ref inputs "perl")))
493 (emacs-substitute-variables "lisp/magit-git.el"
494 ("magit-git-executable" (string-append git "/bin/git")))
495 (substitute* "lisp/magit-sequence.el"
496 (("perl") (string-append perl "/bin/perl")))
497 #t))))))
498 (home-page "http://magit.github.io/")
499 (synopsis "Emacs interface for the Git version control system")
500 (description
501 "With Magit, you can inspect and modify your Git repositories with Emacs.
502 You can review and commit the changes you have made to the tracked files, for
503 example, and you can browse the history of past changes. There is support for
504 cherry picking, reverting, merging, rebasing, and other common Git
505 operations.")
506 (license license:gpl3+)))
507
508 (define-public magit-svn
509 (package
510 (name "magit-svn")
511 (version "2.1.1")
512 (source (origin
513 (method url-fetch)
514 (uri (string-append
515 "https://github.com/magit/magit-svn/archive/"
516 version ".tar.gz"))
517 (file-name (string-append name "-" version ".tar.gz"))
518 (sha256
519 (base32
520 "04y88j7q9h8xjbx5dbick6n5nr1522sn9i1znp0qwk3vjb4b5mzz"))))
521 (build-system trivial-build-system)
522 (native-inputs `(("emacs" ,emacs-minimal)
523 ("tar" ,tar)
524 ("gzip" ,gzip)))
525 (propagated-inputs `(("dash" ,emacs-dash)
526 ("magit" ,magit)))
527 (arguments
528 `(#:modules ((guix build utils)
529 (guix build emacs-utils))
530
531 #:builder
532 (begin
533 (use-modules (guix build utils)
534 (guix build emacs-utils))
535
536 (let* ((tar (string-append (assoc-ref %build-inputs "tar")
537 "/bin/tar"))
538 (PATH (string-append (assoc-ref %build-inputs "gzip")
539 "/bin"))
540 (emacs (string-append (assoc-ref %build-inputs "emacs")
541 "/bin/emacs"))
542 (magit (string-append (assoc-ref %build-inputs "magit")
543 "/share/emacs/site-lisp"))
544 (dash (string-append (assoc-ref %build-inputs "dash")
545 "/share/emacs/site-lisp/guix.d/dash-"
546 ,(package-version emacs-dash)))
547 (source (assoc-ref %build-inputs "source"))
548 (lisp-dir (string-append %output "/share/emacs/site-lisp")))
549 (setenv "PATH" PATH)
550 (system* tar "xvf" source)
551
552 (install-file (string-append ,name "-" ,version "/magit-svn.el")
553 lisp-dir)
554
555 (with-directory-excursion lisp-dir
556 (parameterize ((%emacs emacs))
557 (emacs-generate-autoloads ,name lisp-dir)
558 (setenv "EMACSLOADPATH"
559 (string-append ":" magit ":" dash))
560 (emacs-batch-eval '(byte-compile-file "magit-svn.el"))))))))
561 (home-page "https://github.com/magit/magit-svn")
562 (synopsis "Git-SVN extension to Magit")
563 (description
564 "This package is an extension to Magit, the Git Emacs mode, providing
565 support for Git-SVN.")
566 (license license:gpl3+)))
567
568 (define-public emacs-magit-popup
569 (package
570 (name "emacs-magit-popup")
571 (version (package-version magit))
572 (source (origin
573 (method url-fetch)
574 (uri (string-append
575 "https://raw.githubusercontent.com/magit/magit/"
576 version "/lisp/magit-popup.el"))
577 (file-name (string-append "magit-popup-" version ".el"))
578 (sha256
579 (base32
580 "08b6ypfiq8zavjfq0wcdh26xziwq7rqvvv3lfpib9101146kzx6d"))))
581 (build-system emacs-build-system)
582 (propagated-inputs
583 `(("emacs-dash" ,emacs-dash)))
584 (home-page "https://github.com/magit/magit")
585 (synopsis "Define prefix-infix-suffix command combos")
586 (description
587 "This library implements a generic interface for toggling switches and
588 setting options and then invoking an Emacs command which does something with
589 these arguments. The prototypical use is for the command to call an external
590 process, passing on the arguments as command line arguments.")
591 (license license:gpl3+)))
592
593 (define-public haskell-mode
594 (package
595 (name "haskell-mode")
596 (version "16.1")
597 (source (origin
598 (method url-fetch)
599 (file-name (string-append name "-" version ".tar.gz"))
600 (uri (string-append
601 "https://github.com/haskell/haskell-mode/archive/v"
602 version ".tar.gz"))
603 (sha256
604 (base32 "0g6lcjw7lcgavv3yrd8xjcyqgfyjl787y32r1z14amw2f009m78h"))))
605 (inputs
606 `(("emacs-el-search" ,emacs-el-search) ; for tests
607 ("emacs-stream" ,emacs-stream))) ; for tests
608 (propagated-inputs
609 `(("emacs-dash" ,emacs-dash)))
610 (native-inputs
611 `(("emacs" ,emacs-minimal)
612 ("texinfo" ,texinfo)))
613 (build-system gnu-build-system)
614 (arguments
615 `(#:make-flags (list (string-append "EMACS="
616 (assoc-ref %build-inputs "emacs")
617 "/bin/emacs"))
618 #:modules ((ice-9 match)
619 (srfi srfi-26)
620 ,@%gnu-build-system-modules)
621 #:phases
622 (modify-phases %standard-phases
623 (delete 'configure)
624 (add-before
625 'build 'pre-build
626 (lambda* (#:key inputs #:allow-other-keys)
627 (define (el-dir store-dir)
628 (match (find-files store-dir)
629 ((f1 f2 ...) (dirname f1))
630 (_ "")))
631
632 (let ((sh (string-append (assoc-ref inputs "bash") "/bin/sh")))
633 (define emacs-prefix? (cut string-prefix? "emacs-" <>))
634
635 (setenv "SHELL" "sh")
636 (setenv "EMACSLOADPATH"
637 (string-concatenate
638 (map (match-lambda
639 (((? emacs-prefix? name) . dir)
640 (string-append (el-dir dir) ":"))
641 (_ ""))
642 inputs)))
643 (substitute* (find-files "." "\\.el") (("/bin/sh") sh))
644 (substitute* "tests/haskell-code-conventions.el"
645 ;; Function name recently changed in "emacs-el-search".
646 (("el-search--search-pattern") "el-search-forward")
647 ;; Don't contact home.
648 (("\\(when \\(>= emacs-major-version 25\\)")
649 "(require 'el-search) (when nil"))
650 #t)))
651 (replace
652 'install
653 (lambda* (#:key outputs #:allow-other-keys)
654 (let* ((out (assoc-ref outputs "out"))
655 (el-dir (string-append out "/share/emacs/site-lisp"))
656 (doc (string-append
657 out "/share/doc/haskell-mode-" ,version))
658 (info (string-append out "/share/info")))
659 (define (copy-to-dir dir files)
660 (for-each (lambda (f)
661 (install-file f dir))
662 files))
663
664 (with-directory-excursion "doc"
665 (unless (zero? (system* "makeinfo" "haskell-mode.texi"))
666 (error "makeinfo failed"))
667 (install-file "haskell-mode.info" info))
668 (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md"))
669 (copy-to-dir el-dir (find-files "." "\\.elc?"))
670 ;; These are part of other packages.
671 (with-directory-excursion el-dir
672 (for-each delete-file '("dash.el" "ert.el")))
673 #t))))))
674 (home-page "https://github.com/haskell/haskell-mode")
675 (synopsis "Haskell mode for Emacs")
676 (description
677 "This is an Emacs mode for editing, debugging and developing Haskell
678 programs.")
679 (license license:gpl3+)))
680
681 (define-public let-alist
682 (package
683 (name "emacs-let-alist")
684 (version "1.0.4")
685 (source (origin
686 (method url-fetch)
687 (uri (string-append "https://elpa.gnu.org/packages/let-alist-"
688 version ".el"))
689 (sha256
690 (base32
691 "07312bvvyz86lf64vdkxg2l1wgfjl25ljdjwlf1bdzj01c4hm88x"))))
692 (build-system trivial-build-system)
693 (arguments
694 `(#:modules ((guix build utils)
695 (guix build emacs-utils))
696
697 #:builder (begin
698 (use-modules (guix build emacs-utils)
699 (guix build utils))
700
701 (let* ((out (assoc-ref %outputs "out"))
702 (lispdir (string-append out
703 "/share/emacs/site-lisp/"
704 "guix.d/let-alist-"
705 ,version))
706 (emacs (assoc-ref %build-inputs "emacs")))
707
708 (mkdir-p lispdir)
709 (copy-file (assoc-ref %build-inputs "source")
710 (string-append lispdir "/let-alist.el"))
711
712 (setenv "PATH" (string-append emacs "/bin"))
713 (emacs-byte-compile-directory lispdir)
714 #t))))
715 (native-inputs `(("emacs" ,emacs-minimal)))
716 (home-page "https://elpa.gnu.org/packages/let-alist.html")
717 (synopsis "Easily let-bind values of an assoc-list by their names")
718 (description
719 "This package offers a single Emacs Lisp macro, @code{let-alist}. This
720 macro takes a first argument, whose value must be an alist (association list),
721 and a body.
722
723 The macro expands to a let form containing the body, where each dotted symbol
724 inside body is let-bound to their cdrs in the alist. Only those present in
725 the body are let-bound and this search is done at compile time.")
726 (license license:gpl3+)))
727
728 (define-public flycheck
729 (package
730 (name "emacs-flycheck")
731 (version "28")
732 (source (origin
733 (method url-fetch)
734 (uri (string-append
735 "https://github.com/flycheck/flycheck/releases/download/"
736 version "/flycheck-" version ".tar"))
737 (sha256
738 (base32
739 "1yjxivk11d7w39zfhj2xr4h6xhwx1aj6yhyzd63rjrad7xpjfl86"))))
740 (build-system emacs-build-system)
741 (propagated-inputs
742 `(("emacs-dash" ,emacs-dash)
743 ("emacs-let-alist" ,let-alist)
744 ("emacs-seq" ,emacs-seq)))
745 (home-page "https://www.flycheck.org")
746 (synopsis "On-the-fly syntax checking")
747 (description
748 "This package provides on-the-fly syntax checking for GNU Emacs. It is a
749 replacement for the older Flymake extension which is part of GNU Emacs, with
750 many improvements and additional features.
751
752 Flycheck provides fully-automatic, fail-safe, on-the-fly background syntax
753 checking for over 30 programming and markup languages with more than 70
754 different tools. It highlights errors and warnings inline in the buffer, and
755 provides an optional IDE-like error list.")
756 (license license:gpl3+))) ;+GFDLv1.3+ for the manual
757
758 \f
759 ;;;
760 ;;; Web browsing.
761 ;;;
762
763 (define-public emacs-w3m
764 (package
765 (name "emacs-w3m")
766 (version "1.4.538+0.20141022")
767 (source (origin
768 (method url-fetch)
769 (uri (string-append "mirror://debian/pool/main/w/w3m-el/w3m-el_"
770 version ".orig.tar.gz"))
771 (sha256
772 (base32
773 "0zfxmq86pwk64yv0426gnjrvhjrgrjqn08sdcdhmmjmfpmqvm79y"))))
774 (build-system gnu-build-system)
775 (native-inputs `(("autoconf" ,autoconf)
776 ("emacs" ,emacs-minimal)))
777 (inputs `(("w3m" ,w3m)
778 ("imagemagick" ,imagemagick)))
779 (arguments
780 `(#:modules ((guix build gnu-build-system)
781 (guix build utils)
782 (guix build emacs-utils))
783 #:imported-modules (,@%gnu-build-system-modules
784 (guix build emacs-utils))
785 #:configure-flags
786 (let ((out (assoc-ref %outputs "out")))
787 (list (string-append "--with-lispdir="
788 out "/share/emacs/site-lisp")
789 (string-append "--with-icondir="
790 out "/share/images/emacs-w3m")
791 ;; Leave .el files uncompressed, otherwise GC can't
792 ;; identify run-time dependencies. See
793 ;; <http://lists.gnu.org/archive/html/guix-devel/2015-12/msg00208.html>
794 "--without-compress-install"))
795 #:tests? #f ; no check target
796 #:phases
797 (modify-phases %standard-phases
798 (add-after 'unpack 'autoconf
799 (lambda _
800 (zero? (system* "autoconf"))))
801 (add-before 'build 'patch-exec-paths
802 (lambda* (#:key inputs outputs #:allow-other-keys)
803 (let ((out (assoc-ref outputs "out"))
804 (w3m (assoc-ref inputs "w3m"))
805 (imagemagick (assoc-ref inputs "imagemagick"))
806 (coreutils (assoc-ref inputs "coreutils")))
807 (emacs-substitute-variables "w3m.el"
808 ("w3m-command" (string-append w3m "/bin/w3m"))
809 ("w3m-touch-command"
810 (string-append coreutils "/bin/touch"))
811 ("w3m-image-viewer"
812 (string-append imagemagick "/bin/display"))
813 ("w3m-icon-directory"
814 (string-append out "/share/images/emacs-w3m")))
815 (emacs-substitute-variables "w3m-image.el"
816 ("w3m-imagick-convert-program"
817 (string-append imagemagick "/bin/convert"))
818 ("w3m-imagick-identify-program"
819 (string-append imagemagick "/bin/identify")))
820 #t)))
821 (replace 'install
822 (lambda* (#:key outputs #:allow-other-keys)
823 (and (zero? (system* "make" "install" "install-icons"))
824 (with-directory-excursion
825 (string-append (assoc-ref outputs "out")
826 "/share/emacs/site-lisp")
827 (for-each delete-file '("ChangeLog" "ChangeLog.1"))
828 (symlink "w3m-load.el" "w3m-autoloads.el")
829 #t)))))))
830 (home-page "http://emacs-w3m.namazu.org/")
831 (synopsis "Simple Web browser for Emacs based on w3m")
832 (description
833 "Emacs-w3m is an emacs interface for the w3m web browser.")
834 (license license:gpl2+)))
835
836 (define-public emacs-wget
837 (package
838 (name "emacs-wget")
839 (version "0.5.0")
840 (source (origin
841 (method url-fetch)
842 (uri (string-append "mirror://debian/pool/main/w/wget-el/wget-el_"
843 version ".orig.tar.gz"))
844 (sha256
845 (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff"))))
846 (build-system gnu-build-system)
847 (inputs `(("wget" ,wget)))
848 (native-inputs `(("emacs" ,emacs-minimal)))
849 (arguments
850 `(#:modules ((guix build gnu-build-system)
851 (guix build utils)
852 (guix build emacs-utils))
853 #:imported-modules (,@%gnu-build-system-modules
854 (guix build emacs-utils))
855 #:tests? #f ; no check target
856 #:phases
857 (alist-replace
858 'configure
859 (lambda* (#:key outputs #:allow-other-keys)
860 (substitute* "Makefile"
861 (("/usr/local") (assoc-ref outputs "out"))
862 (("/site-lisp/emacs-wget") "/site-lisp")))
863 (alist-cons-before
864 'build 'patch-exec-paths
865 (lambda* (#:key inputs outputs #:allow-other-keys)
866 (let ((wget (assoc-ref inputs "wget")))
867 (emacs-substitute-variables "wget.el"
868 ("wget-command" (string-append wget "/bin/wget")))))
869 (alist-cons-after
870 'install 'post-install
871 (lambda* (#:key outputs #:allow-other-keys)
872 (emacs-generate-autoloads
873 "wget" (string-append (assoc-ref outputs "out")
874 "/share/emacs/site-lisp/")))
875 %standard-phases)))))
876 (home-page "http://www.emacswiki.org/emacs/EmacsWget")
877 (synopsis "Simple file downloader for Emacs based on wget")
878 (description
879 "Emacs-wget is an emacs interface for the wget file downloader.")
880 (license license:gpl2+)))
881
882 \f
883 ;;;
884 ;;; Multimedia.
885 ;;;
886
887 (define-public emms
888 (package
889 (name "emacs-emms")
890 (version "4.2")
891 (source (origin
892 (method url-fetch)
893 (uri (string-append "mirror://gnu/emms/emms-"
894 version ".tar.gz"))
895 (sha256
896 (base32
897 "1xa9y64g5z8gfnxk1c2rf3plfjhqn4r6j8dpiygnfs6w4giysn22"))
898 (modules '((guix build utils)))
899 (snippet
900 '(substitute* "Makefile"
901 (("/usr/bin/install-info")
902 ;; No need to use 'install-info' since it would create a
903 ;; useless 'dir' file.
904 "true")
905 (("^INFODIR=.*")
906 ;; Install Info files to $out/share/info, not $out/info.
907 "INFODIR := $(PREFIX)/share/info\n")
908 (("/site-lisp/emms")
909 ;; Install directly in share/emacs/site-lisp, not in a
910 ;; sub-directory.
911 "/site-lisp")
912 (("^all: (.*)\n" _ rest)
913 ;; Build 'emms-print-metadata'.
914 (string-append "all: " rest " emms-print-metadata\n"))))))
915 (build-system gnu-build-system)
916 (arguments
917 `(#:modules ((guix build gnu-build-system)
918 (guix build utils)
919 (guix build emacs-utils))
920 #:imported-modules (,@%gnu-build-system-modules
921 (guix build emacs-utils))
922
923 #:phases
924 (modify-phases %standard-phases
925 (replace 'configure
926 (lambda* (#:key inputs outputs #:allow-other-keys)
927 (let ((out (assoc-ref outputs "out"))
928 (vorbis (assoc-ref inputs "vorbis-tools"))
929 (alsa (assoc-ref inputs "alsa-utils"))
930 (mpg321 (assoc-ref inputs "mpg321"))
931 (mp3info (assoc-ref inputs "mp3info")))
932 ;; Specify the installation directory.
933 (substitute* "Makefile"
934 (("PREFIX=.*$")
935 (string-append "PREFIX := " out "\n")))
936
937 (setenv "SHELL" (which "sh"))
938 (setenv "CC" "gcc")
939
940 ;; Specify the absolute file names of the various
941 ;; programs so that everything works out-of-the-box.
942 (with-directory-excursion "lisp"
943 (emacs-substitute-variables
944 "emms-player-mpg321-remote.el"
945 ("emms-player-mpg321-remote-command"
946 (string-append mpg321 "/bin/mpg321")))
947 (substitute* "emms-player-simple.el"
948 (("\"ogg123\"")
949 (string-append "\"" vorbis "/bin/ogg123\"")))
950 (emacs-substitute-variables "emms-info-ogginfo.el"
951 ("emms-info-ogginfo-program-name"
952 (string-append vorbis "/bin/ogginfo")))
953 (emacs-substitute-variables "emms-info-libtag.el"
954 ("emms-info-libtag-program-name"
955 (string-append out "/bin/emms-print-metadata")))
956 (emacs-substitute-variables "emms-info-mp3info.el"
957 ("emms-info-mp3info-program-name"
958 (string-append mp3info "/bin/mp3info")))
959 (substitute* "emms-volume-amixer.el"
960 (("\"amixer\"")
961 (string-append "\"" alsa "/bin/amixer\"")))
962 (substitute* "emms-tag-editor.el"
963 (("\"mp3info\"")
964 (string-append "\"" mp3info "/bin/mp3info\"")))))))
965 (add-before 'install 'pre-install
966 (lambda* (#:key outputs #:allow-other-keys)
967 ;; The 'install' rule expects the target directories to exist.
968 (let* ((out (assoc-ref outputs "out"))
969 (bin (string-append out "/bin"))
970 (man1 (string-append out "/share/man/man1")))
971 (mkdir-p bin)
972 (mkdir-p man1)
973 #t)))
974 (add-after 'install 'post-install
975 (lambda* (#:key outputs #:allow-other-keys)
976 (let ((out (assoc-ref outputs "out")))
977 (symlink "emms-auto.el"
978 (string-append out "/share/emacs/site-lisp/"
979 "emms-autoloads.el"))))))
980 #:tests? #f))
981 (native-inputs `(("emacs" ,emacs-minimal) ;for (guix build emacs-utils)
982 ("texinfo" ,texinfo)))
983 (inputs `(("alsa-utils" ,alsa-utils)
984 ("vorbis-tools" ,vorbis-tools)
985 ("mpg321" ,mpg321)
986 ("taglib" ,taglib)
987 ("mp3info" ,mp3info)))
988 (properties '((upstream-name . "emms")))
989 (synopsis "Emacs Multimedia System")
990 (description
991 "EMMS is the Emacs Multimedia System. It is a small front-end which
992 can control one of the supported external players. Thus, it supports
993 whatever formats are supported by your music player. It also
994 supports tagging and playlist management, all behind a clean and
995 light user interface.")
996 (home-page "https://www.gnu.org/software/emms/")
997 (license license:gpl3+)))
998
999 (define-public emacs-emms-player-mpv
1000 (package
1001 (name "emacs-emms-player-mpv")
1002 (version "0.0.10")
1003 (source
1004 (origin
1005 (method url-fetch)
1006 (uri (string-append "https://github.com/dochang/emms-player-mpv/archive/"
1007 version ".tar.gz"))
1008 (file-name (string-append name "-" version ".tar.gz"))
1009 (sha256
1010 (base32
1011 "1q81fpmwr8hpdgq71vbdai2nml4yyqbmk4ffdyl4irlwph8gfjyq"))))
1012 (build-system emacs-build-system)
1013 (propagated-inputs
1014 `(("emms" ,emms)))
1015 (home-page "https://github.com/dochang/emms-player-mpv/")
1016 (synopsis "Mpv support for EMMS")
1017 (description
1018 "This package provides an EMMS player that uses mpv. It supports pause
1019 and seeking.")
1020 (license license:gpl3+)))
1021
1022 (define-public emacs-emms-mode-line-cycle
1023 (package
1024 (name "emacs-emms-mode-line-cycle")
1025 (version "0.2.5")
1026 (source
1027 (origin
1028 (method url-fetch)
1029 (uri (string-append "https://github.com/momomo5717/emms-mode-line-cycle"
1030 "/archive/" version ".tar.gz"))
1031 (file-name (string-append name "-" version ".tar.gz"))
1032 (sha256
1033 (base32
1034 "0ifszi930pnaxk1x8pcydmvnp06868gc7nfx14q17zbajbx735k6"))))
1035 (build-system emacs-build-system)
1036 (propagated-inputs
1037 `(("emms" ,emms)))
1038 (home-page "https://github.com/momomo5717/emms-mode-line-cycle")
1039 (synopsis "Display the EMMS mode line as a ticker")
1040 (description
1041 "This is a minor mode for updating the EMMS mode-line string cyclically
1042 within a specified width. It is useful for displaying long track titles.")
1043 (license license:gpl3+)))
1044
1045 \f
1046 ;;;
1047 ;;; Miscellaneous.
1048 ;;;
1049
1050 (define-public bbdb
1051 (package
1052 (name "bbdb")
1053 (version "3.1.2")
1054 (source (origin
1055 (method url-fetch)
1056 (uri (string-append "mirror://savannah/bbdb/bbdb-"
1057 version ".tar.gz"))
1058 (sha256
1059 (base32
1060 "1gs16bbpiiy01w9pyg12868r57kx1v3hnw04gmqsmpc40l1hyy05"))
1061 (modules '((guix build utils)))
1062 (snippet
1063 ;; We don't want to build and install the PDF.
1064 '(substitute* "doc/Makefile.in"
1065 (("^doc_DATA = .*$")
1066 "doc_DATA =\n")))))
1067 (build-system gnu-build-system)
1068 (arguments
1069 '(#:phases (alist-cons-after
1070 'install 'post-install
1071 (lambda* (#:key outputs #:allow-other-keys)
1072 ;; Add an autoloads file with the right name for guix.el.
1073 (let* ((out (assoc-ref outputs "out"))
1074 (site (string-append out "/share/emacs/site-lisp")))
1075 (with-directory-excursion site
1076 (symlink "bbdb-loaddefs.el" "bbdb-autoloads.el"))))
1077 %standard-phases)))
1078 (native-inputs `(("emacs" ,emacs-minimal)))
1079 (home-page "http://savannah.nongnu.org/projects/bbdb/")
1080 (synopsis "Contact management utility for Emacs")
1081 (description
1082 "BBDB is the Insidious Big Brother Database for GNU Emacs. It provides
1083 an address book for email and snail mail addresses, phone numbers and the
1084 like. It can be linked with various Emacs mail clients (Message and Mail
1085 mode, Rmail, Gnus, MH-E, and VM). BBDB is fully customizable.")
1086 (license license:gpl3+)))
1087
1088 (define-public emacs-aggressive-indent
1089 (package
1090 (name "emacs-aggressive-indent")
1091 (version "1.8.3")
1092 (source (origin
1093 (method url-fetch)
1094 (uri (string-append "https://elpa.gnu.org/packages/"
1095 "aggressive-indent-" version ".el"))
1096 (sha256
1097 (base32
1098 "0jnzccl50x0wapprgwxinp99pwwa6j43q6msn4gv437j7swy8wnj"))))
1099 (build-system emacs-build-system)
1100 (home-page "https://elpa.gnu.org/packages/aggressive-indent.html")
1101 (synopsis "Minor mode to aggressively keep your code always indented")
1102 (description
1103 "@code{aggressive-indent-mode} is a minor mode that keeps your code
1104 always indented. It reindents after every change, making it more reliable
1105 than @code{electric-indent-mode}.")
1106 (license license:gpl2+)))
1107
1108 (define-public emacs-ag
1109 (package
1110 (name "emacs-ag")
1111 (version "0.47")
1112 (source (origin
1113 (method url-fetch)
1114 (uri (string-append
1115 "https://github.com/Wilfred/ag.el/archive/"
1116 version ".tar.gz"))
1117 (file-name (string-append name "-" version ".tar.gz"))
1118 (sha256
1119 (base32
1120 "1rlmp6wnyhqfg86dbz17r914msp58favn4kd4yrdwyia265a4lar"))))
1121 (build-system emacs-build-system)
1122 (arguments
1123 `(#:phases
1124 (modify-phases %standard-phases
1125 (add-before 'install 'patch-exec-paths
1126 (lambda* (#:key inputs #:allow-other-keys)
1127 (emacs-substitute-variables "ag.el"
1128 ("ag-executable"
1129 (string-append (assoc-ref inputs "the-silver-searcher")
1130 "/bin/ag")))
1131 #t)))))
1132 (inputs
1133 `(("the-silver-searcher" ,the-silver-searcher)))
1134 (propagated-inputs
1135 `(("dash" ,emacs-dash)
1136 ("s" ,emacs-s)))
1137 (home-page "https://github.com/Wilfred/ag.el")
1138 (synopsis "Front-end for ag (the-silver-searcher) for Emacs")
1139 (description "This package provides the ability to use the silver
1140 searcher, a code searching tool, sometimes abbreviated to @code{ag}. Features
1141 include version control system awareness, use of Perl compatible regular
1142 expressions, editing the search results directly and searching file names
1143 rather than the contents of files.")
1144 (license license:gpl3+)))
1145
1146 (define-public emacs-async
1147 (package
1148 (name "emacs-async")
1149 (version "1.9")
1150 (source (origin
1151 (method url-fetch)
1152 (uri (string-append "https://elpa.gnu.org/packages/async-"
1153 version ".tar"))
1154 (sha256
1155 (base32
1156 "1ip5nc8xyln5szvqwp6wqva9xr84pn8ssn3nnphrszr19y4js2bm"))))
1157 (build-system emacs-build-system)
1158 (home-page "https://elpa.gnu.org/packages/async.html")
1159 (synopsis "Asynchronous processing in Emacs")
1160 (description
1161 "This package provides the ability to call asynchronous functions and
1162 processes. For example, it can be used to run dired commands (for copying,
1163 moving, etc.) asynchronously using @code{dired-async-mode}. Also it is used
1164 as a library for other Emacs packages.")
1165 (license license:gpl3+)))
1166
1167 (define-public emacs-auctex
1168 (package
1169 (name "emacs-auctex")
1170 (version "11.90.0")
1171 (source
1172 (origin
1173 (method url-fetch)
1174 (uri (string-append
1175 "https://elpa.gnu.org/packages/auctex-"
1176 version
1177 ".tar"))
1178 (sha256
1179 (base32
1180 "04nsndwcf0dimgc2p1yzzrymc36amzdnjg0158nxplmjkzdp28gy"))))
1181 (build-system emacs-build-system)
1182 ;; We use 'emacs' because AUCTeX requires dbus at compile time
1183 ;; ('emacs-minimal' does not provide dbus).
1184 (arguments `(#:emacs ,emacs))
1185 (native-inputs
1186 `(("perl" ,perl)))
1187 (home-page "https://www.gnu.org/software/auctex/")
1188 (synopsis "Integrated environment for TeX")
1189 (description
1190 "AUCTeX is a comprehensive customizable integrated environment for
1191 writing input files for TeX, LaTeX, ConTeXt, Texinfo, and docTeX using Emacs
1192 or XEmacs.")
1193 (license license:gpl3+)))
1194
1195 (define-public emacs-mmm-mode
1196 (package
1197 (name "emacs-mmm-mode")
1198 (version "0.5.4")
1199 (source
1200 (origin
1201 (method url-fetch)
1202 (uri (string-append
1203 "https://github.com/purcell/mmm-mode/archive/"
1204 version ".tar.gz"))
1205 (file-name (string-append name "-" version ".tar.gz"))
1206 (sha256
1207 (base32
1208 "10kwslnflbjqm62wkrq420crqzdqalzfflp9pqk1i12zm6dm4mfv"))))
1209 (build-system gnu-build-system)
1210 (arguments
1211 '(#:phases
1212 (modify-phases %standard-phases
1213 (add-after 'unpack 'autogen
1214 (lambda _
1215 (zero? (system* "sh" "autogen.sh")))))))
1216 (native-inputs
1217 `(("autoconf" ,autoconf)
1218 ("automake" ,automake)
1219 ("emacs" ,emacs-minimal)
1220 ("texinfo" ,texinfo)))
1221 (home-page "https://github.com/purcell/mmm-mode")
1222 (synopsis "Allow multiple major modes in an Emacs buffer")
1223 (description
1224 "MMM Mode is a minor mode that allows multiple major modes to coexist in a
1225 single buffer.")
1226 (license license:gpl3+)))
1227
1228 (define-public emacs-pdf-tools
1229 (package
1230 (name "emacs-pdf-tools")
1231 (version "0.70")
1232 (source (origin
1233 (method url-fetch)
1234 (uri (string-append
1235 "https://github.com/politza/pdf-tools/archive/v"
1236 version ".tar.gz"))
1237 (file-name (string-append name "-" version ".tar.gz"))
1238 (sha256
1239 (base32
1240 "1m0api6wiawswyk46bdsyk6r5rg3b86a4paar6nassm6x6c6vr77"))))
1241 (build-system gnu-build-system)
1242 (arguments
1243 `(#:tests? #f ; there are no tests
1244 #:modules ((guix build gnu-build-system)
1245 ((guix build emacs-build-system) #:prefix emacs:)
1246 (guix build utils)
1247 (guix build emacs-utils))
1248 #:imported-modules (,@%gnu-build-system-modules
1249 (guix build emacs-build-system)
1250 (guix build emacs-utils))
1251 #:phases
1252 (modify-phases %standard-phases
1253 ;; Build server side using 'gnu-build-system'.
1254 (add-after 'unpack 'enter-server-dir
1255 (lambda _ (chdir "server") #t))
1256 (add-before 'configure 'autogen
1257 (lambda _
1258 (zero? (system* "bash" "autogen.sh"))))
1259
1260 ;; Build emacs side using 'emacs-build-system'.
1261 (add-after 'compress-documentation 'enter-lisp-dir
1262 (lambda _ (chdir "../lisp") #t))
1263 (add-after 'enter-lisp-dir 'emacs-patch-variables
1264 (lambda* (#:key outputs #:allow-other-keys)
1265 ;; Set path to epdfinfo program.
1266 (emacs-substitute-variables "pdf-info.el"
1267 ("pdf-info-epdfinfo-program"
1268 (string-append (assoc-ref outputs "out")
1269 "/bin/epdfinfo")))
1270 ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto
1271 ;; upgrading" that pdf-tools tries to perform.
1272 (emacs-substitute-variables "pdf-tools.el"
1273 ("pdf-tools-handle-upgrades" '()))))
1274 (add-after 'emacs-patch-variables 'emacs-install
1275 (assoc-ref emacs:%standard-phases 'install))
1276 (add-after 'emacs-install 'emacs-build
1277 (assoc-ref emacs:%standard-phases 'build))
1278 (add-after 'emacs-install 'emacs-make-autoloads
1279 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
1280 (native-inputs `(("autoconf" ,autoconf)
1281 ("automake" ,automake)
1282 ("pkg-config" ,pkg-config)
1283 ("emacs" ,emacs-minimal)))
1284 (propagated-inputs
1285 `(("let-alist" ,let-alist)))
1286 (inputs `(("poppler" ,poppler)
1287 ("cairo" ,cairo)
1288 ("glib" ,glib)
1289 ("libpng" ,libpng)
1290 ("zlib" ,zlib)))
1291 (synopsis "Emacs support library for PDF files")
1292 (description
1293 "PDF Tools is, among other things, a replacement of DocView for PDF
1294 files. The key difference is that pages are not pre-rendered by
1295 e.g. ghostscript and stored in the file-system, but rather created on-demand
1296 and stored in memory.")
1297 (home-page "https://github.com/politza/pdf-tools")
1298 (license license:gpl3+)))
1299
1300 (define-public emacs-dash
1301 (package
1302 (name "emacs-dash")
1303 (version "2.13.0")
1304 (source (origin
1305 (method url-fetch)
1306 (uri (string-append
1307 "https://github.com/magnars/dash.el/archive/"
1308 version ".tar.gz"))
1309 (file-name (string-append name "-" version ".tar.gz"))
1310 (sha256
1311 (base32
1312 "1pjlkrzr8n45bnp3xs3dybvy0nz3gwamrfc7vsi1nhpkkw99ihhb"))))
1313 (build-system emacs-build-system)
1314 (arguments
1315 `(#:phases
1316 (modify-phases %standard-phases
1317 (add-before 'install 'check
1318 (lambda _
1319 (zero? (system* "./run-tests.sh")))))))
1320 (home-page "https://github.com/magnars/dash.el")
1321 (synopsis "Modern list library for Emacs")
1322 (description "This package provides a modern list API library for Emacs.")
1323 (license license:gpl3+)))
1324
1325 (define-public emacs-bui
1326 (package
1327 (name "emacs-bui")
1328 (version "1.1.0")
1329 (source (origin
1330 (method url-fetch)
1331 (uri (string-append
1332 "https://github.com/alezost/bui.el/archive/v"
1333 version ".tar.gz"))
1334 (file-name (string-append name "-" version ".tar.gz"))
1335 (sha256
1336 (base32
1337 "112k0mq6xpy0r47vk66miw7rxbkv3d06pv3pd0vcmrhcnhnnk486"))))
1338 (build-system emacs-build-system)
1339 (propagated-inputs
1340 `(("dash" ,emacs-dash)))
1341 (home-page "https://github.com/alezost/bui.el")
1342 (synopsis "Buffer interface library for Emacs")
1343 (description
1344 "BUI (Buffer User Interface) is a library for making @code{list} and
1345 @code{info} interfaces to display an arbitrary data of the same
1346 type, for example: packages, buffers, files, etc.")
1347 (license license:gpl3+)))
1348
1349 (define-public emacs-guix
1350 (package
1351 (name "emacs-guix")
1352 (version "0.3")
1353 (source (origin
1354 (method url-fetch)
1355 (uri (string-append "https://github.com/alezost/guix.el"
1356 "/releases/download/v" version
1357 "/emacs-guix-" version ".tar.gz"))
1358 (sha256
1359 (base32
1360 "1327zp140c7acckk0ajl88cgwr0lk9j3mb67nsq2janxrkwmj6br"))))
1361 (build-system gnu-build-system)
1362 (arguments
1363 `(#:configure-flags
1364 (let ((guix (assoc-ref %build-inputs "guix"))
1365 (geiser (assoc-ref %build-inputs "geiser"))
1366 (dash (assoc-ref %build-inputs "dash"))
1367 (bui (assoc-ref %build-inputs "bui"))
1368 (magit-popup (assoc-ref %build-inputs "magit-popup"))
1369 (site-lisp "/share/emacs/site-lisp"))
1370 (list (string-append "--with-guix-site-dir="
1371 guix "/share/guile/site/2.0")
1372 (string-append "--with-geiser-lispdir=" geiser site-lisp)
1373 (string-append "--with-dash-lispdir="
1374 dash site-lisp "/guix.d/dash-"
1375 ,(package-version emacs-dash))
1376 (string-append "--with-bui-lispdir="
1377 bui site-lisp "/guix.d/bui-"
1378 ,(package-version emacs-bui))
1379 (string-append "--with-popup-lispdir="
1380 magit-popup site-lisp "/guix.d/magit-popup-"
1381 ,(package-version emacs-magit-popup))))))
1382 (native-inputs
1383 `(("pkg-config" ,pkg-config)
1384 ("emacs" ,emacs-minimal)))
1385 (inputs
1386 `(("guile" ,guile-2.0)
1387 ("guix" ,guix)))
1388 (propagated-inputs
1389 `(("geiser" ,geiser)
1390 ("dash" ,emacs-dash)
1391 ("bui" ,emacs-bui)
1392 ("magit-popup" ,emacs-magit-popup)))
1393 (home-page "https://github.com/alezost/guix.el")
1394 (synopsis "Emacs interface for GNU Guix")
1395 (description
1396 "Emacs-Guix provides a visual interface, tools and features for the GNU
1397 Guix package manager. Particularly, it allows you to do various package
1398 management tasks from Emacs. To begin with, run @code{M-x guix-about} or
1399 @code{M-x guix-help} command.")
1400 (license license:gpl3+)))
1401
1402 (define-public emacs-d-mode
1403 (package
1404 (name "emacs-d-mode")
1405 (version "2.0.8")
1406 (source (origin
1407 (method url-fetch)
1408 (uri (string-append
1409 "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode/"
1410 "archive/" version ".tar.gz"))
1411 (sha256
1412 (base32
1413 "0knpgi55jm09282aqf8pv55zillpnpzf9f4sgm6gwsmvxf17xaw0"))))
1414 (build-system emacs-build-system)
1415 (propagated-inputs
1416 `(("emacs-undercover" ,emacs-undercover)))
1417 (home-page "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
1418 (synopsis "Emacs major mode for editing D code")
1419 (description "This package provides an Emacs major mode for highlighting
1420 code written in the D programming language. This mode is currently known to
1421 work with Emacs 24 and 25.")
1422 (license license:gpl2+)))
1423
1424 (define-public emacs-keyfreq
1425 (package
1426 (name "emacs-keyfreq")
1427 (version "20160516.716")
1428 (source
1429 (origin
1430 (method url-fetch)
1431 (uri (string-append "http://melpa.org/packages/keyfreq-"
1432 version ".el"))
1433 (sha256
1434 (base32
1435 "008hd7d06qskc3mx0bbdgpgy2pwxr8185fzlyqf9qjg49y74p6g8"))))
1436 (build-system emacs-build-system)
1437 (home-page "https://github.com/dacap/keyfreq")
1438 (synopsis "Track Emacs command frequencies")
1439 (description "@code{emacs-keyfeq} tracks and shows how many times you used
1440 a command.")
1441 (license license:gpl3+)))
1442
1443 (define-public emacs-undo-tree
1444 (package
1445 (name "emacs-undo-tree")
1446 (version "0.6.4")
1447 (source (origin
1448 (method git-fetch)
1449 (uri (git-reference
1450 (url "http://dr-qubit.org/git/undo-tree.git")
1451 (commit "release/0.6.4")))
1452 (file-name (string-append name "-" version "-checkout"))
1453 (sha256
1454 (base32
1455 "0b6hnv6bq1g5np5q2yw9r9aj1cxpp14akm21br7vpb7wp01fv4b3"))))
1456 (build-system emacs-build-system)
1457 (home-page "http://www.dr-qubit.org/emacs.php")
1458 (synopsis "Treat undo history as a tree")
1459 (description "Tree-like interface to Emacs undo system, providing
1460 graphical tree presentation of all previous states of buffer that
1461 allows easily move between them.")
1462 (license license:gpl3+)))
1463
1464 (define-public emacs-s
1465 (package
1466 (name "emacs-s")
1467 (version "1.11.0")
1468 (source (origin
1469 (method url-fetch)
1470 (uri (string-append
1471 "https://github.com/magnars/s.el/archive/"
1472 version ".tar.gz"))
1473 (file-name (string-append name "-" version ".tar.gz"))
1474 (sha256
1475 (base32
1476 "0krq5nz3llfx0vwdqn18pmq777ja0fac185w0h9qymppb1j1hvc2"))))
1477 (build-system emacs-build-system)
1478 (arguments
1479 `(#:phases
1480 (modify-phases %standard-phases
1481 (add-before 'install 'check
1482 (lambda _
1483 (zero? (system* "./run-tests.sh")))))))
1484 (home-page "https://github.com/magnars/s.el")
1485 (synopsis "Emacs string manipulation library")
1486 (description "This package provides an Emacs library for manipulating
1487 strings.")
1488 (license license:gpl3+)))
1489
1490 (define-public emacs-symon
1491 (package
1492 (name "emacs-symon")
1493 (version "20160630")
1494 (source
1495 (origin
1496 (method url-fetch)
1497 (uri (string-append "https://github.com/zk-phi/symon/archive/"
1498 version ".tar.gz"))
1499 (file-name (string-append name "-" version ".tar.gz"))
1500 (sha256
1501 (base32
1502 "0h4jcgdnq98wc9rj72nwyazq8498yg55jfljiij5qwbn1xf1g5zz"))))
1503 (build-system emacs-build-system)
1504 (home-page "https://github.com/zk-phi/symon")
1505 (synopsis "Tiny graphical system monitor")
1506 (description
1507 "Tiny graphical system monitor for the Emacs minibuffer when idle.")
1508 (license license:gpl2+)))
1509
1510 (define-public emacs-sx
1511 (package
1512 (name "emacs-sx")
1513 (version "0.4")
1514 (source (origin
1515 (method url-fetch)
1516 (uri (string-append "https://github.com/vermiculus/sx.el/"
1517 "archive/v" version ".tar.gz"))
1518 (file-name (string-append name "-" version ".tar.gz"))
1519 (sha256
1520 (base32
1521 "1w0xghfljqg31axcnv8gzlrd8pw25nji6idnrhflq0af9qh1dw03"))))
1522 (build-system emacs-build-system)
1523 (propagated-inputs
1524 `(("emacs-markdown-mode" ,emacs-markdown-mode)
1525 ("let-alist" ,let-alist)))
1526 (home-page "https://github.com/vermiculus/sx.el/")
1527 (synopsis "Emacs StackExchange client")
1528 (description
1529 "Emacs StackExchange client. Ask and answer questions on
1530 Stack Overflow, Super User, and other StackExchange sites.")
1531 (license license:gpl3+)))
1532
1533 (define-public emacs-f
1534 (package
1535 (name "emacs-f")
1536 (version "0.18.2")
1537 (source (origin
1538 (method url-fetch)
1539 (uri (string-append
1540 "https://github.com/rejeep/f.el/archive/v"
1541 version ".tar.gz"))
1542 (file-name (string-append name "-" version ".tar.gz"))
1543 (sha256
1544 (base32
1545 "1926shh2ymdsgz05c6q181mzzz1rci99ch568j151xi865jinyg5"))))
1546 (build-system emacs-build-system)
1547 (propagated-inputs
1548 `(("emacs-s" ,emacs-s)
1549 ("emacs-dash" ,emacs-dash)))
1550 (home-page "https://github.com/rejeep/f.el")
1551 (synopsis "Emacs API for working with files and directories")
1552 (description "This package provides an Emacs library for working with
1553 files and directories.")
1554 (license license:gpl3+)))
1555
1556 (define-public emacs-git-gutter
1557 (package
1558 (name "emacs-git-gutter")
1559 (version "0.90")
1560 (source (origin
1561 (method url-fetch)
1562 (uri (string-append
1563 "https://github.com/syohex/" name "/archive/"
1564 version ".tar.gz"))
1565 (file-name (string-append name "-" version ".tar.gz"))
1566 (sha256
1567 (base32
1568 "1nmhvhpq1l56mj2yq3ag23rw3x4xgnsy8szp30s26l0yjnkhc4qg"))))
1569 (build-system emacs-build-system)
1570 (home-page "https://github.com/syohex/emacs-git-gutter")
1571 (synopsis "See and manage hunks of text in a version control system")
1572 (description
1573 "This package is an Emacs minor mode for displaying and interacting with
1574 hunks of text managed in a version control system. Added modified and deleted
1575 areas can be indicated with symbols on the edge of the buffer, and commands
1576 can be used to move between and perform actions on these hunks.
1577
1578 Git, Mercurial, Subversion and Bazaar are supported, and many parts of the
1579 display and behaviour is easily customisable.")
1580 (license license:gpl3+)))
1581
1582 (define-public emacs-git-timemachine
1583 (package
1584 (name "emacs-git-timemachine")
1585 (version "3.0")
1586 (source
1587 (origin
1588 (method url-fetch)
1589 (uri (string-append "https://github.com/pidu/git-timemachine/"
1590 "archive/" version ".tar.gz"))
1591 (file-name (string-append name "-" version ".tar.gz"))
1592 (sha256
1593 (base32
1594 "1l4g0r69wfrnjsywv03v4bpdd53byg6zdx6mzabfxyymss3kvisa"))))
1595 (build-system emacs-build-system)
1596 (home-page "https://github.com/pidu/git-timemachine")
1597 (synopsis "Step through historic versions of Git-controlled files")
1598 (description "This package enables you to step through historic versions
1599 of files under Git version control from within Emacs.")
1600 (license license:gpl3+)))
1601
1602 (define-public emacs-el-mock
1603 (package
1604 (name "emacs-el-mock")
1605 (version "1.25.1")
1606 (source
1607 (origin
1608 (method url-fetch)
1609 (uri (string-append "https://github.com/rejeep/el-mock.el/"
1610 "archive/v" version ".tar.gz"))
1611 (file-name (string-append name "-" version ".tar.gz"))
1612 (sha256
1613 (base32
1614 "16xw94n58xxn3zvgyj72bmzs0k5lkvswjmzs79ws9n7rzdivb38b"))))
1615 (build-system emacs-build-system)
1616 (home-page "https://github.com/rejeep/el-mock.el")
1617 (synopsis "Tiny mock and stub framework in Emacs Lisp")
1618 (description
1619 "Emacs Lisp Mock is a library for mocking and stubbing using readable
1620 syntax. Most commonly Emacs Lisp Mock is used in conjunction with Emacs Lisp
1621 Expectations, but it can be used in other contexts.")
1622 (license license:gpl3+)))
1623
1624 (define-public emacs-espuds
1625 (package
1626 (name "emacs-espuds")
1627 (version "0.3.3")
1628 (source
1629 (origin
1630 (method url-fetch)
1631 (uri (string-append "https://github.com/ecukes/espuds/"
1632 "archive/v" version ".tar.gz"))
1633 (file-name (string-append name "-" version ".tar.gz"))
1634 (sha256
1635 (base32
1636 "0xv551376pbmh735a3zjwc9z4qdx6ngj1vpq3xqjpn0a1rwjyn4k"))))
1637 (build-system emacs-build-system)
1638 (propagated-inputs
1639 `(("emacs-s" ,emacs-s)
1640 ("emacs-dash" ,emacs-dash)
1641 ("emacs-f" ,emacs-f)))
1642 (home-page "https://github.com/ecukes/espuds")
1643 (synopsis "Common step definitions for Ecukes")
1644 (description "Espuds is a collection of the most commonly used step
1645 definitions for testing with the Ecukes framework.")
1646 (license license:gpl3+)))
1647
1648 (define-public emacs-es-mode
1649 (package
1650 (name "emacs-es-mode")
1651 (version "4.2.0")
1652 (source (origin
1653 (method url-fetch)
1654 (uri (string-append
1655 "https://github.com/dakrone/es-mode/archive/"
1656 version ".tar.gz"))
1657 (file-name (string-append name "-" version ".tar.gz"))
1658 (sha256
1659 (base32
1660 "02as82clm553yss7jfjac888308zr1h2229cch4z1yij70j25c8y"))))
1661 (build-system emacs-build-system)
1662 (propagated-inputs
1663 ;; The version of org in Emacs 24.5 is not sufficient, and causes tables
1664 ;; to be rendered incorrectly
1665 `(("emacs-org" ,emacs-org)))
1666 (home-page "https://github.com/dakrone/es-mode")
1667 (synopsis "Major mode for editing Elasticsearch queries")
1668 (description "@code{es-mode} includes highlighting, completion and
1669 indentation support for Elasticsearch queries. Also supported are
1670 @code{es-mode} blocks in @code{org-mode}, for which the results of queries can
1671 be processed through @code{jq}, or in the case of aggregations, can be
1672 rendered in to a table. In addition, there is an @code{es-command-center}
1673 mode, which displays information about Elasticsearch clusters.")
1674 (license license:gpl3+)))
1675
1676 (define-public emacs-expand-region
1677 (package
1678 (name "emacs-expand-region")
1679 (version "0.11.0")
1680 (source
1681 (origin
1682 (method url-fetch)
1683 (uri (string-append "https://github.com/magnars/expand-region.el"
1684 "/archive/" version ".tar.gz"))
1685 (file-name (string-append name "-" version ".tar.gz"))
1686 (sha256
1687 (base32
1688 "08dy1f411sh9wwww53rjw80idcf3vpki6ba2arl4hl5jcw9651g0"))))
1689 (build-system emacs-build-system)
1690 (home-page "https://github.com/magnars/expand-region.el")
1691 (synopsis "Increase selected region by semantic units")
1692 (description
1693 "Expand region increases the selected region by semantic units. Just
1694 keep pressing the key until it selects what you want. There's also
1695 @code{er/contract-region} if you expand too far.")
1696 (license license:gpl3+)))
1697
1698 (define-public emacs-fill-column-indicator
1699 (package
1700 (name "emacs-fill-column-indicator")
1701 (version "1.81")
1702 (source
1703 (origin
1704 (method url-fetch)
1705 (uri (string-append "https://github.com/alpaker/Fill-Column-Indicator"
1706 "/archive/v" version ".tar.gz"))
1707 (file-name (string-append name "-" version ".tar.gz"))
1708 (sha256
1709 (base32
1710 "1xwyqbjbbicmvhlb85vg4j5snwy1vd7rfk89ws4viws5ljkhhyg8"))))
1711 (build-system emacs-build-system)
1712 (home-page "https://www.emacswiki.org/emacs/FillColumnIndicator")
1713 (synopsis "Graphically indicate the fill column")
1714 (description
1715 "Fill-column-indicator graphically indicates the location of the fill
1716 column by drawing a thin line down the length of the editing window.")
1717 (license license:gpl3+)))
1718
1719 (define-public emacs-znc
1720 (package
1721 (name "emacs-znc")
1722 (version "0.0.2")
1723 (source
1724 (origin
1725 (method url-fetch)
1726 (uri (string-append "https://marmalade-repo.org/packages/znc-"
1727 version ".el"))
1728 (sha256
1729 (base32
1730 "1d8lqvybgyazin5z0g1c4l3rg1vzrrvf0saqs53jr1zcdg0lianh"))))
1731 (build-system emacs-build-system)
1732 (home-page "https://github.com/sshirokov/ZNC.el")
1733 (synopsis "Make ERC and ZNC get along better")
1734 (description
1735 "This is a thin wrapper around @code{erc} that enables one to use the ZNC
1736 IRC bouncer with ERC.")
1737 (license license:expat)))
1738
1739 (define-public emacs-shut-up
1740 (package
1741 (name "emacs-shut-up")
1742 (version "0.3.2")
1743 (source
1744 (origin
1745 (method url-fetch)
1746 (uri (string-append "https://github.com/cask/shut-up/"
1747 "archive/v" version ".tar.gz"))
1748 (file-name (string-append name "-" version ".tar.gz"))
1749 (sha256
1750 (base32
1751 "09kzrjdkb569iviyg7ydwq44yh84m3f9hkl7jizfrlk0w4gz67d1"))))
1752 (build-system emacs-build-system)
1753 (home-page "https://github.com/cask/shut-up")
1754 (synopsis "Silence Emacs")
1755 (description "This package silences most output of Emacs when running an
1756 Emacs shell script.")
1757 (license license:expat)))
1758
1759 (define-public emacs-undercover
1760 (package
1761 (name "emacs-undercover")
1762 (version "0.6.0")
1763 (source
1764 (origin
1765 (method url-fetch)
1766 (uri (string-append "https://github.com/sviridov/undercover.el/"
1767 "archive/v" version ".tar.gz"))
1768 (file-name (string-append name "-" version ".tar.gz"))
1769 (sha256
1770 (base32
1771 "0f48fi0xnbsqs382rgh85m9mq1wdnr0yib7as9xhwzvq0hsr5m0a"))))
1772 (build-system emacs-build-system)
1773 (propagated-inputs
1774 `(("emacs-dash" ,emacs-dash)
1775 ("emacs-shut-up" ,emacs-shut-up)))
1776 (home-page "https://github.com/sviridov/undercover.el")
1777 (synopsis "Test coverage library for Emacs Lisp")
1778 (description
1779 "Undercover is a test coverage library for software written in Emacs
1780 Lisp.")
1781 (license license:expat)))
1782
1783 (define-public emacs-paren-face
1784 (package
1785 (name "emacs-paren-face")
1786 (version "1.0.0")
1787 (source
1788 (origin
1789 (method url-fetch)
1790 (uri (string-append "https://github.com/tarsius/paren-face/archive/"
1791 version ".tar.gz"))
1792 (file-name (string-append name "-" version ".tar.gz"))
1793 (sha256
1794 (base32
1795 "0y4qrhxa9332vsvr999jg7qj1ymnfgwpf591yi4a4jgg90pm7qnn"))))
1796 (build-system emacs-build-system)
1797 (home-page "https://github.com/tarsius/paren-face")
1798 (synopsis "Face for parentheses in lisp modes")
1799 (description
1800 "This library defines a face named @code{parenthesis} used just for
1801 parentheses. The intended purpose of this face is to make parentheses less
1802 visible in Lisp code by dimming them. Lispers probably don't need to be
1803 constantly made aware of the existence of the parentheses. Dimming them might
1804 be even more useful for people new to lisp who have not yet learned to
1805 subconsciously blend out the parentheses.")
1806 (license license:gpl3+)))
1807
1808 (define-public emacs-page-break-lines
1809 (package
1810 (name "emacs-page-break-lines")
1811 (version "0.11")
1812 (source
1813 (origin
1814 (method url-fetch)
1815 (uri (string-append "https://github.com/purcell/page-break-lines/"
1816 "archive/" version ".tar.gz"))
1817 (file-name (string-append name "-" version ".tar.gz"))
1818 (sha256
1819 (base32
1820 "1zzhziq5kbrm9rxk30kx2glz455fp1blqxg8cpcf6l8xl3w8z4pg"))))
1821 (build-system emacs-build-system)
1822 (home-page "https://github.com/purcell/page-break-lines")
1823 (synopsis "Display page breaks as tidy horizontal lines")
1824 (description
1825 "This library provides a global mode which displays form feed characters
1826 as horizontal rules.")
1827 (license license:gpl3+)))
1828
1829 (define-public emacs-simple-httpd
1830 (package
1831 (name "emacs-simple-httpd")
1832 (version "1.4.6")
1833 (source
1834 (origin
1835 (method url-fetch)
1836 (uri (string-append "https://github.com/skeeto/emacs-web-server/"
1837 "archive/" version ".tar.gz"))
1838 (file-name (string-append name "-" version ".tar.gz"))
1839 (sha256
1840 (base32
1841 "01r7h3imnj4qx1m53a2wjafvbylcyz5f9r2rg2cs7ky3chlg220r"))))
1842 (build-system emacs-build-system)
1843 (home-page "https://github.com/skeeto/emacs-http-server")
1844 (synopsis "HTTP server in pure Emacs Lisp")
1845 (description
1846 "This package provides a simple HTTP server written in Emacs Lisp to
1847 serve files and directory listings.")
1848 (license license:unlicense)))
1849
1850 (define-public emacs-skewer-mode
1851 (package
1852 (name "emacs-skewer-mode")
1853 (version "1.6.2")
1854 (source
1855 (origin
1856 (method url-fetch)
1857 (uri (string-append "https://github.com/skeeto/skewer-mode/archive/"
1858 version ".tar.gz"))
1859 (file-name (string-append name "-" version ".tar.gz"))
1860 (sha256
1861 (base32
1862 "07jpz374j0j964szy3zznrkyja2kpdl3xa87wh7349mzxivqxdx0"))))
1863 (build-system emacs-build-system)
1864 (propagated-inputs
1865 `(("emacs-simple-httpd" ,emacs-simple-httpd)
1866 ("emacs-js2-mode" ,emacs-js2-mode)))
1867 (home-page "https://github.com/skeeto/skewer-mode")
1868 (synopsis "Live web development in Emacs")
1869 (description
1870 "Skewer-mode provides live interaction with JavaScript, CSS, and HTML in
1871 a web browser. Expressions are sent on-the-fly from an editing buffer to be
1872 evaluated in the browser, just like Emacs does with an inferior Lisp process
1873 in Lisp modes.")
1874 (license license:unlicense)))
1875
1876 (define-public emacs-stripe-buffer
1877 (package
1878 (name "emacs-stripe-buffer")
1879 (version "0.2.5")
1880 (source
1881 (origin
1882 (method url-fetch)
1883 (uri (string-append "https://github.com/sabof/stripe-buffer/"
1884 "archive/" version ".tar.gz"))
1885 (file-name (string-append name "-" version ".tar.gz"))
1886 (sha256
1887 (base32
1888 "1p515dq7raly5hw94kiwm3vzsfih0d8af622q4ipvvljsm98aiik"))))
1889 (build-system emacs-build-system)
1890 (home-page "https://github.com/sabof/stripe-buffer/")
1891 (synopsis "Add stripes to list buffers")
1892 (description
1893 "This Emacs package adds faces to add stripes to list buffers and org
1894 tables.")
1895 (license license:gpl2+)))
1896
1897 (define-public emacs-rich-minority
1898 (package
1899 (name "emacs-rich-minority")
1900 (version "1.0.1")
1901 (source
1902 (origin
1903 (method url-fetch)
1904 (uri (string-append "https://github.com/Malabarba/rich-minority/"
1905 "archive/" version ".tar.gz"))
1906 (file-name (string-append name "-" version ".tar.gz"))
1907 (sha256
1908 (base32
1909 "1l0cb0q7kyi88nwfqd542psnkgwnjklpzc5rx32gzd3lkwkrbr8v"))))
1910 (build-system emacs-build-system)
1911 (home-page "https://github.com/Malabarba/rich-minority")
1912 (synopsis "Clean-up and beautify the list of minor modes")
1913 (description
1914 "This Emacs package hides and/or highlights minor modes in the
1915 mode-line.")
1916 (license license:gpl2+)))
1917
1918 (define-public emacs-smart-mode-line
1919 (package
1920 (name "emacs-smart-mode-line")
1921 (version "2.10.1")
1922 (source
1923 (origin
1924 (method url-fetch)
1925 (uri (string-append "https://github.com/Malabarba/smart-mode-line/"
1926 "archive/" version ".tar.gz"))
1927 (file-name (string-append name "-" version ".tar.gz"))
1928 (sha256
1929 (base32
1930 "0i9wajabrrsjzwd842q0m2611kf0q31p9hg1pdj81177gynkw8l8"))))
1931 (build-system emacs-build-system)
1932 (propagated-inputs
1933 `(("emacs-rich-minority" ,emacs-rich-minority)))
1934 (home-page "https://github.com/Malabarba/smart-mode-line")
1935 (synopsis "Color-coded smart mode-line")
1936 (description
1937 "Smart Mode Line is a mode-line theme for Emacs. It aims to be easy to
1938 read from small to large monitors by using colors, a prefix feature, and smart
1939 truncation.")
1940 (license license:gpl2+)))
1941
1942 (define-public emacs-shell-switcher
1943 (package
1944 (name "emacs-shell-switcher")
1945 (version "1.0.1")
1946 (source
1947 (origin
1948 (method url-fetch)
1949 (uri (string-append "https://github.com/DamienCassou/shell-switcher"
1950 "/archive/v" version ".tar.gz"))
1951 (file-name (string-append name "-" version ".tar.gz"))
1952 (sha256
1953 (base32
1954 "1c23mfkdqz2g9rixd9smm323vzlvhzz3ng34ambcqjfq309qb2nz"))))
1955 (build-system emacs-build-system)
1956 (home-page "https://github.com/DamienCassou/shell-switcher")
1957 (synopsis "Provide fast switching between shell buffers")
1958 (description
1959 "This package provides commands to quickly switch between shell buffers.")
1960 (license license:gpl3+)))
1961
1962 (define-public emacs-ob-ipython
1963 (package
1964 (name "emacs-ob-ipython")
1965 (version "20150704.8807064693")
1966 (source (origin
1967 (method git-fetch)
1968 (uri (git-reference
1969 (commit "880706469338ab59b5bb7dbe8460016f89755364")
1970 (url "https://github.com/gregsexton/ob-ipython.git")))
1971 (sha256
1972 (base32
1973 "1scf25snbds9ymagpny30ijbsg479r3nm0ih01dy4m9d0g7qryb7"))))
1974 (build-system emacs-build-system)
1975 (propagated-inputs
1976 `(("emacs-f" ,emacs-f)))
1977 (home-page "http://www.gregsexton.org")
1978 (synopsis "Org-Babel functions for IPython evaluation")
1979 (description "This package adds support to Org-Babel for evaluating Python
1980 source code using IPython.")
1981 (license license:gpl3+)))
1982
1983 (define-public emacs-debbugs
1984 (package
1985 (name "emacs-debbugs")
1986 (version "0.14")
1987 (source (origin
1988 (method url-fetch)
1989 (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
1990 version ".tar"))
1991 (sha256
1992 (base32
1993 "07wgcvg038l88gxvjr0gjpjhyk743w22x1rqghz3gkmif0g70say"))))
1994 (build-system emacs-build-system)
1995 (propagated-inputs
1996 `(("emacs-async" ,emacs-async)))
1997 (home-page "https://elpa.gnu.org/packages/debbugs.html")
1998 (synopsis "Access the Debbugs bug tracker in Emacs")
1999 (description
2000 "This package lets you access the @uref{http://bugs.gnu.org,GNU Bug
2001 Tracker} from within Emacs.
2002
2003 For instance, it defines the command @code{M-x debbugs-gnu} for listing bugs,
2004 and the command @code{M-x debbugs-gnu-search} for bug searching. If you
2005 prefer the listing of bugs as TODO items of @code{org-mode}, you could use
2006 @code{M-x debbugs-org} and related commands.
2007
2008 A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug
2009 Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.")
2010 (license license:gpl3+)))
2011
2012 (define-public emacs-deferred
2013 (package
2014 (name "emacs-deferred")
2015 (version "0.3.2")
2016 (home-page "https://github.com/kiwanami/emacs-deferred")
2017 (source (origin
2018 (method git-fetch)
2019 (uri (git-reference
2020 (url home-page)
2021 (commit (string-append "v" version))))
2022 (sha256
2023 (base32
2024 "0059jy01ni5irpgrj9fa81ayd9j25nvmjjm79ms3210ysx4pgqdr"))
2025 (file-name (string-append name "-" version))))
2026 (build-system emacs-build-system)
2027 ;; FIXME: Would need 'el-expectations' to actually run tests.
2028 (synopsis "Simple asynchronous functions for Emacs Lisp")
2029 (description
2030 "The @code{deferred.el} library provides support for asynchronous tasks.
2031 The API is almost the same as that of
2032 @uref{https://github.com/cho45/jsdeferred, JSDeferred}, a JavaScript library
2033 for asynchronous tasks.")
2034 (license license:gpl3+)))
2035
2036 (define-public butler
2037 (package
2038 (name "emacs-butler")
2039 (version "0.2.4")
2040 (home-page "https://github.com/AshtonKem/Butler")
2041 (source (origin
2042 (method git-fetch)
2043 (uri (git-reference
2044 (url home-page)
2045 (commit version)))
2046 (sha256
2047 (base32
2048 "1pii9dw4skq7nr4na6qxqasl36av8cwjp71bf1fgppqpcd9z8skj"))
2049 (file-name (string-append name "-" version))))
2050 (build-system emacs-build-system)
2051 (propagated-inputs
2052 `(("emacs-deferred" ,emacs-deferred)))
2053 (synopsis "Emacs client for Jenkins")
2054 (description
2055 "Butler provides an interface to connect to Jenkins continuous
2056 integration servers. Users can specify a list of server in the
2057 @code{butler-server-list} variable and then use @code{M-x butler-status} to
2058 view the build status of those servers' build jobs, and possibly to trigger
2059 build jobs.")
2060 (license license:gpl3+)))
2061
2062 (define-public emacs-company
2063 (package
2064 (name "emacs-company")
2065 (version "0.8.12")
2066 (source
2067 (origin
2068 (method url-fetch)
2069 (uri (string-append "https://github.com/company-mode/company-mode/archive/"
2070 version ".tar.gz"))
2071 (file-name (string-append name "-" version ".tar.gz"))
2072 (sha256
2073 (base32
2074 "1vwmbqm7h4lrszv2qxy6fqzznm9raigi84cadx982c9m7shp0zzz"))))
2075 (build-system emacs-build-system)
2076 (home-page "http://company-mode.github.io/")
2077 (synopsis "Modular text completion framework")
2078 (description
2079 "Company is a modular completion mechanism. Modules for retrieving
2080 completion candidates are called back-ends, modules for displaying them are
2081 front-ends. Company comes with many back-ends, e.g. @code{company-elisp}.
2082 These are distributed in separate files and can be used individually.")
2083 (license license:gpl3+)))
2084
2085 (define-public emacs-multiple-cursors
2086 (package
2087 (name "emacs-multiple-cursors")
2088 (version "1.4.0")
2089 (source
2090 (origin
2091 (method url-fetch)
2092 (uri (string-append "https://github.com/magnars/multiple-cursors.el/"
2093 "archive/" version ".tar.gz"))
2094 (file-name (string-append name "-" version ".tar.gz"))
2095 (sha256
2096 (base32
2097 "0hihihlvcvzayg5fnqzcg45fhvlmq6xlq58syy00rjwbry9w389k"))))
2098 (build-system emacs-build-system)
2099 (home-page "https://github.com/magnars/multiple-cursors.el")
2100 (synopsis "Multiple cursors for Emacs")
2101 (description
2102 "This package adds support to Emacs for editing text with multiple
2103 simultaneous cursors.")
2104 (license license:gpl3+)))
2105
2106 (define-public typo
2107 (package
2108 (name "emacs-typo")
2109 (version "1.1")
2110 (home-page "https://github.com/jorgenschaefer/typoel")
2111 (source (origin
2112 (method git-fetch)
2113 (uri (git-reference
2114 (url home-page)
2115 (commit (string-append "v" version))))
2116 (sha256
2117 (base32
2118 "1jhd4grch5iz12gyxwfbsgh4dmz5hj4bg4gnvphccg8dsnni05k2"))
2119 (file-name (string-append name "-" version))))
2120 (build-system emacs-build-system)
2121 (synopsis "Minor mode for typographic editing")
2122 (description
2123 "This package provides two Emacs modes, @code{typo-mode} and
2124 @code{typo-global-mode}. These modes automatically insert Unicode characters
2125 for quotation marks, dashes, and ellipses. For example, typing @kbd{\"}
2126 automatically inserts a Unicode opening or closing quotation mark, depending
2127 on context.")
2128 (license license:gpl3+)))
2129
2130 (define-public emacs-scheme-complete
2131 (let ((commit "9b5cf224bf2a5994bc6d5b152ff487517f1a9bb5"))
2132 (package
2133 (name "emacs-scheme-complete")
2134 (version (string-append "20151223." (string-take commit 8)))
2135 (source
2136 (origin
2137 (file-name (string-append name "-" version))
2138 (method git-fetch)
2139 (uri (git-reference
2140 (url "https://github.com/ashinn/scheme-complete.git")
2141 (commit commit)))
2142 (sha256
2143 (base32
2144 "141wn9l0m33w0g3dqmx8nxbfdny1r5xbr6ak61rsz21bk0qafs7x"))
2145 (patches
2146 (search-patches "emacs-scheme-complete-scheme-r5rs-info.patch"))))
2147 (build-system emacs-build-system)
2148 (home-page "https://github.com/ashinn/scheme-complete")
2149 (synopsis "Smart tab completion for Scheme in Emacs")
2150 (description
2151 "This file provides a single function, @code{scheme-smart-complete},
2152 which you can use for intelligent, context-sensitive completion for any Scheme
2153 implementation in Emacs. To use it just load this file and bind that function
2154 to a key in your preferred mode.")
2155 (license license:public-domain))))
2156
2157 (define-public emacs-mit-scheme-doc
2158 (package
2159 (name "emacs-mit-scheme-doc")
2160 (version "20140203")
2161 (source
2162 (origin
2163 (modules '((guix build utils)))
2164 (snippet
2165 ;; keep only file of interest
2166 '(begin
2167 (for-each delete-file '("dot-emacs.el" "Makefile"))
2168 (install-file "6.945-config/mit-scheme-doc.el" ".")
2169 (delete-file-recursively "6.945-config")))
2170 (file-name (string-append name "-" version ".tar.bz2"))
2171 (method url-fetch)
2172 (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/"
2173 "6.945/dont-panic/emacs-basic-config.tar.bz2"))
2174 (sha256
2175 (base32
2176 "0dqidg2bd66pawqfarvwca93w5gqf9mikn1k2a2rmd9ymfjpziq1"))))
2177 (build-system emacs-build-system)
2178 (inputs `(("mit-scheme" ,mit-scheme)))
2179 (arguments
2180 `(#:phases
2181 (modify-phases %standard-phases
2182 (add-after 'unpack 'configure-doc
2183 (lambda* (#:key inputs #:allow-other-keys)
2184 (let* ((mit-scheme-dir (assoc-ref inputs "mit-scheme"))
2185 (doc-dir (string-append mit-scheme-dir "/share/doc/"
2186 "mit-scheme-"
2187 ,(package-version mit-scheme))))
2188 (substitute* "mit-scheme-doc.el"
2189 (("http://www\\.gnu\\.org/software/mit-scheme/documentation/mit-scheme-ref/")
2190 (string-append "file:" doc-dir "/mit-scheme-ref/")))))))))
2191 (home-page "http://groups.csail.mit.edu/mac/users/gjs/6.945/dont-panic/")
2192 (synopsis "MIT-Scheme documentation lookup for Emacs")
2193 (description
2194 "This package provides a set of Emacs functions to search definitions of
2195 identifiers in the MIT-Scheme documentation.")
2196 (license license:gpl2+)))
2197
2198 (define-public emacs-constants
2199 (package
2200 (name "emacs-constants")
2201 (version "2.6")
2202 (home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
2203 (source
2204 (origin
2205 (file-name (string-append name "-" version ".tar.gz"))
2206 (method url-fetch)
2207 (uri (string-append "https://github.com/fedeinthemix/emacs-constants"
2208 "/archive/v" version ".tar.gz"))
2209 (sha256
2210 (base32
2211 "0pnrpmmxq8mh5h2hbrp5vcym0j0fh6dv3s7c5ccn18wllhzg9g7n"))))
2212 (build-system emacs-build-system)
2213 (synopsis "Enter definition of constants into an Emacs buffer")
2214 (description
2215 "This package provides functions for inserting the definition of natural
2216 constants and units into an Emacs buffer.")
2217 (license license:gpl2+)))
2218
2219 (define-public emacs-tagedit
2220 (package
2221 (name "emacs-tagedit")
2222 (version "1.4.0")
2223 (source
2224 (origin
2225 (method url-fetch)
2226 (uri (string-append "https://github.com/magnars/tagedit/"
2227 "archive/" version ".tar.gz"))
2228 (file-name (string-append name "-" version ".tar.gz"))
2229 (sha256
2230 (base32
2231 "1apfnann4qklfdsmdi7icjsj18x7gwx8d83iqr4z25clszz95xfq"))))
2232 (build-system emacs-build-system)
2233 (propagated-inputs
2234 `(("emacs-s" ,emacs-s)
2235 ("emacs-dash" ,emacs-dash)))
2236 (home-page "https://github.com/magnars/tagedit")
2237 (synopsis "Some paredit-like features for html-mode")
2238 (description
2239 "This package provides a collection of paredit-like functions for editing
2240 in @code{html-mode}.")
2241 (license license:gpl3+)))
2242
2243 (define-public emacs-slime
2244 (package
2245 (name "emacs-slime")
2246 (version "2.19")
2247 (source
2248 (origin
2249 (file-name (string-append name "-" version ".tar.gz"))
2250 (method url-fetch)
2251 (uri (string-append
2252 "https://github.com/slime/slime/archive/v"
2253 version ".tar.gz"))
2254 (sha256
2255 (base32
2256 "1jhaq5cn89k45nzyl0jd12gmjxnh1bq9jlfwrxba342agxsscb0p"))))
2257 (build-system emacs-build-system)
2258 (native-inputs
2259 `(("texinfo" ,texinfo)))
2260 (arguments
2261 `(#:phases
2262 (modify-phases %standard-phases
2263 (add-before 'install 'configure
2264 (lambda* _
2265 (emacs-substitute-variables "slime.el"
2266 ("inferior-lisp-program" "sbcl"))
2267 #t))
2268 (add-before 'install 'install-doc
2269 (lambda* (#:key outputs #:allow-other-keys)
2270 (let* ((out (assoc-ref outputs "out"))
2271 (info-dir (string-append out "/share/info"))
2272 (doc-dir (string-append out "/share/doc/"
2273 ,name "-" ,version))
2274 (doc-files '("doc/slime-refcard.pdf"
2275 "README.md" "NEWS" "PROBLEMS"
2276 "CONTRIBUTING.md")))
2277 (with-directory-excursion "doc"
2278 (substitute* "Makefile"
2279 (("infodir=/usr/local/info")
2280 (string-append "infodir=" info-dir)))
2281 (system* "make" "html/index.html")
2282 (system* "make" "slime.info")
2283 (install-file "slime.info" info-dir)
2284 (copy-recursively "html" (string-append doc-dir "/html")))
2285 (for-each (lambda (f)
2286 (install-file f doc-dir)
2287 (delete-file f))
2288 doc-files)
2289 (delete-file-recursively "doc")
2290 #t))))))
2291 (home-page "https://github.com/slime/slime")
2292 (synopsis "Superior Lisp Interaction Mode for Emacs")
2293 (description
2294 "SLIME extends Emacs with support for interactive programming in
2295 Common Lisp. The features are centered around @{slime-mode}, an Emacs
2296 minor mode that complements the standard @{lisp-mode}. While lisp-mode
2297 supports editing Lisp source files, @{slime-mode} adds support for
2298 interacting with a running Common Lisp process for compilation,
2299 debugging, documentation lookup, and so on.")
2300 (license license:gpl2+)))
2301
2302 (define-public emacs-popup
2303 (package
2304 (name "emacs-popup")
2305 (version "0.5.3")
2306 (source (origin
2307 (method url-fetch)
2308 (uri (string-append
2309 "https://github.com/auto-complete/popup-el/archive/v"
2310 version ".tar.gz"))
2311 (file-name (string-append name "-" version ".tar.gz"))
2312 (sha256
2313 (base32
2314 "1yrgfj8y69xmcb6kwgplhq68ndm9410qwh7sd2knnd1gchpphdc0"))))
2315 (build-system emacs-build-system)
2316 (home-page "https://github.com/auto-complete/popup-el")
2317 (synopsis "Visual Popup User Interface for Emacs")
2318 (description
2319 "Popup.el is a visual popup user interface library for Emacs.
2320 This provides a basic API and common UI widgets such as popup tooltips
2321 and popup menus.")
2322 (license license:gpl3+)))
2323
2324 (define-public emacs-god-mode
2325 (let ((commit "6cf0807b6555eb6fcf8387a4e3b667071ef38964")
2326 (revision "1"))
2327 (package
2328 (name "emacs-god-mode")
2329 (version (string-append "20151005.925."
2330 revision "-" (string-take commit 9)))
2331 (source
2332 (origin
2333 (method git-fetch)
2334 (uri (git-reference
2335 (url "https://github.com/chrisdone/god-mode.git")
2336 (commit commit)))
2337 (file-name (string-append name "-" version "-checkout"))
2338 (sha256
2339 (base32
2340 "1am415k4xxcva6y3vbvyvknzc6bma49pq3p85zmpjsdmsp18qdix"))))
2341 (build-system emacs-build-system)
2342 (home-page "https://github.com/chrisdone/god-mode")
2343 (synopsis "Minor mode for entering commands without modifier keys")
2344 (description
2345 "This package provides a global minor mode for entering Emacs commands
2346 without modifier keys. It's similar to Vim's separation of commands and
2347 insertion mode. When enabled all keys are implicitly prefixed with
2348 @samp{C-} (among other helpful shortcuts).")
2349 (license license:gpl3+))))
2350
2351 (define-public emacs-rfcview
2352 (package
2353 (name "emacs-rfcview")
2354 (version "0.13")
2355 (home-page "http://www.loveshack.ukfsn.org/emacs")
2356 (source (origin
2357 (method url-fetch)
2358 (uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el")
2359 (sha256
2360 (base32
2361 "0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz"))))
2362 (build-system emacs-build-system)
2363 (synopsis "Prettify Request for Comments (RFC) documents")
2364 (description "The Internet Engineering Task Force (IETF) and the Internet
2365 Society (ISOC) publish various Internet-related protocols and specifications
2366 as \"Request for Comments\" (RFC) documents and Internet Standard (STD)
2367 documents. RFCs and STDs are published in a simple text form. This package
2368 provides an Emacs major mode, rfcview-mode, which makes it more pleasant to
2369 read these documents in Emacs. It prettifies the text and adds
2370 hyperlinks/menus for easier navigation. It also provides functions for
2371 browsing the index of RFC documents and fetching them from remote servers or
2372 local directories.")
2373 (license license:gpl3+)))
2374
2375 (define-public emacs-ffap-rfc-space
2376 (package
2377 (name "emacs-ffap-rfc-space")
2378 (version "12")
2379 (home-page "http://user42.tuxfamily.org/ffap-rfc-space/index.html")
2380 (source (origin
2381 (method url-fetch)
2382 (uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el")
2383 (sha256
2384 (base32
2385 "1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck"))))
2386 (build-system emacs-build-system)
2387 (synopsis "Make ffap recognize an RFC with a space before its number")
2388 (description "The Internet Engineering Task Force (IETF) and the
2389 Internet Society (ISOC) publish various Internet-related protocols and
2390 specifications as \"Request for Comments\" (RFC) documents. The
2391 built-in Emacs module \"ffap\" (Find File at Point) has the ability to
2392 recognize names at point which look like \"RFC1234\" and \"RFC-1234\"
2393 and load the appropriate RFC from a remote server. However, it fails
2394 to recognize a name like \"RFC 1234\". This package enhances ffap so
2395 that it correctly finds RFCs even when a space appears before the
2396 number.")
2397 (license license:gpl3+)))
2398
2399 (define-public emacs-org-bullets
2400 (package
2401 (name "emacs-org-bullets")
2402 (version "0.2.4")
2403 (source
2404 (origin
2405 (method url-fetch)
2406 (uri (string-append "https://github.com/sabof/org-bullets/archive/"
2407 version ".tar.gz"))
2408 (file-name (string-append name "-" version ".tar.gz"))
2409 (sha256
2410 (base32
2411 "1dyxvpb73vj80v8br2q9rf255hfphrgaw91fbvwdcd735np9pcnh"))))
2412 (build-system emacs-build-system)
2413 (home-page "https://github.com/sabof/org-bullets")
2414 (synopsis "Show bullets in org-mode as UTF-8 characters")
2415 (description
2416 "This package provides an Emacs minor mode causing bullets in
2417 @code{org-mode} to be rendered as UTF-8 characters.")
2418 (license license:gpl3+)))
2419
2420 (define-public emacs-org-trello
2421 (package
2422 (name "emacs-org-trello")
2423 (version "0.7.9")
2424 (source (origin
2425 (method url-fetch)
2426 (uri (string-append
2427 "https://github.com/org-trello/org-trello/archive/"
2428 version ".tar.gz"))
2429 (file-name (string-append name "-" version ".tar.gz"))
2430 (sha256
2431 (base32
2432 "074dka8g673bj1ck5vavbjaij5jyniygdlw51mdds005wd2br9wf"))))
2433 (build-system emacs-build-system)
2434 (propagated-inputs
2435 `(("emacs-deferred" ,emacs-deferred)
2436 ("emacs-request" ,emacs-request)
2437 ("emacs-dash" ,emacs-dash)
2438 ("emacs-s" ,emacs-s)))
2439 (home-page "https://org-trello.github.io")
2440 (synopsis "Emacs minor mode for interacting with Trello")
2441 (description "This package provides an Emacs minor mode to extend
2442 @code{org-mode} with Trello abilities. Trello is an online project
2443 organizer.")
2444 (license license:gpl3+)))
2445
2446 (define-public emacs-zenburn-theme
2447 (package
2448 (name "emacs-zenburn-theme")
2449 (version "2.4")
2450 (source (origin
2451 (method url-fetch)
2452 (uri (string-append
2453 "https://github.com/bbatsov/zenburn-emacs/archive/v"
2454 version ".tar.gz"))
2455 (file-name (string-append name "-" version ".tar.gz"))
2456 (sha256
2457 (base32
2458 "0lyi84bm8sa7vj40n6zg6rlbsmi53mi1y9xn6gkjj29s5zbcnlg7"))))
2459 (build-system emacs-build-system)
2460 (home-page "https://github.com/bbatsov/zenburn-emacs")
2461 (synopsis "Low contrast color theme for Emacs")
2462 (description
2463 "Zenburn theme is a port of the popular Vim Zenburn theme for Emacs.
2464 It is built on top of the custom theme support in Emacs 24 or later.")
2465 (license license:gpl3+)))
2466
2467 (define-public emacs-solarized-theme
2468 (package
2469 (name "emacs-solarized-theme")
2470 (version "1.2.2")
2471 (source (origin
2472 (method url-fetch)
2473 (uri (string-append "https://github.com/bbatsov/solarized-emacs/"
2474 "archive/v" version ".tar.gz"))
2475 (file-name (string-append name "-" version ".tar.gz"))
2476 (sha256
2477 (base32
2478 "1ha3slc6d9wi9ilkhmwrzkvf308n6ph7b0k69pk369s9304awxzx"))))
2479 (build-system emacs-build-system)
2480 (propagated-inputs
2481 `(("emacs-dash" ,emacs-dash)))
2482 (home-page "https://github.com/bbatsov/solarized-emacs")
2483 (synopsis "Port of the Solarized theme for Emacs")
2484 (description
2485 "Solarized for Emacs is a port of the Solarized theme for Vim. This
2486 package provides a light and a dark variant.")
2487 (license license:gpl3+)))
2488
2489 (define-public emacs-ahungry-theme
2490 (package
2491 (name "emacs-ahungry-theme")
2492 (version "1.3.0")
2493 (source
2494 (origin (method url-fetch)
2495 (uri (string-append "https://elpa.gnu.org/packages/ahungry-theme-"
2496 version ".tar"))
2497 (sha256
2498 (base32
2499 "1p2zaq0s4bbl5cx6wyab24wamw7m0mysb0v47dqjmnvfc25z84rq"))))
2500 (build-system emacs-build-system)
2501 (home-page "https://github.com/ahungry/color-theme-ahungry")
2502 (synopsis "Ahungry color theme for Emacs")
2503 (description "Ahungry theme for Emacs provides bright and bold colors.
2504 If you load it from a terminal, you will be able to make use of the
2505 transparent background. If you load it from a GUI, it will default to a
2506 dark background.")
2507 (license license:gpl3+)))
2508
2509 (define-public emacs-smartparens
2510 (package
2511 (name "emacs-smartparens")
2512 (version "1.9.0")
2513 (source (origin
2514 (method url-fetch)
2515 (uri (string-append
2516 "https://github.com/Fuco1/smartparens/archive/"
2517 version ".tar.gz"))
2518 (file-name (string-append name "-" version ".tar.gz"))
2519 (sha256
2520 (base32
2521 "12065r7h1s9v8lnq5mk3654dkw4cq60ky8aniqq5n2ivv6qd2d4q"))))
2522 (build-system emacs-build-system)
2523 (propagated-inputs `(("emacs-dash" ,emacs-dash)))
2524 (home-page "https://github.com/Fuco1/smartparens")
2525 (synopsis "Paredit-like insertion, wrapping and navigation with user
2526 defined pairs")
2527 (description
2528 "Smartparens is a minor mode for Emacs that deals with parens pairs
2529 and tries to be smart about it. It started as a unification effort to
2530 combine functionality of several existing packages in a single,
2531 compatible and extensible way to deal with parentheses, delimiters, tags
2532 and the like. Some of these packages include autopair, textmate,
2533 wrap-region, electric-pair-mode, paredit and others. With the basic
2534 features found in other packages it also brings many improvements as
2535 well as completely new features.")
2536 (license license:gpl3+)))
2537
2538 (define-public emacs-hl-todo
2539 (package
2540 (name "emacs-hl-todo")
2541 (version "1.7.4")
2542 (source (origin
2543 (method url-fetch)
2544 (uri (string-append
2545 "https://raw.githubusercontent.com/tarsius/hl-todo/"
2546 version "/hl-todo.el"))
2547 (file-name (string-append "hl-todo-" version ".el"))
2548 (sha256
2549 (base32
2550 "016ivl4s0ysrm1xbfi86j5xcs759fcb0mkspxw81x8mpi3yb46ya"))))
2551 (build-system emacs-build-system)
2552 (home-page "https://github.com/tarsius/hl-todo")
2553 (synopsis "Emacs mode to highlight TODO and similar keywords")
2554 (description
2555 "This package provides an Emacs mode to highlight TODO and similar
2556 keywords in comments and strings. This package also provides commands for
2557 moving to the next or previous keyword and to invoke @code{occur} with a
2558 regexp that matches all known keywords.")
2559 (license license:gpl3+)))
2560
2561 (define-public emacs-perspective
2562 (package
2563 (name "emacs-perspective")
2564 (version "1.12")
2565 (source
2566 (origin
2567 (method url-fetch)
2568 (uri (string-append "https://github.com/nex3/perspective-el/"
2569 "archive/" version ".tar.gz"))
2570 (file-name (string-append name "-" version ".tar.gz"))
2571 (sha256
2572 (base32
2573 "078ahh0kmhdylq5ib9c81c76kz1n02xwc83pm729d00i84ibviic"))))
2574 (build-system emacs-build-system)
2575 (home-page "https://github.com/nex3/perspective-el")
2576 (synopsis "Switch between named \"perspectives\"")
2577 (description
2578 "This package provides tagged workspaces in Emacs, similar to workspaces in
2579 windows managers such as Awesome and XMonad. @code{perspective.el} provides
2580 multiple workspaces (or \"perspectives\") for each Emacs frame. Each
2581 perspective is composed of a window configuration and a set of buffers.
2582 Switching to a perspective activates its window configuration, and when in a
2583 perspective only its buffers are available by default.")
2584 ;; This package is released under the same license as Emacs (GPLv3+) or
2585 ;; the Expat license.
2586 (license license:gpl3+)))
2587
2588 (define-public emacs-request
2589 (package
2590 (name "emacs-request")
2591 (version "0.2.0")
2592 (source (origin
2593 (method url-fetch)
2594 (uri (string-append
2595 "https://github.com/tkf/emacs-request/archive/v"
2596 version ".tar.gz"))
2597 (file-name (string-append name "-" version ".tar.gz"))
2598 (sha256
2599 (base32 "0sll9g9x15jxrdr58pdxx4iz74rnjd43q521iqm890i6hmkrgwap"))))
2600 (build-system emacs-build-system)
2601 (home-page "https://github.com/tkf/emacs-request")
2602 (synopsis "Package for speaking HTTP in Emacs Lisp")
2603 (description "This package provides a HTTP request library with multiple
2604 backends. It supports url.el which is shipped with Emacs and the curl command
2605 line program.")
2606 (license license:gpl3+)))
2607
2608 (define-public emacs-rudel
2609 (package
2610 (name "emacs-rudel")
2611 (version "0.3.1")
2612 (source
2613 (origin
2614 (method url-fetch)
2615 (uri (string-append "http://elpa.gnu.org/packages/rudel-"
2616 version ".tar"))
2617 (sha256
2618 (base32
2619 "0glqa68g509p0s2vcc0i8kzlddnc9brd9jqhnm5rzxz4i050cvnz"))))
2620 (build-system emacs-build-system)
2621 (home-page "http://rudel.sourceforge.net/")
2622 (synopsis "Collaborative editing framework")
2623 (description
2624 "Rudel is a collaborative editing environment for GNU Emacs. Its purpose
2625 is to share buffers with other users in order to edit the contents of those
2626 buffers collaboratively. Rudel supports multiple backends to enable
2627 communication with other collaborative editors using different protocols,
2628 though currently Obby (for use with the Gobby editor) is the only
2629 fully-functional one.")
2630 (license license:gpl3+)))
2631
2632 (define-public emacs-hydra
2633 (package
2634 (name "emacs-hydra")
2635 (version "0.13.6")
2636 (source
2637 (origin
2638 (method url-fetch)
2639 (uri (string-append "https://github.com/abo-abo/hydra/archive/"
2640 version ".tar.gz"))
2641 (file-name (string-append name "-" version ".tar.gz"))
2642 (sha256
2643 (base32
2644 "0575vh858gm35p57s49dy6pc2ij46dmj9zaa4z0cp98sqra3j3l0"))))
2645 (build-system emacs-build-system)
2646 (home-page "https://github.com/abo-abo/hydra")
2647 (synopsis "Make Emacs bindings that stick around")
2648 (description
2649 "This package can be used to tie related commands into a family of short
2650 bindings with a common prefix---a Hydra. Once you summon the Hydra (through
2651 the prefixed binding), all the heads can be called in succession with only a
2652 short extension. Any binding that isn't the Hydra's head vanquishes the
2653 Hydra. Note that the final binding, besides vanquishing the Hydra, will still
2654 serve its original purpose, calling the command assigned to it. This makes
2655 the Hydra very seamless; it's like a minor mode that disables itself
2656 automatically.")
2657 (license license:gpl3+)))
2658
2659 (define-public emacs-ivy
2660 (package
2661 (name "emacs-ivy")
2662 (version "0.8.0")
2663 (source
2664 (origin
2665 (method url-fetch)
2666 (uri (string-append "https://github.com/abo-abo/swiper/archive/"
2667 version ".tar.gz"))
2668 (file-name (string-append name "-" version ".tar.gz"))
2669 (sha256
2670 (base32
2671 "18nqwl05is71dzswnvpfhlg7b0v3apvbsfxrwab9c0apwavi892q"))))
2672 (build-system emacs-build-system)
2673 (propagated-inputs
2674 `(("emacs-hydra" ,emacs-hydra)))
2675 (home-page "http://oremacs.com/swiper/")
2676 (synopsis "Incremental vertical completion for Emacs")
2677 (description
2678 "This package provides @code{ivy-read} as an alternative to
2679 @code{completing-read} and similar functions. No attempt is made to determine
2680 the best candidate. Instead, the user can navigate candidates with
2681 @code{ivy-next-line} and @code{ivy-previous-line}. The matching is done by
2682 splitting the input text by spaces and re-building it into a regular
2683 expression.")
2684 (license license:gpl3+)))
2685
2686 (define-public emacs-avy
2687 (package
2688 (name "emacs-avy")
2689 (version "0.4.0")
2690 (source
2691 (origin
2692 (method url-fetch)
2693 (uri (string-append "https://github.com/abo-abo/avy/archive/"
2694 version ".tar.gz"))
2695 (file-name (string-append name "-" version ".tar.gz"))
2696 (sha256
2697 (base32
2698 "1wdrq512h25ymzjbf2kbsdymvd2ryfwzb6bh5bc3yv7q203im796"))))
2699 (build-system emacs-build-system)
2700 (home-page "https://github.com/abo-abo/avy")
2701 (synopsis "Tree-based completion for Emacs")
2702 (description
2703 "This package provides a generic completion method based on building a
2704 balanced decision tree with each candidate being a leaf. To traverse the tree
2705 from the root to a desired leaf, typically a sequence of @code{read-key} can
2706 be used.
2707
2708 In order for @code{read-key} to make sense, the tree needs to be visualized
2709 appropriately, with a character at each branch node. So this completion
2710 method works only for things that you can see on your screen, all at once,
2711 such as the positions of characters, words, line beginnings, links, or
2712 windows.")
2713 (license license:gpl3+)))
2714
2715 (define-public emacs-ace-window
2716 (package
2717 (name "emacs-ace-window")
2718 (version "0.9.0")
2719 (source
2720 (origin
2721 (method url-fetch)
2722 (uri (string-append "https://github.com/abo-abo/ace-window/archive/"
2723 version ".tar.gz"))
2724 (file-name (string-append name "-" version ".tar.gz"))
2725 (sha256
2726 (base32
2727 "1p2sgfl5dml4zbd6ldql6lm2m9vmd236ah996ni32x254s48j5pn"))))
2728 (build-system emacs-build-system)
2729 (propagated-inputs
2730 `(("emacs-avy" ,emacs-avy)))
2731 (home-page "https://github.com/abo-abo/ace-window")
2732 (synopsis "Quickly switch windows in Emacs")
2733 (description
2734 "@code{ace-window} is meant to replace @code{other-window}.
2735 In fact, when there are only two windows present, @code{other-window} is
2736 called. If there are more, each window will have its first character
2737 highlighted. Pressing that character will switch to that window.")
2738 (license license:gpl3+)))
2739
2740 (define-public emacs-iedit
2741 (package
2742 (name "emacs-iedit")
2743 (version "0.9.9")
2744 (source
2745 (origin
2746 (method url-fetch)
2747 (uri (string-append "https://github.com/victorhge/iedit/archive/v"
2748 version ".tar.gz"))
2749 (file-name (string-append name "-" version ".tar.gz"))
2750 (sha256
2751 (base32
2752 "00v86zllcsivmiibigbr91qij2zdf1lr9db8z8again1sn63wkdj"))))
2753 (build-system emacs-build-system)
2754 (home-page "http://www.emacswiki.org/emacs/Iedit")
2755 (synopsis "Edit multiple regions in the same way simultaneously")
2756 (description
2757 "This package is an Emacs minor mode and allows you to edit one
2758 occurrence of some text in a buffer (possibly narrowed) or region, and
2759 simultaneously have other occurrences edited in the same way.
2760
2761 You can also use Iedit mode as a quick way to temporarily show only the buffer
2762 lines that match the current text being edited. This gives you the effect of
2763 a temporary @code{keep-lines} or @code{occur}.")
2764 (license license:gpl3+)))
2765
2766 (define-public emacs-lispy
2767 (package
2768 (name "emacs-lispy")
2769 (version "0.26.0")
2770 (source
2771 (origin
2772 (method url-fetch)
2773 (uri (string-append "https://github.com/abo-abo/lispy/archive/"
2774 version ".tar.gz"))
2775 (file-name (string-append name "-" version ".tar.gz"))
2776 (sha256
2777 (base32
2778 "15gig95cvamw5zlw99cxggd27c18b9scznjj97gvjn2zbljcaqzl"))))
2779 (build-system emacs-build-system)
2780 (propagated-inputs
2781 `(("emacs-ace-window" ,emacs-ace-window)
2782 ("emacs-iedit" ,emacs-iedit)
2783 ("emacs-ivy" ,emacs-ivy)
2784 ("emacs-hydra" ,emacs-hydra)))
2785 (home-page "https://github.com/abo-abo/lispy")
2786 (synopsis "Modal S-expression editing")
2787 (description
2788 "Due to the structure of Lisp syntax it's very rare for the programmer to
2789 want to insert characters right before \"(\" or right after \")\". Thus
2790 unprefixed printable characters can be used to call commands when the point is
2791 at one of these special locations. Lispy provides unprefixed keybindings for
2792 S-expression editing when point is at the beginning or end of an
2793 S-expression.")
2794 (license license:gpl3+)))
2795
2796 (define-public emacs-clojure-mode
2797 (package
2798 (name "emacs-clojure-mode")
2799 (version "5.3.0")
2800 (source (origin
2801 (method url-fetch)
2802 (uri (string-append
2803 "https://github.com/clojure-emacs/clojure-mode/archive/"
2804 version ".tar.gz"))
2805 (file-name (string-append name "-" version ".tar.gz"))
2806 (sha256
2807 (base32
2808 "0gi8ra3ap5m3mz4qh1yxp2cldn7z9xcxvypznr6rrlc6a9l8s5a6"))))
2809 (build-system emacs-build-system)
2810 (home-page "https://github.com/clojure-emacs/clojure-mode")
2811 (synopsis "Major mode for Clojure code")
2812 (description
2813 "This Emacs package provides font-lock, indentation, navigation and basic
2814 refactoring for the @uref{http://clojure.org, Clojure programming language}.
2815 It is recommended to use @code{clojure-mode} with paredit or smartparens.")
2816 (license license:gpl3+)))
2817
2818 (define-public emacs-epl
2819 (package
2820 (name "emacs-epl")
2821 (version "0.8")
2822 (source (origin
2823 (method url-fetch)
2824 (uri (string-append
2825 "https://github.com/cask/epl/archive/"
2826 version ".tar.gz"))
2827 (sha256
2828 (base32
2829 "1511n3a3f5gvaf2b4nh018by61ciyzi3y3603fzqma7p9hrckarc"))))
2830 (build-system emacs-build-system)
2831 (home-page "https://github.com/cask/epl")
2832 (synopsis "Emacs Package Library")
2833 (description
2834 "A package management library for Emacs, based on @code{package.el}.
2835
2836 The purpose of this library is to wrap all the quirks and hassle of
2837 @code{package.el} into a sane API.")
2838 (license license:gpl3+)))
2839
2840 (define-public emacs-queue
2841 (package
2842 (name "emacs-queue")
2843 (version "0.1.1")
2844 (source (origin
2845 (method url-fetch)
2846 (uri (string-append "https://elpa.gnu.org/packages/queue-"
2847 version ".el"))
2848 (sha256
2849 (base32
2850 "0jw24fxqnf9qcaf2nh09cnds1kqfk7hal35dw83x1ari95say391"))))
2851 (build-system emacs-build-system)
2852 (home-page "http://www.dr-qubit.org/tags/computing-code-emacs.html")
2853 (synopsis "Queue data structure for Emacs")
2854 (description
2855 "This Emacs library provides queue data structure. These queues can be
2856 used both as a first-in last-out (FILO) and as a first-in first-out (FIFO)
2857 stack, i.e. elements can be added to the front or back of the queue, and can
2858 be removed from the front. This type of data structure is sometimes called an
2859 \"output-restricted deque\".")
2860 (license license:gpl3+)))
2861
2862 (define-public emacs-pkg-info
2863 (package
2864 (name "emacs-pkg-info")
2865 (version "0.6")
2866 (source (origin
2867 (method url-fetch)
2868 (uri (string-append
2869 "https://github.com/lunaryorn/pkg-info.el/archive/"
2870 version ".tar.gz"))
2871 (file-name (string-append name "-" version ".tar.gz"))
2872 (sha256
2873 (base32
2874 "1gy1jks5mmm02gg1c8gcyr4f8a9s5ggzhk56gv33b9mzjqzi5rd5"))))
2875 (build-system emacs-build-system)
2876 (propagated-inputs `(("emacs-epl" ,emacs-epl)))
2877 (home-page "https://github.com/lunaryorn/pkg-info.el")
2878 (synopsis "Information about Emacs packages")
2879 (description
2880 "This library extracts information from the installed Emacs packages.")
2881 (license license:gpl3+)))
2882
2883 (define-public emacs-spinner
2884 (package
2885 (name "emacs-spinner")
2886 (version "1.7.3")
2887 (source (origin
2888 (method url-fetch)
2889 (uri (string-append "https://elpa.gnu.org/packages/spinner-"
2890 version ".el"))
2891 (sha256
2892 (base32
2893 "19kp1mmndbmw11sgvv2ggfjl4pyf5zrsbh3871f0965pw9z8vahd"))))
2894 (build-system emacs-build-system)
2895 (home-page "https://github.com/Malabarba/spinner.el")
2896 (synopsis "Emacs mode-line spinner for operations in progress")
2897 (description
2898 "This Emacs package adds spinners and progress-bars to the mode-line for
2899 ongoing operations.")
2900 (license license:gpl3+)))
2901
2902 (define-public emacs-seq
2903 (package
2904 (name "emacs-seq")
2905 (version "2.19")
2906 (source (origin
2907 (method url-fetch)
2908 (uri (string-append "https://elpa.gnu.org/packages/seq-"
2909 version ".tar"))
2910 (sha256
2911 (base32
2912 "11hb7is6a4h1lscjcfrzh576j0g3m5yjydn16s6x5bxp5gsr6zha"))))
2913 (build-system emacs-build-system)
2914 (home-page "https://elpa.gnu.org/packages/seq.html")
2915 (synopsis "Sequence manipulation functions for Emacs")
2916 (description
2917 "This Emacs library provides sequence-manipulation functions that
2918 complement basic functions provided by @code{subr.el}. All provided functions
2919 work on lists, strings and vectors.")
2920 (license license:gpl3+)))
2921
2922 (define-public emacs-better-defaults
2923 (package
2924 (name "emacs-better-defaults")
2925 (version "0.1.3")
2926 (source
2927 (origin
2928 (method url-fetch)
2929 (uri (string-append "https://github.com/technomancy/better-defaults"
2930 "/archive/" version ".tar.gz"))
2931 (file-name (string-append name "-" version ".tar.gz"))
2932 (sha256
2933 (base32
2934 "08fg4zslzlxbvyil5g4gwvwd22fh4zsgqprs5wh9hv1rgc6757m2"))))
2935 (build-system emacs-build-system)
2936 (home-page "https://github.com/technomancy/better-defaults")
2937 (synopsis "Better defaults for Emacs")
2938 (description
2939 "Better defaults attempts to address the most obvious deficiencies of the
2940 Emacs default configuration in uncontroversial ways that nearly everyone can
2941 agree upon.")
2942 (license license:gpl3+)))
2943
2944 (define-public emacs-eprime
2945 (let ((commit "17a481af26496be91c07139a9bfc05cfe722506f"))
2946 (package
2947 (name "emacs-eprime")
2948 (version (string-append "20140513-" (string-take commit 7)))
2949 (source (origin
2950 (method url-fetch)
2951 (uri (string-append "https://raw.githubusercontent.com"
2952 "/AndrewHynes/eprime-mode/"
2953 commit "/eprime-mode.el"))
2954 (file-name (string-append "eprime-" version ".el"))
2955 (sha256
2956 (base32
2957 "0v68lggkyq7kbcr9zyi573m2g2x251xy3jadlaw8kx02l8krwq8d"))))
2958 (build-system emacs-build-system)
2959 (home-page "https://github.com/AndrewHynes/eprime-mode")
2960 (synopsis "E-prime checking mode for Emacs")
2961 (description "This package provides an E-prime checking mode for Emacs
2962 that highlights non-conforming text. The subset of the English language called
2963 E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
2964 (license license:gpl3+))))
2965
2966 (define-public emacs-ess
2967 (package
2968 (name "emacs-ess")
2969 (version "16.04")
2970 (source (origin
2971 (method url-fetch)
2972 (uri (string-append "http://ess.r-project.org/downloads/ess/ess-"
2973 version ".tgz"))
2974 (sha256
2975 (base32
2976 "0w7mbbajn377gdmvnd21mpyr368b2ia46gq6cb99y4y5rspf9pcg"))))
2977 (build-system gnu-build-system)
2978 (arguments
2979 `(#:tests? #f ; There is no test suite.
2980 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
2981 #:phases
2982 (modify-phases %standard-phases
2983 (delete 'configure)
2984 (add-before 'build 'more-shebang-patching
2985 (lambda* (#:key inputs #:allow-other-keys)
2986 (substitute* "Makeconf"
2987 (("SHELL = /bin/sh")
2988 (string-append "SHELL = " (which "sh")))))))))
2989 (inputs
2990 `(("emacs" ,emacs-minimal)
2991 ("r-minimal" ,r-minimal)))
2992 (native-inputs
2993 `(("perl" ,perl)
2994 ("texinfo" ,texinfo)
2995 ("texlive" ,texlive)))
2996 (home-page "http://ess.r-project.org/")
2997 (synopsis "Emacs mode for statistical analysis programs")
2998 (description "Emacs Speaks Statistics (ESS) is an add-on package for GNU
2999 Emacs. It is designed to support editing of scripts and interaction with
3000 various statistical analysis programs such as R and OpenBUGS.")
3001 (license license:gpl2+)))
3002
3003 (define-public emacs-smex
3004 (package
3005 (name "emacs-smex")
3006 (version "3.0")
3007 (source (origin
3008 (method url-fetch)
3009 (uri (string-append "https://raw.githubusercontent.com"
3010 "/nonsequitur/smex/" version "/smex.el"))
3011 (file-name (string-append "smex-" version ".el"))
3012 (sha256
3013 (base32
3014 "0ar310zx9k5y4i1vl2rawvi712xj9gx77160860jbs691p77cxqp"))))
3015 (build-system emacs-build-system)
3016 (home-page "https://github.com/nonsequitur/smex/")
3017 (synopsis "M-x interface with Ido-style fuzzy matching")
3018 (description
3019 "Smex is a M-x enhancement for Emacs. Built on top of Ido, it provides a
3020 convenient interface to your recently and most frequently used commands. And
3021 to all the other commands, too.")
3022 (license license:gpl3+)))
3023
3024 (define-public emacs-js2-mode
3025 (package
3026 (name "emacs-js2-mode")
3027 (version "20150909")
3028 (source (origin
3029 (method url-fetch)
3030 (uri (string-append "https://github.com/mooz/js2-mode/archive/"
3031 version ".tar.gz"))
3032 (file-name (string-append name "-" version ".tar.gz"))
3033 (sha256
3034 (base32
3035 "1nsm36c4kwb473p13i58fgrnlk8fbn3rdhj47d9xz70az4ra44q0"))))
3036 (build-system emacs-build-system)
3037 (home-page "https://github.com/mooz/js2-mode/")
3038 (synopsis "Improved JavaScript editing mode for Emacs")
3039 (description
3040 "Js2-mode provides a JavaScript major mode for Emacs that is more
3041 advanced than the built-in javascript-mode. Features include accurate syntax
3042 highlighting using a recursive-descent parser, on-the-fly reporting of syntax
3043 errors and strict-mode warnings, smart line-wrapping within comments and
3044 strings, and code folding.")
3045 (license license:gpl3+)))
3046
3047 (define-public emacs-markdown-mode
3048 (package
3049 (name "emacs-markdown-mode")
3050 (version "2.1")
3051 (source (origin
3052 (method url-fetch)
3053 (uri (string-append "https://raw.githubusercontent.com/jrblevin"
3054 "/markdown-mode/v" version
3055 "/markdown-mode.el"))
3056 (file-name (string-append "markdown-mode-" version ".el"))
3057 (sha256
3058 (base32
3059 "1faibar32jnjia9202swblw91q6z1g5s4k9xmypwjahfh8yznl6w"))))
3060 (build-system emacs-build-system)
3061 (home-page "http://jblevins.org/projects/markdown-mode/")
3062 (synopsis "Emacs Major mode for Markdown files")
3063 (description
3064 "Markdown-mode is a major mode for editing Markdown-formatted text files
3065 in Emacs.")
3066 (license license:gpl3+)))
3067
3068 (define-public emacs-projectile
3069 (package
3070 (name "emacs-projectile")
3071 (version "0.14.0")
3072 (source (origin
3073 (method url-fetch)
3074 (uri (string-append "https://raw.githubusercontent.com/bbatsov"
3075 "/projectile/v" version "/projectile.el"))
3076 (file-name (string-append "projectile-" version ".el"))
3077 (sha256
3078 (base32
3079 "1ql1wnzhblbwnv66hf2y0wq45g71hh6s9inc090lmhm1vgylbd1f"))))
3080 (build-system emacs-build-system)
3081 (propagated-inputs
3082 `(("emacs-dash" ,emacs-dash)
3083 ("emacs-pkg-info" ,emacs-pkg-info)))
3084 (home-page "https://github.com/bbatsov/projectile")
3085 (synopsis "Manage and navigate projects in Emacs easily")
3086 (description
3087 "This library provides easy project management and navigation. The
3088 concept of a project is pretty basic - just a folder containing special file.
3089 Currently git, mercurial and bazaar repos are considered projects by default.
3090 If you want to mark a folder manually as a project just create an empty
3091 .projectile file in it.")
3092 (license license:gpl3+)))
3093
3094 (define-public emacs-elfeed
3095 (package
3096 (name "emacs-elfeed")
3097 (version "2.1.0")
3098 (source (origin
3099 (method url-fetch)
3100 (uri (string-append "https://github.com/skeeto/elfeed/archive/"
3101 version ".tar.gz"))
3102 (file-name (string-append name "-" version ".tar.gz"))
3103 (sha256
3104 (base32
3105 "145glas04zd0s2rmnif46vhyijs4z03v871gfp1dcrwxvvvns8ap"))))
3106 (build-system emacs-build-system)
3107 (arguments
3108 `(#:phases
3109 (modify-phases %standard-phases
3110 (add-before 'install 'check
3111 (lambda _
3112 (zero? (system* "make" "test")))))))
3113 (home-page "https://github.com/skeeto/elfeed")
3114 (synopsis "Atom/RSS feed reader for Emacs")
3115 (description
3116 "Elfeed is an extensible web feed reader for Emacs, supporting both Atom
3117 and RSS, with a user interface inspired by notmuch.")
3118 (license license:gpl3+)))
3119
3120 (define-public emacs-rainbow-delimiters
3121 (package
3122 (name "emacs-rainbow-delimiters")
3123 (version "2.1.3")
3124 (source (origin
3125 (method url-fetch)
3126 (uri (string-append "https://raw.githubusercontent.com/Fanael"
3127 "/rainbow-delimiters/" version
3128 "/rainbow-delimiters.el"))
3129 (file-name (string-append "rainbow-delimiters-" version ".el"))
3130 (sha256
3131 (base32
3132 "1b3kampwsjabhcqdp0khgff13wc5jqhy3rbvaa12vnv7qy22l9ck"))))
3133 (build-system emacs-build-system)
3134 (home-page "https://github.com/Fanael/rainbow-delimiters")
3135 (synopsis "Highlight brackets according to their depth")
3136 (description
3137 "Rainbow-delimiters is a \"rainbow parentheses\"-like mode for Emacs which
3138 highlights parentheses, brackets, and braces according to their depth. Each
3139 successive level is highlighted in a different color, making it easy to spot
3140 matching delimiters, orient yourself in the code, and tell which statements
3141 are at a given level.")
3142 (license license:gpl3+)))
3143
3144 (define-public emacs-rainbow-identifiers
3145 (package
3146 (name "emacs-rainbow-identifiers")
3147 (version "0.2.2")
3148 (source (origin
3149 (method url-fetch)
3150 (uri (string-append "https://raw.githubusercontent.com/Fanael"
3151 "/rainbow-identifiers/" version
3152 "/rainbow-identifiers.el"))
3153 (file-name (string-append "rainbow-identifiers-" version ".el"))
3154 (sha256
3155 (base32
3156 "0325abxj47k0g1i8nqrq70w2wr6060ckhhf92krv1s072b3jzm31"))))
3157 (build-system emacs-build-system)
3158 (home-page "https://github.com/Fanael/rainbow-identifiers")
3159 (synopsis "Highlight identifiers in source code")
3160 (description
3161 "Rainbow identifiers mode is an Emacs minor mode providing highlighting of
3162 identifiers based on their names. Each identifier gets a color based on a hash
3163 of its name.")
3164 (license license:bsd-2)))
3165
3166 (define-public emacs-visual-fill-column
3167 (package
3168 (name "emacs-visual-fill-column")
3169 (version "1.7")
3170 (source (origin
3171 (method url-fetch)
3172 (uri (string-append "https://codeload.github.com/joostkremers/"
3173 "visual-fill-column/tar.gz/" version))
3174 (file-name (string-append name "-" version ".tar.gz"))
3175 (sha256
3176 (base32
3177 "12vn7kdq2mpz9hgibbn1vhpf23lcm7c26k3fkz8nidhygwl5x5lq"))))
3178 (build-system emacs-build-system)
3179 (home-page "https://github.com/joostkremers/visual-fill-column")
3180 (synopsis "Fill-column for visual-line-mode")
3181 (description
3182 "@code{visual-fill-column-mode} is a small Emacs minor mode that mimics
3183 the effect of @code{fill-column} in @code{visual-line-mode}. Instead of
3184 wrapping lines at the window edge, which is the standard behaviour of
3185 @code{visual-line-mode}, it wraps lines at @code{fill-column}. If
3186 @code{fill-column} is too large for the window, the text is wrapped at the
3187 window edge.")
3188 (license license:gpl3+)))
3189
3190 (define-public emacs-ido-completing-read+
3191 (package
3192 (name "emacs-ido-completing-read+")
3193 (version "3.12")
3194 (source (origin
3195 (method url-fetch)
3196 (uri (string-append "https://raw.githubusercontent.com"
3197 "/DarwinAwardWinner/ido-ubiquitous/v"
3198 version "/ido-completing-read+.el"))
3199 (file-name (string-append "ido-completing-read+-" version ".el"))
3200 (sha256
3201 (base32
3202 "1cyalb0p7nfsm4n6n9q6rjmvn6adqc0fq8ybnlj3n41n289dkfjf"))))
3203 (build-system emacs-build-system)
3204 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
3205 (synopsis "Replacement for completing-read using ido")
3206 (description
3207 "The ido-completing-read+ function is a wrapper for ido-completing-read.
3208 Importantly, it detects edge cases that ordinary ido cannot handle and either
3209 adjusts them so ido can handle them, or else simply falls back to the standard
3210 Emacs completion function instead.")
3211 (license license:gpl3+)))
3212
3213 (define-public emacs-ido-ubiquitous
3214 (package
3215 (name "emacs-ido-ubiquitous")
3216 (version "3.12")
3217 (source (origin
3218 (method url-fetch)
3219 (uri (string-append "https://raw.githubusercontent.com"
3220 "/DarwinAwardWinner/ido-ubiquitous/v"
3221 version "/ido-ubiquitous.el"))
3222 (file-name (string-append "ido-ubiquitous-" version ".el"))
3223 (sha256
3224 (base32
3225 "197ypji0fb6jsdcq40rpnknwlh3imas6s6jbsvkfm0pz9988c3q2"))))
3226 (build-system emacs-build-system)
3227 (propagated-inputs
3228 `(("emacs-ido-completing-read+" ,emacs-ido-completing-read+)))
3229 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
3230 (synopsis "Use ido (nearly) everywhere")
3231 (description
3232 "Ido-ubiquitous enables ido-style completion for almost every function
3233 that uses the standard completion function completing-read.")
3234 (license license:gpl3+)))
3235
3236 (define-public emacs-yaml-mode
3237 (package
3238 (name "emacs-yaml-mode")
3239 (version "0.0.12")
3240 (source (origin
3241 (method url-fetch)
3242 (uri (string-append "https://raw.githubusercontent.com/yoshiki"
3243 "/yaml-mode/v" version "/yaml-mode.el"))
3244 (file-name (string-append "yaml-mode-" version ".el"))
3245 (sha256
3246 (base32
3247 "17wq433ycli0qx4gdhgrmb392qblm6y2dwcyn38j5ja1lasfb0ax"))))
3248 (build-system emacs-build-system)
3249 (home-page "https://github.com/yoshiki/yaml-mode")
3250 (synopsis "Major mode for editing YAML files")
3251 (description
3252 "Yaml-mode is an Emacs major mode for editing files in the YAML data
3253 serialization format. It was initially developed by Yoshiki Kurihara and many
3254 features were added by Marshall Vandegrift. As YAML and Python share the fact
3255 that indentation determines structure, this mode provides indentation and
3256 indentation command behavior very similar to that of python-mode.")
3257 (license license:gpl3+)))
3258
3259 (define-public emacs-web-mode
3260 (package
3261 (name "emacs-web-mode")
3262 (version "14")
3263 (source (origin
3264 (method url-fetch)
3265 (uri (string-append "https://raw.githubusercontent.com/fxbois"
3266 "/web-mode/v" version "/web-mode.el"))
3267 (file-name (string-append "web-mode-" version ".el"))
3268 (sha256
3269 (base32
3270 "086hik5fmxg3kx74qmransx9cz961qd22d4m6ah2dw6cwaj1s3s5"))))
3271 (build-system emacs-build-system)
3272 (synopsis "Major mode for editing web templates")
3273 (description "Web-mode is an Emacs major mode for editing web templates
3274 aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by
3275 client/server side engines). Web-mode is compatible with many template
3276 engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker,
3277 Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template,
3278 Dust.js, React/JSX, Angularjs, ejs, etc.")
3279 (home-page "http://web-mode.org/")
3280 (license license:gpl3+)))
3281
3282 (define-public emacs-helm
3283 (package
3284 (name "emacs-helm")
3285 (version "1.9.8")
3286 (source (origin
3287 (method url-fetch)
3288 (uri (string-append
3289 "https://github.com/" name "/helm/archive/v"
3290 version ".tar.gz"))
3291 (file-name (string-append name "-" version ".tar.gz"))
3292 (sha256
3293 (base32
3294 "019dpzr6l83k1fgxn40aqxjvrpz4dl5d9vi7fc5wjnifmxaqxia6"))))
3295 (build-system emacs-build-system)
3296 (propagated-inputs
3297 `(("emacs-async" ,emacs-async)
3298 ("emacs-popup" ,emacs-popup)))
3299 (home-page "https://emacs-helm.github.io/helm/")
3300 (synopsis "Incremental completion and selection narrowing
3301 framework for Emacs")
3302 (description "Helm is incremental completion and selection narrowing
3303 framework for Emacs. It will help steer you in the right direction when
3304 you're looking for stuff in Emacs (like buffers, files, etc). Helm is a fork
3305 of @code{anything.el} originally written by Tamas Patrovic and can be
3306 considered to be its successor. Helm sets out to clean up the legacy code in
3307 @code{anything.el} and provide a cleaner, leaner and more modular tool, that's
3308 not tied in the trap of backward compatibility.")
3309 (license license:gpl3+)))
3310
3311 (define-public emacs-cider
3312 (package
3313 (name "emacs-cider")
3314 (version "0.12.0")
3315 (source (origin
3316 (method url-fetch)
3317 (uri (string-append
3318 "https://github.com/clojure-emacs/cider/archive/v"
3319 version ".tar.gz"))
3320 (file-name (string-append name "-" version ".tar.gz"))
3321 (sha256
3322 (base32
3323 "00qzbfjy3w6bcnki7gw0clmi0cc5yqjdrcyhgv4ymijjs79h9p5s"))))
3324 (build-system emacs-build-system)
3325 (propagated-inputs
3326 `(("emacs-clojure-mode" ,emacs-clojure-mode)
3327 ("emacs-spinner" ,emacs-spinner)
3328 ("emacs-pkg-info" ,emacs-pkg-info)
3329 ("emacs-queue" ,emacs-queue)
3330 ("emacs-seq" ,emacs-seq)))
3331 (home-page "https://cider.readthedocs.org/")
3332 (synopsis "Clojure development environment for Emacs")
3333 (description
3334 "CIDER (Clojure Interactive Development Environment that Rocks) aims to
3335 provide an interactive development experience similar to the one you'd get
3336 when programming in Emacs Lisp, Common Lisp (with SLIME or Sly), Scheme (with
3337 Geiser) and Smalltalk.
3338
3339 CIDER is the successor to the now deprecated combination of using SLIME +
3340 swank-clojure for Clojure development.
3341
3342 There are plenty of differences between CIDER and SLIME, but the core ideas
3343 are pretty much the same (and SLIME served as the principle inspiration for
3344 CIDER).")
3345 (license license:gpl3+)))
3346
3347 (define-public emacs-lua-mode
3348 (package
3349 (name "emacs-lua-mode")
3350 (version "20151025")
3351 (source (origin
3352 (method url-fetch)
3353 (uri (string-append
3354 "https://github.com/immerrr/lua-mode/archive/v"
3355 version ".tar.gz"))
3356 (file-name (string-append name "-" version ".tar.gz"))
3357 (sha256
3358 (base32
3359 "0sbhfny5ib65cnx6xcy6h9bbw27mw034s8m9cca00bhxqaqi6p4v"))))
3360 (build-system emacs-build-system)
3361 (home-page "https://github.com/immerrr/lua-mode/")
3362 (synopsis "Major mode for lua")
3363 (description
3364 "This Emacs package provides a mode for @uref{https://www.lua.org/,
3365 Lua programing language}.")
3366 (license license:gpl2+)))
3367
3368 (define-public emacs-ebuild-mode
3369 (package
3370 (name "emacs-ebuild-mode")
3371 (version "1.30")
3372 (source (origin
3373 (method url-fetch)
3374 (uri (string-append
3375 "https://dev.gentoo.org/~ulm/emacs/ebuild-mode"
3376 "-" version ".tar.xz"))
3377 (file-name (string-append name "-" version ".tar.xz"))
3378 (sha256
3379 (base32
3380 "0vp7lq1kvmh1b2bms2x1kf2k76dy9m02d7cirkxpiglwaxa0h9vz"))))
3381 (build-system emacs-build-system)
3382 (home-page "https://devmanual.gentoo.org")
3383 (synopsis "Major modes for Gentoo package files")
3384 (description
3385 "This Emacs package provides modes for ebuild, eclass, eblit, GLEP42
3386 news items, openrc and runscripts.")
3387 (license license:gpl2+)))
3388
3389 (define-public emacs-evil
3390 (package
3391 (name "emacs-evil")
3392 (version "1.2.12")
3393 (source
3394 (origin
3395 (method url-fetch)
3396 (uri (string-append "https://bitbucket.org/lyro/evil/get/"
3397 version ".tar.bz2"))
3398 (file-name (string-append name "-" version ".tar.bz2"))
3399 (sha256
3400 (base32
3401 "17cda9fnbq3gmjcxs3lyq64gxswrf37y864bm53rldwsk3khq2yi"))))
3402 (build-system emacs-build-system)
3403 (propagated-inputs
3404 `(("emacs-undo-tree" ,emacs-undo-tree)
3405 ("emacs-goto-chg" ,emacs-goto-chg)))
3406 (home-page "https://bitbucket.com/lyro/evil")
3407 (synopsis "Extensible Vi layer for Emacs")
3408 (description
3409 "Evil is an extensible vi layer for Emacs. It emulates the
3410 main features of Vim, and provides facilities for writing custom
3411 extensions.")
3412 (license license:gpl3+)))
3413
3414 (define-public emacs-goto-chg
3415 (package
3416 (name "emacs-goto-chg")
3417 (version "1.6")
3418 (source
3419 (origin
3420 (method url-fetch)
3421 ;; There is no versioned source.
3422 (uri "https://www.emacswiki.org/emacs/download/goto-chg.el")
3423 (sha256
3424 (base32
3425 "078d6p4br5vips7b9x4v6cy0wxf6m5ij9gpqd4g33bryn22gnpij"))))
3426 (build-system emacs-build-system)
3427 ;; There is no other home page.
3428 (home-page "https://www.emacswiki.org/emacs/goto-chg.el")
3429 (synopsis "Go to the last change in the Emacs buffer")
3430 (description
3431 "This package provides @code{M-x goto-last-change} command that goes to
3432 the point of the most recent edit in the current Emacs buffer. When repeated,
3433 go to the second most recent edit, etc. Negative argument, @kbd{C-u -}, is
3434 used for reverse direction.")
3435 (license license:gpl2+)))
3436
3437 (define-public emacs-monroe
3438 (package
3439 (name "emacs-monroe")
3440 (version "0.3.1")
3441 (source
3442 (origin
3443 (method url-fetch)
3444 (uri (string-append "https://github.com/sanel/monroe/archive/"
3445 version ".tar.gz"))
3446 (file-name (string-append name "-" version ".tar.gz"))
3447 (sha256
3448 (base32
3449 "0icdx8shkd951phlnmcq1vqaxp1l667q5rjscskc5r22aylakh4w"))))
3450 (build-system emacs-build-system)
3451 (home-page "https://github.com/sanel/monroe")
3452 (synopsis "Clojure nREPL client for Emacs")
3453 (description
3454 "Monroe is a nREPL client for Emacs, focused on simplicity and easy
3455 distribution, primarily targeting Clojure users")
3456 (license license:gpl3+)))
3457
3458 (define-public emacs-writegood-mode
3459 (package
3460 (name "emacs-writegood-mode")
3461 (version "2.0.2")
3462 (home-page "https://github.com/bnbeckwith/writegood-mode")
3463 (source (origin
3464 (method git-fetch)
3465 (uri (git-reference
3466 (url home-page)
3467 (commit (string-append "v" version))))
3468 (sha256
3469 (base32
3470 "1nnjn1r669hvvzfycllwap4w04m8rfsk4nzcg8057m1f263kj31b"))
3471 (file-name (string-append name "-checkout"))))
3472 (build-system emacs-build-system)
3473 (synopsis "Polish up poor writing on the fly")
3474 (description
3475 "This minor mode tries to find and highlight problems with your writing
3476 in English as you type. It primarily detects \"weasel words\" and abuse of
3477 passive voice.")
3478 (license license:gpl3+)))
3479
3480 (define-public emacs-neotree
3481 (package
3482 (name "emacs-neotree")
3483 (version "0.2.1")
3484 (home-page "https://github.com/jaypei/emacs-neotree")
3485 (source (origin
3486 (method url-fetch)
3487 (uri (string-append
3488 "https://github.com/jaypei/" name
3489 "/archive/v" version ".tar.gz"))
3490 (sha256
3491 (base32
3492 "0cr37pdkwjgfijfws5bjskfh1rq9rfngxblcj6v5383vpmn83q7s"))
3493 (file-name (string-append name "-" version ".tar.gz"))))
3494 (build-system emacs-build-system)
3495 (synopsis "Folder tree view for Emacs")
3496 (description "This Emacs package provides a folder tree view.")
3497 (license license:gpl3+)))
3498
3499 (define-public emacs-org
3500 (package
3501 (name "emacs-org")
3502 (version "20170210")
3503 (source (origin
3504 (method url-fetch)
3505 (uri (string-append "http://elpa.gnu.org/packages/org-"
3506 version ".tar"))
3507 (sha256
3508 (base32
3509 "15415wh3w8d4c8hd7qfrfdjnjb1zppmrkg8cdp7hw2ilyr90c0bn"))))
3510 (build-system emacs-build-system)
3511 (home-page "http://orgmode.org/")
3512 (synopsis "Outline-based notes management and organizer")
3513 (description "Org is an Emacs mode for keeping notes, maintaining TODO
3514 lists, and project planning with a fast and effective plain-text system. It
3515 also is an authoring system with unique support for literate programming and
3516 reproducible research.")
3517 (license license:gpl3+)))
3518
3519 (define-public emacs-flx
3520 (package
3521 (name "emacs-flx")
3522 (version "0.6.1")
3523 (source
3524 (origin
3525 (method url-fetch)
3526 (uri (string-append "https://github.com/lewang/"
3527 "flx/archive/v" version ".tar.gz"))
3528 (sha256
3529 (base32
3530 "0bkcpnf1j4i2fcc2rllwbz62l00sw2mcia6rm5amgwvlkqavmkv6"))
3531 (file-name (string-append name "-" version ".tar.gz"))))
3532 (build-system emacs-build-system)
3533 (home-page "https://github.com/lewang/flx")
3534 (synopsis "Fuzzy matching for Emacs")
3535 (description
3536 "Flx provides fuzzy matching for emacs a la sublime text.
3537 The sorting algorithm is a balance between word beginnings (abbreviation)
3538 and contiguous matches (substring). The longer the substring match,
3539 the higher it scores. This maps well to how we think about matching.
3540 Flx has support for ido (interactively do things) through flx-ido.")
3541 (license license:gpl3+)))
3542
3543 (define-public emacs-cyberpunk-theme
3544 (package
3545 (name "emacs-cyberpunk-theme")
3546 (version "1.18")
3547 (source
3548 (origin
3549 (method url-fetch)
3550 (uri (string-append "https://github.com/n3mo/cyberpunk-theme.el/"
3551 "archive/" version ".tar.gz"))
3552 (sha256
3553 (base32
3554 "0pxzbw0qjxgkhhs3gn3k9qy41kl1a4pfzbw83dk24l4b3nxd24wg"))
3555 (file-name (string-append name "-" version ".tar.gz"))))
3556 (build-system emacs-build-system)
3557 (home-page "https://github.com/n3mo/cyberpunk-theme.el")
3558 (synopsis "Cyberpunk theme for emacs built-in color theme support")
3559 (description
3560 "Cyberpunk color theme for the emacs 24+ built-in color theme support
3561 known loosely as deftheme. Many mode-specific customizations are included.")
3562 (license license:gpl3+)))
3563
3564 (define-public emacs-danneskjold-theme
3565 (let* ((commit "8733d2fe8743e8a01826ea6d4430ef376c727e57")
3566 (revision "1"))
3567 (package
3568 (name "emacs-danneskjold-theme")
3569 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
3570 (home-page "https://github.com/rails-to-cosmos/danneskjold-theme")
3571 (source
3572 (origin
3573 (method git-fetch)
3574 (uri (git-reference
3575 (url home-page)
3576 (commit commit)))
3577 (file-name (string-append name "-" version "-checkout"))
3578 (sha256
3579 (base32
3580 "0s6rbsb0y8i8m5b9xm4gw1p1cxsxdqnqxqqb638pygz9f76mbir1"))))
3581 (build-system emacs-build-system)
3582 (arguments
3583 `(#:phases
3584 (modify-phases %standard-phases
3585 (add-after 'unpack 'delete-screenshots
3586 (lambda _
3587 (delete-file-recursively "screenshots") #t)))))
3588 (synopsis "High-contrast Emacs theme")
3589 (description
3590 "@code{danneskjold-theme} is a high-contrast theme for Emacs.")
3591 (license license:gpl3+))))
3592
3593 (define-public emacs-dream-theme
3594 (let* ((commit "107a11d74365046f28a1802a2bdb5e69e4a7488b")
3595 (revision "1"))
3596 (package
3597 (name "emacs-dream-theme")
3598 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
3599 (source
3600 (origin
3601 (method git-fetch)
3602 (uri (git-reference
3603 (url "https://github.com/djcb/dream-theme")
3604 (commit commit)))
3605 (file-name (string-append name "-" version "-checkout"))
3606 (sha256
3607 (base32
3608 "0za18nfkq4xqm35k6006vsixcbmvmxqgma4iw5sw37h8vmcsdylk"))))
3609 (build-system emacs-build-system)
3610 (home-page "https://github.com/djcb/dream-theme")
3611 (synopsis "High-contrast Emacs theme")
3612 (description
3613 "@code{dream-theme} is a dark, clean theme for Emacs. It is inspired
3614 by zenburn, sinburn and similar themes, but slowly diverging from them.")
3615 (license license:gpl3+))))
3616
3617 (define-public emacs-auto-complete
3618 (package
3619 (name "emacs-auto-complete")
3620 (version "1.5.1")
3621 (source
3622 (origin
3623 (method url-fetch)
3624 (uri (string-append "https://github.com/auto-complete/"
3625 "auto-complete/archive/v" version ".tar.gz"))
3626 (sha256
3627 (base32
3628 "1jvq4lj00hwml75lpmlciazy8f3bbg13gffsfnl835p4qd8l7yqv"))
3629 (file-name (string-append name "-" version ".tar.gz"))))
3630 (build-system emacs-build-system)
3631 (propagated-inputs
3632 `(("emacs-popup" ,emacs-popup)))
3633 (home-page "https://github.com/auto-complete/auto-complete")
3634 (synopsis "Intelligent auto-completion extension for Emacs")
3635 (description
3636 "Auto-Complete is an intelligent auto-completion extension for Emacs.
3637 It extends the standard Emacs completion interface and provides an environment
3638 that allows users to concentrate more on their own work. Its features are:
3639 a visual interface, reduce overhead of completion by using statistic method,
3640 extensibility.")
3641 (license license:gpl3+)))
3642
3643 (define-public m17n-db
3644 (package
3645 (name "m17n-db")
3646 (version "1.7.0")
3647 (source
3648 (origin
3649 (method url-fetch)
3650 (uri (string-append "mirror://savannah/m17n/m17n-db-"
3651 version ".tar.gz"))
3652 (sha256
3653 (base32 "1w08hnsbknrcjlzp42c99bgwc9hzsnf5m4apdv0dacql2s09zfm2"))))
3654 (build-system gnu-build-system)
3655 (inputs
3656 `(("gettext" ,gettext-minimal)))
3657 (arguments
3658 `(#:configure-flags
3659 (list (string-append "--with-charmaps="
3660 (assoc-ref %build-inputs "libc")
3661 "/share/i18n/charmaps"))))
3662 ;; With `guix lint' the home-page URI returns a small page saying
3663 ;; that your browser does not handle frames. This triggers the "URI
3664 ;; returns suspiciously small file" warning.
3665 (home-page "http://www.nongnu.org/m17n/")
3666 (synopsis "Multilingual text processing library (database)")
3667 (description "The m17n library realizes multilingualization of
3668 many aspects of applications. The m17n library represents
3669 multilingual text as an object named M-text. M-text is a string with
3670 attributes called text properties, and designed to substitute for
3671 string in C. Text properties carry any information required to input,
3672 display and edit the text.
3673
3674 This package contains the library database.")
3675 (license license:lgpl2.1+)))
3676
3677 (define-public m17n-lib
3678 (package
3679 (name "m17n-lib")
3680 (version "1.7.0")
3681 (source
3682 (origin
3683 (method url-fetch)
3684 (uri (string-append "mirror://savannah/m17n/m17n-lib-"
3685 version ".tar.gz"))
3686 (sha256
3687 (base32 "10yv730i25g1rpzv6q49m6xn4p8fjm7jdwvik2h70sn8w3hm7f4f"))))
3688 (build-system gnu-build-system)
3689 (inputs
3690 `(("fribidi" ,fribidi)
3691 ("gd" ,gd)
3692 ("libotf" ,libotf)
3693 ("libxft" ,libxft)
3694 ("libxml2" ,libxml2)
3695 ("m17n-db" ,m17n-db)))
3696 (arguments
3697 `(#:parallel-build? #f))
3698 ;; With `guix lint' the home-page URI returns a small page saying
3699 ;; that your browser does not handle frames. This triggers the "URI
3700 ;; returns suspiciously small file" warning.
3701 (home-page "http://www.nongnu.org/m17n/")
3702 (synopsis "Multilingual text processing library (runtime)")
3703 (description "The m17n library realizes multilingualization of
3704 many aspects of applications. The m17n library represents
3705 multilingual text as an object named M-text. M-text is a string with
3706 attributes called text properties, and designed to substitute for
3707 string in C. Text properties carry any information required to input,
3708 display and edit the text.
3709
3710 This package contains the library runtime.")
3711 (license license:lgpl2.1+)))
3712
3713 (define-public emacs-nginx-mode
3714 (package
3715 (name "emacs-nginx-mode")
3716 (version "1.1.4")
3717 (source
3718 (origin
3719 (method url-fetch)
3720 (uri (string-append
3721 "https://github.com/ajc/nginx-mode/archive/v"
3722 version ".tar.gz"))
3723 (file-name (string-append name "-" version ".tar.gz"))
3724 (sha256
3725 (base32
3726 "1lvkj07kq0jkskr2f61vqb5rlrbnaz9a76ikq40w6925i2r970rr"))))
3727 (build-system emacs-build-system)
3728 (home-page "https://github.com/ajc/nginx-mode")
3729 (synopsis "Emacs major mode for editing nginx config files")
3730 (description "This package provides an Emacs major mode for
3731 editing nginx config files.")
3732 (license license:gpl2+)))
3733
3734 (define-public emacs-stream
3735 (package
3736 (name "emacs-stream")
3737 (version "2.2.0")
3738 (home-page "https://github.com/NicolasPetton/stream")
3739 (source
3740 (origin
3741 (method url-fetch)
3742 (file-name (string-append name "-" version ".tar.gz"))
3743 (uri (string-append home-page "/archive/"version ".tar.gz"))
3744 (sha256
3745 (base32 "03ql4nqfz5pn55mjly6clhvc3g7x2d28kj7mrlqmigvjbql39xxc"))))
3746 (build-system emacs-build-system)
3747 (synopsis "Implementation of streams for Emacs")
3748 (description "This library provides an implementation of streams for Emacs.
3749 Streams are implemented as delayed evaluation of cons cells.")
3750 (license license:gpl3+)))
3751
3752 (define-public emacs-el-search
3753 (let ((commit "f26277bfbb3fc3fc74beea6592f294c439796bd4")
3754 (revision "1"))
3755 (package
3756 (name "emacs-el-search")
3757 ;; No ufficial release.
3758 (version (string-append "0.0-" revision "." (string-take commit 7)))
3759 (home-page "https://github.com/emacsmirror/el-search")
3760 (source
3761 (origin
3762 (method git-fetch)
3763 (file-name (string-append name "-" version ".tar.gz"))
3764 (uri (git-reference
3765 (commit commit)
3766 (url (string-append home-page ".git"))))
3767 (sha256
3768 (base32 "12xf40h9sb7xxg2r97gsia94q02543mgiiiw46fzh1ac7b7993g6"))))
3769 (build-system emacs-build-system)
3770 (inputs `(("emacs-stream" ,emacs-stream)))
3771 (synopsis "Expression based interactive search for emacs-lisp-mode")
3772 (description "This package provides expression based interactive search
3773 procedures for emacs-lisp-mode.")
3774 (license license:gpl3+))))
3775
3776 (define-public emacs-ht
3777 (package
3778 (name "emacs-ht")
3779 (version "2.1")
3780 (source
3781 (origin
3782 (method url-fetch)
3783 (uri (string-append
3784 "https://github.com/Wilfred/ht.el/archive/"
3785 version ".tar.gz"))
3786 (file-name (string-append name "-" version ".tar.gz"))
3787 (sha256
3788 (base32
3789 "1lpba36kzxcc966fvsbrfpy8ah9gnvay0yk26gbyjil0rggrbqzj"))))
3790 (build-system emacs-build-system)
3791 (propagated-inputs `(("emacs-dash" ,emacs-dash)))
3792 (home-page "https://github.com/Wilfred/ht.el")
3793 (synopsis "Hash table library for Emacs")
3794 (description
3795 "This package simplifies the use of hash tables in elisp. It also
3796 provides functions to convert hash tables from and to alists and plists.")
3797 (license license:gpl3+)))
3798
3799 (define-public emacs-log4e
3800 (package
3801 (name "emacs-log4e")
3802 (version "0.3.0")
3803 (source
3804 (origin
3805 (method url-fetch)
3806 (uri (string-append
3807 "https://github.com/aki2o/log4e/archive/v"
3808 version ".tar.gz"))
3809 (file-name (string-append name "-" version ".tar.gz"))
3810 (sha256
3811 (base32
3812 "0nbdpbw353snda3v19l9hsm6gimppwnpxj18amm350bm81lyim2g"))))
3813 (build-system emacs-build-system)
3814 (arguments
3815 `(#:phases
3816 (modify-phases %standard-phases
3817 (add-after 'unpack 'remove-tests
3818 ;; Guile builder complains about null characters in some
3819 ;; strings of test files. Remove "test" directory (it is not
3820 ;; needed anyway).
3821 (lambda _
3822 (delete-file-recursively "test"))))))
3823 (home-page "https://github.com/aki2o/log4e")
3824 (synopsis "Logging framework for elisp")
3825 (description
3826 "This package provides a logging framework for elisp. It allows
3827 you to deal with multiple log levels.")
3828 (license license:gpl3+)))
3829
3830 (define-public emacs-gntp
3831 (package
3832 (name "emacs-gntp")
3833 (version "0.1")
3834 (source
3835 (origin
3836 (method url-fetch)
3837 (uri (string-append
3838 "https://github.com/tekai/gntp.el/archive/v"
3839 version ".tar.gz"))
3840 (file-name (string-append name "-" version ".tar.gz"))
3841 (sha256
3842 (base32
3843 "16c1dfkia9yhl206bdhjr3b8kfvqcqr38jl5lq8qsyrrzsnmghny"))))
3844 (build-system emacs-build-system)
3845 (home-page "https://github.com/tekai/gntp.el")
3846 (synopsis "Growl Notification Protocol for Emacs")
3847 (description
3848 "This package implements the Growl Notification Protocol GNTP
3849 described at @uref{http://www.growlforwindows.com/gfw/help/gntp.aspx}.
3850 It is incomplete as it only lets you send but not receive
3851 notifications.")
3852 (license license:bsd-3)))
3853
3854 (define-public emacs-alert
3855 (package
3856 (name "emacs-alert")
3857 (version "1.2")
3858 (source
3859 (origin
3860 (method url-fetch)
3861 (uri (string-append
3862 "https://github.com/jwiegley/alert/archive/v"
3863 version ".tar.gz"))
3864 (file-name (string-append name "-" version ".tar.gz"))
3865 (sha256
3866 (base32
3867 "1693kck3k2iz5zhpmxwqyafxm68hr6gzs60lkxd3j1wlp2c9fwyr"))))
3868 (build-system emacs-build-system)
3869 (propagated-inputs
3870 `(("emacs-gntp" ,emacs-gntp)
3871 ("emacs-log4e" ,emacs-log4e)))
3872 (home-page "https://github.com/jwiegley/alert")
3873 (synopsis "Growl-style notification system for Emacs")
3874 (description
3875 "Alert is a Growl-workalike for Emacs which uses a common notification
3876 interface and multiple, selectable \"styles\", whose use is fully
3877 customizable by the user.")
3878 (license license:gpl2+)))
3879
3880 (define-public emacs-mu4e-alert
3881 (package
3882 (name "emacs-mu4e-alert")
3883 (version "0.4")
3884 (source
3885 (origin
3886 (method url-fetch)
3887 (uri (string-append
3888 "https://github.com/iqbalansari/mu4e-alert/archive/v"
3889 version ".tar.gz"))
3890 (file-name (string-append name "-" version ".tar.gz"))
3891 (sha256
3892 (base32
3893 "1m63vyb2v5r9swmqv56q80jca8172nk5vaxl7bcm5zbfs8zsvr4b"))))
3894 (build-system emacs-build-system)
3895 (propagated-inputs
3896 `(("emacs-alert" ,emacs-alert)
3897 ("emacs-s" ,emacs-s)
3898 ("emacs-ht" ,emacs-ht)))
3899 (home-page "https://github.com/iqbalansari/mu4e-alert")
3900 (synopsis "Desktop notification for mu4e")
3901 (description
3902 "This package provides desktop notifications for mu4e.
3903 Additionally it can display the number of unread emails in the
3904 mode-line.")
3905 (license license:gpl3+)))
3906
3907 (define-public emacs-pretty-mode
3908 (package
3909 (name "emacs-pretty-mode")
3910 (version "2.0.3")
3911 (source
3912 (origin
3913 (method url-fetch)
3914 (uri (string-append "https://github.com/akatov/pretty-mode/"
3915 "archive/" version ".tar.gz"))
3916 (file-name (string-append name "-" version ".tar.gz"))
3917 (sha256
3918 (base32
3919 "1fan7m4vnqs8kpg7r54kx3g7faadkpkf9kzarfv8n57kq8w157pl"))))
3920 (build-system emacs-build-system)
3921 (home-page "https://github.com/akatov/pretty-mode")
3922 (synopsis "Redisplay parts of the buffer as Unicode symbols")
3923 (description
3924 "Emacs minor mode for redisplaying parts of the buffer as pretty symbols.")
3925 (license license:gpl3+)))
3926
3927 (define-public emacs-yasnippet
3928 (package
3929 (name "emacs-yasnippet")
3930 (version "0.11.0")
3931 (source (origin
3932 (method url-fetch)
3933 (uri (string-append "https://github.com/joaotavora/yasnippet/"
3934 "archive/" version ".tar.gz"))
3935 (file-name (string-append name "-" version ".tar.gz"))
3936 (sha256
3937 (base32
3938 "15di6mkkf09b7qddpsrm0qln02hji3sx8blya5jxssi9wxxx9iq5"))))
3939 (build-system emacs-build-system)
3940 (home-page "https://github.com/joaotavora/yasnippet")
3941 (synopsis "Yet another snippet extension for Emacs")
3942 (description
3943 "YASnippet is a template system for Emacs. It allows you to type an
3944 abbreviation and automatically expand it into function templates.")
3945 (license license:gpl3+)))
3946
3947 (define-public emacs-memoize
3948 (package
3949 (name "emacs-memoize")
3950 (version "20130421.b55eab0")
3951 (source
3952 (origin
3953 (method git-fetch)
3954 (uri (git-reference
3955 (url "https://github.com/skeeto/emacs-memoize")
3956 (commit "b55eab0cb6ab05d941e07b8c01f1655c0cf1dd75")))
3957 (file-name (string-append name "-" version ".tar.gz"))
3958 (sha256
3959 (base32
3960 "0fjwlrdm270qcrqffvarw5yhijk656q4lam79ybhaznzj0dq3xpw"))))
3961 (build-system emacs-build-system)
3962 (arguments
3963 `(#:phases
3964 (modify-phases %standard-phases
3965 (add-before 'install 'check
3966 (lambda _
3967 (zero? (system* "emacs" "-batch" "-l" "memoize.el"
3968 "-l" "memoize-test.el"
3969 "-f" "ert-run-tests-batch-and-exit")))))))
3970 (home-page "https://github.com/skeeto/emacs-memoize")
3971 (synopsis "Emacs lisp memoization library")
3972 (description "@code{emacs-memoize} is an Emacs library for
3973 memoizing functions.")
3974 (license license:unlicense)))
3975
3976 (define-public emacs-linum-relative
3977 (package
3978 (name "emacs-linum-relative")
3979 (version "0.5")
3980 (source
3981 (origin
3982 (method url-fetch)
3983 (uri (string-append
3984 "https://github.com/coldnew/linum-relative/archive/"
3985 version ".tar.gz"))
3986 (file-name (string-append name "-" version ".tar.gz"))
3987 (sha256
3988 (base32
3989 "0s4frvr27866lw1rn3jal9wj5rkz9fx4yiszqv7w06azsdgsqksv"))))
3990 (build-system emacs-build-system)
3991 (home-page "https://github.com/coldnew/linum-relative")
3992 (synopsis "Relative line numbering for Emacs")
3993 (description "@code{emacs-linum-relative} displays the relative line
3994 number on the left margin in Emacs.")
3995 (license license:gpl2+)))
3996
3997 (define-public emacs-idle-highlight
3998 (package
3999 (name "emacs-idle-highlight")
4000 (version "1.1.3")
4001 (source
4002 (origin
4003 (method url-fetch)
4004 (uri (string-append
4005 "https://github.com/nonsequitur/idle-highlight-mode/archive/"
4006 version ".tar.gz"))
4007 (file-name (string-append name "-" version ".tar.gz"))
4008 (sha256
4009 (base32
4010 "0kdv10hrgqpskjh0zvpnzwlkn5bccnqxas62gkws6njln57bf8nl"))))
4011 (build-system emacs-build-system)
4012 (home-page "https://www.emacswiki.org/emacs/IdleHighlight")
4013 (synopsis "Highlights all occurences of the word the point is on")
4014 (description
4015 "This Emacs package provides @code{idle-highlight-mode} that sets
4016 an idle timer to highlight all occurences in the buffer of the word under
4017 the point.")
4018 (license license:gpl3+)))
4019
4020 (define-public emacs-ox-twbs
4021 (package
4022 (name "emacs-ox-twbs")
4023 (version "1.1.1")
4024 (source
4025 (origin
4026 (method url-fetch)
4027 (uri (string-append
4028 "https://github.com/marsmining/ox-twbs/archive/v"
4029 version ".tar.gz"))
4030 (file-name (string-append name "-" version ".tar.gz"))
4031 (sha256
4032 (base32
4033 "1zaq8dczq5wijjk36114k2x3hfrqig3lyx6djril6wyk67vczyqs"))))
4034 (build-system emacs-build-system)
4035 (home-page "https://github.com/marsmining/ox-twbs")
4036 (synopsis "Export org-mode docs as HTML compatible with Twitter Bootstrap")
4037 (description
4038 "This Emacs package outputs your org-mode docs with a simple, clean and
4039 modern look. It implements a new HTML back-end for exporting org-mode docs as
4040 HTML compatible with Twitter Bootstrap. By default, HTML is exported with
4041 jQuery and Bootstrap resources included via osscdn.")
4042 (license license:gpl3+)))
4043
4044 (define-public emacs-highlight-sexp
4045 (package
4046 (name "emacs-highlight-sexp")
4047 (version "1.0")
4048 (source
4049 (origin
4050 (method url-fetch)
4051 (uri (string-append
4052 "https://github.com/daimrod/highlight-sexp/archive/v"
4053 version ".tar.gz"))
4054 (file-name (string-append name "-" version ".tar.gz"))
4055 (sha256
4056 (base32
4057 "0jwx87qkln1rg9wmv4qkgkml935fh2pkgrg5x4ca6n5dgb4q6rj1"))))
4058 (build-system emacs-build-system)
4059 (home-page "https://github.com/daimrod/highlight-sexp")
4060 (synopsis "Minor mode that highlights the s-exp at the current position")
4061 (description
4062 "This Emacs package highlights the s-exp at the current position.")
4063 (license license:gpl3+)))
4064
4065 (define-public emacspeak
4066 (package
4067 (name "emacspeak")
4068 (version "45.0")
4069 (source
4070 (origin
4071 (method url-fetch)
4072 (uri (string-append
4073 "https://github.com/tvraman/emacspeak/releases/download/"
4074 version "/emacspeak-" version ".tar.bz2"))
4075 (sha256
4076 (base32
4077 "0npcr867xbbhwa0i7v26hnk4z2d51522jwcfwc594j74kbv3g6ka"))))
4078 (build-system gnu-build-system)
4079 (arguments
4080 '(#:make-flags (list (string-append "prefix="
4081 (assoc-ref %outputs "out")))
4082 #:phases
4083 (modify-phases %standard-phases
4084 (replace 'configure
4085 (lambda* (#:key outputs #:allow-other-keys)
4086 (substitute* "Makefile"
4087 (("\\$\\(INSTALL\\) -d \\$\\(libdir\\)/servers/linux-outloud")
4088 "")
4089 (("\\$\\(INSTALL\\) -m 755 \\$\\{OUTLOUD\\}.*$") "")
4090 (("\\*info\\*") "*"))
4091 (substitute* "etc/emacspeak.sh.def"
4092 (("<emacspeak-dir>")
4093 (string-append (assoc-ref outputs "out")
4094 "/share/emacs/site-lisp/emacspeak/lisp")))
4095 (zero? (system* "make" "config"))))
4096 (add-after 'install 'install-espeak-server
4097 (lambda* (#:key outputs #:allow-other-keys)
4098 (let ((out (assoc-ref outputs "out")))
4099 (with-directory-excursion "servers/linux-espeak"
4100 (and (zero? (system* "make"))
4101 (zero? (system* "make" "install"
4102 (string-append "PREFIX=" out))))))))
4103 (add-after 'install-espeak-server 'wrap-program
4104 (lambda* (#:key inputs outputs #:allow-other-keys)
4105 (let* ((out (assoc-ref outputs "out"))
4106 (emacspeak (string-append out "/bin/emacspeak"))
4107 (espeak (string-append (assoc-ref inputs "espeak")
4108 "/bin/espeak")))
4109 ;; The environment variable DTK_PROGRAM tells emacspeak what
4110 ;; program to use for speech.
4111 (wrap-program emacspeak
4112 `("DTK_PROGRAM" ":" prefix (,espeak)))
4113 #t))))
4114 #:tests? #f)) ; no check target
4115 (inputs
4116 `(("espeak" ,espeak)
4117 ("tcl" ,tcl)
4118 ("tclx" ,tclx)))
4119 (native-inputs `(("emacs" ,emacs-minimal)))
4120 (home-page "http://emacspeak.sourceforge.net")
4121 (synopsis "Audio desktop interface for Emacs")
4122 (description
4123 "Emacspeak is a speech interface that allows visually impaired users to
4124 interact independently and efficiently with the computer. Audio formatting
4125 --a technique pioneered by AsTeR-- and full support for W3C's Aural CSS (ACSS)
4126 allows Emacspeak to produce rich aural presentations of electronic information.
4127 By seamlessly blending all aspects of the Internet such as Web-surfing and
4128 messaging, Emacspeak speech-enables local and remote information via a
4129 consistent and well-integrated user interface.")
4130 (license license:gpl2+)))
4131
4132 (define-public emacs-adaptive-wrap
4133 (package
4134 (name "emacs-adaptive-wrap")
4135 (version "0.5")
4136 (source (origin
4137 (method url-fetch)
4138 (uri (string-append
4139 "http://elpa.gnu.org/packages/adaptive-wrap-"
4140 version ".el"))
4141 (sha256
4142 (base32
4143 "0frgmp8vrrml4iykm60j4d6cl9rbcivy9yh24q6kd10bcyx59ypy"))))
4144 (build-system emacs-build-system)
4145 (home-page "http://elpa.gnu.org/packages/adaptive-wrap.html")
4146 (synopsis "Smart line-wrapping with wrap-prefix")
4147 (description
4148 "This Emacs package provides the @code{adaptive-wrap-prefix-mode}
4149 minor mode which sets the wrap-prefix property on the fly so that
4150 single-long-line paragraphs get word-wrapped in a way similar to what
4151 you'd get with @kbd{M-q} using @code{adaptive-fill-mode}, but without
4152 actually changing the buffer's text.")
4153 (license license:gpl3+)))
4154
4155 (define-public emacs-diminish
4156 (package
4157 (name "emacs-diminish")
4158 (version "0.45")
4159 (source
4160 (origin
4161 (method url-fetch)
4162 (uri (string-append
4163 "https://github.com/myrjola/diminish.el/archive/v"
4164 version ".tar.gz"))
4165 (file-name (string-append name "-" version ".tar.gz"))
4166 (sha256
4167 (base32
4168 "0i3629sv5cfrrb00hcnmaqzgs8mk36yasc1ax3ry1ga09nr6rkj9"))))
4169 (build-system emacs-build-system)
4170 (home-page "https://github.com/myrjola/diminish.el")
4171 (synopsis "Diminish minor modes with no modeline display")
4172 (description "@code{emacs-diminish} implements hiding or
4173 abbreviation of the mode line displays (lighters) of minor modes.")
4174 (license license:gpl2+)))
4175
4176 (define-public emacs-use-package
4177 (package
4178 (name "emacs-use-package")
4179 (version "2.3")
4180 (source
4181 (origin
4182 (method url-fetch)
4183 (uri (string-append
4184 "https://github.com/jwiegley/use-package/archive/"
4185 version ".tar.gz"))
4186 (file-name (string-append name "-" version ".tar.gz"))
4187 (sha256
4188 (base32
4189 "0x4h136jb3imyli6zsh7dyzjrra6pv0v6b0yk94jdng3rdfcmsf5"))))
4190 (build-system emacs-build-system)
4191 (propagated-inputs
4192 `(("emacs-diminish" ,emacs-diminish)))
4193 (arguments
4194 `(#:phases
4195 (modify-phases %standard-phases
4196 (add-before 'install 'check
4197 (lambda _
4198 (zero? (system* "emacs" "--batch" "-L" "."
4199 "-l" "use-package-tests.el"
4200 "-f" "ert-run-tests-batch-and-exit"))
4201 ;; Tests fail in this release, but have been fixed in
4202 ;; upstream commit 7956d40eed57d6c06bef36ebc174cf57d934e30d
4203 #t)))))
4204 (home-page "https://github.com/jwiegley/use-package")
4205 (synopsis "Declaration for simplifying your .emacs")
4206 (description "The use-package macro allows you to isolate package
4207 configuration in your @file{.emacs} file in a way that is both
4208 performance-oriented and tidy.")
4209 (license license:gpl2+)))
4210
4211 (define-public emacs-strace-mode
4212 (let* ((commit "6a69b4b06db6797af56f33eda5cb28af94e59f11")
4213 (revision "1"))
4214 (package
4215 (name "emacs-strace-mode")
4216 (version (string-append "0.0.2-" revision "." (string-take commit 7)))
4217 (source (origin
4218 (method git-fetch)
4219 (uri (git-reference
4220 (url "https://github.com/pkmoore/strace-mode")
4221 (commit commit)))
4222 (file-name (string-append name "-" version "-checkout"))
4223 (sha256
4224 (base32
4225 "1lbk2kzdznf2bkfazizfbimaxxzfzv00lrz1ran9dc2zqbc0bj9f"))))
4226 (build-system emacs-build-system)
4227 (home-page "https://github.com/pkmoore/strace-mode")
4228 (synopsis "Emacs major mode to highlight strace outputs")
4229 (description "@code{emacs-strace-mode} provides an Emacs major mode
4230 highlighting strace outputs.")
4231 (license license:gpl3+))))
4232
4233 (define-public emacs-default-encrypt
4234 (package
4235 (name "emacs-default-encrypt")
4236 (version "4.3")
4237 (source
4238 (origin
4239 (method url-fetch)
4240 (uri (string-append
4241 "https://www.informationelle-selbstbestimmung-im-internet.de"
4242 "/emacs/jl-encrypt" version "/jl-encrypt.el"))
4243 (file-name (string-append "jl-encrypt-" version ".el"))
4244 (sha256
4245 (base32
4246 "16i3rlfp3jxlqvndn8idylhmczync3gwmy8a019v29vyr48rnnr0"))))
4247 (build-system emacs-build-system)
4248 (home-page "https://www.informationelle-selbstbestimmung-im-internet.de/Emacs.html")
4249 (synopsis "Automatically encrypt or sign Gnus messages in Emacs")
4250 (description
4251 "DefaultEncrypt is designed to be used with Gnus in Emacs. It
4252 automatically encrypts messages that you send (e.g., email) when public keys
4253 for all recipients are available, and it protects you from accidentally
4254 sending un-encrypted messages. It can also be configured to automatically
4255 sign messages that you send. For details and instructions on how to use
4256 DefaultEncrypt, please refer to the home page or read the comments in the
4257 source file, @file{jl-encrypt.el}.")
4258 (license license:gpl3+)))
4259
4260 (define-public emacs-htmlize
4261 (package
4262 (name "emacs-htmlize")
4263 (version "1.51")
4264 (source
4265 (origin
4266 (method url-fetch)
4267 (uri (string-append
4268 "https://github.com/hniksic/emacs-htmlize/archive/release/"
4269 version ".tar.gz"))
4270 (file-name (string-append name "-" version ".tar.gz"))
4271 (sha256
4272 (base32
4273 "1fy1lybzrxl8a8r88f6p19nz8ygmvcxhxbnymkxh7jqaz25viwld"))))
4274 (build-system emacs-build-system)
4275 (home-page "https://github.com/hniksic/emacs-htmlize")
4276 (synopsis "Convert buffer text and decorations to HTML")
4277 (description "@code{emacs-htmlize} converts the buffer text and
4278 the associated decorations to HTML. Output to CSS, inline CSS and
4279 fonts is supported.")
4280 (license license:gpl2+)))