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