gnu: Add emacs-evil-org.
[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 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 <ambrevar@gmail.com>
38 ;;;
39 ;;; This file is part of GNU Guix.
40 ;;;
41 ;;; GNU Guix is free software; you can redistribute it and/or modify it
42 ;;; under the terms of the GNU General Public License as published by
43 ;;; the Free Software Foundation; either version 3 of the License, or (at
44 ;;; your option) any later version.
45 ;;;
46 ;;; GNU Guix is distributed in the hope that it will be useful, but
47 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
48 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
49 ;;; GNU General Public License for more details.
50 ;;;
51 ;;; You should have received a copy of the GNU General Public License
52 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
53
54 (define-module (gnu packages emacs)
55 #:use-module ((guix licenses) #:prefix license:)
56 #:use-module (guix packages)
57 #:use-module (guix download)
58 #:use-module (guix git-download)
59 #:use-module (guix gexp)
60 #:use-module (guix monads)
61 #:use-module (guix store)
62 #:use-module (guix build-system gnu)
63 #:use-module (guix build-system emacs)
64 #:use-module (guix build-system glib-or-gtk)
65 #:use-module (guix build-system trivial)
66 #:use-module (gnu packages)
67 #:use-module (gnu packages audio)
68 #:use-module (gnu packages bash)
69 #:use-module (gnu packages cmake)
70 #:use-module (gnu packages code)
71 #:use-module (gnu packages databases)
72 #:use-module (gnu packages guile)
73 #:use-module (gnu packages gtk)
74 #:use-module (gnu packages gnome)
75 #:use-module (gnu packages ncurses)
76 #:use-module (gnu packages python)
77 #:use-module (gnu packages tex)
78 #:use-module (gnu packages texinfo)
79 #:use-module (gnu packages tcl)
80 #:use-module (gnu packages tls)
81 #:use-module (gnu packages pkg-config)
82 #:use-module (gnu packages xorg)
83 #:use-module (gnu packages lesstif)
84 #:use-module (gnu packages image)
85 #:use-module (gnu packages linux)
86 #:use-module (gnu packages version-control)
87 #:use-module (gnu packages imagemagick)
88 #:use-module (gnu packages w3m)
89 #:use-module (gnu packages wget)
90 #:use-module (gnu packages autotools)
91 #:use-module (gnu packages base)
92 #:use-module (gnu packages compression)
93 #:use-module (gnu packages xml)
94 #:use-module (gnu packages glib)
95 #:use-module (gnu packages acl)
96 #:use-module (gnu packages mail)
97 #:use-module (gnu packages package-management)
98 #:use-module (gnu packages perl)
99 #:use-module (gnu packages pdf)
100 #:use-module (gnu packages scheme)
101 #:use-module (gnu packages statistics)
102 #:use-module (gnu packages xiph)
103 #:use-module (gnu packages mp3)
104 #:use-module (gnu packages gettext)
105 #:use-module (gnu packages fribidi)
106 #:use-module (gnu packages gd)
107 #:use-module (gnu packages fontutils)
108 #:use-module (gnu packages password-utils)
109 #:use-module (gnu packages xdisorg)
110 #:use-module (guix utils)
111 #:use-module (srfi srfi-1)
112 #:use-module (ice-9 match))
113
114 (define-public emacs
115 (package
116 (name "emacs")
117 (version "26.1")
118 (source (origin
119 (method url-fetch)
120 (uri (string-append "mirror://gnu/emacs/emacs-"
121 version ".tar.xz"))
122 (sha256
123 (base32
124 "0b6k1wq44rc8gkvxhi1bbjxbz3cwg29qbq8mklq2az6p1hjgrx0w"))
125 (patches (search-patches "emacs-exec-path.patch"
126 "emacs-fix-scheme-indent-function.patch"
127 "emacs-source-date-epoch.patch"))
128 (modules '((guix build utils)))
129 (snippet
130 ;; Delete the bundled byte-compiled elisp files and
131 ;; generated autoloads.
132 '(with-directory-excursion "lisp"
133 (for-each delete-file
134 (append (find-files "." "\\.elc$")
135 (find-files "." "loaddefs\\.el$")
136 ;; This is the only "autoloads" file that
137 ;; does not have "*loaddefs.el" name.
138 '("eshell/esh-groups.el")))
139
140 ;; Make sure Tramp looks for binaries in the right places on
141 ;; remote GuixSD machines, where 'getconf PATH' returns
142 ;; something bogus.
143 (substitute* "net/tramp-sh.el"
144 ;; Patch the line after "(defcustom tramp-remote-path".
145 (("\\(tramp-default-remote-path")
146 (format #f "(tramp-default-remote-path ~s ~s ~s ~s "
147 "~/.guix-profile/bin" "~/.guix-profile/sbin"
148 "/run/current-system/profile/bin"
149 "/run/current-system/profile/sbin")))
150
151 ;; Make sure Man looks for C header files in the right
152 ;; places.
153 (substitute* "man.el"
154 (("\"/usr/local/include\"" line)
155 (string-join
156 (list line
157 "\"~/.guix-profile/include\""
158 "\"/var/guix/profiles/system/profile/include\"")
159 " ")))))))
160 (build-system glib-or-gtk-build-system)
161 (arguments
162 `(#:tests? #f ; no check target
163 #:phases
164 (modify-phases %standard-phases
165 (add-before 'configure 'fix-/bin/pwd
166 (lambda _
167 ;; Use `pwd', not `/bin/pwd'.
168 (substitute* (find-files "." "^Makefile\\.in$")
169 (("/bin/pwd")
170 "pwd"))))
171 (add-after 'install 'install-site-start
172 ;; Use 'guix-emacs' in "site-start.el". This way, Emacs packages
173 ;; provided by Guix and installed in
174 ;; ~/.guix-profile/share/emacs/site-lisp/guix.d/PACKAGE-VERSION are
175 ;; automatically found.
176 (lambda* (#:key inputs outputs #:allow-other-keys)
177 (let* ((out (assoc-ref outputs "out"))
178 (lisp-dir (string-append out "/share/emacs/site-lisp")))
179 (copy-file (assoc-ref inputs "guix-emacs.el")
180 (string-append lisp-dir "/guix-emacs.el"))
181 (with-output-to-file (string-append lisp-dir "/site-start.el")
182 (lambda ()
183 (display
184 (string-append "(when (require 'guix-emacs nil t)\n"
185 " (guix-emacs-autoload-packages))\n"))))
186 #t))))))
187 (inputs
188 `(("gnutls" ,gnutls)
189 ("ncurses" ,ncurses)
190
191 ;; TODO: Add the optional dependencies.
192 ("libx11" ,libx11)
193 ("gtk+" ,gtk+)
194 ("libxft" ,libxft)
195 ("libtiff" ,libtiff)
196 ("giflib" ,giflib)
197 ("libjpeg" ,libjpeg-8)
198 ("imagemagick" ,imagemagick)
199 ("acl" ,acl)
200
201 ;; When looking for libpng `configure' links with `-lpng -lz', so we
202 ;; must also provide zlib as an input.
203 ("libpng" ,libpng)
204 ("zlib" ,zlib)
205
206 ("librsvg" ,librsvg)
207 ("libxpm" ,libxpm)
208 ("libxml2" ,libxml2)
209 ("libice" ,libice)
210 ("libsm" ,libsm)
211 ("alsa-lib" ,alsa-lib)
212 ("dbus" ,dbus)
213
214 ;; multilingualization support
215 ("libotf" ,libotf)
216 ("m17n-lib" ,m17n-lib)))
217 (native-inputs
218 `(("guix-emacs.el" ,(search-auxiliary-file "emacs/guix-emacs.el"))
219 ("pkg-config" ,pkg-config)
220 ("texinfo" ,texinfo)))
221
222 (native-search-paths
223 (list (search-path-specification
224 (variable "INFOPATH")
225 (files '("share/info")))))
226
227 (home-page "https://www.gnu.org/software/emacs/")
228 (synopsis "The extensible, customizable, self-documenting text editor")
229 (description
230 "GNU Emacs is an extensible and highly customizable text editor. It is
231 based on an Emacs Lisp interpreter with extensions for text editing. Emacs
232 has been extended in essentially all areas of computing, giving rise to a
233 vast array of packages supporting, e.g., email, IRC and XMPP messaging,
234 spreadsheets, remote server editing, and much more. Emacs includes extensive
235 documentation on all aspects of the system, from basic editing to writing
236 large Lisp programs. It has full Unicode support for nearly all human
237 languages.")
238 (license license:gpl3+)))
239
240 (define-public emacs-minimal
241 ;; This is the version that you should use as an input to packages that just
242 ;; need to byte-compile .el files.
243 (package (inherit emacs)
244 (name "emacs-minimal")
245 (synopsis "The extensible text editor (used only for byte-compilation)")
246 (build-system gnu-build-system)
247 (arguments
248 `(#:configure-flags (list "--with-gnutls=no")
249 ,@(substitute-keyword-arguments (package-arguments emacs)
250 ((#:phases phases)
251 `(modify-phases ,phases
252 (delete 'install-site-start))))))
253 (inputs
254 `(("ncurses" ,ncurses)))
255 (native-inputs
256 `(("pkg-config" ,pkg-config)))))
257
258 (define-public emacs-no-x
259 (package (inherit emacs)
260 (name "emacs-no-x")
261 (synopsis "The extensible, customizable, self-documenting text
262 editor (console only)")
263 (build-system gnu-build-system)
264 (inputs (fold alist-delete
265 (package-inputs emacs)
266 '("libx11" "gtk+" "libxft" "libtiff" "giflib" "libjpeg"
267 "imagemagick" "libpng" "librsvg" "libxpm" "libice"
268 "libsm"
269
270 ;; These depend on libx11, so remove them as well.
271 "libotf" "m17n-lib" "dbus")))))
272
273 (define-public emacs-no-x-toolkit
274 (package (inherit emacs)
275 (name "emacs-no-x-toolkit")
276 (synopsis "The extensible, customizable, self-documenting text
277 editor (without an X toolkit)" )
278 (build-system gnu-build-system)
279 (inputs (append `(("inotify-tools" ,inotify-tools))
280 (alist-delete "gtk+" (package-inputs emacs))))
281 (arguments (append '(#:configure-flags '("--with-x-toolkit=no"))
282 (package-arguments emacs)))))
283
284 (define-public guile-emacs
285 (package (inherit emacs)
286 (name "guile-emacs")
287 (version "20150512.41120e0")
288 (source (origin
289 (method git-fetch)
290 (uri (git-reference
291 (url "git://git.hcoop.net/git/bpt/emacs.git")
292 (commit "41120e0f595b16387eebfbf731fff70481de1b4b")))
293 (file-name (string-append name "-" version "-checkout"))
294 (patches (search-patches "guile-emacs-fix-configure.patch"))
295 (sha256
296 (base32
297 "0lvcvsz0f4mawj04db35p1dvkffdqkz8pkhc0jzh9j9x2i63kcz6"))))
298 (native-inputs
299 `(("autoconf" ,autoconf)
300 ("automake" ,automake)
301 ("guile" ,guile-for-guile-emacs)
302 ,@(package-native-inputs emacs)))
303 (arguments
304 (substitute-keyword-arguments `(;; Build fails if we allow parallel build.
305 #:parallel-build? #f
306 ;; Tests aren't passing for now.
307 #:tests? #f
308 ,@(package-arguments emacs))
309 ((#:phases phases)
310 `(modify-phases ,phases
311 (add-after 'unpack 'autogen
312 (lambda _
313 (zero? (system* "sh" "autogen.sh"))))
314 ;; Build sometimes fails: deps/dispnew.d: No such file or directory
315 (add-before 'build 'make-deps-dir
316 (lambda _
317 (zero? (system* "mkdir" "-p" "src/deps"))))))))))
318
319 \f
320 ;;;
321 ;;; Emacs hacking.
322 ;;;
323
324 (define-public geiser
325 (package
326 (name "geiser")
327 (version "0.10")
328 (source (origin
329 (method url-fetch)
330 (uri (string-append "mirror://savannah/geiser/" version
331 "/geiser-" version ".tar.gz"))
332 (sha256
333 (base32
334 "0pj3l7p8d60c9b4vfprnv6g5l61d74pls4b5dvd84cn4ky9mzwjv"))))
335 (build-system gnu-build-system)
336 (arguments
337 '(#:phases
338 (modify-phases %standard-phases
339 (add-after 'install 'post-install
340 (lambda* (#:key outputs #:allow-other-keys)
341 (symlink "geiser-install.el"
342 (string-append (assoc-ref outputs "out")
343 "/share/emacs/site-lisp/"
344 "geiser-autoloads.el"))
345 #t)))))
346 (inputs `(("guile" ,guile-2.2)))
347 (native-inputs `(("emacs" ,emacs-minimal)))
348 (home-page "https://nongnu.org/geiser/")
349 (synopsis "Collection of Emacs modes for Guile and Racket hacking")
350 (description
351 "Geiser is a collection of Emacs major and minor modes that conspire with
352 one or more Scheme implementations to keep the Lisp Machine Spirit alive. The
353 continuously running Scheme interpreter takes the center of the stage in
354 Geiser. A bundle of Elisp shims orchestrates the dialog between the Scheme
355 implementation, Emacs and, ultimately, the schemer, giving them access to live
356 metadata.")
357 (license license:bsd-3)))
358
359 (define-public paredit
360 (package
361 (name "emacs-paredit")
362 (version "24")
363 (source (origin
364 (method url-fetch)
365 (uri (string-append "http://mumble.net/~campbell/emacs/paredit-"
366 version ".el"))
367 (sha256
368 (base32
369 "0pp3n8q6kc70blqsaw0zlzp6bc327dpgdrjr0cnh7hqg1lras7ka"))))
370 (build-system emacs-build-system)
371 (home-page "http://mumble.net/~campbell/emacs/paredit/")
372 (synopsis "Emacs minor mode for editing parentheses")
373 (description
374 "ParEdit (paredit.el) is a minor mode for performing structured editing
375 of S-expression data. The typical example of this would be Lisp or Scheme
376 source code.
377
378 ParEdit helps **keep parentheses balanced** and adds many keys for moving
379 S-expressions and moving around in S-expressions. Its behavior can be jarring
380 for those who may want transient periods of unbalanced parentheses, such as
381 when typing parentheses directly or commenting out code line by line.")
382 (license license:gpl3+)))
383
384 (define-public git-modes
385 (package
386 (name "emacs-git-modes")
387 (version "1.2.7")
388 (source (origin
389 (method url-fetch)
390 (uri (string-append
391 "https://github.com/magit/git-modes/archive/"
392 version ".tar.gz"))
393 (file-name (string-append name "-" version ".tar.gz"))
394 (sha256
395 (base32
396 "1mzl70s0xyysnjq1j10mc5vn9i022n5vd82kxsgp4xxqq7gc4qnx"))))
397 (build-system emacs-build-system)
398 (home-page "https://github.com/magit/git-modes")
399 (synopsis "Emacs major modes for Git configuration files")
400 (description
401 "This package provides Emacs major modes for editing various Git
402 configuration files, such as .gitattributes, .gitignore, and .git/config.")
403 (license license:gpl3+)))
404
405 (define-public git-modes/old-name
406 (deprecated-package "git-modes" git-modes))
407
408 (define-public emacs-with-editor
409 (package
410 (name "emacs-with-editor")
411 (version "2.7.2")
412 (source (origin
413 (method url-fetch)
414 (uri (string-append
415 "https://github.com/magit/with-editor/archive/v"
416 version ".tar.gz"))
417 (file-name (string-append name "-" version ".tar.gz"))
418 (sha256
419 (base32
420 "1jqi3axcs0cb1pcv1jxxc2a09v6psrm33wwl6hmyshzl8kbxs2mv"))))
421 (build-system emacs-build-system)
422 (propagated-inputs
423 `(("emacs-dash" ,emacs-dash)))
424 (home-page "https://github.com/magit/with-editor")
425 (synopsis "Emacs library for using Emacsclient as EDITOR")
426 (description
427 "This package provides an Emacs library to use the Emacsclient as
428 @code{$EDITOR} of child processes, making sure they know how to call home.
429 For remote processes a substitute is provided, which communicates with Emacs
430 on stdout instead of using a socket as the Emacsclient does.")
431 (license license:gpl3+)))
432
433 (define-public magit
434 (package
435 (name "magit")
436 (version "2.12.1")
437 (source (origin
438 (method url-fetch)
439 (uri (string-append
440 "https://github.com/magit/magit/releases/download/"
441 version "/" name "-" version ".tar.gz"))
442 (sha256
443 (base32
444 "1czzknmhzbggcv3bxl5amvfpp0zrkdwl1x05qarsq6qakvc85xy3"))))
445 (build-system gnu-build-system)
446 (native-inputs `(("texinfo" ,texinfo)
447 ("emacs" ,emacs-minimal)))
448 (inputs
449 `(("git" ,git)
450 ("perl" ,perl)))
451 (propagated-inputs
452 `(("dash" ,emacs-dash)
453 ("ghub" ,emacs-ghub)
454 ("magit-popup" ,emacs-magit-popup)
455 ("with-editor" ,emacs-with-editor)))
456 (arguments
457 `(#:test-target "test"
458 #:tests? #f ; tests are not included in the release
459
460 #:make-flags
461 (list (string-append "PREFIX=" %output)
462 ;; Don't put .el files in a sub-directory.
463 (string-append "lispdir=" %output "/share/emacs/site-lisp")
464 (string-append "DASH_DIR="
465 (assoc-ref %build-inputs "dash")
466 "/share/emacs/site-lisp/guix.d/dash-"
467 ,(package-version emacs-dash))
468 (string-append "GHUB_DIR="
469 (assoc-ref %build-inputs "ghub")
470 "/share/emacs/site-lisp/guix.d/ghub-"
471 ,(package-version emacs-ghub))
472 (string-append "MAGIT_POPUP_DIR="
473 (assoc-ref %build-inputs "magit-popup")
474 "/share/emacs/site-lisp/guix.d/magit-popup-"
475 ,(package-version emacs-magit-popup))
476 (string-append "WITH_EDITOR_DIR="
477 (assoc-ref %build-inputs "with-editor")
478 "/share/emacs/site-lisp/guix.d/with-editor-"
479 ,(package-version emacs-with-editor)))
480
481 #:phases
482 (modify-phases %standard-phases
483 (delete 'configure)
484 (add-before
485 'build 'patch-exec-paths
486 (lambda* (#:key inputs #:allow-other-keys)
487 (let ((perl (assoc-ref inputs "perl")))
488 (substitute* "lisp/magit-sequence.el"
489 (("perl") (string-append perl "/bin/perl")))
490 #t))))))
491 (home-page "https://magit.vc/")
492 (synopsis "Emacs interface for the Git version control system")
493 (description
494 "With Magit, you can inspect and modify your Git repositories with Emacs.
495 You can review and commit the changes you have made to the tracked files, for
496 example, and you can browse the history of past changes. There is support for
497 cherry picking, reverting, merging, rebasing, and other common Git
498 operations.")
499 (license license:gpl3+)))
500
501 (define-public magit-svn
502 (package
503 (name "magit-svn")
504 (version "2.2.0")
505 (source (origin
506 (method url-fetch)
507 (uri (string-append
508 "https://github.com/magit/magit-svn/archive/"
509 version ".tar.gz"))
510 (file-name (string-append name "-" version ".tar.gz"))
511 (sha256
512 (base32
513 "1c3n377v436zaxamlsz04y1ahdhp96x1vd43zaryv4y10m02ba47"))))
514 (build-system trivial-build-system)
515 (native-inputs `(("emacs" ,emacs-minimal)
516 ("tar" ,tar)
517 ("gzip" ,gzip)))
518 (propagated-inputs `(("dash" ,emacs-dash)
519 ("with-editor" ,emacs-with-editor)
520 ("magit" ,magit)))
521 (arguments
522 `(#:modules ((guix build utils)
523 (guix build emacs-utils))
524
525 #:builder
526 (begin
527 (use-modules (guix build utils)
528 (guix build emacs-utils))
529
530 (let* ((tar (string-append (assoc-ref %build-inputs "tar")
531 "/bin/tar"))
532 (PATH (string-append (assoc-ref %build-inputs "gzip")
533 "/bin"))
534 (emacs (string-append (assoc-ref %build-inputs "emacs")
535 "/bin/emacs"))
536 (magit (string-append (assoc-ref %build-inputs "magit")
537 "/share/emacs/site-lisp"))
538 (dash (string-append (assoc-ref %build-inputs "dash")
539 "/share/emacs/site-lisp/guix.d/dash-"
540 ,(package-version emacs-dash)))
541 (with-editor (string-append (assoc-ref %build-inputs "with-editor")
542 "/share/emacs/site-lisp/guix.d/with-editor-"
543 ,(package-version emacs-with-editor)))
544 (source (assoc-ref %build-inputs "source"))
545 (lisp-dir (string-append %output "/share/emacs/site-lisp")))
546 (setenv "PATH" PATH)
547 (system* tar "xvf" source)
548
549 (install-file (string-append ,name "-" ,version "/magit-svn.el")
550 lisp-dir)
551
552 (with-directory-excursion lisp-dir
553 (parameterize ((%emacs emacs))
554 (emacs-generate-autoloads ,name lisp-dir)
555 (setenv "EMACSLOADPATH"
556 (string-append ":" magit ":" dash ":" with-editor))
557 (emacs-batch-eval '(byte-compile-file "magit-svn.el"))))))))
558 (home-page "https://github.com/magit/magit-svn")
559 (synopsis "Git-SVN extension to Magit")
560 (description
561 "This package is an extension to Magit, the Git Emacs mode, providing
562 support for Git-SVN.")
563 (license license:gpl3+)))
564
565 (define-public emacs-magit-popup
566 (package
567 (name "emacs-magit-popup")
568 (version "2.12.3")
569 (source (origin
570 (method url-fetch)
571 (uri (string-append
572 "https://github.com/magit/magit-popup/archive/v"
573 version ".tar.gz"))
574 (file-name (string-append name "-" version ".tar.gz"))
575 (sha256
576 (base32
577 "1kz6vj67awkwf9y2wj6m3l2him3znm08z6bkdvnmfr6rwd96dr39"))))
578 (build-system emacs-build-system)
579 (arguments
580 `(#:phases
581 (modify-phases %standard-phases
582 (add-before 'install 'make-info
583 (lambda _
584 (zero? (system* "make" "info")))))))
585 (native-inputs
586 `(("texinfo" ,texinfo)))
587 (propagated-inputs
588 `(("emacs-dash" ,emacs-dash)))
589 (home-page "https://github.com/magit/magit-popup")
590 (synopsis "Define prefix-infix-suffix command combos")
591 (description
592 "This library implements a generic interface for toggling switches and
593 setting options and then invoking an Emacs command which does something with
594 these arguments. The prototypical use is for the command to call an external
595 process, passing on the arguments as command line arguments.")
596 (license license:gpl3+)))
597
598 (define-public emacs-ghub
599 (package
600 (name "emacs-ghub")
601 (version "2.0.0")
602 (source (origin
603 (method url-fetch)
604 (uri (string-append
605 "https://github.com/magit/ghub/archive/v"
606 version ".tar.gz"))
607 (file-name (string-append name "-" version ".tar.gz"))
608 (sha256
609 (base32
610 "1zrb3xk04a228g2ahx0r02d0d3xskj60q73qavvmm2i56r66cxvc"))))
611 (build-system emacs-build-system)
612 (arguments
613 `(#:phases
614 (modify-phases %standard-phases
615 (add-before 'install 'make-info
616 (lambda _
617 (zero? (system* "make" "info")))))))
618 (native-inputs
619 `(("texinfo" ,texinfo)))
620 (home-page "https://github.com/magit/ghub")
621 (synopsis "Emacs client library for Github API and Gitlab API")
622 (description
623 "This package provides 2 files: @file{ghub.el} and @file{glab.el},
624 which are the libraries that provide basic support for using the Github and
625 Gitlab APIs from Emacs packages. It abstracts access to API resources using
626 only a handful of functions that are not resource-specific.")
627 (license license:gpl3+)))
628
629 (define-public haskell-mode
630 (package
631 (name "haskell-mode")
632 (version "16.1")
633 (source (origin
634 (method url-fetch)
635 (file-name (string-append name "-" version ".tar.gz"))
636 (uri (string-append
637 "https://github.com/haskell/haskell-mode/archive/v"
638 version ".tar.gz"))
639 (sha256
640 (base32 "0g6lcjw7lcgavv3yrd8xjcyqgfyjl787y32r1z14amw2f009m78h"))))
641 (inputs
642 `(("emacs-el-search" ,emacs-el-search) ; for tests
643 ("emacs-stream" ,emacs-stream))) ; for tests
644 (propagated-inputs
645 `(("emacs-dash" ,emacs-dash)))
646 (native-inputs
647 `(("emacs" ,emacs-minimal)
648 ("texinfo" ,texinfo)))
649 (build-system gnu-build-system)
650 (arguments
651 `(#:make-flags (list (string-append "EMACS="
652 (assoc-ref %build-inputs "emacs")
653 "/bin/emacs"))
654 #:modules ((ice-9 match)
655 (srfi srfi-26)
656 ,@%gnu-build-system-modules)
657 #:phases
658 (modify-phases %standard-phases
659 (delete 'configure)
660 (add-before
661 'build 'pre-build
662 (lambda* (#:key inputs #:allow-other-keys)
663 (define (el-dir store-dir)
664 (match (find-files store-dir "\\.el$")
665 ((f1 f2 ...) (dirname f1))
666 (_ "")))
667
668 (let ((sh (string-append (assoc-ref inputs "bash") "/bin/sh")))
669 (define emacs-prefix? (cut string-prefix? "emacs-" <>))
670
671 (setenv "SHELL" "sh")
672 (setenv "EMACSLOADPATH"
673 (string-concatenate
674 (map (match-lambda
675 (((? emacs-prefix? name) . dir)
676 (string-append (el-dir dir) ":"))
677 (_ ""))
678 inputs)))
679 (substitute* (find-files "." "\\.el") (("/bin/sh") sh))
680 (substitute* "tests/haskell-code-conventions.el"
681 ;; Function name recently changed in "emacs-el-search".
682 (("el-search--search-pattern") "el-search-forward")
683 ;; Don't contact home.
684 (("\\(when \\(>= emacs-major-version 25\\)")
685 "(require 'el-search) (when nil"))
686 #t)))
687 (replace
688 'install
689 (lambda* (#:key outputs #:allow-other-keys)
690 (let* ((out (assoc-ref outputs "out"))
691 (el-dir (string-append out "/share/emacs/site-lisp"))
692 (doc (string-append
693 out "/share/doc/haskell-mode-" ,version))
694 (info (string-append out "/share/info")))
695 (define (copy-to-dir dir files)
696 (for-each (lambda (f)
697 (install-file f dir))
698 files))
699
700 (with-directory-excursion "doc"
701 (unless (zero? (system* "makeinfo" "haskell-mode.texi"))
702 (error "makeinfo failed"))
703 (install-file "haskell-mode.info" info))
704 (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md"))
705 (copy-to-dir el-dir (find-files "." "\\.elc?"))
706 ;; These are part of other packages.
707 (with-directory-excursion el-dir
708 (for-each delete-file '("dash.el" "ert.el")))
709 #t))))))
710 (home-page "https://github.com/haskell/haskell-mode")
711 (synopsis "Haskell mode for Emacs")
712 (description
713 "This is an Emacs mode for editing, debugging and developing Haskell
714 programs.")
715 (license license:gpl3+)))
716
717 (define-public flycheck
718 (package
719 (name "emacs-flycheck")
720 (version "31")
721 (source (origin
722 (method url-fetch)
723 (uri (string-append
724 "https://github.com/flycheck/flycheck/releases/download/"
725 version "/flycheck-" version ".tar"))
726 (sha256
727 (base32
728 "01rnwan16m7cyyrfca3c5c60mbj2r3knkpzbhji2fczsf0wns240"))))
729 (build-system emacs-build-system)
730 (propagated-inputs
731 `(("emacs-dash" ,emacs-dash)))
732 (home-page "https://www.flycheck.org")
733 (synopsis "On-the-fly syntax checking")
734 (description
735 "This package provides on-the-fly syntax checking for GNU Emacs. It is a
736 replacement for the older Flymake extension which is part of GNU Emacs, with
737 many improvements and additional features.
738
739 Flycheck provides fully-automatic, fail-safe, on-the-fly background syntax
740 checking for over 30 programming and markup languages with more than 70
741 different tools. It highlights errors and warnings inline in the buffer, and
742 provides an optional IDE-like error list.")
743 (license license:gpl3+))) ;+GFDLv1.3+ for the manual
744
745 \f
746 ;;;
747 ;;; Web browsing.
748 ;;;
749
750 (define-public emacs-w3m
751 ;; Emacs-w3m follows a "rolling release" model from its CVS repo. We could
752 ;; use CVS, sure, but instead we choose to use this Git mirror described on
753 ;; the home page as an "unofficial" mirror.
754 (let ((commit "0dd5691f46d314a84da63f3a7277d721815811a2"))
755 (package
756 (name "emacs-w3m")
757 (version (git-version "1.5" "0" commit))
758 (source (origin
759 (method git-fetch)
760 (uri (git-reference
761 (url "https://github.com/ecbrown/emacs-w3m")
762 (commit commit)))
763 (sha256
764 (base32
765 "02xalyxbrkgl4n8nj7xxkmsbm6lshhwdc8bzs2l4wz3hkpgkj7x4"))))
766 (build-system gnu-build-system)
767 (native-inputs `(("autoconf" ,autoconf)
768 ("texinfo" ,texinfo)
769 ("emacs" ,emacs-minimal)))
770 (inputs `(("w3m" ,w3m)
771 ("imagemagick" ,imagemagick)))
772 (arguments
773 `(#:modules ((guix build gnu-build-system)
774 (guix build utils)
775 (guix build emacs-utils))
776 #:imported-modules (,@%gnu-build-system-modules
777 (guix build emacs-utils))
778 #:configure-flags
779 (let ((out (assoc-ref %outputs "out")))
780 (list (string-append "--with-lispdir="
781 out "/share/emacs/site-lisp")
782 (string-append "--with-icondir="
783 out "/share/images/emacs-w3m")
784 ;; Leave .el files uncompressed, otherwise GC can't
785 ;; identify run-time dependencies. See
786 ;; <http://lists.gnu.org/archive/html/guix-devel/2015-12/msg00208.html>
787 "--without-compress-install"))
788 #:tests? #f ; no check target
789 #:phases
790 (modify-phases %standard-phases
791 (add-after 'unpack 'autoconf
792 (lambda _
793 (zero? (system* "autoconf"))))
794 (add-before 'configure 'support-emacs!
795 (lambda _
796 ;; For some reason 'AC_PATH_EMACS' thinks that 'Emacs 26' is
797 ;; unsupported.
798 (substitute* "configure"
799 (("EMACS_FLAVOR=unsupported")
800 "EMACS_FLAVOR=emacs"))
801 #t))
802 (add-before 'build 'patch-exec-paths
803 (lambda* (#:key inputs outputs #:allow-other-keys)
804 (let ((out (assoc-ref outputs "out"))
805 (w3m (assoc-ref inputs "w3m"))
806 (imagemagick (assoc-ref inputs "imagemagick"))
807 (coreutils (assoc-ref inputs "coreutils")))
808 (make-file-writable "w3m.el")
809 (emacs-substitute-variables "w3m.el"
810 ("w3m-command" (string-append w3m "/bin/w3m"))
811 ("w3m-touch-command"
812 (string-append coreutils "/bin/touch"))
813 ("w3m-icon-directory"
814 (string-append out "/share/images/emacs-w3m")))
815 (make-file-writable "w3m-image.el")
816 (emacs-substitute-variables "w3m-image.el"
817 ("w3m-imagick-convert-program"
818 (string-append imagemagick "/bin/convert"))
819 ("w3m-imagick-identify-program"
820 (string-append imagemagick "/bin/identify")))
821 #t)))
822 (replace 'install
823 (lambda* (#:key outputs #:allow-other-keys)
824 (and (zero? (system* "make" "install" "install-icons"))
825 (with-directory-excursion
826 (string-append (assoc-ref outputs "out")
827 "/share/emacs/site-lisp")
828 (for-each delete-file '("ChangeLog" "ChangeLog.1"))
829 (symlink "w3m-load.el" "w3m-autoloads.el")
830 #t)))))))
831 (home-page "http://emacs-w3m.namazu.org/")
832 (synopsis "Simple Web browser for Emacs based on w3m")
833 (description
834 "Emacs-w3m is an emacs interface for the w3m web browser.")
835 (license license:gpl2+))))
836
837 (define-public emacs-wget
838 (package
839 (name "emacs-wget")
840 (version "0.5.0")
841 (source (origin
842 (method url-fetch)
843 (uri (string-append "mirror://debian/pool/main/w/wget-el/wget-el_"
844 version ".orig.tar.gz"))
845 (sha256
846 (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff"))))
847 (build-system gnu-build-system)
848 (inputs `(("wget" ,wget)))
849 (native-inputs `(("emacs" ,emacs-minimal)))
850 (arguments
851 `(#:modules ((guix build gnu-build-system)
852 (guix build utils)
853 (guix build emacs-utils))
854 #:imported-modules (,@%gnu-build-system-modules
855 (guix build emacs-utils))
856 #:tests? #f ; no check target
857 #:phases
858 (modify-phases %standard-phases
859 (replace 'configure
860 (lambda* (#:key outputs #:allow-other-keys)
861 (substitute* "Makefile"
862 (("/usr/local") (assoc-ref outputs "out"))
863 (("/site-lisp/emacs-wget") "/site-lisp"))
864 #t))
865 (add-before 'build 'patch-exec-paths
866 (lambda* (#:key inputs outputs #:allow-other-keys)
867 (let ((wget (assoc-ref inputs "wget")))
868 (emacs-substitute-variables "wget.el"
869 ("wget-command" (string-append wget "/bin/wget"))))
870 #t))
871 (add-after 'install 'post-install
872 (lambda* (#:key outputs #:allow-other-keys)
873 (emacs-generate-autoloads
874 "wget" (string-append (assoc-ref outputs "out")
875 "/share/emacs/site-lisp/"))
876 #t)))))
877 (home-page "http://www.emacswiki.org/emacs/EmacsWget")
878 (synopsis "Simple file downloader for Emacs based on wget")
879 (description
880 "Emacs-wget is an emacs interface for the wget file downloader.")
881 (license license:gpl2+)))
882
883 \f
884 ;;;
885 ;;; Multimedia.
886 ;;;
887
888 (define-public emms
889 (package
890 (name "emacs-emms")
891 (version "5.0")
892 (source (origin
893 (method url-fetch)
894 (uri (string-append "mirror://gnu/emms/emms-"
895 version ".tar.gz"))
896 (sha256
897 (base32
898 "08f9lj77jlk96grqgjsv63s2i8ywvp4wvnmgmhnslwyx2lsdxza3"))
899 (modules '((guix build utils)))
900 (snippet
901 '(substitute* "Makefile"
902 (("/usr/bin/install-info")
903 ;; No need to use 'install-info' since it would create a
904 ;; useless 'dir' file.
905 "true")
906 (("^INFODIR=.*")
907 ;; Install Info files to $out/share/info, not $out/info.
908 "INFODIR := $(PREFIX)/share/info\n")
909 (("/site-lisp/emms")
910 ;; Install directly in share/emacs/site-lisp, not in a
911 ;; sub-directory.
912 "/site-lisp")
913 (("^all: (.*)\n" _ rest)
914 ;; Build 'emms-print-metadata'.
915 (string-append "all: " rest " emms-print-metadata\n"))))))
916 (build-system gnu-build-system)
917 (arguments
918 `(#:modules ((guix build gnu-build-system)
919 (guix build utils)
920 (guix build emacs-utils))
921 #:imported-modules (,@%gnu-build-system-modules
922 (guix build emacs-utils))
923
924 #:phases
925 (modify-phases %standard-phases
926 (replace 'configure
927 (lambda* (#:key inputs outputs #:allow-other-keys)
928 (let ((out (assoc-ref outputs "out"))
929 (flac (assoc-ref inputs "flac"))
930 (vorbis (assoc-ref inputs "vorbis-tools"))
931 (alsa (assoc-ref inputs "alsa-utils"))
932 (mpg321 (assoc-ref inputs "mpg321"))
933 (mp3info (assoc-ref inputs "mp3info")))
934 ;; Specify the installation directory.
935 (substitute* "Makefile"
936 (("PREFIX=.*$")
937 (string-append "PREFIX := " out "\n")))
938
939 (setenv "SHELL" (which "sh"))
940 (setenv "CC" "gcc")
941
942 ;; Specify the absolute file names of the various
943 ;; programs so that everything works out-of-the-box.
944 (with-directory-excursion "lisp"
945 (emacs-substitute-variables
946 "emms-player-mpg321-remote.el"
947 ("emms-player-mpg321-remote-command"
948 (string-append mpg321 "/bin/mpg321")))
949 (substitute* "emms-player-simple.el"
950 (("\"ogg123\"")
951 (string-append "\"" vorbis "/bin/ogg123\"")))
952 (substitute* "emms-player-simple.el"
953 (("\"mpg321\"")
954 (string-append "\"" mpg321 "/bin/mpg321\"")))
955 (emacs-substitute-variables "emms-info-ogginfo.el"
956 ("emms-info-ogginfo-program-name"
957 (string-append vorbis "/bin/ogginfo")))
958 (emacs-substitute-variables "emms-info-libtag.el"
959 ("emms-info-libtag-program-name"
960 (string-append out "/bin/emms-print-metadata")))
961 (emacs-substitute-variables "emms-info-mp3info.el"
962 ("emms-info-mp3info-program-name"
963 (string-append mp3info "/bin/mp3info")))
964 (emacs-substitute-variables "emms-info-metaflac.el"
965 ("emms-info-metaflac-program-name"
966 (string-append flac "/bin/metaflac")))
967 (emacs-substitute-variables "emms-source-file.el"
968 ("emms-source-file-gnu-find" (which "find")))
969 (substitute* "emms-volume-amixer.el"
970 (("\"amixer\"")
971 (string-append "\"" alsa "/bin/amixer\"")))
972 (substitute* "emms-tag-editor.el"
973 (("\"mp3info\"")
974 (string-append "\"" mp3info "/bin/mp3info\"")))))))
975 (add-before 'install 'pre-install
976 (lambda* (#:key outputs #:allow-other-keys)
977 ;; The 'install' rule expects the target directories to exist.
978 (let* ((out (assoc-ref outputs "out"))
979 (bin (string-append out "/bin"))
980 (man1 (string-append out "/share/man/man1")))
981 (mkdir-p bin)
982 (mkdir-p man1)
983 #t)))
984 (add-after 'install 'post-install
985 (lambda* (#:key outputs #:allow-other-keys)
986 (let ((out (assoc-ref outputs "out")))
987 (symlink "emms-auto.el"
988 (string-append out "/share/emacs/site-lisp/"
989 "emms-autoloads.el"))))))
990 #:tests? #f))
991 (native-inputs `(("emacs" ,emacs-minimal) ;for (guix build emacs-utils)
992 ("texinfo" ,texinfo)))
993 (inputs `(("alsa-utils" ,alsa-utils)
994 ("flac" ,flac) ;for metaflac
995 ("vorbis-tools" ,vorbis-tools)
996 ("mpg321" ,mpg321)
997 ("taglib" ,taglib)
998 ("mp3info" ,mp3info)))
999 (properties '((upstream-name . "emms")))
1000 (synopsis "Emacs Multimedia System")
1001 (description
1002 "EMMS is the Emacs Multimedia System. It is a small front-end which
1003 can control one of the supported external players. Thus, it supports
1004 whatever formats are supported by your music player. It also
1005 supports tagging and playlist management, all behind a clean and
1006 light user interface.")
1007 (home-page "https://www.gnu.org/software/emms/")
1008 (license license:gpl3+)))
1009
1010 (define-public emacs-emms-player-mpv
1011 (package
1012 (name "emacs-emms-player-mpv")
1013 (version "0.1.0")
1014 (source
1015 (origin
1016 (method url-fetch)
1017 (uri (string-append "https://github.com/dochang/emms-player-mpv/archive/"
1018 version ".tar.gz"))
1019 (file-name (string-append name "-" version ".tar.gz"))
1020 (sha256
1021 (base32
1022 "05qwbagc4i7yn7i94r1hdgj6wc5xijy1pxqv08pwsmli9rqj51n9"))))
1023 (build-system emacs-build-system)
1024 (propagated-inputs
1025 `(("emms" ,emms)))
1026 (home-page "https://github.com/dochang/emms-player-mpv/")
1027 (synopsis "Mpv support for EMMS")
1028 (description
1029 "This package provides an EMMS player that uses mpv. It supports pause
1030 and seeking.")
1031 (license license:gpl3+)))
1032
1033 (define-public emacs-emms-mode-line-cycle
1034 (package
1035 (name "emacs-emms-mode-line-cycle")
1036 (version "0.2.5")
1037 (source
1038 (origin
1039 (method url-fetch)
1040 (uri (string-append "https://github.com/momomo5717/emms-mode-line-cycle"
1041 "/archive/" version ".tar.gz"))
1042 (file-name (string-append name "-" version ".tar.gz"))
1043 (sha256
1044 (base32
1045 "0ifszi930pnaxk1x8pcydmvnp06868gc7nfx14q17zbajbx735k6"))))
1046 (build-system emacs-build-system)
1047 (propagated-inputs
1048 `(("emms" ,emms)))
1049 (home-page "https://github.com/momomo5717/emms-mode-line-cycle")
1050 (synopsis "Display the EMMS mode line as a ticker")
1051 (description
1052 "This is a minor mode for updating the EMMS mode-line string cyclically
1053 within a specified width. It is useful for displaying long track titles.")
1054 (license license:gpl3+)))
1055
1056 \f
1057 ;;;
1058 ;;; Miscellaneous.
1059 ;;;
1060
1061 (define-public bbdb
1062 (package
1063 (name "bbdb")
1064 (version "3.1.2")
1065 (source (origin
1066 (method url-fetch)
1067 (uri (string-append "mirror://savannah/bbdb/bbdb-"
1068 version ".tar.gz"))
1069 (sha256
1070 (base32
1071 "1gs16bbpiiy01w9pyg12868r57kx1v3hnw04gmqsmpc40l1hyy05"))
1072 (modules '((guix build utils)))
1073 (snippet
1074 ;; We don't want to build and install the PDF.
1075 '(substitute* "doc/Makefile.in"
1076 (("^doc_DATA = .*$")
1077 "doc_DATA =\n")))))
1078 (build-system gnu-build-system)
1079 (arguments
1080 '(#:phases
1081 (modify-phases %standard-phases
1082 (add-after 'install 'post-install
1083 (lambda* (#:key outputs #:allow-other-keys)
1084 ;; Add an autoloads file with the right name for guix.el.
1085 (let* ((out (assoc-ref outputs "out"))
1086 (site (string-append out "/share/emacs/site-lisp")))
1087 (with-directory-excursion site
1088 (symlink "bbdb-loaddefs.el" "bbdb-autoloads.el")))
1089 #t)))))
1090 (native-inputs `(("emacs" ,emacs-minimal)))
1091 (home-page "https://savannah.nongnu.org/projects/bbdb/")
1092 (synopsis "Contact management utility for Emacs")
1093 (description
1094 "BBDB is the Insidious Big Brother Database for GNU Emacs. It provides
1095 an address book for email and snail mail addresses, phone numbers and the
1096 like. It can be linked with various Emacs mail clients (Message and Mail
1097 mode, Rmail, Gnus, MH-E, and VM). BBDB is fully customizable.")
1098 (license license:gpl3+)))
1099
1100 (define-public emacs-aggressive-indent
1101 (package
1102 (name "emacs-aggressive-indent")
1103 (version "1.8.3")
1104 (source (origin
1105 (method url-fetch)
1106 (uri (string-append "https://elpa.gnu.org/packages/"
1107 "aggressive-indent-" version ".el"))
1108 (sha256
1109 (base32
1110 "0jnzccl50x0wapprgwxinp99pwwa6j43q6msn4gv437j7swy8wnj"))))
1111 (build-system emacs-build-system)
1112 (home-page "https://elpa.gnu.org/packages/aggressive-indent.html")
1113 (synopsis "Minor mode to aggressively keep your code always indented")
1114 (description
1115 "@code{aggressive-indent-mode} is a minor mode that keeps your code
1116 always indented. It reindents after every change, making it more reliable
1117 than @code{electric-indent-mode}.")
1118 (license license:gpl2+)))
1119
1120 (define-public emacs-ag
1121 (package
1122 (name "emacs-ag")
1123 (version "0.47")
1124 (source (origin
1125 (method url-fetch)
1126 (uri (string-append
1127 "https://github.com/Wilfred/ag.el/archive/"
1128 version ".tar.gz"))
1129 (file-name (string-append name "-" version ".tar.gz"))
1130 (sha256
1131 (base32
1132 "1rlmp6wnyhqfg86dbz17r914msp58favn4kd4yrdwyia265a4lar"))))
1133 (build-system emacs-build-system)
1134 (arguments
1135 `(#:phases
1136 (modify-phases %standard-phases
1137 (add-before 'install 'make-info
1138 (lambda _
1139 (with-directory-excursion "docs"
1140 (zero? (system* "make" "info")))))
1141 (add-after 'install 'install-info
1142 (lambda* (#:key outputs #:allow-other-keys)
1143 (let* ((out (assoc-ref outputs "out"))
1144 (info (string-append out "/share/info")))
1145 (install-file "docs/_build/texinfo/agel.info" info)
1146 #t))))))
1147 (native-inputs
1148 `(("python-sphinx" ,python-sphinx)
1149 ("texinfo" ,texinfo)))
1150 (propagated-inputs
1151 `(("dash" ,emacs-dash)
1152 ("s" ,emacs-s)
1153 ;; We need to use 'ag' as the executable on remote systems.
1154 ("the-silver-searcher" ,the-silver-searcher)))
1155 (home-page "https://github.com/Wilfred/ag.el")
1156 (synopsis "Front-end for ag (the-silver-searcher) for Emacs")
1157 (description "This package provides the ability to use the silver
1158 searcher, a code searching tool, sometimes abbreviated to @code{ag}. Features
1159 include version control system awareness, use of Perl compatible regular
1160 expressions, editing the search results directly and searching file names
1161 rather than the contents of files.")
1162 (license license:gpl3+)))
1163
1164 (define-public emacs-async
1165 (package
1166 (name "emacs-async")
1167 (version "1.9.2")
1168 (source (origin
1169 (method url-fetch)
1170 (uri (string-append "https://elpa.gnu.org/packages/async-"
1171 version ".tar"))
1172 (sha256
1173 (base32
1174 "17fnvrj7jww29sav6a6jpizclg4w2962m6h37akpii71gf0vrffw"))))
1175 (build-system emacs-build-system)
1176 (home-page "https://elpa.gnu.org/packages/async.html")
1177 (synopsis "Asynchronous processing in Emacs")
1178 (description
1179 "This package provides the ability to call asynchronous functions and
1180 processes. For example, it can be used to run dired commands (for copying,
1181 moving, etc.) asynchronously using @code{dired-async-mode}. Also it is used
1182 as a library for other Emacs packages.")
1183 (license license:gpl3+)))
1184
1185 (define-public emacs-auctex
1186 (package
1187 (name "emacs-auctex")
1188 (version "12.1.0")
1189 (source
1190 (origin
1191 (method url-fetch)
1192 (uri (string-append
1193 "https://elpa.gnu.org/packages/auctex-"
1194 version
1195 ".tar"))
1196 (sha256
1197 (base32
1198 "0iy5x61xqkxaph2hq64sg50l1c6yp6qhzppwadayxkdz00b46sas"))))
1199 (build-system emacs-build-system)
1200 ;; We use 'emacs' because AUCTeX requires dbus at compile time
1201 ;; ('emacs-minimal' does not provide dbus).
1202 (arguments
1203 `(#:emacs ,emacs
1204 #:include '("\\.el$" "^images/" "^latex/" "\\.info$")
1205 #:exclude '("^tests/" "^latex/README")))
1206 (native-inputs
1207 `(("perl" ,perl)))
1208 (home-page "https://www.gnu.org/software/auctex/")
1209 (synopsis "Integrated environment for TeX")
1210 (description
1211 "AUCTeX is a comprehensive customizable integrated environment for
1212 writing input files for TeX, LaTeX, ConTeXt, Texinfo, and docTeX using Emacs
1213 or XEmacs.")
1214 (license license:gpl3+)))
1215
1216 (define-public emacs-autothemer
1217 (package
1218 (name "emacs-autothemer")
1219 (version "0.2.2")
1220 (source
1221 (origin
1222 (method url-fetch)
1223 (uri (string-append "https://github.com/sebastiansturm/autothemer/archive/"
1224 version ".tar.gz"))
1225 (file-name (string-append name "-" version ".tar.gz"))
1226 (sha256
1227 (base32
1228 "0rd28r9wfrbll212am4ih9hrvypx785aff76va2cbfxdwm9kixsa"))))
1229 (build-system emacs-build-system)
1230 (propagated-inputs
1231 `(("emacs-dash" ,emacs-dash)))
1232 (home-page "https://github.com/sebastiansturm/autothemer")
1233 (synopsis "Conveniently create Emacs themes")
1234 (description
1235 "Autothemer provides a thin layer on top of @code{deftheme} and
1236 @code{custom-theme-set-faces} that creates a new custom color theme, based on
1237 a set of simplified face specifications and a user-supplied color palette")
1238 (license license:gpl3+)))
1239
1240 (define-public emacs-howm
1241 (package
1242 (name "emacs-howm")
1243 (version "1.4.4")
1244 (source
1245 (origin
1246 (method url-fetch)
1247 (uri (string-append "http://howm.sourceforge.jp/a/howm-"
1248 version ".tar.gz"))
1249 (sha256
1250 (base32
1251 "0ddm91l6z58j7x59fa966j6q1rg4cinyza4r8ibg80hprn5h31qk"))))
1252 (build-system gnu-build-system)
1253 (native-inputs
1254 `(("emacs" ,emacs-minimal)))
1255 (arguments
1256 `(#:configure-flags
1257 (list (string-append "--with-howmdir=" %output
1258 "/share/emacs/site-lisp/guix.d/howm-" ,version))
1259 #:modules ((guix build gnu-build-system)
1260 ((guix build emacs-build-system) #:prefix emacs:)
1261 (guix build utils))
1262 #:imported-modules (,@%gnu-build-system-modules
1263 (guix build emacs-build-system)
1264 (guix build emacs-utils))
1265 #:phases
1266 (modify-phases %standard-phases
1267 (add-after 'rename-lispdir 'make-autoloads
1268 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
1269 (home-page "http://howm.osdn.jp/")
1270 (synopsis "Note-taking tool for Emacs")
1271 (description "Howm is a note-taking tool for Emacs. Like
1272 code@{emacs-wiki.el}, it facilitates using hyperlinks and doing full-text
1273 searches. Unlike code@{emacs-wiki.el}, it can be combined with any format.")
1274 (license license:gpl1+)))
1275
1276 (define-public emacs-calfw
1277 (package
1278 (name "emacs-calfw")
1279 (version "1.5")
1280 (source
1281 (origin
1282 (method url-fetch)
1283 (uri (string-append
1284 "https://github.com/kiwanami/emacs-calfw/archive/v"
1285 version ".tar.gz"))
1286 (file-name (string-append name "-" version ".tar.gz"))
1287 (sha256
1288 (base32
1289 "17ssg8gx66yp63nhygjq2r6kgl4h45cacmrxsxs9f0lrfcx37k0l"))))
1290 (build-system emacs-build-system)
1291 (propagated-inputs
1292 `(("emacs-howm" ,emacs-howm)))
1293 (home-page "https://github.com/kiwanami/emacs-calfw/")
1294 (synopsis "Calendar framework for Emacs")
1295 (description
1296 "This package displays a calendar view with various schedule data in the
1297 Emacs buffer.")
1298 (license license:gpl3+)))
1299
1300 (define-public emacs-direnv
1301 (package
1302 (name "emacs-direnv")
1303 (version "1.2.0")
1304 (source
1305 (origin
1306 (method url-fetch)
1307 (uri (string-append
1308 "https://github.com/wbolster/emacs-direnv/archive/"
1309 version ".tar.gz"))
1310 (file-name (string-append name "-" version ".tar.gz"))
1311 (sha256
1312 (base32
1313 "0m9nxawklhiiysyibzzhh2zkxgq1fskqvaqb06f7r8dnhabfy9fr"))))
1314 (build-system emacs-build-system)
1315 (propagated-inputs
1316 `(("dash" ,emacs-dash)
1317 ("with-editor" ,emacs-with-editor)))
1318 (home-page "https://github.com/wbolster/emacs-direnv")
1319 (synopsis "Direnv integration for Emacs")
1320 (description
1321 "This package provides support for invoking direnv to get the environment
1322 for the current file and updating the environment within Emacs to match.
1323
1324 Direnv can be invoked manually, and a global minor mode is included that will
1325 update the environment when the active buffer changes.
1326
1327 Using emacs-direnv means that programs started from Emacs will use the
1328 environment set through Direnv.")
1329 (license license:gpl3+)))
1330
1331 (define-public emacs-ggtags
1332 (package
1333 (name "emacs-ggtags")
1334 (version "0.8.12")
1335 (source
1336 (origin
1337 (method url-fetch)
1338 (uri (string-append "http://elpa.gnu.org/packages/ggtags-"
1339 version ".el"))
1340 (sha256
1341 (base32
1342 "0ny3llk021g6r0s75xdm4hzpbxv393ddm2r6f2xdk8kqnq4gnirp"))))
1343 (build-system emacs-build-system)
1344 (home-page "https://github.com/leoliu/ggtags")
1345 (synopsis "Frontend to the GNU Global source code tagging system")
1346 (description "@code{ggtags} provides a frontend to the GNU Global source
1347 code tagging system.
1348
1349 Features:
1350
1351 @itemize
1352 @item Build on @code{compile.el} for asynchronicity and its large feature-set.
1353 @item Automatically update Global's tag files when needed with tuning for
1354 large source trees.
1355 @item Intuitive navigation among multiple matches with mode-line display of
1356 current match, total matches and exit status.
1357 @item Read tag with completion.
1358 @item Show definition at point.
1359 @item Jump to #include files.
1360 @item Support search history and saving a search to register/bookmark.
1361 @item Query replace.
1362 @item Manage Global's environment variables on a per-project basis.
1363 @item Highlight (definition) tag at point.
1364 @item Abbreviated display of file names.
1365 @item Support all Global search backends: @code{grep}, @code{idutils}, etc.
1366 @item Support exuberant ctags @url{http://ctags.sourceforge.net/} and
1367 @code{pygments} backend.
1368 @item Support all Global's output formats: @code{grep}, @code{ctags-x},
1369 @code{cscope} etc.
1370 @item Support projects on remote hosts (e.g. via @code{tramp}).
1371 @item Support eldoc.
1372 @item Search @code{GTAGSLIBPATH} for references and symbols.
1373 @end itemize\n")
1374 (license license:gpl3+)))
1375
1376 (define-public emacs-go-mode
1377 (package
1378 (name "emacs-go-mode")
1379 (version "1.5.0")
1380 (source (origin
1381 (method url-fetch)
1382 (uri (string-append "https://github.com/dominikh/go-mode.el/"
1383 "archive/v" version ".tar.gz"))
1384 (file-name (string-append name "-" version ".tar.gz"))
1385 (sha256
1386 (base32
1387 "1adngbjyb8qnwg7n6r2y31djw9j6qf3b9fi63zd85035q7x4ljnm"))))
1388 (build-system emacs-build-system)
1389 (home-page "https://github.com/dominikh/go-mode.el")
1390 (synopsis "Go mode for Emacs")
1391 (description
1392 "This package provides go-mode, an Emacs mode for working with software
1393 written in the Go programming language.")
1394 (license license:bsd-3)))
1395
1396 (define-public emacs-google-maps
1397 (package
1398 (name "emacs-google-maps")
1399 (version "1.0.0")
1400 (source (origin
1401 (method url-fetch)
1402 (uri (string-append "https://github.com/jd/google-maps.el/"
1403 "archive/" version ".tar.gz"))
1404 (file-name (string-append name "-" version ".tar.gz"))
1405 (sha256
1406 (base32
1407 "014bxapm4d8vjxbzrfjdpsavxyfx981mlcb10aq5rmigr6il8ybs"))))
1408 (build-system emacs-build-system)
1409 (home-page "https://github.com/jd/google-maps.el")
1410 (synopsis "Access Google Maps from Emacs")
1411 (description "The @code{google-maps} package allows to display Google
1412 Maps directly inside Emacs.")
1413 (license license:gpl3+)))
1414
1415 (define-public emacs-graphviz-dot-mode
1416 (let ((commit "fdaabbcc95d9156e3dadc84f81a4750c5b692580")
1417 (revision "1"))
1418 (package
1419 (name "emacs-graphviz-dot-mode")
1420 (version (string-append "0.3.10-" revision "."
1421 (string-take commit 7)))
1422 (source (origin
1423 (method git-fetch)
1424 (uri (git-reference
1425 (url "https://github.com/ppareit/graphviz-dot-mode.git")
1426 (commit commit)))
1427 (file-name (string-append name "-" version "-checkout"))
1428 (sha256
1429 (base32
1430 "1s1qh5r0xp6hs0rl5yz5mkmjhpg04bh449c7vgjbb1pjsl1dl714"))))
1431 (build-system emacs-build-system)
1432 (arguments
1433 `(#:phases
1434 (modify-phases %standard-phases
1435 (add-before 'install 'make-info
1436 (lambda* (#:key inputs #:allow-other-keys)
1437 (with-directory-excursion "texinfo"
1438 (substitute* "Makefile"
1439 (("\\/usr\\/bin\\/gzip")
1440 (string-append (assoc-ref inputs "gzip") "/bin/gzip")))
1441 (zero?
1442 (system* "make"
1443 "clean"
1444 "info"
1445 (string-append "TEXINFODIR="
1446 (assoc-ref inputs "texinfo")
1447 "/bin"))))))
1448 (add-after 'install 'install-info
1449 (lambda* (#:key outputs #:allow-other-keys)
1450 (let* ((out (assoc-ref outputs "out"))
1451 (info (string-append out "/share/info")))
1452 (install-file "texinfo/graphviz-dot-mode.info.gz" info)
1453 #t))))))
1454 (native-inputs
1455 `(("texinfo" ,texinfo)
1456 ("gzip" ,gzip)))
1457 (home-page "http://ppareit.github.com/graphviz-dot-mode")
1458 (synopsis "Major mode for editing Graphviz Dot files")
1459 (description
1460 "This Emacs packages helps you to create @file{.dot} or @file{.gv}
1461 files using the dot syntax, and use Graphviz to convert these files to
1462 diagrams.")
1463 (license license:gpl2+))))
1464
1465 (define-public emacs-mmm-mode
1466 (package
1467 (name "emacs-mmm-mode")
1468 (version "0.5.5")
1469 (source
1470 (origin
1471 (method url-fetch)
1472 (uri (string-append
1473 "https://github.com/purcell/mmm-mode/archive/"
1474 version ".tar.gz"))
1475 (file-name (string-append name "-" version ".tar.gz"))
1476 (sha256
1477 (base32
1478 "0c5ing3hcr74k78hqhrfwiv6m3n8hqfrw89j2x34vf60f4iyqzqc"))))
1479 (build-system gnu-build-system)
1480 (arguments
1481 '(#:phases
1482 (modify-phases %standard-phases
1483 (add-after 'unpack 'autogen
1484 (lambda _
1485 (zero? (system* "sh" "autogen.sh")))))))
1486 (native-inputs
1487 `(("autoconf" ,autoconf)
1488 ("automake" ,automake)
1489 ("emacs" ,emacs-minimal)
1490 ("texinfo" ,texinfo)))
1491 (home-page "https://github.com/purcell/mmm-mode")
1492 (synopsis "Allow multiple major modes in an Emacs buffer")
1493 (description
1494 "MMM Mode is a minor mode that allows multiple major modes to coexist in a
1495 single buffer.")
1496 (license license:gpl3+)))
1497
1498 (define-public emacs-tablist
1499 (package
1500 (name "emacs-tablist")
1501 (version "0.70")
1502 (source (origin
1503 (method url-fetch)
1504 (uri (string-append
1505 "https://github.com/politza/tablist/archive/v"
1506 version ".tar.gz"))
1507 (file-name (string-append name "-" version ".tar.gz"))
1508 (sha256
1509 (base32
1510 "177d6s7ym1mwz1nhnl09r14z3n093g9a2szm97xsaig0c204xz9c"))))
1511 (build-system emacs-build-system)
1512 (home-page "https://github.com/politza/tablist")
1513 (synopsis "Extension for @code{tabulated-list-mode}")
1514 (description "Tablist is the Emacs package that provides several
1515 additional features to @code{tabulated-list-mode}: it adds marks,
1516 filters, new key bindings and faces. It can be enabled by
1517 @code{tablist-mode} or @code{tablist-minor-mode} commands.")
1518 (license license:gpl3+)))
1519
1520 (define-public emacs-pdf-tools
1521 (package
1522 (name "emacs-pdf-tools")
1523 (version "0.80")
1524 (source (origin
1525 (method url-fetch)
1526 (uri (string-append
1527 "https://github.com/politza/pdf-tools/archive/v"
1528 version ".tar.gz"))
1529 (file-name (string-append name "-" version ".tar.gz"))
1530 (sha256
1531 (base32
1532 "06imydn3a92vr57azpn1zhqc14kxyyslmyi9ldsyphan9b724gb6"))))
1533 (build-system gnu-build-system)
1534 (arguments
1535 `(#:tests? #f ; there are no tests
1536 #:modules ((guix build gnu-build-system)
1537 ((guix build emacs-build-system) #:prefix emacs:)
1538 (guix build utils)
1539 (guix build emacs-utils))
1540 #:imported-modules (,@%gnu-build-system-modules
1541 (guix build emacs-build-system)
1542 (guix build emacs-utils))
1543 #:phases
1544 (modify-phases %standard-phases
1545 ;; Build server side using 'gnu-build-system'.
1546 (add-after 'unpack 'enter-server-dir
1547 (lambda _ (chdir "server") #t))
1548 (add-after 'enter-server-dir 'autogen
1549 (lambda _
1550 (zero? (system* "bash" "autogen.sh"))))
1551
1552 ;; Build emacs side using 'emacs-build-system'.
1553 (add-after 'compress-documentation 'enter-lisp-dir
1554 (lambda _ (chdir "../lisp") #t))
1555 (add-after 'enter-lisp-dir 'emacs-patch-variables
1556 (lambda* (#:key outputs #:allow-other-keys)
1557 ;; Set path to epdfinfo program.
1558 (emacs-substitute-variables "pdf-info.el"
1559 ("pdf-info-epdfinfo-program"
1560 (string-append (assoc-ref outputs "out")
1561 "/bin/epdfinfo")))
1562 ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto
1563 ;; upgrading" that pdf-tools tries to perform.
1564 (emacs-substitute-variables "pdf-tools.el"
1565 ("pdf-tools-handle-upgrades" '()))))
1566 (add-after 'emacs-patch-variables 'emacs-set-emacs-load-path
1567 (assoc-ref emacs:%standard-phases 'set-emacs-load-path))
1568 (add-after 'emacs-set-emacs-load-path 'emacs-install
1569 (assoc-ref emacs:%standard-phases 'install))
1570 (add-after 'emacs-install 'emacs-build
1571 (assoc-ref emacs:%standard-phases 'build))
1572 (add-after 'emacs-install 'emacs-make-autoloads
1573 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
1574 (native-inputs `(("autoconf" ,autoconf)
1575 ("automake" ,automake)
1576 ("pkg-config" ,pkg-config)
1577 ("emacs" ,emacs-minimal)))
1578 (inputs `(("poppler" ,poppler)
1579 ("cairo" ,cairo)
1580 ("glib" ,glib)
1581 ("libpng" ,libpng)
1582 ("zlib" ,zlib)))
1583 (propagated-inputs `(("tablist" ,emacs-tablist)))
1584 (synopsis "Emacs support library for PDF files")
1585 (description
1586 "PDF Tools is, among other things, a replacement of DocView for PDF
1587 files. The key difference is that pages are not pre-rendered by
1588 e.g. ghostscript and stored in the file-system, but rather created on-demand
1589 and stored in memory.")
1590 (home-page "https://github.com/politza/pdf-tools")
1591 (license license:gpl3+)))
1592
1593 (define-public emacs-dash
1594 (package
1595 (name "emacs-dash")
1596 (version "2.14.1")
1597 (source (origin
1598 (method git-fetch)
1599 (uri (git-reference
1600 (url "https://github.com/magnars/dash.el.git")
1601 (commit version)))
1602 (file-name (git-file-name name version))
1603 (sha256
1604 (base32
1605 "1kzijmjxjxgr7p8clphzvmm47vczckbs8mza9an77c25bn627ywl"))))
1606 (build-system emacs-build-system)
1607 (arguments
1608 `(#:tests? #t
1609 #:test-command '("./run-tests.sh")))
1610 (home-page "https://github.com/magnars/dash.el")
1611 (synopsis "Modern list library for Emacs")
1612 (description "This package provides a modern list API library for Emacs.")
1613 (license license:gpl3+)))
1614
1615 (define-public emacs-bui
1616 (package
1617 (name "emacs-bui")
1618 (version "1.1.0")
1619 (source (origin
1620 (method url-fetch)
1621 (uri (string-append
1622 "https://github.com/alezost/bui.el/archive/v"
1623 version ".tar.gz"))
1624 (file-name (string-append name "-" version ".tar.gz"))
1625 (sha256
1626 (base32
1627 "112k0mq6xpy0r47vk66miw7rxbkv3d06pv3pd0vcmrhcnhnnk486"))))
1628 (build-system emacs-build-system)
1629 (propagated-inputs
1630 `(("dash" ,emacs-dash)))
1631 (home-page "https://github.com/alezost/bui.el")
1632 (synopsis "Buffer interface library for Emacs")
1633 (description
1634 "BUI (Buffer User Interface) is a library for making @code{list} and
1635 @code{info} interfaces to display an arbitrary data of the same
1636 type, for example: packages, buffers, files, etc.")
1637 (license license:gpl3+)))
1638
1639 (define-public emacs-guix
1640 (package
1641 (name "emacs-guix")
1642 (version "0.4")
1643 (source (origin
1644 (method url-fetch)
1645 (uri (string-append "https://github.com/alezost/guix.el"
1646 "/releases/download/v" version
1647 "/emacs-guix-" version ".tar.gz"))
1648 (sha256
1649 (base32
1650 "1nn4b0gd895g0k4fynzrip7z8yb1r3qmvznq9v8a6q7sm84irmqq"))))
1651 (build-system gnu-build-system)
1652 (arguments
1653 `(#:configure-flags
1654 (let ((guix (assoc-ref %build-inputs "guix"))
1655 (geiser (assoc-ref %build-inputs "geiser"))
1656 (dash (assoc-ref %build-inputs "dash"))
1657 (bui (assoc-ref %build-inputs "bui"))
1658 (magit-popup (assoc-ref %build-inputs "magit-popup"))
1659 (edit-indirect (assoc-ref %build-inputs "edit-indirect"))
1660 (site-lisp "/share/emacs/site-lisp"))
1661 (list (string-append "--with-guix-site-dir="
1662 (car (find-files (string-append guix
1663 "/share/guile/site")
1664 (lambda (file stat)
1665 (string-prefix?
1666 "2."
1667 (basename file)))
1668 #:directories? #t)))
1669 (string-append "--with-guix-site-ccache-dir="
1670 (car (find-files (string-append guix "/lib/guile")
1671 (lambda (file stat)
1672 (string-prefix?
1673 "2." (basename file)))
1674 #:directories? #t))
1675 "/site-ccache")
1676 (string-append "--with-geiser-lispdir=" geiser site-lisp)
1677 (string-append "--with-dash-lispdir="
1678 dash site-lisp "/guix.d/dash-"
1679 ,(package-version emacs-dash))
1680 (string-append "--with-bui-lispdir="
1681 bui site-lisp "/guix.d/bui-"
1682 ,(package-version emacs-bui))
1683 (string-append "--with-editindirect-lispdir="
1684 edit-indirect site-lisp "/guix.d/edit-indirect-"
1685 ,(package-version emacs-edit-indirect))
1686 (string-append "--with-popup-lispdir="
1687 magit-popup site-lisp "/guix.d/magit-popup-"
1688 ,(package-version emacs-magit-popup))))))
1689 (native-inputs
1690 `(("pkg-config" ,pkg-config)
1691 ("emacs" ,emacs-minimal)))
1692 (inputs
1693 `(("guile" ,guile-2.2)
1694 ("guix" ,guix)))
1695 (propagated-inputs
1696 `(("geiser" ,geiser)
1697 ("dash" ,emacs-dash)
1698 ("bui" ,emacs-bui)
1699 ("edit-indirect" ,emacs-edit-indirect)
1700 ("magit-popup" ,emacs-magit-popup)))
1701 (home-page "https://alezost.github.io/guix.el/")
1702 (synopsis "Emacs interface for GNU Guix")
1703 (description
1704 "Emacs-Guix provides a visual interface, tools and features for the GNU
1705 Guix package manager. Particularly, it allows you to do various package
1706 management tasks from Emacs. To begin with, run @code{M-x guix-about} or
1707 @code{M-x guix-help} command.")
1708 (license license:gpl3+)))
1709
1710 (define-public emacs-d-mode
1711 (package
1712 (name "emacs-d-mode")
1713 (version "2.0.8")
1714 (source (origin
1715 (method url-fetch)
1716 (uri (string-append
1717 "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode/"
1718 "archive/" version ".tar.gz"))
1719 (file-name (string-append name "-" version ".tar.gz"))
1720 (sha256
1721 (base32
1722 "0knpgi55jm09282aqf8pv55zillpnpzf9f4sgm6gwsmvxf17xaw0"))))
1723 (build-system emacs-build-system)
1724 (propagated-inputs
1725 `(("emacs-undercover" ,emacs-undercover)))
1726 (home-page "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
1727 (synopsis "Emacs major mode for editing D code")
1728 (description "This package provides an Emacs major mode for highlighting
1729 code written in the D programming language. This mode is currently known to
1730 work with Emacs 24 and 25.")
1731 (license license:gpl2+)))
1732
1733 (define-public emacs-keyfreq
1734 (package
1735 (name "emacs-keyfreq")
1736 (version "20160516.716")
1737 (source
1738 (origin
1739 (method url-fetch)
1740 (uri (string-append "http://melpa.org/packages/keyfreq-"
1741 version ".el"))
1742 (sha256
1743 (base32
1744 "008hd7d06qskc3mx0bbdgpgy2pwxr8185fzlyqf9qjg49y74p6g8"))))
1745 (build-system emacs-build-system)
1746 (home-page "https://github.com/dacap/keyfreq")
1747 (synopsis "Track Emacs command frequencies")
1748 (description "@code{emacs-keyfeq} tracks and shows how many times you used
1749 a command.")
1750 (license license:gpl3+)))
1751
1752 (define-public emacs-olivetti
1753 (package
1754 (name "emacs-olivetti")
1755 (version "1.5.7")
1756 (source (origin
1757 (method url-fetch)
1758 (uri (string-append
1759 "https://stable.melpa.org/packages/olivetti-"
1760 version ".el"))
1761 (sha256
1762 (base32
1763 "1yj2ylg46q0pw1xzlv2b0fv9x8p56x25284s9v2smwjr4vf0nwcj"))))
1764 (build-system emacs-build-system)
1765 (home-page "https://github.com/rnkn/olivetti")
1766 (synopsis "Emacs minor mode for a nice writing environment")
1767 (description "This package provides an Emacs minor mode that puts writing
1768 in the center.")
1769 (license license:gpl3+)))
1770
1771 (define-public emacs-undo-tree
1772 (package
1773 (name "emacs-undo-tree")
1774 (version "0.6.6")
1775 (source (origin
1776 (method git-fetch)
1777 (uri (git-reference
1778 (url "http://dr-qubit.org/git/undo-tree.git")
1779 (commit (string-append "release/" version))))
1780 (file-name (string-append name "-" version "-checkout"))
1781 (sha256
1782 (base32
1783 "1hnh2mnmw179gr094r561w6cw1haid0lpvpqvkc24wpj82vphzpa"))))
1784 (build-system emacs-build-system)
1785 (home-page "http://www.dr-qubit.org/emacs.php")
1786 (synopsis "Treat undo history as a tree")
1787 (description "Tree-like interface to Emacs undo system, providing
1788 graphical tree presentation of all previous states of buffer that
1789 allows easily move between them.")
1790 (license license:gpl3+)))
1791
1792 (define-public emacs-s
1793 (package
1794 (name "emacs-s")
1795 (version "1.12.0")
1796 (source (origin
1797 (method url-fetch)
1798 (uri (string-append
1799 "https://github.com/magnars/s.el/archive/"
1800 version ".tar.gz"))
1801 (file-name (string-append name "-" version ".tar.gz"))
1802 (sha256
1803 (base32
1804 "0xbl75863pcm806zg0x1lw7qznzjq2c8320k8js7apyag8q4srvh"))))
1805 (build-system emacs-build-system)
1806 (arguments
1807 `(#:tests? #t
1808 #:emacs ,emacs ; FIXME: tests fail with emacs-minimal
1809 #:test-command '("./run-tests.sh")))
1810 (home-page "https://github.com/magnars/s.el")
1811 (synopsis "Emacs string manipulation library")
1812 (description "This package provides an Emacs library for manipulating
1813 strings.")
1814 (license license:gpl3+)))
1815
1816 (define-public emacs-symon
1817 (package
1818 (name "emacs-symon")
1819 (version "20160630")
1820 (source
1821 (origin
1822 (method url-fetch)
1823 (uri (string-append "https://github.com/zk-phi/symon/archive/"
1824 version ".tar.gz"))
1825 (file-name (string-append name "-" version ".tar.gz"))
1826 (sha256
1827 (base32
1828 "0h4jcgdnq98wc9rj72nwyazq8498yg55jfljiij5qwbn1xf1g5zz"))))
1829 (build-system emacs-build-system)
1830 (home-page "https://github.com/zk-phi/symon")
1831 (synopsis "Tiny graphical system monitor")
1832 (description
1833 "Tiny graphical system monitor for the Emacs minibuffer when idle.")
1834 (license license:gpl2+)))
1835
1836 (define-public emacs-sx
1837 (let ((version "20180212")
1838 (revision "1")
1839 (commit "833435fbf90d1c9e927d165b155f3b1ef39271de"))
1840 (package
1841 (name "emacs-sx")
1842 (version (git-version version revision commit))
1843 (source
1844 (origin
1845 (method git-fetch)
1846 (uri (git-reference
1847 (url "https://github.com/vermiculus/sx.el")
1848 (commit commit)))
1849 (file-name (git-file-name name version))
1850 (sha256
1851 (base32
1852 "1369xaxq1vy3d9yh862ddnhddikdpg2d0wv1ly00pnvdp9v4cqgd"))))
1853 (build-system emacs-build-system)
1854 (propagated-inputs
1855 `(("emacs-markdown-mode" ,emacs-markdown-mode)))
1856 (home-page "https://github.com/vermiculus/sx.el")
1857 (synopsis "Emacs StackExchange client")
1858 (description
1859 "Emacs StackExchange client. Ask and answer questions on
1860 Stack Overflow, Super User, and other StackExchange sites.")
1861 (license license:gpl3+))))
1862
1863 (define-public emacs-f
1864 (package
1865 (name "emacs-f")
1866 (version "0.19.0")
1867 (source (origin
1868 (method url-fetch)
1869 (uri (string-append
1870 "https://github.com/rejeep/f.el/archive/v"
1871 version ".tar.gz"))
1872 (file-name (string-append name "-" version ".tar.gz"))
1873 (sha256
1874 (base32
1875 "05195n80ywa68qykxn7dza6qd59rhakvlzhaa9l6mcpmjf9l9grs"))))
1876 (build-system emacs-build-system)
1877 (propagated-inputs
1878 `(("emacs-s" ,emacs-s)
1879 ("emacs-dash" ,emacs-dash)))
1880 (home-page "https://github.com/rejeep/f.el")
1881 (synopsis "Emacs API for working with files and directories")
1882 (description "This package provides an Emacs library for working with
1883 files and directories.")
1884 (license license:gpl3+)))
1885
1886 (define-public emacs-git-gutter
1887 (package
1888 (name "emacs-git-gutter")
1889 (version "0.90")
1890 (source (origin
1891 (method url-fetch)
1892 (uri (string-append
1893 "https://github.com/syohex/" name "/archive/"
1894 version ".tar.gz"))
1895 (file-name (string-append name "-" version ".tar.gz"))
1896 (sha256
1897 (base32
1898 "1nmhvhpq1l56mj2yq3ag23rw3x4xgnsy8szp30s26l0yjnkhc4qg"))))
1899 (build-system emacs-build-system)
1900 (home-page "https://github.com/syohex/emacs-git-gutter")
1901 (synopsis "See and manage hunks of text in a version control system")
1902 (description
1903 "This package is an Emacs minor mode for displaying and interacting with
1904 hunks of text managed in a version control system. Added modified and deleted
1905 areas can be indicated with symbols on the edge of the buffer, and commands
1906 can be used to move between and perform actions on these hunks.
1907
1908 Git, Mercurial, Subversion and Bazaar are supported, and many parts of the
1909 display and behaviour is easily customisable.")
1910 (license license:gpl3+)))
1911
1912 (define-public emacs-git-timemachine
1913 (package
1914 (name "emacs-git-timemachine")
1915 (version "3.0")
1916 (source
1917 (origin
1918 (method url-fetch)
1919 (uri (string-append "https://github.com/pidu/git-timemachine/"
1920 "archive/" version ".tar.gz"))
1921 (file-name (string-append name "-" version ".tar.gz"))
1922 (sha256
1923 (base32
1924 "1l4g0r69wfrnjsywv03v4bpdd53byg6zdx6mzabfxyymss3kvisa"))))
1925 (build-system emacs-build-system)
1926 (home-page "https://github.com/pidu/git-timemachine")
1927 (synopsis "Step through historic versions of Git-controlled files")
1928 (description "This package enables you to step through historic versions
1929 of files under Git version control from within Emacs.")
1930 (license license:gpl3+)))
1931
1932 (define-public emacs-minitest
1933 (let ((commit "1aadb7865c1dc69c201cecee275751ecec33a182")
1934 (revision "1"))
1935 (package
1936 (name "emacs-minitest")
1937 (version (git-version "0.8.0" revision commit))
1938 (source (origin
1939 (method git-fetch)
1940 (uri (git-reference
1941 (url "https://github.com/arthurnn/minitest-emacs")
1942 (commit commit)))
1943 (file-name (git-file-name name commit))
1944 (sha256
1945 (base32
1946 "1l18zqpdzbnqj2qawq8hj7z7pl8hr8z9d8ihy8jaiqma915hmhj1"))))
1947 (build-system emacs-build-system)
1948 (arguments
1949 '(#:include (cons "^snippets\\/minitest-mode\\/" %default-include)
1950 #:exclude (delete "^[^/]*tests?\\.el$" %default-exclude)))
1951 (propagated-inputs
1952 `(("emacs-dash" ,emacs-dash)
1953 ("emacs-f" ,emacs-f)))
1954 (home-page "https://github.com/arthurnn/minitest-emacs")
1955 (synopsis "Emacs minitest mode")
1956 (description
1957 "The minitest mode provides commands to run the tests for the current
1958 file or line, as well as rerunning the previous tests, or all the tests for a
1959 project.
1960
1961 This package also includes relevant snippets for yasnippet.")
1962 (license license:expat))))
1963
1964 (define-public emacs-el-mock
1965 (package
1966 (name "emacs-el-mock")
1967 (version "1.25.1")
1968 (source
1969 (origin
1970 (method url-fetch)
1971 (uri (string-append "https://github.com/rejeep/el-mock.el/"
1972 "archive/v" version ".tar.gz"))
1973 (file-name (string-append name "-" version ".tar.gz"))
1974 (sha256
1975 (base32
1976 "16xw94n58xxn3zvgyj72bmzs0k5lkvswjmzs79ws9n7rzdivb38b"))))
1977 (build-system emacs-build-system)
1978 (home-page "https://github.com/rejeep/el-mock.el")
1979 (synopsis "Tiny mock and stub framework in Emacs Lisp")
1980 (description
1981 "Emacs Lisp Mock is a library for mocking and stubbing using readable
1982 syntax. Most commonly Emacs Lisp Mock is used in conjunction with Emacs Lisp
1983 Expectations, but it can be used in other contexts.")
1984 (license license:gpl3+)))
1985
1986 (define-public emacs-espuds
1987 (package
1988 (name "emacs-espuds")
1989 (version "0.3.3")
1990 (source
1991 (origin
1992 (method url-fetch)
1993 (uri (string-append "https://github.com/ecukes/espuds/"
1994 "archive/v" version ".tar.gz"))
1995 (file-name (string-append name "-" version ".tar.gz"))
1996 (sha256
1997 (base32
1998 "0xv551376pbmh735a3zjwc9z4qdx6ngj1vpq3xqjpn0a1rwjyn4k"))))
1999 (build-system emacs-build-system)
2000 (propagated-inputs
2001 `(("emacs-s" ,emacs-s)
2002 ("emacs-dash" ,emacs-dash)
2003 ("emacs-f" ,emacs-f)))
2004 (home-page "https://github.com/ecukes/espuds")
2005 (synopsis "Common step definitions for Ecukes")
2006 (description "Espuds is a collection of the most commonly used step
2007 definitions for testing with the Ecukes framework.")
2008 (license license:gpl3+)))
2009
2010 (define-public emacs-spark
2011 (let ((version "20160503") ; no proper tag, use date of commit
2012 (commit "0bf148c3ede3b31d56fd75f347cdd0b0eae60025")
2013 (revision "1"))
2014 (package
2015 (name "emacs-spark")
2016 (version (git-version version revision commit))
2017 (source
2018 (origin
2019 (method git-fetch)
2020 (uri (git-reference
2021 (url "https://github.com/alvinfrancis/spark.git")
2022 (commit commit)))
2023 (file-name (git-file-name name version))
2024 (sha256
2025 (base32
2026 "1ykqr86j17mi95s08d9fp02d7ych1331b04dcqxzxnmpkhwngyj1"))))
2027 (build-system emacs-build-system)
2028 (home-page "https://github.com/alvinfrancis/spark")
2029 (synopsis "Sparkline generation library for Emacs Lisp")
2030 (description "@code{emacs-spark} is a sparkline generation library for
2031 Emacs Lisp. It generates a sparkline string given a list of numbers. It is a
2032 port of @code{cl-spark} to Emacs Lisp.")
2033 (license license:expat))))
2034
2035 (define-public emacs-es-mode
2036 (package
2037 (name "emacs-es-mode")
2038 (version "4.3.0")
2039 (source (origin
2040 (method url-fetch)
2041 (uri (string-append
2042 "https://github.com/dakrone/es-mode/archive/"
2043 version ".tar.gz"))
2044 (file-name (string-append name "-" version ".tar.gz"))
2045 (sha256
2046 (base32
2047 "0y86qdcb3g7fkcb4pzsjh3syzql6w3314hg1wqxq4a8bbk3y0cgr"))))
2048 (build-system emacs-build-system)
2049 (propagated-inputs
2050 ;; The version of org in Emacs 24.5 is not sufficient, and causes tables
2051 ;; to be rendered incorrectly
2052 `(("emacs-dash" ,emacs-dash)
2053 ("emacs-org" ,emacs-org)
2054 ("emacs-spark" ,emacs-spark)))
2055 (home-page "https://github.com/dakrone/es-mode")
2056 (synopsis "Major mode for editing Elasticsearch queries")
2057 (description "@code{es-mode} includes highlighting, completion and
2058 indentation support for Elasticsearch queries. Also supported are
2059 @code{es-mode} blocks in @code{org-mode}, for which the results of queries can
2060 be processed through @code{jq}, or in the case of aggregations, can be
2061 rendered in to a table. In addition, there is an @code{es-command-center}
2062 mode, which displays information about Elasticsearch clusters.")
2063 (license license:gpl3+)))
2064
2065 (define-public emacs-expand-region
2066 (package
2067 (name "emacs-expand-region")
2068 (version "0.11.0")
2069 (source
2070 (origin
2071 (method url-fetch)
2072 (uri (string-append "https://github.com/magnars/expand-region.el"
2073 "/archive/" version ".tar.gz"))
2074 (file-name (string-append name "-" version ".tar.gz"))
2075 (sha256
2076 (base32
2077 "08dy1f411sh9wwww53rjw80idcf3vpki6ba2arl4hl5jcw9651g0"))))
2078 (build-system emacs-build-system)
2079 (home-page "https://github.com/magnars/expand-region.el")
2080 (synopsis "Increase selected region by semantic units")
2081 (description
2082 "Expand region increases the selected region by semantic units. Just
2083 keep pressing the key until it selects what you want. There's also
2084 @code{er/contract-region} if you expand too far.")
2085 (license license:gpl3+)))
2086
2087 (define-public emacs-fill-column-indicator
2088 (package
2089 (name "emacs-fill-column-indicator")
2090 (version "1.81")
2091 (source
2092 (origin
2093 (method url-fetch)
2094 (uri (string-append "https://github.com/alpaker/Fill-Column-Indicator"
2095 "/archive/v" version ".tar.gz"))
2096 (file-name (string-append name "-" version ".tar.gz"))
2097 (sha256
2098 (base32
2099 "1xwyqbjbbicmvhlb85vg4j5snwy1vd7rfk89ws4viws5ljkhhyg8"))))
2100 (build-system emacs-build-system)
2101 (home-page "https://www.emacswiki.org/emacs/FillColumnIndicator")
2102 (synopsis "Graphically indicate the fill column")
2103 (description
2104 "Fill-column-indicator graphically indicates the location of the fill
2105 column by drawing a thin line down the length of the editing window.")
2106 (license license:gpl3+)))
2107
2108 (define-public emacs-grep-a-lot
2109 (package
2110 (name "emacs-grep-a-lot")
2111 (version "1.0.7")
2112 (source (origin
2113 (method git-fetch)
2114 (uri (git-reference
2115 (url "https://github.com/ZungBang/emacs-grep-a-lot.git")
2116 (commit "9f9f645b9e308a0d887b66864ff97d0fca1ba4ad")))
2117 (file-name (string-append name "-" version "-checkout"))
2118 (sha256
2119 (base32
2120 "1f8262mrlinzgnn4m49hbj1hm3c1mvzza24py4b37sasn49546lw"))))
2121 (build-system emacs-build-system)
2122 (home-page "https://github.com/ZungBang/emacs-grep-a-lot")
2123 (synopsis "Enables multiple grep buffers in Emacs")
2124 (description
2125 "This Emacs package allows managing multiple grep buffers.")
2126 (license license:gpl3+)))
2127
2128 (define-public emacs-inf-ruby
2129 (package
2130 (name "emacs-inf-ruby")
2131 (version "2.5.1")
2132 (source
2133 (origin
2134 (method url-fetch)
2135 (uri (string-append "https://github.com/nonsequitur/inf-ruby/"
2136 "archive/" version ".tar.gz"))
2137 (file-name (string-append name "-" version ".tar.gz"))
2138 (sha256
2139 (base32
2140 "0m7323k649ckxql1grsdnf71bjhys7l4qb8wbpphb1mr1q8i4066"))))
2141 (build-system emacs-build-system)
2142 (home-page "https://github.com/nonsequitur/inf-ruby")
2143 (synopsis "Provides a REPL buffer connected to a Ruby subprocess in Emacs")
2144 (description
2145 "@code{inf-ruby} provides a Read Eval Print Loop (REPL) buffer, allowing
2146 for easy interaction with a ruby subprocess. Features include support for
2147 detecting specific uses of Ruby, e.g. when using rails, and using a
2148 appropriate console.")
2149 (license license:gpl3+)))
2150
2151 (define-public emacs-znc
2152 (package
2153 (name "emacs-znc")
2154 (version "0.0.2")
2155 (source
2156 (origin
2157 (method url-fetch)
2158 (uri (string-append "https://marmalade-repo.org/packages/znc-"
2159 version ".el"))
2160 (sha256
2161 (base32
2162 "1d8lqvybgyazin5z0g1c4l3rg1vzrrvf0saqs53jr1zcdg0lianh"))))
2163 (build-system emacs-build-system)
2164 (home-page "https://github.com/sshirokov/ZNC.el")
2165 (synopsis "Make ERC and ZNC get along better")
2166 (description
2167 "This is a thin wrapper around @code{erc} that enables one to use the ZNC
2168 IRC bouncer with ERC.")
2169 (license license:expat)))
2170
2171 (define-public emacs-shut-up
2172 (package
2173 (name "emacs-shut-up")
2174 (version "0.3.2")
2175 (source
2176 (origin
2177 (method url-fetch)
2178 (uri (string-append "https://github.com/cask/shut-up/"
2179 "archive/v" version ".tar.gz"))
2180 (file-name (string-append name "-" version ".tar.gz"))
2181 (sha256
2182 (base32
2183 "09kzrjdkb569iviyg7ydwq44yh84m3f9hkl7jizfrlk0w4gz67d1"))))
2184 (build-system emacs-build-system)
2185 (home-page "https://github.com/cask/shut-up")
2186 (synopsis "Silence Emacs")
2187 (description "This package silences most output of Emacs when running an
2188 Emacs shell script.")
2189 (license license:expat)))
2190
2191 (define-public emacs-undercover
2192 (package
2193 (name "emacs-undercover")
2194 (version "0.6.0")
2195 (source
2196 (origin
2197 (method url-fetch)
2198 (uri (string-append "https://github.com/sviridov/undercover.el/"
2199 "archive/v" version ".tar.gz"))
2200 (file-name (string-append name "-" version ".tar.gz"))
2201 (sha256
2202 (base32
2203 "0f48fi0xnbsqs382rgh85m9mq1wdnr0yib7as9xhwzvq0hsr5m0a"))))
2204 (build-system emacs-build-system)
2205 (propagated-inputs
2206 `(("emacs-dash" ,emacs-dash)
2207 ("emacs-shut-up" ,emacs-shut-up)))
2208 (home-page "https://github.com/sviridov/undercover.el")
2209 (synopsis "Test coverage library for Emacs Lisp")
2210 (description
2211 "Undercover is a test coverage library for software written in Emacs
2212 Lisp.")
2213 (license license:expat)))
2214
2215 (define-public emacs-paren-face
2216 (package
2217 (name "emacs-paren-face")
2218 (version "1.0.0")
2219 (source
2220 (origin
2221 (method url-fetch)
2222 (uri (string-append "https://github.com/tarsius/paren-face/archive/"
2223 version ".tar.gz"))
2224 (file-name (string-append name "-" version ".tar.gz"))
2225 (sha256
2226 (base32
2227 "0y4qrhxa9332vsvr999jg7qj1ymnfgwpf591yi4a4jgg90pm7qnn"))))
2228 (build-system emacs-build-system)
2229 (home-page "https://github.com/tarsius/paren-face")
2230 (synopsis "Face for parentheses in lisp modes")
2231 (description
2232 "This library defines a face named @code{parenthesis} used just for
2233 parentheses. The intended purpose of this face is to make parentheses less
2234 visible in Lisp code by dimming them. Lispers probably don't need to be
2235 constantly made aware of the existence of the parentheses. Dimming them might
2236 be even more useful for people new to lisp who have not yet learned to
2237 subconsciously blend out the parentheses.")
2238 (license license:gpl3+)))
2239
2240 (define-public emacs-page-break-lines
2241 (package
2242 (name "emacs-page-break-lines")
2243 (version "0.11")
2244 (source
2245 (origin
2246 (method url-fetch)
2247 (uri (string-append "https://github.com/purcell/page-break-lines/"
2248 "archive/" version ".tar.gz"))
2249 (file-name (string-append name "-" version ".tar.gz"))
2250 (sha256
2251 (base32
2252 "1zzhziq5kbrm9rxk30kx2glz455fp1blqxg8cpcf6l8xl3w8z4pg"))))
2253 (build-system emacs-build-system)
2254 (home-page "https://github.com/purcell/page-break-lines")
2255 (synopsis "Display page breaks as tidy horizontal lines")
2256 (description
2257 "This library provides a global mode which displays form feed characters
2258 as horizontal rules.")
2259 (license license:gpl3+)))
2260
2261 (define-public emacs-simple-httpd
2262 (package
2263 (name "emacs-simple-httpd")
2264 (version "1.4.6")
2265 (source
2266 (origin
2267 (method url-fetch)
2268 (uri (string-append "https://github.com/skeeto/emacs-web-server/"
2269 "archive/" version ".tar.gz"))
2270 (file-name (string-append name "-" version ".tar.gz"))
2271 (sha256
2272 (base32
2273 "01r7h3imnj4qx1m53a2wjafvbylcyz5f9r2rg2cs7ky3chlg220r"))))
2274 (build-system emacs-build-system)
2275 (home-page "https://github.com/skeeto/emacs-http-server")
2276 (synopsis "HTTP server in pure Emacs Lisp")
2277 (description
2278 "This package provides a simple HTTP server written in Emacs Lisp to
2279 serve files and directory listings.")
2280 (license license:unlicense)))
2281
2282 (define-public emacs-skewer-mode
2283 (package
2284 (name "emacs-skewer-mode")
2285 (version "1.6.2")
2286 (source
2287 (origin
2288 (method url-fetch)
2289 (uri (string-append "https://github.com/skeeto/skewer-mode/archive/"
2290 version ".tar.gz"))
2291 (file-name (string-append name "-" version ".tar.gz"))
2292 (sha256
2293 (base32
2294 "07jpz374j0j964szy3zznrkyja2kpdl3xa87wh7349mzxivqxdx0"))))
2295 (build-system emacs-build-system)
2296 (propagated-inputs
2297 `(("emacs-simple-httpd" ,emacs-simple-httpd)
2298 ("emacs-js2-mode" ,emacs-js2-mode)))
2299 (arguments '(#:include '("\\.el$" "\\.js$" "\\.html$")))
2300 (home-page "https://github.com/skeeto/skewer-mode")
2301 (synopsis "Live web development in Emacs")
2302 (description
2303 "Skewer-mode provides live interaction with JavaScript, CSS, and HTML in
2304 a web browser. Expressions are sent on-the-fly from an editing buffer to be
2305 evaluated in the browser, just like Emacs does with an inferior Lisp process
2306 in Lisp modes.")
2307 (license license:unlicense)))
2308
2309 (define-public emacs-string-inflection
2310 (package
2311 (name "emacs-string-inflection")
2312 (version "1.0.6")
2313 (source (origin
2314 (method git-fetch)
2315 (uri (git-reference
2316 (url "https://github.com/akicho8/string-inflection")
2317 (commit "a150e7bdda60b7824d3a936750ce23f73b0e4edd")))
2318 (file-name (string-append name "-" version "-checkout"))
2319 (sha256
2320 (base32
2321 "1k0sm552iawi49v4zis6dbb81d1rzgky9v0dpv7nj31gnb7bmy7k"))))
2322 (build-system emacs-build-system)
2323 (native-inputs
2324 `(("ert-runner" ,ert-runner)))
2325 (arguments
2326 `(#:tests? #t
2327 #:test-command '("ert-runner")))
2328 (home-page "https://github.com/akicho8/string-inflection")
2329 (synopsis "Convert symbol names between different naming conventions")
2330 (description
2331 "This Emacs package provides convenient methods for manipulating the
2332 naming style of a symbol. It supports different naming conventions such as:
2333
2334 @enumerate
2335 @item camel case
2336 @item Pascal case
2337 @item all upper case
2338 @item lower case separated by underscore
2339 @item etc...
2340 @end enumerate\n")
2341 (license license:gpl2+)))
2342
2343 (define-public emacs-stripe-buffer
2344 (package
2345 (name "emacs-stripe-buffer")
2346 (version "0.2.5")
2347 (source
2348 (origin
2349 (method url-fetch)
2350 (uri (string-append "https://github.com/sabof/stripe-buffer/"
2351 "archive/" version ".tar.gz"))
2352 (file-name (string-append name "-" version ".tar.gz"))
2353 (sha256
2354 (base32
2355 "1p515dq7raly5hw94kiwm3vzsfih0d8af622q4ipvvljsm98aiik"))))
2356 (build-system emacs-build-system)
2357 (home-page "https://github.com/sabof/stripe-buffer/")
2358 (synopsis "Add stripes to list buffers")
2359 (description
2360 "This Emacs package adds faces to add stripes to list buffers and org
2361 tables.")
2362 (license license:gpl2+)))
2363
2364 (define-public emacs-rich-minority
2365 (package
2366 (name "emacs-rich-minority")
2367 (version "1.0.1")
2368 (source
2369 (origin
2370 (method url-fetch)
2371 (uri (string-append "https://github.com/Malabarba/rich-minority/"
2372 "archive/" version ".tar.gz"))
2373 (file-name (string-append name "-" version ".tar.gz"))
2374 (sha256
2375 (base32
2376 "1l0cb0q7kyi88nwfqd542psnkgwnjklpzc5rx32gzd3lkwkrbr8v"))))
2377 (build-system emacs-build-system)
2378 (home-page "https://github.com/Malabarba/rich-minority")
2379 (synopsis "Clean-up and beautify the list of minor modes")
2380 (description
2381 "This Emacs package hides and/or highlights minor modes in the
2382 mode-line.")
2383 (license license:gpl2+)))
2384
2385 (define-public emacs-robe
2386 (package
2387 (name "emacs-robe")
2388 (version "0.8.1")
2389 (source
2390 (origin
2391 (method url-fetch)
2392 (uri (string-append "https://github.com/dgutov/robe/"
2393 "archive/" version ".tar.gz"))
2394 (file-name (string-append name "-" version ".tar.gz"))
2395 (sha256
2396 (base32
2397 "1vp45y99fwj88z04ah4yppz4z568qcib646az6m9az5ar0f203br"))))
2398 (build-system emacs-build-system)
2399 (arguments
2400 '(#:include (cons "^lib\\/" %default-include)))
2401 (propagated-inputs
2402 `(("emacs-inf-ruby" ,emacs-inf-ruby)))
2403 (home-page "https://github.com/dgutov/robe")
2404 (synopsis "Ruby code assistance tool for Emacs")
2405 (description
2406 "Robe can provide information on loaded classes and modules in Ruby code,
2407 as well as where methods are defined. This allows the user to jump to method
2408 definitions, modules and classes, display method documentation and provide
2409 method and constant name completion.")
2410 (license license:gpl3+)))
2411
2412 (define-public emacs-rspec
2413 (package
2414 (name "emacs-rspec")
2415 (version "1.11")
2416 (source
2417 (origin
2418 (method url-fetch)
2419 (uri (string-append "https://github.com/pezra/rspec-mode/"
2420 "archive/v" version ".tar.gz"))
2421 (file-name (string-append name "-" version ".tar.gz"))
2422 (sha256
2423 (base32
2424 "1j0a7ms5516nlg60qfyn730pfxys6acm0rgyxh5xfkpi6jafgpvw"))))
2425 (build-system emacs-build-system)
2426 (home-page "https://github.com/pezra/rspec-mode")
2427 (synopsis "Provides a rspec mode for working with RSpec")
2428 (description
2429 "The Emacs RSpec mode provides keybindings for Ruby source files, e.g. to
2430 verify the spec associated with the current buffer, or entire project, as well
2431 as moving between the spec files, and coresponding code files.
2432
2433 Also included are keybindings for spec files and Dired buffers, as well as
2434 snippets for yasnippet.")
2435 (license license:gpl3+)))
2436
2437 (define-public emacs-smart-mode-line
2438 (package
2439 (name "emacs-smart-mode-line")
2440 (version "2.10.1")
2441 (source
2442 (origin
2443 (method url-fetch)
2444 (uri (string-append "https://github.com/Malabarba/smart-mode-line/"
2445 "archive/" version ".tar.gz"))
2446 (file-name (string-append name "-" version ".tar.gz"))
2447 (sha256
2448 (base32
2449 "0i9wajabrrsjzwd842q0m2611kf0q31p9hg1pdj81177gynkw8l8"))))
2450 (build-system emacs-build-system)
2451 (propagated-inputs
2452 `(("emacs-rich-minority" ,emacs-rich-minority)))
2453 (home-page "https://github.com/Malabarba/smart-mode-line")
2454 (synopsis "Color-coded smart mode-line")
2455 (description
2456 "Smart Mode Line is a mode-line theme for Emacs. It aims to be easy to
2457 read from small to large monitors by using colors, a prefix feature, and smart
2458 truncation.")
2459 (license license:gpl2+)))
2460
2461 (define-public emacs-sr-speedbar
2462 (let ((commit "77a83fb50f763a465c021eca7343243f465b4a47")
2463 (revision "0"))
2464 (package
2465 (name "emacs-sr-speedbar")
2466 (version (git-version "20161025" revision commit))
2467 (source
2468 (origin
2469 (method git-fetch)
2470 (uri (git-reference
2471 (url "https://github.com/emacsorphanage/sr-speedbar.git")
2472 (commit commit)))
2473 (file-name (git-file-name name version))
2474 (sha256
2475 (base32
2476 "0sd12555hk7z721y00kv3crdybvcn1i08wmd148z5imayzibj153"))))
2477 (build-system emacs-build-system)
2478 (home-page "https://www.emacswiki.org/emacs/SrSpeedbar")
2479 (synopsis "Same frame Emacs @code{speedbar}")
2480 (description
2481 "This Emacs package allows you to show @code{M-x speedbar} in the
2482 same frame (in an extra window). You can customize the initial width of
2483 the speedbar window.")
2484 (license license:gpl3+))))
2485
2486 (define-public emacs-shell-switcher
2487 (package
2488 (name "emacs-shell-switcher")
2489 (version "1.0.1")
2490 (source
2491 (origin
2492 (method url-fetch)
2493 (uri (string-append "https://github.com/DamienCassou/shell-switcher"
2494 "/archive/v" version ".tar.gz"))
2495 (file-name (string-append name "-" version ".tar.gz"))
2496 (sha256
2497 (base32
2498 "1c23mfkdqz2g9rixd9smm323vzlvhzz3ng34ambcqjfq309qb2nz"))))
2499 (build-system emacs-build-system)
2500 (home-page "https://github.com/DamienCassou/shell-switcher")
2501 (synopsis "Provide fast switching between shell buffers")
2502 (description
2503 "This package provides commands to quickly switch between shell buffers.")
2504 (license license:gpl3+)))
2505
2506 (define-public emacs-ob-ipython
2507 (package
2508 (name "emacs-ob-ipython")
2509 (version "20150704.8807064693")
2510 (source (origin
2511 (method git-fetch)
2512 (uri (git-reference
2513 (commit "880706469338ab59b5bb7dbe8460016f89755364")
2514 (url "https://github.com/gregsexton/ob-ipython.git")))
2515 (file-name (string-append name "-" version "-checkout"))
2516 (sha256
2517 (base32
2518 "1scf25snbds9ymagpny30ijbsg479r3nm0ih01dy4m9d0g7qryb7"))))
2519 (build-system emacs-build-system)
2520 (propagated-inputs
2521 `(("emacs-f" ,emacs-f)))
2522 (home-page "http://www.gregsexton.org")
2523 (synopsis "Org-Babel functions for IPython evaluation")
2524 (description "This package adds support to Org-Babel for evaluating Python
2525 source code using IPython.")
2526 (license license:gpl3+)))
2527
2528 (define-public emacs-debbugs
2529 (package
2530 (name "emacs-debbugs")
2531 (version "0.15")
2532 (source (origin
2533 (method url-fetch)
2534 (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
2535 version ".tar"))
2536 (sha256
2537 (base32
2538 "1x7jw2ldgkknyxg7x9fhnqkary691icnysmi3xw0g2fjrvllzhqw"))))
2539 (build-system emacs-build-system)
2540 (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
2541 (propagated-inputs
2542 `(("emacs-async" ,emacs-async)))
2543 (home-page "https://elpa.gnu.org/packages/debbugs.html")
2544 (synopsis "Access the Debbugs bug tracker in Emacs")
2545 (description
2546 "This package lets you access the @uref{http://bugs.gnu.org,GNU Bug
2547 Tracker} from within Emacs.
2548
2549 For instance, it defines the command @code{M-x debbugs-gnu} for listing bugs,
2550 and the command @code{M-x debbugs-gnu-search} for bug searching. If you
2551 prefer the listing of bugs as TODO items of @code{org-mode}, you could use
2552 @code{M-x debbugs-org} and related commands.
2553
2554 A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug
2555 Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.")
2556 (license license:gpl3+)))
2557
2558 (define-public emacs-ert-expectations
2559 (package
2560 (name "emacs-ert-expectations")
2561 (version "0.2")
2562 (source
2563 (origin
2564 (method url-fetch)
2565 (uri "https://www.emacswiki.org/emacs/download/ert-expectations.el")
2566 (sha256
2567 (base32
2568 "0cwy3ilsid90abzzjb7ha2blq9kmv3gfp3icwwfcz6qczgirq6g7"))))
2569 (build-system emacs-build-system)
2570 (home-page "https://www.emacswiki.org/emacs/ert-expectations.el")
2571 (synopsis "Simple unit test framework for Emacs Lisp")
2572 (description "@code{emacs-ert-expectations} is a simple unit test
2573 framework for Emacs Lisp to be used with @code{ert}.")
2574 (license license:gpl3+)))
2575
2576 (define-public emacs-deferred
2577 (package
2578 (name "emacs-deferred")
2579 (version "0.5.1")
2580 (home-page "https://github.com/kiwanami/emacs-deferred")
2581 (source (origin
2582 (method git-fetch)
2583 (uri (git-reference
2584 (url home-page)
2585 (commit (string-append "v" version))))
2586 (sha256
2587 (base32
2588 "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"))
2589 (file-name (string-append name "-" version))))
2590 (build-system emacs-build-system)
2591 (arguments
2592 `(#:phases
2593 (modify-phases %standard-phases
2594 (add-after 'unpack 'set-shell
2595 ;; Setting the SHELL environment variable is required for the tests
2596 ;; to find sh.
2597 (lambda _
2598 (setenv "SHELL" (which "sh"))
2599 #t))
2600 (add-before 'check 'fix-makefile
2601 (lambda _
2602 (substitute* "Makefile"
2603 (("\\$\\(CASK\\) exec ") ""))
2604 #t)))
2605 #:tests? #t
2606 #:test-command '("make" "test")))
2607 (native-inputs
2608 `(("emacs-ert-expectations" ,emacs-ert-expectations)
2609 ("emacs-undercover" ,emacs-undercover)
2610 ("ert-runner" ,ert-runner)))
2611 (synopsis "Simple asynchronous functions for Emacs Lisp")
2612 (description
2613 "The @code{deferred.el} library provides support for asynchronous tasks.
2614 The API is almost the same as that of
2615 @uref{https://github.com/cho45/jsdeferred, JSDeferred}, a JavaScript library
2616 for asynchronous tasks.")
2617 (license license:gpl3+)))
2618
2619 (define-public butler
2620 (package
2621 (name "emacs-butler")
2622 (version "0.2.4")
2623 (home-page "https://github.com/AshtonKem/Butler")
2624 (source (origin
2625 (method git-fetch)
2626 (uri (git-reference
2627 (url home-page)
2628 (commit version)))
2629 (sha256
2630 (base32
2631 "1pii9dw4skq7nr4na6qxqasl36av8cwjp71bf1fgppqpcd9z8skj"))
2632 (file-name (string-append name "-" version))))
2633 (build-system emacs-build-system)
2634 (propagated-inputs
2635 `(("emacs-deferred" ,emacs-deferred)))
2636 (synopsis "Emacs client for Jenkins")
2637 (description
2638 "Butler provides an interface to connect to Jenkins continuous
2639 integration servers. Users can specify a list of server in the
2640 @code{butler-server-list} variable and then use @code{M-x butler-status} to
2641 view the build status of those servers' build jobs, and possibly to trigger
2642 build jobs.")
2643 (license license:gpl3+)))
2644
2645 (define-public emacs-company
2646 (package
2647 (name "emacs-company")
2648 (version "0.9.3")
2649 (source
2650 (origin
2651 (method url-fetch)
2652 (uri (string-append "https://github.com/company-mode/company-mode/archive/"
2653 version ".tar.gz"))
2654 (file-name (string-append name "-" version ".tar.gz"))
2655 (sha256
2656 (base32
2657 "1fyrpchpdmvszssy1qmsw41aqpv6q5rybvs1bw00nv9xdhiaq4vh"))))
2658 (build-system emacs-build-system)
2659 (arguments
2660 `(#:phases
2661 (modify-phases %standard-phases
2662 (add-before 'check 'fix-bin-dir
2663 (lambda _
2664 ;; The company-files-candidates-normal-root test looks
2665 ;; for the /bin directory, but the build environment has
2666 ;; no /bin directory. Modify the test to look for the
2667 ;; /tmp directory.
2668 (substitute* "test/files-tests.el"
2669 (("/bin/") "/tmp/"))
2670 #t)))
2671 #:tests? #t
2672 #:test-command '("make" "test-batch")))
2673 (home-page "http://company-mode.github.io/")
2674 (synopsis "Modular text completion framework")
2675 (description
2676 "Company is a modular completion mechanism. Modules for retrieving
2677 completion candidates are called back-ends, modules for displaying them are
2678 front-ends. Company comes with many back-ends, e.g. @code{company-elisp}.
2679 These are distributed in separate files and can be used individually.")
2680 (license license:gpl3+)))
2681
2682 (define-public emacs-company-quickhelp
2683 (package
2684 (name "emacs-company-quickhelp")
2685 (version "2.3.0")
2686 (source
2687 (origin
2688 (method url-fetch)
2689 (uri (string-append
2690 "https://github.com/expez/company-quickhelp/archive/"
2691 version ".tar.gz"))
2692 (file-name (string-append name "-" version ".tar.gz"))
2693 (sha256
2694 (base32
2695 "0xrn2z1dgk5gmkmp2jkn9g83ckk39lqp5pyyv8rl7f6gqvib3qh0"))))
2696 (build-system emacs-build-system)
2697 (propagated-inputs
2698 `(("emacs-pos-tip" ,emacs-pos-tip)
2699 ("emacs-company" ,emacs-company)))
2700 (home-page "https://github.com/expez/company-quickhelp")
2701 (synopsis "Popup documentation for completion candidates")
2702 (description "@code{company-quickhelp} shows documentation for the
2703 completion candidate when using the Company text completion framework.")
2704 (license license:gpl3+)))
2705
2706 (define-public emacs-multiple-cursors
2707 (package
2708 (name "emacs-multiple-cursors")
2709 (version "1.4.0")
2710 (source
2711 (origin
2712 (method url-fetch)
2713 (uri (string-append "https://github.com/magnars/multiple-cursors.el/"
2714 "archive/" version ".tar.gz"))
2715 (file-name (string-append name "-" version ".tar.gz"))
2716 (sha256
2717 (base32
2718 "0hihihlvcvzayg5fnqzcg45fhvlmq6xlq58syy00rjwbry9w389k"))))
2719 (build-system emacs-build-system)
2720 (home-page "https://github.com/magnars/multiple-cursors.el")
2721 (synopsis "Multiple cursors for Emacs")
2722 (description
2723 "This package adds support to Emacs for editing text with multiple
2724 simultaneous cursors.")
2725 (license license:gpl3+)))
2726
2727 (define-public typo
2728 (package
2729 (name "emacs-typo")
2730 (version "1.1")
2731 (home-page "https://github.com/jorgenschaefer/typoel")
2732 (source (origin
2733 (method git-fetch)
2734 (uri (git-reference
2735 (url home-page)
2736 (commit (string-append "v" version))))
2737 (sha256
2738 (base32
2739 "1jhd4grch5iz12gyxwfbsgh4dmz5hj4bg4gnvphccg8dsnni05k2"))
2740 (file-name (string-append name "-" version))))
2741 (build-system emacs-build-system)
2742 (synopsis "Minor mode for typographic editing")
2743 (description
2744 "This package provides two Emacs modes, @code{typo-mode} and
2745 @code{typo-global-mode}. These modes automatically insert Unicode characters
2746 for quotation marks, dashes, and ellipses. For example, typing @kbd{\"}
2747 automatically inserts a Unicode opening or closing quotation mark, depending
2748 on context.")
2749 (license license:gpl3+)))
2750
2751 (define-public emacs-scheme-complete
2752 (let ((commit "9b5cf224bf2a5994bc6d5b152ff487517f1a9bb5"))
2753 (package
2754 (name "emacs-scheme-complete")
2755 (version (string-append "20151223." (string-take commit 8)))
2756 (source
2757 (origin
2758 (file-name (string-append name "-" version))
2759 (method git-fetch)
2760 (uri (git-reference
2761 (url "https://github.com/ashinn/scheme-complete.git")
2762 (commit commit)))
2763 (sha256
2764 (base32
2765 "141wn9l0m33w0g3dqmx8nxbfdny1r5xbr6ak61rsz21bk0qafs7x"))
2766 (patches
2767 (search-patches "emacs-scheme-complete-scheme-r5rs-info.patch"))))
2768 (build-system emacs-build-system)
2769 (home-page "https://github.com/ashinn/scheme-complete")
2770 (synopsis "Smart tab completion for Scheme in Emacs")
2771 (description
2772 "This file provides a single function, @code{scheme-smart-complete},
2773 which you can use for intelligent, context-sensitive completion for any Scheme
2774 implementation in Emacs. To use it just load this file and bind that function
2775 to a key in your preferred mode.")
2776 (license license:public-domain))))
2777
2778 (define-public emacs-scel
2779 (let ((version "20170629")
2780 (revision "1")
2781 (commit "aeea3ad4be9306d14c3a734a4ff54fee10ac135b"))
2782 (package
2783 (name "emacs-scel")
2784 (version (git-version version revision commit))
2785 (source
2786 (origin
2787 (method git-fetch)
2788 (uri (git-reference
2789 (url "https://github.com/supercollider/scel.git")
2790 (commit commit)))
2791 (file-name (string-append name "-" version "-checkout"))
2792 (sha256
2793 (base32
2794 "0jvmzs1lsjyndqshhii2y4mnr3wghai26i3p75453zrpxpg0zvvw"))))
2795 (build-system emacs-build-system)
2796 (arguments
2797 `(#:modules ((guix build emacs-build-system)
2798 ((guix build cmake-build-system) #:prefix cmake:)
2799 (guix build utils))
2800 #:imported-modules (,@%emacs-build-system-modules
2801 (guix build cmake-build-system))
2802 #:phases
2803 (modify-phases %standard-phases
2804 (add-after 'unpack 'configure
2805 (lambda* (#:key outputs #:allow-other-keys)
2806 (substitute* "el/CMakeLists.txt"
2807 (("share/emacs/site-lisp/SuperCollider")
2808 (string-append
2809 "share/emacs/site-lisp/guix.d/scel-" ,version)))
2810 ((assoc-ref cmake:%standard-phases 'configure)
2811 #:outputs outputs
2812 #:configure-flags '("-DSC_EL_BYTECOMPILE=OFF"))))
2813 (add-after 'set-emacs-load-path 'add-el-dir-to-emacs-load-path
2814 (lambda _
2815 (setenv "EMACSLOADPATH"
2816 (string-append (getcwd) "/el:" (getenv "EMACSLOADPATH")))
2817 #t))
2818 (replace 'install (assoc-ref cmake:%standard-phases 'install)))))
2819 (inputs
2820 `(("supercollider" ,supercollider)))
2821 (native-inputs
2822 `(("cmake" ,cmake)))
2823 (home-page "https://github.com/supercollider/scel")
2824 (synopsis "SuperCollider Emacs interface")
2825 (description "@code{emacs-scel} is an Emacs interface to SuperCollider.
2826 SuperCollider is a platform for audio synthesis and algorithmic composition.")
2827 (license license:gpl2+))))
2828
2829 (define-public emacs-mit-scheme-doc
2830 (package
2831 (name "emacs-mit-scheme-doc")
2832 (version "20140203")
2833 (source
2834 (origin
2835 (modules '((guix build utils)))
2836 (snippet
2837 ;; keep only file of interest
2838 '(begin
2839 (for-each delete-file '("dot-emacs.el" "Makefile"))
2840 (install-file "6.945-config/mit-scheme-doc.el" ".")
2841 (delete-file-recursively "6.945-config")))
2842 (file-name (string-append name "-" version ".tar.bz2"))
2843 (method url-fetch)
2844 (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/"
2845 "6.945/dont-panic/emacs-basic-config.tar.bz2"))
2846 (sha256
2847 (base32
2848 "0dqidg2bd66pawqfarvwca93w5gqf9mikn1k2a2rmd9ymfjpziq1"))))
2849 (build-system emacs-build-system)
2850 (inputs `(("mit-scheme" ,mit-scheme)))
2851 (arguments
2852 `(#:phases
2853 (modify-phases %standard-phases
2854 (add-after 'unpack 'configure-doc
2855 (lambda* (#:key inputs #:allow-other-keys)
2856 (let* ((mit-scheme-dir (assoc-ref inputs "mit-scheme"))
2857 (doc-dir (string-append mit-scheme-dir "/share/doc/"
2858 "mit-scheme-"
2859 ,(package-version mit-scheme))))
2860 (substitute* "mit-scheme-doc.el"
2861 (("http://www\\.gnu\\.org/software/mit-scheme/documentation/mit-scheme-ref/")
2862 (string-append "file:" doc-dir "/mit-scheme-ref/")))))))))
2863 (home-page "http://groups.csail.mit.edu/mac/users/gjs/6.945/dont-panic/")
2864 (synopsis "MIT-Scheme documentation lookup for Emacs")
2865 (description
2866 "This package provides a set of Emacs functions to search definitions of
2867 identifiers in the MIT-Scheme documentation.")
2868 (license license:gpl2+)))
2869
2870 (define-public emacs-constants
2871 (package
2872 (name "emacs-constants")
2873 (version "2.6")
2874 (home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
2875 (source
2876 (origin
2877 (file-name (string-append name "-" version ".tar.gz"))
2878 (method url-fetch)
2879 (uri (string-append "https://github.com/fedeinthemix/emacs-constants"
2880 "/archive/v" version ".tar.gz"))
2881 (sha256
2882 (base32
2883 "0pnrpmmxq8mh5h2hbrp5vcym0j0fh6dv3s7c5ccn18wllhzg9g7n"))))
2884 (build-system emacs-build-system)
2885 (synopsis "Enter definition of constants into an Emacs buffer")
2886 (description
2887 "This package provides functions for inserting the definition of natural
2888 constants and units into an Emacs buffer.")
2889 (license license:gpl2+)))
2890
2891 (define-public emacs-tagedit
2892 (package
2893 (name "emacs-tagedit")
2894 (version "1.4.0")
2895 (source
2896 (origin
2897 (method url-fetch)
2898 (uri (string-append "https://github.com/magnars/tagedit/"
2899 "archive/" version ".tar.gz"))
2900 (file-name (string-append name "-" version ".tar.gz"))
2901 (sha256
2902 (base32
2903 "1apfnann4qklfdsmdi7icjsj18x7gwx8d83iqr4z25clszz95xfq"))))
2904 (build-system emacs-build-system)
2905 (propagated-inputs
2906 `(("emacs-s" ,emacs-s)
2907 ("emacs-dash" ,emacs-dash)))
2908 (home-page "https://github.com/magnars/tagedit")
2909 (synopsis "Some paredit-like features for html-mode")
2910 (description
2911 "This package provides a collection of paredit-like functions for editing
2912 in @code{html-mode}.")
2913 (license license:gpl3+)))
2914
2915 (define-public emacs-slime
2916 (package
2917 (name "emacs-slime")
2918 (version "2.20")
2919 (source
2920 (origin
2921 (file-name (string-append name "-" version ".tar.gz"))
2922 (method url-fetch)
2923 (uri (string-append
2924 "https://github.com/slime/slime/archive/v"
2925 version ".tar.gz"))
2926 (sha256
2927 (base32
2928 "086lq5y4pvj9wihy0si02xxvyzpzz8mcg3hz1cvy9zxlyjwzr1gk"))))
2929 (build-system emacs-build-system)
2930 (native-inputs
2931 `(("texinfo" ,texinfo)))
2932 (arguments
2933 `(#:include '("\\.el$" "\\.lisp$" "\\.asd$" "contrib")
2934 #:exclude '("^slime-tests.el" "^contrib/test/"
2935 "^contrib/Makefile$" "^contrib/README.md$")
2936 #:phases
2937 (modify-phases %standard-phases
2938 (add-before 'install 'configure
2939 (lambda* _
2940 (emacs-substitute-variables "slime.el"
2941 ("inferior-lisp-program" "sbcl"))
2942 #t))
2943 (add-before 'install 'install-doc
2944 (lambda* (#:key outputs #:allow-other-keys)
2945 (let* ((out (assoc-ref outputs "out"))
2946 (info-dir (string-append out "/share/info"))
2947 (doc-dir (string-append out "/share/doc/"
2948 ,name "-" ,version))
2949 (doc-files '("doc/slime-refcard.pdf"
2950 "README.md" "NEWS" "PROBLEMS"
2951 "CONTRIBUTING.md")))
2952 (with-directory-excursion "doc"
2953 (substitute* "Makefile"
2954 (("infodir=/usr/local/info")
2955 (string-append "infodir=" info-dir)))
2956 (system* "make" "html/index.html")
2957 (system* "make" "slime.info")
2958 (install-file "slime.info" info-dir)
2959 (copy-recursively "html" (string-append doc-dir "/html")))
2960 (for-each (lambda (f)
2961 (install-file f doc-dir)
2962 (delete-file f))
2963 doc-files)
2964 (delete-file-recursively "doc")
2965 #t))))))
2966 (home-page "https://github.com/slime/slime")
2967 (synopsis "Superior Lisp Interaction Mode for Emacs")
2968 (description
2969 "SLIME extends Emacs with support for interactive programming in
2970 Common Lisp. The features are centered around @command{slime-mode},
2971 an Emacs minor mode that complements the standard @command{lisp-mode}.
2972 While lisp-mode supports editing Lisp source files, @command{slime-mode}
2973 adds support for interacting with a running Common Lisp process
2974 for compilation, debugging, documentation lookup, and so on.")
2975 (license license:gpl2+)))
2976
2977 (define-public emacs-popup
2978 (package
2979 (name "emacs-popup")
2980 (version "0.5.3")
2981 (source (origin
2982 (method url-fetch)
2983 (uri (string-append
2984 "https://github.com/auto-complete/popup-el/archive/v"
2985 version ".tar.gz"))
2986 (file-name (string-append name "-" version ".tar.gz"))
2987 (sha256
2988 (base32
2989 "1yrgfj8y69xmcb6kwgplhq68ndm9410qwh7sd2knnd1gchpphdc0"))))
2990 (build-system emacs-build-system)
2991 (home-page "https://github.com/auto-complete/popup-el")
2992 (synopsis "Visual Popup User Interface for Emacs")
2993 (description
2994 "Popup.el is a visual popup user interface library for Emacs.
2995 This provides a basic API and common UI widgets such as popup tooltips
2996 and popup menus.")
2997 (license license:gpl3+)))
2998
2999 (define-public emacs-god-mode
3000 (let ((commit "6cf0807b6555eb6fcf8387a4e3b667071ef38964")
3001 (revision "1"))
3002 (package
3003 (name "emacs-god-mode")
3004 (version (string-append "20151005.925."
3005 revision "-" (string-take commit 9)))
3006 (source
3007 (origin
3008 (method git-fetch)
3009 (uri (git-reference
3010 (url "https://github.com/chrisdone/god-mode.git")
3011 (commit commit)))
3012 (file-name (string-append name "-" version "-checkout"))
3013 (sha256
3014 (base32
3015 "1am415k4xxcva6y3vbvyvknzc6bma49pq3p85zmpjsdmsp18qdix"))))
3016 (build-system emacs-build-system)
3017 (home-page "https://github.com/chrisdone/god-mode")
3018 (synopsis "Minor mode for entering commands without modifier keys")
3019 (description
3020 "This package provides a global minor mode for entering Emacs commands
3021 without modifier keys. It's similar to Vim's separation of commands and
3022 insertion mode. When enabled all keys are implicitly prefixed with
3023 @samp{C-} (among other helpful shortcuts).")
3024 (license license:gpl3+))))
3025
3026 (define-public emacs-jinja2-mode
3027 (package
3028 (name "emacs-jinja2-mode")
3029 (version "0.2")
3030 (source
3031 (origin
3032 (method url-fetch)
3033 (uri (string-append "https://github.com/paradoxxxzero/jinja2-mode/"
3034 "archive/v" version ".tar.gz"))
3035 (file-name (string-append name "-" version ".tar.gz"))
3036 (sha256
3037 (base32
3038 "0cgxjab1kla2zc2fj7bzib6i7snp08zshandmp9kqcm85l262xpn"))))
3039 (build-system emacs-build-system)
3040 (home-page "https://github.com/paradoxxxzero/jinja2-mode")
3041 (synopsis "Major mode for jinja2")
3042 (description
3043 "Emacs major mode for jinja2 with: syntax highlighting,
3044 sgml/html integration, and indentation (working with sgml).")
3045 (license license:gpl3+)))
3046
3047 (define-public emacs-rfcview
3048 (package
3049 (name "emacs-rfcview")
3050 (version "0.13")
3051 (home-page "http://www.loveshack.ukfsn.org/emacs")
3052 (source (origin
3053 (method url-fetch)
3054 (uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el")
3055 (sha256
3056 (base32
3057 "0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz"))))
3058 (build-system emacs-build-system)
3059 (synopsis "Prettify Request for Comments (RFC) documents")
3060 (description "The Internet Engineering Task Force (IETF) and the Internet
3061 Society (ISOC) publish various Internet-related protocols and specifications
3062 as \"Request for Comments\" (RFC) documents and Internet Standard (STD)
3063 documents. RFCs and STDs are published in a simple text form. This package
3064 provides an Emacs major mode, rfcview-mode, which makes it more pleasant to
3065 read these documents in Emacs. It prettifies the text and adds
3066 hyperlinks/menus for easier navigation. It also provides functions for
3067 browsing the index of RFC documents and fetching them from remote servers or
3068 local directories.")
3069 (license license:gpl3+)))
3070
3071 (define-public emacs-ffap-rfc-space
3072 (package
3073 (name "emacs-ffap-rfc-space")
3074 (version "12")
3075 (home-page "http://user42.tuxfamily.org/ffap-rfc-space/index.html")
3076 (source (origin
3077 (method url-fetch)
3078 (uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el")
3079 (sha256
3080 (base32
3081 "1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck"))))
3082 (build-system emacs-build-system)
3083 (synopsis "Make ffap recognize an RFC with a space before its number")
3084 (description "The Internet Engineering Task Force (IETF) and the
3085 Internet Society (ISOC) publish various Internet-related protocols and
3086 specifications as \"Request for Comments\" (RFC) documents. The
3087 built-in Emacs module \"ffap\" (Find File at Point) has the ability to
3088 recognize names at point which look like \"RFC1234\" and \"RFC-1234\"
3089 and load the appropriate RFC from a remote server. However, it fails
3090 to recognize a name like \"RFC 1234\". This package enhances ffap so
3091 that it correctly finds RFCs even when a space appears before the
3092 number.")
3093 (license license:gpl3+)))
3094
3095 (define-public emacs-org-bullets
3096 (package
3097 (name "emacs-org-bullets")
3098 (version "0.2.4")
3099 (source
3100 (origin
3101 (method url-fetch)
3102 (uri (string-append "https://github.com/sabof/org-bullets/archive/"
3103 version ".tar.gz"))
3104 (file-name (string-append name "-" version ".tar.gz"))
3105 (sha256
3106 (base32
3107 "1dyxvpb73vj80v8br2q9rf255hfphrgaw91fbvwdcd735np9pcnh"))))
3108 (build-system emacs-build-system)
3109 (home-page "https://github.com/sabof/org-bullets")
3110 (synopsis "Show bullets in org-mode as UTF-8 characters")
3111 (description
3112 "This package provides an Emacs minor mode causing bullets in
3113 @code{org-mode} to be rendered as UTF-8 characters.")
3114 (license license:gpl3+)))
3115
3116 (define-public emacs-org-pomodoro
3117 (package
3118 (name "emacs-org-pomodoro")
3119 (version "2.1.0")
3120 (source
3121 (origin
3122 (method url-fetch)
3123 (uri (string-append
3124 "https://github.com/lolownia/org-pomodoro/archive/"
3125 version ".tar.gz"))
3126 (file-name (string-append name "-" version ".tar.gz"))
3127 (sha256
3128 (base32
3129 "1jalsggw3q5kvj353f84x4nl04a5vmq07h75ggppy1627lb31zm4"))))
3130 (build-system emacs-build-system)
3131 (propagated-inputs
3132 `(("emacs-alert" ,emacs-alert)))
3133 (home-page "https://github.com/lolownia/org-pomodoro")
3134 (synopsis "Pomodoro technique for org-mode")
3135 (description "@code{emacs-org-pomodoro} adds very basic support for
3136 Pomodoro technique in Emacs org-mode.
3137
3138 Run @code{M-x org-pomodoro} for the task at point or select one of the
3139 last tasks that you clocked time for. Each clocked-in pomodoro starts
3140 a timer of 25 minutes and after each pomodoro a break timer of 5
3141 minutes is started automatically. Every 4 breaks a long break is
3142 started with 20 minutes. All values are customizable.")
3143 (license license:gpl3+)))
3144
3145 (define-public emacs-org-trello
3146 (package
3147 (name "emacs-org-trello")
3148 (version "0.8.0")
3149 (source (origin
3150 (method url-fetch)
3151 (uri (string-append
3152 "https://github.com/org-trello/org-trello/archive/"
3153 version ".tar.gz"))
3154 (file-name (string-append name "-" version ".tar.gz"))
3155 (sha256
3156 (base32
3157 "0549mnf5cgwn8b8jbl38fljbaxmh1605sv9j8f3lsa95jhs1zpa0"))))
3158 (build-system emacs-build-system)
3159 (propagated-inputs
3160 `(("emacs-dash" ,emacs-dash)
3161 ("emacs-deferred" ,emacs-deferred)
3162 ("emacs-f" ,emacs-f)
3163 ("emacs-helm" ,emacs-helm)
3164 ("emacs-request" ,emacs-request)
3165 ("emacs-s" ,emacs-s)))
3166 (home-page "https://org-trello.github.io")
3167 (synopsis "Emacs minor mode for interacting with Trello")
3168 (description "This package provides an Emacs minor mode to extend
3169 @code{org-mode} with Trello abilities. Trello is an online project
3170 organizer.")
3171 (license license:gpl3+)))
3172
3173 (define-public emacs-zenburn-theme
3174 (package
3175 (name "emacs-zenburn-theme")
3176 (version "2.5")
3177 (source (origin
3178 (method url-fetch)
3179 (uri (string-append
3180 "https://github.com/bbatsov/zenburn-emacs/archive/v"
3181 version ".tar.gz"))
3182 (file-name (string-append name "-" version ".tar.gz"))
3183 (sha256
3184 (base32
3185 "03kfhzgbbbl8ivpzzky6qxw4j9mmp452m1sk7wikxmcalfnix0gn"))))
3186 (build-system emacs-build-system)
3187 (home-page "https://github.com/bbatsov/zenburn-emacs")
3188 (synopsis "Low contrast color theme for Emacs")
3189 (description
3190 "Zenburn theme is a port of the popular Vim Zenburn theme for Emacs.
3191 It is built on top of the custom theme support in Emacs 24 or later.")
3192 (license license:gpl3+)))
3193
3194 (define-public emacs-solarized-theme
3195 (package
3196 (name "emacs-solarized-theme")
3197 (version "1.2.2")
3198 (source (origin
3199 (method url-fetch)
3200 (uri (string-append "https://github.com/bbatsov/solarized-emacs/"
3201 "archive/v" version ".tar.gz"))
3202 (file-name (string-append name "-" version ".tar.gz"))
3203 (sha256
3204 (base32
3205 "1ha3slc6d9wi9ilkhmwrzkvf308n6ph7b0k69pk369s9304awxzx"))))
3206 (build-system emacs-build-system)
3207 (propagated-inputs
3208 `(("emacs-dash" ,emacs-dash)))
3209 (home-page "https://github.com/bbatsov/solarized-emacs")
3210 (synopsis "Port of the Solarized theme for Emacs")
3211 (description
3212 "Solarized for Emacs is a port of the Solarized theme for Vim. This
3213 package provides a light and a dark variant.")
3214 (license license:gpl3+)))
3215
3216 (define-public emacs-ahungry-theme
3217 (package
3218 (name "emacs-ahungry-theme")
3219 (version "1.10.0")
3220 (source
3221 (origin (method url-fetch)
3222 (uri (string-append "https://elpa.gnu.org/packages/ahungry-theme-"
3223 version ".tar"))
3224 (sha256
3225 (base32
3226 "14q5yw56n82qph09bk7wmj5b1snhh9w0nk5s1l7yn9ldg71xq6pm"))))
3227 (build-system emacs-build-system)
3228 (home-page "https://github.com/ahungry/color-theme-ahungry")
3229 (synopsis "Ahungry color theme for Emacs")
3230 (description "Ahungry theme for Emacs provides bright and bold colors.
3231 If you load it from a terminal, you will be able to make use of the
3232 transparent background. If you load it from a GUI, it will default to a
3233 dark background.")
3234 (license license:gpl3+)))
3235
3236 (define-public emacs-2048-game
3237 (package
3238 (name "emacs-2048-game")
3239 (version "20151026.1233")
3240 (source
3241 (origin
3242 (method url-fetch)
3243 (uri (string-append "https://melpa.org/packages/2048-game-"
3244 version ".el"))
3245 (sha256
3246 (base32
3247 "0gy2pvz79whpavp4jmz8h9krzn7brmvv3diixi1d4w51pcdvaldd"))))
3248 (build-system emacs-build-system)
3249 (home-page "https://bitbucket.org/zck/2048.el")
3250 (synopsis "Implementation of the game 2048 in Emacs Lisp")
3251 (description
3252 "This program is an implementation of 2048 for Emacs.
3253 The goal of this game is to create a tile with value 2048. The size of the
3254 board and goal value can be customized.")
3255 (license license:gpl3+)))
3256
3257 (define-public emacs-base16-theme
3258 (package
3259 (name "emacs-base16-theme")
3260 (version "2.1")
3261 (source
3262 (origin
3263 (method url-fetch)
3264 (uri (string-append "https://stable.melpa.org/packages/base16-theme-"
3265 version ".tar"))
3266 (sha256
3267 (base32
3268 "0z6hrwz2jlz6jbr381rcqcqvx6hss5cad352klx07rark7zccacj"))))
3269 (build-system emacs-build-system)
3270 (home-page "https://github.com/belak/base16-emacs")
3271 (synopsis "Base16 color themes for Emacs")
3272 (description
3273 "Base16 provides carefully chosen syntax highlighting and a default set
3274 of sixteen colors suitable for a wide range of applications. Base16 is not a
3275 single theme but a set of guidelines with numerous implementations.")
3276 (license license:expat)))
3277
3278 (define-public emacs-smartparens
3279 (package
3280 (name "emacs-smartparens")
3281 (version "1.11.0")
3282 (source (origin
3283 (method url-fetch)
3284 (uri (string-append
3285 "https://github.com/Fuco1/smartparens/archive/"
3286 version ".tar.gz"))
3287 (file-name (string-append name "-" version ".tar.gz"))
3288 (sha256
3289 (base32
3290 "0q5as813xs8y29i3v2rm97phd6m7xsmmw6hwbvx57gwmi8i1c409"))))
3291 (build-system emacs-build-system)
3292 (propagated-inputs
3293 `(("emacs-dash" ,emacs-dash)
3294 ("emacs-markdown-mode" ,emacs-markdown-mode)))
3295 (home-page "https://github.com/Fuco1/smartparens")
3296 (synopsis "Paredit-like insertion, wrapping and navigation with user
3297 defined pairs")
3298 (description
3299 "Smartparens is a minor mode for Emacs that deals with parens pairs
3300 and tries to be smart about it. It started as a unification effort to
3301 combine functionality of several existing packages in a single,
3302 compatible and extensible way to deal with parentheses, delimiters, tags
3303 and the like. Some of these packages include autopair, textmate,
3304 wrap-region, electric-pair-mode, paredit and others. With the basic
3305 features found in other packages it also brings many improvements as
3306 well as completely new features.")
3307 (license license:gpl3+)))
3308
3309 (define-public emacs-highlight-symbol
3310 (package
3311 (name "emacs-highlight-symbol")
3312 (version "1.3")
3313 (source (origin
3314 (method url-fetch)
3315 (uri (string-append
3316 "https://github.com/nschum/highlight-symbol.el/archive/"
3317 version ".tar.gz"))
3318 (file-name (string-append name "-" version ".tar.gz"))
3319 (sha256
3320 (base32
3321 "1n7k1qns0fn0jsyc0hrjac5nzk21xw48yc30vyrhwvc51h0b9g90"))))
3322 (build-system emacs-build-system)
3323 (home-page "https://nschum.de/src/emacs/highlight-symbol")
3324 (synopsis "Automatic and manual symbol highlighting for Emacs")
3325 (description
3326 "Use @code{highlight-symbol} to toggle highlighting of the symbol at
3327 point throughout the current buffer. Use @code{highlight-symbol-mode} to keep
3328 the symbol at point highlighted.
3329
3330 The functions @code{highlight-symbol-next}, @code{highlight-symbol-prev},
3331 @code{highlight-symbol-next-in-defun} and
3332 @code{highlight-symbol-prev-in-defun} allow for cycling through the locations
3333 of any symbol at point. Use @code{highlight-symbol-nav-mode} to enable key
3334 bindings @code{M-p} and @code{M-p} for navigation. When
3335 @code{highlight-symbol-on-navigation-p} is set, highlighting is triggered
3336 regardless of @code{highlight-symbol-idle-delay}.
3337
3338 @code{highlight-symbol-query-replace} can be used to replace the symbol. ")
3339 (license license:gpl2+)))
3340
3341 (define-public emacs-hl-todo
3342 (package
3343 (name "emacs-hl-todo")
3344 (version "1.8.0")
3345 (source (origin
3346 (method url-fetch)
3347 (uri (string-append
3348 "https://raw.githubusercontent.com/tarsius/hl-todo/"
3349 version "/hl-todo.el"))
3350 (file-name (string-append "hl-todo-" version ".el"))
3351 (sha256
3352 (base32
3353 "0g0h9v4572p7mcird8wsj1c41haf60krslm6mlpi4mdbh248kv6z"))))
3354 (build-system emacs-build-system)
3355 (home-page "https://github.com/tarsius/hl-todo")
3356 (synopsis "Emacs mode to highlight TODO and similar keywords")
3357 (description
3358 "This package provides an Emacs mode to highlight TODO and similar
3359 keywords in comments and strings. This package also provides commands for
3360 moving to the next or previous keyword and to invoke @code{occur} with a
3361 regexp that matches all known keywords.")
3362 (license license:gpl3+)))
3363
3364 (define-public emacs-perspective
3365 (package
3366 (name "emacs-perspective")
3367 (version "1.12")
3368 (source
3369 (origin
3370 (method url-fetch)
3371 (uri (string-append "https://github.com/nex3/perspective-el/"
3372 "archive/" version ".tar.gz"))
3373 (file-name (string-append name "-" version ".tar.gz"))
3374 (sha256
3375 (base32
3376 "078ahh0kmhdylq5ib9c81c76kz1n02xwc83pm729d00i84ibviic"))))
3377 (build-system emacs-build-system)
3378 (home-page "https://github.com/nex3/perspective-el")
3379 (synopsis "Switch between named \"perspectives\"")
3380 (description
3381 "This package provides tagged workspaces in Emacs, similar to workspaces in
3382 windows managers such as Awesome and XMonad. @code{perspective.el} provides
3383 multiple workspaces (or \"perspectives\") for each Emacs frame. Each
3384 perspective is composed of a window configuration and a set of buffers.
3385 Switching to a perspective activates its window configuration, and when in a
3386 perspective only its buffers are available by default.")
3387 ;; This package is released under the same license as Emacs (GPLv3+) or
3388 ;; the Expat license.
3389 (license license:gpl3+)))
3390
3391 (define-public emacs-test-simple
3392 (package
3393 (name "emacs-test-simple")
3394 (version "1.3.0")
3395 (source
3396 (origin
3397 (method url-fetch)
3398 (uri (string-append "https://elpa.gnu.org/packages/test-simple-"
3399 version ".el"))
3400 (sha256
3401 (base32
3402 "1yd61jc9ds95a5n09052kwc5gasy57g4lxr0jsff040brlyi9czz"))))
3403 (build-system emacs-build-system)
3404 (home-page "https://github.com/rocky/emacs-test-simple")
3405 (synopsis "Simple unit test framework for Emacs Lisp")
3406 (description
3407 "Test Simple is a simple unit test framework for Emacs Lisp. It
3408 alleviates the need for context macros, enclosing specifications or required
3409 test tags. It supports both interactive and non-interactive use.")
3410 (license license:gpl3+)))
3411
3412 (define-public emacs-load-relative
3413 (package
3414 (name "emacs-load-relative")
3415 (version "1.3")
3416 (source
3417 (origin
3418 (method url-fetch)
3419 (uri (string-append "https://elpa.gnu.org/packages/load-relative-"
3420 version ".el"))
3421 (sha256
3422 (base32
3423 "1hfxb2436jdsi9wfmsv47lkkpa5galjf5q81bqabbsv79rv59dps"))))
3424 (build-system emacs-build-system)
3425 (home-page "http://github.com/rocky/emacs-load-relative")
3426 (synopsis "Emacs Lisp relative file loading related functions")
3427 (description
3428 "Provides functions which facilitate writing multi-file Emacs packages
3429 and running from the source tree without having to \"install\" code or fiddle
3430 with @{load-path}.
3431
3432 The main function, @code{load-relative}, loads an Emacs Lisp file relative to
3433 another (presumably currently running) Emacs Lisp file.")
3434 (license license:gpl3+)))
3435
3436 (define-public emacs-loc-changes
3437 (package
3438 (name "emacs-loc-changes")
3439 (version "1.2")
3440 (source
3441 (origin
3442 (method url-fetch)
3443 (uri (string-append "https://elpa.gnu.org/packages/loc-changes-"
3444 version ".el"))
3445 (sha256
3446 (base32
3447 "1x8fn8vqasayf1rb8a6nma9n6nbvkx60krmiahyb05vl5rrsw6r3"))))
3448 (build-system emacs-build-system)
3449 (home-page "https://github.com/rocky/emacs-loc-changes")
3450 (synopsis "Keeps track of positions even after buffer changes")
3451 (description
3452 "This Emacs package provides a mean to track important buffer positions
3453 after buffer changes.")
3454 (license license:gpl3+)))
3455
3456 (define-public emacs-realgud
3457 (package
3458 (name "emacs-realgud")
3459 (version "1.4.5")
3460 (source
3461 (origin
3462 (method url-fetch)
3463 (uri (string-append "https://elpa.gnu.org/packages/realgud-"
3464 version ".tar"))
3465 (sha256
3466 (base32
3467 "108wgxg7fb4byaiasgvbxv2hq7b00biq9f0mh9hy6vw4160y5w24"))))
3468 (build-system emacs-build-system)
3469 (arguments
3470 `(#:tests? #t
3471 #:phases
3472 (modify-phases %standard-phases
3473 (add-after 'set-emacs-load-path 'fix-autogen-script
3474 (lambda _
3475 (substitute* "autogen.sh"
3476 (("./configure") "sh configure"))))
3477 (add-after 'fix-autogen-script 'autogen
3478 (lambda _
3479 (setenv "CONFIG_SHELL" "sh")
3480 (invoke "sh" "autogen.sh")))
3481 (add-after 'fix-autogen-script 'set-home
3482 (lambda _
3483 (setenv "HOME" (getenv "TMPDIR"))))
3484 (add-before 'patch-el-files 'remove-realgud-pkg.el
3485 (lambda _
3486 ;; XXX: This file is auto-generated at some point and causes
3487 ;; substitute* to crash during the `patch-el-files' phase with:
3488 ;; ERROR: In procedure stat: No such file or directory:
3489 ;; "./realgud-pkg.el"
3490 (delete-file "./realgud-pkg.el")
3491 ;; FIXME: `patch-el-files' crashes on this file with error:
3492 ;; unable to locate "bashdb".
3493 (delete-file "./test/test-regexp-bashdb.el"))))
3494 #:include (cons* ".*\\.el$" %default-include)))
3495 (native-inputs
3496 `(("autoconf" ,autoconf)
3497 ("automake" ,automake)
3498 ("emacs-test-simple" ,emacs-test-simple)))
3499 (propagated-inputs
3500 `(("emacs-load-relative" ,emacs-load-relative)
3501 ("emacs-loc-changes" ,emacs-loc-changes)))
3502 (home-page "https://github.com/realgud/realgud/")
3503 (synopsis
3504 "Modular front-end for interacting with external debuggers")
3505 (description
3506 "RealGUD is a modular, extensible GNU Emacs front-end for interacting
3507 with external debuggers. It integrates various debuggers such as gdb, pdb,
3508 ipdb, jdb, lldb, bashdb, zshdb, etc. and allows to visually step code in the
3509 sources. Unlike GUD, it also supports running multiple debug sessions in
3510 parallel.")
3511 (license license:gpl3+)))
3512
3513 (define-public emacs-request
3514 (package
3515 (name "emacs-request")
3516 (version "0.3.0")
3517 (source (origin
3518 (method git-fetch)
3519 (uri (git-reference
3520 (url "https://github.com/tkf/emacs-request.git")
3521 (commit (string-append "v" version))))
3522 (file-name (string-append name "-" version "-checkout"))
3523 (sha256
3524 (base32
3525 "0wyxqbb35yqf6ci47531lk32d6fppamx9d8826kdz983vm87him7"))))
3526 (build-system emacs-build-system)
3527 (propagated-inputs
3528 `(("emacs-deferred" ,emacs-deferred)))
3529 (home-page "https://github.com/tkf/emacs-request")
3530 (synopsis "Package for speaking HTTP in Emacs Lisp")
3531 (description "This package provides a HTTP request library with multiple
3532 backends. It supports url.el which is shipped with Emacs and the curl command
3533 line program.")
3534 (license license:gpl3+)))
3535
3536 (define-public emacs-rudel
3537 (package
3538 (name "emacs-rudel")
3539 (version "0.3.1")
3540 (source
3541 (origin
3542 (method url-fetch)
3543 (uri (string-append "http://elpa.gnu.org/packages/rudel-"
3544 version ".tar"))
3545 (sha256
3546 (base32
3547 "0glqa68g509p0s2vcc0i8kzlddnc9brd9jqhnm5rzxz4i050cvnz"))))
3548 (build-system emacs-build-system)
3549 (home-page "http://rudel.sourceforge.net/")
3550 (synopsis "Collaborative editing framework")
3551 (description
3552 "Rudel is a collaborative editing environment for GNU Emacs. Its purpose
3553 is to share buffers with other users in order to edit the contents of those
3554 buffers collaboratively. Rudel supports multiple backends to enable
3555 communication with other collaborative editors using different protocols,
3556 though currently Obby (for use with the Gobby editor) is the only
3557 fully-functional one.")
3558 (license license:gpl3+)))
3559
3560 (define-public emacs-hydra
3561 (package
3562 (name "emacs-hydra")
3563 (version "0.14.0")
3564 (source
3565 (origin
3566 (method url-fetch)
3567 (uri (string-append "https://github.com/abo-abo/hydra/archive/"
3568 version ".tar.gz"))
3569 (file-name (string-append name "-" version ".tar.gz"))
3570 (sha256
3571 (base32
3572 "0884k3ffwzhh6krbd8l7vvm184dkagb2jf4q8xzg72plln34qrm8"))))
3573 (build-system emacs-build-system)
3574 (home-page "https://github.com/abo-abo/hydra")
3575 (synopsis "Make Emacs bindings that stick around")
3576 (description
3577 "This package can be used to tie related commands into a family of short
3578 bindings with a common prefix---a Hydra. Once you summon the Hydra (through
3579 the prefixed binding), all the heads can be called in succession with only a
3580 short extension. Any binding that isn't the Hydra's head vanquishes the
3581 Hydra. Note that the final binding, besides vanquishing the Hydra, will still
3582 serve its original purpose, calling the command assigned to it. This makes
3583 the Hydra very seamless; it's like a minor mode that disables itself
3584 automatically.")
3585 (license license:gpl3+)))
3586
3587 (define-public emacs-ivy
3588 (package
3589 (name "emacs-ivy")
3590 (version "0.10.0")
3591 (source
3592 (origin
3593 (method git-fetch)
3594 (uri (git-reference
3595 (url "https://github.com/abo-abo/swiper.git")
3596 (commit version)))
3597 (file-name (string-append name "-" version "-checkout"))
3598 (sha256
3599 (base32
3600 "14vnigqb5c3yi4q9ysw1fiwdqyqwyklqpb9wnjf81chm7s2mshnr"))))
3601 (build-system emacs-build-system)
3602 (arguments
3603 `(#:phases
3604 (modify-phases %standard-phases
3605 (add-after 'install 'install-doc
3606 (lambda* (#:key outputs #:allow-other-keys)
3607 (let* ((out (assoc-ref outputs "out"))
3608 (info (string-append out "/share/info")))
3609 (with-directory-excursion "doc"
3610 (unless (zero? (system* "makeinfo" "ivy.texi"))
3611 (error "makeinfo failed"))
3612 (install-file "ivy.info" info))))))))
3613 (propagated-inputs
3614 `(("emacs-hydra" ,emacs-hydra)))
3615 (native-inputs
3616 `(("texinfo" ,texinfo)))
3617 (home-page "http://oremacs.com/swiper/")
3618 (synopsis "Incremental vertical completion for Emacs")
3619 (description
3620 "This package provides @code{ivy-read} as an alternative to
3621 @code{completing-read} and similar functions. No attempt is made to determine
3622 the best candidate. Instead, the user can navigate candidates with
3623 @code{ivy-next-line} and @code{ivy-previous-line}. The matching is done by
3624 splitting the input text by spaces and re-building it into a regular
3625 expression.")
3626 (license license:gpl3+)))
3627
3628 (define-public emacs-avy
3629 (package
3630 (name "emacs-avy")
3631 (version "0.4.0")
3632 (source
3633 (origin
3634 (method url-fetch)
3635 (uri (string-append "https://github.com/abo-abo/avy/archive/"
3636 version ".tar.gz"))
3637 (file-name (string-append name "-" version ".tar.gz"))
3638 (sha256
3639 (base32
3640 "1wdrq512h25ymzjbf2kbsdymvd2ryfwzb6bh5bc3yv7q203im796"))))
3641 (build-system emacs-build-system)
3642 (home-page "https://github.com/abo-abo/avy")
3643 (synopsis "Tree-based completion for Emacs")
3644 (description
3645 "This package provides a generic completion method based on building a
3646 balanced decision tree with each candidate being a leaf. To traverse the tree
3647 from the root to a desired leaf, typically a sequence of @code{read-key} can
3648 be used.
3649
3650 In order for @code{read-key} to make sense, the tree needs to be visualized
3651 appropriately, with a character at each branch node. So this completion
3652 method works only for things that you can see on your screen, all at once,
3653 such as the positions of characters, words, line beginnings, links, or
3654 windows.")
3655 (license license:gpl3+)))
3656
3657 (define-public emacs-ace-window
3658 (package
3659 (name "emacs-ace-window")
3660 (version "0.9.0")
3661 (source
3662 (origin
3663 (method url-fetch)
3664 (uri (string-append "https://github.com/abo-abo/ace-window/archive/"
3665 version ".tar.gz"))
3666 (file-name (string-append name "-" version ".tar.gz"))
3667 (sha256
3668 (base32
3669 "1p2sgfl5dml4zbd6ldql6lm2m9vmd236ah996ni32x254s48j5pn"))))
3670 (build-system emacs-build-system)
3671 (propagated-inputs
3672 `(("emacs-avy" ,emacs-avy)))
3673 (home-page "https://github.com/abo-abo/ace-window")
3674 (synopsis "Quickly switch windows in Emacs")
3675 (description
3676 "@code{ace-window} is meant to replace @code{other-window}.
3677 In fact, when there are only two windows present, @code{other-window} is
3678 called. If there are more, each window will have its first character
3679 highlighted. Pressing that character will switch to that window.")
3680 (license license:gpl3+)))
3681
3682 (define-public emacs-iedit
3683 (package
3684 (name "emacs-iedit")
3685 (version "0.9.9.9")
3686 (source
3687 (origin
3688 (method url-fetch)
3689 (uri (string-append "https://github.com/victorhge/iedit/archive/v"
3690 version ".tar.gz"))
3691 (file-name (string-append name "-" version ".tar.gz"))
3692 (sha256
3693 (base32
3694 "1hv8q6pr85ss9g3158l1fqv3m62vsq8rslsi86jicr2dcxyascr0"))))
3695 (build-system emacs-build-system)
3696 (home-page "http://www.emacswiki.org/emacs/Iedit")
3697 (synopsis "Edit multiple regions in the same way simultaneously")
3698 (description
3699 "This package is an Emacs minor mode and allows you to edit one
3700 occurrence of some text in a buffer (possibly narrowed) or region, and
3701 simultaneously have other occurrences edited in the same way.
3702
3703 You can also use Iedit mode as a quick way to temporarily show only the buffer
3704 lines that match the current text being edited. This gives you the effect of
3705 a temporary @code{keep-lines} or @code{occur}.")
3706 (license license:gpl3+)))
3707
3708 (define-public emacs-zoutline
3709 (let ((commit "b3ee0f0e0b916838c2d2c249beba74ffdb8d5699")
3710 (revision "0"))
3711 (package
3712 (name "emacs-zoutline")
3713 (version (git-version "0.1" revision commit))
3714 (home-page "https://github.com/abo-abo/zoutline")
3715 (source (origin
3716 (method git-fetch)
3717 (uri (git-reference (url home-page) (commit commit)))
3718 (sha256
3719 (base32
3720 "0sd0017piw0dis6dhpq5dkqd3acisxqgipl7dj8gmc1vnswhdwr8"))
3721 (file-name (git-file-name name version))))
3722 (build-system emacs-build-system)
3723 (synopsis "Simple outline library")
3724 (description
3725 "This library provides helpers for outlines. Outlines allow users to
3726 navigate code in a tree-like fashion.")
3727 (license license:gpl3+))))
3728
3729 (define-public emacs-lispy
3730 ;; Release 0.26.0 was almost 3 years ago, and there have been ~772 commits
3731 ;; since.
3732 (let ((commit "c2a358a7a15fcf056a5b7461a8e690b481b03b80")
3733 (revision "0"))
3734 (package
3735 (name "emacs-lispy")
3736 (version (git-version "0.26.0" revision commit))
3737 (home-page "https://github.com/abo-abo/lispy")
3738 (source (origin
3739 (method git-fetch)
3740 (uri (git-reference (url home-page) (commit commit)))
3741 (sha256
3742 (base32
3743 "1g6756qqx2n4cx8jac6mlwayilsiyc5rz8nrqjnywvzc75xdinjd"))
3744 (file-name (git-file-name name version))))
3745 (build-system emacs-build-system)
3746 (propagated-inputs
3747 `(("emacs-ace-window" ,emacs-ace-window)
3748 ("emacs-iedit" ,emacs-iedit)
3749 ("emacs-ivy" ,emacs-ivy)
3750 ("emacs-hydra" ,emacs-hydra)
3751 ("emacs-zoutline" ,emacs-zoutline)))
3752 (synopsis "Modal S-expression editing")
3753 (description
3754 "Due to the structure of Lisp syntax it's very rare for the programmer
3755 to want to insert characters right before \"(\" or right after \")\". Thus
3756 unprefixed printable characters can be used to call commands when the point is
3757 at one of these special locations. Lispy provides unprefixed keybindings for
3758 S-expression editing when point is at the beginning or end of an
3759 S-expression.")
3760 (license license:gpl3+))))
3761
3762 (define-public emacs-lispyville
3763 ;; Later versions need a more recent Evil, with an evil-define-key*
3764 ;; supporting nil for the state.
3765 (let ((commit "b4291857ed6a49a67c4ea77522889ce51fb171ab")
3766 (revision "0"))
3767 (package
3768 (name "emacs-lispyville")
3769 (version (git-version "0.1" revision commit))
3770 (home-page "https://github.com/noctuid/lispyville")
3771 (source (origin
3772 (method git-fetch)
3773 (uri (git-reference (url home-page) (commit commit)))
3774 (sha256
3775 (base32
3776 "095zibzc3naknahdrnb59g9rbljy8wz9rkc7rf8avb3wxlwvxhm3"))
3777 (file-name (git-file-name name version))))
3778 (propagated-inputs
3779 `(("emacs-evil" ,emacs-evil)
3780 ("emacs-lispy" ,emacs-lispy)))
3781 (build-system emacs-build-system)
3782 (synopsis "Minor mode for integrating Evil with lispy")
3783 (description
3784 "LispyVille's main purpose is to provide a Lisp editing environment
3785 suited towards Evil users. It can serve as a minimal layer on top of lispy
3786 for better integration with Evil, but it does not require the use of lispy’s
3787 keybinding style. The provided commands allow for editing Lisp in normal
3788 state and will work even without lispy being enabled.")
3789 (license license:gpl3+))))
3790
3791 (define-public emacs-clojure-mode
3792 (package
3793 (name "emacs-clojure-mode")
3794 (version "5.6.1")
3795 (source (origin
3796 (method url-fetch)
3797 (uri (string-append
3798 "https://github.com/clojure-emacs/clojure-mode/archive/"
3799 version ".tar.gz"))
3800 (file-name (string-append name "-" version ".tar.gz"))
3801 (sha256
3802 (base32
3803 "1f4k1hncy5ygh4izn7mqfp744nnisrp9ywn2njknbjxx34ai1q88"))))
3804 (build-system emacs-build-system)
3805 (native-inputs
3806 `(("emacs-dash" ,emacs-dash)
3807 ("emacs-s" ,emacs-s)
3808 ("ert-runner" ,ert-runner)))
3809 (arguments
3810 `(#:tests? #t
3811 #:test-command '("ert-runner")))
3812 (home-page "https://github.com/clojure-emacs/clojure-mode")
3813 (synopsis "Major mode for Clojure code")
3814 (description
3815 "This Emacs package provides font-lock, indentation, navigation and basic
3816 refactoring for the @uref{http://clojure.org, Clojure programming language}.
3817 It is recommended to use @code{clojure-mode} with paredit or smartparens.")
3818 (license license:gpl3+)))
3819
3820 (define-public emacs-epl
3821 (package
3822 (name "emacs-epl")
3823 (version "0.8")
3824 (source (origin
3825 (method url-fetch)
3826 (uri (string-append
3827 "https://github.com/cask/epl/archive/"
3828 version ".tar.gz"))
3829 (file-name (string-append name "-" version ".tar.gz"))
3830 (sha256
3831 (base32
3832 "1511n3a3f5gvaf2b4nh018by61ciyzi3y3603fzqma7p9hrckarc"))))
3833 (build-system emacs-build-system)
3834 (home-page "https://github.com/cask/epl")
3835 (synopsis "Emacs Package Library")
3836 (description
3837 "A package management library for Emacs, based on @code{package.el}.
3838
3839 The purpose of this library is to wrap all the quirks and hassle of
3840 @code{package.el} into a sane API.")
3841 (license license:gpl3+)))
3842
3843 (define-public emacs-queue
3844 (package
3845 (name "emacs-queue")
3846 (version "0.2")
3847 (source (origin
3848 (method url-fetch)
3849 (uri (string-append "https://elpa.gnu.org/packages/queue-"
3850 version ".el"))
3851 (sha256
3852 (base32
3853 "0cx2848sqnnkkr4zisvqadzxngjyhmb36mh0q3if7q19yjjhmrkb"))))
3854 (build-system emacs-build-system)
3855 (home-page "http://www.dr-qubit.org/tags/computing-code-emacs.html")
3856 (synopsis "Queue data structure for Emacs")
3857 (description
3858 "This Emacs library provides queue data structure. These queues can be
3859 used both as a first-in last-out (FILO) and as a first-in first-out (FIFO)
3860 stack, i.e. elements can be added to the front or back of the queue, and can
3861 be removed from the front. This type of data structure is sometimes called an
3862 \"output-restricted deque\".")
3863 (license license:gpl3+)))
3864
3865 (define-public emacs-pkg-info
3866 (package
3867 (name "emacs-pkg-info")
3868 (version "0.6")
3869 (source (origin
3870 (method url-fetch)
3871 (uri (string-append
3872 "https://github.com/lunaryorn/pkg-info.el/archive/"
3873 version ".tar.gz"))
3874 (file-name (string-append name "-" version ".tar.gz"))
3875 (sha256
3876 (base32
3877 "1gy1jks5mmm02gg1c8gcyr4f8a9s5ggzhk56gv33b9mzjqzi5rd5"))))
3878 (build-system emacs-build-system)
3879 (propagated-inputs `(("emacs-epl" ,emacs-epl)))
3880 (home-page "https://github.com/lunaryorn/pkg-info.el")
3881 (synopsis "Information about Emacs packages")
3882 (description
3883 "This library extracts information from the installed Emacs packages.")
3884 (license license:gpl3+)))
3885
3886 (define-public emacs-spinner
3887 (package
3888 (name "emacs-spinner")
3889 (version "1.7.3")
3890 (source (origin
3891 (method url-fetch)
3892 (uri (string-append "https://elpa.gnu.org/packages/spinner-"
3893 version ".el"))
3894 (sha256
3895 (base32
3896 "19kp1mmndbmw11sgvv2ggfjl4pyf5zrsbh3871f0965pw9z8vahd"))))
3897 (build-system emacs-build-system)
3898 (home-page "https://github.com/Malabarba/spinner.el")
3899 (synopsis "Emacs mode-line spinner for operations in progress")
3900 (description
3901 "This Emacs package adds spinners and progress-bars to the mode-line for
3902 ongoing operations.")
3903 (license license:gpl3+)))
3904
3905 (define-public emacs-sparql-mode
3906 (package
3907 (name "emacs-sparql-mode")
3908 (version "2.0.1")
3909 (source (origin
3910 (method url-fetch)
3911 (uri (string-append "https://github.com/ljos/sparql-mode/archive/"
3912 "v" version ".tar.gz"))
3913 (file-name (string-append name "-" version ".tar.gz"))
3914 (sha256
3915 (base32
3916 "1s93mkllxnhy7fw616cnnc2danacdlarys0g3cn89drh0llh53cv"))))
3917 (build-system emacs-build-system)
3918 (home-page "https://github.com/ljos/sparql-mode")
3919 (synopsis "SPARQL mode for Emacs")
3920 (description "This package provides a major mode for Emacs that provides
3921 syntax highlighting for SPARQL. It also provides a way to execute queries
3922 against a SPARQL HTTP endpoint, such as is provided by Fuseki. It is also
3923 possible to query other endpoints like DBPedia.")
3924 (license license:gpl3+)))
3925
3926 (define-public emacs-better-defaults
3927 (package
3928 (name "emacs-better-defaults")
3929 (version "0.1.3")
3930 (source
3931 (origin
3932 (method url-fetch)
3933 (uri (string-append "https://github.com/technomancy/better-defaults"
3934 "/archive/" version ".tar.gz"))
3935 (file-name (string-append name "-" version ".tar.gz"))
3936 (sha256
3937 (base32
3938 "08fg4zslzlxbvyil5g4gwvwd22fh4zsgqprs5wh9hv1rgc6757m2"))))
3939 (build-system emacs-build-system)
3940 (home-page "https://github.com/technomancy/better-defaults")
3941 (synopsis "Better defaults for Emacs")
3942 (description
3943 "Better defaults attempts to address the most obvious deficiencies of the
3944 Emacs default configuration in uncontroversial ways that nearly everyone can
3945 agree upon.")
3946 (license license:gpl3+)))
3947
3948 (define-public emacs-eprime
3949 (let ((commit "17a481af26496be91c07139a9bfc05cfe722506f"))
3950 (package
3951 (name "emacs-eprime")
3952 (version (string-append "20140513-" (string-take commit 7)))
3953 (source (origin
3954 (method url-fetch)
3955 (uri (string-append "https://raw.githubusercontent.com"
3956 "/AndrewHynes/eprime-mode/"
3957 commit "/eprime-mode.el"))
3958 (file-name (string-append "eprime-" version ".el"))
3959 (sha256
3960 (base32
3961 "0v68lggkyq7kbcr9zyi573m2g2x251xy3jadlaw8kx02l8krwq8d"))))
3962 (build-system emacs-build-system)
3963 (home-page "https://github.com/AndrewHynes/eprime-mode")
3964 (synopsis "E-prime checking mode for Emacs")
3965 (description "This package provides an E-prime checking mode for Emacs
3966 that highlights non-conforming text. The subset of the English language called
3967 E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
3968 (license license:gpl3+))))
3969
3970 (define-public emacs-julia-mode
3971 ;; XXX: Upstream version remained stuck at 0.3. See
3972 ;; <https://github.com/JuliaEditorSupport/julia-emacs/issues/46>.
3973 (let ((commit "115d4dc8a07445301772da8376b232fa8c7168f4")
3974 (revision "1"))
3975 (package
3976 (name "emacs-julia-mode")
3977 (version (string-append "0.3-" revision "." (string-take commit 8)))
3978 (source
3979 (origin
3980 (method git-fetch)
3981 (uri (git-reference
3982 (url "https://github.com/JuliaEditorSupport/julia-emacs.git")
3983 (commit commit)))
3984 (file-name (string-append name "-" version "-checkout"))
3985 (sha256
3986 (base32
3987 "1is4dcv6blslpzbjcg8l2jpxi8xj96q4cm0nxjxsyswpm8bw8ki0"))))
3988 (build-system emacs-build-system)
3989 (arguments
3990 `(#:tests? #t
3991 #:test-command '("emacs" "--batch"
3992 "-l" "julia-mode-tests.el"
3993 "-f" "ert-run-tests-batch-and-exit")))
3994 (home-page "https://github.com/JuliaEditorSupport/julia-emacs")
3995 (synopsis "Major mode for Julia")
3996 (description "This Emacs package provides a mode for the Julia
3997 programming language.")
3998 (license license:expat))))
3999
4000 (define-public emacs-ess
4001 (package
4002 (name "emacs-ess")
4003 (version "16.10")
4004 (source (origin
4005 (method url-fetch)
4006 (uri (string-append "http://ess.r-project.org/downloads/ess/ess-"
4007 version ".tgz"))
4008 (sha256
4009 (base32
4010 "04m8lwp3ylh2vl7k2bjjs7mxbm64j4sdckqpvnm9k0qhaqf02pjk"))
4011 (modules '((guix build utils)))
4012 (snippet
4013 '(begin
4014 ;; Stop ESS from trying to bundle an external julia-mode.el.
4015 (substitute* "lisp/Makefile"
4016 (("^\tjulia-mode.elc\\\\\n") "")
4017 (("^all: \\$\\(ELC\\) ess-custom.el julia-mode.el")
4018 "all: $(ELC) ess-custom.el"))))))
4019 (build-system gnu-build-system)
4020 (arguments
4021 (let ((base-directory "/share/emacs/site-lisp/guix.d/ess"))
4022 `(#:make-flags (list (string-append "PREFIX=" %output)
4023 (string-append "ETCDIR=" %output "/"
4024 ,base-directory "/etc")
4025 (string-append "LISPDIR=" %output "/"
4026 ,base-directory))
4027 #:phases
4028 (modify-phases %standard-phases
4029 (delete 'configure)
4030 (add-before 'build 'more-shebang-patching
4031 (lambda* (#:key inputs #:allow-other-keys)
4032 (substitute* "Makeconf"
4033 (("SHELL = /bin/sh")
4034 (string-append "SHELL = " (which "sh"))))))
4035 ;; FIXME: the texlive-union insists on regenerating fonts. It stores
4036 ;; them in HOME, so it needs to be writeable.
4037 (add-before 'build 'set-HOME
4038 (lambda _ (setenv "HOME" "/tmp") #t))
4039 (replace 'check
4040 (lambda _
4041 (zero? (system* "make" "test"))))))))
4042 (inputs
4043 `(("emacs" ,emacs-minimal)
4044 ("r-minimal" ,r-minimal)))
4045 (native-inputs
4046 `(("perl" ,perl)
4047 ("texinfo" ,texinfo)
4048 ("texlive" ,(texlive-union (list texlive-latex-natbib
4049 texlive-latex-seminar
4050 texlive-latex-hyperref
4051 texlive-tex-texinfo)))))
4052 (home-page "https://ess.r-project.org/")
4053 (synopsis "Emacs mode for statistical analysis programs")
4054 (description "Emacs Speaks Statistics (ESS) is an add-on package for GNU
4055 Emacs. It is designed to support editing of scripts and interaction with
4056 various statistical analysis programs such as R and OpenBUGS.")
4057 (license license:gpl2+)))
4058
4059 (define-public emacs-smex
4060 (package
4061 (name "emacs-smex")
4062 (version "3.0")
4063 (source (origin
4064 (method url-fetch)
4065 (uri (string-append "https://raw.githubusercontent.com"
4066 "/nonsequitur/smex/" version "/smex.el"))
4067 (file-name (string-append "smex-" version ".el"))
4068 (sha256
4069 (base32
4070 "0ar310zx9k5y4i1vl2rawvi712xj9gx77160860jbs691p77cxqp"))))
4071 (build-system emacs-build-system)
4072 (home-page "https://github.com/nonsequitur/smex/")
4073 (synopsis "M-x interface with Ido-style fuzzy matching")
4074 (description
4075 "Smex is a M-x enhancement for Emacs. Built on top of Ido, it provides a
4076 convenient interface to your recently and most frequently used commands. And
4077 to all the other commands, too.")
4078 (license license:gpl3+)))
4079
4080 (define-public emacs-js2-mode
4081 (package
4082 (name "emacs-js2-mode")
4083 (version "20150909")
4084 (source (origin
4085 (method url-fetch)
4086 (uri (string-append "https://github.com/mooz/js2-mode/archive/"
4087 version ".tar.gz"))
4088 (file-name (string-append name "-" version ".tar.gz"))
4089 (sha256
4090 (base32
4091 "1nsm36c4kwb473p13i58fgrnlk8fbn3rdhj47d9xz70az4ra44q0"))))
4092 (build-system emacs-build-system)
4093 (home-page "https://github.com/mooz/js2-mode/")
4094 (synopsis "Improved JavaScript editing mode for Emacs")
4095 (description
4096 "Js2-mode provides a JavaScript major mode for Emacs that is more
4097 advanced than the built-in javascript-mode. Features include accurate syntax
4098 highlighting using a recursive-descent parser, on-the-fly reporting of syntax
4099 errors and strict-mode warnings, smart line-wrapping within comments and
4100 strings, and code folding.")
4101 (license license:gpl3+)))
4102
4103 (define-public emacs-markdown-mode
4104 (package
4105 (name "emacs-markdown-mode")
4106 (version "2.3")
4107 (source (origin
4108 (method url-fetch)
4109 (uri (string-append "https://raw.githubusercontent.com/jrblevin"
4110 "/markdown-mode/v" version
4111 "/markdown-mode.el"))
4112 (file-name (string-append "markdown-mode-" version ".el"))
4113 (sha256
4114 (base32
4115 "152whyrq3dqlqy5wv4mdd94kmal19hs5kwaxjcp2gp2r97lsmdmi"))))
4116 (build-system emacs-build-system)
4117 (home-page "http://jblevins.org/projects/markdown-mode/")
4118 (synopsis "Emacs Major mode for Markdown files")
4119 (description
4120 "Markdown-mode is a major mode for editing Markdown-formatted text files
4121 in Emacs.")
4122 (license license:gpl3+)))
4123
4124 (define-public emacs-edit-indirect
4125 (package
4126 (name "emacs-edit-indirect")
4127 (version "0.1.4")
4128 (source
4129 (origin
4130 (method url-fetch)
4131 (uri (string-append "https://github.com/Fanael/edit-indirect/archive/"
4132 version ".tar.gz"))
4133 (file-name (string-append name "-" version ".tar.gz"))
4134 (sha256
4135 (base32
4136 "07kr58rd1p5j764wminsssazr73hy51yw8iqcsv5z2dwgj7msv71"))))
4137 (build-system emacs-build-system)
4138 (home-page "https://github.com/Fanael/edit-indirect")
4139 (synopsis "Edit regions in separate buffers")
4140 (description "This package allows you to edit regions in separate buffers,
4141 like @code{org-edit-src-code} but for arbitrary regions.")
4142 (license license:gpl3+)))
4143
4144 (define-public emacs-projectile
4145 (package
4146 (name "emacs-projectile")
4147 (version "0.14.0")
4148 (source (origin
4149 (method url-fetch)
4150 (uri (string-append "https://raw.githubusercontent.com/bbatsov"
4151 "/projectile/v" version "/projectile.el"))
4152 (file-name (string-append "projectile-" version ".el"))
4153 (sha256
4154 (base32
4155 "1ql1wnzhblbwnv66hf2y0wq45g71hh6s9inc090lmhm1vgylbd1f"))))
4156 (build-system emacs-build-system)
4157 (propagated-inputs
4158 `(("emacs-dash" ,emacs-dash)
4159 ("emacs-pkg-info" ,emacs-pkg-info)))
4160 (home-page "https://github.com/bbatsov/projectile")
4161 (synopsis "Manage and navigate projects in Emacs easily")
4162 (description
4163 "This library provides easy project management and navigation. The
4164 concept of a project is pretty basic - just a folder containing special file.
4165 Currently git, mercurial and bazaar repos are considered projects by default.
4166 If you want to mark a folder manually as a project just create an empty
4167 .projectile file in it.")
4168 (license license:gpl3+)))
4169
4170 (define-public emacs-elfeed
4171 (package
4172 (name "emacs-elfeed")
4173 (version "3.0.0")
4174 (source (origin
4175 (method url-fetch)
4176 (uri (string-append "https://github.com/skeeto/elfeed/archive/"
4177 version ".tar.gz"))
4178 (file-name (string-append name "-" version ".tar.gz"))
4179 (sha256
4180 (base32
4181 "1wkdrxr6zzqb48czqqv34l87bx8aqjk1739ddqg933aqh241kfvn"))))
4182 (build-system emacs-build-system)
4183 (arguments
4184 `(#:tests? #t
4185 #:test-command '("make" "test")))
4186 (home-page "https://github.com/skeeto/elfeed")
4187 (synopsis "Atom/RSS feed reader for Emacs")
4188 (description
4189 "Elfeed is an extensible web feed reader for Emacs, supporting both Atom
4190 and RSS, with a user interface inspired by notmuch.")
4191 (license license:gpl3+)))
4192
4193 (define-public emacs-rainbow-delimiters
4194 (package
4195 (name "emacs-rainbow-delimiters")
4196 (version "2.1.3")
4197 (source (origin
4198 (method url-fetch)
4199 (uri (string-append "https://raw.githubusercontent.com/Fanael"
4200 "/rainbow-delimiters/" version
4201 "/rainbow-delimiters.el"))
4202 (file-name (string-append "rainbow-delimiters-" version ".el"))
4203 (sha256
4204 (base32
4205 "1b3kampwsjabhcqdp0khgff13wc5jqhy3rbvaa12vnv7qy22l9ck"))))
4206 (build-system emacs-build-system)
4207 (home-page "https://github.com/Fanael/rainbow-delimiters")
4208 (synopsis "Highlight brackets according to their depth")
4209 (description
4210 "Rainbow-delimiters is a \"rainbow parentheses\"-like mode for Emacs which
4211 highlights parentheses, brackets, and braces according to their depth. Each
4212 successive level is highlighted in a different color, making it easy to spot
4213 matching delimiters, orient yourself in the code, and tell which statements
4214 are at a given level.")
4215 (license license:gpl3+)))
4216
4217 (define-public emacs-rainbow-identifiers
4218 (package
4219 (name "emacs-rainbow-identifiers")
4220 (version "0.2.2")
4221 (source (origin
4222 (method url-fetch)
4223 (uri (string-append "https://raw.githubusercontent.com/Fanael"
4224 "/rainbow-identifiers/" version
4225 "/rainbow-identifiers.el"))
4226 (file-name (string-append "rainbow-identifiers-" version ".el"))
4227 (sha256
4228 (base32
4229 "0325abxj47k0g1i8nqrq70w2wr6060ckhhf92krv1s072b3jzm31"))))
4230 (build-system emacs-build-system)
4231 (home-page "https://github.com/Fanael/rainbow-identifiers")
4232 (synopsis "Highlight identifiers in source code")
4233 (description
4234 "Rainbow identifiers mode is an Emacs minor mode providing highlighting of
4235 identifiers based on their names. Each identifier gets a color based on a hash
4236 of its name.")
4237 (license license:bsd-2)))
4238
4239 (define-public emacs-rainbow-mode
4240 (package
4241 (name "emacs-rainbow-mode")
4242 (version "0.13")
4243 (source (origin
4244 (method url-fetch)
4245 (uri (string-append
4246 "http://elpa.gnu.org/packages/rainbow-mode-" version ".el"))
4247 (sha256
4248 (base32
4249 "1d3aamx6qgqqpqijwsr02ggwrh67gfink1bir0692alfkm3zdddl"))))
4250 (build-system emacs-build-system)
4251 (home-page "http://elpa.gnu.org/packages/rainbow-mode.html")
4252 (synopsis "Colorize color names in buffers")
4253 (description
4254 "This minor mode sets background color to strings that match color
4255 names, e.g. #0000ff is displayed in white with a blue background.")
4256 (license license:gpl3+)))
4257
4258 (define-public emacs-visual-fill-column
4259 (package
4260 (name "emacs-visual-fill-column")
4261 (version "1.11")
4262 (source (origin
4263 (method url-fetch)
4264 (uri (string-append "https://codeload.github.com/joostkremers/"
4265 "visual-fill-column/tar.gz/" version))
4266 (file-name (string-append name "-" version ".tar.gz"))
4267 (sha256
4268 (base32
4269 "13jnviakp607zcms7f8ams56mr8wffnq1pghlc6fvqs39663pgwh"))))
4270 (build-system emacs-build-system)
4271 (home-page "https://github.com/joostkremers/visual-fill-column")
4272 (synopsis "Fill-column for visual-line-mode")
4273 (description
4274 "@code{visual-fill-column-mode} is a small Emacs minor mode that mimics
4275 the effect of @code{fill-column} in @code{visual-line-mode}. Instead of
4276 wrapping lines at the window edge, which is the standard behaviour of
4277 @code{visual-line-mode}, it wraps lines at @code{fill-column}. If
4278 @code{fill-column} is too large for the window, the text is wrapped at the
4279 window edge.")
4280 (license license:gpl3+)))
4281
4282 (define-public emacs-writeroom
4283 (package
4284 (name "emacs-writeroom")
4285 (version "3.7")
4286 (source (origin
4287 (method url-fetch)
4288 (uri (string-append
4289 "https://github.com/joostkremers/writeroom-mode/archive/"
4290 version ".tar.gz"))
4291 (file-name (string-append name "-" version ".tar.gz"))
4292 (sha256
4293 (base32
4294 "0yqgp5h3kvvpgva4azakb2wnjl7gsyh45glf75crspv3xyq57f2r"))))
4295 (build-system emacs-build-system)
4296 (propagated-inputs
4297 `(("emacs-visual-fill-column" ,emacs-visual-fill-column)))
4298 (home-page "https://github.com/joostkremers/writeroom-mode")
4299 (synopsis "Distraction-free writing for Emacs")
4300 (description
4301 "This package defines a minor mode for distraction-free writing. Some of
4302 the default effects include entering fullscreen, deleting other windows of the
4303 current frame, disabling the mode line, and adding margins to the buffer that
4304 restrict the text width to 80 characters.")
4305 (license license:bsd-3)))
4306
4307 (define-public emacs-ido-completing-read+
4308 (package
4309 (name "emacs-ido-completing-read+")
4310 (version "3.12")
4311 (source (origin
4312 (method url-fetch)
4313 (uri (string-append "https://raw.githubusercontent.com"
4314 "/DarwinAwardWinner/ido-ubiquitous/v"
4315 version "/ido-completing-read+.el"))
4316 (file-name (string-append "ido-completing-read+-" version ".el"))
4317 (sha256
4318 (base32
4319 "1cyalb0p7nfsm4n6n9q6rjmvn6adqc0fq8ybnlj3n41n289dkfjf"))))
4320 (build-system emacs-build-system)
4321 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
4322 (synopsis "Replacement for completing-read using ido")
4323 (description
4324 "The ido-completing-read+ function is a wrapper for ido-completing-read.
4325 Importantly, it detects edge cases that ordinary ido cannot handle and either
4326 adjusts them so ido can handle them, or else simply falls back to the standard
4327 Emacs completion function instead.")
4328 (license license:gpl3+)))
4329
4330 (define-public emacs-ido-ubiquitous
4331 (package
4332 (name "emacs-ido-ubiquitous")
4333 (version "3.12")
4334 (source (origin
4335 (method url-fetch)
4336 (uri (string-append "https://raw.githubusercontent.com"
4337 "/DarwinAwardWinner/ido-ubiquitous/v"
4338 version "/ido-ubiquitous.el"))
4339 (file-name (string-append "ido-ubiquitous-" version ".el"))
4340 (sha256
4341 (base32
4342 "197ypji0fb6jsdcq40rpnknwlh3imas6s6jbsvkfm0pz9988c3q2"))))
4343 (build-system emacs-build-system)
4344 (propagated-inputs
4345 `(("emacs-ido-completing-read+" ,emacs-ido-completing-read+)))
4346 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
4347 (synopsis "Use ido (nearly) everywhere")
4348 (description
4349 "Ido-ubiquitous enables ido-style completion for almost every function
4350 that uses the standard completion function completing-read.")
4351 (license license:gpl3+)))
4352
4353 (define-public emacs-yaml-mode
4354 (package
4355 (name "emacs-yaml-mode")
4356 (version "0.0.13")
4357 (source (origin
4358 (method url-fetch)
4359 (uri (string-append "https://raw.githubusercontent.com/yoshiki"
4360 "/yaml-mode/v" version "/yaml-mode.el"))
4361 (file-name (string-append "yaml-mode-" version ".el"))
4362 (sha256
4363 (base32
4364 "0im88sk9dqw03x6d6zaspgvg9i0pfpgb8f2zygrmbifh2w4pwmvj"))))
4365 (build-system emacs-build-system)
4366 (home-page "https://github.com/yoshiki/yaml-mode")
4367 (synopsis "Major mode for editing YAML files")
4368 (description
4369 "Yaml-mode is an Emacs major mode for editing files in the YAML data
4370 serialization format. It was initially developed by Yoshiki Kurihara and many
4371 features were added by Marshall Vandegrift. As YAML and Python share the fact
4372 that indentation determines structure, this mode provides indentation and
4373 indentation command behavior very similar to that of python-mode.")
4374 (license license:gpl3+)))
4375
4376 (define-public emacs-web-mode
4377 (package
4378 (name "emacs-web-mode")
4379 (version "14")
4380 (source (origin
4381 (method url-fetch)
4382 (uri (string-append "https://raw.githubusercontent.com/fxbois"
4383 "/web-mode/v" version "/web-mode.el"))
4384 (file-name (string-append "web-mode-" version ".el"))
4385 (sha256
4386 (base32
4387 "086hik5fmxg3kx74qmransx9cz961qd22d4m6ah2dw6cwaj1s3s5"))))
4388 (build-system emacs-build-system)
4389 (synopsis "Major mode for editing web templates")
4390 (description "Web-mode is an Emacs major mode for editing web templates
4391 aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by
4392 client/server side engines). Web-mode is compatible with many template
4393 engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker,
4394 Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template,
4395 Dust.js, React/JSX, Angularjs, ejs, etc.")
4396 (home-page "http://web-mode.org/")
4397 (license license:gpl3+)))
4398
4399 (define-public emacs-wgrep
4400 (package
4401 (name "emacs-wgrep")
4402 (version "2.1.10")
4403 (source (origin
4404 (method url-fetch)
4405 (uri (string-append
4406 "https://github.com/mhayashi1120/Emacs-wgrep/archive/"
4407 version ".tar.gz"))
4408 (file-name (string-append name "-" version ".tar.gz"))
4409 (sha256
4410 (base32
4411 "1r2bpypar70xg6dsx12x1k74f39ww930rday7rgqpyknzsx1k4l1"))))
4412 (build-system emacs-build-system)
4413 (home-page "https://github.com/mhayashi1120/Emacs-wgrep")
4414 (synopsis "Edit a grep buffer and apply those changes to the files")
4415 (description
4416 "Emacs wgrep allows you to edit a grep buffer and apply those changes to
4417 the file buffer.")
4418 (license license:gpl3+)))
4419
4420 (define-public emacs-helm
4421 (package
4422 (name "emacs-helm")
4423 (version "2.9.0")
4424 (source (origin
4425 (method url-fetch)
4426 (uri (string-append
4427 "https://github.com/" name "/helm/archive/v"
4428 version ".tar.gz"))
4429 (file-name (string-append name "-" version ".tar.gz"))
4430 (sha256
4431 (base32
4432 "1798gn0za11cxdbi436javfczv4abniccxcl0jppl463r8lzb8is"))))
4433 (build-system emacs-build-system)
4434 (propagated-inputs
4435 `(("emacs-async" ,emacs-async)
4436 ("emacs-popup" ,emacs-popup)))
4437 (home-page "https://emacs-helm.github.io/helm/")
4438 (synopsis "Incremental completion and selection narrowing
4439 framework for Emacs")
4440 (description "Helm is incremental completion and selection narrowing
4441 framework for Emacs. It will help steer you in the right direction when
4442 you're looking for stuff in Emacs (like buffers, files, etc). Helm is a fork
4443 of @code{anything.el} originally written by Tamas Patrovic and can be
4444 considered to be its successor. Helm sets out to clean up the legacy code in
4445 @code{anything.el} and provide a cleaner, leaner and more modular tool, that's
4446 not tied in the trap of backward compatibility.")
4447 (license license:gpl3+)))
4448
4449 (define-public emacs-helm-swoop
4450 (package
4451 (name "emacs-helm-swoop")
4452 (version "1.7.4")
4453 (source (origin
4454 (method url-fetch)
4455 (uri (string-append
4456 "https://github.com/ShingoFukuyama/helm-swoop/archive/"
4457 version
4458 ".tar.gz"))
4459 (file-name (string-append name "-" version ".tar.gz"))
4460 (sha256
4461 (base32
4462 "1ssivsjzlnkg049cg993l8fp09l5nhpz6asj7w5c91zp5kpc6fh7"))))
4463 (build-system emacs-build-system)
4464 (propagated-inputs
4465 `(("emacs-helm" ,emacs-helm)))
4466 (home-page "https://github.com/ShingoFukuyama/helm-swoop")
4467 (synopsis "Filter and jump to lines in an Emacs buffer using Helm")
4468 (description
4469 "This package builds on the Helm interface to provide several commands
4470 for search-based navigation of buffers.")
4471 (license license:gpl2+)))
4472
4473 (define-public emacs-helm-projectile
4474 (package
4475 (name "emacs-helm-projectile")
4476 (version "0.14.0")
4477 (source (origin
4478 (method url-fetch)
4479 (uri (string-append
4480 "https://github.com/bbatsov/helm-projectile/archive/v"
4481 version
4482 ".tar.gz"))
4483 (file-name (string-append name "-" version ".tar.gz"))
4484 (sha256
4485 (base32
4486 "19cfmilqh8kbab3b2hmx6lyrj73q6vfmn3p730x95g23iz16mnd5"))))
4487 (build-system emacs-build-system)
4488 (propagated-inputs
4489 `(("emacs-dash" ,emacs-dash)
4490 ("emacs-helm" ,emacs-helm)
4491 ("emacs-projectile" ,emacs-projectile)))
4492 (home-page "https://github.com/bbatsov/helm-projectile")
4493 (synopsis "Helm integration for Projectile")
4494 (description
4495 "This Emacs library provides a Helm interface for Projectile.")
4496 (license license:gpl3+)))
4497
4498 (define-public emacs-helm-make
4499 (let ((commit "feae8df22bc4b20705ea08ac9adfc2b43bb348d0")
4500 (revision "1"))
4501 (package
4502 (name "emacs-helm-make")
4503 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
4504 (source
4505 (origin
4506 (method git-fetch)
4507 (uri (git-reference
4508 (url "https://github.com/abo-abo/helm-make.git")
4509 (commit commit)))
4510 (file-name (string-append name "-" version "-checkout"))
4511 (sha256
4512 (base32
4513 "1y2v77mmd1bfkkz51cnk1l0dg3lvvxc39wlamnm7wjns66dbvlam"))))
4514 (build-system emacs-build-system)
4515 (propagated-inputs
4516 `(("emacs-helm" ,emacs-helm)
4517 ("emacs-projectile" ,emacs-projectile)))
4518 (home-page "https://github.com/abo-abo/helm-make")
4519 (synopsis "Select a Makefile target with helm")
4520 (description "@code{helm-make} or @code{helm-make-projectile} will give
4521 you a @code{helm} selection of directory Makefile's targets. Selecting a
4522 target will call @code{compile} on it.")
4523 (license license:gpl3+))))
4524
4525 (define-public emacs-cider
4526 (package
4527 (name "emacs-cider")
4528 (version "0.15.1")
4529 (source (origin
4530 (method url-fetch)
4531 (uri (string-append
4532 "https://github.com/clojure-emacs/cider/archive/v"
4533 version ".tar.gz"))
4534 (file-name (string-append name "-" version ".tar.gz"))
4535 (sha256
4536 (base32
4537 "1j5hlmi14ypszv1f9nvq0jjlz7i742flg0ny3055l7i4x089xx6g"))))
4538 (build-system emacs-build-system)
4539 (arguments
4540 '(#:exclude ; Don't exclude 'cider-test.el'.
4541 '("^\\.dir-locals\\.el$" "^test/")))
4542 (propagated-inputs
4543 `(("emacs-clojure-mode" ,emacs-clojure-mode)
4544 ("emacs-spinner" ,emacs-spinner)
4545 ("emacs-pkg-info" ,emacs-pkg-info)
4546 ("emacs-queue" ,emacs-queue)))
4547 (home-page "https://cider.readthedocs.org/")
4548 (synopsis "Clojure development environment for Emacs")
4549 (description
4550 "CIDER (Clojure Interactive Development Environment that Rocks) aims to
4551 provide an interactive development experience similar to the one you'd get
4552 when programming in Emacs Lisp, Common Lisp (with SLIME or Sly), Scheme (with
4553 Geiser) and Smalltalk.
4554
4555 CIDER is the successor to the now deprecated combination of using SLIME +
4556 swank-clojure for Clojure development.
4557
4558 There are plenty of differences between CIDER and SLIME, but the core ideas
4559 are pretty much the same (and SLIME served as the principle inspiration for
4560 CIDER).")
4561 (license license:gpl3+)))
4562
4563 ;; There hasn't been a tag or release since 2015, so we take the latest
4564 ;; commit.
4565 (define-public emacs-sly
4566 (let ((commit "486bfbe95612bcdc0960c490207970a188e0fbb9")
4567 (revision "1"))
4568 (package
4569 (name "emacs-sly")
4570 (version (string-append "1.0.0-" revision "." (string-take commit 9)))
4571 (source
4572 (origin
4573 (method git-fetch)
4574 (uri (git-reference
4575 (url "https://github.com/joaotavora/sly.git")
4576 (commit commit)))
4577 (file-name (git-file-name name version))
4578 (sha256
4579 (base32
4580 "0ib4q4k3h3qn88pymyjjmlmnpizdn1mfg5gpk5a715nqsgxlg09l"))))
4581 (build-system emacs-build-system)
4582 (arguments
4583 `(#:include (cons "^lib\\/" %default-include)
4584 #:phases
4585 ;; The package provides autoloads.
4586 (modify-phases %standard-phases
4587 (delete 'make-autoloads))))
4588 (home-page "https://github.com/joaotavora/sly")
4589 (synopsis "Sylvester the Cat's Common Lisp IDE")
4590 (description
4591 "SLY is Sylvester the Cat's Common Lisp IDE. SLY is a fork of SLIME, and
4592 contains the following improvements over it:
4593
4594 @enumerate
4595 @item Completely redesigned REPL based on Emacs's own full-featured
4596 @code{comint.el}
4597 @item Live code annotations via a new @code{sly-stickers} contrib
4598 @item Consistent interactive button interface. Everything can be copied to
4599 the REPL.
4600 @item Multiple inspectors with independent history
4601 @item Regexp-capable @code{M-x sly-apropos}
4602 @item Contribs are first class SLY citizens and enabled by default
4603 @item Use ASDF to loads contribs on demand.
4604 @end enumerate
4605
4606 SLY tracks SLIME's bugfixes and all its familar features (debugger, inspector,
4607 xref, etc...) are still available, but with better integration.")
4608 (license license:gpl3+))))
4609
4610 (define-public emacs-lua-mode
4611 (let ((commit "652e299cb967fccca827dda381d61a9c144d97de")
4612 (revision "1"))
4613 (package
4614 (name "emacs-lua-mode")
4615 (version (string-append "20151025." revision "-" (string-take commit 9)))
4616 (home-page "https://github.com/immerrr/lua-mode/")
4617 (source (origin
4618 (method git-fetch)
4619 (uri (git-reference
4620 (url home-page)
4621 (commit commit)))
4622 (file-name (string-append name "-" version ".checkout"))
4623 (sha256
4624 (base32
4625 "053025k930wh0lak6rc1973ynfrmm8zsyzfqhhd39x7abkl41hc9"))))
4626 (build-system emacs-build-system)
4627 (synopsis "Major mode for lua")
4628 (description
4629 "This Emacs package provides a mode for @uref{https://www.lua.org/,
4630 Lua programing language}.")
4631 (license license:gpl2+))))
4632
4633 (define-public emacs-ebuild-mode
4634 (package
4635 (name "emacs-ebuild-mode")
4636 (version "1.37")
4637 (source (origin
4638 (method url-fetch)
4639 (uri (string-append
4640 "https://dev.gentoo.org/~ulm/emacs/ebuild-mode"
4641 "-" version ".tar.xz"))
4642 (file-name (string-append name "-" version ".tar.xz"))
4643 (sha256
4644 (base32
4645 "07dzrdjjczkxdfdgi60h4jjkvzi4p0k9rij2wpfp8s03ay3qldpp"))))
4646 (build-system emacs-build-system)
4647 (home-page "https://devmanual.gentoo.org")
4648 (synopsis "Major modes for Gentoo package files")
4649 (description
4650 "This Emacs package provides modes for ebuild, eclass, eblit, GLEP42
4651 news items, openrc and runscripts.")
4652 (license license:gpl2+)))
4653
4654 (define-public emacs-evil
4655 (package
4656 (name "emacs-evil")
4657 (version "1.2.13")
4658 (source
4659 (origin
4660 (method url-fetch)
4661 (uri (string-append "https://github.com/emacs-evil/evil/archive/"
4662 version ".tar.gz"))
4663 (file-name (string-append name "-" version ".tar.gz"))
4664 (sha256
4665 (base32
4666 "1z63zsxmsc6mh74wv6065carwqmgs7b7lz5044s12xvgsjfbwi8h"))))
4667 (build-system emacs-build-system)
4668 (propagated-inputs
4669 `(("emacs-undo-tree" ,emacs-undo-tree)
4670 ("emacs-goto-chg" ,emacs-goto-chg)))
4671 (home-page "https://github.com/emacs-evil/evil")
4672 (synopsis "Extensible Vi layer for Emacs")
4673 (description
4674 "Evil is an extensible vi layer for Emacs. It emulates the
4675 main features of Vim, and provides facilities for writing custom
4676 extensions.")
4677 (license license:gpl3+)))
4678
4679 (define-public emacs-evil-collection
4680 (let ((commit "f40704a57fd33b4bfad64147a2b771fc8961fdfc")
4681 (revision "1"))
4682 (package
4683 (name "emacs-evil-collection")
4684 (version (git-version "20180425" revision commit))
4685 (source (origin
4686 (method git-fetch)
4687 (uri (git-reference
4688 (url "https://github.com/emacs-evil/evil-collection")
4689 (commit commit)))
4690 (file-name (string-append name "-" version "-checkout"))
4691 (sha256
4692 (base32
4693 "0qn19k0f3isnbi1hkmcf3qjxbyvp23m5ak5ny7623qgwb2nwz1l5"))))
4694 (build-system emacs-build-system)
4695 (propagated-inputs
4696 `(("emacs-evil" ,emacs-evil)))
4697 (home-page "https://github.com/emacs-evil/evil-collection")
4698 (synopsis "Collection of Evil bindings for many major and minor modes")
4699 (description "This is a collection of Evil bindings for the parts of
4700 Emacs that Evil does not cover properly by default, such as @code{help-mode},
4701 @code{M-x calendar}, Eshell and more.")
4702 (license license:gpl3+))))
4703
4704 (define-public emacs-goto-chg
4705 (package
4706 (name "emacs-goto-chg")
4707 (version "1.6")
4708 (source
4709 (origin
4710 (method url-fetch)
4711 ;; There is no versioned source.
4712 (uri "https://www.emacswiki.org/emacs/download/goto-chg.el")
4713 (file-name (string-append "goto-chg-" version ".el"))
4714 (sha256
4715 (base32
4716 "078d6p4br5vips7b9x4v6cy0wxf6m5ij9gpqd4g33bryn22gnpij"))))
4717 (build-system emacs-build-system)
4718 ;; There is no other home page.
4719 (home-page "https://www.emacswiki.org/emacs/goto-chg.el")
4720 (synopsis "Go to the last change in the Emacs buffer")
4721 (description
4722 "This package provides @code{M-x goto-last-change} command that goes to
4723 the point of the most recent edit in the current Emacs buffer. When repeated,
4724 go to the second most recent edit, etc. Negative argument, @kbd{C-u -}, is
4725 used for reverse direction.")
4726 (license license:gpl2+)))
4727
4728 (define-public emacs-monroe
4729 (package
4730 (name "emacs-monroe")
4731 (version "0.3.1")
4732 (source
4733 (origin
4734 (method url-fetch)
4735 (uri (string-append "https://github.com/sanel/monroe/archive/"
4736 version ".tar.gz"))
4737 (file-name (string-append name "-" version ".tar.gz"))
4738 (sha256
4739 (base32
4740 "0icdx8shkd951phlnmcq1vqaxp1l667q5rjscskc5r22aylakh4w"))))
4741 (build-system emacs-build-system)
4742 (home-page "https://github.com/sanel/monroe")
4743 (synopsis "Clojure nREPL client for Emacs")
4744 (description
4745 "Monroe is a nREPL client for Emacs, focused on simplicity and easy
4746 distribution, primarily targeting Clojure users")
4747 (license license:gpl3+)))
4748
4749 (define-public emacs-orgalist
4750 (package
4751 (name "emacs-orgalist")
4752 (version "1.7")
4753 (source
4754 (origin
4755 (method url-fetch)
4756 (uri (string-append "https://elpa.gnu.org/packages/"
4757 "orgalist-" version ".el"))
4758 (sha256
4759 (base32
4760 "13dl0l727vlny3y88gqpngcy90ly5r719s1pbmkva5gmcryb68xr"))))
4761 (build-system emacs-build-system)
4762 (home-page "http://elpa.gnu.org/packages/orgalist.html")
4763 (synopsis "Manage Org-like lists in non-Org buffers")
4764 (description "Write Org mode's plain lists in non-Org buffers. More
4765 specifically, Orgalist supports the syntax of Org mode for numbered,
4766 unnumbered, description items, checkboxes, and counter cookies.
4767
4768 The library also implements radio lists, i.e., lists written in Org
4769 syntax later translated into the host format, e.g., LaTeX or HTML.")
4770 (license license:gpl3+)))
4771
4772 (define-public emacs-writegood-mode
4773 (package
4774 (name "emacs-writegood-mode")
4775 (version "2.0.2")
4776 (home-page "https://github.com/bnbeckwith/writegood-mode")
4777 (source (origin
4778 (method git-fetch)
4779 (uri (git-reference
4780 (url home-page)
4781 (commit (string-append "v" version))))
4782 (sha256
4783 (base32
4784 "1nnjn1r669hvvzfycllwap4w04m8rfsk4nzcg8057m1f263kj31b"))
4785 (file-name (string-append name "-checkout"))))
4786 (build-system emacs-build-system)
4787 (synopsis "Polish up poor writing on the fly")
4788 (description
4789 "This minor mode tries to find and highlight problems with your writing
4790 in English as you type. It primarily detects \"weasel words\" and abuse of
4791 passive voice.")
4792 (license license:gpl3+)))
4793
4794 (define-public emacs-neotree
4795 (package
4796 (name "emacs-neotree")
4797 (version "0.5.2")
4798 (home-page "https://github.com/jaypei/emacs-neotree")
4799 (source (origin
4800 (method url-fetch)
4801 (uri (string-append
4802 "https://github.com/jaypei/" name
4803 "/archive/" version ".tar.gz"))
4804 (sha256
4805 (base32
4806 "1zd6dchwyijnf7kgchfcp51gs938l204dk9z6mljrfqf2zy0gp12"))
4807 (file-name (string-append name "-" version ".tar.gz"))))
4808 (build-system emacs-build-system)
4809 (synopsis "Folder tree view for Emacs")
4810 (description "This Emacs package provides a folder tree view.")
4811 (license license:gpl3+)))
4812
4813 (define-public emacs-org
4814 (package
4815 (name "emacs-org")
4816 ;; emacs-org-contrib inherits from this package. Please update its sha256
4817 ;; checksum as well.
4818 (version "9.1.13")
4819 (source (origin
4820 (method url-fetch)
4821 (uri (string-append "http://elpa.gnu.org/packages/org-"
4822 version ".tar"))
4823 (sha256
4824 (base32
4825 "1vx0n32gvrgy2bl2b4pvxf00cywxwm57gi46f2b2zlrnmd5n85pr"))))
4826 (build-system emacs-build-system)
4827 (home-page "https://orgmode.org/")
4828 (synopsis "Outline-based notes management and organizer")
4829 (description "Org is an Emacs mode for keeping notes, maintaining TODO
4830 lists, and project planning with a fast and effective lightweight markup
4831 language. It also is an authoring system with unique support for literate
4832 programming and reproducible research.")
4833 (license license:gpl3+)))
4834
4835 (define-public emacs-org-contrib
4836 (package
4837 (inherit emacs-org)
4838 (name "emacs-org-contrib")
4839 (version "20180507")
4840 (source (origin
4841 (method url-fetch)
4842 (uri (string-append "https://orgmode.org/elpa/org-plus-contrib-"
4843 version ".tar"))
4844 (sha256
4845 (base32
4846 "190iwjpdjrhg7gl2d4bri2y0y679vlrwd841r6dvhza0yy338d2d"))))
4847 (arguments
4848 `(#:modules ((guix build emacs-build-system)
4849 (guix build utils)
4850 (guix build emacs-utils)
4851 (ice-9 ftw)
4852 (srfi srfi-1))
4853 #:phases
4854 (modify-phases %standard-phases
4855 (add-after 'install 'delete-org-files
4856 (lambda* (#:key inputs outputs #:allow-other-keys)
4857 (let* ((out (assoc-ref outputs "out"))
4858 (org (assoc-ref inputs "emacs-org"))
4859 (contrib-files
4860 (map basename (find-files out)))
4861 (org+contrib-files
4862 (map basename (find-files org)))
4863 (duplicates (lset-intersection
4864 string=? contrib-files org+contrib-files)))
4865 (with-directory-excursion
4866 (string-append
4867 out "/share/emacs/site-lisp/guix.d/org-contrib-" ,version)
4868 (for-each delete-file duplicates))
4869 #t))))))
4870 (propagated-inputs
4871 `(("emacs-org" ,emacs-org)
4872 ("emacs-scel" ,emacs-scel)))
4873 (synopsis "Contributed packages to Org mode")
4874 (description "Org is an Emacs mode for keeping notes, maintaining TODO
4875 lists, and project planning with a fast and effective plain-text system.
4876
4877 This package is equivalent to org-plus-contrib, but only includes additional
4878 files that you would find in @file{contrib/} from the git repository.")))
4879
4880 (define-public emacs-flx
4881 (package
4882 (name "emacs-flx")
4883 (version "0.6.1")
4884 (source
4885 (origin
4886 (method url-fetch)
4887 (uri (string-append "https://github.com/lewang/"
4888 "flx/archive/v" version ".tar.gz"))
4889 (sha256
4890 (base32
4891 "0bkcpnf1j4i2fcc2rllwbz62l00sw2mcia6rm5amgwvlkqavmkv6"))
4892 (file-name (string-append name "-" version ".tar.gz"))))
4893 (build-system emacs-build-system)
4894 (home-page "https://github.com/lewang/flx")
4895 (synopsis "Fuzzy matching for Emacs")
4896 (description
4897 "Flx provides fuzzy matching for emacs a la sublime text.
4898 The sorting algorithm is a balance between word beginnings (abbreviation)
4899 and contiguous matches (substring). The longer the substring match,
4900 the higher it scores. This maps well to how we think about matching.
4901 Flx has support for ido (interactively do things) through flx-ido.")
4902 (license license:gpl3+)))
4903
4904 (define-public emacs-cyberpunk-theme
4905 (package
4906 (name "emacs-cyberpunk-theme")
4907 (version "1.19")
4908 (source
4909 (origin
4910 (method url-fetch)
4911 (uri (string-append "https://github.com/n3mo/cyberpunk-theme.el/"
4912 "archive/" version ".tar.gz"))
4913 (sha256
4914 (base32
4915 "05l5fxw1mn5py6mfhxrzyqjq0d8m5m1akfi46vrgh13r414jffvv"))
4916 (file-name (string-append name "-" version ".tar.gz"))))
4917 (build-system emacs-build-system)
4918 (home-page "https://github.com/n3mo/cyberpunk-theme.el")
4919 (synopsis "Cyberpunk theme for emacs built-in color theme support")
4920 (description
4921 "Cyberpunk color theme for the emacs 24+ built-in color theme support
4922 known loosely as deftheme. Many mode-specific customizations are included.")
4923 (license license:gpl3+)))
4924
4925 (define-public emacs-danneskjold-theme
4926 (let* ((commit "8733d2fe8743e8a01826ea6d4430ef376c727e57")
4927 (revision "1"))
4928 (package
4929 (name "emacs-danneskjold-theme")
4930 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
4931 (home-page "https://github.com/rails-to-cosmos/danneskjold-theme")
4932 (source
4933 (origin
4934 (method git-fetch)
4935 (uri (git-reference
4936 (url home-page)
4937 (commit commit)))
4938 (file-name (string-append name "-" version "-checkout"))
4939 (sha256
4940 (base32
4941 "0s6rbsb0y8i8m5b9xm4gw1p1cxsxdqnqxqqb638pygz9f76mbir1"))))
4942 (build-system emacs-build-system)
4943 (arguments
4944 `(#:phases
4945 (modify-phases %standard-phases
4946 (add-after 'unpack 'delete-screenshots
4947 (lambda _
4948 (delete-file-recursively "screenshots") #t)))))
4949 (synopsis "High-contrast Emacs theme")
4950 (description
4951 "@code{danneskjold-theme} is a high-contrast theme for Emacs.")
4952 (license license:gpl3+))))
4953
4954 (define-public emacs-dream-theme
4955 (let* ((commit "107a11d74365046f28a1802a2bdb5e69e4a7488b")
4956 (revision "1"))
4957 (package
4958 (name "emacs-dream-theme")
4959 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
4960 (source
4961 (origin
4962 (method git-fetch)
4963 (uri (git-reference
4964 (url "https://github.com/djcb/dream-theme")
4965 (commit commit)))
4966 (file-name (string-append name "-" version "-checkout"))
4967 (sha256
4968 (base32
4969 "0za18nfkq4xqm35k6006vsixcbmvmxqgma4iw5sw37h8vmcsdylk"))))
4970 (build-system emacs-build-system)
4971 (home-page "https://github.com/djcb/dream-theme")
4972 (synopsis "High-contrast Emacs theme")
4973 (description
4974 "@code{dream-theme} is a dark, clean theme for Emacs. It is inspired
4975 by zenburn, sinburn and similar themes, but slowly diverging from them.")
4976 (license license:gpl3+))))
4977
4978 (define-public emacs-auto-complete
4979 (package
4980 (name "emacs-auto-complete")
4981 (version "1.5.1")
4982 (source
4983 (origin
4984 (method url-fetch)
4985 (uri (string-append "https://github.com/auto-complete/"
4986 "auto-complete/archive/v" version ".tar.gz"))
4987 (sha256
4988 (base32
4989 "1jvq4lj00hwml75lpmlciazy8f3bbg13gffsfnl835p4qd8l7yqv"))
4990 (file-name (string-append name "-" version ".tar.gz"))))
4991 (build-system emacs-build-system)
4992 (propagated-inputs
4993 `(("emacs-popup" ,emacs-popup)))
4994 (home-page "https://github.com/auto-complete/auto-complete")
4995 (synopsis "Intelligent auto-completion extension for Emacs")
4996 (description
4997 "Auto-Complete is an intelligent auto-completion extension for Emacs.
4998 It extends the standard Emacs completion interface and provides an environment
4999 that allows users to concentrate more on their own work. Its features are:
5000 a visual interface, reduce overhead of completion by using statistic method,
5001 extensibility.")
5002 (license license:gpl3+)))
5003
5004 (define-public m17n-db
5005 (package
5006 (name "m17n-db")
5007 (version "1.7.0")
5008 (source
5009 (origin
5010 (method url-fetch)
5011 (uri (string-append "mirror://savannah/m17n/m17n-db-"
5012 version ".tar.gz"))
5013 (sha256
5014 (base32 "1w08hnsbknrcjlzp42c99bgwc9hzsnf5m4apdv0dacql2s09zfm2"))))
5015 (build-system gnu-build-system)
5016 (inputs
5017 `(("gettext" ,gettext-minimal)))
5018 (arguments
5019 `(#:configure-flags
5020 (list (string-append "--with-charmaps="
5021 (assoc-ref %build-inputs "libc")
5022 "/share/i18n/charmaps"))))
5023 ;; With `guix lint' the home-page URI returns a small page saying
5024 ;; that your browser does not handle frames. This triggers the "URI
5025 ;; returns suspiciously small file" warning.
5026 (home-page "https://www.nongnu.org/m17n/")
5027 (synopsis "Multilingual text processing library (database)")
5028 (description "The m17n library realizes multilingualization of
5029 many aspects of applications. The m17n library represents
5030 multilingual text as an object named M-text. M-text is a string with
5031 attributes called text properties, and designed to substitute for
5032 string in C. Text properties carry any information required to input,
5033 display and edit the text.
5034
5035 This package contains the library database.")
5036 (license license:lgpl2.1+)))
5037
5038 (define-public m17n-lib
5039 (package
5040 (name "m17n-lib")
5041 (version "1.7.0")
5042 (source
5043 (origin
5044 (method url-fetch)
5045 (uri (string-append "mirror://savannah/m17n/m17n-lib-"
5046 version ".tar.gz"))
5047 (sha256
5048 (base32 "10yv730i25g1rpzv6q49m6xn4p8fjm7jdwvik2h70sn8w3hm7f4f"))))
5049 (build-system gnu-build-system)
5050 (inputs
5051 `(("fribidi" ,fribidi)
5052 ("gd" ,gd)
5053 ("libotf" ,libotf)
5054 ("libxft" ,libxft)
5055 ("libxml2" ,libxml2)
5056 ("m17n-db" ,m17n-db)))
5057 (arguments
5058 `(#:parallel-build? #f))
5059 ;; With `guix lint' the home-page URI returns a small page saying
5060 ;; that your browser does not handle frames. This triggers the "URI
5061 ;; returns suspiciously small file" warning.
5062 (home-page "https://www.nongnu.org/m17n/")
5063 (synopsis "Multilingual text processing library (runtime)")
5064 (description "The m17n library realizes multilingualization of
5065 many aspects of applications. The m17n library represents
5066 multilingual text as an object named M-text. M-text is a string with
5067 attributes called text properties, and designed to substitute for
5068 string in C. Text properties carry any information required to input,
5069 display and edit the text.
5070
5071 This package contains the library runtime.")
5072 (license license:lgpl2.1+)))
5073
5074 (define-public emacs-nginx-mode
5075 (package
5076 (name "emacs-nginx-mode")
5077 (version "1.1.4")
5078 (source
5079 (origin
5080 (method url-fetch)
5081 (uri (string-append
5082 "https://github.com/ajc/nginx-mode/archive/v"
5083 version ".tar.gz"))
5084 (file-name (string-append name "-" version ".tar.gz"))
5085 (sha256
5086 (base32
5087 "1lvkj07kq0jkskr2f61vqb5rlrbnaz9a76ikq40w6925i2r970rr"))))
5088 (build-system emacs-build-system)
5089 (home-page "https://github.com/ajc/nginx-mode")
5090 (synopsis "Emacs major mode for editing nginx config files")
5091 (description "This package provides an Emacs major mode for
5092 editing nginx config files.")
5093 (license license:gpl2+)))
5094
5095 (define-public emacs-stream
5096 (package
5097 (name "emacs-stream")
5098 (version "2.2.0")
5099 (home-page "https://github.com/NicolasPetton/stream")
5100 (source
5101 (origin
5102 (method url-fetch)
5103 (file-name (string-append name "-" version ".tar.gz"))
5104 (uri (string-append home-page "/archive/"version ".tar.gz"))
5105 (sha256
5106 (base32 "03ql4nqfz5pn55mjly6clhvc3g7x2d28kj7mrlqmigvjbql39xxc"))))
5107 (build-system emacs-build-system)
5108 (synopsis "Implementation of streams for Emacs")
5109 (description "This library provides an implementation of streams for Emacs.
5110 Streams are implemented as delayed evaluation of cons cells.")
5111 (license license:gpl3+)))
5112
5113 (define-public emacs-el-search
5114 (let ((commit "f26277bfbb3fc3fc74beea6592f294c439796bd4")
5115 (revision "1"))
5116 (package
5117 (name "emacs-el-search")
5118 ;; No ufficial release.
5119 (version (string-append "0.0-" revision "." (string-take commit 7)))
5120 (home-page "https://github.com/emacsmirror/el-search")
5121 (source
5122 (origin
5123 (method git-fetch)
5124 (file-name (string-append name "-" version ".tar.gz"))
5125 (uri (git-reference
5126 (commit commit)
5127 (url (string-append home-page ".git"))))
5128 (sha256
5129 (base32 "12xf40h9sb7xxg2r97gsia94q02543mgiiiw46fzh1ac7b7993g6"))))
5130 (build-system emacs-build-system)
5131 (inputs `(("emacs-stream" ,emacs-stream)))
5132 (synopsis "Expression based interactive search for emacs-lisp-mode")
5133 (description "This package provides expression based interactive search
5134 procedures for emacs-lisp-mode.")
5135 (license license:gpl3+))))
5136
5137 (define-public emacs-ht
5138 (package
5139 (name "emacs-ht")
5140 (version "2.1")
5141 (source
5142 (origin
5143 (method url-fetch)
5144 (uri (string-append
5145 "https://github.com/Wilfred/ht.el/archive/"
5146 version ".tar.gz"))
5147 (file-name (string-append name "-" version ".tar.gz"))
5148 (sha256
5149 (base32
5150 "1lpba36kzxcc966fvsbrfpy8ah9gnvay0yk26gbyjil0rggrbqzj"))))
5151 (build-system emacs-build-system)
5152 (propagated-inputs `(("emacs-dash" ,emacs-dash)))
5153 (home-page "https://github.com/Wilfred/ht.el")
5154 (synopsis "Hash table library for Emacs")
5155 (description
5156 "This package simplifies the use of hash tables in elisp. It also
5157 provides functions to convert hash tables from and to alists and plists.")
5158 (license license:gpl3+)))
5159
5160 (define-public emacs-log4e
5161 (package
5162 (name "emacs-log4e")
5163 (version "0.3.0")
5164 (source
5165 (origin
5166 (method url-fetch)
5167 (uri (string-append
5168 "https://github.com/aki2o/log4e/archive/v"
5169 version ".tar.gz"))
5170 (file-name (string-append name "-" version ".tar.gz"))
5171 (sha256
5172 (base32
5173 "0nbdpbw353snda3v19l9hsm6gimppwnpxj18amm350bm81lyim2g"))))
5174 (build-system emacs-build-system)
5175 (arguments
5176 `(#:phases
5177 (modify-phases %standard-phases
5178 (add-after 'unpack 'remove-tests
5179 ;; Guile builder complains about null characters in some
5180 ;; strings of test files. Remove "test" directory (it is not
5181 ;; needed anyway).
5182 (lambda _
5183 (delete-file-recursively "test"))))))
5184 (home-page "https://github.com/aki2o/log4e")
5185 (synopsis "Logging framework for elisp")
5186 (description
5187 "This package provides a logging framework for elisp. It allows
5188 you to deal with multiple log levels.")
5189 (license license:gpl3+)))
5190
5191 (define-public emacs-gntp
5192 (package
5193 (name "emacs-gntp")
5194 (version "0.1")
5195 (source
5196 (origin
5197 (method url-fetch)
5198 (uri (string-append
5199 "https://github.com/tekai/gntp.el/archive/v"
5200 version ".tar.gz"))
5201 (file-name (string-append name "-" version ".tar.gz"))
5202 (sha256
5203 (base32
5204 "16c1dfkia9yhl206bdhjr3b8kfvqcqr38jl5lq8qsyrrzsnmghny"))))
5205 (build-system emacs-build-system)
5206 (home-page "https://github.com/tekai/gntp.el")
5207 (synopsis "Growl Notification Protocol for Emacs")
5208 (description
5209 "This package implements the Growl Notification Protocol GNTP
5210 described at @uref{http://www.growlforwindows.com/gfw/help/gntp.aspx}.
5211 It is incomplete as it only lets you send but not receive
5212 notifications.")
5213 (license license:bsd-3)))
5214
5215 (define-public emacs-alert
5216 (package
5217 (name "emacs-alert")
5218 (version "1.2")
5219 (source
5220 (origin
5221 (method url-fetch)
5222 (uri (string-append
5223 "https://github.com/jwiegley/alert/archive/v"
5224 version ".tar.gz"))
5225 (file-name (string-append name "-" version ".tar.gz"))
5226 (sha256
5227 (base32
5228 "1693kck3k2iz5zhpmxwqyafxm68hr6gzs60lkxd3j1wlp2c9fwyr"))))
5229 (build-system emacs-build-system)
5230 (propagated-inputs
5231 `(("emacs-gntp" ,emacs-gntp)
5232 ("emacs-log4e" ,emacs-log4e)))
5233 (home-page "https://github.com/jwiegley/alert")
5234 (synopsis "Growl-style notification system for Emacs")
5235 (description
5236 "Alert is a Growl-workalike for Emacs which uses a common notification
5237 interface and multiple, selectable \"styles\", whose use is fully
5238 customizable by the user.")
5239 (license license:gpl2+)))
5240
5241 (define-public emacs-mu4e-alert
5242 (package
5243 (name "emacs-mu4e-alert")
5244 (version "1.0")
5245 (source
5246 (origin
5247 (method url-fetch)
5248 (uri (string-append
5249 "https://github.com/iqbalansari/mu4e-alert/archive/v"
5250 version ".tar.gz"))
5251 (file-name (string-append name "-" version ".tar.gz"))
5252 (sha256
5253 (base32
5254 "07qc834qnxn8xi4bw5nawj8g91bmkzw0r0vahkgysp7r9xrf57gj"))))
5255 (build-system emacs-build-system)
5256 (propagated-inputs
5257 `(("emacs-alert" ,emacs-alert)
5258 ("emacs-s" ,emacs-s)
5259 ("emacs-ht" ,emacs-ht)
5260 ("mu" ,mu)))
5261 (home-page "https://github.com/iqbalansari/mu4e-alert")
5262 (synopsis "Desktop notification for mu4e")
5263 (description
5264 "This package provides desktop notifications for mu4e.
5265 Additionally it can display the number of unread emails in the
5266 mode-line.")
5267 (license license:gpl3+)))
5268
5269 (define-public emacs-pretty-mode
5270 (package
5271 (name "emacs-pretty-mode")
5272 (version "2.0.3")
5273 (source
5274 (origin
5275 (method url-fetch)
5276 (uri (string-append "https://github.com/akatov/pretty-mode/"
5277 "archive/" version ".tar.gz"))
5278 (file-name (string-append name "-" version ".tar.gz"))
5279 (sha256
5280 (base32
5281 "1fan7m4vnqs8kpg7r54kx3g7faadkpkf9kzarfv8n57kq8w157pl"))))
5282 (build-system emacs-build-system)
5283 (home-page "https://github.com/akatov/pretty-mode")
5284 (synopsis "Redisplay parts of the buffer as Unicode symbols")
5285 (description
5286 "Emacs minor mode for redisplaying parts of the buffer as pretty symbols.")
5287 (license license:gpl3+)))
5288
5289 (define-public emacs-yasnippet
5290 (package
5291 (name "emacs-yasnippet")
5292 (version "0.12.2")
5293 (source (origin
5294 (method url-fetch)
5295 (uri (string-append "https://github.com/joaotavora/yasnippet/"
5296 "archive/" version ".tar.gz"))
5297 (file-name (string-append name "-" version ".tar.gz"))
5298 (sha256
5299 (base32
5300 "01jabaz0g67bsziayrxgv74px55fx4nlrcl0csl8f1by2102pwc5"))
5301 (modules '((guix build utils)))
5302 (snippet
5303 '(begin
5304 ;; YASnippet expects a "snippets" subdirectory in the same
5305 ;; directory as yasnippet.el, but we don't install it
5306 ;; because it's a git submodule pointing to an external
5307 ;; repository. Adjust `yas-snippet-dirs' to prevent
5308 ;; warnings about a missing directory.
5309 (substitute* "yasnippet.el"
5310 (("^ +'yas-installed-snippets-dir\\)\\)\n")
5311 "))\n"))))))
5312 (build-system emacs-build-system)
5313 (home-page "https://github.com/joaotavora/yasnippet")
5314 (synopsis "Yet another snippet extension for Emacs")
5315 (description
5316 "YASnippet is a template system for Emacs. It allows you to type an
5317 abbreviation and automatically expand it into function templates.")
5318 (license license:gpl3+)))
5319
5320 (define-public emacs-yasnippet-snippets
5321 (let ((commit "885050d34737e2fb36a3e7759d60c09347bd4ce0")
5322 (revision "1"))
5323 (package
5324 (name "emacs-yasnippet-snippets")
5325 (version (string-append "1-" revision "." (string-take commit 8)))
5326 (source
5327 (origin
5328 (method git-fetch)
5329 (uri (git-reference
5330 (url "https://github.com/AndreaCrotti/yasnippet-snippets")
5331 (commit commit)))
5332 (file-name (string-append name "-" version "-checkout"))
5333 (sha256
5334 (base32
5335 "1m935zgglw0iakzrixld5rcjz3wnj84f8wy2mvc3pggjri9l0qr9"))))
5336 (build-system trivial-build-system)
5337 (arguments
5338 `(#:modules ((ice-9 ftw)
5339 (ice-9 regex)
5340 (guix build utils))
5341 #:builder
5342 (begin
5343 (use-modules (ice-9 ftw)
5344 (ice-9 regex)
5345 (guix build utils))
5346 (with-directory-excursion (assoc-ref %build-inputs "source")
5347 (for-each (lambda (dir)
5348 (copy-recursively
5349 dir
5350 (string-append %output
5351 "/share/emacs/yasnippet-snippets/"
5352 dir)))
5353 (scandir "." (lambda (fname)
5354 (and (string-match "-mode$" fname)
5355 (directory-exists? fname)))))))))
5356 (home-page "https://github.com/AndreaCrotti/yasnippet-snippets")
5357 (synopsis "Collection of YASnippet snippets for many languages")
5358 (description
5359 "Provides Andrea Crotti's collection of YASnippet snippets. After installation,
5360 the snippets will be in \"~/.guix-profile/share/emacs/yasnippet-snippets/\".
5361 To make YASnippet aware of these snippets, add the above directory to
5362 @code{yas-snippet-dirs}.")
5363 (license license:expat))))
5364
5365 (define-public emacs-helm-c-yasnippet
5366 (let ((commit "65ca732b510bfc31636708aebcfe4d2d845b59b0")
5367 (revision "1"))
5368 (package
5369 (name "emacs-helm-c-yasnippet")
5370 (version (string-append "0.6.7" "-" revision "."
5371 (string-take commit 7)))
5372 (source (origin
5373 (method git-fetch)
5374 (uri (git-reference
5375 (url "https://github.com/emacs-jp/helm-c-yasnippet")
5376 (commit commit)))
5377 (file-name (string-append name "-" version "-checkout"))
5378 (sha256
5379 (base32
5380 "1cbafjqlzxbg19xfdqsinsh7afq58gkf44rsg1qxfgm8g6zhr7f8"))))
5381 (build-system emacs-build-system)
5382 (propagated-inputs
5383 `(("emacs-helm" ,emacs-helm)
5384 ("emacs-yasnippet" ,emacs-yasnippet)))
5385 (home-page "https://github.com/emacs-jp/helm-c-yasnippet")
5386 (synopsis "Helm integration for Yasnippet")
5387 (description "This Emacs library provides Helm interface for
5388 Yasnippet.")
5389 (license license:gpl2+))))
5390
5391 (define-public emacs-helm-system-packages
5392 (let ((commit "986b7bd360a705053500c4ce2c9bea03dd7b24a6")
5393 (revision "1"))
5394 (package
5395 (name "emacs-helm-system-packages")
5396 (version (git-version "1.9.0" revision commit))
5397 (source (origin
5398 (method git-fetch)
5399 (uri (git-reference
5400 (url "https://github.com/emacs-helm/helm-system-packages")
5401 (commit commit)))
5402 (file-name (string-append name "-" version "-checkout"))
5403 (sha256
5404 (base32
5405 "19iklhpxgh5xx6h4dysf58nd46lmyb46xj601lf7kbwl6yq0y61f"))))
5406 (build-system emacs-build-system)
5407 (propagated-inputs
5408 `(("emacs-helm" ,emacs-helm)))
5409 (home-page "https://github.com/emacs-helm/helm-system-packages")
5410 (synopsis "Helm System Packages is an interface to your package manager")
5411 (description "List all available packages in Helm (with installed
5412 packages displayed in their own respective face). Fuzzy-search, mark and
5413 execute the desired action over any selections of packages: Install,
5414 uninstall, display packages details (in Org Mode) or insert details at point,
5415 find files owned by packages... And much more, including performing all the
5416 above over the network.")
5417 (license license:gpl3+))))
5418
5419 (define-public emacs-memoize
5420 (package
5421 (name "emacs-memoize")
5422 (version "1.1")
5423 (source
5424 (origin
5425 (method url-fetch)
5426 (uri (string-append
5427 "https://github.com/skeeto/emacs-memoize/archive/"
5428 version ".tar.gz"))
5429 (file-name (string-append name "-" version ".tar.gz"))
5430 (sha256
5431 (base32
5432 "05ijgwi4ymxx31vpjm2pn356j85cykknajn14lrzz8pn5sh0vrg4"))))
5433 (build-system emacs-build-system)
5434 (arguments
5435 `(#:tests? #t
5436 #:test-command '("emacs" "--batch"
5437 "-l" "memoize-test.el"
5438 "-f" "ert-run-tests-batch-and-exit")))
5439 (home-page "https://github.com/skeeto/emacs-memoize")
5440 (synopsis "Emacs lisp memoization library")
5441 (description "@code{emacs-memoize} is an Emacs library for
5442 memoizing functions.")
5443 (license license:unlicense)))
5444
5445 (define-public emacs-linum-relative
5446 (package
5447 (name "emacs-linum-relative")
5448 (version "0.5")
5449 (source
5450 (origin
5451 (method url-fetch)
5452 (uri (string-append
5453 "https://github.com/coldnew/linum-relative/archive/"
5454 version ".tar.gz"))
5455 (file-name (string-append name "-" version ".tar.gz"))
5456 (sha256
5457 (base32
5458 "0s4frvr27866lw1rn3jal9wj5rkz9fx4yiszqv7w06azsdgsqksv"))))
5459 (build-system emacs-build-system)
5460 (home-page "https://github.com/coldnew/linum-relative")
5461 (synopsis "Relative line numbering for Emacs")
5462 (description "@code{emacs-linum-relative} displays the relative line
5463 number on the left margin in Emacs.")
5464 (license license:gpl2+)))
5465
5466 (define-public emacs-idle-highlight
5467 (package
5468 (name "emacs-idle-highlight")
5469 (version "1.1.3")
5470 (source
5471 (origin
5472 (method url-fetch)
5473 (uri (string-append
5474 "https://github.com/nonsequitur/idle-highlight-mode/archive/"
5475 version ".tar.gz"))
5476 (file-name (string-append name "-" version ".tar.gz"))
5477 (sha256
5478 (base32
5479 "0kdv10hrgqpskjh0zvpnzwlkn5bccnqxas62gkws6njln57bf8nl"))))
5480 (build-system emacs-build-system)
5481 (home-page "https://www.emacswiki.org/emacs/IdleHighlight")
5482 (synopsis "Highlights all occurrences of the word the point is on")
5483 (description
5484 "This Emacs package provides @code{idle-highlight-mode} that sets
5485 an idle timer to highlight all occurrences in the buffer of the word under
5486 the point.")
5487 (license license:gpl3+)))
5488
5489 (define-public emacs-ox-twbs
5490 (package
5491 (name "emacs-ox-twbs")
5492 (version "1.1.1")
5493 (source
5494 (origin
5495 (method url-fetch)
5496 (uri (string-append
5497 "https://github.com/marsmining/ox-twbs/archive/v"
5498 version ".tar.gz"))
5499 (file-name (string-append name "-" version ".tar.gz"))
5500 (sha256
5501 (base32
5502 "1zaq8dczq5wijjk36114k2x3hfrqig3lyx6djril6wyk67vczyqs"))))
5503 (build-system emacs-build-system)
5504 (home-page "https://github.com/marsmining/ox-twbs")
5505 (synopsis "Export org-mode docs as HTML compatible with Twitter Bootstrap")
5506 (description
5507 "This Emacs package outputs your org-mode docs with a simple, clean and
5508 modern look. It implements a new HTML back-end for exporting org-mode docs as
5509 HTML compatible with Twitter Bootstrap. By default, HTML is exported with
5510 jQuery and Bootstrap resources included via osscdn.")
5511 (license license:gpl3+)))
5512
5513 (define-public emacs-highlight-sexp
5514 (package
5515 (name "emacs-highlight-sexp")
5516 (version "1.0")
5517 (source
5518 (origin
5519 (method url-fetch)
5520 (uri (string-append
5521 "https://github.com/daimrod/highlight-sexp/archive/v"
5522 version ".tar.gz"))
5523 (file-name (string-append name "-" version ".tar.gz"))
5524 (sha256
5525 (base32
5526 "0jwx87qkln1rg9wmv4qkgkml935fh2pkgrg5x4ca6n5dgb4q6rj1"))))
5527 (build-system emacs-build-system)
5528 (home-page "https://github.com/daimrod/highlight-sexp")
5529 (synopsis "Minor mode that highlights the s-exp at the current position")
5530 (description
5531 "This Emacs package highlights the s-exp at the current position.")
5532 (license license:gpl3+)))
5533
5534 (define-public emacs-highlight-stages
5535 (let ((commit "29cbc5b78261916da042ddb107420083da49b271")
5536 (revision "1"))
5537 (package
5538 (name "emacs-highlight-stages")
5539 (version (string-append "1.1.0" "-" revision "." (string-take commit 7)))
5540 (source
5541 (origin
5542 (method git-fetch)
5543 (uri (git-reference
5544 (url "https://github.com/zk-phi/highlight-stages.git")
5545 (commit commit)))
5546 (file-name (string-append name "-" version "-checkout"))
5547 (sha256
5548 (base32
5549 "0r6nbcrr0dqpgm8dir8ahzjy7rw4nrac48byamzrq96r7ajlxlv0"))
5550 (patches
5551 (search-patches "emacs-highlight-stages-add-gexp.patch"))))
5552 (build-system emacs-build-system)
5553 (home-page "https://github.com/wigust/highlight-stages")
5554 (synopsis "Minor mode that highlights (quasi-quoted) expressions")
5555 (description "@code{highlight-stages} provides an Emacs minor mode that
5556 highlights quasi-quoted expressions.")
5557 (license license:gpl3+))))
5558
5559 (define-public emacspeak
5560 (package
5561 (name "emacspeak")
5562 (version "47.0")
5563 (source
5564 (origin
5565 (method url-fetch)
5566 (uri (string-append
5567 "https://github.com/tvraman/emacspeak/releases/download/"
5568 version "/emacspeak-" version ".tar.bz2"))
5569 (sha256
5570 (base32
5571 "0xbcc266x752y68s3g096m161irzvsqym3axzqn8rb276a8x55n7"))))
5572 (build-system gnu-build-system)
5573 (arguments
5574 '(#:make-flags (list (string-append "prefix="
5575 (assoc-ref %outputs "out")))
5576 #:phases
5577 (modify-phases %standard-phases
5578 (replace 'configure
5579 (lambda _
5580 ;; Configure Emacspeak according to etc/install.org.
5581 (setenv "SHELL" (which "sh"))
5582 (zero? (system* "make" "config"))))
5583 (add-after 'build 'build-espeak
5584 (lambda _
5585 (zero? (system* "make" "espeak"))))
5586 (replace 'install
5587 (lambda* (#:key outputs #:allow-other-keys)
5588 (let* ((out (assoc-ref outputs "out"))
5589 (bin (string-append out "/bin"))
5590 (lisp (string-append out "/share/emacs/site-lisp/emacspeak"))
5591 (info (string-append out "/share/info")))
5592 ;; According to etc/install.org, the Emacspeak directory should
5593 ;; be copied to its installation destination.
5594 (for-each
5595 (lambda (file)
5596 (copy-recursively file (string-append lisp "/" file)))
5597 '("etc" "info" "lisp" "media" "servers" "sounds" "stumpwm"
5598 "xsl"))
5599 ;; Make sure emacspeak is loaded from the correct directory.
5600 (substitute* "etc/emacspeak.sh"
5601 (("exec emacs.*$")
5602 (string-append "exec emacs -l " lisp
5603 "/lisp/emacspeak-setup.el $CL_ALL")))
5604 ;; Install the convenient startup script.
5605 (mkdir-p bin)
5606 (copy-file "etc/emacspeak.sh" (string-append bin "/emacspeak")))
5607 #t))
5608 (add-after 'install 'wrap-program
5609 (lambda* (#:key inputs outputs #:allow-other-keys)
5610 (let* ((out (assoc-ref outputs "out"))
5611 (emacspeak (string-append out "/bin/emacspeak"))
5612 (espeak (string-append (assoc-ref inputs "espeak")
5613 "/bin/espeak")))
5614 ;; The environment variable DTK_PROGRAM tells emacspeak what
5615 ;; program to use for speech.
5616 (wrap-program emacspeak
5617 `("DTK_PROGRAM" ":" prefix (,espeak)))
5618 #t))))
5619 #:tests? #f)) ; no check target
5620 (inputs
5621 `(("espeak" ,espeak)
5622 ("tcl" ,tcl)
5623 ("tclx" ,tclx)))
5624 (native-inputs `(("emacs" ,emacs-minimal)))
5625 (home-page "http://emacspeak.sourceforge.net")
5626 (synopsis "Audio desktop interface for Emacs")
5627 (description
5628 "Emacspeak is a speech interface that allows visually impaired users to
5629 interact independently and efficiently with the computer. Audio formatting
5630 --a technique pioneered by AsTeR-- and full support for W3C's Aural CSS (ACSS)
5631 allows Emacspeak to produce rich aural presentations of electronic information.
5632 By seamlessly blending all aspects of the Internet such as Web-surfing and
5633 messaging, Emacspeak speech-enables local and remote information via a
5634 consistent and well-integrated user interface.")
5635 (license license:gpl2+)))
5636
5637 (define-public emacs-adaptive-wrap
5638 (package
5639 (name "emacs-adaptive-wrap")
5640 (version "0.5.1")
5641 (source (origin
5642 (method url-fetch)
5643 (uri (string-append
5644 "http://elpa.gnu.org/packages/adaptive-wrap-"
5645 version ".el"))
5646 (sha256
5647 (base32
5648 "0qi7gjprcpywk2daivnlavwsx53hl5wcqvpxbwinvigg42vxh3ll"))))
5649 (build-system emacs-build-system)
5650 (home-page "http://elpa.gnu.org/packages/adaptive-wrap.html")
5651 (synopsis "Smart line-wrapping with wrap-prefix")
5652 (description
5653 "This Emacs package provides the @code{adaptive-wrap-prefix-mode}
5654 minor mode which sets the wrap-prefix property on the fly so that
5655 single-long-line paragraphs get word-wrapped in a way similar to what
5656 you'd get with @kbd{M-q} using @code{adaptive-fill-mode}, but without
5657 actually changing the buffer's text.")
5658 (license license:gpl3+)))
5659
5660 (define-public emacs-diff-hl
5661 (package
5662 (name "emacs-diff-hl")
5663 (version "1.8.4")
5664 (source
5665 (origin
5666 (method url-fetch)
5667 (uri (string-append "http://elpa.gnu.org/packages/diff-hl-"
5668 version ".tar"))
5669 (sha256
5670 (base32
5671 "0axhidc3cym7a2x4rpxf4745qss9s9ajyg4s9h5b4zn7v7fyp71n"))))
5672 (build-system emacs-build-system)
5673 (home-page "https://github.com/dgutov/diff-hl")
5674 (synopsis
5675 "Highlight uncommitted changes using VC")
5676 (description
5677 "@code{diff-hl-mode} highlights uncommitted changes on the side of the
5678 window (using the fringe, by default), allows you to jump between
5679 the hunks and revert them selectively.")
5680 (license license:gpl3+)))
5681
5682 (define-public emacs-diminish
5683 (package
5684 (name "emacs-diminish")
5685 (version "0.45")
5686 (source
5687 (origin
5688 (method url-fetch)
5689 (uri (string-append
5690 "https://github.com/myrjola/diminish.el/archive/v"
5691 version ".tar.gz"))
5692 (file-name (string-append name "-" version ".tar.gz"))
5693 (sha256
5694 (base32
5695 "0i3629sv5cfrrb00hcnmaqzgs8mk36yasc1ax3ry1ga09nr6rkj9"))))
5696 (build-system emacs-build-system)
5697 (home-page "https://github.com/myrjola/diminish.el")
5698 (synopsis "Diminish minor modes with no modeline display")
5699 (description "@code{emacs-diminish} implements hiding or
5700 abbreviation of the mode line displays (lighters) of minor modes.")
5701 (license license:gpl2+)))
5702
5703 (define-public emacs-use-package
5704 (package
5705 (name "emacs-use-package")
5706 (version "2.3")
5707 (source
5708 (origin
5709 (method url-fetch)
5710 (uri (string-append
5711 "https://github.com/jwiegley/use-package/archive/"
5712 version ".tar.gz"))
5713 (file-name (string-append name "-" version ".tar.gz"))
5714 (sha256
5715 (base32
5716 "0x4h136jb3imyli6zsh7dyzjrra6pv0v6b0yk94jdng3rdfcmsf5"))))
5717 (build-system emacs-build-system)
5718 (propagated-inputs
5719 `(("emacs-diminish" ,emacs-diminish)))
5720 (arguments
5721 ;; Tests fail in this release, but have been fixed in
5722 ;; upstream commit 7956d40eed57d6c06bef36ebc174cf57d934e30d
5723 `(#:tests? #f
5724 #:test-command '("emacs" "--batch"
5725 "-l" "use-package-tests.el"
5726 "-f" "ert-run-tests-batch-and-exit")))
5727 (home-page "https://github.com/jwiegley/use-package")
5728 (synopsis "Declaration for simplifying your .emacs")
5729 (description "The use-package macro allows you to isolate package
5730 configuration in your @file{.emacs} file in a way that is both
5731 performance-oriented and tidy.")
5732 (license license:gpl2+)))
5733
5734 (define-public emacs-strace-mode
5735 (let* ((commit "6a69b4b06db6797af56f33eda5cb28af94e59f11")
5736 (revision "1"))
5737 (package
5738 (name "emacs-strace-mode")
5739 (version (string-append "0.0.2-" revision "." (string-take commit 7)))
5740 (source (origin
5741 (method git-fetch)
5742 (uri (git-reference
5743 (url "https://github.com/pkmoore/strace-mode")
5744 (commit commit)))
5745 (file-name (string-append name "-" version "-checkout"))
5746 (sha256
5747 (base32
5748 "1lbk2kzdznf2bkfazizfbimaxxzfzv00lrz1ran9dc2zqbc0bj9f"))))
5749 (build-system emacs-build-system)
5750 (home-page "https://github.com/pkmoore/strace-mode")
5751 (synopsis "Emacs major mode to highlight strace outputs")
5752 (description "@code{emacs-strace-mode} provides an Emacs major mode
5753 highlighting strace outputs.")
5754 (license license:gpl3+))))
5755
5756 (define-public emacs-default-encrypt
5757 (package
5758 (name "emacs-default-encrypt")
5759 (version "4.3")
5760 (source
5761 (origin
5762 (method url-fetch)
5763 (uri (string-append
5764 "https://www.informationelle-selbstbestimmung-im-internet.de"
5765 "/emacs/jl-encrypt" version "/jl-encrypt.el"))
5766 (file-name (string-append "jl-encrypt-" version ".el"))
5767 (sha256
5768 (base32
5769 "16i3rlfp3jxlqvndn8idylhmczync3gwmy8a019v29vyr48rnnr0"))))
5770 (build-system emacs-build-system)
5771 (home-page "https://www.informationelle-selbstbestimmung-im-internet.de/Emacs.html")
5772 (synopsis "Automatically encrypt or sign Gnus messages in Emacs")
5773 (description
5774 "DefaultEncrypt is designed to be used with Gnus in Emacs. It
5775 automatically encrypts messages that you send (e.g., email) when public keys
5776 for all recipients are available, and it protects you from accidentally
5777 sending un-encrypted messages. It can also be configured to automatically
5778 sign messages that you send. For details and instructions on how to use
5779 DefaultEncrypt, please refer to the home page or read the comments in the
5780 source file, @file{jl-encrypt.el}.")
5781 (license license:gpl3+)))
5782
5783 (define-public emacs-htmlize
5784 (package
5785 (name "emacs-htmlize")
5786 (version "1.51")
5787 (source
5788 (origin
5789 (method url-fetch)
5790 (uri (string-append
5791 "https://github.com/hniksic/emacs-htmlize/archive/release/"
5792 version ".tar.gz"))
5793 (file-name (string-append name "-" version ".tar.gz"))
5794 (sha256
5795 (base32
5796 "1fy1lybzrxl8a8r88f6p19nz8ygmvcxhxbnymkxh7jqaz25viwld"))))
5797 (build-system emacs-build-system)
5798 (home-page "https://github.com/hniksic/emacs-htmlize")
5799 (synopsis "Convert buffer text and decorations to HTML")
5800 (description "@code{emacs-htmlize} converts the buffer text and
5801 the associated decorations to HTML. Output to CSS, inline CSS and
5802 fonts is supported.")
5803 (license license:gpl2+)))
5804
5805 (define-public emacs-xmlgen
5806 (package
5807 (name "emacs-xmlgen")
5808 (version "0.5")
5809 (source
5810 (origin
5811 (method url-fetch)
5812 (uri (string-append
5813 "https://github.com/philjackson/xmlgen/archive/"
5814 version ".tar.gz"))
5815 (file-name (string-append name "-" version ".tar.gz"))
5816 (sha256
5817 (base32
5818 "0zay490vjby3f7455r0vydmjg7q1gwc78hilpfb0rg4gwz224z8r"))))
5819 (build-system emacs-build-system)
5820 (arguments
5821 `(#:tests? #t
5822 #:test-command '("emacs" "--batch"
5823 "-l" "xmlgen-test.el"
5824 "-f" "ert-run-tests-batch-and-exit")))
5825 (home-page "https://github.com/philjackson/xmlgen")
5826 (synopsis "S-expression to XML domain specific language (DSL) in
5827 Emacs Lisp")
5828 (description "@code{emacs-xmlgen} provides S-expression to XML
5829 conversion for Emacs Lisp.")
5830 (license license:gpl2+)))
5831
5832 (define-public emacs-cdlatex
5833 (package
5834 (name "emacs-cdlatex")
5835 (version "4.7")
5836 (source
5837 (origin
5838 (method url-fetch)
5839 (uri (string-append
5840 "https://github.com/cdominik/cdlatex/archive/"
5841 version ".tar.gz"))
5842 (file-name (string-append name "-" version ".tar.gz"))
5843 (sha256
5844 (base32
5845 "0pivapphmykc6vhvpx7hdyl55ls37vc4jcrxpvs4yk7jzcmwa9xp"))))
5846 (build-system emacs-build-system)
5847 (propagated-inputs
5848 `(("emacs-auctex" ,emacs-auctex)))
5849 (home-page "https://github.com/cdominik/cdlatex")
5850 (synopsis "Fast Emacs input methods for LaTeX environments and
5851 math")
5852 (description "CDLaTeX is an Emacs minor mode supporting fast
5853 insertion of environment templates and math in LaTeX. Similar
5854 commands are also offered as part of the AUCTeX package, but it is not
5855 the same - CDLaTeX focuses on speediness for inserting LaTeX
5856 constructs.")
5857 (license license:gpl3+)))
5858
5859 (define-public emacs-cnfonts
5860 (package
5861 (name "emacs-cnfonts")
5862 (version "0.9.1")
5863 (source (origin
5864 (method url-fetch)
5865 (uri (string-append
5866 "https://github.com/tumashu/cnfonts/archive/v"
5867 version ".tar.gz"))
5868 (file-name (string-append name "-" version ".tar.gz"))
5869 (sha256
5870 (base32
5871 "1l6cgcvc6md1zq97ccczankpyi0k4vjx6apflny6kjq3p33lyhf4"))))
5872 (build-system emacs-build-system)
5873 (home-page "https://github.com/tumashu/cnfonts")
5874 (synopsis "Emacs Chinese fonts setup tool")
5875 (description "cnfonts is a Chinese fonts setup tool, allowing for easy
5876 configuration of Chinese fonts.")
5877 (license license:gpl2+)))
5878
5879 (define-public emacs-php-mode
5880 (package
5881 (name "emacs-php-mode")
5882 (version "20171225.342")
5883 (source (origin
5884 (method url-fetch)
5885 (uri (string-append
5886 "https://melpa.org/packages/php-mode-"
5887 version ".tar"))
5888 (sha256
5889 (base32
5890 "1zz682f34v4wsm2dyj1gnrnvsrqdq1cy7j8p6cvc398w2fziyg3q"))))
5891 (build-system emacs-build-system)
5892 (home-page "https://github.com/ejmr/php-mode")
5893 (synopsis "Major mode for editing PHP code")
5894 (description "@code{php-mode} is a major mode for editing PHP source
5895 code. It's an extension of C mode; thus it inherits all C mode's navigation
5896 functionality. But it colors according to the PHP grammar and indents
5897 according to the PEAR coding guidelines. It also includes a couple handy
5898 IDE-type features such as documentation search and a source and class
5899 browser.")
5900 (license license:gpl3+)))
5901
5902 (define-public emacs-pos-tip
5903 (package
5904 (name "emacs-pos-tip")
5905 (version "0.4.6")
5906 (source (origin
5907 (method url-fetch)
5908 (uri (string-append
5909 "https://github.com/pitkali/pos-tip/archive/"
5910 version ".tar.gz"))
5911 (file-name (string-append name "-" version ".tar.gz"))
5912 (sha256
5913 (base32
5914 "12jqfy26vjk7lq0aa8yn8zqj8c85fkvx7y9prj0pcn4wqiz2ad2r"))))
5915 (build-system emacs-build-system)
5916 ;; The following functions and variables needed by emacs-pos-tip are
5917 ;; not included in emacs-minimal:
5918 ;; x-display-pixel-width, x-display-pixel-height, x-show-tip
5919 (arguments `(#:emacs ,emacs))
5920 (home-page "https://github.com/pitkali/pos-tip")
5921 (synopsis "Show tooltip at point")
5922 (description "The standard library tooltip.el provides a function for
5923 displaying a tooltip at the mouse position. However, locating a tooltip at an
5924 arbitrary buffer position in a window is not easy. Pos-tip provides such a
5925 function to be used by other frontend programs.")
5926 (license license:gpl2+)))
5927
5928 (define-public emacs-pyim-basedict
5929 (package
5930 (name "emacs-pyim-basedict")
5931 (version "0.3.1")
5932 (source (origin
5933 (method url-fetch)
5934 (uri (string-append
5935 "https://github.com/tumashu/pyim-basedict/archive/v"
5936 version ".tar.gz"))
5937 (file-name (string-append name "-" version ".tar.gz"))
5938 (sha256
5939 (base32
5940 "0nfgxviavkgrpyfsw60xsws4fk51fcmgl8fp6zf4ibqjjbp53n3n"))))
5941 (build-system emacs-build-system)
5942 (home-page "https://github.com/tumashu/pyim-basedict")
5943 (synopsis "Input method dictionary of pyim")
5944 (description "Pyim-basedict is the default pinyin input method dictionary,
5945 containing words from the rime project.")
5946 (license license:gpl2+)))
5947
5948 (define-public emacs-pyim
5949 (package
5950 (name "emacs-pyim")
5951 (version "1.6.4")
5952 (source (origin
5953 (method url-fetch)
5954 (uri (string-append
5955 "https://github.com/tumashu/pyim/archive/v"
5956 version ".tar.gz"))
5957 (file-name (string-append name "-" version ".tar.gz"))
5958 (sha256
5959 (base32
5960 "0hfg8q9hcjifvnlghw2g94dfxfirms2psq2ghqb28fhkf0lks13r"))))
5961 (build-system emacs-build-system)
5962 (propagated-inputs
5963 `(("emacs-async" ,emacs-async)
5964 ("emacs-pyim-basedict" ,emacs-pyim-basedict)
5965 ("emacs-popup" ,emacs-popup)
5966 ("emacs-pos-tip" ,emacs-pos-tip)))
5967 (home-page "https://github.com/tumashu/pyim")
5968 (synopsis "Chinese input method")
5969 (description "Chinese input method which supports quanpin, shuangpin, wubi
5970 and cangjie.")
5971 (license license:gpl2+)))
5972
5973 (define-public emacs-el2org
5974 (package
5975 (name "emacs-el2org")
5976 (version "0.6.0")
5977 (source (origin
5978 (method url-fetch)
5979 (uri (string-append
5980 "https://github.com/tumashu/el2org/archive/v"
5981 version ".tar.gz"))
5982 (file-name (string-append name "-" version ".tar.gz"))
5983 (sha256
5984 (base32
5985 "0gd3km1swwvg2w0kdi7370f54wgrflxn63gjgssfjc1iyc9sbqwq"))))
5986 (build-system emacs-build-system)
5987 (home-page "https://github.com/tumashu/el2org")
5988 (synopsis "Convert Emacs-lisp file to org file")
5989 (description "El2org is a simple tool, which can convert Emacs-lisp file
5990 to org file, you can use this tool to write orgify commentary.")
5991 (license license:gpl2+)))
5992
5993 (define-public emacs-mustache
5994 (package
5995 (name "emacs-mustache")
5996 (version "0.23")
5997 (source (origin
5998 (method url-fetch)
5999 (uri (string-append
6000 "https://github.com/Wilfred/mustache.el/archive/"
6001 version ".tar.gz"))
6002 (file-name (string-append name "-" version ".tar.gz"))
6003 (sha256
6004 (base32
6005 "0k9lcgil7kykkv1ylrgwy1g13ldjjmgi2cwmysgyb2vlj3jbwpdj"))))
6006 (build-system emacs-build-system)
6007 (propagated-inputs
6008 `(("emacs-dash" ,emacs-dash)
6009 ("emacs-ht" ,emacs-ht)
6010 ("emacs-s" ,emacs-s)))
6011 (home-page "https://github.com/Wilfred/mustache.el")
6012 (synopsis "Mustache templating library for Emacs")
6013 (description "Mustache templating library for Emacs, mustache is
6014 a simple web template system, which is described as a logic-less system
6015 because it lacks any explicit control flow statements, both looping and
6016 conditional evaluation can be achieved using section tags processing lists
6017 and lambdas.")
6018 (license license:gpl3+)))
6019
6020 (define-public emacs-org2web
6021 (package
6022 (name "emacs-org2web")
6023 (version "0.9.1")
6024 (source (origin
6025 (method url-fetch)
6026 (uri (string-append
6027 "https://github.com/tumashu/org2web/archive/v"
6028 version ".tar.gz"))
6029 (file-name (string-append name "-" version ".tar.gz"))
6030 (sha256
6031 (base32
6032 "1c0ixcphlhp4c4qdiwq40bc3yp1gp1llp8pxrk4s7ny9n68s52zp"))))
6033 (build-system emacs-build-system)
6034 (propagated-inputs
6035 `(("emacs-dash" ,emacs-dash)
6036 ("emacs-el2org" ,emacs-el2org)
6037 ("emacs-ht" ,emacs-ht)
6038 ("emacs-mustache" ,emacs-mustache)
6039 ("emacs-simple-httpd" ,emacs-simple-httpd)))
6040 (home-page "https://github.com/tumashu/org2web")
6041 (synopsis "Static site generator based on org-mode ")
6042 (description "Org2web is a static site generator based on org-mode,
6043 which code derived from Kelvin H's org-page.")
6044 (license license:gpl2+)))
6045
6046 (define-public emacs-xelb
6047 (package
6048 (name "emacs-xelb")
6049 (version "0.14")
6050 (source (origin
6051 (method url-fetch)
6052 (uri (string-append "https://elpa.gnu.org/packages/xelb-"
6053 version ".tar"))
6054 (sha256
6055 (base32
6056 "09flnbjy9ck784kprz036rwg9qk45hpv0w5hz3pz3zhwyk57fv74"))))
6057 (build-system emacs-build-system)
6058 ;; The following functions and variables needed by emacs-xelb are
6059 ;; not included in emacs-minimal:
6060 ;; x-display-screens, x-keysym-table, x-alt-keysym, x-meta-keysym
6061 ;; x-hyper-keysym, x-super-keysym, libxml-parse-xml-region
6062 ;; x-display-pixel-width, x-display-pixel-height
6063 (arguments
6064 `(#:emacs ,emacs
6065 #:phases
6066 (modify-phases %standard-phases
6067 (add-after 'unpack 'regenerate-el-files
6068 (lambda* (#:key inputs #:allow-other-keys)
6069 (zero? (system* "make"
6070 (string-append "PROTO_PATH="
6071 (assoc-ref inputs "xcb-proto")
6072 "/share/xcb")
6073 (string-append "EMACS_BIN="
6074 (assoc-ref inputs "emacs")
6075 "/bin/emacs -Q"))))))))
6076 (native-inputs `(("xcb-proto" ,xcb-proto)))
6077 (home-page "https://github.com/ch11ng/xelb")
6078 (synopsis "X protocol Emacs Lisp binding")
6079 (description "@code{emacs-xelb} is a pure Emacs Lisp implementation of the
6080 X11 protocol based on the XML description files from the XCB project. It
6081 features an object-oriented API and permits a certain degree of concurrency.
6082 It should enable you to implement low-level X11 applications.")
6083 (license license:gpl3+)))
6084
6085 (define-public emacs-exwm
6086 (package
6087 (name "emacs-exwm")
6088 (version "0.18")
6089 (synopsis "Emacs X window manager")
6090 (source (origin
6091 (method url-fetch)
6092 (uri (string-append "https://elpa.gnu.org/packages/exwm-"
6093 version ".tar"))
6094 (sha256
6095 (base32
6096 "1shz5bf4v4gg3arjaaldics5qkg3aiiaf3ngys8lb6qyxhcpvh6q"))))
6097 (build-system emacs-build-system)
6098 (propagated-inputs
6099 `(("emacs-xelb" ,emacs-xelb)))
6100 (inputs
6101 `(("xhost" ,xhost)
6102 ("dbus" ,dbus)))
6103 ;; The following functions and variables needed by emacs-exwm are
6104 ;; not included in emacs-minimal:
6105 ;; scroll-bar-mode, fringe-mode
6106 ;; x-display-pixel-width, x-display-pixel-height
6107 (arguments
6108 `(#:emacs ,emacs
6109 #:phases
6110 (modify-phases %standard-phases
6111 (add-after 'build 'install-xsession
6112 (lambda* (#:key inputs outputs #:allow-other-keys)
6113 (let* ((out (assoc-ref outputs "out"))
6114 (xsessions (string-append out "/share/xsessions"))
6115 (bin (string-append out "/bin"))
6116 (exwm-executable (string-append bin "/exwm")))
6117 ;; Add a .desktop file to xsessions
6118 (mkdir-p xsessions)
6119 (mkdir-p bin)
6120 (with-output-to-file
6121 (string-append xsessions "/exwm.desktop")
6122 (lambda _
6123 (format #t "[Desktop Entry]~@
6124 Name=~a~@
6125 Comment=~a~@
6126 Exec=~a~@
6127 TryExec=~@*~a~@
6128 Type=Application~%" ,name ,synopsis exwm-executable)))
6129 ;; Add a shell wrapper to bin
6130 (with-output-to-file exwm-executable
6131 (lambda _
6132 (format #t "#!~a ~@
6133 ~a +SI:localuser:$USER ~@
6134 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
6135 (string-append (assoc-ref inputs "bash") "/bin/sh")
6136 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
6137 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
6138 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
6139 '(cond
6140 ((file-exists-p "~/.exwm")
6141 (load-file "~/.exwm"))
6142 ((not (featurep 'exwm))
6143 (require 'exwm)
6144 (require 'exwm-config)
6145 (exwm-config-default)
6146 (message (concat "exwm configuration not found. "
6147 "Falling back to default configuration...")))))))
6148 (chmod exwm-executable #o555)
6149 #t))))))
6150 (home-page "https://github.com/ch11ng/exwm")
6151 (description "EXWM is a full-featured tiling X window manager for Emacs
6152 built on top of XELB.")
6153 (license license:gpl3+)))
6154
6155 (define-public emacs-switch-window
6156 (package
6157 (name "emacs-switch-window")
6158 (version "1.5.1")
6159 (source (origin
6160 (method url-fetch)
6161 (uri (string-append
6162 "https://github.com/dimitri/switch-window/archive/v"
6163 version ".tar.gz"))
6164 (file-name (string-append name "-" version ".tar.gz"))
6165 (sha256
6166 (base32
6167 "07f99apxscwvsp2bjxsbi462c433kcglrjh6xl0gyafs1nvvvnd8"))))
6168 (build-system emacs-build-system)
6169 (home-page "https://github.com/dimitri/switch-window")
6170 (synopsis "Emacs window switch tool")
6171 (description "Switch-window is an emacs window switch tool, which
6172 offer a visual way to choose a window to switch to, delete, split or
6173 other operations.")
6174 (license license:wtfpl2)))
6175
6176 (define-public emacs-exwm-x
6177 (package
6178 (name "emacs-exwm-x")
6179 (version "1.8.1")
6180 (synopsis "Derivative window manager based on EXWM")
6181 (source (origin
6182 (method url-fetch)
6183 (uri (string-append
6184 "https://github.com/tumashu/exwm-x/archive/v"
6185 version ".tar.gz"))
6186 (file-name (string-append name "-" version ".tar.gz"))
6187 (sha256
6188 (base32
6189 "0ali1100aacq4zbvcck80h51pvw204jlxhn4aikkqq4ngbx03kkr"))))
6190 (build-system emacs-build-system)
6191 (propagated-inputs
6192 `(("emacs-exwm" ,emacs-exwm)
6193 ("emacs-switch-window" ,emacs-switch-window)
6194 ("emacs-ivy" ,emacs-ivy)
6195 ("emacs-use-package" ,emacs-use-package)))
6196 (inputs
6197 `(("xhost" ,xhost)
6198 ("dbus" ,dbus)))
6199 ;; Need emacs instead of emacs-minimal,
6200 ;; for emacs's bin path will be inserted into bin/exwm-x file.
6201 (arguments
6202 `(#:emacs ,emacs
6203 #:phases
6204 (modify-phases %standard-phases
6205 (add-after 'build 'install-xsession
6206 (lambda* (#:key inputs outputs #:allow-other-keys)
6207 (let* ((out (assoc-ref outputs "out"))
6208 (xsessions (string-append out "/share/xsessions"))
6209 (bin (string-append out "/bin"))
6210 (exwm-executable (string-append bin "/exwm-x")))
6211 ;; Add a .desktop file to xsessions
6212 (mkdir-p xsessions)
6213 (mkdir-p bin)
6214 (with-output-to-file
6215 (string-append xsessions "/exwm-x.desktop")
6216 (lambda _
6217 (format #t "[Desktop Entry]~@
6218 Name=~a~@
6219 Comment=~a~@
6220 Exec=~a~@
6221 TryExec=~@*~a~@
6222 Type=Application~%" ,name ,synopsis exwm-executable)))
6223 ;; Add a shell wrapper to bin
6224 (with-output-to-file exwm-executable
6225 (lambda _
6226 (format #t "#!~a ~@
6227 ~a +SI:localuser:$USER ~@
6228 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
6229 (string-append (assoc-ref inputs "bash") "/bin/sh")
6230 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
6231 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
6232 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
6233 '(require 'exwmx-loader))))
6234 (chmod exwm-executable #o555)
6235 #t))))))
6236 (home-page "https://github.com/tumashu/exwm-x")
6237 (description "EXWM-X is a derivative window manager based on EXWM, with focus
6238 on mouse-control.")
6239 (license license:gpl3+)))
6240
6241 (define-public emacs-gnuplot
6242 (package
6243 (name "emacs-gnuplot")
6244 (version "0.7.0")
6245 (source
6246 (origin
6247 (method url-fetch)
6248 (uri (string-append
6249 "https://github.com/bruceravel/gnuplot-mode/archive/"
6250 version ".tar.gz"))
6251 (file-name (string-append name "-" version ".tar.gz"))
6252 (sha256
6253 (base32
6254 "0glzymrn138lwig7p4cj17x4if5jisr6l4g6wcbxisqkqgc1h01i"))))
6255 (build-system gnu-build-system)
6256 (native-inputs `(("emacs" ,emacs-minimal)))
6257 (arguments
6258 (let ((elisp-dir (string-append "/share/emacs/site-lisp/guix.d"
6259 "/gnuplot-" version)))
6260 `(#:modules ((guix build gnu-build-system)
6261 (guix build utils)
6262 (guix build emacs-utils))
6263 #:imported-modules (,@%gnu-build-system-modules
6264 (guix build emacs-utils))
6265 #:configure-flags
6266 (list (string-append "EMACS=" (assoc-ref %build-inputs "emacs")
6267 "/bin/emacs")
6268 (string-append "--with-lispdir=" %output ,elisp-dir))
6269 #:phases
6270 (modify-phases %standard-phases
6271 (add-after 'install 'generate-autoloads
6272 (lambda* (#:key outputs #:allow-other-keys)
6273 (emacs-generate-autoloads
6274 "gnuplot"
6275 (string-append (assoc-ref outputs "out") ,elisp-dir))
6276 #t))))))
6277 (home-page "https://github.com/bruceravel/gnuplot-mode")
6278 (synopsis "Emacs major mode for interacting with gnuplot")
6279 (description "@code{emacs-gnuplot} is an emacs major mode for interacting
6280 with gnuplot.")
6281 (license license:gpl2+)))
6282
6283 (define-public emacs-transpose-frame
6284 (package
6285 (name "emacs-transpose-frame")
6286 (version "0.1.0")
6287 (source
6288 (origin
6289 (method url-fetch)
6290 (uri "http://www.emacswiki.org/emacs/download/transpose-frame.el")
6291 (file-name (string-append "transpose-frame-" version ".el"))
6292 (sha256
6293 (base32
6294 "1f67yksgw9s6j0033hmqzaxx2a93jm11sd5ys7cc3li5gfh680m4"))))
6295 (build-system emacs-build-system)
6296 (home-page "https://www.emacswiki.org/emacs/TransposeFrame")
6297 (synopsis "Transpose window arrangement in current frame")
6298 (description "@code{emacs-transpose-frame} provides some interactive
6299 functions which allows users to transpose windows arrangement in currently
6300 selected frame.")
6301 (license license:bsd-2)))
6302
6303 (define-public emacs-key-chord
6304 (package
6305 (name "emacs-key-chord")
6306 (version "0.6")
6307 (source
6308 (origin
6309 (method url-fetch)
6310 (uri "https://www.emacswiki.org/emacs/download/key-chord.el")
6311 (file-name (string-append "key-chord-" version ".el"))
6312 (sha256
6313 (base32
6314 "03m44pqggfrd53nh9dvpdjgm0rvca34qxmd30hr33hzprzjambxg"))))
6315 (build-system emacs-build-system)
6316 (home-page "https://www.emacswiki.org/emacs/key-chord.el")
6317 (synopsis "Map pairs of simultaneously pressed keys to Emacs commands")
6318 (description "@code{emacs-key-chord} provides @code{key-chord-mode}, a
6319 mode for binding key chords to commands. A key chord is defined as two keys
6320 pressed simultaneously or a single key quickly pressed twice.")
6321 (license license:gpl2+)))
6322
6323 (define-public emacs-evil-surround
6324 (package
6325 (name "emacs-evil-surround")
6326 (version "1.0.0")
6327 (source
6328 (origin
6329 (method url-fetch)
6330 (uri (string-append
6331 "https://github.com/timcharper/evil-surround/archive/v"
6332 version ".tar.gz"))
6333 (file-name (string-append name "-" version ".tar.gz"))
6334 (sha256
6335 (base32
6336 "0p572jgic3q1ia1nz37kclir729ay6i2f4sa7wnaapyxly2lwb3r"))))
6337 (build-system emacs-build-system)
6338 (propagated-inputs
6339 `(("emacs-evil" ,emacs-evil)))
6340 (home-page "https://github.com/timcharper/evil-surround")
6341 (synopsis "Easily modify surrounding parantheses and quotes")
6342 (description "@code{emacs-evil-surround} allows easy deletion, change and
6343 addition of surrounding pairs, such as parantheses and quotes, in evil mode.")
6344 (license license:gpl3+)))
6345
6346 (define-public emacs-evil-commentary
6347 (package
6348 (name "emacs-evil-commentary")
6349 (version "2.1.1")
6350 (source
6351 (origin
6352 (method url-fetch)
6353 (uri (string-append
6354 "https://github.com/linktohack/evil-commentary/archive/v"
6355 version ".tar.gz"))
6356 (file-name (string-append name "-" version ".tar.gz"))
6357 (sha256
6358 (base32
6359 "1jdya0i921nwskwrzdsj0vrr3m7gm49dy6f6pk9p5nxaarfxk230"))))
6360 (build-system emacs-build-system)
6361 (propagated-inputs
6362 `(("emacs-evil" ,emacs-evil)))
6363 (home-page "https://github.com/linktohack/evil-commentary")
6364 (synopsis "Comment out code in evil mode")
6365 (description "@code{emacs-evil-commentary} adds keybindings to easily
6366 comment out lines of code in evil mode. It provides @code{gcc} to comment out
6367 lines, and @code{gc} to comment out the target of a motion.")
6368 (license license:gpl3+)))
6369
6370 ;; Tests for emacs-ansi have a circular dependency with ert-runner, and
6371 ;; therefore cannot be run
6372 (define-public emacs-ansi
6373 (package
6374 (name "emacs-ansi")
6375 (version "0.4.1")
6376 (source
6377 (origin
6378 (method url-fetch)
6379 (uri (string-append "https://github.com/rejeep/ansi.el/archive/v"
6380 version ".tar.gz"))
6381 (file-name (string-append name "-" version ".tar.gz"))
6382 (sha256
6383 (base32
6384 "13jj4vbi98j3p17hs99bmy7g21jd5h4v3wpxk4pkvhylm3bfwjw8"))))
6385 (build-system emacs-build-system)
6386 (propagated-inputs
6387 `(("emacs-dash" ,emacs-dash)
6388 ("emacs-s" ,emacs-s)))
6389 (home-page "https://github.com/rejeep/ansi.el")
6390 (synopsis "Convert strings to ANSI")
6391 (description "@code{emacs-ansi} defines functions that turns simple
6392 strings to ANSI strings. Turning a string into an ANSI string can be to add
6393 color to a text, add color in the background of a text or adding a style, such
6394 as bold, underscore or italic.")
6395 (license license:gpl3+)))
6396
6397 ;; Tests for emacs-commander have a circular dependency with ert-runner, and
6398 ;; therefore cannot be run
6399 (define-public emacs-commander
6400 (package
6401 (name "emacs-commander")
6402 (version "0.7.0")
6403 (source
6404 (origin
6405 (method url-fetch)
6406 (uri (string-append "https://github.com/rejeep/commander.el/archive/v"
6407 version ".tar.gz"))
6408 (file-name (string-append name "-" version ".tar.gz"))
6409 (sha256
6410 (base32
6411 "196s2i15z7gwxa97l1wkxvjnfmj5n38wwm6d3g4zz15l2vqggc2y"))))
6412 (build-system emacs-build-system)
6413 (propagated-inputs
6414 `(("emacs-dash" ,emacs-dash)
6415 ("emacs-f" ,emacs-f)
6416 ("emacs-s" ,emacs-s)))
6417 (home-page "https://github.com/rejeep/commander.el")
6418 (synopsis "Emacs command line parser")
6419 (description "@code{emacs-commander} provides command line parsing for
6420 Emacs.")
6421 (license license:gpl3+)))
6422
6423 ;; Tests for ert-runner have a circular dependency with ecukes, and therefore
6424 ;; cannot be run
6425 (define-public ert-runner
6426 (package
6427 (name "ert-runner")
6428 (version "0.7.0")
6429 (source
6430 (origin
6431 (method url-fetch)
6432 (uri (string-append "https://github.com/rejeep/ert-runner.el/archive/v"
6433 version ".tar.gz"))
6434 (file-name (string-append name "-" version ".tar.gz"))
6435 (sha256
6436 (base32
6437 "1657nck9i96a4xgl8crfqq0s8gflzp21pkkzwg6m3z5npjxklgwp"))))
6438 (build-system emacs-build-system)
6439 (inputs
6440 `(("emacs-ansi" ,emacs-ansi)
6441 ("emacs-commander" ,emacs-commander)
6442 ("emacs-dash" ,emacs-dash)
6443 ("emacs-f" ,emacs-f)
6444 ("emacs-s" ,emacs-s)
6445 ("emacs-shut-up" ,emacs-shut-up)))
6446 (arguments
6447 `(#:phases
6448 (modify-phases %standard-phases
6449 (add-after 'install 'install-executable
6450 (lambda* (#:key inputs outputs #:allow-other-keys)
6451 (let ((out (assoc-ref outputs "out")))
6452 (substitute* "bin/ert-runner"
6453 (("ERT_RUNNER=\"\\$\\(dirname \\$\\(dirname \\$0\\)\\)")
6454 (string-append "ERT_RUNNER=\"" out
6455 "/share/emacs/site-lisp/guix.d/"
6456 ,name "-" ,version)))
6457 (install-file "bin/ert-runner" (string-append out "/bin"))
6458 (wrap-program (string-append out "/bin/ert-runner")
6459 (list "EMACSLOADPATH" ":" 'prefix
6460 (string-split (getenv "EMACSLOADPATH") #\:)))
6461 #t))))
6462 #:include (cons* "^reporters/.*\\.el$" %default-include)))
6463 (home-page "https://github.com/rejeep/ert-runner.el")
6464 (synopsis "Opinionated Ert testing workflow")
6465 (description "@code{ert-runner} is a tool for Emacs projects tested
6466 using ERT. It assumes a certain test structure setup and can therefore make
6467 running tests easier.")
6468 (license license:gpl3+)))
6469
6470 (define-public emacs-disable-mouse
6471 (package
6472 (name "emacs-disable-mouse")
6473 (version "0.2")
6474 (source
6475 (origin
6476 (method url-fetch)
6477 (uri (string-append
6478 "https://github.com/purcell/disable-mouse/archive/"
6479 version ".tar.gz"))
6480 (file-name (string-append name "-" version ".tar.gz"))
6481 (sha256
6482 (base32
6483 "0haqpq23r1wx04lsqrrg3p5visg9hx5i36dg55ab003wfsrlrzbc"))))
6484 (build-system emacs-build-system)
6485 (home-page "https://github.com/purcell/disable-mouse")
6486 (synopsis "Disable mouse commands globally")
6487 (description
6488 "Provides @code{disable-mouse-mode} and @code{global-disable-mouse-mode},
6489 pair of minor modes which suppress all mouse events by intercepting them and
6490 running a customisable handler command (@code{ignore} by default). ")
6491 (license license:gpl3+)))
6492
6493 (define-public emacs-json-reformat
6494 (package
6495 (name "emacs-json-reformat")
6496 (version "0.0.6")
6497 (source
6498 (origin
6499 (method url-fetch)
6500 (uri (string-append "https://github.com/gongo/json-reformat/archive/"
6501 version ".tar.gz"))
6502 (file-name (string-append name "-" version ".tar.gz"))
6503 (sha256
6504 (base32
6505 "11fbq4scrgr7m0iwnzcrn2g7xvqwm2gf82sa7zy1l0nil7265p28"))
6506 (patches (search-patches "emacs-json-reformat-fix-tests.patch"))))
6507 (build-system emacs-build-system)
6508 (propagated-inputs
6509 `(("emacs-undercover" ,emacs-undercover)))
6510 (native-inputs
6511 `(("emacs-dash" ,emacs-dash)
6512 ("emacs-shut-up" ,emacs-shut-up)
6513 ("ert-runner" ,ert-runner)))
6514 (arguments
6515 `(#:tests? #t
6516 #:test-command '("ert-runner")))
6517 (home-page "https://github.com/gongo/json-reformat")
6518 (synopsis "Reformatting tool for JSON")
6519 (description "@code{json-reformat} provides a reformatting tool for
6520 @url{http://json.org/, JSON}.")
6521 (license license:gpl3+)))
6522
6523 (define-public emacs-json-snatcher
6524 (package
6525 (name "emacs-json-snatcher")
6526 (version "1.0.0")
6527 (source
6528 (origin
6529 (method url-fetch)
6530 (uri (string-append "https://github.com/Sterlingg/json-snatcher/archive/"
6531 version ".tar.gz"))
6532 (file-name (string-append name "-" version ".tar.gz"))
6533 (sha256
6534 (base32
6535 "1nfiwsifpdiz0lbrqa77nl0crnfrv5h85ans9b0g5rggnmyshcfb"))))
6536 (build-system emacs-build-system)
6537 (home-page "https://github.com/sterlingg/json-snatcher")
6538 (synopsis "Grabs the path to JSON values in a JSON file")
6539 (description "@code{emacs-json-snatcher} grabs the path to JSON values in
6540 a @url{http://json.org/, JSON} file.")
6541 (license license:gpl3+)))
6542
6543 (define-public emacs-json-mode
6544 (package
6545 (name "emacs-json-mode")
6546 (version "1.7.0")
6547 (source
6548 (origin
6549 (method url-fetch)
6550 (uri (string-append "https://github.com/joshwnj/json-mode/archive/"
6551 "v" version ".tar.gz"))
6552 (file-name (string-append name "-" version ".tar.gz"))
6553 (sha256
6554 (base32
6555 "06h45p4cn767pk9sqi2zb1c65wy5gyyijqxzpglp80zwxhvajdz5"))))
6556 (build-system emacs-build-system)
6557 (propagated-inputs
6558 `(("emacs-json-reformat" ,emacs-json-reformat)
6559 ("emacs-json-snatcher" ,emacs-json-snatcher)))
6560 (home-page "https://github.com/joshwnj/json-mode")
6561 (synopsis "Major mode for editing JSON files")
6562 (description "@code{json-mode} extends the builtin js-mode syntax
6563 highlighting.")
6564 (license license:gpl3+)))
6565
6566 (define-public emacs-restclient
6567 (let ((commit "07a3888bb36d0e29608142ebe743b4362b800f40")
6568 (revision "1")) ;Guix package revision,
6569 ;upstream doesn't have official releases
6570 (package
6571 (name "emacs-restclient")
6572 (version (string-append revision "."
6573 (string-take commit 7)))
6574 (source (origin
6575 (method git-fetch)
6576 (uri (git-reference
6577 (url "https://github.com/pashky/restclient.el.git")
6578 (commit commit)))
6579 (sha256
6580 (base32
6581 "00lmjhb5im1kgrp54yipf1h9pshxzgjlg71yf2rq5n973gvb0w0q"))
6582 (file-name (git-file-name name version))))
6583 (build-system emacs-build-system)
6584 (propagated-inputs
6585 `(("emacs-helm" ,emacs-helm)))
6586 (home-page "https://github.com/pashky/restclient.el")
6587 (synopsis "Explore and test HTTP REST webservices")
6588 (description
6589 "This tool allows for testing and exploration of HTTP REST Web services
6590 from within Emacs. Restclient runs queries from a plan-text query sheet,
6591 displays results pretty-printed in XML or JSON with @code{restclient-mode}")
6592 (license license:public-domain))))
6593
6594 (define-public emacs-eimp
6595 (let ((version "1.4.0")
6596 (commit "2e7536fe6d8f7faf1bad7a8ae37faba0162c3b4f")
6597 (revision "1"))
6598 (package
6599 (name "emacs-eimp")
6600 (version (git-version version revision commit))
6601 (source
6602 (origin
6603 (method git-fetch)
6604 (uri (git-reference
6605 (url "https://github.com/nicferrier/eimp.git")
6606 (commit commit)))
6607 (file-name (git-file-name name version))
6608 (sha256
6609 (base32
6610 "154d57yafxbcf39r89n5j43c86rp2fki3lw3gwy7ww2g6qkclcra"))))
6611 (build-system emacs-build-system)
6612 (arguments
6613 `(#:phases
6614 (modify-phases %standard-phases
6615 (add-after 'unpack 'configure
6616 (lambda* (#:key inputs #:allow-other-keys)
6617 (let ((imagemagick (assoc-ref inputs "imagemagick")))
6618 ;; eimp.el is read-only in git.
6619 (chmod "eimp.el" #o644)
6620 (emacs-substitute-variables "eimp.el"
6621 ("eimp-mogrify-program"
6622 (string-append imagemagick "/bin/mogrify"))))
6623 #t)))))
6624 (inputs
6625 `(("imagemagick" ,imagemagick)))
6626 (home-page "https://github.com/nicferrier/eimp")
6627 (synopsis "Interactive image manipulation utility for Emacs")
6628 (description "@code{emacs-eimp} allows interactive image manipulation
6629 from within Emacs. It uses the code@{mogrify} utility from ImageMagick to do
6630 the actual transformations.")
6631 (license license:gpl2+))))
6632
6633 (define-public emacs-dired-hacks
6634 (let ((commit "eda68006ce73bbf6b9b995bfd70d08bec8cade36")
6635 (revision "1"))
6636 (package
6637 (name "emacs-dired-hacks")
6638 (version (string-append "0.0.1-" revision "."
6639 (string-take commit 7)))
6640 (source (origin
6641 (method git-fetch)
6642 (uri (git-reference
6643 (url "https://github.com/Fuco1/dired-hacks.git")
6644 (commit commit)))
6645 (file-name (string-append name "-" version "-checkout"))
6646 (sha256
6647 (base32
6648 "1w7ssl9zssn5rcha6apf4h8drkd02k4xgvs203bdbqyqp9wz9brx"))))
6649 (build-system emacs-build-system)
6650 (propagated-inputs
6651 `(("emacs-dash" ,emacs-dash)
6652 ("emacs-eimp" ,emacs-eimp)
6653 ("emacs-f" ,emacs-f)
6654 ("emacs-s" ,emacs-s)))
6655 (home-page "https://github.com/Fuco1/dired-hacks")
6656 (synopsis
6657 "Collection of useful dired additions")
6658 (description
6659 "Collection of Emacs dired mode additions:
6660 @itemize
6661 @item dired-avfs
6662 @item dired-columns
6663 @item dired-filter
6664 @item dired-hacks-utils
6665 @item dired-images
6666 @item dired-list
6667 @item dired-narrow
6668 @item dired-open
6669 @item dired-rainbow
6670 @item dired-ranger
6671 @item dired-subtree
6672 @item dired-tagsistant
6673 @end itemize\n")
6674 (license license:gpl3+))))
6675
6676 (define-public emacs-which-key
6677 (package
6678 (name "emacs-which-key")
6679 (version "3.0.2")
6680 (source
6681 (origin
6682 (method url-fetch)
6683 (uri (string-append
6684 "https://github.com/justbur/emacs-which-key/archive/v"
6685 version ".tar.gz"))
6686 (sha256
6687 (base32
6688 "1xvd70cwq9n31f28viyjxmr3nn8l153gsy6scpszvgvjxkiikv24"))
6689 (file-name (string-append name "-" version ".tar.gz"))))
6690 (build-system emacs-build-system)
6691 (arguments
6692 `(#:tests? #t
6693 #:test-command '("emacs" "--batch"
6694 "-l" "which-key-tests.el"
6695 "-f" "ert-run-tests-batch-and-exit")))
6696 (home-page "https://github.com/justbur/emacs-which-key")
6697 (synopsis "Display available key bindings in popup")
6698 (description
6699 "@code{emacs-which-key} is a minor mode for Emacs that displays the key
6700 bindings following your currently entered incomplete command (a prefix) in a
6701 popup. For example, after enabling the minor mode if you enter C-x and wait
6702 for the default of 1 second, the minibuffer will expand with all of the
6703 available key bindings that follow C-x (or as many as space allows given your
6704 settings).")
6705 (license license:gpl3+)))
6706
6707 (define-public emacs-ws-butler
6708 (package
6709 (name "emacs-ws-butler")
6710 (version "0.6")
6711 (source (origin
6712 (method git-fetch)
6713 (uri (git-reference
6714 (url "https://github.com/lewang/ws-butler.git")
6715 (commit "323b651dd70ee40a25accc940b8f80c3a3185205")))
6716 (file-name (string-append name "-" version "-checkout"))
6717 (sha256
6718 (base32
6719 "1a4b0lsmwq84qfx51c5xy4fryhb1ysld4fhgw2vr37izf53379sb"))))
6720 (build-system emacs-build-system)
6721 (native-inputs
6722 `(("ert-runner" ,ert-runner)))
6723 (arguments
6724 `(#:tests? #t
6725 #:test-command '("ert-runner" "tests")))
6726 (home-page "https://github.com/lewang/ws-butler")
6727 (synopsis "Trim spaces from end of lines")
6728 (description
6729 "This Emacs package automatically and unobtrusively trims whitespace
6730 characters from end of lines.")
6731 (license license:gpl3+)))
6732
6733 (define-public emacs-org-edit-latex
6734 (package
6735 (name "emacs-org-edit-latex")
6736 (version "0.8.0")
6737 (source
6738 (origin
6739 (method url-fetch)
6740 (uri (string-append
6741 "https://github.com/et2010/org-edit-latex/archive/v"
6742 version ".tar.gz"))
6743 (file-name (string-append name "-" version ".tar.gz"))
6744 (sha256
6745 (base32
6746 "1y4h6wrs8286h9pbsv4d8fr67a885vz8b2k80qgv5qddipi2i78p"))))
6747 (build-system emacs-build-system)
6748 (propagated-inputs
6749 `(("emacs-auctex" ,emacs-auctex)
6750 ;; The version of org in Emacs 25.2 is not sufficient, because the
6751 ;; `org-latex-make-preamble' function is required.
6752 ("emacs-org" ,emacs-org)))
6753 (home-page "https://github.com/et2010/org-edit-latex")
6754 (synopsis "Edit a latex fragment just like editing a src block")
6755 (description "@code{emacs-org-edit-latex} is an extension for org-mode.
6756 It lets you edit a latex fragment in a dedicated buffer just like editing a
6757 src block.")
6758 (license license:gpl3+)))
6759
6760 (define-public emacs-emamux
6761 (package
6762 (name "emacs-emamux")
6763 (version "0.14")
6764 (source (origin
6765 (method url-fetch)
6766 (uri (string-append
6767 "https://github.com/syohex/emacs-emamux/archive/"
6768 version ".tar.gz"))
6769 (file-name (string-append name "-" version ".tar.gz"))
6770 (sha256
6771 (base32
6772 "0wlqg4icy037bj70b0qmhvwvmiwhagpnx6pnxhq6gzy1hvwlilkx"))))
6773 (build-system emacs-build-system)
6774 (home-page "https://github.com/syohex/emacs-emamux")
6775 (synopsis "Manipulate Tmux from Emacs")
6776 (description
6777 "@code{emacs-emamux} lets Emacs interact with the @code{tmux} terminal
6778 multiplexer.")
6779 (license license:gpl3+)))
6780
6781 (define-public emacs-rpm-spec-mode
6782 (package
6783 (name "emacs-rpm-spec-mode")
6784 (version "0.16")
6785 (source
6786 (origin
6787 (method url-fetch)
6788 ;; URI has the Fedora release number instead of the version
6789 ;; number. This will have to updated manually every new release.
6790 (uri (string-append
6791 "https://src.fedoraproject.org/cgit/rpms"
6792 "/emacs-rpm-spec-mode.git/snapshot"
6793 "/emacs-rpm-spec-mode-f26.tar.gz"))
6794 (sha256
6795 (base32
6796 "17dz80lhjrc89fj17pysl8slahzrqdkxgcjdk55zls6jizkr6kz3"))))
6797 (build-system emacs-build-system)
6798 (home-page "http://pkgs.fedoraproject.org/cgit/rpms/emacs-rpm-spec-mode.git")
6799 (synopsis "Emacs major mode for editing RPM spec files")
6800 (description "@code{emacs-rpm-spec-mode} provides an Emacs major mode for
6801 editing RPM spec files.")
6802 (license license:gpl2+)))
6803
6804 (define-public emacs-git-messenger
6805 (package
6806 (name "emacs-git-messenger")
6807 (version "0.18")
6808 (source
6809 (origin
6810 (method url-fetch)
6811 (uri (string-append
6812 "https://github.com/syohex/emacs-git-messenger/archive/"
6813 version ".tar.gz"))
6814 (file-name (string-append name "-" version ".tar.gz"))
6815 (sha256
6816 (base32
6817 "17mqki6g0wx46fn7dcbcc2pjxik7vvrcb1j9jzxim8b9psbsbnp9"))))
6818 (build-system emacs-build-system)
6819 (propagated-inputs
6820 `(("emacs-popup" ,emacs-popup)))
6821 (arguments
6822 `(#:tests? #t
6823 #:test-command '("emacs" "--batch" "-l" "test/test.el"
6824 "-f" "ert-run-tests-batch-and-exit")))
6825 (home-page "https://github.com/syohex/emacs-git-messenger")
6826 (synopsis "Popup commit message at current line")
6827 (description "@code{emacs-git-messenger} provides
6828 @code{git-messenger:popup-message}, a function that when called, will popup
6829 the last git commit message for the current line. This uses git-blame
6830 internally.")
6831 (license license:gpl3+)))
6832
6833 (define-public emacs-gitpatch
6834 (package
6835 (name "emacs-gitpatch")
6836 (version "0.5.0")
6837 (source
6838 (origin
6839 (method url-fetch)
6840 (uri (string-append "https://github.com/tumashu/gitpatch/archive/"
6841 "v" version ".tar.gz"))
6842 (file-name (string-append name "-" version ".tar.gz"))
6843 (sha256
6844 (base32
6845 "1yj6pmic541lcnscjin300k380qp9xdfprs55xg1q57jrkq6f6k7"))))
6846 (build-system emacs-build-system)
6847 (home-page "https://github.com/tumashu/gitpatch")
6848 (synopsis "Mail git patch from Emacs")
6849 (description "@code{emacs-gitpatch} lets users easily send git patches,
6850 created by @code{git format-patch}, from @code{magit}, @code{dired} and
6851 @code{ibuffer} buffers.")
6852 (license license:gpl3+)))
6853
6854 (define-public emacs-erc-hl-nicks
6855 (package
6856 (name "emacs-erc-hl-nicks")
6857 (version "1.3.2")
6858 (source
6859 (origin
6860 (method url-fetch)
6861 (uri (string-append "https://github.com/leathekd/erc-hl-nicks"
6862 "/archive/" version ".tar.gz"))
6863 (file-name (string-append name "-" version ".tar.gz"))
6864 (sha256
6865 (base32
6866 "01svpl9bps5kx4y1wnymakxya2cznqmlynvqv2r500wpnbxczrbs"))))
6867 (build-system emacs-build-system)
6868 (synopsis "Nickname highlighting for Emacs ERC")
6869 (description "@code{erc-hl-nicks} highlights nicknames in ERC, an IRC
6870 client for Emacs. The main features are:
6871 @itemize
6872 @item Auto-colorizes nicknames without having to specify colors
6873 @item Ignores certain characters that IRC clients add to nicknames to avoid
6874 duplicates (nickname, nickname’, nickname\", etc.)
6875 @item Attempts to produce colors with a sufficient amount of contrast between
6876 the nick color and the background color
6877 @end itemize\n")
6878 (home-page "https://github.com/leathekd/erc-hl-nicks")
6879 (license license:gpl3+)))
6880
6881 (define-public emacs-engine-mode
6882 (package
6883 (name "emacs-engine-mode")
6884 (version "2.0.0")
6885 (source
6886 (origin
6887 (method url-fetch)
6888 (uri (string-append "https://github.com/hrs/engine-mode/archive/"
6889 "v" version ".tar.gz"))
6890 (file-name (string-append name "-" version ".tar.gz"))
6891 (sha256
6892 (base32
6893 "1vm4p7pcp1vnwwxvps1bhm7i7hkabqqxl898knxf2hqvxys76684"))))
6894 (build-system emacs-build-system)
6895 (synopsis "Minor mode for defining and querying search engines")
6896 (description "@code{engine-mode} is a global minor mode for Emacs. It
6897 enables you to easily define search engines, bind them to keybindings, and
6898 query them from the comfort of your editor.")
6899 (home-page "https://github.com/hrs/engine-mode")
6900 (license license:gpl3+)))
6901
6902 (define-public emacs-prop-menu
6903 (package
6904 (name "emacs-prop-menu")
6905 (version "0.1.2")
6906 (source
6907 (origin
6908 (method url-fetch)
6909 (uri (string-append
6910 "http://stable.melpa.org/packages/prop-menu-"
6911 version ".el"))
6912 (sha256
6913 (base32
6914 "01bk4sjafzz7gqrkv9jg0pa85qr34vbk3q8ga2b0m61bndywzgpr"))))
6915 (build-system emacs-build-system)
6916 (home-page
6917 "https://github.com/david-christiansen/prop-menu-el")
6918 (synopsis
6919 "Create and display a context menu based on text and overlay properties")
6920 (description
6921 "This is a library for computing context menus based on text
6922 properties and overlays. The intended use is to have tools that
6923 annotate source code and others that use these annotations, without
6924 requiring a direct coupling between them, but maintaining
6925 discoverability.
6926
6927 Major modes that wish to use this library should first define an
6928 appropriate value for @code{prop-menu-item-functions}. Then, they should
6929 bind @code{prop-menu-by-completing-read} to an appropriate
6930 key. Optionally, a mouse pop-up can be added by binding
6931 @code{prop-menu-show-menu} to a mouse event.")
6932 (license license:gpl3+)))
6933
6934 (define-public emacs-idris-mode
6935 (package
6936 (name "emacs-idris-mode")
6937 (version "0.9.19")
6938 (source
6939 (origin
6940 (method url-fetch)
6941 (uri (string-append
6942 "http://stable.melpa.org/packages/idris-mode-"
6943 version ".tar"))
6944 (sha256
6945 (base32
6946 "02r1qqsxi6qk7q4cj6a6pygbj856dcw9vcmhfh0ib92j41v77q6y"))))
6947 (build-system emacs-build-system)
6948 (propagated-inputs
6949 `(("emacs-prop-menu" ,emacs-prop-menu)))
6950 (home-page
6951 "https://github.com/idris-hackers/idris-mode")
6952 (synopsis "Major mode for editing Idris code")
6953 (description
6954 "This is an Emacs mode for editing Idris code. It requires the latest
6955 version of Idris, and some features may rely on the latest Git version of
6956 Idris.")
6957 (license license:gpl3+)))
6958
6959 (define-public emacs-browse-at-remote
6960 (let ((commit "31dcf77d7c89a12f230e2b2332585db2c44530ef")
6961 (revision "1"))
6962 (package
6963 (name "emacs-browse-at-remote")
6964 (version (string-append "0.9.0-" revision "."
6965 (string-take commit 7)))
6966 (source (origin
6967 (method git-fetch)
6968 (uri (git-reference
6969 (url "https://github.com/rmuslimov/browse-at-remote.git")
6970 (commit commit)))
6971 (file-name (string-append name "-" version "-checkout"))
6972 (patches
6973 (search-patches "emacs-browse-at-remote-cgit-gnu.patch"))
6974 (sha256
6975 (base32
6976 "017cb8lf7zbg0jmr7zxzd7d5kz2jy35cvw5vcpdmq1fdr3wqwkgj"))))
6977 (build-system emacs-build-system)
6978 (propagated-inputs
6979 `(("emacs-f" ,emacs-f)
6980 ("emacs-s" ,emacs-s)))
6981 (native-inputs
6982 `(("ert-runner" ,ert-runner)))
6983 (arguments
6984 `(#:tests? #t
6985 #:test-command '("ert-runner")))
6986 (home-page "https://github.com/rmuslimov/browse-at-remote")
6987 (synopsis "Open github/gitlab/bitbucket/stash page from Emacs")
6988 (description
6989 "This Emacs package allows you to open a target page on
6990 github/gitlab (or bitbucket) by calling @code{browse-at-remote} command.
6991 It supports dired buffers and opens them in tree mode at destination.")
6992 (license license:gpl3+))))
6993
6994 (define-public emacs-tiny
6995 (package
6996 (name "emacs-tiny")
6997 (version "0.2.1")
6998 (source
6999 (origin
7000 (method url-fetch)
7001 (uri (string-append "http://elpa.gnu.org/packages/tiny-" version ".tar"))
7002 (sha256
7003 (base32
7004 "1cr73a8gba549ja55x0c2s554f3zywf69zbnd7v82jz5q1k9wd2v"))))
7005 (build-system emacs-build-system)
7006 (home-page "https://github.com/abo-abo/tiny")
7007 (synopsis "Quickly generate linear ranges in Emacs")
7008 (description
7009 "The main command of the @code{tiny} extension for Emacs is @code{tiny-expand}.
7010 It is meant to quickly generate linear ranges, e.g. 5, 6, 7, 8. Some elisp
7011 proficiency is an advantage, since you can transform your numeric range with
7012 an elisp expression.")
7013 (license license:gpl3+)))
7014
7015 (define-public emacs-emojify
7016 (package
7017 (name "emacs-emojify")
7018 (version "0.4")
7019 (source
7020 (origin
7021 (method url-fetch)
7022 (uri (string-append "https://github.com/iqbalansari/emacs-emojify/"
7023 "releases/download/v" version "/emojify-"
7024 version ".tar"))
7025 (sha256
7026 (base32
7027 "0k84v2d2bkiwcky9fi1yyprgkj46g7wh6pyl9gzmcd7sqv051d5n"))))
7028 (build-system emacs-build-system)
7029 (arguments
7030 `(#:phases
7031 (modify-phases %standard-phases
7032 (add-after 'install 'install-data
7033 (lambda* (#:key outputs #:allow-other-keys)
7034 (copy-recursively "data"
7035 (string-append (assoc-ref outputs "out")
7036 "/share/emacs/site-lisp/guix.d/"
7037 "emojify-" ,version "/data"))
7038 #t)))))
7039 (propagated-inputs
7040 `(("emacs-ht" ,emacs-ht)))
7041 (home-page "https://github.com/iqbalansari/emacs-emojify")
7042 (synopsis "Display emojis in Emacs")
7043 (description "This package displays emojis in Emacs similar to how Github,
7044 Slack, and other websites do. It can display plain ASCII like @code{:)} as
7045 well as Github-style emojis like @code{:smile:}. It provides a minor mode
7046 @code{emojify-mode} to enable the display of emojis in a buffer.")
7047 (license license:gpl3+)))
7048
7049 (define-public emacs-websocket
7050 (package
7051 (name "emacs-websocket")
7052 (version "1.10")
7053 (source
7054 (origin
7055 (method git-fetch)
7056 (uri (git-reference
7057 (url "https://github.com/ahyatt/emacs-websocket.git")
7058 (commit version)))
7059 (file-name (string-append name "-" version "-checkout"))
7060 (sha256
7061 (base32
7062 "1dgrf7na6r6mmkknphzshlbd5fnzisg0qn0j7vfpa38wgsymaq52"))))
7063 (build-system emacs-build-system)
7064 (home-page "http://elpa.gnu.org/packages/websocket.html")
7065 (synopsis "Emacs WebSocket client and server")
7066 (description "This is an Elisp library for WebSocket clients to talk to
7067 WebSocket servers, and for WebSocket servers to accept connections from
7068 WebSocket clients. This library is designed to be used by other library
7069 writers, to write applications that use WebSockets, and is not useful by
7070 itself.")
7071 (license license:gpl3+)))
7072
7073 (define-public emacs-oauth2
7074 (package
7075 (name "emacs-oauth2")
7076 (version "0.11")
7077 (source
7078 (origin
7079 (method url-fetch)
7080 (uri (string-append "https://elpa.gnu.org/packages/oauth2-"
7081 version ".el"))
7082 (sha256
7083 (base32
7084 "0ydkc9jazsnbbvfhd47mql52y7k06n3z7r0naqxkwb99j9blqsmp"))))
7085 (build-system emacs-build-system)
7086 (home-page "http://elpa.gnu.org/packages/oauth2.html")
7087 (synopsis "OAuth 2.0 authorization protocol implementation")
7088 (description
7089 "This package provides an Elisp implementation of the OAuth 2.0 draft.
7090 The main entry point is @code{oauth2-auth-and-store} which will return a token
7091 structure. This token structure can be then used with
7092 @code{oauth2-url-retrieve-synchronously} or @code{oauth2-url-retrieve} to
7093 retrieve any data that need OAuth authentication to be accessed. If the token
7094 needs to be refreshed, the code handles it automatically and stores the new
7095 value of the access token.")
7096 (license license:gpl3+)))
7097
7098 (define-public emacs-circe
7099 (package
7100 (name "emacs-circe")
7101 (version "2.6")
7102 (source
7103 (origin
7104 (method git-fetch)
7105 (uri (git-reference
7106 (url "https://github.com/jorgenschaefer/circe.git")
7107 (commit (string-append "v" version))))
7108 (file-name (string-append name "-" version "-checkout"))
7109 (sha256
7110 (base32
7111 "19h3983zy3f15cgs86irvbdzz55qyjm48qd7gjlzcxplr7vnnh0j"))))
7112 (build-system emacs-build-system)
7113 ;; In order to securely connect to an IRC server using TLS, Circe requires
7114 ;; the GnuTLS binary.
7115 (propagated-inputs
7116 `(("gnutls" ,gnutls)))
7117 (home-page "https://github.com/jorgenschaefer/circe")
7118 (synopsis "Client for IRC in Emacs")
7119 (description "Circe is a Client for IRC in Emacs. It integrates well with
7120 the rest of the editor, using standard Emacs key bindings and indicating
7121 activity in channels in the status bar so it stays out of your way unless you
7122 want to use it.")
7123 (license license:gpl3+)))
7124
7125 (define-public emacs-slack
7126 (let ((commit "d90395482d26175ce38fd935e978c428be8af9a0")
7127 (revision "4"))
7128 (package
7129 (name "emacs-slack")
7130 (version (string-append "0-" revision "." (string-take commit 7)))
7131 (source (origin
7132 (method git-fetch)
7133 (uri (git-reference
7134 (url "https://github.com/yuya373/emacs-slack.git")
7135 (commit commit)))
7136 (file-name (string-append name "-" version "-checkout"))
7137 (sha256
7138 (base32
7139 "14f6wjcbl09cfd3yngr6m1k1d4nr764im666mbnqbk9nmqf50nib"))))
7140 (build-system emacs-build-system)
7141 (propagated-inputs
7142 `(("emacs-alert" ,emacs-alert)
7143 ("emacs-emojify" ,emacs-emojify)
7144 ("emacs-request" ,emacs-request)
7145 ("emacs-websocket" ,emacs-websocket)
7146 ("emacs-oauth2" ,emacs-oauth2)
7147 ("emacs-circe" ,emacs-circe)))
7148 (home-page "https://github.com/yuya373/emacs-slack")
7149 (synopsis "Slack client for Emacs")
7150 (description "This package provides an Emacs client for the Slack
7151 messaging service.")
7152 (license license:gpl3+))))
7153
7154 (define-public emacs-bash-completion
7155 (package
7156 (name "emacs-bash-completion")
7157 (version "2.0.0")
7158 (source
7159 (origin
7160 (method url-fetch)
7161 (uri (string-append
7162 "https://github.com/szermatt/emacs-bash-completion/archive/v"
7163 version ".tar.gz"))
7164 (file-name (string-append name "-" version ".tar.gz"))
7165 (sha256
7166 (base32
7167 "0mkci4a1fy8z4cmry8mx5vsx4f16a8r454slnh7lqzidnhfi63hj"))))
7168 (inputs `(("bash" ,bash)))
7169 (build-system emacs-build-system)
7170 (arguments
7171 `(#:phases
7172 (modify-phases %standard-phases
7173 (add-before 'install 'configure
7174 (lambda* (#:key inputs #:allow-other-keys)
7175 (let ((bash (assoc-ref inputs "bash")))
7176 (emacs-substitute-variables "bash-completion.el"
7177 ("bash-completion-prog" (string-append bash "/bin/bash"))))
7178 #t)))))
7179 (home-page "https://github.com/szermatt/emacs-bash-completion")
7180 (synopsis "BASH completion for the shell buffer")
7181 (description
7182 "@code{bash-completion} defines dynamic completion hooks for shell-mode
7183 and shell-command prompts that are based on bash completion.")
7184 (license license:gpl2+)))
7185
7186 (define-public emacs-easy-kill
7187 (package
7188 (name "emacs-easy-kill")
7189 (version "0.9.3")
7190 (source (origin
7191 (method url-fetch)
7192 (uri (string-append "https://elpa.gnu.org/packages/easy-kill-"
7193 version ".tar"))
7194 (sha256
7195 (base32
7196 "17nw0mglmg877axwg1d0gs03yc0p04lzmd3pl0nsnqbh3303fnqb"))))
7197 (build-system emacs-build-system)
7198 (home-page "https://github.com/leoliu/easy-kill")
7199 (synopsis "Kill and mark things easily in Emacs")
7200 (description
7201 "This package provides commands @code{easy-kill} and @code{easy-mark} to
7202 let users kill or mark things easily.")
7203 (license license:gpl3+)))
7204
7205 (define-public emacs-csv-mode
7206 (package
7207 (name "emacs-csv-mode")
7208 (version "1.7")
7209 (source
7210 (origin
7211 (method url-fetch)
7212 (uri (string-append "http://elpa.gnu.org/packages/csv-mode-"
7213 version ".el"))
7214 (sha256
7215 (base32
7216 "0r4bip0w3h55i8h6sxh06czf294mrhavybz0zypzrjw91m1bi7z6"))))
7217 (build-system emacs-build-system)
7218 (home-page
7219 "http://elpa.gnu.org/packages/csv-mode.html")
7220 (synopsis
7221 "Major mode for editing comma/char separated values")
7222 (description
7223 "This Emacs package implements CSV mode, a major mode for editing records
7224 in a generalized CSV (character-separated values) format.")
7225 (license license:gpl3+)))
7226
7227 (define-public emacs-transmission
7228 (package
7229 (name "emacs-transmission")
7230 (version "0.12.1")
7231 (source (origin
7232 (method url-fetch)
7233 (uri (string-append
7234 "https://github.com/holomorph/transmission/archive/"
7235 version ".tar.gz"))
7236 (file-name (string-append name "-" version ".tar.gz"))
7237 (sha256
7238 (base32
7239 "1rrlgn96gi1ljfwbwvlyyxbq75xzamlbdhq1bpyadxxmxcvlmk3n"))))
7240 (build-system emacs-build-system)
7241 (home-page "https://github.com/holomorph/transmission")
7242 (synopsis "Emacs interface to a Transmission session")
7243 (description "This package provides an Emacs interface to interact with a
7244 running session of the Transmission Bittorrent client.
7245
7246 Features:
7247
7248 @itemize
7249 @item List, add, start/stop, verify, remove torrents.
7250 @item Set speed limits, ratio limits, bandwidth priorities, trackers.
7251 @item Navigate to the corresponding file list, torrent info, peer info
7252 contexts.
7253 @item Toggle downloading and set priorities for individual files.
7254 @end itemize\n")
7255 (license license:gpl3+)))
7256
7257 (define-public emacs-polymode
7258 ;; There hasn't been a proper release.
7259 (let ((commit "0340f5e7e55235832e59673f027cc79a23cbdcd6")
7260 (revision "1"))
7261 (package
7262 (name "emacs-polymode")
7263 (version (string-append "1.0-" revision "." (string-take commit 7)))
7264 (source (origin
7265 (method git-fetch)
7266 (uri (git-reference
7267 (url "https://github.com/vspinu/polymode.git")
7268 (commit commit)))
7269 (file-name (string-append name "-" version "-checkout"))
7270 (sha256
7271 (base32
7272 "057cybkq3cy07n5s332k071sjiky3mziy003lza4rh75mgqkwhmh"))))
7273 (build-system emacs-build-system)
7274 (arguments
7275 `(#:include (cons* "^modes/.*\\.el$" %default-include)
7276 #:phases
7277 (modify-phases %standard-phases
7278 (add-after 'set-emacs-load-path 'add-modes-subdir-to-load-path
7279 (lambda _
7280 (setenv "EMACSLOADPATH"
7281 (string-append (getenv "EMACSLOADPATH")
7282 ":" (getcwd) "/modes" ":")))))))
7283 (home-page "https://github.com/vspinu/polymode")
7284 (synopsis "Framework for multiple Emacs modes based on indirect buffers")
7285 (description "Polymode is an Emacs package that offers generic support
7286 for multiple major modes inside a single Emacs buffer. It is lightweight,
7287 object oriented and highly extensible. Creating a new polymode typically
7288 takes only a few lines of code. Polymode also provides extensible facilities
7289 for external literate programming tools for exporting, weaving and tangling.")
7290 (license license:gpl3+))))
7291
7292 (define-public eless
7293 (package
7294 (name "eless")
7295 (version "0.3")
7296 (source (origin
7297 (method url-fetch)
7298 (uri (string-append
7299 "https://github.com/kaushalmodi/eless/archive/"
7300 "v" version ".tar.gz"))
7301 (file-name (string-append name "-" version ".tar.gz"))
7302 (sha256
7303 (base32
7304 "0gjnnhgw5xs1w3qfnkvwa2nv44gnxr8pkhx3c7qig45p8nh1461h"))))
7305 (build-system trivial-build-system)
7306 (inputs
7307 `(("bash" ,bash)))
7308 (native-inputs
7309 `(("tar" ,tar)
7310 ("gzip" ,gzip)))
7311 (arguments
7312 `(#:modules ((guix build utils))
7313 #:builder
7314 (begin
7315 (use-modules (guix build utils))
7316 (setenv "PATH" (string-append
7317 (assoc-ref %build-inputs "tar") "/bin" ":"
7318 (assoc-ref %build-inputs "gzip") "/bin"))
7319 (system* "tar" "xvf" (assoc-ref %build-inputs "source"))
7320 (chdir (string-append "eless" "-" ,version))
7321 (substitute* "eless" (("/usr/bin/env bash")
7322 (string-append (assoc-ref %build-inputs "bash")
7323 "/bin/bash")))
7324 (install-file "eless" (string-append %output "/bin"))
7325 (install-file "doc/eless.info" (string-append %output "/share/info"))
7326 #t)))
7327 (home-page "https://github.com/kaushalmodi/eless")
7328 (synopsis "Use Emacs as a paginator")
7329 (description "@code{eless} provides a combination of Bash script
7330 and a minimal Emacs view-mode.
7331
7332 Feautures:
7333
7334 @itemize
7335 @item Independent of a user’s Emacs config.
7336 @item Customizable via the @code{(locate-user-emacs-file \"elesscfg\")} config.
7337 @item Not require an Emacs server to be already running.
7338 @item Syntax highlighting.
7339 @item Org-mode file rendering.
7340 @item @code{man} page viewer.
7341 @item Info viewer.
7342 @item Dired, wdired, (batch edit symbolic links).
7343 @item Colored diffs, git diff, git log, ls with auto ANSI detection.
7344 @item Filter log files lines matching a regexp.
7345 @item Auto-revert log files similar to @code{tail -f}.
7346 @item Quickly change frame and font sizes.
7347 @end itemize\n")
7348 (license license:expat)))
7349
7350 (define-public emacs-evil-matchit
7351 (package
7352 (name "emacs-evil-matchit")
7353 (version "2.2.6")
7354 (source
7355 (origin
7356 (method url-fetch)
7357 (uri (string-append
7358 "https://github.com/redguardtoo/evil-matchit/archive/"
7359 version ".tar.gz"))
7360 (file-name (string-append name "-" version ".tar.gz"))
7361 (sha256
7362 (base32
7363 "1yp9sl6542317mn1060ri90zyf6bs6qylagndhqy02p368q31rhi"))))
7364 (build-system emacs-build-system)
7365 (propagated-inputs
7366 `(("emacs-evil" ,emacs-evil)))
7367 (home-page "https://github.com/redguardtoo/evil-matchit")
7368 (synopsis "Vim matchit ported into Emacs")
7369 (description
7370 "@code{evil-matchit} is a minor mode for jumping between matching tags in
7371 evil mode using @kbd{%}. It is a port of @code{matchit} for Vim.")
7372 (license license:gpl3+)))
7373
7374 (define-public emacs-evil-smartparens
7375 (package
7376 (name "emacs-evil-smartparens")
7377 (version "0.4.0")
7378 (source
7379 (origin
7380 (method url-fetch)
7381 (uri (string-append
7382 "https://github.com/expez/evil-smartparens/archive/"
7383 version ".tar.gz"))
7384 (file-name (string-append name "-" version ".tar.gz"))
7385 (sha256
7386 (base32
7387 "1bwzdd3054d407d5j4m3njsbvmc9r8zzp33m32pj3b3irxrl68q0"))))
7388 (build-system emacs-build-system)
7389 (propagated-inputs
7390 `(("emacs-evil" ,emacs-evil)
7391 ("emacs-smartparens" ,emacs-smartparens)))
7392 (home-page "https://github.com/expez/evil-smartparens")
7393 (synopsis "Emacs Evil integration for Smartparens")
7394 (description "@code{emacs-evil-smartparens} is an Emacs minor mode which
7395 makes Evil play nice with Smartparens. Evil is an Emacs minor mode that
7396 emulates Vim features and provides Vim-like key bindings.")
7397 (license license:gpl3+)))
7398
7399 (define-public emacs-evil-quickscope
7400 (package
7401 (name "emacs-evil-quickscope")
7402 (version "0.1.4")
7403 (source
7404 (origin
7405 (method url-fetch)
7406 (uri (string-append "https://github.com/blorbx/evil-quickscope/archive/v"
7407 version ".tar.gz"))
7408 (file-name (string-append name "-" version ".tar.gz"))
7409 (sha256
7410 (base32
7411 "1r26a412mmar7vbf89zcifswiwpdg30mjzj32xdyqss57aqi83ma"))))
7412 (build-system emacs-build-system)
7413 (propagated-inputs
7414 `(("emacs-evil" ,emacs-evil)))
7415 (arguments
7416 `(#:tests? #t
7417 #:test-command '("emacs" "--batch"
7418 "-l" "evil-quickscope-tests.el"
7419 "-f" "ert-run-tests-batch-and-exit")))
7420 (home-page "https://github.com/blorbx/evil-quickscope")
7421 (synopsis "Target highlighting for emacs evil-mode f,F,t and T commands")
7422 (description "@code{emacs-evil-quickscope} highlights targets for Evil
7423 mode’s f,F,t,T keys, allowing for quick navigation within a line. It is a
7424 port of quick-scope for Vim. Evil is an Emacs minor mode that emulates Vim
7425 features and provides Vim-like key bindings.")
7426 (license license:gpl3+)))
7427
7428 (define-public emacs-bongo
7429 (package
7430 (name "emacs-bongo")
7431 (version "1.0")
7432 (source
7433 (origin
7434 (method url-fetch)
7435 (uri (string-append
7436 "https://github.com/dbrock/bongo/archive/"
7437 version ".tar.gz"))
7438 (file-name (string-append name "-" version ".tar.gz"))
7439 (sha256
7440 (base32
7441 "1pcsyyrvj7djjjwpaswd1i782hvqvlvs39cy9ns0k795si6xd64d"))))
7442 (build-system emacs-build-system)
7443 (home-page "https://github.com/dbrock/bongo")
7444 (synopsis "Media player for Emacs")
7445 (description
7446 "This package provides a flexible media player for Emacs. @code{Bongo}
7447 supports multiple backends such as @code{vlc}, @code{mpg123},
7448 @code{ogg123}, @code{speexdec}, @code{timidity}, @code{mikmod} and
7449 @code{afplay}.")
7450 (license license:gpl2+)))
7451
7452 (define-public groovy-emacs-modes
7453 (package
7454 (name "groovy-emacs-modes")
7455 (version "2.0")
7456 (source (origin
7457 (method url-fetch)
7458 (uri (string-append
7459 "https://github.com/Groovy-Emacs-Modes/" name
7460 "/archive/" version ".tar.gz"))
7461 (file-name (string-append name "-" version ".tar.gz"))
7462 (sha256
7463 (base32
7464 "15j0hnkx9nppjzda5cqsxxz5f3bq9hc4xfyjcdypzqiypcvmpa39"))))
7465 (build-system emacs-build-system)
7466 (propagated-inputs
7467 `(("emacs-s" ,emacs-s)))
7468 (home-page "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
7469 (synopsis "Groovy related modes for Emacs")
7470 (description
7471 "This package provides @code{groovy-mode} for syntax highlighing in
7472 Groovy source files, REPL integration with run-groovy and Grails project
7473 navigation with the grails mode.")
7474 (license license:gpl3+)))
7475
7476 (define-public org-tree-slide
7477 (let ((commit "dff8f1a4a64c8dd0a1fde0b0131e2fe186747134")
7478 (revision "0"))
7479 (package
7480 (name "emacs-org-tree-slide")
7481 (version (git-version "0.1" revision commit))
7482 (home-page "https://github.com/takaxp/org-tree-slide")
7483 (source (origin
7484 (method git-fetch)
7485 (uri (git-reference (url home-page) (commit commit)))
7486 (sha256
7487 (base32
7488 "153bg0x7ypla11pq51jmsgzfjklwwnrq56xgpbfhk1j16xwz9hyf"))
7489 (file-name (git-file-name name version))))
7490 (build-system emacs-build-system)
7491 (synopsis "Presentation tool for org-mode")
7492 (description
7493 "Org-tree-slide provides a slideshow mode to view org-mode files. Use
7494 @code{org-tree-slide-mode} to enter the slideshow mode, and then @kbd{C->} and
7495 @kbd{C-<} to jump to the next and previous slide.")
7496 (license license:gpl3+))))
7497
7498 (define-public emacs-scratch-el
7499 (let ((commit "2cdf2b841ce7a0987093f65b0cc431947549f897")
7500 (revision "1"))
7501 (package
7502 (name "emacs-scratch-el")
7503 (version (git-version "1.2" revision commit))
7504 (source (origin
7505 (method git-fetch)
7506 (uri (git-reference
7507 (url "https://github.com/ieure/scratch-el.git")
7508 (commit commit)))
7509 (file-name (git-file-name name version))
7510 (sha256
7511 (base32
7512 "0wscsndynjmnliajqaz28r1ww81j8wh84zwaaswx51abhwgl0idf"))))
7513 (build-system emacs-build-system)
7514 (native-inputs
7515 `(("texinfo" ,texinfo)))
7516 (arguments
7517 '(#:phases
7518 (modify-phases %standard-phases
7519 (add-after 'install 'install-doc
7520 (lambda* (#:key outputs #:allow-other-keys)
7521 (unless (invoke "makeinfo" "scratch.texi")
7522 (error "makeinfo failed"))
7523 (install-file "scratch.info"
7524 (string-append (assoc-ref outputs "out")
7525 "/share/info"))
7526 #t)))))
7527 (home-page "https://github.com/ieure/scratch-el/")
7528 (synopsis "Create scratch buffers with the same mode as current buffer")
7529 (description "Scratch is an extension to Emacs that enables one to create
7530 scratch buffers that are in the same mode as the current buffer. This is
7531 notably useful when working on code in some language; you may grab code into a
7532 scratch buffer, and, by virtue of this extension, do so using the Emacs
7533 formatting rules for that language.")
7534 (license license:bsd-2))))
7535
7536 (define-public emacs-kv
7537 (package
7538 (name "emacs-kv")
7539 (version "0.0.19")
7540 (source
7541 (origin
7542 (method git-fetch)
7543 (uri (git-reference
7544 (url "https://github.com/nicferrier/emacs-kv.git")
7545 (commit "721148475bce38a70e0b678ba8aa923652e8900e")))
7546 (file-name (string-append name "-" version "-checkout"))
7547 (sha256
7548 (base32
7549 "0r0lz2s6gvy04fwnafai668jsf4546h4k6zd6isx5wpk0n33pj5m"))))
7550 (build-system emacs-build-system)
7551 (arguments
7552 `(#:tests? #t
7553 #:test-command '("emacs" "--batch" "-l" "kv-tests.el"
7554 "-f" "ert-run-tests-batch-and-exit")))
7555 (home-page "https://github.com/nicferrier/emacs-kv")
7556 (synopsis "Key/Value data structures library for Emacs Lisp")
7557 (description "@code{emacs-kv} is a collection of tools for dealing with
7558 key/value data structures such as plists, alists and hash-tables in Emacs
7559 Lisp.")
7560 (license license:gpl3+)))
7561
7562 (define-public emacs-esxml
7563 (package
7564 (name "emacs-esxml")
7565 (version "0.3.4")
7566 (source (origin
7567 (method git-fetch)
7568 (uri (git-reference
7569 (url "https://github.com/tali713/esxml.git")
7570 (commit version)))
7571 (file-name (git-file-name name version))
7572 (sha256
7573 (base32
7574 "00vv8a75wdklygdyr4km9mc2ismxak69c45jmcny41xl44rp9x8m"))))
7575 (build-system emacs-build-system)
7576 (arguments
7577 `(#:phases
7578 (modify-phases %standard-phases
7579 (add-after 'unpack 'fix-sources
7580 (lambda _
7581 ;; See: https://github.com/tali713/esxml/pull/28.
7582 (substitute* "css-lite.el"
7583 ((";;; main interface")
7584 (string-append ";;; main interface\n"
7585 "(require 'cl-lib)"))
7586 (("mapcan")
7587 "cl-mapcan")
7588 (("',\\(cl-mapcan #'process-css-rule rules\\)")
7589 "(cl-mapcan #'process-css-rule ',rules)"))
7590 (substitute* "esxml-form.el"
7591 ((",esxml-form-field-defn")
7592 "#'esxml-form-field-defn"))
7593 ;; See: https://github.com/tali713/esxml/issues/25
7594 (delete-file "esxpath.el")
7595 #t)))))
7596 (propagated-inputs
7597 `(("emacs-kv" ,emacs-kv)))
7598 (home-page "https://github.com/tali713/esxml/")
7599 (synopsis "SXML for EmacsLisp")
7600 (description "This is XML/XHTML done with S-Expressions in EmacsLisp.
7601 Simply, this is the easiest way to write HTML or XML in Lisp. This library
7602 uses the native form of XML representation as used by many libraries already
7603 included within Emacs. See @code{esxml-to-xml} for a concise description of
7604 the format.")
7605 (license license:gpl3+)))
7606
7607 (define-public emacs-nov-el
7608 (package
7609 (name "emacs-nov-el")
7610 (version "0.2.2")
7611 (source (origin
7612 (method git-fetch)
7613 (uri (git-reference
7614 (url "https://github.com/wasamasa/nov.el.git")
7615 (commit version)))
7616 (file-name (git-file-name name version))
7617 (sha256
7618 (base32
7619 "03s0qjvwk1f7y3i4wh2p5y3z4hdv00adgz8za3vphzc0q8i1kjzb"))))
7620 (build-system emacs-build-system)
7621 (arguments
7622 `(#:phases
7623 (modify-phases %standard-phases
7624 (add-after 'unpack 'embed-path-to-unzip
7625 (lambda _
7626 (substitute* "nov.el"
7627 (("\\(executable-find \"unzip\"\\)")
7628 (string-append "\"" (which "unzip") "\"")))
7629 #t)))))
7630 (propagated-inputs
7631 `(("emacs-dash" ,emacs-dash)
7632 ("emacs-esxml" ,emacs-esxml)))
7633 (inputs
7634 `(("unzip" ,unzip)))
7635 (home-page "https://github.com/wasamasa/nov.el/")
7636 (synopsis "Major mode for reading EPUBs in Emacs")
7637 (description "@code{nov.el} provides a major mode for reading EPUB
7638 documents.
7639
7640 Features:
7641
7642 @itemize
7643 @item Basic navigation (jump to TOC, previous/next chapter)
7644 @item Remembering and restoring the last read position
7645 @item Jump to next chapter when scrolling beyond end
7646 @item Renders EPUB2 (@code{.ncx}) and EPUB3 (@code{<nav>}) TOCs
7647 @item Hyperlinks to internal and external targets
7648 @item Supports textual and image documents
7649 @item View source of document files
7650 @item Metadata display
7651 @item Image rescaling
7652 @end itemize
7653 ")
7654 (license license:gpl3+)))
7655
7656 (define-public epipe
7657 (package
7658 (name "epipe")
7659 (version "0.1.0")
7660 (source
7661 (origin
7662 (method url-fetch)
7663 (uri (string-append "https://github.com/cute-jumper/epipe/archive/"
7664 version ".tar.gz"))
7665 (file-name (string-append name "-" version ".tar.gz"))
7666 (sha256
7667 (base32
7668 "05a036852g4j63k1mhvyfrcsgkl9lczayi7x61570ysw3cli5wp5"))))
7669 (build-system trivial-build-system)
7670 (inputs
7671 `(("bash" ,bash)
7672 ("perl" ,perl)))
7673 (native-inputs
7674 `(("tar" ,tar)
7675 ("gzip" ,gzip)))
7676 (arguments
7677 `(#:modules
7678 ((guix build utils))
7679 #:builder
7680 (begin
7681 (use-modules (guix build utils))
7682 ;; Extract source
7683 (setenv "PATH" (string-append
7684 (assoc-ref %build-inputs "tar") "/bin" ":"
7685 (assoc-ref %build-inputs "gzip") "/bin"))
7686 (system* "tar" "xvf" (assoc-ref %build-inputs "source"))
7687 (chdir (string-append ,name "-" ,version))
7688 ;; Patch shebangs
7689 (substitute* "epipe"
7690 (("/usr/bin/env bash")
7691 (string-append (assoc-ref %build-inputs "bash") "/bin/bash")))
7692 (patch-shebang "epipe.pl"
7693 (list (string-append (assoc-ref %build-inputs "perl")
7694 "/bin")))
7695 ;; Installation
7696 (for-each (lambda (file)
7697 (install-file file (string-append %output "/bin")))
7698 '("epipe" "epipe.pl"))
7699 #t)))
7700 (home-page "https://github.com/cute-jumper/epipe")
7701 (synopsis "Pipe to the @code{emacsclient}")
7702 (description "@code{epipe} provides an utility to use your editor in
7703 the pipeline, featuring the support for running @code{emacsclient}.")
7704 (license license:gpl3+)))
7705
7706 (define-public emacs-hcl-mode
7707 (package
7708 (name "emacs-hcl-mode")
7709 (version "0.03")
7710 (source
7711 (origin
7712 (method url-fetch)
7713 (uri (string-append
7714 "https://github.com/syohex/emacs-hcl-mode/archive/"
7715 version ".tar.gz"))
7716 (file-name (string-append name "-" version ".tar.gz"))
7717 (sha256
7718 (base32
7719 "0pvw74qpwh0znqzp6syp4wxjqs7dp1hbn5h7xfk97mff9l5d8k6x"))))
7720 (build-system emacs-build-system)
7721 (home-page "https://github.com/syohex/emacs-hcl-mode")
7722 (synopsis "Major mode for the Hashicorp Configuration Language")
7723 (description
7724 "@code{emacs-hcl-mode} provides an Emacs major mode for working with
7725 @acronym{HCL, Hashicorp Configuration Language}. It provides syntax
7726 highlighting and indentation support.")
7727 (license license:gpl3+)))
7728
7729 (define-public emacs-terraform-mode
7730 (package
7731 (name "emacs-terraform-mode")
7732 (version "0.06")
7733 (source
7734 (origin
7735 (method url-fetch)
7736 (uri (string-append
7737 "https://github.com/syohex/emacs-terraform-mode/archive/"
7738 version ".tar.gz"))
7739 (file-name (string-append name "-" version ".tar.gz"))
7740 (sha256
7741 (base32
7742 "0h9267ifdjmcin4sj8slxydbacx4bqicbvg8pa1qq2l72h9m5381"))))
7743 (build-system emacs-build-system)
7744 (propagated-inputs
7745 `(("emacs-hcl-mode" ,emacs-hcl-mode)))
7746 (home-page "https://github.com/syohex/emacs-terraform-mode")
7747 (synopsis "Major mode for Terraform")
7748 (description
7749 "@code{emacs-terraform-mode} provides a major mode for working with
7750 @uref{https://www.terraform.io/, Terraform} configuration files. Most of the
7751 functionality is inherited from @code{hcl-mode}.")
7752 (license license:gpl3+)))
7753
7754 (define-public emacs-exec-path-from-shell
7755 (package
7756 (name "emacs-exec-path-from-shell")
7757 (version "1.11")
7758 (source
7759 (origin
7760 (method url-fetch)
7761 (uri (string-append
7762 "https://stable.melpa.org/packages/exec-path-from-shell-"
7763 version ".el"))
7764 (sha256
7765 (base32
7766 "03qjgb81cq1l3j54lvlf98r75vmmgd06mj6qh5wa6mz4xzp4w26r"))))
7767 (build-system emacs-build-system)
7768 (home-page "https://github.com/purcell/exec-path-from-shell")
7769 (synopsis "Get environment variables such as @var{PATH} from the shell")
7770 (description
7771 "This library allows the user to set Emacs @var{exec-path} and @var{PATH}
7772 from the shell @var{PATH}, so that @code{shell-command}, @code{compile} and
7773 the like work as expected on systems on which Emacs is not guaranteed to
7774 inherit a login shell's environment variables. It also allows other
7775 environment variables to be retrieved from the shell, so that Emacs will see
7776 the same values you get in a terminal.")
7777 (license license:gpl3+)))
7778
7779 (define-public emacs-deft
7780 (package
7781 (name "emacs-deft")
7782 (version "0.8")
7783 (source
7784 (origin
7785 (method url-fetch)
7786 (uri (string-append "https://stable.melpa.org/packages/deft-"
7787 version ".el"))
7788 (sha256
7789 (base32
7790 "1vb9cjxskc7c0yyf9pvxy1fzypg1vrcgwnjz0m3hslinsgdyig58"))))
7791 (build-system emacs-build-system)
7792 (home-page "https://jblevins.org/projects/deft/")
7793 (synopsis "Quickly browse, filter, and edit plain text notes")
7794 (description
7795 "Deft is an Emacs mode for quickly browsing, filtering, and editing
7796 directories of plain text notes, inspired by Notational Velocity.")
7797 (license license:bsd-3)))
7798
7799 (define-public emacs-anzu
7800 (package
7801 (name "emacs-anzu")
7802 (version "0.62")
7803 (source
7804 (origin
7805 (method url-fetch)
7806 (uri (string-append "https://github.com/syohex/emacs-anzu/archive/"
7807 version ".tar.gz"))
7808 (file-name (string-append name "-" version ".tar.gz"))
7809 (sha256
7810 (base32
7811 "16cg3897x5znbmgk7sdy0qyd0fbic9dmmz0dchq2vz5z29yhg4cz"))))
7812 (build-system emacs-build-system)
7813 (home-page "https://github.com/syohex/emacs-anzu")
7814 (synopsis "Show number of matches in mode-line while searching")
7815 (description
7816 "Anzu provides a minor mode which displays \"current match/total
7817 matches\" in the mode line in various search modes. This is an Emacs port of
7818 Anzu.zim.")
7819 (license license:gpl3+)))
7820
7821 (define-public emacs-emmet-mode
7822 (package
7823 (name "emacs-emmet-mode")
7824 (version "1.0.8")
7825 (source (origin
7826 (method url-fetch)
7827 (uri (string-append "https://github.com/smihica/emmet-mode"
7828 "/archive/" version ".tar.gz"))
7829 (file-name (string-append name "-" version ".tar.gz"))
7830 (sha256
7831 (base32
7832 "0g3p22yabfcp98cfv9dgl9il2m2pd53isq2q11vb3s7qyn31f7zj"))))
7833 (build-system emacs-build-system)
7834 (home-page "https://github.com/smihica/emmet-mode")
7835 (synopsis "Unofficial Emmet's support for Emacs")
7836 (description
7837 "Unfold CSS-selector-like expressions to markup. It is intended to be
7838 used with SGML-like languages: XML, HTML, XHTML, XSL, etc.")
7839 (license license:gpl3+)))
7840
7841 (define-public emacs-ergoemacs-mode
7842 (let ((commit "3ce23bba3cb50562693860f87f3528c471d603ba")
7843 (revision "1"))
7844 (package
7845 (name "emacs-ergoemacs-mode")
7846 (version (git-version "5.16.10.12" revision commit))
7847 (source
7848 (origin
7849 (method git-fetch)
7850 (uri (git-reference
7851 (url "https://github.com/ergoemacs/ergoemacs-mode.git")
7852 (commit commit)))
7853 (sha256
7854 (base32
7855 "1s3b9bridl78hh1mxmdk9nqlmqhibbaxk0a1cixmsf23s06w8w6l"))))
7856 (build-system emacs-build-system)
7857 (propagated-inputs
7858 `(("emacs-undo-tree" ,emacs-undo-tree)))
7859 (home-page "https://ergoemacs.github.io/")
7860 (synopsis "Emacs mode based on common modern interface and ergonomics")
7861 (description
7862 "This package provides an efficient Emacs keybinding set based on
7863 statistics of command frequency, and supports common shortcuts for open,
7864 close, copy, cut, paste, undo, redo.")
7865 (license license:gpl3+))))
7866
7867 (define-public emacs-password-store
7868 (package
7869 (name "emacs-password-store")
7870 (version "1.7.1")
7871 (source (origin
7872 (method url-fetch)
7873 (uri
7874 (string-append "https://git.zx2c4.com/password-store/snapshot/"
7875 "password-store-" version ".tar.xz"))
7876 (sha256
7877 (base32
7878 "0scqkpll2q8jhzcgcsh9kqz0gwdpvynivqjmmbzax2irjfaiklpn"))))
7879 (build-system emacs-build-system)
7880 (arguments
7881 `(#:phases
7882 (modify-phases %standard-phases
7883 (add-after 'unpack 'extract-el-file
7884 (lambda _
7885 (copy-file "contrib/emacs/password-store.el" "password-store.el")
7886 (delete-file-recursively "contrib")
7887 (delete-file-recursively "man")
7888 (delete-file-recursively "src")
7889 (delete-file-recursively "tests"))))))
7890 (propagated-inputs
7891 `(("emacs-f" ,emacs-f)
7892 ("emacs-s" ,emacs-s)
7893 ("password-store" ,password-store)))
7894 (home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs")
7895 (synopsis "Password store (pass) support for Emacs")
7896 (description
7897 "This package provides functions for working with pass (\"the
7898 standard Unix password manager\").")
7899 (license license:gpl2+)))
7900
7901 (define-public emacs-pass
7902 (package
7903 (name "emacs-pass")
7904 (version "1.7")
7905 (source (origin
7906 (method url-fetch)
7907 (uri (string-append
7908 "https://github.com/NicolasPetton/pass/archive/"
7909 version ".tar.gz"))
7910 (sha256
7911 (base32
7912 "0zlx9v6z0q3w9qhq9bq6vb7sli4c9x7qccm2wq55j0nw7bwy2yvj"))
7913 (file-name (string-append name "-" version ".tar.gz"))))
7914 (build-system emacs-build-system)
7915 (propagated-inputs
7916 `(("emacs-password-store" ,emacs-password-store)
7917 ("emacs-f" ,emacs-f)))
7918 (home-page "https://github.com/NicolasPetton/pass")
7919 (synopsis "Major mode for @file{password-store.el}")
7920 (description "This is a major mode for managing password-store (pass)
7921 keychains. The keychain entries are displayed in a directory-like structure
7922 and can be consulted and modified.")
7923 (license license:gpl3+)))
7924
7925 (define-public emacs-evil-anzu
7926 (package
7927 (name "emacs-evil-anzu")
7928 (version "0.03")
7929 (source
7930 (origin
7931 (method url-fetch)
7932 (uri (string-append "https://github.com/syohex/emacs-evil-anzu"
7933 "/archive/" version ".tar.gz"))
7934 (file-name (string-append name "-" version ".tar.gz"))
7935 (sha256
7936 (base32 "032hh2946z529cizqsg8pm6cpn5qdj8lfk3qskmx6xv3g2ra56ns"))))
7937 (build-system emacs-build-system)
7938 (propagated-inputs
7939 `(("emacs-evil" ,emacs-evil)
7940 ("emacs-anzu" ,emacs-anzu)))
7941 (home-page "https://github.com/syohex/emacs-evil-anzu")
7942 (synopsis "Anzu for evil-mode")
7943 (description "@code{anzu} provides a minor mode that displays the current
7944 match and total match information in the mode-line in various search modes.")
7945 (license license:gpl3+)))
7946
7947 (define-public emacs-pg
7948 (let ((commit "4f6516ec3946d95dcef49abb6703cc89ecb5183d"))
7949 (package
7950 (name "emacs-pg")
7951 (version (git-version "0.1" "1" commit))
7952 (source (origin
7953 (method git-fetch)
7954 (uri (git-reference (url "https://github.com/cbbrowne/pg.el")
7955 (commit commit)))
7956 (file-name (git-file-name name version))
7957 (sha256
7958 (base32
7959 "1zh7v4nnpzvbi8yj1ynlqlawk5bmlxi6s80b5f2y7hkdqb5q26k0"))))
7960 (build-system emacs-build-system)
7961 (home-page "https://github.com/cbbrowne/pg.el")
7962 (synopsis "Emacs Lisp interface for PostgreSQL")
7963 (description
7964 "This package provides an Emacs Lisp interface for PostgreSQL.")
7965 (license license:gpl3+))))
7966
7967 (define-public emacs-cl-generic
7968 (package
7969 (name "emacs-cl-generic")
7970 (version "0.3")
7971 (source
7972 (origin
7973 (method url-fetch)
7974 (uri (string-append "https://elpa.gnu.org/packages/cl-generic-"
7975 version ".el"))
7976 (sha256
7977 (base32
7978 "0vb338bhjpsnrf60qgxny4z5rjrnifahnrv9axd4shay89d894zq"))))
7979 (build-system emacs-build-system)
7980 (home-page "https://elpa.gnu.org/packages/seq.html")
7981 (synopsis
7982 "Forward @code{cl-generic} compatibility for Emacs before version 25")
7983 (description "This package provides a subset of the features of the
7984 @code{cl-generic} package introduced in Emacs-25, for use on previous
7985 @code{emacsen}.")
7986 (license license:gpl3+)))
7987
7988 (define-public emacs-finalize
7989 (package
7990 (name "emacs-finalize")
7991 (version "2.0.0")
7992 (source
7993 (origin
7994 (method url-fetch)
7995 (uri (string-append "https://github.com/skeeto/elisp-finalize/archive/"
7996 version ".tar.gz"))
7997 (file-name (string-append name "-" version ".tar.gz"))
7998 (sha256
7999 (base32
8000 "077fycy3i5f0kjw5z3rhf4kld5lbk2idz690nkwhkz04vppk4q4x"))))
8001 (build-system emacs-build-system)
8002 (propagated-inputs
8003 `(("emacs-cl-generic" ,emacs-cl-generic)))
8004 (home-page "https://github.com/skeeto/elisp-finalize")
8005 (synopsis "Finalizers for Emacs Lisp")
8006 (description
8007 "This package will allows to immediately run a callback (a finalizer)
8008 after its registered lisp object has been garbage collected. This allows for
8009 extra resources, such as buffers and processes, to be cleaned up after the
8010 object has been freed.")
8011 (license license:unlicense)))
8012
8013 (define-public emacs-emacsql
8014 (package
8015 (name "emacs-emacsql")
8016 (version "2.0.3")
8017 (source
8018 (origin
8019 (method url-fetch)
8020 (uri (string-append "https://github.com/skeeto/emacsql/archive/"
8021 version ".tar.gz"))
8022 (file-name (string-append name "-" version ".tar.gz"))
8023 (sha256
8024 (base32
8025 "04hfjdgl1zc7jysgjc7d7d3xqpr7q1q9gsmzffjd91ii3hpqjgx6"))))
8026 (build-system emacs-build-system)
8027 (arguments
8028 `(#:modules ((guix build emacs-build-system)
8029 (guix build utils)
8030 (guix build emacs-utils)
8031 (srfi srfi-26))
8032 #:phases
8033 (modify-phases %standard-phases
8034 (delete 'build) ;‘build-emacsql-sqlite’ compiles ‘*.el’ files.
8035 (add-before 'install 'patch-elisp-shell-shebangs
8036 (lambda _
8037 (substitute* (find-files "." "\\.el")
8038 (("/bin/sh") (which "sh")))
8039 #t))
8040 (add-after 'patch-elisp-shell-shebangs 'setenv-shell
8041 (lambda _
8042 (setenv "SHELL" "sh")))
8043 (add-after 'setenv-shell 'build-emacsql-sqlite
8044 (lambda _
8045 (invoke "make" "binary" "CC=gcc")))
8046 (add-after 'build-emacsql-sqlite 'install-emacsql-sqlite
8047 ;; This build phase installs emacs-emacsql binary.
8048 (lambda* (#:key outputs #:allow-other-keys)
8049 (install-file "sqlite/emacsql-sqlite"
8050 (string-append (assoc-ref outputs "out")
8051 "/bin"))
8052 #t))
8053 (add-after 'install-emacsql-sqlite 'patch-emacsql-sqlite.el
8054 ;; This build phase removes interactive prompts
8055 ;; and makes sure Emacs look for binaries in the right places.
8056 (lambda* (#:key outputs #:allow-other-keys)
8057 (let ((file "emacsql-sqlite.el"))
8058 (chmod file #o644)
8059 (emacs-substitute-sexps file
8060 ;; Avoid interactive prompts.
8061 ("(defvar emacsql-sqlite-user-prompted" 't)
8062 ;; Make sure Emacs looks for ‘GCC’ binary in the right place.
8063 ("(executable-find" (which "gcc"))
8064 ;; Make sure Emacs looks for ‘emacsql-sqlite’ binary
8065 ;; in the right place.
8066 ("(defvar emacsql-sqlite-executable"
8067 (string-append (assoc-ref outputs "out")
8068 "/bin/emacsql-sqlite"))))))
8069 (replace 'install
8070 (lambda* (#:key outputs #:allow-other-keys)
8071 (let* ((out (assoc-ref outputs "out")))
8072 (install-file "sqlite/emacsql-sqlite"
8073 (string-append out "/bin"))
8074 (for-each (cut install-file <>
8075 (string-append out "/share/emacs/site-lisp/guix.d/"
8076 "emacsql" "-" ,version))
8077 (find-files "." "\\.elc*$")))
8078 #t)))))
8079 (inputs
8080 `(("emacs-minimal" ,emacs-minimal)
8081 ("mysql" ,mysql)
8082 ("postgresql" ,postgresql)))
8083 (propagated-inputs
8084 `(("emacs-finalize" ,emacs-finalize)
8085 ("emacs-pg" ,emacs-pg)))
8086 (home-page "https://github.com/skeeto/emacsql")
8087 (synopsis "Emacs high-level SQL database front-end")
8088 (description "Any readable Lisp value can be stored as a value in EmacSQL,
8089 including numbers, strings, symbols, lists, vectors, and closures. EmacSQL
8090 has no concept of @code{TEXT} values; it's all just Lisp objects. The Lisp
8091 object @code{nil} corresponds 1:1 with @code{NULL} in the database.")
8092 (license license:gpl3+)))
8093
8094 (define-public emacs-closql
8095 (package
8096 (name "emacs-closql")
8097 (version "0.5.1")
8098 (source
8099 (origin
8100 (method url-fetch)
8101 (uri (string-append "https://github.com/emacscollective/closql/archive/"
8102 "v" version ".tar.gz"))
8103 (file-name (string-append name "-" version ".tar.gz"))
8104 (sha256
8105 (base32
8106 "0wa6r0kgbb7f19039p5f3di4dvrvxfgpd8bkam94fca7jvzj536c"))))
8107 (build-system emacs-build-system)
8108 (propagated-inputs
8109 `(("emacs-emacsql" ,emacs-emacsql)))
8110 (home-page "https://github.com/emacscollective/closql")
8111 (synopsis "Store EIEIO objects using EmacSQL")
8112 (description
8113 "This package allows to store uniform EIEIO objects in an EmacSQL
8114 database. SQLite is used as backend. This library imposes some restrictions
8115 on what kind of objects can be stored; it isn't intended to store arbitrary
8116 objects. All objects have to share a common superclass and subclasses cannot
8117 add any additional instance slots.")
8118 (license license:gpl3)))
8119
8120 (define-public emacs-epkg
8121 ;; The release version is to old for the current database scheme.
8122 (let ((commit "432312b9583ed7b88ad9644fd1bf2183765a892e"))
8123 (package
8124 (name "emacs-epkg")
8125 (version (git-version "3.0.0" "1" commit))
8126 (source
8127 (origin
8128 (method git-fetch)
8129 (uri (git-reference
8130 (url "https://github.com/emacscollective/epkg.git")
8131 (commit commit)))
8132 (file-name (git-file-name name version))
8133 (sha256
8134 (base32
8135 "0d882kahn7a0vri7a9r15lvmfx1zn2hsga6jfcc6jv0hqbswlb2k"))))
8136 (build-system emacs-build-system)
8137 (propagated-inputs
8138 `(("emacs-closql" ,emacs-closql)
8139 ("emacs-dash" ,emacs-dash)))
8140 (home-page "https://emacsmirror.net")
8141 (synopsis "Browse the Emacsmirror package database")
8142 (description "This package provides access to a local copy of the
8143 Emacsmirror package database. It provides low-level functions for querying
8144 the database and a @file{package.el} user interface for browsing the database.
8145 Epkg itself is not a package manager.
8146
8147 Getting a local copy:
8148
8149 @example
8150 git clone https://github.com/emacsmirror/epkgs.git ~/.emacs.d/epkgs
8151 cd ~/.emacs.d/epkgs
8152 git submodule init
8153 git config --global url.https://github.com/.insteadOf git@@github.com:
8154 git submodule update
8155 @end example
8156
8157 Some submodule may be missing. In this case Git will prompt for a GitHub user
8158 name and password. To skip it press a @key{Return} key.
8159
8160 You could get a Epkg package list by invoking @code{epkg-list-packages} in
8161 Emacs.")
8162 (license license:gpl3+))))
8163
8164 (define-public emacs-elisp-slime-nav
8165 (package
8166 (name "emacs-elisp-slime-nav")
8167 (version "0.9")
8168 (source
8169 (origin
8170 (method url-fetch)
8171 (uri (string-append "https://github.com/purcell/elisp-slime-nav/archive/"
8172 version ".tar.gz"))
8173 (file-name (string-append name "-" version ".tar.gz"))
8174 (sha256
8175 (base32
8176 "1vq7ym1q47p97gxrv45c9gm96d23xbp237vkmakikj6grngxjfb2"))))
8177 (build-system emacs-build-system)
8178 (home-page "https://github.com/purcell/elisp-slime-nav")
8179 (synopsis "Make @code{M-.} and @code{M-,} work for elisp like they do in SLIME")
8180 (description
8181 "This package provides SLIME's convenient @code{M-.}and @code{M-,} navigation
8182 in @code{emacs-lisp-mode}, together with an elisp equivalent of
8183 @code{slime-describe-symbol}.")
8184 (license license:gpl3+)))
8185
8186 (define-public emacs-dedicated
8187 (package
8188 (name "emacs-dedicated")
8189 (version "1.0.0")
8190 (source (origin
8191 (method url-fetch)
8192 (uri (string-append
8193 "https://github.com/emacsorphanage/dedicated/archive/"
8194 version
8195 ".tar.gz"))
8196 (sha256
8197 (base32
8198 "0nhbkp278cvcznb5rp3jp9ii3mjgb79zx8iwfrw7zfk3yg8688ni"))
8199 (file-name (string-append name "-" version ".tar.gz"))))
8200 (build-system emacs-build-system)
8201 (home-page "https://github.com/emacsorphanage/dedicated")
8202 (synopsis "Emacs minor mode for toggling a windows's \"dedicated\" flag")
8203 (description
8204 "This simple Emacs minor mode allows you to toggle a window's
8205 \"dedicated\" flag. When a window is \"dedicated\", Emacs will not select
8206 files into that window. This can be quite handy since many commands will use
8207 another window to show results (compilation mode, starting info, and so on).
8208 A dedicated window won't be used for such a purpose. For details, please read
8209 the source file.")
8210 (license license:gpl2+)))
8211
8212 (define-public emacs-nnreddit
8213 (let ((commit "9843f99d01fd8f1eea2fc685965a7c7f4eeb187a")
8214 (revision "1"))
8215 (package
8216 (name "emacs-nnreddit")
8217 (version (string-append "0.0.1-" revision "."
8218 (string-take commit 7)))
8219 (source (origin
8220 (method git-fetch)
8221 (uri (git-reference
8222 (url "https://github.com/paul-issartel/nnreddit.git")
8223 (commit commit)))
8224 (file-name (string-append name "-" version "-checkout"))
8225 (sha256
8226 (base32
8227 "0j4h3bnga640250jdq8bwyja49r41ssrsjd6lba4gzzllqk02nbn"))))
8228 (build-system emacs-build-system)
8229 (home-page "https://github.com/paul-issartel/nnreddit")
8230 (synopsis "Reddit backend for the Gnus newsreader")
8231 (description "@url{https://www.reddit.com} backend for the Gnus
8232 newsreader.")
8233 (license license:gpl3+))))
8234
8235 (define-public emacs-makey
8236 (package
8237 (name "emacs-makey")
8238 (version "0.3")
8239 (source
8240 (origin
8241 (method url-fetch)
8242 (uri (string-append "https://github.com/mickeynp/makey/archive/"
8243 version ".tar.gz"))
8244 (file-name (string-append name "-" version ".tar.gz"))
8245 (sha256
8246 (base32
8247 "0kzl4q1wf2zhkx9nrymxa67n99iq0bj7zqhpaz4byksna1hsxfmv"))))
8248 (build-system emacs-build-system)
8249 (home-page "https://github.com/mickeynp/makey")
8250 (synopsis "Emacs interactive command-line mode")
8251 (description
8252 "This package provides an Emacs interactive command-line mode.")
8253 (license license:gpl3+)))
8254
8255 (define-public emacs-outorg
8256 (let ((commit "78b0695121fb974bc4e971eb4ef7f8afd6d89d64"))
8257 (package
8258 (name "emacs-outorg")
8259 (version (git-version "2.0" "1" commit))
8260 (source
8261 (origin
8262 (method git-fetch)
8263 (uri (git-reference
8264 (url "https://github.com/alphapapa/outorg")
8265 (commit commit)))
8266 (file-name (git-file-name name version))
8267 (sha256
8268 (base32
8269 "03aclh4m3f7rb821gr9pwvnqkkl91px3qxdcarpf3ypa1x4fxvlj"))))
8270 (build-system emacs-build-system)
8271 (home-page "https://github.com/alphapapa/outorg")
8272 (synopsis "Org-style comment editing")
8273 (description "Outorg is for editing comment-sections of source-code
8274 files in temporary Org-mode buffers. It turns conventional
8275 literate-programming upside-down in that the default mode is the
8276 programming-mode, and special action has to be taken to switch to the
8277 text-mode (i.e. Org-mode).")
8278 (license license:gpl3+))))
8279
8280 (define-public emacs-outshine
8281 (let ((commit "5f1a6b70231d2811c522e4e5e8c89ff461b311d6"))
8282 (package
8283 (name "emacs-outshine")
8284 (version (git-version "2.0" "1" commit))
8285 (source (origin
8286 (method git-fetch)
8287 (uri (git-reference
8288 (url "https://github.com/alphapapa/outshine.git")
8289 (commit commit)))
8290 (file-name (git-file-name name version))
8291 (sha256
8292 (base32
8293 "1l9v1dfhgg7il11ifbhvcvrg3acfjk9sdxlc3lja1k54d7dp60jv"))))
8294 (build-system emacs-build-system)
8295 (propagated-inputs
8296 `(("emacs-outorg" ,emacs-outorg)))
8297 (home-page "https://github.com/alphapapa/outshine")
8298 (synopsis "Emacs outline with outshine")
8299 (description "Outshine attempts to bring the look and feel of
8300 @code{org-mode} to an Emacs outside of the Org major-mode. It is an extension
8301 of @code{outline-minor-mode} (@code{org-mode} itself derives from
8302 outline-mode), so there is no such thing like an outshine mode, only
8303 @code{outline-minor-mode} with outshine extensions loaded.")
8304 (license license:gpl3+))))
8305
8306 (define-public emacs-parsebib
8307 (package
8308 (name "emacs-parsebib")
8309 (version "2.3.1")
8310 (source
8311 (origin
8312 (method url-fetch)
8313 (uri (string-append "https://github.com/joostkremers/parsebib/archive/"
8314 version ".tar.gz"))
8315 (file-name (string-append name "-" version ".tar.gz"))
8316 (sha256
8317 (base32
8318 "0cxagnmc5ab6idmb26axpizhr4sqglkncc59768yavn3p04jyq63"))))
8319 (build-system emacs-build-system)
8320 (home-page "https://github.com/joostkremers/parsebib")
8321 (synopsis "Library for parsing bib files")
8322 (description
8323 "This package provides an Emacs library for parsing bib files.")
8324 (license license:gpl3+)))
8325
8326 (define-public emacs-biblio
8327 (package
8328 (name "emacs-biblio")
8329 (version "0.1")
8330 (source
8331 (origin
8332 (method url-fetch)
8333 (uri (string-append "https://github.com/cpitclaudel/biblio.el/archive/"
8334 version ".tar.gz"))
8335 (file-name (string-append name "-" version ".tar.gz"))
8336 (sha256
8337 (base32
8338 "109fvivsb4r0rbqljngqrmxqvbnbkqlivczx6brrvlr7ci625lhf"))))
8339 (build-system emacs-build-system)
8340 (home-page "https://github.com/cpitclaudel/biblio.el")
8341 (synopsis "Browse and import bibliographic references")
8342 (description "This package provides an extensible Emacs package for
8343 browsing and fetching references.
8344
8345 @file{biblio.el} makes it easy to browse and gather bibliographic references
8346 and publications from various sources, by keywords or by DOI. References are
8347 automatically fetched from well-curated sources, and formatted as BibTeX.")
8348 (license license:gpl3+)))
8349
8350 (define-public emacs-helm-bibtex
8351 (let ((commit "8ed898fb5a68f18e9bb9973832a5c1f8abcfc463")
8352 (revision "1"))
8353 (package
8354 (name "emacs-helm-bibtex")
8355 (version (string-append "2.0.0" "-" revision "."
8356 (string-take commit 7)))
8357 (source
8358 (origin
8359 (method git-fetch)
8360 (uri (git-reference
8361 (url "https://github.com/tmalsburg/helm-bibtex.git")
8362 (commit commit)))
8363 (file-name (string-append name "-" version "-checkout"))
8364 (sha256
8365 (base32
8366 "14lyx0vbqr97p3anzrsp7m3q0kqclyjcdwplpraim403fcklzbnz"))))
8367 (build-system emacs-build-system)
8368 (propagated-inputs
8369 `(("emacs-helm" ,emacs-helm)
8370 ("emacs-parsebib" ,emacs-parsebib)
8371 ("emacs-s" ,emacs-s)
8372 ("emacs-dash" ,emacs-dash)
8373 ("emacs-f" ,emacs-f)
8374 ("emacs-biblio" ,emacs-biblio)))
8375 (home-page "https://github.com/tmalsburg/helm-bibtex")
8376 (synopsis "Bibliography manager based on Helm")
8377 (description "This package provides bibliography manager for Emacs,
8378 based on Helm and the bibtex-completion backend.
8379
8380 Key features:
8381
8382 @itemize
8383 @item Quick access to your bibliography from within Emacs
8384 @item Powerful search capabilities
8385 @item Provides instant search results as you type
8386 @item Tightly integrated with LaTeX authoring, emails, Org mode, etc.
8387 @item Open the PDFs, URLs, or DOIs associated with an entry
8388 @item Insert LaTeX cite commands, Ebib links, or Pandoc citations,
8389 BibTeX entries, or plain text references at point, attach PDFs to emails
8390 @item Support for note taking
8391 @item Quick access to online bibliographic databases such as Pubmed,
8392 arXiv, Google Scholar, Library of Congress, etc.
8393 @item Imports BibTeX entries from CrossRef and other sources.
8394 @end itemize\n")
8395 (license license:gpl3+))))
8396
8397 (define-public emacs-ewmctrl
8398 (let ((commit "3d0217c4d6cdb5c308b6cb4293574f470d4faacf"))
8399 (package
8400 (name "emacs-ewmctrl")
8401 (version (git-version "0.0.1" "1" commit))
8402 (source
8403 (origin
8404 (method git-fetch)
8405 (uri (git-reference
8406 (url "https://github.com/flexibeast/ewmctrl.git")
8407 (commit commit)))
8408 (file-name (git-file-name name version))
8409 (sha256
8410 (base32
8411 "0ilwvx0qryv3v6xf0gxqwnfm6pf96gxap8h9g3f6z6lk9ff4n1wi"))))
8412 (build-system emacs-build-system)
8413 (arguments
8414 '(#:phases
8415 (modify-phases %standard-phases
8416 (add-after 'unpack 'patch-ewmctrl
8417 ;; This build phase makes sure ‘ewmctrl’ looks
8418 ;; for ‘wmctrl’ in the right place.
8419 (lambda _
8420 (let ((file "ewmctrl.el"))
8421 (chmod file #o644)
8422 (emacs-substitute-sexps file
8423 ("(defcustom ewmctrl-wmctrl-path" (which "wmctrl")))))))))
8424 (inputs
8425 `(("wmctrl" ,wmctrl)))
8426 (home-page "https://github.com/flexibeast/ewmctrl")
8427 (synopsis "Emacs interface to @code{wmctrl}")
8428 (description "@code{ewmctrl} provides an Emacs interface to
8429 @code{wmctrl} command-line window-management program.")
8430 (license license:gpl3+))))
8431
8432 (define-public emacs-helm-gtags
8433 (package
8434 (name "emacs-helm-gtags")
8435 (version "1.5.6")
8436 (source (origin
8437 (method url-fetch)
8438 (uri (string-append
8439 "https://github.com/syohex/emacs-helm-gtags/archive/"
8440 version ".tar.gz"))
8441 (file-name (string-append name "-" version ".tar.gz"))
8442 (sha256
8443 (base32
8444 "1a10snhg6nnnan6w9a7mcziy26vxbsr3c35i0gcarnkdp2yqng36"))))
8445 (build-system emacs-build-system)
8446 (propagated-inputs
8447 `(("emacs-helm" ,emacs-helm)))
8448 (home-page "https://github.com/syohex/emacs-helm-gtags")
8449 (synopsis "Emacs Helm interface to GNU Global")
8450 (description
8451 "@code{emacs-helm-gtags} provides a Emacs Helm interface to GNU Global.")
8452 (license license:gpl3+)))
8453
8454 (define-public emacs-list-utils
8455 (package
8456 (name "emacs-list-utils")
8457 (version "0.4.4")
8458 (source
8459 (origin
8460 (method url-fetch)
8461 (uri (string-append "https://github.com/rolandwalker/list-utils/archive/"
8462 "v" version ".tar.gz"))
8463 (file-name (string-append name "-" version ".tar.gz"))
8464 (sha256
8465 (base32
8466 "1xc1xh8c82h5gdjbgpdsdclgwxkxbb7h3x3a2bscpm41g8pnan4p"))))
8467 (build-system emacs-build-system)
8468 (home-page "https://github.com/rolandwalker/list-utils")
8469 (synopsis "List-manipulation utility functions")
8470 (description "This package provides a list manipulation library for Emacs.")
8471 (license license:gpl3+)))
8472
8473 (define-public emacs-move-text
8474 (package
8475 (name "emacs-move-text")
8476 (version "2.0.8")
8477 (source
8478 (origin
8479 (method url-fetch)
8480 (uri (string-append "https://github.com/emacsfodder/move-text/archive/"
8481 version ".tar.gz"))
8482 (file-name (string-append name "-" version ".tar.gz"))
8483 (sha256
8484 (base32
8485 "1sjfja9r25692pgcldgnjzkapzy970m14jh9l4pajysiqcdk72g0"))))
8486 (build-system emacs-build-system)
8487 (home-page "https://github.com/emacsfodder/move-text")
8488 (synopsis "Move current line or region with M-up or M-down")
8489 (description "This package provide functions to move the current line
8490 using @kbd{M-up} or @kbd{M-down} if a region is marked, it will move the
8491 region instead.")
8492 (license license:gpl3+)))
8493
8494 (define-public emacs-validate
8495 (package
8496 (name "emacs-validate")
8497 (version "1.0.5")
8498 (source (origin
8499 (method url-fetch)
8500 (uri (string-append "https://github.com/Malabarba/validate.el"
8501 "/archive/" version ".tar.gz"))
8502 (file-name (string-append name "-" version ".tar.gz"))
8503 (sha256
8504 (base32
8505 "125mbd111f1h1baw0z3fzm48y1bvaigljyzvvnqgrn0shxbj0khg"))))
8506 (build-system emacs-build-system)
8507 (home-page "https://github.com/Malabarba/validate.el")
8508 (synopsis "Emacs library for scheme validation")
8509 (description "This Emacs library provides two functions that perform
8510 schema validation.")
8511 (license license:gpl3+)))
8512
8513 (define-public emacs-load-relative
8514 (let ((commit "738896e3da491b35399178ed2c6bc92cc728d119")
8515 (revision "1"))
8516 (package
8517 (name "emacs-load-relative")
8518 (version (string-append "0.0.1" "-" revision "."
8519 (string-take commit 7)))
8520 (source
8521 (origin
8522 (method git-fetch)
8523 (uri (git-reference
8524 (url "https://github.com/rocky/emacs-load-relative")
8525 (commit commit)))
8526 (file-name (string-append name "-" version "-checkout"))
8527 (sha256
8528 (base32
8529 "1rpy5mfncncl6gqgg53d3g25g1700g4b9bivd4c0cfcv5dbxhp73"))))
8530 (build-system emacs-build-system)
8531 (home-page "https://github.com/rocky/emacs-load-relative")
8532 (synopsis "Relative loads for Emacs Lisp files")
8533 (description "@code{load-relative} allows to write small Emacs
8534 functions or modules in a larger multi-file Emacs package and
8535 facilitate running from the source tree without having to install the
8536 code or fiddle with evil @code{load-path}.")
8537 (license license:gpl3+))))
8538
8539 (define-public emacs-rainbow-blocks
8540 (let ((commit "dd435d7bb34ff6f162a5f315df308b90b7e9f842"))
8541 (package
8542 (name "emacs-rainbow-blocks")
8543 (version (git-version "1.0.0" "1" commit))
8544 (source (origin
8545 (method git-fetch)
8546 (uri (git-reference
8547 (url "https://github.com/istib/rainbow-blocks.git")
8548 (commit commit)))
8549 (file-name (git-file-name name version))
8550 (sha256
8551 (base32
8552 "06yfb3i7wzvqrhkb61zib9xvpb5i00s4frizkzff66im05k0n795"))))
8553 (build-system emacs-build-system)
8554 (home-page "https://github.com/istib/rainbow-blocks")
8555 (synopsis "Highlight sexp blocks")
8556 (description "Rainbow-blocks is an Emacs mode that highlights blocks
8557 made of parentheses, brackets, and braces according to their depth. Each
8558 successive level is highlighted in a different color. This makes it easy to
8559 orient yourself in the code, and tell which statements are at a given level.")
8560 (license license:gpl3+))))
8561
8562 (define-public emacs-hierarchy
8563 (package
8564 (name "emacs-hierarchy")
8565 (version "0.7.0")
8566 (source
8567 (origin
8568 (method url-fetch)
8569 (uri (string-append
8570 "https://github.com/DamienCassou/hierarchy/archive/"
8571 "v" version ".tar.gz"))
8572 (file-name (string-append name "-" version ".tar.gz"))
8573 (sha256
8574 (base32
8575 "1a463v5zk6zis2p8cs4mads3iyxh266yahi6j6y0paggfl2yhkc8"))))
8576 (build-system emacs-build-system)
8577 (home-page "https://github.com/DamienCassou/hierarchy")
8578 (synopsis "Library to create and display hierarchy structures")
8579 (description "This package provides an Emacs library to create, query,
8580 navigate and display hierarchy structures.")
8581 (license license:gpl3+)))
8582
8583 (define-public emacs-tree-mode
8584 (let ((commit "b06078826d5875d74b0e7b7ac47b0d0917610534")
8585 (revision "1"))
8586 (package
8587 (name "emacs-tree-mode")
8588 (version (string-append "0.0.1" "-" revision "."
8589 (string-take commit 7)))
8590 (source
8591 (origin
8592 (method git-fetch)
8593 (uri (git-reference
8594 (url "https://github.com/emacsorphanage/tree-mode.git")
8595 (commit commit)))
8596 (file-name (string-append name "-" version "-checkout"))
8597 (sha256
8598 (base32
8599 "13bbdhdmqg4x9yghanhr8fsbsxbnypzxdxgicz31sjjm675kpnix"))))
8600 (build-system emacs-build-system)
8601 (home-page "https://github.com/emacsorphanage/tree-mode")
8602 (synopsis "Emacs mode to manage tree widgets")
8603 (description
8604 "This package provides an Emacs library to manage tree widgets.")
8605 (license license:gpl3+))))
8606
8607 (define-public emacs-md4rd
8608 (let ((commit "be0fc4951b2d1f5194ffa1fcaac706dbac560500")
8609 (revision "1"))
8610 (package
8611 (name "emacs-md4rd")
8612 (version (string-append "0.0.1" "-" revision "."
8613 (string-take commit 7)))
8614 (source (origin
8615 (method git-fetch)
8616 (uri (git-reference
8617 (url "https://github.com/ahungry/md4rd.git")
8618 (commit commit)))
8619 (file-name (string-append name "-" version "-checkout"))
8620 (sha256
8621 (base32
8622 "1i93shx5x192gd7cl2r6gvcvhhwyi1k08abi5w3izv1hn3pmksgq"))))
8623 (propagated-inputs
8624 `(("emacs-hierarchy" ,emacs-hierarchy)
8625 ("emacs-request" ,emacs-request)
8626 ("emacs-dash" ,emacs-dash)
8627 ("emacs-s" ,emacs-s)
8628 ("emacs-tree-mode" ,emacs-tree-mode)))
8629 (build-system emacs-build-system)
8630 (home-page "https://github.com/ahungry/md4rd")
8631 (synopsis "Emacs Mode for Reddit")
8632 (description
8633 "This package allows to read Reddit from within Emacs interactively.")
8634 (license license:gpl3+))))
8635
8636 (define-public emacs-pulseaudio-control
8637 (let ((commit "08c59e1dc45ec96edb62f34036e82cf5f14c0e8b")
8638 (revision "1"))
8639 (package
8640 (name "emacs-pulseaudio-control")
8641 (version (string-append "0.0.1" "-" revision "."
8642 (string-take commit 7)))
8643 (source
8644 (origin
8645 (method git-fetch)
8646 (uri (git-reference
8647 (url "https://github.com/flexibeast/pulseaudio-control.git")
8648 (commit commit)))
8649 (file-name (string-append name "-" version "-checkout"))
8650 (sha256
8651 (base32
8652 "10cgg1r00kz2fsnnryvzay5pf8s1pwb1dzlds1fbjdnyfvdgammv"))))
8653 (build-system emacs-build-system)
8654 (home-page "https://github.com/flexibeast/pulseaudio-control")
8655 (synopsis "Control @code{pulseaudio} from Emacs")
8656 (description
8657 "This package allows to control @code{pulseaudio} from Emacs.")
8658 (license license:gpl3+))))
8659
8660 (define-public emacs-datetime
8661 (package
8662 (name "emacs-datetime")
8663 (version "0.3")
8664 (source (origin
8665 (method url-fetch)
8666 (uri (string-append
8667 "https://github.com/doublep/datetime/archive/"
8668 version ".tar.gz"))
8669 (file-name (string-append name "-" version ".tar.gz"))
8670 (sha256
8671 (base32
8672 "12wqpj67rjij2ki7nmw38rz3k2bsq68pk6zswknlcn9qhp1zd9w9"))))
8673 (build-system emacs-build-system)
8674 (home-page "https://github.com/doublep/datetime/")
8675 (synopsis "Library to work with dates in Emacs")
8676 (description "Parsing, formatting, matching and recoding
8677 timestamps and date-time format strings library for Emacs.")
8678 (license license:gpl3+)))
8679
8680 (define-public emacs-org-mind-map
8681 (let ((commit "9d6e262bedd94daf9de269f4d56de277275677cb")
8682 (revision "1"))
8683 (package
8684 (name "emacs-org-mind-map")
8685 (version (string-append "0.0.1" "-" revision "."
8686 (string-take commit 7)))
8687 (source
8688 (origin
8689 (method git-fetch)
8690 (uri (git-reference
8691 (url "https://github.com/theodorewiles/org-mind-map.git")
8692 (commit commit)))
8693 (file-name (string-append name "-" version "-checkout"))
8694 (sha256
8695 (base32
8696 "0jgkkgq7g64zckrmjib0hvz0qy3ynz5vz13qbmlpf096l3bb65wn"))))
8697 (propagated-inputs
8698 `(("emacs-dash" ,emacs-dash)))
8699 (build-system emacs-build-system)
8700 (home-page "https://github.com/theodorewiles/org-mind-map")
8701 (synopsis "Create Graphviz directed graphs from Org files")
8702 (description
8703 "This package creates Graphviz directed graphs from Org files.")
8704 (license license:gpl3+))))
8705
8706 (define-public emacs-npm-mode
8707 (package
8708 (name "emacs-npm-mode")
8709 (version "0.6.0")
8710 (source
8711 (origin
8712 (method url-fetch)
8713 (uri (string-append "https://github.com/mojochao/npm-mode/archive/"
8714 version ".tar.gz"))
8715 (file-name (string-append name "-" version ".tar.gz"))
8716 (sha256
8717 (base32
8718 "1kq1ww22dwf8c2i2b4z2ldbbmnihj65kb7n5vzvwkch9h4hxpqh5"))))
8719 (build-system emacs-build-system)
8720 (home-page "https://github.com/mojochao/npm-mode")
8721 (synopsis "Minor mode for working with @code{npm} projects")
8722 (description
8723 "@code{npm-mode} provides a minor mode to work with @code{npm} projects.")
8724 (license license:gpl3+)))
8725
8726 (define-public emacs-seq
8727 (package
8728 (name "emacs-seq")
8729 (version "2.20")
8730 (source
8731 (origin
8732 (method url-fetch)
8733 (uri (string-append "http://elpa.gnu.org/packages/seq-" version ".tar"))
8734 (sha256
8735 (base32
8736 "0vrpx6nnyjb0gsypknzagimlhvcvi5y1rcdkpxyqr42415zr8d0n"))))
8737 (build-system emacs-build-system)
8738 (home-page "http://elpa.gnu.org/packages/seq.html")
8739 (synopsis "Sequence manipulation functions")
8740 (description "Sequence-manipulation functions that complement basic
8741 functions provided by @file{subr.el}.")
8742 (license license:gpl3+)))
8743
8744 (define-public emacs-itail
8745 (let ((commit "6e43c20da03be3b9c6ece93b7dc3495975ec1888")
8746 (revision "1"))
8747 (package
8748 (name "emacs-itail")
8749 (version (string-append "0.0.1" "-" revision "."
8750 (string-take commit 7)))
8751 (source
8752 (origin
8753 (method git-fetch)
8754 (uri (git-reference
8755 (url "https://github.com/re5et/itail.git")
8756 (commit commit)))
8757 (file-name (string-append name "-" version "-checkout"))
8758 (sha256
8759 (base32
8760 "044nzxh1hq41faxw3lix0wy78vfz304pjcaa5a11dqfz7q3gx5cv"))))
8761 (build-system emacs-build-system)
8762 (home-page "https://github.com/re5et/itail")
8763 (synopsis "Interactive @code{tail} Emacs mode")
8764 (description "@code{itail} provides interactive @code{tail} mode
8765 that allows you to filter the tail with unix pipes and highlight the
8766 contents of the tailed file. Works locally or on remote files using
8767 tramp.")
8768 (license license:gpl3+))))
8769
8770 (define-public emacs-loop
8771 (package
8772 (name "emacs-loop")
8773 (version "1.3")
8774 (source
8775 (origin
8776 (method url-fetch)
8777 (uri (string-append "https://github.com/Wilfred/loop.el/archive/"
8778 version ".tar.gz"))
8779 (file-name (string-append name "-" version ".tar.gz"))
8780 (sha256
8781 (base32
8782 "1z3rhh3zyjabz36410yz0lp4a0qwwj0387as662wvx3z9y54jia9"))))
8783 (build-system emacs-build-system)
8784 (home-page "https://github.com/Wilfred/loop.el")
8785 (synopsis "Imperative loop structures for Emacs")
8786 (description "Loop structures familiar to users of other languages. This
8787 library adds a selection of popular loop structures as well as break and
8788 continue.")
8789 (license license:gpl3+)))
8790
8791 (define-public emacs-elisp-refs
8792 (package
8793 (name "emacs-elisp-refs")
8794 (version "1.2")
8795 (source
8796 (origin
8797 (method url-fetch)
8798 (uri (string-append "https://github.com/Wilfred/elisp-refs/archive/"
8799 version ".tar.gz"))
8800 (file-name (string-append name "-" version ".tar.gz"))
8801 (sha256
8802 (base32
8803 "0fj6wphwrvbslw46w7wgdk3b4bfr312ygj3lbgr9qw63lpqw26nl"))))
8804 (build-system emacs-build-system)
8805 (propagated-inputs
8806 `(("emacs-dash" ,emacs-dash)
8807 ("emacs-f" ,emacs-f)
8808 ("emacs-list-utils" ,emacs-list-utils)
8809 ("emacs-loop" ,emacs-loop)
8810 ("emacs-s" ,emacs-s)))
8811 (home-page "https://github.com/Wilfred/elisp-refs")
8812 (synopsis "Find callers of elisp functions or macros")
8813 (description "Find references to functions, macros or variables. Unlike a
8814 dumb text search, @code{elisp-refs} actually parses the code, so it's never
8815 confused by comments or @code{foo-bar} matching @code{foo}.")
8816 (license license:gpl3+)))
8817
8818 (define-public emacs-crux
8819 (let ((commit "4f5c8fefd5a6aa52e128c4a0401cc86410d6ac8f")
8820 (revision "1"))
8821 (package
8822 (name "emacs-crux")
8823 (version (string-append "0.3.0" "-" revision "."
8824 (string-take commit 7)))
8825 (source
8826 (origin
8827 (method git-fetch)
8828 (uri (git-reference
8829 (url "https://github.com/bbatsov/crux.git")
8830 (commit commit)))
8831 (file-name (string-append name "-" version "-checkout"))
8832 (sha256
8833 (base32
8834 "1fdxvv25cs01sg6fmvmzxpzvs50i6v8n2jya60lbavxqqhi0sbxd"))))
8835 (build-system emacs-build-system)
8836 (home-page "https://github.com/bbatsov/crux")
8837 (synopsis "Collection of useful functions for Emacs")
8838 (description
8839 "@code{crux} provides a collection of useful functions for Emacs.")
8840 (license license:gpl3+))))
8841
8842 (define-public emacs-edit-server
8843 (package
8844 (name "emacs-edit-server")
8845 (version "1.13")
8846 (source
8847 (origin
8848 (method url-fetch)
8849 (uri (string-append "https://github.com/stsquad/emacs_chrome/archive/"
8850 "v" version ".tar.gz"))
8851 (file-name (string-append name "-" version ".tar.gz"))
8852 (sha256
8853 (base32
8854 "1r92kqggslqasza718z4ka883mqfbnibdm43f0j9gaipk0msm2wf"))))
8855 (build-system emacs-build-system)
8856 (arguments
8857 `(#:phases
8858 (modify-phases %standard-phases
8859 (add-after 'unpack 'chdir-elisp
8860 ;; Elisp directory is not in root of the source.
8861 (lambda _
8862 (chdir "servers"))))))
8863 (home-page "https://github.com/stsquad/emacs_chrome")
8864 (synopsis "Server that responds to edit requests from Chromium")
8865 (description
8866 "This package provides an edit server to respond to requests from Emacs.")
8867 (license license:gpl3+)))
8868
8869 (define-public emacs-m-buffer-el
8870 (package
8871 (name "emacs-m-buffer-el")
8872 (version "0.15")
8873 (source
8874 (origin
8875 (method url-fetch)
8876 (uri (string-append "https://github.com/phillord/m-buffer-el"
8877 "/archive/" "v" version ".tar.gz"))
8878 (file-name (string-append name "-" version ".tar.gz"))
8879 (sha256
8880 (base32
8881 "17vdcc8q37q9db98jyww1c0ivinmwfcw4l04zccfacalra63a214"))))
8882 (arguments
8883 `(#:phases
8884 (modify-phases %standard-phases
8885 (add-before 'install 'check
8886 (lambda* (#:key inputs #:allow-other-keys)
8887 (zero? (system* "emacs" "--batch" "-L" "."
8888 "-l" "test/m-buffer-test.el"
8889 "-l" "test/m-buffer-at-test.el"
8890 "-f" "ert-run-tests-batch-and-exit")))))))
8891 (build-system emacs-build-system)
8892 (home-page "https://github.com/phillord/m-buffer-el")
8893 (synopsis "List oriented buffer operations for Emacs")
8894 (description "@code{m-buffer} provides a set of list-orientated functions
8895 for operating over the contents of Emacs buffers.")
8896 (license license:gpl3+)))
8897
8898 (define-public emacs-let-alist
8899 (package
8900 (name "emacs-let-alist")
8901 (version "1.0.5")
8902 (source
8903 (origin
8904 (method url-fetch)
8905 (uri (string-append
8906 "https://elpa.gnu.org/packages/let-alist-" version ".el"))
8907 (sha256
8908 (base32
8909 "0r7b9jni50la1m79kklml11syg8d2fmdlr83pv005sv1wh02jszw"))))
8910 (build-system emacs-build-system)
8911 (home-page "https://elpa.gnu.org/packages/let-alist.html")
8912 (synopsis "Easily let-bind values of an assoc-list by their names")
8913 (description "This package offers a single macro, @code{let-alist}. This
8914 macro takes a first argument (whose value must be an alist) and a body.")
8915 (license license:gpl3+)))
8916
8917 (define-public emacs-esup
8918 (let ((commit "a589005a9a888537deef94d6fe38a9b8790c97c7")
8919 (revision "1"))
8920 (package
8921 (name "emacs-esup")
8922 (version (string-append "0.6" "-" revision "."
8923 (string-take commit 7)))
8924 (source
8925 (origin
8926 (method git-fetch)
8927 (uri (git-reference
8928 (url "https://github.com/jschaf/esup.git")
8929 (commit commit)))
8930 (file-name (string-append name "-" version "-checkout"))
8931 (sha256
8932 (base32
8933 "04lxmd0h7mfjjl0qghrycgff0vcv950j1wqv0dbkr61jxp64n5fv"))))
8934 ;; TODO: Add tests
8935 (build-system emacs-build-system)
8936 (home-page "https://github.com/jschaf/esup")
8937 (synopsis "Emacs start up profiler")
8938 (description "Benchmark Emacs Startup time without ever leaving
8939 your Emacs.")
8940 (license license:gpl2+))))
8941
8942 (define-public emacs-sourcemap
8943 (package
8944 (name "emacs-sourcemap")
8945 (version "0.03")
8946 (source
8947 (origin
8948 (method url-fetch)
8949 (uri (string-append "https://github.com/syohex/emacs-sourcemap/archive/"
8950 version ".tar.gz"))
8951 (file-name (string-append name "-" version ".tar.gz"))
8952 (sha256
8953 (base32
8954 "0bmd5l3cx2iyl7vxn84xdhs80b07kpdpfwki28lh5d0kmm5qs6m6"))))
8955 (build-system emacs-build-system)
8956 (home-page "https://github.com/syohex/emacs-sourcemap")
8957 (synopsis "Sourcemap parser")
8958 (description "Sourcemap parser")
8959 (license license:gpl3+)))
8960
8961 (define-public emacs-macrostep
8962 (let ((commit "424e3734a1ee526a1bd7b5c3cd1d3ef19d184267"))
8963 (package
8964 (name "emacs-macrostep")
8965 (version (git-version "0.9" "1" commit))
8966 (source (origin
8967 (method git-fetch)
8968 (uri (git-reference
8969 (url "https://github.com/joddie/macrostep.git")
8970 (commit commit)))
8971 (file-name (string-append name "-" version "-checkout"))
8972 (sha256
8973 (base32
8974 "1fm40mxdn289cyzgw992223dgrjmwxn4q8svyyxfaxjrpb38jhjz"))))
8975 (build-system emacs-build-system)
8976 (arguments
8977 '(#:phases
8978 (modify-phases %standard-phases
8979 (add-before 'check 'remove-test
8980 ;; Fails because of requirement ‘/bin/sh’.
8981 (lambda _
8982 (let ((file "macrostep-test.el"))
8983 (chmod file #o644)
8984 (emacs-batch-edit-file file
8985 `(progn (progn (goto-char (point-min))
8986 (re-search-forward
8987 "(ert-deftest macrostep-expand-c-macros")
8988 (beginning-of-line)
8989 (kill-sexp))
8990 (basic-save-buffer))))))
8991 (add-before 'install 'check
8992 (lambda _
8993 (invoke "emacs" "--batch" "-L" "."
8994 "-l" "macrostep-test.el"
8995 "-f" "ert-run-tests-batch-and-exit"))))))
8996 (home-page "https://github.com/joddie/macrostep")
8997 (synopsis "Interactive macro-expander for Emacs")
8998 (description "@code{macrostep} is an Emacs minor mode for interactively
8999 stepping through the expansion of macros in Emacs Lisp source code. It lets
9000 you see exactly what happens at each step of the expansion process by
9001 pretty-printing the expanded forms inline in the source buffer, which is
9002 temporarily read-only while macro expansions are visible. You can expand and
9003 collapse macro forms one step at a time, and evaluate or instrument the
9004 expansions for debugging with Edebug as normal (but see “Bugs and known
9005 limitations”, below). Single-stepping through the expansion is particularly
9006 useful for debugging macros that expand into another macro form. These can be
9007 difficult to debug with Emacs’ built-in macroexpand, which continues expansion
9008 until the top-level form is no longer a macro call.")
9009 (license license:gpl3+))))
9010
9011 (define-public emacs-parent-mode
9012 (package
9013 (name "emacs-parent-mode")
9014 (version "2.3")
9015 (source
9016 (origin
9017 (method url-fetch)
9018 (uri (string-append "https://github.com/Fanael/parent-mode/archive/"
9019 version ".tar.gz"))
9020 (file-name (string-append name "-" version ".tar.gz"))
9021 (sha256
9022 (base32
9023 "0gxbl5s1w96v6v55b7aaansgw4sxhzfx9nrsvpk3pfhsibs6yqjd"))))
9024 (build-system emacs-build-system)
9025 (home-page "https://github.com/Fanael/parent-mode")
9026 (synopsis "Get major mode's parent modes")
9027 (description "Get major mode's parent modes")
9028 (license license:gpl3+)))
9029
9030 (define-public emacs-lacarte
9031 (package
9032 (name "emacs-lacarte")
9033 (version "0.1")
9034 (source (origin
9035 (method url-fetch)
9036 (uri "https://www.emacswiki.org/emacs/download/lacarte.el")
9037 (sha256
9038 (base32
9039 "1sbmk37ljq5j7dsw5c37sbxvlfgdqswh7bi4dknyjzfxlq50f4am"))))
9040 (build-system emacs-build-system)
9041 (home-page "https://www.emacswiki.org/emacs/lacarte.el")
9042 (synopsis "Execute menu items as commands, with completion")
9043 (description "Execute menu items as commands, with completion.")
9044 (license license:gpl3)))
9045
9046 (define-public emacs-company-lua
9047 (let ((commit "0be8122f3adf57ad27953bf4b03545d6298d3da4"))
9048 (package
9049 (name "emacs-company-lua")
9050 (version (git-version "0.1" "1" commit))
9051 (source
9052 (origin
9053 (method git-fetch)
9054 (uri (git-reference
9055 (url "https://github.com/ptrv/company-lua.git")
9056 (commit commit)))
9057 (file-name (git-file-name name version))
9058 (sha256
9059 (base32
9060 "1d9i165apgmwns7b2fd5wcpjpkah3dyj20v5sb8ynvz6qhhr5r9c"))))
9061 (build-system emacs-build-system)
9062 (propagated-inputs
9063 `(("emacs-company" ,emacs-company)
9064 ("emacs-s" ,emacs-s)
9065 ("emacs-f" ,emacs-f)
9066 ("emacs-lua-mode" ,emacs-lua-mode)))
9067 (home-page "https://github.com/ptrv/company-lua")
9068 (synopsis "Company backend for Lua")
9069 (description
9070 "This package provides Company backend for Lua programming language.")
9071 (license license:gpl3+))))
9072
9073 (define-public emacs-beginend
9074 (package
9075 (name "emacs-beginend")
9076 (version "2.0.0")
9077 (source
9078 (origin
9079 (method url-fetch)
9080 (uri (string-append "https://github.com/DamienCassou/beginend/archive/"
9081 "v" version ".tar.gz"))
9082 (file-name (string-append name "-" version ".tar.gz"))
9083 (sha256
9084 (base32
9085 "0z4rbwffh9vxfvcrlvym4p73z7gf72q0b5iv33llbpcpbijknnrq"))))
9086 ;; TODO: Run tests.
9087 (build-system emacs-build-system)
9088 (inputs
9089 `(("emacs-undercover" ,emacs-undercover))) ; For tests.
9090 (home-page "https://github.com/DamienCassou/beginend")
9091 (synopsis "Redefine @code{M-<} and @code{M->} for Emacs modes")
9092 (description "@code{beginend} redefines @code{M-<} and @code{M->}
9093 keybindings for Emacs modes so that point moves to meaningful
9094 locations. Redefined keys are still accessible by pressing the same
9095 key again.")
9096 (license license:gpl3+)))
9097
9098 (define-public emacs-mbsync
9099 (let ((commit "42077e83ae2db778ce0f8e22f8357b40355526b3")
9100 (revision "1"))
9101 (package
9102 (name "emacs-mbsync")
9103 (version (string-append "0.0.1" "-" revision "."
9104 (string-take commit 7)))
9105 (source
9106 (origin
9107 (method git-fetch)
9108 (uri (git-reference
9109 (url "https://github.com/dimitri/mbsync-el.git")
9110 (commit commit)))
9111 (file-name (string-append name "-" version "-checkout"))
9112 (sha256
9113 (base32
9114 "0yj93y2mpxlir8x73znlg1slxlv4blm1vjv5h2w3j8lxg8bxvmn6"))))
9115 (build-system emacs-build-system)
9116 (home-page "https://github.com/dimitri/mbsync-el")
9117 (synopsis "Interface to mbsync for Emacs")
9118 (description "This package allows to call the @code{mbsync} from
9119 within Emacs.")
9120 (license license:gpl3+))))
9121
9122 (define-public emacs-ibuffer-projectile
9123 (let ((commit "c18ac540ee46cb759fc5df18747f6e8d23563011")
9124 (revision "1"))
9125 (package
9126 (name "emacs-ibuffer-projectile")
9127 (version (string-append "0.2" "-" revision "."
9128 (string-take commit 7)))
9129 (source
9130 (origin
9131 (method git-fetch)
9132 (uri (git-reference
9133 (url "https://github.com/purcell/ibuffer-projectile.git")
9134 (commit commit)))
9135 (file-name (string-append name "-" version "-checkout"))
9136 (sha256
9137 (base32
9138 "1nd26cwwdpnwj0g4w393rd59klpyr6wqrnyr6scmwb5d06bsm44n"))))
9139 (build-system emacs-build-system)
9140 (propagated-inputs
9141 `(("emacs-projectile" ,emacs-projectile)))
9142 (home-page "https://github.com/purcell/ibuffer-projectile")
9143 (synopsis "Group ibuffer's list by projectile root")
9144 (description "Adds functionality to Emacs @code{ibuffer} for
9145 grouping buffers by their projectile root directory.")
9146 (license license:gpl3+))))
9147
9148 (define-public emacs-helm-mode-manager
9149 (package
9150 (name "emacs-helm-mode-manager")
9151 (version "1.0.0")
9152 (source
9153 (origin
9154 (method url-fetch)
9155 (uri (string-append "https://github.com/istib/helm-mode-manager/"
9156 "archive/" version ".tar.gz"))
9157 (file-name (string-append name "-" version ".tar.gz"))
9158 (sha256
9159 (base32
9160 "0wllj321z16hgrx0ddwzk5wz4mnnx5am7w5nclqclfc5dfdn92wm"))))
9161 (build-system emacs-build-system)
9162 (propagated-inputs
9163 `(("emacs-helm" ,emacs-helm)))
9164 (home-page "https://github.com/istib/helm-mode-manager/")
9165 (synopsis "Switch and toggle Emacs major and minor modes using Helm")
9166 (description "This package provides a Helm interface for toggling Emacs
9167 major or minor mode.
9168
9169 @itemize
9170 @item @code{helm-switch-major-mode} list of all major modes
9171 @item @code{helm-enable-minor-mode} list of all inactive minor modes
9172 @item @code{helm-disable-minor-mode} list of all ACTIVE minor modes
9173 @end itemize\n
9174
9175 Hitting @code{RET} enables the mode, @code{C-z} shows the mode
9176 documentation.")
9177 (license license:gpl3+)))
9178
9179 (define-public emacs-hy-mode
9180 (package
9181 (name "emacs-hy-mode")
9182 (version "1.0.2")
9183 (source
9184 (origin
9185 (method url-fetch)
9186 (uri (string-append "https://github.com/hylang/hy-mode/archive/"
9187 "v" version ".tar.gz"))
9188 (file-name (string-append name "-" version ".tar.gz"))
9189 (sha256
9190 (base32
9191 "0sbga36zkyhzrzcczsyjzll7b9qsa215pnlw51m4li2irm23jh17"))))
9192 (build-system emacs-build-system)
9193 (propagated-inputs
9194 `(("emacs-dash" ,emacs-dash)
9195 ("emacs-s" ,emacs-s)))
9196 (home-page "https://github.com/hylang/hy-mode")
9197 (synopsis "Major mode for Hylang")
9198 (description "This package provides a major mode for Hylang.")
9199 (license license:gpl3+)))
9200
9201 (define-public emacs-web-beautify
9202 (package
9203 (name "emacs-web-beautify")
9204 (version "0.3.2")
9205 (source
9206 (origin
9207 (method url-fetch)
9208 (uri (string-append "https://github.com/yasuyk/web-beautify/archive/"
9209 version ".tar.gz"))
9210 (file-name (string-append name "-" version ".tar.gz"))
9211 (sha256
9212 (base32
9213 "1j57hwid74id4swkx2g0iljfawx0k9c7qjrwqc0mv657x9p78hcs"))))
9214 (build-system emacs-build-system)
9215 (home-page "https://github.com/yasuyk/web-beautify")
9216 (synopsis "Format HTML, CSS and JavaScript, JSON")
9217 (description "This package provides an Emacs functions to format HTML,
9218 CSS, JavaScript, JSON.")
9219 (license license:gpl3+)))
9220
9221 (define-public emacs-helm-shell-history
9222 (let ((commit "110d3c35c52fe4b89b29e79ea4c8626bce7266a1"))
9223 (package
9224 (name "emacs-helm-shell-history")
9225 (version (git-version "0.1" "1" commit))
9226 (source
9227 (origin
9228 (method git-fetch)
9229 (uri (git-reference
9230 (url "https://github.com/yuutayamada/helm-shell-history.git")
9231 (commit commit)))
9232 (file-name (git-file-name name version))
9233 (sha256
9234 (base32
9235 "18fkjcz69g4dyaxhf9j8svr5x6dhsdnglddwisis8hdn504scpfj"))))
9236 (build-system emacs-build-system)
9237 (arguments
9238 '(#:phases
9239 (modify-phases %standard-phases
9240 (add-before 'check 'patch-helm-shell-history-file
9241 (lambda _
9242 (let ((file "helm-shell-history.el"))
9243 (chmod file #o644)
9244 (emacs-substitute-sexps file
9245 ("(defvar helm-shell-history-file"
9246 `(expand-file-name "~/.bash_history"))))
9247 #t)))))
9248 (propagated-inputs
9249 `(("emacs-helm" ,emacs-helm)))
9250 (home-page "https://github.com/yuutayamada/helm-shell-history")
9251 (synopsis "Find shell history with Emacs Helm")
9252 (description "This package provides an Emacs Helm interface to search
9253 throw a shell history.")
9254 (license license:gpl3+))))
9255
9256 (define-public emacs-discover-my-major
9257 (package
9258 (name "emacs-discover-my-major")
9259 (version "1.0")
9260 (source
9261 (origin
9262 (method url-fetch)
9263 (uri
9264 (string-append "https://github.com/steckerhalter/discover-my-major"
9265 "/archive/" version ".tar.gz"))
9266 (file-name (string-append name "-" version ".tar.gz"))
9267 (sha256
9268 (base32
9269 "0nah41f92rrl2l405kpqr6iaks11jyclgl4z7ilfymbr4ifmsiyl"))))
9270 (build-system emacs-build-system)
9271 (propagated-inputs
9272 `(("emacs-makey" ,emacs-makey)))
9273 (home-page "https://github.com/steckerhalter/discover-my-major")
9274 (synopsis "Discover key bindings for the current Emacs major mode")
9275 (description "This package provides allows to discover key bindings and
9276 their meaning for the current Emacs major-mode.")
9277 (license license:gpl3+)))
9278
9279 (define-public emacs-org-ref
9280 (let ((commit "8c9b5d7efb9f0c1ad5186b8203bdd017f4249129")
9281 (revision "1"))
9282 (package
9283 (name "emacs-org-ref")
9284 (version (string-append "1.1.1" "-" revision "."
9285 (string-take commit 7)))
9286 (source
9287 (origin
9288 (method git-fetch)
9289 (uri (git-reference
9290 (url "https://github.com/jkitchin/org-ref.git")
9291 (commit commit)))
9292 (file-name (string-append name "-" version "-checkout"))
9293 (sha256
9294 (base32
9295 "1rxz0bjdsayk0slv23i07d9xhj2m7s4hsc81wc2d1cs52dkr5zmz"))))
9296 (build-system emacs-build-system)
9297 (propagated-inputs
9298 `(("emacs-dash" ,emacs-dash)
9299 ("emacs-helm" ,emacs-helm)
9300 ("emacs-helm-bibtex" ,emacs-helm-bibtex)
9301 ("emacs-ivy" ,emacs-ivy)
9302 ("emacs-hydra" ,emacs-hydra)
9303 ("emacs-key-chord" ,emacs-key-chord)
9304 ("emacs-s" ,emacs-s)
9305 ("emacs-f" ,emacs-f)
9306 ("emacs-pdf-tools" ,emacs-pdf-tools)))
9307 (home-page "https://github.com/jkitchin/org-ref")
9308 (synopsis "Citations, cross-references and bibliographies in org-mode")
9309 (description
9310 "Lisp code to setup bibliography, cite, ref and label org-mode links.
9311 Also sets up reftex and helm for org-mode citations. The links are
9312 clickable and do things that are useful.
9313
9314 The default setup uses helm-bibtex.
9315
9316 You should really read org-ref.org in this package for details.")
9317 (license license:gpl3+))))
9318
9319 (define-public emacs-add-hooks
9320 (package
9321 (name "emacs-add-hooks")
9322 (version "3.1.1")
9323 (source (origin
9324 (method url-fetch)
9325 (uri (string-append
9326 "https://github.com/nickmccurdy/add-hooks/archive/"
9327 version ".tar.gz"))
9328 (file-name (string-append name "-" version ".tar.gz"))
9329 (sha256
9330 (base32
9331 "03a28gb3298g7pc2qji9hi44p4d99ljp5mpi9cmg42ldv8fl6549"))))
9332 (build-system emacs-build-system)
9333 (home-page "https://github.com/nickmccurdy/add-hooks/")
9334 (synopsis "Emacs function for setting multiple hooks")
9335 (description "This package provides a @code{add-hooks} function tidies up
9336 duplicate hook and function names further into a single declarative call.")
9337 (license license:gpl3+)))
9338
9339 (define-public emacs-fancy-narrow
9340 (package
9341 (name "emacs-fancy-narrow")
9342 (version "0.9.5")
9343 (source
9344 (origin
9345 (method url-fetch)
9346 (uri (string-append "https://github.com/Malabarba/fancy-narrow/archive/"
9347 version ".tar.gz"))
9348 (file-name (string-append name "-" version ".tar.gz"))
9349 (sha256
9350 (base32
9351 "0rf2rnzg82pdqch041yyx3f9ddixffkk9s2ydzg8hwy66sg3385n"))))
9352 (build-system emacs-build-system)
9353 (home-page "https://github.com/Malabarba/fancy-narrow/releases")
9354 (synopsis "Immitate narrow-to-region with more eye-candy")
9355 (description "Unlike narrow-to-region, which completely hides text outside
9356 the narrowed region, this package simply deemphasizes the text, makes it
9357 readonly, and makes it unreachable. This leads to a much more natural
9358 feeling, where the region stays static (instead of being brutally moved to a
9359 blank slate) and is clearly highlighted with respect to the rest of the
9360 buffer.")
9361 (license license:gpl2+)))
9362
9363 (define-public emacs-know-your-http-well
9364 (package
9365 (name "emacs-know-your-http-well")
9366 (version "0.5.0")
9367 (source
9368 (origin
9369 (method url-fetch)
9370 (uri (string-append
9371 "https://github.com/for-GET/know-your-http-well/archive/"
9372 "v" version ".tar.gz"))
9373 (file-name (string-append name "-" version ".tar.gz"))
9374 (sha256
9375 (base32
9376 "1y3kwz88awcgwaivlswq0q4g2i02762r23lpwg61bfqy5lrjjqnj"))))
9377 (arguments
9378 `(#:phases
9379 (modify-phases %standard-phases
9380 (add-after 'unpack 'install-json-files
9381 (lambda* (#:key outputs #:allow-other-keys)
9382 (for-each (lambda (directory)
9383 (copy-recursively directory
9384 (string-append
9385 (assoc-ref outputs "out")
9386 directory)))
9387 '("js" "json"))))
9388 (add-after 'unpack 'chdir-elisp
9389 ;; Elisp directory is not in root of the source.
9390 (lambda _
9391 (chdir "emacs"))))))
9392 (build-system emacs-build-system)
9393 (home-page "https://github.com/for-GET/know-your-http-well")
9394 (synopsis "Meaning of HTTP headers codes")
9395 (description "Meaning of HTTP headers codes.")
9396 (license license:gpl3+)))
9397
9398 (define-public emacs-navi-mode
9399 (let ((commit "c1d38e8237f4e14af020a0b7d4f118ea198ab674"))
9400 (package
9401 (name "emacs-navi-mode")
9402 (version (git-version "2.0" "1" commit))
9403 (source
9404 (origin
9405 (method git-fetch)
9406 (uri (git-reference
9407 (url "https://github.com/alphapapa/navi.git")
9408 (commit commit)))
9409 (file-name (git-file-name name version))
9410 (sha256
9411 (base32
9412 "0jj5spk14hgb7zb1cd2n8whcw4k1kd5zb6llwj96v178yaws7l8k"))))
9413 (build-system emacs-build-system)
9414 (propagated-inputs
9415 `(("emacs-outshine" ,emacs-outshine)
9416 ("emacs-outorg" ,emacs-outorg)))
9417 (home-page "https://github.com/alphapapa/navi")
9418 (synopsis "Emacs major-mode for easy buffer-navigation")
9419 (description
9420 "This package provides an Emacs major-mode for easy buffer-navigation")
9421 (license license:gpl3+))))
9422
9423 (define-public emacs-download-region
9424 (let ((commit "eb9e557529a73b4cfc8281c70dd0d95db333fffa")
9425 (revision "1"))
9426 (package
9427 (name "emacs-download-region")
9428 (version (string-append "0.0.1" "-" revision "."
9429 (string-take commit 7)))
9430 (source
9431 (origin
9432 (method git-fetch)
9433 (uri (git-reference
9434 (url "https://github.com/zk-phi/download-region.git")
9435 (commit commit)))
9436 (file-name (string-append name "-" version "-checkout"))
9437 (sha256
9438 (base32
9439 "0v52djg39b6k2snizd9x0qc009ws5y0ywqsfwhqgcbs5ymzh7dsc"))))
9440 (build-system emacs-build-system)
9441 (home-page "https://github.com/zk-phi/download-region")
9442 (synopsis "In buffer download manager for Emacs")
9443 (description "@code{download-region} provides in buffer
9444 downloading manager for Emacs.")
9445 (license license:gpl3+))))
9446
9447 (define-public emacs-csv-mode
9448 (package
9449 (name "emacs-csv-mode")
9450 (version "1.7")
9451 (source
9452 (origin
9453 (method url-fetch)
9454 (uri (string-append "http://elpa.gnu.org/packages/csv-mode-"
9455 version ".el"))
9456 (sha256
9457 (base32
9458 "0r4bip0w3h55i8h6sxh06czf294mrhavybz0zypzrjw91m1bi7z6"))))
9459 (build-system emacs-build-system)
9460 (home-page "http://elpa.gnu.org/packages/csv-mode.html")
9461 (synopsis "Major mode for editing comma or char separated values")
9462 (description
9463 "This package provides an Emacs CSV mode, a major mode for editing
9464 records in a generalized CSV (character-separated values) format.")
9465 (license license:gpl3+)))
9466
9467 (define-public emacs-helpful
9468 (package
9469 (name "emacs-helpful")
9470 (version "0.1")
9471 (source (origin
9472 (method url-fetch)
9473 (uri (string-append
9474 "https://github.com/Wilfred/helpful/archive/"
9475 version ".tar.gz"))
9476 (file-name (string-append name "-" version ".tar.gz"))
9477 (sha256
9478 (base32
9479 "16dx566qzrjj0bf43lnw7h1qlvgs94brqplamw8kppp2ylr72qs9"))))
9480 (build-system emacs-build-system)
9481 (propagated-inputs
9482 `(("emacs-elisp-refs" ,emacs-elisp-refs)))
9483 (home-page "https://github.com/Wilfred/helpful")
9484 (synopsis "More contextual information in Emacs help")
9485 (description "@code{helpful} is an alternative to the built-in Emacs help
9486 that provides much more contextual information.
9487
9488 @itemize
9489 @item Show the source code for interactively defined functions (unlike the
9490 built-in Help).
9491 @item Fall back to the raw sexp if no source is available.
9492 @item Show where a function is being called.
9493 @item Docstrings will Highlight the summary (the first sentence), include
9494 cross-references, hide superfluous puncuation.
9495 @item Show you the properties that have been applied to the current
9496 symbol. This provides visibility of features like edebug or byte-code
9497 optimisation.
9498 @item Provide a separate @code{helpful-command} function to view interactive
9499 functions.
9500 @item Display any keybindings that apply to interactive functions.
9501 @item Trace, disassemble functions from inside Helpful. This is discoverable
9502 and doesn't require memorisation of commands.
9503 @end itemize\n")
9504 (license license:gpl3+)))
9505
9506 (define-public emacs-logview
9507 (package
9508 (name "emacs-logview")
9509 (version "0.9")
9510 (source (origin
9511 (method url-fetch)
9512 (uri (string-append
9513 "https://github.com/doublep/logview/archive/"
9514 version ".tar.gz"))
9515 (file-name (string-append name "-" version ".tar.gz"))
9516 (sha256
9517 (base32
9518 "1vd11ppm46ldqsiwhqgw91p34gbjh1y82r9mxcn9r2gj65nvhxcp"))))
9519 (propagated-inputs
9520 `(("emacs-datetime" ,emacs-datetime)))
9521 (build-system emacs-build-system)
9522 (home-page "https://github.com/doublep/logview/")
9523 (synopsis "Emacs mode for viewing log files")
9524 (description "@code{logview} provides an Emacs mode to view log files.")
9525 (license license:gpl3+)))
9526
9527 (define-public emacs-suggest
9528 (package
9529 (name "emacs-suggest")
9530 (version "0.4")
9531 (source
9532 (origin
9533 (method url-fetch)
9534 (uri (string-append "https://github.com/Wilfred/suggest.el/archive/"
9535 version ".tar.gz"))
9536 (file-name (string-append name "-" version ".tar.gz"))
9537 (sha256
9538 (base32
9539 "1760fm3j19w8xxcawq6s859h86q1rdg69pg9yz48n76kwfk3vlgp"))))
9540 (build-system emacs-build-system)
9541 (propagated-inputs
9542 `(("emacs-loop" ,emacs-loop)
9543 ("emacs-dash" ,emacs-dash)
9544 ("emacs-s" ,emacs-s)
9545 ("emacs-f" ,emacs-f)))
9546 (home-page "https://github.com/Wilfred/suggest.el")
9547 (synopsis "Suggest Elisp functions that give the output requested")
9548 (description "Suggest.el will find functions that give the output
9549 requested. It's a great way of exploring list, string and arithmetic
9550 functions.")
9551 (license license:gpl3+)))
9552
9553 (define-public emacs-benchmark-init
9554 (package
9555 (name "emacs-benchmark-init")
9556 (version "1.0")
9557 (source (origin
9558 (method url-fetch)
9559 (uri (string-append
9560 "https://github.com/dholm/benchmark-init-el/archive/"
9561 version ".tar.gz"))
9562 (file-name (string-append name "-" version ".tar.gz"))
9563 (sha256
9564 (base32
9565 "0szyqr4nncwz4vd5gww1vz31kf9r2lx25p4d0d09pm35974x53kz"))))
9566 (build-system emacs-build-system)
9567 (home-page "https://github.com/dholm/benchmark-init-el")
9568 (synopsis "Benchmark Emacs @code{require} and @code{load} calls")
9569 (description "@code{benchmark-init} provides a way to keep track of where
9570 time is being spent during Emacs startup in order to optimize startup time.")
9571 (license license:gpl3+)))
9572
9573 (define-public emacs-emms-player-simple-mpv
9574 (let ((commit "101d120ccdee1c2c213fd2f0423c858b21649c00")
9575 (revision "1"))
9576 (package
9577 (name "emacs-emms-player-simple-mpv")
9578 (version (string-append "0.4.0" "-" revision "."
9579 (string-take commit 7)))
9580
9581 (source
9582 (origin
9583 (method git-fetch)
9584 (uri (git-reference
9585 (url "https://github.com/momomo5717/emms-player-simple-mpv.git")
9586 (commit commit)))
9587 (file-name (git-file-name name version))
9588 (sha256
9589 (base32
9590 "1i6rxkm0ra0jbkkwgkwxg3vk5xfl794h1gkgnlpscynz0v94b6ll"))))
9591 (build-system emacs-build-system)
9592 (propagated-inputs
9593 `(("emacs-emms" ,emms)))
9594 (home-page "https://github.com/momomo5717/emms-player-simple-mpv")
9595 (synopsis "Extension of @file{emms-player-simple.el} for mpv JSON IPC")
9596 (description "@code{emms-player-simple-mpv} provides macros and
9597 functions for defining emms simple players of mpv.")
9598 (license license:gpl3+))))
9599
9600 (define-public emacs-magit-org-todos-el
9601 (let ((commit "df206287737b9671f2e36ae7b1474ebbe9940d2a"))
9602 (package
9603 (name "emacs-magit-org-todos-el")
9604 (version (git-version "0.1.1" "1" commit))
9605 (source
9606 (origin
9607 (method git-fetch)
9608 (uri (git-reference
9609 (url "https://github.com/danielma/magit-org-todos.el.git")
9610 (commit commit)))
9611 (file-name (git-file-name name version))
9612 (sha256
9613 (base32
9614 "0kdp7k7jnnrkhsg0xh1c3h7iz0vgi120gf5xwl1hxy61avivnxrn"))))
9615 (propagated-inputs
9616 `(("magit" ,magit)))
9617 (build-system emacs-build-system)
9618 (home-page "https://github.com/danielma/magit-org-todos.el")
9619 (synopsis "Get todo.org into Emacs Magit status")
9620 (description "This package allows you to get @file{todo.org} into your
9621 magit status.
9622
9623 If you have a @file{todo.org} file with @code{TODO} items in the root of your
9624 repository, @code{magit-org-todos} will create a section in your Magit status
9625 buffer with each of your todos.")
9626 (license license:gpl3+))))
9627
9628 (define-public emacs-f3
9629 (package
9630 (name "emacs-f3")
9631 (version "0.1")
9632 (source
9633 (origin
9634 (method url-fetch)
9635 (uri (string-append "https://github.com/cosmicexplorer/f3/archive/"
9636 version ".tar.gz"))
9637 (file-name (string-append name "-" version ".tar.gz"))
9638 (sha256
9639 (base32
9640 "06b8i1jvklm5k3k90n65f197l1miq1xlxqkqpbppw4h3rhl4y98h"))))
9641 (build-system emacs-build-system)
9642 (propagated-inputs
9643 `(("emacs-helm" ,emacs-helm)))
9644 (home-page "https://github.com/cosmicexplorer/f3")
9645 (synopsis "Fantastic File Finder for Emacs")
9646 (description
9647 "The Fantastic File Finder for Emacs. Find files fast, using helm.")
9648 (license license:gpl3+)))
9649
9650 (define-public emacs-lice-el
9651 (let ((commit "4339929927c62bd636f89bb39ea999d18d269250"))
9652 (package
9653 (name "emacs-lice-el")
9654 (version (git-version "0.2" "1" commit))
9655 (source (origin
9656 (method git-fetch)
9657 (uri (git-reference
9658 (url "https://github.com/buzztaiki/lice-el.git")
9659 (commit commit)))
9660 (file-name (git-file-name name version))
9661 (sha256
9662 (base32
9663 "0879z761b7gajkhq176ps745xpdrivch349crransv8fnsc759yb"))))
9664 (build-system emacs-build-system)
9665 (home-page "https://github.com/buzztaiki/lice-el")
9666 (synopsis "License and header template for Emacs")
9667 (description "@code{lice.el} provides following features:
9668
9669 @itemize
9670 @item License template management.
9671 @item File header insertion.
9672 @end itemize\n")
9673 (license license:gpl3+))))
9674
9675 (define-public emacs-academic-phrases
9676 (let ((commit "0823ed8c24b26c32f909b896a469833ec4d7b656"))
9677 (package
9678 (name "emacs-academic-phrases")
9679 (version (git-version "0.1" "1" commit))
9680 (source
9681 (origin
9682 (method git-fetch)
9683 (uri (git-reference
9684 (url "https://github.com/nashamri/academic-phrases.git")
9685 (commit commit)))
9686 (file-name (string-append name "-" version "-checkout"))
9687 (sha256
9688 (base32
9689 "0qfzsq8jh05w4zkr0cvq3i1hdn97bq344vcqjg46sib26x3wpz6r"))))
9690 (build-system emacs-build-system)
9691 (propagated-inputs
9692 `(("emacs-dash" ,emacs-dash)
9693 ("emacs-s" ,emacs-s)
9694 ("emacs-ht" ,emacs-ht)))
9695 (home-page "https://github.com/nashamri/academic-phrases")
9696 (synopsis "Bypass that mental block when writing your papers")
9697 (description
9698 "When writing your academic paper, you might get stuck trying to find
9699 the right phrase that captures your intention. This package tries to
9700 alleviate that problem by presenting you with a list of phrases organized by
9701 the topic or by the paper section that you are writing. This package has
9702 around 600 phrases so far.
9703
9704 Using this package is easy, just call @code{academic-phrases} to get a list of
9705 phrases organized by topic, or call @code{academic-phrases-by-section} to
9706 browse the phrases by the paper section and fill-in the blanks if required.")
9707 (license license:gpl3+))))
9708
9709 (define-public emacs-auto-yasnippet
9710 (let ((commit "d1ccfea87312c6dd8cf8501ab5b71b1d3d44d95b"))
9711 (package
9712 (name "emacs-auto-yasnippet")
9713 (version (git-version "0.3.0" "1" commit))
9714 (source (origin
9715 (method git-fetch)
9716 (uri (git-reference
9717 (url "https://github.com/abo-abo/auto-yasnippet.git")
9718 (commit commit)))
9719 (file-name (string-append name "-" version "-checkout"))
9720 (sha256
9721 (base32
9722 "1i8k2qiyzd5rq0zplk4xb5nfa5mp0ibxbzwqj6c7877waq7244xk"))))
9723 (build-system emacs-build-system)
9724 (arguments
9725 '(#:phases
9726 (modify-phases %standard-phases
9727 (add-before 'install 'check
9728 (lambda _
9729 (invoke "emacs" "--batch"
9730 "-l" "auto-yasnippet.el"
9731 "-l" "auto-yasnippet-test.el"
9732 "-f" "ert-run-tests-batch-and-exit"))))))
9733 (propagated-inputs
9734 `(("emacs-yasnippet" ,emacs-yasnippet)))
9735 (home-page "https://github.com/abo-abo/auto-yasnippet/")
9736 (synopsis "Quickly create disposable yasnippets")
9737 (description "This package provides a hybrid of keyboard macros and
9738 yasnippet. You create the snippet on the go, usually to be used just in the
9739 one place. It's fast, because you're not leaving the current buffer, and all
9740 you do is enter the code you'd enter anyway, just placing ~ where you'd like
9741 yasnippet fields and mirrors to be.")
9742 (license license:gpl3+))))
9743
9744 (define-public emacs-highlight-numbers
9745 (package
9746 (name "emacs-highlight-numbers")
9747 (version "0.2.3")
9748 (source
9749 (origin
9750 (method url-fetch)
9751 (uri (string-append
9752 "https://github.com/Fanael/highlight-numbers/archive/"
9753 version ".tar.gz"))
9754 (file-name (string-append name "-" version ".tar.gz"))
9755 (sha256
9756 (base32
9757 "030v5p11d4n0581ncv499l1fqrmfziy756q6378x2bv22ixghqqp"))))
9758 (build-system emacs-build-system)
9759 (propagated-inputs
9760 `(("emacs-parent-mode" ,emacs-parent-mode)))
9761 (home-page "https://github.com/Fanael/highlight-numbers")
9762 (synopsis "Highlight numbers in source code")
9763 (description "@code{highlight-numbers-mode} provides a minor mode for
9764 syntax highlighting of numeric literals in source code.
9765
9766 It s customizable: it's easy to add or redefine what exactly consitutes a
9767 \"number\" in given major mode. See @code{highlight-numbers-modelist}.")
9768 (license license:gpl3+)))
9769
9770 (define-public emacs-darkroom
9771 (package
9772 (name "emacs-darkroom")
9773 (version "0.1")
9774 (source (origin
9775 (method url-fetch)
9776 (uri (string-append "https://elpa.gnu.org/packages/darkroom-"
9777 version ".el"))
9778 (sha256
9779 (base32
9780 "0fif8fm1h7x7g16949shfnaik5f5488clsvkf8bi5izpqp3vi6ak"))))
9781 (build-system emacs-build-system)
9782 (home-page "https://elpa.gnu.org/packages/darkroom.html")
9783 (synopsis "Remove visual distractions and focus on writing")
9784 (description "@code{darkroom-mode} makes visual distractions disappear.
9785 The mode-line is temporarily elided, text is enlarged and margins are adjusted
9786 so that it's centered on the window.
9787
9788 @code{darkroom-tentative-mode} is similar, but it doesn't immediately turn-on
9789 @code{darkroom-mode}, unless the current buffer lives in the sole window of
9790 the Emacs frame (i.e. all other windows are deleted). Whenever the frame is
9791 split to display more windows and more buffers, the buffer exits
9792 @code{darkroom-mode}. Whenever they are deleted, the buffer re-enters
9793 @code{darkroom-mode}.")
9794 (license license:gpl3+)))
9795
9796 (define-public emacs-rsw-elisp
9797 (package
9798 (name "emacs-rsw-elisp")
9799 (version "1.0.5")
9800 (source (origin
9801 (method url-fetch)
9802 (uri (string-append "https://github.com/rswgnu/rsw-elisp"
9803 "/archive/" version ".tar.gz"))
9804 (file-name (string-append name "-" version ".tar.gz"))
9805 (sha256
9806 (base32
9807 "1jnn7xfwl3wxc87v44ccsf1wwp80par3xgcvfb1icd6zchjmlcps"))))
9808 (build-system emacs-build-system)
9809 (home-page "https://github.com/rswgnu/rsw-elisp")
9810 (synopsis "Improved expressions that interactively evaluate Emacs Lisp")
9811 (description "This package improves and replaces the GNU Emacs commands
9812 that interactively evaluate Emacs Lisp expressions. The new commands replace
9813 standard key bindings and are all prefixed with @code{rsw-elisp-}. They work
9814 the same way as the old commands when called non-interactively; only the
9815 interactive behavior should be different.")
9816 (license license:gpl3+)))
9817
9818 (define-public emacs-default-text-scale
9819 (let ((commit "968e985e219235f3e744d6d967e592acbaf6e0a8")
9820 (revision "1"))
9821 (package
9822 (name "emacs-default-text-scale")
9823 (version (string-append "0.1" "-" revision "."
9824 (string-take commit 7)))
9825 (source (origin
9826 (method git-fetch)
9827 (uri (git-reference
9828 (url "https://github.com/purcell/default-text-scale")
9829 (commit commit)))
9830 (file-name (string-append name "-" version "-checkout"))
9831 (sha256
9832 (base32
9833 "0zds01c3q5yny6ab1fxfkzzgn1kgl3q23lxxap905f4qd70v922h"))))
9834 (build-system emacs-build-system)
9835 (home-page "https://github.com/purcell/default-text-scale")
9836 (synopsis "Adjust the font size in all Emacs frames")
9837 (description "This package provides commands for increasing or
9838 decreasing the default font size in all GUI Emacs frames.")
9839 (license license:gpl3+))))
9840
9841 (define-public emacs-visual-regexp
9842 (package
9843 (name "emacs-visual-regexp")
9844 (version "1.1.1")
9845 (source
9846 (origin
9847 (method url-fetch)
9848 (uri (string-append "https://github.com/benma/visual-regexp.el/archive/"
9849 "v" version ".tar.gz"))
9850 (file-name (string-append name "-" version ".tar.gz"))
9851 (sha256
9852 (base32
9853 "1czmhvcivlcdyz7rfm0vd4a3xsgmy4qbvbl6yjxc217wrxqflr92"))))
9854 (build-system emacs-build-system)
9855 (home-page "https://github.com/benma/visual-regexp.el/")
9856 (synopsis "Regexp command with interactive visual feedback")
9857 (description "This package provides an Emacs regexp command with
9858 interactive visual feedback.")
9859 (license license:gpl3+)))
9860
9861 (define-public emacs-faceup
9862 (let ((commit "6c92dad56a133e14e7b27831e1bcf9b3a71ff154")
9863 (revision "1"))
9864 (package
9865 (name "emacs-faceup")
9866 (version (string-append "0.0.1" "-" revision "."
9867 (string-take commit 7)))
9868 (source
9869 (origin
9870 (method git-fetch)
9871 (uri (git-reference
9872 (url "https://github.com/Lindydancer/faceup.git")
9873 (commit commit)))
9874 (file-name (string-append name "-" version "-checkout"))
9875 (sha256
9876 (base32
9877 "1yzmy7flrhrh0i10bdszx8idx6r8h6czm4vm4q0z6fp5fw94zwrx"))))
9878 (build-system emacs-build-system)
9879 (home-page "https://github.com/Lindydancer/faceup")
9880 (synopsis "Markup language for faces and font-lock regression testing")
9881 (description "Emacs is capable of highlighting buffers based on
9882 language-specific @code{font-lock} rules. This package makes it possible to
9883 perform regression test for packages that provide font-lock rules.")
9884 (license license:gpl3+))))
9885
9886 (define-public emacs-racket-mode
9887 (let ((commit "33877b1bb24faea68842e0396bd5718b84e47451")
9888 (revision "1"))
9889 (package
9890 (name "emacs-racket-mode")
9891 (version (string-append "0.0.1" "-" revision "."
9892 (string-take commit 7)))
9893 (source
9894 (origin
9895 (method git-fetch)
9896 (uri (git-reference
9897 (url "https://github.com/greghendershott/racket-mode")
9898 (commit commit)))
9899 (file-name (string-append name "-" version "-checkout"))
9900 (sha256
9901 (base32
9902 "0681mzwx08zwbh8qg3s26jw1jn4fw2ljp1akxqkhy08sxhafqvb1"))))
9903 (build-system emacs-build-system)
9904 (propagated-inputs
9905 `(("emacs-faceup" ,emacs-faceup)
9906 ("emacs-s" ,emacs-s)))
9907 (home-page "https://github.com/greghendershott/racket-mode")
9908 (synopsis "Major mode for Racket language")
9909 (description "@code{racket-mode} provides:
9910
9911 @itemize
9912 @item Focus on Racket (not various Schemes).
9913 @item Follow DrRacket concepts where applicable.
9914 @item Thorough font-lock and indent.
9915 @end itemize\n")
9916 (license license:gpl3+))))
9917
9918 (define-public emacs-grep-context
9919 (let ((commit "a17c57e66687a54e195e08afe776bdd60cb6c0a7"))
9920 (package
9921 (name "emacs-grep-context")
9922 (version (git-version "0.1" "1" commit))
9923 (source
9924 (origin
9925 (method git-fetch)
9926 (uri (git-reference
9927 (url "https://github.com/mkcms/grep-context.git")
9928 (commit commit)))
9929 (file-name (string-append name "-" version "-checkout"))
9930 (sha256
9931 (base32
9932 "1nqfa6kjzjshww4hnwg1c0vcr90bdjihy3kmixq3c3jkvxg99b62"))))
9933 (build-system emacs-build-system)
9934 (propagated-inputs
9935 `(("emacs-dash" ,emacs-dash)))
9936 (home-page "https://github.com/nashamri/academic-phrases")
9937 (synopsis "Increase context in compilation and grep buffers")
9938 (description
9939 "This package provides an Emacs package for more context in
9940 compilation/grep buffers. Works with @code{wgrep}, @code{ack}, @code{ag},
9941 @code{ivy}.")
9942 (license license:gpl3+))))
9943
9944 (define-public emacs-helm-firefox
9945 (let ((commit "0ad34b7b5abc485a86cae6920c14de861cbeb085")
9946 (revision "1"))
9947 (package
9948 (name "emacs-helm-firefox")
9949 (version (string-append "0.0.1" "-" revision "."
9950 (string-take commit 7)))
9951 (source
9952 (origin
9953 (method git-fetch)
9954 (uri (git-reference
9955 (url "https://github.com/emacs-helm/helm-firefox.git")
9956 (commit commit)))
9957 (file-name (string-append name "-" version "-checkout"))
9958 (sha256
9959 (base32
9960 "08mjsi2f9s29fkk35cj1rrparjnkm836qmbfdwdz7y51f9varjbs"))))
9961 (propagated-inputs
9962 `(("emacs-helm" ,emacs-helm)))
9963 (build-system emacs-build-system)
9964 (home-page "https://github.com/emacs-helm/helm-firefox")
9965 (synopsis "Display firefox bookmarks with Emacs Helm interface")
9966 (description "Display firefox bookmarks with Emacs Helm interface")
9967 (license license:gpl3+))))
9968
9969 (define-public emacs-interactive-align
9970 (package
9971 (name "emacs-interactive-align")
9972 (version "0.1.0")
9973 (source
9974 (origin
9975 (method url-fetch)
9976 (uri (string-append "https://github.com/mkcms/interactive-align/"
9977 "archive/" "v" version ".tar.gz"))
9978 (file-name (string-append name "-" version ".tar.gz"))
9979 (sha256
9980 (base32
9981 "0sibpgb4lp6yy3pziak8f3hz4b28yj0dqy2nzh51z3d0b63h528m"))))
9982 (build-system emacs-build-system)
9983 (home-page "https://github.com/mkcms/interactive-align/")
9984 (synopsis "Interactive align-regexp command in Emacs")
9985 (description "Interactive align-regexp command in Emacs")
9986 (license license:gpl3+)))
9987
9988 (define-public emacs-shift-number
9989 (package
9990 (name "emacs-shift-number")
9991 (version "0.1")
9992 (source
9993 (origin
9994 (method url-fetch)
9995 (uri (string-append "https://github.com/alezost/shift-number.el"
9996 "/archive/" "v" version ".tar.gz"))
9997 (file-name (string-append name "-" version ".tar.gz"))
9998 (sha256
9999 (base32
10000 "1g79m0hqn9jgpm565vvh8pdfzndc4vw7xisnh5qysj55qfg8cb1x"))))
10001 (build-system emacs-build-system)
10002 (home-page "https://github.com/alezost/shift-number.el")
10003 (synopsis "Increase or decrease the number at point")
10004 (description "@code{emacs-shift-number} provides commands
10005 @code{shift-number-up} to increase and @code{shift-number-down} to
10006 decrease the number at point.")
10007 (license license:gpl3+)))
10008
10009 (define-public emacs-highlight-defined
10010 (package
10011 (name "emacs-highlight-defined")
10012 (version "0.1.5")
10013 (source
10014 (origin
10015 (method url-fetch)
10016 (uri (string-append
10017 "https://github.com/Fanael/highlight-defined/archive/"
10018 version ".tar.gz"))
10019 (file-name (string-append name "-" version ".tar.gz"))
10020 (sha256
10021 (base32
10022 "1ryd66989b5byqdw8jmjrjf0c78iiz72wibld750skcnj5h5h506"))))
10023 (build-system emacs-build-system)
10024 (home-page "https://github.com/Fanael/highlight-defined")
10025 (synopsis "Syntax highlighting of known Elisp symbols")
10026 (description "Minor mode providing syntax highlighting of known Emacs Lisp
10027 symbols. Currently the code distinguishes Lisp functions, built-in functions,
10028 macros, faces and variables. To enable call @code{highlight-defined-mode}. ")
10029 (license license:gpl3+)))
10030
10031 (define-public emacs-parinfer-mode
10032 (package
10033 (name "emacs-parinfer-mode")
10034 (version "0.4.10")
10035 (source
10036 (origin
10037 (method url-fetch)
10038 (uri (string-append "https://github.com/DogLooksGood/parinfer-mode/archive/"
10039 "v" version ".tar.gz"))
10040 (file-name (string-append name "-" version ".tar.gz"))
10041 (sha256
10042 (base32
10043 "06ba9qi59sm9ih9m38fbr8kj4qkvrm58n0c0ngfjz60gnr9x9pcv"))))
10044 (propagated-inputs
10045 `(("emacs-dash" ,emacs-dash)
10046 ("emacs-rainbow-delimiters" ,emacs-rainbow-delimiters)
10047 ("emacs-company" ,emacs-company)))
10048 (build-system emacs-build-system)
10049 (home-page "https://github.com/DogLooksGood/parinfer-mode/")
10050 (synopsis "Lisp structure editing mode")
10051 (description "@code{parinfer-mode} is a proof-of-concept editor
10052 mode for Lisp programming languages. It will infer some changes to
10053 keep Parens and Indentation inline with one another.")
10054 (license license:gpl3+)))
10055
10056 (define-public emacs-helm-eww
10057 (let ((commit "5d6c2c66d4694415ef8a16a6d38a37aeae76c5ac"))
10058 (package
10059 (name "emacs-helm-eww")
10060 (version (git-version "0.1" "1" commit))
10061 (source (origin
10062 (method git-fetch)
10063 (uri (git-reference
10064 (url "https://github.com/emacs-helm/helm-eww.git")
10065 (commit commit)))
10066 (file-name (string-append name "-" version "-checkout"))
10067 (sha256
10068 (base32
10069 "1x442ylrr7cx587s4rvfh187h3qbkr79qp95qr57a4igxkkw6183"))))
10070 (propagated-inputs
10071 `(("emacs-helm" ,emacs-helm)))
10072 (build-system emacs-build-system)
10073 (home-page "https://github.com/emacs-helm/helm-eww/")
10074 (synopsis "Helm interface to EWW")
10075 (description "This package provides a Helm interface for EWW buffers,
10076 bookmarks and history.")
10077 (license license:gpl3+))))
10078
10079 (define-public emacs-stumpwm-mode
10080 (let ((commit "8fbe071d2c6c040794060a354eb377218dc10b35")
10081 (revision "1"))
10082 (package
10083 (name "emacs-stumpwm-mode")
10084 (version (string-append "0.0.1-" revision "."
10085 (string-take commit 7)))
10086 (source (origin
10087 (method git-fetch)
10088 (uri (git-reference
10089 (url "https://github.com/stumpwm/stumpwm-contrib.git")
10090 (commit commit)))
10091 (file-name (string-append name "-" version "-checkout"))
10092 (sha256
10093 (base32
10094 "1dfwsvz1c8w6j4jp0kzaz78ml3f5dp0a5pvf090kwpbpg176r7iq"))))
10095 (build-system emacs-build-system)
10096 (arguments
10097 `(#:phases
10098 (modify-phases %standard-phases
10099 (add-after 'unpack 'chdir-elisp
10100 ;; Elisp directory is not in root of the source.
10101 (lambda _
10102 (chdir "util/swm-emacs"))))))
10103 (home-page "https://github.com/stumpwm/stumpwm-contrib")
10104 (synopsis "Emacs minor-mode for Stumpwm")
10105 (description "Emacs minor-mode for Stumpwm")
10106 (license license:gpl3+))))
10107
10108 (define-public emacs-irfc
10109 (package
10110 (name "emacs-irfc")
10111 (version "20130824.507")
10112 (source
10113 (origin
10114 (method url-fetch)
10115 (uri "https://www.emacswiki.org/emacs/download/irfc.el")
10116 (file-name (string-append "irfc-" version ".el"))
10117 (sha256
10118 (base32
10119 "197ybqwbj8qjh2p9pkf5mvqnrkpcgmv8c5s2gvl6msyrabk0mnca"))))
10120 (build-system emacs-build-system)
10121 (home-page "https://www.emacswiki.org/emacs/download/irfc.el")
10122 (synopsis "Interface for IETF RFC document")
10123 (description
10124 "This package provides an Emacs interface for IETF RFC document.")
10125 (license license:gpl3+)))
10126
10127 (define-public emacs-ido-vertical-mode
10128 (package
10129 (name "emacs-ido-vertical-mode")
10130 (version "0.1.6")
10131 (source
10132 (origin
10133 (method url-fetch)
10134 (uri (string-append
10135 "https://github.com/creichert/ido-vertical-mode.el/archive/"
10136 "v" version ".tar.gz"))
10137 (file-name (string-append name "-" version ".tar.gz"))
10138 (sha256
10139 (base32
10140 "0dprdxq8wvqd45dinwj92k0kixr07c8xvspa6i613mjcpxgwjg53"))))
10141 (build-system emacs-build-system)
10142 (home-page "https://github.com/creichert/ido-vertical-mode.el")
10143 (synopsis "Makes ido-mode display vertically")
10144 (description "Makes ido-mode display prospects vertically.")
10145 (license license:gpl3+)))
10146
10147 (define-public emacs-wordgen
10148 (package
10149 (name "emacs-wordgen")
10150 (version "0.1.4")
10151 (source
10152 (origin
10153 (method url-fetch)
10154 (uri (string-append "https://github.com/Fanael/wordgen.el/archive/"
10155 version ".tar.gz"))
10156 (file-name (string-append name "-" version ".tar.gz"))
10157 (sha256
10158 (base32
10159 "1h2iyixdm49h53pwj9ics9gb9h3g6wa4hainpnjg6mfarf49jkmg"))))
10160 (build-system emacs-build-system)
10161 (home-page "https://github.com/Fanael/wordgen.el")
10162 (synopsis "Random word generator")
10163 (description "This package provides functions to generate random words
10164 using user-provided rules.")
10165 (license license:gpl3+)))
10166
10167 (define-public emacs-on-screen
10168 (package
10169 (name "emacs-on-screen")
10170 (version "1.3.2")
10171 (source
10172 (origin
10173 (method url-fetch)
10174 (uri (string-append
10175 "http://elpa.gnu.org/packages/on-screen-" version ".el"))
10176 (file-name (string-append name "-" version ".el"))
10177 (sha256
10178 (base32
10179 "15d18mjgv1pnwl6kf3pr5w64q1322p1l1qlfvnckglwmzy5sl2qv"))))
10180 (build-system emacs-build-system)
10181 (home-page
10182 "https://github.com/michael-heerdegen/on-screen.el")
10183 (synopsis "Guide your eyes while scrolling")
10184 (description
10185 "Scrolling can be distracting because your eyes may lose
10186 orientation. This library implements a minor mode that highlights
10187 the previously visible buffer part after each scroll.")
10188 (license license:gpl3+)))
10189
10190 (define-public emacs-highlight-escape-sequences
10191 (let ((commit "08d846a7aa748209d65fecead2b6a766c3e5cb41")
10192 (revision "1"))
10193 (package
10194 (name "emacs-highlight-escape-sequences")
10195 (version (string-append "0.0.1" "-" revision "."
10196 (string-take commit 7)))
10197 (source
10198 (origin
10199 (method git-fetch)
10200 (uri (git-reference
10201 (url "https://github.com/dgutov/highlight-escape-sequences.git")
10202 (commit commit)))
10203 (file-name (string-append name "-" version "-checkout"))
10204 (sha256
10205 (base32
10206 "05mc3w1f8ykf80914a1yddw6j8cmh0h57llm07xh89s53821v2is"))))
10207 (build-system emacs-build-system)
10208 (home-page "https://github.com/dgutov/highlight-escape-sequences")
10209 (synopsis "Highlight escape sequences in Emacs")
10210 (description "@code{highlight-escape-sequences} provides an
10211 Emacs minor mode to escape sequences in code.")
10212 (license license:gpl3+))))
10213
10214 (define-public emacs-dashboard
10215 (package
10216 (name "emacs-dashboard")
10217 (version "1.2.4")
10218 (source
10219 (origin
10220 (method url-fetch)
10221 (uri (string-append
10222 "https://github.com/rakanalh/emacs-dashboard/archive/"
10223 version ".tar.gz"))
10224 (file-name (string-append name "-" version ".tar.gz"))
10225 (sha256
10226 (base32
10227 "1738lmbgq6gk24hcwic0qjyajr21l5xzhya4pv58dw1bhd6vxv9g"))))
10228 (build-system emacs-build-system)
10229 (propagated-inputs
10230 `(("emacs-page-break-lines" ,emacs-page-break-lines)))
10231 (arguments '(#:include '("\\.el$" "\\.txt$" "\\.png$")))
10232 (home-page "https://github.com/rakanalh/emacs-dashboard")
10233 (synopsis "Startup screen extracted from Spacemacs")
10234 (description "This package provides an extensible Emacs dashboard, with
10235 sections for bookmarks, projectil projects, org-agenda and more. ")
10236 (license license:gpl3+)))
10237
10238 (define-public emacs-slime-company
10239 (package
10240 (name "emacs-slime-company")
10241 (version "1.1")
10242 (source
10243 (origin
10244 (method url-fetch)
10245 (uri (string-append "https://github.com/anwyn/slime-company/archive/"
10246 "v" version ".tar.gz"))
10247 (sha256
10248 (base32
10249 "1myl79pxj501xfr5qc5a24qddsn2l5iaamg7rf7fpny7mr9v70ar"))
10250 (file-name (string-append name "-" version ".tar.gz"))))
10251 (build-system emacs-build-system)
10252 (propagated-inputs
10253 `(("emacs-slime" ,emacs-slime)
10254 ("emacs-company" ,emacs-company)))
10255 (home-page "https://company-mode.github.io")
10256 (synopsis "SLIME completion backend for @code{company-mode}")
10257 (description
10258 "This is a backend implementation for the completion package
10259 @code{company-mode} which supports the normal and the fuzzy completion
10260 modes of SLIME.")
10261 (license license:gpl3+)))
10262
10263 (define-public emacs-sml-mode
10264 (package
10265 (name "emacs-sml-mode")
10266 (version "6.8")
10267 (source
10268 (origin
10269 (method url-fetch)
10270 (uri (string-append "http://elpa.gnu.org/packages/sml-mode-"
10271 version ".el"))
10272 (sha256
10273 (base32
10274 "105fcrz5qp95f2n3fdm3awr6z58sbrjihjss6qnrg4lz2ggbc328"))))
10275 (build-system emacs-build-system)
10276 (home-page "http://elpa.gnu.org/packages/sml-mode.html")
10277 (synopsis "Major mode for editing (Standard) ML")
10278 (description "SML-MODE is a major Emacs mode for editing Standard ML.
10279 It provides syntax highlighting and automatic indentation and
10280 comes with sml-proc which allows interaction with an inferior SML
10281 interactive loop.")
10282 (license license:gpl3+)))
10283
10284 (define-public emacs-eros
10285 (let ((commit "a42e45c9b2397156c684330b0fc90ee0eba773f5")
10286 (revision "1"))
10287 (package
10288 (name "emacs-eros")
10289 (version (string-append "0.0.1" "-" revision "."
10290 (string-take commit 7)))
10291 (source
10292 (origin
10293 (method git-fetch)
10294 (uri (git-reference
10295 (url "https://github.com/xiongtx/eros.git")
10296 (commit commit)))
10297 (file-name (string-append name "-" version "-checkout"))
10298 (sha256
10299 (base32
10300 "0whlsq90v13fz69k3wjrwcwb9gkpfxqjd75mg3nrp85j9nwhb5i4"))))
10301 (build-system emacs-build-system)
10302 (home-page "https://github.com/xiongtx/eros")
10303 (synopsis "Evaluation result overlays")
10304 (description "@code{eros} provides evaluation result overlays.")
10305 (license license:gpl3+))))
10306
10307 (define-public emacs-stickyfunc-enhance
10308 (let ((commit "13bdba51fcd83ccbc3267959d23afc94d458dcb0")
10309 (revision "1"))
10310 (package
10311 (name "emacs-stickyfunc-enhance")
10312 (version "0.1")
10313 (source
10314 (origin
10315 (method git-fetch)
10316 (uri (git-reference
10317 (url "https://github.com/tuhdo/semantic-stickyfunc-enhance.git")
10318 (commit commit)))
10319 (file-name (string-append name "-" version "-checkout"))
10320 (sha256
10321 (base32
10322 "16dxjsr5nj20blww4xpd4jzgjprzzh1nwvb810ggdmp9paf4iy0g"))))
10323 (build-system emacs-build-system)
10324 (home-page "https://github.com/tuhdo/semantic-stickyfunc-enhance")
10325 (synopsis "Enhancement to stock @code{semantic-stickyfunc-mode}")
10326 (description
10327 "@code{semantic-stickyfunc-mode} shows the function point is currently
10328 in at the first line of the current buffer. This is useful when you have a
10329 very long function that spreads more than a screen, and you don't have to
10330 scroll up to read the function name and then scroll down to original position.")
10331 (license license:gpl3+))))
10332
10333 (define-public emacs-git-auto-commit-mode
10334 (package
10335 (name "emacs-git-auto-commit-mode")
10336 (version "4.4.0")
10337 (source
10338 (origin
10339 (method url-fetch)
10340 (uri (string-append
10341 "https://github.com/ryuslash/git-auto-commit-mode/archive/"
10342 version ".tar.gz"))
10343 (file-name (string-append name "-" version ".tar.gz"))
10344 (sha256
10345 (base32
10346 "04avxmalsl3b7zi2vipfw9rb4wrwysnipsbch96skviql9axk870"))))
10347 (build-system emacs-build-system)
10348 (home-page "https://github.com/ryuslash/git-auto-commit-mode")
10349 (synopsis "Emacs Minor mode to automatically commit and push")
10350 (description "@code{git-auto-commit-mode} is an Emacs minor mode that
10351 tries to commit changes to a file after every save.
10352
10353 When @code{gac-automatically-push-p} is non-nil, it also tries to push to
10354 the current upstream.")
10355 (license license:gpl3+)))
10356
10357 (define-public emacs-company-restclient
10358 (package
10359 (name "emacs-company-restclient")
10360 (version "0.1.0")
10361 (source
10362 (origin
10363 (method url-fetch)
10364 (uri (string-append
10365 "https://github.com/iquiw/company-restclient/archive/"
10366 "v" version ".tar.gz"))
10367 (file-name (string-append name "-" version ".tar.gz"))
10368 (sha256
10369 (base32
10370 "1kr3f0wgqlk7r171bvb2kinv7fanwj2md01wdpx04qkgwcr1as00"))))
10371 (build-system emacs-build-system)
10372 (propagated-inputs
10373 `(("emacs-company" ,emacs-company)
10374 ("emacs-know-your-http-well" ,emacs-know-your-http-well)
10375 ("emacs-restclient" ,emacs-restclient)))
10376 (home-page "https://github.com/iquiw/company-restclient")
10377 (synopsis "Company-mode completion back-end for restclient-mode")
10378 (description "@code{company-mode} back-end for
10379 @code{restclient-mode}.
10380
10381 It provides auto-completion for HTTP methods and headers in
10382 @code{restclient-mode}. Completion source is given by
10383 @code{know-your-http-well}.")
10384 (license license:gpl3+)))
10385
10386 (define-public emacs-noflet
10387 (let ((version "20170629")
10388 (revision "1")
10389 (commit "7ae84dc3257637af7334101456dafe1759c6b68a"))
10390 (package
10391 (name "emacs-noflet")
10392 (version (git-version version revision commit))
10393 (source
10394 (origin
10395 (method git-fetch)
10396 (uri (git-reference
10397 (url "https://github.com/nicferrier/emacs-noflet")
10398 (commit commit)))
10399 (file-name (string-append name "-" version "-checkout"))
10400 (sha256
10401 (base32
10402 "0g70gnmfi8n24jzfci9nrj0n9bn1qig7b8f9f325rin8h7x32ypf"))))
10403 (build-system emacs-build-system)
10404 (arguments
10405 `(#:phases
10406 (modify-phases %standard-phases
10407 (add-after 'unpack 'require-dash
10408 ;; noflet.el uses -map from dash, but (require 'dash) is
10409 ;; missing. So, add it.
10410 (lambda _
10411 (substitute* "noflet.el"
10412 ((";;; Code:") ";;; Code:\n(require 'dash)"))
10413 #t)))))
10414 (propagated-inputs
10415 `(("emacs-dash" ,emacs-dash)))
10416 (home-page "https://github.com/nicferrier/emacs-noflet")
10417 (synopsis "Locally override functions")
10418 (description "@code{emacs-noflet} let's you locally override functions,
10419 in the manner of @command{flet}, but with access to the original function
10420 through the symbol: @command{this-fn}.")
10421 (license license:gpl3+))))
10422
10423 (define-public emacs-dumb-jump
10424 (package
10425 (name "emacs-dumb-jump")
10426 (version "0.5.2")
10427 (source
10428 (origin
10429 (method url-fetch)
10430 (uri (string-append
10431 "https://github.com/jacktasia/dumb-jump/archive/v"
10432 version ".tar.gz"))
10433 (file-name (string-append name "-" version ".tar.gz"))
10434 (sha256
10435 (base32
10436 "07n0xjgpxjpf3vp9gxchkjpydyj0zm166930as0kwiwkhjlsirsf"))))
10437 (build-system emacs-build-system)
10438 (arguments
10439 `(#:tests? #f ; FIXME: Tests freeze when run.
10440 #:test-command '("ert-runner")
10441 #:phases
10442 (modify-phases %standard-phases
10443 (add-after 'unpack 'set-shell
10444 (lambda _
10445 ;; Setting the SHELL environment variable is required for the
10446 ;; tests to find sh.
10447 (setenv "SHELL" (which "sh"))
10448 #t)))))
10449 (native-inputs
10450 `(("emacs-el-mock" ,emacs-el-mock)
10451 ("emacs-noflet" ,emacs-noflet)
10452 ("emacs-undercover" ,emacs-undercover)
10453 ("ert-runner" ,ert-runner)))
10454 (propagated-inputs
10455 `(("emacs-f" ,emacs-f)
10456 ("emacs-popup" ,emacs-popup)))
10457 (home-page "https://github.com/jacktasia/dumb-jump")
10458 (synopsis "Jump to definition for multiple languages without configuration")
10459 (description "Dumb Jump is an Emacs \"jump to definition\" package with
10460 support for multiple programming languages that favors \"just working\" over
10461 speed or accuracy. This means minimal --- and ideally zero --- configuration
10462 with absolutely no stored indexes (tags) or persistent background processes.
10463 Dumb Jump performs best with The Silver Searcher @command{ag} or ripgrep
10464 @command{rg} installed.")
10465 (license license:gpl3+)))
10466
10467 (define-public emacs-dts-mode
10468 (let ((commit "9ee0854446dcc6c53d2b8d2941051768dba50344")
10469 (revision "1"))
10470 (package
10471 (name "emacs-dts-mode")
10472 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
10473 (source
10474 (origin
10475 (method git-fetch)
10476 (uri (git-reference
10477 (url "https://github.com/bgamari/dts-mode.git")
10478 (commit commit)))
10479 (file-name (string-append name "-" version "-checkout"))
10480 (sha256
10481 (base32
10482 "1k8lljdbc90nd29xrhdrsscxavzdq532wq2mg7ljc94krj7538b1"))))
10483 (build-system emacs-build-system)
10484 (home-page "https://github.com/bgamari/dts-mode.git")
10485 (synopsis "Emacs minor mode for editing device tree files")
10486 (description
10487 "This package provides an Emacs minor mode for highlighting
10488 device tree files.")
10489 (license license:gpl3+))))
10490
10491 (define-public emacs-daemons
10492 (package
10493 (name "emacs-daemons")
10494 (version "1.2.0")
10495 (source
10496 (origin
10497 (method git-fetch)
10498 (uri (git-reference
10499 (url "https://github.com/cbowdon/daemons.el")
10500 (commit version)))
10501 (file-name (string-append name "-" version "-checkout"))
10502 (sha256
10503 (base32
10504 "00ijgm22ck76gw0x79krl05yy0m8a502yfakazfy5xhpn1zi6ab7"))))
10505 (build-system emacs-build-system)
10506 (home-page "https://github.com/cbowdon/daemons.el")
10507 (synopsis "Emacs UI for managing init system services")
10508 (description
10509 "This is an Emacs mode to give you a UI for managing init system
10510 daemons (services) for those getting tired of typing out @code{sudo service
10511 my_thing reload} all the time. It offers a consistent UI over different init
10512 systems.")
10513 (license license:gpl3+)))
10514
10515 (define-public emacs-esh-autosuggest
10516 (package
10517 (name "emacs-esh-autosuggest")
10518 (version "2.0.0")
10519 (source
10520 (origin
10521 (method git-fetch)
10522 (uri (git-reference
10523 (url "https://github.com/dieggsy/esh-autosuggest")
10524 (commit version)))
10525 (file-name (string-append name "-" version "-checkout"))
10526 (sha256
10527 (base32
10528 "116pdjgpjy9b0psm5kzwkwy7dq8vn0p6dy75dl1zsy2xrjf1iqdw"))))
10529 (build-system emacs-build-system)
10530 (propagated-inputs `(("emacs-company" ,emacs-company)))
10531 (home-page "https://github.com/dieggsy/esh-autosuggest")
10532 (synopsis "Fish-like autosuggestions in Eshell")
10533 (description
10534 "This package assumes you use something other than company for eshell
10535 completion (e.g. @code{eshell-pcomplete}, @code{completion-at-point},
10536 @code{helm-esh-pcomplete}). @code{company-mode} is used solely as a mechanism
10537 for history autosuggestions.
10538
10539 Unless you're using @code{use-package}'s hook keyword, you can enable the
10540 autosuggestions with:
10541 @code{(add-hook 'eshell-mode-hook #'esh-autosuggest-mode)}")
10542 (license license:gpl3+)))
10543
10544 (define-public emacs-desktop-environment
10545 (package
10546 (name "emacs-desktop-environment")
10547 (version "0.2.0")
10548 (source
10549 (origin
10550 (method git-fetch)
10551 (uri (git-reference
10552 (url "https://github.com/DamienCassou/desktop-environment.git")
10553 (commit (string-append "v" version))))
10554 (file-name (string-append name "-" version "-checkout"))
10555 (sha256
10556 (base32
10557 "1fal3yfmqg10cb53qsf5gsq2gvyz9w16wmlpnpjwjzwnjfn6l73r"))))
10558 (build-system emacs-build-system)
10559 (home-page "https://gitlab.petton.fr/DamienCassou/desktop-environment")
10560 (synopsis "Control your GNU/Linux desktop environment from Emacs")
10561 (description
10562 "This package helps you control your GNU/Linux desktop from Emacs.
10563 With @code{desktop-environment}, you can control the brightness and volume as
10564 well as take screenshots and lock your screen. The package depends on the
10565 availability of shell commands to do the hard work for us. These commands can
10566 be changed by customizing the appropriate variables.")
10567 (license license:gpl3+)))
10568
10569 (define-public emacs-org-caldav
10570 (package
10571 (name "emacs-org-caldav")
10572 (version "20180403")
10573 (source
10574 (origin
10575 (method url-fetch)
10576 (uri (string-append
10577 "https://github.com/dengste/org-caldav/raw/"
10578 "8d3492c27a09f437d2d94f2736c56d7652e87aa0"
10579 "/org-caldav.el"))
10580 (sha256
10581 (base32
10582 "1fh4gh68ddj0is99z2ccyh97v6psnyda61n2dsadzqhcxn51amlc"))))
10583 (build-system emacs-build-system)
10584 (propagated-inputs `(("emacs-org" ,emacs-org)))
10585 (home-page "https://github.com/dengste/org-caldav")
10586 (synopsis
10587 "Sync Org files with external calendars via the CalDAV protocol")
10588 (description
10589 "Synchronize between events in Org-mode files and a CalDAV calendar.
10590 This code is still alpha.")
10591 (license license:gpl3+)))
10592
10593 (define-public emacs-zotxt
10594 (package
10595 (name "emacs-zotxt")
10596 (version "20180518")
10597 (source
10598 (origin
10599 (method url-fetch)
10600 (uri (string-append
10601 "https://github.com/egh/zotxt-emacs/archive/"
10602 "23a4a9f74a658222027d53a9a83cd4bcc583ca8b"
10603 ".tar.gz"))
10604 (sha256
10605 (base32
10606 "1qlibaciqgsva6fc7vv9krssjq00bi880396jk7llbi3c52q9n1y"))))
10607 (build-system emacs-build-system)
10608 (propagated-inputs
10609 `(("emacs-deferred" ,emacs-deferred)
10610 ("emacs-request" ,emacs-request)))
10611 (home-page "https://github.com/egh/zotxt-emacs")
10612 (synopsis "Integrate Emacs with Zotero")
10613 (description "This package provides two integration features between Emacs
10614 and the Zotero research assistant: Insertion of links to Zotero items into an
10615 Org-mode file, and citations of Zotero items in Pandoc Markdown files.")
10616 (license license:gpl3+)))
10617
10618 (define-public emacs-evil-ediff
10619 (package
10620 (name "emacs-evil-ediff")
10621 (version "20170724")
10622 (source
10623 (origin
10624 (method url-fetch)
10625 (uri (string-append
10626 "https://github.com/emacs-evil/evil-ediff/archive/"
10627 "67b0e69f65c196eff5b39dacb7a9ec05bb919c74"
10628 ".tar.gz"))
10629 (sha256
10630 (base32
10631 "0j2x26zfc6md54mjf76qpybil4yal70lp5bifcz62l1f8fc1vvlq"))))
10632 (build-system emacs-build-system)
10633 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
10634 (home-page "https://github.com/emacs-evil/evil-ediff")
10635 (synopsis "Make Ediff a little evil")
10636 (description
10637 "This Emacs package configures Ediff to be friendlier to users of Vi-like
10638 keybindings. Consult the help buffer for more information.")
10639 (license license:gpl3+)))
10640
10641 (define-public emacs-evil-magit
10642 (let ((commit "dbf5a646a7ce1c35c229dfdc423bd5ecd927a3a8"))
10643 (package
10644 (name "emacs-evil-magit")
10645 (version (git-version "0.4.2" "1" commit))
10646 (source
10647 (origin
10648 (method git-fetch)
10649 (uri (git-reference
10650 (url "https://github.com/emacs-evil/evil-magit")
10651 (commit commit)))
10652 (file-name (string-append name "-" version "-checkout"))
10653 (sha256
10654 (base32
10655 "0ya0dkviq4pi92ab69a4j674y5r1hc1x3x7r7hlm97ag3a6zfkav"))))
10656 (build-system emacs-build-system)
10657 (propagated-inputs
10658 `(("emacs-evil" ,emacs-evil)
10659 ("magit" ,magit)))
10660 (home-page
10661 "https://github.com/emacs-evil/evil-magit")
10662 (synopsis "Evil-based key bindings for Magit")
10663 (description
10664 "This Emacs library configures Magit and Evil to play well with each other.
10665 For some background see @url{https://github.com/magit/evil-magit/issues/1}.
10666 See the README at @url{https://github.com/justbur/evil-magit} for a table
10667 describing the key binding changes.")
10668 (license license:gpl3+))))
10669
10670 (define-public emacs-evil-mu4e
10671 (package
10672 (name "emacs-evil-mu4e")
10673 (version "0.0.8")
10674 (source
10675 (origin
10676 (method url-fetch)
10677 (uri (string-append
10678 "https://github.com/JorisE/evil-mu4e/archive/"
10679 "c03a0e11afda3092eb1461be09fa6a61ebc0e4f6"
10680 ".tar.gz"))
10681 (sha256
10682 (base32
10683 "1k3z5h04bqslrkq13paqf8pv9r0rf0zjl0zbb57ly043ds3nvxr2"))))
10684 (build-system emacs-build-system)
10685 (propagated-inputs
10686 `(("emacs-dash" ,emacs-dash)
10687 ("emacs-evil" ,emacs-evil)
10688 ("mu" ,mu)))
10689 (home-page "https://github.com/JorisE/evil-mu4e")
10690 (synopsis "Evil-based key bindings for mu4e")
10691 (description
10692 "Use keybindings for the mu4e mail reader in Emacs that make sense for
10693 Evil users.")
10694 (license license:gpl3+)))
10695
10696 (define-public emacs-evil-multiedit
10697 (let ((commit "ea3d9177b74ab0bc65e55df9cc0a0b42e4ef815d"))
10698 (package
10699 (name "emacs-evil-multiedit")
10700 (version (git-version "1.3.9" "1" commit))
10701 (source
10702 (origin
10703 (method git-fetch)
10704 (uri (git-reference
10705 (url "https://github.com/hlissner/evil-multiedit")
10706 (commit commit)))
10707 (file-name (string-append name "-" version "-checkout"))
10708 (sha256
10709 (base32
10710 "17zm35r474z8ras4xy7124pcb972d385pbdv4jxyj5vq042vq07w"))))
10711 (build-system emacs-build-system)
10712 (propagated-inputs
10713 `(("emacs-evil" ,emacs-evil)
10714 ("emacs-iedit" ,emacs-iedit)))
10715 (home-page
10716 "https://github.com/hlissner/evil-multiedit")
10717 (synopsis "Multiple cursors for Evil mode")
10718 (description
10719 "This plugin was an answer to the lack of proper multiple cursor support
10720 in Emacs+Evil. It allows you to select and edit matches interactively,
10721 integrating @code{iedit-mode} into Evil mode with an attempt at sensible
10722 defaults.")
10723 (license license:gpl3+))))
10724
10725 (define-public emacs-evil-org
10726 (let ((commit "b6d652a9163d3430a9e0933a554bdbee5244bbf6"))
10727 (package
10728 (name "emacs-evil-org")
10729 (version (git-version "0.1.1" "1" commit))
10730 (source
10731 (origin
10732 (method git-fetch)
10733 (uri (git-reference
10734 (url "https://github.com/Somelauw/evil-org-mode")
10735 (commit commit)))
10736 (file-name (string-append name "-" version "-checkout"))
10737 (sha256
10738 (base32
10739 "176hrw7y7nczffbyhsa167b8rvfacsmcafm2gpkrdjqlrikbmrhl"))))
10740 (build-system emacs-build-system)
10741 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
10742 (home-page
10743 "https://github.com/Somelauw/evil-org-mode")
10744 (synopsis "Evil keybindings for Org mode")
10745 (description
10746 "This package adds supplemental Evil mode key-bindings to Emacs
10747 Org-mode. It features:
10748 @itemize
10749 @item normal, visual and insert mode bindings;
10750 @item key bindings organised in key themes;
10751 @item operators like > and < to work on headings;
10752 @item text objects;
10753 @item table support;
10754 @item calendar (date selection) support;
10755 @item agenda support.
10756 @end itemize\n")
10757 (license license:gpl3+))))