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