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