gnu: emacs-ggtags: Don't require GNU Global in path
[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, 2019 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, 2019 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, 2019 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, 2019 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, 2018 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, 2019 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 cvs-download)
64 #:use-module (guix download)
65 #:use-module (guix git-download)
66 #:use-module (guix build-system gnu)
67 #:use-module (guix build-system cmake)
68 #:use-module (guix build-system emacs)
69 #:use-module (guix build-system glib-or-gtk)
70 #:use-module (guix build-system trivial)
71 #:use-module (gnu packages)
72 #:use-module (gnu packages admin)
73 #:use-module (gnu packages audio)
74 #:use-module (gnu packages bash)
75 #:use-module (gnu packages cmake)
76 #:use-module (gnu packages code)
77 #:use-module (gnu packages databases)
78 #:use-module (gnu packages guile)
79 #:use-module (gnu packages gtk)
80 #:use-module (gnu packages gnome)
81 #:use-module (gnu packages ncurses)
82 #:use-module (gnu packages python)
83 #:use-module (gnu packages tex)
84 #:use-module (gnu packages texinfo)
85 #:use-module (gnu packages tcl)
86 #:use-module (gnu packages tls)
87 #:use-module (gnu packages pkg-config)
88 #:use-module (gnu packages xorg)
89 #:use-module (gnu packages lesstif)
90 #:use-module (gnu packages llvm)
91 #:use-module (gnu packages image)
92 #:use-module (gnu packages linux)
93 #:use-module (gnu packages version-control)
94 #:use-module (gnu packages imagemagick)
95 #:use-module (gnu packages w3m)
96 #:use-module (gnu packages wget)
97 #:use-module (gnu packages autotools)
98 #:use-module (gnu packages base)
99 #:use-module (gnu packages compression)
100 #:use-module (gnu packages xml)
101 #:use-module (gnu packages glib)
102 #:use-module (gnu packages acl)
103 #:use-module (gnu packages mail)
104 #:use-module (gnu packages package-management)
105 #:use-module (gnu packages perl)
106 #:use-module (gnu packages pdf)
107 #:use-module (gnu packages scheme)
108 #:use-module (gnu packages xiph)
109 #:use-module (gnu packages mp3)
110 #:use-module (gnu packages gettext)
111 #:use-module (gnu packages fribidi)
112 #:use-module (gnu packages gd)
113 #:use-module (gnu packages fontutils)
114 #:use-module (gnu packages password-utils)
115 #:use-module (gnu packages pulseaudio)
116 #:use-module (gnu packages xdisorg)
117 #:use-module (gnu packages shells)
118 #:use-module (gnu packages gnupg)
119 #:use-module (gnu packages video)
120 #:use-module (gnu packages haskell)
121 #:use-module (gnu packages wordnet)
122 #:use-module (guix utils)
123 #:use-module (srfi srfi-1)
124 #:use-module (ice-9 match))
125
126 (define-public emacs
127 (package
128 (name "emacs")
129 (version "26.1")
130 (source (origin
131 (method url-fetch)
132 (uri (string-append "mirror://gnu/emacs/emacs-"
133 version ".tar.xz"))
134 (sha256
135 (base32
136 "0b6k1wq44rc8gkvxhi1bbjxbz3cwg29qbq8mklq2az6p1hjgrx0w"))
137 (patches (search-patches "emacs-exec-path.patch"
138 "emacs-fix-scheme-indent-function.patch"
139 "emacs-source-date-epoch.patch"))
140 (modules '((guix build utils)))
141 (snippet
142 ;; Delete the bundled byte-compiled elisp files and
143 ;; generated autoloads.
144 '(with-directory-excursion "lisp"
145 (for-each delete-file
146 (append (find-files "." "\\.elc$")
147 (find-files "." "loaddefs\\.el$")
148 ;; This is the only "autoloads" file that
149 ;; does not have "*loaddefs.el" name.
150 '("eshell/esh-groups.el")))
151
152 ;; Make sure Tramp looks for binaries in the right places on
153 ;; remote GuixSD machines, where 'getconf PATH' returns
154 ;; something bogus.
155 (substitute* "net/tramp-sh.el"
156 ;; Patch the line after "(defcustom tramp-remote-path".
157 (("\\(tramp-default-remote-path")
158 (format #f "(tramp-default-remote-path ~s ~s ~s ~s "
159 "~/.guix-profile/bin" "~/.guix-profile/sbin"
160 "/run/current-system/profile/bin"
161 "/run/current-system/profile/sbin")))
162
163 ;; Make sure Man looks for C header files in the right
164 ;; places.
165 (substitute* "man.el"
166 (("\"/usr/local/include\"" line)
167 (string-join
168 (list line
169 "\"~/.guix-profile/include\""
170 "\"/var/guix/profiles/system/profile/include\"")
171 " ")))
172 #t))))
173 (build-system glib-or-gtk-build-system)
174 (arguments
175 `(#:tests? #f ; no check target
176 #:phases
177 (modify-phases %standard-phases
178 (add-before 'configure 'fix-/bin/pwd
179 (lambda _
180 ;; Use `pwd', not `/bin/pwd'.
181 (substitute* (find-files "." "^Makefile\\.in$")
182 (("/bin/pwd")
183 "pwd"))
184 #t))
185 (add-after 'install 'install-site-start
186 ;; Use 'guix-emacs' in "site-start.el". This way, Emacs packages
187 ;; provided by Guix and installed in
188 ;; ~/.guix-profile/share/emacs/site-lisp/guix.d/PACKAGE-VERSION are
189 ;; automatically found.
190 (lambda* (#:key inputs outputs #:allow-other-keys)
191 (let* ((out (assoc-ref outputs "out"))
192 (lisp-dir (string-append out "/share/emacs/site-lisp")))
193 (copy-file (assoc-ref inputs "guix-emacs.el")
194 (string-append lisp-dir "/guix-emacs.el"))
195 (with-output-to-file (string-append lisp-dir "/site-start.el")
196 (lambda ()
197 (display
198 (string-append "(when (require 'guix-emacs nil t)\n"
199 " (guix-emacs-autoload-packages))\n"))))
200 #t))))))
201 (inputs
202 `(("gnutls" ,gnutls)
203 ("ncurses" ,ncurses)
204
205 ;; TODO: Add the optional dependencies.
206 ("libx11" ,libx11)
207 ("gtk+" ,gtk+)
208 ("libxft" ,libxft)
209 ("libtiff" ,libtiff)
210 ("giflib" ,giflib)
211 ("libjpeg" ,libjpeg)
212 ("imagemagick" ,imagemagick)
213 ("acl" ,acl)
214
215 ;; When looking for libpng `configure' links with `-lpng -lz', so we
216 ;; must also provide zlib as an input.
217 ("libpng" ,libpng)
218 ("zlib" ,zlib)
219
220 ("librsvg" ,librsvg)
221 ("libxpm" ,libxpm)
222 ("libxml2" ,libxml2)
223 ("libice" ,libice)
224 ("libsm" ,libsm)
225 ("alsa-lib" ,alsa-lib)
226 ("dbus" ,dbus)
227
228 ;; multilingualization support
229 ("libotf" ,libotf)
230 ("m17n-lib" ,m17n-lib)))
231 (native-inputs
232 `(("guix-emacs.el" ,(search-auxiliary-file "emacs/guix-emacs.el"))
233 ("pkg-config" ,pkg-config)
234 ("texinfo" ,texinfo)))
235
236 (native-search-paths
237 (list (search-path-specification
238 (variable "INFOPATH")
239 (files '("share/info")))))
240
241 (home-page "https://www.gnu.org/software/emacs/")
242 (synopsis "The extensible, customizable, self-documenting text editor")
243 (description
244 "GNU Emacs is an extensible and highly customizable text editor. It is
245 based on an Emacs Lisp interpreter with extensions for text editing. Emacs
246 has been extended in essentially all areas of computing, giving rise to a
247 vast array of packages supporting, e.g., email, IRC and XMPP messaging,
248 spreadsheets, remote server editing, and much more. Emacs includes extensive
249 documentation on all aspects of the system, from basic editing to writing
250 large Lisp programs. It has full Unicode support for nearly all human
251 languages.")
252 (license license:gpl3+)))
253
254 (define-public emacs-minimal
255 ;; This is the version that you should use as an input to packages that just
256 ;; need to byte-compile .el files.
257 (package (inherit emacs)
258 (name "emacs-minimal")
259 (synopsis "The extensible text editor (used only for byte-compilation)")
260 (build-system gnu-build-system)
261 (arguments
262 `(#:configure-flags (list "--with-gnutls=no")
263 ,@(substitute-keyword-arguments (package-arguments emacs)
264 ((#:phases phases)
265 `(modify-phases ,phases
266 (delete 'install-site-start))))))
267 (inputs
268 `(("ncurses" ,ncurses)))
269 (native-inputs
270 `(("pkg-config" ,pkg-config)))))
271
272 (define-public emacs-no-x
273 (package (inherit emacs)
274 (name "emacs-no-x")
275 (synopsis "The extensible, customizable, self-documenting text
276 editor (console only)")
277 (build-system gnu-build-system)
278 (inputs (fold alist-delete
279 (package-inputs emacs)
280 '("libx11" "gtk+" "libxft" "libtiff" "giflib" "libjpeg"
281 "imagemagick" "libpng" "librsvg" "libxpm" "libice"
282 "libsm"
283
284 ;; These depend on libx11, so remove them as well.
285 "libotf" "m17n-lib" "dbus")))))
286
287 (define-public emacs-no-x-toolkit
288 (package (inherit emacs)
289 (name "emacs-no-x-toolkit")
290 (synopsis "The extensible, customizable, self-documenting text
291 editor (without an X toolkit)" )
292 (build-system gnu-build-system)
293 (inputs (append `(("inotify-tools" ,inotify-tools))
294 (alist-delete "gtk+" (package-inputs emacs))))
295 (arguments (append '(#:configure-flags '("--with-x-toolkit=no"))
296 (package-arguments emacs)))))
297
298 (define-public guile-emacs
299 (package (inherit emacs)
300 (name "guile-emacs")
301 (version "20150512.41120e0")
302 (source (origin
303 (method git-fetch)
304 (uri (git-reference
305 (url "git://git.hcoop.net/git/bpt/emacs.git")
306 (commit "41120e0f595b16387eebfbf731fff70481de1b4b")))
307 (file-name (string-append name "-" version "-checkout"))
308 (patches (search-patches "guile-emacs-fix-configure.patch"))
309 (sha256
310 (base32
311 "0lvcvsz0f4mawj04db35p1dvkffdqkz8pkhc0jzh9j9x2i63kcz6"))))
312 (native-inputs
313 `(("autoconf" ,autoconf)
314 ("automake" ,automake)
315 ("guile" ,guile-for-guile-emacs)
316 ,@(package-native-inputs emacs)))
317 (arguments
318 (substitute-keyword-arguments `(;; Build fails if we allow parallel build.
319 #:parallel-build? #f
320 ;; Tests aren't passing for now.
321 #:tests? #f
322 ,@(package-arguments emacs))
323 ((#:phases phases)
324 `(modify-phases ,phases
325 (add-after 'unpack 'autogen
326 (lambda _
327 (invoke "sh" "autogen.sh")))
328 ;; Build sometimes fails: deps/dispnew.d: No such file or directory
329 (add-before 'build 'make-deps-dir
330 (lambda _
331 (invoke "mkdir" "-p" "src/deps")))))))))
332
333 \f
334 ;;;
335 ;;; Emacs hacking.
336 ;;;
337
338 (define-public emacs-geiser
339 (package
340 (name "emacs-geiser")
341 (version "0.10")
342 (source (origin
343 (method url-fetch)
344 (uri (string-append "mirror://savannah/geiser/" version
345 "/geiser-" version ".tar.gz"))
346 (sha256
347 (base32
348 "0pj3l7p8d60c9b4vfprnv6g5l61d74pls4b5dvd84cn4ky9mzwjv"))))
349 (build-system gnu-build-system)
350 (arguments
351 '(#:phases
352 (modify-phases %standard-phases
353 (add-after 'install 'post-install
354 (lambda* (#:key outputs #:allow-other-keys)
355 (symlink "geiser-install.el"
356 (string-append (assoc-ref outputs "out")
357 "/share/emacs/site-lisp/"
358 "geiser-autoloads.el"))
359 #t)))))
360 (inputs `(("guile" ,guile-2.2)))
361 (native-inputs `(("emacs" ,emacs-minimal)))
362 (home-page "https://nongnu.org/geiser/")
363 (synopsis "Collection of Emacs modes for Guile and Racket hacking")
364 (description
365 "Geiser is a collection of Emacs major and minor modes that conspire with
366 one or more Scheme implementations to keep the Lisp Machine Spirit alive. The
367 continuously running Scheme interpreter takes the center of the stage in
368 Geiser. A bundle of Elisp shims orchestrates the dialog between the Scheme
369 implementation, Emacs and, ultimately, the schemer, giving them access to live
370 metadata.")
371 (license license:bsd-3)))
372
373 (define-public geiser
374 (deprecated-package "geiser" emacs-geiser))
375
376 (define-public emacs-paredit
377 (package
378 (name "emacs-paredit")
379 (version "24")
380 (source (origin
381 (method url-fetch)
382 (uri (string-append "http://mumble.net/~campbell/emacs/paredit-"
383 version ".el"))
384 (sha256
385 (base32
386 "0pp3n8q6kc70blqsaw0zlzp6bc327dpgdrjr0cnh7hqg1lras7ka"))))
387 (build-system emacs-build-system)
388 (home-page "http://mumble.net/~campbell/emacs/paredit/")
389 (synopsis "Emacs minor mode for editing parentheses")
390 (description
391 "ParEdit (paredit.el) is a minor mode for performing structured editing
392 of S-expression data. The typical example of this would be Lisp or Scheme
393 source code.
394
395 ParEdit helps **keep parentheses balanced** and adds many keys for moving
396 S-expressions and moving around in S-expressions. Its behavior can be jarring
397 for those who may want transient periods of unbalanced parentheses, such as
398 when typing parentheses directly or commenting out code line by line.")
399 (license license:gpl3+)))
400
401 (define-public paredit
402 (deprecated-package "paredit" emacs-paredit))
403
404 (define-public git-modes
405 (package
406 (name "emacs-git-modes")
407 (version "1.2.8")
408 (source (origin
409 (method url-fetch)
410 (uri (string-append
411 "https://github.com/magit/git-modes/archive/"
412 version ".tar.gz"))
413 (file-name (string-append name "-" version ".tar.gz"))
414 (sha256
415 (base32
416 "0h49f68yn0q4lg054adqii4qja1z2pzybm7nf4kvpq7fzjrzgv1q"))))
417 (build-system emacs-build-system)
418 (home-page "https://github.com/magit/git-modes")
419 (synopsis "Emacs major modes for Git configuration files")
420 (description
421 "This package provides Emacs major modes for editing various Git
422 configuration files, such as .gitattributes, .gitignore, and .git/config.")
423 (license license:gpl3+)))
424
425 (define-public git-modes/old-name
426 (deprecated-package "git-modes" git-modes))
427
428 (define-public emacs-with-editor
429 (package
430 (name "emacs-with-editor")
431 (version "2.7.3")
432 (source (origin
433 (method url-fetch)
434 (uri (string-append
435 "https://github.com/magit/with-editor/archive/v"
436 version ".tar.gz"))
437 (file-name (string-append name "-" version ".tar.gz"))
438 (sha256
439 (base32
440 "1ln2s0kckzkv50qmr6x1kb2j30cfjii0vs6lpghg7ff4lav8jqgh"))))
441 (build-system emacs-build-system)
442 (propagated-inputs
443 `(("emacs-dash" ,emacs-dash)))
444 (home-page "https://github.com/magit/with-editor")
445 (synopsis "Emacs library for using Emacsclient as EDITOR")
446 (description
447 "This package provides an Emacs library to use the Emacsclient as
448 @code{$EDITOR} of child processes, making sure they know how to call home.
449 For remote processes a substitute is provided, which communicates with Emacs
450 on stdout instead of using a socket as the Emacsclient does.")
451 (license license:gpl3+)))
452
453 (define-public emacs-magit
454 (package
455 (name "emacs-magit")
456 (version "2.13.0")
457 (source (origin
458 (method url-fetch)
459 (uri (string-append
460 "https://github.com/magit/magit/releases/download/"
461 version "/magit-" version ".tar.gz"))
462 (sha256
463 (base32
464 "1ygaah3dd3nxpyd17297xgvdcgr7pgzzwlmpnmchki0kiwgg3sbc"))))
465 (build-system gnu-build-system)
466 (native-inputs `(("texinfo" ,texinfo)
467 ("emacs" ,emacs-minimal)))
468 (inputs
469 `(("git" ,git)
470 ("perl" ,perl)))
471 (propagated-inputs
472 `(("dash" ,emacs-dash)
473 ("ghub" ,emacs-ghub)
474 ("magit-popup" ,emacs-magit-popup)
475 ("with-editor" ,emacs-with-editor)))
476 (arguments
477 `(#:test-target "test"
478 #:tests? #f ; tests are not included in the release
479
480 #:make-flags
481 (list (string-append "PREFIX=" %output)
482 ;; Don't put .el files in a sub-directory.
483 (string-append "lispdir=" %output "/share/emacs/site-lisp")
484 (string-append "DASH_DIR="
485 (assoc-ref %build-inputs "dash")
486 "/share/emacs/site-lisp/guix.d/dash-"
487 ,(package-version emacs-dash))
488 (string-append "GHUB_DIR="
489 (assoc-ref %build-inputs "ghub")
490 "/share/emacs/site-lisp/guix.d/ghub-"
491 ,(package-version emacs-ghub))
492 (string-append "MAGIT_POPUP_DIR="
493 (assoc-ref %build-inputs "magit-popup")
494 "/share/emacs/site-lisp/guix.d/magit-popup-"
495 ,(package-version emacs-magit-popup))
496 (string-append "WITH_EDITOR_DIR="
497 (assoc-ref %build-inputs "with-editor")
498 "/share/emacs/site-lisp/guix.d/with-editor-"
499 ,(package-version emacs-with-editor)))
500
501 #:phases
502 (modify-phases %standard-phases
503 (delete 'configure)
504 (add-before
505 'build 'patch-exec-paths
506 (lambda* (#:key inputs #:allow-other-keys)
507 (let ((perl (assoc-ref inputs "perl")))
508 (substitute* "lisp/magit-sequence.el"
509 (("perl") (string-append perl "/bin/perl")))
510 #t))))))
511 (home-page "https://magit.vc/")
512 (synopsis "Emacs interface for the Git version control system")
513 (description
514 "With Magit, you can inspect and modify your Git repositories with Emacs.
515 You can review and commit the changes you have made to the tracked files, for
516 example, and you can browse the history of past changes. There is support for
517 cherry picking, reverting, merging, rebasing, and other common Git
518 operations.")
519 (license license:gpl3+)))
520
521 (define-public magit
522 (deprecated-package "magit" emacs-magit))
523
524 (define-public emacs-magit-svn
525 (package
526 (name "emacs-magit-svn")
527 (version "2.2.0")
528 (source (origin
529 (method url-fetch)
530 (uri (string-append
531 "https://github.com/magit/magit-svn/archive/"
532 version ".tar.gz"))
533 (file-name (string-append name "-" version ".tar.gz"))
534 (sha256
535 (base32
536 "1c3n377v436zaxamlsz04y1ahdhp96x1vd43zaryv4y10m02ba47"))))
537 (build-system trivial-build-system)
538 (native-inputs `(("emacs" ,emacs-minimal)
539 ("tar" ,tar)
540 ("gzip" ,gzip)))
541 (propagated-inputs `(("dash" ,emacs-dash)
542 ("with-editor" ,emacs-with-editor)
543 ("magit" ,emacs-magit)))
544 (arguments
545 `(#:modules ((guix build utils)
546 (guix build emacs-utils))
547
548 #:builder
549 (begin
550 (use-modules (guix build utils)
551 (guix build emacs-utils))
552
553 (let* ((tar (string-append (assoc-ref %build-inputs "tar")
554 "/bin/tar"))
555 (PATH (string-append (assoc-ref %build-inputs "gzip")
556 "/bin"))
557 (emacs (string-append (assoc-ref %build-inputs "emacs")
558 "/bin/emacs"))
559 (magit (string-append (assoc-ref %build-inputs "magit")
560 "/share/emacs/site-lisp"))
561 (dash (string-append (assoc-ref %build-inputs "dash")
562 "/share/emacs/site-lisp/guix.d/dash-"
563 ,(package-version emacs-dash)))
564 (with-editor (string-append (assoc-ref %build-inputs "with-editor")
565 "/share/emacs/site-lisp/guix.d/with-editor-"
566 ,(package-version emacs-with-editor)))
567 (source (assoc-ref %build-inputs "source"))
568 (lisp-dir (string-append %output "/share/emacs/site-lisp")))
569 (setenv "PATH" PATH)
570 (invoke tar "xvf" source)
571
572 (install-file (string-append "magit-svn-" ,version "/magit-svn.el")
573 lisp-dir)
574
575 (with-directory-excursion lisp-dir
576 (parameterize ((%emacs emacs))
577 (emacs-generate-autoloads ,name lisp-dir)
578 (setenv "EMACSLOADPATH"
579 (string-append ":" magit ":" dash ":" with-editor))
580 (emacs-batch-eval '(byte-compile-file "magit-svn.el"))))
581 #t))))
582 (home-page "https://github.com/magit/magit-svn")
583 (synopsis "Git-SVN extension to Magit")
584 (description
585 "This package is an extension to Magit, the Git Emacs mode, providing
586 support for Git-SVN.")
587 (license license:gpl3+)))
588
589 (define-public magit-svn
590 (deprecated-package "magit-svn" emacs-magit-svn))
591
592 (define-public emacs-magit-popup
593 (package
594 (name "emacs-magit-popup")
595 (version "2.12.4")
596 (source (origin
597 (method git-fetch)
598 (uri (git-reference
599 (url "https://github.com/magit/magit-popup.git")
600 (commit (string-append "v" version))))
601 (file-name (git-file-name name version))
602 (sha256
603 (base32
604 "08952nzn0cb6gxscqyiljk4fq2zxjvr3ism0lvgw0gs9hl5phiwx"))))
605 (build-system emacs-build-system)
606 (arguments
607 `(#:phases
608 (modify-phases %standard-phases
609 (add-before 'install 'make-info
610 (lambda _
611 (invoke "make" "info"))))))
612 (native-inputs
613 `(("texinfo" ,texinfo)))
614 (propagated-inputs
615 `(("emacs-dash" ,emacs-dash)))
616 (home-page "https://github.com/magit/magit-popup")
617 (synopsis "Define prefix-infix-suffix command combos")
618 (description
619 "This library implements a generic interface for toggling switches and
620 setting options and then invoking an Emacs command which does something with
621 these arguments. The prototypical use is for the command to call an external
622 process, passing on the arguments as command line arguments.")
623 (license license:gpl3+)))
624
625 (define-public emacs-ghub
626 (package
627 (name "emacs-ghub")
628 (version "2.0.1")
629 (source (origin
630 (method url-fetch)
631 (uri (string-append
632 "https://github.com/magit/ghub/archive/v"
633 version ".tar.gz"))
634 (file-name (string-append name "-" version ".tar.gz"))
635 (sha256
636 (base32
637 "0d0qj5r1bm2aidi61rigrdaycxnyb7y1ivb3h8rpvvapsf8sk7z0"))))
638 (build-system emacs-build-system)
639 (arguments
640 `(#:phases
641 (modify-phases %standard-phases
642 (add-before 'install 'make-info
643 (lambda _
644 (invoke "make" "info"))))))
645 (native-inputs
646 `(("texinfo" ,texinfo)))
647 (home-page "https://github.com/magit/ghub")
648 (synopsis "Emacs client library for Github API and Gitlab API")
649 (description
650 "This package provides 2 files: @file{ghub.el} and @file{glab.el},
651 which are the libraries that provide basic support for using the Github and
652 Gitlab APIs from Emacs packages. It abstracts access to API resources using
653 only a handful of functions that are not resource-specific.")
654 (license license:gpl3+)))
655
656 (define-public emacs-scribble-mode
657 (let ((commit "34e9e5edb921813b6483e0fefa848efb6ee4b314")
658 (version "0.0")
659 (revision 0))
660 (package
661 (name "emacs-scribble-mode")
662 (version (if (zero? revision)
663 version
664 (string-append version "-"
665 (number->string revision)
666 "." (string-take commit 7))))
667 (source (origin
668 (method git-fetch)
669 (uri (git-reference
670 (url "https://github.com/emacs-pe/scribble-mode.git")
671 (commit commit)))
672 (sha256
673 (base32
674 "0598byqpz2q6yi2q4dwd77jj9z3n99z34d3an51s9m2za0nh1qvp"))))
675 (build-system emacs-build-system)
676 (home-page "https://github.com/emacs-pe/scribble-mode")
677 (synopsis "Emacs mode for editing the Scribble documentation syntax.")
678 (description
679 "This package provides basic syntax highlighting and editing support
680 for editing Racket's Scribble documentation syntax in Emacs.")
681 (license license:gpl3+))))
682
683 (define-public emacs-haskell-mode
684 (package
685 (name "emacs-haskell-mode")
686 (version "16.1")
687 (source (origin
688 (method url-fetch)
689 (file-name (string-append name "-" version ".tar.gz"))
690 (uri (string-append
691 "https://github.com/haskell/haskell-mode/archive/v"
692 version ".tar.gz"))
693 (sha256
694 (base32 "0g6lcjw7lcgavv3yrd8xjcyqgfyjl787y32r1z14amw2f009m78h"))
695 (patches
696 (search-patches ; backport test failure fixes
697 "haskell-mode-unused-variables.patch"
698 "haskell-mode-make-check.patch"))))
699 (inputs
700 `(("emacs-el-search" ,emacs-el-search) ; for tests
701 ("emacs-stream" ,emacs-stream))) ; for tests
702 (propagated-inputs
703 `(("emacs-dash" ,emacs-dash)))
704 (native-inputs
705 `(("emacs" ,emacs-minimal)
706 ("texinfo" ,texinfo)))
707 (build-system gnu-build-system)
708 (arguments
709 `(#:make-flags (list (string-append "EMACS="
710 (assoc-ref %build-inputs "emacs")
711 "/bin/emacs"))
712 #:modules ((ice-9 match)
713 (srfi srfi-26)
714 ,@%gnu-build-system-modules)
715 #:phases
716 (modify-phases %standard-phases
717 (delete 'configure)
718 (add-before
719 'build 'pre-build
720 (lambda* (#:key inputs #:allow-other-keys)
721 (define (el-dir store-dir)
722 (match (find-files store-dir "\\.el$")
723 ((f1 f2 ...) (dirname f1))
724 (_ "")))
725
726 (let ((sh (string-append (assoc-ref inputs "bash") "/bin/sh")))
727 (define emacs-prefix? (cut string-prefix? "emacs-" <>))
728
729 (setenv "SHELL" "sh")
730 (setenv "EMACSLOADPATH"
731 (string-concatenate
732 (map (match-lambda
733 (((? emacs-prefix? name) . dir)
734 (string-append (el-dir dir) ":"))
735 (_ ""))
736 inputs)))
737 (substitute* (find-files "." "\\.el") (("/bin/sh") sh))
738 ;; embed filename to fix test failure
739 (let ((file "tests/haskell-cabal-tests.el"))
740 (substitute* file
741 (("\\(buffer-file-name\\)")
742 (format #f "(or (buffer-file-name) ~s)" file))))
743 #t)))
744 (replace
745 'install
746 (lambda* (#:key outputs #:allow-other-keys)
747 (let* ((out (assoc-ref outputs "out"))
748 (el-dir (string-append out "/share/emacs/site-lisp"))
749 (doc (string-append
750 out "/share/doc/haskell-mode-" ,version))
751 (info (string-append out "/share/info")))
752 (define (copy-to-dir dir files)
753 (for-each (lambda (f)
754 (install-file f dir))
755 files))
756
757 (with-directory-excursion "doc"
758 (invoke "makeinfo" "haskell-mode.texi")
759 (install-file "haskell-mode.info" info))
760 (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md"))
761 (copy-to-dir el-dir (find-files "." "\\.elc?"))
762 ;; These are part of other packages.
763 (with-directory-excursion el-dir
764 (for-each delete-file '("dash.el" "ert.el")))
765 #t))))))
766 (home-page "https://github.com/haskell/haskell-mode")
767 (synopsis "Haskell mode for Emacs")
768 (description
769 "This is an Emacs mode for editing, debugging and developing Haskell
770 programs.")
771 (license license:gpl3+)))
772
773 (define-public haskell-mode
774 (deprecated-package "haskell-mode" emacs-haskell-mode))
775
776 (define-public emacs-flycheck
777 (package
778 (name "emacs-flycheck")
779 (version "31")
780 (source (origin
781 (method url-fetch)
782 (uri (string-append
783 "https://github.com/flycheck/flycheck/releases/download/"
784 version "/flycheck-" version ".tar"))
785 (sha256
786 (base32
787 "01rnwan16m7cyyrfca3c5c60mbj2r3knkpzbhji2fczsf0wns240"))
788 (modules '((guix build utils)))
789 (snippet `(begin
790 ;; Change 'flycheck-version' so that it does not
791 ;; attempt to get its version from pkg-info.el.
792 (substitute* "flycheck.el"
793 (("\\(pkg-info-version-info 'flycheck\\)")
794 (string-append "\"" ,version "\"")))
795 #t))))
796 (build-system emacs-build-system)
797 (propagated-inputs
798 `(("emacs-dash" ,emacs-dash)))
799 (home-page "https://www.flycheck.org")
800 (synopsis "On-the-fly syntax checking")
801 (description
802 "This package provides on-the-fly syntax checking for GNU Emacs. It is a
803 replacement for the older Flymake extension which is part of GNU Emacs, with
804 many improvements and additional features.
805
806 Flycheck provides fully-automatic, fail-safe, on-the-fly background syntax
807 checking for over 30 programming and markup languages with more than 70
808 different tools. It highlights errors and warnings inline in the buffer, and
809 provides an optional IDE-like error list.")
810 (license license:gpl3+))) ;+GFDLv1.3+ for the manual
811
812 (define-public emacs-a
813 (package
814 (name "emacs-a")
815 (version "0.1.1")
816 (source (origin
817 (method git-fetch)
818 (uri (git-reference
819 (url "https://github.com/plexus/a.el.git")
820 (commit (string-append "v" version))))
821 (file-name (git-file-name name version))
822 (sha256
823 (base32
824 "00v9w6qg3bkwdhypq0ssf0phdh0f4bcq59c20lngd6vhk0204dqi"))))
825 (build-system emacs-build-system)
826 (home-page "https://github.com/plexus/a.el/")
827 (synopsis
828 "Emacs library for dealing with association lists and hash tables")
829 (description "@code{emacs-a} provides Emacs Lisp functions for dealing
830 with associative structures in a uniform and functional way. These functions
831 can take association lists, hash tables, and in some cases vectors (where the
832 index is considered the key).")
833 (license license:gpl3+)))
834
835 \f
836 ;;;
837 ;;; Web browsing.
838 ;;;
839
840 (define-public emacs-w3m
841 ;; Emacs-w3m follows a "rolling release" model.
842 (package
843 (name "emacs-w3m")
844 (version "2018-11-11")
845 (source (origin
846 (method cvs-fetch)
847 (uri (cvs-reference
848 (root-directory
849 ":pserver:anonymous@cvs.namazu.org:/storage/cvsroot")
850 (module "emacs-w3m")
851 (revision version)))
852 (file-name (string-append name "-" version "-checkout"))
853 (sha256
854 (base32
855 "0nvahdbjs12zg7zsk4gql02mvnv56cf1rwj2f5p42lwp3xvswiwp"))))
856 (build-system gnu-build-system)
857 (native-inputs `(("autoconf" ,autoconf)
858 ("texinfo" ,texinfo)
859 ("emacs" ,emacs-minimal)))
860 (inputs `(("w3m" ,w3m)
861 ("imagemagick" ,imagemagick)))
862 (arguments
863 `(#:modules ((guix build gnu-build-system)
864 (guix build utils)
865 (guix build emacs-utils))
866 #:imported-modules (,@%gnu-build-system-modules
867 (guix build emacs-utils))
868 #:configure-flags
869 (let ((out (assoc-ref %outputs "out")))
870 (list (string-append "--with-lispdir="
871 out "/share/emacs/site-lisp")
872 (string-append "--with-icondir="
873 out "/share/images/emacs-w3m")
874 ;; Leave .el files uncompressed, otherwise GC can't
875 ;; identify run-time dependencies. See
876 ;; <http://lists.gnu.org/archive/html/guix-devel/2015-12/msg00208.html>
877 "--without-compress-install"))
878 #:tests? #f ; no check target
879 #:phases
880 (modify-phases %standard-phases
881 (add-after 'unpack 'autoconf
882 (lambda _
883 (invoke "autoconf")))
884 (add-before 'configure 'support-emacs!
885 (lambda _
886 ;; For some reason 'AC_PATH_EMACS' thinks that 'Emacs 26' is
887 ;; unsupported.
888 (substitute* "configure"
889 (("EMACS_FLAVOR=unsupported")
890 "EMACS_FLAVOR=emacs"))
891 #t))
892 (add-before 'build 'patch-exec-paths
893 (lambda* (#:key inputs outputs #:allow-other-keys)
894 (let ((out (assoc-ref outputs "out"))
895 (w3m (assoc-ref inputs "w3m"))
896 (imagemagick (assoc-ref inputs "imagemagick"))
897 (coreutils (assoc-ref inputs "coreutils")))
898 (make-file-writable "w3m.el")
899 (emacs-substitute-variables "w3m.el"
900 ("w3m-command" (string-append w3m "/bin/w3m"))
901 ("w3m-touch-command"
902 (string-append coreutils "/bin/touch"))
903 ("w3m-icon-directory"
904 (string-append out "/share/images/emacs-w3m")))
905 (make-file-writable "w3m-image.el")
906 (emacs-substitute-variables "w3m-image.el"
907 ("w3m-imagick-convert-program"
908 (string-append imagemagick "/bin/convert"))
909 ("w3m-imagick-identify-program"
910 (string-append imagemagick "/bin/identify")))
911 #t)))
912 (replace 'install
913 (lambda* (#:key outputs #:allow-other-keys)
914 (invoke "make" "install" "install-icons")
915 (with-directory-excursion
916 (string-append (assoc-ref outputs "out")
917 "/share/emacs/site-lisp")
918 (for-each delete-file '("ChangeLog" "ChangeLog.1"))
919 (symlink "w3m-load.el" "w3m-autoloads.el")
920 #t))))))
921 (home-page "http://emacs-w3m.namazu.org/")
922 (synopsis "Simple Web browser for Emacs based on w3m")
923 (description
924 "Emacs-w3m is an emacs interface for the w3m web browser.")
925 (license license:gpl2+)))
926
927 (define-public emacs-wget
928 (package
929 (name "emacs-wget")
930 (version "0.5.0")
931 (source (origin
932 (method url-fetch)
933 (uri (string-append "mirror://debian/pool/main/w/wget-el/wget-el_"
934 version ".orig.tar.gz"))
935 (sha256
936 (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff"))))
937 (build-system gnu-build-system)
938 (inputs `(("wget" ,wget)))
939 (native-inputs `(("emacs" ,emacs-minimal)))
940 (arguments
941 `(#:modules ((guix build gnu-build-system)
942 (guix build utils)
943 (guix build emacs-utils))
944 #:imported-modules (,@%gnu-build-system-modules
945 (guix build emacs-utils))
946 #:tests? #f ; no check target
947 #:phases
948 (modify-phases %standard-phases
949 (replace 'configure
950 (lambda* (#:key outputs #:allow-other-keys)
951 (substitute* "Makefile"
952 (("/usr/local") (assoc-ref outputs "out"))
953 (("/site-lisp/emacs-wget") "/site-lisp"))
954 #t))
955 (add-before 'build 'patch-exec-paths
956 (lambda* (#:key inputs outputs #:allow-other-keys)
957 (let ((wget (assoc-ref inputs "wget")))
958 (emacs-substitute-variables "wget.el"
959 ("wget-command" (string-append wget "/bin/wget"))))
960 #t))
961 (add-after 'install 'post-install
962 (lambda* (#:key outputs #:allow-other-keys)
963 (emacs-generate-autoloads
964 "wget" (string-append (assoc-ref outputs "out")
965 "/share/emacs/site-lisp/"))
966 #t)))))
967 (home-page "http://www.emacswiki.org/emacs/EmacsWget")
968 (synopsis "Simple file downloader for Emacs based on wget")
969 (description
970 "Emacs-wget is an emacs interface for the wget file downloader.")
971 (license license:gpl2+)))
972
973 \f
974 ;;;
975 ;;; Multimedia.
976 ;;;
977
978 (define-public emacs-emms
979 (package
980 (name "emacs-emms")
981 (version "5.1")
982 (source (origin
983 (method url-fetch)
984 (uri (string-append "mirror://gnu/emms/emms-"
985 version ".tar.gz"))
986 (sha256
987 (base32
988 "149ddczyx6x10zn4mn8g0rll1rwf4yciv8x6j0qdnlbwszblx2x6"))
989 (modules '((guix build utils)))
990 (snippet
991 '(begin
992 (substitute* "Makefile"
993 (("/usr/bin/install-info")
994 ;; No need to use 'install-info' since it would create a
995 ;; useless 'dir' file.
996 "true")
997 (("^INFODIR=.*")
998 ;; Install Info files to $out/share/info, not $out/info.
999 "INFODIR := $(PREFIX)/share/info\n")
1000 (("/site-lisp/emms")
1001 ;; Install directly in share/emacs/site-lisp, not in a
1002 ;; sub-directory.
1003 "/site-lisp")
1004 (("^all: (.*)\n" _ rest)
1005 ;; Build 'emms-print-metadata'.
1006 (string-append "all: " rest " emms-print-metadata\n")))
1007 #t))))
1008 (build-system gnu-build-system)
1009 (arguments
1010 `(#:modules ((guix build gnu-build-system)
1011 (guix build utils)
1012 (guix build emacs-utils)
1013 (ice-9 ftw))
1014 #:imported-modules (,@%gnu-build-system-modules
1015 (guix build emacs-utils))
1016
1017 #:phases
1018 (modify-phases %standard-phases
1019 (replace 'configure
1020 (lambda* (#:key inputs outputs #:allow-other-keys)
1021 (let ((out (assoc-ref outputs "out"))
1022 (flac (assoc-ref inputs "flac"))
1023 (vorbis (assoc-ref inputs "vorbis-tools"))
1024 (alsa (assoc-ref inputs "alsa-utils"))
1025 (mpg321 (assoc-ref inputs "mpg321"))
1026 (mp3info (assoc-ref inputs "mp3info"))
1027 (opus (assoc-ref inputs "opus-tools")))
1028 ;; Specify the installation directory.
1029 (substitute* "Makefile"
1030 (("PREFIX=.*$")
1031 (string-append "PREFIX := " out "\n")))
1032
1033 (setenv "SHELL" (which "sh"))
1034 (setenv "CC" "gcc")
1035
1036 ;; Specify the absolute file names of the various
1037 ;; programs so that everything works out-of-the-box.
1038 (with-directory-excursion "lisp"
1039 (emacs-substitute-variables
1040 "emms-player-mpg321-remote.el"
1041 ("emms-player-mpg321-remote-command"
1042 (string-append mpg321 "/bin/mpg321")))
1043 (substitute* "emms-player-simple.el"
1044 (("\"ogg123\"")
1045 (string-append "\"" vorbis "/bin/ogg123\"")))
1046 (substitute* "emms-player-simple.el"
1047 (("\"mpg321\"")
1048 (string-append "\"" mpg321 "/bin/mpg321\"")))
1049 (emacs-substitute-variables "emms-info-ogginfo.el"
1050 ("emms-info-ogginfo-program-name"
1051 (string-append vorbis "/bin/ogginfo")))
1052 (emacs-substitute-variables "emms-info-opusinfo.el"
1053 ("emms-info-opusinfo-program-name"
1054 (string-append opus "/bin/opusinfo")))
1055 (emacs-substitute-variables "emms-info-libtag.el"
1056 ("emms-info-libtag-program-name"
1057 (string-append out "/bin/emms-print-metadata")))
1058 (emacs-substitute-variables "emms-info-mp3info.el"
1059 ("emms-info-mp3info-program-name"
1060 (string-append mp3info "/bin/mp3info")))
1061 (emacs-substitute-variables "emms-info-metaflac.el"
1062 ("emms-info-metaflac-program-name"
1063 (string-append flac "/bin/metaflac")))
1064 (emacs-substitute-variables "emms-source-file.el"
1065 ("emms-source-file-gnu-find" (which "find")))
1066 (substitute* "emms-volume-amixer.el"
1067 (("\"amixer\"")
1068 (string-append "\"" alsa "/bin/amixer\"")))
1069 (substitute* "emms-tag-editor.el"
1070 (("\"mp3info\"")
1071 (string-append "\"" mp3info "/bin/mp3info\"")))))))
1072 (add-before 'install 'pre-install
1073 (lambda* (#:key outputs #:allow-other-keys)
1074 ;; The 'install' rule expects the target directories to exist.
1075 (let* ((out (assoc-ref outputs "out"))
1076 (bin (string-append out "/bin"))
1077 (man1 (string-append out "/share/man/man1")))
1078 (mkdir-p bin)
1079 (mkdir-p man1)
1080
1081 ;; Ensure that files are not rejected by gzip
1082 (let ((early-1980 315619200)) ; 1980-01-02 UTC
1083 (ftw "." (lambda (file stat flag)
1084 (unless (<= early-1980 (stat:mtime stat))
1085 (utime file early-1980 early-1980))
1086 #t)))
1087 #t)))
1088 (add-after 'install 'post-install
1089 (lambda* (#:key outputs #:allow-other-keys)
1090 (let ((out (assoc-ref outputs "out")))
1091 (symlink "emms-auto.el"
1092 (string-append out "/share/emacs/site-lisp/"
1093 "emms-autoloads.el")))
1094 #t)))
1095 #:tests? #f))
1096 (native-inputs `(("emacs" ,emacs-minimal) ;for (guix build emacs-utils)
1097 ("texinfo" ,texinfo)))
1098 (inputs `(("alsa-utils" ,alsa-utils)
1099 ("flac" ,flac) ;for metaflac
1100 ("vorbis-tools" ,vorbis-tools)
1101 ("mpg321" ,mpg321)
1102 ("taglib" ,taglib)
1103 ("mp3info" ,mp3info)
1104 ("opus-tools" ,opus-tools)))
1105 (properties '((upstream-name . "emms")))
1106 (synopsis "Emacs Multimedia System")
1107 (description
1108 "EMMS is the Emacs Multimedia System. It is a small front-end which
1109 can control one of the supported external players. Thus, it supports
1110 whatever formats are supported by your music player. It also
1111 supports tagging and playlist management, all behind a clean and
1112 light user interface.")
1113 (home-page "https://www.gnu.org/software/emms/")
1114 (license license:gpl3+)))
1115
1116 (define-public emacs-emms-player-mpv
1117 ;; A new mpv backend is included in Emms from 5.0.
1118 (deprecated-package "emacs-emms-player-mpv" emacs-emms))
1119
1120 (define-public emacs-emms-mode-line-cycle
1121 (package
1122 (name "emacs-emms-mode-line-cycle")
1123 (version "0.2.5")
1124 (source
1125 (origin
1126 (method url-fetch)
1127 (uri (string-append "https://github.com/momomo5717/emms-mode-line-cycle"
1128 "/archive/" version ".tar.gz"))
1129 (file-name (string-append name "-" version ".tar.gz"))
1130 (sha256
1131 (base32
1132 "0ifszi930pnaxk1x8pcydmvnp06868gc7nfx14q17zbajbx735k6"))))
1133 (build-system emacs-build-system)
1134 (propagated-inputs
1135 `(("emms" ,emacs-emms)))
1136 (home-page "https://github.com/momomo5717/emms-mode-line-cycle")
1137 (synopsis "Display the EMMS mode line as a ticker")
1138 (description
1139 "This is a minor mode for updating the EMMS mode-line string cyclically
1140 within a specified width. It is useful for displaying long track titles.")
1141 (license license:gpl3+)))
1142
1143 \f
1144 ;;;
1145 ;;; Miscellaneous.
1146 ;;;
1147
1148 (define-public emacs-bbdb
1149 (package
1150 (name "emacs-bbdb")
1151 (version "3.1.2")
1152 (source (origin
1153 (method url-fetch)
1154 (uri (string-append "mirror://savannah/bbdb/bbdb-"
1155 version ".tar.gz"))
1156 (sha256
1157 (base32
1158 "1gs16bbpiiy01w9pyg12868r57kx1v3hnw04gmqsmpc40l1hyy05"))
1159 (modules '((guix build utils)))
1160 (snippet
1161 ;; We don't want to build and install the PDF.
1162 '(begin
1163 (substitute* "doc/Makefile.in"
1164 (("^doc_DATA = .*$")
1165 "doc_DATA =\n"))
1166 #t))))
1167 (build-system gnu-build-system)
1168 (arguments
1169 '(#:phases
1170 (modify-phases %standard-phases
1171 (add-after 'install 'post-install
1172 (lambda* (#:key outputs #:allow-other-keys)
1173 ;; Add an autoloads file with the right name for guix.el.
1174 (let* ((out (assoc-ref outputs "out"))
1175 (site (string-append out "/share/emacs/site-lisp")))
1176 (with-directory-excursion site
1177 (symlink "bbdb-loaddefs.el" "bbdb-autoloads.el")))
1178 #t)))))
1179 (native-inputs `(("emacs" ,emacs-minimal)))
1180 (home-page "https://savannah.nongnu.org/projects/bbdb/")
1181 (synopsis "Contact management utility for Emacs")
1182 (description
1183 "BBDB is the Insidious Big Brother Database for GNU Emacs. It provides
1184 an address book for email and snail mail addresses, phone numbers and the
1185 like. It can be linked with various Emacs mail clients (Message and Mail
1186 mode, Rmail, Gnus, MH-E, and VM). BBDB is fully customizable.")
1187 (license license:gpl3+)))
1188
1189 (define-public bbdb
1190 (deprecated-package "bbdb" emacs-bbdb))
1191
1192 (define-public emacs-aggressive-indent
1193 (package
1194 (name "emacs-aggressive-indent")
1195 (version "1.8.3")
1196 (source (origin
1197 (method url-fetch)
1198 (uri (string-append "https://elpa.gnu.org/packages/"
1199 "aggressive-indent-" version ".el"))
1200 (sha256
1201 (base32
1202 "0jnzccl50x0wapprgwxinp99pwwa6j43q6msn4gv437j7swy8wnj"))))
1203 (build-system emacs-build-system)
1204 (home-page "https://elpa.gnu.org/packages/aggressive-indent.html")
1205 (synopsis "Minor mode to aggressively keep your code always indented")
1206 (description
1207 "@code{aggressive-indent-mode} is a minor mode that keeps your code
1208 always indented. It reindents after every change, making it more reliable
1209 than @code{electric-indent-mode}.")
1210 (license license:gpl2+)))
1211
1212 (define-public emacs-ag
1213 (package
1214 (name "emacs-ag")
1215 (version "0.47")
1216 (source (origin
1217 (method url-fetch)
1218 (uri (string-append
1219 "https://github.com/Wilfred/ag.el/archive/"
1220 version ".tar.gz"))
1221 (file-name (string-append name "-" version ".tar.gz"))
1222 (sha256
1223 (base32
1224 "1rlmp6wnyhqfg86dbz17r914msp58favn4kd4yrdwyia265a4lar"))))
1225 (build-system emacs-build-system)
1226 (arguments
1227 `(#:phases
1228 (modify-phases %standard-phases
1229 (add-before 'install 'make-info
1230 (lambda _
1231 (with-directory-excursion "docs"
1232 (invoke "make" "info"))))
1233 (add-after 'install 'install-info
1234 (lambda* (#:key outputs #:allow-other-keys)
1235 (let* ((out (assoc-ref outputs "out"))
1236 (info (string-append out "/share/info")))
1237 (install-file "docs/_build/texinfo/agel.info" info)
1238 #t))))))
1239 (native-inputs
1240 `(("python-sphinx" ,python-sphinx)
1241 ("texinfo" ,texinfo)))
1242 (propagated-inputs
1243 `(("dash" ,emacs-dash)
1244 ("s" ,emacs-s)
1245 ;; We need to use 'ag' as the executable on remote systems.
1246 ("the-silver-searcher" ,the-silver-searcher)))
1247 (home-page "https://github.com/Wilfred/ag.el")
1248 (synopsis "Front-end for ag (the-silver-searcher) for Emacs")
1249 (description "This package provides the ability to use the silver
1250 searcher, a code searching tool, sometimes abbreviated to @code{ag}. Features
1251 include version control system awareness, use of Perl compatible regular
1252 expressions, editing the search results directly and searching file names
1253 rather than the contents of files.")
1254 (license license:gpl3+)))
1255
1256 (define-public emacs-async
1257 (package
1258 (name "emacs-async")
1259 (home-page "https://github.com/jwiegley/emacs-async")
1260 (version "1.9.3")
1261 (source (origin
1262 (method git-fetch)
1263 (uri (git-reference
1264 (url home-page)
1265 (commit (string-append "v" version))))
1266 (file-name (git-file-name name version))
1267 (sha256
1268 (base32
1269 "1zsnb6dy8p6y68xgidv3dfxaga4biramfw8fq7wac0sc50vc98vq"))))
1270 (build-system emacs-build-system)
1271 (synopsis "Asynchronous processing in Emacs")
1272 (description
1273 "This package provides the ability to call asynchronous functions and
1274 processes. For example, it can be used to run dired commands (for copying,
1275 moving, etc.) asynchronously using @code{dired-async-mode}. Also it is used
1276 as a library for other Emacs packages.")
1277 (license license:gpl3+)))
1278
1279 (define-public emacs-auctex
1280 (package
1281 (name "emacs-auctex")
1282 (version "12.1.0")
1283 (source
1284 (origin
1285 (method url-fetch)
1286 (uri (string-append
1287 "https://elpa.gnu.org/packages/auctex-"
1288 version
1289 ".tar"))
1290 (sha256
1291 (base32
1292 "0iy5x61xqkxaph2hq64sg50l1c6yp6qhzppwadayxkdz00b46sas"))))
1293 (build-system emacs-build-system)
1294 ;; We use 'emacs' because AUCTeX requires dbus at compile time
1295 ;; ('emacs-minimal' does not provide dbus).
1296 (arguments
1297 `(#:emacs ,emacs
1298 #:include '("\\.el$" "^images/" "^latex/" "\\.info$")
1299 #:exclude '("^tests/" "^latex/README")))
1300 (native-inputs
1301 `(("perl" ,perl)))
1302 (home-page "https://www.gnu.org/software/auctex/")
1303 (synopsis "Integrated environment for TeX")
1304 (description
1305 "AUCTeX is a comprehensive customizable integrated environment for
1306 writing input files for TeX, LaTeX, ConTeXt, Texinfo, and docTeX using Emacs
1307 or XEmacs.")
1308 (license license:gpl3+)))
1309
1310 (define-public emacs-autothemer
1311 (package
1312 (name "emacs-autothemer")
1313 (version "0.2.2")
1314 (source
1315 (origin
1316 (method url-fetch)
1317 (uri (string-append "https://github.com/sebastiansturm/autothemer/archive/"
1318 version ".tar.gz"))
1319 (file-name (string-append name "-" version ".tar.gz"))
1320 (sha256
1321 (base32
1322 "0rd28r9wfrbll212am4ih9hrvypx785aff76va2cbfxdwm9kixsa"))))
1323 (build-system emacs-build-system)
1324 (propagated-inputs
1325 `(("emacs-dash" ,emacs-dash)))
1326 (home-page "https://github.com/sebastiansturm/autothemer")
1327 (synopsis "Conveniently create Emacs themes")
1328 (description
1329 "Autothemer provides a thin layer on top of @code{deftheme} and
1330 @code{custom-theme-set-faces} that creates a new custom color theme, based on
1331 a set of simplified face specifications and a user-supplied color palette")
1332 (license license:gpl3+)))
1333
1334 (define-public emacs-howm
1335 (package
1336 (name "emacs-howm")
1337 (version "1.4.4")
1338 (source
1339 (origin
1340 (method url-fetch)
1341 (uri (string-append "http://howm.sourceforge.jp/a/howm-"
1342 version ".tar.gz"))
1343 (sha256
1344 (base32
1345 "0ddm91l6z58j7x59fa966j6q1rg4cinyza4r8ibg80hprn5h31qk"))))
1346 (build-system gnu-build-system)
1347 (native-inputs
1348 `(("emacs" ,emacs-minimal)))
1349 (arguments
1350 `(#:configure-flags
1351 (list (string-append "--with-howmdir=" %output
1352 "/share/emacs/site-lisp/guix.d/howm-" ,version))
1353 #:modules ((guix build gnu-build-system)
1354 ((guix build emacs-build-system) #:prefix emacs:)
1355 (guix build utils))
1356 #:imported-modules (,@%gnu-build-system-modules
1357 (guix build emacs-build-system)
1358 (guix build emacs-utils))
1359 #:phases
1360 (modify-phases %standard-phases
1361 (add-after 'install 'make-autoloads
1362 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
1363 (home-page "http://howm.osdn.jp/")
1364 (synopsis "Note-taking tool for Emacs")
1365 (description "Howm is a note-taking tool for Emacs. Like
1366 code@{emacs-wiki.el}, it facilitates using hyperlinks and doing full-text
1367 searches. Unlike code@{emacs-wiki.el}, it can be combined with any format.")
1368 (license license:gpl1+)))
1369
1370 (define-public emacs-calfw
1371 (package
1372 (name "emacs-calfw")
1373 (version "1.6")
1374 (source
1375 (origin
1376 (method url-fetch)
1377 (uri (string-append
1378 "https://github.com/kiwanami/emacs-calfw/archive/v"
1379 version ".tar.gz"))
1380 (file-name (string-append name "-" version ".tar.gz"))
1381 (sha256
1382 (base32
1383 "1zr91xr0f1xfcv78yxka8vs5ximmq2ixmqf2pkb57kwwnxlypq4i"))))
1384 (build-system emacs-build-system)
1385 (propagated-inputs
1386 `(("emacs-howm" ,emacs-howm)))
1387 (home-page "https://github.com/kiwanami/emacs-calfw/")
1388 (synopsis "Calendar framework for Emacs")
1389 (description
1390 "This package displays a calendar view with various schedule data in the
1391 Emacs buffer.")
1392 (license license:gpl3+)))
1393
1394 (define-public emacs-direnv
1395 (package
1396 (name "emacs-direnv")
1397 (version "1.2.0")
1398 (source
1399 (origin
1400 (method url-fetch)
1401 (uri (string-append
1402 "https://github.com/wbolster/emacs-direnv/archive/"
1403 version ".tar.gz"))
1404 (file-name (string-append name "-" version ".tar.gz"))
1405 (sha256
1406 (base32
1407 "0m9nxawklhiiysyibzzhh2zkxgq1fskqvaqb06f7r8dnhabfy9fr"))))
1408 (build-system emacs-build-system)
1409 (propagated-inputs
1410 `(("dash" ,emacs-dash)
1411 ("with-editor" ,emacs-with-editor)))
1412 (home-page "https://github.com/wbolster/emacs-direnv")
1413 (synopsis "Direnv integration for Emacs")
1414 (description
1415 "This package provides support for invoking direnv to get the environment
1416 for the current file and updating the environment within Emacs to match.
1417
1418 Direnv can be invoked manually, and a global minor mode is included that will
1419 update the environment when the active buffer changes.
1420
1421 Using emacs-direnv means that programs started from Emacs will use the
1422 environment set through Direnv.")
1423 (license license:gpl3+)))
1424
1425 (define-public emacs-ggtags
1426 (package
1427 (name "emacs-ggtags")
1428 (version "0.8.13")
1429 (source
1430 (origin
1431 (method url-fetch)
1432 (uri (string-append "http://elpa.gnu.org/packages/ggtags-"
1433 version ".el"))
1434 (sha256
1435 (base32
1436 "1qa7lcrcmf76sf6dy8sxbg4adq7rg59fm0n5848w3qxgsr0h45fg"))))
1437 (build-system emacs-build-system)
1438 (inputs
1439 `(("global" ,global)))
1440 (arguments
1441 `(#:phases
1442 (modify-phases %standard-phases
1443 (add-after 'unpack 'configure
1444 (lambda* (#:key inputs #:allow-other-keys)
1445 (chmod "ggtags.el" #o644)
1446 (emacs-substitute-variables "ggtags.el"
1447 ("ggtags-executable-directory"
1448 (string-append (assoc-ref inputs "global") "/bin")))
1449 #t)))))
1450 (home-page "https://github.com/leoliu/ggtags")
1451 (synopsis "Frontend to the GNU Global source code tagging system")
1452 (description "@code{ggtags} provides a frontend to the GNU Global source
1453 code tagging system.
1454
1455 Features:
1456
1457 @itemize
1458 @item Build on @code{compile.el} for asynchronicity and its large feature-set.
1459 @item Automatically update Global's tag files when needed with tuning for
1460 large source trees.
1461 @item Intuitive navigation among multiple matches with mode-line display of
1462 current match, total matches and exit status.
1463 @item Read tag with completion.
1464 @item Show definition at point.
1465 @item Jump to #include files.
1466 @item Support search history and saving a search to register/bookmark.
1467 @item Query replace.
1468 @item Manage Global's environment variables on a per-project basis.
1469 @item Highlight (definition) tag at point.
1470 @item Abbreviated display of file names.
1471 @item Support all Global search backends: @code{grep}, @code{idutils}, etc.
1472 @item Support exuberant ctags @url{http://ctags.sourceforge.net/} and
1473 @code{pygments} backend.
1474 @item Support all Global's output formats: @code{grep}, @code{ctags-x},
1475 @code{cscope} etc.
1476 @item Support projects on remote hosts (e.g. via @code{tramp}).
1477 @item Support eldoc.
1478 @item Search @code{GTAGSLIBPATH} for references and symbols.
1479 @end itemize\n")
1480 (license license:gpl3+)))
1481
1482 (define-public emacs-go-mode
1483 (package
1484 (name "emacs-go-mode")
1485 (version "1.5.0")
1486 (source (origin
1487 (method git-fetch)
1488 (uri (git-reference
1489 (url "https://github.com/dominikh/go-mode.el.git")
1490 (commit (string-append "v" version))))
1491 (file-name (git-file-name name version))
1492 (sha256
1493 (base32
1494 "1nd2h50yb0493wvf1h7fzplq45rmqn2w7kxpgnlxzhkvq99v8vzf"))))
1495 (build-system emacs-build-system)
1496 (arguments
1497 `(#:phases
1498 (modify-phases %standard-phases
1499 (add-after 'unpack 'make-writable
1500 (lambda _
1501 (for-each make-file-writable (find-files "." "\\.el$"))
1502 #t)))))
1503 (home-page "https://github.com/dominikh/go-mode.el")
1504 (synopsis "Go mode for Emacs")
1505 (description
1506 "This package provides go-mode, an Emacs mode for working with software
1507 written in the Go programming language.")
1508 (license license:bsd-3)))
1509
1510 (define-public emacs-google-maps
1511 (package
1512 (name "emacs-google-maps")
1513 (version "1.0.0")
1514 (source (origin
1515 (method url-fetch)
1516 (uri (string-append "https://github.com/jd/google-maps.el/"
1517 "archive/" version ".tar.gz"))
1518 (file-name (string-append name "-" version ".tar.gz"))
1519 (sha256
1520 (base32
1521 "014bxapm4d8vjxbzrfjdpsavxyfx981mlcb10aq5rmigr6il8ybs"))))
1522 (build-system emacs-build-system)
1523 (home-page "https://github.com/jd/google-maps.el")
1524 (synopsis "Access Google Maps from Emacs")
1525 (description "The @code{google-maps} package allows to display Google
1526 Maps directly inside Emacs.")
1527 (license license:gpl3+)))
1528
1529 (define-public emacs-graphviz-dot-mode
1530 (let ((commit "c456a2b65c734089e6c44e87209a5a432a741b1a")
1531 (revision "1"))
1532 (package
1533 (name "emacs-graphviz-dot-mode")
1534 (version (string-append "0.3.11-" revision "."
1535 (string-take commit 7)))
1536 (source (origin
1537 (method git-fetch)
1538 (uri (git-reference
1539 (url "https://github.com/ppareit/graphviz-dot-mode.git")
1540 (commit commit)))
1541 (file-name (string-append name "-" version "-checkout"))
1542 (sha256
1543 (base32
1544 "0j1r2rspaakw37b0mx7pwpvdsvixq9sw3xjbww5piihzpdxz58z1"))))
1545 (build-system emacs-build-system)
1546 (arguments
1547 `(#:phases
1548 (modify-phases %standard-phases
1549 (add-before 'install 'make-info
1550 (lambda* (#:key inputs #:allow-other-keys)
1551 (with-directory-excursion "texinfo"
1552 (substitute* "Makefile"
1553 (("\\/usr\\/bin\\/gzip")
1554 (string-append (assoc-ref inputs "gzip") "/bin/gzip")))
1555 (invoke "make"
1556 "clean"
1557 "info"
1558 (string-append "TEXINFODIR="
1559 (assoc-ref inputs "texinfo")
1560 "/bin")))))
1561 (add-after 'install 'install-info
1562 (lambda* (#:key outputs #:allow-other-keys)
1563 (let* ((out (assoc-ref outputs "out"))
1564 (info (string-append out "/share/info")))
1565 (install-file "texinfo/graphviz-dot-mode.info.gz" info)
1566 #t))))))
1567 (native-inputs
1568 `(("texinfo" ,texinfo)
1569 ("gzip" ,gzip)))
1570 (home-page "http://ppareit.github.com/graphviz-dot-mode")
1571 (synopsis "Major mode for editing Graphviz Dot files")
1572 (description
1573 "This Emacs packages helps you to create @file{.dot} or @file{.gv}
1574 files using the dot syntax, and use Graphviz to convert these files to
1575 diagrams.")
1576 (license license:gpl2+))))
1577
1578 (define-public emacs-mmm-mode
1579 (package
1580 (name "emacs-mmm-mode")
1581 (version "0.5.5")
1582 (source
1583 (origin
1584 (method url-fetch)
1585 (uri (string-append
1586 "https://github.com/purcell/mmm-mode/archive/"
1587 version ".tar.gz"))
1588 (file-name (string-append name "-" version ".tar.gz"))
1589 (sha256
1590 (base32
1591 "0c5ing3hcr74k78hqhrfwiv6m3n8hqfrw89j2x34vf60f4iyqzqc"))))
1592 (build-system gnu-build-system)
1593 (arguments
1594 '(#:phases
1595 (modify-phases %standard-phases
1596 (add-after 'unpack 'autogen
1597 (lambda _
1598 (invoke "sh" "autogen.sh"))))))
1599 (native-inputs
1600 `(("autoconf" ,autoconf)
1601 ("automake" ,automake)
1602 ("emacs" ,emacs-minimal)
1603 ("texinfo" ,texinfo)))
1604 (home-page "https://github.com/purcell/mmm-mode")
1605 (synopsis "Allow multiple major modes in an Emacs buffer")
1606 (description
1607 "MMM Mode is a minor mode that allows multiple major modes to coexist in a
1608 single buffer.")
1609 (license license:gpl3+)))
1610
1611 (define-public emacs-tablist
1612 (package
1613 (name "emacs-tablist")
1614 (version "0.70")
1615 (source (origin
1616 (method url-fetch)
1617 (uri (string-append
1618 "https://github.com/politza/tablist/archive/v"
1619 version ".tar.gz"))
1620 (file-name (string-append name "-" version ".tar.gz"))
1621 (sha256
1622 (base32
1623 "177d6s7ym1mwz1nhnl09r14z3n093g9a2szm97xsaig0c204xz9c"))))
1624 (build-system emacs-build-system)
1625 (home-page "https://github.com/politza/tablist")
1626 (synopsis "Extension for @code{tabulated-list-mode}")
1627 (description "Tablist is the Emacs package that provides several
1628 additional features to @code{tabulated-list-mode}: it adds marks,
1629 filters, new key bindings and faces. It can be enabled by
1630 @code{tablist-mode} or @code{tablist-minor-mode} commands.")
1631 (license license:gpl3+)))
1632
1633 (define-public emacs-pdf-tools
1634 (package
1635 (name "emacs-pdf-tools")
1636 (version "0.80")
1637 (home-page "https://github.com/politza/pdf-tools")
1638 (source (origin
1639 (method git-fetch)
1640 (uri (git-reference (url home-page)
1641 (commit (string-append "v" version))))
1642 (file-name (git-file-name name version))
1643 (sha256
1644 (base32
1645 "1i4647vax5na73basc5dz4lh9kprir00fh8ps4i0l1y3ippnjs2s"))
1646 (patches (search-patches "emacs-pdf-tools-poppler.patch"))))
1647 (build-system gnu-build-system)
1648 (arguments
1649 `(#:tests? #f ; there are no tests
1650 #:modules ((guix build gnu-build-system)
1651 ((guix build emacs-build-system) #:prefix emacs:)
1652 (guix build utils)
1653 (guix build emacs-utils))
1654 #:imported-modules (,@%gnu-build-system-modules
1655 (guix build emacs-build-system)
1656 (guix build emacs-utils))
1657 #:phases
1658 (modify-phases %standard-phases
1659 ;; Build server side using 'gnu-build-system'.
1660 (add-after 'unpack 'enter-server-dir
1661 (lambda _ (chdir "server") #t))
1662 (add-after 'enter-server-dir 'autogen
1663 (lambda _
1664 (invoke "bash" "autogen.sh")))
1665
1666 ;; Build emacs side using 'emacs-build-system'.
1667 (add-after 'compress-documentation 'enter-lisp-dir
1668 (lambda _ (chdir "../lisp") #t))
1669 (add-after 'enter-lisp-dir 'emacs-patch-variables
1670 (lambda* (#:key outputs #:allow-other-keys)
1671 (for-each make-file-writable (find-files "."))
1672
1673 ;; Set path to epdfinfo program.
1674 (emacs-substitute-variables "pdf-info.el"
1675 ("pdf-info-epdfinfo-program"
1676 (string-append (assoc-ref outputs "out")
1677 "/bin/epdfinfo")))
1678 ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto
1679 ;; upgrading" that pdf-tools tries to perform.
1680 (emacs-substitute-variables "pdf-tools.el"
1681 ("pdf-tools-handle-upgrades" '()))))
1682 (add-after 'emacs-patch-variables 'emacs-set-emacs-load-path
1683 (assoc-ref emacs:%standard-phases 'set-emacs-load-path))
1684 (add-after 'emacs-set-emacs-load-path 'emacs-install
1685 (assoc-ref emacs:%standard-phases 'install))
1686 (add-after 'emacs-install 'emacs-build
1687 (assoc-ref emacs:%standard-phases 'build))
1688 (add-after 'emacs-install 'emacs-make-autoloads
1689 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
1690 (native-inputs `(("autoconf" ,autoconf)
1691 ("automake" ,automake)
1692 ("pkg-config" ,pkg-config)
1693 ("emacs" ,emacs-minimal)))
1694 (inputs `(("poppler" ,poppler)
1695 ("cairo" ,cairo)
1696 ("glib" ,glib)
1697 ("libpng" ,libpng)
1698 ("zlib" ,zlib)))
1699 (propagated-inputs `(("tablist" ,emacs-tablist)))
1700 (synopsis "Emacs support library for PDF files")
1701 (description
1702 "PDF Tools is, among other things, a replacement of DocView for PDF
1703 files. The key difference is that pages are not pre-rendered by
1704 e.g. ghostscript and stored in the file-system, but rather created on-demand
1705 and stored in memory.")
1706 (license license:gpl3+)))
1707
1708 (define-public emacs-dash
1709 (package
1710 (name "emacs-dash")
1711 (version "2.14.1")
1712 (source (origin
1713 (method git-fetch)
1714 (uri (git-reference
1715 (url "https://github.com/magnars/dash.el.git")
1716 (commit version)))
1717 (file-name (git-file-name name version))
1718 (sha256
1719 (base32
1720 "1kzijmjxjxgr7p8clphzvmm47vczckbs8mza9an77c25bn627ywl"))))
1721 (build-system emacs-build-system)
1722 (arguments
1723 `(#:tests? #t
1724 #:test-command '("./run-tests.sh")))
1725 (home-page "https://github.com/magnars/dash.el")
1726 (synopsis "Modern list library for Emacs")
1727 (description "This package provides a modern list API library for Emacs.")
1728 (license license:gpl3+)))
1729
1730 (define-public emacs-bui
1731 (package
1732 (name "emacs-bui")
1733 (version "1.2.1")
1734 (source (origin
1735 (method git-fetch)
1736 (uri (git-reference
1737 (url "https://notabug.org/alezost/emacs-bui.git")
1738 (commit (string-append "v" version))))
1739 (file-name (string-append name "-" version "-checkout"))
1740 (sha256
1741 (base32
1742 "0sszdl4kvqbihdh8d7mybpp0d8yw2p3gyiipjcxz9xhvvmw3ww4x"))))
1743 (build-system emacs-build-system)
1744 (propagated-inputs
1745 `(("dash" ,emacs-dash)))
1746 (home-page "https://notabug.org/alezost/emacs-bui")
1747 (synopsis "Buffer interface library for Emacs")
1748 (description
1749 "BUI (Buffer User Interface) is a library for making @code{list} and
1750 @code{info} interfaces to display an arbitrary data of the same
1751 type, for example: packages, buffers, files, etc.")
1752 (license license:gpl3+)))
1753
1754 (define-public emacs-guix
1755 (package
1756 (name "emacs-guix")
1757 (version "0.5.1.1")
1758 (source (origin
1759 (method url-fetch)
1760 (uri (string-append "https://emacs-guix.gitlab.io/website/"
1761 "releases/emacs-guix-" version ".tar.gz"))
1762 (sha256
1763 (base32
1764 "1gxg7lan3njc2yg2d02b2zij0d2cm2pv2q08nqz86s85jk3b6m03"))))
1765 (build-system gnu-build-system)
1766 (arguments
1767 `(#:configure-flags
1768 (let ((guix (assoc-ref %build-inputs "guix"))
1769 (gcrypt (assoc-ref %build-inputs "guile-gcrypt"))
1770 (geiser (assoc-ref %build-inputs "geiser"))
1771 (dash (assoc-ref %build-inputs "dash"))
1772 (bui (assoc-ref %build-inputs "bui"))
1773 (magit-popup (assoc-ref %build-inputs "magit-popup"))
1774 (edit-indirect (assoc-ref %build-inputs "edit-indirect"))
1775 (site-lisp "/share/emacs/site-lisp")
1776 (site-scm "/share/guile/site")
1777 (site-go "/lib/guile")
1778 (guile-dir (lambda (dir)
1779 (car (find-files dir
1780 (lambda (file stat)
1781 (string-prefix?
1782 "2." (basename file)))
1783 #:directories? #t)))))
1784 (list (string-append "--with-guix-site-dir="
1785 (guile-dir (string-append guix site-scm)))
1786 (string-append "--with-guix-site-ccache-dir="
1787 (guile-dir (string-append guix site-go))
1788 "/site-ccache")
1789 (string-append "--with-guile-gcrypt-site-dir="
1790 (guile-dir (string-append gcrypt site-scm)))
1791 (string-append "--with-guile-gcrypt-site-ccache-dir="
1792 (guile-dir (string-append gcrypt site-go))
1793 "/site-ccache")
1794 (string-append "--with-geiser-lispdir=" geiser site-lisp)
1795 (string-append "--with-dash-lispdir="
1796 dash site-lisp "/guix.d/dash-"
1797 ,(package-version emacs-dash))
1798 (string-append "--with-bui-lispdir="
1799 bui site-lisp "/guix.d/bui-"
1800 ,(package-version emacs-bui))
1801 (string-append "--with-editindirect-lispdir="
1802 edit-indirect site-lisp "/guix.d/edit-indirect-"
1803 ,(package-version emacs-edit-indirect))
1804 (string-append "--with-popup-lispdir="
1805 magit-popup site-lisp "/guix.d/magit-popup-"
1806 ,(package-version emacs-magit-popup))))))
1807 (native-inputs
1808 `(("pkg-config" ,pkg-config)
1809 ("emacs" ,emacs-minimal)))
1810 (inputs
1811 `(("guile" ,guile-2.2)
1812 ("guix" ,guix)))
1813 (propagated-inputs
1814 `(("geiser" ,emacs-geiser)
1815 ("guile-gcrypt" ,guile-gcrypt)
1816 ("dash" ,emacs-dash)
1817 ("bui" ,emacs-bui)
1818 ("edit-indirect" ,emacs-edit-indirect)
1819 ("magit-popup" ,emacs-magit-popup)))
1820 (home-page "https://emacs-guix.gitlab.io/website/")
1821 (synopsis "Emacs interface for GNU Guix")
1822 (description
1823 "Emacs-Guix provides a visual interface, tools and features for the GNU
1824 Guix package manager. Particularly, it allows you to do various package
1825 management tasks from Emacs. To begin with, run @code{M-x guix-about} or
1826 @code{M-x guix-help} command.")
1827 (license license:gpl3+)))
1828
1829 (define-public emacs-build-farm
1830 (package
1831 (name "emacs-build-farm")
1832 (version "0.2.2")
1833 (source (origin
1834 (method git-fetch)
1835 (uri (git-reference
1836 (url "https://notabug.org/alezost/emacs-build-farm.git")
1837 (commit (string-append "v" version))))
1838 (file-name (string-append name "-" version "-checkout"))
1839 (sha256
1840 (base32
1841 "0i0bwbav5861j2y15j9nd5m9rdqg9q97zgcbld8pivr9nyxy63lz"))))
1842 (build-system emacs-build-system)
1843 (propagated-inputs
1844 `(("bui" ,emacs-bui)
1845 ("magit-popup" ,emacs-magit-popup)))
1846 (home-page "https://notabug.org/alezost/emacs-build-farm")
1847 (synopsis "Emacs interface for Hydra and Cuirass build farms")
1848 (description
1849 "This Emacs package provides an interface for Hydra and
1850 Cuirass (build farms used by Nix and Guix). It allows you to look at
1851 various data related to the build farm projects, jobsets, builds and
1852 evaluations. The entry point is @code{M-x build-farm} command.")
1853 (license license:gpl3+)))
1854
1855 (define-public emacs-d-mode
1856 (package
1857 (name "emacs-d-mode")
1858 (version "2.0.9")
1859 (source (origin
1860 (method url-fetch)
1861 (uri (string-append
1862 "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode/"
1863 "archive/" version ".tar.gz"))
1864 (file-name (string-append name "-" version ".tar.gz"))
1865 (sha256
1866 (base32
1867 "127aa77ix3p7w4g339bx026df9y649dahlr3v359z0hs40zjz3kd"))))
1868 (build-system emacs-build-system)
1869 (propagated-inputs
1870 `(("emacs-undercover" ,emacs-undercover)))
1871 (home-page "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
1872 (synopsis "Emacs major mode for editing D code")
1873 (description "This package provides an Emacs major mode for highlighting
1874 code written in the D programming language. This mode is currently known to
1875 work with Emacs 24 and 25.")
1876 (license license:gpl2+)))
1877
1878 (define-public emacs-keyfreq
1879 (package
1880 (name "emacs-keyfreq")
1881 (version "20160516.716")
1882 (source
1883 (origin
1884 (method url-fetch)
1885 (uri (string-append "http://melpa.org/packages/keyfreq-"
1886 version ".el"))
1887 (sha256
1888 (base32
1889 "008hd7d06qskc3mx0bbdgpgy2pwxr8185fzlyqf9qjg49y74p6g8"))))
1890 (build-system emacs-build-system)
1891 (home-page "https://github.com/dacap/keyfreq")
1892 (synopsis "Track Emacs command frequencies")
1893 (description "@code{emacs-keyfeq} tracks and shows how many times you used
1894 a command.")
1895 (license license:gpl3+)))
1896
1897 (define-public emacs-olivetti
1898 (package
1899 (name "emacs-olivetti")
1900 (version "1.5.7")
1901 (source (origin
1902 (method url-fetch)
1903 (uri (string-append
1904 "https://stable.melpa.org/packages/olivetti-"
1905 version ".el"))
1906 (sha256
1907 (base32
1908 "1yj2ylg46q0pw1xzlv2b0fv9x8p56x25284s9v2smwjr4vf0nwcj"))))
1909 (build-system emacs-build-system)
1910 (home-page "https://github.com/rnkn/olivetti")
1911 (synopsis "Emacs minor mode for a nice writing environment")
1912 (description "This package provides an Emacs minor mode that puts writing
1913 in the center.")
1914 (license license:gpl3+)))
1915
1916 (define-public emacs-undo-tree
1917 (package
1918 (name "emacs-undo-tree")
1919 (version "0.6.6")
1920 (source (origin
1921 (method git-fetch)
1922 (uri (git-reference
1923 (url "http://dr-qubit.org/git/undo-tree.git")
1924 (commit (string-append "release/" version))))
1925 (file-name (string-append name "-" version "-checkout"))
1926 (sha256
1927 (base32
1928 "1hnh2mnmw179gr094r561w6cw1haid0lpvpqvkc24wpj82vphzpa"))))
1929 (build-system emacs-build-system)
1930 (home-page "http://www.dr-qubit.org/emacs.php")
1931 (synopsis "Treat undo history as a tree")
1932 (description "Tree-like interface to Emacs undo system, providing
1933 graphical tree presentation of all previous states of buffer that
1934 allows easily move between them.")
1935 (license license:gpl3+)))
1936
1937 (define-public emacs-s
1938 (package
1939 (name "emacs-s")
1940 (version "1.12.0")
1941 (source (origin
1942 (method url-fetch)
1943 (uri (string-append
1944 "https://github.com/magnars/s.el/archive/"
1945 version ".tar.gz"))
1946 (file-name (string-append name "-" version ".tar.gz"))
1947 (sha256
1948 (base32
1949 "0xbl75863pcm806zg0x1lw7qznzjq2c8320k8js7apyag8q4srvh"))))
1950 (build-system emacs-build-system)
1951 (arguments
1952 `(#:tests? #t
1953 #:emacs ,emacs ; FIXME: tests fail with emacs-minimal
1954 #:test-command '("./run-tests.sh")))
1955 (home-page "https://github.com/magnars/s.el")
1956 (synopsis "Emacs string manipulation library")
1957 (description "This package provides an Emacs library for manipulating
1958 strings.")
1959 (license license:gpl3+)))
1960
1961 (define-public emacs-symon
1962 (package
1963 (name "emacs-symon")
1964 (version "20160630")
1965 (source
1966 (origin
1967 (method url-fetch)
1968 (uri (string-append "https://github.com/zk-phi/symon/archive/"
1969 version ".tar.gz"))
1970 (file-name (string-append name "-" version ".tar.gz"))
1971 (sha256
1972 (base32
1973 "0h4jcgdnq98wc9rj72nwyazq8498yg55jfljiij5qwbn1xf1g5zz"))))
1974 (build-system emacs-build-system)
1975 (home-page "https://github.com/zk-phi/symon")
1976 (synopsis "Tiny graphical system monitor")
1977 (description
1978 "Tiny graphical system monitor for the Emacs minibuffer when idle.")
1979 (license license:gpl2+)))
1980
1981 (define-public emacs-sx
1982 (let ((version "20180212")
1983 (revision "1")
1984 (commit "833435fbf90d1c9e927d165b155f3b1ef39271de"))
1985 (package
1986 (name "emacs-sx")
1987 (version (git-version version revision commit))
1988 (source
1989 (origin
1990 (method git-fetch)
1991 (uri (git-reference
1992 (url "https://github.com/vermiculus/sx.el")
1993 (commit commit)))
1994 (file-name (git-file-name name version))
1995 (sha256
1996 (base32
1997 "1369xaxq1vy3d9yh862ddnhddikdpg2d0wv1ly00pnvdp9v4cqgd"))))
1998 (build-system emacs-build-system)
1999 (propagated-inputs
2000 `(("emacs-markdown-mode" ,emacs-markdown-mode)))
2001 (home-page "https://github.com/vermiculus/sx.el")
2002 (synopsis "Emacs StackExchange client")
2003 (description
2004 "Emacs StackExchange client. Ask and answer questions on
2005 Stack Overflow, Super User, and other StackExchange sites.")
2006 (license license:gpl3+))))
2007
2008 (define-public emacs-f
2009 (package
2010 (name "emacs-f")
2011 (version "0.20.0")
2012 (source (origin
2013 (method git-fetch)
2014 (uri (git-reference
2015 (url "https://github.com/rejeep/f.el.git")
2016 (commit (string-append "v" version))))
2017 (file-name (git-file-name name version))
2018 (sha256
2019 (base32
2020 "1a47xk3yp1rp17fqg7ldl3d3fb888h0fz3sysqfdz1bfdgs8a9bk"))))
2021 (build-system emacs-build-system)
2022 (propagated-inputs
2023 `(("emacs-s" ,emacs-s)
2024 ("emacs-dash" ,emacs-dash)))
2025 (home-page "https://github.com/rejeep/f.el")
2026 (synopsis "Emacs API for working with files and directories")
2027 (description "This package provides an Emacs library for working with
2028 files and directories.")
2029 (license license:gpl3+)))
2030
2031 (define-public emacs-git-gutter
2032 (package
2033 (name "emacs-git-gutter")
2034 (version "0.90")
2035 (source (origin
2036 (method url-fetch)
2037 (uri (string-append
2038 "https://github.com/syohex/" name "/archive/"
2039 version ".tar.gz"))
2040 (file-name (string-append name "-" version ".tar.gz"))
2041 (sha256
2042 (base32
2043 "1nmhvhpq1l56mj2yq3ag23rw3x4xgnsy8szp30s26l0yjnkhc4qg"))))
2044 (build-system emacs-build-system)
2045 (home-page "https://github.com/syohex/emacs-git-gutter")
2046 (synopsis "See and manage hunks of text in a version control system")
2047 (description
2048 "This package is an Emacs minor mode for displaying and interacting with
2049 hunks of text managed in a version control system. Added modified and deleted
2050 areas can be indicated with symbols on the edge of the buffer, and commands
2051 can be used to move between and perform actions on these hunks.
2052
2053 Git, Mercurial, Subversion and Bazaar are supported, and many parts of the
2054 display and behaviour is easily customisable.")
2055 (license license:gpl3+)))
2056
2057 (define-public emacs-git-timemachine
2058 (package
2059 (name "emacs-git-timemachine")
2060 (version "4.5")
2061 (source
2062 (origin
2063 (method url-fetch)
2064 (uri (string-append "https://gitlab.com/pidu/git-timemachine"
2065 "/-/archive/" version
2066 "/git-timemachine-" version ".tar.gz"))
2067 (file-name (string-append name "-" version ".tar.gz"))
2068 (sha256
2069 (base32
2070 "0ii40qcincasg7s1yrvqcxkqcqzb4sfs7gcxscn6m4x4ans165zy"))))
2071 (build-system emacs-build-system)
2072 (home-page "https://gitlab.com/pidu/git-timemachine")
2073 (synopsis "Step through historic versions of Git-controlled files")
2074 (description "This package enables you to step through historic versions
2075 of files under Git version control from within Emacs.")
2076 (license license:gpl3+)))
2077
2078 (define-public emacs-minitest
2079 (let ((commit "1aadb7865c1dc69c201cecee275751ecec33a182")
2080 (revision "1"))
2081 (package
2082 (name "emacs-minitest")
2083 (version (git-version "0.8.0" revision commit))
2084 (source (origin
2085 (method git-fetch)
2086 (uri (git-reference
2087 (url "https://github.com/arthurnn/minitest-emacs")
2088 (commit commit)))
2089 (file-name (git-file-name name commit))
2090 (sha256
2091 (base32
2092 "1l18zqpdzbnqj2qawq8hj7z7pl8hr8z9d8ihy8jaiqma915hmhj1"))))
2093 (build-system emacs-build-system)
2094 (arguments
2095 '(#:include (cons "^snippets\\/minitest-mode\\/" %default-include)
2096 #:exclude (delete "^[^/]*tests?\\.el$" %default-exclude)))
2097 (propagated-inputs
2098 `(("emacs-dash" ,emacs-dash)
2099 ("emacs-f" ,emacs-f)))
2100 (home-page "https://github.com/arthurnn/minitest-emacs")
2101 (synopsis "Emacs minitest mode")
2102 (description
2103 "The minitest mode provides commands to run the tests for the current
2104 file or line, as well as rerunning the previous tests, or all the tests for a
2105 project.
2106
2107 This package also includes relevant snippets for yasnippet.")
2108 (license license:expat))))
2109
2110 (define-public emacs-el-mock
2111 (package
2112 (name "emacs-el-mock")
2113 (version "1.25.1")
2114 (source
2115 (origin
2116 (method url-fetch)
2117 (uri (string-append "https://github.com/rejeep/el-mock.el/"
2118 "archive/v" version ".tar.gz"))
2119 (file-name (string-append name "-" version ".tar.gz"))
2120 (sha256
2121 (base32
2122 "16xw94n58xxn3zvgyj72bmzs0k5lkvswjmzs79ws9n7rzdivb38b"))))
2123 (build-system emacs-build-system)
2124 (home-page "https://github.com/rejeep/el-mock.el")
2125 (synopsis "Tiny mock and stub framework in Emacs Lisp")
2126 (description
2127 "Emacs Lisp Mock is a library for mocking and stubbing using readable
2128 syntax. Most commonly Emacs Lisp Mock is used in conjunction with Emacs Lisp
2129 Expectations, but it can be used in other contexts.")
2130 (license license:gpl3+)))
2131
2132 (define-public emacs-espuds
2133 (package
2134 (name "emacs-espuds")
2135 (version "0.3.3")
2136 (source
2137 (origin
2138 (method url-fetch)
2139 (uri (string-append "https://github.com/ecukes/espuds/"
2140 "archive/v" version ".tar.gz"))
2141 (file-name (string-append name "-" version ".tar.gz"))
2142 (sha256
2143 (base32
2144 "0xv551376pbmh735a3zjwc9z4qdx6ngj1vpq3xqjpn0a1rwjyn4k"))))
2145 (build-system emacs-build-system)
2146 (propagated-inputs
2147 `(("emacs-s" ,emacs-s)
2148 ("emacs-dash" ,emacs-dash)
2149 ("emacs-f" ,emacs-f)))
2150 (home-page "https://github.com/ecukes/espuds")
2151 (synopsis "Common step definitions for Ecukes")
2152 (description "Espuds is a collection of the most commonly used step
2153 definitions for testing with the Ecukes framework.")
2154 (license license:gpl3+)))
2155
2156 (define-public emacs-spark
2157 (let ((version "20160503") ; no proper tag, use date of commit
2158 (commit "0bf148c3ede3b31d56fd75f347cdd0b0eae60025")
2159 (revision "1"))
2160 (package
2161 (name "emacs-spark")
2162 (version (git-version version revision commit))
2163 (source
2164 (origin
2165 (method git-fetch)
2166 (uri (git-reference
2167 (url "https://github.com/alvinfrancis/spark.git")
2168 (commit commit)))
2169 (file-name (git-file-name name version))
2170 (sha256
2171 (base32
2172 "1ykqr86j17mi95s08d9fp02d7ych1331b04dcqxzxnmpkhwngyj1"))))
2173 (build-system emacs-build-system)
2174 (home-page "https://github.com/alvinfrancis/spark")
2175 (synopsis "Sparkline generation library for Emacs Lisp")
2176 (description "@code{emacs-spark} is a sparkline generation library for
2177 Emacs Lisp. It generates a sparkline string given a list of numbers. It is a
2178 port of @code{cl-spark} to Emacs Lisp.")
2179 (license license:expat))))
2180
2181 (define-public emacs-es-mode
2182 (package
2183 (name "emacs-es-mode")
2184 (version "4.3.0")
2185 (source (origin
2186 (method url-fetch)
2187 (uri (string-append
2188 "https://github.com/dakrone/es-mode/archive/"
2189 version ".tar.gz"))
2190 (file-name (string-append name "-" version ".tar.gz"))
2191 (sha256
2192 (base32
2193 "0y86qdcb3g7fkcb4pzsjh3syzql6w3314hg1wqxq4a8bbk3y0cgr"))))
2194 (build-system emacs-build-system)
2195 (propagated-inputs
2196 ;; The version of org in Emacs 24.5 is not sufficient, and causes tables
2197 ;; to be rendered incorrectly
2198 `(("emacs-dash" ,emacs-dash)
2199 ("emacs-org" ,emacs-org)
2200 ("emacs-spark" ,emacs-spark)))
2201 (home-page "https://github.com/dakrone/es-mode")
2202 (synopsis "Major mode for editing Elasticsearch queries")
2203 (description "@code{es-mode} includes highlighting, completion and
2204 indentation support for Elasticsearch queries. Also supported are
2205 @code{es-mode} blocks in @code{org-mode}, for which the results of queries can
2206 be processed through @code{jq}, or in the case of aggregations, can be
2207 rendered in to a table. In addition, there is an @code{es-command-center}
2208 mode, which displays information about Elasticsearch clusters.")
2209 (license license:gpl3+)))
2210
2211 (define-public emacs-expand-region
2212 (package
2213 (name "emacs-expand-region")
2214 (version "0.11.0")
2215 (source
2216 (origin
2217 (method url-fetch)
2218 (uri (string-append "https://github.com/magnars/expand-region.el"
2219 "/archive/" version ".tar.gz"))
2220 (file-name (string-append name "-" version ".tar.gz"))
2221 (sha256
2222 (base32
2223 "08dy1f411sh9wwww53rjw80idcf3vpki6ba2arl4hl5jcw9651g0"))))
2224 (build-system emacs-build-system)
2225 (home-page "https://github.com/magnars/expand-region.el")
2226 (synopsis "Increase selected region by semantic units")
2227 (description
2228 "Expand region increases the selected region by semantic units. Just
2229 keep pressing the key until it selects what you want. There's also
2230 @code{er/contract-region} if you expand too far.")
2231 (license license:gpl3+)))
2232
2233 (define-public emacs-fill-column-indicator
2234 (package
2235 (name "emacs-fill-column-indicator")
2236 (version "1.89")
2237 (source
2238 (origin
2239 (method url-fetch)
2240 (uri (string-append "https://github.com/alpaker/Fill-Column-Indicator"
2241 "/archive/v" version ".tar.gz"))
2242 (file-name (string-append name "-" version ".tar.gz"))
2243 (sha256
2244 (base32
2245 "09ab01np14bdcsr38xf95kpnvxzqr46mdjmphg3pigwnx39a3jvg"))))
2246 (build-system emacs-build-system)
2247 (home-page "https://www.emacswiki.org/emacs/FillColumnIndicator")
2248 (synopsis "Graphically indicate the fill column")
2249 (description
2250 "Fill-column-indicator graphically indicates the location of the fill
2251 column by drawing a thin line down the length of the editing window.")
2252 (license license:gpl3+)))
2253
2254 (define-public emacs-grep-a-lot
2255 (package
2256 (name "emacs-grep-a-lot")
2257 (version "1.0.7")
2258 (source (origin
2259 (method git-fetch)
2260 (uri (git-reference
2261 (url "https://github.com/ZungBang/emacs-grep-a-lot.git")
2262 (commit "9f9f645b9e308a0d887b66864ff97d0fca1ba4ad")))
2263 (file-name (string-append name "-" version "-checkout"))
2264 (sha256
2265 (base32
2266 "1f8262mrlinzgnn4m49hbj1hm3c1mvzza24py4b37sasn49546lw"))))
2267 (build-system emacs-build-system)
2268 (home-page "https://github.com/ZungBang/emacs-grep-a-lot")
2269 (synopsis "Enables multiple grep buffers in Emacs")
2270 (description
2271 "This Emacs package allows managing multiple grep buffers.")
2272 (license license:gpl3+)))
2273
2274 (define-public emacs-inf-ruby
2275 (package
2276 (name "emacs-inf-ruby")
2277 (version "2.5.1")
2278 (source
2279 (origin
2280 (method url-fetch)
2281 (uri (string-append "https://github.com/nonsequitur/inf-ruby/"
2282 "archive/" version ".tar.gz"))
2283 (file-name (string-append name "-" version ".tar.gz"))
2284 (sha256
2285 (base32
2286 "0m7323k649ckxql1grsdnf71bjhys7l4qb8wbpphb1mr1q8i4066"))))
2287 (build-system emacs-build-system)
2288 (home-page "https://github.com/nonsequitur/inf-ruby")
2289 (synopsis "Provides a REPL buffer connected to a Ruby subprocess in Emacs")
2290 (description
2291 "@code{inf-ruby} provides a Read Eval Print Loop (REPL) buffer, allowing
2292 for easy interaction with a ruby subprocess. Features include support for
2293 detecting specific uses of Ruby, e.g. when using rails, and using a
2294 appropriate console.")
2295 (license license:gpl3+)))
2296
2297 (define-public emacs-znc
2298 (package
2299 (name "emacs-znc")
2300 (version "0.0.2")
2301 (source
2302 (origin
2303 (method url-fetch)
2304 (uri (string-append "https://marmalade-repo.org/packages/znc-"
2305 version ".el"))
2306 (sha256
2307 (base32
2308 "1d8lqvybgyazin5z0g1c4l3rg1vzrrvf0saqs53jr1zcdg0lianh"))))
2309 (build-system emacs-build-system)
2310 (home-page "https://github.com/sshirokov/ZNC.el")
2311 (synopsis "Make ERC and ZNC get along better")
2312 (description
2313 "This is a thin wrapper around @code{erc} that enables one to use the ZNC
2314 IRC bouncer with ERC.")
2315 (license license:expat)))
2316
2317 (define-public emacs-shut-up
2318 (package
2319 (name "emacs-shut-up")
2320 (version "0.3.2")
2321 (source
2322 (origin
2323 (method url-fetch)
2324 (uri (string-append "https://github.com/cask/shut-up/"
2325 "archive/v" version ".tar.gz"))
2326 (file-name (string-append name "-" version ".tar.gz"))
2327 (sha256
2328 (base32
2329 "09kzrjdkb569iviyg7ydwq44yh84m3f9hkl7jizfrlk0w4gz67d1"))))
2330 (build-system emacs-build-system)
2331 (home-page "https://github.com/cask/shut-up")
2332 (synopsis "Silence Emacs")
2333 (description "This package silences most output of Emacs when running an
2334 Emacs shell script.")
2335 (license license:expat)))
2336
2337 (define-public emacs-undercover
2338 (package
2339 (name "emacs-undercover")
2340 (version "0.6.0")
2341 (source
2342 (origin
2343 (method url-fetch)
2344 (uri (string-append "https://github.com/sviridov/undercover.el/"
2345 "archive/v" version ".tar.gz"))
2346 (file-name (string-append name "-" version ".tar.gz"))
2347 (sha256
2348 (base32
2349 "0f48fi0xnbsqs382rgh85m9mq1wdnr0yib7as9xhwzvq0hsr5m0a"))))
2350 (build-system emacs-build-system)
2351 (propagated-inputs
2352 `(("emacs-dash" ,emacs-dash)
2353 ("emacs-shut-up" ,emacs-shut-up)))
2354 (home-page "https://github.com/sviridov/undercover.el")
2355 (synopsis "Test coverage library for Emacs Lisp")
2356 (description
2357 "Undercover is a test coverage library for software written in Emacs
2358 Lisp.")
2359 (license license:expat)))
2360
2361 (define-public emacs-paren-face
2362 (package
2363 (name "emacs-paren-face")
2364 (version "1.0.0")
2365 (source
2366 (origin
2367 (method url-fetch)
2368 (uri (string-append "https://github.com/tarsius/paren-face/archive/"
2369 version ".tar.gz"))
2370 (file-name (string-append name "-" version ".tar.gz"))
2371 (sha256
2372 (base32
2373 "0y4qrhxa9332vsvr999jg7qj1ymnfgwpf591yi4a4jgg90pm7qnn"))))
2374 (build-system emacs-build-system)
2375 (home-page "https://github.com/tarsius/paren-face")
2376 (synopsis "Face for parentheses in lisp modes")
2377 (description
2378 "This library defines a face named @code{parenthesis} used just for
2379 parentheses. The intended purpose of this face is to make parentheses less
2380 visible in Lisp code by dimming them. Lispers probably don't need to be
2381 constantly made aware of the existence of the parentheses. Dimming them might
2382 be even more useful for people new to lisp who have not yet learned to
2383 subconsciously blend out the parentheses.")
2384 (license license:gpl3+)))
2385
2386 (define-public emacs-page-break-lines
2387 (package
2388 (name "emacs-page-break-lines")
2389 (version "0.11")
2390 (source
2391 (origin
2392 (method url-fetch)
2393 (uri (string-append "https://github.com/purcell/page-break-lines/"
2394 "archive/" version ".tar.gz"))
2395 (file-name (string-append name "-" version ".tar.gz"))
2396 (sha256
2397 (base32
2398 "1zzhziq5kbrm9rxk30kx2glz455fp1blqxg8cpcf6l8xl3w8z4pg"))))
2399 (build-system emacs-build-system)
2400 (home-page "https://github.com/purcell/page-break-lines")
2401 (synopsis "Display page breaks as tidy horizontal lines")
2402 (description
2403 "This library provides a global mode which displays form feed characters
2404 as horizontal rules.")
2405 (license license:gpl3+)))
2406
2407 (define-public emacs-simple-httpd
2408 (package
2409 (name "emacs-simple-httpd")
2410 (version "1.4.6")
2411 (source
2412 (origin
2413 (method url-fetch)
2414 (uri (string-append "https://github.com/skeeto/emacs-web-server/"
2415 "archive/" version ".tar.gz"))
2416 (file-name (string-append name "-" version ".tar.gz"))
2417 (sha256
2418 (base32
2419 "01r7h3imnj4qx1m53a2wjafvbylcyz5f9r2rg2cs7ky3chlg220r"))))
2420 (build-system emacs-build-system)
2421 (home-page "https://github.com/skeeto/emacs-http-server")
2422 (synopsis "HTTP server in pure Emacs Lisp")
2423 (description
2424 "This package provides a simple HTTP server written in Emacs Lisp to
2425 serve files and directory listings.")
2426 (license license:unlicense)))
2427
2428 (define-public emacs-skewer-mode
2429 (package
2430 (name "emacs-skewer-mode")
2431 (version "1.6.2")
2432 (source
2433 (origin
2434 (method url-fetch)
2435 (uri (string-append "https://github.com/skeeto/skewer-mode/archive/"
2436 version ".tar.gz"))
2437 (file-name (string-append name "-" version ".tar.gz"))
2438 (sha256
2439 (base32
2440 "07jpz374j0j964szy3zznrkyja2kpdl3xa87wh7349mzxivqxdx0"))))
2441 (build-system emacs-build-system)
2442 (propagated-inputs
2443 `(("emacs-simple-httpd" ,emacs-simple-httpd)
2444 ("emacs-js2-mode" ,emacs-js2-mode)))
2445 (arguments '(#:include '("\\.el$" "\\.js$" "\\.html$")))
2446 (home-page "https://github.com/skeeto/skewer-mode")
2447 (synopsis "Live web development in Emacs")
2448 (description
2449 "Skewer-mode provides live interaction with JavaScript, CSS, and HTML in
2450 a web browser. Expressions are sent on-the-fly from an editing buffer to be
2451 evaluated in the browser, just like Emacs does with an inferior Lisp process
2452 in Lisp modes.")
2453 (license license:unlicense)))
2454
2455 (define-public emacs-string-inflection
2456 (package
2457 (name "emacs-string-inflection")
2458 (version "1.0.6")
2459 (source (origin
2460 (method git-fetch)
2461 (uri (git-reference
2462 (url "https://github.com/akicho8/string-inflection")
2463 (commit "a150e7bdda60b7824d3a936750ce23f73b0e4edd")))
2464 (file-name (string-append name "-" version "-checkout"))
2465 (sha256
2466 (base32
2467 "1k0sm552iawi49v4zis6dbb81d1rzgky9v0dpv7nj31gnb7bmy7k"))))
2468 (build-system emacs-build-system)
2469 (native-inputs
2470 `(("ert-runner" ,emacs-ert-runner)))
2471 (arguments
2472 `(#:tests? #t
2473 #:test-command '("ert-runner")))
2474 (home-page "https://github.com/akicho8/string-inflection")
2475 (synopsis "Convert symbol names between different naming conventions")
2476 (description
2477 "This Emacs package provides convenient methods for manipulating the
2478 naming style of a symbol. It supports different naming conventions such as:
2479
2480 @enumerate
2481 @item camel case
2482 @item Pascal case
2483 @item all upper case
2484 @item lower case separated by underscore
2485 @item etc...
2486 @end enumerate\n")
2487 (license license:gpl2+)))
2488
2489 (define-public emacs-stripe-buffer
2490 (package
2491 (name "emacs-stripe-buffer")
2492 (version "0.2.5")
2493 (source
2494 (origin
2495 (method url-fetch)
2496 (uri (string-append "https://github.com/sabof/stripe-buffer/"
2497 "archive/" version ".tar.gz"))
2498 (file-name (string-append name "-" version ".tar.gz"))
2499 (sha256
2500 (base32
2501 "1p515dq7raly5hw94kiwm3vzsfih0d8af622q4ipvvljsm98aiik"))))
2502 (build-system emacs-build-system)
2503 (home-page "https://github.com/sabof/stripe-buffer/")
2504 (synopsis "Add stripes to list buffers")
2505 (description
2506 "This Emacs package adds faces to add stripes to list buffers and org
2507 tables.")
2508 (license license:gpl2+)))
2509
2510 (define-public emacs-rich-minority
2511 (package
2512 (name "emacs-rich-minority")
2513 (version "1.0.1")
2514 (source
2515 (origin
2516 (method url-fetch)
2517 (uri (string-append "https://github.com/Malabarba/rich-minority/"
2518 "archive/" version ".tar.gz"))
2519 (file-name (string-append name "-" version ".tar.gz"))
2520 (sha256
2521 (base32
2522 "1l0cb0q7kyi88nwfqd542psnkgwnjklpzc5rx32gzd3lkwkrbr8v"))))
2523 (build-system emacs-build-system)
2524 (home-page "https://github.com/Malabarba/rich-minority")
2525 (synopsis "Clean-up and beautify the list of minor modes")
2526 (description
2527 "This Emacs package hides and/or highlights minor modes in the
2528 mode-line.")
2529 (license license:gpl2+)))
2530
2531 (define-public emacs-robe
2532 (package
2533 (name "emacs-robe")
2534 (version "0.8.1")
2535 (source
2536 (origin
2537 (method url-fetch)
2538 (uri (string-append "https://github.com/dgutov/robe/"
2539 "archive/" version ".tar.gz"))
2540 (file-name (string-append name "-" version ".tar.gz"))
2541 (sha256
2542 (base32
2543 "1vp45y99fwj88z04ah4yppz4z568qcib646az6m9az5ar0f203br"))))
2544 (build-system emacs-build-system)
2545 (arguments
2546 '(#:include (cons "^lib\\/" %default-include)))
2547 (propagated-inputs
2548 `(("emacs-inf-ruby" ,emacs-inf-ruby)))
2549 (home-page "https://github.com/dgutov/robe")
2550 (synopsis "Ruby code assistance tool for Emacs")
2551 (description
2552 "Robe can provide information on loaded classes and modules in Ruby code,
2553 as well as where methods are defined. This allows the user to jump to method
2554 definitions, modules and classes, display method documentation and provide
2555 method and constant name completion.")
2556 (license license:gpl3+)))
2557
2558 (define-public emacs-rspec
2559 (package
2560 (name "emacs-rspec")
2561 (version "1.11")
2562 (source
2563 (origin
2564 (method url-fetch)
2565 (uri (string-append "https://github.com/pezra/rspec-mode/"
2566 "archive/v" version ".tar.gz"))
2567 (file-name (string-append name "-" version ".tar.gz"))
2568 (sha256
2569 (base32
2570 "1j0a7ms5516nlg60qfyn730pfxys6acm0rgyxh5xfkpi6jafgpvw"))))
2571 (build-system emacs-build-system)
2572 (home-page "https://github.com/pezra/rspec-mode")
2573 (synopsis "Provides a rspec mode for working with RSpec")
2574 (description
2575 "The Emacs RSpec mode provides keybindings for Ruby source files, e.g. to
2576 verify the spec associated with the current buffer, or entire project, as well
2577 as moving between the spec files, and coresponding code files.
2578
2579 Also included are keybindings for spec files and Dired buffers, as well as
2580 snippets for yasnippet.")
2581 (license license:gpl3+)))
2582
2583 (define-public emacs-smart-mode-line
2584 (package
2585 (name "emacs-smart-mode-line")
2586 (version "2.12.0")
2587 (source
2588 (origin
2589 (method url-fetch)
2590 (uri (string-append "https://github.com/Malabarba/smart-mode-line/"
2591 "archive/" version ".tar.gz"))
2592 (file-name (string-append name "-" version ".tar.gz"))
2593 (sha256
2594 (base32
2595 "1hn8s6laijmg7w1bgwdfrki6h9vxkbgr8rmmssvd5yqyad5w2sba"))))
2596 (build-system emacs-build-system)
2597 (propagated-inputs
2598 `(("emacs-rich-minority" ,emacs-rich-minority)))
2599 (home-page "https://github.com/Malabarba/smart-mode-line")
2600 (synopsis "Color-coded smart mode-line")
2601 (description
2602 "Smart Mode Line is a mode-line theme for Emacs. It aims to be easy to
2603 read from small to large monitors by using colors, a prefix feature, and smart
2604 truncation.")
2605 (license license:gpl2+)))
2606
2607 (define-public emacs-sr-speedbar
2608 (let ((commit "77a83fb50f763a465c021eca7343243f465b4a47")
2609 (revision "0"))
2610 (package
2611 (name "emacs-sr-speedbar")
2612 (version (git-version "20161025" revision commit))
2613 (source
2614 (origin
2615 (method git-fetch)
2616 (uri (git-reference
2617 (url "https://github.com/emacsorphanage/sr-speedbar.git")
2618 (commit commit)))
2619 (file-name (git-file-name name version))
2620 (sha256
2621 (base32
2622 "0sd12555hk7z721y00kv3crdybvcn1i08wmd148z5imayzibj153"))))
2623 (build-system emacs-build-system)
2624 (home-page "https://www.emacswiki.org/emacs/SrSpeedbar")
2625 (synopsis "Same frame Emacs @code{speedbar}")
2626 (description
2627 "This Emacs package allows you to show @code{M-x speedbar} in the
2628 same frame (in an extra window). You can customize the initial width of
2629 the speedbar window.")
2630 (license license:gpl3+))))
2631
2632 (define-public emacs-shell-switcher
2633 (package
2634 (name "emacs-shell-switcher")
2635 (version "1.0.1")
2636 (source
2637 (origin
2638 (method url-fetch)
2639 (uri (string-append "https://github.com/DamienCassou/shell-switcher"
2640 "/archive/v" version ".tar.gz"))
2641 (file-name (string-append name "-" version ".tar.gz"))
2642 (sha256
2643 (base32
2644 "1c23mfkdqz2g9rixd9smm323vzlvhzz3ng34ambcqjfq309qb2nz"))))
2645 (build-system emacs-build-system)
2646 (home-page "https://github.com/DamienCassou/shell-switcher")
2647 (synopsis "Provide fast switching between shell buffers")
2648 (description
2649 "This package provides commands to quickly switch between shell buffers.")
2650 (license license:gpl3+)))
2651
2652 (define-public emacs-ob-ipython
2653 (package
2654 (name "emacs-ob-ipython")
2655 (version "20150704.8807064693")
2656 (source (origin
2657 (method git-fetch)
2658 (uri (git-reference
2659 (commit "880706469338ab59b5bb7dbe8460016f89755364")
2660 (url "https://github.com/gregsexton/ob-ipython.git")))
2661 (file-name (string-append name "-" version "-checkout"))
2662 (sha256
2663 (base32
2664 "1scf25snbds9ymagpny30ijbsg479r3nm0ih01dy4m9d0g7qryb7"))))
2665 (build-system emacs-build-system)
2666 (propagated-inputs
2667 `(("emacs-f" ,emacs-f)))
2668 (home-page "http://www.gregsexton.org")
2669 (synopsis "Org-Babel functions for IPython evaluation")
2670 (description "This package adds support to Org-Babel for evaluating Python
2671 source code using IPython.")
2672 (license license:gpl3+)))
2673
2674 (define-public emacs-debbugs
2675 (package
2676 (name "emacs-debbugs")
2677 (version "0.16")
2678 (source (origin
2679 (method url-fetch)
2680 (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
2681 version ".tar"))
2682 (sha256
2683 (base32
2684 "0y3bq803c7820h15g66d1648skxfhlfa2v6vincj6xk5ssp44s9p"))))
2685 (build-system emacs-build-system)
2686 (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
2687 (propagated-inputs
2688 `(("emacs-async" ,emacs-async)))
2689 (home-page "https://elpa.gnu.org/packages/debbugs.html")
2690 (synopsis "Access the Debbugs bug tracker in Emacs")
2691 (description
2692 "This package lets you access the @uref{http://bugs.gnu.org,GNU Bug
2693 Tracker} from within Emacs.
2694
2695 For instance, it defines the command @code{M-x debbugs-gnu} for listing bugs,
2696 and the command @code{M-x debbugs-gnu-search} for bug searching. If you
2697 prefer the listing of bugs as TODO items of @code{org-mode}, you could use
2698 @code{M-x debbugs-org} and related commands.
2699
2700 A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug
2701 Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.")
2702 (license license:gpl3+)))
2703
2704 (define-public emacs-ert-expectations
2705 (package
2706 (name "emacs-ert-expectations")
2707 (version "0.2")
2708 (source
2709 (origin
2710 (method url-fetch)
2711 (uri "https://www.emacswiki.org/emacs/download/ert-expectations.el")
2712 (sha256
2713 (base32
2714 "0cwy3ilsid90abzzjb7ha2blq9kmv3gfp3icwwfcz6qczgirq6g7"))))
2715 (build-system emacs-build-system)
2716 (home-page "https://www.emacswiki.org/emacs/ert-expectations.el")
2717 (synopsis "Simple unit test framework for Emacs Lisp")
2718 (description "@code{emacs-ert-expectations} is a simple unit test
2719 framework for Emacs Lisp to be used with @code{ert}.")
2720 (license license:gpl3+)))
2721
2722 (define-public emacs-deferred
2723 (package
2724 (name "emacs-deferred")
2725 (version "0.5.1")
2726 (home-page "https://github.com/kiwanami/emacs-deferred")
2727 (source (origin
2728 (method git-fetch)
2729 (uri (git-reference
2730 (url home-page)
2731 (commit (string-append "v" version))))
2732 (sha256
2733 (base32
2734 "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"))
2735 (file-name (string-append name "-" version))))
2736 (build-system emacs-build-system)
2737 (arguments
2738 `(#:phases
2739 (modify-phases %standard-phases
2740 (add-after 'unpack 'set-shell
2741 ;; Setting the SHELL environment variable is required for the tests
2742 ;; to find sh.
2743 (lambda _
2744 (setenv "SHELL" (which "sh"))
2745 #t))
2746 (add-before 'check 'fix-makefile
2747 (lambda _
2748 (substitute* "Makefile"
2749 (("\\$\\(CASK\\) exec ") ""))
2750 #t)))
2751 #:tests? #t
2752 #:test-command '("make" "test")))
2753 (native-inputs
2754 `(("emacs-ert-expectations" ,emacs-ert-expectations)
2755 ("emacs-undercover" ,emacs-undercover)
2756 ("ert-runner" ,emacs-ert-runner)))
2757 (synopsis "Simple asynchronous functions for Emacs Lisp")
2758 (description
2759 "The @code{deferred.el} library provides support for asynchronous tasks.
2760 The API is almost the same as that of
2761 @uref{https://github.com/cho45/jsdeferred, JSDeferred}, a JavaScript library
2762 for asynchronous tasks.")
2763 (license license:gpl3+)))
2764
2765 (define-public emacs-butler
2766 (package
2767 (name "emacs-butler")
2768 (version "0.2.4")
2769 (home-page "https://github.com/AshtonKem/Butler")
2770 (source (origin
2771 (method git-fetch)
2772 (uri (git-reference
2773 (url home-page)
2774 (commit version)))
2775 (sha256
2776 (base32
2777 "1pii9dw4skq7nr4na6qxqasl36av8cwjp71bf1fgppqpcd9z8skj"))
2778 (file-name (string-append name "-" version))))
2779 (build-system emacs-build-system)
2780 (propagated-inputs
2781 `(("emacs-deferred" ,emacs-deferred)))
2782 (synopsis "Emacs client for Jenkins")
2783 (description
2784 "Butler provides an interface to connect to Jenkins continuous
2785 integration servers. Users can specify a list of server in the
2786 @code{butler-server-list} variable and then use @code{M-x butler-status} to
2787 view the build status of those servers' build jobs, and possibly to trigger
2788 build jobs.")
2789 (license license:gpl3+)))
2790
2791 (define-public emacs-company
2792 (package
2793 (name "emacs-company")
2794 (version "0.9.7")
2795 (source
2796 (origin
2797 (method url-fetch)
2798 (uri (string-append "https://github.com/company-mode/company-mode/archive/"
2799 version ".tar.gz"))
2800 (file-name (string-append name "-" version ".tar.gz"))
2801 (sha256
2802 (base32
2803 "19flv38f2qhxda8lbk2ckywvibd72vbzmn4hchqz6d8acsknh4sb"))))
2804 (build-system emacs-build-system)
2805 (arguments
2806 `(#:phases
2807 (modify-phases %standard-phases
2808 (add-before 'check 'fix-bin-dir
2809 (lambda _
2810 ;; The company-files-candidates-normal-root test looks
2811 ;; for the /bin directory, but the build environment has
2812 ;; no /bin directory. Modify the test to look for the
2813 ;; /tmp directory.
2814 (substitute* "test/files-tests.el"
2815 (("/bin/") "/tmp/"))
2816 #t)))
2817 #:tests? #t
2818 #:test-command '("make" "test-batch")))
2819 (home-page "http://company-mode.github.io/")
2820 (synopsis "Modular text completion framework")
2821 (description
2822 "Company is a modular completion mechanism. Modules for retrieving
2823 completion candidates are called back-ends, modules for displaying them are
2824 front-ends. Company comes with many back-ends, e.g. @code{company-elisp}.
2825 These are distributed in separate files and can be used individually.")
2826 (license license:gpl3+)))
2827
2828 (define-public emacs-irony-mode
2829 (package
2830 (name "emacs-irony-mode")
2831 (version "1.2.0")
2832 (home-page "https://github.com/Sarcasm/irony-mode")
2833 (source (origin
2834 (method git-fetch)
2835 (uri (git-reference
2836 (url (string-append home-page ".git"))
2837 (commit (string-append "v" version))))
2838 (sha256
2839 (base32
2840 "0nhjrnlmss535jbshjjd30vydbr8py21vkx4p294w6d8vg2rssf8"))
2841 (file-name (string-append name "-" version ".tar.gz"))))
2842 (build-system emacs-build-system)
2843 (arguments '())
2844 (propagated-inputs
2845 `(("emacs-irony-mode-server" ,emacs-irony-mode-server)))
2846 (synopsis "C/C++/ObjC Code completion and syntax checks for Emacs")
2847 (description "Irony-mode provides Clang-assisted syntax checking and
2848 completion for C, C++, and ObjC in GNU Emacs. Using @code{libclang} it can
2849 provide syntax checking and autocompletion on compiler level which is very
2850 resistent against false positives. It also integrates well with other
2851 packages like @code{eldoc-mode} and especially @code{company-mode} as
2852 described on the homepage.")
2853 (license license:gpl3+)))
2854
2855 (define-public emacs-irony-mode-server
2856 (package (inherit emacs-irony-mode)
2857 (name "emacs-irony-mode-server")
2858 (inputs
2859 `(("clang" ,clang)))
2860 (propagated-inputs '())
2861 (arguments
2862 `(#:phases
2863 (modify-phases %standard-phases
2864 (replace 'configure
2865 (lambda* (#:key outputs #:allow-other-keys)
2866 (let ((out (assoc-ref outputs "out")))
2867 (invoke "cmake"
2868 "server"
2869 (string-append "-DCMAKE_INSTALL_PREFIX=" out)) #t))))))
2870 (build-system cmake-build-system)
2871 (synopsis "Server for the Emacs @dfn{irony mode}")))
2872
2873 (define-public emacs-company-irony
2874 (package
2875 (name "emacs-company-irony")
2876 (version "1.1.0")
2877 (source (origin
2878 (method git-fetch)
2879 (uri (git-reference
2880 (url "https://github.com/Sarcasm/company-irony.git")
2881 (commit (string-append "v" version))))
2882 (sha256 (base32
2883 "1qgyam2vyjw90kpxns5cd6bq3qiqjhzpwrlvmi18vyb69qcgqd8a"))
2884 (file-name (git-file-name name version))))
2885 (build-system emacs-build-system)
2886 (inputs
2887 `(("emacs-irony-mode" ,emacs-irony-mode)
2888 ("emacs-company" ,emacs-company)))
2889 (synopsis "C++ completion backend for Company using irony-mode")
2890 (description "This backend for company-mode allows for C++ code completion
2891 with irony-mode using clang-tooling.")
2892 (home-page "https://github.com/Sarcasm/company-irony")
2893 (license license:gpl3+)))
2894
2895 (define-public emacs-flycheck-irony
2896 (package
2897 (name "emacs-flycheck-irony")
2898 (version "0.1.0")
2899 (source (origin
2900 (method git-fetch)
2901 (uri (git-reference
2902 (url "https://github.com/Sarcasm/flycheck-irony.git")
2903 (commit (string-append "v" version))))
2904 (sha256
2905 (base32 "0qa5a8wzvzxwqql92ibc9s43k8sj3vwn7skz9hfr8av0skkhx996"))
2906 (file-name (string-append name "-" version))))
2907 (build-system emacs-build-system)
2908 (inputs
2909 `(("irony-mode" ,emacs-irony-mode)
2910 ("flycheck-mode" ,emacs-flycheck)
2911 ("emacs-company" ,emacs-company)))
2912 (synopsis "Live syntax checking frontend for Flycheck using irony-mode")
2913 (description "This package provides a frontend for Flycheck that lets
2914 irony-mode do the syntax checking.")
2915 (home-page "https://github.com/Sarcasm/flycheck-irony")
2916 (license license:gpl3+)))
2917
2918 (define-public emacs-irony-eldoc
2919 (package
2920 (name "emacs-irony-eldoc")
2921 (version (package-version emacs-irony-mode))
2922 (source
2923 (origin
2924 (method git-fetch)
2925 (uri (git-reference
2926 (url "https://github.com/ikirill/irony-eldoc.git")
2927 (commit "0df5831eaae264a25422b061eb2792aadde8b3f2")))
2928 (sha256 (base32 "1l5qpr66v1l12fb50yh73grb2rr85xxmbj19mm33b5rdrq2bqmmd"))
2929 (file-name (string-append name "-" version))))
2930 (build-system emacs-build-system)
2931 (inputs
2932 `(("irony-mode" ,emacs-irony-mode)))
2933 (synopsis "Eldoc integration for irony-mode")
2934 (description "Irony-eldoc is an eldoc extension that shows documentation
2935 for the current function or variable in the minibuffer.")
2936 (home-page "https://github.com/ikirill/irony-eldoc")
2937 (license license:gpl3+)))
2938
2939 (define-public emacs-company-quickhelp
2940 (package
2941 (name "emacs-company-quickhelp")
2942 (version "2.3.0")
2943 (source
2944 (origin
2945 (method url-fetch)
2946 (uri (string-append
2947 "https://github.com/expez/company-quickhelp/archive/"
2948 version ".tar.gz"))
2949 (file-name (string-append name "-" version ".tar.gz"))
2950 (sha256
2951 (base32
2952 "0xrn2z1dgk5gmkmp2jkn9g83ckk39lqp5pyyv8rl7f6gqvib3qh0"))))
2953 (build-system emacs-build-system)
2954 (propagated-inputs
2955 `(("emacs-pos-tip" ,emacs-pos-tip)
2956 ("emacs-company" ,emacs-company)))
2957 (home-page "https://github.com/expez/company-quickhelp")
2958 (synopsis "Popup documentation for completion candidates")
2959 (description "@code{company-quickhelp} shows documentation for the
2960 completion candidate when using the Company text completion framework.")
2961 (license license:gpl3+)))
2962
2963 (define-public emacs-multiple-cursors
2964 (package
2965 (name "emacs-multiple-cursors")
2966 (version "1.4.0")
2967 (source
2968 (origin
2969 (method url-fetch)
2970 (uri (string-append "https://github.com/magnars/multiple-cursors.el/"
2971 "archive/" version ".tar.gz"))
2972 (file-name (string-append name "-" version ".tar.gz"))
2973 (sha256
2974 (base32
2975 "0hihihlvcvzayg5fnqzcg45fhvlmq6xlq58syy00rjwbry9w389k"))))
2976 (build-system emacs-build-system)
2977 (home-page "https://github.com/magnars/multiple-cursors.el")
2978 (synopsis "Multiple cursors for Emacs")
2979 (description
2980 "This package adds support to Emacs for editing text with multiple
2981 simultaneous cursors.")
2982 (license license:gpl3+)))
2983
2984 (define-public emacs-typo
2985 (package
2986 (name "emacs-typo")
2987 (version "1.1")
2988 (home-page "https://github.com/jorgenschaefer/typoel")
2989 (source (origin
2990 (method git-fetch)
2991 (uri (git-reference
2992 (url home-page)
2993 (commit (string-append "v" version))))
2994 (sha256
2995 (base32
2996 "1jhd4grch5iz12gyxwfbsgh4dmz5hj4bg4gnvphccg8dsnni05k2"))
2997 (file-name (string-append name "-" version))))
2998 (build-system emacs-build-system)
2999 (synopsis "Minor mode for typographic editing")
3000 (description
3001 "This package provides two Emacs modes, @code{typo-mode} and
3002 @code{typo-global-mode}. These modes automatically insert Unicode characters
3003 for quotation marks, dashes, and ellipses. For example, typing @kbd{\"}
3004 automatically inserts a Unicode opening or closing quotation mark, depending
3005 on context.")
3006 (license license:gpl3+)))
3007
3008 (define-public emacs-scheme-complete
3009 (let ((commit "9b5cf224bf2a5994bc6d5b152ff487517f1a9bb5"))
3010 (package
3011 (name "emacs-scheme-complete")
3012 (version (string-append "20151223." (string-take commit 8)))
3013 (source
3014 (origin
3015 (file-name (string-append name "-" version))
3016 (method git-fetch)
3017 (uri (git-reference
3018 (url "https://github.com/ashinn/scheme-complete.git")
3019 (commit commit)))
3020 (sha256
3021 (base32
3022 "141wn9l0m33w0g3dqmx8nxbfdny1r5xbr6ak61rsz21bk0qafs7x"))
3023 (patches
3024 (search-patches "emacs-scheme-complete-scheme-r5rs-info.patch"))))
3025 (build-system emacs-build-system)
3026 (home-page "https://github.com/ashinn/scheme-complete")
3027 (synopsis "Smart tab completion for Scheme in Emacs")
3028 (description
3029 "This file provides a single function, @code{scheme-smart-complete},
3030 which you can use for intelligent, context-sensitive completion for any Scheme
3031 implementation in Emacs. To use it just load this file and bind that function
3032 to a key in your preferred mode.")
3033 (license license:public-domain))))
3034
3035 (define-public emacs-scel
3036 (let ((version "20170629")
3037 (revision "1")
3038 (commit "aeea3ad4be9306d14c3a734a4ff54fee10ac135b"))
3039 (package
3040 (name "emacs-scel")
3041 (version (git-version version revision commit))
3042 (source
3043 (origin
3044 (method git-fetch)
3045 (uri (git-reference
3046 (url "https://github.com/supercollider/scel.git")
3047 (commit commit)))
3048 (file-name (string-append name "-" version "-checkout"))
3049 (sha256
3050 (base32
3051 "0jvmzs1lsjyndqshhii2y4mnr3wghai26i3p75453zrpxpg0zvvw"))))
3052 (build-system emacs-build-system)
3053 (arguments
3054 `(#:modules ((guix build emacs-build-system)
3055 ((guix build cmake-build-system) #:prefix cmake:)
3056 (guix build utils))
3057 #:imported-modules (,@%emacs-build-system-modules
3058 (guix build cmake-build-system))
3059 #:phases
3060 (modify-phases %standard-phases
3061 (add-after 'unpack 'configure
3062 (lambda* (#:key outputs #:allow-other-keys)
3063 (substitute* "el/CMakeLists.txt"
3064 (("share/emacs/site-lisp/SuperCollider")
3065 (string-append
3066 "share/emacs/site-lisp/guix.d/scel-" ,version)))
3067 ((assoc-ref cmake:%standard-phases 'configure)
3068 #:outputs outputs
3069 #:configure-flags '("-DSC_EL_BYTECOMPILE=OFF"))))
3070 (add-after 'set-emacs-load-path 'add-el-dir-to-emacs-load-path
3071 (lambda _
3072 (setenv "EMACSLOADPATH"
3073 (string-append (getcwd) "/el:" (getenv "EMACSLOADPATH")))
3074 #t))
3075 (replace 'install (assoc-ref cmake:%standard-phases 'install)))))
3076 (inputs
3077 `(("supercollider" ,supercollider)))
3078 (native-inputs
3079 `(("cmake" ,cmake)))
3080 (home-page "https://github.com/supercollider/scel")
3081 (synopsis "SuperCollider Emacs interface")
3082 (description "@code{emacs-scel} is an Emacs interface to SuperCollider.
3083 SuperCollider is a platform for audio synthesis and algorithmic composition.")
3084 (license license:gpl2+))))
3085
3086 (define-public emacs-mit-scheme-doc
3087 (package
3088 (name "emacs-mit-scheme-doc")
3089 (version "20140203")
3090 (source
3091 (origin
3092 (modules '((guix build utils)))
3093 (snippet
3094 ;; keep only file of interest
3095 '(begin
3096 (for-each delete-file '("dot-emacs.el" "Makefile"))
3097 (install-file "6.945-config/mit-scheme-doc.el" ".")
3098 (delete-file-recursively "6.945-config")
3099 #t))
3100 (file-name (string-append name "-" version ".tar.bz2"))
3101 (method url-fetch)
3102 (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/"
3103 "6.945/dont-panic/emacs-basic-config.tar.bz2"))
3104 (sha256
3105 (base32
3106 "0dqidg2bd66pawqfarvwca93w5gqf9mikn1k2a2rmd9ymfjpziq1"))))
3107 (build-system emacs-build-system)
3108 (inputs `(("mit-scheme" ,mit-scheme)))
3109 (arguments
3110 `(#:phases
3111 (modify-phases %standard-phases
3112 (add-after 'unpack 'configure-doc
3113 (lambda* (#:key inputs #:allow-other-keys)
3114 (let* ((mit-scheme-dir (assoc-ref inputs "mit-scheme"))
3115 (doc-dir (string-append mit-scheme-dir "/share/doc/"
3116 "mit-scheme-"
3117 ,(package-version mit-scheme))))
3118 (substitute* "mit-scheme-doc.el"
3119 (("http://www\\.gnu\\.org/software/mit-scheme/documentation/mit-scheme-ref/")
3120 (string-append "file:" doc-dir "/mit-scheme-ref/")))))))))
3121 (home-page "http://groups.csail.mit.edu/mac/users/gjs/6.945/dont-panic/")
3122 (synopsis "MIT-Scheme documentation lookup for Emacs")
3123 (description
3124 "This package provides a set of Emacs functions to search definitions of
3125 identifiers in the MIT-Scheme documentation.")
3126 (license license:gpl2+)))
3127
3128 (define-public emacs-constants
3129 (package
3130 (name "emacs-constants")
3131 (version "2.6")
3132 (home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
3133 (source
3134 (origin
3135 (file-name (string-append name "-" version ".tar.gz"))
3136 (method url-fetch)
3137 (uri (string-append "https://github.com/fedeinthemix/emacs-constants"
3138 "/archive/v" version ".tar.gz"))
3139 (sha256
3140 (base32
3141 "0pnrpmmxq8mh5h2hbrp5vcym0j0fh6dv3s7c5ccn18wllhzg9g7n"))))
3142 (build-system emacs-build-system)
3143 (synopsis "Enter definition of constants into an Emacs buffer")
3144 (description
3145 "This package provides functions for inserting the definition of natural
3146 constants and units into an Emacs buffer.")
3147 (license license:gpl2+)))
3148
3149 (define-public emacs-tagedit
3150 (package
3151 (name "emacs-tagedit")
3152 (version "1.4.0")
3153 (source
3154 (origin
3155 (method url-fetch)
3156 (uri (string-append "https://github.com/magnars/tagedit/"
3157 "archive/" version ".tar.gz"))
3158 (file-name (string-append name "-" version ".tar.gz"))
3159 (sha256
3160 (base32
3161 "1apfnann4qklfdsmdi7icjsj18x7gwx8d83iqr4z25clszz95xfq"))))
3162 (build-system emacs-build-system)
3163 (propagated-inputs
3164 `(("emacs-s" ,emacs-s)
3165 ("emacs-dash" ,emacs-dash)))
3166 (home-page "https://github.com/magnars/tagedit")
3167 (synopsis "Some paredit-like features for html-mode")
3168 (description
3169 "This package provides a collection of paredit-like functions for editing
3170 in @code{html-mode}.")
3171 (license license:gpl3+)))
3172
3173 (define-public emacs-slime
3174 (package
3175 (name "emacs-slime")
3176 (version "2.22")
3177 (source
3178 (origin
3179 (file-name (string-append name "-" version ".tar.gz"))
3180 (method url-fetch)
3181 (uri (string-append
3182 "https://github.com/slime/slime/archive/v"
3183 version ".tar.gz"))
3184 (sha256
3185 (base32
3186 "07vaib1n4zyh5yy30gdpq0bc5cv6w84piml5b3mfc9ibjhaykkms"))))
3187 (build-system emacs-build-system)
3188 (native-inputs
3189 `(("texinfo" ,texinfo)))
3190 (arguments
3191 `(#:include '("\\.el$" "\\.lisp$" "\\.asd$" "contrib")
3192 #:exclude '("^slime-tests.el" "^contrib/test/"
3193 "^contrib/Makefile$" "^contrib/README.md$")
3194 #:phases
3195 (modify-phases %standard-phases
3196 (add-before 'install 'configure
3197 (lambda* _
3198 (emacs-substitute-variables "slime.el"
3199 ("inferior-lisp-program" "sbcl"))
3200 #t))
3201 (add-before 'install 'install-doc
3202 (lambda* (#:key outputs #:allow-other-keys)
3203 (let* ((out (assoc-ref outputs "out"))
3204 (info-dir (string-append out "/share/info"))
3205 (doc-dir (string-append out "/share/doc/"
3206 ,name "-" ,version))
3207 (doc-files '("doc/slime-refcard.pdf"
3208 "README.md" "NEWS" "PROBLEMS"
3209 "CONTRIBUTING.md")))
3210 (with-directory-excursion "doc"
3211 (substitute* "Makefile"
3212 (("infodir=/usr/local/info")
3213 (string-append "infodir=" info-dir)))
3214 (invoke "make" "html/index.html")
3215 (invoke "make" "slime.info")
3216 (install-file "slime.info" info-dir)
3217 (copy-recursively "html" (string-append doc-dir "/html")))
3218 (for-each (lambda (f)
3219 (install-file f doc-dir)
3220 (delete-file f))
3221 doc-files)
3222 (delete-file-recursively "doc")
3223 #t))))))
3224 (home-page "https://github.com/slime/slime")
3225 (synopsis "Superior Lisp Interaction Mode for Emacs")
3226 (description
3227 "SLIME extends Emacs with support for interactive programming in
3228 Common Lisp. The features are centered around @command{slime-mode},
3229 an Emacs minor mode that complements the standard @command{lisp-mode}.
3230 While lisp-mode supports editing Lisp source files, @command{slime-mode}
3231 adds support for interacting with a running Common Lisp process
3232 for compilation, debugging, documentation lookup, and so on.")
3233 (license (list license:gpl2+ license:public-domain))))
3234
3235 (define-public emacs-popup
3236 (package
3237 (name "emacs-popup")
3238 (version "0.5.3")
3239 (source (origin
3240 (method url-fetch)
3241 (uri (string-append
3242 "https://github.com/auto-complete/popup-el/archive/v"
3243 version ".tar.gz"))
3244 (file-name (string-append name "-" version ".tar.gz"))
3245 (sha256
3246 (base32
3247 "1yrgfj8y69xmcb6kwgplhq68ndm9410qwh7sd2knnd1gchpphdc0"))))
3248 (build-system emacs-build-system)
3249 (home-page "https://github.com/auto-complete/popup-el")
3250 (synopsis "Visual Popup User Interface for Emacs")
3251 (description
3252 "Popup.el is a visual popup user interface library for Emacs.
3253 This provides a basic API and common UI widgets such as popup tooltips
3254 and popup menus.")
3255 (license license:gpl3+)))
3256
3257 (define-public emacs-puppet-mode
3258 (let ((commit "b3ed5057166a4f49dfa9be638523a348b55a2fd2")
3259 (revision "1"))
3260 (package
3261 (name "emacs-puppet-mode")
3262 ;; The last release, 0.3 was several years ago, and there have been many
3263 ;; commits since
3264 (version (git-version "0.3" revision commit))
3265 (source
3266 (origin
3267 (method url-fetch)
3268 (uri (string-append
3269 "https://raw.githubusercontent.com/voxpupuli/puppet-mode/"
3270 commit "/puppet-mode.el"))
3271 (sha256
3272 (base32
3273 "1indycxawsl0p2aqqg754f6735q3cmah9vd886rpn0ncc3ipi1xm"))))
3274 (build-system emacs-build-system)
3275 (home-page "https://github.com/voxpupuli/puppet-mode")
3276 (synopsis "Emacs major mode for the Puppet configuration language")
3277 (description
3278 "This package provides support for the Puppet configuration language,
3279 including syntax highlighting, indentation of expressions and statements,
3280 linting of manifests and integration with Puppet Debugger.")
3281 ;; Also incorporates work covered by the Apache License, Version 2.0
3282 (license license:gpl3+))))
3283
3284 (define-public emacs-god-mode
3285 (let ((commit "6cf0807b6555eb6fcf8387a4e3b667071ef38964")
3286 (revision "1"))
3287 (package
3288 (name "emacs-god-mode")
3289 (version (string-append "20151005.925."
3290 revision "-" (string-take commit 9)))
3291 (source
3292 (origin
3293 (method git-fetch)
3294 (uri (git-reference
3295 (url "https://github.com/chrisdone/god-mode.git")
3296 (commit commit)))
3297 (file-name (string-append name "-" version "-checkout"))
3298 (sha256
3299 (base32
3300 "1am415k4xxcva6y3vbvyvknzc6bma49pq3p85zmpjsdmsp18qdix"))))
3301 (build-system emacs-build-system)
3302 (home-page "https://github.com/chrisdone/god-mode")
3303 (synopsis "Minor mode for entering commands without modifier keys")
3304 (description
3305 "This package provides a global minor mode for entering Emacs commands
3306 without modifier keys. It's similar to Vim's separation of commands and
3307 insertion mode. When enabled all keys are implicitly prefixed with
3308 @samp{C-} (among other helpful shortcuts).")
3309 (license license:gpl3+))))
3310
3311 (define-public emacs-jinja2-mode
3312 (package
3313 (name "emacs-jinja2-mode")
3314 (version "0.2")
3315 (source
3316 (origin
3317 (method url-fetch)
3318 (uri (string-append "https://github.com/paradoxxxzero/jinja2-mode/"
3319 "archive/v" version ".tar.gz"))
3320 (file-name (string-append name "-" version ".tar.gz"))
3321 (sha256
3322 (base32
3323 "0cgxjab1kla2zc2fj7bzib6i7snp08zshandmp9kqcm85l262xpn"))))
3324 (build-system emacs-build-system)
3325 (home-page "https://github.com/paradoxxxzero/jinja2-mode")
3326 (synopsis "Major mode for jinja2")
3327 (description
3328 "Emacs major mode for jinja2 with: syntax highlighting,
3329 sgml/html integration, and indentation (working with sgml).")
3330 (license license:gpl3+)))
3331
3332 (define-public emacs-rfcview
3333 (package
3334 (name "emacs-rfcview")
3335 (version "0.13")
3336 (home-page "http://www.loveshack.ukfsn.org/emacs")
3337 (source (origin
3338 (method url-fetch)
3339 (uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el")
3340 (sha256
3341 (base32
3342 "0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz"))))
3343 (build-system emacs-build-system)
3344 (synopsis "Prettify Request for Comments (RFC) documents")
3345 (description "The Internet Engineering Task Force (IETF) and the Internet
3346 Society (ISOC) publish various Internet-related protocols and specifications
3347 as \"Request for Comments\" (RFC) documents and Internet Standard (STD)
3348 documents. RFCs and STDs are published in a simple text form. This package
3349 provides an Emacs major mode, rfcview-mode, which makes it more pleasant to
3350 read these documents in Emacs. It prettifies the text and adds
3351 hyperlinks/menus for easier navigation. It also provides functions for
3352 browsing the index of RFC documents and fetching them from remote servers or
3353 local directories.")
3354 (license license:gpl3+)))
3355
3356 (define-public emacs-ffap-rfc-space
3357 (package
3358 (name "emacs-ffap-rfc-space")
3359 (version "12")
3360 (home-page "http://user42.tuxfamily.org/ffap-rfc-space/index.html")
3361 (source (origin
3362 (method url-fetch)
3363 (uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el")
3364 (sha256
3365 (base32
3366 "1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck"))))
3367 (build-system emacs-build-system)
3368 (synopsis "Make ffap recognize an RFC with a space before its number")
3369 (description "The Internet Engineering Task Force (IETF) and the
3370 Internet Society (ISOC) publish various Internet-related protocols and
3371 specifications as \"Request for Comments\" (RFC) documents. The
3372 built-in Emacs module \"ffap\" (Find File at Point) has the ability to
3373 recognize names at point which look like \"RFC1234\" and \"RFC-1234\"
3374 and load the appropriate RFC from a remote server. However, it fails
3375 to recognize a name like \"RFC 1234\". This package enhances ffap so
3376 that it correctly finds RFCs even when a space appears before the
3377 number.")
3378 (license license:gpl3+)))
3379
3380 (define-public emacs-org-bullets
3381 (package
3382 (name "emacs-org-bullets")
3383 (version "0.2.4")
3384 (source
3385 (origin
3386 (method url-fetch)
3387 (uri (string-append "https://github.com/sabof/org-bullets/archive/"
3388 version ".tar.gz"))
3389 (file-name (string-append name "-" version ".tar.gz"))
3390 (sha256
3391 (base32
3392 "1dyxvpb73vj80v8br2q9rf255hfphrgaw91fbvwdcd735np9pcnh"))))
3393 (build-system emacs-build-system)
3394 (home-page "https://github.com/sabof/org-bullets")
3395 (synopsis "Show bullets in org-mode as UTF-8 characters")
3396 (description
3397 "This package provides an Emacs minor mode causing bullets in
3398 @code{org-mode} to be rendered as UTF-8 characters.")
3399 (license license:gpl3+)))
3400
3401 (define-public emacs-org-pomodoro
3402 (package
3403 (name "emacs-org-pomodoro")
3404 (version "2.1.0")
3405 (source
3406 (origin
3407 (method url-fetch)
3408 (uri (string-append
3409 "https://github.com/lolownia/org-pomodoro/archive/"
3410 version ".tar.gz"))
3411 (file-name (string-append name "-" version ".tar.gz"))
3412 (sha256
3413 (base32
3414 "1jalsggw3q5kvj353f84x4nl04a5vmq07h75ggppy1627lb31zm4"))))
3415 (build-system emacs-build-system)
3416 (propagated-inputs
3417 `(("emacs-alert" ,emacs-alert)))
3418 (home-page "https://github.com/lolownia/org-pomodoro")
3419 (synopsis "Pomodoro technique for org-mode")
3420 (description "@code{emacs-org-pomodoro} adds very basic support for
3421 Pomodoro technique in Emacs org-mode.
3422
3423 Run @code{M-x org-pomodoro} for the task at point or select one of the
3424 last tasks that you clocked time for. Each clocked-in pomodoro starts
3425 a timer of 25 minutes and after each pomodoro a break timer of 5
3426 minutes is started automatically. Every 4 breaks a long break is
3427 started with 20 minutes. All values are customizable.")
3428 (license license:gpl3+)))
3429
3430 (define-public emacs-org-trello
3431 (package
3432 (name "emacs-org-trello")
3433 (version "0.8.0")
3434 (source (origin
3435 (method url-fetch)
3436 (uri (string-append
3437 "https://github.com/org-trello/org-trello/archive/"
3438 version ".tar.gz"))
3439 (file-name (string-append name "-" version ".tar.gz"))
3440 (sha256
3441 (base32
3442 "0549mnf5cgwn8b8jbl38fljbaxmh1605sv9j8f3lsa95jhs1zpa0"))))
3443 (build-system emacs-build-system)
3444 (propagated-inputs
3445 `(("emacs-dash" ,emacs-dash)
3446 ("emacs-deferred" ,emacs-deferred)
3447 ("emacs-f" ,emacs-f)
3448 ("emacs-helm" ,emacs-helm)
3449 ("emacs-request" ,emacs-request)
3450 ("emacs-s" ,emacs-s)))
3451 (home-page "https://org-trello.github.io")
3452 (synopsis "Emacs minor mode for interacting with Trello")
3453 (description "This package provides an Emacs minor mode to extend
3454 @code{org-mode} with Trello abilities. Trello is an online project
3455 organizer.")
3456 (license license:gpl3+)))
3457
3458 (define-public emacs-atom-one-dark-theme
3459 (let ((commit "1f1185bf667a38d3d0d180ce85fd4c131818aae2")
3460 (revision "0"))
3461 (package
3462 (name "emacs-atom-one-dark-theme")
3463 (version (git-version "0.4.0" revision commit))
3464 (source (origin
3465 (method git-fetch)
3466 (uri (git-reference
3467 (url "https://github.com/jonathanchu/atom-one-dark-theme.git")
3468 (commit commit)))
3469 (sha256
3470 (base32
3471 "1alma16hg3mfjly8a9s3mrswkjjx4lrpdnf43869hn2ibkn7zx9z"))
3472 (file-name (git-file-name name version))))
3473 (build-system emacs-build-system)
3474 (home-page "https://github.com/jonathanchu/atom-one-dark-theme")
3475 (synopsis "Atom One Dark color theme for Emacs")
3476 (description "An Emacs port of the Atom One Dark theme from Atom.io.")
3477 (license license:gpl3+))))
3478
3479 (define-public emacs-zenburn-theme
3480 (package
3481 (name "emacs-zenburn-theme")
3482 (version "2.6")
3483 (source (origin
3484 (method url-fetch)
3485 (uri (string-append
3486 "https://github.com/bbatsov/zenburn-emacs/archive/v"
3487 version ".tar.gz"))
3488 (file-name (string-append name "-" version ".tar.gz"))
3489 (sha256
3490 (base32
3491 "0qc9d1rwq55yzh8shbppyd6izy1grpyr8kqh5zdgm7c5jccngpr4"))))
3492 (build-system emacs-build-system)
3493 (home-page "https://github.com/bbatsov/zenburn-emacs")
3494 (synopsis "Low contrast color theme for Emacs")
3495 (description
3496 "Zenburn theme is a port of the popular Vim Zenburn theme for Emacs.
3497 It is built on top of the custom theme support in Emacs 24 or later.")
3498 (license license:gpl3+)))
3499
3500 (define-public emacs-solarized-theme
3501 (package
3502 (name "emacs-solarized-theme")
3503 (version "1.2.2")
3504 (source (origin
3505 (method url-fetch)
3506 (uri (string-append "https://github.com/bbatsov/solarized-emacs/"
3507 "archive/v" version ".tar.gz"))
3508 (file-name (string-append name "-" version ".tar.gz"))
3509 (sha256
3510 (base32
3511 "1ha3slc6d9wi9ilkhmwrzkvf308n6ph7b0k69pk369s9304awxzx"))))
3512 (build-system emacs-build-system)
3513 (propagated-inputs
3514 `(("emacs-dash" ,emacs-dash)))
3515 (home-page "https://github.com/bbatsov/solarized-emacs")
3516 (synopsis "Port of the Solarized theme for Emacs")
3517 (description
3518 "Solarized for Emacs is a port of the Solarized theme for Vim. This
3519 package provides a light and a dark variant.")
3520 (license license:gpl3+)))
3521
3522 (define-public emacs-ahungry-theme
3523 (package
3524 (name "emacs-ahungry-theme")
3525 (version "1.10.0")
3526 (source
3527 (origin (method url-fetch)
3528 (uri (string-append "https://elpa.gnu.org/packages/ahungry-theme-"
3529 version ".tar"))
3530 (sha256
3531 (base32
3532 "14q5yw56n82qph09bk7wmj5b1snhh9w0nk5s1l7yn9ldg71xq6pm"))))
3533 (build-system emacs-build-system)
3534 (home-page "https://github.com/ahungry/color-theme-ahungry")
3535 (synopsis "Ahungry color theme for Emacs")
3536 (description "Ahungry theme for Emacs provides bright and bold colors.
3537 If you load it from a terminal, you will be able to make use of the
3538 transparent background. If you load it from a GUI, it will default to a
3539 dark background.")
3540 (license license:gpl3+)))
3541
3542 (define-public emacs-2048-game
3543 (package
3544 (name "emacs-2048-game")
3545 (version "20151026.1233")
3546 (source
3547 (origin
3548 (method url-fetch)
3549 (uri (string-append "https://melpa.org/packages/2048-game-"
3550 version ".el"))
3551 (sha256
3552 (base32
3553 "0gy2pvz79whpavp4jmz8h9krzn7brmvv3diixi1d4w51pcdvaldd"))))
3554 (build-system emacs-build-system)
3555 (home-page "https://bitbucket.org/zck/2048.el")
3556 (synopsis "Implementation of the game 2048 in Emacs Lisp")
3557 (description
3558 "This program is an implementation of 2048 for Emacs.
3559 The goal of this game is to create a tile with value 2048. The size of the
3560 board and goal value can be customized.")
3561 (license license:gpl3+)))
3562
3563 (define-public emacs-base16-theme
3564 (package
3565 (name "emacs-base16-theme")
3566 (version "2.1")
3567 (source
3568 (origin
3569 (method url-fetch)
3570 (uri (string-append "https://stable.melpa.org/packages/base16-theme-"
3571 version ".tar"))
3572 (sha256
3573 (base32
3574 "0z6hrwz2jlz6jbr381rcqcqvx6hss5cad352klx07rark7zccacj"))))
3575 (build-system emacs-build-system)
3576 (home-page "https://github.com/belak/base16-emacs")
3577 (synopsis "Base16 color themes for Emacs")
3578 (description
3579 "Base16 provides carefully chosen syntax highlighting and a default set
3580 of sixteen colors suitable for a wide range of applications. Base16 is not a
3581 single theme but a set of guidelines with numerous implementations.")
3582 (license license:expat)))
3583
3584 (define-public emacs-smartparens
3585 (package
3586 (name "emacs-smartparens")
3587 (version "1.11.0")
3588 (source (origin
3589 (method url-fetch)
3590 (uri (string-append
3591 "https://github.com/Fuco1/smartparens/archive/"
3592 version ".tar.gz"))
3593 (file-name (string-append name "-" version ".tar.gz"))
3594 (sha256
3595 (base32
3596 "0q5as813xs8y29i3v2rm97phd6m7xsmmw6hwbvx57gwmi8i1c409"))))
3597 (build-system emacs-build-system)
3598 (propagated-inputs
3599 `(("emacs-dash" ,emacs-dash)
3600 ("emacs-markdown-mode" ,emacs-markdown-mode)))
3601 (home-page "https://github.com/Fuco1/smartparens")
3602 (synopsis "Paredit-like insertion, wrapping and navigation with user
3603 defined pairs")
3604 (description
3605 "Smartparens is a minor mode for Emacs that deals with parens pairs
3606 and tries to be smart about it. It started as a unification effort to
3607 combine functionality of several existing packages in a single,
3608 compatible and extensible way to deal with parentheses, delimiters, tags
3609 and the like. Some of these packages include autopair, textmate,
3610 wrap-region, electric-pair-mode, paredit and others. With the basic
3611 features found in other packages it also brings many improvements as
3612 well as completely new features.")
3613 (license license:gpl3+)))
3614
3615 (define-public emacs-highlight-symbol
3616 (package
3617 (name "emacs-highlight-symbol")
3618 (version "1.3")
3619 (source (origin
3620 (method url-fetch)
3621 (uri (string-append
3622 "https://github.com/nschum/highlight-symbol.el/archive/"
3623 version ".tar.gz"))
3624 (file-name (string-append name "-" version ".tar.gz"))
3625 (sha256
3626 (base32
3627 "1n7k1qns0fn0jsyc0hrjac5nzk21xw48yc30vyrhwvc51h0b9g90"))))
3628 (build-system emacs-build-system)
3629 (home-page "https://nschum.de/src/emacs/highlight-symbol")
3630 (synopsis "Automatic and manual symbol highlighting for Emacs")
3631 (description
3632 "Use @code{highlight-symbol} to toggle highlighting of the symbol at
3633 point throughout the current buffer. Use @code{highlight-symbol-mode} to keep
3634 the symbol at point highlighted.
3635
3636 The functions @code{highlight-symbol-next}, @code{highlight-symbol-prev},
3637 @code{highlight-symbol-next-in-defun} and
3638 @code{highlight-symbol-prev-in-defun} allow for cycling through the locations
3639 of any symbol at point. Use @code{highlight-symbol-nav-mode} to enable key
3640 bindings @code{M-p} and @code{M-p} for navigation. When
3641 @code{highlight-symbol-on-navigation-p} is set, highlighting is triggered
3642 regardless of @code{highlight-symbol-idle-delay}.
3643
3644 @code{highlight-symbol-query-replace} can be used to replace the symbol. ")
3645 (license license:gpl2+)))
3646
3647 (define-public emacs-hl-todo
3648 (package
3649 (name "emacs-hl-todo")
3650 (version "1.9.0")
3651 (source (origin
3652 (method url-fetch)
3653 (uri (string-append
3654 "https://raw.githubusercontent.com/tarsius/hl-todo/"
3655 version "/hl-todo.el"))
3656 (file-name (string-append "hl-todo-" version ".el"))
3657 (sha256
3658 (base32
3659 "0728givzh7xv5i88ac9if8byj1p8bilrj1fnizca10s0rv100hdr"))))
3660 (build-system emacs-build-system)
3661 (home-page "https://github.com/tarsius/hl-todo")
3662 (synopsis "Emacs mode to highlight TODO and similar keywords")
3663 (description
3664 "This package provides an Emacs mode to highlight TODO and similar
3665 keywords in comments and strings. This package also provides commands for
3666 moving to the next or previous keyword and to invoke @code{occur} with a
3667 regexp that matches all known keywords.")
3668 (license license:gpl3+)))
3669
3670 (define-public emacs-perspective
3671 (package
3672 (name "emacs-perspective")
3673 (version "1.12")
3674 (source
3675 (origin
3676 (method url-fetch)
3677 (uri (string-append "https://github.com/nex3/perspective-el/"
3678 "archive/" version ".tar.gz"))
3679 (file-name (string-append name "-" version ".tar.gz"))
3680 (sha256
3681 (base32
3682 "078ahh0kmhdylq5ib9c81c76kz1n02xwc83pm729d00i84ibviic"))))
3683 (build-system emacs-build-system)
3684 (home-page "https://github.com/nex3/perspective-el")
3685 (synopsis "Switch between named \"perspectives\"")
3686 (description
3687 "This package provides tagged workspaces in Emacs, similar to workspaces in
3688 windows managers such as Awesome and XMonad. @code{perspective.el} provides
3689 multiple workspaces (or \"perspectives\") for each Emacs frame. Each
3690 perspective is composed of a window configuration and a set of buffers.
3691 Switching to a perspective activates its window configuration, and when in a
3692 perspective only its buffers are available by default.")
3693 ;; This package is released under the same license as Emacs (GPLv3+) or
3694 ;; the Expat license.
3695 (license license:gpl3+)))
3696
3697 (define-public emacs-test-simple
3698 (package
3699 (name "emacs-test-simple")
3700 (version "1.3.0")
3701 (source
3702 (origin
3703 (method url-fetch)
3704 (uri (string-append "https://elpa.gnu.org/packages/test-simple-"
3705 version ".el"))
3706 (sha256
3707 (base32
3708 "1yd61jc9ds95a5n09052kwc5gasy57g4lxr0jsff040brlyi9czz"))))
3709 (build-system emacs-build-system)
3710 (home-page "https://github.com/rocky/emacs-test-simple")
3711 (synopsis "Simple unit test framework for Emacs Lisp")
3712 (description
3713 "Test Simple is a simple unit test framework for Emacs Lisp. It
3714 alleviates the need for context macros, enclosing specifications or required
3715 test tags. It supports both interactive and non-interactive use.")
3716 (license license:gpl3+)))
3717
3718 (define-public emacs-load-relative
3719 (package
3720 (name "emacs-load-relative")
3721 (version "1.3")
3722 (source
3723 (origin
3724 (method url-fetch)
3725 (uri (string-append "https://elpa.gnu.org/packages/load-relative-"
3726 version ".el"))
3727 (sha256
3728 (base32
3729 "1hfxb2436jdsi9wfmsv47lkkpa5galjf5q81bqabbsv79rv59dps"))))
3730 (build-system emacs-build-system)
3731 (home-page "http://github.com/rocky/emacs-load-relative")
3732 (synopsis "Emacs Lisp relative file loading related functions")
3733 (description
3734 "Provides functions which facilitate writing multi-file Emacs packages
3735 and running from the source tree without having to \"install\" code or fiddle
3736 with @{load-path}.
3737
3738 The main function, @code{load-relative}, loads an Emacs Lisp file relative to
3739 another (presumably currently running) Emacs Lisp file.")
3740 (license license:gpl3+)))
3741
3742 (define-public emacs-loc-changes
3743 (package
3744 (name "emacs-loc-changes")
3745 (version "1.2")
3746 (source
3747 (origin
3748 (method url-fetch)
3749 (uri (string-append "https://elpa.gnu.org/packages/loc-changes-"
3750 version ".el"))
3751 (sha256
3752 (base32
3753 "1x8fn8vqasayf1rb8a6nma9n6nbvkx60krmiahyb05vl5rrsw6r3"))))
3754 (build-system emacs-build-system)
3755 (home-page "https://github.com/rocky/emacs-loc-changes")
3756 (synopsis "Keeps track of positions even after buffer changes")
3757 (description
3758 "This Emacs package provides a mean to track important buffer positions
3759 after buffer changes.")
3760 (license license:gpl3+)))
3761
3762 (define-public emacs-realgud
3763 (package
3764 (name "emacs-realgud")
3765 (version "1.4.5")
3766 (source
3767 (origin
3768 (method url-fetch)
3769 (uri (string-append "https://elpa.gnu.org/packages/realgud-"
3770 version ".tar"))
3771 (sha256
3772 (base32
3773 "108wgxg7fb4byaiasgvbxv2hq7b00biq9f0mh9hy6vw4160y5w24"))
3774 (patches
3775 ;; Patch awaiting inclusion upstream (see:
3776 ;; https://github.com/realgud/realgud/pull/226).
3777 (search-patches "emacs-realgud-fix-configure-ac.patch"))))
3778 (build-system emacs-build-system)
3779 (arguments
3780 `(#:tests? #t
3781 #:phases
3782 (modify-phases %standard-phases
3783 (add-after 'set-emacs-load-path 'fix-autogen-script
3784 (lambda _
3785 (substitute* "autogen.sh"
3786 (("./configure") "sh configure"))))
3787 (add-after 'fix-autogen-script 'autogen
3788 (lambda _
3789 (setenv "CONFIG_SHELL" "sh")
3790 (invoke "sh" "autogen.sh")))
3791 (add-after 'fix-autogen-script 'set-home
3792 (lambda _
3793 (setenv "HOME" (getenv "TMPDIR"))))
3794 (add-before 'patch-el-files 'remove-realgud-pkg.el
3795 (lambda _
3796 ;; XXX: This file is auto-generated at some point and causes
3797 ;; substitute* to crash during the `patch-el-files' phase with:
3798 ;; ERROR: In procedure stat: No such file or directory:
3799 ;; "./realgud-pkg.el"
3800 (delete-file "./realgud-pkg.el")
3801 ;; FIXME: `patch-el-files' crashes on this file with error:
3802 ;; unable to locate "bashdb".
3803 (delete-file "./test/test-regexp-bashdb.el"))))
3804 #:include (cons* ".*\\.el$" %default-include)))
3805 (native-inputs
3806 `(("autoconf" ,autoconf)
3807 ("automake" ,automake)
3808 ("emacs-test-simple" ,emacs-test-simple)))
3809 (propagated-inputs
3810 `(("emacs-load-relative" ,emacs-load-relative)
3811 ("emacs-loc-changes" ,emacs-loc-changes)))
3812 (home-page "https://github.com/realgud/realgud/")
3813 (synopsis
3814 "Modular front-end for interacting with external debuggers")
3815 (description
3816 "RealGUD is a modular, extensible GNU Emacs front-end for interacting
3817 with external debuggers. It integrates various debuggers such as gdb, pdb,
3818 ipdb, jdb, lldb, bashdb, zshdb, etc. and allows to visually step code in the
3819 sources. Unlike GUD, it also supports running multiple debug sessions in
3820 parallel.")
3821 (license license:gpl3+)))
3822
3823 (define-public emacs-request
3824 (package
3825 (name "emacs-request")
3826 (version "0.3.0")
3827 (source (origin
3828 (method git-fetch)
3829 (uri (git-reference
3830 (url "https://github.com/tkf/emacs-request.git")
3831 (commit (string-append "v" version))))
3832 (file-name (string-append name "-" version "-checkout"))
3833 (sha256
3834 (base32
3835 "0wyxqbb35yqf6ci47531lk32d6fppamx9d8826kdz983vm87him7"))))
3836 (build-system emacs-build-system)
3837 (propagated-inputs
3838 `(("emacs-deferred" ,emacs-deferred)))
3839 (home-page "https://github.com/tkf/emacs-request")
3840 (synopsis "Package for speaking HTTP in Emacs Lisp")
3841 (description "This package provides a HTTP request library with multiple
3842 backends. It supports url.el which is shipped with Emacs and the curl command
3843 line program.")
3844 (license license:gpl3+)))
3845
3846 (define-public emacs-rudel
3847 (package
3848 (name "emacs-rudel")
3849 (version "0.3.1")
3850 (source
3851 (origin
3852 (method url-fetch)
3853 (uri (string-append "http://elpa.gnu.org/packages/rudel-"
3854 version ".tar"))
3855 (sha256
3856 (base32
3857 "0glqa68g509p0s2vcc0i8kzlddnc9brd9jqhnm5rzxz4i050cvnz"))))
3858 (build-system emacs-build-system)
3859 (home-page "http://rudel.sourceforge.net/")
3860 (synopsis "Collaborative editing framework")
3861 (description
3862 "Rudel is a collaborative editing environment for GNU Emacs. Its purpose
3863 is to share buffers with other users in order to edit the contents of those
3864 buffers collaboratively. Rudel supports multiple backends to enable
3865 communication with other collaborative editors using different protocols,
3866 though currently Obby (for use with the Gobby editor) is the only
3867 fully-functional one.")
3868 (license license:gpl3+)))
3869
3870 (define-public emacs-hydra
3871 (package
3872 (name "emacs-hydra")
3873 (version "0.14.0")
3874 (source
3875 (origin
3876 (method git-fetch)
3877 (uri (git-reference
3878 (url "https://github.com/abo-abo/hydra")
3879 (commit version)))
3880 (file-name (git-file-name name version))
3881 (sha256
3882 (base32
3883 "0ln4z2796ycy33g5jcxkqvm7638qxy4sipsab7d2864hh700cikg"))))
3884 (build-system emacs-build-system)
3885 (home-page "https://github.com/abo-abo/hydra")
3886 (synopsis "Make Emacs bindings that stick around")
3887 (description
3888 "This package can be used to tie related commands into a family of short
3889 bindings with a common prefix---a Hydra. Once you summon the Hydra (through
3890 the prefixed binding), all the heads can be called in succession with only a
3891 short extension. Any binding that isn't the Hydra's head vanquishes the
3892 Hydra. Note that the final binding, besides vanquishing the Hydra, will still
3893 serve its original purpose, calling the command assigned to it. This makes
3894 the Hydra very seamless; it's like a minor mode that disables itself
3895 automatically.")
3896 (license license:gpl3+)))
3897
3898 (define-public emacs-ivy
3899 (package
3900 (name "emacs-ivy")
3901 (version "0.10.0")
3902 (source
3903 (origin
3904 (method git-fetch)
3905 (uri (git-reference
3906 (url "https://github.com/abo-abo/swiper.git")
3907 (commit version)))
3908 (file-name (string-append name "-" version "-checkout"))
3909 (sha256
3910 (base32
3911 "14vnigqb5c3yi4q9ysw1fiwdqyqwyklqpb9wnjf81chm7s2mshnr"))))
3912 (build-system emacs-build-system)
3913 (arguments
3914 `(#:phases
3915 (modify-phases %standard-phases
3916 (add-after 'install 'install-doc
3917 (lambda* (#:key outputs #:allow-other-keys)
3918 (let* ((out (assoc-ref outputs "out"))
3919 (info (string-append out "/share/info")))
3920 (with-directory-excursion "doc"
3921 (invoke "makeinfo" "ivy.texi")
3922 (install-file "ivy.info" info)
3923 #t)))))))
3924 (propagated-inputs
3925 `(("emacs-hydra" ,emacs-hydra)))
3926 (native-inputs
3927 `(("texinfo" ,texinfo)))
3928 (home-page "http://oremacs.com/swiper/")
3929 (synopsis "Incremental vertical completion for Emacs")
3930 (description
3931 "This package provides @code{ivy-read} as an alternative to
3932 @code{completing-read} and similar functions. No attempt is made to determine
3933 the best candidate. Instead, the user can navigate candidates with
3934 @code{ivy-next-line} and @code{ivy-previous-line}. The matching is done by
3935 splitting the input text by spaces and re-building it into a regular
3936 expression.")
3937 (license license:gpl3+)))
3938
3939 (define-public emacs-ivy-yasnippet
3940 (let ((commit "32580b4fd23ebf9ca7dde96704f7d53df6e253cd")
3941 (revision "2"))
3942 (package
3943 (name "emacs-ivy-yasnippet")
3944 (version (git-version "0.1" revision commit))
3945 (source
3946 (origin
3947 (method git-fetch)
3948 (uri (git-reference
3949 (url "https://github.com/mkcms/ivy-yasnippet.git")
3950 (commit commit)))
3951 (file-name (git-file-name name version))
3952 (sha256
3953 (base32
3954 "1wfg6mmd5gl1qgvayyzpxlkh9s7jgn20y8l1vh1zbj1czvv51xp8"))))
3955 (build-system emacs-build-system)
3956 (propagated-inputs
3957 `(("emacs-ivy" ,emacs-ivy)
3958 ("emacs-yasnippet" ,emacs-yasnippet)
3959 ("emacs-dash" ,emacs-dash)))
3960 (home-page "https://github.com/mkcms/ivy-yasnippet")
3961 (synopsis "Preview @code{yasnippets} with @code{ivy}")
3962 (description "This package allows you to select @code{yasnippet}
3963 snippets using @code{ivy} completion. When current selection changes in the
3964 minibuffer, the snippet contents are temporarily expanded in the buffer. To
3965 use it, call @code{M-x ivy-yasnippet} (but make sure you have enabled
3966 @code{yas-minor-mode} first).")
3967 (license license:gpl3+))))
3968
3969 (define-public emacs-ivy-rich
3970 (package
3971 (name "emacs-ivy-rich")
3972 (version "0.1.0")
3973 (source
3974 (origin
3975 (method url-fetch)
3976 (uri (string-append "https://github.com/Yevgnen/ivy-rich/archive/"
3977 version ".tar.gz"))
3978 (file-name (string-append name "-" version ".tar.gz"))
3979 (sha256
3980 (base32
3981 "14r3mx5rkd4wz0ls5pv5w6c7la3z9iy93d3jfind3xyg4kywy95c"))))
3982 (build-system emacs-build-system)
3983 (propagated-inputs
3984 `(("emacs-ivy" ,emacs-ivy)))
3985 (home-page "https://github.com/Yevgnen/ivy-rich")
3986 (synopsis "More friendly interface for @code{ivy}")
3987 (description
3988 "This package extends @code{ivy} by showing more information in the
3989 minibuffer for each candidate. It adds columns showing buffer modes, file
3990 sizes, docstrings, etc. If @code{emacs-all-the-icons} is installed, it can
3991 show icons as well.")
3992 (license license:gpl3+)))
3993
3994 (define-public emacs-avy
3995 (package
3996 (name "emacs-avy")
3997 (version "0.4.0")
3998 (source
3999 (origin
4000 (method url-fetch)
4001 (uri (string-append "https://github.com/abo-abo/avy/archive/"
4002 version ".tar.gz"))
4003 (file-name (string-append name "-" version ".tar.gz"))
4004 (sha256
4005 (base32
4006 "1wdrq512h25ymzjbf2kbsdymvd2ryfwzb6bh5bc3yv7q203im796"))))
4007 (build-system emacs-build-system)
4008 (home-page "https://github.com/abo-abo/avy")
4009 (synopsis "Tree-based completion for Emacs")
4010 (description
4011 "This package provides a generic completion method based on building a
4012 balanced decision tree with each candidate being a leaf. To traverse the tree
4013 from the root to a desired leaf, typically a sequence of @code{read-key} can
4014 be used.
4015
4016 In order for @code{read-key} to make sense, the tree needs to be visualized
4017 appropriately, with a character at each branch node. So this completion
4018 method works only for things that you can see on your screen, all at once,
4019 such as the positions of characters, words, line beginnings, links, or
4020 windows.")
4021 (license license:gpl3+)))
4022
4023 (define-public emacs-ace-window
4024 (package
4025 (name "emacs-ace-window")
4026 (version "0.9.0")
4027 (source
4028 (origin
4029 (method url-fetch)
4030 (uri (string-append "https://github.com/abo-abo/ace-window/archive/"
4031 version ".tar.gz"))
4032 (file-name (string-append name "-" version ".tar.gz"))
4033 (sha256
4034 (base32
4035 "1p2sgfl5dml4zbd6ldql6lm2m9vmd236ah996ni32x254s48j5pn"))))
4036 (build-system emacs-build-system)
4037 (propagated-inputs
4038 `(("emacs-avy" ,emacs-avy)))
4039 (home-page "https://github.com/abo-abo/ace-window")
4040 (synopsis "Quickly switch windows in Emacs")
4041 (description
4042 "@code{ace-window} is meant to replace @code{other-window}.
4043 In fact, when there are only two windows present, @code{other-window} is
4044 called. If there are more, each window will have its first character
4045 highlighted. Pressing that character will switch to that window.")
4046 (license license:gpl3+)))
4047
4048 (define-public emacs-iedit
4049 (package
4050 (name "emacs-iedit")
4051 (version "0.9.9.9")
4052 (source
4053 (origin
4054 (method url-fetch)
4055 (uri (string-append "https://github.com/victorhge/iedit/archive/v"
4056 version ".tar.gz"))
4057 (file-name (string-append name "-" version ".tar.gz"))
4058 (sha256
4059 (base32
4060 "1hv8q6pr85ss9g3158l1fqv3m62vsq8rslsi86jicr2dcxyascr0"))))
4061 (build-system emacs-build-system)
4062 (home-page "http://www.emacswiki.org/emacs/Iedit")
4063 (synopsis "Edit multiple regions in the same way simultaneously")
4064 (description
4065 "This package is an Emacs minor mode and allows you to edit one
4066 occurrence of some text in a buffer (possibly narrowed) or region, and
4067 simultaneously have other occurrences edited in the same way.
4068
4069 You can also use Iedit mode as a quick way to temporarily show only the buffer
4070 lines that match the current text being edited. This gives you the effect of
4071 a temporary @code{keep-lines} or @code{occur}.")
4072 (license license:gpl3+)))
4073
4074 (define-public emacs-zoutline
4075 (let ((commit "b3ee0f0e0b916838c2d2c249beba74ffdb8d5699")
4076 (revision "0"))
4077 (package
4078 (name "emacs-zoutline")
4079 (version (git-version "0.1" revision commit))
4080 (home-page "https://github.com/abo-abo/zoutline")
4081 (source (origin
4082 (method git-fetch)
4083 (uri (git-reference (url home-page) (commit commit)))
4084 (sha256
4085 (base32
4086 "0sd0017piw0dis6dhpq5dkqd3acisxqgipl7dj8gmc1vnswhdwr8"))
4087 (file-name (git-file-name name version))))
4088 (build-system emacs-build-system)
4089 (synopsis "Simple outline library")
4090 (description
4091 "This library provides helpers for outlines. Outlines allow users to
4092 navigate code in a tree-like fashion.")
4093 (license license:gpl3+))))
4094
4095 (define-public emacs-lispy
4096 ;; Release 0.26.0 was almost 3 years ago, and there have been ~772 commits
4097 ;; since.
4098 (let ((commit "c2a358a7a15fcf056a5b7461a8e690b481b03b80")
4099 (revision "0"))
4100 (package
4101 (name "emacs-lispy")
4102 (version (git-version "0.26.0" revision commit))
4103 (home-page "https://github.com/abo-abo/lispy")
4104 (source (origin
4105 (method git-fetch)
4106 (uri (git-reference (url home-page) (commit commit)))
4107 (sha256
4108 (base32
4109 "1g6756qqx2n4cx8jac6mlwayilsiyc5rz8nrqjnywvzc75xdinjd"))
4110 (file-name (git-file-name name version))))
4111 (build-system emacs-build-system)
4112 (propagated-inputs
4113 `(("emacs-ace-window" ,emacs-ace-window)
4114 ("emacs-iedit" ,emacs-iedit)
4115 ("emacs-ivy" ,emacs-ivy)
4116 ("emacs-hydra" ,emacs-hydra)
4117 ("emacs-zoutline" ,emacs-zoutline)))
4118 (synopsis "Modal S-expression editing")
4119 (description
4120 "Due to the structure of Lisp syntax it's very rare for the programmer
4121 to want to insert characters right before \"(\" or right after \")\". Thus
4122 unprefixed printable characters can be used to call commands when the point is
4123 at one of these special locations. Lispy provides unprefixed keybindings for
4124 S-expression editing when point is at the beginning or end of an
4125 S-expression.")
4126 (license license:gpl3+))))
4127
4128 (define-public emacs-lispyville
4129 ;; Later versions need a more recent Evil, with an evil-define-key*
4130 ;; supporting nil for the state.
4131 (let ((commit "b4291857ed6a49a67c4ea77522889ce51fb171ab")
4132 (revision "0"))
4133 (package
4134 (name "emacs-lispyville")
4135 (version (git-version "0.1" revision commit))
4136 (home-page "https://github.com/noctuid/lispyville")
4137 (source (origin
4138 (method git-fetch)
4139 (uri (git-reference (url home-page) (commit commit)))
4140 (sha256
4141 (base32
4142 "095zibzc3naknahdrnb59g9rbljy8wz9rkc7rf8avb3wxlwvxhm3"))
4143 (file-name (git-file-name name version))))
4144 (propagated-inputs
4145 `(("emacs-evil" ,emacs-evil)
4146 ("emacs-lispy" ,emacs-lispy)))
4147 (build-system emacs-build-system)
4148 (synopsis "Minor mode for integrating Evil with lispy")
4149 (description
4150 "LispyVille's main purpose is to provide a Lisp editing environment
4151 suited towards Evil users. It can serve as a minimal layer on top of lispy
4152 for better integration with Evil, but it does not require the use of lispy’s
4153 keybinding style. The provided commands allow for editing Lisp in normal
4154 state and will work even without lispy being enabled.")
4155 (license license:gpl3+))))
4156
4157 (define-public emacs-clojure-mode
4158 (package
4159 (name "emacs-clojure-mode")
4160 (version "5.6.1")
4161 (source (origin
4162 (method url-fetch)
4163 (uri (string-append
4164 "https://github.com/clojure-emacs/clojure-mode/archive/"
4165 version ".tar.gz"))
4166 (file-name (string-append name "-" version ".tar.gz"))
4167 (sha256
4168 (base32
4169 "1f4k1hncy5ygh4izn7mqfp744nnisrp9ywn2njknbjxx34ai1q88"))))
4170 (build-system emacs-build-system)
4171 (native-inputs
4172 `(("emacs-dash" ,emacs-dash)
4173 ("emacs-s" ,emacs-s)
4174 ("ert-runner" ,emacs-ert-runner)))
4175 (arguments
4176 `(#:tests? #t
4177 #:test-command '("ert-runner")))
4178 (home-page "https://github.com/clojure-emacs/clojure-mode")
4179 (synopsis "Major mode for Clojure code")
4180 (description
4181 "This Emacs package provides font-lock, indentation, navigation and basic
4182 refactoring for the @uref{http://clojure.org, Clojure programming language}.
4183 It is recommended to use @code{clojure-mode} with paredit or smartparens.")
4184 (license license:gpl3+)))
4185
4186 (define-public emacs-epl
4187 (package
4188 (name "emacs-epl")
4189 (version "0.8")
4190 (source (origin
4191 (method url-fetch)
4192 (uri (string-append
4193 "https://github.com/cask/epl/archive/"
4194 version ".tar.gz"))
4195 (file-name (string-append name "-" version ".tar.gz"))
4196 (sha256
4197 (base32
4198 "1511n3a3f5gvaf2b4nh018by61ciyzi3y3603fzqma7p9hrckarc"))))
4199 (build-system emacs-build-system)
4200 (home-page "https://github.com/cask/epl")
4201 (synopsis "Emacs Package Library")
4202 (description
4203 "A package management library for Emacs, based on @code{package.el}.
4204
4205 The purpose of this library is to wrap all the quirks and hassle of
4206 @code{package.el} into a sane API.")
4207 (license license:gpl3+)))
4208
4209 (define-public emacs-queue
4210 (package
4211 (name "emacs-queue")
4212 (version "0.2")
4213 (source (origin
4214 (method url-fetch)
4215 (uri (string-append "https://elpa.gnu.org/packages/queue-"
4216 version ".el"))
4217 (sha256
4218 (base32
4219 "0cx2848sqnnkkr4zisvqadzxngjyhmb36mh0q3if7q19yjjhmrkb"))))
4220 (build-system emacs-build-system)
4221 (home-page "http://www.dr-qubit.org/tags/computing-code-emacs.html")
4222 (synopsis "Queue data structure for Emacs")
4223 (description
4224 "This Emacs library provides queue data structure. These queues can be
4225 used both as a first-in last-out (FILO) and as a first-in first-out (FIFO)
4226 stack, i.e. elements can be added to the front or back of the queue, and can
4227 be removed from the front. This type of data structure is sometimes called an
4228 \"output-restricted deque\".")
4229 (license license:gpl3+)))
4230
4231 (define-public emacs-pkg-info
4232 (package
4233 (name "emacs-pkg-info")
4234 (version "0.6")
4235 (source (origin
4236 (method url-fetch)
4237 (uri (string-append
4238 "https://github.com/lunaryorn/pkg-info.el/archive/"
4239 version ".tar.gz"))
4240 (file-name (string-append name "-" version ".tar.gz"))
4241 (sha256
4242 (base32
4243 "1gy1jks5mmm02gg1c8gcyr4f8a9s5ggzhk56gv33b9mzjqzi5rd5"))))
4244 (build-system emacs-build-system)
4245 (propagated-inputs `(("emacs-epl" ,emacs-epl)))
4246 (home-page "https://github.com/lunaryorn/pkg-info.el")
4247 (synopsis "Information about Emacs packages")
4248 (description
4249 "This library extracts information from the installed Emacs packages.")
4250 (license license:gpl3+)))
4251
4252 (define-public emacs-spinner
4253 (package
4254 (name "emacs-spinner")
4255 (version "1.7.3")
4256 (source (origin
4257 (method url-fetch)
4258 (uri (string-append "https://elpa.gnu.org/packages/spinner-"
4259 version ".el"))
4260 (sha256
4261 (base32
4262 "19kp1mmndbmw11sgvv2ggfjl4pyf5zrsbh3871f0965pw9z8vahd"))))
4263 (build-system emacs-build-system)
4264 (home-page "https://github.com/Malabarba/spinner.el")
4265 (synopsis "Emacs mode-line spinner for operations in progress")
4266 (description
4267 "This Emacs package adds spinners and progress-bars to the mode-line for
4268 ongoing operations.")
4269 (license license:gpl3+)))
4270
4271 (define-public emacs-sparql-mode
4272 (package
4273 (name "emacs-sparql-mode")
4274 (version "2.0.1")
4275 (source (origin
4276 (method url-fetch)
4277 (uri (string-append "https://github.com/ljos/sparql-mode/archive/"
4278 "v" version ".tar.gz"))
4279 (file-name (string-append name "-" version ".tar.gz"))
4280 (sha256
4281 (base32
4282 "1s93mkllxnhy7fw616cnnc2danacdlarys0g3cn89drh0llh53cv"))))
4283 (build-system emacs-build-system)
4284 (home-page "https://github.com/ljos/sparql-mode")
4285 (synopsis "SPARQL mode for Emacs")
4286 (description "This package provides a major mode for Emacs that provides
4287 syntax highlighting for SPARQL. It also provides a way to execute queries
4288 against a SPARQL HTTP endpoint, such as is provided by Fuseki. It is also
4289 possible to query other endpoints like DBPedia.")
4290 (license license:gpl3+)))
4291
4292 (define-public emacs-better-defaults
4293 (package
4294 (name "emacs-better-defaults")
4295 (version "0.1.3")
4296 (source
4297 (origin
4298 (method url-fetch)
4299 (uri (string-append "https://github.com/technomancy/better-defaults"
4300 "/archive/" version ".tar.gz"))
4301 (file-name (string-append name "-" version ".tar.gz"))
4302 (sha256
4303 (base32
4304 "08fg4zslzlxbvyil5g4gwvwd22fh4zsgqprs5wh9hv1rgc6757m2"))))
4305 (build-system emacs-build-system)
4306 (home-page "https://github.com/technomancy/better-defaults")
4307 (synopsis "Better defaults for Emacs")
4308 (description
4309 "Better defaults attempts to address the most obvious deficiencies of the
4310 Emacs default configuration in uncontroversial ways that nearly everyone can
4311 agree upon.")
4312 (license license:gpl3+)))
4313
4314 (define-public emacs-eprime
4315 (let ((commit "17a481af26496be91c07139a9bfc05cfe722506f"))
4316 (package
4317 (name "emacs-eprime")
4318 (version (string-append "20140513-" (string-take commit 7)))
4319 (source (origin
4320 (method url-fetch)
4321 (uri (string-append "https://raw.githubusercontent.com"
4322 "/AndrewHynes/eprime-mode/"
4323 commit "/eprime-mode.el"))
4324 (file-name (string-append "eprime-" version ".el"))
4325 (sha256
4326 (base32
4327 "0v68lggkyq7kbcr9zyi573m2g2x251xy3jadlaw8kx02l8krwq8d"))))
4328 (build-system emacs-build-system)
4329 (home-page "https://github.com/AndrewHynes/eprime-mode")
4330 (synopsis "E-prime checking mode for Emacs")
4331 (description "This package provides an E-prime checking mode for Emacs
4332 that highlights non-conforming text. The subset of the English language called
4333 E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
4334 (license license:gpl3+))))
4335
4336 (define-public emacs-julia-mode
4337 ;; XXX: Upstream version remained stuck at 0.3. See
4338 ;; <https://github.com/JuliaEditorSupport/julia-emacs/issues/46>.
4339 (let ((commit "115d4dc8a07445301772da8376b232fa8c7168f4")
4340 (revision "1"))
4341 (package
4342 (name "emacs-julia-mode")
4343 (version (string-append "0.3-" revision "." (string-take commit 8)))
4344 (source
4345 (origin
4346 (method git-fetch)
4347 (uri (git-reference
4348 (url "https://github.com/JuliaEditorSupport/julia-emacs.git")
4349 (commit commit)))
4350 (file-name (string-append name "-" version "-checkout"))
4351 (sha256
4352 (base32
4353 "1is4dcv6blslpzbjcg8l2jpxi8xj96q4cm0nxjxsyswpm8bw8ki0"))))
4354 (build-system emacs-build-system)
4355 (arguments
4356 `(#:tests? #t
4357 #:test-command '("emacs" "--batch"
4358 "-l" "julia-mode-tests.el"
4359 "-f" "ert-run-tests-batch-and-exit")))
4360 (home-page "https://github.com/JuliaEditorSupport/julia-emacs")
4361 (synopsis "Major mode for Julia")
4362 (description "This Emacs package provides a mode for the Julia
4363 programming language.")
4364 (license license:expat))))
4365
4366 (define-public emacs-smex
4367 (package
4368 (name "emacs-smex")
4369 (version "3.0")
4370 (source (origin
4371 (method url-fetch)
4372 (uri (string-append "https://raw.githubusercontent.com"
4373 "/nonsequitur/smex/" version "/smex.el"))
4374 (file-name (string-append "smex-" version ".el"))
4375 (sha256
4376 (base32
4377 "0ar310zx9k5y4i1vl2rawvi712xj9gx77160860jbs691p77cxqp"))))
4378 (build-system emacs-build-system)
4379 (home-page "https://github.com/nonsequitur/smex/")
4380 (synopsis "M-x interface with Ido-style fuzzy matching")
4381 (description
4382 "Smex is a M-x enhancement for Emacs. Built on top of Ido, it provides a
4383 convenient interface to your recently and most frequently used commands. And
4384 to all the other commands, too.")
4385 (license license:gpl3+)))
4386
4387 (define-public emacs-js2-mode
4388 (package
4389 (name "emacs-js2-mode")
4390 (version "20180301")
4391 (source (origin
4392 (method url-fetch)
4393 (uri (string-append "https://github.com/mooz/js2-mode/archive/"
4394 version ".tar.gz"))
4395 (file-name (string-append name "-" version ".tar.gz"))
4396 (sha256
4397 (base32
4398 "13aghgwaqrmbf3pbifcry52kya454wnh1gbdh5805n1n6xgjm5w3"))))
4399 (build-system emacs-build-system)
4400 (home-page "https://github.com/mooz/js2-mode/")
4401 (synopsis "Improved JavaScript editing mode for Emacs")
4402 (description
4403 "Js2-mode provides a JavaScript major mode for Emacs that is more
4404 advanced than the built-in javascript-mode. Features include accurate syntax
4405 highlighting using a recursive-descent parser, on-the-fly reporting of syntax
4406 errors and strict-mode warnings, smart line-wrapping within comments and
4407 strings, and code folding.")
4408 (license license:gpl3+)))
4409
4410 (define-public emacs-nodejs-repl
4411 (package
4412 (name "emacs-nodejs-repl")
4413 (version "0.2.0")
4414 (source (origin
4415 (method url-fetch)
4416 (uri (string-append "https://github.com/abicky/nodejs-repl.el"
4417 "/archive/" version ".tar.gz"))
4418 (sha256
4419 (base32
4420 "0hq2cqdq2668yf48g7qnkci90nhih1gnhacsgz355jnib56lhmkz"))
4421 (file-name (string-append name "-" version ".tar.gz"))))
4422 (build-system emacs-build-system)
4423 (home-page "https://github.com/abicky/nodejs-repl.el")
4424 (synopsis "Node.js REPL inside Emacs")
4425 (description
4426 "This program is derived from comint-mode and provides the following
4427 features:
4428
4429 @itemize
4430 @item TAB completion same as Node.js REPL
4431 @item file name completion in string
4432 @item incremental history search
4433 @end itemize")
4434 (license license:gpl3+)))
4435
4436 (define-public emacs-typescript-mode
4437 (package
4438 (name "emacs-typescript-mode")
4439 (version "0.3")
4440 (source (origin
4441 (method url-fetch)
4442 (uri (string-append
4443 "https://github.com/ananthakumaran/typescript.el"
4444 "/archive/v" version ".tar.gz"))
4445 (sha256
4446 (base32
4447 "1gqjirm8scf0wysm7x97zdfbs4qa5nqdl64jfbkd18iskv5mg3rj"))
4448 (file-name (string-append name "-" version ".tar.gz"))))
4449 (build-system emacs-build-system)
4450 (home-page "https://github.com/ananthakumaran/typescript.el")
4451 (synopsis "Emacs major mode for editing Typescript code")
4452 (description
4453 "This is based on Karl Landstrom's barebones @code{typescript-mode}.
4454 This is much more robust and works with @code{cc-mode}'s comment
4455 filling (mostly). The modifications to the original @code{javascript.el} mode
4456 mainly consisted in replacing \"javascript\" with \"typescript\"
4457
4458 The main features of this Typescript mode are syntactic highlighting (enabled
4459 with @code{font-lock-mode} or @code{global-font-lock-mode}), automatic
4460 indentation and filling of comments and C preprocessor fontification.")
4461 (license license:gpl3+)))
4462
4463 (define-public emacs-tide
4464 (package
4465 (name "emacs-tide")
4466 (version "2.8.3.1")
4467 (source (origin
4468 (method url-fetch)
4469 (uri (string-append "https://github.com/ananthakumaran/tide"
4470 "/archive/v" version ".tar.gz"))
4471 (sha256
4472 (base32
4473 "1k0kzqiv1hfs0kqm37947snzhrsmand3i9chvm6a2r5lb8v9q47y"))
4474 (file-name (string-append name "-" version ".tar.gz"))))
4475 (build-system emacs-build-system)
4476 (propagated-inputs
4477 `(("emacs-dash" ,emacs-dash)
4478 ("emacs-s" ,emacs-s)
4479 ("emacs-flycheck" ,emacs-flycheck)
4480 ("emacs-typescript-mode" ,emacs-typescript-mode)))
4481 (home-page "https://github.com/ananthakumaran/tide")
4482 (synopsis "Typescript IDE for Emacs")
4483 (description
4484 "Tide is an Interactive Development Environment (IDE) for Emacs which
4485 provides the following features:
4486
4487 @itemize
4488 @item ElDoc
4489 @item Auto complete
4490 @item Flycheck
4491 @item Jump to definition, Jump to type definition
4492 @item Find occurrences
4493 @item Rename symbol
4494 @item Imenu
4495 @item Compile On Save
4496 @item Highlight Identifiers
4497 @item Code Fixes
4498 @item Code Refactor
4499 @item Organize Imports
4500 @end itemize")
4501 (license license:gpl3+)))
4502
4503 (define-public emacs-markdown-mode
4504 (package
4505 (name "emacs-markdown-mode")
4506 (version "2.3")
4507 (source (origin
4508 (method url-fetch)
4509 (uri (string-append "https://raw.githubusercontent.com/jrblevin"
4510 "/markdown-mode/v" version
4511 "/markdown-mode.el"))
4512 (file-name (string-append "markdown-mode-" version ".el"))
4513 (sha256
4514 (base32
4515 "152whyrq3dqlqy5wv4mdd94kmal19hs5kwaxjcp2gp2r97lsmdmi"))))
4516 (build-system emacs-build-system)
4517 (home-page "http://jblevins.org/projects/markdown-mode/")
4518 (synopsis "Emacs Major mode for Markdown files")
4519 (description
4520 "Markdown-mode is a major mode for editing Markdown-formatted text files
4521 in Emacs.")
4522 (license license:gpl3+)))
4523
4524 (define-public emacs-edit-indirect
4525 (package
4526 (name "emacs-edit-indirect")
4527 (version "0.1.5")
4528 (source
4529 (origin
4530 (method git-fetch)
4531 (uri (git-reference
4532 (url "https://github.com/Fanael/edit-indirect")
4533 (commit version)))
4534 (file-name (git-file-name name version))
4535 (sha256
4536 (base32
4537 "0by1x53pji39fjrj5bd446kz831nv0vdgw2jqasbym4pc1p2947r"))))
4538 (build-system emacs-build-system)
4539 (home-page "https://github.com/Fanael/edit-indirect")
4540 (synopsis "Edit regions in separate buffers")
4541 (description "This package allows you to edit regions in separate buffers,
4542 like @code{org-edit-src-code} but for arbitrary regions.")
4543 (license license:gpl3+)))
4544
4545 (define-public emacs-projectile
4546 (package
4547 (name "emacs-projectile")
4548 (version "0.14.0")
4549 (source (origin
4550 (method url-fetch)
4551 (uri (string-append "https://raw.githubusercontent.com/bbatsov"
4552 "/projectile/v" version "/projectile.el"))
4553 (file-name (string-append "projectile-" version ".el"))
4554 (sha256
4555 (base32
4556 "1ql1wnzhblbwnv66hf2y0wq45g71hh6s9inc090lmhm1vgylbd1f"))))
4557 (build-system emacs-build-system)
4558 (propagated-inputs
4559 `(("emacs-dash" ,emacs-dash)
4560 ("emacs-pkg-info" ,emacs-pkg-info)))
4561 (home-page "https://github.com/bbatsov/projectile")
4562 (synopsis "Manage and navigate projects in Emacs easily")
4563 (description
4564 "This library provides easy project management and navigation. The
4565 concept of a project is pretty basic - just a folder containing special file.
4566 Currently git, mercurial and bazaar repos are considered projects by default.
4567 If you want to mark a folder manually as a project just create an empty
4568 .projectile file in it.")
4569 (license license:gpl3+)))
4570
4571 (define-public emacs-elfeed
4572 (package
4573 (name "emacs-elfeed")
4574 (version "3.0.0")
4575 (source (origin
4576 (method url-fetch)
4577 (uri (string-append "https://github.com/skeeto/elfeed/archive/"
4578 version ".tar.gz"))
4579 (file-name (string-append name "-" version ".tar.gz"))
4580 (sha256
4581 (base32
4582 "1wkdrxr6zzqb48czqqv34l87bx8aqjk1739ddqg933aqh241kfvn"))))
4583 (build-system emacs-build-system)
4584 (arguments
4585 `(#:tests? #t
4586 #:test-command '("make" "test")))
4587 (home-page "https://github.com/skeeto/elfeed")
4588 (synopsis "Atom/RSS feed reader for Emacs")
4589 (description
4590 "Elfeed is an extensible web feed reader for Emacs, supporting both Atom
4591 and RSS, with a user interface inspired by notmuch.")
4592 (license license:gpl3+)))
4593
4594 (define-public emacs-el-x
4595 (package
4596 (name "emacs-el-x")
4597 (version "0.3.1")
4598 (source (origin
4599 (method git-fetch)
4600 (uri (git-reference
4601 (url "https://github.com/sigma/el-x.git")
4602 (commit (string-append "v" version))))
4603 (file-name (string-append name "-" version "-checkout"))
4604 (sha256
4605 (base32
4606 "1i6j44ssxm1xdg0mf91nh1lnprwsaxsx8vsrf720nan7mfr283h5"))))
4607 (build-system emacs-build-system)
4608 (arguments
4609 `(#:phases
4610 (modify-phases %standard-phases
4611 ;; Move the source files to the top level, which is included in
4612 ;; the EMACSLOADPATH.
4613 (add-after 'unpack 'move-source-files
4614 (lambda _
4615 (let ((el-files (find-files "./lisp" ".*\\.el$")))
4616 (for-each (lambda (f)
4617 (rename-file f (basename f)))
4618 el-files))
4619 #t)))))
4620 (home-page "https://github.com/sigma/el-x")
4621 (synopsis "Emacs Lisp extensions")
4622 (description "command@{emacs-el-x} defines the @code{dflet} macro to
4623 provide the historic behavior of @code{flet}, as well as
4624 @code{declare-function} stub for older Emacs.")
4625 (license license:gpl2+)))
4626
4627 (define-public emacs-mocker
4628 (package
4629 (name "emacs-mocker")
4630 (version "0.3.1")
4631 (source (origin
4632 (method git-fetch)
4633 (uri (git-reference
4634 (url "https://github.com/sigma/mocker.el.git")
4635 (commit (string-append "v" version))))
4636 (file-name (string-append name "-" version "-checkout"))
4637 (sha256
4638 (base32
4639 "1lav7am41v63xgavq8pr88y828jmd1cxd4prjq7jlbxm6nvrwxh2"))))
4640 (build-system emacs-build-system)
4641 (arguments
4642 `(#:tests? #t
4643 #:test-command '("ert-runner")))
4644 (native-inputs
4645 `(("ert-runner" ,emacs-ert-runner)))
4646 (propagated-inputs
4647 `(("emacs-el-x" ,emacs-el-x)))
4648 (home-page "https://github.com/sigma/mocker.el")
4649 (synopsis "Mocking framework for Emacs Lisp")
4650 (description "Mocker.el is a framework for writing tests in Emacs Lisp.
4651 It uses regular Lisp rather than a domain specific language (DSL), which
4652 maximizes flexibility (at the expense of conciseness).")
4653 (license license:gpl2+)))
4654
4655 (define-public emacs-find-file-in-project
4656 (package
4657 (name "emacs-find-file-in-project")
4658 (version "5.4.7")
4659 (source (origin
4660 (method git-fetch)
4661 (uri (git-reference
4662 (url "https://github.com/technomancy/find-file-in-project.git")
4663 (commit version)))
4664 (file-name (string-append name "-" version "-checkout"))
4665 (sha256
4666 (base32
4667 "1sdnyqv69mipbgs9yax88m9b6crsa59rjhwrih197pifl4089awr"))))
4668 (build-system emacs-build-system)
4669 (arguments
4670 `(#:phases
4671 (modify-phases %standard-phases
4672 (add-before 'check 'set-shell
4673 ;; Otherwise Emacs shell-file-name is set to "/bin/sh", which doesn't
4674 ;; work.
4675 (lambda _
4676 (setenv "SHELL" (which "sh"))
4677 #t)))
4678 #:tests? #t
4679 #:test-command '("./tests/test.sh")))
4680 (home-page "https://github.com/technomancy/find-file-in-project")
4681 (synopsis "File/directory finder for Emacs")
4682 (description "@code{find-file-in-project} allows to find files or
4683 directories quickly in the current project. The project root is detected
4684 automatically when Git, Subversion or Mercurial are used. It also provides
4685 functions to assist in reviewing changes on files.")
4686 (license license:gpl3+)))
4687
4688 (define-public emacs-pyvenv
4689 (package
4690 (name "emacs-pyvenv")
4691 (version "1.11")
4692 (source (origin
4693 (method git-fetch)
4694 (uri (git-reference
4695 (url "https://github.com/jorgenschaefer/pyvenv.git")
4696 (commit (string-append "v" version))))
4697 (file-name (string-append name "-" version "-checkout"))
4698 (sha256
4699 (base32
4700 "1a346qdimr1dvj53q033aqnahwd2dhyn9jadrs019nm0bzgw7g63"))))
4701 (build-system emacs-build-system)
4702 (arguments
4703 `(#:phases
4704 (modify-phases %standard-phases
4705 ;; This phase incorrectly attempts to substitute "activate" and fails
4706 ;; doing so.
4707 (delete 'patch-el-files))
4708 #:tests? #t
4709 #:test-command '("ert-runner")))
4710 (native-inputs
4711 `(("ert-runner" ,emacs-ert-runner)
4712 ("emacs-mocker" ,emacs-mocker)))
4713 (home-page "https://github.com/jorgenschaefer/pyvenv")
4714 (synopsis "Virtualenv minor mode for Emacs")
4715 (description "pyvenv.el is a minor mode to support using Python virtual
4716 environments (virtualenv) inside Emacs.")
4717 (license license:gpl3+)))
4718
4719 (define-public emacs-highlight-indentation
4720 (package
4721 (name "emacs-highlight-indentation")
4722 (version "0.7.0")
4723 (source (origin
4724 (method git-fetch)
4725 (uri (git-reference
4726 (url "https://github.com/antonj/Highlight-Indentation-for-Emacs.git")
4727 (commit (string-append "v" version))))
4728 (file-name (string-append name "-" version "-checkout"))
4729 (sha256
4730 (base32
4731 "00l54k75qk24a0znzl4ij3s3nrnr2wy9ha3za8apphzlm98m907k"))))
4732 (build-system emacs-build-system)
4733 (home-page "https://github.com/antonj/Highlight-Indentation-for-Emacs/")
4734 (synopsis "Highlighting indentation for Emacs")
4735 (description "Provides two minor modes to highlight indentation guides in Emacs:
4736 @enumerate
4737 @item @code{highlight-indentation-mode}, which displays guidelines
4738 indentation (space indentation only).
4739 @item @code{highlight-indentation-current-column-mode}, which displays guidelines for the current-point indentation (space indentation only).
4740 @end enumerate")
4741 (license license:gpl2+)))
4742
4743 (define-public emacs-elpy
4744 (package
4745 (name "emacs-elpy")
4746 (version "1.27.0")
4747 (source (origin
4748 (method git-fetch)
4749 (uri (git-reference
4750 (url "https://github.com/jorgenschaefer/elpy.git")
4751 (commit version)))
4752 (file-name (string-append name "-" version "-checkout"))
4753 (sha256
4754 (base32
4755 "1b76y0kzk7s9ya8k9bpsgn31i9l0rxs4iz6lg7snhjgh03k0ssgv"))))
4756 (build-system emacs-build-system)
4757 (arguments
4758 `(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include)
4759 #:phases
4760 ;; TODO: Make `elpy-config' display Guix commands :)
4761 (modify-phases %standard-phases
4762 ;; One elpy test depends on being run inside a Python virtual
4763 ;; environment to pass. We have nothing to gain from doing so here,
4764 ;; so we just trick Elpy into thinking we are (see:
4765 ;; https://github.com/jorgenschaefer/elpy/pull/1293).
4766 (add-before 'check 'fake-virtualenv
4767 (lambda _
4768 (setenv "VIRTUAL_ENV" "/tmp")
4769 #t))
4770 (add-before 'check 'build-doc
4771 (lambda _
4772 (with-directory-excursion "docs"
4773 (invoke "make" "info" "man"))
4774 ;; Move .info file at the root so that it can installed by the
4775 ;; 'move-doc phase.
4776 (rename-file "docs/_build/texinfo/Elpy.info" "Elpy.info")
4777 #t))
4778 (add-after 'build-doc 'install-manpage
4779 (lambda* (#:key outputs #:allow-other-keys)
4780 (let* ((out (assoc-ref outputs "out"))
4781 (man1 (string-append out "/share/man/man1")))
4782 (mkdir-p man1)
4783 (copy-file "docs/_build/man/elpy.1"
4784 (string-append man1 "/elpy.1")))
4785 #t)))
4786 #:tests? #t
4787 #:test-command '("ert-runner")))
4788 (propagated-inputs
4789 `(("emacs-company" ,emacs-company)
4790 ("emacs-find-file-in-project" ,emacs-find-file-in-project)
4791 ("emacs-highlight-indentation" ,emacs-highlight-indentation)
4792 ("emacs-yasnippet" ,emacs-yasnippet)
4793 ("pyvenv" ,emacs-pyvenv)
4794 ("s" ,emacs-s)))
4795 (native-inputs
4796 `(("ert-runner" ,emacs-ert-runner)
4797 ("emacs-f" ,emacs-f)
4798 ("python" ,python-wrapper)
4799 ("python-autopep8" ,python-autopep8)
4800 ("python-black" ,python-black)
4801 ("python-flake8" ,python-flake8)
4802 ("python-jedi" ,python-jedi)
4803 ("python-yapf" ,python-yapf)
4804 ;; For documentation.
4805 ("python-sphinx" ,python-sphinx)
4806 ("texinfo" ,texinfo)))
4807 (home-page "https://github.com/jorgenschaefer/elpy")
4808 (synopsis "Python development environment for Emacs")
4809 (description "Elpy brings powerful Python editing to Emacs. It combines
4810 and configures a number of other packages written in Emacs Lisp as well as
4811 Python, together offering features such as navigation, documentation,
4812 completion, interactive development and more.")
4813 (license license:gpl3+)))
4814
4815 (define-public emacs-rainbow-delimiters
4816 (package
4817 (name "emacs-rainbow-delimiters")
4818 (version "2.1.3")
4819 (source (origin
4820 (method url-fetch)
4821 (uri (string-append "https://raw.githubusercontent.com/Fanael"
4822 "/rainbow-delimiters/" version
4823 "/rainbow-delimiters.el"))
4824 (file-name (string-append "rainbow-delimiters-" version ".el"))
4825 (sha256
4826 (base32
4827 "1b3kampwsjabhcqdp0khgff13wc5jqhy3rbvaa12vnv7qy22l9ck"))))
4828 (build-system emacs-build-system)
4829 (home-page "https://github.com/Fanael/rainbow-delimiters")
4830 (synopsis "Highlight brackets according to their depth")
4831 (description
4832 "Rainbow-delimiters is a \"rainbow parentheses\"-like mode for Emacs which
4833 highlights parentheses, brackets, and braces according to their depth. Each
4834 successive level is highlighted in a different color, making it easy to spot
4835 matching delimiters, orient yourself in the code, and tell which statements
4836 are at a given level.")
4837 (license license:gpl3+)))
4838
4839 (define-public emacs-rainbow-identifiers
4840 (package
4841 (name "emacs-rainbow-identifiers")
4842 (version "0.2.2")
4843 (source (origin
4844 (method url-fetch)
4845 (uri (string-append "https://raw.githubusercontent.com/Fanael"
4846 "/rainbow-identifiers/" version
4847 "/rainbow-identifiers.el"))
4848 (file-name (string-append "rainbow-identifiers-" version ".el"))
4849 (sha256
4850 (base32
4851 "0325abxj47k0g1i8nqrq70w2wr6060ckhhf92krv1s072b3jzm31"))))
4852 (build-system emacs-build-system)
4853 (home-page "https://github.com/Fanael/rainbow-identifiers")
4854 (synopsis "Highlight identifiers in source code")
4855 (description
4856 "Rainbow identifiers mode is an Emacs minor mode providing highlighting of
4857 identifiers based on their names. Each identifier gets a color based on a hash
4858 of its name.")
4859 (license license:bsd-2)))
4860
4861 (define-public emacs-rainbow-mode
4862 (package
4863 (name "emacs-rainbow-mode")
4864 (version "1.0.1")
4865 (source (origin
4866 (method url-fetch)
4867 (uri (string-append
4868 "http://elpa.gnu.org/packages/rainbow-mode-" version ".el"))
4869 (sha256
4870 (base32
4871 "0cpga4ax635rfpj7y2vmh7ank0yw00dcy20gjg1mj74r97by8csf"))))
4872 (build-system emacs-build-system)
4873 (home-page "http://elpa.gnu.org/packages/rainbow-mode.html")
4874 (synopsis "Colorize color names in buffers")
4875 (description
4876 "This minor mode sets background color to strings that match color
4877 names, e.g. #0000ff is displayed in white with a blue background.")
4878 (license license:gpl3+)))
4879
4880 (define-public emacs-visual-fill-column
4881 (package
4882 (name "emacs-visual-fill-column")
4883 (version "1.11")
4884 (source (origin
4885 (method url-fetch)
4886 (uri (string-append "https://codeload.github.com/joostkremers/"
4887 "visual-fill-column/tar.gz/" version))
4888 (file-name (string-append name "-" version ".tar.gz"))
4889 (sha256
4890 (base32
4891 "13jnviakp607zcms7f8ams56mr8wffnq1pghlc6fvqs39663pgwh"))))
4892 (build-system emacs-build-system)
4893 (home-page "https://github.com/joostkremers/visual-fill-column")
4894 (synopsis "Fill-column for visual-line-mode")
4895 (description
4896 "@code{visual-fill-column-mode} is a small Emacs minor mode that mimics
4897 the effect of @code{fill-column} in @code{visual-line-mode}. Instead of
4898 wrapping lines at the window edge, which is the standard behaviour of
4899 @code{visual-line-mode}, it wraps lines at @code{fill-column}. If
4900 @code{fill-column} is too large for the window, the text is wrapped at the
4901 window edge.")
4902 (license license:gpl3+)))
4903
4904 (define-public emacs-writeroom
4905 (package
4906 (name "emacs-writeroom")
4907 (version "3.7")
4908 (source (origin
4909 (method url-fetch)
4910 (uri (string-append
4911 "https://github.com/joostkremers/writeroom-mode/archive/"
4912 version ".tar.gz"))
4913 (file-name (string-append name "-" version ".tar.gz"))
4914 (sha256
4915 (base32
4916 "0yqgp5h3kvvpgva4azakb2wnjl7gsyh45glf75crspv3xyq57f2r"))))
4917 (build-system emacs-build-system)
4918 (propagated-inputs
4919 `(("emacs-visual-fill-column" ,emacs-visual-fill-column)))
4920 (home-page "https://github.com/joostkremers/writeroom-mode")
4921 (synopsis "Distraction-free writing for Emacs")
4922 (description
4923 "This package defines a minor mode for distraction-free writing. Some of
4924 the default effects include entering fullscreen, deleting other windows of the
4925 current frame, disabling the mode line, and adding margins to the buffer that
4926 restrict the text width to 80 characters.")
4927 (license license:bsd-3)))
4928
4929 (define-public emacs-ido-completing-read+
4930 (package
4931 (name "emacs-ido-completing-read+")
4932 (version "3.12")
4933 (source (origin
4934 (method url-fetch)
4935 (uri (string-append "https://raw.githubusercontent.com"
4936 "/DarwinAwardWinner/ido-ubiquitous/v"
4937 version "/ido-completing-read+.el"))
4938 (file-name (string-append "ido-completing-read+-" version ".el"))
4939 (sha256
4940 (base32
4941 "1cyalb0p7nfsm4n6n9q6rjmvn6adqc0fq8ybnlj3n41n289dkfjf"))))
4942 (build-system emacs-build-system)
4943 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
4944 (synopsis "Replacement for completing-read using ido")
4945 (description
4946 "The ido-completing-read+ function is a wrapper for ido-completing-read.
4947 Importantly, it detects edge cases that ordinary ido cannot handle and either
4948 adjusts them so ido can handle them, or else simply falls back to the standard
4949 Emacs completion function instead.")
4950 (license license:gpl3+)))
4951
4952 (define-public emacs-ido-ubiquitous
4953 (package
4954 (name "emacs-ido-ubiquitous")
4955 (version "3.12")
4956 (source (origin
4957 (method url-fetch)
4958 (uri (string-append "https://raw.githubusercontent.com"
4959 "/DarwinAwardWinner/ido-ubiquitous/v"
4960 version "/ido-ubiquitous.el"))
4961 (file-name (string-append "ido-ubiquitous-" version ".el"))
4962 (sha256
4963 (base32
4964 "197ypji0fb6jsdcq40rpnknwlh3imas6s6jbsvkfm0pz9988c3q2"))))
4965 (build-system emacs-build-system)
4966 (propagated-inputs
4967 `(("emacs-ido-completing-read+" ,emacs-ido-completing-read+)))
4968 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
4969 (synopsis "Use ido (nearly) everywhere")
4970 (description
4971 "Ido-ubiquitous enables ido-style completion for almost every function
4972 that uses the standard completion function completing-read.")
4973 (license license:gpl3+)))
4974
4975 (define-public emacs-yaml-mode
4976 (package
4977 (name "emacs-yaml-mode")
4978 (version "0.0.13")
4979 (source (origin
4980 (method url-fetch)
4981 (uri (string-append "https://raw.githubusercontent.com/yoshiki"
4982 "/yaml-mode/v" version "/yaml-mode.el"))
4983 (file-name (string-append "yaml-mode-" version ".el"))
4984 (sha256
4985 (base32
4986 "0im88sk9dqw03x6d6zaspgvg9i0pfpgb8f2zygrmbifh2w4pwmvj"))))
4987 (build-system emacs-build-system)
4988 (home-page "https://github.com/yoshiki/yaml-mode")
4989 (synopsis "Major mode for editing YAML files")
4990 (description
4991 "Yaml-mode is an Emacs major mode for editing files in the YAML data
4992 serialization format. It was initially developed by Yoshiki Kurihara and many
4993 features were added by Marshall Vandegrift. As YAML and Python share the fact
4994 that indentation determines structure, this mode provides indentation and
4995 indentation command behavior very similar to that of python-mode.")
4996 (license license:gpl3+)))
4997
4998 (define-public emacs-web-mode
4999 (package
5000 (name "emacs-web-mode")
5001 (version "16")
5002 (source (origin
5003 (method url-fetch)
5004 (uri (string-append "https://raw.githubusercontent.com/fxbois"
5005 "/web-mode/v" version "/web-mode.el"))
5006 (file-name (string-append "web-mode-" version ".el"))
5007 (sha256
5008 (base32
5009 "1hs5w7kdvcyn4ihyw1kfjg48djn5p7lz4rlbhzzdqv1g56xqx3gw"))))
5010 (build-system emacs-build-system)
5011 (synopsis "Major mode for editing web templates")
5012 (description "Web-mode is an Emacs major mode for editing web templates
5013 aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by
5014 client/server side engines). Web-mode is compatible with many template
5015 engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker,
5016 Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template,
5017 Dust.js, React/JSX, Angularjs, ejs, etc.")
5018 (home-page "http://web-mode.org/")
5019 (license license:gpl3+)))
5020
5021 (define-public emacs-wgrep
5022 (let ((commit "414be70bd313e482cd9f0b70fd2daad4ee23497c"))
5023 ;; Late commit fixes compatibility issue with Emacs 26+.
5024 (package
5025 (name "emacs-wgrep")
5026 (version (git-version "2.1.10" "1" commit))
5027 (source (origin
5028 (method git-fetch)
5029 (uri (git-reference
5030 (url "https://github.com/mhayashi1120/Emacs-wgrep")
5031 (commit commit)))
5032 (file-name (git-file-name name version))
5033 (sha256
5034 (base32
5035 "1sdhd587q3pg92lhiayph87azhalmf1gzrnsprkmqvnphv7mvks9"))))
5036 (build-system emacs-build-system)
5037 (home-page "https://github.com/mhayashi1120/Emacs-wgrep")
5038 (synopsis "Edit a grep buffer and apply those changes to the files")
5039 (description
5040 "Emacs wgrep allows you to edit a grep buffer and apply those changes
5041 to the file buffer. Several backends are supported beside the classic grep:
5042 ack, ag, helm and pt.")
5043 (license license:gpl3+))))
5044
5045 (define-public emacs-helm
5046 (package
5047 (name "emacs-helm")
5048 (version "3.0")
5049 (source (origin
5050 (method url-fetch)
5051 (uri (string-append
5052 "https://github.com/" name "/helm/archive/v"
5053 version ".tar.gz"))
5054 (file-name (string-append name "-" version ".tar.gz"))
5055 (sha256
5056 (base32
5057 "0k2r0ccppaqfjvyszaxa16vf7g2qzj1clhfr6v646ncsy17laciw"))))
5058 (build-system emacs-build-system)
5059 (propagated-inputs
5060 `(("emacs-async" ,emacs-async)
5061 ("emacs-popup" ,emacs-popup)))
5062 (home-page "https://emacs-helm.github.io/helm/")
5063 (synopsis "Incremental completion and selection narrowing
5064 framework for Emacs")
5065 (description "Helm is incremental completion and selection narrowing
5066 framework for Emacs. It will help steer you in the right direction when
5067 you're looking for stuff in Emacs (like buffers, files, etc). Helm is a fork
5068 of @code{anything.el} originally written by Tamas Patrovic and can be
5069 considered to be its successor. Helm sets out to clean up the legacy code in
5070 @code{anything.el} and provide a cleaner, leaner and more modular tool, that's
5071 not tied in the trap of backward compatibility.")
5072 (license license:gpl3+)))
5073
5074 (define-public emacs-helm-swoop
5075 (package
5076 (name "emacs-helm-swoop")
5077 (version "1.7.4")
5078 (source (origin
5079 (method url-fetch)
5080 (uri (string-append
5081 "https://github.com/ShingoFukuyama/helm-swoop/archive/"
5082 version
5083 ".tar.gz"))
5084 (file-name (string-append name "-" version ".tar.gz"))
5085 (sha256
5086 (base32
5087 "1ssivsjzlnkg049cg993l8fp09l5nhpz6asj7w5c91zp5kpc6fh7"))))
5088 (build-system emacs-build-system)
5089 (propagated-inputs
5090 `(("emacs-helm" ,emacs-helm)))
5091 (home-page "https://github.com/ShingoFukuyama/helm-swoop")
5092 (synopsis "Filter and jump to lines in an Emacs buffer using Helm")
5093 (description
5094 "This package builds on the Helm interface to provide several commands
5095 for search-based navigation of buffers.")
5096 (license license:gpl2+)))
5097
5098 (define-public emacs-helm-projectile
5099 (package
5100 (name "emacs-helm-projectile")
5101 (version "0.14.0")
5102 (source (origin
5103 (method url-fetch)
5104 (uri (string-append
5105 "https://github.com/bbatsov/helm-projectile/archive/v"
5106 version
5107 ".tar.gz"))
5108 (file-name (string-append name "-" version ".tar.gz"))
5109 (sha256
5110 (base32
5111 "19cfmilqh8kbab3b2hmx6lyrj73q6vfmn3p730x95g23iz16mnd5"))))
5112 (build-system emacs-build-system)
5113 (propagated-inputs
5114 `(("emacs-dash" ,emacs-dash)
5115 ("emacs-helm" ,emacs-helm)
5116 ("emacs-projectile" ,emacs-projectile)))
5117 (home-page "https://github.com/bbatsov/helm-projectile")
5118 (synopsis "Helm integration for Projectile")
5119 (description
5120 "This Emacs library provides a Helm interface for Projectile.")
5121 (license license:gpl3+)))
5122
5123 (define-public emacs-helm-make
5124 (let ((commit "feae8df22bc4b20705ea08ac9adfc2b43bb348d0")
5125 (revision "1"))
5126 (package
5127 (name "emacs-helm-make")
5128 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
5129 (source
5130 (origin
5131 (method git-fetch)
5132 (uri (git-reference
5133 (url "https://github.com/abo-abo/helm-make.git")
5134 (commit commit)))
5135 (file-name (string-append name "-" version "-checkout"))
5136 (sha256
5137 (base32
5138 "1y2v77mmd1bfkkz51cnk1l0dg3lvvxc39wlamnm7wjns66dbvlam"))))
5139 (build-system emacs-build-system)
5140 (propagated-inputs
5141 `(("emacs-helm" ,emacs-helm)
5142 ("emacs-projectile" ,emacs-projectile)))
5143 (home-page "https://github.com/abo-abo/helm-make")
5144 (synopsis "Select a Makefile target with helm")
5145 (description "@code{helm-make} or @code{helm-make-projectile} will give
5146 you a @code{helm} selection of directory Makefile's targets. Selecting a
5147 target will call @code{compile} on it.")
5148 (license license:gpl3+))))
5149
5150 (define-public emacs-cider
5151 (package
5152 (name "emacs-cider")
5153 (version "0.18.0")
5154 (source
5155 (origin
5156 (method git-fetch)
5157 (uri (git-reference
5158 (url "https://github.com/clojure-emacs/cider.git")
5159 (commit (string-append "v" version))))
5160 (file-name (git-file-name name version))
5161 (sha256
5162 (base32
5163 "1m9kc88vga3q5d731qnpngnsa0n57pf21k3hll20rw8rggrx4vdn"))))
5164 (build-system emacs-build-system)
5165 (arguments
5166 '(#:exclude ; Don't exclude 'cider-test.el'.
5167 '("^\\.dir-locals\\.el$" "^test/")))
5168 (propagated-inputs
5169 `(("emacs-clojure-mode" ,emacs-clojure-mode)
5170 ("emacs-sesman" ,emacs-sesman)
5171 ("emacs-spinner" ,emacs-spinner)
5172 ("emacs-pkg-info" ,emacs-pkg-info)
5173 ("emacs-queue" ,emacs-queue)))
5174 (home-page "https://cider.readthedocs.io/")
5175 (synopsis "Clojure development environment for Emacs")
5176 (description
5177 "CIDER (Clojure Interactive Development Environment that Rocks) aims to
5178 provide an interactive development experience similar to the one you'd get
5179 when programming in Emacs Lisp, Common Lisp (with SLIME or Sly), Scheme (with
5180 Geiser) and Smalltalk.
5181
5182 CIDER is the successor to the now deprecated combination of using SLIME +
5183 swank-clojure for Clojure development.
5184
5185 There are plenty of differences between CIDER and SLIME, but the core ideas
5186 are pretty much the same (and SLIME served as the principle inspiration for
5187 CIDER).")
5188 (license license:gpl3+)))
5189
5190 ;; There hasn't been a tag or release since 2015, so we take the latest
5191 ;; commit.
5192 (define-public emacs-sly
5193 (let ((commit "486bfbe95612bcdc0960c490207970a188e0fbb9")
5194 (revision "1"))
5195 (package
5196 (name "emacs-sly")
5197 (version (string-append "1.0.0-" revision "." (string-take commit 9)))
5198 (source
5199 (origin
5200 (method git-fetch)
5201 (uri (git-reference
5202 (url "https://github.com/joaotavora/sly.git")
5203 (commit commit)))
5204 (file-name (git-file-name name version))
5205 (sha256
5206 (base32
5207 "0ib4q4k3h3qn88pymyjjmlmnpizdn1mfg5gpk5a715nqsgxlg09l"))))
5208 (build-system emacs-build-system)
5209 (arguments
5210 `(#:include (cons "^lib\\/" %default-include)
5211 #:phases
5212 ;; The package provides autoloads.
5213 (modify-phases %standard-phases
5214 (delete 'make-autoloads))))
5215 (home-page "https://github.com/joaotavora/sly")
5216 (synopsis "Sylvester the Cat's Common Lisp IDE")
5217 (description
5218 "SLY is Sylvester the Cat's Common Lisp IDE. SLY is a fork of SLIME, and
5219 contains the following improvements over it:
5220
5221 @enumerate
5222 @item Completely redesigned REPL based on Emacs's own full-featured
5223 @code{comint.el}
5224 @item Live code annotations via a new @code{sly-stickers} contrib
5225 @item Consistent interactive button interface. Everything can be copied to
5226 the REPL.
5227 @item Multiple inspectors with independent history
5228 @item Regexp-capable @code{M-x sly-apropos}
5229 @item Contribs are first class SLY citizens and enabled by default
5230 @item Use ASDF to loads contribs on demand.
5231 @end enumerate
5232
5233 SLY tracks SLIME's bugfixes and all its familar features (debugger, inspector,
5234 xref, etc...) are still available, but with better integration.")
5235 (license license:gpl3+))))
5236
5237 (define-public emacs-lua-mode
5238 (let ((commit "652e299cb967fccca827dda381d61a9c144d97de")
5239 (revision "1"))
5240 (package
5241 (name "emacs-lua-mode")
5242 (version (string-append "20151025." revision "-" (string-take commit 9)))
5243 (home-page "https://github.com/immerrr/lua-mode/")
5244 (source (origin
5245 (method git-fetch)
5246 (uri (git-reference
5247 (url home-page)
5248 (commit commit)))
5249 (file-name (string-append name "-" version ".checkout"))
5250 (sha256
5251 (base32
5252 "053025k930wh0lak6rc1973ynfrmm8zsyzfqhhd39x7abkl41hc9"))))
5253 (build-system emacs-build-system)
5254 (synopsis "Major mode for lua")
5255 (description
5256 "This Emacs package provides a mode for @uref{https://www.lua.org/,
5257 Lua programing language}.")
5258 (license license:gpl2+))))
5259
5260 (define-public emacs-ebuild-mode
5261 (package
5262 (name "emacs-ebuild-mode")
5263 (version "1.37")
5264 (source (origin
5265 (method url-fetch)
5266 (uri (string-append
5267 "https://dev.gentoo.org/~ulm/emacs/ebuild-mode"
5268 "-" version ".tar.xz"))
5269 (file-name (string-append name "-" version ".tar.xz"))
5270 (sha256
5271 (base32
5272 "07dzrdjjczkxdfdgi60h4jjkvzi4p0k9rij2wpfp8s03ay3qldpp"))))
5273 (build-system emacs-build-system)
5274 (home-page "https://devmanual.gentoo.org")
5275 (synopsis "Major modes for Gentoo package files")
5276 (description
5277 "This Emacs package provides modes for ebuild, eclass, eblit, GLEP42
5278 news items, openrc and runscripts.")
5279 (license license:gpl2+)))
5280
5281 (define-public emacs-evil
5282 (let ((commit "230b87212c81aaa68ef5547a6b998d9c365fe139"))
5283 (package
5284 (name "emacs-evil")
5285 (version (git-version "1.2.13" "1" commit))
5286 (source
5287 (origin
5288 (method git-fetch)
5289 (uri (git-reference
5290 (url "https://github.com/emacs-evil/evil")
5291 (commit commit)))
5292 (file-name (string-append name "-" version "-checkout"))
5293 (sha256
5294 (base32
5295 "0c9zy3bpck10gcrv79kd3h7i4ygd5bgbgy773n0lg7a2r5kwn1gx"))))
5296 (build-system emacs-build-system)
5297 (propagated-inputs
5298 `(("emacs-undo-tree" ,emacs-undo-tree)
5299 ("emacs-goto-chg" ,emacs-goto-chg)))
5300 (home-page "https://github.com/emacs-evil/evil")
5301 (synopsis "Extensible Vi layer for Emacs")
5302 (description
5303 "Evil is an extensible vi layer for Emacs. It emulates the
5304 main features of Vim, and provides facilities for writing custom
5305 extensions.")
5306 (license license:gpl3+))))
5307
5308 (define-public emacs-evil-collection
5309 (let ((commit "4e1f0e0b17153d460805a0da90d6191d66b2673d")
5310 (revision "5"))
5311 (package
5312 (name "emacs-evil-collection")
5313 (version (git-version "0.0.1" revision commit))
5314 (source (origin
5315 (method git-fetch)
5316 (uri (git-reference
5317 (url "https://github.com/emacs-evil/evil-collection")
5318 (commit commit)))
5319 (file-name (string-append name "-" version "-checkout"))
5320 (sha256
5321 (base32
5322 "11d5ppdnb2y2mwsdd9g62h7zds962kw3nss89zv5iwgcf9f1fb5x"))))
5323 (build-system emacs-build-system)
5324 (propagated-inputs
5325 `(("emacs-evil" ,emacs-evil)))
5326 (home-page "https://github.com/emacs-evil/evil-collection")
5327 (synopsis "Collection of Evil bindings for many major and minor modes")
5328 (description "This is a collection of Evil bindings for the parts of
5329 Emacs that Evil does not cover properly by default, such as @code{help-mode},
5330 @code{M-x calendar}, Eshell and more.")
5331 (license license:gpl3+))))
5332
5333 (define-public emacs-goto-chg
5334 (package
5335 (name "emacs-goto-chg")
5336 (version "1.6")
5337 (source
5338 (origin
5339 (method url-fetch)
5340 ;; There is no versioned source.
5341 (uri "https://www.emacswiki.org/emacs/download/goto-chg.el")
5342 (file-name (string-append "goto-chg-" version ".el"))
5343 (sha256
5344 (base32
5345 "078d6p4br5vips7b9x4v6cy0wxf6m5ij9gpqd4g33bryn22gnpij"))))
5346 (build-system emacs-build-system)
5347 ;; There is no other home page.
5348 (home-page "https://www.emacswiki.org/emacs/goto-chg.el")
5349 (synopsis "Go to the last change in the Emacs buffer")
5350 (description
5351 "This package provides @code{M-x goto-last-change} command that goes to
5352 the point of the most recent edit in the current Emacs buffer. When repeated,
5353 go to the second most recent edit, etc. Negative argument, @kbd{C-u -}, is
5354 used for reverse direction.")
5355 (license license:gpl2+)))
5356
5357 (define-public emacs-monroe
5358 (package
5359 (name "emacs-monroe")
5360 (version "0.3.1")
5361 (source
5362 (origin
5363 (method url-fetch)
5364 (uri (string-append "https://github.com/sanel/monroe/archive/"
5365 version ".tar.gz"))
5366 (file-name (string-append name "-" version ".tar.gz"))
5367 (sha256
5368 (base32
5369 "0icdx8shkd951phlnmcq1vqaxp1l667q5rjscskc5r22aylakh4w"))))
5370 (build-system emacs-build-system)
5371 (home-page "https://github.com/sanel/monroe")
5372 (synopsis "Clojure nREPL client for Emacs")
5373 (description
5374 "Monroe is a nREPL client for Emacs, focused on simplicity and easy
5375 distribution, primarily targeting Clojure users")
5376 (license license:gpl3+)))
5377
5378 (define-public emacs-orgalist
5379 (package
5380 (name "emacs-orgalist")
5381 (version "1.9")
5382 (source
5383 (origin
5384 (method url-fetch)
5385 (uri (string-append "https://elpa.gnu.org/packages/"
5386 "orgalist-" version ".el"))
5387 (sha256
5388 (base32
5389 "1rmmcyiiqkq54hn74nhzxzl4nvd902hv6gq341jwhrm7yiagffi6"))))
5390 (build-system emacs-build-system)
5391 (home-page "http://elpa.gnu.org/packages/orgalist.html")
5392 (synopsis "Manage Org-like lists in non-Org buffers")
5393 (description "Write Org mode's plain lists in non-Org buffers. More
5394 specifically, Orgalist supports the syntax of Org mode for numbered,
5395 unnumbered, description items, checkboxes, and counter cookies.
5396
5397 The library also implements radio lists, i.e., lists written in Org
5398 syntax later translated into the host format, e.g., LaTeX or HTML.")
5399 (license license:gpl3+)))
5400
5401 (define-public emacs-writegood-mode
5402 (package
5403 (name "emacs-writegood-mode")
5404 (version "2.0.2")
5405 (home-page "https://github.com/bnbeckwith/writegood-mode")
5406 (source (origin
5407 (method git-fetch)
5408 (uri (git-reference
5409 (url home-page)
5410 (commit (string-append "v" version))))
5411 (sha256
5412 (base32
5413 "1nnjn1r669hvvzfycllwap4w04m8rfsk4nzcg8057m1f263kj31b"))
5414 (file-name (string-append name "-checkout"))))
5415 (build-system emacs-build-system)
5416 (synopsis "Polish up poor writing on the fly")
5417 (description
5418 "This minor mode tries to find and highlight problems with your writing
5419 in English as you type. It primarily detects \"weasel words\" and abuse of
5420 passive voice.")
5421 (license license:gpl3+)))
5422
5423 (define-public emacs-neotree
5424 (package
5425 (name "emacs-neotree")
5426 (version "0.5.2")
5427 (home-page "https://github.com/jaypei/emacs-neotree")
5428 (source (origin
5429 (method url-fetch)
5430 (uri (string-append
5431 "https://github.com/jaypei/" name
5432 "/archive/" version ".tar.gz"))
5433 (sha256
5434 (base32
5435 "1zd6dchwyijnf7kgchfcp51gs938l204dk9z6mljrfqf2zy0gp12"))
5436 (file-name (string-append name "-" version ".tar.gz"))))
5437 (build-system emacs-build-system)
5438 (synopsis "Folder tree view for Emacs")
5439 (description "This Emacs package provides a folder tree view.")
5440 (license license:gpl3+)))
5441
5442 (define-public emacs-org
5443 (package
5444 (name "emacs-org")
5445 ;; emacs-org-contrib inherits from this package. Please update its sha256
5446 ;; checksum as well.
5447 (version "9.2")
5448 (source (origin
5449 (method url-fetch)
5450 (uri (string-append "http://elpa.gnu.org/packages/org-"
5451 version ".tar"))
5452 (sha256
5453 (base32
5454 "14ydwh2r360fpi6v2g9rgf0zazy2ddq1pcdxvzn73h65glnnclz9"))))
5455 (build-system emacs-build-system)
5456 (home-page "https://orgmode.org/")
5457 (synopsis "Outline-based notes management and organizer")
5458 (description "Org is an Emacs mode for keeping notes, maintaining TODO
5459 lists, and project planning with a fast and effective lightweight markup
5460 language. It also is an authoring system with unique support for literate
5461 programming and reproducible research.")
5462 (license license:gpl3+)))
5463
5464 (define-public emacs-org-contrib
5465 (package
5466 (inherit emacs-org)
5467 (name "emacs-org-contrib")
5468 (version "20181230")
5469 (source (origin
5470 (method url-fetch)
5471 (uri (string-append "https://orgmode.org/elpa/org-plus-contrib-"
5472 version ".tar"))
5473 (sha256
5474 (base32
5475 "0gibwcjlardjwq19bh0zzszv0dxxlml0rh5iikkcdynbgndk1aa1"))))
5476 (arguments
5477 `(#:modules ((guix build emacs-build-system)
5478 (guix build utils)
5479 (guix build emacs-utils)
5480 (ice-9 ftw)
5481 (srfi srfi-1))
5482 #:phases
5483 (modify-phases %standard-phases
5484 (add-after 'install 'delete-org-files
5485 (lambda* (#:key inputs outputs #:allow-other-keys)
5486 (let* ((out (assoc-ref outputs "out"))
5487 (org (assoc-ref inputs "org"))
5488 (contrib-files
5489 (map basename (find-files out)))
5490 (org+contrib-files
5491 (map basename (find-files org)))
5492 (duplicates (lset-intersection
5493 string=? contrib-files org+contrib-files)))
5494 (with-directory-excursion
5495 (string-append
5496 out "/share/emacs/site-lisp/guix.d/org-contrib-" ,version)
5497 (for-each delete-file duplicates))
5498 #t))))))
5499 (propagated-inputs
5500 `(("arduino-mode" ,emacs-arduino-mode)
5501 ("cider" ,emacs-cider)
5502 ("org" ,emacs-org)
5503 ("scel" ,emacs-scel)))
5504 (synopsis "Contributed packages to Org mode")
5505 (description "Org is an Emacs mode for keeping notes, maintaining TODO
5506 lists, and project planning with a fast and effective plain-text system.
5507
5508 This package is equivalent to org-plus-contrib, but only includes additional
5509 files that you would find in @file{contrib/} from the git repository.")))
5510
5511 (define-public emacs-flx
5512 (package
5513 (name "emacs-flx")
5514 (version "0.6.1")
5515 (source
5516 (origin
5517 (method url-fetch)
5518 (uri (string-append "https://github.com/lewang/"
5519 "flx/archive/v" version ".tar.gz"))
5520 (sha256
5521 (base32
5522 "0bkcpnf1j4i2fcc2rllwbz62l00sw2mcia6rm5amgwvlkqavmkv6"))
5523 (file-name (string-append name "-" version ".tar.gz"))))
5524 (build-system emacs-build-system)
5525 (home-page "https://github.com/lewang/flx")
5526 (synopsis "Fuzzy matching for Emacs")
5527 (description
5528 "Flx provides fuzzy matching for emacs a la sublime text.
5529 The sorting algorithm is a balance between word beginnings (abbreviation)
5530 and contiguous matches (substring). The longer the substring match,
5531 the higher it scores. This maps well to how we think about matching.
5532 Flx has support for ido (interactively do things) through flx-ido.")
5533 (license license:gpl3+)))
5534
5535 (define-public emacs-cyberpunk-theme
5536 (package
5537 (name "emacs-cyberpunk-theme")
5538 (version "1.19")
5539 (source
5540 (origin
5541 (method url-fetch)
5542 (uri (string-append "https://github.com/n3mo/cyberpunk-theme.el/"
5543 "archive/" version ".tar.gz"))
5544 (sha256
5545 (base32
5546 "05l5fxw1mn5py6mfhxrzyqjq0d8m5m1akfi46vrgh13r414jffvv"))
5547 (file-name (string-append name "-" version ".tar.gz"))))
5548 (build-system emacs-build-system)
5549 (home-page "https://github.com/n3mo/cyberpunk-theme.el")
5550 (synopsis "Cyberpunk theme for emacs built-in color theme support")
5551 (description
5552 "Cyberpunk color theme for the emacs 24+ built-in color theme support
5553 known loosely as deftheme. Many mode-specific customizations are included.")
5554 (license license:gpl3+)))
5555
5556 (define-public emacs-danneskjold-theme
5557 (let* ((commit "8733d2fe8743e8a01826ea6d4430ef376c727e57")
5558 (revision "1"))
5559 (package
5560 (name "emacs-danneskjold-theme")
5561 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
5562 (home-page "https://github.com/rails-to-cosmos/danneskjold-theme")
5563 (source
5564 (origin
5565 (method git-fetch)
5566 (uri (git-reference
5567 (url home-page)
5568 (commit commit)))
5569 (file-name (string-append name "-" version "-checkout"))
5570 (sha256
5571 (base32
5572 "0s6rbsb0y8i8m5b9xm4gw1p1cxsxdqnqxqqb638pygz9f76mbir1"))))
5573 (build-system emacs-build-system)
5574 (arguments
5575 `(#:phases
5576 (modify-phases %standard-phases
5577 (add-after 'unpack 'delete-screenshots
5578 (lambda _
5579 (delete-file-recursively "screenshots") #t)))))
5580 (synopsis "High-contrast Emacs theme")
5581 (description
5582 "@code{danneskjold-theme} is a high-contrast theme for Emacs.")
5583 (license license:gpl3+))))
5584
5585 (define-public emacs-dream-theme
5586 (let* ((commit "107a11d74365046f28a1802a2bdb5e69e4a7488b")
5587 (revision "1"))
5588 (package
5589 (name "emacs-dream-theme")
5590 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
5591 (source
5592 (origin
5593 (method git-fetch)
5594 (uri (git-reference
5595 (url "https://github.com/djcb/dream-theme")
5596 (commit commit)))
5597 (file-name (string-append name "-" version "-checkout"))
5598 (sha256
5599 (base32
5600 "0za18nfkq4xqm35k6006vsixcbmvmxqgma4iw5sw37h8vmcsdylk"))))
5601 (build-system emacs-build-system)
5602 (home-page "https://github.com/djcb/dream-theme")
5603 (synopsis "High-contrast Emacs theme")
5604 (description
5605 "@code{dream-theme} is a dark, clean theme for Emacs. It is inspired
5606 by zenburn, sinburn and similar themes, but slowly diverging from them.")
5607 (license license:gpl3+))))
5608
5609 (define-public emacs-auto-complete
5610 (package
5611 (name "emacs-auto-complete")
5612 (version "1.5.1")
5613 (source
5614 (origin
5615 (method url-fetch)
5616 (uri (string-append "https://github.com/auto-complete/"
5617 "auto-complete/archive/v" version ".tar.gz"))
5618 (sha256
5619 (base32
5620 "1jvq4lj00hwml75lpmlciazy8f3bbg13gffsfnl835p4qd8l7yqv"))
5621 (file-name (string-append name "-" version ".tar.gz"))))
5622 (build-system emacs-build-system)
5623 (propagated-inputs
5624 `(("emacs-popup" ,emacs-popup)))
5625 (home-page "https://github.com/auto-complete/auto-complete")
5626 (synopsis "Intelligent auto-completion extension for Emacs")
5627 (description
5628 "Auto-Complete is an intelligent auto-completion extension for Emacs.
5629 It extends the standard Emacs completion interface and provides an environment
5630 that allows users to concentrate more on their own work. Its features are:
5631 a visual interface, reduce overhead of completion by using statistic method,
5632 extensibility.")
5633 (license license:gpl3+)))
5634
5635 (define-public m17n-db
5636 (package
5637 (name "m17n-db")
5638 (version "1.8.0")
5639 (source
5640 (origin
5641 (method url-fetch)
5642 (uri (string-append "mirror://savannah/m17n/m17n-db-"
5643 version ".tar.gz"))
5644 (sha256
5645 (base32
5646 "0vfw7z9i2s9np6nmx1d4dlsywm044rkaqarn7akffmb6bf1j6zv5"))))
5647 (build-system gnu-build-system)
5648 (inputs
5649 `(("gettext" ,gettext-minimal)))
5650 (arguments
5651 `(#:configure-flags
5652 (list (string-append "--with-charmaps="
5653 (assoc-ref %build-inputs "libc")
5654 "/share/i18n/charmaps"))))
5655 ;; With `guix lint' the home-page URI returns a small page saying
5656 ;; that your browser does not handle frames. This triggers the "URI
5657 ;; returns suspiciously small file" warning.
5658 (home-page "https://www.nongnu.org/m17n/")
5659 (synopsis "Multilingual text processing library (database)")
5660 (description "The m17n library realizes multilingualization of
5661 many aspects of applications. The m17n library represents
5662 multilingual text as an object named M-text. M-text is a string with
5663 attributes called text properties, and designed to substitute for
5664 string in C. Text properties carry any information required to input,
5665 display and edit the text.
5666
5667 This package contains the library database.")
5668 (license license:lgpl2.1+)))
5669
5670 (define-public m17n-lib
5671 (package
5672 (name "m17n-lib")
5673 (version "1.8.0")
5674 (source
5675 (origin
5676 (method url-fetch)
5677 (uri (string-append "mirror://savannah/m17n/m17n-lib-"
5678 version ".tar.gz"))
5679 (sha256
5680 (base32
5681 "0jp61y09xqj10mclpip48qlfhniw8gwy8b28cbzxy8hq8pkwmfkq"))))
5682 (build-system gnu-build-system)
5683 (inputs
5684 `(("fribidi" ,fribidi)
5685 ("gd" ,gd)
5686 ("libotf" ,libotf)
5687 ("libxft" ,libxft)
5688 ("libxml2" ,libxml2)
5689 ("m17n-db" ,m17n-db)))
5690 (arguments
5691 `(#:parallel-build? #f))
5692 ;; With `guix lint' the home-page URI returns a small page saying
5693 ;; that your browser does not handle frames. This triggers the "URI
5694 ;; returns suspiciously small file" warning.
5695 (home-page "https://www.nongnu.org/m17n/")
5696 (synopsis "Multilingual text processing library (runtime)")
5697 (description "The m17n library realizes multilingualization of
5698 many aspects of applications. The m17n library represents
5699 multilingual text as an object named M-text. M-text is a string with
5700 attributes called text properties, and designed to substitute for
5701 string in C. Text properties carry any information required to input,
5702 display and edit the text.
5703
5704 This package contains the library runtime.")
5705 (license license:lgpl2.1+)))
5706
5707 (define-public emacs-nginx-mode
5708 (package
5709 (name "emacs-nginx-mode")
5710 (version "1.1.9")
5711 (source
5712 (origin
5713 (method url-fetch)
5714 (uri (string-append
5715 "https://github.com/ajc/nginx-mode/archive/v"
5716 version ".tar.gz"))
5717 (file-name (string-append name "-" version ".tar.gz"))
5718 (sha256
5719 (base32
5720 "0bzyrj6zz1hm67bkhw23bam7qc869s3zg7m1rb1c3aa4n0aw90cq"))))
5721 (build-system emacs-build-system)
5722 (home-page "https://github.com/ajc/nginx-mode")
5723 (synopsis "Emacs major mode for editing nginx config files")
5724 (description "This package provides an Emacs major mode for
5725 editing nginx config files.")
5726 (license license:gpl2+)))
5727
5728 (define-public emacs-stream
5729 (package
5730 (name "emacs-stream")
5731 (version "2.2.0")
5732 (home-page "https://github.com/NicolasPetton/stream")
5733 (source
5734 (origin
5735 (method url-fetch)
5736 (file-name (string-append name "-" version ".tar.gz"))
5737 (uri (string-append home-page "/archive/"version ".tar.gz"))
5738 (sha256
5739 (base32 "03ql4nqfz5pn55mjly6clhvc3g7x2d28kj7mrlqmigvjbql39xxc"))))
5740 (build-system emacs-build-system)
5741 (synopsis "Implementation of streams for Emacs")
5742 (description "This library provides an implementation of streams for Emacs.
5743 Streams are implemented as delayed evaluation of cons cells.")
5744 (license license:gpl3+)))
5745
5746 (define-public emacs-el-search
5747 (let ((commit "f26277bfbb3fc3fc74beea6592f294c439796bd4")
5748 (revision "1"))
5749 (package
5750 (name "emacs-el-search")
5751 ;; No ufficial release.
5752 (version (string-append "0.0-" revision "." (string-take commit 7)))
5753 (home-page "https://github.com/emacsmirror/el-search")
5754 (source
5755 (origin
5756 (method git-fetch)
5757 (file-name (string-append name "-" version ".tar.gz"))
5758 (uri (git-reference
5759 (commit commit)
5760 (url (string-append home-page ".git"))))
5761 (sha256
5762 (base32 "12xf40h9sb7xxg2r97gsia94q02543mgiiiw46fzh1ac7b7993g6"))))
5763 (build-system emacs-build-system)
5764 (inputs `(("emacs-stream" ,emacs-stream)))
5765 (synopsis "Expression based interactive search for emacs-lisp-mode")
5766 (description "This package provides expression based interactive search
5767 procedures for emacs-lisp-mode.")
5768 (license license:gpl3+))))
5769
5770 (define-public emacs-ht
5771 (package
5772 (name "emacs-ht")
5773 (version "2.1")
5774 (source
5775 (origin
5776 (method url-fetch)
5777 (uri (string-append
5778 "https://github.com/Wilfred/ht.el/archive/"
5779 version ".tar.gz"))
5780 (file-name (string-append name "-" version ".tar.gz"))
5781 (sha256
5782 (base32
5783 "1lpba36kzxcc966fvsbrfpy8ah9gnvay0yk26gbyjil0rggrbqzj"))))
5784 (build-system emacs-build-system)
5785 (propagated-inputs `(("emacs-dash" ,emacs-dash)))
5786 (home-page "https://github.com/Wilfred/ht.el")
5787 (synopsis "Hash table library for Emacs")
5788 (description
5789 "This package simplifies the use of hash tables in elisp. It also
5790 provides functions to convert hash tables from and to alists and plists.")
5791 (license license:gpl3+)))
5792
5793 (define-public emacs-log4e
5794 (package
5795 (name "emacs-log4e")
5796 (version "0.3.0")
5797 (source
5798 (origin
5799 (method url-fetch)
5800 (uri (string-append
5801 "https://github.com/aki2o/log4e/archive/v"
5802 version ".tar.gz"))
5803 (file-name (string-append name "-" version ".tar.gz"))
5804 (sha256
5805 (base32
5806 "0nbdpbw353snda3v19l9hsm6gimppwnpxj18amm350bm81lyim2g"))))
5807 (build-system emacs-build-system)
5808 (arguments
5809 `(#:phases
5810 (modify-phases %standard-phases
5811 (add-after 'unpack 'remove-tests
5812 ;; Guile builder complains about null characters in some
5813 ;; strings of test files. Remove "test" directory (it is not
5814 ;; needed anyway).
5815 (lambda _
5816 (delete-file-recursively "test"))))))
5817 (home-page "https://github.com/aki2o/log4e")
5818 (synopsis "Logging framework for elisp")
5819 (description
5820 "This package provides a logging framework for elisp. It allows
5821 you to deal with multiple log levels.")
5822 (license license:gpl3+)))
5823
5824 (define-public emacs-gntp
5825 (package
5826 (name "emacs-gntp")
5827 (version "0.1")
5828 (source
5829 (origin
5830 (method url-fetch)
5831 (uri (string-append
5832 "https://github.com/tekai/gntp.el/archive/v"
5833 version ".tar.gz"))
5834 (file-name (string-append name "-" version ".tar.gz"))
5835 (sha256
5836 (base32
5837 "16c1dfkia9yhl206bdhjr3b8kfvqcqr38jl5lq8qsyrrzsnmghny"))))
5838 (build-system emacs-build-system)
5839 (home-page "https://github.com/tekai/gntp.el")
5840 (synopsis "Growl Notification Protocol for Emacs")
5841 (description
5842 "This package implements the Growl Notification Protocol GNTP
5843 described at @uref{http://www.growlforwindows.com/gfw/help/gntp.aspx}.
5844 It is incomplete as it only lets you send but not receive
5845 notifications.")
5846 (license license:bsd-3)))
5847
5848 (define-public emacs-alert
5849 (package
5850 (name "emacs-alert")
5851 (version "1.2")
5852 (source
5853 (origin
5854 (method url-fetch)
5855 (uri (string-append
5856 "https://github.com/jwiegley/alert/archive/v"
5857 version ".tar.gz"))
5858 (file-name (string-append name "-" version ".tar.gz"))
5859 (sha256
5860 (base32
5861 "1693kck3k2iz5zhpmxwqyafxm68hr6gzs60lkxd3j1wlp2c9fwyr"))))
5862 (build-system emacs-build-system)
5863 (propagated-inputs
5864 `(("emacs-gntp" ,emacs-gntp)
5865 ("emacs-log4e" ,emacs-log4e)))
5866 (home-page "https://github.com/jwiegley/alert")
5867 (synopsis "Growl-style notification system for Emacs")
5868 (description
5869 "Alert is a Growl-workalike for Emacs which uses a common notification
5870 interface and multiple, selectable \"styles\", whose use is fully
5871 customizable by the user.")
5872 (license license:gpl2+)))
5873
5874 (define-public emacs-mu4e-alert
5875 (package
5876 (name "emacs-mu4e-alert")
5877 (version "1.0")
5878 (source
5879 (origin
5880 (method url-fetch)
5881 (uri (string-append
5882 "https://github.com/iqbalansari/mu4e-alert/archive/v"
5883 version ".tar.gz"))
5884 (file-name (string-append name "-" version ".tar.gz"))
5885 (sha256
5886 (base32
5887 "07qc834qnxn8xi4bw5nawj8g91bmkzw0r0vahkgysp7r9xrf57gj"))))
5888 (build-system emacs-build-system)
5889 (propagated-inputs
5890 `(("emacs-alert" ,emacs-alert)
5891 ("emacs-s" ,emacs-s)
5892 ("emacs-ht" ,emacs-ht)
5893 ("mu" ,mu)))
5894 (home-page "https://github.com/iqbalansari/mu4e-alert")
5895 (synopsis "Desktop notification for mu4e")
5896 (description
5897 "This package provides desktop notifications for mu4e.
5898 Additionally it can display the number of unread emails in the
5899 mode-line.")
5900 (license license:gpl3+)))
5901
5902 (define-public emacs-pretty-mode
5903 (package
5904 (name "emacs-pretty-mode")
5905 (version "2.0.3")
5906 (source
5907 (origin
5908 (method url-fetch)
5909 (uri (string-append "https://github.com/akatov/pretty-mode/"
5910 "archive/" version ".tar.gz"))
5911 (file-name (string-append name "-" version ".tar.gz"))
5912 (sha256
5913 (base32
5914 "1fan7m4vnqs8kpg7r54kx3g7faadkpkf9kzarfv8n57kq8w157pl"))))
5915 (build-system emacs-build-system)
5916 (home-page "https://github.com/akatov/pretty-mode")
5917 (synopsis "Redisplay parts of the buffer as Unicode symbols")
5918 (description
5919 "Emacs minor mode for redisplaying parts of the buffer as pretty symbols.")
5920 (license license:gpl3+)))
5921
5922 (define-public emacs-yasnippet
5923 (package
5924 (name "emacs-yasnippet")
5925 (version "0.13.0")
5926 (source (origin
5927 (method url-fetch)
5928 (uri (string-append "https://github.com/joaotavora/yasnippet/"
5929 "archive/" version ".tar.gz"))
5930 (file-name (string-append name "-" version ".tar.gz"))
5931 (sha256
5932 (base32
5933 "12ls2x17agzbrj1xynjbmfa11igqxia4hj4fv6fpr66yci2r1plc"))
5934 (modules '((guix build utils)))
5935 (snippet
5936 '(begin
5937 ;; YASnippet expects a "snippets" subdirectory in the same
5938 ;; directory as yasnippet.el, but we don't install it
5939 ;; because it's a git submodule pointing to an external
5940 ;; repository. Adjust `yas-snippet-dirs' to prevent
5941 ;; warnings about a missing directory.
5942 (substitute* "yasnippet.el"
5943 (("^ +'yas-installed-snippets-dir\\)\\)\n")
5944 "))\n"))
5945 #t))))
5946 (build-system emacs-build-system)
5947 (home-page "https://github.com/joaotavora/yasnippet")
5948 (synopsis "Yet another snippet extension for Emacs")
5949 (description
5950 "YASnippet is a template system for Emacs. It allows you to type an
5951 abbreviation and automatically expand it into function templates.")
5952 (license license:gpl3+)))
5953
5954 (define-public emacs-yasnippet-snippets
5955 (let ((commit "885050d34737e2fb36a3e7759d60c09347bd4ce0")
5956 (revision "1"))
5957 (package
5958 (name "emacs-yasnippet-snippets")
5959 (version (string-append "1-" revision "." (string-take commit 8)))
5960 (source
5961 (origin
5962 (method git-fetch)
5963 (uri (git-reference
5964 (url "https://github.com/AndreaCrotti/yasnippet-snippets")
5965 (commit commit)))
5966 (file-name (string-append name "-" version "-checkout"))
5967 (sha256
5968 (base32
5969 "1m935zgglw0iakzrixld5rcjz3wnj84f8wy2mvc3pggjri9l0qr9"))))
5970 (build-system trivial-build-system)
5971 (arguments
5972 `(#:modules ((ice-9 ftw)
5973 (ice-9 regex)
5974 (guix build utils))
5975 #:builder
5976 (begin
5977 (use-modules (ice-9 ftw)
5978 (ice-9 regex)
5979 (guix build utils))
5980 (with-directory-excursion (assoc-ref %build-inputs "source")
5981 (for-each (lambda (dir)
5982 (copy-recursively
5983 dir
5984 (string-append %output
5985 "/share/emacs/yasnippet-snippets/"
5986 dir)))
5987 (scandir "." (lambda (fname)
5988 (and (string-match "-mode$" fname)
5989 (directory-exists? fname))))))
5990 #t)))
5991 (home-page "https://github.com/AndreaCrotti/yasnippet-snippets")
5992 (synopsis "Collection of YASnippet snippets for many languages")
5993 (description
5994 "Provides Andrea Crotti's collection of YASnippet snippets. After installation,
5995 the snippets will be in \"~/.guix-profile/share/emacs/yasnippet-snippets/\".
5996 To make YASnippet aware of these snippets, add the above directory to
5997 @code{yas-snippet-dirs}.")
5998 (license license:expat))))
5999
6000 (define-public emacs-helm-c-yasnippet
6001 (let ((commit "65ca732b510bfc31636708aebcfe4d2d845b59b0")
6002 (revision "1"))
6003 (package
6004 (name "emacs-helm-c-yasnippet")
6005 (version (string-append "0.6.7" "-" revision "."
6006 (string-take commit 7)))
6007 (source (origin
6008 (method git-fetch)
6009 (uri (git-reference
6010 (url "https://github.com/emacs-jp/helm-c-yasnippet")
6011 (commit commit)))
6012 (file-name (string-append name "-" version "-checkout"))
6013 (sha256
6014 (base32
6015 "1cbafjqlzxbg19xfdqsinsh7afq58gkf44rsg1qxfgm8g6zhr7f8"))))
6016 (build-system emacs-build-system)
6017 (propagated-inputs
6018 `(("emacs-helm" ,emacs-helm)
6019 ("emacs-yasnippet" ,emacs-yasnippet)))
6020 (home-page "https://github.com/emacs-jp/helm-c-yasnippet")
6021 (synopsis "Helm integration for Yasnippet")
6022 (description "This Emacs library provides Helm interface for
6023 Yasnippet.")
6024 (license license:gpl2+))))
6025
6026 (define-public emacs-helm-system-packages
6027 (package
6028 (name "emacs-helm-system-packages")
6029 (version "1.10.1")
6030 (source (origin
6031 (method git-fetch)
6032 (uri (git-reference
6033 (url "https://github.com/emacs-helm/helm-system-packages")
6034 (commit (string-append "v" version))))
6035 (file-name (string-append name "-" version "-checkout"))
6036 (sha256
6037 (base32
6038 "01by0c4lqi2cw8xmbxkjw7m9x78zssm31sx4hdpw5j35s2951j0f"))))
6039 (build-system emacs-build-system)
6040 (inputs
6041 `(("recutils" ,recutils)))
6042 (propagated-inputs
6043 `(("emacs-helm" ,emacs-helm)))
6044 (arguments
6045 `(#:phases
6046 (modify-phases %standard-phases
6047 (add-after 'unpack 'configure
6048 (lambda* (#:key inputs outputs #:allow-other-keys)
6049 (let ((recutils (assoc-ref inputs "recutils")))
6050 ;; Specify the absolute file names of the various
6051 ;; programs so that everything works out-of-the-box.
6052 (substitute* "helm-system-packages-guix.el"
6053 (("recsel") (string-append recutils "/bin/recsel")))))))))
6054 (home-page "https://github.com/emacs-helm/helm-system-packages")
6055 (synopsis "Helm System Packages is an interface to your package manager")
6056 (description "List all available packages in Helm (with installed
6057 packages displayed in their own respective face). Fuzzy-search, mark and
6058 execute the desired action over any selections of packages: Install,
6059 uninstall, display packages details (in Org Mode) or insert details at point,
6060 find files owned by packages... And much more, including performing all the
6061 above over the network.")
6062 (license license:gpl3+)))
6063
6064 (define-public emacs-memoize
6065 (package
6066 (name "emacs-memoize")
6067 (version "1.1")
6068 (source
6069 (origin
6070 (method url-fetch)
6071 (uri (string-append
6072 "https://github.com/skeeto/emacs-memoize/archive/"
6073 version ".tar.gz"))
6074 (file-name (string-append name "-" version ".tar.gz"))
6075 (sha256
6076 (base32
6077 "05ijgwi4ymxx31vpjm2pn356j85cykknajn14lrzz8pn5sh0vrg4"))))
6078 (build-system emacs-build-system)
6079 (arguments
6080 `(#:tests? #t
6081 #:test-command '("emacs" "--batch"
6082 "-l" "memoize-test.el"
6083 "-f" "ert-run-tests-batch-and-exit")))
6084 (home-page "https://github.com/skeeto/emacs-memoize")
6085 (synopsis "Emacs lisp memoization library")
6086 (description "@code{emacs-memoize} is an Emacs library for
6087 memoizing functions.")
6088 (license license:unlicense)))
6089
6090 (define-public emacs-linum-relative
6091 (package
6092 (name "emacs-linum-relative")
6093 (version "0.5")
6094 (source
6095 (origin
6096 (method url-fetch)
6097 (uri (string-append
6098 "https://github.com/coldnew/linum-relative/archive/"
6099 version ".tar.gz"))
6100 (file-name (string-append name "-" version ".tar.gz"))
6101 (sha256
6102 (base32
6103 "0s4frvr27866lw1rn3jal9wj5rkz9fx4yiszqv7w06azsdgsqksv"))))
6104 (build-system emacs-build-system)
6105 (home-page "https://github.com/coldnew/linum-relative")
6106 (synopsis "Relative line numbering for Emacs")
6107 (description "@code{emacs-linum-relative} displays the relative line
6108 number on the left margin in Emacs.")
6109 (license license:gpl2+)))
6110
6111 (define-public emacs-idle-highlight
6112 (package
6113 (name "emacs-idle-highlight")
6114 (version "1.1.3")
6115 (source
6116 (origin
6117 (method url-fetch)
6118 (uri (string-append
6119 "https://github.com/nonsequitur/idle-highlight-mode/archive/"
6120 version ".tar.gz"))
6121 (file-name (string-append name "-" version ".tar.gz"))
6122 (sha256
6123 (base32
6124 "0kdv10hrgqpskjh0zvpnzwlkn5bccnqxas62gkws6njln57bf8nl"))))
6125 (build-system emacs-build-system)
6126 (home-page "https://www.emacswiki.org/emacs/IdleHighlight")
6127 (synopsis "Highlights all occurrences of the word the point is on")
6128 (description
6129 "This Emacs package provides @code{idle-highlight-mode} that sets
6130 an idle timer to highlight all occurrences in the buffer of the word under
6131 the point.")
6132 (license license:gpl3+)))
6133
6134 (define-public emacs-ox-twbs
6135 (package
6136 (name "emacs-ox-twbs")
6137 (version "1.1.1")
6138 (source
6139 (origin
6140 (method url-fetch)
6141 (uri (string-append
6142 "https://github.com/marsmining/ox-twbs/archive/v"
6143 version ".tar.gz"))
6144 (file-name (string-append name "-" version ".tar.gz"))
6145 (sha256
6146 (base32
6147 "1zaq8dczq5wijjk36114k2x3hfrqig3lyx6djril6wyk67vczyqs"))))
6148 (build-system emacs-build-system)
6149 (home-page "https://github.com/marsmining/ox-twbs")
6150 (synopsis "Export org-mode docs as HTML compatible with Twitter Bootstrap")
6151 (description
6152 "This Emacs package outputs your org-mode docs with a simple, clean and
6153 modern look. It implements a new HTML back-end for exporting org-mode docs as
6154 HTML compatible with Twitter Bootstrap. By default, HTML is exported with
6155 jQuery and Bootstrap resources included via osscdn.")
6156 (license license:gpl3+)))
6157
6158 (define-public emacs-highlight-sexp
6159 (package
6160 (name "emacs-highlight-sexp")
6161 (version "1.0")
6162 (source
6163 (origin
6164 (method url-fetch)
6165 (uri (string-append
6166 "https://github.com/daimrod/highlight-sexp/archive/v"
6167 version ".tar.gz"))
6168 (file-name (string-append name "-" version ".tar.gz"))
6169 (sha256
6170 (base32
6171 "0jwx87qkln1rg9wmv4qkgkml935fh2pkgrg5x4ca6n5dgb4q6rj1"))))
6172 (build-system emacs-build-system)
6173 (home-page "https://github.com/daimrod/highlight-sexp")
6174 (synopsis "Minor mode that highlights the s-exp at the current position")
6175 (description
6176 "This Emacs package highlights the s-exp at the current position.")
6177 (license license:gpl3+)))
6178
6179 (define-public emacs-highlight-stages
6180 (let ((commit "29cbc5b78261916da042ddb107420083da49b271")
6181 (revision "1"))
6182 (package
6183 (name "emacs-highlight-stages")
6184 (version (string-append "1.1.0" "-" revision "." (string-take commit 7)))
6185 (source
6186 (origin
6187 (method git-fetch)
6188 (uri (git-reference
6189 (url "https://github.com/zk-phi/highlight-stages.git")
6190 (commit commit)))
6191 (file-name (string-append name "-" version "-checkout"))
6192 (sha256
6193 (base32
6194 "0r6nbcrr0dqpgm8dir8ahzjy7rw4nrac48byamzrq96r7ajlxlv0"))
6195 (patches
6196 (search-patches "emacs-highlight-stages-add-gexp.patch"))))
6197 (build-system emacs-build-system)
6198 (home-page "https://github.com/wigust/highlight-stages")
6199 (synopsis "Minor mode that highlights (quasi-quoted) expressions")
6200 (description "@code{highlight-stages} provides an Emacs minor mode that
6201 highlights quasi-quoted expressions.")
6202 (license license:gpl3+))))
6203
6204 (define-public emacspeak
6205 (package
6206 (name "emacspeak")
6207 (version "48.0")
6208 (source
6209 (origin
6210 (method url-fetch)
6211 (uri (string-append
6212 "https://github.com/tvraman/emacspeak/releases/download/"
6213 version "/emacspeak-" version ".tar.bz2"))
6214 (sha256
6215 (base32
6216 "07imi3hji06b3r7v7v59978q76s8a7ynmxwfc9j03pgnv965lpjy"))))
6217 (build-system gnu-build-system)
6218 (arguments
6219 '(#:make-flags (list (string-append "prefix="
6220 (assoc-ref %outputs "out")))
6221 #:phases
6222 (modify-phases %standard-phases
6223 (replace 'configure
6224 (lambda* (#:key outputs #:allow-other-keys)
6225 (let* ((out (assoc-ref outputs "out"))
6226 (lisp (string-append out
6227 "/share/emacs/site-lisp/emacspeak")))
6228 (setenv "SHELL" (which "sh"))
6229 ;; Configure Emacspeak according to etc/install.org.
6230 (invoke "make" "config"))))
6231 (add-after 'build 'build-espeak
6232 (lambda _
6233 (invoke "make" "espeak")))
6234 (replace 'install
6235 (lambda* (#:key inputs outputs #:allow-other-keys)
6236 (let* ((out (assoc-ref outputs "out"))
6237 (bin (string-append out "/bin"))
6238 (lisp (string-append out "/share/emacs/site-lisp/emacspeak"))
6239 (info (string-append out "/share/info"))
6240 (emacs (string-append (assoc-ref inputs "emacs")
6241 "/bin/emacs")))
6242 ;; According to etc/install.org, the Emacspeak directory should
6243 ;; be copied to its installation destination.
6244 (for-each
6245 (lambda (file)
6246 (copy-recursively file (string-append lisp "/" file)))
6247 '("etc" "info" "js" "lisp" "media" "scapes" "servers" "sounds"
6248 "stumpwm" "xsl"))
6249 ;; Make sure emacspeak is loaded from the correct directory.
6250 (substitute* "etc/emacspeak.sh"
6251 (("exec FLAVOR.*")
6252 (string-append "exec " emacs " -l " lisp
6253 "/lisp/emacspeak-setup.el $CL_ALL")))
6254 ;; Install the convenient startup script.
6255 (mkdir-p bin)
6256 (copy-file "etc/emacspeak.sh" (string-append bin "/emacspeak")))
6257 #t))
6258 (add-after 'install 'wrap-program
6259 (lambda* (#:key inputs outputs #:allow-other-keys)
6260 (let* ((out (assoc-ref outputs "out"))
6261 (emacspeak (string-append out "/bin/emacspeak"))
6262 (espeak (string-append (assoc-ref inputs "espeak")
6263 "/bin/espeak")))
6264 ;; The environment variable DTK_PROGRAM tells emacspeak what
6265 ;; program to use for speech.
6266 (wrap-program emacspeak
6267 `("DTK_PROGRAM" ":" prefix (,espeak)))
6268 #t))))
6269 #:tests? #f)) ; no check target
6270 (inputs
6271 `(("emacs" ,emacs)
6272 ("espeak" ,espeak)
6273 ("perl" ,perl)
6274 ("tcl" ,tcl)
6275 ("tclx" ,tclx)))
6276 (home-page "http://emacspeak.sourceforge.net")
6277 (synopsis "Audio desktop interface for Emacs")
6278 (description
6279 "Emacspeak is a speech interface that allows visually impaired users to
6280 interact independently and efficiently with the computer. Audio formatting
6281 --a technique pioneered by AsTeR-- and full support for W3C's Aural CSS (ACSS)
6282 allows Emacspeak to produce rich aural presentations of electronic information.
6283 By seamlessly blending all aspects of the Internet such as Web-surfing and
6284 messaging, Emacspeak speech-enables local and remote information via a
6285 consistent and well-integrated user interface.")
6286 (license license:gpl2+)))
6287
6288 (define-public emacs-adaptive-wrap
6289 (package
6290 (name "emacs-adaptive-wrap")
6291 (version "0.5.1")
6292 (source (origin
6293 (method url-fetch)
6294 (uri (string-append
6295 "http://elpa.gnu.org/packages/adaptive-wrap-"
6296 version ".el"))
6297 (sha256
6298 (base32
6299 "0qi7gjprcpywk2daivnlavwsx53hl5wcqvpxbwinvigg42vxh3ll"))))
6300 (build-system emacs-build-system)
6301 (home-page "http://elpa.gnu.org/packages/adaptive-wrap.html")
6302 (synopsis "Smart line-wrapping with wrap-prefix")
6303 (description
6304 "This Emacs package provides the @code{adaptive-wrap-prefix-mode}
6305 minor mode which sets the wrap-prefix property on the fly so that
6306 single-long-line paragraphs get word-wrapped in a way similar to what
6307 you'd get with @kbd{M-q} using @code{adaptive-fill-mode}, but without
6308 actually changing the buffer's text.")
6309 (license license:gpl3+)))
6310
6311 (define-public emacs-diff-hl
6312 (package
6313 (name "emacs-diff-hl")
6314 (version "1.8.5")
6315 (source
6316 (origin
6317 (method url-fetch)
6318 (uri (string-append "https://elpa.gnu.org/packages/diff-hl-"
6319 version ".tar"))
6320 (sha256
6321 (base32
6322 "1vxc7z7c2qs0mx7l5sa4sybi5qbzv0s79flj74p1ynw8dl3qxg3d"))))
6323 (build-system emacs-build-system)
6324 (home-page "https://github.com/dgutov/diff-hl")
6325 (synopsis
6326 "Highlight uncommitted changes using VC")
6327 (description
6328 "@code{diff-hl-mode} highlights uncommitted changes on the side of the
6329 window (using the fringe, by default), allows you to jump between
6330 the hunks and revert them selectively.")
6331 (license license:gpl3+)))
6332
6333 (define-public emacs-diminish
6334 (package
6335 (name "emacs-diminish")
6336 (version "0.45")
6337 (source
6338 (origin
6339 (method url-fetch)
6340 (uri (string-append
6341 "https://github.com/myrjola/diminish.el/archive/v"
6342 version ".tar.gz"))
6343 (file-name (string-append name "-" version ".tar.gz"))
6344 (sha256
6345 (base32
6346 "0i3629sv5cfrrb00hcnmaqzgs8mk36yasc1ax3ry1ga09nr6rkj9"))))
6347 (build-system emacs-build-system)
6348 (home-page "https://github.com/myrjola/diminish.el")
6349 (synopsis "Diminish minor modes with no modeline display")
6350 (description "@code{emacs-diminish} implements hiding or
6351 abbreviation of the mode line displays (lighters) of minor modes.")
6352 (license license:gpl2+)))
6353
6354 (define-public emacs-use-package
6355 (let ((commit "da8c9e2840343906e732f9699e43d35a1f06481d")
6356 (revision "1"))
6357 (package
6358 (name "emacs-use-package")
6359 (version (git-version "2.3" revision commit))
6360 (source (origin
6361 (method git-fetch)
6362 (uri (git-reference
6363 (url "https://github.com/jwiegley/use-package")
6364 (commit commit)))
6365 (file-name (git-file-name name version))
6366 (sha256
6367 (base32
6368 "0jz38pbq1p9h85i6qcsh3sfzkd103y6mw3rg5zd14dxigp8ir3xz"))))
6369 (build-system emacs-build-system)
6370 (propagated-inputs
6371 `(("emacs-diminish" ,emacs-diminish)))
6372 (arguments
6373 `(#:tests? #t
6374 #:test-command '("emacs" "--batch"
6375 "-l" "use-package-tests.el"
6376 "-f" "ert-run-tests-batch-and-exit")))
6377 (home-page "https://github.com/jwiegley/use-package")
6378 (synopsis "Declaration for simplifying your .emacs")
6379 (description "The use-package macro allows you to isolate package
6380 configuration in your @file{.emacs} file in a way that is both
6381 performance-oriented and tidy.")
6382 (license license:gpl2+))))
6383
6384 (define-public emacs-strace-mode
6385 (let* ((commit "6a69b4b06db6797af56f33eda5cb28af94e59f11")
6386 (revision "1"))
6387 (package
6388 (name "emacs-strace-mode")
6389 (version (string-append "0.0.2-" revision "." (string-take commit 7)))
6390 (source (origin
6391 (method git-fetch)
6392 (uri (git-reference
6393 (url "https://github.com/pkmoore/strace-mode")
6394 (commit commit)))
6395 (file-name (string-append name "-" version "-checkout"))
6396 (sha256
6397 (base32
6398 "1lbk2kzdznf2bkfazizfbimaxxzfzv00lrz1ran9dc2zqbc0bj9f"))))
6399 (build-system emacs-build-system)
6400 (home-page "https://github.com/pkmoore/strace-mode")
6401 (synopsis "Emacs major mode to highlight strace outputs")
6402 (description "@code{emacs-strace-mode} provides an Emacs major mode
6403 highlighting strace outputs.")
6404 (license license:gpl3+))))
6405
6406 (define-public emacs-default-encrypt
6407 (package
6408 (name "emacs-default-encrypt")
6409 (version "4.3")
6410 (source
6411 (origin
6412 (method url-fetch)
6413 (uri (string-append
6414 "https://www.informationelle-selbstbestimmung-im-internet.de"
6415 "/emacs/jl-encrypt" version "/jl-encrypt.el"))
6416 (file-name (string-append "jl-encrypt-" version ".el"))
6417 (sha256
6418 (base32
6419 "16i3rlfp3jxlqvndn8idylhmczync3gwmy8a019v29vyr48rnnr0"))))
6420 (build-system emacs-build-system)
6421 (home-page "https://www.informationelle-selbstbestimmung-im-internet.de/Emacs.html")
6422 (synopsis "Automatically encrypt or sign Gnus messages in Emacs")
6423 (description
6424 "DefaultEncrypt is designed to be used with Gnus in Emacs. It
6425 automatically encrypts messages that you send (e.g., email) when public keys
6426 for all recipients are available, and it protects you from accidentally
6427 sending un-encrypted messages. It can also be configured to automatically
6428 sign messages that you send. For details and instructions on how to use
6429 DefaultEncrypt, please refer to the home page or read the comments in the
6430 source file, @file{jl-encrypt.el}.")
6431 (license license:gpl3+)))
6432
6433 (define-public emacs-htmlize
6434 (package
6435 (name "emacs-htmlize")
6436 (version "1.53")
6437 (source
6438 (origin
6439 (method url-fetch)
6440 (uri (string-append
6441 "https://github.com/hniksic/emacs-htmlize/archive/release/"
6442 version ".tar.gz"))
6443 (file-name (string-append name "-" version ".tar.gz"))
6444 (sha256
6445 (base32
6446 "1lzaf9m1qr9dhw4nn53g6wszk2vqw95gpsbrc3y85bams4cn24ga"))))
6447 (build-system emacs-build-system)
6448 (home-page "https://github.com/hniksic/emacs-htmlize")
6449 (synopsis "Convert buffer text and decorations to HTML")
6450 (description "@code{emacs-htmlize} converts the buffer text and
6451 the associated decorations to HTML. Output to CSS, inline CSS and
6452 fonts is supported.")
6453 (license license:gpl2+)))
6454
6455 (define-public emacs-xmlgen
6456 (package
6457 (name "emacs-xmlgen")
6458 (version "0.5")
6459 (source
6460 (origin
6461 (method url-fetch)
6462 (uri (string-append
6463 "https://github.com/philjackson/xmlgen/archive/"
6464 version ".tar.gz"))
6465 (file-name (string-append name "-" version ".tar.gz"))
6466 (sha256
6467 (base32
6468 "0zay490vjby3f7455r0vydmjg7q1gwc78hilpfb0rg4gwz224z8r"))))
6469 (build-system emacs-build-system)
6470 (arguments
6471 `(#:tests? #t
6472 #:test-command '("emacs" "--batch"
6473 "-l" "xmlgen-test.el"
6474 "-f" "ert-run-tests-batch-and-exit")))
6475 (home-page "https://github.com/philjackson/xmlgen")
6476 (synopsis "S-expression to XML domain specific language (DSL) in
6477 Emacs Lisp")
6478 (description "@code{emacs-xmlgen} provides S-expression to XML
6479 conversion for Emacs Lisp.")
6480 (license license:gpl2+)))
6481
6482 (define-public emacs-cdlatex
6483 (package
6484 (name "emacs-cdlatex")
6485 (version "4.7")
6486 (source
6487 (origin
6488 (method url-fetch)
6489 (uri (string-append
6490 "https://github.com/cdominik/cdlatex/archive/"
6491 version ".tar.gz"))
6492 (file-name (string-append name "-" version ".tar.gz"))
6493 (sha256
6494 (base32
6495 "0pivapphmykc6vhvpx7hdyl55ls37vc4jcrxpvs4yk7jzcmwa9xp"))))
6496 (build-system emacs-build-system)
6497 (propagated-inputs
6498 `(("emacs-auctex" ,emacs-auctex)))
6499 (home-page "https://github.com/cdominik/cdlatex")
6500 (synopsis "Fast Emacs input methods for LaTeX environments and
6501 math")
6502 (description "CDLaTeX is an Emacs minor mode supporting fast
6503 insertion of environment templates and math in LaTeX. Similar
6504 commands are also offered as part of the AUCTeX package, but it is not
6505 the same - CDLaTeX focuses on speediness for inserting LaTeX
6506 constructs.")
6507 (license license:gpl3+)))
6508
6509 (define-public emacs-cnfonts
6510 (package
6511 (name "emacs-cnfonts")
6512 (version "0.9.1")
6513 (source (origin
6514 (method url-fetch)
6515 (uri (string-append
6516 "https://github.com/tumashu/cnfonts/archive/v"
6517 version ".tar.gz"))
6518 (file-name (string-append name "-" version ".tar.gz"))
6519 (sha256
6520 (base32
6521 "1l6cgcvc6md1zq97ccczankpyi0k4vjx6apflny6kjq3p33lyhf4"))))
6522 (build-system emacs-build-system)
6523 (home-page "https://github.com/tumashu/cnfonts")
6524 (synopsis "Emacs Chinese fonts setup tool")
6525 (description "cnfonts is a Chinese fonts setup tool, allowing for easy
6526 configuration of Chinese fonts.")
6527 (license license:gpl2+)))
6528
6529 (define-public emacs-php-mode
6530 (package
6531 (name "emacs-php-mode")
6532 (version "20171225.342")
6533 (source (origin
6534 (method url-fetch)
6535 (uri (string-append
6536 "https://melpa.org/packages/php-mode-"
6537 version ".tar"))
6538 (sha256
6539 (base32
6540 "1zz682f34v4wsm2dyj1gnrnvsrqdq1cy7j8p6cvc398w2fziyg3q"))))
6541 (build-system emacs-build-system)
6542 (home-page "https://github.com/ejmr/php-mode")
6543 (synopsis "Major mode for editing PHP code")
6544 (description "@code{php-mode} is a major mode for editing PHP source
6545 code. It's an extension of C mode; thus it inherits all C mode's navigation
6546 functionality. But it colors according to the PHP grammar and indents
6547 according to the PEAR coding guidelines. It also includes a couple handy
6548 IDE-type features such as documentation search and a source and class
6549 browser.")
6550 (license license:gpl3+)))
6551
6552 (define-public emacs-pos-tip
6553 (package
6554 (name "emacs-pos-tip")
6555 (version "0.4.6")
6556 (source (origin
6557 (method url-fetch)
6558 (uri (string-append
6559 "https://github.com/pitkali/pos-tip/archive/"
6560 version ".tar.gz"))
6561 (file-name (string-append name "-" version ".tar.gz"))
6562 (sha256
6563 (base32
6564 "12jqfy26vjk7lq0aa8yn8zqj8c85fkvx7y9prj0pcn4wqiz2ad2r"))))
6565 (build-system emacs-build-system)
6566 ;; The following functions and variables needed by emacs-pos-tip are
6567 ;; not included in emacs-minimal:
6568 ;; x-display-pixel-width, x-display-pixel-height, x-show-tip
6569 (arguments `(#:emacs ,emacs))
6570 (home-page "https://github.com/pitkali/pos-tip")
6571 (synopsis "Show tooltip at point")
6572 (description "The standard library tooltip.el provides a function for
6573 displaying a tooltip at the mouse position. However, locating a tooltip at an
6574 arbitrary buffer position in a window is not easy. Pos-tip provides such a
6575 function to be used by other frontend programs.")
6576 (license license:gpl2+)))
6577
6578 (define-public emacs-pyim-basedict
6579 (package
6580 (name "emacs-pyim-basedict")
6581 (version "0.3.1")
6582 (source (origin
6583 (method url-fetch)
6584 (uri (string-append
6585 "https://github.com/tumashu/pyim-basedict/archive/v"
6586 version ".tar.gz"))
6587 (file-name (string-append name "-" version ".tar.gz"))
6588 (sha256
6589 (base32
6590 "0nfgxviavkgrpyfsw60xsws4fk51fcmgl8fp6zf4ibqjjbp53n3n"))))
6591 (build-system emacs-build-system)
6592 (home-page "https://github.com/tumashu/pyim-basedict")
6593 (synopsis "Input method dictionary of pyim")
6594 (description "Pyim-basedict is the default pinyin input method dictionary,
6595 containing words from the rime project.")
6596 (license license:gpl2+)))
6597
6598 (define-public emacs-pyim
6599 (package
6600 (name "emacs-pyim")
6601 (version "1.8")
6602 (source
6603 (origin
6604 (method git-fetch)
6605 (uri (git-reference
6606 (url "https://github.com/tumashu/pyim")
6607 (commit (string-append "v" version))))
6608 (file-name (git-file-name name version))
6609 (sha256
6610 (base32
6611 "16rma4cv7xgky0g3x4an27v30jdi6i1sqw43cl99zhkqvp43l3f9"))))
6612 (build-system emacs-build-system)
6613 (propagated-inputs
6614 `(("emacs-async" ,emacs-async)
6615 ("emacs-pyim-basedict" ,emacs-pyim-basedict)
6616 ("emacs-popup" ,emacs-popup)
6617 ("emacs-posframe" ,emacs-posframe)))
6618 (home-page "https://github.com/tumashu/pyim")
6619 (synopsis "Chinese input method")
6620 (description "Chinese input method which supports quanpin, shuangpin, wubi
6621 and cangjie.")
6622 (license license:gpl2+)))
6623
6624 (define-public emacs-posframe
6625 (package
6626 (name "emacs-posframe")
6627 (version "0.4.2")
6628 (source
6629 (origin
6630 (method url-fetch)
6631 (uri (string-append
6632 "https://elpa.gnu.org/packages/posframe-" version ".el"))
6633 (sha256
6634 (base32
6635 "1h8vvxvsg41vc1nnglqjs2q0k1yzfsn72skga9s76qa3zxmx6kds"))))
6636 (build-system emacs-build-system)
6637 ;; emacs-minimal does not include the function font-info
6638 (arguments `(#:emacs ,emacs))
6639 (home-page "https://github.com/tumashu/posframe")
6640 (synopsis "Pop a posframe (a child frame) at point")
6641 (description "@code{emacs-posframe} can pop a posframe at point. A
6642 posframe is a child frame displayed within its root window's buffer.
6643 @code{emacs-posframe} is fast and works well with CJK languages.")
6644 (license license:gpl3+)))
6645
6646 (define-public emacs-el2org
6647 (package
6648 (name "emacs-el2org")
6649 (version "0.6.0")
6650 (source (origin
6651 (method url-fetch)
6652 (uri (string-append
6653 "https://github.com/tumashu/el2org/archive/v"
6654 version ".tar.gz"))
6655 (file-name (string-append name "-" version ".tar.gz"))
6656 (sha256
6657 (base32
6658 "0gd3km1swwvg2w0kdi7370f54wgrflxn63gjgssfjc1iyc9sbqwq"))))
6659 (build-system emacs-build-system)
6660 (home-page "https://github.com/tumashu/el2org")
6661 (synopsis "Convert Emacs-lisp file to org file")
6662 (description "El2org is a simple tool, which can convert Emacs-lisp file
6663 to org file, you can use this tool to write orgify commentary.")
6664 (license license:gpl2+)))
6665
6666 (define-public emacs-mustache
6667 (package
6668 (name "emacs-mustache")
6669 (version "0.23")
6670 (source (origin
6671 (method url-fetch)
6672 (uri (string-append
6673 "https://github.com/Wilfred/mustache.el/archive/"
6674 version ".tar.gz"))
6675 (file-name (string-append name "-" version ".tar.gz"))
6676 (sha256
6677 (base32
6678 "0k9lcgil7kykkv1ylrgwy1g13ldjjmgi2cwmysgyb2vlj3jbwpdj"))))
6679 (build-system emacs-build-system)
6680 (propagated-inputs
6681 `(("emacs-dash" ,emacs-dash)
6682 ("emacs-ht" ,emacs-ht)
6683 ("emacs-s" ,emacs-s)))
6684 (home-page "https://github.com/Wilfred/mustache.el")
6685 (synopsis "Mustache templating library for Emacs")
6686 (description "Mustache templating library for Emacs, mustache is
6687 a simple web template system, which is described as a logic-less system
6688 because it lacks any explicit control flow statements, both looping and
6689 conditional evaluation can be achieved using section tags processing lists
6690 and lambdas.")
6691 (license license:gpl3+)))
6692
6693 (define-public emacs-org2web
6694 (package
6695 (name "emacs-org2web")
6696 (version "0.9.1")
6697 (source (origin
6698 (method url-fetch)
6699 (uri (string-append
6700 "https://github.com/tumashu/org2web/archive/v"
6701 version ".tar.gz"))
6702 (file-name (string-append name "-" version ".tar.gz"))
6703 (sha256
6704 (base32
6705 "1c0ixcphlhp4c4qdiwq40bc3yp1gp1llp8pxrk4s7ny9n68s52zp"))))
6706 (build-system emacs-build-system)
6707 (propagated-inputs
6708 `(("emacs-dash" ,emacs-dash)
6709 ("emacs-el2org" ,emacs-el2org)
6710 ("emacs-ht" ,emacs-ht)
6711 ("emacs-mustache" ,emacs-mustache)
6712 ("emacs-simple-httpd" ,emacs-simple-httpd)))
6713 (home-page "https://github.com/tumashu/org2web")
6714 (synopsis "Static site generator based on org-mode ")
6715 (description "Org2web is a static site generator based on org-mode,
6716 which code derived from Kelvin H's org-page.")
6717 (license license:gpl2+)))
6718
6719 (define-public emacs-xelb
6720 (package
6721 (name "emacs-xelb")
6722 (version "0.16")
6723 (source (origin
6724 (method url-fetch)
6725 (uri (string-append "https://elpa.gnu.org/packages/xelb-"
6726 version ".tar"))
6727 (sha256
6728 (base32
6729 "03wsr1jr7f7zfd80h864rd4makwh4widdnj1kjv2xyjwdgap9rl8"))))
6730 (build-system emacs-build-system)
6731 ;; The following functions and variables needed by emacs-xelb are
6732 ;; not included in emacs-minimal:
6733 ;; x-display-screens, x-keysym-table, x-alt-keysym, x-meta-keysym
6734 ;; x-hyper-keysym, x-super-keysym, libxml-parse-xml-region
6735 ;; x-display-pixel-width, x-display-pixel-height
6736 (arguments
6737 `(#:emacs ,emacs
6738 #:phases
6739 (modify-phases %standard-phases
6740 (add-after 'unpack 'regenerate-el-files
6741 (lambda* (#:key inputs #:allow-other-keys)
6742 (invoke "make"
6743 (string-append "PROTO_PATH="
6744 (assoc-ref inputs "xcb-proto")
6745 "/share/xcb")
6746 (string-append "EMACS_BIN="
6747 (assoc-ref inputs "emacs")
6748 "/bin/emacs -Q")))))))
6749 (native-inputs `(("xcb-proto" ,xcb-proto)))
6750 (home-page "https://github.com/ch11ng/xelb")
6751 (synopsis "X protocol Emacs Lisp binding")
6752 (description "@code{emacs-xelb} is a pure Emacs Lisp implementation of the
6753 X11 protocol based on the XML description files from the XCB project. It
6754 features an object-oriented API and permits a certain degree of concurrency.
6755 It should enable you to implement low-level X11 applications.")
6756 (license license:gpl3+)))
6757
6758 (define-public emacs-exwm
6759 (package
6760 (name "emacs-exwm")
6761 (version "0.21")
6762 (synopsis "Emacs X window manager")
6763 (source (origin
6764 (method url-fetch)
6765 (uri (string-append "https://elpa.gnu.org/packages/exwm-"
6766 version ".tar"))
6767 (sha256
6768 (base32
6769 "07ng1pgsnc3isfsyzh2gfc7391p9il8lb5xqf1z6yqn20w7k6xzj"))))
6770 (build-system emacs-build-system)
6771 (propagated-inputs
6772 `(("emacs-xelb" ,emacs-xelb)))
6773 (inputs
6774 `(("xhost" ,xhost)
6775 ("dbus" ,dbus)))
6776 ;; The following functions and variables needed by emacs-exwm are
6777 ;; not included in emacs-minimal:
6778 ;; scroll-bar-mode, fringe-mode
6779 ;; x-display-pixel-width, x-display-pixel-height
6780 (arguments
6781 `(#:emacs ,emacs
6782 #:phases
6783 (modify-phases %standard-phases
6784 (add-after 'build 'install-xsession
6785 (lambda* (#:key inputs outputs #:allow-other-keys)
6786 (let* ((out (assoc-ref outputs "out"))
6787 (xsessions (string-append out "/share/xsessions"))
6788 (bin (string-append out "/bin"))
6789 (exwm-executable (string-append bin "/exwm")))
6790 ;; Add a .desktop file to xsessions
6791 (mkdir-p xsessions)
6792 (mkdir-p bin)
6793 (with-output-to-file
6794 (string-append xsessions "/exwm.desktop")
6795 (lambda _
6796 (format #t "[Desktop Entry]~@
6797 Name=~a~@
6798 Comment=~a~@
6799 Exec=~a~@
6800 TryExec=~@*~a~@
6801 Type=Application~%" ,name ,synopsis exwm-executable)))
6802 ;; Add a shell wrapper to bin
6803 (with-output-to-file exwm-executable
6804 (lambda _
6805 (format #t "#!~a ~@
6806 ~a +SI:localuser:$USER ~@
6807 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
6808 (string-append (assoc-ref inputs "bash") "/bin/sh")
6809 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
6810 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
6811 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
6812 '(cond
6813 ((file-exists-p "~/.exwm")
6814 (load-file "~/.exwm"))
6815 ((not (featurep 'exwm))
6816 (require 'exwm)
6817 (require 'exwm-config)
6818 (exwm-config-default)
6819 (message (concat "exwm configuration not found. "
6820 "Falling back to default configuration...")))))))
6821 (chmod exwm-executable #o555)
6822 #t))))))
6823 (home-page "https://github.com/ch11ng/exwm")
6824 (description "EXWM is a full-featured tiling X window manager for Emacs
6825 built on top of XELB.")
6826 (license license:gpl3+)))
6827
6828 (define-public emacs-switch-window
6829 (package
6830 (name "emacs-switch-window")
6831 (version "1.6.2")
6832 (source
6833 (origin
6834 (method git-fetch)
6835 (uri (git-reference
6836 (url "https://github.com/dimitri/switch-window")
6837 (commit (string-append "v" version))))
6838 (file-name (git-file-name name version))
6839 (sha256
6840 (base32
6841 "0rci96asgamr6qp6nkyr5vwrnslswjxcjd96yccy4aivh0g66yfg"))))
6842 (build-system emacs-build-system)
6843 (home-page "https://github.com/dimitri/switch-window")
6844 (synopsis "Emacs window switch tool")
6845 (description "Switch-window is an emacs window switch tool, which
6846 offer a visual way to choose a window to switch to, delete, split or
6847 other operations.")
6848 (license license:wtfpl2)))
6849
6850 (define-public emacs-exwm-x
6851 (package
6852 (name "emacs-exwm-x")
6853 (version "1.9.0")
6854 (synopsis "Derivative window manager based on EXWM")
6855 (source
6856 (origin
6857 (method git-fetch)
6858 (uri (git-reference
6859 (url "https://github.com/tumashu/exwm-x")
6860 (commit (string-append "v" version))))
6861 (file-name (git-file-name name version))
6862 (sha256
6863 (base32
6864 "03l3dl7s1qys1kkh40rm1sfx7axy1b8sf5f6nyksj9ps6d30p5i4"))))
6865 (build-system emacs-build-system)
6866 (propagated-inputs
6867 `(("emacs-exwm" ,emacs-exwm)
6868 ("emacs-switch-window" ,emacs-switch-window)
6869 ("emacs-ivy" ,emacs-ivy)
6870 ("emacs-use-package" ,emacs-use-package)))
6871 (inputs
6872 `(("xhost" ,xhost)
6873 ("dbus" ,dbus)))
6874 ;; Need emacs instead of emacs-minimal,
6875 ;; for emacs's bin path will be inserted into bin/exwm-x file.
6876 (arguments
6877 `(#:emacs ,emacs
6878 #:phases
6879 (modify-phases %standard-phases
6880 (add-after 'build 'install-xsession
6881 (lambda* (#:key inputs outputs #:allow-other-keys)
6882 (let* ((out (assoc-ref outputs "out"))
6883 (xsessions (string-append out "/share/xsessions"))
6884 (bin (string-append out "/bin"))
6885 (exwm-executable (string-append bin "/exwm-x")))
6886 ;; Add a .desktop file to xsessions
6887 (mkdir-p xsessions)
6888 (mkdir-p bin)
6889 (with-output-to-file
6890 (string-append xsessions "/exwm-x.desktop")
6891 (lambda _
6892 (format #t "[Desktop Entry]~@
6893 Name=~a~@
6894 Comment=~a~@
6895 Exec=~a~@
6896 TryExec=~@*~a~@
6897 Type=Application~%" ,name ,synopsis exwm-executable)))
6898 ;; Add a shell wrapper to bin
6899 (with-output-to-file exwm-executable
6900 (lambda _
6901 (format #t "#!~a ~@
6902 ~a +SI:localuser:$USER ~@
6903 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
6904 (string-append (assoc-ref inputs "bash") "/bin/sh")
6905 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
6906 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
6907 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
6908 '(require 'exwmx-loader))))
6909 (chmod exwm-executable #o555)
6910 #t))))))
6911 (home-page "https://github.com/tumashu/exwm-x")
6912 (description "EXWM-X is a derivative window manager based on EXWM, with focus
6913 on mouse-control.")
6914 (license license:gpl3+)))
6915
6916 (define-public emacs-gnuplot
6917 (package
6918 (name "emacs-gnuplot")
6919 (version "0.7.0")
6920 (source
6921 (origin
6922 (method url-fetch)
6923 (uri (string-append
6924 "https://github.com/bruceravel/gnuplot-mode/archive/"
6925 version ".tar.gz"))
6926 (file-name (string-append name "-" version ".tar.gz"))
6927 (sha256
6928 (base32
6929 "0glzymrn138lwig7p4cj17x4if5jisr6l4g6wcbxisqkqgc1h01i"))))
6930 (build-system gnu-build-system)
6931 (native-inputs `(("emacs" ,emacs-minimal)))
6932 (arguments
6933 (let ((elisp-dir (string-append "/share/emacs/site-lisp/guix.d"
6934 "/gnuplot-" version)))
6935 `(#:modules ((guix build gnu-build-system)
6936 (guix build utils)
6937 (guix build emacs-utils))
6938 #:imported-modules (,@%gnu-build-system-modules
6939 (guix build emacs-utils))
6940 #:configure-flags
6941 (list (string-append "EMACS=" (assoc-ref %build-inputs "emacs")
6942 "/bin/emacs")
6943 (string-append "--with-lispdir=" %output ,elisp-dir))
6944 #:phases
6945 (modify-phases %standard-phases
6946 (add-after 'install 'generate-autoloads
6947 (lambda* (#:key outputs #:allow-other-keys)
6948 (emacs-generate-autoloads
6949 "gnuplot"
6950 (string-append (assoc-ref outputs "out") ,elisp-dir))
6951 #t))))))
6952 (home-page "https://github.com/bruceravel/gnuplot-mode")
6953 (synopsis "Emacs major mode for interacting with gnuplot")
6954 (description "@code{emacs-gnuplot} is an emacs major mode for interacting
6955 with gnuplot.")
6956 (license license:gpl2+)))
6957
6958 (define-public emacs-transpose-frame
6959 (package
6960 (name "emacs-transpose-frame")
6961 (version "0.1.0")
6962 (source
6963 (origin
6964 (method url-fetch)
6965 (uri "http://www.emacswiki.org/emacs/download/transpose-frame.el")
6966 (file-name (string-append "transpose-frame-" version ".el"))
6967 (sha256
6968 (base32
6969 "1f67yksgw9s6j0033hmqzaxx2a93jm11sd5ys7cc3li5gfh680m4"))))
6970 (build-system emacs-build-system)
6971 (home-page "https://www.emacswiki.org/emacs/TransposeFrame")
6972 (synopsis "Transpose window arrangement in current frame")
6973 (description "@code{emacs-transpose-frame} provides some interactive
6974 functions which allows users to transpose windows arrangement in currently
6975 selected frame.")
6976 (license license:bsd-2)))
6977
6978 (define-public emacs-key-chord
6979 (package
6980 (name "emacs-key-chord")
6981 (version "0.6")
6982 (source
6983 (origin
6984 (method url-fetch)
6985 (uri "https://www.emacswiki.org/emacs/download/key-chord.el")
6986 (file-name (string-append "key-chord-" version ".el"))
6987 (sha256
6988 (base32
6989 "03m44pqggfrd53nh9dvpdjgm0rvca34qxmd30hr33hzprzjambxg"))))
6990 (build-system emacs-build-system)
6991 (home-page "https://www.emacswiki.org/emacs/key-chord.el")
6992 (synopsis "Map pairs of simultaneously pressed keys to Emacs commands")
6993 (description "@code{emacs-key-chord} provides @code{key-chord-mode}, a
6994 mode for binding key chords to commands. A key chord is defined as two keys
6995 pressed simultaneously or a single key quickly pressed twice.")
6996 (license license:gpl2+)))
6997
6998 (define-public emacs-evil-surround
6999 (package
7000 (name "emacs-evil-surround")
7001 (version "1.0.0")
7002 (source
7003 (origin
7004 (method url-fetch)
7005 (uri (string-append
7006 "https://github.com/timcharper/evil-surround/archive/v"
7007 version ".tar.gz"))
7008 (file-name (string-append name "-" version ".tar.gz"))
7009 (sha256
7010 (base32
7011 "0p572jgic3q1ia1nz37kclir729ay6i2f4sa7wnaapyxly2lwb3r"))))
7012 (build-system emacs-build-system)
7013 (propagated-inputs
7014 `(("emacs-evil" ,emacs-evil)))
7015 (home-page "https://github.com/timcharper/evil-surround")
7016 (synopsis "Easily modify surrounding parantheses and quotes")
7017 (description "@code{emacs-evil-surround} allows easy deletion, change and
7018 addition of surrounding pairs, such as parantheses and quotes, in evil mode.")
7019 (license license:gpl3+)))
7020
7021 (define-public emacs-evil-commentary
7022 (package
7023 (name "emacs-evil-commentary")
7024 (version "2.1.1")
7025 (source
7026 (origin
7027 (method url-fetch)
7028 (uri (string-append
7029 "https://github.com/linktohack/evil-commentary/archive/v"
7030 version ".tar.gz"))
7031 (file-name (string-append name "-" version ".tar.gz"))
7032 (sha256
7033 (base32
7034 "1jdya0i921nwskwrzdsj0vrr3m7gm49dy6f6pk9p5nxaarfxk230"))))
7035 (build-system emacs-build-system)
7036 (propagated-inputs
7037 `(("emacs-evil" ,emacs-evil)))
7038 (home-page "https://github.com/linktohack/evil-commentary")
7039 (synopsis "Comment out code in evil mode")
7040 (description "@code{emacs-evil-commentary} adds keybindings to easily
7041 comment out lines of code in evil mode. It provides @code{gcc} to comment out
7042 lines, and @code{gc} to comment out the target of a motion.")
7043 (license license:gpl3+)))
7044
7045 ;; Tests for emacs-ansi have a circular dependency with ert-runner, and
7046 ;; therefore cannot be run
7047 (define-public emacs-ansi
7048 (package
7049 (name "emacs-ansi")
7050 (version "0.4.1")
7051 (source
7052 (origin
7053 (method url-fetch)
7054 (uri (string-append "https://github.com/rejeep/ansi.el/archive/v"
7055 version ".tar.gz"))
7056 (file-name (string-append name "-" version ".tar.gz"))
7057 (sha256
7058 (base32
7059 "13jj4vbi98j3p17hs99bmy7g21jd5h4v3wpxk4pkvhylm3bfwjw8"))))
7060 (build-system emacs-build-system)
7061 (propagated-inputs
7062 `(("emacs-dash" ,emacs-dash)
7063 ("emacs-s" ,emacs-s)))
7064 (home-page "https://github.com/rejeep/ansi.el")
7065 (synopsis "Convert strings to ANSI")
7066 (description "@code{emacs-ansi} defines functions that turns simple
7067 strings to ANSI strings. Turning a string into an ANSI string can be to add
7068 color to a text, add color in the background of a text or adding a style, such
7069 as bold, underscore or italic.")
7070 (license license:gpl3+)))
7071
7072 ;; Tests for emacs-commander have a circular dependency with ert-runner, and
7073 ;; therefore cannot be run
7074 (define-public emacs-commander
7075 (package
7076 (name "emacs-commander")
7077 (version "0.7.0")
7078 (source
7079 (origin
7080 (method url-fetch)
7081 (uri (string-append "https://github.com/rejeep/commander.el/archive/v"
7082 version ".tar.gz"))
7083 (file-name (string-append name "-" version ".tar.gz"))
7084 (sha256
7085 (base32
7086 "196s2i15z7gwxa97l1wkxvjnfmj5n38wwm6d3g4zz15l2vqggc2y"))))
7087 (build-system emacs-build-system)
7088 (propagated-inputs
7089 `(("emacs-dash" ,emacs-dash)
7090 ("emacs-f" ,emacs-f)
7091 ("emacs-s" ,emacs-s)))
7092 (home-page "https://github.com/rejeep/commander.el")
7093 (synopsis "Emacs command line parser")
7094 (description "@code{emacs-commander} provides command line parsing for
7095 Emacs.")
7096 (license license:gpl3+)))
7097
7098 ;; Tests for ert-runner have a circular dependency with ecukes, and therefore
7099 ;; cannot be run
7100 (define-public emacs-ert-runner
7101 (package
7102 (name "emacs-ert-runner")
7103 (version "0.7.0")
7104 (source
7105 (origin
7106 (method url-fetch)
7107 (uri (string-append "https://github.com/rejeep/ert-runner.el/archive/v"
7108 version ".tar.gz"))
7109 (file-name (string-append name "-" version ".tar.gz"))
7110 (sha256
7111 (base32
7112 "1657nck9i96a4xgl8crfqq0s8gflzp21pkkzwg6m3z5npjxklgwp"))))
7113 (build-system emacs-build-system)
7114 (inputs
7115 `(("emacs-ansi" ,emacs-ansi)
7116 ("emacs-commander" ,emacs-commander)
7117 ("emacs-dash" ,emacs-dash)
7118 ("emacs-f" ,emacs-f)
7119 ("emacs-s" ,emacs-s)
7120 ("emacs-shut-up" ,emacs-shut-up)))
7121 (arguments
7122 `(#:phases
7123 (modify-phases %standard-phases
7124 (add-after 'install 'install-executable
7125 (lambda* (#:key inputs outputs #:allow-other-keys)
7126 (let ((out (assoc-ref outputs "out")))
7127 (substitute* "bin/ert-runner"
7128 (("ERT_RUNNER=\"\\$\\(dirname \\$\\(dirname \\$0\\)\\)")
7129 (string-append "ERT_RUNNER=\"" out
7130 "/share/emacs/site-lisp/guix.d/ert-runner-"
7131 ,version)))
7132 (install-file "bin/ert-runner" (string-append out "/bin"))
7133 (wrap-program (string-append out "/bin/ert-runner")
7134 (list "EMACSLOADPATH" ":" 'prefix
7135 (string-split (getenv "EMACSLOADPATH") #\:)))
7136 #t))))
7137 #:include (cons* "^reporters/.*\\.el$" %default-include)))
7138 (home-page "https://github.com/rejeep/ert-runner.el")
7139 (synopsis "Opinionated Ert testing workflow")
7140 (description "@code{ert-runner} is a tool for Emacs projects tested
7141 using ERT. It assumes a certain test structure setup and can therefore make
7142 running tests easier.")
7143 (license license:gpl3+)))
7144
7145 (define-public ert-runner
7146 (deprecated-package "ert-runner" emacs-ert-runner))
7147
7148 (define-public emacs-disable-mouse
7149 (package
7150 (name "emacs-disable-mouse")
7151 (version "0.2")
7152 (source
7153 (origin
7154 (method url-fetch)
7155 (uri (string-append
7156 "https://github.com/purcell/disable-mouse/archive/"
7157 version ".tar.gz"))
7158 (file-name (string-append name "-" version ".tar.gz"))
7159 (sha256
7160 (base32
7161 "0haqpq23r1wx04lsqrrg3p5visg9hx5i36dg55ab003wfsrlrzbc"))))
7162 (build-system emacs-build-system)
7163 (home-page "https://github.com/purcell/disable-mouse")
7164 (synopsis "Disable mouse commands globally")
7165 (description
7166 "Provides @code{disable-mouse-mode} and @code{global-disable-mouse-mode},
7167 pair of minor modes which suppress all mouse events by intercepting them and
7168 running a customisable handler command (@code{ignore} by default). ")
7169 (license license:gpl3+)))
7170
7171 (define-public emacs-json-reformat
7172 (package
7173 (name "emacs-json-reformat")
7174 (version "0.0.6")
7175 (source
7176 (origin
7177 (method url-fetch)
7178 (uri (string-append "https://github.com/gongo/json-reformat/archive/"
7179 version ".tar.gz"))
7180 (file-name (string-append name "-" version ".tar.gz"))
7181 (sha256
7182 (base32
7183 "11fbq4scrgr7m0iwnzcrn2g7xvqwm2gf82sa7zy1l0nil7265p28"))
7184 (patches (search-patches "emacs-json-reformat-fix-tests.patch"))))
7185 (build-system emacs-build-system)
7186 (propagated-inputs
7187 `(("emacs-undercover" ,emacs-undercover)))
7188 (native-inputs
7189 `(("emacs-dash" ,emacs-dash)
7190 ("emacs-shut-up" ,emacs-shut-up)
7191 ("ert-runner" ,emacs-ert-runner)))
7192 (arguments
7193 `(#:tests? #t
7194 #:test-command '("ert-runner")))
7195 (home-page "https://github.com/gongo/json-reformat")
7196 (synopsis "Reformatting tool for JSON")
7197 (description "@code{json-reformat} provides a reformatting tool for
7198 @url{http://json.org/, JSON}.")
7199 (license license:gpl3+)))
7200
7201 (define-public emacs-json-snatcher
7202 (package
7203 (name "emacs-json-snatcher")
7204 (version "1.0.0")
7205 (source
7206 (origin
7207 (method url-fetch)
7208 (uri (string-append "https://github.com/Sterlingg/json-snatcher/archive/"
7209 version ".tar.gz"))
7210 (file-name (string-append name "-" version ".tar.gz"))
7211 (sha256
7212 (base32
7213 "1nfiwsifpdiz0lbrqa77nl0crnfrv5h85ans9b0g5rggnmyshcfb"))))
7214 (build-system emacs-build-system)
7215 (home-page "https://github.com/sterlingg/json-snatcher")
7216 (synopsis "Grabs the path to JSON values in a JSON file")
7217 (description "@code{emacs-json-snatcher} grabs the path to JSON values in
7218 a @url{http://json.org/, JSON} file.")
7219 (license license:gpl3+)))
7220
7221 (define-public emacs-json-mode
7222 (package
7223 (name "emacs-json-mode")
7224 (version "1.7.0")
7225 (source
7226 (origin
7227 (method url-fetch)
7228 (uri (string-append "https://github.com/joshwnj/json-mode/archive/"
7229 "v" version ".tar.gz"))
7230 (file-name (string-append name "-" version ".tar.gz"))
7231 (sha256
7232 (base32
7233 "06h45p4cn767pk9sqi2zb1c65wy5gyyijqxzpglp80zwxhvajdz5"))))
7234 (build-system emacs-build-system)
7235 (propagated-inputs
7236 `(("emacs-json-reformat" ,emacs-json-reformat)
7237 ("emacs-json-snatcher" ,emacs-json-snatcher)))
7238 (home-page "https://github.com/joshwnj/json-mode")
7239 (synopsis "Major mode for editing JSON files")
7240 (description "@code{json-mode} extends the builtin js-mode syntax
7241 highlighting.")
7242 (license license:gpl3+)))
7243
7244 (define-public emacs-restclient
7245 (let ((commit "07a3888bb36d0e29608142ebe743b4362b800f40")
7246 (revision "1")) ;Guix package revision,
7247 ;upstream doesn't have official releases
7248 (package
7249 (name "emacs-restclient")
7250 (version (string-append revision "."
7251 (string-take commit 7)))
7252 (source (origin
7253 (method git-fetch)
7254 (uri (git-reference
7255 (url "https://github.com/pashky/restclient.el.git")
7256 (commit commit)))
7257 (sha256
7258 (base32
7259 "00lmjhb5im1kgrp54yipf1h9pshxzgjlg71yf2rq5n973gvb0w0q"))
7260 (file-name (git-file-name name version))))
7261 (build-system emacs-build-system)
7262 (propagated-inputs
7263 `(("emacs-helm" ,emacs-helm)))
7264 (home-page "https://github.com/pashky/restclient.el")
7265 (synopsis "Explore and test HTTP REST webservices")
7266 (description
7267 "This tool allows for testing and exploration of HTTP REST Web services
7268 from within Emacs. Restclient runs queries from a plan-text query sheet,
7269 displays results pretty-printed in XML or JSON with @code{restclient-mode}")
7270 (license license:public-domain))))
7271
7272 (define-public emacs-eimp
7273 (let ((version "1.4.0")
7274 (commit "2e7536fe6d8f7faf1bad7a8ae37faba0162c3b4f")
7275 (revision "1"))
7276 (package
7277 (name "emacs-eimp")
7278 (version (git-version version revision commit))
7279 (source
7280 (origin
7281 (method git-fetch)
7282 (uri (git-reference
7283 (url "https://github.com/nicferrier/eimp.git")
7284 (commit commit)))
7285 (file-name (git-file-name name version))
7286 (sha256
7287 (base32
7288 "154d57yafxbcf39r89n5j43c86rp2fki3lw3gwy7ww2g6qkclcra"))))
7289 (build-system emacs-build-system)
7290 (arguments
7291 `(#:phases
7292 (modify-phases %standard-phases
7293 (add-after 'unpack 'configure
7294 (lambda* (#:key inputs #:allow-other-keys)
7295 (let ((imagemagick (assoc-ref inputs "imagemagick")))
7296 ;; eimp.el is read-only in git.
7297 (chmod "eimp.el" #o644)
7298 (emacs-substitute-variables "eimp.el"
7299 ("eimp-mogrify-program"
7300 (string-append imagemagick "/bin/mogrify"))))
7301 #t)))))
7302 (inputs
7303 `(("imagemagick" ,imagemagick)))
7304 (home-page "https://github.com/nicferrier/eimp")
7305 (synopsis "Interactive image manipulation utility for Emacs")
7306 (description "@code{emacs-eimp} allows interactive image manipulation
7307 from within Emacs. It uses the code@{mogrify} utility from ImageMagick to do
7308 the actual transformations.")
7309 (license license:gpl2+))))
7310
7311 (define-public emacs-dired-hacks
7312 (let ((commit "eda68006ce73bbf6b9b995bfd70d08bec8cade36")
7313 (revision "1"))
7314 (package
7315 (name "emacs-dired-hacks")
7316 (version (string-append "0.0.1-" revision "."
7317 (string-take commit 7)))
7318 (source (origin
7319 (method git-fetch)
7320 (uri (git-reference
7321 (url "https://github.com/Fuco1/dired-hacks.git")
7322 (commit commit)))
7323 (file-name (string-append name "-" version "-checkout"))
7324 (sha256
7325 (base32
7326 "1w7ssl9zssn5rcha6apf4h8drkd02k4xgvs203bdbqyqp9wz9brx"))))
7327 (build-system emacs-build-system)
7328 (propagated-inputs
7329 `(("emacs-dash" ,emacs-dash)
7330 ("emacs-eimp" ,emacs-eimp)
7331 ("emacs-f" ,emacs-f)
7332 ("emacs-s" ,emacs-s)))
7333 (home-page "https://github.com/Fuco1/dired-hacks")
7334 (synopsis
7335 "Collection of useful dired additions")
7336 (description
7337 "Collection of Emacs dired mode additions:
7338 @itemize
7339 @item dired-avfs
7340 @item dired-columns
7341 @item dired-filter
7342 @item dired-hacks-utils
7343 @item dired-images
7344 @item dired-list
7345 @item dired-narrow
7346 @item dired-open
7347 @item dired-rainbow
7348 @item dired-ranger
7349 @item dired-subtree
7350 @item dired-tagsistant
7351 @end itemize\n")
7352 (license license:gpl3+))))
7353
7354 (define-public emacs-dired-sidebar
7355 (let ((commit "06bd0d40bab812c61a668129daf29ba359424454")
7356 (revision "0"))
7357 (package
7358 (name "emacs-dired-sidebar")
7359 (home-page "https://github.com/jojojames/dired-sidebar")
7360 (version (git-version "0.0.1" revision commit))
7361 (source (origin
7362 (method git-fetch)
7363 (uri (git-reference (url home-page) (commit commit)))
7364 (sha256
7365 (base32
7366 "0lvwvq6sl80sha9fq5m4568sg534dhmifyjqw75bqddcbf3by84x"))))
7367 (build-system emacs-build-system)
7368 (propagated-inputs
7369 `(("emacs-dired-subtree" ,emacs-dired-hacks)))
7370 (synopsis "Sidebar for Emacs using Dired")
7371 (description
7372 "This package provides a sidebar for Emacs similar to @code{NeoTree}
7373 or @code{treemacs}, but leveraging @code{Dired} to do the job of display.")
7374 (license license:gpl3+))))
7375
7376 (define-public emacs-which-key
7377 (package
7378 (name "emacs-which-key")
7379 (version "3.3.0")
7380 (source
7381 (origin
7382 (method url-fetch)
7383 (uri (string-append
7384 "https://github.com/justbur/emacs-which-key/archive/v"
7385 version ".tar.gz"))
7386 (sha256
7387 (base32
7388 "1lsj314111cp2hjjwnv3f46ws1za6bm39rgy3l19044xf6a68j5w"))
7389 (file-name (string-append name "-" version ".tar.gz"))))
7390 (build-system emacs-build-system)
7391 (arguments
7392 `(#:tests? #t
7393 #:test-command '("emacs" "--batch"
7394 "-l" "which-key-tests.el"
7395 "-f" "ert-run-tests-batch-and-exit")))
7396 (home-page "https://github.com/justbur/emacs-which-key")
7397 (synopsis "Display available key bindings in popup")
7398 (description
7399 "@code{emacs-which-key} is a minor mode for Emacs that displays the key
7400 bindings following your currently entered incomplete command (a prefix) in a
7401 popup. For example, after enabling the minor mode if you enter C-x and wait
7402 for the default of 1 second, the minibuffer will expand with all of the
7403 available key bindings that follow C-x (or as many as space allows given your
7404 settings).")
7405 (license license:gpl3+)))
7406
7407 (define-public emacs-ws-butler
7408 (package
7409 (name "emacs-ws-butler")
7410 (version "0.6")
7411 (source (origin
7412 (method git-fetch)
7413 (uri (git-reference
7414 (url "https://github.com/lewang/ws-butler.git")
7415 (commit "323b651dd70ee40a25accc940b8f80c3a3185205")))
7416 (file-name (string-append name "-" version "-checkout"))
7417 (sha256
7418 (base32
7419 "1a4b0lsmwq84qfx51c5xy4fryhb1ysld4fhgw2vr37izf53379sb"))))
7420 (build-system emacs-build-system)
7421 (native-inputs
7422 `(("ert-runner" ,emacs-ert-runner)))
7423 (arguments
7424 `(#:tests? #t
7425 #:test-command '("ert-runner" "tests")))
7426 (home-page "https://github.com/lewang/ws-butler")
7427 (synopsis "Trim spaces from end of lines")
7428 (description
7429 "This Emacs package automatically and unobtrusively trims whitespace
7430 characters from end of lines.")
7431 (license license:gpl3+)))
7432
7433 (define-public emacs-org-edit-latex
7434 (package
7435 (name "emacs-org-edit-latex")
7436 (version "0.8.0")
7437 (source
7438 (origin
7439 (method url-fetch)
7440 (uri (string-append
7441 "https://github.com/et2010/org-edit-latex/archive/v"
7442 version ".tar.gz"))
7443 (file-name (string-append name "-" version ".tar.gz"))
7444 (sha256
7445 (base32
7446 "1y4h6wrs8286h9pbsv4d8fr67a885vz8b2k80qgv5qddipi2i78p"))))
7447 (build-system emacs-build-system)
7448 (propagated-inputs
7449 `(("emacs-auctex" ,emacs-auctex)
7450 ;; The version of org in Emacs 25.2 is not sufficient, because the
7451 ;; `org-latex-make-preamble' function is required.
7452 ("emacs-org" ,emacs-org)))
7453 (home-page "https://github.com/et2010/org-edit-latex")
7454 (synopsis "Edit a latex fragment just like editing a src block")
7455 (description "@code{emacs-org-edit-latex} is an extension for org-mode.
7456 It lets you edit a latex fragment in a dedicated buffer just like editing a
7457 src block.")
7458 (license license:gpl3+)))
7459
7460 (define-public emacs-emamux
7461 (package
7462 (name "emacs-emamux")
7463 (version "0.14")
7464 (source (origin
7465 (method url-fetch)
7466 (uri (string-append
7467 "https://github.com/syohex/emacs-emamux/archive/"
7468 version ".tar.gz"))
7469 (file-name (string-append name "-" version ".tar.gz"))
7470 (sha256
7471 (base32
7472 "0wlqg4icy037bj70b0qmhvwvmiwhagpnx6pnxhq6gzy1hvwlilkx"))))
7473 (build-system emacs-build-system)
7474 (home-page "https://github.com/syohex/emacs-emamux")
7475 (synopsis "Manipulate Tmux from Emacs")
7476 (description
7477 "@code{emacs-emamux} lets Emacs interact with the @code{tmux} terminal
7478 multiplexer.")
7479 (license license:gpl3+)))
7480
7481 (define-public emacs-rpm-spec-mode
7482 (package
7483 (name "emacs-rpm-spec-mode")
7484 (version "0.16")
7485 (source
7486 (origin
7487 (method url-fetch)
7488 ;; URI has the Fedora release number instead of the version
7489 ;; number. This will have to updated manually every new release.
7490 (uri (string-append
7491 "https://src.fedoraproject.org/cgit/rpms"
7492 "/emacs-rpm-spec-mode.git/snapshot"
7493 "/emacs-rpm-spec-mode-f26.tar.gz"))
7494 (sha256
7495 (base32
7496 "17dz80lhjrc89fj17pysl8slahzrqdkxgcjdk55zls6jizkr6kz3"))))
7497 (build-system emacs-build-system)
7498 (home-page "http://pkgs.fedoraproject.org/cgit/rpms/emacs-rpm-spec-mode.git")
7499 (synopsis "Emacs major mode for editing RPM spec files")
7500 (description "@code{emacs-rpm-spec-mode} provides an Emacs major mode for
7501 editing RPM spec files.")
7502 (license license:gpl2+)))
7503
7504 (define-public emacs-git-messenger
7505 (package
7506 (name "emacs-git-messenger")
7507 (version "0.18")
7508 (source
7509 (origin
7510 (method url-fetch)
7511 (uri (string-append
7512 "https://github.com/syohex/emacs-git-messenger/archive/"
7513 version ".tar.gz"))
7514 (file-name (string-append name "-" version ".tar.gz"))
7515 (sha256
7516 (base32
7517 "17mqki6g0wx46fn7dcbcc2pjxik7vvrcb1j9jzxim8b9psbsbnp9"))))
7518 (build-system emacs-build-system)
7519 (propagated-inputs
7520 `(("emacs-popup" ,emacs-popup)))
7521 (arguments
7522 `(#:tests? #t
7523 #:test-command '("emacs" "--batch" "-l" "test/test.el"
7524 "-f" "ert-run-tests-batch-and-exit")))
7525 (home-page "https://github.com/syohex/emacs-git-messenger")
7526 (synopsis "Popup commit message at current line")
7527 (description "@code{emacs-git-messenger} provides
7528 @code{git-messenger:popup-message}, a function that when called, will popup
7529 the last git commit message for the current line. This uses git-blame
7530 internally.")
7531 (license license:gpl3+)))
7532
7533 (define-public emacs-gitpatch
7534 (package
7535 (name "emacs-gitpatch")
7536 (version "0.5.0")
7537 (source
7538 (origin
7539 (method url-fetch)
7540 (uri (string-append "https://github.com/tumashu/gitpatch/archive/"
7541 "v" version ".tar.gz"))
7542 (file-name (string-append name "-" version ".tar.gz"))
7543 (sha256
7544 (base32
7545 "1yj6pmic541lcnscjin300k380qp9xdfprs55xg1q57jrkq6f6k7"))))
7546 (build-system emacs-build-system)
7547 (home-page "https://github.com/tumashu/gitpatch")
7548 (synopsis "Mail git patch from Emacs")
7549 (description "@code{emacs-gitpatch} lets users easily send git patches,
7550 created by @code{git format-patch}, from @code{magit}, @code{dired} and
7551 @code{ibuffer} buffers.")
7552 (license license:gpl3+)))
7553
7554 (define-public emacs-erc-hl-nicks
7555 (package
7556 (name "emacs-erc-hl-nicks")
7557 (version "1.3.3")
7558 (source
7559 (origin
7560 (method url-fetch)
7561 (uri (string-append "https://github.com/leathekd/erc-hl-nicks"
7562 "/archive/" version ".tar.gz"))
7563 (file-name (string-append name "-" version ".tar.gz"))
7564 (sha256
7565 (base32
7566 "1a1r2kc3688g8c2ybkpwh88kgmnqhg3h3032g2yn4zr9m0n3vpkr"))))
7567 (build-system emacs-build-system)
7568 (synopsis "Nickname highlighting for Emacs ERC")
7569 (description "@code{erc-hl-nicks} highlights nicknames in ERC, an IRC
7570 client for Emacs. The main features are:
7571 @itemize
7572 @item Auto-colorizes nicknames without having to specify colors
7573 @item Ignores certain characters that IRC clients add to nicknames to avoid
7574 duplicates (nickname, nickname’, nickname\", etc.)
7575 @item Attempts to produce colors with a sufficient amount of contrast between
7576 the nick color and the background color
7577 @end itemize\n")
7578 (home-page "https://github.com/leathekd/erc-hl-nicks")
7579 (license license:gpl3+)))
7580
7581 (define-public emacs-engine-mode
7582 (package
7583 (name "emacs-engine-mode")
7584 (version "2.0.0")
7585 (source
7586 (origin
7587 (method url-fetch)
7588 (uri (string-append "https://github.com/hrs/engine-mode/archive/"
7589 "v" version ".tar.gz"))
7590 (file-name (string-append name "-" version ".tar.gz"))
7591 (sha256
7592 (base32
7593 "1vm4p7pcp1vnwwxvps1bhm7i7hkabqqxl898knxf2hqvxys76684"))))
7594 (build-system emacs-build-system)
7595 (synopsis "Minor mode for defining and querying search engines")
7596 (description "@code{engine-mode} is a global minor mode for Emacs. It
7597 enables you to easily define search engines, bind them to keybindings, and
7598 query them from the comfort of your editor.")
7599 (home-page "https://github.com/hrs/engine-mode")
7600 (license license:gpl3+)))
7601
7602 (define-public emacs-prop-menu
7603 (package
7604 (name "emacs-prop-menu")
7605 (version "0.1.2")
7606 (source
7607 (origin
7608 (method url-fetch)
7609 (uri (string-append
7610 "http://stable.melpa.org/packages/prop-menu-"
7611 version ".el"))
7612 (sha256
7613 (base32
7614 "01bk4sjafzz7gqrkv9jg0pa85qr34vbk3q8ga2b0m61bndywzgpr"))))
7615 (build-system emacs-build-system)
7616 (home-page
7617 "https://github.com/david-christiansen/prop-menu-el")
7618 (synopsis
7619 "Create and display a context menu based on text and overlay properties")
7620 (description
7621 "This is a library for computing context menus based on text
7622 properties and overlays. The intended use is to have tools that
7623 annotate source code and others that use these annotations, without
7624 requiring a direct coupling between them, but maintaining
7625 discoverability.
7626
7627 Major modes that wish to use this library should first define an
7628 appropriate value for @code{prop-menu-item-functions}. Then, they should
7629 bind @code{prop-menu-by-completing-read} to an appropriate
7630 key. Optionally, a mouse pop-up can be added by binding
7631 @code{prop-menu-show-menu} to a mouse event.")
7632 (license license:gpl3+)))
7633
7634 (define-public emacs-idris-mode
7635 (package
7636 (name "emacs-idris-mode")
7637 (version "0.9.19")
7638 (source
7639 (origin
7640 (method url-fetch)
7641 (uri (string-append
7642 "http://stable.melpa.org/packages/idris-mode-"
7643 version ".tar"))
7644 (sha256
7645 (base32
7646 "02r1qqsxi6qk7q4cj6a6pygbj856dcw9vcmhfh0ib92j41v77q6y"))))
7647 (build-system emacs-build-system)
7648 (propagated-inputs
7649 `(("emacs-prop-menu" ,emacs-prop-menu)))
7650 (home-page
7651 "https://github.com/idris-hackers/idris-mode")
7652 (synopsis "Major mode for editing Idris code")
7653 (description
7654 "This is an Emacs mode for editing Idris code. It requires the latest
7655 version of Idris, and some features may rely on the latest Git version of
7656 Idris.")
7657 (license license:gpl3+)))
7658
7659 (define-public emacs-browse-at-remote
7660 (package
7661 (name "emacs-browse-at-remote")
7662 (version "0.10.0")
7663 (source
7664 (origin
7665 (method url-fetch)
7666 (uri (string-append
7667 "https://github.com/rmuslimov/browse-at-remote/archive/"
7668 version ".tar.gz"))
7669 (file-name (string-append name "-" version ".tar.gz"))
7670 (sha256
7671 (base32
7672 "0ymslsp6i1naw25zckv25bf4aaq6qwkbkn95qyzlwg869l802686"))))
7673 (build-system emacs-build-system)
7674 (propagated-inputs
7675 `(("emacs-f" ,emacs-f)
7676 ("emacs-s" ,emacs-s)))
7677 (native-inputs
7678 `(("ert-runner" ,emacs-ert-runner)))
7679 (arguments
7680 `(#:tests? #t
7681 #:test-command '("ert-runner")))
7682 (home-page "https://github.com/rmuslimov/browse-at-remote")
7683 (synopsis "Open github/gitlab/bitbucket/stash page from Emacs")
7684 (description
7685 "This Emacs package allows you to open a target page on
7686 github/gitlab (or bitbucket) by calling @code{browse-at-remote} command.
7687 It supports dired buffers and opens them in tree mode at destination.")
7688 (license license:gpl3+)))
7689
7690 (define-public emacs-tiny
7691 (package
7692 (name "emacs-tiny")
7693 (version "0.2.1")
7694 (source
7695 (origin
7696 (method url-fetch)
7697 (uri (string-append "http://elpa.gnu.org/packages/tiny-" version ".tar"))
7698 (sha256
7699 (base32
7700 "1cr73a8gba549ja55x0c2s554f3zywf69zbnd7v82jz5q1k9wd2v"))))
7701 (build-system emacs-build-system)
7702 (home-page "https://github.com/abo-abo/tiny")
7703 (synopsis "Quickly generate linear ranges in Emacs")
7704 (description
7705 "The main command of the @code{tiny} extension for Emacs is @code{tiny-expand}.
7706 It is meant to quickly generate linear ranges, e.g. 5, 6, 7, 8. Some elisp
7707 proficiency is an advantage, since you can transform your numeric range with
7708 an elisp expression.")
7709 (license license:gpl3+)))
7710
7711 (define-public emacs-emojify
7712 (package
7713 (name "emacs-emojify")
7714 (version "0.4")
7715 (source
7716 (origin
7717 (method url-fetch)
7718 (uri (string-append "https://github.com/iqbalansari/emacs-emojify/"
7719 "releases/download/v" version "/emojify-"
7720 version ".tar"))
7721 (sha256
7722 (base32
7723 "0k84v2d2bkiwcky9fi1yyprgkj46g7wh6pyl9gzmcd7sqv051d5n"))))
7724 (build-system emacs-build-system)
7725 (arguments
7726 `(#:phases
7727 (modify-phases %standard-phases
7728 (add-after 'install 'install-data
7729 (lambda* (#:key outputs #:allow-other-keys)
7730 (copy-recursively "data"
7731 (string-append (assoc-ref outputs "out")
7732 "/share/emacs/site-lisp/guix.d/"
7733 "emojify-" ,version "/data"))
7734 #t)))))
7735 (propagated-inputs
7736 `(("emacs-ht" ,emacs-ht)))
7737 (home-page "https://github.com/iqbalansari/emacs-emojify")
7738 (synopsis "Display emojis in Emacs")
7739 (description "This package displays emojis in Emacs similar to how Github,
7740 Slack, and other websites do. It can display plain ASCII like @code{:)} as
7741 well as Github-style emojis like @code{:smile:}. It provides a minor mode
7742 @code{emojify-mode} to enable the display of emojis in a buffer.")
7743 (license license:gpl3+)))
7744
7745 (define-public emacs-websocket
7746 (package
7747 (name "emacs-websocket")
7748 (version "1.10")
7749 (source
7750 (origin
7751 (method git-fetch)
7752 (uri (git-reference
7753 (url "https://github.com/ahyatt/emacs-websocket.git")
7754 (commit version)))
7755 (file-name (string-append name "-" version "-checkout"))
7756 (sha256
7757 (base32
7758 "1dgrf7na6r6mmkknphzshlbd5fnzisg0qn0j7vfpa38wgsymaq52"))))
7759 (build-system emacs-build-system)
7760 (home-page "http://elpa.gnu.org/packages/websocket.html")
7761 (synopsis "Emacs WebSocket client and server")
7762 (description "This is an Elisp library for WebSocket clients to talk to
7763 WebSocket servers, and for WebSocket servers to accept connections from
7764 WebSocket clients. This library is designed to be used by other library
7765 writers, to write applications that use WebSockets, and is not useful by
7766 itself.")
7767 (license license:gpl3+)))
7768
7769 (define-public emacs-oauth2
7770 (package
7771 (name "emacs-oauth2")
7772 (version "0.11")
7773 (source
7774 (origin
7775 (method url-fetch)
7776 (uri (string-append "https://elpa.gnu.org/packages/oauth2-"
7777 version ".el"))
7778 (sha256
7779 (base32
7780 "0ydkc9jazsnbbvfhd47mql52y7k06n3z7r0naqxkwb99j9blqsmp"))))
7781 (build-system emacs-build-system)
7782 (home-page "http://elpa.gnu.org/packages/oauth2.html")
7783 (synopsis "OAuth 2.0 authorization protocol implementation")
7784 (description
7785 "This package provides an Elisp implementation of the OAuth 2.0 draft.
7786 The main entry point is @code{oauth2-auth-and-store} which will return a token
7787 structure. This token structure can be then used with
7788 @code{oauth2-url-retrieve-synchronously} or @code{oauth2-url-retrieve} to
7789 retrieve any data that need OAuth authentication to be accessed. If the token
7790 needs to be refreshed, the code handles it automatically and stores the new
7791 value of the access token.")
7792 (license license:gpl3+)))
7793
7794 (define-public emacs-circe
7795 (package
7796 (name "emacs-circe")
7797 (version "2.10")
7798 (source
7799 (origin
7800 (method git-fetch)
7801 (uri (git-reference
7802 (url "https://github.com/jorgenschaefer/circe.git")
7803 (commit (string-append "v" version))))
7804 (file-name (git-file-name name version))
7805 (sha256
7806 (base32
7807 "10gi14kwxd81blddpvqh95lgmpbfgp0m955naxix3bs3r6a75n4s"))))
7808 (build-system emacs-build-system)
7809 (arguments
7810 `(#:tests? #t
7811 #:test-command '("buttercup" "-L" ".")
7812 #:phases
7813 (modify-phases %standard-phases
7814 ;; The HOME environment variable should be set to an existing
7815 ;; directory for the tests to succeed.
7816 (add-before 'check 'set-home
7817 (lambda _
7818 (setenv "HOME" "/tmp")
7819 #t)))))
7820 (native-inputs
7821 `(("emacs-buttercup" ,emacs-buttercup)))
7822 ;; In order to securely connect to an IRC server using TLS, Circe requires
7823 ;; the GnuTLS binary.
7824 (propagated-inputs
7825 `(("gnutls" ,gnutls)))
7826 (home-page "https://github.com/jorgenschaefer/circe")
7827 (synopsis "Client for IRC in Emacs")
7828 (description "Circe is a Client for IRC in Emacs. It integrates well with
7829 the rest of the editor, using standard Emacs key bindings and indicating
7830 activity in channels in the status bar so it stays out of your way unless you
7831 want to use it.")
7832 (license license:gpl3+)))
7833
7834 (define-public emacs-tracking
7835 (package
7836 (inherit emacs-circe)
7837 (name "emacs-tracking")
7838 (arguments
7839 ;; "tracking.el" is a library extracted from Circe package. It requires
7840 ;; "shorten.el".
7841 `(#:include '("^shorten.el$" "^tracking.el$")
7842 ,@(package-arguments emacs-circe)))
7843 (home-page "https://github.com/jorgenschaefer/circe/wiki/Tracking")
7844 (synopsis "Buffer tracking library")
7845 (description "@code{tracking.el} provides a way for different modes to
7846 notify the user that a buffer needs attention. The user then can cycle
7847 through them using @key{C-c C-SPC}.")
7848 (license license:gpl3+)))
7849
7850 (define-public emacs-slack
7851 (let ((commit "99a57501629a0329a9ca090c1ea1296462eda02d")
7852 (revision "5"))
7853 (package
7854 (name "emacs-slack")
7855 (version (git-version "0.0.2" revision commit))
7856 (source (origin
7857 (method git-fetch)
7858 (uri (git-reference
7859 (url "https://github.com/yuya373/emacs-slack.git")
7860 (commit commit)))
7861 (file-name (git-file-name name commit))
7862 (sha256
7863 (base32
7864 "0jw1diypfw8pmzkq0napgxmfc0gqka7zcccgnw359604lr30k2z2"))))
7865 (build-system emacs-build-system)
7866 (propagated-inputs
7867 `(("emacs-alert" ,emacs-alert)
7868 ("emacs-emojify" ,emacs-emojify)
7869 ("emacs-helm" ,emacs-helm)
7870 ("emacs-request" ,emacs-request)
7871 ("emacs-websocket" ,emacs-websocket)
7872 ("emacs-oauth2" ,emacs-oauth2)
7873 ("emacs-circe" ,emacs-circe)))
7874 (home-page "https://github.com/yuya373/emacs-slack")
7875 (synopsis "Slack client for Emacs")
7876 (description "This package provides an Emacs client for the Slack
7877 messaging service.")
7878 (license license:gpl3+))))
7879
7880 (define-public emacs-bash-completion
7881 (package
7882 (name "emacs-bash-completion")
7883 (version "2.1.0")
7884 (source
7885 (origin
7886 (method url-fetch)
7887 (uri (string-append
7888 "https://github.com/szermatt/emacs-bash-completion/archive/v"
7889 version ".tar.gz"))
7890 (file-name (string-append name "-" version ".tar.gz"))
7891 (sha256
7892 (base32
7893 "1z0qck3v3ra6ivacn8n04w1v33a4xn01xx860761q31qzsv3sksq"))))
7894 (inputs `(("bash" ,bash)))
7895 (build-system emacs-build-system)
7896 (arguments
7897 `(#:phases
7898 (modify-phases %standard-phases
7899 (add-before 'install 'configure
7900 (lambda* (#:key inputs #:allow-other-keys)
7901 (let ((bash (assoc-ref inputs "bash")))
7902 (emacs-substitute-variables "bash-completion.el"
7903 ("bash-completion-prog" (string-append bash "/bin/bash"))))
7904 #t)))))
7905 (home-page "https://github.com/szermatt/emacs-bash-completion")
7906 (synopsis "Bash completion for the shell buffer")
7907 (description
7908 "@code{bash-completion} defines dynamic completion hooks for shell-mode
7909 and shell-command prompts that are based on Bash completion.")
7910 (license license:gpl2+)))
7911
7912 (define-public emacs-easy-kill
7913 (package
7914 (name "emacs-easy-kill")
7915 (version "0.9.3")
7916 (source (origin
7917 (method url-fetch)
7918 (uri (string-append "https://elpa.gnu.org/packages/easy-kill-"
7919 version ".tar"))
7920 (sha256
7921 (base32
7922 "17nw0mglmg877axwg1d0gs03yc0p04lzmd3pl0nsnqbh3303fnqb"))))
7923 (build-system emacs-build-system)
7924 (home-page "https://github.com/leoliu/easy-kill")
7925 (synopsis "Kill and mark things easily in Emacs")
7926 (description
7927 "This package provides commands @code{easy-kill} and @code{easy-mark} to
7928 let users kill or mark things easily.")
7929 (license license:gpl3+)))
7930
7931 (define-public emacs-csv-mode
7932 (package
7933 (name "emacs-csv-mode")
7934 (version "1.7")
7935 (source
7936 (origin
7937 (method url-fetch)
7938 (uri (string-append "http://elpa.gnu.org/packages/csv-mode-"
7939 version ".el"))
7940 (sha256
7941 (base32
7942 "0r4bip0w3h55i8h6sxh06czf294mrhavybz0zypzrjw91m1bi7z6"))))
7943 (build-system emacs-build-system)
7944 (home-page
7945 "http://elpa.gnu.org/packages/csv-mode.html")
7946 (synopsis
7947 "Major mode for editing comma/char separated values")
7948 (description
7949 "This Emacs package implements CSV mode, a major mode for editing records
7950 in a generalized CSV (character-separated values) format.")
7951 (license license:gpl3+)))
7952
7953 (define-public emacs-transmission
7954 (package
7955 (name "emacs-transmission")
7956 (version "0.12.1")
7957 (source (origin
7958 (method url-fetch)
7959 (uri (string-append
7960 "https://github.com/holomorph/transmission/archive/"
7961 version ".tar.gz"))
7962 (file-name (string-append name "-" version ".tar.gz"))
7963 (sha256
7964 (base32
7965 "1rrlgn96gi1ljfwbwvlyyxbq75xzamlbdhq1bpyadxxmxcvlmk3n"))))
7966 (build-system emacs-build-system)
7967 (home-page "https://github.com/holomorph/transmission")
7968 (synopsis "Emacs interface to a Transmission session")
7969 (description "This package provides an Emacs interface to interact with a
7970 running session of the Transmission Bittorrent client.
7971
7972 Features:
7973
7974 @itemize
7975 @item List, add, start/stop, verify, remove torrents.
7976 @item Set speed limits, ratio limits, bandwidth priorities, trackers.
7977 @item Navigate to the corresponding file list, torrent info, peer info
7978 contexts.
7979 @item Toggle downloading and set priorities for individual files.
7980 @end itemize\n")
7981 (license license:gpl3+)))
7982
7983 (define-public emacs-polymode
7984 (package
7985 (name "emacs-polymode")
7986 (version "0.1.5")
7987 (source (origin
7988 (method git-fetch)
7989 (uri (git-reference
7990 (url "https://github.com/vspinu/polymode.git")
7991 (commit (string-append "v" version))))
7992 (file-name (git-file-name name version))
7993 (sha256
7994 (base32
7995 "0wwphs54jx48a3ca6x1qaz56j3j9bg4mv8g2akkffrzbdcb8sbc7"))))
7996 (build-system emacs-build-system)
7997 (arguments
7998 `(#:include (cons* "^modes/.*\\.el$" %default-include)
7999 #:phases
8000 (modify-phases %standard-phases
8001 (add-after 'set-emacs-load-path 'add-modes-subdir-to-load-path
8002 (lambda _
8003 (setenv "EMACSLOADPATH"
8004 (string-append (getenv "EMACSLOADPATH")
8005 ":" (getcwd) "/modes" ":")))))))
8006 (home-page "https://github.com/vspinu/polymode")
8007 (synopsis "Framework for multiple Emacs modes based on indirect buffers")
8008 (description "Polymode is an Emacs package that offers generic support
8009 for multiple major modes inside a single Emacs buffer. It is lightweight,
8010 object oriented and highly extensible. Creating a new polymode typically
8011 takes only a few lines of code. Polymode also provides extensible facilities
8012 for external literate programming tools for exporting, weaving and tangling.")
8013 (license license:gpl3+)))
8014
8015 (define-public emacs-polymode-ansible
8016 (let ((commit "b26094d029e25dc797b94254f797e7807a57e4c8"))
8017 (package
8018 (name "emacs-polymode-ansible")
8019 ;; No upstream version release yet.
8020 (version (git-version "0.1" "1" commit))
8021 (source
8022 (origin
8023 (method git-fetch)
8024 (uri (git-reference
8025 (url "https://gitlab.com/mavit/poly-ansible")
8026 (commit commit)))
8027 (file-name (git-file-name name version))
8028 (sha256
8029 (base32
8030 "055shddqibib3hx2ykwdz910nrqws40cd407mq946l2bf6v87gj6"))))
8031 (build-system emacs-build-system)
8032 (propagated-inputs
8033 `(("emacs-ansible-doc" ,emacs-ansible-doc)
8034 ("emacs-jinja2-mode" ,emacs-jinja2-mode)
8035 ("emacs-polymode" ,emacs-polymode)
8036 ("emacs-yaml-mode" ,emacs-yaml-mode)))
8037 (properties '((upstream-name . "poly-ansible")))
8038 (home-page "https://gitlab.com/mavit/poly-ansible/")
8039 (synopsis "Polymode for Ansible - Jinja2 in YAML")
8040 (description
8041 "Edit YAML files for Ansible containing embedded Jinja2 templating.")
8042 (license license:gpl3+))))
8043
8044 (define-public eless
8045 (package
8046 (name "eless")
8047 (version "0.3")
8048 (source (origin
8049 (method url-fetch)
8050 (uri (string-append
8051 "https://github.com/kaushalmodi/eless/archive/"
8052 "v" version ".tar.gz"))
8053 (file-name (string-append name "-" version ".tar.gz"))
8054 (sha256
8055 (base32
8056 "0gjnnhgw5xs1w3qfnkvwa2nv44gnxr8pkhx3c7qig45p8nh1461h"))))
8057 (build-system trivial-build-system)
8058 (inputs
8059 `(("bash" ,bash)))
8060 (native-inputs
8061 `(("tar" ,tar)
8062 ("gzip" ,gzip)))
8063 (arguments
8064 `(#:modules ((guix build utils))
8065 #:builder
8066 (begin
8067 (use-modules (guix build utils))
8068 (setenv "PATH" (string-append
8069 (assoc-ref %build-inputs "tar") "/bin" ":"
8070 (assoc-ref %build-inputs "gzip") "/bin"))
8071 (invoke "tar" "xvf" (assoc-ref %build-inputs "source"))
8072 (chdir (string-append "eless" "-" ,version))
8073 (substitute* "eless" (("/usr/bin/env bash")
8074 (string-append (assoc-ref %build-inputs "bash")
8075 "/bin/bash")))
8076 (install-file "eless" (string-append %output "/bin"))
8077 (install-file "doc/eless.info" (string-append %output "/share/info"))
8078 #t)))
8079 (home-page "https://github.com/kaushalmodi/eless")
8080 (synopsis "Use Emacs as a paginator")
8081 (description "@code{eless} provides a combination of Bash script
8082 and a minimal Emacs view-mode.
8083
8084 Feautures:
8085
8086 @itemize
8087 @item Independent of a user’s Emacs config.
8088 @item Customizable via the @code{(locate-user-emacs-file \"elesscfg\")} config.
8089 @item Not require an Emacs server to be already running.
8090 @item Syntax highlighting.
8091 @item Org-mode file rendering.
8092 @item @code{man} page viewer.
8093 @item Info viewer.
8094 @item Dired, wdired, (batch edit symbolic links).
8095 @item Colored diffs, git diff, git log, ls with auto ANSI detection.
8096 @item Filter log files lines matching a regexp.
8097 @item Auto-revert log files similar to @code{tail -f}.
8098 @item Quickly change frame and font sizes.
8099 @end itemize\n")
8100 (license license:expat)))
8101
8102 (define-public emacs-evil-matchit
8103 (package
8104 (name "emacs-evil-matchit")
8105 (version "2.2.6")
8106 (source
8107 (origin
8108 (method url-fetch)
8109 (uri (string-append
8110 "https://github.com/redguardtoo/evil-matchit/archive/"
8111 version ".tar.gz"))
8112 (file-name (string-append name "-" version ".tar.gz"))
8113 (sha256
8114 (base32
8115 "1yp9sl6542317mn1060ri90zyf6bs6qylagndhqy02p368q31rhi"))))
8116 (build-system emacs-build-system)
8117 (propagated-inputs
8118 `(("emacs-evil" ,emacs-evil)))
8119 (home-page "https://github.com/redguardtoo/evil-matchit")
8120 (synopsis "Vim matchit ported into Emacs")
8121 (description
8122 "@code{evil-matchit} is a minor mode for jumping between matching tags in
8123 evil mode using @kbd{%}. It is a port of @code{matchit} for Vim.")
8124 (license license:gpl3+)))
8125
8126 (define-public emacs-evil-smartparens
8127 (package
8128 (name "emacs-evil-smartparens")
8129 (version "0.4.0")
8130 (source
8131 (origin
8132 (method url-fetch)
8133 (uri (string-append
8134 "https://github.com/expez/evil-smartparens/archive/"
8135 version ".tar.gz"))
8136 (file-name (string-append name "-" version ".tar.gz"))
8137 (sha256
8138 (base32
8139 "1bwzdd3054d407d5j4m3njsbvmc9r8zzp33m32pj3b3irxrl68q0"))))
8140 (build-system emacs-build-system)
8141 (propagated-inputs
8142 `(("emacs-evil" ,emacs-evil)
8143 ("emacs-smartparens" ,emacs-smartparens)))
8144 (home-page "https://github.com/expez/evil-smartparens")
8145 (synopsis "Emacs Evil integration for Smartparens")
8146 (description "@code{emacs-evil-smartparens} is an Emacs minor mode which
8147 makes Evil play nice with Smartparens. Evil is an Emacs minor mode that
8148 emulates Vim features and provides Vim-like key bindings.")
8149 (license license:gpl3+)))
8150
8151 (define-public emacs-evil-quickscope
8152 (package
8153 (name "emacs-evil-quickscope")
8154 (version "0.1.4")
8155 (source
8156 (origin
8157 (method url-fetch)
8158 (uri (string-append "https://github.com/blorbx/evil-quickscope/archive/v"
8159 version ".tar.gz"))
8160 (file-name (string-append name "-" version ".tar.gz"))
8161 (sha256
8162 (base32
8163 "1r26a412mmar7vbf89zcifswiwpdg30mjzj32xdyqss57aqi83ma"))))
8164 (build-system emacs-build-system)
8165 (propagated-inputs
8166 `(("emacs-evil" ,emacs-evil)))
8167 (arguments
8168 `(#:tests? #t
8169 #:test-command '("emacs" "--batch"
8170 "-l" "evil-quickscope-tests.el"
8171 "-f" "ert-run-tests-batch-and-exit")))
8172 (home-page "https://github.com/blorbx/evil-quickscope")
8173 (synopsis "Target highlighting for emacs evil-mode f,F,t and T commands")
8174 (description "@code{emacs-evil-quickscope} highlights targets for Evil
8175 mode’s f,F,t,T keys, allowing for quick navigation within a line. It is a
8176 port of quick-scope for Vim. Evil is an Emacs minor mode that emulates Vim
8177 features and provides Vim-like key bindings.")
8178 (license license:gpl3+)))
8179
8180 (define-public emacs-bongo
8181 (package
8182 (name "emacs-bongo")
8183 (version "1.0")
8184 (source
8185 (origin
8186 (method url-fetch)
8187 (uri (string-append
8188 "https://github.com/dbrock/bongo/archive/"
8189 version ".tar.gz"))
8190 (file-name (string-append name "-" version ".tar.gz"))
8191 (sha256
8192 (base32
8193 "1pcsyyrvj7djjjwpaswd1i782hvqvlvs39cy9ns0k795si6xd64d"))))
8194 (build-system emacs-build-system)
8195 (home-page "https://github.com/dbrock/bongo")
8196 (synopsis "Media player for Emacs")
8197 (description
8198 "This package provides a flexible media player for Emacs. @code{Bongo}
8199 supports multiple backends such as @code{vlc}, @code{mpg123},
8200 @code{ogg123}, @code{speexdec}, @code{timidity}, @code{mikmod} and
8201 @code{afplay}.")
8202 (license license:gpl2+)))
8203
8204 (define-public emacs-groovy-modes
8205 (package
8206 (name "emacs-groovy-modes")
8207 (version "2.0")
8208 (source (origin
8209 (method url-fetch)
8210 (uri (string-append
8211 "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes"
8212 "/archive/" version ".tar.gz"))
8213 (file-name (string-append name "-" version ".tar.gz"))
8214 (sha256
8215 (base32
8216 "15j0hnkx9nppjzda5cqsxxz5f3bq9hc4xfyjcdypzqiypcvmpa39"))))
8217 (build-system emacs-build-system)
8218 (propagated-inputs
8219 `(("emacs-s" ,emacs-s)))
8220 (home-page "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
8221 (synopsis "Groovy related modes for Emacs")
8222 (description
8223 "This package provides @code{groovy-mode} for syntax highlighing in
8224 Groovy source files, REPL integration with run-groovy and Grails project
8225 navigation with the grails mode.")
8226 (license license:gpl3+)))
8227
8228 (define-public groovy-emacs-modes
8229 (deprecated-package "groovy-emacs-modes" emacs-groovy-modes))
8230
8231 (define-public emacs-org-tree-slide
8232 (let ((commit "dff8f1a4a64c8dd0a1fde0b0131e2fe186747134")
8233 (revision "0"))
8234 (package
8235 (name "emacs-org-tree-slide")
8236 (version (git-version "0.1" revision commit))
8237 (home-page "https://github.com/takaxp/org-tree-slide")
8238 (source (origin
8239 (method git-fetch)
8240 (uri (git-reference (url home-page) (commit commit)))
8241 (sha256
8242 (base32
8243 "153bg0x7ypla11pq51jmsgzfjklwwnrq56xgpbfhk1j16xwz9hyf"))
8244 (file-name (git-file-name name version))))
8245 (build-system emacs-build-system)
8246 (synopsis "Presentation tool for org-mode")
8247 (description
8248 "Org-tree-slide provides a slideshow mode to view org-mode files. Use
8249 @code{org-tree-slide-mode} to enter the slideshow mode, and then @kbd{C->} and
8250 @kbd{C-<} to jump to the next and previous slide.")
8251 (license license:gpl3+))))
8252
8253 (define-public emacs-scratch-el
8254 (let ((commit "2cdf2b841ce7a0987093f65b0cc431947549f897")
8255 (revision "1"))
8256 (package
8257 (name "emacs-scratch-el")
8258 (version (git-version "1.2" revision commit))
8259 (source (origin
8260 (method git-fetch)
8261 (uri (git-reference
8262 (url "https://github.com/ieure/scratch-el.git")
8263 (commit commit)))
8264 (file-name (git-file-name name version))
8265 (sha256
8266 (base32
8267 "0wscsndynjmnliajqaz28r1ww81j8wh84zwaaswx51abhwgl0idf"))))
8268 (build-system emacs-build-system)
8269 (native-inputs
8270 `(("texinfo" ,texinfo)))
8271 (arguments
8272 '(#:phases
8273 (modify-phases %standard-phases
8274 (add-after 'install 'install-doc
8275 (lambda* (#:key outputs #:allow-other-keys)
8276 (unless (invoke "makeinfo" "scratch.texi")
8277 (error "makeinfo failed"))
8278 (install-file "scratch.info"
8279 (string-append (assoc-ref outputs "out")
8280 "/share/info"))
8281 #t)))))
8282 (home-page "https://github.com/ieure/scratch-el/")
8283 (synopsis "Create scratch buffers with the same mode as current buffer")
8284 (description "Scratch is an extension to Emacs that enables one to create
8285 scratch buffers that are in the same mode as the current buffer. This is
8286 notably useful when working on code in some language; you may grab code into a
8287 scratch buffer, and, by virtue of this extension, do so using the Emacs
8288 formatting rules for that language.")
8289 (license license:bsd-2))))
8290
8291 (define-public emacs-kv
8292 (package
8293 (name "emacs-kv")
8294 (version "0.0.19")
8295 (source
8296 (origin
8297 (method git-fetch)
8298 (uri (git-reference
8299 (url "https://github.com/nicferrier/emacs-kv.git")
8300 (commit "721148475bce38a70e0b678ba8aa923652e8900e")))
8301 (file-name (string-append name "-" version "-checkout"))
8302 (sha256
8303 (base32
8304 "0r0lz2s6gvy04fwnafai668jsf4546h4k6zd6isx5wpk0n33pj5m"))))
8305 (build-system emacs-build-system)
8306 (arguments
8307 `(#:tests? #t
8308 #:test-command '("emacs" "--batch" "-l" "kv-tests.el"
8309 "-f" "ert-run-tests-batch-and-exit")))
8310 (home-page "https://github.com/nicferrier/emacs-kv")
8311 (synopsis "Key/Value data structures library for Emacs Lisp")
8312 (description "@code{emacs-kv} is a collection of tools for dealing with
8313 key/value data structures such as plists, alists and hash-tables in Emacs
8314 Lisp.")
8315 (license license:gpl3+)))
8316
8317 (define-public emacs-esxml
8318 (package
8319 (name "emacs-esxml")
8320 (version "0.3.4")
8321 (source (origin
8322 (method git-fetch)
8323 (uri (git-reference
8324 (url "https://github.com/tali713/esxml.git")
8325 (commit version)))
8326 (file-name (git-file-name name version))
8327 (sha256
8328 (base32
8329 "00vv8a75wdklygdyr4km9mc2ismxak69c45jmcny41xl44rp9x8m"))))
8330 (build-system emacs-build-system)
8331 (arguments
8332 `(#:phases
8333 (modify-phases %standard-phases
8334 (add-after 'unpack 'fix-sources
8335 (lambda _
8336 ;; See: https://github.com/tali713/esxml/pull/28.
8337 (substitute* "css-lite.el"
8338 ((";;; main interface")
8339 (string-append ";;; main interface\n"
8340 "(require 'cl-lib)"))
8341 (("mapcan")
8342 "cl-mapcan")
8343 (("',\\(cl-mapcan #'process-css-rule rules\\)")
8344 "(cl-mapcan #'process-css-rule ',rules)"))
8345 (substitute* "esxml-form.el"
8346 ((",esxml-form-field-defn")
8347 "#'esxml-form-field-defn"))
8348 ;; See: https://github.com/tali713/esxml/issues/25
8349 (delete-file "esxpath.el")
8350 #t)))))
8351 (propagated-inputs
8352 `(("emacs-kv" ,emacs-kv)))
8353 (home-page "https://github.com/tali713/esxml/")
8354 (synopsis "SXML for EmacsLisp")
8355 (description "This is XML/XHTML done with S-Expressions in EmacsLisp.
8356 Simply, this is the easiest way to write HTML or XML in Lisp. This library
8357 uses the native form of XML representation as used by many libraries already
8358 included within Emacs. See @code{esxml-to-xml} for a concise description of
8359 the format.")
8360 (license license:gpl3+)))
8361
8362 (define-public emacs-nov-el
8363 (package
8364 (name "emacs-nov-el")
8365 (version "0.2.6")
8366 (source (origin
8367 (method git-fetch)
8368 (uri (git-reference
8369 (url "https://github.com/wasamasa/nov.el.git")
8370 (commit version)))
8371 (file-name (git-file-name name version))
8372 (sha256
8373 (base32
8374 "188h5gzn1zf443g0b7q5bpmvvpr6ds5h8aci8vxc92py56rhyrvc"))))
8375 (build-system emacs-build-system)
8376 (arguments
8377 `(#:phases
8378 (modify-phases %standard-phases
8379 (add-after 'unpack 'embed-path-to-unzip
8380 (lambda _
8381 (substitute* "nov.el"
8382 (("\\(executable-find \"unzip\"\\)")
8383 (string-append "\"" (which "unzip") "\"")))
8384 #t)))))
8385 (propagated-inputs
8386 `(("emacs-dash" ,emacs-dash)
8387 ("emacs-esxml" ,emacs-esxml)))
8388 (inputs
8389 `(("unzip" ,unzip)))
8390 (home-page "https://github.com/wasamasa/nov.el/")
8391 (synopsis "Major mode for reading EPUBs in Emacs")
8392 (description "@code{nov.el} provides a major mode for reading EPUB
8393 documents.
8394
8395 Features:
8396
8397 @itemize
8398 @item Basic navigation (jump to TOC, previous/next chapter)
8399 @item Remembering and restoring the last read position
8400 @item Jump to next chapter when scrolling beyond end
8401 @item Renders EPUB2 (@code{.ncx}) and EPUB3 (@code{<nav>}) TOCs
8402 @item Hyperlinks to internal and external targets
8403 @item Supports textual and image documents
8404 @item View source of document files
8405 @item Metadata display
8406 @item Image rescaling
8407 @end itemize
8408 ")
8409 (license license:gpl3+)))
8410
8411 (define-public epipe
8412 (package
8413 (name "epipe")
8414 (version "0.1.0")
8415 (source
8416 (origin
8417 (method url-fetch)
8418 (uri (string-append "https://github.com/cute-jumper/epipe/archive/"
8419 version ".tar.gz"))
8420 (file-name (string-append name "-" version ".tar.gz"))
8421 (sha256
8422 (base32
8423 "05a036852g4j63k1mhvyfrcsgkl9lczayi7x61570ysw3cli5wp5"))))
8424 (build-system trivial-build-system)
8425 (inputs
8426 `(("bash" ,bash)
8427 ("perl" ,perl)))
8428 (native-inputs
8429 `(("tar" ,tar)
8430 ("gzip" ,gzip)))
8431 (arguments
8432 `(#:modules
8433 ((guix build utils))
8434 #:builder
8435 (begin
8436 (use-modules (guix build utils))
8437 ;; Extract source
8438 (setenv "PATH" (string-append
8439 (assoc-ref %build-inputs "tar") "/bin" ":"
8440 (assoc-ref %build-inputs "gzip") "/bin"))
8441 (invoke "tar" "xvf" (assoc-ref %build-inputs "source"))
8442 (chdir (string-append ,name "-" ,version))
8443 ;; Patch shebangs
8444 (substitute* "epipe"
8445 (("/usr/bin/env bash")
8446 (string-append (assoc-ref %build-inputs "bash") "/bin/bash")))
8447 (patch-shebang "epipe.pl"
8448 (list (string-append (assoc-ref %build-inputs "perl")
8449 "/bin")))
8450 ;; Installation
8451 (for-each (lambda (file)
8452 (install-file file (string-append %output "/bin")))
8453 '("epipe" "epipe.pl"))
8454 #t)))
8455 (home-page "https://github.com/cute-jumper/epipe")
8456 (synopsis "Pipe to the @code{emacsclient}")
8457 (description "@code{epipe} provides an utility to use your editor in
8458 the pipeline, featuring the support for running @code{emacsclient}.")
8459 (license license:gpl3+)))
8460
8461 (define-public emacs-hcl-mode
8462 (package
8463 (name "emacs-hcl-mode")
8464 (version "0.03")
8465 (source
8466 (origin
8467 (method url-fetch)
8468 (uri (string-append
8469 "https://github.com/syohex/emacs-hcl-mode/archive/"
8470 version ".tar.gz"))
8471 (file-name (string-append name "-" version ".tar.gz"))
8472 (sha256
8473 (base32
8474 "0pvw74qpwh0znqzp6syp4wxjqs7dp1hbn5h7xfk97mff9l5d8k6x"))))
8475 (build-system emacs-build-system)
8476 (home-page "https://github.com/syohex/emacs-hcl-mode")
8477 (synopsis "Major mode for the Hashicorp Configuration Language")
8478 (description
8479 "@code{emacs-hcl-mode} provides an Emacs major mode for working with
8480 @acronym{HCL, Hashicorp Configuration Language}. It provides syntax
8481 highlighting and indentation support.")
8482 (license license:gpl3+)))
8483
8484 (define-public emacs-terraform-mode
8485 (package
8486 (name "emacs-terraform-mode")
8487 (version "0.06")
8488 (source
8489 (origin
8490 (method url-fetch)
8491 (uri (string-append
8492 "https://github.com/syohex/emacs-terraform-mode/archive/"
8493 version ".tar.gz"))
8494 (file-name (string-append name "-" version ".tar.gz"))
8495 (sha256
8496 (base32
8497 "0h9267ifdjmcin4sj8slxydbacx4bqicbvg8pa1qq2l72h9m5381"))))
8498 (build-system emacs-build-system)
8499 (propagated-inputs
8500 `(("emacs-hcl-mode" ,emacs-hcl-mode)))
8501 (home-page "https://github.com/syohex/emacs-terraform-mode")
8502 (synopsis "Major mode for Terraform")
8503 (description
8504 "@code{emacs-terraform-mode} provides a major mode for working with
8505 @uref{https://www.terraform.io/, Terraform} configuration files. Most of the
8506 functionality is inherited from @code{hcl-mode}.")
8507 (license license:gpl3+)))
8508
8509 (define-public emacs-exec-path-from-shell
8510 (package
8511 (name "emacs-exec-path-from-shell")
8512 (version "1.11")
8513 (source
8514 (origin
8515 (method url-fetch)
8516 (uri (string-append
8517 "https://stable.melpa.org/packages/exec-path-from-shell-"
8518 version ".el"))
8519 (sha256
8520 (base32
8521 "03qjgb81cq1l3j54lvlf98r75vmmgd06mj6qh5wa6mz4xzp4w26r"))))
8522 (build-system emacs-build-system)
8523 (home-page "https://github.com/purcell/exec-path-from-shell")
8524 (synopsis "Get environment variables such as @var{PATH} from the shell")
8525 (description
8526 "This library allows the user to set Emacs @var{exec-path} and @var{PATH}
8527 from the shell @var{PATH}, so that @code{shell-command}, @code{compile} and
8528 the like work as expected on systems on which Emacs is not guaranteed to
8529 inherit a login shell's environment variables. It also allows other
8530 environment variables to be retrieved from the shell, so that Emacs will see
8531 the same values you get in a terminal.")
8532 (license license:gpl3+)))
8533
8534 (define-public emacs-deft
8535 (package
8536 (name "emacs-deft")
8537 (version "0.8")
8538 (source
8539 (origin
8540 (method url-fetch)
8541 (uri (string-append "https://stable.melpa.org/packages/deft-"
8542 version ".el"))
8543 (sha256
8544 (base32
8545 "1vb9cjxskc7c0yyf9pvxy1fzypg1vrcgwnjz0m3hslinsgdyig58"))))
8546 (build-system emacs-build-system)
8547 (home-page "https://jblevins.org/projects/deft/")
8548 (synopsis "Quickly browse, filter, and edit plain text notes")
8549 (description
8550 "Deft is an Emacs mode for quickly browsing, filtering, and editing
8551 directories of plain text notes, inspired by Notational Velocity.")
8552 (license license:bsd-3)))
8553
8554 (define-public emacs-anzu
8555 (package
8556 (name "emacs-anzu")
8557 (version "0.62")
8558 (source
8559 (origin
8560 (method url-fetch)
8561 (uri (string-append "https://github.com/syohex/emacs-anzu/archive/"
8562 version ".tar.gz"))
8563 (file-name (string-append name "-" version ".tar.gz"))
8564 (sha256
8565 (base32
8566 "16cg3897x5znbmgk7sdy0qyd0fbic9dmmz0dchq2vz5z29yhg4cz"))))
8567 (build-system emacs-build-system)
8568 (home-page "https://github.com/syohex/emacs-anzu")
8569 (synopsis "Show number of matches in mode-line while searching")
8570 (description
8571 "Anzu provides a minor mode which displays \"current match/total
8572 matches\" in the mode line in various search modes. This is an Emacs port of
8573 Anzu.zim.")
8574 (license license:gpl3+)))
8575
8576 (define-public emacs-emmet-mode
8577 (package
8578 (name "emacs-emmet-mode")
8579 (version "1.0.8")
8580 (source (origin
8581 (method url-fetch)
8582 (uri (string-append "https://github.com/smihica/emmet-mode"
8583 "/archive/" version ".tar.gz"))
8584 (file-name (string-append name "-" version ".tar.gz"))
8585 (sha256
8586 (base32
8587 "0g3p22yabfcp98cfv9dgl9il2m2pd53isq2q11vb3s7qyn31f7zj"))))
8588 (build-system emacs-build-system)
8589 (home-page "https://github.com/smihica/emmet-mode")
8590 (synopsis "Unofficial Emmet's support for Emacs")
8591 (description
8592 "Unfold CSS-selector-like expressions to markup. It is intended to be
8593 used with SGML-like languages: XML, HTML, XHTML, XSL, etc.")
8594 (license license:gpl3+)))
8595
8596 (define-public emacs-ergoemacs-mode
8597 (let ((commit "3ce23bba3cb50562693860f87f3528c471d603ba")
8598 (revision "1"))
8599 (package
8600 (name "emacs-ergoemacs-mode")
8601 (version (git-version "5.16.10.12" revision commit))
8602 (source
8603 (origin
8604 (method git-fetch)
8605 (uri (git-reference
8606 (url "https://github.com/ergoemacs/ergoemacs-mode.git")
8607 (commit commit)))
8608 (sha256
8609 (base32
8610 "1s3b9bridl78hh1mxmdk9nqlmqhibbaxk0a1cixmsf23s06w8w6l"))))
8611 (build-system emacs-build-system)
8612 (propagated-inputs
8613 `(("emacs-undo-tree" ,emacs-undo-tree)))
8614 (home-page "https://ergoemacs.github.io/")
8615 (synopsis "Emacs mode based on common modern interface and ergonomics")
8616 (description
8617 "This package provides an efficient Emacs keybinding set based on
8618 statistics of command frequency, and supports common shortcuts for open,
8619 close, copy, cut, paste, undo, redo.")
8620 (license license:gpl3+))))
8621
8622 (define-public emacs-password-store
8623 (package
8624 (name "emacs-password-store")
8625 (version "1.7.3")
8626 (source (origin
8627 (method url-fetch)
8628 (uri
8629 (string-append "https://git.zx2c4.com/password-store/snapshot/"
8630 "password-store-" version ".tar.xz"))
8631 (sha256
8632 (base32
8633 "1x53k5dn3cdmvy8m4fqdld4hji5n676ksl0ql4armkmsds26av1b"))))
8634 (build-system emacs-build-system)
8635 (arguments
8636 `(#:phases
8637 (modify-phases %standard-phases
8638 (add-after 'unpack 'extract-el-file
8639 (lambda _
8640 (copy-file "contrib/emacs/password-store.el" "password-store.el")
8641 (delete-file-recursively "contrib")
8642 (delete-file-recursively "man")
8643 (delete-file-recursively "src")
8644 (delete-file-recursively "tests"))))))
8645 (propagated-inputs
8646 `(("emacs-f" ,emacs-f)
8647 ("emacs-s" ,emacs-s)
8648 ("emacs-with-editor" ,emacs-with-editor)
8649 ("password-store" ,password-store)))
8650 (home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs")
8651 (synopsis "Password store (pass) support for Emacs")
8652 (description
8653 "This package provides functions for working with pass (\"the
8654 standard Unix password manager\").")
8655 (license license:gpl2+)))
8656
8657 (define-public emacs-pass
8658 (package
8659 (name "emacs-pass")
8660 (version "1.7")
8661 (source (origin
8662 (method url-fetch)
8663 (uri (string-append
8664 "https://github.com/NicolasPetton/pass/archive/"
8665 version ".tar.gz"))
8666 (sha256
8667 (base32
8668 "0zlx9v6z0q3w9qhq9bq6vb7sli4c9x7qccm2wq55j0nw7bwy2yvj"))
8669 (file-name (string-append name "-" version ".tar.gz"))))
8670 (build-system emacs-build-system)
8671 (propagated-inputs
8672 `(("emacs-password-store" ,emacs-password-store)
8673 ("emacs-f" ,emacs-f)))
8674 (home-page "https://github.com/NicolasPetton/pass")
8675 (synopsis "Major mode for @file{password-store.el}")
8676 (description "This is a major mode for managing password-store (pass)
8677 keychains. The keychain entries are displayed in a directory-like structure
8678 and can be consulted and modified.")
8679 (license license:gpl3+)))
8680
8681 (define-public emacs-evil-anzu
8682 (package
8683 (name "emacs-evil-anzu")
8684 (version "0.03")
8685 (source
8686 (origin
8687 (method url-fetch)
8688 (uri (string-append "https://github.com/syohex/emacs-evil-anzu"
8689 "/archive/" version ".tar.gz"))
8690 (file-name (string-append name "-" version ".tar.gz"))
8691 (sha256
8692 (base32 "032hh2946z529cizqsg8pm6cpn5qdj8lfk3qskmx6xv3g2ra56ns"))))
8693 (build-system emacs-build-system)
8694 (propagated-inputs
8695 `(("emacs-evil" ,emacs-evil)
8696 ("emacs-anzu" ,emacs-anzu)))
8697 (home-page "https://github.com/syohex/emacs-evil-anzu")
8698 (synopsis "Anzu for evil-mode")
8699 (description "@code{anzu} provides a minor mode that displays the current
8700 match and total match information in the mode-line in various search modes.")
8701 (license license:gpl3+)))
8702
8703 (define-public emacs-pg
8704 (let ((commit "4f6516ec3946d95dcef49abb6703cc89ecb5183d"))
8705 (package
8706 (name "emacs-pg")
8707 (version (git-version "0.1" "1" commit))
8708 (source (origin
8709 (method git-fetch)
8710 (uri (git-reference (url "https://github.com/cbbrowne/pg.el")
8711 (commit commit)))
8712 (file-name (git-file-name name version))
8713 (sha256
8714 (base32
8715 "1zh7v4nnpzvbi8yj1ynlqlawk5bmlxi6s80b5f2y7hkdqb5q26k0"))))
8716 (build-system emacs-build-system)
8717 (home-page "https://github.com/cbbrowne/pg.el")
8718 (synopsis "Emacs Lisp interface for PostgreSQL")
8719 (description
8720 "This package provides an Emacs Lisp interface for PostgreSQL.")
8721 (license license:gpl3+))))
8722
8723 (define-public emacs-cl-generic
8724 (package
8725 (name "emacs-cl-generic")
8726 (version "0.3")
8727 (source
8728 (origin
8729 (method url-fetch)
8730 (uri (string-append "https://elpa.gnu.org/packages/cl-generic-"
8731 version ".el"))
8732 (sha256
8733 (base32
8734 "0vb338bhjpsnrf60qgxny4z5rjrnifahnrv9axd4shay89d894zq"))))
8735 (build-system emacs-build-system)
8736 (home-page "https://elpa.gnu.org/packages/seq.html")
8737 (synopsis
8738 "Forward @code{cl-generic} compatibility for Emacs before version 25")
8739 (description "This package provides a subset of the features of the
8740 @code{cl-generic} package introduced in Emacs-25, for use on previous
8741 @code{emacsen}.")
8742 (license license:gpl3+)))
8743
8744 (define-public emacs-finalize
8745 (package
8746 (name "emacs-finalize")
8747 (version "2.0.0")
8748 (source
8749 (origin
8750 (method url-fetch)
8751 (uri (string-append "https://github.com/skeeto/elisp-finalize/archive/"
8752 version ".tar.gz"))
8753 (file-name (string-append name "-" version ".tar.gz"))
8754 (sha256
8755 (base32
8756 "077fycy3i5f0kjw5z3rhf4kld5lbk2idz690nkwhkz04vppk4q4x"))))
8757 (build-system emacs-build-system)
8758 (propagated-inputs
8759 `(("emacs-cl-generic" ,emacs-cl-generic)))
8760 (home-page "https://github.com/skeeto/elisp-finalize")
8761 (synopsis "Finalizers for Emacs Lisp")
8762 (description
8763 "This package will allows to immediately run a callback (a finalizer)
8764 after its registered lisp object has been garbage collected. This allows for
8765 extra resources, such as buffers and processes, to be cleaned up after the
8766 object has been freed.")
8767 (license license:unlicense)))
8768
8769 (define-public emacs-emacsql
8770 (package
8771 (name "emacs-emacsql")
8772 (version "2.0.3")
8773 (source
8774 (origin
8775 (method url-fetch)
8776 (uri (string-append "https://github.com/skeeto/emacsql/archive/"
8777 version ".tar.gz"))
8778 (file-name (string-append name "-" version ".tar.gz"))
8779 (sha256
8780 (base32
8781 "04hfjdgl1zc7jysgjc7d7d3xqpr7q1q9gsmzffjd91ii3hpqjgx6"))))
8782 (build-system emacs-build-system)
8783 (arguments
8784 `(#:modules ((guix build emacs-build-system)
8785 (guix build utils)
8786 (guix build emacs-utils)
8787 (srfi srfi-26))
8788 #:phases
8789 (modify-phases %standard-phases
8790 (delete 'build) ;‘build-emacsql-sqlite’ compiles ‘*.el’ files.
8791 (add-before 'install 'patch-elisp-shell-shebangs
8792 (lambda _
8793 (substitute* (find-files "." "\\.el")
8794 (("/bin/sh") (which "sh")))
8795 #t))
8796 (add-after 'patch-elisp-shell-shebangs 'setenv-shell
8797 (lambda _
8798 (setenv "SHELL" "sh")))
8799 (add-after 'setenv-shell 'build-emacsql-sqlite
8800 (lambda _
8801 (invoke "make" "binary" "CC=gcc")))
8802 (add-after 'build-emacsql-sqlite 'install-emacsql-sqlite
8803 ;; This build phase installs emacs-emacsql binary.
8804 (lambda* (#:key outputs #:allow-other-keys)
8805 (install-file "sqlite/emacsql-sqlite"
8806 (string-append (assoc-ref outputs "out")
8807 "/bin"))
8808 #t))
8809 (add-after 'install-emacsql-sqlite 'patch-emacsql-sqlite.el
8810 ;; This build phase removes interactive prompts
8811 ;; and makes sure Emacs look for binaries in the right places.
8812 (lambda* (#:key outputs #:allow-other-keys)
8813 (let ((file "emacsql-sqlite.el"))
8814 (chmod file #o644)
8815 (emacs-substitute-sexps file
8816 ;; Avoid interactive prompts.
8817 ("(defvar emacsql-sqlite-user-prompted" 't)
8818 ;; Make sure Emacs looks for ‘GCC’ binary in the right place.
8819 ("(executable-find" (which "gcc"))
8820 ;; Make sure Emacs looks for ‘emacsql-sqlite’ binary
8821 ;; in the right place.
8822 ("(defvar emacsql-sqlite-executable"
8823 (string-append (assoc-ref outputs "out")
8824 "/bin/emacsql-sqlite"))))))
8825 (replace 'install
8826 (lambda* (#:key outputs #:allow-other-keys)
8827 (let* ((out (assoc-ref outputs "out")))
8828 (install-file "sqlite/emacsql-sqlite"
8829 (string-append out "/bin"))
8830 (for-each (cut install-file <>
8831 (string-append out "/share/emacs/site-lisp/guix.d/"
8832 "emacsql" "-" ,version))
8833 (find-files "." "\\.elc*$")))
8834 #t)))))
8835 (inputs
8836 `(("emacs-minimal" ,emacs-minimal)
8837 ("mariadb" ,mariadb)
8838 ("postgresql" ,postgresql)))
8839 (propagated-inputs
8840 `(("emacs-finalize" ,emacs-finalize)
8841 ("emacs-pg" ,emacs-pg)))
8842 (home-page "https://github.com/skeeto/emacsql")
8843 (synopsis "Emacs high-level SQL database front-end")
8844 (description "Any readable Lisp value can be stored as a value in EmacSQL,
8845 including numbers, strings, symbols, lists, vectors, and closures. EmacSQL
8846 has no concept of @code{TEXT} values; it's all just Lisp objects. The Lisp
8847 object @code{nil} corresponds 1:1 with @code{NULL} in the database.")
8848 (license license:gpl3+)))
8849
8850 (define-public emacs-closql
8851 (package
8852 (name "emacs-closql")
8853 (version "0.5.1")
8854 (source
8855 (origin
8856 (method url-fetch)
8857 (uri (string-append "https://github.com/emacscollective/closql/archive/"
8858 "v" version ".tar.gz"))
8859 (file-name (string-append name "-" version ".tar.gz"))
8860 (sha256
8861 (base32
8862 "0wa6r0kgbb7f19039p5f3di4dvrvxfgpd8bkam94fca7jvzj536c"))))
8863 (build-system emacs-build-system)
8864 (propagated-inputs
8865 `(("emacs-emacsql" ,emacs-emacsql)))
8866 (home-page "https://github.com/emacscollective/closql")
8867 (synopsis "Store EIEIO objects using EmacSQL")
8868 (description
8869 "This package allows to store uniform EIEIO objects in an EmacSQL
8870 database. SQLite is used as backend. This library imposes some restrictions
8871 on what kind of objects can be stored; it isn't intended to store arbitrary
8872 objects. All objects have to share a common superclass and subclasses cannot
8873 add any additional instance slots.")
8874 (license license:gpl3)))
8875
8876 (define-public emacs-epkg
8877 ;; The release version is to old for the current database scheme.
8878 (let ((commit "432312b9583ed7b88ad9644fd1bf2183765a892e"))
8879 (package
8880 (name "emacs-epkg")
8881 (version (git-version "3.0.0" "1" commit))
8882 (source
8883 (origin
8884 (method git-fetch)
8885 (uri (git-reference
8886 (url "https://github.com/emacscollective/epkg.git")
8887 (commit commit)))
8888 (file-name (git-file-name name version))
8889 (sha256
8890 (base32
8891 "0d882kahn7a0vri7a9r15lvmfx1zn2hsga6jfcc6jv0hqbswlb2k"))))
8892 (build-system emacs-build-system)
8893 (propagated-inputs
8894 `(("emacs-closql" ,emacs-closql)
8895 ("emacs-dash" ,emacs-dash)))
8896 (home-page "https://emacsmirror.net")
8897 (synopsis "Browse the Emacsmirror package database")
8898 (description "This package provides access to a local copy of the
8899 Emacsmirror package database. It provides low-level functions for querying
8900 the database and a @file{package.el} user interface for browsing the database.
8901 Epkg itself is not a package manager.
8902
8903 Getting a local copy:
8904
8905 @example
8906 git clone https://github.com/emacsmirror/epkgs.git ~/.emacs.d/epkgs
8907 cd ~/.emacs.d/epkgs
8908 git submodule init
8909 git config --global url.https://github.com/.insteadOf git@@github.com:
8910 git submodule update
8911 @end example
8912
8913 Some submodule may be missing. In this case Git will prompt for a GitHub user
8914 name and password. To skip it press a @key{Return} key.
8915
8916 You could get a Epkg package list by invoking @code{epkg-list-packages} in
8917 Emacs.")
8918 (license license:gpl3+))))
8919
8920 (define-public emacs-elisp-slime-nav
8921 (package
8922 (name "emacs-elisp-slime-nav")
8923 (version "0.9")
8924 (source
8925 (origin
8926 (method url-fetch)
8927 (uri (string-append "https://github.com/purcell/elisp-slime-nav/archive/"
8928 version ".tar.gz"))
8929 (file-name (string-append name "-" version ".tar.gz"))
8930 (sha256
8931 (base32
8932 "1vq7ym1q47p97gxrv45c9gm96d23xbp237vkmakikj6grngxjfb2"))))
8933 (build-system emacs-build-system)
8934 (home-page "https://github.com/purcell/elisp-slime-nav")
8935 (synopsis "Make @code{M-.} and @code{M-,} work for elisp like they do in SLIME")
8936 (description
8937 "This package provides SLIME's convenient @code{M-.}and @code{M-,} navigation
8938 in @code{emacs-lisp-mode}, together with an elisp equivalent of
8939 @code{slime-describe-symbol}.")
8940 (license license:gpl3+)))
8941
8942 (define-public emacs-dedicated
8943 (package
8944 (name "emacs-dedicated")
8945 (version "1.0.0")
8946 (source (origin
8947 (method url-fetch)
8948 (uri (string-append
8949 "https://github.com/emacsorphanage/dedicated/archive/"
8950 version
8951 ".tar.gz"))
8952 (sha256
8953 (base32
8954 "0nhbkp278cvcznb5rp3jp9ii3mjgb79zx8iwfrw7zfk3yg8688ni"))
8955 (file-name (string-append name "-" version ".tar.gz"))))
8956 (build-system emacs-build-system)
8957 (home-page "https://github.com/emacsorphanage/dedicated")
8958 (synopsis "Emacs minor mode for toggling a windows's \"dedicated\" flag")
8959 (description
8960 "This simple Emacs minor mode allows you to toggle a window's
8961 \"dedicated\" flag. When a window is \"dedicated\", Emacs will not select
8962 files into that window. This can be quite handy since many commands will use
8963 another window to show results (compilation mode, starting info, and so on).
8964 A dedicated window won't be used for such a purpose. For details, please read
8965 the source file.")
8966 (license license:gpl2+)))
8967
8968 (define-public emacs-nnreddit
8969 (let ((commit "9843f99d01fd8f1eea2fc685965a7c7f4eeb187a")
8970 (revision "1"))
8971 (package
8972 (name "emacs-nnreddit")
8973 (version (string-append "0.0.1-" revision "."
8974 (string-take commit 7)))
8975 (source (origin
8976 (method git-fetch)
8977 (uri (git-reference
8978 (url "https://github.com/paul-issartel/nnreddit.git")
8979 (commit commit)))
8980 (file-name (string-append name "-" version "-checkout"))
8981 (sha256
8982 (base32
8983 "0j4h3bnga640250jdq8bwyja49r41ssrsjd6lba4gzzllqk02nbn"))))
8984 (build-system emacs-build-system)
8985 (home-page "https://github.com/paul-issartel/nnreddit")
8986 (synopsis "Reddit backend for the Gnus newsreader")
8987 (description "@url{https://www.reddit.com} backend for the Gnus
8988 newsreader.")
8989 (license license:gpl3+))))
8990
8991 (define-public emacs-makey
8992 (package
8993 (name "emacs-makey")
8994 (version "0.3")
8995 (source
8996 (origin
8997 (method url-fetch)
8998 (uri (string-append "https://github.com/mickeynp/makey/archive/"
8999 version ".tar.gz"))
9000 (file-name (string-append name "-" version ".tar.gz"))
9001 (sha256
9002 (base32
9003 "0kzl4q1wf2zhkx9nrymxa67n99iq0bj7zqhpaz4byksna1hsxfmv"))))
9004 (build-system emacs-build-system)
9005 (home-page "https://github.com/mickeynp/makey")
9006 (synopsis "Emacs interactive command-line mode")
9007 (description
9008 "This package provides an Emacs interactive command-line mode.")
9009 (license license:gpl3+)))
9010
9011 (define-public emacs-outorg
9012 (let ((commit "78b0695121fb974bc4e971eb4ef7f8afd6d89d64"))
9013 (package
9014 (name "emacs-outorg")
9015 (version (git-version "2.0" "1" commit))
9016 (source
9017 (origin
9018 (method git-fetch)
9019 (uri (git-reference
9020 (url "https://github.com/alphapapa/outorg")
9021 (commit commit)))
9022 (file-name (git-file-name name version))
9023 (sha256
9024 (base32
9025 "03aclh4m3f7rb821gr9pwvnqkkl91px3qxdcarpf3ypa1x4fxvlj"))))
9026 (build-system emacs-build-system)
9027 (home-page "https://github.com/alphapapa/outorg")
9028 (synopsis "Org-style comment editing")
9029 (description "Outorg is for editing comment-sections of source-code
9030 files in temporary Org-mode buffers. It turns conventional
9031 literate-programming upside-down in that the default mode is the
9032 programming-mode, and special action has to be taken to switch to the
9033 text-mode (i.e. Org-mode).")
9034 (license license:gpl3+))))
9035
9036 (define-public emacs-outshine
9037 (let ((commit "5f1a6b70231d2811c522e4e5e8c89ff461b311d6"))
9038 (package
9039 (name "emacs-outshine")
9040 (version (git-version "2.0" "1" commit))
9041 (source (origin
9042 (method git-fetch)
9043 (uri (git-reference
9044 (url "https://github.com/alphapapa/outshine.git")
9045 (commit commit)))
9046 (file-name (git-file-name name version))
9047 (sha256
9048 (base32
9049 "1l9v1dfhgg7il11ifbhvcvrg3acfjk9sdxlc3lja1k54d7dp60jv"))))
9050 (build-system emacs-build-system)
9051 (propagated-inputs
9052 `(("emacs-outorg" ,emacs-outorg)))
9053 (home-page "https://github.com/alphapapa/outshine")
9054 (synopsis "Emacs outline with outshine")
9055 (description "Outshine attempts to bring the look and feel of
9056 @code{org-mode} to an Emacs outside of the Org major-mode. It is an extension
9057 of @code{outline-minor-mode} (@code{org-mode} itself derives from
9058 outline-mode), so there is no such thing like an outshine mode, only
9059 @code{outline-minor-mode} with outshine extensions loaded.")
9060 (license license:gpl3+))))
9061
9062 (define-public emacs-parsebib
9063 (package
9064 (name "emacs-parsebib")
9065 (version "2.3.1")
9066 (source
9067 (origin
9068 (method url-fetch)
9069 (uri (string-append "https://github.com/joostkremers/parsebib/archive/"
9070 version ".tar.gz"))
9071 (file-name (string-append name "-" version ".tar.gz"))
9072 (sha256
9073 (base32
9074 "0cxagnmc5ab6idmb26axpizhr4sqglkncc59768yavn3p04jyq63"))))
9075 (build-system emacs-build-system)
9076 (home-page "https://github.com/joostkremers/parsebib")
9077 (synopsis "Library for parsing bib files")
9078 (description
9079 "This package provides an Emacs library for parsing bib files.")
9080 (license license:gpl3+)))
9081
9082 (define-public emacs-biblio
9083 (package
9084 (name "emacs-biblio")
9085 (version "0.1")
9086 (source
9087 (origin
9088 (method url-fetch)
9089 (uri (string-append "https://github.com/cpitclaudel/biblio.el/archive/"
9090 version ".tar.gz"))
9091 (file-name (string-append name "-" version ".tar.gz"))
9092 (sha256
9093 (base32
9094 "109fvivsb4r0rbqljngqrmxqvbnbkqlivczx6brrvlr7ci625lhf"))))
9095 (build-system emacs-build-system)
9096 (propagated-inputs
9097 `(("emacs-seq" ,emacs-seq)
9098 ("emacs-dash" ,emacs-dash)
9099 ("emacs-let-alist" ,emacs-let-alist)))
9100 (home-page "https://github.com/cpitclaudel/biblio.el")
9101 (synopsis "Browse and import bibliographic references")
9102 (description "This package provides an extensible Emacs package for
9103 browsing and fetching references.
9104
9105 @file{biblio.el} makes it easy to browse and gather bibliographic references
9106 and publications from various sources, by keywords or by DOI. References are
9107 automatically fetched from well-curated sources, and formatted as BibTeX.")
9108 (license license:gpl3+)))
9109
9110 (define-public emacs-helm-bibtex
9111 (let ((commit "8ed898fb5a68f18e9bb9973832a5c1f8abcfc463")
9112 (revision "1"))
9113 (package
9114 (name "emacs-helm-bibtex")
9115 (version (string-append "2.0.0" "-" revision "."
9116 (string-take commit 7)))
9117 (source
9118 (origin
9119 (method git-fetch)
9120 (uri (git-reference
9121 (url "https://github.com/tmalsburg/helm-bibtex.git")
9122 (commit commit)))
9123 (file-name (string-append name "-" version "-checkout"))
9124 (sha256
9125 (base32
9126 "14lyx0vbqr97p3anzrsp7m3q0kqclyjcdwplpraim403fcklzbnz"))))
9127 (build-system emacs-build-system)
9128 (propagated-inputs
9129 `(("emacs-helm" ,emacs-helm)
9130 ("emacs-parsebib" ,emacs-parsebib)
9131 ("emacs-s" ,emacs-s)
9132 ("emacs-dash" ,emacs-dash)
9133 ("emacs-f" ,emacs-f)
9134 ("emacs-biblio" ,emacs-biblio)
9135 ("emacs-ivy" ,emacs-ivy)))
9136 (home-page "https://github.com/tmalsburg/helm-bibtex")
9137 (synopsis "Bibliography manager based on Helm")
9138 (description "This package provides bibliography manager for Emacs,
9139 based on Helm and the bibtex-completion backend.
9140
9141 Key features:
9142
9143 @itemize
9144 @item Quick access to your bibliography from within Emacs
9145 @item Powerful search capabilities
9146 @item Provides instant search results as you type
9147 @item Tightly integrated with LaTeX authoring, emails, Org mode, etc.
9148 @item Open the PDFs, URLs, or DOIs associated with an entry
9149 @item Insert LaTeX cite commands, Ebib links, or Pandoc citations,
9150 BibTeX entries, or plain text references at point, attach PDFs to emails
9151 @item Support for note taking
9152 @item Quick access to online bibliographic databases such as Pubmed,
9153 arXiv, Google Scholar, Library of Congress, etc.
9154 @item Imports BibTeX entries from CrossRef and other sources.
9155 @end itemize\n")
9156 (license license:gpl3+))))
9157
9158 (define-public emacs-ewmctrl
9159 (let ((commit "3d0217c4d6cdb5c308b6cb4293574f470d4faacf"))
9160 (package
9161 (name "emacs-ewmctrl")
9162 (version (git-version "0.0.1" "1" commit))
9163 (source
9164 (origin
9165 (method git-fetch)
9166 (uri (git-reference
9167 (url "https://github.com/flexibeast/ewmctrl.git")
9168 (commit commit)))
9169 (file-name (git-file-name name version))
9170 (sha256
9171 (base32
9172 "0ilwvx0qryv3v6xf0gxqwnfm6pf96gxap8h9g3f6z6lk9ff4n1wi"))))
9173 (build-system emacs-build-system)
9174 (arguments
9175 '(#:phases
9176 (modify-phases %standard-phases
9177 (add-after 'unpack 'patch-ewmctrl
9178 ;; This build phase makes sure ‘ewmctrl’ looks
9179 ;; for ‘wmctrl’ in the right place.
9180 (lambda _
9181 (let ((file "ewmctrl.el"))
9182 (chmod file #o644)
9183 (emacs-substitute-sexps file
9184 ("(defcustom ewmctrl-wmctrl-path" (which "wmctrl")))))))))
9185 (inputs
9186 `(("wmctrl" ,wmctrl)))
9187 (home-page "https://github.com/flexibeast/ewmctrl")
9188 (synopsis "Emacs interface to @code{wmctrl}")
9189 (description "@code{ewmctrl} provides an Emacs interface to
9190 @code{wmctrl} command-line window-management program.")
9191 (license license:gpl3+))))
9192
9193 (define-public emacs-helm-gtags
9194 (package
9195 (name "emacs-helm-gtags")
9196 (version "1.5.6")
9197 (source (origin
9198 (method url-fetch)
9199 (uri (string-append
9200 "https://github.com/syohex/emacs-helm-gtags/archive/"
9201 version ".tar.gz"))
9202 (file-name (string-append name "-" version ".tar.gz"))
9203 (sha256
9204 (base32
9205 "1a10snhg6nnnan6w9a7mcziy26vxbsr3c35i0gcarnkdp2yqng36"))))
9206 (build-system emacs-build-system)
9207 (propagated-inputs
9208 `(("emacs-helm" ,emacs-helm)))
9209 (home-page "https://github.com/syohex/emacs-helm-gtags")
9210 (synopsis "Emacs Helm interface to GNU Global")
9211 (description
9212 "@code{emacs-helm-gtags} provides a Emacs Helm interface to GNU Global.")
9213 (license license:gpl3+)))
9214
9215 (define-public emacs-list-utils
9216 (package
9217 (name "emacs-list-utils")
9218 (version "0.4.4")
9219 (source
9220 (origin
9221 (method url-fetch)
9222 (uri (string-append "https://github.com/rolandwalker/list-utils/archive/"
9223 "v" version ".tar.gz"))
9224 (file-name (string-append name "-" version ".tar.gz"))
9225 (sha256
9226 (base32
9227 "1xc1xh8c82h5gdjbgpdsdclgwxkxbb7h3x3a2bscpm41g8pnan4p"))))
9228 (build-system emacs-build-system)
9229 (home-page "https://github.com/rolandwalker/list-utils")
9230 (synopsis "List-manipulation utility functions")
9231 (description "This package provides a list manipulation library for Emacs.")
9232 (license license:gpl3+)))
9233
9234 (define-public emacs-move-text
9235 (package
9236 (name "emacs-move-text")
9237 (version "2.0.8")
9238 (source
9239 (origin
9240 (method url-fetch)
9241 (uri (string-append "https://github.com/emacsfodder/move-text/archive/"
9242 version ".tar.gz"))
9243 (file-name (string-append name "-" version ".tar.gz"))
9244 (sha256
9245 (base32
9246 "1sjfja9r25692pgcldgnjzkapzy970m14jh9l4pajysiqcdk72g0"))))
9247 (build-system emacs-build-system)
9248 (home-page "https://github.com/emacsfodder/move-text")
9249 (synopsis "Move current line or region with M-up or M-down")
9250 (description "This package provide functions to move the current line
9251 using @kbd{M-up} or @kbd{M-down} if a region is marked, it will move the
9252 region instead.")
9253 (license license:gpl3+)))
9254
9255 (define-public emacs-validate
9256 (package
9257 (name "emacs-validate")
9258 (version "1.0.5")
9259 (source (origin
9260 (method url-fetch)
9261 (uri (string-append "https://github.com/Malabarba/validate.el"
9262 "/archive/" version ".tar.gz"))
9263 (file-name (string-append name "-" version ".tar.gz"))
9264 (sha256
9265 (base32
9266 "125mbd111f1h1baw0z3fzm48y1bvaigljyzvvnqgrn0shxbj0khg"))))
9267 (build-system emacs-build-system)
9268 (home-page "https://github.com/Malabarba/validate.el")
9269 (synopsis "Emacs library for scheme validation")
9270 (description "This Emacs library provides two functions that perform
9271 schema validation.")
9272 (license license:gpl3+)))
9273
9274 (define-public emacs-rainbow-blocks
9275 (let ((commit "dd435d7bb34ff6f162a5f315df308b90b7e9f842"))
9276 (package
9277 (name "emacs-rainbow-blocks")
9278 (version (git-version "1.0.0" "1" commit))
9279 (source (origin
9280 (method git-fetch)
9281 (uri (git-reference
9282 (url "https://github.com/istib/rainbow-blocks.git")
9283 (commit commit)))
9284 (file-name (git-file-name name version))
9285 (sha256
9286 (base32
9287 "06yfb3i7wzvqrhkb61zib9xvpb5i00s4frizkzff66im05k0n795"))))
9288 (build-system emacs-build-system)
9289 (home-page "https://github.com/istib/rainbow-blocks")
9290 (synopsis "Highlight sexp blocks")
9291 (description "Rainbow-blocks is an Emacs mode that highlights blocks
9292 made of parentheses, brackets, and braces according to their depth. Each
9293 successive level is highlighted in a different color. This makes it easy to
9294 orient yourself in the code, and tell which statements are at a given level.")
9295 (license license:gpl3+))))
9296
9297 (define-public emacs-hierarchy
9298 (package
9299 (name "emacs-hierarchy")
9300 (version "0.7.0")
9301 (source
9302 (origin
9303 (method url-fetch)
9304 (uri (string-append
9305 "https://github.com/DamienCassou/hierarchy/archive/"
9306 "v" version ".tar.gz"))
9307 (file-name (string-append name "-" version ".tar.gz"))
9308 (sha256
9309 (base32
9310 "1a463v5zk6zis2p8cs4mads3iyxh266yahi6j6y0paggfl2yhkc8"))))
9311 (build-system emacs-build-system)
9312 (home-page "https://github.com/DamienCassou/hierarchy")
9313 (synopsis "Library to create and display hierarchy structures")
9314 (description "This package provides an Emacs library to create, query,
9315 navigate and display hierarchy structures.")
9316 (license license:gpl3+)))
9317
9318 (define-public emacs-tree-mode
9319 (let ((commit "b06078826d5875d74b0e7b7ac47b0d0917610534")
9320 (revision "1"))
9321 (package
9322 (name "emacs-tree-mode")
9323 (version (string-append "0.0.1" "-" revision "."
9324 (string-take commit 7)))
9325 (source
9326 (origin
9327 (method git-fetch)
9328 (uri (git-reference
9329 (url "https://github.com/emacsorphanage/tree-mode.git")
9330 (commit commit)))
9331 (file-name (string-append name "-" version "-checkout"))
9332 (sha256
9333 (base32
9334 "13bbdhdmqg4x9yghanhr8fsbsxbnypzxdxgicz31sjjm675kpnix"))))
9335 (build-system emacs-build-system)
9336 (home-page "https://github.com/emacsorphanage/tree-mode")
9337 (synopsis "Emacs mode to manage tree widgets")
9338 (description
9339 "This package provides an Emacs library to manage tree widgets.")
9340 (license license:gpl3+))))
9341
9342 (define-public emacs-md4rd
9343 (let ((commit "c55512c2f7680db2a1e73db6bdf93adecaf40fec")
9344 (revision "1"))
9345 (package
9346 (name "emacs-md4rd")
9347 (version (string-append "0.0.2" "-" revision "."
9348 (string-take commit 7)))
9349 (source (origin
9350 (method git-fetch)
9351 (uri (git-reference
9352 (url "https://github.com/ahungry/md4rd.git")
9353 (commit commit)))
9354 (file-name (string-append name "-" version "-checkout"))
9355 (sha256
9356 (base32
9357 "0mvv1mvsrpkrmikcpfqf2zbawnzgq33j6zjdrlv48mcw57xb2ak9"))))
9358 (propagated-inputs
9359 `(("emacs-hierarchy" ,emacs-hierarchy)
9360 ("emacs-request" ,emacs-request)
9361 ("emacs-dash" ,emacs-dash)
9362 ("emacs-s" ,emacs-s)
9363 ("emacs-tree-mode" ,emacs-tree-mode)))
9364 (build-system emacs-build-system)
9365 (home-page "https://github.com/ahungry/md4rd")
9366 (synopsis "Emacs Mode for Reddit")
9367 (description
9368 "This package allows to read Reddit from within Emacs interactively.")
9369 (license license:gpl3+))))
9370
9371 (define-public emacs-pulseaudio-control
9372 (let ((commit "1da372ec79f5d2fb901d1f9f0679fee8848fd011")
9373 (revision "2"))
9374 (package
9375 (name "emacs-pulseaudio-control")
9376 (version (git-version "0.0.1" revision commit))
9377 (source
9378 (origin
9379 (method git-fetch)
9380 (uri (git-reference
9381 (url "https://github.com/flexibeast/pulseaudio-control.git")
9382 (commit commit)))
9383 (file-name (git-file-name name version))
9384 (sha256
9385 (base32
9386 "02xrsms2pjqdk6327midi61i5vg2h9cq5jwaxv43ldm68wl7hi6k"))))
9387 (build-system emacs-build-system)
9388 (arguments
9389 '(#:phases (modify-phases %standard-phases
9390 (add-after 'unpack 'patch-file-name
9391 (lambda* (#:key inputs #:allow-other-keys)
9392 (let ((pulseaudio (assoc-ref inputs "pulseaudio")))
9393 (chmod "pulseaudio-control.el" #o600)
9394 (emacs-substitute-variables "pulseaudio-control.el"
9395 ("pulseaudio-control-pactl-path"
9396 (string-append pulseaudio "/bin/pactl")))
9397 #t))))))
9398 (inputs `(("pulseaudio" ,pulseaudio)))
9399 (home-page "https://github.com/flexibeast/pulseaudio-control")
9400 (synopsis "Control @code{pulseaudio} from Emacs")
9401 (description
9402 "This package allows to control @code{pulseaudio} from Emacs.")
9403 (license license:gpl3+))))
9404
9405 (define-public emacs-datetime
9406 (package
9407 (name "emacs-datetime")
9408 (version "0.3")
9409 (source (origin
9410 (method url-fetch)
9411 (uri (string-append
9412 "https://github.com/doublep/datetime/archive/"
9413 version ".tar.gz"))
9414 (file-name (string-append name "-" version ".tar.gz"))
9415 (sha256
9416 (base32
9417 "12wqpj67rjij2ki7nmw38rz3k2bsq68pk6zswknlcn9qhp1zd9w9"))))
9418 (build-system emacs-build-system)
9419 (home-page "https://github.com/doublep/datetime/")
9420 (synopsis "Library to work with dates in Emacs")
9421 (description "Parsing, formatting, matching and recoding
9422 timestamps and date-time format strings library for Emacs.")
9423 (license license:gpl3+)))
9424
9425 (define-public emacs-org-mind-map
9426 (let ((commit "9d6e262bedd94daf9de269f4d56de277275677cb")
9427 (revision "1"))
9428 (package
9429 (name "emacs-org-mind-map")
9430 (version (string-append "0.0.1" "-" revision "."
9431 (string-take commit 7)))
9432 (source
9433 (origin
9434 (method git-fetch)
9435 (uri (git-reference
9436 (url "https://github.com/theodorewiles/org-mind-map.git")
9437 (commit commit)))
9438 (file-name (string-append name "-" version "-checkout"))
9439 (sha256
9440 (base32
9441 "0jgkkgq7g64zckrmjib0hvz0qy3ynz5vz13qbmlpf096l3bb65wn"))))
9442 (propagated-inputs
9443 `(("emacs-dash" ,emacs-dash)))
9444 (build-system emacs-build-system)
9445 (home-page "https://github.com/theodorewiles/org-mind-map")
9446 (synopsis "Create Graphviz directed graphs from Org files")
9447 (description
9448 "This package creates Graphviz directed graphs from Org files.")
9449 (license license:gpl3+))))
9450
9451 (define-public emacs-npm-mode
9452 (package
9453 (name "emacs-npm-mode")
9454 (version "0.6.0")
9455 (source
9456 (origin
9457 (method url-fetch)
9458 (uri (string-append "https://github.com/mojochao/npm-mode/archive/"
9459 version ".tar.gz"))
9460 (file-name (string-append name "-" version ".tar.gz"))
9461 (sha256
9462 (base32
9463 "1kq1ww22dwf8c2i2b4z2ldbbmnihj65kb7n5vzvwkch9h4hxpqh5"))))
9464 (build-system emacs-build-system)
9465 (home-page "https://github.com/mojochao/npm-mode")
9466 (synopsis "Minor mode for working with @code{npm} projects")
9467 (description
9468 "@code{npm-mode} provides a minor mode to work with @code{npm} projects.")
9469 (license license:gpl3+)))
9470
9471 (define-public emacs-seq
9472 (package
9473 (name "emacs-seq")
9474 (version "2.20")
9475 (source
9476 (origin
9477 (method url-fetch)
9478 (uri (string-append "http://elpa.gnu.org/packages/seq-" version ".tar"))
9479 (sha256
9480 (base32
9481 "0vrpx6nnyjb0gsypknzagimlhvcvi5y1rcdkpxyqr42415zr8d0n"))))
9482 (build-system emacs-build-system)
9483 (home-page "http://elpa.gnu.org/packages/seq.html")
9484 (synopsis "Sequence manipulation functions")
9485 (description "Sequence-manipulation functions that complement basic
9486 functions provided by @file{subr.el}.")
9487 (license license:gpl3+)))
9488
9489 (define-public emacs-itail
9490 (let ((commit "6e43c20da03be3b9c6ece93b7dc3495975ec1888")
9491 (revision "1"))
9492 (package
9493 (name "emacs-itail")
9494 (version (string-append "0.0.1" "-" revision "."
9495 (string-take commit 7)))
9496 (source
9497 (origin
9498 (method git-fetch)
9499 (uri (git-reference
9500 (url "https://github.com/re5et/itail.git")
9501 (commit commit)))
9502 (file-name (string-append name "-" version "-checkout"))
9503 (sha256
9504 (base32
9505 "044nzxh1hq41faxw3lix0wy78vfz304pjcaa5a11dqfz7q3gx5cv"))))
9506 (build-system emacs-build-system)
9507 (home-page "https://github.com/re5et/itail")
9508 (synopsis "Interactive @code{tail} Emacs mode")
9509 (description "@code{itail} provides interactive @code{tail} mode
9510 that allows you to filter the tail with unix pipes and highlight the
9511 contents of the tailed file. Works locally or on remote files using
9512 tramp.")
9513 (license license:gpl3+))))
9514
9515 (define-public emacs-loop
9516 (package
9517 (name "emacs-loop")
9518 (version "1.3")
9519 (source
9520 (origin
9521 (method url-fetch)
9522 (uri (string-append "https://github.com/Wilfred/loop.el/archive/"
9523 version ".tar.gz"))
9524 (file-name (string-append name "-" version ".tar.gz"))
9525 (sha256
9526 (base32
9527 "1z3rhh3zyjabz36410yz0lp4a0qwwj0387as662wvx3z9y54jia9"))))
9528 (build-system emacs-build-system)
9529 (home-page "https://github.com/Wilfred/loop.el")
9530 (synopsis "Imperative loop structures for Emacs")
9531 (description "Loop structures familiar to users of other languages. This
9532 library adds a selection of popular loop structures as well as break and
9533 continue.")
9534 (license license:gpl3+)))
9535
9536 (define-public emacs-elisp-refs
9537 (package
9538 (name "emacs-elisp-refs")
9539 (version "1.3")
9540 (source
9541 (origin
9542 (method url-fetch)
9543 (uri (string-append "https://github.com/Wilfred/elisp-refs/archive/"
9544 version ".tar.gz"))
9545 (file-name (string-append name "-" version ".tar.gz"))
9546 (sha256
9547 (base32
9548 "02nzcn3v14n7mp7q32j5r4wdlpsw3zixzh6cf0cdyarfir6dly3p"))))
9549 (build-system emacs-build-system)
9550 (propagated-inputs
9551 `(("emacs-dash" ,emacs-dash)
9552 ("emacs-f" ,emacs-f)
9553 ("emacs-list-utils" ,emacs-list-utils)
9554 ("emacs-loop" ,emacs-loop)
9555 ("emacs-s" ,emacs-s)
9556 ("emacs-shut-up" ,emacs-shut-up)))
9557 (home-page "https://github.com/Wilfred/elisp-refs")
9558 (synopsis "Find callers of elisp functions or macros")
9559 (description "Find references to functions, macros or variables. Unlike a
9560 dumb text search, @code{elisp-refs} actually parses the code, so it's never
9561 confused by comments or @code{foo-bar} matching @code{foo}.")
9562 (license license:gpl3+)))
9563
9564 (define-public emacs-crux
9565 (let ((commit "4f5c8fefd5a6aa52e128c4a0401cc86410d6ac8f")
9566 (revision "1"))
9567 (package
9568 (name "emacs-crux")
9569 (version (string-append "0.3.0" "-" revision "."
9570 (string-take commit 7)))
9571 (source
9572 (origin
9573 (method git-fetch)
9574 (uri (git-reference
9575 (url "https://github.com/bbatsov/crux.git")
9576 (commit commit)))
9577 (file-name (string-append name "-" version "-checkout"))
9578 (sha256
9579 (base32
9580 "1fdxvv25cs01sg6fmvmzxpzvs50i6v8n2jya60lbavxqqhi0sbxd"))))
9581 (build-system emacs-build-system)
9582 (home-page "https://github.com/bbatsov/crux")
9583 (synopsis "Collection of useful functions for Emacs")
9584 (description
9585 "@code{crux} provides a collection of useful functions for Emacs.")
9586 (license license:gpl3+))))
9587
9588 (define-public emacs-edit-server
9589 (package
9590 (name "emacs-edit-server")
9591 (version "1.13")
9592 (source
9593 (origin
9594 (method url-fetch)
9595 (uri (string-append "https://github.com/stsquad/emacs_chrome/archive/"
9596 "v" version ".tar.gz"))
9597 (file-name (string-append name "-" version ".tar.gz"))
9598 (sha256
9599 (base32
9600 "1r92kqggslqasza718z4ka883mqfbnibdm43f0j9gaipk0msm2wf"))))
9601 (build-system emacs-build-system)
9602 (arguments
9603 `(#:phases
9604 (modify-phases %standard-phases
9605 (add-after 'unpack 'chdir-elisp
9606 ;; Elisp directory is not in root of the source.
9607 (lambda _
9608 (chdir "servers"))))))
9609 (home-page "https://github.com/stsquad/emacs_chrome")
9610 (synopsis "Server that responds to edit requests from Chromium")
9611 (description
9612 "This package provides an edit server to respond to requests from Emacs.")
9613 (license license:gpl3+)))
9614
9615 (define-public emacs-m-buffer-el
9616 (package
9617 (name "emacs-m-buffer-el")
9618 (version "0.15")
9619 (source
9620 (origin
9621 (method url-fetch)
9622 (uri (string-append "https://github.com/phillord/m-buffer-el"
9623 "/archive/" "v" version ".tar.gz"))
9624 (file-name (string-append name "-" version ".tar.gz"))
9625 (sha256
9626 (base32
9627 "17vdcc8q37q9db98jyww1c0ivinmwfcw4l04zccfacalra63a214"))))
9628 (arguments
9629 `(#:phases
9630 (modify-phases %standard-phases
9631 (add-before 'install 'check
9632 (lambda* (#:key inputs #:allow-other-keys)
9633 (invoke "emacs" "--batch" "-L" "."
9634 "-l" "test/m-buffer-test.el"
9635 "-l" "test/m-buffer-at-test.el"
9636 "-f" "ert-run-tests-batch-and-exit"))))))
9637 (build-system emacs-build-system)
9638 (home-page "https://github.com/phillord/m-buffer-el")
9639 (synopsis "List oriented buffer operations for Emacs")
9640 (description "@code{m-buffer} provides a set of list-orientated functions
9641 for operating over the contents of Emacs buffers.")
9642 (license license:gpl3+)))
9643
9644 (define-public emacs-let-alist
9645 (package
9646 (name "emacs-let-alist")
9647 (version "1.0.5")
9648 (source
9649 (origin
9650 (method url-fetch)
9651 (uri (string-append
9652 "https://elpa.gnu.org/packages/let-alist-" version ".el"))
9653 (sha256
9654 (base32
9655 "0r7b9jni50la1m79kklml11syg8d2fmdlr83pv005sv1wh02jszw"))))
9656 (build-system emacs-build-system)
9657 (home-page "https://elpa.gnu.org/packages/let-alist.html")
9658 (synopsis "Easily let-bind values of an assoc-list by their names")
9659 (description "This package offers a single macro, @code{let-alist}. This
9660 macro takes a first argument (whose value must be an alist) and a body.")
9661 (license license:gpl3+)))
9662
9663 (define-public emacs-esup
9664 (let ((commit "a589005a9a888537deef94d6fe38a9b8790c97c7")
9665 (revision "1"))
9666 (package
9667 (name "emacs-esup")
9668 (version (string-append "0.6" "-" revision "."
9669 (string-take commit 7)))
9670 (source
9671 (origin
9672 (method git-fetch)
9673 (uri (git-reference
9674 (url "https://github.com/jschaf/esup.git")
9675 (commit commit)))
9676 (file-name (string-append name "-" version "-checkout"))
9677 (sha256
9678 (base32
9679 "04lxmd0h7mfjjl0qghrycgff0vcv950j1wqv0dbkr61jxp64n5fv"))))
9680 ;; TODO: Add tests
9681 (build-system emacs-build-system)
9682 (home-page "https://github.com/jschaf/esup")
9683 (synopsis "Emacs start up profiler")
9684 (description "Benchmark Emacs Startup time without ever leaving
9685 your Emacs.")
9686 (license license:gpl2+))))
9687
9688 (define-public emacs-sourcemap
9689 (package
9690 (name "emacs-sourcemap")
9691 (version "0.03")
9692 (source
9693 (origin
9694 (method url-fetch)
9695 (uri (string-append "https://github.com/syohex/emacs-sourcemap/archive/"
9696 version ".tar.gz"))
9697 (file-name (string-append name "-" version ".tar.gz"))
9698 (sha256
9699 (base32
9700 "0bmd5l3cx2iyl7vxn84xdhs80b07kpdpfwki28lh5d0kmm5qs6m6"))))
9701 (build-system emacs-build-system)
9702 (home-page "https://github.com/syohex/emacs-sourcemap")
9703 (synopsis "Sourcemap parser")
9704 (description "Sourcemap parser")
9705 (license license:gpl3+)))
9706
9707 (define-public emacs-macrostep
9708 (let ((commit "424e3734a1ee526a1bd7b5c3cd1d3ef19d184267"))
9709 (package
9710 (name "emacs-macrostep")
9711 (version (git-version "0.9" "1" commit))
9712 (source (origin
9713 (method git-fetch)
9714 (uri (git-reference
9715 (url "https://github.com/joddie/macrostep.git")
9716 (commit commit)))
9717 (file-name (string-append name "-" version "-checkout"))
9718 (sha256
9719 (base32
9720 "1fm40mxdn289cyzgw992223dgrjmwxn4q8svyyxfaxjrpb38jhjz"))))
9721 (build-system emacs-build-system)
9722 (arguments
9723 '(#:phases
9724 (modify-phases %standard-phases
9725 (add-before 'check 'remove-test
9726 ;; Fails because of requirement ‘/bin/sh’.
9727 (lambda _
9728 (let ((file "macrostep-test.el"))
9729 (chmod file #o644)
9730 (emacs-batch-edit-file file
9731 `(progn (progn (goto-char (point-min))
9732 (re-search-forward
9733 "(ert-deftest macrostep-expand-c-macros")
9734 (beginning-of-line)
9735 (kill-sexp))
9736 (basic-save-buffer))))))
9737 (add-before 'install 'check
9738 (lambda _
9739 (invoke "emacs" "--batch" "-L" "."
9740 "-l" "macrostep-test.el"
9741 "-f" "ert-run-tests-batch-and-exit"))))))
9742 (home-page "https://github.com/joddie/macrostep")
9743 (synopsis "Interactive macro-expander for Emacs")
9744 (description "@code{macrostep} is an Emacs minor mode for interactively
9745 stepping through the expansion of macros in Emacs Lisp source code. It lets
9746 you see exactly what happens at each step of the expansion process by
9747 pretty-printing the expanded forms inline in the source buffer, which is
9748 temporarily read-only while macro expansions are visible. You can expand and
9749 collapse macro forms one step at a time, and evaluate or instrument the
9750 expansions for debugging with Edebug as normal (but see “Bugs and known
9751 limitations”, below). Single-stepping through the expansion is particularly
9752 useful for debugging macros that expand into another macro form. These can be
9753 difficult to debug with Emacs’ built-in macroexpand, which continues expansion
9754 until the top-level form is no longer a macro call.")
9755 (license license:gpl3+))))
9756
9757 (define-public emacs-parent-mode
9758 (package
9759 (name "emacs-parent-mode")
9760 (version "2.3")
9761 (source
9762 (origin
9763 (method url-fetch)
9764 (uri (string-append "https://github.com/Fanael/parent-mode/archive/"
9765 version ".tar.gz"))
9766 (file-name (string-append name "-" version ".tar.gz"))
9767 (sha256
9768 (base32
9769 "0gxbl5s1w96v6v55b7aaansgw4sxhzfx9nrsvpk3pfhsibs6yqjd"))))
9770 (build-system emacs-build-system)
9771 (home-page "https://github.com/Fanael/parent-mode")
9772 (synopsis "Get major mode's parent modes")
9773 (description "Get major mode's parent modes")
9774 (license license:gpl3+)))
9775
9776 (define-public emacs-lacarte
9777 (package
9778 (name "emacs-lacarte")
9779 (version "0.1")
9780 (source (origin
9781 (method url-fetch)
9782 (uri "https://www.emacswiki.org/emacs/download/lacarte.el")
9783 (sha256
9784 (base32
9785 "1sbmk37ljq5j7dsw5c37sbxvlfgdqswh7bi4dknyjzfxlq50f4am"))))
9786 (build-system emacs-build-system)
9787 (home-page "https://www.emacswiki.org/emacs/lacarte.el")
9788 (synopsis "Execute menu items as commands, with completion")
9789 (description "Execute menu items as commands, with completion.")
9790 (license license:gpl3)))
9791
9792 (define-public emacs-company-lua
9793 (let ((commit "0be8122f3adf57ad27953bf4b03545d6298d3da4"))
9794 (package
9795 (name "emacs-company-lua")
9796 (version (git-version "0.1" "1" commit))
9797 (source
9798 (origin
9799 (method git-fetch)
9800 (uri (git-reference
9801 (url "https://github.com/ptrv/company-lua.git")
9802 (commit commit)))
9803 (file-name (git-file-name name version))
9804 (sha256
9805 (base32
9806 "1d9i165apgmwns7b2fd5wcpjpkah3dyj20v5sb8ynvz6qhhr5r9c"))))
9807 (build-system emacs-build-system)
9808 (propagated-inputs
9809 `(("emacs-company" ,emacs-company)
9810 ("emacs-s" ,emacs-s)
9811 ("emacs-f" ,emacs-f)
9812 ("emacs-lua-mode" ,emacs-lua-mode)))
9813 (home-page "https://github.com/ptrv/company-lua")
9814 (synopsis "Company backend for Lua")
9815 (description
9816 "This package provides Company backend for Lua programming language.")
9817 (license license:gpl3+))))
9818
9819 (define-public emacs-beginend
9820 (package
9821 (name "emacs-beginend")
9822 (version "2.0.0")
9823 (source
9824 (origin
9825 (method url-fetch)
9826 (uri (string-append "https://github.com/DamienCassou/beginend/archive/"
9827 "v" version ".tar.gz"))
9828 (file-name (string-append name "-" version ".tar.gz"))
9829 (sha256
9830 (base32
9831 "0z4rbwffh9vxfvcrlvym4p73z7gf72q0b5iv33llbpcpbijknnrq"))))
9832 ;; TODO: Run tests.
9833 (build-system emacs-build-system)
9834 (inputs
9835 `(("emacs-undercover" ,emacs-undercover))) ; For tests.
9836 (home-page "https://github.com/DamienCassou/beginend")
9837 (synopsis "Redefine @code{M-<} and @code{M->} for Emacs modes")
9838 (description "@code{beginend} redefines @code{M-<} and @code{M->}
9839 keybindings for Emacs modes so that point moves to meaningful
9840 locations. Redefined keys are still accessible by pressing the same
9841 key again.")
9842 (license license:gpl3+)))
9843
9844 (define-public emacs-mbsync
9845 (let ((commit "42077e83ae2db778ce0f8e22f8357b40355526b3")
9846 (revision "1"))
9847 (package
9848 (name "emacs-mbsync")
9849 (version (string-append "0.0.1" "-" revision "."
9850 (string-take commit 7)))
9851 (source
9852 (origin
9853 (method git-fetch)
9854 (uri (git-reference
9855 (url "https://github.com/dimitri/mbsync-el.git")
9856 (commit commit)))
9857 (file-name (string-append name "-" version "-checkout"))
9858 (sha256
9859 (base32
9860 "0yj93y2mpxlir8x73znlg1slxlv4blm1vjv5h2w3j8lxg8bxvmn6"))))
9861 (build-system emacs-build-system)
9862 (home-page "https://github.com/dimitri/mbsync-el")
9863 (synopsis "Interface to mbsync for Emacs")
9864 (description "This package allows to call the @code{mbsync} from
9865 within Emacs.")
9866 (license license:gpl3+))))
9867
9868 (define-public emacs-ibuffer-projectile
9869 (let ((commit "c18ac540ee46cb759fc5df18747f6e8d23563011")
9870 (revision "1"))
9871 (package
9872 (name "emacs-ibuffer-projectile")
9873 (version (string-append "0.2" "-" revision "."
9874 (string-take commit 7)))
9875 (source
9876 (origin
9877 (method git-fetch)
9878 (uri (git-reference
9879 (url "https://github.com/purcell/ibuffer-projectile.git")
9880 (commit commit)))
9881 (file-name (string-append name "-" version "-checkout"))
9882 (sha256
9883 (base32
9884 "1nd26cwwdpnwj0g4w393rd59klpyr6wqrnyr6scmwb5d06bsm44n"))))
9885 (build-system emacs-build-system)
9886 (propagated-inputs
9887 `(("emacs-projectile" ,emacs-projectile)))
9888 (home-page "https://github.com/purcell/ibuffer-projectile")
9889 (synopsis "Group ibuffer's list by projectile root")
9890 (description "Adds functionality to Emacs @code{ibuffer} for
9891 grouping buffers by their projectile root directory.")
9892 (license license:gpl3+))))
9893
9894 (define-public emacs-helm-mode-manager
9895 (package
9896 (name "emacs-helm-mode-manager")
9897 (version "1.0.0")
9898 (source
9899 (origin
9900 (method url-fetch)
9901 (uri (string-append "https://github.com/istib/helm-mode-manager/"
9902 "archive/" version ".tar.gz"))
9903 (file-name (string-append name "-" version ".tar.gz"))
9904 (sha256
9905 (base32
9906 "0wllj321z16hgrx0ddwzk5wz4mnnx5am7w5nclqclfc5dfdn92wm"))))
9907 (build-system emacs-build-system)
9908 (propagated-inputs
9909 `(("emacs-helm" ,emacs-helm)))
9910 (home-page "https://github.com/istib/helm-mode-manager/")
9911 (synopsis "Switch and toggle Emacs major and minor modes using Helm")
9912 (description "This package provides a Helm interface for toggling Emacs
9913 major or minor mode.
9914
9915 @itemize
9916 @item @code{helm-switch-major-mode} list of all major modes
9917 @item @code{helm-enable-minor-mode} list of all inactive minor modes
9918 @item @code{helm-disable-minor-mode} list of all ACTIVE minor modes
9919 @end itemize\n
9920
9921 Hitting @code{RET} enables the mode, @code{C-z} shows the mode
9922 documentation.")
9923 (license license:gpl3+)))
9924
9925 (define-public emacs-hy-mode
9926 (package
9927 (name "emacs-hy-mode")
9928 (version "1.0.3")
9929 (source
9930 (origin
9931 (method url-fetch)
9932 (uri (string-append "https://github.com/hylang/hy-mode/archive/"
9933 "v" version ".tar.gz"))
9934 (file-name (string-append name "-" version ".tar.gz"))
9935 (sha256
9936 (base32
9937 "0b4pvbr2hf77bq2vsyfsv653q0dab7qzq85wc7kdziw7687jdf2z"))))
9938 (build-system emacs-build-system)
9939 (propagated-inputs
9940 `(("emacs-dash" ,emacs-dash)
9941 ("emacs-s" ,emacs-s)))
9942 (home-page "https://github.com/hylang/hy-mode")
9943 (synopsis "Major mode for Hylang")
9944 (description "This package provides a major mode for Hylang.")
9945 (license license:gpl3+)))
9946
9947 (define-public emacs-web-beautify
9948 (package
9949 (name "emacs-web-beautify")
9950 (version "0.3.2")
9951 (source
9952 (origin
9953 (method url-fetch)
9954 (uri (string-append "https://github.com/yasuyk/web-beautify/archive/"
9955 version ".tar.gz"))
9956 (file-name (string-append name "-" version ".tar.gz"))
9957 (sha256
9958 (base32
9959 "1j57hwid74id4swkx2g0iljfawx0k9c7qjrwqc0mv657x9p78hcs"))))
9960 (build-system emacs-build-system)
9961 (home-page "https://github.com/yasuyk/web-beautify")
9962 (synopsis "Format HTML, CSS and JavaScript, JSON")
9963 (description "This package provides an Emacs functions to format HTML,
9964 CSS, JavaScript, JSON.")
9965 (license license:gpl3+)))
9966
9967 (define-public emacs-helm-shell-history
9968 (let ((commit "110d3c35c52fe4b89b29e79ea4c8626bce7266a1"))
9969 (package
9970 (name "emacs-helm-shell-history")
9971 (version (git-version "0.1" "1" commit))
9972 (source
9973 (origin
9974 (method git-fetch)
9975 (uri (git-reference
9976 (url "https://github.com/yuutayamada/helm-shell-history.git")
9977 (commit commit)))
9978 (file-name (git-file-name name version))
9979 (sha256
9980 (base32
9981 "18fkjcz69g4dyaxhf9j8svr5x6dhsdnglddwisis8hdn504scpfj"))))
9982 (build-system emacs-build-system)
9983 (arguments
9984 '(#:phases
9985 (modify-phases %standard-phases
9986 (add-before 'check 'patch-helm-shell-history-file
9987 (lambda _
9988 (let ((file "helm-shell-history.el"))
9989 (chmod file #o644)
9990 (emacs-substitute-sexps file
9991 ("(defvar helm-shell-history-file"
9992 `(expand-file-name "~/.bash_history"))))
9993 #t)))))
9994 (propagated-inputs
9995 `(("emacs-helm" ,emacs-helm)))
9996 (home-page "https://github.com/yuutayamada/helm-shell-history")
9997 (synopsis "Find shell history with Emacs Helm")
9998 (description "This package provides an Emacs Helm interface to search
9999 throw a shell history.")
10000 (license license:gpl3+))))
10001
10002 (define-public emacs-discover-my-major
10003 (package
10004 (name "emacs-discover-my-major")
10005 (version "1.0")
10006 (source
10007 (origin
10008 (method url-fetch)
10009 (uri
10010 (string-append "https://github.com/steckerhalter/discover-my-major"
10011 "/archive/" version ".tar.gz"))
10012 (file-name (string-append name "-" version ".tar.gz"))
10013 (sha256
10014 (base32
10015 "0nah41f92rrl2l405kpqr6iaks11jyclgl4z7ilfymbr4ifmsiyl"))))
10016 (build-system emacs-build-system)
10017 (propagated-inputs
10018 `(("emacs-makey" ,emacs-makey)))
10019 (home-page "https://github.com/steckerhalter/discover-my-major")
10020 (synopsis "Discover key bindings for the current Emacs major mode")
10021 (description "This package provides allows to discover key bindings and
10022 their meaning for the current Emacs major-mode.")
10023 (license license:gpl3+)))
10024
10025 (define-public emacs-org-ref
10026 (let ((commit "8c9b5d7efb9f0c1ad5186b8203bdd017f4249129")
10027 (revision "1"))
10028 (package
10029 (name "emacs-org-ref")
10030 (version (string-append "1.1.1" "-" revision "."
10031 (string-take commit 7)))
10032 (source
10033 (origin
10034 (method git-fetch)
10035 (uri (git-reference
10036 (url "https://github.com/jkitchin/org-ref.git")
10037 (commit commit)))
10038 (file-name (string-append name "-" version "-checkout"))
10039 (sha256
10040 (base32
10041 "1rxz0bjdsayk0slv23i07d9xhj2m7s4hsc81wc2d1cs52dkr5zmz"))))
10042 (build-system emacs-build-system)
10043 (propagated-inputs
10044 `(("emacs-dash" ,emacs-dash)
10045 ("emacs-helm" ,emacs-helm)
10046 ("emacs-helm-bibtex" ,emacs-helm-bibtex)
10047 ("emacs-ivy" ,emacs-ivy)
10048 ("emacs-hydra" ,emacs-hydra)
10049 ("emacs-key-chord" ,emacs-key-chord)
10050 ("emacs-s" ,emacs-s)
10051 ("emacs-f" ,emacs-f)
10052 ("emacs-pdf-tools" ,emacs-pdf-tools)))
10053 (home-page "https://github.com/jkitchin/org-ref")
10054 (synopsis "Citations, cross-references and bibliographies in org-mode")
10055 (description
10056 "Lisp code to setup bibliography, cite, ref and label org-mode links.
10057 Also sets up reftex and helm for org-mode citations. The links are
10058 clickable and do things that are useful.
10059
10060 The default setup uses helm-bibtex.
10061
10062 You should really read org-ref.org in this package for details.")
10063 (license license:gpl3+))))
10064
10065 (define-public emacs-org-reveal
10066 (package
10067 (name "emacs-org-reveal")
10068 ;; There are no proper tag, so we use the latest commit of the stable
10069 ;; branch, as does MELPA.
10070 (version "20161027.926")
10071 (source (origin
10072 (method git-fetch)
10073 (uri (git-reference
10074 (url "https://github.com/yjwen/org-reveal.git")
10075 (commit "001567cc12d50ba07612edd1718b86a12e8c2547")))
10076 (file-name (string-append name "-" version "-checkout"))
10077 (sha256
10078 (base32
10079 "18rma8smjrskbjyna076zhvx79zs5r5vinb537h8mw13pfxd6cm8"))))
10080 (build-system emacs-build-system)
10081 (home-page "https://github.com/yjwen/org-reveal")
10082 (synopsis "Org and Reveal.js powered HTML presentation tool")
10083 (description "Org-Reveal is a command@{org-mode} extension that allows to
10084 create beautiful presentations (slides) with 3D effects from simple but
10085 powerful Org contents.")
10086 (license license:gpl3+)))
10087
10088 (define-public emacs-add-hooks
10089 (package
10090 (name "emacs-add-hooks")
10091 (version "3.1.1")
10092 (source (origin
10093 (method url-fetch)
10094 (uri (string-append
10095 "https://github.com/nickmccurdy/add-hooks/archive/"
10096 version ".tar.gz"))
10097 (file-name (string-append name "-" version ".tar.gz"))
10098 (sha256
10099 (base32
10100 "03a28gb3298g7pc2qji9hi44p4d99ljp5mpi9cmg42ldv8fl6549"))))
10101 (build-system emacs-build-system)
10102 (home-page "https://github.com/nickmccurdy/add-hooks/")
10103 (synopsis "Emacs function for setting multiple hooks")
10104 (description "This package provides a @code{add-hooks} function tidies up
10105 duplicate hook and function names further into a single declarative call.")
10106 (license license:gpl3+)))
10107
10108 (define-public emacs-fancy-narrow
10109 (package
10110 (name "emacs-fancy-narrow")
10111 (version "0.9.5")
10112 (source
10113 (origin
10114 (method url-fetch)
10115 (uri (string-append "https://github.com/Malabarba/fancy-narrow/archive/"
10116 version ".tar.gz"))
10117 (file-name (string-append name "-" version ".tar.gz"))
10118 (sha256
10119 (base32
10120 "0rf2rnzg82pdqch041yyx3f9ddixffkk9s2ydzg8hwy66sg3385n"))))
10121 (build-system emacs-build-system)
10122 (home-page "https://github.com/Malabarba/fancy-narrow/releases")
10123 (synopsis "Imitate @code{narrow-to-region} with more eye candy")
10124 (description
10125 "Unlike @code{narrow-to-region}, which completely hides text outside
10126 the narrowed region, this package simply de-emphasizes the text, makes it
10127 read-only, and makes it unreachable. This leads to a much more natural
10128 feeling where the region stays static (instead of being brutally moved to a
10129 blank slate) and is clearly highlighted with respect to the rest of the
10130 buffer.")
10131 (license license:gpl2+)))
10132
10133 (define-public emacs-know-your-http-well
10134 (package
10135 (name "emacs-know-your-http-well")
10136 (version "0.5.0")
10137 (source
10138 (origin
10139 (method url-fetch)
10140 (uri (string-append
10141 "https://github.com/for-GET/know-your-http-well/archive/"
10142 "v" version ".tar.gz"))
10143 (file-name (string-append name "-" version ".tar.gz"))
10144 (sha256
10145 (base32
10146 "1y3kwz88awcgwaivlswq0q4g2i02762r23lpwg61bfqy5lrjjqnj"))))
10147 (arguments
10148 `(#:phases
10149 (modify-phases %standard-phases
10150 (add-after 'unpack 'install-json-files
10151 (lambda* (#:key outputs #:allow-other-keys)
10152 (for-each (lambda (directory)
10153 (copy-recursively directory
10154 (string-append
10155 (assoc-ref outputs "out")
10156 directory)))
10157 '("js" "json"))))
10158 (add-after 'unpack 'chdir-elisp
10159 ;; Elisp directory is not in root of the source.
10160 (lambda _
10161 (chdir "emacs"))))))
10162 (build-system emacs-build-system)
10163 (home-page "https://github.com/for-GET/know-your-http-well")
10164 (synopsis "Meaning of HTTP headers codes")
10165 (description "Meaning of HTTP headers codes.")
10166 (license license:gpl3+)))
10167
10168 (define-public emacs-navi-mode
10169 (let ((commit "c1d38e8237f4e14af020a0b7d4f118ea198ab674"))
10170 (package
10171 (name "emacs-navi-mode")
10172 (version (git-version "2.0" "1" commit))
10173 (source
10174 (origin
10175 (method git-fetch)
10176 (uri (git-reference
10177 (url "https://github.com/alphapapa/navi.git")
10178 (commit commit)))
10179 (file-name (git-file-name name version))
10180 (sha256
10181 (base32
10182 "0jj5spk14hgb7zb1cd2n8whcw4k1kd5zb6llwj96v178yaws7l8k"))))
10183 (build-system emacs-build-system)
10184 (propagated-inputs
10185 `(("emacs-outshine" ,emacs-outshine)
10186 ("emacs-outorg" ,emacs-outorg)))
10187 (home-page "https://github.com/alphapapa/navi")
10188 (synopsis "Emacs major-mode for easy buffer-navigation")
10189 (description
10190 "This package provides an Emacs major-mode for easy buffer-navigation")
10191 (license license:gpl3+))))
10192
10193 (define-public emacs-download-region
10194 (let ((commit "eb9e557529a73b4cfc8281c70dd0d95db333fffa")
10195 (revision "1"))
10196 (package
10197 (name "emacs-download-region")
10198 (version (string-append "0.0.1" "-" revision "."
10199 (string-take commit 7)))
10200 (source
10201 (origin
10202 (method git-fetch)
10203 (uri (git-reference
10204 (url "https://github.com/zk-phi/download-region.git")
10205 (commit commit)))
10206 (file-name (string-append name "-" version "-checkout"))
10207 (sha256
10208 (base32
10209 "0v52djg39b6k2snizd9x0qc009ws5y0ywqsfwhqgcbs5ymzh7dsc"))))
10210 (build-system emacs-build-system)
10211 (home-page "https://github.com/zk-phi/download-region")
10212 (synopsis "In buffer download manager for Emacs")
10213 (description "@code{download-region} provides in buffer
10214 downloading manager for Emacs.")
10215 (license license:gpl3+))))
10216
10217 (define-public emacs-helpful
10218 (package
10219 (name "emacs-helpful")
10220 (version "0.15")
10221 (source (origin
10222 (method url-fetch)
10223 (uri (string-append
10224 "https://github.com/Wilfred/helpful/archive/"
10225 version ".tar.gz"))
10226 (file-name (string-append name "-" version ".tar.gz"))
10227 (sha256
10228 (base32
10229 "1xmvhphzb4hbg647dz4lafy6hd19b7bk3lxni6irqrzdsrclhzn6"))))
10230 (build-system emacs-build-system)
10231 (propagated-inputs
10232 `(("emacs-elisp-refs" ,emacs-elisp-refs)))
10233 (home-page "https://github.com/Wilfred/helpful")
10234 (synopsis "More contextual information in Emacs help")
10235 (description "@code{helpful} is an alternative to the built-in Emacs help
10236 that provides much more contextual information.
10237
10238 @itemize
10239 @item Show the source code for interactively defined functions (unlike the
10240 built-in Help).
10241 @item Fall back to the raw sexp if no source is available.
10242 @item Show where a function is being called.
10243 @item Docstrings will Highlight the summary (the first sentence), include
10244 cross-references, hide superfluous puncuation.
10245 @item Show you the properties that have been applied to the current
10246 symbol. This provides visibility of features like edebug or byte-code
10247 optimisation.
10248 @item Provide a separate @code{helpful-command} function to view interactive
10249 functions.
10250 @item Display any keybindings that apply to interactive functions.
10251 @item Trace, disassemble functions from inside Helpful. This is discoverable
10252 and doesn't require memorisation of commands.
10253 @end itemize\n")
10254 (license license:gpl3+)))
10255
10256 (define-public emacs-logview
10257 (package
10258 (name "emacs-logview")
10259 (version "0.9")
10260 (source (origin
10261 (method url-fetch)
10262 (uri (string-append
10263 "https://github.com/doublep/logview/archive/"
10264 version ".tar.gz"))
10265 (file-name (string-append name "-" version ".tar.gz"))
10266 (sha256
10267 (base32
10268 "1vd11ppm46ldqsiwhqgw91p34gbjh1y82r9mxcn9r2gj65nvhxcp"))))
10269 (propagated-inputs
10270 `(("emacs-datetime" ,emacs-datetime)))
10271 (build-system emacs-build-system)
10272 (home-page "https://github.com/doublep/logview/")
10273 (synopsis "Emacs mode for viewing log files")
10274 (description "@code{logview} provides an Emacs mode to view log files.")
10275 (license license:gpl3+)))
10276
10277 (define-public emacs-suggest
10278 (package
10279 (name "emacs-suggest")
10280 (version "0.4")
10281 (source
10282 (origin
10283 (method url-fetch)
10284 (uri (string-append "https://github.com/Wilfred/suggest.el/archive/"
10285 version ".tar.gz"))
10286 (file-name (string-append name "-" version ".tar.gz"))
10287 (sha256
10288 (base32
10289 "1760fm3j19w8xxcawq6s859h86q1rdg69pg9yz48n76kwfk3vlgp"))))
10290 (build-system emacs-build-system)
10291 (propagated-inputs
10292 `(("emacs-loop" ,emacs-loop)
10293 ("emacs-dash" ,emacs-dash)
10294 ("emacs-s" ,emacs-s)
10295 ("emacs-f" ,emacs-f)))
10296 (home-page "https://github.com/Wilfred/suggest.el")
10297 (synopsis "Suggest Elisp functions that give the output requested")
10298 (description "Suggest.el will find functions that give the output
10299 requested. It's a great way of exploring list, string and arithmetic
10300 functions.")
10301 (license license:gpl3+)))
10302
10303 (define-public emacs-benchmark-init
10304 (package
10305 (name "emacs-benchmark-init")
10306 (version "1.0")
10307 (source (origin
10308 (method url-fetch)
10309 (uri (string-append
10310 "https://github.com/dholm/benchmark-init-el/archive/"
10311 version ".tar.gz"))
10312 (file-name (string-append name "-" version ".tar.gz"))
10313 (sha256
10314 (base32
10315 "0szyqr4nncwz4vd5gww1vz31kf9r2lx25p4d0d09pm35974x53kz"))))
10316 (build-system emacs-build-system)
10317 (home-page "https://github.com/dholm/benchmark-init-el")
10318 (synopsis "Benchmark Emacs @code{require} and @code{load} calls")
10319 (description "@code{benchmark-init} provides a way to keep track of where
10320 time is being spent during Emacs startup in order to optimize startup time.")
10321 (license license:gpl3+)))
10322
10323 (define-public emacs-emms-player-simple-mpv
10324 ;; A new mpv backend is included in Emms from 5.0.
10325 (deprecated-package "emacs-emms-player-simple-mpv" emacs-emms))
10326
10327 (define-public emacs-magit-org-todos-el
10328 (let ((commit "df206287737b9671f2e36ae7b1474ebbe9940d2a"))
10329 (package
10330 (name "emacs-magit-org-todos-el")
10331 (version (git-version "0.1.1" "1" commit))
10332 (source
10333 (origin
10334 (method git-fetch)
10335 (uri (git-reference
10336 (url "https://github.com/danielma/magit-org-todos.el.git")
10337 (commit commit)))
10338 (file-name (git-file-name name version))
10339 (sha256
10340 (base32
10341 "0kdp7k7jnnrkhsg0xh1c3h7iz0vgi120gf5xwl1hxy61avivnxrn"))))
10342 (propagated-inputs
10343 `(("magit" ,emacs-magit)))
10344 (build-system emacs-build-system)
10345 (home-page "https://github.com/danielma/magit-org-todos.el")
10346 (synopsis "Get todo.org into Emacs Magit status")
10347 (description "This package allows you to get @file{todo.org} into your
10348 magit status.
10349
10350 If you have a @file{todo.org} file with @code{TODO} items in the root of your
10351 repository, @code{magit-org-todos} will create a section in your Magit status
10352 buffer with each of your todos.")
10353 (license license:gpl3+))))
10354
10355 (define-public emacs-f3
10356 (package
10357 (name "emacs-f3")
10358 (version "0.1")
10359 (source
10360 (origin
10361 (method url-fetch)
10362 (uri (string-append "https://github.com/cosmicexplorer/f3/archive/"
10363 version ".tar.gz"))
10364 (file-name (string-append name "-" version ".tar.gz"))
10365 (sha256
10366 (base32
10367 "06b8i1jvklm5k3k90n65f197l1miq1xlxqkqpbppw4h3rhl4y98h"))))
10368 (build-system emacs-build-system)
10369 (propagated-inputs
10370 `(("emacs-helm" ,emacs-helm)))
10371 (home-page "https://github.com/cosmicexplorer/f3")
10372 (synopsis "Fantastic File Finder for Emacs")
10373 (description
10374 "The Fantastic File Finder for Emacs. Find files fast, using helm.")
10375 (license license:gpl3+)))
10376
10377 (define-public emacs-lice-el
10378 (let ((commit "4339929927c62bd636f89bb39ea999d18d269250"))
10379 (package
10380 (name "emacs-lice-el")
10381 (version (git-version "0.2" "1" commit))
10382 (source (origin
10383 (method git-fetch)
10384 (uri (git-reference
10385 (url "https://github.com/buzztaiki/lice-el.git")
10386 (commit commit)))
10387 (file-name (git-file-name name version))
10388 (sha256
10389 (base32
10390 "0879z761b7gajkhq176ps745xpdrivch349crransv8fnsc759yb"))))
10391 (build-system emacs-build-system)
10392 (home-page "https://github.com/buzztaiki/lice-el")
10393 (synopsis "License and header template for Emacs")
10394 (description "@code{lice.el} provides following features:
10395
10396 @itemize
10397 @item License template management.
10398 @item File header insertion.
10399 @end itemize\n")
10400 (license license:gpl3+))))
10401
10402 (define-public emacs-academic-phrases
10403 (let ((commit "0823ed8c24b26c32f909b896a469833ec4d7b656"))
10404 (package
10405 (name "emacs-academic-phrases")
10406 (version (git-version "0.1" "1" commit))
10407 (source
10408 (origin
10409 (method git-fetch)
10410 (uri (git-reference
10411 (url "https://github.com/nashamri/academic-phrases.git")
10412 (commit commit)))
10413 (file-name (string-append name "-" version "-checkout"))
10414 (sha256
10415 (base32
10416 "0qfzsq8jh05w4zkr0cvq3i1hdn97bq344vcqjg46sib26x3wpz6r"))))
10417 (build-system emacs-build-system)
10418 (propagated-inputs
10419 `(("emacs-dash" ,emacs-dash)
10420 ("emacs-s" ,emacs-s)
10421 ("emacs-ht" ,emacs-ht)))
10422 (home-page "https://github.com/nashamri/academic-phrases")
10423 (synopsis "Bypass that mental block when writing your papers")
10424 (description
10425 "When writing your academic paper, you might get stuck trying to find
10426 the right phrase that captures your intention. This package tries to
10427 alleviate that problem by presenting you with a list of phrases organized by
10428 the topic or by the paper section that you are writing. This package has
10429 around 600 phrases so far.
10430
10431 Using this package is easy, just call @code{academic-phrases} to get a list of
10432 phrases organized by topic, or call @code{academic-phrases-by-section} to
10433 browse the phrases by the paper section and fill-in the blanks if required.")
10434 (license license:gpl3+))))
10435
10436 (define-public emacs-auto-yasnippet
10437 (let ((commit "d1ccfea87312c6dd8cf8501ab5b71b1d3d44d95b"))
10438 (package
10439 (name "emacs-auto-yasnippet")
10440 (version (git-version "0.3.0" "1" commit))
10441 (source (origin
10442 (method git-fetch)
10443 (uri (git-reference
10444 (url "https://github.com/abo-abo/auto-yasnippet.git")
10445 (commit commit)))
10446 (file-name (string-append name "-" version "-checkout"))
10447 (sha256
10448 (base32
10449 "1i8k2qiyzd5rq0zplk4xb5nfa5mp0ibxbzwqj6c7877waq7244xk"))))
10450 (build-system emacs-build-system)
10451 (arguments
10452 '(#:phases
10453 (modify-phases %standard-phases
10454 (add-before 'install 'check
10455 (lambda _
10456 (invoke "emacs" "--batch"
10457 "-l" "auto-yasnippet.el"
10458 "-l" "auto-yasnippet-test.el"
10459 "-f" "ert-run-tests-batch-and-exit"))))))
10460 (propagated-inputs
10461 `(("emacs-yasnippet" ,emacs-yasnippet)))
10462 (home-page "https://github.com/abo-abo/auto-yasnippet/")
10463 (synopsis "Quickly create disposable yasnippets")
10464 (description "This package provides a hybrid of keyboard macros and
10465 yasnippet. You create the snippet on the go, usually to be used just in the
10466 one place. It's fast, because you're not leaving the current buffer, and all
10467 you do is enter the code you'd enter anyway, just placing ~ where you'd like
10468 yasnippet fields and mirrors to be.")
10469 (license license:gpl3+))))
10470
10471 (define-public emacs-highlight-numbers
10472 (package
10473 (name "emacs-highlight-numbers")
10474 (version "0.2.3")
10475 (source
10476 (origin
10477 (method url-fetch)
10478 (uri (string-append
10479 "https://github.com/Fanael/highlight-numbers/archive/"
10480 version ".tar.gz"))
10481 (file-name (string-append name "-" version ".tar.gz"))
10482 (sha256
10483 (base32
10484 "030v5p11d4n0581ncv499l1fqrmfziy756q6378x2bv22ixghqqp"))))
10485 (build-system emacs-build-system)
10486 (propagated-inputs
10487 `(("emacs-parent-mode" ,emacs-parent-mode)))
10488 (home-page "https://github.com/Fanael/highlight-numbers")
10489 (synopsis "Highlight numbers in source code")
10490 (description "@code{highlight-numbers-mode} provides a minor mode for
10491 syntax highlighting of numeric literals in source code.
10492
10493 It s customizable: it's easy to add or redefine what exactly consitutes a
10494 \"number\" in given major mode. See @code{highlight-numbers-modelist}.")
10495 (license license:gpl3+)))
10496
10497 (define-public emacs-darkroom
10498 (package
10499 (name "emacs-darkroom")
10500 (version "0.1")
10501 (source (origin
10502 (method url-fetch)
10503 (uri (string-append "https://elpa.gnu.org/packages/darkroom-"
10504 version ".el"))
10505 (sha256
10506 (base32
10507 "0fif8fm1h7x7g16949shfnaik5f5488clsvkf8bi5izpqp3vi6ak"))))
10508 (build-system emacs-build-system)
10509 (home-page "https://elpa.gnu.org/packages/darkroom.html")
10510 (synopsis "Remove visual distractions and focus on writing")
10511 (description "@code{darkroom-mode} makes visual distractions disappear.
10512 The mode-line is temporarily elided, text is enlarged and margins are adjusted
10513 so that it's centered on the window.
10514
10515 @code{darkroom-tentative-mode} is similar, but it doesn't immediately turn-on
10516 @code{darkroom-mode}, unless the current buffer lives in the sole window of
10517 the Emacs frame (i.e. all other windows are deleted). Whenever the frame is
10518 split to display more windows and more buffers, the buffer exits
10519 @code{darkroom-mode}. Whenever they are deleted, the buffer re-enters
10520 @code{darkroom-mode}.")
10521 (license license:gpl3+)))
10522
10523 (define-public emacs-rsw-elisp
10524 (package
10525 (name "emacs-rsw-elisp")
10526 (version "1.0.5")
10527 (source (origin
10528 (method url-fetch)
10529 (uri (string-append "https://github.com/rswgnu/rsw-elisp"
10530 "/archive/" version ".tar.gz"))
10531 (file-name (string-append name "-" version ".tar.gz"))
10532 (sha256
10533 (base32
10534 "1jnn7xfwl3wxc87v44ccsf1wwp80par3xgcvfb1icd6zchjmlcps"))))
10535 (build-system emacs-build-system)
10536 (home-page "https://github.com/rswgnu/rsw-elisp")
10537 (synopsis "Improved expressions that interactively evaluate Emacs Lisp")
10538 (description "This package improves and replaces the GNU Emacs commands
10539 that interactively evaluate Emacs Lisp expressions. The new commands replace
10540 standard key bindings and are all prefixed with @code{rsw-elisp-}. They work
10541 the same way as the old commands when called non-interactively; only the
10542 interactive behavior should be different.")
10543 (license license:gpl3+)))
10544
10545 (define-public emacs-default-text-scale
10546 (let ((commit "968e985e219235f3e744d6d967e592acbaf6e0a8")
10547 (revision "1"))
10548 (package
10549 (name "emacs-default-text-scale")
10550 (version (string-append "0.1" "-" revision "."
10551 (string-take commit 7)))
10552 (source (origin
10553 (method git-fetch)
10554 (uri (git-reference
10555 (url "https://github.com/purcell/default-text-scale")
10556 (commit commit)))
10557 (file-name (string-append name "-" version "-checkout"))
10558 (sha256
10559 (base32
10560 "0zds01c3q5yny6ab1fxfkzzgn1kgl3q23lxxap905f4qd70v922h"))))
10561 (build-system emacs-build-system)
10562 (home-page "https://github.com/purcell/default-text-scale")
10563 (synopsis "Adjust the font size in all Emacs frames")
10564 (description "This package provides commands for increasing or
10565 decreasing the default font size in all GUI Emacs frames.")
10566 (license license:gpl3+))))
10567
10568 (define-public emacs-visual-regexp
10569 (package
10570 (name "emacs-visual-regexp")
10571 (version "1.1.1")
10572 (source
10573 (origin
10574 (method url-fetch)
10575 (uri (string-append "https://github.com/benma/visual-regexp.el/archive/"
10576 "v" version ".tar.gz"))
10577 (file-name (string-append name "-" version ".tar.gz"))
10578 (sha256
10579 (base32
10580 "1czmhvcivlcdyz7rfm0vd4a3xsgmy4qbvbl6yjxc217wrxqflr92"))))
10581 (build-system emacs-build-system)
10582 (home-page "https://github.com/benma/visual-regexp.el/")
10583 (synopsis "Regexp command with interactive visual feedback")
10584 (description "This package provides an Emacs regexp command with
10585 interactive visual feedback.")
10586 (license license:gpl3+)))
10587
10588 (define-public emacs-faceup
10589 (let ((commit "6c92dad56a133e14e7b27831e1bcf9b3a71ff154")
10590 (revision "1"))
10591 (package
10592 (name "emacs-faceup")
10593 (version (string-append "0.0.1" "-" revision "."
10594 (string-take commit 7)))
10595 (source
10596 (origin
10597 (method git-fetch)
10598 (uri (git-reference
10599 (url "https://github.com/Lindydancer/faceup.git")
10600 (commit commit)))
10601 (file-name (string-append name "-" version "-checkout"))
10602 (sha256
10603 (base32
10604 "1yzmy7flrhrh0i10bdszx8idx6r8h6czm4vm4q0z6fp5fw94zwrx"))))
10605 (build-system emacs-build-system)
10606 (home-page "https://github.com/Lindydancer/faceup")
10607 (synopsis "Markup language for faces and font-lock regression testing")
10608 (description "Emacs is capable of highlighting buffers based on
10609 language-specific @code{font-lock} rules. This package makes it possible to
10610 perform regression test for packages that provide font-lock rules.")
10611 (license license:gpl3+))))
10612
10613 (define-public emacs-racket-mode
10614 (let ((commit "b977873e6128f8399432dcd60cc39f6a6f803d9c")
10615 (revision "2"))
10616 (package
10617 (name "emacs-racket-mode")
10618 (version (string-append "0.0.2" "-" revision "."
10619 (string-take commit 7)))
10620 (source
10621 (origin
10622 (method git-fetch)
10623 (uri (git-reference
10624 (url "https://github.com/greghendershott/racket-mode")
10625 (commit commit)))
10626 (file-name (string-append name "-" version "-checkout"))
10627 (sha256
10628 (base32
10629 "0vp4bbbplqvmnhjpl6ajrlydmrhqzil56cfbs18m5c5fddx0zlh7"))))
10630 (build-system emacs-build-system)
10631 (arguments
10632 `(#:include '("\\.el$" "\\.rkt$")))
10633 (propagated-inputs
10634 `(("emacs-faceup" ,emacs-faceup)
10635 ("emacs-s" ,emacs-s)))
10636 (home-page "https://github.com/greghendershott/racket-mode")
10637 (synopsis "Major mode for Racket language")
10638 (description "@code{racket-mode} provides:
10639
10640 @itemize
10641 @item Focus on Racket (not various Schemes).
10642 @item Follow DrRacket concepts where applicable.
10643 @item Thorough font-lock and indent.
10644 @end itemize\n")
10645 (license license:gpl3+))))
10646
10647 (define-public emacs-grep-context
10648 (let ((commit "a17c57e66687a54e195e08afe776bdd60cb6c0a7"))
10649 (package
10650 (name "emacs-grep-context")
10651 (version (git-version "0.1" "1" commit))
10652 (source
10653 (origin
10654 (method git-fetch)
10655 (uri (git-reference
10656 (url "https://github.com/mkcms/grep-context.git")
10657 (commit commit)))
10658 (file-name (string-append name "-" version "-checkout"))
10659 (sha256
10660 (base32
10661 "1nqfa6kjzjshww4hnwg1c0vcr90bdjihy3kmixq3c3jkvxg99b62"))))
10662 (build-system emacs-build-system)
10663 (propagated-inputs
10664 `(("emacs-dash" ,emacs-dash)))
10665 (home-page "https://github.com/nashamri/academic-phrases")
10666 (synopsis "Increase context in compilation and grep buffers")
10667 (description
10668 "This package provides an Emacs package for more context in
10669 compilation/grep buffers. Works with @code{wgrep}, @code{ack}, @code{ag},
10670 @code{ivy}.")
10671 (license license:gpl3+))))
10672
10673 (define-public emacs-helm-firefox
10674 (let ((commit "0ad34b7b5abc485a86cae6920c14de861cbeb085")
10675 (revision "1"))
10676 (package
10677 (name "emacs-helm-firefox")
10678 (version (string-append "0.0.1" "-" revision "."
10679 (string-take commit 7)))
10680 (source
10681 (origin
10682 (method git-fetch)
10683 (uri (git-reference
10684 (url "https://github.com/emacs-helm/helm-firefox.git")
10685 (commit commit)))
10686 (file-name (string-append name "-" version "-checkout"))
10687 (sha256
10688 (base32
10689 "08mjsi2f9s29fkk35cj1rrparjnkm836qmbfdwdz7y51f9varjbs"))))
10690 (propagated-inputs
10691 `(("emacs-helm" ,emacs-helm)))
10692 (build-system emacs-build-system)
10693 (home-page "https://github.com/emacs-helm/helm-firefox")
10694 (synopsis "Display firefox bookmarks with Emacs Helm interface")
10695 (description "Display firefox bookmarks with Emacs Helm interface")
10696 (license license:gpl3+))))
10697
10698 (define-public emacs-interactive-align
10699 (package
10700 (name "emacs-interactive-align")
10701 (version "0.1.0")
10702 (source
10703 (origin
10704 (method url-fetch)
10705 (uri (string-append "https://github.com/mkcms/interactive-align/"
10706 "archive/" "v" version ".tar.gz"))
10707 (file-name (string-append name "-" version ".tar.gz"))
10708 (sha256
10709 (base32
10710 "0sibpgb4lp6yy3pziak8f3hz4b28yj0dqy2nzh51z3d0b63h528m"))))
10711 (build-system emacs-build-system)
10712 (home-page "https://github.com/mkcms/interactive-align/")
10713 (synopsis "Interactive align-regexp command in Emacs")
10714 (description "Interactive align-regexp command in Emacs")
10715 (license license:gpl3+)))
10716
10717 (define-public emacs-shift-number
10718 (package
10719 (name "emacs-shift-number")
10720 (version "0.1")
10721 (source
10722 (origin
10723 (method url-fetch)
10724 (uri (string-append "https://github.com/alezost/shift-number.el"
10725 "/archive/" "v" version ".tar.gz"))
10726 (file-name (string-append name "-" version ".tar.gz"))
10727 (sha256
10728 (base32
10729 "1g79m0hqn9jgpm565vvh8pdfzndc4vw7xisnh5qysj55qfg8cb1x"))))
10730 (build-system emacs-build-system)
10731 (home-page "https://github.com/alezost/shift-number.el")
10732 (synopsis "Increase or decrease the number at point")
10733 (description "@code{emacs-shift-number} provides commands
10734 @code{shift-number-up} to increase and @code{shift-number-down} to
10735 decrease the number at point.")
10736 (license license:gpl3+)))
10737
10738 (define-public emacs-highlight-defined
10739 (package
10740 (name "emacs-highlight-defined")
10741 (version "0.1.5")
10742 (source
10743 (origin
10744 (method url-fetch)
10745 (uri (string-append
10746 "https://github.com/Fanael/highlight-defined/archive/"
10747 version ".tar.gz"))
10748 (file-name (string-append name "-" version ".tar.gz"))
10749 (sha256
10750 (base32
10751 "1ryd66989b5byqdw8jmjrjf0c78iiz72wibld750skcnj5h5h506"))))
10752 (build-system emacs-build-system)
10753 (home-page "https://github.com/Fanael/highlight-defined")
10754 (synopsis "Syntax highlighting of known Elisp symbols")
10755 (description "Minor mode providing syntax highlighting of known Emacs Lisp
10756 symbols. Currently the code distinguishes Lisp functions, built-in functions,
10757 macros, faces and variables. To enable call @code{highlight-defined-mode}. ")
10758 (license license:gpl3+)))
10759
10760 (define-public emacs-parinfer-mode
10761 (package
10762 (name "emacs-parinfer-mode")
10763 (version "0.4.10")
10764 (source
10765 (origin
10766 (method url-fetch)
10767 (uri (string-append "https://github.com/DogLooksGood/parinfer-mode/archive/"
10768 "v" version ".tar.gz"))
10769 (file-name (string-append name "-" version ".tar.gz"))
10770 (sha256
10771 (base32
10772 "06ba9qi59sm9ih9m38fbr8kj4qkvrm58n0c0ngfjz60gnr9x9pcv"))))
10773 (propagated-inputs
10774 `(("emacs-dash" ,emacs-dash)
10775 ("emacs-rainbow-delimiters" ,emacs-rainbow-delimiters)
10776 ("emacs-company" ,emacs-company)))
10777 (build-system emacs-build-system)
10778 (home-page "https://github.com/DogLooksGood/parinfer-mode/")
10779 (synopsis "Lisp structure editing mode")
10780 (description "@code{parinfer-mode} is a proof-of-concept editor
10781 mode for Lisp programming languages. It will infer some changes to
10782 keep Parens and Indentation inline with one another.")
10783 (license license:gpl3+)))
10784
10785 (define-public emacs-helm-eww
10786 (let ((commit "9d36acc433bcf689598b1b4d7d47c9aeb84d6b44"))
10787 (package
10788 (name "emacs-helm-eww")
10789 (version (git-version "0.1" "3" commit))
10790 (source (origin
10791 (method git-fetch)
10792 (uri (git-reference
10793 (url "https://github.com/emacs-helm/helm-eww.git")
10794 (commit commit)))
10795 (file-name (string-append name "-" version "-checkout"))
10796 (sha256
10797 (base32
10798 "06gnf84gx6qbhcw1h5jhjnvcdxkdpv0npm53x3pgqybbll5rn5dy"))))
10799 (propagated-inputs
10800 `(("emacs-helm" ,emacs-helm)))
10801 (build-system emacs-build-system)
10802 (home-page "https://github.com/emacs-helm/helm-eww/")
10803 (synopsis "Helm interface to EWW")
10804 (description "This package provides a Helm interface for EWW buffers,
10805 bookmarks and history.")
10806 (license license:gpl3+))))
10807
10808 (define-public emacs-stumpwm-mode
10809 (let ((commit "8fbe071d2c6c040794060a354eb377218dc10b35")
10810 (revision "1"))
10811 (package
10812 (name "emacs-stumpwm-mode")
10813 (version (string-append "0.0.1-" revision "."
10814 (string-take commit 7)))
10815 (source (origin
10816 (method git-fetch)
10817 (uri (git-reference
10818 (url "https://github.com/stumpwm/stumpwm-contrib.git")
10819 (commit commit)))
10820 (file-name (string-append name "-" version "-checkout"))
10821 (sha256
10822 (base32
10823 "1dfwsvz1c8w6j4jp0kzaz78ml3f5dp0a5pvf090kwpbpg176r7iq"))))
10824 (build-system emacs-build-system)
10825 (arguments
10826 `(#:phases
10827 (modify-phases %standard-phases
10828 (add-after 'unpack 'chdir-elisp
10829 ;; Elisp directory is not in root of the source.
10830 (lambda _
10831 (chdir "util/swm-emacs"))))))
10832 (home-page "https://github.com/stumpwm/stumpwm-contrib")
10833 (synopsis "Emacs minor-mode for Stumpwm")
10834 (description "Emacs minor-mode for Stumpwm")
10835 (license license:gpl3+))))
10836
10837 (define-public emacs-irfc
10838 (package
10839 (name "emacs-irfc")
10840 (version "20130824.507")
10841 (source
10842 (origin
10843 (method url-fetch)
10844 (uri "https://www.emacswiki.org/emacs/download/irfc.el")
10845 (file-name (string-append "irfc-" version ".el"))
10846 (sha256
10847 (base32
10848 "197ybqwbj8qjh2p9pkf5mvqnrkpcgmv8c5s2gvl6msyrabk0mnca"))))
10849 (build-system emacs-build-system)
10850 (home-page "https://www.emacswiki.org/emacs/download/irfc.el")
10851 (synopsis "Interface for IETF RFC document")
10852 (description
10853 "This package provides an Emacs interface for IETF RFC document.")
10854 (license license:gpl3+)))
10855
10856 (define-public emacs-ido-vertical-mode
10857 (package
10858 (name "emacs-ido-vertical-mode")
10859 (version "0.1.6")
10860 (source
10861 (origin
10862 (method url-fetch)
10863 (uri (string-append
10864 "https://github.com/creichert/ido-vertical-mode.el/archive/"
10865 "v" version ".tar.gz"))
10866 (file-name (string-append name "-" version ".tar.gz"))
10867 (sha256
10868 (base32
10869 "0dprdxq8wvqd45dinwj92k0kixr07c8xvspa6i613mjcpxgwjg53"))))
10870 (build-system emacs-build-system)
10871 (home-page "https://github.com/creichert/ido-vertical-mode.el")
10872 (synopsis "Makes ido-mode display vertically")
10873 (description "Makes ido-mode display prospects vertically.")
10874 (license license:gpl3+)))
10875
10876 (define-public emacs-wordgen
10877 (package
10878 (name "emacs-wordgen")
10879 (version "0.1.4")
10880 (source
10881 (origin
10882 (method url-fetch)
10883 (uri (string-append "https://github.com/Fanael/wordgen.el/archive/"
10884 version ".tar.gz"))
10885 (file-name (string-append name "-" version ".tar.gz"))
10886 (sha256
10887 (base32
10888 "1h2iyixdm49h53pwj9ics9gb9h3g6wa4hainpnjg6mfarf49jkmg"))))
10889 (build-system emacs-build-system)
10890 (home-page "https://github.com/Fanael/wordgen.el")
10891 (synopsis "Random word generator")
10892 (description "This package provides functions to generate random words
10893 using user-provided rules.")
10894 (license license:gpl3+)))
10895
10896 (define-public emacs-on-screen
10897 (package
10898 (name "emacs-on-screen")
10899 (version "1.3.2")
10900 (source
10901 (origin
10902 (method url-fetch)
10903 (uri (string-append
10904 "http://elpa.gnu.org/packages/on-screen-" version ".el"))
10905 (file-name (string-append name "-" version ".el"))
10906 (sha256
10907 (base32
10908 "15d18mjgv1pnwl6kf3pr5w64q1322p1l1qlfvnckglwmzy5sl2qv"))))
10909 (build-system emacs-build-system)
10910 (home-page
10911 "https://github.com/michael-heerdegen/on-screen.el")
10912 (synopsis "Guide your eyes while scrolling")
10913 (description
10914 "Scrolling can be distracting because your eyes may lose
10915 orientation. This library implements a minor mode that highlights
10916 the previously visible buffer part after each scroll.")
10917 (license license:gpl3+)))
10918
10919 (define-public emacs-highlight-escape-sequences
10920 (let ((commit "08d846a7aa748209d65fecead2b6a766c3e5cb41")
10921 (revision "1"))
10922 (package
10923 (name "emacs-highlight-escape-sequences")
10924 (version (string-append "0.0.1" "-" revision "."
10925 (string-take commit 7)))
10926 (source
10927 (origin
10928 (method git-fetch)
10929 (uri (git-reference
10930 (url "https://github.com/dgutov/highlight-escape-sequences.git")
10931 (commit commit)))
10932 (file-name (string-append name "-" version "-checkout"))
10933 (sha256
10934 (base32
10935 "05mc3w1f8ykf80914a1yddw6j8cmh0h57llm07xh89s53821v2is"))))
10936 (build-system emacs-build-system)
10937 (home-page "https://github.com/dgutov/highlight-escape-sequences")
10938 (synopsis "Highlight escape sequences in Emacs")
10939 (description "@code{highlight-escape-sequences} provides an
10940 Emacs minor mode to escape sequences in code.")
10941 (license license:gpl3+))))
10942
10943 (define-public emacs-dashboard
10944 (package
10945 (name "emacs-dashboard")
10946 (version "1.2.4")
10947 (source
10948 (origin
10949 (method url-fetch)
10950 (uri (string-append
10951 "https://github.com/rakanalh/emacs-dashboard/archive/"
10952 version ".tar.gz"))
10953 (file-name (string-append name "-" version ".tar.gz"))
10954 (sha256
10955 (base32
10956 "1738lmbgq6gk24hcwic0qjyajr21l5xzhya4pv58dw1bhd6vxv9g"))))
10957 (build-system emacs-build-system)
10958 (propagated-inputs
10959 `(("emacs-page-break-lines" ,emacs-page-break-lines)))
10960 (arguments '(#:include '("\\.el$" "\\.txt$" "\\.png$")))
10961 (home-page "https://github.com/rakanalh/emacs-dashboard")
10962 (synopsis "Startup screen extracted from Spacemacs")
10963 (description "This package provides an extensible Emacs dashboard, with
10964 sections for bookmarks, projectil projects, org-agenda and more. ")
10965 (license license:gpl3+)))
10966
10967 (define-public emacs-slime-company
10968 (package
10969 (name "emacs-slime-company")
10970 (version "1.1")
10971 (source
10972 (origin
10973 (method url-fetch)
10974 (uri (string-append "https://github.com/anwyn/slime-company/archive/"
10975 "v" version ".tar.gz"))
10976 (sha256
10977 (base32
10978 "1myl79pxj501xfr5qc5a24qddsn2l5iaamg7rf7fpny7mr9v70ar"))
10979 (file-name (string-append name "-" version ".tar.gz"))))
10980 (build-system emacs-build-system)
10981 (propagated-inputs
10982 `(("emacs-slime" ,emacs-slime)
10983 ("emacs-company" ,emacs-company)))
10984 (home-page "https://company-mode.github.io")
10985 (synopsis "SLIME completion backend for @code{company-mode}")
10986 (description
10987 "This is a backend implementation for the completion package
10988 @code{company-mode} which supports the normal and the fuzzy completion
10989 modes of SLIME.")
10990 (license license:gpl3+)))
10991
10992 (define-public emacs-sml-mode
10993 (package
10994 (name "emacs-sml-mode")
10995 (version "6.8")
10996 (source
10997 (origin
10998 (method url-fetch)
10999 (uri (string-append "http://elpa.gnu.org/packages/sml-mode-"
11000 version ".el"))
11001 (sha256
11002 (base32
11003 "105fcrz5qp95f2n3fdm3awr6z58sbrjihjss6qnrg4lz2ggbc328"))))
11004 (build-system emacs-build-system)
11005 (home-page "http://elpa.gnu.org/packages/sml-mode.html")
11006 (synopsis "Major mode for editing (Standard) ML")
11007 (description "SML-MODE is a major Emacs mode for editing Standard ML.
11008 It provides syntax highlighting and automatic indentation and
11009 comes with sml-proc which allows interaction with an inferior SML
11010 interactive loop.")
11011 (license license:gpl3+)))
11012
11013 (define-public emacs-eros
11014 (let ((commit "a42e45c9b2397156c684330b0fc90ee0eba773f5")
11015 (revision "1"))
11016 (package
11017 (name "emacs-eros")
11018 (version (string-append "0.0.1" "-" revision "."
11019 (string-take commit 7)))
11020 (source
11021 (origin
11022 (method git-fetch)
11023 (uri (git-reference
11024 (url "https://github.com/xiongtx/eros.git")
11025 (commit commit)))
11026 (file-name (string-append name "-" version "-checkout"))
11027 (sha256
11028 (base32
11029 "0whlsq90v13fz69k3wjrwcwb9gkpfxqjd75mg3nrp85j9nwhb5i4"))))
11030 (build-system emacs-build-system)
11031 (home-page "https://github.com/xiongtx/eros")
11032 (synopsis "Evaluation result overlays")
11033 (description "@code{eros} provides evaluation result overlays.")
11034 (license license:gpl3+))))
11035
11036 (define-public emacs-stickyfunc-enhance
11037 (let ((commit "13bdba51fcd83ccbc3267959d23afc94d458dcb0")
11038 (revision "1"))
11039 (package
11040 (name "emacs-stickyfunc-enhance")
11041 (version "0.1")
11042 (source
11043 (origin
11044 (method git-fetch)
11045 (uri (git-reference
11046 (url "https://github.com/tuhdo/semantic-stickyfunc-enhance.git")
11047 (commit commit)))
11048 (file-name (string-append name "-" version "-checkout"))
11049 (sha256
11050 (base32
11051 "16dxjsr5nj20blww4xpd4jzgjprzzh1nwvb810ggdmp9paf4iy0g"))))
11052 (build-system emacs-build-system)
11053 (home-page "https://github.com/tuhdo/semantic-stickyfunc-enhance")
11054 (synopsis "Enhancement to stock @code{semantic-stickyfunc-mode}")
11055 (description
11056 "@code{semantic-stickyfunc-mode} shows the function point is currently
11057 in at the first line of the current buffer. This is useful when you have a
11058 very long function that spreads more than a screen, and you don't have to
11059 scroll up to read the function name and then scroll down to original position.")
11060 (license license:gpl3+))))
11061
11062 (define-public emacs-git-auto-commit-mode
11063 (package
11064 (name "emacs-git-auto-commit-mode")
11065 (version "4.4.0")
11066 (source
11067 (origin
11068 (method url-fetch)
11069 (uri (string-append
11070 "https://github.com/ryuslash/git-auto-commit-mode/archive/"
11071 version ".tar.gz"))
11072 (file-name (string-append name "-" version ".tar.gz"))
11073 (sha256
11074 (base32
11075 "04avxmalsl3b7zi2vipfw9rb4wrwysnipsbch96skviql9axk870"))))
11076 (build-system emacs-build-system)
11077 (home-page "https://github.com/ryuslash/git-auto-commit-mode")
11078 (synopsis "Emacs Minor mode to automatically commit and push")
11079 (description "@code{git-auto-commit-mode} is an Emacs minor mode that
11080 tries to commit changes to a file after every save.
11081
11082 When @code{gac-automatically-push-p} is non-nil, it also tries to push to
11083 the current upstream.")
11084 (license license:gpl3+)))
11085
11086 (define-public emacs-company-restclient
11087 (package
11088 (name "emacs-company-restclient")
11089 (version "0.1.0")
11090 (source
11091 (origin
11092 (method url-fetch)
11093 (uri (string-append
11094 "https://github.com/iquiw/company-restclient/archive/"
11095 "v" version ".tar.gz"))
11096 (file-name (string-append name "-" version ".tar.gz"))
11097 (sha256
11098 (base32
11099 "1kr3f0wgqlk7r171bvb2kinv7fanwj2md01wdpx04qkgwcr1as00"))))
11100 (build-system emacs-build-system)
11101 (propagated-inputs
11102 `(("emacs-company" ,emacs-company)
11103 ("emacs-know-your-http-well" ,emacs-know-your-http-well)
11104 ("emacs-restclient" ,emacs-restclient)))
11105 (home-page "https://github.com/iquiw/company-restclient")
11106 (synopsis "Company-mode completion back-end for restclient-mode")
11107 (description "@code{company-mode} back-end for
11108 @code{restclient-mode}.
11109
11110 It provides auto-completion for HTTP methods and headers in
11111 @code{restclient-mode}. Completion source is given by
11112 @code{know-your-http-well}.")
11113 (license license:gpl3+)))
11114
11115 (define-public emacs-noflet
11116 (let ((version "20170629")
11117 (revision "1")
11118 (commit "7ae84dc3257637af7334101456dafe1759c6b68a"))
11119 (package
11120 (name "emacs-noflet")
11121 (version (git-version version revision commit))
11122 (source
11123 (origin
11124 (method git-fetch)
11125 (uri (git-reference
11126 (url "https://github.com/nicferrier/emacs-noflet")
11127 (commit commit)))
11128 (file-name (string-append name "-" version "-checkout"))
11129 (sha256
11130 (base32
11131 "0g70gnmfi8n24jzfci9nrj0n9bn1qig7b8f9f325rin8h7x32ypf"))))
11132 (build-system emacs-build-system)
11133 (arguments
11134 `(#:phases
11135 (modify-phases %standard-phases
11136 (add-after 'unpack 'require-dash
11137 ;; noflet.el uses -map from dash, but (require 'dash) is
11138 ;; missing. So, add it.
11139 (lambda _
11140 (substitute* "noflet.el"
11141 ((";;; Code:") ";;; Code:\n(require 'dash)"))
11142 #t)))))
11143 (propagated-inputs
11144 `(("emacs-dash" ,emacs-dash)))
11145 (home-page "https://github.com/nicferrier/emacs-noflet")
11146 (synopsis "Locally override functions")
11147 (description "@code{emacs-noflet} let's you locally override functions,
11148 in the manner of @command{flet}, but with access to the original function
11149 through the symbol: @command{this-fn}.")
11150 (license license:gpl3+))))
11151
11152 (define-public emacs-dumb-jump
11153 (package
11154 (name "emacs-dumb-jump")
11155 (version "0.5.2")
11156 (source
11157 (origin
11158 (method url-fetch)
11159 (uri (string-append
11160 "https://github.com/jacktasia/dumb-jump/archive/v"
11161 version ".tar.gz"))
11162 (file-name (string-append name "-" version ".tar.gz"))
11163 (sha256
11164 (base32
11165 "07n0xjgpxjpf3vp9gxchkjpydyj0zm166930as0kwiwkhjlsirsf"))))
11166 (build-system emacs-build-system)
11167 (arguments
11168 `(#:tests? #f ; FIXME: Tests freeze when run.
11169 #:test-command '("ert-runner")
11170 #:phases
11171 (modify-phases %standard-phases
11172 (add-after 'unpack 'set-shell
11173 (lambda _
11174 ;; Setting the SHELL environment variable is required for the
11175 ;; tests to find sh.
11176 (setenv "SHELL" (which "sh"))
11177 #t)))))
11178 (native-inputs
11179 `(("emacs-el-mock" ,emacs-el-mock)
11180 ("emacs-noflet" ,emacs-noflet)
11181 ("emacs-undercover" ,emacs-undercover)
11182 ("ert-runner" ,emacs-ert-runner)))
11183 (propagated-inputs
11184 `(("emacs-f" ,emacs-f)
11185 ("emacs-popup" ,emacs-popup)))
11186 (home-page "https://github.com/jacktasia/dumb-jump")
11187 (synopsis "Jump to definition for multiple languages without configuration")
11188 (description "Dumb Jump is an Emacs \"jump to definition\" package with
11189 support for multiple programming languages that favors \"just working\" over
11190 speed or accuracy. This means minimal --- and ideally zero --- configuration
11191 with absolutely no stored indexes (tags) or persistent background processes.
11192 Dumb Jump performs best with The Silver Searcher @command{ag} or ripgrep
11193 @command{rg} installed.")
11194 (license license:gpl3+)))
11195
11196 (define-public emacs-dts-mode
11197 (let ((commit "9ee0854446dcc6c53d2b8d2941051768dba50344")
11198 (revision "1"))
11199 (package
11200 (name "emacs-dts-mode")
11201 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
11202 (source
11203 (origin
11204 (method git-fetch)
11205 (uri (git-reference
11206 (url "https://github.com/bgamari/dts-mode.git")
11207 (commit commit)))
11208 (file-name (string-append name "-" version "-checkout"))
11209 (sha256
11210 (base32
11211 "1k8lljdbc90nd29xrhdrsscxavzdq532wq2mg7ljc94krj7538b1"))))
11212 (build-system emacs-build-system)
11213 (home-page "https://github.com/bgamari/dts-mode.git")
11214 (synopsis "Emacs minor mode for editing device tree files")
11215 (description
11216 "This package provides an Emacs minor mode for highlighting
11217 device tree files.")
11218 (license license:gpl3+))))
11219
11220 (define-public emacs-daemons
11221 (package
11222 (name "emacs-daemons")
11223 (version "2.0.0")
11224 (source
11225 (origin
11226 (method git-fetch)
11227 (uri (git-reference
11228 (url "https://github.com/cbowdon/daemons.el")
11229 (commit version)))
11230 (file-name (string-append name "-" version "-checkout"))
11231 (sha256
11232 (base32
11233 "00bkzfaw3bqykcks610vk9wlpa2z360xn32bpsrycacwfv29j7g4"))))
11234 (build-system emacs-build-system)
11235 (home-page "https://github.com/cbowdon/daemons.el")
11236 (synopsis "Emacs UI for managing init system services")
11237 (description
11238 "This is an Emacs mode to give you a UI for managing init system
11239 daemons (services) for those getting tired of typing out @code{sudo service
11240 my_thing reload} all the time. It offers a consistent UI over different init
11241 systems.")
11242 (license license:gpl3+)))
11243
11244 (define-public emacs-esh-autosuggest
11245 (package
11246 (name "emacs-esh-autosuggest")
11247 (version "2.0.0")
11248 (source
11249 (origin
11250 (method git-fetch)
11251 (uri (git-reference
11252 (url "https://github.com/dieggsy/esh-autosuggest")
11253 (commit version)))
11254 (file-name (string-append name "-" version "-checkout"))
11255 (sha256
11256 (base32
11257 "116pdjgpjy9b0psm5kzwkwy7dq8vn0p6dy75dl1zsy2xrjf1iqdw"))))
11258 (build-system emacs-build-system)
11259 (propagated-inputs `(("emacs-company" ,emacs-company)))
11260 (home-page "https://github.com/dieggsy/esh-autosuggest")
11261 (synopsis "Fish-like autosuggestions in Eshell")
11262 (description
11263 "This package assumes you use something other than company for eshell
11264 completion (e.g. @code{eshell-pcomplete}, @code{completion-at-point},
11265 @code{helm-esh-pcomplete}). @code{company-mode} is used solely as a mechanism
11266 for history autosuggestions.
11267
11268 Unless you're using @code{use-package}'s hook keyword, you can enable the
11269 autosuggestions with:
11270 @code{(add-hook 'eshell-mode-hook #'esh-autosuggest-mode)}")
11271 (license license:gpl3+)))
11272
11273 (define-public emacs-desktop-environment
11274 (package
11275 (name "emacs-desktop-environment")
11276 (version "0.2.0")
11277 (source
11278 (origin
11279 (method git-fetch)
11280 (uri (git-reference
11281 (url "https://github.com/DamienCassou/desktop-environment.git")
11282 (commit (string-append "v" version))))
11283 (file-name (string-append name "-" version "-checkout"))
11284 (sha256
11285 (base32
11286 "1fal3yfmqg10cb53qsf5gsq2gvyz9w16wmlpnpjwjzwnjfn6l73r"))))
11287 (build-system emacs-build-system)
11288 (home-page "https://gitlab.petton.fr/DamienCassou/desktop-environment")
11289 (synopsis "Control your GNU/Linux desktop environment from Emacs")
11290 (description
11291 "This package helps you control your GNU/Linux desktop from Emacs.
11292 With @code{desktop-environment}, you can control the brightness and volume as
11293 well as take screenshots and lock your screen. The package depends on the
11294 availability of shell commands to do the hard work for us. These commands can
11295 be changed by customizing the appropriate variables.")
11296 (license license:gpl3+)))
11297
11298 (define-public emacs-org-caldav
11299 (package
11300 (name "emacs-org-caldav")
11301 (version "20180403")
11302 (source
11303 (origin
11304 (method url-fetch)
11305 (uri (string-append
11306 "https://github.com/dengste/org-caldav/raw/"
11307 "8d3492c27a09f437d2d94f2736c56d7652e87aa0"
11308 "/org-caldav.el"))
11309 (sha256
11310 (base32
11311 "1fh4gh68ddj0is99z2ccyh97v6psnyda61n2dsadzqhcxn51amlc"))))
11312 (build-system emacs-build-system)
11313 (propagated-inputs `(("emacs-org" ,emacs-org)))
11314 (home-page "https://github.com/dengste/org-caldav")
11315 (synopsis
11316 "Sync Org files with external calendars via the CalDAV protocol")
11317 (description
11318 "Synchronize between events in Org-mode files and a CalDAV calendar.
11319 This code is still alpha.")
11320 (license license:gpl3+)))
11321
11322 (define-public emacs-zotxt
11323 (package
11324 (name "emacs-zotxt")
11325 (version "20180518")
11326 (source
11327 (origin
11328 (method url-fetch)
11329 (uri (string-append
11330 "https://github.com/egh/zotxt-emacs/archive/"
11331 "23a4a9f74a658222027d53a9a83cd4bcc583ca8b"
11332 ".tar.gz"))
11333 (sha256
11334 (base32
11335 "1qlibaciqgsva6fc7vv9krssjq00bi880396jk7llbi3c52q9n1y"))))
11336 (build-system emacs-build-system)
11337 (propagated-inputs
11338 `(("emacs-deferred" ,emacs-deferred)
11339 ("emacs-request" ,emacs-request)))
11340 (home-page "https://github.com/egh/zotxt-emacs")
11341 (synopsis "Integrate Emacs with Zotero")
11342 (description "This package provides two integration features between Emacs
11343 and the Zotero research assistant: Insertion of links to Zotero items into an
11344 Org-mode file, and citations of Zotero items in Pandoc Markdown files.")
11345 (license license:gpl3+)))
11346
11347 (define-public emacs-evil-ediff
11348 ;; Evil-Ediff is included in Evil Collection from 20180617.
11349 (deprecated-package "emacs-evil-ediff" emacs-evil-collection))
11350
11351 (define-public emacs-evil-magit
11352 (let ((commit "dbf5a646a7ce1c35c229dfdc423bd5ecd927a3a8"))
11353 (package
11354 (name "emacs-evil-magit")
11355 (version (git-version "0.4.2" "1" commit))
11356 (source
11357 (origin
11358 (method git-fetch)
11359 (uri (git-reference
11360 (url "https://github.com/emacs-evil/evil-magit")
11361 (commit commit)))
11362 (file-name (string-append name "-" version "-checkout"))
11363 (sha256
11364 (base32
11365 "0ya0dkviq4pi92ab69a4j674y5r1hc1x3x7r7hlm97ag3a6zfkav"))))
11366 (build-system emacs-build-system)
11367 (propagated-inputs
11368 `(("emacs-evil" ,emacs-evil)
11369 ("magit" ,emacs-magit)))
11370 (home-page
11371 "https://github.com/emacs-evil/evil-magit")
11372 (synopsis "Evil-based key bindings for Magit")
11373 (description
11374 "This Emacs library configures Magit and Evil to play well with each other.
11375 For some background see @url{https://github.com/magit/evil-magit/issues/1}.
11376 See the README at @url{https://github.com/justbur/evil-magit} for a table
11377 describing the key binding changes.")
11378 (license license:gpl3+))))
11379
11380 (define-public emacs-evil-mu4e
11381 ;; Evil-mu4e is included in Evil Collection from 20180617.
11382 (deprecated-package "emacs-evil-mu4e" emacs-evil-collection))
11383
11384 (define-public emacs-evil-multiedit
11385 (package
11386 (name "emacs-evil-multiedit")
11387 (version "1.3.9")
11388 (source
11389 (origin
11390 (method git-fetch)
11391 (uri (git-reference
11392 (url "https://github.com/hlissner/evil-multiedit")
11393 (commit (string-append "v" version))))
11394 (file-name (string-append name "-" version "-checkout"))
11395 (sha256
11396 (base32
11397 "19h3kqylqzbjv4297wkzzxdmn9yxbg6z4ga4ssrqri90xs7m3rw3"))))
11398 (build-system emacs-build-system)
11399 (propagated-inputs
11400 `(("emacs-evil" ,emacs-evil)
11401 ("emacs-iedit" ,emacs-iedit)))
11402 (home-page
11403 "https://github.com/hlissner/evil-multiedit")
11404 (synopsis "Multiple cursors for Evil mode")
11405 (description
11406 "This plugin was an answer to the lack of proper multiple cursor support
11407 in Emacs+Evil. It allows you to select and edit matches interactively,
11408 integrating @code{iedit-mode} into Evil mode with an attempt at sensible
11409 defaults.")
11410 (license license:gpl3+)))
11411
11412 (define-public emacs-evil-org
11413 (let ((commit "b6d652a9163d3430a9e0933a554bdbee5244bbf6"))
11414 (package
11415 (name "emacs-evil-org")
11416 (version (git-version "0.1.1" "1" commit))
11417 (source
11418 (origin
11419 (method git-fetch)
11420 (uri (git-reference
11421 (url "https://github.com/Somelauw/evil-org-mode")
11422 (commit commit)))
11423 (file-name (string-append name "-" version "-checkout"))
11424 (sha256
11425 (base32
11426 "176hrw7y7nczffbyhsa167b8rvfacsmcafm2gpkrdjqlrikbmrhl"))))
11427 (build-system emacs-build-system)
11428 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
11429 (home-page
11430 "https://github.com/Somelauw/evil-org-mode")
11431 (synopsis "Evil keybindings for Org mode")
11432 (description
11433 "This package adds supplemental Evil mode key-bindings to Emacs
11434 Org-mode. It features:
11435 @itemize
11436 @item normal, visual and insert mode bindings;
11437 @item key bindings organised in key themes;
11438 @item operators like > and < to work on headings;
11439 @item text objects;
11440 @item table support;
11441 @item calendar (date selection) support;
11442 @item agenda support.
11443 @end itemize\n")
11444 (license license:gpl3+))))
11445
11446 (define-public emacs-fish-completion
11447 (let ((commit "bac15fda1392a891070574dfe5d2d50b10831e8b"))
11448 (package
11449 (name "emacs-fish-completion")
11450 (version (git-version "20180616" "1" commit))
11451 (source
11452 (origin
11453 (method url-fetch)
11454 (uri (string-append
11455 "https://gitlab.com/Ambrevar/emacs-fish-completion/repository/"
11456 "archive.tar.gz?ref="
11457 commit))
11458 (sha256
11459 (base32
11460 "093qzdrbkl7dhjk16zq8i13kh1phyigkblcfrbgbrxjqd2ndrfdi"))))
11461 (build-system emacs-build-system)
11462 (inputs `(("fish" ,fish)))
11463 (arguments
11464 `(#:phases
11465 (modify-phases %standard-phases
11466 (add-after 'unpack 'configure
11467 (lambda* (#:key inputs outputs #:allow-other-keys)
11468 (let ((fish (assoc-ref inputs "fish")))
11469 ;; Specify the absolute file names of the various
11470 ;; programs so that everything works out-of-the-box.
11471 (emacs-substitute-variables
11472 "fish-completion.el"
11473 ("fish-completion-command"
11474 (string-append fish "/bin/fish")))))))))
11475 (home-page
11476 "https://gitlab.com/Ambrevar/emacs-fish-completion")
11477 (synopsis "Fish completion for Emacs pcomplete")
11478 (description
11479 "This package provides completion for the Fish shell to pcomplete (used
11480 by shell and Eshell). You can set it up globally with:
11481
11482 @example
11483 (when (and (executable-find \"fish\")
11484 (require 'fish-completion nil t))
11485 (global-fish-completion-mode))
11486 @end example
11487
11488 Alternatively, you can call the @code{fish-completion-mode} manually or in
11489 shell/Eshell mode hook.
11490
11491 The package @code{emacs-bash-completion} is an optional dependency: if available,
11492 @code{fish-completion-complete} can be configured to fall back on bash to further
11493 try completing. See @code{fish-completion-fallback-on-bash-p}.")
11494 (license license:gpl3+))))
11495
11496 (define-public emacs-gif-screencast
11497 (let ((commit "12b25442b97b84abae74ecb5190a9d14ff7cfe5a"))
11498 (package
11499 (name "emacs-gif-screencast")
11500 (version (git-version "20180616" "1" commit))
11501 (source
11502 (origin
11503 (method url-fetch)
11504 (uri (string-append
11505 "https://gitlab.com/Ambrevar/emacs-gif-screencast/"
11506 "repository/archive.tar.gz?ref="
11507 commit))
11508 (sha256
11509 (base32
11510 "0lc457i78xjkn5idr2aaiadkh76zcsksj84z0qh80a9y775syrgh"))))
11511 (build-system emacs-build-system)
11512 (inputs
11513 `(("scrot" ,scrot)
11514 ("imagemagick" ,imagemagick)
11515 ("gifsicle" ,gifsicle)))
11516 (arguments
11517 `(#:phases
11518 (modify-phases %standard-phases
11519 (add-after 'unpack 'configure
11520 (lambda* (#:key inputs outputs #:allow-other-keys)
11521 (let ((scrot (assoc-ref inputs "scrot"))
11522 (imagemagick (assoc-ref inputs "imagemagick"))
11523 (gifsicle (assoc-ref inputs "gifsicle")))
11524 ;; Specify the absolute file names of the various
11525 ;; programs so that everything works out-of-the-box.
11526 (emacs-substitute-variables
11527 "gif-screencast.el"
11528 ("gif-screencast-program"
11529 (string-append scrot "/bin/scrot"))
11530 ("gif-screencast-convert-program"
11531 (string-append imagemagick "/bin/convert"))
11532 ("gif-screencast-cropping-program"
11533 (string-append imagemagick "/bin/mogrify"))
11534 ("gif-screencast-optimize-program"
11535 (string-append imagemagick "/bin/gifsicle")))))))))
11536 (home-page
11537 "https://gitlab.com/Ambrevar/emacs-gif-screencast")
11538 (synopsis "One-frame-per-action GIF recording")
11539 (description
11540 "Call @code{gif-screencast} to start a recording.
11541 A screenshot is taken for every user action. Call
11542 @code{gif-screencast-stop} (<f9> by default) to finish recording and create
11543 the GIF result.")
11544 (license license:gpl3+))))
11545
11546 (define-public emacs-google-translate
11547 (package
11548 (name "emacs-google-translate")
11549 (version "0.11.16")
11550 (source
11551 (origin
11552 (method url-fetch)
11553 (uri (string-append "https://github.com/atykhonov/google-translate/"
11554 "archive/v" version ".tar.gz"))
11555 (file-name (string-append name "-" version ".tar.gz"))
11556 (sha256
11557 (base32
11558 "01n9spj1d0gjfj39x526rl3m9c28wnx9afipmf5s8y77cx3mfwhl"))))
11559 (build-system emacs-build-system)
11560 (home-page "https://github.com/atykhonov/google-translate")
11561 (synopsis "Emacs interface to Google Translate")
11562 (description
11563 "This packages provides an Emacs interface to the Google Translate
11564 on-line service.")
11565 (license license:gpl3+)))
11566
11567 (define-public emacs-helm-company
11568 (let ((commit "d3fc093a0e833b4dee6561c00d6df3d62aa50f3f"))
11569 (package
11570 (name "emacs-helm-company")
11571 (version (git-version "0.2.3" "1" commit))
11572 (source
11573 (origin
11574 (method git-fetch)
11575 (uri (git-reference
11576 (url "https://github.com/Sodel-the-Vociferous/helm-company")
11577 (commit commit)))
11578 (file-name (string-append name "-" version "-checkout"))
11579 (sha256
11580 (base32
11581 "1ciirsanhajdqm5iwl8k9ywf4jha1wdv4sc4d9kslyrfr9zn4q6k"))))
11582 (build-system emacs-build-system)
11583 (propagated-inputs
11584 `(("emacs-helm" ,emacs-helm)
11585 ("emacs-company" ,emacs-company)))
11586 (home-page "https://github.com/Sodel-the-Vociferous/helm-company")
11587 (synopsis "Helm interface for company-mode")
11588 (description
11589 "This is a Helm interface to company-mode, a text completion
11590 framework.")
11591 (license license:gpl3+))))
11592
11593 (define-public emacs-helm-descbinds
11594 (let ((commit "033be73f21778633813264ce1634a6e1ad873d8e"))
11595 (package
11596 (name "emacs-helm-descbinds")
11597 (version (git-version "1.13" "1" commit))
11598 (source
11599 (origin
11600 (method git-fetch)
11601 (uri (git-reference
11602 (url "https://github.com/emacs-helm/helm-descbinds")
11603 (commit commit)))
11604 (file-name (string-append name "-" version "-checkout"))
11605 (sha256
11606 (base32
11607 "1n89p56qwa243w1c85i5awnaf7piwjsvfi7nmnsrwm33hix5dknk"))))
11608 (build-system emacs-build-system)
11609 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
11610 (home-page "https://github.com/emacs-helm/helm-descbinds")
11611 (synopsis "Convenient @code{describe-bindings} with Helm")
11612 (description
11613 "This package is a replacement of @code{describe-bindings} for Helm.
11614 @code{describe-bindings} is replaced with @code{helm-descbinds}. As usual,
11615 type @code{C-h b}, or any incomplete key sequence plus @code{C-h}, to run
11616 @code{helm-descbinds}. The bindings are presented in a similar way as
11617 @code{describe-bindings} does, but you can use completion to find the command
11618 you searched for and execute it, or view its documentation.")
11619 (license license:gpl3+))))
11620
11621 (define-public emacs-helm-emms
11622 (let ((commit "d3f9bdef8ff0d093eaf6e26af50ea905ab53fdec"))
11623 (package
11624 (name "emacs-helm-emms")
11625 (version (git-version "1.3" "1" commit))
11626 (source
11627 (origin
11628 (method git-fetch)
11629 (uri (git-reference
11630 (url "https://github.com/emacs-helm/helm-emms")
11631 (commit commit)))
11632 (file-name (string-append name "-" version "-checkout"))
11633 (sha256
11634 (base32
11635 "0bdb8xp0yp3gijpa9i2rc17gfzjhzlm92vdzw93i10qpd1xhj4aa"))))
11636 (build-system emacs-build-system)
11637 (propagated-inputs
11638 `(("emacs-helm" ,emacs-helm)
11639 ("emacs-emms" ,emacs-emms)))
11640 (home-page
11641 "https://github.com/emacs-helm/helm-emms")
11642 (synopsis "Emms for Helm")
11643 (description "Helm interface for Emms to browse all tracks and all folders
11644 from @code{emms-source-file-default-directory}.")
11645 (license license:gpl3+))))
11646
11647 (define-public emacs-helm-exwm
11648 (let ((commit "56266f261ba3b3d2753b374b50da20eb768c06f5"))
11649 (package
11650 (name "emacs-helm-exwm")
11651 (version (git-version "20180703" "2" commit))
11652 (source
11653 (origin
11654 (method url-fetch)
11655 (uri (string-append
11656 "https://github.com/emacs-helm/helm-exwm/archive/"
11657 commit
11658 ".tar.gz"))
11659 (sha256
11660 (base32
11661 "0n7hdiajw5vxl8ha2r9r4cl4i7crza25348825wb6acwhhzijxcj"))))
11662 (build-system emacs-build-system)
11663 (propagated-inputs
11664 `(("emacs-helm" ,emacs-helm)
11665 ("emacs-exwm" ,emacs-exwm)))
11666 (home-page
11667 "https://github.com/emacs-helm/helm-exwm")
11668 (synopsis "Helm for EXWM buffers")
11669 (description
11670 "@code{helm-exwm} runs a Helm session over the list of EXWM buffers.
11671 @code{helm-exwm-switch} is a convenience X application launcher using Helm to
11672 switch between the various windows of one or several specific applications.
11673 See @code{helm-exwm-switch-browser} for an example.")
11674 (license license:gpl3+))))
11675
11676 (define-public emacs-helm-flycheck
11677 (let ((commit "3cf7d3bb194acacc6395f88360588013d92675d6"))
11678 (package
11679 (name "emacs-helm-flycheck")
11680 (version (git-version "0.4" "1" commit))
11681 (source
11682 (origin
11683 (method git-fetch)
11684 (uri (git-reference
11685 (url "https://github.com/yasuyk/helm-flycheck")
11686 (commit commit)))
11687 (file-name (string-append name "-" version "-checkout"))
11688 (sha256
11689 (base32
11690 "1a2yfxhz04klwhcandqvfzysxp6b7bxyxx1xk1x3kds5hif5fkl4"))))
11691 (build-system emacs-build-system)
11692 (propagated-inputs
11693 `(("emacs-dash" ,emacs-dash)
11694 ("emacs-flycheck" ,emacs-flycheck)
11695 ("emacs-helm" ,emacs-helm)))
11696 (home-page "https://github.com/yasuyk/helm-flycheck")
11697 (synopsis "Show Flycheck errors with Helm")
11698 (description
11699 "This integrates Flycheck with Helm.")
11700 (license license:gpl3+))))
11701
11702 (define-public emacs-helm-ls-git
11703 (let ((commit "76654c776a7f6e2e5290645e748aac2a746f7daa"))
11704 (package
11705 (name "emacs-helm-ls-git")
11706 (version (git-version "1.9.1" "1" commit))
11707 (source
11708 (origin
11709 (method git-fetch)
11710 (uri (git-reference
11711 (url "https://github.com/emacs-helm/helm-ls-git")
11712 (commit commit)))
11713 (file-name (string-append name "-" version "-checkout"))
11714 (sha256
11715 (base32
11716 "0vsq1n3xl3ghy5zik2scm7jrs501n4kybdqd6yw6j0cv4jxdqbr0"))))
11717 (build-system emacs-build-system)
11718 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
11719 (home-page "https://github.com/emacs-helm/helm-ls-git")
11720 (synopsis "Helm interface for listing the files in a Git repository")
11721 (description
11722 "This package provides a Helm interface for Git files.
11723 @itemize
11724 @item Display the open buffers in project.
11725 @item Display a status source showing state of project (modified files etc.).
11726 @item Display a list of all files in project under git control.
11727 @item Quickly look at diffs of modified files.
11728 @item Allow switching to @code{git status} with your preferred frontend
11729 (vc-dir, Magit,etc.).
11730 @item Full integration of git-grep, also allow usage of @code{helm-grep} (you
11731 can use ack-grep instead of grep).
11732 @item Integrate usage of gid from id-utils.
11733 @item Full integration with @code{helm-find-files}, allow you to browse
11734 projects unrelated to current-buffer.
11735 @item In addition, all actions of type files and buffers are provided.
11736 @end itemize\n")
11737 (license license:gpl3+))))
11738
11739 (define-public emacs-helm-mu
11740 (let ((commit "77e6fea24e01481418738421dbcfe28ef1bd63cf"))
11741 (package
11742 (name "emacs-helm-mu")
11743 (version (git-version "20180513" "1" commit))
11744 (source
11745 (origin
11746 (method url-fetch)
11747 (uri (string-append
11748 "https://github.com/emacs-helm/helm-mu/archive/"
11749 commit
11750 ".tar.gz"))
11751 (sha256
11752 (base32
11753 "0qm4xi3i957scm50nar398pv4x8y03si10l77jb9ckjaviyq2hj9"))))
11754 (build-system emacs-build-system)
11755 (propagated-inputs
11756 `(("emacs-helm" ,emacs-helm)
11757 ("mu" ,mu)))
11758 (home-page
11759 "https://github.com/emacs-helm/helm-mu")
11760 (synopsis
11761 "Helm sources for searching emails and contacts")
11762 (description
11763 "Helm sources for searching emails and contacts using @code{mu} and
11764 @code{mu4e}. Mu is an indexer for maildirs and mu4e is a mutt-like MUA for
11765 Emacs build on top of mu. Mu is highly efficient making it possible to get
11766 instant results even for huge maildirs. It also provides search operators,
11767 e.g: @code{from:Peter to:Anne flag:attach search term}.")
11768 (license license:gpl3+))))
11769
11770 (define-public emacs-helm-pass
11771 (let ((commit "ebcbef1a962795a36e3491ae926e2a4b8a8b0ebb"))
11772 (package
11773 (name "emacs-helm-pass")
11774 (version (git-version "20180416" "1" commit))
11775 (source
11776 (origin
11777 (method url-fetch)
11778 (uri (string-append
11779 "https://github.com/jabranham/helm-pass/archive/"
11780 commit
11781 ".tar.gz"))
11782 (sha256
11783 (base32
11784 "1pgq4hj9wvz7z2fyxwsvbh6rmc1akya84v382nx26rr76iavz6wi"))))
11785 (build-system emacs-build-system)
11786 (propagated-inputs
11787 `(("emacs-helm" ,emacs-helm)
11788 ("emacs-password-store" ,emacs-password-store)))
11789 (home-page
11790 "https://github.com/jabranham/helm-pass")
11791 (synopsis "Helm interface to pass, the standard Unix password manager")
11792 (description
11793 "Users of @code{helm-pass} may also be interested in functionality
11794 provided by other Emacs packages dealing with pass:
11795 @itemize
11796 @item @code{emacs-password-store}, which @code{helm-pass} relies on.
11797 @item @code{emacs-pass}, a major mode for @code{pass}.
11798 @item @code{auth-source-pass.el}: integration of Emacs' auth-source with
11799 @code{pass}, included in Emacs 26+).
11800 @end itemize\n")
11801 (license license:gpl3+))))
11802
11803 (define-public emacs-image+
11804 (let ((commit "6834d0c09bb4df9ecc0d7a559bd7827fed48fffc"))
11805 (package
11806 (name "emacs-image+")
11807 (version (git-version "0.6.2" "1" commit))
11808 (source
11809 (origin
11810 (method git-fetch)
11811 (uri (git-reference
11812 (url "https://github.com/mhayashi1120/Emacs-imagex")
11813 (commit commit)))
11814 (file-name (string-append name "-" version "-checkout"))
11815 (sha256
11816 (base32
11817 "0v66wk9nh0raih4jhrzmmyi5lbysjnmbv791vm2230ffi2hmwxnd"))))
11818 (build-system emacs-build-system)
11819 (inputs `(("imagemagick" ,imagemagick)))
11820 (arguments
11821 `(#:phases
11822 (modify-phases %standard-phases
11823 (add-after 'unpack 'configure
11824 (lambda* (#:key inputs outputs #:allow-other-keys)
11825 (let ((imagemagick (assoc-ref inputs "imagemagick")))
11826 ;; Specify the absolute file names of the various
11827 ;; programs so that everything works out-of-the-box.
11828 (chmod "image+.el" #o666)
11829 (emacs-substitute-variables
11830 "image+.el"
11831 ("imagex-convert-command"
11832 (string-append imagemagick "/bin/convert"))
11833 ("imagex-identify-command"
11834 (string-append imagemagick "/bin/identify")))))))))
11835 (home-page "https://github.com/mhayashi1120/Emacs-imagex")
11836 (synopsis "Image manipulation extensions for Emacs")
11837 (description
11838 "Image+ provides keybindings allowing you to zoom in or zoom out of an
11839 image, rotate it, save modified images, and more.")
11840 (license license:gpl3+))))
11841
11842 (define-public emacs-package-lint
11843 (let ((commit "69bb89d00ba212b734c676ad056aa793c450b288"))
11844 (package
11845 (name "emacs-package-lint")
11846 (version (git-version "0.5" "1" commit))
11847 (source
11848 (origin
11849 (method git-fetch)
11850 (uri (git-reference
11851 (url "https://github.com/purcell/package-lint")
11852 (commit commit)))
11853 (file-name (string-append name "-" version "-checkout"))
11854 (sha256
11855 (base32
11856 "1hfricsgmy3x9snnd2p4xq6vnnv94qdsxxnxp07b3hqc9bhw31rq"))))
11857 (build-system emacs-build-system)
11858 (home-page "https://github.com/purcell/package-lint")
11859 (synopsis "Linting library for elisp package authors")
11860 (description
11861 "This provides a list of issues with the Emacs package metadata of a file,
11862 e.g. the package dependencies it requires. See function
11863 @code{package-lint-buffer}. Checks will currently be enabled only if a
11864 \"Package-Requires:\" or \"Package-Version:\" header is present in the
11865 file.")
11866 (license license:gpl3+))))
11867
11868 (define-public emacs-picpocket
11869 (let ((version "40")
11870 (commit "6fd88b8711c4370662c0f9c462170187d092a046"))
11871 (package
11872 (name "emacs-picpocket")
11873 (version version)
11874 (source
11875 (origin
11876 (method git-fetch)
11877 (uri (git-reference
11878 (url "https://github.com/johanclaesson/picpocket")
11879 (commit commit)))
11880 (file-name (git-file-name name version))
11881 (sha256
11882 (base32 "1mdzzxf7xm7zwrpnqqxa27d1cr31pd72d7ilbwljv13qp177a3yw"))))
11883 (build-system emacs-build-system)
11884 (arguments ; needed for running tests
11885 `(#:tests? #t
11886 #:emacs ,emacs
11887 #:test-command '("emacs" "--batch"
11888 "-l" "picpocket-test.el"
11889 "-f" "ert-run-tests-batch-and-exit")))
11890 (home-page "https://github.com/johanclaesson/picpocket")
11891 (synopsis "Image viewer for Emacs")
11892 (description
11893 "Picpocket is an image viewer for GNU Emacs. It has commands for:
11894
11895 @itemize
11896 @item File operations on the picture files (delete, move, copy, hardlink).
11897 @item Scale and rotate the picture.
11898 @item Associate pictures with tags which are saved to disk.
11899 @item Filter pictures according to tags.
11900 @item Customizing keystrokes for quick tagging and file operations.
11901 @item Undo and browse history of undoable commands.
11902 @end itemize")
11903 (license license:gpl3+))))
11904
11905 (define-public emacs-wgrep-helm
11906 ;; `emacs-wgrep-helm' was mistakenly added.
11907 (deprecated-package "emacs-wgrep-helm" emacs-wgrep))
11908
11909 (define-public emacs-mu4e-conversation
11910 (let ((commit "e7d4bfcb0d392b0aed1f705ccac2419a168d1f5e"))
11911 (package
11912 (name "emacs-mu4e-conversation")
11913 (version (git-version "20181126" "4" commit))
11914 (source
11915 (origin
11916 (method url-fetch)
11917 (uri (string-append
11918 "https://gitlab.com/Ambrevar/mu4e-conversation/"
11919 "repository/archive.tar.gz?ref="
11920 commit))
11921 (file-name (string-append name "-" version "-checkout"))
11922 (sha256
11923 (base32
11924 "0b52hf9rm2afba9pvgink9bwqm705sk0y5qikp0ff5sk53wqvy29"))))
11925 (build-system emacs-build-system)
11926 (propagated-inputs
11927 `(("mu" ,mu)))
11928 (home-page
11929 "https://gitlab.com/Ambrevar/mu4e-conversation")
11930 (synopsis
11931 "Show a complete thread in a single buffer")
11932 (description
11933 "This package offers an alternate view to mu4e's e-mail display. It
11934 shows all e-mails of a thread in a single view, where each correspondent has
11935 their own face. Threads can be displayed linearly (in which case e-mails are
11936 displayed in chronological order) or as an Org document where the node tree
11937 maps the thread tree.")
11938 (license license:gpl3+))))
11939
11940 (define-public emacs-pinentry
11941 (let ((commit "dcc9ba03252ee5d39e03bba31b420e0708c3ba0c")
11942 (revision "1"))
11943 (package
11944 (name "emacs-pinentry")
11945 (version (git-version "0.1" revision commit))
11946 (source
11947 (origin
11948 (method url-fetch)
11949 (uri (string-append
11950 "http://git.savannah.gnu.org/cgit/emacs/elpa.git/plain"
11951 "/packages/pinentry/pinentry.el?id=" commit))
11952 (file-name (string-append "pinentry.el"))
11953 (sha256
11954 (base32
11955 "1lf30q6r8nz5cjzclbb9bbymsk2y75nskvb55hnjdv93gr3j0sik"))))
11956 (build-system emacs-build-system)
11957 (propagated-inputs
11958 `(("gnupg" ,gnupg)))
11959 (home-page "https://elpa.gnu.org/packages/pinentry.html")
11960 (synopsis "GnuPG Pinentry server implementation")
11961 (description
11962 "This package allows GnuPG passphrase to be prompted through the
11963 minibuffer instead of graphical dialog.
11964
11965 To use, add @code{allow-emacs-pinentry} to @code{~/.gnupg/gpg-agent.conf},
11966 reload the configuration with @code{gpgconf --reload gpg-agent}, and start the
11967 server with @code{M-x pinentry-start}.")
11968 (license license:gpl3+))))
11969
11970 (define-public emacs-org-brain
11971 (package
11972 (name "emacs-org-brain")
11973 (version "0.5")
11974 (source
11975 (origin
11976 (method git-fetch)
11977 (uri (git-reference
11978 (url "https://github.com/Kungsgeten/org-brain.git")
11979 (commit "3faf9303af3f2356e3444e69c22dc6c5774047d1")))
11980 (file-name (git-file-name name version))
11981 (sha256
11982 (base32
11983 "1ad681zk6kckw2zbk0r4iaj4bw8cfqrbd1s3gdwgdjlzq81q9mmj"))))
11984 (build-system emacs-build-system)
11985 (home-page "https://github.com/Kungsgeten/org-brain")
11986 (synopsis "Org-mode wiki and concept-mapping for Emacs")
11987 (description "@code{emacs-org-brain} implements a variant of concept
11988 mapping in Emacs, using @code{org-mode}. An org-brain is a network of
11989 org-mode entries, where each entry is a file or a headline, and you can get a
11990 visual overview of the relationships between the entries: parents, children,
11991 siblings and friends. This visual overview can also be used to browse your
11992 entries. You can think of entries as nodes in a mind map, or pages in a
11993 wiki.")
11994 (license license:expat)))
11995
11996 (define-public emacs-recent-addresses
11997 (let ((commit "afbbfdc43b81e620acf827ca20d297e0c517b6eb")
11998 (revision "1"))
11999 (package
12000 (name "emacs-recent-addresses")
12001 (home-page "http://nschum.de/src/emacs/recent-addresses/")
12002 (version (git-version "0.1" revision commit))
12003 (source (origin
12004 (method git-fetch)
12005 (uri (git-reference
12006 ;; Note: Use a branch that works with Helm. Submitted
12007 ;; at <https://github.com/nschum/recent-addresses.el/pull/1>.
12008 (url "https://github.com/civodul/recent-addresses.el")
12009 (commit commit)))
12010 (sha256
12011 (base32
12012 "0ajrq0galjmdyjdjyxazykjyax3gh6hvfk4s7l657pi11g0q5zax"))
12013 (file-name (git-file-name name version))))
12014 (build-system emacs-build-system)
12015 (synopsis "Record recently-used email addressed and auto-complete them")
12016 (description
12017 "@code{recent-addresses} is an Emacs package that allows you to quickly
12018 look up previously used email addresses. It can be used alongside the Gnus
12019 email client.")
12020 (license license:gpl2+))))
12021
12022 (define-public emacs-fold-dwim
12023 (let ((commit "c46f4bb2ce91b4e307136320e72c28dd50b6cd8b")
12024 (revision "0"))
12025 (package
12026 (name "emacs-fold-dwim")
12027 (version (git-version "1.2" revision commit))
12028 (home-page "https://github.com/emacsattic/fold-dwim")
12029 (source (origin
12030 (method git-fetch)
12031 (uri (git-reference (url home-page) (commit commit)))
12032 (sha256
12033 (base32
12034 "1yz1wis31asw6xa5maliyd1ck2q02xnnh7dc6swgj9cb4wi7k6i1"))
12035 (file-name (git-file-name name version))))
12036 (build-system emacs-build-system)
12037 (synopsis "Unified user interface for Emacs folding modes")
12038 (description
12039 "DWIM stands for \"do what I mean\", as in the idea that one keystroke
12040 can do different things depending on the context. In this package, it means
12041 that, if the cursor is in a currently hidden folded construction, we want to
12042 show it; if it's not, we want to hide whatever fold the cursor is in.")
12043 (license license:gpl2+))))
12044
12045 (define-public emacs-markup-faces
12046 (package
12047 (name "emacs-markup-faces")
12048 (version "1.0.0")
12049 (source
12050 (origin
12051 (method url-fetch)
12052 (uri (string-append "https://stable.melpa.org/packages/markup-faces-"
12053 version ".el"))
12054 (sha256
12055 (base32
12056 "124dxbaa25fwxnpwsygpz7pw6da6dnnw7y2lic3jf8rgz7lw4v32"))))
12057 (build-system emacs-build-system)
12058 (home-page "https://github.com/sensorflo/markup-faces")
12059 (synopsis "Collection of Emacs faces for markup language modes")
12060 (description "emacs-markup-faces is like font-lock-faces, but tailored for
12061 markup languages instead programming languages. The sub group markup-faces-text
12062 is also intended for 'text viewing modes' such as info or (wo)man. This gives a
12063 common look and feel, or let's say theme, across different markup language modes
12064 and 'text viewing modes' respectively.")
12065 (license license:gpl3+)))
12066
12067 (define-public emacs-adoc-mode
12068 (package
12069 (name "emacs-adoc-mode")
12070 (version "0.6.6")
12071 (source
12072 (origin
12073 (method url-fetch)
12074 (uri (string-append "https://stable.melpa.org/packages/adoc-mode-"
12075 version ".el"))
12076 (sha256
12077 (base32
12078 "1c6hrgxxsnl2c19rgjykpm7r4xg9lp6bmk5z6bi7g8pqlrgwffcy"))))
12079 (build-system emacs-build-system)
12080 (propagated-inputs
12081 `(("emacs-markup-faces" ,emacs-markup-faces)))
12082 (home-page "https://github.com/sensorflo/adoc-mode/wiki")
12083 (synopsis "AsciiDoc mode for Emacs")
12084 (description "This package provides an Emacs major mode for editing AsciiDoc
12085 files. It focuses on highlighting the document to improve readability.")
12086 (license license:gpl2+)))
12087
12088 (define-public emacs-rust-mode
12089 (let ((commit
12090 ;; Last release is old (2016), use more recent commit to get bug
12091 ;; fixes.
12092 "64b4a2450e4d4c47f6307851c9b2598cd2254d68")
12093 (revision "0"))
12094 (package
12095 (name "emacs-rust-mode")
12096 (version (git-version "0.3.0" revision commit))
12097 (source (origin
12098 (method git-fetch)
12099 (uri
12100 (git-reference
12101 (url "https://github.com/rust-lang/rust-mode")
12102 (commit commit)))
12103 (file-name (git-file-name name version))
12104 (sha256
12105 (base32
12106 "0pbz36lljgb7bdgx3h3g0pq1nss1kvn8mhk1l3mknsmynd6w4nd8"))))
12107 (build-system emacs-build-system)
12108 (arguments
12109 `(#:phases
12110 (modify-phases %standard-phases
12111 (replace 'check
12112 (lambda _
12113 (invoke "sh" "run_rust_emacs_tests.sh"))))))
12114 (home-page "https://github.com/rust-lang/rust-mode")
12115 (synopsis "Major Emacs mode for editing Rust source code")
12116 (description "This package provides a major Emacs mode for editing Rust
12117 source code.")
12118 (license (list license:expat
12119 license:asl2.0)))))
12120
12121 (define-public emacs-ztree
12122 (let ((commit "c54425a094353ec40a8179f9eab3596f76c6cf94"))
12123 (package
12124 (name "emacs-ztree")
12125 (version (git-version "1.0.5" "1" commit))
12126 (source
12127 (origin
12128 (method git-fetch)
12129 (uri (git-reference
12130 (url "https://github.com/fourier/ztree")
12131 (commit commit)))
12132 (file-name (git-file-name name version))
12133 (sha256
12134 (base32
12135 "0j8fpxds8m1zi04nrs8vv21091abvh4n8ab76f1sgdxnp4l5cfb0"))))
12136 (build-system emacs-build-system)
12137 (home-page "https://github.com/fourier/ztree")
12138 (synopsis "Directory tree comparison mode for Emacs")
12139 (description "Ztree is a project dedicated to implementation of several
12140 text-tree applications inside GNU Emacs. It consists of 2 subprojects:
12141 @command{ztree-diff} and @command{ztree-dir} (the basis of
12142 @command{ztree-diff}).")
12143 (license license:gpl3))))
12144
12145 (define-public emacs-helm-org-contacts
12146 (let ((commit "0af703bd9a43032b89fdf5559673151d1ac2fffc"))
12147 (package
12148 (name "emacs-helm-org-contacts")
12149 (version (git-version "20180707" "1" commit))
12150 (source
12151 (origin
12152 (method git-fetch)
12153 (uri (git-reference
12154 (url "https://github.com/tmalsburg/helm-org-contacts")
12155 (commit commit)))
12156 (file-name (git-file-name name version))
12157 (sha256
12158 (base32
12159 "1cl7cm2ic9pg4vc9cdh84vzjj1x2lpd5ymimiva8h4l17kiphk4s"))))
12160 (build-system emacs-build-system)
12161 (propagated-inputs
12162 `(("emacs-dash" ,emacs-dash)
12163 ("emacs-helm" ,emacs-helm)
12164 ("emacs-s" ,emacs-s)))
12165 (home-page "https://github.com/tmalsburg/helm-org-contacts")
12166 (synopsis "Helm source for org-contacts")
12167 (description "This Helm source can be used to search contacts stored in
12168 org-contacts format. There are actions for inserting postal addresses, email
12169 addresses, and phone numbers in the buffer where @command{helm-org-contacts}
12170 was called.")
12171 (license license:gpl3))))
12172
12173 (define-public emacs-dired-du
12174 (package
12175 (name "emacs-dired-du")
12176 (version "0.5.1")
12177 (source
12178 (origin
12179 (method url-fetch)
12180 (uri (string-append
12181 "https://elpa.gnu.org/packages/dired-du-"
12182 version ".tar"))
12183 (sha256
12184 (base32
12185 "1091scnrjh0a4gja4z6jxic6ghy1yryv46qk9c76pmh50cpw6766"))))
12186 (build-system emacs-build-system)
12187 (home-page "http://elpa.gnu.org/packages/dired-du.html")
12188 (synopsis "Dired with recursive directory sizes")
12189 (description
12190 "Display the recursive size of directories in Dired.
12191 This file defines a minor mode @command{dired-du-mode} to show the recursive
12192 size of directories in Dired buffers. If @command{du} program is available,
12193 then the directory sizes are obtained with it. Otherwise, the directory sizes
12194 are obtained with Lisp. The former is faster and provide a more precise
12195 value. For directories where the user doesn't have read permission, the
12196 recursive size is not obtained. Once this mode is enabled, every new Dired
12197 buffer displays recursive dir sizes.")
12198 (license license:gpl3+)))
12199
12200 (define-public emacs-pcre2el
12201 ;; Last release is very old so we get the latest commit.
12202 (let ((commit "0b5b2a2c173aab3fd14aac6cf5e90ad3bf58fa7d"))
12203 (package
12204 (name "emacs-pcre2el")
12205 (version (git-version "1.8" "1" commit))
12206 (source
12207 (origin
12208 (method git-fetch)
12209 (uri (git-reference
12210 (url "https://github.com/joddie/pcre2el")
12211 (commit commit)))
12212 (file-name (git-file-name name version))
12213 (sha256
12214 (base32
12215 "14br6ad138qx1z822wqssswqiihxiynz1k69p6mcdisr2q8yyi1z"))))
12216 (build-system emacs-build-system)
12217 (home-page "https://github.com/joddie/pcre2el")
12218 (synopsis "Convert between PCRE, Emacs and rx regexp syntax")
12219 (description "@code{pcre2el} or @code{rxt} (RegeXp Translator or RegeXp
12220 Tools) is a utility for working with regular expressions in Emacs, based on a
12221 recursive-descent parser for regexp syntax. In addition to converting (a
12222 subset of) PCRE syntax into its Emacs equivalent, it can do the following:
12223
12224 @itemize
12225 @item convert Emacs syntax to PCRE
12226 @item convert either syntax to @code{rx}, an S-expression based regexp syntax
12227 @item untangle complex regexps by showing the parse tree in @code{rx} form and
12228 highlighting the corresponding chunks of code
12229 @item show the complete list of strings (productions) matching a regexp,
12230 provided the list is finite
12231 @item provide live font-locking of regexp syntax (so far only for Elisp
12232 buffers – other modes on the TODO list).
12233 @end itemize\n")
12234 (license license:gpl3))))
12235
12236 (define-public emacs-magit-todos
12237 (package
12238 (name "emacs-magit-todos")
12239 (version "1.1")
12240 (source
12241 (origin
12242 (method git-fetch)
12243 (uri (git-reference
12244 (url "https://github.com/alphapapa/magit-todos")
12245 (commit version)))
12246 (file-name (git-file-name name version))
12247 (sha256
12248 (base32
12249 "1mvzbxshr6zjdim3jd368ar1hy5l7n22i03cpvzdmrw83kkwdyhd"))))
12250 (build-system emacs-build-system)
12251 (propagated-inputs
12252 `(("emacs-async" ,emacs-async)
12253 ("emacs-dash" ,emacs-dash)
12254 ("emacs-f" ,emacs-f)
12255 ("emacs-hl-todo" ,emacs-hl-todo)
12256 ("magit" ,emacs-magit)
12257 ("emacs-pcre2el" ,emacs-pcre2el)
12258 ("emacs-s" ,emacs-s)))
12259 (home-page "https://github.com/alphapapa/magit-todos")
12260 (synopsis "Show source files' TODOs (and FIXMEs, etc) in Magit status buffer")
12261 (description "This package displays keyword entries from source code
12262 comments and Org files in the Magit status buffer. Activating an item jumps
12263 to it in its file. By default, it uses keywords from @code{hl-todo}, minus a
12264 few (like NOTE).")
12265 (license license:gpl3)))
12266
12267 (define-public emacs-git-annex
12268 ;; Unreleased version has a fontification fix.
12269 (let ((commit "ebdb44aef1883f1b2b8058e05d30fb9315b03707")
12270 (revision "1"))
12271 (package
12272 (name "emacs-git-annex")
12273 (version (string-append "1.1-" revision "." (string-take commit 8)))
12274 (source
12275 (origin
12276 (method git-fetch)
12277 (uri (git-reference
12278 (url "https://github.com/jwiegley/git-annex-el")
12279 (commit commit)))
12280 (file-name (string-append name "-" version "-checkout"))
12281 (sha256
12282 (base32
12283 "1mzv40gj7k10h7h5s43my8msgzjpj680qprqa9pp8nbyhl49v3wh"))))
12284 (build-system emacs-build-system)
12285 (home-page "https://github.com/jwiegley/git-annex-el")
12286 (synopsis "Emacs integration for git-annex")
12287 (description "Enhances Dired and buffers visiting annex files with
12288 git-annex functionality. In Dired, the names of annex files are shortened by
12289 hiding the symbolic links and fontified based on whether content is present.
12290 Commands for performing some common operations (e.g., unlocking and adding
12291 files) are provided.")
12292 (license license:gpl2+))))
12293
12294 (define-public emacs-hackernews
12295 (let ((commit "d8c450bbc76d6bb65ec5cdb6c3b888a23f3769e9"))
12296 (package
12297 (name "emacs-hackernews")
12298 (version (git-version "0.4.0" "1" commit))
12299 (source
12300 (origin
12301 (method git-fetch)
12302 (uri (git-reference
12303 (url "https://github.com/clarete/hackernews.el")
12304 (commit commit)))
12305 (file-name (git-file-name name version))
12306 (sha256
12307 (base32
12308 "06mp4n6c300jv5lhwf50ircfjckzr2p1zd38s4mqnxxjlf1maim7"))))
12309 (build-system emacs-build-system)
12310 (home-page "https://github.com/clarete/hackernews.el")
12311 (synopsis "Hacker News client for Emacs")
12312 (description "The @command{hackernews} package is able to fetch stories
12313 from six different Hacker News feeds, namely top, new, best, ask, show and job
12314 stories. The default feed is top stories, which corresponds to the Hacker
12315 News homepage.")
12316 (license license:gpl3))))
12317
12318 (define-public emacs-youtube-dl
12319 (let ((commit "7c9d7a7d05b72a7d1b1257a36c5e2b2567b185dd"))
12320 (package
12321 (name "emacs-youtube-dl")
12322 (version (git-version "1.0" "1" commit))
12323 (source
12324 (origin
12325 (method git-fetch)
12326 (uri (git-reference
12327 (url "https://github.com/skeeto/youtube-dl-emacs/")
12328 (commit commit)))
12329 (file-name (git-file-name name version))
12330 (sha256
12331 (base32
12332 "0mh4s089a4x8s380agzb2306kdp1hl204px1n5rrrrdcls7imnh6"))))
12333 (build-system emacs-build-system)
12334 (inputs
12335 `(("youtube-dl" ,youtube-dl)))
12336 (arguments
12337 `(#:phases
12338 (modify-phases %standard-phases
12339 (add-after 'unpack 'configure
12340 (lambda* (#:key inputs #:allow-other-keys)
12341 (let ((youtube-dl (assoc-ref inputs "youtube-dl")))
12342 ;; .el is read-only in git.
12343 (chmod "youtube-dl.el" #o644)
12344 ;; Specify the absolute file names of the various
12345 ;; programs so that everything works out-of-the-box.
12346 (emacs-substitute-variables
12347 "youtube-dl.el"
12348 ("youtube-dl-program"
12349 (string-append youtube-dl "/bin/youtube-dl")))))))))
12350 (home-page "https://github.com/skeeto/youtube-dl-emacs/")
12351 (synopsis "Emacs youtube-dl download manager")
12352 (description "This package manages a video download queue for
12353 @command{youtube-dl}, which serves as the back end. It manages a single
12354 @command{youtube-dl} subprocess, downloading one video at a time. New videos
12355 can be queued at any time.")
12356 (license license:unlicense))))
12357
12358 (define-public emacs-org-web-tools
12359 (package
12360 (name "emacs-org-web-tools")
12361 (version "1.0")
12362 (source
12363 (origin
12364 (method git-fetch)
12365 (uri (git-reference
12366 (url "https://github.com/alphapapa/org-web-tools")
12367 (commit version)))
12368 (file-name (git-file-name name version))
12369 (sha256
12370 (base32
12371 "0kak9h5ny00d39gnwspv53nadnag01brw2fq9zk5wpfc91h9bjng"))))
12372 (build-system emacs-build-system)
12373 (propagated-inputs
12374 `(("emacs-dash" ,emacs-dash)
12375 ("emacs-esxml" ,emacs-esxml)
12376 ("emacs-s" ,emacs-s)))
12377 (inputs
12378 `(("pandoc" ,ghc-pandoc)))
12379 (arguments
12380 `(#:phases
12381 (modify-phases %standard-phases
12382 (add-after 'unpack 'patch-exec-paths
12383 (lambda* (#:key inputs #:allow-other-keys)
12384 (let ((pandoc (assoc-ref inputs "pandoc")))
12385 (substitute* "org-web-tools.el"
12386 (("\"pandoc\"") (string-append "\"" pandoc "/bin/pandoc\"")))
12387 #t))))))
12388 (home-page "https://github.com/alphapapa/org-web-tools")
12389 (synopsis "Display/Process web page as Org-mode content")
12390 (description "This package contains library functions and commands useful
12391 for retrieving web page content and processing it into Org-mode content.
12392
12393 For example, you can copy a URL to the clipboard or kill-ring, then run a
12394 command that downloads the page, isolates the “readable” content with
12395 @command{eww-readable}, converts it to Org-mode content with Pandoc, and
12396 displays it in an Org-mode buffer. Another command does all of that but
12397 inserts it as an Org entry instead of displaying it in a new buffer.")
12398 (license license:gpl3+)))
12399
12400 (define-public emacs-blimp
12401 (let ((commit "e420763d6d18b5d1be552cdbc47f91418343db03"))
12402 (package
12403 (name "emacs-blimp")
12404 (version (git-version "0.0.0" "1" commit))
12405 (source
12406 (origin
12407 (method git-fetch)
12408 (uri (git-reference
12409 (url "https://github.com/walseb/blimp")
12410 (commit commit)))
12411 (file-name (git-file-name name version))
12412 (sha256
12413 (base32
12414 "09wmhpym516b81dfq8smdmysh1fn610dzlyvyl2rkx8600f0fizd"))))
12415 (build-system emacs-build-system)
12416 (propagated-inputs
12417 `(("emacs-eimp" ,emacs-eimp)))
12418 (home-page "https://github.com/walseb/blimp")
12419 (synopsis "Emacs wrapper around all Imagemagick commands")
12420 (description "Blimp (Bustling Image Manipulation Package) is a complete
12421 wrapper around all Imagemagick commands with descriptions, autocompletion (for
12422 some commands) and hints displayed in prompt using @command{eimp.el} to
12423 execute its commands and resize images.")
12424 (license license:gpl3+))))
12425
12426 (define-public emacs-synosaurus
12427 (let ((commit "8bf95b935976ec0a1964cf175ed57cc5f6f93bdb"))
12428 (package
12429 (name "emacs-synosaurus")
12430 (version (git-version "0.1.0" "1" commit))
12431 (source
12432 (origin
12433 (method git-fetch)
12434 (uri (git-reference
12435 (url "https://github.com/hpdeifel/synosaurus")
12436 (commit commit)))
12437 (file-name (git-file-name name version))
12438 (sha256
12439 (base32
12440 "15by9jccab6kyplxa6k0glzaivxkqdigl33gl2qi2cvy6f2q7gva"))))
12441 (build-system emacs-build-system)
12442 (propagated-inputs
12443 `(("wordnet" ,wordnet)))
12444 (arguments
12445 `(#:phases
12446 (modify-phases %standard-phases
12447 (add-after 'unpack 'configure
12448 (lambda* (#:key inputs outputs #:allow-other-keys)
12449 (let ((wn (assoc-ref inputs "wordnet")))
12450 ;; .el is read-only in git.
12451 (chmod "synosaurus-wordnet.el" #o644)
12452 ;; Specify the absolute file names of the various
12453 ;; programs so that everything works out-of-the-box.
12454 (emacs-substitute-variables
12455 "synosaurus-wordnet.el"
12456 ("wordnet-command"
12457 (string-append wn "/bin/wn")))))))))
12458 (home-page "https://github.com/hpdeifel/synosaurus")
12459 (synopsis "Extensible thesaurus mode for Emacs")
12460 (description "Synosaurus is a thesaurus fontend for Emacs with pluggable
12461 backends, including the @command{wordnet} offline backend.")
12462 (license license:gpl3+))))
12463
12464 (define-public emacs-all-the-icons
12465 (package
12466 (name "emacs-all-the-icons")
12467 (version "3.2.0")
12468 (source
12469 (origin
12470 (method git-fetch)
12471 (uri (git-reference
12472 (url "https://github.com/domtronn/all-the-icons.el.git")
12473 (commit version)))
12474 (file-name (git-file-name name version))
12475 (sha256
12476 (base32
12477 "1sdl33117lccznj38021lwcdnpi9nxmym295q6y460y4dm4lx0jn"))))
12478 (build-system emacs-build-system)
12479 (arguments
12480 `(#:include '("\\.el$" "^data/" "^fonts/")
12481 ;; Compiling "test/" fails with "Symbol’s value as variable is void:
12482 ;; all-the-icons--root-code". Ignoring tests.
12483 #:exclude '("^test/")
12484 #:tests? #f))
12485 (propagated-inputs
12486 `(("f" ,emacs-f)
12487 ("memoize" ,emacs-memoize)))
12488 (home-page "https://github.com/domtronn/all-the-icons.el")
12489 (synopsis "Collect icon fonts and propertize them within Emacs")
12490 (description "All-the-icons is a utility package to collect various icon
12491 fonts and propertize them within Emacs. Icon fonts allow you to propertize
12492 and format icons the same way you would normal text. This enables things such
12493 as better scaling of and anti aliasing of the icons.")
12494 ;; Package is released under Expat license. Elisp files are licensed
12495 ;; under GPL3+. Fonts come with various licenses: Expat for
12496 ;; "all-the-icons.ttf" and "file-icons.ttf", Apache License 2.0 for
12497 ;; "material-design-icons.ttf", and SIL OFL 1.1 for "fontawesome.ttf",
12498 ;; "ocitcons.ttf" and "weathericons.ttf".
12499 (license
12500 (list license:expat license:gpl3+ license:silofl1.1 license:asl2.0))))
12501
12502 (define-public emacs-powerline
12503 (package
12504 (name "emacs-powerline")
12505 (version "2.4")
12506 (source
12507 (origin
12508 (method git-fetch)
12509 (uri (git-reference
12510 (url "https://github.com/milkypostman/powerline.git")
12511 (commit version)))
12512 (file-name (git-file-name name version))
12513 (sha256
12514 (base32
12515 "1hp3xp18943n0rlggz55150020ivw8gvi1vyxkr4z8xhpwq4gaar"))))
12516 (build-system emacs-build-system)
12517 (home-page "https://github.com/milkypostman/powerline/")
12518 (synopsis "Mode-line plugin for Emacs")
12519 (description "Powerline is a utility plugin which allows you to create
12520 a better-looking, more functional Emacs mode-line. A collection of predefined
12521 themes comes with the package.")
12522 (license license:gpl3+)))
12523
12524 (define-public emacs-spaceline
12525 (package
12526 (name "emacs-spaceline")
12527 (version "2.0.1")
12528 (source
12529 (origin
12530 (method git-fetch)
12531 (uri (git-reference
12532 (url "https://github.com/TheBB/spaceline.git")
12533 (commit (string-append "v" version))))
12534 (file-name (git-file-name name version))
12535 (sha256
12536 (base32
12537 "1q8r95zfrh0vxna5ml2pq9b9f66clfqcl4d2qy2aizkvzyxg6skl"))))
12538 (build-system emacs-build-system)
12539 (propagated-inputs
12540 `(("dash" ,emacs-dash)
12541 ("powerline" ,emacs-powerline)
12542 ("s" ,emacs-s)))
12543 (home-page "https://github.com/TheBB/spaceline")
12544 (synopsis "Powerline theme from Spacemacs")
12545 (description "Spaceline provides Spacemacs' mode-line theme.
12546 This package provides features for three kinds of users.
12547
12548 @itemize
12549 @item You just want to use the Spacemacs mode-line theme and forget about it.
12550 @item You want to use something similar to the Spacemacs mode-line theme, but
12551 with a handful of easy tweaks.
12552 @item You want an easy-to-use library for building your own mode-line from
12553 scratch, and you think the Spacemacs theme looks good.
12554 @end itemize")
12555 (license license:gpl3+)))
12556
12557 (define-public emacs-column-marker
12558 (package
12559 (name "emacs-column-marker")
12560 (version "9")
12561 (source
12562 (origin
12563 (method url-fetch)
12564 (uri "https://www.emacswiki.org/emacs/download/column-marker.el")
12565 (sha256 (base32 "05bv198zhqw5hqq6cr11mhz02dpca74hhp1ycwq369m0yb2naxy9"))))
12566 (build-system emacs-build-system)
12567 (home-page "https://www.emacswiki.org/emacs/ColumnMarker")
12568 (synopsis "Emacs mode for highlighting columns")
12569 (description
12570 "With @code{column-marker.el} you can highlight any number of text columns.
12571 Three such highlight column markers are provided by default. This is
12572 especially useful for languages like COBOL or Fortran where certain columns
12573 have special meaning. It is also handy for aligning text across long vertical
12574 distances. Multi-column characters, such as @kbd{TAB} are treated
12575 correctly.")
12576 (license license:gpl2+)))
12577
12578 (define-public emacs-slime-repl-ansi-color
12579 (let ((commit "ad03263f5d4de473bc173b64a6fc3dc1106393d7"))
12580 (package
12581 (name "emacs-slime-repl-ansi-color")
12582 (version (git-version "0.0.0" "1" commit))
12583 (source (origin
12584 (method git-fetch)
12585 (uri (git-reference
12586 (url "https://github.com/deadtrickster/slime-repl-ansi-color")
12587 (commit commit)))
12588 (file-name (git-file-name name version))
12589 (sha256
12590 (base32
12591 "0bpg7gxz310x7bnlg324c507sxc5gxwwz6h64h6kdq141r73vbi4"))))
12592 (build-system emacs-build-system)
12593 (home-page "https://github.com/deadtrickster/slime-repl-ansi-color")
12594 (synopsis "Color ANSI codes in the REPL of SLIME")
12595 (description "Color ANSI codes in the REPL of SLIME")
12596 (license license:gpl2+))))
12597
12598 (define-public emacs-helm-slime
12599 (let ((commit "9980925f3e5f6ac5a30369d2a544e82006a79c76"))
12600 (package
12601 (name "emacs-helm-slime")
12602 (version (git-version "0.0.0" "1" commit))
12603 (source (origin
12604 (method git-fetch)
12605 (uri (git-reference
12606 (url "https://github.com/emacs-helm/helm-slime")
12607 (commit commit)))
12608 (file-name (git-file-name name version))
12609 (sha256
12610 (base32
12611 "0xa07gpfkzwn522x9573mq5mfxvbawdgd0m93gqj6w5a14wk8zzh"))))
12612 (build-system emacs-build-system)
12613 (propagated-inputs
12614 `(("emacs-helm" ,emacs-helm)
12615 ("emacs-slime" ,emacs-slime)))
12616 (home-page "https://github.com/emacs-helm/helm-slime")
12617 (synopsis "Helm for SLIME, the Superior Lisp Interaction Mode for Emacs")
12618 (description "Helm-SLIME defines a few new commands:
12619
12620 @itemize
12621 @item helm-slime-complete: Select a symbol from the SLIME completion systems.
12622 @item helm-slime-list-connections: Yet another slime-list-connections with Helm.
12623 @item: helm-slime-apropos: Yet another slime-apropos with Helm.
12624 @item helm-slime-repl-history: Select an input from the SLIME REPL history and insert it.
12625 @end itemize\n")
12626 (license license:gpl3+))))
12627
12628 (define-public emacs-gtk-look
12629 (package
12630 (name "emacs-gtk-look")
12631 (version "29")
12632 (source (origin
12633 (method url-fetch)
12634 (uri "https://download.tuxfamily.org/user42/gtk-look.el")
12635 (sha256
12636 (base32
12637 "14p2nwrd51cr1v06fxbjjn6jdrkf9d6vcxhmscm0kl677s25ypsp"))))
12638 (build-system emacs-build-system)
12639 (arguments
12640 `(#:phases
12641 (modify-phases %standard-phases
12642 (add-after 'unpack 'configure
12643 (lambda _
12644 ;; File is read-only.
12645 (chmod "gtk-look.el" #o644)
12646 (emacs-substitute-variables "gtk-look.el"
12647 ("gtk-lookup-devhelp-indices"
12648 '(list (expand-file-name "~/.guix-profile/share/gtk-doc/html/*/*.devhelp*"))))
12649 #t)))))
12650 (home-page "http://user42.tuxfamily.org/gtk-look/index.html")
12651 (synopsis "Find and display HTML documentation for GTK, GNOME and Glib")
12652 (description "@command{gtk-look} finds and displays HTML documentation for
12653 GTK, GNOME and Glib functions and variables in Emacs, similar to what
12654 info-lookup-symbol does for info files (C-h S). The documentation is expected
12655 to be devhelp indexes with HTML files. The location of the indexes can be
12656 customized. In addition to C code development @command{gtk-look} is good for
12657
12658 @itemize
12659 @item @command{perl-gtk2}, recognising class funcs like
12660 @command{Gtk2::Label->new} and bare method names like @command{set_text}.
12661 @item @command{guile-gnome}, recognising methods like @command{set-text} and
12662 classes like @command{<gtk-window>}.
12663 @end itemize\n")
12664 (license license:gpl3+)))
12665
12666 (define-public emacs-ov
12667 (package
12668 (name "emacs-ov")
12669 (version "1.0.6")
12670 (source (origin
12671 (method git-fetch)
12672 (uri (git-reference
12673 (url "https://github.com/ShingoFukuyama/ov.el.git")
12674 (commit version)))
12675 (file-name (git-file-name name version))
12676 (sha256
12677 (base32
12678 "0qxk2rf84j86syxi8xknsq252irwg7sz396v3bb4wqz4prpj0kzc"))))
12679 (build-system emacs-build-system)
12680 (home-page "https://github.com/ShingoFukuyama/ov.el")
12681 (synopsis "Overlay library for Emacs Lisp")
12682 (description "@code{ov.el} provides a simple way to manipulate overlays in
12683 Emacs.")
12684 (license license:gpl3+)))
12685
12686 (define-public emacs-matrix-client
12687 (let ((commit "5d8e959a63e5de05b628ca8e1dfb974f7f618821"))
12688 (package
12689 (name "emacs-matrix-client")
12690 (version (git-version "0.0.0" "1" commit))
12691 (source (origin
12692 (method git-fetch)
12693 (uri (git-reference
12694 (url "https://github.com/jgkamat/matrix-client-el.git")
12695 (commit commit)))
12696 (file-name (git-file-name name version))
12697 (sha256
12698 (base32
12699 "15mwyjq3z867v0xl4m2s3vvfn0wqncb67xawm1cjmpnambz1yz1n"))))
12700 (build-system emacs-build-system)
12701 (propagated-inputs
12702 `(("a" ,emacs-a)
12703 ("dash" ,emacs-dash)
12704 ("esxml" ,emacs-esxml)
12705 ("f" ,emacs-f)
12706 ("frame-purpose" ,emacs-frame-purpose)
12707 ("ht" ,emacs-ht)
12708 ("ov" ,emacs-ov)
12709 ("rainbow-identifiers" ,emacs-rainbow-identifiers)
12710 ("request" ,emacs-request)
12711 ("s" ,emacs-s)
12712 ("tracking" ,emacs-tracking)))
12713 (home-page "https://github.com/jgkamat/matrix-client-el")
12714 (synopsis "Matrix client for Emacs")
12715 (description "@code{matrix-client} is a simple chat UI to Matrix.org
12716 rooms. It also provides an API which allows Emacs to seamlessly create
12717 RPC channels with users and other software.")
12718 (license license:gpl3+))))
12719
12720 (define-public emacs-sesman
12721 (package
12722 (name "emacs-sesman")
12723 (version "0.3.3")
12724 (source
12725 (origin
12726 (method git-fetch)
12727 (uri (git-reference
12728 (url "https://github.com/vspinu/sesman.git")
12729 (commit (string-append "v" version))))
12730 (file-name (git-file-name name version))
12731 (sha256
12732 (base32
12733 "0r32f8ma9ddczxrrdz0nadp14j3zmk10q1ch02gb82synkx3xdra"))))
12734 (build-system emacs-build-system)
12735 (arguments
12736 `(#:tests? #t
12737 #:test-command '("make" "test")))
12738 (home-page "https://github.com/vspinu/sesman")
12739 (synopsis "Session manager for Emacs based IDEs")
12740 (description "Sesman provides facilities for session management and
12741 interactive session association with the current contexts (project, directory,
12742 buffers). While sesman can be used to manage arbitrary sessions, it primary
12743 targets the Emacs based IDEs (CIDER, ESS, Geiser, Robe, SLIME etc.)")
12744 (license license:gpl3+)))
12745
12746 (define-public emacs-buttercup
12747 (package
12748 (name "emacs-buttercup")
12749 (version "1.16")
12750 (source
12751 (origin
12752 (method git-fetch)
12753 (uri (git-reference
12754 (url "https://github.com/jorgenschaefer/emacs-buttercup.git")
12755 (commit (string-append "v" version))))
12756 (file-name (git-file-name name version))
12757 (sha256
12758 (base32
12759 "0dckgcyzsav6ld78bcyrrygy1cz1jvqgav6vy8f6klpmk3r8xrl1"))))
12760 (build-system emacs-build-system)
12761 (arguments
12762 `(#:tests? #t
12763 #:test-command '("make" "test")
12764 #:phases
12765 (modify-phases %standard-phases
12766 (add-after 'install 'install-bin
12767 (lambda* (#:key outputs #:allow-other-keys)
12768 (install-file "bin/buttercup"
12769 (string-append (assoc-ref outputs "out") "/bin"))
12770 #t)))))
12771 (home-page "https://github.com/jorgenschaefer/emacs-buttercup")
12772 (synopsis "Behavior driven emacs lisp testing framework")
12773 (description "Buttercup is a behavior-driven development framework for
12774 testing Emacs Lisp code. It allows to group related tests so they can share
12775 common set-up and tear-down code, and allows the programmer to \"spy\" on
12776 functions to ensure they are called with the right arguments during testing.")
12777 (license license:gpl3+)))
12778
12779 (define-public emacs-wordnut
12780 (let ((commit "feac531404041855312c1a046bde7ea18c674915")
12781 (revision "0"))
12782 (package
12783 (name "emacs-wordnut")
12784 (version (git-version "0.1" revision commit))
12785 (home-page "https://github.com/gromnitsky/wordnut")
12786 (source (origin
12787 (method git-fetch)
12788 (uri (git-reference (url home-page) (commit commit)))
12789 (sha256
12790 (base32
12791 "1jl0b6g64a9w0q7bfvwha67vgws5xd15b7mkfyb5gkz3pymqhfxn"))
12792 (patches
12793 (search-patches "emacs-wordnut-require-adaptive-wrap.patch"))
12794 (file-name (git-file-name name version))))
12795 (build-system emacs-build-system)
12796 (propagated-inputs
12797 `(("wordnet" ,wordnet)
12798 ("emacs-adaptive-wrap" ,emacs-adaptive-wrap)))
12799 (synopsis "Major mode for WordNet")
12800 (description "This Emacs package provides an interface for
12801 @code{wordnet}. Features include completion, if the query is not found
12802 too ambiguous and navigation in the result buffer.")
12803 (license license:gpl3+))))
12804
12805 (define-public emacs-frame-purpose
12806 (package
12807 (name "emacs-frame-purpose")
12808 (version "1.0")
12809 (source (origin
12810 (method git-fetch)
12811 (uri (git-reference
12812 (url "https://github.com/alphapapa/frame-purpose.el.git")
12813 (commit version)))
12814 (sha256
12815 (base32
12816 "0jq2aam1yvccw887ighd1wm2xkvk5bv53ffiz3crcl16a255aj4q"))
12817 (file-name (git-file-name name version))))
12818 (build-system emacs-build-system)
12819 (inputs
12820 `(("dash" ,emacs-dash)))
12821 (synopsis "Purpose-specific frames for Emacs")
12822 (description "@code{frame-purpose} makes it easy to open purpose-specific
12823 frames that only show certain buffers, e.g. by buffers’ major mode, their
12824 filename or directory, etc, with custom frame/X-window titles, icons, and
12825 other frame parameters.")
12826 (home-page "https://github.com/alphapapa/frame-purpose.el")
12827 (license license:gpl3+)))
12828
12829 (define-public emacs-arduino-mode
12830 (let ((commit "3e2bad4569ad26e929e6db2cbcff0d6d36812698")) ;no release yet
12831 (package
12832 (name "emacs-arduino-mode")
12833 (version (git-version "0" "0" commit))
12834 (source (origin
12835 (method git-fetch)
12836 (uri (git-reference
12837 (url "https://github.com/bookest/arduino-mode.git")
12838 (commit commit)))
12839 (sha256
12840 (base32
12841 "1yvaqjc9hadbnnay5fprnh890xsp53kidad1zpb4a5z4a5z61n3c"))
12842 (file-name (git-file-name name version))))
12843 (build-system emacs-build-system)
12844 (synopsis "Emacs major mode for editing Arduino sketches")
12845 (description "Emacs major mode for editing Arduino sketches.")
12846 (home-page "https://github.com/bookest/arduino-mode")
12847 (license license:gpl3+))))