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