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