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