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