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