gnu: emacs-zenburn-theme: Update to 2.6.
[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, 2018 Christopher Lemmer Webber <cwebber@dustycloud.org>
10 ;;; Copyright © 2016 Adriano Peluso <catonano@gmail.com>
11 ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
12 ;;; Copyright © 2016 David Thompson <davet@gnu.org>
13 ;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
14 ;;; Copyright © 2016, 2017 Roel Janssen <roel@gnu.org>
15 ;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is>
16 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
17 ;;; Copyright © 2016, 2017, 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
18 ;;; Copyright © 2016, 2017, 2018 Alex Vong <alexvong1995@gmail.com>
19 ;;; Copyright © 2016, 2017, 2018 Arun Isaac <arunisaac@systemreboot.net>
20 ;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
21 ;;; Copyright © 2017, 2018 Mathieu Othacehe <m.othacehe@gmail.com>
22 ;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
23 ;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
24 ;;; Copyright © 2017, 2018 Kyle Meyer <kyle@kyleam.com>
25 ;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
26 ;;; Copyright © 2017 George Clemmer <myglc2@gmail.com>
27 ;;; Copyright © 2017 Feng Shu <tumashu@163.com>
28 ;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
29 ;;; Copyright © 2017, 2018 Oleg Pykhalov <go.wigust@gmail.com>
30 ;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
31 ;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
32 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
33 ;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org>
34 ;;; Copyright © 2017, 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
35 ;;; Copyright © 2018 Sohom Bhattacharjee <soham.bhattacharjee15@gmail.com>
36 ;;; Copyright © 2018 Mathieu Lirzin <mthl@gnu.org>
37 ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
38 ;;; Copyright © 2018 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
39 ;;; Copyright © 2018 Jack Hill <jackhill@jackhill.us>
40 ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
41 ;;; Copyright © 2018 Alex Branham <alex.branham@gmail.com>
42 ;;; Copyright © 2018 Thorsten Wilms <t_w_@freenet.de>
43 ;;; Copyright © 2018 Pierre Langlois <pierre.langlois@gmx.com>
44 ;;;
45 ;;; This file is part of GNU Guix.
46 ;;;
47 ;;; GNU Guix is free software; you can redistribute it and/or modify it
48 ;;; under the terms of the GNU General Public License as published by
49 ;;; the Free Software Foundation; either version 3 of the License, or (at
50 ;;; your option) any later version.
51 ;;;
52 ;;; GNU Guix is distributed in the hope that it will be useful, but
53 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
54 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
55 ;;; GNU General Public License for more details.
56 ;;;
57 ;;; You should have received a copy of the GNU General Public License
58 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
59
60 (define-module (gnu packages emacs)
61 #:use-module ((guix licenses) #:prefix license:)
62 #:use-module (guix packages)
63 #:use-module (guix download)
64 #:use-module (guix git-download)
65 #:use-module (guix gexp)
66 #:use-module (guix monads)
67 #:use-module (guix store)
68 #:use-module (guix build-system gnu)
69 #:use-module (guix build-system cmake)
70 #:use-module (guix build-system emacs)
71 #:use-module (guix build-system glib-or-gtk)
72 #:use-module (guix build-system trivial)
73 #:use-module (gnu packages)
74 #:use-module (gnu packages audio)
75 #:use-module (gnu packages bash)
76 #:use-module (gnu packages cmake)
77 #:use-module (gnu packages code)
78 #:use-module (gnu packages databases)
79 #:use-module (gnu packages guile)
80 #:use-module (gnu packages gtk)
81 #:use-module (gnu packages gnome)
82 #:use-module (gnu packages ncurses)
83 #:use-module (gnu packages python)
84 #:use-module (gnu packages tex)
85 #:use-module (gnu packages texinfo)
86 #:use-module (gnu packages tcl)
87 #:use-module (gnu packages tls)
88 #:use-module (gnu packages pkg-config)
89 #:use-module (gnu packages xorg)
90 #:use-module (gnu packages lesstif)
91 #:use-module (gnu packages llvm)
92 #:use-module (gnu packages image)
93 #:use-module (gnu packages linux)
94 #:use-module (gnu packages version-control)
95 #:use-module (gnu packages imagemagick)
96 #:use-module (gnu packages w3m)
97 #:use-module (gnu packages wget)
98 #:use-module (gnu packages autotools)
99 #:use-module (gnu packages base)
100 #:use-module (gnu packages compression)
101 #:use-module (gnu packages xml)
102 #:use-module (gnu packages glib)
103 #:use-module (gnu packages acl)
104 #:use-module (gnu packages mail)
105 #:use-module (gnu packages package-management)
106 #:use-module (gnu packages perl)
107 #:use-module (gnu packages pdf)
108 #:use-module (gnu packages scheme)
109 #:use-module (gnu packages statistics)
110 #:use-module (gnu packages xiph)
111 #:use-module (gnu packages mp3)
112 #:use-module (gnu packages gettext)
113 #:use-module (gnu packages fribidi)
114 #:use-module (gnu packages gd)
115 #:use-module (gnu packages fontutils)
116 #:use-module (gnu packages password-utils)
117 #:use-module (gnu packages pulseaudio)
118 #:use-module (gnu packages xdisorg)
119 #:use-module (gnu packages shells)
120 #:use-module (gnu packages gnupg)
121 #:use-module (gnu packages video)
122 #:use-module (gnu packages haskell)
123 #:use-module (gnu packages wordnet)
124 #:use-module (guix utils)
125 #:use-module (srfi srfi-1)
126 #:use-module (ice-9 match))
127
128 (define-public emacs
129 (package
130 (name "emacs")
131 (version "26.1")
132 (source (origin
133 (method url-fetch)
134 (uri (string-append "mirror://gnu/emacs/emacs-"
135 version ".tar.xz"))
136 (sha256
137 (base32
138 "0b6k1wq44rc8gkvxhi1bbjxbz3cwg29qbq8mklq2az6p1hjgrx0w"))
139 (patches (search-patches "emacs-exec-path.patch"
140 "emacs-fix-scheme-indent-function.patch"
141 "emacs-source-date-epoch.patch"))
142 (modules '((guix build utils)))
143 (snippet
144 ;; Delete the bundled byte-compiled elisp files and
145 ;; generated autoloads.
146 '(with-directory-excursion "lisp"
147 (for-each delete-file
148 (append (find-files "." "\\.elc$")
149 (find-files "." "loaddefs\\.el$")
150 ;; This is the only "autoloads" file that
151 ;; does not have "*loaddefs.el" name.
152 '("eshell/esh-groups.el")))
153
154 ;; Make sure Tramp looks for binaries in the right places on
155 ;; remote GuixSD machines, where 'getconf PATH' returns
156 ;; something bogus.
157 (substitute* "net/tramp-sh.el"
158 ;; Patch the line after "(defcustom tramp-remote-path".
159 (("\\(tramp-default-remote-path")
160 (format #f "(tramp-default-remote-path ~s ~s ~s ~s "
161 "~/.guix-profile/bin" "~/.guix-profile/sbin"
162 "/run/current-system/profile/bin"
163 "/run/current-system/profile/sbin")))
164
165 ;; Make sure Man looks for C header files in the right
166 ;; places.
167 (substitute* "man.el"
168 (("\"/usr/local/include\"" line)
169 (string-join
170 (list line
171 "\"~/.guix-profile/include\""
172 "\"/var/guix/profiles/system/profile/include\"")
173 " ")))
174 #t))))
175 (build-system glib-or-gtk-build-system)
176 (arguments
177 `(#:tests? #f ; no check target
178 #:phases
179 (modify-phases %standard-phases
180 (add-before 'configure 'fix-/bin/pwd
181 (lambda _
182 ;; Use `pwd', not `/bin/pwd'.
183 (substitute* (find-files "." "^Makefile\\.in$")
184 (("/bin/pwd")
185 "pwd"))
186 #t))
187 (add-after 'install 'install-site-start
188 ;; Use 'guix-emacs' in "site-start.el". This way, Emacs packages
189 ;; provided by Guix and installed in
190 ;; ~/.guix-profile/share/emacs/site-lisp/guix.d/PACKAGE-VERSION are
191 ;; automatically found.
192 (lambda* (#:key inputs outputs #:allow-other-keys)
193 (let* ((out (assoc-ref outputs "out"))
194 (lisp-dir (string-append out "/share/emacs/site-lisp")))
195 (copy-file (assoc-ref inputs "guix-emacs.el")
196 (string-append lisp-dir "/guix-emacs.el"))
197 (with-output-to-file (string-append lisp-dir "/site-start.el")
198 (lambda ()
199 (display
200 (string-append "(when (require 'guix-emacs nil t)\n"
201 " (guix-emacs-autoload-packages))\n"))))
202 #t))))))
203 (inputs
204 `(("gnutls" ,gnutls)
205 ("ncurses" ,ncurses)
206
207 ;; TODO: Add the optional dependencies.
208 ("libx11" ,libx11)
209 ("gtk+" ,gtk+)
210 ("libxft" ,libxft)
211 ("libtiff" ,libtiff)
212 ("giflib" ,giflib)
213 ("libjpeg" ,libjpeg)
214 ("imagemagick" ,imagemagick)
215 ("acl" ,acl)
216
217 ;; When looking for libpng `configure' links with `-lpng -lz', so we
218 ;; must also provide zlib as an input.
219 ("libpng" ,libpng)
220 ("zlib" ,zlib)
221
222 ("librsvg" ,librsvg)
223 ("libxpm" ,libxpm)
224 ("libxml2" ,libxml2)
225 ("libice" ,libice)
226 ("libsm" ,libsm)
227 ("alsa-lib" ,alsa-lib)
228 ("dbus" ,dbus)
229
230 ;; multilingualization support
231 ("libotf" ,libotf)
232 ("m17n-lib" ,m17n-lib)))
233 (native-inputs
234 `(("guix-emacs.el" ,(search-auxiliary-file "emacs/guix-emacs.el"))
235 ("pkg-config" ,pkg-config)
236 ("texinfo" ,texinfo)))
237
238 (native-search-paths
239 (list (search-path-specification
240 (variable "INFOPATH")
241 (files '("share/info")))))
242
243 (home-page "https://www.gnu.org/software/emacs/")
244 (synopsis "The extensible, customizable, self-documenting text editor")
245 (description
246 "GNU Emacs is an extensible and highly customizable text editor. It is
247 based on an Emacs Lisp interpreter with extensions for text editing. Emacs
248 has been extended in essentially all areas of computing, giving rise to a
249 vast array of packages supporting, e.g., email, IRC and XMPP messaging,
250 spreadsheets, remote server editing, and much more. Emacs includes extensive
251 documentation on all aspects of the system, from basic editing to writing
252 large Lisp programs. It has full Unicode support for nearly all human
253 languages.")
254 (license license:gpl3+)))
255
256 (define-public emacs-minimal
257 ;; This is the version that you should use as an input to packages that just
258 ;; need to byte-compile .el files.
259 (package (inherit emacs)
260 (name "emacs-minimal")
261 (synopsis "The extensible text editor (used only for byte-compilation)")
262 (build-system gnu-build-system)
263 (arguments
264 `(#:configure-flags (list "--with-gnutls=no")
265 ,@(substitute-keyword-arguments (package-arguments emacs)
266 ((#:phases phases)
267 `(modify-phases ,phases
268 (delete 'install-site-start))))))
269 (inputs
270 `(("ncurses" ,ncurses)))
271 (native-inputs
272 `(("pkg-config" ,pkg-config)))))
273
274 (define-public emacs-no-x
275 (package (inherit emacs)
276 (name "emacs-no-x")
277 (synopsis "The extensible, customizable, self-documenting text
278 editor (console only)")
279 (build-system gnu-build-system)
280 (inputs (fold alist-delete
281 (package-inputs emacs)
282 '("libx11" "gtk+" "libxft" "libtiff" "giflib" "libjpeg"
283 "imagemagick" "libpng" "librsvg" "libxpm" "libice"
284 "libsm"
285
286 ;; These depend on libx11, so remove them as well.
287 "libotf" "m17n-lib" "dbus")))))
288
289 (define-public emacs-no-x-toolkit
290 (package (inherit emacs)
291 (name "emacs-no-x-toolkit")
292 (synopsis "The extensible, customizable, self-documenting text
293 editor (without an X toolkit)" )
294 (build-system gnu-build-system)
295 (inputs (append `(("inotify-tools" ,inotify-tools))
296 (alist-delete "gtk+" (package-inputs emacs))))
297 (arguments (append '(#:configure-flags '("--with-x-toolkit=no"))
298 (package-arguments emacs)))))
299
300 (define-public guile-emacs
301 (package (inherit emacs)
302 (name "guile-emacs")
303 (version "20150512.41120e0")
304 (source (origin
305 (method git-fetch)
306 (uri (git-reference
307 (url "git://git.hcoop.net/git/bpt/emacs.git")
308 (commit "41120e0f595b16387eebfbf731fff70481de1b4b")))
309 (file-name (string-append name "-" version "-checkout"))
310 (patches (search-patches "guile-emacs-fix-configure.patch"))
311 (sha256
312 (base32
313 "0lvcvsz0f4mawj04db35p1dvkffdqkz8pkhc0jzh9j9x2i63kcz6"))))
314 (native-inputs
315 `(("autoconf" ,autoconf)
316 ("automake" ,automake)
317 ("guile" ,guile-for-guile-emacs)
318 ,@(package-native-inputs emacs)))
319 (arguments
320 (substitute-keyword-arguments `(;; Build fails if we allow parallel build.
321 #:parallel-build? #f
322 ;; Tests aren't passing for now.
323 #:tests? #f
324 ,@(package-arguments emacs))
325 ((#:phases phases)
326 `(modify-phases ,phases
327 (add-after 'unpack 'autogen
328 (lambda _
329 (invoke "sh" "autogen.sh")))
330 ;; Build sometimes fails: deps/dispnew.d: No such file or directory
331 (add-before 'build 'make-deps-dir
332 (lambda _
333 (invoke "mkdir" "-p" "src/deps")))))))))
334
335 \f
336 ;;;
337 ;;; Emacs hacking.
338 ;;;
339
340 (define-public emacs-geiser
341 (package
342 (name "emacs-geiser")
343 (version "0.10")
344 (source (origin
345 (method url-fetch)
346 (uri (string-append "mirror://savannah/geiser/" version
347 "/geiser-" version ".tar.gz"))
348 (sha256
349 (base32
350 "0pj3l7p8d60c9b4vfprnv6g5l61d74pls4b5dvd84cn4ky9mzwjv"))))
351 (build-system gnu-build-system)
352 (arguments
353 '(#:phases
354 (modify-phases %standard-phases
355 (add-after 'install 'post-install
356 (lambda* (#:key outputs #:allow-other-keys)
357 (symlink "geiser-install.el"
358 (string-append (assoc-ref outputs "out")
359 "/share/emacs/site-lisp/"
360 "geiser-autoloads.el"))
361 #t)))))
362 (inputs `(("guile" ,guile-2.2)))
363 (native-inputs `(("emacs" ,emacs-minimal)))
364 (home-page "https://nongnu.org/geiser/")
365 (synopsis "Collection of Emacs modes for Guile and Racket hacking")
366 (description
367 "Geiser is a collection of Emacs major and minor modes that conspire with
368 one or more Scheme implementations to keep the Lisp Machine Spirit alive. The
369 continuously running Scheme interpreter takes the center of the stage in
370 Geiser. A bundle of Elisp shims orchestrates the dialog between the Scheme
371 implementation, Emacs and, ultimately, the schemer, giving them access to live
372 metadata.")
373 (license license:bsd-3)))
374
375 (define-public geiser
376 (deprecated-package "geiser" emacs-geiser))
377
378 (define-public emacs-paredit
379 (package
380 (name "emacs-paredit")
381 (version "24")
382 (source (origin
383 (method url-fetch)
384 (uri (string-append "http://mumble.net/~campbell/emacs/paredit-"
385 version ".el"))
386 (sha256
387 (base32
388 "0pp3n8q6kc70blqsaw0zlzp6bc327dpgdrjr0cnh7hqg1lras7ka"))))
389 (build-system emacs-build-system)
390 (home-page "http://mumble.net/~campbell/emacs/paredit/")
391 (synopsis "Emacs minor mode for editing parentheses")
392 (description
393 "ParEdit (paredit.el) is a minor mode for performing structured editing
394 of S-expression data. The typical example of this would be Lisp or Scheme
395 source code.
396
397 ParEdit helps **keep parentheses balanced** and adds many keys for moving
398 S-expressions and moving around in S-expressions. Its behavior can be jarring
399 for those who may want transient periods of unbalanced parentheses, such as
400 when typing parentheses directly or commenting out code line by line.")
401 (license license:gpl3+)))
402
403 (define-public paredit
404 (deprecated-package "paredit" emacs-paredit))
405
406 (define-public git-modes
407 (package
408 (name "emacs-git-modes")
409 (version "1.2.8")
410 (source (origin
411 (method url-fetch)
412 (uri (string-append
413 "https://github.com/magit/git-modes/archive/"
414 version ".tar.gz"))
415 (file-name (string-append name "-" version ".tar.gz"))
416 (sha256
417 (base32
418 "0h49f68yn0q4lg054adqii4qja1z2pzybm7nf4kvpq7fzjrzgv1q"))))
419 (build-system emacs-build-system)
420 (home-page "https://github.com/magit/git-modes")
421 (synopsis "Emacs major modes for Git configuration files")
422 (description
423 "This package provides Emacs major modes for editing various Git
424 configuration files, such as .gitattributes, .gitignore, and .git/config.")
425 (license license:gpl3+)))
426
427 (define-public git-modes/old-name
428 (deprecated-package "git-modes" git-modes))
429
430 (define-public emacs-with-editor
431 (package
432 (name "emacs-with-editor")
433 (version "2.7.3")
434 (source (origin
435 (method url-fetch)
436 (uri (string-append
437 "https://github.com/magit/with-editor/archive/v"
438 version ".tar.gz"))
439 (file-name (string-append name "-" version ".tar.gz"))
440 (sha256
441 (base32
442 "1ln2s0kckzkv50qmr6x1kb2j30cfjii0vs6lpghg7ff4lav8jqgh"))))
443 (build-system emacs-build-system)
444 (propagated-inputs
445 `(("emacs-dash" ,emacs-dash)))
446 (home-page "https://github.com/magit/with-editor")
447 (synopsis "Emacs library for using Emacsclient as EDITOR")
448 (description
449 "This package provides an Emacs library to use the Emacsclient as
450 @code{$EDITOR} of child processes, making sure they know how to call home.
451 For remote processes a substitute is provided, which communicates with Emacs
452 on stdout instead of using a socket as the Emacsclient does.")
453 (license license:gpl3+)))
454
455 (define-public emacs-magit
456 (package
457 (name "emacs-magit")
458 (version "2.13.0")
459 (source (origin
460 (method url-fetch)
461 (uri (string-append
462 "https://github.com/magit/magit/releases/download/"
463 version "/magit-" version ".tar.gz"))
464 (sha256
465 (base32
466 "1ygaah3dd3nxpyd17297xgvdcgr7pgzzwlmpnmchki0kiwgg3sbc"))))
467 (build-system gnu-build-system)
468 (native-inputs `(("texinfo" ,texinfo)
469 ("emacs" ,emacs-minimal)))
470 (inputs
471 `(("git" ,git)
472 ("perl" ,perl)))
473 (propagated-inputs
474 `(("dash" ,emacs-dash)
475 ("ghub" ,emacs-ghub)
476 ("magit-popup" ,emacs-magit-popup)
477 ("with-editor" ,emacs-with-editor)))
478 (arguments
479 `(#:test-target "test"
480 #:tests? #f ; tests are not included in the release
481
482 #:make-flags
483 (list (string-append "PREFIX=" %output)
484 ;; Don't put .el files in a sub-directory.
485 (string-append "lispdir=" %output "/share/emacs/site-lisp")
486 (string-append "DASH_DIR="
487 (assoc-ref %build-inputs "dash")
488 "/share/emacs/site-lisp/guix.d/dash-"
489 ,(package-version emacs-dash))
490 (string-append "GHUB_DIR="
491 (assoc-ref %build-inputs "ghub")
492 "/share/emacs/site-lisp/guix.d/ghub-"
493 ,(package-version emacs-ghub))
494 (string-append "MAGIT_POPUP_DIR="
495 (assoc-ref %build-inputs "magit-popup")
496 "/share/emacs/site-lisp/guix.d/magit-popup-"
497 ,(package-version emacs-magit-popup))
498 (string-append "WITH_EDITOR_DIR="
499 (assoc-ref %build-inputs "with-editor")
500 "/share/emacs/site-lisp/guix.d/with-editor-"
501 ,(package-version emacs-with-editor)))
502
503 #:phases
504 (modify-phases %standard-phases
505 (delete 'configure)
506 (add-before
507 'build 'patch-exec-paths
508 (lambda* (#:key inputs #:allow-other-keys)
509 (let ((perl (assoc-ref inputs "perl")))
510 (substitute* "lisp/magit-sequence.el"
511 (("perl") (string-append perl "/bin/perl")))
512 #t))))))
513 (home-page "https://magit.vc/")
514 (synopsis "Emacs interface for the Git version control system")
515 (description
516 "With Magit, you can inspect and modify your Git repositories with Emacs.
517 You can review and commit the changes you have made to the tracked files, for
518 example, and you can browse the history of past changes. There is support for
519 cherry picking, reverting, merging, rebasing, and other common Git
520 operations.")
521 (license license:gpl3+)))
522
523 (define-public magit
524 (deprecated-package "magit" emacs-magit))
525
526 (define-public emacs-magit-svn
527 (package
528 (name "emacs-magit-svn")
529 (version "2.2.0")
530 (source (origin
531 (method url-fetch)
532 (uri (string-append
533 "https://github.com/magit/magit-svn/archive/"
534 version ".tar.gz"))
535 (file-name (string-append name "-" version ".tar.gz"))
536 (sha256
537 (base32
538 "1c3n377v436zaxamlsz04y1ahdhp96x1vd43zaryv4y10m02ba47"))))
539 (build-system trivial-build-system)
540 (native-inputs `(("emacs" ,emacs-minimal)
541 ("tar" ,tar)
542 ("gzip" ,gzip)))
543 (propagated-inputs `(("dash" ,emacs-dash)
544 ("with-editor" ,emacs-with-editor)
545 ("magit" ,emacs-magit)))
546 (arguments
547 `(#:modules ((guix build utils)
548 (guix build emacs-utils))
549
550 #:builder
551 (begin
552 (use-modules (guix build utils)
553 (guix build emacs-utils))
554
555 (let* ((tar (string-append (assoc-ref %build-inputs "tar")
556 "/bin/tar"))
557 (PATH (string-append (assoc-ref %build-inputs "gzip")
558 "/bin"))
559 (emacs (string-append (assoc-ref %build-inputs "emacs")
560 "/bin/emacs"))
561 (magit (string-append (assoc-ref %build-inputs "magit")
562 "/share/emacs/site-lisp"))
563 (dash (string-append (assoc-ref %build-inputs "dash")
564 "/share/emacs/site-lisp/guix.d/dash-"
565 ,(package-version emacs-dash)))
566 (with-editor (string-append (assoc-ref %build-inputs "with-editor")
567 "/share/emacs/site-lisp/guix.d/with-editor-"
568 ,(package-version emacs-with-editor)))
569 (source (assoc-ref %build-inputs "source"))
570 (lisp-dir (string-append %output "/share/emacs/site-lisp")))
571 (setenv "PATH" PATH)
572 (invoke tar "xvf" source)
573
574 (install-file (string-append ,name "-" ,version "/magit-svn.el")
575 lisp-dir)
576
577 (with-directory-excursion lisp-dir
578 (parameterize ((%emacs emacs))
579 (emacs-generate-autoloads ,name lisp-dir)
580 (setenv "EMACSLOADPATH"
581 (string-append ":" magit ":" dash ":" with-editor))
582 (emacs-batch-eval '(byte-compile-file "magit-svn.el"))))
583 #t))))
584 (home-page "https://github.com/magit/magit-svn")
585 (synopsis "Git-SVN extension to Magit")
586 (description
587 "This package is an extension to Magit, the Git Emacs mode, providing
588 support for Git-SVN.")
589 (license license:gpl3+)))
590
591 (define-public magit-svn
592 (deprecated-package "magit-svn" emacs-magit-svn))
593
594 (define-public emacs-magit-popup
595 (package
596 (name "emacs-magit-popup")
597 (version "2.12.4")
598 (source (origin
599 (method git-fetch)
600 (uri (git-reference
601 (url "https://github.com/magit/magit-popup.git")
602 (commit (string-append "v" version))))
603 (file-name (git-file-name name version))
604 (sha256
605 (base32
606 "08952nzn0cb6gxscqyiljk4fq2zxjvr3ism0lvgw0gs9hl5phiwx"))))
607 (build-system emacs-build-system)
608 (arguments
609 `(#:phases
610 (modify-phases %standard-phases
611 (add-before 'install 'make-info
612 (lambda _
613 (invoke "make" "info"))))))
614 (native-inputs
615 `(("texinfo" ,texinfo)))
616 (propagated-inputs
617 `(("emacs-dash" ,emacs-dash)))
618 (home-page "https://github.com/magit/magit-popup")
619 (synopsis "Define prefix-infix-suffix command combos")
620 (description
621 "This library implements a generic interface for toggling switches and
622 setting options and then invoking an Emacs command which does something with
623 these arguments. The prototypical use is for the command to call an external
624 process, passing on the arguments as command line arguments.")
625 (license license:gpl3+)))
626
627 (define-public emacs-ghub
628 (package
629 (name "emacs-ghub")
630 (version "2.0.1")
631 (source (origin
632 (method url-fetch)
633 (uri (string-append
634 "https://github.com/magit/ghub/archive/v"
635 version ".tar.gz"))
636 (file-name (string-append name "-" version ".tar.gz"))
637 (sha256
638 (base32
639 "0d0qj5r1bm2aidi61rigrdaycxnyb7y1ivb3h8rpvvapsf8sk7z0"))))
640 (build-system emacs-build-system)
641 (arguments
642 `(#:phases
643 (modify-phases %standard-phases
644 (add-before 'install 'make-info
645 (lambda _
646 (invoke "make" "info"))))))
647 (native-inputs
648 `(("texinfo" ,texinfo)))
649 (home-page "https://github.com/magit/ghub")
650 (synopsis "Emacs client library for Github API and Gitlab API")
651 (description
652 "This package provides 2 files: @file{ghub.el} and @file{glab.el},
653 which are the libraries that provide basic support for using the Github and
654 Gitlab APIs from Emacs packages. It abstracts access to API resources using
655 only a handful of functions that are not resource-specific.")
656 (license license:gpl3+)))
657
658 (define-public emacs-scribble-mode
659 (let ((commit "34e9e5edb921813b6483e0fefa848efb6ee4b314")
660 (version "0.0")
661 (revision 0))
662 (package
663 (name "emacs-scribble-mode")
664 (version (if (zero? revision)
665 version
666 (string-append version "-"
667 (number->string revision)
668 "." (string-take commit 7))))
669 (source (origin
670 (method git-fetch)
671 (uri (git-reference
672 (url "https://github.com/emacs-pe/scribble-mode.git")
673 (commit commit)))
674 (sha256
675 (base32
676 "0598byqpz2q6yi2q4dwd77jj9z3n99z34d3an51s9m2za0nh1qvp"))))
677 (build-system emacs-build-system)
678 (home-page "https://github.com/emacs-pe/scribble-mode")
679 (synopsis "Emacs mode for editing the Scribble documentation syntax.")
680 (description
681 "This package provides basic syntax highlighting and editing support
682 for editing Racket's Scribble documentation syntax in Emacs.")
683 (license license:gpl3+))))
684
685 (define-public emacs-haskell-mode
686 (package
687 (name "emacs-haskell-mode")
688 (version "16.1")
689 (source (origin
690 (method url-fetch)
691 (file-name (string-append name "-" version ".tar.gz"))
692 (uri (string-append
693 "https://github.com/haskell/haskell-mode/archive/v"
694 version ".tar.gz"))
695 (sha256
696 (base32 "0g6lcjw7lcgavv3yrd8xjcyqgfyjl787y32r1z14amw2f009m78h"))
697 (patches
698 (search-patches ; backport test failure fixes
699 "haskell-mode-unused-variables.patch"
700 "haskell-mode-make-check.patch"))))
701 (inputs
702 `(("emacs-el-search" ,emacs-el-search) ; for tests
703 ("emacs-stream" ,emacs-stream))) ; for tests
704 (propagated-inputs
705 `(("emacs-dash" ,emacs-dash)))
706 (native-inputs
707 `(("emacs" ,emacs-minimal)
708 ("texinfo" ,texinfo)))
709 (build-system gnu-build-system)
710 (arguments
711 `(#:make-flags (list (string-append "EMACS="
712 (assoc-ref %build-inputs "emacs")
713 "/bin/emacs"))
714 #:modules ((ice-9 match)
715 (srfi srfi-26)
716 ,@%gnu-build-system-modules)
717 #:phases
718 (modify-phases %standard-phases
719 (delete 'configure)
720 (add-before
721 'build 'pre-build
722 (lambda* (#:key inputs #:allow-other-keys)
723 (define (el-dir store-dir)
724 (match (find-files store-dir "\\.el$")
725 ((f1 f2 ...) (dirname f1))
726 (_ "")))
727
728 (let ((sh (string-append (assoc-ref inputs "bash") "/bin/sh")))
729 (define emacs-prefix? (cut string-prefix? "emacs-" <>))
730
731 (setenv "SHELL" "sh")
732 (setenv "EMACSLOADPATH"
733 (string-concatenate
734 (map (match-lambda
735 (((? emacs-prefix? name) . dir)
736 (string-append (el-dir dir) ":"))
737 (_ ""))
738 inputs)))
739 (substitute* (find-files "." "\\.el") (("/bin/sh") sh))
740 ;; embed filename to fix test failure
741 (let ((file "tests/haskell-cabal-tests.el"))
742 (substitute* file
743 (("\\(buffer-file-name\\)")
744 (format #f "(or (buffer-file-name) ~s)" file))))
745 #t)))
746 (replace
747 'install
748 (lambda* (#:key outputs #:allow-other-keys)
749 (let* ((out (assoc-ref outputs "out"))
750 (el-dir (string-append out "/share/emacs/site-lisp"))
751 (doc (string-append
752 out "/share/doc/haskell-mode-" ,version))
753 (info (string-append out "/share/info")))
754 (define (copy-to-dir dir files)
755 (for-each (lambda (f)
756 (install-file f dir))
757 files))
758
759 (with-directory-excursion "doc"
760 (invoke "makeinfo" "haskell-mode.texi")
761 (install-file "haskell-mode.info" info))
762 (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md"))
763 (copy-to-dir el-dir (find-files "." "\\.elc?"))
764 ;; These are part of other packages.
765 (with-directory-excursion el-dir
766 (for-each delete-file '("dash.el" "ert.el")))
767 #t))))))
768 (home-page "https://github.com/haskell/haskell-mode")
769 (synopsis "Haskell mode for Emacs")
770 (description
771 "This is an Emacs mode for editing, debugging and developing Haskell
772 programs.")
773 (license license:gpl3+)))
774
775 (define-public haskell-mode
776 (deprecated-package "haskell-mode" emacs-haskell-mode))
777
778 (define-public emacs-flycheck
779 (package
780 (name "emacs-flycheck")
781 (version "31")
782 (source (origin
783 (method url-fetch)
784 (uri (string-append
785 "https://github.com/flycheck/flycheck/releases/download/"
786 version "/flycheck-" version ".tar"))
787 (sha256
788 (base32
789 "01rnwan16m7cyyrfca3c5c60mbj2r3knkpzbhji2fczsf0wns240"))
790 (modules '((guix build utils)))
791 (snippet `(begin
792 ;; Change 'flycheck-version' so that it does not
793 ;; attempt to get its version from pkg-info.el.
794 (substitute* "flycheck.el"
795 (("\\(pkg-info-version-info 'flycheck\\)")
796 (string-append "\"" ,version "\"")))
797 #t))))
798 (build-system emacs-build-system)
799 (propagated-inputs
800 `(("emacs-dash" ,emacs-dash)))
801 (home-page "https://www.flycheck.org")
802 (synopsis "On-the-fly syntax checking")
803 (description
804 "This package provides on-the-fly syntax checking for GNU Emacs. It is a
805 replacement for the older Flymake extension which is part of GNU Emacs, with
806 many improvements and additional features.
807
808 Flycheck provides fully-automatic, fail-safe, on-the-fly background syntax
809 checking for over 30 programming and markup languages with more than 70
810 different tools. It highlights errors and warnings inline in the buffer, and
811 provides an optional IDE-like error list.")
812 (license license:gpl3+))) ;+GFDLv1.3+ for the manual
813
814 (define-public emacs-a
815 (package
816 (name "emacs-a")
817 (version "0.1.1")
818 (source (origin
819 (method git-fetch)
820 (uri (git-reference
821 (url "https://github.com/plexus/a.el.git")
822 (commit (string-append "v" version))))
823 (file-name (git-file-name name version))
824 (sha256
825 (base32
826 "00v9w6qg3bkwdhypq0ssf0phdh0f4bcq59c20lngd6vhk0204dqi"))))
827 (build-system emacs-build-system)
828 (home-page "https://github.com/plexus/a.el/")
829 (synopsis
830 "Emacs library for dealing with association lists and hash tables")
831 (description "@code{emacs-a} provides Emacs Lisp functions for dealing
832 with associative structures in a uniform and functional way. These functions
833 can take association lists, hash tables, and in some cases vectors (where the
834 index is considered the key).")
835 (license license:gpl3+)))
836
837 \f
838 ;;;
839 ;;; Web browsing.
840 ;;;
841
842 (define-public emacs-w3m
843 ;; Emacs-w3m follows a "rolling release" model from its CVS repo. We could
844 ;; use CVS, sure, but instead we choose to use this Git mirror described on
845 ;; the home page as an "unofficial" mirror.
846 (let ((commit "0dd5691f46d314a84da63f3a7277d721815811a2"))
847 (package
848 (name "emacs-w3m")
849 (version (git-version "1.5" "0" commit))
850 (source (origin
851 (method git-fetch)
852 (uri (git-reference
853 (url "https://github.com/ecbrown/emacs-w3m")
854 (commit commit)))
855 (sha256
856 (base32
857 "02xalyxbrkgl4n8nj7xxkmsbm6lshhwdc8bzs2l4wz3hkpgkj7x4"))))
858 (build-system gnu-build-system)
859 (native-inputs `(("autoconf" ,autoconf)
860 ("texinfo" ,texinfo)
861 ("emacs" ,emacs-minimal)))
862 (inputs `(("w3m" ,w3m)
863 ("imagemagick" ,imagemagick)))
864 (arguments
865 `(#:modules ((guix build gnu-build-system)
866 (guix build utils)
867 (guix build emacs-utils))
868 #:imported-modules (,@%gnu-build-system-modules
869 (guix build emacs-utils))
870 #:configure-flags
871 (let ((out (assoc-ref %outputs "out")))
872 (list (string-append "--with-lispdir="
873 out "/share/emacs/site-lisp")
874 (string-append "--with-icondir="
875 out "/share/images/emacs-w3m")
876 ;; Leave .el files uncompressed, otherwise GC can't
877 ;; identify run-time dependencies. See
878 ;; <http://lists.gnu.org/archive/html/guix-devel/2015-12/msg00208.html>
879 "--without-compress-install"))
880 #:tests? #f ; no check target
881 #:phases
882 (modify-phases %standard-phases
883 (add-after 'unpack 'autoconf
884 (lambda _
885 (invoke "autoconf")))
886 (add-before 'configure 'support-emacs!
887 (lambda _
888 ;; For some reason 'AC_PATH_EMACS' thinks that 'Emacs 26' is
889 ;; unsupported.
890 (substitute* "configure"
891 (("EMACS_FLAVOR=unsupported")
892 "EMACS_FLAVOR=emacs"))
893 #t))
894 (add-before 'build 'patch-exec-paths
895 (lambda* (#:key inputs outputs #:allow-other-keys)
896 (let ((out (assoc-ref outputs "out"))
897 (w3m (assoc-ref inputs "w3m"))
898 (imagemagick (assoc-ref inputs "imagemagick"))
899 (coreutils (assoc-ref inputs "coreutils")))
900 (make-file-writable "w3m.el")
901 (emacs-substitute-variables "w3m.el"
902 ("w3m-command" (string-append w3m "/bin/w3m"))
903 ("w3m-touch-command"
904 (string-append coreutils "/bin/touch"))
905 ("w3m-icon-directory"
906 (string-append out "/share/images/emacs-w3m")))
907 (make-file-writable "w3m-image.el")
908 (emacs-substitute-variables "w3m-image.el"
909 ("w3m-imagick-convert-program"
910 (string-append imagemagick "/bin/convert"))
911 ("w3m-imagick-identify-program"
912 (string-append imagemagick "/bin/identify")))
913 #t)))
914 (replace 'install
915 (lambda* (#:key outputs #:allow-other-keys)
916 (invoke "make" "install" "install-icons")
917 (with-directory-excursion
918 (string-append (assoc-ref outputs "out")
919 "/share/emacs/site-lisp")
920 (for-each delete-file '("ChangeLog" "ChangeLog.1"))
921 (symlink "w3m-load.el" "w3m-autoloads.el")
922 #t))))))
923 (home-page "http://emacs-w3m.namazu.org/")
924 (synopsis "Simple Web browser for Emacs based on w3m")
925 (description
926 "Emacs-w3m is an emacs interface for the w3m web browser.")
927 (license license:gpl2+))))
928
929 (define-public emacs-wget
930 (package
931 (name "emacs-wget")
932 (version "0.5.0")
933 (source (origin
934 (method url-fetch)
935 (uri (string-append "mirror://debian/pool/main/w/wget-el/wget-el_"
936 version ".orig.tar.gz"))
937 (sha256
938 (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff"))))
939 (build-system gnu-build-system)
940 (inputs `(("wget" ,wget)))
941 (native-inputs `(("emacs" ,emacs-minimal)))
942 (arguments
943 `(#:modules ((guix build gnu-build-system)
944 (guix build utils)
945 (guix build emacs-utils))
946 #:imported-modules (,@%gnu-build-system-modules
947 (guix build emacs-utils))
948 #:tests? #f ; no check target
949 #:phases
950 (modify-phases %standard-phases
951 (replace 'configure
952 (lambda* (#:key outputs #:allow-other-keys)
953 (substitute* "Makefile"
954 (("/usr/local") (assoc-ref outputs "out"))
955 (("/site-lisp/emacs-wget") "/site-lisp"))
956 #t))
957 (add-before 'build 'patch-exec-paths
958 (lambda* (#:key inputs outputs #:allow-other-keys)
959 (let ((wget (assoc-ref inputs "wget")))
960 (emacs-substitute-variables "wget.el"
961 ("wget-command" (string-append wget "/bin/wget"))))
962 #t))
963 (add-after 'install 'post-install
964 (lambda* (#:key outputs #:allow-other-keys)
965 (emacs-generate-autoloads
966 "wget" (string-append (assoc-ref outputs "out")
967 "/share/emacs/site-lisp/"))
968 #t)))))
969 (home-page "http://www.emacswiki.org/emacs/EmacsWget")
970 (synopsis "Simple file downloader for Emacs based on wget")
971 (description
972 "Emacs-wget is an emacs interface for the wget file downloader.")
973 (license license:gpl2+)))
974
975 \f
976 ;;;
977 ;;; Multimedia.
978 ;;;
979
980 (define-public emacs-emms
981 (package
982 (name "emacs-emms")
983 (version "5.1")
984 (source (origin
985 (method url-fetch)
986 (uri (string-append "mirror://gnu/emms/emms-"
987 version ".tar.gz"))
988 (sha256
989 (base32
990 "149ddczyx6x10zn4mn8g0rll1rwf4yciv8x6j0qdnlbwszblx2x6"))
991 (modules '((guix build utils)))
992 (snippet
993 '(begin
994 (substitute* "Makefile"
995 (("/usr/bin/install-info")
996 ;; No need to use 'install-info' since it would create a
997 ;; useless 'dir' file.
998 "true")
999 (("^INFODIR=.*")
1000 ;; Install Info files to $out/share/info, not $out/info.
1001 "INFODIR := $(PREFIX)/share/info\n")
1002 (("/site-lisp/emms")
1003 ;; Install directly in share/emacs/site-lisp, not in a
1004 ;; sub-directory.
1005 "/site-lisp")
1006 (("^all: (.*)\n" _ rest)
1007 ;; Build 'emms-print-metadata'.
1008 (string-append "all: " rest " emms-print-metadata\n")))
1009 #t))))
1010 (build-system gnu-build-system)
1011 (arguments
1012 `(#:modules ((guix build gnu-build-system)
1013 (guix build utils)
1014 (guix build emacs-utils)
1015 (ice-9 ftw))
1016 #:imported-modules (,@%gnu-build-system-modules
1017 (guix build emacs-utils))
1018
1019 #:phases
1020 (modify-phases %standard-phases
1021 (replace 'configure
1022 (lambda* (#:key inputs outputs #:allow-other-keys)
1023 (let ((out (assoc-ref outputs "out"))
1024 (flac (assoc-ref inputs "flac"))
1025 (vorbis (assoc-ref inputs "vorbis-tools"))
1026 (alsa (assoc-ref inputs "alsa-utils"))
1027 (mpg321 (assoc-ref inputs "mpg321"))
1028 (mp3info (assoc-ref inputs "mp3info"))
1029 (opus (assoc-ref inputs "opus-tools")))
1030 ;; Specify the installation directory.
1031 (substitute* "Makefile"
1032 (("PREFIX=.*$")
1033 (string-append "PREFIX := " out "\n")))
1034
1035 (setenv "SHELL" (which "sh"))
1036 (setenv "CC" "gcc")
1037
1038 ;; Specify the absolute file names of the various
1039 ;; programs so that everything works out-of-the-box.
1040 (with-directory-excursion "lisp"
1041 (emacs-substitute-variables
1042 "emms-player-mpg321-remote.el"
1043 ("emms-player-mpg321-remote-command"
1044 (string-append mpg321 "/bin/mpg321")))
1045 (substitute* "emms-player-simple.el"
1046 (("\"ogg123\"")
1047 (string-append "\"" vorbis "/bin/ogg123\"")))
1048 (substitute* "emms-player-simple.el"
1049 (("\"mpg321\"")
1050 (string-append "\"" mpg321 "/bin/mpg321\"")))
1051 (emacs-substitute-variables "emms-info-ogginfo.el"
1052 ("emms-info-ogginfo-program-name"
1053 (string-append vorbis "/bin/ogginfo")))
1054 (emacs-substitute-variables "emms-info-opusinfo.el"
1055 ("emms-info-opusinfo-program-name"
1056 (string-append opus "/bin/opusinfo")))
1057 (emacs-substitute-variables "emms-info-libtag.el"
1058 ("emms-info-libtag-program-name"
1059 (string-append out "/bin/emms-print-metadata")))
1060 (emacs-substitute-variables "emms-info-mp3info.el"
1061 ("emms-info-mp3info-program-name"
1062 (string-append mp3info "/bin/mp3info")))
1063 (emacs-substitute-variables "emms-info-metaflac.el"
1064 ("emms-info-metaflac-program-name"
1065 (string-append flac "/bin/metaflac")))
1066 (emacs-substitute-variables "emms-source-file.el"
1067 ("emms-source-file-gnu-find" (which "find")))
1068 (substitute* "emms-volume-amixer.el"
1069 (("\"amixer\"")
1070 (string-append "\"" alsa "/bin/amixer\"")))
1071 (substitute* "emms-tag-editor.el"
1072 (("\"mp3info\"")
1073 (string-append "\"" mp3info "/bin/mp3info\"")))))))
1074 (add-before 'install 'pre-install
1075 (lambda* (#:key outputs #:allow-other-keys)
1076 ;; The 'install' rule expects the target directories to exist.
1077 (let* ((out (assoc-ref outputs "out"))
1078 (bin (string-append out "/bin"))
1079 (man1 (string-append out "/share/man/man1")))
1080 (mkdir-p bin)
1081 (mkdir-p man1)
1082
1083 ;; Ensure that files are not rejected by gzip
1084 (let ((early-1980 315619200)) ; 1980-01-02 UTC
1085 (ftw "." (lambda (file stat flag)
1086 (unless (<= early-1980 (stat:mtime stat))
1087 (utime file early-1980 early-1980))
1088 #t)))
1089 #t)))
1090 (add-after 'install 'post-install
1091 (lambda* (#:key outputs #:allow-other-keys)
1092 (let ((out (assoc-ref outputs "out")))
1093 (symlink "emms-auto.el"
1094 (string-append out "/share/emacs/site-lisp/"
1095 "emms-autoloads.el")))
1096 #t)))
1097 #:tests? #f))
1098 (native-inputs `(("emacs" ,emacs-minimal) ;for (guix build emacs-utils)
1099 ("texinfo" ,texinfo)))
1100 (inputs `(("alsa-utils" ,alsa-utils)
1101 ("flac" ,flac) ;for metaflac
1102 ("vorbis-tools" ,vorbis-tools)
1103 ("mpg321" ,mpg321)
1104 ("taglib" ,taglib)
1105 ("mp3info" ,mp3info)
1106 ("opus-tools" ,opus-tools)))
1107 (properties '((upstream-name . "emms")))
1108 (synopsis "Emacs Multimedia System")
1109 (description
1110 "EMMS is the Emacs Multimedia System. It is a small front-end which
1111 can control one of the supported external players. Thus, it supports
1112 whatever formats are supported by your music player. It also
1113 supports tagging and playlist management, all behind a clean and
1114 light user interface.")
1115 (home-page "https://www.gnu.org/software/emms/")
1116 (license license:gpl3+)))
1117
1118 (define-public emacs-emms-player-mpv
1119 ;; A new mpv backend is included in Emms from 5.0.
1120 (deprecated-package "emacs-emms-player-mpv" emacs-emms))
1121
1122 (define-public emacs-emms-mode-line-cycle
1123 (package
1124 (name "emacs-emms-mode-line-cycle")
1125 (version "0.2.5")
1126 (source
1127 (origin
1128 (method url-fetch)
1129 (uri (string-append "https://github.com/momomo5717/emms-mode-line-cycle"
1130 "/archive/" version ".tar.gz"))
1131 (file-name (string-append name "-" version ".tar.gz"))
1132 (sha256
1133 (base32
1134 "0ifszi930pnaxk1x8pcydmvnp06868gc7nfx14q17zbajbx735k6"))))
1135 (build-system emacs-build-system)
1136 (propagated-inputs
1137 `(("emms" ,emacs-emms)))
1138 (home-page "https://github.com/momomo5717/emms-mode-line-cycle")
1139 (synopsis "Display the EMMS mode line as a ticker")
1140 (description
1141 "This is a minor mode for updating the EMMS mode-line string cyclically
1142 within a specified width. It is useful for displaying long track titles.")
1143 (license license:gpl3+)))
1144
1145 \f
1146 ;;;
1147 ;;; Miscellaneous.
1148 ;;;
1149
1150 (define-public emacs-bbdb
1151 (package
1152 (name "emacs-bbdb")
1153 (version "3.1.2")
1154 (source (origin
1155 (method url-fetch)
1156 (uri (string-append "mirror://savannah/bbdb/bbdb-"
1157 version ".tar.gz"))
1158 (sha256
1159 (base32
1160 "1gs16bbpiiy01w9pyg12868r57kx1v3hnw04gmqsmpc40l1hyy05"))
1161 (modules '((guix build utils)))
1162 (snippet
1163 ;; We don't want to build and install the PDF.
1164 '(begin
1165 (substitute* "doc/Makefile.in"
1166 (("^doc_DATA = .*$")
1167 "doc_DATA =\n"))
1168 #t))))
1169 (build-system gnu-build-system)
1170 (arguments
1171 '(#:phases
1172 (modify-phases %standard-phases
1173 (add-after 'install 'post-install
1174 (lambda* (#:key outputs #:allow-other-keys)
1175 ;; Add an autoloads file with the right name for guix.el.
1176 (let* ((out (assoc-ref outputs "out"))
1177 (site (string-append out "/share/emacs/site-lisp")))
1178 (with-directory-excursion site
1179 (symlink "bbdb-loaddefs.el" "bbdb-autoloads.el")))
1180 #t)))))
1181 (native-inputs `(("emacs" ,emacs-minimal)))
1182 (home-page "https://savannah.nongnu.org/projects/bbdb/")
1183 (synopsis "Contact management utility for Emacs")
1184 (description
1185 "BBDB is the Insidious Big Brother Database for GNU Emacs. It provides
1186 an address book for email and snail mail addresses, phone numbers and the
1187 like. It can be linked with various Emacs mail clients (Message and Mail
1188 mode, Rmail, Gnus, MH-E, and VM). BBDB is fully customizable.")
1189 (license license:gpl3+)))
1190
1191 (define-public bbdb
1192 (deprecated-package "bbdb" emacs-bbdb))
1193
1194 (define-public emacs-aggressive-indent
1195 (package
1196 (name "emacs-aggressive-indent")
1197 (version "1.8.3")
1198 (source (origin
1199 (method url-fetch)
1200 (uri (string-append "https://elpa.gnu.org/packages/"
1201 "aggressive-indent-" version ".el"))
1202 (sha256
1203 (base32
1204 "0jnzccl50x0wapprgwxinp99pwwa6j43q6msn4gv437j7swy8wnj"))))
1205 (build-system emacs-build-system)
1206 (home-page "https://elpa.gnu.org/packages/aggressive-indent.html")
1207 (synopsis "Minor mode to aggressively keep your code always indented")
1208 (description
1209 "@code{aggressive-indent-mode} is a minor mode that keeps your code
1210 always indented. It reindents after every change, making it more reliable
1211 than @code{electric-indent-mode}.")
1212 (license license:gpl2+)))
1213
1214 (define-public emacs-ag
1215 (package
1216 (name "emacs-ag")
1217 (version "0.47")
1218 (source (origin
1219 (method url-fetch)
1220 (uri (string-append
1221 "https://github.com/Wilfred/ag.el/archive/"
1222 version ".tar.gz"))
1223 (file-name (string-append name "-" version ".tar.gz"))
1224 (sha256
1225 (base32
1226 "1rlmp6wnyhqfg86dbz17r914msp58favn4kd4yrdwyia265a4lar"))))
1227 (build-system emacs-build-system)
1228 (arguments
1229 `(#:phases
1230 (modify-phases %standard-phases
1231 (add-before 'install 'make-info
1232 (lambda _
1233 (with-directory-excursion "docs"
1234 (invoke "make" "info"))))
1235 (add-after 'install 'install-info
1236 (lambda* (#:key outputs #:allow-other-keys)
1237 (let* ((out (assoc-ref outputs "out"))
1238 (info (string-append out "/share/info")))
1239 (install-file "docs/_build/texinfo/agel.info" info)
1240 #t))))))
1241 (native-inputs
1242 `(("python-sphinx" ,python-sphinx)
1243 ("texinfo" ,texinfo)))
1244 (propagated-inputs
1245 `(("dash" ,emacs-dash)
1246 ("s" ,emacs-s)
1247 ;; We need to use 'ag' as the executable on remote systems.
1248 ("the-silver-searcher" ,the-silver-searcher)))
1249 (home-page "https://github.com/Wilfred/ag.el")
1250 (synopsis "Front-end for ag (the-silver-searcher) for Emacs")
1251 (description "This package provides the ability to use the silver
1252 searcher, a code searching tool, sometimes abbreviated to @code{ag}. Features
1253 include version control system awareness, use of Perl compatible regular
1254 expressions, editing the search results directly and searching file names
1255 rather than the contents of files.")
1256 (license license:gpl3+)))
1257
1258 (define-public emacs-async
1259 (package
1260 (name "emacs-async")
1261 (home-page "https://github.com/jwiegley/emacs-async")
1262 (version "1.9.3")
1263 (source (origin
1264 (method git-fetch)
1265 (uri (git-reference
1266 (url home-page)
1267 (commit (string-append "v" version))))
1268 (file-name (git-file-name name version))
1269 (sha256
1270 (base32
1271 "1zsnb6dy8p6y68xgidv3dfxaga4biramfw8fq7wac0sc50vc98vq"))))
1272 (build-system emacs-build-system)
1273 (synopsis "Asynchronous processing in Emacs")
1274 (description
1275 "This package provides the ability to call asynchronous functions and
1276 processes. For example, it can be used to run dired commands (for copying,
1277 moving, etc.) asynchronously using @code{dired-async-mode}. Also it is used
1278 as a library for other Emacs packages.")
1279 (license license:gpl3+)))
1280
1281 (define-public emacs-auctex
1282 (package
1283 (name "emacs-auctex")
1284 (version "12.1.0")
1285 (source
1286 (origin
1287 (method url-fetch)
1288 (uri (string-append
1289 "https://elpa.gnu.org/packages/auctex-"
1290 version
1291 ".tar"))
1292 (sha256
1293 (base32
1294 "0iy5x61xqkxaph2hq64sg50l1c6yp6qhzppwadayxkdz00b46sas"))))
1295 (build-system emacs-build-system)
1296 ;; We use 'emacs' because AUCTeX requires dbus at compile time
1297 ;; ('emacs-minimal' does not provide dbus).
1298 (arguments
1299 `(#:emacs ,emacs
1300 #:include '("\\.el$" "^images/" "^latex/" "\\.info$")
1301 #:exclude '("^tests/" "^latex/README")))
1302 (native-inputs
1303 `(("perl" ,perl)))
1304 (home-page "https://www.gnu.org/software/auctex/")
1305 (synopsis "Integrated environment for TeX")
1306 (description
1307 "AUCTeX is a comprehensive customizable integrated environment for
1308 writing input files for TeX, LaTeX, ConTeXt, Texinfo, and docTeX using Emacs
1309 or XEmacs.")
1310 (license license:gpl3+)))
1311
1312 (define-public emacs-autothemer
1313 (package
1314 (name "emacs-autothemer")
1315 (version "0.2.2")
1316 (source
1317 (origin
1318 (method url-fetch)
1319 (uri (string-append "https://github.com/sebastiansturm/autothemer/archive/"
1320 version ".tar.gz"))
1321 (file-name (string-append name "-" version ".tar.gz"))
1322 (sha256
1323 (base32
1324 "0rd28r9wfrbll212am4ih9hrvypx785aff76va2cbfxdwm9kixsa"))))
1325 (build-system emacs-build-system)
1326 (propagated-inputs
1327 `(("emacs-dash" ,emacs-dash)))
1328 (home-page "https://github.com/sebastiansturm/autothemer")
1329 (synopsis "Conveniently create Emacs themes")
1330 (description
1331 "Autothemer provides a thin layer on top of @code{deftheme} and
1332 @code{custom-theme-set-faces} that creates a new custom color theme, based on
1333 a set of simplified face specifications and a user-supplied color palette")
1334 (license license:gpl3+)))
1335
1336 (define-public emacs-howm
1337 (package
1338 (name "emacs-howm")
1339 (version "1.4.4")
1340 (source
1341 (origin
1342 (method url-fetch)
1343 (uri (string-append "http://howm.sourceforge.jp/a/howm-"
1344 version ".tar.gz"))
1345 (sha256
1346 (base32
1347 "0ddm91l6z58j7x59fa966j6q1rg4cinyza4r8ibg80hprn5h31qk"))))
1348 (build-system gnu-build-system)
1349 (native-inputs
1350 `(("emacs" ,emacs-minimal)))
1351 (arguments
1352 `(#:configure-flags
1353 (list (string-append "--with-howmdir=" %output
1354 "/share/emacs/site-lisp/guix.d/howm-" ,version))
1355 #:modules ((guix build gnu-build-system)
1356 ((guix build emacs-build-system) #:prefix emacs:)
1357 (guix build utils))
1358 #:imported-modules (,@%gnu-build-system-modules
1359 (guix build emacs-build-system)
1360 (guix build emacs-utils))
1361 #:phases
1362 (modify-phases %standard-phases
1363 (add-after 'rename-lispdir 'make-autoloads
1364 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
1365 (home-page "http://howm.osdn.jp/")
1366 (synopsis "Note-taking tool for Emacs")
1367 (description "Howm is a note-taking tool for Emacs. Like
1368 code@{emacs-wiki.el}, it facilitates using hyperlinks and doing full-text
1369 searches. Unlike code@{emacs-wiki.el}, it can be combined with any format.")
1370 (license license:gpl1+)))
1371
1372 (define-public emacs-calfw
1373 (package
1374 (name "emacs-calfw")
1375 (version "1.5")
1376 (source
1377 (origin
1378 (method url-fetch)
1379 (uri (string-append
1380 "https://github.com/kiwanami/emacs-calfw/archive/v"
1381 version ".tar.gz"))
1382 (file-name (string-append name "-" version ".tar.gz"))
1383 (sha256
1384 (base32
1385 "17ssg8gx66yp63nhygjq2r6kgl4h45cacmrxsxs9f0lrfcx37k0l"))))
1386 (build-system emacs-build-system)
1387 (propagated-inputs
1388 `(("emacs-howm" ,emacs-howm)))
1389 (home-page "https://github.com/kiwanami/emacs-calfw/")
1390 (synopsis "Calendar framework for Emacs")
1391 (description
1392 "This package displays a calendar view with various schedule data in the
1393 Emacs buffer.")
1394 (license license:gpl3+)))
1395
1396 (define-public emacs-direnv
1397 (package
1398 (name "emacs-direnv")
1399 (version "1.2.0")
1400 (source
1401 (origin
1402 (method url-fetch)
1403 (uri (string-append
1404 "https://github.com/wbolster/emacs-direnv/archive/"
1405 version ".tar.gz"))
1406 (file-name (string-append name "-" version ".tar.gz"))
1407 (sha256
1408 (base32
1409 "0m9nxawklhiiysyibzzhh2zkxgq1fskqvaqb06f7r8dnhabfy9fr"))))
1410 (build-system emacs-build-system)
1411 (propagated-inputs
1412 `(("dash" ,emacs-dash)
1413 ("with-editor" ,emacs-with-editor)))
1414 (home-page "https://github.com/wbolster/emacs-direnv")
1415 (synopsis "Direnv integration for Emacs")
1416 (description
1417 "This package provides support for invoking direnv to get the environment
1418 for the current file and updating the environment within Emacs to match.
1419
1420 Direnv can be invoked manually, and a global minor mode is included that will
1421 update the environment when the active buffer changes.
1422
1423 Using emacs-direnv means that programs started from Emacs will use the
1424 environment set through Direnv.")
1425 (license license:gpl3+)))
1426
1427 (define-public emacs-ggtags
1428 (package
1429 (name "emacs-ggtags")
1430 (version "0.8.13")
1431 (source
1432 (origin
1433 (method url-fetch)
1434 (uri (string-append "http://elpa.gnu.org/packages/ggtags-"
1435 version ".el"))
1436 (sha256
1437 (base32
1438 "1qa7lcrcmf76sf6dy8sxbg4adq7rg59fm0n5848w3qxgsr0h45fg"))))
1439 (build-system emacs-build-system)
1440 (home-page "https://github.com/leoliu/ggtags")
1441 (synopsis "Frontend to the GNU Global source code tagging system")
1442 (description "@code{ggtags} provides a frontend to the GNU Global source
1443 code tagging system.
1444
1445 Features:
1446
1447 @itemize
1448 @item Build on @code{compile.el} for asynchronicity and its large feature-set.
1449 @item Automatically update Global's tag files when needed with tuning for
1450 large source trees.
1451 @item Intuitive navigation among multiple matches with mode-line display of
1452 current match, total matches and exit status.
1453 @item Read tag with completion.
1454 @item Show definition at point.
1455 @item Jump to #include files.
1456 @item Support search history and saving a search to register/bookmark.
1457 @item Query replace.
1458 @item Manage Global's environment variables on a per-project basis.
1459 @item Highlight (definition) tag at point.
1460 @item Abbreviated display of file names.
1461 @item Support all Global search backends: @code{grep}, @code{idutils}, etc.
1462 @item Support exuberant ctags @url{http://ctags.sourceforge.net/} and
1463 @code{pygments} backend.
1464 @item Support all Global's output formats: @code{grep}, @code{ctags-x},
1465 @code{cscope} etc.
1466 @item Support projects on remote hosts (e.g. via @code{tramp}).
1467 @item Support eldoc.
1468 @item Search @code{GTAGSLIBPATH} for references and symbols.
1469 @end itemize\n")
1470 (license license:gpl3+)))
1471
1472 (define-public emacs-go-mode
1473 (package
1474 (name "emacs-go-mode")
1475 (version "1.5.0")
1476 (source (origin
1477 (method url-fetch)
1478 (uri (string-append "https://github.com/dominikh/go-mode.el/"
1479 "archive/v" version ".tar.gz"))
1480 (file-name (string-append name "-" version ".tar.gz"))
1481 (sha256
1482 (base32
1483 "1adngbjyb8qnwg7n6r2y31djw9j6qf3b9fi63zd85035q7x4ljnm"))))
1484 (build-system emacs-build-system)
1485 (home-page "https://github.com/dominikh/go-mode.el")
1486 (synopsis "Go mode for Emacs")
1487 (description
1488 "This package provides go-mode, an Emacs mode for working with software
1489 written in the Go programming language.")
1490 (license license:bsd-3)))
1491
1492 (define-public emacs-google-maps
1493 (package
1494 (name "emacs-google-maps")
1495 (version "1.0.0")
1496 (source (origin
1497 (method url-fetch)
1498 (uri (string-append "https://github.com/jd/google-maps.el/"
1499 "archive/" version ".tar.gz"))
1500 (file-name (string-append name "-" version ".tar.gz"))
1501 (sha256
1502 (base32
1503 "014bxapm4d8vjxbzrfjdpsavxyfx981mlcb10aq5rmigr6il8ybs"))))
1504 (build-system emacs-build-system)
1505 (home-page "https://github.com/jd/google-maps.el")
1506 (synopsis "Access Google Maps from Emacs")
1507 (description "The @code{google-maps} package allows to display Google
1508 Maps directly inside Emacs.")
1509 (license license:gpl3+)))
1510
1511 (define-public emacs-graphviz-dot-mode
1512 (let ((commit "c456a2b65c734089e6c44e87209a5a432a741b1a")
1513 (revision "1"))
1514 (package
1515 (name "emacs-graphviz-dot-mode")
1516 (version (string-append "0.3.11-" revision "."
1517 (string-take commit 7)))
1518 (source (origin
1519 (method git-fetch)
1520 (uri (git-reference
1521 (url "https://github.com/ppareit/graphviz-dot-mode.git")
1522 (commit commit)))
1523 (file-name (string-append name "-" version "-checkout"))
1524 (sha256
1525 (base32
1526 "0j1r2rspaakw37b0mx7pwpvdsvixq9sw3xjbww5piihzpdxz58z1"))))
1527 (build-system emacs-build-system)
1528 (arguments
1529 `(#:phases
1530 (modify-phases %standard-phases
1531 (add-before 'install 'make-info
1532 (lambda* (#:key inputs #:allow-other-keys)
1533 (with-directory-excursion "texinfo"
1534 (substitute* "Makefile"
1535 (("\\/usr\\/bin\\/gzip")
1536 (string-append (assoc-ref inputs "gzip") "/bin/gzip")))
1537 (invoke "make"
1538 "clean"
1539 "info"
1540 (string-append "TEXINFODIR="
1541 (assoc-ref inputs "texinfo")
1542 "/bin")))))
1543 (add-after 'install 'install-info
1544 (lambda* (#:key outputs #:allow-other-keys)
1545 (let* ((out (assoc-ref outputs "out"))
1546 (info (string-append out "/share/info")))
1547 (install-file "texinfo/graphviz-dot-mode.info.gz" info)
1548 #t))))))
1549 (native-inputs
1550 `(("texinfo" ,texinfo)
1551 ("gzip" ,gzip)))
1552 (home-page "http://ppareit.github.com/graphviz-dot-mode")
1553 (synopsis "Major mode for editing Graphviz Dot files")
1554 (description
1555 "This Emacs packages helps you to create @file{.dot} or @file{.gv}
1556 files using the dot syntax, and use Graphviz to convert these files to
1557 diagrams.")
1558 (license license:gpl2+))))
1559
1560 (define-public emacs-mmm-mode
1561 (package
1562 (name "emacs-mmm-mode")
1563 (version "0.5.5")
1564 (source
1565 (origin
1566 (method url-fetch)
1567 (uri (string-append
1568 "https://github.com/purcell/mmm-mode/archive/"
1569 version ".tar.gz"))
1570 (file-name (string-append name "-" version ".tar.gz"))
1571 (sha256
1572 (base32
1573 "0c5ing3hcr74k78hqhrfwiv6m3n8hqfrw89j2x34vf60f4iyqzqc"))))
1574 (build-system gnu-build-system)
1575 (arguments
1576 '(#:phases
1577 (modify-phases %standard-phases
1578 (add-after 'unpack 'autogen
1579 (lambda _
1580 (invoke "sh" "autogen.sh"))))))
1581 (native-inputs
1582 `(("autoconf" ,autoconf)
1583 ("automake" ,automake)
1584 ("emacs" ,emacs-minimal)
1585 ("texinfo" ,texinfo)))
1586 (home-page "https://github.com/purcell/mmm-mode")
1587 (synopsis "Allow multiple major modes in an Emacs buffer")
1588 (description
1589 "MMM Mode is a minor mode that allows multiple major modes to coexist in a
1590 single buffer.")
1591 (license license:gpl3+)))
1592
1593 (define-public emacs-tablist
1594 (package
1595 (name "emacs-tablist")
1596 (version "0.70")
1597 (source (origin
1598 (method url-fetch)
1599 (uri (string-append
1600 "https://github.com/politza/tablist/archive/v"
1601 version ".tar.gz"))
1602 (file-name (string-append name "-" version ".tar.gz"))
1603 (sha256
1604 (base32
1605 "177d6s7ym1mwz1nhnl09r14z3n093g9a2szm97xsaig0c204xz9c"))))
1606 (build-system emacs-build-system)
1607 (home-page "https://github.com/politza/tablist")
1608 (synopsis "Extension for @code{tabulated-list-mode}")
1609 (description "Tablist is the Emacs package that provides several
1610 additional features to @code{tabulated-list-mode}: it adds marks,
1611 filters, new key bindings and faces. It can be enabled by
1612 @code{tablist-mode} or @code{tablist-minor-mode} commands.")
1613 (license license:gpl3+)))
1614
1615 (define-public emacs-pdf-tools
1616 (package
1617 (name "emacs-pdf-tools")
1618 (version "0.80")
1619 (source (origin
1620 (method url-fetch)
1621 (uri (string-append
1622 "https://github.com/politza/pdf-tools/archive/v"
1623 version ".tar.gz"))
1624 (file-name (string-append name "-" version ".tar.gz"))
1625 (sha256
1626 (base32
1627 "06imydn3a92vr57azpn1zhqc14kxyyslmyi9ldsyphan9b724gb6"))))
1628 (build-system gnu-build-system)
1629 (arguments
1630 `(#:tests? #f ; there are no tests
1631 #:modules ((guix build gnu-build-system)
1632 ((guix build emacs-build-system) #:prefix emacs:)
1633 (guix build utils)
1634 (guix build emacs-utils))
1635 #:imported-modules (,@%gnu-build-system-modules
1636 (guix build emacs-build-system)
1637 (guix build emacs-utils))
1638 #:phases
1639 (modify-phases %standard-phases
1640 ;; Build server side using 'gnu-build-system'.
1641 (add-after 'unpack 'enter-server-dir
1642 (lambda _ (chdir "server") #t))
1643 (add-after 'enter-server-dir 'autogen
1644 (lambda _
1645 (invoke "bash" "autogen.sh")))
1646
1647 ;; Build emacs side using 'emacs-build-system'.
1648 (add-after 'compress-documentation 'enter-lisp-dir
1649 (lambda _ (chdir "../lisp") #t))
1650 (add-after 'enter-lisp-dir 'emacs-patch-variables
1651 (lambda* (#:key outputs #:allow-other-keys)
1652 ;; Set path to epdfinfo program.
1653 (emacs-substitute-variables "pdf-info.el"
1654 ("pdf-info-epdfinfo-program"
1655 (string-append (assoc-ref outputs "out")
1656 "/bin/epdfinfo")))
1657 ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto
1658 ;; upgrading" that pdf-tools tries to perform.
1659 (emacs-substitute-variables "pdf-tools.el"
1660 ("pdf-tools-handle-upgrades" '()))))
1661 (add-after 'emacs-patch-variables 'emacs-set-emacs-load-path
1662 (assoc-ref emacs:%standard-phases 'set-emacs-load-path))
1663 (add-after 'emacs-set-emacs-load-path 'emacs-install
1664 (assoc-ref emacs:%standard-phases 'install))
1665 (add-after 'emacs-install 'emacs-build
1666 (assoc-ref emacs:%standard-phases 'build))
1667 (add-after 'emacs-install 'emacs-make-autoloads
1668 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
1669 (native-inputs `(("autoconf" ,autoconf)
1670 ("automake" ,automake)
1671 ("pkg-config" ,pkg-config)
1672 ("emacs" ,emacs-minimal)))
1673 (inputs `(("poppler" ,poppler)
1674 ("cairo" ,cairo)
1675 ("glib" ,glib)
1676 ("libpng" ,libpng)
1677 ("zlib" ,zlib)))
1678 (propagated-inputs `(("tablist" ,emacs-tablist)))
1679 (synopsis "Emacs support library for PDF files")
1680 (description
1681 "PDF Tools is, among other things, a replacement of DocView for PDF
1682 files. The key difference is that pages are not pre-rendered by
1683 e.g. ghostscript and stored in the file-system, but rather created on-demand
1684 and stored in memory.")
1685 (home-page "https://github.com/politza/pdf-tools")
1686 (license license:gpl3+)))
1687
1688 (define-public emacs-dash
1689 (package
1690 (name "emacs-dash")
1691 (version "2.14.1")
1692 (source (origin
1693 (method git-fetch)
1694 (uri (git-reference
1695 (url "https://github.com/magnars/dash.el.git")
1696 (commit version)))
1697 (file-name (git-file-name name version))
1698 (sha256
1699 (base32
1700 "1kzijmjxjxgr7p8clphzvmm47vczckbs8mza9an77c25bn627ywl"))))
1701 (build-system emacs-build-system)
1702 (arguments
1703 `(#:tests? #t
1704 #:test-command '("./run-tests.sh")))
1705 (home-page "https://github.com/magnars/dash.el")
1706 (synopsis "Modern list library for Emacs")
1707 (description "This package provides a modern list API library for Emacs.")
1708 (license license:gpl3+)))
1709
1710 (define-public emacs-bui
1711 (package
1712 (name "emacs-bui")
1713 (version "1.2.0")
1714 (source (origin
1715 (method git-fetch)
1716 (uri (git-reference
1717 (url "https://notabug.org/alezost/emacs-bui.git")
1718 (commit (string-append "v" version))))
1719 (file-name (string-append name "-" version "-checkout"))
1720 (sha256
1721 (base32
1722 "0ixia5s41f2nbal3wsixacbhbc0mk9yb75ir1amqakip30sq4apv"))))
1723 (build-system emacs-build-system)
1724 (propagated-inputs
1725 `(("dash" ,emacs-dash)))
1726 (home-page "https://notabug.org/alezost/emacs-bui")
1727 (synopsis "Buffer interface library for Emacs")
1728 (description
1729 "BUI (Buffer User Interface) is a library for making @code{list} and
1730 @code{info} interfaces to display an arbitrary data of the same
1731 type, for example: packages, buffers, files, etc.")
1732 (license license:gpl3+)))
1733
1734 (define-public emacs-guix
1735 (package
1736 (name "emacs-guix")
1737 (version "0.5")
1738 (source (origin
1739 (method url-fetch)
1740 (uri (string-append "https://emacs-guix.gitlab.io/website/"
1741 "releases/emacs-guix-" version ".tar.gz"))
1742 (sha256
1743 (base32
1744 "09zxd8x674vrpigmcx8l00ifhaxh35xwkwjb8dw9kydnhv9hyyi1"))))
1745 (build-system gnu-build-system)
1746 (arguments
1747 `(#:configure-flags
1748 (let ((guix (assoc-ref %build-inputs "guix"))
1749 (gcrypt (assoc-ref %build-inputs "guile-gcrypt"))
1750 (geiser (assoc-ref %build-inputs "geiser"))
1751 (dash (assoc-ref %build-inputs "dash"))
1752 (bui (assoc-ref %build-inputs "bui"))
1753 (magit-popup (assoc-ref %build-inputs "magit-popup"))
1754 (edit-indirect (assoc-ref %build-inputs "edit-indirect"))
1755 (site-lisp "/share/emacs/site-lisp")
1756 (site-scm "/share/guile/site")
1757 (site-go "/lib/guile")
1758 (guile-dir (lambda (dir)
1759 (car (find-files dir
1760 (lambda (file stat)
1761 (string-prefix?
1762 "2." (basename file)))
1763 #:directories? #t)))))
1764 (list (string-append "--with-guix-site-dir="
1765 (guile-dir (string-append guix site-scm)))
1766 (string-append "--with-guix-site-ccache-dir="
1767 (guile-dir (string-append guix site-go))
1768 "/site-ccache")
1769 (string-append "--with-guile-gcrypt-site-dir="
1770 (guile-dir (string-append gcrypt site-scm)))
1771 (string-append "--with-guile-gcrypt-site-ccache-dir="
1772 (guile-dir (string-append gcrypt site-go))
1773 "/site-ccache")
1774 (string-append "--with-geiser-lispdir=" geiser site-lisp)
1775 (string-append "--with-dash-lispdir="
1776 dash site-lisp "/guix.d/dash-"
1777 ,(package-version emacs-dash))
1778 (string-append "--with-bui-lispdir="
1779 bui site-lisp "/guix.d/bui-"
1780 ,(package-version emacs-bui))
1781 (string-append "--with-editindirect-lispdir="
1782 edit-indirect site-lisp "/guix.d/edit-indirect-"
1783 ,(package-version emacs-edit-indirect))
1784 (string-append "--with-popup-lispdir="
1785 magit-popup site-lisp "/guix.d/magit-popup-"
1786 ,(package-version emacs-magit-popup))))))
1787 (native-inputs
1788 `(("pkg-config" ,pkg-config)
1789 ("emacs" ,emacs-minimal)))
1790 (inputs
1791 `(("guile" ,guile-2.2)
1792 ("guix" ,guix)))
1793 (propagated-inputs
1794 `(("geiser" ,emacs-geiser)
1795 ("guile-gcrypt" ,guile-gcrypt)
1796 ("dash" ,emacs-dash)
1797 ("bui" ,emacs-bui)
1798 ("edit-indirect" ,emacs-edit-indirect)
1799 ("magit-popup" ,emacs-magit-popup)))
1800 (home-page "https://emacs-guix.gitlab.io/website/")
1801 (synopsis "Emacs interface for GNU Guix")
1802 (description
1803 "Emacs-Guix provides a visual interface, tools and features for the GNU
1804 Guix package manager. Particularly, it allows you to do various package
1805 management tasks from Emacs. To begin with, run @code{M-x guix-about} or
1806 @code{M-x guix-help} command.")
1807 (license license:gpl3+)))
1808
1809 (define-public emacs-build-farm
1810 (package
1811 (name "emacs-build-farm")
1812 (version "0.2.1")
1813 (source (origin
1814 (method git-fetch)
1815 (uri (git-reference
1816 (url "https://notabug.org/alezost/emacs-build-farm.git")
1817 (commit (string-append "v" version))))
1818 (file-name (string-append name "-" version "-checkout"))
1819 (sha256
1820 (base32
1821 "1a4ky0hca26p7f3i2c2s5517ygkyaaz52vs0vxy6f5q95rhlgdhd"))))
1822 (build-system emacs-build-system)
1823 (propagated-inputs
1824 `(("bui" ,emacs-bui)
1825 ("magit-popup" ,emacs-magit-popup)))
1826 (home-page "https://notabug.org/alezost/emacs-build-farm")
1827 (synopsis "Emacs interface for Hydra and Cuirass build farms")
1828 (description
1829 "This Emacs package provides an interface for Hydra and
1830 Cuirass (build farms used by Nix and Guix). It allows you to look at
1831 various data related to the build farm projects, jobsets, builds and
1832 evaluations. The entry point is @code{M-x build-farm} command.")
1833 (license license:gpl3+)))
1834
1835 (define-public emacs-d-mode
1836 (package
1837 (name "emacs-d-mode")
1838 (version "2.0.9")
1839 (source (origin
1840 (method url-fetch)
1841 (uri (string-append
1842 "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode/"
1843 "archive/" version ".tar.gz"))
1844 (file-name (string-append name "-" version ".tar.gz"))
1845 (sha256
1846 (base32
1847 "127aa77ix3p7w4g339bx026df9y649dahlr3v359z0hs40zjz3kd"))))
1848 (build-system emacs-build-system)
1849 (propagated-inputs
1850 `(("emacs-undercover" ,emacs-undercover)))
1851 (home-page "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
1852 (synopsis "Emacs major mode for editing D code")
1853 (description "This package provides an Emacs major mode for highlighting
1854 code written in the D programming language. This mode is currently known to
1855 work with Emacs 24 and 25.")
1856 (license license:gpl2+)))
1857
1858 (define-public emacs-keyfreq
1859 (package
1860 (name "emacs-keyfreq")
1861 (version "20160516.716")
1862 (source
1863 (origin
1864 (method url-fetch)
1865 (uri (string-append "http://melpa.org/packages/keyfreq-"
1866 version ".el"))
1867 (sha256
1868 (base32
1869 "008hd7d06qskc3mx0bbdgpgy2pwxr8185fzlyqf9qjg49y74p6g8"))))
1870 (build-system emacs-build-system)
1871 (home-page "https://github.com/dacap/keyfreq")
1872 (synopsis "Track Emacs command frequencies")
1873 (description "@code{emacs-keyfeq} tracks and shows how many times you used
1874 a command.")
1875 (license license:gpl3+)))
1876
1877 (define-public emacs-olivetti
1878 (package
1879 (name "emacs-olivetti")
1880 (version "1.5.7")
1881 (source (origin
1882 (method url-fetch)
1883 (uri (string-append
1884 "https://stable.melpa.org/packages/olivetti-"
1885 version ".el"))
1886 (sha256
1887 (base32
1888 "1yj2ylg46q0pw1xzlv2b0fv9x8p56x25284s9v2smwjr4vf0nwcj"))))
1889 (build-system emacs-build-system)
1890 (home-page "https://github.com/rnkn/olivetti")
1891 (synopsis "Emacs minor mode for a nice writing environment")
1892 (description "This package provides an Emacs minor mode that puts writing
1893 in the center.")
1894 (license license:gpl3+)))
1895
1896 (define-public emacs-undo-tree
1897 (package
1898 (name "emacs-undo-tree")
1899 (version "0.6.6")
1900 (source (origin
1901 (method git-fetch)
1902 (uri (git-reference
1903 (url "http://dr-qubit.org/git/undo-tree.git")
1904 (commit (string-append "release/" version))))
1905 (file-name (string-append name "-" version "-checkout"))
1906 (sha256
1907 (base32
1908 "1hnh2mnmw179gr094r561w6cw1haid0lpvpqvkc24wpj82vphzpa"))))
1909 (build-system emacs-build-system)
1910 (home-page "http://www.dr-qubit.org/emacs.php")
1911 (synopsis "Treat undo history as a tree")
1912 (description "Tree-like interface to Emacs undo system, providing
1913 graphical tree presentation of all previous states of buffer that
1914 allows easily move between them.")
1915 (license license:gpl3+)))
1916
1917 (define-public emacs-s
1918 (package
1919 (name "emacs-s")
1920 (version "1.12.0")
1921 (source (origin
1922 (method url-fetch)
1923 (uri (string-append
1924 "https://github.com/magnars/s.el/archive/"
1925 version ".tar.gz"))
1926 (file-name (string-append name "-" version ".tar.gz"))
1927 (sha256
1928 (base32
1929 "0xbl75863pcm806zg0x1lw7qznzjq2c8320k8js7apyag8q4srvh"))))
1930 (build-system emacs-build-system)
1931 (arguments
1932 `(#:tests? #t
1933 #:emacs ,emacs ; FIXME: tests fail with emacs-minimal
1934 #:test-command '("./run-tests.sh")))
1935 (home-page "https://github.com/magnars/s.el")
1936 (synopsis "Emacs string manipulation library")
1937 (description "This package provides an Emacs library for manipulating
1938 strings.")
1939 (license license:gpl3+)))
1940
1941 (define-public emacs-symon
1942 (package
1943 (name "emacs-symon")
1944 (version "20160630")
1945 (source
1946 (origin
1947 (method url-fetch)
1948 (uri (string-append "https://github.com/zk-phi/symon/archive/"
1949 version ".tar.gz"))
1950 (file-name (string-append name "-" version ".tar.gz"))
1951 (sha256
1952 (base32
1953 "0h4jcgdnq98wc9rj72nwyazq8498yg55jfljiij5qwbn1xf1g5zz"))))
1954 (build-system emacs-build-system)
1955 (home-page "https://github.com/zk-phi/symon")
1956 (synopsis "Tiny graphical system monitor")
1957 (description
1958 "Tiny graphical system monitor for the Emacs minibuffer when idle.")
1959 (license license:gpl2+)))
1960
1961 (define-public emacs-sx
1962 (let ((version "20180212")
1963 (revision "1")
1964 (commit "833435fbf90d1c9e927d165b155f3b1ef39271de"))
1965 (package
1966 (name "emacs-sx")
1967 (version (git-version version revision commit))
1968 (source
1969 (origin
1970 (method git-fetch)
1971 (uri (git-reference
1972 (url "https://github.com/vermiculus/sx.el")
1973 (commit commit)))
1974 (file-name (git-file-name name version))
1975 (sha256
1976 (base32
1977 "1369xaxq1vy3d9yh862ddnhddikdpg2d0wv1ly00pnvdp9v4cqgd"))))
1978 (build-system emacs-build-system)
1979 (propagated-inputs
1980 `(("emacs-markdown-mode" ,emacs-markdown-mode)))
1981 (home-page "https://github.com/vermiculus/sx.el")
1982 (synopsis "Emacs StackExchange client")
1983 (description
1984 "Emacs StackExchange client. Ask and answer questions on
1985 Stack Overflow, Super User, and other StackExchange sites.")
1986 (license license:gpl3+))))
1987
1988 (define-public emacs-f
1989 (package
1990 (name "emacs-f")
1991 (version "0.20.0")
1992 (source (origin
1993 (method git-fetch)
1994 (uri (git-reference
1995 (url "https://github.com/rejeep/f.el.git")
1996 (commit (string-append "v" version))))
1997 (file-name (git-file-name name version))
1998 (sha256
1999 (base32
2000 "1a47xk3yp1rp17fqg7ldl3d3fb888h0fz3sysqfdz1bfdgs8a9bk"))))
2001 (build-system emacs-build-system)
2002 (propagated-inputs
2003 `(("emacs-s" ,emacs-s)
2004 ("emacs-dash" ,emacs-dash)))
2005 (home-page "https://github.com/rejeep/f.el")
2006 (synopsis "Emacs API for working with files and directories")
2007 (description "This package provides an Emacs library for working with
2008 files and directories.")
2009 (license license:gpl3+)))
2010
2011 (define-public emacs-git-gutter
2012 (package
2013 (name "emacs-git-gutter")
2014 (version "0.90")
2015 (source (origin
2016 (method url-fetch)
2017 (uri (string-append
2018 "https://github.com/syohex/" name "/archive/"
2019 version ".tar.gz"))
2020 (file-name (string-append name "-" version ".tar.gz"))
2021 (sha256
2022 (base32
2023 "1nmhvhpq1l56mj2yq3ag23rw3x4xgnsy8szp30s26l0yjnkhc4qg"))))
2024 (build-system emacs-build-system)
2025 (home-page "https://github.com/syohex/emacs-git-gutter")
2026 (synopsis "See and manage hunks of text in a version control system")
2027 (description
2028 "This package is an Emacs minor mode for displaying and interacting with
2029 hunks of text managed in a version control system. Added modified and deleted
2030 areas can be indicated with symbols on the edge of the buffer, and commands
2031 can be used to move between and perform actions on these hunks.
2032
2033 Git, Mercurial, Subversion and Bazaar are supported, and many parts of the
2034 display and behaviour is easily customisable.")
2035 (license license:gpl3+)))
2036
2037 (define-public emacs-git-timemachine
2038 (package
2039 (name "emacs-git-timemachine")
2040 (version "4.5")
2041 (source
2042 (origin
2043 (method url-fetch)
2044 (uri (string-append "https://gitlab.com/pidu/git-timemachine"
2045 "/-/archive/" version
2046 "/git-timemachine-" version ".tar.gz"))
2047 (file-name (string-append name "-" version ".tar.gz"))
2048 (sha256
2049 (base32
2050 "0ii40qcincasg7s1yrvqcxkqcqzb4sfs7gcxscn6m4x4ans165zy"))))
2051 (build-system emacs-build-system)
2052 (home-page "https://gitlab.com/pidu/git-timemachine")
2053 (synopsis "Step through historic versions of Git-controlled files")
2054 (description "This package enables you to step through historic versions
2055 of files under Git version control from within Emacs.")
2056 (license license:gpl3+)))
2057
2058 (define-public emacs-minitest
2059 (let ((commit "1aadb7865c1dc69c201cecee275751ecec33a182")
2060 (revision "1"))
2061 (package
2062 (name "emacs-minitest")
2063 (version (git-version "0.8.0" revision commit))
2064 (source (origin
2065 (method git-fetch)
2066 (uri (git-reference
2067 (url "https://github.com/arthurnn/minitest-emacs")
2068 (commit commit)))
2069 (file-name (git-file-name name commit))
2070 (sha256
2071 (base32
2072 "1l18zqpdzbnqj2qawq8hj7z7pl8hr8z9d8ihy8jaiqma915hmhj1"))))
2073 (build-system emacs-build-system)
2074 (arguments
2075 '(#:include (cons "^snippets\\/minitest-mode\\/" %default-include)
2076 #:exclude (delete "^[^/]*tests?\\.el$" %default-exclude)))
2077 (propagated-inputs
2078 `(("emacs-dash" ,emacs-dash)
2079 ("emacs-f" ,emacs-f)))
2080 (home-page "https://github.com/arthurnn/minitest-emacs")
2081 (synopsis "Emacs minitest mode")
2082 (description
2083 "The minitest mode provides commands to run the tests for the current
2084 file or line, as well as rerunning the previous tests, or all the tests for a
2085 project.
2086
2087 This package also includes relevant snippets for yasnippet.")
2088 (license license:expat))))
2089
2090 (define-public emacs-el-mock
2091 (package
2092 (name "emacs-el-mock")
2093 (version "1.25.1")
2094 (source
2095 (origin
2096 (method url-fetch)
2097 (uri (string-append "https://github.com/rejeep/el-mock.el/"
2098 "archive/v" version ".tar.gz"))
2099 (file-name (string-append name "-" version ".tar.gz"))
2100 (sha256
2101 (base32
2102 "16xw94n58xxn3zvgyj72bmzs0k5lkvswjmzs79ws9n7rzdivb38b"))))
2103 (build-system emacs-build-system)
2104 (home-page "https://github.com/rejeep/el-mock.el")
2105 (synopsis "Tiny mock and stub framework in Emacs Lisp")
2106 (description
2107 "Emacs Lisp Mock is a library for mocking and stubbing using readable
2108 syntax. Most commonly Emacs Lisp Mock is used in conjunction with Emacs Lisp
2109 Expectations, but it can be used in other contexts.")
2110 (license license:gpl3+)))
2111
2112 (define-public emacs-espuds
2113 (package
2114 (name "emacs-espuds")
2115 (version "0.3.3")
2116 (source
2117 (origin
2118 (method url-fetch)
2119 (uri (string-append "https://github.com/ecukes/espuds/"
2120 "archive/v" version ".tar.gz"))
2121 (file-name (string-append name "-" version ".tar.gz"))
2122 (sha256
2123 (base32
2124 "0xv551376pbmh735a3zjwc9z4qdx6ngj1vpq3xqjpn0a1rwjyn4k"))))
2125 (build-system emacs-build-system)
2126 (propagated-inputs
2127 `(("emacs-s" ,emacs-s)
2128 ("emacs-dash" ,emacs-dash)
2129 ("emacs-f" ,emacs-f)))
2130 (home-page "https://github.com/ecukes/espuds")
2131 (synopsis "Common step definitions for Ecukes")
2132 (description "Espuds is a collection of the most commonly used step
2133 definitions for testing with the Ecukes framework.")
2134 (license license:gpl3+)))
2135
2136 (define-public emacs-spark
2137 (let ((version "20160503") ; no proper tag, use date of commit
2138 (commit "0bf148c3ede3b31d56fd75f347cdd0b0eae60025")
2139 (revision "1"))
2140 (package
2141 (name "emacs-spark")
2142 (version (git-version version revision commit))
2143 (source
2144 (origin
2145 (method git-fetch)
2146 (uri (git-reference
2147 (url "https://github.com/alvinfrancis/spark.git")
2148 (commit commit)))
2149 (file-name (git-file-name name version))
2150 (sha256
2151 (base32
2152 "1ykqr86j17mi95s08d9fp02d7ych1331b04dcqxzxnmpkhwngyj1"))))
2153 (build-system emacs-build-system)
2154 (home-page "https://github.com/alvinfrancis/spark")
2155 (synopsis "Sparkline generation library for Emacs Lisp")
2156 (description "@code{emacs-spark} is a sparkline generation library for
2157 Emacs Lisp. It generates a sparkline string given a list of numbers. It is a
2158 port of @code{cl-spark} to Emacs Lisp.")
2159 (license license:expat))))
2160
2161 (define-public emacs-es-mode
2162 (package
2163 (name "emacs-es-mode")
2164 (version "4.3.0")
2165 (source (origin
2166 (method url-fetch)
2167 (uri (string-append
2168 "https://github.com/dakrone/es-mode/archive/"
2169 version ".tar.gz"))
2170 (file-name (string-append name "-" version ".tar.gz"))
2171 (sha256
2172 (base32
2173 "0y86qdcb3g7fkcb4pzsjh3syzql6w3314hg1wqxq4a8bbk3y0cgr"))))
2174 (build-system emacs-build-system)
2175 (propagated-inputs
2176 ;; The version of org in Emacs 24.5 is not sufficient, and causes tables
2177 ;; to be rendered incorrectly
2178 `(("emacs-dash" ,emacs-dash)
2179 ("emacs-org" ,emacs-org)
2180 ("emacs-spark" ,emacs-spark)))
2181 (home-page "https://github.com/dakrone/es-mode")
2182 (synopsis "Major mode for editing Elasticsearch queries")
2183 (description "@code{es-mode} includes highlighting, completion and
2184 indentation support for Elasticsearch queries. Also supported are
2185 @code{es-mode} blocks in @code{org-mode}, for which the results of queries can
2186 be processed through @code{jq}, or in the case of aggregations, can be
2187 rendered in to a table. In addition, there is an @code{es-command-center}
2188 mode, which displays information about Elasticsearch clusters.")
2189 (license license:gpl3+)))
2190
2191 (define-public emacs-expand-region
2192 (package
2193 (name "emacs-expand-region")
2194 (version "0.11.0")
2195 (source
2196 (origin
2197 (method url-fetch)
2198 (uri (string-append "https://github.com/magnars/expand-region.el"
2199 "/archive/" version ".tar.gz"))
2200 (file-name (string-append name "-" version ".tar.gz"))
2201 (sha256
2202 (base32
2203 "08dy1f411sh9wwww53rjw80idcf3vpki6ba2arl4hl5jcw9651g0"))))
2204 (build-system emacs-build-system)
2205 (home-page "https://github.com/magnars/expand-region.el")
2206 (synopsis "Increase selected region by semantic units")
2207 (description
2208 "Expand region increases the selected region by semantic units. Just
2209 keep pressing the key until it selects what you want. There's also
2210 @code{er/contract-region} if you expand too far.")
2211 (license license:gpl3+)))
2212
2213 (define-public emacs-fill-column-indicator
2214 (package
2215 (name "emacs-fill-column-indicator")
2216 (version "1.89")
2217 (source
2218 (origin
2219 (method url-fetch)
2220 (uri (string-append "https://github.com/alpaker/Fill-Column-Indicator"
2221 "/archive/v" version ".tar.gz"))
2222 (file-name (string-append name "-" version ".tar.gz"))
2223 (sha256
2224 (base32
2225 "09ab01np14bdcsr38xf95kpnvxzqr46mdjmphg3pigwnx39a3jvg"))))
2226 (build-system emacs-build-system)
2227 (home-page "https://www.emacswiki.org/emacs/FillColumnIndicator")
2228 (synopsis "Graphically indicate the fill column")
2229 (description
2230 "Fill-column-indicator graphically indicates the location of the fill
2231 column by drawing a thin line down the length of the editing window.")
2232 (license license:gpl3+)))
2233
2234 (define-public emacs-grep-a-lot
2235 (package
2236 (name "emacs-grep-a-lot")
2237 (version "1.0.7")
2238 (source (origin
2239 (method git-fetch)
2240 (uri (git-reference
2241 (url "https://github.com/ZungBang/emacs-grep-a-lot.git")
2242 (commit "9f9f645b9e308a0d887b66864ff97d0fca1ba4ad")))
2243 (file-name (string-append name "-" version "-checkout"))
2244 (sha256
2245 (base32
2246 "1f8262mrlinzgnn4m49hbj1hm3c1mvzza24py4b37sasn49546lw"))))
2247 (build-system emacs-build-system)
2248 (home-page "https://github.com/ZungBang/emacs-grep-a-lot")
2249 (synopsis "Enables multiple grep buffers in Emacs")
2250 (description
2251 "This Emacs package allows managing multiple grep buffers.")
2252 (license license:gpl3+)))
2253
2254 (define-public emacs-inf-ruby
2255 (package
2256 (name "emacs-inf-ruby")
2257 (version "2.5.1")
2258 (source
2259 (origin
2260 (method url-fetch)
2261 (uri (string-append "https://github.com/nonsequitur/inf-ruby/"
2262 "archive/" version ".tar.gz"))
2263 (file-name (string-append name "-" version ".tar.gz"))
2264 (sha256
2265 (base32
2266 "0m7323k649ckxql1grsdnf71bjhys7l4qb8wbpphb1mr1q8i4066"))))
2267 (build-system emacs-build-system)
2268 (home-page "https://github.com/nonsequitur/inf-ruby")
2269 (synopsis "Provides a REPL buffer connected to a Ruby subprocess in Emacs")
2270 (description
2271 "@code{inf-ruby} provides a Read Eval Print Loop (REPL) buffer, allowing
2272 for easy interaction with a ruby subprocess. Features include support for
2273 detecting specific uses of Ruby, e.g. when using rails, and using a
2274 appropriate console.")
2275 (license license:gpl3+)))
2276
2277 (define-public emacs-znc
2278 (package
2279 (name "emacs-znc")
2280 (version "0.0.2")
2281 (source
2282 (origin
2283 (method url-fetch)
2284 (uri (string-append "https://marmalade-repo.org/packages/znc-"
2285 version ".el"))
2286 (sha256
2287 (base32
2288 "1d8lqvybgyazin5z0g1c4l3rg1vzrrvf0saqs53jr1zcdg0lianh"))))
2289 (build-system emacs-build-system)
2290 (home-page "https://github.com/sshirokov/ZNC.el")
2291 (synopsis "Make ERC and ZNC get along better")
2292 (description
2293 "This is a thin wrapper around @code{erc} that enables one to use the ZNC
2294 IRC bouncer with ERC.")
2295 (license license:expat)))
2296
2297 (define-public emacs-shut-up
2298 (package
2299 (name "emacs-shut-up")
2300 (version "0.3.2")
2301 (source
2302 (origin
2303 (method url-fetch)
2304 (uri (string-append "https://github.com/cask/shut-up/"
2305 "archive/v" version ".tar.gz"))
2306 (file-name (string-append name "-" version ".tar.gz"))
2307 (sha256
2308 (base32
2309 "09kzrjdkb569iviyg7ydwq44yh84m3f9hkl7jizfrlk0w4gz67d1"))))
2310 (build-system emacs-build-system)
2311 (home-page "https://github.com/cask/shut-up")
2312 (synopsis "Silence Emacs")
2313 (description "This package silences most output of Emacs when running an
2314 Emacs shell script.")
2315 (license license:expat)))
2316
2317 (define-public emacs-undercover
2318 (package
2319 (name "emacs-undercover")
2320 (version "0.6.0")
2321 (source
2322 (origin
2323 (method url-fetch)
2324 (uri (string-append "https://github.com/sviridov/undercover.el/"
2325 "archive/v" version ".tar.gz"))
2326 (file-name (string-append name "-" version ".tar.gz"))
2327 (sha256
2328 (base32
2329 "0f48fi0xnbsqs382rgh85m9mq1wdnr0yib7as9xhwzvq0hsr5m0a"))))
2330 (build-system emacs-build-system)
2331 (propagated-inputs
2332 `(("emacs-dash" ,emacs-dash)
2333 ("emacs-shut-up" ,emacs-shut-up)))
2334 (home-page "https://github.com/sviridov/undercover.el")
2335 (synopsis "Test coverage library for Emacs Lisp")
2336 (description
2337 "Undercover is a test coverage library for software written in Emacs
2338 Lisp.")
2339 (license license:expat)))
2340
2341 (define-public emacs-paren-face
2342 (package
2343 (name "emacs-paren-face")
2344 (version "1.0.0")
2345 (source
2346 (origin
2347 (method url-fetch)
2348 (uri (string-append "https://github.com/tarsius/paren-face/archive/"
2349 version ".tar.gz"))
2350 (file-name (string-append name "-" version ".tar.gz"))
2351 (sha256
2352 (base32
2353 "0y4qrhxa9332vsvr999jg7qj1ymnfgwpf591yi4a4jgg90pm7qnn"))))
2354 (build-system emacs-build-system)
2355 (home-page "https://github.com/tarsius/paren-face")
2356 (synopsis "Face for parentheses in lisp modes")
2357 (description
2358 "This library defines a face named @code{parenthesis} used just for
2359 parentheses. The intended purpose of this face is to make parentheses less
2360 visible in Lisp code by dimming them. Lispers probably don't need to be
2361 constantly made aware of the existence of the parentheses. Dimming them might
2362 be even more useful for people new to lisp who have not yet learned to
2363 subconsciously blend out the parentheses.")
2364 (license license:gpl3+)))
2365
2366 (define-public emacs-page-break-lines
2367 (package
2368 (name "emacs-page-break-lines")
2369 (version "0.11")
2370 (source
2371 (origin
2372 (method url-fetch)
2373 (uri (string-append "https://github.com/purcell/page-break-lines/"
2374 "archive/" version ".tar.gz"))
2375 (file-name (string-append name "-" version ".tar.gz"))
2376 (sha256
2377 (base32
2378 "1zzhziq5kbrm9rxk30kx2glz455fp1blqxg8cpcf6l8xl3w8z4pg"))))
2379 (build-system emacs-build-system)
2380 (home-page "https://github.com/purcell/page-break-lines")
2381 (synopsis "Display page breaks as tidy horizontal lines")
2382 (description
2383 "This library provides a global mode which displays form feed characters
2384 as horizontal rules.")
2385 (license license:gpl3+)))
2386
2387 (define-public emacs-simple-httpd
2388 (package
2389 (name "emacs-simple-httpd")
2390 (version "1.4.6")
2391 (source
2392 (origin
2393 (method url-fetch)
2394 (uri (string-append "https://github.com/skeeto/emacs-web-server/"
2395 "archive/" version ".tar.gz"))
2396 (file-name (string-append name "-" version ".tar.gz"))
2397 (sha256
2398 (base32
2399 "01r7h3imnj4qx1m53a2wjafvbylcyz5f9r2rg2cs7ky3chlg220r"))))
2400 (build-system emacs-build-system)
2401 (home-page "https://github.com/skeeto/emacs-http-server")
2402 (synopsis "HTTP server in pure Emacs Lisp")
2403 (description
2404 "This package provides a simple HTTP server written in Emacs Lisp to
2405 serve files and directory listings.")
2406 (license license:unlicense)))
2407
2408 (define-public emacs-skewer-mode
2409 (package
2410 (name "emacs-skewer-mode")
2411 (version "1.6.2")
2412 (source
2413 (origin
2414 (method url-fetch)
2415 (uri (string-append "https://github.com/skeeto/skewer-mode/archive/"
2416 version ".tar.gz"))
2417 (file-name (string-append name "-" version ".tar.gz"))
2418 (sha256
2419 (base32
2420 "07jpz374j0j964szy3zznrkyja2kpdl3xa87wh7349mzxivqxdx0"))))
2421 (build-system emacs-build-system)
2422 (propagated-inputs
2423 `(("emacs-simple-httpd" ,emacs-simple-httpd)
2424 ("emacs-js2-mode" ,emacs-js2-mode)))
2425 (arguments '(#:include '("\\.el$" "\\.js$" "\\.html$")))
2426 (home-page "https://github.com/skeeto/skewer-mode")
2427 (synopsis "Live web development in Emacs")
2428 (description
2429 "Skewer-mode provides live interaction with JavaScript, CSS, and HTML in
2430 a web browser. Expressions are sent on-the-fly from an editing buffer to be
2431 evaluated in the browser, just like Emacs does with an inferior Lisp process
2432 in Lisp modes.")
2433 (license license:unlicense)))
2434
2435 (define-public emacs-string-inflection
2436 (package
2437 (name "emacs-string-inflection")
2438 (version "1.0.6")
2439 (source (origin
2440 (method git-fetch)
2441 (uri (git-reference
2442 (url "https://github.com/akicho8/string-inflection")
2443 (commit "a150e7bdda60b7824d3a936750ce23f73b0e4edd")))
2444 (file-name (string-append name "-" version "-checkout"))
2445 (sha256
2446 (base32
2447 "1k0sm552iawi49v4zis6dbb81d1rzgky9v0dpv7nj31gnb7bmy7k"))))
2448 (build-system emacs-build-system)
2449 (native-inputs
2450 `(("ert-runner" ,emacs-ert-runner)))
2451 (arguments
2452 `(#:tests? #t
2453 #:test-command '("ert-runner")))
2454 (home-page "https://github.com/akicho8/string-inflection")
2455 (synopsis "Convert symbol names between different naming conventions")
2456 (description
2457 "This Emacs package provides convenient methods for manipulating the
2458 naming style of a symbol. It supports different naming conventions such as:
2459
2460 @enumerate
2461 @item camel case
2462 @item Pascal case
2463 @item all upper case
2464 @item lower case separated by underscore
2465 @item etc...
2466 @end enumerate\n")
2467 (license license:gpl2+)))
2468
2469 (define-public emacs-stripe-buffer
2470 (package
2471 (name "emacs-stripe-buffer")
2472 (version "0.2.5")
2473 (source
2474 (origin
2475 (method url-fetch)
2476 (uri (string-append "https://github.com/sabof/stripe-buffer/"
2477 "archive/" version ".tar.gz"))
2478 (file-name (string-append name "-" version ".tar.gz"))
2479 (sha256
2480 (base32
2481 "1p515dq7raly5hw94kiwm3vzsfih0d8af622q4ipvvljsm98aiik"))))
2482 (build-system emacs-build-system)
2483 (home-page "https://github.com/sabof/stripe-buffer/")
2484 (synopsis "Add stripes to list buffers")
2485 (description
2486 "This Emacs package adds faces to add stripes to list buffers and org
2487 tables.")
2488 (license license:gpl2+)))
2489
2490 (define-public emacs-rich-minority
2491 (package
2492 (name "emacs-rich-minority")
2493 (version "1.0.1")
2494 (source
2495 (origin
2496 (method url-fetch)
2497 (uri (string-append "https://github.com/Malabarba/rich-minority/"
2498 "archive/" version ".tar.gz"))
2499 (file-name (string-append name "-" version ".tar.gz"))
2500 (sha256
2501 (base32
2502 "1l0cb0q7kyi88nwfqd542psnkgwnjklpzc5rx32gzd3lkwkrbr8v"))))
2503 (build-system emacs-build-system)
2504 (home-page "https://github.com/Malabarba/rich-minority")
2505 (synopsis "Clean-up and beautify the list of minor modes")
2506 (description
2507 "This Emacs package hides and/or highlights minor modes in the
2508 mode-line.")
2509 (license license:gpl2+)))
2510
2511 (define-public emacs-robe
2512 (package
2513 (name "emacs-robe")
2514 (version "0.8.1")
2515 (source
2516 (origin
2517 (method url-fetch)
2518 (uri (string-append "https://github.com/dgutov/robe/"
2519 "archive/" version ".tar.gz"))
2520 (file-name (string-append name "-" version ".tar.gz"))
2521 (sha256
2522 (base32
2523 "1vp45y99fwj88z04ah4yppz4z568qcib646az6m9az5ar0f203br"))))
2524 (build-system emacs-build-system)
2525 (arguments
2526 '(#:include (cons "^lib\\/" %default-include)))
2527 (propagated-inputs
2528 `(("emacs-inf-ruby" ,emacs-inf-ruby)))
2529 (home-page "https://github.com/dgutov/robe")
2530 (synopsis "Ruby code assistance tool for Emacs")
2531 (description
2532 "Robe can provide information on loaded classes and modules in Ruby code,
2533 as well as where methods are defined. This allows the user to jump to method
2534 definitions, modules and classes, display method documentation and provide
2535 method and constant name completion.")
2536 (license license:gpl3+)))
2537
2538 (define-public emacs-rspec
2539 (package
2540 (name "emacs-rspec")
2541 (version "1.11")
2542 (source
2543 (origin
2544 (method url-fetch)
2545 (uri (string-append "https://github.com/pezra/rspec-mode/"
2546 "archive/v" version ".tar.gz"))
2547 (file-name (string-append name "-" version ".tar.gz"))
2548 (sha256
2549 (base32
2550 "1j0a7ms5516nlg60qfyn730pfxys6acm0rgyxh5xfkpi6jafgpvw"))))
2551 (build-system emacs-build-system)
2552 (home-page "https://github.com/pezra/rspec-mode")
2553 (synopsis "Provides a rspec mode for working with RSpec")
2554 (description
2555 "The Emacs RSpec mode provides keybindings for Ruby source files, e.g. to
2556 verify the spec associated with the current buffer, or entire project, as well
2557 as moving between the spec files, and coresponding code files.
2558
2559 Also included are keybindings for spec files and Dired buffers, as well as
2560 snippets for yasnippet.")
2561 (license license:gpl3+)))
2562
2563 (define-public emacs-smart-mode-line
2564 (package
2565 (name "emacs-smart-mode-line")
2566 (version "2.12.0")
2567 (source
2568 (origin
2569 (method url-fetch)
2570 (uri (string-append "https://github.com/Malabarba/smart-mode-line/"
2571 "archive/" version ".tar.gz"))
2572 (file-name (string-append name "-" version ".tar.gz"))
2573 (sha256
2574 (base32
2575 "1hn8s6laijmg7w1bgwdfrki6h9vxkbgr8rmmssvd5yqyad5w2sba"))))
2576 (build-system emacs-build-system)
2577 (propagated-inputs
2578 `(("emacs-rich-minority" ,emacs-rich-minority)))
2579 (home-page "https://github.com/Malabarba/smart-mode-line")
2580 (synopsis "Color-coded smart mode-line")
2581 (description
2582 "Smart Mode Line is a mode-line theme for Emacs. It aims to be easy to
2583 read from small to large monitors by using colors, a prefix feature, and smart
2584 truncation.")
2585 (license license:gpl2+)))
2586
2587 (define-public emacs-sr-speedbar
2588 (let ((commit "77a83fb50f763a465c021eca7343243f465b4a47")
2589 (revision "0"))
2590 (package
2591 (name "emacs-sr-speedbar")
2592 (version (git-version "20161025" revision commit))
2593 (source
2594 (origin
2595 (method git-fetch)
2596 (uri (git-reference
2597 (url "https://github.com/emacsorphanage/sr-speedbar.git")
2598 (commit commit)))
2599 (file-name (git-file-name name version))
2600 (sha256
2601 (base32
2602 "0sd12555hk7z721y00kv3crdybvcn1i08wmd148z5imayzibj153"))))
2603 (build-system emacs-build-system)
2604 (home-page "https://www.emacswiki.org/emacs/SrSpeedbar")
2605 (synopsis "Same frame Emacs @code{speedbar}")
2606 (description
2607 "This Emacs package allows you to show @code{M-x speedbar} in the
2608 same frame (in an extra window). You can customize the initial width of
2609 the speedbar window.")
2610 (license license:gpl3+))))
2611
2612 (define-public emacs-shell-switcher
2613 (package
2614 (name "emacs-shell-switcher")
2615 (version "1.0.1")
2616 (source
2617 (origin
2618 (method url-fetch)
2619 (uri (string-append "https://github.com/DamienCassou/shell-switcher"
2620 "/archive/v" version ".tar.gz"))
2621 (file-name (string-append name "-" version ".tar.gz"))
2622 (sha256
2623 (base32
2624 "1c23mfkdqz2g9rixd9smm323vzlvhzz3ng34ambcqjfq309qb2nz"))))
2625 (build-system emacs-build-system)
2626 (home-page "https://github.com/DamienCassou/shell-switcher")
2627 (synopsis "Provide fast switching between shell buffers")
2628 (description
2629 "This package provides commands to quickly switch between shell buffers.")
2630 (license license:gpl3+)))
2631
2632 (define-public emacs-ob-ipython
2633 (package
2634 (name "emacs-ob-ipython")
2635 (version "20150704.8807064693")
2636 (source (origin
2637 (method git-fetch)
2638 (uri (git-reference
2639 (commit "880706469338ab59b5bb7dbe8460016f89755364")
2640 (url "https://github.com/gregsexton/ob-ipython.git")))
2641 (file-name (string-append name "-" version "-checkout"))
2642 (sha256
2643 (base32
2644 "1scf25snbds9ymagpny30ijbsg479r3nm0ih01dy4m9d0g7qryb7"))))
2645 (build-system emacs-build-system)
2646 (propagated-inputs
2647 `(("emacs-f" ,emacs-f)))
2648 (home-page "http://www.gregsexton.org")
2649 (synopsis "Org-Babel functions for IPython evaluation")
2650 (description "This package adds support to Org-Babel for evaluating Python
2651 source code using IPython.")
2652 (license license:gpl3+)))
2653
2654 (define-public emacs-debbugs
2655 (package
2656 (name "emacs-debbugs")
2657 (version "0.16")
2658 (source (origin
2659 (method url-fetch)
2660 (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
2661 version ".tar"))
2662 (sha256
2663 (base32
2664 "0y3bq803c7820h15g66d1648skxfhlfa2v6vincj6xk5ssp44s9p"))))
2665 (build-system emacs-build-system)
2666 (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
2667 (propagated-inputs
2668 `(("emacs-async" ,emacs-async)))
2669 (home-page "https://elpa.gnu.org/packages/debbugs.html")
2670 (synopsis "Access the Debbugs bug tracker in Emacs")
2671 (description
2672 "This package lets you access the @uref{http://bugs.gnu.org,GNU Bug
2673 Tracker} from within Emacs.
2674
2675 For instance, it defines the command @code{M-x debbugs-gnu} for listing bugs,
2676 and the command @code{M-x debbugs-gnu-search} for bug searching. If you
2677 prefer the listing of bugs as TODO items of @code{org-mode}, you could use
2678 @code{M-x debbugs-org} and related commands.
2679
2680 A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug
2681 Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.")
2682 (license license:gpl3+)))
2683
2684 (define-public emacs-ert-expectations
2685 (package
2686 (name "emacs-ert-expectations")
2687 (version "0.2")
2688 (source
2689 (origin
2690 (method url-fetch)
2691 (uri "https://www.emacswiki.org/emacs/download/ert-expectations.el")
2692 (sha256
2693 (base32
2694 "0cwy3ilsid90abzzjb7ha2blq9kmv3gfp3icwwfcz6qczgirq6g7"))))
2695 (build-system emacs-build-system)
2696 (home-page "https://www.emacswiki.org/emacs/ert-expectations.el")
2697 (synopsis "Simple unit test framework for Emacs Lisp")
2698 (description "@code{emacs-ert-expectations} is a simple unit test
2699 framework for Emacs Lisp to be used with @code{ert}.")
2700 (license license:gpl3+)))
2701
2702 (define-public emacs-deferred
2703 (package
2704 (name "emacs-deferred")
2705 (version "0.5.1")
2706 (home-page "https://github.com/kiwanami/emacs-deferred")
2707 (source (origin
2708 (method git-fetch)
2709 (uri (git-reference
2710 (url home-page)
2711 (commit (string-append "v" version))))
2712 (sha256
2713 (base32
2714 "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"))
2715 (file-name (string-append name "-" version))))
2716 (build-system emacs-build-system)
2717 (arguments
2718 `(#:phases
2719 (modify-phases %standard-phases
2720 (add-after 'unpack 'set-shell
2721 ;; Setting the SHELL environment variable is required for the tests
2722 ;; to find sh.
2723 (lambda _
2724 (setenv "SHELL" (which "sh"))
2725 #t))
2726 (add-before 'check 'fix-makefile
2727 (lambda _
2728 (substitute* "Makefile"
2729 (("\\$\\(CASK\\) exec ") ""))
2730 #t)))
2731 #:tests? #t
2732 #:test-command '("make" "test")))
2733 (native-inputs
2734 `(("emacs-ert-expectations" ,emacs-ert-expectations)
2735 ("emacs-undercover" ,emacs-undercover)
2736 ("ert-runner" ,emacs-ert-runner)))
2737 (synopsis "Simple asynchronous functions for Emacs Lisp")
2738 (description
2739 "The @code{deferred.el} library provides support for asynchronous tasks.
2740 The API is almost the same as that of
2741 @uref{https://github.com/cho45/jsdeferred, JSDeferred}, a JavaScript library
2742 for asynchronous tasks.")
2743 (license license:gpl3+)))
2744
2745 (define-public emacs-butler
2746 (package
2747 (name "emacs-butler")
2748 (version "0.2.4")
2749 (home-page "https://github.com/AshtonKem/Butler")
2750 (source (origin
2751 (method git-fetch)
2752 (uri (git-reference
2753 (url home-page)
2754 (commit version)))
2755 (sha256
2756 (base32
2757 "1pii9dw4skq7nr4na6qxqasl36av8cwjp71bf1fgppqpcd9z8skj"))
2758 (file-name (string-append name "-" version))))
2759 (build-system emacs-build-system)
2760 (propagated-inputs
2761 `(("emacs-deferred" ,emacs-deferred)))
2762 (synopsis "Emacs client for Jenkins")
2763 (description
2764 "Butler provides an interface to connect to Jenkins continuous
2765 integration servers. Users can specify a list of server in the
2766 @code{butler-server-list} variable and then use @code{M-x butler-status} to
2767 view the build status of those servers' build jobs, and possibly to trigger
2768 build jobs.")
2769 (license license:gpl3+)))
2770
2771 (define-public emacs-company
2772 (package
2773 (name "emacs-company")
2774 (version "0.9.6")
2775 (source
2776 (origin
2777 (method url-fetch)
2778 (uri (string-append "https://github.com/company-mode/company-mode/archive/"
2779 version ".tar.gz"))
2780 (file-name (string-append name "-" version ".tar.gz"))
2781 (sha256
2782 (base32
2783 "0a7zvmfvxh9w67myvcj2511ayk0fvkm06cdg38y8khnsx63jrr4k"))))
2784 (build-system emacs-build-system)
2785 (arguments
2786 `(#:phases
2787 (modify-phases %standard-phases
2788 (add-before 'check 'fix-bin-dir
2789 (lambda _
2790 ;; The company-files-candidates-normal-root test looks
2791 ;; for the /bin directory, but the build environment has
2792 ;; no /bin directory. Modify the test to look for the
2793 ;; /tmp directory.
2794 (substitute* "test/files-tests.el"
2795 (("/bin/") "/tmp/"))
2796 #t)))
2797 #:tests? #t
2798 #:test-command '("make" "test-batch")))
2799 (home-page "http://company-mode.github.io/")
2800 (synopsis "Modular text completion framework")
2801 (description
2802 "Company is a modular completion mechanism. Modules for retrieving
2803 completion candidates are called back-ends, modules for displaying them are
2804 front-ends. Company comes with many back-ends, e.g. @code{company-elisp}.
2805 These are distributed in separate files and can be used individually.")
2806 (license license:gpl3+)))
2807
2808 (define-public emacs-irony-mode
2809 (package
2810 (name "emacs-irony-mode")
2811 (version "1.2.0")
2812 (home-page "https://github.com/Sarcasm/irony-mode")
2813 (source (origin
2814 (method url-fetch)
2815 (uri (string-append home-page "/archive/v" version ".tar.gz"))
2816 (sha256
2817 (base32
2818 "1f68zi0glkg2aly66s07rx3w0b0hdi1znxan02h6dbabaadylk99"))
2819 (file-name (string-append name "-" version ".tar.gz"))))
2820 (build-system emacs-build-system)
2821 (arguments '())
2822 (propagated-inputs
2823 `(("emacs-irony-mode-server" ,emacs-irony-mode-server)))
2824 (synopsis "C/C++/ObjC Code completion and syntax checks for Emacs")
2825 (description "Irony-mode provides Clang-assisted syntax checking and
2826 completion for C, C++, and ObjC in GNU Emacs. Using @code{libclang} it can
2827 provide syntax checking and autocompletion on compiler level which is very
2828 resistent against false positives. It also integrates well with other
2829 packages like @code{eldoc-mode} and especially @code{company-mode} as
2830 described on the homepage.")
2831 (license license:gpl3+)))
2832
2833 (define-public emacs-irony-mode-server
2834 (package (inherit emacs-irony-mode)
2835 (name "emacs-irony-mode-server")
2836 (inputs
2837 `(("clang" ,clang)))
2838 (propagated-inputs '())
2839 (arguments
2840 `(#:phases
2841 (modify-phases %standard-phases
2842 (replace 'configure
2843 (lambda* (#:key outputs #:allow-other-keys)
2844 (let ((out (assoc-ref outputs "out")))
2845 (invoke "cmake"
2846 "server"
2847 (string-append "-DCMAKE_INSTALL_PREFIX=" out)) #t))))))
2848 (build-system cmake-build-system)
2849 (synopsis "Server for the Emacs @dfn{irony mode}")))
2850
2851 (define-public emacs-company-quickhelp
2852 (package
2853 (name "emacs-company-quickhelp")
2854 (version "2.3.0")
2855 (source
2856 (origin
2857 (method url-fetch)
2858 (uri (string-append
2859 "https://github.com/expez/company-quickhelp/archive/"
2860 version ".tar.gz"))
2861 (file-name (string-append name "-" version ".tar.gz"))
2862 (sha256
2863 (base32
2864 "0xrn2z1dgk5gmkmp2jkn9g83ckk39lqp5pyyv8rl7f6gqvib3qh0"))))
2865 (build-system emacs-build-system)
2866 (propagated-inputs
2867 `(("emacs-pos-tip" ,emacs-pos-tip)
2868 ("emacs-company" ,emacs-company)))
2869 (home-page "https://github.com/expez/company-quickhelp")
2870 (synopsis "Popup documentation for completion candidates")
2871 (description "@code{company-quickhelp} shows documentation for the
2872 completion candidate when using the Company text completion framework.")
2873 (license license:gpl3+)))
2874
2875 (define-public emacs-multiple-cursors
2876 (package
2877 (name "emacs-multiple-cursors")
2878 (version "1.4.0")
2879 (source
2880 (origin
2881 (method url-fetch)
2882 (uri (string-append "https://github.com/magnars/multiple-cursors.el/"
2883 "archive/" version ".tar.gz"))
2884 (file-name (string-append name "-" version ".tar.gz"))
2885 (sha256
2886 (base32
2887 "0hihihlvcvzayg5fnqzcg45fhvlmq6xlq58syy00rjwbry9w389k"))))
2888 (build-system emacs-build-system)
2889 (home-page "https://github.com/magnars/multiple-cursors.el")
2890 (synopsis "Multiple cursors for Emacs")
2891 (description
2892 "This package adds support to Emacs for editing text with multiple
2893 simultaneous cursors.")
2894 (license license:gpl3+)))
2895
2896 (define-public emacs-typo
2897 (package
2898 (name "emacs-typo")
2899 (version "1.1")
2900 (home-page "https://github.com/jorgenschaefer/typoel")
2901 (source (origin
2902 (method git-fetch)
2903 (uri (git-reference
2904 (url home-page)
2905 (commit (string-append "v" version))))
2906 (sha256
2907 (base32
2908 "1jhd4grch5iz12gyxwfbsgh4dmz5hj4bg4gnvphccg8dsnni05k2"))
2909 (file-name (string-append name "-" version))))
2910 (build-system emacs-build-system)
2911 (synopsis "Minor mode for typographic editing")
2912 (description
2913 "This package provides two Emacs modes, @code{typo-mode} and
2914 @code{typo-global-mode}. These modes automatically insert Unicode characters
2915 for quotation marks, dashes, and ellipses. For example, typing @kbd{\"}
2916 automatically inserts a Unicode opening or closing quotation mark, depending
2917 on context.")
2918 (license license:gpl3+)))
2919
2920 (define-public emacs-scheme-complete
2921 (let ((commit "9b5cf224bf2a5994bc6d5b152ff487517f1a9bb5"))
2922 (package
2923 (name "emacs-scheme-complete")
2924 (version (string-append "20151223." (string-take commit 8)))
2925 (source
2926 (origin
2927 (file-name (string-append name "-" version))
2928 (method git-fetch)
2929 (uri (git-reference
2930 (url "https://github.com/ashinn/scheme-complete.git")
2931 (commit commit)))
2932 (sha256
2933 (base32
2934 "141wn9l0m33w0g3dqmx8nxbfdny1r5xbr6ak61rsz21bk0qafs7x"))
2935 (patches
2936 (search-patches "emacs-scheme-complete-scheme-r5rs-info.patch"))))
2937 (build-system emacs-build-system)
2938 (home-page "https://github.com/ashinn/scheme-complete")
2939 (synopsis "Smart tab completion for Scheme in Emacs")
2940 (description
2941 "This file provides a single function, @code{scheme-smart-complete},
2942 which you can use for intelligent, context-sensitive completion for any Scheme
2943 implementation in Emacs. To use it just load this file and bind that function
2944 to a key in your preferred mode.")
2945 (license license:public-domain))))
2946
2947 (define-public emacs-scel
2948 (let ((version "20170629")
2949 (revision "1")
2950 (commit "aeea3ad4be9306d14c3a734a4ff54fee10ac135b"))
2951 (package
2952 (name "emacs-scel")
2953 (version (git-version version revision commit))
2954 (source
2955 (origin
2956 (method git-fetch)
2957 (uri (git-reference
2958 (url "https://github.com/supercollider/scel.git")
2959 (commit commit)))
2960 (file-name (string-append name "-" version "-checkout"))
2961 (sha256
2962 (base32
2963 "0jvmzs1lsjyndqshhii2y4mnr3wghai26i3p75453zrpxpg0zvvw"))))
2964 (build-system emacs-build-system)
2965 (arguments
2966 `(#:modules ((guix build emacs-build-system)
2967 ((guix build cmake-build-system) #:prefix cmake:)
2968 (guix build utils))
2969 #:imported-modules (,@%emacs-build-system-modules
2970 (guix build cmake-build-system))
2971 #:phases
2972 (modify-phases %standard-phases
2973 (add-after 'unpack 'configure
2974 (lambda* (#:key outputs #:allow-other-keys)
2975 (substitute* "el/CMakeLists.txt"
2976 (("share/emacs/site-lisp/SuperCollider")
2977 (string-append
2978 "share/emacs/site-lisp/guix.d/scel-" ,version)))
2979 ((assoc-ref cmake:%standard-phases 'configure)
2980 #:outputs outputs
2981 #:configure-flags '("-DSC_EL_BYTECOMPILE=OFF"))))
2982 (add-after 'set-emacs-load-path 'add-el-dir-to-emacs-load-path
2983 (lambda _
2984 (setenv "EMACSLOADPATH"
2985 (string-append (getcwd) "/el:" (getenv "EMACSLOADPATH")))
2986 #t))
2987 (replace 'install (assoc-ref cmake:%standard-phases 'install)))))
2988 (inputs
2989 `(("supercollider" ,supercollider)))
2990 (native-inputs
2991 `(("cmake" ,cmake)))
2992 (home-page "https://github.com/supercollider/scel")
2993 (synopsis "SuperCollider Emacs interface")
2994 (description "@code{emacs-scel} is an Emacs interface to SuperCollider.
2995 SuperCollider is a platform for audio synthesis and algorithmic composition.")
2996 (license license:gpl2+))))
2997
2998 (define-public emacs-mit-scheme-doc
2999 (package
3000 (name "emacs-mit-scheme-doc")
3001 (version "20140203")
3002 (source
3003 (origin
3004 (modules '((guix build utils)))
3005 (snippet
3006 ;; keep only file of interest
3007 '(begin
3008 (for-each delete-file '("dot-emacs.el" "Makefile"))
3009 (install-file "6.945-config/mit-scheme-doc.el" ".")
3010 (delete-file-recursively "6.945-config")
3011 #t))
3012 (file-name (string-append name "-" version ".tar.bz2"))
3013 (method url-fetch)
3014 (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/"
3015 "6.945/dont-panic/emacs-basic-config.tar.bz2"))
3016 (sha256
3017 (base32
3018 "0dqidg2bd66pawqfarvwca93w5gqf9mikn1k2a2rmd9ymfjpziq1"))))
3019 (build-system emacs-build-system)
3020 (inputs `(("mit-scheme" ,mit-scheme)))
3021 (arguments
3022 `(#:phases
3023 (modify-phases %standard-phases
3024 (add-after 'unpack 'configure-doc
3025 (lambda* (#:key inputs #:allow-other-keys)
3026 (let* ((mit-scheme-dir (assoc-ref inputs "mit-scheme"))
3027 (doc-dir (string-append mit-scheme-dir "/share/doc/"
3028 "mit-scheme-"
3029 ,(package-version mit-scheme))))
3030 (substitute* "mit-scheme-doc.el"
3031 (("http://www\\.gnu\\.org/software/mit-scheme/documentation/mit-scheme-ref/")
3032 (string-append "file:" doc-dir "/mit-scheme-ref/")))))))))
3033 (home-page "http://groups.csail.mit.edu/mac/users/gjs/6.945/dont-panic/")
3034 (synopsis "MIT-Scheme documentation lookup for Emacs")
3035 (description
3036 "This package provides a set of Emacs functions to search definitions of
3037 identifiers in the MIT-Scheme documentation.")
3038 (license license:gpl2+)))
3039
3040 (define-public emacs-constants
3041 (package
3042 (name "emacs-constants")
3043 (version "2.6")
3044 (home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
3045 (source
3046 (origin
3047 (file-name (string-append name "-" version ".tar.gz"))
3048 (method url-fetch)
3049 (uri (string-append "https://github.com/fedeinthemix/emacs-constants"
3050 "/archive/v" version ".tar.gz"))
3051 (sha256
3052 (base32
3053 "0pnrpmmxq8mh5h2hbrp5vcym0j0fh6dv3s7c5ccn18wllhzg9g7n"))))
3054 (build-system emacs-build-system)
3055 (synopsis "Enter definition of constants into an Emacs buffer")
3056 (description
3057 "This package provides functions for inserting the definition of natural
3058 constants and units into an Emacs buffer.")
3059 (license license:gpl2+)))
3060
3061 (define-public emacs-tagedit
3062 (package
3063 (name "emacs-tagedit")
3064 (version "1.4.0")
3065 (source
3066 (origin
3067 (method url-fetch)
3068 (uri (string-append "https://github.com/magnars/tagedit/"
3069 "archive/" version ".tar.gz"))
3070 (file-name (string-append name "-" version ".tar.gz"))
3071 (sha256
3072 (base32
3073 "1apfnann4qklfdsmdi7icjsj18x7gwx8d83iqr4z25clszz95xfq"))))
3074 (build-system emacs-build-system)
3075 (propagated-inputs
3076 `(("emacs-s" ,emacs-s)
3077 ("emacs-dash" ,emacs-dash)))
3078 (home-page "https://github.com/magnars/tagedit")
3079 (synopsis "Some paredit-like features for html-mode")
3080 (description
3081 "This package provides a collection of paredit-like functions for editing
3082 in @code{html-mode}.")
3083 (license license:gpl3+)))
3084
3085 (define-public emacs-slime
3086 (package
3087 (name "emacs-slime")
3088 (version "2.22")
3089 (source
3090 (origin
3091 (file-name (string-append name "-" version ".tar.gz"))
3092 (method url-fetch)
3093 (uri (string-append
3094 "https://github.com/slime/slime/archive/v"
3095 version ".tar.gz"))
3096 (sha256
3097 (base32
3098 "07vaib1n4zyh5yy30gdpq0bc5cv6w84piml5b3mfc9ibjhaykkms"))))
3099 (build-system emacs-build-system)
3100 (native-inputs
3101 `(("texinfo" ,texinfo)))
3102 (arguments
3103 `(#:include '("\\.el$" "\\.lisp$" "\\.asd$" "contrib")
3104 #:exclude '("^slime-tests.el" "^contrib/test/"
3105 "^contrib/Makefile$" "^contrib/README.md$")
3106 #:phases
3107 (modify-phases %standard-phases
3108 (add-before 'install 'configure
3109 (lambda* _
3110 (emacs-substitute-variables "slime.el"
3111 ("inferior-lisp-program" "sbcl"))
3112 #t))
3113 (add-before 'install 'install-doc
3114 (lambda* (#:key outputs #:allow-other-keys)
3115 (let* ((out (assoc-ref outputs "out"))
3116 (info-dir (string-append out "/share/info"))
3117 (doc-dir (string-append out "/share/doc/"
3118 ,name "-" ,version))
3119 (doc-files '("doc/slime-refcard.pdf"
3120 "README.md" "NEWS" "PROBLEMS"
3121 "CONTRIBUTING.md")))
3122 (with-directory-excursion "doc"
3123 (substitute* "Makefile"
3124 (("infodir=/usr/local/info")
3125 (string-append "infodir=" info-dir)))
3126 (invoke "make" "html/index.html")
3127 (invoke "make" "slime.info")
3128 (install-file "slime.info" info-dir)
3129 (copy-recursively "html" (string-append doc-dir "/html")))
3130 (for-each (lambda (f)
3131 (install-file f doc-dir)
3132 (delete-file f))
3133 doc-files)
3134 (delete-file-recursively "doc")
3135 #t))))))
3136 (home-page "https://github.com/slime/slime")
3137 (synopsis "Superior Lisp Interaction Mode for Emacs")
3138 (description
3139 "SLIME extends Emacs with support for interactive programming in
3140 Common Lisp. The features are centered around @command{slime-mode},
3141 an Emacs minor mode that complements the standard @command{lisp-mode}.
3142 While lisp-mode supports editing Lisp source files, @command{slime-mode}
3143 adds support for interacting with a running Common Lisp process
3144 for compilation, debugging, documentation lookup, and so on.")
3145 (license (list license:gpl2+ license:public-domain))))
3146
3147 (define-public emacs-popup
3148 (package
3149 (name "emacs-popup")
3150 (version "0.5.3")
3151 (source (origin
3152 (method url-fetch)
3153 (uri (string-append
3154 "https://github.com/auto-complete/popup-el/archive/v"
3155 version ".tar.gz"))
3156 (file-name (string-append name "-" version ".tar.gz"))
3157 (sha256
3158 (base32
3159 "1yrgfj8y69xmcb6kwgplhq68ndm9410qwh7sd2knnd1gchpphdc0"))))
3160 (build-system emacs-build-system)
3161 (home-page "https://github.com/auto-complete/popup-el")
3162 (synopsis "Visual Popup User Interface for Emacs")
3163 (description
3164 "Popup.el is a visual popup user interface library for Emacs.
3165 This provides a basic API and common UI widgets such as popup tooltips
3166 and popup menus.")
3167 (license license:gpl3+)))
3168
3169 (define-public emacs-puppet-mode
3170 (let ((commit "b3ed5057166a4f49dfa9be638523a348b55a2fd2")
3171 (revision "1"))
3172 (package
3173 (name "emacs-puppet-mode")
3174 ;; The last release, 0.3 was several years ago, and there have been many
3175 ;; commits since
3176 (version (git-version "0.3" revision commit))
3177 (source
3178 (origin
3179 (method url-fetch)
3180 (uri (string-append
3181 "https://raw.githubusercontent.com/voxpupuli/puppet-mode/"
3182 commit "/puppet-mode.el"))
3183 (sha256
3184 (base32
3185 "1indycxawsl0p2aqqg754f6735q3cmah9vd886rpn0ncc3ipi1xm"))))
3186 (build-system emacs-build-system)
3187 (home-page "https://github.com/voxpupuli/puppet-mode")
3188 (synopsis "Emacs major mode for the Puppet configuration language")
3189 (description
3190 "This package provides support for the Puppet configuration language,
3191 including syntax highlighting, indentation of expressions and statements,
3192 linting of manifests and integration with Puppet Debugger.")
3193 ;; Also incorporates work covered by the Apache License, Version 2.0
3194 (license license:gpl3+))))
3195
3196 (define-public emacs-god-mode
3197 (let ((commit "6cf0807b6555eb6fcf8387a4e3b667071ef38964")
3198 (revision "1"))
3199 (package
3200 (name "emacs-god-mode")
3201 (version (string-append "20151005.925."
3202 revision "-" (string-take commit 9)))
3203 (source
3204 (origin
3205 (method git-fetch)
3206 (uri (git-reference
3207 (url "https://github.com/chrisdone/god-mode.git")
3208 (commit commit)))
3209 (file-name (string-append name "-" version "-checkout"))
3210 (sha256
3211 (base32
3212 "1am415k4xxcva6y3vbvyvknzc6bma49pq3p85zmpjsdmsp18qdix"))))
3213 (build-system emacs-build-system)
3214 (home-page "https://github.com/chrisdone/god-mode")
3215 (synopsis "Minor mode for entering commands without modifier keys")
3216 (description
3217 "This package provides a global minor mode for entering Emacs commands
3218 without modifier keys. It's similar to Vim's separation of commands and
3219 insertion mode. When enabled all keys are implicitly prefixed with
3220 @samp{C-} (among other helpful shortcuts).")
3221 (license license:gpl3+))))
3222
3223 (define-public emacs-jinja2-mode
3224 (package
3225 (name "emacs-jinja2-mode")
3226 (version "0.2")
3227 (source
3228 (origin
3229 (method url-fetch)
3230 (uri (string-append "https://github.com/paradoxxxzero/jinja2-mode/"
3231 "archive/v" version ".tar.gz"))
3232 (file-name (string-append name "-" version ".tar.gz"))
3233 (sha256
3234 (base32
3235 "0cgxjab1kla2zc2fj7bzib6i7snp08zshandmp9kqcm85l262xpn"))))
3236 (build-system emacs-build-system)
3237 (home-page "https://github.com/paradoxxxzero/jinja2-mode")
3238 (synopsis "Major mode for jinja2")
3239 (description
3240 "Emacs major mode for jinja2 with: syntax highlighting,
3241 sgml/html integration, and indentation (working with sgml).")
3242 (license license:gpl3+)))
3243
3244 (define-public emacs-rfcview
3245 (package
3246 (name "emacs-rfcview")
3247 (version "0.13")
3248 (home-page "http://www.loveshack.ukfsn.org/emacs")
3249 (source (origin
3250 (method url-fetch)
3251 (uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el")
3252 (sha256
3253 (base32
3254 "0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz"))))
3255 (build-system emacs-build-system)
3256 (synopsis "Prettify Request for Comments (RFC) documents")
3257 (description "The Internet Engineering Task Force (IETF) and the Internet
3258 Society (ISOC) publish various Internet-related protocols and specifications
3259 as \"Request for Comments\" (RFC) documents and Internet Standard (STD)
3260 documents. RFCs and STDs are published in a simple text form. This package
3261 provides an Emacs major mode, rfcview-mode, which makes it more pleasant to
3262 read these documents in Emacs. It prettifies the text and adds
3263 hyperlinks/menus for easier navigation. It also provides functions for
3264 browsing the index of RFC documents and fetching them from remote servers or
3265 local directories.")
3266 (license license:gpl3+)))
3267
3268 (define-public emacs-ffap-rfc-space
3269 (package
3270 (name "emacs-ffap-rfc-space")
3271 (version "12")
3272 (home-page "http://user42.tuxfamily.org/ffap-rfc-space/index.html")
3273 (source (origin
3274 (method url-fetch)
3275 (uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el")
3276 (sha256
3277 (base32
3278 "1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck"))))
3279 (build-system emacs-build-system)
3280 (synopsis "Make ffap recognize an RFC with a space before its number")
3281 (description "The Internet Engineering Task Force (IETF) and the
3282 Internet Society (ISOC) publish various Internet-related protocols and
3283 specifications as \"Request for Comments\" (RFC) documents. The
3284 built-in Emacs module \"ffap\" (Find File at Point) has the ability to
3285 recognize names at point which look like \"RFC1234\" and \"RFC-1234\"
3286 and load the appropriate RFC from a remote server. However, it fails
3287 to recognize a name like \"RFC 1234\". This package enhances ffap so
3288 that it correctly finds RFCs even when a space appears before the
3289 number.")
3290 (license license:gpl3+)))
3291
3292 (define-public emacs-org-bullets
3293 (package
3294 (name "emacs-org-bullets")
3295 (version "0.2.4")
3296 (source
3297 (origin
3298 (method url-fetch)
3299 (uri (string-append "https://github.com/sabof/org-bullets/archive/"
3300 version ".tar.gz"))
3301 (file-name (string-append name "-" version ".tar.gz"))
3302 (sha256
3303 (base32
3304 "1dyxvpb73vj80v8br2q9rf255hfphrgaw91fbvwdcd735np9pcnh"))))
3305 (build-system emacs-build-system)
3306 (home-page "https://github.com/sabof/org-bullets")
3307 (synopsis "Show bullets in org-mode as UTF-8 characters")
3308 (description
3309 "This package provides an Emacs minor mode causing bullets in
3310 @code{org-mode} to be rendered as UTF-8 characters.")
3311 (license license:gpl3+)))
3312
3313 (define-public emacs-org-pomodoro
3314 (package
3315 (name "emacs-org-pomodoro")
3316 (version "2.1.0")
3317 (source
3318 (origin
3319 (method url-fetch)
3320 (uri (string-append
3321 "https://github.com/lolownia/org-pomodoro/archive/"
3322 version ".tar.gz"))
3323 (file-name (string-append name "-" version ".tar.gz"))
3324 (sha256
3325 (base32
3326 "1jalsggw3q5kvj353f84x4nl04a5vmq07h75ggppy1627lb31zm4"))))
3327 (build-system emacs-build-system)
3328 (propagated-inputs
3329 `(("emacs-alert" ,emacs-alert)))
3330 (home-page "https://github.com/lolownia/org-pomodoro")
3331 (synopsis "Pomodoro technique for org-mode")
3332 (description "@code{emacs-org-pomodoro} adds very basic support for
3333 Pomodoro technique in Emacs org-mode.
3334
3335 Run @code{M-x org-pomodoro} for the task at point or select one of the
3336 last tasks that you clocked time for. Each clocked-in pomodoro starts
3337 a timer of 25 minutes and after each pomodoro a break timer of 5
3338 minutes is started automatically. Every 4 breaks a long break is
3339 started with 20 minutes. All values are customizable.")
3340 (license license:gpl3+)))
3341
3342 (define-public emacs-org-trello
3343 (package
3344 (name "emacs-org-trello")
3345 (version "0.8.0")
3346 (source (origin
3347 (method url-fetch)
3348 (uri (string-append
3349 "https://github.com/org-trello/org-trello/archive/"
3350 version ".tar.gz"))
3351 (file-name (string-append name "-" version ".tar.gz"))
3352 (sha256
3353 (base32
3354 "0549mnf5cgwn8b8jbl38fljbaxmh1605sv9j8f3lsa95jhs1zpa0"))))
3355 (build-system emacs-build-system)
3356 (propagated-inputs
3357 `(("emacs-dash" ,emacs-dash)
3358 ("emacs-deferred" ,emacs-deferred)
3359 ("emacs-f" ,emacs-f)
3360 ("emacs-helm" ,emacs-helm)
3361 ("emacs-request" ,emacs-request)
3362 ("emacs-s" ,emacs-s)))
3363 (home-page "https://org-trello.github.io")
3364 (synopsis "Emacs minor mode for interacting with Trello")
3365 (description "This package provides an Emacs minor mode to extend
3366 @code{org-mode} with Trello abilities. Trello is an online project
3367 organizer.")
3368 (license license:gpl3+)))
3369
3370 (define-public emacs-atom-one-dark-theme
3371 (let ((commit "1f1185bf667a38d3d0d180ce85fd4c131818aae2")
3372 (revision "0"))
3373 (package
3374 (name "emacs-atom-one-dark-theme")
3375 (version (git-version "0.4.0" revision commit))
3376 (source (origin
3377 (method git-fetch)
3378 (uri (git-reference
3379 (url "https://github.com/jonathanchu/atom-one-dark-theme.git")
3380 (commit commit)))
3381 (sha256
3382 (base32
3383 "1alma16hg3mfjly8a9s3mrswkjjx4lrpdnf43869hn2ibkn7zx9z"))
3384 (file-name (git-file-name name version))))
3385 (build-system emacs-build-system)
3386 (home-page "https://github.com/jonathanchu/atom-one-dark-theme")
3387 (synopsis "Atom One Dark color theme for Emacs")
3388 (description "An Emacs port of the Atom One Dark theme from Atom.io.")
3389 (license license:gpl3+))))
3390
3391 (define-public emacs-zenburn-theme
3392 (package
3393 (name "emacs-zenburn-theme")
3394 (version "2.6")
3395 (source (origin
3396 (method url-fetch)
3397 (uri (string-append
3398 "https://github.com/bbatsov/zenburn-emacs/archive/v"
3399 version ".tar.gz"))
3400 (file-name (string-append name "-" version ".tar.gz"))
3401 (sha256
3402 (base32
3403 "0qc9d1rwq55yzh8shbppyd6izy1grpyr8kqh5zdgm7c5jccngpr4"))))
3404 (build-system emacs-build-system)
3405 (home-page "https://github.com/bbatsov/zenburn-emacs")
3406 (synopsis "Low contrast color theme for Emacs")
3407 (description
3408 "Zenburn theme is a port of the popular Vim Zenburn theme for Emacs.
3409 It is built on top of the custom theme support in Emacs 24 or later.")
3410 (license license:gpl3+)))
3411
3412 (define-public emacs-solarized-theme
3413 (package
3414 (name "emacs-solarized-theme")
3415 (version "1.2.2")
3416 (source (origin
3417 (method url-fetch)
3418 (uri (string-append "https://github.com/bbatsov/solarized-emacs/"
3419 "archive/v" version ".tar.gz"))
3420 (file-name (string-append name "-" version ".tar.gz"))
3421 (sha256
3422 (base32
3423 "1ha3slc6d9wi9ilkhmwrzkvf308n6ph7b0k69pk369s9304awxzx"))))
3424 (build-system emacs-build-system)
3425 (propagated-inputs
3426 `(("emacs-dash" ,emacs-dash)))
3427 (home-page "https://github.com/bbatsov/solarized-emacs")
3428 (synopsis "Port of the Solarized theme for Emacs")
3429 (description
3430 "Solarized for Emacs is a port of the Solarized theme for Vim. This
3431 package provides a light and a dark variant.")
3432 (license license:gpl3+)))
3433
3434 (define-public emacs-ahungry-theme
3435 (package
3436 (name "emacs-ahungry-theme")
3437 (version "1.10.0")
3438 (source
3439 (origin (method url-fetch)
3440 (uri (string-append "https://elpa.gnu.org/packages/ahungry-theme-"
3441 version ".tar"))
3442 (sha256
3443 (base32
3444 "14q5yw56n82qph09bk7wmj5b1snhh9w0nk5s1l7yn9ldg71xq6pm"))))
3445 (build-system emacs-build-system)
3446 (home-page "https://github.com/ahungry/color-theme-ahungry")
3447 (synopsis "Ahungry color theme for Emacs")
3448 (description "Ahungry theme for Emacs provides bright and bold colors.
3449 If you load it from a terminal, you will be able to make use of the
3450 transparent background. If you load it from a GUI, it will default to a
3451 dark background.")
3452 (license license:gpl3+)))
3453
3454 (define-public emacs-2048-game
3455 (package
3456 (name "emacs-2048-game")
3457 (version "20151026.1233")
3458 (source
3459 (origin
3460 (method url-fetch)
3461 (uri (string-append "https://melpa.org/packages/2048-game-"
3462 version ".el"))
3463 (sha256
3464 (base32
3465 "0gy2pvz79whpavp4jmz8h9krzn7brmvv3diixi1d4w51pcdvaldd"))))
3466 (build-system emacs-build-system)
3467 (home-page "https://bitbucket.org/zck/2048.el")
3468 (synopsis "Implementation of the game 2048 in Emacs Lisp")
3469 (description
3470 "This program is an implementation of 2048 for Emacs.
3471 The goal of this game is to create a tile with value 2048. The size of the
3472 board and goal value can be customized.")
3473 (license license:gpl3+)))
3474
3475 (define-public emacs-base16-theme
3476 (package
3477 (name "emacs-base16-theme")
3478 (version "2.1")
3479 (source
3480 (origin
3481 (method url-fetch)
3482 (uri (string-append "https://stable.melpa.org/packages/base16-theme-"
3483 version ".tar"))
3484 (sha256
3485 (base32
3486 "0z6hrwz2jlz6jbr381rcqcqvx6hss5cad352klx07rark7zccacj"))))
3487 (build-system emacs-build-system)
3488 (home-page "https://github.com/belak/base16-emacs")
3489 (synopsis "Base16 color themes for Emacs")
3490 (description
3491 "Base16 provides carefully chosen syntax highlighting and a default set
3492 of sixteen colors suitable for a wide range of applications. Base16 is not a
3493 single theme but a set of guidelines with numerous implementations.")
3494 (license license:expat)))
3495
3496 (define-public emacs-smartparens
3497 (package
3498 (name "emacs-smartparens")
3499 (version "1.11.0")
3500 (source (origin
3501 (method url-fetch)
3502 (uri (string-append
3503 "https://github.com/Fuco1/smartparens/archive/"
3504 version ".tar.gz"))
3505 (file-name (string-append name "-" version ".tar.gz"))
3506 (sha256
3507 (base32
3508 "0q5as813xs8y29i3v2rm97phd6m7xsmmw6hwbvx57gwmi8i1c409"))))
3509 (build-system emacs-build-system)
3510 (propagated-inputs
3511 `(("emacs-dash" ,emacs-dash)
3512 ("emacs-markdown-mode" ,emacs-markdown-mode)))
3513 (home-page "https://github.com/Fuco1/smartparens")
3514 (synopsis "Paredit-like insertion, wrapping and navigation with user
3515 defined pairs")
3516 (description
3517 "Smartparens is a minor mode for Emacs that deals with parens pairs
3518 and tries to be smart about it. It started as a unification effort to
3519 combine functionality of several existing packages in a single,
3520 compatible and extensible way to deal with parentheses, delimiters, tags
3521 and the like. Some of these packages include autopair, textmate,
3522 wrap-region, electric-pair-mode, paredit and others. With the basic
3523 features found in other packages it also brings many improvements as
3524 well as completely new features.")
3525 (license license:gpl3+)))
3526
3527 (define-public emacs-highlight-symbol
3528 (package
3529 (name "emacs-highlight-symbol")
3530 (version "1.3")
3531 (source (origin
3532 (method url-fetch)
3533 (uri (string-append
3534 "https://github.com/nschum/highlight-symbol.el/archive/"
3535 version ".tar.gz"))
3536 (file-name (string-append name "-" version ".tar.gz"))
3537 (sha256
3538 (base32
3539 "1n7k1qns0fn0jsyc0hrjac5nzk21xw48yc30vyrhwvc51h0b9g90"))))
3540 (build-system emacs-build-system)
3541 (home-page "https://nschum.de/src/emacs/highlight-symbol")
3542 (synopsis "Automatic and manual symbol highlighting for Emacs")
3543 (description
3544 "Use @code{highlight-symbol} to toggle highlighting of the symbol at
3545 point throughout the current buffer. Use @code{highlight-symbol-mode} to keep
3546 the symbol at point highlighted.
3547
3548 The functions @code{highlight-symbol-next}, @code{highlight-symbol-prev},
3549 @code{highlight-symbol-next-in-defun} and
3550 @code{highlight-symbol-prev-in-defun} allow for cycling through the locations
3551 of any symbol at point. Use @code{highlight-symbol-nav-mode} to enable key
3552 bindings @code{M-p} and @code{M-p} for navigation. When
3553 @code{highlight-symbol-on-navigation-p} is set, highlighting is triggered
3554 regardless of @code{highlight-symbol-idle-delay}.
3555
3556 @code{highlight-symbol-query-replace} can be used to replace the symbol. ")
3557 (license license:gpl2+)))
3558
3559 (define-public emacs-hl-todo
3560 (package
3561 (name "emacs-hl-todo")
3562 (version "1.9.0")
3563 (source (origin
3564 (method url-fetch)
3565 (uri (string-append
3566 "https://raw.githubusercontent.com/tarsius/hl-todo/"
3567 version "/hl-todo.el"))
3568 (file-name (string-append "hl-todo-" version ".el"))
3569 (sha256
3570 (base32
3571 "0728givzh7xv5i88ac9if8byj1p8bilrj1fnizca10s0rv100hdr"))))
3572 (build-system emacs-build-system)
3573 (home-page "https://github.com/tarsius/hl-todo")
3574 (synopsis "Emacs mode to highlight TODO and similar keywords")
3575 (description
3576 "This package provides an Emacs mode to highlight TODO and similar
3577 keywords in comments and strings. This package also provides commands for
3578 moving to the next or previous keyword and to invoke @code{occur} with a
3579 regexp that matches all known keywords.")
3580 (license license:gpl3+)))
3581
3582 (define-public emacs-perspective
3583 (package
3584 (name "emacs-perspective")
3585 (version "1.12")
3586 (source
3587 (origin
3588 (method url-fetch)
3589 (uri (string-append "https://github.com/nex3/perspective-el/"
3590 "archive/" version ".tar.gz"))
3591 (file-name (string-append name "-" version ".tar.gz"))
3592 (sha256
3593 (base32
3594 "078ahh0kmhdylq5ib9c81c76kz1n02xwc83pm729d00i84ibviic"))))
3595 (build-system emacs-build-system)
3596 (home-page "https://github.com/nex3/perspective-el")
3597 (synopsis "Switch between named \"perspectives\"")
3598 (description
3599 "This package provides tagged workspaces in Emacs, similar to workspaces in
3600 windows managers such as Awesome and XMonad. @code{perspective.el} provides
3601 multiple workspaces (or \"perspectives\") for each Emacs frame. Each
3602 perspective is composed of a window configuration and a set of buffers.
3603 Switching to a perspective activates its window configuration, and when in a
3604 perspective only its buffers are available by default.")
3605 ;; This package is released under the same license as Emacs (GPLv3+) or
3606 ;; the Expat license.
3607 (license license:gpl3+)))
3608
3609 (define-public emacs-test-simple
3610 (package
3611 (name "emacs-test-simple")
3612 (version "1.3.0")
3613 (source
3614 (origin
3615 (method url-fetch)
3616 (uri (string-append "https://elpa.gnu.org/packages/test-simple-"
3617 version ".el"))
3618 (sha256
3619 (base32
3620 "1yd61jc9ds95a5n09052kwc5gasy57g4lxr0jsff040brlyi9czz"))))
3621 (build-system emacs-build-system)
3622 (home-page "https://github.com/rocky/emacs-test-simple")
3623 (synopsis "Simple unit test framework for Emacs Lisp")
3624 (description
3625 "Test Simple is a simple unit test framework for Emacs Lisp. It
3626 alleviates the need for context macros, enclosing specifications or required
3627 test tags. It supports both interactive and non-interactive use.")
3628 (license license:gpl3+)))
3629
3630 (define-public emacs-load-relative
3631 (package
3632 (name "emacs-load-relative")
3633 (version "1.3")
3634 (source
3635 (origin
3636 (method url-fetch)
3637 (uri (string-append "https://elpa.gnu.org/packages/load-relative-"
3638 version ".el"))
3639 (sha256
3640 (base32
3641 "1hfxb2436jdsi9wfmsv47lkkpa5galjf5q81bqabbsv79rv59dps"))))
3642 (build-system emacs-build-system)
3643 (home-page "http://github.com/rocky/emacs-load-relative")
3644 (synopsis "Emacs Lisp relative file loading related functions")
3645 (description
3646 "Provides functions which facilitate writing multi-file Emacs packages
3647 and running from the source tree without having to \"install\" code or fiddle
3648 with @{load-path}.
3649
3650 The main function, @code{load-relative}, loads an Emacs Lisp file relative to
3651 another (presumably currently running) Emacs Lisp file.")
3652 (license license:gpl3+)))
3653
3654 (define-public emacs-loc-changes
3655 (package
3656 (name "emacs-loc-changes")
3657 (version "1.2")
3658 (source
3659 (origin
3660 (method url-fetch)
3661 (uri (string-append "https://elpa.gnu.org/packages/loc-changes-"
3662 version ".el"))
3663 (sha256
3664 (base32
3665 "1x8fn8vqasayf1rb8a6nma9n6nbvkx60krmiahyb05vl5rrsw6r3"))))
3666 (build-system emacs-build-system)
3667 (home-page "https://github.com/rocky/emacs-loc-changes")
3668 (synopsis "Keeps track of positions even after buffer changes")
3669 (description
3670 "This Emacs package provides a mean to track important buffer positions
3671 after buffer changes.")
3672 (license license:gpl3+)))
3673
3674 (define-public emacs-realgud
3675 (package
3676 (name "emacs-realgud")
3677 (version "1.4.5")
3678 (source
3679 (origin
3680 (method url-fetch)
3681 (uri (string-append "https://elpa.gnu.org/packages/realgud-"
3682 version ".tar"))
3683 (sha256
3684 (base32
3685 "108wgxg7fb4byaiasgvbxv2hq7b00biq9f0mh9hy6vw4160y5w24"))
3686 (patches
3687 ;; Patch awaiting inclusion upstream (see:
3688 ;; https://github.com/realgud/realgud/pull/226).
3689 (search-patches "emacs-realgud-fix-configure-ac.patch"))))
3690 (build-system emacs-build-system)
3691 (arguments
3692 `(#:tests? #t
3693 #:phases
3694 (modify-phases %standard-phases
3695 (add-after 'set-emacs-load-path 'fix-autogen-script
3696 (lambda _
3697 (substitute* "autogen.sh"
3698 (("./configure") "sh configure"))))
3699 (add-after 'fix-autogen-script 'autogen
3700 (lambda _
3701 (setenv "CONFIG_SHELL" "sh")
3702 (invoke "sh" "autogen.sh")))
3703 (add-after 'fix-autogen-script 'set-home
3704 (lambda _
3705 (setenv "HOME" (getenv "TMPDIR"))))
3706 (add-before 'patch-el-files 'remove-realgud-pkg.el
3707 (lambda _
3708 ;; XXX: This file is auto-generated at some point and causes
3709 ;; substitute* to crash during the `patch-el-files' phase with:
3710 ;; ERROR: In procedure stat: No such file or directory:
3711 ;; "./realgud-pkg.el"
3712 (delete-file "./realgud-pkg.el")
3713 ;; FIXME: `patch-el-files' crashes on this file with error:
3714 ;; unable to locate "bashdb".
3715 (delete-file "./test/test-regexp-bashdb.el"))))
3716 #:include (cons* ".*\\.el$" %default-include)))
3717 (native-inputs
3718 `(("autoconf" ,autoconf)
3719 ("automake" ,automake)
3720 ("emacs-test-simple" ,emacs-test-simple)))
3721 (propagated-inputs
3722 `(("emacs-load-relative" ,emacs-load-relative)
3723 ("emacs-loc-changes" ,emacs-loc-changes)))
3724 (home-page "https://github.com/realgud/realgud/")
3725 (synopsis
3726 "Modular front-end for interacting with external debuggers")
3727 (description
3728 "RealGUD is a modular, extensible GNU Emacs front-end for interacting
3729 with external debuggers. It integrates various debuggers such as gdb, pdb,
3730 ipdb, jdb, lldb, bashdb, zshdb, etc. and allows to visually step code in the
3731 sources. Unlike GUD, it also supports running multiple debug sessions in
3732 parallel.")
3733 (license license:gpl3+)))
3734
3735 (define-public emacs-request
3736 (package
3737 (name "emacs-request")
3738 (version "0.3.0")
3739 (source (origin
3740 (method git-fetch)
3741 (uri (git-reference
3742 (url "https://github.com/tkf/emacs-request.git")
3743 (commit (string-append "v" version))))
3744 (file-name (string-append name "-" version "-checkout"))
3745 (sha256
3746 (base32
3747 "0wyxqbb35yqf6ci47531lk32d6fppamx9d8826kdz983vm87him7"))))
3748 (build-system emacs-build-system)
3749 (propagated-inputs
3750 `(("emacs-deferred" ,emacs-deferred)))
3751 (home-page "https://github.com/tkf/emacs-request")
3752 (synopsis "Package for speaking HTTP in Emacs Lisp")
3753 (description "This package provides a HTTP request library with multiple
3754 backends. It supports url.el which is shipped with Emacs and the curl command
3755 line program.")
3756 (license license:gpl3+)))
3757
3758 (define-public emacs-rudel
3759 (package
3760 (name "emacs-rudel")
3761 (version "0.3.1")
3762 (source
3763 (origin
3764 (method url-fetch)
3765 (uri (string-append "http://elpa.gnu.org/packages/rudel-"
3766 version ".tar"))
3767 (sha256
3768 (base32
3769 "0glqa68g509p0s2vcc0i8kzlddnc9brd9jqhnm5rzxz4i050cvnz"))))
3770 (build-system emacs-build-system)
3771 (home-page "http://rudel.sourceforge.net/")
3772 (synopsis "Collaborative editing framework")
3773 (description
3774 "Rudel is a collaborative editing environment for GNU Emacs. Its purpose
3775 is to share buffers with other users in order to edit the contents of those
3776 buffers collaboratively. Rudel supports multiple backends to enable
3777 communication with other collaborative editors using different protocols,
3778 though currently Obby (for use with the Gobby editor) is the only
3779 fully-functional one.")
3780 (license license:gpl3+)))
3781
3782 (define-public emacs-hydra
3783 (package
3784 (name "emacs-hydra")
3785 (version "0.14.0")
3786 (source
3787 (origin
3788 (method url-fetch)
3789 (uri (string-append "https://github.com/abo-abo/hydra/archive/"
3790 version ".tar.gz"))
3791 (file-name (string-append name "-" version ".tar.gz"))
3792 (sha256
3793 (base32
3794 "0884k3ffwzhh6krbd8l7vvm184dkagb2jf4q8xzg72plln34qrm8"))))
3795 (build-system emacs-build-system)
3796 (home-page "https://github.com/abo-abo/hydra")
3797 (synopsis "Make Emacs bindings that stick around")
3798 (description
3799 "This package can be used to tie related commands into a family of short
3800 bindings with a common prefix---a Hydra. Once you summon the Hydra (through
3801 the prefixed binding), all the heads can be called in succession with only a
3802 short extension. Any binding that isn't the Hydra's head vanquishes the
3803 Hydra. Note that the final binding, besides vanquishing the Hydra, will still
3804 serve its original purpose, calling the command assigned to it. This makes
3805 the Hydra very seamless; it's like a minor mode that disables itself
3806 automatically.")
3807 (license license:gpl3+)))
3808
3809 (define-public emacs-ivy
3810 (package
3811 (name "emacs-ivy")
3812 (version "0.10.0")
3813 (source
3814 (origin
3815 (method git-fetch)
3816 (uri (git-reference
3817 (url "https://github.com/abo-abo/swiper.git")
3818 (commit version)))
3819 (file-name (string-append name "-" version "-checkout"))
3820 (sha256
3821 (base32
3822 "14vnigqb5c3yi4q9ysw1fiwdqyqwyklqpb9wnjf81chm7s2mshnr"))))
3823 (build-system emacs-build-system)
3824 (arguments
3825 `(#:phases
3826 (modify-phases %standard-phases
3827 (add-after 'install 'install-doc
3828 (lambda* (#:key outputs #:allow-other-keys)
3829 (let* ((out (assoc-ref outputs "out"))
3830 (info (string-append out "/share/info")))
3831 (with-directory-excursion "doc"
3832 (invoke "makeinfo" "ivy.texi")
3833 (install-file "ivy.info" info)
3834 #t)))))))
3835 (propagated-inputs
3836 `(("emacs-hydra" ,emacs-hydra)))
3837 (native-inputs
3838 `(("texinfo" ,texinfo)))
3839 (home-page "http://oremacs.com/swiper/")
3840 (synopsis "Incremental vertical completion for Emacs")
3841 (description
3842 "This package provides @code{ivy-read} as an alternative to
3843 @code{completing-read} and similar functions. No attempt is made to determine
3844 the best candidate. Instead, the user can navigate candidates with
3845 @code{ivy-next-line} and @code{ivy-previous-line}. The matching is done by
3846 splitting the input text by spaces and re-building it into a regular
3847 expression.")
3848 (license license:gpl3+)))
3849
3850 (define-public emacs-ivy-yasnippet
3851 (let ((commit "59b32cf8cfb63df906822a17f6f5e8545dac38d4"))
3852 (package
3853 (name "emacs-ivy-yasnippet")
3854 (version (git-version "0.1" "1" commit))
3855 (source
3856 (origin
3857 (method git-fetch)
3858 (uri (git-reference
3859 (url "https://github.com/mkcms/ivy-yasnippet.git")
3860 (commit commit)))
3861 (file-name (git-file-name name version))
3862 (sha256
3863 (base32
3864 "0hghdlxkfwrglvc1nql2ikgp6jj0qdbfwc3yvpb19mrf26hwgp13"))))
3865 (build-system emacs-build-system)
3866 (propagated-inputs
3867 `(("emacs-ivy" ,emacs-ivy)
3868 ("emacs-yasnippet" ,emacs-yasnippet)
3869 ("emacs-dash" ,emacs-dash)))
3870 (home-page "https://github.com/mkcms/ivy-yasnippet")
3871 (synopsis "Preview @code{yasnippets} with @code{ivy}")
3872 (description "This package allows you to select @code{yasnippet}
3873 snippets using @code{ivy} completion. When current selection changes in the
3874 minibuffer, the snippet contents are temporarily expanded in the buffer. To
3875 use it, call @code{M-x ivy-yasnippet} (but make sure you have enabled
3876 @code{yas-minor-mode} first).")
3877 (license license:gpl3+))))
3878
3879 (define-public emacs-ivy-rich
3880 (package
3881 (name "emacs-ivy-rich")
3882 (version "0.1.0")
3883 (source
3884 (origin
3885 (method url-fetch)
3886 (uri (string-append "https://github.com/Yevgnen/ivy-rich/archive/"
3887 version ".tar.gz"))
3888 (file-name (string-append name "-" version ".tar.gz"))
3889 (sha256
3890 (base32
3891 "14r3mx5rkd4wz0ls5pv5w6c7la3z9iy93d3jfind3xyg4kywy95c"))))
3892 (build-system emacs-build-system)
3893 (propagated-inputs
3894 `(("emacs-ivy" ,emacs-ivy)))
3895 (home-page "https://github.com/Yevgnen/ivy-rich")
3896 (synopsis "More friendly interface for @code{ivy}")
3897 (description
3898 "This package extends @code{ivy} by showing more information in the
3899 minibuffer for each candidate. It adds columns showing buffer modes, file
3900 sizes, docstrings, etc. If @code{emacs-all-the-icons} is installed, it can
3901 show icons as well.")
3902 (license license:gpl3+)))
3903
3904 (define-public emacs-avy
3905 (package
3906 (name "emacs-avy")
3907 (version "0.4.0")
3908 (source
3909 (origin
3910 (method url-fetch)
3911 (uri (string-append "https://github.com/abo-abo/avy/archive/"
3912 version ".tar.gz"))
3913 (file-name (string-append name "-" version ".tar.gz"))
3914 (sha256
3915 (base32
3916 "1wdrq512h25ymzjbf2kbsdymvd2ryfwzb6bh5bc3yv7q203im796"))))
3917 (build-system emacs-build-system)
3918 (home-page "https://github.com/abo-abo/avy")
3919 (synopsis "Tree-based completion for Emacs")
3920 (description
3921 "This package provides a generic completion method based on building a
3922 balanced decision tree with each candidate being a leaf. To traverse the tree
3923 from the root to a desired leaf, typically a sequence of @code{read-key} can
3924 be used.
3925
3926 In order for @code{read-key} to make sense, the tree needs to be visualized
3927 appropriately, with a character at each branch node. So this completion
3928 method works only for things that you can see on your screen, all at once,
3929 such as the positions of characters, words, line beginnings, links, or
3930 windows.")
3931 (license license:gpl3+)))
3932
3933 (define-public emacs-ace-window
3934 (package
3935 (name "emacs-ace-window")
3936 (version "0.9.0")
3937 (source
3938 (origin
3939 (method url-fetch)
3940 (uri (string-append "https://github.com/abo-abo/ace-window/archive/"
3941 version ".tar.gz"))
3942 (file-name (string-append name "-" version ".tar.gz"))
3943 (sha256
3944 (base32
3945 "1p2sgfl5dml4zbd6ldql6lm2m9vmd236ah996ni32x254s48j5pn"))))
3946 (build-system emacs-build-system)
3947 (propagated-inputs
3948 `(("emacs-avy" ,emacs-avy)))
3949 (home-page "https://github.com/abo-abo/ace-window")
3950 (synopsis "Quickly switch windows in Emacs")
3951 (description
3952 "@code{ace-window} is meant to replace @code{other-window}.
3953 In fact, when there are only two windows present, @code{other-window} is
3954 called. If there are more, each window will have its first character
3955 highlighted. Pressing that character will switch to that window.")
3956 (license license:gpl3+)))
3957
3958 (define-public emacs-iedit
3959 (package
3960 (name "emacs-iedit")
3961 (version "0.9.9.9")
3962 (source
3963 (origin
3964 (method url-fetch)
3965 (uri (string-append "https://github.com/victorhge/iedit/archive/v"
3966 version ".tar.gz"))
3967 (file-name (string-append name "-" version ".tar.gz"))
3968 (sha256
3969 (base32
3970 "1hv8q6pr85ss9g3158l1fqv3m62vsq8rslsi86jicr2dcxyascr0"))))
3971 (build-system emacs-build-system)
3972 (home-page "http://www.emacswiki.org/emacs/Iedit")
3973 (synopsis "Edit multiple regions in the same way simultaneously")
3974 (description
3975 "This package is an Emacs minor mode and allows you to edit one
3976 occurrence of some text in a buffer (possibly narrowed) or region, and
3977 simultaneously have other occurrences edited in the same way.
3978
3979 You can also use Iedit mode as a quick way to temporarily show only the buffer
3980 lines that match the current text being edited. This gives you the effect of
3981 a temporary @code{keep-lines} or @code{occur}.")
3982 (license license:gpl3+)))
3983
3984 (define-public emacs-zoutline
3985 (let ((commit "b3ee0f0e0b916838c2d2c249beba74ffdb8d5699")
3986 (revision "0"))
3987 (package
3988 (name "emacs-zoutline")
3989 (version (git-version "0.1" revision commit))
3990 (home-page "https://github.com/abo-abo/zoutline")
3991 (source (origin
3992 (method git-fetch)
3993 (uri (git-reference (url home-page) (commit commit)))
3994 (sha256
3995 (base32
3996 "0sd0017piw0dis6dhpq5dkqd3acisxqgipl7dj8gmc1vnswhdwr8"))
3997 (file-name (git-file-name name version))))
3998 (build-system emacs-build-system)
3999 (synopsis "Simple outline library")
4000 (description
4001 "This library provides helpers for outlines. Outlines allow users to
4002 navigate code in a tree-like fashion.")
4003 (license license:gpl3+))))
4004
4005 (define-public emacs-lispy
4006 ;; Release 0.26.0 was almost 3 years ago, and there have been ~772 commits
4007 ;; since.
4008 (let ((commit "c2a358a7a15fcf056a5b7461a8e690b481b03b80")
4009 (revision "0"))
4010 (package
4011 (name "emacs-lispy")
4012 (version (git-version "0.26.0" revision commit))
4013 (home-page "https://github.com/abo-abo/lispy")
4014 (source (origin
4015 (method git-fetch)
4016 (uri (git-reference (url home-page) (commit commit)))
4017 (sha256
4018 (base32
4019 "1g6756qqx2n4cx8jac6mlwayilsiyc5rz8nrqjnywvzc75xdinjd"))
4020 (file-name (git-file-name name version))))
4021 (build-system emacs-build-system)
4022 (propagated-inputs
4023 `(("emacs-ace-window" ,emacs-ace-window)
4024 ("emacs-iedit" ,emacs-iedit)
4025 ("emacs-ivy" ,emacs-ivy)
4026 ("emacs-hydra" ,emacs-hydra)
4027 ("emacs-zoutline" ,emacs-zoutline)))
4028 (synopsis "Modal S-expression editing")
4029 (description
4030 "Due to the structure of Lisp syntax it's very rare for the programmer
4031 to want to insert characters right before \"(\" or right after \")\". Thus
4032 unprefixed printable characters can be used to call commands when the point is
4033 at one of these special locations. Lispy provides unprefixed keybindings for
4034 S-expression editing when point is at the beginning or end of an
4035 S-expression.")
4036 (license license:gpl3+))))
4037
4038 (define-public emacs-lispyville
4039 ;; Later versions need a more recent Evil, with an evil-define-key*
4040 ;; supporting nil for the state.
4041 (let ((commit "b4291857ed6a49a67c4ea77522889ce51fb171ab")
4042 (revision "0"))
4043 (package
4044 (name "emacs-lispyville")
4045 (version (git-version "0.1" revision commit))
4046 (home-page "https://github.com/noctuid/lispyville")
4047 (source (origin
4048 (method git-fetch)
4049 (uri (git-reference (url home-page) (commit commit)))
4050 (sha256
4051 (base32
4052 "095zibzc3naknahdrnb59g9rbljy8wz9rkc7rf8avb3wxlwvxhm3"))
4053 (file-name (git-file-name name version))))
4054 (propagated-inputs
4055 `(("emacs-evil" ,emacs-evil)
4056 ("emacs-lispy" ,emacs-lispy)))
4057 (build-system emacs-build-system)
4058 (synopsis "Minor mode for integrating Evil with lispy")
4059 (description
4060 "LispyVille's main purpose is to provide a Lisp editing environment
4061 suited towards Evil users. It can serve as a minimal layer on top of lispy
4062 for better integration with Evil, but it does not require the use of lispy’s
4063 keybinding style. The provided commands allow for editing Lisp in normal
4064 state and will work even without lispy being enabled.")
4065 (license license:gpl3+))))
4066
4067 (define-public emacs-clojure-mode
4068 (package
4069 (name "emacs-clojure-mode")
4070 (version "5.6.1")
4071 (source (origin
4072 (method url-fetch)
4073 (uri (string-append
4074 "https://github.com/clojure-emacs/clojure-mode/archive/"
4075 version ".tar.gz"))
4076 (file-name (string-append name "-" version ".tar.gz"))
4077 (sha256
4078 (base32
4079 "1f4k1hncy5ygh4izn7mqfp744nnisrp9ywn2njknbjxx34ai1q88"))))
4080 (build-system emacs-build-system)
4081 (native-inputs
4082 `(("emacs-dash" ,emacs-dash)
4083 ("emacs-s" ,emacs-s)
4084 ("ert-runner" ,emacs-ert-runner)))
4085 (arguments
4086 `(#:tests? #t
4087 #:test-command '("ert-runner")))
4088 (home-page "https://github.com/clojure-emacs/clojure-mode")
4089 (synopsis "Major mode for Clojure code")
4090 (description
4091 "This Emacs package provides font-lock, indentation, navigation and basic
4092 refactoring for the @uref{http://clojure.org, Clojure programming language}.
4093 It is recommended to use @code{clojure-mode} with paredit or smartparens.")
4094 (license license:gpl3+)))
4095
4096 (define-public emacs-epl
4097 (package
4098 (name "emacs-epl")
4099 (version "0.8")
4100 (source (origin
4101 (method url-fetch)
4102 (uri (string-append
4103 "https://github.com/cask/epl/archive/"
4104 version ".tar.gz"))
4105 (file-name (string-append name "-" version ".tar.gz"))
4106 (sha256
4107 (base32
4108 "1511n3a3f5gvaf2b4nh018by61ciyzi3y3603fzqma7p9hrckarc"))))
4109 (build-system emacs-build-system)
4110 (home-page "https://github.com/cask/epl")
4111 (synopsis "Emacs Package Library")
4112 (description
4113 "A package management library for Emacs, based on @code{package.el}.
4114
4115 The purpose of this library is to wrap all the quirks and hassle of
4116 @code{package.el} into a sane API.")
4117 (license license:gpl3+)))
4118
4119 (define-public emacs-queue
4120 (package
4121 (name "emacs-queue")
4122 (version "0.2")
4123 (source (origin
4124 (method url-fetch)
4125 (uri (string-append "https://elpa.gnu.org/packages/queue-"
4126 version ".el"))
4127 (sha256
4128 (base32
4129 "0cx2848sqnnkkr4zisvqadzxngjyhmb36mh0q3if7q19yjjhmrkb"))))
4130 (build-system emacs-build-system)
4131 (home-page "http://www.dr-qubit.org/tags/computing-code-emacs.html")
4132 (synopsis "Queue data structure for Emacs")
4133 (description
4134 "This Emacs library provides queue data structure. These queues can be
4135 used both as a first-in last-out (FILO) and as a first-in first-out (FIFO)
4136 stack, i.e. elements can be added to the front or back of the queue, and can
4137 be removed from the front. This type of data structure is sometimes called an
4138 \"output-restricted deque\".")
4139 (license license:gpl3+)))
4140
4141 (define-public emacs-pkg-info
4142 (package
4143 (name "emacs-pkg-info")
4144 (version "0.6")
4145 (source (origin
4146 (method url-fetch)
4147 (uri (string-append
4148 "https://github.com/lunaryorn/pkg-info.el/archive/"
4149 version ".tar.gz"))
4150 (file-name (string-append name "-" version ".tar.gz"))
4151 (sha256
4152 (base32
4153 "1gy1jks5mmm02gg1c8gcyr4f8a9s5ggzhk56gv33b9mzjqzi5rd5"))))
4154 (build-system emacs-build-system)
4155 (propagated-inputs `(("emacs-epl" ,emacs-epl)))
4156 (home-page "https://github.com/lunaryorn/pkg-info.el")
4157 (synopsis "Information about Emacs packages")
4158 (description
4159 "This library extracts information from the installed Emacs packages.")
4160 (license license:gpl3+)))
4161
4162 (define-public emacs-spinner
4163 (package
4164 (name "emacs-spinner")
4165 (version "1.7.3")
4166 (source (origin
4167 (method url-fetch)
4168 (uri (string-append "https://elpa.gnu.org/packages/spinner-"
4169 version ".el"))
4170 (sha256
4171 (base32
4172 "19kp1mmndbmw11sgvv2ggfjl4pyf5zrsbh3871f0965pw9z8vahd"))))
4173 (build-system emacs-build-system)
4174 (home-page "https://github.com/Malabarba/spinner.el")
4175 (synopsis "Emacs mode-line spinner for operations in progress")
4176 (description
4177 "This Emacs package adds spinners and progress-bars to the mode-line for
4178 ongoing operations.")
4179 (license license:gpl3+)))
4180
4181 (define-public emacs-sparql-mode
4182 (package
4183 (name "emacs-sparql-mode")
4184 (version "2.0.1")
4185 (source (origin
4186 (method url-fetch)
4187 (uri (string-append "https://github.com/ljos/sparql-mode/archive/"
4188 "v" version ".tar.gz"))
4189 (file-name (string-append name "-" version ".tar.gz"))
4190 (sha256
4191 (base32
4192 "1s93mkllxnhy7fw616cnnc2danacdlarys0g3cn89drh0llh53cv"))))
4193 (build-system emacs-build-system)
4194 (home-page "https://github.com/ljos/sparql-mode")
4195 (synopsis "SPARQL mode for Emacs")
4196 (description "This package provides a major mode for Emacs that provides
4197 syntax highlighting for SPARQL. It also provides a way to execute queries
4198 against a SPARQL HTTP endpoint, such as is provided by Fuseki. It is also
4199 possible to query other endpoints like DBPedia.")
4200 (license license:gpl3+)))
4201
4202 (define-public emacs-better-defaults
4203 (package
4204 (name "emacs-better-defaults")
4205 (version "0.1.3")
4206 (source
4207 (origin
4208 (method url-fetch)
4209 (uri (string-append "https://github.com/technomancy/better-defaults"
4210 "/archive/" version ".tar.gz"))
4211 (file-name (string-append name "-" version ".tar.gz"))
4212 (sha256
4213 (base32
4214 "08fg4zslzlxbvyil5g4gwvwd22fh4zsgqprs5wh9hv1rgc6757m2"))))
4215 (build-system emacs-build-system)
4216 (home-page "https://github.com/technomancy/better-defaults")
4217 (synopsis "Better defaults for Emacs")
4218 (description
4219 "Better defaults attempts to address the most obvious deficiencies of the
4220 Emacs default configuration in uncontroversial ways that nearly everyone can
4221 agree upon.")
4222 (license license:gpl3+)))
4223
4224 (define-public emacs-eprime
4225 (let ((commit "17a481af26496be91c07139a9bfc05cfe722506f"))
4226 (package
4227 (name "emacs-eprime")
4228 (version (string-append "20140513-" (string-take commit 7)))
4229 (source (origin
4230 (method url-fetch)
4231 (uri (string-append "https://raw.githubusercontent.com"
4232 "/AndrewHynes/eprime-mode/"
4233 commit "/eprime-mode.el"))
4234 (file-name (string-append "eprime-" version ".el"))
4235 (sha256
4236 (base32
4237 "0v68lggkyq7kbcr9zyi573m2g2x251xy3jadlaw8kx02l8krwq8d"))))
4238 (build-system emacs-build-system)
4239 (home-page "https://github.com/AndrewHynes/eprime-mode")
4240 (synopsis "E-prime checking mode for Emacs")
4241 (description "This package provides an E-prime checking mode for Emacs
4242 that highlights non-conforming text. The subset of the English language called
4243 E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
4244 (license license:gpl3+))))
4245
4246 (define-public emacs-julia-mode
4247 ;; XXX: Upstream version remained stuck at 0.3. See
4248 ;; <https://github.com/JuliaEditorSupport/julia-emacs/issues/46>.
4249 (let ((commit "115d4dc8a07445301772da8376b232fa8c7168f4")
4250 (revision "1"))
4251 (package
4252 (name "emacs-julia-mode")
4253 (version (string-append "0.3-" revision "." (string-take commit 8)))
4254 (source
4255 (origin
4256 (method git-fetch)
4257 (uri (git-reference
4258 (url "https://github.com/JuliaEditorSupport/julia-emacs.git")
4259 (commit commit)))
4260 (file-name (string-append name "-" version "-checkout"))
4261 (sha256
4262 (base32
4263 "1is4dcv6blslpzbjcg8l2jpxi8xj96q4cm0nxjxsyswpm8bw8ki0"))))
4264 (build-system emacs-build-system)
4265 (arguments
4266 `(#:tests? #t
4267 #:test-command '("emacs" "--batch"
4268 "-l" "julia-mode-tests.el"
4269 "-f" "ert-run-tests-batch-and-exit")))
4270 (home-page "https://github.com/JuliaEditorSupport/julia-emacs")
4271 (synopsis "Major mode for Julia")
4272 (description "This Emacs package provides a mode for the Julia
4273 programming language.")
4274 (license license:expat))))
4275
4276 (define-public emacs-ess
4277 (package
4278 (name "emacs-ess")
4279 (version "17.11")
4280 (source (origin
4281 (method url-fetch)
4282 (uri (string-append "https://github.com/emacs-ess/ESS/archive/v"
4283 version ".tar.gz"))
4284 (sha256
4285 (base32
4286 "0cbilbsiwvcyf6d5y24mymp57m3ana5dkzab3knfs83w4a3a4c5c"))
4287 (file-name (string-append name "-" version ".tar.gz"))
4288 (modules '((guix build utils)))
4289 (snippet
4290 '(begin
4291 ;; Stop ESS from trying to bundle an external julia-mode.el.
4292 (substitute* "lisp/Makefile"
4293 (("^\tjulia-mode.elc\\\\\n") "")
4294 (("^dist: all julia-mode.el")
4295 "dist: all"))
4296 ;; No need to build docs in so many formats. Also, skipping
4297 ;; pdf lets us not pull in texlive.
4298 (substitute* "doc/Makefile"
4299 (("all : info text html pdf")
4300 "all : info")
4301 (("install: install-info install-other-docs")
4302 "install: install-info"))
4303 ;; Test fails upstream
4304 (substitute* "test/ess-r-tests.el"
4305 (("ert-deftest ess-r-namespaced-eval-no-srcref-in-errors ()")
4306 "ert-deftest ess-r-namespaced-eval-no-srcref-in-errors () :expected-result :failed"))
4307 #t))))
4308 (build-system gnu-build-system)
4309 (arguments
4310 (let ((base-directory "/share/emacs/site-lisp/guix.d/ess"))
4311 `(#:make-flags (list (string-append "PREFIX=" %output)
4312 (string-append "ETCDIR=" %output "/"
4313 ,base-directory "/etc")
4314 (string-append "LISPDIR=" %output "/"
4315 ,base-directory))
4316 #:phases
4317 (modify-phases %standard-phases
4318 (delete 'configure)
4319 (add-before 'build 'more-shebang-patching
4320 (lambda* (#:key inputs #:allow-other-keys)
4321 (substitute* "Makeconf"
4322 (("SHELL = /bin/sh")
4323 (string-append "SHELL = " (which "sh"))))
4324 #t))
4325 (replace 'check
4326 (lambda _
4327 (invoke "make" "test")))))))
4328 (inputs
4329 `(("emacs" ,emacs-minimal)
4330 ("r-minimal" ,r-minimal)))
4331 (native-inputs
4332 `(("perl" ,perl)
4333 ("texinfo" ,texinfo)))
4334 (propagated-inputs
4335 `(("emacs-julia-mode" ,emacs-julia-mode)))
4336 (home-page "https://ess.r-project.org/")
4337 (synopsis "Emacs mode for statistical analysis programs")
4338 (description "Emacs Speaks Statistics (ESS) is an add-on package for GNU
4339 Emacs. It is designed to support editing of scripts and interaction with
4340 various statistical analysis programs such as R, Julia, and JAGS.")
4341 (license license:gpl2+)))
4342
4343 (define-public emacs-smex
4344 (package
4345 (name "emacs-smex")
4346 (version "3.0")
4347 (source (origin
4348 (method url-fetch)
4349 (uri (string-append "https://raw.githubusercontent.com"
4350 "/nonsequitur/smex/" version "/smex.el"))
4351 (file-name (string-append "smex-" version ".el"))
4352 (sha256
4353 (base32
4354 "0ar310zx9k5y4i1vl2rawvi712xj9gx77160860jbs691p77cxqp"))))
4355 (build-system emacs-build-system)
4356 (home-page "https://github.com/nonsequitur/smex/")
4357 (synopsis "M-x interface with Ido-style fuzzy matching")
4358 (description
4359 "Smex is a M-x enhancement for Emacs. Built on top of Ido, it provides a
4360 convenient interface to your recently and most frequently used commands. And
4361 to all the other commands, too.")
4362 (license license:gpl3+)))
4363
4364 (define-public emacs-js2-mode
4365 (package
4366 (name "emacs-js2-mode")
4367 (version "20150909")
4368 (source (origin
4369 (method url-fetch)
4370 (uri (string-append "https://github.com/mooz/js2-mode/archive/"
4371 version ".tar.gz"))
4372 (file-name (string-append name "-" version ".tar.gz"))
4373 (sha256
4374 (base32
4375 "1nsm36c4kwb473p13i58fgrnlk8fbn3rdhj47d9xz70az4ra44q0"))))
4376 (build-system emacs-build-system)
4377 (home-page "https://github.com/mooz/js2-mode/")
4378 (synopsis "Improved JavaScript editing mode for Emacs")
4379 (description
4380 "Js2-mode provides a JavaScript major mode for Emacs that is more
4381 advanced than the built-in javascript-mode. Features include accurate syntax
4382 highlighting using a recursive-descent parser, on-the-fly reporting of syntax
4383 errors and strict-mode warnings, smart line-wrapping within comments and
4384 strings, and code folding.")
4385 (license license:gpl3+)))
4386
4387 (define-public emacs-nodejs-repl
4388 (package
4389 (name "emacs-nodejs-repl")
4390 (version "0.2.0")
4391 (source (origin
4392 (method url-fetch)
4393 (uri (string-append "https://github.com/abicky/nodejs-repl.el"
4394 "/archive/" version ".tar.gz"))
4395 (sha256
4396 (base32
4397 "0hq2cqdq2668yf48g7qnkci90nhih1gnhacsgz355jnib56lhmkz"))
4398 (file-name (string-append name "-" version ".tar.gz"))))
4399 (build-system emacs-build-system)
4400 (home-page "https://github.com/abicky/nodejs-repl.el")
4401 (synopsis "Node.js REPL inside Emacs")
4402 (description
4403 "This program is derived from comint-mode and provides the following
4404 features:
4405
4406 @itemize
4407 @item TAB completion same as Node.js REPL
4408 @item file name completion in string
4409 @item incremental history search
4410 @end itemize")
4411 (license license:gpl3+)))
4412
4413 (define-public emacs-typescript-mode
4414 (package
4415 (name "emacs-typescript-mode")
4416 (version "0.3")
4417 (source (origin
4418 (method url-fetch)
4419 (uri (string-append
4420 "https://github.com/ananthakumaran/typescript.el"
4421 "/archive/v" version ".tar.gz"))
4422 (sha256
4423 (base32
4424 "1gqjirm8scf0wysm7x97zdfbs4qa5nqdl64jfbkd18iskv5mg3rj"))
4425 (file-name (string-append name "-" version ".tar.gz"))))
4426 (build-system emacs-build-system)
4427 (home-page "https://github.com/ananthakumaran/typescript.el")
4428 (synopsis "Emacs major mode for editing Typescript code")
4429 (description
4430 "This is based on Karl Landstrom's barebones @code{typescript-mode}.
4431 This is much more robust and works with @code{cc-mode}'s comment
4432 filling (mostly). The modifications to the original @code{javascript.el} mode
4433 mainly consisted in replacing \"javascript\" with \"typescript\"
4434
4435 The main features of this Typescript mode are syntactic highlighting (enabled
4436 with @code{font-lock-mode} or @code{global-font-lock-mode}), automatic
4437 indentation and filling of comments and C preprocessor fontification.")
4438 (license license:gpl3+)))
4439
4440 (define-public emacs-tide
4441 (package
4442 (name "emacs-tide")
4443 (version "2.8.3.1")
4444 (source (origin
4445 (method url-fetch)
4446 (uri (string-append "https://github.com/ananthakumaran/tide"
4447 "/archive/v" version ".tar.gz"))
4448 (sha256
4449 (base32
4450 "1k0kzqiv1hfs0kqm37947snzhrsmand3i9chvm6a2r5lb8v9q47y"))
4451 (file-name (string-append name "-" version ".tar.gz"))))
4452 (build-system emacs-build-system)
4453 (propagated-inputs
4454 `(("emacs-dash" ,emacs-dash)
4455 ("emacs-s" ,emacs-s)
4456 ("emacs-flycheck" ,emacs-flycheck)
4457 ("emacs-typescript-mode" ,emacs-typescript-mode)))
4458 (home-page "https://github.com/ananthakumaran/tide")
4459 (synopsis "Typescript IDE for Emacs")
4460 (description
4461 "Tide is an Interactive Development Environment (IDE) for Emacs which
4462 provides the following features:
4463
4464 @itemize
4465 @item ElDoc
4466 @item Auto complete
4467 @item Flycheck
4468 @item Jump to definition, Jump to type definition
4469 @item Find occurrences
4470 @item Rename symbol
4471 @item Imenu
4472 @item Compile On Save
4473 @item Highlight Identifiers
4474 @item Code Fixes
4475 @item Code Refactor
4476 @item Organize Imports
4477 @end itemize")
4478 (license license:gpl3+)))
4479
4480 (define-public emacs-markdown-mode
4481 (package
4482 (name "emacs-markdown-mode")
4483 (version "2.3")
4484 (source (origin
4485 (method url-fetch)
4486 (uri (string-append "https://raw.githubusercontent.com/jrblevin"
4487 "/markdown-mode/v" version
4488 "/markdown-mode.el"))
4489 (file-name (string-append "markdown-mode-" version ".el"))
4490 (sha256
4491 (base32
4492 "152whyrq3dqlqy5wv4mdd94kmal19hs5kwaxjcp2gp2r97lsmdmi"))))
4493 (build-system emacs-build-system)
4494 (home-page "http://jblevins.org/projects/markdown-mode/")
4495 (synopsis "Emacs Major mode for Markdown files")
4496 (description
4497 "Markdown-mode is a major mode for editing Markdown-formatted text files
4498 in Emacs.")
4499 (license license:gpl3+)))
4500
4501 (define-public emacs-edit-indirect
4502 (package
4503 (name "emacs-edit-indirect")
4504 (version "0.1.4")
4505 (source
4506 (origin
4507 (method url-fetch)
4508 (uri (string-append "https://github.com/Fanael/edit-indirect/archive/"
4509 version ".tar.gz"))
4510 (file-name (string-append name "-" version ".tar.gz"))
4511 (sha256
4512 (base32
4513 "07kr58rd1p5j764wminsssazr73hy51yw8iqcsv5z2dwgj7msv71"))))
4514 (build-system emacs-build-system)
4515 (home-page "https://github.com/Fanael/edit-indirect")
4516 (synopsis "Edit regions in separate buffers")
4517 (description "This package allows you to edit regions in separate buffers,
4518 like @code{org-edit-src-code} but for arbitrary regions.")
4519 (license license:gpl3+)))
4520
4521 (define-public emacs-projectile
4522 (package
4523 (name "emacs-projectile")
4524 (version "0.14.0")
4525 (source (origin
4526 (method url-fetch)
4527 (uri (string-append "https://raw.githubusercontent.com/bbatsov"
4528 "/projectile/v" version "/projectile.el"))
4529 (file-name (string-append "projectile-" version ".el"))
4530 (sha256
4531 (base32
4532 "1ql1wnzhblbwnv66hf2y0wq45g71hh6s9inc090lmhm1vgylbd1f"))))
4533 (build-system emacs-build-system)
4534 (propagated-inputs
4535 `(("emacs-dash" ,emacs-dash)
4536 ("emacs-pkg-info" ,emacs-pkg-info)))
4537 (home-page "https://github.com/bbatsov/projectile")
4538 (synopsis "Manage and navigate projects in Emacs easily")
4539 (description
4540 "This library provides easy project management and navigation. The
4541 concept of a project is pretty basic - just a folder containing special file.
4542 Currently git, mercurial and bazaar repos are considered projects by default.
4543 If you want to mark a folder manually as a project just create an empty
4544 .projectile file in it.")
4545 (license license:gpl3+)))
4546
4547 (define-public emacs-elfeed
4548 (package
4549 (name "emacs-elfeed")
4550 (version "3.0.0")
4551 (source (origin
4552 (method url-fetch)
4553 (uri (string-append "https://github.com/skeeto/elfeed/archive/"
4554 version ".tar.gz"))
4555 (file-name (string-append name "-" version ".tar.gz"))
4556 (sha256
4557 (base32
4558 "1wkdrxr6zzqb48czqqv34l87bx8aqjk1739ddqg933aqh241kfvn"))))
4559 (build-system emacs-build-system)
4560 (arguments
4561 `(#:tests? #t
4562 #:test-command '("make" "test")))
4563 (home-page "https://github.com/skeeto/elfeed")
4564 (synopsis "Atom/RSS feed reader for Emacs")
4565 (description
4566 "Elfeed is an extensible web feed reader for Emacs, supporting both Atom
4567 and RSS, with a user interface inspired by notmuch.")
4568 (license license:gpl3+)))
4569
4570 (define-public emacs-el-x
4571 (package
4572 (name "emacs-el-x")
4573 (version "0.3.1")
4574 (source (origin
4575 (method git-fetch)
4576 (uri (git-reference
4577 (url "https://github.com/sigma/el-x.git")
4578 (commit (string-append "v" version))))
4579 (file-name (string-append name "-" version "-checkout"))
4580 (sha256
4581 (base32
4582 "1i6j44ssxm1xdg0mf91nh1lnprwsaxsx8vsrf720nan7mfr283h5"))))
4583 (build-system emacs-build-system)
4584 (arguments
4585 `(#:phases
4586 (modify-phases %standard-phases
4587 ;; Move the source files to the top level, which is included in
4588 ;; the EMACSLOADPATH.
4589 (add-after 'unpack 'move-source-files
4590 (lambda _
4591 (let ((el-files (find-files "./lisp" ".*\\.el$")))
4592 (for-each (lambda (f)
4593 (rename-file f (basename f)))
4594 el-files))
4595 #t)))))
4596 (home-page "https://github.com/sigma/el-x")
4597 (synopsis "Emacs Lisp extensions")
4598 (description "command@{emacs-el-x} defines the @code{dflet} macro to
4599 provide the historic behavior of @code{flet}, as well as
4600 @code{declare-function} stub for older Emacs.")
4601 (license license:gpl2+)))
4602
4603 (define-public emacs-mocker
4604 (package
4605 (name "emacs-mocker")
4606 (version "0.3.1")
4607 (source (origin
4608 (method git-fetch)
4609 (uri (git-reference
4610 (url "https://github.com/sigma/mocker.el.git")
4611 (commit (string-append "v" version))))
4612 (file-name (string-append name "-" version "-checkout"))
4613 (sha256
4614 (base32
4615 "1lav7am41v63xgavq8pr88y828jmd1cxd4prjq7jlbxm6nvrwxh2"))))
4616 (build-system emacs-build-system)
4617 (arguments
4618 `(#:tests? #t
4619 #:test-command '("ert-runner")))
4620 (native-inputs
4621 `(("ert-runner" ,emacs-ert-runner)))
4622 (propagated-inputs
4623 `(("emacs-el-x" ,emacs-el-x)))
4624 (home-page "https://github.com/sigma/mocker.el")
4625 (synopsis "Mocking framework for Emacs Lisp")
4626 (description "Mocker.el is a framework for writing tests in Emacs Lisp.
4627 It uses regular Lisp rather than a domain specific language (DSL), which
4628 maximizes flexibility (at the expense of conciseness).")
4629 (license license:gpl2+)))
4630
4631 (define-public emacs-find-file-in-project
4632 (package
4633 (name "emacs-find-file-in-project")
4634 (version "5.4.7")
4635 (source (origin
4636 (method git-fetch)
4637 (uri (git-reference
4638 (url "https://github.com/technomancy/find-file-in-project.git")
4639 (commit version)))
4640 (file-name (string-append name "-" version "-checkout"))
4641 (sha256
4642 (base32
4643 "1sdnyqv69mipbgs9yax88m9b6crsa59rjhwrih197pifl4089awr"))))
4644 (build-system emacs-build-system)
4645 (arguments
4646 `(#:phases
4647 (modify-phases %standard-phases
4648 (add-before 'check 'set-shell
4649 ;; Otherwise Emacs shell-file-name is set to "/bin/sh", which doesn't
4650 ;; work.
4651 (lambda _
4652 (setenv "SHELL" (which "sh"))
4653 #t)))
4654 #:tests? #t
4655 #:test-command '("./tests/test.sh")))
4656 (home-page "https://github.com/technomancy/find-file-in-project")
4657 (synopsis "File/directory finder for Emacs")
4658 (description "@code{find-file-in-project} allows to find files or
4659 directories quickly in the current project. The project root is detected
4660 automatically when Git, Subversion or Mercurial are used. It also provides
4661 functions to assist in reviewing changes on files.")
4662 (license license:gpl3+)))
4663
4664 (define-public emacs-pyvenv
4665 (package
4666 (name "emacs-pyvenv")
4667 (version "1.11")
4668 (source (origin
4669 (method git-fetch)
4670 (uri (git-reference
4671 (url "https://github.com/jorgenschaefer/pyvenv.git")
4672 (commit (string-append "v" version))))
4673 (file-name (string-append name "-" version "-checkout"))
4674 (sha256
4675 (base32
4676 "1a346qdimr1dvj53q033aqnahwd2dhyn9jadrs019nm0bzgw7g63"))))
4677 (build-system emacs-build-system)
4678 (arguments
4679 `(#:phases
4680 (modify-phases %standard-phases
4681 ;; This phase incorrectly attempts to substitute "activate" and fails
4682 ;; doing so.
4683 (delete 'patch-el-files))
4684 #:tests? #t
4685 #:test-command '("ert-runner")))
4686 (native-inputs
4687 `(("ert-runner" ,emacs-ert-runner)
4688 ("emacs-mocker" ,emacs-mocker)))
4689 (home-page "https://github.com/jorgenschaefer/pyvenv")
4690 (synopsis "Virtualenv minor mode for Emacs")
4691 (description "pyvenv.el is a minor mode to support using Python virtual
4692 environments (virtualenv) inside Emacs.")
4693 (license license:gpl3+)))
4694
4695 (define-public emacs-highlight-indentation
4696 (package
4697 (name "emacs-highlight-indentation")
4698 (version "0.7.0")
4699 (source (origin
4700 (method git-fetch)
4701 (uri (git-reference
4702 (url "https://github.com/antonj/Highlight-Indentation-for-Emacs.git")
4703 (commit (string-append "v" version))))
4704 (file-name (string-append name "-" version "-checkout"))
4705 (sha256
4706 (base32
4707 "00l54k75qk24a0znzl4ij3s3nrnr2wy9ha3za8apphzlm98m907k"))))
4708 (build-system emacs-build-system)
4709 (home-page "https://github.com/antonj/Highlight-Indentation-for-Emacs/")
4710 (synopsis "Highlighting indentation for Emacs")
4711 (description "Provides two minor modes to highlight indentation guides in Emacs:
4712 @enumerate
4713 @item @code{highlight-indentation-mode}, which displays guidelines
4714 indentation (space indentation only).
4715 @item @code{highlight-indentation-current-column-mode}, which displays guidelines for the current-point indentation (space indentation only).
4716 @end enumerate")
4717 (license license:gpl2+)))
4718
4719 (define-public emacs-elpy
4720 (package
4721 (name "emacs-elpy")
4722 (version "1.26.0")
4723 (source (origin
4724 (method git-fetch)
4725 (uri (git-reference
4726 (url "https://github.com/jorgenschaefer/elpy.git")
4727 (commit version)))
4728 (file-name (string-append name "-" version "-checkout"))
4729 (sha256
4730 (base32
4731 "0wynzp5xmrgiggmam82n6lfaiqmfl4n3ccpsgnh86r6pbsmssxjk"))))
4732 (build-system emacs-build-system)
4733 (arguments
4734 `(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include)
4735 #:phases
4736 ;; TODO: Make `elpy-config' display Guix commands :)
4737 (modify-phases %standard-phases
4738 ;; One elpy test depends on being run inside a Python virtual
4739 ;; environment to pass. We have nothing to gain from doing so here,
4740 ;; so we just trick Elpy into thinking we are (see:
4741 ;; https://github.com/jorgenschaefer/elpy/pull/1293).
4742 (add-before 'check 'fake-virtualenv
4743 (lambda _
4744 (setenv "VIRTUAL_ENV" "/tmp")
4745 #t))
4746 (add-before 'check 'build-doc
4747 (lambda _
4748 (with-directory-excursion "docs"
4749 (invoke "make" "info" "man"))
4750 ;; Move .info file at the root so that it can installed by the
4751 ;; 'move-doc phase.
4752 (rename-file "docs/_build/texinfo/Elpy.info" "Elpy.info")
4753 #t))
4754 (add-after 'build-doc 'install-manpage
4755 (lambda* (#:key outputs #:allow-other-keys)
4756 (let* ((out (assoc-ref outputs "out"))
4757 (man1 (string-append out "/share/man/man1")))
4758 (mkdir-p man1)
4759 (copy-file "docs/_build/man/elpy.1"
4760 (string-append man1 "/elpy.1")))
4761 #t)))
4762 #:tests? #t
4763 #:test-command '("ert-runner")))
4764 (propagated-inputs
4765 `(("emacs-company" ,emacs-company)
4766 ("emacs-find-file-in-project" ,emacs-find-file-in-project)
4767 ("emacs-highlight-indentation" ,emacs-highlight-indentation)
4768 ("emacs-yasnippet" ,emacs-yasnippet)
4769 ("pyvenv" ,emacs-pyvenv)
4770 ("s" ,emacs-s)))
4771 (native-inputs
4772 `(("ert-runner" ,emacs-ert-runner)
4773 ("emacs-f" ,emacs-f)
4774 ("python" ,python-wrapper)
4775 ("python-autopep8" ,python-autopep8)
4776 ("python-black" ,python-black)
4777 ("python-flake8" ,python-flake8)
4778 ("python-jedi" ,python-jedi)
4779 ("python-yapf" ,python-yapf)
4780 ;; For documentation.
4781 ("python-sphinx" ,python-sphinx)
4782 ("texinfo" ,texinfo)))
4783 (home-page "https://github.com/jorgenschaefer/elpy")
4784 (synopsis "Python development environment for Emacs")
4785 (description "Elpy brings powerful Python editing to Emacs. It combines
4786 and configures a number of other packages written in Emacs Lisp as well as
4787 Python, together offering features such as navigation, documentation,
4788 completion, interactive development and more.")
4789 (license license:gpl3+)))
4790
4791 (define-public emacs-rainbow-delimiters
4792 (package
4793 (name "emacs-rainbow-delimiters")
4794 (version "2.1.3")
4795 (source (origin
4796 (method url-fetch)
4797 (uri (string-append "https://raw.githubusercontent.com/Fanael"
4798 "/rainbow-delimiters/" version
4799 "/rainbow-delimiters.el"))
4800 (file-name (string-append "rainbow-delimiters-" version ".el"))
4801 (sha256
4802 (base32
4803 "1b3kampwsjabhcqdp0khgff13wc5jqhy3rbvaa12vnv7qy22l9ck"))))
4804 (build-system emacs-build-system)
4805 (home-page "https://github.com/Fanael/rainbow-delimiters")
4806 (synopsis "Highlight brackets according to their depth")
4807 (description
4808 "Rainbow-delimiters is a \"rainbow parentheses\"-like mode for Emacs which
4809 highlights parentheses, brackets, and braces according to their depth. Each
4810 successive level is highlighted in a different color, making it easy to spot
4811 matching delimiters, orient yourself in the code, and tell which statements
4812 are at a given level.")
4813 (license license:gpl3+)))
4814
4815 (define-public emacs-rainbow-identifiers
4816 (package
4817 (name "emacs-rainbow-identifiers")
4818 (version "0.2.2")
4819 (source (origin
4820 (method url-fetch)
4821 (uri (string-append "https://raw.githubusercontent.com/Fanael"
4822 "/rainbow-identifiers/" version
4823 "/rainbow-identifiers.el"))
4824 (file-name (string-append "rainbow-identifiers-" version ".el"))
4825 (sha256
4826 (base32
4827 "0325abxj47k0g1i8nqrq70w2wr6060ckhhf92krv1s072b3jzm31"))))
4828 (build-system emacs-build-system)
4829 (home-page "https://github.com/Fanael/rainbow-identifiers")
4830 (synopsis "Highlight identifiers in source code")
4831 (description
4832 "Rainbow identifiers mode is an Emacs minor mode providing highlighting of
4833 identifiers based on their names. Each identifier gets a color based on a hash
4834 of its name.")
4835 (license license:bsd-2)))
4836
4837 (define-public emacs-rainbow-mode
4838 (package
4839 (name "emacs-rainbow-mode")
4840 (version "1.0.1")
4841 (source (origin
4842 (method url-fetch)
4843 (uri (string-append
4844 "http://elpa.gnu.org/packages/rainbow-mode-" version ".el"))
4845 (sha256
4846 (base32
4847 "0cpga4ax635rfpj7y2vmh7ank0yw00dcy20gjg1mj74r97by8csf"))))
4848 (build-system emacs-build-system)
4849 (home-page "http://elpa.gnu.org/packages/rainbow-mode.html")
4850 (synopsis "Colorize color names in buffers")
4851 (description
4852 "This minor mode sets background color to strings that match color
4853 names, e.g. #0000ff is displayed in white with a blue background.")
4854 (license license:gpl3+)))
4855
4856 (define-public emacs-visual-fill-column
4857 (package
4858 (name "emacs-visual-fill-column")
4859 (version "1.11")
4860 (source (origin
4861 (method url-fetch)
4862 (uri (string-append "https://codeload.github.com/joostkremers/"
4863 "visual-fill-column/tar.gz/" version))
4864 (file-name (string-append name "-" version ".tar.gz"))
4865 (sha256
4866 (base32
4867 "13jnviakp607zcms7f8ams56mr8wffnq1pghlc6fvqs39663pgwh"))))
4868 (build-system emacs-build-system)
4869 (home-page "https://github.com/joostkremers/visual-fill-column")
4870 (synopsis "Fill-column for visual-line-mode")
4871 (description
4872 "@code{visual-fill-column-mode} is a small Emacs minor mode that mimics
4873 the effect of @code{fill-column} in @code{visual-line-mode}. Instead of
4874 wrapping lines at the window edge, which is the standard behaviour of
4875 @code{visual-line-mode}, it wraps lines at @code{fill-column}. If
4876 @code{fill-column} is too large for the window, the text is wrapped at the
4877 window edge.")
4878 (license license:gpl3+)))
4879
4880 (define-public emacs-writeroom
4881 (package
4882 (name "emacs-writeroom")
4883 (version "3.7")
4884 (source (origin
4885 (method url-fetch)
4886 (uri (string-append
4887 "https://github.com/joostkremers/writeroom-mode/archive/"
4888 version ".tar.gz"))
4889 (file-name (string-append name "-" version ".tar.gz"))
4890 (sha256
4891 (base32
4892 "0yqgp5h3kvvpgva4azakb2wnjl7gsyh45glf75crspv3xyq57f2r"))))
4893 (build-system emacs-build-system)
4894 (propagated-inputs
4895 `(("emacs-visual-fill-column" ,emacs-visual-fill-column)))
4896 (home-page "https://github.com/joostkremers/writeroom-mode")
4897 (synopsis "Distraction-free writing for Emacs")
4898 (description
4899 "This package defines a minor mode for distraction-free writing. Some of
4900 the default effects include entering fullscreen, deleting other windows of the
4901 current frame, disabling the mode line, and adding margins to the buffer that
4902 restrict the text width to 80 characters.")
4903 (license license:bsd-3)))
4904
4905 (define-public emacs-ido-completing-read+
4906 (package
4907 (name "emacs-ido-completing-read+")
4908 (version "3.12")
4909 (source (origin
4910 (method url-fetch)
4911 (uri (string-append "https://raw.githubusercontent.com"
4912 "/DarwinAwardWinner/ido-ubiquitous/v"
4913 version "/ido-completing-read+.el"))
4914 (file-name (string-append "ido-completing-read+-" version ".el"))
4915 (sha256
4916 (base32
4917 "1cyalb0p7nfsm4n6n9q6rjmvn6adqc0fq8ybnlj3n41n289dkfjf"))))
4918 (build-system emacs-build-system)
4919 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
4920 (synopsis "Replacement for completing-read using ido")
4921 (description
4922 "The ido-completing-read+ function is a wrapper for ido-completing-read.
4923 Importantly, it detects edge cases that ordinary ido cannot handle and either
4924 adjusts them so ido can handle them, or else simply falls back to the standard
4925 Emacs completion function instead.")
4926 (license license:gpl3+)))
4927
4928 (define-public emacs-ido-ubiquitous
4929 (package
4930 (name "emacs-ido-ubiquitous")
4931 (version "3.12")
4932 (source (origin
4933 (method url-fetch)
4934 (uri (string-append "https://raw.githubusercontent.com"
4935 "/DarwinAwardWinner/ido-ubiquitous/v"
4936 version "/ido-ubiquitous.el"))
4937 (file-name (string-append "ido-ubiquitous-" version ".el"))
4938 (sha256
4939 (base32
4940 "197ypji0fb6jsdcq40rpnknwlh3imas6s6jbsvkfm0pz9988c3q2"))))
4941 (build-system emacs-build-system)
4942 (propagated-inputs
4943 `(("emacs-ido-completing-read+" ,emacs-ido-completing-read+)))
4944 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
4945 (synopsis "Use ido (nearly) everywhere")
4946 (description
4947 "Ido-ubiquitous enables ido-style completion for almost every function
4948 that uses the standard completion function completing-read.")
4949 (license license:gpl3+)))
4950
4951 (define-public emacs-yaml-mode
4952 (package
4953 (name "emacs-yaml-mode")
4954 (version "0.0.13")
4955 (source (origin
4956 (method url-fetch)
4957 (uri (string-append "https://raw.githubusercontent.com/yoshiki"
4958 "/yaml-mode/v" version "/yaml-mode.el"))
4959 (file-name (string-append "yaml-mode-" version ".el"))
4960 (sha256
4961 (base32
4962 "0im88sk9dqw03x6d6zaspgvg9i0pfpgb8f2zygrmbifh2w4pwmvj"))))
4963 (build-system emacs-build-system)
4964 (home-page "https://github.com/yoshiki/yaml-mode")
4965 (synopsis "Major mode for editing YAML files")
4966 (description
4967 "Yaml-mode is an Emacs major mode for editing files in the YAML data
4968 serialization format. It was initially developed by Yoshiki Kurihara and many
4969 features were added by Marshall Vandegrift. As YAML and Python share the fact
4970 that indentation determines structure, this mode provides indentation and
4971 indentation command behavior very similar to that of python-mode.")
4972 (license license:gpl3+)))
4973
4974 (define-public emacs-web-mode
4975 (package
4976 (name "emacs-web-mode")
4977 (version "16")
4978 (source (origin
4979 (method url-fetch)
4980 (uri (string-append "https://raw.githubusercontent.com/fxbois"
4981 "/web-mode/v" version "/web-mode.el"))
4982 (file-name (string-append "web-mode-" version ".el"))
4983 (sha256
4984 (base32
4985 "1hs5w7kdvcyn4ihyw1kfjg48djn5p7lz4rlbhzzdqv1g56xqx3gw"))))
4986 (build-system emacs-build-system)
4987 (synopsis "Major mode for editing web templates")
4988 (description "Web-mode is an Emacs major mode for editing web templates
4989 aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by
4990 client/server side engines). Web-mode is compatible with many template
4991 engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker,
4992 Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template,
4993 Dust.js, React/JSX, Angularjs, ejs, etc.")
4994 (home-page "http://web-mode.org/")
4995 (license license:gpl3+)))
4996
4997 (define-public emacs-wgrep
4998 (let ((commit "414be70bd313e482cd9f0b70fd2daad4ee23497c"))
4999 ;; Late commit fixes compatibility issue with Emacs 26+.
5000 (package
5001 (name "emacs-wgrep")
5002 (version (git-version "2.1.10" "1" commit))
5003 (source (origin
5004 (method git-fetch)
5005 (uri (git-reference
5006 (url "https://github.com/mhayashi1120/Emacs-wgrep")
5007 (commit commit)))
5008 (file-name (git-file-name name version))
5009 (sha256
5010 (base32
5011 "1sdhd587q3pg92lhiayph87azhalmf1gzrnsprkmqvnphv7mvks9"))))
5012 (build-system emacs-build-system)
5013 (home-page "https://github.com/mhayashi1120/Emacs-wgrep")
5014 (synopsis "Edit a grep buffer and apply those changes to the files")
5015 (description
5016 "Emacs wgrep allows you to edit a grep buffer and apply those changes
5017 to the file buffer. Several backends are supported beside the classic grep:
5018 ack, ag, helm and pt.")
5019 (license license:gpl3+))))
5020
5021 (define-public emacs-helm
5022 (package
5023 (name "emacs-helm")
5024 (version "3.0")
5025 (source (origin
5026 (method url-fetch)
5027 (uri (string-append
5028 "https://github.com/" name "/helm/archive/v"
5029 version ".tar.gz"))
5030 (file-name (string-append name "-" version ".tar.gz"))
5031 (sha256
5032 (base32
5033 "0k2r0ccppaqfjvyszaxa16vf7g2qzj1clhfr6v646ncsy17laciw"))))
5034 (build-system emacs-build-system)
5035 (propagated-inputs
5036 `(("emacs-async" ,emacs-async)
5037 ("emacs-popup" ,emacs-popup)))
5038 (home-page "https://emacs-helm.github.io/helm/")
5039 (synopsis "Incremental completion and selection narrowing
5040 framework for Emacs")
5041 (description "Helm is incremental completion and selection narrowing
5042 framework for Emacs. It will help steer you in the right direction when
5043 you're looking for stuff in Emacs (like buffers, files, etc). Helm is a fork
5044 of @code{anything.el} originally written by Tamas Patrovic and can be
5045 considered to be its successor. Helm sets out to clean up the legacy code in
5046 @code{anything.el} and provide a cleaner, leaner and more modular tool, that's
5047 not tied in the trap of backward compatibility.")
5048 (license license:gpl3+)))
5049
5050 (define-public emacs-helm-swoop
5051 (package
5052 (name "emacs-helm-swoop")
5053 (version "1.7.4")
5054 (source (origin
5055 (method url-fetch)
5056 (uri (string-append
5057 "https://github.com/ShingoFukuyama/helm-swoop/archive/"
5058 version
5059 ".tar.gz"))
5060 (file-name (string-append name "-" version ".tar.gz"))
5061 (sha256
5062 (base32
5063 "1ssivsjzlnkg049cg993l8fp09l5nhpz6asj7w5c91zp5kpc6fh7"))))
5064 (build-system emacs-build-system)
5065 (propagated-inputs
5066 `(("emacs-helm" ,emacs-helm)))
5067 (home-page "https://github.com/ShingoFukuyama/helm-swoop")
5068 (synopsis "Filter and jump to lines in an Emacs buffer using Helm")
5069 (description
5070 "This package builds on the Helm interface to provide several commands
5071 for search-based navigation of buffers.")
5072 (license license:gpl2+)))
5073
5074 (define-public emacs-helm-projectile
5075 (package
5076 (name "emacs-helm-projectile")
5077 (version "0.14.0")
5078 (source (origin
5079 (method url-fetch)
5080 (uri (string-append
5081 "https://github.com/bbatsov/helm-projectile/archive/v"
5082 version
5083 ".tar.gz"))
5084 (file-name (string-append name "-" version ".tar.gz"))
5085 (sha256
5086 (base32
5087 "19cfmilqh8kbab3b2hmx6lyrj73q6vfmn3p730x95g23iz16mnd5"))))
5088 (build-system emacs-build-system)
5089 (propagated-inputs
5090 `(("emacs-dash" ,emacs-dash)
5091 ("emacs-helm" ,emacs-helm)
5092 ("emacs-projectile" ,emacs-projectile)))
5093 (home-page "https://github.com/bbatsov/helm-projectile")
5094 (synopsis "Helm integration for Projectile")
5095 (description
5096 "This Emacs library provides a Helm interface for Projectile.")
5097 (license license:gpl3+)))
5098
5099 (define-public emacs-helm-make
5100 (let ((commit "feae8df22bc4b20705ea08ac9adfc2b43bb348d0")
5101 (revision "1"))
5102 (package
5103 (name "emacs-helm-make")
5104 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
5105 (source
5106 (origin
5107 (method git-fetch)
5108 (uri (git-reference
5109 (url "https://github.com/abo-abo/helm-make.git")
5110 (commit commit)))
5111 (file-name (string-append name "-" version "-checkout"))
5112 (sha256
5113 (base32
5114 "1y2v77mmd1bfkkz51cnk1l0dg3lvvxc39wlamnm7wjns66dbvlam"))))
5115 (build-system emacs-build-system)
5116 (propagated-inputs
5117 `(("emacs-helm" ,emacs-helm)
5118 ("emacs-projectile" ,emacs-projectile)))
5119 (home-page "https://github.com/abo-abo/helm-make")
5120 (synopsis "Select a Makefile target with helm")
5121 (description "@code{helm-make} or @code{helm-make-projectile} will give
5122 you a @code{helm} selection of directory Makefile's targets. Selecting a
5123 target will call @code{compile} on it.")
5124 (license license:gpl3+))))
5125
5126 (define-public emacs-cider
5127 (package
5128 (name "emacs-cider")
5129 (version "0.15.1")
5130 (source (origin
5131 (method url-fetch)
5132 (uri (string-append
5133 "https://github.com/clojure-emacs/cider/archive/v"
5134 version ".tar.gz"))
5135 (file-name (string-append name "-" version ".tar.gz"))
5136 (sha256
5137 (base32
5138 "1j5hlmi14ypszv1f9nvq0jjlz7i742flg0ny3055l7i4x089xx6g"))))
5139 (build-system emacs-build-system)
5140 (arguments
5141 '(#:exclude ; Don't exclude 'cider-test.el'.
5142 '("^\\.dir-locals\\.el$" "^test/")))
5143 (propagated-inputs
5144 `(("emacs-clojure-mode" ,emacs-clojure-mode)
5145 ("emacs-spinner" ,emacs-spinner)
5146 ("emacs-pkg-info" ,emacs-pkg-info)
5147 ("emacs-queue" ,emacs-queue)))
5148 (home-page "https://cider.readthedocs.org/")
5149 (synopsis "Clojure development environment for Emacs")
5150 (description
5151 "CIDER (Clojure Interactive Development Environment that Rocks) aims to
5152 provide an interactive development experience similar to the one you'd get
5153 when programming in Emacs Lisp, Common Lisp (with SLIME or Sly), Scheme (with
5154 Geiser) and Smalltalk.
5155
5156 CIDER is the successor to the now deprecated combination of using SLIME +
5157 swank-clojure for Clojure development.
5158
5159 There are plenty of differences between CIDER and SLIME, but the core ideas
5160 are pretty much the same (and SLIME served as the principle inspiration for
5161 CIDER).")
5162 (license license:gpl3+)))
5163
5164 ;; There hasn't been a tag or release since 2015, so we take the latest
5165 ;; commit.
5166 (define-public emacs-sly
5167 (let ((commit "486bfbe95612bcdc0960c490207970a188e0fbb9")
5168 (revision "1"))
5169 (package
5170 (name "emacs-sly")
5171 (version (string-append "1.0.0-" revision "." (string-take commit 9)))
5172 (source
5173 (origin
5174 (method git-fetch)
5175 (uri (git-reference
5176 (url "https://github.com/joaotavora/sly.git")
5177 (commit commit)))
5178 (file-name (git-file-name name version))
5179 (sha256
5180 (base32
5181 "0ib4q4k3h3qn88pymyjjmlmnpizdn1mfg5gpk5a715nqsgxlg09l"))))
5182 (build-system emacs-build-system)
5183 (arguments
5184 `(#:include (cons "^lib\\/" %default-include)
5185 #:phases
5186 ;; The package provides autoloads.
5187 (modify-phases %standard-phases
5188 (delete 'make-autoloads))))
5189 (home-page "https://github.com/joaotavora/sly")
5190 (synopsis "Sylvester the Cat's Common Lisp IDE")
5191 (description
5192 "SLY is Sylvester the Cat's Common Lisp IDE. SLY is a fork of SLIME, and
5193 contains the following improvements over it:
5194
5195 @enumerate
5196 @item Completely redesigned REPL based on Emacs's own full-featured
5197 @code{comint.el}
5198 @item Live code annotations via a new @code{sly-stickers} contrib
5199 @item Consistent interactive button interface. Everything can be copied to
5200 the REPL.
5201 @item Multiple inspectors with independent history
5202 @item Regexp-capable @code{M-x sly-apropos}
5203 @item Contribs are first class SLY citizens and enabled by default
5204 @item Use ASDF to loads contribs on demand.
5205 @end enumerate
5206
5207 SLY tracks SLIME's bugfixes and all its familar features (debugger, inspector,
5208 xref, etc...) are still available, but with better integration.")
5209 (license license:gpl3+))))
5210
5211 (define-public emacs-lua-mode
5212 (let ((commit "652e299cb967fccca827dda381d61a9c144d97de")
5213 (revision "1"))
5214 (package
5215 (name "emacs-lua-mode")
5216 (version (string-append "20151025." revision "-" (string-take commit 9)))
5217 (home-page "https://github.com/immerrr/lua-mode/")
5218 (source (origin
5219 (method git-fetch)
5220 (uri (git-reference
5221 (url home-page)
5222 (commit commit)))
5223 (file-name (string-append name "-" version ".checkout"))
5224 (sha256
5225 (base32
5226 "053025k930wh0lak6rc1973ynfrmm8zsyzfqhhd39x7abkl41hc9"))))
5227 (build-system emacs-build-system)
5228 (synopsis "Major mode for lua")
5229 (description
5230 "This Emacs package provides a mode for @uref{https://www.lua.org/,
5231 Lua programing language}.")
5232 (license license:gpl2+))))
5233
5234 (define-public emacs-ebuild-mode
5235 (package
5236 (name "emacs-ebuild-mode")
5237 (version "1.37")
5238 (source (origin
5239 (method url-fetch)
5240 (uri (string-append
5241 "https://dev.gentoo.org/~ulm/emacs/ebuild-mode"
5242 "-" version ".tar.xz"))
5243 (file-name (string-append name "-" version ".tar.xz"))
5244 (sha256
5245 (base32
5246 "07dzrdjjczkxdfdgi60h4jjkvzi4p0k9rij2wpfp8s03ay3qldpp"))))
5247 (build-system emacs-build-system)
5248 (home-page "https://devmanual.gentoo.org")
5249 (synopsis "Major modes for Gentoo package files")
5250 (description
5251 "This Emacs package provides modes for ebuild, eclass, eblit, GLEP42
5252 news items, openrc and runscripts.")
5253 (license license:gpl2+)))
5254
5255 (define-public emacs-evil
5256 (let ((commit "230b87212c81aaa68ef5547a6b998d9c365fe139"))
5257 (package
5258 (name "emacs-evil")
5259 (version (git-version "1.2.13" "1" commit))
5260 (source
5261 (origin
5262 (method git-fetch)
5263 (uri (git-reference
5264 (url "https://github.com/emacs-evil/evil")
5265 (commit commit)))
5266 (file-name (string-append name "-" version "-checkout"))
5267 (sha256
5268 (base32
5269 "0c9zy3bpck10gcrv79kd3h7i4ygd5bgbgy773n0lg7a2r5kwn1gx"))))
5270 (build-system emacs-build-system)
5271 (propagated-inputs
5272 `(("emacs-undo-tree" ,emacs-undo-tree)
5273 ("emacs-goto-chg" ,emacs-goto-chg)))
5274 (home-page "https://github.com/emacs-evil/evil")
5275 (synopsis "Extensible Vi layer for Emacs")
5276 (description
5277 "Evil is an extensible vi layer for Emacs. It emulates the
5278 main features of Vim, and provides facilities for writing custom
5279 extensions.")
5280 (license license:gpl3+))))
5281
5282 (define-public emacs-evil-collection
5283 (let ((commit "abc9dd60f71ccc1f24803a12d853f84b4a8b258c")
5284 (revision "4"))
5285 (package
5286 (name "emacs-evil-collection")
5287 (version (git-version "0.0.1" revision commit))
5288 (source (origin
5289 (method git-fetch)
5290 (uri (git-reference
5291 (url "https://github.com/emacs-evil/evil-collection")
5292 (commit commit)))
5293 (file-name (string-append name "-" version "-checkout"))
5294 (sha256
5295 (base32
5296 "0c9l93vrsl6kzx8gg305dq8qkb2dr3s10fww7lh382911pdmsh7v"))))
5297 (build-system emacs-build-system)
5298 (propagated-inputs
5299 `(("emacs-evil" ,emacs-evil)))
5300 (home-page "https://github.com/emacs-evil/evil-collection")
5301 (synopsis "Collection of Evil bindings for many major and minor modes")
5302 (description "This is a collection of Evil bindings for the parts of
5303 Emacs that Evil does not cover properly by default, such as @code{help-mode},
5304 @code{M-x calendar}, Eshell and more.")
5305 (license license:gpl3+))))
5306
5307 (define-public emacs-goto-chg
5308 (package
5309 (name "emacs-goto-chg")
5310 (version "1.6")
5311 (source
5312 (origin
5313 (method url-fetch)
5314 ;; There is no versioned source.
5315 (uri "https://www.emacswiki.org/emacs/download/goto-chg.el")
5316 (file-name (string-append "goto-chg-" version ".el"))
5317 (sha256
5318 (base32
5319 "078d6p4br5vips7b9x4v6cy0wxf6m5ij9gpqd4g33bryn22gnpij"))))
5320 (build-system emacs-build-system)
5321 ;; There is no other home page.
5322 (home-page "https://www.emacswiki.org/emacs/goto-chg.el")
5323 (synopsis "Go to the last change in the Emacs buffer")
5324 (description
5325 "This package provides @code{M-x goto-last-change} command that goes to
5326 the point of the most recent edit in the current Emacs buffer. When repeated,
5327 go to the second most recent edit, etc. Negative argument, @kbd{C-u -}, is
5328 used for reverse direction.")
5329 (license license:gpl2+)))
5330
5331 (define-public emacs-monroe
5332 (package
5333 (name "emacs-monroe")
5334 (version "0.3.1")
5335 (source
5336 (origin
5337 (method url-fetch)
5338 (uri (string-append "https://github.com/sanel/monroe/archive/"
5339 version ".tar.gz"))
5340 (file-name (string-append name "-" version ".tar.gz"))
5341 (sha256
5342 (base32
5343 "0icdx8shkd951phlnmcq1vqaxp1l667q5rjscskc5r22aylakh4w"))))
5344 (build-system emacs-build-system)
5345 (home-page "https://github.com/sanel/monroe")
5346 (synopsis "Clojure nREPL client for Emacs")
5347 (description
5348 "Monroe is a nREPL client for Emacs, focused on simplicity and easy
5349 distribution, primarily targeting Clojure users")
5350 (license license:gpl3+)))
5351
5352 (define-public emacs-orgalist
5353 (package
5354 (name "emacs-orgalist")
5355 (version "1.9")
5356 (source
5357 (origin
5358 (method url-fetch)
5359 (uri (string-append "https://elpa.gnu.org/packages/"
5360 "orgalist-" version ".el"))
5361 (sha256
5362 (base32
5363 "1rmmcyiiqkq54hn74nhzxzl4nvd902hv6gq341jwhrm7yiagffi6"))))
5364 (build-system emacs-build-system)
5365 (home-page "http://elpa.gnu.org/packages/orgalist.html")
5366 (synopsis "Manage Org-like lists in non-Org buffers")
5367 (description "Write Org mode's plain lists in non-Org buffers. More
5368 specifically, Orgalist supports the syntax of Org mode for numbered,
5369 unnumbered, description items, checkboxes, and counter cookies.
5370
5371 The library also implements radio lists, i.e., lists written in Org
5372 syntax later translated into the host format, e.g., LaTeX or HTML.")
5373 (license license:gpl3+)))
5374
5375 (define-public emacs-writegood-mode
5376 (package
5377 (name "emacs-writegood-mode")
5378 (version "2.0.2")
5379 (home-page "https://github.com/bnbeckwith/writegood-mode")
5380 (source (origin
5381 (method git-fetch)
5382 (uri (git-reference
5383 (url home-page)
5384 (commit (string-append "v" version))))
5385 (sha256
5386 (base32
5387 "1nnjn1r669hvvzfycllwap4w04m8rfsk4nzcg8057m1f263kj31b"))
5388 (file-name (string-append name "-checkout"))))
5389 (build-system emacs-build-system)
5390 (synopsis "Polish up poor writing on the fly")
5391 (description
5392 "This minor mode tries to find and highlight problems with your writing
5393 in English as you type. It primarily detects \"weasel words\" and abuse of
5394 passive voice.")
5395 (license license:gpl3+)))
5396
5397 (define-public emacs-neotree
5398 (package
5399 (name "emacs-neotree")
5400 (version "0.5.2")
5401 (home-page "https://github.com/jaypei/emacs-neotree")
5402 (source (origin
5403 (method url-fetch)
5404 (uri (string-append
5405 "https://github.com/jaypei/" name
5406 "/archive/" version ".tar.gz"))
5407 (sha256
5408 (base32
5409 "1zd6dchwyijnf7kgchfcp51gs938l204dk9z6mljrfqf2zy0gp12"))
5410 (file-name (string-append name "-" version ".tar.gz"))))
5411 (build-system emacs-build-system)
5412 (synopsis "Folder tree view for Emacs")
5413 (description "This Emacs package provides a folder tree view.")
5414 (license license:gpl3+)))
5415
5416 (define-public emacs-org
5417 (package
5418 (name "emacs-org")
5419 ;; emacs-org-contrib inherits from this package. Please update its sha256
5420 ;; checksum as well.
5421 (version "9.1.14")
5422 (source (origin
5423 (method url-fetch)
5424 (uri (string-append "http://elpa.gnu.org/packages/org-"
5425 version ".tar"))
5426 (sha256
5427 (base32
5428 "17vd9hig26rqv90l6y92hc2i0x29g44lsdsp0xd4m53s8r3zdikz"))))
5429 (build-system emacs-build-system)
5430 (home-page "https://orgmode.org/")
5431 (synopsis "Outline-based notes management and organizer")
5432 (description "Org is an Emacs mode for keeping notes, maintaining TODO
5433 lists, and project planning with a fast and effective lightweight markup
5434 language. It also is an authoring system with unique support for literate
5435 programming and reproducible research.")
5436 (license license:gpl3+)))
5437
5438 (define-public emacs-org-contrib
5439 (package
5440 (inherit emacs-org)
5441 (name "emacs-org-contrib")
5442 (version "20180507")
5443 (source (origin
5444 (method url-fetch)
5445 (uri (string-append "https://orgmode.org/elpa/org-plus-contrib-"
5446 version ".tar"))
5447 (sha256
5448 (base32
5449 "190iwjpdjrhg7gl2d4bri2y0y679vlrwd841r6dvhza0yy338d2d"))))
5450 (arguments
5451 `(#:modules ((guix build emacs-build-system)
5452 (guix build utils)
5453 (guix build emacs-utils)
5454 (ice-9 ftw)
5455 (srfi srfi-1))
5456 #:phases
5457 (modify-phases %standard-phases
5458 (add-after 'install 'delete-org-files
5459 (lambda* (#:key inputs outputs #:allow-other-keys)
5460 (let* ((out (assoc-ref outputs "out"))
5461 (org (assoc-ref inputs "emacs-org"))
5462 (contrib-files
5463 (map basename (find-files out)))
5464 (org+contrib-files
5465 (map basename (find-files org)))
5466 (duplicates (lset-intersection
5467 string=? contrib-files org+contrib-files)))
5468 (with-directory-excursion
5469 (string-append
5470 out "/share/emacs/site-lisp/guix.d/org-contrib-" ,version)
5471 (for-each delete-file duplicates))
5472 #t))))))
5473 (propagated-inputs
5474 `(("emacs-org" ,emacs-org)
5475 ("emacs-scel" ,emacs-scel)))
5476 (synopsis "Contributed packages to Org mode")
5477 (description "Org is an Emacs mode for keeping notes, maintaining TODO
5478 lists, and project planning with a fast and effective plain-text system.
5479
5480 This package is equivalent to org-plus-contrib, but only includes additional
5481 files that you would find in @file{contrib/} from the git repository.")))
5482
5483 (define-public emacs-flx
5484 (package
5485 (name "emacs-flx")
5486 (version "0.6.1")
5487 (source
5488 (origin
5489 (method url-fetch)
5490 (uri (string-append "https://github.com/lewang/"
5491 "flx/archive/v" version ".tar.gz"))
5492 (sha256
5493 (base32
5494 "0bkcpnf1j4i2fcc2rllwbz62l00sw2mcia6rm5amgwvlkqavmkv6"))
5495 (file-name (string-append name "-" version ".tar.gz"))))
5496 (build-system emacs-build-system)
5497 (home-page "https://github.com/lewang/flx")
5498 (synopsis "Fuzzy matching for Emacs")
5499 (description
5500 "Flx provides fuzzy matching for emacs a la sublime text.
5501 The sorting algorithm is a balance between word beginnings (abbreviation)
5502 and contiguous matches (substring). The longer the substring match,
5503 the higher it scores. This maps well to how we think about matching.
5504 Flx has support for ido (interactively do things) through flx-ido.")
5505 (license license:gpl3+)))
5506
5507 (define-public emacs-cyberpunk-theme
5508 (package
5509 (name "emacs-cyberpunk-theme")
5510 (version "1.19")
5511 (source
5512 (origin
5513 (method url-fetch)
5514 (uri (string-append "https://github.com/n3mo/cyberpunk-theme.el/"
5515 "archive/" version ".tar.gz"))
5516 (sha256
5517 (base32
5518 "05l5fxw1mn5py6mfhxrzyqjq0d8m5m1akfi46vrgh13r414jffvv"))
5519 (file-name (string-append name "-" version ".tar.gz"))))
5520 (build-system emacs-build-system)
5521 (home-page "https://github.com/n3mo/cyberpunk-theme.el")
5522 (synopsis "Cyberpunk theme for emacs built-in color theme support")
5523 (description
5524 "Cyberpunk color theme for the emacs 24+ built-in color theme support
5525 known loosely as deftheme. Many mode-specific customizations are included.")
5526 (license license:gpl3+)))
5527
5528 (define-public emacs-danneskjold-theme
5529 (let* ((commit "8733d2fe8743e8a01826ea6d4430ef376c727e57")
5530 (revision "1"))
5531 (package
5532 (name "emacs-danneskjold-theme")
5533 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
5534 (home-page "https://github.com/rails-to-cosmos/danneskjold-theme")
5535 (source
5536 (origin
5537 (method git-fetch)
5538 (uri (git-reference
5539 (url home-page)
5540 (commit commit)))
5541 (file-name (string-append name "-" version "-checkout"))
5542 (sha256
5543 (base32
5544 "0s6rbsb0y8i8m5b9xm4gw1p1cxsxdqnqxqqb638pygz9f76mbir1"))))
5545 (build-system emacs-build-system)
5546 (arguments
5547 `(#:phases
5548 (modify-phases %standard-phases
5549 (add-after 'unpack 'delete-screenshots
5550 (lambda _
5551 (delete-file-recursively "screenshots") #t)))))
5552 (synopsis "High-contrast Emacs theme")
5553 (description
5554 "@code{danneskjold-theme} is a high-contrast theme for Emacs.")
5555 (license license:gpl3+))))
5556
5557 (define-public emacs-dream-theme
5558 (let* ((commit "107a11d74365046f28a1802a2bdb5e69e4a7488b")
5559 (revision "1"))
5560 (package
5561 (name "emacs-dream-theme")
5562 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
5563 (source
5564 (origin
5565 (method git-fetch)
5566 (uri (git-reference
5567 (url "https://github.com/djcb/dream-theme")
5568 (commit commit)))
5569 (file-name (string-append name "-" version "-checkout"))
5570 (sha256
5571 (base32
5572 "0za18nfkq4xqm35k6006vsixcbmvmxqgma4iw5sw37h8vmcsdylk"))))
5573 (build-system emacs-build-system)
5574 (home-page "https://github.com/djcb/dream-theme")
5575 (synopsis "High-contrast Emacs theme")
5576 (description
5577 "@code{dream-theme} is a dark, clean theme for Emacs. It is inspired
5578 by zenburn, sinburn and similar themes, but slowly diverging from them.")
5579 (license license:gpl3+))))
5580
5581 (define-public emacs-auto-complete
5582 (package
5583 (name "emacs-auto-complete")
5584 (version "1.5.1")
5585 (source
5586 (origin
5587 (method url-fetch)
5588 (uri (string-append "https://github.com/auto-complete/"
5589 "auto-complete/archive/v" version ".tar.gz"))
5590 (sha256
5591 (base32
5592 "1jvq4lj00hwml75lpmlciazy8f3bbg13gffsfnl835p4qd8l7yqv"))
5593 (file-name (string-append name "-" version ".tar.gz"))))
5594 (build-system emacs-build-system)
5595 (propagated-inputs
5596 `(("emacs-popup" ,emacs-popup)))
5597 (home-page "https://github.com/auto-complete/auto-complete")
5598 (synopsis "Intelligent auto-completion extension for Emacs")
5599 (description
5600 "Auto-Complete is an intelligent auto-completion extension for Emacs.
5601 It extends the standard Emacs completion interface and provides an environment
5602 that allows users to concentrate more on their own work. Its features are:
5603 a visual interface, reduce overhead of completion by using statistic method,
5604 extensibility.")
5605 (license license:gpl3+)))
5606
5607 (define-public m17n-db
5608 (package
5609 (name "m17n-db")
5610 (version "1.8.0")
5611 (source
5612 (origin
5613 (method url-fetch)
5614 (uri (string-append "mirror://savannah/m17n/m17n-db-"
5615 version ".tar.gz"))
5616 (sha256
5617 (base32
5618 "0vfw7z9i2s9np6nmx1d4dlsywm044rkaqarn7akffmb6bf1j6zv5"))))
5619 (build-system gnu-build-system)
5620 (inputs
5621 `(("gettext" ,gettext-minimal)))
5622 (arguments
5623 `(#:configure-flags
5624 (list (string-append "--with-charmaps="
5625 (assoc-ref %build-inputs "libc")
5626 "/share/i18n/charmaps"))))
5627 ;; With `guix lint' the home-page URI returns a small page saying
5628 ;; that your browser does not handle frames. This triggers the "URI
5629 ;; returns suspiciously small file" warning.
5630 (home-page "https://www.nongnu.org/m17n/")
5631 (synopsis "Multilingual text processing library (database)")
5632 (description "The m17n library realizes multilingualization of
5633 many aspects of applications. The m17n library represents
5634 multilingual text as an object named M-text. M-text is a string with
5635 attributes called text properties, and designed to substitute for
5636 string in C. Text properties carry any information required to input,
5637 display and edit the text.
5638
5639 This package contains the library database.")
5640 (license license:lgpl2.1+)))
5641
5642 (define-public m17n-lib
5643 (package
5644 (name "m17n-lib")
5645 (version "1.8.0")
5646 (source
5647 (origin
5648 (method url-fetch)
5649 (uri (string-append "mirror://savannah/m17n/m17n-lib-"
5650 version ".tar.gz"))
5651 (sha256
5652 (base32
5653 "0jp61y09xqj10mclpip48qlfhniw8gwy8b28cbzxy8hq8pkwmfkq"))))
5654 (build-system gnu-build-system)
5655 (inputs
5656 `(("fribidi" ,fribidi)
5657 ("gd" ,gd)
5658 ("libotf" ,libotf)
5659 ("libxft" ,libxft)
5660 ("libxml2" ,libxml2)
5661 ("m17n-db" ,m17n-db)))
5662 (arguments
5663 `(#:parallel-build? #f))
5664 ;; With `guix lint' the home-page URI returns a small page saying
5665 ;; that your browser does not handle frames. This triggers the "URI
5666 ;; returns suspiciously small file" warning.
5667 (home-page "https://www.nongnu.org/m17n/")
5668 (synopsis "Multilingual text processing library (runtime)")
5669 (description "The m17n library realizes multilingualization of
5670 many aspects of applications. The m17n library represents
5671 multilingual text as an object named M-text. M-text is a string with
5672 attributes called text properties, and designed to substitute for
5673 string in C. Text properties carry any information required to input,
5674 display and edit the text.
5675
5676 This package contains the library runtime.")
5677 (license license:lgpl2.1+)))
5678
5679 (define-public emacs-nginx-mode
5680 (package
5681 (name "emacs-nginx-mode")
5682 (version "1.1.9")
5683 (source
5684 (origin
5685 (method url-fetch)
5686 (uri (string-append
5687 "https://github.com/ajc/nginx-mode/archive/v"
5688 version ".tar.gz"))
5689 (file-name (string-append name "-" version ".tar.gz"))
5690 (sha256
5691 (base32
5692 "0bzyrj6zz1hm67bkhw23bam7qc869s3zg7m1rb1c3aa4n0aw90cq"))))
5693 (build-system emacs-build-system)
5694 (home-page "https://github.com/ajc/nginx-mode")
5695 (synopsis "Emacs major mode for editing nginx config files")
5696 (description "This package provides an Emacs major mode for
5697 editing nginx config files.")
5698 (license license:gpl2+)))
5699
5700 (define-public emacs-stream
5701 (package
5702 (name "emacs-stream")
5703 (version "2.2.0")
5704 (home-page "https://github.com/NicolasPetton/stream")
5705 (source
5706 (origin
5707 (method url-fetch)
5708 (file-name (string-append name "-" version ".tar.gz"))
5709 (uri (string-append home-page "/archive/"version ".tar.gz"))
5710 (sha256
5711 (base32 "03ql4nqfz5pn55mjly6clhvc3g7x2d28kj7mrlqmigvjbql39xxc"))))
5712 (build-system emacs-build-system)
5713 (synopsis "Implementation of streams for Emacs")
5714 (description "This library provides an implementation of streams for Emacs.
5715 Streams are implemented as delayed evaluation of cons cells.")
5716 (license license:gpl3+)))
5717
5718 (define-public emacs-el-search
5719 (let ((commit "f26277bfbb3fc3fc74beea6592f294c439796bd4")
5720 (revision "1"))
5721 (package
5722 (name "emacs-el-search")
5723 ;; No ufficial release.
5724 (version (string-append "0.0-" revision "." (string-take commit 7)))
5725 (home-page "https://github.com/emacsmirror/el-search")
5726 (source
5727 (origin
5728 (method git-fetch)
5729 (file-name (string-append name "-" version ".tar.gz"))
5730 (uri (git-reference
5731 (commit commit)
5732 (url (string-append home-page ".git"))))
5733 (sha256
5734 (base32 "12xf40h9sb7xxg2r97gsia94q02543mgiiiw46fzh1ac7b7993g6"))))
5735 (build-system emacs-build-system)
5736 (inputs `(("emacs-stream" ,emacs-stream)))
5737 (synopsis "Expression based interactive search for emacs-lisp-mode")
5738 (description "This package provides expression based interactive search
5739 procedures for emacs-lisp-mode.")
5740 (license license:gpl3+))))
5741
5742 (define-public emacs-ht
5743 (package
5744 (name "emacs-ht")
5745 (version "2.1")
5746 (source
5747 (origin
5748 (method url-fetch)
5749 (uri (string-append
5750 "https://github.com/Wilfred/ht.el/archive/"
5751 version ".tar.gz"))
5752 (file-name (string-append name "-" version ".tar.gz"))
5753 (sha256
5754 (base32
5755 "1lpba36kzxcc966fvsbrfpy8ah9gnvay0yk26gbyjil0rggrbqzj"))))
5756 (build-system emacs-build-system)
5757 (propagated-inputs `(("emacs-dash" ,emacs-dash)))
5758 (home-page "https://github.com/Wilfred/ht.el")
5759 (synopsis "Hash table library for Emacs")
5760 (description
5761 "This package simplifies the use of hash tables in elisp. It also
5762 provides functions to convert hash tables from and to alists and plists.")
5763 (license license:gpl3+)))
5764
5765 (define-public emacs-log4e
5766 (package
5767 (name "emacs-log4e")
5768 (version "0.3.0")
5769 (source
5770 (origin
5771 (method url-fetch)
5772 (uri (string-append
5773 "https://github.com/aki2o/log4e/archive/v"
5774 version ".tar.gz"))
5775 (file-name (string-append name "-" version ".tar.gz"))
5776 (sha256
5777 (base32
5778 "0nbdpbw353snda3v19l9hsm6gimppwnpxj18amm350bm81lyim2g"))))
5779 (build-system emacs-build-system)
5780 (arguments
5781 `(#:phases
5782 (modify-phases %standard-phases
5783 (add-after 'unpack 'remove-tests
5784 ;; Guile builder complains about null characters in some
5785 ;; strings of test files. Remove "test" directory (it is not
5786 ;; needed anyway).
5787 (lambda _
5788 (delete-file-recursively "test"))))))
5789 (home-page "https://github.com/aki2o/log4e")
5790 (synopsis "Logging framework for elisp")
5791 (description
5792 "This package provides a logging framework for elisp. It allows
5793 you to deal with multiple log levels.")
5794 (license license:gpl3+)))
5795
5796 (define-public emacs-gntp
5797 (package
5798 (name "emacs-gntp")
5799 (version "0.1")
5800 (source
5801 (origin
5802 (method url-fetch)
5803 (uri (string-append
5804 "https://github.com/tekai/gntp.el/archive/v"
5805 version ".tar.gz"))
5806 (file-name (string-append name "-" version ".tar.gz"))
5807 (sha256
5808 (base32
5809 "16c1dfkia9yhl206bdhjr3b8kfvqcqr38jl5lq8qsyrrzsnmghny"))))
5810 (build-system emacs-build-system)
5811 (home-page "https://github.com/tekai/gntp.el")
5812 (synopsis "Growl Notification Protocol for Emacs")
5813 (description
5814 "This package implements the Growl Notification Protocol GNTP
5815 described at @uref{http://www.growlforwindows.com/gfw/help/gntp.aspx}.
5816 It is incomplete as it only lets you send but not receive
5817 notifications.")
5818 (license license:bsd-3)))
5819
5820 (define-public emacs-alert
5821 (package
5822 (name "emacs-alert")
5823 (version "1.2")
5824 (source
5825 (origin
5826 (method url-fetch)
5827 (uri (string-append
5828 "https://github.com/jwiegley/alert/archive/v"
5829 version ".tar.gz"))
5830 (file-name (string-append name "-" version ".tar.gz"))
5831 (sha256
5832 (base32
5833 "1693kck3k2iz5zhpmxwqyafxm68hr6gzs60lkxd3j1wlp2c9fwyr"))))
5834 (build-system emacs-build-system)
5835 (propagated-inputs
5836 `(("emacs-gntp" ,emacs-gntp)
5837 ("emacs-log4e" ,emacs-log4e)))
5838 (home-page "https://github.com/jwiegley/alert")
5839 (synopsis "Growl-style notification system for Emacs")
5840 (description
5841 "Alert is a Growl-workalike for Emacs which uses a common notification
5842 interface and multiple, selectable \"styles\", whose use is fully
5843 customizable by the user.")
5844 (license license:gpl2+)))
5845
5846 (define-public emacs-mu4e-alert
5847 (package
5848 (name "emacs-mu4e-alert")
5849 (version "1.0")
5850 (source
5851 (origin
5852 (method url-fetch)
5853 (uri (string-append
5854 "https://github.com/iqbalansari/mu4e-alert/archive/v"
5855 version ".tar.gz"))
5856 (file-name (string-append name "-" version ".tar.gz"))
5857 (sha256
5858 (base32
5859 "07qc834qnxn8xi4bw5nawj8g91bmkzw0r0vahkgysp7r9xrf57gj"))))
5860 (build-system emacs-build-system)
5861 (propagated-inputs
5862 `(("emacs-alert" ,emacs-alert)
5863 ("emacs-s" ,emacs-s)
5864 ("emacs-ht" ,emacs-ht)
5865 ("mu" ,mu)))
5866 (home-page "https://github.com/iqbalansari/mu4e-alert")
5867 (synopsis "Desktop notification for mu4e")
5868 (description
5869 "This package provides desktop notifications for mu4e.
5870 Additionally it can display the number of unread emails in the
5871 mode-line.")
5872 (license license:gpl3+)))
5873
5874 (define-public emacs-pretty-mode
5875 (package
5876 (name "emacs-pretty-mode")
5877 (version "2.0.3")
5878 (source
5879 (origin
5880 (method url-fetch)
5881 (uri (string-append "https://github.com/akatov/pretty-mode/"
5882 "archive/" version ".tar.gz"))
5883 (file-name (string-append name "-" version ".tar.gz"))
5884 (sha256
5885 (base32
5886 "1fan7m4vnqs8kpg7r54kx3g7faadkpkf9kzarfv8n57kq8w157pl"))))
5887 (build-system emacs-build-system)
5888 (home-page "https://github.com/akatov/pretty-mode")
5889 (synopsis "Redisplay parts of the buffer as Unicode symbols")
5890 (description
5891 "Emacs minor mode for redisplaying parts of the buffer as pretty symbols.")
5892 (license license:gpl3+)))
5893
5894 (define-public emacs-yasnippet
5895 (package
5896 (name "emacs-yasnippet")
5897 (version "0.13.0")
5898 (source (origin
5899 (method url-fetch)
5900 (uri (string-append "https://github.com/joaotavora/yasnippet/"
5901 "archive/" version ".tar.gz"))
5902 (file-name (string-append name "-" version ".tar.gz"))
5903 (sha256
5904 (base32
5905 "12ls2x17agzbrj1xynjbmfa11igqxia4hj4fv6fpr66yci2r1plc"))
5906 (modules '((guix build utils)))
5907 (snippet
5908 '(begin
5909 ;; YASnippet expects a "snippets" subdirectory in the same
5910 ;; directory as yasnippet.el, but we don't install it
5911 ;; because it's a git submodule pointing to an external
5912 ;; repository. Adjust `yas-snippet-dirs' to prevent
5913 ;; warnings about a missing directory.
5914 (substitute* "yasnippet.el"
5915 (("^ +'yas-installed-snippets-dir\\)\\)\n")
5916 "))\n"))
5917 #t))))
5918 (build-system emacs-build-system)
5919 (home-page "https://github.com/joaotavora/yasnippet")
5920 (synopsis "Yet another snippet extension for Emacs")
5921 (description
5922 "YASnippet is a template system for Emacs. It allows you to type an
5923 abbreviation and automatically expand it into function templates.")
5924 (license license:gpl3+)))
5925
5926 (define-public emacs-yasnippet-snippets
5927 (let ((commit "885050d34737e2fb36a3e7759d60c09347bd4ce0")
5928 (revision "1"))
5929 (package
5930 (name "emacs-yasnippet-snippets")
5931 (version (string-append "1-" revision "." (string-take commit 8)))
5932 (source
5933 (origin
5934 (method git-fetch)
5935 (uri (git-reference
5936 (url "https://github.com/AndreaCrotti/yasnippet-snippets")
5937 (commit commit)))
5938 (file-name (string-append name "-" version "-checkout"))
5939 (sha256
5940 (base32
5941 "1m935zgglw0iakzrixld5rcjz3wnj84f8wy2mvc3pggjri9l0qr9"))))
5942 (build-system trivial-build-system)
5943 (arguments
5944 `(#:modules ((ice-9 ftw)
5945 (ice-9 regex)
5946 (guix build utils))
5947 #:builder
5948 (begin
5949 (use-modules (ice-9 ftw)
5950 (ice-9 regex)
5951 (guix build utils))
5952 (with-directory-excursion (assoc-ref %build-inputs "source")
5953 (for-each (lambda (dir)
5954 (copy-recursively
5955 dir
5956 (string-append %output
5957 "/share/emacs/yasnippet-snippets/"
5958 dir)))
5959 (scandir "." (lambda (fname)
5960 (and (string-match "-mode$" fname)
5961 (directory-exists? fname))))))
5962 #t)))
5963 (home-page "https://github.com/AndreaCrotti/yasnippet-snippets")
5964 (synopsis "Collection of YASnippet snippets for many languages")
5965 (description
5966 "Provides Andrea Crotti's collection of YASnippet snippets. After installation,
5967 the snippets will be in \"~/.guix-profile/share/emacs/yasnippet-snippets/\".
5968 To make YASnippet aware of these snippets, add the above directory to
5969 @code{yas-snippet-dirs}.")
5970 (license license:expat))))
5971
5972 (define-public emacs-helm-c-yasnippet
5973 (let ((commit "65ca732b510bfc31636708aebcfe4d2d845b59b0")
5974 (revision "1"))
5975 (package
5976 (name "emacs-helm-c-yasnippet")
5977 (version (string-append "0.6.7" "-" revision "."
5978 (string-take commit 7)))
5979 (source (origin
5980 (method git-fetch)
5981 (uri (git-reference
5982 (url "https://github.com/emacs-jp/helm-c-yasnippet")
5983 (commit commit)))
5984 (file-name (string-append name "-" version "-checkout"))
5985 (sha256
5986 (base32
5987 "1cbafjqlzxbg19xfdqsinsh7afq58gkf44rsg1qxfgm8g6zhr7f8"))))
5988 (build-system emacs-build-system)
5989 (propagated-inputs
5990 `(("emacs-helm" ,emacs-helm)
5991 ("emacs-yasnippet" ,emacs-yasnippet)))
5992 (home-page "https://github.com/emacs-jp/helm-c-yasnippet")
5993 (synopsis "Helm integration for Yasnippet")
5994 (description "This Emacs library provides Helm interface for
5995 Yasnippet.")
5996 (license license:gpl2+))))
5997
5998 (define-public emacs-helm-system-packages
5999 (package
6000 (name "emacs-helm-system-packages")
6001 (version "1.10.1")
6002 (source (origin
6003 (method git-fetch)
6004 (uri (git-reference
6005 (url "https://github.com/emacs-helm/helm-system-packages")
6006 (commit (string-append "v" version))))
6007 (file-name (string-append name "-" version "-checkout"))
6008 (sha256
6009 (base32
6010 "01by0c4lqi2cw8xmbxkjw7m9x78zssm31sx4hdpw5j35s2951j0f"))))
6011 (build-system emacs-build-system)
6012 (inputs
6013 `(("recutils" ,recutils)))
6014 (propagated-inputs
6015 `(("emacs-helm" ,emacs-helm)))
6016 (arguments
6017 `(#:phases
6018 (modify-phases %standard-phases
6019 (add-after 'unpack 'configure
6020 (lambda* (#:key inputs outputs #:allow-other-keys)
6021 (let ((recutils (assoc-ref inputs "recutils")))
6022 ;; Specify the absolute file names of the various
6023 ;; programs so that everything works out-of-the-box.
6024 (substitute* "helm-system-packages-guix.el"
6025 (("recsel") (string-append recutils "/bin/recsel")))))))))
6026 (home-page "https://github.com/emacs-helm/helm-system-packages")
6027 (synopsis "Helm System Packages is an interface to your package manager")
6028 (description "List all available packages in Helm (with installed
6029 packages displayed in their own respective face). Fuzzy-search, mark and
6030 execute the desired action over any selections of packages: Install,
6031 uninstall, display packages details (in Org Mode) or insert details at point,
6032 find files owned by packages... And much more, including performing all the
6033 above over the network.")
6034 (license license:gpl3+)))
6035
6036 (define-public emacs-memoize
6037 (package
6038 (name "emacs-memoize")
6039 (version "1.1")
6040 (source
6041 (origin
6042 (method url-fetch)
6043 (uri (string-append
6044 "https://github.com/skeeto/emacs-memoize/archive/"
6045 version ".tar.gz"))
6046 (file-name (string-append name "-" version ".tar.gz"))
6047 (sha256
6048 (base32
6049 "05ijgwi4ymxx31vpjm2pn356j85cykknajn14lrzz8pn5sh0vrg4"))))
6050 (build-system emacs-build-system)
6051 (arguments
6052 `(#:tests? #t
6053 #:test-command '("emacs" "--batch"
6054 "-l" "memoize-test.el"
6055 "-f" "ert-run-tests-batch-and-exit")))
6056 (home-page "https://github.com/skeeto/emacs-memoize")
6057 (synopsis "Emacs lisp memoization library")
6058 (description "@code{emacs-memoize} is an Emacs library for
6059 memoizing functions.")
6060 (license license:unlicense)))
6061
6062 (define-public emacs-linum-relative
6063 (package
6064 (name "emacs-linum-relative")
6065 (version "0.5")
6066 (source
6067 (origin
6068 (method url-fetch)
6069 (uri (string-append
6070 "https://github.com/coldnew/linum-relative/archive/"
6071 version ".tar.gz"))
6072 (file-name (string-append name "-" version ".tar.gz"))
6073 (sha256
6074 (base32
6075 "0s4frvr27866lw1rn3jal9wj5rkz9fx4yiszqv7w06azsdgsqksv"))))
6076 (build-system emacs-build-system)
6077 (home-page "https://github.com/coldnew/linum-relative")
6078 (synopsis "Relative line numbering for Emacs")
6079 (description "@code{emacs-linum-relative} displays the relative line
6080 number on the left margin in Emacs.")
6081 (license license:gpl2+)))
6082
6083 (define-public emacs-idle-highlight
6084 (package
6085 (name "emacs-idle-highlight")
6086 (version "1.1.3")
6087 (source
6088 (origin
6089 (method url-fetch)
6090 (uri (string-append
6091 "https://github.com/nonsequitur/idle-highlight-mode/archive/"
6092 version ".tar.gz"))
6093 (file-name (string-append name "-" version ".tar.gz"))
6094 (sha256
6095 (base32
6096 "0kdv10hrgqpskjh0zvpnzwlkn5bccnqxas62gkws6njln57bf8nl"))))
6097 (build-system emacs-build-system)
6098 (home-page "https://www.emacswiki.org/emacs/IdleHighlight")
6099 (synopsis "Highlights all occurrences of the word the point is on")
6100 (description
6101 "This Emacs package provides @code{idle-highlight-mode} that sets
6102 an idle timer to highlight all occurrences in the buffer of the word under
6103 the point.")
6104 (license license:gpl3+)))
6105
6106 (define-public emacs-ox-twbs
6107 (package
6108 (name "emacs-ox-twbs")
6109 (version "1.1.1")
6110 (source
6111 (origin
6112 (method url-fetch)
6113 (uri (string-append
6114 "https://github.com/marsmining/ox-twbs/archive/v"
6115 version ".tar.gz"))
6116 (file-name (string-append name "-" version ".tar.gz"))
6117 (sha256
6118 (base32
6119 "1zaq8dczq5wijjk36114k2x3hfrqig3lyx6djril6wyk67vczyqs"))))
6120 (build-system emacs-build-system)
6121 (home-page "https://github.com/marsmining/ox-twbs")
6122 (synopsis "Export org-mode docs as HTML compatible with Twitter Bootstrap")
6123 (description
6124 "This Emacs package outputs your org-mode docs with a simple, clean and
6125 modern look. It implements a new HTML back-end for exporting org-mode docs as
6126 HTML compatible with Twitter Bootstrap. By default, HTML is exported with
6127 jQuery and Bootstrap resources included via osscdn.")
6128 (license license:gpl3+)))
6129
6130 (define-public emacs-highlight-sexp
6131 (package
6132 (name "emacs-highlight-sexp")
6133 (version "1.0")
6134 (source
6135 (origin
6136 (method url-fetch)
6137 (uri (string-append
6138 "https://github.com/daimrod/highlight-sexp/archive/v"
6139 version ".tar.gz"))
6140 (file-name (string-append name "-" version ".tar.gz"))
6141 (sha256
6142 (base32
6143 "0jwx87qkln1rg9wmv4qkgkml935fh2pkgrg5x4ca6n5dgb4q6rj1"))))
6144 (build-system emacs-build-system)
6145 (home-page "https://github.com/daimrod/highlight-sexp")
6146 (synopsis "Minor mode that highlights the s-exp at the current position")
6147 (description
6148 "This Emacs package highlights the s-exp at the current position.")
6149 (license license:gpl3+)))
6150
6151 (define-public emacs-highlight-stages
6152 (let ((commit "29cbc5b78261916da042ddb107420083da49b271")
6153 (revision "1"))
6154 (package
6155 (name "emacs-highlight-stages")
6156 (version (string-append "1.1.0" "-" revision "." (string-take commit 7)))
6157 (source
6158 (origin
6159 (method git-fetch)
6160 (uri (git-reference
6161 (url "https://github.com/zk-phi/highlight-stages.git")
6162 (commit commit)))
6163 (file-name (string-append name "-" version "-checkout"))
6164 (sha256
6165 (base32
6166 "0r6nbcrr0dqpgm8dir8ahzjy7rw4nrac48byamzrq96r7ajlxlv0"))
6167 (patches
6168 (search-patches "emacs-highlight-stages-add-gexp.patch"))))
6169 (build-system emacs-build-system)
6170 (home-page "https://github.com/wigust/highlight-stages")
6171 (synopsis "Minor mode that highlights (quasi-quoted) expressions")
6172 (description "@code{highlight-stages} provides an Emacs minor mode that
6173 highlights quasi-quoted expressions.")
6174 (license license:gpl3+))))
6175
6176 (define-public emacspeak
6177 (package
6178 (name "emacspeak")
6179 (version "48.0")
6180 (source
6181 (origin
6182 (method url-fetch)
6183 (uri (string-append
6184 "https://github.com/tvraman/emacspeak/releases/download/"
6185 version "/emacspeak-" version ".tar.bz2"))
6186 (sha256
6187 (base32
6188 "07imi3hji06b3r7v7v59978q76s8a7ynmxwfc9j03pgnv965lpjy"))))
6189 (build-system gnu-build-system)
6190 (arguments
6191 '(#:make-flags (list (string-append "prefix="
6192 (assoc-ref %outputs "out")))
6193 #:phases
6194 (modify-phases %standard-phases
6195 (replace 'configure
6196 (lambda* (#:key outputs #:allow-other-keys)
6197 (let* ((out (assoc-ref outputs "out"))
6198 (lisp (string-append out
6199 "/share/emacs/site-lisp/emacspeak")))
6200 (setenv "SHELL" (which "sh"))
6201 ;; Configure Emacspeak according to etc/install.org.
6202 (invoke "make" "config"))))
6203 (add-after 'build 'build-espeak
6204 (lambda _
6205 (invoke "make" "espeak")))
6206 (replace 'install
6207 (lambda* (#:key inputs outputs #:allow-other-keys)
6208 (let* ((out (assoc-ref outputs "out"))
6209 (bin (string-append out "/bin"))
6210 (lisp (string-append out "/share/emacs/site-lisp/emacspeak"))
6211 (info (string-append out "/share/info"))
6212 (emacs (string-append (assoc-ref inputs "emacs")
6213 "/bin/emacs")))
6214 ;; According to etc/install.org, the Emacspeak directory should
6215 ;; be copied to its installation destination.
6216 (for-each
6217 (lambda (file)
6218 (copy-recursively file (string-append lisp "/" file)))
6219 '("etc" "info" "js" "lisp" "media" "scapes" "servers" "sounds"
6220 "stumpwm" "xsl"))
6221 ;; Make sure emacspeak is loaded from the correct directory.
6222 (substitute* "etc/emacspeak.sh"
6223 (("exec FLAVOR.*")
6224 (string-append "exec " emacs " -l " lisp
6225 "/lisp/emacspeak-setup.el $CL_ALL")))
6226 ;; Install the convenient startup script.
6227 (mkdir-p bin)
6228 (copy-file "etc/emacspeak.sh" (string-append bin "/emacspeak")))
6229 #t))
6230 (add-after 'install 'wrap-program
6231 (lambda* (#:key inputs outputs #:allow-other-keys)
6232 (let* ((out (assoc-ref outputs "out"))
6233 (emacspeak (string-append out "/bin/emacspeak"))
6234 (espeak (string-append (assoc-ref inputs "espeak")
6235 "/bin/espeak")))
6236 ;; The environment variable DTK_PROGRAM tells emacspeak what
6237 ;; program to use for speech.
6238 (wrap-program emacspeak
6239 `("DTK_PROGRAM" ":" prefix (,espeak)))
6240 #t))))
6241 #:tests? #f)) ; no check target
6242 (inputs
6243 `(("emacs" ,emacs)
6244 ("espeak" ,espeak)
6245 ("perl" ,perl)
6246 ("tcl" ,tcl)
6247 ("tclx" ,tclx)))
6248 (home-page "http://emacspeak.sourceforge.net")
6249 (synopsis "Audio desktop interface for Emacs")
6250 (description
6251 "Emacspeak is a speech interface that allows visually impaired users to
6252 interact independently and efficiently with the computer. Audio formatting
6253 --a technique pioneered by AsTeR-- and full support for W3C's Aural CSS (ACSS)
6254 allows Emacspeak to produce rich aural presentations of electronic information.
6255 By seamlessly blending all aspects of the Internet such as Web-surfing and
6256 messaging, Emacspeak speech-enables local and remote information via a
6257 consistent and well-integrated user interface.")
6258 (license license:gpl2+)))
6259
6260 (define-public emacs-adaptive-wrap
6261 (package
6262 (name "emacs-adaptive-wrap")
6263 (version "0.5.1")
6264 (source (origin
6265 (method url-fetch)
6266 (uri (string-append
6267 "http://elpa.gnu.org/packages/adaptive-wrap-"
6268 version ".el"))
6269 (sha256
6270 (base32
6271 "0qi7gjprcpywk2daivnlavwsx53hl5wcqvpxbwinvigg42vxh3ll"))))
6272 (build-system emacs-build-system)
6273 (home-page "http://elpa.gnu.org/packages/adaptive-wrap.html")
6274 (synopsis "Smart line-wrapping with wrap-prefix")
6275 (description
6276 "This Emacs package provides the @code{adaptive-wrap-prefix-mode}
6277 minor mode which sets the wrap-prefix property on the fly so that
6278 single-long-line paragraphs get word-wrapped in a way similar to what
6279 you'd get with @kbd{M-q} using @code{adaptive-fill-mode}, but without
6280 actually changing the buffer's text.")
6281 (license license:gpl3+)))
6282
6283 (define-public emacs-diff-hl
6284 (package
6285 (name "emacs-diff-hl")
6286 (version "1.8.4")
6287 (source
6288 (origin
6289 (method url-fetch)
6290 (uri (string-append "http://elpa.gnu.org/packages/diff-hl-"
6291 version ".tar"))
6292 (sha256
6293 (base32
6294 "0axhidc3cym7a2x4rpxf4745qss9s9ajyg4s9h5b4zn7v7fyp71n"))))
6295 (build-system emacs-build-system)
6296 (home-page "https://github.com/dgutov/diff-hl")
6297 (synopsis
6298 "Highlight uncommitted changes using VC")
6299 (description
6300 "@code{diff-hl-mode} highlights uncommitted changes on the side of the
6301 window (using the fringe, by default), allows you to jump between
6302 the hunks and revert them selectively.")
6303 (license license:gpl3+)))
6304
6305 (define-public emacs-diminish
6306 (package
6307 (name "emacs-diminish")
6308 (version "0.45")
6309 (source
6310 (origin
6311 (method url-fetch)
6312 (uri (string-append
6313 "https://github.com/myrjola/diminish.el/archive/v"
6314 version ".tar.gz"))
6315 (file-name (string-append name "-" version ".tar.gz"))
6316 (sha256
6317 (base32
6318 "0i3629sv5cfrrb00hcnmaqzgs8mk36yasc1ax3ry1ga09nr6rkj9"))))
6319 (build-system emacs-build-system)
6320 (home-page "https://github.com/myrjola/diminish.el")
6321 (synopsis "Diminish minor modes with no modeline display")
6322 (description "@code{emacs-diminish} implements hiding or
6323 abbreviation of the mode line displays (lighters) of minor modes.")
6324 (license license:gpl2+)))
6325
6326 (define-public emacs-use-package
6327 (let ((commit "da8c9e2840343906e732f9699e43d35a1f06481d")
6328 (revision "1"))
6329 (package
6330 (name "emacs-use-package")
6331 (version (git-version "2.3" revision commit))
6332 (source (origin
6333 (method git-fetch)
6334 (uri (git-reference
6335 (url "https://github.com/jwiegley/use-package")
6336 (commit commit)))
6337 (file-name (git-file-name name version))
6338 (sha256
6339 (base32
6340 "0jz38pbq1p9h85i6qcsh3sfzkd103y6mw3rg5zd14dxigp8ir3xz"))))
6341 (build-system emacs-build-system)
6342 (propagated-inputs
6343 `(("emacs-diminish" ,emacs-diminish)))
6344 (arguments
6345 `(#:tests? #t
6346 #:test-command '("emacs" "--batch"
6347 "-l" "use-package-tests.el"
6348 "-f" "ert-run-tests-batch-and-exit")))
6349 (home-page "https://github.com/jwiegley/use-package")
6350 (synopsis "Declaration for simplifying your .emacs")
6351 (description "The use-package macro allows you to isolate package
6352 configuration in your @file{.emacs} file in a way that is both
6353 performance-oriented and tidy.")
6354 (license license:gpl2+))))
6355
6356 (define-public emacs-strace-mode
6357 (let* ((commit "6a69b4b06db6797af56f33eda5cb28af94e59f11")
6358 (revision "1"))
6359 (package
6360 (name "emacs-strace-mode")
6361 (version (string-append "0.0.2-" revision "." (string-take commit 7)))
6362 (source (origin
6363 (method git-fetch)
6364 (uri (git-reference
6365 (url "https://github.com/pkmoore/strace-mode")
6366 (commit commit)))
6367 (file-name (string-append name "-" version "-checkout"))
6368 (sha256
6369 (base32
6370 "1lbk2kzdznf2bkfazizfbimaxxzfzv00lrz1ran9dc2zqbc0bj9f"))))
6371 (build-system emacs-build-system)
6372 (home-page "https://github.com/pkmoore/strace-mode")
6373 (synopsis "Emacs major mode to highlight strace outputs")
6374 (description "@code{emacs-strace-mode} provides an Emacs major mode
6375 highlighting strace outputs.")
6376 (license license:gpl3+))))
6377
6378 (define-public emacs-default-encrypt
6379 (package
6380 (name "emacs-default-encrypt")
6381 (version "4.3")
6382 (source
6383 (origin
6384 (method url-fetch)
6385 (uri (string-append
6386 "https://www.informationelle-selbstbestimmung-im-internet.de"
6387 "/emacs/jl-encrypt" version "/jl-encrypt.el"))
6388 (file-name (string-append "jl-encrypt-" version ".el"))
6389 (sha256
6390 (base32
6391 "16i3rlfp3jxlqvndn8idylhmczync3gwmy8a019v29vyr48rnnr0"))))
6392 (build-system emacs-build-system)
6393 (home-page "https://www.informationelle-selbstbestimmung-im-internet.de/Emacs.html")
6394 (synopsis "Automatically encrypt or sign Gnus messages in Emacs")
6395 (description
6396 "DefaultEncrypt is designed to be used with Gnus in Emacs. It
6397 automatically encrypts messages that you send (e.g., email) when public keys
6398 for all recipients are available, and it protects you from accidentally
6399 sending un-encrypted messages. It can also be configured to automatically
6400 sign messages that you send. For details and instructions on how to use
6401 DefaultEncrypt, please refer to the home page or read the comments in the
6402 source file, @file{jl-encrypt.el}.")
6403 (license license:gpl3+)))
6404
6405 (define-public emacs-htmlize
6406 (package
6407 (name "emacs-htmlize")
6408 (version "1.53")
6409 (source
6410 (origin
6411 (method url-fetch)
6412 (uri (string-append
6413 "https://github.com/hniksic/emacs-htmlize/archive/release/"
6414 version ".tar.gz"))
6415 (file-name (string-append name "-" version ".tar.gz"))
6416 (sha256
6417 (base32
6418 "1lzaf9m1qr9dhw4nn53g6wszk2vqw95gpsbrc3y85bams4cn24ga"))))
6419 (build-system emacs-build-system)
6420 (home-page "https://github.com/hniksic/emacs-htmlize")
6421 (synopsis "Convert buffer text and decorations to HTML")
6422 (description "@code{emacs-htmlize} converts the buffer text and
6423 the associated decorations to HTML. Output to CSS, inline CSS and
6424 fonts is supported.")
6425 (license license:gpl2+)))
6426
6427 (define-public emacs-xmlgen
6428 (package
6429 (name "emacs-xmlgen")
6430 (version "0.5")
6431 (source
6432 (origin
6433 (method url-fetch)
6434 (uri (string-append
6435 "https://github.com/philjackson/xmlgen/archive/"
6436 version ".tar.gz"))
6437 (file-name (string-append name "-" version ".tar.gz"))
6438 (sha256
6439 (base32
6440 "0zay490vjby3f7455r0vydmjg7q1gwc78hilpfb0rg4gwz224z8r"))))
6441 (build-system emacs-build-system)
6442 (arguments
6443 `(#:tests? #t
6444 #:test-command '("emacs" "--batch"
6445 "-l" "xmlgen-test.el"
6446 "-f" "ert-run-tests-batch-and-exit")))
6447 (home-page "https://github.com/philjackson/xmlgen")
6448 (synopsis "S-expression to XML domain specific language (DSL) in
6449 Emacs Lisp")
6450 (description "@code{emacs-xmlgen} provides S-expression to XML
6451 conversion for Emacs Lisp.")
6452 (license license:gpl2+)))
6453
6454 (define-public emacs-cdlatex
6455 (package
6456 (name "emacs-cdlatex")
6457 (version "4.7")
6458 (source
6459 (origin
6460 (method url-fetch)
6461 (uri (string-append
6462 "https://github.com/cdominik/cdlatex/archive/"
6463 version ".tar.gz"))
6464 (file-name (string-append name "-" version ".tar.gz"))
6465 (sha256
6466 (base32
6467 "0pivapphmykc6vhvpx7hdyl55ls37vc4jcrxpvs4yk7jzcmwa9xp"))))
6468 (build-system emacs-build-system)
6469 (propagated-inputs
6470 `(("emacs-auctex" ,emacs-auctex)))
6471 (home-page "https://github.com/cdominik/cdlatex")
6472 (synopsis "Fast Emacs input methods for LaTeX environments and
6473 math")
6474 (description "CDLaTeX is an Emacs minor mode supporting fast
6475 insertion of environment templates and math in LaTeX. Similar
6476 commands are also offered as part of the AUCTeX package, but it is not
6477 the same - CDLaTeX focuses on speediness for inserting LaTeX
6478 constructs.")
6479 (license license:gpl3+)))
6480
6481 (define-public emacs-cnfonts
6482 (package
6483 (name "emacs-cnfonts")
6484 (version "0.9.1")
6485 (source (origin
6486 (method url-fetch)
6487 (uri (string-append
6488 "https://github.com/tumashu/cnfonts/archive/v"
6489 version ".tar.gz"))
6490 (file-name (string-append name "-" version ".tar.gz"))
6491 (sha256
6492 (base32
6493 "1l6cgcvc6md1zq97ccczankpyi0k4vjx6apflny6kjq3p33lyhf4"))))
6494 (build-system emacs-build-system)
6495 (home-page "https://github.com/tumashu/cnfonts")
6496 (synopsis "Emacs Chinese fonts setup tool")
6497 (description "cnfonts is a Chinese fonts setup tool, allowing for easy
6498 configuration of Chinese fonts.")
6499 (license license:gpl2+)))
6500
6501 (define-public emacs-php-mode
6502 (package
6503 (name "emacs-php-mode")
6504 (version "20171225.342")
6505 (source (origin
6506 (method url-fetch)
6507 (uri (string-append
6508 "https://melpa.org/packages/php-mode-"
6509 version ".tar"))
6510 (sha256
6511 (base32
6512 "1zz682f34v4wsm2dyj1gnrnvsrqdq1cy7j8p6cvc398w2fziyg3q"))))
6513 (build-system emacs-build-system)
6514 (home-page "https://github.com/ejmr/php-mode")
6515 (synopsis "Major mode for editing PHP code")
6516 (description "@code{php-mode} is a major mode for editing PHP source
6517 code. It's an extension of C mode; thus it inherits all C mode's navigation
6518 functionality. But it colors according to the PHP grammar and indents
6519 according to the PEAR coding guidelines. It also includes a couple handy
6520 IDE-type features such as documentation search and a source and class
6521 browser.")
6522 (license license:gpl3+)))
6523
6524 (define-public emacs-pos-tip
6525 (package
6526 (name "emacs-pos-tip")
6527 (version "0.4.6")
6528 (source (origin
6529 (method url-fetch)
6530 (uri (string-append
6531 "https://github.com/pitkali/pos-tip/archive/"
6532 version ".tar.gz"))
6533 (file-name (string-append name "-" version ".tar.gz"))
6534 (sha256
6535 (base32
6536 "12jqfy26vjk7lq0aa8yn8zqj8c85fkvx7y9prj0pcn4wqiz2ad2r"))))
6537 (build-system emacs-build-system)
6538 ;; The following functions and variables needed by emacs-pos-tip are
6539 ;; not included in emacs-minimal:
6540 ;; x-display-pixel-width, x-display-pixel-height, x-show-tip
6541 (arguments `(#:emacs ,emacs))
6542 (home-page "https://github.com/pitkali/pos-tip")
6543 (synopsis "Show tooltip at point")
6544 (description "The standard library tooltip.el provides a function for
6545 displaying a tooltip at the mouse position. However, locating a tooltip at an
6546 arbitrary buffer position in a window is not easy. Pos-tip provides such a
6547 function to be used by other frontend programs.")
6548 (license license:gpl2+)))
6549
6550 (define-public emacs-pyim-basedict
6551 (package
6552 (name "emacs-pyim-basedict")
6553 (version "0.3.1")
6554 (source (origin
6555 (method url-fetch)
6556 (uri (string-append
6557 "https://github.com/tumashu/pyim-basedict/archive/v"
6558 version ".tar.gz"))
6559 (file-name (string-append name "-" version ".tar.gz"))
6560 (sha256
6561 (base32
6562 "0nfgxviavkgrpyfsw60xsws4fk51fcmgl8fp6zf4ibqjjbp53n3n"))))
6563 (build-system emacs-build-system)
6564 (home-page "https://github.com/tumashu/pyim-basedict")
6565 (synopsis "Input method dictionary of pyim")
6566 (description "Pyim-basedict is the default pinyin input method dictionary,
6567 containing words from the rime project.")
6568 (license license:gpl2+)))
6569
6570 (define-public emacs-pyim
6571 (package
6572 (name "emacs-pyim")
6573 (version "1.6.4")
6574 (source (origin
6575 (method url-fetch)
6576 (uri (string-append
6577 "https://github.com/tumashu/pyim/archive/v"
6578 version ".tar.gz"))
6579 (file-name (string-append name "-" version ".tar.gz"))
6580 (sha256
6581 (base32
6582 "0hfg8q9hcjifvnlghw2g94dfxfirms2psq2ghqb28fhkf0lks13r"))))
6583 (build-system emacs-build-system)
6584 (propagated-inputs
6585 `(("emacs-async" ,emacs-async)
6586 ("emacs-pyim-basedict" ,emacs-pyim-basedict)
6587 ("emacs-popup" ,emacs-popup)
6588 ("emacs-pos-tip" ,emacs-pos-tip)))
6589 (home-page "https://github.com/tumashu/pyim")
6590 (synopsis "Chinese input method")
6591 (description "Chinese input method which supports quanpin, shuangpin, wubi
6592 and cangjie.")
6593 (license license:gpl2+)))
6594
6595 (define-public emacs-el2org
6596 (package
6597 (name "emacs-el2org")
6598 (version "0.6.0")
6599 (source (origin
6600 (method url-fetch)
6601 (uri (string-append
6602 "https://github.com/tumashu/el2org/archive/v"
6603 version ".tar.gz"))
6604 (file-name (string-append name "-" version ".tar.gz"))
6605 (sha256
6606 (base32
6607 "0gd3km1swwvg2w0kdi7370f54wgrflxn63gjgssfjc1iyc9sbqwq"))))
6608 (build-system emacs-build-system)
6609 (home-page "https://github.com/tumashu/el2org")
6610 (synopsis "Convert Emacs-lisp file to org file")
6611 (description "El2org is a simple tool, which can convert Emacs-lisp file
6612 to org file, you can use this tool to write orgify commentary.")
6613 (license license:gpl2+)))
6614
6615 (define-public emacs-mustache
6616 (package
6617 (name "emacs-mustache")
6618 (version "0.23")
6619 (source (origin
6620 (method url-fetch)
6621 (uri (string-append
6622 "https://github.com/Wilfred/mustache.el/archive/"
6623 version ".tar.gz"))
6624 (file-name (string-append name "-" version ".tar.gz"))
6625 (sha256
6626 (base32
6627 "0k9lcgil7kykkv1ylrgwy1g13ldjjmgi2cwmysgyb2vlj3jbwpdj"))))
6628 (build-system emacs-build-system)
6629 (propagated-inputs
6630 `(("emacs-dash" ,emacs-dash)
6631 ("emacs-ht" ,emacs-ht)
6632 ("emacs-s" ,emacs-s)))
6633 (home-page "https://github.com/Wilfred/mustache.el")
6634 (synopsis "Mustache templating library for Emacs")
6635 (description "Mustache templating library for Emacs, mustache is
6636 a simple web template system, which is described as a logic-less system
6637 because it lacks any explicit control flow statements, both looping and
6638 conditional evaluation can be achieved using section tags processing lists
6639 and lambdas.")
6640 (license license:gpl3+)))
6641
6642 (define-public emacs-org2web
6643 (package
6644 (name "emacs-org2web")
6645 (version "0.9.1")
6646 (source (origin
6647 (method url-fetch)
6648 (uri (string-append
6649 "https://github.com/tumashu/org2web/archive/v"
6650 version ".tar.gz"))
6651 (file-name (string-append name "-" version ".tar.gz"))
6652 (sha256
6653 (base32
6654 "1c0ixcphlhp4c4qdiwq40bc3yp1gp1llp8pxrk4s7ny9n68s52zp"))))
6655 (build-system emacs-build-system)
6656 (propagated-inputs
6657 `(("emacs-dash" ,emacs-dash)
6658 ("emacs-el2org" ,emacs-el2org)
6659 ("emacs-ht" ,emacs-ht)
6660 ("emacs-mustache" ,emacs-mustache)
6661 ("emacs-simple-httpd" ,emacs-simple-httpd)))
6662 (home-page "https://github.com/tumashu/org2web")
6663 (synopsis "Static site generator based on org-mode ")
6664 (description "Org2web is a static site generator based on org-mode,
6665 which code derived from Kelvin H's org-page.")
6666 (license license:gpl2+)))
6667
6668 (define-public emacs-xelb
6669 (package
6670 (name "emacs-xelb")
6671 (version "0.16")
6672 (source (origin
6673 (method url-fetch)
6674 (uri (string-append "https://elpa.gnu.org/packages/xelb-"
6675 version ".tar"))
6676 (sha256
6677 (base32
6678 "03wsr1jr7f7zfd80h864rd4makwh4widdnj1kjv2xyjwdgap9rl8"))))
6679 (build-system emacs-build-system)
6680 ;; The following functions and variables needed by emacs-xelb are
6681 ;; not included in emacs-minimal:
6682 ;; x-display-screens, x-keysym-table, x-alt-keysym, x-meta-keysym
6683 ;; x-hyper-keysym, x-super-keysym, libxml-parse-xml-region
6684 ;; x-display-pixel-width, x-display-pixel-height
6685 (arguments
6686 `(#:emacs ,emacs
6687 #:phases
6688 (modify-phases %standard-phases
6689 (add-after 'unpack 'regenerate-el-files
6690 (lambda* (#:key inputs #:allow-other-keys)
6691 (invoke "make"
6692 (string-append "PROTO_PATH="
6693 (assoc-ref inputs "xcb-proto")
6694 "/share/xcb")
6695 (string-append "EMACS_BIN="
6696 (assoc-ref inputs "emacs")
6697 "/bin/emacs -Q")))))))
6698 (native-inputs `(("xcb-proto" ,xcb-proto)))
6699 (home-page "https://github.com/ch11ng/xelb")
6700 (synopsis "X protocol Emacs Lisp binding")
6701 (description "@code{emacs-xelb} is a pure Emacs Lisp implementation of the
6702 X11 protocol based on the XML description files from the XCB project. It
6703 features an object-oriented API and permits a certain degree of concurrency.
6704 It should enable you to implement low-level X11 applications.")
6705 (license license:gpl3+)))
6706
6707 (define-public emacs-exwm
6708 (package
6709 (name "emacs-exwm")
6710 (version "0.20")
6711 (synopsis "Emacs X window manager")
6712 (source (origin
6713 (method url-fetch)
6714 (uri (string-append "https://elpa.gnu.org/packages/exwm-"
6715 version ".tar"))
6716 (sha256
6717 (base32
6718 "0nhhzbkm0mkj7sd1dy2c19cmn56gyaj9nl8kgy86h4fp63hjaz04"))))
6719 (build-system emacs-build-system)
6720 (propagated-inputs
6721 `(("emacs-xelb" ,emacs-xelb)))
6722 (inputs
6723 `(("xhost" ,xhost)
6724 ("dbus" ,dbus)))
6725 ;; The following functions and variables needed by emacs-exwm are
6726 ;; not included in emacs-minimal:
6727 ;; scroll-bar-mode, fringe-mode
6728 ;; x-display-pixel-width, x-display-pixel-height
6729 (arguments
6730 `(#:emacs ,emacs
6731 #:phases
6732 (modify-phases %standard-phases
6733 (add-after 'build 'install-xsession
6734 (lambda* (#:key inputs outputs #:allow-other-keys)
6735 (let* ((out (assoc-ref outputs "out"))
6736 (xsessions (string-append out "/share/xsessions"))
6737 (bin (string-append out "/bin"))
6738 (exwm-executable (string-append bin "/exwm")))
6739 ;; Add a .desktop file to xsessions
6740 (mkdir-p xsessions)
6741 (mkdir-p bin)
6742 (with-output-to-file
6743 (string-append xsessions "/exwm.desktop")
6744 (lambda _
6745 (format #t "[Desktop Entry]~@
6746 Name=~a~@
6747 Comment=~a~@
6748 Exec=~a~@
6749 TryExec=~@*~a~@
6750 Type=Application~%" ,name ,synopsis exwm-executable)))
6751 ;; Add a shell wrapper to bin
6752 (with-output-to-file exwm-executable
6753 (lambda _
6754 (format #t "#!~a ~@
6755 ~a +SI:localuser:$USER ~@
6756 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
6757 (string-append (assoc-ref inputs "bash") "/bin/sh")
6758 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
6759 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
6760 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
6761 '(cond
6762 ((file-exists-p "~/.exwm")
6763 (load-file "~/.exwm"))
6764 ((not (featurep 'exwm))
6765 (require 'exwm)
6766 (require 'exwm-config)
6767 (exwm-config-default)
6768 (message (concat "exwm configuration not found. "
6769 "Falling back to default configuration...")))))))
6770 (chmod exwm-executable #o555)
6771 #t))))))
6772 (home-page "https://github.com/ch11ng/exwm")
6773 (description "EXWM is a full-featured tiling X window manager for Emacs
6774 built on top of XELB.")
6775 (license license:gpl3+)))
6776
6777 (define-public emacs-switch-window
6778 (package
6779 (name "emacs-switch-window")
6780 (version "1.5.1")
6781 (source (origin
6782 (method url-fetch)
6783 (uri (string-append
6784 "https://github.com/dimitri/switch-window/archive/v"
6785 version ".tar.gz"))
6786 (file-name (string-append name "-" version ".tar.gz"))
6787 (sha256
6788 (base32
6789 "07f99apxscwvsp2bjxsbi462c433kcglrjh6xl0gyafs1nvvvnd8"))))
6790 (build-system emacs-build-system)
6791 (home-page "https://github.com/dimitri/switch-window")
6792 (synopsis "Emacs window switch tool")
6793 (description "Switch-window is an emacs window switch tool, which
6794 offer a visual way to choose a window to switch to, delete, split or
6795 other operations.")
6796 (license license:wtfpl2)))
6797
6798 (define-public emacs-exwm-x
6799 (package
6800 (name "emacs-exwm-x")
6801 (version "1.8.1")
6802 (synopsis "Derivative window manager based on EXWM")
6803 (source (origin
6804 (method url-fetch)
6805 (uri (string-append
6806 "https://github.com/tumashu/exwm-x/archive/v"
6807 version ".tar.gz"))
6808 (file-name (string-append name "-" version ".tar.gz"))
6809 (sha256
6810 (base32
6811 "0ali1100aacq4zbvcck80h51pvw204jlxhn4aikkqq4ngbx03kkr"))))
6812 (build-system emacs-build-system)
6813 (propagated-inputs
6814 `(("emacs-exwm" ,emacs-exwm)
6815 ("emacs-switch-window" ,emacs-switch-window)
6816 ("emacs-ivy" ,emacs-ivy)
6817 ("emacs-use-package" ,emacs-use-package)))
6818 (inputs
6819 `(("xhost" ,xhost)
6820 ("dbus" ,dbus)))
6821 ;; Need emacs instead of emacs-minimal,
6822 ;; for emacs's bin path will be inserted into bin/exwm-x file.
6823 (arguments
6824 `(#:emacs ,emacs
6825 #:phases
6826 (modify-phases %standard-phases
6827 (add-after 'build 'install-xsession
6828 (lambda* (#:key inputs outputs #:allow-other-keys)
6829 (let* ((out (assoc-ref outputs "out"))
6830 (xsessions (string-append out "/share/xsessions"))
6831 (bin (string-append out "/bin"))
6832 (exwm-executable (string-append bin "/exwm-x")))
6833 ;; Add a .desktop file to xsessions
6834 (mkdir-p xsessions)
6835 (mkdir-p bin)
6836 (with-output-to-file
6837 (string-append xsessions "/exwm-x.desktop")
6838 (lambda _
6839 (format #t "[Desktop Entry]~@
6840 Name=~a~@
6841 Comment=~a~@
6842 Exec=~a~@
6843 TryExec=~@*~a~@
6844 Type=Application~%" ,name ,synopsis exwm-executable)))
6845 ;; Add a shell wrapper to bin
6846 (with-output-to-file exwm-executable
6847 (lambda _
6848 (format #t "#!~a ~@
6849 ~a +SI:localuser:$USER ~@
6850 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
6851 (string-append (assoc-ref inputs "bash") "/bin/sh")
6852 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
6853 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
6854 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
6855 '(require 'exwmx-loader))))
6856 (chmod exwm-executable #o555)
6857 #t))))))
6858 (home-page "https://github.com/tumashu/exwm-x")
6859 (description "EXWM-X is a derivative window manager based on EXWM, with focus
6860 on mouse-control.")
6861 (license license:gpl3+)))
6862
6863 (define-public emacs-gnuplot
6864 (package
6865 (name "emacs-gnuplot")
6866 (version "0.7.0")
6867 (source
6868 (origin
6869 (method url-fetch)
6870 (uri (string-append
6871 "https://github.com/bruceravel/gnuplot-mode/archive/"
6872 version ".tar.gz"))
6873 (file-name (string-append name "-" version ".tar.gz"))
6874 (sha256
6875 (base32
6876 "0glzymrn138lwig7p4cj17x4if5jisr6l4g6wcbxisqkqgc1h01i"))))
6877 (build-system gnu-build-system)
6878 (native-inputs `(("emacs" ,emacs-minimal)))
6879 (arguments
6880 (let ((elisp-dir (string-append "/share/emacs/site-lisp/guix.d"
6881 "/gnuplot-" version)))
6882 `(#:modules ((guix build gnu-build-system)
6883 (guix build utils)
6884 (guix build emacs-utils))
6885 #:imported-modules (,@%gnu-build-system-modules
6886 (guix build emacs-utils))
6887 #:configure-flags
6888 (list (string-append "EMACS=" (assoc-ref %build-inputs "emacs")
6889 "/bin/emacs")
6890 (string-append "--with-lispdir=" %output ,elisp-dir))
6891 #:phases
6892 (modify-phases %standard-phases
6893 (add-after 'install 'generate-autoloads
6894 (lambda* (#:key outputs #:allow-other-keys)
6895 (emacs-generate-autoloads
6896 "gnuplot"
6897 (string-append (assoc-ref outputs "out") ,elisp-dir))
6898 #t))))))
6899 (home-page "https://github.com/bruceravel/gnuplot-mode")
6900 (synopsis "Emacs major mode for interacting with gnuplot")
6901 (description "@code{emacs-gnuplot} is an emacs major mode for interacting
6902 with gnuplot.")
6903 (license license:gpl2+)))
6904
6905 (define-public emacs-transpose-frame
6906 (package
6907 (name "emacs-transpose-frame")
6908 (version "0.1.0")
6909 (source
6910 (origin
6911 (method url-fetch)
6912 (uri "http://www.emacswiki.org/emacs/download/transpose-frame.el")
6913 (file-name (string-append "transpose-frame-" version ".el"))
6914 (sha256
6915 (base32
6916 "1f67yksgw9s6j0033hmqzaxx2a93jm11sd5ys7cc3li5gfh680m4"))))
6917 (build-system emacs-build-system)
6918 (home-page "https://www.emacswiki.org/emacs/TransposeFrame")
6919 (synopsis "Transpose window arrangement in current frame")
6920 (description "@code{emacs-transpose-frame} provides some interactive
6921 functions which allows users to transpose windows arrangement in currently
6922 selected frame.")
6923 (license license:bsd-2)))
6924
6925 (define-public emacs-key-chord
6926 (package
6927 (name "emacs-key-chord")
6928 (version "0.6")
6929 (source
6930 (origin
6931 (method url-fetch)
6932 (uri "https://www.emacswiki.org/emacs/download/key-chord.el")
6933 (file-name (string-append "key-chord-" version ".el"))
6934 (sha256
6935 (base32
6936 "03m44pqggfrd53nh9dvpdjgm0rvca34qxmd30hr33hzprzjambxg"))))
6937 (build-system emacs-build-system)
6938 (home-page "https://www.emacswiki.org/emacs/key-chord.el")
6939 (synopsis "Map pairs of simultaneously pressed keys to Emacs commands")
6940 (description "@code{emacs-key-chord} provides @code{key-chord-mode}, a
6941 mode for binding key chords to commands. A key chord is defined as two keys
6942 pressed simultaneously or a single key quickly pressed twice.")
6943 (license license:gpl2+)))
6944
6945 (define-public emacs-evil-surround
6946 (package
6947 (name "emacs-evil-surround")
6948 (version "1.0.0")
6949 (source
6950 (origin
6951 (method url-fetch)
6952 (uri (string-append
6953 "https://github.com/timcharper/evil-surround/archive/v"
6954 version ".tar.gz"))
6955 (file-name (string-append name "-" version ".tar.gz"))
6956 (sha256
6957 (base32
6958 "0p572jgic3q1ia1nz37kclir729ay6i2f4sa7wnaapyxly2lwb3r"))))
6959 (build-system emacs-build-system)
6960 (propagated-inputs
6961 `(("emacs-evil" ,emacs-evil)))
6962 (home-page "https://github.com/timcharper/evil-surround")
6963 (synopsis "Easily modify surrounding parantheses and quotes")
6964 (description "@code{emacs-evil-surround} allows easy deletion, change and
6965 addition of surrounding pairs, such as parantheses and quotes, in evil mode.")
6966 (license license:gpl3+)))
6967
6968 (define-public emacs-evil-commentary
6969 (package
6970 (name "emacs-evil-commentary")
6971 (version "2.1.1")
6972 (source
6973 (origin
6974 (method url-fetch)
6975 (uri (string-append
6976 "https://github.com/linktohack/evil-commentary/archive/v"
6977 version ".tar.gz"))
6978 (file-name (string-append name "-" version ".tar.gz"))
6979 (sha256
6980 (base32
6981 "1jdya0i921nwskwrzdsj0vrr3m7gm49dy6f6pk9p5nxaarfxk230"))))
6982 (build-system emacs-build-system)
6983 (propagated-inputs
6984 `(("emacs-evil" ,emacs-evil)))
6985 (home-page "https://github.com/linktohack/evil-commentary")
6986 (synopsis "Comment out code in evil mode")
6987 (description "@code{emacs-evil-commentary} adds keybindings to easily
6988 comment out lines of code in evil mode. It provides @code{gcc} to comment out
6989 lines, and @code{gc} to comment out the target of a motion.")
6990 (license license:gpl3+)))
6991
6992 ;; Tests for emacs-ansi have a circular dependency with ert-runner, and
6993 ;; therefore cannot be run
6994 (define-public emacs-ansi
6995 (package
6996 (name "emacs-ansi")
6997 (version "0.4.1")
6998 (source
6999 (origin
7000 (method url-fetch)
7001 (uri (string-append "https://github.com/rejeep/ansi.el/archive/v"
7002 version ".tar.gz"))
7003 (file-name (string-append name "-" version ".tar.gz"))
7004 (sha256
7005 (base32
7006 "13jj4vbi98j3p17hs99bmy7g21jd5h4v3wpxk4pkvhylm3bfwjw8"))))
7007 (build-system emacs-build-system)
7008 (propagated-inputs
7009 `(("emacs-dash" ,emacs-dash)
7010 ("emacs-s" ,emacs-s)))
7011 (home-page "https://github.com/rejeep/ansi.el")
7012 (synopsis "Convert strings to ANSI")
7013 (description "@code{emacs-ansi} defines functions that turns simple
7014 strings to ANSI strings. Turning a string into an ANSI string can be to add
7015 color to a text, add color in the background of a text or adding a style, such
7016 as bold, underscore or italic.")
7017 (license license:gpl3+)))
7018
7019 ;; Tests for emacs-commander have a circular dependency with ert-runner, and
7020 ;; therefore cannot be run
7021 (define-public emacs-commander
7022 (package
7023 (name "emacs-commander")
7024 (version "0.7.0")
7025 (source
7026 (origin
7027 (method url-fetch)
7028 (uri (string-append "https://github.com/rejeep/commander.el/archive/v"
7029 version ".tar.gz"))
7030 (file-name (string-append name "-" version ".tar.gz"))
7031 (sha256
7032 (base32
7033 "196s2i15z7gwxa97l1wkxvjnfmj5n38wwm6d3g4zz15l2vqggc2y"))))
7034 (build-system emacs-build-system)
7035 (propagated-inputs
7036 `(("emacs-dash" ,emacs-dash)
7037 ("emacs-f" ,emacs-f)
7038 ("emacs-s" ,emacs-s)))
7039 (home-page "https://github.com/rejeep/commander.el")
7040 (synopsis "Emacs command line parser")
7041 (description "@code{emacs-commander} provides command line parsing for
7042 Emacs.")
7043 (license license:gpl3+)))
7044
7045 ;; Tests for ert-runner have a circular dependency with ecukes, and therefore
7046 ;; cannot be run
7047 (define-public emacs-ert-runner
7048 (package
7049 (name "emacs-ert-runner")
7050 (version "0.7.0")
7051 (source
7052 (origin
7053 (method url-fetch)
7054 (uri (string-append "https://github.com/rejeep/ert-runner.el/archive/v"
7055 version ".tar.gz"))
7056 (file-name (string-append name "-" version ".tar.gz"))
7057 (sha256
7058 (base32
7059 "1657nck9i96a4xgl8crfqq0s8gflzp21pkkzwg6m3z5npjxklgwp"))))
7060 (build-system emacs-build-system)
7061 (inputs
7062 `(("emacs-ansi" ,emacs-ansi)
7063 ("emacs-commander" ,emacs-commander)
7064 ("emacs-dash" ,emacs-dash)
7065 ("emacs-f" ,emacs-f)
7066 ("emacs-s" ,emacs-s)
7067 ("emacs-shut-up" ,emacs-shut-up)))
7068 (arguments
7069 `(#:phases
7070 (modify-phases %standard-phases
7071 (add-after 'install 'install-executable
7072 (lambda* (#:key inputs outputs #:allow-other-keys)
7073 (let ((out (assoc-ref outputs "out")))
7074 (substitute* "bin/ert-runner"
7075 (("ERT_RUNNER=\"\\$\\(dirname \\$\\(dirname \\$0\\)\\)")
7076 (string-append "ERT_RUNNER=\"" out
7077 "/share/emacs/site-lisp/guix.d/ert-runner-"
7078 ,version)))
7079 (install-file "bin/ert-runner" (string-append out "/bin"))
7080 (wrap-program (string-append out "/bin/ert-runner")
7081 (list "EMACSLOADPATH" ":" 'prefix
7082 (string-split (getenv "EMACSLOADPATH") #\:)))
7083 #t))))
7084 #:include (cons* "^reporters/.*\\.el$" %default-include)))
7085 (home-page "https://github.com/rejeep/ert-runner.el")
7086 (synopsis "Opinionated Ert testing workflow")
7087 (description "@code{ert-runner} is a tool for Emacs projects tested
7088 using ERT. It assumes a certain test structure setup and can therefore make
7089 running tests easier.")
7090 (license license:gpl3+)))
7091
7092 (define-public ert-runner
7093 (deprecated-package "ert-runner" emacs-ert-runner))
7094
7095 (define-public emacs-disable-mouse
7096 (package
7097 (name "emacs-disable-mouse")
7098 (version "0.2")
7099 (source
7100 (origin
7101 (method url-fetch)
7102 (uri (string-append
7103 "https://github.com/purcell/disable-mouse/archive/"
7104 version ".tar.gz"))
7105 (file-name (string-append name "-" version ".tar.gz"))
7106 (sha256
7107 (base32
7108 "0haqpq23r1wx04lsqrrg3p5visg9hx5i36dg55ab003wfsrlrzbc"))))
7109 (build-system emacs-build-system)
7110 (home-page "https://github.com/purcell/disable-mouse")
7111 (synopsis "Disable mouse commands globally")
7112 (description
7113 "Provides @code{disable-mouse-mode} and @code{global-disable-mouse-mode},
7114 pair of minor modes which suppress all mouse events by intercepting them and
7115 running a customisable handler command (@code{ignore} by default). ")
7116 (license license:gpl3+)))
7117
7118 (define-public emacs-json-reformat
7119 (package
7120 (name "emacs-json-reformat")
7121 (version "0.0.6")
7122 (source
7123 (origin
7124 (method url-fetch)
7125 (uri (string-append "https://github.com/gongo/json-reformat/archive/"
7126 version ".tar.gz"))
7127 (file-name (string-append name "-" version ".tar.gz"))
7128 (sha256
7129 (base32
7130 "11fbq4scrgr7m0iwnzcrn2g7xvqwm2gf82sa7zy1l0nil7265p28"))
7131 (patches (search-patches "emacs-json-reformat-fix-tests.patch"))))
7132 (build-system emacs-build-system)
7133 (propagated-inputs
7134 `(("emacs-undercover" ,emacs-undercover)))
7135 (native-inputs
7136 `(("emacs-dash" ,emacs-dash)
7137 ("emacs-shut-up" ,emacs-shut-up)
7138 ("ert-runner" ,emacs-ert-runner)))
7139 (arguments
7140 `(#:tests? #t
7141 #:test-command '("ert-runner")))
7142 (home-page "https://github.com/gongo/json-reformat")
7143 (synopsis "Reformatting tool for JSON")
7144 (description "@code{json-reformat} provides a reformatting tool for
7145 @url{http://json.org/, JSON}.")
7146 (license license:gpl3+)))
7147
7148 (define-public emacs-json-snatcher
7149 (package
7150 (name "emacs-json-snatcher")
7151 (version "1.0.0")
7152 (source
7153 (origin
7154 (method url-fetch)
7155 (uri (string-append "https://github.com/Sterlingg/json-snatcher/archive/"
7156 version ".tar.gz"))
7157 (file-name (string-append name "-" version ".tar.gz"))
7158 (sha256
7159 (base32
7160 "1nfiwsifpdiz0lbrqa77nl0crnfrv5h85ans9b0g5rggnmyshcfb"))))
7161 (build-system emacs-build-system)
7162 (home-page "https://github.com/sterlingg/json-snatcher")
7163 (synopsis "Grabs the path to JSON values in a JSON file")
7164 (description "@code{emacs-json-snatcher} grabs the path to JSON values in
7165 a @url{http://json.org/, JSON} file.")
7166 (license license:gpl3+)))
7167
7168 (define-public emacs-json-mode
7169 (package
7170 (name "emacs-json-mode")
7171 (version "1.7.0")
7172 (source
7173 (origin
7174 (method url-fetch)
7175 (uri (string-append "https://github.com/joshwnj/json-mode/archive/"
7176 "v" version ".tar.gz"))
7177 (file-name (string-append name "-" version ".tar.gz"))
7178 (sha256
7179 (base32
7180 "06h45p4cn767pk9sqi2zb1c65wy5gyyijqxzpglp80zwxhvajdz5"))))
7181 (build-system emacs-build-system)
7182 (propagated-inputs
7183 `(("emacs-json-reformat" ,emacs-json-reformat)
7184 ("emacs-json-snatcher" ,emacs-json-snatcher)))
7185 (home-page "https://github.com/joshwnj/json-mode")
7186 (synopsis "Major mode for editing JSON files")
7187 (description "@code{json-mode} extends the builtin js-mode syntax
7188 highlighting.")
7189 (license license:gpl3+)))
7190
7191 (define-public emacs-restclient
7192 (let ((commit "07a3888bb36d0e29608142ebe743b4362b800f40")
7193 (revision "1")) ;Guix package revision,
7194 ;upstream doesn't have official releases
7195 (package
7196 (name "emacs-restclient")
7197 (version (string-append revision "."
7198 (string-take commit 7)))
7199 (source (origin
7200 (method git-fetch)
7201 (uri (git-reference
7202 (url "https://github.com/pashky/restclient.el.git")
7203 (commit commit)))
7204 (sha256
7205 (base32
7206 "00lmjhb5im1kgrp54yipf1h9pshxzgjlg71yf2rq5n973gvb0w0q"))
7207 (file-name (git-file-name name version))))
7208 (build-system emacs-build-system)
7209 (propagated-inputs
7210 `(("emacs-helm" ,emacs-helm)))
7211 (home-page "https://github.com/pashky/restclient.el")
7212 (synopsis "Explore and test HTTP REST webservices")
7213 (description
7214 "This tool allows for testing and exploration of HTTP REST Web services
7215 from within Emacs. Restclient runs queries from a plan-text query sheet,
7216 displays results pretty-printed in XML or JSON with @code{restclient-mode}")
7217 (license license:public-domain))))
7218
7219 (define-public emacs-eimp
7220 (let ((version "1.4.0")
7221 (commit "2e7536fe6d8f7faf1bad7a8ae37faba0162c3b4f")
7222 (revision "1"))
7223 (package
7224 (name "emacs-eimp")
7225 (version (git-version version revision commit))
7226 (source
7227 (origin
7228 (method git-fetch)
7229 (uri (git-reference
7230 (url "https://github.com/nicferrier/eimp.git")
7231 (commit commit)))
7232 (file-name (git-file-name name version))
7233 (sha256
7234 (base32
7235 "154d57yafxbcf39r89n5j43c86rp2fki3lw3gwy7ww2g6qkclcra"))))
7236 (build-system emacs-build-system)
7237 (arguments
7238 `(#:phases
7239 (modify-phases %standard-phases
7240 (add-after 'unpack 'configure
7241 (lambda* (#:key inputs #:allow-other-keys)
7242 (let ((imagemagick (assoc-ref inputs "imagemagick")))
7243 ;; eimp.el is read-only in git.
7244 (chmod "eimp.el" #o644)
7245 (emacs-substitute-variables "eimp.el"
7246 ("eimp-mogrify-program"
7247 (string-append imagemagick "/bin/mogrify"))))
7248 #t)))))
7249 (inputs
7250 `(("imagemagick" ,imagemagick)))
7251 (home-page "https://github.com/nicferrier/eimp")
7252 (synopsis "Interactive image manipulation utility for Emacs")
7253 (description "@code{emacs-eimp} allows interactive image manipulation
7254 from within Emacs. It uses the code@{mogrify} utility from ImageMagick to do
7255 the actual transformations.")
7256 (license license:gpl2+))))
7257
7258 (define-public emacs-dired-hacks
7259 (let ((commit "eda68006ce73bbf6b9b995bfd70d08bec8cade36")
7260 (revision "1"))
7261 (package
7262 (name "emacs-dired-hacks")
7263 (version (string-append "0.0.1-" revision "."
7264 (string-take commit 7)))
7265 (source (origin
7266 (method git-fetch)
7267 (uri (git-reference
7268 (url "https://github.com/Fuco1/dired-hacks.git")
7269 (commit commit)))
7270 (file-name (string-append name "-" version "-checkout"))
7271 (sha256
7272 (base32
7273 "1w7ssl9zssn5rcha6apf4h8drkd02k4xgvs203bdbqyqp9wz9brx"))))
7274 (build-system emacs-build-system)
7275 (propagated-inputs
7276 `(("emacs-dash" ,emacs-dash)
7277 ("emacs-eimp" ,emacs-eimp)
7278 ("emacs-f" ,emacs-f)
7279 ("emacs-s" ,emacs-s)))
7280 (home-page "https://github.com/Fuco1/dired-hacks")
7281 (synopsis
7282 "Collection of useful dired additions")
7283 (description
7284 "Collection of Emacs dired mode additions:
7285 @itemize
7286 @item dired-avfs
7287 @item dired-columns
7288 @item dired-filter
7289 @item dired-hacks-utils
7290 @item dired-images
7291 @item dired-list
7292 @item dired-narrow
7293 @item dired-open
7294 @item dired-rainbow
7295 @item dired-ranger
7296 @item dired-subtree
7297 @item dired-tagsistant
7298 @end itemize\n")
7299 (license license:gpl3+))))
7300
7301 (define-public emacs-dired-sidebar
7302 (let ((commit "06bd0d40bab812c61a668129daf29ba359424454")
7303 (revision "0"))
7304 (package
7305 (name "emacs-dired-sidebar")
7306 (home-page "https://github.com/jojojames/dired-sidebar")
7307 (version (git-version "0.0.1" revision commit))
7308 (source (origin
7309 (method git-fetch)
7310 (uri (git-reference (url home-page) (commit commit)))
7311 (sha256
7312 (base32
7313 "0lvwvq6sl80sha9fq5m4568sg534dhmifyjqw75bqddcbf3by84x"))))
7314 (build-system emacs-build-system)
7315 (propagated-inputs
7316 `(("emacs-dired-subtree" ,emacs-dired-hacks)))
7317 (synopsis "Sidebar for Emacs using Dired")
7318 (description
7319 "This package provides a sidebar for Emacs similar to @code{NeoTree}
7320 or @code{treemacs}, but leveraging @code{Dired} to do the job of display.")
7321 (license license:gpl3+))))
7322
7323 (define-public emacs-which-key
7324 (package
7325 (name "emacs-which-key")
7326 (version "3.3.0")
7327 (source
7328 (origin
7329 (method url-fetch)
7330 (uri (string-append
7331 "https://github.com/justbur/emacs-which-key/archive/v"
7332 version ".tar.gz"))
7333 (sha256
7334 (base32
7335 "1lsj314111cp2hjjwnv3f46ws1za6bm39rgy3l19044xf6a68j5w"))
7336 (file-name (string-append name "-" version ".tar.gz"))))
7337 (build-system emacs-build-system)
7338 (arguments
7339 `(#:tests? #t
7340 #:test-command '("emacs" "--batch"
7341 "-l" "which-key-tests.el"
7342 "-f" "ert-run-tests-batch-and-exit")))
7343 (home-page "https://github.com/justbur/emacs-which-key")
7344 (synopsis "Display available key bindings in popup")
7345 (description
7346 "@code{emacs-which-key} is a minor mode for Emacs that displays the key
7347 bindings following your currently entered incomplete command (a prefix) in a
7348 popup. For example, after enabling the minor mode if you enter C-x and wait
7349 for the default of 1 second, the minibuffer will expand with all of the
7350 available key bindings that follow C-x (or as many as space allows given your
7351 settings).")
7352 (license license:gpl3+)))
7353
7354 (define-public emacs-ws-butler
7355 (package
7356 (name "emacs-ws-butler")
7357 (version "0.6")
7358 (source (origin
7359 (method git-fetch)
7360 (uri (git-reference
7361 (url "https://github.com/lewang/ws-butler.git")
7362 (commit "323b651dd70ee40a25accc940b8f80c3a3185205")))
7363 (file-name (string-append name "-" version "-checkout"))
7364 (sha256
7365 (base32
7366 "1a4b0lsmwq84qfx51c5xy4fryhb1ysld4fhgw2vr37izf53379sb"))))
7367 (build-system emacs-build-system)
7368 (native-inputs
7369 `(("ert-runner" ,emacs-ert-runner)))
7370 (arguments
7371 `(#:tests? #t
7372 #:test-command '("ert-runner" "tests")))
7373 (home-page "https://github.com/lewang/ws-butler")
7374 (synopsis "Trim spaces from end of lines")
7375 (description
7376 "This Emacs package automatically and unobtrusively trims whitespace
7377 characters from end of lines.")
7378 (license license:gpl3+)))
7379
7380 (define-public emacs-org-edit-latex
7381 (package
7382 (name "emacs-org-edit-latex")
7383 (version "0.8.0")
7384 (source
7385 (origin
7386 (method url-fetch)
7387 (uri (string-append
7388 "https://github.com/et2010/org-edit-latex/archive/v"
7389 version ".tar.gz"))
7390 (file-name (string-append name "-" version ".tar.gz"))
7391 (sha256
7392 (base32
7393 "1y4h6wrs8286h9pbsv4d8fr67a885vz8b2k80qgv5qddipi2i78p"))))
7394 (build-system emacs-build-system)
7395 (propagated-inputs
7396 `(("emacs-auctex" ,emacs-auctex)
7397 ;; The version of org in Emacs 25.2 is not sufficient, because the
7398 ;; `org-latex-make-preamble' function is required.
7399 ("emacs-org" ,emacs-org)))
7400 (home-page "https://github.com/et2010/org-edit-latex")
7401 (synopsis "Edit a latex fragment just like editing a src block")
7402 (description "@code{emacs-org-edit-latex} is an extension for org-mode.
7403 It lets you edit a latex fragment in a dedicated buffer just like editing a
7404 src block.")
7405 (license license:gpl3+)))
7406
7407 (define-public emacs-emamux
7408 (package
7409 (name "emacs-emamux")
7410 (version "0.14")
7411 (source (origin
7412 (method url-fetch)
7413 (uri (string-append
7414 "https://github.com/syohex/emacs-emamux/archive/"
7415 version ".tar.gz"))
7416 (file-name (string-append name "-" version ".tar.gz"))
7417 (sha256
7418 (base32
7419 "0wlqg4icy037bj70b0qmhvwvmiwhagpnx6pnxhq6gzy1hvwlilkx"))))
7420 (build-system emacs-build-system)
7421 (home-page "https://github.com/syohex/emacs-emamux")
7422 (synopsis "Manipulate Tmux from Emacs")
7423 (description
7424 "@code{emacs-emamux} lets Emacs interact with the @code{tmux} terminal
7425 multiplexer.")
7426 (license license:gpl3+)))
7427
7428 (define-public emacs-rpm-spec-mode
7429 (package
7430 (name "emacs-rpm-spec-mode")
7431 (version "0.16")
7432 (source
7433 (origin
7434 (method url-fetch)
7435 ;; URI has the Fedora release number instead of the version
7436 ;; number. This will have to updated manually every new release.
7437 (uri (string-append
7438 "https://src.fedoraproject.org/cgit/rpms"
7439 "/emacs-rpm-spec-mode.git/snapshot"
7440 "/emacs-rpm-spec-mode-f26.tar.gz"))
7441 (sha256
7442 (base32
7443 "17dz80lhjrc89fj17pysl8slahzrqdkxgcjdk55zls6jizkr6kz3"))))
7444 (build-system emacs-build-system)
7445 (home-page "http://pkgs.fedoraproject.org/cgit/rpms/emacs-rpm-spec-mode.git")
7446 (synopsis "Emacs major mode for editing RPM spec files")
7447 (description "@code{emacs-rpm-spec-mode} provides an Emacs major mode for
7448 editing RPM spec files.")
7449 (license license:gpl2+)))
7450
7451 (define-public emacs-git-messenger
7452 (package
7453 (name "emacs-git-messenger")
7454 (version "0.18")
7455 (source
7456 (origin
7457 (method url-fetch)
7458 (uri (string-append
7459 "https://github.com/syohex/emacs-git-messenger/archive/"
7460 version ".tar.gz"))
7461 (file-name (string-append name "-" version ".tar.gz"))
7462 (sha256
7463 (base32
7464 "17mqki6g0wx46fn7dcbcc2pjxik7vvrcb1j9jzxim8b9psbsbnp9"))))
7465 (build-system emacs-build-system)
7466 (propagated-inputs
7467 `(("emacs-popup" ,emacs-popup)))
7468 (arguments
7469 `(#:tests? #t
7470 #:test-command '("emacs" "--batch" "-l" "test/test.el"
7471 "-f" "ert-run-tests-batch-and-exit")))
7472 (home-page "https://github.com/syohex/emacs-git-messenger")
7473 (synopsis "Popup commit message at current line")
7474 (description "@code{emacs-git-messenger} provides
7475 @code{git-messenger:popup-message}, a function that when called, will popup
7476 the last git commit message for the current line. This uses git-blame
7477 internally.")
7478 (license license:gpl3+)))
7479
7480 (define-public emacs-gitpatch
7481 (package
7482 (name "emacs-gitpatch")
7483 (version "0.5.0")
7484 (source
7485 (origin
7486 (method url-fetch)
7487 (uri (string-append "https://github.com/tumashu/gitpatch/archive/"
7488 "v" version ".tar.gz"))
7489 (file-name (string-append name "-" version ".tar.gz"))
7490 (sha256
7491 (base32
7492 "1yj6pmic541lcnscjin300k380qp9xdfprs55xg1q57jrkq6f6k7"))))
7493 (build-system emacs-build-system)
7494 (home-page "https://github.com/tumashu/gitpatch")
7495 (synopsis "Mail git patch from Emacs")
7496 (description "@code{emacs-gitpatch} lets users easily send git patches,
7497 created by @code{git format-patch}, from @code{magit}, @code{dired} and
7498 @code{ibuffer} buffers.")
7499 (license license:gpl3+)))
7500
7501 (define-public emacs-erc-hl-nicks
7502 (package
7503 (name "emacs-erc-hl-nicks")
7504 (version "1.3.3")
7505 (source
7506 (origin
7507 (method url-fetch)
7508 (uri (string-append "https://github.com/leathekd/erc-hl-nicks"
7509 "/archive/" version ".tar.gz"))
7510 (file-name (string-append name "-" version ".tar.gz"))
7511 (sha256
7512 (base32
7513 "1a1r2kc3688g8c2ybkpwh88kgmnqhg3h3032g2yn4zr9m0n3vpkr"))))
7514 (build-system emacs-build-system)
7515 (synopsis "Nickname highlighting for Emacs ERC")
7516 (description "@code{erc-hl-nicks} highlights nicknames in ERC, an IRC
7517 client for Emacs. The main features are:
7518 @itemize
7519 @item Auto-colorizes nicknames without having to specify colors
7520 @item Ignores certain characters that IRC clients add to nicknames to avoid
7521 duplicates (nickname, nickname’, nickname\", etc.)
7522 @item Attempts to produce colors with a sufficient amount of contrast between
7523 the nick color and the background color
7524 @end itemize\n")
7525 (home-page "https://github.com/leathekd/erc-hl-nicks")
7526 (license license:gpl3+)))
7527
7528 (define-public emacs-engine-mode
7529 (package
7530 (name "emacs-engine-mode")
7531 (version "2.0.0")
7532 (source
7533 (origin
7534 (method url-fetch)
7535 (uri (string-append "https://github.com/hrs/engine-mode/archive/"
7536 "v" version ".tar.gz"))
7537 (file-name (string-append name "-" version ".tar.gz"))
7538 (sha256
7539 (base32
7540 "1vm4p7pcp1vnwwxvps1bhm7i7hkabqqxl898knxf2hqvxys76684"))))
7541 (build-system emacs-build-system)
7542 (synopsis "Minor mode for defining and querying search engines")
7543 (description "@code{engine-mode} is a global minor mode for Emacs. It
7544 enables you to easily define search engines, bind them to keybindings, and
7545 query them from the comfort of your editor.")
7546 (home-page "https://github.com/hrs/engine-mode")
7547 (license license:gpl3+)))
7548
7549 (define-public emacs-prop-menu
7550 (package
7551 (name "emacs-prop-menu")
7552 (version "0.1.2")
7553 (source
7554 (origin
7555 (method url-fetch)
7556 (uri (string-append
7557 "http://stable.melpa.org/packages/prop-menu-"
7558 version ".el"))
7559 (sha256
7560 (base32
7561 "01bk4sjafzz7gqrkv9jg0pa85qr34vbk3q8ga2b0m61bndywzgpr"))))
7562 (build-system emacs-build-system)
7563 (home-page
7564 "https://github.com/david-christiansen/prop-menu-el")
7565 (synopsis
7566 "Create and display a context menu based on text and overlay properties")
7567 (description
7568 "This is a library for computing context menus based on text
7569 properties and overlays. The intended use is to have tools that
7570 annotate source code and others that use these annotations, without
7571 requiring a direct coupling between them, but maintaining
7572 discoverability.
7573
7574 Major modes that wish to use this library should first define an
7575 appropriate value for @code{prop-menu-item-functions}. Then, they should
7576 bind @code{prop-menu-by-completing-read} to an appropriate
7577 key. Optionally, a mouse pop-up can be added by binding
7578 @code{prop-menu-show-menu} to a mouse event.")
7579 (license license:gpl3+)))
7580
7581 (define-public emacs-idris-mode
7582 (package
7583 (name "emacs-idris-mode")
7584 (version "0.9.19")
7585 (source
7586 (origin
7587 (method url-fetch)
7588 (uri (string-append
7589 "http://stable.melpa.org/packages/idris-mode-"
7590 version ".tar"))
7591 (sha256
7592 (base32
7593 "02r1qqsxi6qk7q4cj6a6pygbj856dcw9vcmhfh0ib92j41v77q6y"))))
7594 (build-system emacs-build-system)
7595 (propagated-inputs
7596 `(("emacs-prop-menu" ,emacs-prop-menu)))
7597 (home-page
7598 "https://github.com/idris-hackers/idris-mode")
7599 (synopsis "Major mode for editing Idris code")
7600 (description
7601 "This is an Emacs mode for editing Idris code. It requires the latest
7602 version of Idris, and some features may rely on the latest Git version of
7603 Idris.")
7604 (license license:gpl3+)))
7605
7606 (define-public emacs-browse-at-remote
7607 (package
7608 (name "emacs-browse-at-remote")
7609 (version "0.10.0")
7610 (source
7611 (origin
7612 (method url-fetch)
7613 (uri (string-append
7614 "https://github.com/rmuslimov/browse-at-remote/archive/"
7615 version ".tar.gz"))
7616 (file-name (string-append name "-" version ".tar.gz"))
7617 (sha256
7618 (base32
7619 "0ymslsp6i1naw25zckv25bf4aaq6qwkbkn95qyzlwg869l802686"))))
7620 (build-system emacs-build-system)
7621 (propagated-inputs
7622 `(("emacs-f" ,emacs-f)
7623 ("emacs-s" ,emacs-s)))
7624 (native-inputs
7625 `(("ert-runner" ,emacs-ert-runner)))
7626 (arguments
7627 `(#:tests? #t
7628 #:test-command '("ert-runner")))
7629 (home-page "https://github.com/rmuslimov/browse-at-remote")
7630 (synopsis "Open github/gitlab/bitbucket/stash page from Emacs")
7631 (description
7632 "This Emacs package allows you to open a target page on
7633 github/gitlab (or bitbucket) by calling @code{browse-at-remote} command.
7634 It supports dired buffers and opens them in tree mode at destination.")
7635 (license license:gpl3+)))
7636
7637 (define-public emacs-tiny
7638 (package
7639 (name "emacs-tiny")
7640 (version "0.2.1")
7641 (source
7642 (origin
7643 (method url-fetch)
7644 (uri (string-append "http://elpa.gnu.org/packages/tiny-" version ".tar"))
7645 (sha256
7646 (base32
7647 "1cr73a8gba549ja55x0c2s554f3zywf69zbnd7v82jz5q1k9wd2v"))))
7648 (build-system emacs-build-system)
7649 (home-page "https://github.com/abo-abo/tiny")
7650 (synopsis "Quickly generate linear ranges in Emacs")
7651 (description
7652 "The main command of the @code{tiny} extension for Emacs is @code{tiny-expand}.
7653 It is meant to quickly generate linear ranges, e.g. 5, 6, 7, 8. Some elisp
7654 proficiency is an advantage, since you can transform your numeric range with
7655 an elisp expression.")
7656 (license license:gpl3+)))
7657
7658 (define-public emacs-emojify
7659 (package
7660 (name "emacs-emojify")
7661 (version "0.4")
7662 (source
7663 (origin
7664 (method url-fetch)
7665 (uri (string-append "https://github.com/iqbalansari/emacs-emojify/"
7666 "releases/download/v" version "/emojify-"
7667 version ".tar"))
7668 (sha256
7669 (base32
7670 "0k84v2d2bkiwcky9fi1yyprgkj46g7wh6pyl9gzmcd7sqv051d5n"))))
7671 (build-system emacs-build-system)
7672 (arguments
7673 `(#:phases
7674 (modify-phases %standard-phases
7675 (add-after 'install 'install-data
7676 (lambda* (#:key outputs #:allow-other-keys)
7677 (copy-recursively "data"
7678 (string-append (assoc-ref outputs "out")
7679 "/share/emacs/site-lisp/guix.d/"
7680 "emojify-" ,version "/data"))
7681 #t)))))
7682 (propagated-inputs
7683 `(("emacs-ht" ,emacs-ht)))
7684 (home-page "https://github.com/iqbalansari/emacs-emojify")
7685 (synopsis "Display emojis in Emacs")
7686 (description "This package displays emojis in Emacs similar to how Github,
7687 Slack, and other websites do. It can display plain ASCII like @code{:)} as
7688 well as Github-style emojis like @code{:smile:}. It provides a minor mode
7689 @code{emojify-mode} to enable the display of emojis in a buffer.")
7690 (license license:gpl3+)))
7691
7692 (define-public emacs-websocket
7693 (package
7694 (name "emacs-websocket")
7695 (version "1.10")
7696 (source
7697 (origin
7698 (method git-fetch)
7699 (uri (git-reference
7700 (url "https://github.com/ahyatt/emacs-websocket.git")
7701 (commit version)))
7702 (file-name (string-append name "-" version "-checkout"))
7703 (sha256
7704 (base32
7705 "1dgrf7na6r6mmkknphzshlbd5fnzisg0qn0j7vfpa38wgsymaq52"))))
7706 (build-system emacs-build-system)
7707 (home-page "http://elpa.gnu.org/packages/websocket.html")
7708 (synopsis "Emacs WebSocket client and server")
7709 (description "This is an Elisp library for WebSocket clients to talk to
7710 WebSocket servers, and for WebSocket servers to accept connections from
7711 WebSocket clients. This library is designed to be used by other library
7712 writers, to write applications that use WebSockets, and is not useful by
7713 itself.")
7714 (license license:gpl3+)))
7715
7716 (define-public emacs-oauth2
7717 (package
7718 (name "emacs-oauth2")
7719 (version "0.11")
7720 (source
7721 (origin
7722 (method url-fetch)
7723 (uri (string-append "https://elpa.gnu.org/packages/oauth2-"
7724 version ".el"))
7725 (sha256
7726 (base32
7727 "0ydkc9jazsnbbvfhd47mql52y7k06n3z7r0naqxkwb99j9blqsmp"))))
7728 (build-system emacs-build-system)
7729 (home-page "http://elpa.gnu.org/packages/oauth2.html")
7730 (synopsis "OAuth 2.0 authorization protocol implementation")
7731 (description
7732 "This package provides an Elisp implementation of the OAuth 2.0 draft.
7733 The main entry point is @code{oauth2-auth-and-store} which will return a token
7734 structure. This token structure can be then used with
7735 @code{oauth2-url-retrieve-synchronously} or @code{oauth2-url-retrieve} to
7736 retrieve any data that need OAuth authentication to be accessed. If the token
7737 needs to be refreshed, the code handles it automatically and stores the new
7738 value of the access token.")
7739 (license license:gpl3+)))
7740
7741 (define-public emacs-circe
7742 (package
7743 (name "emacs-circe")
7744 (version "2.10")
7745 (source
7746 (origin
7747 (method git-fetch)
7748 (uri (git-reference
7749 (url "https://github.com/jorgenschaefer/circe.git")
7750 (commit (string-append "v" version))))
7751 (file-name (git-file-name name version))
7752 (sha256
7753 (base32
7754 "10gi14kwxd81blddpvqh95lgmpbfgp0m955naxix3bs3r6a75n4s"))))
7755 (build-system emacs-build-system)
7756 ;; In order to securely connect to an IRC server using TLS, Circe requires
7757 ;; the GnuTLS binary.
7758 (propagated-inputs
7759 `(("gnutls" ,gnutls)))
7760 (home-page "https://github.com/jorgenschaefer/circe")
7761 (synopsis "Client for IRC in Emacs")
7762 (description "Circe is a Client for IRC in Emacs. It integrates well with
7763 the rest of the editor, using standard Emacs key bindings and indicating
7764 activity in channels in the status bar so it stays out of your way unless you
7765 want to use it.")
7766 (license license:gpl3+)))
7767
7768 (define-public emacs-tracking
7769 (package
7770 (inherit emacs-circe)
7771 (name "emacs-tracking")
7772 (arguments
7773 ;; "tracking.el" is a library extracted from Circe package. It requires
7774 ;; "shorten.el".
7775 `(#:include '("^shorten.el$" "^tracking.el$")
7776 #:tests? #f)) ;tests require buttercup
7777 (home-page "https://github.com/jorgenschaefer/circe/wiki/Tracking")
7778 (synopsis "Buffer tracking library")
7779 (description "@code{tracking.el} provides a way for different modes to
7780 notify the user that a buffer needs attention. The user then can cycle
7781 through them using @key{C-c C-SPC}.")
7782 (license license:gpl3+)))
7783
7784 (define-public emacs-slack
7785 (let ((commit "d90395482d26175ce38fd935e978c428be8af9a0")
7786 (revision "4"))
7787 (package
7788 (name "emacs-slack")
7789 (version (string-append "0-" revision "." (string-take commit 7)))
7790 (source (origin
7791 (method git-fetch)
7792 (uri (git-reference
7793 (url "https://github.com/yuya373/emacs-slack.git")
7794 (commit commit)))
7795 (file-name (string-append name "-" version "-checkout"))
7796 (sha256
7797 (base32
7798 "14f6wjcbl09cfd3yngr6m1k1d4nr764im666mbnqbk9nmqf50nib"))))
7799 (build-system emacs-build-system)
7800 (propagated-inputs
7801 `(("emacs-alert" ,emacs-alert)
7802 ("emacs-emojify" ,emacs-emojify)
7803 ("emacs-request" ,emacs-request)
7804 ("emacs-websocket" ,emacs-websocket)
7805 ("emacs-oauth2" ,emacs-oauth2)
7806 ("emacs-circe" ,emacs-circe)))
7807 (home-page "https://github.com/yuya373/emacs-slack")
7808 (synopsis "Slack client for Emacs")
7809 (description "This package provides an Emacs client for the Slack
7810 messaging service.")
7811 (license license:gpl3+))))
7812
7813 (define-public emacs-bash-completion
7814 (package
7815 (name "emacs-bash-completion")
7816 (version "2.1.0")
7817 (source
7818 (origin
7819 (method url-fetch)
7820 (uri (string-append
7821 "https://github.com/szermatt/emacs-bash-completion/archive/v"
7822 version ".tar.gz"))
7823 (file-name (string-append name "-" version ".tar.gz"))
7824 (sha256
7825 (base32
7826 "1z0qck3v3ra6ivacn8n04w1v33a4xn01xx860761q31qzsv3sksq"))))
7827 (inputs `(("bash" ,bash)))
7828 (build-system emacs-build-system)
7829 (arguments
7830 `(#:phases
7831 (modify-phases %standard-phases
7832 (add-before 'install 'configure
7833 (lambda* (#:key inputs #:allow-other-keys)
7834 (let ((bash (assoc-ref inputs "bash")))
7835 (emacs-substitute-variables "bash-completion.el"
7836 ("bash-completion-prog" (string-append bash "/bin/bash"))))
7837 #t)))))
7838 (home-page "https://github.com/szermatt/emacs-bash-completion")
7839 (synopsis "Bash completion for the shell buffer")
7840 (description
7841 "@code{bash-completion} defines dynamic completion hooks for shell-mode
7842 and shell-command prompts that are based on Bash completion.")
7843 (license license:gpl2+)))
7844
7845 (define-public emacs-easy-kill
7846 (package
7847 (name "emacs-easy-kill")
7848 (version "0.9.3")
7849 (source (origin
7850 (method url-fetch)
7851 (uri (string-append "https://elpa.gnu.org/packages/easy-kill-"
7852 version ".tar"))
7853 (sha256
7854 (base32
7855 "17nw0mglmg877axwg1d0gs03yc0p04lzmd3pl0nsnqbh3303fnqb"))))
7856 (build-system emacs-build-system)
7857 (home-page "https://github.com/leoliu/easy-kill")
7858 (synopsis "Kill and mark things easily in Emacs")
7859 (description
7860 "This package provides commands @code{easy-kill} and @code{easy-mark} to
7861 let users kill or mark things easily.")
7862 (license license:gpl3+)))
7863
7864 (define-public emacs-csv-mode
7865 (package
7866 (name "emacs-csv-mode")
7867 (version "1.7")
7868 (source
7869 (origin
7870 (method url-fetch)
7871 (uri (string-append "http://elpa.gnu.org/packages/csv-mode-"
7872 version ".el"))
7873 (sha256
7874 (base32
7875 "0r4bip0w3h55i8h6sxh06czf294mrhavybz0zypzrjw91m1bi7z6"))))
7876 (build-system emacs-build-system)
7877 (home-page
7878 "http://elpa.gnu.org/packages/csv-mode.html")
7879 (synopsis
7880 "Major mode for editing comma/char separated values")
7881 (description
7882 "This Emacs package implements CSV mode, a major mode for editing records
7883 in a generalized CSV (character-separated values) format.")
7884 (license license:gpl3+)))
7885
7886 (define-public emacs-transmission
7887 (package
7888 (name "emacs-transmission")
7889 (version "0.12.1")
7890 (source (origin
7891 (method url-fetch)
7892 (uri (string-append
7893 "https://github.com/holomorph/transmission/archive/"
7894 version ".tar.gz"))
7895 (file-name (string-append name "-" version ".tar.gz"))
7896 (sha256
7897 (base32
7898 "1rrlgn96gi1ljfwbwvlyyxbq75xzamlbdhq1bpyadxxmxcvlmk3n"))))
7899 (build-system emacs-build-system)
7900 (home-page "https://github.com/holomorph/transmission")
7901 (synopsis "Emacs interface to a Transmission session")
7902 (description "This package provides an Emacs interface to interact with a
7903 running session of the Transmission Bittorrent client.
7904
7905 Features:
7906
7907 @itemize
7908 @item List, add, start/stop, verify, remove torrents.
7909 @item Set speed limits, ratio limits, bandwidth priorities, trackers.
7910 @item Navigate to the corresponding file list, torrent info, peer info
7911 contexts.
7912 @item Toggle downloading and set priorities for individual files.
7913 @end itemize\n")
7914 (license license:gpl3+)))
7915
7916 (define-public emacs-polymode
7917 ;; There hasn't been a proper release.
7918 (let ((commit "0340f5e7e55235832e59673f027cc79a23cbdcd6")
7919 (revision "1"))
7920 (package
7921 (name "emacs-polymode")
7922 (version (string-append "1.0-" revision "." (string-take commit 7)))
7923 (source (origin
7924 (method git-fetch)
7925 (uri (git-reference
7926 (url "https://github.com/vspinu/polymode.git")
7927 (commit commit)))
7928 (file-name (string-append name "-" version "-checkout"))
7929 (sha256
7930 (base32
7931 "057cybkq3cy07n5s332k071sjiky3mziy003lza4rh75mgqkwhmh"))))
7932 (build-system emacs-build-system)
7933 (arguments
7934 `(#:include (cons* "^modes/.*\\.el$" %default-include)
7935 #:phases
7936 (modify-phases %standard-phases
7937 (add-after 'set-emacs-load-path 'add-modes-subdir-to-load-path
7938 (lambda _
7939 (setenv "EMACSLOADPATH"
7940 (string-append (getenv "EMACSLOADPATH")
7941 ":" (getcwd) "/modes" ":")))))))
7942 (home-page "https://github.com/vspinu/polymode")
7943 (synopsis "Framework for multiple Emacs modes based on indirect buffers")
7944 (description "Polymode is an Emacs package that offers generic support
7945 for multiple major modes inside a single Emacs buffer. It is lightweight,
7946 object oriented and highly extensible. Creating a new polymode typically
7947 takes only a few lines of code. Polymode also provides extensible facilities
7948 for external literate programming tools for exporting, weaving and tangling.")
7949 (license license:gpl3+))))
7950
7951 (define-public eless
7952 (package
7953 (name "eless")
7954 (version "0.3")
7955 (source (origin
7956 (method url-fetch)
7957 (uri (string-append
7958 "https://github.com/kaushalmodi/eless/archive/"
7959 "v" version ".tar.gz"))
7960 (file-name (string-append name "-" version ".tar.gz"))
7961 (sha256
7962 (base32
7963 "0gjnnhgw5xs1w3qfnkvwa2nv44gnxr8pkhx3c7qig45p8nh1461h"))))
7964 (build-system trivial-build-system)
7965 (inputs
7966 `(("bash" ,bash)))
7967 (native-inputs
7968 `(("tar" ,tar)
7969 ("gzip" ,gzip)))
7970 (arguments
7971 `(#:modules ((guix build utils))
7972 #:builder
7973 (begin
7974 (use-modules (guix build utils))
7975 (setenv "PATH" (string-append
7976 (assoc-ref %build-inputs "tar") "/bin" ":"
7977 (assoc-ref %build-inputs "gzip") "/bin"))
7978 (invoke "tar" "xvf" (assoc-ref %build-inputs "source"))
7979 (chdir (string-append "eless" "-" ,version))
7980 (substitute* "eless" (("/usr/bin/env bash")
7981 (string-append (assoc-ref %build-inputs "bash")
7982 "/bin/bash")))
7983 (install-file "eless" (string-append %output "/bin"))
7984 (install-file "doc/eless.info" (string-append %output "/share/info"))
7985 #t)))
7986 (home-page "https://github.com/kaushalmodi/eless")
7987 (synopsis "Use Emacs as a paginator")
7988 (description "@code{eless} provides a combination of Bash script
7989 and a minimal Emacs view-mode.
7990
7991 Feautures:
7992
7993 @itemize
7994 @item Independent of a user’s Emacs config.
7995 @item Customizable via the @code{(locate-user-emacs-file \"elesscfg\")} config.
7996 @item Not require an Emacs server to be already running.
7997 @item Syntax highlighting.
7998 @item Org-mode file rendering.
7999 @item @code{man} page viewer.
8000 @item Info viewer.
8001 @item Dired, wdired, (batch edit symbolic links).
8002 @item Colored diffs, git diff, git log, ls with auto ANSI detection.
8003 @item Filter log files lines matching a regexp.
8004 @item Auto-revert log files similar to @code{tail -f}.
8005 @item Quickly change frame and font sizes.
8006 @end itemize\n")
8007 (license license:expat)))
8008
8009 (define-public emacs-evil-matchit
8010 (package
8011 (name "emacs-evil-matchit")
8012 (version "2.2.6")
8013 (source
8014 (origin
8015 (method url-fetch)
8016 (uri (string-append
8017 "https://github.com/redguardtoo/evil-matchit/archive/"
8018 version ".tar.gz"))
8019 (file-name (string-append name "-" version ".tar.gz"))
8020 (sha256
8021 (base32
8022 "1yp9sl6542317mn1060ri90zyf6bs6qylagndhqy02p368q31rhi"))))
8023 (build-system emacs-build-system)
8024 (propagated-inputs
8025 `(("emacs-evil" ,emacs-evil)))
8026 (home-page "https://github.com/redguardtoo/evil-matchit")
8027 (synopsis "Vim matchit ported into Emacs")
8028 (description
8029 "@code{evil-matchit} is a minor mode for jumping between matching tags in
8030 evil mode using @kbd{%}. It is a port of @code{matchit} for Vim.")
8031 (license license:gpl3+)))
8032
8033 (define-public emacs-evil-smartparens
8034 (package
8035 (name "emacs-evil-smartparens")
8036 (version "0.4.0")
8037 (source
8038 (origin
8039 (method url-fetch)
8040 (uri (string-append
8041 "https://github.com/expez/evil-smartparens/archive/"
8042 version ".tar.gz"))
8043 (file-name (string-append name "-" version ".tar.gz"))
8044 (sha256
8045 (base32
8046 "1bwzdd3054d407d5j4m3njsbvmc9r8zzp33m32pj3b3irxrl68q0"))))
8047 (build-system emacs-build-system)
8048 (propagated-inputs
8049 `(("emacs-evil" ,emacs-evil)
8050 ("emacs-smartparens" ,emacs-smartparens)))
8051 (home-page "https://github.com/expez/evil-smartparens")
8052 (synopsis "Emacs Evil integration for Smartparens")
8053 (description "@code{emacs-evil-smartparens} is an Emacs minor mode which
8054 makes Evil play nice with Smartparens. Evil is an Emacs minor mode that
8055 emulates Vim features and provides Vim-like key bindings.")
8056 (license license:gpl3+)))
8057
8058 (define-public emacs-evil-quickscope
8059 (package
8060 (name "emacs-evil-quickscope")
8061 (version "0.1.4")
8062 (source
8063 (origin
8064 (method url-fetch)
8065 (uri (string-append "https://github.com/blorbx/evil-quickscope/archive/v"
8066 version ".tar.gz"))
8067 (file-name (string-append name "-" version ".tar.gz"))
8068 (sha256
8069 (base32
8070 "1r26a412mmar7vbf89zcifswiwpdg30mjzj32xdyqss57aqi83ma"))))
8071 (build-system emacs-build-system)
8072 (propagated-inputs
8073 `(("emacs-evil" ,emacs-evil)))
8074 (arguments
8075 `(#:tests? #t
8076 #:test-command '("emacs" "--batch"
8077 "-l" "evil-quickscope-tests.el"
8078 "-f" "ert-run-tests-batch-and-exit")))
8079 (home-page "https://github.com/blorbx/evil-quickscope")
8080 (synopsis "Target highlighting for emacs evil-mode f,F,t and T commands")
8081 (description "@code{emacs-evil-quickscope} highlights targets for Evil
8082 mode’s f,F,t,T keys, allowing for quick navigation within a line. It is a
8083 port of quick-scope for Vim. Evil is an Emacs minor mode that emulates Vim
8084 features and provides Vim-like key bindings.")
8085 (license license:gpl3+)))
8086
8087 (define-public emacs-bongo
8088 (package
8089 (name "emacs-bongo")
8090 (version "1.0")
8091 (source
8092 (origin
8093 (method url-fetch)
8094 (uri (string-append
8095 "https://github.com/dbrock/bongo/archive/"
8096 version ".tar.gz"))
8097 (file-name (string-append name "-" version ".tar.gz"))
8098 (sha256
8099 (base32
8100 "1pcsyyrvj7djjjwpaswd1i782hvqvlvs39cy9ns0k795si6xd64d"))))
8101 (build-system emacs-build-system)
8102 (home-page "https://github.com/dbrock/bongo")
8103 (synopsis "Media player for Emacs")
8104 (description
8105 "This package provides a flexible media player for Emacs. @code{Bongo}
8106 supports multiple backends such as @code{vlc}, @code{mpg123},
8107 @code{ogg123}, @code{speexdec}, @code{timidity}, @code{mikmod} and
8108 @code{afplay}.")
8109 (license license:gpl2+)))
8110
8111 (define-public emacs-groovy-modes
8112 (package
8113 (name "emacs-groovy-modes")
8114 (version "2.0")
8115 (source (origin
8116 (method url-fetch)
8117 (uri (string-append
8118 "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes"
8119 "/archive/" version ".tar.gz"))
8120 (file-name (string-append name "-" version ".tar.gz"))
8121 (sha256
8122 (base32
8123 "15j0hnkx9nppjzda5cqsxxz5f3bq9hc4xfyjcdypzqiypcvmpa39"))))
8124 (build-system emacs-build-system)
8125 (propagated-inputs
8126 `(("emacs-s" ,emacs-s)))
8127 (home-page "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
8128 (synopsis "Groovy related modes for Emacs")
8129 (description
8130 "This package provides @code{groovy-mode} for syntax highlighing in
8131 Groovy source files, REPL integration with run-groovy and Grails project
8132 navigation with the grails mode.")
8133 (license license:gpl3+)))
8134
8135 (define-public groovy-emacs-modes
8136 (deprecated-package "groovy-emacs-modes" emacs-groovy-modes))
8137
8138 (define-public emacs-org-tree-slide
8139 (let ((commit "dff8f1a4a64c8dd0a1fde0b0131e2fe186747134")
8140 (revision "0"))
8141 (package
8142 (name "emacs-org-tree-slide")
8143 (version (git-version "0.1" revision commit))
8144 (home-page "https://github.com/takaxp/org-tree-slide")
8145 (source (origin
8146 (method git-fetch)
8147 (uri (git-reference (url home-page) (commit commit)))
8148 (sha256
8149 (base32
8150 "153bg0x7ypla11pq51jmsgzfjklwwnrq56xgpbfhk1j16xwz9hyf"))
8151 (file-name (git-file-name name version))))
8152 (build-system emacs-build-system)
8153 (synopsis "Presentation tool for org-mode")
8154 (description
8155 "Org-tree-slide provides a slideshow mode to view org-mode files. Use
8156 @code{org-tree-slide-mode} to enter the slideshow mode, and then @kbd{C->} and
8157 @kbd{C-<} to jump to the next and previous slide.")
8158 (license license:gpl3+))))
8159
8160 (define-public emacs-scratch-el
8161 (let ((commit "2cdf2b841ce7a0987093f65b0cc431947549f897")
8162 (revision "1"))
8163 (package
8164 (name "emacs-scratch-el")
8165 (version (git-version "1.2" revision commit))
8166 (source (origin
8167 (method git-fetch)
8168 (uri (git-reference
8169 (url "https://github.com/ieure/scratch-el.git")
8170 (commit commit)))
8171 (file-name (git-file-name name version))
8172 (sha256
8173 (base32
8174 "0wscsndynjmnliajqaz28r1ww81j8wh84zwaaswx51abhwgl0idf"))))
8175 (build-system emacs-build-system)
8176 (native-inputs
8177 `(("texinfo" ,texinfo)))
8178 (arguments
8179 '(#:phases
8180 (modify-phases %standard-phases
8181 (add-after 'install 'install-doc
8182 (lambda* (#:key outputs #:allow-other-keys)
8183 (unless (invoke "makeinfo" "scratch.texi")
8184 (error "makeinfo failed"))
8185 (install-file "scratch.info"
8186 (string-append (assoc-ref outputs "out")
8187 "/share/info"))
8188 #t)))))
8189 (home-page "https://github.com/ieure/scratch-el/")
8190 (synopsis "Create scratch buffers with the same mode as current buffer")
8191 (description "Scratch is an extension to Emacs that enables one to create
8192 scratch buffers that are in the same mode as the current buffer. This is
8193 notably useful when working on code in some language; you may grab code into a
8194 scratch buffer, and, by virtue of this extension, do so using the Emacs
8195 formatting rules for that language.")
8196 (license license:bsd-2))))
8197
8198 (define-public emacs-kv
8199 (package
8200 (name "emacs-kv")
8201 (version "0.0.19")
8202 (source
8203 (origin
8204 (method git-fetch)
8205 (uri (git-reference
8206 (url "https://github.com/nicferrier/emacs-kv.git")
8207 (commit "721148475bce38a70e0b678ba8aa923652e8900e")))
8208 (file-name (string-append name "-" version "-checkout"))
8209 (sha256
8210 (base32
8211 "0r0lz2s6gvy04fwnafai668jsf4546h4k6zd6isx5wpk0n33pj5m"))))
8212 (build-system emacs-build-system)
8213 (arguments
8214 `(#:tests? #t
8215 #:test-command '("emacs" "--batch" "-l" "kv-tests.el"
8216 "-f" "ert-run-tests-batch-and-exit")))
8217 (home-page "https://github.com/nicferrier/emacs-kv")
8218 (synopsis "Key/Value data structures library for Emacs Lisp")
8219 (description "@code{emacs-kv} is a collection of tools for dealing with
8220 key/value data structures such as plists, alists and hash-tables in Emacs
8221 Lisp.")
8222 (license license:gpl3+)))
8223
8224 (define-public emacs-esxml
8225 (package
8226 (name "emacs-esxml")
8227 (version "0.3.4")
8228 (source (origin
8229 (method git-fetch)
8230 (uri (git-reference
8231 (url "https://github.com/tali713/esxml.git")
8232 (commit version)))
8233 (file-name (git-file-name name version))
8234 (sha256
8235 (base32
8236 "00vv8a75wdklygdyr4km9mc2ismxak69c45jmcny41xl44rp9x8m"))))
8237 (build-system emacs-build-system)
8238 (arguments
8239 `(#:phases
8240 (modify-phases %standard-phases
8241 (add-after 'unpack 'fix-sources
8242 (lambda _
8243 ;; See: https://github.com/tali713/esxml/pull/28.
8244 (substitute* "css-lite.el"
8245 ((";;; main interface")
8246 (string-append ";;; main interface\n"
8247 "(require 'cl-lib)"))
8248 (("mapcan")
8249 "cl-mapcan")
8250 (("',\\(cl-mapcan #'process-css-rule rules\\)")
8251 "(cl-mapcan #'process-css-rule ',rules)"))
8252 (substitute* "esxml-form.el"
8253 ((",esxml-form-field-defn")
8254 "#'esxml-form-field-defn"))
8255 ;; See: https://github.com/tali713/esxml/issues/25
8256 (delete-file "esxpath.el")
8257 #t)))))
8258 (propagated-inputs
8259 `(("emacs-kv" ,emacs-kv)))
8260 (home-page "https://github.com/tali713/esxml/")
8261 (synopsis "SXML for EmacsLisp")
8262 (description "This is XML/XHTML done with S-Expressions in EmacsLisp.
8263 Simply, this is the easiest way to write HTML or XML in Lisp. This library
8264 uses the native form of XML representation as used by many libraries already
8265 included within Emacs. See @code{esxml-to-xml} for a concise description of
8266 the format.")
8267 (license license:gpl3+)))
8268
8269 (define-public emacs-nov-el
8270 (package
8271 (name "emacs-nov-el")
8272 (version "0.2.6")
8273 (source (origin
8274 (method git-fetch)
8275 (uri (git-reference
8276 (url "https://github.com/wasamasa/nov.el.git")
8277 (commit version)))
8278 (file-name (git-file-name name version))
8279 (sha256
8280 (base32
8281 "188h5gzn1zf443g0b7q5bpmvvpr6ds5h8aci8vxc92py56rhyrvc"))))
8282 (build-system emacs-build-system)
8283 (arguments
8284 `(#:phases
8285 (modify-phases %standard-phases
8286 (add-after 'unpack 'embed-path-to-unzip
8287 (lambda _
8288 (substitute* "nov.el"
8289 (("\\(executable-find \"unzip\"\\)")
8290 (string-append "\"" (which "unzip") "\"")))
8291 #t)))))
8292 (propagated-inputs
8293 `(("emacs-dash" ,emacs-dash)
8294 ("emacs-esxml" ,emacs-esxml)))
8295 (inputs
8296 `(("unzip" ,unzip)))
8297 (home-page "https://github.com/wasamasa/nov.el/")
8298 (synopsis "Major mode for reading EPUBs in Emacs")
8299 (description "@code{nov.el} provides a major mode for reading EPUB
8300 documents.
8301
8302 Features:
8303
8304 @itemize
8305 @item Basic navigation (jump to TOC, previous/next chapter)
8306 @item Remembering and restoring the last read position
8307 @item Jump to next chapter when scrolling beyond end
8308 @item Renders EPUB2 (@code{.ncx}) and EPUB3 (@code{<nav>}) TOCs
8309 @item Hyperlinks to internal and external targets
8310 @item Supports textual and image documents
8311 @item View source of document files
8312 @item Metadata display
8313 @item Image rescaling
8314 @end itemize
8315 ")
8316 (license license:gpl3+)))
8317
8318 (define-public epipe
8319 (package
8320 (name "epipe")
8321 (version "0.1.0")
8322 (source
8323 (origin
8324 (method url-fetch)
8325 (uri (string-append "https://github.com/cute-jumper/epipe/archive/"
8326 version ".tar.gz"))
8327 (file-name (string-append name "-" version ".tar.gz"))
8328 (sha256
8329 (base32
8330 "05a036852g4j63k1mhvyfrcsgkl9lczayi7x61570ysw3cli5wp5"))))
8331 (build-system trivial-build-system)
8332 (inputs
8333 `(("bash" ,bash)
8334 ("perl" ,perl)))
8335 (native-inputs
8336 `(("tar" ,tar)
8337 ("gzip" ,gzip)))
8338 (arguments
8339 `(#:modules
8340 ((guix build utils))
8341 #:builder
8342 (begin
8343 (use-modules (guix build utils))
8344 ;; Extract source
8345 (setenv "PATH" (string-append
8346 (assoc-ref %build-inputs "tar") "/bin" ":"
8347 (assoc-ref %build-inputs "gzip") "/bin"))
8348 (invoke "tar" "xvf" (assoc-ref %build-inputs "source"))
8349 (chdir (string-append ,name "-" ,version))
8350 ;; Patch shebangs
8351 (substitute* "epipe"
8352 (("/usr/bin/env bash")
8353 (string-append (assoc-ref %build-inputs "bash") "/bin/bash")))
8354 (patch-shebang "epipe.pl"
8355 (list (string-append (assoc-ref %build-inputs "perl")
8356 "/bin")))
8357 ;; Installation
8358 (for-each (lambda (file)
8359 (install-file file (string-append %output "/bin")))
8360 '("epipe" "epipe.pl"))
8361 #t)))
8362 (home-page "https://github.com/cute-jumper/epipe")
8363 (synopsis "Pipe to the @code{emacsclient}")
8364 (description "@code{epipe} provides an utility to use your editor in
8365 the pipeline, featuring the support for running @code{emacsclient}.")
8366 (license license:gpl3+)))
8367
8368 (define-public emacs-hcl-mode
8369 (package
8370 (name "emacs-hcl-mode")
8371 (version "0.03")
8372 (source
8373 (origin
8374 (method url-fetch)
8375 (uri (string-append
8376 "https://github.com/syohex/emacs-hcl-mode/archive/"
8377 version ".tar.gz"))
8378 (file-name (string-append name "-" version ".tar.gz"))
8379 (sha256
8380 (base32
8381 "0pvw74qpwh0znqzp6syp4wxjqs7dp1hbn5h7xfk97mff9l5d8k6x"))))
8382 (build-system emacs-build-system)
8383 (home-page "https://github.com/syohex/emacs-hcl-mode")
8384 (synopsis "Major mode for the Hashicorp Configuration Language")
8385 (description
8386 "@code{emacs-hcl-mode} provides an Emacs major mode for working with
8387 @acronym{HCL, Hashicorp Configuration Language}. It provides syntax
8388 highlighting and indentation support.")
8389 (license license:gpl3+)))
8390
8391 (define-public emacs-terraform-mode
8392 (package
8393 (name "emacs-terraform-mode")
8394 (version "0.06")
8395 (source
8396 (origin
8397 (method url-fetch)
8398 (uri (string-append
8399 "https://github.com/syohex/emacs-terraform-mode/archive/"
8400 version ".tar.gz"))
8401 (file-name (string-append name "-" version ".tar.gz"))
8402 (sha256
8403 (base32
8404 "0h9267ifdjmcin4sj8slxydbacx4bqicbvg8pa1qq2l72h9m5381"))))
8405 (build-system emacs-build-system)
8406 (propagated-inputs
8407 `(("emacs-hcl-mode" ,emacs-hcl-mode)))
8408 (home-page "https://github.com/syohex/emacs-terraform-mode")
8409 (synopsis "Major mode for Terraform")
8410 (description
8411 "@code{emacs-terraform-mode} provides a major mode for working with
8412 @uref{https://www.terraform.io/, Terraform} configuration files. Most of the
8413 functionality is inherited from @code{hcl-mode}.")
8414 (license license:gpl3+)))
8415
8416 (define-public emacs-exec-path-from-shell
8417 (package
8418 (name "emacs-exec-path-from-shell")
8419 (version "1.11")
8420 (source
8421 (origin
8422 (method url-fetch)
8423 (uri (string-append
8424 "https://stable.melpa.org/packages/exec-path-from-shell-"
8425 version ".el"))
8426 (sha256
8427 (base32
8428 "03qjgb81cq1l3j54lvlf98r75vmmgd06mj6qh5wa6mz4xzp4w26r"))))
8429 (build-system emacs-build-system)
8430 (home-page "https://github.com/purcell/exec-path-from-shell")
8431 (synopsis "Get environment variables such as @var{PATH} from the shell")
8432 (description
8433 "This library allows the user to set Emacs @var{exec-path} and @var{PATH}
8434 from the shell @var{PATH}, so that @code{shell-command}, @code{compile} and
8435 the like work as expected on systems on which Emacs is not guaranteed to
8436 inherit a login shell's environment variables. It also allows other
8437 environment variables to be retrieved from the shell, so that Emacs will see
8438 the same values you get in a terminal.")
8439 (license license:gpl3+)))
8440
8441 (define-public emacs-deft
8442 (package
8443 (name "emacs-deft")
8444 (version "0.8")
8445 (source
8446 (origin
8447 (method url-fetch)
8448 (uri (string-append "https://stable.melpa.org/packages/deft-"
8449 version ".el"))
8450 (sha256
8451 (base32
8452 "1vb9cjxskc7c0yyf9pvxy1fzypg1vrcgwnjz0m3hslinsgdyig58"))))
8453 (build-system emacs-build-system)
8454 (home-page "https://jblevins.org/projects/deft/")
8455 (synopsis "Quickly browse, filter, and edit plain text notes")
8456 (description
8457 "Deft is an Emacs mode for quickly browsing, filtering, and editing
8458 directories of plain text notes, inspired by Notational Velocity.")
8459 (license license:bsd-3)))
8460
8461 (define-public emacs-anzu
8462 (package
8463 (name "emacs-anzu")
8464 (version "0.62")
8465 (source
8466 (origin
8467 (method url-fetch)
8468 (uri (string-append "https://github.com/syohex/emacs-anzu/archive/"
8469 version ".tar.gz"))
8470 (file-name (string-append name "-" version ".tar.gz"))
8471 (sha256
8472 (base32
8473 "16cg3897x5znbmgk7sdy0qyd0fbic9dmmz0dchq2vz5z29yhg4cz"))))
8474 (build-system emacs-build-system)
8475 (home-page "https://github.com/syohex/emacs-anzu")
8476 (synopsis "Show number of matches in mode-line while searching")
8477 (description
8478 "Anzu provides a minor mode which displays \"current match/total
8479 matches\" in the mode line in various search modes. This is an Emacs port of
8480 Anzu.zim.")
8481 (license license:gpl3+)))
8482
8483 (define-public emacs-emmet-mode
8484 (package
8485 (name "emacs-emmet-mode")
8486 (version "1.0.8")
8487 (source (origin
8488 (method url-fetch)
8489 (uri (string-append "https://github.com/smihica/emmet-mode"
8490 "/archive/" version ".tar.gz"))
8491 (file-name (string-append name "-" version ".tar.gz"))
8492 (sha256
8493 (base32
8494 "0g3p22yabfcp98cfv9dgl9il2m2pd53isq2q11vb3s7qyn31f7zj"))))
8495 (build-system emacs-build-system)
8496 (home-page "https://github.com/smihica/emmet-mode")
8497 (synopsis "Unofficial Emmet's support for Emacs")
8498 (description
8499 "Unfold CSS-selector-like expressions to markup. It is intended to be
8500 used with SGML-like languages: XML, HTML, XHTML, XSL, etc.")
8501 (license license:gpl3+)))
8502
8503 (define-public emacs-ergoemacs-mode
8504 (let ((commit "3ce23bba3cb50562693860f87f3528c471d603ba")
8505 (revision "1"))
8506 (package
8507 (name "emacs-ergoemacs-mode")
8508 (version (git-version "5.16.10.12" revision commit))
8509 (source
8510 (origin
8511 (method git-fetch)
8512 (uri (git-reference
8513 (url "https://github.com/ergoemacs/ergoemacs-mode.git")
8514 (commit commit)))
8515 (sha256
8516 (base32
8517 "1s3b9bridl78hh1mxmdk9nqlmqhibbaxk0a1cixmsf23s06w8w6l"))))
8518 (build-system emacs-build-system)
8519 (propagated-inputs
8520 `(("emacs-undo-tree" ,emacs-undo-tree)))
8521 (home-page "https://ergoemacs.github.io/")
8522 (synopsis "Emacs mode based on common modern interface and ergonomics")
8523 (description
8524 "This package provides an efficient Emacs keybinding set based on
8525 statistics of command frequency, and supports common shortcuts for open,
8526 close, copy, cut, paste, undo, redo.")
8527 (license license:gpl3+))))
8528
8529 (define-public emacs-password-store
8530 (package
8531 (name "emacs-password-store")
8532 (version "1.7.3")
8533 (source (origin
8534 (method url-fetch)
8535 (uri
8536 (string-append "https://git.zx2c4.com/password-store/snapshot/"
8537 "password-store-" version ".tar.xz"))
8538 (sha256
8539 (base32
8540 "1x53k5dn3cdmvy8m4fqdld4hji5n676ksl0ql4armkmsds26av1b"))))
8541 (build-system emacs-build-system)
8542 (arguments
8543 `(#:phases
8544 (modify-phases %standard-phases
8545 (add-after 'unpack 'extract-el-file
8546 (lambda _
8547 (copy-file "contrib/emacs/password-store.el" "password-store.el")
8548 (delete-file-recursively "contrib")
8549 (delete-file-recursively "man")
8550 (delete-file-recursively "src")
8551 (delete-file-recursively "tests"))))))
8552 (propagated-inputs
8553 `(("emacs-f" ,emacs-f)
8554 ("emacs-s" ,emacs-s)
8555 ("emacs-with-editor" ,emacs-with-editor)
8556 ("password-store" ,password-store)))
8557 (home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs")
8558 (synopsis "Password store (pass) support for Emacs")
8559 (description
8560 "This package provides functions for working with pass (\"the
8561 standard Unix password manager\").")
8562 (license license:gpl2+)))
8563
8564 (define-public emacs-pass
8565 (package
8566 (name "emacs-pass")
8567 (version "1.7")
8568 (source (origin
8569 (method url-fetch)
8570 (uri (string-append
8571 "https://github.com/NicolasPetton/pass/archive/"
8572 version ".tar.gz"))
8573 (sha256
8574 (base32
8575 "0zlx9v6z0q3w9qhq9bq6vb7sli4c9x7qccm2wq55j0nw7bwy2yvj"))
8576 (file-name (string-append name "-" version ".tar.gz"))))
8577 (build-system emacs-build-system)
8578 (propagated-inputs
8579 `(("emacs-password-store" ,emacs-password-store)
8580 ("emacs-f" ,emacs-f)))
8581 (home-page "https://github.com/NicolasPetton/pass")
8582 (synopsis "Major mode for @file{password-store.el}")
8583 (description "This is a major mode for managing password-store (pass)
8584 keychains. The keychain entries are displayed in a directory-like structure
8585 and can be consulted and modified.")
8586 (license license:gpl3+)))
8587
8588 (define-public emacs-evil-anzu
8589 (package
8590 (name "emacs-evil-anzu")
8591 (version "0.03")
8592 (source
8593 (origin
8594 (method url-fetch)
8595 (uri (string-append "https://github.com/syohex/emacs-evil-anzu"
8596 "/archive/" version ".tar.gz"))
8597 (file-name (string-append name "-" version ".tar.gz"))
8598 (sha256
8599 (base32 "032hh2946z529cizqsg8pm6cpn5qdj8lfk3qskmx6xv3g2ra56ns"))))
8600 (build-system emacs-build-system)
8601 (propagated-inputs
8602 `(("emacs-evil" ,emacs-evil)
8603 ("emacs-anzu" ,emacs-anzu)))
8604 (home-page "https://github.com/syohex/emacs-evil-anzu")
8605 (synopsis "Anzu for evil-mode")
8606 (description "@code{anzu} provides a minor mode that displays the current
8607 match and total match information in the mode-line in various search modes.")
8608 (license license:gpl3+)))
8609
8610 (define-public emacs-pg
8611 (let ((commit "4f6516ec3946d95dcef49abb6703cc89ecb5183d"))
8612 (package
8613 (name "emacs-pg")
8614 (version (git-version "0.1" "1" commit))
8615 (source (origin
8616 (method git-fetch)
8617 (uri (git-reference (url "https://github.com/cbbrowne/pg.el")
8618 (commit commit)))
8619 (file-name (git-file-name name version))
8620 (sha256
8621 (base32
8622 "1zh7v4nnpzvbi8yj1ynlqlawk5bmlxi6s80b5f2y7hkdqb5q26k0"))))
8623 (build-system emacs-build-system)
8624 (home-page "https://github.com/cbbrowne/pg.el")
8625 (synopsis "Emacs Lisp interface for PostgreSQL")
8626 (description
8627 "This package provides an Emacs Lisp interface for PostgreSQL.")
8628 (license license:gpl3+))))
8629
8630 (define-public emacs-cl-generic
8631 (package
8632 (name "emacs-cl-generic")
8633 (version "0.3")
8634 (source
8635 (origin
8636 (method url-fetch)
8637 (uri (string-append "https://elpa.gnu.org/packages/cl-generic-"
8638 version ".el"))
8639 (sha256
8640 (base32
8641 "0vb338bhjpsnrf60qgxny4z5rjrnifahnrv9axd4shay89d894zq"))))
8642 (build-system emacs-build-system)
8643 (home-page "https://elpa.gnu.org/packages/seq.html")
8644 (synopsis
8645 "Forward @code{cl-generic} compatibility for Emacs before version 25")
8646 (description "This package provides a subset of the features of the
8647 @code{cl-generic} package introduced in Emacs-25, for use on previous
8648 @code{emacsen}.")
8649 (license license:gpl3+)))
8650
8651 (define-public emacs-finalize
8652 (package
8653 (name "emacs-finalize")
8654 (version "2.0.0")
8655 (source
8656 (origin
8657 (method url-fetch)
8658 (uri (string-append "https://github.com/skeeto/elisp-finalize/archive/"
8659 version ".tar.gz"))
8660 (file-name (string-append name "-" version ".tar.gz"))
8661 (sha256
8662 (base32
8663 "077fycy3i5f0kjw5z3rhf4kld5lbk2idz690nkwhkz04vppk4q4x"))))
8664 (build-system emacs-build-system)
8665 (propagated-inputs
8666 `(("emacs-cl-generic" ,emacs-cl-generic)))
8667 (home-page "https://github.com/skeeto/elisp-finalize")
8668 (synopsis "Finalizers for Emacs Lisp")
8669 (description
8670 "This package will allows to immediately run a callback (a finalizer)
8671 after its registered lisp object has been garbage collected. This allows for
8672 extra resources, such as buffers and processes, to be cleaned up after the
8673 object has been freed.")
8674 (license license:unlicense)))
8675
8676 (define-public emacs-emacsql
8677 (package
8678 (name "emacs-emacsql")
8679 (version "2.0.3")
8680 (source
8681 (origin
8682 (method url-fetch)
8683 (uri (string-append "https://github.com/skeeto/emacsql/archive/"
8684 version ".tar.gz"))
8685 (file-name (string-append name "-" version ".tar.gz"))
8686 (sha256
8687 (base32
8688 "04hfjdgl1zc7jysgjc7d7d3xqpr7q1q9gsmzffjd91ii3hpqjgx6"))))
8689 (build-system emacs-build-system)
8690 (arguments
8691 `(#:modules ((guix build emacs-build-system)
8692 (guix build utils)
8693 (guix build emacs-utils)
8694 (srfi srfi-26))
8695 #:phases
8696 (modify-phases %standard-phases
8697 (delete 'build) ;‘build-emacsql-sqlite’ compiles ‘*.el’ files.
8698 (add-before 'install 'patch-elisp-shell-shebangs
8699 (lambda _
8700 (substitute* (find-files "." "\\.el")
8701 (("/bin/sh") (which "sh")))
8702 #t))
8703 (add-after 'patch-elisp-shell-shebangs 'setenv-shell
8704 (lambda _
8705 (setenv "SHELL" "sh")))
8706 (add-after 'setenv-shell 'build-emacsql-sqlite
8707 (lambda _
8708 (invoke "make" "binary" "CC=gcc")))
8709 (add-after 'build-emacsql-sqlite 'install-emacsql-sqlite
8710 ;; This build phase installs emacs-emacsql binary.
8711 (lambda* (#:key outputs #:allow-other-keys)
8712 (install-file "sqlite/emacsql-sqlite"
8713 (string-append (assoc-ref outputs "out")
8714 "/bin"))
8715 #t))
8716 (add-after 'install-emacsql-sqlite 'patch-emacsql-sqlite.el
8717 ;; This build phase removes interactive prompts
8718 ;; and makes sure Emacs look for binaries in the right places.
8719 (lambda* (#:key outputs #:allow-other-keys)
8720 (let ((file "emacsql-sqlite.el"))
8721 (chmod file #o644)
8722 (emacs-substitute-sexps file
8723 ;; Avoid interactive prompts.
8724 ("(defvar emacsql-sqlite-user-prompted" 't)
8725 ;; Make sure Emacs looks for ‘GCC’ binary in the right place.
8726 ("(executable-find" (which "gcc"))
8727 ;; Make sure Emacs looks for ‘emacsql-sqlite’ binary
8728 ;; in the right place.
8729 ("(defvar emacsql-sqlite-executable"
8730 (string-append (assoc-ref outputs "out")
8731 "/bin/emacsql-sqlite"))))))
8732 (replace 'install
8733 (lambda* (#:key outputs #:allow-other-keys)
8734 (let* ((out (assoc-ref outputs "out")))
8735 (install-file "sqlite/emacsql-sqlite"
8736 (string-append out "/bin"))
8737 (for-each (cut install-file <>
8738 (string-append out "/share/emacs/site-lisp/guix.d/"
8739 "emacsql" "-" ,version))
8740 (find-files "." "\\.elc*$")))
8741 #t)))))
8742 (inputs
8743 `(("emacs-minimal" ,emacs-minimal)
8744 ("mariadb" ,mariadb)
8745 ("postgresql" ,postgresql)))
8746 (propagated-inputs
8747 `(("emacs-finalize" ,emacs-finalize)
8748 ("emacs-pg" ,emacs-pg)))
8749 (home-page "https://github.com/skeeto/emacsql")
8750 (synopsis "Emacs high-level SQL database front-end")
8751 (description "Any readable Lisp value can be stored as a value in EmacSQL,
8752 including numbers, strings, symbols, lists, vectors, and closures. EmacSQL
8753 has no concept of @code{TEXT} values; it's all just Lisp objects. The Lisp
8754 object @code{nil} corresponds 1:1 with @code{NULL} in the database.")
8755 (license license:gpl3+)))
8756
8757 (define-public emacs-closql
8758 (package
8759 (name "emacs-closql")
8760 (version "0.5.1")
8761 (source
8762 (origin
8763 (method url-fetch)
8764 (uri (string-append "https://github.com/emacscollective/closql/archive/"
8765 "v" version ".tar.gz"))
8766 (file-name (string-append name "-" version ".tar.gz"))
8767 (sha256
8768 (base32
8769 "0wa6r0kgbb7f19039p5f3di4dvrvxfgpd8bkam94fca7jvzj536c"))))
8770 (build-system emacs-build-system)
8771 (propagated-inputs
8772 `(("emacs-emacsql" ,emacs-emacsql)))
8773 (home-page "https://github.com/emacscollective/closql")
8774 (synopsis "Store EIEIO objects using EmacSQL")
8775 (description
8776 "This package allows to store uniform EIEIO objects in an EmacSQL
8777 database. SQLite is used as backend. This library imposes some restrictions
8778 on what kind of objects can be stored; it isn't intended to store arbitrary
8779 objects. All objects have to share a common superclass and subclasses cannot
8780 add any additional instance slots.")
8781 (license license:gpl3)))
8782
8783 (define-public emacs-epkg
8784 ;; The release version is to old for the current database scheme.
8785 (let ((commit "432312b9583ed7b88ad9644fd1bf2183765a892e"))
8786 (package
8787 (name "emacs-epkg")
8788 (version (git-version "3.0.0" "1" commit))
8789 (source
8790 (origin
8791 (method git-fetch)
8792 (uri (git-reference
8793 (url "https://github.com/emacscollective/epkg.git")
8794 (commit commit)))
8795 (file-name (git-file-name name version))
8796 (sha256
8797 (base32
8798 "0d882kahn7a0vri7a9r15lvmfx1zn2hsga6jfcc6jv0hqbswlb2k"))))
8799 (build-system emacs-build-system)
8800 (propagated-inputs
8801 `(("emacs-closql" ,emacs-closql)
8802 ("emacs-dash" ,emacs-dash)))
8803 (home-page "https://emacsmirror.net")
8804 (synopsis "Browse the Emacsmirror package database")
8805 (description "This package provides access to a local copy of the
8806 Emacsmirror package database. It provides low-level functions for querying
8807 the database and a @file{package.el} user interface for browsing the database.
8808 Epkg itself is not a package manager.
8809
8810 Getting a local copy:
8811
8812 @example
8813 git clone https://github.com/emacsmirror/epkgs.git ~/.emacs.d/epkgs
8814 cd ~/.emacs.d/epkgs
8815 git submodule init
8816 git config --global url.https://github.com/.insteadOf git@@github.com:
8817 git submodule update
8818 @end example
8819
8820 Some submodule may be missing. In this case Git will prompt for a GitHub user
8821 name and password. To skip it press a @key{Return} key.
8822
8823 You could get a Epkg package list by invoking @code{epkg-list-packages} in
8824 Emacs.")
8825 (license license:gpl3+))))
8826
8827 (define-public emacs-elisp-slime-nav
8828 (package
8829 (name "emacs-elisp-slime-nav")
8830 (version "0.9")
8831 (source
8832 (origin
8833 (method url-fetch)
8834 (uri (string-append "https://github.com/purcell/elisp-slime-nav/archive/"
8835 version ".tar.gz"))
8836 (file-name (string-append name "-" version ".tar.gz"))
8837 (sha256
8838 (base32
8839 "1vq7ym1q47p97gxrv45c9gm96d23xbp237vkmakikj6grngxjfb2"))))
8840 (build-system emacs-build-system)
8841 (home-page "https://github.com/purcell/elisp-slime-nav")
8842 (synopsis "Make @code{M-.} and @code{M-,} work for elisp like they do in SLIME")
8843 (description
8844 "This package provides SLIME's convenient @code{M-.}and @code{M-,} navigation
8845 in @code{emacs-lisp-mode}, together with an elisp equivalent of
8846 @code{slime-describe-symbol}.")
8847 (license license:gpl3+)))
8848
8849 (define-public emacs-dedicated
8850 (package
8851 (name "emacs-dedicated")
8852 (version "1.0.0")
8853 (source (origin
8854 (method url-fetch)
8855 (uri (string-append
8856 "https://github.com/emacsorphanage/dedicated/archive/"
8857 version
8858 ".tar.gz"))
8859 (sha256
8860 (base32
8861 "0nhbkp278cvcznb5rp3jp9ii3mjgb79zx8iwfrw7zfk3yg8688ni"))
8862 (file-name (string-append name "-" version ".tar.gz"))))
8863 (build-system emacs-build-system)
8864 (home-page "https://github.com/emacsorphanage/dedicated")
8865 (synopsis "Emacs minor mode for toggling a windows's \"dedicated\" flag")
8866 (description
8867 "This simple Emacs minor mode allows you to toggle a window's
8868 \"dedicated\" flag. When a window is \"dedicated\", Emacs will not select
8869 files into that window. This can be quite handy since many commands will use
8870 another window to show results (compilation mode, starting info, and so on).
8871 A dedicated window won't be used for such a purpose. For details, please read
8872 the source file.")
8873 (license license:gpl2+)))
8874
8875 (define-public emacs-nnreddit
8876 (let ((commit "9843f99d01fd8f1eea2fc685965a7c7f4eeb187a")
8877 (revision "1"))
8878 (package
8879 (name "emacs-nnreddit")
8880 (version (string-append "0.0.1-" revision "."
8881 (string-take commit 7)))
8882 (source (origin
8883 (method git-fetch)
8884 (uri (git-reference
8885 (url "https://github.com/paul-issartel/nnreddit.git")
8886 (commit commit)))
8887 (file-name (string-append name "-" version "-checkout"))
8888 (sha256
8889 (base32
8890 "0j4h3bnga640250jdq8bwyja49r41ssrsjd6lba4gzzllqk02nbn"))))
8891 (build-system emacs-build-system)
8892 (home-page "https://github.com/paul-issartel/nnreddit")
8893 (synopsis "Reddit backend for the Gnus newsreader")
8894 (description "@url{https://www.reddit.com} backend for the Gnus
8895 newsreader.")
8896 (license license:gpl3+))))
8897
8898 (define-public emacs-makey
8899 (package
8900 (name "emacs-makey")
8901 (version "0.3")
8902 (source
8903 (origin
8904 (method url-fetch)
8905 (uri (string-append "https://github.com/mickeynp/makey/archive/"
8906 version ".tar.gz"))
8907 (file-name (string-append name "-" version ".tar.gz"))
8908 (sha256
8909 (base32
8910 "0kzl4q1wf2zhkx9nrymxa67n99iq0bj7zqhpaz4byksna1hsxfmv"))))
8911 (build-system emacs-build-system)
8912 (home-page "https://github.com/mickeynp/makey")
8913 (synopsis "Emacs interactive command-line mode")
8914 (description
8915 "This package provides an Emacs interactive command-line mode.")
8916 (license license:gpl3+)))
8917
8918 (define-public emacs-outorg
8919 (let ((commit "78b0695121fb974bc4e971eb4ef7f8afd6d89d64"))
8920 (package
8921 (name "emacs-outorg")
8922 (version (git-version "2.0" "1" commit))
8923 (source
8924 (origin
8925 (method git-fetch)
8926 (uri (git-reference
8927 (url "https://github.com/alphapapa/outorg")
8928 (commit commit)))
8929 (file-name (git-file-name name version))
8930 (sha256
8931 (base32
8932 "03aclh4m3f7rb821gr9pwvnqkkl91px3qxdcarpf3ypa1x4fxvlj"))))
8933 (build-system emacs-build-system)
8934 (home-page "https://github.com/alphapapa/outorg")
8935 (synopsis "Org-style comment editing")
8936 (description "Outorg is for editing comment-sections of source-code
8937 files in temporary Org-mode buffers. It turns conventional
8938 literate-programming upside-down in that the default mode is the
8939 programming-mode, and special action has to be taken to switch to the
8940 text-mode (i.e. Org-mode).")
8941 (license license:gpl3+))))
8942
8943 (define-public emacs-outshine
8944 (let ((commit "5f1a6b70231d2811c522e4e5e8c89ff461b311d6"))
8945 (package
8946 (name "emacs-outshine")
8947 (version (git-version "2.0" "1" commit))
8948 (source (origin
8949 (method git-fetch)
8950 (uri (git-reference
8951 (url "https://github.com/alphapapa/outshine.git")
8952 (commit commit)))
8953 (file-name (git-file-name name version))
8954 (sha256
8955 (base32
8956 "1l9v1dfhgg7il11ifbhvcvrg3acfjk9sdxlc3lja1k54d7dp60jv"))))
8957 (build-system emacs-build-system)
8958 (propagated-inputs
8959 `(("emacs-outorg" ,emacs-outorg)))
8960 (home-page "https://github.com/alphapapa/outshine")
8961 (synopsis "Emacs outline with outshine")
8962 (description "Outshine attempts to bring the look and feel of
8963 @code{org-mode} to an Emacs outside of the Org major-mode. It is an extension
8964 of @code{outline-minor-mode} (@code{org-mode} itself derives from
8965 outline-mode), so there is no such thing like an outshine mode, only
8966 @code{outline-minor-mode} with outshine extensions loaded.")
8967 (license license:gpl3+))))
8968
8969 (define-public emacs-parsebib
8970 (package
8971 (name "emacs-parsebib")
8972 (version "2.3.1")
8973 (source
8974 (origin
8975 (method url-fetch)
8976 (uri (string-append "https://github.com/joostkremers/parsebib/archive/"
8977 version ".tar.gz"))
8978 (file-name (string-append name "-" version ".tar.gz"))
8979 (sha256
8980 (base32
8981 "0cxagnmc5ab6idmb26axpizhr4sqglkncc59768yavn3p04jyq63"))))
8982 (build-system emacs-build-system)
8983 (home-page "https://github.com/joostkremers/parsebib")
8984 (synopsis "Library for parsing bib files")
8985 (description
8986 "This package provides an Emacs library for parsing bib files.")
8987 (license license:gpl3+)))
8988
8989 (define-public emacs-biblio
8990 (package
8991 (name "emacs-biblio")
8992 (version "0.1")
8993 (source
8994 (origin
8995 (method url-fetch)
8996 (uri (string-append "https://github.com/cpitclaudel/biblio.el/archive/"
8997 version ".tar.gz"))
8998 (file-name (string-append name "-" version ".tar.gz"))
8999 (sha256
9000 (base32
9001 "109fvivsb4r0rbqljngqrmxqvbnbkqlivczx6brrvlr7ci625lhf"))))
9002 (build-system emacs-build-system)
9003 (propagated-inputs
9004 `(("emacs-seq" ,emacs-seq)
9005 ("emacs-dash" ,emacs-dash)
9006 ("emacs-let-alist" ,emacs-let-alist)))
9007 (home-page "https://github.com/cpitclaudel/biblio.el")
9008 (synopsis "Browse and import bibliographic references")
9009 (description "This package provides an extensible Emacs package for
9010 browsing and fetching references.
9011
9012 @file{biblio.el} makes it easy to browse and gather bibliographic references
9013 and publications from various sources, by keywords or by DOI. References are
9014 automatically fetched from well-curated sources, and formatted as BibTeX.")
9015 (license license:gpl3+)))
9016
9017 (define-public emacs-helm-bibtex
9018 (let ((commit "8ed898fb5a68f18e9bb9973832a5c1f8abcfc463")
9019 (revision "1"))
9020 (package
9021 (name "emacs-helm-bibtex")
9022 (version (string-append "2.0.0" "-" revision "."
9023 (string-take commit 7)))
9024 (source
9025 (origin
9026 (method git-fetch)
9027 (uri (git-reference
9028 (url "https://github.com/tmalsburg/helm-bibtex.git")
9029 (commit commit)))
9030 (file-name (string-append name "-" version "-checkout"))
9031 (sha256
9032 (base32
9033 "14lyx0vbqr97p3anzrsp7m3q0kqclyjcdwplpraim403fcklzbnz"))))
9034 (build-system emacs-build-system)
9035 (propagated-inputs
9036 `(("emacs-helm" ,emacs-helm)
9037 ("emacs-parsebib" ,emacs-parsebib)
9038 ("emacs-s" ,emacs-s)
9039 ("emacs-dash" ,emacs-dash)
9040 ("emacs-f" ,emacs-f)
9041 ("emacs-biblio" ,emacs-biblio)
9042 ("emacs-ivy" ,emacs-ivy)))
9043 (home-page "https://github.com/tmalsburg/helm-bibtex")
9044 (synopsis "Bibliography manager based on Helm")
9045 (description "This package provides bibliography manager for Emacs,
9046 based on Helm and the bibtex-completion backend.
9047
9048 Key features:
9049
9050 @itemize
9051 @item Quick access to your bibliography from within Emacs
9052 @item Powerful search capabilities
9053 @item Provides instant search results as you type
9054 @item Tightly integrated with LaTeX authoring, emails, Org mode, etc.
9055 @item Open the PDFs, URLs, or DOIs associated with an entry
9056 @item Insert LaTeX cite commands, Ebib links, or Pandoc citations,
9057 BibTeX entries, or plain text references at point, attach PDFs to emails
9058 @item Support for note taking
9059 @item Quick access to online bibliographic databases such as Pubmed,
9060 arXiv, Google Scholar, Library of Congress, etc.
9061 @item Imports BibTeX entries from CrossRef and other sources.
9062 @end itemize\n")
9063 (license license:gpl3+))))
9064
9065 (define-public emacs-ewmctrl
9066 (let ((commit "3d0217c4d6cdb5c308b6cb4293574f470d4faacf"))
9067 (package
9068 (name "emacs-ewmctrl")
9069 (version (git-version "0.0.1" "1" commit))
9070 (source
9071 (origin
9072 (method git-fetch)
9073 (uri (git-reference
9074 (url "https://github.com/flexibeast/ewmctrl.git")
9075 (commit commit)))
9076 (file-name (git-file-name name version))
9077 (sha256
9078 (base32
9079 "0ilwvx0qryv3v6xf0gxqwnfm6pf96gxap8h9g3f6z6lk9ff4n1wi"))))
9080 (build-system emacs-build-system)
9081 (arguments
9082 '(#:phases
9083 (modify-phases %standard-phases
9084 (add-after 'unpack 'patch-ewmctrl
9085 ;; This build phase makes sure ‘ewmctrl’ looks
9086 ;; for ‘wmctrl’ in the right place.
9087 (lambda _
9088 (let ((file "ewmctrl.el"))
9089 (chmod file #o644)
9090 (emacs-substitute-sexps file
9091 ("(defcustom ewmctrl-wmctrl-path" (which "wmctrl")))))))))
9092 (inputs
9093 `(("wmctrl" ,wmctrl)))
9094 (home-page "https://github.com/flexibeast/ewmctrl")
9095 (synopsis "Emacs interface to @code{wmctrl}")
9096 (description "@code{ewmctrl} provides an Emacs interface to
9097 @code{wmctrl} command-line window-management program.")
9098 (license license:gpl3+))))
9099
9100 (define-public emacs-helm-gtags
9101 (package
9102 (name "emacs-helm-gtags")
9103 (version "1.5.6")
9104 (source (origin
9105 (method url-fetch)
9106 (uri (string-append
9107 "https://github.com/syohex/emacs-helm-gtags/archive/"
9108 version ".tar.gz"))
9109 (file-name (string-append name "-" version ".tar.gz"))
9110 (sha256
9111 (base32
9112 "1a10snhg6nnnan6w9a7mcziy26vxbsr3c35i0gcarnkdp2yqng36"))))
9113 (build-system emacs-build-system)
9114 (propagated-inputs
9115 `(("emacs-helm" ,emacs-helm)))
9116 (home-page "https://github.com/syohex/emacs-helm-gtags")
9117 (synopsis "Emacs Helm interface to GNU Global")
9118 (description
9119 "@code{emacs-helm-gtags} provides a Emacs Helm interface to GNU Global.")
9120 (license license:gpl3+)))
9121
9122 (define-public emacs-list-utils
9123 (package
9124 (name "emacs-list-utils")
9125 (version "0.4.4")
9126 (source
9127 (origin
9128 (method url-fetch)
9129 (uri (string-append "https://github.com/rolandwalker/list-utils/archive/"
9130 "v" version ".tar.gz"))
9131 (file-name (string-append name "-" version ".tar.gz"))
9132 (sha256
9133 (base32
9134 "1xc1xh8c82h5gdjbgpdsdclgwxkxbb7h3x3a2bscpm41g8pnan4p"))))
9135 (build-system emacs-build-system)
9136 (home-page "https://github.com/rolandwalker/list-utils")
9137 (synopsis "List-manipulation utility functions")
9138 (description "This package provides a list manipulation library for Emacs.")
9139 (license license:gpl3+)))
9140
9141 (define-public emacs-move-text
9142 (package
9143 (name "emacs-move-text")
9144 (version "2.0.8")
9145 (source
9146 (origin
9147 (method url-fetch)
9148 (uri (string-append "https://github.com/emacsfodder/move-text/archive/"
9149 version ".tar.gz"))
9150 (file-name (string-append name "-" version ".tar.gz"))
9151 (sha256
9152 (base32
9153 "1sjfja9r25692pgcldgnjzkapzy970m14jh9l4pajysiqcdk72g0"))))
9154 (build-system emacs-build-system)
9155 (home-page "https://github.com/emacsfodder/move-text")
9156 (synopsis "Move current line or region with M-up or M-down")
9157 (description "This package provide functions to move the current line
9158 using @kbd{M-up} or @kbd{M-down} if a region is marked, it will move the
9159 region instead.")
9160 (license license:gpl3+)))
9161
9162 (define-public emacs-validate
9163 (package
9164 (name "emacs-validate")
9165 (version "1.0.5")
9166 (source (origin
9167 (method url-fetch)
9168 (uri (string-append "https://github.com/Malabarba/validate.el"
9169 "/archive/" version ".tar.gz"))
9170 (file-name (string-append name "-" version ".tar.gz"))
9171 (sha256
9172 (base32
9173 "125mbd111f1h1baw0z3fzm48y1bvaigljyzvvnqgrn0shxbj0khg"))))
9174 (build-system emacs-build-system)
9175 (home-page "https://github.com/Malabarba/validate.el")
9176 (synopsis "Emacs library for scheme validation")
9177 (description "This Emacs library provides two functions that perform
9178 schema validation.")
9179 (license license:gpl3+)))
9180
9181 (define-public emacs-rainbow-blocks
9182 (let ((commit "dd435d7bb34ff6f162a5f315df308b90b7e9f842"))
9183 (package
9184 (name "emacs-rainbow-blocks")
9185 (version (git-version "1.0.0" "1" commit))
9186 (source (origin
9187 (method git-fetch)
9188 (uri (git-reference
9189 (url "https://github.com/istib/rainbow-blocks.git")
9190 (commit commit)))
9191 (file-name (git-file-name name version))
9192 (sha256
9193 (base32
9194 "06yfb3i7wzvqrhkb61zib9xvpb5i00s4frizkzff66im05k0n795"))))
9195 (build-system emacs-build-system)
9196 (home-page "https://github.com/istib/rainbow-blocks")
9197 (synopsis "Highlight sexp blocks")
9198 (description "Rainbow-blocks is an Emacs mode that highlights blocks
9199 made of parentheses, brackets, and braces according to their depth. Each
9200 successive level is highlighted in a different color. This makes it easy to
9201 orient yourself in the code, and tell which statements are at a given level.")
9202 (license license:gpl3+))))
9203
9204 (define-public emacs-hierarchy
9205 (package
9206 (name "emacs-hierarchy")
9207 (version "0.7.0")
9208 (source
9209 (origin
9210 (method url-fetch)
9211 (uri (string-append
9212 "https://github.com/DamienCassou/hierarchy/archive/"
9213 "v" version ".tar.gz"))
9214 (file-name (string-append name "-" version ".tar.gz"))
9215 (sha256
9216 (base32
9217 "1a463v5zk6zis2p8cs4mads3iyxh266yahi6j6y0paggfl2yhkc8"))))
9218 (build-system emacs-build-system)
9219 (home-page "https://github.com/DamienCassou/hierarchy")
9220 (synopsis "Library to create and display hierarchy structures")
9221 (description "This package provides an Emacs library to create, query,
9222 navigate and display hierarchy structures.")
9223 (license license:gpl3+)))
9224
9225 (define-public emacs-tree-mode
9226 (let ((commit "b06078826d5875d74b0e7b7ac47b0d0917610534")
9227 (revision "1"))
9228 (package
9229 (name "emacs-tree-mode")
9230 (version (string-append "0.0.1" "-" revision "."
9231 (string-take commit 7)))
9232 (source
9233 (origin
9234 (method git-fetch)
9235 (uri (git-reference
9236 (url "https://github.com/emacsorphanage/tree-mode.git")
9237 (commit commit)))
9238 (file-name (string-append name "-" version "-checkout"))
9239 (sha256
9240 (base32
9241 "13bbdhdmqg4x9yghanhr8fsbsxbnypzxdxgicz31sjjm675kpnix"))))
9242 (build-system emacs-build-system)
9243 (home-page "https://github.com/emacsorphanage/tree-mode")
9244 (synopsis "Emacs mode to manage tree widgets")
9245 (description
9246 "This package provides an Emacs library to manage tree widgets.")
9247 (license license:gpl3+))))
9248
9249 (define-public emacs-md4rd
9250 (let ((commit "be0fc4951b2d1f5194ffa1fcaac706dbac560500")
9251 (revision "1"))
9252 (package
9253 (name "emacs-md4rd")
9254 (version (string-append "0.0.1" "-" revision "."
9255 (string-take commit 7)))
9256 (source (origin
9257 (method git-fetch)
9258 (uri (git-reference
9259 (url "https://github.com/ahungry/md4rd.git")
9260 (commit commit)))
9261 (file-name (string-append name "-" version "-checkout"))
9262 (sha256
9263 (base32
9264 "1i93shx5x192gd7cl2r6gvcvhhwyi1k08abi5w3izv1hn3pmksgq"))))
9265 (propagated-inputs
9266 `(("emacs-hierarchy" ,emacs-hierarchy)
9267 ("emacs-request" ,emacs-request)
9268 ("emacs-dash" ,emacs-dash)
9269 ("emacs-s" ,emacs-s)
9270 ("emacs-tree-mode" ,emacs-tree-mode)))
9271 (build-system emacs-build-system)
9272 (home-page "https://github.com/ahungry/md4rd")
9273 (synopsis "Emacs Mode for Reddit")
9274 (description
9275 "This package allows to read Reddit from within Emacs interactively.")
9276 (license license:gpl3+))))
9277
9278 (define-public emacs-pulseaudio-control
9279 (let ((commit "1da372ec79f5d2fb901d1f9f0679fee8848fd011")
9280 (revision "2"))
9281 (package
9282 (name "emacs-pulseaudio-control")
9283 (version (git-version "0.0.1" revision commit))
9284 (source
9285 (origin
9286 (method git-fetch)
9287 (uri (git-reference
9288 (url "https://github.com/flexibeast/pulseaudio-control.git")
9289 (commit commit)))
9290 (file-name (git-file-name name version))
9291 (sha256
9292 (base32
9293 "02xrsms2pjqdk6327midi61i5vg2h9cq5jwaxv43ldm68wl7hi6k"))))
9294 (build-system emacs-build-system)
9295 (arguments
9296 '(#:phases (modify-phases %standard-phases
9297 (add-after 'unpack 'patch-file-name
9298 (lambda* (#:key inputs #:allow-other-keys)
9299 (let ((pulseaudio (assoc-ref inputs "pulseaudio")))
9300 (chmod "pulseaudio-control.el" #o600)
9301 (emacs-substitute-variables "pulseaudio-control.el"
9302 ("pulseaudio-control-pactl-path"
9303 (string-append pulseaudio "/bin/pactl")))
9304 #t))))))
9305 (inputs `(("pulseaudio" ,pulseaudio)))
9306 (home-page "https://github.com/flexibeast/pulseaudio-control")
9307 (synopsis "Control @code{pulseaudio} from Emacs")
9308 (description
9309 "This package allows to control @code{pulseaudio} from Emacs.")
9310 (license license:gpl3+))))
9311
9312 (define-public emacs-datetime
9313 (package
9314 (name "emacs-datetime")
9315 (version "0.3")
9316 (source (origin
9317 (method url-fetch)
9318 (uri (string-append
9319 "https://github.com/doublep/datetime/archive/"
9320 version ".tar.gz"))
9321 (file-name (string-append name "-" version ".tar.gz"))
9322 (sha256
9323 (base32
9324 "12wqpj67rjij2ki7nmw38rz3k2bsq68pk6zswknlcn9qhp1zd9w9"))))
9325 (build-system emacs-build-system)
9326 (home-page "https://github.com/doublep/datetime/")
9327 (synopsis "Library to work with dates in Emacs")
9328 (description "Parsing, formatting, matching and recoding
9329 timestamps and date-time format strings library for Emacs.")
9330 (license license:gpl3+)))
9331
9332 (define-public emacs-org-mind-map
9333 (let ((commit "9d6e262bedd94daf9de269f4d56de277275677cb")
9334 (revision "1"))
9335 (package
9336 (name "emacs-org-mind-map")
9337 (version (string-append "0.0.1" "-" revision "."
9338 (string-take commit 7)))
9339 (source
9340 (origin
9341 (method git-fetch)
9342 (uri (git-reference
9343 (url "https://github.com/theodorewiles/org-mind-map.git")
9344 (commit commit)))
9345 (file-name (string-append name "-" version "-checkout"))
9346 (sha256
9347 (base32
9348 "0jgkkgq7g64zckrmjib0hvz0qy3ynz5vz13qbmlpf096l3bb65wn"))))
9349 (propagated-inputs
9350 `(("emacs-dash" ,emacs-dash)))
9351 (build-system emacs-build-system)
9352 (home-page "https://github.com/theodorewiles/org-mind-map")
9353 (synopsis "Create Graphviz directed graphs from Org files")
9354 (description
9355 "This package creates Graphviz directed graphs from Org files.")
9356 (license license:gpl3+))))
9357
9358 (define-public emacs-npm-mode
9359 (package
9360 (name "emacs-npm-mode")
9361 (version "0.6.0")
9362 (source
9363 (origin
9364 (method url-fetch)
9365 (uri (string-append "https://github.com/mojochao/npm-mode/archive/"
9366 version ".tar.gz"))
9367 (file-name (string-append name "-" version ".tar.gz"))
9368 (sha256
9369 (base32
9370 "1kq1ww22dwf8c2i2b4z2ldbbmnihj65kb7n5vzvwkch9h4hxpqh5"))))
9371 (build-system emacs-build-system)
9372 (home-page "https://github.com/mojochao/npm-mode")
9373 (synopsis "Minor mode for working with @code{npm} projects")
9374 (description
9375 "@code{npm-mode} provides a minor mode to work with @code{npm} projects.")
9376 (license license:gpl3+)))
9377
9378 (define-public emacs-seq
9379 (package
9380 (name "emacs-seq")
9381 (version "2.20")
9382 (source
9383 (origin
9384 (method url-fetch)
9385 (uri (string-append "http://elpa.gnu.org/packages/seq-" version ".tar"))
9386 (sha256
9387 (base32
9388 "0vrpx6nnyjb0gsypknzagimlhvcvi5y1rcdkpxyqr42415zr8d0n"))))
9389 (build-system emacs-build-system)
9390 (home-page "http://elpa.gnu.org/packages/seq.html")
9391 (synopsis "Sequence manipulation functions")
9392 (description "Sequence-manipulation functions that complement basic
9393 functions provided by @file{subr.el}.")
9394 (license license:gpl3+)))
9395
9396 (define-public emacs-itail
9397 (let ((commit "6e43c20da03be3b9c6ece93b7dc3495975ec1888")
9398 (revision "1"))
9399 (package
9400 (name "emacs-itail")
9401 (version (string-append "0.0.1" "-" revision "."
9402 (string-take commit 7)))
9403 (source
9404 (origin
9405 (method git-fetch)
9406 (uri (git-reference
9407 (url "https://github.com/re5et/itail.git")
9408 (commit commit)))
9409 (file-name (string-append name "-" version "-checkout"))
9410 (sha256
9411 (base32
9412 "044nzxh1hq41faxw3lix0wy78vfz304pjcaa5a11dqfz7q3gx5cv"))))
9413 (build-system emacs-build-system)
9414 (home-page "https://github.com/re5et/itail")
9415 (synopsis "Interactive @code{tail} Emacs mode")
9416 (description "@code{itail} provides interactive @code{tail} mode
9417 that allows you to filter the tail with unix pipes and highlight the
9418 contents of the tailed file. Works locally or on remote files using
9419 tramp.")
9420 (license license:gpl3+))))
9421
9422 (define-public emacs-loop
9423 (package
9424 (name "emacs-loop")
9425 (version "1.3")
9426 (source
9427 (origin
9428 (method url-fetch)
9429 (uri (string-append "https://github.com/Wilfred/loop.el/archive/"
9430 version ".tar.gz"))
9431 (file-name (string-append name "-" version ".tar.gz"))
9432 (sha256
9433 (base32
9434 "1z3rhh3zyjabz36410yz0lp4a0qwwj0387as662wvx3z9y54jia9"))))
9435 (build-system emacs-build-system)
9436 (home-page "https://github.com/Wilfred/loop.el")
9437 (synopsis "Imperative loop structures for Emacs")
9438 (description "Loop structures familiar to users of other languages. This
9439 library adds a selection of popular loop structures as well as break and
9440 continue.")
9441 (license license:gpl3+)))
9442
9443 (define-public emacs-elisp-refs
9444 (package
9445 (name "emacs-elisp-refs")
9446 (version "1.3")
9447 (source
9448 (origin
9449 (method url-fetch)
9450 (uri (string-append "https://github.com/Wilfred/elisp-refs/archive/"
9451 version ".tar.gz"))
9452 (file-name (string-append name "-" version ".tar.gz"))
9453 (sha256
9454 (base32
9455 "02nzcn3v14n7mp7q32j5r4wdlpsw3zixzh6cf0cdyarfir6dly3p"))))
9456 (build-system emacs-build-system)
9457 (propagated-inputs
9458 `(("emacs-dash" ,emacs-dash)
9459 ("emacs-f" ,emacs-f)
9460 ("emacs-list-utils" ,emacs-list-utils)
9461 ("emacs-loop" ,emacs-loop)
9462 ("emacs-s" ,emacs-s)
9463 ("emacs-shut-up" ,emacs-shut-up)))
9464 (home-page "https://github.com/Wilfred/elisp-refs")
9465 (synopsis "Find callers of elisp functions or macros")
9466 (description "Find references to functions, macros or variables. Unlike a
9467 dumb text search, @code{elisp-refs} actually parses the code, so it's never
9468 confused by comments or @code{foo-bar} matching @code{foo}.")
9469 (license license:gpl3+)))
9470
9471 (define-public emacs-crux
9472 (let ((commit "4f5c8fefd5a6aa52e128c4a0401cc86410d6ac8f")
9473 (revision "1"))
9474 (package
9475 (name "emacs-crux")
9476 (version (string-append "0.3.0" "-" revision "."
9477 (string-take commit 7)))
9478 (source
9479 (origin
9480 (method git-fetch)
9481 (uri (git-reference
9482 (url "https://github.com/bbatsov/crux.git")
9483 (commit commit)))
9484 (file-name (string-append name "-" version "-checkout"))
9485 (sha256
9486 (base32
9487 "1fdxvv25cs01sg6fmvmzxpzvs50i6v8n2jya60lbavxqqhi0sbxd"))))
9488 (build-system emacs-build-system)
9489 (home-page "https://github.com/bbatsov/crux")
9490 (synopsis "Collection of useful functions for Emacs")
9491 (description
9492 "@code{crux} provides a collection of useful functions for Emacs.")
9493 (license license:gpl3+))))
9494
9495 (define-public emacs-edit-server
9496 (package
9497 (name "emacs-edit-server")
9498 (version "1.13")
9499 (source
9500 (origin
9501 (method url-fetch)
9502 (uri (string-append "https://github.com/stsquad/emacs_chrome/archive/"
9503 "v" version ".tar.gz"))
9504 (file-name (string-append name "-" version ".tar.gz"))
9505 (sha256
9506 (base32
9507 "1r92kqggslqasza718z4ka883mqfbnibdm43f0j9gaipk0msm2wf"))))
9508 (build-system emacs-build-system)
9509 (arguments
9510 `(#:phases
9511 (modify-phases %standard-phases
9512 (add-after 'unpack 'chdir-elisp
9513 ;; Elisp directory is not in root of the source.
9514 (lambda _
9515 (chdir "servers"))))))
9516 (home-page "https://github.com/stsquad/emacs_chrome")
9517 (synopsis "Server that responds to edit requests from Chromium")
9518 (description
9519 "This package provides an edit server to respond to requests from Emacs.")
9520 (license license:gpl3+)))
9521
9522 (define-public emacs-m-buffer-el
9523 (package
9524 (name "emacs-m-buffer-el")
9525 (version "0.15")
9526 (source
9527 (origin
9528 (method url-fetch)
9529 (uri (string-append "https://github.com/phillord/m-buffer-el"
9530 "/archive/" "v" version ".tar.gz"))
9531 (file-name (string-append name "-" version ".tar.gz"))
9532 (sha256
9533 (base32
9534 "17vdcc8q37q9db98jyww1c0ivinmwfcw4l04zccfacalra63a214"))))
9535 (arguments
9536 `(#:phases
9537 (modify-phases %standard-phases
9538 (add-before 'install 'check
9539 (lambda* (#:key inputs #:allow-other-keys)
9540 (invoke "emacs" "--batch" "-L" "."
9541 "-l" "test/m-buffer-test.el"
9542 "-l" "test/m-buffer-at-test.el"
9543 "-f" "ert-run-tests-batch-and-exit"))))))
9544 (build-system emacs-build-system)
9545 (home-page "https://github.com/phillord/m-buffer-el")
9546 (synopsis "List oriented buffer operations for Emacs")
9547 (description "@code{m-buffer} provides a set of list-orientated functions
9548 for operating over the contents of Emacs buffers.")
9549 (license license:gpl3+)))
9550
9551 (define-public emacs-let-alist
9552 (package
9553 (name "emacs-let-alist")
9554 (version "1.0.5")
9555 (source
9556 (origin
9557 (method url-fetch)
9558 (uri (string-append
9559 "https://elpa.gnu.org/packages/let-alist-" version ".el"))
9560 (sha256
9561 (base32
9562 "0r7b9jni50la1m79kklml11syg8d2fmdlr83pv005sv1wh02jszw"))))
9563 (build-system emacs-build-system)
9564 (home-page "https://elpa.gnu.org/packages/let-alist.html")
9565 (synopsis "Easily let-bind values of an assoc-list by their names")
9566 (description "This package offers a single macro, @code{let-alist}. This
9567 macro takes a first argument (whose value must be an alist) and a body.")
9568 (license license:gpl3+)))
9569
9570 (define-public emacs-esup
9571 (let ((commit "a589005a9a888537deef94d6fe38a9b8790c97c7")
9572 (revision "1"))
9573 (package
9574 (name "emacs-esup")
9575 (version (string-append "0.6" "-" revision "."
9576 (string-take commit 7)))
9577 (source
9578 (origin
9579 (method git-fetch)
9580 (uri (git-reference
9581 (url "https://github.com/jschaf/esup.git")
9582 (commit commit)))
9583 (file-name (string-append name "-" version "-checkout"))
9584 (sha256
9585 (base32
9586 "04lxmd0h7mfjjl0qghrycgff0vcv950j1wqv0dbkr61jxp64n5fv"))))
9587 ;; TODO: Add tests
9588 (build-system emacs-build-system)
9589 (home-page "https://github.com/jschaf/esup")
9590 (synopsis "Emacs start up profiler")
9591 (description "Benchmark Emacs Startup time without ever leaving
9592 your Emacs.")
9593 (license license:gpl2+))))
9594
9595 (define-public emacs-sourcemap
9596 (package
9597 (name "emacs-sourcemap")
9598 (version "0.03")
9599 (source
9600 (origin
9601 (method url-fetch)
9602 (uri (string-append "https://github.com/syohex/emacs-sourcemap/archive/"
9603 version ".tar.gz"))
9604 (file-name (string-append name "-" version ".tar.gz"))
9605 (sha256
9606 (base32
9607 "0bmd5l3cx2iyl7vxn84xdhs80b07kpdpfwki28lh5d0kmm5qs6m6"))))
9608 (build-system emacs-build-system)
9609 (home-page "https://github.com/syohex/emacs-sourcemap")
9610 (synopsis "Sourcemap parser")
9611 (description "Sourcemap parser")
9612 (license license:gpl3+)))
9613
9614 (define-public emacs-macrostep
9615 (let ((commit "424e3734a1ee526a1bd7b5c3cd1d3ef19d184267"))
9616 (package
9617 (name "emacs-macrostep")
9618 (version (git-version "0.9" "1" commit))
9619 (source (origin
9620 (method git-fetch)
9621 (uri (git-reference
9622 (url "https://github.com/joddie/macrostep.git")
9623 (commit commit)))
9624 (file-name (string-append name "-" version "-checkout"))
9625 (sha256
9626 (base32
9627 "1fm40mxdn289cyzgw992223dgrjmwxn4q8svyyxfaxjrpb38jhjz"))))
9628 (build-system emacs-build-system)
9629 (arguments
9630 '(#:phases
9631 (modify-phases %standard-phases
9632 (add-before 'check 'remove-test
9633 ;; Fails because of requirement ‘/bin/sh’.
9634 (lambda _
9635 (let ((file "macrostep-test.el"))
9636 (chmod file #o644)
9637 (emacs-batch-edit-file file
9638 `(progn (progn (goto-char (point-min))
9639 (re-search-forward
9640 "(ert-deftest macrostep-expand-c-macros")
9641 (beginning-of-line)
9642 (kill-sexp))
9643 (basic-save-buffer))))))
9644 (add-before 'install 'check
9645 (lambda _
9646 (invoke "emacs" "--batch" "-L" "."
9647 "-l" "macrostep-test.el"
9648 "-f" "ert-run-tests-batch-and-exit"))))))
9649 (home-page "https://github.com/joddie/macrostep")
9650 (synopsis "Interactive macro-expander for Emacs")
9651 (description "@code{macrostep} is an Emacs minor mode for interactively
9652 stepping through the expansion of macros in Emacs Lisp source code. It lets
9653 you see exactly what happens at each step of the expansion process by
9654 pretty-printing the expanded forms inline in the source buffer, which is
9655 temporarily read-only while macro expansions are visible. You can expand and
9656 collapse macro forms one step at a time, and evaluate or instrument the
9657 expansions for debugging with Edebug as normal (but see “Bugs and known
9658 limitations”, below). Single-stepping through the expansion is particularly
9659 useful for debugging macros that expand into another macro form. These can be
9660 difficult to debug with Emacs’ built-in macroexpand, which continues expansion
9661 until the top-level form is no longer a macro call.")
9662 (license license:gpl3+))))
9663
9664 (define-public emacs-parent-mode
9665 (package
9666 (name "emacs-parent-mode")
9667 (version "2.3")
9668 (source
9669 (origin
9670 (method url-fetch)
9671 (uri (string-append "https://github.com/Fanael/parent-mode/archive/"
9672 version ".tar.gz"))
9673 (file-name (string-append name "-" version ".tar.gz"))
9674 (sha256
9675 (base32
9676 "0gxbl5s1w96v6v55b7aaansgw4sxhzfx9nrsvpk3pfhsibs6yqjd"))))
9677 (build-system emacs-build-system)
9678 (home-page "https://github.com/Fanael/parent-mode")
9679 (synopsis "Get major mode's parent modes")
9680 (description "Get major mode's parent modes")
9681 (license license:gpl3+)))
9682
9683 (define-public emacs-lacarte
9684 (package
9685 (name "emacs-lacarte")
9686 (version "0.1")
9687 (source (origin
9688 (method url-fetch)
9689 (uri "https://www.emacswiki.org/emacs/download/lacarte.el")
9690 (sha256
9691 (base32
9692 "1sbmk37ljq5j7dsw5c37sbxvlfgdqswh7bi4dknyjzfxlq50f4am"))))
9693 (build-system emacs-build-system)
9694 (home-page "https://www.emacswiki.org/emacs/lacarte.el")
9695 (synopsis "Execute menu items as commands, with completion")
9696 (description "Execute menu items as commands, with completion.")
9697 (license license:gpl3)))
9698
9699 (define-public emacs-company-lua
9700 (let ((commit "0be8122f3adf57ad27953bf4b03545d6298d3da4"))
9701 (package
9702 (name "emacs-company-lua")
9703 (version (git-version "0.1" "1" commit))
9704 (source
9705 (origin
9706 (method git-fetch)
9707 (uri (git-reference
9708 (url "https://github.com/ptrv/company-lua.git")
9709 (commit commit)))
9710 (file-name (git-file-name name version))
9711 (sha256
9712 (base32
9713 "1d9i165apgmwns7b2fd5wcpjpkah3dyj20v5sb8ynvz6qhhr5r9c"))))
9714 (build-system emacs-build-system)
9715 (propagated-inputs
9716 `(("emacs-company" ,emacs-company)
9717 ("emacs-s" ,emacs-s)
9718 ("emacs-f" ,emacs-f)
9719 ("emacs-lua-mode" ,emacs-lua-mode)))
9720 (home-page "https://github.com/ptrv/company-lua")
9721 (synopsis "Company backend for Lua")
9722 (description
9723 "This package provides Company backend for Lua programming language.")
9724 (license license:gpl3+))))
9725
9726 (define-public emacs-beginend
9727 (package
9728 (name "emacs-beginend")
9729 (version "2.0.0")
9730 (source
9731 (origin
9732 (method url-fetch)
9733 (uri (string-append "https://github.com/DamienCassou/beginend/archive/"
9734 "v" version ".tar.gz"))
9735 (file-name (string-append name "-" version ".tar.gz"))
9736 (sha256
9737 (base32
9738 "0z4rbwffh9vxfvcrlvym4p73z7gf72q0b5iv33llbpcpbijknnrq"))))
9739 ;; TODO: Run tests.
9740 (build-system emacs-build-system)
9741 (inputs
9742 `(("emacs-undercover" ,emacs-undercover))) ; For tests.
9743 (home-page "https://github.com/DamienCassou/beginend")
9744 (synopsis "Redefine @code{M-<} and @code{M->} for Emacs modes")
9745 (description "@code{beginend} redefines @code{M-<} and @code{M->}
9746 keybindings for Emacs modes so that point moves to meaningful
9747 locations. Redefined keys are still accessible by pressing the same
9748 key again.")
9749 (license license:gpl3+)))
9750
9751 (define-public emacs-mbsync
9752 (let ((commit "42077e83ae2db778ce0f8e22f8357b40355526b3")
9753 (revision "1"))
9754 (package
9755 (name "emacs-mbsync")
9756 (version (string-append "0.0.1" "-" revision "."
9757 (string-take commit 7)))
9758 (source
9759 (origin
9760 (method git-fetch)
9761 (uri (git-reference
9762 (url "https://github.com/dimitri/mbsync-el.git")
9763 (commit commit)))
9764 (file-name (string-append name "-" version "-checkout"))
9765 (sha256
9766 (base32
9767 "0yj93y2mpxlir8x73znlg1slxlv4blm1vjv5h2w3j8lxg8bxvmn6"))))
9768 (build-system emacs-build-system)
9769 (home-page "https://github.com/dimitri/mbsync-el")
9770 (synopsis "Interface to mbsync for Emacs")
9771 (description "This package allows to call the @code{mbsync} from
9772 within Emacs.")
9773 (license license:gpl3+))))
9774
9775 (define-public emacs-ibuffer-projectile
9776 (let ((commit "c18ac540ee46cb759fc5df18747f6e8d23563011")
9777 (revision "1"))
9778 (package
9779 (name "emacs-ibuffer-projectile")
9780 (version (string-append "0.2" "-" revision "."
9781 (string-take commit 7)))
9782 (source
9783 (origin
9784 (method git-fetch)
9785 (uri (git-reference
9786 (url "https://github.com/purcell/ibuffer-projectile.git")
9787 (commit commit)))
9788 (file-name (string-append name "-" version "-checkout"))
9789 (sha256
9790 (base32
9791 "1nd26cwwdpnwj0g4w393rd59klpyr6wqrnyr6scmwb5d06bsm44n"))))
9792 (build-system emacs-build-system)
9793 (propagated-inputs
9794 `(("emacs-projectile" ,emacs-projectile)))
9795 (home-page "https://github.com/purcell/ibuffer-projectile")
9796 (synopsis "Group ibuffer's list by projectile root")
9797 (description "Adds functionality to Emacs @code{ibuffer} for
9798 grouping buffers by their projectile root directory.")
9799 (license license:gpl3+))))
9800
9801 (define-public emacs-helm-mode-manager
9802 (package
9803 (name "emacs-helm-mode-manager")
9804 (version "1.0.0")
9805 (source
9806 (origin
9807 (method url-fetch)
9808 (uri (string-append "https://github.com/istib/helm-mode-manager/"
9809 "archive/" version ".tar.gz"))
9810 (file-name (string-append name "-" version ".tar.gz"))
9811 (sha256
9812 (base32
9813 "0wllj321z16hgrx0ddwzk5wz4mnnx5am7w5nclqclfc5dfdn92wm"))))
9814 (build-system emacs-build-system)
9815 (propagated-inputs
9816 `(("emacs-helm" ,emacs-helm)))
9817 (home-page "https://github.com/istib/helm-mode-manager/")
9818 (synopsis "Switch and toggle Emacs major and minor modes using Helm")
9819 (description "This package provides a Helm interface for toggling Emacs
9820 major or minor mode.
9821
9822 @itemize
9823 @item @code{helm-switch-major-mode} list of all major modes
9824 @item @code{helm-enable-minor-mode} list of all inactive minor modes
9825 @item @code{helm-disable-minor-mode} list of all ACTIVE minor modes
9826 @end itemize\n
9827
9828 Hitting @code{RET} enables the mode, @code{C-z} shows the mode
9829 documentation.")
9830 (license license:gpl3+)))
9831
9832 (define-public emacs-hy-mode
9833 (package
9834 (name "emacs-hy-mode")
9835 (version "1.0.3")
9836 (source
9837 (origin
9838 (method url-fetch)
9839 (uri (string-append "https://github.com/hylang/hy-mode/archive/"
9840 "v" version ".tar.gz"))
9841 (file-name (string-append name "-" version ".tar.gz"))
9842 (sha256
9843 (base32
9844 "0b4pvbr2hf77bq2vsyfsv653q0dab7qzq85wc7kdziw7687jdf2z"))))
9845 (build-system emacs-build-system)
9846 (propagated-inputs
9847 `(("emacs-dash" ,emacs-dash)
9848 ("emacs-s" ,emacs-s)))
9849 (home-page "https://github.com/hylang/hy-mode")
9850 (synopsis "Major mode for Hylang")
9851 (description "This package provides a major mode for Hylang.")
9852 (license license:gpl3+)))
9853
9854 (define-public emacs-web-beautify
9855 (package
9856 (name "emacs-web-beautify")
9857 (version "0.3.2")
9858 (source
9859 (origin
9860 (method url-fetch)
9861 (uri (string-append "https://github.com/yasuyk/web-beautify/archive/"
9862 version ".tar.gz"))
9863 (file-name (string-append name "-" version ".tar.gz"))
9864 (sha256
9865 (base32
9866 "1j57hwid74id4swkx2g0iljfawx0k9c7qjrwqc0mv657x9p78hcs"))))
9867 (build-system emacs-build-system)
9868 (home-page "https://github.com/yasuyk/web-beautify")
9869 (synopsis "Format HTML, CSS and JavaScript, JSON")
9870 (description "This package provides an Emacs functions to format HTML,
9871 CSS, JavaScript, JSON.")
9872 (license license:gpl3+)))
9873
9874 (define-public emacs-helm-shell-history
9875 (let ((commit "110d3c35c52fe4b89b29e79ea4c8626bce7266a1"))
9876 (package
9877 (name "emacs-helm-shell-history")
9878 (version (git-version "0.1" "1" commit))
9879 (source
9880 (origin
9881 (method git-fetch)
9882 (uri (git-reference
9883 (url "https://github.com/yuutayamada/helm-shell-history.git")
9884 (commit commit)))
9885 (file-name (git-file-name name version))
9886 (sha256
9887 (base32
9888 "18fkjcz69g4dyaxhf9j8svr5x6dhsdnglddwisis8hdn504scpfj"))))
9889 (build-system emacs-build-system)
9890 (arguments
9891 '(#:phases
9892 (modify-phases %standard-phases
9893 (add-before 'check 'patch-helm-shell-history-file
9894 (lambda _
9895 (let ((file "helm-shell-history.el"))
9896 (chmod file #o644)
9897 (emacs-substitute-sexps file
9898 ("(defvar helm-shell-history-file"
9899 `(expand-file-name "~/.bash_history"))))
9900 #t)))))
9901 (propagated-inputs
9902 `(("emacs-helm" ,emacs-helm)))
9903 (home-page "https://github.com/yuutayamada/helm-shell-history")
9904 (synopsis "Find shell history with Emacs Helm")
9905 (description "This package provides an Emacs Helm interface to search
9906 throw a shell history.")
9907 (license license:gpl3+))))
9908
9909 (define-public emacs-discover-my-major
9910 (package
9911 (name "emacs-discover-my-major")
9912 (version "1.0")
9913 (source
9914 (origin
9915 (method url-fetch)
9916 (uri
9917 (string-append "https://github.com/steckerhalter/discover-my-major"
9918 "/archive/" version ".tar.gz"))
9919 (file-name (string-append name "-" version ".tar.gz"))
9920 (sha256
9921 (base32
9922 "0nah41f92rrl2l405kpqr6iaks11jyclgl4z7ilfymbr4ifmsiyl"))))
9923 (build-system emacs-build-system)
9924 (propagated-inputs
9925 `(("emacs-makey" ,emacs-makey)))
9926 (home-page "https://github.com/steckerhalter/discover-my-major")
9927 (synopsis "Discover key bindings for the current Emacs major mode")
9928 (description "This package provides allows to discover key bindings and
9929 their meaning for the current Emacs major-mode.")
9930 (license license:gpl3+)))
9931
9932 (define-public emacs-org-ref
9933 (let ((commit "8c9b5d7efb9f0c1ad5186b8203bdd017f4249129")
9934 (revision "1"))
9935 (package
9936 (name "emacs-org-ref")
9937 (version (string-append "1.1.1" "-" revision "."
9938 (string-take commit 7)))
9939 (source
9940 (origin
9941 (method git-fetch)
9942 (uri (git-reference
9943 (url "https://github.com/jkitchin/org-ref.git")
9944 (commit commit)))
9945 (file-name (string-append name "-" version "-checkout"))
9946 (sha256
9947 (base32
9948 "1rxz0bjdsayk0slv23i07d9xhj2m7s4hsc81wc2d1cs52dkr5zmz"))))
9949 (build-system emacs-build-system)
9950 (propagated-inputs
9951 `(("emacs-dash" ,emacs-dash)
9952 ("emacs-helm" ,emacs-helm)
9953 ("emacs-helm-bibtex" ,emacs-helm-bibtex)
9954 ("emacs-ivy" ,emacs-ivy)
9955 ("emacs-hydra" ,emacs-hydra)
9956 ("emacs-key-chord" ,emacs-key-chord)
9957 ("emacs-s" ,emacs-s)
9958 ("emacs-f" ,emacs-f)
9959 ("emacs-pdf-tools" ,emacs-pdf-tools)))
9960 (home-page "https://github.com/jkitchin/org-ref")
9961 (synopsis "Citations, cross-references and bibliographies in org-mode")
9962 (description
9963 "Lisp code to setup bibliography, cite, ref and label org-mode links.
9964 Also sets up reftex and helm for org-mode citations. The links are
9965 clickable and do things that are useful.
9966
9967 The default setup uses helm-bibtex.
9968
9969 You should really read org-ref.org in this package for details.")
9970 (license license:gpl3+))))
9971
9972 (define-public emacs-org-reveal
9973 (package
9974 (name "emacs-org-reveal")
9975 ;; There are no proper tag, so we use the latest commit of the stable
9976 ;; branch, as does MELPA.
9977 (version "20161027.926")
9978 (source (origin
9979 (method git-fetch)
9980 (uri (git-reference
9981 (url "https://github.com/yjwen/org-reveal.git")
9982 (commit "001567cc12d50ba07612edd1718b86a12e8c2547")))
9983 (file-name (string-append name "-" version "-checkout"))
9984 (sha256
9985 (base32
9986 "18rma8smjrskbjyna076zhvx79zs5r5vinb537h8mw13pfxd6cm8"))))
9987 (build-system emacs-build-system)
9988 (home-page "https://github.com/yjwen/org-reveal")
9989 (synopsis "Org and Reveal.js powered HTML presentation tool")
9990 (description "Org-Reveal is a command@{org-mode} extension that allows to
9991 create beautiful presentations (slides) with 3D effects from simple but
9992 powerful Org contents.")
9993 (license license:gpl3+)))
9994
9995 (define-public emacs-add-hooks
9996 (package
9997 (name "emacs-add-hooks")
9998 (version "3.1.1")
9999 (source (origin
10000 (method url-fetch)
10001 (uri (string-append
10002 "https://github.com/nickmccurdy/add-hooks/archive/"
10003 version ".tar.gz"))
10004 (file-name (string-append name "-" version ".tar.gz"))
10005 (sha256
10006 (base32
10007 "03a28gb3298g7pc2qji9hi44p4d99ljp5mpi9cmg42ldv8fl6549"))))
10008 (build-system emacs-build-system)
10009 (home-page "https://github.com/nickmccurdy/add-hooks/")
10010 (synopsis "Emacs function for setting multiple hooks")
10011 (description "This package provides a @code{add-hooks} function tidies up
10012 duplicate hook and function names further into a single declarative call.")
10013 (license license:gpl3+)))
10014
10015 (define-public emacs-fancy-narrow
10016 (package
10017 (name "emacs-fancy-narrow")
10018 (version "0.9.5")
10019 (source
10020 (origin
10021 (method url-fetch)
10022 (uri (string-append "https://github.com/Malabarba/fancy-narrow/archive/"
10023 version ".tar.gz"))
10024 (file-name (string-append name "-" version ".tar.gz"))
10025 (sha256
10026 (base32
10027 "0rf2rnzg82pdqch041yyx3f9ddixffkk9s2ydzg8hwy66sg3385n"))))
10028 (build-system emacs-build-system)
10029 (home-page "https://github.com/Malabarba/fancy-narrow/releases")
10030 (synopsis "Imitate @code{narrow-to-region} with more eye candy")
10031 (description
10032 "Unlike @code{narrow-to-region}, which completely hides text outside
10033 the narrowed region, this package simply de-emphasizes the text, makes it
10034 read-only, and makes it unreachable. This leads to a much more natural
10035 feeling where the region stays static (instead of being brutally moved to a
10036 blank slate) and is clearly highlighted with respect to the rest of the
10037 buffer.")
10038 (license license:gpl2+)))
10039
10040 (define-public emacs-know-your-http-well
10041 (package
10042 (name "emacs-know-your-http-well")
10043 (version "0.5.0")
10044 (source
10045 (origin
10046 (method url-fetch)
10047 (uri (string-append
10048 "https://github.com/for-GET/know-your-http-well/archive/"
10049 "v" version ".tar.gz"))
10050 (file-name (string-append name "-" version ".tar.gz"))
10051 (sha256
10052 (base32
10053 "1y3kwz88awcgwaivlswq0q4g2i02762r23lpwg61bfqy5lrjjqnj"))))
10054 (arguments
10055 `(#:phases
10056 (modify-phases %standard-phases
10057 (add-after 'unpack 'install-json-files
10058 (lambda* (#:key outputs #:allow-other-keys)
10059 (for-each (lambda (directory)
10060 (copy-recursively directory
10061 (string-append
10062 (assoc-ref outputs "out")
10063 directory)))
10064 '("js" "json"))))
10065 (add-after 'unpack 'chdir-elisp
10066 ;; Elisp directory is not in root of the source.
10067 (lambda _
10068 (chdir "emacs"))))))
10069 (build-system emacs-build-system)
10070 (home-page "https://github.com/for-GET/know-your-http-well")
10071 (synopsis "Meaning of HTTP headers codes")
10072 (description "Meaning of HTTP headers codes.")
10073 (license license:gpl3+)))
10074
10075 (define-public emacs-navi-mode
10076 (let ((commit "c1d38e8237f4e14af020a0b7d4f118ea198ab674"))
10077 (package
10078 (name "emacs-navi-mode")
10079 (version (git-version "2.0" "1" commit))
10080 (source
10081 (origin
10082 (method git-fetch)
10083 (uri (git-reference
10084 (url "https://github.com/alphapapa/navi.git")
10085 (commit commit)))
10086 (file-name (git-file-name name version))
10087 (sha256
10088 (base32
10089 "0jj5spk14hgb7zb1cd2n8whcw4k1kd5zb6llwj96v178yaws7l8k"))))
10090 (build-system emacs-build-system)
10091 (propagated-inputs
10092 `(("emacs-outshine" ,emacs-outshine)
10093 ("emacs-outorg" ,emacs-outorg)))
10094 (home-page "https://github.com/alphapapa/navi")
10095 (synopsis "Emacs major-mode for easy buffer-navigation")
10096 (description
10097 "This package provides an Emacs major-mode for easy buffer-navigation")
10098 (license license:gpl3+))))
10099
10100 (define-public emacs-download-region
10101 (let ((commit "eb9e557529a73b4cfc8281c70dd0d95db333fffa")
10102 (revision "1"))
10103 (package
10104 (name "emacs-download-region")
10105 (version (string-append "0.0.1" "-" revision "."
10106 (string-take commit 7)))
10107 (source
10108 (origin
10109 (method git-fetch)
10110 (uri (git-reference
10111 (url "https://github.com/zk-phi/download-region.git")
10112 (commit commit)))
10113 (file-name (string-append name "-" version "-checkout"))
10114 (sha256
10115 (base32
10116 "0v52djg39b6k2snizd9x0qc009ws5y0ywqsfwhqgcbs5ymzh7dsc"))))
10117 (build-system emacs-build-system)
10118 (home-page "https://github.com/zk-phi/download-region")
10119 (synopsis "In buffer download manager for Emacs")
10120 (description "@code{download-region} provides in buffer
10121 downloading manager for Emacs.")
10122 (license license:gpl3+))))
10123
10124 (define-public emacs-helpful
10125 (package
10126 (name "emacs-helpful")
10127 (version "0.13")
10128 (source (origin
10129 (method url-fetch)
10130 (uri (string-append
10131 "https://github.com/Wilfred/helpful/archive/"
10132 version ".tar.gz"))
10133 (file-name (string-append name "-" version ".tar.gz"))
10134 (sha256
10135 (base32
10136 "11kj04y1fa3vnw2991cyqf6adz6bb3hlrdkvypjnmpb0s64q64b6"))))
10137 (build-system emacs-build-system)
10138 (propagated-inputs
10139 `(("emacs-elisp-refs" ,emacs-elisp-refs)))
10140 (home-page "https://github.com/Wilfred/helpful")
10141 (synopsis "More contextual information in Emacs help")
10142 (description "@code{helpful} is an alternative to the built-in Emacs help
10143 that provides much more contextual information.
10144
10145 @itemize
10146 @item Show the source code for interactively defined functions (unlike the
10147 built-in Help).
10148 @item Fall back to the raw sexp if no source is available.
10149 @item Show where a function is being called.
10150 @item Docstrings will Highlight the summary (the first sentence), include
10151 cross-references, hide superfluous puncuation.
10152 @item Show you the properties that have been applied to the current
10153 symbol. This provides visibility of features like edebug or byte-code
10154 optimisation.
10155 @item Provide a separate @code{helpful-command} function to view interactive
10156 functions.
10157 @item Display any keybindings that apply to interactive functions.
10158 @item Trace, disassemble functions from inside Helpful. This is discoverable
10159 and doesn't require memorisation of commands.
10160 @end itemize\n")
10161 (license license:gpl3+)))
10162
10163 (define-public emacs-logview
10164 (package
10165 (name "emacs-logview")
10166 (version "0.9")
10167 (source (origin
10168 (method url-fetch)
10169 (uri (string-append
10170 "https://github.com/doublep/logview/archive/"
10171 version ".tar.gz"))
10172 (file-name (string-append name "-" version ".tar.gz"))
10173 (sha256
10174 (base32
10175 "1vd11ppm46ldqsiwhqgw91p34gbjh1y82r9mxcn9r2gj65nvhxcp"))))
10176 (propagated-inputs
10177 `(("emacs-datetime" ,emacs-datetime)))
10178 (build-system emacs-build-system)
10179 (home-page "https://github.com/doublep/logview/")
10180 (synopsis "Emacs mode for viewing log files")
10181 (description "@code{logview} provides an Emacs mode to view log files.")
10182 (license license:gpl3+)))
10183
10184 (define-public emacs-suggest
10185 (package
10186 (name "emacs-suggest")
10187 (version "0.4")
10188 (source
10189 (origin
10190 (method url-fetch)
10191 (uri (string-append "https://github.com/Wilfred/suggest.el/archive/"
10192 version ".tar.gz"))
10193 (file-name (string-append name "-" version ".tar.gz"))
10194 (sha256
10195 (base32
10196 "1760fm3j19w8xxcawq6s859h86q1rdg69pg9yz48n76kwfk3vlgp"))))
10197 (build-system emacs-build-system)
10198 (propagated-inputs
10199 `(("emacs-loop" ,emacs-loop)
10200 ("emacs-dash" ,emacs-dash)
10201 ("emacs-s" ,emacs-s)
10202 ("emacs-f" ,emacs-f)))
10203 (home-page "https://github.com/Wilfred/suggest.el")
10204 (synopsis "Suggest Elisp functions that give the output requested")
10205 (description "Suggest.el will find functions that give the output
10206 requested. It's a great way of exploring list, string and arithmetic
10207 functions.")
10208 (license license:gpl3+)))
10209
10210 (define-public emacs-benchmark-init
10211 (package
10212 (name "emacs-benchmark-init")
10213 (version "1.0")
10214 (source (origin
10215 (method url-fetch)
10216 (uri (string-append
10217 "https://github.com/dholm/benchmark-init-el/archive/"
10218 version ".tar.gz"))
10219 (file-name (string-append name "-" version ".tar.gz"))
10220 (sha256
10221 (base32
10222 "0szyqr4nncwz4vd5gww1vz31kf9r2lx25p4d0d09pm35974x53kz"))))
10223 (build-system emacs-build-system)
10224 (home-page "https://github.com/dholm/benchmark-init-el")
10225 (synopsis "Benchmark Emacs @code{require} and @code{load} calls")
10226 (description "@code{benchmark-init} provides a way to keep track of where
10227 time is being spent during Emacs startup in order to optimize startup time.")
10228 (license license:gpl3+)))
10229
10230 (define-public emacs-emms-player-simple-mpv
10231 ;; A new mpv backend is included in Emms from 5.0.
10232 (deprecated-package "emacs-emms-player-simple-mpv" emacs-emms))
10233
10234 (define-public emacs-magit-org-todos-el
10235 (let ((commit "df206287737b9671f2e36ae7b1474ebbe9940d2a"))
10236 (package
10237 (name "emacs-magit-org-todos-el")
10238 (version (git-version "0.1.1" "1" commit))
10239 (source
10240 (origin
10241 (method git-fetch)
10242 (uri (git-reference
10243 (url "https://github.com/danielma/magit-org-todos.el.git")
10244 (commit commit)))
10245 (file-name (git-file-name name version))
10246 (sha256
10247 (base32
10248 "0kdp7k7jnnrkhsg0xh1c3h7iz0vgi120gf5xwl1hxy61avivnxrn"))))
10249 (propagated-inputs
10250 `(("magit" ,emacs-magit)))
10251 (build-system emacs-build-system)
10252 (home-page "https://github.com/danielma/magit-org-todos.el")
10253 (synopsis "Get todo.org into Emacs Magit status")
10254 (description "This package allows you to get @file{todo.org} into your
10255 magit status.
10256
10257 If you have a @file{todo.org} file with @code{TODO} items in the root of your
10258 repository, @code{magit-org-todos} will create a section in your Magit status
10259 buffer with each of your todos.")
10260 (license license:gpl3+))))
10261
10262 (define-public emacs-f3
10263 (package
10264 (name "emacs-f3")
10265 (version "0.1")
10266 (source
10267 (origin
10268 (method url-fetch)
10269 (uri (string-append "https://github.com/cosmicexplorer/f3/archive/"
10270 version ".tar.gz"))
10271 (file-name (string-append name "-" version ".tar.gz"))
10272 (sha256
10273 (base32
10274 "06b8i1jvklm5k3k90n65f197l1miq1xlxqkqpbppw4h3rhl4y98h"))))
10275 (build-system emacs-build-system)
10276 (propagated-inputs
10277 `(("emacs-helm" ,emacs-helm)))
10278 (home-page "https://github.com/cosmicexplorer/f3")
10279 (synopsis "Fantastic File Finder for Emacs")
10280 (description
10281 "The Fantastic File Finder for Emacs. Find files fast, using helm.")
10282 (license license:gpl3+)))
10283
10284 (define-public emacs-lice-el
10285 (let ((commit "4339929927c62bd636f89bb39ea999d18d269250"))
10286 (package
10287 (name "emacs-lice-el")
10288 (version (git-version "0.2" "1" commit))
10289 (source (origin
10290 (method git-fetch)
10291 (uri (git-reference
10292 (url "https://github.com/buzztaiki/lice-el.git")
10293 (commit commit)))
10294 (file-name (git-file-name name version))
10295 (sha256
10296 (base32
10297 "0879z761b7gajkhq176ps745xpdrivch349crransv8fnsc759yb"))))
10298 (build-system emacs-build-system)
10299 (home-page "https://github.com/buzztaiki/lice-el")
10300 (synopsis "License and header template for Emacs")
10301 (description "@code{lice.el} provides following features:
10302
10303 @itemize
10304 @item License template management.
10305 @item File header insertion.
10306 @end itemize\n")
10307 (license license:gpl3+))))
10308
10309 (define-public emacs-academic-phrases
10310 (let ((commit "0823ed8c24b26c32f909b896a469833ec4d7b656"))
10311 (package
10312 (name "emacs-academic-phrases")
10313 (version (git-version "0.1" "1" commit))
10314 (source
10315 (origin
10316 (method git-fetch)
10317 (uri (git-reference
10318 (url "https://github.com/nashamri/academic-phrases.git")
10319 (commit commit)))
10320 (file-name (string-append name "-" version "-checkout"))
10321 (sha256
10322 (base32
10323 "0qfzsq8jh05w4zkr0cvq3i1hdn97bq344vcqjg46sib26x3wpz6r"))))
10324 (build-system emacs-build-system)
10325 (propagated-inputs
10326 `(("emacs-dash" ,emacs-dash)
10327 ("emacs-s" ,emacs-s)
10328 ("emacs-ht" ,emacs-ht)))
10329 (home-page "https://github.com/nashamri/academic-phrases")
10330 (synopsis "Bypass that mental block when writing your papers")
10331 (description
10332 "When writing your academic paper, you might get stuck trying to find
10333 the right phrase that captures your intention. This package tries to
10334 alleviate that problem by presenting you with a list of phrases organized by
10335 the topic or by the paper section that you are writing. This package has
10336 around 600 phrases so far.
10337
10338 Using this package is easy, just call @code{academic-phrases} to get a list of
10339 phrases organized by topic, or call @code{academic-phrases-by-section} to
10340 browse the phrases by the paper section and fill-in the blanks if required.")
10341 (license license:gpl3+))))
10342
10343 (define-public emacs-auto-yasnippet
10344 (let ((commit "d1ccfea87312c6dd8cf8501ab5b71b1d3d44d95b"))
10345 (package
10346 (name "emacs-auto-yasnippet")
10347 (version (git-version "0.3.0" "1" commit))
10348 (source (origin
10349 (method git-fetch)
10350 (uri (git-reference
10351 (url "https://github.com/abo-abo/auto-yasnippet.git")
10352 (commit commit)))
10353 (file-name (string-append name "-" version "-checkout"))
10354 (sha256
10355 (base32
10356 "1i8k2qiyzd5rq0zplk4xb5nfa5mp0ibxbzwqj6c7877waq7244xk"))))
10357 (build-system emacs-build-system)
10358 (arguments
10359 '(#:phases
10360 (modify-phases %standard-phases
10361 (add-before 'install 'check
10362 (lambda _
10363 (invoke "emacs" "--batch"
10364 "-l" "auto-yasnippet.el"
10365 "-l" "auto-yasnippet-test.el"
10366 "-f" "ert-run-tests-batch-and-exit"))))))
10367 (propagated-inputs
10368 `(("emacs-yasnippet" ,emacs-yasnippet)))
10369 (home-page "https://github.com/abo-abo/auto-yasnippet/")
10370 (synopsis "Quickly create disposable yasnippets")
10371 (description "This package provides a hybrid of keyboard macros and
10372 yasnippet. You create the snippet on the go, usually to be used just in the
10373 one place. It's fast, because you're not leaving the current buffer, and all
10374 you do is enter the code you'd enter anyway, just placing ~ where you'd like
10375 yasnippet fields and mirrors to be.")
10376 (license license:gpl3+))))
10377
10378 (define-public emacs-highlight-numbers
10379 (package
10380 (name "emacs-highlight-numbers")
10381 (version "0.2.3")
10382 (source
10383 (origin
10384 (method url-fetch)
10385 (uri (string-append
10386 "https://github.com/Fanael/highlight-numbers/archive/"
10387 version ".tar.gz"))
10388 (file-name (string-append name "-" version ".tar.gz"))
10389 (sha256
10390 (base32
10391 "030v5p11d4n0581ncv499l1fqrmfziy756q6378x2bv22ixghqqp"))))
10392 (build-system emacs-build-system)
10393 (propagated-inputs
10394 `(("emacs-parent-mode" ,emacs-parent-mode)))
10395 (home-page "https://github.com/Fanael/highlight-numbers")
10396 (synopsis "Highlight numbers in source code")
10397 (description "@code{highlight-numbers-mode} provides a minor mode for
10398 syntax highlighting of numeric literals in source code.
10399
10400 It s customizable: it's easy to add or redefine what exactly consitutes a
10401 \"number\" in given major mode. See @code{highlight-numbers-modelist}.")
10402 (license license:gpl3+)))
10403
10404 (define-public emacs-darkroom
10405 (package
10406 (name "emacs-darkroom")
10407 (version "0.1")
10408 (source (origin
10409 (method url-fetch)
10410 (uri (string-append "https://elpa.gnu.org/packages/darkroom-"
10411 version ".el"))
10412 (sha256
10413 (base32
10414 "0fif8fm1h7x7g16949shfnaik5f5488clsvkf8bi5izpqp3vi6ak"))))
10415 (build-system emacs-build-system)
10416 (home-page "https://elpa.gnu.org/packages/darkroom.html")
10417 (synopsis "Remove visual distractions and focus on writing")
10418 (description "@code{darkroom-mode} makes visual distractions disappear.
10419 The mode-line is temporarily elided, text is enlarged and margins are adjusted
10420 so that it's centered on the window.
10421
10422 @code{darkroom-tentative-mode} is similar, but it doesn't immediately turn-on
10423 @code{darkroom-mode}, unless the current buffer lives in the sole window of
10424 the Emacs frame (i.e. all other windows are deleted). Whenever the frame is
10425 split to display more windows and more buffers, the buffer exits
10426 @code{darkroom-mode}. Whenever they are deleted, the buffer re-enters
10427 @code{darkroom-mode}.")
10428 (license license:gpl3+)))
10429
10430 (define-public emacs-rsw-elisp
10431 (package
10432 (name "emacs-rsw-elisp")
10433 (version "1.0.5")
10434 (source (origin
10435 (method url-fetch)
10436 (uri (string-append "https://github.com/rswgnu/rsw-elisp"
10437 "/archive/" version ".tar.gz"))
10438 (file-name (string-append name "-" version ".tar.gz"))
10439 (sha256
10440 (base32
10441 "1jnn7xfwl3wxc87v44ccsf1wwp80par3xgcvfb1icd6zchjmlcps"))))
10442 (build-system emacs-build-system)
10443 (home-page "https://github.com/rswgnu/rsw-elisp")
10444 (synopsis "Improved expressions that interactively evaluate Emacs Lisp")
10445 (description "This package improves and replaces the GNU Emacs commands
10446 that interactively evaluate Emacs Lisp expressions. The new commands replace
10447 standard key bindings and are all prefixed with @code{rsw-elisp-}. They work
10448 the same way as the old commands when called non-interactively; only the
10449 interactive behavior should be different.")
10450 (license license:gpl3+)))
10451
10452 (define-public emacs-default-text-scale
10453 (let ((commit "968e985e219235f3e744d6d967e592acbaf6e0a8")
10454 (revision "1"))
10455 (package
10456 (name "emacs-default-text-scale")
10457 (version (string-append "0.1" "-" revision "."
10458 (string-take commit 7)))
10459 (source (origin
10460 (method git-fetch)
10461 (uri (git-reference
10462 (url "https://github.com/purcell/default-text-scale")
10463 (commit commit)))
10464 (file-name (string-append name "-" version "-checkout"))
10465 (sha256
10466 (base32
10467 "0zds01c3q5yny6ab1fxfkzzgn1kgl3q23lxxap905f4qd70v922h"))))
10468 (build-system emacs-build-system)
10469 (home-page "https://github.com/purcell/default-text-scale")
10470 (synopsis "Adjust the font size in all Emacs frames")
10471 (description "This package provides commands for increasing or
10472 decreasing the default font size in all GUI Emacs frames.")
10473 (license license:gpl3+))))
10474
10475 (define-public emacs-visual-regexp
10476 (package
10477 (name "emacs-visual-regexp")
10478 (version "1.1.1")
10479 (source
10480 (origin
10481 (method url-fetch)
10482 (uri (string-append "https://github.com/benma/visual-regexp.el/archive/"
10483 "v" version ".tar.gz"))
10484 (file-name (string-append name "-" version ".tar.gz"))
10485 (sha256
10486 (base32
10487 "1czmhvcivlcdyz7rfm0vd4a3xsgmy4qbvbl6yjxc217wrxqflr92"))))
10488 (build-system emacs-build-system)
10489 (home-page "https://github.com/benma/visual-regexp.el/")
10490 (synopsis "Regexp command with interactive visual feedback")
10491 (description "This package provides an Emacs regexp command with
10492 interactive visual feedback.")
10493 (license license:gpl3+)))
10494
10495 (define-public emacs-faceup
10496 (let ((commit "6c92dad56a133e14e7b27831e1bcf9b3a71ff154")
10497 (revision "1"))
10498 (package
10499 (name "emacs-faceup")
10500 (version (string-append "0.0.1" "-" revision "."
10501 (string-take commit 7)))
10502 (source
10503 (origin
10504 (method git-fetch)
10505 (uri (git-reference
10506 (url "https://github.com/Lindydancer/faceup.git")
10507 (commit commit)))
10508 (file-name (string-append name "-" version "-checkout"))
10509 (sha256
10510 (base32
10511 "1yzmy7flrhrh0i10bdszx8idx6r8h6czm4vm4q0z6fp5fw94zwrx"))))
10512 (build-system emacs-build-system)
10513 (home-page "https://github.com/Lindydancer/faceup")
10514 (synopsis "Markup language for faces and font-lock regression testing")
10515 (description "Emacs is capable of highlighting buffers based on
10516 language-specific @code{font-lock} rules. This package makes it possible to
10517 perform regression test for packages that provide font-lock rules.")
10518 (license license:gpl3+))))
10519
10520 (define-public emacs-racket-mode
10521 (let ((commit "b977873e6128f8399432dcd60cc39f6a6f803d9c")
10522 (revision "2"))
10523 (package
10524 (name "emacs-racket-mode")
10525 (version (string-append "0.0.2" "-" revision "."
10526 (string-take commit 7)))
10527 (source
10528 (origin
10529 (method git-fetch)
10530 (uri (git-reference
10531 (url "https://github.com/greghendershott/racket-mode")
10532 (commit commit)))
10533 (file-name (string-append name "-" version "-checkout"))
10534 (sha256
10535 (base32
10536 "0vp4bbbplqvmnhjpl6ajrlydmrhqzil56cfbs18m5c5fddx0zlh7"))))
10537 (build-system emacs-build-system)
10538 (arguments
10539 `(#:include '("\\.el$" "\\.rkt$")))
10540 (propagated-inputs
10541 `(("emacs-faceup" ,emacs-faceup)
10542 ("emacs-s" ,emacs-s)))
10543 (home-page "https://github.com/greghendershott/racket-mode")
10544 (synopsis "Major mode for Racket language")
10545 (description "@code{racket-mode} provides:
10546
10547 @itemize
10548 @item Focus on Racket (not various Schemes).
10549 @item Follow DrRacket concepts where applicable.
10550 @item Thorough font-lock and indent.
10551 @end itemize\n")
10552 (license license:gpl3+))))
10553
10554 (define-public emacs-grep-context
10555 (let ((commit "a17c57e66687a54e195e08afe776bdd60cb6c0a7"))
10556 (package
10557 (name "emacs-grep-context")
10558 (version (git-version "0.1" "1" commit))
10559 (source
10560 (origin
10561 (method git-fetch)
10562 (uri (git-reference
10563 (url "https://github.com/mkcms/grep-context.git")
10564 (commit commit)))
10565 (file-name (string-append name "-" version "-checkout"))
10566 (sha256
10567 (base32
10568 "1nqfa6kjzjshww4hnwg1c0vcr90bdjihy3kmixq3c3jkvxg99b62"))))
10569 (build-system emacs-build-system)
10570 (propagated-inputs
10571 `(("emacs-dash" ,emacs-dash)))
10572 (home-page "https://github.com/nashamri/academic-phrases")
10573 (synopsis "Increase context in compilation and grep buffers")
10574 (description
10575 "This package provides an Emacs package for more context in
10576 compilation/grep buffers. Works with @code{wgrep}, @code{ack}, @code{ag},
10577 @code{ivy}.")
10578 (license license:gpl3+))))
10579
10580 (define-public emacs-helm-firefox
10581 (let ((commit "0ad34b7b5abc485a86cae6920c14de861cbeb085")
10582 (revision "1"))
10583 (package
10584 (name "emacs-helm-firefox")
10585 (version (string-append "0.0.1" "-" revision "."
10586 (string-take commit 7)))
10587 (source
10588 (origin
10589 (method git-fetch)
10590 (uri (git-reference
10591 (url "https://github.com/emacs-helm/helm-firefox.git")
10592 (commit commit)))
10593 (file-name (string-append name "-" version "-checkout"))
10594 (sha256
10595 (base32
10596 "08mjsi2f9s29fkk35cj1rrparjnkm836qmbfdwdz7y51f9varjbs"))))
10597 (propagated-inputs
10598 `(("emacs-helm" ,emacs-helm)))
10599 (build-system emacs-build-system)
10600 (home-page "https://github.com/emacs-helm/helm-firefox")
10601 (synopsis "Display firefox bookmarks with Emacs Helm interface")
10602 (description "Display firefox bookmarks with Emacs Helm interface")
10603 (license license:gpl3+))))
10604
10605 (define-public emacs-interactive-align
10606 (package
10607 (name "emacs-interactive-align")
10608 (version "0.1.0")
10609 (source
10610 (origin
10611 (method url-fetch)
10612 (uri (string-append "https://github.com/mkcms/interactive-align/"
10613 "archive/" "v" version ".tar.gz"))
10614 (file-name (string-append name "-" version ".tar.gz"))
10615 (sha256
10616 (base32
10617 "0sibpgb4lp6yy3pziak8f3hz4b28yj0dqy2nzh51z3d0b63h528m"))))
10618 (build-system emacs-build-system)
10619 (home-page "https://github.com/mkcms/interactive-align/")
10620 (synopsis "Interactive align-regexp command in Emacs")
10621 (description "Interactive align-regexp command in Emacs")
10622 (license license:gpl3+)))
10623
10624 (define-public emacs-shift-number
10625 (package
10626 (name "emacs-shift-number")
10627 (version "0.1")
10628 (source
10629 (origin
10630 (method url-fetch)
10631 (uri (string-append "https://github.com/alezost/shift-number.el"
10632 "/archive/" "v" version ".tar.gz"))
10633 (file-name (string-append name "-" version ".tar.gz"))
10634 (sha256
10635 (base32
10636 "1g79m0hqn9jgpm565vvh8pdfzndc4vw7xisnh5qysj55qfg8cb1x"))))
10637 (build-system emacs-build-system)
10638 (home-page "https://github.com/alezost/shift-number.el")
10639 (synopsis "Increase or decrease the number at point")
10640 (description "@code{emacs-shift-number} provides commands
10641 @code{shift-number-up} to increase and @code{shift-number-down} to
10642 decrease the number at point.")
10643 (license license:gpl3+)))
10644
10645 (define-public emacs-highlight-defined
10646 (package
10647 (name "emacs-highlight-defined")
10648 (version "0.1.5")
10649 (source
10650 (origin
10651 (method url-fetch)
10652 (uri (string-append
10653 "https://github.com/Fanael/highlight-defined/archive/"
10654 version ".tar.gz"))
10655 (file-name (string-append name "-" version ".tar.gz"))
10656 (sha256
10657 (base32
10658 "1ryd66989b5byqdw8jmjrjf0c78iiz72wibld750skcnj5h5h506"))))
10659 (build-system emacs-build-system)
10660 (home-page "https://github.com/Fanael/highlight-defined")
10661 (synopsis "Syntax highlighting of known Elisp symbols")
10662 (description "Minor mode providing syntax highlighting of known Emacs Lisp
10663 symbols. Currently the code distinguishes Lisp functions, built-in functions,
10664 macros, faces and variables. To enable call @code{highlight-defined-mode}. ")
10665 (license license:gpl3+)))
10666
10667 (define-public emacs-parinfer-mode
10668 (package
10669 (name "emacs-parinfer-mode")
10670 (version "0.4.10")
10671 (source
10672 (origin
10673 (method url-fetch)
10674 (uri (string-append "https://github.com/DogLooksGood/parinfer-mode/archive/"
10675 "v" version ".tar.gz"))
10676 (file-name (string-append name "-" version ".tar.gz"))
10677 (sha256
10678 (base32
10679 "06ba9qi59sm9ih9m38fbr8kj4qkvrm58n0c0ngfjz60gnr9x9pcv"))))
10680 (propagated-inputs
10681 `(("emacs-dash" ,emacs-dash)
10682 ("emacs-rainbow-delimiters" ,emacs-rainbow-delimiters)
10683 ("emacs-company" ,emacs-company)))
10684 (build-system emacs-build-system)
10685 (home-page "https://github.com/DogLooksGood/parinfer-mode/")
10686 (synopsis "Lisp structure editing mode")
10687 (description "@code{parinfer-mode} is a proof-of-concept editor
10688 mode for Lisp programming languages. It will infer some changes to
10689 keep Parens and Indentation inline with one another.")
10690 (license license:gpl3+)))
10691
10692 (define-public emacs-helm-eww
10693 (let ((commit "9d36acc433bcf689598b1b4d7d47c9aeb84d6b44"))
10694 (package
10695 (name "emacs-helm-eww")
10696 (version (git-version "0.1" "3" commit))
10697 (source (origin
10698 (method git-fetch)
10699 (uri (git-reference
10700 (url "https://github.com/emacs-helm/helm-eww.git")
10701 (commit commit)))
10702 (file-name (string-append name "-" version "-checkout"))
10703 (sha256
10704 (base32
10705 "06gnf84gx6qbhcw1h5jhjnvcdxkdpv0npm53x3pgqybbll5rn5dy"))))
10706 (propagated-inputs
10707 `(("emacs-helm" ,emacs-helm)))
10708 (build-system emacs-build-system)
10709 (home-page "https://github.com/emacs-helm/helm-eww/")
10710 (synopsis "Helm interface to EWW")
10711 (description "This package provides a Helm interface for EWW buffers,
10712 bookmarks and history.")
10713 (license license:gpl3+))))
10714
10715 (define-public emacs-stumpwm-mode
10716 (let ((commit "8fbe071d2c6c040794060a354eb377218dc10b35")
10717 (revision "1"))
10718 (package
10719 (name "emacs-stumpwm-mode")
10720 (version (string-append "0.0.1-" revision "."
10721 (string-take commit 7)))
10722 (source (origin
10723 (method git-fetch)
10724 (uri (git-reference
10725 (url "https://github.com/stumpwm/stumpwm-contrib.git")
10726 (commit commit)))
10727 (file-name (string-append name "-" version "-checkout"))
10728 (sha256
10729 (base32
10730 "1dfwsvz1c8w6j4jp0kzaz78ml3f5dp0a5pvf090kwpbpg176r7iq"))))
10731 (build-system emacs-build-system)
10732 (arguments
10733 `(#:phases
10734 (modify-phases %standard-phases
10735 (add-after 'unpack 'chdir-elisp
10736 ;; Elisp directory is not in root of the source.
10737 (lambda _
10738 (chdir "util/swm-emacs"))))))
10739 (home-page "https://github.com/stumpwm/stumpwm-contrib")
10740 (synopsis "Emacs minor-mode for Stumpwm")
10741 (description "Emacs minor-mode for Stumpwm")
10742 (license license:gpl3+))))
10743
10744 (define-public emacs-irfc
10745 (package
10746 (name "emacs-irfc")
10747 (version "20130824.507")
10748 (source
10749 (origin
10750 (method url-fetch)
10751 (uri "https://www.emacswiki.org/emacs/download/irfc.el")
10752 (file-name (string-append "irfc-" version ".el"))
10753 (sha256
10754 (base32
10755 "197ybqwbj8qjh2p9pkf5mvqnrkpcgmv8c5s2gvl6msyrabk0mnca"))))
10756 (build-system emacs-build-system)
10757 (home-page "https://www.emacswiki.org/emacs/download/irfc.el")
10758 (synopsis "Interface for IETF RFC document")
10759 (description
10760 "This package provides an Emacs interface for IETF RFC document.")
10761 (license license:gpl3+)))
10762
10763 (define-public emacs-ido-vertical-mode
10764 (package
10765 (name "emacs-ido-vertical-mode")
10766 (version "0.1.6")
10767 (source
10768 (origin
10769 (method url-fetch)
10770 (uri (string-append
10771 "https://github.com/creichert/ido-vertical-mode.el/archive/"
10772 "v" version ".tar.gz"))
10773 (file-name (string-append name "-" version ".tar.gz"))
10774 (sha256
10775 (base32
10776 "0dprdxq8wvqd45dinwj92k0kixr07c8xvspa6i613mjcpxgwjg53"))))
10777 (build-system emacs-build-system)
10778 (home-page "https://github.com/creichert/ido-vertical-mode.el")
10779 (synopsis "Makes ido-mode display vertically")
10780 (description "Makes ido-mode display prospects vertically.")
10781 (license license:gpl3+)))
10782
10783 (define-public emacs-wordgen
10784 (package
10785 (name "emacs-wordgen")
10786 (version "0.1.4")
10787 (source
10788 (origin
10789 (method url-fetch)
10790 (uri (string-append "https://github.com/Fanael/wordgen.el/archive/"
10791 version ".tar.gz"))
10792 (file-name (string-append name "-" version ".tar.gz"))
10793 (sha256
10794 (base32
10795 "1h2iyixdm49h53pwj9ics9gb9h3g6wa4hainpnjg6mfarf49jkmg"))))
10796 (build-system emacs-build-system)
10797 (home-page "https://github.com/Fanael/wordgen.el")
10798 (synopsis "Random word generator")
10799 (description "This package provides functions to generate random words
10800 using user-provided rules.")
10801 (license license:gpl3+)))
10802
10803 (define-public emacs-on-screen
10804 (package
10805 (name "emacs-on-screen")
10806 (version "1.3.2")
10807 (source
10808 (origin
10809 (method url-fetch)
10810 (uri (string-append
10811 "http://elpa.gnu.org/packages/on-screen-" version ".el"))
10812 (file-name (string-append name "-" version ".el"))
10813 (sha256
10814 (base32
10815 "15d18mjgv1pnwl6kf3pr5w64q1322p1l1qlfvnckglwmzy5sl2qv"))))
10816 (build-system emacs-build-system)
10817 (home-page
10818 "https://github.com/michael-heerdegen/on-screen.el")
10819 (synopsis "Guide your eyes while scrolling")
10820 (description
10821 "Scrolling can be distracting because your eyes may lose
10822 orientation. This library implements a minor mode that highlights
10823 the previously visible buffer part after each scroll.")
10824 (license license:gpl3+)))
10825
10826 (define-public emacs-highlight-escape-sequences
10827 (let ((commit "08d846a7aa748209d65fecead2b6a766c3e5cb41")
10828 (revision "1"))
10829 (package
10830 (name "emacs-highlight-escape-sequences")
10831 (version (string-append "0.0.1" "-" revision "."
10832 (string-take commit 7)))
10833 (source
10834 (origin
10835 (method git-fetch)
10836 (uri (git-reference
10837 (url "https://github.com/dgutov/highlight-escape-sequences.git")
10838 (commit commit)))
10839 (file-name (string-append name "-" version "-checkout"))
10840 (sha256
10841 (base32
10842 "05mc3w1f8ykf80914a1yddw6j8cmh0h57llm07xh89s53821v2is"))))
10843 (build-system emacs-build-system)
10844 (home-page "https://github.com/dgutov/highlight-escape-sequences")
10845 (synopsis "Highlight escape sequences in Emacs")
10846 (description "@code{highlight-escape-sequences} provides an
10847 Emacs minor mode to escape sequences in code.")
10848 (license license:gpl3+))))
10849
10850 (define-public emacs-dashboard
10851 (package
10852 (name "emacs-dashboard")
10853 (version "1.2.4")
10854 (source
10855 (origin
10856 (method url-fetch)
10857 (uri (string-append
10858 "https://github.com/rakanalh/emacs-dashboard/archive/"
10859 version ".tar.gz"))
10860 (file-name (string-append name "-" version ".tar.gz"))
10861 (sha256
10862 (base32
10863 "1738lmbgq6gk24hcwic0qjyajr21l5xzhya4pv58dw1bhd6vxv9g"))))
10864 (build-system emacs-build-system)
10865 (propagated-inputs
10866 `(("emacs-page-break-lines" ,emacs-page-break-lines)))
10867 (arguments '(#:include '("\\.el$" "\\.txt$" "\\.png$")))
10868 (home-page "https://github.com/rakanalh/emacs-dashboard")
10869 (synopsis "Startup screen extracted from Spacemacs")
10870 (description "This package provides an extensible Emacs dashboard, with
10871 sections for bookmarks, projectil projects, org-agenda and more. ")
10872 (license license:gpl3+)))
10873
10874 (define-public emacs-slime-company
10875 (package
10876 (name "emacs-slime-company")
10877 (version "1.1")
10878 (source
10879 (origin
10880 (method url-fetch)
10881 (uri (string-append "https://github.com/anwyn/slime-company/archive/"
10882 "v" version ".tar.gz"))
10883 (sha256
10884 (base32
10885 "1myl79pxj501xfr5qc5a24qddsn2l5iaamg7rf7fpny7mr9v70ar"))
10886 (file-name (string-append name "-" version ".tar.gz"))))
10887 (build-system emacs-build-system)
10888 (propagated-inputs
10889 `(("emacs-slime" ,emacs-slime)
10890 ("emacs-company" ,emacs-company)))
10891 (home-page "https://company-mode.github.io")
10892 (synopsis "SLIME completion backend for @code{company-mode}")
10893 (description
10894 "This is a backend implementation for the completion package
10895 @code{company-mode} which supports the normal and the fuzzy completion
10896 modes of SLIME.")
10897 (license license:gpl3+)))
10898
10899 (define-public emacs-sml-mode
10900 (package
10901 (name "emacs-sml-mode")
10902 (version "6.8")
10903 (source
10904 (origin
10905 (method url-fetch)
10906 (uri (string-append "http://elpa.gnu.org/packages/sml-mode-"
10907 version ".el"))
10908 (sha256
10909 (base32
10910 "105fcrz5qp95f2n3fdm3awr6z58sbrjihjss6qnrg4lz2ggbc328"))))
10911 (build-system emacs-build-system)
10912 (home-page "http://elpa.gnu.org/packages/sml-mode.html")
10913 (synopsis "Major mode for editing (Standard) ML")
10914 (description "SML-MODE is a major Emacs mode for editing Standard ML.
10915 It provides syntax highlighting and automatic indentation and
10916 comes with sml-proc which allows interaction with an inferior SML
10917 interactive loop.")
10918 (license license:gpl3+)))
10919
10920 (define-public emacs-eros
10921 (let ((commit "a42e45c9b2397156c684330b0fc90ee0eba773f5")
10922 (revision "1"))
10923 (package
10924 (name "emacs-eros")
10925 (version (string-append "0.0.1" "-" revision "."
10926 (string-take commit 7)))
10927 (source
10928 (origin
10929 (method git-fetch)
10930 (uri (git-reference
10931 (url "https://github.com/xiongtx/eros.git")
10932 (commit commit)))
10933 (file-name (string-append name "-" version "-checkout"))
10934 (sha256
10935 (base32
10936 "0whlsq90v13fz69k3wjrwcwb9gkpfxqjd75mg3nrp85j9nwhb5i4"))))
10937 (build-system emacs-build-system)
10938 (home-page "https://github.com/xiongtx/eros")
10939 (synopsis "Evaluation result overlays")
10940 (description "@code{eros} provides evaluation result overlays.")
10941 (license license:gpl3+))))
10942
10943 (define-public emacs-stickyfunc-enhance
10944 (let ((commit "13bdba51fcd83ccbc3267959d23afc94d458dcb0")
10945 (revision "1"))
10946 (package
10947 (name "emacs-stickyfunc-enhance")
10948 (version "0.1")
10949 (source
10950 (origin
10951 (method git-fetch)
10952 (uri (git-reference
10953 (url "https://github.com/tuhdo/semantic-stickyfunc-enhance.git")
10954 (commit commit)))
10955 (file-name (string-append name "-" version "-checkout"))
10956 (sha256
10957 (base32
10958 "16dxjsr5nj20blww4xpd4jzgjprzzh1nwvb810ggdmp9paf4iy0g"))))
10959 (build-system emacs-build-system)
10960 (home-page "https://github.com/tuhdo/semantic-stickyfunc-enhance")
10961 (synopsis "Enhancement to stock @code{semantic-stickyfunc-mode}")
10962 (description
10963 "@code{semantic-stickyfunc-mode} shows the function point is currently
10964 in at the first line of the current buffer. This is useful when you have a
10965 very long function that spreads more than a screen, and you don't have to
10966 scroll up to read the function name and then scroll down to original position.")
10967 (license license:gpl3+))))
10968
10969 (define-public emacs-git-auto-commit-mode
10970 (package
10971 (name "emacs-git-auto-commit-mode")
10972 (version "4.4.0")
10973 (source
10974 (origin
10975 (method url-fetch)
10976 (uri (string-append
10977 "https://github.com/ryuslash/git-auto-commit-mode/archive/"
10978 version ".tar.gz"))
10979 (file-name (string-append name "-" version ".tar.gz"))
10980 (sha256
10981 (base32
10982 "04avxmalsl3b7zi2vipfw9rb4wrwysnipsbch96skviql9axk870"))))
10983 (build-system emacs-build-system)
10984 (home-page "https://github.com/ryuslash/git-auto-commit-mode")
10985 (synopsis "Emacs Minor mode to automatically commit and push")
10986 (description "@code{git-auto-commit-mode} is an Emacs minor mode that
10987 tries to commit changes to a file after every save.
10988
10989 When @code{gac-automatically-push-p} is non-nil, it also tries to push to
10990 the current upstream.")
10991 (license license:gpl3+)))
10992
10993 (define-public emacs-company-restclient
10994 (package
10995 (name "emacs-company-restclient")
10996 (version "0.1.0")
10997 (source
10998 (origin
10999 (method url-fetch)
11000 (uri (string-append
11001 "https://github.com/iquiw/company-restclient/archive/"
11002 "v" version ".tar.gz"))
11003 (file-name (string-append name "-" version ".tar.gz"))
11004 (sha256
11005 (base32
11006 "1kr3f0wgqlk7r171bvb2kinv7fanwj2md01wdpx04qkgwcr1as00"))))
11007 (build-system emacs-build-system)
11008 (propagated-inputs
11009 `(("emacs-company" ,emacs-company)
11010 ("emacs-know-your-http-well" ,emacs-know-your-http-well)
11011 ("emacs-restclient" ,emacs-restclient)))
11012 (home-page "https://github.com/iquiw/company-restclient")
11013 (synopsis "Company-mode completion back-end for restclient-mode")
11014 (description "@code{company-mode} back-end for
11015 @code{restclient-mode}.
11016
11017 It provides auto-completion for HTTP methods and headers in
11018 @code{restclient-mode}. Completion source is given by
11019 @code{know-your-http-well}.")
11020 (license license:gpl3+)))
11021
11022 (define-public emacs-noflet
11023 (let ((version "20170629")
11024 (revision "1")
11025 (commit "7ae84dc3257637af7334101456dafe1759c6b68a"))
11026 (package
11027 (name "emacs-noflet")
11028 (version (git-version version revision commit))
11029 (source
11030 (origin
11031 (method git-fetch)
11032 (uri (git-reference
11033 (url "https://github.com/nicferrier/emacs-noflet")
11034 (commit commit)))
11035 (file-name (string-append name "-" version "-checkout"))
11036 (sha256
11037 (base32
11038 "0g70gnmfi8n24jzfci9nrj0n9bn1qig7b8f9f325rin8h7x32ypf"))))
11039 (build-system emacs-build-system)
11040 (arguments
11041 `(#:phases
11042 (modify-phases %standard-phases
11043 (add-after 'unpack 'require-dash
11044 ;; noflet.el uses -map from dash, but (require 'dash) is
11045 ;; missing. So, add it.
11046 (lambda _
11047 (substitute* "noflet.el"
11048 ((";;; Code:") ";;; Code:\n(require 'dash)"))
11049 #t)))))
11050 (propagated-inputs
11051 `(("emacs-dash" ,emacs-dash)))
11052 (home-page "https://github.com/nicferrier/emacs-noflet")
11053 (synopsis "Locally override functions")
11054 (description "@code{emacs-noflet} let's you locally override functions,
11055 in the manner of @command{flet}, but with access to the original function
11056 through the symbol: @command{this-fn}.")
11057 (license license:gpl3+))))
11058
11059 (define-public emacs-dumb-jump
11060 (package
11061 (name "emacs-dumb-jump")
11062 (version "0.5.2")
11063 (source
11064 (origin
11065 (method url-fetch)
11066 (uri (string-append
11067 "https://github.com/jacktasia/dumb-jump/archive/v"
11068 version ".tar.gz"))
11069 (file-name (string-append name "-" version ".tar.gz"))
11070 (sha256
11071 (base32
11072 "07n0xjgpxjpf3vp9gxchkjpydyj0zm166930as0kwiwkhjlsirsf"))))
11073 (build-system emacs-build-system)
11074 (arguments
11075 `(#:tests? #f ; FIXME: Tests freeze when run.
11076 #:test-command '("ert-runner")
11077 #:phases
11078 (modify-phases %standard-phases
11079 (add-after 'unpack 'set-shell
11080 (lambda _
11081 ;; Setting the SHELL environment variable is required for the
11082 ;; tests to find sh.
11083 (setenv "SHELL" (which "sh"))
11084 #t)))))
11085 (native-inputs
11086 `(("emacs-el-mock" ,emacs-el-mock)
11087 ("emacs-noflet" ,emacs-noflet)
11088 ("emacs-undercover" ,emacs-undercover)
11089 ("ert-runner" ,emacs-ert-runner)))
11090 (propagated-inputs
11091 `(("emacs-f" ,emacs-f)
11092 ("emacs-popup" ,emacs-popup)))
11093 (home-page "https://github.com/jacktasia/dumb-jump")
11094 (synopsis "Jump to definition for multiple languages without configuration")
11095 (description "Dumb Jump is an Emacs \"jump to definition\" package with
11096 support for multiple programming languages that favors \"just working\" over
11097 speed or accuracy. This means minimal --- and ideally zero --- configuration
11098 with absolutely no stored indexes (tags) or persistent background processes.
11099 Dumb Jump performs best with The Silver Searcher @command{ag} or ripgrep
11100 @command{rg} installed.")
11101 (license license:gpl3+)))
11102
11103 (define-public emacs-dts-mode
11104 (let ((commit "9ee0854446dcc6c53d2b8d2941051768dba50344")
11105 (revision "1"))
11106 (package
11107 (name "emacs-dts-mode")
11108 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
11109 (source
11110 (origin
11111 (method git-fetch)
11112 (uri (git-reference
11113 (url "https://github.com/bgamari/dts-mode.git")
11114 (commit commit)))
11115 (file-name (string-append name "-" version "-checkout"))
11116 (sha256
11117 (base32
11118 "1k8lljdbc90nd29xrhdrsscxavzdq532wq2mg7ljc94krj7538b1"))))
11119 (build-system emacs-build-system)
11120 (home-page "https://github.com/bgamari/dts-mode.git")
11121 (synopsis "Emacs minor mode for editing device tree files")
11122 (description
11123 "This package provides an Emacs minor mode for highlighting
11124 device tree files.")
11125 (license license:gpl3+))))
11126
11127 (define-public emacs-daemons
11128 (package
11129 (name "emacs-daemons")
11130 (version "1.2.0")
11131 (source
11132 (origin
11133 (method git-fetch)
11134 (uri (git-reference
11135 (url "https://github.com/cbowdon/daemons.el")
11136 (commit version)))
11137 (file-name (string-append name "-" version "-checkout"))
11138 (sha256
11139 (base32
11140 "00ijgm22ck76gw0x79krl05yy0m8a502yfakazfy5xhpn1zi6ab7"))))
11141 (build-system emacs-build-system)
11142 (home-page "https://github.com/cbowdon/daemons.el")
11143 (synopsis "Emacs UI for managing init system services")
11144 (description
11145 "This is an Emacs mode to give you a UI for managing init system
11146 daemons (services) for those getting tired of typing out @code{sudo service
11147 my_thing reload} all the time. It offers a consistent UI over different init
11148 systems.")
11149 (license license:gpl3+)))
11150
11151 (define-public emacs-esh-autosuggest
11152 (package
11153 (name "emacs-esh-autosuggest")
11154 (version "2.0.0")
11155 (source
11156 (origin
11157 (method git-fetch)
11158 (uri (git-reference
11159 (url "https://github.com/dieggsy/esh-autosuggest")
11160 (commit version)))
11161 (file-name (string-append name "-" version "-checkout"))
11162 (sha256
11163 (base32
11164 "116pdjgpjy9b0psm5kzwkwy7dq8vn0p6dy75dl1zsy2xrjf1iqdw"))))
11165 (build-system emacs-build-system)
11166 (propagated-inputs `(("emacs-company" ,emacs-company)))
11167 (home-page "https://github.com/dieggsy/esh-autosuggest")
11168 (synopsis "Fish-like autosuggestions in Eshell")
11169 (description
11170 "This package assumes you use something other than company for eshell
11171 completion (e.g. @code{eshell-pcomplete}, @code{completion-at-point},
11172 @code{helm-esh-pcomplete}). @code{company-mode} is used solely as a mechanism
11173 for history autosuggestions.
11174
11175 Unless you're using @code{use-package}'s hook keyword, you can enable the
11176 autosuggestions with:
11177 @code{(add-hook 'eshell-mode-hook #'esh-autosuggest-mode)}")
11178 (license license:gpl3+)))
11179
11180 (define-public emacs-desktop-environment
11181 (package
11182 (name "emacs-desktop-environment")
11183 (version "0.2.0")
11184 (source
11185 (origin
11186 (method git-fetch)
11187 (uri (git-reference
11188 (url "https://github.com/DamienCassou/desktop-environment.git")
11189 (commit (string-append "v" version))))
11190 (file-name (string-append name "-" version "-checkout"))
11191 (sha256
11192 (base32
11193 "1fal3yfmqg10cb53qsf5gsq2gvyz9w16wmlpnpjwjzwnjfn6l73r"))))
11194 (build-system emacs-build-system)
11195 (home-page "https://gitlab.petton.fr/DamienCassou/desktop-environment")
11196 (synopsis "Control your GNU/Linux desktop environment from Emacs")
11197 (description
11198 "This package helps you control your GNU/Linux desktop from Emacs.
11199 With @code{desktop-environment}, you can control the brightness and volume as
11200 well as take screenshots and lock your screen. The package depends on the
11201 availability of shell commands to do the hard work for us. These commands can
11202 be changed by customizing the appropriate variables.")
11203 (license license:gpl3+)))
11204
11205 (define-public emacs-org-caldav
11206 (package
11207 (name "emacs-org-caldav")
11208 (version "20180403")
11209 (source
11210 (origin
11211 (method url-fetch)
11212 (uri (string-append
11213 "https://github.com/dengste/org-caldav/raw/"
11214 "8d3492c27a09f437d2d94f2736c56d7652e87aa0"
11215 "/org-caldav.el"))
11216 (sha256
11217 (base32
11218 "1fh4gh68ddj0is99z2ccyh97v6psnyda61n2dsadzqhcxn51amlc"))))
11219 (build-system emacs-build-system)
11220 (propagated-inputs `(("emacs-org" ,emacs-org)))
11221 (home-page "https://github.com/dengste/org-caldav")
11222 (synopsis
11223 "Sync Org files with external calendars via the CalDAV protocol")
11224 (description
11225 "Synchronize between events in Org-mode files and a CalDAV calendar.
11226 This code is still alpha.")
11227 (license license:gpl3+)))
11228
11229 (define-public emacs-zotxt
11230 (package
11231 (name "emacs-zotxt")
11232 (version "20180518")
11233 (source
11234 (origin
11235 (method url-fetch)
11236 (uri (string-append
11237 "https://github.com/egh/zotxt-emacs/archive/"
11238 "23a4a9f74a658222027d53a9a83cd4bcc583ca8b"
11239 ".tar.gz"))
11240 (sha256
11241 (base32
11242 "1qlibaciqgsva6fc7vv9krssjq00bi880396jk7llbi3c52q9n1y"))))
11243 (build-system emacs-build-system)
11244 (propagated-inputs
11245 `(("emacs-deferred" ,emacs-deferred)
11246 ("emacs-request" ,emacs-request)))
11247 (home-page "https://github.com/egh/zotxt-emacs")
11248 (synopsis "Integrate Emacs with Zotero")
11249 (description "This package provides two integration features between Emacs
11250 and the Zotero research assistant: Insertion of links to Zotero items into an
11251 Org-mode file, and citations of Zotero items in Pandoc Markdown files.")
11252 (license license:gpl3+)))
11253
11254 (define-public emacs-evil-ediff
11255 ;; Evil-Ediff is included in Evil Collection from 20180617.
11256 (deprecated-package "emacs-evil-ediff" emacs-evil-collection))
11257
11258 (define-public emacs-evil-magit
11259 (let ((commit "dbf5a646a7ce1c35c229dfdc423bd5ecd927a3a8"))
11260 (package
11261 (name "emacs-evil-magit")
11262 (version (git-version "0.4.2" "1" commit))
11263 (source
11264 (origin
11265 (method git-fetch)
11266 (uri (git-reference
11267 (url "https://github.com/emacs-evil/evil-magit")
11268 (commit commit)))
11269 (file-name (string-append name "-" version "-checkout"))
11270 (sha256
11271 (base32
11272 "0ya0dkviq4pi92ab69a4j674y5r1hc1x3x7r7hlm97ag3a6zfkav"))))
11273 (build-system emacs-build-system)
11274 (propagated-inputs
11275 `(("emacs-evil" ,emacs-evil)
11276 ("magit" ,emacs-magit)))
11277 (home-page
11278 "https://github.com/emacs-evil/evil-magit")
11279 (synopsis "Evil-based key bindings for Magit")
11280 (description
11281 "This Emacs library configures Magit and Evil to play well with each other.
11282 For some background see @url{https://github.com/magit/evil-magit/issues/1}.
11283 See the README at @url{https://github.com/justbur/evil-magit} for a table
11284 describing the key binding changes.")
11285 (license license:gpl3+))))
11286
11287 (define-public emacs-evil-mu4e
11288 ;; Evil-mu4e is included in Evil Collection from 20180617.
11289 (deprecated-package "emacs-evil-mu4e" emacs-evil-collection))
11290
11291 (define-public emacs-evil-multiedit
11292 (let ((commit "ea3d9177b74ab0bc65e55df9cc0a0b42e4ef815d"))
11293 (package
11294 (name "emacs-evil-multiedit")
11295 (version (git-version "1.3.9" "1" commit))
11296 (source
11297 (origin
11298 (method git-fetch)
11299 (uri (git-reference
11300 (url "https://github.com/hlissner/evil-multiedit")
11301 (commit commit)))
11302 (file-name (string-append name "-" version "-checkout"))
11303 (sha256
11304 (base32
11305 "17zm35r474z8ras4xy7124pcb972d385pbdv4jxyj5vq042vq07w"))))
11306 (build-system emacs-build-system)
11307 (propagated-inputs
11308 `(("emacs-evil" ,emacs-evil)
11309 ("emacs-iedit" ,emacs-iedit)))
11310 (home-page
11311 "https://github.com/hlissner/evil-multiedit")
11312 (synopsis "Multiple cursors for Evil mode")
11313 (description
11314 "This plugin was an answer to the lack of proper multiple cursor support
11315 in Emacs+Evil. It allows you to select and edit matches interactively,
11316 integrating @code{iedit-mode} into Evil mode with an attempt at sensible
11317 defaults.")
11318 (license license:gpl3+))))
11319
11320 (define-public emacs-evil-org
11321 (let ((commit "b6d652a9163d3430a9e0933a554bdbee5244bbf6"))
11322 (package
11323 (name "emacs-evil-org")
11324 (version (git-version "0.1.1" "1" commit))
11325 (source
11326 (origin
11327 (method git-fetch)
11328 (uri (git-reference
11329 (url "https://github.com/Somelauw/evil-org-mode")
11330 (commit commit)))
11331 (file-name (string-append name "-" version "-checkout"))
11332 (sha256
11333 (base32
11334 "176hrw7y7nczffbyhsa167b8rvfacsmcafm2gpkrdjqlrikbmrhl"))))
11335 (build-system emacs-build-system)
11336 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
11337 (home-page
11338 "https://github.com/Somelauw/evil-org-mode")
11339 (synopsis "Evil keybindings for Org mode")
11340 (description
11341 "This package adds supplemental Evil mode key-bindings to Emacs
11342 Org-mode. It features:
11343 @itemize
11344 @item normal, visual and insert mode bindings;
11345 @item key bindings organised in key themes;
11346 @item operators like > and < to work on headings;
11347 @item text objects;
11348 @item table support;
11349 @item calendar (date selection) support;
11350 @item agenda support.
11351 @end itemize\n")
11352 (license license:gpl3+))))
11353
11354 (define-public emacs-fish-completion
11355 (let ((commit "bac15fda1392a891070574dfe5d2d50b10831e8b"))
11356 (package
11357 (name "emacs-fish-completion")
11358 (version (git-version "20180616" "1" commit))
11359 (source
11360 (origin
11361 (method url-fetch)
11362 (uri (string-append
11363 "https://gitlab.com/Ambrevar/emacs-fish-completion/repository/"
11364 "archive.tar.gz?ref="
11365 commit))
11366 (sha256
11367 (base32
11368 "093qzdrbkl7dhjk16zq8i13kh1phyigkblcfrbgbrxjqd2ndrfdi"))))
11369 (build-system emacs-build-system)
11370 (inputs `(("fish" ,fish)))
11371 (arguments
11372 `(#:phases
11373 (modify-phases %standard-phases
11374 (add-after 'unpack 'configure
11375 (lambda* (#:key inputs outputs #:allow-other-keys)
11376 (let ((fish (assoc-ref inputs "fish")))
11377 ;; Specify the absolute file names of the various
11378 ;; programs so that everything works out-of-the-box.
11379 (emacs-substitute-variables
11380 "fish-completion.el"
11381 ("fish-completion-command"
11382 (string-append fish "/bin/fish")))))))))
11383 (home-page
11384 "https://gitlab.com/Ambrevar/emacs-fish-completion")
11385 (synopsis "Fish completion for Emacs pcomplete")
11386 (description
11387 "This package provides completion for the Fish shell to pcomplete (used
11388 by shell and Eshell). You can set it up globally with:
11389
11390 @example
11391 (when (and (executable-find \"fish\")
11392 (require 'fish-completion nil t))
11393 (global-fish-completion-mode))
11394 @end example
11395
11396 Alternatively, you can call the @code{fish-completion-mode} manually or in
11397 shell/Eshell mode hook.
11398
11399 The package @code{emacs-bash-completion} is an optional dependency: if available,
11400 @code{fish-completion-complete} can be configured to fall back on bash to further
11401 try completing. See @code{fish-completion-fallback-on-bash-p}.")
11402 (license license:gpl3+))))
11403
11404 (define-public emacs-gif-screencast
11405 (let ((commit "12b25442b97b84abae74ecb5190a9d14ff7cfe5a"))
11406 (package
11407 (name "emacs-gif-screencast")
11408 (version (git-version "20180616" "1" commit))
11409 (source
11410 (origin
11411 (method url-fetch)
11412 (uri (string-append
11413 "https://gitlab.com/Ambrevar/emacs-gif-screencast/"
11414 "repository/archive.tar.gz?ref="
11415 commit))
11416 (sha256
11417 (base32
11418 "0lc457i78xjkn5idr2aaiadkh76zcsksj84z0qh80a9y775syrgh"))))
11419 (build-system emacs-build-system)
11420 (inputs
11421 `(("scrot" ,scrot)
11422 ("imagemagick" ,imagemagick)
11423 ("gifsicle" ,gifsicle)))
11424 (arguments
11425 `(#:phases
11426 (modify-phases %standard-phases
11427 (add-after 'unpack 'configure
11428 (lambda* (#:key inputs outputs #:allow-other-keys)
11429 (let ((scrot (assoc-ref inputs "scrot"))
11430 (imagemagick (assoc-ref inputs "imagemagick"))
11431 (gifsicle (assoc-ref inputs "gifsicle")))
11432 ;; Specify the absolute file names of the various
11433 ;; programs so that everything works out-of-the-box.
11434 (emacs-substitute-variables
11435 "gif-screencast.el"
11436 ("gif-screencast-program"
11437 (string-append scrot "/bin/scrot"))
11438 ("gif-screencast-convert-program"
11439 (string-append imagemagick "/bin/convert"))
11440 ("gif-screencast-cropping-program"
11441 (string-append imagemagick "/bin/mogrify"))
11442 ("gif-screencast-optimize-program"
11443 (string-append imagemagick "/bin/gifsicle")))))))))
11444 (home-page
11445 "https://gitlab.com/Ambrevar/emacs-gif-screencast")
11446 (synopsis "One-frame-per-action GIF recording")
11447 (description
11448 "Call @code{gif-screencast} to start a recording.
11449 A screenshot is taken for every user action. Call
11450 @code{gif-screencast-stop} (<f9> by default) to finish recording and create
11451 the GIF result.")
11452 (license license:gpl3+))))
11453
11454 (define-public emacs-google-translate
11455 (package
11456 (name "emacs-google-translate")
11457 (version "0.11.15")
11458 (source
11459 (origin
11460 (method url-fetch)
11461 (uri (string-append "https://github.com/atykhonov/google-translate/"
11462 "archive/v" version ".tar.gz"))
11463 (file-name (string-append name "-" version ".tar.gz"))
11464 (sha256
11465 (base32
11466 "1zxvfagbaf5mxi528mz33c8vxdk86wj0xx5y2jfy97wi8dzrwn3g"))))
11467 (build-system emacs-build-system)
11468 (home-page "https://github.com/atykhonov/google-translate")
11469 (synopsis "Emacs interface to Google Translate")
11470 (description
11471 "This packages provides an Emacs interface to the Google Translate
11472 on-line service.")
11473 (license license:gpl3+)))
11474
11475 (define-public emacs-helm-company
11476 (let ((commit "acc9c7901e094c1591327a0db1ec7a439f67a84d"))
11477 (package
11478 (name "emacs-helm-company")
11479 (version (git-version "0.2.2" "1" commit))
11480 (source
11481 (origin
11482 (method git-fetch)
11483 (uri (git-reference
11484 (url "https://github.com/Sodel-the-Vociferous/helm-company")
11485 (commit commit)))
11486 (file-name (string-append name "-" version "-checkout"))
11487 (sha256
11488 (base32
11489 "1d4q9clp0q56br80c21a4wz1gc4jw3mdy97z9mq07x9i8rhlppzs"))))
11490 (build-system emacs-build-system)
11491 (propagated-inputs
11492 `(("emacs-helm" ,emacs-helm)
11493 ("emacs-company" ,emacs-company)))
11494 (home-page "https://github.com/Sodel-the-Vociferous/helm-company")
11495 (synopsis "Helm interface for company-mode")
11496 (description
11497 "This is a Helm interface to company-mode, a text completion
11498 framework.")
11499 (license license:gpl3+))))
11500
11501 (define-public emacs-helm-descbinds
11502 (let ((commit "033be73f21778633813264ce1634a6e1ad873d8e"))
11503 (package
11504 (name "emacs-helm-descbinds")
11505 (version (git-version "1.13" "1" commit))
11506 (source
11507 (origin
11508 (method git-fetch)
11509 (uri (git-reference
11510 (url "https://github.com/emacs-helm/helm-descbinds")
11511 (commit commit)))
11512 (file-name (string-append name "-" version "-checkout"))
11513 (sha256
11514 (base32
11515 "1n89p56qwa243w1c85i5awnaf7piwjsvfi7nmnsrwm33hix5dknk"))))
11516 (build-system emacs-build-system)
11517 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
11518 (home-page "https://github.com/emacs-helm/helm-descbinds")
11519 (synopsis "Convenient @code{describe-bindings} with Helm")
11520 (description
11521 "This package is a replacement of @code{describe-bindings} for Helm.
11522 @code{describe-bindings} is replaced with @code{helm-descbinds}. As usual,
11523 type @code{C-h b}, or any incomplete key sequence plus @code{C-h}, to run
11524 @code{helm-descbinds}. The bindings are presented in a similar way as
11525 @code{describe-bindings} does, but you can use completion to find the command
11526 you searched for and execute it, or view its documentation.")
11527 (license license:gpl3+))))
11528
11529 (define-public emacs-helm-emms
11530 (let ((commit "d3f9bdef8ff0d093eaf6e26af50ea905ab53fdec"))
11531 (package
11532 (name "emacs-helm-emms")
11533 (version (git-version "1.3" "1" commit))
11534 (source
11535 (origin
11536 (method git-fetch)
11537 (uri (git-reference
11538 (url "https://github.com/emacs-helm/helm-emms")
11539 (commit commit)))
11540 (file-name (string-append name "-" version "-checkout"))
11541 (sha256
11542 (base32
11543 "0bdb8xp0yp3gijpa9i2rc17gfzjhzlm92vdzw93i10qpd1xhj4aa"))))
11544 (build-system emacs-build-system)
11545 (propagated-inputs
11546 `(("emacs-helm" ,emacs-helm)
11547 ("emacs-emms" ,emacs-emms)))
11548 (home-page
11549 "https://github.com/emacs-helm/helm-emms")
11550 (synopsis "Emms for Helm")
11551 (description "Helm interface for Emms to browse all tracks and all folders
11552 from @code{emms-source-file-default-directory}.")
11553 (license license:gpl3+))))
11554
11555 (define-public emacs-helm-exwm
11556 (let ((commit "56266f261ba3b3d2753b374b50da20eb768c06f5"))
11557 (package
11558 (name "emacs-helm-exwm")
11559 (version (git-version "20180703" "2" commit))
11560 (source
11561 (origin
11562 (method url-fetch)
11563 (uri (string-append
11564 "https://github.com/emacs-helm/helm-exwm/archive/"
11565 commit
11566 ".tar.gz"))
11567 (sha256
11568 (base32
11569 "0n7hdiajw5vxl8ha2r9r4cl4i7crza25348825wb6acwhhzijxcj"))))
11570 (build-system emacs-build-system)
11571 (propagated-inputs
11572 `(("emacs-helm" ,emacs-helm)
11573 ("emacs-exwm" ,emacs-exwm)))
11574 (home-page
11575 "https://github.com/emacs-helm/helm-exwm")
11576 (synopsis "Helm for EXWM buffers")
11577 (description
11578 "@code{helm-exwm} runs a Helm session over the list of EXWM buffers.
11579 @code{helm-exwm-switch} is a convenience X application launcher using Helm to
11580 switch between the various windows of one or several specific applications.
11581 See @code{helm-exwm-switch-browser} for an example.")
11582 (license license:gpl3+))))
11583
11584 (define-public emacs-helm-flycheck
11585 (let ((commit "3cf7d3bb194acacc6395f88360588013d92675d6"))
11586 (package
11587 (name "emacs-helm-flycheck")
11588 (version (git-version "0.4" "1" commit))
11589 (source
11590 (origin
11591 (method git-fetch)
11592 (uri (git-reference
11593 (url "https://github.com/yasuyk/helm-flycheck")
11594 (commit commit)))
11595 (file-name (string-append name "-" version "-checkout"))
11596 (sha256
11597 (base32
11598 "1a2yfxhz04klwhcandqvfzysxp6b7bxyxx1xk1x3kds5hif5fkl4"))))
11599 (build-system emacs-build-system)
11600 (propagated-inputs
11601 `(("emacs-dash" ,emacs-dash)
11602 ("emacs-flycheck" ,emacs-flycheck)
11603 ("emacs-helm" ,emacs-helm)))
11604 (home-page "https://github.com/yasuyk/helm-flycheck")
11605 (synopsis "Show Flycheck errors with Helm")
11606 (description
11607 "This integrates Flycheck with Helm.")
11608 (license license:gpl3+))))
11609
11610 (define-public emacs-helm-ls-git
11611 (let ((commit "76654c776a7f6e2e5290645e748aac2a746f7daa"))
11612 (package
11613 (name "emacs-helm-ls-git")
11614 (version (git-version "1.9.1" "1" commit))
11615 (source
11616 (origin
11617 (method git-fetch)
11618 (uri (git-reference
11619 (url "https://github.com/emacs-helm/helm-ls-git")
11620 (commit commit)))
11621 (file-name (string-append name "-" version "-checkout"))
11622 (sha256
11623 (base32
11624 "0vsq1n3xl3ghy5zik2scm7jrs501n4kybdqd6yw6j0cv4jxdqbr0"))))
11625 (build-system emacs-build-system)
11626 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
11627 (home-page "https://github.com/emacs-helm/helm-ls-git")
11628 (synopsis "Helm interface for listing the files in a Git repository")
11629 (description
11630 "This package provides a Helm interface for Git files.
11631 @itemize
11632 @item Display the open buffers in project.
11633 @item Display a status source showing state of project (modified files etc.).
11634 @item Display a list of all files in project under git control.
11635 @item Quickly look at diffs of modified files.
11636 @item Allow switching to @code{git status} with your preferred frontend
11637 (vc-dir, Magit,etc.).
11638 @item Full integration of git-grep, also allow usage of @code{helm-grep} (you
11639 can use ack-grep instead of grep).
11640 @item Integrate usage of gid from id-utils.
11641 @item Full integration with @code{helm-find-files}, allow you to browse
11642 projects unrelated to current-buffer.
11643 @item In addition, all actions of type files and buffers are provided.
11644 @end itemize\n")
11645 (license license:gpl3+))))
11646
11647 (define-public emacs-helm-mu
11648 (let ((commit "77e6fea24e01481418738421dbcfe28ef1bd63cf"))
11649 (package
11650 (name "emacs-helm-mu")
11651 (version (git-version "20180513" "1" commit))
11652 (source
11653 (origin
11654 (method url-fetch)
11655 (uri (string-append
11656 "https://github.com/emacs-helm/helm-mu/archive/"
11657 commit
11658 ".tar.gz"))
11659 (sha256
11660 (base32
11661 "0qm4xi3i957scm50nar398pv4x8y03si10l77jb9ckjaviyq2hj9"))))
11662 (build-system emacs-build-system)
11663 (propagated-inputs
11664 `(("emacs-helm" ,emacs-helm)
11665 ("mu" ,mu)))
11666 (home-page
11667 "https://github.com/emacs-helm/helm-mu")
11668 (synopsis
11669 "Helm sources for searching emails and contacts")
11670 (description
11671 "Helm sources for searching emails and contacts using @code{mu} and
11672 @code{mu4e}. Mu is an indexer for maildirs and mu4e is a mutt-like MUA for
11673 Emacs build on top of mu. Mu is highly efficient making it possible to get
11674 instant results even for huge maildirs. It also provides search operators,
11675 e.g: @code{from:Peter to:Anne flag:attach search term}.")
11676 (license license:gpl3+))))
11677
11678 (define-public emacs-helm-pass
11679 (let ((commit "ebcbef1a962795a36e3491ae926e2a4b8a8b0ebb"))
11680 (package
11681 (name "emacs-helm-pass")
11682 (version (git-version "20180416" "1" commit))
11683 (source
11684 (origin
11685 (method url-fetch)
11686 (uri (string-append
11687 "https://github.com/jabranham/helm-pass/archive/"
11688 commit
11689 ".tar.gz"))
11690 (sha256
11691 (base32
11692 "1pgq4hj9wvz7z2fyxwsvbh6rmc1akya84v382nx26rr76iavz6wi"))))
11693 (build-system emacs-build-system)
11694 (propagated-inputs
11695 `(("emacs-helm" ,emacs-helm)
11696 ("emacs-password-store" ,emacs-password-store)))
11697 (home-page
11698 "https://github.com/jabranham/helm-pass")
11699 (synopsis "Helm interface to pass, the standard Unix password manager")
11700 (description
11701 "Users of @code{helm-pass} may also be interested in functionality
11702 provided by other Emacs packages dealing with pass:
11703 @itemize
11704 @item @code{emacs-password-store}, which @code{helm-pass} relies on.
11705 @item @code{emacs-pass}, a major mode for @code{pass}.
11706 @item @code{auth-source-pass.el}: integration of Emacs' auth-source with
11707 @code{pass}, included in Emacs 26+).
11708 @end itemize\n")
11709 (license license:gpl3+))))
11710
11711 (define-public emacs-image+
11712 (let ((commit "6834d0c09bb4df9ecc0d7a559bd7827fed48fffc"))
11713 (package
11714 (name "emacs-image+")
11715 (version (git-version "0.6.2" "1" commit))
11716 (source
11717 (origin
11718 (method git-fetch)
11719 (uri (git-reference
11720 (url "https://github.com/mhayashi1120/Emacs-imagex")
11721 (commit commit)))
11722 (file-name (string-append name "-" version "-checkout"))
11723 (sha256
11724 (base32
11725 "0v66wk9nh0raih4jhrzmmyi5lbysjnmbv791vm2230ffi2hmwxnd"))))
11726 (build-system emacs-build-system)
11727 (inputs `(("imagemagick" ,imagemagick)))
11728 (arguments
11729 `(#:phases
11730 (modify-phases %standard-phases
11731 (add-after 'unpack 'configure
11732 (lambda* (#:key inputs outputs #:allow-other-keys)
11733 (let ((imagemagick (assoc-ref inputs "imagemagick")))
11734 ;; Specify the absolute file names of the various
11735 ;; programs so that everything works out-of-the-box.
11736 (chmod "image+.el" #o666)
11737 (emacs-substitute-variables
11738 "image+.el"
11739 ("imagex-convert-command"
11740 (string-append imagemagick "/bin/convert"))
11741 ("imagex-identify-command"
11742 (string-append imagemagick "/bin/identify")))))))))
11743 (home-page "https://github.com/mhayashi1120/Emacs-imagex")
11744 (synopsis "Image manipulation extensions for Emacs")
11745 (description
11746 "Image+ provides keybindings allowing you to zoom in or zoom out of an
11747 image, rotate it, save modified images, and more.")
11748 (license license:gpl3+))))
11749
11750 (define-public emacs-package-lint
11751 (let ((commit "69bb89d00ba212b734c676ad056aa793c450b288"))
11752 (package
11753 (name "emacs-package-lint")
11754 (version (git-version "0.5" "1" commit))
11755 (source
11756 (origin
11757 (method git-fetch)
11758 (uri (git-reference
11759 (url "https://github.com/purcell/package-lint")
11760 (commit commit)))
11761 (file-name (string-append name "-" version "-checkout"))
11762 (sha256
11763 (base32
11764 "1hfricsgmy3x9snnd2p4xq6vnnv94qdsxxnxp07b3hqc9bhw31rq"))))
11765 (build-system emacs-build-system)
11766 (home-page "https://github.com/purcell/package-lint")
11767 (synopsis "Linting library for elisp package authors")
11768 (description
11769 "This provides a list of issues with the Emacs package metadata of a file,
11770 e.g. the package dependencies it requires. See function
11771 @code{package-lint-buffer}. Checks will currently be enabled only if a
11772 \"Package-Requires:\" or \"Package-Version:\" header is present in the
11773 file.")
11774 (license license:gpl3+))))
11775
11776 (define-public emacs-picpocket
11777 (let ((version "40")
11778 (commit "6fd88b8711c4370662c0f9c462170187d092a046"))
11779 (package
11780 (name "emacs-picpocket")
11781 (version version)
11782 (source
11783 (origin
11784 (method git-fetch)
11785 (uri (git-reference
11786 (url "https://github.com/johanclaesson/picpocket")
11787 (commit commit)))
11788 (file-name (git-file-name name version))
11789 (sha256
11790 (base32 "1mdzzxf7xm7zwrpnqqxa27d1cr31pd72d7ilbwljv13qp177a3yw"))))
11791 (build-system emacs-build-system)
11792 (arguments ; needed for running tests
11793 `(#:tests? #t
11794 #:emacs ,emacs
11795 #:test-command '("emacs" "--batch"
11796 "-l" "picpocket-test.el"
11797 "-f" "ert-run-tests-batch-and-exit")))
11798 (home-page "https://github.com/johanclaesson/picpocket")
11799 (synopsis "Image viewer for Emacs")
11800 (description
11801 "Picpocket is an image viewer for GNU Emacs. It has commands for:
11802
11803 @itemize
11804 @item File operations on the picture files (delete, move, copy, hardlink).
11805 @item Scale and rotate the picture.
11806 @item Associate pictures with tags which are saved to disk.
11807 @item Filter pictures according to tags.
11808 @item Customizing keystrokes for quick tagging and file operations.
11809 @item Undo and browse history of undoable commands.
11810 @end itemize")
11811 (license license:gpl3+))))
11812
11813 (define-public emacs-wgrep-helm
11814 ;; `emacs-wgrep-helm' was mistakenly added.
11815 (deprecated-package "emacs-wgrep-helm" emacs-wgrep))
11816
11817 (define-public emacs-mu4e-conversation
11818 (let ((commit "54368a009474276247bdf39683e25ea68ae1f943"))
11819 (package
11820 (name "emacs-mu4e-conversation")
11821 (version (git-version "20181105" "3" commit))
11822 (source
11823 (origin
11824 (method url-fetch)
11825 (uri (string-append
11826 "https://gitlab.com/Ambrevar/mu4e-conversation/"
11827 "repository/archive.tar.gz?ref="
11828 commit))
11829 (file-name (string-append name "-" version "-checkout"))
11830 (sha256
11831 (base32
11832 "1zqnp1d3cxyvzsd76d5iw40lkif19k9svlbhqy6dvqiaqm0jbd15"))))
11833 (build-system emacs-build-system)
11834 (propagated-inputs
11835 `(("mu" ,mu)))
11836 (home-page
11837 "https://gitlab.com/Ambrevar/mu4e-conversation")
11838 (synopsis
11839 "Show a complete thread in a single buffer")
11840 (description
11841 "This package offers an alternate view to mu4e's e-mail display. It
11842 shows all e-mails of a thread in a single view, where each correspondent has
11843 their own face. Threads can be displayed linearly (in which case e-mails are
11844 displayed in chronological order) or as an Org document where the node tree
11845 maps the thread tree.")
11846 (license license:gpl3+))))
11847
11848 (define-public emacs-pinentry
11849 (let ((commit "dcc9ba03252ee5d39e03bba31b420e0708c3ba0c")
11850 (revision "1"))
11851 (package
11852 (name "emacs-pinentry")
11853 (version (git-version "0.1" revision commit))
11854 (source
11855 (origin
11856 (method url-fetch)
11857 (uri (string-append
11858 "http://git.savannah.gnu.org/cgit/emacs/elpa.git/plain"
11859 "/packages/pinentry/pinentry.el?id=" commit))
11860 (file-name (string-append "pinentry.el"))
11861 (sha256
11862 (base32
11863 "1lf30q6r8nz5cjzclbb9bbymsk2y75nskvb55hnjdv93gr3j0sik"))))
11864 (build-system emacs-build-system)
11865 (propagated-inputs
11866 `(("gnupg" ,gnupg)))
11867 (home-page "https://elpa.gnu.org/packages/pinentry.html")
11868 (synopsis "GnuPG Pinentry server implementation")
11869 (description
11870 "This package allows GnuPG passphrase to be prompted through the
11871 minibuffer instead of graphical dialog.
11872
11873 To use, add @code{allow-emacs-pinentry} to @code{~/.gnupg/gpg-agent.conf},
11874 reload the configuration with @code{gpgconf --reload gpg-agent}, and start the
11875 server with @code{M-x pinentry-start}.")
11876 (license license:gpl3+))))
11877
11878 (define-public emacs-org-brain
11879 (package
11880 (name "emacs-org-brain")
11881 (version "0.5")
11882 (source
11883 (origin
11884 (method git-fetch)
11885 (uri (git-reference
11886 (url "https://github.com/Kungsgeten/org-brain.git")
11887 (commit "3faf9303af3f2356e3444e69c22dc6c5774047d1")))
11888 (file-name (git-file-name name version))
11889 (sha256
11890 (base32
11891 "1ad681zk6kckw2zbk0r4iaj4bw8cfqrbd1s3gdwgdjlzq81q9mmj"))))
11892 (build-system emacs-build-system)
11893 (home-page "https://github.com/Kungsgeten/org-brain")
11894 (synopsis "Org-mode wiki and concept-mapping for Emacs")
11895 (description "@code{emacs-org-brain} implements a variant of concept
11896 mapping in Emacs, using @code{org-mode}. An org-brain is a network of
11897 org-mode entries, where each entry is a file or a headline, and you can get a
11898 visual overview of the relationships between the entries: parents, children,
11899 siblings and friends. This visual overview can also be used to browse your
11900 entries. You can think of entries as nodes in a mind map, or pages in a
11901 wiki.")
11902 (license license:expat)))
11903
11904 (define-public emacs-recent-addresses
11905 (let ((commit "afbbfdc43b81e620acf827ca20d297e0c517b6eb")
11906 (revision "1"))
11907 (package
11908 (name "emacs-recent-addresses")
11909 (home-page "http://nschum.de/src/emacs/recent-addresses/")
11910 (version (git-version "0.1" revision commit))
11911 (source (origin
11912 (method git-fetch)
11913 (uri (git-reference
11914 ;; Note: Use a branch that works with Helm. Submitted
11915 ;; at <https://github.com/nschum/recent-addresses.el/pull/1>.
11916 (url "https://github.com/civodul/recent-addresses.el")
11917 (commit commit)))
11918 (sha256
11919 (base32
11920 "0ajrq0galjmdyjdjyxazykjyax3gh6hvfk4s7l657pi11g0q5zax"))
11921 (file-name (git-file-name name version))))
11922 (build-system emacs-build-system)
11923 (synopsis "Record recently-used email addressed and auto-complete them")
11924 (description
11925 "@code{recent-addresses} is an Emacs package that allows you to quickly
11926 look up previously used email addresses. It can be used alongside the Gnus
11927 email client.")
11928 (license license:gpl2+))))
11929
11930 (define-public emacs-fold-dwim
11931 (let ((commit "c46f4bb2ce91b4e307136320e72c28dd50b6cd8b")
11932 (revision "0"))
11933 (package
11934 (name "emacs-fold-dwim")
11935 (version (git-version "1.2" revision commit))
11936 (home-page "https://github.com/emacsattic/fold-dwim")
11937 (source (origin
11938 (method git-fetch)
11939 (uri (git-reference (url home-page) (commit commit)))
11940 (sha256
11941 (base32
11942 "1yz1wis31asw6xa5maliyd1ck2q02xnnh7dc6swgj9cb4wi7k6i1"))
11943 (file-name (git-file-name name version))))
11944 (build-system emacs-build-system)
11945 (synopsis "Unified user interface for Emacs folding modes")
11946 (description
11947 "DWIM stands for \"do what I mean\", as in the idea that one keystroke
11948 can do different things depending on the context. In this package, it means
11949 that, if the cursor is in a currently hidden folded construction, we want to
11950 show it; if it's not, we want to hide whatever fold the cursor is in.")
11951 (license license:gpl2+))))
11952
11953 (define-public emacs-markup-faces
11954 (package
11955 (name "emacs-markup-faces")
11956 (version "1.0.0")
11957 (source
11958 (origin
11959 (method url-fetch)
11960 (uri (string-append "https://stable.melpa.org/packages/markup-faces-"
11961 version ".el"))
11962 (sha256
11963 (base32
11964 "124dxbaa25fwxnpwsygpz7pw6da6dnnw7y2lic3jf8rgz7lw4v32"))))
11965 (build-system emacs-build-system)
11966 (home-page "https://github.com/sensorflo/markup-faces")
11967 (synopsis "Collection of Emacs faces for markup language modes")
11968 (description "emacs-markup-faces is like font-lock-faces, but tailored for
11969 markup languages instead programming languages. The sub group markup-faces-text
11970 is also intended for 'text viewing modes' such as info or (wo)man. This gives a
11971 common look and feel, or let's say theme, across different markup language modes
11972 and 'text viewing modes' respectively.")
11973 (license license:gpl3+)))
11974
11975 (define-public emacs-adoc-mode
11976 (package
11977 (name "emacs-adoc-mode")
11978 (version "0.6.6")
11979 (source
11980 (origin
11981 (method url-fetch)
11982 (uri (string-append "https://stable.melpa.org/packages/adoc-mode-"
11983 version ".el"))
11984 (sha256
11985 (base32
11986 "1c6hrgxxsnl2c19rgjykpm7r4xg9lp6bmk5z6bi7g8pqlrgwffcy"))))
11987 (build-system emacs-build-system)
11988 (propagated-inputs
11989 `(("emacs-markup-faces" ,emacs-markup-faces)))
11990 (home-page "https://github.com/sensorflo/adoc-mode/wiki")
11991 (synopsis "AsciiDoc mode for Emacs")
11992 (description "This package provides an Emacs major mode for editing AsciiDoc
11993 files. It focuses on highlighting the document to improve readability.")
11994 (license license:gpl2+)))
11995
11996 (define-public emacs-rust-mode
11997 (let ((commit
11998 ;; Last release is old (2016), use more recent commit to get bug
11999 ;; fixes.
12000 "64b4a2450e4d4c47f6307851c9b2598cd2254d68")
12001 (revision "0"))
12002 (package
12003 (name "emacs-rust-mode")
12004 (version (git-version "0.3.0" revision commit))
12005 (source (origin
12006 (method git-fetch)
12007 (uri
12008 (git-reference
12009 (url "https://github.com/rust-lang/rust-mode")
12010 (commit commit)))
12011 (file-name (git-file-name name version))
12012 (sha256
12013 (base32
12014 "0pbz36lljgb7bdgx3h3g0pq1nss1kvn8mhk1l3mknsmynd6w4nd8"))))
12015 (build-system emacs-build-system)
12016 (arguments
12017 `(#:phases
12018 (modify-phases %standard-phases
12019 (replace 'check
12020 (lambda _
12021 (invoke "sh" "run_rust_emacs_tests.sh"))))))
12022 (home-page "https://github.com/rust-lang/rust-mode")
12023 (synopsis "Major Emacs mode for editing Rust source code")
12024 (description "This package provides a major Emacs mode for editing Rust
12025 source code.")
12026 (license (list license:expat
12027 license:asl2.0)))))
12028
12029 (define-public emacs-ztree
12030 (let ((commit "c54425a094353ec40a8179f9eab3596f76c6cf94"))
12031 (package
12032 (name "emacs-ztree")
12033 (version (git-version "1.0.5" "1" commit))
12034 (source
12035 (origin
12036 (method git-fetch)
12037 (uri (git-reference
12038 (url "https://github.com/fourier/ztree")
12039 (commit commit)))
12040 (file-name (git-file-name name version))
12041 (sha256
12042 (base32
12043 "0j8fpxds8m1zi04nrs8vv21091abvh4n8ab76f1sgdxnp4l5cfb0"))))
12044 (build-system emacs-build-system)
12045 (home-page "https://github.com/fourier/ztree")
12046 (synopsis "Directory tree comparison mode for Emacs")
12047 (description "Ztree is a project dedicated to implementation of several
12048 text-tree applications inside GNU Emacs. It consists of 2 subprojects:
12049 @command{ztree-diff} and @command{ztree-dir} (the basis of
12050 @command{ztree-diff}).")
12051 (license license:gpl3))))
12052
12053 (define-public emacs-helm-org-contacts
12054 (let ((commit "0af703bd9a43032b89fdf5559673151d1ac2fffc"))
12055 (package
12056 (name "emacs-helm-org-contacts")
12057 (version (git-version "20180707" "1" commit))
12058 (source
12059 (origin
12060 (method git-fetch)
12061 (uri (git-reference
12062 (url "https://github.com/tmalsburg/helm-org-contacts")
12063 (commit commit)))
12064 (file-name (git-file-name name version))
12065 (sha256
12066 (base32
12067 "1cl7cm2ic9pg4vc9cdh84vzjj1x2lpd5ymimiva8h4l17kiphk4s"))))
12068 (build-system emacs-build-system)
12069 (propagated-inputs
12070 `(("emacs-dash" ,emacs-dash)
12071 ("emacs-helm" ,emacs-helm)
12072 ("emacs-s" ,emacs-s)))
12073 (home-page "https://github.com/tmalsburg/helm-org-contacts")
12074 (synopsis "Helm source for org-contacts")
12075 (description "This Helm source can be used to search contacts stored in
12076 org-contacts format. There are actions for inserting postal addresses, email
12077 addresses, and phone numbers in the buffer where @command{helm-org-contacts}
12078 was called.")
12079 (license license:gpl3))))
12080
12081 (define-public emacs-dired-du
12082 (package
12083 (name "emacs-dired-du")
12084 (version "0.5.1")
12085 (source
12086 (origin
12087 (method url-fetch)
12088 (uri (string-append
12089 "https://elpa.gnu.org/packages/dired-du-"
12090 version ".tar"))
12091 (sha256
12092 (base32
12093 "1091scnrjh0a4gja4z6jxic6ghy1yryv46qk9c76pmh50cpw6766"))))
12094 (build-system emacs-build-system)
12095 (home-page "http://elpa.gnu.org/packages/dired-du.html")
12096 (synopsis "Dired with recursive directory sizes")
12097 (description
12098 "Display the recursive size of directories in Dired.
12099 This file defines a minor mode @command{dired-du-mode} to show the recursive
12100 size of directories in Dired buffers. If @command{du} program is available,
12101 then the directory sizes are obtained with it. Otherwise, the directory sizes
12102 are obtained with Lisp. The former is faster and provide a more precise
12103 value. For directories where the user doesn't have read permission, the
12104 recursive size is not obtained. Once this mode is enabled, every new Dired
12105 buffer displays recursive dir sizes.")
12106 (license license:gpl3+)))
12107
12108 (define-public emacs-pcre2el
12109 ;; Last release is very old so we get the latest commit.
12110 (let ((commit "0b5b2a2c173aab3fd14aac6cf5e90ad3bf58fa7d"))
12111 (package
12112 (name "emacs-pcre2el")
12113 (version (git-version "1.8" "1" commit))
12114 (source
12115 (origin
12116 (method git-fetch)
12117 (uri (git-reference
12118 (url "https://github.com/joddie/pcre2el")
12119 (commit commit)))
12120 (file-name (git-file-name name version))
12121 (sha256
12122 (base32
12123 "14br6ad138qx1z822wqssswqiihxiynz1k69p6mcdisr2q8yyi1z"))))
12124 (build-system emacs-build-system)
12125 (home-page "https://github.com/joddie/pcre2el")
12126 (synopsis "Convert between PCRE, Emacs and rx regexp syntax")
12127 (description "@code{pcre2el} or @code{rxt} (RegeXp Translator or RegeXp
12128 Tools) is a utility for working with regular expressions in Emacs, based on a
12129 recursive-descent parser for regexp syntax. In addition to converting (a
12130 subset of) PCRE syntax into its Emacs equivalent, it can do the following:
12131
12132 @itemize
12133 @item convert Emacs syntax to PCRE
12134 @item convert either syntax to @code{rx}, an S-expression based regexp syntax
12135 @item untangle complex regexps by showing the parse tree in @code{rx} form and
12136 highlighting the corresponding chunks of code
12137 @item show the complete list of strings (productions) matching a regexp,
12138 provided the list is finite
12139 @item provide live font-locking of regexp syntax (so far only for Elisp
12140 buffers – other modes on the TODO list).
12141 @end itemize\n")
12142 (license license:gpl3))))
12143
12144 (define-public emacs-magit-todos
12145 (package
12146 (name "emacs-magit-todos")
12147 (version "1.1")
12148 (source
12149 (origin
12150 (method git-fetch)
12151 (uri (git-reference
12152 (url "https://github.com/alphapapa/magit-todos")
12153 (commit version)))
12154 (file-name (git-file-name name version))
12155 (sha256
12156 (base32
12157 "1mvzbxshr6zjdim3jd368ar1hy5l7n22i03cpvzdmrw83kkwdyhd"))))
12158 (build-system emacs-build-system)
12159 (propagated-inputs
12160 `(("emacs-async" ,emacs-async)
12161 ("emacs-dash" ,emacs-dash)
12162 ("emacs-f" ,emacs-f)
12163 ("emacs-hl-todo" ,emacs-hl-todo)
12164 ("magit" ,emacs-magit)
12165 ("emacs-pcre2el" ,emacs-pcre2el)
12166 ("emacs-s" ,emacs-s)))
12167 (home-page "https://github.com/alphapapa/magit-todos")
12168 (synopsis "Show source files' TODOs (and FIXMEs, etc) in Magit status buffer")
12169 (description "This package displays keyword entries from source code
12170 comments and Org files in the Magit status buffer. Activating an item jumps
12171 to it in its file. By default, it uses keywords from @code{hl-todo}, minus a
12172 few (like NOTE).")
12173 (license license:gpl3)))
12174
12175 (define-public emacs-git-annex
12176 ;; Unreleased version has a fontification fix.
12177 (let ((commit "ebdb44aef1883f1b2b8058e05d30fb9315b03707")
12178 (revision "1"))
12179 (package
12180 (name "emacs-git-annex")
12181 (version (string-append "1.1-" revision "." (string-take commit 8)))
12182 (source
12183 (origin
12184 (method git-fetch)
12185 (uri (git-reference
12186 (url "https://github.com/jwiegley/git-annex-el")
12187 (commit commit)))
12188 (file-name (string-append name "-" version "-checkout"))
12189 (sha256
12190 (base32
12191 "1mzv40gj7k10h7h5s43my8msgzjpj680qprqa9pp8nbyhl49v3wh"))))
12192 (build-system emacs-build-system)
12193 (home-page "https://github.com/jwiegley/git-annex-el")
12194 (synopsis "Emacs integration for git-annex")
12195 (description "Enhances Dired and buffers visiting annex files with
12196 git-annex functionality. In Dired, the names of annex files are shortened by
12197 hiding the symbolic links and fontified based on whether content is present.
12198 Commands for performing some common operations (e.g., unlocking and adding
12199 files) are provided.")
12200 (license license:gpl2+))))
12201
12202 (define-public emacs-hackernews
12203 (let ((commit "d8c450bbc76d6bb65ec5cdb6c3b888a23f3769e9"))
12204 (package
12205 (name "emacs-hackernews")
12206 (version (git-version "0.4.0" "1" commit))
12207 (source
12208 (origin
12209 (method git-fetch)
12210 (uri (git-reference
12211 (url "https://github.com/clarete/hackernews.el")
12212 (commit commit)))
12213 (file-name (git-file-name name version))
12214 (sha256
12215 (base32
12216 "06mp4n6c300jv5lhwf50ircfjckzr2p1zd38s4mqnxxjlf1maim7"))))
12217 (build-system emacs-build-system)
12218 (home-page "https://github.com/clarete/hackernews.el")
12219 (synopsis "Hacker News client for Emacs")
12220 (description "The @command{hackernews} package is able to fetch stories
12221 from six different Hacker News feeds, namely top, new, best, ask, show and job
12222 stories. The default feed is top stories, which corresponds to the Hacker
12223 News homepage.")
12224 (license license:gpl3))))
12225
12226 (define-public emacs-youtube-dl
12227 (let ((commit "7c9d7a7d05b72a7d1b1257a36c5e2b2567b185dd"))
12228 (package
12229 (name "emacs-youtube-dl")
12230 (version (git-version "1.0" "1" commit))
12231 (source
12232 (origin
12233 (method git-fetch)
12234 (uri (git-reference
12235 (url "https://github.com/skeeto/youtube-dl-emacs/")
12236 (commit commit)))
12237 (file-name (git-file-name name version))
12238 (sha256
12239 (base32
12240 "0mh4s089a4x8s380agzb2306kdp1hl204px1n5rrrrdcls7imnh6"))))
12241 (build-system emacs-build-system)
12242 (inputs
12243 `(("youtube-dl" ,youtube-dl)))
12244 (arguments
12245 `(#:phases
12246 (modify-phases %standard-phases
12247 (add-after 'unpack 'configure
12248 (lambda* (#:key inputs #:allow-other-keys)
12249 (let ((youtube-dl (assoc-ref inputs "youtube-dl")))
12250 ;; .el is read-only in git.
12251 (chmod "youtube-dl.el" #o644)
12252 ;; Specify the absolute file names of the various
12253 ;; programs so that everything works out-of-the-box.
12254 (emacs-substitute-variables
12255 "youtube-dl.el"
12256 ("youtube-dl-program"
12257 (string-append youtube-dl "/bin/youtube-dl")))))))))
12258 (home-page "https://github.com/skeeto/youtube-dl-emacs/")
12259 (synopsis "Emacs youtube-dl download manager")
12260 (description "This package manages a video download queue for
12261 @command{youtube-dl}, which serves as the back end. It manages a single
12262 @command{youtube-dl} subprocess, downloading one video at a time. New videos
12263 can be queued at any time.")
12264 (license license:unlicense))))
12265
12266 (define-public emacs-org-web-tools
12267 (package
12268 (name "emacs-org-web-tools")
12269 (version "1.0")
12270 (source
12271 (origin
12272 (method git-fetch)
12273 (uri (git-reference
12274 (url "https://github.com/alphapapa/org-web-tools")
12275 (commit version)))
12276 (file-name (git-file-name name version))
12277 (sha256
12278 (base32
12279 "0kak9h5ny00d39gnwspv53nadnag01brw2fq9zk5wpfc91h9bjng"))))
12280 (build-system emacs-build-system)
12281 (propagated-inputs
12282 `(("emacs-dash" ,emacs-dash)
12283 ("emacs-esxml" ,emacs-esxml)
12284 ("emacs-s" ,emacs-s)))
12285 (inputs
12286 `(("pandoc" ,ghc-pandoc)))
12287 (arguments
12288 `(#:phases
12289 (modify-phases %standard-phases
12290 (add-after 'unpack 'patch-exec-paths
12291 (lambda* (#:key inputs #:allow-other-keys)
12292 (let ((pandoc (assoc-ref inputs "pandoc")))
12293 (substitute* "org-web-tools.el"
12294 (("\"pandoc\"") (string-append "\"" pandoc "/bin/pandoc\"")))
12295 #t))))))
12296 (home-page "https://github.com/alphapapa/org-web-tools")
12297 (synopsis "Display/Process web page as Org-mode content")
12298 (description "This package contains library functions and commands useful
12299 for retrieving web page content and processing it into Org-mode content.
12300
12301 For example, you can copy a URL to the clipboard or kill-ring, then run a
12302 command that downloads the page, isolates the “readable” content with
12303 @command{eww-readable}, converts it to Org-mode content with Pandoc, and
12304 displays it in an Org-mode buffer. Another command does all of that but
12305 inserts it as an Org entry instead of displaying it in a new buffer.")
12306 (license license:gpl3+)))
12307
12308 (define-public emacs-blimp
12309 (let ((commit "e420763d6d18b5d1be552cdbc47f91418343db03"))
12310 (package
12311 (name "emacs-blimp")
12312 (version (git-version "0.0.0" "1" commit))
12313 (source
12314 (origin
12315 (method git-fetch)
12316 (uri (git-reference
12317 (url "https://github.com/walseb/blimp")
12318 (commit commit)))
12319 (file-name (git-file-name name version))
12320 (sha256
12321 (base32
12322 "09wmhpym516b81dfq8smdmysh1fn610dzlyvyl2rkx8600f0fizd"))))
12323 (build-system emacs-build-system)
12324 (propagated-inputs
12325 `(("emacs-eimp" ,emacs-eimp)))
12326 (home-page "https://github.com/walseb/blimp")
12327 (synopsis "Emacs wrapper around all Imagemagick commands")
12328 (description "Blimp (Bustling Image Manipulation Package) is a complete
12329 wrapper around all Imagemagick commands with descriptions, autocompletion (for
12330 some commands) and hints displayed in prompt using @command{eimp.el} to
12331 execute its commands and resize images.")
12332 (license license:gpl3+))))
12333
12334 (define-public emacs-synosaurus
12335 (let ((commit "8bf95b935976ec0a1964cf175ed57cc5f6f93bdb"))
12336 (package
12337 (name "emacs-synosaurus")
12338 (version (git-version "0.1.0" "1" commit))
12339 (source
12340 (origin
12341 (method git-fetch)
12342 (uri (git-reference
12343 (url "https://github.com/hpdeifel/synosaurus")
12344 (commit commit)))
12345 (file-name (git-file-name name version))
12346 (sha256
12347 (base32
12348 "15by9jccab6kyplxa6k0glzaivxkqdigl33gl2qi2cvy6f2q7gva"))))
12349 (build-system emacs-build-system)
12350 (propagated-inputs
12351 `(("wordnet" ,wordnet)))
12352 (arguments
12353 `(#:phases
12354 (modify-phases %standard-phases
12355 (add-after 'unpack 'configure
12356 (lambda* (#:key inputs outputs #:allow-other-keys)
12357 (let ((wn (assoc-ref inputs "wordnet")))
12358 ;; .el is read-only in git.
12359 (chmod "synosaurus-wordnet.el" #o644)
12360 ;; Specify the absolute file names of the various
12361 ;; programs so that everything works out-of-the-box.
12362 (emacs-substitute-variables
12363 "synosaurus-wordnet.el"
12364 ("wordnet-command"
12365 (string-append wn "/bin/wn")))))))))
12366 (home-page "https://github.com/hpdeifel/synosaurus")
12367 (synopsis "Extensible thesaurus mode for Emacs")
12368 (description "Synosaurus is a thesaurus fontend for Emacs with pluggable
12369 backends, including the @command{wordnet} offline backend.")
12370 (license license:gpl3+))))
12371
12372 (define-public emacs-all-the-icons
12373 (package
12374 (name "emacs-all-the-icons")
12375 (version "3.2.0")
12376 (source
12377 (origin
12378 (method git-fetch)
12379 (uri (git-reference
12380 (url "https://github.com/domtronn/all-the-icons.el.git")
12381 (commit version)))
12382 (file-name (git-file-name name version))
12383 (sha256
12384 (base32
12385 "1sdl33117lccznj38021lwcdnpi9nxmym295q6y460y4dm4lx0jn"))))
12386 (build-system emacs-build-system)
12387 (arguments
12388 `(#:include '("\\.el$" "^data/" "^fonts/")
12389 ;; Compiling "test/" fails with "Symbol’s value as variable is void:
12390 ;; all-the-icons--root-code". Ignoring tests.
12391 #:exclude '("^test/")
12392 #:tests? #f))
12393 (propagated-inputs
12394 `(("f" ,emacs-f)
12395 ("memoize" ,emacs-memoize)))
12396 (home-page "https://github.com/domtronn/all-the-icons.el")
12397 (synopsis "Collect icon fonts and propertize them within Emacs")
12398 (description "All-the-icons is a utility package to collect various icon
12399 fonts and propertize them within Emacs. Icon fonts allow you to propertize
12400 and format icons the same way you would normal text. This enables things such
12401 as better scaling of and anti aliasing of the icons.")
12402 ;; Package is released under Expat license. Elisp files are licensed
12403 ;; under GPL3+. Fonts come with various licenses: Expat for
12404 ;; "all-the-icons.ttf" and "file-icons.ttf", Apache License 2.0 for
12405 ;; "material-design-icons.ttf", and SIL OFL 1.1 for "fontawesome.ttf",
12406 ;; "ocitcons.ttf" and "weathericons.ttf".
12407 (license
12408 (list license:expat license:gpl3+ license:silofl1.1 license:asl2.0))))
12409
12410 (define-public emacs-powerline
12411 (package
12412 (name "emacs-powerline")
12413 (version "2.4")
12414 (source
12415 (origin
12416 (method git-fetch)
12417 (uri (git-reference
12418 (url "https://github.com/milkypostman/powerline.git")
12419 (commit version)))
12420 (file-name (git-file-name name version))
12421 (sha256
12422 (base32
12423 "1hp3xp18943n0rlggz55150020ivw8gvi1vyxkr4z8xhpwq4gaar"))))
12424 (build-system emacs-build-system)
12425 (home-page "https://github.com/milkypostman/powerline/")
12426 (synopsis "Mode-line plugin for Emacs")
12427 (description "Powerline is a utility plugin which allows you to create
12428 a better-looking, more functional Emacs mode-line. A collection of predefined
12429 themes comes with the package.")
12430 (license license:gpl3+)))
12431
12432 (define-public emacs-spaceline
12433 (package
12434 (name "emacs-spaceline")
12435 (version "2.0.1")
12436 (source
12437 (origin
12438 (method git-fetch)
12439 (uri (git-reference
12440 (url "https://github.com/TheBB/spaceline.git")
12441 (commit (string-append "v" version))))
12442 (file-name (git-file-name name version))
12443 (sha256
12444 (base32
12445 "1q8r95zfrh0vxna5ml2pq9b9f66clfqcl4d2qy2aizkvzyxg6skl"))))
12446 (build-system emacs-build-system)
12447 (propagated-inputs
12448 `(("dash" ,emacs-dash)
12449 ("powerline" ,emacs-powerline)
12450 ("s" ,emacs-s)))
12451 (home-page "https://github.com/TheBB/spaceline")
12452 (synopsis "Powerline theme from Spacemacs")
12453 (description "Spaceline provides Spacemacs' mode-line theme.
12454 This package provides features for three kinds of users.
12455
12456 @itemize
12457 @item You just want to use the Spacemacs mode-line theme and forget about it.
12458 @item You want to use something similar to the Spacemacs mode-line theme, but
12459 with a handful of easy tweaks.
12460 @item You want an easy-to-use library for building your own mode-line from
12461 scratch, and you think the Spacemacs theme looks good.
12462 @end itemize")
12463 (license license:gpl3+)))
12464
12465 (define-public emacs-column-marker
12466 (package
12467 (name "emacs-column-marker")
12468 (version "9")
12469 (source
12470 (origin
12471 (method url-fetch)
12472 (uri "https://www.emacswiki.org/emacs/download/column-marker.el")
12473 (sha256 (base32 "05bv198zhqw5hqq6cr11mhz02dpca74hhp1ycwq369m0yb2naxy9"))))
12474 (build-system emacs-build-system)
12475 (home-page "https://www.emacswiki.org/emacs/ColumnMarker")
12476 (synopsis "Emacs mode for highlighting columns")
12477 (description
12478 "With @code{column-marker.el} you can highlight any number of text columns.
12479 Three such highlight column markers are provided by default. This is
12480 especially useful for languages like COBOL or Fortran where certain columns
12481 have special meaning. It is also handy for aligning text across long vertical
12482 distances. Multi-column characters, such as @kbd{TAB} are treated
12483 correctly.")
12484 (license license:gpl2+)))
12485
12486 (define-public emacs-slime-repl-ansi-color
12487 (let ((commit "ad03263f5d4de473bc173b64a6fc3dc1106393d7"))
12488 (package
12489 (name "emacs-slime-repl-ansi-color")
12490 (version (git-version "0.0.0" "1" commit))
12491 (source (origin
12492 (method git-fetch)
12493 (uri (git-reference
12494 (url "https://github.com/deadtrickster/slime-repl-ansi-color")
12495 (commit commit)))
12496 (file-name (git-file-name name version))
12497 (sha256
12498 (base32
12499 "0bpg7gxz310x7bnlg324c507sxc5gxwwz6h64h6kdq141r73vbi4"))))
12500 (build-system emacs-build-system)
12501 (home-page "https://github.com/deadtrickster/slime-repl-ansi-color")
12502 (synopsis "Color ANSI codes in the REPL of SLIME")
12503 (description "Color ANSI codes in the REPL of SLIME")
12504 (license license:gpl2+))))
12505
12506 (define-public emacs-helm-slime
12507 (let ((commit "9980925f3e5f6ac5a30369d2a544e82006a79c76"))
12508 (package
12509 (name "emacs-helm-slime")
12510 (version (git-version "0.0.0" "1" commit))
12511 (source (origin
12512 (method git-fetch)
12513 (uri (git-reference
12514 (url "https://github.com/emacs-helm/helm-slime")
12515 (commit commit)))
12516 (file-name (git-file-name name version))
12517 (sha256
12518 (base32
12519 "0xa07gpfkzwn522x9573mq5mfxvbawdgd0m93gqj6w5a14wk8zzh"))))
12520 (build-system emacs-build-system)
12521 (propagated-inputs
12522 `(("emacs-helm" ,emacs-helm)
12523 ("emacs-slime" ,emacs-slime)))
12524 (home-page "https://github.com/emacs-helm/helm-slime")
12525 (synopsis "Helm for SLIME, the Superior Lisp Interaction Mode for Emacs")
12526 (description "Helm-SLIME defines a few new commands:
12527
12528 @itemize
12529 @item helm-slime-complete: Select a symbol from the SLIME completion systems.
12530 @item helm-slime-list-connections: Yet another slime-list-connections with Helm.
12531 @item: helm-slime-apropos: Yet another slime-apropos with Helm.
12532 @item helm-slime-repl-history: Select an input from the SLIME REPL history and insert it.
12533 @end itemize\n")
12534 (license license:gpl3+))))
12535
12536 (define-public emacs-clang-format
12537 (let ((commit "5556c31528af2661bed3011bd63ffc0ed44e18a0"))
12538 (package
12539 (name "emacs-clang-format")
12540 (version (git-version "0.0.0" "1" commit))
12541 (source (origin
12542 (method git-fetch)
12543 (uri (git-reference
12544 (url "https://github.com/emacsorphanage/clang-format")
12545 (commit commit)))
12546 (file-name (git-file-name name version))
12547 (sha256
12548 (base32
12549 "0ynvnp3vrcpngmwakb23xv4xn7jbkg43s196q7pg9nkl13x4n2nq"))))
12550 (build-system emacs-build-system)
12551 (inputs
12552 `(("clang" ,clang)))
12553 (arguments
12554 `(#:phases
12555 (modify-phases %standard-phases
12556 (add-after 'unpack 'configure
12557 (lambda* (#:key inputs #:allow-other-keys)
12558 (let ((clang (assoc-ref inputs "clang")))
12559 ;; Repo is read-only.
12560 (chmod "clang-format.el" #o644)
12561 (emacs-substitute-variables "clang-format.el"
12562 ("clang-format-executable"
12563 (string-append clang "/bin/clang-format"))))
12564 #t)))))
12565 (home-page "https://github.com/emacsorphanage/clang-format")
12566 (synopsis "Format code using clang-format")
12567 (description "This package allows to filter code through clang-format to
12568 fix its formatting. @command{clang-format} is a tool that formats C/C++/Obj-C
12569 code according to a set of style options, see
12570 @url{http://clang.llvm.org/docs/ClangFormatStyleOptions.html}.")
12571 (license license:gpl3+))))
12572
12573 (define-public emacs-gtk-look
12574 (package
12575 (name "emacs-gtk-look")
12576 (version "29")
12577 (source (origin
12578 (method url-fetch)
12579 (uri "https://download.tuxfamily.org/user42/gtk-look.el")
12580 (sha256
12581 (base32
12582 "14p2nwrd51cr1v06fxbjjn6jdrkf9d6vcxhmscm0kl677s25ypsp"))))
12583 (build-system emacs-build-system)
12584 (arguments
12585 `(#:phases
12586 (modify-phases %standard-phases
12587 (add-after 'unpack 'configure
12588 (lambda _
12589 ;; File is read-only.
12590 (chmod "gtk-look.el" #o644)
12591 (emacs-substitute-variables "gtk-look.el"
12592 ("gtk-lookup-devhelp-indices"
12593 '(list (expand-file-name "~/.guix-profile/share/gtk-doc/html/*/*.devhelp*"))))
12594 #t)))))
12595 (home-page "http://user42.tuxfamily.org/gtk-look/index.html")
12596 (synopsis "Find and display HTML documentation for GTK, GNOME and Glib")
12597 (description "@command{gtk-look} finds and displays HTML documentation for
12598 GTK, GNOME and Glib functions and variables in Emacs, similar to what
12599 info-lookup-symbol does for info files (C-h S). The documentation is expected
12600 to be devhelp indexes with HTML files. The location of the indexes can be
12601 customized. In addition to C code development @command{gtk-look} is good for
12602
12603 @itemize
12604 @item @command{perl-gtk2}, recognising class funcs like
12605 @command{Gtk2::Label->new} and bare method names like @command{set_text}.
12606 @item @command{guile-gnome}, recognising methods like @command{set-text} and
12607 classes like @command{<gtk-window>}.
12608 @end itemize\n")
12609 (license license:gpl3+)))
12610
12611 (define-public emacs-ov
12612 (package
12613 (name "emacs-ov")
12614 (version "1.0.6")
12615 (source (origin
12616 (method git-fetch)
12617 (uri (git-reference
12618 (url "https://github.com/ShingoFukuyama/ov.el.git")
12619 (commit version)))
12620 (file-name (git-file-name name version))
12621 (sha256
12622 (base32
12623 "0qxk2rf84j86syxi8xknsq252irwg7sz396v3bb4wqz4prpj0kzc"))))
12624 (build-system emacs-build-system)
12625 (home-page "https://github.com/ShingoFukuyama/ov.el")
12626 (synopsis "Overlay library for Emacs Lisp")
12627 (description "@code{ov.el} provides a simple way to manipulate overlays in
12628 Emacs.")
12629 (license license:gpl3+)))
12630
12631 (define-public emacs-matrix-client
12632 (let ((commit "3eab4c28280feff18ee1ddd7db66ada4f135cbf8"))
12633 (package
12634 (name "emacs-matrix-client")
12635 (version (git-version "0.0.0" "1" commit))
12636 (source (origin
12637 (method git-fetch)
12638 (uri (git-reference
12639 (url "https://github.com/jgkamat/matrix-client-el.git")
12640 (commit commit)))
12641 (file-name (git-file-name name version))
12642 (sha256
12643 (base32
12644 "1k6721jz0m22vpb78881k087mpx8hf3s2219ic75v5mhgx355f7m"))))
12645 (build-system emacs-build-system)
12646 (propagated-inputs
12647 `(("a" ,emacs-a)
12648 ("dash" ,emacs-dash)
12649 ("esxml" ,emacs-esxml)
12650 ("f" ,emacs-f)
12651 ("ht" ,emacs-ht)
12652 ("ov" ,emacs-ov)
12653 ("request" ,emacs-request)
12654 ("s" ,emacs-s)
12655 ("tracking" ,emacs-tracking)))
12656 (home-page "https://github.com/jgkamat/matrix-client-el")
12657 (synopsis "Matrix client for Emacs")
12658 (description "@code{matrix-client} is a simple chat UI to Matrix.org
12659 rooms. It also provides an API which allows Emacs to seamlessly create
12660 RPC channels with users and other software.")
12661 (license license:gpl3+))))