gnu: shepherd: 'herd status' now sorts the result.
[jackhill/guix/guix.git] / gnu / packages / emacs.scm
CommitLineData
468bdabb 1;;; GNU Guix --- Functional package management for GNU
4a3e602c 2;;; Copyright © 2014 Taylan Ulrich Bayirli/Kammer <taylanbayirli@gmail.com>
02267798 3;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
4adde2a9 4;;; Copyright © 2014, 2015, 2016, 2017 Mark H Weaver <mhw@netris.org>
cfb9026a 5;;; Copyright © 2014, 2015, 2016, 2017 Alex Kost <alezost@gmail.com>
78395334 6;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
5a545aab 7;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
e2345554 8;;; Copyright © 2016, 2017 Chris Marusich <cmmarusich@gmail.com>
11e4c1fd 9;;; Copyright © 2015, 2016 Christopher Allan Webber <cwebber@dustycloud.org>
f9f67fcb 10;;; Copyright © 2016 Adriano Peluso <catonano@gmail.com>
995b7069 11;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
c5c08f1b 12;;; Copyright © 2016 David Thompson <davet@gnu.org>
ae609001 13;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
fd2d17cd 14;;; Copyright © 2016, 2017 Roel Janssen <roel@gnu.org>
ab966b8f 15;;; Copyright © 2016, 2017 ng0 <ng0@infotropique.org>
46bd4515 16;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
cf95bd3a 17;;; Copyright © 2016, 2017 Nicolas Goaziou <mail@nicolasgoaziou.fr>
d3150731 18;;; Copyright © 2016, 2017 Alex Vong <alexvong1995@gmail.com>
2891ea39 19;;; Copyright © 2016, 2017, 2018 Arun Isaac <arunisaac@systemreboot.net>
cf006d2e 20;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
1e523180 21;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
60b57c3d 22;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
4d3d3bd2 23;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
6bd4a889 24;;; Copyright © 2017 Kyle Meyer <kyle@kyleam.com>
3c8ba11a 25;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
99517d92 26;;; Copyright © 2017 George Clemmer <myglc2@gmail.com>
deddeb44 27;;; Copyright © 2017 Feng Shu <tumashu@163.com>
7a0efa77 28;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
b0912e9f 29;;; Copyright © 2017, 2018 Oleg Pykhalov <go.wigust@gmail.com>
de2e402b 30;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
b9dcaced 31;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
77e3ce3e 32;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
491cbd35 33;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org>
33ca12f3 34;;; Copyright © 2017, 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
468bdabb
LC
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
1ffa7090 51(define-module (gnu packages emacs)
f61e0e79 52 #:use-module ((guix licenses) #:prefix license:)
468bdabb
LC
53 #:use-module (guix packages)
54 #:use-module (guix download)
f906d30c 55 #:use-module (guix git-download)
e5045f30
FB
56 #:use-module (guix gexp)
57 #:use-module (guix monads)
58 #:use-module (guix store)
468bdabb 59 #:use-module (guix build-system gnu)
78395334 60 #:use-module (guix build-system emacs)
71f57158 61 #:use-module (guix build-system glib-or-gtk)
fe4163f3 62 #:use-module (guix build-system trivial)
59a43334 63 #:use-module (gnu packages)
acf7d4a7 64 #:use-module (gnu packages audio)
4aafce22 65 #:use-module (gnu packages bash)
cf006d2e 66 #:use-module (gnu packages code)
f906d30c 67 #:use-module (gnu packages guile)
7abe1965 68 #:use-module (gnu packages gtk)
8ba4dc63 69 #:use-module (gnu packages gnome)
1ffa7090 70 #:use-module (gnu packages ncurses)
99517d92 71 #:use-module (gnu packages python)
41184943 72 #:use-module (gnu packages tex)
1ffa7090 73 #:use-module (gnu packages texinfo)
acf7d4a7 74 #:use-module (gnu packages tcl)
a7fd7b68 75 #:use-module (gnu packages tls)
4f028c8f 76 #:use-module (gnu packages pkg-config)
50efa797
LC
77 #:use-module (gnu packages xorg)
78 #:use-module (gnu packages lesstif)
e55354b8 79 #:use-module (gnu packages image)
504a83af 80 #:use-module (gnu packages linux)
9a4c9715 81 #:use-module (gnu packages version-control)
18d26210
MW
82 #:use-module (gnu packages imagemagick)
83 #:use-module (gnu packages w3m)
89925972 84 #:use-module (gnu packages wget)
18d26210 85 #:use-module (gnu packages autotools)
be379ee7 86 #:use-module (gnu packages base)
f61e0e79 87 #:use-module (gnu packages compression)
50efa797 88 #:use-module (gnu packages xml)
4a3e602c 89 #:use-module (gnu packages glib)
388fd01b 90 #:use-module (gnu packages acl)
13fe4891 91 #:use-module (gnu packages package-management)
77c9286d 92 #:use-module (gnu packages perl)
ec9825d6 93 #:use-module (gnu packages pdf)
58a7dc13 94 #:use-module (gnu packages scheme)
41184943 95 #:use-module (gnu packages statistics)
77c9286d
LC
96 #:use-module (gnu packages xiph)
97 #:use-module (gnu packages mp3)
154c71e0 98 #:use-module (gnu packages gettext)
a80b60f4
AI
99 #:use-module (gnu packages fribidi)
100 #:use-module (gnu packages gd)
101 #:use-module (gnu packages fontutils)
4a3e602c 102 #:use-module (guix utils)
87449013
AI
103 #:use-module (srfi srfi-1)
104 #:use-module (ice-9 match))
468bdabb
LC
105
106(define-public emacs
107 (package
108 (name "emacs")
0cdb6ab4 109 (version "25.3")
468bdabb
LC
110 (source (origin
111 (method url-fetch)
112 (uri (string-append "mirror://gnu/emacs/emacs-"
3be9f724 113 version ".tar.xz"))
468bdabb
LC
114 (sha256
115 (base32
0cdb6ab4 116 "02y00y9q42g1iqgz5qhmsja75hwxd88yrn9zp14lanay0zkwafi5"))
fc1adab1 117 (patches (search-patches "emacs-exec-path.patch"
4509ec72 118 "emacs-fix-scheme-indent-function.patch"
0cdb6ab4 119 "emacs-source-date-epoch.patch"))
486f36eb
AK
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.
dc701091
LC
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"
d1c11418
OP
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 " ")))))))
71f57158 152 (build-system glib-or-gtk-build-system)
468bdabb 153 (arguments
13fe4891
FB
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"))))
13fe4891 162 (add-after 'install 'install-site-start
59d04f63
AK
163 ;; Use 'guix-emacs' in "site-start.el". This way, Emacs packages
164 ;; provided by Guix and installed in
13fe4891
FB
165 ;; ~/.guix-profile/share/emacs/site-lisp/guix.d/PACKAGE-VERSION are
166 ;; automatically found.
167 (lambda* (#:key inputs outputs #:allow-other-keys)
59d04f63
AK
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"))
13fe4891
FB
172 (with-output-to-file (string-append lisp-dir "/site-start.el")
173 (lambda ()
9bd94544
AK
174 (display
175 (string-append "(when (require 'guix-emacs nil t)\n"
176 " (guix-emacs-autoload-packages))\n"))))
13fe4891 177 #t))))))
468bdabb 178 (inputs
c4c4cc05 179 `(("gnutls" ,gnutls)
468bdabb
LC
180 ("ncurses" ,ncurses)
181
182 ;; TODO: Add the optional dependencies.
fa275717 183 ("libx11" ,libx11)
0a9e9a63 184 ("gtk+" ,gtk+)
fa275717 185 ("libxft" ,libxft)
50efa797 186 ("libtiff" ,libtiff)
504a83af 187 ("giflib" ,giflib)
50efa797 188 ("libjpeg" ,libjpeg-8)
eb737a27 189 ("imagemagick" ,imagemagick)
388fd01b 190 ("acl" ,acl)
50efa797
LC
191
192 ;; When looking for libpng `configure' links with `-lpng -lz', so we
193 ;; must also provide zlib as an input.
194 ("libpng" ,libpng)
f61e0e79 195 ("zlib" ,zlib)
50efa797 196
8ba4dc63 197 ("librsvg" ,librsvg)
fa275717 198 ("libxpm" ,libxpm)
50efa797 199 ("libxml2" ,libxml2)
504a83af
MW
200 ("libice" ,libice)
201 ("libsm" ,libsm)
202 ("alsa-lib" ,alsa-lib)
13fe4891 203 ("dbus" ,dbus)
01c5c21a
AI
204
205 ;; multilingualization support
206 ("libotf" ,libotf)
207 ("m17n-lib" ,m17n-lib)))
c4c4cc05 208 (native-inputs
59d04f63
AK
209 `(("guix-emacs.el" ,(search-auxiliary-file "emacs/guix-emacs.el"))
210 ("pkg-config" ,pkg-config)
c4c4cc05 211 ("texinfo" ,texinfo)))
64c98347
LC
212
213 (native-search-paths
214 (list (search-path-specification
215 (variable "INFOPATH")
216 (files '("share/info")))))
217
6fd52309 218 (home-page "https://www.gnu.org/software/emacs/")
f50d2669 219 (synopsis "The extensible, customizable, self-documenting text editor")
468bdabb 220 (description
79c311b8
LC
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.")
f61e0e79 229 (license license:gpl3+)))
4f028c8f 230
b2eaf7ba 231(define-public emacs-minimal
4fd540b7
LC
232 ;; This is the version that you should use as an input to packages that just
233 ;; need to byte-compile .el files.
b2eaf7ba
AK
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
4fd540b7 249 (package (inherit emacs)
4fd540b7
LC
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"
4adde2a9
MW
257 "imagemagick" "libpng" "librsvg" "libxpm" "libice"
258 "libsm"
4fd540b7 259
4adde2a9
MW
260 ;; These depend on libx11, so remove them as well.
261 "libotf" "m17n-lib" "dbus")))))
4fd540b7 262
4a3e602c
TUBK
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)" )
71f57158 268 (build-system gnu-build-system)
388fd01b
MW
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)))))
4a3e602c 273
f906d30c
CAW
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")))
995b7069 283 (file-name (string-append name "-" version "-checkout"))
68cb962a 284 (patches (search-patches "guile-emacs-fix-configure.patch"))
f906d30c
CAW
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 _
68cb962a
JN
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"))))))))))
f906d30c 308
4f028c8f
LC
309\f
310;;;
311;;; Emacs hacking.
312;;;
313
314(define-public geiser
315 (package
316 (name "geiser")
113e23e0 317 (version "0.9")
4f028c8f
LC
318 (source (origin
319 (method url-fetch)
cf8f58b2
LC
320 (uri (string-append "mirror://savannah/geiser/" version
321 "/geiser-" version ".tar.gz"))
4f028c8f 322 (sha256
1f8ad12a 323 (base32
a9c61335 324 "0phz9d8wjk4p13vqannv0003fwh8qqrp0gfzcs2hgq1mrmv1srss"))))
4f028c8f 325 (build-system gnu-build-system)
d51cafb0 326 (arguments
dc1d3cde
KK
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)))))
6aaf3899 336 (inputs `(("guile" ,guile-2.0)))
b8fc3622 337 (native-inputs `(("emacs" ,emacs-minimal)))
4f028c8f
LC
338 (home-page "http://nongnu.org/geiser/")
339 (synopsis "Collection of Emacs modes for Guile and Racket hacking")
340 (description
9586011d
LC
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.")
f61e0e79 347 (license license:bsd-3)))
9a4c9715 348
11e4c1fd 349(define-public geiser-next
a9c61335
AK
350 ;; This has become "geiser".
351 (deprecated-package "geiser-next" geiser))
11e4c1fd 352
fe4163f3
MW
353(define-public paredit
354 (package
967cfd18 355 (name "emacs-paredit")
c181b870 356 (version "24")
fe4163f3 357 (source (origin
c181b870
AK
358 (method url-fetch)
359 (uri (string-append "http://mumble.net/~campbell/emacs/paredit-"
360 version ".el"))
361 (sha256
362 (base32
363 "0pp3n8q6kc70blqsaw0zlzp6bc327dpgdrjr0cnh7hqg1lras7ka"))))
79b3c930 364 (build-system emacs-build-system)
fe4163f3
MW
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.")
f61e0e79 376 (license license:gpl3+)))
fe4163f3 377
967cfd18
LC
378(define-public paredit/old-name
379 (deprecated-package "paredit" paredit))
380
2f910ef6
LC
381(define-public git-modes
382 (package
6d21272b 383 (name "emacs-git-modes")
0821e067 384 (version "1.2.6")
2f910ef6
LC
385 (source (origin
386 (method url-fetch)
387 (uri (string-append
388 "https://github.com/magit/git-modes/archive/"
389 version ".tar.gz"))
8fd3c1ff 390 (file-name (string-append name "-" version ".tar.gz"))
2f910ef6
LC
391 (sha256
392 (base32
0821e067 393 "18z04wn5ird9l0h6n6x97v0kyzdj73832bj9qakm3fjjl7vcn0pw"))))
3d01b293 394 (build-system emacs-build-system)
2f910ef6
LC
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
6d21272b
AK
402(define-public git-modes/old-name
403 (deprecated-package "git-modes" git-modes))
404
2b0e4300
AK
405(define-public emacs-with-editor
406 (package
407 (name "emacs-with-editor")
dca0718c 408 (version "2.7.0")
2b0e4300
AK
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
dca0718c 417 "0kah7pv211zx9fsb5g4hd51bqcq2bxd1chdykd488ihvfz1l5y14"))))
2b0e4300
AK
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
9a4c9715
MW
430(define-public magit
431 (package
432 (name "magit")
d5e33910 433 (version "2.11.0")
9a4c9715
MW
434 (source (origin
435 (method url-fetch)
fac8b30b
MW
436 (uri (string-append
437 "https://github.com/magit/magit/releases/download/"
438 version "/" name "-" version ".tar.gz"))
9a4c9715 439 (sha256
7e4871ba 440 (base32
d5e33910 441 "11xly5bma9jc1jhs8fqbqrci8kz1y26yfq7dqjkqfy956wvfg6hz"))))
9a4c9715 442 (build-system gnu-build-system)
2c047b4a 443 (native-inputs `(("texinfo" ,texinfo)
b8fc3622 444 ("emacs" ,emacs-minimal)))
46bd4515
AG
445 (inputs
446 `(("git" ,git)
447 ("perl" ,perl)))
3db5ed11
AK
448 (propagated-inputs
449 `(("dash" ,emacs-dash)
09f7c41d 450 ;; XXX Add 'magit-popup' dependency for the next release (after 2.11.0).
3db5ed11 451 ("with-editor" ,emacs-with-editor)))
9a4c9715
MW
452 (arguments
453 `(#:modules ((guix build gnu-build-system)
454 (guix build utils)
455 (guix build emacs-utils))
8ff3df5b 456 #:imported-modules (,@%gnu-build-system-modules
9a4c9715 457 (guix build emacs-utils))
7e4871ba
LC
458
459 #:test-target "test"
55f29c39 460 #:tests? #f ; tests are not included in the release
7e4871ba 461
55f29c39
AK
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-"
3db5ed11
AK
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)))
d41a8a07 474
9a4c9715 475 #:phases
c466bfd1 476 (modify-phases %standard-phases
55f29c39 477 (delete 'configure)
c466bfd1
LC
478 (add-before
479 'build 'patch-exec-paths
480 (lambda* (#:key inputs #:allow-other-keys)
46bd4515
AG
481 (let ((git (assoc-ref inputs "git"))
482 (perl (assoc-ref inputs "perl")))
55f29c39
AK
483 (emacs-substitute-variables "lisp/magit-git.el"
484 ("magit-git-executable" (string-append git "/bin/git")))
46bd4515
AG
485 (substitute* "lisp/magit-sequence.el"
486 (("perl") (string-append perl "/bin/perl")))
55f29c39 487 #t))))))
9a4c9715
MW
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.")
f61e0e79 496 (license license:gpl3+)))
18d26210 497
97cc51f8
LC
498(define-public magit-svn
499 (package
500 (name "magit-svn")
b7f16845 501 (version "2.1.1")
97cc51f8 502 (source (origin
be379ee7
AK
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"))
97cc51f8
LC
508 (sha256
509 (base32
b7f16845 510 "04y88j7q9h8xjbx5dbick6n5nr1522sn9i1znp0qwk3vjb4b5mzz"))))
97cc51f8 511 (build-system trivial-build-system)
b8fc3622 512 (native-inputs `(("emacs" ,emacs-minimal)
be379ee7
AK
513 ("tar" ,tar)
514 ("gzip" ,gzip)))
515 (propagated-inputs `(("dash" ,emacs-dash)
516 ("magit" ,magit)))
97cc51f8
LC
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
be379ee7
AK
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")
97cc51f8
LC
531 "/bin/emacs"))
532 (magit (string-append (assoc-ref %build-inputs "magit")
533 "/share/emacs/site-lisp"))
be379ee7
AK
534 (dash (string-append (assoc-ref %build-inputs "dash")
535 "/share/emacs/site-lisp/guix.d/dash-"
536 ,(package-version emacs-dash)))
97cc51f8
LC
537 (source (assoc-ref %build-inputs "source"))
538 (lisp-dir (string-append %output "/share/emacs/site-lisp")))
be379ee7
AK
539 (setenv "PATH" PATH)
540 (system* tar "xvf" source)
96c46210
LC
541
542 (install-file (string-append ,name "-" ,version "/magit-svn.el")
543 lisp-dir)
97cc51f8
LC
544
545 (with-directory-excursion lisp-dir
546 (parameterize ((%emacs emacs))
547 (emacs-generate-autoloads ,name lisp-dir)
548 (setenv "EMACSLOADPATH"
be379ee7 549 (string-append ":" magit ":" dash))
97cc51f8
LC
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
c1562e3d
AK
558(define-public emacs-magit-popup
559 (package
560 (name "emacs-magit-popup")
09f7c41d 561 (version "2.12.0")
c1562e3d
AK
562 (source (origin
563 (method url-fetch)
564 (uri (string-append
09f7c41d
AK
565 "https://github.com/magit/magit-popup/archive/v"
566 version ".tar.gz"))
567 (file-name (string-append name "-" version ".tar.gz"))
c1562e3d
AK
568 (sha256
569 (base32
09f7c41d 570 "1dnk611f7lww6rb03hk8ijg2jwxx9f26pjfff4bwjmnjz7hnd6vz"))))
c1562e3d 571 (build-system emacs-build-system)
09f7c41d
AK
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)))
c1562e3d
AK
580 (propagated-inputs
581 `(("emacs-dash" ,emacs-dash)))
09f7c41d 582 (home-page "https://github.com/magit/magit-popup")
c1562e3d
AK
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
00f4bd50
FB
591(define-public haskell-mode
592 (package
593 (name "haskell-mode")
08fc0d68 594 (version "16.1")
00f4bd50
FB
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
08fc0d68
FB
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)))
00f4bd50 608 (native-inputs
b8fc3622 609 `(("emacs" ,emacs-minimal)
6aaf3899 610 ("texinfo" ,texinfo)))
00f4bd50
FB
611 (build-system gnu-build-system)
612 (arguments
613 `(#:make-flags (list (string-append "EMACS="
614 (assoc-ref %build-inputs "emacs")
615 "/bin/emacs"))
08fc0d68
FB
616 #:modules ((ice-9 match)
617 (srfi srfi-26)
618 ,@%gnu-build-system-modules)
00f4bd50
FB
619 #:phases
620 (modify-phases %standard-phases
621 (delete 'configure)
622 (add-before
623 'build 'pre-build
624 (lambda* (#:key inputs #:allow-other-keys)
08fc0d68
FB
625 (define (el-dir store-dir)
626 (match (find-files store-dir)
627 ((f1 f2 ...) (dirname f1))
628 (_ "")))
629
00f4bd50 630 (let ((sh (string-append (assoc-ref inputs "bash") "/bin/sh")))
08fc0d68
FB
631 (define emacs-prefix? (cut string-prefix? "emacs-" <>))
632
00f4bd50 633 (setenv "SHELL" "sh")
08fc0d68
FB
634 (setenv "EMACSLOADPATH"
635 (string-concatenate
636 (map (match-lambda
637 (((? emacs-prefix? name) . dir)
638 (string-append (el-dir dir) ":"))
639 (_ ""))
640 inputs)))
00f4bd50 641 (substitute* (find-files "." "\\.el") (("/bin/sh") sh))
08fc0d68
FB
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"))
00f4bd50
FB
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)
96c46210
LC
658 (for-each (lambda (f)
659 (install-file f dir))
660 files))
00f4bd50
FB
661
662 (with-directory-excursion "doc"
663 (unless (zero? (system* "makeinfo" "haskell-mode.texi"))
664 (error "makeinfo failed"))
96c46210 665 (install-file "haskell-mode.info" info))
00f4bd50
FB
666 (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md"))
667 (copy-to-dir el-dir (find-files "." "\\.elc?"))
08fc0d68 668 ;; These are part of other packages.
00f4bd50 669 (with-directory-excursion el-dir
08fc0d68 670 (for-each delete-file '("dash.el" "ert.el")))
00f4bd50
FB
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
6e3fdbbe
LC
679(define-public flycheck
680 (package
681 (name "emacs-flycheck")
50edf7fc 682 (version "30")
6e3fdbbe
LC
683 (source (origin
684 (method url-fetch)
0b928076
AK
685 (uri (string-append
686 "https://github.com/flycheck/flycheck/releases/download/"
687 version "/flycheck-" version ".tar"))
6e3fdbbe
LC
688 (sha256
689 (base32
50edf7fc 690 "1rxzkaqsj48z3nska5wsgwafvwkam014dzqd32baycmxjl0jxvy7"))))
6e3fdbbe
LC
691 (build-system emacs-build-system)
692 (propagated-inputs
d0a52052 693 `(("emacs-dash" ,emacs-dash)))
6e3fdbbe
LC
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
18d26210
MW
707\f
708;;;
709;;; Web browsing.
710;;;
711
712(define-public emacs-w3m
713 (package
714 (name "emacs-w3m")
2e74b9f4 715 (version "1.4.538+0.20141022")
18d26210
MW
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
2e74b9f4
AK
721 (base32
722 "0zfxmq86pwk64yv0426gnjrvhjrgrjqn08sdcdhmmjmfpmqvm79y"))))
18d26210 723 (build-system gnu-build-system)
6aaf3899 724 (native-inputs `(("autoconf" ,autoconf)
b8fc3622 725 ("emacs" ,emacs-minimal)))
18d26210 726 (inputs `(("w3m" ,w3m)
6aaf3899 727 ("imagemagick" ,imagemagick)))
18d26210 728 (arguments
caaf1933 729 `(#:modules ((guix build gnu-build-system)
18d26210
MW
730 (guix build utils)
731 (guix build emacs-utils))
8ff3df5b 732 #:imported-modules (,@%gnu-build-system-modules
18d26210
MW
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="
2e74b9f4
AK
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"))
18d26210
MW
744 #:tests? #f ; no check target
745 #:phases
932ece65
AK
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)))))))
18d26210
MW
779 (home-page "http://emacs-w3m.namazu.org/")
780 (synopsis "Simple Web browser for Emacs based on w3m")
781 (description
35b9e423 782 "Emacs-w3m is an emacs interface for the w3m web browser.")
f61e0e79 783 (license license:gpl2+)))
89925972
MW
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)
6aaf3899 796 (inputs `(("wget" ,wget)))
b8fc3622 797 (native-inputs `(("emacs" ,emacs-minimal)))
89925972 798 (arguments
caaf1933 799 `(#:modules ((guix build gnu-build-system)
89925972
MW
800 (guix build utils)
801 (guix build emacs-utils))
caaf1933 802 #:imported-modules (,@%gnu-build-system-modules
89925972
MW
803 (guix build emacs-utils))
804 #:tests? #f ; no check target
805 #:phases
dc1d3cde
KK
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)))))
89925972 825 (home-page "http://www.emacswiki.org/emacs/EmacsWget")
ae2189a9 826 (synopsis "Simple file downloader for Emacs based on wget")
89925972 827 (description
35b9e423 828 "Emacs-wget is an emacs interface for the wget file downloader.")
f61e0e79 829 (license license:gpl2+)))
77c9286d
LC
830
831\f
832;;;
833;;; Multimedia.
834;;;
835
836(define-public emms
837 (package
d06d4d7b 838 (name "emacs-emms")
cda2e2c7 839 (version "4.4")
77c9286d
LC
840 (source (origin
841 (method url-fetch)
842 (uri (string-append "mirror://gnu/emms/emms-"
843 version ".tar.gz"))
844 (sha256
845 (base32
cda2e2c7 846 "1b0kalhn81dir26jgsma30i5bbly7d3s1ngqpf01zjjpr7lw5v0h"))
77c9286d
LC
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
caaf1933 866 `(#:modules ((guix build gnu-build-system)
77c9286d
LC
867 (guix build utils)
868 (guix build emacs-utils))
caaf1933 869 #:imported-modules (,@%gnu-build-system-modules
77c9286d
LC
870 (guix build emacs-utils))
871
2fe176be
EF
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"))
66e55700 877 (flac (assoc-ref inputs "flac"))
2fe176be
EF
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\"")))
66e55700
MC
900 (substitute* "emms-player-simple.el"
901 (("\"mpg321\"")
902 (string-append "\"" mpg321 "/bin/mpg321\"")))
2fe176be
EF
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")))
66e55700
MC
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")))
2fe176be
EF
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)
c3a10d30 925 ;; The 'install' rule expects the target directories to exist.
2fe176be 926 (let* ((out (assoc-ref outputs "out"))
c3a10d30 927 (bin (string-append out "/bin"))
2fe176be 928 (man1 (string-append out "/share/man/man1")))
c3a10d30 929 (mkdir-p bin)
2fe176be
EF
930 (mkdir-p man1)
931 #t)))
932 (add-after 'install 'post-install
933 (lambda* (#:key outputs #:allow-other-keys)
c3a10d30 934 (let ((out (assoc-ref outputs "out")))
2fe176be
EF
935 (symlink "emms-auto.el"
936 (string-append out "/share/emacs/site-lisp/"
c3a10d30 937 "emms-autoloads.el"))))))
77c9286d 938 #:tests? #f))
b8fc3622 939 (native-inputs `(("emacs" ,emacs-minimal) ;for (guix build emacs-utils)
77c9286d 940 ("texinfo" ,texinfo)))
c72aed6d 941 (inputs `(("alsa-utils" ,alsa-utils)
66e55700 942 ("flac" ,flac) ;for metaflac
77c9286d
LC
943 ("vorbis-tools" ,vorbis-tools)
944 ("mpg321" ,mpg321)
945 ("taglib" ,taglib)
946 ("mp3info" ,mp3info)))
38cb4766 947 (properties '((upstream-name . "emms")))
77c9286d
LC
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.")
6fd52309 955 (home-page "https://www.gnu.org/software/emms/")
f61e0e79 956 (license license:gpl3+)))
c7e553a3 957
1095bd1d
RW
958(define-public emacs-emms-player-mpv
959 (package
960 (name "emacs-emms-player-mpv")
ecae16be 961 (version "0.0.13")
1095bd1d
RW
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
ecae16be 970 "01i0bz7wdqzcnv5r63m9xgl07yf1nmn86dwy00rcfsn5za46y3r3"))))
1095bd1d
RW
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
2316078a
RW
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
c7e553a3
LC
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
dc1d3cde
KK
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)))))
b8fc3622 1038 (native-inputs `(("emacs" ,emacs-minimal)))
c7e553a3
LC
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.")
f61e0e79 1046 (license license:gpl3+)))
78395334 1047
4d3d3bd2
VD
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
cf006d2e
CB
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
99517d92
GC
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))))))
99517d92
GC
1095 (native-inputs
1096 `(("python-sphinx" ,python-sphinx)
1097 ("texinfo" ,texinfo)))
cf006d2e
CB
1098 (propagated-inputs
1099 `(("dash" ,emacs-dash)
86470421
CL
1100 ("s" ,emacs-s)
1101 ;; We need to use 'ag' as the executable on remote systems.
1102 ("the-silver-searcher" ,the-silver-searcher)))
cf006d2e
CB
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
b654de6d
AK
1112(define-public emacs-async
1113 (package
1114 (name "emacs-async")
51ef4af6 1115 (version "1.9.2")
b654de6d
AK
1116 (source (origin
1117 (method url-fetch)
f32ffa04 1118 (uri (string-append "https://elpa.gnu.org/packages/async-"
b654de6d
AK
1119 version ".tar"))
1120 (sha256
1121 (base32
51ef4af6 1122 "17fnvrj7jww29sav6a6jpizclg4w2962m6h37akpii71gf0vrffw"))))
b654de6d 1123 (build-system emacs-build-system)
f32ffa04 1124 (home-page "https://elpa.gnu.org/packages/async.html")
b654de6d
AK
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
78395334
FB
1133(define-public emacs-auctex
1134 (package
1135 (name "emacs-auctex")
7f9866a3 1136 (version "12.1.0")
78395334
FB
1137 (source
1138 (origin
1139 (method url-fetch)
1140 (uri (string-append
f32ffa04 1141 "https://elpa.gnu.org/packages/auctex-"
78395334
FB
1142 version
1143 ".tar"))
1144 (sha256
1145 (base32
7f9866a3 1146 "0iy5x61xqkxaph2hq64sg50l1c6yp6qhzppwadayxkdz00b46sas"))))
78395334 1147 (build-system emacs-build-system)
a6eafbed
AK
1148 ;; We use 'emacs' because AUCTeX requires dbus at compile time
1149 ;; ('emacs-minimal' does not provide dbus).
b1d32ec0
AI
1150 (arguments
1151 `(#:emacs ,emacs
1152 #:include '("\\.el$" "^images/" "^latex/" "\\.info$")
1153 #:exclude '("^tests/" "^latex/README")))
78395334
FB
1154 (native-inputs
1155 `(("perl" ,perl)))
6fd52309 1156 (home-page "https://www.gnu.org/software/auctex/")
78395334
FB
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+)))
85ef742c 1163
de2e402b
MM
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
36890436
VD
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
9dac2a8e
RW
1206 "This package displays a calendar view with various schedule data in the
1207Emacs buffer.")
36890436
VD
1208 (license license:gpl3+)))
1209
a8d0c9cb
CB
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
cd5c3979
OP
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
21a656f5
CB
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
63878730
VD
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
1f37465a
CB
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
85ef742c
FB
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
0c909c05
AK
1383 "https://github.com/purcell/mmm-mode/archive/"
1384 version ".tar.gz"))
1385 (file-name (string-append name "-" version ".tar.gz"))
85ef742c
FB
1386 (sha256
1387 (base32
0c909c05
AK
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)
b8fc3622 1399 ("emacs" ,emacs-minimal)
0c909c05 1400 ("texinfo" ,texinfo)))
85ef742c 1401 (home-page "https://github.com/purcell/mmm-mode")
0c909c05 1402 (synopsis "Allow multiple major modes in an Emacs buffer")
85ef742c 1403 (description
0c909c05 1404 "MMM Mode is a minor mode that allows multiple major modes to coexist in a
85ef742c
FB
1405single buffer.")
1406 (license license:gpl3+)))
ec9825d6 1407
060348d2
AK
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
ec9825d6
RW
1430(define-public emacs-pdf-tools
1431 (package
1432 (name "emacs-pdf-tools")
1210046d 1433 (version "0.80")
ec9825d6
RW
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
1210046d 1442 "06imydn3a92vr57azpn1zhqc14kxyyslmyi9ldsyphan9b724gb6"))))
ec9825d6
RW
1443 (build-system gnu-build-system)
1444 (arguments
1445 `(#:tests? #f ; there are no tests
1446 #:modules ((guix build gnu-build-system)
1bcae5c5 1447 ((guix build emacs-build-system) #:prefix emacs:)
ec9825d6
RW
1448 (guix build utils)
1449 (guix build emacs-utils))
1450 #:imported-modules (,@%gnu-build-system-modules
1bcae5c5 1451 (guix build emacs-build-system)
ec9825d6
RW
1452 (guix build emacs-utils))
1453 #:phases
1454 (modify-phases %standard-phases
1bcae5c5
AK
1455 ;; Build server side using 'gnu-build-system'.
1456 (add-after 'unpack 'enter-server-dir
1457 (lambda _ (chdir "server") #t))
d10092b8 1458 (add-after 'enter-server-dir 'autogen
1bcae5c5
AK
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)))))
ec9825d6
RW
1482 (native-inputs `(("autoconf" ,autoconf)
1483 ("automake" ,automake)
1484 ("pkg-config" ,pkg-config)
b8fc3622 1485 ("emacs" ,emacs-minimal)))
ec9825d6
RW
1486 (inputs `(("poppler" ,poppler)
1487 ("cairo" ,cairo)
1488 ("glib" ,glib)
1489 ("libpng" ,libpng)
1490 ("zlib" ,zlib)))
1210046d 1491 (propagated-inputs `(("tablist" ,emacs-tablist)))
ec9825d6
RW
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+)))
d4dbf10e
FB
1500
1501(define-public emacs-dash
1502 (package
1503 (name "emacs-dash")
a31a79bc 1504 (version "2.13.0")
d4dbf10e
FB
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
a31a79bc 1513 "1pjlkrzr8n45bnp3xs3dybvy0nz3gwamrfc7vsi1nhpkkw99ihhb"))))
d4dbf10e
FB
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+)))
85777fe5 1525
753baf77
AK
1526(define-public emacs-bui
1527 (package
1528 (name "emacs-bui")
f6b1dd23 1529 (version "1.1.0")
753baf77
AK
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
f6b1dd23 1538 "112k0mq6xpy0r47vk66miw7rxbkv3d06pv3pd0vcmrhcnhnnk486"))))
753baf77
AK
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
64e43c67
AK
1550(define-public emacs-guix
1551 (package
1552 (name "emacs-guix")
65f88296 1553 (version "0.3.4")
64e43c67
AK
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
65f88296 1561 "152zf9vkafmnnf7by5armg165npznb961csgnvr8iwdj3smvivjf"))))
64e43c67
AK
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="
ed9fb46b
LC
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)))
3fb8e281
AK
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")
64e43c67
AK
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
b4f8edb7 1600 `(("guile" ,guile-2.2)
64e43c67
AK
1601 ("guix" ,guix)))
1602 (propagated-inputs
1603 `(("geiser" ,geiser)
1604 ("dash" ,emacs-dash)
1605 ("bui" ,emacs-bui)
1606 ("magit-popup" ,emacs-magit-popup)))
78461856 1607 (home-page "https://alezost.github.io/guix.el/")
64e43c67
AK
1608 (synopsis "Emacs interface for GNU Guix")
1609 (description
b2f1f7b0
AK
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.")
64e43c67
AK
1614 (license license:gpl3+)))
1615
d6e5de1e
RJ
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"))
b87047e0 1625 (file-name (string-append name "-" version ".tar.gz"))
d6e5de1e
RJ
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
7f7b38af
VD
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
6aab6c27
RJ
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
1075b437
DB
1677(define-public emacs-undo-tree
1678 (package
1679 (name "emacs-undo-tree")
77a7891b 1680 (version "0.6.6")
1075b437
DB
1681 (source (origin
1682 (method git-fetch)
1683 (uri (git-reference
1684 (url "http://dr-qubit.org/git/undo-tree.git")
08e1f38d 1685 (commit (string-append "release/" version))))
1075b437
DB
1686 (file-name (string-append name "-" version "-checkout"))
1687 (sha256
77a7891b 1688 (base32
1689 "1hnh2mnmw179gr094r561w6cw1haid0lpvpqvkc24wpj82vphzpa"))))
1075b437
DB
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
85777fe5
FB
1698(define-public emacs-s
1699 (package
1700 (name "emacs-s")
4e425584 1701 (version "1.12.0")
85777fe5
FB
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
4e425584 1710 "0xbl75863pcm806zg0x1lw7qznzjq2c8320k8js7apyag8q4srvh"))))
85777fe5
FB
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")
a124bbd2 1719 (synopsis "Emacs string manipulation library")
85777fe5
FB
1720 (description "This package provides an Emacs library for manipulating
1721strings.")
1722 (license license:gpl3+)))
cf9ce01f 1723
070e1fe9
VD
1724(define-public emacs-symon
1725 (package
1726 (name "emacs-symon")
d71b758f 1727 (version "20160630")
070e1fe9
VD
1728 (source
1729 (origin
1730 (method url-fetch)
d71b758f
VD
1731 (uri (string-append "https://github.com/zk-phi/symon/archive/"
1732 version ".tar.gz"))
1733 (file-name (string-append name "-" version ".tar.gz"))
070e1fe9
VD
1734 (sha256
1735 (base32
d71b758f 1736 "0h4jcgdnq98wc9rj72nwyazq8498yg55jfljiij5qwbn1xf1g5zz"))))
070e1fe9 1737 (build-system emacs-build-system)
d71b758f 1738 (home-page "https://github.com/zk-phi/symon")
070e1fe9
VD
1739 (synopsis "Tiny graphical system monitor")
1740 (description
1741 "Tiny graphical system monitor for the Emacs minibuffer when idle.")
1742 (license license:gpl2+)))
1743
899bcad3 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
469c7ce0 1758 `(("emacs-markdown-mode" ,emacs-markdown-mode)))
899bcad3 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
cf9ce01f
FB
1766(define-public emacs-f
1767 (package
1768 (name "emacs-f")
2b0ddaaa 1769 (version "0.19.0")
cf9ce01f
FB
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
2b0ddaaa 1778 "05195n80ywa68qykxn7dza6qd59rhakvlzhaa9l6mcpmjf9l9grs"))))
cf9ce01f
FB
1779 (build-system emacs-build-system)
1780 (propagated-inputs
1781 `(("emacs-s" ,emacs-s)
1782 ("emacs-dash" ,emacs-dash)))
7bf837fd 1783 (home-page "https://github.com/rejeep/f.el")
cf9ce01f
FB
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+)))
48dbeef7 1788
0916dc52
CB
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
0b35f11d
RW
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
26361de4
CB
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
1c32830b
RW
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)
7bf837fd 1879 (home-page "https://github.com/rejeep/el-mock.el")
1c32830b
RW
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
0c5d837c
RW
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)))
7bf837fd 1905 (home-page "https://github.com/ecukes/espuds")
0c5d837c
RW
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
8bebe734
CB
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
d0e43782
RW
1939(define-public emacs-expand-region
1940 (package
1941 (name "emacs-expand-region")
61c71171 1942 (version "0.11.0")
d0e43782
RW
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
61c71171 1951 "08dy1f411sh9wwww53rjw80idcf3vpki6ba2arl4hl5jcw9651g0"))))
d0e43782
RW
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
65568446
RW
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
fbc60db8
MC
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
f450d3c5
CB
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
7b9769b0
RW
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
1f9a7097
RW
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
dbe38a3a
RW
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
07046e5f
RW
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)
7bf837fd 2103 (home-page "https://github.com/tarsius/paren-face")
07046e5f
RW
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
a46e3c0d
RW
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
1f8a951b
RW
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
6c04acaa
RW
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)))
46f5ae0b 2173 (arguments '(#:include '("\\.el$" "\\.js$" "\\.html$")))
6c04acaa
RW
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
cdba3a84
MC
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
ce9701fb
RW
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
8d810163
RW
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
8733fc91
CB
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
81808194
CB
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
b33f913d
RW
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)))
7bf837fd 2328 (home-page "https://github.com/Malabarba/smart-mode-line")
66e07664 2329 (synopsis "Color-coded smart mode-line")
b33f913d
RW
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
69b498a1 2336(define-public emacs-sr-speedbar
33ca12f3
MC
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
69b498a1
OP
2357same frame (in an extra window). You can customize the initial width of
2358the speedbar window.")
33ca12f3 2359 (license license:gpl3+))))
69b498a1 2360
3bcb304e
RW
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
48dbeef7
FB
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
698bd297 2388 (commit "880706469338ab59b5bb7dbe8460016f89755364")
48dbeef7 2389 (url "https://github.com/gregsexton/ob-ipython.git")))
eb6b471b 2390 (file-name (string-append name "-" version "-checkout"))
48dbeef7
FB
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+)))
6fd66b6c
LC
2402
2403(define-public emacs-debbugs
2404 (package
2405 (name "emacs-debbugs")
8180a406 2406 (version "0.15")
6fd66b6c
LC
2407 (source (origin
2408 (method url-fetch)
f32ffa04 2409 (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
6fd66b6c
LC
2410 version ".tar"))
2411 (sha256
2412 (base32
8180a406 2413 "1x7jw2ldgkknyxg7x9fhnqkary691icnysmi3xw0g2fjrvllzhqw"))))
6fd66b6c 2414 (build-system emacs-build-system)
91762db6 2415 (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
32e16112
AK
2416 (propagated-inputs
2417 `(("emacs-async" ,emacs-async)))
f32ffa04 2418 (home-page "https://elpa.gnu.org/packages/debbugs.html")
6fd66b6c
LC
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+)))
3ffe36f5
LC
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+)))
d001bb5a
LC
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+)))
2d1db448 2482
d1dbeddd
RW
2483(define-public emacs-company
2484 (package
2485 (name "emacs-company")
1262a2ab 2486 (version "0.9.3")
d1dbeddd
RW
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
1262a2ab 2495 "1fyrpchpdmvszssy1qmsw41aqpv6q5rybvs1bw00nv9xdhiaq4vh"))))
d1dbeddd 2496 (build-system emacs-build-system)
4e644ab8
AI
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")))))))
d1dbeddd
RW
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
016590a9
OP
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
7c438099
RW
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
2d1db448
LC
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+)))
e037a09f
FB
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
fc1adab1 2603 (search-patches "emacs-scheme-complete-scheme-r5rs-info.patch"))))
e037a09f
FB
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))))
58a7dc13
FB
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"))
f3860753 2625 (install-file "6.945-config/mit-scheme-doc.el" ".")
58a7dc13
FB
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+)))
e5045f30 2654
e5045f30
FB
2655(define-public emacs-constants
2656 (package
2657 (name "emacs-constants")
f99f3f24 2658 (version "2.6")
a9e41d2f 2659 (home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
e5045f30
FB
2660 (source
2661 (origin
37dbfc50 2662 (file-name (string-append name "-" version ".tar.gz"))
f99f3f24
FB
2663 (method url-fetch)
2664 (uri (string-append "https://github.com/fedeinthemix/emacs-constants"
2665 "/archive/v" version ".tar.gz"))
e5045f30
FB
2666 (sha256
2667 (base32
f99f3f24 2668 "0pnrpmmxq8mh5h2hbrp5vcym0j0fh6dv3s7c5ccn18wllhzg9g7n"))))
e5045f30 2669 (build-system emacs-build-system)
e5045f30
FB
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+)))
85960693 2675
e203221f
RW
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
85960693
FB
2700(define-public emacs-slime
2701 (package
2702 (name "emacs-slime")
d2f93e61 2703 (version "2.20")
85960693
FB
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
d2f93e61 2713 "086lq5y4pvj9wihy0si02xxvyzpzz8mcg3hz1cvy9zxlyjwzr1gk"))))
85960693
FB
2714 (build-system emacs-build-system)
2715 (native-inputs
2716 `(("texinfo" ,texinfo)))
2717 (arguments
e8cefe11
AI
2718 `(#:include '("\\.el$" "\\.lisp$" "\\.asd$" "contrib")
2719 #:exclude '("^slime-tests.el" "^contrib/test/"
2720 "^contrib/Makefile$" "^contrib/README.md$")
2721 #:phases
85960693
FB
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
db574f71 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.")
85960693 2760 (license license:gpl2+)))
e11d14fe 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)
e11d14fe 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+)))
48766ea8
RW
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+))))
4670f70a 2810
8fc559dc 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
4670f70a
CM
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
02736daa 2838 (method url-fetch)
4670f70a
CM
2839 (uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el")
2840 (sha256
2841 (base32
2842 "0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz"))))
2843 (build-system emacs-build-system)
4670f70a
CM
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
9e9c71eb
CM
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
02736daa 2862 (method url-fetch)
9e9c71eb
CM
2863 (uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el")
2864 (sha256
2865 (base32
2866 "1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck"))))
2867 (build-system emacs-build-system)
9e9c71eb
CM
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+)))
9576cc72 2879
db1a4960
RW
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+)))
b1679379
OP
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+)))
db1a4960 2929
ed8bc028
RJ
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
9576cc72
AP
2956(define-public emacs-zenburn-theme
2957 (package
2958 (name "emacs-zenburn-theme")
07716c68 2959 (version "2.5")
9576cc72
AP
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
07716c68 2968 "03kfhzgbbbl8ivpzzky6qxw4j9mmp452m1sk7wikxmcalfnix0gn"))))
9576cc72 2969 (build-system emacs-build-system)
7bf837fd 2970 (home-page "https://github.com/bbatsov/zenburn-emacs")
9576cc72
AP
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
012c8b35
RW
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
090bdb9e 2991 `(("emacs-dash" ,emacs-dash)))
7bf837fd 2992 (home-page "https://github.com/bbatsov/solarized-emacs")
012c8b35
RW
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
e7761186
AV
2999(define-public emacs-ahungry-theme
3000 (package
3001 (name "emacs-ahungry-theme")
d3150731 3002 (version "1.8.0")
e7761186
AV
3003 (source
3004 (origin (method url-fetch)
f32ffa04 3005 (uri (string-append "https://elpa.gnu.org/packages/ahungry-theme-"
e7761186
AV
3006 version ".tar"))
3007 (sha256
3008 (base32
d3150731 3009 "14dhnrlbjzrxk5ligf0z2im5bgnxpjqqzqcrmqg5355xrgpbpb7v"))))
e7761186
AV
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
ab966b8f 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
4da9beab 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
5c447e28
AP
3061(define-public emacs-smartparens
3062 (package
3063 (name "emacs-smartparens")
308b8f79 3064 (version "1.11.0")
5c447e28
AP
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
308b8f79 3073 "0q5as813xs8y29i3v2rm97phd6m7xsmmw6hwbvx57gwmi8i1c409"))))
5c447e28
AP
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+)))
8eeb301d 3089
425d66f7
OP
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
8f82641a
RJ
3122(define-public emacs-hl-todo
3123 (package
3124 (name "emacs-hl-todo")
f61aaaf3 3125 (version "1.8.0")
8f82641a
RJ
3126 (source (origin
3127 (method url-fetch)
3128 (uri (string-append
3129 "https://raw.githubusercontent.com/tarsius/hl-todo/"
3130 version "/hl-todo.el"))
0e7c4089 3131 (file-name (string-append "hl-todo-" version ".el"))
8f82641a
RJ
3132 (sha256
3133 (base32
f61aaaf3 3134 "0g0h9v4572p7mcird8wsj1c41haf60krslm6mlpi4mdbh248kv6z"))))
8f82641a
RJ
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
480f7350
RW
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)
7bf837fd 3159 (home-page "https://github.com/nex3/perspective-el")
480f7350
RW
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
439ad15d
MC
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
fa1a17b7
MC
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
fd38bfe2
MC
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
b1968d86
MC
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
36e5d103
RJ
3294(define-public emacs-request
3295 (package
3296 (name "emacs-request")
5a545aab 3297 (version "0.3.0")
36e5d103 3298 (source (origin
5a545aab
RW
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"))
36e5d103 3304 (sha256
5a545aab
RW
3305 (base32
3306 "0wyxqbb35yqf6ci47531lk32d6fppamx9d8826kdz983vm87him7"))))
36e5d103
RJ
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
f1b61e26 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
79b3d3ea
RW
3339(define-public emacs-hydra
3340 (package
3341 (name "emacs-hydra")
9932dabf 3342 (version "0.14.0")
79b3d3ea
RW
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
9932dabf 3351 "0884k3ffwzhh6krbd8l7vvm184dkagb2jf4q8xzg72plln34qrm8"))))
79b3d3ea
RW
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
12db29ba
RW
3366(define-public emacs-ivy
3367 (package
3368 (name "emacs-ivy")
a8374234 3369 (version "0.10.0")
12db29ba
RW
3370 (source
3371 (origin
a8374234
RW
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"))
12db29ba
RW
3377 (sha256
3378 (base32
a8374234 3379 "14vnigqb5c3yi4q9ysw1fiwdqyqwyklqpb9wnjf81chm7s2mshnr"))))
12db29ba 3380 (build-system emacs-build-system)
5f66a0a7
RW
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))))))))
12db29ba
RW
3392 (propagated-inputs
3393 `(("emacs-hydra" ,emacs-hydra)))
5f66a0a7
RW
3394 (native-inputs
3395 `(("texinfo" ,texinfo)))
12db29ba
RW
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
5edc24ec
RW
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
93dba17c
RW
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
e1918ce4
RW
3461(define-public emacs-iedit
3462 (package
3463 (name "emacs-iedit")
f9f77a9e 3464 (version "0.9.9.9")
e1918ce4
RW
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
f9f77a9e 3473 "1hv8q6pr85ss9g3158l1fqv3m62vsq8rslsi86jicr2dcxyascr0"))))
e1918ce4
RW
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
a5338dd4
RW
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
8eeb301d
AP
3517(define-public emacs-clojure-mode
3518 (package
3519 (name "emacs-clojure-mode")
f8d69be0 3520 (version "5.4.0")
8eeb301d
AP
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
f8d69be0 3529 "117mvjqh4nm8mvmwmmvy4qmkdg23ldlzk08y91g8b8ac8kxwqg81"))))
8eeb301d 3530 (build-system emacs-build-system)
92d9cfef
AI
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")))))))
7bf837fd 3541 (home-page "https://github.com/clojure-emacs/clojure-mode")
8eeb301d
AP
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+)))
d345491a
AP
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)
7bf837fd 3562 (home-page "https://github.com/cask/epl")
d345491a
AP
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+)))
ad6c4bc4
AP
3570
3571(define-public emacs-queue
3572 (package
3573 (name "emacs-queue")
5f51f39e 3574 (version "0.2")
ad6c4bc4 3575 (source (origin
02736daa 3576 (method url-fetch)
f32ffa04 3577 (uri (string-append "https://elpa.gnu.org/packages/queue-"
ad6c4bc4
AP
3578 version ".el"))
3579 (sha256
3580 (base32
5f51f39e 3581 "0cx2848sqnnkkr4zisvqadzxngjyhmb36mh0q3if7q19yjjhmrkb"))))
ad6c4bc4
AP
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+)))
32abfcf4
AP
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+)))
565bccc5
AP
3613
3614(define-public emacs-spinner
3615 (package
3616 (name "emacs-spinner")
cd4d96b8 3617 (version "1.7.3")
565bccc5 3618 (source (origin
02736daa 3619 (method url-fetch)
f32ffa04 3620 (uri (string-append "https://elpa.gnu.org/packages/spinner-"
565bccc5
AP
3621 version ".el"))
3622 (sha256
3623 (base32
cd4d96b8 3624 "19kp1mmndbmw11sgvv2ggfjl4pyf5zrsbh3871f0965pw9z8vahd"))))
565bccc5
AP
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+)))
62a45cb6 3632
fd2d17cd
RJ
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
6ede256f
DT
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"))
13384842 3663 (file-name (string-append name "-" version ".tar.gz"))
6ede256f
DT
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+)))
c5c08f1b 3675
7034791a
RJ
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
db29e598
KM
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
41184943
RJ
3732(define-public emacs-ess
3733 (package
3734 (name "emacs-ess")
a209907e 3735 (version "16.10")
41184943
RJ
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
a209907e
KM
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"))))))
41184943
RJ
3751 (build-system gnu-build-system)
3752 (arguments
eaff063a 3753 (let ((base-directory "/share/emacs/site-lisp/guix.d/ess"))
a209907e 3754 `(#:make-flags (list (string-append "PREFIX=" %output)
eaff063a
RJ
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
a209907e
KM
3770 (lambda _ (setenv "HOME" "/tmp") #t))
3771 (replace 'check
3772 (lambda _
3773 (zero? (system* "make" "test"))))))))
41184943
RJ
3774 (inputs
3775 `(("emacs" ,emacs-minimal)
2d7c4ae3 3776 ("r-minimal" ,r-minimal)))
41184943
RJ
3777 (native-inputs
3778 `(("perl" ,perl)
3779 ("texinfo" ,texinfo)
63096366
RW
3780 ("texlive" ,(texlive-union (list texlive-latex-natbib
3781 texlive-latex-seminar
3782 texlive-latex-hyperref
3783 texlive-tex-texinfo)))))
41184943
RJ
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
c5c08f1b
DT
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)
7bf837fd 3804 (home-page "https://github.com/nonsequitur/smex/")
c5c08f1b
DT
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+)))
3e5be84b
DT
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+)))
b78b6e80
DT
3834
3835(define-public emacs-markdown-mode
3836 (package
3837 (name "emacs-markdown-mode")
2175a427 3838 (version "2.3")
b78b6e80
DT
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
2175a427 3847 "152whyrq3dqlqy5wv4mdd94kmal19hs5kwaxjcp2gp2r97lsmdmi"))))
b78b6e80
DT
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+)))
a2670dde
DT
3855
3856(define-public emacs-projectile
3857 (package
3858 (name "emacs-projectile")
6461c44c 3859 (version "0.14.0")
a2670dde
DT
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
6461c44c 3867 "1ql1wnzhblbwnv66hf2y0wq45g71hh6s9inc090lmhm1vgylbd1f"))))
a2670dde
DT
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+)))
4aea1e01
DT
3881
3882(define-public emacs-elfeed
3883 (package
3884 (name "emacs-elfeed")
8a0d454e 3885 (version "2.2.0")
4aea1e01
DT
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
8a0d454e 3893 "0d7i93l3b0ck3iad9ddqp7sqa8w16hnamrby8bwvl316rqk4lzlf"))))
4aea1e01 3894 (build-system emacs-build-system)
568f977f
AI
3895 (arguments
3896 `(#:phases
3897 (modify-phases %standard-phases
3898 (add-before 'install 'check
3899 (lambda _
3900 (zero? (system* "make" "test")))))))
4aea1e01
DT
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+)))
c86f0207
DT
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+)))
65b49ae7 3931
d95e8e01
RJ
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
9619a95e
RJ
3954(define-public emacs-rainbow-mode
3955 (package
3956 (name "emacs-rainbow-mode")
61b31ac4 3957 (version "0.13")
9619a95e
RJ
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
61b31ac4 3964 "1d3aamx6qgqqpqijwsr02ggwrh67gfink1bir0692alfkm3zdddl"))))
9619a95e
RJ
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
fede3a90
RW
3973(define-public emacs-visual-fill-column
3974 (package
3975 (name "emacs-visual-fill-column")
32e23aba 3976 (version "1.11")
fede3a90
RW
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
32e23aba 3984 "13jnviakp607zcms7f8ams56mr8wffnq1pghlc6fvqs39663pgwh"))))
fede3a90
RW
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
0ef1c223
KM
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
65b49ae7
DT
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+)))
529fe992
DT
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+)))
63de1231
DT
4067
4068(define-public emacs-yaml-mode
4069 (package
4070 (name "emacs-yaml-mode")
847284e1 4071 (version "0.0.13")
63de1231
DT
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
847284e1 4079 "0im88sk9dqw03x6d6zaspgvg9i0pfpgb8f2zygrmbifh2w4pwmvj"))))
63de1231
DT
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+)))
7529c883
DT
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+)))
ae609001 4113
814da59f
CB
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
ae609001
MJ
4135(define-public emacs-helm
4136 (package
4137 (name "emacs-helm")
b38e4179 4138 (version "2.8.5")
ae609001
MJ
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
b38e4179 4147 "15xlnjm9rsbn0xq7xc09y52h2kn41zwn7ldryammf6i46wl02kq3"))))
ae609001
MJ
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+)))
f9be4366 4163
03cc1cf3
KM
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
f69c29f7
KM
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
2e4bb8c8 4213(define-public emacs-helm-make
555a7429 4214 (let ((commit "feae8df22bc4b20705ea08ac9adfc2b43bb348d0")
2e4bb8c8
OP
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
555a7429 4228 "1y2v77mmd1bfkkz51cnk1l0dg3lvvxc39wlamnm7wjns66dbvlam"))))
2e4bb8c8
OP
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
f9be4366
AP
4240(define-public emacs-cider
4241 (package
4242 (name "emacs-cider")
1f143575 4243 (version "0.15.1")
f9be4366
AP
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
1f143575 4252 "1j5hlmi14ypszv1f9nvq0jjlz7i742flg0ny3055l7i4x089xx6g"))))
f9be4366 4253 (build-system emacs-build-system)
65e4109c
SB
4254 (arguments
4255 '(#:exclude ; Don't exclude 'cider-test.el'.
4256 '("^\\.dir-locals\\.el$" "^test/")))
f9be4366
AP
4257 (propagated-inputs
4258 `(("emacs-clojure-mode" ,emacs-clojure-mode)
4259 ("emacs-spinner" ,emacs-spinner)
4260 ("emacs-pkg-info" ,emacs-pkg-info)
d0a52052 4261 ("emacs-queue" ,emacs-queue)))
f9be4366
AP
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+)))
26e08b4d 4277
4278(define-public emacs-lua-mode
69dcad33
AW
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/,
26e08b4d 4298Lua programing language}.")
69dcad33 4299 (license license:gpl2+))))
0202612d 4300
4301(define-public emacs-ebuild-mode
4302 (package
4303 (name "emacs-ebuild-mode")
4735393a 4304 (version "1.37")
0202612d 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
4735393a 4313 "07dzrdjjczkxdfdgi60h4jjkvzi4p0k9rij2wpfp8s03ay3qldpp"))))
0202612d 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+)))
a9fbe94e 4321
2edbfbf5 4322(define-public emacs-evil
4323 (package
4324 (name "emacs-evil")
511d8a02 4325 (version "1.2.13")
2edbfbf5 4326 (source
4327 (origin
4328 (method url-fetch)
511d8a02 4329 (uri (string-append "https://github.com/emacs-evil/evil/archive/"
4330 version ".tar.gz"))
4331 (file-name (string-append name "-" version ".tar.gz"))
2edbfbf5 4332 (sha256
4333 (base32
511d8a02 4334 "1z63zsxmsc6mh74wv6065carwqmgs7b7lz5044s12xvgsjfbwi8h"))))
2edbfbf5 4335 (build-system emacs-build-system)
4336 (propagated-inputs
4337 `(("emacs-undo-tree" ,emacs-undo-tree)
4338 ("emacs-goto-chg" ,emacs-goto-chg)))
511d8a02 4339 (home-page "https://github.com/emacs-evil/evil")
2edbfbf5 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
ce74e520 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")
6669a932 4356 (file-name (string-append "goto-chg-" version ".el"))
ce74e520 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
a1eba1be
VD
4371(define-public emacs-monroe
4372 (package
4373 (name "emacs-monroe")
b125649a 4374 (version "0.3.1")
a1eba1be
VD
4375 (source
4376 (origin
4377 (method url-fetch)
b125649a
VD
4378 (uri (string-append "https://github.com/sanel/monroe/archive/"
4379 version ".tar.gz"))
4380 (file-name (string-append name "-" version ".tar.gz"))
a1eba1be
VD
4381 (sha256
4382 (base32
b125649a 4383 "0icdx8shkd951phlnmcq1vqaxp1l667q5rjscskc5r22aylakh4w"))))
a1eba1be 4384 (build-system emacs-build-system)
b125649a 4385 (home-page "https://github.com/sanel/monroe")
a1eba1be
VD
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
a9fbe94e
LC
4392(define-public emacs-writegood-mode
4393 (package
4394 (name "emacs-writegood-mode")
4395 (version "2.0.2")
7bf837fd 4396 (home-page "https://github.com/bnbeckwith/writegood-mode")
a9fbe94e
LC
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+)))
e08ca4b9 4413
4414(define-public emacs-neotree
4415 (package
4416 (name "emacs-neotree")
95058772 4417 (version "0.5.2")
e08ca4b9 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
95058772 4423 "/archive/" version ".tar.gz"))
e08ca4b9 4424 (sha256
4425 (base32
95058772 4426 "1zd6dchwyijnf7kgchfcp51gs938l204dk9z6mljrfqf2zy0gp12"))
f409d0aa 4427 (file-name (string-append name "-" version ".tar.gz"))))
e08ca4b9 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+)))
59065bb3
NG
4432
4433(define-public emacs-org
4434 (package
4435 (name "emacs-org")
769e7155
CL
4436 ;; emacs-org-contrib inherits from this package. Please update its sha256
4437 ;; checksum as well.
7cbe77d7 4438 (version "20180103")
59065bb3
NG
4439 (source (origin
4440 (method url-fetch)
7cbe77d7 4441 (uri (string-append "https://orgmode.org/elpa/org-"
59065bb3
NG
4442 version ".tar"))
4443 (sha256
4444 (base32
7cbe77d7 4445 "1hyw9sigcv9wn37y2icmhf1czf0s3dgvsmn36355l95zsw7hnvgj"))))
59065bb3 4446 (build-system emacs-build-system)
7cbe77d7 4447 (home-page "https://orgmode.org/")
59065bb3
NG
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+)))
41392b9a 4454
8e2ae7ee
CB
4455(define-public emacs-org-contrib
4456 (package
4457 (inherit emacs-org)
4458 (name "emacs-org-contrib")
4459 (source (origin
4460 (method url-fetch)
7cbe77d7 4461 (uri (string-append "https://orgmode.org/elpa/org-plus-contrib-"
8e2ae7ee
CB
4462 (package-version emacs-org) ".tar"))
4463 (sha256
4464 (base32
7cbe77d7 4465 "164i2asqh34p1g3iqsn7rziyxbi1ys8fwdmn7nsw5xph8qszv9zj"))))
8e2ae7ee
CB
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)))
35377cfa 4492 (synopsis "Contributed packages to Org mode")
8e2ae7ee
CB
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
77e3ce3e 4496This package is equivalent to org-plus-contrib, but only includes additional
8e2ae7ee
CB
4497files that you would find in @file{contrib/} from the git repository.")))
4498
41392b9a 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+)))
9657aba4 4522
4523(define-public emacs-cyberpunk-theme
4524 (package
4525 (name "emacs-cyberpunk-theme")
88e6086e 4526 (version "1.19")
9657aba4 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
88e6086e 4534 "05l5fxw1mn5py6mfhxrzyqjq0d8m5m1akfi46vrgh13r414jffvv"))
9657aba4 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+)))
840224aa 4543
8f493950 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
1ba67b62 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
840224aa 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+)))
154c71e0
AI
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
7c90d0f4 4636 `(("gettext" ,gettext-minimal)))
154c71e0
AI
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+)))
a80b60f4
AI
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)
966a543b
LC
4664 (uri (string-append "mirror://savannah/m17n/m17n-lib-"
4665 version ".tar.gz"))
a80b60f4
AI
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+)))
71d3ee1c
AI
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+)))
8f50634b
FB
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+)))
0fc06f3e
FB
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+))))
1e523180
MO
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
521f5d96
MO
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+)))
ba117841
MO
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)))
2c5e31fa
MO
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+)))
c695ed3c
MO
4859
4860(define-public emacs-mu4e-alert
4861 (package
4862 (name "emacs-mu4e-alert")
dd69ff6d 4863 (version "1.0")
c695ed3c
MO
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
dd69ff6d 4873 "07qc834qnxn8xi4bw5nawj8g91bmkzw0r0vahkgysp7r9xrf57gj"))))
c695ed3c
MO
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+)))
e967dd9c 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+)))
c1029f86
RW
4906
4907(define-public emacs-yasnippet
4908 (package
4909 (name "emacs-yasnippet")
bf1264ab 4910 (version "0.12.2")
c1029f86
RW
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
bf1264ab 4918 "01jabaz0g67bsziayrxgv74px55fx4nlrcl0csl8f1by2102pwc5"))
1f0d4705
KM
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"))))))
c1029f86 4930 (build-system emacs-build-system)
7bf837fd 4931 (home-page "https://github.com/joaotavora/yasnippet")
c1029f86
RW
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+)))
55fa5349 4937
4bfdf034
KM
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
2ede8c61
OP
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
55fa5349
AI
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)))
6b7e3362 5037
c86c1991
AI
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
6b7e3362
VD
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")
d1e4ad1b 5075 (synopsis "Highlights all occurrences of the word the point is on")
6b7e3362
VD
5076 (description
5077 "This Emacs package provides @code{idle-highlight-mode} that sets
d1e4ad1b 5078 an idle timer to highlight all occurrences in the buffer of the word under
6b7e3362
VD
5079 the point.")
5080 (license license:gpl3+)))
6a91c5f2
VD
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+)))
239cf024
VD
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+)))
350cfccb 5126
7a452689
OP
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
acf7d4a7
KK
5152(define-public emacspeak
5153 (package
5154 (name "emacspeak")
147d42fc 5155 (version "47.0")
acf7d4a7
KK
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
147d42fc 5164 "0xbcc266x752y68s3g096m161irzvsqym3axzqn8rb276a8x55n7"))))
acf7d4a7
KK
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
231e48d6
KK
5172 (lambda _
5173 ;; Configure Emacspeak according to etc/install.org.
147d42fc 5174 (setenv "SHELL" (which "sh"))
acf7d4a7 5175 (zero? (system* "make" "config"))))
231e48d6
KK
5176 (add-after 'build 'build-espeak
5177 (lambda _
5178 (zero? (system* "make" "espeak"))))
5179 (replace 'install
acf7d4a7 5180 (lambda* (#:key outputs #:allow-other-keys)
231e48d6
KK
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
acf7d4a7
KK
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
350cfccb
AP
5230(define-public emacs-adaptive-wrap
5231 (package
5232 (name "emacs-adaptive-wrap")
13869ff5 5233 (version "0.5.1")
350cfccb
AP
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
13869ff5 5241 "0qi7gjprcpywk2daivnlavwsx53hl5wcqvpxbwinvigg42vxh3ll"))))
350cfccb
AP
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+)))
0201c5d4 5252
42e891c2
MC
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
0201c5d4
AI
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+)))
b247fb86
AI
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+)))
e2345554 5330
8ad5a20f
MO
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
e2345554
CM
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
a97f6da4
CM
5361 "https://www.informationelle-selbstbestimmung-im-internet.de"
5362 "/emacs/jl-encrypt" version "/jl-encrypt.el"))
e2345554
CM
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+)))
25e810b8
AI
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+)))
0ee59b81
AI
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+)))
8d50a990
AI
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+)))
deddeb44 5456
65fff6a3
FS
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
57fe82c5
RJ
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
9f3b27a2
FS
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
0fa8a932
FS
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
7493306f
FS
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)
6fe2d37c 5562 ("emacs-pyim-basedict" ,emacs-pyim-basedict)
7493306f
FS
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
2f1524d0
FS
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
5b38c3e6
FS
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
f03e15ec
FS
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
deddeb44
FS
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+)))
2b3b745c
FS
5682
5683(define-public emacs-exwm
5684 (package
5685 (name "emacs-exwm")
a5e83ab9 5686 (version "0.16")
2b3b745c
FS
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
a5e83ab9 5694 "0c4w5k9lzqj8yzhdqipdb4fs7ld2qklc6s137104jnfdvmrwcv2i"))))
2b3b745c
FS
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
2b3b745c
FS
5728 (with-output-to-file exwm-executable
5729 (lambda _
5730 (format #t "#!~a ~@
2b3b745c 5731 ~a +SI:localuser:$USER ~@
11f8e028 5732 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
2b3b745c
FS
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)
87c95cb2
AI
5744 (message (concat "exwm configuration not found. "
5745 "Falling back to default configuration...")))))))
2b3b745c
FS
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+)))
21b99aad 5752
58addd2b
FS
5753(define-public emacs-switch-window
5754 (package
5755 (name "emacs-switch-window")
adaebe80 5756 (version "1.5.1")
58addd2b
FS
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
adaebe80 5765 "07f99apxscwvsp2bjxsbi462c433kcglrjh6xl0gyafs1nvvvnd8"))))
58addd2b
FS
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
f4ade9b6
FS
5774(define-public emacs-exwm-x
5775 (package
5776 (name "emacs-exwm-x")
2a9a2207 5777 (version "1.7.2")
f4ade9b6
FS
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
2a9a2207 5787 "1ny13i82fb72917jgl0ndwjg1x6l9f8gfhcx7cwlwhh5saq23mvy"))))
f4ade9b6
FS
5788 (build-system emacs-build-system)
5789 (propagated-inputs
5790 `(("emacs-exwm" ,emacs-exwm)
5791 ("emacs-switch-window" ,emacs-switch-window)
2a9a2207
FS
5792 ("emacs-ivy" ,emacs-ivy)
5793 ("emacs-use-package" ,emacs-use-package)))
f4ade9b6
FS
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
f4ade9b6
FS
5822 (with-output-to-file exwm-executable
5823 (lambda _
5824 (format #t "#!~a ~@
f4ade9b6
FS
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
21b99aad
AI
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+)))
860f73c6
AI
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")
8a421ddb 5889 (file-name (string-append "transpose-frame-" version ".el"))
860f73c6
AI
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)))
a34242ee
KM
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")
a742becd 5909 (file-name (string-append "key-chord-" version ".el"))
a34242ee
KM
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+)))
a993add1
AI
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+)))
2406766e
AI
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+)))
99d406c9
AI
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+)))
605ecbcb
AI
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+)))
87449013
AI
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 ""))))
45f523d9
MC
6074 #t))))
6075 #:include (cons* "^reporters/.*\\.el$" %default-include)))
87449013
AI
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+))))
7a0efa77
JN
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+)))
ce676015 6105
b0912e9f
OP
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
6df27407
OP
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
dd72837d
OP
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
ce676015
JR
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))))
730c0790
OP
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+))))
1a80e4d7
OP
6265
6266(define-public emacs-which-key
6267 (package
6268 (name "emacs-which-key")
5fa1b417 6269 (version "3.0.2")
1a80e4d7
OP
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
5fa1b417 6278 "1xvd70cwq9n31f28viyjxmr3nn8l153gsy6scpszvgvjxkiikv24"))
1a80e4d7
OP
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")
2482c02f
AI
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).")
1a80e4d7 6298 (license license:gpl3+)))
c97979d6 6299
397d7980
MC
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
c97979d6
OP
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+)))
aadd75ac
OP
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+)))
e8d9a878
OP
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+)))
a88adeb3
OP
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+)))
1ee879e9
OP
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+)))
27feda65
OP
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+)))
f262f446
OP
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+)))
b9dcaced
PM
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+)))
5883bb76
PM
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+)))
eaf4ba6e
OP
6562
6563(define-public emacs-browse-at-remote
0698633d 6564 (let ((commit "31dcf77d7c89a12f230e2b2332585db2c44530ef")
eaf4ba6e
OP
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"))
61995dce
OP
6576 (patches
6577 (search-patches "emacs-browse-at-remote-cgit-gnu.patch"))
eaf4ba6e
OP
6578 (sha256
6579 (base32
0698633d 6580 "017cb8lf7zbg0jmr7zxzd7d5kz2jy35cvw5vcpdmq1fdr3wqwkgj"))))
eaf4ba6e
OP
6581 (build-system emacs-build-system)
6582 (propagated-inputs
6583 `(("emacs-f" ,emacs-f)
6584 ("emacs-s" ,emacs-s)))
8505d348
AK
6585 (native-inputs
6586 `(("ert-runner" ,ert-runner)))
eaf4ba6e
OP
6587 (arguments
6588 `(#:phases
6589 (modify-phases %standard-phases
6590 (add-before 'install 'check
8505d348
AK
6591 (lambda _
6592 (zero? (system* "ert-runner")))))))
eaf4ba6e
OP
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+))))
63253098
OP
6600
6601(define-public emacs-tiny
6602 (package
6603 (name "emacs-tiny")
d8ec1b71 6604 (version "0.2.1")
63253098
OP
6605 (source
6606 (origin
6607 (method url-fetch)
6608 (uri (string-append "http://elpa.gnu.org/packages/tiny-" version ".tar"))
6609 (sha256
6610 (base32
d8ec1b71 6611 "1cr73a8gba549ja55x0c2s554f3zywf69zbnd7v82jz5q1k9wd2v"))))
63253098
OP
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}.
a913d9d9 6617It is meant to quickly generate linear ranges, e.g. 5, 6, 7, 8. Some elisp
63253098
OP
6618proficiency is an advantage, since you can transform your numeric range with
6619an elisp expression.")
0b88f536 6620 (license license:gpl3+)))
4aafce22 6621
7081d4e0
RW
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
9c058ef2
RW
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
a204c14c
RW
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
26b388ce
RW
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
5c8cdd4e
RW
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
4aafce22
JN
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+)))
d02c2873
KM
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+)))
9faa46ee
MC
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+)))
3fe4c9dc
OP
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+)))
a6d02fc1
OP
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)))
491cbd35
MG
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+)))
ab8a4a78
AI
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+)))
2891ea39
AI
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+)))
2a67ff1f
MO
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+)))
548cc74c
CB
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+)))
02267798
LC
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+))))