gnu: Add emacs-gitpatch.
[jackhill/guix/guix.git] / gnu / packages / emacs.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2014 Taylan Ulrich Bayirli/Kammer <taylanbayirli@gmail.com>
3 ;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
4 ;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
5 ;;; Copyright © 2014, 2015, 2016, 2017 Alex Kost <alezost@gmail.com>
6 ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
7 ;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
8 ;;; Copyright © 2016, 2017 Chris Marusich <cmmarusich@gmail.com>
9 ;;; Copyright © 2015, 2016 Christopher Allan Webber <cwebber@dustycloud.org>
10 ;;; Copyright © 2016 Adriano Peluso <catonano@gmail.com>
11 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
12 ;;; Copyright © 2016 David Thompson <davet@gnu.org>
13 ;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
14 ;;; Copyright © 2016, 2017 Roel Janssen <roel@gnu.org>
15 ;;; Copyright © 2016, 2017 ng0 <contact.ng0@cryptolab.net>
16 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
17 ;;; Copyright © 2016, 2017 Nicolas Goaziou <mail@nicolasgoaziou.fr>
18 ;;; Copyright © 2016 Alex Vong <alexvong1995@gmail.com>
19 ;;; Copyright © 2016, 2017 Arun Isaac <arunisaac@systemreboot.net>
20 ;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
21 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
22 ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
23 ;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
24 ;;; Copyright © 2017 Kyle Meyer <kyle@kyleam.com>
25 ;;; Copyright © 2017 Kei Kebreau <kei@openmailbox.org>
26 ;;; Copyright © 2017 George Clemmer <myglc2@gmail.com>
27 ;;; Copyright © 2017 Feng Shu <tumashu@163.com>
28 ;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
29 ;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com>
30 ;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
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
47 (define-module (gnu packages emacs)
48 #:use-module ((guix licenses) #:prefix license:)
49 #:use-module (guix packages)
50 #:use-module (guix download)
51 #:use-module (guix git-download)
52 #:use-module (guix gexp)
53 #:use-module (guix monads)
54 #:use-module (guix store)
55 #:use-module (guix build-system gnu)
56 #:use-module (guix build-system emacs)
57 #:use-module (guix build-system glib-or-gtk)
58 #:use-module (guix build-system trivial)
59 #:use-module (gnu packages)
60 #:use-module (gnu packages audio)
61 #:use-module (gnu packages code)
62 #:use-module (gnu packages guile)
63 #:use-module (gnu packages gtk)
64 #:use-module (gnu packages gnome)
65 #:use-module (gnu packages ncurses)
66 #:use-module (gnu packages python)
67 #:use-module (gnu packages tex)
68 #:use-module (gnu packages texinfo)
69 #:use-module (gnu packages tcl)
70 #:use-module (gnu packages tls)
71 #:use-module (gnu packages pkg-config)
72 #:use-module (gnu packages xorg)
73 #:use-module (gnu packages lesstif)
74 #:use-module (gnu packages image)
75 #:use-module (gnu packages linux)
76 #:use-module (gnu packages version-control)
77 #:use-module (gnu packages imagemagick)
78 #:use-module (gnu packages w3m)
79 #:use-module (gnu packages wget)
80 #:use-module (gnu packages autotools)
81 #:use-module (gnu packages base)
82 #:use-module (gnu packages compression)
83 #:use-module (gnu packages xml)
84 #:use-module (gnu packages glib)
85 #:use-module (gnu packages acl)
86 #:use-module (gnu packages package-management)
87 #:use-module (gnu packages perl)
88 #:use-module (gnu packages pdf)
89 #:use-module (gnu packages scheme)
90 #:use-module (gnu packages statistics)
91 #:use-module (gnu packages xiph)
92 #:use-module (gnu packages mp3)
93 #:use-module (gnu packages gettext)
94 #:use-module (gnu packages fribidi)
95 #:use-module (gnu packages gd)
96 #:use-module (gnu packages fontutils)
97 #:use-module (guix utils)
98 #:use-module (srfi srfi-1)
99 #:use-module (ice-9 match))
100
101 (define-public emacs
102 (package
103 (name "emacs")
104 (version "25.2")
105 (source (origin
106 (method url-fetch)
107 (uri (string-append "mirror://gnu/emacs/emacs-"
108 version ".tar.xz"))
109 (sha256
110 (base32
111 "1ykkq0xl28ljdg61bm6gzy04ww86ajms98gix72qg6cpr6a53dar"))
112 (patches (search-patches "emacs-exec-path.patch"
113 "emacs-fix-scheme-indent-function.patch"
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.
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")))))))
137 (build-system glib-or-gtk-build-system)
138 (arguments
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"))))
147 (add-after 'install 'install-site-start
148 ;; Use 'guix-emacs' in "site-start.el". This way, Emacs packages
149 ;; provided by Guix and installed in
150 ;; ~/.guix-profile/share/emacs/site-lisp/guix.d/PACKAGE-VERSION are
151 ;; automatically found.
152 (lambda* (#:key inputs outputs #:allow-other-keys)
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"))
157 (with-output-to-file (string-append lisp-dir "/site-start.el")
158 (lambda ()
159 (display
160 (string-append "(when (require 'guix-emacs nil t)\n"
161 " (guix-emacs-autoload-packages))\n"))))
162 #t))))))
163 (inputs
164 `(("gnutls" ,gnutls)
165 ("ncurses" ,ncurses)
166
167 ;; TODO: Add the optional dependencies.
168 ("libx11" ,libx11)
169 ("gtk+" ,gtk+)
170 ("libxft" ,libxft)
171 ("libtiff" ,libtiff)
172 ("giflib" ,giflib)
173 ("libjpeg" ,libjpeg-8)
174 ("imagemagick" ,imagemagick)
175 ("acl" ,acl)
176
177 ;; When looking for libpng `configure' links with `-lpng -lz', so we
178 ;; must also provide zlib as an input.
179 ("libpng" ,libpng)
180 ("zlib" ,zlib)
181
182 ("librsvg" ,librsvg)
183 ("libxpm" ,libxpm)
184 ("libxml2" ,libxml2)
185 ("libice" ,libice)
186 ("libsm" ,libsm)
187 ("alsa-lib" ,alsa-lib)
188 ("dbus" ,dbus)
189
190 ;; multilingualization support
191 ("libotf" ,libotf)
192 ("m17n-lib" ,m17n-lib)))
193 (native-inputs
194 `(("guix-emacs.el" ,(search-auxiliary-file "emacs/guix-emacs.el"))
195 ("pkg-config" ,pkg-config)
196 ("texinfo" ,texinfo)))
197
198 (native-search-paths
199 (list (search-path-specification
200 (variable "INFOPATH")
201 (files '("share/info")))))
202
203 (home-page "https://www.gnu.org/software/emacs/")
204 (synopsis "The extensible, customizable, self-documenting text editor")
205 (description
206 "GNU Emacs is an extensible and highly customizable text editor. It is
207 based on an Emacs Lisp interpreter with extensions for text editing. Emacs
208 has been extended in essentially all areas of computing, giving rise to a
209 vast array of packages supporting, e.g., email, IRC and XMPP messaging,
210 spreadsheets, remote server editing, and much more. Emacs includes extensive
211 documentation on all aspects of the system, from basic editing to writing
212 large Lisp programs. It has full Unicode support for nearly all human
213 languages.")
214 (license license:gpl3+)))
215
216 (define-public emacs-minimal
217 ;; This is the version that you should use as an input to packages that just
218 ;; need to byte-compile .el files.
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
234 (package (inherit emacs)
235 (name "emacs-no-x")
236 (synopsis "The extensible, customizable, self-documenting text
237 editor (console only)")
238 (build-system gnu-build-system)
239 (inputs (fold alist-delete
240 (package-inputs emacs)
241 '("libx11" "gtk+" "libxft" "libtiff" "giflib" "libjpeg"
242 "libpng" "librsvg" "libxpm" "libice" "libsm"
243
244 ;; D-Bus depends on libx11, so remove it as well.
245 "dbus")))))
246
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
251 editor (without an X toolkit)" )
252 (build-system gnu-build-system)
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)))))
257
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
287 \f
288 ;;;
289 ;;; Emacs hacking.
290 ;;;
291
292 (define-public geiser
293 (package
294 (name "geiser")
295 (version "0.9")
296 (source (origin
297 (method url-fetch)
298 (uri (string-append "mirror://savannah/geiser/" version
299 "/geiser-" version ".tar.gz"))
300 (sha256
301 (base32
302 "0phz9d8wjk4p13vqannv0003fwh8qqrp0gfzcs2hgq1mrmv1srss"))))
303 (build-system gnu-build-system)
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)))
313 (inputs `(("guile" ,guile-2.0)))
314 (native-inputs `(("emacs" ,emacs-minimal)))
315 (home-page "http://nongnu.org/geiser/")
316 (synopsis "Collection of Emacs modes for Guile and Racket hacking")
317 (description
318 "Geiser is a collection of Emacs major and minor modes that conspire with
319 one or more Scheme implementations to keep the Lisp Machine Spirit alive. The
320 continuously running Scheme interpreter takes the center of the stage in
321 Geiser. A bundle of Elisp shims orchestrates the dialog between the Scheme
322 implementation, Emacs and, ultimately, the schemer, giving them access to live
323 metadata.")
324 (license license:bsd-3)))
325
326 (define-public geiser-next
327 ;; This has become "geiser".
328 (deprecated-package "geiser-next" geiser))
329
330 (define-public paredit
331 (package
332 (name "emacs-paredit")
333 (version "24")
334 (source (origin
335 (method url-fetch)
336 (uri (string-append "http://mumble.net/~campbell/emacs/paredit-"
337 version ".el"))
338 (sha256
339 (base32
340 "0pp3n8q6kc70blqsaw0zlzp6bc327dpgdrjr0cnh7hqg1lras7ka"))))
341 (build-system emacs-build-system)
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
346 of S-expression data. The typical example of this would be Lisp or Scheme
347 source code.
348
349 ParEdit helps **keep parentheses balanced** and adds many keys for moving
350 S-expressions and moving around in S-expressions. Its behavior can be jarring
351 for those who may want transient periods of unbalanced parentheses, such as
352 when typing parentheses directly or commenting out code line by line.")
353 (license license:gpl3+)))
354
355 (define-public paredit/old-name
356 (deprecated-package "paredit" paredit))
357
358 (define-public git-modes
359 (package
360 (name "git-modes")
361 (version "1.2.4")
362 (source (origin
363 (method url-fetch)
364 (uri (string-append
365 "https://github.com/magit/git-modes/archive/"
366 version ".tar.gz"))
367 (file-name (string-append name "-" version ".tar.gz"))
368 (sha256
369 (base32
370 "0xxrmf0jnyljxvllc22qa0v8lgi4k1ldnayjm5hf68m25jsr378l"))))
371 (build-system emacs-build-system)
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
376 configuration files, such as .gitattributes, .gitignore, and .git/config.")
377 (license license:gpl3+)))
378
379 (define-public emacs-with-editor
380 (package
381 (name "emacs-with-editor")
382 (version "2.5.10")
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
391 "0lsxa1hghybkzvqhqvvym3hxbyp9vjcnnpb9j800z0vyhbnlka67"))))
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.
400 For remote processes a substitute is provided, which communicates with Emacs
401 on stdout instead of using a socket as the Emacsclient does.")
402 (license license:gpl3+)))
403
404 (define-public magit
405 (package
406 (name "magit")
407 (version "2.10.3")
408 (source (origin
409 (method url-fetch)
410 (uri (string-append
411 "https://github.com/magit/magit/releases/download/"
412 version "/" name "-" version ".tar.gz"))
413 (sha256
414 (base32
415 "03ln65ss420gc3h4pi56dayd1p163xfxrxrd9fkb9xnkl8mjglqk"))))
416 (build-system gnu-build-system)
417 (native-inputs `(("texinfo" ,texinfo)
418 ("emacs" ,emacs-minimal)))
419 (inputs
420 `(("git" ,git)
421 ("perl" ,perl)))
422 (propagated-inputs
423 `(("dash" ,emacs-dash)
424 ("with-editor" ,emacs-with-editor)))
425 (arguments
426 `(#:modules ((guix build gnu-build-system)
427 (guix build utils)
428 (guix build emacs-utils))
429 #:imported-modules (,@%gnu-build-system-modules
430 (guix build emacs-utils))
431
432 #:test-target "test"
433 #:tests? #f ; tests are not included in the release
434
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-"
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)))
447
448 #:phases
449 (modify-phases %standard-phases
450 (delete 'configure)
451 (add-before
452 'build 'patch-exec-paths
453 (lambda* (#:key inputs #:allow-other-keys)
454 (let ((git (assoc-ref inputs "git"))
455 (perl (assoc-ref inputs "perl")))
456 (emacs-substitute-variables "lisp/magit-git.el"
457 ("magit-git-executable" (string-append git "/bin/git")))
458 (substitute* "lisp/magit-sequence.el"
459 (("perl") (string-append perl "/bin/perl")))
460 #t))))))
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.
465 You can review and commit the changes you have made to the tracked files, for
466 example, and you can browse the history of past changes. There is support for
467 cherry picking, reverting, merging, rebasing, and other common Git
468 operations.")
469 (license license:gpl3+)))
470
471 (define-public magit-svn
472 (package
473 (name "magit-svn")
474 (version "2.1.1")
475 (source (origin
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"))
481 (sha256
482 (base32
483 "04y88j7q9h8xjbx5dbick6n5nr1522sn9i1znp0qwk3vjb4b5mzz"))))
484 (build-system trivial-build-system)
485 (native-inputs `(("emacs" ,emacs-minimal)
486 ("tar" ,tar)
487 ("gzip" ,gzip)))
488 (propagated-inputs `(("dash" ,emacs-dash)
489 ("magit" ,magit)))
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
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")
504 "/bin/emacs"))
505 (magit (string-append (assoc-ref %build-inputs "magit")
506 "/share/emacs/site-lisp"))
507 (dash (string-append (assoc-ref %build-inputs "dash")
508 "/share/emacs/site-lisp/guix.d/dash-"
509 ,(package-version emacs-dash)))
510 (source (assoc-ref %build-inputs "source"))
511 (lisp-dir (string-append %output "/share/emacs/site-lisp")))
512 (setenv "PATH" PATH)
513 (system* tar "xvf" source)
514
515 (install-file (string-append ,name "-" ,version "/magit-svn.el")
516 lisp-dir)
517
518 (with-directory-excursion lisp-dir
519 (parameterize ((%emacs emacs))
520 (emacs-generate-autoloads ,name lisp-dir)
521 (setenv "EMACSLOADPATH"
522 (string-append ":" magit ":" dash))
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
528 support for Git-SVN.")
529 (license license:gpl3+)))
530
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
543 "08b6ypfiq8zavjfq0wcdh26xziwq7rqvvv3lfpib9101146kzx6d"))))
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
551 setting options and then invoking an Emacs command which does something with
552 these arguments. The prototypical use is for the command to call an external
553 process, passing on the arguments as command line arguments.")
554 (license license:gpl3+)))
555
556 (define-public haskell-mode
557 (package
558 (name "haskell-mode")
559 (version "16.1")
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
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)))
573 (native-inputs
574 `(("emacs" ,emacs-minimal)
575 ("texinfo" ,texinfo)))
576 (build-system gnu-build-system)
577 (arguments
578 `(#:make-flags (list (string-append "EMACS="
579 (assoc-ref %build-inputs "emacs")
580 "/bin/emacs"))
581 #:modules ((ice-9 match)
582 (srfi srfi-26)
583 ,@%gnu-build-system-modules)
584 #:phases
585 (modify-phases %standard-phases
586 (delete 'configure)
587 (add-before
588 'build 'pre-build
589 (lambda* (#:key inputs #:allow-other-keys)
590 (define (el-dir store-dir)
591 (match (find-files store-dir)
592 ((f1 f2 ...) (dirname f1))
593 (_ "")))
594
595 (let ((sh (string-append (assoc-ref inputs "bash") "/bin/sh")))
596 (define emacs-prefix? (cut string-prefix? "emacs-" <>))
597
598 (setenv "SHELL" "sh")
599 (setenv "EMACSLOADPATH"
600 (string-concatenate
601 (map (match-lambda
602 (((? emacs-prefix? name) . dir)
603 (string-append (el-dir dir) ":"))
604 (_ ""))
605 inputs)))
606 (substitute* (find-files "." "\\.el") (("/bin/sh") sh))
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"))
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)
623 (for-each (lambda (f)
624 (install-file f dir))
625 files))
626
627 (with-directory-excursion "doc"
628 (unless (zero? (system* "makeinfo" "haskell-mode.texi"))
629 (error "makeinfo failed"))
630 (install-file "haskell-mode.info" info))
631 (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md"))
632 (copy-to-dir el-dir (find-files "." "\\.elc?"))
633 ;; These are part of other packages.
634 (with-directory-excursion el-dir
635 (for-each delete-file '("dash.el" "ert.el")))
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
641 programs.")
642 (license license:gpl3+)))
643
644 (define-public flycheck
645 (package
646 (name "emacs-flycheck")
647 (version "30")
648 (source (origin
649 (method url-fetch)
650 (uri (string-append
651 "https://github.com/flycheck/flycheck/releases/download/"
652 version "/flycheck-" version ".tar"))
653 (sha256
654 (base32
655 "1rxzkaqsj48z3nska5wsgwafvwkam014dzqd32baycmxjl0jxvy7"))))
656 (build-system emacs-build-system)
657 (propagated-inputs
658 `(("emacs-dash" ,emacs-dash)))
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
663 replacement for the older Flymake extension which is part of GNU Emacs, with
664 many improvements and additional features.
665
666 Flycheck provides fully-automatic, fail-safe, on-the-fly background syntax
667 checking for over 30 programming and markup languages with more than 70
668 different tools. It highlights errors and warnings inline in the buffer, and
669 provides an optional IDE-like error list.")
670 (license license:gpl3+))) ;+GFDLv1.3+ for the manual
671
672 \f
673 ;;;
674 ;;; Web browsing.
675 ;;;
676
677 (define-public emacs-w3m
678 (package
679 (name "emacs-w3m")
680 (version "1.4.538+0.20141022")
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
686 (base32
687 "0zfxmq86pwk64yv0426gnjrvhjrgrjqn08sdcdhmmjmfpmqvm79y"))))
688 (build-system gnu-build-system)
689 (native-inputs `(("autoconf" ,autoconf)
690 ("emacs" ,emacs-minimal)))
691 (inputs `(("w3m" ,w3m)
692 ("imagemagick" ,imagemagick)))
693 (arguments
694 `(#:modules ((guix build gnu-build-system)
695 (guix build utils)
696 (guix build emacs-utils))
697 #:imported-modules (,@%gnu-build-system-modules
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="
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"))
709 #:tests? #f ; no check target
710 #:phases
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)))))))
744 (home-page "http://emacs-w3m.namazu.org/")
745 (synopsis "Simple Web browser for Emacs based on w3m")
746 (description
747 "Emacs-w3m is an emacs interface for the w3m web browser.")
748 (license license:gpl2+)))
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)
761 (inputs `(("wget" ,wget)))
762 (native-inputs `(("emacs" ,emacs-minimal)))
763 (arguments
764 `(#:modules ((guix build gnu-build-system)
765 (guix build utils)
766 (guix build emacs-utils))
767 #:imported-modules (,@%gnu-build-system-modules
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")))))
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)))))
790 (home-page "http://www.emacswiki.org/emacs/EmacsWget")
791 (synopsis "Simple file downloader for Emacs based on wget")
792 (description
793 "Emacs-wget is an emacs interface for the wget file downloader.")
794 (license license:gpl2+)))
795
796 \f
797 ;;;
798 ;;; Multimedia.
799 ;;;
800
801 (define-public emms
802 (package
803 (name "emacs-emms")
804 (version "4.3")
805 (source (origin
806 (method url-fetch)
807 (uri (string-append "mirror://gnu/emms/emms-"
808 version ".tar.gz"))
809 (sha256
810 (base32
811 "0dicgkl8l83n4cah5vk7c242abbwpyzlih451blgw37f3rijs480"))
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
831 `(#:modules ((guix build gnu-build-system)
832 (guix build utils)
833 (guix build emacs-utils))
834 #:imported-modules (,@%gnu-build-system-modules
835 (guix build emacs-utils))
836
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)
881 ;; The 'install' rule expects the target directories to exist.
882 (let* ((out (assoc-ref outputs "out"))
883 (bin (string-append out "/bin"))
884 (man1 (string-append out "/share/man/man1")))
885 (mkdir-p bin)
886 (mkdir-p man1)
887 #t)))
888 (add-after 'install 'post-install
889 (lambda* (#:key outputs #:allow-other-keys)
890 (let ((out (assoc-ref outputs "out")))
891 (symlink "emms-auto.el"
892 (string-append out "/share/emacs/site-lisp/"
893 "emms-autoloads.el"))))))
894 #:tests? #f))
895 (native-inputs `(("emacs" ,emacs-minimal) ;for (guix build emacs-utils)
896 ("texinfo" ,texinfo)))
897 (inputs `(("alsa-utils" ,alsa-utils)
898 ("vorbis-tools" ,vorbis-tools)
899 ("mpg321" ,mpg321)
900 ("taglib" ,taglib)
901 ("mp3info" ,mp3info)))
902 (properties '((upstream-name . "emms")))
903 (synopsis "Emacs Multimedia System")
904 (description
905 "EMMS is the Emacs Multimedia System. It is a small front-end which
906 can control one of the supported external players. Thus, it supports
907 whatever formats are supported by your music player. It also
908 supports tagging and playlist management, all behind a clean and
909 light user interface.")
910 (home-page "https://www.gnu.org/software/emms/")
911 (license license:gpl3+)))
912
913 (define-public emacs-emms-player-mpv
914 (package
915 (name "emacs-emms-player-mpv")
916 (version "0.0.10")
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
925 "1q81fpmwr8hpdgq71vbdai2nml4yyqbmk4ffdyl4irlwph8gfjyq"))))
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
933 and seeking.")
934 (license license:gpl3+)))
935
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
956 within a specified width. It is useful for displaying long track titles.")
957 (license license:gpl3+)))
958
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)))
992 (native-inputs `(("emacs" ,emacs-minimal)))
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
997 an address book for email and snail mail addresses, phone numbers and the
998 like. It can be linked with various Emacs mail clients (Message and Mail
999 mode, Rmail, Gnus, MH-E, and VM). BBDB is fully customizable.")
1000 (license license:gpl3+)))
1001
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
1018 always indented. It reindents after every change, making it more reliable
1019 than @code{electric-indent-mode}.")
1020 (license license:gpl2+)))
1021
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
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))))))
1049 (native-inputs
1050 `(("python-sphinx" ,python-sphinx)
1051 ("texinfo" ,texinfo)))
1052 (propagated-inputs
1053 `(("dash" ,emacs-dash)
1054 ("s" ,emacs-s)
1055 ;; We need to use 'ag' as the executable on remote systems.
1056 ("the-silver-searcher" ,the-silver-searcher)))
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
1060 searcher, a code searching tool, sometimes abbreviated to @code{ag}. Features
1061 include version control system awareness, use of Perl compatible regular
1062 expressions, editing the search results directly and searching file names
1063 rather than the contents of files.")
1064 (license license:gpl3+)))
1065
1066 (define-public emacs-async
1067 (package
1068 (name "emacs-async")
1069 (version "1.9.2")
1070 (source (origin
1071 (method url-fetch)
1072 (uri (string-append "https://elpa.gnu.org/packages/async-"
1073 version ".tar"))
1074 (sha256
1075 (base32
1076 "17fnvrj7jww29sav6a6jpizclg4w2962m6h37akpii71gf0vrffw"))))
1077 (build-system emacs-build-system)
1078 (home-page "https://elpa.gnu.org/packages/async.html")
1079 (synopsis "Asynchronous processing in Emacs")
1080 (description
1081 "This package provides the ability to call asynchronous functions and
1082 processes. For example, it can be used to run dired commands (for copying,
1083 moving, etc.) asynchronously using @code{dired-async-mode}. Also it is used
1084 as a library for other Emacs packages.")
1085 (license license:gpl3+)))
1086
1087 (define-public emacs-auctex
1088 (package
1089 (name "emacs-auctex")
1090 (version "11.91.0")
1091 (source
1092 (origin
1093 (method url-fetch)
1094 (uri (string-append
1095 "https://elpa.gnu.org/packages/auctex-"
1096 version
1097 ".tar"))
1098 (sha256
1099 (base32
1100 "1yh182mxgngjmwpkyv2n9km3vyq95bqfq8mnly3dbv78nwk7f2l3"))))
1101 (build-system emacs-build-system)
1102 ;; We use 'emacs' because AUCTeX requires dbus at compile time
1103 ;; ('emacs-minimal' does not provide dbus).
1104 (arguments
1105 `(#:emacs ,emacs
1106 #:include '("\\.el$" "^images/" "^latex/" "\\.info$")
1107 #:exclude '("^tests/" "^latex/README")))
1108 (native-inputs
1109 `(("perl" ,perl)))
1110 (home-page "https://www.gnu.org/software/auctex/")
1111 (synopsis "Integrated environment for TeX")
1112 (description
1113 "AUCTeX is a comprehensive customizable integrated environment for
1114 writing input files for TeX, LaTeX, ConTeXt, Texinfo, and docTeX using Emacs
1115 or XEmacs.")
1116 (license license:gpl3+)))
1117
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
1139 a set of simplified face specifications and a user-supplied color palette")
1140 (license license:gpl3+)))
1141
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
1160 "This package displays a calendar view with various schedule data in the
1161 Emacs buffer.")
1162 (license license:gpl3+)))
1163
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
1186 for the current file and updating the environment within Emacs to match.
1187
1188 Direnv can be invoked manually, and a global minor mode is included that will
1189 update the environment when the active buffer changes.
1190
1191 Using emacs-direnv means that programs started from Emacs will use the
1192 environment set through Direnv.")
1193 (license license:gpl3+)))
1194
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
1211 Maps directly inside Emacs.")
1212 (license license:gpl3+)))
1213
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
1222 "https://github.com/purcell/mmm-mode/archive/"
1223 version ".tar.gz"))
1224 (file-name (string-append name "-" version ".tar.gz"))
1225 (sha256
1226 (base32
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)
1238 ("emacs" ,emacs-minimal)
1239 ("texinfo" ,texinfo)))
1240 (home-page "https://github.com/purcell/mmm-mode")
1241 (synopsis "Allow multiple major modes in an Emacs buffer")
1242 (description
1243 "MMM Mode is a minor mode that allows multiple major modes to coexist in a
1244 single buffer.")
1245 (license license:gpl3+)))
1246
1247 (define-public emacs-pdf-tools
1248 (package
1249 (name "emacs-pdf-tools")
1250 (version "0.70")
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
1259 "1m0api6wiawswyk46bdsyk6r5rg3b86a4paar6nassm6x6c6vr77"))))
1260 (build-system gnu-build-system)
1261 (arguments
1262 `(#:tests? #f ; there are no tests
1263 #:modules ((guix build gnu-build-system)
1264 ((guix build emacs-build-system) #:prefix emacs:)
1265 (guix build utils)
1266 (guix build emacs-utils))
1267 #:imported-modules (,@%gnu-build-system-modules
1268 (guix build emacs-build-system)
1269 (guix build emacs-utils))
1270 #:phases
1271 (modify-phases %standard-phases
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)))))
1299 (native-inputs `(("autoconf" ,autoconf)
1300 ("automake" ,automake)
1301 ("pkg-config" ,pkg-config)
1302 ("emacs" ,emacs-minimal)))
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
1311 files. The key difference is that pages are not pre-rendered by
1312 e.g. ghostscript and stored in the file-system, but rather created on-demand
1313 and stored in memory.")
1314 (home-page "https://github.com/politza/pdf-tools")
1315 (license license:gpl3+)))
1316
1317 (define-public emacs-dash
1318 (package
1319 (name "emacs-dash")
1320 (version "2.13.0")
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
1329 "1pjlkrzr8n45bnp3xs3dybvy0nz3gwamrfc7vsi1nhpkkw99ihhb"))))
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+)))
1341
1342 (define-public emacs-bui
1343 (package
1344 (name "emacs-bui")
1345 (version "1.1.0")
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
1354 "112k0mq6xpy0r47vk66miw7rxbkv3d06pv3pd0vcmrhcnhnnk486"))))
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
1363 type, for example: packages, buffers, files, etc.")
1364 (license license:gpl3+)))
1365
1366 (define-public emacs-guix
1367 (package
1368 (name "emacs-guix")
1369 (version "0.3.2")
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
1377 "0bffxlaq4w9yijl9prnfm26fisr2rd1whjg1yzvri1zl6zh9s0lk"))))
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="
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)))
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")
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
1416 `(("guile" ,guile-2.2)
1417 ("guix" ,guix)))
1418 (propagated-inputs
1419 `(("geiser" ,geiser)
1420 ("dash" ,emacs-dash)
1421 ("bui" ,emacs-bui)
1422 ("magit-popup" ,emacs-magit-popup)))
1423 (home-page "https://alezost.github.io/guix.el/")
1424 (synopsis "Emacs interface for GNU Guix")
1425 (description
1426 "Emacs-Guix provides a visual interface, tools and features for the GNU
1427 Guix package manager. Particularly, it allows you to do various package
1428 management tasks from Emacs. To begin with, run @code{M-x guix-about} or
1429 @code{M-x guix-help} command.")
1430 (license license:gpl3+)))
1431
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
1450 code written in the D programming language. This mode is currently known to
1451 work with Emacs 24 and 25.")
1452 (license license:gpl2+)))
1453
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
1470 a command.")
1471 (license license:gpl3+)))
1472
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
1490 graphical tree presentation of all previous states of buffer that
1491 allows easily move between them.")
1492 (license license:gpl3+)))
1493
1494 (define-public emacs-s
1495 (package
1496 (name "emacs-s")
1497 (version "1.11.0")
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
1506 "0krq5nz3llfx0vwdqn18pmq777ja0fac185w0h9qymppb1j1hvc2"))))
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")
1515 (synopsis "Emacs string manipulation library")
1516 (description "This package provides an Emacs library for manipulating
1517 strings.")
1518 (license license:gpl3+)))
1519
1520 (define-public emacs-symon
1521 (package
1522 (name "emacs-symon")
1523 (version "20160630")
1524 (source
1525 (origin
1526 (method url-fetch)
1527 (uri (string-append "https://github.com/zk-phi/symon/archive/"
1528 version ".tar.gz"))
1529 (file-name (string-append name "-" version ".tar.gz"))
1530 (sha256
1531 (base32
1532 "0h4jcgdnq98wc9rj72nwyazq8498yg55jfljiij5qwbn1xf1g5zz"))))
1533 (build-system emacs-build-system)
1534 (home-page "https://github.com/zk-phi/symon")
1535 (synopsis "Tiny graphical system monitor")
1536 (description
1537 "Tiny graphical system monitor for the Emacs minibuffer when idle.")
1538 (license license:gpl2+)))
1539
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
1554 `(("emacs-markdown-mode" ,emacs-markdown-mode)))
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
1559 Stack Overflow, Super User, and other StackExchange sites.")
1560 (license license:gpl3+)))
1561
1562 (define-public emacs-f
1563 (package
1564 (name "emacs-f")
1565 (version "0.18.2")
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
1574 "1926shh2ymdsgz05c6q181mzzz1rci99ch568j151xi865jinyg5"))))
1575 (build-system emacs-build-system)
1576 (propagated-inputs
1577 `(("emacs-s" ,emacs-s)
1578 ("emacs-dash" ,emacs-dash)))
1579 (home-page "https://github.com/rejeep/f.el")
1580 (synopsis "Emacs API for working with files and directories")
1581 (description "This package provides an Emacs library for working with
1582 files and directories.")
1583 (license license:gpl3+)))
1584
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
1603 hunks of text managed in a version control system. Added modified and deleted
1604 areas can be indicated with symbols on the edge of the buffer, and commands
1605 can be used to move between and perform actions on these hunks.
1606
1607 Git, Mercurial, Subversion and Bazaar are supported, and many parts of the
1608 display and behaviour is easily customisable.")
1609 (license license:gpl3+)))
1610
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
1628 of files under Git version control from within Emacs.")
1629 (license license:gpl3+)))
1630
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)
1645 (home-page "https://github.com/rejeep/el-mock.el")
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
1649 syntax. Most commonly Emacs Lisp Mock is used in conjunction with Emacs Lisp
1650 Expectations, but it can be used in other contexts.")
1651 (license license:gpl3+)))
1652
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)))
1671 (home-page "https://github.com/ecukes/espuds")
1672 (synopsis "Common step definitions for Ecukes")
1673 (description "Espuds is a collection of the most commonly used step
1674 definitions for testing with the Ecukes framework.")
1675 (license license:gpl3+)))
1676
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
1698 indentation support for Elasticsearch queries. Also supported are
1699 @code{es-mode} blocks in @code{org-mode}, for which the results of queries can
1700 be processed through @code{jq}, or in the case of aggregations, can be
1701 rendered in to a table. In addition, there is an @code{es-command-center}
1702 mode, which displays information about Elasticsearch clusters.")
1703 (license license:gpl3+)))
1704
1705 (define-public emacs-expand-region
1706 (package
1707 (name "emacs-expand-region")
1708 (version "0.11.0")
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
1717 "08dy1f411sh9wwww53rjw80idcf3vpki6ba2arl4hl5jcw9651g0"))))
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
1723 keep 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
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
1745 column by drawing a thin line down the length of the editing window.")
1746 (license license:gpl3+)))
1747
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
1766 for easy interaction with a ruby subprocess. Features include support for
1767 detecting specific uses of Ruby, e.g. when using rails, and using a
1768 appropriate console.")
1769 (license license:gpl3+)))
1770
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
1788 IRC bouncer with ERC.")
1789 (license license:expat)))
1790
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
1808 Emacs shell script.")
1809 (license license:expat)))
1810
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
1832 Lisp.")
1833 (license license:expat)))
1834
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)
1849 (home-page "https://github.com/tarsius/paren-face")
1850 (synopsis "Face for parentheses in lisp modes")
1851 (description
1852 "This library defines a face named @code{parenthesis} used just for
1853 parentheses. The intended purpose of this face is to make parentheses less
1854 visible in Lisp code by dimming them. Lispers probably don't need to be
1855 constantly made aware of the existence of the parentheses. Dimming them might
1856 be even more useful for people new to lisp who have not yet learned to
1857 subconsciously blend out the parentheses.")
1858 (license license:gpl3+)))
1859
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
1878 as horizontal rules.")
1879 (license license:gpl3+)))
1880
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
1899 serve files and directory listings.")
1900 (license license:unlicense)))
1901
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
1923 a web browser. Expressions are sent on-the-fly from an editing buffer to be
1924 evaluated in the browser, just like Emacs does with an inferior Lisp process
1925 in Lisp modes.")
1926 (license license:unlicense)))
1927
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
1946 tables.")
1947 (license license:gpl2+)))
1948
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
1967 mode-line.")
1968 (license license:gpl2+)))
1969
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)))
1986 (home-page "https://github.com/Malabarba/smart-mode-line")
1987 (synopsis "Color-coded smart mode-line")
1988 (description
1989 "Smart Mode Line is a mode-line theme for Emacs. It aims to be easy to
1990 read from small to large monitors by using colors, a prefix feature, and smart
1991 truncation.")
1992 (license license:gpl2+)))
1993
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
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
2021 (commit "880706469338ab59b5bb7dbe8460016f89755364")
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
2032 source code using IPython.")
2033 (license license:gpl3+)))
2034
2035 (define-public emacs-debbugs
2036 (package
2037 (name "emacs-debbugs")
2038 (version "0.14")
2039 (source (origin
2040 (method url-fetch)
2041 (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
2042 version ".tar"))
2043 (sha256
2044 (base32
2045 "07wgcvg038l88gxvjr0gjpjhyk743w22x1rqghz3gkmif0g70say"))))
2046 (build-system emacs-build-system)
2047 (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
2048 (propagated-inputs
2049 `(("emacs-async" ,emacs-async)))
2050 (home-page "https://elpa.gnu.org/packages/debbugs.html")
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
2054 Tracker} from within Emacs.
2055
2056 For instance, it defines the command @code{M-x debbugs-gnu} for listing bugs,
2057 and the command @code{M-x debbugs-gnu-search} for bug searching. If you
2058 prefer the listing of bugs as TODO items of @code{org-mode}, you could use
2059 @code{M-x debbugs-org} and related commands.
2060
2061 A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug
2062 Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.")
2063 (license license:gpl3+)))
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.
2084 The API is almost the same as that of
2085 @uref{https://github.com/cho45/jsdeferred, JSDeferred}, a JavaScript library
2086 for asynchronous tasks.")
2087 (license license:gpl3+)))
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
2109 integration 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
2111 view the build status of those servers' build jobs, and possibly to trigger
2112 build jobs.")
2113 (license license:gpl3+)))
2114
2115 (define-public emacs-company
2116 (package
2117 (name "emacs-company")
2118 (version "0.9.3")
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
2127 "1fyrpchpdmvszssy1qmsw41aqpv6q5rybvs1bw00nv9xdhiaq4vh"))))
2128 (build-system emacs-build-system)
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")))))))
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
2145 completion candidates are called back-ends, modules for displaying them are
2146 front-ends. Company comes with many back-ends, e.g. @code{company-elisp}.
2147 These are distributed in separate files and can be used individually.")
2148 (license license:gpl3+)))
2149
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
2168 simultaneous cursors.")
2169 (license license:gpl3+)))
2170
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
2190 for quotation marks, dashes, and ellipses. For example, typing @kbd{\"}
2191 automatically inserts a Unicode opening or closing quotation mark, depending
2192 on context.")
2193 (license license:gpl3+)))
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
2211 (search-patches "emacs-scheme-complete-scheme-r5rs-info.patch"))))
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},
2217 which you can use for intelligent, context-sensitive completion for any Scheme
2218 implementation in Emacs. To use it just load this file and bind that function
2219 to a key in your preferred mode.")
2220 (license license:public-domain))))
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"))
2233 (install-file "6.945-config/mit-scheme-doc.el" ".")
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
2260 identifiers in the MIT-Scheme documentation.")
2261 (license license:gpl2+)))
2262
2263 (define-public emacs-constants
2264 (package
2265 (name "emacs-constants")
2266 (version "2.6")
2267 (home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
2268 (source
2269 (origin
2270 (file-name (string-append name "-" version ".tar.gz"))
2271 (method url-fetch)
2272 (uri (string-append "https://github.com/fedeinthemix/emacs-constants"
2273 "/archive/v" version ".tar.gz"))
2274 (sha256
2275 (base32
2276 "0pnrpmmxq8mh5h2hbrp5vcym0j0fh6dv3s7c5ccn18wllhzg9g7n"))))
2277 (build-system emacs-build-system)
2278 (synopsis "Enter definition of constants into an Emacs buffer")
2279 (description
2280 "This package provides functions for inserting the definition of natural
2281 constants and units into an Emacs buffer.")
2282 (license license:gpl2+)))
2283
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
2305 in @code{html-mode}.")
2306 (license license:gpl3+)))
2307
2308 (define-public emacs-slime
2309 (package
2310 (name "emacs-slime")
2311 (version "2.19")
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
2321 "1jhaq5cn89k45nzyl0jd12gmjxnh1bq9jlfwrxba342agxsscb0p"))))
2322 (build-system emacs-build-system)
2323 (native-inputs
2324 `(("texinfo" ,texinfo)))
2325 (arguments
2326 `(#:include '("\\.el$" "\\.lisp$" "\\.asd$" "contrib")
2327 #:exclude '("^slime-tests.el" "^contrib/test/"
2328 "^contrib/Makefile$" "^contrib/README.md$")
2329 #:phases
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
2363 Common Lisp. The features are centered around @{slime-mode}, an Emacs
2364 minor mode that complements the standard @{lisp-mode}. While lisp-mode
2365 supports editing Lisp source files, @{slime-mode} adds support for
2366 interacting with a running Common Lisp process for compilation,
2367 debugging, documentation lookup, and so on.")
2368 (license license:gpl2+)))
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)
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.
2388 This provides a basic API and common UI widgets such as popup tooltips
2389 and popup menus.")
2390 (license license:gpl3+)))
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
2414 without modifier keys. It's similar to Vim's separation of commands and
2415 insertion mode. When enabled all keys are implicitly prefixed with
2416 @samp{C-} (among other helpful shortcuts).")
2417 (license license:gpl3+))))
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
2425 (method url-fetch)
2426 (uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el")
2427 (sha256
2428 (base32
2429 "0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz"))))
2430 (build-system emacs-build-system)
2431 (synopsis "Prettify Request for Comments (RFC) documents")
2432 (description "The Internet Engineering Task Force (IETF) and the Internet
2433 Society (ISOC) publish various Internet-related protocols and specifications
2434 as \"Request for Comments\" (RFC) documents and Internet Standard (STD)
2435 documents. RFCs and STDs are published in a simple text form. This package
2436 provides an Emacs major mode, rfcview-mode, which makes it more pleasant to
2437 read these documents in Emacs. It prettifies the text and adds
2438 hyperlinks/menus for easier navigation. It also provides functions for
2439 browsing the index of RFC documents and fetching them from remote servers or
2440 local directories.")
2441 (license license:gpl3+)))
2442
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
2449 (method url-fetch)
2450 (uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el")
2451 (sha256
2452 (base32
2453 "1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck"))))
2454 (build-system emacs-build-system)
2455 (synopsis "Make ffap recognize an RFC with a space before its number")
2456 (description "The Internet Engineering Task Force (IETF) and the
2457 Internet Society (ISOC) publish various Internet-related protocols and
2458 specifications as \"Request for Comments\" (RFC) documents. The
2459 built-in Emacs module \"ffap\" (Find File at Point) has the ability to
2460 recognize names at point which look like \"RFC1234\" and \"RFC-1234\"
2461 and load the appropriate RFC from a remote server. However, it fails
2462 to recognize a name like \"RFC 1234\". This package enhances ffap so
2463 that it correctly finds RFCs even when a space appears before the
2464 number.")
2465 (license license:gpl3+)))
2466
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+)))
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
2508 Pomodoro technique in Emacs org-mode.
2509
2510 Run @code{M-x org-pomodoro} for the task at point or select one of the
2511 last tasks that you clocked time for. Each clocked-in pomodoro starts
2512 a timer of 25 minutes and after each pomodoro a break timer of 5
2513 minutes is started automatically. Every 4 breaks a long break is
2514 started with 20 minutes. All values are customizable.")
2515 (license license:gpl3+)))
2516
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
2540 organizer.")
2541 (license license:gpl3+)))
2542
2543 (define-public emacs-zenburn-theme
2544 (package
2545 (name "emacs-zenburn-theme")
2546 (version "2.5")
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
2555 "03kfhzgbbbl8ivpzzky6qxw4j9mmp452m1sk7wikxmcalfnix0gn"))))
2556 (build-system emacs-build-system)
2557 (home-page "https://github.com/bbatsov/zenburn-emacs")
2558 (synopsis "Low contrast color theme for Emacs")
2559 (description
2560 "Zenburn theme is a port of the popular Vim Zenburn theme for Emacs.
2561 It is built on top of the custom theme support in Emacs 24 or later.")
2562 (license license:gpl3+)))
2563
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
2578 `(("emacs-dash" ,emacs-dash)))
2579 (home-page "https://github.com/bbatsov/solarized-emacs")
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
2583 package provides a light and a dark variant.")
2584 (license license:gpl3+)))
2585
2586 (define-public emacs-ahungry-theme
2587 (package
2588 (name "emacs-ahungry-theme")
2589 (version "1.4.0")
2590 (source
2591 (origin (method url-fetch)
2592 (uri (string-append "https://elpa.gnu.org/packages/ahungry-theme-"
2593 version ".tar"))
2594 (sha256
2595 (base32
2596 "1n8k12mfn01f20j0pyd7ycj77x0y3a008xc94frklaaqjc0v26s4"))))
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.
2601 If you load it from a terminal, you will be able to make use of the
2602 transparent background. If you load it from a GUI, it will default to a
2603 dark background.")
2604 (license license:gpl3+)))
2605
2606 (define-public emacs-smartparens
2607 (package
2608 (name "emacs-smartparens")
2609 (version "1.10.1")
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
2618 "1nwsi6fbbxjq3r22r6knmx71la3g0lmwfb95i9q4k138gn0m2l3i"))))
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
2623 defined pairs")
2624 (description
2625 "Smartparens is a minor mode for Emacs that deals with parens pairs
2626 and tries to be smart about it. It started as a unification effort to
2627 combine functionality of several existing packages in a single,
2628 compatible and extensible way to deal with parentheses, delimiters, tags
2629 and the like. Some of these packages include autopair, textmate,
2630 wrap-region, electric-pair-mode, paredit and others. With the basic
2631 features found in other packages it also brings many improvements as
2632 well as completely new features.")
2633 (license license:gpl3+)))
2634
2635 (define-public emacs-hl-todo
2636 (package
2637 (name "emacs-hl-todo")
2638 (version "1.7.4")
2639 (source (origin
2640 (method url-fetch)
2641 (uri (string-append
2642 "https://raw.githubusercontent.com/tarsius/hl-todo/"
2643 version "/hl-todo.el"))
2644 (file-name (string-append "hl-todo-" version ".el"))
2645 (sha256
2646 (base32
2647 "016ivl4s0ysrm1xbfi86j5xcs759fcb0mkspxw81x8mpi3yb46ya"))))
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
2653 keywords in comments and strings. This package also provides commands for
2654 moving to the next or previous keyword and to invoke @code{occur} with a
2655 regexp that matches all known keywords.")
2656 (license license:gpl3+)))
2657
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)
2672 (home-page "https://github.com/nex3/perspective-el")
2673 (synopsis "Switch between named \"perspectives\"")
2674 (description
2675 "This package provides tagged workspaces in Emacs, similar to workspaces in
2676 windows managers such as Awesome and XMonad. @code{perspective.el} provides
2677 multiple workspaces (or \"perspectives\") for each Emacs frame. Each
2678 perspective is composed of a window configuration and a set of buffers.
2679 Switching to a perspective activates its window configuration, and when in a
2680 perspective 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
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
2701 backends. It supports url.el which is shipped with Emacs and the curl command
2702 line program.")
2703 (license license:gpl3+)))
2704
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
2722 is to share buffers with other users in order to edit the contents of those
2723 buffers collaboratively. Rudel supports multiple backends to enable
2724 communication with other collaborative editors using different protocols,
2725 though currently Obby (for use with the Gobby editor) is the only
2726 fully-functional one.")
2727 (license license:gpl3+)))
2728
2729 (define-public emacs-hydra
2730 (package
2731 (name "emacs-hydra")
2732 (version "0.13.6")
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
2741 "0575vh858gm35p57s49dy6pc2ij46dmj9zaa4z0cp98sqra3j3l0"))))
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
2747 bindings with a common prefix---a Hydra. Once you summon the Hydra (through
2748 the prefixed binding), all the heads can be called in succession with only a
2749 short extension. Any binding that isn't the Hydra's head vanquishes the
2750 Hydra. Note that the final binding, besides vanquishing the Hydra, will still
2751 serve its original purpose, calling the command assigned to it. This makes
2752 the Hydra very seamless; it's like a minor mode that disables itself
2753 automatically.")
2754 (license license:gpl3+)))
2755
2756 (define-public emacs-ivy
2757 (package
2758 (name "emacs-ivy")
2759 (version "0.9.1")
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
2768 "1abi1rvjarwfxxylpx8qlhck0kbavnj0nmlaaizk9q5zr02xfx1j"))))
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
2777 the best candidate. Instead, the user can navigate candidates with
2778 @code{ivy-next-line} and @code{ivy-previous-line}. The matching is done by
2779 splitting the input text by spaces and re-building it into a regular
2780 expression.")
2781 (license license:gpl3+)))
2782
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
2801 balanced decision tree with each candidate being a leaf. To traverse the tree
2802 from the root to a desired leaf, typically a sequence of @code{read-key} can
2803 be used.
2804
2805 In order for @code{read-key} to make sense, the tree needs to be visualized
2806 appropriately, with a character at each branch node. So this completion
2807 method works only for things that you can see on your screen, all at once,
2808 such as the positions of characters, words, line beginnings, links, or
2809 windows.")
2810 (license license:gpl3+)))
2811
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}.
2832 In fact, when there are only two windows present, @code{other-window} is
2833 called. If there are more, each window will have its first character
2834 highlighted. Pressing that character will switch to that window.")
2835 (license license:gpl3+)))
2836
2837 (define-public emacs-iedit
2838 (package
2839 (name "emacs-iedit")
2840 (version "0.9.9.9")
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
2849 "1hv8q6pr85ss9g3158l1fqv3m62vsq8rslsi86jicr2dcxyascr0"))))
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
2855 occurrence of some text in a buffer (possibly narrowed) or region, and
2856 simultaneously have other occurrences edited in the same way.
2857
2858 You can also use Iedit mode as a quick way to temporarily show only the buffer
2859 lines that match the current text being edited. This gives you the effect of
2860 a temporary @code{keep-lines} or @code{occur}.")
2861 (license license:gpl3+)))
2862
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
2886 want to insert characters right before \"(\" or right after \")\". Thus
2887 unprefixed printable characters can be used to call commands when the point is
2888 at one of these special locations. Lispy provides unprefixed keybindings for
2889 S-expression editing when point is at the beginning or end of an
2890 S-expression.")
2891 (license license:gpl3+)))
2892
2893 (define-public emacs-clojure-mode
2894 (package
2895 (name "emacs-clojure-mode")
2896 (version "5.4.0")
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
2905 "117mvjqh4nm8mvmwmmvy4qmkdg23ldlzk08y91g8b8ac8kxwqg81"))))
2906 (build-system emacs-build-system)
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")))))))
2917 (home-page "https://github.com/clojure-emacs/clojure-mode")
2918 (synopsis "Major mode for Clojure code")
2919 (description
2920 "This Emacs package provides font-lock, indentation, navigation and basic
2921 refactoring for the @uref{http://clojure.org, Clojure programming language}.
2922 It is recommended to use @code{clojure-mode} with paredit or smartparens.")
2923 (license license:gpl3+)))
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)
2938 (home-page "https://github.com/cask/epl")
2939 (synopsis "Emacs Package Library")
2940 (description
2941 "A package management library for Emacs, based on @code{package.el}.
2942
2943 The 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+)))
2946
2947 (define-public emacs-queue
2948 (package
2949 (name "emacs-queue")
2950 (version "0.1.1")
2951 (source (origin
2952 (method url-fetch)
2953 (uri (string-append "https://elpa.gnu.org/packages/queue-"
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
2963 used both as a first-in last-out (FILO) and as a first-in first-out (FIFO)
2964 stack, i.e. elements can be added to the front or back of the queue, and can
2965 be removed from the front. This type of data structure is sometimes called an
2966 \"output-restricted deque\".")
2967 (license license:gpl3+)))
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+)))
2989
2990 (define-public emacs-spinner
2991 (package
2992 (name "emacs-spinner")
2993 (version "1.7.3")
2994 (source (origin
2995 (method url-fetch)
2996 (uri (string-append "https://elpa.gnu.org/packages/spinner-"
2997 version ".el"))
2998 (sha256
2999 (base32
3000 "19kp1mmndbmw11sgvv2ggfjl4pyf5zrsbh3871f0965pw9z8vahd"))))
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
3006 ongoing operations.")
3007 (license license:gpl3+)))
3008
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
3025 syntax highlighting for SPARQL. It also provides a way to execute queries
3026 against a SPARQL HTTP endpoint, such as is provided by Fuseki. It is also
3027 possible to query other endpoints like DBPedia.")
3028 (license license:gpl3+)))
3029
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"))
3039 (file-name (string-append name "-" version ".tar.gz"))
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
3048 Emacs default configuration in uncontroversial ways that nearly everyone can
3049 agree upon.")
3050 (license license:gpl3+)))
3051
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
3070 that highlights non-conforming text. The subset of the English language called
3071 E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
3072 (license license:gpl3+))))
3073
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.
3088 #:make-flags (list (string-append "PREFIX=" %output)
3089 (string-append "LISPDIR=" %output
3090 "/share/emacs/site-lisp/guix.d/ess"))
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")
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)))))
3103 (inputs
3104 `(("emacs" ,emacs-minimal)
3105 ("r-minimal" ,r-minimal)))
3106 (native-inputs
3107 `(("perl" ,perl)
3108 ("texinfo" ,texinfo)
3109 ("texlive" ,(texlive-union (list texlive-latex-natbib
3110 texlive-latex-seminar
3111 texlive-latex-hyperref
3112 texlive-tex-texinfo)))))
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
3116 Emacs. It is designed to support editing of scripts and interaction with
3117 various statistical analysis programs such as R and OpenBUGS.")
3118 (license license:gpl2+)))
3119
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)
3133 (home-page "https://github.com/nonsequitur/smex/")
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
3137 convenient interface to your recently and most frequently used commands. And
3138 to all the other commands, too.")
3139 (license license:gpl3+)))
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
3158 advanced than the built-in javascript-mode. Features include accurate syntax
3159 highlighting using a recursive-descent parser, on-the-fly reporting of syntax
3160 errors and strict-mode warnings, smart line-wrapping within comments and
3161 strings, and code folding.")
3162 (license license:gpl3+)))
3163
3164 (define-public emacs-markdown-mode
3165 (package
3166 (name "emacs-markdown-mode")
3167 (version "2.2")
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
3176 "04isd2sdnms9acpmkd6n7b7y7j0x2kank2kry0zwbxs3bwdavgav"))))
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
3182 in Emacs.")
3183 (license license:gpl3+)))
3184
3185 (define-public emacs-projectile
3186 (package
3187 (name "emacs-projectile")
3188 (version "0.14.0")
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
3196 "1ql1wnzhblbwnv66hf2y0wq45g71hh6s9inc090lmhm1vgylbd1f"))))
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
3205 concept of a project is pretty basic - just a folder containing special file.
3206 Currently git, mercurial and bazaar repos are considered projects by default.
3207 If you want to mark a folder manually as a project just create an empty
3208 .projectile file in it.")
3209 (license license:gpl3+)))
3210
3211 (define-public emacs-elfeed
3212 (package
3213 (name "emacs-elfeed")
3214 (version "2.1.1")
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
3222 "1wlwc8fbkg6w1c8p856ikc20xm72f51clnzz419p0g8cavy27npw"))))
3223 (build-system emacs-build-system)
3224 (arguments
3225 `(#:phases
3226 (modify-phases %standard-phases
3227 (add-before 'install 'check
3228 (lambda _
3229 (zero? (system* "make" "test")))))))
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
3234 and RSS, with a user interface inspired by notmuch.")
3235 (license license:gpl3+)))
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
3255 highlights parentheses, brackets, and braces according to their depth. Each
3256 successive level is highlighted in a different color, making it easy to spot
3257 matching delimiters, orient yourself in the code, and tell which statements
3258 are at a given level.")
3259 (license license:gpl3+)))
3260
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
3279 identifiers based on their names. Each identifier gets a color based on a hash
3280 of its name.")
3281 (license license:bsd-2)))
3282
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
3299 names, e.g. #0000ff is displayed in white with a blue background.")
3300 (license license:gpl3+)))
3301
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
3319 the effect of @code{fill-column} in @code{visual-line-mode}. Instead of
3320 wrapping 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
3323 window edge.")
3324 (license license:gpl3+)))
3325
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.
3344 Importantly, it detects edge cases that ordinary ido cannot handle and either
3345 adjusts them so ido can handle them, or else simply falls back to the standard
3346 Emacs completion function instead.")
3347 (license license:gpl3+)))
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
3369 that uses the standard completion function completing-read.")
3370 (license license:gpl3+)))
3371
3372 (define-public emacs-yaml-mode
3373 (package
3374 (name "emacs-yaml-mode")
3375 (version "0.0.13")
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
3383 "0im88sk9dqw03x6d6zaspgvg9i0pfpgb8f2zygrmbifh2w4pwmvj"))))
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
3389 serialization format. It was initially developed by Yoshiki Kurihara and many
3390 features were added by Marshall Vandegrift. As YAML and Python share the fact
3391 that indentation determines structure, this mode provides indentation and
3392 indentation command behavior very similar to that of python-mode.")
3393 (license license:gpl3+)))
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
3410 aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by
3411 client/server side engines). Web-mode is compatible with many template
3412 engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker,
3413 Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template,
3414 Dust.js, React/JSX, Angularjs, ejs, etc.")
3415 (home-page "http://web-mode.org/")
3416 (license license:gpl3+)))
3417
3418 (define-public emacs-helm
3419 (package
3420 (name "emacs-helm")
3421 (version "2.7.1")
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
3430 "0pay8pi3fszykgskfbxsp4byad497cgfz4m886mxnkba1naxf6h7"))))
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
3437 framework for Emacs")
3438 (description "Helm is incremental completion and selection narrowing
3439 framework for Emacs. It will help steer you in the right direction when
3440 you're looking for stuff in Emacs (like buffers, files, etc). Helm is a fork
3441 of @code{anything.el} originally written by Tamas Patrovic and can be
3442 considered 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
3444 not tied in the trap of backward compatibility.")
3445 (license license:gpl3+)))
3446
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
3468 for search-based navigation of buffers.")
3469 (license license:gpl2+)))
3470
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
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)
3514 ("emacs-queue" ,emacs-queue)))
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
3519 provide an interactive development experience similar to the one you'd get
3520 when programming in Emacs Lisp, Common Lisp (with SLIME or Sly), Scheme (with
3521 Geiser) and Smalltalk.
3522
3523 CIDER is the successor to the now deprecated combination of using SLIME +
3524 swank-clojure for Clojure development.
3525
3526 There are plenty of differences between CIDER and SLIME, but the core ideas
3527 are pretty much the same (and SLIME served as the principle inspiration for
3528 CIDER).")
3529 (license license:gpl3+)))
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)
3545 (home-page "https://github.com/immerrr/lua-mode/")
3546 (synopsis "Major mode for lua")
3547 (description
3548 "This Emacs package provides a mode for @uref{https://www.lua.org/,
3549 Lua programing language}.")
3550 (license license:gpl2+)))
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
3570 news items, openrc and runscripts.")
3571 (license license:gpl2+)))
3572
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
3594 main features of Vim, and provides facilities for writing custom
3595 extensions.")
3596 (license license:gpl3+)))
3597
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")
3607 (file-name (string-append "goto-chg-" version ".el"))
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
3617 the point of the most recent edit in the current Emacs buffer. When repeated,
3618 go to the second most recent edit, etc. Negative argument, @kbd{C-u -}, is
3619 used for reverse direction.")
3620 (license license:gpl2+)))
3621
3622 (define-public emacs-monroe
3623 (package
3624 (name "emacs-monroe")
3625 (version "0.3.1")
3626 (source
3627 (origin
3628 (method url-fetch)
3629 (uri (string-append "https://github.com/sanel/monroe/archive/"
3630 version ".tar.gz"))
3631 (file-name (string-append name "-" version ".tar.gz"))
3632 (sha256
3633 (base32
3634 "0icdx8shkd951phlnmcq1vqaxp1l667q5rjscskc5r22aylakh4w"))))
3635 (build-system emacs-build-system)
3636 (home-page "https://github.com/sanel/monroe")
3637 (synopsis "Clojure nREPL client for Emacs")
3638 (description
3639 "Monroe is a nREPL client for Emacs, focused on simplicity and easy
3640 distribution, primarily targeting Clojure users")
3641 (license license:gpl3+)))
3642
3643 (define-public emacs-writegood-mode
3644 (package
3645 (name "emacs-writegood-mode")
3646 (version "2.0.2")
3647 (home-page "https://github.com/bnbeckwith/writegood-mode")
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
3661 in English as you type. It primarily detects \"weasel words\" and abuse of
3662 passive voice.")
3663 (license license:gpl3+)))
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"))
3678 (file-name (string-append name "-" version ".tar.gz"))))
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+)))
3683
3684 (define-public emacs-org
3685 (package
3686 (name "emacs-org")
3687 (version "20170622")
3688 (source (origin
3689 (method url-fetch)
3690 (uri (string-append "http://elpa.gnu.org/packages/org-"
3691 version ".tar"))
3692 (sha256
3693 (base32
3694 "0922lcbr2r7bkswljqzbm5y3ny1n67qfrmf7h7z9hsw2wy0505dp"))))
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
3699 lists, and project planning with a fast and effective plain-text system. It
3700 also is an authoring system with unique support for literate programming and
3701 reproducible research.")
3702 (license license:gpl3+)))
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.
3722 The sorting algorithm is a balance between word beginnings (abbreviation)
3723 and contiguous matches (substring). The longer the substring match,
3724 the higher it scores. This maps well to how we think about matching.
3725 Flx has support for ido (interactively do things) through flx-ido.")
3726 (license license:gpl3+)))
3727
3728 (define-public emacs-cyberpunk-theme
3729 (package
3730 (name "emacs-cyberpunk-theme")
3731 (version "1.18")
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
3739 "0pxzbw0qjxgkhhs3gn3k9qy41kl1a4pfzbw83dk24l4b3nxd24wg"))
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
3746 known loosely as deftheme. Many mode-specific customizations are included.")
3747 (license license:gpl3+)))
3748
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
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
3799 by zenburn, sinburn and similar themes, but slowly diverging from them.")
3800 (license license:gpl3+))))
3801
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.
3822 It extends the standard Emacs completion interface and provides an environment
3823 that allows users to concentrate more on their own work. Its features are:
3824 a visual interface, reduce overhead of completion by using statistic method,
3825 extensibility.")
3826 (license license:gpl3+)))
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
3841 `(("gettext" ,gettext-minimal)))
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
3853 many aspects of applications. The m17n library represents
3854 multilingual text as an object named M-text. M-text is a string with
3855 attributes called text properties, and designed to substitute for
3856 string in C. Text properties carry any information required to input,
3857 display and edit the text.
3858
3859 This package contains the library database.")
3860 (license license:lgpl2.1+)))
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)
3869 (uri (string-append "mirror://savannah/m17n/m17n-lib-"
3870 version ".tar.gz"))
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
3889 many aspects of applications. The m17n library represents
3890 multilingual text as an object named M-text. M-text is a string with
3891 attributes called text properties, and designed to substitute for
3892 string in C. Text properties carry any information required to input,
3893 display and edit the text.
3894
3895 This package contains the library runtime.")
3896 (license license:lgpl2.1+)))
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
3916 editing nginx config files.")
3917 (license license:gpl2+)))
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.
3934 Streams are implemented as delayed evaluation of cons cells.")
3935 (license license:gpl3+)))
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
3958 procedures for emacs-lisp-mode.")
3959 (license license:gpl3+))))
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
3981 provides functions to convert hash tables from and to alists and plists.")
3982 (license license:gpl3+)))
3983
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
4012 you to deal with multiple log levels.")
4013 (license license:gpl3+)))
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
4034 described at @uref{http://www.growlforwindows.com/gfw/help/gntp.aspx}.
4035 It is incomplete as it only lets you send but not receive
4036 notifications.")
4037 (license license:bsd-3)))
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
4061 interface and multiple, selectable \"styles\", whose use is fully
4062 customizable by the user.")
4063 (license license:gpl2+)))
4064
4065 (define-public emacs-mu4e-alert
4066 (package
4067 (name "emacs-mu4e-alert")
4068 (version "1.0")
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
4078 "07qc834qnxn8xi4bw5nawj8g91bmkzw0r0vahkgysp7r9xrf57gj"))))
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.
4088 Additionally it can display the number of unread emails in the
4089 mode-line.")
4090 (license license:gpl3+)))
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+)))
4111
4112 (define-public emacs-yasnippet
4113 (package
4114 (name "emacs-yasnippet")
4115 (version "0.12.0")
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
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"))))))
4135 (build-system emacs-build-system)
4136 (home-page "https://github.com/joaotavora/yasnippet")
4137 (synopsis "Yet another snippet extension for Emacs")
4138 (description
4139 "YASnippet is a template system for Emacs. It allows you to type an
4140 abbreviation and automatically expand it into function templates.")
4141 (license license:gpl3+)))
4142
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,
4183 the snippets will be in \"~/.guix-profile/share/emacs/yasnippet-snippets/\".
4184 To make YASnippet aware of these snippets, add the above directory to
4185 @code{yas-snippet-dirs}.")
4186 (license license:expat))))
4187
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
4214 memoizing functions.")
4215 (license license:unlicense)))
4216
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
4235 number on the left margin in Emacs.")
4236 (license license:gpl2+)))
4237
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")
4254 (synopsis "Highlights all occurrences of the word the point is on")
4255 (description
4256 "This Emacs package provides @code{idle-highlight-mode} that sets
4257 an idle timer to highlight all occurrences in the buffer of the word under
4258 the point.")
4259 (license license:gpl3+)))
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
4280 modern look. It implements a new HTML back-end for exporting org-mode docs as
4281 HTML compatible with Twitter Bootstrap. By default, HTML is exported with
4282 jQuery and Bootstrap resources included via osscdn.")
4283 (license license:gpl3+)))
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+)))
4305
4306 (define-public emacspeak
4307 (package
4308 (name "emacspeak")
4309 (version "46.0")
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
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$")))))
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
4330 (lambda _
4331 ;; Configure Emacspeak according to etc/install.org.
4332 (zero? (system* "make" "config"))))
4333 (add-after 'build 'build-espeak
4334 (lambda _
4335 (zero? (system* "make" "espeak"))))
4336 (replace 'install
4337 (lambda* (#:key outputs #:allow-other-keys)
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
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
4379 interact independently and efficiently with the computer. Audio formatting
4380 --a technique pioneered by AsTeR-- and full support for W3C's Aural CSS (ACSS)
4381 allows Emacspeak to produce rich aural presentations of electronic information.
4382 By seamlessly blending all aspects of the Internet such as Web-surfing and
4383 messaging, Emacspeak speech-enables local and remote information via a
4384 consistent and well-integrated user interface.")
4385 (license license:gpl2+)))
4386
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}
4404 minor mode which sets the wrap-prefix property on the fly so that
4405 single-long-line paragraphs get word-wrapped in a way similar to what
4406 you'd get with @kbd{M-q} using @code{adaptive-fill-mode}, but without
4407 actually changing the buffer's text.")
4408 (license license:gpl3+)))
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
4428 abbreviation of the mode line displays (lighters) of minor modes.")
4429 (license license:gpl2+)))
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
4462 configuration in your @file{.emacs} file in a way that is both
4463 performance-oriented and tidy.")
4464 (license license:gpl2+)))
4465
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
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
4496 "https://www.informationelle-selbstbestimmung-im-internet.de"
4497 "/emacs/jl-encrypt" version "/jl-encrypt.el"))
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
4507 automatically encrypts messages that you send (e.g., email) when public keys
4508 for all recipients are available, and it protects you from accidentally
4509 sending un-encrypted messages. It can also be configured to automatically
4510 sign messages that you send. For details and instructions on how to use
4511 DefaultEncrypt, please refer to the home page or read the comments in the
4512 source file, @file{jl-encrypt.el}.")
4513 (license license:gpl3+)))
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
4533 the associated decorations to HTML. Output to CSS, inline CSS and
4534 fonts is supported.")
4535 (license license:gpl2+)))
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
4562 Emacs Lisp")
4563 (description "@code{emacs-xmlgen} provides S-expression to XML
4564 conversion for Emacs Lisp.")
4565 (license license:gpl2+)))
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
4584 math")
4585 (description "CDLaTeX is an Emacs minor mode supporting fast
4586 insertion of environment templates and math in LaTeX. Similar
4587 commands are also offered as part of the AUCTeX package, but it is not
4588 the same - CDLaTeX focuses on speediness for inserting LaTeX
4589 constructs.")
4590 (license license:gpl3+)))
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
4626 X11 protocol based on the XML description files from the XCB project. It
4627 features an object-oriented API and permits a certain degree of concurrency.
4628 It should enable you to implement low-level X11 applications.")
4629 (license license:gpl3+)))
4630
4631 (define-public emacs-exwm
4632 (package
4633 (name "emacs-exwm")
4634 (version "0.15")
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
4642 "1y7nqry9y0a99bsdqkk9f554vczfw4sz6raadw3138835qy697jg"))))
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
4676 (with-output-to-file exwm-executable
4677 (lambda _
4678 (format #t "#!~a ~@
4679 ~a +SI:localuser:$USER ~@
4680 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
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)
4692 (message (concat "exwm configuration not found. "
4693 "Falling back to default configuration...")))))))
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
4698 built on top of XELB.")
4699 (license license:gpl3+)))
4700
4701 (define-public emacs-switch-window
4702 (package
4703 (name "emacs-switch-window")
4704 (version "1.5.1")
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
4713 "07f99apxscwvsp2bjxsbi462c433kcglrjh6xl0gyafs1nvvvnd8"))))
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
4718 offer a visual way to choose a window to switch to, delete, split or
4719 other operations.")
4720 (license license:wtfpl2)))
4721
4722 (define-public emacs-exwm-x
4723 (package
4724 (name "emacs-exwm-x")
4725 (version "1.7.2")
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
4735 "1ny13i82fb72917jgl0ndwjg1x6l9f8gfhcx7cwlwhh5saq23mvy"))))
4736 (build-system emacs-build-system)
4737 (propagated-inputs
4738 `(("emacs-exwm" ,emacs-exwm)
4739 ("emacs-switch-window" ,emacs-switch-window)
4740 ("emacs-ivy" ,emacs-ivy)
4741 ("emacs-use-package" ,emacs-use-package)))
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
4770 (with-output-to-file exwm-executable
4771 (lambda _
4772 (format #t "#!~a ~@
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
4784 on mouse-control.")
4785 (license license:gpl3+)))
4786
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
4826 with gnuplot.")
4827 (license license:gpl2+)))
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")
4837 (file-name (string-append "transpose-frame-" version ".el"))
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
4845 functions which allows users to transpose windows arrangement in currently
4846 selected frame.")
4847 (license license:bsd-2)))
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")
4857 (file-name (string-append "key-chord-" version ".el"))
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
4865 mode for binding key chords to commands. A key chord is defined as two keys
4866 pressed simultaneously or a single key quickly pressed twice.")
4867 (license license:gpl2+)))
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
4889 addition of surrounding pairs, such as parantheses and quotes, in evil mode.")
4890 (license license:gpl3+)))
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
4912 comment out lines of code in evil mode. It provides @code{gcc} to comment out
4913 lines, and @code{gc} to comment out the target of a motion.")
4914 (license license:gpl3+)))
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
4938 strings to ANSI strings. Turning a string into an ANSI string can be to add
4939 color to a text, add color in the background of a text or adding a style, such
4940 as bold, underscore or italic.")
4941 (license license:gpl3+)))
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
4966 Emacs.")
4967 (license license:gpl3+)))
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 ""))))
5022 #t))))
5023 #:include (cons* "^reporters/.*\\.el$" %default-include)))
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
5027 using ERT. It assumes a certain test structure setup and can therefore make
5028 running tests easier.")
5029 (license license:gpl3+))))
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},
5050 pair of minor modes which suppress all mouse events by intercepting them and
5051 running a customisable handler command (@code{ignore} by default). ")
5052 (license license:gpl3+)))
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
5078 from within Emacs. Restclient runs queries from a plan-text query sheet,
5079 displays results pretty-printed in XML or JSON with @code{restclient-mode}")
5080 (license license:public-domain))))
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+))))
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")
5149 (description
5150 "@code{emacs-which-key} is a minor mode for Emacs that displays the key
5151 bindings following your currently entered incomplete command (a prefix) in a
5152 popup. For example, after enabling the minor mode if you enter C-x and wait
5153 for the default of 1 second, the minibuffer will expand with all of the
5154 available key bindings that follow C-x (or as many as space allows given your
5155 settings).")
5156 (license license:gpl3+)))
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.
5181 It lets you edit a latex fragment in a dedicated buffer just like editing a
5182 src block.")
5183 (license license:gpl3+)))
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
5203 multiplexer.")
5204 (license license:gpl3+)))
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
5226 editing RPM spec files.")
5227 (license license:gpl2+)))
5228
5229 (define-public emacs-git-messenger
5230 (package
5231 (name "emacs-git-messenger")
5232 (version "0.18")
5233 (source
5234 (origin
5235 (method url-fetch)
5236 (uri (string-append
5237 "https://github.com/syohex/emacs-git-messenger/archive/"
5238 version ".tar.gz"))
5239 (file-name (string-append name "-" version ".tar.gz"))
5240 (sha256
5241 (base32
5242 "17mqki6g0wx46fn7dcbcc2pjxik7vvrcb1j9jzxim8b9psbsbnp9"))))
5243 (build-system emacs-build-system)
5244 (propagated-inputs
5245 `(("emacs-popup" ,emacs-popup)))
5246 (arguments
5247 `(#:phases
5248 (modify-phases %standard-phases
5249 (add-before 'install 'check
5250 (lambda* (#:key inputs #:allow-other-keys)
5251 (zero? (system* "emacs" "--batch" "-L" "."
5252 "-L" (string-append
5253 (assoc-ref inputs "emacs-popup")
5254 "/share/emacs/site-lisp/guix.d/popup-"
5255 ,(package-version emacs-popup))
5256 "-l" "test/test.el"
5257 "-f" "ert-run-tests-batch-and-exit")))))))
5258 (home-page "https://github.com/syohex/emacs-git-messenger")
5259 (synopsis "Popup commit message at current line")
5260 (description "@code{emacs-git-messenger} provides
5261 @code{git-messenger:popup-message}, a function that when called, will popup
5262 the last git commit message for the current line. This uses git-blame
5263 internally.")
5264 (license license:gpl3+)))
5265
5266 (define-public emacs-gitpatch
5267 (package
5268 (name "emacs-gitpatch")
5269 (version "0.5.0")
5270 (source
5271 (origin
5272 (method url-fetch)
5273 (uri (string-append "https://github.com/tumashu/gitpatch/archive/"
5274 "v" version ".tar.gz"))
5275 (file-name (string-append name "-" version ".tar.gz"))
5276 (sha256
5277 (base32
5278 "1yj6pmic541lcnscjin300k380qp9xdfprs55xg1q57jrkq6f6k7"))))
5279 (build-system emacs-build-system)
5280 (home-page "https://github.com/tumashu/gitpatch")
5281 (synopsis "Mail git patch from Emacs")
5282 (description "@code{emacs-gitpatch} lets users easily send git patches,
5283 created by @code{git format-patch}, from @code{magit}, @code{dired} and
5284 @code{ibuffer} buffers.")
5285 (license license:gpl3+)))