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