gnu: emacs-mu4e-conversation: Fix typo in description.
[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, 2018 Ludovic Courtès <ludo@gnu.org>
4 ;;; Copyright © 2014, 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
5 ;;; Copyright © 2014, 2015, 2016, 2017, 2018 Alex Kost <alezost@gmail.com>
6 ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
7 ;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
8 ;;; Copyright © 2016, 2017, 2018 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, 2017, 2018 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 Nils Gillmann <ng0@n0.is>
16 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
17 ;;; Copyright © 2016, 2017, 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
18 ;;; Copyright © 2016, 2017, 2018 Alex Vong <alexvong1995@gmail.com>
19 ;;; Copyright © 2016, 2017, 2018 Arun Isaac <arunisaac@systemreboot.net>
20 ;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
21 ;;; Copyright © 2017, 2018 Mathieu Othacehe <m.othacehe@gmail.com>
22 ;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
23 ;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
24 ;;; Copyright © 2017, 2018 Kyle Meyer <kyle@kyleam.com>
25 ;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
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, 2018 Oleg Pykhalov <go.wigust@gmail.com>
30 ;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
31 ;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
32 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
33 ;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org>
34 ;;; Copyright © 2017, 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
35 ;;; Copyright © 2018 Sohom Bhattacharjee <soham.bhattacharjee15@gmail.com>
36 ;;; Copyright © 2018 Mathieu Lirzin <mthl@gnu.org>
37 ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
38 ;;; Copyright © 2018 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
39 ;;; Copyright © 2018 Jack Hill <jackhill@jackhill.us>
40 ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
41 ;;; Copyright © 2018 Alex Branham <alex.branham@gmail.com>
42 ;;;
43 ;;; This file is part of GNU Guix.
44 ;;;
45 ;;; GNU Guix is free software; you can redistribute it and/or modify it
46 ;;; under the terms of the GNU General Public License as published by
47 ;;; the Free Software Foundation; either version 3 of the License, or (at
48 ;;; your option) any later version.
49 ;;;
50 ;;; GNU Guix is distributed in the hope that it will be useful, but
51 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
52 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
53 ;;; GNU General Public License for more details.
54 ;;;
55 ;;; You should have received a copy of the GNU General Public License
56 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
57
58 (define-module (gnu packages emacs)
59 #:use-module ((guix licenses) #:prefix license:)
60 #:use-module (guix packages)
61 #:use-module (guix download)
62 #:use-module (guix git-download)
63 #:use-module (guix gexp)
64 #:use-module (guix monads)
65 #:use-module (guix store)
66 #:use-module (guix build-system gnu)
67 #:use-module (guix build-system cmake)
68 #:use-module (guix build-system emacs)
69 #:use-module (guix build-system glib-or-gtk)
70 #:use-module (guix build-system trivial)
71 #:use-module (gnu packages)
72 #:use-module (gnu packages audio)
73 #:use-module (gnu packages bash)
74 #:use-module (gnu packages cmake)
75 #:use-module (gnu packages code)
76 #:use-module (gnu packages databases)
77 #:use-module (gnu packages guile)
78 #:use-module (gnu packages gtk)
79 #:use-module (gnu packages gnome)
80 #:use-module (gnu packages ncurses)
81 #:use-module (gnu packages python)
82 #:use-module (gnu packages tex)
83 #:use-module (gnu packages texinfo)
84 #:use-module (gnu packages tcl)
85 #:use-module (gnu packages tls)
86 #:use-module (gnu packages pkg-config)
87 #:use-module (gnu packages xorg)
88 #:use-module (gnu packages lesstif)
89 #:use-module (gnu packages llvm)
90 #:use-module (gnu packages image)
91 #:use-module (gnu packages linux)
92 #:use-module (gnu packages version-control)
93 #:use-module (gnu packages imagemagick)
94 #:use-module (gnu packages w3m)
95 #:use-module (gnu packages wget)
96 #:use-module (gnu packages autotools)
97 #:use-module (gnu packages base)
98 #:use-module (gnu packages compression)
99 #:use-module (gnu packages xml)
100 #:use-module (gnu packages glib)
101 #:use-module (gnu packages acl)
102 #:use-module (gnu packages mail)
103 #:use-module (gnu packages package-management)
104 #:use-module (gnu packages perl)
105 #:use-module (gnu packages pdf)
106 #:use-module (gnu packages scheme)
107 #:use-module (gnu packages statistics)
108 #:use-module (gnu packages xiph)
109 #:use-module (gnu packages mp3)
110 #:use-module (gnu packages gettext)
111 #:use-module (gnu packages fribidi)
112 #:use-module (gnu packages gd)
113 #:use-module (gnu packages fontutils)
114 #:use-module (gnu packages password-utils)
115 #:use-module (gnu packages pulseaudio)
116 #:use-module (gnu packages xdisorg)
117 #:use-module (gnu packages shells)
118 #:use-module (gnu packages gnupg)
119 #:use-module (gnu packages video)
120 #:use-module (gnu packages haskell)
121 #:use-module (guix utils)
122 #:use-module (srfi srfi-1)
123 #:use-module (ice-9 match))
124
125 (define-public emacs
126 (package
127 (name "emacs")
128 (version "26.1")
129 (source (origin
130 (method url-fetch)
131 (uri (string-append "mirror://gnu/emacs/emacs-"
132 version ".tar.xz"))
133 (sha256
134 (base32
135 "0b6k1wq44rc8gkvxhi1bbjxbz3cwg29qbq8mklq2az6p1hjgrx0w"))
136 (patches (search-patches "emacs-exec-path.patch"
137 "emacs-fix-scheme-indent-function.patch"
138 "emacs-source-date-epoch.patch"))
139 (modules '((guix build utils)))
140 (snippet
141 ;; Delete the bundled byte-compiled elisp files and
142 ;; generated autoloads.
143 '(with-directory-excursion "lisp"
144 (for-each delete-file
145 (append (find-files "." "\\.elc$")
146 (find-files "." "loaddefs\\.el$")
147 ;; This is the only "autoloads" file that
148 ;; does not have "*loaddefs.el" name.
149 '("eshell/esh-groups.el")))
150
151 ;; Make sure Tramp looks for binaries in the right places on
152 ;; remote GuixSD machines, where 'getconf PATH' returns
153 ;; something bogus.
154 (substitute* "net/tramp-sh.el"
155 ;; Patch the line after "(defcustom tramp-remote-path".
156 (("\\(tramp-default-remote-path")
157 (format #f "(tramp-default-remote-path ~s ~s ~s ~s "
158 "~/.guix-profile/bin" "~/.guix-profile/sbin"
159 "/run/current-system/profile/bin"
160 "/run/current-system/profile/sbin")))
161
162 ;; Make sure Man looks for C header files in the right
163 ;; places.
164 (substitute* "man.el"
165 (("\"/usr/local/include\"" line)
166 (string-join
167 (list line
168 "\"~/.guix-profile/include\""
169 "\"/var/guix/profiles/system/profile/include\"")
170 " ")))
171 #t))))
172 (build-system glib-or-gtk-build-system)
173 (arguments
174 `(#:tests? #f ; no check target
175 #:phases
176 (modify-phases %standard-phases
177 (add-before 'configure 'fix-/bin/pwd
178 (lambda _
179 ;; Use `pwd', not `/bin/pwd'.
180 (substitute* (find-files "." "^Makefile\\.in$")
181 (("/bin/pwd")
182 "pwd"))
183 #t))
184 (add-after 'install 'install-site-start
185 ;; Use 'guix-emacs' in "site-start.el". This way, Emacs packages
186 ;; provided by Guix and installed in
187 ;; ~/.guix-profile/share/emacs/site-lisp/guix.d/PACKAGE-VERSION are
188 ;; automatically found.
189 (lambda* (#:key inputs outputs #:allow-other-keys)
190 (let* ((out (assoc-ref outputs "out"))
191 (lisp-dir (string-append out "/share/emacs/site-lisp")))
192 (copy-file (assoc-ref inputs "guix-emacs.el")
193 (string-append lisp-dir "/guix-emacs.el"))
194 (with-output-to-file (string-append lisp-dir "/site-start.el")
195 (lambda ()
196 (display
197 (string-append "(when (require 'guix-emacs nil t)\n"
198 " (guix-emacs-autoload-packages))\n"))))
199 #t))))))
200 (inputs
201 `(("gnutls" ,gnutls)
202 ("ncurses" ,ncurses)
203
204 ;; TODO: Add the optional dependencies.
205 ("libx11" ,libx11)
206 ("gtk+" ,gtk+)
207 ("libxft" ,libxft)
208 ("libtiff" ,libtiff)
209 ("giflib" ,giflib)
210 ("libjpeg" ,libjpeg)
211 ("imagemagick" ,imagemagick)
212 ("acl" ,acl)
213
214 ;; When looking for libpng `configure' links with `-lpng -lz', so we
215 ;; must also provide zlib as an input.
216 ("libpng" ,libpng)
217 ("zlib" ,zlib)
218
219 ("librsvg" ,librsvg)
220 ("libxpm" ,libxpm)
221 ("libxml2" ,libxml2)
222 ("libice" ,libice)
223 ("libsm" ,libsm)
224 ("alsa-lib" ,alsa-lib)
225 ("dbus" ,dbus)
226
227 ;; multilingualization support
228 ("libotf" ,libotf)
229 ("m17n-lib" ,m17n-lib)))
230 (native-inputs
231 `(("guix-emacs.el" ,(search-auxiliary-file "emacs/guix-emacs.el"))
232 ("pkg-config" ,pkg-config)
233 ("texinfo" ,texinfo)))
234
235 (native-search-paths
236 (list (search-path-specification
237 (variable "INFOPATH")
238 (files '("share/info")))))
239
240 (home-page "https://www.gnu.org/software/emacs/")
241 (synopsis "The extensible, customizable, self-documenting text editor")
242 (description
243 "GNU Emacs is an extensible and highly customizable text editor. It is
244 based on an Emacs Lisp interpreter with extensions for text editing. Emacs
245 has been extended in essentially all areas of computing, giving rise to a
246 vast array of packages supporting, e.g., email, IRC and XMPP messaging,
247 spreadsheets, remote server editing, and much more. Emacs includes extensive
248 documentation on all aspects of the system, from basic editing to writing
249 large Lisp programs. It has full Unicode support for nearly all human
250 languages.")
251 (license license:gpl3+)))
252
253 (define-public emacs-minimal
254 ;; This is the version that you should use as an input to packages that just
255 ;; need to byte-compile .el files.
256 (package (inherit emacs)
257 (name "emacs-minimal")
258 (synopsis "The extensible text editor (used only for byte-compilation)")
259 (build-system gnu-build-system)
260 (arguments
261 `(#:configure-flags (list "--with-gnutls=no")
262 ,@(substitute-keyword-arguments (package-arguments emacs)
263 ((#:phases phases)
264 `(modify-phases ,phases
265 (delete 'install-site-start))))))
266 (inputs
267 `(("ncurses" ,ncurses)))
268 (native-inputs
269 `(("pkg-config" ,pkg-config)))))
270
271 (define-public emacs-no-x
272 (package (inherit emacs)
273 (name "emacs-no-x")
274 (synopsis "The extensible, customizable, self-documenting text
275 editor (console only)")
276 (build-system gnu-build-system)
277 (inputs (fold alist-delete
278 (package-inputs emacs)
279 '("libx11" "gtk+" "libxft" "libtiff" "giflib" "libjpeg"
280 "imagemagick" "libpng" "librsvg" "libxpm" "libice"
281 "libsm"
282
283 ;; These depend on libx11, so remove them as well.
284 "libotf" "m17n-lib" "dbus")))))
285
286 (define-public emacs-no-x-toolkit
287 (package (inherit emacs)
288 (name "emacs-no-x-toolkit")
289 (synopsis "The extensible, customizable, self-documenting text
290 editor (without an X toolkit)" )
291 (build-system gnu-build-system)
292 (inputs (append `(("inotify-tools" ,inotify-tools))
293 (alist-delete "gtk+" (package-inputs emacs))))
294 (arguments (append '(#:configure-flags '("--with-x-toolkit=no"))
295 (package-arguments emacs)))))
296
297 (define-public guile-emacs
298 (package (inherit emacs)
299 (name "guile-emacs")
300 (version "20150512.41120e0")
301 (source (origin
302 (method git-fetch)
303 (uri (git-reference
304 (url "git://git.hcoop.net/git/bpt/emacs.git")
305 (commit "41120e0f595b16387eebfbf731fff70481de1b4b")))
306 (file-name (string-append name "-" version "-checkout"))
307 (patches (search-patches "guile-emacs-fix-configure.patch"))
308 (sha256
309 (base32
310 "0lvcvsz0f4mawj04db35p1dvkffdqkz8pkhc0jzh9j9x2i63kcz6"))))
311 (native-inputs
312 `(("autoconf" ,autoconf)
313 ("automake" ,automake)
314 ("guile" ,guile-for-guile-emacs)
315 ,@(package-native-inputs emacs)))
316 (arguments
317 (substitute-keyword-arguments `(;; Build fails if we allow parallel build.
318 #:parallel-build? #f
319 ;; Tests aren't passing for now.
320 #:tests? #f
321 ,@(package-arguments emacs))
322 ((#:phases phases)
323 `(modify-phases ,phases
324 (add-after 'unpack 'autogen
325 (lambda _
326 (invoke "sh" "autogen.sh")))
327 ;; Build sometimes fails: deps/dispnew.d: No such file or directory
328 (add-before 'build 'make-deps-dir
329 (lambda _
330 (invoke "mkdir" "-p" "src/deps")))))))))
331
332 \f
333 ;;;
334 ;;; Emacs hacking.
335 ;;;
336
337 (define-public geiser
338 (package
339 (name "geiser")
340 (version "0.10")
341 (source (origin
342 (method url-fetch)
343 (uri (string-append "mirror://savannah/geiser/" version
344 "/geiser-" version ".tar.gz"))
345 (sha256
346 (base32
347 "0pj3l7p8d60c9b4vfprnv6g5l61d74pls4b5dvd84cn4ky9mzwjv"))))
348 (build-system gnu-build-system)
349 (arguments
350 '(#:phases
351 (modify-phases %standard-phases
352 (add-after 'install 'post-install
353 (lambda* (#:key outputs #:allow-other-keys)
354 (symlink "geiser-install.el"
355 (string-append (assoc-ref outputs "out")
356 "/share/emacs/site-lisp/"
357 "geiser-autoloads.el"))
358 #t)))))
359 (inputs `(("guile" ,guile-2.2)))
360 (native-inputs `(("emacs" ,emacs-minimal)))
361 (home-page "https://nongnu.org/geiser/")
362 (synopsis "Collection of Emacs modes for Guile and Racket hacking")
363 (description
364 "Geiser is a collection of Emacs major and minor modes that conspire with
365 one or more Scheme implementations to keep the Lisp Machine Spirit alive. The
366 continuously running Scheme interpreter takes the center of the stage in
367 Geiser. A bundle of Elisp shims orchestrates the dialog between the Scheme
368 implementation, Emacs and, ultimately, the schemer, giving them access to live
369 metadata.")
370 (license license:bsd-3)))
371
372 (define-public paredit
373 (package
374 (name "emacs-paredit")
375 (version "24")
376 (source (origin
377 (method url-fetch)
378 (uri (string-append "http://mumble.net/~campbell/emacs/paredit-"
379 version ".el"))
380 (sha256
381 (base32
382 "0pp3n8q6kc70blqsaw0zlzp6bc327dpgdrjr0cnh7hqg1lras7ka"))))
383 (build-system emacs-build-system)
384 (home-page "http://mumble.net/~campbell/emacs/paredit/")
385 (synopsis "Emacs minor mode for editing parentheses")
386 (description
387 "ParEdit (paredit.el) is a minor mode for performing structured editing
388 of S-expression data. The typical example of this would be Lisp or Scheme
389 source code.
390
391 ParEdit helps **keep parentheses balanced** and adds many keys for moving
392 S-expressions and moving around in S-expressions. Its behavior can be jarring
393 for those who may want transient periods of unbalanced parentheses, such as
394 when typing parentheses directly or commenting out code line by line.")
395 (license license:gpl3+)))
396
397 (define-public git-modes
398 (package
399 (name "emacs-git-modes")
400 (version "1.2.8")
401 (source (origin
402 (method url-fetch)
403 (uri (string-append
404 "https://github.com/magit/git-modes/archive/"
405 version ".tar.gz"))
406 (file-name (string-append name "-" version ".tar.gz"))
407 (sha256
408 (base32
409 "0h49f68yn0q4lg054adqii4qja1z2pzybm7nf4kvpq7fzjrzgv1q"))))
410 (build-system emacs-build-system)
411 (home-page "https://github.com/magit/git-modes")
412 (synopsis "Emacs major modes for Git configuration files")
413 (description
414 "This package provides Emacs major modes for editing various Git
415 configuration files, such as .gitattributes, .gitignore, and .git/config.")
416 (license license:gpl3+)))
417
418 (define-public git-modes/old-name
419 (deprecated-package "git-modes" git-modes))
420
421 (define-public emacs-with-editor
422 (package
423 (name "emacs-with-editor")
424 (version "2.7.3")
425 (source (origin
426 (method url-fetch)
427 (uri (string-append
428 "https://github.com/magit/with-editor/archive/v"
429 version ".tar.gz"))
430 (file-name (string-append name "-" version ".tar.gz"))
431 (sha256
432 (base32
433 "1ln2s0kckzkv50qmr6x1kb2j30cfjii0vs6lpghg7ff4lav8jqgh"))))
434 (build-system emacs-build-system)
435 (propagated-inputs
436 `(("emacs-dash" ,emacs-dash)))
437 (home-page "https://github.com/magit/with-editor")
438 (synopsis "Emacs library for using Emacsclient as EDITOR")
439 (description
440 "This package provides an Emacs library to use the Emacsclient as
441 @code{$EDITOR} of child processes, making sure they know how to call home.
442 For remote processes a substitute is provided, which communicates with Emacs
443 on stdout instead of using a socket as the Emacsclient does.")
444 (license license:gpl3+)))
445
446 (define-public magit
447 (package
448 (name "magit")
449 (version "2.13.0")
450 (source (origin
451 (method url-fetch)
452 (uri (string-append
453 "https://github.com/magit/magit/releases/download/"
454 version "/" name "-" version ".tar.gz"))
455 (sha256
456 (base32
457 "1ygaah3dd3nxpyd17297xgvdcgr7pgzzwlmpnmchki0kiwgg3sbc"))))
458 (build-system gnu-build-system)
459 (native-inputs `(("texinfo" ,texinfo)
460 ("emacs" ,emacs-minimal)))
461 (inputs
462 `(("git" ,git)
463 ("perl" ,perl)))
464 (propagated-inputs
465 `(("dash" ,emacs-dash)
466 ("ghub" ,emacs-ghub)
467 ("magit-popup" ,emacs-magit-popup)
468 ("with-editor" ,emacs-with-editor)))
469 (arguments
470 `(#:test-target "test"
471 #:tests? #f ; tests are not included in the release
472
473 #:make-flags
474 (list (string-append "PREFIX=" %output)
475 ;; Don't put .el files in a sub-directory.
476 (string-append "lispdir=" %output "/share/emacs/site-lisp")
477 (string-append "DASH_DIR="
478 (assoc-ref %build-inputs "dash")
479 "/share/emacs/site-lisp/guix.d/dash-"
480 ,(package-version emacs-dash))
481 (string-append "GHUB_DIR="
482 (assoc-ref %build-inputs "ghub")
483 "/share/emacs/site-lisp/guix.d/ghub-"
484 ,(package-version emacs-ghub))
485 (string-append "MAGIT_POPUP_DIR="
486 (assoc-ref %build-inputs "magit-popup")
487 "/share/emacs/site-lisp/guix.d/magit-popup-"
488 ,(package-version emacs-magit-popup))
489 (string-append "WITH_EDITOR_DIR="
490 (assoc-ref %build-inputs "with-editor")
491 "/share/emacs/site-lisp/guix.d/with-editor-"
492 ,(package-version emacs-with-editor)))
493
494 #:phases
495 (modify-phases %standard-phases
496 (delete 'configure)
497 (add-before
498 'build 'patch-exec-paths
499 (lambda* (#:key inputs #:allow-other-keys)
500 (let ((perl (assoc-ref inputs "perl")))
501 (substitute* "lisp/magit-sequence.el"
502 (("perl") (string-append perl "/bin/perl")))
503 #t))))))
504 (home-page "https://magit.vc/")
505 (synopsis "Emacs interface for the Git version control system")
506 (description
507 "With Magit, you can inspect and modify your Git repositories with Emacs.
508 You can review and commit the changes you have made to the tracked files, for
509 example, and you can browse the history of past changes. There is support for
510 cherry picking, reverting, merging, rebasing, and other common Git
511 operations.")
512 (license license:gpl3+)))
513
514 (define-public magit-svn
515 (package
516 (name "magit-svn")
517 (version "2.2.0")
518 (source (origin
519 (method url-fetch)
520 (uri (string-append
521 "https://github.com/magit/magit-svn/archive/"
522 version ".tar.gz"))
523 (file-name (string-append name "-" version ".tar.gz"))
524 (sha256
525 (base32
526 "1c3n377v436zaxamlsz04y1ahdhp96x1vd43zaryv4y10m02ba47"))))
527 (build-system trivial-build-system)
528 (native-inputs `(("emacs" ,emacs-minimal)
529 ("tar" ,tar)
530 ("gzip" ,gzip)))
531 (propagated-inputs `(("dash" ,emacs-dash)
532 ("with-editor" ,emacs-with-editor)
533 ("magit" ,magit)))
534 (arguments
535 `(#:modules ((guix build utils)
536 (guix build emacs-utils))
537
538 #:builder
539 (begin
540 (use-modules (guix build utils)
541 (guix build emacs-utils))
542
543 (let* ((tar (string-append (assoc-ref %build-inputs "tar")
544 "/bin/tar"))
545 (PATH (string-append (assoc-ref %build-inputs "gzip")
546 "/bin"))
547 (emacs (string-append (assoc-ref %build-inputs "emacs")
548 "/bin/emacs"))
549 (magit (string-append (assoc-ref %build-inputs "magit")
550 "/share/emacs/site-lisp"))
551 (dash (string-append (assoc-ref %build-inputs "dash")
552 "/share/emacs/site-lisp/guix.d/dash-"
553 ,(package-version emacs-dash)))
554 (with-editor (string-append (assoc-ref %build-inputs "with-editor")
555 "/share/emacs/site-lisp/guix.d/with-editor-"
556 ,(package-version emacs-with-editor)))
557 (source (assoc-ref %build-inputs "source"))
558 (lisp-dir (string-append %output "/share/emacs/site-lisp")))
559 (setenv "PATH" PATH)
560 (invoke tar "xvf" source)
561
562 (install-file (string-append ,name "-" ,version "/magit-svn.el")
563 lisp-dir)
564
565 (with-directory-excursion lisp-dir
566 (parameterize ((%emacs emacs))
567 (emacs-generate-autoloads ,name lisp-dir)
568 (setenv "EMACSLOADPATH"
569 (string-append ":" magit ":" dash ":" with-editor))
570 (emacs-batch-eval '(byte-compile-file "magit-svn.el"))))
571 #t))))
572 (home-page "https://github.com/magit/magit-svn")
573 (synopsis "Git-SVN extension to Magit")
574 (description
575 "This package is an extension to Magit, the Git Emacs mode, providing
576 support for Git-SVN.")
577 (license license:gpl3+)))
578
579 (define-public emacs-magit-popup
580 (package
581 (name "emacs-magit-popup")
582 (version "2.12.4")
583 (source (origin
584 (method git-fetch)
585 (uri (git-reference
586 (url "https://github.com/magit/magit-popup.git")
587 (commit (string-append "v" version))))
588 (file-name (git-file-name name version))
589 (sha256
590 (base32
591 "08952nzn0cb6gxscqyiljk4fq2zxjvr3ism0lvgw0gs9hl5phiwx"))))
592 (build-system emacs-build-system)
593 (arguments
594 `(#:phases
595 (modify-phases %standard-phases
596 (add-before 'install 'make-info
597 (lambda _
598 (invoke "make" "info"))))))
599 (native-inputs
600 `(("texinfo" ,texinfo)))
601 (propagated-inputs
602 `(("emacs-dash" ,emacs-dash)))
603 (home-page "https://github.com/magit/magit-popup")
604 (synopsis "Define prefix-infix-suffix command combos")
605 (description
606 "This library implements a generic interface for toggling switches and
607 setting options and then invoking an Emacs command which does something with
608 these arguments. The prototypical use is for the command to call an external
609 process, passing on the arguments as command line arguments.")
610 (license license:gpl3+)))
611
612 (define-public emacs-ghub
613 (package
614 (name "emacs-ghub")
615 (version "2.0.1")
616 (source (origin
617 (method url-fetch)
618 (uri (string-append
619 "https://github.com/magit/ghub/archive/v"
620 version ".tar.gz"))
621 (file-name (string-append name "-" version ".tar.gz"))
622 (sha256
623 (base32
624 "0d0qj5r1bm2aidi61rigrdaycxnyb7y1ivb3h8rpvvapsf8sk7z0"))))
625 (build-system emacs-build-system)
626 (arguments
627 `(#:phases
628 (modify-phases %standard-phases
629 (add-before 'install 'make-info
630 (lambda _
631 (invoke "make" "info"))))))
632 (native-inputs
633 `(("texinfo" ,texinfo)))
634 (home-page "https://github.com/magit/ghub")
635 (synopsis "Emacs client library for Github API and Gitlab API")
636 (description
637 "This package provides 2 files: @file{ghub.el} and @file{glab.el},
638 which are the libraries that provide basic support for using the Github and
639 Gitlab APIs from Emacs packages. It abstracts access to API resources using
640 only a handful of functions that are not resource-specific.")
641 (license license:gpl3+)))
642
643 (define-public haskell-mode
644 (package
645 (name "haskell-mode")
646 (version "16.1")
647 (source (origin
648 (method url-fetch)
649 (file-name (string-append name "-" version ".tar.gz"))
650 (uri (string-append
651 "https://github.com/haskell/haskell-mode/archive/v"
652 version ".tar.gz"))
653 (sha256
654 (base32 "0g6lcjw7lcgavv3yrd8xjcyqgfyjl787y32r1z14amw2f009m78h"))
655 (patches
656 (search-patches ; backport test failure fixes
657 "haskell-mode-unused-variables.patch"
658 "haskell-mode-make-check.patch"))))
659 (inputs
660 `(("emacs-el-search" ,emacs-el-search) ; for tests
661 ("emacs-stream" ,emacs-stream))) ; for tests
662 (propagated-inputs
663 `(("emacs-dash" ,emacs-dash)))
664 (native-inputs
665 `(("emacs" ,emacs-minimal)
666 ("texinfo" ,texinfo)))
667 (build-system gnu-build-system)
668 (arguments
669 `(#:make-flags (list (string-append "EMACS="
670 (assoc-ref %build-inputs "emacs")
671 "/bin/emacs"))
672 #:modules ((ice-9 match)
673 (srfi srfi-26)
674 ,@%gnu-build-system-modules)
675 #:phases
676 (modify-phases %standard-phases
677 (delete 'configure)
678 (add-before
679 'build 'pre-build
680 (lambda* (#:key inputs #:allow-other-keys)
681 (define (el-dir store-dir)
682 (match (find-files store-dir "\\.el$")
683 ((f1 f2 ...) (dirname f1))
684 (_ "")))
685
686 (let ((sh (string-append (assoc-ref inputs "bash") "/bin/sh")))
687 (define emacs-prefix? (cut string-prefix? "emacs-" <>))
688
689 (setenv "SHELL" "sh")
690 (setenv "EMACSLOADPATH"
691 (string-concatenate
692 (map (match-lambda
693 (((? emacs-prefix? name) . dir)
694 (string-append (el-dir dir) ":"))
695 (_ ""))
696 inputs)))
697 (substitute* (find-files "." "\\.el") (("/bin/sh") sh))
698 ;; embed filename to fix test failure
699 (let ((file "tests/haskell-cabal-tests.el"))
700 (substitute* file
701 (("\\(buffer-file-name\\)")
702 (format #f "(or (buffer-file-name) ~s)" file))))
703 #t)))
704 (replace
705 'install
706 (lambda* (#:key outputs #:allow-other-keys)
707 (let* ((out (assoc-ref outputs "out"))
708 (el-dir (string-append out "/share/emacs/site-lisp"))
709 (doc (string-append
710 out "/share/doc/haskell-mode-" ,version))
711 (info (string-append out "/share/info")))
712 (define (copy-to-dir dir files)
713 (for-each (lambda (f)
714 (install-file f dir))
715 files))
716
717 (with-directory-excursion "doc"
718 (invoke "makeinfo" "haskell-mode.texi")
719 (install-file "haskell-mode.info" info))
720 (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md"))
721 (copy-to-dir el-dir (find-files "." "\\.elc?"))
722 ;; These are part of other packages.
723 (with-directory-excursion el-dir
724 (for-each delete-file '("dash.el" "ert.el")))
725 #t))))))
726 (home-page "https://github.com/haskell/haskell-mode")
727 (synopsis "Haskell mode for Emacs")
728 (description
729 "This is an Emacs mode for editing, debugging and developing Haskell
730 programs.")
731 (license license:gpl3+)))
732
733 (define-public flycheck
734 (package
735 (name "emacs-flycheck")
736 (version "31")
737 (source (origin
738 (method url-fetch)
739 (uri (string-append
740 "https://github.com/flycheck/flycheck/releases/download/"
741 version "/flycheck-" version ".tar"))
742 (sha256
743 (base32
744 "01rnwan16m7cyyrfca3c5c60mbj2r3knkpzbhji2fczsf0wns240"))
745 (modules '((guix build utils)))
746 (snippet `(begin
747 ;; Change 'flycheck-version' so that it does not
748 ;; attempt to get its version from pkg-info.el.
749 (substitute* "flycheck.el"
750 (("\\(pkg-info-version-info 'flycheck\\)")
751 (string-append "\"" ,version "\"")))
752 #t))))
753 (build-system emacs-build-system)
754 (propagated-inputs
755 `(("emacs-dash" ,emacs-dash)))
756 (home-page "https://www.flycheck.org")
757 (synopsis "On-the-fly syntax checking")
758 (description
759 "This package provides on-the-fly syntax checking for GNU Emacs. It is a
760 replacement for the older Flymake extension which is part of GNU Emacs, with
761 many improvements and additional features.
762
763 Flycheck provides fully-automatic, fail-safe, on-the-fly background syntax
764 checking for over 30 programming and markup languages with more than 70
765 different tools. It highlights errors and warnings inline in the buffer, and
766 provides an optional IDE-like error list.")
767 (license license:gpl3+))) ;+GFDLv1.3+ for the manual
768
769 \f
770 ;;;
771 ;;; Web browsing.
772 ;;;
773
774 (define-public emacs-w3m
775 ;; Emacs-w3m follows a "rolling release" model from its CVS repo. We could
776 ;; use CVS, sure, but instead we choose to use this Git mirror described on
777 ;; the home page as an "unofficial" mirror.
778 (let ((commit "0dd5691f46d314a84da63f3a7277d721815811a2"))
779 (package
780 (name "emacs-w3m")
781 (version (git-version "1.5" "0" commit))
782 (source (origin
783 (method git-fetch)
784 (uri (git-reference
785 (url "https://github.com/ecbrown/emacs-w3m")
786 (commit commit)))
787 (sha256
788 (base32
789 "02xalyxbrkgl4n8nj7xxkmsbm6lshhwdc8bzs2l4wz3hkpgkj7x4"))))
790 (build-system gnu-build-system)
791 (native-inputs `(("autoconf" ,autoconf)
792 ("texinfo" ,texinfo)
793 ("emacs" ,emacs-minimal)))
794 (inputs `(("w3m" ,w3m)
795 ("imagemagick" ,imagemagick)))
796 (arguments
797 `(#:modules ((guix build gnu-build-system)
798 (guix build utils)
799 (guix build emacs-utils))
800 #:imported-modules (,@%gnu-build-system-modules
801 (guix build emacs-utils))
802 #:configure-flags
803 (let ((out (assoc-ref %outputs "out")))
804 (list (string-append "--with-lispdir="
805 out "/share/emacs/site-lisp")
806 (string-append "--with-icondir="
807 out "/share/images/emacs-w3m")
808 ;; Leave .el files uncompressed, otherwise GC can't
809 ;; identify run-time dependencies. See
810 ;; <http://lists.gnu.org/archive/html/guix-devel/2015-12/msg00208.html>
811 "--without-compress-install"))
812 #:tests? #f ; no check target
813 #:phases
814 (modify-phases %standard-phases
815 (add-after 'unpack 'autoconf
816 (lambda _
817 (invoke "autoconf")))
818 (add-before 'configure 'support-emacs!
819 (lambda _
820 ;; For some reason 'AC_PATH_EMACS' thinks that 'Emacs 26' is
821 ;; unsupported.
822 (substitute* "configure"
823 (("EMACS_FLAVOR=unsupported")
824 "EMACS_FLAVOR=emacs"))
825 #t))
826 (add-before 'build 'patch-exec-paths
827 (lambda* (#:key inputs outputs #:allow-other-keys)
828 (let ((out (assoc-ref outputs "out"))
829 (w3m (assoc-ref inputs "w3m"))
830 (imagemagick (assoc-ref inputs "imagemagick"))
831 (coreutils (assoc-ref inputs "coreutils")))
832 (make-file-writable "w3m.el")
833 (emacs-substitute-variables "w3m.el"
834 ("w3m-command" (string-append w3m "/bin/w3m"))
835 ("w3m-touch-command"
836 (string-append coreutils "/bin/touch"))
837 ("w3m-icon-directory"
838 (string-append out "/share/images/emacs-w3m")))
839 (make-file-writable "w3m-image.el")
840 (emacs-substitute-variables "w3m-image.el"
841 ("w3m-imagick-convert-program"
842 (string-append imagemagick "/bin/convert"))
843 ("w3m-imagick-identify-program"
844 (string-append imagemagick "/bin/identify")))
845 #t)))
846 (replace 'install
847 (lambda* (#:key outputs #:allow-other-keys)
848 (invoke "make" "install" "install-icons")
849 (with-directory-excursion
850 (string-append (assoc-ref outputs "out")
851 "/share/emacs/site-lisp")
852 (for-each delete-file '("ChangeLog" "ChangeLog.1"))
853 (symlink "w3m-load.el" "w3m-autoloads.el")
854 #t))))))
855 (home-page "http://emacs-w3m.namazu.org/")
856 (synopsis "Simple Web browser for Emacs based on w3m")
857 (description
858 "Emacs-w3m is an emacs interface for the w3m web browser.")
859 (license license:gpl2+))))
860
861 (define-public emacs-wget
862 (package
863 (name "emacs-wget")
864 (version "0.5.0")
865 (source (origin
866 (method url-fetch)
867 (uri (string-append "mirror://debian/pool/main/w/wget-el/wget-el_"
868 version ".orig.tar.gz"))
869 (sha256
870 (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff"))))
871 (build-system gnu-build-system)
872 (inputs `(("wget" ,wget)))
873 (native-inputs `(("emacs" ,emacs-minimal)))
874 (arguments
875 `(#:modules ((guix build gnu-build-system)
876 (guix build utils)
877 (guix build emacs-utils))
878 #:imported-modules (,@%gnu-build-system-modules
879 (guix build emacs-utils))
880 #:tests? #f ; no check target
881 #:phases
882 (modify-phases %standard-phases
883 (replace 'configure
884 (lambda* (#:key outputs #:allow-other-keys)
885 (substitute* "Makefile"
886 (("/usr/local") (assoc-ref outputs "out"))
887 (("/site-lisp/emacs-wget") "/site-lisp"))
888 #t))
889 (add-before 'build 'patch-exec-paths
890 (lambda* (#:key inputs outputs #:allow-other-keys)
891 (let ((wget (assoc-ref inputs "wget")))
892 (emacs-substitute-variables "wget.el"
893 ("wget-command" (string-append wget "/bin/wget"))))
894 #t))
895 (add-after 'install 'post-install
896 (lambda* (#:key outputs #:allow-other-keys)
897 (emacs-generate-autoloads
898 "wget" (string-append (assoc-ref outputs "out")
899 "/share/emacs/site-lisp/"))
900 #t)))))
901 (home-page "http://www.emacswiki.org/emacs/EmacsWget")
902 (synopsis "Simple file downloader for Emacs based on wget")
903 (description
904 "Emacs-wget is an emacs interface for the wget file downloader.")
905 (license license:gpl2+)))
906
907 \f
908 ;;;
909 ;;; Multimedia.
910 ;;;
911
912 (define-public emms
913 (package
914 (name "emacs-emms")
915 (version "5.0")
916 (source (origin
917 (method url-fetch)
918 (uri (string-append "mirror://gnu/emms/emms-"
919 version ".tar.gz"))
920 (sha256
921 (base32
922 "08f9lj77jlk96grqgjsv63s2i8ywvp4wvnmgmhnslwyx2lsdxza3"))
923 (modules '((guix build utils)))
924 (snippet
925 '(begin
926 (substitute* "Makefile"
927 (("/usr/bin/install-info")
928 ;; No need to use 'install-info' since it would create a
929 ;; useless 'dir' file.
930 "true")
931 (("^INFODIR=.*")
932 ;; Install Info files to $out/share/info, not $out/info.
933 "INFODIR := $(PREFIX)/share/info\n")
934 (("/site-lisp/emms")
935 ;; Install directly in share/emacs/site-lisp, not in a
936 ;; sub-directory.
937 "/site-lisp")
938 (("^all: (.*)\n" _ rest)
939 ;; Build 'emms-print-metadata'.
940 (string-append "all: " rest " emms-print-metadata\n")))
941 #t))))
942 (build-system gnu-build-system)
943 (arguments
944 `(#:modules ((guix build gnu-build-system)
945 (guix build utils)
946 (guix build emacs-utils)
947 (ice-9 ftw))
948 #:imported-modules (,@%gnu-build-system-modules
949 (guix build emacs-utils))
950
951 #:phases
952 (modify-phases %standard-phases
953 (replace 'configure
954 (lambda* (#:key inputs outputs #:allow-other-keys)
955 (let ((out (assoc-ref outputs "out"))
956 (flac (assoc-ref inputs "flac"))
957 (vorbis (assoc-ref inputs "vorbis-tools"))
958 (alsa (assoc-ref inputs "alsa-utils"))
959 (mpg321 (assoc-ref inputs "mpg321"))
960 (mp3info (assoc-ref inputs "mp3info"))
961 (opus (assoc-ref inputs "opus-tools")))
962 ;; Specify the installation directory.
963 (substitute* "Makefile"
964 (("PREFIX=.*$")
965 (string-append "PREFIX := " out "\n")))
966
967 (setenv "SHELL" (which "sh"))
968 (setenv "CC" "gcc")
969
970 ;; Specify the absolute file names of the various
971 ;; programs so that everything works out-of-the-box.
972 (with-directory-excursion "lisp"
973 (emacs-substitute-variables
974 "emms-player-mpg321-remote.el"
975 ("emms-player-mpg321-remote-command"
976 (string-append mpg321 "/bin/mpg321")))
977 (substitute* "emms-player-simple.el"
978 (("\"ogg123\"")
979 (string-append "\"" vorbis "/bin/ogg123\"")))
980 (substitute* "emms-player-simple.el"
981 (("\"mpg321\"")
982 (string-append "\"" mpg321 "/bin/mpg321\"")))
983 (emacs-substitute-variables "emms-info-ogginfo.el"
984 ("emms-info-ogginfo-program-name"
985 (string-append vorbis "/bin/ogginfo")))
986 (emacs-substitute-variables "emms-info-opusinfo.el"
987 ("emms-info-opusinfo-program-name"
988 (string-append opus "/bin/opusinfo")))
989 (emacs-substitute-variables "emms-info-libtag.el"
990 ("emms-info-libtag-program-name"
991 (string-append out "/bin/emms-print-metadata")))
992 (emacs-substitute-variables "emms-info-mp3info.el"
993 ("emms-info-mp3info-program-name"
994 (string-append mp3info "/bin/mp3info")))
995 (emacs-substitute-variables "emms-info-metaflac.el"
996 ("emms-info-metaflac-program-name"
997 (string-append flac "/bin/metaflac")))
998 (emacs-substitute-variables "emms-source-file.el"
999 ("emms-source-file-gnu-find" (which "find")))
1000 (substitute* "emms-volume-amixer.el"
1001 (("\"amixer\"")
1002 (string-append "\"" alsa "/bin/amixer\"")))
1003 (substitute* "emms-tag-editor.el"
1004 (("\"mp3info\"")
1005 (string-append "\"" mp3info "/bin/mp3info\"")))))))
1006 (add-before 'install 'pre-install
1007 (lambda* (#:key outputs #:allow-other-keys)
1008 ;; The 'install' rule expects the target directories to exist.
1009 (let* ((out (assoc-ref outputs "out"))
1010 (bin (string-append out "/bin"))
1011 (man1 (string-append out "/share/man/man1")))
1012 (mkdir-p bin)
1013 (mkdir-p man1)
1014
1015 ;; Ensure that files are not rejected by gzip
1016 (let ((early-1980 315619200)) ; 1980-01-02 UTC
1017 (ftw "." (lambda (file stat flag)
1018 (unless (<= early-1980 (stat:mtime stat))
1019 (utime file early-1980 early-1980))
1020 #t)))
1021 #t)))
1022 (add-after 'install 'post-install
1023 (lambda* (#:key outputs #:allow-other-keys)
1024 (let ((out (assoc-ref outputs "out")))
1025 (symlink "emms-auto.el"
1026 (string-append out "/share/emacs/site-lisp/"
1027 "emms-autoloads.el")))
1028 #t)))
1029 #:tests? #f))
1030 (native-inputs `(("emacs" ,emacs-minimal) ;for (guix build emacs-utils)
1031 ("texinfo" ,texinfo)))
1032 (inputs `(("alsa-utils" ,alsa-utils)
1033 ("flac" ,flac) ;for metaflac
1034 ("vorbis-tools" ,vorbis-tools)
1035 ("mpg321" ,mpg321)
1036 ("taglib" ,taglib)
1037 ("mp3info" ,mp3info)
1038 ("opus-tools" ,opus-tools)))
1039 (properties '((upstream-name . "emms")))
1040 (synopsis "Emacs Multimedia System")
1041 (description
1042 "EMMS is the Emacs Multimedia System. It is a small front-end which
1043 can control one of the supported external players. Thus, it supports
1044 whatever formats are supported by your music player. It also
1045 supports tagging and playlist management, all behind a clean and
1046 light user interface.")
1047 (home-page "https://www.gnu.org/software/emms/")
1048 (license license:gpl3+)))
1049
1050 (define-public emacs-emms-player-mpv
1051 ;; A new mpv backend is included in Emms from 5.0.
1052 (deprecated-package "emacs-emms-player-mpv" emms))
1053
1054 (define-public emacs-emms-mode-line-cycle
1055 (package
1056 (name "emacs-emms-mode-line-cycle")
1057 (version "0.2.5")
1058 (source
1059 (origin
1060 (method url-fetch)
1061 (uri (string-append "https://github.com/momomo5717/emms-mode-line-cycle"
1062 "/archive/" version ".tar.gz"))
1063 (file-name (string-append name "-" version ".tar.gz"))
1064 (sha256
1065 (base32
1066 "0ifszi930pnaxk1x8pcydmvnp06868gc7nfx14q17zbajbx735k6"))))
1067 (build-system emacs-build-system)
1068 (propagated-inputs
1069 `(("emms" ,emms)))
1070 (home-page "https://github.com/momomo5717/emms-mode-line-cycle")
1071 (synopsis "Display the EMMS mode line as a ticker")
1072 (description
1073 "This is a minor mode for updating the EMMS mode-line string cyclically
1074 within a specified width. It is useful for displaying long track titles.")
1075 (license license:gpl3+)))
1076
1077 \f
1078 ;;;
1079 ;;; Miscellaneous.
1080 ;;;
1081
1082 (define-public bbdb
1083 (package
1084 (name "bbdb")
1085 (version "3.1.2")
1086 (source (origin
1087 (method url-fetch)
1088 (uri (string-append "mirror://savannah/bbdb/bbdb-"
1089 version ".tar.gz"))
1090 (sha256
1091 (base32
1092 "1gs16bbpiiy01w9pyg12868r57kx1v3hnw04gmqsmpc40l1hyy05"))
1093 (modules '((guix build utils)))
1094 (snippet
1095 ;; We don't want to build and install the PDF.
1096 '(begin
1097 (substitute* "doc/Makefile.in"
1098 (("^doc_DATA = .*$")
1099 "doc_DATA =\n"))
1100 #t))))
1101 (build-system gnu-build-system)
1102 (arguments
1103 '(#:phases
1104 (modify-phases %standard-phases
1105 (add-after 'install 'post-install
1106 (lambda* (#:key outputs #:allow-other-keys)
1107 ;; Add an autoloads file with the right name for guix.el.
1108 (let* ((out (assoc-ref outputs "out"))
1109 (site (string-append out "/share/emacs/site-lisp")))
1110 (with-directory-excursion site
1111 (symlink "bbdb-loaddefs.el" "bbdb-autoloads.el")))
1112 #t)))))
1113 (native-inputs `(("emacs" ,emacs-minimal)))
1114 (home-page "https://savannah.nongnu.org/projects/bbdb/")
1115 (synopsis "Contact management utility for Emacs")
1116 (description
1117 "BBDB is the Insidious Big Brother Database for GNU Emacs. It provides
1118 an address book for email and snail mail addresses, phone numbers and the
1119 like. It can be linked with various Emacs mail clients (Message and Mail
1120 mode, Rmail, Gnus, MH-E, and VM). BBDB is fully customizable.")
1121 (license license:gpl3+)))
1122
1123 (define-public emacs-aggressive-indent
1124 (package
1125 (name "emacs-aggressive-indent")
1126 (version "1.8.3")
1127 (source (origin
1128 (method url-fetch)
1129 (uri (string-append "https://elpa.gnu.org/packages/"
1130 "aggressive-indent-" version ".el"))
1131 (sha256
1132 (base32
1133 "0jnzccl50x0wapprgwxinp99pwwa6j43q6msn4gv437j7swy8wnj"))))
1134 (build-system emacs-build-system)
1135 (home-page "https://elpa.gnu.org/packages/aggressive-indent.html")
1136 (synopsis "Minor mode to aggressively keep your code always indented")
1137 (description
1138 "@code{aggressive-indent-mode} is a minor mode that keeps your code
1139 always indented. It reindents after every change, making it more reliable
1140 than @code{electric-indent-mode}.")
1141 (license license:gpl2+)))
1142
1143 (define-public emacs-ag
1144 (package
1145 (name "emacs-ag")
1146 (version "0.47")
1147 (source (origin
1148 (method url-fetch)
1149 (uri (string-append
1150 "https://github.com/Wilfred/ag.el/archive/"
1151 version ".tar.gz"))
1152 (file-name (string-append name "-" version ".tar.gz"))
1153 (sha256
1154 (base32
1155 "1rlmp6wnyhqfg86dbz17r914msp58favn4kd4yrdwyia265a4lar"))))
1156 (build-system emacs-build-system)
1157 (arguments
1158 `(#:phases
1159 (modify-phases %standard-phases
1160 (add-before 'install 'make-info
1161 (lambda _
1162 (with-directory-excursion "docs"
1163 (invoke "make" "info"))))
1164 (add-after 'install 'install-info
1165 (lambda* (#:key outputs #:allow-other-keys)
1166 (let* ((out (assoc-ref outputs "out"))
1167 (info (string-append out "/share/info")))
1168 (install-file "docs/_build/texinfo/agel.info" info)
1169 #t))))))
1170 (native-inputs
1171 `(("python-sphinx" ,python-sphinx)
1172 ("texinfo" ,texinfo)))
1173 (propagated-inputs
1174 `(("dash" ,emacs-dash)
1175 ("s" ,emacs-s)
1176 ;; We need to use 'ag' as the executable on remote systems.
1177 ("the-silver-searcher" ,the-silver-searcher)))
1178 (home-page "https://github.com/Wilfred/ag.el")
1179 (synopsis "Front-end for ag (the-silver-searcher) for Emacs")
1180 (description "This package provides the ability to use the silver
1181 searcher, a code searching tool, sometimes abbreviated to @code{ag}. Features
1182 include version control system awareness, use of Perl compatible regular
1183 expressions, editing the search results directly and searching file names
1184 rather than the contents of files.")
1185 (license license:gpl3+)))
1186
1187 (define-public emacs-async
1188 (package
1189 (name "emacs-async")
1190 (home-page "https://github.com/jwiegley/emacs-async")
1191 (version "1.9.3")
1192 (source (origin
1193 (method git-fetch)
1194 (uri (git-reference
1195 (url home-page)
1196 (commit (string-append "v" version))))
1197 (file-name (git-file-name name version))
1198 (sha256
1199 (base32
1200 "1zsnb6dy8p6y68xgidv3dfxaga4biramfw8fq7wac0sc50vc98vq"))))
1201 (build-system emacs-build-system)
1202 (synopsis "Asynchronous processing in Emacs")
1203 (description
1204 "This package provides the ability to call asynchronous functions and
1205 processes. For example, it can be used to run dired commands (for copying,
1206 moving, etc.) asynchronously using @code{dired-async-mode}. Also it is used
1207 as a library for other Emacs packages.")
1208 (license license:gpl3+)))
1209
1210 (define-public emacs-auctex
1211 (package
1212 (name "emacs-auctex")
1213 (version "12.1.0")
1214 (source
1215 (origin
1216 (method url-fetch)
1217 (uri (string-append
1218 "https://elpa.gnu.org/packages/auctex-"
1219 version
1220 ".tar"))
1221 (sha256
1222 (base32
1223 "0iy5x61xqkxaph2hq64sg50l1c6yp6qhzppwadayxkdz00b46sas"))))
1224 (build-system emacs-build-system)
1225 ;; We use 'emacs' because AUCTeX requires dbus at compile time
1226 ;; ('emacs-minimal' does not provide dbus).
1227 (arguments
1228 `(#:emacs ,emacs
1229 #:include '("\\.el$" "^images/" "^latex/" "\\.info$")
1230 #:exclude '("^tests/" "^latex/README")))
1231 (native-inputs
1232 `(("perl" ,perl)))
1233 (home-page "https://www.gnu.org/software/auctex/")
1234 (synopsis "Integrated environment for TeX")
1235 (description
1236 "AUCTeX is a comprehensive customizable integrated environment for
1237 writing input files for TeX, LaTeX, ConTeXt, Texinfo, and docTeX using Emacs
1238 or XEmacs.")
1239 (license license:gpl3+)))
1240
1241 (define-public emacs-autothemer
1242 (package
1243 (name "emacs-autothemer")
1244 (version "0.2.2")
1245 (source
1246 (origin
1247 (method url-fetch)
1248 (uri (string-append "https://github.com/sebastiansturm/autothemer/archive/"
1249 version ".tar.gz"))
1250 (file-name (string-append name "-" version ".tar.gz"))
1251 (sha256
1252 (base32
1253 "0rd28r9wfrbll212am4ih9hrvypx785aff76va2cbfxdwm9kixsa"))))
1254 (build-system emacs-build-system)
1255 (propagated-inputs
1256 `(("emacs-dash" ,emacs-dash)))
1257 (home-page "https://github.com/sebastiansturm/autothemer")
1258 (synopsis "Conveniently create Emacs themes")
1259 (description
1260 "Autothemer provides a thin layer on top of @code{deftheme} and
1261 @code{custom-theme-set-faces} that creates a new custom color theme, based on
1262 a set of simplified face specifications and a user-supplied color palette")
1263 (license license:gpl3+)))
1264
1265 (define-public emacs-howm
1266 (package
1267 (name "emacs-howm")
1268 (version "1.4.4")
1269 (source
1270 (origin
1271 (method url-fetch)
1272 (uri (string-append "http://howm.sourceforge.jp/a/howm-"
1273 version ".tar.gz"))
1274 (sha256
1275 (base32
1276 "0ddm91l6z58j7x59fa966j6q1rg4cinyza4r8ibg80hprn5h31qk"))))
1277 (build-system gnu-build-system)
1278 (native-inputs
1279 `(("emacs" ,emacs-minimal)))
1280 (arguments
1281 `(#:configure-flags
1282 (list (string-append "--with-howmdir=" %output
1283 "/share/emacs/site-lisp/guix.d/howm-" ,version))
1284 #:modules ((guix build gnu-build-system)
1285 ((guix build emacs-build-system) #:prefix emacs:)
1286 (guix build utils))
1287 #:imported-modules (,@%gnu-build-system-modules
1288 (guix build emacs-build-system)
1289 (guix build emacs-utils))
1290 #:phases
1291 (modify-phases %standard-phases
1292 (add-after 'rename-lispdir 'make-autoloads
1293 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
1294 (home-page "http://howm.osdn.jp/")
1295 (synopsis "Note-taking tool for Emacs")
1296 (description "Howm is a note-taking tool for Emacs. Like
1297 code@{emacs-wiki.el}, it facilitates using hyperlinks and doing full-text
1298 searches. Unlike code@{emacs-wiki.el}, it can be combined with any format.")
1299 (license license:gpl1+)))
1300
1301 (define-public emacs-calfw
1302 (package
1303 (name "emacs-calfw")
1304 (version "1.5")
1305 (source
1306 (origin
1307 (method url-fetch)
1308 (uri (string-append
1309 "https://github.com/kiwanami/emacs-calfw/archive/v"
1310 version ".tar.gz"))
1311 (file-name (string-append name "-" version ".tar.gz"))
1312 (sha256
1313 (base32
1314 "17ssg8gx66yp63nhygjq2r6kgl4h45cacmrxsxs9f0lrfcx37k0l"))))
1315 (build-system emacs-build-system)
1316 (propagated-inputs
1317 `(("emacs-howm" ,emacs-howm)))
1318 (home-page "https://github.com/kiwanami/emacs-calfw/")
1319 (synopsis "Calendar framework for Emacs")
1320 (description
1321 "This package displays a calendar view with various schedule data in the
1322 Emacs buffer.")
1323 (license license:gpl3+)))
1324
1325 (define-public emacs-direnv
1326 (package
1327 (name "emacs-direnv")
1328 (version "1.2.0")
1329 (source
1330 (origin
1331 (method url-fetch)
1332 (uri (string-append
1333 "https://github.com/wbolster/emacs-direnv/archive/"
1334 version ".tar.gz"))
1335 (file-name (string-append name "-" version ".tar.gz"))
1336 (sha256
1337 (base32
1338 "0m9nxawklhiiysyibzzhh2zkxgq1fskqvaqb06f7r8dnhabfy9fr"))))
1339 (build-system emacs-build-system)
1340 (propagated-inputs
1341 `(("dash" ,emacs-dash)
1342 ("with-editor" ,emacs-with-editor)))
1343 (home-page "https://github.com/wbolster/emacs-direnv")
1344 (synopsis "Direnv integration for Emacs")
1345 (description
1346 "This package provides support for invoking direnv to get the environment
1347 for the current file and updating the environment within Emacs to match.
1348
1349 Direnv can be invoked manually, and a global minor mode is included that will
1350 update the environment when the active buffer changes.
1351
1352 Using emacs-direnv means that programs started from Emacs will use the
1353 environment set through Direnv.")
1354 (license license:gpl3+)))
1355
1356 (define-public emacs-ggtags
1357 (package
1358 (name "emacs-ggtags")
1359 (version "0.8.12")
1360 (source
1361 (origin
1362 (method url-fetch)
1363 (uri (string-append "http://elpa.gnu.org/packages/ggtags-"
1364 version ".el"))
1365 (sha256
1366 (base32
1367 "0ny3llk021g6r0s75xdm4hzpbxv393ddm2r6f2xdk8kqnq4gnirp"))))
1368 (build-system emacs-build-system)
1369 (home-page "https://github.com/leoliu/ggtags")
1370 (synopsis "Frontend to the GNU Global source code tagging system")
1371 (description "@code{ggtags} provides a frontend to the GNU Global source
1372 code tagging system.
1373
1374 Features:
1375
1376 @itemize
1377 @item Build on @code{compile.el} for asynchronicity and its large feature-set.
1378 @item Automatically update Global's tag files when needed with tuning for
1379 large source trees.
1380 @item Intuitive navigation among multiple matches with mode-line display of
1381 current match, total matches and exit status.
1382 @item Read tag with completion.
1383 @item Show definition at point.
1384 @item Jump to #include files.
1385 @item Support search history and saving a search to register/bookmark.
1386 @item Query replace.
1387 @item Manage Global's environment variables on a per-project basis.
1388 @item Highlight (definition) tag at point.
1389 @item Abbreviated display of file names.
1390 @item Support all Global search backends: @code{grep}, @code{idutils}, etc.
1391 @item Support exuberant ctags @url{http://ctags.sourceforge.net/} and
1392 @code{pygments} backend.
1393 @item Support all Global's output formats: @code{grep}, @code{ctags-x},
1394 @code{cscope} etc.
1395 @item Support projects on remote hosts (e.g. via @code{tramp}).
1396 @item Support eldoc.
1397 @item Search @code{GTAGSLIBPATH} for references and symbols.
1398 @end itemize\n")
1399 (license license:gpl3+)))
1400
1401 (define-public emacs-go-mode
1402 (package
1403 (name "emacs-go-mode")
1404 (version "1.5.0")
1405 (source (origin
1406 (method url-fetch)
1407 (uri (string-append "https://github.com/dominikh/go-mode.el/"
1408 "archive/v" version ".tar.gz"))
1409 (file-name (string-append name "-" version ".tar.gz"))
1410 (sha256
1411 (base32
1412 "1adngbjyb8qnwg7n6r2y31djw9j6qf3b9fi63zd85035q7x4ljnm"))))
1413 (build-system emacs-build-system)
1414 (home-page "https://github.com/dominikh/go-mode.el")
1415 (synopsis "Go mode for Emacs")
1416 (description
1417 "This package provides go-mode, an Emacs mode for working with software
1418 written in the Go programming language.")
1419 (license license:bsd-3)))
1420
1421 (define-public emacs-google-maps
1422 (package
1423 (name "emacs-google-maps")
1424 (version "1.0.0")
1425 (source (origin
1426 (method url-fetch)
1427 (uri (string-append "https://github.com/jd/google-maps.el/"
1428 "archive/" version ".tar.gz"))
1429 (file-name (string-append name "-" version ".tar.gz"))
1430 (sha256
1431 (base32
1432 "014bxapm4d8vjxbzrfjdpsavxyfx981mlcb10aq5rmigr6il8ybs"))))
1433 (build-system emacs-build-system)
1434 (home-page "https://github.com/jd/google-maps.el")
1435 (synopsis "Access Google Maps from Emacs")
1436 (description "The @code{google-maps} package allows to display Google
1437 Maps directly inside Emacs.")
1438 (license license:gpl3+)))
1439
1440 (define-public emacs-graphviz-dot-mode
1441 (let ((commit "c456a2b65c734089e6c44e87209a5a432a741b1a")
1442 (revision "1"))
1443 (package
1444 (name "emacs-graphviz-dot-mode")
1445 (version (string-append "0.3.11-" revision "."
1446 (string-take commit 7)))
1447 (source (origin
1448 (method git-fetch)
1449 (uri (git-reference
1450 (url "https://github.com/ppareit/graphviz-dot-mode.git")
1451 (commit commit)))
1452 (file-name (string-append name "-" version "-checkout"))
1453 (sha256
1454 (base32
1455 "0j1r2rspaakw37b0mx7pwpvdsvixq9sw3xjbww5piihzpdxz58z1"))))
1456 (build-system emacs-build-system)
1457 (arguments
1458 `(#:phases
1459 (modify-phases %standard-phases
1460 (add-before 'install 'make-info
1461 (lambda* (#:key inputs #:allow-other-keys)
1462 (with-directory-excursion "texinfo"
1463 (substitute* "Makefile"
1464 (("\\/usr\\/bin\\/gzip")
1465 (string-append (assoc-ref inputs "gzip") "/bin/gzip")))
1466 (invoke "make"
1467 "clean"
1468 "info"
1469 (string-append "TEXINFODIR="
1470 (assoc-ref inputs "texinfo")
1471 "/bin")))))
1472 (add-after 'install 'install-info
1473 (lambda* (#:key outputs #:allow-other-keys)
1474 (let* ((out (assoc-ref outputs "out"))
1475 (info (string-append out "/share/info")))
1476 (install-file "texinfo/graphviz-dot-mode.info.gz" info)
1477 #t))))))
1478 (native-inputs
1479 `(("texinfo" ,texinfo)
1480 ("gzip" ,gzip)))
1481 (home-page "http://ppareit.github.com/graphviz-dot-mode")
1482 (synopsis "Major mode for editing Graphviz Dot files")
1483 (description
1484 "This Emacs packages helps you to create @file{.dot} or @file{.gv}
1485 files using the dot syntax, and use Graphviz to convert these files to
1486 diagrams.")
1487 (license license:gpl2+))))
1488
1489 (define-public emacs-mmm-mode
1490 (package
1491 (name "emacs-mmm-mode")
1492 (version "0.5.5")
1493 (source
1494 (origin
1495 (method url-fetch)
1496 (uri (string-append
1497 "https://github.com/purcell/mmm-mode/archive/"
1498 version ".tar.gz"))
1499 (file-name (string-append name "-" version ".tar.gz"))
1500 (sha256
1501 (base32
1502 "0c5ing3hcr74k78hqhrfwiv6m3n8hqfrw89j2x34vf60f4iyqzqc"))))
1503 (build-system gnu-build-system)
1504 (arguments
1505 '(#:phases
1506 (modify-phases %standard-phases
1507 (add-after 'unpack 'autogen
1508 (lambda _
1509 (invoke "sh" "autogen.sh"))))))
1510 (native-inputs
1511 `(("autoconf" ,autoconf)
1512 ("automake" ,automake)
1513 ("emacs" ,emacs-minimal)
1514 ("texinfo" ,texinfo)))
1515 (home-page "https://github.com/purcell/mmm-mode")
1516 (synopsis "Allow multiple major modes in an Emacs buffer")
1517 (description
1518 "MMM Mode is a minor mode that allows multiple major modes to coexist in a
1519 single buffer.")
1520 (license license:gpl3+)))
1521
1522 (define-public emacs-tablist
1523 (package
1524 (name "emacs-tablist")
1525 (version "0.70")
1526 (source (origin
1527 (method url-fetch)
1528 (uri (string-append
1529 "https://github.com/politza/tablist/archive/v"
1530 version ".tar.gz"))
1531 (file-name (string-append name "-" version ".tar.gz"))
1532 (sha256
1533 (base32
1534 "177d6s7ym1mwz1nhnl09r14z3n093g9a2szm97xsaig0c204xz9c"))))
1535 (build-system emacs-build-system)
1536 (home-page "https://github.com/politza/tablist")
1537 (synopsis "Extension for @code{tabulated-list-mode}")
1538 (description "Tablist is the Emacs package that provides several
1539 additional features to @code{tabulated-list-mode}: it adds marks,
1540 filters, new key bindings and faces. It can be enabled by
1541 @code{tablist-mode} or @code{tablist-minor-mode} commands.")
1542 (license license:gpl3+)))
1543
1544 (define-public emacs-pdf-tools
1545 (package
1546 (name "emacs-pdf-tools")
1547 (version "0.80")
1548 (source (origin
1549 (method url-fetch)
1550 (uri (string-append
1551 "https://github.com/politza/pdf-tools/archive/v"
1552 version ".tar.gz"))
1553 (file-name (string-append name "-" version ".tar.gz"))
1554 (sha256
1555 (base32
1556 "06imydn3a92vr57azpn1zhqc14kxyyslmyi9ldsyphan9b724gb6"))))
1557 (build-system gnu-build-system)
1558 (arguments
1559 `(#:tests? #f ; there are no tests
1560 #:modules ((guix build gnu-build-system)
1561 ((guix build emacs-build-system) #:prefix emacs:)
1562 (guix build utils)
1563 (guix build emacs-utils))
1564 #:imported-modules (,@%gnu-build-system-modules
1565 (guix build emacs-build-system)
1566 (guix build emacs-utils))
1567 #:phases
1568 (modify-phases %standard-phases
1569 ;; Build server side using 'gnu-build-system'.
1570 (add-after 'unpack 'enter-server-dir
1571 (lambda _ (chdir "server") #t))
1572 (add-after 'enter-server-dir 'autogen
1573 (lambda _
1574 (invoke "bash" "autogen.sh")))
1575
1576 ;; Build emacs side using 'emacs-build-system'.
1577 (add-after 'compress-documentation 'enter-lisp-dir
1578 (lambda _ (chdir "../lisp") #t))
1579 (add-after 'enter-lisp-dir 'emacs-patch-variables
1580 (lambda* (#:key outputs #:allow-other-keys)
1581 ;; Set path to epdfinfo program.
1582 (emacs-substitute-variables "pdf-info.el"
1583 ("pdf-info-epdfinfo-program"
1584 (string-append (assoc-ref outputs "out")
1585 "/bin/epdfinfo")))
1586 ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto
1587 ;; upgrading" that pdf-tools tries to perform.
1588 (emacs-substitute-variables "pdf-tools.el"
1589 ("pdf-tools-handle-upgrades" '()))))
1590 (add-after 'emacs-patch-variables 'emacs-set-emacs-load-path
1591 (assoc-ref emacs:%standard-phases 'set-emacs-load-path))
1592 (add-after 'emacs-set-emacs-load-path 'emacs-install
1593 (assoc-ref emacs:%standard-phases 'install))
1594 (add-after 'emacs-install 'emacs-build
1595 (assoc-ref emacs:%standard-phases 'build))
1596 (add-after 'emacs-install 'emacs-make-autoloads
1597 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
1598 (native-inputs `(("autoconf" ,autoconf)
1599 ("automake" ,automake)
1600 ("pkg-config" ,pkg-config)
1601 ("emacs" ,emacs-minimal)))
1602 (inputs `(("poppler" ,poppler)
1603 ("cairo" ,cairo)
1604 ("glib" ,glib)
1605 ("libpng" ,libpng)
1606 ("zlib" ,zlib)))
1607 (propagated-inputs `(("tablist" ,emacs-tablist)))
1608 (synopsis "Emacs support library for PDF files")
1609 (description
1610 "PDF Tools is, among other things, a replacement of DocView for PDF
1611 files. The key difference is that pages are not pre-rendered by
1612 e.g. ghostscript and stored in the file-system, but rather created on-demand
1613 and stored in memory.")
1614 (home-page "https://github.com/politza/pdf-tools")
1615 (license license:gpl3+)))
1616
1617 (define-public emacs-dash
1618 (package
1619 (name "emacs-dash")
1620 (version "2.14.1")
1621 (source (origin
1622 (method git-fetch)
1623 (uri (git-reference
1624 (url "https://github.com/magnars/dash.el.git")
1625 (commit version)))
1626 (file-name (git-file-name name version))
1627 (sha256
1628 (base32
1629 "1kzijmjxjxgr7p8clphzvmm47vczckbs8mza9an77c25bn627ywl"))))
1630 (build-system emacs-build-system)
1631 (arguments
1632 `(#:tests? #t
1633 #:test-command '("./run-tests.sh")))
1634 (home-page "https://github.com/magnars/dash.el")
1635 (synopsis "Modern list library for Emacs")
1636 (description "This package provides a modern list API library for Emacs.")
1637 (license license:gpl3+)))
1638
1639 (define-public emacs-bui
1640 (package
1641 (name "emacs-bui")
1642 (version "1.2.0")
1643 (source (origin
1644 (method git-fetch)
1645 (uri (git-reference
1646 (url "https://notabug.org/alezost/emacs-bui.git")
1647 (commit (string-append "v" version))))
1648 (file-name (string-append name "-" version "-checkout"))
1649 (sha256
1650 (base32
1651 "0ixia5s41f2nbal3wsixacbhbc0mk9yb75ir1amqakip30sq4apv"))))
1652 (build-system emacs-build-system)
1653 (propagated-inputs
1654 `(("dash" ,emacs-dash)))
1655 (home-page "https://notabug.org/alezost/emacs-bui")
1656 (synopsis "Buffer interface library for Emacs")
1657 (description
1658 "BUI (Buffer User Interface) is a library for making @code{list} and
1659 @code{info} interfaces to display an arbitrary data of the same
1660 type, for example: packages, buffers, files, etc.")
1661 (license license:gpl3+)))
1662
1663 (define-public emacs-guix
1664 (package
1665 (name "emacs-guix")
1666 (version "0.5")
1667 (source (origin
1668 (method url-fetch)
1669 (uri (string-append "https://emacs-guix.gitlab.io/website/"
1670 "releases/emacs-guix-" version ".tar.gz"))
1671 (sha256
1672 (base32
1673 "09zxd8x674vrpigmcx8l00ifhaxh35xwkwjb8dw9kydnhv9hyyi1"))))
1674 (build-system gnu-build-system)
1675 (arguments
1676 `(#:configure-flags
1677 (let ((guix (assoc-ref %build-inputs "guix"))
1678 (gcrypt (assoc-ref %build-inputs "guile-gcrypt"))
1679 (geiser (assoc-ref %build-inputs "geiser"))
1680 (dash (assoc-ref %build-inputs "dash"))
1681 (bui (assoc-ref %build-inputs "bui"))
1682 (magit-popup (assoc-ref %build-inputs "magit-popup"))
1683 (edit-indirect (assoc-ref %build-inputs "edit-indirect"))
1684 (site-lisp "/share/emacs/site-lisp")
1685 (site-scm "/share/guile/site")
1686 (site-go "/lib/guile")
1687 (guile-dir (lambda (dir)
1688 (car (find-files dir
1689 (lambda (file stat)
1690 (string-prefix?
1691 "2." (basename file)))
1692 #:directories? #t)))))
1693 (list (string-append "--with-guix-site-dir="
1694 (guile-dir (string-append guix site-scm)))
1695 (string-append "--with-guix-site-ccache-dir="
1696 (guile-dir (string-append guix site-go))
1697 "/site-ccache")
1698 (string-append "--with-guile-gcrypt-site-dir="
1699 (guile-dir (string-append gcrypt site-scm)))
1700 (string-append "--with-guile-gcrypt-site-ccache-dir="
1701 (guile-dir (string-append gcrypt site-go))
1702 "/site-ccache")
1703 (string-append "--with-geiser-lispdir=" geiser site-lisp)
1704 (string-append "--with-dash-lispdir="
1705 dash site-lisp "/guix.d/dash-"
1706 ,(package-version emacs-dash))
1707 (string-append "--with-bui-lispdir="
1708 bui site-lisp "/guix.d/bui-"
1709 ,(package-version emacs-bui))
1710 (string-append "--with-editindirect-lispdir="
1711 edit-indirect site-lisp "/guix.d/edit-indirect-"
1712 ,(package-version emacs-edit-indirect))
1713 (string-append "--with-popup-lispdir="
1714 magit-popup site-lisp "/guix.d/magit-popup-"
1715 ,(package-version emacs-magit-popup))))))
1716 (native-inputs
1717 `(("pkg-config" ,pkg-config)
1718 ("emacs" ,emacs-minimal)))
1719 (inputs
1720 `(("guile" ,guile-2.2)
1721 ("guix" ,guix)))
1722 (propagated-inputs
1723 `(("geiser" ,geiser)
1724 ("guile-gcrypt" ,guile-gcrypt)
1725 ("dash" ,emacs-dash)
1726 ("bui" ,emacs-bui)
1727 ("edit-indirect" ,emacs-edit-indirect)
1728 ("magit-popup" ,emacs-magit-popup)))
1729 (home-page "https://emacs-guix.gitlab.io/website/")
1730 (synopsis "Emacs interface for GNU Guix")
1731 (description
1732 "Emacs-Guix provides a visual interface, tools and features for the GNU
1733 Guix package manager. Particularly, it allows you to do various package
1734 management tasks from Emacs. To begin with, run @code{M-x guix-about} or
1735 @code{M-x guix-help} command.")
1736 (license license:gpl3+)))
1737
1738 (define-public emacs-build-farm
1739 (package
1740 (name "emacs-build-farm")
1741 (version "0.2.1")
1742 (source (origin
1743 (method git-fetch)
1744 (uri (git-reference
1745 (url "https://notabug.org/alezost/emacs-build-farm.git")
1746 (commit (string-append "v" version))))
1747 (file-name (string-append name "-" version "-checkout"))
1748 (sha256
1749 (base32
1750 "1a4ky0hca26p7f3i2c2s5517ygkyaaz52vs0vxy6f5q95rhlgdhd"))))
1751 (build-system emacs-build-system)
1752 (propagated-inputs
1753 `(("bui" ,emacs-bui)
1754 ("magit-popup" ,emacs-magit-popup)))
1755 (home-page "https://notabug.org/alezost/emacs-build-farm")
1756 (synopsis "Emacs interface for Hydra and Cuirass build farms")
1757 (description
1758 "This Emacs package provides an interface for Hydra and
1759 Cuirass (build farms used by Nix and Guix). It allows you to look at
1760 various data related to the build farm projects, jobsets, builds and
1761 evaluations. The entry point is @code{M-x build-farm} command.")
1762 (license license:gpl3+)))
1763
1764 (define-public emacs-d-mode
1765 (package
1766 (name "emacs-d-mode")
1767 (version "2.0.9")
1768 (source (origin
1769 (method url-fetch)
1770 (uri (string-append
1771 "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode/"
1772 "archive/" version ".tar.gz"))
1773 (file-name (string-append name "-" version ".tar.gz"))
1774 (sha256
1775 (base32
1776 "127aa77ix3p7w4g339bx026df9y649dahlr3v359z0hs40zjz3kd"))))
1777 (build-system emacs-build-system)
1778 (propagated-inputs
1779 `(("emacs-undercover" ,emacs-undercover)))
1780 (home-page "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
1781 (synopsis "Emacs major mode for editing D code")
1782 (description "This package provides an Emacs major mode for highlighting
1783 code written in the D programming language. This mode is currently known to
1784 work with Emacs 24 and 25.")
1785 (license license:gpl2+)))
1786
1787 (define-public emacs-keyfreq
1788 (package
1789 (name "emacs-keyfreq")
1790 (version "20160516.716")
1791 (source
1792 (origin
1793 (method url-fetch)
1794 (uri (string-append "http://melpa.org/packages/keyfreq-"
1795 version ".el"))
1796 (sha256
1797 (base32
1798 "008hd7d06qskc3mx0bbdgpgy2pwxr8185fzlyqf9qjg49y74p6g8"))))
1799 (build-system emacs-build-system)
1800 (home-page "https://github.com/dacap/keyfreq")
1801 (synopsis "Track Emacs command frequencies")
1802 (description "@code{emacs-keyfeq} tracks and shows how many times you used
1803 a command.")
1804 (license license:gpl3+)))
1805
1806 (define-public emacs-olivetti
1807 (package
1808 (name "emacs-olivetti")
1809 (version "1.5.7")
1810 (source (origin
1811 (method url-fetch)
1812 (uri (string-append
1813 "https://stable.melpa.org/packages/olivetti-"
1814 version ".el"))
1815 (sha256
1816 (base32
1817 "1yj2ylg46q0pw1xzlv2b0fv9x8p56x25284s9v2smwjr4vf0nwcj"))))
1818 (build-system emacs-build-system)
1819 (home-page "https://github.com/rnkn/olivetti")
1820 (synopsis "Emacs minor mode for a nice writing environment")
1821 (description "This package provides an Emacs minor mode that puts writing
1822 in the center.")
1823 (license license:gpl3+)))
1824
1825 (define-public emacs-undo-tree
1826 (package
1827 (name "emacs-undo-tree")
1828 (version "0.6.6")
1829 (source (origin
1830 (method git-fetch)
1831 (uri (git-reference
1832 (url "http://dr-qubit.org/git/undo-tree.git")
1833 (commit (string-append "release/" version))))
1834 (file-name (string-append name "-" version "-checkout"))
1835 (sha256
1836 (base32
1837 "1hnh2mnmw179gr094r561w6cw1haid0lpvpqvkc24wpj82vphzpa"))))
1838 (build-system emacs-build-system)
1839 (home-page "http://www.dr-qubit.org/emacs.php")
1840 (synopsis "Treat undo history as a tree")
1841 (description "Tree-like interface to Emacs undo system, providing
1842 graphical tree presentation of all previous states of buffer that
1843 allows easily move between them.")
1844 (license license:gpl3+)))
1845
1846 (define-public emacs-s
1847 (package
1848 (name "emacs-s")
1849 (version "1.12.0")
1850 (source (origin
1851 (method url-fetch)
1852 (uri (string-append
1853 "https://github.com/magnars/s.el/archive/"
1854 version ".tar.gz"))
1855 (file-name (string-append name "-" version ".tar.gz"))
1856 (sha256
1857 (base32
1858 "0xbl75863pcm806zg0x1lw7qznzjq2c8320k8js7apyag8q4srvh"))))
1859 (build-system emacs-build-system)
1860 (arguments
1861 `(#:tests? #t
1862 #:emacs ,emacs ; FIXME: tests fail with emacs-minimal
1863 #:test-command '("./run-tests.sh")))
1864 (home-page "https://github.com/magnars/s.el")
1865 (synopsis "Emacs string manipulation library")
1866 (description "This package provides an Emacs library for manipulating
1867 strings.")
1868 (license license:gpl3+)))
1869
1870 (define-public emacs-symon
1871 (package
1872 (name "emacs-symon")
1873 (version "20160630")
1874 (source
1875 (origin
1876 (method url-fetch)
1877 (uri (string-append "https://github.com/zk-phi/symon/archive/"
1878 version ".tar.gz"))
1879 (file-name (string-append name "-" version ".tar.gz"))
1880 (sha256
1881 (base32
1882 "0h4jcgdnq98wc9rj72nwyazq8498yg55jfljiij5qwbn1xf1g5zz"))))
1883 (build-system emacs-build-system)
1884 (home-page "https://github.com/zk-phi/symon")
1885 (synopsis "Tiny graphical system monitor")
1886 (description
1887 "Tiny graphical system monitor for the Emacs minibuffer when idle.")
1888 (license license:gpl2+)))
1889
1890 (define-public emacs-sx
1891 (let ((version "20180212")
1892 (revision "1")
1893 (commit "833435fbf90d1c9e927d165b155f3b1ef39271de"))
1894 (package
1895 (name "emacs-sx")
1896 (version (git-version version revision commit))
1897 (source
1898 (origin
1899 (method git-fetch)
1900 (uri (git-reference
1901 (url "https://github.com/vermiculus/sx.el")
1902 (commit commit)))
1903 (file-name (git-file-name name version))
1904 (sha256
1905 (base32
1906 "1369xaxq1vy3d9yh862ddnhddikdpg2d0wv1ly00pnvdp9v4cqgd"))))
1907 (build-system emacs-build-system)
1908 (propagated-inputs
1909 `(("emacs-markdown-mode" ,emacs-markdown-mode)))
1910 (home-page "https://github.com/vermiculus/sx.el")
1911 (synopsis "Emacs StackExchange client")
1912 (description
1913 "Emacs StackExchange client. Ask and answer questions on
1914 Stack Overflow, Super User, and other StackExchange sites.")
1915 (license license:gpl3+))))
1916
1917 (define-public emacs-f
1918 (package
1919 (name "emacs-f")
1920 (version "0.20.0")
1921 (source (origin
1922 (method git-fetch)
1923 (uri (git-reference
1924 (url "https://github.com/rejeep/f.el.git")
1925 (commit (string-append "v" version))))
1926 (file-name (git-file-name name version))
1927 (sha256
1928 (base32
1929 "1a47xk3yp1rp17fqg7ldl3d3fb888h0fz3sysqfdz1bfdgs8a9bk"))))
1930 (build-system emacs-build-system)
1931 (propagated-inputs
1932 `(("emacs-s" ,emacs-s)
1933 ("emacs-dash" ,emacs-dash)))
1934 (home-page "https://github.com/rejeep/f.el")
1935 (synopsis "Emacs API for working with files and directories")
1936 (description "This package provides an Emacs library for working with
1937 files and directories.")
1938 (license license:gpl3+)))
1939
1940 (define-public emacs-git-gutter
1941 (package
1942 (name "emacs-git-gutter")
1943 (version "0.90")
1944 (source (origin
1945 (method url-fetch)
1946 (uri (string-append
1947 "https://github.com/syohex/" name "/archive/"
1948 version ".tar.gz"))
1949 (file-name (string-append name "-" version ".tar.gz"))
1950 (sha256
1951 (base32
1952 "1nmhvhpq1l56mj2yq3ag23rw3x4xgnsy8szp30s26l0yjnkhc4qg"))))
1953 (build-system emacs-build-system)
1954 (home-page "https://github.com/syohex/emacs-git-gutter")
1955 (synopsis "See and manage hunks of text in a version control system")
1956 (description
1957 "This package is an Emacs minor mode for displaying and interacting with
1958 hunks of text managed in a version control system. Added modified and deleted
1959 areas can be indicated with symbols on the edge of the buffer, and commands
1960 can be used to move between and perform actions on these hunks.
1961
1962 Git, Mercurial, Subversion and Bazaar are supported, and many parts of the
1963 display and behaviour is easily customisable.")
1964 (license license:gpl3+)))
1965
1966 (define-public emacs-git-timemachine
1967 (package
1968 (name "emacs-git-timemachine")
1969 (version "4.5")
1970 (source
1971 (origin
1972 (method url-fetch)
1973 (uri (string-append "https://gitlab.com/pidu/git-timemachine"
1974 "/-/archive/" version
1975 "/git-timemachine-" version ".tar.gz"))
1976 (file-name (string-append name "-" version ".tar.gz"))
1977 (sha256
1978 (base32
1979 "0ii40qcincasg7s1yrvqcxkqcqzb4sfs7gcxscn6m4x4ans165zy"))))
1980 (build-system emacs-build-system)
1981 (home-page "https://gitlab.com/pidu/git-timemachine")
1982 (synopsis "Step through historic versions of Git-controlled files")
1983 (description "This package enables you to step through historic versions
1984 of files under Git version control from within Emacs.")
1985 (license license:gpl3+)))
1986
1987 (define-public emacs-minitest
1988 (let ((commit "1aadb7865c1dc69c201cecee275751ecec33a182")
1989 (revision "1"))
1990 (package
1991 (name "emacs-minitest")
1992 (version (git-version "0.8.0" revision commit))
1993 (source (origin
1994 (method git-fetch)
1995 (uri (git-reference
1996 (url "https://github.com/arthurnn/minitest-emacs")
1997 (commit commit)))
1998 (file-name (git-file-name name commit))
1999 (sha256
2000 (base32
2001 "1l18zqpdzbnqj2qawq8hj7z7pl8hr8z9d8ihy8jaiqma915hmhj1"))))
2002 (build-system emacs-build-system)
2003 (arguments
2004 '(#:include (cons "^snippets\\/minitest-mode\\/" %default-include)
2005 #:exclude (delete "^[^/]*tests?\\.el$" %default-exclude)))
2006 (propagated-inputs
2007 `(("emacs-dash" ,emacs-dash)
2008 ("emacs-f" ,emacs-f)))
2009 (home-page "https://github.com/arthurnn/minitest-emacs")
2010 (synopsis "Emacs minitest mode")
2011 (description
2012 "The minitest mode provides commands to run the tests for the current
2013 file or line, as well as rerunning the previous tests, or all the tests for a
2014 project.
2015
2016 This package also includes relevant snippets for yasnippet.")
2017 (license license:expat))))
2018
2019 (define-public emacs-el-mock
2020 (package
2021 (name "emacs-el-mock")
2022 (version "1.25.1")
2023 (source
2024 (origin
2025 (method url-fetch)
2026 (uri (string-append "https://github.com/rejeep/el-mock.el/"
2027 "archive/v" version ".tar.gz"))
2028 (file-name (string-append name "-" version ".tar.gz"))
2029 (sha256
2030 (base32
2031 "16xw94n58xxn3zvgyj72bmzs0k5lkvswjmzs79ws9n7rzdivb38b"))))
2032 (build-system emacs-build-system)
2033 (home-page "https://github.com/rejeep/el-mock.el")
2034 (synopsis "Tiny mock and stub framework in Emacs Lisp")
2035 (description
2036 "Emacs Lisp Mock is a library for mocking and stubbing using readable
2037 syntax. Most commonly Emacs Lisp Mock is used in conjunction with Emacs Lisp
2038 Expectations, but it can be used in other contexts.")
2039 (license license:gpl3+)))
2040
2041 (define-public emacs-espuds
2042 (package
2043 (name "emacs-espuds")
2044 (version "0.3.3")
2045 (source
2046 (origin
2047 (method url-fetch)
2048 (uri (string-append "https://github.com/ecukes/espuds/"
2049 "archive/v" version ".tar.gz"))
2050 (file-name (string-append name "-" version ".tar.gz"))
2051 (sha256
2052 (base32
2053 "0xv551376pbmh735a3zjwc9z4qdx6ngj1vpq3xqjpn0a1rwjyn4k"))))
2054 (build-system emacs-build-system)
2055 (propagated-inputs
2056 `(("emacs-s" ,emacs-s)
2057 ("emacs-dash" ,emacs-dash)
2058 ("emacs-f" ,emacs-f)))
2059 (home-page "https://github.com/ecukes/espuds")
2060 (synopsis "Common step definitions for Ecukes")
2061 (description "Espuds is a collection of the most commonly used step
2062 definitions for testing with the Ecukes framework.")
2063 (license license:gpl3+)))
2064
2065 (define-public emacs-spark
2066 (let ((version "20160503") ; no proper tag, use date of commit
2067 (commit "0bf148c3ede3b31d56fd75f347cdd0b0eae60025")
2068 (revision "1"))
2069 (package
2070 (name "emacs-spark")
2071 (version (git-version version revision commit))
2072 (source
2073 (origin
2074 (method git-fetch)
2075 (uri (git-reference
2076 (url "https://github.com/alvinfrancis/spark.git")
2077 (commit commit)))
2078 (file-name (git-file-name name version))
2079 (sha256
2080 (base32
2081 "1ykqr86j17mi95s08d9fp02d7ych1331b04dcqxzxnmpkhwngyj1"))))
2082 (build-system emacs-build-system)
2083 (home-page "https://github.com/alvinfrancis/spark")
2084 (synopsis "Sparkline generation library for Emacs Lisp")
2085 (description "@code{emacs-spark} is a sparkline generation library for
2086 Emacs Lisp. It generates a sparkline string given a list of numbers. It is a
2087 port of @code{cl-spark} to Emacs Lisp.")
2088 (license license:expat))))
2089
2090 (define-public emacs-es-mode
2091 (package
2092 (name "emacs-es-mode")
2093 (version "4.3.0")
2094 (source (origin
2095 (method url-fetch)
2096 (uri (string-append
2097 "https://github.com/dakrone/es-mode/archive/"
2098 version ".tar.gz"))
2099 (file-name (string-append name "-" version ".tar.gz"))
2100 (sha256
2101 (base32
2102 "0y86qdcb3g7fkcb4pzsjh3syzql6w3314hg1wqxq4a8bbk3y0cgr"))))
2103 (build-system emacs-build-system)
2104 (propagated-inputs
2105 ;; The version of org in Emacs 24.5 is not sufficient, and causes tables
2106 ;; to be rendered incorrectly
2107 `(("emacs-dash" ,emacs-dash)
2108 ("emacs-org" ,emacs-org)
2109 ("emacs-spark" ,emacs-spark)))
2110 (home-page "https://github.com/dakrone/es-mode")
2111 (synopsis "Major mode for editing Elasticsearch queries")
2112 (description "@code{es-mode} includes highlighting, completion and
2113 indentation support for Elasticsearch queries. Also supported are
2114 @code{es-mode} blocks in @code{org-mode}, for which the results of queries can
2115 be processed through @code{jq}, or in the case of aggregations, can be
2116 rendered in to a table. In addition, there is an @code{es-command-center}
2117 mode, which displays information about Elasticsearch clusters.")
2118 (license license:gpl3+)))
2119
2120 (define-public emacs-expand-region
2121 (package
2122 (name "emacs-expand-region")
2123 (version "0.11.0")
2124 (source
2125 (origin
2126 (method url-fetch)
2127 (uri (string-append "https://github.com/magnars/expand-region.el"
2128 "/archive/" version ".tar.gz"))
2129 (file-name (string-append name "-" version ".tar.gz"))
2130 (sha256
2131 (base32
2132 "08dy1f411sh9wwww53rjw80idcf3vpki6ba2arl4hl5jcw9651g0"))))
2133 (build-system emacs-build-system)
2134 (home-page "https://github.com/magnars/expand-region.el")
2135 (synopsis "Increase selected region by semantic units")
2136 (description
2137 "Expand region increases the selected region by semantic units. Just
2138 keep pressing the key until it selects what you want. There's also
2139 @code{er/contract-region} if you expand too far.")
2140 (license license:gpl3+)))
2141
2142 (define-public emacs-fill-column-indicator
2143 (package
2144 (name "emacs-fill-column-indicator")
2145 (version "1.81")
2146 (source
2147 (origin
2148 (method url-fetch)
2149 (uri (string-append "https://github.com/alpaker/Fill-Column-Indicator"
2150 "/archive/v" version ".tar.gz"))
2151 (file-name (string-append name "-" version ".tar.gz"))
2152 (sha256
2153 (base32
2154 "1xwyqbjbbicmvhlb85vg4j5snwy1vd7rfk89ws4viws5ljkhhyg8"))))
2155 (build-system emacs-build-system)
2156 (home-page "https://www.emacswiki.org/emacs/FillColumnIndicator")
2157 (synopsis "Graphically indicate the fill column")
2158 (description
2159 "Fill-column-indicator graphically indicates the location of the fill
2160 column by drawing a thin line down the length of the editing window.")
2161 (license license:gpl3+)))
2162
2163 (define-public emacs-grep-a-lot
2164 (package
2165 (name "emacs-grep-a-lot")
2166 (version "1.0.7")
2167 (source (origin
2168 (method git-fetch)
2169 (uri (git-reference
2170 (url "https://github.com/ZungBang/emacs-grep-a-lot.git")
2171 (commit "9f9f645b9e308a0d887b66864ff97d0fca1ba4ad")))
2172 (file-name (string-append name "-" version "-checkout"))
2173 (sha256
2174 (base32
2175 "1f8262mrlinzgnn4m49hbj1hm3c1mvzza24py4b37sasn49546lw"))))
2176 (build-system emacs-build-system)
2177 (home-page "https://github.com/ZungBang/emacs-grep-a-lot")
2178 (synopsis "Enables multiple grep buffers in Emacs")
2179 (description
2180 "This Emacs package allows managing multiple grep buffers.")
2181 (license license:gpl3+)))
2182
2183 (define-public emacs-inf-ruby
2184 (package
2185 (name "emacs-inf-ruby")
2186 (version "2.5.1")
2187 (source
2188 (origin
2189 (method url-fetch)
2190 (uri (string-append "https://github.com/nonsequitur/inf-ruby/"
2191 "archive/" version ".tar.gz"))
2192 (file-name (string-append name "-" version ".tar.gz"))
2193 (sha256
2194 (base32
2195 "0m7323k649ckxql1grsdnf71bjhys7l4qb8wbpphb1mr1q8i4066"))))
2196 (build-system emacs-build-system)
2197 (home-page "https://github.com/nonsequitur/inf-ruby")
2198 (synopsis "Provides a REPL buffer connected to a Ruby subprocess in Emacs")
2199 (description
2200 "@code{inf-ruby} provides a Read Eval Print Loop (REPL) buffer, allowing
2201 for easy interaction with a ruby subprocess. Features include support for
2202 detecting specific uses of Ruby, e.g. when using rails, and using a
2203 appropriate console.")
2204 (license license:gpl3+)))
2205
2206 (define-public emacs-znc
2207 (package
2208 (name "emacs-znc")
2209 (version "0.0.2")
2210 (source
2211 (origin
2212 (method url-fetch)
2213 (uri (string-append "https://marmalade-repo.org/packages/znc-"
2214 version ".el"))
2215 (sha256
2216 (base32
2217 "1d8lqvybgyazin5z0g1c4l3rg1vzrrvf0saqs53jr1zcdg0lianh"))))
2218 (build-system emacs-build-system)
2219 (home-page "https://github.com/sshirokov/ZNC.el")
2220 (synopsis "Make ERC and ZNC get along better")
2221 (description
2222 "This is a thin wrapper around @code{erc} that enables one to use the ZNC
2223 IRC bouncer with ERC.")
2224 (license license:expat)))
2225
2226 (define-public emacs-shut-up
2227 (package
2228 (name "emacs-shut-up")
2229 (version "0.3.2")
2230 (source
2231 (origin
2232 (method url-fetch)
2233 (uri (string-append "https://github.com/cask/shut-up/"
2234 "archive/v" version ".tar.gz"))
2235 (file-name (string-append name "-" version ".tar.gz"))
2236 (sha256
2237 (base32
2238 "09kzrjdkb569iviyg7ydwq44yh84m3f9hkl7jizfrlk0w4gz67d1"))))
2239 (build-system emacs-build-system)
2240 (home-page "https://github.com/cask/shut-up")
2241 (synopsis "Silence Emacs")
2242 (description "This package silences most output of Emacs when running an
2243 Emacs shell script.")
2244 (license license:expat)))
2245
2246 (define-public emacs-undercover
2247 (package
2248 (name "emacs-undercover")
2249 (version "0.6.0")
2250 (source
2251 (origin
2252 (method url-fetch)
2253 (uri (string-append "https://github.com/sviridov/undercover.el/"
2254 "archive/v" version ".tar.gz"))
2255 (file-name (string-append name "-" version ".tar.gz"))
2256 (sha256
2257 (base32
2258 "0f48fi0xnbsqs382rgh85m9mq1wdnr0yib7as9xhwzvq0hsr5m0a"))))
2259 (build-system emacs-build-system)
2260 (propagated-inputs
2261 `(("emacs-dash" ,emacs-dash)
2262 ("emacs-shut-up" ,emacs-shut-up)))
2263 (home-page "https://github.com/sviridov/undercover.el")
2264 (synopsis "Test coverage library for Emacs Lisp")
2265 (description
2266 "Undercover is a test coverage library for software written in Emacs
2267 Lisp.")
2268 (license license:expat)))
2269
2270 (define-public emacs-paren-face
2271 (package
2272 (name "emacs-paren-face")
2273 (version "1.0.0")
2274 (source
2275 (origin
2276 (method url-fetch)
2277 (uri (string-append "https://github.com/tarsius/paren-face/archive/"
2278 version ".tar.gz"))
2279 (file-name (string-append name "-" version ".tar.gz"))
2280 (sha256
2281 (base32
2282 "0y4qrhxa9332vsvr999jg7qj1ymnfgwpf591yi4a4jgg90pm7qnn"))))
2283 (build-system emacs-build-system)
2284 (home-page "https://github.com/tarsius/paren-face")
2285 (synopsis "Face for parentheses in lisp modes")
2286 (description
2287 "This library defines a face named @code{parenthesis} used just for
2288 parentheses. The intended purpose of this face is to make parentheses less
2289 visible in Lisp code by dimming them. Lispers probably don't need to be
2290 constantly made aware of the existence of the parentheses. Dimming them might
2291 be even more useful for people new to lisp who have not yet learned to
2292 subconsciously blend out the parentheses.")
2293 (license license:gpl3+)))
2294
2295 (define-public emacs-page-break-lines
2296 (package
2297 (name "emacs-page-break-lines")
2298 (version "0.11")
2299 (source
2300 (origin
2301 (method url-fetch)
2302 (uri (string-append "https://github.com/purcell/page-break-lines/"
2303 "archive/" version ".tar.gz"))
2304 (file-name (string-append name "-" version ".tar.gz"))
2305 (sha256
2306 (base32
2307 "1zzhziq5kbrm9rxk30kx2glz455fp1blqxg8cpcf6l8xl3w8z4pg"))))
2308 (build-system emacs-build-system)
2309 (home-page "https://github.com/purcell/page-break-lines")
2310 (synopsis "Display page breaks as tidy horizontal lines")
2311 (description
2312 "This library provides a global mode which displays form feed characters
2313 as horizontal rules.")
2314 (license license:gpl3+)))
2315
2316 (define-public emacs-simple-httpd
2317 (package
2318 (name "emacs-simple-httpd")
2319 (version "1.4.6")
2320 (source
2321 (origin
2322 (method url-fetch)
2323 (uri (string-append "https://github.com/skeeto/emacs-web-server/"
2324 "archive/" version ".tar.gz"))
2325 (file-name (string-append name "-" version ".tar.gz"))
2326 (sha256
2327 (base32
2328 "01r7h3imnj4qx1m53a2wjafvbylcyz5f9r2rg2cs7ky3chlg220r"))))
2329 (build-system emacs-build-system)
2330 (home-page "https://github.com/skeeto/emacs-http-server")
2331 (synopsis "HTTP server in pure Emacs Lisp")
2332 (description
2333 "This package provides a simple HTTP server written in Emacs Lisp to
2334 serve files and directory listings.")
2335 (license license:unlicense)))
2336
2337 (define-public emacs-skewer-mode
2338 (package
2339 (name "emacs-skewer-mode")
2340 (version "1.6.2")
2341 (source
2342 (origin
2343 (method url-fetch)
2344 (uri (string-append "https://github.com/skeeto/skewer-mode/archive/"
2345 version ".tar.gz"))
2346 (file-name (string-append name "-" version ".tar.gz"))
2347 (sha256
2348 (base32
2349 "07jpz374j0j964szy3zznrkyja2kpdl3xa87wh7349mzxivqxdx0"))))
2350 (build-system emacs-build-system)
2351 (propagated-inputs
2352 `(("emacs-simple-httpd" ,emacs-simple-httpd)
2353 ("emacs-js2-mode" ,emacs-js2-mode)))
2354 (arguments '(#:include '("\\.el$" "\\.js$" "\\.html$")))
2355 (home-page "https://github.com/skeeto/skewer-mode")
2356 (synopsis "Live web development in Emacs")
2357 (description
2358 "Skewer-mode provides live interaction with JavaScript, CSS, and HTML in
2359 a web browser. Expressions are sent on-the-fly from an editing buffer to be
2360 evaluated in the browser, just like Emacs does with an inferior Lisp process
2361 in Lisp modes.")
2362 (license license:unlicense)))
2363
2364 (define-public emacs-string-inflection
2365 (package
2366 (name "emacs-string-inflection")
2367 (version "1.0.6")
2368 (source (origin
2369 (method git-fetch)
2370 (uri (git-reference
2371 (url "https://github.com/akicho8/string-inflection")
2372 (commit "a150e7bdda60b7824d3a936750ce23f73b0e4edd")))
2373 (file-name (string-append name "-" version "-checkout"))
2374 (sha256
2375 (base32
2376 "1k0sm552iawi49v4zis6dbb81d1rzgky9v0dpv7nj31gnb7bmy7k"))))
2377 (build-system emacs-build-system)
2378 (native-inputs
2379 `(("ert-runner" ,ert-runner)))
2380 (arguments
2381 `(#:tests? #t
2382 #:test-command '("ert-runner")))
2383 (home-page "https://github.com/akicho8/string-inflection")
2384 (synopsis "Convert symbol names between different naming conventions")
2385 (description
2386 "This Emacs package provides convenient methods for manipulating the
2387 naming style of a symbol. It supports different naming conventions such as:
2388
2389 @enumerate
2390 @item camel case
2391 @item Pascal case
2392 @item all upper case
2393 @item lower case separated by underscore
2394 @item etc...
2395 @end enumerate\n")
2396 (license license:gpl2+)))
2397
2398 (define-public emacs-stripe-buffer
2399 (package
2400 (name "emacs-stripe-buffer")
2401 (version "0.2.5")
2402 (source
2403 (origin
2404 (method url-fetch)
2405 (uri (string-append "https://github.com/sabof/stripe-buffer/"
2406 "archive/" version ".tar.gz"))
2407 (file-name (string-append name "-" version ".tar.gz"))
2408 (sha256
2409 (base32
2410 "1p515dq7raly5hw94kiwm3vzsfih0d8af622q4ipvvljsm98aiik"))))
2411 (build-system emacs-build-system)
2412 (home-page "https://github.com/sabof/stripe-buffer/")
2413 (synopsis "Add stripes to list buffers")
2414 (description
2415 "This Emacs package adds faces to add stripes to list buffers and org
2416 tables.")
2417 (license license:gpl2+)))
2418
2419 (define-public emacs-rich-minority
2420 (package
2421 (name "emacs-rich-minority")
2422 (version "1.0.1")
2423 (source
2424 (origin
2425 (method url-fetch)
2426 (uri (string-append "https://github.com/Malabarba/rich-minority/"
2427 "archive/" version ".tar.gz"))
2428 (file-name (string-append name "-" version ".tar.gz"))
2429 (sha256
2430 (base32
2431 "1l0cb0q7kyi88nwfqd542psnkgwnjklpzc5rx32gzd3lkwkrbr8v"))))
2432 (build-system emacs-build-system)
2433 (home-page "https://github.com/Malabarba/rich-minority")
2434 (synopsis "Clean-up and beautify the list of minor modes")
2435 (description
2436 "This Emacs package hides and/or highlights minor modes in the
2437 mode-line.")
2438 (license license:gpl2+)))
2439
2440 (define-public emacs-robe
2441 (package
2442 (name "emacs-robe")
2443 (version "0.8.1")
2444 (source
2445 (origin
2446 (method url-fetch)
2447 (uri (string-append "https://github.com/dgutov/robe/"
2448 "archive/" version ".tar.gz"))
2449 (file-name (string-append name "-" version ".tar.gz"))
2450 (sha256
2451 (base32
2452 "1vp45y99fwj88z04ah4yppz4z568qcib646az6m9az5ar0f203br"))))
2453 (build-system emacs-build-system)
2454 (arguments
2455 '(#:include (cons "^lib\\/" %default-include)))
2456 (propagated-inputs
2457 `(("emacs-inf-ruby" ,emacs-inf-ruby)))
2458 (home-page "https://github.com/dgutov/robe")
2459 (synopsis "Ruby code assistance tool for Emacs")
2460 (description
2461 "Robe can provide information on loaded classes and modules in Ruby code,
2462 as well as where methods are defined. This allows the user to jump to method
2463 definitions, modules and classes, display method documentation and provide
2464 method and constant name completion.")
2465 (license license:gpl3+)))
2466
2467 (define-public emacs-rspec
2468 (package
2469 (name "emacs-rspec")
2470 (version "1.11")
2471 (source
2472 (origin
2473 (method url-fetch)
2474 (uri (string-append "https://github.com/pezra/rspec-mode/"
2475 "archive/v" version ".tar.gz"))
2476 (file-name (string-append name "-" version ".tar.gz"))
2477 (sha256
2478 (base32
2479 "1j0a7ms5516nlg60qfyn730pfxys6acm0rgyxh5xfkpi6jafgpvw"))))
2480 (build-system emacs-build-system)
2481 (home-page "https://github.com/pezra/rspec-mode")
2482 (synopsis "Provides a rspec mode for working with RSpec")
2483 (description
2484 "The Emacs RSpec mode provides keybindings for Ruby source files, e.g. to
2485 verify the spec associated with the current buffer, or entire project, as well
2486 as moving between the spec files, and coresponding code files.
2487
2488 Also included are keybindings for spec files and Dired buffers, as well as
2489 snippets for yasnippet.")
2490 (license license:gpl3+)))
2491
2492 (define-public emacs-smart-mode-line
2493 (package
2494 (name "emacs-smart-mode-line")
2495 (version "2.10.1")
2496 (source
2497 (origin
2498 (method url-fetch)
2499 (uri (string-append "https://github.com/Malabarba/smart-mode-line/"
2500 "archive/" version ".tar.gz"))
2501 (file-name (string-append name "-" version ".tar.gz"))
2502 (sha256
2503 (base32
2504 "0i9wajabrrsjzwd842q0m2611kf0q31p9hg1pdj81177gynkw8l8"))))
2505 (build-system emacs-build-system)
2506 (propagated-inputs
2507 `(("emacs-rich-minority" ,emacs-rich-minority)))
2508 (home-page "https://github.com/Malabarba/smart-mode-line")
2509 (synopsis "Color-coded smart mode-line")
2510 (description
2511 "Smart Mode Line is a mode-line theme for Emacs. It aims to be easy to
2512 read from small to large monitors by using colors, a prefix feature, and smart
2513 truncation.")
2514 (license license:gpl2+)))
2515
2516 (define-public emacs-sr-speedbar
2517 (let ((commit "77a83fb50f763a465c021eca7343243f465b4a47")
2518 (revision "0"))
2519 (package
2520 (name "emacs-sr-speedbar")
2521 (version (git-version "20161025" revision commit))
2522 (source
2523 (origin
2524 (method git-fetch)
2525 (uri (git-reference
2526 (url "https://github.com/emacsorphanage/sr-speedbar.git")
2527 (commit commit)))
2528 (file-name (git-file-name name version))
2529 (sha256
2530 (base32
2531 "0sd12555hk7z721y00kv3crdybvcn1i08wmd148z5imayzibj153"))))
2532 (build-system emacs-build-system)
2533 (home-page "https://www.emacswiki.org/emacs/SrSpeedbar")
2534 (synopsis "Same frame Emacs @code{speedbar}")
2535 (description
2536 "This Emacs package allows you to show @code{M-x speedbar} in the
2537 same frame (in an extra window). You can customize the initial width of
2538 the speedbar window.")
2539 (license license:gpl3+))))
2540
2541 (define-public emacs-shell-switcher
2542 (package
2543 (name "emacs-shell-switcher")
2544 (version "1.0.1")
2545 (source
2546 (origin
2547 (method url-fetch)
2548 (uri (string-append "https://github.com/DamienCassou/shell-switcher"
2549 "/archive/v" version ".tar.gz"))
2550 (file-name (string-append name "-" version ".tar.gz"))
2551 (sha256
2552 (base32
2553 "1c23mfkdqz2g9rixd9smm323vzlvhzz3ng34ambcqjfq309qb2nz"))))
2554 (build-system emacs-build-system)
2555 (home-page "https://github.com/DamienCassou/shell-switcher")
2556 (synopsis "Provide fast switching between shell buffers")
2557 (description
2558 "This package provides commands to quickly switch between shell buffers.")
2559 (license license:gpl3+)))
2560
2561 (define-public emacs-ob-ipython
2562 (package
2563 (name "emacs-ob-ipython")
2564 (version "20150704.8807064693")
2565 (source (origin
2566 (method git-fetch)
2567 (uri (git-reference
2568 (commit "880706469338ab59b5bb7dbe8460016f89755364")
2569 (url "https://github.com/gregsexton/ob-ipython.git")))
2570 (file-name (string-append name "-" version "-checkout"))
2571 (sha256
2572 (base32
2573 "1scf25snbds9ymagpny30ijbsg479r3nm0ih01dy4m9d0g7qryb7"))))
2574 (build-system emacs-build-system)
2575 (propagated-inputs
2576 `(("emacs-f" ,emacs-f)))
2577 (home-page "http://www.gregsexton.org")
2578 (synopsis "Org-Babel functions for IPython evaluation")
2579 (description "This package adds support to Org-Babel for evaluating Python
2580 source code using IPython.")
2581 (license license:gpl3+)))
2582
2583 (define-public emacs-debbugs
2584 (package
2585 (name "emacs-debbugs")
2586 (version "0.15")
2587 (source (origin
2588 (method url-fetch)
2589 (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
2590 version ".tar"))
2591 (sha256
2592 (base32
2593 "1x7jw2ldgkknyxg7x9fhnqkary691icnysmi3xw0g2fjrvllzhqw"))))
2594 (build-system emacs-build-system)
2595 (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
2596 (propagated-inputs
2597 `(("emacs-async" ,emacs-async)))
2598 (home-page "https://elpa.gnu.org/packages/debbugs.html")
2599 (synopsis "Access the Debbugs bug tracker in Emacs")
2600 (description
2601 "This package lets you access the @uref{http://bugs.gnu.org,GNU Bug
2602 Tracker} from within Emacs.
2603
2604 For instance, it defines the command @code{M-x debbugs-gnu} for listing bugs,
2605 and the command @code{M-x debbugs-gnu-search} for bug searching. If you
2606 prefer the listing of bugs as TODO items of @code{org-mode}, you could use
2607 @code{M-x debbugs-org} and related commands.
2608
2609 A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug
2610 Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.")
2611 (license license:gpl3+)))
2612
2613 (define-public emacs-ert-expectations
2614 (package
2615 (name "emacs-ert-expectations")
2616 (version "0.2")
2617 (source
2618 (origin
2619 (method url-fetch)
2620 (uri "https://www.emacswiki.org/emacs/download/ert-expectations.el")
2621 (sha256
2622 (base32
2623 "0cwy3ilsid90abzzjb7ha2blq9kmv3gfp3icwwfcz6qczgirq6g7"))))
2624 (build-system emacs-build-system)
2625 (home-page "https://www.emacswiki.org/emacs/ert-expectations.el")
2626 (synopsis "Simple unit test framework for Emacs Lisp")
2627 (description "@code{emacs-ert-expectations} is a simple unit test
2628 framework for Emacs Lisp to be used with @code{ert}.")
2629 (license license:gpl3+)))
2630
2631 (define-public emacs-deferred
2632 (package
2633 (name "emacs-deferred")
2634 (version "0.5.1")
2635 (home-page "https://github.com/kiwanami/emacs-deferred")
2636 (source (origin
2637 (method git-fetch)
2638 (uri (git-reference
2639 (url home-page)
2640 (commit (string-append "v" version))))
2641 (sha256
2642 (base32
2643 "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"))
2644 (file-name (string-append name "-" version))))
2645 (build-system emacs-build-system)
2646 (arguments
2647 `(#:phases
2648 (modify-phases %standard-phases
2649 (add-after 'unpack 'set-shell
2650 ;; Setting the SHELL environment variable is required for the tests
2651 ;; to find sh.
2652 (lambda _
2653 (setenv "SHELL" (which "sh"))
2654 #t))
2655 (add-before 'check 'fix-makefile
2656 (lambda _
2657 (substitute* "Makefile"
2658 (("\\$\\(CASK\\) exec ") ""))
2659 #t)))
2660 #:tests? #t
2661 #:test-command '("make" "test")))
2662 (native-inputs
2663 `(("emacs-ert-expectations" ,emacs-ert-expectations)
2664 ("emacs-undercover" ,emacs-undercover)
2665 ("ert-runner" ,ert-runner)))
2666 (synopsis "Simple asynchronous functions for Emacs Lisp")
2667 (description
2668 "The @code{deferred.el} library provides support for asynchronous tasks.
2669 The API is almost the same as that of
2670 @uref{https://github.com/cho45/jsdeferred, JSDeferred}, a JavaScript library
2671 for asynchronous tasks.")
2672 (license license:gpl3+)))
2673
2674 (define-public butler
2675 (package
2676 (name "emacs-butler")
2677 (version "0.2.4")
2678 (home-page "https://github.com/AshtonKem/Butler")
2679 (source (origin
2680 (method git-fetch)
2681 (uri (git-reference
2682 (url home-page)
2683 (commit version)))
2684 (sha256
2685 (base32
2686 "1pii9dw4skq7nr4na6qxqasl36av8cwjp71bf1fgppqpcd9z8skj"))
2687 (file-name (string-append name "-" version))))
2688 (build-system emacs-build-system)
2689 (propagated-inputs
2690 `(("emacs-deferred" ,emacs-deferred)))
2691 (synopsis "Emacs client for Jenkins")
2692 (description
2693 "Butler provides an interface to connect to Jenkins continuous
2694 integration servers. Users can specify a list of server in the
2695 @code{butler-server-list} variable and then use @code{M-x butler-status} to
2696 view the build status of those servers' build jobs, and possibly to trigger
2697 build jobs.")
2698 (license license:gpl3+)))
2699
2700 (define-public emacs-company
2701 (package
2702 (name "emacs-company")
2703 (version "0.9.6")
2704 (source
2705 (origin
2706 (method url-fetch)
2707 (uri (string-append "https://github.com/company-mode/company-mode/archive/"
2708 version ".tar.gz"))
2709 (file-name (string-append name "-" version ".tar.gz"))
2710 (sha256
2711 (base32
2712 "0a7zvmfvxh9w67myvcj2511ayk0fvkm06cdg38y8khnsx63jrr4k"))))
2713 (build-system emacs-build-system)
2714 (arguments
2715 `(#:phases
2716 (modify-phases %standard-phases
2717 (add-before 'check 'fix-bin-dir
2718 (lambda _
2719 ;; The company-files-candidates-normal-root test looks
2720 ;; for the /bin directory, but the build environment has
2721 ;; no /bin directory. Modify the test to look for the
2722 ;; /tmp directory.
2723 (substitute* "test/files-tests.el"
2724 (("/bin/") "/tmp/"))
2725 #t)))
2726 #:tests? #t
2727 #:test-command '("make" "test-batch")))
2728 (home-page "http://company-mode.github.io/")
2729 (synopsis "Modular text completion framework")
2730 (description
2731 "Company is a modular completion mechanism. Modules for retrieving
2732 completion candidates are called back-ends, modules for displaying them are
2733 front-ends. Company comes with many back-ends, e.g. @code{company-elisp}.
2734 These are distributed in separate files and can be used individually.")
2735 (license license:gpl3+)))
2736
2737 (define-public emacs-irony-mode
2738 (package
2739 (name "emacs-irony-mode")
2740 (version "1.2.0")
2741 (home-page "https://github.com/Sarcasm/irony-mode")
2742 (source (origin
2743 (method url-fetch)
2744 (uri (string-append home-page "/archive/v" version ".tar.gz"))
2745 (sha256
2746 (base32
2747 "1f68zi0glkg2aly66s07rx3w0b0hdi1znxan02h6dbabaadylk99"))
2748 (file-name (string-append name "-" version ".tar.gz"))))
2749 (build-system emacs-build-system)
2750 (arguments '())
2751 (propagated-inputs
2752 `(("emacs-irony-mode-server" ,emacs-irony-mode-server)))
2753 (synopsis "C/C++/ObjC Code completion and syntax checks for Emacs")
2754 (description "Irony-mode provides Clang-assisted syntax checking and
2755 completion for C, C++, and ObjC in GNU Emacs. Using @code{libclang} it can
2756 provide syntax checking and autocompletion on compiler level which is very
2757 resistent against false positives. It also integrates well with other
2758 packages like @code{eldoc-mode} and especially @code{company-mode} as
2759 described on the homepage.")
2760 (license license:gpl3+)))
2761
2762 (define-public emacs-irony-mode-server
2763 (package (inherit emacs-irony-mode)
2764 (name "emacs-irony-mode-server")
2765 (inputs
2766 `(("clang" ,clang)))
2767 (propagated-inputs '())
2768 (arguments
2769 `(#:phases
2770 (modify-phases %standard-phases
2771 (replace 'configure
2772 (lambda* (#:key outputs #:allow-other-keys)
2773 (let ((out (assoc-ref outputs "out")))
2774 (invoke "cmake"
2775 "server"
2776 (string-append "-DCMAKE_INSTALL_PREFIX=" out)) #t))))))
2777 (build-system cmake-build-system)
2778 (synopsis "Server for the Emacs @dfn{irony mode}")))
2779
2780 (define-public emacs-company-quickhelp
2781 (package
2782 (name "emacs-company-quickhelp")
2783 (version "2.3.0")
2784 (source
2785 (origin
2786 (method url-fetch)
2787 (uri (string-append
2788 "https://github.com/expez/company-quickhelp/archive/"
2789 version ".tar.gz"))
2790 (file-name (string-append name "-" version ".tar.gz"))
2791 (sha256
2792 (base32
2793 "0xrn2z1dgk5gmkmp2jkn9g83ckk39lqp5pyyv8rl7f6gqvib3qh0"))))
2794 (build-system emacs-build-system)
2795 (propagated-inputs
2796 `(("emacs-pos-tip" ,emacs-pos-tip)
2797 ("emacs-company" ,emacs-company)))
2798 (home-page "https://github.com/expez/company-quickhelp")
2799 (synopsis "Popup documentation for completion candidates")
2800 (description "@code{company-quickhelp} shows documentation for the
2801 completion candidate when using the Company text completion framework.")
2802 (license license:gpl3+)))
2803
2804 (define-public emacs-multiple-cursors
2805 (package
2806 (name "emacs-multiple-cursors")
2807 (version "1.4.0")
2808 (source
2809 (origin
2810 (method url-fetch)
2811 (uri (string-append "https://github.com/magnars/multiple-cursors.el/"
2812 "archive/" version ".tar.gz"))
2813 (file-name (string-append name "-" version ".tar.gz"))
2814 (sha256
2815 (base32
2816 "0hihihlvcvzayg5fnqzcg45fhvlmq6xlq58syy00rjwbry9w389k"))))
2817 (build-system emacs-build-system)
2818 (home-page "https://github.com/magnars/multiple-cursors.el")
2819 (synopsis "Multiple cursors for Emacs")
2820 (description
2821 "This package adds support to Emacs for editing text with multiple
2822 simultaneous cursors.")
2823 (license license:gpl3+)))
2824
2825 (define-public typo
2826 (package
2827 (name "emacs-typo")
2828 (version "1.1")
2829 (home-page "https://github.com/jorgenschaefer/typoel")
2830 (source (origin
2831 (method git-fetch)
2832 (uri (git-reference
2833 (url home-page)
2834 (commit (string-append "v" version))))
2835 (sha256
2836 (base32
2837 "1jhd4grch5iz12gyxwfbsgh4dmz5hj4bg4gnvphccg8dsnni05k2"))
2838 (file-name (string-append name "-" version))))
2839 (build-system emacs-build-system)
2840 (synopsis "Minor mode for typographic editing")
2841 (description
2842 "This package provides two Emacs modes, @code{typo-mode} and
2843 @code{typo-global-mode}. These modes automatically insert Unicode characters
2844 for quotation marks, dashes, and ellipses. For example, typing @kbd{\"}
2845 automatically inserts a Unicode opening or closing quotation mark, depending
2846 on context.")
2847 (license license:gpl3+)))
2848
2849 (define-public emacs-scheme-complete
2850 (let ((commit "9b5cf224bf2a5994bc6d5b152ff487517f1a9bb5"))
2851 (package
2852 (name "emacs-scheme-complete")
2853 (version (string-append "20151223." (string-take commit 8)))
2854 (source
2855 (origin
2856 (file-name (string-append name "-" version))
2857 (method git-fetch)
2858 (uri (git-reference
2859 (url "https://github.com/ashinn/scheme-complete.git")
2860 (commit commit)))
2861 (sha256
2862 (base32
2863 "141wn9l0m33w0g3dqmx8nxbfdny1r5xbr6ak61rsz21bk0qafs7x"))
2864 (patches
2865 (search-patches "emacs-scheme-complete-scheme-r5rs-info.patch"))))
2866 (build-system emacs-build-system)
2867 (home-page "https://github.com/ashinn/scheme-complete")
2868 (synopsis "Smart tab completion for Scheme in Emacs")
2869 (description
2870 "This file provides a single function, @code{scheme-smart-complete},
2871 which you can use for intelligent, context-sensitive completion for any Scheme
2872 implementation in Emacs. To use it just load this file and bind that function
2873 to a key in your preferred mode.")
2874 (license license:public-domain))))
2875
2876 (define-public emacs-scel
2877 (let ((version "20170629")
2878 (revision "1")
2879 (commit "aeea3ad4be9306d14c3a734a4ff54fee10ac135b"))
2880 (package
2881 (name "emacs-scel")
2882 (version (git-version version revision commit))
2883 (source
2884 (origin
2885 (method git-fetch)
2886 (uri (git-reference
2887 (url "https://github.com/supercollider/scel.git")
2888 (commit commit)))
2889 (file-name (string-append name "-" version "-checkout"))
2890 (sha256
2891 (base32
2892 "0jvmzs1lsjyndqshhii2y4mnr3wghai26i3p75453zrpxpg0zvvw"))))
2893 (build-system emacs-build-system)
2894 (arguments
2895 `(#:modules ((guix build emacs-build-system)
2896 ((guix build cmake-build-system) #:prefix cmake:)
2897 (guix build utils))
2898 #:imported-modules (,@%emacs-build-system-modules
2899 (guix build cmake-build-system))
2900 #:phases
2901 (modify-phases %standard-phases
2902 (add-after 'unpack 'configure
2903 (lambda* (#:key outputs #:allow-other-keys)
2904 (substitute* "el/CMakeLists.txt"
2905 (("share/emacs/site-lisp/SuperCollider")
2906 (string-append
2907 "share/emacs/site-lisp/guix.d/scel-" ,version)))
2908 ((assoc-ref cmake:%standard-phases 'configure)
2909 #:outputs outputs
2910 #:configure-flags '("-DSC_EL_BYTECOMPILE=OFF"))))
2911 (add-after 'set-emacs-load-path 'add-el-dir-to-emacs-load-path
2912 (lambda _
2913 (setenv "EMACSLOADPATH"
2914 (string-append (getcwd) "/el:" (getenv "EMACSLOADPATH")))
2915 #t))
2916 (replace 'install (assoc-ref cmake:%standard-phases 'install)))))
2917 (inputs
2918 `(("supercollider" ,supercollider)))
2919 (native-inputs
2920 `(("cmake" ,cmake)))
2921 (home-page "https://github.com/supercollider/scel")
2922 (synopsis "SuperCollider Emacs interface")
2923 (description "@code{emacs-scel} is an Emacs interface to SuperCollider.
2924 SuperCollider is a platform for audio synthesis and algorithmic composition.")
2925 (license license:gpl2+))))
2926
2927 (define-public emacs-mit-scheme-doc
2928 (package
2929 (name "emacs-mit-scheme-doc")
2930 (version "20140203")
2931 (source
2932 (origin
2933 (modules '((guix build utils)))
2934 (snippet
2935 ;; keep only file of interest
2936 '(begin
2937 (for-each delete-file '("dot-emacs.el" "Makefile"))
2938 (install-file "6.945-config/mit-scheme-doc.el" ".")
2939 (delete-file-recursively "6.945-config")
2940 #t))
2941 (file-name (string-append name "-" version ".tar.bz2"))
2942 (method url-fetch)
2943 (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/"
2944 "6.945/dont-panic/emacs-basic-config.tar.bz2"))
2945 (sha256
2946 (base32
2947 "0dqidg2bd66pawqfarvwca93w5gqf9mikn1k2a2rmd9ymfjpziq1"))))
2948 (build-system emacs-build-system)
2949 (inputs `(("mit-scheme" ,mit-scheme)))
2950 (arguments
2951 `(#:phases
2952 (modify-phases %standard-phases
2953 (add-after 'unpack 'configure-doc
2954 (lambda* (#:key inputs #:allow-other-keys)
2955 (let* ((mit-scheme-dir (assoc-ref inputs "mit-scheme"))
2956 (doc-dir (string-append mit-scheme-dir "/share/doc/"
2957 "mit-scheme-"
2958 ,(package-version mit-scheme))))
2959 (substitute* "mit-scheme-doc.el"
2960 (("http://www\\.gnu\\.org/software/mit-scheme/documentation/mit-scheme-ref/")
2961 (string-append "file:" doc-dir "/mit-scheme-ref/")))))))))
2962 (home-page "http://groups.csail.mit.edu/mac/users/gjs/6.945/dont-panic/")
2963 (synopsis "MIT-Scheme documentation lookup for Emacs")
2964 (description
2965 "This package provides a set of Emacs functions to search definitions of
2966 identifiers in the MIT-Scheme documentation.")
2967 (license license:gpl2+)))
2968
2969 (define-public emacs-constants
2970 (package
2971 (name "emacs-constants")
2972 (version "2.6")
2973 (home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
2974 (source
2975 (origin
2976 (file-name (string-append name "-" version ".tar.gz"))
2977 (method url-fetch)
2978 (uri (string-append "https://github.com/fedeinthemix/emacs-constants"
2979 "/archive/v" version ".tar.gz"))
2980 (sha256
2981 (base32
2982 "0pnrpmmxq8mh5h2hbrp5vcym0j0fh6dv3s7c5ccn18wllhzg9g7n"))))
2983 (build-system emacs-build-system)
2984 (synopsis "Enter definition of constants into an Emacs buffer")
2985 (description
2986 "This package provides functions for inserting the definition of natural
2987 constants and units into an Emacs buffer.")
2988 (license license:gpl2+)))
2989
2990 (define-public emacs-tagedit
2991 (package
2992 (name "emacs-tagedit")
2993 (version "1.4.0")
2994 (source
2995 (origin
2996 (method url-fetch)
2997 (uri (string-append "https://github.com/magnars/tagedit/"
2998 "archive/" version ".tar.gz"))
2999 (file-name (string-append name "-" version ".tar.gz"))
3000 (sha256
3001 (base32
3002 "1apfnann4qklfdsmdi7icjsj18x7gwx8d83iqr4z25clszz95xfq"))))
3003 (build-system emacs-build-system)
3004 (propagated-inputs
3005 `(("emacs-s" ,emacs-s)
3006 ("emacs-dash" ,emacs-dash)))
3007 (home-page "https://github.com/magnars/tagedit")
3008 (synopsis "Some paredit-like features for html-mode")
3009 (description
3010 "This package provides a collection of paredit-like functions for editing
3011 in @code{html-mode}.")
3012 (license license:gpl3+)))
3013
3014 (define-public emacs-slime
3015 (package
3016 (name "emacs-slime")
3017 (version "2.20")
3018 (source
3019 (origin
3020 (file-name (string-append name "-" version ".tar.gz"))
3021 (method url-fetch)
3022 (uri (string-append
3023 "https://github.com/slime/slime/archive/v"
3024 version ".tar.gz"))
3025 (sha256
3026 (base32
3027 "086lq5y4pvj9wihy0si02xxvyzpzz8mcg3hz1cvy9zxlyjwzr1gk"))))
3028 (build-system emacs-build-system)
3029 (native-inputs
3030 `(("texinfo" ,texinfo)))
3031 (arguments
3032 `(#:include '("\\.el$" "\\.lisp$" "\\.asd$" "contrib")
3033 #:exclude '("^slime-tests.el" "^contrib/test/"
3034 "^contrib/Makefile$" "^contrib/README.md$")
3035 #:phases
3036 (modify-phases %standard-phases
3037 (add-before 'install 'configure
3038 (lambda* _
3039 (emacs-substitute-variables "slime.el"
3040 ("inferior-lisp-program" "sbcl"))
3041 #t))
3042 (add-before 'install 'install-doc
3043 (lambda* (#:key outputs #:allow-other-keys)
3044 (let* ((out (assoc-ref outputs "out"))
3045 (info-dir (string-append out "/share/info"))
3046 (doc-dir (string-append out "/share/doc/"
3047 ,name "-" ,version))
3048 (doc-files '("doc/slime-refcard.pdf"
3049 "README.md" "NEWS" "PROBLEMS"
3050 "CONTRIBUTING.md")))
3051 (with-directory-excursion "doc"
3052 (substitute* "Makefile"
3053 (("infodir=/usr/local/info")
3054 (string-append "infodir=" info-dir)))
3055 (invoke "make" "html/index.html")
3056 (invoke "make" "slime.info")
3057 (install-file "slime.info" info-dir)
3058 (copy-recursively "html" (string-append doc-dir "/html")))
3059 (for-each (lambda (f)
3060 (install-file f doc-dir)
3061 (delete-file f))
3062 doc-files)
3063 (delete-file-recursively "doc")
3064 #t))))))
3065 (home-page "https://github.com/slime/slime")
3066 (synopsis "Superior Lisp Interaction Mode for Emacs")
3067 (description
3068 "SLIME extends Emacs with support for interactive programming in
3069 Common Lisp. The features are centered around @command{slime-mode},
3070 an Emacs minor mode that complements the standard @command{lisp-mode}.
3071 While lisp-mode supports editing Lisp source files, @command{slime-mode}
3072 adds support for interacting with a running Common Lisp process
3073 for compilation, debugging, documentation lookup, and so on.")
3074 (license license:gpl2+)))
3075
3076 (define-public emacs-popup
3077 (package
3078 (name "emacs-popup")
3079 (version "0.5.3")
3080 (source (origin
3081 (method url-fetch)
3082 (uri (string-append
3083 "https://github.com/auto-complete/popup-el/archive/v"
3084 version ".tar.gz"))
3085 (file-name (string-append name "-" version ".tar.gz"))
3086 (sha256
3087 (base32
3088 "1yrgfj8y69xmcb6kwgplhq68ndm9410qwh7sd2knnd1gchpphdc0"))))
3089 (build-system emacs-build-system)
3090 (home-page "https://github.com/auto-complete/popup-el")
3091 (synopsis "Visual Popup User Interface for Emacs")
3092 (description
3093 "Popup.el is a visual popup user interface library for Emacs.
3094 This provides a basic API and common UI widgets such as popup tooltips
3095 and popup menus.")
3096 (license license:gpl3+)))
3097
3098 (define-public emacs-puppet-mode
3099 (let ((commit "b3ed5057166a4f49dfa9be638523a348b55a2fd2")
3100 (revision "1"))
3101 (package
3102 (name "emacs-puppet-mode")
3103 ;; The last release, 0.3 was several years ago, and there have been many
3104 ;; commits since
3105 (version (git-version "0.3" revision commit))
3106 (source
3107 (origin
3108 (method url-fetch)
3109 (uri (string-append
3110 "https://raw.githubusercontent.com/voxpupuli/puppet-mode/"
3111 commit "/puppet-mode.el"))
3112 (sha256
3113 (base32
3114 "1indycxawsl0p2aqqg754f6735q3cmah9vd886rpn0ncc3ipi1xm"))))
3115 (build-system emacs-build-system)
3116 (home-page "https://github.com/voxpupuli/puppet-mode")
3117 (synopsis "Emacs major mode for the Puppet configuration language")
3118 (description
3119 "This package provides support for the Puppet configuration language,
3120 including syntax highlighting, indentation of expressions and statements,
3121 linting of manifests and integration with Puppet Debugger.")
3122 ;; Also incorporates work covered by the Apache License, Version 2.0
3123 (license license:gpl3+))))
3124
3125 (define-public emacs-god-mode
3126 (let ((commit "6cf0807b6555eb6fcf8387a4e3b667071ef38964")
3127 (revision "1"))
3128 (package
3129 (name "emacs-god-mode")
3130 (version (string-append "20151005.925."
3131 revision "-" (string-take commit 9)))
3132 (source
3133 (origin
3134 (method git-fetch)
3135 (uri (git-reference
3136 (url "https://github.com/chrisdone/god-mode.git")
3137 (commit commit)))
3138 (file-name (string-append name "-" version "-checkout"))
3139 (sha256
3140 (base32
3141 "1am415k4xxcva6y3vbvyvknzc6bma49pq3p85zmpjsdmsp18qdix"))))
3142 (build-system emacs-build-system)
3143 (home-page "https://github.com/chrisdone/god-mode")
3144 (synopsis "Minor mode for entering commands without modifier keys")
3145 (description
3146 "This package provides a global minor mode for entering Emacs commands
3147 without modifier keys. It's similar to Vim's separation of commands and
3148 insertion mode. When enabled all keys are implicitly prefixed with
3149 @samp{C-} (among other helpful shortcuts).")
3150 (license license:gpl3+))))
3151
3152 (define-public emacs-jinja2-mode
3153 (package
3154 (name "emacs-jinja2-mode")
3155 (version "0.2")
3156 (source
3157 (origin
3158 (method url-fetch)
3159 (uri (string-append "https://github.com/paradoxxxzero/jinja2-mode/"
3160 "archive/v" version ".tar.gz"))
3161 (file-name (string-append name "-" version ".tar.gz"))
3162 (sha256
3163 (base32
3164 "0cgxjab1kla2zc2fj7bzib6i7snp08zshandmp9kqcm85l262xpn"))))
3165 (build-system emacs-build-system)
3166 (home-page "https://github.com/paradoxxxzero/jinja2-mode")
3167 (synopsis "Major mode for jinja2")
3168 (description
3169 "Emacs major mode for jinja2 with: syntax highlighting,
3170 sgml/html integration, and indentation (working with sgml).")
3171 (license license:gpl3+)))
3172
3173 (define-public emacs-rfcview
3174 (package
3175 (name "emacs-rfcview")
3176 (version "0.13")
3177 (home-page "http://www.loveshack.ukfsn.org/emacs")
3178 (source (origin
3179 (method url-fetch)
3180 (uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el")
3181 (sha256
3182 (base32
3183 "0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz"))))
3184 (build-system emacs-build-system)
3185 (synopsis "Prettify Request for Comments (RFC) documents")
3186 (description "The Internet Engineering Task Force (IETF) and the Internet
3187 Society (ISOC) publish various Internet-related protocols and specifications
3188 as \"Request for Comments\" (RFC) documents and Internet Standard (STD)
3189 documents. RFCs and STDs are published in a simple text form. This package
3190 provides an Emacs major mode, rfcview-mode, which makes it more pleasant to
3191 read these documents in Emacs. It prettifies the text and adds
3192 hyperlinks/menus for easier navigation. It also provides functions for
3193 browsing the index of RFC documents and fetching them from remote servers or
3194 local directories.")
3195 (license license:gpl3+)))
3196
3197 (define-public emacs-ffap-rfc-space
3198 (package
3199 (name "emacs-ffap-rfc-space")
3200 (version "12")
3201 (home-page "http://user42.tuxfamily.org/ffap-rfc-space/index.html")
3202 (source (origin
3203 (method url-fetch)
3204 (uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el")
3205 (sha256
3206 (base32
3207 "1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck"))))
3208 (build-system emacs-build-system)
3209 (synopsis "Make ffap recognize an RFC with a space before its number")
3210 (description "The Internet Engineering Task Force (IETF) and the
3211 Internet Society (ISOC) publish various Internet-related protocols and
3212 specifications as \"Request for Comments\" (RFC) documents. The
3213 built-in Emacs module \"ffap\" (Find File at Point) has the ability to
3214 recognize names at point which look like \"RFC1234\" and \"RFC-1234\"
3215 and load the appropriate RFC from a remote server. However, it fails
3216 to recognize a name like \"RFC 1234\". This package enhances ffap so
3217 that it correctly finds RFCs even when a space appears before the
3218 number.")
3219 (license license:gpl3+)))
3220
3221 (define-public emacs-org-bullets
3222 (package
3223 (name "emacs-org-bullets")
3224 (version "0.2.4")
3225 (source
3226 (origin
3227 (method url-fetch)
3228 (uri (string-append "https://github.com/sabof/org-bullets/archive/"
3229 version ".tar.gz"))
3230 (file-name (string-append name "-" version ".tar.gz"))
3231 (sha256
3232 (base32
3233 "1dyxvpb73vj80v8br2q9rf255hfphrgaw91fbvwdcd735np9pcnh"))))
3234 (build-system emacs-build-system)
3235 (home-page "https://github.com/sabof/org-bullets")
3236 (synopsis "Show bullets in org-mode as UTF-8 characters")
3237 (description
3238 "This package provides an Emacs minor mode causing bullets in
3239 @code{org-mode} to be rendered as UTF-8 characters.")
3240 (license license:gpl3+)))
3241
3242 (define-public emacs-org-pomodoro
3243 (package
3244 (name "emacs-org-pomodoro")
3245 (version "2.1.0")
3246 (source
3247 (origin
3248 (method url-fetch)
3249 (uri (string-append
3250 "https://github.com/lolownia/org-pomodoro/archive/"
3251 version ".tar.gz"))
3252 (file-name (string-append name "-" version ".tar.gz"))
3253 (sha256
3254 (base32
3255 "1jalsggw3q5kvj353f84x4nl04a5vmq07h75ggppy1627lb31zm4"))))
3256 (build-system emacs-build-system)
3257 (propagated-inputs
3258 `(("emacs-alert" ,emacs-alert)))
3259 (home-page "https://github.com/lolownia/org-pomodoro")
3260 (synopsis "Pomodoro technique for org-mode")
3261 (description "@code{emacs-org-pomodoro} adds very basic support for
3262 Pomodoro technique in Emacs org-mode.
3263
3264 Run @code{M-x org-pomodoro} for the task at point or select one of the
3265 last tasks that you clocked time for. Each clocked-in pomodoro starts
3266 a timer of 25 minutes and after each pomodoro a break timer of 5
3267 minutes is started automatically. Every 4 breaks a long break is
3268 started with 20 minutes. All values are customizable.")
3269 (license license:gpl3+)))
3270
3271 (define-public emacs-org-trello
3272 (package
3273 (name "emacs-org-trello")
3274 (version "0.8.0")
3275 (source (origin
3276 (method url-fetch)
3277 (uri (string-append
3278 "https://github.com/org-trello/org-trello/archive/"
3279 version ".tar.gz"))
3280 (file-name (string-append name "-" version ".tar.gz"))
3281 (sha256
3282 (base32
3283 "0549mnf5cgwn8b8jbl38fljbaxmh1605sv9j8f3lsa95jhs1zpa0"))))
3284 (build-system emacs-build-system)
3285 (propagated-inputs
3286 `(("emacs-dash" ,emacs-dash)
3287 ("emacs-deferred" ,emacs-deferred)
3288 ("emacs-f" ,emacs-f)
3289 ("emacs-helm" ,emacs-helm)
3290 ("emacs-request" ,emacs-request)
3291 ("emacs-s" ,emacs-s)))
3292 (home-page "https://org-trello.github.io")
3293 (synopsis "Emacs minor mode for interacting with Trello")
3294 (description "This package provides an Emacs minor mode to extend
3295 @code{org-mode} with Trello abilities. Trello is an online project
3296 organizer.")
3297 (license license:gpl3+)))
3298
3299 (define-public emacs-atom-one-dark-theme
3300 (let ((commit "1f1185bf667a38d3d0d180ce85fd4c131818aae2")
3301 (revision "0"))
3302 (package
3303 (name "emacs-atom-one-dark-theme")
3304 (version (git-version "0.4.0" revision commit))
3305 (source (origin
3306 (method git-fetch)
3307 (uri (git-reference
3308 (url "https://github.com/jonathanchu/atom-one-dark-theme.git")
3309 (commit commit)))
3310 (sha256
3311 (base32
3312 "1alma16hg3mfjly8a9s3mrswkjjx4lrpdnf43869hn2ibkn7zx9z"))
3313 (file-name (git-file-name name version))))
3314 (build-system emacs-build-system)
3315 (home-page "https://github.com/jonathanchu/atom-one-dark-theme")
3316 (synopsis "Atom One Dark color theme for Emacs")
3317 (description "An Emacs port of the Atom One Dark theme from Atom.io.")
3318 (license license:gpl3+))))
3319
3320 (define-public emacs-zenburn-theme
3321 (package
3322 (name "emacs-zenburn-theme")
3323 (version "2.5")
3324 (source (origin
3325 (method url-fetch)
3326 (uri (string-append
3327 "https://github.com/bbatsov/zenburn-emacs/archive/v"
3328 version ".tar.gz"))
3329 (file-name (string-append name "-" version ".tar.gz"))
3330 (sha256
3331 (base32
3332 "03kfhzgbbbl8ivpzzky6qxw4j9mmp452m1sk7wikxmcalfnix0gn"))))
3333 (build-system emacs-build-system)
3334 (home-page "https://github.com/bbatsov/zenburn-emacs")
3335 (synopsis "Low contrast color theme for Emacs")
3336 (description
3337 "Zenburn theme is a port of the popular Vim Zenburn theme for Emacs.
3338 It is built on top of the custom theme support in Emacs 24 or later.")
3339 (license license:gpl3+)))
3340
3341 (define-public emacs-solarized-theme
3342 (package
3343 (name "emacs-solarized-theme")
3344 (version "1.2.2")
3345 (source (origin
3346 (method url-fetch)
3347 (uri (string-append "https://github.com/bbatsov/solarized-emacs/"
3348 "archive/v" version ".tar.gz"))
3349 (file-name (string-append name "-" version ".tar.gz"))
3350 (sha256
3351 (base32
3352 "1ha3slc6d9wi9ilkhmwrzkvf308n6ph7b0k69pk369s9304awxzx"))))
3353 (build-system emacs-build-system)
3354 (propagated-inputs
3355 `(("emacs-dash" ,emacs-dash)))
3356 (home-page "https://github.com/bbatsov/solarized-emacs")
3357 (synopsis "Port of the Solarized theme for Emacs")
3358 (description
3359 "Solarized for Emacs is a port of the Solarized theme for Vim. This
3360 package provides a light and a dark variant.")
3361 (license license:gpl3+)))
3362
3363 (define-public emacs-ahungry-theme
3364 (package
3365 (name "emacs-ahungry-theme")
3366 (version "1.10.0")
3367 (source
3368 (origin (method url-fetch)
3369 (uri (string-append "https://elpa.gnu.org/packages/ahungry-theme-"
3370 version ".tar"))
3371 (sha256
3372 (base32
3373 "14q5yw56n82qph09bk7wmj5b1snhh9w0nk5s1l7yn9ldg71xq6pm"))))
3374 (build-system emacs-build-system)
3375 (home-page "https://github.com/ahungry/color-theme-ahungry")
3376 (synopsis "Ahungry color theme for Emacs")
3377 (description "Ahungry theme for Emacs provides bright and bold colors.
3378 If you load it from a terminal, you will be able to make use of the
3379 transparent background. If you load it from a GUI, it will default to a
3380 dark background.")
3381 (license license:gpl3+)))
3382
3383 (define-public emacs-2048-game
3384 (package
3385 (name "emacs-2048-game")
3386 (version "20151026.1233")
3387 (source
3388 (origin
3389 (method url-fetch)
3390 (uri (string-append "https://melpa.org/packages/2048-game-"
3391 version ".el"))
3392 (sha256
3393 (base32
3394 "0gy2pvz79whpavp4jmz8h9krzn7brmvv3diixi1d4w51pcdvaldd"))))
3395 (build-system emacs-build-system)
3396 (home-page "https://bitbucket.org/zck/2048.el")
3397 (synopsis "Implementation of the game 2048 in Emacs Lisp")
3398 (description
3399 "This program is an implementation of 2048 for Emacs.
3400 The goal of this game is to create a tile with value 2048. The size of the
3401 board and goal value can be customized.")
3402 (license license:gpl3+)))
3403
3404 (define-public emacs-base16-theme
3405 (package
3406 (name "emacs-base16-theme")
3407 (version "2.1")
3408 (source
3409 (origin
3410 (method url-fetch)
3411 (uri (string-append "https://stable.melpa.org/packages/base16-theme-"
3412 version ".tar"))
3413 (sha256
3414 (base32
3415 "0z6hrwz2jlz6jbr381rcqcqvx6hss5cad352klx07rark7zccacj"))))
3416 (build-system emacs-build-system)
3417 (home-page "https://github.com/belak/base16-emacs")
3418 (synopsis "Base16 color themes for Emacs")
3419 (description
3420 "Base16 provides carefully chosen syntax highlighting and a default set
3421 of sixteen colors suitable for a wide range of applications. Base16 is not a
3422 single theme but a set of guidelines with numerous implementations.")
3423 (license license:expat)))
3424
3425 (define-public emacs-smartparens
3426 (package
3427 (name "emacs-smartparens")
3428 (version "1.11.0")
3429 (source (origin
3430 (method url-fetch)
3431 (uri (string-append
3432 "https://github.com/Fuco1/smartparens/archive/"
3433 version ".tar.gz"))
3434 (file-name (string-append name "-" version ".tar.gz"))
3435 (sha256
3436 (base32
3437 "0q5as813xs8y29i3v2rm97phd6m7xsmmw6hwbvx57gwmi8i1c409"))))
3438 (build-system emacs-build-system)
3439 (propagated-inputs
3440 `(("emacs-dash" ,emacs-dash)
3441 ("emacs-markdown-mode" ,emacs-markdown-mode)))
3442 (home-page "https://github.com/Fuco1/smartparens")
3443 (synopsis "Paredit-like insertion, wrapping and navigation with user
3444 defined pairs")
3445 (description
3446 "Smartparens is a minor mode for Emacs that deals with parens pairs
3447 and tries to be smart about it. It started as a unification effort to
3448 combine functionality of several existing packages in a single,
3449 compatible and extensible way to deal with parentheses, delimiters, tags
3450 and the like. Some of these packages include autopair, textmate,
3451 wrap-region, electric-pair-mode, paredit and others. With the basic
3452 features found in other packages it also brings many improvements as
3453 well as completely new features.")
3454 (license license:gpl3+)))
3455
3456 (define-public emacs-highlight-symbol
3457 (package
3458 (name "emacs-highlight-symbol")
3459 (version "1.3")
3460 (source (origin
3461 (method url-fetch)
3462 (uri (string-append
3463 "https://github.com/nschum/highlight-symbol.el/archive/"
3464 version ".tar.gz"))
3465 (file-name (string-append name "-" version ".tar.gz"))
3466 (sha256
3467 (base32
3468 "1n7k1qns0fn0jsyc0hrjac5nzk21xw48yc30vyrhwvc51h0b9g90"))))
3469 (build-system emacs-build-system)
3470 (home-page "https://nschum.de/src/emacs/highlight-symbol")
3471 (synopsis "Automatic and manual symbol highlighting for Emacs")
3472 (description
3473 "Use @code{highlight-symbol} to toggle highlighting of the symbol at
3474 point throughout the current buffer. Use @code{highlight-symbol-mode} to keep
3475 the symbol at point highlighted.
3476
3477 The functions @code{highlight-symbol-next}, @code{highlight-symbol-prev},
3478 @code{highlight-symbol-next-in-defun} and
3479 @code{highlight-symbol-prev-in-defun} allow for cycling through the locations
3480 of any symbol at point. Use @code{highlight-symbol-nav-mode} to enable key
3481 bindings @code{M-p} and @code{M-p} for navigation. When
3482 @code{highlight-symbol-on-navigation-p} is set, highlighting is triggered
3483 regardless of @code{highlight-symbol-idle-delay}.
3484
3485 @code{highlight-symbol-query-replace} can be used to replace the symbol. ")
3486 (license license:gpl2+)))
3487
3488 (define-public emacs-hl-todo
3489 (package
3490 (name "emacs-hl-todo")
3491 (version "1.9.0")
3492 (source (origin
3493 (method url-fetch)
3494 (uri (string-append
3495 "https://raw.githubusercontent.com/tarsius/hl-todo/"
3496 version "/hl-todo.el"))
3497 (file-name (string-append "hl-todo-" version ".el"))
3498 (sha256
3499 (base32
3500 "0728givzh7xv5i88ac9if8byj1p8bilrj1fnizca10s0rv100hdr"))))
3501 (build-system emacs-build-system)
3502 (home-page "https://github.com/tarsius/hl-todo")
3503 (synopsis "Emacs mode to highlight TODO and similar keywords")
3504 (description
3505 "This package provides an Emacs mode to highlight TODO and similar
3506 keywords in comments and strings. This package also provides commands for
3507 moving to the next or previous keyword and to invoke @code{occur} with a
3508 regexp that matches all known keywords.")
3509 (license license:gpl3+)))
3510
3511 (define-public emacs-perspective
3512 (package
3513 (name "emacs-perspective")
3514 (version "1.12")
3515 (source
3516 (origin
3517 (method url-fetch)
3518 (uri (string-append "https://github.com/nex3/perspective-el/"
3519 "archive/" version ".tar.gz"))
3520 (file-name (string-append name "-" version ".tar.gz"))
3521 (sha256
3522 (base32
3523 "078ahh0kmhdylq5ib9c81c76kz1n02xwc83pm729d00i84ibviic"))))
3524 (build-system emacs-build-system)
3525 (home-page "https://github.com/nex3/perspective-el")
3526 (synopsis "Switch between named \"perspectives\"")
3527 (description
3528 "This package provides tagged workspaces in Emacs, similar to workspaces in
3529 windows managers such as Awesome and XMonad. @code{perspective.el} provides
3530 multiple workspaces (or \"perspectives\") for each Emacs frame. Each
3531 perspective is composed of a window configuration and a set of buffers.
3532 Switching to a perspective activates its window configuration, and when in a
3533 perspective only its buffers are available by default.")
3534 ;; This package is released under the same license as Emacs (GPLv3+) or
3535 ;; the Expat license.
3536 (license license:gpl3+)))
3537
3538 (define-public emacs-test-simple
3539 (package
3540 (name "emacs-test-simple")
3541 (version "1.3.0")
3542 (source
3543 (origin
3544 (method url-fetch)
3545 (uri (string-append "https://elpa.gnu.org/packages/test-simple-"
3546 version ".el"))
3547 (sha256
3548 (base32
3549 "1yd61jc9ds95a5n09052kwc5gasy57g4lxr0jsff040brlyi9czz"))))
3550 (build-system emacs-build-system)
3551 (home-page "https://github.com/rocky/emacs-test-simple")
3552 (synopsis "Simple unit test framework for Emacs Lisp")
3553 (description
3554 "Test Simple is a simple unit test framework for Emacs Lisp. It
3555 alleviates the need for context macros, enclosing specifications or required
3556 test tags. It supports both interactive and non-interactive use.")
3557 (license license:gpl3+)))
3558
3559 (define-public emacs-load-relative
3560 (package
3561 (name "emacs-load-relative")
3562 (version "1.3")
3563 (source
3564 (origin
3565 (method url-fetch)
3566 (uri (string-append "https://elpa.gnu.org/packages/load-relative-"
3567 version ".el"))
3568 (sha256
3569 (base32
3570 "1hfxb2436jdsi9wfmsv47lkkpa5galjf5q81bqabbsv79rv59dps"))))
3571 (build-system emacs-build-system)
3572 (home-page "http://github.com/rocky/emacs-load-relative")
3573 (synopsis "Emacs Lisp relative file loading related functions")
3574 (description
3575 "Provides functions which facilitate writing multi-file Emacs packages
3576 and running from the source tree without having to \"install\" code or fiddle
3577 with @{load-path}.
3578
3579 The main function, @code{load-relative}, loads an Emacs Lisp file relative to
3580 another (presumably currently running) Emacs Lisp file.")
3581 (license license:gpl3+)))
3582
3583 (define-public emacs-loc-changes
3584 (package
3585 (name "emacs-loc-changes")
3586 (version "1.2")
3587 (source
3588 (origin
3589 (method url-fetch)
3590 (uri (string-append "https://elpa.gnu.org/packages/loc-changes-"
3591 version ".el"))
3592 (sha256
3593 (base32
3594 "1x8fn8vqasayf1rb8a6nma9n6nbvkx60krmiahyb05vl5rrsw6r3"))))
3595 (build-system emacs-build-system)
3596 (home-page "https://github.com/rocky/emacs-loc-changes")
3597 (synopsis "Keeps track of positions even after buffer changes")
3598 (description
3599 "This Emacs package provides a mean to track important buffer positions
3600 after buffer changes.")
3601 (license license:gpl3+)))
3602
3603 (define-public emacs-realgud
3604 (package
3605 (name "emacs-realgud")
3606 (version "1.4.5")
3607 (source
3608 (origin
3609 (method url-fetch)
3610 (uri (string-append "https://elpa.gnu.org/packages/realgud-"
3611 version ".tar"))
3612 (sha256
3613 (base32
3614 "108wgxg7fb4byaiasgvbxv2hq7b00biq9f0mh9hy6vw4160y5w24"))))
3615 (build-system emacs-build-system)
3616 (arguments
3617 `(#:tests? #t
3618 #:phases
3619 (modify-phases %standard-phases
3620 (add-after 'set-emacs-load-path 'fix-autogen-script
3621 (lambda _
3622 (substitute* "autogen.sh"
3623 (("./configure") "sh configure"))))
3624 (add-after 'fix-autogen-script 'autogen
3625 (lambda _
3626 (setenv "CONFIG_SHELL" "sh")
3627 (invoke "sh" "autogen.sh")))
3628 (add-after 'fix-autogen-script 'set-home
3629 (lambda _
3630 (setenv "HOME" (getenv "TMPDIR"))))
3631 (add-before 'patch-el-files 'remove-realgud-pkg.el
3632 (lambda _
3633 ;; XXX: This file is auto-generated at some point and causes
3634 ;; substitute* to crash during the `patch-el-files' phase with:
3635 ;; ERROR: In procedure stat: No such file or directory:
3636 ;; "./realgud-pkg.el"
3637 (delete-file "./realgud-pkg.el")
3638 ;; FIXME: `patch-el-files' crashes on this file with error:
3639 ;; unable to locate "bashdb".
3640 (delete-file "./test/test-regexp-bashdb.el"))))
3641 #:include (cons* ".*\\.el$" %default-include)))
3642 (native-inputs
3643 `(("autoconf" ,autoconf)
3644 ("automake" ,automake)
3645 ("emacs-test-simple" ,emacs-test-simple)))
3646 (propagated-inputs
3647 `(("emacs-load-relative" ,emacs-load-relative)
3648 ("emacs-loc-changes" ,emacs-loc-changes)))
3649 (home-page "https://github.com/realgud/realgud/")
3650 (synopsis
3651 "Modular front-end for interacting with external debuggers")
3652 (description
3653 "RealGUD is a modular, extensible GNU Emacs front-end for interacting
3654 with external debuggers. It integrates various debuggers such as gdb, pdb,
3655 ipdb, jdb, lldb, bashdb, zshdb, etc. and allows to visually step code in the
3656 sources. Unlike GUD, it also supports running multiple debug sessions in
3657 parallel.")
3658 (license license:gpl3+)))
3659
3660 (define-public emacs-request
3661 (package
3662 (name "emacs-request")
3663 (version "0.3.0")
3664 (source (origin
3665 (method git-fetch)
3666 (uri (git-reference
3667 (url "https://github.com/tkf/emacs-request.git")
3668 (commit (string-append "v" version))))
3669 (file-name (string-append name "-" version "-checkout"))
3670 (sha256
3671 (base32
3672 "0wyxqbb35yqf6ci47531lk32d6fppamx9d8826kdz983vm87him7"))))
3673 (build-system emacs-build-system)
3674 (propagated-inputs
3675 `(("emacs-deferred" ,emacs-deferred)))
3676 (home-page "https://github.com/tkf/emacs-request")
3677 (synopsis "Package for speaking HTTP in Emacs Lisp")
3678 (description "This package provides a HTTP request library with multiple
3679 backends. It supports url.el which is shipped with Emacs and the curl command
3680 line program.")
3681 (license license:gpl3+)))
3682
3683 (define-public emacs-rudel
3684 (package
3685 (name "emacs-rudel")
3686 (version "0.3.1")
3687 (source
3688 (origin
3689 (method url-fetch)
3690 (uri (string-append "http://elpa.gnu.org/packages/rudel-"
3691 version ".tar"))
3692 (sha256
3693 (base32
3694 "0glqa68g509p0s2vcc0i8kzlddnc9brd9jqhnm5rzxz4i050cvnz"))))
3695 (build-system emacs-build-system)
3696 (home-page "http://rudel.sourceforge.net/")
3697 (synopsis "Collaborative editing framework")
3698 (description
3699 "Rudel is a collaborative editing environment for GNU Emacs. Its purpose
3700 is to share buffers with other users in order to edit the contents of those
3701 buffers collaboratively. Rudel supports multiple backends to enable
3702 communication with other collaborative editors using different protocols,
3703 though currently Obby (for use with the Gobby editor) is the only
3704 fully-functional one.")
3705 (license license:gpl3+)))
3706
3707 (define-public emacs-hydra
3708 (package
3709 (name "emacs-hydra")
3710 (version "0.14.0")
3711 (source
3712 (origin
3713 (method url-fetch)
3714 (uri (string-append "https://github.com/abo-abo/hydra/archive/"
3715 version ".tar.gz"))
3716 (file-name (string-append name "-" version ".tar.gz"))
3717 (sha256
3718 (base32
3719 "0884k3ffwzhh6krbd8l7vvm184dkagb2jf4q8xzg72plln34qrm8"))))
3720 (build-system emacs-build-system)
3721 (home-page "https://github.com/abo-abo/hydra")
3722 (synopsis "Make Emacs bindings that stick around")
3723 (description
3724 "This package can be used to tie related commands into a family of short
3725 bindings with a common prefix---a Hydra. Once you summon the Hydra (through
3726 the prefixed binding), all the heads can be called in succession with only a
3727 short extension. Any binding that isn't the Hydra's head vanquishes the
3728 Hydra. Note that the final binding, besides vanquishing the Hydra, will still
3729 serve its original purpose, calling the command assigned to it. This makes
3730 the Hydra very seamless; it's like a minor mode that disables itself
3731 automatically.")
3732 (license license:gpl3+)))
3733
3734 (define-public emacs-ivy
3735 (package
3736 (name "emacs-ivy")
3737 (version "0.10.0")
3738 (source
3739 (origin
3740 (method git-fetch)
3741 (uri (git-reference
3742 (url "https://github.com/abo-abo/swiper.git")
3743 (commit version)))
3744 (file-name (string-append name "-" version "-checkout"))
3745 (sha256
3746 (base32
3747 "14vnigqb5c3yi4q9ysw1fiwdqyqwyklqpb9wnjf81chm7s2mshnr"))))
3748 (build-system emacs-build-system)
3749 (arguments
3750 `(#:phases
3751 (modify-phases %standard-phases
3752 (add-after 'install 'install-doc
3753 (lambda* (#:key outputs #:allow-other-keys)
3754 (let* ((out (assoc-ref outputs "out"))
3755 (info (string-append out "/share/info")))
3756 (with-directory-excursion "doc"
3757 (invoke "makeinfo" "ivy.texi")
3758 (install-file "ivy.info" info)
3759 #t)))))))
3760 (propagated-inputs
3761 `(("emacs-hydra" ,emacs-hydra)))
3762 (native-inputs
3763 `(("texinfo" ,texinfo)))
3764 (home-page "http://oremacs.com/swiper/")
3765 (synopsis "Incremental vertical completion for Emacs")
3766 (description
3767 "This package provides @code{ivy-read} as an alternative to
3768 @code{completing-read} and similar functions. No attempt is made to determine
3769 the best candidate. Instead, the user can navigate candidates with
3770 @code{ivy-next-line} and @code{ivy-previous-line}. The matching is done by
3771 splitting the input text by spaces and re-building it into a regular
3772 expression.")
3773 (license license:gpl3+)))
3774
3775 (define-public emacs-ivy-yasnippet
3776 (let ((commit "59b32cf8cfb63df906822a17f6f5e8545dac38d4"))
3777 (package
3778 (name "emacs-ivy-yasnippet")
3779 (version (git-version "0.1" "1" commit))
3780 (source
3781 (origin
3782 (method git-fetch)
3783 (uri (git-reference
3784 (url "https://github.com/mkcms/ivy-yasnippet.git")
3785 (commit commit)))
3786 (file-name (git-file-name name version))
3787 (sha256
3788 (base32
3789 "0hghdlxkfwrglvc1nql2ikgp6jj0qdbfwc3yvpb19mrf26hwgp13"))))
3790 (build-system emacs-build-system)
3791 (propagated-inputs
3792 `(("emacs-ivy" ,emacs-ivy)
3793 ("emacs-yasnippet" ,emacs-yasnippet)
3794 ("emacs-dash" ,emacs-dash)))
3795 (home-page "https://github.com/mkcms/ivy-yasnippet")
3796 (synopsis "Preview @code{yasnippets} with @code{ivy}")
3797 (description "This package allows you to select @code{yasnippet}
3798 snippets using @code{ivy} completion. When current selection changes in the
3799 minibuffer, the snippet contents are temporarily expanded in the buffer. To
3800 use it, call @code{M-x ivy-yasnippet} (but make sure you have enabled
3801 @code{yas-minor-mode} first).")
3802 (license license:gpl3+))))
3803
3804 (define-public emacs-avy
3805 (package
3806 (name "emacs-avy")
3807 (version "0.4.0")
3808 (source
3809 (origin
3810 (method url-fetch)
3811 (uri (string-append "https://github.com/abo-abo/avy/archive/"
3812 version ".tar.gz"))
3813 (file-name (string-append name "-" version ".tar.gz"))
3814 (sha256
3815 (base32
3816 "1wdrq512h25ymzjbf2kbsdymvd2ryfwzb6bh5bc3yv7q203im796"))))
3817 (build-system emacs-build-system)
3818 (home-page "https://github.com/abo-abo/avy")
3819 (synopsis "Tree-based completion for Emacs")
3820 (description
3821 "This package provides a generic completion method based on building a
3822 balanced decision tree with each candidate being a leaf. To traverse the tree
3823 from the root to a desired leaf, typically a sequence of @code{read-key} can
3824 be used.
3825
3826 In order for @code{read-key} to make sense, the tree needs to be visualized
3827 appropriately, with a character at each branch node. So this completion
3828 method works only for things that you can see on your screen, all at once,
3829 such as the positions of characters, words, line beginnings, links, or
3830 windows.")
3831 (license license:gpl3+)))
3832
3833 (define-public emacs-ace-window
3834 (package
3835 (name "emacs-ace-window")
3836 (version "0.9.0")
3837 (source
3838 (origin
3839 (method url-fetch)
3840 (uri (string-append "https://github.com/abo-abo/ace-window/archive/"
3841 version ".tar.gz"))
3842 (file-name (string-append name "-" version ".tar.gz"))
3843 (sha256
3844 (base32
3845 "1p2sgfl5dml4zbd6ldql6lm2m9vmd236ah996ni32x254s48j5pn"))))
3846 (build-system emacs-build-system)
3847 (propagated-inputs
3848 `(("emacs-avy" ,emacs-avy)))
3849 (home-page "https://github.com/abo-abo/ace-window")
3850 (synopsis "Quickly switch windows in Emacs")
3851 (description
3852 "@code{ace-window} is meant to replace @code{other-window}.
3853 In fact, when there are only two windows present, @code{other-window} is
3854 called. If there are more, each window will have its first character
3855 highlighted. Pressing that character will switch to that window.")
3856 (license license:gpl3+)))
3857
3858 (define-public emacs-iedit
3859 (package
3860 (name "emacs-iedit")
3861 (version "0.9.9.9")
3862 (source
3863 (origin
3864 (method url-fetch)
3865 (uri (string-append "https://github.com/victorhge/iedit/archive/v"
3866 version ".tar.gz"))
3867 (file-name (string-append name "-" version ".tar.gz"))
3868 (sha256
3869 (base32
3870 "1hv8q6pr85ss9g3158l1fqv3m62vsq8rslsi86jicr2dcxyascr0"))))
3871 (build-system emacs-build-system)
3872 (home-page "http://www.emacswiki.org/emacs/Iedit")
3873 (synopsis "Edit multiple regions in the same way simultaneously")
3874 (description
3875 "This package is an Emacs minor mode and allows you to edit one
3876 occurrence of some text in a buffer (possibly narrowed) or region, and
3877 simultaneously have other occurrences edited in the same way.
3878
3879 You can also use Iedit mode as a quick way to temporarily show only the buffer
3880 lines that match the current text being edited. This gives you the effect of
3881 a temporary @code{keep-lines} or @code{occur}.")
3882 (license license:gpl3+)))
3883
3884 (define-public emacs-zoutline
3885 (let ((commit "b3ee0f0e0b916838c2d2c249beba74ffdb8d5699")
3886 (revision "0"))
3887 (package
3888 (name "emacs-zoutline")
3889 (version (git-version "0.1" revision commit))
3890 (home-page "https://github.com/abo-abo/zoutline")
3891 (source (origin
3892 (method git-fetch)
3893 (uri (git-reference (url home-page) (commit commit)))
3894 (sha256
3895 (base32
3896 "0sd0017piw0dis6dhpq5dkqd3acisxqgipl7dj8gmc1vnswhdwr8"))
3897 (file-name (git-file-name name version))))
3898 (build-system emacs-build-system)
3899 (synopsis "Simple outline library")
3900 (description
3901 "This library provides helpers for outlines. Outlines allow users to
3902 navigate code in a tree-like fashion.")
3903 (license license:gpl3+))))
3904
3905 (define-public emacs-lispy
3906 ;; Release 0.26.0 was almost 3 years ago, and there have been ~772 commits
3907 ;; since.
3908 (let ((commit "c2a358a7a15fcf056a5b7461a8e690b481b03b80")
3909 (revision "0"))
3910 (package
3911 (name "emacs-lispy")
3912 (version (git-version "0.26.0" revision commit))
3913 (home-page "https://github.com/abo-abo/lispy")
3914 (source (origin
3915 (method git-fetch)
3916 (uri (git-reference (url home-page) (commit commit)))
3917 (sha256
3918 (base32
3919 "1g6756qqx2n4cx8jac6mlwayilsiyc5rz8nrqjnywvzc75xdinjd"))
3920 (file-name (git-file-name name version))))
3921 (build-system emacs-build-system)
3922 (propagated-inputs
3923 `(("emacs-ace-window" ,emacs-ace-window)
3924 ("emacs-iedit" ,emacs-iedit)
3925 ("emacs-ivy" ,emacs-ivy)
3926 ("emacs-hydra" ,emacs-hydra)
3927 ("emacs-zoutline" ,emacs-zoutline)))
3928 (synopsis "Modal S-expression editing")
3929 (description
3930 "Due to the structure of Lisp syntax it's very rare for the programmer
3931 to want to insert characters right before \"(\" or right after \")\". Thus
3932 unprefixed printable characters can be used to call commands when the point is
3933 at one of these special locations. Lispy provides unprefixed keybindings for
3934 S-expression editing when point is at the beginning or end of an
3935 S-expression.")
3936 (license license:gpl3+))))
3937
3938 (define-public emacs-lispyville
3939 ;; Later versions need a more recent Evil, with an evil-define-key*
3940 ;; supporting nil for the state.
3941 (let ((commit "b4291857ed6a49a67c4ea77522889ce51fb171ab")
3942 (revision "0"))
3943 (package
3944 (name "emacs-lispyville")
3945 (version (git-version "0.1" revision commit))
3946 (home-page "https://github.com/noctuid/lispyville")
3947 (source (origin
3948 (method git-fetch)
3949 (uri (git-reference (url home-page) (commit commit)))
3950 (sha256
3951 (base32
3952 "095zibzc3naknahdrnb59g9rbljy8wz9rkc7rf8avb3wxlwvxhm3"))
3953 (file-name (git-file-name name version))))
3954 (propagated-inputs
3955 `(("emacs-evil" ,emacs-evil)
3956 ("emacs-lispy" ,emacs-lispy)))
3957 (build-system emacs-build-system)
3958 (synopsis "Minor mode for integrating Evil with lispy")
3959 (description
3960 "LispyVille's main purpose is to provide a Lisp editing environment
3961 suited towards Evil users. It can serve as a minimal layer on top of lispy
3962 for better integration with Evil, but it does not require the use of lispy’s
3963 keybinding style. The provided commands allow for editing Lisp in normal
3964 state and will work even without lispy being enabled.")
3965 (license license:gpl3+))))
3966
3967 (define-public emacs-clojure-mode
3968 (package
3969 (name "emacs-clojure-mode")
3970 (version "5.6.1")
3971 (source (origin
3972 (method url-fetch)
3973 (uri (string-append
3974 "https://github.com/clojure-emacs/clojure-mode/archive/"
3975 version ".tar.gz"))
3976 (file-name (string-append name "-" version ".tar.gz"))
3977 (sha256
3978 (base32
3979 "1f4k1hncy5ygh4izn7mqfp744nnisrp9ywn2njknbjxx34ai1q88"))))
3980 (build-system emacs-build-system)
3981 (native-inputs
3982 `(("emacs-dash" ,emacs-dash)
3983 ("emacs-s" ,emacs-s)
3984 ("ert-runner" ,ert-runner)))
3985 (arguments
3986 `(#:tests? #t
3987 #:test-command '("ert-runner")))
3988 (home-page "https://github.com/clojure-emacs/clojure-mode")
3989 (synopsis "Major mode for Clojure code")
3990 (description
3991 "This Emacs package provides font-lock, indentation, navigation and basic
3992 refactoring for the @uref{http://clojure.org, Clojure programming language}.
3993 It is recommended to use @code{clojure-mode} with paredit or smartparens.")
3994 (license license:gpl3+)))
3995
3996 (define-public emacs-epl
3997 (package
3998 (name "emacs-epl")
3999 (version "0.8")
4000 (source (origin
4001 (method url-fetch)
4002 (uri (string-append
4003 "https://github.com/cask/epl/archive/"
4004 version ".tar.gz"))
4005 (file-name (string-append name "-" version ".tar.gz"))
4006 (sha256
4007 (base32
4008 "1511n3a3f5gvaf2b4nh018by61ciyzi3y3603fzqma7p9hrckarc"))))
4009 (build-system emacs-build-system)
4010 (home-page "https://github.com/cask/epl")
4011 (synopsis "Emacs Package Library")
4012 (description
4013 "A package management library for Emacs, based on @code{package.el}.
4014
4015 The purpose of this library is to wrap all the quirks and hassle of
4016 @code{package.el} into a sane API.")
4017 (license license:gpl3+)))
4018
4019 (define-public emacs-queue
4020 (package
4021 (name "emacs-queue")
4022 (version "0.2")
4023 (source (origin
4024 (method url-fetch)
4025 (uri (string-append "https://elpa.gnu.org/packages/queue-"
4026 version ".el"))
4027 (sha256
4028 (base32
4029 "0cx2848sqnnkkr4zisvqadzxngjyhmb36mh0q3if7q19yjjhmrkb"))))
4030 (build-system emacs-build-system)
4031 (home-page "http://www.dr-qubit.org/tags/computing-code-emacs.html")
4032 (synopsis "Queue data structure for Emacs")
4033 (description
4034 "This Emacs library provides queue data structure. These queues can be
4035 used both as a first-in last-out (FILO) and as a first-in first-out (FIFO)
4036 stack, i.e. elements can be added to the front or back of the queue, and can
4037 be removed from the front. This type of data structure is sometimes called an
4038 \"output-restricted deque\".")
4039 (license license:gpl3+)))
4040
4041 (define-public emacs-pkg-info
4042 (package
4043 (name "emacs-pkg-info")
4044 (version "0.6")
4045 (source (origin
4046 (method url-fetch)
4047 (uri (string-append
4048 "https://github.com/lunaryorn/pkg-info.el/archive/"
4049 version ".tar.gz"))
4050 (file-name (string-append name "-" version ".tar.gz"))
4051 (sha256
4052 (base32
4053 "1gy1jks5mmm02gg1c8gcyr4f8a9s5ggzhk56gv33b9mzjqzi5rd5"))))
4054 (build-system emacs-build-system)
4055 (propagated-inputs `(("emacs-epl" ,emacs-epl)))
4056 (home-page "https://github.com/lunaryorn/pkg-info.el")
4057 (synopsis "Information about Emacs packages")
4058 (description
4059 "This library extracts information from the installed Emacs packages.")
4060 (license license:gpl3+)))
4061
4062 (define-public emacs-spinner
4063 (package
4064 (name "emacs-spinner")
4065 (version "1.7.3")
4066 (source (origin
4067 (method url-fetch)
4068 (uri (string-append "https://elpa.gnu.org/packages/spinner-"
4069 version ".el"))
4070 (sha256
4071 (base32
4072 "19kp1mmndbmw11sgvv2ggfjl4pyf5zrsbh3871f0965pw9z8vahd"))))
4073 (build-system emacs-build-system)
4074 (home-page "https://github.com/Malabarba/spinner.el")
4075 (synopsis "Emacs mode-line spinner for operations in progress")
4076 (description
4077 "This Emacs package adds spinners and progress-bars to the mode-line for
4078 ongoing operations.")
4079 (license license:gpl3+)))
4080
4081 (define-public emacs-sparql-mode
4082 (package
4083 (name "emacs-sparql-mode")
4084 (version "2.0.1")
4085 (source (origin
4086 (method url-fetch)
4087 (uri (string-append "https://github.com/ljos/sparql-mode/archive/"
4088 "v" version ".tar.gz"))
4089 (file-name (string-append name "-" version ".tar.gz"))
4090 (sha256
4091 (base32
4092 "1s93mkllxnhy7fw616cnnc2danacdlarys0g3cn89drh0llh53cv"))))
4093 (build-system emacs-build-system)
4094 (home-page "https://github.com/ljos/sparql-mode")
4095 (synopsis "SPARQL mode for Emacs")
4096 (description "This package provides a major mode for Emacs that provides
4097 syntax highlighting for SPARQL. It also provides a way to execute queries
4098 against a SPARQL HTTP endpoint, such as is provided by Fuseki. It is also
4099 possible to query other endpoints like DBPedia.")
4100 (license license:gpl3+)))
4101
4102 (define-public emacs-better-defaults
4103 (package
4104 (name "emacs-better-defaults")
4105 (version "0.1.3")
4106 (source
4107 (origin
4108 (method url-fetch)
4109 (uri (string-append "https://github.com/technomancy/better-defaults"
4110 "/archive/" version ".tar.gz"))
4111 (file-name (string-append name "-" version ".tar.gz"))
4112 (sha256
4113 (base32
4114 "08fg4zslzlxbvyil5g4gwvwd22fh4zsgqprs5wh9hv1rgc6757m2"))))
4115 (build-system emacs-build-system)
4116 (home-page "https://github.com/technomancy/better-defaults")
4117 (synopsis "Better defaults for Emacs")
4118 (description
4119 "Better defaults attempts to address the most obvious deficiencies of the
4120 Emacs default configuration in uncontroversial ways that nearly everyone can
4121 agree upon.")
4122 (license license:gpl3+)))
4123
4124 (define-public emacs-eprime
4125 (let ((commit "17a481af26496be91c07139a9bfc05cfe722506f"))
4126 (package
4127 (name "emacs-eprime")
4128 (version (string-append "20140513-" (string-take commit 7)))
4129 (source (origin
4130 (method url-fetch)
4131 (uri (string-append "https://raw.githubusercontent.com"
4132 "/AndrewHynes/eprime-mode/"
4133 commit "/eprime-mode.el"))
4134 (file-name (string-append "eprime-" version ".el"))
4135 (sha256
4136 (base32
4137 "0v68lggkyq7kbcr9zyi573m2g2x251xy3jadlaw8kx02l8krwq8d"))))
4138 (build-system emacs-build-system)
4139 (home-page "https://github.com/AndrewHynes/eprime-mode")
4140 (synopsis "E-prime checking mode for Emacs")
4141 (description "This package provides an E-prime checking mode for Emacs
4142 that highlights non-conforming text. The subset of the English language called
4143 E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
4144 (license license:gpl3+))))
4145
4146 (define-public emacs-julia-mode
4147 ;; XXX: Upstream version remained stuck at 0.3. See
4148 ;; <https://github.com/JuliaEditorSupport/julia-emacs/issues/46>.
4149 (let ((commit "115d4dc8a07445301772da8376b232fa8c7168f4")
4150 (revision "1"))
4151 (package
4152 (name "emacs-julia-mode")
4153 (version (string-append "0.3-" revision "." (string-take commit 8)))
4154 (source
4155 (origin
4156 (method git-fetch)
4157 (uri (git-reference
4158 (url "https://github.com/JuliaEditorSupport/julia-emacs.git")
4159 (commit commit)))
4160 (file-name (string-append name "-" version "-checkout"))
4161 (sha256
4162 (base32
4163 "1is4dcv6blslpzbjcg8l2jpxi8xj96q4cm0nxjxsyswpm8bw8ki0"))))
4164 (build-system emacs-build-system)
4165 (arguments
4166 `(#:tests? #t
4167 #:test-command '("emacs" "--batch"
4168 "-l" "julia-mode-tests.el"
4169 "-f" "ert-run-tests-batch-and-exit")))
4170 (home-page "https://github.com/JuliaEditorSupport/julia-emacs")
4171 (synopsis "Major mode for Julia")
4172 (description "This Emacs package provides a mode for the Julia
4173 programming language.")
4174 (license license:expat))))
4175
4176 (define-public emacs-ess
4177 (package
4178 (name "emacs-ess")
4179 (version "17.11")
4180 (source (origin
4181 (method url-fetch)
4182 (uri (string-append "https://github.com/emacs-ess/ESS/archive/v"
4183 version ".tar.gz"))
4184 (sha256
4185 (base32
4186 "0cbilbsiwvcyf6d5y24mymp57m3ana5dkzab3knfs83w4a3a4c5c"))
4187 (file-name (string-append name "-" version ".tar.gz"))
4188 (modules '((guix build utils)))
4189 (snippet
4190 '(begin
4191 ;; Stop ESS from trying to bundle an external julia-mode.el.
4192 (substitute* "lisp/Makefile"
4193 (("^\tjulia-mode.elc\\\\\n") "")
4194 (("^dist: all julia-mode.el")
4195 "dist: all"))
4196 ;; No need to build docs in so many formats. Also, skipping
4197 ;; pdf lets us not pull in texlive.
4198 (substitute* "doc/Makefile"
4199 (("all : info text html pdf")
4200 "all : info")
4201 (("install: install-info install-other-docs")
4202 "install: install-info"))
4203 ;; Test fails upstream
4204 (substitute* "test/ess-r-tests.el"
4205 (("ert-deftest ess-r-namespaced-eval-no-srcref-in-errors ()")
4206 "ert-deftest ess-r-namespaced-eval-no-srcref-in-errors () :expected-result :failed"))
4207 #t))))
4208 (build-system gnu-build-system)
4209 (arguments
4210 (let ((base-directory "/share/emacs/site-lisp/guix.d/ess"))
4211 `(#:make-flags (list (string-append "PREFIX=" %output)
4212 (string-append "ETCDIR=" %output "/"
4213 ,base-directory "/etc")
4214 (string-append "LISPDIR=" %output "/"
4215 ,base-directory))
4216 #:phases
4217 (modify-phases %standard-phases
4218 (delete 'configure)
4219 (add-before 'build 'more-shebang-patching
4220 (lambda* (#:key inputs #:allow-other-keys)
4221 (substitute* "Makeconf"
4222 (("SHELL = /bin/sh")
4223 (string-append "SHELL = " (which "sh"))))
4224 #t))
4225 (replace 'check
4226 (lambda _
4227 (invoke "make" "test")))))))
4228 (inputs
4229 `(("emacs" ,emacs-minimal)
4230 ("r-minimal" ,r-minimal)))
4231 (native-inputs
4232 `(("perl" ,perl)
4233 ("texinfo" ,texinfo)))
4234 (propagated-inputs
4235 `(("emacs-julia-mode" ,emacs-julia-mode)))
4236 (home-page "https://ess.r-project.org/")
4237 (synopsis "Emacs mode for statistical analysis programs")
4238 (description "Emacs Speaks Statistics (ESS) is an add-on package for GNU
4239 Emacs. It is designed to support editing of scripts and interaction with
4240 various statistical analysis programs such as R, Julia, and JAGS.")
4241 (license license:gpl2+)))
4242
4243 (define-public emacs-smex
4244 (package
4245 (name "emacs-smex")
4246 (version "3.0")
4247 (source (origin
4248 (method url-fetch)
4249 (uri (string-append "https://raw.githubusercontent.com"
4250 "/nonsequitur/smex/" version "/smex.el"))
4251 (file-name (string-append "smex-" version ".el"))
4252 (sha256
4253 (base32
4254 "0ar310zx9k5y4i1vl2rawvi712xj9gx77160860jbs691p77cxqp"))))
4255 (build-system emacs-build-system)
4256 (home-page "https://github.com/nonsequitur/smex/")
4257 (synopsis "M-x interface with Ido-style fuzzy matching")
4258 (description
4259 "Smex is a M-x enhancement for Emacs. Built on top of Ido, it provides a
4260 convenient interface to your recently and most frequently used commands. And
4261 to all the other commands, too.")
4262 (license license:gpl3+)))
4263
4264 (define-public emacs-js2-mode
4265 (package
4266 (name "emacs-js2-mode")
4267 (version "20150909")
4268 (source (origin
4269 (method url-fetch)
4270 (uri (string-append "https://github.com/mooz/js2-mode/archive/"
4271 version ".tar.gz"))
4272 (file-name (string-append name "-" version ".tar.gz"))
4273 (sha256
4274 (base32
4275 "1nsm36c4kwb473p13i58fgrnlk8fbn3rdhj47d9xz70az4ra44q0"))))
4276 (build-system emacs-build-system)
4277 (home-page "https://github.com/mooz/js2-mode/")
4278 (synopsis "Improved JavaScript editing mode for Emacs")
4279 (description
4280 "Js2-mode provides a JavaScript major mode for Emacs that is more
4281 advanced than the built-in javascript-mode. Features include accurate syntax
4282 highlighting using a recursive-descent parser, on-the-fly reporting of syntax
4283 errors and strict-mode warnings, smart line-wrapping within comments and
4284 strings, and code folding.")
4285 (license license:gpl3+)))
4286
4287 (define-public emacs-nodejs-repl
4288 (package
4289 (name "emacs-nodejs-repl")
4290 (version "0.1.6")
4291 (source (origin
4292 (method url-fetch)
4293 (uri (string-append "https://github.com/abicky/nodejs-repl.el"
4294 "/archive/" version ".tar.gz"))
4295 (sha256
4296 (base32
4297 "0sphg1jxi3a5l0gqdp27d0qgyjaiq2p293av9zm8ksm0vwqp3fr9"))
4298 (file-name (string-append name "-" version ".tar.gz"))))
4299 (build-system emacs-build-system)
4300 (home-page "https://github.com/abicky/nodejs-repl.el")
4301 (synopsis "Node.js REPL inside Emacs")
4302 (description
4303 "This program is derived from comint-mode and provides the following
4304 features:
4305
4306 @itemize
4307 @item TAB completion same as Node.js REPL
4308 @item file name completion in string
4309 @item incremental history search
4310 @end itemize")
4311 (license license:gpl3+)))
4312
4313 (define-public emacs-typescript-mode
4314 (package
4315 (name "emacs-typescript-mode")
4316 (version "0.3")
4317 (source (origin
4318 (method url-fetch)
4319 (uri (string-append
4320 "https://github.com/ananthakumaran/typescript.el"
4321 "/archive/v" version ".tar.gz"))
4322 (sha256
4323 (base32
4324 "1gqjirm8scf0wysm7x97zdfbs4qa5nqdl64jfbkd18iskv5mg3rj"))
4325 (file-name (string-append name "-" version ".tar.gz"))))
4326 (build-system emacs-build-system)
4327 (home-page "https://github.com/ananthakumaran/typescript.el")
4328 (synopsis "Emacs major mode for editing Typescript code")
4329 (description
4330 "This is based on Karl Landstrom's barebones @code{typescript-mode}.
4331 This is much more robust and works with @code{cc-mode}'s comment
4332 filling (mostly). The modifications to the original @code{javascript.el} mode
4333 mainly consisted in replacing \"javascript\" with \"typescript\"
4334
4335 The main features of this Typescript mode are syntactic highlighting (enabled
4336 with @code{font-lock-mode} or @code{global-font-lock-mode}), automatic
4337 indentation and filling of comments and C preprocessor fontification.")
4338 (license license:gpl3+)))
4339
4340 (define-public emacs-tide
4341 (package
4342 (name "emacs-tide")
4343 (version "2.8.3.1")
4344 (source (origin
4345 (method url-fetch)
4346 (uri (string-append "https://github.com/ananthakumaran/tide"
4347 "/archive/v" version ".tar.gz"))
4348 (sha256
4349 (base32
4350 "1k0kzqiv1hfs0kqm37947snzhrsmand3i9chvm6a2r5lb8v9q47y"))
4351 (file-name (string-append name "-" version ".tar.gz"))))
4352 (build-system emacs-build-system)
4353 (propagated-inputs
4354 `(("emacs-dash" ,emacs-dash)
4355 ("emacs-s" ,emacs-s)
4356 ("emacs-flycheck" ,flycheck)
4357 ("emacs-typescript-mode" ,emacs-typescript-mode)))
4358 (home-page "https://github.com/ananthakumaran/tide")
4359 (synopsis "Typescript IDE for Emacs")
4360 (description
4361 "Tide is an Interactive Development Environment (IDE) for Emacs which
4362 provides the following features:
4363
4364 @itemize
4365 @item ElDoc
4366 @item Auto complete
4367 @item Flycheck
4368 @item Jump to definition, Jump to type definition
4369 @item Find occurrences
4370 @item Rename symbol
4371 @item Imenu
4372 @item Compile On Save
4373 @item Highlight Identifiers
4374 @item Code Fixes
4375 @item Code Refactor
4376 @item Organize Imports
4377 @end itemize")
4378 (license license:gpl3+)))
4379
4380 (define-public emacs-markdown-mode
4381 (package
4382 (name "emacs-markdown-mode")
4383 (version "2.3")
4384 (source (origin
4385 (method url-fetch)
4386 (uri (string-append "https://raw.githubusercontent.com/jrblevin"
4387 "/markdown-mode/v" version
4388 "/markdown-mode.el"))
4389 (file-name (string-append "markdown-mode-" version ".el"))
4390 (sha256
4391 (base32
4392 "152whyrq3dqlqy5wv4mdd94kmal19hs5kwaxjcp2gp2r97lsmdmi"))))
4393 (build-system emacs-build-system)
4394 (home-page "http://jblevins.org/projects/markdown-mode/")
4395 (synopsis "Emacs Major mode for Markdown files")
4396 (description
4397 "Markdown-mode is a major mode for editing Markdown-formatted text files
4398 in Emacs.")
4399 (license license:gpl3+)))
4400
4401 (define-public emacs-edit-indirect
4402 (package
4403 (name "emacs-edit-indirect")
4404 (version "0.1.4")
4405 (source
4406 (origin
4407 (method url-fetch)
4408 (uri (string-append "https://github.com/Fanael/edit-indirect/archive/"
4409 version ".tar.gz"))
4410 (file-name (string-append name "-" version ".tar.gz"))
4411 (sha256
4412 (base32
4413 "07kr58rd1p5j764wminsssazr73hy51yw8iqcsv5z2dwgj7msv71"))))
4414 (build-system emacs-build-system)
4415 (home-page "https://github.com/Fanael/edit-indirect")
4416 (synopsis "Edit regions in separate buffers")
4417 (description "This package allows you to edit regions in separate buffers,
4418 like @code{org-edit-src-code} but for arbitrary regions.")
4419 (license license:gpl3+)))
4420
4421 (define-public emacs-projectile
4422 (package
4423 (name "emacs-projectile")
4424 (version "0.14.0")
4425 (source (origin
4426 (method url-fetch)
4427 (uri (string-append "https://raw.githubusercontent.com/bbatsov"
4428 "/projectile/v" version "/projectile.el"))
4429 (file-name (string-append "projectile-" version ".el"))
4430 (sha256
4431 (base32
4432 "1ql1wnzhblbwnv66hf2y0wq45g71hh6s9inc090lmhm1vgylbd1f"))))
4433 (build-system emacs-build-system)
4434 (propagated-inputs
4435 `(("emacs-dash" ,emacs-dash)
4436 ("emacs-pkg-info" ,emacs-pkg-info)))
4437 (home-page "https://github.com/bbatsov/projectile")
4438 (synopsis "Manage and navigate projects in Emacs easily")
4439 (description
4440 "This library provides easy project management and navigation. The
4441 concept of a project is pretty basic - just a folder containing special file.
4442 Currently git, mercurial and bazaar repos are considered projects by default.
4443 If you want to mark a folder manually as a project just create an empty
4444 .projectile file in it.")
4445 (license license:gpl3+)))
4446
4447 (define-public emacs-elfeed
4448 (package
4449 (name "emacs-elfeed")
4450 (version "3.0.0")
4451 (source (origin
4452 (method url-fetch)
4453 (uri (string-append "https://github.com/skeeto/elfeed/archive/"
4454 version ".tar.gz"))
4455 (file-name (string-append name "-" version ".tar.gz"))
4456 (sha256
4457 (base32
4458 "1wkdrxr6zzqb48czqqv34l87bx8aqjk1739ddqg933aqh241kfvn"))))
4459 (build-system emacs-build-system)
4460 (arguments
4461 `(#:tests? #t
4462 #:test-command '("make" "test")))
4463 (home-page "https://github.com/skeeto/elfeed")
4464 (synopsis "Atom/RSS feed reader for Emacs")
4465 (description
4466 "Elfeed is an extensible web feed reader for Emacs, supporting both Atom
4467 and RSS, with a user interface inspired by notmuch.")
4468 (license license:gpl3+)))
4469
4470 (define-public emacs-el-x
4471 (package
4472 (name "emacs-el-x")
4473 (version "0.3.1")
4474 (source (origin
4475 (method git-fetch)
4476 (uri (git-reference
4477 (url "https://github.com/sigma/el-x.git")
4478 (commit (string-append "v" version))))
4479 (file-name (string-append name "-" version "-checkout"))
4480 (sha256
4481 (base32
4482 "1i6j44ssxm1xdg0mf91nh1lnprwsaxsx8vsrf720nan7mfr283h5"))))
4483 (build-system emacs-build-system)
4484 (arguments
4485 `(#:phases
4486 (modify-phases %standard-phases
4487 ;; Move the source files to the top level, which is included in
4488 ;; the EMACSLOADPATH.
4489 (add-after 'unpack 'move-source-files
4490 (lambda _
4491 (let ((el-files (find-files "./lisp" ".*\\.el$")))
4492 (for-each (lambda (f)
4493 (rename-file f (basename f)))
4494 el-files))
4495 #t)))))
4496 (home-page "https://github.com/sigma/el-x")
4497 (synopsis "Emacs Lisp extensions")
4498 (description "command@{emacs-el-x} defines the @code{dflet} macro to
4499 provide the historic behavior of @code{flet}, as well as
4500 @code{declare-function} stub for older Emacs.")
4501 (license license:gpl2+)))
4502
4503 (define-public emacs-mocker
4504 (package
4505 (name "emacs-mocker")
4506 (version "0.3.1")
4507 (source (origin
4508 (method git-fetch)
4509 (uri (git-reference
4510 (url "https://github.com/sigma/mocker.el.git")
4511 (commit (string-append "v" version))))
4512 (file-name (string-append name "-" version "-checkout"))
4513 (sha256
4514 (base32
4515 "1lav7am41v63xgavq8pr88y828jmd1cxd4prjq7jlbxm6nvrwxh2"))))
4516 (build-system emacs-build-system)
4517 (arguments
4518 `(#:tests? #t
4519 #:test-command '("ert-runner")))
4520 (native-inputs
4521 `(("ert-runner" ,ert-runner)))
4522 (propagated-inputs
4523 `(("emacs-el-x" ,emacs-el-x)))
4524 (home-page "https://github.com/sigma/mocker.el")
4525 (synopsis "Mocking framework for Emacs Lisp")
4526 (description "Mocker.el is a framework for writing tests in Emacs Lisp.
4527 It uses regular Lisp rather than a domain specific language (DSL), which
4528 maximizes flexibility (at the expense of conciseness).")
4529 (license license:gpl2+)))
4530
4531 (define-public emacs-find-file-in-project
4532 (package
4533 (name "emacs-find-file-in-project")
4534 (version "5.4.7")
4535 (source (origin
4536 (method git-fetch)
4537 (uri (git-reference
4538 (url "https://github.com/technomancy/find-file-in-project.git")
4539 (commit version)))
4540 (file-name (string-append name "-" version "-checkout"))
4541 (sha256
4542 (base32
4543 "1sdnyqv69mipbgs9yax88m9b6crsa59rjhwrih197pifl4089awr"))))
4544 (build-system emacs-build-system)
4545 (arguments
4546 `(#:phases
4547 (modify-phases %standard-phases
4548 (add-before 'check 'set-shell
4549 ;; Otherwise Emacs shell-file-name is set to "/bin/sh", which doesn't
4550 ;; work.
4551 (lambda _
4552 (setenv "SHELL" (which "sh"))
4553 #t)))
4554 #:tests? #t
4555 #:test-command '("./tests/test.sh")))
4556 (home-page "https://github.com/technomancy/find-file-in-project")
4557 (synopsis "File/directory finder for Emacs")
4558 (description "@code{find-file-in-project} allows to find files or
4559 directories quickly in the current project. The project root is detected
4560 automatically when Git, Subversion or Mercurial are used. It also provides
4561 functions to assist in reviewing changes on files.")
4562 (license license:gpl3+)))
4563
4564 (define-public emacs-pyvenv
4565 (package
4566 (name "emacs-pyvenv")
4567 (version "1.11")
4568 (source (origin
4569 (method git-fetch)
4570 (uri (git-reference
4571 (url "https://github.com/jorgenschaefer/pyvenv.git")
4572 (commit (string-append "v" version))))
4573 (file-name (string-append name "-" version "-checkout"))
4574 (sha256
4575 (base32
4576 "1a346qdimr1dvj53q033aqnahwd2dhyn9jadrs019nm0bzgw7g63"))))
4577 (build-system emacs-build-system)
4578 (arguments
4579 `(#:phases
4580 (modify-phases %standard-phases
4581 ;; This phase incorrectly attempts to substitute "activate" and fails
4582 ;; doing so.
4583 (delete 'patch-el-files))
4584 #:tests? #t
4585 #:test-command '("ert-runner")))
4586 (native-inputs
4587 `(("ert-runner" ,ert-runner)
4588 ("emacs-mocker" ,emacs-mocker)))
4589 (home-page "https://github.com/jorgenschaefer/pyvenv")
4590 (synopsis "Virtualenv minor mode for Emacs")
4591 (description "pyvenv.el is a minor mode to support using Python virtual
4592 environments (virtualenv) inside Emacs.")
4593 (license license:gpl3+)))
4594
4595 (define-public emacs-highlight-indentation
4596 (package
4597 (name "emacs-highlight-indentation")
4598 (version "0.7.0")
4599 (source (origin
4600 (method git-fetch)
4601 (uri (git-reference
4602 (url "https://github.com/antonj/Highlight-Indentation-for-Emacs.git")
4603 (commit (string-append "v" version))))
4604 (file-name (string-append name "-" version "-checkout"))
4605 (sha256
4606 (base32
4607 "00l54k75qk24a0znzl4ij3s3nrnr2wy9ha3za8apphzlm98m907k"))))
4608 (build-system emacs-build-system)
4609 (home-page "https://github.com/antonj/Highlight-Indentation-for-Emacs/")
4610 (synopsis "Highlighting indentation for Emacs")
4611 (description "Provides two minor modes to highlight indentation guides in Emacs:
4612 @enumerate
4613 @item @code{highlight-indentation-mode}, which displays guidelines
4614 indentation (space indentation only).
4615 @item @code{highlight-indentation-current-column-mode}, which displays guidelines for the current-point indentation (space indentation only).
4616 @end enumerate")
4617 (license license:gpl2+)))
4618
4619 (define-public emacs-elpy
4620 (package
4621 (name "emacs-elpy")
4622 (version "1.24.0")
4623 (source (origin
4624 (method git-fetch)
4625 (uri (git-reference
4626 (url "https://github.com/jorgenschaefer/elpy.git")
4627 (commit version)))
4628 (file-name (string-append name "-" version "-checkout"))
4629 (sha256
4630 (base32
4631 "0rsg8a9nwqfkv0xcs11jzfp10ij7jm0v2ikx19zv2v7awqy0q5wf"))))
4632 (build-system emacs-build-system)
4633 (arguments
4634 `(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include)
4635 #:phases
4636 ;; TODO: Make `elpy-config' display Guix commands :)
4637 (modify-phases %standard-phases
4638 ;; One elpy test depends on being run inside a Python virtual
4639 ;; environment to pass. We have nothing to gain from doing so here,
4640 ;; so we just trick Elpy into thinking we are (see:
4641 ;; https://github.com/jorgenschaefer/elpy/pull/1293).
4642 (add-before 'check 'fake-virtualenv
4643 (lambda _
4644 (setenv "VIRTUAL_ENV" "/tmp")
4645 #t))
4646 (add-before 'check 'build-doc
4647 (lambda _
4648 (with-directory-excursion "docs"
4649 (invoke "make" "info" "man"))
4650 ;; Move .info file at the root so that it can installed by the
4651 ;; 'move-doc phase.
4652 (rename-file "docs/_build/texinfo/Elpy.info" "Elpy.info")
4653 #t))
4654 (add-after 'build-doc 'install-manpage
4655 (lambda* (#:key outputs #:allow-other-keys)
4656 (let* ((out (assoc-ref outputs "out"))
4657 (man1 (string-append out "/share/man/man1")))
4658 (mkdir-p man1)
4659 (copy-file "docs/_build/man/elpy.1"
4660 (string-append man1 "/elpy.1")))
4661 #t)))
4662 #:tests? #t
4663 #:test-command '("ert-runner")))
4664 (propagated-inputs
4665 `(("emacs-company" ,emacs-company)
4666 ("emacs-find-file-in-project" ,emacs-find-file-in-project)
4667 ("emacs-highlight-indentation" ,emacs-highlight-indentation)
4668 ("emacs-yasnippet" ,emacs-yasnippet)
4669 ("pyvenv" ,emacs-pyvenv)
4670 ("s" ,emacs-s)))
4671 (native-inputs
4672 `(("ert-runner" ,ert-runner)
4673 ("emacs-f" ,emacs-f)
4674 ("python" ,python-wrapper)
4675 ("python-autopep8" ,python-autopep8)
4676 ("python-black" ,python-black)
4677 ("python-flake8" ,python-flake8)
4678 ("python-jedi" ,python-jedi)
4679 ("python-yapf" ,python-yapf)
4680 ;; For documentation.
4681 ("python-sphinx" ,python-sphinx)
4682 ("texinfo" ,texinfo)))
4683 (home-page "https://github.com/jorgenschaefer/elpy")
4684 (synopsis "Python development environment for Emacs")
4685 (description "Elpy brings powerful Python editing to Emacs. It combines
4686 and configures a number of other packages written in Emacs Lisp as well as
4687 Python, together offering features such as navigation, documentation,
4688 completion, interactive development and more.")
4689 (license license:gpl3+)))
4690
4691 (define-public emacs-rainbow-delimiters
4692 (package
4693 (name "emacs-rainbow-delimiters")
4694 (version "2.1.3")
4695 (source (origin
4696 (method url-fetch)
4697 (uri (string-append "https://raw.githubusercontent.com/Fanael"
4698 "/rainbow-delimiters/" version
4699 "/rainbow-delimiters.el"))
4700 (file-name (string-append "rainbow-delimiters-" version ".el"))
4701 (sha256
4702 (base32
4703 "1b3kampwsjabhcqdp0khgff13wc5jqhy3rbvaa12vnv7qy22l9ck"))))
4704 (build-system emacs-build-system)
4705 (home-page "https://github.com/Fanael/rainbow-delimiters")
4706 (synopsis "Highlight brackets according to their depth")
4707 (description
4708 "Rainbow-delimiters is a \"rainbow parentheses\"-like mode for Emacs which
4709 highlights parentheses, brackets, and braces according to their depth. Each
4710 successive level is highlighted in a different color, making it easy to spot
4711 matching delimiters, orient yourself in the code, and tell which statements
4712 are at a given level.")
4713 (license license:gpl3+)))
4714
4715 (define-public emacs-rainbow-identifiers
4716 (package
4717 (name "emacs-rainbow-identifiers")
4718 (version "0.2.2")
4719 (source (origin
4720 (method url-fetch)
4721 (uri (string-append "https://raw.githubusercontent.com/Fanael"
4722 "/rainbow-identifiers/" version
4723 "/rainbow-identifiers.el"))
4724 (file-name (string-append "rainbow-identifiers-" version ".el"))
4725 (sha256
4726 (base32
4727 "0325abxj47k0g1i8nqrq70w2wr6060ckhhf92krv1s072b3jzm31"))))
4728 (build-system emacs-build-system)
4729 (home-page "https://github.com/Fanael/rainbow-identifiers")
4730 (synopsis "Highlight identifiers in source code")
4731 (description
4732 "Rainbow identifiers mode is an Emacs minor mode providing highlighting of
4733 identifiers based on their names. Each identifier gets a color based on a hash
4734 of its name.")
4735 (license license:bsd-2)))
4736
4737 (define-public emacs-rainbow-mode
4738 (package
4739 (name "emacs-rainbow-mode")
4740 (version "0.13")
4741 (source (origin
4742 (method url-fetch)
4743 (uri (string-append
4744 "http://elpa.gnu.org/packages/rainbow-mode-" version ".el"))
4745 (sha256
4746 (base32
4747 "1d3aamx6qgqqpqijwsr02ggwrh67gfink1bir0692alfkm3zdddl"))))
4748 (build-system emacs-build-system)
4749 (home-page "http://elpa.gnu.org/packages/rainbow-mode.html")
4750 (synopsis "Colorize color names in buffers")
4751 (description
4752 "This minor mode sets background color to strings that match color
4753 names, e.g. #0000ff is displayed in white with a blue background.")
4754 (license license:gpl3+)))
4755
4756 (define-public emacs-visual-fill-column
4757 (package
4758 (name "emacs-visual-fill-column")
4759 (version "1.11")
4760 (source (origin
4761 (method url-fetch)
4762 (uri (string-append "https://codeload.github.com/joostkremers/"
4763 "visual-fill-column/tar.gz/" version))
4764 (file-name (string-append name "-" version ".tar.gz"))
4765 (sha256
4766 (base32
4767 "13jnviakp607zcms7f8ams56mr8wffnq1pghlc6fvqs39663pgwh"))))
4768 (build-system emacs-build-system)
4769 (home-page "https://github.com/joostkremers/visual-fill-column")
4770 (synopsis "Fill-column for visual-line-mode")
4771 (description
4772 "@code{visual-fill-column-mode} is a small Emacs minor mode that mimics
4773 the effect of @code{fill-column} in @code{visual-line-mode}. Instead of
4774 wrapping lines at the window edge, which is the standard behaviour of
4775 @code{visual-line-mode}, it wraps lines at @code{fill-column}. If
4776 @code{fill-column} is too large for the window, the text is wrapped at the
4777 window edge.")
4778 (license license:gpl3+)))
4779
4780 (define-public emacs-writeroom
4781 (package
4782 (name "emacs-writeroom")
4783 (version "3.7")
4784 (source (origin
4785 (method url-fetch)
4786 (uri (string-append
4787 "https://github.com/joostkremers/writeroom-mode/archive/"
4788 version ".tar.gz"))
4789 (file-name (string-append name "-" version ".tar.gz"))
4790 (sha256
4791 (base32
4792 "0yqgp5h3kvvpgva4azakb2wnjl7gsyh45glf75crspv3xyq57f2r"))))
4793 (build-system emacs-build-system)
4794 (propagated-inputs
4795 `(("emacs-visual-fill-column" ,emacs-visual-fill-column)))
4796 (home-page "https://github.com/joostkremers/writeroom-mode")
4797 (synopsis "Distraction-free writing for Emacs")
4798 (description
4799 "This package defines a minor mode for distraction-free writing. Some of
4800 the default effects include entering fullscreen, deleting other windows of the
4801 current frame, disabling the mode line, and adding margins to the buffer that
4802 restrict the text width to 80 characters.")
4803 (license license:bsd-3)))
4804
4805 (define-public emacs-ido-completing-read+
4806 (package
4807 (name "emacs-ido-completing-read+")
4808 (version "3.12")
4809 (source (origin
4810 (method url-fetch)
4811 (uri (string-append "https://raw.githubusercontent.com"
4812 "/DarwinAwardWinner/ido-ubiquitous/v"
4813 version "/ido-completing-read+.el"))
4814 (file-name (string-append "ido-completing-read+-" version ".el"))
4815 (sha256
4816 (base32
4817 "1cyalb0p7nfsm4n6n9q6rjmvn6adqc0fq8ybnlj3n41n289dkfjf"))))
4818 (build-system emacs-build-system)
4819 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
4820 (synopsis "Replacement for completing-read using ido")
4821 (description
4822 "The ido-completing-read+ function is a wrapper for ido-completing-read.
4823 Importantly, it detects edge cases that ordinary ido cannot handle and either
4824 adjusts them so ido can handle them, or else simply falls back to the standard
4825 Emacs completion function instead.")
4826 (license license:gpl3+)))
4827
4828 (define-public emacs-ido-ubiquitous
4829 (package
4830 (name "emacs-ido-ubiquitous")
4831 (version "3.12")
4832 (source (origin
4833 (method url-fetch)
4834 (uri (string-append "https://raw.githubusercontent.com"
4835 "/DarwinAwardWinner/ido-ubiquitous/v"
4836 version "/ido-ubiquitous.el"))
4837 (file-name (string-append "ido-ubiquitous-" version ".el"))
4838 (sha256
4839 (base32
4840 "197ypji0fb6jsdcq40rpnknwlh3imas6s6jbsvkfm0pz9988c3q2"))))
4841 (build-system emacs-build-system)
4842 (propagated-inputs
4843 `(("emacs-ido-completing-read+" ,emacs-ido-completing-read+)))
4844 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
4845 (synopsis "Use ido (nearly) everywhere")
4846 (description
4847 "Ido-ubiquitous enables ido-style completion for almost every function
4848 that uses the standard completion function completing-read.")
4849 (license license:gpl3+)))
4850
4851 (define-public emacs-yaml-mode
4852 (package
4853 (name "emacs-yaml-mode")
4854 (version "0.0.13")
4855 (source (origin
4856 (method url-fetch)
4857 (uri (string-append "https://raw.githubusercontent.com/yoshiki"
4858 "/yaml-mode/v" version "/yaml-mode.el"))
4859 (file-name (string-append "yaml-mode-" version ".el"))
4860 (sha256
4861 (base32
4862 "0im88sk9dqw03x6d6zaspgvg9i0pfpgb8f2zygrmbifh2w4pwmvj"))))
4863 (build-system emacs-build-system)
4864 (home-page "https://github.com/yoshiki/yaml-mode")
4865 (synopsis "Major mode for editing YAML files")
4866 (description
4867 "Yaml-mode is an Emacs major mode for editing files in the YAML data
4868 serialization format. It was initially developed by Yoshiki Kurihara and many
4869 features were added by Marshall Vandegrift. As YAML and Python share the fact
4870 that indentation determines structure, this mode provides indentation and
4871 indentation command behavior very similar to that of python-mode.")
4872 (license license:gpl3+)))
4873
4874 (define-public emacs-web-mode
4875 (package
4876 (name "emacs-web-mode")
4877 (version "16")
4878 (source (origin
4879 (method url-fetch)
4880 (uri (string-append "https://raw.githubusercontent.com/fxbois"
4881 "/web-mode/v" version "/web-mode.el"))
4882 (file-name (string-append "web-mode-" version ".el"))
4883 (sha256
4884 (base32
4885 "1hs5w7kdvcyn4ihyw1kfjg48djn5p7lz4rlbhzzdqv1g56xqx3gw"))))
4886 (build-system emacs-build-system)
4887 (synopsis "Major mode for editing web templates")
4888 (description "Web-mode is an Emacs major mode for editing web templates
4889 aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by
4890 client/server side engines). Web-mode is compatible with many template
4891 engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker,
4892 Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template,
4893 Dust.js, React/JSX, Angularjs, ejs, etc.")
4894 (home-page "http://web-mode.org/")
4895 (license license:gpl3+)))
4896
4897 (define-public emacs-wgrep
4898 (let ((commit "414be70bd313e482cd9f0b70fd2daad4ee23497c"))
4899 ;; Late commit fixes compatibility issue with Emacs 26+.
4900 (package
4901 (name "emacs-wgrep")
4902 (version (git-version "2.1.10" "1" commit))
4903 (source (origin
4904 (method git-fetch)
4905 (uri (git-reference
4906 (url "https://github.com/mhayashi1120/Emacs-wgrep")
4907 (commit commit)))
4908 (file-name (git-file-name name version))
4909 (sha256
4910 (base32
4911 "1sdhd587q3pg92lhiayph87azhalmf1gzrnsprkmqvnphv7mvks9"))))
4912 (build-system emacs-build-system)
4913 (home-page "https://github.com/mhayashi1120/Emacs-wgrep")
4914 (synopsis "Edit a grep buffer and apply those changes to the files")
4915 (description
4916 "Emacs wgrep allows you to edit a grep buffer and apply those changes
4917 to the file buffer. Several backends are supported beside the classic grep:
4918 ack, ag, helm and pt.")
4919 (license license:gpl3+))))
4920
4921 (define-public emacs-helm
4922 (package
4923 (name "emacs-helm")
4924 (version "3.0")
4925 (source (origin
4926 (method url-fetch)
4927 (uri (string-append
4928 "https://github.com/" name "/helm/archive/v"
4929 version ".tar.gz"))
4930 (file-name (string-append name "-" version ".tar.gz"))
4931 (sha256
4932 (base32
4933 "0k2r0ccppaqfjvyszaxa16vf7g2qzj1clhfr6v646ncsy17laciw"))))
4934 (build-system emacs-build-system)
4935 (propagated-inputs
4936 `(("emacs-async" ,emacs-async)
4937 ("emacs-popup" ,emacs-popup)))
4938 (home-page "https://emacs-helm.github.io/helm/")
4939 (synopsis "Incremental completion and selection narrowing
4940 framework for Emacs")
4941 (description "Helm is incremental completion and selection narrowing
4942 framework for Emacs. It will help steer you in the right direction when
4943 you're looking for stuff in Emacs (like buffers, files, etc). Helm is a fork
4944 of @code{anything.el} originally written by Tamas Patrovic and can be
4945 considered to be its successor. Helm sets out to clean up the legacy code in
4946 @code{anything.el} and provide a cleaner, leaner and more modular tool, that's
4947 not tied in the trap of backward compatibility.")
4948 (license license:gpl3+)))
4949
4950 (define-public emacs-helm-swoop
4951 (package
4952 (name "emacs-helm-swoop")
4953 (version "1.7.4")
4954 (source (origin
4955 (method url-fetch)
4956 (uri (string-append
4957 "https://github.com/ShingoFukuyama/helm-swoop/archive/"
4958 version
4959 ".tar.gz"))
4960 (file-name (string-append name "-" version ".tar.gz"))
4961 (sha256
4962 (base32
4963 "1ssivsjzlnkg049cg993l8fp09l5nhpz6asj7w5c91zp5kpc6fh7"))))
4964 (build-system emacs-build-system)
4965 (propagated-inputs
4966 `(("emacs-helm" ,emacs-helm)))
4967 (home-page "https://github.com/ShingoFukuyama/helm-swoop")
4968 (synopsis "Filter and jump to lines in an Emacs buffer using Helm")
4969 (description
4970 "This package builds on the Helm interface to provide several commands
4971 for search-based navigation of buffers.")
4972 (license license:gpl2+)))
4973
4974 (define-public emacs-helm-projectile
4975 (package
4976 (name "emacs-helm-projectile")
4977 (version "0.14.0")
4978 (source (origin
4979 (method url-fetch)
4980 (uri (string-append
4981 "https://github.com/bbatsov/helm-projectile/archive/v"
4982 version
4983 ".tar.gz"))
4984 (file-name (string-append name "-" version ".tar.gz"))
4985 (sha256
4986 (base32
4987 "19cfmilqh8kbab3b2hmx6lyrj73q6vfmn3p730x95g23iz16mnd5"))))
4988 (build-system emacs-build-system)
4989 (propagated-inputs
4990 `(("emacs-dash" ,emacs-dash)
4991 ("emacs-helm" ,emacs-helm)
4992 ("emacs-projectile" ,emacs-projectile)))
4993 (home-page "https://github.com/bbatsov/helm-projectile")
4994 (synopsis "Helm integration for Projectile")
4995 (description
4996 "This Emacs library provides a Helm interface for Projectile.")
4997 (license license:gpl3+)))
4998
4999 (define-public emacs-helm-make
5000 (let ((commit "feae8df22bc4b20705ea08ac9adfc2b43bb348d0")
5001 (revision "1"))
5002 (package
5003 (name "emacs-helm-make")
5004 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
5005 (source
5006 (origin
5007 (method git-fetch)
5008 (uri (git-reference
5009 (url "https://github.com/abo-abo/helm-make.git")
5010 (commit commit)))
5011 (file-name (string-append name "-" version "-checkout"))
5012 (sha256
5013 (base32
5014 "1y2v77mmd1bfkkz51cnk1l0dg3lvvxc39wlamnm7wjns66dbvlam"))))
5015 (build-system emacs-build-system)
5016 (propagated-inputs
5017 `(("emacs-helm" ,emacs-helm)
5018 ("emacs-projectile" ,emacs-projectile)))
5019 (home-page "https://github.com/abo-abo/helm-make")
5020 (synopsis "Select a Makefile target with helm")
5021 (description "@code{helm-make} or @code{helm-make-projectile} will give
5022 you a @code{helm} selection of directory Makefile's targets. Selecting a
5023 target will call @code{compile} on it.")
5024 (license license:gpl3+))))
5025
5026 (define-public emacs-cider
5027 (package
5028 (name "emacs-cider")
5029 (version "0.15.1")
5030 (source (origin
5031 (method url-fetch)
5032 (uri (string-append
5033 "https://github.com/clojure-emacs/cider/archive/v"
5034 version ".tar.gz"))
5035 (file-name (string-append name "-" version ".tar.gz"))
5036 (sha256
5037 (base32
5038 "1j5hlmi14ypszv1f9nvq0jjlz7i742flg0ny3055l7i4x089xx6g"))))
5039 (build-system emacs-build-system)
5040 (arguments
5041 '(#:exclude ; Don't exclude 'cider-test.el'.
5042 '("^\\.dir-locals\\.el$" "^test/")))
5043 (propagated-inputs
5044 `(("emacs-clojure-mode" ,emacs-clojure-mode)
5045 ("emacs-spinner" ,emacs-spinner)
5046 ("emacs-pkg-info" ,emacs-pkg-info)
5047 ("emacs-queue" ,emacs-queue)))
5048 (home-page "https://cider.readthedocs.org/")
5049 (synopsis "Clojure development environment for Emacs")
5050 (description
5051 "CIDER (Clojure Interactive Development Environment that Rocks) aims to
5052 provide an interactive development experience similar to the one you'd get
5053 when programming in Emacs Lisp, Common Lisp (with SLIME or Sly), Scheme (with
5054 Geiser) and Smalltalk.
5055
5056 CIDER is the successor to the now deprecated combination of using SLIME +
5057 swank-clojure for Clojure development.
5058
5059 There are plenty of differences between CIDER and SLIME, but the core ideas
5060 are pretty much the same (and SLIME served as the principle inspiration for
5061 CIDER).")
5062 (license license:gpl3+)))
5063
5064 ;; There hasn't been a tag or release since 2015, so we take the latest
5065 ;; commit.
5066 (define-public emacs-sly
5067 (let ((commit "486bfbe95612bcdc0960c490207970a188e0fbb9")
5068 (revision "1"))
5069 (package
5070 (name "emacs-sly")
5071 (version (string-append "1.0.0-" revision "." (string-take commit 9)))
5072 (source
5073 (origin
5074 (method git-fetch)
5075 (uri (git-reference
5076 (url "https://github.com/joaotavora/sly.git")
5077 (commit commit)))
5078 (file-name (git-file-name name version))
5079 (sha256
5080 (base32
5081 "0ib4q4k3h3qn88pymyjjmlmnpizdn1mfg5gpk5a715nqsgxlg09l"))))
5082 (build-system emacs-build-system)
5083 (arguments
5084 `(#:include (cons "^lib\\/" %default-include)
5085 #:phases
5086 ;; The package provides autoloads.
5087 (modify-phases %standard-phases
5088 (delete 'make-autoloads))))
5089 (home-page "https://github.com/joaotavora/sly")
5090 (synopsis "Sylvester the Cat's Common Lisp IDE")
5091 (description
5092 "SLY is Sylvester the Cat's Common Lisp IDE. SLY is a fork of SLIME, and
5093 contains the following improvements over it:
5094
5095 @enumerate
5096 @item Completely redesigned REPL based on Emacs's own full-featured
5097 @code{comint.el}
5098 @item Live code annotations via a new @code{sly-stickers} contrib
5099 @item Consistent interactive button interface. Everything can be copied to
5100 the REPL.
5101 @item Multiple inspectors with independent history
5102 @item Regexp-capable @code{M-x sly-apropos}
5103 @item Contribs are first class SLY citizens and enabled by default
5104 @item Use ASDF to loads contribs on demand.
5105 @end enumerate
5106
5107 SLY tracks SLIME's bugfixes and all its familar features (debugger, inspector,
5108 xref, etc...) are still available, but with better integration.")
5109 (license license:gpl3+))))
5110
5111 (define-public emacs-lua-mode
5112 (let ((commit "652e299cb967fccca827dda381d61a9c144d97de")
5113 (revision "1"))
5114 (package
5115 (name "emacs-lua-mode")
5116 (version (string-append "20151025." revision "-" (string-take commit 9)))
5117 (home-page "https://github.com/immerrr/lua-mode/")
5118 (source (origin
5119 (method git-fetch)
5120 (uri (git-reference
5121 (url home-page)
5122 (commit commit)))
5123 (file-name (string-append name "-" version ".checkout"))
5124 (sha256
5125 (base32
5126 "053025k930wh0lak6rc1973ynfrmm8zsyzfqhhd39x7abkl41hc9"))))
5127 (build-system emacs-build-system)
5128 (synopsis "Major mode for lua")
5129 (description
5130 "This Emacs package provides a mode for @uref{https://www.lua.org/,
5131 Lua programing language}.")
5132 (license license:gpl2+))))
5133
5134 (define-public emacs-ebuild-mode
5135 (package
5136 (name "emacs-ebuild-mode")
5137 (version "1.37")
5138 (source (origin
5139 (method url-fetch)
5140 (uri (string-append
5141 "https://dev.gentoo.org/~ulm/emacs/ebuild-mode"
5142 "-" version ".tar.xz"))
5143 (file-name (string-append name "-" version ".tar.xz"))
5144 (sha256
5145 (base32
5146 "07dzrdjjczkxdfdgi60h4jjkvzi4p0k9rij2wpfp8s03ay3qldpp"))))
5147 (build-system emacs-build-system)
5148 (home-page "https://devmanual.gentoo.org")
5149 (synopsis "Major modes for Gentoo package files")
5150 (description
5151 "This Emacs package provides modes for ebuild, eclass, eblit, GLEP42
5152 news items, openrc and runscripts.")
5153 (license license:gpl2+)))
5154
5155 (define-public emacs-evil
5156 (let ((commit "230b87212c81aaa68ef5547a6b998d9c365fe139"))
5157 (package
5158 (name "emacs-evil")
5159 (version (git-version "1.2.13" "1" commit))
5160 (source
5161 (origin
5162 (method git-fetch)
5163 (uri (git-reference
5164 (url "https://github.com/emacs-evil/evil")
5165 (commit commit)))
5166 (file-name (string-append name "-" version "-checkout"))
5167 (sha256
5168 (base32
5169 "0c9zy3bpck10gcrv79kd3h7i4ygd5bgbgy773n0lg7a2r5kwn1gx"))))
5170 (build-system emacs-build-system)
5171 (propagated-inputs
5172 `(("emacs-undo-tree" ,emacs-undo-tree)
5173 ("emacs-goto-chg" ,emacs-goto-chg)))
5174 (home-page "https://github.com/emacs-evil/evil")
5175 (synopsis "Extensible Vi layer for Emacs")
5176 (description
5177 "Evil is an extensible vi layer for Emacs. It emulates the
5178 main features of Vim, and provides facilities for writing custom
5179 extensions.")
5180 (license license:gpl3+))))
5181
5182 (define-public emacs-evil-collection
5183 (let ((commit "b55ae90f367e103e6568ae00779a8a51c68a0104")
5184 (revision "3"))
5185 (package
5186 (name "emacs-evil-collection")
5187 (version (git-version "20180911" revision commit))
5188 (source (origin
5189 (method git-fetch)
5190 (uri (git-reference
5191 (url "https://github.com/emacs-evil/evil-collection")
5192 (commit commit)))
5193 (file-name (string-append name "-" version "-checkout"))
5194 (sha256
5195 (base32
5196 "0n7bzi5s7rqi78l1424sxvsk2g46z7ksq02xx5jrmqymnij90jml"))))
5197 (build-system emacs-build-system)
5198 (propagated-inputs
5199 `(("emacs-evil" ,emacs-evil)))
5200 (home-page "https://github.com/emacs-evil/evil-collection")
5201 (synopsis "Collection of Evil bindings for many major and minor modes")
5202 (description "This is a collection of Evil bindings for the parts of
5203 Emacs that Evil does not cover properly by default, such as @code{help-mode},
5204 @code{M-x calendar}, Eshell and more.")
5205 (license license:gpl3+))))
5206
5207 (define-public emacs-goto-chg
5208 (package
5209 (name "emacs-goto-chg")
5210 (version "1.6")
5211 (source
5212 (origin
5213 (method url-fetch)
5214 ;; There is no versioned source.
5215 (uri "https://www.emacswiki.org/emacs/download/goto-chg.el")
5216 (file-name (string-append "goto-chg-" version ".el"))
5217 (sha256
5218 (base32
5219 "078d6p4br5vips7b9x4v6cy0wxf6m5ij9gpqd4g33bryn22gnpij"))))
5220 (build-system emacs-build-system)
5221 ;; There is no other home page.
5222 (home-page "https://www.emacswiki.org/emacs/goto-chg.el")
5223 (synopsis "Go to the last change in the Emacs buffer")
5224 (description
5225 "This package provides @code{M-x goto-last-change} command that goes to
5226 the point of the most recent edit in the current Emacs buffer. When repeated,
5227 go to the second most recent edit, etc. Negative argument, @kbd{C-u -}, is
5228 used for reverse direction.")
5229 (license license:gpl2+)))
5230
5231 (define-public emacs-monroe
5232 (package
5233 (name "emacs-monroe")
5234 (version "0.3.1")
5235 (source
5236 (origin
5237 (method url-fetch)
5238 (uri (string-append "https://github.com/sanel/monroe/archive/"
5239 version ".tar.gz"))
5240 (file-name (string-append name "-" version ".tar.gz"))
5241 (sha256
5242 (base32
5243 "0icdx8shkd951phlnmcq1vqaxp1l667q5rjscskc5r22aylakh4w"))))
5244 (build-system emacs-build-system)
5245 (home-page "https://github.com/sanel/monroe")
5246 (synopsis "Clojure nREPL client for Emacs")
5247 (description
5248 "Monroe is a nREPL client for Emacs, focused on simplicity and easy
5249 distribution, primarily targeting Clojure users")
5250 (license license:gpl3+)))
5251
5252 (define-public emacs-orgalist
5253 (package
5254 (name "emacs-orgalist")
5255 (version "1.9")
5256 (source
5257 (origin
5258 (method url-fetch)
5259 (uri (string-append "https://elpa.gnu.org/packages/"
5260 "orgalist-" version ".el"))
5261 (sha256
5262 (base32
5263 "1rmmcyiiqkq54hn74nhzxzl4nvd902hv6gq341jwhrm7yiagffi6"))))
5264 (build-system emacs-build-system)
5265 (home-page "http://elpa.gnu.org/packages/orgalist.html")
5266 (synopsis "Manage Org-like lists in non-Org buffers")
5267 (description "Write Org mode's plain lists in non-Org buffers. More
5268 specifically, Orgalist supports the syntax of Org mode for numbered,
5269 unnumbered, description items, checkboxes, and counter cookies.
5270
5271 The library also implements radio lists, i.e., lists written in Org
5272 syntax later translated into the host format, e.g., LaTeX or HTML.")
5273 (license license:gpl3+)))
5274
5275 (define-public emacs-writegood-mode
5276 (package
5277 (name "emacs-writegood-mode")
5278 (version "2.0.2")
5279 (home-page "https://github.com/bnbeckwith/writegood-mode")
5280 (source (origin
5281 (method git-fetch)
5282 (uri (git-reference
5283 (url home-page)
5284 (commit (string-append "v" version))))
5285 (sha256
5286 (base32
5287 "1nnjn1r669hvvzfycllwap4w04m8rfsk4nzcg8057m1f263kj31b"))
5288 (file-name (string-append name "-checkout"))))
5289 (build-system emacs-build-system)
5290 (synopsis "Polish up poor writing on the fly")
5291 (description
5292 "This minor mode tries to find and highlight problems with your writing
5293 in English as you type. It primarily detects \"weasel words\" and abuse of
5294 passive voice.")
5295 (license license:gpl3+)))
5296
5297 (define-public emacs-neotree
5298 (package
5299 (name "emacs-neotree")
5300 (version "0.5.2")
5301 (home-page "https://github.com/jaypei/emacs-neotree")
5302 (source (origin
5303 (method url-fetch)
5304 (uri (string-append
5305 "https://github.com/jaypei/" name
5306 "/archive/" version ".tar.gz"))
5307 (sha256
5308 (base32
5309 "1zd6dchwyijnf7kgchfcp51gs938l204dk9z6mljrfqf2zy0gp12"))
5310 (file-name (string-append name "-" version ".tar.gz"))))
5311 (build-system emacs-build-system)
5312 (synopsis "Folder tree view for Emacs")
5313 (description "This Emacs package provides a folder tree view.")
5314 (license license:gpl3+)))
5315
5316 (define-public emacs-org
5317 (package
5318 (name "emacs-org")
5319 ;; emacs-org-contrib inherits from this package. Please update its sha256
5320 ;; checksum as well.
5321 (version "9.1.13")
5322 (source (origin
5323 (method url-fetch)
5324 (uri (string-append "http://elpa.gnu.org/packages/org-"
5325 version ".tar"))
5326 (sha256
5327 (base32
5328 "1vx0n32gvrgy2bl2b4pvxf00cywxwm57gi46f2b2zlrnmd5n85pr"))))
5329 (build-system emacs-build-system)
5330 (home-page "https://orgmode.org/")
5331 (synopsis "Outline-based notes management and organizer")
5332 (description "Org is an Emacs mode for keeping notes, maintaining TODO
5333 lists, and project planning with a fast and effective lightweight markup
5334 language. It also is an authoring system with unique support for literate
5335 programming and reproducible research.")
5336 (license license:gpl3+)))
5337
5338 (define-public emacs-org-contrib
5339 (package
5340 (inherit emacs-org)
5341 (name "emacs-org-contrib")
5342 (version "20180507")
5343 (source (origin
5344 (method url-fetch)
5345 (uri (string-append "https://orgmode.org/elpa/org-plus-contrib-"
5346 version ".tar"))
5347 (sha256
5348 (base32
5349 "190iwjpdjrhg7gl2d4bri2y0y679vlrwd841r6dvhza0yy338d2d"))))
5350 (arguments
5351 `(#:modules ((guix build emacs-build-system)
5352 (guix build utils)
5353 (guix build emacs-utils)
5354 (ice-9 ftw)
5355 (srfi srfi-1))
5356 #:phases
5357 (modify-phases %standard-phases
5358 (add-after 'install 'delete-org-files
5359 (lambda* (#:key inputs outputs #:allow-other-keys)
5360 (let* ((out (assoc-ref outputs "out"))
5361 (org (assoc-ref inputs "emacs-org"))
5362 (contrib-files
5363 (map basename (find-files out)))
5364 (org+contrib-files
5365 (map basename (find-files org)))
5366 (duplicates (lset-intersection
5367 string=? contrib-files org+contrib-files)))
5368 (with-directory-excursion
5369 (string-append
5370 out "/share/emacs/site-lisp/guix.d/org-contrib-" ,version)
5371 (for-each delete-file duplicates))
5372 #t))))))
5373 (propagated-inputs
5374 `(("emacs-org" ,emacs-org)
5375 ("emacs-scel" ,emacs-scel)))
5376 (synopsis "Contributed packages to Org mode")
5377 (description "Org is an Emacs mode for keeping notes, maintaining TODO
5378 lists, and project planning with a fast and effective plain-text system.
5379
5380 This package is equivalent to org-plus-contrib, but only includes additional
5381 files that you would find in @file{contrib/} from the git repository.")))
5382
5383 (define-public emacs-flx
5384 (package
5385 (name "emacs-flx")
5386 (version "0.6.1")
5387 (source
5388 (origin
5389 (method url-fetch)
5390 (uri (string-append "https://github.com/lewang/"
5391 "flx/archive/v" version ".tar.gz"))
5392 (sha256
5393 (base32
5394 "0bkcpnf1j4i2fcc2rllwbz62l00sw2mcia6rm5amgwvlkqavmkv6"))
5395 (file-name (string-append name "-" version ".tar.gz"))))
5396 (build-system emacs-build-system)
5397 (home-page "https://github.com/lewang/flx")
5398 (synopsis "Fuzzy matching for Emacs")
5399 (description
5400 "Flx provides fuzzy matching for emacs a la sublime text.
5401 The sorting algorithm is a balance between word beginnings (abbreviation)
5402 and contiguous matches (substring). The longer the substring match,
5403 the higher it scores. This maps well to how we think about matching.
5404 Flx has support for ido (interactively do things) through flx-ido.")
5405 (license license:gpl3+)))
5406
5407 (define-public emacs-cyberpunk-theme
5408 (package
5409 (name "emacs-cyberpunk-theme")
5410 (version "1.19")
5411 (source
5412 (origin
5413 (method url-fetch)
5414 (uri (string-append "https://github.com/n3mo/cyberpunk-theme.el/"
5415 "archive/" version ".tar.gz"))
5416 (sha256
5417 (base32
5418 "05l5fxw1mn5py6mfhxrzyqjq0d8m5m1akfi46vrgh13r414jffvv"))
5419 (file-name (string-append name "-" version ".tar.gz"))))
5420 (build-system emacs-build-system)
5421 (home-page "https://github.com/n3mo/cyberpunk-theme.el")
5422 (synopsis "Cyberpunk theme for emacs built-in color theme support")
5423 (description
5424 "Cyberpunk color theme for the emacs 24+ built-in color theme support
5425 known loosely as deftheme. Many mode-specific customizations are included.")
5426 (license license:gpl3+)))
5427
5428 (define-public emacs-danneskjold-theme
5429 (let* ((commit "8733d2fe8743e8a01826ea6d4430ef376c727e57")
5430 (revision "1"))
5431 (package
5432 (name "emacs-danneskjold-theme")
5433 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
5434 (home-page "https://github.com/rails-to-cosmos/danneskjold-theme")
5435 (source
5436 (origin
5437 (method git-fetch)
5438 (uri (git-reference
5439 (url home-page)
5440 (commit commit)))
5441 (file-name (string-append name "-" version "-checkout"))
5442 (sha256
5443 (base32
5444 "0s6rbsb0y8i8m5b9xm4gw1p1cxsxdqnqxqqb638pygz9f76mbir1"))))
5445 (build-system emacs-build-system)
5446 (arguments
5447 `(#:phases
5448 (modify-phases %standard-phases
5449 (add-after 'unpack 'delete-screenshots
5450 (lambda _
5451 (delete-file-recursively "screenshots") #t)))))
5452 (synopsis "High-contrast Emacs theme")
5453 (description
5454 "@code{danneskjold-theme} is a high-contrast theme for Emacs.")
5455 (license license:gpl3+))))
5456
5457 (define-public emacs-dream-theme
5458 (let* ((commit "107a11d74365046f28a1802a2bdb5e69e4a7488b")
5459 (revision "1"))
5460 (package
5461 (name "emacs-dream-theme")
5462 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
5463 (source
5464 (origin
5465 (method git-fetch)
5466 (uri (git-reference
5467 (url "https://github.com/djcb/dream-theme")
5468 (commit commit)))
5469 (file-name (string-append name "-" version "-checkout"))
5470 (sha256
5471 (base32
5472 "0za18nfkq4xqm35k6006vsixcbmvmxqgma4iw5sw37h8vmcsdylk"))))
5473 (build-system emacs-build-system)
5474 (home-page "https://github.com/djcb/dream-theme")
5475 (synopsis "High-contrast Emacs theme")
5476 (description
5477 "@code{dream-theme} is a dark, clean theme for Emacs. It is inspired
5478 by zenburn, sinburn and similar themes, but slowly diverging from them.")
5479 (license license:gpl3+))))
5480
5481 (define-public emacs-auto-complete
5482 (package
5483 (name "emacs-auto-complete")
5484 (version "1.5.1")
5485 (source
5486 (origin
5487 (method url-fetch)
5488 (uri (string-append "https://github.com/auto-complete/"
5489 "auto-complete/archive/v" version ".tar.gz"))
5490 (sha256
5491 (base32
5492 "1jvq4lj00hwml75lpmlciazy8f3bbg13gffsfnl835p4qd8l7yqv"))
5493 (file-name (string-append name "-" version ".tar.gz"))))
5494 (build-system emacs-build-system)
5495 (propagated-inputs
5496 `(("emacs-popup" ,emacs-popup)))
5497 (home-page "https://github.com/auto-complete/auto-complete")
5498 (synopsis "Intelligent auto-completion extension for Emacs")
5499 (description
5500 "Auto-Complete is an intelligent auto-completion extension for Emacs.
5501 It extends the standard Emacs completion interface and provides an environment
5502 that allows users to concentrate more on their own work. Its features are:
5503 a visual interface, reduce overhead of completion by using statistic method,
5504 extensibility.")
5505 (license license:gpl3+)))
5506
5507 (define-public m17n-db
5508 (package
5509 (name "m17n-db")
5510 (version "1.7.0")
5511 (source
5512 (origin
5513 (method url-fetch)
5514 (uri (string-append "mirror://savannah/m17n/m17n-db-"
5515 version ".tar.gz"))
5516 (sha256
5517 (base32 "1w08hnsbknrcjlzp42c99bgwc9hzsnf5m4apdv0dacql2s09zfm2"))))
5518 (build-system gnu-build-system)
5519 (inputs
5520 `(("gettext" ,gettext-minimal)))
5521 (arguments
5522 `(#:configure-flags
5523 (list (string-append "--with-charmaps="
5524 (assoc-ref %build-inputs "libc")
5525 "/share/i18n/charmaps"))))
5526 ;; With `guix lint' the home-page URI returns a small page saying
5527 ;; that your browser does not handle frames. This triggers the "URI
5528 ;; returns suspiciously small file" warning.
5529 (home-page "https://www.nongnu.org/m17n/")
5530 (synopsis "Multilingual text processing library (database)")
5531 (description "The m17n library realizes multilingualization of
5532 many aspects of applications. The m17n library represents
5533 multilingual text as an object named M-text. M-text is a string with
5534 attributes called text properties, and designed to substitute for
5535 string in C. Text properties carry any information required to input,
5536 display and edit the text.
5537
5538 This package contains the library database.")
5539 (license license:lgpl2.1+)))
5540
5541 (define-public m17n-lib
5542 (package
5543 (name "m17n-lib")
5544 (version "1.7.0")
5545 (source
5546 (origin
5547 (method url-fetch)
5548 (uri (string-append "mirror://savannah/m17n/m17n-lib-"
5549 version ".tar.gz"))
5550 (sha256
5551 (base32 "10yv730i25g1rpzv6q49m6xn4p8fjm7jdwvik2h70sn8w3hm7f4f"))))
5552 (build-system gnu-build-system)
5553 (inputs
5554 `(("fribidi" ,fribidi)
5555 ("gd" ,gd)
5556 ("libotf" ,libotf)
5557 ("libxft" ,libxft)
5558 ("libxml2" ,libxml2)
5559 ("m17n-db" ,m17n-db)))
5560 (arguments
5561 `(#:parallel-build? #f))
5562 ;; With `guix lint' the home-page URI returns a small page saying
5563 ;; that your browser does not handle frames. This triggers the "URI
5564 ;; returns suspiciously small file" warning.
5565 (home-page "https://www.nongnu.org/m17n/")
5566 (synopsis "Multilingual text processing library (runtime)")
5567 (description "The m17n library realizes multilingualization of
5568 many aspects of applications. The m17n library represents
5569 multilingual text as an object named M-text. M-text is a string with
5570 attributes called text properties, and designed to substitute for
5571 string in C. Text properties carry any information required to input,
5572 display and edit the text.
5573
5574 This package contains the library runtime.")
5575 (license license:lgpl2.1+)))
5576
5577 (define-public emacs-nginx-mode
5578 (package
5579 (name "emacs-nginx-mode")
5580 (version "1.1.4")
5581 (source
5582 (origin
5583 (method url-fetch)
5584 (uri (string-append
5585 "https://github.com/ajc/nginx-mode/archive/v"
5586 version ".tar.gz"))
5587 (file-name (string-append name "-" version ".tar.gz"))
5588 (sha256
5589 (base32
5590 "1lvkj07kq0jkskr2f61vqb5rlrbnaz9a76ikq40w6925i2r970rr"))))
5591 (build-system emacs-build-system)
5592 (home-page "https://github.com/ajc/nginx-mode")
5593 (synopsis "Emacs major mode for editing nginx config files")
5594 (description "This package provides an Emacs major mode for
5595 editing nginx config files.")
5596 (license license:gpl2+)))
5597
5598 (define-public emacs-stream
5599 (package
5600 (name "emacs-stream")
5601 (version "2.2.0")
5602 (home-page "https://github.com/NicolasPetton/stream")
5603 (source
5604 (origin
5605 (method url-fetch)
5606 (file-name (string-append name "-" version ".tar.gz"))
5607 (uri (string-append home-page "/archive/"version ".tar.gz"))
5608 (sha256
5609 (base32 "03ql4nqfz5pn55mjly6clhvc3g7x2d28kj7mrlqmigvjbql39xxc"))))
5610 (build-system emacs-build-system)
5611 (synopsis "Implementation of streams for Emacs")
5612 (description "This library provides an implementation of streams for Emacs.
5613 Streams are implemented as delayed evaluation of cons cells.")
5614 (license license:gpl3+)))
5615
5616 (define-public emacs-el-search
5617 (let ((commit "f26277bfbb3fc3fc74beea6592f294c439796bd4")
5618 (revision "1"))
5619 (package
5620 (name "emacs-el-search")
5621 ;; No ufficial release.
5622 (version (string-append "0.0-" revision "." (string-take commit 7)))
5623 (home-page "https://github.com/emacsmirror/el-search")
5624 (source
5625 (origin
5626 (method git-fetch)
5627 (file-name (string-append name "-" version ".tar.gz"))
5628 (uri (git-reference
5629 (commit commit)
5630 (url (string-append home-page ".git"))))
5631 (sha256
5632 (base32 "12xf40h9sb7xxg2r97gsia94q02543mgiiiw46fzh1ac7b7993g6"))))
5633 (build-system emacs-build-system)
5634 (inputs `(("emacs-stream" ,emacs-stream)))
5635 (synopsis "Expression based interactive search for emacs-lisp-mode")
5636 (description "This package provides expression based interactive search
5637 procedures for emacs-lisp-mode.")
5638 (license license:gpl3+))))
5639
5640 (define-public emacs-ht
5641 (package
5642 (name "emacs-ht")
5643 (version "2.1")
5644 (source
5645 (origin
5646 (method url-fetch)
5647 (uri (string-append
5648 "https://github.com/Wilfred/ht.el/archive/"
5649 version ".tar.gz"))
5650 (file-name (string-append name "-" version ".tar.gz"))
5651 (sha256
5652 (base32
5653 "1lpba36kzxcc966fvsbrfpy8ah9gnvay0yk26gbyjil0rggrbqzj"))))
5654 (build-system emacs-build-system)
5655 (propagated-inputs `(("emacs-dash" ,emacs-dash)))
5656 (home-page "https://github.com/Wilfred/ht.el")
5657 (synopsis "Hash table library for Emacs")
5658 (description
5659 "This package simplifies the use of hash tables in elisp. It also
5660 provides functions to convert hash tables from and to alists and plists.")
5661 (license license:gpl3+)))
5662
5663 (define-public emacs-log4e
5664 (package
5665 (name "emacs-log4e")
5666 (version "0.3.0")
5667 (source
5668 (origin
5669 (method url-fetch)
5670 (uri (string-append
5671 "https://github.com/aki2o/log4e/archive/v"
5672 version ".tar.gz"))
5673 (file-name (string-append name "-" version ".tar.gz"))
5674 (sha256
5675 (base32
5676 "0nbdpbw353snda3v19l9hsm6gimppwnpxj18amm350bm81lyim2g"))))
5677 (build-system emacs-build-system)
5678 (arguments
5679 `(#:phases
5680 (modify-phases %standard-phases
5681 (add-after 'unpack 'remove-tests
5682 ;; Guile builder complains about null characters in some
5683 ;; strings of test files. Remove "test" directory (it is not
5684 ;; needed anyway).
5685 (lambda _
5686 (delete-file-recursively "test"))))))
5687 (home-page "https://github.com/aki2o/log4e")
5688 (synopsis "Logging framework for elisp")
5689 (description
5690 "This package provides a logging framework for elisp. It allows
5691 you to deal with multiple log levels.")
5692 (license license:gpl3+)))
5693
5694 (define-public emacs-gntp
5695 (package
5696 (name "emacs-gntp")
5697 (version "0.1")
5698 (source
5699 (origin
5700 (method url-fetch)
5701 (uri (string-append
5702 "https://github.com/tekai/gntp.el/archive/v"
5703 version ".tar.gz"))
5704 (file-name (string-append name "-" version ".tar.gz"))
5705 (sha256
5706 (base32
5707 "16c1dfkia9yhl206bdhjr3b8kfvqcqr38jl5lq8qsyrrzsnmghny"))))
5708 (build-system emacs-build-system)
5709 (home-page "https://github.com/tekai/gntp.el")
5710 (synopsis "Growl Notification Protocol for Emacs")
5711 (description
5712 "This package implements the Growl Notification Protocol GNTP
5713 described at @uref{http://www.growlforwindows.com/gfw/help/gntp.aspx}.
5714 It is incomplete as it only lets you send but not receive
5715 notifications.")
5716 (license license:bsd-3)))
5717
5718 (define-public emacs-alert
5719 (package
5720 (name "emacs-alert")
5721 (version "1.2")
5722 (source
5723 (origin
5724 (method url-fetch)
5725 (uri (string-append
5726 "https://github.com/jwiegley/alert/archive/v"
5727 version ".tar.gz"))
5728 (file-name (string-append name "-" version ".tar.gz"))
5729 (sha256
5730 (base32
5731 "1693kck3k2iz5zhpmxwqyafxm68hr6gzs60lkxd3j1wlp2c9fwyr"))))
5732 (build-system emacs-build-system)
5733 (propagated-inputs
5734 `(("emacs-gntp" ,emacs-gntp)
5735 ("emacs-log4e" ,emacs-log4e)))
5736 (home-page "https://github.com/jwiegley/alert")
5737 (synopsis "Growl-style notification system for Emacs")
5738 (description
5739 "Alert is a Growl-workalike for Emacs which uses a common notification
5740 interface and multiple, selectable \"styles\", whose use is fully
5741 customizable by the user.")
5742 (license license:gpl2+)))
5743
5744 (define-public emacs-mu4e-alert
5745 (package
5746 (name "emacs-mu4e-alert")
5747 (version "1.0")
5748 (source
5749 (origin
5750 (method url-fetch)
5751 (uri (string-append
5752 "https://github.com/iqbalansari/mu4e-alert/archive/v"
5753 version ".tar.gz"))
5754 (file-name (string-append name "-" version ".tar.gz"))
5755 (sha256
5756 (base32
5757 "07qc834qnxn8xi4bw5nawj8g91bmkzw0r0vahkgysp7r9xrf57gj"))))
5758 (build-system emacs-build-system)
5759 (propagated-inputs
5760 `(("emacs-alert" ,emacs-alert)
5761 ("emacs-s" ,emacs-s)
5762 ("emacs-ht" ,emacs-ht)
5763 ("mu" ,mu)))
5764 (home-page "https://github.com/iqbalansari/mu4e-alert")
5765 (synopsis "Desktop notification for mu4e")
5766 (description
5767 "This package provides desktop notifications for mu4e.
5768 Additionally it can display the number of unread emails in the
5769 mode-line.")
5770 (license license:gpl3+)))
5771
5772 (define-public emacs-pretty-mode
5773 (package
5774 (name "emacs-pretty-mode")
5775 (version "2.0.3")
5776 (source
5777 (origin
5778 (method url-fetch)
5779 (uri (string-append "https://github.com/akatov/pretty-mode/"
5780 "archive/" version ".tar.gz"))
5781 (file-name (string-append name "-" version ".tar.gz"))
5782 (sha256
5783 (base32
5784 "1fan7m4vnqs8kpg7r54kx3g7faadkpkf9kzarfv8n57kq8w157pl"))))
5785 (build-system emacs-build-system)
5786 (home-page "https://github.com/akatov/pretty-mode")
5787 (synopsis "Redisplay parts of the buffer as Unicode symbols")
5788 (description
5789 "Emacs minor mode for redisplaying parts of the buffer as pretty symbols.")
5790 (license license:gpl3+)))
5791
5792 (define-public emacs-yasnippet
5793 (package
5794 (name "emacs-yasnippet")
5795 (version "0.12.2")
5796 (source (origin
5797 (method url-fetch)
5798 (uri (string-append "https://github.com/joaotavora/yasnippet/"
5799 "archive/" version ".tar.gz"))
5800 (file-name (string-append name "-" version ".tar.gz"))
5801 (sha256
5802 (base32
5803 "01jabaz0g67bsziayrxgv74px55fx4nlrcl0csl8f1by2102pwc5"))
5804 (modules '((guix build utils)))
5805 (snippet
5806 '(begin
5807 ;; YASnippet expects a "snippets" subdirectory in the same
5808 ;; directory as yasnippet.el, but we don't install it
5809 ;; because it's a git submodule pointing to an external
5810 ;; repository. Adjust `yas-snippet-dirs' to prevent
5811 ;; warnings about a missing directory.
5812 (substitute* "yasnippet.el"
5813 (("^ +'yas-installed-snippets-dir\\)\\)\n")
5814 "))\n"))
5815 #t))))
5816 (build-system emacs-build-system)
5817 (home-page "https://github.com/joaotavora/yasnippet")
5818 (synopsis "Yet another snippet extension for Emacs")
5819 (description
5820 "YASnippet is a template system for Emacs. It allows you to type an
5821 abbreviation and automatically expand it into function templates.")
5822 (license license:gpl3+)))
5823
5824 (define-public emacs-yasnippet-snippets
5825 (let ((commit "885050d34737e2fb36a3e7759d60c09347bd4ce0")
5826 (revision "1"))
5827 (package
5828 (name "emacs-yasnippet-snippets")
5829 (version (string-append "1-" revision "." (string-take commit 8)))
5830 (source
5831 (origin
5832 (method git-fetch)
5833 (uri (git-reference
5834 (url "https://github.com/AndreaCrotti/yasnippet-snippets")
5835 (commit commit)))
5836 (file-name (string-append name "-" version "-checkout"))
5837 (sha256
5838 (base32
5839 "1m935zgglw0iakzrixld5rcjz3wnj84f8wy2mvc3pggjri9l0qr9"))))
5840 (build-system trivial-build-system)
5841 (arguments
5842 `(#:modules ((ice-9 ftw)
5843 (ice-9 regex)
5844 (guix build utils))
5845 #:builder
5846 (begin
5847 (use-modules (ice-9 ftw)
5848 (ice-9 regex)
5849 (guix build utils))
5850 (with-directory-excursion (assoc-ref %build-inputs "source")
5851 (for-each (lambda (dir)
5852 (copy-recursively
5853 dir
5854 (string-append %output
5855 "/share/emacs/yasnippet-snippets/"
5856 dir)))
5857 (scandir "." (lambda (fname)
5858 (and (string-match "-mode$" fname)
5859 (directory-exists? fname))))))
5860 #t)))
5861 (home-page "https://github.com/AndreaCrotti/yasnippet-snippets")
5862 (synopsis "Collection of YASnippet snippets for many languages")
5863 (description
5864 "Provides Andrea Crotti's collection of YASnippet snippets. After installation,
5865 the snippets will be in \"~/.guix-profile/share/emacs/yasnippet-snippets/\".
5866 To make YASnippet aware of these snippets, add the above directory to
5867 @code{yas-snippet-dirs}.")
5868 (license license:expat))))
5869
5870 (define-public emacs-helm-c-yasnippet
5871 (let ((commit "65ca732b510bfc31636708aebcfe4d2d845b59b0")
5872 (revision "1"))
5873 (package
5874 (name "emacs-helm-c-yasnippet")
5875 (version (string-append "0.6.7" "-" revision "."
5876 (string-take commit 7)))
5877 (source (origin
5878 (method git-fetch)
5879 (uri (git-reference
5880 (url "https://github.com/emacs-jp/helm-c-yasnippet")
5881 (commit commit)))
5882 (file-name (string-append name "-" version "-checkout"))
5883 (sha256
5884 (base32
5885 "1cbafjqlzxbg19xfdqsinsh7afq58gkf44rsg1qxfgm8g6zhr7f8"))))
5886 (build-system emacs-build-system)
5887 (propagated-inputs
5888 `(("emacs-helm" ,emacs-helm)
5889 ("emacs-yasnippet" ,emacs-yasnippet)))
5890 (home-page "https://github.com/emacs-jp/helm-c-yasnippet")
5891 (synopsis "Helm integration for Yasnippet")
5892 (description "This Emacs library provides Helm interface for
5893 Yasnippet.")
5894 (license license:gpl2+))))
5895
5896 (define-public emacs-helm-system-packages
5897 (package
5898 (name "emacs-helm-system-packages")
5899 (version "1.10.1")
5900 (source (origin
5901 (method git-fetch)
5902 (uri (git-reference
5903 (url "https://github.com/emacs-helm/helm-system-packages")
5904 (commit (string-append "v" version))))
5905 (file-name (string-append name "-" version "-checkout"))
5906 (sha256
5907 (base32
5908 "01by0c4lqi2cw8xmbxkjw7m9x78zssm31sx4hdpw5j35s2951j0f"))))
5909 (build-system emacs-build-system)
5910 (propagated-inputs
5911 `(("emacs-helm" ,emacs-helm)))
5912 (home-page "https://github.com/emacs-helm/helm-system-packages")
5913 (synopsis "Helm System Packages is an interface to your package manager")
5914 (description "List all available packages in Helm (with installed
5915 packages displayed in their own respective face). Fuzzy-search, mark and
5916 execute the desired action over any selections of packages: Install,
5917 uninstall, display packages details (in Org Mode) or insert details at point,
5918 find files owned by packages... And much more, including performing all the
5919 above over the network.")
5920 (license license:gpl3+)))
5921
5922 (define-public emacs-memoize
5923 (package
5924 (name "emacs-memoize")
5925 (version "1.1")
5926 (source
5927 (origin
5928 (method url-fetch)
5929 (uri (string-append
5930 "https://github.com/skeeto/emacs-memoize/archive/"
5931 version ".tar.gz"))
5932 (file-name (string-append name "-" version ".tar.gz"))
5933 (sha256
5934 (base32
5935 "05ijgwi4ymxx31vpjm2pn356j85cykknajn14lrzz8pn5sh0vrg4"))))
5936 (build-system emacs-build-system)
5937 (arguments
5938 `(#:tests? #t
5939 #:test-command '("emacs" "--batch"
5940 "-l" "memoize-test.el"
5941 "-f" "ert-run-tests-batch-and-exit")))
5942 (home-page "https://github.com/skeeto/emacs-memoize")
5943 (synopsis "Emacs lisp memoization library")
5944 (description "@code{emacs-memoize} is an Emacs library for
5945 memoizing functions.")
5946 (license license:unlicense)))
5947
5948 (define-public emacs-linum-relative
5949 (package
5950 (name "emacs-linum-relative")
5951 (version "0.5")
5952 (source
5953 (origin
5954 (method url-fetch)
5955 (uri (string-append
5956 "https://github.com/coldnew/linum-relative/archive/"
5957 version ".tar.gz"))
5958 (file-name (string-append name "-" version ".tar.gz"))
5959 (sha256
5960 (base32
5961 "0s4frvr27866lw1rn3jal9wj5rkz9fx4yiszqv7w06azsdgsqksv"))))
5962 (build-system emacs-build-system)
5963 (home-page "https://github.com/coldnew/linum-relative")
5964 (synopsis "Relative line numbering for Emacs")
5965 (description "@code{emacs-linum-relative} displays the relative line
5966 number on the left margin in Emacs.")
5967 (license license:gpl2+)))
5968
5969 (define-public emacs-idle-highlight
5970 (package
5971 (name "emacs-idle-highlight")
5972 (version "1.1.3")
5973 (source
5974 (origin
5975 (method url-fetch)
5976 (uri (string-append
5977 "https://github.com/nonsequitur/idle-highlight-mode/archive/"
5978 version ".tar.gz"))
5979 (file-name (string-append name "-" version ".tar.gz"))
5980 (sha256
5981 (base32
5982 "0kdv10hrgqpskjh0zvpnzwlkn5bccnqxas62gkws6njln57bf8nl"))))
5983 (build-system emacs-build-system)
5984 (home-page "https://www.emacswiki.org/emacs/IdleHighlight")
5985 (synopsis "Highlights all occurrences of the word the point is on")
5986 (description
5987 "This Emacs package provides @code{idle-highlight-mode} that sets
5988 an idle timer to highlight all occurrences in the buffer of the word under
5989 the point.")
5990 (license license:gpl3+)))
5991
5992 (define-public emacs-ox-twbs
5993 (package
5994 (name "emacs-ox-twbs")
5995 (version "1.1.1")
5996 (source
5997 (origin
5998 (method url-fetch)
5999 (uri (string-append
6000 "https://github.com/marsmining/ox-twbs/archive/v"
6001 version ".tar.gz"))
6002 (file-name (string-append name "-" version ".tar.gz"))
6003 (sha256
6004 (base32
6005 "1zaq8dczq5wijjk36114k2x3hfrqig3lyx6djril6wyk67vczyqs"))))
6006 (build-system emacs-build-system)
6007 (home-page "https://github.com/marsmining/ox-twbs")
6008 (synopsis "Export org-mode docs as HTML compatible with Twitter Bootstrap")
6009 (description
6010 "This Emacs package outputs your org-mode docs with a simple, clean and
6011 modern look. It implements a new HTML back-end for exporting org-mode docs as
6012 HTML compatible with Twitter Bootstrap. By default, HTML is exported with
6013 jQuery and Bootstrap resources included via osscdn.")
6014 (license license:gpl3+)))
6015
6016 (define-public emacs-highlight-sexp
6017 (package
6018 (name "emacs-highlight-sexp")
6019 (version "1.0")
6020 (source
6021 (origin
6022 (method url-fetch)
6023 (uri (string-append
6024 "https://github.com/daimrod/highlight-sexp/archive/v"
6025 version ".tar.gz"))
6026 (file-name (string-append name "-" version ".tar.gz"))
6027 (sha256
6028 (base32
6029 "0jwx87qkln1rg9wmv4qkgkml935fh2pkgrg5x4ca6n5dgb4q6rj1"))))
6030 (build-system emacs-build-system)
6031 (home-page "https://github.com/daimrod/highlight-sexp")
6032 (synopsis "Minor mode that highlights the s-exp at the current position")
6033 (description
6034 "This Emacs package highlights the s-exp at the current position.")
6035 (license license:gpl3+)))
6036
6037 (define-public emacs-highlight-stages
6038 (let ((commit "29cbc5b78261916da042ddb107420083da49b271")
6039 (revision "1"))
6040 (package
6041 (name "emacs-highlight-stages")
6042 (version (string-append "1.1.0" "-" revision "." (string-take commit 7)))
6043 (source
6044 (origin
6045 (method git-fetch)
6046 (uri (git-reference
6047 (url "https://github.com/zk-phi/highlight-stages.git")
6048 (commit commit)))
6049 (file-name (string-append name "-" version "-checkout"))
6050 (sha256
6051 (base32
6052 "0r6nbcrr0dqpgm8dir8ahzjy7rw4nrac48byamzrq96r7ajlxlv0"))
6053 (patches
6054 (search-patches "emacs-highlight-stages-add-gexp.patch"))))
6055 (build-system emacs-build-system)
6056 (home-page "https://github.com/wigust/highlight-stages")
6057 (synopsis "Minor mode that highlights (quasi-quoted) expressions")
6058 (description "@code{highlight-stages} provides an Emacs minor mode that
6059 highlights quasi-quoted expressions.")
6060 (license license:gpl3+))))
6061
6062 (define-public emacspeak
6063 (package
6064 (name "emacspeak")
6065 (version "48.0")
6066 (source
6067 (origin
6068 (method url-fetch)
6069 (uri (string-append
6070 "https://github.com/tvraman/emacspeak/releases/download/"
6071 version "/emacspeak-" version ".tar.bz2"))
6072 (sha256
6073 (base32
6074 "07imi3hji06b3r7v7v59978q76s8a7ynmxwfc9j03pgnv965lpjy"))))
6075 (build-system gnu-build-system)
6076 (arguments
6077 '(#:make-flags (list (string-append "prefix="
6078 (assoc-ref %outputs "out")))
6079 #:phases
6080 (modify-phases %standard-phases
6081 (replace 'configure
6082 (lambda* (#:key outputs #:allow-other-keys)
6083 (let* ((out (assoc-ref outputs "out"))
6084 (lisp (string-append out
6085 "/share/emacs/site-lisp/emacspeak")))
6086 (setenv "SHELL" (which "sh"))
6087 ;; Configure Emacspeak according to etc/install.org.
6088 (invoke "make" "config"))))
6089 (add-after 'build 'build-espeak
6090 (lambda _
6091 (invoke "make" "espeak")))
6092 (replace 'install
6093 (lambda* (#:key inputs outputs #:allow-other-keys)
6094 (let* ((out (assoc-ref outputs "out"))
6095 (bin (string-append out "/bin"))
6096 (lisp (string-append out "/share/emacs/site-lisp/emacspeak"))
6097 (info (string-append out "/share/info"))
6098 (emacs (string-append (assoc-ref inputs "emacs")
6099 "/bin/emacs")))
6100 ;; According to etc/install.org, the Emacspeak directory should
6101 ;; be copied to its installation destination.
6102 (for-each
6103 (lambda (file)
6104 (copy-recursively file (string-append lisp "/" file)))
6105 '("etc" "info" "js" "lisp" "media" "scapes" "servers" "sounds"
6106 "stumpwm" "xsl"))
6107 ;; Make sure emacspeak is loaded from the correct directory.
6108 (substitute* "etc/emacspeak.sh"
6109 (("exec FLAVOR.*")
6110 (string-append "exec " emacs " -l " lisp
6111 "/lisp/emacspeak-setup.el $CL_ALL")))
6112 ;; Install the convenient startup script.
6113 (mkdir-p bin)
6114 (copy-file "etc/emacspeak.sh" (string-append bin "/emacspeak")))
6115 #t))
6116 (add-after 'install 'wrap-program
6117 (lambda* (#:key inputs outputs #:allow-other-keys)
6118 (let* ((out (assoc-ref outputs "out"))
6119 (emacspeak (string-append out "/bin/emacspeak"))
6120 (espeak (string-append (assoc-ref inputs "espeak")
6121 "/bin/espeak")))
6122 ;; The environment variable DTK_PROGRAM tells emacspeak what
6123 ;; program to use for speech.
6124 (wrap-program emacspeak
6125 `("DTK_PROGRAM" ":" prefix (,espeak)))
6126 #t))))
6127 #:tests? #f)) ; no check target
6128 (inputs
6129 `(("emacs" ,emacs)
6130 ("espeak" ,espeak)
6131 ("perl" ,perl)
6132 ("tcl" ,tcl)
6133 ("tclx" ,tclx)))
6134 (home-page "http://emacspeak.sourceforge.net")
6135 (synopsis "Audio desktop interface for Emacs")
6136 (description
6137 "Emacspeak is a speech interface that allows visually impaired users to
6138 interact independently and efficiently with the computer. Audio formatting
6139 --a technique pioneered by AsTeR-- and full support for W3C's Aural CSS (ACSS)
6140 allows Emacspeak to produce rich aural presentations of electronic information.
6141 By seamlessly blending all aspects of the Internet such as Web-surfing and
6142 messaging, Emacspeak speech-enables local and remote information via a
6143 consistent and well-integrated user interface.")
6144 (license license:gpl2+)))
6145
6146 (define-public emacs-adaptive-wrap
6147 (package
6148 (name "emacs-adaptive-wrap")
6149 (version "0.5.1")
6150 (source (origin
6151 (method url-fetch)
6152 (uri (string-append
6153 "http://elpa.gnu.org/packages/adaptive-wrap-"
6154 version ".el"))
6155 (sha256
6156 (base32
6157 "0qi7gjprcpywk2daivnlavwsx53hl5wcqvpxbwinvigg42vxh3ll"))))
6158 (build-system emacs-build-system)
6159 (home-page "http://elpa.gnu.org/packages/adaptive-wrap.html")
6160 (synopsis "Smart line-wrapping with wrap-prefix")
6161 (description
6162 "This Emacs package provides the @code{adaptive-wrap-prefix-mode}
6163 minor mode which sets the wrap-prefix property on the fly so that
6164 single-long-line paragraphs get word-wrapped in a way similar to what
6165 you'd get with @kbd{M-q} using @code{adaptive-fill-mode}, but without
6166 actually changing the buffer's text.")
6167 (license license:gpl3+)))
6168
6169 (define-public emacs-diff-hl
6170 (package
6171 (name "emacs-diff-hl")
6172 (version "1.8.4")
6173 (source
6174 (origin
6175 (method url-fetch)
6176 (uri (string-append "http://elpa.gnu.org/packages/diff-hl-"
6177 version ".tar"))
6178 (sha256
6179 (base32
6180 "0axhidc3cym7a2x4rpxf4745qss9s9ajyg4s9h5b4zn7v7fyp71n"))))
6181 (build-system emacs-build-system)
6182 (home-page "https://github.com/dgutov/diff-hl")
6183 (synopsis
6184 "Highlight uncommitted changes using VC")
6185 (description
6186 "@code{diff-hl-mode} highlights uncommitted changes on the side of the
6187 window (using the fringe, by default), allows you to jump between
6188 the hunks and revert them selectively.")
6189 (license license:gpl3+)))
6190
6191 (define-public emacs-diminish
6192 (package
6193 (name "emacs-diminish")
6194 (version "0.45")
6195 (source
6196 (origin
6197 (method url-fetch)
6198 (uri (string-append
6199 "https://github.com/myrjola/diminish.el/archive/v"
6200 version ".tar.gz"))
6201 (file-name (string-append name "-" version ".tar.gz"))
6202 (sha256
6203 (base32
6204 "0i3629sv5cfrrb00hcnmaqzgs8mk36yasc1ax3ry1ga09nr6rkj9"))))
6205 (build-system emacs-build-system)
6206 (home-page "https://github.com/myrjola/diminish.el")
6207 (synopsis "Diminish minor modes with no modeline display")
6208 (description "@code{emacs-diminish} implements hiding or
6209 abbreviation of the mode line displays (lighters) of minor modes.")
6210 (license license:gpl2+)))
6211
6212 (define-public emacs-use-package
6213 (let ((commit "da8c9e2840343906e732f9699e43d35a1f06481d")
6214 (revision "1"))
6215 (package
6216 (name "emacs-use-package")
6217 (version (git-version "2.3" revision commit))
6218 (source (origin
6219 (method git-fetch)
6220 (uri (git-reference
6221 (url "https://github.com/jwiegley/use-package")
6222 (commit commit)))
6223 (file-name (git-file-name name version))
6224 (sha256
6225 (base32
6226 "0jz38pbq1p9h85i6qcsh3sfzkd103y6mw3rg5zd14dxigp8ir3xz"))))
6227 (build-system emacs-build-system)
6228 (propagated-inputs
6229 `(("emacs-diminish" ,emacs-diminish)))
6230 (arguments
6231 `(#:tests? #t
6232 #:test-command '("emacs" "--batch"
6233 "-l" "use-package-tests.el"
6234 "-f" "ert-run-tests-batch-and-exit")))
6235 (home-page "https://github.com/jwiegley/use-package")
6236 (synopsis "Declaration for simplifying your .emacs")
6237 (description "The use-package macro allows you to isolate package
6238 configuration in your @file{.emacs} file in a way that is both
6239 performance-oriented and tidy.")
6240 (license license:gpl2+))))
6241
6242 (define-public emacs-strace-mode
6243 (let* ((commit "6a69b4b06db6797af56f33eda5cb28af94e59f11")
6244 (revision "1"))
6245 (package
6246 (name "emacs-strace-mode")
6247 (version (string-append "0.0.2-" revision "." (string-take commit 7)))
6248 (source (origin
6249 (method git-fetch)
6250 (uri (git-reference
6251 (url "https://github.com/pkmoore/strace-mode")
6252 (commit commit)))
6253 (file-name (string-append name "-" version "-checkout"))
6254 (sha256
6255 (base32
6256 "1lbk2kzdznf2bkfazizfbimaxxzfzv00lrz1ran9dc2zqbc0bj9f"))))
6257 (build-system emacs-build-system)
6258 (home-page "https://github.com/pkmoore/strace-mode")
6259 (synopsis "Emacs major mode to highlight strace outputs")
6260 (description "@code{emacs-strace-mode} provides an Emacs major mode
6261 highlighting strace outputs.")
6262 (license license:gpl3+))))
6263
6264 (define-public emacs-default-encrypt
6265 (package
6266 (name "emacs-default-encrypt")
6267 (version "4.3")
6268 (source
6269 (origin
6270 (method url-fetch)
6271 (uri (string-append
6272 "https://www.informationelle-selbstbestimmung-im-internet.de"
6273 "/emacs/jl-encrypt" version "/jl-encrypt.el"))
6274 (file-name (string-append "jl-encrypt-" version ".el"))
6275 (sha256
6276 (base32
6277 "16i3rlfp3jxlqvndn8idylhmczync3gwmy8a019v29vyr48rnnr0"))))
6278 (build-system emacs-build-system)
6279 (home-page "https://www.informationelle-selbstbestimmung-im-internet.de/Emacs.html")
6280 (synopsis "Automatically encrypt or sign Gnus messages in Emacs")
6281 (description
6282 "DefaultEncrypt is designed to be used with Gnus in Emacs. It
6283 automatically encrypts messages that you send (e.g., email) when public keys
6284 for all recipients are available, and it protects you from accidentally
6285 sending un-encrypted messages. It can also be configured to automatically
6286 sign messages that you send. For details and instructions on how to use
6287 DefaultEncrypt, please refer to the home page or read the comments in the
6288 source file, @file{jl-encrypt.el}.")
6289 (license license:gpl3+)))
6290
6291 (define-public emacs-htmlize
6292 (package
6293 (name "emacs-htmlize")
6294 (version "1.53")
6295 (source
6296 (origin
6297 (method url-fetch)
6298 (uri (string-append
6299 "https://github.com/hniksic/emacs-htmlize/archive/release/"
6300 version ".tar.gz"))
6301 (file-name (string-append name "-" version ".tar.gz"))
6302 (sha256
6303 (base32
6304 "1lzaf9m1qr9dhw4nn53g6wszk2vqw95gpsbrc3y85bams4cn24ga"))))
6305 (build-system emacs-build-system)
6306 (home-page "https://github.com/hniksic/emacs-htmlize")
6307 (synopsis "Convert buffer text and decorations to HTML")
6308 (description "@code{emacs-htmlize} converts the buffer text and
6309 the associated decorations to HTML. Output to CSS, inline CSS and
6310 fonts is supported.")
6311 (license license:gpl2+)))
6312
6313 (define-public emacs-xmlgen
6314 (package
6315 (name "emacs-xmlgen")
6316 (version "0.5")
6317 (source
6318 (origin
6319 (method url-fetch)
6320 (uri (string-append
6321 "https://github.com/philjackson/xmlgen/archive/"
6322 version ".tar.gz"))
6323 (file-name (string-append name "-" version ".tar.gz"))
6324 (sha256
6325 (base32
6326 "0zay490vjby3f7455r0vydmjg7q1gwc78hilpfb0rg4gwz224z8r"))))
6327 (build-system emacs-build-system)
6328 (arguments
6329 `(#:tests? #t
6330 #:test-command '("emacs" "--batch"
6331 "-l" "xmlgen-test.el"
6332 "-f" "ert-run-tests-batch-and-exit")))
6333 (home-page "https://github.com/philjackson/xmlgen")
6334 (synopsis "S-expression to XML domain specific language (DSL) in
6335 Emacs Lisp")
6336 (description "@code{emacs-xmlgen} provides S-expression to XML
6337 conversion for Emacs Lisp.")
6338 (license license:gpl2+)))
6339
6340 (define-public emacs-cdlatex
6341 (package
6342 (name "emacs-cdlatex")
6343 (version "4.7")
6344 (source
6345 (origin
6346 (method url-fetch)
6347 (uri (string-append
6348 "https://github.com/cdominik/cdlatex/archive/"
6349 version ".tar.gz"))
6350 (file-name (string-append name "-" version ".tar.gz"))
6351 (sha256
6352 (base32
6353 "0pivapphmykc6vhvpx7hdyl55ls37vc4jcrxpvs4yk7jzcmwa9xp"))))
6354 (build-system emacs-build-system)
6355 (propagated-inputs
6356 `(("emacs-auctex" ,emacs-auctex)))
6357 (home-page "https://github.com/cdominik/cdlatex")
6358 (synopsis "Fast Emacs input methods for LaTeX environments and
6359 math")
6360 (description "CDLaTeX is an Emacs minor mode supporting fast
6361 insertion of environment templates and math in LaTeX. Similar
6362 commands are also offered as part of the AUCTeX package, but it is not
6363 the same - CDLaTeX focuses on speediness for inserting LaTeX
6364 constructs.")
6365 (license license:gpl3+)))
6366
6367 (define-public emacs-cnfonts
6368 (package
6369 (name "emacs-cnfonts")
6370 (version "0.9.1")
6371 (source (origin
6372 (method url-fetch)
6373 (uri (string-append
6374 "https://github.com/tumashu/cnfonts/archive/v"
6375 version ".tar.gz"))
6376 (file-name (string-append name "-" version ".tar.gz"))
6377 (sha256
6378 (base32
6379 "1l6cgcvc6md1zq97ccczankpyi0k4vjx6apflny6kjq3p33lyhf4"))))
6380 (build-system emacs-build-system)
6381 (home-page "https://github.com/tumashu/cnfonts")
6382 (synopsis "Emacs Chinese fonts setup tool")
6383 (description "cnfonts is a Chinese fonts setup tool, allowing for easy
6384 configuration of Chinese fonts.")
6385 (license license:gpl2+)))
6386
6387 (define-public emacs-php-mode
6388 (package
6389 (name "emacs-php-mode")
6390 (version "20171225.342")
6391 (source (origin
6392 (method url-fetch)
6393 (uri (string-append
6394 "https://melpa.org/packages/php-mode-"
6395 version ".tar"))
6396 (sha256
6397 (base32
6398 "1zz682f34v4wsm2dyj1gnrnvsrqdq1cy7j8p6cvc398w2fziyg3q"))))
6399 (build-system emacs-build-system)
6400 (home-page "https://github.com/ejmr/php-mode")
6401 (synopsis "Major mode for editing PHP code")
6402 (description "@code{php-mode} is a major mode for editing PHP source
6403 code. It's an extension of C mode; thus it inherits all C mode's navigation
6404 functionality. But it colors according to the PHP grammar and indents
6405 according to the PEAR coding guidelines. It also includes a couple handy
6406 IDE-type features such as documentation search and a source and class
6407 browser.")
6408 (license license:gpl3+)))
6409
6410 (define-public emacs-pos-tip
6411 (package
6412 (name "emacs-pos-tip")
6413 (version "0.4.6")
6414 (source (origin
6415 (method url-fetch)
6416 (uri (string-append
6417 "https://github.com/pitkali/pos-tip/archive/"
6418 version ".tar.gz"))
6419 (file-name (string-append name "-" version ".tar.gz"))
6420 (sha256
6421 (base32
6422 "12jqfy26vjk7lq0aa8yn8zqj8c85fkvx7y9prj0pcn4wqiz2ad2r"))))
6423 (build-system emacs-build-system)
6424 ;; The following functions and variables needed by emacs-pos-tip are
6425 ;; not included in emacs-minimal:
6426 ;; x-display-pixel-width, x-display-pixel-height, x-show-tip
6427 (arguments `(#:emacs ,emacs))
6428 (home-page "https://github.com/pitkali/pos-tip")
6429 (synopsis "Show tooltip at point")
6430 (description "The standard library tooltip.el provides a function for
6431 displaying a tooltip at the mouse position. However, locating a tooltip at an
6432 arbitrary buffer position in a window is not easy. Pos-tip provides such a
6433 function to be used by other frontend programs.")
6434 (license license:gpl2+)))
6435
6436 (define-public emacs-pyim-basedict
6437 (package
6438 (name "emacs-pyim-basedict")
6439 (version "0.3.1")
6440 (source (origin
6441 (method url-fetch)
6442 (uri (string-append
6443 "https://github.com/tumashu/pyim-basedict/archive/v"
6444 version ".tar.gz"))
6445 (file-name (string-append name "-" version ".tar.gz"))
6446 (sha256
6447 (base32
6448 "0nfgxviavkgrpyfsw60xsws4fk51fcmgl8fp6zf4ibqjjbp53n3n"))))
6449 (build-system emacs-build-system)
6450 (home-page "https://github.com/tumashu/pyim-basedict")
6451 (synopsis "Input method dictionary of pyim")
6452 (description "Pyim-basedict is the default pinyin input method dictionary,
6453 containing words from the rime project.")
6454 (license license:gpl2+)))
6455
6456 (define-public emacs-pyim
6457 (package
6458 (name "emacs-pyim")
6459 (version "1.6.4")
6460 (source (origin
6461 (method url-fetch)
6462 (uri (string-append
6463 "https://github.com/tumashu/pyim/archive/v"
6464 version ".tar.gz"))
6465 (file-name (string-append name "-" version ".tar.gz"))
6466 (sha256
6467 (base32
6468 "0hfg8q9hcjifvnlghw2g94dfxfirms2psq2ghqb28fhkf0lks13r"))))
6469 (build-system emacs-build-system)
6470 (propagated-inputs
6471 `(("emacs-async" ,emacs-async)
6472 ("emacs-pyim-basedict" ,emacs-pyim-basedict)
6473 ("emacs-popup" ,emacs-popup)
6474 ("emacs-pos-tip" ,emacs-pos-tip)))
6475 (home-page "https://github.com/tumashu/pyim")
6476 (synopsis "Chinese input method")
6477 (description "Chinese input method which supports quanpin, shuangpin, wubi
6478 and cangjie.")
6479 (license license:gpl2+)))
6480
6481 (define-public emacs-el2org
6482 (package
6483 (name "emacs-el2org")
6484 (version "0.6.0")
6485 (source (origin
6486 (method url-fetch)
6487 (uri (string-append
6488 "https://github.com/tumashu/el2org/archive/v"
6489 version ".tar.gz"))
6490 (file-name (string-append name "-" version ".tar.gz"))
6491 (sha256
6492 (base32
6493 "0gd3km1swwvg2w0kdi7370f54wgrflxn63gjgssfjc1iyc9sbqwq"))))
6494 (build-system emacs-build-system)
6495 (home-page "https://github.com/tumashu/el2org")
6496 (synopsis "Convert Emacs-lisp file to org file")
6497 (description "El2org is a simple tool, which can convert Emacs-lisp file
6498 to org file, you can use this tool to write orgify commentary.")
6499 (license license:gpl2+)))
6500
6501 (define-public emacs-mustache
6502 (package
6503 (name "emacs-mustache")
6504 (version "0.23")
6505 (source (origin
6506 (method url-fetch)
6507 (uri (string-append
6508 "https://github.com/Wilfred/mustache.el/archive/"
6509 version ".tar.gz"))
6510 (file-name (string-append name "-" version ".tar.gz"))
6511 (sha256
6512 (base32
6513 "0k9lcgil7kykkv1ylrgwy1g13ldjjmgi2cwmysgyb2vlj3jbwpdj"))))
6514 (build-system emacs-build-system)
6515 (propagated-inputs
6516 `(("emacs-dash" ,emacs-dash)
6517 ("emacs-ht" ,emacs-ht)
6518 ("emacs-s" ,emacs-s)))
6519 (home-page "https://github.com/Wilfred/mustache.el")
6520 (synopsis "Mustache templating library for Emacs")
6521 (description "Mustache templating library for Emacs, mustache is
6522 a simple web template system, which is described as a logic-less system
6523 because it lacks any explicit control flow statements, both looping and
6524 conditional evaluation can be achieved using section tags processing lists
6525 and lambdas.")
6526 (license license:gpl3+)))
6527
6528 (define-public emacs-org2web
6529 (package
6530 (name "emacs-org2web")
6531 (version "0.9.1")
6532 (source (origin
6533 (method url-fetch)
6534 (uri (string-append
6535 "https://github.com/tumashu/org2web/archive/v"
6536 version ".tar.gz"))
6537 (file-name (string-append name "-" version ".tar.gz"))
6538 (sha256
6539 (base32
6540 "1c0ixcphlhp4c4qdiwq40bc3yp1gp1llp8pxrk4s7ny9n68s52zp"))))
6541 (build-system emacs-build-system)
6542 (propagated-inputs
6543 `(("emacs-dash" ,emacs-dash)
6544 ("emacs-el2org" ,emacs-el2org)
6545 ("emacs-ht" ,emacs-ht)
6546 ("emacs-mustache" ,emacs-mustache)
6547 ("emacs-simple-httpd" ,emacs-simple-httpd)))
6548 (home-page "https://github.com/tumashu/org2web")
6549 (synopsis "Static site generator based on org-mode ")
6550 (description "Org2web is a static site generator based on org-mode,
6551 which code derived from Kelvin H's org-page.")
6552 (license license:gpl2+)))
6553
6554 (define-public emacs-xelb
6555 (package
6556 (name "emacs-xelb")
6557 (version "0.15")
6558 (source (origin
6559 (method url-fetch)
6560 (uri (string-append "https://elpa.gnu.org/packages/xelb-"
6561 version ".tar"))
6562 (sha256
6563 (base32
6564 "031rvgprsqhf344p9wsczr50vj2qcpwdmhxi80jdbrsm7wyxf3qz"))))
6565 (build-system emacs-build-system)
6566 ;; The following functions and variables needed by emacs-xelb are
6567 ;; not included in emacs-minimal:
6568 ;; x-display-screens, x-keysym-table, x-alt-keysym, x-meta-keysym
6569 ;; x-hyper-keysym, x-super-keysym, libxml-parse-xml-region
6570 ;; x-display-pixel-width, x-display-pixel-height
6571 (arguments
6572 `(#:emacs ,emacs
6573 #:phases
6574 (modify-phases %standard-phases
6575 (add-after 'unpack 'regenerate-el-files
6576 (lambda* (#:key inputs #:allow-other-keys)
6577 (invoke "make"
6578 (string-append "PROTO_PATH="
6579 (assoc-ref inputs "xcb-proto")
6580 "/share/xcb")
6581 (string-append "EMACS_BIN="
6582 (assoc-ref inputs "emacs")
6583 "/bin/emacs -Q")))))))
6584 (native-inputs `(("xcb-proto" ,xcb-proto)))
6585 (home-page "https://github.com/ch11ng/xelb")
6586 (synopsis "X protocol Emacs Lisp binding")
6587 (description "@code{emacs-xelb} is a pure Emacs Lisp implementation of the
6588 X11 protocol based on the XML description files from the XCB project. It
6589 features an object-oriented API and permits a certain degree of concurrency.
6590 It should enable you to implement low-level X11 applications.")
6591 (license license:gpl3+)))
6592
6593 (define-public emacs-exwm
6594 (package
6595 (name "emacs-exwm")
6596 (version "0.19")
6597 (synopsis "Emacs X window manager")
6598 (source (origin
6599 (method url-fetch)
6600 (uri (string-append "https://elpa.gnu.org/packages/exwm-"
6601 version ".tar"))
6602 (sha256
6603 (base32
6604 "11xd2w4h3zdwkdxypvmcz8s7q72cn76lfr9js77jbizyj6b04lr0"))
6605 (patches (search-patches "emacs-exwm-fix-fullscreen-issue.patch"))))
6606 (build-system emacs-build-system)
6607 (propagated-inputs
6608 `(("emacs-xelb" ,emacs-xelb)))
6609 (inputs
6610 `(("xhost" ,xhost)
6611 ("dbus" ,dbus)))
6612 ;; The following functions and variables needed by emacs-exwm are
6613 ;; not included in emacs-minimal:
6614 ;; scroll-bar-mode, fringe-mode
6615 ;; x-display-pixel-width, x-display-pixel-height
6616 (arguments
6617 `(#:emacs ,emacs
6618 #:phases
6619 (modify-phases %standard-phases
6620 (add-after 'build 'install-xsession
6621 (lambda* (#:key inputs outputs #:allow-other-keys)
6622 (let* ((out (assoc-ref outputs "out"))
6623 (xsessions (string-append out "/share/xsessions"))
6624 (bin (string-append out "/bin"))
6625 (exwm-executable (string-append bin "/exwm")))
6626 ;; Add a .desktop file to xsessions
6627 (mkdir-p xsessions)
6628 (mkdir-p bin)
6629 (with-output-to-file
6630 (string-append xsessions "/exwm.desktop")
6631 (lambda _
6632 (format #t "[Desktop Entry]~@
6633 Name=~a~@
6634 Comment=~a~@
6635 Exec=~a~@
6636 TryExec=~@*~a~@
6637 Type=Application~%" ,name ,synopsis exwm-executable)))
6638 ;; Add a shell wrapper to bin
6639 (with-output-to-file exwm-executable
6640 (lambda _
6641 (format #t "#!~a ~@
6642 ~a +SI:localuser:$USER ~@
6643 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
6644 (string-append (assoc-ref inputs "bash") "/bin/sh")
6645 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
6646 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
6647 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
6648 '(cond
6649 ((file-exists-p "~/.exwm")
6650 (load-file "~/.exwm"))
6651 ((not (featurep 'exwm))
6652 (require 'exwm)
6653 (require 'exwm-config)
6654 (exwm-config-default)
6655 (message (concat "exwm configuration not found. "
6656 "Falling back to default configuration...")))))))
6657 (chmod exwm-executable #o555)
6658 #t))))))
6659 (home-page "https://github.com/ch11ng/exwm")
6660 (description "EXWM is a full-featured tiling X window manager for Emacs
6661 built on top of XELB.")
6662 (license license:gpl3+)))
6663
6664 (define-public emacs-switch-window
6665 (package
6666 (name "emacs-switch-window")
6667 (version "1.5.1")
6668 (source (origin
6669 (method url-fetch)
6670 (uri (string-append
6671 "https://github.com/dimitri/switch-window/archive/v"
6672 version ".tar.gz"))
6673 (file-name (string-append name "-" version ".tar.gz"))
6674 (sha256
6675 (base32
6676 "07f99apxscwvsp2bjxsbi462c433kcglrjh6xl0gyafs1nvvvnd8"))))
6677 (build-system emacs-build-system)
6678 (home-page "https://github.com/dimitri/switch-window")
6679 (synopsis "Emacs window switch tool")
6680 (description "Switch-window is an emacs window switch tool, which
6681 offer a visual way to choose a window to switch to, delete, split or
6682 other operations.")
6683 (license license:wtfpl2)))
6684
6685 (define-public emacs-exwm-x
6686 (package
6687 (name "emacs-exwm-x")
6688 (version "1.8.1")
6689 (synopsis "Derivative window manager based on EXWM")
6690 (source (origin
6691 (method url-fetch)
6692 (uri (string-append
6693 "https://github.com/tumashu/exwm-x/archive/v"
6694 version ".tar.gz"))
6695 (file-name (string-append name "-" version ".tar.gz"))
6696 (sha256
6697 (base32
6698 "0ali1100aacq4zbvcck80h51pvw204jlxhn4aikkqq4ngbx03kkr"))))
6699 (build-system emacs-build-system)
6700 (propagated-inputs
6701 `(("emacs-exwm" ,emacs-exwm)
6702 ("emacs-switch-window" ,emacs-switch-window)
6703 ("emacs-ivy" ,emacs-ivy)
6704 ("emacs-use-package" ,emacs-use-package)))
6705 (inputs
6706 `(("xhost" ,xhost)
6707 ("dbus" ,dbus)))
6708 ;; Need emacs instead of emacs-minimal,
6709 ;; for emacs's bin path will be inserted into bin/exwm-x file.
6710 (arguments
6711 `(#:emacs ,emacs
6712 #:phases
6713 (modify-phases %standard-phases
6714 (add-after 'build 'install-xsession
6715 (lambda* (#:key inputs outputs #:allow-other-keys)
6716 (let* ((out (assoc-ref outputs "out"))
6717 (xsessions (string-append out "/share/xsessions"))
6718 (bin (string-append out "/bin"))
6719 (exwm-executable (string-append bin "/exwm-x")))
6720 ;; Add a .desktop file to xsessions
6721 (mkdir-p xsessions)
6722 (mkdir-p bin)
6723 (with-output-to-file
6724 (string-append xsessions "/exwm-x.desktop")
6725 (lambda _
6726 (format #t "[Desktop Entry]~@
6727 Name=~a~@
6728 Comment=~a~@
6729 Exec=~a~@
6730 TryExec=~@*~a~@
6731 Type=Application~%" ,name ,synopsis exwm-executable)))
6732 ;; Add a shell wrapper to bin
6733 (with-output-to-file exwm-executable
6734 (lambda _
6735 (format #t "#!~a ~@
6736 ~a +SI:localuser:$USER ~@
6737 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
6738 (string-append (assoc-ref inputs "bash") "/bin/sh")
6739 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
6740 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
6741 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
6742 '(require 'exwmx-loader))))
6743 (chmod exwm-executable #o555)
6744 #t))))))
6745 (home-page "https://github.com/tumashu/exwm-x")
6746 (description "EXWM-X is a derivative window manager based on EXWM, with focus
6747 on mouse-control.")
6748 (license license:gpl3+)))
6749
6750 (define-public emacs-gnuplot
6751 (package
6752 (name "emacs-gnuplot")
6753 (version "0.7.0")
6754 (source
6755 (origin
6756 (method url-fetch)
6757 (uri (string-append
6758 "https://github.com/bruceravel/gnuplot-mode/archive/"
6759 version ".tar.gz"))
6760 (file-name (string-append name "-" version ".tar.gz"))
6761 (sha256
6762 (base32
6763 "0glzymrn138lwig7p4cj17x4if5jisr6l4g6wcbxisqkqgc1h01i"))))
6764 (build-system gnu-build-system)
6765 (native-inputs `(("emacs" ,emacs-minimal)))
6766 (arguments
6767 (let ((elisp-dir (string-append "/share/emacs/site-lisp/guix.d"
6768 "/gnuplot-" version)))
6769 `(#:modules ((guix build gnu-build-system)
6770 (guix build utils)
6771 (guix build emacs-utils))
6772 #:imported-modules (,@%gnu-build-system-modules
6773 (guix build emacs-utils))
6774 #:configure-flags
6775 (list (string-append "EMACS=" (assoc-ref %build-inputs "emacs")
6776 "/bin/emacs")
6777 (string-append "--with-lispdir=" %output ,elisp-dir))
6778 #:phases
6779 (modify-phases %standard-phases
6780 (add-after 'install 'generate-autoloads
6781 (lambda* (#:key outputs #:allow-other-keys)
6782 (emacs-generate-autoloads
6783 "gnuplot"
6784 (string-append (assoc-ref outputs "out") ,elisp-dir))
6785 #t))))))
6786 (home-page "https://github.com/bruceravel/gnuplot-mode")
6787 (synopsis "Emacs major mode for interacting with gnuplot")
6788 (description "@code{emacs-gnuplot} is an emacs major mode for interacting
6789 with gnuplot.")
6790 (license license:gpl2+)))
6791
6792 (define-public emacs-transpose-frame
6793 (package
6794 (name "emacs-transpose-frame")
6795 (version "0.1.0")
6796 (source
6797 (origin
6798 (method url-fetch)
6799 (uri "http://www.emacswiki.org/emacs/download/transpose-frame.el")
6800 (file-name (string-append "transpose-frame-" version ".el"))
6801 (sha256
6802 (base32
6803 "1f67yksgw9s6j0033hmqzaxx2a93jm11sd5ys7cc3li5gfh680m4"))))
6804 (build-system emacs-build-system)
6805 (home-page "https://www.emacswiki.org/emacs/TransposeFrame")
6806 (synopsis "Transpose window arrangement in current frame")
6807 (description "@code{emacs-transpose-frame} provides some interactive
6808 functions which allows users to transpose windows arrangement in currently
6809 selected frame.")
6810 (license license:bsd-2)))
6811
6812 (define-public emacs-key-chord
6813 (package
6814 (name "emacs-key-chord")
6815 (version "0.6")
6816 (source
6817 (origin
6818 (method url-fetch)
6819 (uri "https://www.emacswiki.org/emacs/download/key-chord.el")
6820 (file-name (string-append "key-chord-" version ".el"))
6821 (sha256
6822 (base32
6823 "03m44pqggfrd53nh9dvpdjgm0rvca34qxmd30hr33hzprzjambxg"))))
6824 (build-system emacs-build-system)
6825 (home-page "https://www.emacswiki.org/emacs/key-chord.el")
6826 (synopsis "Map pairs of simultaneously pressed keys to Emacs commands")
6827 (description "@code{emacs-key-chord} provides @code{key-chord-mode}, a
6828 mode for binding key chords to commands. A key chord is defined as two keys
6829 pressed simultaneously or a single key quickly pressed twice.")
6830 (license license:gpl2+)))
6831
6832 (define-public emacs-evil-surround
6833 (package
6834 (name "emacs-evil-surround")
6835 (version "1.0.0")
6836 (source
6837 (origin
6838 (method url-fetch)
6839 (uri (string-append
6840 "https://github.com/timcharper/evil-surround/archive/v"
6841 version ".tar.gz"))
6842 (file-name (string-append name "-" version ".tar.gz"))
6843 (sha256
6844 (base32
6845 "0p572jgic3q1ia1nz37kclir729ay6i2f4sa7wnaapyxly2lwb3r"))))
6846 (build-system emacs-build-system)
6847 (propagated-inputs
6848 `(("emacs-evil" ,emacs-evil)))
6849 (home-page "https://github.com/timcharper/evil-surround")
6850 (synopsis "Easily modify surrounding parantheses and quotes")
6851 (description "@code{emacs-evil-surround} allows easy deletion, change and
6852 addition of surrounding pairs, such as parantheses and quotes, in evil mode.")
6853 (license license:gpl3+)))
6854
6855 (define-public emacs-evil-commentary
6856 (package
6857 (name "emacs-evil-commentary")
6858 (version "2.1.1")
6859 (source
6860 (origin
6861 (method url-fetch)
6862 (uri (string-append
6863 "https://github.com/linktohack/evil-commentary/archive/v"
6864 version ".tar.gz"))
6865 (file-name (string-append name "-" version ".tar.gz"))
6866 (sha256
6867 (base32
6868 "1jdya0i921nwskwrzdsj0vrr3m7gm49dy6f6pk9p5nxaarfxk230"))))
6869 (build-system emacs-build-system)
6870 (propagated-inputs
6871 `(("emacs-evil" ,emacs-evil)))
6872 (home-page "https://github.com/linktohack/evil-commentary")
6873 (synopsis "Comment out code in evil mode")
6874 (description "@code{emacs-evil-commentary} adds keybindings to easily
6875 comment out lines of code in evil mode. It provides @code{gcc} to comment out
6876 lines, and @code{gc} to comment out the target of a motion.")
6877 (license license:gpl3+)))
6878
6879 ;; Tests for emacs-ansi have a circular dependency with ert-runner, and
6880 ;; therefore cannot be run
6881 (define-public emacs-ansi
6882 (package
6883 (name "emacs-ansi")
6884 (version "0.4.1")
6885 (source
6886 (origin
6887 (method url-fetch)
6888 (uri (string-append "https://github.com/rejeep/ansi.el/archive/v"
6889 version ".tar.gz"))
6890 (file-name (string-append name "-" version ".tar.gz"))
6891 (sha256
6892 (base32
6893 "13jj4vbi98j3p17hs99bmy7g21jd5h4v3wpxk4pkvhylm3bfwjw8"))))
6894 (build-system emacs-build-system)
6895 (propagated-inputs
6896 `(("emacs-dash" ,emacs-dash)
6897 ("emacs-s" ,emacs-s)))
6898 (home-page "https://github.com/rejeep/ansi.el")
6899 (synopsis "Convert strings to ANSI")
6900 (description "@code{emacs-ansi} defines functions that turns simple
6901 strings to ANSI strings. Turning a string into an ANSI string can be to add
6902 color to a text, add color in the background of a text or adding a style, such
6903 as bold, underscore or italic.")
6904 (license license:gpl3+)))
6905
6906 ;; Tests for emacs-commander have a circular dependency with ert-runner, and
6907 ;; therefore cannot be run
6908 (define-public emacs-commander
6909 (package
6910 (name "emacs-commander")
6911 (version "0.7.0")
6912 (source
6913 (origin
6914 (method url-fetch)
6915 (uri (string-append "https://github.com/rejeep/commander.el/archive/v"
6916 version ".tar.gz"))
6917 (file-name (string-append name "-" version ".tar.gz"))
6918 (sha256
6919 (base32
6920 "196s2i15z7gwxa97l1wkxvjnfmj5n38wwm6d3g4zz15l2vqggc2y"))))
6921 (build-system emacs-build-system)
6922 (propagated-inputs
6923 `(("emacs-dash" ,emacs-dash)
6924 ("emacs-f" ,emacs-f)
6925 ("emacs-s" ,emacs-s)))
6926 (home-page "https://github.com/rejeep/commander.el")
6927 (synopsis "Emacs command line parser")
6928 (description "@code{emacs-commander} provides command line parsing for
6929 Emacs.")
6930 (license license:gpl3+)))
6931
6932 ;; Tests for ert-runner have a circular dependency with ecukes, and therefore
6933 ;; cannot be run
6934 (define-public ert-runner
6935 (package
6936 (name "ert-runner")
6937 (version "0.7.0")
6938 (source
6939 (origin
6940 (method url-fetch)
6941 (uri (string-append "https://github.com/rejeep/ert-runner.el/archive/v"
6942 version ".tar.gz"))
6943 (file-name (string-append name "-" version ".tar.gz"))
6944 (sha256
6945 (base32
6946 "1657nck9i96a4xgl8crfqq0s8gflzp21pkkzwg6m3z5npjxklgwp"))))
6947 (build-system emacs-build-system)
6948 (inputs
6949 `(("emacs-ansi" ,emacs-ansi)
6950 ("emacs-commander" ,emacs-commander)
6951 ("emacs-dash" ,emacs-dash)
6952 ("emacs-f" ,emacs-f)
6953 ("emacs-s" ,emacs-s)
6954 ("emacs-shut-up" ,emacs-shut-up)))
6955 (arguments
6956 `(#:phases
6957 (modify-phases %standard-phases
6958 (add-after 'install 'install-executable
6959 (lambda* (#:key inputs outputs #:allow-other-keys)
6960 (let ((out (assoc-ref outputs "out")))
6961 (substitute* "bin/ert-runner"
6962 (("ERT_RUNNER=\"\\$\\(dirname \\$\\(dirname \\$0\\)\\)")
6963 (string-append "ERT_RUNNER=\"" out
6964 "/share/emacs/site-lisp/guix.d/"
6965 ,name "-" ,version)))
6966 (install-file "bin/ert-runner" (string-append out "/bin"))
6967 (wrap-program (string-append out "/bin/ert-runner")
6968 (list "EMACSLOADPATH" ":" 'prefix
6969 (string-split (getenv "EMACSLOADPATH") #\:)))
6970 #t))))
6971 #:include (cons* "^reporters/.*\\.el$" %default-include)))
6972 (home-page "https://github.com/rejeep/ert-runner.el")
6973 (synopsis "Opinionated Ert testing workflow")
6974 (description "@code{ert-runner} is a tool for Emacs projects tested
6975 using ERT. It assumes a certain test structure setup and can therefore make
6976 running tests easier.")
6977 (license license:gpl3+)))
6978
6979 (define-public emacs-disable-mouse
6980 (package
6981 (name "emacs-disable-mouse")
6982 (version "0.2")
6983 (source
6984 (origin
6985 (method url-fetch)
6986 (uri (string-append
6987 "https://github.com/purcell/disable-mouse/archive/"
6988 version ".tar.gz"))
6989 (file-name (string-append name "-" version ".tar.gz"))
6990 (sha256
6991 (base32
6992 "0haqpq23r1wx04lsqrrg3p5visg9hx5i36dg55ab003wfsrlrzbc"))))
6993 (build-system emacs-build-system)
6994 (home-page "https://github.com/purcell/disable-mouse")
6995 (synopsis "Disable mouse commands globally")
6996 (description
6997 "Provides @code{disable-mouse-mode} and @code{global-disable-mouse-mode},
6998 pair of minor modes which suppress all mouse events by intercepting them and
6999 running a customisable handler command (@code{ignore} by default). ")
7000 (license license:gpl3+)))
7001
7002 (define-public emacs-json-reformat
7003 (package
7004 (name "emacs-json-reformat")
7005 (version "0.0.6")
7006 (source
7007 (origin
7008 (method url-fetch)
7009 (uri (string-append "https://github.com/gongo/json-reformat/archive/"
7010 version ".tar.gz"))
7011 (file-name (string-append name "-" version ".tar.gz"))
7012 (sha256
7013 (base32
7014 "11fbq4scrgr7m0iwnzcrn2g7xvqwm2gf82sa7zy1l0nil7265p28"))
7015 (patches (search-patches "emacs-json-reformat-fix-tests.patch"))))
7016 (build-system emacs-build-system)
7017 (propagated-inputs
7018 `(("emacs-undercover" ,emacs-undercover)))
7019 (native-inputs
7020 `(("emacs-dash" ,emacs-dash)
7021 ("emacs-shut-up" ,emacs-shut-up)
7022 ("ert-runner" ,ert-runner)))
7023 (arguments
7024 `(#:tests? #t
7025 #:test-command '("ert-runner")))
7026 (home-page "https://github.com/gongo/json-reformat")
7027 (synopsis "Reformatting tool for JSON")
7028 (description "@code{json-reformat} provides a reformatting tool for
7029 @url{http://json.org/, JSON}.")
7030 (license license:gpl3+)))
7031
7032 (define-public emacs-json-snatcher
7033 (package
7034 (name "emacs-json-snatcher")
7035 (version "1.0.0")
7036 (source
7037 (origin
7038 (method url-fetch)
7039 (uri (string-append "https://github.com/Sterlingg/json-snatcher/archive/"
7040 version ".tar.gz"))
7041 (file-name (string-append name "-" version ".tar.gz"))
7042 (sha256
7043 (base32
7044 "1nfiwsifpdiz0lbrqa77nl0crnfrv5h85ans9b0g5rggnmyshcfb"))))
7045 (build-system emacs-build-system)
7046 (home-page "https://github.com/sterlingg/json-snatcher")
7047 (synopsis "Grabs the path to JSON values in a JSON file")
7048 (description "@code{emacs-json-snatcher} grabs the path to JSON values in
7049 a @url{http://json.org/, JSON} file.")
7050 (license license:gpl3+)))
7051
7052 (define-public emacs-json-mode
7053 (package
7054 (name "emacs-json-mode")
7055 (version "1.7.0")
7056 (source
7057 (origin
7058 (method url-fetch)
7059 (uri (string-append "https://github.com/joshwnj/json-mode/archive/"
7060 "v" version ".tar.gz"))
7061 (file-name (string-append name "-" version ".tar.gz"))
7062 (sha256
7063 (base32
7064 "06h45p4cn767pk9sqi2zb1c65wy5gyyijqxzpglp80zwxhvajdz5"))))
7065 (build-system emacs-build-system)
7066 (propagated-inputs
7067 `(("emacs-json-reformat" ,emacs-json-reformat)
7068 ("emacs-json-snatcher" ,emacs-json-snatcher)))
7069 (home-page "https://github.com/joshwnj/json-mode")
7070 (synopsis "Major mode for editing JSON files")
7071 (description "@code{json-mode} extends the builtin js-mode syntax
7072 highlighting.")
7073 (license license:gpl3+)))
7074
7075 (define-public emacs-restclient
7076 (let ((commit "07a3888bb36d0e29608142ebe743b4362b800f40")
7077 (revision "1")) ;Guix package revision,
7078 ;upstream doesn't have official releases
7079 (package
7080 (name "emacs-restclient")
7081 (version (string-append revision "."
7082 (string-take commit 7)))
7083 (source (origin
7084 (method git-fetch)
7085 (uri (git-reference
7086 (url "https://github.com/pashky/restclient.el.git")
7087 (commit commit)))
7088 (sha256
7089 (base32
7090 "00lmjhb5im1kgrp54yipf1h9pshxzgjlg71yf2rq5n973gvb0w0q"))
7091 (file-name (git-file-name name version))))
7092 (build-system emacs-build-system)
7093 (propagated-inputs
7094 `(("emacs-helm" ,emacs-helm)))
7095 (home-page "https://github.com/pashky/restclient.el")
7096 (synopsis "Explore and test HTTP REST webservices")
7097 (description
7098 "This tool allows for testing and exploration of HTTP REST Web services
7099 from within Emacs. Restclient runs queries from a plan-text query sheet,
7100 displays results pretty-printed in XML or JSON with @code{restclient-mode}")
7101 (license license:public-domain))))
7102
7103 (define-public emacs-eimp
7104 (let ((version "1.4.0")
7105 (commit "2e7536fe6d8f7faf1bad7a8ae37faba0162c3b4f")
7106 (revision "1"))
7107 (package
7108 (name "emacs-eimp")
7109 (version (git-version version revision commit))
7110 (source
7111 (origin
7112 (method git-fetch)
7113 (uri (git-reference
7114 (url "https://github.com/nicferrier/eimp.git")
7115 (commit commit)))
7116 (file-name (git-file-name name version))
7117 (sha256
7118 (base32
7119 "154d57yafxbcf39r89n5j43c86rp2fki3lw3gwy7ww2g6qkclcra"))))
7120 (build-system emacs-build-system)
7121 (arguments
7122 `(#:phases
7123 (modify-phases %standard-phases
7124 (add-after 'unpack 'configure
7125 (lambda* (#:key inputs #:allow-other-keys)
7126 (let ((imagemagick (assoc-ref inputs "imagemagick")))
7127 ;; eimp.el is read-only in git.
7128 (chmod "eimp.el" #o644)
7129 (emacs-substitute-variables "eimp.el"
7130 ("eimp-mogrify-program"
7131 (string-append imagemagick "/bin/mogrify"))))
7132 #t)))))
7133 (inputs
7134 `(("imagemagick" ,imagemagick)))
7135 (home-page "https://github.com/nicferrier/eimp")
7136 (synopsis "Interactive image manipulation utility for Emacs")
7137 (description "@code{emacs-eimp} allows interactive image manipulation
7138 from within Emacs. It uses the code@{mogrify} utility from ImageMagick to do
7139 the actual transformations.")
7140 (license license:gpl2+))))
7141
7142 (define-public emacs-dired-hacks
7143 (let ((commit "eda68006ce73bbf6b9b995bfd70d08bec8cade36")
7144 (revision "1"))
7145 (package
7146 (name "emacs-dired-hacks")
7147 (version (string-append "0.0.1-" revision "."
7148 (string-take commit 7)))
7149 (source (origin
7150 (method git-fetch)
7151 (uri (git-reference
7152 (url "https://github.com/Fuco1/dired-hacks.git")
7153 (commit commit)))
7154 (file-name (string-append name "-" version "-checkout"))
7155 (sha256
7156 (base32
7157 "1w7ssl9zssn5rcha6apf4h8drkd02k4xgvs203bdbqyqp9wz9brx"))))
7158 (build-system emacs-build-system)
7159 (propagated-inputs
7160 `(("emacs-dash" ,emacs-dash)
7161 ("emacs-eimp" ,emacs-eimp)
7162 ("emacs-f" ,emacs-f)
7163 ("emacs-s" ,emacs-s)))
7164 (home-page "https://github.com/Fuco1/dired-hacks")
7165 (synopsis
7166 "Collection of useful dired additions")
7167 (description
7168 "Collection of Emacs dired mode additions:
7169 @itemize
7170 @item dired-avfs
7171 @item dired-columns
7172 @item dired-filter
7173 @item dired-hacks-utils
7174 @item dired-images
7175 @item dired-list
7176 @item dired-narrow
7177 @item dired-open
7178 @item dired-rainbow
7179 @item dired-ranger
7180 @item dired-subtree
7181 @item dired-tagsistant
7182 @end itemize\n")
7183 (license license:gpl3+))))
7184
7185 (define-public emacs-dired-sidebar
7186 (let ((commit "06bd0d40bab812c61a668129daf29ba359424454")
7187 (revision "0"))
7188 (package
7189 (name "emacs-dired-sidebar")
7190 (home-page "https://github.com/jojojames/dired-sidebar")
7191 (version (git-version "0.0.1" revision commit))
7192 (source (origin
7193 (method git-fetch)
7194 (uri (git-reference (url home-page) (commit commit)))
7195 (sha256
7196 (base32
7197 "0lvwvq6sl80sha9fq5m4568sg534dhmifyjqw75bqddcbf3by84x"))))
7198 (build-system emacs-build-system)
7199 (propagated-inputs
7200 `(("emacs-dired-subtree" ,emacs-dired-hacks)))
7201 (synopsis "Sidebar for Emacs using Dired")
7202 (description
7203 "This package provides a sidebar for Emacs similar to @code{NeoTree}
7204 or @code{treemacs}, but leveraging @code{Dired} to do the job of display.")
7205 (license license:gpl3+))))
7206
7207 (define-public emacs-which-key
7208 (package
7209 (name "emacs-which-key")
7210 (version "3.0.2")
7211 (source
7212 (origin
7213 (method url-fetch)
7214 (uri (string-append
7215 "https://github.com/justbur/emacs-which-key/archive/v"
7216 version ".tar.gz"))
7217 (sha256
7218 (base32
7219 "1xvd70cwq9n31f28viyjxmr3nn8l153gsy6scpszvgvjxkiikv24"))
7220 (file-name (string-append name "-" version ".tar.gz"))))
7221 (build-system emacs-build-system)
7222 (arguments
7223 `(#:tests? #t
7224 #:test-command '("emacs" "--batch"
7225 "-l" "which-key-tests.el"
7226 "-f" "ert-run-tests-batch-and-exit")))
7227 (home-page "https://github.com/justbur/emacs-which-key")
7228 (synopsis "Display available key bindings in popup")
7229 (description
7230 "@code{emacs-which-key} is a minor mode for Emacs that displays the key
7231 bindings following your currently entered incomplete command (a prefix) in a
7232 popup. For example, after enabling the minor mode if you enter C-x and wait
7233 for the default of 1 second, the minibuffer will expand with all of the
7234 available key bindings that follow C-x (or as many as space allows given your
7235 settings).")
7236 (license license:gpl3+)))
7237
7238 (define-public emacs-ws-butler
7239 (package
7240 (name "emacs-ws-butler")
7241 (version "0.6")
7242 (source (origin
7243 (method git-fetch)
7244 (uri (git-reference
7245 (url "https://github.com/lewang/ws-butler.git")
7246 (commit "323b651dd70ee40a25accc940b8f80c3a3185205")))
7247 (file-name (string-append name "-" version "-checkout"))
7248 (sha256
7249 (base32
7250 "1a4b0lsmwq84qfx51c5xy4fryhb1ysld4fhgw2vr37izf53379sb"))))
7251 (build-system emacs-build-system)
7252 (native-inputs
7253 `(("ert-runner" ,ert-runner)))
7254 (arguments
7255 `(#:tests? #t
7256 #:test-command '("ert-runner" "tests")))
7257 (home-page "https://github.com/lewang/ws-butler")
7258 (synopsis "Trim spaces from end of lines")
7259 (description
7260 "This Emacs package automatically and unobtrusively trims whitespace
7261 characters from end of lines.")
7262 (license license:gpl3+)))
7263
7264 (define-public emacs-org-edit-latex
7265 (package
7266 (name "emacs-org-edit-latex")
7267 (version "0.8.0")
7268 (source
7269 (origin
7270 (method url-fetch)
7271 (uri (string-append
7272 "https://github.com/et2010/org-edit-latex/archive/v"
7273 version ".tar.gz"))
7274 (file-name (string-append name "-" version ".tar.gz"))
7275 (sha256
7276 (base32
7277 "1y4h6wrs8286h9pbsv4d8fr67a885vz8b2k80qgv5qddipi2i78p"))))
7278 (build-system emacs-build-system)
7279 (propagated-inputs
7280 `(("emacs-auctex" ,emacs-auctex)
7281 ;; The version of org in Emacs 25.2 is not sufficient, because the
7282 ;; `org-latex-make-preamble' function is required.
7283 ("emacs-org" ,emacs-org)))
7284 (home-page "https://github.com/et2010/org-edit-latex")
7285 (synopsis "Edit a latex fragment just like editing a src block")
7286 (description "@code{emacs-org-edit-latex} is an extension for org-mode.
7287 It lets you edit a latex fragment in a dedicated buffer just like editing a
7288 src block.")
7289 (license license:gpl3+)))
7290
7291 (define-public emacs-emamux
7292 (package
7293 (name "emacs-emamux")
7294 (version "0.14")
7295 (source (origin
7296 (method url-fetch)
7297 (uri (string-append
7298 "https://github.com/syohex/emacs-emamux/archive/"
7299 version ".tar.gz"))
7300 (file-name (string-append name "-" version ".tar.gz"))
7301 (sha256
7302 (base32
7303 "0wlqg4icy037bj70b0qmhvwvmiwhagpnx6pnxhq6gzy1hvwlilkx"))))
7304 (build-system emacs-build-system)
7305 (home-page "https://github.com/syohex/emacs-emamux")
7306 (synopsis "Manipulate Tmux from Emacs")
7307 (description
7308 "@code{emacs-emamux} lets Emacs interact with the @code{tmux} terminal
7309 multiplexer.")
7310 (license license:gpl3+)))
7311
7312 (define-public emacs-rpm-spec-mode
7313 (package
7314 (name "emacs-rpm-spec-mode")
7315 (version "0.16")
7316 (source
7317 (origin
7318 (method url-fetch)
7319 ;; URI has the Fedora release number instead of the version
7320 ;; number. This will have to updated manually every new release.
7321 (uri (string-append
7322 "https://src.fedoraproject.org/cgit/rpms"
7323 "/emacs-rpm-spec-mode.git/snapshot"
7324 "/emacs-rpm-spec-mode-f26.tar.gz"))
7325 (sha256
7326 (base32
7327 "17dz80lhjrc89fj17pysl8slahzrqdkxgcjdk55zls6jizkr6kz3"))))
7328 (build-system emacs-build-system)
7329 (home-page "http://pkgs.fedoraproject.org/cgit/rpms/emacs-rpm-spec-mode.git")
7330 (synopsis "Emacs major mode for editing RPM spec files")
7331 (description "@code{emacs-rpm-spec-mode} provides an Emacs major mode for
7332 editing RPM spec files.")
7333 (license license:gpl2+)))
7334
7335 (define-public emacs-git-messenger
7336 (package
7337 (name "emacs-git-messenger")
7338 (version "0.18")
7339 (source
7340 (origin
7341 (method url-fetch)
7342 (uri (string-append
7343 "https://github.com/syohex/emacs-git-messenger/archive/"
7344 version ".tar.gz"))
7345 (file-name (string-append name "-" version ".tar.gz"))
7346 (sha256
7347 (base32
7348 "17mqki6g0wx46fn7dcbcc2pjxik7vvrcb1j9jzxim8b9psbsbnp9"))))
7349 (build-system emacs-build-system)
7350 (propagated-inputs
7351 `(("emacs-popup" ,emacs-popup)))
7352 (arguments
7353 `(#:tests? #t
7354 #:test-command '("emacs" "--batch" "-l" "test/test.el"
7355 "-f" "ert-run-tests-batch-and-exit")))
7356 (home-page "https://github.com/syohex/emacs-git-messenger")
7357 (synopsis "Popup commit message at current line")
7358 (description "@code{emacs-git-messenger} provides
7359 @code{git-messenger:popup-message}, a function that when called, will popup
7360 the last git commit message for the current line. This uses git-blame
7361 internally.")
7362 (license license:gpl3+)))
7363
7364 (define-public emacs-gitpatch
7365 (package
7366 (name "emacs-gitpatch")
7367 (version "0.5.0")
7368 (source
7369 (origin
7370 (method url-fetch)
7371 (uri (string-append "https://github.com/tumashu/gitpatch/archive/"
7372 "v" version ".tar.gz"))
7373 (file-name (string-append name "-" version ".tar.gz"))
7374 (sha256
7375 (base32
7376 "1yj6pmic541lcnscjin300k380qp9xdfprs55xg1q57jrkq6f6k7"))))
7377 (build-system emacs-build-system)
7378 (home-page "https://github.com/tumashu/gitpatch")
7379 (synopsis "Mail git patch from Emacs")
7380 (description "@code{emacs-gitpatch} lets users easily send git patches,
7381 created by @code{git format-patch}, from @code{magit}, @code{dired} and
7382 @code{ibuffer} buffers.")
7383 (license license:gpl3+)))
7384
7385 (define-public emacs-erc-hl-nicks
7386 (package
7387 (name "emacs-erc-hl-nicks")
7388 (version "1.3.2")
7389 (source
7390 (origin
7391 (method url-fetch)
7392 (uri (string-append "https://github.com/leathekd/erc-hl-nicks"
7393 "/archive/" version ".tar.gz"))
7394 (file-name (string-append name "-" version ".tar.gz"))
7395 (sha256
7396 (base32
7397 "01svpl9bps5kx4y1wnymakxya2cznqmlynvqv2r500wpnbxczrbs"))))
7398 (build-system emacs-build-system)
7399 (synopsis "Nickname highlighting for Emacs ERC")
7400 (description "@code{erc-hl-nicks} highlights nicknames in ERC, an IRC
7401 client for Emacs. The main features are:
7402 @itemize
7403 @item Auto-colorizes nicknames without having to specify colors
7404 @item Ignores certain characters that IRC clients add to nicknames to avoid
7405 duplicates (nickname, nickname’, nickname\", etc.)
7406 @item Attempts to produce colors with a sufficient amount of contrast between
7407 the nick color and the background color
7408 @end itemize\n")
7409 (home-page "https://github.com/leathekd/erc-hl-nicks")
7410 (license license:gpl3+)))
7411
7412 (define-public emacs-engine-mode
7413 (package
7414 (name "emacs-engine-mode")
7415 (version "2.0.0")
7416 (source
7417 (origin
7418 (method url-fetch)
7419 (uri (string-append "https://github.com/hrs/engine-mode/archive/"
7420 "v" version ".tar.gz"))
7421 (file-name (string-append name "-" version ".tar.gz"))
7422 (sha256
7423 (base32
7424 "1vm4p7pcp1vnwwxvps1bhm7i7hkabqqxl898knxf2hqvxys76684"))))
7425 (build-system emacs-build-system)
7426 (synopsis "Minor mode for defining and querying search engines")
7427 (description "@code{engine-mode} is a global minor mode for Emacs. It
7428 enables you to easily define search engines, bind them to keybindings, and
7429 query them from the comfort of your editor.")
7430 (home-page "https://github.com/hrs/engine-mode")
7431 (license license:gpl3+)))
7432
7433 (define-public emacs-prop-menu
7434 (package
7435 (name "emacs-prop-menu")
7436 (version "0.1.2")
7437 (source
7438 (origin
7439 (method url-fetch)
7440 (uri (string-append
7441 "http://stable.melpa.org/packages/prop-menu-"
7442 version ".el"))
7443 (sha256
7444 (base32
7445 "01bk4sjafzz7gqrkv9jg0pa85qr34vbk3q8ga2b0m61bndywzgpr"))))
7446 (build-system emacs-build-system)
7447 (home-page
7448 "https://github.com/david-christiansen/prop-menu-el")
7449 (synopsis
7450 "Create and display a context menu based on text and overlay properties")
7451 (description
7452 "This is a library for computing context menus based on text
7453 properties and overlays. The intended use is to have tools that
7454 annotate source code and others that use these annotations, without
7455 requiring a direct coupling between them, but maintaining
7456 discoverability.
7457
7458 Major modes that wish to use this library should first define an
7459 appropriate value for @code{prop-menu-item-functions}. Then, they should
7460 bind @code{prop-menu-by-completing-read} to an appropriate
7461 key. Optionally, a mouse pop-up can be added by binding
7462 @code{prop-menu-show-menu} to a mouse event.")
7463 (license license:gpl3+)))
7464
7465 (define-public emacs-idris-mode
7466 (package
7467 (name "emacs-idris-mode")
7468 (version "0.9.19")
7469 (source
7470 (origin
7471 (method url-fetch)
7472 (uri (string-append
7473 "http://stable.melpa.org/packages/idris-mode-"
7474 version ".tar"))
7475 (sha256
7476 (base32
7477 "02r1qqsxi6qk7q4cj6a6pygbj856dcw9vcmhfh0ib92j41v77q6y"))))
7478 (build-system emacs-build-system)
7479 (propagated-inputs
7480 `(("emacs-prop-menu" ,emacs-prop-menu)))
7481 (home-page
7482 "https://github.com/idris-hackers/idris-mode")
7483 (synopsis "Major mode for editing Idris code")
7484 (description
7485 "This is an Emacs mode for editing Idris code. It requires the latest
7486 version of Idris, and some features may rely on the latest Git version of
7487 Idris.")
7488 (license license:gpl3+)))
7489
7490 (define-public emacs-browse-at-remote
7491 (package
7492 (name "emacs-browse-at-remote")
7493 (version "0.10.0")
7494 (source
7495 (origin
7496 (method url-fetch)
7497 (uri (string-append
7498 "https://github.com/rmuslimov/browse-at-remote/archive/"
7499 version ".tar.gz"))
7500 (file-name (string-append name "-" version ".tar.gz"))
7501 (sha256
7502 (base32
7503 "0ymslsp6i1naw25zckv25bf4aaq6qwkbkn95qyzlwg869l802686"))))
7504 (build-system emacs-build-system)
7505 (propagated-inputs
7506 `(("emacs-f" ,emacs-f)
7507 ("emacs-s" ,emacs-s)))
7508 (native-inputs
7509 `(("ert-runner" ,ert-runner)))
7510 (arguments
7511 `(#:tests? #t
7512 #:test-command '("ert-runner")))
7513 (home-page "https://github.com/rmuslimov/browse-at-remote")
7514 (synopsis "Open github/gitlab/bitbucket/stash page from Emacs")
7515 (description
7516 "This Emacs package allows you to open a target page on
7517 github/gitlab (or bitbucket) by calling @code{browse-at-remote} command.
7518 It supports dired buffers and opens them in tree mode at destination.")
7519 (license license:gpl3+)))
7520
7521 (define-public emacs-tiny
7522 (package
7523 (name "emacs-tiny")
7524 (version "0.2.1")
7525 (source
7526 (origin
7527 (method url-fetch)
7528 (uri (string-append "http://elpa.gnu.org/packages/tiny-" version ".tar"))
7529 (sha256
7530 (base32
7531 "1cr73a8gba549ja55x0c2s554f3zywf69zbnd7v82jz5q1k9wd2v"))))
7532 (build-system emacs-build-system)
7533 (home-page "https://github.com/abo-abo/tiny")
7534 (synopsis "Quickly generate linear ranges in Emacs")
7535 (description
7536 "The main command of the @code{tiny} extension for Emacs is @code{tiny-expand}.
7537 It is meant to quickly generate linear ranges, e.g. 5, 6, 7, 8. Some elisp
7538 proficiency is an advantage, since you can transform your numeric range with
7539 an elisp expression.")
7540 (license license:gpl3+)))
7541
7542 (define-public emacs-emojify
7543 (package
7544 (name "emacs-emojify")
7545 (version "0.4")
7546 (source
7547 (origin
7548 (method url-fetch)
7549 (uri (string-append "https://github.com/iqbalansari/emacs-emojify/"
7550 "releases/download/v" version "/emojify-"
7551 version ".tar"))
7552 (sha256
7553 (base32
7554 "0k84v2d2bkiwcky9fi1yyprgkj46g7wh6pyl9gzmcd7sqv051d5n"))))
7555 (build-system emacs-build-system)
7556 (arguments
7557 `(#:phases
7558 (modify-phases %standard-phases
7559 (add-after 'install 'install-data
7560 (lambda* (#:key outputs #:allow-other-keys)
7561 (copy-recursively "data"
7562 (string-append (assoc-ref outputs "out")
7563 "/share/emacs/site-lisp/guix.d/"
7564 "emojify-" ,version "/data"))
7565 #t)))))
7566 (propagated-inputs
7567 `(("emacs-ht" ,emacs-ht)))
7568 (home-page "https://github.com/iqbalansari/emacs-emojify")
7569 (synopsis "Display emojis in Emacs")
7570 (description "This package displays emojis in Emacs similar to how Github,
7571 Slack, and other websites do. It can display plain ASCII like @code{:)} as
7572 well as Github-style emojis like @code{:smile:}. It provides a minor mode
7573 @code{emojify-mode} to enable the display of emojis in a buffer.")
7574 (license license:gpl3+)))
7575
7576 (define-public emacs-websocket
7577 (package
7578 (name "emacs-websocket")
7579 (version "1.10")
7580 (source
7581 (origin
7582 (method git-fetch)
7583 (uri (git-reference
7584 (url "https://github.com/ahyatt/emacs-websocket.git")
7585 (commit version)))
7586 (file-name (string-append name "-" version "-checkout"))
7587 (sha256
7588 (base32
7589 "1dgrf7na6r6mmkknphzshlbd5fnzisg0qn0j7vfpa38wgsymaq52"))))
7590 (build-system emacs-build-system)
7591 (home-page "http://elpa.gnu.org/packages/websocket.html")
7592 (synopsis "Emacs WebSocket client and server")
7593 (description "This is an Elisp library for WebSocket clients to talk to
7594 WebSocket servers, and for WebSocket servers to accept connections from
7595 WebSocket clients. This library is designed to be used by other library
7596 writers, to write applications that use WebSockets, and is not useful by
7597 itself.")
7598 (license license:gpl3+)))
7599
7600 (define-public emacs-oauth2
7601 (package
7602 (name "emacs-oauth2")
7603 (version "0.11")
7604 (source
7605 (origin
7606 (method url-fetch)
7607 (uri (string-append "https://elpa.gnu.org/packages/oauth2-"
7608 version ".el"))
7609 (sha256
7610 (base32
7611 "0ydkc9jazsnbbvfhd47mql52y7k06n3z7r0naqxkwb99j9blqsmp"))))
7612 (build-system emacs-build-system)
7613 (home-page "http://elpa.gnu.org/packages/oauth2.html")
7614 (synopsis "OAuth 2.0 authorization protocol implementation")
7615 (description
7616 "This package provides an Elisp implementation of the OAuth 2.0 draft.
7617 The main entry point is @code{oauth2-auth-and-store} which will return a token
7618 structure. This token structure can be then used with
7619 @code{oauth2-url-retrieve-synchronously} or @code{oauth2-url-retrieve} to
7620 retrieve any data that need OAuth authentication to be accessed. If the token
7621 needs to be refreshed, the code handles it automatically and stores the new
7622 value of the access token.")
7623 (license license:gpl3+)))
7624
7625 (define-public emacs-circe
7626 (package
7627 (name "emacs-circe")
7628 (version "2.6")
7629 (source
7630 (origin
7631 (method git-fetch)
7632 (uri (git-reference
7633 (url "https://github.com/jorgenschaefer/circe.git")
7634 (commit (string-append "v" version))))
7635 (file-name (string-append name "-" version "-checkout"))
7636 (sha256
7637 (base32
7638 "19h3983zy3f15cgs86irvbdzz55qyjm48qd7gjlzcxplr7vnnh0j"))))
7639 (build-system emacs-build-system)
7640 ;; In order to securely connect to an IRC server using TLS, Circe requires
7641 ;; the GnuTLS binary.
7642 (propagated-inputs
7643 `(("gnutls" ,gnutls)))
7644 (home-page "https://github.com/jorgenschaefer/circe")
7645 (synopsis "Client for IRC in Emacs")
7646 (description "Circe is a Client for IRC in Emacs. It integrates well with
7647 the rest of the editor, using standard Emacs key bindings and indicating
7648 activity in channels in the status bar so it stays out of your way unless you
7649 want to use it.")
7650 (license license:gpl3+)))
7651
7652 (define-public emacs-slack
7653 (let ((commit "d90395482d26175ce38fd935e978c428be8af9a0")
7654 (revision "4"))
7655 (package
7656 (name "emacs-slack")
7657 (version (string-append "0-" revision "." (string-take commit 7)))
7658 (source (origin
7659 (method git-fetch)
7660 (uri (git-reference
7661 (url "https://github.com/yuya373/emacs-slack.git")
7662 (commit commit)))
7663 (file-name (string-append name "-" version "-checkout"))
7664 (sha256
7665 (base32
7666 "14f6wjcbl09cfd3yngr6m1k1d4nr764im666mbnqbk9nmqf50nib"))))
7667 (build-system emacs-build-system)
7668 (propagated-inputs
7669 `(("emacs-alert" ,emacs-alert)
7670 ("emacs-emojify" ,emacs-emojify)
7671 ("emacs-request" ,emacs-request)
7672 ("emacs-websocket" ,emacs-websocket)
7673 ("emacs-oauth2" ,emacs-oauth2)
7674 ("emacs-circe" ,emacs-circe)))
7675 (home-page "https://github.com/yuya373/emacs-slack")
7676 (synopsis "Slack client for Emacs")
7677 (description "This package provides an Emacs client for the Slack
7678 messaging service.")
7679 (license license:gpl3+))))
7680
7681 (define-public emacs-bash-completion
7682 (package
7683 (name "emacs-bash-completion")
7684 (version "2.1.0")
7685 (source
7686 (origin
7687 (method url-fetch)
7688 (uri (string-append
7689 "https://github.com/szermatt/emacs-bash-completion/archive/v"
7690 version ".tar.gz"))
7691 (file-name (string-append name "-" version ".tar.gz"))
7692 (sha256
7693 (base32
7694 "1z0qck3v3ra6ivacn8n04w1v33a4xn01xx860761q31qzsv3sksq"))))
7695 (inputs `(("bash" ,bash)))
7696 (build-system emacs-build-system)
7697 (arguments
7698 `(#:phases
7699 (modify-phases %standard-phases
7700 (add-before 'install 'configure
7701 (lambda* (#:key inputs #:allow-other-keys)
7702 (let ((bash (assoc-ref inputs "bash")))
7703 (emacs-substitute-variables "bash-completion.el"
7704 ("bash-completion-prog" (string-append bash "/bin/bash"))))
7705 #t)))))
7706 (home-page "https://github.com/szermatt/emacs-bash-completion")
7707 (synopsis "Bash completion for the shell buffer")
7708 (description
7709 "@code{bash-completion} defines dynamic completion hooks for shell-mode
7710 and shell-command prompts that are based on Bash completion.")
7711 (license license:gpl2+)))
7712
7713 (define-public emacs-easy-kill
7714 (package
7715 (name "emacs-easy-kill")
7716 (version "0.9.3")
7717 (source (origin
7718 (method url-fetch)
7719 (uri (string-append "https://elpa.gnu.org/packages/easy-kill-"
7720 version ".tar"))
7721 (sha256
7722 (base32
7723 "17nw0mglmg877axwg1d0gs03yc0p04lzmd3pl0nsnqbh3303fnqb"))))
7724 (build-system emacs-build-system)
7725 (home-page "https://github.com/leoliu/easy-kill")
7726 (synopsis "Kill and mark things easily in Emacs")
7727 (description
7728 "This package provides commands @code{easy-kill} and @code{easy-mark} to
7729 let users kill or mark things easily.")
7730 (license license:gpl3+)))
7731
7732 (define-public emacs-csv-mode
7733 (package
7734 (name "emacs-csv-mode")
7735 (version "1.7")
7736 (source
7737 (origin
7738 (method url-fetch)
7739 (uri (string-append "http://elpa.gnu.org/packages/csv-mode-"
7740 version ".el"))
7741 (sha256
7742 (base32
7743 "0r4bip0w3h55i8h6sxh06czf294mrhavybz0zypzrjw91m1bi7z6"))))
7744 (build-system emacs-build-system)
7745 (home-page
7746 "http://elpa.gnu.org/packages/csv-mode.html")
7747 (synopsis
7748 "Major mode for editing comma/char separated values")
7749 (description
7750 "This Emacs package implements CSV mode, a major mode for editing records
7751 in a generalized CSV (character-separated values) format.")
7752 (license license:gpl3+)))
7753
7754 (define-public emacs-transmission
7755 (package
7756 (name "emacs-transmission")
7757 (version "0.12.1")
7758 (source (origin
7759 (method url-fetch)
7760 (uri (string-append
7761 "https://github.com/holomorph/transmission/archive/"
7762 version ".tar.gz"))
7763 (file-name (string-append name "-" version ".tar.gz"))
7764 (sha256
7765 (base32
7766 "1rrlgn96gi1ljfwbwvlyyxbq75xzamlbdhq1bpyadxxmxcvlmk3n"))))
7767 (build-system emacs-build-system)
7768 (home-page "https://github.com/holomorph/transmission")
7769 (synopsis "Emacs interface to a Transmission session")
7770 (description "This package provides an Emacs interface to interact with a
7771 running session of the Transmission Bittorrent client.
7772
7773 Features:
7774
7775 @itemize
7776 @item List, add, start/stop, verify, remove torrents.
7777 @item Set speed limits, ratio limits, bandwidth priorities, trackers.
7778 @item Navigate to the corresponding file list, torrent info, peer info
7779 contexts.
7780 @item Toggle downloading and set priorities for individual files.
7781 @end itemize\n")
7782 (license license:gpl3+)))
7783
7784 (define-public emacs-polymode
7785 ;; There hasn't been a proper release.
7786 (let ((commit "0340f5e7e55235832e59673f027cc79a23cbdcd6")
7787 (revision "1"))
7788 (package
7789 (name "emacs-polymode")
7790 (version (string-append "1.0-" revision "." (string-take commit 7)))
7791 (source (origin
7792 (method git-fetch)
7793 (uri (git-reference
7794 (url "https://github.com/vspinu/polymode.git")
7795 (commit commit)))
7796 (file-name (string-append name "-" version "-checkout"))
7797 (sha256
7798 (base32
7799 "057cybkq3cy07n5s332k071sjiky3mziy003lza4rh75mgqkwhmh"))))
7800 (build-system emacs-build-system)
7801 (arguments
7802 `(#:include (cons* "^modes/.*\\.el$" %default-include)
7803 #:phases
7804 (modify-phases %standard-phases
7805 (add-after 'set-emacs-load-path 'add-modes-subdir-to-load-path
7806 (lambda _
7807 (setenv "EMACSLOADPATH"
7808 (string-append (getenv "EMACSLOADPATH")
7809 ":" (getcwd) "/modes" ":")))))))
7810 (home-page "https://github.com/vspinu/polymode")
7811 (synopsis "Framework for multiple Emacs modes based on indirect buffers")
7812 (description "Polymode is an Emacs package that offers generic support
7813 for multiple major modes inside a single Emacs buffer. It is lightweight,
7814 object oriented and highly extensible. Creating a new polymode typically
7815 takes only a few lines of code. Polymode also provides extensible facilities
7816 for external literate programming tools for exporting, weaving and tangling.")
7817 (license license:gpl3+))))
7818
7819 (define-public eless
7820 (package
7821 (name "eless")
7822 (version "0.3")
7823 (source (origin
7824 (method url-fetch)
7825 (uri (string-append
7826 "https://github.com/kaushalmodi/eless/archive/"
7827 "v" version ".tar.gz"))
7828 (file-name (string-append name "-" version ".tar.gz"))
7829 (sha256
7830 (base32
7831 "0gjnnhgw5xs1w3qfnkvwa2nv44gnxr8pkhx3c7qig45p8nh1461h"))))
7832 (build-system trivial-build-system)
7833 (inputs
7834 `(("bash" ,bash)))
7835 (native-inputs
7836 `(("tar" ,tar)
7837 ("gzip" ,gzip)))
7838 (arguments
7839 `(#:modules ((guix build utils))
7840 #:builder
7841 (begin
7842 (use-modules (guix build utils))
7843 (setenv "PATH" (string-append
7844 (assoc-ref %build-inputs "tar") "/bin" ":"
7845 (assoc-ref %build-inputs "gzip") "/bin"))
7846 (invoke "tar" "xvf" (assoc-ref %build-inputs "source"))
7847 (chdir (string-append "eless" "-" ,version))
7848 (substitute* "eless" (("/usr/bin/env bash")
7849 (string-append (assoc-ref %build-inputs "bash")
7850 "/bin/bash")))
7851 (install-file "eless" (string-append %output "/bin"))
7852 (install-file "doc/eless.info" (string-append %output "/share/info"))
7853 #t)))
7854 (home-page "https://github.com/kaushalmodi/eless")
7855 (synopsis "Use Emacs as a paginator")
7856 (description "@code{eless} provides a combination of Bash script
7857 and a minimal Emacs view-mode.
7858
7859 Feautures:
7860
7861 @itemize
7862 @item Independent of a user’s Emacs config.
7863 @item Customizable via the @code{(locate-user-emacs-file \"elesscfg\")} config.
7864 @item Not require an Emacs server to be already running.
7865 @item Syntax highlighting.
7866 @item Org-mode file rendering.
7867 @item @code{man} page viewer.
7868 @item Info viewer.
7869 @item Dired, wdired, (batch edit symbolic links).
7870 @item Colored diffs, git diff, git log, ls with auto ANSI detection.
7871 @item Filter log files lines matching a regexp.
7872 @item Auto-revert log files similar to @code{tail -f}.
7873 @item Quickly change frame and font sizes.
7874 @end itemize\n")
7875 (license license:expat)))
7876
7877 (define-public emacs-evil-matchit
7878 (package
7879 (name "emacs-evil-matchit")
7880 (version "2.2.6")
7881 (source
7882 (origin
7883 (method url-fetch)
7884 (uri (string-append
7885 "https://github.com/redguardtoo/evil-matchit/archive/"
7886 version ".tar.gz"))
7887 (file-name (string-append name "-" version ".tar.gz"))
7888 (sha256
7889 (base32
7890 "1yp9sl6542317mn1060ri90zyf6bs6qylagndhqy02p368q31rhi"))))
7891 (build-system emacs-build-system)
7892 (propagated-inputs
7893 `(("emacs-evil" ,emacs-evil)))
7894 (home-page "https://github.com/redguardtoo/evil-matchit")
7895 (synopsis "Vim matchit ported into Emacs")
7896 (description
7897 "@code{evil-matchit} is a minor mode for jumping between matching tags in
7898 evil mode using @kbd{%}. It is a port of @code{matchit} for Vim.")
7899 (license license:gpl3+)))
7900
7901 (define-public emacs-evil-smartparens
7902 (package
7903 (name "emacs-evil-smartparens")
7904 (version "0.4.0")
7905 (source
7906 (origin
7907 (method url-fetch)
7908 (uri (string-append
7909 "https://github.com/expez/evil-smartparens/archive/"
7910 version ".tar.gz"))
7911 (file-name (string-append name "-" version ".tar.gz"))
7912 (sha256
7913 (base32
7914 "1bwzdd3054d407d5j4m3njsbvmc9r8zzp33m32pj3b3irxrl68q0"))))
7915 (build-system emacs-build-system)
7916 (propagated-inputs
7917 `(("emacs-evil" ,emacs-evil)
7918 ("emacs-smartparens" ,emacs-smartparens)))
7919 (home-page "https://github.com/expez/evil-smartparens")
7920 (synopsis "Emacs Evil integration for Smartparens")
7921 (description "@code{emacs-evil-smartparens} is an Emacs minor mode which
7922 makes Evil play nice with Smartparens. Evil is an Emacs minor mode that
7923 emulates Vim features and provides Vim-like key bindings.")
7924 (license license:gpl3+)))
7925
7926 (define-public emacs-evil-quickscope
7927 (package
7928 (name "emacs-evil-quickscope")
7929 (version "0.1.4")
7930 (source
7931 (origin
7932 (method url-fetch)
7933 (uri (string-append "https://github.com/blorbx/evil-quickscope/archive/v"
7934 version ".tar.gz"))
7935 (file-name (string-append name "-" version ".tar.gz"))
7936 (sha256
7937 (base32
7938 "1r26a412mmar7vbf89zcifswiwpdg30mjzj32xdyqss57aqi83ma"))))
7939 (build-system emacs-build-system)
7940 (propagated-inputs
7941 `(("emacs-evil" ,emacs-evil)))
7942 (arguments
7943 `(#:tests? #t
7944 #:test-command '("emacs" "--batch"
7945 "-l" "evil-quickscope-tests.el"
7946 "-f" "ert-run-tests-batch-and-exit")))
7947 (home-page "https://github.com/blorbx/evil-quickscope")
7948 (synopsis "Target highlighting for emacs evil-mode f,F,t and T commands")
7949 (description "@code{emacs-evil-quickscope} highlights targets for Evil
7950 mode’s f,F,t,T keys, allowing for quick navigation within a line. It is a
7951 port of quick-scope for Vim. Evil is an Emacs minor mode that emulates Vim
7952 features and provides Vim-like key bindings.")
7953 (license license:gpl3+)))
7954
7955 (define-public emacs-bongo
7956 (package
7957 (name "emacs-bongo")
7958 (version "1.0")
7959 (source
7960 (origin
7961 (method url-fetch)
7962 (uri (string-append
7963 "https://github.com/dbrock/bongo/archive/"
7964 version ".tar.gz"))
7965 (file-name (string-append name "-" version ".tar.gz"))
7966 (sha256
7967 (base32
7968 "1pcsyyrvj7djjjwpaswd1i782hvqvlvs39cy9ns0k795si6xd64d"))))
7969 (build-system emacs-build-system)
7970 (home-page "https://github.com/dbrock/bongo")
7971 (synopsis "Media player for Emacs")
7972 (description
7973 "This package provides a flexible media player for Emacs. @code{Bongo}
7974 supports multiple backends such as @code{vlc}, @code{mpg123},
7975 @code{ogg123}, @code{speexdec}, @code{timidity}, @code{mikmod} and
7976 @code{afplay}.")
7977 (license license:gpl2+)))
7978
7979 (define-public groovy-emacs-modes
7980 (package
7981 (name "groovy-emacs-modes")
7982 (version "2.0")
7983 (source (origin
7984 (method url-fetch)
7985 (uri (string-append
7986 "https://github.com/Groovy-Emacs-Modes/" name
7987 "/archive/" version ".tar.gz"))
7988 (file-name (string-append name "-" version ".tar.gz"))
7989 (sha256
7990 (base32
7991 "15j0hnkx9nppjzda5cqsxxz5f3bq9hc4xfyjcdypzqiypcvmpa39"))))
7992 (build-system emacs-build-system)
7993 (propagated-inputs
7994 `(("emacs-s" ,emacs-s)))
7995 (home-page "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
7996 (synopsis "Groovy related modes for Emacs")
7997 (description
7998 "This package provides @code{groovy-mode} for syntax highlighing in
7999 Groovy source files, REPL integration with run-groovy and Grails project
8000 navigation with the grails mode.")
8001 (license license:gpl3+)))
8002
8003 (define-public org-tree-slide
8004 (let ((commit "dff8f1a4a64c8dd0a1fde0b0131e2fe186747134")
8005 (revision "0"))
8006 (package
8007 (name "emacs-org-tree-slide")
8008 (version (git-version "0.1" revision commit))
8009 (home-page "https://github.com/takaxp/org-tree-slide")
8010 (source (origin
8011 (method git-fetch)
8012 (uri (git-reference (url home-page) (commit commit)))
8013 (sha256
8014 (base32
8015 "153bg0x7ypla11pq51jmsgzfjklwwnrq56xgpbfhk1j16xwz9hyf"))
8016 (file-name (git-file-name name version))))
8017 (build-system emacs-build-system)
8018 (synopsis "Presentation tool for org-mode")
8019 (description
8020 "Org-tree-slide provides a slideshow mode to view org-mode files. Use
8021 @code{org-tree-slide-mode} to enter the slideshow mode, and then @kbd{C->} and
8022 @kbd{C-<} to jump to the next and previous slide.")
8023 (license license:gpl3+))))
8024
8025 (define-public emacs-scratch-el
8026 (let ((commit "2cdf2b841ce7a0987093f65b0cc431947549f897")
8027 (revision "1"))
8028 (package
8029 (name "emacs-scratch-el")
8030 (version (git-version "1.2" revision commit))
8031 (source (origin
8032 (method git-fetch)
8033 (uri (git-reference
8034 (url "https://github.com/ieure/scratch-el.git")
8035 (commit commit)))
8036 (file-name (git-file-name name version))
8037 (sha256
8038 (base32
8039 "0wscsndynjmnliajqaz28r1ww81j8wh84zwaaswx51abhwgl0idf"))))
8040 (build-system emacs-build-system)
8041 (native-inputs
8042 `(("texinfo" ,texinfo)))
8043 (arguments
8044 '(#:phases
8045 (modify-phases %standard-phases
8046 (add-after 'install 'install-doc
8047 (lambda* (#:key outputs #:allow-other-keys)
8048 (unless (invoke "makeinfo" "scratch.texi")
8049 (error "makeinfo failed"))
8050 (install-file "scratch.info"
8051 (string-append (assoc-ref outputs "out")
8052 "/share/info"))
8053 #t)))))
8054 (home-page "https://github.com/ieure/scratch-el/")
8055 (synopsis "Create scratch buffers with the same mode as current buffer")
8056 (description "Scratch is an extension to Emacs that enables one to create
8057 scratch buffers that are in the same mode as the current buffer. This is
8058 notably useful when working on code in some language; you may grab code into a
8059 scratch buffer, and, by virtue of this extension, do so using the Emacs
8060 formatting rules for that language.")
8061 (license license:bsd-2))))
8062
8063 (define-public emacs-kv
8064 (package
8065 (name "emacs-kv")
8066 (version "0.0.19")
8067 (source
8068 (origin
8069 (method git-fetch)
8070 (uri (git-reference
8071 (url "https://github.com/nicferrier/emacs-kv.git")
8072 (commit "721148475bce38a70e0b678ba8aa923652e8900e")))
8073 (file-name (string-append name "-" version "-checkout"))
8074 (sha256
8075 (base32
8076 "0r0lz2s6gvy04fwnafai668jsf4546h4k6zd6isx5wpk0n33pj5m"))))
8077 (build-system emacs-build-system)
8078 (arguments
8079 `(#:tests? #t
8080 #:test-command '("emacs" "--batch" "-l" "kv-tests.el"
8081 "-f" "ert-run-tests-batch-and-exit")))
8082 (home-page "https://github.com/nicferrier/emacs-kv")
8083 (synopsis "Key/Value data structures library for Emacs Lisp")
8084 (description "@code{emacs-kv} is a collection of tools for dealing with
8085 key/value data structures such as plists, alists and hash-tables in Emacs
8086 Lisp.")
8087 (license license:gpl3+)))
8088
8089 (define-public emacs-esxml
8090 (package
8091 (name "emacs-esxml")
8092 (version "0.3.4")
8093 (source (origin
8094 (method git-fetch)
8095 (uri (git-reference
8096 (url "https://github.com/tali713/esxml.git")
8097 (commit version)))
8098 (file-name (git-file-name name version))
8099 (sha256
8100 (base32
8101 "00vv8a75wdklygdyr4km9mc2ismxak69c45jmcny41xl44rp9x8m"))))
8102 (build-system emacs-build-system)
8103 (arguments
8104 `(#:phases
8105 (modify-phases %standard-phases
8106 (add-after 'unpack 'fix-sources
8107 (lambda _
8108 ;; See: https://github.com/tali713/esxml/pull/28.
8109 (substitute* "css-lite.el"
8110 ((";;; main interface")
8111 (string-append ";;; main interface\n"
8112 "(require 'cl-lib)"))
8113 (("mapcan")
8114 "cl-mapcan")
8115 (("',\\(cl-mapcan #'process-css-rule rules\\)")
8116 "(cl-mapcan #'process-css-rule ',rules)"))
8117 (substitute* "esxml-form.el"
8118 ((",esxml-form-field-defn")
8119 "#'esxml-form-field-defn"))
8120 ;; See: https://github.com/tali713/esxml/issues/25
8121 (delete-file "esxpath.el")
8122 #t)))))
8123 (propagated-inputs
8124 `(("emacs-kv" ,emacs-kv)))
8125 (home-page "https://github.com/tali713/esxml/")
8126 (synopsis "SXML for EmacsLisp")
8127 (description "This is XML/XHTML done with S-Expressions in EmacsLisp.
8128 Simply, this is the easiest way to write HTML or XML in Lisp. This library
8129 uses the native form of XML representation as used by many libraries already
8130 included within Emacs. See @code{esxml-to-xml} for a concise description of
8131 the format.")
8132 (license license:gpl3+)))
8133
8134 (define-public emacs-nov-el
8135 (package
8136 (name "emacs-nov-el")
8137 (version "0.2.2")
8138 (source (origin
8139 (method git-fetch)
8140 (uri (git-reference
8141 (url "https://github.com/wasamasa/nov.el.git")
8142 (commit version)))
8143 (file-name (git-file-name name version))
8144 (sha256
8145 (base32
8146 "03s0qjvwk1f7y3i4wh2p5y3z4hdv00adgz8za3vphzc0q8i1kjzb"))))
8147 (build-system emacs-build-system)
8148 (arguments
8149 `(#:phases
8150 (modify-phases %standard-phases
8151 (add-after 'unpack 'embed-path-to-unzip
8152 (lambda _
8153 (substitute* "nov.el"
8154 (("\\(executable-find \"unzip\"\\)")
8155 (string-append "\"" (which "unzip") "\"")))
8156 #t)))))
8157 (propagated-inputs
8158 `(("emacs-dash" ,emacs-dash)
8159 ("emacs-esxml" ,emacs-esxml)))
8160 (inputs
8161 `(("unzip" ,unzip)))
8162 (home-page "https://github.com/wasamasa/nov.el/")
8163 (synopsis "Major mode for reading EPUBs in Emacs")
8164 (description "@code{nov.el} provides a major mode for reading EPUB
8165 documents.
8166
8167 Features:
8168
8169 @itemize
8170 @item Basic navigation (jump to TOC, previous/next chapter)
8171 @item Remembering and restoring the last read position
8172 @item Jump to next chapter when scrolling beyond end
8173 @item Renders EPUB2 (@code{.ncx}) and EPUB3 (@code{<nav>}) TOCs
8174 @item Hyperlinks to internal and external targets
8175 @item Supports textual and image documents
8176 @item View source of document files
8177 @item Metadata display
8178 @item Image rescaling
8179 @end itemize
8180 ")
8181 (license license:gpl3+)))
8182
8183 (define-public epipe
8184 (package
8185 (name "epipe")
8186 (version "0.1.0")
8187 (source
8188 (origin
8189 (method url-fetch)
8190 (uri (string-append "https://github.com/cute-jumper/epipe/archive/"
8191 version ".tar.gz"))
8192 (file-name (string-append name "-" version ".tar.gz"))
8193 (sha256
8194 (base32
8195 "05a036852g4j63k1mhvyfrcsgkl9lczayi7x61570ysw3cli5wp5"))))
8196 (build-system trivial-build-system)
8197 (inputs
8198 `(("bash" ,bash)
8199 ("perl" ,perl)))
8200 (native-inputs
8201 `(("tar" ,tar)
8202 ("gzip" ,gzip)))
8203 (arguments
8204 `(#:modules
8205 ((guix build utils))
8206 #:builder
8207 (begin
8208 (use-modules (guix build utils))
8209 ;; Extract source
8210 (setenv "PATH" (string-append
8211 (assoc-ref %build-inputs "tar") "/bin" ":"
8212 (assoc-ref %build-inputs "gzip") "/bin"))
8213 (invoke "tar" "xvf" (assoc-ref %build-inputs "source"))
8214 (chdir (string-append ,name "-" ,version))
8215 ;; Patch shebangs
8216 (substitute* "epipe"
8217 (("/usr/bin/env bash")
8218 (string-append (assoc-ref %build-inputs "bash") "/bin/bash")))
8219 (patch-shebang "epipe.pl"
8220 (list (string-append (assoc-ref %build-inputs "perl")
8221 "/bin")))
8222 ;; Installation
8223 (for-each (lambda (file)
8224 (install-file file (string-append %output "/bin")))
8225 '("epipe" "epipe.pl"))
8226 #t)))
8227 (home-page "https://github.com/cute-jumper/epipe")
8228 (synopsis "Pipe to the @code{emacsclient}")
8229 (description "@code{epipe} provides an utility to use your editor in
8230 the pipeline, featuring the support for running @code{emacsclient}.")
8231 (license license:gpl3+)))
8232
8233 (define-public emacs-hcl-mode
8234 (package
8235 (name "emacs-hcl-mode")
8236 (version "0.03")
8237 (source
8238 (origin
8239 (method url-fetch)
8240 (uri (string-append
8241 "https://github.com/syohex/emacs-hcl-mode/archive/"
8242 version ".tar.gz"))
8243 (file-name (string-append name "-" version ".tar.gz"))
8244 (sha256
8245 (base32
8246 "0pvw74qpwh0znqzp6syp4wxjqs7dp1hbn5h7xfk97mff9l5d8k6x"))))
8247 (build-system emacs-build-system)
8248 (home-page "https://github.com/syohex/emacs-hcl-mode")
8249 (synopsis "Major mode for the Hashicorp Configuration Language")
8250 (description
8251 "@code{emacs-hcl-mode} provides an Emacs major mode for working with
8252 @acronym{HCL, Hashicorp Configuration Language}. It provides syntax
8253 highlighting and indentation support.")
8254 (license license:gpl3+)))
8255
8256 (define-public emacs-terraform-mode
8257 (package
8258 (name "emacs-terraform-mode")
8259 (version "0.06")
8260 (source
8261 (origin
8262 (method url-fetch)
8263 (uri (string-append
8264 "https://github.com/syohex/emacs-terraform-mode/archive/"
8265 version ".tar.gz"))
8266 (file-name (string-append name "-" version ".tar.gz"))
8267 (sha256
8268 (base32
8269 "0h9267ifdjmcin4sj8slxydbacx4bqicbvg8pa1qq2l72h9m5381"))))
8270 (build-system emacs-build-system)
8271 (propagated-inputs
8272 `(("emacs-hcl-mode" ,emacs-hcl-mode)))
8273 (home-page "https://github.com/syohex/emacs-terraform-mode")
8274 (synopsis "Major mode for Terraform")
8275 (description
8276 "@code{emacs-terraform-mode} provides a major mode for working with
8277 @uref{https://www.terraform.io/, Terraform} configuration files. Most of the
8278 functionality is inherited from @code{hcl-mode}.")
8279 (license license:gpl3+)))
8280
8281 (define-public emacs-exec-path-from-shell
8282 (package
8283 (name "emacs-exec-path-from-shell")
8284 (version "1.11")
8285 (source
8286 (origin
8287 (method url-fetch)
8288 (uri (string-append
8289 "https://stable.melpa.org/packages/exec-path-from-shell-"
8290 version ".el"))
8291 (sha256
8292 (base32
8293 "03qjgb81cq1l3j54lvlf98r75vmmgd06mj6qh5wa6mz4xzp4w26r"))))
8294 (build-system emacs-build-system)
8295 (home-page "https://github.com/purcell/exec-path-from-shell")
8296 (synopsis "Get environment variables such as @var{PATH} from the shell")
8297 (description
8298 "This library allows the user to set Emacs @var{exec-path} and @var{PATH}
8299 from the shell @var{PATH}, so that @code{shell-command}, @code{compile} and
8300 the like work as expected on systems on which Emacs is not guaranteed to
8301 inherit a login shell's environment variables. It also allows other
8302 environment variables to be retrieved from the shell, so that Emacs will see
8303 the same values you get in a terminal.")
8304 (license license:gpl3+)))
8305
8306 (define-public emacs-deft
8307 (package
8308 (name "emacs-deft")
8309 (version "0.8")
8310 (source
8311 (origin
8312 (method url-fetch)
8313 (uri (string-append "https://stable.melpa.org/packages/deft-"
8314 version ".el"))
8315 (sha256
8316 (base32
8317 "1vb9cjxskc7c0yyf9pvxy1fzypg1vrcgwnjz0m3hslinsgdyig58"))))
8318 (build-system emacs-build-system)
8319 (home-page "https://jblevins.org/projects/deft/")
8320 (synopsis "Quickly browse, filter, and edit plain text notes")
8321 (description
8322 "Deft is an Emacs mode for quickly browsing, filtering, and editing
8323 directories of plain text notes, inspired by Notational Velocity.")
8324 (license license:bsd-3)))
8325
8326 (define-public emacs-anzu
8327 (package
8328 (name "emacs-anzu")
8329 (version "0.62")
8330 (source
8331 (origin
8332 (method url-fetch)
8333 (uri (string-append "https://github.com/syohex/emacs-anzu/archive/"
8334 version ".tar.gz"))
8335 (file-name (string-append name "-" version ".tar.gz"))
8336 (sha256
8337 (base32
8338 "16cg3897x5znbmgk7sdy0qyd0fbic9dmmz0dchq2vz5z29yhg4cz"))))
8339 (build-system emacs-build-system)
8340 (home-page "https://github.com/syohex/emacs-anzu")
8341 (synopsis "Show number of matches in mode-line while searching")
8342 (description
8343 "Anzu provides a minor mode which displays \"current match/total
8344 matches\" in the mode line in various search modes. This is an Emacs port of
8345 Anzu.zim.")
8346 (license license:gpl3+)))
8347
8348 (define-public emacs-emmet-mode
8349 (package
8350 (name "emacs-emmet-mode")
8351 (version "1.0.8")
8352 (source (origin
8353 (method url-fetch)
8354 (uri (string-append "https://github.com/smihica/emmet-mode"
8355 "/archive/" version ".tar.gz"))
8356 (file-name (string-append name "-" version ".tar.gz"))
8357 (sha256
8358 (base32
8359 "0g3p22yabfcp98cfv9dgl9il2m2pd53isq2q11vb3s7qyn31f7zj"))))
8360 (build-system emacs-build-system)
8361 (home-page "https://github.com/smihica/emmet-mode")
8362 (synopsis "Unofficial Emmet's support for Emacs")
8363 (description
8364 "Unfold CSS-selector-like expressions to markup. It is intended to be
8365 used with SGML-like languages: XML, HTML, XHTML, XSL, etc.")
8366 (license license:gpl3+)))
8367
8368 (define-public emacs-ergoemacs-mode
8369 (let ((commit "3ce23bba3cb50562693860f87f3528c471d603ba")
8370 (revision "1"))
8371 (package
8372 (name "emacs-ergoemacs-mode")
8373 (version (git-version "5.16.10.12" revision commit))
8374 (source
8375 (origin
8376 (method git-fetch)
8377 (uri (git-reference
8378 (url "https://github.com/ergoemacs/ergoemacs-mode.git")
8379 (commit commit)))
8380 (sha256
8381 (base32
8382 "1s3b9bridl78hh1mxmdk9nqlmqhibbaxk0a1cixmsf23s06w8w6l"))))
8383 (build-system emacs-build-system)
8384 (propagated-inputs
8385 `(("emacs-undo-tree" ,emacs-undo-tree)))
8386 (home-page "https://ergoemacs.github.io/")
8387 (synopsis "Emacs mode based on common modern interface and ergonomics")
8388 (description
8389 "This package provides an efficient Emacs keybinding set based on
8390 statistics of command frequency, and supports common shortcuts for open,
8391 close, copy, cut, paste, undo, redo.")
8392 (license license:gpl3+))))
8393
8394 (define-public emacs-password-store
8395 (package
8396 (name "emacs-password-store")
8397 (version "1.7.2")
8398 (source (origin
8399 (method url-fetch)
8400 (uri
8401 (string-append "https://git.zx2c4.com/password-store/snapshot/"
8402 "password-store-" version ".tar.xz"))
8403 (sha256
8404 (base32
8405 "1sl0d7nc85c6c2bmmmyb8rpmn47vhkj831l153mjlkawjvhwas27"))))
8406 (build-system emacs-build-system)
8407 (arguments
8408 `(#:phases
8409 (modify-phases %standard-phases
8410 (add-after 'unpack 'extract-el-file
8411 (lambda _
8412 (copy-file "contrib/emacs/password-store.el" "password-store.el")
8413 (delete-file-recursively "contrib")
8414 (delete-file-recursively "man")
8415 (delete-file-recursively "src")
8416 (delete-file-recursively "tests"))))))
8417 (propagated-inputs
8418 `(("emacs-f" ,emacs-f)
8419 ("emacs-s" ,emacs-s)
8420 ("emacs-with-editor" ,emacs-with-editor)
8421 ("password-store" ,password-store)))
8422 (home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs")
8423 (synopsis "Password store (pass) support for Emacs")
8424 (description
8425 "This package provides functions for working with pass (\"the
8426 standard Unix password manager\").")
8427 (license license:gpl2+)))
8428
8429 (define-public emacs-pass
8430 (package
8431 (name "emacs-pass")
8432 (version "1.7")
8433 (source (origin
8434 (method url-fetch)
8435 (uri (string-append
8436 "https://github.com/NicolasPetton/pass/archive/"
8437 version ".tar.gz"))
8438 (sha256
8439 (base32
8440 "0zlx9v6z0q3w9qhq9bq6vb7sli4c9x7qccm2wq55j0nw7bwy2yvj"))
8441 (file-name (string-append name "-" version ".tar.gz"))))
8442 (build-system emacs-build-system)
8443 (propagated-inputs
8444 `(("emacs-password-store" ,emacs-password-store)
8445 ("emacs-f" ,emacs-f)))
8446 (home-page "https://github.com/NicolasPetton/pass")
8447 (synopsis "Major mode for @file{password-store.el}")
8448 (description "This is a major mode for managing password-store (pass)
8449 keychains. The keychain entries are displayed in a directory-like structure
8450 and can be consulted and modified.")
8451 (license license:gpl3+)))
8452
8453 (define-public emacs-evil-anzu
8454 (package
8455 (name "emacs-evil-anzu")
8456 (version "0.03")
8457 (source
8458 (origin
8459 (method url-fetch)
8460 (uri (string-append "https://github.com/syohex/emacs-evil-anzu"
8461 "/archive/" version ".tar.gz"))
8462 (file-name (string-append name "-" version ".tar.gz"))
8463 (sha256
8464 (base32 "032hh2946z529cizqsg8pm6cpn5qdj8lfk3qskmx6xv3g2ra56ns"))))
8465 (build-system emacs-build-system)
8466 (propagated-inputs
8467 `(("emacs-evil" ,emacs-evil)
8468 ("emacs-anzu" ,emacs-anzu)))
8469 (home-page "https://github.com/syohex/emacs-evil-anzu")
8470 (synopsis "Anzu for evil-mode")
8471 (description "@code{anzu} provides a minor mode that displays the current
8472 match and total match information in the mode-line in various search modes.")
8473 (license license:gpl3+)))
8474
8475 (define-public emacs-pg
8476 (let ((commit "4f6516ec3946d95dcef49abb6703cc89ecb5183d"))
8477 (package
8478 (name "emacs-pg")
8479 (version (git-version "0.1" "1" commit))
8480 (source (origin
8481 (method git-fetch)
8482 (uri (git-reference (url "https://github.com/cbbrowne/pg.el")
8483 (commit commit)))
8484 (file-name (git-file-name name version))
8485 (sha256
8486 (base32
8487 "1zh7v4nnpzvbi8yj1ynlqlawk5bmlxi6s80b5f2y7hkdqb5q26k0"))))
8488 (build-system emacs-build-system)
8489 (home-page "https://github.com/cbbrowne/pg.el")
8490 (synopsis "Emacs Lisp interface for PostgreSQL")
8491 (description
8492 "This package provides an Emacs Lisp interface for PostgreSQL.")
8493 (license license:gpl3+))))
8494
8495 (define-public emacs-cl-generic
8496 (package
8497 (name "emacs-cl-generic")
8498 (version "0.3")
8499 (source
8500 (origin
8501 (method url-fetch)
8502 (uri (string-append "https://elpa.gnu.org/packages/cl-generic-"
8503 version ".el"))
8504 (sha256
8505 (base32
8506 "0vb338bhjpsnrf60qgxny4z5rjrnifahnrv9axd4shay89d894zq"))))
8507 (build-system emacs-build-system)
8508 (home-page "https://elpa.gnu.org/packages/seq.html")
8509 (synopsis
8510 "Forward @code{cl-generic} compatibility for Emacs before version 25")
8511 (description "This package provides a subset of the features of the
8512 @code{cl-generic} package introduced in Emacs-25, for use on previous
8513 @code{emacsen}.")
8514 (license license:gpl3+)))
8515
8516 (define-public emacs-finalize
8517 (package
8518 (name "emacs-finalize")
8519 (version "2.0.0")
8520 (source
8521 (origin
8522 (method url-fetch)
8523 (uri (string-append "https://github.com/skeeto/elisp-finalize/archive/"
8524 version ".tar.gz"))
8525 (file-name (string-append name "-" version ".tar.gz"))
8526 (sha256
8527 (base32
8528 "077fycy3i5f0kjw5z3rhf4kld5lbk2idz690nkwhkz04vppk4q4x"))))
8529 (build-system emacs-build-system)
8530 (propagated-inputs
8531 `(("emacs-cl-generic" ,emacs-cl-generic)))
8532 (home-page "https://github.com/skeeto/elisp-finalize")
8533 (synopsis "Finalizers for Emacs Lisp")
8534 (description
8535 "This package will allows to immediately run a callback (a finalizer)
8536 after its registered lisp object has been garbage collected. This allows for
8537 extra resources, such as buffers and processes, to be cleaned up after the
8538 object has been freed.")
8539 (license license:unlicense)))
8540
8541 (define-public emacs-emacsql
8542 (package
8543 (name "emacs-emacsql")
8544 (version "2.0.3")
8545 (source
8546 (origin
8547 (method url-fetch)
8548 (uri (string-append "https://github.com/skeeto/emacsql/archive/"
8549 version ".tar.gz"))
8550 (file-name (string-append name "-" version ".tar.gz"))
8551 (sha256
8552 (base32
8553 "04hfjdgl1zc7jysgjc7d7d3xqpr7q1q9gsmzffjd91ii3hpqjgx6"))))
8554 (build-system emacs-build-system)
8555 (arguments
8556 `(#:modules ((guix build emacs-build-system)
8557 (guix build utils)
8558 (guix build emacs-utils)
8559 (srfi srfi-26))
8560 #:phases
8561 (modify-phases %standard-phases
8562 (delete 'build) ;‘build-emacsql-sqlite’ compiles ‘*.el’ files.
8563 (add-before 'install 'patch-elisp-shell-shebangs
8564 (lambda _
8565 (substitute* (find-files "." "\\.el")
8566 (("/bin/sh") (which "sh")))
8567 #t))
8568 (add-after 'patch-elisp-shell-shebangs 'setenv-shell
8569 (lambda _
8570 (setenv "SHELL" "sh")))
8571 (add-after 'setenv-shell 'build-emacsql-sqlite
8572 (lambda _
8573 (invoke "make" "binary" "CC=gcc")))
8574 (add-after 'build-emacsql-sqlite 'install-emacsql-sqlite
8575 ;; This build phase installs emacs-emacsql binary.
8576 (lambda* (#:key outputs #:allow-other-keys)
8577 (install-file "sqlite/emacsql-sqlite"
8578 (string-append (assoc-ref outputs "out")
8579 "/bin"))
8580 #t))
8581 (add-after 'install-emacsql-sqlite 'patch-emacsql-sqlite.el
8582 ;; This build phase removes interactive prompts
8583 ;; and makes sure Emacs look for binaries in the right places.
8584 (lambda* (#:key outputs #:allow-other-keys)
8585 (let ((file "emacsql-sqlite.el"))
8586 (chmod file #o644)
8587 (emacs-substitute-sexps file
8588 ;; Avoid interactive prompts.
8589 ("(defvar emacsql-sqlite-user-prompted" 't)
8590 ;; Make sure Emacs looks for ‘GCC’ binary in the right place.
8591 ("(executable-find" (which "gcc"))
8592 ;; Make sure Emacs looks for ‘emacsql-sqlite’ binary
8593 ;; in the right place.
8594 ("(defvar emacsql-sqlite-executable"
8595 (string-append (assoc-ref outputs "out")
8596 "/bin/emacsql-sqlite"))))))
8597 (replace 'install
8598 (lambda* (#:key outputs #:allow-other-keys)
8599 (let* ((out (assoc-ref outputs "out")))
8600 (install-file "sqlite/emacsql-sqlite"
8601 (string-append out "/bin"))
8602 (for-each (cut install-file <>
8603 (string-append out "/share/emacs/site-lisp/guix.d/"
8604 "emacsql" "-" ,version))
8605 (find-files "." "\\.elc*$")))
8606 #t)))))
8607 (inputs
8608 `(("emacs-minimal" ,emacs-minimal)
8609 ("mariadb" ,mariadb)
8610 ("postgresql" ,postgresql)))
8611 (propagated-inputs
8612 `(("emacs-finalize" ,emacs-finalize)
8613 ("emacs-pg" ,emacs-pg)))
8614 (home-page "https://github.com/skeeto/emacsql")
8615 (synopsis "Emacs high-level SQL database front-end")
8616 (description "Any readable Lisp value can be stored as a value in EmacSQL,
8617 including numbers, strings, symbols, lists, vectors, and closures. EmacSQL
8618 has no concept of @code{TEXT} values; it's all just Lisp objects. The Lisp
8619 object @code{nil} corresponds 1:1 with @code{NULL} in the database.")
8620 (license license:gpl3+)))
8621
8622 (define-public emacs-closql
8623 (package
8624 (name "emacs-closql")
8625 (version "0.5.1")
8626 (source
8627 (origin
8628 (method url-fetch)
8629 (uri (string-append "https://github.com/emacscollective/closql/archive/"
8630 "v" version ".tar.gz"))
8631 (file-name (string-append name "-" version ".tar.gz"))
8632 (sha256
8633 (base32
8634 "0wa6r0kgbb7f19039p5f3di4dvrvxfgpd8bkam94fca7jvzj536c"))))
8635 (build-system emacs-build-system)
8636 (propagated-inputs
8637 `(("emacs-emacsql" ,emacs-emacsql)))
8638 (home-page "https://github.com/emacscollective/closql")
8639 (synopsis "Store EIEIO objects using EmacSQL")
8640 (description
8641 "This package allows to store uniform EIEIO objects in an EmacSQL
8642 database. SQLite is used as backend. This library imposes some restrictions
8643 on what kind of objects can be stored; it isn't intended to store arbitrary
8644 objects. All objects have to share a common superclass and subclasses cannot
8645 add any additional instance slots.")
8646 (license license:gpl3)))
8647
8648 (define-public emacs-epkg
8649 ;; The release version is to old for the current database scheme.
8650 (let ((commit "432312b9583ed7b88ad9644fd1bf2183765a892e"))
8651 (package
8652 (name "emacs-epkg")
8653 (version (git-version "3.0.0" "1" commit))
8654 (source
8655 (origin
8656 (method git-fetch)
8657 (uri (git-reference
8658 (url "https://github.com/emacscollective/epkg.git")
8659 (commit commit)))
8660 (file-name (git-file-name name version))
8661 (sha256
8662 (base32
8663 "0d882kahn7a0vri7a9r15lvmfx1zn2hsga6jfcc6jv0hqbswlb2k"))))
8664 (build-system emacs-build-system)
8665 (propagated-inputs
8666 `(("emacs-closql" ,emacs-closql)
8667 ("emacs-dash" ,emacs-dash)))
8668 (home-page "https://emacsmirror.net")
8669 (synopsis "Browse the Emacsmirror package database")
8670 (description "This package provides access to a local copy of the
8671 Emacsmirror package database. It provides low-level functions for querying
8672 the database and a @file{package.el} user interface for browsing the database.
8673 Epkg itself is not a package manager.
8674
8675 Getting a local copy:
8676
8677 @example
8678 git clone https://github.com/emacsmirror/epkgs.git ~/.emacs.d/epkgs
8679 cd ~/.emacs.d/epkgs
8680 git submodule init
8681 git config --global url.https://github.com/.insteadOf git@@github.com:
8682 git submodule update
8683 @end example
8684
8685 Some submodule may be missing. In this case Git will prompt for a GitHub user
8686 name and password. To skip it press a @key{Return} key.
8687
8688 You could get a Epkg package list by invoking @code{epkg-list-packages} in
8689 Emacs.")
8690 (license license:gpl3+))))
8691
8692 (define-public emacs-elisp-slime-nav
8693 (package
8694 (name "emacs-elisp-slime-nav")
8695 (version "0.9")
8696 (source
8697 (origin
8698 (method url-fetch)
8699 (uri (string-append "https://github.com/purcell/elisp-slime-nav/archive/"
8700 version ".tar.gz"))
8701 (file-name (string-append name "-" version ".tar.gz"))
8702 (sha256
8703 (base32
8704 "1vq7ym1q47p97gxrv45c9gm96d23xbp237vkmakikj6grngxjfb2"))))
8705 (build-system emacs-build-system)
8706 (home-page "https://github.com/purcell/elisp-slime-nav")
8707 (synopsis "Make @code{M-.} and @code{M-,} work for elisp like they do in SLIME")
8708 (description
8709 "This package provides SLIME's convenient @code{M-.}and @code{M-,} navigation
8710 in @code{emacs-lisp-mode}, together with an elisp equivalent of
8711 @code{slime-describe-symbol}.")
8712 (license license:gpl3+)))
8713
8714 (define-public emacs-dedicated
8715 (package
8716 (name "emacs-dedicated")
8717 (version "1.0.0")
8718 (source (origin
8719 (method url-fetch)
8720 (uri (string-append
8721 "https://github.com/emacsorphanage/dedicated/archive/"
8722 version
8723 ".tar.gz"))
8724 (sha256
8725 (base32
8726 "0nhbkp278cvcznb5rp3jp9ii3mjgb79zx8iwfrw7zfk3yg8688ni"))
8727 (file-name (string-append name "-" version ".tar.gz"))))
8728 (build-system emacs-build-system)
8729 (home-page "https://github.com/emacsorphanage/dedicated")
8730 (synopsis "Emacs minor mode for toggling a windows's \"dedicated\" flag")
8731 (description
8732 "This simple Emacs minor mode allows you to toggle a window's
8733 \"dedicated\" flag. When a window is \"dedicated\", Emacs will not select
8734 files into that window. This can be quite handy since many commands will use
8735 another window to show results (compilation mode, starting info, and so on).
8736 A dedicated window won't be used for such a purpose. For details, please read
8737 the source file.")
8738 (license license:gpl2+)))
8739
8740 (define-public emacs-nnreddit
8741 (let ((commit "9843f99d01fd8f1eea2fc685965a7c7f4eeb187a")
8742 (revision "1"))
8743 (package
8744 (name "emacs-nnreddit")
8745 (version (string-append "0.0.1-" revision "."
8746 (string-take commit 7)))
8747 (source (origin
8748 (method git-fetch)
8749 (uri (git-reference
8750 (url "https://github.com/paul-issartel/nnreddit.git")
8751 (commit commit)))
8752 (file-name (string-append name "-" version "-checkout"))
8753 (sha256
8754 (base32
8755 "0j4h3bnga640250jdq8bwyja49r41ssrsjd6lba4gzzllqk02nbn"))))
8756 (build-system emacs-build-system)
8757 (home-page "https://github.com/paul-issartel/nnreddit")
8758 (synopsis "Reddit backend for the Gnus newsreader")
8759 (description "@url{https://www.reddit.com} backend for the Gnus
8760 newsreader.")
8761 (license license:gpl3+))))
8762
8763 (define-public emacs-makey
8764 (package
8765 (name "emacs-makey")
8766 (version "0.3")
8767 (source
8768 (origin
8769 (method url-fetch)
8770 (uri (string-append "https://github.com/mickeynp/makey/archive/"
8771 version ".tar.gz"))
8772 (file-name (string-append name "-" version ".tar.gz"))
8773 (sha256
8774 (base32
8775 "0kzl4q1wf2zhkx9nrymxa67n99iq0bj7zqhpaz4byksna1hsxfmv"))))
8776 (build-system emacs-build-system)
8777 (home-page "https://github.com/mickeynp/makey")
8778 (synopsis "Emacs interactive command-line mode")
8779 (description
8780 "This package provides an Emacs interactive command-line mode.")
8781 (license license:gpl3+)))
8782
8783 (define-public emacs-outorg
8784 (let ((commit "78b0695121fb974bc4e971eb4ef7f8afd6d89d64"))
8785 (package
8786 (name "emacs-outorg")
8787 (version (git-version "2.0" "1" commit))
8788 (source
8789 (origin
8790 (method git-fetch)
8791 (uri (git-reference
8792 (url "https://github.com/alphapapa/outorg")
8793 (commit commit)))
8794 (file-name (git-file-name name version))
8795 (sha256
8796 (base32
8797 "03aclh4m3f7rb821gr9pwvnqkkl91px3qxdcarpf3ypa1x4fxvlj"))))
8798 (build-system emacs-build-system)
8799 (home-page "https://github.com/alphapapa/outorg")
8800 (synopsis "Org-style comment editing")
8801 (description "Outorg is for editing comment-sections of source-code
8802 files in temporary Org-mode buffers. It turns conventional
8803 literate-programming upside-down in that the default mode is the
8804 programming-mode, and special action has to be taken to switch to the
8805 text-mode (i.e. Org-mode).")
8806 (license license:gpl3+))))
8807
8808 (define-public emacs-outshine
8809 (let ((commit "5f1a6b70231d2811c522e4e5e8c89ff461b311d6"))
8810 (package
8811 (name "emacs-outshine")
8812 (version (git-version "2.0" "1" commit))
8813 (source (origin
8814 (method git-fetch)
8815 (uri (git-reference
8816 (url "https://github.com/alphapapa/outshine.git")
8817 (commit commit)))
8818 (file-name (git-file-name name version))
8819 (sha256
8820 (base32
8821 "1l9v1dfhgg7il11ifbhvcvrg3acfjk9sdxlc3lja1k54d7dp60jv"))))
8822 (build-system emacs-build-system)
8823 (propagated-inputs
8824 `(("emacs-outorg" ,emacs-outorg)))
8825 (home-page "https://github.com/alphapapa/outshine")
8826 (synopsis "Emacs outline with outshine")
8827 (description "Outshine attempts to bring the look and feel of
8828 @code{org-mode} to an Emacs outside of the Org major-mode. It is an extension
8829 of @code{outline-minor-mode} (@code{org-mode} itself derives from
8830 outline-mode), so there is no such thing like an outshine mode, only
8831 @code{outline-minor-mode} with outshine extensions loaded.")
8832 (license license:gpl3+))))
8833
8834 (define-public emacs-parsebib
8835 (package
8836 (name "emacs-parsebib")
8837 (version "2.3.1")
8838 (source
8839 (origin
8840 (method url-fetch)
8841 (uri (string-append "https://github.com/joostkremers/parsebib/archive/"
8842 version ".tar.gz"))
8843 (file-name (string-append name "-" version ".tar.gz"))
8844 (sha256
8845 (base32
8846 "0cxagnmc5ab6idmb26axpizhr4sqglkncc59768yavn3p04jyq63"))))
8847 (build-system emacs-build-system)
8848 (home-page "https://github.com/joostkremers/parsebib")
8849 (synopsis "Library for parsing bib files")
8850 (description
8851 "This package provides an Emacs library for parsing bib files.")
8852 (license license:gpl3+)))
8853
8854 (define-public emacs-biblio
8855 (package
8856 (name "emacs-biblio")
8857 (version "0.1")
8858 (source
8859 (origin
8860 (method url-fetch)
8861 (uri (string-append "https://github.com/cpitclaudel/biblio.el/archive/"
8862 version ".tar.gz"))
8863 (file-name (string-append name "-" version ".tar.gz"))
8864 (sha256
8865 (base32
8866 "109fvivsb4r0rbqljngqrmxqvbnbkqlivczx6brrvlr7ci625lhf"))))
8867 (build-system emacs-build-system)
8868 (propagated-inputs
8869 `(("emacs-seq" ,emacs-seq)
8870 ("emacs-dash" ,emacs-dash)
8871 ("emacs-let-alist" ,emacs-let-alist)))
8872 (home-page "https://github.com/cpitclaudel/biblio.el")
8873 (synopsis "Browse and import bibliographic references")
8874 (description "This package provides an extensible Emacs package for
8875 browsing and fetching references.
8876
8877 @file{biblio.el} makes it easy to browse and gather bibliographic references
8878 and publications from various sources, by keywords or by DOI. References are
8879 automatically fetched from well-curated sources, and formatted as BibTeX.")
8880 (license license:gpl3+)))
8881
8882 (define-public emacs-helm-bibtex
8883 (let ((commit "8ed898fb5a68f18e9bb9973832a5c1f8abcfc463")
8884 (revision "1"))
8885 (package
8886 (name "emacs-helm-bibtex")
8887 (version (string-append "2.0.0" "-" revision "."
8888 (string-take commit 7)))
8889 (source
8890 (origin
8891 (method git-fetch)
8892 (uri (git-reference
8893 (url "https://github.com/tmalsburg/helm-bibtex.git")
8894 (commit commit)))
8895 (file-name (string-append name "-" version "-checkout"))
8896 (sha256
8897 (base32
8898 "14lyx0vbqr97p3anzrsp7m3q0kqclyjcdwplpraim403fcklzbnz"))))
8899 (build-system emacs-build-system)
8900 (propagated-inputs
8901 `(("emacs-helm" ,emacs-helm)
8902 ("emacs-parsebib" ,emacs-parsebib)
8903 ("emacs-s" ,emacs-s)
8904 ("emacs-dash" ,emacs-dash)
8905 ("emacs-f" ,emacs-f)
8906 ("emacs-biblio" ,emacs-biblio)
8907 ("emacs-ivy" ,emacs-ivy)))
8908 (home-page "https://github.com/tmalsburg/helm-bibtex")
8909 (synopsis "Bibliography manager based on Helm")
8910 (description "This package provides bibliography manager for Emacs,
8911 based on Helm and the bibtex-completion backend.
8912
8913 Key features:
8914
8915 @itemize
8916 @item Quick access to your bibliography from within Emacs
8917 @item Powerful search capabilities
8918 @item Provides instant search results as you type
8919 @item Tightly integrated with LaTeX authoring, emails, Org mode, etc.
8920 @item Open the PDFs, URLs, or DOIs associated with an entry
8921 @item Insert LaTeX cite commands, Ebib links, or Pandoc citations,
8922 BibTeX entries, or plain text references at point, attach PDFs to emails
8923 @item Support for note taking
8924 @item Quick access to online bibliographic databases such as Pubmed,
8925 arXiv, Google Scholar, Library of Congress, etc.
8926 @item Imports BibTeX entries from CrossRef and other sources.
8927 @end itemize\n")
8928 (license license:gpl3+))))
8929
8930 (define-public emacs-ewmctrl
8931 (let ((commit "3d0217c4d6cdb5c308b6cb4293574f470d4faacf"))
8932 (package
8933 (name "emacs-ewmctrl")
8934 (version (git-version "0.0.1" "1" commit))
8935 (source
8936 (origin
8937 (method git-fetch)
8938 (uri (git-reference
8939 (url "https://github.com/flexibeast/ewmctrl.git")
8940 (commit commit)))
8941 (file-name (git-file-name name version))
8942 (sha256
8943 (base32
8944 "0ilwvx0qryv3v6xf0gxqwnfm6pf96gxap8h9g3f6z6lk9ff4n1wi"))))
8945 (build-system emacs-build-system)
8946 (arguments
8947 '(#:phases
8948 (modify-phases %standard-phases
8949 (add-after 'unpack 'patch-ewmctrl
8950 ;; This build phase makes sure ‘ewmctrl’ looks
8951 ;; for ‘wmctrl’ in the right place.
8952 (lambda _
8953 (let ((file "ewmctrl.el"))
8954 (chmod file #o644)
8955 (emacs-substitute-sexps file
8956 ("(defcustom ewmctrl-wmctrl-path" (which "wmctrl")))))))))
8957 (inputs
8958 `(("wmctrl" ,wmctrl)))
8959 (home-page "https://github.com/flexibeast/ewmctrl")
8960 (synopsis "Emacs interface to @code{wmctrl}")
8961 (description "@code{ewmctrl} provides an Emacs interface to
8962 @code{wmctrl} command-line window-management program.")
8963 (license license:gpl3+))))
8964
8965 (define-public emacs-helm-gtags
8966 (package
8967 (name "emacs-helm-gtags")
8968 (version "1.5.6")
8969 (source (origin
8970 (method url-fetch)
8971 (uri (string-append
8972 "https://github.com/syohex/emacs-helm-gtags/archive/"
8973 version ".tar.gz"))
8974 (file-name (string-append name "-" version ".tar.gz"))
8975 (sha256
8976 (base32
8977 "1a10snhg6nnnan6w9a7mcziy26vxbsr3c35i0gcarnkdp2yqng36"))))
8978 (build-system emacs-build-system)
8979 (propagated-inputs
8980 `(("emacs-helm" ,emacs-helm)))
8981 (home-page "https://github.com/syohex/emacs-helm-gtags")
8982 (synopsis "Emacs Helm interface to GNU Global")
8983 (description
8984 "@code{emacs-helm-gtags} provides a Emacs Helm interface to GNU Global.")
8985 (license license:gpl3+)))
8986
8987 (define-public emacs-list-utils
8988 (package
8989 (name "emacs-list-utils")
8990 (version "0.4.4")
8991 (source
8992 (origin
8993 (method url-fetch)
8994 (uri (string-append "https://github.com/rolandwalker/list-utils/archive/"
8995 "v" version ".tar.gz"))
8996 (file-name (string-append name "-" version ".tar.gz"))
8997 (sha256
8998 (base32
8999 "1xc1xh8c82h5gdjbgpdsdclgwxkxbb7h3x3a2bscpm41g8pnan4p"))))
9000 (build-system emacs-build-system)
9001 (home-page "https://github.com/rolandwalker/list-utils")
9002 (synopsis "List-manipulation utility functions")
9003 (description "This package provides a list manipulation library for Emacs.")
9004 (license license:gpl3+)))
9005
9006 (define-public emacs-move-text
9007 (package
9008 (name "emacs-move-text")
9009 (version "2.0.8")
9010 (source
9011 (origin
9012 (method url-fetch)
9013 (uri (string-append "https://github.com/emacsfodder/move-text/archive/"
9014 version ".tar.gz"))
9015 (file-name (string-append name "-" version ".tar.gz"))
9016 (sha256
9017 (base32
9018 "1sjfja9r25692pgcldgnjzkapzy970m14jh9l4pajysiqcdk72g0"))))
9019 (build-system emacs-build-system)
9020 (home-page "https://github.com/emacsfodder/move-text")
9021 (synopsis "Move current line or region with M-up or M-down")
9022 (description "This package provide functions to move the current line
9023 using @kbd{M-up} or @kbd{M-down} if a region is marked, it will move the
9024 region instead.")
9025 (license license:gpl3+)))
9026
9027 (define-public emacs-validate
9028 (package
9029 (name "emacs-validate")
9030 (version "1.0.5")
9031 (source (origin
9032 (method url-fetch)
9033 (uri (string-append "https://github.com/Malabarba/validate.el"
9034 "/archive/" version ".tar.gz"))
9035 (file-name (string-append name "-" version ".tar.gz"))
9036 (sha256
9037 (base32
9038 "125mbd111f1h1baw0z3fzm48y1bvaigljyzvvnqgrn0shxbj0khg"))))
9039 (build-system emacs-build-system)
9040 (home-page "https://github.com/Malabarba/validate.el")
9041 (synopsis "Emacs library for scheme validation")
9042 (description "This Emacs library provides two functions that perform
9043 schema validation.")
9044 (license license:gpl3+)))
9045
9046 (define-public emacs-rainbow-blocks
9047 (let ((commit "dd435d7bb34ff6f162a5f315df308b90b7e9f842"))
9048 (package
9049 (name "emacs-rainbow-blocks")
9050 (version (git-version "1.0.0" "1" commit))
9051 (source (origin
9052 (method git-fetch)
9053 (uri (git-reference
9054 (url "https://github.com/istib/rainbow-blocks.git")
9055 (commit commit)))
9056 (file-name (git-file-name name version))
9057 (sha256
9058 (base32
9059 "06yfb3i7wzvqrhkb61zib9xvpb5i00s4frizkzff66im05k0n795"))))
9060 (build-system emacs-build-system)
9061 (home-page "https://github.com/istib/rainbow-blocks")
9062 (synopsis "Highlight sexp blocks")
9063 (description "Rainbow-blocks is an Emacs mode that highlights blocks
9064 made of parentheses, brackets, and braces according to their depth. Each
9065 successive level is highlighted in a different color. This makes it easy to
9066 orient yourself in the code, and tell which statements are at a given level.")
9067 (license license:gpl3+))))
9068
9069 (define-public emacs-hierarchy
9070 (package
9071 (name "emacs-hierarchy")
9072 (version "0.7.0")
9073 (source
9074 (origin
9075 (method url-fetch)
9076 (uri (string-append
9077 "https://github.com/DamienCassou/hierarchy/archive/"
9078 "v" version ".tar.gz"))
9079 (file-name (string-append name "-" version ".tar.gz"))
9080 (sha256
9081 (base32
9082 "1a463v5zk6zis2p8cs4mads3iyxh266yahi6j6y0paggfl2yhkc8"))))
9083 (build-system emacs-build-system)
9084 (home-page "https://github.com/DamienCassou/hierarchy")
9085 (synopsis "Library to create and display hierarchy structures")
9086 (description "This package provides an Emacs library to create, query,
9087 navigate and display hierarchy structures.")
9088 (license license:gpl3+)))
9089
9090 (define-public emacs-tree-mode
9091 (let ((commit "b06078826d5875d74b0e7b7ac47b0d0917610534")
9092 (revision "1"))
9093 (package
9094 (name "emacs-tree-mode")
9095 (version (string-append "0.0.1" "-" revision "."
9096 (string-take commit 7)))
9097 (source
9098 (origin
9099 (method git-fetch)
9100 (uri (git-reference
9101 (url "https://github.com/emacsorphanage/tree-mode.git")
9102 (commit commit)))
9103 (file-name (string-append name "-" version "-checkout"))
9104 (sha256
9105 (base32
9106 "13bbdhdmqg4x9yghanhr8fsbsxbnypzxdxgicz31sjjm675kpnix"))))
9107 (build-system emacs-build-system)
9108 (home-page "https://github.com/emacsorphanage/tree-mode")
9109 (synopsis "Emacs mode to manage tree widgets")
9110 (description
9111 "This package provides an Emacs library to manage tree widgets.")
9112 (license license:gpl3+))))
9113
9114 (define-public emacs-md4rd
9115 (let ((commit "be0fc4951b2d1f5194ffa1fcaac706dbac560500")
9116 (revision "1"))
9117 (package
9118 (name "emacs-md4rd")
9119 (version (string-append "0.0.1" "-" revision "."
9120 (string-take commit 7)))
9121 (source (origin
9122 (method git-fetch)
9123 (uri (git-reference
9124 (url "https://github.com/ahungry/md4rd.git")
9125 (commit commit)))
9126 (file-name (string-append name "-" version "-checkout"))
9127 (sha256
9128 (base32
9129 "1i93shx5x192gd7cl2r6gvcvhhwyi1k08abi5w3izv1hn3pmksgq"))))
9130 (propagated-inputs
9131 `(("emacs-hierarchy" ,emacs-hierarchy)
9132 ("emacs-request" ,emacs-request)
9133 ("emacs-dash" ,emacs-dash)
9134 ("emacs-s" ,emacs-s)
9135 ("emacs-tree-mode" ,emacs-tree-mode)))
9136 (build-system emacs-build-system)
9137 (home-page "https://github.com/ahungry/md4rd")
9138 (synopsis "Emacs Mode for Reddit")
9139 (description
9140 "This package allows to read Reddit from within Emacs interactively.")
9141 (license license:gpl3+))))
9142
9143 (define-public emacs-pulseaudio-control
9144 (let ((commit "1da372ec79f5d2fb901d1f9f0679fee8848fd011")
9145 (revision "2"))
9146 (package
9147 (name "emacs-pulseaudio-control")
9148 (version (git-version "0.0.1" revision commit))
9149 (source
9150 (origin
9151 (method git-fetch)
9152 (uri (git-reference
9153 (url "https://github.com/flexibeast/pulseaudio-control.git")
9154 (commit commit)))
9155 (file-name (git-file-name name version))
9156 (sha256
9157 (base32
9158 "02xrsms2pjqdk6327midi61i5vg2h9cq5jwaxv43ldm68wl7hi6k"))))
9159 (build-system emacs-build-system)
9160 (arguments
9161 '(#:phases (modify-phases %standard-phases
9162 (add-after 'unpack 'patch-file-name
9163 (lambda* (#:key inputs #:allow-other-keys)
9164 (let ((pulseaudio (assoc-ref inputs "pulseaudio")))
9165 (chmod "pulseaudio-control.el" #o600)
9166 (emacs-substitute-variables "pulseaudio-control.el"
9167 ("pulseaudio-control-pactl-path"
9168 (string-append pulseaudio "/bin/pactl")))
9169 #t))))))
9170 (inputs `(("pulseaudio" ,pulseaudio)))
9171 (home-page "https://github.com/flexibeast/pulseaudio-control")
9172 (synopsis "Control @code{pulseaudio} from Emacs")
9173 (description
9174 "This package allows to control @code{pulseaudio} from Emacs.")
9175 (license license:gpl3+))))
9176
9177 (define-public emacs-datetime
9178 (package
9179 (name "emacs-datetime")
9180 (version "0.3")
9181 (source (origin
9182 (method url-fetch)
9183 (uri (string-append
9184 "https://github.com/doublep/datetime/archive/"
9185 version ".tar.gz"))
9186 (file-name (string-append name "-" version ".tar.gz"))
9187 (sha256
9188 (base32
9189 "12wqpj67rjij2ki7nmw38rz3k2bsq68pk6zswknlcn9qhp1zd9w9"))))
9190 (build-system emacs-build-system)
9191 (home-page "https://github.com/doublep/datetime/")
9192 (synopsis "Library to work with dates in Emacs")
9193 (description "Parsing, formatting, matching and recoding
9194 timestamps and date-time format strings library for Emacs.")
9195 (license license:gpl3+)))
9196
9197 (define-public emacs-org-mind-map
9198 (let ((commit "9d6e262bedd94daf9de269f4d56de277275677cb")
9199 (revision "1"))
9200 (package
9201 (name "emacs-org-mind-map")
9202 (version (string-append "0.0.1" "-" revision "."
9203 (string-take commit 7)))
9204 (source
9205 (origin
9206 (method git-fetch)
9207 (uri (git-reference
9208 (url "https://github.com/theodorewiles/org-mind-map.git")
9209 (commit commit)))
9210 (file-name (string-append name "-" version "-checkout"))
9211 (sha256
9212 (base32
9213 "0jgkkgq7g64zckrmjib0hvz0qy3ynz5vz13qbmlpf096l3bb65wn"))))
9214 (propagated-inputs
9215 `(("emacs-dash" ,emacs-dash)))
9216 (build-system emacs-build-system)
9217 (home-page "https://github.com/theodorewiles/org-mind-map")
9218 (synopsis "Create Graphviz directed graphs from Org files")
9219 (description
9220 "This package creates Graphviz directed graphs from Org files.")
9221 (license license:gpl3+))))
9222
9223 (define-public emacs-npm-mode
9224 (package
9225 (name "emacs-npm-mode")
9226 (version "0.6.0")
9227 (source
9228 (origin
9229 (method url-fetch)
9230 (uri (string-append "https://github.com/mojochao/npm-mode/archive/"
9231 version ".tar.gz"))
9232 (file-name (string-append name "-" version ".tar.gz"))
9233 (sha256
9234 (base32
9235 "1kq1ww22dwf8c2i2b4z2ldbbmnihj65kb7n5vzvwkch9h4hxpqh5"))))
9236 (build-system emacs-build-system)
9237 (home-page "https://github.com/mojochao/npm-mode")
9238 (synopsis "Minor mode for working with @code{npm} projects")
9239 (description
9240 "@code{npm-mode} provides a minor mode to work with @code{npm} projects.")
9241 (license license:gpl3+)))
9242
9243 (define-public emacs-seq
9244 (package
9245 (name "emacs-seq")
9246 (version "2.20")
9247 (source
9248 (origin
9249 (method url-fetch)
9250 (uri (string-append "http://elpa.gnu.org/packages/seq-" version ".tar"))
9251 (sha256
9252 (base32
9253 "0vrpx6nnyjb0gsypknzagimlhvcvi5y1rcdkpxyqr42415zr8d0n"))))
9254 (build-system emacs-build-system)
9255 (home-page "http://elpa.gnu.org/packages/seq.html")
9256 (synopsis "Sequence manipulation functions")
9257 (description "Sequence-manipulation functions that complement basic
9258 functions provided by @file{subr.el}.")
9259 (license license:gpl3+)))
9260
9261 (define-public emacs-itail
9262 (let ((commit "6e43c20da03be3b9c6ece93b7dc3495975ec1888")
9263 (revision "1"))
9264 (package
9265 (name "emacs-itail")
9266 (version (string-append "0.0.1" "-" revision "."
9267 (string-take commit 7)))
9268 (source
9269 (origin
9270 (method git-fetch)
9271 (uri (git-reference
9272 (url "https://github.com/re5et/itail.git")
9273 (commit commit)))
9274 (file-name (string-append name "-" version "-checkout"))
9275 (sha256
9276 (base32
9277 "044nzxh1hq41faxw3lix0wy78vfz304pjcaa5a11dqfz7q3gx5cv"))))
9278 (build-system emacs-build-system)
9279 (home-page "https://github.com/re5et/itail")
9280 (synopsis "Interactive @code{tail} Emacs mode")
9281 (description "@code{itail} provides interactive @code{tail} mode
9282 that allows you to filter the tail with unix pipes and highlight the
9283 contents of the tailed file. Works locally or on remote files using
9284 tramp.")
9285 (license license:gpl3+))))
9286
9287 (define-public emacs-loop
9288 (package
9289 (name "emacs-loop")
9290 (version "1.3")
9291 (source
9292 (origin
9293 (method url-fetch)
9294 (uri (string-append "https://github.com/Wilfred/loop.el/archive/"
9295 version ".tar.gz"))
9296 (file-name (string-append name "-" version ".tar.gz"))
9297 (sha256
9298 (base32
9299 "1z3rhh3zyjabz36410yz0lp4a0qwwj0387as662wvx3z9y54jia9"))))
9300 (build-system emacs-build-system)
9301 (home-page "https://github.com/Wilfred/loop.el")
9302 (synopsis "Imperative loop structures for Emacs")
9303 (description "Loop structures familiar to users of other languages. This
9304 library adds a selection of popular loop structures as well as break and
9305 continue.")
9306 (license license:gpl3+)))
9307
9308 (define-public emacs-elisp-refs
9309 (package
9310 (name "emacs-elisp-refs")
9311 (version "1.3")
9312 (source
9313 (origin
9314 (method url-fetch)
9315 (uri (string-append "https://github.com/Wilfred/elisp-refs/archive/"
9316 version ".tar.gz"))
9317 (file-name (string-append name "-" version ".tar.gz"))
9318 (sha256
9319 (base32
9320 "02nzcn3v14n7mp7q32j5r4wdlpsw3zixzh6cf0cdyarfir6dly3p"))))
9321 (build-system emacs-build-system)
9322 (propagated-inputs
9323 `(("emacs-dash" ,emacs-dash)
9324 ("emacs-f" ,emacs-f)
9325 ("emacs-list-utils" ,emacs-list-utils)
9326 ("emacs-loop" ,emacs-loop)
9327 ("emacs-s" ,emacs-s)
9328 ("emacs-shut-up" ,emacs-shut-up)))
9329 (home-page "https://github.com/Wilfred/elisp-refs")
9330 (synopsis "Find callers of elisp functions or macros")
9331 (description "Find references to functions, macros or variables. Unlike a
9332 dumb text search, @code{elisp-refs} actually parses the code, so it's never
9333 confused by comments or @code{foo-bar} matching @code{foo}.")
9334 (license license:gpl3+)))
9335
9336 (define-public emacs-crux
9337 (let ((commit "4f5c8fefd5a6aa52e128c4a0401cc86410d6ac8f")
9338 (revision "1"))
9339 (package
9340 (name "emacs-crux")
9341 (version (string-append "0.3.0" "-" revision "."
9342 (string-take commit 7)))
9343 (source
9344 (origin
9345 (method git-fetch)
9346 (uri (git-reference
9347 (url "https://github.com/bbatsov/crux.git")
9348 (commit commit)))
9349 (file-name (string-append name "-" version "-checkout"))
9350 (sha256
9351 (base32
9352 "1fdxvv25cs01sg6fmvmzxpzvs50i6v8n2jya60lbavxqqhi0sbxd"))))
9353 (build-system emacs-build-system)
9354 (home-page "https://github.com/bbatsov/crux")
9355 (synopsis "Collection of useful functions for Emacs")
9356 (description
9357 "@code{crux} provides a collection of useful functions for Emacs.")
9358 (license license:gpl3+))))
9359
9360 (define-public emacs-edit-server
9361 (package
9362 (name "emacs-edit-server")
9363 (version "1.13")
9364 (source
9365 (origin
9366 (method url-fetch)
9367 (uri (string-append "https://github.com/stsquad/emacs_chrome/archive/"
9368 "v" version ".tar.gz"))
9369 (file-name (string-append name "-" version ".tar.gz"))
9370 (sha256
9371 (base32
9372 "1r92kqggslqasza718z4ka883mqfbnibdm43f0j9gaipk0msm2wf"))))
9373 (build-system emacs-build-system)
9374 (arguments
9375 `(#:phases
9376 (modify-phases %standard-phases
9377 (add-after 'unpack 'chdir-elisp
9378 ;; Elisp directory is not in root of the source.
9379 (lambda _
9380 (chdir "servers"))))))
9381 (home-page "https://github.com/stsquad/emacs_chrome")
9382 (synopsis "Server that responds to edit requests from Chromium")
9383 (description
9384 "This package provides an edit server to respond to requests from Emacs.")
9385 (license license:gpl3+)))
9386
9387 (define-public emacs-m-buffer-el
9388 (package
9389 (name "emacs-m-buffer-el")
9390 (version "0.15")
9391 (source
9392 (origin
9393 (method url-fetch)
9394 (uri (string-append "https://github.com/phillord/m-buffer-el"
9395 "/archive/" "v" version ".tar.gz"))
9396 (file-name (string-append name "-" version ".tar.gz"))
9397 (sha256
9398 (base32
9399 "17vdcc8q37q9db98jyww1c0ivinmwfcw4l04zccfacalra63a214"))))
9400 (arguments
9401 `(#:phases
9402 (modify-phases %standard-phases
9403 (add-before 'install 'check
9404 (lambda* (#:key inputs #:allow-other-keys)
9405 (invoke "emacs" "--batch" "-L" "."
9406 "-l" "test/m-buffer-test.el"
9407 "-l" "test/m-buffer-at-test.el"
9408 "-f" "ert-run-tests-batch-and-exit"))))))
9409 (build-system emacs-build-system)
9410 (home-page "https://github.com/phillord/m-buffer-el")
9411 (synopsis "List oriented buffer operations for Emacs")
9412 (description "@code{m-buffer} provides a set of list-orientated functions
9413 for operating over the contents of Emacs buffers.")
9414 (license license:gpl3+)))
9415
9416 (define-public emacs-let-alist
9417 (package
9418 (name "emacs-let-alist")
9419 (version "1.0.5")
9420 (source
9421 (origin
9422 (method url-fetch)
9423 (uri (string-append
9424 "https://elpa.gnu.org/packages/let-alist-" version ".el"))
9425 (sha256
9426 (base32
9427 "0r7b9jni50la1m79kklml11syg8d2fmdlr83pv005sv1wh02jszw"))))
9428 (build-system emacs-build-system)
9429 (home-page "https://elpa.gnu.org/packages/let-alist.html")
9430 (synopsis "Easily let-bind values of an assoc-list by their names")
9431 (description "This package offers a single macro, @code{let-alist}. This
9432 macro takes a first argument (whose value must be an alist) and a body.")
9433 (license license:gpl3+)))
9434
9435 (define-public emacs-esup
9436 (let ((commit "a589005a9a888537deef94d6fe38a9b8790c97c7")
9437 (revision "1"))
9438 (package
9439 (name "emacs-esup")
9440 (version (string-append "0.6" "-" revision "."
9441 (string-take commit 7)))
9442 (source
9443 (origin
9444 (method git-fetch)
9445 (uri (git-reference
9446 (url "https://github.com/jschaf/esup.git")
9447 (commit commit)))
9448 (file-name (string-append name "-" version "-checkout"))
9449 (sha256
9450 (base32
9451 "04lxmd0h7mfjjl0qghrycgff0vcv950j1wqv0dbkr61jxp64n5fv"))))
9452 ;; TODO: Add tests
9453 (build-system emacs-build-system)
9454 (home-page "https://github.com/jschaf/esup")
9455 (synopsis "Emacs start up profiler")
9456 (description "Benchmark Emacs Startup time without ever leaving
9457 your Emacs.")
9458 (license license:gpl2+))))
9459
9460 (define-public emacs-sourcemap
9461 (package
9462 (name "emacs-sourcemap")
9463 (version "0.03")
9464 (source
9465 (origin
9466 (method url-fetch)
9467 (uri (string-append "https://github.com/syohex/emacs-sourcemap/archive/"
9468 version ".tar.gz"))
9469 (file-name (string-append name "-" version ".tar.gz"))
9470 (sha256
9471 (base32
9472 "0bmd5l3cx2iyl7vxn84xdhs80b07kpdpfwki28lh5d0kmm5qs6m6"))))
9473 (build-system emacs-build-system)
9474 (home-page "https://github.com/syohex/emacs-sourcemap")
9475 (synopsis "Sourcemap parser")
9476 (description "Sourcemap parser")
9477 (license license:gpl3+)))
9478
9479 (define-public emacs-macrostep
9480 (let ((commit "424e3734a1ee526a1bd7b5c3cd1d3ef19d184267"))
9481 (package
9482 (name "emacs-macrostep")
9483 (version (git-version "0.9" "1" commit))
9484 (source (origin
9485 (method git-fetch)
9486 (uri (git-reference
9487 (url "https://github.com/joddie/macrostep.git")
9488 (commit commit)))
9489 (file-name (string-append name "-" version "-checkout"))
9490 (sha256
9491 (base32
9492 "1fm40mxdn289cyzgw992223dgrjmwxn4q8svyyxfaxjrpb38jhjz"))))
9493 (build-system emacs-build-system)
9494 (arguments
9495 '(#:phases
9496 (modify-phases %standard-phases
9497 (add-before 'check 'remove-test
9498 ;; Fails because of requirement ‘/bin/sh’.
9499 (lambda _
9500 (let ((file "macrostep-test.el"))
9501 (chmod file #o644)
9502 (emacs-batch-edit-file file
9503 `(progn (progn (goto-char (point-min))
9504 (re-search-forward
9505 "(ert-deftest macrostep-expand-c-macros")
9506 (beginning-of-line)
9507 (kill-sexp))
9508 (basic-save-buffer))))))
9509 (add-before 'install 'check
9510 (lambda _
9511 (invoke "emacs" "--batch" "-L" "."
9512 "-l" "macrostep-test.el"
9513 "-f" "ert-run-tests-batch-and-exit"))))))
9514 (home-page "https://github.com/joddie/macrostep")
9515 (synopsis "Interactive macro-expander for Emacs")
9516 (description "@code{macrostep} is an Emacs minor mode for interactively
9517 stepping through the expansion of macros in Emacs Lisp source code. It lets
9518 you see exactly what happens at each step of the expansion process by
9519 pretty-printing the expanded forms inline in the source buffer, which is
9520 temporarily read-only while macro expansions are visible. You can expand and
9521 collapse macro forms one step at a time, and evaluate or instrument the
9522 expansions for debugging with Edebug as normal (but see “Bugs and known
9523 limitations”, below). Single-stepping through the expansion is particularly
9524 useful for debugging macros that expand into another macro form. These can be
9525 difficult to debug with Emacs’ built-in macroexpand, which continues expansion
9526 until the top-level form is no longer a macro call.")
9527 (license license:gpl3+))))
9528
9529 (define-public emacs-parent-mode
9530 (package
9531 (name "emacs-parent-mode")
9532 (version "2.3")
9533 (source
9534 (origin
9535 (method url-fetch)
9536 (uri (string-append "https://github.com/Fanael/parent-mode/archive/"
9537 version ".tar.gz"))
9538 (file-name (string-append name "-" version ".tar.gz"))
9539 (sha256
9540 (base32
9541 "0gxbl5s1w96v6v55b7aaansgw4sxhzfx9nrsvpk3pfhsibs6yqjd"))))
9542 (build-system emacs-build-system)
9543 (home-page "https://github.com/Fanael/parent-mode")
9544 (synopsis "Get major mode's parent modes")
9545 (description "Get major mode's parent modes")
9546 (license license:gpl3+)))
9547
9548 (define-public emacs-lacarte
9549 (package
9550 (name "emacs-lacarte")
9551 (version "0.1")
9552 (source (origin
9553 (method url-fetch)
9554 (uri "https://www.emacswiki.org/emacs/download/lacarte.el")
9555 (sha256
9556 (base32
9557 "1sbmk37ljq5j7dsw5c37sbxvlfgdqswh7bi4dknyjzfxlq50f4am"))))
9558 (build-system emacs-build-system)
9559 (home-page "https://www.emacswiki.org/emacs/lacarte.el")
9560 (synopsis "Execute menu items as commands, with completion")
9561 (description "Execute menu items as commands, with completion.")
9562 (license license:gpl3)))
9563
9564 (define-public emacs-company-lua
9565 (let ((commit "0be8122f3adf57ad27953bf4b03545d6298d3da4"))
9566 (package
9567 (name "emacs-company-lua")
9568 (version (git-version "0.1" "1" commit))
9569 (source
9570 (origin
9571 (method git-fetch)
9572 (uri (git-reference
9573 (url "https://github.com/ptrv/company-lua.git")
9574 (commit commit)))
9575 (file-name (git-file-name name version))
9576 (sha256
9577 (base32
9578 "1d9i165apgmwns7b2fd5wcpjpkah3dyj20v5sb8ynvz6qhhr5r9c"))))
9579 (build-system emacs-build-system)
9580 (propagated-inputs
9581 `(("emacs-company" ,emacs-company)
9582 ("emacs-s" ,emacs-s)
9583 ("emacs-f" ,emacs-f)
9584 ("emacs-lua-mode" ,emacs-lua-mode)))
9585 (home-page "https://github.com/ptrv/company-lua")
9586 (synopsis "Company backend for Lua")
9587 (description
9588 "This package provides Company backend for Lua programming language.")
9589 (license license:gpl3+))))
9590
9591 (define-public emacs-beginend
9592 (package
9593 (name "emacs-beginend")
9594 (version "2.0.0")
9595 (source
9596 (origin
9597 (method url-fetch)
9598 (uri (string-append "https://github.com/DamienCassou/beginend/archive/"
9599 "v" version ".tar.gz"))
9600 (file-name (string-append name "-" version ".tar.gz"))
9601 (sha256
9602 (base32
9603 "0z4rbwffh9vxfvcrlvym4p73z7gf72q0b5iv33llbpcpbijknnrq"))))
9604 ;; TODO: Run tests.
9605 (build-system emacs-build-system)
9606 (inputs
9607 `(("emacs-undercover" ,emacs-undercover))) ; For tests.
9608 (home-page "https://github.com/DamienCassou/beginend")
9609 (synopsis "Redefine @code{M-<} and @code{M->} for Emacs modes")
9610 (description "@code{beginend} redefines @code{M-<} and @code{M->}
9611 keybindings for Emacs modes so that point moves to meaningful
9612 locations. Redefined keys are still accessible by pressing the same
9613 key again.")
9614 (license license:gpl3+)))
9615
9616 (define-public emacs-mbsync
9617 (let ((commit "42077e83ae2db778ce0f8e22f8357b40355526b3")
9618 (revision "1"))
9619 (package
9620 (name "emacs-mbsync")
9621 (version (string-append "0.0.1" "-" revision "."
9622 (string-take commit 7)))
9623 (source
9624 (origin
9625 (method git-fetch)
9626 (uri (git-reference
9627 (url "https://github.com/dimitri/mbsync-el.git")
9628 (commit commit)))
9629 (file-name (string-append name "-" version "-checkout"))
9630 (sha256
9631 (base32
9632 "0yj93y2mpxlir8x73znlg1slxlv4blm1vjv5h2w3j8lxg8bxvmn6"))))
9633 (build-system emacs-build-system)
9634 (home-page "https://github.com/dimitri/mbsync-el")
9635 (synopsis "Interface to mbsync for Emacs")
9636 (description "This package allows to call the @code{mbsync} from
9637 within Emacs.")
9638 (license license:gpl3+))))
9639
9640 (define-public emacs-ibuffer-projectile
9641 (let ((commit "c18ac540ee46cb759fc5df18747f6e8d23563011")
9642 (revision "1"))
9643 (package
9644 (name "emacs-ibuffer-projectile")
9645 (version (string-append "0.2" "-" revision "."
9646 (string-take commit 7)))
9647 (source
9648 (origin
9649 (method git-fetch)
9650 (uri (git-reference
9651 (url "https://github.com/purcell/ibuffer-projectile.git")
9652 (commit commit)))
9653 (file-name (string-append name "-" version "-checkout"))
9654 (sha256
9655 (base32
9656 "1nd26cwwdpnwj0g4w393rd59klpyr6wqrnyr6scmwb5d06bsm44n"))))
9657 (build-system emacs-build-system)
9658 (propagated-inputs
9659 `(("emacs-projectile" ,emacs-projectile)))
9660 (home-page "https://github.com/purcell/ibuffer-projectile")
9661 (synopsis "Group ibuffer's list by projectile root")
9662 (description "Adds functionality to Emacs @code{ibuffer} for
9663 grouping buffers by their projectile root directory.")
9664 (license license:gpl3+))))
9665
9666 (define-public emacs-helm-mode-manager
9667 (package
9668 (name "emacs-helm-mode-manager")
9669 (version "1.0.0")
9670 (source
9671 (origin
9672 (method url-fetch)
9673 (uri (string-append "https://github.com/istib/helm-mode-manager/"
9674 "archive/" version ".tar.gz"))
9675 (file-name (string-append name "-" version ".tar.gz"))
9676 (sha256
9677 (base32
9678 "0wllj321z16hgrx0ddwzk5wz4mnnx5am7w5nclqclfc5dfdn92wm"))))
9679 (build-system emacs-build-system)
9680 (propagated-inputs
9681 `(("emacs-helm" ,emacs-helm)))
9682 (home-page "https://github.com/istib/helm-mode-manager/")
9683 (synopsis "Switch and toggle Emacs major and minor modes using Helm")
9684 (description "This package provides a Helm interface for toggling Emacs
9685 major or minor mode.
9686
9687 @itemize
9688 @item @code{helm-switch-major-mode} list of all major modes
9689 @item @code{helm-enable-minor-mode} list of all inactive minor modes
9690 @item @code{helm-disable-minor-mode} list of all ACTIVE minor modes
9691 @end itemize\n
9692
9693 Hitting @code{RET} enables the mode, @code{C-z} shows the mode
9694 documentation.")
9695 (license license:gpl3+)))
9696
9697 (define-public emacs-hy-mode
9698 (package
9699 (name "emacs-hy-mode")
9700 (version "1.0.2")
9701 (source
9702 (origin
9703 (method url-fetch)
9704 (uri (string-append "https://github.com/hylang/hy-mode/archive/"
9705 "v" version ".tar.gz"))
9706 (file-name (string-append name "-" version ".tar.gz"))
9707 (sha256
9708 (base32
9709 "0sbga36zkyhzrzcczsyjzll7b9qsa215pnlw51m4li2irm23jh17"))))
9710 (build-system emacs-build-system)
9711 (propagated-inputs
9712 `(("emacs-dash" ,emacs-dash)
9713 ("emacs-s" ,emacs-s)))
9714 (home-page "https://github.com/hylang/hy-mode")
9715 (synopsis "Major mode for Hylang")
9716 (description "This package provides a major mode for Hylang.")
9717 (license license:gpl3+)))
9718
9719 (define-public emacs-web-beautify
9720 (package
9721 (name "emacs-web-beautify")
9722 (version "0.3.2")
9723 (source
9724 (origin
9725 (method url-fetch)
9726 (uri (string-append "https://github.com/yasuyk/web-beautify/archive/"
9727 version ".tar.gz"))
9728 (file-name (string-append name "-" version ".tar.gz"))
9729 (sha256
9730 (base32
9731 "1j57hwid74id4swkx2g0iljfawx0k9c7qjrwqc0mv657x9p78hcs"))))
9732 (build-system emacs-build-system)
9733 (home-page "https://github.com/yasuyk/web-beautify")
9734 (synopsis "Format HTML, CSS and JavaScript, JSON")
9735 (description "This package provides an Emacs functions to format HTML,
9736 CSS, JavaScript, JSON.")
9737 (license license:gpl3+)))
9738
9739 (define-public emacs-helm-shell-history
9740 (let ((commit "110d3c35c52fe4b89b29e79ea4c8626bce7266a1"))
9741 (package
9742 (name "emacs-helm-shell-history")
9743 (version (git-version "0.1" "1" commit))
9744 (source
9745 (origin
9746 (method git-fetch)
9747 (uri (git-reference
9748 (url "https://github.com/yuutayamada/helm-shell-history.git")
9749 (commit commit)))
9750 (file-name (git-file-name name version))
9751 (sha256
9752 (base32
9753 "18fkjcz69g4dyaxhf9j8svr5x6dhsdnglddwisis8hdn504scpfj"))))
9754 (build-system emacs-build-system)
9755 (arguments
9756 '(#:phases
9757 (modify-phases %standard-phases
9758 (add-before 'check 'patch-helm-shell-history-file
9759 (lambda _
9760 (let ((file "helm-shell-history.el"))
9761 (chmod file #o644)
9762 (emacs-substitute-sexps file
9763 ("(defvar helm-shell-history-file"
9764 `(expand-file-name "~/.bash_history"))))
9765 #t)))))
9766 (propagated-inputs
9767 `(("emacs-helm" ,emacs-helm)))
9768 (home-page "https://github.com/yuutayamada/helm-shell-history")
9769 (synopsis "Find shell history with Emacs Helm")
9770 (description "This package provides an Emacs Helm interface to search
9771 throw a shell history.")
9772 (license license:gpl3+))))
9773
9774 (define-public emacs-discover-my-major
9775 (package
9776 (name "emacs-discover-my-major")
9777 (version "1.0")
9778 (source
9779 (origin
9780 (method url-fetch)
9781 (uri
9782 (string-append "https://github.com/steckerhalter/discover-my-major"
9783 "/archive/" version ".tar.gz"))
9784 (file-name (string-append name "-" version ".tar.gz"))
9785 (sha256
9786 (base32
9787 "0nah41f92rrl2l405kpqr6iaks11jyclgl4z7ilfymbr4ifmsiyl"))))
9788 (build-system emacs-build-system)
9789 (propagated-inputs
9790 `(("emacs-makey" ,emacs-makey)))
9791 (home-page "https://github.com/steckerhalter/discover-my-major")
9792 (synopsis "Discover key bindings for the current Emacs major mode")
9793 (description "This package provides allows to discover key bindings and
9794 their meaning for the current Emacs major-mode.")
9795 (license license:gpl3+)))
9796
9797 (define-public emacs-org-ref
9798 (let ((commit "8c9b5d7efb9f0c1ad5186b8203bdd017f4249129")
9799 (revision "1"))
9800 (package
9801 (name "emacs-org-ref")
9802 (version (string-append "1.1.1" "-" revision "."
9803 (string-take commit 7)))
9804 (source
9805 (origin
9806 (method git-fetch)
9807 (uri (git-reference
9808 (url "https://github.com/jkitchin/org-ref.git")
9809 (commit commit)))
9810 (file-name (string-append name "-" version "-checkout"))
9811 (sha256
9812 (base32
9813 "1rxz0bjdsayk0slv23i07d9xhj2m7s4hsc81wc2d1cs52dkr5zmz"))))
9814 (build-system emacs-build-system)
9815 (propagated-inputs
9816 `(("emacs-dash" ,emacs-dash)
9817 ("emacs-helm" ,emacs-helm)
9818 ("emacs-helm-bibtex" ,emacs-helm-bibtex)
9819 ("emacs-ivy" ,emacs-ivy)
9820 ("emacs-hydra" ,emacs-hydra)
9821 ("emacs-key-chord" ,emacs-key-chord)
9822 ("emacs-s" ,emacs-s)
9823 ("emacs-f" ,emacs-f)
9824 ("emacs-pdf-tools" ,emacs-pdf-tools)))
9825 (home-page "https://github.com/jkitchin/org-ref")
9826 (synopsis "Citations, cross-references and bibliographies in org-mode")
9827 (description
9828 "Lisp code to setup bibliography, cite, ref and label org-mode links.
9829 Also sets up reftex and helm for org-mode citations. The links are
9830 clickable and do things that are useful.
9831
9832 The default setup uses helm-bibtex.
9833
9834 You should really read org-ref.org in this package for details.")
9835 (license license:gpl3+))))
9836
9837 (define-public emacs-org-reveal
9838 (package
9839 (name "emacs-org-reveal")
9840 ;; There are no proper tag, so we use the latest commit of the stable
9841 ;; branch, as does MELPA.
9842 (version "20161027.926")
9843 (source (origin
9844 (method git-fetch)
9845 (uri (git-reference
9846 (url "https://github.com/yjwen/org-reveal.git")
9847 (commit "001567cc12d50ba07612edd1718b86a12e8c2547")))
9848 (file-name (string-append name "-" version "-checkout"))
9849 (sha256
9850 (base32
9851 "18rma8smjrskbjyna076zhvx79zs5r5vinb537h8mw13pfxd6cm8"))))
9852 (build-system emacs-build-system)
9853 (home-page "https://github.com/yjwen/org-reveal")
9854 (synopsis "Org and Reveal.js powered HTML presentation tool")
9855 (description "Org-Reveal is a command@{org-mode} extension that allows to
9856 create beautiful presentations (slides) with 3D effects from simple but
9857 powerful Org contents.")
9858 (license license:gpl3+)))
9859
9860 (define-public emacs-add-hooks
9861 (package
9862 (name "emacs-add-hooks")
9863 (version "3.1.1")
9864 (source (origin
9865 (method url-fetch)
9866 (uri (string-append
9867 "https://github.com/nickmccurdy/add-hooks/archive/"
9868 version ".tar.gz"))
9869 (file-name (string-append name "-" version ".tar.gz"))
9870 (sha256
9871 (base32
9872 "03a28gb3298g7pc2qji9hi44p4d99ljp5mpi9cmg42ldv8fl6549"))))
9873 (build-system emacs-build-system)
9874 (home-page "https://github.com/nickmccurdy/add-hooks/")
9875 (synopsis "Emacs function for setting multiple hooks")
9876 (description "This package provides a @code{add-hooks} function tidies up
9877 duplicate hook and function names further into a single declarative call.")
9878 (license license:gpl3+)))
9879
9880 (define-public emacs-fancy-narrow
9881 (package
9882 (name "emacs-fancy-narrow")
9883 (version "0.9.5")
9884 (source
9885 (origin
9886 (method url-fetch)
9887 (uri (string-append "https://github.com/Malabarba/fancy-narrow/archive/"
9888 version ".tar.gz"))
9889 (file-name (string-append name "-" version ".tar.gz"))
9890 (sha256
9891 (base32
9892 "0rf2rnzg82pdqch041yyx3f9ddixffkk9s2ydzg8hwy66sg3385n"))))
9893 (build-system emacs-build-system)
9894 (home-page "https://github.com/Malabarba/fancy-narrow/releases")
9895 (synopsis "Imitate @code{narrow-to-region} with more eye candy")
9896 (description
9897 "Unlike @code{narrow-to-region}, which completely hides text outside
9898 the narrowed region, this package simply de-emphasizes the text, makes it
9899 read-only, and makes it unreachable. This leads to a much more natural
9900 feeling where the region stays static (instead of being brutally moved to a
9901 blank slate) and is clearly highlighted with respect to the rest of the
9902 buffer.")
9903 (license license:gpl2+)))
9904
9905 (define-public emacs-know-your-http-well
9906 (package
9907 (name "emacs-know-your-http-well")
9908 (version "0.5.0")
9909 (source
9910 (origin
9911 (method url-fetch)
9912 (uri (string-append
9913 "https://github.com/for-GET/know-your-http-well/archive/"
9914 "v" version ".tar.gz"))
9915 (file-name (string-append name "-" version ".tar.gz"))
9916 (sha256
9917 (base32
9918 "1y3kwz88awcgwaivlswq0q4g2i02762r23lpwg61bfqy5lrjjqnj"))))
9919 (arguments
9920 `(#:phases
9921 (modify-phases %standard-phases
9922 (add-after 'unpack 'install-json-files
9923 (lambda* (#:key outputs #:allow-other-keys)
9924 (for-each (lambda (directory)
9925 (copy-recursively directory
9926 (string-append
9927 (assoc-ref outputs "out")
9928 directory)))
9929 '("js" "json"))))
9930 (add-after 'unpack 'chdir-elisp
9931 ;; Elisp directory is not in root of the source.
9932 (lambda _
9933 (chdir "emacs"))))))
9934 (build-system emacs-build-system)
9935 (home-page "https://github.com/for-GET/know-your-http-well")
9936 (synopsis "Meaning of HTTP headers codes")
9937 (description "Meaning of HTTP headers codes.")
9938 (license license:gpl3+)))
9939
9940 (define-public emacs-navi-mode
9941 (let ((commit "c1d38e8237f4e14af020a0b7d4f118ea198ab674"))
9942 (package
9943 (name "emacs-navi-mode")
9944 (version (git-version "2.0" "1" commit))
9945 (source
9946 (origin
9947 (method git-fetch)
9948 (uri (git-reference
9949 (url "https://github.com/alphapapa/navi.git")
9950 (commit commit)))
9951 (file-name (git-file-name name version))
9952 (sha256
9953 (base32
9954 "0jj5spk14hgb7zb1cd2n8whcw4k1kd5zb6llwj96v178yaws7l8k"))))
9955 (build-system emacs-build-system)
9956 (propagated-inputs
9957 `(("emacs-outshine" ,emacs-outshine)
9958 ("emacs-outorg" ,emacs-outorg)))
9959 (home-page "https://github.com/alphapapa/navi")
9960 (synopsis "Emacs major-mode for easy buffer-navigation")
9961 (description
9962 "This package provides an Emacs major-mode for easy buffer-navigation")
9963 (license license:gpl3+))))
9964
9965 (define-public emacs-download-region
9966 (let ((commit "eb9e557529a73b4cfc8281c70dd0d95db333fffa")
9967 (revision "1"))
9968 (package
9969 (name "emacs-download-region")
9970 (version (string-append "0.0.1" "-" revision "."
9971 (string-take commit 7)))
9972 (source
9973 (origin
9974 (method git-fetch)
9975 (uri (git-reference
9976 (url "https://github.com/zk-phi/download-region.git")
9977 (commit commit)))
9978 (file-name (string-append name "-" version "-checkout"))
9979 (sha256
9980 (base32
9981 "0v52djg39b6k2snizd9x0qc009ws5y0ywqsfwhqgcbs5ymzh7dsc"))))
9982 (build-system emacs-build-system)
9983 (home-page "https://github.com/zk-phi/download-region")
9984 (synopsis "In buffer download manager for Emacs")
9985 (description "@code{download-region} provides in buffer
9986 downloading manager for Emacs.")
9987 (license license:gpl3+))))
9988
9989 (define-public emacs-helpful
9990 (package
9991 (name "emacs-helpful")
9992 (version "0.13")
9993 (source (origin
9994 (method url-fetch)
9995 (uri (string-append
9996 "https://github.com/Wilfred/helpful/archive/"
9997 version ".tar.gz"))
9998 (file-name (string-append name "-" version ".tar.gz"))
9999 (sha256
10000 (base32
10001 "11kj04y1fa3vnw2991cyqf6adz6bb3hlrdkvypjnmpb0s64q64b6"))))
10002 (build-system emacs-build-system)
10003 (propagated-inputs
10004 `(("emacs-elisp-refs" ,emacs-elisp-refs)))
10005 (home-page "https://github.com/Wilfred/helpful")
10006 (synopsis "More contextual information in Emacs help")
10007 (description "@code{helpful} is an alternative to the built-in Emacs help
10008 that provides much more contextual information.
10009
10010 @itemize
10011 @item Show the source code for interactively defined functions (unlike the
10012 built-in Help).
10013 @item Fall back to the raw sexp if no source is available.
10014 @item Show where a function is being called.
10015 @item Docstrings will Highlight the summary (the first sentence), include
10016 cross-references, hide superfluous puncuation.
10017 @item Show you the properties that have been applied to the current
10018 symbol. This provides visibility of features like edebug or byte-code
10019 optimisation.
10020 @item Provide a separate @code{helpful-command} function to view interactive
10021 functions.
10022 @item Display any keybindings that apply to interactive functions.
10023 @item Trace, disassemble functions from inside Helpful. This is discoverable
10024 and doesn't require memorisation of commands.
10025 @end itemize\n")
10026 (license license:gpl3+)))
10027
10028 (define-public emacs-logview
10029 (package
10030 (name "emacs-logview")
10031 (version "0.9")
10032 (source (origin
10033 (method url-fetch)
10034 (uri (string-append
10035 "https://github.com/doublep/logview/archive/"
10036 version ".tar.gz"))
10037 (file-name (string-append name "-" version ".tar.gz"))
10038 (sha256
10039 (base32
10040 "1vd11ppm46ldqsiwhqgw91p34gbjh1y82r9mxcn9r2gj65nvhxcp"))))
10041 (propagated-inputs
10042 `(("emacs-datetime" ,emacs-datetime)))
10043 (build-system emacs-build-system)
10044 (home-page "https://github.com/doublep/logview/")
10045 (synopsis "Emacs mode for viewing log files")
10046 (description "@code{logview} provides an Emacs mode to view log files.")
10047 (license license:gpl3+)))
10048
10049 (define-public emacs-suggest
10050 (package
10051 (name "emacs-suggest")
10052 (version "0.4")
10053 (source
10054 (origin
10055 (method url-fetch)
10056 (uri (string-append "https://github.com/Wilfred/suggest.el/archive/"
10057 version ".tar.gz"))
10058 (file-name (string-append name "-" version ".tar.gz"))
10059 (sha256
10060 (base32
10061 "1760fm3j19w8xxcawq6s859h86q1rdg69pg9yz48n76kwfk3vlgp"))))
10062 (build-system emacs-build-system)
10063 (propagated-inputs
10064 `(("emacs-loop" ,emacs-loop)
10065 ("emacs-dash" ,emacs-dash)
10066 ("emacs-s" ,emacs-s)
10067 ("emacs-f" ,emacs-f)))
10068 (home-page "https://github.com/Wilfred/suggest.el")
10069 (synopsis "Suggest Elisp functions that give the output requested")
10070 (description "Suggest.el will find functions that give the output
10071 requested. It's a great way of exploring list, string and arithmetic
10072 functions.")
10073 (license license:gpl3+)))
10074
10075 (define-public emacs-benchmark-init
10076 (package
10077 (name "emacs-benchmark-init")
10078 (version "1.0")
10079 (source (origin
10080 (method url-fetch)
10081 (uri (string-append
10082 "https://github.com/dholm/benchmark-init-el/archive/"
10083 version ".tar.gz"))
10084 (file-name (string-append name "-" version ".tar.gz"))
10085 (sha256
10086 (base32
10087 "0szyqr4nncwz4vd5gww1vz31kf9r2lx25p4d0d09pm35974x53kz"))))
10088 (build-system emacs-build-system)
10089 (home-page "https://github.com/dholm/benchmark-init-el")
10090 (synopsis "Benchmark Emacs @code{require} and @code{load} calls")
10091 (description "@code{benchmark-init} provides a way to keep track of where
10092 time is being spent during Emacs startup in order to optimize startup time.")
10093 (license license:gpl3+)))
10094
10095 (define-public emacs-emms-player-simple-mpv
10096 ;; A new mpv backend is included in Emms from 5.0.
10097 (deprecated-package "emacs-emms-player-simple-mpv" emms))
10098
10099 (define-public emacs-magit-org-todos-el
10100 (let ((commit "df206287737b9671f2e36ae7b1474ebbe9940d2a"))
10101 (package
10102 (name "emacs-magit-org-todos-el")
10103 (version (git-version "0.1.1" "1" commit))
10104 (source
10105 (origin
10106 (method git-fetch)
10107 (uri (git-reference
10108 (url "https://github.com/danielma/magit-org-todos.el.git")
10109 (commit commit)))
10110 (file-name (git-file-name name version))
10111 (sha256
10112 (base32
10113 "0kdp7k7jnnrkhsg0xh1c3h7iz0vgi120gf5xwl1hxy61avivnxrn"))))
10114 (propagated-inputs
10115 `(("magit" ,magit)))
10116 (build-system emacs-build-system)
10117 (home-page "https://github.com/danielma/magit-org-todos.el")
10118 (synopsis "Get todo.org into Emacs Magit status")
10119 (description "This package allows you to get @file{todo.org} into your
10120 magit status.
10121
10122 If you have a @file{todo.org} file with @code{TODO} items in the root of your
10123 repository, @code{magit-org-todos} will create a section in your Magit status
10124 buffer with each of your todos.")
10125 (license license:gpl3+))))
10126
10127 (define-public emacs-f3
10128 (package
10129 (name "emacs-f3")
10130 (version "0.1")
10131 (source
10132 (origin
10133 (method url-fetch)
10134 (uri (string-append "https://github.com/cosmicexplorer/f3/archive/"
10135 version ".tar.gz"))
10136 (file-name (string-append name "-" version ".tar.gz"))
10137 (sha256
10138 (base32
10139 "06b8i1jvklm5k3k90n65f197l1miq1xlxqkqpbppw4h3rhl4y98h"))))
10140 (build-system emacs-build-system)
10141 (propagated-inputs
10142 `(("emacs-helm" ,emacs-helm)))
10143 (home-page "https://github.com/cosmicexplorer/f3")
10144 (synopsis "Fantastic File Finder for Emacs")
10145 (description
10146 "The Fantastic File Finder for Emacs. Find files fast, using helm.")
10147 (license license:gpl3+)))
10148
10149 (define-public emacs-lice-el
10150 (let ((commit "4339929927c62bd636f89bb39ea999d18d269250"))
10151 (package
10152 (name "emacs-lice-el")
10153 (version (git-version "0.2" "1" commit))
10154 (source (origin
10155 (method git-fetch)
10156 (uri (git-reference
10157 (url "https://github.com/buzztaiki/lice-el.git")
10158 (commit commit)))
10159 (file-name (git-file-name name version))
10160 (sha256
10161 (base32
10162 "0879z761b7gajkhq176ps745xpdrivch349crransv8fnsc759yb"))))
10163 (build-system emacs-build-system)
10164 (home-page "https://github.com/buzztaiki/lice-el")
10165 (synopsis "License and header template for Emacs")
10166 (description "@code{lice.el} provides following features:
10167
10168 @itemize
10169 @item License template management.
10170 @item File header insertion.
10171 @end itemize\n")
10172 (license license:gpl3+))))
10173
10174 (define-public emacs-academic-phrases
10175 (let ((commit "0823ed8c24b26c32f909b896a469833ec4d7b656"))
10176 (package
10177 (name "emacs-academic-phrases")
10178 (version (git-version "0.1" "1" commit))
10179 (source
10180 (origin
10181 (method git-fetch)
10182 (uri (git-reference
10183 (url "https://github.com/nashamri/academic-phrases.git")
10184 (commit commit)))
10185 (file-name (string-append name "-" version "-checkout"))
10186 (sha256
10187 (base32
10188 "0qfzsq8jh05w4zkr0cvq3i1hdn97bq344vcqjg46sib26x3wpz6r"))))
10189 (build-system emacs-build-system)
10190 (propagated-inputs
10191 `(("emacs-dash" ,emacs-dash)
10192 ("emacs-s" ,emacs-s)
10193 ("emacs-ht" ,emacs-ht)))
10194 (home-page "https://github.com/nashamri/academic-phrases")
10195 (synopsis "Bypass that mental block when writing your papers")
10196 (description
10197 "When writing your academic paper, you might get stuck trying to find
10198 the right phrase that captures your intention. This package tries to
10199 alleviate that problem by presenting you with a list of phrases organized by
10200 the topic or by the paper section that you are writing. This package has
10201 around 600 phrases so far.
10202
10203 Using this package is easy, just call @code{academic-phrases} to get a list of
10204 phrases organized by topic, or call @code{academic-phrases-by-section} to
10205 browse the phrases by the paper section and fill-in the blanks if required.")
10206 (license license:gpl3+))))
10207
10208 (define-public emacs-auto-yasnippet
10209 (let ((commit "d1ccfea87312c6dd8cf8501ab5b71b1d3d44d95b"))
10210 (package
10211 (name "emacs-auto-yasnippet")
10212 (version (git-version "0.3.0" "1" commit))
10213 (source (origin
10214 (method git-fetch)
10215 (uri (git-reference
10216 (url "https://github.com/abo-abo/auto-yasnippet.git")
10217 (commit commit)))
10218 (file-name (string-append name "-" version "-checkout"))
10219 (sha256
10220 (base32
10221 "1i8k2qiyzd5rq0zplk4xb5nfa5mp0ibxbzwqj6c7877waq7244xk"))))
10222 (build-system emacs-build-system)
10223 (arguments
10224 '(#:phases
10225 (modify-phases %standard-phases
10226 (add-before 'install 'check
10227 (lambda _
10228 (invoke "emacs" "--batch"
10229 "-l" "auto-yasnippet.el"
10230 "-l" "auto-yasnippet-test.el"
10231 "-f" "ert-run-tests-batch-and-exit"))))))
10232 (propagated-inputs
10233 `(("emacs-yasnippet" ,emacs-yasnippet)))
10234 (home-page "https://github.com/abo-abo/auto-yasnippet/")
10235 (synopsis "Quickly create disposable yasnippets")
10236 (description "This package provides a hybrid of keyboard macros and
10237 yasnippet. You create the snippet on the go, usually to be used just in the
10238 one place. It's fast, because you're not leaving the current buffer, and all
10239 you do is enter the code you'd enter anyway, just placing ~ where you'd like
10240 yasnippet fields and mirrors to be.")
10241 (license license:gpl3+))))
10242
10243 (define-public emacs-highlight-numbers
10244 (package
10245 (name "emacs-highlight-numbers")
10246 (version "0.2.3")
10247 (source
10248 (origin
10249 (method url-fetch)
10250 (uri (string-append
10251 "https://github.com/Fanael/highlight-numbers/archive/"
10252 version ".tar.gz"))
10253 (file-name (string-append name "-" version ".tar.gz"))
10254 (sha256
10255 (base32
10256 "030v5p11d4n0581ncv499l1fqrmfziy756q6378x2bv22ixghqqp"))))
10257 (build-system emacs-build-system)
10258 (propagated-inputs
10259 `(("emacs-parent-mode" ,emacs-parent-mode)))
10260 (home-page "https://github.com/Fanael/highlight-numbers")
10261 (synopsis "Highlight numbers in source code")
10262 (description "@code{highlight-numbers-mode} provides a minor mode for
10263 syntax highlighting of numeric literals in source code.
10264
10265 It s customizable: it's easy to add or redefine what exactly consitutes a
10266 \"number\" in given major mode. See @code{highlight-numbers-modelist}.")
10267 (license license:gpl3+)))
10268
10269 (define-public emacs-darkroom
10270 (package
10271 (name "emacs-darkroom")
10272 (version "0.1")
10273 (source (origin
10274 (method url-fetch)
10275 (uri (string-append "https://elpa.gnu.org/packages/darkroom-"
10276 version ".el"))
10277 (sha256
10278 (base32
10279 "0fif8fm1h7x7g16949shfnaik5f5488clsvkf8bi5izpqp3vi6ak"))))
10280 (build-system emacs-build-system)
10281 (home-page "https://elpa.gnu.org/packages/darkroom.html")
10282 (synopsis "Remove visual distractions and focus on writing")
10283 (description "@code{darkroom-mode} makes visual distractions disappear.
10284 The mode-line is temporarily elided, text is enlarged and margins are adjusted
10285 so that it's centered on the window.
10286
10287 @code{darkroom-tentative-mode} is similar, but it doesn't immediately turn-on
10288 @code{darkroom-mode}, unless the current buffer lives in the sole window of
10289 the Emacs frame (i.e. all other windows are deleted). Whenever the frame is
10290 split to display more windows and more buffers, the buffer exits
10291 @code{darkroom-mode}. Whenever they are deleted, the buffer re-enters
10292 @code{darkroom-mode}.")
10293 (license license:gpl3+)))
10294
10295 (define-public emacs-rsw-elisp
10296 (package
10297 (name "emacs-rsw-elisp")
10298 (version "1.0.5")
10299 (source (origin
10300 (method url-fetch)
10301 (uri (string-append "https://github.com/rswgnu/rsw-elisp"
10302 "/archive/" version ".tar.gz"))
10303 (file-name (string-append name "-" version ".tar.gz"))
10304 (sha256
10305 (base32
10306 "1jnn7xfwl3wxc87v44ccsf1wwp80par3xgcvfb1icd6zchjmlcps"))))
10307 (build-system emacs-build-system)
10308 (home-page "https://github.com/rswgnu/rsw-elisp")
10309 (synopsis "Improved expressions that interactively evaluate Emacs Lisp")
10310 (description "This package improves and replaces the GNU Emacs commands
10311 that interactively evaluate Emacs Lisp expressions. The new commands replace
10312 standard key bindings and are all prefixed with @code{rsw-elisp-}. They work
10313 the same way as the old commands when called non-interactively; only the
10314 interactive behavior should be different.")
10315 (license license:gpl3+)))
10316
10317 (define-public emacs-default-text-scale
10318 (let ((commit "968e985e219235f3e744d6d967e592acbaf6e0a8")
10319 (revision "1"))
10320 (package
10321 (name "emacs-default-text-scale")
10322 (version (string-append "0.1" "-" revision "."
10323 (string-take commit 7)))
10324 (source (origin
10325 (method git-fetch)
10326 (uri (git-reference
10327 (url "https://github.com/purcell/default-text-scale")
10328 (commit commit)))
10329 (file-name (string-append name "-" version "-checkout"))
10330 (sha256
10331 (base32
10332 "0zds01c3q5yny6ab1fxfkzzgn1kgl3q23lxxap905f4qd70v922h"))))
10333 (build-system emacs-build-system)
10334 (home-page "https://github.com/purcell/default-text-scale")
10335 (synopsis "Adjust the font size in all Emacs frames")
10336 (description "This package provides commands for increasing or
10337 decreasing the default font size in all GUI Emacs frames.")
10338 (license license:gpl3+))))
10339
10340 (define-public emacs-visual-regexp
10341 (package
10342 (name "emacs-visual-regexp")
10343 (version "1.1.1")
10344 (source
10345 (origin
10346 (method url-fetch)
10347 (uri (string-append "https://github.com/benma/visual-regexp.el/archive/"
10348 "v" version ".tar.gz"))
10349 (file-name (string-append name "-" version ".tar.gz"))
10350 (sha256
10351 (base32
10352 "1czmhvcivlcdyz7rfm0vd4a3xsgmy4qbvbl6yjxc217wrxqflr92"))))
10353 (build-system emacs-build-system)
10354 (home-page "https://github.com/benma/visual-regexp.el/")
10355 (synopsis "Regexp command with interactive visual feedback")
10356 (description "This package provides an Emacs regexp command with
10357 interactive visual feedback.")
10358 (license license:gpl3+)))
10359
10360 (define-public emacs-faceup
10361 (let ((commit "6c92dad56a133e14e7b27831e1bcf9b3a71ff154")
10362 (revision "1"))
10363 (package
10364 (name "emacs-faceup")
10365 (version (string-append "0.0.1" "-" revision "."
10366 (string-take commit 7)))
10367 (source
10368 (origin
10369 (method git-fetch)
10370 (uri (git-reference
10371 (url "https://github.com/Lindydancer/faceup.git")
10372 (commit commit)))
10373 (file-name (string-append name "-" version "-checkout"))
10374 (sha256
10375 (base32
10376 "1yzmy7flrhrh0i10bdszx8idx6r8h6czm4vm4q0z6fp5fw94zwrx"))))
10377 (build-system emacs-build-system)
10378 (home-page "https://github.com/Lindydancer/faceup")
10379 (synopsis "Markup language for faces and font-lock regression testing")
10380 (description "Emacs is capable of highlighting buffers based on
10381 language-specific @code{font-lock} rules. This package makes it possible to
10382 perform regression test for packages that provide font-lock rules.")
10383 (license license:gpl3+))))
10384
10385 (define-public emacs-racket-mode
10386 (let ((commit "92c33487f6c707880ac3f6169e7ea65ddffd1463")
10387 (revision "1"))
10388 (package
10389 (name "emacs-racket-mode")
10390 (version (string-append "0.0.2" "-" revision "."
10391 (string-take commit 7)))
10392 (source
10393 (origin
10394 (method git-fetch)
10395 (uri (git-reference
10396 (url "https://github.com/greghendershott/racket-mode")
10397 (commit commit)))
10398 (file-name (string-append name "-" version "-checkout"))
10399 (sha256
10400 (base32
10401 "19q6ym10gj2xdzzcgh3wdbq1xv8cv7nlrhv2b0bjvvdjzhiki472"))))
10402 (build-system emacs-build-system)
10403 (arguments
10404 `(#:include '("\\.el$" "\\.rkt$")))
10405 (propagated-inputs
10406 `(("emacs-faceup" ,emacs-faceup)
10407 ("emacs-s" ,emacs-s)))
10408 (home-page "https://github.com/greghendershott/racket-mode")
10409 (synopsis "Major mode for Racket language")
10410 (description "@code{racket-mode} provides:
10411
10412 @itemize
10413 @item Focus on Racket (not various Schemes).
10414 @item Follow DrRacket concepts where applicable.
10415 @item Thorough font-lock and indent.
10416 @end itemize\n")
10417 (license license:gpl3+))))
10418
10419 (define-public emacs-grep-context
10420 (let ((commit "a17c57e66687a54e195e08afe776bdd60cb6c0a7"))
10421 (package
10422 (name "emacs-grep-context")
10423 (version (git-version "0.1" "1" commit))
10424 (source
10425 (origin
10426 (method git-fetch)
10427 (uri (git-reference
10428 (url "https://github.com/mkcms/grep-context.git")
10429 (commit commit)))
10430 (file-name (string-append name "-" version "-checkout"))
10431 (sha256
10432 (base32
10433 "1nqfa6kjzjshww4hnwg1c0vcr90bdjihy3kmixq3c3jkvxg99b62"))))
10434 (build-system emacs-build-system)
10435 (propagated-inputs
10436 `(("emacs-dash" ,emacs-dash)))
10437 (home-page "https://github.com/nashamri/academic-phrases")
10438 (synopsis "Increase context in compilation and grep buffers")
10439 (description
10440 "This package provides an Emacs package for more context in
10441 compilation/grep buffers. Works with @code{wgrep}, @code{ack}, @code{ag},
10442 @code{ivy}.")
10443 (license license:gpl3+))))
10444
10445 (define-public emacs-helm-firefox
10446 (let ((commit "0ad34b7b5abc485a86cae6920c14de861cbeb085")
10447 (revision "1"))
10448 (package
10449 (name "emacs-helm-firefox")
10450 (version (string-append "0.0.1" "-" revision "."
10451 (string-take commit 7)))
10452 (source
10453 (origin
10454 (method git-fetch)
10455 (uri (git-reference
10456 (url "https://github.com/emacs-helm/helm-firefox.git")
10457 (commit commit)))
10458 (file-name (string-append name "-" version "-checkout"))
10459 (sha256
10460 (base32
10461 "08mjsi2f9s29fkk35cj1rrparjnkm836qmbfdwdz7y51f9varjbs"))))
10462 (propagated-inputs
10463 `(("emacs-helm" ,emacs-helm)))
10464 (build-system emacs-build-system)
10465 (home-page "https://github.com/emacs-helm/helm-firefox")
10466 (synopsis "Display firefox bookmarks with Emacs Helm interface")
10467 (description "Display firefox bookmarks with Emacs Helm interface")
10468 (license license:gpl3+))))
10469
10470 (define-public emacs-interactive-align
10471 (package
10472 (name "emacs-interactive-align")
10473 (version "0.1.0")
10474 (source
10475 (origin
10476 (method url-fetch)
10477 (uri (string-append "https://github.com/mkcms/interactive-align/"
10478 "archive/" "v" version ".tar.gz"))
10479 (file-name (string-append name "-" version ".tar.gz"))
10480 (sha256
10481 (base32
10482 "0sibpgb4lp6yy3pziak8f3hz4b28yj0dqy2nzh51z3d0b63h528m"))))
10483 (build-system emacs-build-system)
10484 (home-page "https://github.com/mkcms/interactive-align/")
10485 (synopsis "Interactive align-regexp command in Emacs")
10486 (description "Interactive align-regexp command in Emacs")
10487 (license license:gpl3+)))
10488
10489 (define-public emacs-shift-number
10490 (package
10491 (name "emacs-shift-number")
10492 (version "0.1")
10493 (source
10494 (origin
10495 (method url-fetch)
10496 (uri (string-append "https://github.com/alezost/shift-number.el"
10497 "/archive/" "v" version ".tar.gz"))
10498 (file-name (string-append name "-" version ".tar.gz"))
10499 (sha256
10500 (base32
10501 "1g79m0hqn9jgpm565vvh8pdfzndc4vw7xisnh5qysj55qfg8cb1x"))))
10502 (build-system emacs-build-system)
10503 (home-page "https://github.com/alezost/shift-number.el")
10504 (synopsis "Increase or decrease the number at point")
10505 (description "@code{emacs-shift-number} provides commands
10506 @code{shift-number-up} to increase and @code{shift-number-down} to
10507 decrease the number at point.")
10508 (license license:gpl3+)))
10509
10510 (define-public emacs-highlight-defined
10511 (package
10512 (name "emacs-highlight-defined")
10513 (version "0.1.5")
10514 (source
10515 (origin
10516 (method url-fetch)
10517 (uri (string-append
10518 "https://github.com/Fanael/highlight-defined/archive/"
10519 version ".tar.gz"))
10520 (file-name (string-append name "-" version ".tar.gz"))
10521 (sha256
10522 (base32
10523 "1ryd66989b5byqdw8jmjrjf0c78iiz72wibld750skcnj5h5h506"))))
10524 (build-system emacs-build-system)
10525 (home-page "https://github.com/Fanael/highlight-defined")
10526 (synopsis "Syntax highlighting of known Elisp symbols")
10527 (description "Minor mode providing syntax highlighting of known Emacs Lisp
10528 symbols. Currently the code distinguishes Lisp functions, built-in functions,
10529 macros, faces and variables. To enable call @code{highlight-defined-mode}. ")
10530 (license license:gpl3+)))
10531
10532 (define-public emacs-parinfer-mode
10533 (package
10534 (name "emacs-parinfer-mode")
10535 (version "0.4.10")
10536 (source
10537 (origin
10538 (method url-fetch)
10539 (uri (string-append "https://github.com/DogLooksGood/parinfer-mode/archive/"
10540 "v" version ".tar.gz"))
10541 (file-name (string-append name "-" version ".tar.gz"))
10542 (sha256
10543 (base32
10544 "06ba9qi59sm9ih9m38fbr8kj4qkvrm58n0c0ngfjz60gnr9x9pcv"))))
10545 (propagated-inputs
10546 `(("emacs-dash" ,emacs-dash)
10547 ("emacs-rainbow-delimiters" ,emacs-rainbow-delimiters)
10548 ("emacs-company" ,emacs-company)))
10549 (build-system emacs-build-system)
10550 (home-page "https://github.com/DogLooksGood/parinfer-mode/")
10551 (synopsis "Lisp structure editing mode")
10552 (description "@code{parinfer-mode} is a proof-of-concept editor
10553 mode for Lisp programming languages. It will infer some changes to
10554 keep Parens and Indentation inline with one another.")
10555 (license license:gpl3+)))
10556
10557 (define-public emacs-helm-eww
10558 (let ((commit "9d36acc433bcf689598b1b4d7d47c9aeb84d6b44"))
10559 (package
10560 (name "emacs-helm-eww")
10561 (version (git-version "0.1" "3" commit))
10562 (source (origin
10563 (method git-fetch)
10564 (uri (git-reference
10565 (url "https://github.com/emacs-helm/helm-eww.git")
10566 (commit commit)))
10567 (file-name (string-append name "-" version "-checkout"))
10568 (sha256
10569 (base32
10570 "06gnf84gx6qbhcw1h5jhjnvcdxkdpv0npm53x3pgqybbll5rn5dy"))))
10571 (propagated-inputs
10572 `(("emacs-helm" ,emacs-helm)))
10573 (build-system emacs-build-system)
10574 (home-page "https://github.com/emacs-helm/helm-eww/")
10575 (synopsis "Helm interface to EWW")
10576 (description "This package provides a Helm interface for EWW buffers,
10577 bookmarks and history.")
10578 (license license:gpl3+))))
10579
10580 (define-public emacs-stumpwm-mode
10581 (let ((commit "8fbe071d2c6c040794060a354eb377218dc10b35")
10582 (revision "1"))
10583 (package
10584 (name "emacs-stumpwm-mode")
10585 (version (string-append "0.0.1-" revision "."
10586 (string-take commit 7)))
10587 (source (origin
10588 (method git-fetch)
10589 (uri (git-reference
10590 (url "https://github.com/stumpwm/stumpwm-contrib.git")
10591 (commit commit)))
10592 (file-name (string-append name "-" version "-checkout"))
10593 (sha256
10594 (base32
10595 "1dfwsvz1c8w6j4jp0kzaz78ml3f5dp0a5pvf090kwpbpg176r7iq"))))
10596 (build-system emacs-build-system)
10597 (arguments
10598 `(#:phases
10599 (modify-phases %standard-phases
10600 (add-after 'unpack 'chdir-elisp
10601 ;; Elisp directory is not in root of the source.
10602 (lambda _
10603 (chdir "util/swm-emacs"))))))
10604 (home-page "https://github.com/stumpwm/stumpwm-contrib")
10605 (synopsis "Emacs minor-mode for Stumpwm")
10606 (description "Emacs minor-mode for Stumpwm")
10607 (license license:gpl3+))))
10608
10609 (define-public emacs-irfc
10610 (package
10611 (name "emacs-irfc")
10612 (version "20130824.507")
10613 (source
10614 (origin
10615 (method url-fetch)
10616 (uri "https://www.emacswiki.org/emacs/download/irfc.el")
10617 (file-name (string-append "irfc-" version ".el"))
10618 (sha256
10619 (base32
10620 "197ybqwbj8qjh2p9pkf5mvqnrkpcgmv8c5s2gvl6msyrabk0mnca"))))
10621 (build-system emacs-build-system)
10622 (home-page "https://www.emacswiki.org/emacs/download/irfc.el")
10623 (synopsis "Interface for IETF RFC document")
10624 (description
10625 "This package provides an Emacs interface for IETF RFC document.")
10626 (license license:gpl3+)))
10627
10628 (define-public emacs-ido-vertical-mode
10629 (package
10630 (name "emacs-ido-vertical-mode")
10631 (version "0.1.6")
10632 (source
10633 (origin
10634 (method url-fetch)
10635 (uri (string-append
10636 "https://github.com/creichert/ido-vertical-mode.el/archive/"
10637 "v" version ".tar.gz"))
10638 (file-name (string-append name "-" version ".tar.gz"))
10639 (sha256
10640 (base32
10641 "0dprdxq8wvqd45dinwj92k0kixr07c8xvspa6i613mjcpxgwjg53"))))
10642 (build-system emacs-build-system)
10643 (home-page "https://github.com/creichert/ido-vertical-mode.el")
10644 (synopsis "Makes ido-mode display vertically")
10645 (description "Makes ido-mode display prospects vertically.")
10646 (license license:gpl3+)))
10647
10648 (define-public emacs-wordgen
10649 (package
10650 (name "emacs-wordgen")
10651 (version "0.1.4")
10652 (source
10653 (origin
10654 (method url-fetch)
10655 (uri (string-append "https://github.com/Fanael/wordgen.el/archive/"
10656 version ".tar.gz"))
10657 (file-name (string-append name "-" version ".tar.gz"))
10658 (sha256
10659 (base32
10660 "1h2iyixdm49h53pwj9ics9gb9h3g6wa4hainpnjg6mfarf49jkmg"))))
10661 (build-system emacs-build-system)
10662 (home-page "https://github.com/Fanael/wordgen.el")
10663 (synopsis "Random word generator")
10664 (description "This package provides functions to generate random words
10665 using user-provided rules.")
10666 (license license:gpl3+)))
10667
10668 (define-public emacs-on-screen
10669 (package
10670 (name "emacs-on-screen")
10671 (version "1.3.2")
10672 (source
10673 (origin
10674 (method url-fetch)
10675 (uri (string-append
10676 "http://elpa.gnu.org/packages/on-screen-" version ".el"))
10677 (file-name (string-append name "-" version ".el"))
10678 (sha256
10679 (base32
10680 "15d18mjgv1pnwl6kf3pr5w64q1322p1l1qlfvnckglwmzy5sl2qv"))))
10681 (build-system emacs-build-system)
10682 (home-page
10683 "https://github.com/michael-heerdegen/on-screen.el")
10684 (synopsis "Guide your eyes while scrolling")
10685 (description
10686 "Scrolling can be distracting because your eyes may lose
10687 orientation. This library implements a minor mode that highlights
10688 the previously visible buffer part after each scroll.")
10689 (license license:gpl3+)))
10690
10691 (define-public emacs-highlight-escape-sequences
10692 (let ((commit "08d846a7aa748209d65fecead2b6a766c3e5cb41")
10693 (revision "1"))
10694 (package
10695 (name "emacs-highlight-escape-sequences")
10696 (version (string-append "0.0.1" "-" revision "."
10697 (string-take commit 7)))
10698 (source
10699 (origin
10700 (method git-fetch)
10701 (uri (git-reference
10702 (url "https://github.com/dgutov/highlight-escape-sequences.git")
10703 (commit commit)))
10704 (file-name (string-append name "-" version "-checkout"))
10705 (sha256
10706 (base32
10707 "05mc3w1f8ykf80914a1yddw6j8cmh0h57llm07xh89s53821v2is"))))
10708 (build-system emacs-build-system)
10709 (home-page "https://github.com/dgutov/highlight-escape-sequences")
10710 (synopsis "Highlight escape sequences in Emacs")
10711 (description "@code{highlight-escape-sequences} provides an
10712 Emacs minor mode to escape sequences in code.")
10713 (license license:gpl3+))))
10714
10715 (define-public emacs-dashboard
10716 (package
10717 (name "emacs-dashboard")
10718 (version "1.2.4")
10719 (source
10720 (origin
10721 (method url-fetch)
10722 (uri (string-append
10723 "https://github.com/rakanalh/emacs-dashboard/archive/"
10724 version ".tar.gz"))
10725 (file-name (string-append name "-" version ".tar.gz"))
10726 (sha256
10727 (base32
10728 "1738lmbgq6gk24hcwic0qjyajr21l5xzhya4pv58dw1bhd6vxv9g"))))
10729 (build-system emacs-build-system)
10730 (propagated-inputs
10731 `(("emacs-page-break-lines" ,emacs-page-break-lines)))
10732 (arguments '(#:include '("\\.el$" "\\.txt$" "\\.png$")))
10733 (home-page "https://github.com/rakanalh/emacs-dashboard")
10734 (synopsis "Startup screen extracted from Spacemacs")
10735 (description "This package provides an extensible Emacs dashboard, with
10736 sections for bookmarks, projectil projects, org-agenda and more. ")
10737 (license license:gpl3+)))
10738
10739 (define-public emacs-slime-company
10740 (package
10741 (name "emacs-slime-company")
10742 (version "1.1")
10743 (source
10744 (origin
10745 (method url-fetch)
10746 (uri (string-append "https://github.com/anwyn/slime-company/archive/"
10747 "v" version ".tar.gz"))
10748 (sha256
10749 (base32
10750 "1myl79pxj501xfr5qc5a24qddsn2l5iaamg7rf7fpny7mr9v70ar"))
10751 (file-name (string-append name "-" version ".tar.gz"))))
10752 (build-system emacs-build-system)
10753 (propagated-inputs
10754 `(("emacs-slime" ,emacs-slime)
10755 ("emacs-company" ,emacs-company)))
10756 (home-page "https://company-mode.github.io")
10757 (synopsis "SLIME completion backend for @code{company-mode}")
10758 (description
10759 "This is a backend implementation for the completion package
10760 @code{company-mode} which supports the normal and the fuzzy completion
10761 modes of SLIME.")
10762 (license license:gpl3+)))
10763
10764 (define-public emacs-sml-mode
10765 (package
10766 (name "emacs-sml-mode")
10767 (version "6.8")
10768 (source
10769 (origin
10770 (method url-fetch)
10771 (uri (string-append "http://elpa.gnu.org/packages/sml-mode-"
10772 version ".el"))
10773 (sha256
10774 (base32
10775 "105fcrz5qp95f2n3fdm3awr6z58sbrjihjss6qnrg4lz2ggbc328"))))
10776 (build-system emacs-build-system)
10777 (home-page "http://elpa.gnu.org/packages/sml-mode.html")
10778 (synopsis "Major mode for editing (Standard) ML")
10779 (description "SML-MODE is a major Emacs mode for editing Standard ML.
10780 It provides syntax highlighting and automatic indentation and
10781 comes with sml-proc which allows interaction with an inferior SML
10782 interactive loop.")
10783 (license license:gpl3+)))
10784
10785 (define-public emacs-eros
10786 (let ((commit "a42e45c9b2397156c684330b0fc90ee0eba773f5")
10787 (revision "1"))
10788 (package
10789 (name "emacs-eros")
10790 (version (string-append "0.0.1" "-" revision "."
10791 (string-take commit 7)))
10792 (source
10793 (origin
10794 (method git-fetch)
10795 (uri (git-reference
10796 (url "https://github.com/xiongtx/eros.git")
10797 (commit commit)))
10798 (file-name (string-append name "-" version "-checkout"))
10799 (sha256
10800 (base32
10801 "0whlsq90v13fz69k3wjrwcwb9gkpfxqjd75mg3nrp85j9nwhb5i4"))))
10802 (build-system emacs-build-system)
10803 (home-page "https://github.com/xiongtx/eros")
10804 (synopsis "Evaluation result overlays")
10805 (description "@code{eros} provides evaluation result overlays.")
10806 (license license:gpl3+))))
10807
10808 (define-public emacs-stickyfunc-enhance
10809 (let ((commit "13bdba51fcd83ccbc3267959d23afc94d458dcb0")
10810 (revision "1"))
10811 (package
10812 (name "emacs-stickyfunc-enhance")
10813 (version "0.1")
10814 (source
10815 (origin
10816 (method git-fetch)
10817 (uri (git-reference
10818 (url "https://github.com/tuhdo/semantic-stickyfunc-enhance.git")
10819 (commit commit)))
10820 (file-name (string-append name "-" version "-checkout"))
10821 (sha256
10822 (base32
10823 "16dxjsr5nj20blww4xpd4jzgjprzzh1nwvb810ggdmp9paf4iy0g"))))
10824 (build-system emacs-build-system)
10825 (home-page "https://github.com/tuhdo/semantic-stickyfunc-enhance")
10826 (synopsis "Enhancement to stock @code{semantic-stickyfunc-mode}")
10827 (description
10828 "@code{semantic-stickyfunc-mode} shows the function point is currently
10829 in at the first line of the current buffer. This is useful when you have a
10830 very long function that spreads more than a screen, and you don't have to
10831 scroll up to read the function name and then scroll down to original position.")
10832 (license license:gpl3+))))
10833
10834 (define-public emacs-git-auto-commit-mode
10835 (package
10836 (name "emacs-git-auto-commit-mode")
10837 (version "4.4.0")
10838 (source
10839 (origin
10840 (method url-fetch)
10841 (uri (string-append
10842 "https://github.com/ryuslash/git-auto-commit-mode/archive/"
10843 version ".tar.gz"))
10844 (file-name (string-append name "-" version ".tar.gz"))
10845 (sha256
10846 (base32
10847 "04avxmalsl3b7zi2vipfw9rb4wrwysnipsbch96skviql9axk870"))))
10848 (build-system emacs-build-system)
10849 (home-page "https://github.com/ryuslash/git-auto-commit-mode")
10850 (synopsis "Emacs Minor mode to automatically commit and push")
10851 (description "@code{git-auto-commit-mode} is an Emacs minor mode that
10852 tries to commit changes to a file after every save.
10853
10854 When @code{gac-automatically-push-p} is non-nil, it also tries to push to
10855 the current upstream.")
10856 (license license:gpl3+)))
10857
10858 (define-public emacs-company-restclient
10859 (package
10860 (name "emacs-company-restclient")
10861 (version "0.1.0")
10862 (source
10863 (origin
10864 (method url-fetch)
10865 (uri (string-append
10866 "https://github.com/iquiw/company-restclient/archive/"
10867 "v" version ".tar.gz"))
10868 (file-name (string-append name "-" version ".tar.gz"))
10869 (sha256
10870 (base32
10871 "1kr3f0wgqlk7r171bvb2kinv7fanwj2md01wdpx04qkgwcr1as00"))))
10872 (build-system emacs-build-system)
10873 (propagated-inputs
10874 `(("emacs-company" ,emacs-company)
10875 ("emacs-know-your-http-well" ,emacs-know-your-http-well)
10876 ("emacs-restclient" ,emacs-restclient)))
10877 (home-page "https://github.com/iquiw/company-restclient")
10878 (synopsis "Company-mode completion back-end for restclient-mode")
10879 (description "@code{company-mode} back-end for
10880 @code{restclient-mode}.
10881
10882 It provides auto-completion for HTTP methods and headers in
10883 @code{restclient-mode}. Completion source is given by
10884 @code{know-your-http-well}.")
10885 (license license:gpl3+)))
10886
10887 (define-public emacs-noflet
10888 (let ((version "20170629")
10889 (revision "1")
10890 (commit "7ae84dc3257637af7334101456dafe1759c6b68a"))
10891 (package
10892 (name "emacs-noflet")
10893 (version (git-version version revision commit))
10894 (source
10895 (origin
10896 (method git-fetch)
10897 (uri (git-reference
10898 (url "https://github.com/nicferrier/emacs-noflet")
10899 (commit commit)))
10900 (file-name (string-append name "-" version "-checkout"))
10901 (sha256
10902 (base32
10903 "0g70gnmfi8n24jzfci9nrj0n9bn1qig7b8f9f325rin8h7x32ypf"))))
10904 (build-system emacs-build-system)
10905 (arguments
10906 `(#:phases
10907 (modify-phases %standard-phases
10908 (add-after 'unpack 'require-dash
10909 ;; noflet.el uses -map from dash, but (require 'dash) is
10910 ;; missing. So, add it.
10911 (lambda _
10912 (substitute* "noflet.el"
10913 ((";;; Code:") ";;; Code:\n(require 'dash)"))
10914 #t)))))
10915 (propagated-inputs
10916 `(("emacs-dash" ,emacs-dash)))
10917 (home-page "https://github.com/nicferrier/emacs-noflet")
10918 (synopsis "Locally override functions")
10919 (description "@code{emacs-noflet} let's you locally override functions,
10920 in the manner of @command{flet}, but with access to the original function
10921 through the symbol: @command{this-fn}.")
10922 (license license:gpl3+))))
10923
10924 (define-public emacs-dumb-jump
10925 (package
10926 (name "emacs-dumb-jump")
10927 (version "0.5.2")
10928 (source
10929 (origin
10930 (method url-fetch)
10931 (uri (string-append
10932 "https://github.com/jacktasia/dumb-jump/archive/v"
10933 version ".tar.gz"))
10934 (file-name (string-append name "-" version ".tar.gz"))
10935 (sha256
10936 (base32
10937 "07n0xjgpxjpf3vp9gxchkjpydyj0zm166930as0kwiwkhjlsirsf"))))
10938 (build-system emacs-build-system)
10939 (arguments
10940 `(#:tests? #f ; FIXME: Tests freeze when run.
10941 #:test-command '("ert-runner")
10942 #:phases
10943 (modify-phases %standard-phases
10944 (add-after 'unpack 'set-shell
10945 (lambda _
10946 ;; Setting the SHELL environment variable is required for the
10947 ;; tests to find sh.
10948 (setenv "SHELL" (which "sh"))
10949 #t)))))
10950 (native-inputs
10951 `(("emacs-el-mock" ,emacs-el-mock)
10952 ("emacs-noflet" ,emacs-noflet)
10953 ("emacs-undercover" ,emacs-undercover)
10954 ("ert-runner" ,ert-runner)))
10955 (propagated-inputs
10956 `(("emacs-f" ,emacs-f)
10957 ("emacs-popup" ,emacs-popup)))
10958 (home-page "https://github.com/jacktasia/dumb-jump")
10959 (synopsis "Jump to definition for multiple languages without configuration")
10960 (description "Dumb Jump is an Emacs \"jump to definition\" package with
10961 support for multiple programming languages that favors \"just working\" over
10962 speed or accuracy. This means minimal --- and ideally zero --- configuration
10963 with absolutely no stored indexes (tags) or persistent background processes.
10964 Dumb Jump performs best with The Silver Searcher @command{ag} or ripgrep
10965 @command{rg} installed.")
10966 (license license:gpl3+)))
10967
10968 (define-public emacs-dts-mode
10969 (let ((commit "9ee0854446dcc6c53d2b8d2941051768dba50344")
10970 (revision "1"))
10971 (package
10972 (name "emacs-dts-mode")
10973 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
10974 (source
10975 (origin
10976 (method git-fetch)
10977 (uri (git-reference
10978 (url "https://github.com/bgamari/dts-mode.git")
10979 (commit commit)))
10980 (file-name (string-append name "-" version "-checkout"))
10981 (sha256
10982 (base32
10983 "1k8lljdbc90nd29xrhdrsscxavzdq532wq2mg7ljc94krj7538b1"))))
10984 (build-system emacs-build-system)
10985 (home-page "https://github.com/bgamari/dts-mode.git")
10986 (synopsis "Emacs minor mode for editing device tree files")
10987 (description
10988 "This package provides an Emacs minor mode for highlighting
10989 device tree files.")
10990 (license license:gpl3+))))
10991
10992 (define-public emacs-daemons
10993 (package
10994 (name "emacs-daemons")
10995 (version "1.2.0")
10996 (source
10997 (origin
10998 (method git-fetch)
10999 (uri (git-reference
11000 (url "https://github.com/cbowdon/daemons.el")
11001 (commit version)))
11002 (file-name (string-append name "-" version "-checkout"))
11003 (sha256
11004 (base32
11005 "00ijgm22ck76gw0x79krl05yy0m8a502yfakazfy5xhpn1zi6ab7"))))
11006 (build-system emacs-build-system)
11007 (home-page "https://github.com/cbowdon/daemons.el")
11008 (synopsis "Emacs UI for managing init system services")
11009 (description
11010 "This is an Emacs mode to give you a UI for managing init system
11011 daemons (services) for those getting tired of typing out @code{sudo service
11012 my_thing reload} all the time. It offers a consistent UI over different init
11013 systems.")
11014 (license license:gpl3+)))
11015
11016 (define-public emacs-esh-autosuggest
11017 (package
11018 (name "emacs-esh-autosuggest")
11019 (version "2.0.0")
11020 (source
11021 (origin
11022 (method git-fetch)
11023 (uri (git-reference
11024 (url "https://github.com/dieggsy/esh-autosuggest")
11025 (commit version)))
11026 (file-name (string-append name "-" version "-checkout"))
11027 (sha256
11028 (base32
11029 "116pdjgpjy9b0psm5kzwkwy7dq8vn0p6dy75dl1zsy2xrjf1iqdw"))))
11030 (build-system emacs-build-system)
11031 (propagated-inputs `(("emacs-company" ,emacs-company)))
11032 (home-page "https://github.com/dieggsy/esh-autosuggest")
11033 (synopsis "Fish-like autosuggestions in Eshell")
11034 (description
11035 "This package assumes you use something other than company for eshell
11036 completion (e.g. @code{eshell-pcomplete}, @code{completion-at-point},
11037 @code{helm-esh-pcomplete}). @code{company-mode} is used solely as a mechanism
11038 for history autosuggestions.
11039
11040 Unless you're using @code{use-package}'s hook keyword, you can enable the
11041 autosuggestions with:
11042 @code{(add-hook 'eshell-mode-hook #'esh-autosuggest-mode)}")
11043 (license license:gpl3+)))
11044
11045 (define-public emacs-desktop-environment
11046 (package
11047 (name "emacs-desktop-environment")
11048 (version "0.2.0")
11049 (source
11050 (origin
11051 (method git-fetch)
11052 (uri (git-reference
11053 (url "https://github.com/DamienCassou/desktop-environment.git")
11054 (commit (string-append "v" version))))
11055 (file-name (string-append name "-" version "-checkout"))
11056 (sha256
11057 (base32
11058 "1fal3yfmqg10cb53qsf5gsq2gvyz9w16wmlpnpjwjzwnjfn6l73r"))))
11059 (build-system emacs-build-system)
11060 (home-page "https://gitlab.petton.fr/DamienCassou/desktop-environment")
11061 (synopsis "Control your GNU/Linux desktop environment from Emacs")
11062 (description
11063 "This package helps you control your GNU/Linux desktop from Emacs.
11064 With @code{desktop-environment}, you can control the brightness and volume as
11065 well as take screenshots and lock your screen. The package depends on the
11066 availability of shell commands to do the hard work for us. These commands can
11067 be changed by customizing the appropriate variables.")
11068 (license license:gpl3+)))
11069
11070 (define-public emacs-org-caldav
11071 (package
11072 (name "emacs-org-caldav")
11073 (version "20180403")
11074 (source
11075 (origin
11076 (method url-fetch)
11077 (uri (string-append
11078 "https://github.com/dengste/org-caldav/raw/"
11079 "8d3492c27a09f437d2d94f2736c56d7652e87aa0"
11080 "/org-caldav.el"))
11081 (sha256
11082 (base32
11083 "1fh4gh68ddj0is99z2ccyh97v6psnyda61n2dsadzqhcxn51amlc"))))
11084 (build-system emacs-build-system)
11085 (propagated-inputs `(("emacs-org" ,emacs-org)))
11086 (home-page "https://github.com/dengste/org-caldav")
11087 (synopsis
11088 "Sync Org files with external calendars via the CalDAV protocol")
11089 (description
11090 "Synchronize between events in Org-mode files and a CalDAV calendar.
11091 This code is still alpha.")
11092 (license license:gpl3+)))
11093
11094 (define-public emacs-zotxt
11095 (package
11096 (name "emacs-zotxt")
11097 (version "20180518")
11098 (source
11099 (origin
11100 (method url-fetch)
11101 (uri (string-append
11102 "https://github.com/egh/zotxt-emacs/archive/"
11103 "23a4a9f74a658222027d53a9a83cd4bcc583ca8b"
11104 ".tar.gz"))
11105 (sha256
11106 (base32
11107 "1qlibaciqgsva6fc7vv9krssjq00bi880396jk7llbi3c52q9n1y"))))
11108 (build-system emacs-build-system)
11109 (propagated-inputs
11110 `(("emacs-deferred" ,emacs-deferred)
11111 ("emacs-request" ,emacs-request)))
11112 (home-page "https://github.com/egh/zotxt-emacs")
11113 (synopsis "Integrate Emacs with Zotero")
11114 (description "This package provides two integration features between Emacs
11115 and the Zotero research assistant: Insertion of links to Zotero items into an
11116 Org-mode file, and citations of Zotero items in Pandoc Markdown files.")
11117 (license license:gpl3+)))
11118
11119 (define-public emacs-evil-ediff
11120 ;; Evil-Ediff is included in Evil Collection from 20180617.
11121 (deprecated-package "emacs-evil-ediff" emacs-evil-collection))
11122
11123 (define-public emacs-evil-magit
11124 (let ((commit "dbf5a646a7ce1c35c229dfdc423bd5ecd927a3a8"))
11125 (package
11126 (name "emacs-evil-magit")
11127 (version (git-version "0.4.2" "1" commit))
11128 (source
11129 (origin
11130 (method git-fetch)
11131 (uri (git-reference
11132 (url "https://github.com/emacs-evil/evil-magit")
11133 (commit commit)))
11134 (file-name (string-append name "-" version "-checkout"))
11135 (sha256
11136 (base32
11137 "0ya0dkviq4pi92ab69a4j674y5r1hc1x3x7r7hlm97ag3a6zfkav"))))
11138 (build-system emacs-build-system)
11139 (propagated-inputs
11140 `(("emacs-evil" ,emacs-evil)
11141 ("magit" ,magit)))
11142 (home-page
11143 "https://github.com/emacs-evil/evil-magit")
11144 (synopsis "Evil-based key bindings for Magit")
11145 (description
11146 "This Emacs library configures Magit and Evil to play well with each other.
11147 For some background see @url{https://github.com/magit/evil-magit/issues/1}.
11148 See the README at @url{https://github.com/justbur/evil-magit} for a table
11149 describing the key binding changes.")
11150 (license license:gpl3+))))
11151
11152 (define-public emacs-evil-mu4e
11153 ;; Evil-mu4e is included in Evil Collection from 20180617.
11154 (deprecated-package "emacs-evil-mu4e" emacs-evil-collection))
11155
11156 (define-public emacs-evil-multiedit
11157 (let ((commit "ea3d9177b74ab0bc65e55df9cc0a0b42e4ef815d"))
11158 (package
11159 (name "emacs-evil-multiedit")
11160 (version (git-version "1.3.9" "1" commit))
11161 (source
11162 (origin
11163 (method git-fetch)
11164 (uri (git-reference
11165 (url "https://github.com/hlissner/evil-multiedit")
11166 (commit commit)))
11167 (file-name (string-append name "-" version "-checkout"))
11168 (sha256
11169 (base32
11170 "17zm35r474z8ras4xy7124pcb972d385pbdv4jxyj5vq042vq07w"))))
11171 (build-system emacs-build-system)
11172 (propagated-inputs
11173 `(("emacs-evil" ,emacs-evil)
11174 ("emacs-iedit" ,emacs-iedit)))
11175 (home-page
11176 "https://github.com/hlissner/evil-multiedit")
11177 (synopsis "Multiple cursors for Evil mode")
11178 (description
11179 "This plugin was an answer to the lack of proper multiple cursor support
11180 in Emacs+Evil. It allows you to select and edit matches interactively,
11181 integrating @code{iedit-mode} into Evil mode with an attempt at sensible
11182 defaults.")
11183 (license license:gpl3+))))
11184
11185 (define-public emacs-evil-org
11186 (let ((commit "b6d652a9163d3430a9e0933a554bdbee5244bbf6"))
11187 (package
11188 (name "emacs-evil-org")
11189 (version (git-version "0.1.1" "1" commit))
11190 (source
11191 (origin
11192 (method git-fetch)
11193 (uri (git-reference
11194 (url "https://github.com/Somelauw/evil-org-mode")
11195 (commit commit)))
11196 (file-name (string-append name "-" version "-checkout"))
11197 (sha256
11198 (base32
11199 "176hrw7y7nczffbyhsa167b8rvfacsmcafm2gpkrdjqlrikbmrhl"))))
11200 (build-system emacs-build-system)
11201 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
11202 (home-page
11203 "https://github.com/Somelauw/evil-org-mode")
11204 (synopsis "Evil keybindings for Org mode")
11205 (description
11206 "This package adds supplemental Evil mode key-bindings to Emacs
11207 Org-mode. It features:
11208 @itemize
11209 @item normal, visual and insert mode bindings;
11210 @item key bindings organised in key themes;
11211 @item operators like > and < to work on headings;
11212 @item text objects;
11213 @item table support;
11214 @item calendar (date selection) support;
11215 @item agenda support.
11216 @end itemize\n")
11217 (license license:gpl3+))))
11218
11219 (define-public emacs-fish-completion
11220 (let ((commit "bac15fda1392a891070574dfe5d2d50b10831e8b"))
11221 (package
11222 (name "emacs-fish-completion")
11223 (version (git-version "20180616" "1" commit))
11224 (source
11225 (origin
11226 (method url-fetch)
11227 (uri (string-append
11228 "https://gitlab.com/Ambrevar/emacs-fish-completion/repository/"
11229 "archive.tar.gz?ref="
11230 commit))
11231 (sha256
11232 (base32
11233 "093qzdrbkl7dhjk16zq8i13kh1phyigkblcfrbgbrxjqd2ndrfdi"))))
11234 (build-system emacs-build-system)
11235 (inputs `(("fish" ,fish)))
11236 (arguments
11237 `(#:phases
11238 (modify-phases %standard-phases
11239 (add-after 'unpack 'configure
11240 (lambda* (#:key inputs outputs #:allow-other-keys)
11241 (let ((fish (assoc-ref inputs "fish")))
11242 ;; Specify the absolute file names of the various
11243 ;; programs so that everything works out-of-the-box.
11244 (emacs-substitute-variables
11245 "fish-completion.el"
11246 ("fish-completion-command"
11247 (string-append fish "/bin/fish")))))))))
11248 (home-page
11249 "https://gitlab.com/Ambrevar/emacs-fish-completion")
11250 (synopsis "Fish completion for Emacs pcomplete")
11251 (description
11252 "This package provides completion for the Fish shell to pcomplete (used
11253 by shell and Eshell). You can set it up globally with:
11254
11255 @example
11256 (when (and (executable-find \"fish\")
11257 (require 'fish-completion nil t))
11258 (global-fish-completion-mode))
11259 @end example
11260
11261 Alternatively, you can call the @code{fish-completion-mode} manually or in
11262 shell/Eshell mode hook.
11263
11264 The package @code{emacs-bash-completion} is an optional dependency: if available,
11265 @code{fish-completion-complete} can be configured to fall back on bash to further
11266 try completing. See @code{fish-completion-fallback-on-bash-p}.")
11267 (license license:gpl3+))))
11268
11269 (define-public emacs-gif-screencast
11270 (let ((commit "12b25442b97b84abae74ecb5190a9d14ff7cfe5a"))
11271 (package
11272 (name "emacs-gif-screencast")
11273 (version (git-version "20180616" "1" commit))
11274 (source
11275 (origin
11276 (method url-fetch)
11277 (uri (string-append
11278 "https://gitlab.com/Ambrevar/emacs-gif-screencast/"
11279 "repository/archive.tar.gz?ref="
11280 commit))
11281 (sha256
11282 (base32
11283 "0lc457i78xjkn5idr2aaiadkh76zcsksj84z0qh80a9y775syrgh"))))
11284 (build-system emacs-build-system)
11285 (inputs
11286 `(("scrot" ,scrot)
11287 ("imagemagick" ,imagemagick)
11288 ("gifsicle" ,gifsicle)))
11289 (arguments
11290 `(#:phases
11291 (modify-phases %standard-phases
11292 (add-after 'unpack 'configure
11293 (lambda* (#:key inputs outputs #:allow-other-keys)
11294 (let ((scrot (assoc-ref inputs "scrot"))
11295 (imagemagick (assoc-ref inputs "imagemagick"))
11296 (gifsicle (assoc-ref inputs "gifsicle")))
11297 ;; Specify the absolute file names of the various
11298 ;; programs so that everything works out-of-the-box.
11299 (emacs-substitute-variables
11300 "gif-screencast.el"
11301 ("gif-screencast-program"
11302 (string-append scrot "/bin/scrot"))
11303 ("gif-screencast-convert-program"
11304 (string-append imagemagick "/bin/convert"))
11305 ("gif-screencast-cropping-program"
11306 (string-append imagemagick "/bin/mogrify"))
11307 ("gif-screencast-optimize-program"
11308 (string-append imagemagick "/bin/gifsicle")))))))))
11309 (home-page
11310 "https://gitlab.com/Ambrevar/emacs-gif-screencast")
11311 (synopsis "One-frame-per-action GIF recording")
11312 (description
11313 "Call @code{gif-screencast} to start a recording.
11314 A screenshot is taken for every user action. Call
11315 @code{gif-screencast-stop} (<f9> by default) to finish recording and create
11316 the GIF result.")
11317 (license license:gpl3+))))
11318
11319 (define-public emacs-google-translate
11320 (let ((commit "d8b84a8359fcc697114d1298840e9a45b111c974"))
11321 (package
11322 (name "emacs-google-translate")
11323 (version (git-version "0.11.14" "1" commit))
11324 (source
11325 (origin
11326 (method git-fetch)
11327 (uri (git-reference
11328 (url "https://github.com/atykhonov/google-translate")
11329 (commit commit)))
11330 (file-name (string-append name "-" version "-checkout"))
11331 (sha256
11332 (base32
11333 "1qs4hcg1i2m487z50nnwgs0sa2xj4lpgizbrvi2yda0mf3m75fgc"))))
11334 (build-system emacs-build-system)
11335 (home-page "https://github.com/atykhonov/google-translate")
11336 (synopsis "Emacs interface to Google Translate")
11337 (description
11338 "This packages provides an Emacs interface to the Google Translate
11339 on-line service.")
11340 (license license:gpl3+))))
11341
11342 (define-public emacs-helm-company
11343 (let ((commit "acc9c7901e094c1591327a0db1ec7a439f67a84d"))
11344 (package
11345 (name "emacs-helm-company")
11346 (version (git-version "0.2.2" "1" commit))
11347 (source
11348 (origin
11349 (method git-fetch)
11350 (uri (git-reference
11351 (url "https://github.com/Sodel-the-Vociferous/helm-company")
11352 (commit commit)))
11353 (file-name (string-append name "-" version "-checkout"))
11354 (sha256
11355 (base32
11356 "1d4q9clp0q56br80c21a4wz1gc4jw3mdy97z9mq07x9i8rhlppzs"))))
11357 (build-system emacs-build-system)
11358 (propagated-inputs
11359 `(("emacs-helm" ,emacs-helm)
11360 ("emacs-company" ,emacs-company)))
11361 (home-page "https://github.com/Sodel-the-Vociferous/helm-company")
11362 (synopsis "Helm interface for company-mode")
11363 (description
11364 "This is a Helm interface to company-mode, a text completion
11365 framework.")
11366 (license license:gpl3+))))
11367
11368 (define-public emacs-helm-descbinds
11369 (let ((commit "033be73f21778633813264ce1634a6e1ad873d8e"))
11370 (package
11371 (name "emacs-helm-descbinds")
11372 (version (git-version "1.13" "1" commit))
11373 (source
11374 (origin
11375 (method git-fetch)
11376 (uri (git-reference
11377 (url "https://github.com/emacs-helm/helm-descbinds")
11378 (commit commit)))
11379 (file-name (string-append name "-" version "-checkout"))
11380 (sha256
11381 (base32
11382 "1n89p56qwa243w1c85i5awnaf7piwjsvfi7nmnsrwm33hix5dknk"))))
11383 (build-system emacs-build-system)
11384 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
11385 (home-page "https://github.com/emacs-helm/helm-descbinds")
11386 (synopsis "Convenient @code{describe-bindings} with Helm")
11387 (description
11388 "This package is a replacement of @code{describe-bindings} for Helm.
11389 @code{describe-bindings} is replaced with @code{helm-descbinds}. As usual,
11390 type @code{C-h b}, or any incomplete key sequence plus @code{C-h}, to run
11391 @code{helm-descbinds}. The bindings are presented in a similar way as
11392 @code{describe-bindings} does, but you can use completion to find the command
11393 you searched for and execute it, or view its documentation.")
11394 (license license:gpl3+))))
11395
11396 (define-public emacs-helm-emms
11397 (let ((commit "d3f9bdef8ff0d093eaf6e26af50ea905ab53fdec"))
11398 (package
11399 (name "emacs-helm-emms")
11400 (version (git-version "1.3" "1" commit))
11401 (source
11402 (origin
11403 (method git-fetch)
11404 (uri (git-reference
11405 (url "https://github.com/emacs-helm/helm-emms")
11406 (commit commit)))
11407 (file-name (string-append name "-" version "-checkout"))
11408 (sha256
11409 (base32
11410 "0bdb8xp0yp3gijpa9i2rc17gfzjhzlm92vdzw93i10qpd1xhj4aa"))))
11411 (build-system emacs-build-system)
11412 (propagated-inputs
11413 `(("emacs-helm" ,emacs-helm)
11414 ("emacs-emms" ,emms)))
11415 (home-page
11416 "https://github.com/emacs-helm/helm-emms")
11417 (synopsis "Emms for Helm")
11418 (description "Helm interface for Emms to browse all tracks and all folders
11419 from @code{emms-source-file-default-directory}.")
11420 (license license:gpl3+))))
11421
11422 (define-public emacs-helm-exwm
11423 (let ((commit "56266f261ba3b3d2753b374b50da20eb768c06f5"))
11424 (package
11425 (name "emacs-helm-exwm")
11426 (version (git-version "20180703" "2" commit))
11427 (source
11428 (origin
11429 (method url-fetch)
11430 (uri (string-append
11431 "https://github.com/emacs-helm/helm-exwm/archive/"
11432 commit
11433 ".tar.gz"))
11434 (sha256
11435 (base32
11436 "0n7hdiajw5vxl8ha2r9r4cl4i7crza25348825wb6acwhhzijxcj"))))
11437 (build-system emacs-build-system)
11438 (propagated-inputs
11439 `(("emacs-helm" ,emacs-helm)
11440 ("emacs-exwm" ,emacs-exwm)))
11441 (home-page
11442 "https://github.com/emacs-helm/helm-exwm")
11443 (synopsis "Helm for EXWM buffers")
11444 (description
11445 "@code{helm-exwm} runs a Helm session over the list of EXWM buffers.
11446 @code{helm-exwm-switch} is a convenience X application launcher using Helm to
11447 switch between the various windows of one or several specific applications.
11448 See @code{helm-exwm-switch-browser} for an example.")
11449 (license license:gpl3+))))
11450
11451 (define-public emacs-helm-flycheck
11452 (let ((commit "3cf7d3bb194acacc6395f88360588013d92675d6"))
11453 (package
11454 (name "emacs-helm-flycheck")
11455 (version (git-version "0.4" "1" commit))
11456 (source
11457 (origin
11458 (method git-fetch)
11459 (uri (git-reference
11460 (url "https://github.com/yasuyk/helm-flycheck")
11461 (commit commit)))
11462 (file-name (string-append name "-" version "-checkout"))
11463 (sha256
11464 (base32
11465 "1a2yfxhz04klwhcandqvfzysxp6b7bxyxx1xk1x3kds5hif5fkl4"))))
11466 (build-system emacs-build-system)
11467 (propagated-inputs
11468 `(("emacs-dash" ,emacs-dash)
11469 ("emacs-flycheck" ,flycheck)
11470 ("emacs-helm" ,emacs-helm)))
11471 (home-page "https://github.com/yasuyk/helm-flycheck")
11472 (synopsis "Show Flycheck errors with Helm")
11473 (description
11474 "This integrates Flycheck with Helm.")
11475 (license license:gpl3+))))
11476
11477 (define-public emacs-helm-ls-git
11478 (let ((commit "76654c776a7f6e2e5290645e748aac2a746f7daa"))
11479 (package
11480 (name "emacs-helm-ls-git")
11481 (version (git-version "1.9.1" "1" commit))
11482 (source
11483 (origin
11484 (method git-fetch)
11485 (uri (git-reference
11486 (url "https://github.com/emacs-helm/helm-ls-git")
11487 (commit commit)))
11488 (file-name (string-append name "-" version "-checkout"))
11489 (sha256
11490 (base32
11491 "0vsq1n3xl3ghy5zik2scm7jrs501n4kybdqd6yw6j0cv4jxdqbr0"))))
11492 (build-system emacs-build-system)
11493 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
11494 (home-page "https://github.com/emacs-helm/helm-ls-git")
11495 (synopsis "Helm interface for listing the files in a Git repository")
11496 (description
11497 "This package provides a Helm interface for Git files.
11498 @itemize
11499 @item Display the open buffers in project.
11500 @item Display a status source showing state of project (modified files etc.).
11501 @item Display a list of all files in project under git control.
11502 @item Quickly look at diffs of modified files.
11503 @item Allow switching to @code{git status} with your preferred frontend
11504 (vc-dir, Magit,etc.).
11505 @item Full integration of git-grep, also allow usage of @code{helm-grep} (you
11506 can use ack-grep instead of grep).
11507 @item Integrate usage of gid from id-utils.
11508 @item Full integration with @code{helm-find-files}, allow you to browse
11509 projects unrelated to current-buffer.
11510 @item In addition, all actions of type files and buffers are provided.
11511 @end itemize\n")
11512 (license license:gpl3+))))
11513
11514 (define-public emacs-helm-mu
11515 (let ((commit "77e6fea24e01481418738421dbcfe28ef1bd63cf"))
11516 (package
11517 (name "emacs-helm-mu")
11518 (version (git-version "20180513" "1" commit))
11519 (source
11520 (origin
11521 (method url-fetch)
11522 (uri (string-append
11523 "https://github.com/emacs-helm/helm-mu/archive/"
11524 commit
11525 ".tar.gz"))
11526 (sha256
11527 (base32
11528 "0qm4xi3i957scm50nar398pv4x8y03si10l77jb9ckjaviyq2hj9"))))
11529 (build-system emacs-build-system)
11530 (propagated-inputs
11531 `(("emacs-helm" ,emacs-helm)
11532 ("mu" ,mu)))
11533 (home-page
11534 "https://github.com/emacs-helm/helm-mu")
11535 (synopsis
11536 "Helm sources for searching emails and contacts")
11537 (description
11538 "Helm sources for searching emails and contacts using @code{mu} and
11539 @code{mu4e}. Mu is an indexer for maildirs and mu4e is a mutt-like MUA for
11540 Emacs build on top of mu. Mu is highly efficient making it possible to get
11541 instant results even for huge maildirs. It also provides search operators,
11542 e.g: @code{from:Peter to:Anne flag:attach search term}.")
11543 (license license:gpl3+))))
11544
11545 (define-public emacs-helm-pass
11546 (let ((commit "ebcbef1a962795a36e3491ae926e2a4b8a8b0ebb"))
11547 (package
11548 (name "emacs-helm-pass")
11549 (version (git-version "20180416" "1" commit))
11550 (source
11551 (origin
11552 (method url-fetch)
11553 (uri (string-append
11554 "https://github.com/jabranham/helm-pass/archive/"
11555 commit
11556 ".tar.gz"))
11557 (sha256
11558 (base32
11559 "1pgq4hj9wvz7z2fyxwsvbh6rmc1akya84v382nx26rr76iavz6wi"))))
11560 (build-system emacs-build-system)
11561 (propagated-inputs
11562 `(("emacs-helm" ,emacs-helm)
11563 ("emacs-password-store" ,emacs-password-store)))
11564 (home-page
11565 "https://github.com/jabranham/helm-pass")
11566 (synopsis "Helm interface to pass, the standard Unix password manager")
11567 (description
11568 "Users of @code{helm-pass} may also be interested in functionality
11569 provided by other Emacs packages dealing with pass:
11570 @itemize
11571 @item @code{emacs-password-store}, which @code{helm-pass} relies on.
11572 @item @code{emacs-pass}, a major mode for @code{pass}.
11573 @item @code{auth-source-pass.el}: integration of Emacs' auth-source with
11574 @code{pass}, included in Emacs 26+).
11575 @end itemize\n")
11576 (license license:gpl3+))))
11577
11578 (define-public emacs-image+
11579 (let ((commit "6834d0c09bb4df9ecc0d7a559bd7827fed48fffc"))
11580 (package
11581 (name "emacs-image+")
11582 (version (git-version "0.6.2" "1" commit))
11583 (source
11584 (origin
11585 (method git-fetch)
11586 (uri (git-reference
11587 (url "https://github.com/mhayashi1120/Emacs-imagex")
11588 (commit commit)))
11589 (file-name (string-append name "-" version "-checkout"))
11590 (sha256
11591 (base32
11592 "0v66wk9nh0raih4jhrzmmyi5lbysjnmbv791vm2230ffi2hmwxnd"))))
11593 (build-system emacs-build-system)
11594 (inputs `(("imagemagick" ,imagemagick)))
11595 (arguments
11596 `(#:phases
11597 (modify-phases %standard-phases
11598 (add-after 'unpack 'configure
11599 (lambda* (#:key inputs outputs #:allow-other-keys)
11600 (let ((imagemagick (assoc-ref inputs "imagemagick")))
11601 ;; Specify the absolute file names of the various
11602 ;; programs so that everything works out-of-the-box.
11603 (chmod "image+.el" #o666)
11604 (emacs-substitute-variables
11605 "image+.el"
11606 ("imagex-convert-command"
11607 (string-append imagemagick "/bin/convert"))
11608 ("imagex-identify-command"
11609 (string-append imagemagick "/bin/identify")))))))))
11610 (home-page "https://github.com/mhayashi1120/Emacs-imagex")
11611 (synopsis "Image manipulation extensions for Emacs")
11612 (description
11613 "Image+ provides keybindings allowing you to zoom in or zoom out of an
11614 image, rotate it, save modified images, and more.")
11615 (license license:gpl3+))))
11616
11617 (define-public emacs-package-lint
11618 (let ((commit "69bb89d00ba212b734c676ad056aa793c450b288"))
11619 (package
11620 (name "emacs-package-lint")
11621 (version (git-version "0.5" "1" commit))
11622 (source
11623 (origin
11624 (method git-fetch)
11625 (uri (git-reference
11626 (url "https://github.com/purcell/package-lint")
11627 (commit commit)))
11628 (file-name (string-append name "-" version "-checkout"))
11629 (sha256
11630 (base32
11631 "1hfricsgmy3x9snnd2p4xq6vnnv94qdsxxnxp07b3hqc9bhw31rq"))))
11632 (build-system emacs-build-system)
11633 (home-page "https://github.com/purcell/package-lint")
11634 (synopsis "Linting library for elisp package authors")
11635 (description
11636 "This provides a list of issues with the Emacs package metadata of a file,
11637 e.g. the package dependencies it requires. See function
11638 @code{package-lint-buffer}. Checks will currently be enabled only if a
11639 \"Package-Requires:\" or \"Package-Version:\" header is present in the
11640 file.")
11641 (license license:gpl3+))))
11642
11643 (define-public emacs-picpocket
11644 (let ((version "20180610.1059") ; taken from melpa
11645 (commit "ce4b6ed088384f2414af82e8e4eae5b92c2874bf"))
11646 (package
11647 (name "emacs-picpocket")
11648 (version version)
11649 (source
11650 (origin
11651 (method git-fetch)
11652 (uri (git-reference
11653 (url "https://github.com/johanclaesson/picpocket")
11654 (commit commit)))
11655 (file-name (git-file-name name version))
11656 (sha256
11657 (base32 "15vpbcv83mc4j1pvrk7xic0klh2bl9gzg2xxs7c2lmnix52hy8mv"))))
11658 (build-system emacs-build-system)
11659 (arguments ; needed for running tests
11660 `(#:tests? #t
11661 #:emacs ,emacs
11662 #:test-command '("emacs" "--batch"
11663 "-l" "picpocket-test.el"
11664 "-f" "ert-run-tests-batch-and-exit")))
11665 (home-page "https://github.com/johanclaesson/picpocket")
11666 (synopsis "Image viewer for Emacs")
11667 (description
11668 "Picpocket is an image viewer for GNU Emacs. It has commands for:
11669
11670 @itemize
11671 @item File operations on the picture files (delete, move, copy, hardlink).
11672 @item Scale and rotate the picture.
11673 @item Associate pictures with tags which are saved to disk.
11674 @item Filter pictures according to tags.
11675 @item Customizing keystrokes for quick tagging and file operations.
11676 @item Undo and browse history of undoable commands.
11677 @end itemize")
11678 (license license:gpl3+))))
11679
11680 (define-public emacs-wgrep-helm
11681 ;; `emacs-wgrep-helm' was mistakenly added.
11682 (deprecated-package "emacs-wgrep-helm" emacs-wgrep))
11683
11684 (define-public emacs-mu4e-conversation
11685 (let ((commit "223cc66e99c7665326e3d991d6d383cb0d7512bb"))
11686 (package
11687 (name "emacs-mu4e-conversation")
11688 (version (git-version "20180722" "2" commit))
11689 (source
11690 (origin
11691 (method url-fetch)
11692 (uri (string-append
11693 "https://gitlab.com/Ambrevar/mu4e-conversation/"
11694 "repository/archive.tar.gz?ref="
11695 commit))
11696 (file-name (string-append name "-" version "-checkout"))
11697 (sha256
11698 (base32
11699 "1ivy7pihhma465hi25p1y45dyi8h52nsm2m0cvizj5sw36jw0n81"))))
11700 (build-system emacs-build-system)
11701 (propagated-inputs
11702 `(("mu" ,mu)))
11703 (home-page
11704 "https://gitlab.com/Ambrevar/mu4e-conversation")
11705 (synopsis
11706 "Show a complete thread in a single buffer")
11707 (description
11708 "This package offers an alternate view to mu4e's e-mail display. It
11709 shows all e-mails of a thread in a single view, where each correspondent has
11710 their own face. Threads can be displayed linearly (in which case e-mails are
11711 displayed in chronological order) or as an Org document where the node tree
11712 maps the thread tree.")
11713 (license license:gpl3+))))
11714
11715 (define-public emacs-pinentry
11716 (let ((commit "dcc9ba03252ee5d39e03bba31b420e0708c3ba0c")
11717 (revision "1"))
11718 (package
11719 (name "emacs-pinentry")
11720 (version (git-version "0.1" revision commit))
11721 (source
11722 (origin
11723 (method url-fetch)
11724 (uri (string-append
11725 "http://git.savannah.gnu.org/cgit/emacs/elpa.git/plain"
11726 "/packages/pinentry/pinentry.el?id=" commit))
11727 (file-name (string-append "pinentry.el"))
11728 (sha256
11729 (base32
11730 "1lf30q6r8nz5cjzclbb9bbymsk2y75nskvb55hnjdv93gr3j0sik"))))
11731 (build-system emacs-build-system)
11732 (propagated-inputs
11733 `(("gnupg" ,gnupg)))
11734 (home-page "https://elpa.gnu.org/packages/pinentry.html")
11735 (synopsis "GnuPG Pinentry server implementation")
11736 (description
11737 "This package allows GnuPG passphrase to be prompted through the
11738 minibuffer instead of graphical dialog.
11739
11740 To use, add @code{allow-emacs-pinentry} to @code{~/.gnupg/gpg-agent.conf},
11741 reload the configuration with @code{gpgconf --reload gpg-agent}, and start the
11742 server with @code{M-x pinentry-start}.")
11743 (license license:gpl3+))))
11744
11745 (define-public emacs-org-brain
11746 (package
11747 (name "emacs-org-brain")
11748 (version "0.5")
11749 (source
11750 (origin
11751 (method git-fetch)
11752 (uri (git-reference
11753 (url "https://github.com/Kungsgeten/org-brain.git")
11754 (commit "3faf9303af3f2356e3444e69c22dc6c5774047d1")))
11755 (file-name (git-file-name name version))
11756 (sha256
11757 (base32
11758 "1ad681zk6kckw2zbk0r4iaj4bw8cfqrbd1s3gdwgdjlzq81q9mmj"))))
11759 (build-system emacs-build-system)
11760 (home-page "https://github.com/Kungsgeten/org-brain")
11761 (synopsis "Org-mode wiki and concept-mapping for Emacs")
11762 (description "@code{emacs-org-brain} implements a variant of concept
11763 mapping in Emacs, using @code{org-mode}. An org-brain is a network of
11764 org-mode entries, where each entry is a file or a headline, and you can get a
11765 visual overview of the relationships between the entries: parents, children,
11766 siblings and friends. This visual overview can also be used to browse your
11767 entries. You can think of entries as nodes in a mind map, or pages in a
11768 wiki.")
11769 (license license:expat)))
11770
11771 (define-public emacs-recent-addresses
11772 (let ((commit "afbbfdc43b81e620acf827ca20d297e0c517b6eb")
11773 (revision "1"))
11774 (package
11775 (name "emacs-recent-addresses")
11776 (home-page "http://nschum.de/src/emacs/recent-addresses/")
11777 (version (git-version "0.1" revision commit))
11778 (source (origin
11779 (method git-fetch)
11780 (uri (git-reference
11781 ;; Note: Use a branch that works with Helm. Submitted
11782 ;; at <https://github.com/nschum/recent-addresses.el/pull/1>.
11783 (url "https://github.com/civodul/recent-addresses.el")
11784 (commit commit)))
11785 (sha256
11786 (base32
11787 "0ajrq0galjmdyjdjyxazykjyax3gh6hvfk4s7l657pi11g0q5zax"))
11788 (file-name (git-file-name name version))))
11789 (build-system emacs-build-system)
11790 (synopsis "Record recently-used email addressed and auto-complete them")
11791 (description
11792 "@code{recent-addresses} is an Emacs package that allows you to quickly
11793 look up previously used email addresses. It can be used alongside the Gnus
11794 email client.")
11795 (license license:gpl2+))))
11796
11797 (define-public emacs-fold-dwim
11798 (let ((commit "c46f4bb2ce91b4e307136320e72c28dd50b6cd8b")
11799 (revision "0"))
11800 (package
11801 (name "emacs-fold-dwim")
11802 (version (git-version "1.2" revision commit))
11803 (home-page "https://github.com/emacsattic/fold-dwim")
11804 (source (origin
11805 (method git-fetch)
11806 (uri (git-reference (url home-page) (commit commit)))
11807 (sha256
11808 (base32
11809 "1yz1wis31asw6xa5maliyd1ck2q02xnnh7dc6swgj9cb4wi7k6i1"))
11810 (file-name (git-file-name name version))))
11811 (build-system emacs-build-system)
11812 (synopsis "Unified user interface for Emacs folding modes")
11813 (description
11814 "DWIM stands for \"do what I mean\", as in the idea that one keystroke
11815 can do different things depending on the context. In this package, it means
11816 that, if the cursor is in a currently hidden folded construction, we want to
11817 show it; if it's not, we want to hide whatever fold the cursor is in.")
11818 (license license:gpl2+))))
11819
11820 (define-public emacs-markup-faces
11821 (package
11822 (name "emacs-markup-faces")
11823 (version "1.0.0")
11824 (source
11825 (origin
11826 (method url-fetch)
11827 (uri (string-append "https://stable.melpa.org/packages/markup-faces-"
11828 version ".el"))
11829 (sha256
11830 (base32
11831 "124dxbaa25fwxnpwsygpz7pw6da6dnnw7y2lic3jf8rgz7lw4v32"))))
11832 (build-system emacs-build-system)
11833 (home-page "https://github.com/sensorflo/markup-faces")
11834 (synopsis "Collection of Emacs faces for markup language modes")
11835 (description "emacs-markup-faces is like font-lock-faces, but tailored for
11836 markup languages instead programming languages. The sub group markup-faces-text
11837 is also intended for 'text viewing modes' such as info or (wo)man. This gives a
11838 common look and feel, or let's say theme, across different markup language modes
11839 and 'text viewing modes' respectively.")
11840 (license license:gpl3+)))
11841
11842 (define-public emacs-adoc-mode
11843 (package
11844 (name "emacs-adoc-mode")
11845 (version "0.6.6")
11846 (source
11847 (origin
11848 (method url-fetch)
11849 (uri (string-append "https://stable.melpa.org/packages/adoc-mode-"
11850 version ".el"))
11851 (sha256
11852 (base32
11853 "1c6hrgxxsnl2c19rgjykpm7r4xg9lp6bmk5z6bi7g8pqlrgwffcy"))))
11854 (build-system emacs-build-system)
11855 (propagated-inputs
11856 `(("emacs-markup-faces" ,emacs-markup-faces)))
11857 (home-page "https://github.com/sensorflo/adoc-mode/wiki")
11858 (synopsis "AsciiDoc mode for Emacs")
11859 (description "This package provides an Emacs major mode for editing AsciiDoc
11860 files. It focuses on highlighting the document to improve readability.")
11861 (license license:gpl2+)))
11862
11863 (define-public emacs-rust-mode
11864 (let ((commit
11865 ;; Last release is old (2016), use more recent commit to get bug
11866 ;; fixes.
11867 "64b4a2450e4d4c47f6307851c9b2598cd2254d68")
11868 (revision "0"))
11869 (package
11870 (name "emacs-rust-mode")
11871 (version (git-version "0.3.0" revision commit))
11872 (source (origin
11873 (method git-fetch)
11874 (uri
11875 (git-reference
11876 (url "https://github.com/rust-lang/rust-mode")
11877 (commit commit)))
11878 (file-name (git-file-name name version))
11879 (sha256
11880 (base32
11881 "0pbz36lljgb7bdgx3h3g0pq1nss1kvn8mhk1l3mknsmynd6w4nd8"))))
11882 (build-system emacs-build-system)
11883 (arguments
11884 `(#:phases
11885 (modify-phases %standard-phases
11886 (replace 'check
11887 (lambda _
11888 (invoke "sh" "run_rust_emacs_tests.sh"))))))
11889 (home-page "https://github.com/rust-lang/rust-mode")
11890 (synopsis "Major Emacs mode for editing Rust source code")
11891 (description "This package provides a major Emacs mode for editing Rust
11892 source code.")
11893 (license (list license:expat
11894 license:asl2.0)))))
11895
11896 (define-public emacs-ztree
11897 (let ((commit "c54425a094353ec40a8179f9eab3596f76c6cf94"))
11898 (package
11899 (name "emacs-ztree")
11900 (version (git-version "1.0.5" "1" commit))
11901 (source
11902 (origin
11903 (method git-fetch)
11904 (uri (git-reference
11905 (url "https://github.com/fourier/ztree")
11906 (commit commit)))
11907 (file-name (git-file-name name version))
11908 (sha256
11909 (base32
11910 "0j8fpxds8m1zi04nrs8vv21091abvh4n8ab76f1sgdxnp4l5cfb0"))))
11911 (build-system emacs-build-system)
11912 (home-page "https://github.com/fourier/ztree")
11913 (synopsis "Directory tree comparison mode for Emacs")
11914 (description "Ztree is a project dedicated to implementation of several
11915 text-tree applications inside GNU Emacs. It consists of 2 subprojects:
11916 @command{ztree-diff} and @command{ztree-dir} (the basis of
11917 @command{ztree-diff}).")
11918 (license license:gpl3))))
11919
11920 (define-public emacs-helm-org-contacts
11921 (let ((commit "0af703bd9a43032b89fdf5559673151d1ac2fffc"))
11922 (package
11923 (name "emacs-helm-org-contacts")
11924 (version (git-version "20180707" "1" commit))
11925 (source
11926 (origin
11927 (method git-fetch)
11928 (uri (git-reference
11929 (url "https://github.com/tmalsburg/helm-org-contacts")
11930 (commit commit)))
11931 (file-name (git-file-name name version))
11932 (sha256
11933 (base32
11934 "1cl7cm2ic9pg4vc9cdh84vzjj1x2lpd5ymimiva8h4l17kiphk4s"))))
11935 (build-system emacs-build-system)
11936 (propagated-inputs
11937 `(("emacs-dash" ,emacs-dash)
11938 ("emacs-helm" ,emacs-helm)
11939 ("emacs-s" ,emacs-s)))
11940 (home-page "https://github.com/tmalsburg/helm-org-contacts")
11941 (synopsis "Helm source for org-contacts")
11942 (description "This Helm source can be used to search contacts stored in
11943 org-contacts format. There are actions for inserting postal addresses, email
11944 addresses, and phone numbers in the buffer where @command{helm-org-contacts}
11945 was called.")
11946 (license license:gpl3))))
11947
11948 (define-public emacs-dired-du
11949 (package
11950 (name "emacs-dired-du")
11951 (version "0.5")
11952 (source
11953 (origin
11954 (method url-fetch)
11955 (uri (string-append
11956 "https://elpa.gnu.org/packages/dired-du-"
11957 version ".tar"))
11958 (sha256
11959 (base32
11960 "09yj37p2fa5f81fqrzwghjkyy2ydsf4rbkfwpn2yyvzd5nd97bpl"))))
11961 (build-system emacs-build-system)
11962 (home-page "http://elpa.gnu.org/packages/dired-du.html")
11963 (synopsis "Dired with recursive directory sizes")
11964 (description
11965 "Display the recursive size of directories in Dired.
11966 This file defines a minor mode @command{dired-du-mode} to show the recursive
11967 size of directories in Dired buffers. If @command{du} program is available,
11968 then the directory sizes are obtained with it. Otherwise, the directory sizes
11969 are obtained with Lisp. The former is faster and provide a more precise
11970 value. For directories where the user doesn't have read permission, the
11971 recursive size is not obtained. Once this mode is enabled, every new Dired
11972 buffer displays recursive dir sizes.")
11973 (license license:gpl3+)))
11974
11975 (define-public emacs-pcre2el
11976 ;; Last release is very old so we get the latest commit.
11977 (let ((commit "0b5b2a2c173aab3fd14aac6cf5e90ad3bf58fa7d"))
11978 (package
11979 (name "emacs-pcre2el")
11980 (version (git-version "1.8" "1" commit))
11981 (source
11982 (origin
11983 (method git-fetch)
11984 (uri (git-reference
11985 (url "https://github.com/joddie/pcre2el")
11986 (commit commit)))
11987 (file-name (git-file-name name version))
11988 (sha256
11989 (base32
11990 "14br6ad138qx1z822wqssswqiihxiynz1k69p6mcdisr2q8yyi1z"))))
11991 (build-system emacs-build-system)
11992 (home-page "https://github.com/joddie/pcre2el")
11993 (synopsis "Convert between PCRE, Emacs and rx regexp syntax")
11994 (description "@code{pcre2el} or @code{rxt} (RegeXp Translator or RegeXp
11995 Tools) is a utility for working with regular expressions in Emacs, based on a
11996 recursive-descent parser for regexp syntax. In addition to converting (a
11997 subset of) PCRE syntax into its Emacs equivalent, it can do the following:
11998
11999 @itemize
12000 @item convert Emacs syntax to PCRE
12001 @item convert either syntax to @code{rx}, an S-expression based regexp syntax
12002 @item untangle complex regexps by showing the parse tree in @code{rx} form and
12003 highlighting the corresponding chunks of code
12004 @item show the complete list of strings (productions) matching a regexp,
12005 provided the list is finite
12006 @item provide live font-locking of regexp syntax (so far only for Elisp
12007 buffers – other modes on the TODO list).
12008 @end itemize\n")
12009 (license license:gpl3))))
12010
12011 (define-public emacs-magit-todos
12012 (package
12013 (name "emacs-magit-todos")
12014 (version "1.1")
12015 (source
12016 (origin
12017 (method git-fetch)
12018 (uri (git-reference
12019 (url "https://github.com/alphapapa/magit-todos")
12020 (commit version)))
12021 (file-name (git-file-name name version))
12022 (sha256
12023 (base32
12024 "1mvzbxshr6zjdim3jd368ar1hy5l7n22i03cpvzdmrw83kkwdyhd"))))
12025 (build-system emacs-build-system)
12026 (propagated-inputs
12027 `(("emacs-async" ,emacs-async)
12028 ("emacs-dash" ,emacs-dash)
12029 ("emacs-f" ,emacs-f)
12030 ("emacs-hl-todo" ,emacs-hl-todo)
12031 ("magit" ,magit)
12032 ("emacs-pcre2el" ,emacs-pcre2el)
12033 ("emacs-s" ,emacs-s)))
12034 (home-page "https://github.com/alphapapa/magit-todos")
12035 (synopsis "Show source files' TODOs (and FIXMEs, etc) in Magit status buffer")
12036 (description "This package displays keyword entries from source code
12037 comments and Org files in the Magit status buffer. Activating an item jumps
12038 to it in its file. By default, it uses keywords from @code{hl-todo}, minus a
12039 few (like NOTE).")
12040 (license license:gpl3)))
12041
12042 (define-public emacs-git-annex
12043 ;; Unreleased version has a fontification fix.
12044 (let ((commit "ebdb44aef1883f1b2b8058e05d30fb9315b03707")
12045 (revision "1"))
12046 (package
12047 (name "emacs-git-annex")
12048 (version (string-append "1.1-" revision "." (string-take commit 8)))
12049 (source
12050 (origin
12051 (method git-fetch)
12052 (uri (git-reference
12053 (url "https://github.com/jwiegley/git-annex-el")
12054 (commit commit)))
12055 (file-name (string-append name "-" version "-checkout"))
12056 (sha256
12057 (base32
12058 "1mzv40gj7k10h7h5s43my8msgzjpj680qprqa9pp8nbyhl49v3wh"))))
12059 (build-system emacs-build-system)
12060 (home-page "https://github.com/jwiegley/git-annex-el")
12061 (synopsis "Emacs integration for git-annex")
12062 (description "Enhances Dired and buffers visiting annex files with
12063 git-annex functionality. In Dired, the names of annex files are shortened by
12064 hiding the symbolic links and fontified based on whether content is present.
12065 Commands for performing some common operations (e.g., unlocking and adding
12066 files) are provided.")
12067 (license license:gpl2+))))
12068
12069 (define-public emacs-hackernews
12070 (let ((commit "d8c450bbc76d6bb65ec5cdb6c3b888a23f3769e9"))
12071 (package
12072 (name "emacs-hackernews")
12073 (version (git-version "0.4.0" "1" commit))
12074 (source
12075 (origin
12076 (method git-fetch)
12077 (uri (git-reference
12078 (url "https://github.com/clarete/hackernews.el")
12079 (commit commit)))
12080 (file-name (git-file-name name version))
12081 (sha256
12082 (base32
12083 "06mp4n6c300jv5lhwf50ircfjckzr2p1zd38s4mqnxxjlf1maim7"))))
12084 (build-system emacs-build-system)
12085 (home-page "https://github.com/clarete/hackernews.el")
12086 (synopsis "Hacker News client for Emacs")
12087 (description "The @command{hackernews} package is able to fetch stories
12088 from six different Hacker News feeds, namely top, new, best, ask, show and job
12089 stories. The default feed is top stories, which corresponds to the Hacker
12090 News homepage.")
12091 (license license:gpl3))))
12092
12093 (define-public emacs-youtube-dl
12094 (let ((commit "7c9d7a7d05b72a7d1b1257a36c5e2b2567b185dd"))
12095 (package
12096 (name "emacs-youtube-dl")
12097 (version (git-version "1.0" "1" commit))
12098 (source
12099 (origin
12100 (method git-fetch)
12101 (uri (git-reference
12102 (url "https://github.com/skeeto/youtube-dl-emacs/")
12103 (commit commit)))
12104 (file-name (git-file-name name version))
12105 (sha256
12106 (base32
12107 "0mh4s089a4x8s380agzb2306kdp1hl204px1n5rrrrdcls7imnh6"))))
12108 (build-system emacs-build-system)
12109 (inputs
12110 `(("youtube-dl" ,youtube-dl)))
12111 (arguments
12112 `(#:phases
12113 (modify-phases %standard-phases
12114 (add-after 'unpack 'configure
12115 (lambda* (#:key inputs #:allow-other-keys)
12116 (let ((youtube-dl (assoc-ref inputs "youtube-dl")))
12117 ;; .el is read-only in git.
12118 (chmod "youtube-dl.el" #o644)
12119 ;; Specify the absolute file names of the various
12120 ;; programs so that everything works out-of-the-box.
12121 (emacs-substitute-variables
12122 "youtube-dl.el"
12123 ("youtube-dl-program"
12124 (string-append youtube-dl "/bin/youtube-dl")))))))))
12125 (home-page "https://github.com/skeeto/youtube-dl-emacs/")
12126 (synopsis "Emacs youtube-dl download manager")
12127 (description "This package manages a video download queue for
12128 @command{youtube-dl}, which serves as the back end. It manages a single
12129 @command{youtube-dl} subprocess, downloading one video at a time. New videos
12130 can be queued at any time.")
12131 (license license:unlicense))))
12132
12133 (define-public emacs-org-web-tools
12134 (package
12135 (name "emacs-org-web-tools")
12136 (version "1.0")
12137 (source
12138 (origin
12139 (method git-fetch)
12140 (uri (git-reference
12141 (url "https://github.com/alphapapa/org-web-tools")
12142 (commit version)))
12143 (file-name (git-file-name name version))
12144 (sha256
12145 (base32
12146 "0kak9h5ny00d39gnwspv53nadnag01brw2fq9zk5wpfc91h9bjng"))))
12147 (build-system emacs-build-system)
12148 (propagated-inputs
12149 `(("emacs-dash" ,emacs-dash)
12150 ("emacs-esxml" ,emacs-esxml)
12151 ("emacs-s" ,emacs-s)))
12152 (inputs
12153 `(("pandoc" ,ghc-pandoc)))
12154 (arguments
12155 `(#:phases
12156 (modify-phases %standard-phases
12157 (add-after 'unpack 'patch-exec-paths
12158 (lambda* (#:key inputs #:allow-other-keys)
12159 (let ((pandoc (assoc-ref inputs "pandoc")))
12160 (substitute* "org-web-tools.el"
12161 (("\"pandoc\"") (string-append "\"" pandoc "/bin/pandoc\"")))
12162 #t))))))
12163 (home-page "https://github.com/alphapapa/org-web-tools")
12164 (synopsis "Display/Process web page as Org-mode content")
12165 (description "This package contains library functions and commands useful
12166 for retrieving web page content and processing it into Org-mode content.
12167
12168 For example, you can copy a URL to the clipboard or kill-ring, then run a
12169 command that downloads the page, isolates the “readable” content with
12170 @command{eww-readable}, converts it to Org-mode content with Pandoc, and
12171 displays it in an Org-mode buffer. Another command does all of that but
12172 inserts it as an Org entry instead of displaying it in a new buffer.")
12173 (license license:gpl3+)))
12174
12175 (define-public emacs-blimp
12176 (let ((commit "e420763d6d18b5d1be552cdbc47f91418343db03"))
12177 (package
12178 (name "emacs-blimp")
12179 (version (git-version "0.0.0" "1" commit))
12180 (source
12181 (origin
12182 (method git-fetch)
12183 (uri (git-reference
12184 (url "https://github.com/walseb/blimp")
12185 (commit commit)))
12186 (file-name (git-file-name name version))
12187 (sha256
12188 (base32
12189 "09wmhpym516b81dfq8smdmysh1fn610dzlyvyl2rkx8600f0fizd"))))
12190 (build-system emacs-build-system)
12191 (propagated-inputs
12192 `(("emacs-eimp" ,emacs-eimp)))
12193 (home-page "https://github.com/walseb/blimp")
12194 (synopsis "Emacs wrapper around all Imagemagick commands")
12195 (description "Blimp (Bustling Image Manipulation Package) is a complete
12196 wrapper around all Imagemagick commands with descriptions, autocompletion (for
12197 some commands) and hints displayed in prompt using @command{eimp.el} to
12198 execute its commands and resize images.")
12199 (license license:gpl3+))))