gnu: Add tome4.
[jackhill/guix/guix.git] / gnu / packages / emacs.scm
CommitLineData
468bdabb 1;;; GNU Guix --- Functional package management for GNU
4a3e602c 2;;; Copyright © 2014 Taylan Ulrich Bayirli/Kammer <taylanbayirli@gmail.com>
38cb4766 3;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
846b2534 4;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
cfb9026a 5;;; Copyright © 2014, 2015, 2016, 2017 Alex Kost <alezost@gmail.com>
78395334 6;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
ce9701fb 7;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
e2345554 8;;; Copyright © 2016, 2017 Chris Marusich <cmmarusich@gmail.com>
11e4c1fd 9;;; Copyright © 2015, 2016 Christopher Allan Webber <cwebber@dustycloud.org>
f9f67fcb 10;;; Copyright © 2016 Adriano Peluso <catonano@gmail.com>
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>
fd2d17cd 14;;; Copyright © 2016, 2017 Roel Janssen <roel@gnu.org>
899bcad3 15;;; Copyright © 2016, 2017 ng0 <contact.ng0@cryptolab.net>
46bd4515 16;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
cf95bd3a 17;;; Copyright © 2016, 2017 Nicolas Goaziou <mail@nicolasgoaziou.fr>
e7761186 18;;; Copyright © 2016 Alex Vong <alexvong1995@gmail.com>
55fa5349 19;;; Copyright © 2016, 2017 Arun Isaac <arunisaac@systemreboot.net>
cf006d2e 20;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
1e523180 21;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
60b57c3d 22;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
4d3d3bd2 23;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
6bd4a889 24;;; Copyright © 2017 Kyle Meyer <kyle@kyleam.com>
acf7d4a7 25;;; Copyright © 2017 Kei Kebreau <kei@openmailbox.org>
99517d92 26;;; Copyright © 2017 George Clemmer <myglc2@gmail.com>
deddeb44 27;;; Copyright © 2017 Feng Shu <tumashu@163.com>
7a0efa77 28;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
730c0790 29;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com>
de2e402b 30;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
468bdabb
LC
31;;;
32;;; This file is part of GNU Guix.
33;;;
34;;; GNU Guix is free software; you can redistribute it and/or modify it
35;;; under the terms of the GNU General Public License as published by
36;;; the Free Software Foundation; either version 3 of the License, or (at
37;;; your option) any later version.
38;;;
39;;; GNU Guix is distributed in the hope that it will be useful, but
40;;; WITHOUT ANY WARRANTY; without even the implied warranty of
41;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
42;;; GNU General Public License for more details.
43;;;
44;;; You should have received a copy of the GNU General Public License
45;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
46
1ffa7090 47(define-module (gnu packages emacs)
f61e0e79 48 #:use-module ((guix licenses) #:prefix license:)
468bdabb
LC
49 #:use-module (guix packages)
50 #:use-module (guix download)
f906d30c 51 #:use-module (guix git-download)
e5045f30
FB
52 #:use-module (guix gexp)
53 #:use-module (guix monads)
54 #:use-module (guix store)
468bdabb 55 #:use-module (guix build-system gnu)
78395334 56 #:use-module (guix build-system emacs)
71f57158 57 #:use-module (guix build-system glib-or-gtk)
fe4163f3 58 #:use-module (guix build-system trivial)
59a43334 59 #:use-module (gnu packages)
acf7d4a7 60 #:use-module (gnu packages audio)
cf006d2e 61 #:use-module (gnu packages code)
f906d30c 62 #:use-module (gnu packages guile)
7abe1965 63 #:use-module (gnu packages gtk)
8ba4dc63 64 #:use-module (gnu packages gnome)
1ffa7090 65 #:use-module (gnu packages ncurses)
99517d92 66 #:use-module (gnu packages python)
41184943 67 #:use-module (gnu packages tex)
1ffa7090 68 #:use-module (gnu packages texinfo)
acf7d4a7 69 #:use-module (gnu packages tcl)
a7fd7b68 70 #:use-module (gnu packages tls)
4f028c8f 71 #:use-module (gnu packages pkg-config)
50efa797
LC
72 #:use-module (gnu packages xorg)
73 #:use-module (gnu packages lesstif)
e55354b8 74 #:use-module (gnu packages image)
504a83af 75 #:use-module (gnu packages linux)
9a4c9715 76 #:use-module (gnu packages version-control)
18d26210
MW
77 #:use-module (gnu packages imagemagick)
78 #:use-module (gnu packages w3m)
89925972 79 #:use-module (gnu packages wget)
18d26210 80 #:use-module (gnu packages autotools)
be379ee7 81 #:use-module (gnu packages base)
f61e0e79 82 #:use-module (gnu packages compression)
50efa797 83 #:use-module (gnu packages xml)
4a3e602c 84 #:use-module (gnu packages glib)
388fd01b 85 #:use-module (gnu packages acl)
13fe4891 86 #:use-module (gnu packages package-management)
77c9286d 87 #:use-module (gnu packages perl)
ec9825d6 88 #:use-module (gnu packages pdf)
58a7dc13 89 #:use-module (gnu packages scheme)
41184943 90 #:use-module (gnu packages statistics)
77c9286d
LC
91 #:use-module (gnu packages xiph)
92 #:use-module (gnu packages mp3)
154c71e0 93 #:use-module (gnu packages gettext)
a80b60f4
AI
94 #:use-module (gnu packages fribidi)
95 #:use-module (gnu packages gd)
96 #:use-module (gnu packages fontutils)
4a3e602c 97 #:use-module (guix utils)
87449013
AI
98 #:use-module (srfi srfi-1)
99 #:use-module (ice-9 match))
468bdabb
LC
100
101(define-public emacs
102 (package
103 (name "emacs")
1f8c4c53 104 (version "25.2")
468bdabb
LC
105 (source (origin
106 (method url-fetch)
107 (uri (string-append "mirror://gnu/emacs/emacs-"
3be9f724 108 version ".tar.xz"))
468bdabb
LC
109 (sha256
110 (base32
1f8c4c53 111 "1ykkq0xl28ljdg61bm6gzy04ww86ajms98gix72qg6cpr6a53dar"))
fc1adab1 112 (patches (search-patches "emacs-exec-path.patch"
4509ec72 113 "emacs-fix-scheme-indent-function.patch"
486f36eb
AK
114 "emacs-source-date-epoch.patch"))
115 (modules '((guix build utils)))
116 (snippet
117 ;; Delete the bundled byte-compiled elisp files and
118 ;; generated autoloads.
119 '(with-directory-excursion "lisp"
120 (for-each delete-file
121 (append (find-files "." "\\.elc$")
122 (find-files "." "loaddefs\\.el$")
123 ;; This is the only "autoloads" file that
124 ;; does not have "*loaddefs.el" name.
dc701091
LC
125 '("eshell/esh-groups.el")))
126
127 ;; Make sure Tramp looks for binaries in the right places on
128 ;; remote GuixSD machines, where 'getconf PATH' returns
129 ;; something bogus.
130 (substitute* "net/tramp-sh.el"
131 ;; Patch the line after "(defcustom tramp-remote-path".
132 (("\\(tramp-default-remote-path")
133 (format #f "(tramp-default-remote-path ~s ~s ~s ~s "
134 "~/.guix-profile/bin" "~/.guix-profile/sbin"
135 "/run/current-system/profile/bin"
136 "/run/current-system/profile/sbin")))))))
71f57158 137 (build-system glib-or-gtk-build-system)
468bdabb 138 (arguments
13fe4891
FB
139 `(#:phases
140 (modify-phases %standard-phases
141 (add-before 'configure 'fix-/bin/pwd
142 (lambda _
143 ;; Use `pwd', not `/bin/pwd'.
144 (substitute* (find-files "." "^Makefile\\.in$")
145 (("/bin/pwd")
146 "pwd"))))
13fe4891 147 (add-after 'install 'install-site-start
59d04f63
AK
148 ;; Use 'guix-emacs' in "site-start.el". This way, Emacs packages
149 ;; provided by Guix and installed in
13fe4891
FB
150 ;; ~/.guix-profile/share/emacs/site-lisp/guix.d/PACKAGE-VERSION are
151 ;; automatically found.
152 (lambda* (#:key inputs outputs #:allow-other-keys)
59d04f63
AK
153 (let* ((out (assoc-ref outputs "out"))
154 (lisp-dir (string-append out "/share/emacs/site-lisp")))
155 (copy-file (assoc-ref inputs "guix-emacs.el")
156 (string-append lisp-dir "/guix-emacs.el"))
13fe4891
FB
157 (with-output-to-file (string-append lisp-dir "/site-start.el")
158 (lambda ()
9bd94544
AK
159 (display
160 (string-append "(when (require 'guix-emacs nil t)\n"
161 " (guix-emacs-autoload-packages))\n"))))
13fe4891 162 #t))))))
468bdabb 163 (inputs
c4c4cc05 164 `(("gnutls" ,gnutls)
468bdabb
LC
165 ("ncurses" ,ncurses)
166
167 ;; TODO: Add the optional dependencies.
fa275717 168 ("libx11" ,libx11)
0a9e9a63 169 ("gtk+" ,gtk+)
fa275717 170 ("libxft" ,libxft)
50efa797 171 ("libtiff" ,libtiff)
504a83af 172 ("giflib" ,giflib)
50efa797 173 ("libjpeg" ,libjpeg-8)
eb737a27 174 ("imagemagick" ,imagemagick)
388fd01b 175 ("acl" ,acl)
50efa797
LC
176
177 ;; When looking for libpng `configure' links with `-lpng -lz', so we
178 ;; must also provide zlib as an input.
179 ("libpng" ,libpng)
f61e0e79 180 ("zlib" ,zlib)
50efa797 181
8ba4dc63 182 ("librsvg" ,librsvg)
fa275717 183 ("libxpm" ,libxpm)
50efa797 184 ("libxml2" ,libxml2)
504a83af
MW
185 ("libice" ,libice)
186 ("libsm" ,libsm)
187 ("alsa-lib" ,alsa-lib)
13fe4891 188 ("dbus" ,dbus)
01c5c21a
AI
189
190 ;; multilingualization support
191 ("libotf" ,libotf)
192 ("m17n-lib" ,m17n-lib)))
c4c4cc05 193 (native-inputs
59d04f63
AK
194 `(("guix-emacs.el" ,(search-auxiliary-file "emacs/guix-emacs.el"))
195 ("pkg-config" ,pkg-config)
c4c4cc05 196 ("texinfo" ,texinfo)))
64c98347
LC
197
198 (native-search-paths
199 (list (search-path-specification
200 (variable "INFOPATH")
201 (files '("share/info")))))
202
6fd52309 203 (home-page "https://www.gnu.org/software/emacs/")
f50d2669 204 (synopsis "The extensible, customizable, self-documenting text editor")
468bdabb 205 (description
79c311b8
LC
206 "GNU Emacs is an extensible and highly customizable text editor. It is
207based on an Emacs Lisp interpreter with extensions for text editing. Emacs
208has been extended in essentially all areas of computing, giving rise to a
209vast array of packages supporting, e.g., email, IRC and XMPP messaging,
210spreadsheets, remote server editing, and much more. Emacs includes extensive
211documentation on all aspects of the system, from basic editing to writing
212large Lisp programs. It has full Unicode support for nearly all human
213languages.")
f61e0e79 214 (license license:gpl3+)))
4f028c8f 215
b2eaf7ba 216(define-public emacs-minimal
4fd540b7
LC
217 ;; This is the version that you should use as an input to packages that just
218 ;; need to byte-compile .el files.
b2eaf7ba
AK
219 (package (inherit emacs)
220 (name "emacs-minimal")
221 (synopsis "The extensible text editor (used only for byte-compilation)")
222 (build-system gnu-build-system)
223 (arguments
224 (substitute-keyword-arguments (package-arguments emacs)
225 ((#:phases phases)
226 `(modify-phases ,phases
227 (delete 'install-site-start)))))
228 (inputs
229 `(("ncurses" ,ncurses)))
230 (native-inputs
231 `(("pkg-config" ,pkg-config)))))
232
233(define-public emacs-no-x
4fd540b7 234 (package (inherit emacs)
4fd540b7
LC
235 (name "emacs-no-x")
236 (synopsis "The extensible, customizable, self-documenting text
237editor (console only)")
238 (build-system gnu-build-system)
239 (inputs (fold alist-delete
240 (package-inputs emacs)
241 '("libx11" "gtk+" "libxft" "libtiff" "giflib" "libjpeg"
8ba4dc63 242 "libpng" "librsvg" "libxpm" "libice" "libsm"
4fd540b7
LC
243
244 ;; D-Bus depends on libx11, so remove it as well.
245 "dbus")))))
246
4a3e602c
TUBK
247(define-public emacs-no-x-toolkit
248 (package (inherit emacs)
249 (name "emacs-no-x-toolkit")
250 (synopsis "The extensible, customizable, self-documenting text
251editor (without an X toolkit)" )
71f57158 252 (build-system gnu-build-system)
388fd01b
MW
253 (inputs (append `(("inotify-tools" ,inotify-tools))
254 (alist-delete "gtk+" (package-inputs emacs))))
255 (arguments (append '(#:configure-flags '("--with-x-toolkit=no"))
256 (package-arguments emacs)))))
4a3e602c 257
f906d30c
CAW
258(define-public guile-emacs
259 (package (inherit emacs)
260 (name "guile-emacs")
261 (version "20150512.41120e0")
262 (source (origin
263 (method git-fetch)
264 (uri (git-reference
265 (url "git://git.hcoop.net/git/bpt/emacs.git")
266 (commit "41120e0f595b16387eebfbf731fff70481de1b4b")))
267 (sha256
268 (base32
269 "0lvcvsz0f4mawj04db35p1dvkffdqkz8pkhc0jzh9j9x2i63kcz6"))))
270 (native-inputs
271 `(("autoconf" ,autoconf)
272 ("automake" ,automake)
273 ("guile" ,guile-for-guile-emacs)
274 ,@(package-native-inputs emacs)))
275 (arguments
276 (substitute-keyword-arguments `(;; Build fails if we allow parallel build.
277 #:parallel-build? #f
278 ;; Tests aren't passing for now.
279 #:tests? #f
280 ,@(package-arguments emacs))
281 ((#:phases phases)
282 `(modify-phases ,phases
283 (add-after 'unpack 'autogen
284 (lambda _
285 (zero? (system* "sh" "autogen.sh"))))))))))
286
4f028c8f
LC
287\f
288;;;
289;;; Emacs hacking.
290;;;
291
292(define-public geiser
293 (package
294 (name "geiser")
113e23e0 295 (version "0.9")
4f028c8f
LC
296 (source (origin
297 (method url-fetch)
cf8f58b2
LC
298 (uri (string-append "mirror://savannah/geiser/" version
299 "/geiser-" version ".tar.gz"))
4f028c8f 300 (sha256
1f8ad12a 301 (base32
a9c61335 302 "0phz9d8wjk4p13vqannv0003fwh8qqrp0gfzcs2hgq1mrmv1srss"))))
4f028c8f 303 (build-system gnu-build-system)
d51cafb0
AK
304 (arguments
305 '(#:phases (alist-cons-after
306 'install 'post-install
307 (lambda* (#:key outputs #:allow-other-keys)
308 (symlink "geiser-install.el"
309 (string-append (assoc-ref outputs "out")
310 "/share/emacs/site-lisp/"
311 "geiser-autoloads.el")))
312 %standard-phases)))
6aaf3899 313 (inputs `(("guile" ,guile-2.0)))
b8fc3622 314 (native-inputs `(("emacs" ,emacs-minimal)))
4f028c8f
LC
315 (home-page "http://nongnu.org/geiser/")
316 (synopsis "Collection of Emacs modes for Guile and Racket hacking")
317 (description
9586011d
LC
318 "Geiser is a collection of Emacs major and minor modes that conspire with
319one or more Scheme implementations to keep the Lisp Machine Spirit alive. The
320continuously running Scheme interpreter takes the center of the stage in
321Geiser. A bundle of Elisp shims orchestrates the dialog between the Scheme
322implementation, Emacs and, ultimately, the schemer, giving them access to live
323metadata.")
f61e0e79 324 (license license:bsd-3)))
9a4c9715 325
11e4c1fd 326(define-public geiser-next
a9c61335
AK
327 ;; This has become "geiser".
328 (deprecated-package "geiser-next" geiser))
11e4c1fd 329
fe4163f3
MW
330(define-public paredit
331 (package
967cfd18 332 (name "emacs-paredit")
c181b870 333 (version "24")
fe4163f3 334 (source (origin
c181b870
AK
335 (method url-fetch)
336 (uri (string-append "http://mumble.net/~campbell/emacs/paredit-"
337 version ".el"))
338 (sha256
339 (base32
340 "0pp3n8q6kc70blqsaw0zlzp6bc327dpgdrjr0cnh7hqg1lras7ka"))))
79b3c930 341 (build-system emacs-build-system)
fe4163f3
MW
342 (home-page "http://mumble.net/~campbell/emacs/paredit/")
343 (synopsis "Emacs minor mode for editing parentheses")
344 (description
345 "ParEdit (paredit.el) is a minor mode for performing structured editing
346of S-expression data. The typical example of this would be Lisp or Scheme
347source code.
348
349ParEdit helps **keep parentheses balanced** and adds many keys for moving
350S-expressions and moving around in S-expressions. Its behavior can be jarring
351for those who may want transient periods of unbalanced parentheses, such as
352when typing parentheses directly or commenting out code line by line.")
f61e0e79 353 (license license:gpl3+)))
fe4163f3 354
967cfd18
LC
355(define-public paredit/old-name
356 (deprecated-package "paredit" paredit))
357
2f910ef6
LC
358(define-public git-modes
359 (package
360 (name "git-modes")
846344d0 361 (version "1.2.4")
2f910ef6
LC
362 (source (origin
363 (method url-fetch)
364 (uri (string-append
365 "https://github.com/magit/git-modes/archive/"
366 version ".tar.gz"))
8fd3c1ff 367 (file-name (string-append name "-" version ".tar.gz"))
2f910ef6
LC
368 (sha256
369 (base32
846344d0 370 "0xxrmf0jnyljxvllc22qa0v8lgi4k1ldnayjm5hf68m25jsr378l"))))
3d01b293 371 (build-system emacs-build-system)
2f910ef6
LC
372 (home-page "https://github.com/magit/git-modes")
373 (synopsis "Emacs major modes for Git configuration files")
374 (description
375 "This package provides Emacs major modes for editing various Git
376configuration files, such as .gitattributes, .gitignore, and .git/config.")
377 (license license:gpl3+)))
378
2b0e4300
AK
379(define-public emacs-with-editor
380 (package
381 (name "emacs-with-editor")
3e275818 382 (version "2.5.10")
2b0e4300
AK
383 (source (origin
384 (method url-fetch)
385 (uri (string-append
386 "https://github.com/magit/with-editor/archive/v"
387 version ".tar.gz"))
388 (file-name (string-append name "-" version ".tar.gz"))
389 (sha256
390 (base32
3e275818 391 "0lsxa1hghybkzvqhqvvym3hxbyp9vjcnnpb9j800z0vyhbnlka67"))))
2b0e4300
AK
392 (build-system emacs-build-system)
393 (propagated-inputs
394 `(("emacs-dash" ,emacs-dash)))
395 (home-page "https://github.com/magit/with-editor")
396 (synopsis "Emacs library for using Emacsclient as EDITOR")
397 (description
398 "This package provides an Emacs library to use the Emacsclient as
399@code{$EDITOR} of child processes, making sure they know how to call home.
400For remote processes a substitute is provided, which communicates with Emacs
401on stdout instead of using a socket as the Emacsclient does.")
402 (license license:gpl3+)))
403
9a4c9715
MW
404(define-public magit
405 (package
406 (name "magit")
2617050b 407 (version "2.10.3")
9a4c9715
MW
408 (source (origin
409 (method url-fetch)
fac8b30b
MW
410 (uri (string-append
411 "https://github.com/magit/magit/releases/download/"
412 version "/" name "-" version ".tar.gz"))
9a4c9715 413 (sha256
7e4871ba 414 (base32
2617050b 415 "03ln65ss420gc3h4pi56dayd1p163xfxrxrd9fkb9xnkl8mjglqk"))))
9a4c9715 416 (build-system gnu-build-system)
2c047b4a 417 (native-inputs `(("texinfo" ,texinfo)
b8fc3622 418 ("emacs" ,emacs-minimal)))
46bd4515
AG
419 (inputs
420 `(("git" ,git)
421 ("perl" ,perl)))
3db5ed11
AK
422 (propagated-inputs
423 `(("dash" ,emacs-dash)
424 ("with-editor" ,emacs-with-editor)))
9a4c9715
MW
425 (arguments
426 `(#:modules ((guix build gnu-build-system)
427 (guix build utils)
428 (guix build emacs-utils))
8ff3df5b 429 #:imported-modules (,@%gnu-build-system-modules
9a4c9715 430 (guix build emacs-utils))
7e4871ba
LC
431
432 #:test-target "test"
55f29c39 433 #:tests? #f ; tests are not included in the release
7e4871ba 434
55f29c39
AK
435 #:make-flags
436 (list (string-append "PREFIX=" %output)
437 ;; Don't put .el files in a sub-directory.
438 (string-append "lispdir=" %output "/share/emacs/site-lisp")
439 (string-append "DASH_DIR="
440 (assoc-ref %build-inputs "dash")
441 "/share/emacs/site-lisp/guix.d/dash-"
3db5ed11
AK
442 ,(package-version emacs-dash))
443 (string-append "WITH_EDITOR_DIR="
444 (assoc-ref %build-inputs "with-editor")
445 "/share/emacs/site-lisp/guix.d/with-editor-"
446 ,(package-version emacs-with-editor)))
d41a8a07 447
9a4c9715 448 #:phases
c466bfd1 449 (modify-phases %standard-phases
55f29c39 450 (delete 'configure)
c466bfd1
LC
451 (add-before
452 'build 'patch-exec-paths
453 (lambda* (#:key inputs #:allow-other-keys)
46bd4515
AG
454 (let ((git (assoc-ref inputs "git"))
455 (perl (assoc-ref inputs "perl")))
55f29c39
AK
456 (emacs-substitute-variables "lisp/magit-git.el"
457 ("magit-git-executable" (string-append git "/bin/git")))
46bd4515
AG
458 (substitute* "lisp/magit-sequence.el"
459 (("perl") (string-append perl "/bin/perl")))
55f29c39 460 #t))))))
9a4c9715
MW
461 (home-page "http://magit.github.io/")
462 (synopsis "Emacs interface for the Git version control system")
463 (description
464 "With Magit, you can inspect and modify your Git repositories with Emacs.
465You can review and commit the changes you have made to the tracked files, for
466example, and you can browse the history of past changes. There is support for
467cherry picking, reverting, merging, rebasing, and other common Git
468operations.")
f61e0e79 469 (license license:gpl3+)))
18d26210 470
97cc51f8
LC
471(define-public magit-svn
472 (package
473 (name "magit-svn")
b7f16845 474 (version "2.1.1")
97cc51f8 475 (source (origin
be379ee7
AK
476 (method url-fetch)
477 (uri (string-append
478 "https://github.com/magit/magit-svn/archive/"
479 version ".tar.gz"))
480 (file-name (string-append name "-" version ".tar.gz"))
97cc51f8
LC
481 (sha256
482 (base32
b7f16845 483 "04y88j7q9h8xjbx5dbick6n5nr1522sn9i1znp0qwk3vjb4b5mzz"))))
97cc51f8 484 (build-system trivial-build-system)
b8fc3622 485 (native-inputs `(("emacs" ,emacs-minimal)
be379ee7
AK
486 ("tar" ,tar)
487 ("gzip" ,gzip)))
488 (propagated-inputs `(("dash" ,emacs-dash)
489 ("magit" ,magit)))
97cc51f8
LC
490 (arguments
491 `(#:modules ((guix build utils)
492 (guix build emacs-utils))
493
494 #:builder
495 (begin
496 (use-modules (guix build utils)
497 (guix build emacs-utils))
498
be379ee7
AK
499 (let* ((tar (string-append (assoc-ref %build-inputs "tar")
500 "/bin/tar"))
501 (PATH (string-append (assoc-ref %build-inputs "gzip")
502 "/bin"))
503 (emacs (string-append (assoc-ref %build-inputs "emacs")
97cc51f8
LC
504 "/bin/emacs"))
505 (magit (string-append (assoc-ref %build-inputs "magit")
506 "/share/emacs/site-lisp"))
be379ee7
AK
507 (dash (string-append (assoc-ref %build-inputs "dash")
508 "/share/emacs/site-lisp/guix.d/dash-"
509 ,(package-version emacs-dash)))
97cc51f8
LC
510 (source (assoc-ref %build-inputs "source"))
511 (lisp-dir (string-append %output "/share/emacs/site-lisp")))
be379ee7
AK
512 (setenv "PATH" PATH)
513 (system* tar "xvf" source)
96c46210
LC
514
515 (install-file (string-append ,name "-" ,version "/magit-svn.el")
516 lisp-dir)
97cc51f8
LC
517
518 (with-directory-excursion lisp-dir
519 (parameterize ((%emacs emacs))
520 (emacs-generate-autoloads ,name lisp-dir)
521 (setenv "EMACSLOADPATH"
be379ee7 522 (string-append ":" magit ":" dash))
97cc51f8
LC
523 (emacs-batch-eval '(byte-compile-file "magit-svn.el"))))))))
524 (home-page "https://github.com/magit/magit-svn")
525 (synopsis "Git-SVN extension to Magit")
526 (description
527 "This package is an extension to Magit, the Git Emacs mode, providing
528support for Git-SVN.")
529 (license license:gpl3+)))
530
c1562e3d
AK
531(define-public emacs-magit-popup
532 (package
533 (name "emacs-magit-popup")
534 (version (package-version magit))
535 (source (origin
536 (method url-fetch)
537 (uri (string-append
538 "https://raw.githubusercontent.com/magit/magit/"
539 version "/lisp/magit-popup.el"))
540 (file-name (string-append "magit-popup-" version ".el"))
541 (sha256
542 (base32
7f86a97c 543 "08b6ypfiq8zavjfq0wcdh26xziwq7rqvvv3lfpib9101146kzx6d"))))
c1562e3d
AK
544 (build-system emacs-build-system)
545 (propagated-inputs
546 `(("emacs-dash" ,emacs-dash)))
547 (home-page "https://github.com/magit/magit")
548 (synopsis "Define prefix-infix-suffix command combos")
549 (description
550 "This library implements a generic interface for toggling switches and
551setting options and then invoking an Emacs command which does something with
552these arguments. The prototypical use is for the command to call an external
553process, passing on the arguments as command line arguments.")
554 (license license:gpl3+)))
555
00f4bd50
FB
556(define-public haskell-mode
557 (package
558 (name "haskell-mode")
08fc0d68 559 (version "16.1")
00f4bd50
FB
560 (source (origin
561 (method url-fetch)
562 (file-name (string-append name "-" version ".tar.gz"))
563 (uri (string-append
564 "https://github.com/haskell/haskell-mode/archive/v"
565 version ".tar.gz"))
566 (sha256
08fc0d68
FB
567 (base32 "0g6lcjw7lcgavv3yrd8xjcyqgfyjl787y32r1z14amw2f009m78h"))))
568 (inputs
569 `(("emacs-el-search" ,emacs-el-search) ; for tests
570 ("emacs-stream" ,emacs-stream))) ; for tests
571 (propagated-inputs
572 `(("emacs-dash" ,emacs-dash)))
00f4bd50 573 (native-inputs
b8fc3622 574 `(("emacs" ,emacs-minimal)
6aaf3899 575 ("texinfo" ,texinfo)))
00f4bd50
FB
576 (build-system gnu-build-system)
577 (arguments
578 `(#:make-flags (list (string-append "EMACS="
579 (assoc-ref %build-inputs "emacs")
580 "/bin/emacs"))
08fc0d68
FB
581 #:modules ((ice-9 match)
582 (srfi srfi-26)
583 ,@%gnu-build-system-modules)
00f4bd50
FB
584 #:phases
585 (modify-phases %standard-phases
586 (delete 'configure)
587 (add-before
588 'build 'pre-build
589 (lambda* (#:key inputs #:allow-other-keys)
08fc0d68
FB
590 (define (el-dir store-dir)
591 (match (find-files store-dir)
592 ((f1 f2 ...) (dirname f1))
593 (_ "")))
594
00f4bd50 595 (let ((sh (string-append (assoc-ref inputs "bash") "/bin/sh")))
08fc0d68
FB
596 (define emacs-prefix? (cut string-prefix? "emacs-" <>))
597
00f4bd50 598 (setenv "SHELL" "sh")
08fc0d68
FB
599 (setenv "EMACSLOADPATH"
600 (string-concatenate
601 (map (match-lambda
602 (((? emacs-prefix? name) . dir)
603 (string-append (el-dir dir) ":"))
604 (_ ""))
605 inputs)))
00f4bd50 606 (substitute* (find-files "." "\\.el") (("/bin/sh") sh))
08fc0d68
FB
607 (substitute* "tests/haskell-code-conventions.el"
608 ;; Function name recently changed in "emacs-el-search".
609 (("el-search--search-pattern") "el-search-forward")
610 ;; Don't contact home.
611 (("\\(when \\(>= emacs-major-version 25\\)")
612 "(require 'el-search) (when nil"))
00f4bd50
FB
613 #t)))
614 (replace
615 'install
616 (lambda* (#:key outputs #:allow-other-keys)
617 (let* ((out (assoc-ref outputs "out"))
618 (el-dir (string-append out "/share/emacs/site-lisp"))
619 (doc (string-append
620 out "/share/doc/haskell-mode-" ,version))
621 (info (string-append out "/share/info")))
622 (define (copy-to-dir dir files)
96c46210
LC
623 (for-each (lambda (f)
624 (install-file f dir))
625 files))
00f4bd50
FB
626
627 (with-directory-excursion "doc"
628 (unless (zero? (system* "makeinfo" "haskell-mode.texi"))
629 (error "makeinfo failed"))
96c46210 630 (install-file "haskell-mode.info" info))
00f4bd50
FB
631 (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md"))
632 (copy-to-dir el-dir (find-files "." "\\.elc?"))
08fc0d68 633 ;; These are part of other packages.
00f4bd50 634 (with-directory-excursion el-dir
08fc0d68 635 (for-each delete-file '("dash.el" "ert.el")))
00f4bd50
FB
636 #t))))))
637 (home-page "https://github.com/haskell/haskell-mode")
638 (synopsis "Haskell mode for Emacs")
639 (description
640 "This is an Emacs mode for editing, debugging and developing Haskell
641programs.")
642 (license license:gpl3+)))
643
1defd8cd
LC
644(define-public let-alist
645 (package
646 (name "emacs-let-alist")
647 (version "1.0.4")
648 (source (origin
649 (method url-fetch)
f32ffa04 650 (uri (string-append "https://elpa.gnu.org/packages/let-alist-"
1defd8cd
LC
651 version ".el"))
652 (sha256
653 (base32
654 "07312bvvyz86lf64vdkxg2l1wgfjl25ljdjwlf1bdzj01c4hm88x"))))
3e9afff8 655 (build-system emacs-build-system)
f32ffa04 656 (home-page "https://elpa.gnu.org/packages/let-alist.html")
1defd8cd
LC
657 (synopsis "Easily let-bind values of an assoc-list by their names")
658 (description
659 "This package offers a single Emacs Lisp macro, @code{let-alist}. This
660macro takes a first argument, whose value must be an alist (association list),
661and a body.
662
663The macro expands to a let form containing the body, where each dotted symbol
664inside body is let-bound to their cdrs in the alist. Only those present in
665the body are let-bound and this search is done at compile time.")
666 (license license:gpl3+)))
667
6e3fdbbe
LC
668(define-public flycheck
669 (package
670 (name "emacs-flycheck")
50edf7fc 671 (version "30")
6e3fdbbe
LC
672 (source (origin
673 (method url-fetch)
0b928076
AK
674 (uri (string-append
675 "https://github.com/flycheck/flycheck/releases/download/"
676 version "/flycheck-" version ".tar"))
6e3fdbbe
LC
677 (sha256
678 (base32
50edf7fc 679 "1rxzkaqsj48z3nska5wsgwafvwkam014dzqd32baycmxjl0jxvy7"))))
6e3fdbbe
LC
680 (build-system emacs-build-system)
681 (propagated-inputs
682 `(("emacs-dash" ,emacs-dash)
bdff55ea
LC
683 ("emacs-let-alist" ,let-alist)
684 ("emacs-seq" ,emacs-seq)))
6e3fdbbe
LC
685 (home-page "https://www.flycheck.org")
686 (synopsis "On-the-fly syntax checking")
687 (description
688 "This package provides on-the-fly syntax checking for GNU Emacs. It is a
689replacement for the older Flymake extension which is part of GNU Emacs, with
690many improvements and additional features.
691
692Flycheck provides fully-automatic, fail-safe, on-the-fly background syntax
693checking for over 30 programming and markup languages with more than 70
694different tools. It highlights errors and warnings inline in the buffer, and
695provides an optional IDE-like error list.")
696 (license license:gpl3+))) ;+GFDLv1.3+ for the manual
697
18d26210
MW
698\f
699;;;
700;;; Web browsing.
701;;;
702
703(define-public emacs-w3m
704 (package
705 (name "emacs-w3m")
2e74b9f4 706 (version "1.4.538+0.20141022")
18d26210
MW
707 (source (origin
708 (method url-fetch)
709 (uri (string-append "mirror://debian/pool/main/w/w3m-el/w3m-el_"
710 version ".orig.tar.gz"))
711 (sha256
2e74b9f4
AK
712 (base32
713 "0zfxmq86pwk64yv0426gnjrvhjrgrjqn08sdcdhmmjmfpmqvm79y"))))
18d26210 714 (build-system gnu-build-system)
6aaf3899 715 (native-inputs `(("autoconf" ,autoconf)
b8fc3622 716 ("emacs" ,emacs-minimal)))
18d26210 717 (inputs `(("w3m" ,w3m)
6aaf3899 718 ("imagemagick" ,imagemagick)))
18d26210 719 (arguments
caaf1933 720 `(#:modules ((guix build gnu-build-system)
18d26210
MW
721 (guix build utils)
722 (guix build emacs-utils))
8ff3df5b 723 #:imported-modules (,@%gnu-build-system-modules
18d26210
MW
724 (guix build emacs-utils))
725 #:configure-flags
726 (let ((out (assoc-ref %outputs "out")))
727 (list (string-append "--with-lispdir="
728 out "/share/emacs/site-lisp")
729 (string-append "--with-icondir="
2e74b9f4
AK
730 out "/share/images/emacs-w3m")
731 ;; Leave .el files uncompressed, otherwise GC can't
732 ;; identify run-time dependencies. See
733 ;; <http://lists.gnu.org/archive/html/guix-devel/2015-12/msg00208.html>
734 "--without-compress-install"))
18d26210
MW
735 #:tests? #f ; no check target
736 #:phases
932ece65
AK
737 (modify-phases %standard-phases
738 (add-after 'unpack 'autoconf
739 (lambda _
740 (zero? (system* "autoconf"))))
741 (add-before 'build 'patch-exec-paths
742 (lambda* (#:key inputs outputs #:allow-other-keys)
743 (let ((out (assoc-ref outputs "out"))
744 (w3m (assoc-ref inputs "w3m"))
745 (imagemagick (assoc-ref inputs "imagemagick"))
746 (coreutils (assoc-ref inputs "coreutils")))
747 (emacs-substitute-variables "w3m.el"
748 ("w3m-command" (string-append w3m "/bin/w3m"))
749 ("w3m-touch-command"
750 (string-append coreutils "/bin/touch"))
751 ("w3m-image-viewer"
752 (string-append imagemagick "/bin/display"))
753 ("w3m-icon-directory"
754 (string-append out "/share/images/emacs-w3m")))
755 (emacs-substitute-variables "w3m-image.el"
756 ("w3m-imagick-convert-program"
757 (string-append imagemagick "/bin/convert"))
758 ("w3m-imagick-identify-program"
759 (string-append imagemagick "/bin/identify")))
760 #t)))
761 (replace 'install
762 (lambda* (#:key outputs #:allow-other-keys)
763 (and (zero? (system* "make" "install" "install-icons"))
764 (with-directory-excursion
765 (string-append (assoc-ref outputs "out")
766 "/share/emacs/site-lisp")
767 (for-each delete-file '("ChangeLog" "ChangeLog.1"))
768 (symlink "w3m-load.el" "w3m-autoloads.el")
769 #t)))))))
18d26210
MW
770 (home-page "http://emacs-w3m.namazu.org/")
771 (synopsis "Simple Web browser for Emacs based on w3m")
772 (description
35b9e423 773 "Emacs-w3m is an emacs interface for the w3m web browser.")
f61e0e79 774 (license license:gpl2+)))
89925972
MW
775
776(define-public emacs-wget
777 (package
778 (name "emacs-wget")
779 (version "0.5.0")
780 (source (origin
781 (method url-fetch)
782 (uri (string-append "mirror://debian/pool/main/w/wget-el/wget-el_"
783 version ".orig.tar.gz"))
784 (sha256
785 (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff"))))
786 (build-system gnu-build-system)
6aaf3899 787 (inputs `(("wget" ,wget)))
b8fc3622 788 (native-inputs `(("emacs" ,emacs-minimal)))
89925972 789 (arguments
caaf1933 790 `(#:modules ((guix build gnu-build-system)
89925972
MW
791 (guix build utils)
792 (guix build emacs-utils))
caaf1933 793 #:imported-modules (,@%gnu-build-system-modules
89925972
MW
794 (guix build emacs-utils))
795 #:tests? #f ; no check target
796 #:phases
797 (alist-replace
798 'configure
799 (lambda* (#:key outputs #:allow-other-keys)
800 (substitute* "Makefile"
801 (("/usr/local") (assoc-ref outputs "out"))
802 (("/site-lisp/emacs-wget") "/site-lisp")))
803 (alist-cons-before
804 'build 'patch-exec-paths
805 (lambda* (#:key inputs outputs #:allow-other-keys)
806 (let ((wget (assoc-ref inputs "wget")))
807 (emacs-substitute-variables "wget.el"
808 ("wget-command" (string-append wget "/bin/wget")))))
d51cafb0
AK
809 (alist-cons-after
810 'install 'post-install
811 (lambda* (#:key outputs #:allow-other-keys)
812 (emacs-generate-autoloads
813 "wget" (string-append (assoc-ref outputs "out")
814 "/share/emacs/site-lisp/")))
815 %standard-phases)))))
89925972 816 (home-page "http://www.emacswiki.org/emacs/EmacsWget")
ae2189a9 817 (synopsis "Simple file downloader for Emacs based on wget")
89925972 818 (description
35b9e423 819 "Emacs-wget is an emacs interface for the wget file downloader.")
f61e0e79 820 (license license:gpl2+)))
77c9286d
LC
821
822\f
823;;;
824;;; Multimedia.
825;;;
826
827(define-public emms
828 (package
d06d4d7b 829 (name "emacs-emms")
20832afb 830 (version "4.3")
77c9286d
LC
831 (source (origin
832 (method url-fetch)
833 (uri (string-append "mirror://gnu/emms/emms-"
834 version ".tar.gz"))
835 (sha256
836 (base32
20832afb 837 "0dicgkl8l83n4cah5vk7c242abbwpyzlih451blgw37f3rijs480"))
77c9286d
LC
838 (modules '((guix build utils)))
839 (snippet
840 '(substitute* "Makefile"
841 (("/usr/bin/install-info")
842 ;; No need to use 'install-info' since it would create a
843 ;; useless 'dir' file.
844 "true")
845 (("^INFODIR=.*")
846 ;; Install Info files to $out/share/info, not $out/info.
847 "INFODIR := $(PREFIX)/share/info\n")
848 (("/site-lisp/emms")
849 ;; Install directly in share/emacs/site-lisp, not in a
850 ;; sub-directory.
851 "/site-lisp")
852 (("^all: (.*)\n" _ rest)
853 ;; Build 'emms-print-metadata'.
854 (string-append "all: " rest " emms-print-metadata\n"))))))
855 (build-system gnu-build-system)
856 (arguments
caaf1933 857 `(#:modules ((guix build gnu-build-system)
77c9286d
LC
858 (guix build utils)
859 (guix build emacs-utils))
caaf1933 860 #:imported-modules (,@%gnu-build-system-modules
77c9286d
LC
861 (guix build emacs-utils))
862
2fe176be
EF
863 #:phases
864 (modify-phases %standard-phases
865 (replace 'configure
866 (lambda* (#:key inputs outputs #:allow-other-keys)
867 (let ((out (assoc-ref outputs "out"))
868 (vorbis (assoc-ref inputs "vorbis-tools"))
869 (alsa (assoc-ref inputs "alsa-utils"))
870 (mpg321 (assoc-ref inputs "mpg321"))
871 (mp3info (assoc-ref inputs "mp3info")))
872 ;; Specify the installation directory.
873 (substitute* "Makefile"
874 (("PREFIX=.*$")
875 (string-append "PREFIX := " out "\n")))
876
877 (setenv "SHELL" (which "sh"))
878 (setenv "CC" "gcc")
879
880 ;; Specify the absolute file names of the various
881 ;; programs so that everything works out-of-the-box.
882 (with-directory-excursion "lisp"
883 (emacs-substitute-variables
884 "emms-player-mpg321-remote.el"
885 ("emms-player-mpg321-remote-command"
886 (string-append mpg321 "/bin/mpg321")))
887 (substitute* "emms-player-simple.el"
888 (("\"ogg123\"")
889 (string-append "\"" vorbis "/bin/ogg123\"")))
890 (emacs-substitute-variables "emms-info-ogginfo.el"
891 ("emms-info-ogginfo-program-name"
892 (string-append vorbis "/bin/ogginfo")))
893 (emacs-substitute-variables "emms-info-libtag.el"
894 ("emms-info-libtag-program-name"
895 (string-append out "/bin/emms-print-metadata")))
896 (emacs-substitute-variables "emms-info-mp3info.el"
897 ("emms-info-mp3info-program-name"
898 (string-append mp3info "/bin/mp3info")))
899 (substitute* "emms-volume-amixer.el"
900 (("\"amixer\"")
901 (string-append "\"" alsa "/bin/amixer\"")))
902 (substitute* "emms-tag-editor.el"
903 (("\"mp3info\"")
904 (string-append "\"" mp3info "/bin/mp3info\"")))))))
905 (add-before 'install 'pre-install
906 (lambda* (#:key outputs #:allow-other-keys)
c3a10d30 907 ;; The 'install' rule expects the target directories to exist.
2fe176be 908 (let* ((out (assoc-ref outputs "out"))
c3a10d30 909 (bin (string-append out "/bin"))
2fe176be 910 (man1 (string-append out "/share/man/man1")))
c3a10d30 911 (mkdir-p bin)
2fe176be
EF
912 (mkdir-p man1)
913 #t)))
914 (add-after 'install 'post-install
915 (lambda* (#:key outputs #:allow-other-keys)
c3a10d30 916 (let ((out (assoc-ref outputs "out")))
2fe176be
EF
917 (symlink "emms-auto.el"
918 (string-append out "/share/emacs/site-lisp/"
c3a10d30 919 "emms-autoloads.el"))))))
77c9286d 920 #:tests? #f))
b8fc3622 921 (native-inputs `(("emacs" ,emacs-minimal) ;for (guix build emacs-utils)
77c9286d 922 ("texinfo" ,texinfo)))
c72aed6d 923 (inputs `(("alsa-utils" ,alsa-utils)
77c9286d
LC
924 ("vorbis-tools" ,vorbis-tools)
925 ("mpg321" ,mpg321)
926 ("taglib" ,taglib)
927 ("mp3info" ,mp3info)))
38cb4766 928 (properties '((upstream-name . "emms")))
77c9286d
LC
929 (synopsis "Emacs Multimedia System")
930 (description
931 "EMMS is the Emacs Multimedia System. It is a small front-end which
932can control one of the supported external players. Thus, it supports
933whatever formats are supported by your music player. It also
934supports tagging and playlist management, all behind a clean and
935light user interface.")
6fd52309 936 (home-page "https://www.gnu.org/software/emms/")
f61e0e79 937 (license license:gpl3+)))
c7e553a3 938
1095bd1d
RW
939(define-public emacs-emms-player-mpv
940 (package
941 (name "emacs-emms-player-mpv")
f9875807 942 (version "0.0.10")
1095bd1d
RW
943 (source
944 (origin
945 (method url-fetch)
946 (uri (string-append "https://github.com/dochang/emms-player-mpv/archive/"
947 version ".tar.gz"))
948 (file-name (string-append name "-" version ".tar.gz"))
949 (sha256
950 (base32
f9875807 951 "1q81fpmwr8hpdgq71vbdai2nml4yyqbmk4ffdyl4irlwph8gfjyq"))))
1095bd1d
RW
952 (build-system emacs-build-system)
953 (propagated-inputs
954 `(("emms" ,emms)))
955 (home-page "https://github.com/dochang/emms-player-mpv/")
956 (synopsis "Mpv support for EMMS")
957 (description
958 "This package provides an EMMS player that uses mpv. It supports pause
959and seeking.")
960 (license license:gpl3+)))
961
2316078a
RW
962(define-public emacs-emms-mode-line-cycle
963 (package
964 (name "emacs-emms-mode-line-cycle")
965 (version "0.2.5")
966 (source
967 (origin
968 (method url-fetch)
969 (uri (string-append "https://github.com/momomo5717/emms-mode-line-cycle"
970 "/archive/" version ".tar.gz"))
971 (file-name (string-append name "-" version ".tar.gz"))
972 (sha256
973 (base32
974 "0ifszi930pnaxk1x8pcydmvnp06868gc7nfx14q17zbajbx735k6"))))
975 (build-system emacs-build-system)
976 (propagated-inputs
977 `(("emms" ,emms)))
978 (home-page "https://github.com/momomo5717/emms-mode-line-cycle")
979 (synopsis "Display the EMMS mode line as a ticker")
980 (description
981 "This is a minor mode for updating the EMMS mode-line string cyclically
982within a specified width. It is useful for displaying long track titles.")
983 (license license:gpl3+)))
984
c7e553a3
LC
985\f
986;;;
987;;; Miscellaneous.
988;;;
989
990(define-public bbdb
991 (package
992 (name "bbdb")
993 (version "3.1.2")
994 (source (origin
995 (method url-fetch)
996 (uri (string-append "mirror://savannah/bbdb/bbdb-"
997 version ".tar.gz"))
998 (sha256
999 (base32
1000 "1gs16bbpiiy01w9pyg12868r57kx1v3hnw04gmqsmpc40l1hyy05"))
1001 (modules '((guix build utils)))
1002 (snippet
1003 ;; We don't want to build and install the PDF.
1004 '(substitute* "doc/Makefile.in"
1005 (("^doc_DATA = .*$")
1006 "doc_DATA =\n")))))
1007 (build-system gnu-build-system)
1008 (arguments
1009 '(#:phases (alist-cons-after
1010 'install 'post-install
1011 (lambda* (#:key outputs #:allow-other-keys)
1012 ;; Add an autoloads file with the right name for guix.el.
1013 (let* ((out (assoc-ref outputs "out"))
1014 (site (string-append out "/share/emacs/site-lisp")))
1015 (with-directory-excursion site
1016 (symlink "bbdb-loaddefs.el" "bbdb-autoloads.el"))))
1017 %standard-phases)))
b8fc3622 1018 (native-inputs `(("emacs" ,emacs-minimal)))
c7e553a3
LC
1019 (home-page "http://savannah.nongnu.org/projects/bbdb/")
1020 (synopsis "Contact management utility for Emacs")
1021 (description
1022 "BBDB is the Insidious Big Brother Database for GNU Emacs. It provides
1023an address book for email and snail mail addresses, phone numbers and the
1024like. It can be linked with various Emacs mail clients (Message and Mail
1025mode, Rmail, Gnus, MH-E, and VM). BBDB is fully customizable.")
f61e0e79 1026 (license license:gpl3+)))
78395334 1027
4d3d3bd2
VD
1028(define-public emacs-aggressive-indent
1029 (package
1030 (name "emacs-aggressive-indent")
1031 (version "1.8.3")
1032 (source (origin
1033 (method url-fetch)
1034 (uri (string-append "https://elpa.gnu.org/packages/"
1035 "aggressive-indent-" version ".el"))
1036 (sha256
1037 (base32
1038 "0jnzccl50x0wapprgwxinp99pwwa6j43q6msn4gv437j7swy8wnj"))))
1039 (build-system emacs-build-system)
1040 (home-page "https://elpa.gnu.org/packages/aggressive-indent.html")
1041 (synopsis "Minor mode to aggressively keep your code always indented")
1042 (description
1043 "@code{aggressive-indent-mode} is a minor mode that keeps your code
1044always indented. It reindents after every change, making it more reliable
1045than @code{electric-indent-mode}.")
1046 (license license:gpl2+)))
1047
cf006d2e
CB
1048(define-public emacs-ag
1049 (package
1050 (name "emacs-ag")
1051 (version "0.47")
1052 (source (origin
1053 (method url-fetch)
1054 (uri (string-append
1055 "https://github.com/Wilfred/ag.el/archive/"
1056 version ".tar.gz"))
1057 (file-name (string-append name "-" version ".tar.gz"))
1058 (sha256
1059 (base32
1060 "1rlmp6wnyhqfg86dbz17r914msp58favn4kd4yrdwyia265a4lar"))))
1061 (build-system emacs-build-system)
1062 (arguments
1063 `(#:phases
1064 (modify-phases %standard-phases
99517d92
GC
1065 (add-before 'install 'make-info
1066 (lambda _
1067 (with-directory-excursion "docs"
1068 (zero? (system* "make" "info")))))
1069 (add-after 'install 'install-info
1070 (lambda* (#:key outputs #:allow-other-keys)
1071 (let* ((out (assoc-ref outputs "out"))
1072 (info (string-append out "/share/info")))
1073 (install-file "docs/_build/texinfo/agel.info" info)
1074 #t))))))
99517d92
GC
1075 (native-inputs
1076 `(("python-sphinx" ,python-sphinx)
1077 ("texinfo" ,texinfo)))
cf006d2e
CB
1078 (propagated-inputs
1079 `(("dash" ,emacs-dash)
86470421
CL
1080 ("s" ,emacs-s)
1081 ;; We need to use 'ag' as the executable on remote systems.
1082 ("the-silver-searcher" ,the-silver-searcher)))
cf006d2e
CB
1083 (home-page "https://github.com/Wilfred/ag.el")
1084 (synopsis "Front-end for ag (the-silver-searcher) for Emacs")
1085 (description "This package provides the ability to use the silver
1086searcher, a code searching tool, sometimes abbreviated to @code{ag}. Features
1087include version control system awareness, use of Perl compatible regular
1088expressions, editing the search results directly and searching file names
1089rather than the contents of files.")
1090 (license license:gpl3+)))
1091
b654de6d
AK
1092(define-public emacs-async
1093 (package
1094 (name "emacs-async")
51ef4af6 1095 (version "1.9.2")
b654de6d
AK
1096 (source (origin
1097 (method url-fetch)
f32ffa04 1098 (uri (string-append "https://elpa.gnu.org/packages/async-"
b654de6d
AK
1099 version ".tar"))
1100 (sha256
1101 (base32
51ef4af6 1102 "17fnvrj7jww29sav6a6jpizclg4w2962m6h37akpii71gf0vrffw"))))
b654de6d 1103 (build-system emacs-build-system)
f32ffa04 1104 (home-page "https://elpa.gnu.org/packages/async.html")
b654de6d
AK
1105 (synopsis "Asynchronous processing in Emacs")
1106 (description
1107 "This package provides the ability to call asynchronous functions and
1108processes. For example, it can be used to run dired commands (for copying,
1109moving, etc.) asynchronously using @code{dired-async-mode}. Also it is used
1110as a library for other Emacs packages.")
1111 (license license:gpl3+)))
1112
78395334
FB
1113(define-public emacs-auctex
1114 (package
1115 (name "emacs-auctex")
6b7f909f 1116 (version "11.90.0")
78395334
FB
1117 (source
1118 (origin
1119 (method url-fetch)
1120 (uri (string-append
f32ffa04 1121 "https://elpa.gnu.org/packages/auctex-"
78395334
FB
1122 version
1123 ".tar"))
1124 (sha256
1125 (base32
6b7f909f 1126 "04nsndwcf0dimgc2p1yzzrymc36amzdnjg0158nxplmjkzdp28gy"))))
78395334 1127 (build-system emacs-build-system)
a6eafbed
AK
1128 ;; We use 'emacs' because AUCTeX requires dbus at compile time
1129 ;; ('emacs-minimal' does not provide dbus).
b1d32ec0
AI
1130 (arguments
1131 `(#:emacs ,emacs
1132 #:include '("\\.el$" "^images/" "^latex/" "\\.info$")
1133 #:exclude '("^tests/" "^latex/README")))
78395334
FB
1134 (native-inputs
1135 `(("perl" ,perl)))
6fd52309 1136 (home-page "https://www.gnu.org/software/auctex/")
78395334
FB
1137 (synopsis "Integrated environment for TeX")
1138 (description
1139 "AUCTeX is a comprehensive customizable integrated environment for
1140writing input files for TeX, LaTeX, ConTeXt, Texinfo, and docTeX using Emacs
1141or XEmacs.")
1142 (license license:gpl3+)))
85ef742c 1143
de2e402b
MM
1144(define-public emacs-autothemer
1145 (package
1146 (name "emacs-autothemer")
1147 (version "0.2.2")
1148 (source
1149 (origin
1150 (method url-fetch)
1151 (uri (string-append "https://github.com/sebastiansturm/autothemer/archive/"
1152 version ".tar.gz"))
1153 (file-name (string-append name "-" version ".tar.gz"))
1154 (sha256
1155 (base32
1156 "0rd28r9wfrbll212am4ih9hrvypx785aff76va2cbfxdwm9kixsa"))))
1157 (build-system emacs-build-system)
1158 (propagated-inputs
1159 `(("emacs-dash" ,emacs-dash)))
1160 (home-page "https://github.com/sebastiansturm/autothemer")
1161 (synopsis "Conveniently create Emacs themes")
1162 (description
1163 "Autothemer provides a thin layer on top of @code{deftheme} and
1164@code{custom-theme-set-faces} that creates a new custom color theme, based on
1165a set of simplified face specifications and a user-supplied color palette")
1166 (license license:gpl3+)))
1167
36890436
VD
1168(define-public emacs-calfw
1169 (package
1170 (name "emacs-calfw")
1171 (version "1.5")
1172 (source
1173 (origin
1174 (method url-fetch)
1175 (uri (string-append
1176 "https://github.com/kiwanami/emacs-calfw/archive/v"
1177 version ".tar.gz"))
1178 (file-name (string-append name "-" version ".tar.gz"))
1179 (sha256
1180 (base32
1181 "17ssg8gx66yp63nhygjq2r6kgl4h45cacmrxsxs9f0lrfcx37k0l"))))
1182 (build-system emacs-build-system)
1183 (home-page "https://github.com/kiwanami/emacs-calfw/")
1184 (synopsis "Calendar framework for Emacs")
1185 (description
9dac2a8e
RW
1186 "This package displays a calendar view with various schedule data in the
1187Emacs buffer.")
36890436
VD
1188 (license license:gpl3+)))
1189
a8d0c9cb
CB
1190(define-public emacs-direnv
1191 (package
1192 (name "emacs-direnv")
1193 (version "1.2.0")
1194 (source
1195 (origin
1196 (method url-fetch)
1197 (uri (string-append
1198 "https://github.com/wbolster/emacs-direnv/archive/"
1199 version ".tar.gz"))
1200 (file-name (string-append name "-" version ".tar.gz"))
1201 (sha256
1202 (base32
1203 "0m9nxawklhiiysyibzzhh2zkxgq1fskqvaqb06f7r8dnhabfy9fr"))))
1204 (build-system emacs-build-system)
1205 (propagated-inputs
1206 `(("dash" ,emacs-dash)
1207 ("with-editor" ,emacs-with-editor)))
1208 (home-page "https://github.com/wbolster/emacs-direnv")
1209 (synopsis "Direnv integration for Emacs")
1210 (description
1211 "This package provides support for invoking direnv to get the environment
1212for the current file and updating the environment within Emacs to match.
1213
1214Direnv can be invoked manually, and a global minor mode is included that will
1215update the environment when the active buffer changes.
1216
1217Using emacs-direnv means that programs started from Emacs will use the
1218environment set through Direnv.")
1219 (license license:gpl3+)))
1220
63878730
VD
1221(define-public emacs-google-maps
1222 (package
1223 (name "emacs-google-maps")
1224 (version "1.0.0")
1225 (source (origin
1226 (method url-fetch)
1227 (uri (string-append "https://github.com/jd/google-maps.el/"
1228 "archive/" version ".tar.gz"))
1229 (file-name (string-append name "-" version ".tar.gz"))
1230 (sha256
1231 (base32
1232 "014bxapm4d8vjxbzrfjdpsavxyfx981mlcb10aq5rmigr6il8ybs"))))
1233 (build-system emacs-build-system)
1234 (home-page "https://github.com/jd/google-maps.el")
1235 (synopsis "Access Google Maps from Emacs")
1236 (description "The @code{google-maps} package allows to display Google
1237Maps directly inside Emacs.")
1238 (license license:gpl3+)))
1239
85ef742c
FB
1240(define-public emacs-mmm-mode
1241 (package
1242 (name "emacs-mmm-mode")
1243 (version "0.5.4")
1244 (source
1245 (origin
1246 (method url-fetch)
1247 (uri (string-append
0c909c05
AK
1248 "https://github.com/purcell/mmm-mode/archive/"
1249 version ".tar.gz"))
1250 (file-name (string-append name "-" version ".tar.gz"))
85ef742c
FB
1251 (sha256
1252 (base32
0c909c05
AK
1253 "10kwslnflbjqm62wkrq420crqzdqalzfflp9pqk1i12zm6dm4mfv"))))
1254 (build-system gnu-build-system)
1255 (arguments
1256 '(#:phases
1257 (modify-phases %standard-phases
1258 (add-after 'unpack 'autogen
1259 (lambda _
1260 (zero? (system* "sh" "autogen.sh")))))))
1261 (native-inputs
1262 `(("autoconf" ,autoconf)
1263 ("automake" ,automake)
b8fc3622 1264 ("emacs" ,emacs-minimal)
0c909c05 1265 ("texinfo" ,texinfo)))
85ef742c 1266 (home-page "https://github.com/purcell/mmm-mode")
0c909c05 1267 (synopsis "Allow multiple major modes in an Emacs buffer")
85ef742c 1268 (description
0c909c05 1269 "MMM Mode is a minor mode that allows multiple major modes to coexist in a
85ef742c
FB
1270single buffer.")
1271 (license license:gpl3+)))
ec9825d6
RW
1272
1273(define-public emacs-pdf-tools
1274 (package
1275 (name "emacs-pdf-tools")
eccd0b57 1276 (version "0.70")
ec9825d6
RW
1277 (source (origin
1278 (method url-fetch)
1279 (uri (string-append
1280 "https://github.com/politza/pdf-tools/archive/v"
1281 version ".tar.gz"))
1282 (file-name (string-append name "-" version ".tar.gz"))
1283 (sha256
1284 (base32
eccd0b57 1285 "1m0api6wiawswyk46bdsyk6r5rg3b86a4paar6nassm6x6c6vr77"))))
ec9825d6
RW
1286 (build-system gnu-build-system)
1287 (arguments
1288 `(#:tests? #f ; there are no tests
1289 #:modules ((guix build gnu-build-system)
1bcae5c5 1290 ((guix build emacs-build-system) #:prefix emacs:)
ec9825d6
RW
1291 (guix build utils)
1292 (guix build emacs-utils))
1293 #:imported-modules (,@%gnu-build-system-modules
1bcae5c5 1294 (guix build emacs-build-system)
ec9825d6
RW
1295 (guix build emacs-utils))
1296 #:phases
1297 (modify-phases %standard-phases
1bcae5c5
AK
1298 ;; Build server side using 'gnu-build-system'.
1299 (add-after 'unpack 'enter-server-dir
1300 (lambda _ (chdir "server") #t))
1301 (add-before 'configure 'autogen
1302 (lambda _
1303 (zero? (system* "bash" "autogen.sh"))))
1304
1305 ;; Build emacs side using 'emacs-build-system'.
1306 (add-after 'compress-documentation 'enter-lisp-dir
1307 (lambda _ (chdir "../lisp") #t))
1308 (add-after 'enter-lisp-dir 'emacs-patch-variables
1309 (lambda* (#:key outputs #:allow-other-keys)
1310 ;; Set path to epdfinfo program.
1311 (emacs-substitute-variables "pdf-info.el"
1312 ("pdf-info-epdfinfo-program"
1313 (string-append (assoc-ref outputs "out")
1314 "/bin/epdfinfo")))
1315 ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto
1316 ;; upgrading" that pdf-tools tries to perform.
1317 (emacs-substitute-variables "pdf-tools.el"
1318 ("pdf-tools-handle-upgrades" '()))))
1319 (add-after 'emacs-patch-variables 'emacs-install
1320 (assoc-ref emacs:%standard-phases 'install))
1321 (add-after 'emacs-install 'emacs-build
1322 (assoc-ref emacs:%standard-phases 'build))
1323 (add-after 'emacs-install 'emacs-make-autoloads
1324 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
ec9825d6
RW
1325 (native-inputs `(("autoconf" ,autoconf)
1326 ("automake" ,automake)
1327 ("pkg-config" ,pkg-config)
b8fc3622 1328 ("emacs" ,emacs-minimal)))
e6527d64
AK
1329 (propagated-inputs
1330 `(("let-alist" ,let-alist)))
ec9825d6
RW
1331 (inputs `(("poppler" ,poppler)
1332 ("cairo" ,cairo)
1333 ("glib" ,glib)
1334 ("libpng" ,libpng)
1335 ("zlib" ,zlib)))
1336 (synopsis "Emacs support library for PDF files")
1337 (description
1338 "PDF Tools is, among other things, a replacement of DocView for PDF
1339files. The key difference is that pages are not pre-rendered by
1340e.g. ghostscript and stored in the file-system, but rather created on-demand
1341and stored in memory.")
1342 (home-page "https://github.com/politza/pdf-tools")
1343 (license license:gpl3+)))
d4dbf10e
FB
1344
1345(define-public emacs-dash
1346 (package
1347 (name "emacs-dash")
a31a79bc 1348 (version "2.13.0")
d4dbf10e
FB
1349 (source (origin
1350 (method url-fetch)
1351 (uri (string-append
1352 "https://github.com/magnars/dash.el/archive/"
1353 version ".tar.gz"))
1354 (file-name (string-append name "-" version ".tar.gz"))
1355 (sha256
1356 (base32
a31a79bc 1357 "1pjlkrzr8n45bnp3xs3dybvy0nz3gwamrfc7vsi1nhpkkw99ihhb"))))
d4dbf10e
FB
1358 (build-system emacs-build-system)
1359 (arguments
1360 `(#:phases
1361 (modify-phases %standard-phases
1362 (add-before 'install 'check
1363 (lambda _
1364 (zero? (system* "./run-tests.sh")))))))
1365 (home-page "https://github.com/magnars/dash.el")
1366 (synopsis "Modern list library for Emacs")
1367 (description "This package provides a modern list API library for Emacs.")
1368 (license license:gpl3+)))
85777fe5 1369
753baf77
AK
1370(define-public emacs-bui
1371 (package
1372 (name "emacs-bui")
f6b1dd23 1373 (version "1.1.0")
753baf77
AK
1374 (source (origin
1375 (method url-fetch)
1376 (uri (string-append
1377 "https://github.com/alezost/bui.el/archive/v"
1378 version ".tar.gz"))
1379 (file-name (string-append name "-" version ".tar.gz"))
1380 (sha256
1381 (base32
f6b1dd23 1382 "112k0mq6xpy0r47vk66miw7rxbkv3d06pv3pd0vcmrhcnhnnk486"))))
753baf77
AK
1383 (build-system emacs-build-system)
1384 (propagated-inputs
1385 `(("dash" ,emacs-dash)))
1386 (home-page "https://github.com/alezost/bui.el")
1387 (synopsis "Buffer interface library for Emacs")
1388 (description
1389 "BUI (Buffer User Interface) is a library for making @code{list} and
1390@code{info} interfaces to display an arbitrary data of the same
1391type, for example: packages, buffers, files, etc.")
1392 (license license:gpl3+)))
1393
64e43c67
AK
1394(define-public emacs-guix
1395 (package
1396 (name "emacs-guix")
3fb8e281 1397 (version "0.3.2")
64e43c67
AK
1398 (source (origin
1399 (method url-fetch)
1400 (uri (string-append "https://github.com/alezost/guix.el"
1401 "/releases/download/v" version
1402 "/emacs-guix-" version ".tar.gz"))
1403 (sha256
1404 (base32
3fb8e281 1405 "0bffxlaq4w9yijl9prnfm26fisr2rd1whjg1yzvri1zl6zh9s0lk"))))
64e43c67
AK
1406 (build-system gnu-build-system)
1407 (arguments
1408 `(#:configure-flags
1409 (let ((guix (assoc-ref %build-inputs "guix"))
1410 (geiser (assoc-ref %build-inputs "geiser"))
1411 (dash (assoc-ref %build-inputs "dash"))
1412 (bui (assoc-ref %build-inputs "bui"))
1413 (magit-popup (assoc-ref %build-inputs "magit-popup"))
1414 (site-lisp "/share/emacs/site-lisp"))
1415 (list (string-append "--with-guix-site-dir="
ed9fb46b
LC
1416 (car (find-files (string-append guix
1417 "/share/guile/site")
1418 (lambda (file stat)
1419 (string-prefix?
1420 "2."
1421 (basename file)))
1422 #:directories? #t)))
3fb8e281
AK
1423 (string-append "--with-guix-site-ccache-dir="
1424 (car (find-files (string-append guix "/lib/guile")
1425 (lambda (file stat)
1426 (string-prefix?
1427 "2." (basename file)))
1428 #:directories? #t))
1429 "/site-ccache")
64e43c67
AK
1430 (string-append "--with-geiser-lispdir=" geiser site-lisp)
1431 (string-append "--with-dash-lispdir="
1432 dash site-lisp "/guix.d/dash-"
1433 ,(package-version emacs-dash))
1434 (string-append "--with-bui-lispdir="
1435 bui site-lisp "/guix.d/bui-"
1436 ,(package-version emacs-bui))
1437 (string-append "--with-popup-lispdir="
1438 magit-popup site-lisp "/guix.d/magit-popup-"
1439 ,(package-version emacs-magit-popup))))))
1440 (native-inputs
1441 `(("pkg-config" ,pkg-config)
1442 ("emacs" ,emacs-minimal)))
1443 (inputs
b4f8edb7 1444 `(("guile" ,guile-2.2)
64e43c67
AK
1445 ("guix" ,guix)))
1446 (propagated-inputs
1447 `(("geiser" ,geiser)
1448 ("dash" ,emacs-dash)
1449 ("bui" ,emacs-bui)
1450 ("magit-popup" ,emacs-magit-popup)))
78461856 1451 (home-page "https://alezost.github.io/guix.el/")
64e43c67
AK
1452 (synopsis "Emacs interface for GNU Guix")
1453 (description
b2f1f7b0
AK
1454 "Emacs-Guix provides a visual interface, tools and features for the GNU
1455Guix package manager. Particularly, it allows you to do various package
1456management tasks from Emacs. To begin with, run @code{M-x guix-about} or
1457@code{M-x guix-help} command.")
64e43c67
AK
1458 (license license:gpl3+)))
1459
d6e5de1e
RJ
1460(define-public emacs-d-mode
1461 (package
1462 (name "emacs-d-mode")
1463 (version "2.0.8")
1464 (source (origin
1465 (method url-fetch)
1466 (uri (string-append
1467 "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode/"
1468 "archive/" version ".tar.gz"))
1469 (sha256
1470 (base32
1471 "0knpgi55jm09282aqf8pv55zillpnpzf9f4sgm6gwsmvxf17xaw0"))))
1472 (build-system emacs-build-system)
1473 (propagated-inputs
1474 `(("emacs-undercover" ,emacs-undercover)))
1475 (home-page "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
1476 (synopsis "Emacs major mode for editing D code")
1477 (description "This package provides an Emacs major mode for highlighting
1478code written in the D programming language. This mode is currently known to
1479work with Emacs 24 and 25.")
1480 (license license:gpl2+)))
1481
7f7b38af
VD
1482(define-public emacs-keyfreq
1483 (package
1484 (name "emacs-keyfreq")
1485 (version "20160516.716")
1486 (source
1487 (origin
1488 (method url-fetch)
1489 (uri (string-append "http://melpa.org/packages/keyfreq-"
1490 version ".el"))
1491 (sha256
1492 (base32
1493 "008hd7d06qskc3mx0bbdgpgy2pwxr8185fzlyqf9qjg49y74p6g8"))))
1494 (build-system emacs-build-system)
1495 (home-page "https://github.com/dacap/keyfreq")
1496 (synopsis "Track Emacs command frequencies")
1497 (description "@code{emacs-keyfeq} tracks and shows how many times you used
1498a command.")
1499 (license license:gpl3+)))
1500
1075b437
DB
1501(define-public emacs-undo-tree
1502 (package
1503 (name "emacs-undo-tree")
1504 (version "0.6.4")
1505 (source (origin
1506 (method git-fetch)
1507 (uri (git-reference
1508 (url "http://dr-qubit.org/git/undo-tree.git")
1509 (commit "release/0.6.4")))
1510 (file-name (string-append name "-" version "-checkout"))
1511 (sha256
1512 (base32
1513 "0b6hnv6bq1g5np5q2yw9r9aj1cxpp14akm21br7vpb7wp01fv4b3"))))
1514 (build-system emacs-build-system)
1515 (home-page "http://www.dr-qubit.org/emacs.php")
1516 (synopsis "Treat undo history as a tree")
1517 (description "Tree-like interface to Emacs undo system, providing
1518graphical tree presentation of all previous states of buffer that
1519allows easily move between them.")
1520 (license license:gpl3+)))
1521
85777fe5
FB
1522(define-public emacs-s
1523 (package
1524 (name "emacs-s")
48e28c69 1525 (version "1.11.0")
85777fe5
FB
1526 (source (origin
1527 (method url-fetch)
1528 (uri (string-append
1529 "https://github.com/magnars/s.el/archive/"
1530 version ".tar.gz"))
1531 (file-name (string-append name "-" version ".tar.gz"))
1532 (sha256
1533 (base32
48e28c69 1534 "0krq5nz3llfx0vwdqn18pmq777ja0fac185w0h9qymppb1j1hvc2"))))
85777fe5
FB
1535 (build-system emacs-build-system)
1536 (arguments
1537 `(#:phases
1538 (modify-phases %standard-phases
1539 (add-before 'install 'check
1540 (lambda _
1541 (zero? (system* "./run-tests.sh")))))))
1542 (home-page "https://github.com/magnars/s.el")
a124bbd2 1543 (synopsis "Emacs string manipulation library")
85777fe5
FB
1544 (description "This package provides an Emacs library for manipulating
1545strings.")
1546 (license license:gpl3+)))
cf9ce01f 1547
070e1fe9
VD
1548(define-public emacs-symon
1549 (package
1550 (name "emacs-symon")
d71b758f 1551 (version "20160630")
070e1fe9
VD
1552 (source
1553 (origin
1554 (method url-fetch)
d71b758f
VD
1555 (uri (string-append "https://github.com/zk-phi/symon/archive/"
1556 version ".tar.gz"))
1557 (file-name (string-append name "-" version ".tar.gz"))
070e1fe9
VD
1558 (sha256
1559 (base32
d71b758f 1560 "0h4jcgdnq98wc9rj72nwyazq8498yg55jfljiij5qwbn1xf1g5zz"))))
070e1fe9 1561 (build-system emacs-build-system)
d71b758f 1562 (home-page "https://github.com/zk-phi/symon")
070e1fe9
VD
1563 (synopsis "Tiny graphical system monitor")
1564 (description
1565 "Tiny graphical system monitor for the Emacs minibuffer when idle.")
1566 (license license:gpl2+)))
1567
899bcad3 1568(define-public emacs-sx
1569 (package
1570 (name "emacs-sx")
1571 (version "0.4")
1572 (source (origin
1573 (method url-fetch)
1574 (uri (string-append "https://github.com/vermiculus/sx.el/"
1575 "archive/v" version ".tar.gz"))
1576 (file-name (string-append name "-" version ".tar.gz"))
1577 (sha256
1578 (base32
1579 "1w0xghfljqg31axcnv8gzlrd8pw25nji6idnrhflq0af9qh1dw03"))))
1580 (build-system emacs-build-system)
1581 (propagated-inputs
1582 `(("emacs-markdown-mode" ,emacs-markdown-mode)
1583 ("let-alist" ,let-alist)))
1584 (home-page "https://github.com/vermiculus/sx.el/")
1585 (synopsis "Emacs StackExchange client")
1586 (description
1587 "Emacs StackExchange client. Ask and answer questions on
1588Stack Overflow, Super User, and other StackExchange sites.")
1589 (license license:gpl3+)))
1590
cf9ce01f
FB
1591(define-public emacs-f
1592 (package
1593 (name "emacs-f")
ad5d899e 1594 (version "0.18.2")
cf9ce01f
FB
1595 (source (origin
1596 (method url-fetch)
1597 (uri (string-append
1598 "https://github.com/rejeep/f.el/archive/v"
1599 version ".tar.gz"))
1600 (file-name (string-append name "-" version ".tar.gz"))
1601 (sha256
1602 (base32
ad5d899e 1603 "1926shh2ymdsgz05c6q181mzzz1rci99ch568j151xi865jinyg5"))))
cf9ce01f
FB
1604 (build-system emacs-build-system)
1605 (propagated-inputs
1606 `(("emacs-s" ,emacs-s)
1607 ("emacs-dash" ,emacs-dash)))
7bf837fd 1608 (home-page "https://github.com/rejeep/f.el")
cf9ce01f
FB
1609 (synopsis "Emacs API for working with files and directories")
1610 (description "This package provides an Emacs library for working with
1611files and directories.")
1612 (license license:gpl3+)))
48dbeef7 1613
0916dc52
CB
1614(define-public emacs-git-gutter
1615 (package
1616 (name "emacs-git-gutter")
1617 (version "0.90")
1618 (source (origin
1619 (method url-fetch)
1620 (uri (string-append
1621 "https://github.com/syohex/" name "/archive/"
1622 version ".tar.gz"))
1623 (file-name (string-append name "-" version ".tar.gz"))
1624 (sha256
1625 (base32
1626 "1nmhvhpq1l56mj2yq3ag23rw3x4xgnsy8szp30s26l0yjnkhc4qg"))))
1627 (build-system emacs-build-system)
1628 (home-page "https://github.com/syohex/emacs-git-gutter")
1629 (synopsis "See and manage hunks of text in a version control system")
1630 (description
1631 "This package is an Emacs minor mode for displaying and interacting with
1632hunks of text managed in a version control system. Added modified and deleted
1633areas can be indicated with symbols on the edge of the buffer, and commands
1634can be used to move between and perform actions on these hunks.
1635
1636Git, Mercurial, Subversion and Bazaar are supported, and many parts of the
1637display and behaviour is easily customisable.")
1638 (license license:gpl3+)))
1639
0b35f11d
RW
1640(define-public emacs-git-timemachine
1641 (package
1642 (name "emacs-git-timemachine")
1643 (version "3.0")
1644 (source
1645 (origin
1646 (method url-fetch)
1647 (uri (string-append "https://github.com/pidu/git-timemachine/"
1648 "archive/" version ".tar.gz"))
1649 (file-name (string-append name "-" version ".tar.gz"))
1650 (sha256
1651 (base32
1652 "1l4g0r69wfrnjsywv03v4bpdd53byg6zdx6mzabfxyymss3kvisa"))))
1653 (build-system emacs-build-system)
1654 (home-page "https://github.com/pidu/git-timemachine")
1655 (synopsis "Step through historic versions of Git-controlled files")
1656 (description "This package enables you to step through historic versions
1657of files under Git version control from within Emacs.")
1658 (license license:gpl3+)))
1659
1c32830b
RW
1660(define-public emacs-el-mock
1661 (package
1662 (name "emacs-el-mock")
1663 (version "1.25.1")
1664 (source
1665 (origin
1666 (method url-fetch)
1667 (uri (string-append "https://github.com/rejeep/el-mock.el/"
1668 "archive/v" version ".tar.gz"))
1669 (file-name (string-append name "-" version ".tar.gz"))
1670 (sha256
1671 (base32
1672 "16xw94n58xxn3zvgyj72bmzs0k5lkvswjmzs79ws9n7rzdivb38b"))))
1673 (build-system emacs-build-system)
7bf837fd 1674 (home-page "https://github.com/rejeep/el-mock.el")
1c32830b
RW
1675 (synopsis "Tiny mock and stub framework in Emacs Lisp")
1676 (description
1677 "Emacs Lisp Mock is a library for mocking and stubbing using readable
1678syntax. Most commonly Emacs Lisp Mock is used in conjunction with Emacs Lisp
1679Expectations, but it can be used in other contexts.")
1680 (license license:gpl3+)))
1681
0c5d837c
RW
1682(define-public emacs-espuds
1683 (package
1684 (name "emacs-espuds")
1685 (version "0.3.3")
1686 (source
1687 (origin
1688 (method url-fetch)
1689 (uri (string-append "https://github.com/ecukes/espuds/"
1690 "archive/v" version ".tar.gz"))
1691 (file-name (string-append name "-" version ".tar.gz"))
1692 (sha256
1693 (base32
1694 "0xv551376pbmh735a3zjwc9z4qdx6ngj1vpq3xqjpn0a1rwjyn4k"))))
1695 (build-system emacs-build-system)
1696 (propagated-inputs
1697 `(("emacs-s" ,emacs-s)
1698 ("emacs-dash" ,emacs-dash)
1699 ("emacs-f" ,emacs-f)))
7bf837fd 1700 (home-page "https://github.com/ecukes/espuds")
0c5d837c
RW
1701 (synopsis "Common step definitions for Ecukes")
1702 (description "Espuds is a collection of the most commonly used step
1703definitions for testing with the Ecukes framework.")
1704 (license license:gpl3+)))
1705
8bebe734
CB
1706(define-public emacs-es-mode
1707 (package
1708 (name "emacs-es-mode")
1709 (version "4.2.0")
1710 (source (origin
1711 (method url-fetch)
1712 (uri (string-append
1713 "https://github.com/dakrone/es-mode/archive/"
1714 version ".tar.gz"))
1715 (file-name (string-append name "-" version ".tar.gz"))
1716 (sha256
1717 (base32
1718 "02as82clm553yss7jfjac888308zr1h2229cch4z1yij70j25c8y"))))
1719 (build-system emacs-build-system)
1720 (propagated-inputs
1721 ;; The version of org in Emacs 24.5 is not sufficient, and causes tables
1722 ;; to be rendered incorrectly
1723 `(("emacs-org" ,emacs-org)))
1724 (home-page "https://github.com/dakrone/es-mode")
1725 (synopsis "Major mode for editing Elasticsearch queries")
1726 (description "@code{es-mode} includes highlighting, completion and
1727indentation support for Elasticsearch queries. Also supported are
1728@code{es-mode} blocks in @code{org-mode}, for which the results of queries can
1729be processed through @code{jq}, or in the case of aggregations, can be
1730rendered in to a table. In addition, there is an @code{es-command-center}
1731mode, which displays information about Elasticsearch clusters.")
1732 (license license:gpl3+)))
1733
d0e43782
RW
1734(define-public emacs-expand-region
1735 (package
1736 (name "emacs-expand-region")
61c71171 1737 (version "0.11.0")
d0e43782
RW
1738 (source
1739 (origin
1740 (method url-fetch)
1741 (uri (string-append "https://github.com/magnars/expand-region.el"
1742 "/archive/" version ".tar.gz"))
1743 (file-name (string-append name "-" version ".tar.gz"))
1744 (sha256
1745 (base32
61c71171 1746 "08dy1f411sh9wwww53rjw80idcf3vpki6ba2arl4hl5jcw9651g0"))))
d0e43782
RW
1747 (build-system emacs-build-system)
1748 (home-page "https://github.com/magnars/expand-region.el")
1749 (synopsis "Increase selected region by semantic units")
1750 (description
1751 "Expand region increases the selected region by semantic units. Just
1752keep pressing the key until it selects what you want. There's also
1753@code{er/contract-region} if you expand too far.")
1754 (license license:gpl3+)))
1755
65568446
RW
1756(define-public emacs-fill-column-indicator
1757 (package
1758 (name "emacs-fill-column-indicator")
1759 (version "1.81")
1760 (source
1761 (origin
1762 (method url-fetch)
1763 (uri (string-append "https://github.com/alpaker/Fill-Column-Indicator"
1764 "/archive/v" version ".tar.gz"))
1765 (file-name (string-append name "-" version ".tar.gz"))
1766 (sha256
1767 (base32
1768 "1xwyqbjbbicmvhlb85vg4j5snwy1vd7rfk89ws4viws5ljkhhyg8"))))
1769 (build-system emacs-build-system)
1770 (home-page "https://www.emacswiki.org/emacs/FillColumnIndicator")
1771 (synopsis "Graphically indicate the fill column")
1772 (description
1773 "Fill-column-indicator graphically indicates the location of the fill
1774column by drawing a thin line down the length of the editing window.")
1775 (license license:gpl3+)))
1776
f450d3c5
CB
1777(define-public emacs-inf-ruby
1778 (package
1779 (name "emacs-inf-ruby")
1780 (version "2.5.1")
1781 (source
1782 (origin
1783 (method url-fetch)
1784 (uri (string-append "https://github.com/nonsequitur/inf-ruby/"
1785 "archive/" version ".tar.gz"))
1786 (file-name (string-append name "-" version ".tar.gz"))
1787 (sha256
1788 (base32
1789 "0m7323k649ckxql1grsdnf71bjhys7l4qb8wbpphb1mr1q8i4066"))))
1790 (build-system emacs-build-system)
1791 (home-page "https://github.com/nonsequitur/inf-ruby")
1792 (synopsis "Provides a REPL buffer connected to a Ruby subprocess in Emacs")
1793 (description
1794 "@code{inf-ruby} provides a Read Eval Print Loop (REPL) buffer, allowing
1795for easy interaction with a ruby subprocess. Features include support for
1796detecting specific uses of Ruby, e.g. when using rails, and using a
1797appropriate console.")
1798 (license license:gpl3+)))
1799
7b9769b0
RW
1800(define-public emacs-znc
1801 (package
1802 (name "emacs-znc")
1803 (version "0.0.2")
1804 (source
1805 (origin
1806 (method url-fetch)
1807 (uri (string-append "https://marmalade-repo.org/packages/znc-"
1808 version ".el"))
1809 (sha256
1810 (base32
1811 "1d8lqvybgyazin5z0g1c4l3rg1vzrrvf0saqs53jr1zcdg0lianh"))))
1812 (build-system emacs-build-system)
1813 (home-page "https://github.com/sshirokov/ZNC.el")
1814 (synopsis "Make ERC and ZNC get along better")
1815 (description
1816 "This is a thin wrapper around @code{erc} that enables one to use the ZNC
1817IRC bouncer with ERC.")
1818 (license license:expat)))
1819
1f9a7097
RW
1820(define-public emacs-shut-up
1821 (package
1822 (name "emacs-shut-up")
1823 (version "0.3.2")
1824 (source
1825 (origin
1826 (method url-fetch)
1827 (uri (string-append "https://github.com/cask/shut-up/"
1828 "archive/v" version ".tar.gz"))
1829 (file-name (string-append name "-" version ".tar.gz"))
1830 (sha256
1831 (base32
1832 "09kzrjdkb569iviyg7ydwq44yh84m3f9hkl7jizfrlk0w4gz67d1"))))
1833 (build-system emacs-build-system)
1834 (home-page "https://github.com/cask/shut-up")
1835 (synopsis "Silence Emacs")
1836 (description "This package silences most output of Emacs when running an
1837Emacs shell script.")
1838 (license license:expat)))
1839
dbe38a3a
RW
1840(define-public emacs-undercover
1841 (package
1842 (name "emacs-undercover")
1843 (version "0.6.0")
1844 (source
1845 (origin
1846 (method url-fetch)
1847 (uri (string-append "https://github.com/sviridov/undercover.el/"
1848 "archive/v" version ".tar.gz"))
1849 (file-name (string-append name "-" version ".tar.gz"))
1850 (sha256
1851 (base32
1852 "0f48fi0xnbsqs382rgh85m9mq1wdnr0yib7as9xhwzvq0hsr5m0a"))))
1853 (build-system emacs-build-system)
1854 (propagated-inputs
1855 `(("emacs-dash" ,emacs-dash)
1856 ("emacs-shut-up" ,emacs-shut-up)))
1857 (home-page "https://github.com/sviridov/undercover.el")
1858 (synopsis "Test coverage library for Emacs Lisp")
1859 (description
1860 "Undercover is a test coverage library for software written in Emacs
1861Lisp.")
1862 (license license:expat)))
1863
07046e5f
RW
1864(define-public emacs-paren-face
1865 (package
1866 (name "emacs-paren-face")
1867 (version "1.0.0")
1868 (source
1869 (origin
1870 (method url-fetch)
1871 (uri (string-append "https://github.com/tarsius/paren-face/archive/"
1872 version ".tar.gz"))
1873 (file-name (string-append name "-" version ".tar.gz"))
1874 (sha256
1875 (base32
1876 "0y4qrhxa9332vsvr999jg7qj1ymnfgwpf591yi4a4jgg90pm7qnn"))))
1877 (build-system emacs-build-system)
7bf837fd 1878 (home-page "https://github.com/tarsius/paren-face")
07046e5f
RW
1879 (synopsis "Face for parentheses in lisp modes")
1880 (description
1881 "This library defines a face named @code{parenthesis} used just for
1882parentheses. The intended purpose of this face is to make parentheses less
1883visible in Lisp code by dimming them. Lispers probably don't need to be
1884constantly made aware of the existence of the parentheses. Dimming them might
1885be even more useful for people new to lisp who have not yet learned to
1886subconsciously blend out the parentheses.")
1887 (license license:gpl3+)))
1888
a46e3c0d
RW
1889(define-public emacs-page-break-lines
1890 (package
1891 (name "emacs-page-break-lines")
1892 (version "0.11")
1893 (source
1894 (origin
1895 (method url-fetch)
1896 (uri (string-append "https://github.com/purcell/page-break-lines/"
1897 "archive/" version ".tar.gz"))
1898 (file-name (string-append name "-" version ".tar.gz"))
1899 (sha256
1900 (base32
1901 "1zzhziq5kbrm9rxk30kx2glz455fp1blqxg8cpcf6l8xl3w8z4pg"))))
1902 (build-system emacs-build-system)
1903 (home-page "https://github.com/purcell/page-break-lines")
1904 (synopsis "Display page breaks as tidy horizontal lines")
1905 (description
1906 "This library provides a global mode which displays form feed characters
1907as horizontal rules.")
1908 (license license:gpl3+)))
1909
1f8a951b
RW
1910(define-public emacs-simple-httpd
1911 (package
1912 (name "emacs-simple-httpd")
1913 (version "1.4.6")
1914 (source
1915 (origin
1916 (method url-fetch)
1917 (uri (string-append "https://github.com/skeeto/emacs-web-server/"
1918 "archive/" version ".tar.gz"))
1919 (file-name (string-append name "-" version ".tar.gz"))
1920 (sha256
1921 (base32
1922 "01r7h3imnj4qx1m53a2wjafvbylcyz5f9r2rg2cs7ky3chlg220r"))))
1923 (build-system emacs-build-system)
1924 (home-page "https://github.com/skeeto/emacs-http-server")
1925 (synopsis "HTTP server in pure Emacs Lisp")
1926 (description
1927 "This package provides a simple HTTP server written in Emacs Lisp to
1928serve files and directory listings.")
1929 (license license:unlicense)))
1930
6c04acaa
RW
1931(define-public emacs-skewer-mode
1932 (package
1933 (name "emacs-skewer-mode")
1934 (version "1.6.2")
1935 (source
1936 (origin
1937 (method url-fetch)
1938 (uri (string-append "https://github.com/skeeto/skewer-mode/archive/"
1939 version ".tar.gz"))
1940 (file-name (string-append name "-" version ".tar.gz"))
1941 (sha256
1942 (base32
1943 "07jpz374j0j964szy3zznrkyja2kpdl3xa87wh7349mzxivqxdx0"))))
1944 (build-system emacs-build-system)
1945 (propagated-inputs
1946 `(("emacs-simple-httpd" ,emacs-simple-httpd)
1947 ("emacs-js2-mode" ,emacs-js2-mode)))
1948 (home-page "https://github.com/skeeto/skewer-mode")
1949 (synopsis "Live web development in Emacs")
1950 (description
1951 "Skewer-mode provides live interaction with JavaScript, CSS, and HTML in
1952a web browser. Expressions are sent on-the-fly from an editing buffer to be
1953evaluated in the browser, just like Emacs does with an inferior Lisp process
1954in Lisp modes.")
1955 (license license:unlicense)))
1956
ce9701fb
RW
1957(define-public emacs-stripe-buffer
1958 (package
1959 (name "emacs-stripe-buffer")
1960 (version "0.2.5")
1961 (source
1962 (origin
1963 (method url-fetch)
1964 (uri (string-append "https://github.com/sabof/stripe-buffer/"
1965 "archive/" version ".tar.gz"))
1966 (file-name (string-append name "-" version ".tar.gz"))
1967 (sha256
1968 (base32
1969 "1p515dq7raly5hw94kiwm3vzsfih0d8af622q4ipvvljsm98aiik"))))
1970 (build-system emacs-build-system)
1971 (home-page "https://github.com/sabof/stripe-buffer/")
1972 (synopsis "Add stripes to list buffers")
1973 (description
1974 "This Emacs package adds faces to add stripes to list buffers and org
1975tables.")
1976 (license license:gpl2+)))
1977
8d810163
RW
1978(define-public emacs-rich-minority
1979 (package
1980 (name "emacs-rich-minority")
1981 (version "1.0.1")
1982 (source
1983 (origin
1984 (method url-fetch)
1985 (uri (string-append "https://github.com/Malabarba/rich-minority/"
1986 "archive/" version ".tar.gz"))
1987 (file-name (string-append name "-" version ".tar.gz"))
1988 (sha256
1989 (base32
1990 "1l0cb0q7kyi88nwfqd542psnkgwnjklpzc5rx32gzd3lkwkrbr8v"))))
1991 (build-system emacs-build-system)
1992 (home-page "https://github.com/Malabarba/rich-minority")
1993 (synopsis "Clean-up and beautify the list of minor modes")
1994 (description
1995 "This Emacs package hides and/or highlights minor modes in the
1996mode-line.")
1997 (license license:gpl2+)))
1998
b33f913d
RW
1999(define-public emacs-smart-mode-line
2000 (package
2001 (name "emacs-smart-mode-line")
2002 (version "2.10.1")
2003 (source
2004 (origin
2005 (method url-fetch)
2006 (uri (string-append "https://github.com/Malabarba/smart-mode-line/"
2007 "archive/" version ".tar.gz"))
2008 (file-name (string-append name "-" version ".tar.gz"))
2009 (sha256
2010 (base32
2011 "0i9wajabrrsjzwd842q0m2611kf0q31p9hg1pdj81177gynkw8l8"))))
2012 (build-system emacs-build-system)
2013 (propagated-inputs
2014 `(("emacs-rich-minority" ,emacs-rich-minority)))
7bf837fd 2015 (home-page "https://github.com/Malabarba/smart-mode-line")
66e07664 2016 (synopsis "Color-coded smart mode-line")
b33f913d
RW
2017 (description
2018 "Smart Mode Line is a mode-line theme for Emacs. It aims to be easy to
2019read from small to large monitors by using colors, a prefix feature, and smart
2020truncation.")
2021 (license license:gpl2+)))
2022
3bcb304e
RW
2023(define-public emacs-shell-switcher
2024 (package
2025 (name "emacs-shell-switcher")
2026 (version "1.0.1")
2027 (source
2028 (origin
2029 (method url-fetch)
2030 (uri (string-append "https://github.com/DamienCassou/shell-switcher"
2031 "/archive/v" version ".tar.gz"))
2032 (file-name (string-append name "-" version ".tar.gz"))
2033 (sha256
2034 (base32
2035 "1c23mfkdqz2g9rixd9smm323vzlvhzz3ng34ambcqjfq309qb2nz"))))
2036 (build-system emacs-build-system)
2037 (home-page "https://github.com/DamienCassou/shell-switcher")
2038 (synopsis "Provide fast switching between shell buffers")
2039 (description
2040 "This package provides commands to quickly switch between shell buffers.")
2041 (license license:gpl3+)))
2042
48dbeef7
FB
2043(define-public emacs-ob-ipython
2044 (package
2045 (name "emacs-ob-ipython")
2046 (version "20150704.8807064693")
2047 (source (origin
2048 (method git-fetch)
2049 (uri (git-reference
698bd297 2050 (commit "880706469338ab59b5bb7dbe8460016f89755364")
48dbeef7
FB
2051 (url "https://github.com/gregsexton/ob-ipython.git")))
2052 (sha256
2053 (base32
2054 "1scf25snbds9ymagpny30ijbsg479r3nm0ih01dy4m9d0g7qryb7"))))
2055 (build-system emacs-build-system)
2056 (propagated-inputs
2057 `(("emacs-f" ,emacs-f)))
2058 (home-page "http://www.gregsexton.org")
2059 (synopsis "Org-Babel functions for IPython evaluation")
2060 (description "This package adds support to Org-Babel for evaluating Python
2061source code using IPython.")
2062 (license license:gpl3+)))
6fd66b6c
LC
2063
2064(define-public emacs-debbugs
2065 (package
2066 (name "emacs-debbugs")
b0dd3436 2067 (version "0.14")
6fd66b6c
LC
2068 (source (origin
2069 (method url-fetch)
f32ffa04 2070 (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
6fd66b6c
LC
2071 version ".tar"))
2072 (sha256
2073 (base32
b0dd3436 2074 "07wgcvg038l88gxvjr0gjpjhyk743w22x1rqghz3gkmif0g70say"))))
6fd66b6c 2075 (build-system emacs-build-system)
91762db6 2076 (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
32e16112
AK
2077 (propagated-inputs
2078 `(("emacs-async" ,emacs-async)))
f32ffa04 2079 (home-page "https://elpa.gnu.org/packages/debbugs.html")
6fd66b6c
LC
2080 (synopsis "Access the Debbugs bug tracker in Emacs")
2081 (description
2082 "This package lets you access the @uref{http://bugs.gnu.org,GNU Bug
2083Tracker} from within Emacs.
2084
2085For instance, it defines the command @code{M-x debbugs-gnu} for listing bugs,
2086and the command @code{M-x debbugs-gnu-search} for bug searching. If you
2087prefer the listing of bugs as TODO items of @code{org-mode}, you could use
2088@code{M-x debbugs-org} and related commands.
2089
2090A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug
2091Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.")
2092 (license license:gpl3+)))
3ffe36f5
LC
2093
2094(define-public emacs-deferred
2095 (package
2096 (name "emacs-deferred")
2097 (version "0.3.2")
2098 (home-page "https://github.com/kiwanami/emacs-deferred")
2099 (source (origin
2100 (method git-fetch)
2101 (uri (git-reference
2102 (url home-page)
2103 (commit (string-append "v" version))))
2104 (sha256
2105 (base32
2106 "0059jy01ni5irpgrj9fa81ayd9j25nvmjjm79ms3210ysx4pgqdr"))
2107 (file-name (string-append name "-" version))))
2108 (build-system emacs-build-system)
2109 ;; FIXME: Would need 'el-expectations' to actually run tests.
2110 (synopsis "Simple asynchronous functions for Emacs Lisp")
2111 (description
2112 "The @code{deferred.el} library provides support for asynchronous tasks.
2113The API is almost the same as that of
2114@uref{https://github.com/cho45/jsdeferred, JSDeferred}, a JavaScript library
2115for asynchronous tasks.")
2116 (license license:gpl3+)))
d001bb5a
LC
2117
2118(define-public butler
2119 (package
2120 (name "emacs-butler")
2121 (version "0.2.4")
2122 (home-page "https://github.com/AshtonKem/Butler")
2123 (source (origin
2124 (method git-fetch)
2125 (uri (git-reference
2126 (url home-page)
2127 (commit version)))
2128 (sha256
2129 (base32
2130 "1pii9dw4skq7nr4na6qxqasl36av8cwjp71bf1fgppqpcd9z8skj"))
2131 (file-name (string-append name "-" version))))
2132 (build-system emacs-build-system)
2133 (propagated-inputs
2134 `(("emacs-deferred" ,emacs-deferred)))
2135 (synopsis "Emacs client for Jenkins")
2136 (description
2137 "Butler provides an interface to connect to Jenkins continuous
2138integration servers. Users can specify a list of server in the
2139@code{butler-server-list} variable and then use @code{M-x butler-status} to
2140view the build status of those servers' build jobs, and possibly to trigger
2141build jobs.")
2142 (license license:gpl3+)))
2d1db448 2143
d1dbeddd
RW
2144(define-public emacs-company
2145 (package
2146 (name "emacs-company")
1262a2ab 2147 (version "0.9.3")
d1dbeddd
RW
2148 (source
2149 (origin
2150 (method url-fetch)
2151 (uri (string-append "https://github.com/company-mode/company-mode/archive/"
2152 version ".tar.gz"))
2153 (file-name (string-append name "-" version ".tar.gz"))
2154 (sha256
2155 (base32
1262a2ab 2156 "1fyrpchpdmvszssy1qmsw41aqpv6q5rybvs1bw00nv9xdhiaq4vh"))))
d1dbeddd 2157 (build-system emacs-build-system)
4e644ab8
AI
2158 (arguments
2159 `(#:phases
2160 (modify-phases %standard-phases
2161 (add-before 'install 'check
2162 (lambda _
2163 ;; The company-files-candidates-normal-root test looks
2164 ;; for the /bin directory, but the build environment has
2165 ;; no /bin directory. Modify the test to look for the
2166 ;; /tmp directory.
2167 (substitute* "test/files-tests.el"
2168 (("/bin/") "/tmp/"))
2169 (zero? (system* "make" "test-batch")))))))
d1dbeddd
RW
2170 (home-page "http://company-mode.github.io/")
2171 (synopsis "Modular text completion framework")
2172 (description
2173 "Company is a modular completion mechanism. Modules for retrieving
2174completion candidates are called back-ends, modules for displaying them are
2175front-ends. Company comes with many back-ends, e.g. @code{company-elisp}.
2176These are distributed in separate files and can be used individually.")
2177 (license license:gpl3+)))
2178
7c438099
RW
2179(define-public emacs-multiple-cursors
2180 (package
2181 (name "emacs-multiple-cursors")
2182 (version "1.4.0")
2183 (source
2184 (origin
2185 (method url-fetch)
2186 (uri (string-append "https://github.com/magnars/multiple-cursors.el/"
2187 "archive/" version ".tar.gz"))
2188 (file-name (string-append name "-" version ".tar.gz"))
2189 (sha256
2190 (base32
2191 "0hihihlvcvzayg5fnqzcg45fhvlmq6xlq58syy00rjwbry9w389k"))))
2192 (build-system emacs-build-system)
2193 (home-page "https://github.com/magnars/multiple-cursors.el")
2194 (synopsis "Multiple cursors for Emacs")
2195 (description
2196 "This package adds support to Emacs for editing text with multiple
2197simultaneous cursors.")
2198 (license license:gpl3+)))
2199
2d1db448
LC
2200(define-public typo
2201 (package
2202 (name "emacs-typo")
2203 (version "1.1")
2204 (home-page "https://github.com/jorgenschaefer/typoel")
2205 (source (origin
2206 (method git-fetch)
2207 (uri (git-reference
2208 (url home-page)
2209 (commit (string-append "v" version))))
2210 (sha256
2211 (base32
2212 "1jhd4grch5iz12gyxwfbsgh4dmz5hj4bg4gnvphccg8dsnni05k2"))
2213 (file-name (string-append name "-" version))))
2214 (build-system emacs-build-system)
2215 (synopsis "Minor mode for typographic editing")
2216 (description
2217 "This package provides two Emacs modes, @code{typo-mode} and
2218@code{typo-global-mode}. These modes automatically insert Unicode characters
2219for quotation marks, dashes, and ellipses. For example, typing @kbd{\"}
2220automatically inserts a Unicode opening or closing quotation mark, depending
2221on context.")
2222 (license license:gpl3+)))
e037a09f
FB
2223
2224(define-public emacs-scheme-complete
2225 (let ((commit "9b5cf224bf2a5994bc6d5b152ff487517f1a9bb5"))
2226 (package
2227 (name "emacs-scheme-complete")
2228 (version (string-append "20151223." (string-take commit 8)))
2229 (source
2230 (origin
2231 (file-name (string-append name "-" version))
2232 (method git-fetch)
2233 (uri (git-reference
2234 (url "https://github.com/ashinn/scheme-complete.git")
2235 (commit commit)))
2236 (sha256
2237 (base32
2238 "141wn9l0m33w0g3dqmx8nxbfdny1r5xbr6ak61rsz21bk0qafs7x"))
2239 (patches
fc1adab1 2240 (search-patches "emacs-scheme-complete-scheme-r5rs-info.patch"))))
e037a09f
FB
2241 (build-system emacs-build-system)
2242 (home-page "https://github.com/ashinn/scheme-complete")
2243 (synopsis "Smart tab completion for Scheme in Emacs")
2244 (description
2245 "This file provides a single function, @code{scheme-smart-complete},
2246which you can use for intelligent, context-sensitive completion for any Scheme
2247implementation in Emacs. To use it just load this file and bind that function
2248to a key in your preferred mode.")
2249 (license license:public-domain))))
58a7dc13
FB
2250
2251(define-public emacs-mit-scheme-doc
2252 (package
2253 (name "emacs-mit-scheme-doc")
2254 (version "20140203")
2255 (source
2256 (origin
2257 (modules '((guix build utils)))
2258 (snippet
2259 ;; keep only file of interest
2260 '(begin
2261 (for-each delete-file '("dot-emacs.el" "Makefile"))
f3860753 2262 (install-file "6.945-config/mit-scheme-doc.el" ".")
58a7dc13
FB
2263 (delete-file-recursively "6.945-config")))
2264 (file-name (string-append name "-" version ".tar.bz2"))
2265 (method url-fetch)
2266 (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/"
2267 "6.945/dont-panic/emacs-basic-config.tar.bz2"))
2268 (sha256
2269 (base32
2270 "0dqidg2bd66pawqfarvwca93w5gqf9mikn1k2a2rmd9ymfjpziq1"))))
2271 (build-system emacs-build-system)
2272 (inputs `(("mit-scheme" ,mit-scheme)))
2273 (arguments
2274 `(#:phases
2275 (modify-phases %standard-phases
2276 (add-after 'unpack 'configure-doc
2277 (lambda* (#:key inputs #:allow-other-keys)
2278 (let* ((mit-scheme-dir (assoc-ref inputs "mit-scheme"))
2279 (doc-dir (string-append mit-scheme-dir "/share/doc/"
2280 "mit-scheme-"
2281 ,(package-version mit-scheme))))
2282 (substitute* "mit-scheme-doc.el"
2283 (("http://www\\.gnu\\.org/software/mit-scheme/documentation/mit-scheme-ref/")
2284 (string-append "file:" doc-dir "/mit-scheme-ref/")))))))))
2285 (home-page "http://groups.csail.mit.edu/mac/users/gjs/6.945/dont-panic/")
2286 (synopsis "MIT-Scheme documentation lookup for Emacs")
2287 (description
2288 "This package provides a set of Emacs functions to search definitions of
2289identifiers in the MIT-Scheme documentation.")
2290 (license license:gpl2+)))
e5045f30 2291
e5045f30
FB
2292(define-public emacs-constants
2293 (package
2294 (name "emacs-constants")
f99f3f24 2295 (version "2.6")
a9e41d2f 2296 (home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
e5045f30
FB
2297 (source
2298 (origin
37dbfc50 2299 (file-name (string-append name "-" version ".tar.gz"))
f99f3f24
FB
2300 (method url-fetch)
2301 (uri (string-append "https://github.com/fedeinthemix/emacs-constants"
2302 "/archive/v" version ".tar.gz"))
e5045f30
FB
2303 (sha256
2304 (base32
f99f3f24 2305 "0pnrpmmxq8mh5h2hbrp5vcym0j0fh6dv3s7c5ccn18wllhzg9g7n"))))
e5045f30 2306 (build-system emacs-build-system)
e5045f30
FB
2307 (synopsis "Enter definition of constants into an Emacs buffer")
2308 (description
2309 "This package provides functions for inserting the definition of natural
2310constants and units into an Emacs buffer.")
2311 (license license:gpl2+)))
85960693 2312
e203221f
RW
2313(define-public emacs-tagedit
2314 (package
2315 (name "emacs-tagedit")
2316 (version "1.4.0")
2317 (source
2318 (origin
2319 (method url-fetch)
2320 (uri (string-append "https://github.com/magnars/tagedit/"
2321 "archive/" version ".tar.gz"))
2322 (file-name (string-append name "-" version ".tar.gz"))
2323 (sha256
2324 (base32
2325 "1apfnann4qklfdsmdi7icjsj18x7gwx8d83iqr4z25clszz95xfq"))))
2326 (build-system emacs-build-system)
2327 (propagated-inputs
2328 `(("emacs-s" ,emacs-s)
2329 ("emacs-dash" ,emacs-dash)))
2330 (home-page "https://github.com/magnars/tagedit")
2331 (synopsis "Some paredit-like features for html-mode")
2332 (description
2333 "This package provides a collection of paredit-like functions for editing
2334in @code{html-mode}.")
2335 (license license:gpl3+)))
2336
85960693
FB
2337(define-public emacs-slime
2338 (package
2339 (name "emacs-slime")
b6bd9a79 2340 (version "2.19")
85960693
FB
2341 (source
2342 (origin
2343 (file-name (string-append name "-" version ".tar.gz"))
2344 (method url-fetch)
2345 (uri (string-append
2346 "https://github.com/slime/slime/archive/v"
2347 version ".tar.gz"))
2348 (sha256
2349 (base32
b6bd9a79 2350 "1jhaq5cn89k45nzyl0jd12gmjxnh1bq9jlfwrxba342agxsscb0p"))))
85960693
FB
2351 (build-system emacs-build-system)
2352 (native-inputs
2353 `(("texinfo" ,texinfo)))
2354 (arguments
e8cefe11
AI
2355 `(#:include '("\\.el$" "\\.lisp$" "\\.asd$" "contrib")
2356 #:exclude '("^slime-tests.el" "^contrib/test/"
2357 "^contrib/Makefile$" "^contrib/README.md$")
2358 #:phases
85960693
FB
2359 (modify-phases %standard-phases
2360 (add-before 'install 'configure
2361 (lambda* _
2362 (emacs-substitute-variables "slime.el"
2363 ("inferior-lisp-program" "sbcl"))
2364 #t))
2365 (add-before 'install 'install-doc
2366 (lambda* (#:key outputs #:allow-other-keys)
2367 (let* ((out (assoc-ref outputs "out"))
2368 (info-dir (string-append out "/share/info"))
2369 (doc-dir (string-append out "/share/doc/"
2370 ,name "-" ,version))
2371 (doc-files '("doc/slime-refcard.pdf"
2372 "README.md" "NEWS" "PROBLEMS"
2373 "CONTRIBUTING.md")))
2374 (with-directory-excursion "doc"
2375 (substitute* "Makefile"
2376 (("infodir=/usr/local/info")
2377 (string-append "infodir=" info-dir)))
2378 (system* "make" "html/index.html")
2379 (system* "make" "slime.info")
2380 (install-file "slime.info" info-dir)
2381 (copy-recursively "html" (string-append doc-dir "/html")))
2382 (for-each (lambda (f)
2383 (install-file f doc-dir)
2384 (delete-file f))
2385 doc-files)
2386 (delete-file-recursively "doc")
2387 #t))))))
2388 (home-page "https://github.com/slime/slime")
2389 (synopsis "Superior Lisp Interaction Mode for Emacs")
2390 (description
2391 "SLIME extends Emacs with support for interactive programming in
2392Common Lisp. The features are centered around @{slime-mode}, an Emacs
2393minor mode that complements the standard @{lisp-mode}. While lisp-mode
2394supports editing Lisp source files, @{slime-mode} adds support for
2395interacting with a running Common Lisp process for compilation,
2396debugging, documentation lookup, and so on.")
2397 (license license:gpl2+)))
e11d14fe 2398
2399(define-public emacs-popup
2400 (package
2401 (name "emacs-popup")
2402 (version "0.5.3")
2403 (source (origin
2404 (method url-fetch)
2405 (uri (string-append
2406 "https://github.com/auto-complete/popup-el/archive/v"
2407 version ".tar.gz"))
2408 (file-name (string-append name "-" version ".tar.gz"))
2409 (sha256
2410 (base32
2411 "1yrgfj8y69xmcb6kwgplhq68ndm9410qwh7sd2knnd1gchpphdc0"))))
2412 (build-system emacs-build-system)
e11d14fe 2413 (home-page "https://github.com/auto-complete/popup-el")
2414 (synopsis "Visual Popup User Interface for Emacs")
2415 (description
2416 "Popup.el is a visual popup user interface library for Emacs.
2417This provides a basic API and common UI widgets such as popup tooltips
2418and popup menus.")
2419 (license license:gpl3+)))
48766ea8
RW
2420
2421(define-public emacs-god-mode
2422 (let ((commit "6cf0807b6555eb6fcf8387a4e3b667071ef38964")
2423 (revision "1"))
2424 (package
2425 (name "emacs-god-mode")
2426 (version (string-append "20151005.925."
2427 revision "-" (string-take commit 9)))
2428 (source
2429 (origin
2430 (method git-fetch)
2431 (uri (git-reference
2432 (url "https://github.com/chrisdone/god-mode.git")
2433 (commit commit)))
2434 (file-name (string-append name "-" version "-checkout"))
2435 (sha256
2436 (base32
2437 "1am415k4xxcva6y3vbvyvknzc6bma49pq3p85zmpjsdmsp18qdix"))))
2438 (build-system emacs-build-system)
2439 (home-page "https://github.com/chrisdone/god-mode")
2440 (synopsis "Minor mode for entering commands without modifier keys")
2441 (description
2442 "This package provides a global minor mode for entering Emacs commands
2443without modifier keys. It's similar to Vim's separation of commands and
2444insertion mode. When enabled all keys are implicitly prefixed with
2445@samp{C-} (among other helpful shortcuts).")
2446 (license license:gpl3+))))
4670f70a
CM
2447
2448(define-public emacs-rfcview
2449 (package
2450 (name "emacs-rfcview")
2451 (version "0.13")
2452 (home-page "http://www.loveshack.ukfsn.org/emacs")
2453 (source (origin
02736daa 2454 (method url-fetch)
4670f70a
CM
2455 (uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el")
2456 (sha256
2457 (base32
2458 "0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz"))))
2459 (build-system emacs-build-system)
4670f70a
CM
2460 (synopsis "Prettify Request for Comments (RFC) documents")
2461 (description "The Internet Engineering Task Force (IETF) and the Internet
2462Society (ISOC) publish various Internet-related protocols and specifications
2463as \"Request for Comments\" (RFC) documents and Internet Standard (STD)
2464documents. RFCs and STDs are published in a simple text form. This package
2465provides an Emacs major mode, rfcview-mode, which makes it more pleasant to
2466read these documents in Emacs. It prettifies the text and adds
2467hyperlinks/menus for easier navigation. It also provides functions for
2468browsing the index of RFC documents and fetching them from remote servers or
2469local directories.")
2470 (license license:gpl3+)))
2471
9e9c71eb
CM
2472(define-public emacs-ffap-rfc-space
2473 (package
2474 (name "emacs-ffap-rfc-space")
2475 (version "12")
2476 (home-page "http://user42.tuxfamily.org/ffap-rfc-space/index.html")
2477 (source (origin
02736daa 2478 (method url-fetch)
9e9c71eb
CM
2479 (uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el")
2480 (sha256
2481 (base32
2482 "1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck"))))
2483 (build-system emacs-build-system)
9e9c71eb
CM
2484 (synopsis "Make ffap recognize an RFC with a space before its number")
2485 (description "The Internet Engineering Task Force (IETF) and the
2486Internet Society (ISOC) publish various Internet-related protocols and
2487specifications as \"Request for Comments\" (RFC) documents. The
2488built-in Emacs module \"ffap\" (Find File at Point) has the ability to
2489recognize names at point which look like \"RFC1234\" and \"RFC-1234\"
2490and load the appropriate RFC from a remote server. However, it fails
2491to recognize a name like \"RFC 1234\". This package enhances ffap so
2492that it correctly finds RFCs even when a space appears before the
2493number.")
2494 (license license:gpl3+)))
9576cc72 2495
db1a4960
RW
2496(define-public emacs-org-bullets
2497 (package
2498 (name "emacs-org-bullets")
2499 (version "0.2.4")
2500 (source
2501 (origin
2502 (method url-fetch)
2503 (uri (string-append "https://github.com/sabof/org-bullets/archive/"
2504 version ".tar.gz"))
2505 (file-name (string-append name "-" version ".tar.gz"))
2506 (sha256
2507 (base32
2508 "1dyxvpb73vj80v8br2q9rf255hfphrgaw91fbvwdcd735np9pcnh"))))
2509 (build-system emacs-build-system)
2510 (home-page "https://github.com/sabof/org-bullets")
2511 (synopsis "Show bullets in org-mode as UTF-8 characters")
2512 (description
2513 "This package provides an Emacs minor mode causing bullets in
2514@code{org-mode} to be rendered as UTF-8 characters.")
2515 (license license:gpl3+)))
b1679379
OP
2516
2517(define-public emacs-org-pomodoro
2518 (package
2519 (name "emacs-org-pomodoro")
2520 (version "2.1.0")
2521 (source
2522 (origin
2523 (method url-fetch)
2524 (uri (string-append
2525 "https://github.com/lolownia/org-pomodoro/archive/"
2526 version ".tar.gz"))
2527 (file-name (string-append name "-" version ".tar.gz"))
2528 (sha256
2529 (base32
2530 "1jalsggw3q5kvj353f84x4nl04a5vmq07h75ggppy1627lb31zm4"))))
2531 (build-system emacs-build-system)
2532 (propagated-inputs
2533 `(("emacs-alert" ,emacs-alert)))
2534 (home-page "https://github.com/lolownia/org-pomodoro")
2535 (synopsis "Pomodoro technique for org-mode")
2536 (description "@code{emacs-org-pomodoro} adds very basic support for
2537Pomodoro technique in Emacs org-mode.
2538
2539Run @code{M-x org-pomodoro} for the task at point or select one of the
2540last tasks that you clocked time for. Each clocked-in pomodoro starts
2541a timer of 25 minutes and after each pomodoro a break timer of 5
2542minutes is started automatically. Every 4 breaks a long break is
2543started with 20 minutes. All values are customizable.")
2544 (license license:gpl3+)))
db1a4960 2545
ed8bc028
RJ
2546(define-public emacs-org-trello
2547 (package
2548 (name "emacs-org-trello")
2549 (version "0.7.9")
2550 (source (origin
2551 (method url-fetch)
2552 (uri (string-append
2553 "https://github.com/org-trello/org-trello/archive/"
2554 version ".tar.gz"))
2555 (file-name (string-append name "-" version ".tar.gz"))
2556 (sha256
2557 (base32
2558 "074dka8g673bj1ck5vavbjaij5jyniygdlw51mdds005wd2br9wf"))))
2559 (build-system emacs-build-system)
2560 (propagated-inputs
2561 `(("emacs-deferred" ,emacs-deferred)
2562 ("emacs-request" ,emacs-request)
2563 ("emacs-dash" ,emacs-dash)
2564 ("emacs-s" ,emacs-s)))
2565 (home-page "https://org-trello.github.io")
2566 (synopsis "Emacs minor mode for interacting with Trello")
2567 (description "This package provides an Emacs minor mode to extend
2568@code{org-mode} with Trello abilities. Trello is an online project
2569organizer.")
2570 (license license:gpl3+)))
2571
9576cc72
AP
2572(define-public emacs-zenburn-theme
2573 (package
2574 (name "emacs-zenburn-theme")
07716c68 2575 (version "2.5")
9576cc72
AP
2576 (source (origin
2577 (method url-fetch)
2578 (uri (string-append
2579 "https://github.com/bbatsov/zenburn-emacs/archive/v"
2580 version ".tar.gz"))
2581 (file-name (string-append name "-" version ".tar.gz"))
2582 (sha256
2583 (base32
07716c68 2584 "03kfhzgbbbl8ivpzzky6qxw4j9mmp452m1sk7wikxmcalfnix0gn"))))
9576cc72 2585 (build-system emacs-build-system)
7bf837fd 2586 (home-page "https://github.com/bbatsov/zenburn-emacs")
9576cc72
AP
2587 (synopsis "Low contrast color theme for Emacs")
2588 (description
2589 "Zenburn theme is a port of the popular Vim Zenburn theme for Emacs.
2590It is built on top of the custom theme support in Emacs 24 or later.")
2591 (license license:gpl3+)))
2592
012c8b35
RW
2593(define-public emacs-solarized-theme
2594 (package
2595 (name "emacs-solarized-theme")
2596 (version "1.2.2")
2597 (source (origin
2598 (method url-fetch)
2599 (uri (string-append "https://github.com/bbatsov/solarized-emacs/"
2600 "archive/v" version ".tar.gz"))
2601 (file-name (string-append name "-" version ".tar.gz"))
2602 (sha256
2603 (base32
2604 "1ha3slc6d9wi9ilkhmwrzkvf308n6ph7b0k69pk369s9304awxzx"))))
2605 (build-system emacs-build-system)
2606 (propagated-inputs
090bdb9e 2607 `(("emacs-dash" ,emacs-dash)))
7bf837fd 2608 (home-page "https://github.com/bbatsov/solarized-emacs")
012c8b35
RW
2609 (synopsis "Port of the Solarized theme for Emacs")
2610 (description
2611 "Solarized for Emacs is a port of the Solarized theme for Vim. This
2612package provides a light and a dark variant.")
2613 (license license:gpl3+)))
2614
e7761186
AV
2615(define-public emacs-ahungry-theme
2616 (package
2617 (name "emacs-ahungry-theme")
70e7367d 2618 (version "1.4.0")
e7761186
AV
2619 (source
2620 (origin (method url-fetch)
f32ffa04 2621 (uri (string-append "https://elpa.gnu.org/packages/ahungry-theme-"
e7761186
AV
2622 version ".tar"))
2623 (sha256
2624 (base32
70e7367d 2625 "1n8k12mfn01f20j0pyd7ycj77x0y3a008xc94frklaaqjc0v26s4"))))
e7761186
AV
2626 (build-system emacs-build-system)
2627 (home-page "https://github.com/ahungry/color-theme-ahungry")
2628 (synopsis "Ahungry color theme for Emacs")
2629 (description "Ahungry theme for Emacs provides bright and bold colors.
2630If you load it from a terminal, you will be able to make use of the
2631transparent background. If you load it from a GUI, it will default to a
2632dark background.")
2633 (license license:gpl3+)))
2634
5c447e28
AP
2635(define-public emacs-smartparens
2636 (package
2637 (name "emacs-smartparens")
e0d4331a 2638 (version "1.10.1")
5c447e28
AP
2639 (source (origin
2640 (method url-fetch)
2641 (uri (string-append
2642 "https://github.com/Fuco1/smartparens/archive/"
2643 version ".tar.gz"))
2644 (file-name (string-append name "-" version ".tar.gz"))
2645 (sha256
2646 (base32
e0d4331a 2647 "1nwsi6fbbxjq3r22r6knmx71la3g0lmwfb95i9q4k138gn0m2l3i"))))
5c447e28
AP
2648 (build-system emacs-build-system)
2649 (propagated-inputs `(("emacs-dash" ,emacs-dash)))
2650 (home-page "https://github.com/Fuco1/smartparens")
2651 (synopsis "Paredit-like insertion, wrapping and navigation with user
2652defined pairs")
2653 (description
2654 "Smartparens is a minor mode for Emacs that deals with parens pairs
2655and tries to be smart about it. It started as a unification effort to
2656combine functionality of several existing packages in a single,
2657compatible and extensible way to deal with parentheses, delimiters, tags
2658and the like. Some of these packages include autopair, textmate,
2659wrap-region, electric-pair-mode, paredit and others. With the basic
2660features found in other packages it also brings many improvements as
2661well as completely new features.")
2662 (license license:gpl3+)))
8eeb301d 2663
8f82641a
RJ
2664(define-public emacs-hl-todo
2665 (package
2666 (name "emacs-hl-todo")
4e0d9fce 2667 (version "1.7.4")
8f82641a
RJ
2668 (source (origin
2669 (method url-fetch)
2670 (uri (string-append
2671 "https://raw.githubusercontent.com/tarsius/hl-todo/"
2672 version "/hl-todo.el"))
0e7c4089 2673 (file-name (string-append "hl-todo-" version ".el"))
8f82641a
RJ
2674 (sha256
2675 (base32
4e0d9fce 2676 "016ivl4s0ysrm1xbfi86j5xcs759fcb0mkspxw81x8mpi3yb46ya"))))
8f82641a
RJ
2677 (build-system emacs-build-system)
2678 (home-page "https://github.com/tarsius/hl-todo")
2679 (synopsis "Emacs mode to highlight TODO and similar keywords")
2680 (description
2681 "This package provides an Emacs mode to highlight TODO and similar
2682keywords in comments and strings. This package also provides commands for
2683moving to the next or previous keyword and to invoke @code{occur} with a
2684regexp that matches all known keywords.")
2685 (license license:gpl3+)))
2686
480f7350
RW
2687(define-public emacs-perspective
2688 (package
2689 (name "emacs-perspective")
2690 (version "1.12")
2691 (source
2692 (origin
2693 (method url-fetch)
2694 (uri (string-append "https://github.com/nex3/perspective-el/"
2695 "archive/" version ".tar.gz"))
2696 (file-name (string-append name "-" version ".tar.gz"))
2697 (sha256
2698 (base32
2699 "078ahh0kmhdylq5ib9c81c76kz1n02xwc83pm729d00i84ibviic"))))
2700 (build-system emacs-build-system)
7bf837fd 2701 (home-page "https://github.com/nex3/perspective-el")
480f7350
RW
2702 (synopsis "Switch between named \"perspectives\"")
2703 (description
2704 "This package provides tagged workspaces in Emacs, similar to workspaces in
2705windows managers such as Awesome and XMonad. @code{perspective.el} provides
2706multiple workspaces (or \"perspectives\") for each Emacs frame. Each
2707perspective is composed of a window configuration and a set of buffers.
2708Switching to a perspective activates its window configuration, and when in a
2709perspective only its buffers are available by default.")
2710 ;; This package is released under the same license as Emacs (GPLv3+) or
2711 ;; the Expat license.
2712 (license license:gpl3+)))
2713
36e5d103
RJ
2714(define-public emacs-request
2715 (package
2716 (name "emacs-request")
2717 (version "0.2.0")
2718 (source (origin
2719 (method url-fetch)
2720 (uri (string-append
2721 "https://github.com/tkf/emacs-request/archive/v"
2722 version ".tar.gz"))
2723 (file-name (string-append name "-" version ".tar.gz"))
2724 (sha256
2725 (base32 "0sll9g9x15jxrdr58pdxx4iz74rnjd43q521iqm890i6hmkrgwap"))))
2726 (build-system emacs-build-system)
2727 (home-page "https://github.com/tkf/emacs-request")
2728 (synopsis "Package for speaking HTTP in Emacs Lisp")
2729 (description "This package provides a HTTP request library with multiple
2730backends. It supports url.el which is shipped with Emacs and the curl command
2731line program.")
2732 (license license:gpl3+)))
2733
f1b61e26 2734(define-public emacs-rudel
2735 (package
2736 (name "emacs-rudel")
2737 (version "0.3.1")
2738 (source
2739 (origin
2740 (method url-fetch)
2741 (uri (string-append "http://elpa.gnu.org/packages/rudel-"
2742 version ".tar"))
2743 (sha256
2744 (base32
2745 "0glqa68g509p0s2vcc0i8kzlddnc9brd9jqhnm5rzxz4i050cvnz"))))
2746 (build-system emacs-build-system)
2747 (home-page "http://rudel.sourceforge.net/")
2748 (synopsis "Collaborative editing framework")
2749 (description
2750 "Rudel is a collaborative editing environment for GNU Emacs. Its purpose
2751is to share buffers with other users in order to edit the contents of those
2752buffers collaboratively. Rudel supports multiple backends to enable
2753communication with other collaborative editors using different protocols,
2754though currently Obby (for use with the Gobby editor) is the only
2755fully-functional one.")
2756 (license license:gpl3+)))
2757
79b3d3ea
RW
2758(define-public emacs-hydra
2759 (package
2760 (name "emacs-hydra")
86d959bd 2761 (version "0.13.6")
79b3d3ea
RW
2762 (source
2763 (origin
2764 (method url-fetch)
2765 (uri (string-append "https://github.com/abo-abo/hydra/archive/"
2766 version ".tar.gz"))
2767 (file-name (string-append name "-" version ".tar.gz"))
2768 (sha256
2769 (base32
86d959bd 2770 "0575vh858gm35p57s49dy6pc2ij46dmj9zaa4z0cp98sqra3j3l0"))))
79b3d3ea
RW
2771 (build-system emacs-build-system)
2772 (home-page "https://github.com/abo-abo/hydra")
2773 (synopsis "Make Emacs bindings that stick around")
2774 (description
2775 "This package can be used to tie related commands into a family of short
2776bindings with a common prefix---a Hydra. Once you summon the Hydra (through
2777the prefixed binding), all the heads can be called in succession with only a
2778short extension. Any binding that isn't the Hydra's head vanquishes the
2779Hydra. Note that the final binding, besides vanquishing the Hydra, will still
2780serve its original purpose, calling the command assigned to it. This makes
2781the Hydra very seamless; it's like a minor mode that disables itself
2782automatically.")
2783 (license license:gpl3+)))
2784
12db29ba
RW
2785(define-public emacs-ivy
2786 (package
2787 (name "emacs-ivy")
352074d5 2788 (version "0.9.1")
12db29ba
RW
2789 (source
2790 (origin
2791 (method url-fetch)
2792 (uri (string-append "https://github.com/abo-abo/swiper/archive/"
2793 version ".tar.gz"))
2794 (file-name (string-append name "-" version ".tar.gz"))
2795 (sha256
2796 (base32
352074d5 2797 "1abi1rvjarwfxxylpx8qlhck0kbavnj0nmlaaizk9q5zr02xfx1j"))))
12db29ba
RW
2798 (build-system emacs-build-system)
2799 (propagated-inputs
2800 `(("emacs-hydra" ,emacs-hydra)))
2801 (home-page "http://oremacs.com/swiper/")
2802 (synopsis "Incremental vertical completion for Emacs")
2803 (description
2804 "This package provides @code{ivy-read} as an alternative to
2805@code{completing-read} and similar functions. No attempt is made to determine
2806the best candidate. Instead, the user can navigate candidates with
2807@code{ivy-next-line} and @code{ivy-previous-line}. The matching is done by
2808splitting the input text by spaces and re-building it into a regular
2809expression.")
2810 (license license:gpl3+)))
2811
5edc24ec
RW
2812(define-public emacs-avy
2813 (package
2814 (name "emacs-avy")
2815 (version "0.4.0")
2816 (source
2817 (origin
2818 (method url-fetch)
2819 (uri (string-append "https://github.com/abo-abo/avy/archive/"
2820 version ".tar.gz"))
2821 (file-name (string-append name "-" version ".tar.gz"))
2822 (sha256
2823 (base32
2824 "1wdrq512h25ymzjbf2kbsdymvd2ryfwzb6bh5bc3yv7q203im796"))))
2825 (build-system emacs-build-system)
2826 (home-page "https://github.com/abo-abo/avy")
2827 (synopsis "Tree-based completion for Emacs")
2828 (description
2829 "This package provides a generic completion method based on building a
2830balanced decision tree with each candidate being a leaf. To traverse the tree
2831from the root to a desired leaf, typically a sequence of @code{read-key} can
2832be used.
2833
2834In order for @code{read-key} to make sense, the tree needs to be visualized
2835appropriately, with a character at each branch node. So this completion
2836method works only for things that you can see on your screen, all at once,
2837such as the positions of characters, words, line beginnings, links, or
2838windows.")
2839 (license license:gpl3+)))
2840
93dba17c
RW
2841(define-public emacs-ace-window
2842 (package
2843 (name "emacs-ace-window")
2844 (version "0.9.0")
2845 (source
2846 (origin
2847 (method url-fetch)
2848 (uri (string-append "https://github.com/abo-abo/ace-window/archive/"
2849 version ".tar.gz"))
2850 (file-name (string-append name "-" version ".tar.gz"))
2851 (sha256
2852 (base32
2853 "1p2sgfl5dml4zbd6ldql6lm2m9vmd236ah996ni32x254s48j5pn"))))
2854 (build-system emacs-build-system)
2855 (propagated-inputs
2856 `(("emacs-avy" ,emacs-avy)))
2857 (home-page "https://github.com/abo-abo/ace-window")
2858 (synopsis "Quickly switch windows in Emacs")
2859 (description
2860 "@code{ace-window} is meant to replace @code{other-window}.
2861In fact, when there are only two windows present, @code{other-window} is
2862called. If there are more, each window will have its first character
2863highlighted. Pressing that character will switch to that window.")
2864 (license license:gpl3+)))
2865
e1918ce4
RW
2866(define-public emacs-iedit
2867 (package
2868 (name "emacs-iedit")
f9f77a9e 2869 (version "0.9.9.9")
e1918ce4
RW
2870 (source
2871 (origin
2872 (method url-fetch)
2873 (uri (string-append "https://github.com/victorhge/iedit/archive/v"
2874 version ".tar.gz"))
2875 (file-name (string-append name "-" version ".tar.gz"))
2876 (sha256
2877 (base32
f9f77a9e 2878 "1hv8q6pr85ss9g3158l1fqv3m62vsq8rslsi86jicr2dcxyascr0"))))
e1918ce4
RW
2879 (build-system emacs-build-system)
2880 (home-page "http://www.emacswiki.org/emacs/Iedit")
2881 (synopsis "Edit multiple regions in the same way simultaneously")
2882 (description
2883 "This package is an Emacs minor mode and allows you to edit one
2884occurrence of some text in a buffer (possibly narrowed) or region, and
2885simultaneously have other occurrences edited in the same way.
2886
2887You can also use Iedit mode as a quick way to temporarily show only the buffer
2888lines that match the current text being edited. This gives you the effect of
2889a temporary @code{keep-lines} or @code{occur}.")
2890 (license license:gpl3+)))
2891
a5338dd4
RW
2892(define-public emacs-lispy
2893 (package
2894 (name "emacs-lispy")
2895 (version "0.26.0")
2896 (source
2897 (origin
2898 (method url-fetch)
2899 (uri (string-append "https://github.com/abo-abo/lispy/archive/"
2900 version ".tar.gz"))
2901 (file-name (string-append name "-" version ".tar.gz"))
2902 (sha256
2903 (base32
2904 "15gig95cvamw5zlw99cxggd27c18b9scznjj97gvjn2zbljcaqzl"))))
2905 (build-system emacs-build-system)
2906 (propagated-inputs
2907 `(("emacs-ace-window" ,emacs-ace-window)
2908 ("emacs-iedit" ,emacs-iedit)
2909 ("emacs-ivy" ,emacs-ivy)
2910 ("emacs-hydra" ,emacs-hydra)))
2911 (home-page "https://github.com/abo-abo/lispy")
2912 (synopsis "Modal S-expression editing")
2913 (description
2914 "Due to the structure of Lisp syntax it's very rare for the programmer to
2915want to insert characters right before \"(\" or right after \")\". Thus
2916unprefixed printable characters can be used to call commands when the point is
2917at one of these special locations. Lispy provides unprefixed keybindings for
2918S-expression editing when point is at the beginning or end of an
2919S-expression.")
2920 (license license:gpl3+)))
2921
8eeb301d
AP
2922(define-public emacs-clojure-mode
2923 (package
2924 (name "emacs-clojure-mode")
f8d69be0 2925 (version "5.4.0")
8eeb301d
AP
2926 (source (origin
2927 (method url-fetch)
2928 (uri (string-append
2929 "https://github.com/clojure-emacs/clojure-mode/archive/"
2930 version ".tar.gz"))
2931 (file-name (string-append name "-" version ".tar.gz"))
2932 (sha256
2933 (base32
f8d69be0 2934 "117mvjqh4nm8mvmwmmvy4qmkdg23ldlzk08y91g8b8ac8kxwqg81"))))
8eeb301d 2935 (build-system emacs-build-system)
92d9cfef
AI
2936 (native-inputs
2937 `(("emacs-dash" ,emacs-dash)
2938 ("emacs-s" ,emacs-s)
2939 ("ert-runner" ,ert-runner)))
2940 (arguments
2941 `(#:phases
2942 (modify-phases %standard-phases
2943 (add-after 'install 'check
2944 (lambda _
2945 (zero? (system* "ert-runner")))))))
7bf837fd 2946 (home-page "https://github.com/clojure-emacs/clojure-mode")
8eeb301d
AP
2947 (synopsis "Major mode for Clojure code")
2948 (description
2949 "This Emacs package provides font-lock, indentation, navigation and basic
2950refactoring for the @uref{http://clojure.org, Clojure programming language}.
2951It is recommended to use @code{clojure-mode} with paredit or smartparens.")
2952 (license license:gpl3+)))
d345491a
AP
2953
2954(define-public emacs-epl
2955 (package
2956 (name "emacs-epl")
2957 (version "0.8")
2958 (source (origin
2959 (method url-fetch)
2960 (uri (string-append
2961 "https://github.com/cask/epl/archive/"
2962 version ".tar.gz"))
2963 (sha256
2964 (base32
2965 "1511n3a3f5gvaf2b4nh018by61ciyzi3y3603fzqma7p9hrckarc"))))
2966 (build-system emacs-build-system)
7bf837fd 2967 (home-page "https://github.com/cask/epl")
d345491a
AP
2968 (synopsis "Emacs Package Library")
2969 (description
2970 "A package management library for Emacs, based on @code{package.el}.
2971
2972The purpose of this library is to wrap all the quirks and hassle of
2973@code{package.el} into a sane API.")
2974 (license license:gpl3+)))
ad6c4bc4
AP
2975
2976(define-public emacs-queue
2977 (package
2978 (name "emacs-queue")
2979 (version "0.1.1")
2980 (source (origin
02736daa 2981 (method url-fetch)
f32ffa04 2982 (uri (string-append "https://elpa.gnu.org/packages/queue-"
ad6c4bc4
AP
2983 version ".el"))
2984 (sha256
2985 (base32
2986 "0jw24fxqnf9qcaf2nh09cnds1kqfk7hal35dw83x1ari95say391"))))
2987 (build-system emacs-build-system)
2988 (home-page "http://www.dr-qubit.org/tags/computing-code-emacs.html")
2989 (synopsis "Queue data structure for Emacs")
2990 (description
2991 "This Emacs library provides queue data structure. These queues can be
2992used both as a first-in last-out (FILO) and as a first-in first-out (FIFO)
2993stack, i.e. elements can be added to the front or back of the queue, and can
2994be removed from the front. This type of data structure is sometimes called an
2995\"output-restricted deque\".")
2996 (license license:gpl3+)))
32abfcf4
AP
2997
2998(define-public emacs-pkg-info
2999 (package
3000 (name "emacs-pkg-info")
3001 (version "0.6")
3002 (source (origin
3003 (method url-fetch)
3004 (uri (string-append
3005 "https://github.com/lunaryorn/pkg-info.el/archive/"
3006 version ".tar.gz"))
3007 (file-name (string-append name "-" version ".tar.gz"))
3008 (sha256
3009 (base32
3010 "1gy1jks5mmm02gg1c8gcyr4f8a9s5ggzhk56gv33b9mzjqzi5rd5"))))
3011 (build-system emacs-build-system)
3012 (propagated-inputs `(("emacs-epl" ,emacs-epl)))
3013 (home-page "https://github.com/lunaryorn/pkg-info.el")
3014 (synopsis "Information about Emacs packages")
3015 (description
3016 "This library extracts information from the installed Emacs packages.")
3017 (license license:gpl3+)))
565bccc5
AP
3018
3019(define-public emacs-spinner
3020 (package
3021 (name "emacs-spinner")
cd4d96b8 3022 (version "1.7.3")
565bccc5 3023 (source (origin
02736daa 3024 (method url-fetch)
f32ffa04 3025 (uri (string-append "https://elpa.gnu.org/packages/spinner-"
565bccc5
AP
3026 version ".el"))
3027 (sha256
3028 (base32
cd4d96b8 3029 "19kp1mmndbmw11sgvv2ggfjl4pyf5zrsbh3871f0965pw9z8vahd"))))
565bccc5
AP
3030 (build-system emacs-build-system)
3031 (home-page "https://github.com/Malabarba/spinner.el")
3032 (synopsis "Emacs mode-line spinner for operations in progress")
3033 (description
3034 "This Emacs package adds spinners and progress-bars to the mode-line for
3035ongoing operations.")
3036 (license license:gpl3+)))
62a45cb6
AP
3037
3038(define-public emacs-seq
3039 (package
3040 (name "emacs-seq")
a5dee1ac 3041 (version "2.19")
62a45cb6
AP
3042 (source (origin
3043 (method url-fetch)
f32ffa04 3044 (uri (string-append "https://elpa.gnu.org/packages/seq-"
62a45cb6
AP
3045 version ".tar"))
3046 (sha256
3047 (base32
a5dee1ac 3048 "11hb7is6a4h1lscjcfrzh576j0g3m5yjydn16s6x5bxp5gsr6zha"))))
62a45cb6 3049 (build-system emacs-build-system)
f32ffa04 3050 (home-page "https://elpa.gnu.org/packages/seq.html")
62a45cb6
AP
3051 (synopsis "Sequence manipulation functions for Emacs")
3052 (description
3053 "This Emacs library provides sequence-manipulation functions that
3054complement basic functions provided by @code{subr.el}. All provided functions
3055work on lists, strings and vectors.")
3056 (license license:gpl3+)))
6ede256f 3057
fd2d17cd
RJ
3058(define-public emacs-sparql-mode
3059 (package
3060 (name "emacs-sparql-mode")
3061 (version "2.0.1")
3062 (source (origin
3063 (method url-fetch)
3064 (uri (string-append "https://github.com/ljos/sparql-mode/archive/"
3065 "v" version ".tar.gz"))
3066 (file-name (string-append name "-" version ".tar.gz"))
3067 (sha256
3068 (base32
3069 "1s93mkllxnhy7fw616cnnc2danacdlarys0g3cn89drh0llh53cv"))))
3070 (build-system emacs-build-system)
3071 (home-page "https://github.com/ljos/sparql-mode")
3072 (synopsis "SPARQL mode for Emacs")
3073 (description "This package provides a major mode for Emacs that provides
3074syntax highlighting for SPARQL. It also provides a way to execute queries
3075against a SPARQL HTTP endpoint, such as is provided by Fuseki. It is also
3076possible to query other endpoints like DBPedia.")
3077 (license license:gpl3+)))
3078
6ede256f
DT
3079(define-public emacs-better-defaults
3080 (package
3081 (name "emacs-better-defaults")
3082 (version "0.1.3")
3083 (source
3084 (origin
3085 (method url-fetch)
3086 (uri (string-append "https://github.com/technomancy/better-defaults"
3087 "/archive/" version ".tar.gz"))
13384842 3088 (file-name (string-append name "-" version ".tar.gz"))
6ede256f
DT
3089 (sha256
3090 (base32
3091 "08fg4zslzlxbvyil5g4gwvwd22fh4zsgqprs5wh9hv1rgc6757m2"))))
3092 (build-system emacs-build-system)
3093 (home-page "https://github.com/technomancy/better-defaults")
3094 (synopsis "Better defaults for Emacs")
3095 (description
3096 "Better defaults attempts to address the most obvious deficiencies of the
3097Emacs default configuration in uncontroversial ways that nearly everyone can
3098agree upon.")
3099 (license license:gpl3+)))
c5c08f1b 3100
7034791a
RJ
3101(define-public emacs-eprime
3102 (let ((commit "17a481af26496be91c07139a9bfc05cfe722506f"))
3103 (package
3104 (name "emacs-eprime")
3105 (version (string-append "20140513-" (string-take commit 7)))
3106 (source (origin
3107 (method url-fetch)
3108 (uri (string-append "https://raw.githubusercontent.com"
3109 "/AndrewHynes/eprime-mode/"
3110 commit "/eprime-mode.el"))
3111 (file-name (string-append "eprime-" version ".el"))
3112 (sha256
3113 (base32
3114 "0v68lggkyq7kbcr9zyi573m2g2x251xy3jadlaw8kx02l8krwq8d"))))
3115 (build-system emacs-build-system)
3116 (home-page "https://github.com/AndrewHynes/eprime-mode")
3117 (synopsis "E-prime checking mode for Emacs")
3118 (description "This package provides an E-prime checking mode for Emacs
3119that highlights non-conforming text. The subset of the English language called
3120E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
3121 (license license:gpl3+))))
3122
41184943
RJ
3123(define-public emacs-ess
3124 (package
3125 (name "emacs-ess")
3126 (version "16.04")
3127 (source (origin
3128 (method url-fetch)
3129 (uri (string-append "http://ess.r-project.org/downloads/ess/ess-"
3130 version ".tgz"))
3131 (sha256
3132 (base32
3133 "0w7mbbajn377gdmvnd21mpyr368b2ia46gq6cb99y4y5rspf9pcg"))))
3134 (build-system gnu-build-system)
3135 (arguments
3136 `(#:tests? #f ; There is no test suite.
3137 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
3138 #:phases
3139 (modify-phases %standard-phases
3140 (delete 'configure)
3141 (add-before 'build 'more-shebang-patching
3142 (lambda* (#:key inputs #:allow-other-keys)
3143 (substitute* "Makeconf"
3144 (("SHELL = /bin/sh")
63096366
RW
3145 (string-append "SHELL = " (which "sh"))))))
3146 ;; FIXME: the texlive-union insists on regenerating fonts. It stores
3147 ;; them in HOME, so it needs to be writeable.
3148 (add-before 'build 'set-HOME
3149 (lambda _ (setenv "HOME" "/tmp") #t)))))
41184943
RJ
3150 (inputs
3151 `(("emacs" ,emacs-minimal)
2d7c4ae3 3152 ("r-minimal" ,r-minimal)))
41184943
RJ
3153 (native-inputs
3154 `(("perl" ,perl)
3155 ("texinfo" ,texinfo)
63096366
RW
3156 ("texlive" ,(texlive-union (list texlive-latex-natbib
3157 texlive-latex-seminar
3158 texlive-latex-hyperref
3159 texlive-tex-texinfo)))))
41184943
RJ
3160 (home-page "http://ess.r-project.org/")
3161 (synopsis "Emacs mode for statistical analysis programs")
3162 (description "Emacs Speaks Statistics (ESS) is an add-on package for GNU
3163Emacs. It is designed to support editing of scripts and interaction with
3164various statistical analysis programs such as R and OpenBUGS.")
3165 (license license:gpl2+)))
3166
c5c08f1b
DT
3167(define-public emacs-smex
3168 (package
3169 (name "emacs-smex")
3170 (version "3.0")
3171 (source (origin
3172 (method url-fetch)
3173 (uri (string-append "https://raw.githubusercontent.com"
3174 "/nonsequitur/smex/" version "/smex.el"))
3175 (file-name (string-append "smex-" version ".el"))
3176 (sha256
3177 (base32
3178 "0ar310zx9k5y4i1vl2rawvi712xj9gx77160860jbs691p77cxqp"))))
3179 (build-system emacs-build-system)
7bf837fd 3180 (home-page "https://github.com/nonsequitur/smex/")
c5c08f1b
DT
3181 (synopsis "M-x interface with Ido-style fuzzy matching")
3182 (description
3183 "Smex is a M-x enhancement for Emacs. Built on top of Ido, it provides a
3184convenient interface to your recently and most frequently used commands. And
3185to all the other commands, too.")
3186 (license license:gpl3+)))
3e5be84b
DT
3187
3188(define-public emacs-js2-mode
3189 (package
3190 (name "emacs-js2-mode")
3191 (version "20150909")
3192 (source (origin
3193 (method url-fetch)
3194 (uri (string-append "https://github.com/mooz/js2-mode/archive/"
3195 version ".tar.gz"))
3196 (file-name (string-append name "-" version ".tar.gz"))
3197 (sha256
3198 (base32
3199 "1nsm36c4kwb473p13i58fgrnlk8fbn3rdhj47d9xz70az4ra44q0"))))
3200 (build-system emacs-build-system)
3201 (home-page "https://github.com/mooz/js2-mode/")
3202 (synopsis "Improved JavaScript editing mode for Emacs")
3203 (description
3204 "Js2-mode provides a JavaScript major mode for Emacs that is more
3205advanced than the built-in javascript-mode. Features include accurate syntax
3206highlighting using a recursive-descent parser, on-the-fly reporting of syntax
3207errors and strict-mode warnings, smart line-wrapping within comments and
3208strings, and code folding.")
3209 (license license:gpl3+)))
b78b6e80
DT
3210
3211(define-public emacs-markdown-mode
3212 (package
3213 (name "emacs-markdown-mode")
d30c4841 3214 (version "2.2")
b78b6e80
DT
3215 (source (origin
3216 (method url-fetch)
3217 (uri (string-append "https://raw.githubusercontent.com/jrblevin"
3218 "/markdown-mode/v" version
3219 "/markdown-mode.el"))
3220 (file-name (string-append "markdown-mode-" version ".el"))
3221 (sha256
3222 (base32
d30c4841 3223 "04isd2sdnms9acpmkd6n7b7y7j0x2kank2kry0zwbxs3bwdavgav"))))
b78b6e80
DT
3224 (build-system emacs-build-system)
3225 (home-page "http://jblevins.org/projects/markdown-mode/")
3226 (synopsis "Emacs Major mode for Markdown files")
3227 (description
3228 "Markdown-mode is a major mode for editing Markdown-formatted text files
3229in Emacs.")
3230 (license license:gpl3+)))
a2670dde
DT
3231
3232(define-public emacs-projectile
3233 (package
3234 (name "emacs-projectile")
6461c44c 3235 (version "0.14.0")
a2670dde
DT
3236 (source (origin
3237 (method url-fetch)
3238 (uri (string-append "https://raw.githubusercontent.com/bbatsov"
3239 "/projectile/v" version "/projectile.el"))
3240 (file-name (string-append "projectile-" version ".el"))
3241 (sha256
3242 (base32
6461c44c 3243 "1ql1wnzhblbwnv66hf2y0wq45g71hh6s9inc090lmhm1vgylbd1f"))))
a2670dde
DT
3244 (build-system emacs-build-system)
3245 (propagated-inputs
3246 `(("emacs-dash" ,emacs-dash)
3247 ("emacs-pkg-info" ,emacs-pkg-info)))
3248 (home-page "https://github.com/bbatsov/projectile")
3249 (synopsis "Manage and navigate projects in Emacs easily")
3250 (description
3251 "This library provides easy project management and navigation. The
3252concept of a project is pretty basic - just a folder containing special file.
3253Currently git, mercurial and bazaar repos are considered projects by default.
3254If you want to mark a folder manually as a project just create an empty
3255.projectile file in it.")
3256 (license license:gpl3+)))
4aea1e01
DT
3257
3258(define-public emacs-elfeed
3259 (package
3260 (name "emacs-elfeed")
e831283d 3261 (version "2.1.1")
4aea1e01
DT
3262 (source (origin
3263 (method url-fetch)
3264 (uri (string-append "https://github.com/skeeto/elfeed/archive/"
3265 version ".tar.gz"))
3266 (file-name (string-append name "-" version ".tar.gz"))
3267 (sha256
3268 (base32
e831283d 3269 "1wlwc8fbkg6w1c8p856ikc20xm72f51clnzz419p0g8cavy27npw"))))
4aea1e01 3270 (build-system emacs-build-system)
568f977f
AI
3271 (arguments
3272 `(#:phases
3273 (modify-phases %standard-phases
3274 (add-before 'install 'check
3275 (lambda _
3276 (zero? (system* "make" "test")))))))
4aea1e01
DT
3277 (home-page "https://github.com/skeeto/elfeed")
3278 (synopsis "Atom/RSS feed reader for Emacs")
3279 (description
3280 "Elfeed is an extensible web feed reader for Emacs, supporting both Atom
3281and RSS, with a user interface inspired by notmuch.")
3282 (license license:gpl3+)))
c86f0207
DT
3283
3284(define-public emacs-rainbow-delimiters
3285 (package
3286 (name "emacs-rainbow-delimiters")
3287 (version "2.1.3")
3288 (source (origin
3289 (method url-fetch)
3290 (uri (string-append "https://raw.githubusercontent.com/Fanael"
3291 "/rainbow-delimiters/" version
3292 "/rainbow-delimiters.el"))
3293 (file-name (string-append "rainbow-delimiters-" version ".el"))
3294 (sha256
3295 (base32
3296 "1b3kampwsjabhcqdp0khgff13wc5jqhy3rbvaa12vnv7qy22l9ck"))))
3297 (build-system emacs-build-system)
3298 (home-page "https://github.com/Fanael/rainbow-delimiters")
3299 (synopsis "Highlight brackets according to their depth")
3300 (description
3301 "Rainbow-delimiters is a \"rainbow parentheses\"-like mode for Emacs which
3302highlights parentheses, brackets, and braces according to their depth. Each
3303successive level is highlighted in a different color, making it easy to spot
3304matching delimiters, orient yourself in the code, and tell which statements
3305are at a given level.")
3306 (license license:gpl3+)))
65b49ae7 3307
d95e8e01
RJ
3308(define-public emacs-rainbow-identifiers
3309 (package
3310 (name "emacs-rainbow-identifiers")
3311 (version "0.2.2")
3312 (source (origin
3313 (method url-fetch)
3314 (uri (string-append "https://raw.githubusercontent.com/Fanael"
3315 "/rainbow-identifiers/" version
3316 "/rainbow-identifiers.el"))
3317 (file-name (string-append "rainbow-identifiers-" version ".el"))
3318 (sha256
3319 (base32
3320 "0325abxj47k0g1i8nqrq70w2wr6060ckhhf92krv1s072b3jzm31"))))
3321 (build-system emacs-build-system)
3322 (home-page "https://github.com/Fanael/rainbow-identifiers")
3323 (synopsis "Highlight identifiers in source code")
3324 (description
3325 "Rainbow identifiers mode is an Emacs minor mode providing highlighting of
3326identifiers based on their names. Each identifier gets a color based on a hash
3327of its name.")
3328 (license license:bsd-2)))
3329
9619a95e
RJ
3330(define-public emacs-rainbow-mode
3331 (package
3332 (name "emacs-rainbow-mode")
3333 (version "0.12")
3334 (source (origin
3335 (method url-fetch)
3336 (uri (string-append
3337 "http://elpa.gnu.org/packages/rainbow-mode-" version ".el"))
3338 (sha256
3339 (base32
3340 "10a7qs7fvw4qi4vxj9n56j26gjk61bl79dgz4md1d26slb2j1c04"))))
3341 (build-system emacs-build-system)
3342 (home-page "http://elpa.gnu.org/packages/rainbow-mode.html")
3343 (synopsis "Colorize color names in buffers")
3344 (description
3345 "This minor mode sets background color to strings that match color
3346names, e.g. #0000ff is displayed in white with a blue background.")
3347 (license license:gpl3+)))
3348
fede3a90
RW
3349(define-public emacs-visual-fill-column
3350 (package
3351 (name "emacs-visual-fill-column")
3352 (version "1.7")
3353 (source (origin
3354 (method url-fetch)
3355 (uri (string-append "https://codeload.github.com/joostkremers/"
3356 "visual-fill-column/tar.gz/" version))
3357 (file-name (string-append name "-" version ".tar.gz"))
3358 (sha256
3359 (base32
3360 "12vn7kdq2mpz9hgibbn1vhpf23lcm7c26k3fkz8nidhygwl5x5lq"))))
3361 (build-system emacs-build-system)
3362 (home-page "https://github.com/joostkremers/visual-fill-column")
3363 (synopsis "Fill-column for visual-line-mode")
3364 (description
3365 "@code{visual-fill-column-mode} is a small Emacs minor mode that mimics
3366the effect of @code{fill-column} in @code{visual-line-mode}. Instead of
3367wrapping lines at the window edge, which is the standard behaviour of
3368@code{visual-line-mode}, it wraps lines at @code{fill-column}. If
3369@code{fill-column} is too large for the window, the text is wrapped at the
3370window edge.")
3371 (license license:gpl3+)))
3372
65b49ae7
DT
3373(define-public emacs-ido-completing-read+
3374 (package
3375 (name "emacs-ido-completing-read+")
3376 (version "3.12")
3377 (source (origin
3378 (method url-fetch)
3379 (uri (string-append "https://raw.githubusercontent.com"
3380 "/DarwinAwardWinner/ido-ubiquitous/v"
3381 version "/ido-completing-read+.el"))
3382 (file-name (string-append "ido-completing-read+-" version ".el"))
3383 (sha256
3384 (base32
3385 "1cyalb0p7nfsm4n6n9q6rjmvn6adqc0fq8ybnlj3n41n289dkfjf"))))
3386 (build-system emacs-build-system)
3387 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
3388 (synopsis "Replacement for completing-read using ido")
3389 (description
3390 "The ido-completing-read+ function is a wrapper for ido-completing-read.
3391Importantly, it detects edge cases that ordinary ido cannot handle and either
3392adjusts them so ido can handle them, or else simply falls back to the standard
3393Emacs completion function instead.")
3394 (license license:gpl3+)))
529fe992
DT
3395
3396(define-public emacs-ido-ubiquitous
3397 (package
3398 (name "emacs-ido-ubiquitous")
3399 (version "3.12")
3400 (source (origin
3401 (method url-fetch)
3402 (uri (string-append "https://raw.githubusercontent.com"
3403 "/DarwinAwardWinner/ido-ubiquitous/v"
3404 version "/ido-ubiquitous.el"))
3405 (file-name (string-append "ido-ubiquitous-" version ".el"))
3406 (sha256
3407 (base32
3408 "197ypji0fb6jsdcq40rpnknwlh3imas6s6jbsvkfm0pz9988c3q2"))))
3409 (build-system emacs-build-system)
3410 (propagated-inputs
3411 `(("emacs-ido-completing-read+" ,emacs-ido-completing-read+)))
3412 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
3413 (synopsis "Use ido (nearly) everywhere")
3414 (description
3415 "Ido-ubiquitous enables ido-style completion for almost every function
3416that uses the standard completion function completing-read.")
3417 (license license:gpl3+)))
63de1231
DT
3418
3419(define-public emacs-yaml-mode
3420 (package
3421 (name "emacs-yaml-mode")
847284e1 3422 (version "0.0.13")
63de1231
DT
3423 (source (origin
3424 (method url-fetch)
3425 (uri (string-append "https://raw.githubusercontent.com/yoshiki"
3426 "/yaml-mode/v" version "/yaml-mode.el"))
3427 (file-name (string-append "yaml-mode-" version ".el"))
3428 (sha256
3429 (base32
847284e1 3430 "0im88sk9dqw03x6d6zaspgvg9i0pfpgb8f2zygrmbifh2w4pwmvj"))))
63de1231
DT
3431 (build-system emacs-build-system)
3432 (home-page "https://github.com/yoshiki/yaml-mode")
3433 (synopsis "Major mode for editing YAML files")
3434 (description
3435 "Yaml-mode is an Emacs major mode for editing files in the YAML data
3436serialization format. It was initially developed by Yoshiki Kurihara and many
3437features were added by Marshall Vandegrift. As YAML and Python share the fact
3438that indentation determines structure, this mode provides indentation and
3439indentation command behavior very similar to that of python-mode.")
3440 (license license:gpl3+)))
7529c883
DT
3441
3442(define-public emacs-web-mode
3443 (package
3444 (name "emacs-web-mode")
3445 (version "14")
3446 (source (origin
3447 (method url-fetch)
3448 (uri (string-append "https://raw.githubusercontent.com/fxbois"
3449 "/web-mode/v" version "/web-mode.el"))
3450 (file-name (string-append "web-mode-" version ".el"))
3451 (sha256
3452 (base32
3453 "086hik5fmxg3kx74qmransx9cz961qd22d4m6ah2dw6cwaj1s3s5"))))
3454 (build-system emacs-build-system)
3455 (synopsis "Major mode for editing web templates")
3456 (description "Web-mode is an Emacs major mode for editing web templates
3457aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by
3458client/server side engines). Web-mode is compatible with many template
3459engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker,
3460Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template,
3461Dust.js, React/JSX, Angularjs, ejs, etc.")
3462 (home-page "http://web-mode.org/")
3463 (license license:gpl3+)))
ae609001
MJ
3464
3465(define-public emacs-helm
3466 (package
3467 (name "emacs-helm")
9dfc5bb5 3468 (version "2.7.1")
ae609001
MJ
3469 (source (origin
3470 (method url-fetch)
3471 (uri (string-append
3472 "https://github.com/" name "/helm/archive/v"
3473 version ".tar.gz"))
3474 (file-name (string-append name "-" version ".tar.gz"))
3475 (sha256
3476 (base32
9dfc5bb5 3477 "0pay8pi3fszykgskfbxsp4byad497cgfz4m886mxnkba1naxf6h7"))))
ae609001
MJ
3478 (build-system emacs-build-system)
3479 (propagated-inputs
3480 `(("emacs-async" ,emacs-async)
3481 ("emacs-popup" ,emacs-popup)))
3482 (home-page "https://emacs-helm.github.io/helm/")
3483 (synopsis "Incremental completion and selection narrowing
3484framework for Emacs")
3485 (description "Helm is incremental completion and selection narrowing
3486framework for Emacs. It will help steer you in the right direction when
3487you're looking for stuff in Emacs (like buffers, files, etc). Helm is a fork
3488of @code{anything.el} originally written by Tamas Patrovic and can be
3489considered to be its successor. Helm sets out to clean up the legacy code in
3490@code{anything.el} and provide a cleaner, leaner and more modular tool, that's
3491not tied in the trap of backward compatibility.")
3492 (license license:gpl3+)))
f9be4366 3493
03cc1cf3
KM
3494(define-public emacs-helm-swoop
3495 (package
3496 (name "emacs-helm-swoop")
3497 (version "1.7.2")
3498 (source (origin
3499 (method url-fetch)
3500 (uri (string-append
3501 "https://github.com/ShingoFukuyama/helm-swoop/archive/"
3502 version
3503 ".tar.gz"))
3504 (file-name (string-append name "-" version ".tar.gz"))
3505 (sha256
3506 (base32
3507 "1z34pfi0gsk054pxr906ilaalaw0xz3s536163gf9ykkwmc2356d"))))
3508 (build-system emacs-build-system)
3509 (propagated-inputs
3510 `(("emacs-helm" ,emacs-helm)))
3511 (home-page "https://github.com/ShingoFukuyama/helm-swoop")
3512 (synopsis "Filter and jump to lines in an Emacs buffer using Helm")
3513 (description
3514 "This package builds on the Helm interface to provide several commands
3515for search-based navigation of buffers.")
3516 (license license:gpl2+)))
3517
f69c29f7
KM
3518(define-public emacs-helm-projectile
3519 (package
3520 (name "emacs-helm-projectile")
3521 (version "0.14.0")
3522 (source (origin
3523 (method url-fetch)
3524 (uri (string-append
3525 "https://github.com/bbatsov/helm-projectile/archive/v"
3526 version
3527 ".tar.gz"))
3528 (file-name (string-append name "-" version ".tar.gz"))
3529 (sha256
3530 (base32
3531 "19cfmilqh8kbab3b2hmx6lyrj73q6vfmn3p730x95g23iz16mnd5"))))
3532 (build-system emacs-build-system)
3533 (propagated-inputs
3534 `(("emacs-dash" ,emacs-dash)
3535 ("emacs-helm" ,emacs-helm)
3536 ("emacs-projectile" ,emacs-projectile)))
3537 (home-page "https://github.com/bbatsov/helm-projectile")
3538 (synopsis "Helm integration for Projectile")
3539 (description
3540 "This Emacs library provides a Helm interface for Projectile.")
3541 (license license:gpl3+)))
3542
f9be4366
AP
3543(define-public emacs-cider
3544 (package
3545 (name "emacs-cider")
3546 (version "0.12.0")
3547 (source (origin
3548 (method url-fetch)
3549 (uri (string-append
3550 "https://github.com/clojure-emacs/cider/archive/v"
3551 version ".tar.gz"))
3552 (file-name (string-append name "-" version ".tar.gz"))
3553 (sha256
3554 (base32
3555 "00qzbfjy3w6bcnki7gw0clmi0cc5yqjdrcyhgv4ymijjs79h9p5s"))))
3556 (build-system emacs-build-system)
3557 (propagated-inputs
3558 `(("emacs-clojure-mode" ,emacs-clojure-mode)
3559 ("emacs-spinner" ,emacs-spinner)
3560 ("emacs-pkg-info" ,emacs-pkg-info)
3561 ("emacs-queue" ,emacs-queue)
3562 ("emacs-seq" ,emacs-seq)))
3563 (home-page "https://cider.readthedocs.org/")
3564 (synopsis "Clojure development environment for Emacs")
3565 (description
3566 "CIDER (Clojure Interactive Development Environment that Rocks) aims to
3567provide an interactive development experience similar to the one you'd get
3568when programming in Emacs Lisp, Common Lisp (with SLIME or Sly), Scheme (with
3569Geiser) and Smalltalk.
3570
3571CIDER is the successor to the now deprecated combination of using SLIME +
3572swank-clojure for Clojure development.
3573
3574There are plenty of differences between CIDER and SLIME, but the core ideas
3575are pretty much the same (and SLIME served as the principle inspiration for
3576CIDER).")
3577 (license license:gpl3+)))
26e08b4d 3578
3579(define-public emacs-lua-mode
3580 (package
3581 (name "emacs-lua-mode")
3582 (version "20151025")
3583 (source (origin
3584 (method url-fetch)
3585 (uri (string-append
3586 "https://github.com/immerrr/lua-mode/archive/v"
3587 version ".tar.gz"))
3588 (file-name (string-append name "-" version ".tar.gz"))
3589 (sha256
3590 (base32
3591 "0sbhfny5ib65cnx6xcy6h9bbw27mw034s8m9cca00bhxqaqi6p4v"))))
3592 (build-system emacs-build-system)
7bf837fd 3593 (home-page "https://github.com/immerrr/lua-mode/")
26e08b4d 3594 (synopsis "Major mode for lua")
3595 (description
3596 "This Emacs package provides a mode for @uref{https://www.lua.org/,
3597Lua programing language}.")
3598 (license license:gpl2+)))
0202612d 3599
3600(define-public emacs-ebuild-mode
3601 (package
3602 (name "emacs-ebuild-mode")
3603 (version "1.30")
3604 (source (origin
3605 (method url-fetch)
3606 (uri (string-append
3607 "https://dev.gentoo.org/~ulm/emacs/ebuild-mode"
3608 "-" version ".tar.xz"))
3609 (file-name (string-append name "-" version ".tar.xz"))
3610 (sha256
3611 (base32
3612 "0vp7lq1kvmh1b2bms2x1kf2k76dy9m02d7cirkxpiglwaxa0h9vz"))))
3613 (build-system emacs-build-system)
3614 (home-page "https://devmanual.gentoo.org")
3615 (synopsis "Major modes for Gentoo package files")
3616 (description
3617 "This Emacs package provides modes for ebuild, eclass, eblit, GLEP42
3618news items, openrc and runscripts.")
3619 (license license:gpl2+)))
a9fbe94e 3620
2edbfbf5 3621(define-public emacs-evil
3622 (package
3623 (name "emacs-evil")
3624 (version "1.2.12")
3625 (source
3626 (origin
3627 (method url-fetch)
3628 (uri (string-append "https://bitbucket.org/lyro/evil/get/"
3629 version ".tar.bz2"))
3630 (file-name (string-append name "-" version ".tar.bz2"))
3631 (sha256
3632 (base32
3633 "17cda9fnbq3gmjcxs3lyq64gxswrf37y864bm53rldwsk3khq2yi"))))
3634 (build-system emacs-build-system)
3635 (propagated-inputs
3636 `(("emacs-undo-tree" ,emacs-undo-tree)
3637 ("emacs-goto-chg" ,emacs-goto-chg)))
3638 (home-page "https://bitbucket.com/lyro/evil")
3639 (synopsis "Extensible Vi layer for Emacs")
3640 (description
3641 "Evil is an extensible vi layer for Emacs. It emulates the
3642main features of Vim, and provides facilities for writing custom
3643extensions.")
3644 (license license:gpl3+)))
3645
ce74e520 3646(define-public emacs-goto-chg
3647 (package
3648 (name "emacs-goto-chg")
3649 (version "1.6")
3650 (source
3651 (origin
3652 (method url-fetch)
3653 ;; There is no versioned source.
3654 (uri "https://www.emacswiki.org/emacs/download/goto-chg.el")
6669a932 3655 (file-name (string-append "goto-chg-" version ".el"))
ce74e520 3656 (sha256
3657 (base32
3658 "078d6p4br5vips7b9x4v6cy0wxf6m5ij9gpqd4g33bryn22gnpij"))))
3659 (build-system emacs-build-system)
3660 ;; There is no other home page.
3661 (home-page "https://www.emacswiki.org/emacs/goto-chg.el")
3662 (synopsis "Go to the last change in the Emacs buffer")
3663 (description
3664 "This package provides @code{M-x goto-last-change} command that goes to
3665the point of the most recent edit in the current Emacs buffer. When repeated,
3666go to the second most recent edit, etc. Negative argument, @kbd{C-u -}, is
3667used for reverse direction.")
3668 (license license:gpl2+)))
3669
a1eba1be
VD
3670(define-public emacs-monroe
3671 (package
3672 (name "emacs-monroe")
b125649a 3673 (version "0.3.1")
a1eba1be
VD
3674 (source
3675 (origin
3676 (method url-fetch)
b125649a
VD
3677 (uri (string-append "https://github.com/sanel/monroe/archive/"
3678 version ".tar.gz"))
3679 (file-name (string-append name "-" version ".tar.gz"))
a1eba1be
VD
3680 (sha256
3681 (base32
b125649a 3682 "0icdx8shkd951phlnmcq1vqaxp1l667q5rjscskc5r22aylakh4w"))))
a1eba1be 3683 (build-system emacs-build-system)
b125649a 3684 (home-page "https://github.com/sanel/monroe")
a1eba1be
VD
3685 (synopsis "Clojure nREPL client for Emacs")
3686 (description
3687 "Monroe is a nREPL client for Emacs, focused on simplicity and easy
3688distribution, primarily targeting Clojure users")
3689 (license license:gpl3+)))
3690
a9fbe94e
LC
3691(define-public emacs-writegood-mode
3692 (package
3693 (name "emacs-writegood-mode")
3694 (version "2.0.2")
7bf837fd 3695 (home-page "https://github.com/bnbeckwith/writegood-mode")
a9fbe94e
LC
3696 (source (origin
3697 (method git-fetch)
3698 (uri (git-reference
3699 (url home-page)
3700 (commit (string-append "v" version))))
3701 (sha256
3702 (base32
3703 "1nnjn1r669hvvzfycllwap4w04m8rfsk4nzcg8057m1f263kj31b"))
3704 (file-name (string-append name "-checkout"))))
3705 (build-system emacs-build-system)
3706 (synopsis "Polish up poor writing on the fly")
3707 (description
3708 "This minor mode tries to find and highlight problems with your writing
3709in English as you type. It primarily detects \"weasel words\" and abuse of
3710passive voice.")
3711 (license license:gpl3+)))
e08ca4b9 3712
3713(define-public emacs-neotree
3714 (package
3715 (name "emacs-neotree")
3716 (version "0.2.1")
3717 (home-page "https://github.com/jaypei/emacs-neotree")
3718 (source (origin
3719 (method url-fetch)
3720 (uri (string-append
3721 "https://github.com/jaypei/" name
3722 "/archive/v" version ".tar.gz"))
3723 (sha256
3724 (base32
3725 "0cr37pdkwjgfijfws5bjskfh1rq9rfngxblcj6v5383vpmn83q7s"))
f409d0aa 3726 (file-name (string-append name "-" version ".tar.gz"))))
e08ca4b9 3727 (build-system emacs-build-system)
3728 (synopsis "Folder tree view for Emacs")
3729 (description "This Emacs package provides a folder tree view.")
3730 (license license:gpl3+)))
59065bb3
NG
3731
3732(define-public emacs-org
3733 (package
3734 (name "emacs-org")
005c4ef8 3735 (version "20170622")
59065bb3
NG
3736 (source (origin
3737 (method url-fetch)
c2662820 3738 (uri (string-append "http://elpa.gnu.org/packages/org-"
59065bb3
NG
3739 version ".tar"))
3740 (sha256
3741 (base32
005c4ef8 3742 "0922lcbr2r7bkswljqzbm5y3ny1n67qfrmf7h7z9hsw2wy0505dp"))))
59065bb3
NG
3743 (build-system emacs-build-system)
3744 (home-page "http://orgmode.org/")
3745 (synopsis "Outline-based notes management and organizer")
3746 (description "Org is an Emacs mode for keeping notes, maintaining TODO
3747lists, and project planning with a fast and effective plain-text system. It
3748also is an authoring system with unique support for literate programming and
3749reproducible research.")
3750 (license license:gpl3+)))
41392b9a 3751
3752(define-public emacs-flx
3753 (package
3754 (name "emacs-flx")
3755 (version "0.6.1")
3756 (source
3757 (origin
3758 (method url-fetch)
3759 (uri (string-append "https://github.com/lewang/"
3760 "flx/archive/v" version ".tar.gz"))
3761 (sha256
3762 (base32
3763 "0bkcpnf1j4i2fcc2rllwbz62l00sw2mcia6rm5amgwvlkqavmkv6"))
3764 (file-name (string-append name "-" version ".tar.gz"))))
3765 (build-system emacs-build-system)
3766 (home-page "https://github.com/lewang/flx")
3767 (synopsis "Fuzzy matching for Emacs")
3768 (description
3769 "Flx provides fuzzy matching for emacs a la sublime text.
3770The sorting algorithm is a balance between word beginnings (abbreviation)
3771and contiguous matches (substring). The longer the substring match,
3772the higher it scores. This maps well to how we think about matching.
3773Flx has support for ido (interactively do things) through flx-ido.")
3774 (license license:gpl3+)))
9657aba4 3775
3776(define-public emacs-cyberpunk-theme
3777 (package
3778 (name "emacs-cyberpunk-theme")
5cd41292 3779 (version "1.18")
9657aba4 3780 (source
3781 (origin
3782 (method url-fetch)
3783 (uri (string-append "https://github.com/n3mo/cyberpunk-theme.el/"
3784 "archive/" version ".tar.gz"))
3785 (sha256
3786 (base32
5cd41292 3787 "0pxzbw0qjxgkhhs3gn3k9qy41kl1a4pfzbw83dk24l4b3nxd24wg"))
9657aba4 3788 (file-name (string-append name "-" version ".tar.gz"))))
3789 (build-system emacs-build-system)
3790 (home-page "https://github.com/n3mo/cyberpunk-theme.el")
3791 (synopsis "Cyberpunk theme for emacs built-in color theme support")
3792 (description
3793 "Cyberpunk color theme for the emacs 24+ built-in color theme support
3794known loosely as deftheme. Many mode-specific customizations are included.")
3795 (license license:gpl3+)))
840224aa 3796
8f493950 3797(define-public emacs-danneskjold-theme
3798 (let* ((commit "8733d2fe8743e8a01826ea6d4430ef376c727e57")
3799 (revision "1"))
3800 (package
3801 (name "emacs-danneskjold-theme")
3802 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
3803 (home-page "https://github.com/rails-to-cosmos/danneskjold-theme")
3804 (source
3805 (origin
3806 (method git-fetch)
3807 (uri (git-reference
3808 (url home-page)
3809 (commit commit)))
3810 (file-name (string-append name "-" version "-checkout"))
3811 (sha256
3812 (base32
3813 "0s6rbsb0y8i8m5b9xm4gw1p1cxsxdqnqxqqb638pygz9f76mbir1"))))
3814 (build-system emacs-build-system)
3815 (arguments
3816 `(#:phases
3817 (modify-phases %standard-phases
3818 (add-after 'unpack 'delete-screenshots
3819 (lambda _
3820 (delete-file-recursively "screenshots") #t)))))
3821 (synopsis "High-contrast Emacs theme")
3822 (description
3823 "@code{danneskjold-theme} is a high-contrast theme for Emacs.")
3824 (license license:gpl3+))))
3825
1ba67b62 3826(define-public emacs-dream-theme
3827 (let* ((commit "107a11d74365046f28a1802a2bdb5e69e4a7488b")
3828 (revision "1"))
3829 (package
3830 (name "emacs-dream-theme")
3831 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
3832 (source
3833 (origin
3834 (method git-fetch)
3835 (uri (git-reference
3836 (url "https://github.com/djcb/dream-theme")
3837 (commit commit)))
3838 (file-name (string-append name "-" version "-checkout"))
3839 (sha256
3840 (base32
3841 "0za18nfkq4xqm35k6006vsixcbmvmxqgma4iw5sw37h8vmcsdylk"))))
3842 (build-system emacs-build-system)
3843 (home-page "https://github.com/djcb/dream-theme")
3844 (synopsis "High-contrast Emacs theme")
3845 (description
3846 "@code{dream-theme} is a dark, clean theme for Emacs. It is inspired
3847by zenburn, sinburn and similar themes, but slowly diverging from them.")
3848 (license license:gpl3+))))
3849
840224aa 3850(define-public emacs-auto-complete
3851 (package
3852 (name "emacs-auto-complete")
3853 (version "1.5.1")
3854 (source
3855 (origin
3856 (method url-fetch)
3857 (uri (string-append "https://github.com/auto-complete/"
3858 "auto-complete/archive/v" version ".tar.gz"))
3859 (sha256
3860 (base32
3861 "1jvq4lj00hwml75lpmlciazy8f3bbg13gffsfnl835p4qd8l7yqv"))
3862 (file-name (string-append name "-" version ".tar.gz"))))
3863 (build-system emacs-build-system)
3864 (propagated-inputs
3865 `(("emacs-popup" ,emacs-popup)))
3866 (home-page "https://github.com/auto-complete/auto-complete")
3867 (synopsis "Intelligent auto-completion extension for Emacs")
3868 (description
3869 "Auto-Complete is an intelligent auto-completion extension for Emacs.
3870It extends the standard Emacs completion interface and provides an environment
3871that allows users to concentrate more on their own work. Its features are:
3872a visual interface, reduce overhead of completion by using statistic method,
3873extensibility.")
3874 (license license:gpl3+)))
154c71e0
AI
3875
3876(define-public m17n-db
3877 (package
3878 (name "m17n-db")
3879 (version "1.7.0")
3880 (source
3881 (origin
3882 (method url-fetch)
3883 (uri (string-append "mirror://savannah/m17n/m17n-db-"
3884 version ".tar.gz"))
3885 (sha256
3886 (base32 "1w08hnsbknrcjlzp42c99bgwc9hzsnf5m4apdv0dacql2s09zfm2"))))
3887 (build-system gnu-build-system)
3888 (inputs
7c90d0f4 3889 `(("gettext" ,gettext-minimal)))
154c71e0
AI
3890 (arguments
3891 `(#:configure-flags
3892 (list (string-append "--with-charmaps="
3893 (assoc-ref %build-inputs "libc")
3894 "/share/i18n/charmaps"))))
3895 ;; With `guix lint' the home-page URI returns a small page saying
3896 ;; that your browser does not handle frames. This triggers the "URI
3897 ;; returns suspiciously small file" warning.
3898 (home-page "http://www.nongnu.org/m17n/")
3899 (synopsis "Multilingual text processing library (database)")
3900 (description "The m17n library realizes multilingualization of
3901many aspects of applications. The m17n library represents
3902multilingual text as an object named M-text. M-text is a string with
3903attributes called text properties, and designed to substitute for
3904string in C. Text properties carry any information required to input,
3905display and edit the text.
3906
3907This package contains the library database.")
3908 (license license:lgpl2.1+)))
a80b60f4
AI
3909
3910(define-public m17n-lib
3911 (package
3912 (name "m17n-lib")
3913 (version "1.7.0")
3914 (source
3915 (origin
3916 (method url-fetch)
966a543b
LC
3917 (uri (string-append "mirror://savannah/m17n/m17n-lib-"
3918 version ".tar.gz"))
a80b60f4
AI
3919 (sha256
3920 (base32 "10yv730i25g1rpzv6q49m6xn4p8fjm7jdwvik2h70sn8w3hm7f4f"))))
3921 (build-system gnu-build-system)
3922 (inputs
3923 `(("fribidi" ,fribidi)
3924 ("gd" ,gd)
3925 ("libotf" ,libotf)
3926 ("libxft" ,libxft)
3927 ("libxml2" ,libxml2)
3928 ("m17n-db" ,m17n-db)))
3929 (arguments
3930 `(#:parallel-build? #f))
3931 ;; With `guix lint' the home-page URI returns a small page saying
3932 ;; that your browser does not handle frames. This triggers the "URI
3933 ;; returns suspiciously small file" warning.
3934 (home-page "http://www.nongnu.org/m17n/")
3935 (synopsis "Multilingual text processing library (runtime)")
3936 (description "The m17n library realizes multilingualization of
3937many aspects of applications. The m17n library represents
3938multilingual text as an object named M-text. M-text is a string with
3939attributes called text properties, and designed to substitute for
3940string in C. Text properties carry any information required to input,
3941display and edit the text.
3942
3943This package contains the library runtime.")
3944 (license license:lgpl2.1+)))
71d3ee1c
AI
3945
3946(define-public emacs-nginx-mode
3947 (package
3948 (name "emacs-nginx-mode")
3949 (version "1.1.4")
3950 (source
3951 (origin
3952 (method url-fetch)
3953 (uri (string-append
3954 "https://github.com/ajc/nginx-mode/archive/v"
3955 version ".tar.gz"))
3956 (file-name (string-append name "-" version ".tar.gz"))
3957 (sha256
3958 (base32
3959 "1lvkj07kq0jkskr2f61vqb5rlrbnaz9a76ikq40w6925i2r970rr"))))
3960 (build-system emacs-build-system)
3961 (home-page "https://github.com/ajc/nginx-mode")
3962 (synopsis "Emacs major mode for editing nginx config files")
3963 (description "This package provides an Emacs major mode for
3964editing nginx config files.")
3965 (license license:gpl2+)))
8f50634b
FB
3966
3967(define-public emacs-stream
3968 (package
3969 (name "emacs-stream")
3970 (version "2.2.0")
3971 (home-page "https://github.com/NicolasPetton/stream")
3972 (source
3973 (origin
3974 (method url-fetch)
3975 (file-name (string-append name "-" version ".tar.gz"))
3976 (uri (string-append home-page "/archive/"version ".tar.gz"))
3977 (sha256
3978 (base32 "03ql4nqfz5pn55mjly6clhvc3g7x2d28kj7mrlqmigvjbql39xxc"))))
3979 (build-system emacs-build-system)
3980 (synopsis "Implementation of streams for Emacs")
3981 (description "This library provides an implementation of streams for Emacs.
3982Streams are implemented as delayed evaluation of cons cells.")
3983 (license license:gpl3+)))
0fc06f3e
FB
3984
3985(define-public emacs-el-search
3986 (let ((commit "f26277bfbb3fc3fc74beea6592f294c439796bd4")
3987 (revision "1"))
3988 (package
3989 (name "emacs-el-search")
3990 ;; No ufficial release.
3991 (version (string-append "0.0-" revision "." (string-take commit 7)))
3992 (home-page "https://github.com/emacsmirror/el-search")
3993 (source
3994 (origin
3995 (method git-fetch)
3996 (file-name (string-append name "-" version ".tar.gz"))
3997 (uri (git-reference
3998 (commit commit)
3999 (url (string-append home-page ".git"))))
4000 (sha256
4001 (base32 "12xf40h9sb7xxg2r97gsia94q02543mgiiiw46fzh1ac7b7993g6"))))
4002 (build-system emacs-build-system)
4003 (inputs `(("emacs-stream" ,emacs-stream)))
4004 (synopsis "Expression based interactive search for emacs-lisp-mode")
4005 (description "This package provides expression based interactive search
4006procedures for emacs-lisp-mode.")
4007 (license license:gpl3+))))
1e523180
MO
4008
4009(define-public emacs-ht
4010 (package
4011 (name "emacs-ht")
4012 (version "2.1")
4013 (source
4014 (origin
4015 (method url-fetch)
4016 (uri (string-append
4017 "https://github.com/Wilfred/ht.el/archive/"
4018 version ".tar.gz"))
4019 (file-name (string-append name "-" version ".tar.gz"))
4020 (sha256
4021 (base32
4022 "1lpba36kzxcc966fvsbrfpy8ah9gnvay0yk26gbyjil0rggrbqzj"))))
4023 (build-system emacs-build-system)
4024 (propagated-inputs `(("emacs-dash" ,emacs-dash)))
4025 (home-page "https://github.com/Wilfred/ht.el")
4026 (synopsis "Hash table library for Emacs")
4027 (description
4028 "This package simplifies the use of hash tables in elisp. It also
4029provides functions to convert hash tables from and to alists and plists.")
4030 (license license:gpl3+)))
4031
521f5d96
MO
4032(define-public emacs-log4e
4033 (package
4034 (name "emacs-log4e")
4035 (version "0.3.0")
4036 (source
4037 (origin
4038 (method url-fetch)
4039 (uri (string-append
4040 "https://github.com/aki2o/log4e/archive/v"
4041 version ".tar.gz"))
4042 (file-name (string-append name "-" version ".tar.gz"))
4043 (sha256
4044 (base32
4045 "0nbdpbw353snda3v19l9hsm6gimppwnpxj18amm350bm81lyim2g"))))
4046 (build-system emacs-build-system)
4047 (arguments
4048 `(#:phases
4049 (modify-phases %standard-phases
4050 (add-after 'unpack 'remove-tests
4051 ;; Guile builder complains about null characters in some
4052 ;; strings of test files. Remove "test" directory (it is not
4053 ;; needed anyway).
4054 (lambda _
4055 (delete-file-recursively "test"))))))
4056 (home-page "https://github.com/aki2o/log4e")
4057 (synopsis "Logging framework for elisp")
4058 (description
4059 "This package provides a logging framework for elisp. It allows
4060you to deal with multiple log levels.")
4061 (license license:gpl3+)))
ba117841
MO
4062
4063(define-public emacs-gntp
4064 (package
4065 (name "emacs-gntp")
4066 (version "0.1")
4067 (source
4068 (origin
4069 (method url-fetch)
4070 (uri (string-append
4071 "https://github.com/tekai/gntp.el/archive/v"
4072 version ".tar.gz"))
4073 (file-name (string-append name "-" version ".tar.gz"))
4074 (sha256
4075 (base32
4076 "16c1dfkia9yhl206bdhjr3b8kfvqcqr38jl5lq8qsyrrzsnmghny"))))
4077 (build-system emacs-build-system)
4078 (home-page "https://github.com/tekai/gntp.el")
4079 (synopsis "Growl Notification Protocol for Emacs")
4080 (description
4081 "This package implements the Growl Notification Protocol GNTP
4082described at @uref{http://www.growlforwindows.com/gfw/help/gntp.aspx}.
4083It is incomplete as it only lets you send but not receive
4084notifications.")
4085 (license license:bsd-3)))
2c5e31fa
MO
4086
4087(define-public emacs-alert
4088 (package
4089 (name "emacs-alert")
4090 (version "1.2")
4091 (source
4092 (origin
4093 (method url-fetch)
4094 (uri (string-append
4095 "https://github.com/jwiegley/alert/archive/v"
4096 version ".tar.gz"))
4097 (file-name (string-append name "-" version ".tar.gz"))
4098 (sha256
4099 (base32
4100 "1693kck3k2iz5zhpmxwqyafxm68hr6gzs60lkxd3j1wlp2c9fwyr"))))
4101 (build-system emacs-build-system)
4102 (propagated-inputs
4103 `(("emacs-gntp" ,emacs-gntp)
4104 ("emacs-log4e" ,emacs-log4e)))
4105 (home-page "https://github.com/jwiegley/alert")
4106 (synopsis "Growl-style notification system for Emacs")
4107 (description
4108 "Alert is a Growl-workalike for Emacs which uses a common notification
4109interface and multiple, selectable \"styles\", whose use is fully
4110customizable by the user.")
4111 (license license:gpl2+)))
c695ed3c
MO
4112
4113(define-public emacs-mu4e-alert
4114 (package
4115 (name "emacs-mu4e-alert")
dd69ff6d 4116 (version "1.0")
c695ed3c
MO
4117 (source
4118 (origin
4119 (method url-fetch)
4120 (uri (string-append
4121 "https://github.com/iqbalansari/mu4e-alert/archive/v"
4122 version ".tar.gz"))
4123 (file-name (string-append name "-" version ".tar.gz"))
4124 (sha256
4125 (base32
dd69ff6d 4126 "07qc834qnxn8xi4bw5nawj8g91bmkzw0r0vahkgysp7r9xrf57gj"))))
c695ed3c
MO
4127 (build-system emacs-build-system)
4128 (propagated-inputs
4129 `(("emacs-alert" ,emacs-alert)
4130 ("emacs-s" ,emacs-s)
4131 ("emacs-ht" ,emacs-ht)))
4132 (home-page "https://github.com/iqbalansari/mu4e-alert")
4133 (synopsis "Desktop notification for mu4e")
4134 (description
4135 "This package provides desktop notifications for mu4e.
4136Additionally it can display the number of unread emails in the
4137mode-line.")
4138 (license license:gpl3+)))
e967dd9c 4139
4140(define-public emacs-pretty-mode
4141 (package
4142 (name "emacs-pretty-mode")
4143 (version "2.0.3")
4144 (source
4145 (origin
4146 (method url-fetch)
4147 (uri (string-append "https://github.com/akatov/pretty-mode/"
4148 "archive/" version ".tar.gz"))
4149 (file-name (string-append name "-" version ".tar.gz"))
4150 (sha256
4151 (base32
4152 "1fan7m4vnqs8kpg7r54kx3g7faadkpkf9kzarfv8n57kq8w157pl"))))
4153 (build-system emacs-build-system)
4154 (home-page "https://github.com/akatov/pretty-mode")
4155 (synopsis "Redisplay parts of the buffer as Unicode symbols")
4156 (description
4157 "Emacs minor mode for redisplaying parts of the buffer as pretty symbols.")
4158 (license license:gpl3+)))
c1029f86
RW
4159
4160(define-public emacs-yasnippet
4161 (package
4162 (name "emacs-yasnippet")
4163 (version "0.11.0")
4164 (source (origin
4165 (method url-fetch)
4166 (uri (string-append "https://github.com/joaotavora/yasnippet/"
4167 "archive/" version ".tar.gz"))
4168 (file-name (string-append name "-" version ".tar.gz"))
4169 (sha256
4170 (base32
4171 "15di6mkkf09b7qddpsrm0qln02hji3sx8blya5jxssi9wxxx9iq5"))))
4172 (build-system emacs-build-system)
7bf837fd 4173 (home-page "https://github.com/joaotavora/yasnippet")
c1029f86
RW
4174 (synopsis "Yet another snippet extension for Emacs")
4175 (description
4176 "YASnippet is a template system for Emacs. It allows you to type an
4177abbreviation and automatically expand it into function templates.")
4178 (license license:gpl3+)))
55fa5349
AI
4179
4180(define-public emacs-memoize
4181 (package
4182 (name "emacs-memoize")
4183 (version "20130421.b55eab0")
4184 (source
4185 (origin
4186 (method git-fetch)
4187 (uri (git-reference
4188 (url "https://github.com/skeeto/emacs-memoize")
4189 (commit "b55eab0cb6ab05d941e07b8c01f1655c0cf1dd75")))
4190 (file-name (string-append name "-" version ".tar.gz"))
4191 (sha256
4192 (base32
4193 "0fjwlrdm270qcrqffvarw5yhijk656q4lam79ybhaznzj0dq3xpw"))))
4194 (build-system emacs-build-system)
4195 (arguments
4196 `(#:phases
4197 (modify-phases %standard-phases
4198 (add-before 'install 'check
4199 (lambda _
4200 (zero? (system* "emacs" "-batch" "-l" "memoize.el"
4201 "-l" "memoize-test.el"
4202 "-f" "ert-run-tests-batch-and-exit")))))))
4203 (home-page "https://github.com/skeeto/emacs-memoize")
4204 (synopsis "Emacs lisp memoization library")
4205 (description "@code{emacs-memoize} is an Emacs library for
4206memoizing functions.")
4207 (license license:unlicense)))
6b7e3362 4208
c86c1991
AI
4209(define-public emacs-linum-relative
4210 (package
4211 (name "emacs-linum-relative")
4212 (version "0.5")
4213 (source
4214 (origin
4215 (method url-fetch)
4216 (uri (string-append
4217 "https://github.com/coldnew/linum-relative/archive/"
4218 version ".tar.gz"))
4219 (file-name (string-append name "-" version ".tar.gz"))
4220 (sha256
4221 (base32
4222 "0s4frvr27866lw1rn3jal9wj5rkz9fx4yiszqv7w06azsdgsqksv"))))
4223 (build-system emacs-build-system)
4224 (home-page "https://github.com/coldnew/linum-relative")
4225 (synopsis "Relative line numbering for Emacs")
4226 (description "@code{emacs-linum-relative} displays the relative line
4227number on the left margin in Emacs.")
4228 (license license:gpl2+)))
4229
6b7e3362
VD
4230(define-public emacs-idle-highlight
4231 (package
4232 (name "emacs-idle-highlight")
4233 (version "1.1.3")
4234 (source
4235 (origin
4236 (method url-fetch)
4237 (uri (string-append
4238 "https://github.com/nonsequitur/idle-highlight-mode/archive/"
4239 version ".tar.gz"))
4240 (file-name (string-append name "-" version ".tar.gz"))
4241 (sha256
4242 (base32
4243 "0kdv10hrgqpskjh0zvpnzwlkn5bccnqxas62gkws6njln57bf8nl"))))
4244 (build-system emacs-build-system)
4245 (home-page "https://www.emacswiki.org/emacs/IdleHighlight")
d1e4ad1b 4246 (synopsis "Highlights all occurrences of the word the point is on")
6b7e3362
VD
4247 (description
4248 "This Emacs package provides @code{idle-highlight-mode} that sets
d1e4ad1b 4249 an idle timer to highlight all occurrences in the buffer of the word under
6b7e3362
VD
4250 the point.")
4251 (license license:gpl3+)))
6a91c5f2
VD
4252
4253(define-public emacs-ox-twbs
4254 (package
4255 (name "emacs-ox-twbs")
4256 (version "1.1.1")
4257 (source
4258 (origin
4259 (method url-fetch)
4260 (uri (string-append
4261 "https://github.com/marsmining/ox-twbs/archive/v"
4262 version ".tar.gz"))
4263 (file-name (string-append name "-" version ".tar.gz"))
4264 (sha256
4265 (base32
4266 "1zaq8dczq5wijjk36114k2x3hfrqig3lyx6djril6wyk67vczyqs"))))
4267 (build-system emacs-build-system)
4268 (home-page "https://github.com/marsmining/ox-twbs")
4269 (synopsis "Export org-mode docs as HTML compatible with Twitter Bootstrap")
4270 (description
4271 "This Emacs package outputs your org-mode docs with a simple, clean and
4272modern look. It implements a new HTML back-end for exporting org-mode docs as
4273HTML compatible with Twitter Bootstrap. By default, HTML is exported with
4274jQuery and Bootstrap resources included via osscdn.")
4275 (license license:gpl3+)))
239cf024
VD
4276
4277(define-public emacs-highlight-sexp
4278 (package
4279 (name "emacs-highlight-sexp")
4280 (version "1.0")
4281 (source
4282 (origin
4283 (method url-fetch)
4284 (uri (string-append
4285 "https://github.com/daimrod/highlight-sexp/archive/v"
4286 version ".tar.gz"))
4287 (file-name (string-append name "-" version ".tar.gz"))
4288 (sha256
4289 (base32
4290 "0jwx87qkln1rg9wmv4qkgkml935fh2pkgrg5x4ca6n5dgb4q6rj1"))))
4291 (build-system emacs-build-system)
4292 (home-page "https://github.com/daimrod/highlight-sexp")
4293 (synopsis "Minor mode that highlights the s-exp at the current position")
4294 (description
4295 "This Emacs package highlights the s-exp at the current position.")
4296 (license license:gpl3+)))
350cfccb 4297
acf7d4a7
KK
4298(define-public emacspeak
4299 (package
4300 (name "emacspeak")
231e48d6 4301 (version "46.0")
acf7d4a7
KK
4302 (source
4303 (origin
4304 (method url-fetch)
4305 (uri (string-append
4306 "https://github.com/tvraman/emacspeak/releases/download/"
4307 version "/emacspeak-" version ".tar.bz2"))
4308 (sha256
4309 (base32
231e48d6
KK
4310 "15x4yfp3wl2fxm1nkx6pz3clw6zyw3argcsqxgcx6pa28sivlg2n"))
4311 (modules '((guix build utils)))
4312 (snippet
4313 ;; Delete the bundled byte-compiled elisp files.
4314 '(for-each delete-file (find-files "lisp" "\\.elc$")))))
acf7d4a7
KK
4315 (build-system gnu-build-system)
4316 (arguments
4317 '(#:make-flags (list (string-append "prefix="
4318 (assoc-ref %outputs "out")))
4319 #:phases
4320 (modify-phases %standard-phases
4321 (replace 'configure
231e48d6
KK
4322 (lambda _
4323 ;; Configure Emacspeak according to etc/install.org.
acf7d4a7 4324 (zero? (system* "make" "config"))))
231e48d6
KK
4325 (add-after 'build 'build-espeak
4326 (lambda _
4327 (zero? (system* "make" "espeak"))))
4328 (replace 'install
acf7d4a7 4329 (lambda* (#:key outputs #:allow-other-keys)
231e48d6
KK
4330 (let* ((out (assoc-ref outputs "out"))
4331 (bin (string-append out "/bin"))
4332 (lisp (string-append out "/share/emacs/site-lisp/emacspeak"))
4333 (info (string-append out "/share/info")))
4334 ;; According to etc/install.org, the Emacspeak directory should
4335 ;; be copied to its installation destination.
4336 (for-each
4337 (lambda (file)
4338 (copy-recursively file (string-append lisp "/" file)))
4339 '("etc" "info" "lisp" "media" "servers" "sounds" "stumpwm"
4340 "xsl"))
4341 ;; Make sure emacspeak is loaded from the correct directory.
4342 (substitute* "etc/emacspeak.sh"
4343 (("exec emacs.*$")
4344 (string-append "exec emacs -l " lisp
4345 "/lisp/emacspeak-setup.el $CL_ALL")))
4346 ;; Install the convenient startup script.
4347 (mkdir-p bin)
4348 (copy-file "etc/emacspeak.sh" (string-append bin "/emacspeak")))
4349 #t))
4350 (add-after 'install 'wrap-program
acf7d4a7
KK
4351 (lambda* (#:key inputs outputs #:allow-other-keys)
4352 (let* ((out (assoc-ref outputs "out"))
4353 (emacspeak (string-append out "/bin/emacspeak"))
4354 (espeak (string-append (assoc-ref inputs "espeak")
4355 "/bin/espeak")))
4356 ;; The environment variable DTK_PROGRAM tells emacspeak what
4357 ;; program to use for speech.
4358 (wrap-program emacspeak
4359 `("DTK_PROGRAM" ":" prefix (,espeak)))
4360 #t))))
4361 #:tests? #f)) ; no check target
4362 (inputs
4363 `(("espeak" ,espeak)
4364 ("tcl" ,tcl)
4365 ("tclx" ,tclx)))
4366 (native-inputs `(("emacs" ,emacs-minimal)))
4367 (home-page "http://emacspeak.sourceforge.net")
4368 (synopsis "Audio desktop interface for Emacs")
4369 (description
4370 "Emacspeak is a speech interface that allows visually impaired users to
4371interact independently and efficiently with the computer. Audio formatting
4372--a technique pioneered by AsTeR-- and full support for W3C's Aural CSS (ACSS)
4373allows Emacspeak to produce rich aural presentations of electronic information.
4374By seamlessly blending all aspects of the Internet such as Web-surfing and
4375messaging, Emacspeak speech-enables local and remote information via a
4376consistent and well-integrated user interface.")
4377 (license license:gpl2+)))
4378
350cfccb
AP
4379(define-public emacs-adaptive-wrap
4380 (package
4381 (name "emacs-adaptive-wrap")
4382 (version "0.5")
4383 (source (origin
4384 (method url-fetch)
4385 (uri (string-append
4386 "http://elpa.gnu.org/packages/adaptive-wrap-"
4387 version ".el"))
4388 (sha256
4389 (base32
4390 "0frgmp8vrrml4iykm60j4d6cl9rbcivy9yh24q6kd10bcyx59ypy"))))
4391 (build-system emacs-build-system)
4392 (home-page "http://elpa.gnu.org/packages/adaptive-wrap.html")
4393 (synopsis "Smart line-wrapping with wrap-prefix")
4394 (description
4395 "This Emacs package provides the @code{adaptive-wrap-prefix-mode}
4396minor mode which sets the wrap-prefix property on the fly so that
4397single-long-line paragraphs get word-wrapped in a way similar to what
4398you'd get with @kbd{M-q} using @code{adaptive-fill-mode}, but without
4399actually changing the buffer's text.")
4400 (license license:gpl3+)))
0201c5d4
AI
4401
4402(define-public emacs-diminish
4403 (package
4404 (name "emacs-diminish")
4405 (version "0.45")
4406 (source
4407 (origin
4408 (method url-fetch)
4409 (uri (string-append
4410 "https://github.com/myrjola/diminish.el/archive/v"
4411 version ".tar.gz"))
4412 (file-name (string-append name "-" version ".tar.gz"))
4413 (sha256
4414 (base32
4415 "0i3629sv5cfrrb00hcnmaqzgs8mk36yasc1ax3ry1ga09nr6rkj9"))))
4416 (build-system emacs-build-system)
4417 (home-page "https://github.com/myrjola/diminish.el")
4418 (synopsis "Diminish minor modes with no modeline display")
4419 (description "@code{emacs-diminish} implements hiding or
4420abbreviation of the mode line displays (lighters) of minor modes.")
4421 (license license:gpl2+)))
b247fb86
AI
4422
4423(define-public emacs-use-package
4424 (package
4425 (name "emacs-use-package")
4426 (version "2.3")
4427 (source
4428 (origin
4429 (method url-fetch)
4430 (uri (string-append
4431 "https://github.com/jwiegley/use-package/archive/"
4432 version ".tar.gz"))
4433 (file-name (string-append name "-" version ".tar.gz"))
4434 (sha256
4435 (base32
4436 "0x4h136jb3imyli6zsh7dyzjrra6pv0v6b0yk94jdng3rdfcmsf5"))))
4437 (build-system emacs-build-system)
4438 (propagated-inputs
4439 `(("emacs-diminish" ,emacs-diminish)))
4440 (arguments
4441 `(#:phases
4442 (modify-phases %standard-phases
4443 (add-before 'install 'check
4444 (lambda _
4445 (zero? (system* "emacs" "--batch" "-L" "."
4446 "-l" "use-package-tests.el"
4447 "-f" "ert-run-tests-batch-and-exit"))
4448 ;; Tests fail in this release, but have been fixed in
4449 ;; upstream commit 7956d40eed57d6c06bef36ebc174cf57d934e30d
4450 #t)))))
4451 (home-page "https://github.com/jwiegley/use-package")
4452 (synopsis "Declaration for simplifying your .emacs")
4453 (description "The use-package macro allows you to isolate package
4454configuration in your @file{.emacs} file in a way that is both
4455performance-oriented and tidy.")
4456 (license license:gpl2+)))
e2345554 4457
8ad5a20f
MO
4458(define-public emacs-strace-mode
4459 (let* ((commit "6a69b4b06db6797af56f33eda5cb28af94e59f11")
4460 (revision "1"))
4461 (package
4462 (name "emacs-strace-mode")
4463 (version (string-append "0.0.2-" revision "." (string-take commit 7)))
4464 (source (origin
4465 (method git-fetch)
4466 (uri (git-reference
4467 (url "https://github.com/pkmoore/strace-mode")
4468 (commit commit)))
4469 (file-name (string-append name "-" version "-checkout"))
4470 (sha256
4471 (base32
4472 "1lbk2kzdznf2bkfazizfbimaxxzfzv00lrz1ran9dc2zqbc0bj9f"))))
4473 (build-system emacs-build-system)
4474 (home-page "https://github.com/pkmoore/strace-mode")
4475 (synopsis "Emacs major mode to highlight strace outputs")
4476 (description "@code{emacs-strace-mode} provides an Emacs major mode
4477 highlighting strace outputs.")
4478 (license license:gpl3+))))
4479
e2345554
CM
4480(define-public emacs-default-encrypt
4481 (package
4482 (name "emacs-default-encrypt")
4483 (version "4.3")
4484 (source
4485 (origin
4486 (method url-fetch)
4487 (uri (string-append
a97f6da4
CM
4488 "https://www.informationelle-selbstbestimmung-im-internet.de"
4489 "/emacs/jl-encrypt" version "/jl-encrypt.el"))
e2345554
CM
4490 (file-name (string-append "jl-encrypt-" version ".el"))
4491 (sha256
4492 (base32
4493 "16i3rlfp3jxlqvndn8idylhmczync3gwmy8a019v29vyr48rnnr0"))))
4494 (build-system emacs-build-system)
4495 (home-page "https://www.informationelle-selbstbestimmung-im-internet.de/Emacs.html")
4496 (synopsis "Automatically encrypt or sign Gnus messages in Emacs")
4497 (description
4498 "DefaultEncrypt is designed to be used with Gnus in Emacs. It
4499automatically encrypts messages that you send (e.g., email) when public keys
4500for all recipients are available, and it protects you from accidentally
4501sending un-encrypted messages. It can also be configured to automatically
4502sign messages that you send. For details and instructions on how to use
4503DefaultEncrypt, please refer to the home page or read the comments in the
4504source file, @file{jl-encrypt.el}.")
4505 (license license:gpl3+)))
25e810b8
AI
4506
4507(define-public emacs-htmlize
4508 (package
4509 (name "emacs-htmlize")
4510 (version "1.51")
4511 (source
4512 (origin
4513 (method url-fetch)
4514 (uri (string-append
4515 "https://github.com/hniksic/emacs-htmlize/archive/release/"
4516 version ".tar.gz"))
4517 (file-name (string-append name "-" version ".tar.gz"))
4518 (sha256
4519 (base32
4520 "1fy1lybzrxl8a8r88f6p19nz8ygmvcxhxbnymkxh7jqaz25viwld"))))
4521 (build-system emacs-build-system)
4522 (home-page "https://github.com/hniksic/emacs-htmlize")
4523 (synopsis "Convert buffer text and decorations to HTML")
4524 (description "@code{emacs-htmlize} converts the buffer text and
4525the associated decorations to HTML. Output to CSS, inline CSS and
4526fonts is supported.")
4527 (license license:gpl2+)))
0ee59b81
AI
4528
4529(define-public emacs-xmlgen
4530 (package
4531 (name "emacs-xmlgen")
4532 (version "0.5")
4533 (source
4534 (origin
4535 (method url-fetch)
4536 (uri (string-append
4537 "https://github.com/philjackson/xmlgen/archive/"
4538 version ".tar.gz"))
4539 (file-name (string-append name "-" version ".tar.gz"))
4540 (sha256
4541 (base32
4542 "0zay490vjby3f7455r0vydmjg7q1gwc78hilpfb0rg4gwz224z8r"))))
4543 (build-system emacs-build-system)
4544 (arguments
4545 `(#:phases
4546 (modify-phases %standard-phases
4547 (add-before 'install 'check
4548 (lambda _
4549 (zero? (system* "emacs" "--batch" "-L" "."
4550 "-l" "xmlgen-test.el"
4551 "-f" "ert-run-tests-batch-and-exit")))))))
4552 (home-page "https://github.com/philjackson/xmlgen")
4553 (synopsis "S-expression to XML domain specific language (DSL) in
4554Emacs Lisp")
4555 (description "@code{emacs-xmlgen} provides S-expression to XML
4556conversion for Emacs Lisp.")
4557 (license license:gpl2+)))
8d50a990
AI
4558
4559(define-public emacs-cdlatex
4560 (package
4561 (name "emacs-cdlatex")
4562 (version "4.7")
4563 (source
4564 (origin
4565 (method url-fetch)
4566 (uri (string-append
4567 "https://github.com/cdominik/cdlatex/archive/"
4568 version ".tar.gz"))
4569 (file-name (string-append name "-" version ".tar.gz"))
4570 (sha256
4571 (base32
4572 "0pivapphmykc6vhvpx7hdyl55ls37vc4jcrxpvs4yk7jzcmwa9xp"))))
4573 (build-system emacs-build-system)
4574 (home-page "https://github.com/cdominik/cdlatex")
4575 (synopsis "Fast Emacs input methods for LaTeX environments and
4576math")
4577 (description "CDLaTeX is an Emacs minor mode supporting fast
4578insertion of environment templates and math in LaTeX. Similar
4579commands are also offered as part of the AUCTeX package, but it is not
4580the same - CDLaTeX focuses on speediness for inserting LaTeX
4581constructs.")
4582 (license license:gpl3+)))
deddeb44
FS
4583
4584(define-public emacs-xelb
4585 (package
4586 (name "emacs-xelb")
4587 (version "0.12")
4588 (source (origin
4589 (method url-fetch)
4590 (uri (string-append "https://elpa.gnu.org/packages/xelb-"
4591 version ".tar"))
4592 (sha256
4593 (base32
4594 "0i9n0f3ibj4a5pwcsvwrah9m0fz32m0x6a9wsmjn3li20v8pcb81"))))
4595 (build-system emacs-build-system)
4596 ;; The following functions and variables needed by emacs-xelb are
4597 ;; not included in emacs-minimal:
4598 ;; x-display-screens, x-keysym-table, x-alt-keysym, x-meta-keysym
4599 ;; x-hyper-keysym, x-super-keysym, libxml-parse-xml-region
4600 ;; x-display-pixel-width, x-display-pixel-height
4601 (arguments
4602 `(#:emacs ,emacs
4603 #:phases
4604 (modify-phases %standard-phases
4605 (add-after 'unpack 'regenerate-el-files
4606 (lambda* (#:key inputs #:allow-other-keys)
4607 (zero? (system* "make"
4608 (string-append "PROTO_PATH="
4609 (assoc-ref inputs "xcb-proto")
4610 "/share/xcb")
4611 (string-append "EMACS_BIN="
4612 (assoc-ref inputs "emacs")
4613 "/bin/emacs -Q"))))))))
4614 (native-inputs `(("xcb-proto" ,xcb-proto)))
4615 (home-page "https://github.com/ch11ng/xelb")
4616 (synopsis "X protocol Emacs Lisp binding")
4617 (description "@code{emacs-xelb} is a pure Emacs Lisp implementation of the
4618X11 protocol based on the XML description files from the XCB project. It
4619features an object-oriented API and permits a certain degree of concurrency.
4620It should enable you to implement low-level X11 applications.")
4621 (license license:gpl3+)))
2b3b745c
FS
4622
4623(define-public emacs-exwm
4624 (package
4625 (name "emacs-exwm")
c10d887d 4626 (version "0.14")
2b3b745c
FS
4627 (synopsis "Emacs X window manager")
4628 (source (origin
4629 (method url-fetch)
4630 (uri (string-append "https://elpa.gnu.org/packages/exwm-"
4631 version ".tar"))
4632 (sha256
4633 (base32
c10d887d 4634 "14hjjpbasm84p54fxy73fg7g1fdwqkvisdw8dwwgzkflmd647mkx"))))
2b3b745c
FS
4635 (build-system emacs-build-system)
4636 (propagated-inputs
4637 `(("emacs-xelb" ,emacs-xelb)))
4638 (inputs
4639 `(("xhost" ,xhost)
4640 ("dbus" ,dbus)))
4641 ;; The following functions and variables needed by emacs-exwm are
4642 ;; not included in emacs-minimal:
4643 ;; scroll-bar-mode, fringe-mode
4644 ;; x-display-pixel-width, x-display-pixel-height
4645 (arguments
4646 `(#:emacs ,emacs
4647 #:phases
4648 (modify-phases %standard-phases
4649 (add-after 'build 'install-xsession
4650 (lambda* (#:key inputs outputs #:allow-other-keys)
4651 (let* ((out (assoc-ref outputs "out"))
4652 (xsessions (string-append out "/share/xsessions"))
4653 (bin (string-append out "/bin"))
4654 (exwm-executable (string-append bin "/exwm")))
4655 ;; Add a .desktop file to xsessions
4656 (mkdir-p xsessions)
4657 (mkdir-p bin)
4658 (with-output-to-file
4659 (string-append xsessions "/exwm.desktop")
4660 (lambda _
4661 (format #t "[Desktop Entry]~@
4662 Name=~a~@
4663 Comment=~a~@
4664 Exec=~a~@
4665 TryExec=~@*~a~@
4666 Type=Application~%" ,name ,synopsis exwm-executable)))
4667 ;; Add a shell wrapper to bin
dc443f51
AI
4668 ;; Set DISPLAY variable to work around
4669 ;; https://github.com/ch11ng/exwm/issues/213
2b3b745c
FS
4670 (with-output-to-file exwm-executable
4671 (lambda _
4672 (format #t "#!~a ~@
dc443f51 4673 export DISPLAY=:0 ~@
2b3b745c 4674 ~a +SI:localuser:$USER ~@
11f8e028 4675 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
2b3b745c
FS
4676 (string-append (assoc-ref inputs "bash") "/bin/sh")
4677 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
4678 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
4679 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
4680 '(cond
4681 ((file-exists-p "~/.exwm")
4682 (load-file "~/.exwm"))
4683 ((not (featurep 'exwm))
4684 (require 'exwm)
4685 (require 'exwm-config)
4686 (exwm-config-default)
87c95cb2
AI
4687 (message (concat "exwm configuration not found. "
4688 "Falling back to default configuration...")))))))
2b3b745c
FS
4689 (chmod exwm-executable #o555)
4690 #t))))))
4691 (home-page "https://github.com/ch11ng/exwm")
4692 (description "EXWM is a full-featured tiling X window manager for Emacs
4693built on top of XELB.")
4694 (license license:gpl3+)))
21b99aad 4695
58addd2b
FS
4696(define-public emacs-switch-window
4697 (package
4698 (name "emacs-switch-window")
adaebe80 4699 (version "1.5.1")
58addd2b
FS
4700 (source (origin
4701 (method url-fetch)
4702 (uri (string-append
4703 "https://github.com/dimitri/switch-window/archive/v"
4704 version ".tar.gz"))
4705 (file-name (string-append name "-" version ".tar.gz"))
4706 (sha256
4707 (base32
adaebe80 4708 "07f99apxscwvsp2bjxsbi462c433kcglrjh6xl0gyafs1nvvvnd8"))))
58addd2b
FS
4709 (build-system emacs-build-system)
4710 (home-page "https://github.com/dimitri/switch-window")
4711 (synopsis "Emacs window switch tool")
4712 (description "Switch-window is an emacs window switch tool, which
4713offer a visual way to choose a window to switch to, delete, split or
4714other operations.")
4715 (license license:wtfpl2)))
4716
f4ade9b6
FS
4717(define-public emacs-exwm-x
4718 (package
4719 (name "emacs-exwm-x")
2a9a2207 4720 (version "1.7.2")
f4ade9b6
FS
4721 (synopsis "Derivative window manager based on EXWM")
4722 (source (origin
4723 (method url-fetch)
4724 (uri (string-append
4725 "https://github.com/tumashu/exwm-x/archive/v"
4726 version ".tar.gz"))
4727 (file-name (string-append name "-" version ".tar.gz"))
4728 (sha256
4729 (base32
2a9a2207 4730 "1ny13i82fb72917jgl0ndwjg1x6l9f8gfhcx7cwlwhh5saq23mvy"))))
f4ade9b6
FS
4731 (build-system emacs-build-system)
4732 (propagated-inputs
4733 `(("emacs-exwm" ,emacs-exwm)
4734 ("emacs-switch-window" ,emacs-switch-window)
2a9a2207
FS
4735 ("emacs-ivy" ,emacs-ivy)
4736 ("emacs-use-package" ,emacs-use-package)))
f4ade9b6
FS
4737 (inputs
4738 `(("xhost" ,xhost)
4739 ("dbus" ,dbus)))
4740 ;; Need emacs instead of emacs-minimal,
4741 ;; for emacs's bin path will be inserted into bin/exwm-x file.
4742 (arguments
4743 `(#:emacs ,emacs
4744 #:phases
4745 (modify-phases %standard-phases
4746 (add-after 'build 'install-xsession
4747 (lambda* (#:key inputs outputs #:allow-other-keys)
4748 (let* ((out (assoc-ref outputs "out"))
4749 (xsessions (string-append out "/share/xsessions"))
4750 (bin (string-append out "/bin"))
4751 (exwm-executable (string-append bin "/exwm-x")))
4752 ;; Add a .desktop file to xsessions
4753 (mkdir-p xsessions)
4754 (mkdir-p bin)
4755 (with-output-to-file
4756 (string-append xsessions "/exwm-x.desktop")
4757 (lambda _
4758 (format #t "[Desktop Entry]~@
4759 Name=~a~@
4760 Comment=~a~@
4761 Exec=~a~@
4762 TryExec=~@*~a~@
4763 Type=Application~%" ,name ,synopsis exwm-executable)))
4764 ;; Add a shell wrapper to bin
4765 ;; Set DISPLAY variable to work around
4766 ;; https://github.com/ch11ng/exwm/issues/213
4767 (with-output-to-file exwm-executable
4768 (lambda _
4769 (format #t "#!~a ~@
4770 export DISPLAY=:0 ~@
4771 ~a +SI:localuser:$USER ~@
4772 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
4773 (string-append (assoc-ref inputs "bash") "/bin/sh")
4774 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
4775 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
4776 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
4777 '(require 'exwmx-loader))))
4778 (chmod exwm-executable #o555)
4779 #t))))))
4780 (home-page "https://github.com/tumashu/exwm-x")
4781 (description "EXWM-X is a derivative window manager based on EXWM, with focus
4782on mouse-control.")
4783 (license license:gpl3+)))
4784
21b99aad
AI
4785(define-public emacs-gnuplot
4786 (package
4787 (name "emacs-gnuplot")
4788 (version "0.7.0")
4789 (source
4790 (origin
4791 (method url-fetch)
4792 (uri (string-append
4793 "https://github.com/bruceravel/gnuplot-mode/archive/"
4794 version ".tar.gz"))
4795 (file-name (string-append name "-" version ".tar.gz"))
4796 (sha256
4797 (base32
4798 "0glzymrn138lwig7p4cj17x4if5jisr6l4g6wcbxisqkqgc1h01i"))))
4799 (build-system gnu-build-system)
4800 (native-inputs `(("emacs" ,emacs-minimal)))
4801 (arguments
4802 (let ((elisp-dir (string-append "/share/emacs/site-lisp/guix.d"
4803 "/gnuplot-" version)))
4804 `(#:modules ((guix build gnu-build-system)
4805 (guix build utils)
4806 (guix build emacs-utils))
4807 #:imported-modules (,@%gnu-build-system-modules
4808 (guix build emacs-utils))
4809 #:configure-flags
4810 (list (string-append "EMACS=" (assoc-ref %build-inputs "emacs")
4811 "/bin/emacs")
4812 (string-append "--with-lispdir=" %output ,elisp-dir))
4813 #:phases
4814 (modify-phases %standard-phases
4815 (add-after 'install 'generate-autoloads
4816 (lambda* (#:key outputs #:allow-other-keys)
4817 (emacs-generate-autoloads
4818 "gnuplot"
4819 (string-append (assoc-ref outputs "out") ,elisp-dir))
4820 #t))))))
4821 (home-page "https://github.com/bruceravel/gnuplot-mode")
4822 (synopsis "Emacs major mode for interacting with gnuplot")
4823 (description "@code{emacs-gnuplot} is an emacs major mode for interacting
4824with gnuplot.")
4825 (license license:gpl2+)))
860f73c6
AI
4826
4827(define-public emacs-transpose-frame
4828 (package
4829 (name "emacs-transpose-frame")
4830 (version "0.1.0")
4831 (source
4832 (origin
4833 (method url-fetch)
4834 (uri "http://www.emacswiki.org/emacs/download/transpose-frame.el")
8a421ddb 4835 (file-name (string-append "transpose-frame-" version ".el"))
860f73c6
AI
4836 (sha256
4837 (base32
4838 "1f67yksgw9s6j0033hmqzaxx2a93jm11sd5ys7cc3li5gfh680m4"))))
4839 (build-system emacs-build-system)
4840 (home-page "https://www.emacswiki.org/emacs/TransposeFrame")
4841 (synopsis "Transpose window arrangement in current frame")
4842 (description "@code{emacs-transpose-frame} provides some interactive
4843functions which allows users to transpose windows arrangement in currently
4844selected frame.")
4845 (license license:bsd-2)))
a34242ee
KM
4846
4847(define-public emacs-key-chord
4848 (package
4849 (name "emacs-key-chord")
4850 (version "0.6")
4851 (source
4852 (origin
4853 (method url-fetch)
4854 (uri "https://www.emacswiki.org/emacs/download/key-chord.el")
a742becd 4855 (file-name (string-append "key-chord-" version ".el"))
a34242ee
KM
4856 (sha256
4857 (base32
4858 "03m44pqggfrd53nh9dvpdjgm0rvca34qxmd30hr33hzprzjambxg"))))
4859 (build-system emacs-build-system)
4860 (home-page "https://www.emacswiki.org/emacs/key-chord.el")
4861 (synopsis "Map pairs of simultaneously pressed keys to Emacs commands")
4862 (description "@code{emacs-key-chord} provides @code{key-chord-mode}, a
4863mode for binding key chords to commands. A key chord is defined as two keys
4864pressed simultaneously or a single key quickly pressed twice.")
4865 (license license:gpl2+)))
a993add1
AI
4866
4867(define-public emacs-evil-surround
4868 (package
4869 (name "emacs-evil-surround")
4870 (version "1.0.0")
4871 (source
4872 (origin
4873 (method url-fetch)
4874 (uri (string-append
4875 "https://github.com/timcharper/evil-surround/archive/v"
4876 version ".tar.gz"))
4877 (file-name (string-append name "-" version ".tar.gz"))
4878 (sha256
4879 (base32
4880 "0p572jgic3q1ia1nz37kclir729ay6i2f4sa7wnaapyxly2lwb3r"))))
4881 (build-system emacs-build-system)
4882 (propagated-inputs
4883 `(("emacs-evil" ,emacs-evil)))
4884 (home-page "https://github.com/timcharper/evil-surround")
4885 (synopsis "Easily modify surrounding parantheses and quotes")
4886 (description "@code{emacs-evil-surround} allows easy deletion, change and
4887addition of surrounding pairs, such as parantheses and quotes, in evil mode.")
4888 (license license:gpl3+)))
2406766e
AI
4889
4890(define-public emacs-evil-commentary
4891 (package
4892 (name "emacs-evil-commentary")
4893 (version "2.1.1")
4894 (source
4895 (origin
4896 (method url-fetch)
4897 (uri (string-append
4898 "https://github.com/linktohack/evil-commentary/archive/v"
4899 version ".tar.gz"))
4900 (file-name (string-append name "-" version ".tar.gz"))
4901 (sha256
4902 (base32
4903 "1jdya0i921nwskwrzdsj0vrr3m7gm49dy6f6pk9p5nxaarfxk230"))))
4904 (build-system emacs-build-system)
4905 (propagated-inputs
4906 `(("emacs-evil" ,emacs-evil)))
4907 (home-page "https://github.com/linktohack/evil-commentary")
4908 (synopsis "Comment out code in evil mode")
4909 (description "@code{emacs-evil-commentary} adds keybindings to easily
4910comment out lines of code in evil mode. It provides @code{gcc} to comment out
4911lines, and @code{gc} to comment out the target of a motion.")
4912 (license license:gpl3+)))
99d406c9
AI
4913
4914;; Tests for emacs-ansi have a circular dependency with ert-runner, and
4915;; therefore cannot be run
4916(define-public emacs-ansi
4917 (package
4918 (name "emacs-ansi")
4919 (version "0.4.1")
4920 (source
4921 (origin
4922 (method url-fetch)
4923 (uri (string-append "https://github.com/rejeep/ansi.el/archive/v"
4924 version ".tar.gz"))
4925 (file-name (string-append name "-" version ".tar.gz"))
4926 (sha256
4927 (base32
4928 "13jj4vbi98j3p17hs99bmy7g21jd5h4v3wpxk4pkvhylm3bfwjw8"))))
4929 (build-system emacs-build-system)
4930 (propagated-inputs
4931 `(("emacs-dash" ,emacs-dash)
4932 ("emacs-s" ,emacs-s)))
4933 (home-page "https://github.com/rejeep/ansi.el")
4934 (synopsis "Convert strings to ANSI")
4935 (description "@code{emacs-ansi} defines functions that turns simple
4936strings to ANSI strings. Turning a string into an ANSI string can be to add
4937color to a text, add color in the background of a text or adding a style, such
4938as bold, underscore or italic.")
4939 (license license:gpl3+)))
605ecbcb
AI
4940
4941;; Tests for emacs-commander have a circular dependency with ert-runner, and
4942;; therefore cannot be run
4943(define-public emacs-commander
4944 (package
4945 (name "emacs-commander")
4946 (version "0.7.0")
4947 (source
4948 (origin
4949 (method url-fetch)
4950 (uri (string-append "https://github.com/rejeep/commander.el/archive/v"
4951 version ".tar.gz"))
4952 (file-name (string-append name "-" version ".tar.gz"))
4953 (sha256
4954 (base32
4955 "196s2i15z7gwxa97l1wkxvjnfmj5n38wwm6d3g4zz15l2vqggc2y"))))
4956 (build-system emacs-build-system)
4957 (propagated-inputs
4958 `(("emacs-dash" ,emacs-dash)
4959 ("emacs-f" ,emacs-f)
4960 ("emacs-s" ,emacs-s)))
4961 (home-page "https://github.com/rejeep/commander.el")
4962 (synopsis "Emacs command line parser")
4963 (description "@code{emacs-commander} provides command line parsing for
4964Emacs.")
4965 (license license:gpl3+)))
87449013
AI
4966
4967;; Tests for ert-runner have a circular dependency with ecukes, and therefore
4968;; cannot be run
4969(define-public ert-runner
4970 (let ((dependencies
4971 `(("emacs-ansi" ,emacs-ansi)
4972 ("emacs-commander" ,emacs-commander)
4973 ("emacs-dash" ,emacs-dash)
4974 ("emacs-f" ,emacs-f)
4975 ("emacs-s" ,emacs-s)
4976 ("emacs-shut-up" ,emacs-shut-up))))
4977 (package
4978 (name "ert-runner")
4979 (version "0.7.0")
4980 (source
4981 (origin
4982 (method url-fetch)
4983 (uri (string-append "https://github.com/rejeep/ert-runner.el/archive/v"
4984 version ".tar.gz"))
4985 (file-name (string-append name "-" version ".tar.gz"))
4986 (sha256
4987 (base32
4988 "1657nck9i96a4xgl8crfqq0s8gflzp21pkkzwg6m3z5npjxklgwp"))))
4989 (build-system emacs-build-system)
4990 (inputs dependencies)
4991 (arguments
4992 `(#:phases
4993 (modify-phases %standard-phases
4994 (add-after 'install 'install-executable
4995 (lambda* (#:key inputs outputs #:allow-other-keys)
4996 (let ((out (assoc-ref outputs "out")))
4997 (substitute* "bin/ert-runner"
4998 (("ERT_RUNNER=\"\\$\\(dirname \\$\\(dirname \\$0\\)\\)")
4999 (string-append "ERT_RUNNER=\"" out
5000 "/share/emacs/site-lisp/guix.d/"
5001 ,name "-" ,version)))
5002 (install-file "bin/ert-runner" (string-append out "/bin"))
5003 (wrap-program (string-append out "/bin/ert-runner")
5004 (list "EMACSLOADPATH" ":" '=
5005 (append
5006 ,(match dependencies
5007 (((labels packages) ...)
5008 `(map (lambda (label package version)
5009 (string-append (assoc-ref inputs label)
5010 "/share/emacs/site-lisp/guix.d/"
5011 (string-drop package 6)
5012 "-" version))
5013 ',labels
5014 ',(map package-name packages)
5015 ',(map package-version packages))))
5016 ;; empty element to include the default load path as
5017 ;; determined by emacs' standard initialization
5018 ;; procedure
5019 (list ""))))
45f523d9
MC
5020 #t))))
5021 #:include (cons* "^reporters/.*\\.el$" %default-include)))
87449013
AI
5022 (home-page "https://github.com/rejeep/ert-runner.el")
5023 (synopsis "Opinionated Ert testing workflow")
5024 (description "@code{ert-runner} is a tool for Emacs projects tested
5025using ERT. It assumes a certain test structure setup and can therefore make
5026running tests easier.")
5027 (license license:gpl3+))))
7a0efa77
JN
5028
5029(define-public emacs-disable-mouse
5030 (package
5031 (name "emacs-disable-mouse")
5032 (version "0.2")
5033 (source
5034 (origin
5035 (method url-fetch)
5036 (uri (string-append
5037 "https://github.com/purcell/disable-mouse/archive/"
5038 version ".tar.gz"))
5039 (file-name (string-append name "-" version ".tar.gz"))
5040 (sha256
5041 (base32
5042 "0haqpq23r1wx04lsqrrg3p5visg9hx5i36dg55ab003wfsrlrzbc"))))
5043 (build-system emacs-build-system)
5044 (home-page "https://github.com/purcell/disable-mouse")
5045 (synopsis "Disable mouse commands globally")
5046 (description
5047 "Provides @code{disable-mouse-mode} and @code{global-disable-mouse-mode},
5048pair of minor modes which suppress all mouse events by intercepting them and
5049running a customisable handler command (@code{ignore} by default). ")
5050 (license license:gpl3+)))
ce676015
JR
5051
5052(define-public emacs-restclient
5053 (let ((commit "07a3888bb36d0e29608142ebe743b4362b800f40")
5054 (revision "1")) ;Guix package revision,
5055 ;upstream doesn't have official releases
5056 (package
5057 (name "emacs-restclient")
5058 (version (string-append revision "."
5059 (string-take commit 7)))
5060 (source (origin
5061 (method git-fetch)
5062 (uri (git-reference
5063 (url "https://github.com/pashky/restclient.el.git")
5064 (commit commit)))
5065 (sha256
5066 (base32
5067 "00lmjhb5im1kgrp54yipf1h9pshxzgjlg71yf2rq5n973gvb0w0q"))
5068 (file-name (git-file-name name version))))
5069 (build-system emacs-build-system)
5070 (propagated-inputs
5071 `(("emacs-helm" ,emacs-helm)))
5072 (home-page "https://github.com/pashky/restclient.el")
5073 (synopsis "Explore and test HTTP REST webservices")
5074 (description
5075 "This tool allows for testing and exploration of HTTP REST Web services
5076from within Emacs. Restclient runs queries from a plan-text query sheet,
5077displays results pretty-printed in XML or JSON with @code{restclient-mode}")
5078 (license license:public-domain))))
730c0790
OP
5079
5080(define-public emacs-dired-hacks
5081 (let ((commit "eda68006ce73bbf6b9b995bfd70d08bec8cade36")
5082 (revision "1"))
5083 (package
5084 (name "emacs-dired-hacks")
5085 (version (string-append "0.0.1-" revision "."
5086 (string-take commit 7)))
5087 (source (origin
5088 (method git-fetch)
5089 (uri (git-reference
5090 (url "https://github.com/Fuco1/dired-hacks.git")
5091 (commit commit)))
5092 (file-name (string-append name "-" version "-checkout"))
5093 (sha256
5094 (base32
5095 "1w7ssl9zssn5rcha6apf4h8drkd02k4xgvs203bdbqyqp9wz9brx"))))
5096 (build-system emacs-build-system)
5097 (propagated-inputs
5098 `(("emacs-dash" ,emacs-dash)
5099 ("emacs-f" ,emacs-f)
5100 ("emacs-s" ,emacs-s)))
5101 (home-page "https://github.com/Fuco1/dired-hacks")
5102 (synopsis
5103 "Collection of useful dired additions")
5104 (description
5105 "Collection of Emacs dired mode additions:
5106@itemize
5107@item dired-avfs
5108@item dired-columns
5109@item dired-filter
5110@item dired-hacks-utils
5111@item dired-images
5112@item dired-list
5113@item dired-narrow
5114@item dired-open
5115@item dired-rainbow
5116@item dired-ranger
5117@item dired-subtree
5118@item dired-tagsistant
5119@end itemize\n")
5120 (license license:gpl3+))))
1a80e4d7
OP
5121
5122(define-public emacs-which-key
5123 (package
5124 (name "emacs-which-key")
5125 (version "3.0.1")
5126 (source
5127 (origin
5128 (method url-fetch)
5129 (uri (string-append
5130 "https://github.com/justbur/emacs-which-key/archive/v"
5131 version ".tar.gz"))
5132 (sha256
5133 (base32
5134 "0zc9yivdkbxmcllhlbbcvsbj8g8nzzgs0xib488s08p4s0l7xs8m"))
5135 (file-name (string-append name "-" version ".tar.gz"))))
5136 (build-system emacs-build-system)
5137 (arguments
5138 `(#:phases
5139 (modify-phases %standard-phases
5140 (add-before 'install 'check
5141 (lambda _
5142 (zero? (system* "emacs" "--batch" "-L" "."
5143 "-l" "which-key-tests.el"
5144 "-f" "ert-run-tests-batch-and-exit")))))))
5145 (home-page "https://github.com/justbur/emacs-which-key")
5146 (synopsis "Display available key bindings in popup")
2482c02f
AI
5147 (description
5148 "@code{emacs-which-key} is a minor mode for Emacs that displays the key
5149bindings following your currently entered incomplete command (a prefix) in a
5150popup. For example, after enabling the minor mode if you enter C-x and wait
5151for the default of 1 second, the minibuffer will expand with all of the
5152available key bindings that follow C-x (or as many as space allows given your
5153settings).")
1a80e4d7 5154 (license license:gpl3+)))
c97979d6
OP
5155
5156(define-public emacs-org-edit-latex
5157 (package
5158 (name "emacs-org-edit-latex")
5159 (version "0.8.0")
5160 (source
5161 (origin
5162 (method url-fetch)
5163 (uri (string-append
5164 "https://github.com/et2010/org-edit-latex/archive/v"
5165 version ".tar.gz"))
5166 (file-name (string-append name "-" version ".tar.gz"))
5167 (sha256
5168 (base32
5169 "1y4h6wrs8286h9pbsv4d8fr67a885vz8b2k80qgv5qddipi2i78p"))))
5170 (build-system emacs-build-system)
5171 (propagated-inputs
5172 `(("emacs-auctex" ,emacs-auctex)
5173 ;; The version of org in Emacs 25.2 is not sufficient, because the
5174 ;; `org-latex-make-preamble' function is required.
5175 ("emacs-org" ,emacs-org)))
5176 (home-page "https://github.com/et2010/org-edit-latex")
5177 (synopsis "Edit a latex fragment just like editing a src block")
5178 (description "@code{emacs-org-edit-latex} is an extension for org-mode.
5179It lets you edit a latex fragment in a dedicated buffer just like editing a
5180src block.")
5181 (license license:gpl3+)))
aadd75ac
OP
5182
5183(define-public emacs-emamux
5184 (package
5185 (name "emacs-emamux")
5186 (version "0.14")
5187 (source (origin
5188 (method url-fetch)
5189 (uri (string-append
5190 "https://github.com/syohex/emacs-emamux/archive/"
5191 version ".tar.gz"))
5192 (file-name (string-append name "-" version ".tar.gz"))
5193 (sha256
5194 (base32
5195 "0wlqg4icy037bj70b0qmhvwvmiwhagpnx6pnxhq6gzy1hvwlilkx"))))
5196 (build-system emacs-build-system)
5197 (home-page "https://github.com/syohex/emacs-emamux")
5198 (synopsis "Manipulate Tmux from Emacs")
5199 (description
5200 "@code{emacs-emamux} lets Emacs interact with the @code{tmux} terminal
5201multiplexer.")
5202 (license license:gpl3+)))