gnu: Add wl-clipboard.
[jackhill/guix/guix.git] / gnu / packages / emacs.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2014 Taylan Ulrich Bayirli/Kammer <taylanbayirli@gmail.com>
3 ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
4 ;;; Copyright © 2014, 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
5 ;;; Copyright © 2014, 2015, 2016, 2017, 2018 Alex Kost <alezost@gmail.com>
6 ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
7 ;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
8 ;;; Copyright © 2016, 2017, 2018 Chris Marusich <cmmarusich@gmail.com>
9 ;;; Copyright © 2015, 2016, 2018 Christopher Lemmer Webber <cwebber@dustycloud.org>
10 ;;; Copyright © 2016 Adriano Peluso <catonano@gmail.com>
11 ;;; Copyright © 2016, 2017, 2018, 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 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 ;;; Copyright © 2018 Gabriel Hondet <gabrielhondet@gmail.com>
45 ;;;
46 ;;; This file is part of GNU Guix.
47 ;;;
48 ;;; GNU Guix is free software; you can redistribute it and/or modify it
49 ;;; under the terms of the GNU General Public License as published by
50 ;;; the Free Software Foundation; either version 3 of the License, or (at
51 ;;; your option) any later version.
52 ;;;
53 ;;; GNU Guix is distributed in the hope that it will be useful, but
54 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
55 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
56 ;;; GNU General Public License for more details.
57 ;;;
58 ;;; You should have received a copy of the GNU General Public License
59 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
60
61 (define-module (gnu packages emacs)
62 #:use-module ((guix licenses) #:prefix license:)
63 #:use-module (guix packages)
64 #:use-module (guix cvs-download)
65 #:use-module (guix download)
66 #:use-module (guix git-download)
67 #:use-module (guix gexp)
68 #:use-module (guix monads)
69 #:use-module (guix store)
70 #:use-module (guix build-system gnu)
71 #:use-module (guix build-system cmake)
72 #:use-module (guix build-system emacs)
73 #:use-module (guix build-system glib-or-gtk)
74 #:use-module (guix build-system trivial)
75 #:use-module (gnu packages)
76 #:use-module (gnu packages admin)
77 #:use-module (gnu packages audio)
78 #:use-module (gnu packages bash)
79 #:use-module (gnu packages cmake)
80 #:use-module (gnu packages code)
81 #:use-module (gnu packages databases)
82 #:use-module (gnu packages guile)
83 #:use-module (gnu packages gtk)
84 #:use-module (gnu packages gnome)
85 #:use-module (gnu packages ncurses)
86 #:use-module (gnu packages python)
87 #:use-module (gnu packages tex)
88 #:use-module (gnu packages texinfo)
89 #:use-module (gnu packages tcl)
90 #:use-module (gnu packages tls)
91 #:use-module (gnu packages pkg-config)
92 #:use-module (gnu packages xorg)
93 #:use-module (gnu packages lesstif)
94 #:use-module (gnu packages llvm)
95 #:use-module (gnu packages image)
96 #:use-module (gnu packages linux)
97 #:use-module (gnu packages version-control)
98 #:use-module (gnu packages imagemagick)
99 #:use-module (gnu packages w3m)
100 #:use-module (gnu packages wget)
101 #:use-module (gnu packages autotools)
102 #:use-module (gnu packages base)
103 #:use-module (gnu packages compression)
104 #:use-module (gnu packages xml)
105 #:use-module (gnu packages glib)
106 #:use-module (gnu packages acl)
107 #:use-module (gnu packages mail)
108 #:use-module (gnu packages package-management)
109 #:use-module (gnu packages perl)
110 #:use-module (gnu packages pdf)
111 #:use-module (gnu packages scheme)
112 #:use-module (gnu packages statistics)
113 #:use-module (gnu packages xiph)
114 #:use-module (gnu packages mp3)
115 #:use-module (gnu packages gettext)
116 #:use-module (gnu packages fribidi)
117 #:use-module (gnu packages gd)
118 #:use-module (gnu packages fontutils)
119 #:use-module (gnu packages password-utils)
120 #:use-module (gnu packages pulseaudio)
121 #:use-module (gnu packages xdisorg)
122 #:use-module (gnu packages shells)
123 #:use-module (gnu packages gnupg)
124 #:use-module (gnu packages video)
125 #:use-module (gnu packages haskell)
126 #:use-module (gnu packages wordnet)
127 #:use-module (gnu packages ocaml)
128 #:use-module (guix utils)
129 #:use-module (srfi srfi-1)
130 #:use-module (ice-9 match))
131
132 (define-public emacs
133 (package
134 (name "emacs")
135 (version "26.1")
136 (source (origin
137 (method url-fetch)
138 (uri (string-append "mirror://gnu/emacs/emacs-"
139 version ".tar.xz"))
140 (sha256
141 (base32
142 "0b6k1wq44rc8gkvxhi1bbjxbz3cwg29qbq8mklq2az6p1hjgrx0w"))
143 (patches (search-patches "emacs-exec-path.patch"
144 "emacs-fix-scheme-indent-function.patch"
145 "emacs-source-date-epoch.patch"))
146 (modules '((guix build utils)))
147 (snippet
148 ;; Delete the bundled byte-compiled elisp files and
149 ;; generated autoloads.
150 '(with-directory-excursion "lisp"
151 (for-each delete-file
152 (append (find-files "." "\\.elc$")
153 (find-files "." "loaddefs\\.el$")
154 ;; This is the only "autoloads" file that
155 ;; does not have "*loaddefs.el" name.
156 '("eshell/esh-groups.el")))
157
158 ;; Make sure Tramp looks for binaries in the right places on
159 ;; remote GuixSD machines, where 'getconf PATH' returns
160 ;; something bogus.
161 (substitute* "net/tramp-sh.el"
162 ;; Patch the line after "(defcustom tramp-remote-path".
163 (("\\(tramp-default-remote-path")
164 (format #f "(tramp-default-remote-path ~s ~s ~s ~s "
165 "~/.guix-profile/bin" "~/.guix-profile/sbin"
166 "/run/current-system/profile/bin"
167 "/run/current-system/profile/sbin")))
168
169 ;; Make sure Man looks for C header files in the right
170 ;; places.
171 (substitute* "man.el"
172 (("\"/usr/local/include\"" line)
173 (string-join
174 (list line
175 "\"~/.guix-profile/include\""
176 "\"/var/guix/profiles/system/profile/include\"")
177 " ")))
178 #t))))
179 (build-system glib-or-gtk-build-system)
180 (arguments
181 `(#:tests? #f ; no check target
182 #:phases
183 (modify-phases %standard-phases
184 (add-before 'configure 'fix-/bin/pwd
185 (lambda _
186 ;; Use `pwd', not `/bin/pwd'.
187 (substitute* (find-files "." "^Makefile\\.in$")
188 (("/bin/pwd")
189 "pwd"))
190 #t))
191 (add-after 'install 'install-site-start
192 ;; Use 'guix-emacs' in "site-start.el". This way, Emacs packages
193 ;; provided by Guix and installed in
194 ;; ~/.guix-profile/share/emacs/site-lisp/guix.d/PACKAGE-VERSION are
195 ;; automatically found.
196 (lambda* (#:key inputs outputs #:allow-other-keys)
197 (let* ((out (assoc-ref outputs "out"))
198 (lisp-dir (string-append out "/share/emacs/site-lisp")))
199 (copy-file (assoc-ref inputs "guix-emacs.el")
200 (string-append lisp-dir "/guix-emacs.el"))
201 (with-output-to-file (string-append lisp-dir "/site-start.el")
202 (lambda ()
203 (display
204 (string-append "(when (require 'guix-emacs nil t)\n"
205 " (guix-emacs-autoload-packages))\n"))))
206 #t))))))
207 (inputs
208 `(("gnutls" ,gnutls)
209 ("ncurses" ,ncurses)
210
211 ;; TODO: Add the optional dependencies.
212 ("libx11" ,libx11)
213 ("gtk+" ,gtk+)
214 ("libxft" ,libxft)
215 ("libtiff" ,libtiff)
216 ("giflib" ,giflib)
217 ("libjpeg" ,libjpeg)
218 ("imagemagick" ,imagemagick)
219 ("acl" ,acl)
220
221 ;; When looking for libpng `configure' links with `-lpng -lz', so we
222 ;; must also provide zlib as an input.
223 ("libpng" ,libpng)
224 ("zlib" ,zlib)
225
226 ("librsvg" ,librsvg)
227 ("libxpm" ,libxpm)
228 ("libxml2" ,libxml2)
229 ("libice" ,libice)
230 ("libsm" ,libsm)
231 ("alsa-lib" ,alsa-lib)
232 ("dbus" ,dbus)
233
234 ;; multilingualization support
235 ("libotf" ,libotf)
236 ("m17n-lib" ,m17n-lib)))
237 (native-inputs
238 `(("guix-emacs.el" ,(search-auxiliary-file "emacs/guix-emacs.el"))
239 ("pkg-config" ,pkg-config)
240 ("texinfo" ,texinfo)))
241
242 (native-search-paths
243 (list (search-path-specification
244 (variable "INFOPATH")
245 (files '("share/info")))))
246
247 (home-page "https://www.gnu.org/software/emacs/")
248 (synopsis "The extensible, customizable, self-documenting text editor")
249 (description
250 "GNU Emacs is an extensible and highly customizable text editor. It is
251 based on an Emacs Lisp interpreter with extensions for text editing. Emacs
252 has been extended in essentially all areas of computing, giving rise to a
253 vast array of packages supporting, e.g., email, IRC and XMPP messaging,
254 spreadsheets, remote server editing, and much more. Emacs includes extensive
255 documentation on all aspects of the system, from basic editing to writing
256 large Lisp programs. It has full Unicode support for nearly all human
257 languages.")
258 (license license:gpl3+)))
259
260 (define-public emacs-minimal
261 ;; This is the version that you should use as an input to packages that just
262 ;; need to byte-compile .el files.
263 (package (inherit emacs)
264 (name "emacs-minimal")
265 (synopsis "The extensible text editor (used only for byte-compilation)")
266 (build-system gnu-build-system)
267 (arguments
268 `(#:configure-flags (list "--with-gnutls=no")
269 ,@(substitute-keyword-arguments (package-arguments emacs)
270 ((#:phases phases)
271 `(modify-phases ,phases
272 (delete 'install-site-start))))))
273 (inputs
274 `(("ncurses" ,ncurses)))
275 (native-inputs
276 `(("pkg-config" ,pkg-config)))))
277
278 (define-public emacs-no-x
279 (package (inherit emacs)
280 (name "emacs-no-x")
281 (synopsis "The extensible, customizable, self-documenting text
282 editor (console only)")
283 (build-system gnu-build-system)
284 (inputs (fold alist-delete
285 (package-inputs emacs)
286 '("libx11" "gtk+" "libxft" "libtiff" "giflib" "libjpeg"
287 "imagemagick" "libpng" "librsvg" "libxpm" "libice"
288 "libsm"
289
290 ;; These depend on libx11, so remove them as well.
291 "libotf" "m17n-lib" "dbus")))))
292
293 (define-public emacs-no-x-toolkit
294 (package (inherit emacs)
295 (name "emacs-no-x-toolkit")
296 (synopsis "The extensible, customizable, self-documenting text
297 editor (without an X toolkit)" )
298 (build-system gnu-build-system)
299 (inputs (append `(("inotify-tools" ,inotify-tools))
300 (alist-delete "gtk+" (package-inputs emacs))))
301 (arguments (append '(#:configure-flags '("--with-x-toolkit=no"))
302 (package-arguments emacs)))))
303
304 (define-public guile-emacs
305 (package (inherit emacs)
306 (name "guile-emacs")
307 (version "20150512.41120e0")
308 (source (origin
309 (method git-fetch)
310 (uri (git-reference
311 (url "git://git.hcoop.net/git/bpt/emacs.git")
312 (commit "41120e0f595b16387eebfbf731fff70481de1b4b")))
313 (file-name (string-append name "-" version "-checkout"))
314 (patches (search-patches "guile-emacs-fix-configure.patch"))
315 (sha256
316 (base32
317 "0lvcvsz0f4mawj04db35p1dvkffdqkz8pkhc0jzh9j9x2i63kcz6"))))
318 (native-inputs
319 `(("autoconf" ,autoconf)
320 ("automake" ,automake)
321 ("guile" ,guile-for-guile-emacs)
322 ,@(package-native-inputs emacs)))
323 (arguments
324 (substitute-keyword-arguments `(;; Build fails if we allow parallel build.
325 #:parallel-build? #f
326 ;; Tests aren't passing for now.
327 #:tests? #f
328 ,@(package-arguments emacs))
329 ((#:phases phases)
330 `(modify-phases ,phases
331 (add-after 'unpack 'autogen
332 (lambda _
333 (invoke "sh" "autogen.sh")))
334 ;; Build sometimes fails: deps/dispnew.d: No such file or directory
335 (add-before 'build 'make-deps-dir
336 (lambda _
337 (invoke "mkdir" "-p" "src/deps")))))))))
338
339 \f
340 ;;;
341 ;;; Emacs hacking.
342 ;;;
343
344 (define-public emacs-geiser
345 (package
346 (name "emacs-geiser")
347 (version "0.10")
348 (source (origin
349 (method url-fetch)
350 (uri (string-append "mirror://savannah/geiser/" version
351 "/geiser-" version ".tar.gz"))
352 (sha256
353 (base32
354 "0pj3l7p8d60c9b4vfprnv6g5l61d74pls4b5dvd84cn4ky9mzwjv"))))
355 (build-system gnu-build-system)
356 (arguments
357 '(#:phases
358 (modify-phases %standard-phases
359 (add-after 'install 'post-install
360 (lambda* (#:key outputs #:allow-other-keys)
361 (symlink "geiser-install.el"
362 (string-append (assoc-ref outputs "out")
363 "/share/emacs/site-lisp/"
364 "geiser-autoloads.el"))
365 #t)))))
366 (inputs `(("guile" ,guile-2.2)))
367 (native-inputs `(("emacs" ,emacs-minimal)))
368 (home-page "https://nongnu.org/geiser/")
369 (synopsis "Collection of Emacs modes for Guile and Racket hacking")
370 (description
371 "Geiser is a collection of Emacs major and minor modes that conspire with
372 one or more Scheme implementations to keep the Lisp Machine Spirit alive. The
373 continuously running Scheme interpreter takes the center of the stage in
374 Geiser. A bundle of Elisp shims orchestrates the dialog between the Scheme
375 implementation, Emacs and, ultimately, the schemer, giving them access to live
376 metadata.")
377 (license license:bsd-3)))
378
379 (define-public geiser
380 (deprecated-package "geiser" emacs-geiser))
381
382 (define-public emacs-paredit
383 (package
384 (name "emacs-paredit")
385 (version "24")
386 (source (origin
387 (method url-fetch)
388 (uri (string-append "http://mumble.net/~campbell/emacs/paredit-"
389 version ".el"))
390 (sha256
391 (base32
392 "0pp3n8q6kc70blqsaw0zlzp6bc327dpgdrjr0cnh7hqg1lras7ka"))))
393 (build-system emacs-build-system)
394 (home-page "http://mumble.net/~campbell/emacs/paredit/")
395 (synopsis "Emacs minor mode for editing parentheses")
396 (description
397 "ParEdit (paredit.el) is a minor mode for performing structured editing
398 of S-expression data. The typical example of this would be Lisp or Scheme
399 source code.
400
401 ParEdit helps **keep parentheses balanced** and adds many keys for moving
402 S-expressions and moving around in S-expressions. Its behavior can be jarring
403 for those who may want transient periods of unbalanced parentheses, such as
404 when typing parentheses directly or commenting out code line by line.")
405 (license license:gpl3+)))
406
407 (define-public paredit
408 (deprecated-package "paredit" emacs-paredit))
409
410 (define-public git-modes
411 (package
412 (name "emacs-git-modes")
413 (version "1.2.8")
414 (source (origin
415 (method url-fetch)
416 (uri (string-append
417 "https://github.com/magit/git-modes/archive/"
418 version ".tar.gz"))
419 (file-name (string-append name "-" version ".tar.gz"))
420 (sha256
421 (base32
422 "0h49f68yn0q4lg054adqii4qja1z2pzybm7nf4kvpq7fzjrzgv1q"))))
423 (build-system emacs-build-system)
424 (home-page "https://github.com/magit/git-modes")
425 (synopsis "Emacs major modes for Git configuration files")
426 (description
427 "This package provides Emacs major modes for editing various Git
428 configuration files, such as .gitattributes, .gitignore, and .git/config.")
429 (license license:gpl3+)))
430
431 (define-public git-modes/old-name
432 (deprecated-package "git-modes" git-modes))
433
434 (define-public emacs-with-editor
435 (package
436 (name "emacs-with-editor")
437 (version "2.7.3")
438 (source (origin
439 (method url-fetch)
440 (uri (string-append
441 "https://github.com/magit/with-editor/archive/v"
442 version ".tar.gz"))
443 (file-name (string-append name "-" version ".tar.gz"))
444 (sha256
445 (base32
446 "1ln2s0kckzkv50qmr6x1kb2j30cfjii0vs6lpghg7ff4lav8jqgh"))))
447 (build-system emacs-build-system)
448 (propagated-inputs
449 `(("emacs-dash" ,emacs-dash)))
450 (home-page "https://github.com/magit/with-editor")
451 (synopsis "Emacs library for using Emacsclient as EDITOR")
452 (description
453 "This package provides an Emacs library to use the Emacsclient as
454 @code{$EDITOR} of child processes, making sure they know how to call home.
455 For remote processes a substitute is provided, which communicates with Emacs
456 on stdout instead of using a socket as the Emacsclient does.")
457 (license license:gpl3+)))
458
459 (define-public emacs-magit
460 (package
461 (name "emacs-magit")
462 (version "2.13.0")
463 (source (origin
464 (method url-fetch)
465 (uri (string-append
466 "https://github.com/magit/magit/releases/download/"
467 version "/magit-" version ".tar.gz"))
468 (sha256
469 (base32
470 "1ygaah3dd3nxpyd17297xgvdcgr7pgzzwlmpnmchki0kiwgg3sbc"))))
471 (build-system gnu-build-system)
472 (native-inputs `(("texinfo" ,texinfo)
473 ("emacs" ,emacs-minimal)))
474 (inputs
475 `(("git" ,git)
476 ("perl" ,perl)))
477 (propagated-inputs
478 `(("dash" ,emacs-dash)
479 ("ghub" ,emacs-ghub)
480 ("magit-popup" ,emacs-magit-popup)
481 ("with-editor" ,emacs-with-editor)))
482 (arguments
483 `(#:test-target "test"
484 #:tests? #f ; tests are not included in the release
485
486 #:make-flags
487 (list (string-append "PREFIX=" %output)
488 ;; Don't put .el files in a sub-directory.
489 (string-append "lispdir=" %output "/share/emacs/site-lisp")
490 (string-append "DASH_DIR="
491 (assoc-ref %build-inputs "dash")
492 "/share/emacs/site-lisp/guix.d/dash-"
493 ,(package-version emacs-dash))
494 (string-append "GHUB_DIR="
495 (assoc-ref %build-inputs "ghub")
496 "/share/emacs/site-lisp/guix.d/ghub-"
497 ,(package-version emacs-ghub))
498 (string-append "MAGIT_POPUP_DIR="
499 (assoc-ref %build-inputs "magit-popup")
500 "/share/emacs/site-lisp/guix.d/magit-popup-"
501 ,(package-version emacs-magit-popup))
502 (string-append "WITH_EDITOR_DIR="
503 (assoc-ref %build-inputs "with-editor")
504 "/share/emacs/site-lisp/guix.d/with-editor-"
505 ,(package-version emacs-with-editor)))
506
507 #:phases
508 (modify-phases %standard-phases
509 (delete 'configure)
510 (add-before
511 'build 'patch-exec-paths
512 (lambda* (#:key inputs #:allow-other-keys)
513 (let ((perl (assoc-ref inputs "perl")))
514 (substitute* "lisp/magit-sequence.el"
515 (("perl") (string-append perl "/bin/perl")))
516 #t))))))
517 (home-page "https://magit.vc/")
518 (synopsis "Emacs interface for the Git version control system")
519 (description
520 "With Magit, you can inspect and modify your Git repositories with Emacs.
521 You can review and commit the changes you have made to the tracked files, for
522 example, and you can browse the history of past changes. There is support for
523 cherry picking, reverting, merging, rebasing, and other common Git
524 operations.")
525 (license license:gpl3+)))
526
527 (define-public magit
528 (deprecated-package "magit" emacs-magit))
529
530 (define-public emacs-magit-svn
531 (package
532 (name "emacs-magit-svn")
533 (version "2.2.0")
534 (source (origin
535 (method url-fetch)
536 (uri (string-append
537 "https://github.com/magit/magit-svn/archive/"
538 version ".tar.gz"))
539 (file-name (string-append name "-" version ".tar.gz"))
540 (sha256
541 (base32
542 "1c3n377v436zaxamlsz04y1ahdhp96x1vd43zaryv4y10m02ba47"))))
543 (build-system trivial-build-system)
544 (native-inputs `(("emacs" ,emacs-minimal)
545 ("tar" ,tar)
546 ("gzip" ,gzip)))
547 (propagated-inputs `(("dash" ,emacs-dash)
548 ("with-editor" ,emacs-with-editor)
549 ("magit" ,emacs-magit)))
550 (arguments
551 `(#:modules ((guix build utils)
552 (guix build emacs-utils))
553
554 #:builder
555 (begin
556 (use-modules (guix build utils)
557 (guix build emacs-utils))
558
559 (let* ((tar (string-append (assoc-ref %build-inputs "tar")
560 "/bin/tar"))
561 (PATH (string-append (assoc-ref %build-inputs "gzip")
562 "/bin"))
563 (emacs (string-append (assoc-ref %build-inputs "emacs")
564 "/bin/emacs"))
565 (magit (string-append (assoc-ref %build-inputs "magit")
566 "/share/emacs/site-lisp"))
567 (dash (string-append (assoc-ref %build-inputs "dash")
568 "/share/emacs/site-lisp/guix.d/dash-"
569 ,(package-version emacs-dash)))
570 (with-editor (string-append (assoc-ref %build-inputs "with-editor")
571 "/share/emacs/site-lisp/guix.d/with-editor-"
572 ,(package-version emacs-with-editor)))
573 (source (assoc-ref %build-inputs "source"))
574 (lisp-dir (string-append %output "/share/emacs/site-lisp")))
575 (setenv "PATH" PATH)
576 (invoke tar "xvf" source)
577
578 (install-file (string-append "magit-svn-" ,version "/magit-svn.el")
579 lisp-dir)
580
581 (with-directory-excursion lisp-dir
582 (parameterize ((%emacs emacs))
583 (emacs-generate-autoloads ,name lisp-dir)
584 (setenv "EMACSLOADPATH"
585 (string-append ":" magit ":" dash ":" with-editor))
586 (emacs-batch-eval '(byte-compile-file "magit-svn.el"))))
587 #t))))
588 (home-page "https://github.com/magit/magit-svn")
589 (synopsis "Git-SVN extension to Magit")
590 (description
591 "This package is an extension to Magit, the Git Emacs mode, providing
592 support for Git-SVN.")
593 (license license:gpl3+)))
594
595 (define-public magit-svn
596 (deprecated-package "magit-svn" emacs-magit-svn))
597
598 (define-public emacs-magit-popup
599 (package
600 (name "emacs-magit-popup")
601 (version "2.12.4")
602 (source (origin
603 (method git-fetch)
604 (uri (git-reference
605 (url "https://github.com/magit/magit-popup.git")
606 (commit (string-append "v" version))))
607 (file-name (git-file-name name version))
608 (sha256
609 (base32
610 "08952nzn0cb6gxscqyiljk4fq2zxjvr3ism0lvgw0gs9hl5phiwx"))))
611 (build-system emacs-build-system)
612 (arguments
613 `(#:phases
614 (modify-phases %standard-phases
615 (add-before 'install 'make-info
616 (lambda _
617 (invoke "make" "info"))))))
618 (native-inputs
619 `(("texinfo" ,texinfo)))
620 (propagated-inputs
621 `(("emacs-dash" ,emacs-dash)))
622 (home-page "https://github.com/magit/magit-popup")
623 (synopsis "Define prefix-infix-suffix command combos")
624 (description
625 "This library implements a generic interface for toggling switches and
626 setting options and then invoking an Emacs command which does something with
627 these arguments. The prototypical use is for the command to call an external
628 process, passing on the arguments as command line arguments.")
629 (license license:gpl3+)))
630
631 (define-public emacs-ghub
632 (package
633 (name "emacs-ghub")
634 (version "2.0.1")
635 (source (origin
636 (method url-fetch)
637 (uri (string-append
638 "https://github.com/magit/ghub/archive/v"
639 version ".tar.gz"))
640 (file-name (string-append name "-" version ".tar.gz"))
641 (sha256
642 (base32
643 "0d0qj5r1bm2aidi61rigrdaycxnyb7y1ivb3h8rpvvapsf8sk7z0"))))
644 (build-system emacs-build-system)
645 (arguments
646 `(#:phases
647 (modify-phases %standard-phases
648 (add-before 'install 'make-info
649 (lambda _
650 (invoke "make" "info"))))))
651 (native-inputs
652 `(("texinfo" ,texinfo)))
653 (home-page "https://github.com/magit/ghub")
654 (synopsis "Emacs client library for Github API and Gitlab API")
655 (description
656 "This package provides 2 files: @file{ghub.el} and @file{glab.el},
657 which are the libraries that provide basic support for using the Github and
658 Gitlab APIs from Emacs packages. It abstracts access to API resources using
659 only a handful of functions that are not resource-specific.")
660 (license license:gpl3+)))
661
662 (define-public emacs-scribble-mode
663 (let ((commit "34e9e5edb921813b6483e0fefa848efb6ee4b314")
664 (version "0.0")
665 (revision 0))
666 (package
667 (name "emacs-scribble-mode")
668 (version (if (zero? revision)
669 version
670 (string-append version "-"
671 (number->string revision)
672 "." (string-take commit 7))))
673 (source (origin
674 (method git-fetch)
675 (uri (git-reference
676 (url "https://github.com/emacs-pe/scribble-mode.git")
677 (commit commit)))
678 (sha256
679 (base32
680 "0598byqpz2q6yi2q4dwd77jj9z3n99z34d3an51s9m2za0nh1qvp"))))
681 (build-system emacs-build-system)
682 (home-page "https://github.com/emacs-pe/scribble-mode")
683 (synopsis "Emacs mode for editing the Scribble documentation syntax.")
684 (description
685 "This package provides basic syntax highlighting and editing support
686 for editing Racket's Scribble documentation syntax in Emacs.")
687 (license license:gpl3+))))
688
689 (define-public emacs-haskell-mode
690 (package
691 (name "emacs-haskell-mode")
692 (version "16.1")
693 (source (origin
694 (method url-fetch)
695 (file-name (string-append name "-" version ".tar.gz"))
696 (uri (string-append
697 "https://github.com/haskell/haskell-mode/archive/v"
698 version ".tar.gz"))
699 (sha256
700 (base32 "0g6lcjw7lcgavv3yrd8xjcyqgfyjl787y32r1z14amw2f009m78h"))
701 (patches
702 (search-patches ; backport test failure fixes
703 "haskell-mode-unused-variables.patch"
704 "haskell-mode-make-check.patch"))))
705 (inputs
706 `(("emacs-el-search" ,emacs-el-search) ; for tests
707 ("emacs-stream" ,emacs-stream))) ; for tests
708 (propagated-inputs
709 `(("emacs-dash" ,emacs-dash)))
710 (native-inputs
711 `(("emacs" ,emacs-minimal)
712 ("texinfo" ,texinfo)))
713 (build-system gnu-build-system)
714 (arguments
715 `(#:make-flags (list (string-append "EMACS="
716 (assoc-ref %build-inputs "emacs")
717 "/bin/emacs"))
718 #:modules ((ice-9 match)
719 (srfi srfi-26)
720 ,@%gnu-build-system-modules)
721 #:phases
722 (modify-phases %standard-phases
723 (delete 'configure)
724 (add-before
725 'build 'pre-build
726 (lambda* (#:key inputs #:allow-other-keys)
727 (define (el-dir store-dir)
728 (match (find-files store-dir "\\.el$")
729 ((f1 f2 ...) (dirname f1))
730 (_ "")))
731
732 (let ((sh (string-append (assoc-ref inputs "bash") "/bin/sh")))
733 (define emacs-prefix? (cut string-prefix? "emacs-" <>))
734
735 (setenv "SHELL" "sh")
736 (setenv "EMACSLOADPATH"
737 (string-concatenate
738 (map (match-lambda
739 (((? emacs-prefix? name) . dir)
740 (string-append (el-dir dir) ":"))
741 (_ ""))
742 inputs)))
743 (substitute* (find-files "." "\\.el") (("/bin/sh") sh))
744 ;; embed filename to fix test failure
745 (let ((file "tests/haskell-cabal-tests.el"))
746 (substitute* file
747 (("\\(buffer-file-name\\)")
748 (format #f "(or (buffer-file-name) ~s)" file))))
749 #t)))
750 (replace
751 'install
752 (lambda* (#:key outputs #:allow-other-keys)
753 (let* ((out (assoc-ref outputs "out"))
754 (el-dir (string-append out "/share/emacs/site-lisp"))
755 (doc (string-append
756 out "/share/doc/haskell-mode-" ,version))
757 (info (string-append out "/share/info")))
758 (define (copy-to-dir dir files)
759 (for-each (lambda (f)
760 (install-file f dir))
761 files))
762
763 (with-directory-excursion "doc"
764 (invoke "makeinfo" "haskell-mode.texi")
765 (install-file "haskell-mode.info" info))
766 (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md"))
767 (copy-to-dir el-dir (find-files "." "\\.elc?"))
768 ;; These are part of other packages.
769 (with-directory-excursion el-dir
770 (for-each delete-file '("dash.el" "ert.el")))
771 #t))))))
772 (home-page "https://github.com/haskell/haskell-mode")
773 (synopsis "Haskell mode for Emacs")
774 (description
775 "This is an Emacs mode for editing, debugging and developing Haskell
776 programs.")
777 (license license:gpl3+)))
778
779 (define-public haskell-mode
780 (deprecated-package "haskell-mode" emacs-haskell-mode))
781
782 (define-public emacs-flycheck
783 (package
784 (name "emacs-flycheck")
785 (version "31")
786 (source (origin
787 (method url-fetch)
788 (uri (string-append
789 "https://github.com/flycheck/flycheck/releases/download/"
790 version "/flycheck-" version ".tar"))
791 (sha256
792 (base32
793 "01rnwan16m7cyyrfca3c5c60mbj2r3knkpzbhji2fczsf0wns240"))
794 (modules '((guix build utils)))
795 (snippet `(begin
796 ;; Change 'flycheck-version' so that it does not
797 ;; attempt to get its version from pkg-info.el.
798 (substitute* "flycheck.el"
799 (("\\(pkg-info-version-info 'flycheck\\)")
800 (string-append "\"" ,version "\"")))
801 #t))))
802 (build-system emacs-build-system)
803 (propagated-inputs
804 `(("emacs-dash" ,emacs-dash)))
805 (home-page "https://www.flycheck.org")
806 (synopsis "On-the-fly syntax checking")
807 (description
808 "This package provides on-the-fly syntax checking for GNU Emacs. It is a
809 replacement for the older Flymake extension which is part of GNU Emacs, with
810 many improvements and additional features.
811
812 Flycheck provides fully-automatic, fail-safe, on-the-fly background syntax
813 checking for over 30 programming and markup languages with more than 70
814 different tools. It highlights errors and warnings inline in the buffer, and
815 provides an optional IDE-like error list.")
816 (license license:gpl3+))) ;+GFDLv1.3+ for the manual
817
818 (define-public emacs-a
819 (package
820 (name "emacs-a")
821 (version "0.1.1")
822 (source (origin
823 (method git-fetch)
824 (uri (git-reference
825 (url "https://github.com/plexus/a.el.git")
826 (commit (string-append "v" version))))
827 (file-name (git-file-name name version))
828 (sha256
829 (base32
830 "00v9w6qg3bkwdhypq0ssf0phdh0f4bcq59c20lngd6vhk0204dqi"))))
831 (build-system emacs-build-system)
832 (home-page "https://github.com/plexus/a.el/")
833 (synopsis
834 "Emacs library for dealing with association lists and hash tables")
835 (description "@code{emacs-a} provides Emacs Lisp functions for dealing
836 with associative structures in a uniform and functional way. These functions
837 can take association lists, hash tables, and in some cases vectors (where the
838 index is considered the key).")
839 (license license:gpl3+)))
840
841 \f
842 ;;;
843 ;;; Web browsing.
844 ;;;
845
846 (define-public emacs-w3m
847 ;; Emacs-w3m follows a "rolling release" model.
848 (package
849 (name "emacs-w3m")
850 (version "2018-11-11")
851 (source (origin
852 (method cvs-fetch)
853 (uri (cvs-reference
854 (root-directory
855 ":pserver:anonymous@cvs.namazu.org:/storage/cvsroot")
856 (module "emacs-w3m")
857 (revision version)))
858 (file-name (string-append name "-" version "-checkout"))
859 (sha256
860 (base32
861 "0nvahdbjs12zg7zsk4gql02mvnv56cf1rwj2f5p42lwp3xvswiwp"))))
862 (build-system gnu-build-system)
863 (native-inputs `(("autoconf" ,autoconf)
864 ("texinfo" ,texinfo)
865 ("emacs" ,emacs-minimal)))
866 (inputs `(("w3m" ,w3m)
867 ("imagemagick" ,imagemagick)))
868 (arguments
869 `(#:modules ((guix build gnu-build-system)
870 (guix build utils)
871 (guix build emacs-utils))
872 #:imported-modules (,@%gnu-build-system-modules
873 (guix build emacs-utils))
874 #:configure-flags
875 (let ((out (assoc-ref %outputs "out")))
876 (list (string-append "--with-lispdir="
877 out "/share/emacs/site-lisp")
878 (string-append "--with-icondir="
879 out "/share/images/emacs-w3m")
880 ;; Leave .el files uncompressed, otherwise GC can't
881 ;; identify run-time dependencies. See
882 ;; <http://lists.gnu.org/archive/html/guix-devel/2015-12/msg00208.html>
883 "--without-compress-install"))
884 #:tests? #f ; no check target
885 #:phases
886 (modify-phases %standard-phases
887 (add-after 'unpack 'autoconf
888 (lambda _
889 (invoke "autoconf")))
890 (add-before 'configure 'support-emacs!
891 (lambda _
892 ;; For some reason 'AC_PATH_EMACS' thinks that 'Emacs 26' is
893 ;; unsupported.
894 (substitute* "configure"
895 (("EMACS_FLAVOR=unsupported")
896 "EMACS_FLAVOR=emacs"))
897 #t))
898 (add-before 'build 'patch-exec-paths
899 (lambda* (#:key inputs outputs #:allow-other-keys)
900 (let ((out (assoc-ref outputs "out"))
901 (w3m (assoc-ref inputs "w3m"))
902 (imagemagick (assoc-ref inputs "imagemagick"))
903 (coreutils (assoc-ref inputs "coreutils")))
904 (make-file-writable "w3m.el")
905 (emacs-substitute-variables "w3m.el"
906 ("w3m-command" (string-append w3m "/bin/w3m"))
907 ("w3m-touch-command"
908 (string-append coreutils "/bin/touch"))
909 ("w3m-icon-directory"
910 (string-append out "/share/images/emacs-w3m")))
911 (make-file-writable "w3m-image.el")
912 (emacs-substitute-variables "w3m-image.el"
913 ("w3m-imagick-convert-program"
914 (string-append imagemagick "/bin/convert"))
915 ("w3m-imagick-identify-program"
916 (string-append imagemagick "/bin/identify")))
917 #t)))
918 (replace 'install
919 (lambda* (#:key outputs #:allow-other-keys)
920 (invoke "make" "install" "install-icons")
921 (with-directory-excursion
922 (string-append (assoc-ref outputs "out")
923 "/share/emacs/site-lisp")
924 (for-each delete-file '("ChangeLog" "ChangeLog.1"))
925 (symlink "w3m-load.el" "w3m-autoloads.el")
926 #t))))))
927 (home-page "http://emacs-w3m.namazu.org/")
928 (synopsis "Simple Web browser for Emacs based on w3m")
929 (description
930 "Emacs-w3m is an emacs interface for the w3m web browser.")
931 (license license:gpl2+)))
932
933 (define-public emacs-wget
934 (package
935 (name "emacs-wget")
936 (version "0.5.0")
937 (source (origin
938 (method url-fetch)
939 (uri (string-append "mirror://debian/pool/main/w/wget-el/wget-el_"
940 version ".orig.tar.gz"))
941 (sha256
942 (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff"))))
943 (build-system gnu-build-system)
944 (inputs `(("wget" ,wget)))
945 (native-inputs `(("emacs" ,emacs-minimal)))
946 (arguments
947 `(#:modules ((guix build gnu-build-system)
948 (guix build utils)
949 (guix build emacs-utils))
950 #:imported-modules (,@%gnu-build-system-modules
951 (guix build emacs-utils))
952 #:tests? #f ; no check target
953 #:phases
954 (modify-phases %standard-phases
955 (replace 'configure
956 (lambda* (#:key outputs #:allow-other-keys)
957 (substitute* "Makefile"
958 (("/usr/local") (assoc-ref outputs "out"))
959 (("/site-lisp/emacs-wget") "/site-lisp"))
960 #t))
961 (add-before 'build 'patch-exec-paths
962 (lambda* (#:key inputs outputs #:allow-other-keys)
963 (let ((wget (assoc-ref inputs "wget")))
964 (emacs-substitute-variables "wget.el"
965 ("wget-command" (string-append wget "/bin/wget"))))
966 #t))
967 (add-after 'install 'post-install
968 (lambda* (#:key outputs #:allow-other-keys)
969 (emacs-generate-autoloads
970 "wget" (string-append (assoc-ref outputs "out")
971 "/share/emacs/site-lisp/"))
972 #t)))))
973 (home-page "http://www.emacswiki.org/emacs/EmacsWget")
974 (synopsis "Simple file downloader for Emacs based on wget")
975 (description
976 "Emacs-wget is an emacs interface for the wget file downloader.")
977 (license license:gpl2+)))
978
979 \f
980 ;;;
981 ;;; Multimedia.
982 ;;;
983
984 (define-public emacs-emms
985 (package
986 (name "emacs-emms")
987 (version "5.1")
988 (source (origin
989 (method url-fetch)
990 (uri (string-append "mirror://gnu/emms/emms-"
991 version ".tar.gz"))
992 (sha256
993 (base32
994 "149ddczyx6x10zn4mn8g0rll1rwf4yciv8x6j0qdnlbwszblx2x6"))
995 (modules '((guix build utils)))
996 (snippet
997 '(begin
998 (substitute* "Makefile"
999 (("/usr/bin/install-info")
1000 ;; No need to use 'install-info' since it would create a
1001 ;; useless 'dir' file.
1002 "true")
1003 (("^INFODIR=.*")
1004 ;; Install Info files to $out/share/info, not $out/info.
1005 "INFODIR := $(PREFIX)/share/info\n")
1006 (("/site-lisp/emms")
1007 ;; Install directly in share/emacs/site-lisp, not in a
1008 ;; sub-directory.
1009 "/site-lisp")
1010 (("^all: (.*)\n" _ rest)
1011 ;; Build 'emms-print-metadata'.
1012 (string-append "all: " rest " emms-print-metadata\n")))
1013 #t))))
1014 (build-system gnu-build-system)
1015 (arguments
1016 `(#:modules ((guix build gnu-build-system)
1017 (guix build utils)
1018 (guix build emacs-utils)
1019 (ice-9 ftw))
1020 #:imported-modules (,@%gnu-build-system-modules
1021 (guix build emacs-utils))
1022
1023 #:phases
1024 (modify-phases %standard-phases
1025 (replace 'configure
1026 (lambda* (#:key inputs outputs #:allow-other-keys)
1027 (let ((out (assoc-ref outputs "out"))
1028 (flac (assoc-ref inputs "flac"))
1029 (vorbis (assoc-ref inputs "vorbis-tools"))
1030 (alsa (assoc-ref inputs "alsa-utils"))
1031 (mpg321 (assoc-ref inputs "mpg321"))
1032 (mp3info (assoc-ref inputs "mp3info"))
1033 (opus (assoc-ref inputs "opus-tools")))
1034 ;; Specify the installation directory.
1035 (substitute* "Makefile"
1036 (("PREFIX=.*$")
1037 (string-append "PREFIX := " out "\n")))
1038
1039 (setenv "SHELL" (which "sh"))
1040 (setenv "CC" "gcc")
1041
1042 ;; Specify the absolute file names of the various
1043 ;; programs so that everything works out-of-the-box.
1044 (with-directory-excursion "lisp"
1045 (emacs-substitute-variables
1046 "emms-player-mpg321-remote.el"
1047 ("emms-player-mpg321-remote-command"
1048 (string-append mpg321 "/bin/mpg321")))
1049 (substitute* "emms-player-simple.el"
1050 (("\"ogg123\"")
1051 (string-append "\"" vorbis "/bin/ogg123\"")))
1052 (substitute* "emms-player-simple.el"
1053 (("\"mpg321\"")
1054 (string-append "\"" mpg321 "/bin/mpg321\"")))
1055 (emacs-substitute-variables "emms-info-ogginfo.el"
1056 ("emms-info-ogginfo-program-name"
1057 (string-append vorbis "/bin/ogginfo")))
1058 (emacs-substitute-variables "emms-info-opusinfo.el"
1059 ("emms-info-opusinfo-program-name"
1060 (string-append opus "/bin/opusinfo")))
1061 (emacs-substitute-variables "emms-info-libtag.el"
1062 ("emms-info-libtag-program-name"
1063 (string-append out "/bin/emms-print-metadata")))
1064 (emacs-substitute-variables "emms-info-mp3info.el"
1065 ("emms-info-mp3info-program-name"
1066 (string-append mp3info "/bin/mp3info")))
1067 (emacs-substitute-variables "emms-info-metaflac.el"
1068 ("emms-info-metaflac-program-name"
1069 (string-append flac "/bin/metaflac")))
1070 (emacs-substitute-variables "emms-source-file.el"
1071 ("emms-source-file-gnu-find" (which "find")))
1072 (substitute* "emms-volume-amixer.el"
1073 (("\"amixer\"")
1074 (string-append "\"" alsa "/bin/amixer\"")))
1075 (substitute* "emms-tag-editor.el"
1076 (("\"mp3info\"")
1077 (string-append "\"" mp3info "/bin/mp3info\"")))))))
1078 (add-before 'install 'pre-install
1079 (lambda* (#:key outputs #:allow-other-keys)
1080 ;; The 'install' rule expects the target directories to exist.
1081 (let* ((out (assoc-ref outputs "out"))
1082 (bin (string-append out "/bin"))
1083 (man1 (string-append out "/share/man/man1")))
1084 (mkdir-p bin)
1085 (mkdir-p man1)
1086
1087 ;; Ensure that files are not rejected by gzip
1088 (let ((early-1980 315619200)) ; 1980-01-02 UTC
1089 (ftw "." (lambda (file stat flag)
1090 (unless (<= early-1980 (stat:mtime stat))
1091 (utime file early-1980 early-1980))
1092 #t)))
1093 #t)))
1094 (add-after 'install 'post-install
1095 (lambda* (#:key outputs #:allow-other-keys)
1096 (let ((out (assoc-ref outputs "out")))
1097 (symlink "emms-auto.el"
1098 (string-append out "/share/emacs/site-lisp/"
1099 "emms-autoloads.el")))
1100 #t)))
1101 #:tests? #f))
1102 (native-inputs `(("emacs" ,emacs-minimal) ;for (guix build emacs-utils)
1103 ("texinfo" ,texinfo)))
1104 (inputs `(("alsa-utils" ,alsa-utils)
1105 ("flac" ,flac) ;for metaflac
1106 ("vorbis-tools" ,vorbis-tools)
1107 ("mpg321" ,mpg321)
1108 ("taglib" ,taglib)
1109 ("mp3info" ,mp3info)
1110 ("opus-tools" ,opus-tools)))
1111 (properties '((upstream-name . "emms")))
1112 (synopsis "Emacs Multimedia System")
1113 (description
1114 "EMMS is the Emacs Multimedia System. It is a small front-end which
1115 can control one of the supported external players. Thus, it supports
1116 whatever formats are supported by your music player. It also
1117 supports tagging and playlist management, all behind a clean and
1118 light user interface.")
1119 (home-page "https://www.gnu.org/software/emms/")
1120 (license license:gpl3+)))
1121
1122 (define-public emacs-emms-player-mpv
1123 ;; A new mpv backend is included in Emms from 5.0.
1124 (deprecated-package "emacs-emms-player-mpv" emacs-emms))
1125
1126 (define-public emacs-emms-mode-line-cycle
1127 (package
1128 (name "emacs-emms-mode-line-cycle")
1129 (version "0.2.5")
1130 (source
1131 (origin
1132 (method url-fetch)
1133 (uri (string-append "https://github.com/momomo5717/emms-mode-line-cycle"
1134 "/archive/" version ".tar.gz"))
1135 (file-name (string-append name "-" version ".tar.gz"))
1136 (sha256
1137 (base32
1138 "0ifszi930pnaxk1x8pcydmvnp06868gc7nfx14q17zbajbx735k6"))))
1139 (build-system emacs-build-system)
1140 (propagated-inputs
1141 `(("emms" ,emacs-emms)))
1142 (home-page "https://github.com/momomo5717/emms-mode-line-cycle")
1143 (synopsis "Display the EMMS mode line as a ticker")
1144 (description
1145 "This is a minor mode for updating the EMMS mode-line string cyclically
1146 within a specified width. It is useful for displaying long track titles.")
1147 (license license:gpl3+)))
1148
1149 \f
1150 ;;;
1151 ;;; Miscellaneous.
1152 ;;;
1153
1154 (define-public emacs-bbdb
1155 (package
1156 (name "emacs-bbdb")
1157 (version "3.1.2")
1158 (source (origin
1159 (method url-fetch)
1160 (uri (string-append "mirror://savannah/bbdb/bbdb-"
1161 version ".tar.gz"))
1162 (sha256
1163 (base32
1164 "1gs16bbpiiy01w9pyg12868r57kx1v3hnw04gmqsmpc40l1hyy05"))
1165 (modules '((guix build utils)))
1166 (snippet
1167 ;; We don't want to build and install the PDF.
1168 '(begin
1169 (substitute* "doc/Makefile.in"
1170 (("^doc_DATA = .*$")
1171 "doc_DATA =\n"))
1172 #t))))
1173 (build-system gnu-build-system)
1174 (arguments
1175 '(#:phases
1176 (modify-phases %standard-phases
1177 (add-after 'install 'post-install
1178 (lambda* (#:key outputs #:allow-other-keys)
1179 ;; Add an autoloads file with the right name for guix.el.
1180 (let* ((out (assoc-ref outputs "out"))
1181 (site (string-append out "/share/emacs/site-lisp")))
1182 (with-directory-excursion site
1183 (symlink "bbdb-loaddefs.el" "bbdb-autoloads.el")))
1184 #t)))))
1185 (native-inputs `(("emacs" ,emacs-minimal)))
1186 (home-page "https://savannah.nongnu.org/projects/bbdb/")
1187 (synopsis "Contact management utility for Emacs")
1188 (description
1189 "BBDB is the Insidious Big Brother Database for GNU Emacs. It provides
1190 an address book for email and snail mail addresses, phone numbers and the
1191 like. It can be linked with various Emacs mail clients (Message and Mail
1192 mode, Rmail, Gnus, MH-E, and VM). BBDB is fully customizable.")
1193 (license license:gpl3+)))
1194
1195 (define-public bbdb
1196 (deprecated-package "bbdb" emacs-bbdb))
1197
1198 (define-public emacs-aggressive-indent
1199 (package
1200 (name "emacs-aggressive-indent")
1201 (version "1.8.3")
1202 (source (origin
1203 (method url-fetch)
1204 (uri (string-append "https://elpa.gnu.org/packages/"
1205 "aggressive-indent-" version ".el"))
1206 (sha256
1207 (base32
1208 "0jnzccl50x0wapprgwxinp99pwwa6j43q6msn4gv437j7swy8wnj"))))
1209 (build-system emacs-build-system)
1210 (home-page "https://elpa.gnu.org/packages/aggressive-indent.html")
1211 (synopsis "Minor mode to aggressively keep your code always indented")
1212 (description
1213 "@code{aggressive-indent-mode} is a minor mode that keeps your code
1214 always indented. It reindents after every change, making it more reliable
1215 than @code{electric-indent-mode}.")
1216 (license license:gpl2+)))
1217
1218 (define-public emacs-ag
1219 (package
1220 (name "emacs-ag")
1221 (version "0.47")
1222 (source (origin
1223 (method url-fetch)
1224 (uri (string-append
1225 "https://github.com/Wilfred/ag.el/archive/"
1226 version ".tar.gz"))
1227 (file-name (string-append name "-" version ".tar.gz"))
1228 (sha256
1229 (base32
1230 "1rlmp6wnyhqfg86dbz17r914msp58favn4kd4yrdwyia265a4lar"))))
1231 (build-system emacs-build-system)
1232 (arguments
1233 `(#:phases
1234 (modify-phases %standard-phases
1235 (add-before 'install 'make-info
1236 (lambda _
1237 (with-directory-excursion "docs"
1238 (invoke "make" "info"))))
1239 (add-after 'install 'install-info
1240 (lambda* (#:key outputs #:allow-other-keys)
1241 (let* ((out (assoc-ref outputs "out"))
1242 (info (string-append out "/share/info")))
1243 (install-file "docs/_build/texinfo/agel.info" info)
1244 #t))))))
1245 (native-inputs
1246 `(("python-sphinx" ,python-sphinx)
1247 ("texinfo" ,texinfo)))
1248 (propagated-inputs
1249 `(("dash" ,emacs-dash)
1250 ("s" ,emacs-s)
1251 ;; We need to use 'ag' as the executable on remote systems.
1252 ("the-silver-searcher" ,the-silver-searcher)))
1253 (home-page "https://github.com/Wilfred/ag.el")
1254 (synopsis "Front-end for ag (the-silver-searcher) for Emacs")
1255 (description "This package provides the ability to use the silver
1256 searcher, a code searching tool, sometimes abbreviated to @code{ag}. Features
1257 include version control system awareness, use of Perl compatible regular
1258 expressions, editing the search results directly and searching file names
1259 rather than the contents of files.")
1260 (license license:gpl3+)))
1261
1262 (define-public emacs-async
1263 (package
1264 (name "emacs-async")
1265 (home-page "https://github.com/jwiegley/emacs-async")
1266 (version "1.9.3")
1267 (source (origin
1268 (method git-fetch)
1269 (uri (git-reference
1270 (url home-page)
1271 (commit (string-append "v" version))))
1272 (file-name (git-file-name name version))
1273 (sha256
1274 (base32
1275 "1zsnb6dy8p6y68xgidv3dfxaga4biramfw8fq7wac0sc50vc98vq"))))
1276 (build-system emacs-build-system)
1277 (synopsis "Asynchronous processing in Emacs")
1278 (description
1279 "This package provides the ability to call asynchronous functions and
1280 processes. For example, it can be used to run dired commands (for copying,
1281 moving, etc.) asynchronously using @code{dired-async-mode}. Also it is used
1282 as a library for other Emacs packages.")
1283 (license license:gpl3+)))
1284
1285 (define-public emacs-auctex
1286 (package
1287 (name "emacs-auctex")
1288 (version "12.1.0")
1289 (source
1290 (origin
1291 (method url-fetch)
1292 (uri (string-append
1293 "https://elpa.gnu.org/packages/auctex-"
1294 version
1295 ".tar"))
1296 (sha256
1297 (base32
1298 "0iy5x61xqkxaph2hq64sg50l1c6yp6qhzppwadayxkdz00b46sas"))))
1299 (build-system emacs-build-system)
1300 ;; We use 'emacs' because AUCTeX requires dbus at compile time
1301 ;; ('emacs-minimal' does not provide dbus).
1302 (arguments
1303 `(#:emacs ,emacs
1304 #:include '("\\.el$" "^images/" "^latex/" "\\.info$")
1305 #:exclude '("^tests/" "^latex/README")))
1306 (native-inputs
1307 `(("perl" ,perl)))
1308 (home-page "https://www.gnu.org/software/auctex/")
1309 (synopsis "Integrated environment for TeX")
1310 (description
1311 "AUCTeX is a comprehensive customizable integrated environment for
1312 writing input files for TeX, LaTeX, ConTeXt, Texinfo, and docTeX using Emacs
1313 or XEmacs.")
1314 (license license:gpl3+)))
1315
1316 (define-public emacs-autothemer
1317 (package
1318 (name "emacs-autothemer")
1319 (version "0.2.2")
1320 (source
1321 (origin
1322 (method url-fetch)
1323 (uri (string-append "https://github.com/sebastiansturm/autothemer/archive/"
1324 version ".tar.gz"))
1325 (file-name (string-append name "-" version ".tar.gz"))
1326 (sha256
1327 (base32
1328 "0rd28r9wfrbll212am4ih9hrvypx785aff76va2cbfxdwm9kixsa"))))
1329 (build-system emacs-build-system)
1330 (propagated-inputs
1331 `(("emacs-dash" ,emacs-dash)))
1332 (home-page "https://github.com/sebastiansturm/autothemer")
1333 (synopsis "Conveniently create Emacs themes")
1334 (description
1335 "Autothemer provides a thin layer on top of @code{deftheme} and
1336 @code{custom-theme-set-faces} that creates a new custom color theme, based on
1337 a set of simplified face specifications and a user-supplied color palette")
1338 (license license:gpl3+)))
1339
1340 (define-public emacs-howm
1341 (package
1342 (name "emacs-howm")
1343 (version "1.4.4")
1344 (source
1345 (origin
1346 (method url-fetch)
1347 (uri (string-append "http://howm.sourceforge.jp/a/howm-"
1348 version ".tar.gz"))
1349 (sha256
1350 (base32
1351 "0ddm91l6z58j7x59fa966j6q1rg4cinyza4r8ibg80hprn5h31qk"))))
1352 (build-system gnu-build-system)
1353 (native-inputs
1354 `(("emacs" ,emacs-minimal)))
1355 (arguments
1356 `(#:configure-flags
1357 (list (string-append "--with-howmdir=" %output
1358 "/share/emacs/site-lisp/guix.d/howm-" ,version))
1359 #:modules ((guix build gnu-build-system)
1360 ((guix build emacs-build-system) #:prefix emacs:)
1361 (guix build utils))
1362 #:imported-modules (,@%gnu-build-system-modules
1363 (guix build emacs-build-system)
1364 (guix build emacs-utils))
1365 #:phases
1366 (modify-phases %standard-phases
1367 (add-after 'install 'make-autoloads
1368 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
1369 (home-page "http://howm.osdn.jp/")
1370 (synopsis "Note-taking tool for Emacs")
1371 (description "Howm is a note-taking tool for Emacs. Like
1372 code@{emacs-wiki.el}, it facilitates using hyperlinks and doing full-text
1373 searches. Unlike code@{emacs-wiki.el}, it can be combined with any format.")
1374 (license license:gpl1+)))
1375
1376 (define-public emacs-calfw
1377 (package
1378 (name "emacs-calfw")
1379 (version "1.6")
1380 (source
1381 (origin
1382 (method url-fetch)
1383 (uri (string-append
1384 "https://github.com/kiwanami/emacs-calfw/archive/v"
1385 version ".tar.gz"))
1386 (file-name (string-append name "-" version ".tar.gz"))
1387 (sha256
1388 (base32
1389 "1zr91xr0f1xfcv78yxka8vs5ximmq2ixmqf2pkb57kwwnxlypq4i"))))
1390 (build-system emacs-build-system)
1391 (propagated-inputs
1392 `(("emacs-howm" ,emacs-howm)))
1393 (home-page "https://github.com/kiwanami/emacs-calfw/")
1394 (synopsis "Calendar framework for Emacs")
1395 (description
1396 "This package displays a calendar view with various schedule data in the
1397 Emacs buffer.")
1398 (license license:gpl3+)))
1399
1400 (define-public emacs-direnv
1401 (package
1402 (name "emacs-direnv")
1403 (version "1.2.0")
1404 (source
1405 (origin
1406 (method url-fetch)
1407 (uri (string-append
1408 "https://github.com/wbolster/emacs-direnv/archive/"
1409 version ".tar.gz"))
1410 (file-name (string-append name "-" version ".tar.gz"))
1411 (sha256
1412 (base32
1413 "0m9nxawklhiiysyibzzhh2zkxgq1fskqvaqb06f7r8dnhabfy9fr"))))
1414 (build-system emacs-build-system)
1415 (propagated-inputs
1416 `(("dash" ,emacs-dash)
1417 ("with-editor" ,emacs-with-editor)))
1418 (home-page "https://github.com/wbolster/emacs-direnv")
1419 (synopsis "Direnv integration for Emacs")
1420 (description
1421 "This package provides support for invoking direnv to get the environment
1422 for the current file and updating the environment within Emacs to match.
1423
1424 Direnv can be invoked manually, and a global minor mode is included that will
1425 update the environment when the active buffer changes.
1426
1427 Using emacs-direnv means that programs started from Emacs will use the
1428 environment set through Direnv.")
1429 (license license:gpl3+)))
1430
1431 (define-public emacs-ggtags
1432 (package
1433 (name "emacs-ggtags")
1434 (version "0.8.13")
1435 (source
1436 (origin
1437 (method url-fetch)
1438 (uri (string-append "http://elpa.gnu.org/packages/ggtags-"
1439 version ".el"))
1440 (sha256
1441 (base32
1442 "1qa7lcrcmf76sf6dy8sxbg4adq7rg59fm0n5848w3qxgsr0h45fg"))))
1443 (build-system emacs-build-system)
1444 (home-page "https://github.com/leoliu/ggtags")
1445 (synopsis "Frontend to the GNU Global source code tagging system")
1446 (description "@code{ggtags} provides a frontend to the GNU Global source
1447 code tagging system.
1448
1449 Features:
1450
1451 @itemize
1452 @item Build on @code{compile.el} for asynchronicity and its large feature-set.
1453 @item Automatically update Global's tag files when needed with tuning for
1454 large source trees.
1455 @item Intuitive navigation among multiple matches with mode-line display of
1456 current match, total matches and exit status.
1457 @item Read tag with completion.
1458 @item Show definition at point.
1459 @item Jump to #include files.
1460 @item Support search history and saving a search to register/bookmark.
1461 @item Query replace.
1462 @item Manage Global's environment variables on a per-project basis.
1463 @item Highlight (definition) tag at point.
1464 @item Abbreviated display of file names.
1465 @item Support all Global search backends: @code{grep}, @code{idutils}, etc.
1466 @item Support exuberant ctags @url{http://ctags.sourceforge.net/} and
1467 @code{pygments} backend.
1468 @item Support all Global's output formats: @code{grep}, @code{ctags-x},
1469 @code{cscope} etc.
1470 @item Support projects on remote hosts (e.g. via @code{tramp}).
1471 @item Support eldoc.
1472 @item Search @code{GTAGSLIBPATH} for references and symbols.
1473 @end itemize\n")
1474 (license license:gpl3+)))
1475
1476 (define-public emacs-go-mode
1477 (package
1478 (name "emacs-go-mode")
1479 (version "1.5.0")
1480 (source (origin
1481 (method git-fetch)
1482 (uri (git-reference
1483 (url "https://github.com/dominikh/go-mode.el.git")
1484 (commit (string-append "v" version))))
1485 (file-name (git-file-name name version))
1486 (sha256
1487 (base32
1488 "1nd2h50yb0493wvf1h7fzplq45rmqn2w7kxpgnlxzhkvq99v8vzf"))))
1489 (build-system emacs-build-system)
1490 (arguments
1491 `(#:phases
1492 (modify-phases %standard-phases
1493 (add-after 'unpack 'make-writable
1494 (lambda _
1495 (for-each make-file-writable (find-files "." "\\.el$"))
1496 #t)))))
1497 (home-page "https://github.com/dominikh/go-mode.el")
1498 (synopsis "Go mode for Emacs")
1499 (description
1500 "This package provides go-mode, an Emacs mode for working with software
1501 written in the Go programming language.")
1502 (license license:bsd-3)))
1503
1504 (define-public emacs-google-maps
1505 (package
1506 (name "emacs-google-maps")
1507 (version "1.0.0")
1508 (source (origin
1509 (method url-fetch)
1510 (uri (string-append "https://github.com/jd/google-maps.el/"
1511 "archive/" version ".tar.gz"))
1512 (file-name (string-append name "-" version ".tar.gz"))
1513 (sha256
1514 (base32
1515 "014bxapm4d8vjxbzrfjdpsavxyfx981mlcb10aq5rmigr6il8ybs"))))
1516 (build-system emacs-build-system)
1517 (home-page "https://github.com/jd/google-maps.el")
1518 (synopsis "Access Google Maps from Emacs")
1519 (description "The @code{google-maps} package allows to display Google
1520 Maps directly inside Emacs.")
1521 (license license:gpl3+)))
1522
1523 (define-public emacs-graphviz-dot-mode
1524 (let ((commit "c456a2b65c734089e6c44e87209a5a432a741b1a")
1525 (revision "1"))
1526 (package
1527 (name "emacs-graphviz-dot-mode")
1528 (version (string-append "0.3.11-" revision "."
1529 (string-take commit 7)))
1530 (source (origin
1531 (method git-fetch)
1532 (uri (git-reference
1533 (url "https://github.com/ppareit/graphviz-dot-mode.git")
1534 (commit commit)))
1535 (file-name (string-append name "-" version "-checkout"))
1536 (sha256
1537 (base32
1538 "0j1r2rspaakw37b0mx7pwpvdsvixq9sw3xjbww5piihzpdxz58z1"))))
1539 (build-system emacs-build-system)
1540 (arguments
1541 `(#:phases
1542 (modify-phases %standard-phases
1543 (add-before 'install 'make-info
1544 (lambda* (#:key inputs #:allow-other-keys)
1545 (with-directory-excursion "texinfo"
1546 (substitute* "Makefile"
1547 (("\\/usr\\/bin\\/gzip")
1548 (string-append (assoc-ref inputs "gzip") "/bin/gzip")))
1549 (invoke "make"
1550 "clean"
1551 "info"
1552 (string-append "TEXINFODIR="
1553 (assoc-ref inputs "texinfo")
1554 "/bin")))))
1555 (add-after 'install 'install-info
1556 (lambda* (#:key outputs #:allow-other-keys)
1557 (let* ((out (assoc-ref outputs "out"))
1558 (info (string-append out "/share/info")))
1559 (install-file "texinfo/graphviz-dot-mode.info.gz" info)
1560 #t))))))
1561 (native-inputs
1562 `(("texinfo" ,texinfo)
1563 ("gzip" ,gzip)))
1564 (home-page "http://ppareit.github.com/graphviz-dot-mode")
1565 (synopsis "Major mode for editing Graphviz Dot files")
1566 (description
1567 "This Emacs packages helps you to create @file{.dot} or @file{.gv}
1568 files using the dot syntax, and use Graphviz to convert these files to
1569 diagrams.")
1570 (license license:gpl2+))))
1571
1572 (define-public emacs-mmm-mode
1573 (package
1574 (name "emacs-mmm-mode")
1575 (version "0.5.5")
1576 (source
1577 (origin
1578 (method url-fetch)
1579 (uri (string-append
1580 "https://github.com/purcell/mmm-mode/archive/"
1581 version ".tar.gz"))
1582 (file-name (string-append name "-" version ".tar.gz"))
1583 (sha256
1584 (base32
1585 "0c5ing3hcr74k78hqhrfwiv6m3n8hqfrw89j2x34vf60f4iyqzqc"))))
1586 (build-system gnu-build-system)
1587 (arguments
1588 '(#:phases
1589 (modify-phases %standard-phases
1590 (add-after 'unpack 'autogen
1591 (lambda _
1592 (invoke "sh" "autogen.sh"))))))
1593 (native-inputs
1594 `(("autoconf" ,autoconf)
1595 ("automake" ,automake)
1596 ("emacs" ,emacs-minimal)
1597 ("texinfo" ,texinfo)))
1598 (home-page "https://github.com/purcell/mmm-mode")
1599 (synopsis "Allow multiple major modes in an Emacs buffer")
1600 (description
1601 "MMM Mode is a minor mode that allows multiple major modes to coexist in a
1602 single buffer.")
1603 (license license:gpl3+)))
1604
1605 (define-public emacs-tablist
1606 (package
1607 (name "emacs-tablist")
1608 (version "0.70")
1609 (source (origin
1610 (method url-fetch)
1611 (uri (string-append
1612 "https://github.com/politza/tablist/archive/v"
1613 version ".tar.gz"))
1614 (file-name (string-append name "-" version ".tar.gz"))
1615 (sha256
1616 (base32
1617 "177d6s7ym1mwz1nhnl09r14z3n093g9a2szm97xsaig0c204xz9c"))))
1618 (build-system emacs-build-system)
1619 (home-page "https://github.com/politza/tablist")
1620 (synopsis "Extension for @code{tabulated-list-mode}")
1621 (description "Tablist is the Emacs package that provides several
1622 additional features to @code{tabulated-list-mode}: it adds marks,
1623 filters, new key bindings and faces. It can be enabled by
1624 @code{tablist-mode} or @code{tablist-minor-mode} commands.")
1625 (license license:gpl3+)))
1626
1627 (define-public emacs-pdf-tools
1628 (package
1629 (name "emacs-pdf-tools")
1630 (version "0.80")
1631 (home-page "https://github.com/politza/pdf-tools")
1632 (source (origin
1633 (method git-fetch)
1634 (uri (git-reference (url home-page)
1635 (commit (string-append "v" version))))
1636 (file-name (git-file-name name version))
1637 (sha256
1638 (base32
1639 "1i4647vax5na73basc5dz4lh9kprir00fh8ps4i0l1y3ippnjs2s"))
1640 (patches (search-patches "emacs-pdf-tools-poppler.patch"))))
1641 (build-system gnu-build-system)
1642 (arguments
1643 `(#:tests? #f ; there are no tests
1644 #:modules ((guix build gnu-build-system)
1645 ((guix build emacs-build-system) #:prefix emacs:)
1646 (guix build utils)
1647 (guix build emacs-utils))
1648 #:imported-modules (,@%gnu-build-system-modules
1649 (guix build emacs-build-system)
1650 (guix build emacs-utils))
1651 #:phases
1652 (modify-phases %standard-phases
1653 ;; Build server side using 'gnu-build-system'.
1654 (add-after 'unpack 'enter-server-dir
1655 (lambda _ (chdir "server") #t))
1656 (add-after 'enter-server-dir 'autogen
1657 (lambda _
1658 (invoke "bash" "autogen.sh")))
1659
1660 ;; Build emacs side using 'emacs-build-system'.
1661 (add-after 'compress-documentation 'enter-lisp-dir
1662 (lambda _ (chdir "../lisp") #t))
1663 (add-after 'enter-lisp-dir 'emacs-patch-variables
1664 (lambda* (#:key outputs #:allow-other-keys)
1665 (for-each make-file-writable (find-files "."))
1666
1667 ;; Set path to epdfinfo program.
1668 (emacs-substitute-variables "pdf-info.el"
1669 ("pdf-info-epdfinfo-program"
1670 (string-append (assoc-ref outputs "out")
1671 "/bin/epdfinfo")))
1672 ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto
1673 ;; upgrading" that pdf-tools tries to perform.
1674 (emacs-substitute-variables "pdf-tools.el"
1675 ("pdf-tools-handle-upgrades" '()))))
1676 (add-after 'emacs-patch-variables 'emacs-set-emacs-load-path
1677 (assoc-ref emacs:%standard-phases 'set-emacs-load-path))
1678 (add-after 'emacs-set-emacs-load-path 'emacs-install
1679 (assoc-ref emacs:%standard-phases 'install))
1680 (add-after 'emacs-install 'emacs-build
1681 (assoc-ref emacs:%standard-phases 'build))
1682 (add-after 'emacs-install 'emacs-make-autoloads
1683 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
1684 (native-inputs `(("autoconf" ,autoconf)
1685 ("automake" ,automake)
1686 ("pkg-config" ,pkg-config)
1687 ("emacs" ,emacs-minimal)))
1688 (inputs `(("poppler" ,poppler)
1689 ("cairo" ,cairo)
1690 ("glib" ,glib)
1691 ("libpng" ,libpng)
1692 ("zlib" ,zlib)))
1693 (propagated-inputs `(("tablist" ,emacs-tablist)))
1694 (synopsis "Emacs support library for PDF files")
1695 (description
1696 "PDF Tools is, among other things, a replacement of DocView for PDF
1697 files. The key difference is that pages are not pre-rendered by
1698 e.g. ghostscript and stored in the file-system, but rather created on-demand
1699 and stored in memory.")
1700 (license license:gpl3+)))
1701
1702 (define-public emacs-dash
1703 (package
1704 (name "emacs-dash")
1705 (version "2.14.1")
1706 (source (origin
1707 (method git-fetch)
1708 (uri (git-reference
1709 (url "https://github.com/magnars/dash.el.git")
1710 (commit version)))
1711 (file-name (git-file-name name version))
1712 (sha256
1713 (base32
1714 "1kzijmjxjxgr7p8clphzvmm47vczckbs8mza9an77c25bn627ywl"))))
1715 (build-system emacs-build-system)
1716 (arguments
1717 `(#:tests? #t
1718 #:test-command '("./run-tests.sh")))
1719 (home-page "https://github.com/magnars/dash.el")
1720 (synopsis "Modern list library for Emacs")
1721 (description "This package provides a modern list API library for Emacs.")
1722 (license license:gpl3+)))
1723
1724 (define-public emacs-bui
1725 (package
1726 (name "emacs-bui")
1727 (version "1.2.1")
1728 (source (origin
1729 (method git-fetch)
1730 (uri (git-reference
1731 (url "https://notabug.org/alezost/emacs-bui.git")
1732 (commit (string-append "v" version))))
1733 (file-name (string-append name "-" version "-checkout"))
1734 (sha256
1735 (base32
1736 "0sszdl4kvqbihdh8d7mybpp0d8yw2p3gyiipjcxz9xhvvmw3ww4x"))))
1737 (build-system emacs-build-system)
1738 (propagated-inputs
1739 `(("dash" ,emacs-dash)))
1740 (home-page "https://notabug.org/alezost/emacs-bui")
1741 (synopsis "Buffer interface library for Emacs")
1742 (description
1743 "BUI (Buffer User Interface) is a library for making @code{list} and
1744 @code{info} interfaces to display an arbitrary data of the same
1745 type, for example: packages, buffers, files, etc.")
1746 (license license:gpl3+)))
1747
1748 (define-public emacs-guix
1749 (package
1750 (name "emacs-guix")
1751 (version "0.5.1")
1752 (source (origin
1753 (method url-fetch)
1754 (uri (string-append "https://emacs-guix.gitlab.io/website/"
1755 "releases/emacs-guix-" version ".tar.gz"))
1756 (sha256
1757 (base32
1758 "1gwihi08pz52zbv11lhwcdzsbmcbqvjf8j0ic56543v7nlmywkxh"))))
1759 (build-system gnu-build-system)
1760 (arguments
1761 `(#:configure-flags
1762 (let ((guix (assoc-ref %build-inputs "guix"))
1763 (gcrypt (assoc-ref %build-inputs "guile-gcrypt"))
1764 (geiser (assoc-ref %build-inputs "geiser"))
1765 (dash (assoc-ref %build-inputs "dash"))
1766 (bui (assoc-ref %build-inputs "bui"))
1767 (magit-popup (assoc-ref %build-inputs "magit-popup"))
1768 (edit-indirect (assoc-ref %build-inputs "edit-indirect"))
1769 (site-lisp "/share/emacs/site-lisp")
1770 (site-scm "/share/guile/site")
1771 (site-go "/lib/guile")
1772 (guile-dir (lambda (dir)
1773 (car (find-files dir
1774 (lambda (file stat)
1775 (string-prefix?
1776 "2." (basename file)))
1777 #:directories? #t)))))
1778 (list (string-append "--with-guix-site-dir="
1779 (guile-dir (string-append guix site-scm)))
1780 (string-append "--with-guix-site-ccache-dir="
1781 (guile-dir (string-append guix site-go))
1782 "/site-ccache")
1783 (string-append "--with-guile-gcrypt-site-dir="
1784 (guile-dir (string-append gcrypt site-scm)))
1785 (string-append "--with-guile-gcrypt-site-ccache-dir="
1786 (guile-dir (string-append gcrypt site-go))
1787 "/site-ccache")
1788 (string-append "--with-geiser-lispdir=" geiser site-lisp)
1789 (string-append "--with-dash-lispdir="
1790 dash site-lisp "/guix.d/dash-"
1791 ,(package-version emacs-dash))
1792 (string-append "--with-bui-lispdir="
1793 bui site-lisp "/guix.d/bui-"
1794 ,(package-version emacs-bui))
1795 (string-append "--with-editindirect-lispdir="
1796 edit-indirect site-lisp "/guix.d/edit-indirect-"
1797 ,(package-version emacs-edit-indirect))
1798 (string-append "--with-popup-lispdir="
1799 magit-popup site-lisp "/guix.d/magit-popup-"
1800 ,(package-version emacs-magit-popup))))))
1801 (native-inputs
1802 `(("pkg-config" ,pkg-config)
1803 ("emacs" ,emacs-minimal)))
1804 (inputs
1805 `(("guile" ,guile-2.2)
1806 ("guix" ,guix)))
1807 (propagated-inputs
1808 `(("geiser" ,emacs-geiser)
1809 ("guile-gcrypt" ,guile-gcrypt)
1810 ("dash" ,emacs-dash)
1811 ("bui" ,emacs-bui)
1812 ("edit-indirect" ,emacs-edit-indirect)
1813 ("magit-popup" ,emacs-magit-popup)))
1814 (home-page "https://emacs-guix.gitlab.io/website/")
1815 (synopsis "Emacs interface for GNU Guix")
1816 (description
1817 "Emacs-Guix provides a visual interface, tools and features for the GNU
1818 Guix package manager. Particularly, it allows you to do various package
1819 management tasks from Emacs. To begin with, run @code{M-x guix-about} or
1820 @code{M-x guix-help} command.")
1821 (license license:gpl3+)))
1822
1823 (define-public emacs-build-farm
1824 (package
1825 (name "emacs-build-farm")
1826 (version "0.2.2")
1827 (source (origin
1828 (method git-fetch)
1829 (uri (git-reference
1830 (url "https://notabug.org/alezost/emacs-build-farm.git")
1831 (commit (string-append "v" version))))
1832 (file-name (string-append name "-" version "-checkout"))
1833 (sha256
1834 (base32
1835 "0i0bwbav5861j2y15j9nd5m9rdqg9q97zgcbld8pivr9nyxy63lz"))))
1836 (build-system emacs-build-system)
1837 (propagated-inputs
1838 `(("bui" ,emacs-bui)
1839 ("magit-popup" ,emacs-magit-popup)))
1840 (home-page "https://notabug.org/alezost/emacs-build-farm")
1841 (synopsis "Emacs interface for Hydra and Cuirass build farms")
1842 (description
1843 "This Emacs package provides an interface for Hydra and
1844 Cuirass (build farms used by Nix and Guix). It allows you to look at
1845 various data related to the build farm projects, jobsets, builds and
1846 evaluations. The entry point is @code{M-x build-farm} command.")
1847 (license license:gpl3+)))
1848
1849 (define-public emacs-d-mode
1850 (package
1851 (name "emacs-d-mode")
1852 (version "2.0.9")
1853 (source (origin
1854 (method url-fetch)
1855 (uri (string-append
1856 "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode/"
1857 "archive/" version ".tar.gz"))
1858 (file-name (string-append name "-" version ".tar.gz"))
1859 (sha256
1860 (base32
1861 "127aa77ix3p7w4g339bx026df9y649dahlr3v359z0hs40zjz3kd"))))
1862 (build-system emacs-build-system)
1863 (propagated-inputs
1864 `(("emacs-undercover" ,emacs-undercover)))
1865 (home-page "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
1866 (synopsis "Emacs major mode for editing D code")
1867 (description "This package provides an Emacs major mode for highlighting
1868 code written in the D programming language. This mode is currently known to
1869 work with Emacs 24 and 25.")
1870 (license license:gpl2+)))
1871
1872 (define-public emacs-keyfreq
1873 (package
1874 (name "emacs-keyfreq")
1875 (version "20160516.716")
1876 (source
1877 (origin
1878 (method url-fetch)
1879 (uri (string-append "http://melpa.org/packages/keyfreq-"
1880 version ".el"))
1881 (sha256
1882 (base32
1883 "008hd7d06qskc3mx0bbdgpgy2pwxr8185fzlyqf9qjg49y74p6g8"))))
1884 (build-system emacs-build-system)
1885 (home-page "https://github.com/dacap/keyfreq")
1886 (synopsis "Track Emacs command frequencies")
1887 (description "@code{emacs-keyfeq} tracks and shows how many times you used
1888 a command.")
1889 (license license:gpl3+)))
1890
1891 (define-public emacs-olivetti
1892 (package
1893 (name "emacs-olivetti")
1894 (version "1.5.7")
1895 (source (origin
1896 (method url-fetch)
1897 (uri (string-append
1898 "https://stable.melpa.org/packages/olivetti-"
1899 version ".el"))
1900 (sha256
1901 (base32
1902 "1yj2ylg46q0pw1xzlv2b0fv9x8p56x25284s9v2smwjr4vf0nwcj"))))
1903 (build-system emacs-build-system)
1904 (home-page "https://github.com/rnkn/olivetti")
1905 (synopsis "Emacs minor mode for a nice writing environment")
1906 (description "This package provides an Emacs minor mode that puts writing
1907 in the center.")
1908 (license license:gpl3+)))
1909
1910 (define-public emacs-undo-tree
1911 (package
1912 (name "emacs-undo-tree")
1913 (version "0.6.6")
1914 (source (origin
1915 (method git-fetch)
1916 (uri (git-reference
1917 (url "http://dr-qubit.org/git/undo-tree.git")
1918 (commit (string-append "release/" version))))
1919 (file-name (string-append name "-" version "-checkout"))
1920 (sha256
1921 (base32
1922 "1hnh2mnmw179gr094r561w6cw1haid0lpvpqvkc24wpj82vphzpa"))))
1923 (build-system emacs-build-system)
1924 (home-page "http://www.dr-qubit.org/emacs.php")
1925 (synopsis "Treat undo history as a tree")
1926 (description "Tree-like interface to Emacs undo system, providing
1927 graphical tree presentation of all previous states of buffer that
1928 allows easily move between them.")
1929 (license license:gpl3+)))
1930
1931 (define-public emacs-s
1932 (package
1933 (name "emacs-s")
1934 (version "1.12.0")
1935 (source (origin
1936 (method url-fetch)
1937 (uri (string-append
1938 "https://github.com/magnars/s.el/archive/"
1939 version ".tar.gz"))
1940 (file-name (string-append name "-" version ".tar.gz"))
1941 (sha256
1942 (base32
1943 "0xbl75863pcm806zg0x1lw7qznzjq2c8320k8js7apyag8q4srvh"))))
1944 (build-system emacs-build-system)
1945 (arguments
1946 `(#:tests? #t
1947 #:emacs ,emacs ; FIXME: tests fail with emacs-minimal
1948 #:test-command '("./run-tests.sh")))
1949 (home-page "https://github.com/magnars/s.el")
1950 (synopsis "Emacs string manipulation library")
1951 (description "This package provides an Emacs library for manipulating
1952 strings.")
1953 (license license:gpl3+)))
1954
1955 (define-public emacs-symon
1956 (package
1957 (name "emacs-symon")
1958 (version "20160630")
1959 (source
1960 (origin
1961 (method url-fetch)
1962 (uri (string-append "https://github.com/zk-phi/symon/archive/"
1963 version ".tar.gz"))
1964 (file-name (string-append name "-" version ".tar.gz"))
1965 (sha256
1966 (base32
1967 "0h4jcgdnq98wc9rj72nwyazq8498yg55jfljiij5qwbn1xf1g5zz"))))
1968 (build-system emacs-build-system)
1969 (home-page "https://github.com/zk-phi/symon")
1970 (synopsis "Tiny graphical system monitor")
1971 (description
1972 "Tiny graphical system monitor for the Emacs minibuffer when idle.")
1973 (license license:gpl2+)))
1974
1975 (define-public emacs-sx
1976 (let ((version "20180212")
1977 (revision "1")
1978 (commit "833435fbf90d1c9e927d165b155f3b1ef39271de"))
1979 (package
1980 (name "emacs-sx")
1981 (version (git-version version revision commit))
1982 (source
1983 (origin
1984 (method git-fetch)
1985 (uri (git-reference
1986 (url "https://github.com/vermiculus/sx.el")
1987 (commit commit)))
1988 (file-name (git-file-name name version))
1989 (sha256
1990 (base32
1991 "1369xaxq1vy3d9yh862ddnhddikdpg2d0wv1ly00pnvdp9v4cqgd"))))
1992 (build-system emacs-build-system)
1993 (propagated-inputs
1994 `(("emacs-markdown-mode" ,emacs-markdown-mode)))
1995 (home-page "https://github.com/vermiculus/sx.el")
1996 (synopsis "Emacs StackExchange client")
1997 (description
1998 "Emacs StackExchange client. Ask and answer questions on
1999 Stack Overflow, Super User, and other StackExchange sites.")
2000 (license license:gpl3+))))
2001
2002 (define-public emacs-f
2003 (package
2004 (name "emacs-f")
2005 (version "0.20.0")
2006 (source (origin
2007 (method git-fetch)
2008 (uri (git-reference
2009 (url "https://github.com/rejeep/f.el.git")
2010 (commit (string-append "v" version))))
2011 (file-name (git-file-name name version))
2012 (sha256
2013 (base32
2014 "1a47xk3yp1rp17fqg7ldl3d3fb888h0fz3sysqfdz1bfdgs8a9bk"))))
2015 (build-system emacs-build-system)
2016 (propagated-inputs
2017 `(("emacs-s" ,emacs-s)
2018 ("emacs-dash" ,emacs-dash)))
2019 (home-page "https://github.com/rejeep/f.el")
2020 (synopsis "Emacs API for working with files and directories")
2021 (description "This package provides an Emacs library for working with
2022 files and directories.")
2023 (license license:gpl3+)))
2024
2025 (define-public emacs-git-gutter
2026 (package
2027 (name "emacs-git-gutter")
2028 (version "0.90")
2029 (source (origin
2030 (method url-fetch)
2031 (uri (string-append
2032 "https://github.com/syohex/" name "/archive/"
2033 version ".tar.gz"))
2034 (file-name (string-append name "-" version ".tar.gz"))
2035 (sha256
2036 (base32
2037 "1nmhvhpq1l56mj2yq3ag23rw3x4xgnsy8szp30s26l0yjnkhc4qg"))))
2038 (build-system emacs-build-system)
2039 (home-page "https://github.com/syohex/emacs-git-gutter")
2040 (synopsis "See and manage hunks of text in a version control system")
2041 (description
2042 "This package is an Emacs minor mode for displaying and interacting with
2043 hunks of text managed in a version control system. Added modified and deleted
2044 areas can be indicated with symbols on the edge of the buffer, and commands
2045 can be used to move between and perform actions on these hunks.
2046
2047 Git, Mercurial, Subversion and Bazaar are supported, and many parts of the
2048 display and behaviour is easily customisable.")
2049 (license license:gpl3+)))
2050
2051 (define-public emacs-git-timemachine
2052 (package
2053 (name "emacs-git-timemachine")
2054 (version "4.5")
2055 (source
2056 (origin
2057 (method url-fetch)
2058 (uri (string-append "https://gitlab.com/pidu/git-timemachine"
2059 "/-/archive/" version
2060 "/git-timemachine-" version ".tar.gz"))
2061 (file-name (string-append name "-" version ".tar.gz"))
2062 (sha256
2063 (base32
2064 "0ii40qcincasg7s1yrvqcxkqcqzb4sfs7gcxscn6m4x4ans165zy"))))
2065 (build-system emacs-build-system)
2066 (home-page "https://gitlab.com/pidu/git-timemachine")
2067 (synopsis "Step through historic versions of Git-controlled files")
2068 (description "This package enables you to step through historic versions
2069 of files under Git version control from within Emacs.")
2070 (license license:gpl3+)))
2071
2072 (define-public emacs-minitest
2073 (let ((commit "1aadb7865c1dc69c201cecee275751ecec33a182")
2074 (revision "1"))
2075 (package
2076 (name "emacs-minitest")
2077 (version (git-version "0.8.0" revision commit))
2078 (source (origin
2079 (method git-fetch)
2080 (uri (git-reference
2081 (url "https://github.com/arthurnn/minitest-emacs")
2082 (commit commit)))
2083 (file-name (git-file-name name commit))
2084 (sha256
2085 (base32
2086 "1l18zqpdzbnqj2qawq8hj7z7pl8hr8z9d8ihy8jaiqma915hmhj1"))))
2087 (build-system emacs-build-system)
2088 (arguments
2089 '(#:include (cons "^snippets\\/minitest-mode\\/" %default-include)
2090 #:exclude (delete "^[^/]*tests?\\.el$" %default-exclude)))
2091 (propagated-inputs
2092 `(("emacs-dash" ,emacs-dash)
2093 ("emacs-f" ,emacs-f)))
2094 (home-page "https://github.com/arthurnn/minitest-emacs")
2095 (synopsis "Emacs minitest mode")
2096 (description
2097 "The minitest mode provides commands to run the tests for the current
2098 file or line, as well as rerunning the previous tests, or all the tests for a
2099 project.
2100
2101 This package also includes relevant snippets for yasnippet.")
2102 (license license:expat))))
2103
2104 (define-public emacs-el-mock
2105 (package
2106 (name "emacs-el-mock")
2107 (version "1.25.1")
2108 (source
2109 (origin
2110 (method url-fetch)
2111 (uri (string-append "https://github.com/rejeep/el-mock.el/"
2112 "archive/v" version ".tar.gz"))
2113 (file-name (string-append name "-" version ".tar.gz"))
2114 (sha256
2115 (base32
2116 "16xw94n58xxn3zvgyj72bmzs0k5lkvswjmzs79ws9n7rzdivb38b"))))
2117 (build-system emacs-build-system)
2118 (home-page "https://github.com/rejeep/el-mock.el")
2119 (synopsis "Tiny mock and stub framework in Emacs Lisp")
2120 (description
2121 "Emacs Lisp Mock is a library for mocking and stubbing using readable
2122 syntax. Most commonly Emacs Lisp Mock is used in conjunction with Emacs Lisp
2123 Expectations, but it can be used in other contexts.")
2124 (license license:gpl3+)))
2125
2126 (define-public emacs-espuds
2127 (package
2128 (name "emacs-espuds")
2129 (version "0.3.3")
2130 (source
2131 (origin
2132 (method url-fetch)
2133 (uri (string-append "https://github.com/ecukes/espuds/"
2134 "archive/v" version ".tar.gz"))
2135 (file-name (string-append name "-" version ".tar.gz"))
2136 (sha256
2137 (base32
2138 "0xv551376pbmh735a3zjwc9z4qdx6ngj1vpq3xqjpn0a1rwjyn4k"))))
2139 (build-system emacs-build-system)
2140 (propagated-inputs
2141 `(("emacs-s" ,emacs-s)
2142 ("emacs-dash" ,emacs-dash)
2143 ("emacs-f" ,emacs-f)))
2144 (home-page "https://github.com/ecukes/espuds")
2145 (synopsis "Common step definitions for Ecukes")
2146 (description "Espuds is a collection of the most commonly used step
2147 definitions for testing with the Ecukes framework.")
2148 (license license:gpl3+)))
2149
2150 (define-public emacs-spark
2151 (let ((version "20160503") ; no proper tag, use date of commit
2152 (commit "0bf148c3ede3b31d56fd75f347cdd0b0eae60025")
2153 (revision "1"))
2154 (package
2155 (name "emacs-spark")
2156 (version (git-version version revision commit))
2157 (source
2158 (origin
2159 (method git-fetch)
2160 (uri (git-reference
2161 (url "https://github.com/alvinfrancis/spark.git")
2162 (commit commit)))
2163 (file-name (git-file-name name version))
2164 (sha256
2165 (base32
2166 "1ykqr86j17mi95s08d9fp02d7ych1331b04dcqxzxnmpkhwngyj1"))))
2167 (build-system emacs-build-system)
2168 (home-page "https://github.com/alvinfrancis/spark")
2169 (synopsis "Sparkline generation library for Emacs Lisp")
2170 (description "@code{emacs-spark} is a sparkline generation library for
2171 Emacs Lisp. It generates a sparkline string given a list of numbers. It is a
2172 port of @code{cl-spark} to Emacs Lisp.")
2173 (license license:expat))))
2174
2175 (define-public emacs-es-mode
2176 (package
2177 (name "emacs-es-mode")
2178 (version "4.3.0")
2179 (source (origin
2180 (method url-fetch)
2181 (uri (string-append
2182 "https://github.com/dakrone/es-mode/archive/"
2183 version ".tar.gz"))
2184 (file-name (string-append name "-" version ".tar.gz"))
2185 (sha256
2186 (base32
2187 "0y86qdcb3g7fkcb4pzsjh3syzql6w3314hg1wqxq4a8bbk3y0cgr"))))
2188 (build-system emacs-build-system)
2189 (propagated-inputs
2190 ;; The version of org in Emacs 24.5 is not sufficient, and causes tables
2191 ;; to be rendered incorrectly
2192 `(("emacs-dash" ,emacs-dash)
2193 ("emacs-org" ,emacs-org)
2194 ("emacs-spark" ,emacs-spark)))
2195 (home-page "https://github.com/dakrone/es-mode")
2196 (synopsis "Major mode for editing Elasticsearch queries")
2197 (description "@code{es-mode} includes highlighting, completion and
2198 indentation support for Elasticsearch queries. Also supported are
2199 @code{es-mode} blocks in @code{org-mode}, for which the results of queries can
2200 be processed through @code{jq}, or in the case of aggregations, can be
2201 rendered in to a table. In addition, there is an @code{es-command-center}
2202 mode, which displays information about Elasticsearch clusters.")
2203 (license license:gpl3+)))
2204
2205 (define-public emacs-expand-region
2206 (package
2207 (name "emacs-expand-region")
2208 (version "0.11.0")
2209 (source
2210 (origin
2211 (method url-fetch)
2212 (uri (string-append "https://github.com/magnars/expand-region.el"
2213 "/archive/" version ".tar.gz"))
2214 (file-name (string-append name "-" version ".tar.gz"))
2215 (sha256
2216 (base32
2217 "08dy1f411sh9wwww53rjw80idcf3vpki6ba2arl4hl5jcw9651g0"))))
2218 (build-system emacs-build-system)
2219 (home-page "https://github.com/magnars/expand-region.el")
2220 (synopsis "Increase selected region by semantic units")
2221 (description
2222 "Expand region increases the selected region by semantic units. Just
2223 keep pressing the key until it selects what you want. There's also
2224 @code{er/contract-region} if you expand too far.")
2225 (license license:gpl3+)))
2226
2227 (define-public emacs-fill-column-indicator
2228 (package
2229 (name "emacs-fill-column-indicator")
2230 (version "1.89")
2231 (source
2232 (origin
2233 (method url-fetch)
2234 (uri (string-append "https://github.com/alpaker/Fill-Column-Indicator"
2235 "/archive/v" version ".tar.gz"))
2236 (file-name (string-append name "-" version ".tar.gz"))
2237 (sha256
2238 (base32
2239 "09ab01np14bdcsr38xf95kpnvxzqr46mdjmphg3pigwnx39a3jvg"))))
2240 (build-system emacs-build-system)
2241 (home-page "https://www.emacswiki.org/emacs/FillColumnIndicator")
2242 (synopsis "Graphically indicate the fill column")
2243 (description
2244 "Fill-column-indicator graphically indicates the location of the fill
2245 column by drawing a thin line down the length of the editing window.")
2246 (license license:gpl3+)))
2247
2248 (define-public emacs-grep-a-lot
2249 (package
2250 (name "emacs-grep-a-lot")
2251 (version "1.0.7")
2252 (source (origin
2253 (method git-fetch)
2254 (uri (git-reference
2255 (url "https://github.com/ZungBang/emacs-grep-a-lot.git")
2256 (commit "9f9f645b9e308a0d887b66864ff97d0fca1ba4ad")))
2257 (file-name (string-append name "-" version "-checkout"))
2258 (sha256
2259 (base32
2260 "1f8262mrlinzgnn4m49hbj1hm3c1mvzza24py4b37sasn49546lw"))))
2261 (build-system emacs-build-system)
2262 (home-page "https://github.com/ZungBang/emacs-grep-a-lot")
2263 (synopsis "Enables multiple grep buffers in Emacs")
2264 (description
2265 "This Emacs package allows managing multiple grep buffers.")
2266 (license license:gpl3+)))
2267
2268 (define-public emacs-inf-ruby
2269 (package
2270 (name "emacs-inf-ruby")
2271 (version "2.5.1")
2272 (source
2273 (origin
2274 (method url-fetch)
2275 (uri (string-append "https://github.com/nonsequitur/inf-ruby/"
2276 "archive/" version ".tar.gz"))
2277 (file-name (string-append name "-" version ".tar.gz"))
2278 (sha256
2279 (base32
2280 "0m7323k649ckxql1grsdnf71bjhys7l4qb8wbpphb1mr1q8i4066"))))
2281 (build-system emacs-build-system)
2282 (home-page "https://github.com/nonsequitur/inf-ruby")
2283 (synopsis "Provides a REPL buffer connected to a Ruby subprocess in Emacs")
2284 (description
2285 "@code{inf-ruby} provides a Read Eval Print Loop (REPL) buffer, allowing
2286 for easy interaction with a ruby subprocess. Features include support for
2287 detecting specific uses of Ruby, e.g. when using rails, and using a
2288 appropriate console.")
2289 (license license:gpl3+)))
2290
2291 (define-public emacs-znc
2292 (package
2293 (name "emacs-znc")
2294 (version "0.0.2")
2295 (source
2296 (origin
2297 (method url-fetch)
2298 (uri (string-append "https://marmalade-repo.org/packages/znc-"
2299 version ".el"))
2300 (sha256
2301 (base32
2302 "1d8lqvybgyazin5z0g1c4l3rg1vzrrvf0saqs53jr1zcdg0lianh"))))
2303 (build-system emacs-build-system)
2304 (home-page "https://github.com/sshirokov/ZNC.el")
2305 (synopsis "Make ERC and ZNC get along better")
2306 (description
2307 "This is a thin wrapper around @code{erc} that enables one to use the ZNC
2308 IRC bouncer with ERC.")
2309 (license license:expat)))
2310
2311 (define-public emacs-shut-up
2312 (package
2313 (name "emacs-shut-up")
2314 (version "0.3.2")
2315 (source
2316 (origin
2317 (method url-fetch)
2318 (uri (string-append "https://github.com/cask/shut-up/"
2319 "archive/v" version ".tar.gz"))
2320 (file-name (string-append name "-" version ".tar.gz"))
2321 (sha256
2322 (base32
2323 "09kzrjdkb569iviyg7ydwq44yh84m3f9hkl7jizfrlk0w4gz67d1"))))
2324 (build-system emacs-build-system)
2325 (home-page "https://github.com/cask/shut-up")
2326 (synopsis "Silence Emacs")
2327 (description "This package silences most output of Emacs when running an
2328 Emacs shell script.")
2329 (license license:expat)))
2330
2331 (define-public emacs-undercover
2332 (package
2333 (name "emacs-undercover")
2334 (version "0.6.0")
2335 (source
2336 (origin
2337 (method url-fetch)
2338 (uri (string-append "https://github.com/sviridov/undercover.el/"
2339 "archive/v" version ".tar.gz"))
2340 (file-name (string-append name "-" version ".tar.gz"))
2341 (sha256
2342 (base32
2343 "0f48fi0xnbsqs382rgh85m9mq1wdnr0yib7as9xhwzvq0hsr5m0a"))))
2344 (build-system emacs-build-system)
2345 (propagated-inputs
2346 `(("emacs-dash" ,emacs-dash)
2347 ("emacs-shut-up" ,emacs-shut-up)))
2348 (home-page "https://github.com/sviridov/undercover.el")
2349 (synopsis "Test coverage library for Emacs Lisp")
2350 (description
2351 "Undercover is a test coverage library for software written in Emacs
2352 Lisp.")
2353 (license license:expat)))
2354
2355 (define-public emacs-paren-face
2356 (package
2357 (name "emacs-paren-face")
2358 (version "1.0.0")
2359 (source
2360 (origin
2361 (method url-fetch)
2362 (uri (string-append "https://github.com/tarsius/paren-face/archive/"
2363 version ".tar.gz"))
2364 (file-name (string-append name "-" version ".tar.gz"))
2365 (sha256
2366 (base32
2367 "0y4qrhxa9332vsvr999jg7qj1ymnfgwpf591yi4a4jgg90pm7qnn"))))
2368 (build-system emacs-build-system)
2369 (home-page "https://github.com/tarsius/paren-face")
2370 (synopsis "Face for parentheses in lisp modes")
2371 (description
2372 "This library defines a face named @code{parenthesis} used just for
2373 parentheses. The intended purpose of this face is to make parentheses less
2374 visible in Lisp code by dimming them. Lispers probably don't need to be
2375 constantly made aware of the existence of the parentheses. Dimming them might
2376 be even more useful for people new to lisp who have not yet learned to
2377 subconsciously blend out the parentheses.")
2378 (license license:gpl3+)))
2379
2380 (define-public emacs-page-break-lines
2381 (package
2382 (name "emacs-page-break-lines")
2383 (version "0.11")
2384 (source
2385 (origin
2386 (method url-fetch)
2387 (uri (string-append "https://github.com/purcell/page-break-lines/"
2388 "archive/" version ".tar.gz"))
2389 (file-name (string-append name "-" version ".tar.gz"))
2390 (sha256
2391 (base32
2392 "1zzhziq5kbrm9rxk30kx2glz455fp1blqxg8cpcf6l8xl3w8z4pg"))))
2393 (build-system emacs-build-system)
2394 (home-page "https://github.com/purcell/page-break-lines")
2395 (synopsis "Display page breaks as tidy horizontal lines")
2396 (description
2397 "This library provides a global mode which displays form feed characters
2398 as horizontal rules.")
2399 (license license:gpl3+)))
2400
2401 (define-public emacs-simple-httpd
2402 (package
2403 (name "emacs-simple-httpd")
2404 (version "1.4.6")
2405 (source
2406 (origin
2407 (method url-fetch)
2408 (uri (string-append "https://github.com/skeeto/emacs-web-server/"
2409 "archive/" version ".tar.gz"))
2410 (file-name (string-append name "-" version ".tar.gz"))
2411 (sha256
2412 (base32
2413 "01r7h3imnj4qx1m53a2wjafvbylcyz5f9r2rg2cs7ky3chlg220r"))))
2414 (build-system emacs-build-system)
2415 (home-page "https://github.com/skeeto/emacs-http-server")
2416 (synopsis "HTTP server in pure Emacs Lisp")
2417 (description
2418 "This package provides a simple HTTP server written in Emacs Lisp to
2419 serve files and directory listings.")
2420 (license license:unlicense)))
2421
2422 (define-public emacs-skewer-mode
2423 (package
2424 (name "emacs-skewer-mode")
2425 (version "1.6.2")
2426 (source
2427 (origin
2428 (method url-fetch)
2429 (uri (string-append "https://github.com/skeeto/skewer-mode/archive/"
2430 version ".tar.gz"))
2431 (file-name (string-append name "-" version ".tar.gz"))
2432 (sha256
2433 (base32
2434 "07jpz374j0j964szy3zznrkyja2kpdl3xa87wh7349mzxivqxdx0"))))
2435 (build-system emacs-build-system)
2436 (propagated-inputs
2437 `(("emacs-simple-httpd" ,emacs-simple-httpd)
2438 ("emacs-js2-mode" ,emacs-js2-mode)))
2439 (arguments '(#:include '("\\.el$" "\\.js$" "\\.html$")))
2440 (home-page "https://github.com/skeeto/skewer-mode")
2441 (synopsis "Live web development in Emacs")
2442 (description
2443 "Skewer-mode provides live interaction with JavaScript, CSS, and HTML in
2444 a web browser. Expressions are sent on-the-fly from an editing buffer to be
2445 evaluated in the browser, just like Emacs does with an inferior Lisp process
2446 in Lisp modes.")
2447 (license license:unlicense)))
2448
2449 (define-public emacs-string-inflection
2450 (package
2451 (name "emacs-string-inflection")
2452 (version "1.0.6")
2453 (source (origin
2454 (method git-fetch)
2455 (uri (git-reference
2456 (url "https://github.com/akicho8/string-inflection")
2457 (commit "a150e7bdda60b7824d3a936750ce23f73b0e4edd")))
2458 (file-name (string-append name "-" version "-checkout"))
2459 (sha256
2460 (base32
2461 "1k0sm552iawi49v4zis6dbb81d1rzgky9v0dpv7nj31gnb7bmy7k"))))
2462 (build-system emacs-build-system)
2463 (native-inputs
2464 `(("ert-runner" ,emacs-ert-runner)))
2465 (arguments
2466 `(#:tests? #t
2467 #:test-command '("ert-runner")))
2468 (home-page "https://github.com/akicho8/string-inflection")
2469 (synopsis "Convert symbol names between different naming conventions")
2470 (description
2471 "This Emacs package provides convenient methods for manipulating the
2472 naming style of a symbol. It supports different naming conventions such as:
2473
2474 @enumerate
2475 @item camel case
2476 @item Pascal case
2477 @item all upper case
2478 @item lower case separated by underscore
2479 @item etc...
2480 @end enumerate\n")
2481 (license license:gpl2+)))
2482
2483 (define-public emacs-stripe-buffer
2484 (package
2485 (name "emacs-stripe-buffer")
2486 (version "0.2.5")
2487 (source
2488 (origin
2489 (method url-fetch)
2490 (uri (string-append "https://github.com/sabof/stripe-buffer/"
2491 "archive/" version ".tar.gz"))
2492 (file-name (string-append name "-" version ".tar.gz"))
2493 (sha256
2494 (base32
2495 "1p515dq7raly5hw94kiwm3vzsfih0d8af622q4ipvvljsm98aiik"))))
2496 (build-system emacs-build-system)
2497 (home-page "https://github.com/sabof/stripe-buffer/")
2498 (synopsis "Add stripes to list buffers")
2499 (description
2500 "This Emacs package adds faces to add stripes to list buffers and org
2501 tables.")
2502 (license license:gpl2+)))
2503
2504 (define-public emacs-rich-minority
2505 (package
2506 (name "emacs-rich-minority")
2507 (version "1.0.1")
2508 (source
2509 (origin
2510 (method url-fetch)
2511 (uri (string-append "https://github.com/Malabarba/rich-minority/"
2512 "archive/" version ".tar.gz"))
2513 (file-name (string-append name "-" version ".tar.gz"))
2514 (sha256
2515 (base32
2516 "1l0cb0q7kyi88nwfqd542psnkgwnjklpzc5rx32gzd3lkwkrbr8v"))))
2517 (build-system emacs-build-system)
2518 (home-page "https://github.com/Malabarba/rich-minority")
2519 (synopsis "Clean-up and beautify the list of minor modes")
2520 (description
2521 "This Emacs package hides and/or highlights minor modes in the
2522 mode-line.")
2523 (license license:gpl2+)))
2524
2525 (define-public emacs-robe
2526 (package
2527 (name "emacs-robe")
2528 (version "0.8.1")
2529 (source
2530 (origin
2531 (method url-fetch)
2532 (uri (string-append "https://github.com/dgutov/robe/"
2533 "archive/" version ".tar.gz"))
2534 (file-name (string-append name "-" version ".tar.gz"))
2535 (sha256
2536 (base32
2537 "1vp45y99fwj88z04ah4yppz4z568qcib646az6m9az5ar0f203br"))))
2538 (build-system emacs-build-system)
2539 (arguments
2540 '(#:include (cons "^lib\\/" %default-include)))
2541 (propagated-inputs
2542 `(("emacs-inf-ruby" ,emacs-inf-ruby)))
2543 (home-page "https://github.com/dgutov/robe")
2544 (synopsis "Ruby code assistance tool for Emacs")
2545 (description
2546 "Robe can provide information on loaded classes and modules in Ruby code,
2547 as well as where methods are defined. This allows the user to jump to method
2548 definitions, modules and classes, display method documentation and provide
2549 method and constant name completion.")
2550 (license license:gpl3+)))
2551
2552 (define-public emacs-rspec
2553 (package
2554 (name "emacs-rspec")
2555 (version "1.11")
2556 (source
2557 (origin
2558 (method url-fetch)
2559 (uri (string-append "https://github.com/pezra/rspec-mode/"
2560 "archive/v" version ".tar.gz"))
2561 (file-name (string-append name "-" version ".tar.gz"))
2562 (sha256
2563 (base32
2564 "1j0a7ms5516nlg60qfyn730pfxys6acm0rgyxh5xfkpi6jafgpvw"))))
2565 (build-system emacs-build-system)
2566 (home-page "https://github.com/pezra/rspec-mode")
2567 (synopsis "Provides a rspec mode for working with RSpec")
2568 (description
2569 "The Emacs RSpec mode provides keybindings for Ruby source files, e.g. to
2570 verify the spec associated with the current buffer, or entire project, as well
2571 as moving between the spec files, and coresponding code files.
2572
2573 Also included are keybindings for spec files and Dired buffers, as well as
2574 snippets for yasnippet.")
2575 (license license:gpl3+)))
2576
2577 (define-public emacs-smart-mode-line
2578 (package
2579 (name "emacs-smart-mode-line")
2580 (version "2.12.0")
2581 (source
2582 (origin
2583 (method url-fetch)
2584 (uri (string-append "https://github.com/Malabarba/smart-mode-line/"
2585 "archive/" version ".tar.gz"))
2586 (file-name (string-append name "-" version ".tar.gz"))
2587 (sha256
2588 (base32
2589 "1hn8s6laijmg7w1bgwdfrki6h9vxkbgr8rmmssvd5yqyad5w2sba"))))
2590 (build-system emacs-build-system)
2591 (propagated-inputs
2592 `(("emacs-rich-minority" ,emacs-rich-minority)))
2593 (home-page "https://github.com/Malabarba/smart-mode-line")
2594 (synopsis "Color-coded smart mode-line")
2595 (description
2596 "Smart Mode Line is a mode-line theme for Emacs. It aims to be easy to
2597 read from small to large monitors by using colors, a prefix feature, and smart
2598 truncation.")
2599 (license license:gpl2+)))
2600
2601 (define-public emacs-sr-speedbar
2602 (let ((commit "77a83fb50f763a465c021eca7343243f465b4a47")
2603 (revision "0"))
2604 (package
2605 (name "emacs-sr-speedbar")
2606 (version (git-version "20161025" revision commit))
2607 (source
2608 (origin
2609 (method git-fetch)
2610 (uri (git-reference
2611 (url "https://github.com/emacsorphanage/sr-speedbar.git")
2612 (commit commit)))
2613 (file-name (git-file-name name version))
2614 (sha256
2615 (base32
2616 "0sd12555hk7z721y00kv3crdybvcn1i08wmd148z5imayzibj153"))))
2617 (build-system emacs-build-system)
2618 (home-page "https://www.emacswiki.org/emacs/SrSpeedbar")
2619 (synopsis "Same frame Emacs @code{speedbar}")
2620 (description
2621 "This Emacs package allows you to show @code{M-x speedbar} in the
2622 same frame (in an extra window). You can customize the initial width of
2623 the speedbar window.")
2624 (license license:gpl3+))))
2625
2626 (define-public emacs-shell-switcher
2627 (package
2628 (name "emacs-shell-switcher")
2629 (version "1.0.1")
2630 (source
2631 (origin
2632 (method url-fetch)
2633 (uri (string-append "https://github.com/DamienCassou/shell-switcher"
2634 "/archive/v" version ".tar.gz"))
2635 (file-name (string-append name "-" version ".tar.gz"))
2636 (sha256
2637 (base32
2638 "1c23mfkdqz2g9rixd9smm323vzlvhzz3ng34ambcqjfq309qb2nz"))))
2639 (build-system emacs-build-system)
2640 (home-page "https://github.com/DamienCassou/shell-switcher")
2641 (synopsis "Provide fast switching between shell buffers")
2642 (description
2643 "This package provides commands to quickly switch between shell buffers.")
2644 (license license:gpl3+)))
2645
2646 (define-public emacs-ob-ipython
2647 (package
2648 (name "emacs-ob-ipython")
2649 (version "20150704.8807064693")
2650 (source (origin
2651 (method git-fetch)
2652 (uri (git-reference
2653 (commit "880706469338ab59b5bb7dbe8460016f89755364")
2654 (url "https://github.com/gregsexton/ob-ipython.git")))
2655 (file-name (string-append name "-" version "-checkout"))
2656 (sha256
2657 (base32
2658 "1scf25snbds9ymagpny30ijbsg479r3nm0ih01dy4m9d0g7qryb7"))))
2659 (build-system emacs-build-system)
2660 (propagated-inputs
2661 `(("emacs-f" ,emacs-f)))
2662 (home-page "http://www.gregsexton.org")
2663 (synopsis "Org-Babel functions for IPython evaluation")
2664 (description "This package adds support to Org-Babel for evaluating Python
2665 source code using IPython.")
2666 (license license:gpl3+)))
2667
2668 (define-public emacs-debbugs
2669 (package
2670 (name "emacs-debbugs")
2671 (version "0.16")
2672 (source (origin
2673 (method url-fetch)
2674 (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
2675 version ".tar"))
2676 (sha256
2677 (base32
2678 "0y3bq803c7820h15g66d1648skxfhlfa2v6vincj6xk5ssp44s9p"))))
2679 (build-system emacs-build-system)
2680 (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
2681 (propagated-inputs
2682 `(("emacs-async" ,emacs-async)))
2683 (home-page "https://elpa.gnu.org/packages/debbugs.html")
2684 (synopsis "Access the Debbugs bug tracker in Emacs")
2685 (description
2686 "This package lets you access the @uref{http://bugs.gnu.org,GNU Bug
2687 Tracker} from within Emacs.
2688
2689 For instance, it defines the command @code{M-x debbugs-gnu} for listing bugs,
2690 and the command @code{M-x debbugs-gnu-search} for bug searching. If you
2691 prefer the listing of bugs as TODO items of @code{org-mode}, you could use
2692 @code{M-x debbugs-org} and related commands.
2693
2694 A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug
2695 Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.")
2696 (license license:gpl3+)))
2697
2698 (define-public emacs-ert-expectations
2699 (package
2700 (name "emacs-ert-expectations")
2701 (version "0.2")
2702 (source
2703 (origin
2704 (method url-fetch)
2705 (uri "https://www.emacswiki.org/emacs/download/ert-expectations.el")
2706 (sha256
2707 (base32
2708 "0cwy3ilsid90abzzjb7ha2blq9kmv3gfp3icwwfcz6qczgirq6g7"))))
2709 (build-system emacs-build-system)
2710 (home-page "https://www.emacswiki.org/emacs/ert-expectations.el")
2711 (synopsis "Simple unit test framework for Emacs Lisp")
2712 (description "@code{emacs-ert-expectations} is a simple unit test
2713 framework for Emacs Lisp to be used with @code{ert}.")
2714 (license license:gpl3+)))
2715
2716 (define-public emacs-deferred
2717 (package
2718 (name "emacs-deferred")
2719 (version "0.5.1")
2720 (home-page "https://github.com/kiwanami/emacs-deferred")
2721 (source (origin
2722 (method git-fetch)
2723 (uri (git-reference
2724 (url home-page)
2725 (commit (string-append "v" version))))
2726 (sha256
2727 (base32
2728 "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"))
2729 (file-name (string-append name "-" version))))
2730 (build-system emacs-build-system)
2731 (arguments
2732 `(#:phases
2733 (modify-phases %standard-phases
2734 (add-after 'unpack 'set-shell
2735 ;; Setting the SHELL environment variable is required for the tests
2736 ;; to find sh.
2737 (lambda _
2738 (setenv "SHELL" (which "sh"))
2739 #t))
2740 (add-before 'check 'fix-makefile
2741 (lambda _
2742 (substitute* "Makefile"
2743 (("\\$\\(CASK\\) exec ") ""))
2744 #t)))
2745 #:tests? #t
2746 #:test-command '("make" "test")))
2747 (native-inputs
2748 `(("emacs-ert-expectations" ,emacs-ert-expectations)
2749 ("emacs-undercover" ,emacs-undercover)
2750 ("ert-runner" ,emacs-ert-runner)))
2751 (synopsis "Simple asynchronous functions for Emacs Lisp")
2752 (description
2753 "The @code{deferred.el} library provides support for asynchronous tasks.
2754 The API is almost the same as that of
2755 @uref{https://github.com/cho45/jsdeferred, JSDeferred}, a JavaScript library
2756 for asynchronous tasks.")
2757 (license license:gpl3+)))
2758
2759 (define-public emacs-butler
2760 (package
2761 (name "emacs-butler")
2762 (version "0.2.4")
2763 (home-page "https://github.com/AshtonKem/Butler")
2764 (source (origin
2765 (method git-fetch)
2766 (uri (git-reference
2767 (url home-page)
2768 (commit version)))
2769 (sha256
2770 (base32
2771 "1pii9dw4skq7nr4na6qxqasl36av8cwjp71bf1fgppqpcd9z8skj"))
2772 (file-name (string-append name "-" version))))
2773 (build-system emacs-build-system)
2774 (propagated-inputs
2775 `(("emacs-deferred" ,emacs-deferred)))
2776 (synopsis "Emacs client for Jenkins")
2777 (description
2778 "Butler provides an interface to connect to Jenkins continuous
2779 integration servers. Users can specify a list of server in the
2780 @code{butler-server-list} variable and then use @code{M-x butler-status} to
2781 view the build status of those servers' build jobs, and possibly to trigger
2782 build jobs.")
2783 (license license:gpl3+)))
2784
2785 (define-public emacs-company
2786 (package
2787 (name "emacs-company")
2788 (version "0.9.7")
2789 (source
2790 (origin
2791 (method url-fetch)
2792 (uri (string-append "https://github.com/company-mode/company-mode/archive/"
2793 version ".tar.gz"))
2794 (file-name (string-append name "-" version ".tar.gz"))
2795 (sha256
2796 (base32
2797 "19flv38f2qhxda8lbk2ckywvibd72vbzmn4hchqz6d8acsknh4sb"))))
2798 (build-system emacs-build-system)
2799 (arguments
2800 `(#:phases
2801 (modify-phases %standard-phases
2802 (add-before 'check 'fix-bin-dir
2803 (lambda _
2804 ;; The company-files-candidates-normal-root test looks
2805 ;; for the /bin directory, but the build environment has
2806 ;; no /bin directory. Modify the test to look for the
2807 ;; /tmp directory.
2808 (substitute* "test/files-tests.el"
2809 (("/bin/") "/tmp/"))
2810 #t)))
2811 #:tests? #t
2812 #:test-command '("make" "test-batch")))
2813 (home-page "http://company-mode.github.io/")
2814 (synopsis "Modular text completion framework")
2815 (description
2816 "Company is a modular completion mechanism. Modules for retrieving
2817 completion candidates are called back-ends, modules for displaying them are
2818 front-ends. Company comes with many back-ends, e.g. @code{company-elisp}.
2819 These are distributed in separate files and can be used individually.")
2820 (license license:gpl3+)))
2821
2822 (define-public emacs-irony-mode
2823 (package
2824 (name "emacs-irony-mode")
2825 (version "1.2.0")
2826 (home-page "https://github.com/Sarcasm/irony-mode")
2827 (source (origin
2828 (method git-fetch)
2829 (uri (git-reference
2830 (url (string-append home-page ".git"))
2831 (commit (string-append "v" version))))
2832 (sha256
2833 (base32
2834 "0nhjrnlmss535jbshjjd30vydbr8py21vkx4p294w6d8vg2rssf8"))
2835 (file-name (string-append name "-" version ".tar.gz"))))
2836 (build-system emacs-build-system)
2837 (arguments '())
2838 (propagated-inputs
2839 `(("emacs-irony-mode-server" ,emacs-irony-mode-server)))
2840 (synopsis "C/C++/ObjC Code completion and syntax checks for Emacs")
2841 (description "Irony-mode provides Clang-assisted syntax checking and
2842 completion for C, C++, and ObjC in GNU Emacs. Using @code{libclang} it can
2843 provide syntax checking and autocompletion on compiler level which is very
2844 resistent against false positives. It also integrates well with other
2845 packages like @code{eldoc-mode} and especially @code{company-mode} as
2846 described on the homepage.")
2847 (license license:gpl3+)))
2848
2849 (define-public emacs-irony-mode-server
2850 (package (inherit emacs-irony-mode)
2851 (name "emacs-irony-mode-server")
2852 (inputs
2853 `(("clang" ,clang)))
2854 (propagated-inputs '())
2855 (arguments
2856 `(#:phases
2857 (modify-phases %standard-phases
2858 (replace 'configure
2859 (lambda* (#:key outputs #:allow-other-keys)
2860 (let ((out (assoc-ref outputs "out")))
2861 (invoke "cmake"
2862 "server"
2863 (string-append "-DCMAKE_INSTALL_PREFIX=" out)) #t))))))
2864 (build-system cmake-build-system)
2865 (synopsis "Server for the Emacs @dfn{irony mode}")))
2866
2867 (define-public emacs-company-irony
2868 (package
2869 (name "emacs-company-irony")
2870 (version "1.1.0")
2871 (source (origin
2872 (method git-fetch)
2873 (uri (git-reference
2874 (url "https://github.com/Sarcasm/company-irony.git")
2875 (commit (string-append "v" version))))
2876 (sha256 (base32
2877 "1qgyam2vyjw90kpxns5cd6bq3qiqjhzpwrlvmi18vyb69qcgqd8a"))
2878 (file-name (git-file-name name version))))
2879 (build-system emacs-build-system)
2880 (inputs
2881 `(("emacs-irony-mode" ,emacs-irony-mode)
2882 ("emacs-company" ,emacs-company)))
2883 (synopsis "C++ completion backend for Company using irony-mode")
2884 (description "This backend for company-mode allows for C++ code completion
2885 with irony-mode using clang-tooling.")
2886 (home-page "https://github.com/Sarcasm/company-irony")
2887 (license license:gpl3+)))
2888
2889 (define-public emacs-flycheck-irony
2890 (package
2891 (name "emacs-flycheck-irony")
2892 (version "0.1.0")
2893 (source (origin
2894 (method git-fetch)
2895 (uri (git-reference
2896 (url "https://github.com/Sarcasm/flycheck-irony.git")
2897 (commit (string-append "v" version))))
2898 (sha256
2899 (base32 "0qa5a8wzvzxwqql92ibc9s43k8sj3vwn7skz9hfr8av0skkhx996"))
2900 (file-name (string-append name "-" version))))
2901 (build-system emacs-build-system)
2902 (inputs
2903 `(("irony-mode" ,emacs-irony-mode)
2904 ("flycheck-mode" ,emacs-flycheck)
2905 ("emacs-company" ,emacs-company)))
2906 (synopsis "Live syntax checking frontend for Flycheck using irony-mode")
2907 (description "This package provides a frontend for Flycheck that lets
2908 irony-mode do the syntax checking.")
2909 (home-page "https://github.com/Sarcasm/flycheck-irony")
2910 (license license:gpl3+)))
2911
2912 (define-public emacs-irony-eldoc
2913 (package
2914 (name "emacs-irony-eldoc")
2915 (version (package-version emacs-irony-mode))
2916 (source
2917 (origin
2918 (method git-fetch)
2919 (uri (git-reference
2920 (url "https://github.com/ikirill/irony-eldoc.git")
2921 (commit "0df5831eaae264a25422b061eb2792aadde8b3f2")))
2922 (sha256 (base32 "1l5qpr66v1l12fb50yh73grb2rr85xxmbj19mm33b5rdrq2bqmmd"))
2923 (file-name (string-append name "-" version))))
2924 (build-system emacs-build-system)
2925 (inputs
2926 `(("irony-mode" ,emacs-irony-mode)))
2927 (synopsis "Eldoc integration for irony-mode")
2928 (description "Irony-eldoc is an eldoc extension that shows documentation
2929 for the current function or variable in the minibuffer.")
2930 (home-page "https://github.com/ikirill/irony-eldoc")
2931 (license license:gpl3+)))
2932
2933 (define-public emacs-company-quickhelp
2934 (package
2935 (name "emacs-company-quickhelp")
2936 (version "2.3.0")
2937 (source
2938 (origin
2939 (method url-fetch)
2940 (uri (string-append
2941 "https://github.com/expez/company-quickhelp/archive/"
2942 version ".tar.gz"))
2943 (file-name (string-append name "-" version ".tar.gz"))
2944 (sha256
2945 (base32
2946 "0xrn2z1dgk5gmkmp2jkn9g83ckk39lqp5pyyv8rl7f6gqvib3qh0"))))
2947 (build-system emacs-build-system)
2948 (propagated-inputs
2949 `(("emacs-pos-tip" ,emacs-pos-tip)
2950 ("emacs-company" ,emacs-company)))
2951 (home-page "https://github.com/expez/company-quickhelp")
2952 (synopsis "Popup documentation for completion candidates")
2953 (description "@code{company-quickhelp} shows documentation for the
2954 completion candidate when using the Company text completion framework.")
2955 (license license:gpl3+)))
2956
2957 (define-public emacs-multiple-cursors
2958 (package
2959 (name "emacs-multiple-cursors")
2960 (version "1.4.0")
2961 (source
2962 (origin
2963 (method url-fetch)
2964 (uri (string-append "https://github.com/magnars/multiple-cursors.el/"
2965 "archive/" version ".tar.gz"))
2966 (file-name (string-append name "-" version ".tar.gz"))
2967 (sha256
2968 (base32
2969 "0hihihlvcvzayg5fnqzcg45fhvlmq6xlq58syy00rjwbry9w389k"))))
2970 (build-system emacs-build-system)
2971 (home-page "https://github.com/magnars/multiple-cursors.el")
2972 (synopsis "Multiple cursors for Emacs")
2973 (description
2974 "This package adds support to Emacs for editing text with multiple
2975 simultaneous cursors.")
2976 (license license:gpl3+)))
2977
2978 (define-public emacs-typo
2979 (package
2980 (name "emacs-typo")
2981 (version "1.1")
2982 (home-page "https://github.com/jorgenschaefer/typoel")
2983 (source (origin
2984 (method git-fetch)
2985 (uri (git-reference
2986 (url home-page)
2987 (commit (string-append "v" version))))
2988 (sha256
2989 (base32
2990 "1jhd4grch5iz12gyxwfbsgh4dmz5hj4bg4gnvphccg8dsnni05k2"))
2991 (file-name (string-append name "-" version))))
2992 (build-system emacs-build-system)
2993 (synopsis "Minor mode for typographic editing")
2994 (description
2995 "This package provides two Emacs modes, @code{typo-mode} and
2996 @code{typo-global-mode}. These modes automatically insert Unicode characters
2997 for quotation marks, dashes, and ellipses. For example, typing @kbd{\"}
2998 automatically inserts a Unicode opening or closing quotation mark, depending
2999 on context.")
3000 (license license:gpl3+)))
3001
3002 (define-public emacs-scheme-complete
3003 (let ((commit "9b5cf224bf2a5994bc6d5b152ff487517f1a9bb5"))
3004 (package
3005 (name "emacs-scheme-complete")
3006 (version (string-append "20151223." (string-take commit 8)))
3007 (source
3008 (origin
3009 (file-name (string-append name "-" version))
3010 (method git-fetch)
3011 (uri (git-reference
3012 (url "https://github.com/ashinn/scheme-complete.git")
3013 (commit commit)))
3014 (sha256
3015 (base32
3016 "141wn9l0m33w0g3dqmx8nxbfdny1r5xbr6ak61rsz21bk0qafs7x"))
3017 (patches
3018 (search-patches "emacs-scheme-complete-scheme-r5rs-info.patch"))))
3019 (build-system emacs-build-system)
3020 (home-page "https://github.com/ashinn/scheme-complete")
3021 (synopsis "Smart tab completion for Scheme in Emacs")
3022 (description
3023 "This file provides a single function, @code{scheme-smart-complete},
3024 which you can use for intelligent, context-sensitive completion for any Scheme
3025 implementation in Emacs. To use it just load this file and bind that function
3026 to a key in your preferred mode.")
3027 (license license:public-domain))))
3028
3029 (define-public emacs-scel
3030 (let ((version "20170629")
3031 (revision "1")
3032 (commit "aeea3ad4be9306d14c3a734a4ff54fee10ac135b"))
3033 (package
3034 (name "emacs-scel")
3035 (version (git-version version revision commit))
3036 (source
3037 (origin
3038 (method git-fetch)
3039 (uri (git-reference
3040 (url "https://github.com/supercollider/scel.git")
3041 (commit commit)))
3042 (file-name (string-append name "-" version "-checkout"))
3043 (sha256
3044 (base32
3045 "0jvmzs1lsjyndqshhii2y4mnr3wghai26i3p75453zrpxpg0zvvw"))))
3046 (build-system emacs-build-system)
3047 (arguments
3048 `(#:modules ((guix build emacs-build-system)
3049 ((guix build cmake-build-system) #:prefix cmake:)
3050 (guix build utils))
3051 #:imported-modules (,@%emacs-build-system-modules
3052 (guix build cmake-build-system))
3053 #:phases
3054 (modify-phases %standard-phases
3055 (add-after 'unpack 'configure
3056 (lambda* (#:key outputs #:allow-other-keys)
3057 (substitute* "el/CMakeLists.txt"
3058 (("share/emacs/site-lisp/SuperCollider")
3059 (string-append
3060 "share/emacs/site-lisp/guix.d/scel-" ,version)))
3061 ((assoc-ref cmake:%standard-phases 'configure)
3062 #:outputs outputs
3063 #:configure-flags '("-DSC_EL_BYTECOMPILE=OFF"))))
3064 (add-after 'set-emacs-load-path 'add-el-dir-to-emacs-load-path
3065 (lambda _
3066 (setenv "EMACSLOADPATH"
3067 (string-append (getcwd) "/el:" (getenv "EMACSLOADPATH")))
3068 #t))
3069 (replace 'install (assoc-ref cmake:%standard-phases 'install)))))
3070 (inputs
3071 `(("supercollider" ,supercollider)))
3072 (native-inputs
3073 `(("cmake" ,cmake)))
3074 (home-page "https://github.com/supercollider/scel")
3075 (synopsis "SuperCollider Emacs interface")
3076 (description "@code{emacs-scel} is an Emacs interface to SuperCollider.
3077 SuperCollider is a platform for audio synthesis and algorithmic composition.")
3078 (license license:gpl2+))))
3079
3080 (define-public emacs-mit-scheme-doc
3081 (package
3082 (name "emacs-mit-scheme-doc")
3083 (version "20140203")
3084 (source
3085 (origin
3086 (modules '((guix build utils)))
3087 (snippet
3088 ;; keep only file of interest
3089 '(begin
3090 (for-each delete-file '("dot-emacs.el" "Makefile"))
3091 (install-file "6.945-config/mit-scheme-doc.el" ".")
3092 (delete-file-recursively "6.945-config")
3093 #t))
3094 (file-name (string-append name "-" version ".tar.bz2"))
3095 (method url-fetch)
3096 (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/"
3097 "6.945/dont-panic/emacs-basic-config.tar.bz2"))
3098 (sha256
3099 (base32
3100 "0dqidg2bd66pawqfarvwca93w5gqf9mikn1k2a2rmd9ymfjpziq1"))))
3101 (build-system emacs-build-system)
3102 (inputs `(("mit-scheme" ,mit-scheme)))
3103 (arguments
3104 `(#:phases
3105 (modify-phases %standard-phases
3106 (add-after 'unpack 'configure-doc
3107 (lambda* (#:key inputs #:allow-other-keys)
3108 (let* ((mit-scheme-dir (assoc-ref inputs "mit-scheme"))
3109 (doc-dir (string-append mit-scheme-dir "/share/doc/"
3110 "mit-scheme-"
3111 ,(package-version mit-scheme))))
3112 (substitute* "mit-scheme-doc.el"
3113 (("http://www\\.gnu\\.org/software/mit-scheme/documentation/mit-scheme-ref/")
3114 (string-append "file:" doc-dir "/mit-scheme-ref/")))))))))
3115 (home-page "http://groups.csail.mit.edu/mac/users/gjs/6.945/dont-panic/")
3116 (synopsis "MIT-Scheme documentation lookup for Emacs")
3117 (description
3118 "This package provides a set of Emacs functions to search definitions of
3119 identifiers in the MIT-Scheme documentation.")
3120 (license license:gpl2+)))
3121
3122 (define-public emacs-constants
3123 (package
3124 (name "emacs-constants")
3125 (version "2.6")
3126 (home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
3127 (source
3128 (origin
3129 (file-name (string-append name "-" version ".tar.gz"))
3130 (method url-fetch)
3131 (uri (string-append "https://github.com/fedeinthemix/emacs-constants"
3132 "/archive/v" version ".tar.gz"))
3133 (sha256
3134 (base32
3135 "0pnrpmmxq8mh5h2hbrp5vcym0j0fh6dv3s7c5ccn18wllhzg9g7n"))))
3136 (build-system emacs-build-system)
3137 (synopsis "Enter definition of constants into an Emacs buffer")
3138 (description
3139 "This package provides functions for inserting the definition of natural
3140 constants and units into an Emacs buffer.")
3141 (license license:gpl2+)))
3142
3143 (define-public emacs-tagedit
3144 (package
3145 (name "emacs-tagedit")
3146 (version "1.4.0")
3147 (source
3148 (origin
3149 (method url-fetch)
3150 (uri (string-append "https://github.com/magnars/tagedit/"
3151 "archive/" version ".tar.gz"))
3152 (file-name (string-append name "-" version ".tar.gz"))
3153 (sha256
3154 (base32
3155 "1apfnann4qklfdsmdi7icjsj18x7gwx8d83iqr4z25clszz95xfq"))))
3156 (build-system emacs-build-system)
3157 (propagated-inputs
3158 `(("emacs-s" ,emacs-s)
3159 ("emacs-dash" ,emacs-dash)))
3160 (home-page "https://github.com/magnars/tagedit")
3161 (synopsis "Some paredit-like features for html-mode")
3162 (description
3163 "This package provides a collection of paredit-like functions for editing
3164 in @code{html-mode}.")
3165 (license license:gpl3+)))
3166
3167 (define-public emacs-slime
3168 (package
3169 (name "emacs-slime")
3170 (version "2.22")
3171 (source
3172 (origin
3173 (file-name (string-append name "-" version ".tar.gz"))
3174 (method url-fetch)
3175 (uri (string-append
3176 "https://github.com/slime/slime/archive/v"
3177 version ".tar.gz"))
3178 (sha256
3179 (base32
3180 "07vaib1n4zyh5yy30gdpq0bc5cv6w84piml5b3mfc9ibjhaykkms"))))
3181 (build-system emacs-build-system)
3182 (native-inputs
3183 `(("texinfo" ,texinfo)))
3184 (arguments
3185 `(#:include '("\\.el$" "\\.lisp$" "\\.asd$" "contrib")
3186 #:exclude '("^slime-tests.el" "^contrib/test/"
3187 "^contrib/Makefile$" "^contrib/README.md$")
3188 #:phases
3189 (modify-phases %standard-phases
3190 (add-before 'install 'configure
3191 (lambda* _
3192 (emacs-substitute-variables "slime.el"
3193 ("inferior-lisp-program" "sbcl"))
3194 #t))
3195 (add-before 'install 'install-doc
3196 (lambda* (#:key outputs #:allow-other-keys)
3197 (let* ((out (assoc-ref outputs "out"))
3198 (info-dir (string-append out "/share/info"))
3199 (doc-dir (string-append out "/share/doc/"
3200 ,name "-" ,version))
3201 (doc-files '("doc/slime-refcard.pdf"
3202 "README.md" "NEWS" "PROBLEMS"
3203 "CONTRIBUTING.md")))
3204 (with-directory-excursion "doc"
3205 (substitute* "Makefile"
3206 (("infodir=/usr/local/info")
3207 (string-append "infodir=" info-dir)))
3208 (invoke "make" "html/index.html")
3209 (invoke "make" "slime.info")
3210 (install-file "slime.info" info-dir)
3211 (copy-recursively "html" (string-append doc-dir "/html")))
3212 (for-each (lambda (f)
3213 (install-file f doc-dir)
3214 (delete-file f))
3215 doc-files)
3216 (delete-file-recursively "doc")
3217 #t))))))
3218 (home-page "https://github.com/slime/slime")
3219 (synopsis "Superior Lisp Interaction Mode for Emacs")
3220 (description
3221 "SLIME extends Emacs with support for interactive programming in
3222 Common Lisp. The features are centered around @command{slime-mode},
3223 an Emacs minor mode that complements the standard @command{lisp-mode}.
3224 While lisp-mode supports editing Lisp source files, @command{slime-mode}
3225 adds support for interacting with a running Common Lisp process
3226 for compilation, debugging, documentation lookup, and so on.")
3227 (license (list license:gpl2+ license:public-domain))))
3228
3229 (define-public emacs-popup
3230 (package
3231 (name "emacs-popup")
3232 (version "0.5.3")
3233 (source (origin
3234 (method url-fetch)
3235 (uri (string-append
3236 "https://github.com/auto-complete/popup-el/archive/v"
3237 version ".tar.gz"))
3238 (file-name (string-append name "-" version ".tar.gz"))
3239 (sha256
3240 (base32
3241 "1yrgfj8y69xmcb6kwgplhq68ndm9410qwh7sd2knnd1gchpphdc0"))))
3242 (build-system emacs-build-system)
3243 (home-page "https://github.com/auto-complete/popup-el")
3244 (synopsis "Visual Popup User Interface for Emacs")
3245 (description
3246 "Popup.el is a visual popup user interface library for Emacs.
3247 This provides a basic API and common UI widgets such as popup tooltips
3248 and popup menus.")
3249 (license license:gpl3+)))
3250
3251 (define-public emacs-puppet-mode
3252 (let ((commit "b3ed5057166a4f49dfa9be638523a348b55a2fd2")
3253 (revision "1"))
3254 (package
3255 (name "emacs-puppet-mode")
3256 ;; The last release, 0.3 was several years ago, and there have been many
3257 ;; commits since
3258 (version (git-version "0.3" revision commit))
3259 (source
3260 (origin
3261 (method url-fetch)
3262 (uri (string-append
3263 "https://raw.githubusercontent.com/voxpupuli/puppet-mode/"
3264 commit "/puppet-mode.el"))
3265 (sha256
3266 (base32
3267 "1indycxawsl0p2aqqg754f6735q3cmah9vd886rpn0ncc3ipi1xm"))))
3268 (build-system emacs-build-system)
3269 (home-page "https://github.com/voxpupuli/puppet-mode")
3270 (synopsis "Emacs major mode for the Puppet configuration language")
3271 (description
3272 "This package provides support for the Puppet configuration language,
3273 including syntax highlighting, indentation of expressions and statements,
3274 linting of manifests and integration with Puppet Debugger.")
3275 ;; Also incorporates work covered by the Apache License, Version 2.0
3276 (license license:gpl3+))))
3277
3278 (define-public emacs-god-mode
3279 (let ((commit "6cf0807b6555eb6fcf8387a4e3b667071ef38964")
3280 (revision "1"))
3281 (package
3282 (name "emacs-god-mode")
3283 (version (string-append "20151005.925."
3284 revision "-" (string-take commit 9)))
3285 (source
3286 (origin
3287 (method git-fetch)
3288 (uri (git-reference
3289 (url "https://github.com/chrisdone/god-mode.git")
3290 (commit commit)))
3291 (file-name (string-append name "-" version "-checkout"))
3292 (sha256
3293 (base32
3294 "1am415k4xxcva6y3vbvyvknzc6bma49pq3p85zmpjsdmsp18qdix"))))
3295 (build-system emacs-build-system)
3296 (home-page "https://github.com/chrisdone/god-mode")
3297 (synopsis "Minor mode for entering commands without modifier keys")
3298 (description
3299 "This package provides a global minor mode for entering Emacs commands
3300 without modifier keys. It's similar to Vim's separation of commands and
3301 insertion mode. When enabled all keys are implicitly prefixed with
3302 @samp{C-} (among other helpful shortcuts).")
3303 (license license:gpl3+))))
3304
3305 (define-public emacs-jinja2-mode
3306 (package
3307 (name "emacs-jinja2-mode")
3308 (version "0.2")
3309 (source
3310 (origin
3311 (method url-fetch)
3312 (uri (string-append "https://github.com/paradoxxxzero/jinja2-mode/"
3313 "archive/v" version ".tar.gz"))
3314 (file-name (string-append name "-" version ".tar.gz"))
3315 (sha256
3316 (base32
3317 "0cgxjab1kla2zc2fj7bzib6i7snp08zshandmp9kqcm85l262xpn"))))
3318 (build-system emacs-build-system)
3319 (home-page "https://github.com/paradoxxxzero/jinja2-mode")
3320 (synopsis "Major mode for jinja2")
3321 (description
3322 "Emacs major mode for jinja2 with: syntax highlighting,
3323 sgml/html integration, and indentation (working with sgml).")
3324 (license license:gpl3+)))
3325
3326 (define-public emacs-rfcview
3327 (package
3328 (name "emacs-rfcview")
3329 (version "0.13")
3330 (home-page "http://www.loveshack.ukfsn.org/emacs")
3331 (source (origin
3332 (method url-fetch)
3333 (uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el")
3334 (sha256
3335 (base32
3336 "0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz"))))
3337 (build-system emacs-build-system)
3338 (synopsis "Prettify Request for Comments (RFC) documents")
3339 (description "The Internet Engineering Task Force (IETF) and the Internet
3340 Society (ISOC) publish various Internet-related protocols and specifications
3341 as \"Request for Comments\" (RFC) documents and Internet Standard (STD)
3342 documents. RFCs and STDs are published in a simple text form. This package
3343 provides an Emacs major mode, rfcview-mode, which makes it more pleasant to
3344 read these documents in Emacs. It prettifies the text and adds
3345 hyperlinks/menus for easier navigation. It also provides functions for
3346 browsing the index of RFC documents and fetching them from remote servers or
3347 local directories.")
3348 (license license:gpl3+)))
3349
3350 (define-public emacs-ffap-rfc-space
3351 (package
3352 (name "emacs-ffap-rfc-space")
3353 (version "12")
3354 (home-page "http://user42.tuxfamily.org/ffap-rfc-space/index.html")
3355 (source (origin
3356 (method url-fetch)
3357 (uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el")
3358 (sha256
3359 (base32
3360 "1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck"))))
3361 (build-system emacs-build-system)
3362 (synopsis "Make ffap recognize an RFC with a space before its number")
3363 (description "The Internet Engineering Task Force (IETF) and the
3364 Internet Society (ISOC) publish various Internet-related protocols and
3365 specifications as \"Request for Comments\" (RFC) documents. The
3366 built-in Emacs module \"ffap\" (Find File at Point) has the ability to
3367 recognize names at point which look like \"RFC1234\" and \"RFC-1234\"
3368 and load the appropriate RFC from a remote server. However, it fails
3369 to recognize a name like \"RFC 1234\". This package enhances ffap so
3370 that it correctly finds RFCs even when a space appears before the
3371 number.")
3372 (license license:gpl3+)))
3373
3374 (define-public emacs-org-bullets
3375 (package
3376 (name "emacs-org-bullets")
3377 (version "0.2.4")
3378 (source
3379 (origin
3380 (method url-fetch)
3381 (uri (string-append "https://github.com/sabof/org-bullets/archive/"
3382 version ".tar.gz"))
3383 (file-name (string-append name "-" version ".tar.gz"))
3384 (sha256
3385 (base32
3386 "1dyxvpb73vj80v8br2q9rf255hfphrgaw91fbvwdcd735np9pcnh"))))
3387 (build-system emacs-build-system)
3388 (home-page "https://github.com/sabof/org-bullets")
3389 (synopsis "Show bullets in org-mode as UTF-8 characters")
3390 (description
3391 "This package provides an Emacs minor mode causing bullets in
3392 @code{org-mode} to be rendered as UTF-8 characters.")
3393 (license license:gpl3+)))
3394
3395 (define-public emacs-org-pomodoro
3396 (package
3397 (name "emacs-org-pomodoro")
3398 (version "2.1.0")
3399 (source
3400 (origin
3401 (method url-fetch)
3402 (uri (string-append
3403 "https://github.com/lolownia/org-pomodoro/archive/"
3404 version ".tar.gz"))
3405 (file-name (string-append name "-" version ".tar.gz"))
3406 (sha256
3407 (base32
3408 "1jalsggw3q5kvj353f84x4nl04a5vmq07h75ggppy1627lb31zm4"))))
3409 (build-system emacs-build-system)
3410 (propagated-inputs
3411 `(("emacs-alert" ,emacs-alert)))
3412 (home-page "https://github.com/lolownia/org-pomodoro")
3413 (synopsis "Pomodoro technique for org-mode")
3414 (description "@code{emacs-org-pomodoro} adds very basic support for
3415 Pomodoro technique in Emacs org-mode.
3416
3417 Run @code{M-x org-pomodoro} for the task at point or select one of the
3418 last tasks that you clocked time for. Each clocked-in pomodoro starts
3419 a timer of 25 minutes and after each pomodoro a break timer of 5
3420 minutes is started automatically. Every 4 breaks a long break is
3421 started with 20 minutes. All values are customizable.")
3422 (license license:gpl3+)))
3423
3424 (define-public emacs-org-trello
3425 (package
3426 (name "emacs-org-trello")
3427 (version "0.8.0")
3428 (source (origin
3429 (method url-fetch)
3430 (uri (string-append
3431 "https://github.com/org-trello/org-trello/archive/"
3432 version ".tar.gz"))
3433 (file-name (string-append name "-" version ".tar.gz"))
3434 (sha256
3435 (base32
3436 "0549mnf5cgwn8b8jbl38fljbaxmh1605sv9j8f3lsa95jhs1zpa0"))))
3437 (build-system emacs-build-system)
3438 (propagated-inputs
3439 `(("emacs-dash" ,emacs-dash)
3440 ("emacs-deferred" ,emacs-deferred)
3441 ("emacs-f" ,emacs-f)
3442 ("emacs-helm" ,emacs-helm)
3443 ("emacs-request" ,emacs-request)
3444 ("emacs-s" ,emacs-s)))
3445 (home-page "https://org-trello.github.io")
3446 (synopsis "Emacs minor mode for interacting with Trello")
3447 (description "This package provides an Emacs minor mode to extend
3448 @code{org-mode} with Trello abilities. Trello is an online project
3449 organizer.")
3450 (license license:gpl3+)))
3451
3452 (define-public emacs-atom-one-dark-theme
3453 (let ((commit "1f1185bf667a38d3d0d180ce85fd4c131818aae2")
3454 (revision "0"))
3455 (package
3456 (name "emacs-atom-one-dark-theme")
3457 (version (git-version "0.4.0" revision commit))
3458 (source (origin
3459 (method git-fetch)
3460 (uri (git-reference
3461 (url "https://github.com/jonathanchu/atom-one-dark-theme.git")
3462 (commit commit)))
3463 (sha256
3464 (base32
3465 "1alma16hg3mfjly8a9s3mrswkjjx4lrpdnf43869hn2ibkn7zx9z"))
3466 (file-name (git-file-name name version))))
3467 (build-system emacs-build-system)
3468 (home-page "https://github.com/jonathanchu/atom-one-dark-theme")
3469 (synopsis "Atom One Dark color theme for Emacs")
3470 (description "An Emacs port of the Atom One Dark theme from Atom.io.")
3471 (license license:gpl3+))))
3472
3473 (define-public emacs-zenburn-theme
3474 (package
3475 (name "emacs-zenburn-theme")
3476 (version "2.6")
3477 (source (origin
3478 (method url-fetch)
3479 (uri (string-append
3480 "https://github.com/bbatsov/zenburn-emacs/archive/v"
3481 version ".tar.gz"))
3482 (file-name (string-append name "-" version ".tar.gz"))
3483 (sha256
3484 (base32
3485 "0qc9d1rwq55yzh8shbppyd6izy1grpyr8kqh5zdgm7c5jccngpr4"))))
3486 (build-system emacs-build-system)
3487 (home-page "https://github.com/bbatsov/zenburn-emacs")
3488 (synopsis "Low contrast color theme for Emacs")
3489 (description
3490 "Zenburn theme is a port of the popular Vim Zenburn theme for Emacs.
3491 It is built on top of the custom theme support in Emacs 24 or later.")
3492 (license license:gpl3+)))
3493
3494 (define-public emacs-solarized-theme
3495 (package
3496 (name "emacs-solarized-theme")
3497 (version "1.2.2")
3498 (source (origin
3499 (method url-fetch)
3500 (uri (string-append "https://github.com/bbatsov/solarized-emacs/"
3501 "archive/v" version ".tar.gz"))
3502 (file-name (string-append name "-" version ".tar.gz"))
3503 (sha256
3504 (base32
3505 "1ha3slc6d9wi9ilkhmwrzkvf308n6ph7b0k69pk369s9304awxzx"))))
3506 (build-system emacs-build-system)
3507 (propagated-inputs
3508 `(("emacs-dash" ,emacs-dash)))
3509 (home-page "https://github.com/bbatsov/solarized-emacs")
3510 (synopsis "Port of the Solarized theme for Emacs")
3511 (description
3512 "Solarized for Emacs is a port of the Solarized theme for Vim. This
3513 package provides a light and a dark variant.")
3514 (license license:gpl3+)))
3515
3516 (define-public emacs-ahungry-theme
3517 (package
3518 (name "emacs-ahungry-theme")
3519 (version "1.10.0")
3520 (source
3521 (origin (method url-fetch)
3522 (uri (string-append "https://elpa.gnu.org/packages/ahungry-theme-"
3523 version ".tar"))
3524 (sha256
3525 (base32
3526 "14q5yw56n82qph09bk7wmj5b1snhh9w0nk5s1l7yn9ldg71xq6pm"))))
3527 (build-system emacs-build-system)
3528 (home-page "https://github.com/ahungry/color-theme-ahungry")
3529 (synopsis "Ahungry color theme for Emacs")
3530 (description "Ahungry theme for Emacs provides bright and bold colors.
3531 If you load it from a terminal, you will be able to make use of the
3532 transparent background. If you load it from a GUI, it will default to a
3533 dark background.")
3534 (license license:gpl3+)))
3535
3536 (define-public emacs-2048-game
3537 (package
3538 (name "emacs-2048-game")
3539 (version "20151026.1233")
3540 (source
3541 (origin
3542 (method url-fetch)
3543 (uri (string-append "https://melpa.org/packages/2048-game-"
3544 version ".el"))
3545 (sha256
3546 (base32
3547 "0gy2pvz79whpavp4jmz8h9krzn7brmvv3diixi1d4w51pcdvaldd"))))
3548 (build-system emacs-build-system)
3549 (home-page "https://bitbucket.org/zck/2048.el")
3550 (synopsis "Implementation of the game 2048 in Emacs Lisp")
3551 (description
3552 "This program is an implementation of 2048 for Emacs.
3553 The goal of this game is to create a tile with value 2048. The size of the
3554 board and goal value can be customized.")
3555 (license license:gpl3+)))
3556
3557 (define-public emacs-base16-theme
3558 (package
3559 (name "emacs-base16-theme")
3560 (version "2.1")
3561 (source
3562 (origin
3563 (method url-fetch)
3564 (uri (string-append "https://stable.melpa.org/packages/base16-theme-"
3565 version ".tar"))
3566 (sha256
3567 (base32
3568 "0z6hrwz2jlz6jbr381rcqcqvx6hss5cad352klx07rark7zccacj"))))
3569 (build-system emacs-build-system)
3570 (home-page "https://github.com/belak/base16-emacs")
3571 (synopsis "Base16 color themes for Emacs")
3572 (description
3573 "Base16 provides carefully chosen syntax highlighting and a default set
3574 of sixteen colors suitable for a wide range of applications. Base16 is not a
3575 single theme but a set of guidelines with numerous implementations.")
3576 (license license:expat)))
3577
3578 (define-public emacs-smartparens
3579 (package
3580 (name "emacs-smartparens")
3581 (version "1.11.0")
3582 (source (origin
3583 (method url-fetch)
3584 (uri (string-append
3585 "https://github.com/Fuco1/smartparens/archive/"
3586 version ".tar.gz"))
3587 (file-name (string-append name "-" version ".tar.gz"))
3588 (sha256
3589 (base32
3590 "0q5as813xs8y29i3v2rm97phd6m7xsmmw6hwbvx57gwmi8i1c409"))))
3591 (build-system emacs-build-system)
3592 (propagated-inputs
3593 `(("emacs-dash" ,emacs-dash)
3594 ("emacs-markdown-mode" ,emacs-markdown-mode)))
3595 (home-page "https://github.com/Fuco1/smartparens")
3596 (synopsis "Paredit-like insertion, wrapping and navigation with user
3597 defined pairs")
3598 (description
3599 "Smartparens is a minor mode for Emacs that deals with parens pairs
3600 and tries to be smart about it. It started as a unification effort to
3601 combine functionality of several existing packages in a single,
3602 compatible and extensible way to deal with parentheses, delimiters, tags
3603 and the like. Some of these packages include autopair, textmate,
3604 wrap-region, electric-pair-mode, paredit and others. With the basic
3605 features found in other packages it also brings many improvements as
3606 well as completely new features.")
3607 (license license:gpl3+)))
3608
3609 (define-public emacs-highlight-symbol
3610 (package
3611 (name "emacs-highlight-symbol")
3612 (version "1.3")
3613 (source (origin
3614 (method url-fetch)
3615 (uri (string-append
3616 "https://github.com/nschum/highlight-symbol.el/archive/"
3617 version ".tar.gz"))
3618 (file-name (string-append name "-" version ".tar.gz"))
3619 (sha256
3620 (base32
3621 "1n7k1qns0fn0jsyc0hrjac5nzk21xw48yc30vyrhwvc51h0b9g90"))))
3622 (build-system emacs-build-system)
3623 (home-page "https://nschum.de/src/emacs/highlight-symbol")
3624 (synopsis "Automatic and manual symbol highlighting for Emacs")
3625 (description
3626 "Use @code{highlight-symbol} to toggle highlighting of the symbol at
3627 point throughout the current buffer. Use @code{highlight-symbol-mode} to keep
3628 the symbol at point highlighted.
3629
3630 The functions @code{highlight-symbol-next}, @code{highlight-symbol-prev},
3631 @code{highlight-symbol-next-in-defun} and
3632 @code{highlight-symbol-prev-in-defun} allow for cycling through the locations
3633 of any symbol at point. Use @code{highlight-symbol-nav-mode} to enable key
3634 bindings @code{M-p} and @code{M-p} for navigation. When
3635 @code{highlight-symbol-on-navigation-p} is set, highlighting is triggered
3636 regardless of @code{highlight-symbol-idle-delay}.
3637
3638 @code{highlight-symbol-query-replace} can be used to replace the symbol. ")
3639 (license license:gpl2+)))
3640
3641 (define-public emacs-hl-todo
3642 (package
3643 (name "emacs-hl-todo")
3644 (version "1.9.0")
3645 (source (origin
3646 (method url-fetch)
3647 (uri (string-append
3648 "https://raw.githubusercontent.com/tarsius/hl-todo/"
3649 version "/hl-todo.el"))
3650 (file-name (string-append "hl-todo-" version ".el"))
3651 (sha256
3652 (base32
3653 "0728givzh7xv5i88ac9if8byj1p8bilrj1fnizca10s0rv100hdr"))))
3654 (build-system emacs-build-system)
3655 (home-page "https://github.com/tarsius/hl-todo")
3656 (synopsis "Emacs mode to highlight TODO and similar keywords")
3657 (description
3658 "This package provides an Emacs mode to highlight TODO and similar
3659 keywords in comments and strings. This package also provides commands for
3660 moving to the next or previous keyword and to invoke @code{occur} with a
3661 regexp that matches all known keywords.")
3662 (license license:gpl3+)))
3663
3664 (define-public emacs-perspective
3665 (package
3666 (name "emacs-perspective")
3667 (version "1.12")
3668 (source
3669 (origin
3670 (method url-fetch)
3671 (uri (string-append "https://github.com/nex3/perspective-el/"
3672 "archive/" version ".tar.gz"))
3673 (file-name (string-append name "-" version ".tar.gz"))
3674 (sha256
3675 (base32
3676 "078ahh0kmhdylq5ib9c81c76kz1n02xwc83pm729d00i84ibviic"))))
3677 (build-system emacs-build-system)
3678 (home-page "https://github.com/nex3/perspective-el")
3679 (synopsis "Switch between named \"perspectives\"")
3680 (description
3681 "This package provides tagged workspaces in Emacs, similar to workspaces in
3682 windows managers such as Awesome and XMonad. @code{perspective.el} provides
3683 multiple workspaces (or \"perspectives\") for each Emacs frame. Each
3684 perspective is composed of a window configuration and a set of buffers.
3685 Switching to a perspective activates its window configuration, and when in a
3686 perspective only its buffers are available by default.")
3687 ;; This package is released under the same license as Emacs (GPLv3+) or
3688 ;; the Expat license.
3689 (license license:gpl3+)))
3690
3691 (define-public emacs-test-simple
3692 (package
3693 (name "emacs-test-simple")
3694 (version "1.3.0")
3695 (source
3696 (origin
3697 (method url-fetch)
3698 (uri (string-append "https://elpa.gnu.org/packages/test-simple-"
3699 version ".el"))
3700 (sha256
3701 (base32
3702 "1yd61jc9ds95a5n09052kwc5gasy57g4lxr0jsff040brlyi9czz"))))
3703 (build-system emacs-build-system)
3704 (home-page "https://github.com/rocky/emacs-test-simple")
3705 (synopsis "Simple unit test framework for Emacs Lisp")
3706 (description
3707 "Test Simple is a simple unit test framework for Emacs Lisp. It
3708 alleviates the need for context macros, enclosing specifications or required
3709 test tags. It supports both interactive and non-interactive use.")
3710 (license license:gpl3+)))
3711
3712 (define-public emacs-load-relative
3713 (package
3714 (name "emacs-load-relative")
3715 (version "1.3")
3716 (source
3717 (origin
3718 (method url-fetch)
3719 (uri (string-append "https://elpa.gnu.org/packages/load-relative-"
3720 version ".el"))
3721 (sha256
3722 (base32
3723 "1hfxb2436jdsi9wfmsv47lkkpa5galjf5q81bqabbsv79rv59dps"))))
3724 (build-system emacs-build-system)
3725 (home-page "http://github.com/rocky/emacs-load-relative")
3726 (synopsis "Emacs Lisp relative file loading related functions")
3727 (description
3728 "Provides functions which facilitate writing multi-file Emacs packages
3729 and running from the source tree without having to \"install\" code or fiddle
3730 with @{load-path}.
3731
3732 The main function, @code{load-relative}, loads an Emacs Lisp file relative to
3733 another (presumably currently running) Emacs Lisp file.")
3734 (license license:gpl3+)))
3735
3736 (define-public emacs-loc-changes
3737 (package
3738 (name "emacs-loc-changes")
3739 (version "1.2")
3740 (source
3741 (origin
3742 (method url-fetch)
3743 (uri (string-append "https://elpa.gnu.org/packages/loc-changes-"
3744 version ".el"))
3745 (sha256
3746 (base32
3747 "1x8fn8vqasayf1rb8a6nma9n6nbvkx60krmiahyb05vl5rrsw6r3"))))
3748 (build-system emacs-build-system)
3749 (home-page "https://github.com/rocky/emacs-loc-changes")
3750 (synopsis "Keeps track of positions even after buffer changes")
3751 (description
3752 "This Emacs package provides a mean to track important buffer positions
3753 after buffer changes.")
3754 (license license:gpl3+)))
3755
3756 (define-public emacs-realgud
3757 (package
3758 (name "emacs-realgud")
3759 (version "1.4.5")
3760 (source
3761 (origin
3762 (method url-fetch)
3763 (uri (string-append "https://elpa.gnu.org/packages/realgud-"
3764 version ".tar"))
3765 (sha256
3766 (base32
3767 "108wgxg7fb4byaiasgvbxv2hq7b00biq9f0mh9hy6vw4160y5w24"))
3768 (patches
3769 ;; Patch awaiting inclusion upstream (see:
3770 ;; https://github.com/realgud/realgud/pull/226).
3771 (search-patches "emacs-realgud-fix-configure-ac.patch"))))
3772 (build-system emacs-build-system)
3773 (arguments
3774 `(#:tests? #t
3775 #:phases
3776 (modify-phases %standard-phases
3777 (add-after 'set-emacs-load-path 'fix-autogen-script
3778 (lambda _
3779 (substitute* "autogen.sh"
3780 (("./configure") "sh configure"))))
3781 (add-after 'fix-autogen-script 'autogen
3782 (lambda _
3783 (setenv "CONFIG_SHELL" "sh")
3784 (invoke "sh" "autogen.sh")))
3785 (add-after 'fix-autogen-script 'set-home
3786 (lambda _
3787 (setenv "HOME" (getenv "TMPDIR"))))
3788 (add-before 'patch-el-files 'remove-realgud-pkg.el
3789 (lambda _
3790 ;; XXX: This file is auto-generated at some point and causes
3791 ;; substitute* to crash during the `patch-el-files' phase with:
3792 ;; ERROR: In procedure stat: No such file or directory:
3793 ;; "./realgud-pkg.el"
3794 (delete-file "./realgud-pkg.el")
3795 ;; FIXME: `patch-el-files' crashes on this file with error:
3796 ;; unable to locate "bashdb".
3797 (delete-file "./test/test-regexp-bashdb.el"))))
3798 #:include (cons* ".*\\.el$" %default-include)))
3799 (native-inputs
3800 `(("autoconf" ,autoconf)
3801 ("automake" ,automake)
3802 ("emacs-test-simple" ,emacs-test-simple)))
3803 (propagated-inputs
3804 `(("emacs-load-relative" ,emacs-load-relative)
3805 ("emacs-loc-changes" ,emacs-loc-changes)))
3806 (home-page "https://github.com/realgud/realgud/")
3807 (synopsis
3808 "Modular front-end for interacting with external debuggers")
3809 (description
3810 "RealGUD is a modular, extensible GNU Emacs front-end for interacting
3811 with external debuggers. It integrates various debuggers such as gdb, pdb,
3812 ipdb, jdb, lldb, bashdb, zshdb, etc. and allows to visually step code in the
3813 sources. Unlike GUD, it also supports running multiple debug sessions in
3814 parallel.")
3815 (license license:gpl3+)))
3816
3817 (define-public emacs-request
3818 (package
3819 (name "emacs-request")
3820 (version "0.3.0")
3821 (source (origin
3822 (method git-fetch)
3823 (uri (git-reference
3824 (url "https://github.com/tkf/emacs-request.git")
3825 (commit (string-append "v" version))))
3826 (file-name (string-append name "-" version "-checkout"))
3827 (sha256
3828 (base32
3829 "0wyxqbb35yqf6ci47531lk32d6fppamx9d8826kdz983vm87him7"))))
3830 (build-system emacs-build-system)
3831 (propagated-inputs
3832 `(("emacs-deferred" ,emacs-deferred)))
3833 (home-page "https://github.com/tkf/emacs-request")
3834 (synopsis "Package for speaking HTTP in Emacs Lisp")
3835 (description "This package provides a HTTP request library with multiple
3836 backends. It supports url.el which is shipped with Emacs and the curl command
3837 line program.")
3838 (license license:gpl3+)))
3839
3840 (define-public emacs-rudel
3841 (package
3842 (name "emacs-rudel")
3843 (version "0.3.1")
3844 (source
3845 (origin
3846 (method url-fetch)
3847 (uri (string-append "http://elpa.gnu.org/packages/rudel-"
3848 version ".tar"))
3849 (sha256
3850 (base32
3851 "0glqa68g509p0s2vcc0i8kzlddnc9brd9jqhnm5rzxz4i050cvnz"))))
3852 (build-system emacs-build-system)
3853 (home-page "http://rudel.sourceforge.net/")
3854 (synopsis "Collaborative editing framework")
3855 (description
3856 "Rudel is a collaborative editing environment for GNU Emacs. Its purpose
3857 is to share buffers with other users in order to edit the contents of those
3858 buffers collaboratively. Rudel supports multiple backends to enable
3859 communication with other collaborative editors using different protocols,
3860 though currently Obby (for use with the Gobby editor) is the only
3861 fully-functional one.")
3862 (license license:gpl3+)))
3863
3864 (define-public emacs-hydra
3865 (package
3866 (name "emacs-hydra")
3867 (version "0.14.0")
3868 (source
3869 (origin
3870 (method git-fetch)
3871 (uri (git-reference
3872 (url "https://github.com/abo-abo/hydra")
3873 (commit version)))
3874 (file-name (git-file-name name version))
3875 (sha256
3876 (base32
3877 "0ln4z2796ycy33g5jcxkqvm7638qxy4sipsab7d2864hh700cikg"))))
3878 (build-system emacs-build-system)
3879 (home-page "https://github.com/abo-abo/hydra")
3880 (synopsis "Make Emacs bindings that stick around")
3881 (description
3882 "This package can be used to tie related commands into a family of short
3883 bindings with a common prefix---a Hydra. Once you summon the Hydra (through
3884 the prefixed binding), all the heads can be called in succession with only a
3885 short extension. Any binding that isn't the Hydra's head vanquishes the
3886 Hydra. Note that the final binding, besides vanquishing the Hydra, will still
3887 serve its original purpose, calling the command assigned to it. This makes
3888 the Hydra very seamless; it's like a minor mode that disables itself
3889 automatically.")
3890 (license license:gpl3+)))
3891
3892 (define-public emacs-ivy
3893 (package
3894 (name "emacs-ivy")
3895 (version "0.10.0")
3896 (source
3897 (origin
3898 (method git-fetch)
3899 (uri (git-reference
3900 (url "https://github.com/abo-abo/swiper.git")
3901 (commit version)))
3902 (file-name (string-append name "-" version "-checkout"))
3903 (sha256
3904 (base32
3905 "14vnigqb5c3yi4q9ysw1fiwdqyqwyklqpb9wnjf81chm7s2mshnr"))))
3906 (build-system emacs-build-system)
3907 (arguments
3908 `(#:phases
3909 (modify-phases %standard-phases
3910 (add-after 'install 'install-doc
3911 (lambda* (#:key outputs #:allow-other-keys)
3912 (let* ((out (assoc-ref outputs "out"))
3913 (info (string-append out "/share/info")))
3914 (with-directory-excursion "doc"
3915 (invoke "makeinfo" "ivy.texi")
3916 (install-file "ivy.info" info)
3917 #t)))))))
3918 (propagated-inputs
3919 `(("emacs-hydra" ,emacs-hydra)))
3920 (native-inputs
3921 `(("texinfo" ,texinfo)))
3922 (home-page "http://oremacs.com/swiper/")
3923 (synopsis "Incremental vertical completion for Emacs")
3924 (description
3925 "This package provides @code{ivy-read} as an alternative to
3926 @code{completing-read} and similar functions. No attempt is made to determine
3927 the best candidate. Instead, the user can navigate candidates with
3928 @code{ivy-next-line} and @code{ivy-previous-line}. The matching is done by
3929 splitting the input text by spaces and re-building it into a regular
3930 expression.")
3931 (license license:gpl3+)))
3932
3933 (define-public emacs-ivy-yasnippet
3934 (let ((commit "32580b4fd23ebf9ca7dde96704f7d53df6e253cd")
3935 (revision "2"))
3936 (package
3937 (name "emacs-ivy-yasnippet")
3938 (version (git-version "0.1" revision commit))
3939 (source
3940 (origin
3941 (method git-fetch)
3942 (uri (git-reference
3943 (url "https://github.com/mkcms/ivy-yasnippet.git")
3944 (commit commit)))
3945 (file-name (git-file-name name version))
3946 (sha256
3947 (base32
3948 "1wfg6mmd5gl1qgvayyzpxlkh9s7jgn20y8l1vh1zbj1czvv51xp8"))))
3949 (build-system emacs-build-system)
3950 (propagated-inputs
3951 `(("emacs-ivy" ,emacs-ivy)
3952 ("emacs-yasnippet" ,emacs-yasnippet)
3953 ("emacs-dash" ,emacs-dash)))
3954 (home-page "https://github.com/mkcms/ivy-yasnippet")
3955 (synopsis "Preview @code{yasnippets} with @code{ivy}")
3956 (description "This package allows you to select @code{yasnippet}
3957 snippets using @code{ivy} completion. When current selection changes in the
3958 minibuffer, the snippet contents are temporarily expanded in the buffer. To
3959 use it, call @code{M-x ivy-yasnippet} (but make sure you have enabled
3960 @code{yas-minor-mode} first).")
3961 (license license:gpl3+))))
3962
3963 (define-public emacs-ivy-rich
3964 (package
3965 (name "emacs-ivy-rich")
3966 (version "0.1.0")
3967 (source
3968 (origin
3969 (method url-fetch)
3970 (uri (string-append "https://github.com/Yevgnen/ivy-rich/archive/"
3971 version ".tar.gz"))
3972 (file-name (string-append name "-" version ".tar.gz"))
3973 (sha256
3974 (base32
3975 "14r3mx5rkd4wz0ls5pv5w6c7la3z9iy93d3jfind3xyg4kywy95c"))))
3976 (build-system emacs-build-system)
3977 (propagated-inputs
3978 `(("emacs-ivy" ,emacs-ivy)))
3979 (home-page "https://github.com/Yevgnen/ivy-rich")
3980 (synopsis "More friendly interface for @code{ivy}")
3981 (description
3982 "This package extends @code{ivy} by showing more information in the
3983 minibuffer for each candidate. It adds columns showing buffer modes, file
3984 sizes, docstrings, etc. If @code{emacs-all-the-icons} is installed, it can
3985 show icons as well.")
3986 (license license:gpl3+)))
3987
3988 (define-public emacs-avy
3989 (package
3990 (name "emacs-avy")
3991 (version "0.4.0")
3992 (source
3993 (origin
3994 (method url-fetch)
3995 (uri (string-append "https://github.com/abo-abo/avy/archive/"
3996 version ".tar.gz"))
3997 (file-name (string-append name "-" version ".tar.gz"))
3998 (sha256
3999 (base32
4000 "1wdrq512h25ymzjbf2kbsdymvd2ryfwzb6bh5bc3yv7q203im796"))))
4001 (build-system emacs-build-system)
4002 (home-page "https://github.com/abo-abo/avy")
4003 (synopsis "Tree-based completion for Emacs")
4004 (description
4005 "This package provides a generic completion method based on building a
4006 balanced decision tree with each candidate being a leaf. To traverse the tree
4007 from the root to a desired leaf, typically a sequence of @code{read-key} can
4008 be used.
4009
4010 In order for @code{read-key} to make sense, the tree needs to be visualized
4011 appropriately, with a character at each branch node. So this completion
4012 method works only for things that you can see on your screen, all at once,
4013 such as the positions of characters, words, line beginnings, links, or
4014 windows.")
4015 (license license:gpl3+)))
4016
4017 (define-public emacs-ace-window
4018 (package
4019 (name "emacs-ace-window")
4020 (version "0.9.0")
4021 (source
4022 (origin
4023 (method url-fetch)
4024 (uri (string-append "https://github.com/abo-abo/ace-window/archive/"
4025 version ".tar.gz"))
4026 (file-name (string-append name "-" version ".tar.gz"))
4027 (sha256
4028 (base32
4029 "1p2sgfl5dml4zbd6ldql6lm2m9vmd236ah996ni32x254s48j5pn"))))
4030 (build-system emacs-build-system)
4031 (propagated-inputs
4032 `(("emacs-avy" ,emacs-avy)))
4033 (home-page "https://github.com/abo-abo/ace-window")
4034 (synopsis "Quickly switch windows in Emacs")
4035 (description
4036 "@code{ace-window} is meant to replace @code{other-window}.
4037 In fact, when there are only two windows present, @code{other-window} is
4038 called. If there are more, each window will have its first character
4039 highlighted. Pressing that character will switch to that window.")
4040 (license license:gpl3+)))
4041
4042 (define-public emacs-iedit
4043 (package
4044 (name "emacs-iedit")
4045 (version "0.9.9.9")
4046 (source
4047 (origin
4048 (method url-fetch)
4049 (uri (string-append "https://github.com/victorhge/iedit/archive/v"
4050 version ".tar.gz"))
4051 (file-name (string-append name "-" version ".tar.gz"))
4052 (sha256
4053 (base32
4054 "1hv8q6pr85ss9g3158l1fqv3m62vsq8rslsi86jicr2dcxyascr0"))))
4055 (build-system emacs-build-system)
4056 (home-page "http://www.emacswiki.org/emacs/Iedit")
4057 (synopsis "Edit multiple regions in the same way simultaneously")
4058 (description
4059 "This package is an Emacs minor mode and allows you to edit one
4060 occurrence of some text in a buffer (possibly narrowed) or region, and
4061 simultaneously have other occurrences edited in the same way.
4062
4063 You can also use Iedit mode as a quick way to temporarily show only the buffer
4064 lines that match the current text being edited. This gives you the effect of
4065 a temporary @code{keep-lines} or @code{occur}.")
4066 (license license:gpl3+)))
4067
4068 (define-public emacs-zoutline
4069 (let ((commit "b3ee0f0e0b916838c2d2c249beba74ffdb8d5699")
4070 (revision "0"))
4071 (package
4072 (name "emacs-zoutline")
4073 (version (git-version "0.1" revision commit))
4074 (home-page "https://github.com/abo-abo/zoutline")
4075 (source (origin
4076 (method git-fetch)
4077 (uri (git-reference (url home-page) (commit commit)))
4078 (sha256
4079 (base32
4080 "0sd0017piw0dis6dhpq5dkqd3acisxqgipl7dj8gmc1vnswhdwr8"))
4081 (file-name (git-file-name name version))))
4082 (build-system emacs-build-system)
4083 (synopsis "Simple outline library")
4084 (description
4085 "This library provides helpers for outlines. Outlines allow users to
4086 navigate code in a tree-like fashion.")
4087 (license license:gpl3+))))
4088
4089 (define-public emacs-lispy
4090 ;; Release 0.26.0 was almost 3 years ago, and there have been ~772 commits
4091 ;; since.
4092 (let ((commit "c2a358a7a15fcf056a5b7461a8e690b481b03b80")
4093 (revision "0"))
4094 (package
4095 (name "emacs-lispy")
4096 (version (git-version "0.26.0" revision commit))
4097 (home-page "https://github.com/abo-abo/lispy")
4098 (source (origin
4099 (method git-fetch)
4100 (uri (git-reference (url home-page) (commit commit)))
4101 (sha256
4102 (base32
4103 "1g6756qqx2n4cx8jac6mlwayilsiyc5rz8nrqjnywvzc75xdinjd"))
4104 (file-name (git-file-name name version))))
4105 (build-system emacs-build-system)
4106 (propagated-inputs
4107 `(("emacs-ace-window" ,emacs-ace-window)
4108 ("emacs-iedit" ,emacs-iedit)
4109 ("emacs-ivy" ,emacs-ivy)
4110 ("emacs-hydra" ,emacs-hydra)
4111 ("emacs-zoutline" ,emacs-zoutline)))
4112 (synopsis "Modal S-expression editing")
4113 (description
4114 "Due to the structure of Lisp syntax it's very rare for the programmer
4115 to want to insert characters right before \"(\" or right after \")\". Thus
4116 unprefixed printable characters can be used to call commands when the point is
4117 at one of these special locations. Lispy provides unprefixed keybindings for
4118 S-expression editing when point is at the beginning or end of an
4119 S-expression.")
4120 (license license:gpl3+))))
4121
4122 (define-public emacs-lispyville
4123 ;; Later versions need a more recent Evil, with an evil-define-key*
4124 ;; supporting nil for the state.
4125 (let ((commit "b4291857ed6a49a67c4ea77522889ce51fb171ab")
4126 (revision "0"))
4127 (package
4128 (name "emacs-lispyville")
4129 (version (git-version "0.1" revision commit))
4130 (home-page "https://github.com/noctuid/lispyville")
4131 (source (origin
4132 (method git-fetch)
4133 (uri (git-reference (url home-page) (commit commit)))
4134 (sha256
4135 (base32
4136 "095zibzc3naknahdrnb59g9rbljy8wz9rkc7rf8avb3wxlwvxhm3"))
4137 (file-name (git-file-name name version))))
4138 (propagated-inputs
4139 `(("emacs-evil" ,emacs-evil)
4140 ("emacs-lispy" ,emacs-lispy)))
4141 (build-system emacs-build-system)
4142 (synopsis "Minor mode for integrating Evil with lispy")
4143 (description
4144 "LispyVille's main purpose is to provide a Lisp editing environment
4145 suited towards Evil users. It can serve as a minimal layer on top of lispy
4146 for better integration with Evil, but it does not require the use of lispy’s
4147 keybinding style. The provided commands allow for editing Lisp in normal
4148 state and will work even without lispy being enabled.")
4149 (license license:gpl3+))))
4150
4151 (define-public emacs-clojure-mode
4152 (package
4153 (name "emacs-clojure-mode")
4154 (version "5.6.1")
4155 (source (origin
4156 (method url-fetch)
4157 (uri (string-append
4158 "https://github.com/clojure-emacs/clojure-mode/archive/"
4159 version ".tar.gz"))
4160 (file-name (string-append name "-" version ".tar.gz"))
4161 (sha256
4162 (base32
4163 "1f4k1hncy5ygh4izn7mqfp744nnisrp9ywn2njknbjxx34ai1q88"))))
4164 (build-system emacs-build-system)
4165 (native-inputs
4166 `(("emacs-dash" ,emacs-dash)
4167 ("emacs-s" ,emacs-s)
4168 ("ert-runner" ,emacs-ert-runner)))
4169 (arguments
4170 `(#:tests? #t
4171 #:test-command '("ert-runner")))
4172 (home-page "https://github.com/clojure-emacs/clojure-mode")
4173 (synopsis "Major mode for Clojure code")
4174 (description
4175 "This Emacs package provides font-lock, indentation, navigation and basic
4176 refactoring for the @uref{http://clojure.org, Clojure programming language}.
4177 It is recommended to use @code{clojure-mode} with paredit or smartparens.")
4178 (license license:gpl3+)))
4179
4180 (define-public emacs-epl
4181 (package
4182 (name "emacs-epl")
4183 (version "0.8")
4184 (source (origin
4185 (method url-fetch)
4186 (uri (string-append
4187 "https://github.com/cask/epl/archive/"
4188 version ".tar.gz"))
4189 (file-name (string-append name "-" version ".tar.gz"))
4190 (sha256
4191 (base32
4192 "1511n3a3f5gvaf2b4nh018by61ciyzi3y3603fzqma7p9hrckarc"))))
4193 (build-system emacs-build-system)
4194 (home-page "https://github.com/cask/epl")
4195 (synopsis "Emacs Package Library")
4196 (description
4197 "A package management library for Emacs, based on @code{package.el}.
4198
4199 The purpose of this library is to wrap all the quirks and hassle of
4200 @code{package.el} into a sane API.")
4201 (license license:gpl3+)))
4202
4203 (define-public emacs-queue
4204 (package
4205 (name "emacs-queue")
4206 (version "0.2")
4207 (source (origin
4208 (method url-fetch)
4209 (uri (string-append "https://elpa.gnu.org/packages/queue-"
4210 version ".el"))
4211 (sha256
4212 (base32
4213 "0cx2848sqnnkkr4zisvqadzxngjyhmb36mh0q3if7q19yjjhmrkb"))))
4214 (build-system emacs-build-system)
4215 (home-page "http://www.dr-qubit.org/tags/computing-code-emacs.html")
4216 (synopsis "Queue data structure for Emacs")
4217 (description
4218 "This Emacs library provides queue data structure. These queues can be
4219 used both as a first-in last-out (FILO) and as a first-in first-out (FIFO)
4220 stack, i.e. elements can be added to the front or back of the queue, and can
4221 be removed from the front. This type of data structure is sometimes called an
4222 \"output-restricted deque\".")
4223 (license license:gpl3+)))
4224
4225 (define-public emacs-pkg-info
4226 (package
4227 (name "emacs-pkg-info")
4228 (version "0.6")
4229 (source (origin
4230 (method url-fetch)
4231 (uri (string-append
4232 "https://github.com/lunaryorn/pkg-info.el/archive/"
4233 version ".tar.gz"))
4234 (file-name (string-append name "-" version ".tar.gz"))
4235 (sha256
4236 (base32
4237 "1gy1jks5mmm02gg1c8gcyr4f8a9s5ggzhk56gv33b9mzjqzi5rd5"))))
4238 (build-system emacs-build-system)
4239 (propagated-inputs `(("emacs-epl" ,emacs-epl)))
4240 (home-page "https://github.com/lunaryorn/pkg-info.el")
4241 (synopsis "Information about Emacs packages")
4242 (description
4243 "This library extracts information from the installed Emacs packages.")
4244 (license license:gpl3+)))
4245
4246 (define-public emacs-spinner
4247 (package
4248 (name "emacs-spinner")
4249 (version "1.7.3")
4250 (source (origin
4251 (method url-fetch)
4252 (uri (string-append "https://elpa.gnu.org/packages/spinner-"
4253 version ".el"))
4254 (sha256
4255 (base32
4256 "19kp1mmndbmw11sgvv2ggfjl4pyf5zrsbh3871f0965pw9z8vahd"))))
4257 (build-system emacs-build-system)
4258 (home-page "https://github.com/Malabarba/spinner.el")
4259 (synopsis "Emacs mode-line spinner for operations in progress")
4260 (description
4261 "This Emacs package adds spinners and progress-bars to the mode-line for
4262 ongoing operations.")
4263 (license license:gpl3+)))
4264
4265 (define-public emacs-sparql-mode
4266 (package
4267 (name "emacs-sparql-mode")
4268 (version "2.0.1")
4269 (source (origin
4270 (method url-fetch)
4271 (uri (string-append "https://github.com/ljos/sparql-mode/archive/"
4272 "v" version ".tar.gz"))
4273 (file-name (string-append name "-" version ".tar.gz"))
4274 (sha256
4275 (base32
4276 "1s93mkllxnhy7fw616cnnc2danacdlarys0g3cn89drh0llh53cv"))))
4277 (build-system emacs-build-system)
4278 (home-page "https://github.com/ljos/sparql-mode")
4279 (synopsis "SPARQL mode for Emacs")
4280 (description "This package provides a major mode for Emacs that provides
4281 syntax highlighting for SPARQL. It also provides a way to execute queries
4282 against a SPARQL HTTP endpoint, such as is provided by Fuseki. It is also
4283 possible to query other endpoints like DBPedia.")
4284 (license license:gpl3+)))
4285
4286 (define-public emacs-better-defaults
4287 (package
4288 (name "emacs-better-defaults")
4289 (version "0.1.3")
4290 (source
4291 (origin
4292 (method url-fetch)
4293 (uri (string-append "https://github.com/technomancy/better-defaults"
4294 "/archive/" version ".tar.gz"))
4295 (file-name (string-append name "-" version ".tar.gz"))
4296 (sha256
4297 (base32
4298 "08fg4zslzlxbvyil5g4gwvwd22fh4zsgqprs5wh9hv1rgc6757m2"))))
4299 (build-system emacs-build-system)
4300 (home-page "https://github.com/technomancy/better-defaults")
4301 (synopsis "Better defaults for Emacs")
4302 (description
4303 "Better defaults attempts to address the most obvious deficiencies of the
4304 Emacs default configuration in uncontroversial ways that nearly everyone can
4305 agree upon.")
4306 (license license:gpl3+)))
4307
4308 (define-public emacs-eprime
4309 (let ((commit "17a481af26496be91c07139a9bfc05cfe722506f"))
4310 (package
4311 (name "emacs-eprime")
4312 (version (string-append "20140513-" (string-take commit 7)))
4313 (source (origin
4314 (method url-fetch)
4315 (uri (string-append "https://raw.githubusercontent.com"
4316 "/AndrewHynes/eprime-mode/"
4317 commit "/eprime-mode.el"))
4318 (file-name (string-append "eprime-" version ".el"))
4319 (sha256
4320 (base32
4321 "0v68lggkyq7kbcr9zyi573m2g2x251xy3jadlaw8kx02l8krwq8d"))))
4322 (build-system emacs-build-system)
4323 (home-page "https://github.com/AndrewHynes/eprime-mode")
4324 (synopsis "E-prime checking mode for Emacs")
4325 (description "This package provides an E-prime checking mode for Emacs
4326 that highlights non-conforming text. The subset of the English language called
4327 E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
4328 (license license:gpl3+))))
4329
4330 (define-public emacs-julia-mode
4331 ;; XXX: Upstream version remained stuck at 0.3. See
4332 ;; <https://github.com/JuliaEditorSupport/julia-emacs/issues/46>.
4333 (let ((commit "115d4dc8a07445301772da8376b232fa8c7168f4")
4334 (revision "1"))
4335 (package
4336 (name "emacs-julia-mode")
4337 (version (string-append "0.3-" revision "." (string-take commit 8)))
4338 (source
4339 (origin
4340 (method git-fetch)
4341 (uri (git-reference
4342 (url "https://github.com/JuliaEditorSupport/julia-emacs.git")
4343 (commit commit)))
4344 (file-name (string-append name "-" version "-checkout"))
4345 (sha256
4346 (base32
4347 "1is4dcv6blslpzbjcg8l2jpxi8xj96q4cm0nxjxsyswpm8bw8ki0"))))
4348 (build-system emacs-build-system)
4349 (arguments
4350 `(#:tests? #t
4351 #:test-command '("emacs" "--batch"
4352 "-l" "julia-mode-tests.el"
4353 "-f" "ert-run-tests-batch-and-exit")))
4354 (home-page "https://github.com/JuliaEditorSupport/julia-emacs")
4355 (synopsis "Major mode for Julia")
4356 (description "This Emacs package provides a mode for the Julia
4357 programming language.")
4358 (license license:expat))))
4359
4360 (define-public emacs-ess
4361 (package
4362 (name "emacs-ess")
4363 (version "17.11")
4364 (source (origin
4365 (method url-fetch)
4366 (uri (string-append "https://github.com/emacs-ess/ESS/archive/v"
4367 version ".tar.gz"))
4368 (sha256
4369 (base32
4370 "0cbilbsiwvcyf6d5y24mymp57m3ana5dkzab3knfs83w4a3a4c5c"))
4371 (file-name (string-append name "-" version ".tar.gz"))
4372 (modules '((guix build utils)))
4373 (snippet
4374 '(begin
4375 ;; Stop ESS from trying to bundle an external julia-mode.el.
4376 (substitute* "lisp/Makefile"
4377 (("^\tjulia-mode.elc\\\\\n") "")
4378 (("^dist: all julia-mode.el")
4379 "dist: all"))
4380 ;; No need to build docs in so many formats. Also, skipping
4381 ;; pdf lets us not pull in texlive.
4382 (substitute* "doc/Makefile"
4383 (("all : info text html pdf")
4384 "all : info")
4385 (("install: install-info install-other-docs")
4386 "install: install-info"))
4387 ;; Test fails upstream
4388 (substitute* "test/ess-r-tests.el"
4389 (("ert-deftest ess-r-namespaced-eval-no-srcref-in-errors ()")
4390 "ert-deftest ess-r-namespaced-eval-no-srcref-in-errors () :expected-result :failed"))
4391 #t))))
4392 (build-system gnu-build-system)
4393 (arguments
4394 (let ((base-directory "/share/emacs/site-lisp/guix.d/ess"))
4395 `(#:make-flags (list (string-append "PREFIX=" %output)
4396 (string-append "ETCDIR=" %output "/"
4397 ,base-directory "/etc")
4398 (string-append "LISPDIR=" %output "/"
4399 ,base-directory))
4400 #:phases
4401 (modify-phases %standard-phases
4402 (delete 'configure)
4403 (add-before 'build 'more-shebang-patching
4404 (lambda* (#:key inputs #:allow-other-keys)
4405 (substitute* "Makeconf"
4406 (("SHELL = /bin/sh")
4407 (string-append "SHELL = " (which "sh"))))
4408 #t))
4409 (replace 'check
4410 (lambda _
4411 (invoke "make" "test")))))))
4412 (inputs
4413 `(("emacs" ,emacs-minimal)
4414 ("r-minimal" ,r-minimal)))
4415 (native-inputs
4416 `(("perl" ,perl)
4417 ("texinfo" ,texinfo)))
4418 (propagated-inputs
4419 `(("emacs-julia-mode" ,emacs-julia-mode)))
4420 (home-page "https://ess.r-project.org/")
4421 (synopsis "Emacs mode for statistical analysis programs")
4422 (description "Emacs Speaks Statistics (ESS) is an add-on package for GNU
4423 Emacs. It is designed to support editing of scripts and interaction with
4424 various statistical analysis programs such as R, Julia, and JAGS.")
4425 (license license:gpl2+)))
4426
4427 (define-public emacs-smex
4428 (package
4429 (name "emacs-smex")
4430 (version "3.0")
4431 (source (origin
4432 (method url-fetch)
4433 (uri (string-append "https://raw.githubusercontent.com"
4434 "/nonsequitur/smex/" version "/smex.el"))
4435 (file-name (string-append "smex-" version ".el"))
4436 (sha256
4437 (base32
4438 "0ar310zx9k5y4i1vl2rawvi712xj9gx77160860jbs691p77cxqp"))))
4439 (build-system emacs-build-system)
4440 (home-page "https://github.com/nonsequitur/smex/")
4441 (synopsis "M-x interface with Ido-style fuzzy matching")
4442 (description
4443 "Smex is a M-x enhancement for Emacs. Built on top of Ido, it provides a
4444 convenient interface to your recently and most frequently used commands. And
4445 to all the other commands, too.")
4446 (license license:gpl3+)))
4447
4448 (define-public emacs-js2-mode
4449 (package
4450 (name "emacs-js2-mode")
4451 (version "20180301")
4452 (source (origin
4453 (method url-fetch)
4454 (uri (string-append "https://github.com/mooz/js2-mode/archive/"
4455 version ".tar.gz"))
4456 (file-name (string-append name "-" version ".tar.gz"))
4457 (sha256
4458 (base32
4459 "13aghgwaqrmbf3pbifcry52kya454wnh1gbdh5805n1n6xgjm5w3"))))
4460 (build-system emacs-build-system)
4461 (home-page "https://github.com/mooz/js2-mode/")
4462 (synopsis "Improved JavaScript editing mode for Emacs")
4463 (description
4464 "Js2-mode provides a JavaScript major mode for Emacs that is more
4465 advanced than the built-in javascript-mode. Features include accurate syntax
4466 highlighting using a recursive-descent parser, on-the-fly reporting of syntax
4467 errors and strict-mode warnings, smart line-wrapping within comments and
4468 strings, and code folding.")
4469 (license license:gpl3+)))
4470
4471 (define-public emacs-nodejs-repl
4472 (package
4473 (name "emacs-nodejs-repl")
4474 (version "0.2.0")
4475 (source (origin
4476 (method url-fetch)
4477 (uri (string-append "https://github.com/abicky/nodejs-repl.el"
4478 "/archive/" version ".tar.gz"))
4479 (sha256
4480 (base32
4481 "0hq2cqdq2668yf48g7qnkci90nhih1gnhacsgz355jnib56lhmkz"))
4482 (file-name (string-append name "-" version ".tar.gz"))))
4483 (build-system emacs-build-system)
4484 (home-page "https://github.com/abicky/nodejs-repl.el")
4485 (synopsis "Node.js REPL inside Emacs")
4486 (description
4487 "This program is derived from comint-mode and provides the following
4488 features:
4489
4490 @itemize
4491 @item TAB completion same as Node.js REPL
4492 @item file name completion in string
4493 @item incremental history search
4494 @end itemize")
4495 (license license:gpl3+)))
4496
4497 (define-public emacs-typescript-mode
4498 (package
4499 (name "emacs-typescript-mode")
4500 (version "0.3")
4501 (source (origin
4502 (method url-fetch)
4503 (uri (string-append
4504 "https://github.com/ananthakumaran/typescript.el"
4505 "/archive/v" version ".tar.gz"))
4506 (sha256
4507 (base32
4508 "1gqjirm8scf0wysm7x97zdfbs4qa5nqdl64jfbkd18iskv5mg3rj"))
4509 (file-name (string-append name "-" version ".tar.gz"))))
4510 (build-system emacs-build-system)
4511 (home-page "https://github.com/ananthakumaran/typescript.el")
4512 (synopsis "Emacs major mode for editing Typescript code")
4513 (description
4514 "This is based on Karl Landstrom's barebones @code{typescript-mode}.
4515 This is much more robust and works with @code{cc-mode}'s comment
4516 filling (mostly). The modifications to the original @code{javascript.el} mode
4517 mainly consisted in replacing \"javascript\" with \"typescript\"
4518
4519 The main features of this Typescript mode are syntactic highlighting (enabled
4520 with @code{font-lock-mode} or @code{global-font-lock-mode}), automatic
4521 indentation and filling of comments and C preprocessor fontification.")
4522 (license license:gpl3+)))
4523
4524 (define-public emacs-tide
4525 (package
4526 (name "emacs-tide")
4527 (version "2.8.3.1")
4528 (source (origin
4529 (method url-fetch)
4530 (uri (string-append "https://github.com/ananthakumaran/tide"
4531 "/archive/v" version ".tar.gz"))
4532 (sha256
4533 (base32
4534 "1k0kzqiv1hfs0kqm37947snzhrsmand3i9chvm6a2r5lb8v9q47y"))
4535 (file-name (string-append name "-" version ".tar.gz"))))
4536 (build-system emacs-build-system)
4537 (propagated-inputs
4538 `(("emacs-dash" ,emacs-dash)
4539 ("emacs-s" ,emacs-s)
4540 ("emacs-flycheck" ,emacs-flycheck)
4541 ("emacs-typescript-mode" ,emacs-typescript-mode)))
4542 (home-page "https://github.com/ananthakumaran/tide")
4543 (synopsis "Typescript IDE for Emacs")
4544 (description
4545 "Tide is an Interactive Development Environment (IDE) for Emacs which
4546 provides the following features:
4547
4548 @itemize
4549 @item ElDoc
4550 @item Auto complete
4551 @item Flycheck
4552 @item Jump to definition, Jump to type definition
4553 @item Find occurrences
4554 @item Rename symbol
4555 @item Imenu
4556 @item Compile On Save
4557 @item Highlight Identifiers
4558 @item Code Fixes
4559 @item Code Refactor
4560 @item Organize Imports
4561 @end itemize")
4562 (license license:gpl3+)))
4563
4564 (define-public emacs-markdown-mode
4565 (package
4566 (name "emacs-markdown-mode")
4567 (version "2.3")
4568 (source (origin
4569 (method url-fetch)
4570 (uri (string-append "https://raw.githubusercontent.com/jrblevin"
4571 "/markdown-mode/v" version
4572 "/markdown-mode.el"))
4573 (file-name (string-append "markdown-mode-" version ".el"))
4574 (sha256
4575 (base32
4576 "152whyrq3dqlqy5wv4mdd94kmal19hs5kwaxjcp2gp2r97lsmdmi"))))
4577 (build-system emacs-build-system)
4578 (home-page "http://jblevins.org/projects/markdown-mode/")
4579 (synopsis "Emacs Major mode for Markdown files")
4580 (description
4581 "Markdown-mode is a major mode for editing Markdown-formatted text files
4582 in Emacs.")
4583 (license license:gpl3+)))
4584
4585 (define-public emacs-edit-indirect
4586 (package
4587 (name "emacs-edit-indirect")
4588 (version "0.1.5")
4589 (source
4590 (origin
4591 (method git-fetch)
4592 (uri (git-reference
4593 (url "https://github.com/Fanael/edit-indirect")
4594 (commit version)))
4595 (file-name (git-file-name name version))
4596 (sha256
4597 (base32
4598 "0by1x53pji39fjrj5bd446kz831nv0vdgw2jqasbym4pc1p2947r"))))
4599 (build-system emacs-build-system)
4600 (home-page "https://github.com/Fanael/edit-indirect")
4601 (synopsis "Edit regions in separate buffers")
4602 (description "This package allows you to edit regions in separate buffers,
4603 like @code{org-edit-src-code} but for arbitrary regions.")
4604 (license license:gpl3+)))
4605
4606 (define-public emacs-projectile
4607 (package
4608 (name "emacs-projectile")
4609 (version "0.14.0")
4610 (source (origin
4611 (method url-fetch)
4612 (uri (string-append "https://raw.githubusercontent.com/bbatsov"
4613 "/projectile/v" version "/projectile.el"))
4614 (file-name (string-append "projectile-" version ".el"))
4615 (sha256
4616 (base32
4617 "1ql1wnzhblbwnv66hf2y0wq45g71hh6s9inc090lmhm1vgylbd1f"))))
4618 (build-system emacs-build-system)
4619 (propagated-inputs
4620 `(("emacs-dash" ,emacs-dash)
4621 ("emacs-pkg-info" ,emacs-pkg-info)))
4622 (home-page "https://github.com/bbatsov/projectile")
4623 (synopsis "Manage and navigate projects in Emacs easily")
4624 (description
4625 "This library provides easy project management and navigation. The
4626 concept of a project is pretty basic - just a folder containing special file.
4627 Currently git, mercurial and bazaar repos are considered projects by default.
4628 If you want to mark a folder manually as a project just create an empty
4629 .projectile file in it.")
4630 (license license:gpl3+)))
4631
4632 (define-public emacs-elfeed
4633 (package
4634 (name "emacs-elfeed")
4635 (version "3.0.0")
4636 (source (origin
4637 (method url-fetch)
4638 (uri (string-append "https://github.com/skeeto/elfeed/archive/"
4639 version ".tar.gz"))
4640 (file-name (string-append name "-" version ".tar.gz"))
4641 (sha256
4642 (base32
4643 "1wkdrxr6zzqb48czqqv34l87bx8aqjk1739ddqg933aqh241kfvn"))))
4644 (build-system emacs-build-system)
4645 (arguments
4646 `(#:tests? #t
4647 #:test-command '("make" "test")))
4648 (home-page "https://github.com/skeeto/elfeed")
4649 (synopsis "Atom/RSS feed reader for Emacs")
4650 (description
4651 "Elfeed is an extensible web feed reader for Emacs, supporting both Atom
4652 and RSS, with a user interface inspired by notmuch.")
4653 (license license:gpl3+)))
4654
4655 (define-public emacs-el-x
4656 (package
4657 (name "emacs-el-x")
4658 (version "0.3.1")
4659 (source (origin
4660 (method git-fetch)
4661 (uri (git-reference
4662 (url "https://github.com/sigma/el-x.git")
4663 (commit (string-append "v" version))))
4664 (file-name (string-append name "-" version "-checkout"))
4665 (sha256
4666 (base32
4667 "1i6j44ssxm1xdg0mf91nh1lnprwsaxsx8vsrf720nan7mfr283h5"))))
4668 (build-system emacs-build-system)
4669 (arguments
4670 `(#:phases
4671 (modify-phases %standard-phases
4672 ;; Move the source files to the top level, which is included in
4673 ;; the EMACSLOADPATH.
4674 (add-after 'unpack 'move-source-files
4675 (lambda _
4676 (let ((el-files (find-files "./lisp" ".*\\.el$")))
4677 (for-each (lambda (f)
4678 (rename-file f (basename f)))
4679 el-files))
4680 #t)))))
4681 (home-page "https://github.com/sigma/el-x")
4682 (synopsis "Emacs Lisp extensions")
4683 (description "command@{emacs-el-x} defines the @code{dflet} macro to
4684 provide the historic behavior of @code{flet}, as well as
4685 @code{declare-function} stub for older Emacs.")
4686 (license license:gpl2+)))
4687
4688 (define-public emacs-mocker
4689 (package
4690 (name "emacs-mocker")
4691 (version "0.3.1")
4692 (source (origin
4693 (method git-fetch)
4694 (uri (git-reference
4695 (url "https://github.com/sigma/mocker.el.git")
4696 (commit (string-append "v" version))))
4697 (file-name (string-append name "-" version "-checkout"))
4698 (sha256
4699 (base32
4700 "1lav7am41v63xgavq8pr88y828jmd1cxd4prjq7jlbxm6nvrwxh2"))))
4701 (build-system emacs-build-system)
4702 (arguments
4703 `(#:tests? #t
4704 #:test-command '("ert-runner")))
4705 (native-inputs
4706 `(("ert-runner" ,emacs-ert-runner)))
4707 (propagated-inputs
4708 `(("emacs-el-x" ,emacs-el-x)))
4709 (home-page "https://github.com/sigma/mocker.el")
4710 (synopsis "Mocking framework for Emacs Lisp")
4711 (description "Mocker.el is a framework for writing tests in Emacs Lisp.
4712 It uses regular Lisp rather than a domain specific language (DSL), which
4713 maximizes flexibility (at the expense of conciseness).")
4714 (license license:gpl2+)))
4715
4716 (define-public emacs-find-file-in-project
4717 (package
4718 (name "emacs-find-file-in-project")
4719 (version "5.4.7")
4720 (source (origin
4721 (method git-fetch)
4722 (uri (git-reference
4723 (url "https://github.com/technomancy/find-file-in-project.git")
4724 (commit version)))
4725 (file-name (string-append name "-" version "-checkout"))
4726 (sha256
4727 (base32
4728 "1sdnyqv69mipbgs9yax88m9b6crsa59rjhwrih197pifl4089awr"))))
4729 (build-system emacs-build-system)
4730 (arguments
4731 `(#:phases
4732 (modify-phases %standard-phases
4733 (add-before 'check 'set-shell
4734 ;; Otherwise Emacs shell-file-name is set to "/bin/sh", which doesn't
4735 ;; work.
4736 (lambda _
4737 (setenv "SHELL" (which "sh"))
4738 #t)))
4739 #:tests? #t
4740 #:test-command '("./tests/test.sh")))
4741 (home-page "https://github.com/technomancy/find-file-in-project")
4742 (synopsis "File/directory finder for Emacs")
4743 (description "@code{find-file-in-project} allows to find files or
4744 directories quickly in the current project. The project root is detected
4745 automatically when Git, Subversion or Mercurial are used. It also provides
4746 functions to assist in reviewing changes on files.")
4747 (license license:gpl3+)))
4748
4749 (define-public emacs-pyvenv
4750 (package
4751 (name "emacs-pyvenv")
4752 (version "1.11")
4753 (source (origin
4754 (method git-fetch)
4755 (uri (git-reference
4756 (url "https://github.com/jorgenschaefer/pyvenv.git")
4757 (commit (string-append "v" version))))
4758 (file-name (string-append name "-" version "-checkout"))
4759 (sha256
4760 (base32
4761 "1a346qdimr1dvj53q033aqnahwd2dhyn9jadrs019nm0bzgw7g63"))))
4762 (build-system emacs-build-system)
4763 (arguments
4764 `(#:phases
4765 (modify-phases %standard-phases
4766 ;; This phase incorrectly attempts to substitute "activate" and fails
4767 ;; doing so.
4768 (delete 'patch-el-files))
4769 #:tests? #t
4770 #:test-command '("ert-runner")))
4771 (native-inputs
4772 `(("ert-runner" ,emacs-ert-runner)
4773 ("emacs-mocker" ,emacs-mocker)))
4774 (home-page "https://github.com/jorgenschaefer/pyvenv")
4775 (synopsis "Virtualenv minor mode for Emacs")
4776 (description "pyvenv.el is a minor mode to support using Python virtual
4777 environments (virtualenv) inside Emacs.")
4778 (license license:gpl3+)))
4779
4780 (define-public emacs-highlight-indentation
4781 (package
4782 (name "emacs-highlight-indentation")
4783 (version "0.7.0")
4784 (source (origin
4785 (method git-fetch)
4786 (uri (git-reference
4787 (url "https://github.com/antonj/Highlight-Indentation-for-Emacs.git")
4788 (commit (string-append "v" version))))
4789 (file-name (string-append name "-" version "-checkout"))
4790 (sha256
4791 (base32
4792 "00l54k75qk24a0znzl4ij3s3nrnr2wy9ha3za8apphzlm98m907k"))))
4793 (build-system emacs-build-system)
4794 (home-page "https://github.com/antonj/Highlight-Indentation-for-Emacs/")
4795 (synopsis "Highlighting indentation for Emacs")
4796 (description "Provides two minor modes to highlight indentation guides in Emacs:
4797 @enumerate
4798 @item @code{highlight-indentation-mode}, which displays guidelines
4799 indentation (space indentation only).
4800 @item @code{highlight-indentation-current-column-mode}, which displays guidelines for the current-point indentation (space indentation only).
4801 @end enumerate")
4802 (license license:gpl2+)))
4803
4804 (define-public emacs-elpy
4805 (package
4806 (name "emacs-elpy")
4807 (version "1.27.0")
4808 (source (origin
4809 (method git-fetch)
4810 (uri (git-reference
4811 (url "https://github.com/jorgenschaefer/elpy.git")
4812 (commit version)))
4813 (file-name (string-append name "-" version "-checkout"))
4814 (sha256
4815 (base32
4816 "1b76y0kzk7s9ya8k9bpsgn31i9l0rxs4iz6lg7snhjgh03k0ssgv"))))
4817 (build-system emacs-build-system)
4818 (arguments
4819 `(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include)
4820 #:phases
4821 ;; TODO: Make `elpy-config' display Guix commands :)
4822 (modify-phases %standard-phases
4823 ;; One elpy test depends on being run inside a Python virtual
4824 ;; environment to pass. We have nothing to gain from doing so here,
4825 ;; so we just trick Elpy into thinking we are (see:
4826 ;; https://github.com/jorgenschaefer/elpy/pull/1293).
4827 (add-before 'check 'fake-virtualenv
4828 (lambda _
4829 (setenv "VIRTUAL_ENV" "/tmp")
4830 #t))
4831 (add-before 'check 'build-doc
4832 (lambda _
4833 (with-directory-excursion "docs"
4834 (invoke "make" "info" "man"))
4835 ;; Move .info file at the root so that it can installed by the
4836 ;; 'move-doc phase.
4837 (rename-file "docs/_build/texinfo/Elpy.info" "Elpy.info")
4838 #t))
4839 (add-after 'build-doc 'install-manpage
4840 (lambda* (#:key outputs #:allow-other-keys)
4841 (let* ((out (assoc-ref outputs "out"))
4842 (man1 (string-append out "/share/man/man1")))
4843 (mkdir-p man1)
4844 (copy-file "docs/_build/man/elpy.1"
4845 (string-append man1 "/elpy.1")))
4846 #t)))
4847 #:tests? #t
4848 #:test-command '("ert-runner")))
4849 (propagated-inputs
4850 `(("emacs-company" ,emacs-company)
4851 ("emacs-find-file-in-project" ,emacs-find-file-in-project)
4852 ("emacs-highlight-indentation" ,emacs-highlight-indentation)
4853 ("emacs-yasnippet" ,emacs-yasnippet)
4854 ("pyvenv" ,emacs-pyvenv)
4855 ("s" ,emacs-s)))
4856 (native-inputs
4857 `(("ert-runner" ,emacs-ert-runner)
4858 ("emacs-f" ,emacs-f)
4859 ("python" ,python-wrapper)
4860 ("python-autopep8" ,python-autopep8)
4861 ("python-black" ,python-black)
4862 ("python-flake8" ,python-flake8)
4863 ("python-jedi" ,python-jedi)
4864 ("python-yapf" ,python-yapf)
4865 ;; For documentation.
4866 ("python-sphinx" ,python-sphinx)
4867 ("texinfo" ,texinfo)))
4868 (home-page "https://github.com/jorgenschaefer/elpy")
4869 (synopsis "Python development environment for Emacs")
4870 (description "Elpy brings powerful Python editing to Emacs. It combines
4871 and configures a number of other packages written in Emacs Lisp as well as
4872 Python, together offering features such as navigation, documentation,
4873 completion, interactive development and more.")
4874 (license license:gpl3+)))
4875
4876 (define-public emacs-rainbow-delimiters
4877 (package
4878 (name "emacs-rainbow-delimiters")
4879 (version "2.1.3")
4880 (source (origin
4881 (method url-fetch)
4882 (uri (string-append "https://raw.githubusercontent.com/Fanael"
4883 "/rainbow-delimiters/" version
4884 "/rainbow-delimiters.el"))
4885 (file-name (string-append "rainbow-delimiters-" version ".el"))
4886 (sha256
4887 (base32
4888 "1b3kampwsjabhcqdp0khgff13wc5jqhy3rbvaa12vnv7qy22l9ck"))))
4889 (build-system emacs-build-system)
4890 (home-page "https://github.com/Fanael/rainbow-delimiters")
4891 (synopsis "Highlight brackets according to their depth")
4892 (description
4893 "Rainbow-delimiters is a \"rainbow parentheses\"-like mode for Emacs which
4894 highlights parentheses, brackets, and braces according to their depth. Each
4895 successive level is highlighted in a different color, making it easy to spot
4896 matching delimiters, orient yourself in the code, and tell which statements
4897 are at a given level.")
4898 (license license:gpl3+)))
4899
4900 (define-public emacs-rainbow-identifiers
4901 (package
4902 (name "emacs-rainbow-identifiers")
4903 (version "0.2.2")
4904 (source (origin
4905 (method url-fetch)
4906 (uri (string-append "https://raw.githubusercontent.com/Fanael"
4907 "/rainbow-identifiers/" version
4908 "/rainbow-identifiers.el"))
4909 (file-name (string-append "rainbow-identifiers-" version ".el"))
4910 (sha256
4911 (base32
4912 "0325abxj47k0g1i8nqrq70w2wr6060ckhhf92krv1s072b3jzm31"))))
4913 (build-system emacs-build-system)
4914 (home-page "https://github.com/Fanael/rainbow-identifiers")
4915 (synopsis "Highlight identifiers in source code")
4916 (description
4917 "Rainbow identifiers mode is an Emacs minor mode providing highlighting of
4918 identifiers based on their names. Each identifier gets a color based on a hash
4919 of its name.")
4920 (license license:bsd-2)))
4921
4922 (define-public emacs-rainbow-mode
4923 (package
4924 (name "emacs-rainbow-mode")
4925 (version "1.0.1")
4926 (source (origin
4927 (method url-fetch)
4928 (uri (string-append
4929 "http://elpa.gnu.org/packages/rainbow-mode-" version ".el"))
4930 (sha256
4931 (base32
4932 "0cpga4ax635rfpj7y2vmh7ank0yw00dcy20gjg1mj74r97by8csf"))))
4933 (build-system emacs-build-system)
4934 (home-page "http://elpa.gnu.org/packages/rainbow-mode.html")
4935 (synopsis "Colorize color names in buffers")
4936 (description
4937 "This minor mode sets background color to strings that match color
4938 names, e.g. #0000ff is displayed in white with a blue background.")
4939 (license license:gpl3+)))
4940
4941 (define-public emacs-visual-fill-column
4942 (package
4943 (name "emacs-visual-fill-column")
4944 (version "1.11")
4945 (source (origin
4946 (method url-fetch)
4947 (uri (string-append "https://codeload.github.com/joostkremers/"
4948 "visual-fill-column/tar.gz/" version))
4949 (file-name (string-append name "-" version ".tar.gz"))
4950 (sha256
4951 (base32
4952 "13jnviakp607zcms7f8ams56mr8wffnq1pghlc6fvqs39663pgwh"))))
4953 (build-system emacs-build-system)
4954 (home-page "https://github.com/joostkremers/visual-fill-column")
4955 (synopsis "Fill-column for visual-line-mode")
4956 (description
4957 "@code{visual-fill-column-mode} is a small Emacs minor mode that mimics
4958 the effect of @code{fill-column} in @code{visual-line-mode}. Instead of
4959 wrapping lines at the window edge, which is the standard behaviour of
4960 @code{visual-line-mode}, it wraps lines at @code{fill-column}. If
4961 @code{fill-column} is too large for the window, the text is wrapped at the
4962 window edge.")
4963 (license license:gpl3+)))
4964
4965 (define-public emacs-writeroom
4966 (package
4967 (name "emacs-writeroom")
4968 (version "3.7")
4969 (source (origin
4970 (method url-fetch)
4971 (uri (string-append
4972 "https://github.com/joostkremers/writeroom-mode/archive/"
4973 version ".tar.gz"))
4974 (file-name (string-append name "-" version ".tar.gz"))
4975 (sha256
4976 (base32
4977 "0yqgp5h3kvvpgva4azakb2wnjl7gsyh45glf75crspv3xyq57f2r"))))
4978 (build-system emacs-build-system)
4979 (propagated-inputs
4980 `(("emacs-visual-fill-column" ,emacs-visual-fill-column)))
4981 (home-page "https://github.com/joostkremers/writeroom-mode")
4982 (synopsis "Distraction-free writing for Emacs")
4983 (description
4984 "This package defines a minor mode for distraction-free writing. Some of
4985 the default effects include entering fullscreen, deleting other windows of the
4986 current frame, disabling the mode line, and adding margins to the buffer that
4987 restrict the text width to 80 characters.")
4988 (license license:bsd-3)))
4989
4990 (define-public emacs-ido-completing-read+
4991 (package
4992 (name "emacs-ido-completing-read+")
4993 (version "3.12")
4994 (source (origin
4995 (method url-fetch)
4996 (uri (string-append "https://raw.githubusercontent.com"
4997 "/DarwinAwardWinner/ido-ubiquitous/v"
4998 version "/ido-completing-read+.el"))
4999 (file-name (string-append "ido-completing-read+-" version ".el"))
5000 (sha256
5001 (base32
5002 "1cyalb0p7nfsm4n6n9q6rjmvn6adqc0fq8ybnlj3n41n289dkfjf"))))
5003 (build-system emacs-build-system)
5004 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
5005 (synopsis "Replacement for completing-read using ido")
5006 (description
5007 "The ido-completing-read+ function is a wrapper for ido-completing-read.
5008 Importantly, it detects edge cases that ordinary ido cannot handle and either
5009 adjusts them so ido can handle them, or else simply falls back to the standard
5010 Emacs completion function instead.")
5011 (license license:gpl3+)))
5012
5013 (define-public emacs-ido-ubiquitous
5014 (package
5015 (name "emacs-ido-ubiquitous")
5016 (version "3.12")
5017 (source (origin
5018 (method url-fetch)
5019 (uri (string-append "https://raw.githubusercontent.com"
5020 "/DarwinAwardWinner/ido-ubiquitous/v"
5021 version "/ido-ubiquitous.el"))
5022 (file-name (string-append "ido-ubiquitous-" version ".el"))
5023 (sha256
5024 (base32
5025 "197ypji0fb6jsdcq40rpnknwlh3imas6s6jbsvkfm0pz9988c3q2"))))
5026 (build-system emacs-build-system)
5027 (propagated-inputs
5028 `(("emacs-ido-completing-read+" ,emacs-ido-completing-read+)))
5029 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
5030 (synopsis "Use ido (nearly) everywhere")
5031 (description
5032 "Ido-ubiquitous enables ido-style completion for almost every function
5033 that uses the standard completion function completing-read.")
5034 (license license:gpl3+)))
5035
5036 (define-public emacs-yaml-mode
5037 (package
5038 (name "emacs-yaml-mode")
5039 (version "0.0.13")
5040 (source (origin
5041 (method url-fetch)
5042 (uri (string-append "https://raw.githubusercontent.com/yoshiki"
5043 "/yaml-mode/v" version "/yaml-mode.el"))
5044 (file-name (string-append "yaml-mode-" version ".el"))
5045 (sha256
5046 (base32
5047 "0im88sk9dqw03x6d6zaspgvg9i0pfpgb8f2zygrmbifh2w4pwmvj"))))
5048 (build-system emacs-build-system)
5049 (home-page "https://github.com/yoshiki/yaml-mode")
5050 (synopsis "Major mode for editing YAML files")
5051 (description
5052 "Yaml-mode is an Emacs major mode for editing files in the YAML data
5053 serialization format. It was initially developed by Yoshiki Kurihara and many
5054 features were added by Marshall Vandegrift. As YAML and Python share the fact
5055 that indentation determines structure, this mode provides indentation and
5056 indentation command behavior very similar to that of python-mode.")
5057 (license license:gpl3+)))
5058
5059 (define-public emacs-web-mode
5060 (package
5061 (name "emacs-web-mode")
5062 (version "16")
5063 (source (origin
5064 (method url-fetch)
5065 (uri (string-append "https://raw.githubusercontent.com/fxbois"
5066 "/web-mode/v" version "/web-mode.el"))
5067 (file-name (string-append "web-mode-" version ".el"))
5068 (sha256
5069 (base32
5070 "1hs5w7kdvcyn4ihyw1kfjg48djn5p7lz4rlbhzzdqv1g56xqx3gw"))))
5071 (build-system emacs-build-system)
5072 (synopsis "Major mode for editing web templates")
5073 (description "Web-mode is an Emacs major mode for editing web templates
5074 aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by
5075 client/server side engines). Web-mode is compatible with many template
5076 engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker,
5077 Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template,
5078 Dust.js, React/JSX, Angularjs, ejs, etc.")
5079 (home-page "http://web-mode.org/")
5080 (license license:gpl3+)))
5081
5082 (define-public emacs-wgrep
5083 (let ((commit "414be70bd313e482cd9f0b70fd2daad4ee23497c"))
5084 ;; Late commit fixes compatibility issue with Emacs 26+.
5085 (package
5086 (name "emacs-wgrep")
5087 (version (git-version "2.1.10" "1" commit))
5088 (source (origin
5089 (method git-fetch)
5090 (uri (git-reference
5091 (url "https://github.com/mhayashi1120/Emacs-wgrep")
5092 (commit commit)))
5093 (file-name (git-file-name name version))
5094 (sha256
5095 (base32
5096 "1sdhd587q3pg92lhiayph87azhalmf1gzrnsprkmqvnphv7mvks9"))))
5097 (build-system emacs-build-system)
5098 (home-page "https://github.com/mhayashi1120/Emacs-wgrep")
5099 (synopsis "Edit a grep buffer and apply those changes to the files")
5100 (description
5101 "Emacs wgrep allows you to edit a grep buffer and apply those changes
5102 to the file buffer. Several backends are supported beside the classic grep:
5103 ack, ag, helm and pt.")
5104 (license license:gpl3+))))
5105
5106 (define-public emacs-helm
5107 (package
5108 (name "emacs-helm")
5109 (version "3.0")
5110 (source (origin
5111 (method url-fetch)
5112 (uri (string-append
5113 "https://github.com/" name "/helm/archive/v"
5114 version ".tar.gz"))
5115 (file-name (string-append name "-" version ".tar.gz"))
5116 (sha256
5117 (base32
5118 "0k2r0ccppaqfjvyszaxa16vf7g2qzj1clhfr6v646ncsy17laciw"))))
5119 (build-system emacs-build-system)
5120 (propagated-inputs
5121 `(("emacs-async" ,emacs-async)
5122 ("emacs-popup" ,emacs-popup)))
5123 (home-page "https://emacs-helm.github.io/helm/")
5124 (synopsis "Incremental completion and selection narrowing
5125 framework for Emacs")
5126 (description "Helm is incremental completion and selection narrowing
5127 framework for Emacs. It will help steer you in the right direction when
5128 you're looking for stuff in Emacs (like buffers, files, etc). Helm is a fork
5129 of @code{anything.el} originally written by Tamas Patrovic and can be
5130 considered to be its successor. Helm sets out to clean up the legacy code in
5131 @code{anything.el} and provide a cleaner, leaner and more modular tool, that's
5132 not tied in the trap of backward compatibility.")
5133 (license license:gpl3+)))
5134
5135 (define-public emacs-helm-swoop
5136 (package
5137 (name "emacs-helm-swoop")
5138 (version "1.7.4")
5139 (source (origin
5140 (method url-fetch)
5141 (uri (string-append
5142 "https://github.com/ShingoFukuyama/helm-swoop/archive/"
5143 version
5144 ".tar.gz"))
5145 (file-name (string-append name "-" version ".tar.gz"))
5146 (sha256
5147 (base32
5148 "1ssivsjzlnkg049cg993l8fp09l5nhpz6asj7w5c91zp5kpc6fh7"))))
5149 (build-system emacs-build-system)
5150 (propagated-inputs
5151 `(("emacs-helm" ,emacs-helm)))
5152 (home-page "https://github.com/ShingoFukuyama/helm-swoop")
5153 (synopsis "Filter and jump to lines in an Emacs buffer using Helm")
5154 (description
5155 "This package builds on the Helm interface to provide several commands
5156 for search-based navigation of buffers.")
5157 (license license:gpl2+)))
5158
5159 (define-public emacs-helm-projectile
5160 (package
5161 (name "emacs-helm-projectile")
5162 (version "0.14.0")
5163 (source (origin
5164 (method url-fetch)
5165 (uri (string-append
5166 "https://github.com/bbatsov/helm-projectile/archive/v"
5167 version
5168 ".tar.gz"))
5169 (file-name (string-append name "-" version ".tar.gz"))
5170 (sha256
5171 (base32
5172 "19cfmilqh8kbab3b2hmx6lyrj73q6vfmn3p730x95g23iz16mnd5"))))
5173 (build-system emacs-build-system)
5174 (propagated-inputs
5175 `(("emacs-dash" ,emacs-dash)
5176 ("emacs-helm" ,emacs-helm)
5177 ("emacs-projectile" ,emacs-projectile)))
5178 (home-page "https://github.com/bbatsov/helm-projectile")
5179 (synopsis "Helm integration for Projectile")
5180 (description
5181 "This Emacs library provides a Helm interface for Projectile.")
5182 (license license:gpl3+)))
5183
5184 (define-public emacs-helm-make
5185 (let ((commit "feae8df22bc4b20705ea08ac9adfc2b43bb348d0")
5186 (revision "1"))
5187 (package
5188 (name "emacs-helm-make")
5189 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
5190 (source
5191 (origin
5192 (method git-fetch)
5193 (uri (git-reference
5194 (url "https://github.com/abo-abo/helm-make.git")
5195 (commit commit)))
5196 (file-name (string-append name "-" version "-checkout"))
5197 (sha256
5198 (base32
5199 "1y2v77mmd1bfkkz51cnk1l0dg3lvvxc39wlamnm7wjns66dbvlam"))))
5200 (build-system emacs-build-system)
5201 (propagated-inputs
5202 `(("emacs-helm" ,emacs-helm)
5203 ("emacs-projectile" ,emacs-projectile)))
5204 (home-page "https://github.com/abo-abo/helm-make")
5205 (synopsis "Select a Makefile target with helm")
5206 (description "@code{helm-make} or @code{helm-make-projectile} will give
5207 you a @code{helm} selection of directory Makefile's targets. Selecting a
5208 target will call @code{compile} on it.")
5209 (license license:gpl3+))))
5210
5211 (define-public emacs-cider
5212 (package
5213 (name "emacs-cider")
5214 (version "0.18.0")
5215 (source
5216 (origin
5217 (method git-fetch)
5218 (uri (git-reference
5219 (url "https://github.com/clojure-emacs/cider.git")
5220 (commit (string-append "v" version))))
5221 (file-name (git-file-name name version))
5222 (sha256
5223 (base32
5224 "1m9kc88vga3q5d731qnpngnsa0n57pf21k3hll20rw8rggrx4vdn"))))
5225 (build-system emacs-build-system)
5226 (arguments
5227 '(#:exclude ; Don't exclude 'cider-test.el'.
5228 '("^\\.dir-locals\\.el$" "^test/")))
5229 (propagated-inputs
5230 `(("emacs-clojure-mode" ,emacs-clojure-mode)
5231 ("emacs-sesman" ,emacs-sesman)
5232 ("emacs-spinner" ,emacs-spinner)
5233 ("emacs-pkg-info" ,emacs-pkg-info)
5234 ("emacs-queue" ,emacs-queue)))
5235 (home-page "https://cider.readthedocs.io/")
5236 (synopsis "Clojure development environment for Emacs")
5237 (description
5238 "CIDER (Clojure Interactive Development Environment that Rocks) aims to
5239 provide an interactive development experience similar to the one you'd get
5240 when programming in Emacs Lisp, Common Lisp (with SLIME or Sly), Scheme (with
5241 Geiser) and Smalltalk.
5242
5243 CIDER is the successor to the now deprecated combination of using SLIME +
5244 swank-clojure for Clojure development.
5245
5246 There are plenty of differences between CIDER and SLIME, but the core ideas
5247 are pretty much the same (and SLIME served as the principle inspiration for
5248 CIDER).")
5249 (license license:gpl3+)))
5250
5251 ;; There hasn't been a tag or release since 2015, so we take the latest
5252 ;; commit.
5253 (define-public emacs-sly
5254 (let ((commit "486bfbe95612bcdc0960c490207970a188e0fbb9")
5255 (revision "1"))
5256 (package
5257 (name "emacs-sly")
5258 (version (string-append "1.0.0-" revision "." (string-take commit 9)))
5259 (source
5260 (origin
5261 (method git-fetch)
5262 (uri (git-reference
5263 (url "https://github.com/joaotavora/sly.git")
5264 (commit commit)))
5265 (file-name (git-file-name name version))
5266 (sha256
5267 (base32
5268 "0ib4q4k3h3qn88pymyjjmlmnpizdn1mfg5gpk5a715nqsgxlg09l"))))
5269 (build-system emacs-build-system)
5270 (arguments
5271 `(#:include (cons "^lib\\/" %default-include)
5272 #:phases
5273 ;; The package provides autoloads.
5274 (modify-phases %standard-phases
5275 (delete 'make-autoloads))))
5276 (home-page "https://github.com/joaotavora/sly")
5277 (synopsis "Sylvester the Cat's Common Lisp IDE")
5278 (description
5279 "SLY is Sylvester the Cat's Common Lisp IDE. SLY is a fork of SLIME, and
5280 contains the following improvements over it:
5281
5282 @enumerate
5283 @item Completely redesigned REPL based on Emacs's own full-featured
5284 @code{comint.el}
5285 @item Live code annotations via a new @code{sly-stickers} contrib
5286 @item Consistent interactive button interface. Everything can be copied to
5287 the REPL.
5288 @item Multiple inspectors with independent history
5289 @item Regexp-capable @code{M-x sly-apropos}
5290 @item Contribs are first class SLY citizens and enabled by default
5291 @item Use ASDF to loads contribs on demand.
5292 @end enumerate
5293
5294 SLY tracks SLIME's bugfixes and all its familar features (debugger, inspector,
5295 xref, etc...) are still available, but with better integration.")
5296 (license license:gpl3+))))
5297
5298 (define-public emacs-lua-mode
5299 (let ((commit "652e299cb967fccca827dda381d61a9c144d97de")
5300 (revision "1"))
5301 (package
5302 (name "emacs-lua-mode")
5303 (version (string-append "20151025." revision "-" (string-take commit 9)))
5304 (home-page "https://github.com/immerrr/lua-mode/")
5305 (source (origin
5306 (method git-fetch)
5307 (uri (git-reference
5308 (url home-page)
5309 (commit commit)))
5310 (file-name (string-append name "-" version ".checkout"))
5311 (sha256
5312 (base32
5313 "053025k930wh0lak6rc1973ynfrmm8zsyzfqhhd39x7abkl41hc9"))))
5314 (build-system emacs-build-system)
5315 (synopsis "Major mode for lua")
5316 (description
5317 "This Emacs package provides a mode for @uref{https://www.lua.org/,
5318 Lua programing language}.")
5319 (license license:gpl2+))))
5320
5321 (define-public emacs-ebuild-mode
5322 (package
5323 (name "emacs-ebuild-mode")
5324 (version "1.37")
5325 (source (origin
5326 (method url-fetch)
5327 (uri (string-append
5328 "https://dev.gentoo.org/~ulm/emacs/ebuild-mode"
5329 "-" version ".tar.xz"))
5330 (file-name (string-append name "-" version ".tar.xz"))
5331 (sha256
5332 (base32
5333 "07dzrdjjczkxdfdgi60h4jjkvzi4p0k9rij2wpfp8s03ay3qldpp"))))
5334 (build-system emacs-build-system)
5335 (home-page "https://devmanual.gentoo.org")
5336 (synopsis "Major modes for Gentoo package files")
5337 (description
5338 "This Emacs package provides modes for ebuild, eclass, eblit, GLEP42
5339 news items, openrc and runscripts.")
5340 (license license:gpl2+)))
5341
5342 (define-public emacs-evil
5343 (let ((commit "230b87212c81aaa68ef5547a6b998d9c365fe139"))
5344 (package
5345 (name "emacs-evil")
5346 (version (git-version "1.2.13" "1" commit))
5347 (source
5348 (origin
5349 (method git-fetch)
5350 (uri (git-reference
5351 (url "https://github.com/emacs-evil/evil")
5352 (commit commit)))
5353 (file-name (string-append name "-" version "-checkout"))
5354 (sha256
5355 (base32
5356 "0c9zy3bpck10gcrv79kd3h7i4ygd5bgbgy773n0lg7a2r5kwn1gx"))))
5357 (build-system emacs-build-system)
5358 (propagated-inputs
5359 `(("emacs-undo-tree" ,emacs-undo-tree)
5360 ("emacs-goto-chg" ,emacs-goto-chg)))
5361 (home-page "https://github.com/emacs-evil/evil")
5362 (synopsis "Extensible Vi layer for Emacs")
5363 (description
5364 "Evil is an extensible vi layer for Emacs. It emulates the
5365 main features of Vim, and provides facilities for writing custom
5366 extensions.")
5367 (license license:gpl3+))))
5368
5369 (define-public emacs-evil-collection
5370 (let ((commit "4e1f0e0b17153d460805a0da90d6191d66b2673d")
5371 (revision "5"))
5372 (package
5373 (name "emacs-evil-collection")
5374 (version (git-version "0.0.1" revision commit))
5375 (source (origin
5376 (method git-fetch)
5377 (uri (git-reference
5378 (url "https://github.com/emacs-evil/evil-collection")
5379 (commit commit)))
5380 (file-name (string-append name "-" version "-checkout"))
5381 (sha256
5382 (base32
5383 "11d5ppdnb2y2mwsdd9g62h7zds962kw3nss89zv5iwgcf9f1fb5x"))))
5384 (build-system emacs-build-system)
5385 (propagated-inputs
5386 `(("emacs-evil" ,emacs-evil)))
5387 (home-page "https://github.com/emacs-evil/evil-collection")
5388 (synopsis "Collection of Evil bindings for many major and minor modes")
5389 (description "This is a collection of Evil bindings for the parts of
5390 Emacs that Evil does not cover properly by default, such as @code{help-mode},
5391 @code{M-x calendar}, Eshell and more.")
5392 (license license:gpl3+))))
5393
5394 (define-public emacs-goto-chg
5395 (package
5396 (name "emacs-goto-chg")
5397 (version "1.6")
5398 (source
5399 (origin
5400 (method url-fetch)
5401 ;; There is no versioned source.
5402 (uri "https://www.emacswiki.org/emacs/download/goto-chg.el")
5403 (file-name (string-append "goto-chg-" version ".el"))
5404 (sha256
5405 (base32
5406 "078d6p4br5vips7b9x4v6cy0wxf6m5ij9gpqd4g33bryn22gnpij"))))
5407 (build-system emacs-build-system)
5408 ;; There is no other home page.
5409 (home-page "https://www.emacswiki.org/emacs/goto-chg.el")
5410 (synopsis "Go to the last change in the Emacs buffer")
5411 (description
5412 "This package provides @code{M-x goto-last-change} command that goes to
5413 the point of the most recent edit in the current Emacs buffer. When repeated,
5414 go to the second most recent edit, etc. Negative argument, @kbd{C-u -}, is
5415 used for reverse direction.")
5416 (license license:gpl2+)))
5417
5418 (define-public emacs-monroe
5419 (package
5420 (name "emacs-monroe")
5421 (version "0.3.1")
5422 (source
5423 (origin
5424 (method url-fetch)
5425 (uri (string-append "https://github.com/sanel/monroe/archive/"
5426 version ".tar.gz"))
5427 (file-name (string-append name "-" version ".tar.gz"))
5428 (sha256
5429 (base32
5430 "0icdx8shkd951phlnmcq1vqaxp1l667q5rjscskc5r22aylakh4w"))))
5431 (build-system emacs-build-system)
5432 (home-page "https://github.com/sanel/monroe")
5433 (synopsis "Clojure nREPL client for Emacs")
5434 (description
5435 "Monroe is a nREPL client for Emacs, focused on simplicity and easy
5436 distribution, primarily targeting Clojure users")
5437 (license license:gpl3+)))
5438
5439 (define-public emacs-orgalist
5440 (package
5441 (name "emacs-orgalist")
5442 (version "1.9")
5443 (source
5444 (origin
5445 (method url-fetch)
5446 (uri (string-append "https://elpa.gnu.org/packages/"
5447 "orgalist-" version ".el"))
5448 (sha256
5449 (base32
5450 "1rmmcyiiqkq54hn74nhzxzl4nvd902hv6gq341jwhrm7yiagffi6"))))
5451 (build-system emacs-build-system)
5452 (home-page "http://elpa.gnu.org/packages/orgalist.html")
5453 (synopsis "Manage Org-like lists in non-Org buffers")
5454 (description "Write Org mode's plain lists in non-Org buffers. More
5455 specifically, Orgalist supports the syntax of Org mode for numbered,
5456 unnumbered, description items, checkboxes, and counter cookies.
5457
5458 The library also implements radio lists, i.e., lists written in Org
5459 syntax later translated into the host format, e.g., LaTeX or HTML.")
5460 (license license:gpl3+)))
5461
5462 (define-public emacs-writegood-mode
5463 (package
5464 (name "emacs-writegood-mode")
5465 (version "2.0.2")
5466 (home-page "https://github.com/bnbeckwith/writegood-mode")
5467 (source (origin
5468 (method git-fetch)
5469 (uri (git-reference
5470 (url home-page)
5471 (commit (string-append "v" version))))
5472 (sha256
5473 (base32
5474 "1nnjn1r669hvvzfycllwap4w04m8rfsk4nzcg8057m1f263kj31b"))
5475 (file-name (string-append name "-checkout"))))
5476 (build-system emacs-build-system)
5477 (synopsis "Polish up poor writing on the fly")
5478 (description
5479 "This minor mode tries to find and highlight problems with your writing
5480 in English as you type. It primarily detects \"weasel words\" and abuse of
5481 passive voice.")
5482 (license license:gpl3+)))
5483
5484 (define-public emacs-neotree
5485 (package
5486 (name "emacs-neotree")
5487 (version "0.5.2")
5488 (home-page "https://github.com/jaypei/emacs-neotree")
5489 (source (origin
5490 (method url-fetch)
5491 (uri (string-append
5492 "https://github.com/jaypei/" name
5493 "/archive/" version ".tar.gz"))
5494 (sha256
5495 (base32
5496 "1zd6dchwyijnf7kgchfcp51gs938l204dk9z6mljrfqf2zy0gp12"))
5497 (file-name (string-append name "-" version ".tar.gz"))))
5498 (build-system emacs-build-system)
5499 (synopsis "Folder tree view for Emacs")
5500 (description "This Emacs package provides a folder tree view.")
5501 (license license:gpl3+)))
5502
5503 (define-public emacs-org
5504 (package
5505 (name "emacs-org")
5506 ;; emacs-org-contrib inherits from this package. Please update its sha256
5507 ;; checksum as well.
5508 (version "9.2")
5509 (source (origin
5510 (method url-fetch)
5511 (uri (string-append "http://elpa.gnu.org/packages/org-"
5512 version ".tar"))
5513 (sha256
5514 (base32
5515 "14ydwh2r360fpi6v2g9rgf0zazy2ddq1pcdxvzn73h65glnnclz9"))))
5516 (build-system emacs-build-system)
5517 (home-page "https://orgmode.org/")
5518 (synopsis "Outline-based notes management and organizer")
5519 (description "Org is an Emacs mode for keeping notes, maintaining TODO
5520 lists, and project planning with a fast and effective lightweight markup
5521 language. It also is an authoring system with unique support for literate
5522 programming and reproducible research.")
5523 (license license:gpl3+)))
5524
5525 (define-public emacs-org-contrib
5526 (package
5527 (inherit emacs-org)
5528 (name "emacs-org-contrib")
5529 (version "20181230")
5530 (source (origin
5531 (method url-fetch)
5532 (uri (string-append "https://orgmode.org/elpa/org-plus-contrib-"
5533 version ".tar"))
5534 (sha256
5535 (base32
5536 "0gibwcjlardjwq19bh0zzszv0dxxlml0rh5iikkcdynbgndk1aa1"))))
5537 (arguments
5538 `(#:modules ((guix build emacs-build-system)
5539 (guix build utils)
5540 (guix build emacs-utils)
5541 (ice-9 ftw)
5542 (srfi srfi-1))
5543 #:phases
5544 (modify-phases %standard-phases
5545 (add-after 'install 'delete-org-files
5546 (lambda* (#:key inputs outputs #:allow-other-keys)
5547 (let* ((out (assoc-ref outputs "out"))
5548 (org (assoc-ref inputs "org"))
5549 (contrib-files
5550 (map basename (find-files out)))
5551 (org+contrib-files
5552 (map basename (find-files org)))
5553 (duplicates (lset-intersection
5554 string=? contrib-files org+contrib-files)))
5555 (with-directory-excursion
5556 (string-append
5557 out "/share/emacs/site-lisp/guix.d/org-contrib-" ,version)
5558 (for-each delete-file duplicates))
5559 #t))))))
5560 (propagated-inputs
5561 `(("arduino-mode" ,emacs-arduino-mode)
5562 ("cider" ,emacs-cider)
5563 ("org" ,emacs-org)
5564 ("scel" ,emacs-scel)))
5565 (synopsis "Contributed packages to Org mode")
5566 (description "Org is an Emacs mode for keeping notes, maintaining TODO
5567 lists, and project planning with a fast and effective plain-text system.
5568
5569 This package is equivalent to org-plus-contrib, but only includes additional
5570 files that you would find in @file{contrib/} from the git repository.")))
5571
5572 (define-public emacs-flx
5573 (package
5574 (name "emacs-flx")
5575 (version "0.6.1")
5576 (source
5577 (origin
5578 (method url-fetch)
5579 (uri (string-append "https://github.com/lewang/"
5580 "flx/archive/v" version ".tar.gz"))
5581 (sha256
5582 (base32
5583 "0bkcpnf1j4i2fcc2rllwbz62l00sw2mcia6rm5amgwvlkqavmkv6"))
5584 (file-name (string-append name "-" version ".tar.gz"))))
5585 (build-system emacs-build-system)
5586 (home-page "https://github.com/lewang/flx")
5587 (synopsis "Fuzzy matching for Emacs")
5588 (description
5589 "Flx provides fuzzy matching for emacs a la sublime text.
5590 The sorting algorithm is a balance between word beginnings (abbreviation)
5591 and contiguous matches (substring). The longer the substring match,
5592 the higher it scores. This maps well to how we think about matching.
5593 Flx has support for ido (interactively do things) through flx-ido.")
5594 (license license:gpl3+)))
5595
5596 (define-public emacs-cyberpunk-theme
5597 (package
5598 (name "emacs-cyberpunk-theme")
5599 (version "1.19")
5600 (source
5601 (origin
5602 (method url-fetch)
5603 (uri (string-append "https://github.com/n3mo/cyberpunk-theme.el/"
5604 "archive/" version ".tar.gz"))
5605 (sha256
5606 (base32
5607 "05l5fxw1mn5py6mfhxrzyqjq0d8m5m1akfi46vrgh13r414jffvv"))
5608 (file-name (string-append name "-" version ".tar.gz"))))
5609 (build-system emacs-build-system)
5610 (home-page "https://github.com/n3mo/cyberpunk-theme.el")
5611 (synopsis "Cyberpunk theme for emacs built-in color theme support")
5612 (description
5613 "Cyberpunk color theme for the emacs 24+ built-in color theme support
5614 known loosely as deftheme. Many mode-specific customizations are included.")
5615 (license license:gpl3+)))
5616
5617 (define-public emacs-danneskjold-theme
5618 (let* ((commit "8733d2fe8743e8a01826ea6d4430ef376c727e57")
5619 (revision "1"))
5620 (package
5621 (name "emacs-danneskjold-theme")
5622 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
5623 (home-page "https://github.com/rails-to-cosmos/danneskjold-theme")
5624 (source
5625 (origin
5626 (method git-fetch)
5627 (uri (git-reference
5628 (url home-page)
5629 (commit commit)))
5630 (file-name (string-append name "-" version "-checkout"))
5631 (sha256
5632 (base32
5633 "0s6rbsb0y8i8m5b9xm4gw1p1cxsxdqnqxqqb638pygz9f76mbir1"))))
5634 (build-system emacs-build-system)
5635 (arguments
5636 `(#:phases
5637 (modify-phases %standard-phases
5638 (add-after 'unpack 'delete-screenshots
5639 (lambda _
5640 (delete-file-recursively "screenshots") #t)))))
5641 (synopsis "High-contrast Emacs theme")
5642 (description
5643 "@code{danneskjold-theme} is a high-contrast theme for Emacs.")
5644 (license license:gpl3+))))
5645
5646 (define-public emacs-dream-theme
5647 (let* ((commit "107a11d74365046f28a1802a2bdb5e69e4a7488b")
5648 (revision "1"))
5649 (package
5650 (name "emacs-dream-theme")
5651 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
5652 (source
5653 (origin
5654 (method git-fetch)
5655 (uri (git-reference
5656 (url "https://github.com/djcb/dream-theme")
5657 (commit commit)))
5658 (file-name (string-append name "-" version "-checkout"))
5659 (sha256
5660 (base32
5661 "0za18nfkq4xqm35k6006vsixcbmvmxqgma4iw5sw37h8vmcsdylk"))))
5662 (build-system emacs-build-system)
5663 (home-page "https://github.com/djcb/dream-theme")
5664 (synopsis "High-contrast Emacs theme")
5665 (description
5666 "@code{dream-theme} is a dark, clean theme for Emacs. It is inspired
5667 by zenburn, sinburn and similar themes, but slowly diverging from them.")
5668 (license license:gpl3+))))
5669
5670 (define-public emacs-auto-complete
5671 (package
5672 (name "emacs-auto-complete")
5673 (version "1.5.1")
5674 (source
5675 (origin
5676 (method url-fetch)
5677 (uri (string-append "https://github.com/auto-complete/"
5678 "auto-complete/archive/v" version ".tar.gz"))
5679 (sha256
5680 (base32
5681 "1jvq4lj00hwml75lpmlciazy8f3bbg13gffsfnl835p4qd8l7yqv"))
5682 (file-name (string-append name "-" version ".tar.gz"))))
5683 (build-system emacs-build-system)
5684 (propagated-inputs
5685 `(("emacs-popup" ,emacs-popup)))
5686 (home-page "https://github.com/auto-complete/auto-complete")
5687 (synopsis "Intelligent auto-completion extension for Emacs")
5688 (description
5689 "Auto-Complete is an intelligent auto-completion extension for Emacs.
5690 It extends the standard Emacs completion interface and provides an environment
5691 that allows users to concentrate more on their own work. Its features are:
5692 a visual interface, reduce overhead of completion by using statistic method,
5693 extensibility.")
5694 (license license:gpl3+)))
5695
5696 (define-public m17n-db
5697 (package
5698 (name "m17n-db")
5699 (version "1.8.0")
5700 (source
5701 (origin
5702 (method url-fetch)
5703 (uri (string-append "mirror://savannah/m17n/m17n-db-"
5704 version ".tar.gz"))
5705 (sha256
5706 (base32
5707 "0vfw7z9i2s9np6nmx1d4dlsywm044rkaqarn7akffmb6bf1j6zv5"))))
5708 (build-system gnu-build-system)
5709 (inputs
5710 `(("gettext" ,gettext-minimal)))
5711 (arguments
5712 `(#:configure-flags
5713 (list (string-append "--with-charmaps="
5714 (assoc-ref %build-inputs "libc")
5715 "/share/i18n/charmaps"))))
5716 ;; With `guix lint' the home-page URI returns a small page saying
5717 ;; that your browser does not handle frames. This triggers the "URI
5718 ;; returns suspiciously small file" warning.
5719 (home-page "https://www.nongnu.org/m17n/")
5720 (synopsis "Multilingual text processing library (database)")
5721 (description "The m17n library realizes multilingualization of
5722 many aspects of applications. The m17n library represents
5723 multilingual text as an object named M-text. M-text is a string with
5724 attributes called text properties, and designed to substitute for
5725 string in C. Text properties carry any information required to input,
5726 display and edit the text.
5727
5728 This package contains the library database.")
5729 (license license:lgpl2.1+)))
5730
5731 (define-public m17n-lib
5732 (package
5733 (name "m17n-lib")
5734 (version "1.8.0")
5735 (source
5736 (origin
5737 (method url-fetch)
5738 (uri (string-append "mirror://savannah/m17n/m17n-lib-"
5739 version ".tar.gz"))
5740 (sha256
5741 (base32
5742 "0jp61y09xqj10mclpip48qlfhniw8gwy8b28cbzxy8hq8pkwmfkq"))))
5743 (build-system gnu-build-system)
5744 (inputs
5745 `(("fribidi" ,fribidi)
5746 ("gd" ,gd)
5747 ("libotf" ,libotf)
5748 ("libxft" ,libxft)
5749 ("libxml2" ,libxml2)
5750 ("m17n-db" ,m17n-db)))
5751 (arguments
5752 `(#:parallel-build? #f))
5753 ;; With `guix lint' the home-page URI returns a small page saying
5754 ;; that your browser does not handle frames. This triggers the "URI
5755 ;; returns suspiciously small file" warning.
5756 (home-page "https://www.nongnu.org/m17n/")
5757 (synopsis "Multilingual text processing library (runtime)")
5758 (description "The m17n library realizes multilingualization of
5759 many aspects of applications. The m17n library represents
5760 multilingual text as an object named M-text. M-text is a string with
5761 attributes called text properties, and designed to substitute for
5762 string in C. Text properties carry any information required to input,
5763 display and edit the text.
5764
5765 This package contains the library runtime.")
5766 (license license:lgpl2.1+)))
5767
5768 (define-public emacs-nginx-mode
5769 (package
5770 (name "emacs-nginx-mode")
5771 (version "1.1.9")
5772 (source
5773 (origin
5774 (method url-fetch)
5775 (uri (string-append
5776 "https://github.com/ajc/nginx-mode/archive/v"
5777 version ".tar.gz"))
5778 (file-name (string-append name "-" version ".tar.gz"))
5779 (sha256
5780 (base32
5781 "0bzyrj6zz1hm67bkhw23bam7qc869s3zg7m1rb1c3aa4n0aw90cq"))))
5782 (build-system emacs-build-system)
5783 (home-page "https://github.com/ajc/nginx-mode")
5784 (synopsis "Emacs major mode for editing nginx config files")
5785 (description "This package provides an Emacs major mode for
5786 editing nginx config files.")
5787 (license license:gpl2+)))
5788
5789 (define-public emacs-stream
5790 (package
5791 (name "emacs-stream")
5792 (version "2.2.0")
5793 (home-page "https://github.com/NicolasPetton/stream")
5794 (source
5795 (origin
5796 (method url-fetch)
5797 (file-name (string-append name "-" version ".tar.gz"))
5798 (uri (string-append home-page "/archive/"version ".tar.gz"))
5799 (sha256
5800 (base32 "03ql4nqfz5pn55mjly6clhvc3g7x2d28kj7mrlqmigvjbql39xxc"))))
5801 (build-system emacs-build-system)
5802 (synopsis "Implementation of streams for Emacs")
5803 (description "This library provides an implementation of streams for Emacs.
5804 Streams are implemented as delayed evaluation of cons cells.")
5805 (license license:gpl3+)))
5806
5807 (define-public emacs-el-search
5808 (let ((commit "f26277bfbb3fc3fc74beea6592f294c439796bd4")
5809 (revision "1"))
5810 (package
5811 (name "emacs-el-search")
5812 ;; No ufficial release.
5813 (version (string-append "0.0-" revision "." (string-take commit 7)))
5814 (home-page "https://github.com/emacsmirror/el-search")
5815 (source
5816 (origin
5817 (method git-fetch)
5818 (file-name (string-append name "-" version ".tar.gz"))
5819 (uri (git-reference
5820 (commit commit)
5821 (url (string-append home-page ".git"))))
5822 (sha256
5823 (base32 "12xf40h9sb7xxg2r97gsia94q02543mgiiiw46fzh1ac7b7993g6"))))
5824 (build-system emacs-build-system)
5825 (inputs `(("emacs-stream" ,emacs-stream)))
5826 (synopsis "Expression based interactive search for emacs-lisp-mode")
5827 (description "This package provides expression based interactive search
5828 procedures for emacs-lisp-mode.")
5829 (license license:gpl3+))))
5830
5831 (define-public emacs-ht
5832 (package
5833 (name "emacs-ht")
5834 (version "2.1")
5835 (source
5836 (origin
5837 (method url-fetch)
5838 (uri (string-append
5839 "https://github.com/Wilfred/ht.el/archive/"
5840 version ".tar.gz"))
5841 (file-name (string-append name "-" version ".tar.gz"))
5842 (sha256
5843 (base32
5844 "1lpba36kzxcc966fvsbrfpy8ah9gnvay0yk26gbyjil0rggrbqzj"))))
5845 (build-system emacs-build-system)
5846 (propagated-inputs `(("emacs-dash" ,emacs-dash)))
5847 (home-page "https://github.com/Wilfred/ht.el")
5848 (synopsis "Hash table library for Emacs")
5849 (description
5850 "This package simplifies the use of hash tables in elisp. It also
5851 provides functions to convert hash tables from and to alists and plists.")
5852 (license license:gpl3+)))
5853
5854 (define-public emacs-log4e
5855 (package
5856 (name "emacs-log4e")
5857 (version "0.3.0")
5858 (source
5859 (origin
5860 (method url-fetch)
5861 (uri (string-append
5862 "https://github.com/aki2o/log4e/archive/v"
5863 version ".tar.gz"))
5864 (file-name (string-append name "-" version ".tar.gz"))
5865 (sha256
5866 (base32
5867 "0nbdpbw353snda3v19l9hsm6gimppwnpxj18amm350bm81lyim2g"))))
5868 (build-system emacs-build-system)
5869 (arguments
5870 `(#:phases
5871 (modify-phases %standard-phases
5872 (add-after 'unpack 'remove-tests
5873 ;; Guile builder complains about null characters in some
5874 ;; strings of test files. Remove "test" directory (it is not
5875 ;; needed anyway).
5876 (lambda _
5877 (delete-file-recursively "test"))))))
5878 (home-page "https://github.com/aki2o/log4e")
5879 (synopsis "Logging framework for elisp")
5880 (description
5881 "This package provides a logging framework for elisp. It allows
5882 you to deal with multiple log levels.")
5883 (license license:gpl3+)))
5884
5885 (define-public emacs-gntp
5886 (package
5887 (name "emacs-gntp")
5888 (version "0.1")
5889 (source
5890 (origin
5891 (method url-fetch)
5892 (uri (string-append
5893 "https://github.com/tekai/gntp.el/archive/v"
5894 version ".tar.gz"))
5895 (file-name (string-append name "-" version ".tar.gz"))
5896 (sha256
5897 (base32
5898 "16c1dfkia9yhl206bdhjr3b8kfvqcqr38jl5lq8qsyrrzsnmghny"))))
5899 (build-system emacs-build-system)
5900 (home-page "https://github.com/tekai/gntp.el")
5901 (synopsis "Growl Notification Protocol for Emacs")
5902 (description
5903 "This package implements the Growl Notification Protocol GNTP
5904 described at @uref{http://www.growlforwindows.com/gfw/help/gntp.aspx}.
5905 It is incomplete as it only lets you send but not receive
5906 notifications.")
5907 (license license:bsd-3)))
5908
5909 (define-public emacs-alert
5910 (package
5911 (name "emacs-alert")
5912 (version "1.2")
5913 (source
5914 (origin
5915 (method url-fetch)
5916 (uri (string-append
5917 "https://github.com/jwiegley/alert/archive/v"
5918 version ".tar.gz"))
5919 (file-name (string-append name "-" version ".tar.gz"))
5920 (sha256
5921 (base32
5922 "1693kck3k2iz5zhpmxwqyafxm68hr6gzs60lkxd3j1wlp2c9fwyr"))))
5923 (build-system emacs-build-system)
5924 (propagated-inputs
5925 `(("emacs-gntp" ,emacs-gntp)
5926 ("emacs-log4e" ,emacs-log4e)))
5927 (home-page "https://github.com/jwiegley/alert")
5928 (synopsis "Growl-style notification system for Emacs")
5929 (description
5930 "Alert is a Growl-workalike for Emacs which uses a common notification
5931 interface and multiple, selectable \"styles\", whose use is fully
5932 customizable by the user.")
5933 (license license:gpl2+)))
5934
5935 (define-public emacs-mu4e-alert
5936 (package
5937 (name "emacs-mu4e-alert")
5938 (version "1.0")
5939 (source
5940 (origin
5941 (method url-fetch)
5942 (uri (string-append
5943 "https://github.com/iqbalansari/mu4e-alert/archive/v"
5944 version ".tar.gz"))
5945 (file-name (string-append name "-" version ".tar.gz"))
5946 (sha256
5947 (base32
5948 "07qc834qnxn8xi4bw5nawj8g91bmkzw0r0vahkgysp7r9xrf57gj"))))
5949 (build-system emacs-build-system)
5950 (propagated-inputs
5951 `(("emacs-alert" ,emacs-alert)
5952 ("emacs-s" ,emacs-s)
5953 ("emacs-ht" ,emacs-ht)
5954 ("mu" ,mu)))
5955 (home-page "https://github.com/iqbalansari/mu4e-alert")
5956 (synopsis "Desktop notification for mu4e")
5957 (description
5958 "This package provides desktop notifications for mu4e.
5959 Additionally it can display the number of unread emails in the
5960 mode-line.")
5961 (license license:gpl3+)))
5962
5963 (define-public emacs-pretty-mode
5964 (package
5965 (name "emacs-pretty-mode")
5966 (version "2.0.3")
5967 (source
5968 (origin
5969 (method url-fetch)
5970 (uri (string-append "https://github.com/akatov/pretty-mode/"
5971 "archive/" version ".tar.gz"))
5972 (file-name (string-append name "-" version ".tar.gz"))
5973 (sha256
5974 (base32
5975 "1fan7m4vnqs8kpg7r54kx3g7faadkpkf9kzarfv8n57kq8w157pl"))))
5976 (build-system emacs-build-system)
5977 (home-page "https://github.com/akatov/pretty-mode")
5978 (synopsis "Redisplay parts of the buffer as Unicode symbols")
5979 (description
5980 "Emacs minor mode for redisplaying parts of the buffer as pretty symbols.")
5981 (license license:gpl3+)))
5982
5983 (define-public emacs-yasnippet
5984 (package
5985 (name "emacs-yasnippet")
5986 (version "0.13.0")
5987 (source (origin
5988 (method url-fetch)
5989 (uri (string-append "https://github.com/joaotavora/yasnippet/"
5990 "archive/" version ".tar.gz"))
5991 (file-name (string-append name "-" version ".tar.gz"))
5992 (sha256
5993 (base32
5994 "12ls2x17agzbrj1xynjbmfa11igqxia4hj4fv6fpr66yci2r1plc"))
5995 (modules '((guix build utils)))
5996 (snippet
5997 '(begin
5998 ;; YASnippet expects a "snippets" subdirectory in the same
5999 ;; directory as yasnippet.el, but we don't install it
6000 ;; because it's a git submodule pointing to an external
6001 ;; repository. Adjust `yas-snippet-dirs' to prevent
6002 ;; warnings about a missing directory.
6003 (substitute* "yasnippet.el"
6004 (("^ +'yas-installed-snippets-dir\\)\\)\n")
6005 "))\n"))
6006 #t))))
6007 (build-system emacs-build-system)
6008 (home-page "https://github.com/joaotavora/yasnippet")
6009 (synopsis "Yet another snippet extension for Emacs")
6010 (description
6011 "YASnippet is a template system for Emacs. It allows you to type an
6012 abbreviation and automatically expand it into function templates.")
6013 (license license:gpl3+)))
6014
6015 (define-public emacs-yasnippet-snippets
6016 (let ((commit "885050d34737e2fb36a3e7759d60c09347bd4ce0")
6017 (revision "1"))
6018 (package
6019 (name "emacs-yasnippet-snippets")
6020 (version (string-append "1-" revision "." (string-take commit 8)))
6021 (source
6022 (origin
6023 (method git-fetch)
6024 (uri (git-reference
6025 (url "https://github.com/AndreaCrotti/yasnippet-snippets")
6026 (commit commit)))
6027 (file-name (string-append name "-" version "-checkout"))
6028 (sha256
6029 (base32
6030 "1m935zgglw0iakzrixld5rcjz3wnj84f8wy2mvc3pggjri9l0qr9"))))
6031 (build-system trivial-build-system)
6032 (arguments
6033 `(#:modules ((ice-9 ftw)
6034 (ice-9 regex)
6035 (guix build utils))
6036 #:builder
6037 (begin
6038 (use-modules (ice-9 ftw)
6039 (ice-9 regex)
6040 (guix build utils))
6041 (with-directory-excursion (assoc-ref %build-inputs "source")
6042 (for-each (lambda (dir)
6043 (copy-recursively
6044 dir
6045 (string-append %output
6046 "/share/emacs/yasnippet-snippets/"
6047 dir)))
6048 (scandir "." (lambda (fname)
6049 (and (string-match "-mode$" fname)
6050 (directory-exists? fname))))))
6051 #t)))
6052 (home-page "https://github.com/AndreaCrotti/yasnippet-snippets")
6053 (synopsis "Collection of YASnippet snippets for many languages")
6054 (description
6055 "Provides Andrea Crotti's collection of YASnippet snippets. After installation,
6056 the snippets will be in \"~/.guix-profile/share/emacs/yasnippet-snippets/\".
6057 To make YASnippet aware of these snippets, add the above directory to
6058 @code{yas-snippet-dirs}.")
6059 (license license:expat))))
6060
6061 (define-public emacs-helm-c-yasnippet
6062 (let ((commit "65ca732b510bfc31636708aebcfe4d2d845b59b0")
6063 (revision "1"))
6064 (package
6065 (name "emacs-helm-c-yasnippet")
6066 (version (string-append "0.6.7" "-" revision "."
6067 (string-take commit 7)))
6068 (source (origin
6069 (method git-fetch)
6070 (uri (git-reference
6071 (url "https://github.com/emacs-jp/helm-c-yasnippet")
6072 (commit commit)))
6073 (file-name (string-append name "-" version "-checkout"))
6074 (sha256
6075 (base32
6076 "1cbafjqlzxbg19xfdqsinsh7afq58gkf44rsg1qxfgm8g6zhr7f8"))))
6077 (build-system emacs-build-system)
6078 (propagated-inputs
6079 `(("emacs-helm" ,emacs-helm)
6080 ("emacs-yasnippet" ,emacs-yasnippet)))
6081 (home-page "https://github.com/emacs-jp/helm-c-yasnippet")
6082 (synopsis "Helm integration for Yasnippet")
6083 (description "This Emacs library provides Helm interface for
6084 Yasnippet.")
6085 (license license:gpl2+))))
6086
6087 (define-public emacs-helm-system-packages
6088 (package
6089 (name "emacs-helm-system-packages")
6090 (version "1.10.1")
6091 (source (origin
6092 (method git-fetch)
6093 (uri (git-reference
6094 (url "https://github.com/emacs-helm/helm-system-packages")
6095 (commit (string-append "v" version))))
6096 (file-name (string-append name "-" version "-checkout"))
6097 (sha256
6098 (base32
6099 "01by0c4lqi2cw8xmbxkjw7m9x78zssm31sx4hdpw5j35s2951j0f"))))
6100 (build-system emacs-build-system)
6101 (inputs
6102 `(("recutils" ,recutils)))
6103 (propagated-inputs
6104 `(("emacs-helm" ,emacs-helm)))
6105 (arguments
6106 `(#:phases
6107 (modify-phases %standard-phases
6108 (add-after 'unpack 'configure
6109 (lambda* (#:key inputs outputs #:allow-other-keys)
6110 (let ((recutils (assoc-ref inputs "recutils")))
6111 ;; Specify the absolute file names of the various
6112 ;; programs so that everything works out-of-the-box.
6113 (substitute* "helm-system-packages-guix.el"
6114 (("recsel") (string-append recutils "/bin/recsel")))))))))
6115 (home-page "https://github.com/emacs-helm/helm-system-packages")
6116 (synopsis "Helm System Packages is an interface to your package manager")
6117 (description "List all available packages in Helm (with installed
6118 packages displayed in their own respective face). Fuzzy-search, mark and
6119 execute the desired action over any selections of packages: Install,
6120 uninstall, display packages details (in Org Mode) or insert details at point,
6121 find files owned by packages... And much more, including performing all the
6122 above over the network.")
6123 (license license:gpl3+)))
6124
6125 (define-public emacs-memoize
6126 (package
6127 (name "emacs-memoize")
6128 (version "1.1")
6129 (source
6130 (origin
6131 (method url-fetch)
6132 (uri (string-append
6133 "https://github.com/skeeto/emacs-memoize/archive/"
6134 version ".tar.gz"))
6135 (file-name (string-append name "-" version ".tar.gz"))
6136 (sha256
6137 (base32
6138 "05ijgwi4ymxx31vpjm2pn356j85cykknajn14lrzz8pn5sh0vrg4"))))
6139 (build-system emacs-build-system)
6140 (arguments
6141 `(#:tests? #t
6142 #:test-command '("emacs" "--batch"
6143 "-l" "memoize-test.el"
6144 "-f" "ert-run-tests-batch-and-exit")))
6145 (home-page "https://github.com/skeeto/emacs-memoize")
6146 (synopsis "Emacs lisp memoization library")
6147 (description "@code{emacs-memoize} is an Emacs library for
6148 memoizing functions.")
6149 (license license:unlicense)))
6150
6151 (define-public emacs-linum-relative
6152 (package
6153 (name "emacs-linum-relative")
6154 (version "0.5")
6155 (source
6156 (origin
6157 (method url-fetch)
6158 (uri (string-append
6159 "https://github.com/coldnew/linum-relative/archive/"
6160 version ".tar.gz"))
6161 (file-name (string-append name "-" version ".tar.gz"))
6162 (sha256
6163 (base32
6164 "0s4frvr27866lw1rn3jal9wj5rkz9fx4yiszqv7w06azsdgsqksv"))))
6165 (build-system emacs-build-system)
6166 (home-page "https://github.com/coldnew/linum-relative")
6167 (synopsis "Relative line numbering for Emacs")
6168 (description "@code{emacs-linum-relative} displays the relative line
6169 number on the left margin in Emacs.")
6170 (license license:gpl2+)))
6171
6172 (define-public emacs-idle-highlight
6173 (package
6174 (name "emacs-idle-highlight")
6175 (version "1.1.3")
6176 (source
6177 (origin
6178 (method url-fetch)
6179 (uri (string-append
6180 "https://github.com/nonsequitur/idle-highlight-mode/archive/"
6181 version ".tar.gz"))
6182 (file-name (string-append name "-" version ".tar.gz"))
6183 (sha256
6184 (base32
6185 "0kdv10hrgqpskjh0zvpnzwlkn5bccnqxas62gkws6njln57bf8nl"))))
6186 (build-system emacs-build-system)
6187 (home-page "https://www.emacswiki.org/emacs/IdleHighlight")
6188 (synopsis "Highlights all occurrences of the word the point is on")
6189 (description
6190 "This Emacs package provides @code{idle-highlight-mode} that sets
6191 an idle timer to highlight all occurrences in the buffer of the word under
6192 the point.")
6193 (license license:gpl3+)))
6194
6195 (define-public emacs-ox-twbs
6196 (package
6197 (name "emacs-ox-twbs")
6198 (version "1.1.1")
6199 (source
6200 (origin
6201 (method url-fetch)
6202 (uri (string-append
6203 "https://github.com/marsmining/ox-twbs/archive/v"
6204 version ".tar.gz"))
6205 (file-name (string-append name "-" version ".tar.gz"))
6206 (sha256
6207 (base32
6208 "1zaq8dczq5wijjk36114k2x3hfrqig3lyx6djril6wyk67vczyqs"))))
6209 (build-system emacs-build-system)
6210 (home-page "https://github.com/marsmining/ox-twbs")
6211 (synopsis "Export org-mode docs as HTML compatible with Twitter Bootstrap")
6212 (description
6213 "This Emacs package outputs your org-mode docs with a simple, clean and
6214 modern look. It implements a new HTML back-end for exporting org-mode docs as
6215 HTML compatible with Twitter Bootstrap. By default, HTML is exported with
6216 jQuery and Bootstrap resources included via osscdn.")
6217 (license license:gpl3+)))
6218
6219 (define-public emacs-highlight-sexp
6220 (package
6221 (name "emacs-highlight-sexp")
6222 (version "1.0")
6223 (source
6224 (origin
6225 (method url-fetch)
6226 (uri (string-append
6227 "https://github.com/daimrod/highlight-sexp/archive/v"
6228 version ".tar.gz"))
6229 (file-name (string-append name "-" version ".tar.gz"))
6230 (sha256
6231 (base32
6232 "0jwx87qkln1rg9wmv4qkgkml935fh2pkgrg5x4ca6n5dgb4q6rj1"))))
6233 (build-system emacs-build-system)
6234 (home-page "https://github.com/daimrod/highlight-sexp")
6235 (synopsis "Minor mode that highlights the s-exp at the current position")
6236 (description
6237 "This Emacs package highlights the s-exp at the current position.")
6238 (license license:gpl3+)))
6239
6240 (define-public emacs-highlight-stages
6241 (let ((commit "29cbc5b78261916da042ddb107420083da49b271")
6242 (revision "1"))
6243 (package
6244 (name "emacs-highlight-stages")
6245 (version (string-append "1.1.0" "-" revision "." (string-take commit 7)))
6246 (source
6247 (origin
6248 (method git-fetch)
6249 (uri (git-reference
6250 (url "https://github.com/zk-phi/highlight-stages.git")
6251 (commit commit)))
6252 (file-name (string-append name "-" version "-checkout"))
6253 (sha256
6254 (base32
6255 "0r6nbcrr0dqpgm8dir8ahzjy7rw4nrac48byamzrq96r7ajlxlv0"))
6256 (patches
6257 (search-patches "emacs-highlight-stages-add-gexp.patch"))))
6258 (build-system emacs-build-system)
6259 (home-page "https://github.com/wigust/highlight-stages")
6260 (synopsis "Minor mode that highlights (quasi-quoted) expressions")
6261 (description "@code{highlight-stages} provides an Emacs minor mode that
6262 highlights quasi-quoted expressions.")
6263 (license license:gpl3+))))
6264
6265 (define-public emacspeak
6266 (package
6267 (name "emacspeak")
6268 (version "48.0")
6269 (source
6270 (origin
6271 (method url-fetch)
6272 (uri (string-append
6273 "https://github.com/tvraman/emacspeak/releases/download/"
6274 version "/emacspeak-" version ".tar.bz2"))
6275 (sha256
6276 (base32
6277 "07imi3hji06b3r7v7v59978q76s8a7ynmxwfc9j03pgnv965lpjy"))))
6278 (build-system gnu-build-system)
6279 (arguments
6280 '(#:make-flags (list (string-append "prefix="
6281 (assoc-ref %outputs "out")))
6282 #:phases
6283 (modify-phases %standard-phases
6284 (replace 'configure
6285 (lambda* (#:key outputs #:allow-other-keys)
6286 (let* ((out (assoc-ref outputs "out"))
6287 (lisp (string-append out
6288 "/share/emacs/site-lisp/emacspeak")))
6289 (setenv "SHELL" (which "sh"))
6290 ;; Configure Emacspeak according to etc/install.org.
6291 (invoke "make" "config"))))
6292 (add-after 'build 'build-espeak
6293 (lambda _
6294 (invoke "make" "espeak")))
6295 (replace 'install
6296 (lambda* (#:key inputs outputs #:allow-other-keys)
6297 (let* ((out (assoc-ref outputs "out"))
6298 (bin (string-append out "/bin"))
6299 (lisp (string-append out "/share/emacs/site-lisp/emacspeak"))
6300 (info (string-append out "/share/info"))
6301 (emacs (string-append (assoc-ref inputs "emacs")
6302 "/bin/emacs")))
6303 ;; According to etc/install.org, the Emacspeak directory should
6304 ;; be copied to its installation destination.
6305 (for-each
6306 (lambda (file)
6307 (copy-recursively file (string-append lisp "/" file)))
6308 '("etc" "info" "js" "lisp" "media" "scapes" "servers" "sounds"
6309 "stumpwm" "xsl"))
6310 ;; Make sure emacspeak is loaded from the correct directory.
6311 (substitute* "etc/emacspeak.sh"
6312 (("exec FLAVOR.*")
6313 (string-append "exec " emacs " -l " lisp
6314 "/lisp/emacspeak-setup.el $CL_ALL")))
6315 ;; Install the convenient startup script.
6316 (mkdir-p bin)
6317 (copy-file "etc/emacspeak.sh" (string-append bin "/emacspeak")))
6318 #t))
6319 (add-after 'install 'wrap-program
6320 (lambda* (#:key inputs outputs #:allow-other-keys)
6321 (let* ((out (assoc-ref outputs "out"))
6322 (emacspeak (string-append out "/bin/emacspeak"))
6323 (espeak (string-append (assoc-ref inputs "espeak")
6324 "/bin/espeak")))
6325 ;; The environment variable DTK_PROGRAM tells emacspeak what
6326 ;; program to use for speech.
6327 (wrap-program emacspeak
6328 `("DTK_PROGRAM" ":" prefix (,espeak)))
6329 #t))))
6330 #:tests? #f)) ; no check target
6331 (inputs
6332 `(("emacs" ,emacs)
6333 ("espeak" ,espeak)
6334 ("perl" ,perl)
6335 ("tcl" ,tcl)
6336 ("tclx" ,tclx)))
6337 (home-page "http://emacspeak.sourceforge.net")
6338 (synopsis "Audio desktop interface for Emacs")
6339 (description
6340 "Emacspeak is a speech interface that allows visually impaired users to
6341 interact independently and efficiently with the computer. Audio formatting
6342 --a technique pioneered by AsTeR-- and full support for W3C's Aural CSS (ACSS)
6343 allows Emacspeak to produce rich aural presentations of electronic information.
6344 By seamlessly blending all aspects of the Internet such as Web-surfing and
6345 messaging, Emacspeak speech-enables local and remote information via a
6346 consistent and well-integrated user interface.")
6347 (license license:gpl2+)))
6348
6349 (define-public emacs-adaptive-wrap
6350 (package
6351 (name "emacs-adaptive-wrap")
6352 (version "0.5.1")
6353 (source (origin
6354 (method url-fetch)
6355 (uri (string-append
6356 "http://elpa.gnu.org/packages/adaptive-wrap-"
6357 version ".el"))
6358 (sha256
6359 (base32
6360 "0qi7gjprcpywk2daivnlavwsx53hl5wcqvpxbwinvigg42vxh3ll"))))
6361 (build-system emacs-build-system)
6362 (home-page "http://elpa.gnu.org/packages/adaptive-wrap.html")
6363 (synopsis "Smart line-wrapping with wrap-prefix")
6364 (description
6365 "This Emacs package provides the @code{adaptive-wrap-prefix-mode}
6366 minor mode which sets the wrap-prefix property on the fly so that
6367 single-long-line paragraphs get word-wrapped in a way similar to what
6368 you'd get with @kbd{M-q} using @code{adaptive-fill-mode}, but without
6369 actually changing the buffer's text.")
6370 (license license:gpl3+)))
6371
6372 (define-public emacs-diff-hl
6373 (package
6374 (name "emacs-diff-hl")
6375 (version "1.8.4")
6376 (source
6377 (origin
6378 (method url-fetch)
6379 (uri (string-append "http://elpa.gnu.org/packages/diff-hl-"
6380 version ".tar"))
6381 (sha256
6382 (base32
6383 "0axhidc3cym7a2x4rpxf4745qss9s9ajyg4s9h5b4zn7v7fyp71n"))))
6384 (build-system emacs-build-system)
6385 (home-page "https://github.com/dgutov/diff-hl")
6386 (synopsis
6387 "Highlight uncommitted changes using VC")
6388 (description
6389 "@code{diff-hl-mode} highlights uncommitted changes on the side of the
6390 window (using the fringe, by default), allows you to jump between
6391 the hunks and revert them selectively.")
6392 (license license:gpl3+)))
6393
6394 (define-public emacs-diminish
6395 (package
6396 (name "emacs-diminish")
6397 (version "0.45")
6398 (source
6399 (origin
6400 (method url-fetch)
6401 (uri (string-append
6402 "https://github.com/myrjola/diminish.el/archive/v"
6403 version ".tar.gz"))
6404 (file-name (string-append name "-" version ".tar.gz"))
6405 (sha256
6406 (base32
6407 "0i3629sv5cfrrb00hcnmaqzgs8mk36yasc1ax3ry1ga09nr6rkj9"))))
6408 (build-system emacs-build-system)
6409 (home-page "https://github.com/myrjola/diminish.el")
6410 (synopsis "Diminish minor modes with no modeline display")
6411 (description "@code{emacs-diminish} implements hiding or
6412 abbreviation of the mode line displays (lighters) of minor modes.")
6413 (license license:gpl2+)))
6414
6415 (define-public emacs-use-package
6416 (let ((commit "da8c9e2840343906e732f9699e43d35a1f06481d")
6417 (revision "1"))
6418 (package
6419 (name "emacs-use-package")
6420 (version (git-version "2.3" revision commit))
6421 (source (origin
6422 (method git-fetch)
6423 (uri (git-reference
6424 (url "https://github.com/jwiegley/use-package")
6425 (commit commit)))
6426 (file-name (git-file-name name version))
6427 (sha256
6428 (base32
6429 "0jz38pbq1p9h85i6qcsh3sfzkd103y6mw3rg5zd14dxigp8ir3xz"))))
6430 (build-system emacs-build-system)
6431 (propagated-inputs
6432 `(("emacs-diminish" ,emacs-diminish)))
6433 (arguments
6434 `(#:tests? #t
6435 #:test-command '("emacs" "--batch"
6436 "-l" "use-package-tests.el"
6437 "-f" "ert-run-tests-batch-and-exit")))
6438 (home-page "https://github.com/jwiegley/use-package")
6439 (synopsis "Declaration for simplifying your .emacs")
6440 (description "The use-package macro allows you to isolate package
6441 configuration in your @file{.emacs} file in a way that is both
6442 performance-oriented and tidy.")
6443 (license license:gpl2+))))
6444
6445 (define-public emacs-strace-mode
6446 (let* ((commit "6a69b4b06db6797af56f33eda5cb28af94e59f11")
6447 (revision "1"))
6448 (package
6449 (name "emacs-strace-mode")
6450 (version (string-append "0.0.2-" revision "." (string-take commit 7)))
6451 (source (origin
6452 (method git-fetch)
6453 (uri (git-reference
6454 (url "https://github.com/pkmoore/strace-mode")
6455 (commit commit)))
6456 (file-name (string-append name "-" version "-checkout"))
6457 (sha256
6458 (base32
6459 "1lbk2kzdznf2bkfazizfbimaxxzfzv00lrz1ran9dc2zqbc0bj9f"))))
6460 (build-system emacs-build-system)
6461 (home-page "https://github.com/pkmoore/strace-mode")
6462 (synopsis "Emacs major mode to highlight strace outputs")
6463 (description "@code{emacs-strace-mode} provides an Emacs major mode
6464 highlighting strace outputs.")
6465 (license license:gpl3+))))
6466
6467 (define-public emacs-default-encrypt
6468 (package
6469 (name "emacs-default-encrypt")
6470 (version "4.3")
6471 (source
6472 (origin
6473 (method url-fetch)
6474 (uri (string-append
6475 "https://www.informationelle-selbstbestimmung-im-internet.de"
6476 "/emacs/jl-encrypt" version "/jl-encrypt.el"))
6477 (file-name (string-append "jl-encrypt-" version ".el"))
6478 (sha256
6479 (base32
6480 "16i3rlfp3jxlqvndn8idylhmczync3gwmy8a019v29vyr48rnnr0"))))
6481 (build-system emacs-build-system)
6482 (home-page "https://www.informationelle-selbstbestimmung-im-internet.de/Emacs.html")
6483 (synopsis "Automatically encrypt or sign Gnus messages in Emacs")
6484 (description
6485 "DefaultEncrypt is designed to be used with Gnus in Emacs. It
6486 automatically encrypts messages that you send (e.g., email) when public keys
6487 for all recipients are available, and it protects you from accidentally
6488 sending un-encrypted messages. It can also be configured to automatically
6489 sign messages that you send. For details and instructions on how to use
6490 DefaultEncrypt, please refer to the home page or read the comments in the
6491 source file, @file{jl-encrypt.el}.")
6492 (license license:gpl3+)))
6493
6494 (define-public emacs-htmlize
6495 (package
6496 (name "emacs-htmlize")
6497 (version "1.53")
6498 (source
6499 (origin
6500 (method url-fetch)
6501 (uri (string-append
6502 "https://github.com/hniksic/emacs-htmlize/archive/release/"
6503 version ".tar.gz"))
6504 (file-name (string-append name "-" version ".tar.gz"))
6505 (sha256
6506 (base32
6507 "1lzaf9m1qr9dhw4nn53g6wszk2vqw95gpsbrc3y85bams4cn24ga"))))
6508 (build-system emacs-build-system)
6509 (home-page "https://github.com/hniksic/emacs-htmlize")
6510 (synopsis "Convert buffer text and decorations to HTML")
6511 (description "@code{emacs-htmlize} converts the buffer text and
6512 the associated decorations to HTML. Output to CSS, inline CSS and
6513 fonts is supported.")
6514 (license license:gpl2+)))
6515
6516 (define-public emacs-xmlgen
6517 (package
6518 (name "emacs-xmlgen")
6519 (version "0.5")
6520 (source
6521 (origin
6522 (method url-fetch)
6523 (uri (string-append
6524 "https://github.com/philjackson/xmlgen/archive/"
6525 version ".tar.gz"))
6526 (file-name (string-append name "-" version ".tar.gz"))
6527 (sha256
6528 (base32
6529 "0zay490vjby3f7455r0vydmjg7q1gwc78hilpfb0rg4gwz224z8r"))))
6530 (build-system emacs-build-system)
6531 (arguments
6532 `(#:tests? #t
6533 #:test-command '("emacs" "--batch"
6534 "-l" "xmlgen-test.el"
6535 "-f" "ert-run-tests-batch-and-exit")))
6536 (home-page "https://github.com/philjackson/xmlgen")
6537 (synopsis "S-expression to XML domain specific language (DSL) in
6538 Emacs Lisp")
6539 (description "@code{emacs-xmlgen} provides S-expression to XML
6540 conversion for Emacs Lisp.")
6541 (license license:gpl2+)))
6542
6543 (define-public emacs-cdlatex
6544 (package
6545 (name "emacs-cdlatex")
6546 (version "4.7")
6547 (source
6548 (origin
6549 (method url-fetch)
6550 (uri (string-append
6551 "https://github.com/cdominik/cdlatex/archive/"
6552 version ".tar.gz"))
6553 (file-name (string-append name "-" version ".tar.gz"))
6554 (sha256
6555 (base32
6556 "0pivapphmykc6vhvpx7hdyl55ls37vc4jcrxpvs4yk7jzcmwa9xp"))))
6557 (build-system emacs-build-system)
6558 (propagated-inputs
6559 `(("emacs-auctex" ,emacs-auctex)))
6560 (home-page "https://github.com/cdominik/cdlatex")
6561 (synopsis "Fast Emacs input methods for LaTeX environments and
6562 math")
6563 (description "CDLaTeX is an Emacs minor mode supporting fast
6564 insertion of environment templates and math in LaTeX. Similar
6565 commands are also offered as part of the AUCTeX package, but it is not
6566 the same - CDLaTeX focuses on speediness for inserting LaTeX
6567 constructs.")
6568 (license license:gpl3+)))
6569
6570 (define-public emacs-cnfonts
6571 (package
6572 (name "emacs-cnfonts")
6573 (version "0.9.1")
6574 (source (origin
6575 (method url-fetch)
6576 (uri (string-append
6577 "https://github.com/tumashu/cnfonts/archive/v"
6578 version ".tar.gz"))
6579 (file-name (string-append name "-" version ".tar.gz"))
6580 (sha256
6581 (base32
6582 "1l6cgcvc6md1zq97ccczankpyi0k4vjx6apflny6kjq3p33lyhf4"))))
6583 (build-system emacs-build-system)
6584 (home-page "https://github.com/tumashu/cnfonts")
6585 (synopsis "Emacs Chinese fonts setup tool")
6586 (description "cnfonts is a Chinese fonts setup tool, allowing for easy
6587 configuration of Chinese fonts.")
6588 (license license:gpl2+)))
6589
6590 (define-public emacs-php-mode
6591 (package
6592 (name "emacs-php-mode")
6593 (version "20171225.342")
6594 (source (origin
6595 (method url-fetch)
6596 (uri (string-append
6597 "https://melpa.org/packages/php-mode-"
6598 version ".tar"))
6599 (sha256
6600 (base32
6601 "1zz682f34v4wsm2dyj1gnrnvsrqdq1cy7j8p6cvc398w2fziyg3q"))))
6602 (build-system emacs-build-system)
6603 (home-page "https://github.com/ejmr/php-mode")
6604 (synopsis "Major mode for editing PHP code")
6605 (description "@code{php-mode} is a major mode for editing PHP source
6606 code. It's an extension of C mode; thus it inherits all C mode's navigation
6607 functionality. But it colors according to the PHP grammar and indents
6608 according to the PEAR coding guidelines. It also includes a couple handy
6609 IDE-type features such as documentation search and a source and class
6610 browser.")
6611 (license license:gpl3+)))
6612
6613 (define-public emacs-pos-tip
6614 (package
6615 (name "emacs-pos-tip")
6616 (version "0.4.6")
6617 (source (origin
6618 (method url-fetch)
6619 (uri (string-append
6620 "https://github.com/pitkali/pos-tip/archive/"
6621 version ".tar.gz"))
6622 (file-name (string-append name "-" version ".tar.gz"))
6623 (sha256
6624 (base32
6625 "12jqfy26vjk7lq0aa8yn8zqj8c85fkvx7y9prj0pcn4wqiz2ad2r"))))
6626 (build-system emacs-build-system)
6627 ;; The following functions and variables needed by emacs-pos-tip are
6628 ;; not included in emacs-minimal:
6629 ;; x-display-pixel-width, x-display-pixel-height, x-show-tip
6630 (arguments `(#:emacs ,emacs))
6631 (home-page "https://github.com/pitkali/pos-tip")
6632 (synopsis "Show tooltip at point")
6633 (description "The standard library tooltip.el provides a function for
6634 displaying a tooltip at the mouse position. However, locating a tooltip at an
6635 arbitrary buffer position in a window is not easy. Pos-tip provides such a
6636 function to be used by other frontend programs.")
6637 (license license:gpl2+)))
6638
6639 (define-public emacs-pyim-basedict
6640 (package
6641 (name "emacs-pyim-basedict")
6642 (version "0.3.1")
6643 (source (origin
6644 (method url-fetch)
6645 (uri (string-append
6646 "https://github.com/tumashu/pyim-basedict/archive/v"
6647 version ".tar.gz"))
6648 (file-name (string-append name "-" version ".tar.gz"))
6649 (sha256
6650 (base32
6651 "0nfgxviavkgrpyfsw60xsws4fk51fcmgl8fp6zf4ibqjjbp53n3n"))))
6652 (build-system emacs-build-system)
6653 (home-page "https://github.com/tumashu/pyim-basedict")
6654 (synopsis "Input method dictionary of pyim")
6655 (description "Pyim-basedict is the default pinyin input method dictionary,
6656 containing words from the rime project.")
6657 (license license:gpl2+)))
6658
6659 (define-public emacs-pyim
6660 (package
6661 (name "emacs-pyim")
6662 (version "1.8")
6663 (source
6664 (origin
6665 (method git-fetch)
6666 (uri (git-reference
6667 (url "https://github.com/tumashu/pyim")
6668 (commit (string-append "v" version))))
6669 (file-name (git-file-name name version))
6670 (sha256
6671 (base32
6672 "16rma4cv7xgky0g3x4an27v30jdi6i1sqw43cl99zhkqvp43l3f9"))))
6673 (build-system emacs-build-system)
6674 (propagated-inputs
6675 `(("emacs-async" ,emacs-async)
6676 ("emacs-pyim-basedict" ,emacs-pyim-basedict)
6677 ("emacs-popup" ,emacs-popup)
6678 ("emacs-posframe" ,emacs-posframe)))
6679 (home-page "https://github.com/tumashu/pyim")
6680 (synopsis "Chinese input method")
6681 (description "Chinese input method which supports quanpin, shuangpin, wubi
6682 and cangjie.")
6683 (license license:gpl2+)))
6684
6685 (define-public emacs-posframe
6686 (package
6687 (name "emacs-posframe")
6688 (version "0.4.2")
6689 (source
6690 (origin
6691 (method url-fetch)
6692 (uri (string-append
6693 "https://elpa.gnu.org/packages/posframe-" version ".el"))
6694 (sha256
6695 (base32
6696 "1h8vvxvsg41vc1nnglqjs2q0k1yzfsn72skga9s76qa3zxmx6kds"))))
6697 (build-system emacs-build-system)
6698 ;; emacs-minimal does not include the function font-info
6699 (arguments `(#:emacs ,emacs))
6700 (home-page "https://github.com/tumashu/posframe")
6701 (synopsis "Pop a posframe (a child frame) at point")
6702 (description "@code{emacs-posframe} can pop a posframe at point. A
6703 posframe is a child frame displayed within its root window's buffer.
6704 @code{emacs-posframe} is fast and works well with CJK languages.")
6705 (license license:gpl3+)))
6706
6707 (define-public emacs-el2org
6708 (package
6709 (name "emacs-el2org")
6710 (version "0.6.0")
6711 (source (origin
6712 (method url-fetch)
6713 (uri (string-append
6714 "https://github.com/tumashu/el2org/archive/v"
6715 version ".tar.gz"))
6716 (file-name (string-append name "-" version ".tar.gz"))
6717 (sha256
6718 (base32
6719 "0gd3km1swwvg2w0kdi7370f54wgrflxn63gjgssfjc1iyc9sbqwq"))))
6720 (build-system emacs-build-system)
6721 (home-page "https://github.com/tumashu/el2org")
6722 (synopsis "Convert Emacs-lisp file to org file")
6723 (description "El2org is a simple tool, which can convert Emacs-lisp file
6724 to org file, you can use this tool to write orgify commentary.")
6725 (license license:gpl2+)))
6726
6727 (define-public emacs-mustache
6728 (package
6729 (name "emacs-mustache")
6730 (version "0.23")
6731 (source (origin
6732 (method url-fetch)
6733 (uri (string-append
6734 "https://github.com/Wilfred/mustache.el/archive/"
6735 version ".tar.gz"))
6736 (file-name (string-append name "-" version ".tar.gz"))
6737 (sha256
6738 (base32
6739 "0k9lcgil7kykkv1ylrgwy1g13ldjjmgi2cwmysgyb2vlj3jbwpdj"))))
6740 (build-system emacs-build-system)
6741 (propagated-inputs
6742 `(("emacs-dash" ,emacs-dash)
6743 ("emacs-ht" ,emacs-ht)
6744 ("emacs-s" ,emacs-s)))
6745 (home-page "https://github.com/Wilfred/mustache.el")
6746 (synopsis "Mustache templating library for Emacs")
6747 (description "Mustache templating library for Emacs, mustache is
6748 a simple web template system, which is described as a logic-less system
6749 because it lacks any explicit control flow statements, both looping and
6750 conditional evaluation can be achieved using section tags processing lists
6751 and lambdas.")
6752 (license license:gpl3+)))
6753
6754 (define-public emacs-org2web
6755 (package
6756 (name "emacs-org2web")
6757 (version "0.9.1")
6758 (source (origin
6759 (method url-fetch)
6760 (uri (string-append
6761 "https://github.com/tumashu/org2web/archive/v"
6762 version ".tar.gz"))
6763 (file-name (string-append name "-" version ".tar.gz"))
6764 (sha256
6765 (base32
6766 "1c0ixcphlhp4c4qdiwq40bc3yp1gp1llp8pxrk4s7ny9n68s52zp"))))
6767 (build-system emacs-build-system)
6768 (propagated-inputs
6769 `(("emacs-dash" ,emacs-dash)
6770 ("emacs-el2org" ,emacs-el2org)
6771 ("emacs-ht" ,emacs-ht)
6772 ("emacs-mustache" ,emacs-mustache)
6773 ("emacs-simple-httpd" ,emacs-simple-httpd)))
6774 (home-page "https://github.com/tumashu/org2web")
6775 (synopsis "Static site generator based on org-mode ")
6776 (description "Org2web is a static site generator based on org-mode,
6777 which code derived from Kelvin H's org-page.")
6778 (license license:gpl2+)))
6779
6780 (define-public emacs-xelb
6781 (package
6782 (name "emacs-xelb")
6783 (version "0.16")
6784 (source (origin
6785 (method url-fetch)
6786 (uri (string-append "https://elpa.gnu.org/packages/xelb-"
6787 version ".tar"))
6788 (sha256
6789 (base32
6790 "03wsr1jr7f7zfd80h864rd4makwh4widdnj1kjv2xyjwdgap9rl8"))))
6791 (build-system emacs-build-system)
6792 ;; The following functions and variables needed by emacs-xelb are
6793 ;; not included in emacs-minimal:
6794 ;; x-display-screens, x-keysym-table, x-alt-keysym, x-meta-keysym
6795 ;; x-hyper-keysym, x-super-keysym, libxml-parse-xml-region
6796 ;; x-display-pixel-width, x-display-pixel-height
6797 (arguments
6798 `(#:emacs ,emacs
6799 #:phases
6800 (modify-phases %standard-phases
6801 (add-after 'unpack 'regenerate-el-files
6802 (lambda* (#:key inputs #:allow-other-keys)
6803 (invoke "make"
6804 (string-append "PROTO_PATH="
6805 (assoc-ref inputs "xcb-proto")
6806 "/share/xcb")
6807 (string-append "EMACS_BIN="
6808 (assoc-ref inputs "emacs")
6809 "/bin/emacs -Q")))))))
6810 (native-inputs `(("xcb-proto" ,xcb-proto)))
6811 (home-page "https://github.com/ch11ng/xelb")
6812 (synopsis "X protocol Emacs Lisp binding")
6813 (description "@code{emacs-xelb} is a pure Emacs Lisp implementation of the
6814 X11 protocol based on the XML description files from the XCB project. It
6815 features an object-oriented API and permits a certain degree of concurrency.
6816 It should enable you to implement low-level X11 applications.")
6817 (license license:gpl3+)))
6818
6819 (define-public emacs-exwm
6820 (package
6821 (name "emacs-exwm")
6822 (version "0.21")
6823 (synopsis "Emacs X window manager")
6824 (source (origin
6825 (method url-fetch)
6826 (uri (string-append "https://elpa.gnu.org/packages/exwm-"
6827 version ".tar"))
6828 (sha256
6829 (base32
6830 "07ng1pgsnc3isfsyzh2gfc7391p9il8lb5xqf1z6yqn20w7k6xzj"))))
6831 (build-system emacs-build-system)
6832 (propagated-inputs
6833 `(("emacs-xelb" ,emacs-xelb)))
6834 (inputs
6835 `(("xhost" ,xhost)
6836 ("dbus" ,dbus)))
6837 ;; The following functions and variables needed by emacs-exwm are
6838 ;; not included in emacs-minimal:
6839 ;; scroll-bar-mode, fringe-mode
6840 ;; x-display-pixel-width, x-display-pixel-height
6841 (arguments
6842 `(#:emacs ,emacs
6843 #:phases
6844 (modify-phases %standard-phases
6845 (add-after 'build 'install-xsession
6846 (lambda* (#:key inputs outputs #:allow-other-keys)
6847 (let* ((out (assoc-ref outputs "out"))
6848 (xsessions (string-append out "/share/xsessions"))
6849 (bin (string-append out "/bin"))
6850 (exwm-executable (string-append bin "/exwm")))
6851 ;; Add a .desktop file to xsessions
6852 (mkdir-p xsessions)
6853 (mkdir-p bin)
6854 (with-output-to-file
6855 (string-append xsessions "/exwm.desktop")
6856 (lambda _
6857 (format #t "[Desktop Entry]~@
6858 Name=~a~@
6859 Comment=~a~@
6860 Exec=~a~@
6861 TryExec=~@*~a~@
6862 Type=Application~%" ,name ,synopsis exwm-executable)))
6863 ;; Add a shell wrapper to bin
6864 (with-output-to-file exwm-executable
6865 (lambda _
6866 (format #t "#!~a ~@
6867 ~a +SI:localuser:$USER ~@
6868 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
6869 (string-append (assoc-ref inputs "bash") "/bin/sh")
6870 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
6871 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
6872 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
6873 '(cond
6874 ((file-exists-p "~/.exwm")
6875 (load-file "~/.exwm"))
6876 ((not (featurep 'exwm))
6877 (require 'exwm)
6878 (require 'exwm-config)
6879 (exwm-config-default)
6880 (message (concat "exwm configuration not found. "
6881 "Falling back to default configuration...")))))))
6882 (chmod exwm-executable #o555)
6883 #t))))))
6884 (home-page "https://github.com/ch11ng/exwm")
6885 (description "EXWM is a full-featured tiling X window manager for Emacs
6886 built on top of XELB.")
6887 (license license:gpl3+)))
6888
6889 (define-public emacs-switch-window
6890 (package
6891 (name "emacs-switch-window")
6892 (version "1.6.2")
6893 (source
6894 (origin
6895 (method git-fetch)
6896 (uri (git-reference
6897 (url "https://github.com/dimitri/switch-window")
6898 (commit (string-append "v" version))))
6899 (file-name (git-file-name name version))
6900 (sha256
6901 (base32
6902 "0rci96asgamr6qp6nkyr5vwrnslswjxcjd96yccy4aivh0g66yfg"))))
6903 (build-system emacs-build-system)
6904 (home-page "https://github.com/dimitri/switch-window")
6905 (synopsis "Emacs window switch tool")
6906 (description "Switch-window is an emacs window switch tool, which
6907 offer a visual way to choose a window to switch to, delete, split or
6908 other operations.")
6909 (license license:wtfpl2)))
6910
6911 (define-public emacs-exwm-x
6912 (package
6913 (name "emacs-exwm-x")
6914 (version "1.9.0")
6915 (synopsis "Derivative window manager based on EXWM")
6916 (source
6917 (origin
6918 (method git-fetch)
6919 (uri (git-reference
6920 (url "https://github.com/tumashu/exwm-x")
6921 (commit (string-append "v" version))))
6922 (file-name (git-file-name name version))
6923 (sha256
6924 (base32
6925 "03l3dl7s1qys1kkh40rm1sfx7axy1b8sf5f6nyksj9ps6d30p5i4"))))
6926 (build-system emacs-build-system)
6927 (propagated-inputs
6928 `(("emacs-exwm" ,emacs-exwm)
6929 ("emacs-switch-window" ,emacs-switch-window)
6930 ("emacs-ivy" ,emacs-ivy)
6931 ("emacs-use-package" ,emacs-use-package)))
6932 (inputs
6933 `(("xhost" ,xhost)
6934 ("dbus" ,dbus)))
6935 ;; Need emacs instead of emacs-minimal,
6936 ;; for emacs's bin path will be inserted into bin/exwm-x file.
6937 (arguments
6938 `(#:emacs ,emacs
6939 #:phases
6940 (modify-phases %standard-phases
6941 (add-after 'build 'install-xsession
6942 (lambda* (#:key inputs outputs #:allow-other-keys)
6943 (let* ((out (assoc-ref outputs "out"))
6944 (xsessions (string-append out "/share/xsessions"))
6945 (bin (string-append out "/bin"))
6946 (exwm-executable (string-append bin "/exwm-x")))
6947 ;; Add a .desktop file to xsessions
6948 (mkdir-p xsessions)
6949 (mkdir-p bin)
6950 (with-output-to-file
6951 (string-append xsessions "/exwm-x.desktop")
6952 (lambda _
6953 (format #t "[Desktop Entry]~@
6954 Name=~a~@
6955 Comment=~a~@
6956 Exec=~a~@
6957 TryExec=~@*~a~@
6958 Type=Application~%" ,name ,synopsis exwm-executable)))
6959 ;; Add a shell wrapper to bin
6960 (with-output-to-file exwm-executable
6961 (lambda _
6962 (format #t "#!~a ~@
6963 ~a +SI:localuser:$USER ~@
6964 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
6965 (string-append (assoc-ref inputs "bash") "/bin/sh")
6966 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
6967 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
6968 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
6969 '(require 'exwmx-loader))))
6970 (chmod exwm-executable #o555)
6971 #t))))))
6972 (home-page "https://github.com/tumashu/exwm-x")
6973 (description "EXWM-X is a derivative window manager based on EXWM, with focus
6974 on mouse-control.")
6975 (license license:gpl3+)))
6976
6977 (define-public emacs-gnuplot
6978 (package
6979 (name "emacs-gnuplot")
6980 (version "0.7.0")
6981 (source
6982 (origin
6983 (method url-fetch)
6984 (uri (string-append
6985 "https://github.com/bruceravel/gnuplot-mode/archive/"
6986 version ".tar.gz"))
6987 (file-name (string-append name "-" version ".tar.gz"))
6988 (sha256
6989 (base32
6990 "0glzymrn138lwig7p4cj17x4if5jisr6l4g6wcbxisqkqgc1h01i"))))
6991 (build-system gnu-build-system)
6992 (native-inputs `(("emacs" ,emacs-minimal)))
6993 (arguments
6994 (let ((elisp-dir (string-append "/share/emacs/site-lisp/guix.d"
6995 "/gnuplot-" version)))
6996 `(#:modules ((guix build gnu-build-system)
6997 (guix build utils)
6998 (guix build emacs-utils))
6999 #:imported-modules (,@%gnu-build-system-modules
7000 (guix build emacs-utils))
7001 #:configure-flags
7002 (list (string-append "EMACS=" (assoc-ref %build-inputs "emacs")
7003 "/bin/emacs")
7004 (string-append "--with-lispdir=" %output ,elisp-dir))
7005 #:phases
7006 (modify-phases %standard-phases
7007 (add-after 'install 'generate-autoloads
7008 (lambda* (#:key outputs #:allow-other-keys)
7009 (emacs-generate-autoloads
7010 "gnuplot"
7011 (string-append (assoc-ref outputs "out") ,elisp-dir))
7012 #t))))))
7013 (home-page "https://github.com/bruceravel/gnuplot-mode")
7014 (synopsis "Emacs major mode for interacting with gnuplot")
7015 (description "@code{emacs-gnuplot} is an emacs major mode for interacting
7016 with gnuplot.")
7017 (license license:gpl2+)))
7018
7019 (define-public emacs-transpose-frame
7020 (package
7021 (name "emacs-transpose-frame")
7022 (version "0.1.0")
7023 (source
7024 (origin
7025 (method url-fetch)
7026 (uri "http://www.emacswiki.org/emacs/download/transpose-frame.el")
7027 (file-name (string-append "transpose-frame-" version ".el"))
7028 (sha256
7029 (base32
7030 "1f67yksgw9s6j0033hmqzaxx2a93jm11sd5ys7cc3li5gfh680m4"))))
7031 (build-system emacs-build-system)
7032 (home-page "https://www.emacswiki.org/emacs/TransposeFrame")
7033 (synopsis "Transpose window arrangement in current frame")
7034 (description "@code{emacs-transpose-frame} provides some interactive
7035 functions which allows users to transpose windows arrangement in currently
7036 selected frame.")
7037 (license license:bsd-2)))
7038
7039 (define-public emacs-key-chord
7040 (package
7041 (name "emacs-key-chord")
7042 (version "0.6")
7043 (source
7044 (origin
7045 (method url-fetch)
7046 (uri "https://www.emacswiki.org/emacs/download/key-chord.el")
7047 (file-name (string-append "key-chord-" version ".el"))
7048 (sha256
7049 (base32
7050 "03m44pqggfrd53nh9dvpdjgm0rvca34qxmd30hr33hzprzjambxg"))))
7051 (build-system emacs-build-system)
7052 (home-page "https://www.emacswiki.org/emacs/key-chord.el")
7053 (synopsis "Map pairs of simultaneously pressed keys to Emacs commands")
7054 (description "@code{emacs-key-chord} provides @code{key-chord-mode}, a
7055 mode for binding key chords to commands. A key chord is defined as two keys
7056 pressed simultaneously or a single key quickly pressed twice.")
7057 (license license:gpl2+)))
7058
7059 (define-public emacs-evil-surround
7060 (package
7061 (name "emacs-evil-surround")
7062 (version "1.0.0")
7063 (source
7064 (origin
7065 (method url-fetch)
7066 (uri (string-append
7067 "https://github.com/timcharper/evil-surround/archive/v"
7068 version ".tar.gz"))
7069 (file-name (string-append name "-" version ".tar.gz"))
7070 (sha256
7071 (base32
7072 "0p572jgic3q1ia1nz37kclir729ay6i2f4sa7wnaapyxly2lwb3r"))))
7073 (build-system emacs-build-system)
7074 (propagated-inputs
7075 `(("emacs-evil" ,emacs-evil)))
7076 (home-page "https://github.com/timcharper/evil-surround")
7077 (synopsis "Easily modify surrounding parantheses and quotes")
7078 (description "@code{emacs-evil-surround} allows easy deletion, change and
7079 addition of surrounding pairs, such as parantheses and quotes, in evil mode.")
7080 (license license:gpl3+)))
7081
7082 (define-public emacs-evil-commentary
7083 (package
7084 (name "emacs-evil-commentary")
7085 (version "2.1.1")
7086 (source
7087 (origin
7088 (method url-fetch)
7089 (uri (string-append
7090 "https://github.com/linktohack/evil-commentary/archive/v"
7091 version ".tar.gz"))
7092 (file-name (string-append name "-" version ".tar.gz"))
7093 (sha256
7094 (base32
7095 "1jdya0i921nwskwrzdsj0vrr3m7gm49dy6f6pk9p5nxaarfxk230"))))
7096 (build-system emacs-build-system)
7097 (propagated-inputs
7098 `(("emacs-evil" ,emacs-evil)))
7099 (home-page "https://github.com/linktohack/evil-commentary")
7100 (synopsis "Comment out code in evil mode")
7101 (description "@code{emacs-evil-commentary} adds keybindings to easily
7102 comment out lines of code in evil mode. It provides @code{gcc} to comment out
7103 lines, and @code{gc} to comment out the target of a motion.")
7104 (license license:gpl3+)))
7105
7106 ;; Tests for emacs-ansi have a circular dependency with ert-runner, and
7107 ;; therefore cannot be run
7108 (define-public emacs-ansi
7109 (package
7110 (name "emacs-ansi")
7111 (version "0.4.1")
7112 (source
7113 (origin
7114 (method url-fetch)
7115 (uri (string-append "https://github.com/rejeep/ansi.el/archive/v"
7116 version ".tar.gz"))
7117 (file-name (string-append name "-" version ".tar.gz"))
7118 (sha256
7119 (base32
7120 "13jj4vbi98j3p17hs99bmy7g21jd5h4v3wpxk4pkvhylm3bfwjw8"))))
7121 (build-system emacs-build-system)
7122 (propagated-inputs
7123 `(("emacs-dash" ,emacs-dash)
7124 ("emacs-s" ,emacs-s)))
7125 (home-page "https://github.com/rejeep/ansi.el")
7126 (synopsis "Convert strings to ANSI")
7127 (description "@code{emacs-ansi} defines functions that turns simple
7128 strings to ANSI strings. Turning a string into an ANSI string can be to add
7129 color to a text, add color in the background of a text or adding a style, such
7130 as bold, underscore or italic.")
7131 (license license:gpl3+)))
7132
7133 ;; Tests for emacs-commander have a circular dependency with ert-runner, and
7134 ;; therefore cannot be run
7135 (define-public emacs-commander
7136 (package
7137 (name "emacs-commander")
7138 (version "0.7.0")
7139 (source
7140 (origin
7141 (method url-fetch)
7142 (uri (string-append "https://github.com/rejeep/commander.el/archive/v"
7143 version ".tar.gz"))
7144 (file-name (string-append name "-" version ".tar.gz"))
7145 (sha256
7146 (base32
7147 "196s2i15z7gwxa97l1wkxvjnfmj5n38wwm6d3g4zz15l2vqggc2y"))))
7148 (build-system emacs-build-system)
7149 (propagated-inputs
7150 `(("emacs-dash" ,emacs-dash)
7151 ("emacs-f" ,emacs-f)
7152 ("emacs-s" ,emacs-s)))
7153 (home-page "https://github.com/rejeep/commander.el")
7154 (synopsis "Emacs command line parser")
7155 (description "@code{emacs-commander} provides command line parsing for
7156 Emacs.")
7157 (license license:gpl3+)))
7158
7159 ;; Tests for ert-runner have a circular dependency with ecukes, and therefore
7160 ;; cannot be run
7161 (define-public emacs-ert-runner
7162 (package
7163 (name "emacs-ert-runner")
7164 (version "0.7.0")
7165 (source
7166 (origin
7167 (method url-fetch)
7168 (uri (string-append "https://github.com/rejeep/ert-runner.el/archive/v"
7169 version ".tar.gz"))
7170 (file-name (string-append name "-" version ".tar.gz"))
7171 (sha256
7172 (base32
7173 "1657nck9i96a4xgl8crfqq0s8gflzp21pkkzwg6m3z5npjxklgwp"))))
7174 (build-system emacs-build-system)
7175 (inputs
7176 `(("emacs-ansi" ,emacs-ansi)
7177 ("emacs-commander" ,emacs-commander)
7178 ("emacs-dash" ,emacs-dash)
7179 ("emacs-f" ,emacs-f)
7180 ("emacs-s" ,emacs-s)
7181 ("emacs-shut-up" ,emacs-shut-up)))
7182 (arguments
7183 `(#:phases
7184 (modify-phases %standard-phases
7185 (add-after 'install 'install-executable
7186 (lambda* (#:key inputs outputs #:allow-other-keys)
7187 (let ((out (assoc-ref outputs "out")))
7188 (substitute* "bin/ert-runner"
7189 (("ERT_RUNNER=\"\\$\\(dirname \\$\\(dirname \\$0\\)\\)")
7190 (string-append "ERT_RUNNER=\"" out
7191 "/share/emacs/site-lisp/guix.d/ert-runner-"
7192 ,version)))
7193 (install-file "bin/ert-runner" (string-append out "/bin"))
7194 (wrap-program (string-append out "/bin/ert-runner")
7195 (list "EMACSLOADPATH" ":" 'prefix
7196 (string-split (getenv "EMACSLOADPATH") #\:)))
7197 #t))))
7198 #:include (cons* "^reporters/.*\\.el$" %default-include)))
7199 (home-page "https://github.com/rejeep/ert-runner.el")
7200 (synopsis "Opinionated Ert testing workflow")
7201 (description "@code{ert-runner} is a tool for Emacs projects tested
7202 using ERT. It assumes a certain test structure setup and can therefore make
7203 running tests easier.")
7204 (license license:gpl3+)))
7205
7206 (define-public ert-runner
7207 (deprecated-package "ert-runner" emacs-ert-runner))
7208
7209 (define-public emacs-disable-mouse
7210 (package
7211 (name "emacs-disable-mouse")
7212 (version "0.2")
7213 (source
7214 (origin
7215 (method url-fetch)
7216 (uri (string-append
7217 "https://github.com/purcell/disable-mouse/archive/"
7218 version ".tar.gz"))
7219 (file-name (string-append name "-" version ".tar.gz"))
7220 (sha256
7221 (base32
7222 "0haqpq23r1wx04lsqrrg3p5visg9hx5i36dg55ab003wfsrlrzbc"))))
7223 (build-system emacs-build-system)
7224 (home-page "https://github.com/purcell/disable-mouse")
7225 (synopsis "Disable mouse commands globally")
7226 (description
7227 "Provides @code{disable-mouse-mode} and @code{global-disable-mouse-mode},
7228 pair of minor modes which suppress all mouse events by intercepting them and
7229 running a customisable handler command (@code{ignore} by default). ")
7230 (license license:gpl3+)))
7231
7232 (define-public emacs-json-reformat
7233 (package
7234 (name "emacs-json-reformat")
7235 (version "0.0.6")
7236 (source
7237 (origin
7238 (method url-fetch)
7239 (uri (string-append "https://github.com/gongo/json-reformat/archive/"
7240 version ".tar.gz"))
7241 (file-name (string-append name "-" version ".tar.gz"))
7242 (sha256
7243 (base32
7244 "11fbq4scrgr7m0iwnzcrn2g7xvqwm2gf82sa7zy1l0nil7265p28"))
7245 (patches (search-patches "emacs-json-reformat-fix-tests.patch"))))
7246 (build-system emacs-build-system)
7247 (propagated-inputs
7248 `(("emacs-undercover" ,emacs-undercover)))
7249 (native-inputs
7250 `(("emacs-dash" ,emacs-dash)
7251 ("emacs-shut-up" ,emacs-shut-up)
7252 ("ert-runner" ,emacs-ert-runner)))
7253 (arguments
7254 `(#:tests? #t
7255 #:test-command '("ert-runner")))
7256 (home-page "https://github.com/gongo/json-reformat")
7257 (synopsis "Reformatting tool for JSON")
7258 (description "@code{json-reformat} provides a reformatting tool for
7259 @url{http://json.org/, JSON}.")
7260 (license license:gpl3+)))
7261
7262 (define-public emacs-json-snatcher
7263 (package
7264 (name "emacs-json-snatcher")
7265 (version "1.0.0")
7266 (source
7267 (origin
7268 (method url-fetch)
7269 (uri (string-append "https://github.com/Sterlingg/json-snatcher/archive/"
7270 version ".tar.gz"))
7271 (file-name (string-append name "-" version ".tar.gz"))
7272 (sha256
7273 (base32
7274 "1nfiwsifpdiz0lbrqa77nl0crnfrv5h85ans9b0g5rggnmyshcfb"))))
7275 (build-system emacs-build-system)
7276 (home-page "https://github.com/sterlingg/json-snatcher")
7277 (synopsis "Grabs the path to JSON values in a JSON file")
7278 (description "@code{emacs-json-snatcher} grabs the path to JSON values in
7279 a @url{http://json.org/, JSON} file.")
7280 (license license:gpl3+)))
7281
7282 (define-public emacs-json-mode
7283 (package
7284 (name "emacs-json-mode")
7285 (version "1.7.0")
7286 (source
7287 (origin
7288 (method url-fetch)
7289 (uri (string-append "https://github.com/joshwnj/json-mode/archive/"
7290 "v" version ".tar.gz"))
7291 (file-name (string-append name "-" version ".tar.gz"))
7292 (sha256
7293 (base32
7294 "06h45p4cn767pk9sqi2zb1c65wy5gyyijqxzpglp80zwxhvajdz5"))))
7295 (build-system emacs-build-system)
7296 (propagated-inputs
7297 `(("emacs-json-reformat" ,emacs-json-reformat)
7298 ("emacs-json-snatcher" ,emacs-json-snatcher)))
7299 (home-page "https://github.com/joshwnj/json-mode")
7300 (synopsis "Major mode for editing JSON files")
7301 (description "@code{json-mode} extends the builtin js-mode syntax
7302 highlighting.")
7303 (license license:gpl3+)))
7304
7305 (define-public emacs-restclient
7306 (let ((commit "07a3888bb36d0e29608142ebe743b4362b800f40")
7307 (revision "1")) ;Guix package revision,
7308 ;upstream doesn't have official releases
7309 (package
7310 (name "emacs-restclient")
7311 (version (string-append revision "."
7312 (string-take commit 7)))
7313 (source (origin
7314 (method git-fetch)
7315 (uri (git-reference
7316 (url "https://github.com/pashky/restclient.el.git")
7317 (commit commit)))
7318 (sha256
7319 (base32
7320 "00lmjhb5im1kgrp54yipf1h9pshxzgjlg71yf2rq5n973gvb0w0q"))
7321 (file-name (git-file-name name version))))
7322 (build-system emacs-build-system)
7323 (propagated-inputs
7324 `(("emacs-helm" ,emacs-helm)))
7325 (home-page "https://github.com/pashky/restclient.el")
7326 (synopsis "Explore and test HTTP REST webservices")
7327 (description
7328 "This tool allows for testing and exploration of HTTP REST Web services
7329 from within Emacs. Restclient runs queries from a plan-text query sheet,
7330 displays results pretty-printed in XML or JSON with @code{restclient-mode}")
7331 (license license:public-domain))))
7332
7333 (define-public emacs-eimp
7334 (let ((version "1.4.0")
7335 (commit "2e7536fe6d8f7faf1bad7a8ae37faba0162c3b4f")
7336 (revision "1"))
7337 (package
7338 (name "emacs-eimp")
7339 (version (git-version version revision commit))
7340 (source
7341 (origin
7342 (method git-fetch)
7343 (uri (git-reference
7344 (url "https://github.com/nicferrier/eimp.git")
7345 (commit commit)))
7346 (file-name (git-file-name name version))
7347 (sha256
7348 (base32
7349 "154d57yafxbcf39r89n5j43c86rp2fki3lw3gwy7ww2g6qkclcra"))))
7350 (build-system emacs-build-system)
7351 (arguments
7352 `(#:phases
7353 (modify-phases %standard-phases
7354 (add-after 'unpack 'configure
7355 (lambda* (#:key inputs #:allow-other-keys)
7356 (let ((imagemagick (assoc-ref inputs "imagemagick")))
7357 ;; eimp.el is read-only in git.
7358 (chmod "eimp.el" #o644)
7359 (emacs-substitute-variables "eimp.el"
7360 ("eimp-mogrify-program"
7361 (string-append imagemagick "/bin/mogrify"))))
7362 #t)))))
7363 (inputs
7364 `(("imagemagick" ,imagemagick)))
7365 (home-page "https://github.com/nicferrier/eimp")
7366 (synopsis "Interactive image manipulation utility for Emacs")
7367 (description "@code{emacs-eimp} allows interactive image manipulation
7368 from within Emacs. It uses the code@{mogrify} utility from ImageMagick to do
7369 the actual transformations.")
7370 (license license:gpl2+))))
7371
7372 (define-public emacs-dired-hacks
7373 (let ((commit "eda68006ce73bbf6b9b995bfd70d08bec8cade36")
7374 (revision "1"))
7375 (package
7376 (name "emacs-dired-hacks")
7377 (version (string-append "0.0.1-" revision "."
7378 (string-take commit 7)))
7379 (source (origin
7380 (method git-fetch)
7381 (uri (git-reference
7382 (url "https://github.com/Fuco1/dired-hacks.git")
7383 (commit commit)))
7384 (file-name (string-append name "-" version "-checkout"))
7385 (sha256
7386 (base32
7387 "1w7ssl9zssn5rcha6apf4h8drkd02k4xgvs203bdbqyqp9wz9brx"))))
7388 (build-system emacs-build-system)
7389 (propagated-inputs
7390 `(("emacs-dash" ,emacs-dash)
7391 ("emacs-eimp" ,emacs-eimp)
7392 ("emacs-f" ,emacs-f)
7393 ("emacs-s" ,emacs-s)))
7394 (home-page "https://github.com/Fuco1/dired-hacks")
7395 (synopsis
7396 "Collection of useful dired additions")
7397 (description
7398 "Collection of Emacs dired mode additions:
7399 @itemize
7400 @item dired-avfs
7401 @item dired-columns
7402 @item dired-filter
7403 @item dired-hacks-utils
7404 @item dired-images
7405 @item dired-list
7406 @item dired-narrow
7407 @item dired-open
7408 @item dired-rainbow
7409 @item dired-ranger
7410 @item dired-subtree
7411 @item dired-tagsistant
7412 @end itemize\n")
7413 (license license:gpl3+))))
7414
7415 (define-public emacs-dired-sidebar
7416 (let ((commit "06bd0d40bab812c61a668129daf29ba359424454")
7417 (revision "0"))
7418 (package
7419 (name "emacs-dired-sidebar")
7420 (home-page "https://github.com/jojojames/dired-sidebar")
7421 (version (git-version "0.0.1" revision commit))
7422 (source (origin
7423 (method git-fetch)
7424 (uri (git-reference (url home-page) (commit commit)))
7425 (sha256
7426 (base32
7427 "0lvwvq6sl80sha9fq5m4568sg534dhmifyjqw75bqddcbf3by84x"))))
7428 (build-system emacs-build-system)
7429 (propagated-inputs
7430 `(("emacs-dired-subtree" ,emacs-dired-hacks)))
7431 (synopsis "Sidebar for Emacs using Dired")
7432 (description
7433 "This package provides a sidebar for Emacs similar to @code{NeoTree}
7434 or @code{treemacs}, but leveraging @code{Dired} to do the job of display.")
7435 (license license:gpl3+))))
7436
7437 (define-public emacs-which-key
7438 (package
7439 (name "emacs-which-key")
7440 (version "3.3.0")
7441 (source
7442 (origin
7443 (method url-fetch)
7444 (uri (string-append
7445 "https://github.com/justbur/emacs-which-key/archive/v"
7446 version ".tar.gz"))
7447 (sha256
7448 (base32
7449 "1lsj314111cp2hjjwnv3f46ws1za6bm39rgy3l19044xf6a68j5w"))
7450 (file-name (string-append name "-" version ".tar.gz"))))
7451 (build-system emacs-build-system)
7452 (arguments
7453 `(#:tests? #t
7454 #:test-command '("emacs" "--batch"
7455 "-l" "which-key-tests.el"
7456 "-f" "ert-run-tests-batch-and-exit")))
7457 (home-page "https://github.com/justbur/emacs-which-key")
7458 (synopsis "Display available key bindings in popup")
7459 (description
7460 "@code{emacs-which-key} is a minor mode for Emacs that displays the key
7461 bindings following your currently entered incomplete command (a prefix) in a
7462 popup. For example, after enabling the minor mode if you enter C-x and wait
7463 for the default of 1 second, the minibuffer will expand with all of the
7464 available key bindings that follow C-x (or as many as space allows given your
7465 settings).")
7466 (license license:gpl3+)))
7467
7468 (define-public emacs-ws-butler
7469 (package
7470 (name "emacs-ws-butler")
7471 (version "0.6")
7472 (source (origin
7473 (method git-fetch)
7474 (uri (git-reference
7475 (url "https://github.com/lewang/ws-butler.git")
7476 (commit "323b651dd70ee40a25accc940b8f80c3a3185205")))
7477 (file-name (string-append name "-" version "-checkout"))
7478 (sha256
7479 (base32
7480 "1a4b0lsmwq84qfx51c5xy4fryhb1ysld4fhgw2vr37izf53379sb"))))
7481 (build-system emacs-build-system)
7482 (native-inputs
7483 `(("ert-runner" ,emacs-ert-runner)))
7484 (arguments
7485 `(#:tests? #t
7486 #:test-command '("ert-runner" "tests")))
7487 (home-page "https://github.com/lewang/ws-butler")
7488 (synopsis "Trim spaces from end of lines")
7489 (description
7490 "This Emacs package automatically and unobtrusively trims whitespace
7491 characters from end of lines.")
7492 (license license:gpl3+)))
7493
7494 (define-public emacs-org-edit-latex
7495 (package
7496 (name "emacs-org-edit-latex")
7497 (version "0.8.0")
7498 (source
7499 (origin
7500 (method url-fetch)
7501 (uri (string-append
7502 "https://github.com/et2010/org-edit-latex/archive/v"
7503 version ".tar.gz"))
7504 (file-name (string-append name "-" version ".tar.gz"))
7505 (sha256
7506 (base32
7507 "1y4h6wrs8286h9pbsv4d8fr67a885vz8b2k80qgv5qddipi2i78p"))))
7508 (build-system emacs-build-system)
7509 (propagated-inputs
7510 `(("emacs-auctex" ,emacs-auctex)
7511 ;; The version of org in Emacs 25.2 is not sufficient, because the
7512 ;; `org-latex-make-preamble' function is required.
7513 ("emacs-org" ,emacs-org)))
7514 (home-page "https://github.com/et2010/org-edit-latex")
7515 (synopsis "Edit a latex fragment just like editing a src block")
7516 (description "@code{emacs-org-edit-latex} is an extension for org-mode.
7517 It lets you edit a latex fragment in a dedicated buffer just like editing a
7518 src block.")
7519 (license license:gpl3+)))
7520
7521 (define-public emacs-emamux
7522 (package
7523 (name "emacs-emamux")
7524 (version "0.14")
7525 (source (origin
7526 (method url-fetch)
7527 (uri (string-append
7528 "https://github.com/syohex/emacs-emamux/archive/"
7529 version ".tar.gz"))
7530 (file-name (string-append name "-" version ".tar.gz"))
7531 (sha256
7532 (base32
7533 "0wlqg4icy037bj70b0qmhvwvmiwhagpnx6pnxhq6gzy1hvwlilkx"))))
7534 (build-system emacs-build-system)
7535 (home-page "https://github.com/syohex/emacs-emamux")
7536 (synopsis "Manipulate Tmux from Emacs")
7537 (description
7538 "@code{emacs-emamux} lets Emacs interact with the @code{tmux} terminal
7539 multiplexer.")
7540 (license license:gpl3+)))
7541
7542 (define-public emacs-rpm-spec-mode
7543 (package
7544 (name "emacs-rpm-spec-mode")
7545 (version "0.16")
7546 (source
7547 (origin
7548 (method url-fetch)
7549 ;; URI has the Fedora release number instead of the version
7550 ;; number. This will have to updated manually every new release.
7551 (uri (string-append
7552 "https://src.fedoraproject.org/cgit/rpms"
7553 "/emacs-rpm-spec-mode.git/snapshot"
7554 "/emacs-rpm-spec-mode-f26.tar.gz"))
7555 (sha256
7556 (base32
7557 "17dz80lhjrc89fj17pysl8slahzrqdkxgcjdk55zls6jizkr6kz3"))))
7558 (build-system emacs-build-system)
7559 (home-page "http://pkgs.fedoraproject.org/cgit/rpms/emacs-rpm-spec-mode.git")
7560 (synopsis "Emacs major mode for editing RPM spec files")
7561 (description "@code{emacs-rpm-spec-mode} provides an Emacs major mode for
7562 editing RPM spec files.")
7563 (license license:gpl2+)))
7564
7565 (define-public emacs-git-messenger
7566 (package
7567 (name "emacs-git-messenger")
7568 (version "0.18")
7569 (source
7570 (origin
7571 (method url-fetch)
7572 (uri (string-append
7573 "https://github.com/syohex/emacs-git-messenger/archive/"
7574 version ".tar.gz"))
7575 (file-name (string-append name "-" version ".tar.gz"))
7576 (sha256
7577 (base32
7578 "17mqki6g0wx46fn7dcbcc2pjxik7vvrcb1j9jzxim8b9psbsbnp9"))))
7579 (build-system emacs-build-system)
7580 (propagated-inputs
7581 `(("emacs-popup" ,emacs-popup)))
7582 (arguments
7583 `(#:tests? #t
7584 #:test-command '("emacs" "--batch" "-l" "test/test.el"
7585 "-f" "ert-run-tests-batch-and-exit")))
7586 (home-page "https://github.com/syohex/emacs-git-messenger")
7587 (synopsis "Popup commit message at current line")
7588 (description "@code{emacs-git-messenger} provides
7589 @code{git-messenger:popup-message}, a function that when called, will popup
7590 the last git commit message for the current line. This uses git-blame
7591 internally.")
7592 (license license:gpl3+)))
7593
7594 (define-public emacs-gitpatch
7595 (package
7596 (name "emacs-gitpatch")
7597 (version "0.5.0")
7598 (source
7599 (origin
7600 (method url-fetch)
7601 (uri (string-append "https://github.com/tumashu/gitpatch/archive/"
7602 "v" version ".tar.gz"))
7603 (file-name (string-append name "-" version ".tar.gz"))
7604 (sha256
7605 (base32
7606 "1yj6pmic541lcnscjin300k380qp9xdfprs55xg1q57jrkq6f6k7"))))
7607 (build-system emacs-build-system)
7608 (home-page "https://github.com/tumashu/gitpatch")
7609 (synopsis "Mail git patch from Emacs")
7610 (description "@code{emacs-gitpatch} lets users easily send git patches,
7611 created by @code{git format-patch}, from @code{magit}, @code{dired} and
7612 @code{ibuffer} buffers.")
7613 (license license:gpl3+)))
7614
7615 (define-public emacs-erc-hl-nicks
7616 (package
7617 (name "emacs-erc-hl-nicks")
7618 (version "1.3.3")
7619 (source
7620 (origin
7621 (method url-fetch)
7622 (uri (string-append "https://github.com/leathekd/erc-hl-nicks"
7623 "/archive/" version ".tar.gz"))
7624 (file-name (string-append name "-" version ".tar.gz"))
7625 (sha256
7626 (base32
7627 "1a1r2kc3688g8c2ybkpwh88kgmnqhg3h3032g2yn4zr9m0n3vpkr"))))
7628 (build-system emacs-build-system)
7629 (synopsis "Nickname highlighting for Emacs ERC")
7630 (description "@code{erc-hl-nicks} highlights nicknames in ERC, an IRC
7631 client for Emacs. The main features are:
7632 @itemize
7633 @item Auto-colorizes nicknames without having to specify colors
7634 @item Ignores certain characters that IRC clients add to nicknames to avoid
7635 duplicates (nickname, nickname’, nickname\", etc.)
7636 @item Attempts to produce colors with a sufficient amount of contrast between
7637 the nick color and the background color
7638 @end itemize\n")
7639 (home-page "https://github.com/leathekd/erc-hl-nicks")
7640 (license license:gpl3+)))
7641
7642 (define-public emacs-engine-mode
7643 (package
7644 (name "emacs-engine-mode")
7645 (version "2.0.0")
7646 (source
7647 (origin
7648 (method url-fetch)
7649 (uri (string-append "https://github.com/hrs/engine-mode/archive/"
7650 "v" version ".tar.gz"))
7651 (file-name (string-append name "-" version ".tar.gz"))
7652 (sha256
7653 (base32
7654 "1vm4p7pcp1vnwwxvps1bhm7i7hkabqqxl898knxf2hqvxys76684"))))
7655 (build-system emacs-build-system)
7656 (synopsis "Minor mode for defining and querying search engines")
7657 (description "@code{engine-mode} is a global minor mode for Emacs. It
7658 enables you to easily define search engines, bind them to keybindings, and
7659 query them from the comfort of your editor.")
7660 (home-page "https://github.com/hrs/engine-mode")
7661 (license license:gpl3+)))
7662
7663 (define-public emacs-prop-menu
7664 (package
7665 (name "emacs-prop-menu")
7666 (version "0.1.2")
7667 (source
7668 (origin
7669 (method url-fetch)
7670 (uri (string-append
7671 "http://stable.melpa.org/packages/prop-menu-"
7672 version ".el"))
7673 (sha256
7674 (base32
7675 "01bk4sjafzz7gqrkv9jg0pa85qr34vbk3q8ga2b0m61bndywzgpr"))))
7676 (build-system emacs-build-system)
7677 (home-page
7678 "https://github.com/david-christiansen/prop-menu-el")
7679 (synopsis
7680 "Create and display a context menu based on text and overlay properties")
7681 (description
7682 "This is a library for computing context menus based on text
7683 properties and overlays. The intended use is to have tools that
7684 annotate source code and others that use these annotations, without
7685 requiring a direct coupling between them, but maintaining
7686 discoverability.
7687
7688 Major modes that wish to use this library should first define an
7689 appropriate value for @code{prop-menu-item-functions}. Then, they should
7690 bind @code{prop-menu-by-completing-read} to an appropriate
7691 key. Optionally, a mouse pop-up can be added by binding
7692 @code{prop-menu-show-menu} to a mouse event.")
7693 (license license:gpl3+)))
7694
7695 (define-public emacs-idris-mode
7696 (package
7697 (name "emacs-idris-mode")
7698 (version "0.9.19")
7699 (source
7700 (origin
7701 (method url-fetch)
7702 (uri (string-append
7703 "http://stable.melpa.org/packages/idris-mode-"
7704 version ".tar"))
7705 (sha256
7706 (base32
7707 "02r1qqsxi6qk7q4cj6a6pygbj856dcw9vcmhfh0ib92j41v77q6y"))))
7708 (build-system emacs-build-system)
7709 (propagated-inputs
7710 `(("emacs-prop-menu" ,emacs-prop-menu)))
7711 (home-page
7712 "https://github.com/idris-hackers/idris-mode")
7713 (synopsis "Major mode for editing Idris code")
7714 (description
7715 "This is an Emacs mode for editing Idris code. It requires the latest
7716 version of Idris, and some features may rely on the latest Git version of
7717 Idris.")
7718 (license license:gpl3+)))
7719
7720 (define-public emacs-browse-at-remote
7721 (package
7722 (name "emacs-browse-at-remote")
7723 (version "0.10.0")
7724 (source
7725 (origin
7726 (method url-fetch)
7727 (uri (string-append
7728 "https://github.com/rmuslimov/browse-at-remote/archive/"
7729 version ".tar.gz"))
7730 (file-name (string-append name "-" version ".tar.gz"))
7731 (sha256
7732 (base32
7733 "0ymslsp6i1naw25zckv25bf4aaq6qwkbkn95qyzlwg869l802686"))))
7734 (build-system emacs-build-system)
7735 (propagated-inputs
7736 `(("emacs-f" ,emacs-f)
7737 ("emacs-s" ,emacs-s)))
7738 (native-inputs
7739 `(("ert-runner" ,emacs-ert-runner)))
7740 (arguments
7741 `(#:tests? #t
7742 #:test-command '("ert-runner")))
7743 (home-page "https://github.com/rmuslimov/browse-at-remote")
7744 (synopsis "Open github/gitlab/bitbucket/stash page from Emacs")
7745 (description
7746 "This Emacs package allows you to open a target page on
7747 github/gitlab (or bitbucket) by calling @code{browse-at-remote} command.
7748 It supports dired buffers and opens them in tree mode at destination.")
7749 (license license:gpl3+)))
7750
7751 (define-public emacs-tiny
7752 (package
7753 (name "emacs-tiny")
7754 (version "0.2.1")
7755 (source
7756 (origin
7757 (method url-fetch)
7758 (uri (string-append "http://elpa.gnu.org/packages/tiny-" version ".tar"))
7759 (sha256
7760 (base32
7761 "1cr73a8gba549ja55x0c2s554f3zywf69zbnd7v82jz5q1k9wd2v"))))
7762 (build-system emacs-build-system)
7763 (home-page "https://github.com/abo-abo/tiny")
7764 (synopsis "Quickly generate linear ranges in Emacs")
7765 (description
7766 "The main command of the @code{tiny} extension for Emacs is @code{tiny-expand}.
7767 It is meant to quickly generate linear ranges, e.g. 5, 6, 7, 8. Some elisp
7768 proficiency is an advantage, since you can transform your numeric range with
7769 an elisp expression.")
7770 (license license:gpl3+)))
7771
7772 (define-public emacs-emojify
7773 (package
7774 (name "emacs-emojify")
7775 (version "0.4")
7776 (source
7777 (origin
7778 (method url-fetch)
7779 (uri (string-append "https://github.com/iqbalansari/emacs-emojify/"
7780 "releases/download/v" version "/emojify-"
7781 version ".tar"))
7782 (sha256
7783 (base32
7784 "0k84v2d2bkiwcky9fi1yyprgkj46g7wh6pyl9gzmcd7sqv051d5n"))))
7785 (build-system emacs-build-system)
7786 (arguments
7787 `(#:phases
7788 (modify-phases %standard-phases
7789 (add-after 'install 'install-data
7790 (lambda* (#:key outputs #:allow-other-keys)
7791 (copy-recursively "data"
7792 (string-append (assoc-ref outputs "out")
7793 "/share/emacs/site-lisp/guix.d/"
7794 "emojify-" ,version "/data"))
7795 #t)))))
7796 (propagated-inputs
7797 `(("emacs-ht" ,emacs-ht)))
7798 (home-page "https://github.com/iqbalansari/emacs-emojify")
7799 (synopsis "Display emojis in Emacs")
7800 (description "This package displays emojis in Emacs similar to how Github,
7801 Slack, and other websites do. It can display plain ASCII like @code{:)} as
7802 well as Github-style emojis like @code{:smile:}. It provides a minor mode
7803 @code{emojify-mode} to enable the display of emojis in a buffer.")
7804 (license license:gpl3+)))
7805
7806 (define-public emacs-websocket
7807 (package
7808 (name "emacs-websocket")
7809 (version "1.10")
7810 (source
7811 (origin
7812 (method git-fetch)
7813 (uri (git-reference
7814 (url "https://github.com/ahyatt/emacs-websocket.git")
7815 (commit version)))
7816 (file-name (string-append name "-" version "-checkout"))
7817 (sha256
7818 (base32
7819 "1dgrf7na6r6mmkknphzshlbd5fnzisg0qn0j7vfpa38wgsymaq52"))))
7820 (build-system emacs-build-system)
7821 (home-page "http://elpa.gnu.org/packages/websocket.html")
7822 (synopsis "Emacs WebSocket client and server")
7823 (description "This is an Elisp library for WebSocket clients to talk to
7824 WebSocket servers, and for WebSocket servers to accept connections from
7825 WebSocket clients. This library is designed to be used by other library
7826 writers, to write applications that use WebSockets, and is not useful by
7827 itself.")
7828 (license license:gpl3+)))
7829
7830 (define-public emacs-oauth2
7831 (package
7832 (name "emacs-oauth2")
7833 (version "0.11")
7834 (source
7835 (origin
7836 (method url-fetch)
7837 (uri (string-append "https://elpa.gnu.org/packages/oauth2-"
7838 version ".el"))
7839 (sha256
7840 (base32
7841 "0ydkc9jazsnbbvfhd47mql52y7k06n3z7r0naqxkwb99j9blqsmp"))))
7842 (build-system emacs-build-system)
7843 (home-page "http://elpa.gnu.org/packages/oauth2.html")
7844 (synopsis "OAuth 2.0 authorization protocol implementation")
7845 (description
7846 "This package provides an Elisp implementation of the OAuth 2.0 draft.
7847 The main entry point is @code{oauth2-auth-and-store} which will return a token
7848 structure. This token structure can be then used with
7849 @code{oauth2-url-retrieve-synchronously} or @code{oauth2-url-retrieve} to
7850 retrieve any data that need OAuth authentication to be accessed. If the token
7851 needs to be refreshed, the code handles it automatically and stores the new
7852 value of the access token.")
7853 (license license:gpl3+)))
7854
7855 (define-public emacs-circe
7856 (package
7857 (name "emacs-circe")
7858 (version "2.10")
7859 (source
7860 (origin
7861 (method git-fetch)
7862 (uri (git-reference
7863 (url "https://github.com/jorgenschaefer/circe.git")
7864 (commit (string-append "v" version))))
7865 (file-name (git-file-name name version))
7866 (sha256
7867 (base32
7868 "10gi14kwxd81blddpvqh95lgmpbfgp0m955naxix3bs3r6a75n4s"))))
7869 (build-system emacs-build-system)
7870 (arguments
7871 `(#:tests? #t
7872 #:test-command '("buttercup" "-L" ".")
7873 #:phases
7874 (modify-phases %standard-phases
7875 ;; The HOME environment variable should be set to an existing
7876 ;; directory for the tests to succeed.
7877 (add-before 'check 'set-home
7878 (lambda _
7879 (setenv "HOME" "/tmp")
7880 #t)))))
7881 (native-inputs
7882 `(("emacs-buttercup" ,emacs-buttercup)))
7883 ;; In order to securely connect to an IRC server using TLS, Circe requires
7884 ;; the GnuTLS binary.
7885 (propagated-inputs
7886 `(("gnutls" ,gnutls)))
7887 (home-page "https://github.com/jorgenschaefer/circe")
7888 (synopsis "Client for IRC in Emacs")
7889 (description "Circe is a Client for IRC in Emacs. It integrates well with
7890 the rest of the editor, using standard Emacs key bindings and indicating
7891 activity in channels in the status bar so it stays out of your way unless you
7892 want to use it.")
7893 (license license:gpl3+)))
7894
7895 (define-public emacs-tracking
7896 (package
7897 (inherit emacs-circe)
7898 (name "emacs-tracking")
7899 (arguments
7900 ;; "tracking.el" is a library extracted from Circe package. It requires
7901 ;; "shorten.el".
7902 `(#:include '("^shorten.el$" "^tracking.el$")
7903 ,@(package-arguments emacs-circe)))
7904 (home-page "https://github.com/jorgenschaefer/circe/wiki/Tracking")
7905 (synopsis "Buffer tracking library")
7906 (description "@code{tracking.el} provides a way for different modes to
7907 notify the user that a buffer needs attention. The user then can cycle
7908 through them using @key{C-c C-SPC}.")
7909 (license license:gpl3+)))
7910
7911 (define-public emacs-slack
7912 (let ((commit "99a57501629a0329a9ca090c1ea1296462eda02d")
7913 (revision "5"))
7914 (package
7915 (name "emacs-slack")
7916 (version (git-version "0.0.2" revision commit))
7917 (source (origin
7918 (method git-fetch)
7919 (uri (git-reference
7920 (url "https://github.com/yuya373/emacs-slack.git")
7921 (commit commit)))
7922 (file-name (git-file-name name commit))
7923 (sha256
7924 (base32
7925 "0jw1diypfw8pmzkq0napgxmfc0gqka7zcccgnw359604lr30k2z2"))))
7926 (build-system emacs-build-system)
7927 (propagated-inputs
7928 `(("emacs-alert" ,emacs-alert)
7929 ("emacs-emojify" ,emacs-emojify)
7930 ("emacs-helm" ,emacs-helm)
7931 ("emacs-request" ,emacs-request)
7932 ("emacs-websocket" ,emacs-websocket)
7933 ("emacs-oauth2" ,emacs-oauth2)
7934 ("emacs-circe" ,emacs-circe)))
7935 (home-page "https://github.com/yuya373/emacs-slack")
7936 (synopsis "Slack client for Emacs")
7937 (description "This package provides an Emacs client for the Slack
7938 messaging service.")
7939 (license license:gpl3+))))
7940
7941 (define-public emacs-bash-completion
7942 (package
7943 (name "emacs-bash-completion")
7944 (version "2.1.0")
7945 (source
7946 (origin
7947 (method url-fetch)
7948 (uri (string-append
7949 "https://github.com/szermatt/emacs-bash-completion/archive/v"
7950 version ".tar.gz"))
7951 (file-name (string-append name "-" version ".tar.gz"))
7952 (sha256
7953 (base32
7954 "1z0qck3v3ra6ivacn8n04w1v33a4xn01xx860761q31qzsv3sksq"))))
7955 (inputs `(("bash" ,bash)))
7956 (build-system emacs-build-system)
7957 (arguments
7958 `(#:phases
7959 (modify-phases %standard-phases
7960 (add-before 'install 'configure
7961 (lambda* (#:key inputs #:allow-other-keys)
7962 (let ((bash (assoc-ref inputs "bash")))
7963 (emacs-substitute-variables "bash-completion.el"
7964 ("bash-completion-prog" (string-append bash "/bin/bash"))))
7965 #t)))))
7966 (home-page "https://github.com/szermatt/emacs-bash-completion")
7967 (synopsis "Bash completion for the shell buffer")
7968 (description
7969 "@code{bash-completion} defines dynamic completion hooks for shell-mode
7970 and shell-command prompts that are based on Bash completion.")
7971 (license license:gpl2+)))
7972
7973 (define-public emacs-easy-kill
7974 (package
7975 (name "emacs-easy-kill")
7976 (version "0.9.3")
7977 (source (origin
7978 (method url-fetch)
7979 (uri (string-append "https://elpa.gnu.org/packages/easy-kill-"
7980 version ".tar"))
7981 (sha256
7982 (base32
7983 "17nw0mglmg877axwg1d0gs03yc0p04lzmd3pl0nsnqbh3303fnqb"))))
7984 (build-system emacs-build-system)
7985 (home-page "https://github.com/leoliu/easy-kill")
7986 (synopsis "Kill and mark things easily in Emacs")
7987 (description
7988 "This package provides commands @code{easy-kill} and @code{easy-mark} to
7989 let users kill or mark things easily.")
7990 (license license:gpl3+)))
7991
7992 (define-public emacs-csv-mode
7993 (package
7994 (name "emacs-csv-mode")
7995 (version "1.7")
7996 (source
7997 (origin
7998 (method url-fetch)
7999 (uri (string-append "http://elpa.gnu.org/packages/csv-mode-"
8000 version ".el"))
8001 (sha256
8002 (base32
8003 "0r4bip0w3h55i8h6sxh06czf294mrhavybz0zypzrjw91m1bi7z6"))))
8004 (build-system emacs-build-system)
8005 (home-page
8006 "http://elpa.gnu.org/packages/csv-mode.html")
8007 (synopsis
8008 "Major mode for editing comma/char separated values")
8009 (description
8010 "This Emacs package implements CSV mode, a major mode for editing records
8011 in a generalized CSV (character-separated values) format.")
8012 (license license:gpl3+)))
8013
8014 (define-public emacs-transmission
8015 (package
8016 (name "emacs-transmission")
8017 (version "0.12.1")
8018 (source (origin
8019 (method url-fetch)
8020 (uri (string-append
8021 "https://github.com/holomorph/transmission/archive/"
8022 version ".tar.gz"))
8023 (file-name (string-append name "-" version ".tar.gz"))
8024 (sha256
8025 (base32
8026 "1rrlgn96gi1ljfwbwvlyyxbq75xzamlbdhq1bpyadxxmxcvlmk3n"))))
8027 (build-system emacs-build-system)
8028 (home-page "https://github.com/holomorph/transmission")
8029 (synopsis "Emacs interface to a Transmission session")
8030 (description "This package provides an Emacs interface to interact with a
8031 running session of the Transmission Bittorrent client.
8032
8033 Features:
8034
8035 @itemize
8036 @item List, add, start/stop, verify, remove torrents.
8037 @item Set speed limits, ratio limits, bandwidth priorities, trackers.
8038 @item Navigate to the corresponding file list, torrent info, peer info
8039 contexts.
8040 @item Toggle downloading and set priorities for individual files.
8041 @end itemize\n")
8042 (license license:gpl3+)))
8043
8044 (define-public emacs-polymode
8045 (package
8046 (name "emacs-polymode")
8047 (version "0.1.5")
8048 (source (origin
8049 (method git-fetch)
8050 (uri (git-reference
8051 (url "https://github.com/vspinu/polymode.git")
8052 (commit (string-append "v" version))))
8053 (file-name (git-file-name name version))
8054 (sha256
8055 (base32
8056 "0wwphs54jx48a3ca6x1qaz56j3j9bg4mv8g2akkffrzbdcb8sbc7"))))
8057 (build-system emacs-build-system)
8058 (arguments
8059 `(#:include (cons* "^modes/.*\\.el$" %default-include)
8060 #:phases
8061 (modify-phases %standard-phases
8062 (add-after 'set-emacs-load-path 'add-modes-subdir-to-load-path
8063 (lambda _
8064 (setenv "EMACSLOADPATH"
8065 (string-append (getenv "EMACSLOADPATH")
8066 ":" (getcwd) "/modes" ":")))))))
8067 (home-page "https://github.com/vspinu/polymode")
8068 (synopsis "Framework for multiple Emacs modes based on indirect buffers")
8069 (description "Polymode is an Emacs package that offers generic support
8070 for multiple major modes inside a single Emacs buffer. It is lightweight,
8071 object oriented and highly extensible. Creating a new polymode typically
8072 takes only a few lines of code. Polymode also provides extensible facilities
8073 for external literate programming tools for exporting, weaving and tangling.")
8074 (license license:gpl3+)))
8075
8076 (define-public emacs-polymode-ansible
8077 (let ((commit "b26094d029e25dc797b94254f797e7807a57e4c8"))
8078 (package
8079 (name "emacs-polymode-ansible")
8080 ;; No upstream version release yet.
8081 (version (git-version "0.1" "1" commit))
8082 (source
8083 (origin
8084 (method git-fetch)
8085 (uri (git-reference
8086 (url "https://gitlab.com/mavit/poly-ansible")
8087 (commit commit)))
8088 (file-name (git-file-name name version))
8089 (sha256
8090 (base32
8091 "055shddqibib3hx2ykwdz910nrqws40cd407mq946l2bf6v87gj6"))))
8092 (build-system emacs-build-system)
8093 (propagated-inputs
8094 `(("emacs-ansible-doc" ,emacs-ansible-doc)
8095 ("emacs-jinja2-mode" ,emacs-jinja2-mode)
8096 ("emacs-polymode" ,emacs-polymode)
8097 ("emacs-yaml-mode" ,emacs-yaml-mode)))
8098 (properties '((upstream-name . "poly-ansible")))
8099 (home-page "https://gitlab.com/mavit/poly-ansible/")
8100 (synopsis "Polymode for Ansible - Jinja2 in YAML")
8101 (description
8102 "Edit YAML files for Ansible containing embedded Jinja2 templating.")
8103 (license license:gpl3+))))
8104
8105 (define-public eless
8106 (package
8107 (name "eless")
8108 (version "0.3")
8109 (source (origin
8110 (method url-fetch)
8111 (uri (string-append
8112 "https://github.com/kaushalmodi/eless/archive/"
8113 "v" version ".tar.gz"))
8114 (file-name (string-append name "-" version ".tar.gz"))
8115 (sha256
8116 (base32
8117 "0gjnnhgw5xs1w3qfnkvwa2nv44gnxr8pkhx3c7qig45p8nh1461h"))))
8118 (build-system trivial-build-system)
8119 (inputs
8120 `(("bash" ,bash)))
8121 (native-inputs
8122 `(("tar" ,tar)
8123 ("gzip" ,gzip)))
8124 (arguments
8125 `(#:modules ((guix build utils))
8126 #:builder
8127 (begin
8128 (use-modules (guix build utils))
8129 (setenv "PATH" (string-append
8130 (assoc-ref %build-inputs "tar") "/bin" ":"
8131 (assoc-ref %build-inputs "gzip") "/bin"))
8132 (invoke "tar" "xvf" (assoc-ref %build-inputs "source"))
8133 (chdir (string-append "eless" "-" ,version))
8134 (substitute* "eless" (("/usr/bin/env bash")
8135 (string-append (assoc-ref %build-inputs "bash")
8136 "/bin/bash")))
8137 (install-file "eless" (string-append %output "/bin"))
8138 (install-file "doc/eless.info" (string-append %output "/share/info"))
8139 #t)))
8140 (home-page "https://github.com/kaushalmodi/eless")
8141 (synopsis "Use Emacs as a paginator")
8142 (description "@code{eless} provides a combination of Bash script
8143 and a minimal Emacs view-mode.
8144
8145 Feautures:
8146
8147 @itemize
8148 @item Independent of a user’s Emacs config.
8149 @item Customizable via the @code{(locate-user-emacs-file \"elesscfg\")} config.
8150 @item Not require an Emacs server to be already running.
8151 @item Syntax highlighting.
8152 @item Org-mode file rendering.
8153 @item @code{man} page viewer.
8154 @item Info viewer.
8155 @item Dired, wdired, (batch edit symbolic links).
8156 @item Colored diffs, git diff, git log, ls with auto ANSI detection.
8157 @item Filter log files lines matching a regexp.
8158 @item Auto-revert log files similar to @code{tail -f}.
8159 @item Quickly change frame and font sizes.
8160 @end itemize\n")
8161 (license license:expat)))
8162
8163 (define-public emacs-evil-matchit
8164 (package
8165 (name "emacs-evil-matchit")
8166 (version "2.2.6")
8167 (source
8168 (origin
8169 (method url-fetch)
8170 (uri (string-append
8171 "https://github.com/redguardtoo/evil-matchit/archive/"
8172 version ".tar.gz"))
8173 (file-name (string-append name "-" version ".tar.gz"))
8174 (sha256
8175 (base32
8176 "1yp9sl6542317mn1060ri90zyf6bs6qylagndhqy02p368q31rhi"))))
8177 (build-system emacs-build-system)
8178 (propagated-inputs
8179 `(("emacs-evil" ,emacs-evil)))
8180 (home-page "https://github.com/redguardtoo/evil-matchit")
8181 (synopsis "Vim matchit ported into Emacs")
8182 (description
8183 "@code{evil-matchit} is a minor mode for jumping between matching tags in
8184 evil mode using @kbd{%}. It is a port of @code{matchit} for Vim.")
8185 (license license:gpl3+)))
8186
8187 (define-public emacs-evil-smartparens
8188 (package
8189 (name "emacs-evil-smartparens")
8190 (version "0.4.0")
8191 (source
8192 (origin
8193 (method url-fetch)
8194 (uri (string-append
8195 "https://github.com/expez/evil-smartparens/archive/"
8196 version ".tar.gz"))
8197 (file-name (string-append name "-" version ".tar.gz"))
8198 (sha256
8199 (base32
8200 "1bwzdd3054d407d5j4m3njsbvmc9r8zzp33m32pj3b3irxrl68q0"))))
8201 (build-system emacs-build-system)
8202 (propagated-inputs
8203 `(("emacs-evil" ,emacs-evil)
8204 ("emacs-smartparens" ,emacs-smartparens)))
8205 (home-page "https://github.com/expez/evil-smartparens")
8206 (synopsis "Emacs Evil integration for Smartparens")
8207 (description "@code{emacs-evil-smartparens} is an Emacs minor mode which
8208 makes Evil play nice with Smartparens. Evil is an Emacs minor mode that
8209 emulates Vim features and provides Vim-like key bindings.")
8210 (license license:gpl3+)))
8211
8212 (define-public emacs-evil-quickscope
8213 (package
8214 (name "emacs-evil-quickscope")
8215 (version "0.1.4")
8216 (source
8217 (origin
8218 (method url-fetch)
8219 (uri (string-append "https://github.com/blorbx/evil-quickscope/archive/v"
8220 version ".tar.gz"))
8221 (file-name (string-append name "-" version ".tar.gz"))
8222 (sha256
8223 (base32
8224 "1r26a412mmar7vbf89zcifswiwpdg30mjzj32xdyqss57aqi83ma"))))
8225 (build-system emacs-build-system)
8226 (propagated-inputs
8227 `(("emacs-evil" ,emacs-evil)))
8228 (arguments
8229 `(#:tests? #t
8230 #:test-command '("emacs" "--batch"
8231 "-l" "evil-quickscope-tests.el"
8232 "-f" "ert-run-tests-batch-and-exit")))
8233 (home-page "https://github.com/blorbx/evil-quickscope")
8234 (synopsis "Target highlighting for emacs evil-mode f,F,t and T commands")
8235 (description "@code{emacs-evil-quickscope} highlights targets for Evil
8236 mode’s f,F,t,T keys, allowing for quick navigation within a line. It is a
8237 port of quick-scope for Vim. Evil is an Emacs minor mode that emulates Vim
8238 features and provides Vim-like key bindings.")
8239 (license license:gpl3+)))
8240
8241 (define-public emacs-bongo
8242 (package
8243 (name "emacs-bongo")
8244 (version "1.0")
8245 (source
8246 (origin
8247 (method url-fetch)
8248 (uri (string-append
8249 "https://github.com/dbrock/bongo/archive/"
8250 version ".tar.gz"))
8251 (file-name (string-append name "-" version ".tar.gz"))
8252 (sha256
8253 (base32
8254 "1pcsyyrvj7djjjwpaswd1i782hvqvlvs39cy9ns0k795si6xd64d"))))
8255 (build-system emacs-build-system)
8256 (home-page "https://github.com/dbrock/bongo")
8257 (synopsis "Media player for Emacs")
8258 (description
8259 "This package provides a flexible media player for Emacs. @code{Bongo}
8260 supports multiple backends such as @code{vlc}, @code{mpg123},
8261 @code{ogg123}, @code{speexdec}, @code{timidity}, @code{mikmod} and
8262 @code{afplay}.")
8263 (license license:gpl2+)))
8264
8265 (define-public emacs-groovy-modes
8266 (package
8267 (name "emacs-groovy-modes")
8268 (version "2.0")
8269 (source (origin
8270 (method url-fetch)
8271 (uri (string-append
8272 "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes"
8273 "/archive/" version ".tar.gz"))
8274 (file-name (string-append name "-" version ".tar.gz"))
8275 (sha256
8276 (base32
8277 "15j0hnkx9nppjzda5cqsxxz5f3bq9hc4xfyjcdypzqiypcvmpa39"))))
8278 (build-system emacs-build-system)
8279 (propagated-inputs
8280 `(("emacs-s" ,emacs-s)))
8281 (home-page "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
8282 (synopsis "Groovy related modes for Emacs")
8283 (description
8284 "This package provides @code{groovy-mode} for syntax highlighing in
8285 Groovy source files, REPL integration with run-groovy and Grails project
8286 navigation with the grails mode.")
8287 (license license:gpl3+)))
8288
8289 (define-public groovy-emacs-modes
8290 (deprecated-package "groovy-emacs-modes" emacs-groovy-modes))
8291
8292 (define-public emacs-org-tree-slide
8293 (let ((commit "dff8f1a4a64c8dd0a1fde0b0131e2fe186747134")
8294 (revision "0"))
8295 (package
8296 (name "emacs-org-tree-slide")
8297 (version (git-version "0.1" revision commit))
8298 (home-page "https://github.com/takaxp/org-tree-slide")
8299 (source (origin
8300 (method git-fetch)
8301 (uri (git-reference (url home-page) (commit commit)))
8302 (sha256
8303 (base32
8304 "153bg0x7ypla11pq51jmsgzfjklwwnrq56xgpbfhk1j16xwz9hyf"))
8305 (file-name (git-file-name name version))))
8306 (build-system emacs-build-system)
8307 (synopsis "Presentation tool for org-mode")
8308 (description
8309 "Org-tree-slide provides a slideshow mode to view org-mode files. Use
8310 @code{org-tree-slide-mode} to enter the slideshow mode, and then @kbd{C->} and
8311 @kbd{C-<} to jump to the next and previous slide.")
8312 (license license:gpl3+))))
8313
8314 (define-public emacs-scratch-el
8315 (let ((commit "2cdf2b841ce7a0987093f65b0cc431947549f897")
8316 (revision "1"))
8317 (package
8318 (name "emacs-scratch-el")
8319 (version (git-version "1.2" revision commit))
8320 (source (origin
8321 (method git-fetch)
8322 (uri (git-reference
8323 (url "https://github.com/ieure/scratch-el.git")
8324 (commit commit)))
8325 (file-name (git-file-name name version))
8326 (sha256
8327 (base32
8328 "0wscsndynjmnliajqaz28r1ww81j8wh84zwaaswx51abhwgl0idf"))))
8329 (build-system emacs-build-system)
8330 (native-inputs
8331 `(("texinfo" ,texinfo)))
8332 (arguments
8333 '(#:phases
8334 (modify-phases %standard-phases
8335 (add-after 'install 'install-doc
8336 (lambda* (#:key outputs #:allow-other-keys)
8337 (unless (invoke "makeinfo" "scratch.texi")
8338 (error "makeinfo failed"))
8339 (install-file "scratch.info"
8340 (string-append (assoc-ref outputs "out")
8341 "/share/info"))
8342 #t)))))
8343 (home-page "https://github.com/ieure/scratch-el/")
8344 (synopsis "Create scratch buffers with the same mode as current buffer")
8345 (description "Scratch is an extension to Emacs that enables one to create
8346 scratch buffers that are in the same mode as the current buffer. This is
8347 notably useful when working on code in some language; you may grab code into a
8348 scratch buffer, and, by virtue of this extension, do so using the Emacs
8349 formatting rules for that language.")
8350 (license license:bsd-2))))
8351
8352 (define-public emacs-kv
8353 (package
8354 (name "emacs-kv")
8355 (version "0.0.19")
8356 (source
8357 (origin
8358 (method git-fetch)
8359 (uri (git-reference
8360 (url "https://github.com/nicferrier/emacs-kv.git")
8361 (commit "721148475bce38a70e0b678ba8aa923652e8900e")))
8362 (file-name (string-append name "-" version "-checkout"))
8363 (sha256
8364 (base32
8365 "0r0lz2s6gvy04fwnafai668jsf4546h4k6zd6isx5wpk0n33pj5m"))))
8366 (build-system emacs-build-system)
8367 (arguments
8368 `(#:tests? #t
8369 #:test-command '("emacs" "--batch" "-l" "kv-tests.el"
8370 "-f" "ert-run-tests-batch-and-exit")))
8371 (home-page "https://github.com/nicferrier/emacs-kv")
8372 (synopsis "Key/Value data structures library for Emacs Lisp")
8373 (description "@code{emacs-kv} is a collection of tools for dealing with
8374 key/value data structures such as plists, alists and hash-tables in Emacs
8375 Lisp.")
8376 (license license:gpl3+)))
8377
8378 (define-public emacs-esxml
8379 (package
8380 (name "emacs-esxml")
8381 (version "0.3.4")
8382 (source (origin
8383 (method git-fetch)
8384 (uri (git-reference
8385 (url "https://github.com/tali713/esxml.git")
8386 (commit version)))
8387 (file-name (git-file-name name version))
8388 (sha256
8389 (base32
8390 "00vv8a75wdklygdyr4km9mc2ismxak69c45jmcny41xl44rp9x8m"))))
8391 (build-system emacs-build-system)
8392 (arguments
8393 `(#:phases
8394 (modify-phases %standard-phases
8395 (add-after 'unpack 'fix-sources
8396 (lambda _
8397 ;; See: https://github.com/tali713/esxml/pull/28.
8398 (substitute* "css-lite.el"
8399 ((";;; main interface")
8400 (string-append ";;; main interface\n"
8401 "(require 'cl-lib)"))
8402 (("mapcan")
8403 "cl-mapcan")
8404 (("',\\(cl-mapcan #'process-css-rule rules\\)")
8405 "(cl-mapcan #'process-css-rule ',rules)"))
8406 (substitute* "esxml-form.el"
8407 ((",esxml-form-field-defn")
8408 "#'esxml-form-field-defn"))
8409 ;; See: https://github.com/tali713/esxml/issues/25
8410 (delete-file "esxpath.el")
8411 #t)))))
8412 (propagated-inputs
8413 `(("emacs-kv" ,emacs-kv)))
8414 (home-page "https://github.com/tali713/esxml/")
8415 (synopsis "SXML for EmacsLisp")
8416 (description "This is XML/XHTML done with S-Expressions in EmacsLisp.
8417 Simply, this is the easiest way to write HTML or XML in Lisp. This library
8418 uses the native form of XML representation as used by many libraries already
8419 included within Emacs. See @code{esxml-to-xml} for a concise description of
8420 the format.")
8421 (license license:gpl3+)))
8422
8423 (define-public emacs-nov-el
8424 (package
8425 (name "emacs-nov-el")
8426 (version "0.2.6")
8427 (source (origin
8428 (method git-fetch)
8429 (uri (git-reference
8430 (url "https://github.com/wasamasa/nov.el.git")
8431 (commit version)))
8432 (file-name (git-file-name name version))
8433 (sha256
8434 (base32
8435 "188h5gzn1zf443g0b7q5bpmvvpr6ds5h8aci8vxc92py56rhyrvc"))))
8436 (build-system emacs-build-system)
8437 (arguments
8438 `(#:phases
8439 (modify-phases %standard-phases
8440 (add-after 'unpack 'embed-path-to-unzip
8441 (lambda _
8442 (substitute* "nov.el"
8443 (("\\(executable-find \"unzip\"\\)")
8444 (string-append "\"" (which "unzip") "\"")))
8445 #t)))))
8446 (propagated-inputs
8447 `(("emacs-dash" ,emacs-dash)
8448 ("emacs-esxml" ,emacs-esxml)))
8449 (inputs
8450 `(("unzip" ,unzip)))
8451 (home-page "https://github.com/wasamasa/nov.el/")
8452 (synopsis "Major mode for reading EPUBs in Emacs")
8453 (description "@code{nov.el} provides a major mode for reading EPUB
8454 documents.
8455
8456 Features:
8457
8458 @itemize
8459 @item Basic navigation (jump to TOC, previous/next chapter)
8460 @item Remembering and restoring the last read position
8461 @item Jump to next chapter when scrolling beyond end
8462 @item Renders EPUB2 (@code{.ncx}) and EPUB3 (@code{<nav>}) TOCs
8463 @item Hyperlinks to internal and external targets
8464 @item Supports textual and image documents
8465 @item View source of document files
8466 @item Metadata display
8467 @item Image rescaling
8468 @end itemize
8469 ")
8470 (license license:gpl3+)))
8471
8472 (define-public epipe
8473 (package
8474 (name "epipe")
8475 (version "0.1.0")
8476 (source
8477 (origin
8478 (method url-fetch)
8479 (uri (string-append "https://github.com/cute-jumper/epipe/archive/"
8480 version ".tar.gz"))
8481 (file-name (string-append name "-" version ".tar.gz"))
8482 (sha256
8483 (base32
8484 "05a036852g4j63k1mhvyfrcsgkl9lczayi7x61570ysw3cli5wp5"))))
8485 (build-system trivial-build-system)
8486 (inputs
8487 `(("bash" ,bash)
8488 ("perl" ,perl)))
8489 (native-inputs
8490 `(("tar" ,tar)
8491 ("gzip" ,gzip)))
8492 (arguments
8493 `(#:modules
8494 ((guix build utils))
8495 #:builder
8496 (begin
8497 (use-modules (guix build utils))
8498 ;; Extract source
8499 (setenv "PATH" (string-append
8500 (assoc-ref %build-inputs "tar") "/bin" ":"
8501 (assoc-ref %build-inputs "gzip") "/bin"))
8502 (invoke "tar" "xvf" (assoc-ref %build-inputs "source"))
8503 (chdir (string-append ,name "-" ,version))
8504 ;; Patch shebangs
8505 (substitute* "epipe"
8506 (("/usr/bin/env bash")
8507 (string-append (assoc-ref %build-inputs "bash") "/bin/bash")))
8508 (patch-shebang "epipe.pl"
8509 (list (string-append (assoc-ref %build-inputs "perl")
8510 "/bin")))
8511 ;; Installation
8512 (for-each (lambda (file)
8513 (install-file file (string-append %output "/bin")))
8514 '("epipe" "epipe.pl"))
8515 #t)))
8516 (home-page "https://github.com/cute-jumper/epipe")
8517 (synopsis "Pipe to the @code{emacsclient}")
8518 (description "@code{epipe} provides an utility to use your editor in
8519 the pipeline, featuring the support for running @code{emacsclient}.")
8520 (license license:gpl3+)))
8521
8522 (define-public emacs-hcl-mode
8523 (package
8524 (name "emacs-hcl-mode")
8525 (version "0.03")
8526 (source
8527 (origin
8528 (method url-fetch)
8529 (uri (string-append
8530 "https://github.com/syohex/emacs-hcl-mode/archive/"
8531 version ".tar.gz"))
8532 (file-name (string-append name "-" version ".tar.gz"))
8533 (sha256
8534 (base32
8535 "0pvw74qpwh0znqzp6syp4wxjqs7dp1hbn5h7xfk97mff9l5d8k6x"))))
8536 (build-system emacs-build-system)
8537 (home-page "https://github.com/syohex/emacs-hcl-mode")
8538 (synopsis "Major mode for the Hashicorp Configuration Language")
8539 (description
8540 "@code{emacs-hcl-mode} provides an Emacs major mode for working with
8541 @acronym{HCL, Hashicorp Configuration Language}. It provides syntax
8542 highlighting and indentation support.")
8543 (license license:gpl3+)))
8544
8545 (define-public emacs-terraform-mode
8546 (package
8547 (name "emacs-terraform-mode")
8548 (version "0.06")
8549 (source
8550 (origin
8551 (method url-fetch)
8552 (uri (string-append
8553 "https://github.com/syohex/emacs-terraform-mode/archive/"
8554 version ".tar.gz"))
8555 (file-name (string-append name "-" version ".tar.gz"))
8556 (sha256
8557 (base32
8558 "0h9267ifdjmcin4sj8slxydbacx4bqicbvg8pa1qq2l72h9m5381"))))
8559 (build-system emacs-build-system)
8560 (propagated-inputs
8561 `(("emacs-hcl-mode" ,emacs-hcl-mode)))
8562 (home-page "https://github.com/syohex/emacs-terraform-mode")
8563 (synopsis "Major mode for Terraform")
8564 (description
8565 "@code{emacs-terraform-mode} provides a major mode for working with
8566 @uref{https://www.terraform.io/, Terraform} configuration files. Most of the
8567 functionality is inherited from @code{hcl-mode}.")
8568 (license license:gpl3+)))
8569
8570 (define-public emacs-exec-path-from-shell
8571 (package
8572 (name "emacs-exec-path-from-shell")
8573 (version "1.11")
8574 (source
8575 (origin
8576 (method url-fetch)
8577 (uri (string-append
8578 "https://stable.melpa.org/packages/exec-path-from-shell-"
8579 version ".el"))
8580 (sha256
8581 (base32
8582 "03qjgb81cq1l3j54lvlf98r75vmmgd06mj6qh5wa6mz4xzp4w26r"))))
8583 (build-system emacs-build-system)
8584 (home-page "https://github.com/purcell/exec-path-from-shell")
8585 (synopsis "Get environment variables such as @var{PATH} from the shell")
8586 (description
8587 "This library allows the user to set Emacs @var{exec-path} and @var{PATH}
8588 from the shell @var{PATH}, so that @code{shell-command}, @code{compile} and
8589 the like work as expected on systems on which Emacs is not guaranteed to
8590 inherit a login shell's environment variables. It also allows other
8591 environment variables to be retrieved from the shell, so that Emacs will see
8592 the same values you get in a terminal.")
8593 (license license:gpl3+)))
8594
8595 (define-public emacs-deft
8596 (package
8597 (name "emacs-deft")
8598 (version "0.8")
8599 (source
8600 (origin
8601 (method url-fetch)
8602 (uri (string-append "https://stable.melpa.org/packages/deft-"
8603 version ".el"))
8604 (sha256
8605 (base32
8606 "1vb9cjxskc7c0yyf9pvxy1fzypg1vrcgwnjz0m3hslinsgdyig58"))))
8607 (build-system emacs-build-system)
8608 (home-page "https://jblevins.org/projects/deft/")
8609 (synopsis "Quickly browse, filter, and edit plain text notes")
8610 (description
8611 "Deft is an Emacs mode for quickly browsing, filtering, and editing
8612 directories of plain text notes, inspired by Notational Velocity.")
8613 (license license:bsd-3)))
8614
8615 (define-public emacs-anzu
8616 (package
8617 (name "emacs-anzu")
8618 (version "0.62")
8619 (source
8620 (origin
8621 (method url-fetch)
8622 (uri (string-append "https://github.com/syohex/emacs-anzu/archive/"
8623 version ".tar.gz"))
8624 (file-name (string-append name "-" version ".tar.gz"))
8625 (sha256
8626 (base32
8627 "16cg3897x5znbmgk7sdy0qyd0fbic9dmmz0dchq2vz5z29yhg4cz"))))
8628 (build-system emacs-build-system)
8629 (home-page "https://github.com/syohex/emacs-anzu")
8630 (synopsis "Show number of matches in mode-line while searching")
8631 (description
8632 "Anzu provides a minor mode which displays \"current match/total
8633 matches\" in the mode line in various search modes. This is an Emacs port of
8634 Anzu.zim.")
8635 (license license:gpl3+)))
8636
8637 (define-public emacs-emmet-mode
8638 (package
8639 (name "emacs-emmet-mode")
8640 (version "1.0.8")
8641 (source (origin
8642 (method url-fetch)
8643 (uri (string-append "https://github.com/smihica/emmet-mode"
8644 "/archive/" version ".tar.gz"))
8645 (file-name (string-append name "-" version ".tar.gz"))
8646 (sha256
8647 (base32
8648 "0g3p22yabfcp98cfv9dgl9il2m2pd53isq2q11vb3s7qyn31f7zj"))))
8649 (build-system emacs-build-system)
8650 (home-page "https://github.com/smihica/emmet-mode")
8651 (synopsis "Unofficial Emmet's support for Emacs")
8652 (description
8653 "Unfold CSS-selector-like expressions to markup. It is intended to be
8654 used with SGML-like languages: XML, HTML, XHTML, XSL, etc.")
8655 (license license:gpl3+)))
8656
8657 (define-public emacs-ergoemacs-mode
8658 (let ((commit "3ce23bba3cb50562693860f87f3528c471d603ba")
8659 (revision "1"))
8660 (package
8661 (name "emacs-ergoemacs-mode")
8662 (version (git-version "5.16.10.12" revision commit))
8663 (source
8664 (origin
8665 (method git-fetch)
8666 (uri (git-reference
8667 (url "https://github.com/ergoemacs/ergoemacs-mode.git")
8668 (commit commit)))
8669 (sha256
8670 (base32
8671 "1s3b9bridl78hh1mxmdk9nqlmqhibbaxk0a1cixmsf23s06w8w6l"))))
8672 (build-system emacs-build-system)
8673 (propagated-inputs
8674 `(("emacs-undo-tree" ,emacs-undo-tree)))
8675 (home-page "https://ergoemacs.github.io/")
8676 (synopsis "Emacs mode based on common modern interface and ergonomics")
8677 (description
8678 "This package provides an efficient Emacs keybinding set based on
8679 statistics of command frequency, and supports common shortcuts for open,
8680 close, copy, cut, paste, undo, redo.")
8681 (license license:gpl3+))))
8682
8683 (define-public emacs-password-store
8684 (package
8685 (name "emacs-password-store")
8686 (version "1.7.3")
8687 (source (origin
8688 (method url-fetch)
8689 (uri
8690 (string-append "https://git.zx2c4.com/password-store/snapshot/"
8691 "password-store-" version ".tar.xz"))
8692 (sha256
8693 (base32
8694 "1x53k5dn3cdmvy8m4fqdld4hji5n676ksl0ql4armkmsds26av1b"))))
8695 (build-system emacs-build-system)
8696 (arguments
8697 `(#:phases
8698 (modify-phases %standard-phases
8699 (add-after 'unpack 'extract-el-file
8700 (lambda _
8701 (copy-file "contrib/emacs/password-store.el" "password-store.el")
8702 (delete-file-recursively "contrib")
8703 (delete-file-recursively "man")
8704 (delete-file-recursively "src")
8705 (delete-file-recursively "tests"))))))
8706 (propagated-inputs
8707 `(("emacs-f" ,emacs-f)
8708 ("emacs-s" ,emacs-s)
8709 ("emacs-with-editor" ,emacs-with-editor)
8710 ("password-store" ,password-store)))
8711 (home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs")
8712 (synopsis "Password store (pass) support for Emacs")
8713 (description
8714 "This package provides functions for working with pass (\"the
8715 standard Unix password manager\").")
8716 (license license:gpl2+)))
8717
8718 (define-public emacs-pass
8719 (package
8720 (name "emacs-pass")
8721 (version "1.7")
8722 (source (origin
8723 (method url-fetch)
8724 (uri (string-append
8725 "https://github.com/NicolasPetton/pass/archive/"
8726 version ".tar.gz"))
8727 (sha256
8728 (base32
8729 "0zlx9v6z0q3w9qhq9bq6vb7sli4c9x7qccm2wq55j0nw7bwy2yvj"))
8730 (file-name (string-append name "-" version ".tar.gz"))))
8731 (build-system emacs-build-system)
8732 (propagated-inputs
8733 `(("emacs-password-store" ,emacs-password-store)
8734 ("emacs-f" ,emacs-f)))
8735 (home-page "https://github.com/NicolasPetton/pass")
8736 (synopsis "Major mode for @file{password-store.el}")
8737 (description "This is a major mode for managing password-store (pass)
8738 keychains. The keychain entries are displayed in a directory-like structure
8739 and can be consulted and modified.")
8740 (license license:gpl3+)))
8741
8742 (define-public emacs-evil-anzu
8743 (package
8744 (name "emacs-evil-anzu")
8745 (version "0.03")
8746 (source
8747 (origin
8748 (method url-fetch)
8749 (uri (string-append "https://github.com/syohex/emacs-evil-anzu"
8750 "/archive/" version ".tar.gz"))
8751 (file-name (string-append name "-" version ".tar.gz"))
8752 (sha256
8753 (base32 "032hh2946z529cizqsg8pm6cpn5qdj8lfk3qskmx6xv3g2ra56ns"))))
8754 (build-system emacs-build-system)
8755 (propagated-inputs
8756 `(("emacs-evil" ,emacs-evil)
8757 ("emacs-anzu" ,emacs-anzu)))
8758 (home-page "https://github.com/syohex/emacs-evil-anzu")
8759 (synopsis "Anzu for evil-mode")
8760 (description "@code{anzu} provides a minor mode that displays the current
8761 match and total match information in the mode-line in various search modes.")
8762 (license license:gpl3+)))
8763
8764 (define-public emacs-pg
8765 (let ((commit "4f6516ec3946d95dcef49abb6703cc89ecb5183d"))
8766 (package
8767 (name "emacs-pg")
8768 (version (git-version "0.1" "1" commit))
8769 (source (origin
8770 (method git-fetch)
8771 (uri (git-reference (url "https://github.com/cbbrowne/pg.el")
8772 (commit commit)))
8773 (file-name (git-file-name name version))
8774 (sha256
8775 (base32
8776 "1zh7v4nnpzvbi8yj1ynlqlawk5bmlxi6s80b5f2y7hkdqb5q26k0"))))
8777 (build-system emacs-build-system)
8778 (home-page "https://github.com/cbbrowne/pg.el")
8779 (synopsis "Emacs Lisp interface for PostgreSQL")
8780 (description
8781 "This package provides an Emacs Lisp interface for PostgreSQL.")
8782 (license license:gpl3+))))
8783
8784 (define-public emacs-cl-generic
8785 (package
8786 (name "emacs-cl-generic")
8787 (version "0.3")
8788 (source
8789 (origin
8790 (method url-fetch)
8791 (uri (string-append "https://elpa.gnu.org/packages/cl-generic-"
8792 version ".el"))
8793 (sha256
8794 (base32
8795 "0vb338bhjpsnrf60qgxny4z5rjrnifahnrv9axd4shay89d894zq"))))
8796 (build-system emacs-build-system)
8797 (home-page "https://elpa.gnu.org/packages/seq.html")
8798 (synopsis
8799 "Forward @code{cl-generic} compatibility for Emacs before version 25")
8800 (description "This package provides a subset of the features of the
8801 @code{cl-generic} package introduced in Emacs-25, for use on previous
8802 @code{emacsen}.")
8803 (license license:gpl3+)))
8804
8805 (define-public emacs-finalize
8806 (package
8807 (name "emacs-finalize")
8808 (version "2.0.0")
8809 (source
8810 (origin
8811 (method url-fetch)
8812 (uri (string-append "https://github.com/skeeto/elisp-finalize/archive/"
8813 version ".tar.gz"))
8814 (file-name (string-append name "-" version ".tar.gz"))
8815 (sha256
8816 (base32
8817 "077fycy3i5f0kjw5z3rhf4kld5lbk2idz690nkwhkz04vppk4q4x"))))
8818 (build-system emacs-build-system)
8819 (propagated-inputs
8820 `(("emacs-cl-generic" ,emacs-cl-generic)))
8821 (home-page "https://github.com/skeeto/elisp-finalize")
8822 (synopsis "Finalizers for Emacs Lisp")
8823 (description
8824 "This package will allows to immediately run a callback (a finalizer)
8825 after its registered lisp object has been garbage collected. This allows for
8826 extra resources, such as buffers and processes, to be cleaned up after the
8827 object has been freed.")
8828 (license license:unlicense)))
8829
8830 (define-public emacs-emacsql
8831 (package
8832 (name "emacs-emacsql")
8833 (version "2.0.3")
8834 (source
8835 (origin
8836 (method url-fetch)
8837 (uri (string-append "https://github.com/skeeto/emacsql/archive/"
8838 version ".tar.gz"))
8839 (file-name (string-append name "-" version ".tar.gz"))
8840 (sha256
8841 (base32
8842 "04hfjdgl1zc7jysgjc7d7d3xqpr7q1q9gsmzffjd91ii3hpqjgx6"))))
8843 (build-system emacs-build-system)
8844 (arguments
8845 `(#:modules ((guix build emacs-build-system)
8846 (guix build utils)
8847 (guix build emacs-utils)
8848 (srfi srfi-26))
8849 #:phases
8850 (modify-phases %standard-phases
8851 (delete 'build) ;‘build-emacsql-sqlite’ compiles ‘*.el’ files.
8852 (add-before 'install 'patch-elisp-shell-shebangs
8853 (lambda _
8854 (substitute* (find-files "." "\\.el")
8855 (("/bin/sh") (which "sh")))
8856 #t))
8857 (add-after 'patch-elisp-shell-shebangs 'setenv-shell
8858 (lambda _
8859 (setenv "SHELL" "sh")))
8860 (add-after 'setenv-shell 'build-emacsql-sqlite
8861 (lambda _
8862 (invoke "make" "binary" "CC=gcc")))
8863 (add-after 'build-emacsql-sqlite 'install-emacsql-sqlite
8864 ;; This build phase installs emacs-emacsql binary.
8865 (lambda* (#:key outputs #:allow-other-keys)
8866 (install-file "sqlite/emacsql-sqlite"
8867 (string-append (assoc-ref outputs "out")
8868 "/bin"))
8869 #t))
8870 (add-after 'install-emacsql-sqlite 'patch-emacsql-sqlite.el
8871 ;; This build phase removes interactive prompts
8872 ;; and makes sure Emacs look for binaries in the right places.
8873 (lambda* (#:key outputs #:allow-other-keys)
8874 (let ((file "emacsql-sqlite.el"))
8875 (chmod file #o644)
8876 (emacs-substitute-sexps file
8877 ;; Avoid interactive prompts.
8878 ("(defvar emacsql-sqlite-user-prompted" 't)
8879 ;; Make sure Emacs looks for ‘GCC’ binary in the right place.
8880 ("(executable-find" (which "gcc"))
8881 ;; Make sure Emacs looks for ‘emacsql-sqlite’ binary
8882 ;; in the right place.
8883 ("(defvar emacsql-sqlite-executable"
8884 (string-append (assoc-ref outputs "out")
8885 "/bin/emacsql-sqlite"))))))
8886 (replace 'install
8887 (lambda* (#:key outputs #:allow-other-keys)
8888 (let* ((out (assoc-ref outputs "out")))
8889 (install-file "sqlite/emacsql-sqlite"
8890 (string-append out "/bin"))
8891 (for-each (cut install-file <>
8892 (string-append out "/share/emacs/site-lisp/guix.d/"
8893 "emacsql" "-" ,version))
8894 (find-files "." "\\.elc*$")))
8895 #t)))))
8896 (inputs
8897 `(("emacs-minimal" ,emacs-minimal)
8898 ("mariadb" ,mariadb)
8899 ("postgresql" ,postgresql)))
8900 (propagated-inputs
8901 `(("emacs-finalize" ,emacs-finalize)
8902 ("emacs-pg" ,emacs-pg)))
8903 (home-page "https://github.com/skeeto/emacsql")
8904 (synopsis "Emacs high-level SQL database front-end")
8905 (description "Any readable Lisp value can be stored as a value in EmacSQL,
8906 including numbers, strings, symbols, lists, vectors, and closures. EmacSQL
8907 has no concept of @code{TEXT} values; it's all just Lisp objects. The Lisp
8908 object @code{nil} corresponds 1:1 with @code{NULL} in the database.")
8909 (license license:gpl3+)))
8910
8911 (define-public emacs-closql
8912 (package
8913 (name "emacs-closql")
8914 (version "0.5.1")
8915 (source
8916 (origin
8917 (method url-fetch)
8918 (uri (string-append "https://github.com/emacscollective/closql/archive/"
8919 "v" version ".tar.gz"))
8920 (file-name (string-append name "-" version ".tar.gz"))
8921 (sha256
8922 (base32
8923 "0wa6r0kgbb7f19039p5f3di4dvrvxfgpd8bkam94fca7jvzj536c"))))
8924 (build-system emacs-build-system)
8925 (propagated-inputs
8926 `(("emacs-emacsql" ,emacs-emacsql)))
8927 (home-page "https://github.com/emacscollective/closql")
8928 (synopsis "Store EIEIO objects using EmacSQL")
8929 (description
8930 "This package allows to store uniform EIEIO objects in an EmacSQL
8931 database. SQLite is used as backend. This library imposes some restrictions
8932 on what kind of objects can be stored; it isn't intended to store arbitrary
8933 objects. All objects have to share a common superclass and subclasses cannot
8934 add any additional instance slots.")
8935 (license license:gpl3)))
8936
8937 (define-public emacs-epkg
8938 ;; The release version is to old for the current database scheme.
8939 (let ((commit "432312b9583ed7b88ad9644fd1bf2183765a892e"))
8940 (package
8941 (name "emacs-epkg")
8942 (version (git-version "3.0.0" "1" commit))
8943 (source
8944 (origin
8945 (method git-fetch)
8946 (uri (git-reference
8947 (url "https://github.com/emacscollective/epkg.git")
8948 (commit commit)))
8949 (file-name (git-file-name name version))
8950 (sha256
8951 (base32
8952 "0d882kahn7a0vri7a9r15lvmfx1zn2hsga6jfcc6jv0hqbswlb2k"))))
8953 (build-system emacs-build-system)
8954 (propagated-inputs
8955 `(("emacs-closql" ,emacs-closql)
8956 ("emacs-dash" ,emacs-dash)))
8957 (home-page "https://emacsmirror.net")
8958 (synopsis "Browse the Emacsmirror package database")
8959 (description "This package provides access to a local copy of the
8960 Emacsmirror package database. It provides low-level functions for querying
8961 the database and a @file{package.el} user interface for browsing the database.
8962 Epkg itself is not a package manager.
8963
8964 Getting a local copy:
8965
8966 @example
8967 git clone https://github.com/emacsmirror/epkgs.git ~/.emacs.d/epkgs
8968 cd ~/.emacs.d/epkgs
8969 git submodule init
8970 git config --global url.https://github.com/.insteadOf git@@github.com:
8971 git submodule update
8972 @end example
8973
8974 Some submodule may be missing. In this case Git will prompt for a GitHub user
8975 name and password. To skip it press a @key{Return} key.
8976
8977 You could get a Epkg package list by invoking @code{epkg-list-packages} in
8978 Emacs.")
8979 (license license:gpl3+))))
8980
8981 (define-public emacs-elisp-slime-nav
8982 (package
8983 (name "emacs-elisp-slime-nav")
8984 (version "0.9")
8985 (source
8986 (origin
8987 (method url-fetch)
8988 (uri (string-append "https://github.com/purcell/elisp-slime-nav/archive/"
8989 version ".tar.gz"))
8990 (file-name (string-append name "-" version ".tar.gz"))
8991 (sha256
8992 (base32
8993 "1vq7ym1q47p97gxrv45c9gm96d23xbp237vkmakikj6grngxjfb2"))))
8994 (build-system emacs-build-system)
8995 (home-page "https://github.com/purcell/elisp-slime-nav")
8996 (synopsis "Make @code{M-.} and @code{M-,} work for elisp like they do in SLIME")
8997 (description
8998 "This package provides SLIME's convenient @code{M-.}and @code{M-,} navigation
8999 in @code{emacs-lisp-mode}, together with an elisp equivalent of
9000 @code{slime-describe-symbol}.")
9001 (license license:gpl3+)))
9002
9003 (define-public emacs-dedicated
9004 (package
9005 (name "emacs-dedicated")
9006 (version "1.0.0")
9007 (source (origin
9008 (method url-fetch)
9009 (uri (string-append
9010 "https://github.com/emacsorphanage/dedicated/archive/"
9011 version
9012 ".tar.gz"))
9013 (sha256
9014 (base32
9015 "0nhbkp278cvcznb5rp3jp9ii3mjgb79zx8iwfrw7zfk3yg8688ni"))
9016 (file-name (string-append name "-" version ".tar.gz"))))
9017 (build-system emacs-build-system)
9018 (home-page "https://github.com/emacsorphanage/dedicated")
9019 (synopsis "Emacs minor mode for toggling a windows's \"dedicated\" flag")
9020 (description
9021 "This simple Emacs minor mode allows you to toggle a window's
9022 \"dedicated\" flag. When a window is \"dedicated\", Emacs will not select
9023 files into that window. This can be quite handy since many commands will use
9024 another window to show results (compilation mode, starting info, and so on).
9025 A dedicated window won't be used for such a purpose. For details, please read
9026 the source file.")
9027 (license license:gpl2+)))
9028
9029 (define-public emacs-nnreddit
9030 (let ((commit "9843f99d01fd8f1eea2fc685965a7c7f4eeb187a")
9031 (revision "1"))
9032 (package
9033 (name "emacs-nnreddit")
9034 (version (string-append "0.0.1-" revision "."
9035 (string-take commit 7)))
9036 (source (origin
9037 (method git-fetch)
9038 (uri (git-reference
9039 (url "https://github.com/paul-issartel/nnreddit.git")
9040 (commit commit)))
9041 (file-name (string-append name "-" version "-checkout"))
9042 (sha256
9043 (base32
9044 "0j4h3bnga640250jdq8bwyja49r41ssrsjd6lba4gzzllqk02nbn"))))
9045 (build-system emacs-build-system)
9046 (home-page "https://github.com/paul-issartel/nnreddit")
9047 (synopsis "Reddit backend for the Gnus newsreader")
9048 (description "@url{https://www.reddit.com} backend for the Gnus
9049 newsreader.")
9050 (license license:gpl3+))))
9051
9052 (define-public emacs-makey
9053 (package
9054 (name "emacs-makey")
9055 (version "0.3")
9056 (source
9057 (origin
9058 (method url-fetch)
9059 (uri (string-append "https://github.com/mickeynp/makey/archive/"
9060 version ".tar.gz"))
9061 (file-name (string-append name "-" version ".tar.gz"))
9062 (sha256
9063 (base32
9064 "0kzl4q1wf2zhkx9nrymxa67n99iq0bj7zqhpaz4byksna1hsxfmv"))))
9065 (build-system emacs-build-system)
9066 (home-page "https://github.com/mickeynp/makey")
9067 (synopsis "Emacs interactive command-line mode")
9068 (description
9069 "This package provides an Emacs interactive command-line mode.")
9070 (license license:gpl3+)))
9071
9072 (define-public emacs-outorg
9073 (let ((commit "78b0695121fb974bc4e971eb4ef7f8afd6d89d64"))
9074 (package
9075 (name "emacs-outorg")
9076 (version (git-version "2.0" "1" commit))
9077 (source
9078 (origin
9079 (method git-fetch)
9080 (uri (git-reference
9081 (url "https://github.com/alphapapa/outorg")
9082 (commit commit)))
9083 (file-name (git-file-name name version))
9084 (sha256
9085 (base32
9086 "03aclh4m3f7rb821gr9pwvnqkkl91px3qxdcarpf3ypa1x4fxvlj"))))
9087 (build-system emacs-build-system)
9088 (home-page "https://github.com/alphapapa/outorg")
9089 (synopsis "Org-style comment editing")
9090 (description "Outorg is for editing comment-sections of source-code
9091 files in temporary Org-mode buffers. It turns conventional
9092 literate-programming upside-down in that the default mode is the
9093 programming-mode, and special action has to be taken to switch to the
9094 text-mode (i.e. Org-mode).")
9095 (license license:gpl3+))))
9096
9097 (define-public emacs-outshine
9098 (let ((commit "5f1a6b70231d2811c522e4e5e8c89ff461b311d6"))
9099 (package
9100 (name "emacs-outshine")
9101 (version (git-version "2.0" "1" commit))
9102 (source (origin
9103 (method git-fetch)
9104 (uri (git-reference
9105 (url "https://github.com/alphapapa/outshine.git")
9106 (commit commit)))
9107 (file-name (git-file-name name version))
9108 (sha256
9109 (base32
9110 "1l9v1dfhgg7il11ifbhvcvrg3acfjk9sdxlc3lja1k54d7dp60jv"))))
9111 (build-system emacs-build-system)
9112 (propagated-inputs
9113 `(("emacs-outorg" ,emacs-outorg)))
9114 (home-page "https://github.com/alphapapa/outshine")
9115 (synopsis "Emacs outline with outshine")
9116 (description "Outshine attempts to bring the look and feel of
9117 @code{org-mode} to an Emacs outside of the Org major-mode. It is an extension
9118 of @code{outline-minor-mode} (@code{org-mode} itself derives from
9119 outline-mode), so there is no such thing like an outshine mode, only
9120 @code{outline-minor-mode} with outshine extensions loaded.")
9121 (license license:gpl3+))))
9122
9123 (define-public emacs-parsebib
9124 (package
9125 (name "emacs-parsebib")
9126 (version "2.3.1")
9127 (source
9128 (origin
9129 (method url-fetch)
9130 (uri (string-append "https://github.com/joostkremers/parsebib/archive/"
9131 version ".tar.gz"))
9132 (file-name (string-append name "-" version ".tar.gz"))
9133 (sha256
9134 (base32
9135 "0cxagnmc5ab6idmb26axpizhr4sqglkncc59768yavn3p04jyq63"))))
9136 (build-system emacs-build-system)
9137 (home-page "https://github.com/joostkremers/parsebib")
9138 (synopsis "Library for parsing bib files")
9139 (description
9140 "This package provides an Emacs library for parsing bib files.")
9141 (license license:gpl3+)))
9142
9143 (define-public emacs-biblio
9144 (package
9145 (name "emacs-biblio")
9146 (version "0.1")
9147 (source
9148 (origin
9149 (method url-fetch)
9150 (uri (string-append "https://github.com/cpitclaudel/biblio.el/archive/"
9151 version ".tar.gz"))
9152 (file-name (string-append name "-" version ".tar.gz"))
9153 (sha256
9154 (base32
9155 "109fvivsb4r0rbqljngqrmxqvbnbkqlivczx6brrvlr7ci625lhf"))))
9156 (build-system emacs-build-system)
9157 (propagated-inputs
9158 `(("emacs-seq" ,emacs-seq)
9159 ("emacs-dash" ,emacs-dash)
9160 ("emacs-let-alist" ,emacs-let-alist)))
9161 (home-page "https://github.com/cpitclaudel/biblio.el")
9162 (synopsis "Browse and import bibliographic references")
9163 (description "This package provides an extensible Emacs package for
9164 browsing and fetching references.
9165
9166 @file{biblio.el} makes it easy to browse and gather bibliographic references
9167 and publications from various sources, by keywords or by DOI. References are
9168 automatically fetched from well-curated sources, and formatted as BibTeX.")
9169 (license license:gpl3+)))
9170
9171 (define-public emacs-helm-bibtex
9172 (let ((commit "8ed898fb5a68f18e9bb9973832a5c1f8abcfc463")
9173 (revision "1"))
9174 (package
9175 (name "emacs-helm-bibtex")
9176 (version (string-append "2.0.0" "-" revision "."
9177 (string-take commit 7)))
9178 (source
9179 (origin
9180 (method git-fetch)
9181 (uri (git-reference
9182 (url "https://github.com/tmalsburg/helm-bibtex.git")
9183 (commit commit)))
9184 (file-name (string-append name "-" version "-checkout"))
9185 (sha256
9186 (base32
9187 "14lyx0vbqr97p3anzrsp7m3q0kqclyjcdwplpraim403fcklzbnz"))))
9188 (build-system emacs-build-system)
9189 (propagated-inputs
9190 `(("emacs-helm" ,emacs-helm)
9191 ("emacs-parsebib" ,emacs-parsebib)
9192 ("emacs-s" ,emacs-s)
9193 ("emacs-dash" ,emacs-dash)
9194 ("emacs-f" ,emacs-f)
9195 ("emacs-biblio" ,emacs-biblio)
9196 ("emacs-ivy" ,emacs-ivy)))
9197 (home-page "https://github.com/tmalsburg/helm-bibtex")
9198 (synopsis "Bibliography manager based on Helm")
9199 (description "This package provides bibliography manager for Emacs,
9200 based on Helm and the bibtex-completion backend.
9201
9202 Key features:
9203
9204 @itemize
9205 @item Quick access to your bibliography from within Emacs
9206 @item Powerful search capabilities
9207 @item Provides instant search results as you type
9208 @item Tightly integrated with LaTeX authoring, emails, Org mode, etc.
9209 @item Open the PDFs, URLs, or DOIs associated with an entry
9210 @item Insert LaTeX cite commands, Ebib links, or Pandoc citations,
9211 BibTeX entries, or plain text references at point, attach PDFs to emails
9212 @item Support for note taking
9213 @item Quick access to online bibliographic databases such as Pubmed,
9214 arXiv, Google Scholar, Library of Congress, etc.
9215 @item Imports BibTeX entries from CrossRef and other sources.
9216 @end itemize\n")
9217 (license license:gpl3+))))
9218
9219 (define-public emacs-ewmctrl
9220 (let ((commit "3d0217c4d6cdb5c308b6cb4293574f470d4faacf"))
9221 (package
9222 (name "emacs-ewmctrl")
9223 (version (git-version "0.0.1" "1" commit))
9224 (source
9225 (origin
9226 (method git-fetch)
9227 (uri (git-reference
9228 (url "https://github.com/flexibeast/ewmctrl.git")
9229 (commit commit)))
9230 (file-name (git-file-name name version))
9231 (sha256
9232 (base32
9233 "0ilwvx0qryv3v6xf0gxqwnfm6pf96gxap8h9g3f6z6lk9ff4n1wi"))))
9234 (build-system emacs-build-system)
9235 (arguments
9236 '(#:phases
9237 (modify-phases %standard-phases
9238 (add-after 'unpack 'patch-ewmctrl
9239 ;; This build phase makes sure ‘ewmctrl’ looks
9240 ;; for ‘wmctrl’ in the right place.
9241 (lambda _
9242 (let ((file "ewmctrl.el"))
9243 (chmod file #o644)
9244 (emacs-substitute-sexps file
9245 ("(defcustom ewmctrl-wmctrl-path" (which "wmctrl")))))))))
9246 (inputs
9247 `(("wmctrl" ,wmctrl)))
9248 (home-page "https://github.com/flexibeast/ewmctrl")
9249 (synopsis "Emacs interface to @code{wmctrl}")
9250 (description "@code{ewmctrl} provides an Emacs interface to
9251 @code{wmctrl} command-line window-management program.")
9252 (license license:gpl3+))))
9253
9254 (define-public emacs-helm-gtags
9255 (package
9256 (name "emacs-helm-gtags")
9257 (version "1.5.6")
9258 (source (origin
9259 (method url-fetch)
9260 (uri (string-append
9261 "https://github.com/syohex/emacs-helm-gtags/archive/"
9262 version ".tar.gz"))
9263 (file-name (string-append name "-" version ".tar.gz"))
9264 (sha256
9265 (base32
9266 "1a10snhg6nnnan6w9a7mcziy26vxbsr3c35i0gcarnkdp2yqng36"))))
9267 (build-system emacs-build-system)
9268 (propagated-inputs
9269 `(("emacs-helm" ,emacs-helm)))
9270 (home-page "https://github.com/syohex/emacs-helm-gtags")
9271 (synopsis "Emacs Helm interface to GNU Global")
9272 (description
9273 "@code{emacs-helm-gtags} provides a Emacs Helm interface to GNU Global.")
9274 (license license:gpl3+)))
9275
9276 (define-public emacs-list-utils
9277 (package
9278 (name "emacs-list-utils")
9279 (version "0.4.4")
9280 (source
9281 (origin
9282 (method url-fetch)
9283 (uri (string-append "https://github.com/rolandwalker/list-utils/archive/"
9284 "v" version ".tar.gz"))
9285 (file-name (string-append name "-" version ".tar.gz"))
9286 (sha256
9287 (base32
9288 "1xc1xh8c82h5gdjbgpdsdclgwxkxbb7h3x3a2bscpm41g8pnan4p"))))
9289 (build-system emacs-build-system)
9290 (home-page "https://github.com/rolandwalker/list-utils")
9291 (synopsis "List-manipulation utility functions")
9292 (description "This package provides a list manipulation library for Emacs.")
9293 (license license:gpl3+)))
9294
9295 (define-public emacs-move-text
9296 (package
9297 (name "emacs-move-text")
9298 (version "2.0.8")
9299 (source
9300 (origin
9301 (method url-fetch)
9302 (uri (string-append "https://github.com/emacsfodder/move-text/archive/"
9303 version ".tar.gz"))
9304 (file-name (string-append name "-" version ".tar.gz"))
9305 (sha256
9306 (base32
9307 "1sjfja9r25692pgcldgnjzkapzy970m14jh9l4pajysiqcdk72g0"))))
9308 (build-system emacs-build-system)
9309 (home-page "https://github.com/emacsfodder/move-text")
9310 (synopsis "Move current line or region with M-up or M-down")
9311 (description "This package provide functions to move the current line
9312 using @kbd{M-up} or @kbd{M-down} if a region is marked, it will move the
9313 region instead.")
9314 (license license:gpl3+)))
9315
9316 (define-public emacs-validate
9317 (package
9318 (name "emacs-validate")
9319 (version "1.0.5")
9320 (source (origin
9321 (method url-fetch)
9322 (uri (string-append "https://github.com/Malabarba/validate.el"
9323 "/archive/" version ".tar.gz"))
9324 (file-name (string-append name "-" version ".tar.gz"))
9325 (sha256
9326 (base32
9327 "125mbd111f1h1baw0z3fzm48y1bvaigljyzvvnqgrn0shxbj0khg"))))
9328 (build-system emacs-build-system)
9329 (home-page "https://github.com/Malabarba/validate.el")
9330 (synopsis "Emacs library for scheme validation")
9331 (description "This Emacs library provides two functions that perform
9332 schema validation.")
9333 (license license:gpl3+)))
9334
9335 (define-public emacs-rainbow-blocks
9336 (let ((commit "dd435d7bb34ff6f162a5f315df308b90b7e9f842"))
9337 (package
9338 (name "emacs-rainbow-blocks")
9339 (version (git-version "1.0.0" "1" commit))
9340 (source (origin
9341 (method git-fetch)
9342 (uri (git-reference
9343 (url "https://github.com/istib/rainbow-blocks.git")
9344 (commit commit)))
9345 (file-name (git-file-name name version))
9346 (sha256
9347 (base32
9348 "06yfb3i7wzvqrhkb61zib9xvpb5i00s4frizkzff66im05k0n795"))))
9349 (build-system emacs-build-system)
9350 (home-page "https://github.com/istib/rainbow-blocks")
9351 (synopsis "Highlight sexp blocks")
9352 (description "Rainbow-blocks is an Emacs mode that highlights blocks
9353 made of parentheses, brackets, and braces according to their depth. Each
9354 successive level is highlighted in a different color. This makes it easy to
9355 orient yourself in the code, and tell which statements are at a given level.")
9356 (license license:gpl3+))))
9357
9358 (define-public emacs-hierarchy
9359 (package
9360 (name "emacs-hierarchy")
9361 (version "0.7.0")
9362 (source
9363 (origin
9364 (method url-fetch)
9365 (uri (string-append
9366 "https://github.com/DamienCassou/hierarchy/archive/"
9367 "v" version ".tar.gz"))
9368 (file-name (string-append name "-" version ".tar.gz"))
9369 (sha256
9370 (base32
9371 "1a463v5zk6zis2p8cs4mads3iyxh266yahi6j6y0paggfl2yhkc8"))))
9372 (build-system emacs-build-system)
9373 (home-page "https://github.com/DamienCassou/hierarchy")
9374 (synopsis "Library to create and display hierarchy structures")
9375 (description "This package provides an Emacs library to create, query,
9376 navigate and display hierarchy structures.")
9377 (license license:gpl3+)))
9378
9379 (define-public emacs-tree-mode
9380 (let ((commit "b06078826d5875d74b0e7b7ac47b0d0917610534")
9381 (revision "1"))
9382 (package
9383 (name "emacs-tree-mode")
9384 (version (string-append "0.0.1" "-" revision "."
9385 (string-take commit 7)))
9386 (source
9387 (origin
9388 (method git-fetch)
9389 (uri (git-reference
9390 (url "https://github.com/emacsorphanage/tree-mode.git")
9391 (commit commit)))
9392 (file-name (string-append name "-" version "-checkout"))
9393 (sha256
9394 (base32
9395 "13bbdhdmqg4x9yghanhr8fsbsxbnypzxdxgicz31sjjm675kpnix"))))
9396 (build-system emacs-build-system)
9397 (home-page "https://github.com/emacsorphanage/tree-mode")
9398 (synopsis "Emacs mode to manage tree widgets")
9399 (description
9400 "This package provides an Emacs library to manage tree widgets.")
9401 (license license:gpl3+))))
9402
9403 (define-public emacs-md4rd
9404 (let ((commit "be0fc4951b2d1f5194ffa1fcaac706dbac560500")
9405 (revision "1"))
9406 (package
9407 (name "emacs-md4rd")
9408 (version (string-append "0.0.1" "-" revision "."
9409 (string-take commit 7)))
9410 (source (origin
9411 (method git-fetch)
9412 (uri (git-reference
9413 (url "https://github.com/ahungry/md4rd.git")
9414 (commit commit)))
9415 (file-name (string-append name "-" version "-checkout"))
9416 (sha256
9417 (base32
9418 "1i93shx5x192gd7cl2r6gvcvhhwyi1k08abi5w3izv1hn3pmksgq"))))
9419 (propagated-inputs
9420 `(("emacs-hierarchy" ,emacs-hierarchy)
9421 ("emacs-request" ,emacs-request)
9422 ("emacs-dash" ,emacs-dash)
9423 ("emacs-s" ,emacs-s)
9424 ("emacs-tree-mode" ,emacs-tree-mode)))
9425 (build-system emacs-build-system)
9426 (home-page "https://github.com/ahungry/md4rd")
9427 (synopsis "Emacs Mode for Reddit")
9428 (description
9429 "This package allows to read Reddit from within Emacs interactively.")
9430 (license license:gpl3+))))
9431
9432 (define-public emacs-pulseaudio-control
9433 (let ((commit "1da372ec79f5d2fb901d1f9f0679fee8848fd011")
9434 (revision "2"))
9435 (package
9436 (name "emacs-pulseaudio-control")
9437 (version (git-version "0.0.1" revision commit))
9438 (source
9439 (origin
9440 (method git-fetch)
9441 (uri (git-reference
9442 (url "https://github.com/flexibeast/pulseaudio-control.git")
9443 (commit commit)))
9444 (file-name (git-file-name name version))
9445 (sha256
9446 (base32
9447 "02xrsms2pjqdk6327midi61i5vg2h9cq5jwaxv43ldm68wl7hi6k"))))
9448 (build-system emacs-build-system)
9449 (arguments
9450 '(#:phases (modify-phases %standard-phases
9451 (add-after 'unpack 'patch-file-name
9452 (lambda* (#:key inputs #:allow-other-keys)
9453 (let ((pulseaudio (assoc-ref inputs "pulseaudio")))
9454 (chmod "pulseaudio-control.el" #o600)
9455 (emacs-substitute-variables "pulseaudio-control.el"
9456 ("pulseaudio-control-pactl-path"
9457 (string-append pulseaudio "/bin/pactl")))
9458 #t))))))
9459 (inputs `(("pulseaudio" ,pulseaudio)))
9460 (home-page "https://github.com/flexibeast/pulseaudio-control")
9461 (synopsis "Control @code{pulseaudio} from Emacs")
9462 (description
9463 "This package allows to control @code{pulseaudio} from Emacs.")
9464 (license license:gpl3+))))
9465
9466 (define-public emacs-datetime
9467 (package
9468 (name "emacs-datetime")
9469 (version "0.3")
9470 (source (origin
9471 (method url-fetch)
9472 (uri (string-append
9473 "https://github.com/doublep/datetime/archive/"
9474 version ".tar.gz"))
9475 (file-name (string-append name "-" version ".tar.gz"))
9476 (sha256
9477 (base32
9478 "12wqpj67rjij2ki7nmw38rz3k2bsq68pk6zswknlcn9qhp1zd9w9"))))
9479 (build-system emacs-build-system)
9480 (home-page "https://github.com/doublep/datetime/")
9481 (synopsis "Library to work with dates in Emacs")
9482 (description "Parsing, formatting, matching and recoding
9483 timestamps and date-time format strings library for Emacs.")
9484 (license license:gpl3+)))
9485
9486 (define-public emacs-org-mind-map
9487 (let ((commit "9d6e262bedd94daf9de269f4d56de277275677cb")
9488 (revision "1"))
9489 (package
9490 (name "emacs-org-mind-map")
9491 (version (string-append "0.0.1" "-" revision "."
9492 (string-take commit 7)))
9493 (source
9494 (origin
9495 (method git-fetch)
9496 (uri (git-reference
9497 (url "https://github.com/theodorewiles/org-mind-map.git")
9498 (commit commit)))
9499 (file-name (string-append name "-" version "-checkout"))
9500 (sha256
9501 (base32
9502 "0jgkkgq7g64zckrmjib0hvz0qy3ynz5vz13qbmlpf096l3bb65wn"))))
9503 (propagated-inputs
9504 `(("emacs-dash" ,emacs-dash)))
9505 (build-system emacs-build-system)
9506 (home-page "https://github.com/theodorewiles/org-mind-map")
9507 (synopsis "Create Graphviz directed graphs from Org files")
9508 (description
9509 "This package creates Graphviz directed graphs from Org files.")
9510 (license license:gpl3+))))
9511
9512 (define-public emacs-npm-mode
9513 (package
9514 (name "emacs-npm-mode")
9515 (version "0.6.0")
9516 (source
9517 (origin
9518 (method url-fetch)
9519 (uri (string-append "https://github.com/mojochao/npm-mode/archive/"
9520 version ".tar.gz"))
9521 (file-name (string-append name "-" version ".tar.gz"))
9522 (sha256
9523 (base32
9524 "1kq1ww22dwf8c2i2b4z2ldbbmnihj65kb7n5vzvwkch9h4hxpqh5"))))
9525 (build-system emacs-build-system)
9526 (home-page "https://github.com/mojochao/npm-mode")
9527 (synopsis "Minor mode for working with @code{npm} projects")
9528 (description
9529 "@code{npm-mode} provides a minor mode to work with @code{npm} projects.")
9530 (license license:gpl3+)))
9531
9532 (define-public emacs-seq
9533 (package
9534 (name "emacs-seq")
9535 (version "2.20")
9536 (source
9537 (origin
9538 (method url-fetch)
9539 (uri (string-append "http://elpa.gnu.org/packages/seq-" version ".tar"))
9540 (sha256
9541 (base32
9542 "0vrpx6nnyjb0gsypknzagimlhvcvi5y1rcdkpxyqr42415zr8d0n"))))
9543 (build-system emacs-build-system)
9544 (home-page "http://elpa.gnu.org/packages/seq.html")
9545 (synopsis "Sequence manipulation functions")
9546 (description "Sequence-manipulation functions that complement basic
9547 functions provided by @file{subr.el}.")
9548 (license license:gpl3+)))
9549
9550 (define-public emacs-itail
9551 (let ((commit "6e43c20da03be3b9c6ece93b7dc3495975ec1888")
9552 (revision "1"))
9553 (package
9554 (name "emacs-itail")
9555 (version (string-append "0.0.1" "-" revision "."
9556 (string-take commit 7)))
9557 (source
9558 (origin
9559 (method git-fetch)
9560 (uri (git-reference
9561 (url "https://github.com/re5et/itail.git")
9562 (commit commit)))
9563 (file-name (string-append name "-" version "-checkout"))
9564 (sha256
9565 (base32
9566 "044nzxh1hq41faxw3lix0wy78vfz304pjcaa5a11dqfz7q3gx5cv"))))
9567 (build-system emacs-build-system)
9568 (home-page "https://github.com/re5et/itail")
9569 (synopsis "Interactive @code{tail} Emacs mode")
9570 (description "@code{itail} provides interactive @code{tail} mode
9571 that allows you to filter the tail with unix pipes and highlight the
9572 contents of the tailed file. Works locally or on remote files using
9573 tramp.")
9574 (license license:gpl3+))))
9575
9576 (define-public emacs-loop
9577 (package
9578 (name "emacs-loop")
9579 (version "1.3")
9580 (source
9581 (origin
9582 (method url-fetch)
9583 (uri (string-append "https://github.com/Wilfred/loop.el/archive/"
9584 version ".tar.gz"))
9585 (file-name (string-append name "-" version ".tar.gz"))
9586 (sha256
9587 (base32
9588 "1z3rhh3zyjabz36410yz0lp4a0qwwj0387as662wvx3z9y54jia9"))))
9589 (build-system emacs-build-system)
9590 (home-page "https://github.com/Wilfred/loop.el")
9591 (synopsis "Imperative loop structures for Emacs")
9592 (description "Loop structures familiar to users of other languages. This
9593 library adds a selection of popular loop structures as well as break and
9594 continue.")
9595 (license license:gpl3+)))
9596
9597 (define-public emacs-elisp-refs
9598 (package
9599 (name "emacs-elisp-refs")
9600 (version "1.3")
9601 (source
9602 (origin
9603 (method url-fetch)
9604 (uri (string-append "https://github.com/Wilfred/elisp-refs/archive/"
9605 version ".tar.gz"))
9606 (file-name (string-append name "-" version ".tar.gz"))
9607 (sha256
9608 (base32
9609 "02nzcn3v14n7mp7q32j5r4wdlpsw3zixzh6cf0cdyarfir6dly3p"))))
9610 (build-system emacs-build-system)
9611 (propagated-inputs
9612 `(("emacs-dash" ,emacs-dash)
9613 ("emacs-f" ,emacs-f)
9614 ("emacs-list-utils" ,emacs-list-utils)
9615 ("emacs-loop" ,emacs-loop)
9616 ("emacs-s" ,emacs-s)
9617 ("emacs-shut-up" ,emacs-shut-up)))
9618 (home-page "https://github.com/Wilfred/elisp-refs")
9619 (synopsis "Find callers of elisp functions or macros")
9620 (description "Find references to functions, macros or variables. Unlike a
9621 dumb text search, @code{elisp-refs} actually parses the code, so it's never
9622 confused by comments or @code{foo-bar} matching @code{foo}.")
9623 (license license:gpl3+)))
9624
9625 (define-public emacs-crux
9626 (let ((commit "4f5c8fefd5a6aa52e128c4a0401cc86410d6ac8f")
9627 (revision "1"))
9628 (package
9629 (name "emacs-crux")
9630 (version (string-append "0.3.0" "-" revision "."
9631 (string-take commit 7)))
9632 (source
9633 (origin
9634 (method git-fetch)
9635 (uri (git-reference
9636 (url "https://github.com/bbatsov/crux.git")
9637 (commit commit)))
9638 (file-name (string-append name "-" version "-checkout"))
9639 (sha256
9640 (base32
9641 "1fdxvv25cs01sg6fmvmzxpzvs50i6v8n2jya60lbavxqqhi0sbxd"))))
9642 (build-system emacs-build-system)
9643 (home-page "https://github.com/bbatsov/crux")
9644 (synopsis "Collection of useful functions for Emacs")
9645 (description
9646 "@code{crux} provides a collection of useful functions for Emacs.")
9647 (license license:gpl3+))))
9648
9649 (define-public emacs-edit-server
9650 (package
9651 (name "emacs-edit-server")
9652 (version "1.13")
9653 (source
9654 (origin
9655 (method url-fetch)
9656 (uri (string-append "https://github.com/stsquad/emacs_chrome/archive/"
9657 "v" version ".tar.gz"))
9658 (file-name (string-append name "-" version ".tar.gz"))
9659 (sha256
9660 (base32
9661 "1r92kqggslqasza718z4ka883mqfbnibdm43f0j9gaipk0msm2wf"))))
9662 (build-system emacs-build-system)
9663 (arguments
9664 `(#:phases
9665 (modify-phases %standard-phases
9666 (add-after 'unpack 'chdir-elisp
9667 ;; Elisp directory is not in root of the source.
9668 (lambda _
9669 (chdir "servers"))))))
9670 (home-page "https://github.com/stsquad/emacs_chrome")
9671 (synopsis "Server that responds to edit requests from Chromium")
9672 (description
9673 "This package provides an edit server to respond to requests from Emacs.")
9674 (license license:gpl3+)))
9675
9676 (define-public emacs-m-buffer-el
9677 (package
9678 (name "emacs-m-buffer-el")
9679 (version "0.15")
9680 (source
9681 (origin
9682 (method url-fetch)
9683 (uri (string-append "https://github.com/phillord/m-buffer-el"
9684 "/archive/" "v" version ".tar.gz"))
9685 (file-name (string-append name "-" version ".tar.gz"))
9686 (sha256
9687 (base32
9688 "17vdcc8q37q9db98jyww1c0ivinmwfcw4l04zccfacalra63a214"))))
9689 (arguments
9690 `(#:phases
9691 (modify-phases %standard-phases
9692 (add-before 'install 'check
9693 (lambda* (#:key inputs #:allow-other-keys)
9694 (invoke "emacs" "--batch" "-L" "."
9695 "-l" "test/m-buffer-test.el"
9696 "-l" "test/m-buffer-at-test.el"
9697 "-f" "ert-run-tests-batch-and-exit"))))))
9698 (build-system emacs-build-system)
9699 (home-page "https://github.com/phillord/m-buffer-el")
9700 (synopsis "List oriented buffer operations for Emacs")
9701 (description "@code{m-buffer} provides a set of list-orientated functions
9702 for operating over the contents of Emacs buffers.")
9703 (license license:gpl3+)))
9704
9705 (define-public emacs-let-alist
9706 (package
9707 (name "emacs-let-alist")
9708 (version "1.0.5")
9709 (source
9710 (origin
9711 (method url-fetch)
9712 (uri (string-append
9713 "https://elpa.gnu.org/packages/let-alist-" version ".el"))
9714 (sha256
9715 (base32
9716 "0r7b9jni50la1m79kklml11syg8d2fmdlr83pv005sv1wh02jszw"))))
9717 (build-system emacs-build-system)
9718 (home-page "https://elpa.gnu.org/packages/let-alist.html")
9719 (synopsis "Easily let-bind values of an assoc-list by their names")
9720 (description "This package offers a single macro, @code{let-alist}. This
9721 macro takes a first argument (whose value must be an alist) and a body.")
9722 (license license:gpl3+)))
9723
9724 (define-public emacs-esup
9725 (let ((commit "a589005a9a888537deef94d6fe38a9b8790c97c7")
9726 (revision "1"))
9727 (package
9728 (name "emacs-esup")
9729 (version (string-append "0.6" "-" revision "."
9730 (string-take commit 7)))
9731 (source
9732 (origin
9733 (method git-fetch)
9734 (uri (git-reference
9735 (url "https://github.com/jschaf/esup.git")
9736 (commit commit)))
9737 (file-name (string-append name "-" version "-checkout"))
9738 (sha256
9739 (base32
9740 "04lxmd0h7mfjjl0qghrycgff0vcv950j1wqv0dbkr61jxp64n5fv"))))
9741 ;; TODO: Add tests
9742 (build-system emacs-build-system)
9743 (home-page "https://github.com/jschaf/esup")
9744 (synopsis "Emacs start up profiler")
9745 (description "Benchmark Emacs Startup time without ever leaving
9746 your Emacs.")
9747 (license license:gpl2+))))
9748
9749 (define-public emacs-sourcemap
9750 (package
9751 (name "emacs-sourcemap")
9752 (version "0.03")
9753 (source
9754 (origin
9755 (method url-fetch)
9756 (uri (string-append "https://github.com/syohex/emacs-sourcemap/archive/"
9757 version ".tar.gz"))
9758 (file-name (string-append name "-" version ".tar.gz"))
9759 (sha256
9760 (base32
9761 "0bmd5l3cx2iyl7vxn84xdhs80b07kpdpfwki28lh5d0kmm5qs6m6"))))
9762 (build-system emacs-build-system)
9763 (home-page "https://github.com/syohex/emacs-sourcemap")
9764 (synopsis "Sourcemap parser")
9765 (description "Sourcemap parser")
9766 (license license:gpl3+)))
9767
9768 (define-public emacs-macrostep
9769 (let ((commit "424e3734a1ee526a1bd7b5c3cd1d3ef19d184267"))
9770 (package
9771 (name "emacs-macrostep")
9772 (version (git-version "0.9" "1" commit))
9773 (source (origin
9774 (method git-fetch)
9775 (uri (git-reference
9776 (url "https://github.com/joddie/macrostep.git")
9777 (commit commit)))
9778 (file-name (string-append name "-" version "-checkout"))
9779 (sha256
9780 (base32
9781 "1fm40mxdn289cyzgw992223dgrjmwxn4q8svyyxfaxjrpb38jhjz"))))
9782 (build-system emacs-build-system)
9783 (arguments
9784 '(#:phases
9785 (modify-phases %standard-phases
9786 (add-before 'check 'remove-test
9787 ;; Fails because of requirement ‘/bin/sh’.
9788 (lambda _
9789 (let ((file "macrostep-test.el"))
9790 (chmod file #o644)
9791 (emacs-batch-edit-file file
9792 `(progn (progn (goto-char (point-min))
9793 (re-search-forward
9794 "(ert-deftest macrostep-expand-c-macros")
9795 (beginning-of-line)
9796 (kill-sexp))
9797 (basic-save-buffer))))))
9798 (add-before 'install 'check
9799 (lambda _
9800 (invoke "emacs" "--batch" "-L" "."
9801 "-l" "macrostep-test.el"
9802 "-f" "ert-run-tests-batch-and-exit"))))))
9803 (home-page "https://github.com/joddie/macrostep")
9804 (synopsis "Interactive macro-expander for Emacs")
9805 (description "@code{macrostep} is an Emacs minor mode for interactively
9806 stepping through the expansion of macros in Emacs Lisp source code. It lets
9807 you see exactly what happens at each step of the expansion process by
9808 pretty-printing the expanded forms inline in the source buffer, which is
9809 temporarily read-only while macro expansions are visible. You can expand and
9810 collapse macro forms one step at a time, and evaluate or instrument the
9811 expansions for debugging with Edebug as normal (but see “Bugs and known
9812 limitations”, below). Single-stepping through the expansion is particularly
9813 useful for debugging macros that expand into another macro form. These can be
9814 difficult to debug with Emacs’ built-in macroexpand, which continues expansion
9815 until the top-level form is no longer a macro call.")
9816 (license license:gpl3+))))
9817
9818 (define-public emacs-parent-mode
9819 (package
9820 (name "emacs-parent-mode")
9821 (version "2.3")
9822 (source
9823 (origin
9824 (method url-fetch)
9825 (uri (string-append "https://github.com/Fanael/parent-mode/archive/"
9826 version ".tar.gz"))
9827 (file-name (string-append name "-" version ".tar.gz"))
9828 (sha256
9829 (base32
9830 "0gxbl5s1w96v6v55b7aaansgw4sxhzfx9nrsvpk3pfhsibs6yqjd"))))
9831 (build-system emacs-build-system)
9832 (home-page "https://github.com/Fanael/parent-mode")
9833 (synopsis "Get major mode's parent modes")
9834 (description "Get major mode's parent modes")
9835 (license license:gpl3+)))
9836
9837 (define-public emacs-lacarte
9838 (package
9839 (name "emacs-lacarte")
9840 (version "0.1")
9841 (source (origin
9842 (method url-fetch)
9843 (uri "https://www.emacswiki.org/emacs/download/lacarte.el")
9844 (sha256
9845 (base32
9846 "1sbmk37ljq5j7dsw5c37sbxvlfgdqswh7bi4dknyjzfxlq50f4am"))))
9847 (build-system emacs-build-system)
9848 (home-page "https://www.emacswiki.org/emacs/lacarte.el")
9849 (synopsis "Execute menu items as commands, with completion")
9850 (description "Execute menu items as commands, with completion.")
9851 (license license:gpl3)))
9852
9853 (define-public emacs-company-lua
9854 (let ((commit "0be8122f3adf57ad27953bf4b03545d6298d3da4"))
9855 (package
9856 (name "emacs-company-lua")
9857 (version (git-version "0.1" "1" commit))
9858 (source
9859 (origin
9860 (method git-fetch)
9861 (uri (git-reference
9862 (url "https://github.com/ptrv/company-lua.git")
9863 (commit commit)))
9864 (file-name (git-file-name name version))
9865 (sha256
9866 (base32
9867 "1d9i165apgmwns7b2fd5wcpjpkah3dyj20v5sb8ynvz6qhhr5r9c"))))
9868 (build-system emacs-build-system)
9869 (propagated-inputs
9870 `(("emacs-company" ,emacs-company)
9871 ("emacs-s" ,emacs-s)
9872 ("emacs-f" ,emacs-f)
9873 ("emacs-lua-mode" ,emacs-lua-mode)))
9874 (home-page "https://github.com/ptrv/company-lua")
9875 (synopsis "Company backend for Lua")
9876 (description
9877 "This package provides Company backend for Lua programming language.")
9878 (license license:gpl3+))))
9879
9880 (define-public emacs-beginend
9881 (package
9882 (name "emacs-beginend")
9883 (version "2.0.0")
9884 (source
9885 (origin
9886 (method url-fetch)
9887 (uri (string-append "https://github.com/DamienCassou/beginend/archive/"
9888 "v" version ".tar.gz"))
9889 (file-name (string-append name "-" version ".tar.gz"))
9890 (sha256
9891 (base32
9892 "0z4rbwffh9vxfvcrlvym4p73z7gf72q0b5iv33llbpcpbijknnrq"))))
9893 ;; TODO: Run tests.
9894 (build-system emacs-build-system)
9895 (inputs
9896 `(("emacs-undercover" ,emacs-undercover))) ; For tests.
9897 (home-page "https://github.com/DamienCassou/beginend")
9898 (synopsis "Redefine @code{M-<} and @code{M->} for Emacs modes")
9899 (description "@code{beginend} redefines @code{M-<} and @code{M->}
9900 keybindings for Emacs modes so that point moves to meaningful
9901 locations. Redefined keys are still accessible by pressing the same
9902 key again.")
9903 (license license:gpl3+)))
9904
9905 (define-public emacs-mbsync
9906 (let ((commit "42077e83ae2db778ce0f8e22f8357b40355526b3")
9907 (revision "1"))
9908 (package
9909 (name "emacs-mbsync")
9910 (version (string-append "0.0.1" "-" revision "."
9911 (string-take commit 7)))
9912 (source
9913 (origin
9914 (method git-fetch)
9915 (uri (git-reference
9916 (url "https://github.com/dimitri/mbsync-el.git")
9917 (commit commit)))
9918 (file-name (string-append name "-" version "-checkout"))
9919 (sha256
9920 (base32
9921 "0yj93y2mpxlir8x73znlg1slxlv4blm1vjv5h2w3j8lxg8bxvmn6"))))
9922 (build-system emacs-build-system)
9923 (home-page "https://github.com/dimitri/mbsync-el")
9924 (synopsis "Interface to mbsync for Emacs")
9925 (description "This package allows to call the @code{mbsync} from
9926 within Emacs.")
9927 (license license:gpl3+))))
9928
9929 (define-public emacs-ibuffer-projectile
9930 (let ((commit "c18ac540ee46cb759fc5df18747f6e8d23563011")
9931 (revision "1"))
9932 (package
9933 (name "emacs-ibuffer-projectile")
9934 (version (string-append "0.2" "-" revision "."
9935 (string-take commit 7)))
9936 (source
9937 (origin
9938 (method git-fetch)
9939 (uri (git-reference
9940 (url "https://github.com/purcell/ibuffer-projectile.git")
9941 (commit commit)))
9942 (file-name (string-append name "-" version "-checkout"))
9943 (sha256
9944 (base32
9945 "1nd26cwwdpnwj0g4w393rd59klpyr6wqrnyr6scmwb5d06bsm44n"))))
9946 (build-system emacs-build-system)
9947 (propagated-inputs
9948 `(("emacs-projectile" ,emacs-projectile)))
9949 (home-page "https://github.com/purcell/ibuffer-projectile")
9950 (synopsis "Group ibuffer's list by projectile root")
9951 (description "Adds functionality to Emacs @code{ibuffer} for
9952 grouping buffers by their projectile root directory.")
9953 (license license:gpl3+))))
9954
9955 (define-public emacs-helm-mode-manager
9956 (package
9957 (name "emacs-helm-mode-manager")
9958 (version "1.0.0")
9959 (source
9960 (origin
9961 (method url-fetch)
9962 (uri (string-append "https://github.com/istib/helm-mode-manager/"
9963 "archive/" version ".tar.gz"))
9964 (file-name (string-append name "-" version ".tar.gz"))
9965 (sha256
9966 (base32
9967 "0wllj321z16hgrx0ddwzk5wz4mnnx5am7w5nclqclfc5dfdn92wm"))))
9968 (build-system emacs-build-system)
9969 (propagated-inputs
9970 `(("emacs-helm" ,emacs-helm)))
9971 (home-page "https://github.com/istib/helm-mode-manager/")
9972 (synopsis "Switch and toggle Emacs major and minor modes using Helm")
9973 (description "This package provides a Helm interface for toggling Emacs
9974 major or minor mode.
9975
9976 @itemize
9977 @item @code{helm-switch-major-mode} list of all major modes
9978 @item @code{helm-enable-minor-mode} list of all inactive minor modes
9979 @item @code{helm-disable-minor-mode} list of all ACTIVE minor modes
9980 @end itemize\n
9981
9982 Hitting @code{RET} enables the mode, @code{C-z} shows the mode
9983 documentation.")
9984 (license license:gpl3+)))
9985
9986 (define-public emacs-hy-mode
9987 (package
9988 (name "emacs-hy-mode")
9989 (version "1.0.3")
9990 (source
9991 (origin
9992 (method url-fetch)
9993 (uri (string-append "https://github.com/hylang/hy-mode/archive/"
9994 "v" version ".tar.gz"))
9995 (file-name (string-append name "-" version ".tar.gz"))
9996 (sha256
9997 (base32
9998 "0b4pvbr2hf77bq2vsyfsv653q0dab7qzq85wc7kdziw7687jdf2z"))))
9999 (build-system emacs-build-system)
10000 (propagated-inputs
10001 `(("emacs-dash" ,emacs-dash)
10002 ("emacs-s" ,emacs-s)))
10003 (home-page "https://github.com/hylang/hy-mode")
10004 (synopsis "Major mode for Hylang")
10005 (description "This package provides a major mode for Hylang.")
10006 (license license:gpl3+)))
10007
10008 (define-public emacs-web-beautify
10009 (package
10010 (name "emacs-web-beautify")
10011 (version "0.3.2")
10012 (source
10013 (origin
10014 (method url-fetch)
10015 (uri (string-append "https://github.com/yasuyk/web-beautify/archive/"
10016 version ".tar.gz"))
10017 (file-name (string-append name "-" version ".tar.gz"))
10018 (sha256
10019 (base32
10020 "1j57hwid74id4swkx2g0iljfawx0k9c7qjrwqc0mv657x9p78hcs"))))
10021 (build-system emacs-build-system)
10022 (home-page "https://github.com/yasuyk/web-beautify")
10023 (synopsis "Format HTML, CSS and JavaScript, JSON")
10024 (description "This package provides an Emacs functions to format HTML,
10025 CSS, JavaScript, JSON.")
10026 (license license:gpl3+)))
10027
10028 (define-public emacs-helm-shell-history
10029 (let ((commit "110d3c35c52fe4b89b29e79ea4c8626bce7266a1"))
10030 (package
10031 (name "emacs-helm-shell-history")
10032 (version (git-version "0.1" "1" commit))
10033 (source
10034 (origin
10035 (method git-fetch)
10036 (uri (git-reference
10037 (url "https://github.com/yuutayamada/helm-shell-history.git")
10038 (commit commit)))
10039 (file-name (git-file-name name version))
10040 (sha256
10041 (base32
10042 "18fkjcz69g4dyaxhf9j8svr5x6dhsdnglddwisis8hdn504scpfj"))))
10043 (build-system emacs-build-system)
10044 (arguments
10045 '(#:phases
10046 (modify-phases %standard-phases
10047 (add-before 'check 'patch-helm-shell-history-file
10048 (lambda _
10049 (let ((file "helm-shell-history.el"))
10050 (chmod file #o644)
10051 (emacs-substitute-sexps file
10052 ("(defvar helm-shell-history-file"
10053 `(expand-file-name "~/.bash_history"))))
10054 #t)))))
10055 (propagated-inputs
10056 `(("emacs-helm" ,emacs-helm)))
10057 (home-page "https://github.com/yuutayamada/helm-shell-history")
10058 (synopsis "Find shell history with Emacs Helm")
10059 (description "This package provides an Emacs Helm interface to search
10060 throw a shell history.")
10061 (license license:gpl3+))))
10062
10063 (define-public emacs-discover-my-major
10064 (package
10065 (name "emacs-discover-my-major")
10066 (version "1.0")
10067 (source
10068 (origin
10069 (method url-fetch)
10070 (uri
10071 (string-append "https://github.com/steckerhalter/discover-my-major"
10072 "/archive/" version ".tar.gz"))
10073 (file-name (string-append name "-" version ".tar.gz"))
10074 (sha256
10075 (base32
10076 "0nah41f92rrl2l405kpqr6iaks11jyclgl4z7ilfymbr4ifmsiyl"))))
10077 (build-system emacs-build-system)
10078 (propagated-inputs
10079 `(("emacs-makey" ,emacs-makey)))
10080 (home-page "https://github.com/steckerhalter/discover-my-major")
10081 (synopsis "Discover key bindings for the current Emacs major mode")
10082 (description "This package provides allows to discover key bindings and
10083 their meaning for the current Emacs major-mode.")
10084 (license license:gpl3+)))
10085
10086 (define-public emacs-org-ref
10087 (let ((commit "8c9b5d7efb9f0c1ad5186b8203bdd017f4249129")
10088 (revision "1"))
10089 (package
10090 (name "emacs-org-ref")
10091 (version (string-append "1.1.1" "-" revision "."
10092 (string-take commit 7)))
10093 (source
10094 (origin
10095 (method git-fetch)
10096 (uri (git-reference
10097 (url "https://github.com/jkitchin/org-ref.git")
10098 (commit commit)))
10099 (file-name (string-append name "-" version "-checkout"))
10100 (sha256
10101 (base32
10102 "1rxz0bjdsayk0slv23i07d9xhj2m7s4hsc81wc2d1cs52dkr5zmz"))))
10103 (build-system emacs-build-system)
10104 (propagated-inputs
10105 `(("emacs-dash" ,emacs-dash)
10106 ("emacs-helm" ,emacs-helm)
10107 ("emacs-helm-bibtex" ,emacs-helm-bibtex)
10108 ("emacs-ivy" ,emacs-ivy)
10109 ("emacs-hydra" ,emacs-hydra)
10110 ("emacs-key-chord" ,emacs-key-chord)
10111 ("emacs-s" ,emacs-s)
10112 ("emacs-f" ,emacs-f)
10113 ("emacs-pdf-tools" ,emacs-pdf-tools)))
10114 (home-page "https://github.com/jkitchin/org-ref")
10115 (synopsis "Citations, cross-references and bibliographies in org-mode")
10116 (description
10117 "Lisp code to setup bibliography, cite, ref and label org-mode links.
10118 Also sets up reftex and helm for org-mode citations. The links are
10119 clickable and do things that are useful.
10120
10121 The default setup uses helm-bibtex.
10122
10123 You should really read org-ref.org in this package for details.")
10124 (license license:gpl3+))))
10125
10126 (define-public emacs-org-reveal
10127 (package
10128 (name "emacs-org-reveal")
10129 ;; There are no proper tag, so we use the latest commit of the stable
10130 ;; branch, as does MELPA.
10131 (version "20161027.926")
10132 (source (origin
10133 (method git-fetch)
10134 (uri (git-reference
10135 (url "https://github.com/yjwen/org-reveal.git")
10136 (commit "001567cc12d50ba07612edd1718b86a12e8c2547")))
10137 (file-name (string-append name "-" version "-checkout"))
10138 (sha256
10139 (base32
10140 "18rma8smjrskbjyna076zhvx79zs5r5vinb537h8mw13pfxd6cm8"))))
10141 (build-system emacs-build-system)
10142 (home-page "https://github.com/yjwen/org-reveal")
10143 (synopsis "Org and Reveal.js powered HTML presentation tool")
10144 (description "Org-Reveal is a command@{org-mode} extension that allows to
10145 create beautiful presentations (slides) with 3D effects from simple but
10146 powerful Org contents.")
10147 (license license:gpl3+)))
10148
10149 (define-public emacs-add-hooks
10150 (package
10151 (name "emacs-add-hooks")
10152 (version "3.1.1")
10153 (source (origin
10154 (method url-fetch)
10155 (uri (string-append
10156 "https://github.com/nickmccurdy/add-hooks/archive/"
10157 version ".tar.gz"))
10158 (file-name (string-append name "-" version ".tar.gz"))
10159 (sha256
10160 (base32
10161 "03a28gb3298g7pc2qji9hi44p4d99ljp5mpi9cmg42ldv8fl6549"))))
10162 (build-system emacs-build-system)
10163 (home-page "https://github.com/nickmccurdy/add-hooks/")
10164 (synopsis "Emacs function for setting multiple hooks")
10165 (description "This package provides a @code{add-hooks} function tidies up
10166 duplicate hook and function names further into a single declarative call.")
10167 (license license:gpl3+)))
10168
10169 (define-public emacs-fancy-narrow
10170 (package
10171 (name "emacs-fancy-narrow")
10172 (version "0.9.5")
10173 (source
10174 (origin
10175 (method url-fetch)
10176 (uri (string-append "https://github.com/Malabarba/fancy-narrow/archive/"
10177 version ".tar.gz"))
10178 (file-name (string-append name "-" version ".tar.gz"))
10179 (sha256
10180 (base32
10181 "0rf2rnzg82pdqch041yyx3f9ddixffkk9s2ydzg8hwy66sg3385n"))))
10182 (build-system emacs-build-system)
10183 (home-page "https://github.com/Malabarba/fancy-narrow/releases")
10184 (synopsis "Imitate @code{narrow-to-region} with more eye candy")
10185 (description
10186 "Unlike @code{narrow-to-region}, which completely hides text outside
10187 the narrowed region, this package simply de-emphasizes the text, makes it
10188 read-only, and makes it unreachable. This leads to a much more natural
10189 feeling where the region stays static (instead of being brutally moved to a
10190 blank slate) and is clearly highlighted with respect to the rest of the
10191 buffer.")
10192 (license license:gpl2+)))
10193
10194 (define-public emacs-know-your-http-well
10195 (package
10196 (name "emacs-know-your-http-well")
10197 (version "0.5.0")
10198 (source
10199 (origin
10200 (method url-fetch)
10201 (uri (string-append
10202 "https://github.com/for-GET/know-your-http-well/archive/"
10203 "v" version ".tar.gz"))
10204 (file-name (string-append name "-" version ".tar.gz"))
10205 (sha256
10206 (base32
10207 "1y3kwz88awcgwaivlswq0q4g2i02762r23lpwg61bfqy5lrjjqnj"))))
10208 (arguments
10209 `(#:phases
10210 (modify-phases %standard-phases
10211 (add-after 'unpack 'install-json-files
10212 (lambda* (#:key outputs #:allow-other-keys)
10213 (for-each (lambda (directory)
10214 (copy-recursively directory
10215 (string-append
10216 (assoc-ref outputs "out")
10217 directory)))
10218 '("js" "json"))))
10219 (add-after 'unpack 'chdir-elisp
10220 ;; Elisp directory is not in root of the source.
10221 (lambda _
10222 (chdir "emacs"))))))
10223 (build-system emacs-build-system)
10224 (home-page "https://github.com/for-GET/know-your-http-well")
10225 (synopsis "Meaning of HTTP headers codes")
10226 (description "Meaning of HTTP headers codes.")
10227 (license license:gpl3+)))
10228
10229 (define-public emacs-navi-mode
10230 (let ((commit "c1d38e8237f4e14af020a0b7d4f118ea198ab674"))
10231 (package
10232 (name "emacs-navi-mode")
10233 (version (git-version "2.0" "1" commit))
10234 (source
10235 (origin
10236 (method git-fetch)
10237 (uri (git-reference
10238 (url "https://github.com/alphapapa/navi.git")
10239 (commit commit)))
10240 (file-name (git-file-name name version))
10241 (sha256
10242 (base32
10243 "0jj5spk14hgb7zb1cd2n8whcw4k1kd5zb6llwj96v178yaws7l8k"))))
10244 (build-system emacs-build-system)
10245 (propagated-inputs
10246 `(("emacs-outshine" ,emacs-outshine)
10247 ("emacs-outorg" ,emacs-outorg)))
10248 (home-page "https://github.com/alphapapa/navi")
10249 (synopsis "Emacs major-mode for easy buffer-navigation")
10250 (description
10251 "This package provides an Emacs major-mode for easy buffer-navigation")
10252 (license license:gpl3+))))
10253
10254 (define-public emacs-download-region
10255 (let ((commit "eb9e557529a73b4cfc8281c70dd0d95db333fffa")
10256 (revision "1"))
10257 (package
10258 (name "emacs-download-region")
10259 (version (string-append "0.0.1" "-" revision "."
10260 (string-take commit 7)))
10261 (source
10262 (origin
10263 (method git-fetch)
10264 (uri (git-reference
10265 (url "https://github.com/zk-phi/download-region.git")
10266 (commit commit)))
10267 (file-name (string-append name "-" version "-checkout"))
10268 (sha256
10269 (base32
10270 "0v52djg39b6k2snizd9x0qc009ws5y0ywqsfwhqgcbs5ymzh7dsc"))))
10271 (build-system emacs-build-system)
10272 (home-page "https://github.com/zk-phi/download-region")
10273 (synopsis "In buffer download manager for Emacs")
10274 (description "@code{download-region} provides in buffer
10275 downloading manager for Emacs.")
10276 (license license:gpl3+))))
10277
10278 (define-public emacs-helpful
10279 (package
10280 (name "emacs-helpful")
10281 (version "0.15")
10282 (source (origin
10283 (method url-fetch)
10284 (uri (string-append
10285 "https://github.com/Wilfred/helpful/archive/"
10286 version ".tar.gz"))
10287 (file-name (string-append name "-" version ".tar.gz"))
10288 (sha256
10289 (base32
10290 "1xmvhphzb4hbg647dz4lafy6hd19b7bk3lxni6irqrzdsrclhzn6"))))
10291 (build-system emacs-build-system)
10292 (propagated-inputs
10293 `(("emacs-elisp-refs" ,emacs-elisp-refs)))
10294 (home-page "https://github.com/Wilfred/helpful")
10295 (synopsis "More contextual information in Emacs help")
10296 (description "@code{helpful} is an alternative to the built-in Emacs help
10297 that provides much more contextual information.
10298
10299 @itemize
10300 @item Show the source code for interactively defined functions (unlike the
10301 built-in Help).
10302 @item Fall back to the raw sexp if no source is available.
10303 @item Show where a function is being called.
10304 @item Docstrings will Highlight the summary (the first sentence), include
10305 cross-references, hide superfluous puncuation.
10306 @item Show you the properties that have been applied to the current
10307 symbol. This provides visibility of features like edebug or byte-code
10308 optimisation.
10309 @item Provide a separate @code{helpful-command} function to view interactive
10310 functions.
10311 @item Display any keybindings that apply to interactive functions.
10312 @item Trace, disassemble functions from inside Helpful. This is discoverable
10313 and doesn't require memorisation of commands.
10314 @end itemize\n")
10315 (license license:gpl3+)))
10316
10317 (define-public emacs-logview
10318 (package
10319 (name "emacs-logview")
10320 (version "0.9")
10321 (source (origin
10322 (method url-fetch)
10323 (uri (string-append
10324 "https://github.com/doublep/logview/archive/"
10325 version ".tar.gz"))
10326 (file-name (string-append name "-" version ".tar.gz"))
10327 (sha256
10328 (base32
10329 "1vd11ppm46ldqsiwhqgw91p34gbjh1y82r9mxcn9r2gj65nvhxcp"))))
10330 (propagated-inputs
10331 `(("emacs-datetime" ,emacs-datetime)))
10332 (build-system emacs-build-system)
10333 (home-page "https://github.com/doublep/logview/")
10334 (synopsis "Emacs mode for viewing log files")
10335 (description "@code{logview} provides an Emacs mode to view log files.")
10336 (license license:gpl3+)))
10337
10338 (define-public emacs-suggest
10339 (package
10340 (name "emacs-suggest")
10341 (version "0.4")
10342 (source
10343 (origin
10344 (method url-fetch)
10345 (uri (string-append "https://github.com/Wilfred/suggest.el/archive/"
10346 version ".tar.gz"))
10347 (file-name (string-append name "-" version ".tar.gz"))
10348 (sha256
10349 (base32
10350 "1760fm3j19w8xxcawq6s859h86q1rdg69pg9yz48n76kwfk3vlgp"))))
10351 (build-system emacs-build-system)
10352 (propagated-inputs
10353 `(("emacs-loop" ,emacs-loop)
10354 ("emacs-dash" ,emacs-dash)
10355 ("emacs-s" ,emacs-s)
10356 ("emacs-f" ,emacs-f)))
10357 (home-page "https://github.com/Wilfred/suggest.el")
10358 (synopsis "Suggest Elisp functions that give the output requested")
10359 (description "Suggest.el will find functions that give the output
10360 requested. It's a great way of exploring list, string and arithmetic
10361 functions.")
10362 (license license:gpl3+)))
10363
10364 (define-public emacs-benchmark-init
10365 (package
10366 (name "emacs-benchmark-init")
10367 (version "1.0")
10368 (source (origin
10369 (method url-fetch)
10370 (uri (string-append
10371 "https://github.com/dholm/benchmark-init-el/archive/"
10372 version ".tar.gz"))
10373 (file-name (string-append name "-" version ".tar.gz"))
10374 (sha256
10375 (base32
10376 "0szyqr4nncwz4vd5gww1vz31kf9r2lx25p4d0d09pm35974x53kz"))))
10377 (build-system emacs-build-system)
10378 (home-page "https://github.com/dholm/benchmark-init-el")
10379 (synopsis "Benchmark Emacs @code{require} and @code{load} calls")
10380 (description "@code{benchmark-init} provides a way to keep track of where
10381 time is being spent during Emacs startup in order to optimize startup time.")
10382 (license license:gpl3+)))
10383
10384 (define-public emacs-emms-player-simple-mpv
10385 ;; A new mpv backend is included in Emms from 5.0.
10386 (deprecated-package "emacs-emms-player-simple-mpv" emacs-emms))
10387
10388 (define-public emacs-magit-org-todos-el
10389 (let ((commit "df206287737b9671f2e36ae7b1474ebbe9940d2a"))
10390 (package
10391 (name "emacs-magit-org-todos-el")
10392 (version (git-version "0.1.1" "1" commit))
10393 (source
10394 (origin
10395 (method git-fetch)
10396 (uri (git-reference
10397 (url "https://github.com/danielma/magit-org-todos.el.git")
10398 (commit commit)))
10399 (file-name (git-file-name name version))
10400 (sha256
10401 (base32
10402 "0kdp7k7jnnrkhsg0xh1c3h7iz0vgi120gf5xwl1hxy61avivnxrn"))))
10403 (propagated-inputs
10404 `(("magit" ,emacs-magit)))
10405 (build-system emacs-build-system)
10406 (home-page "https://github.com/danielma/magit-org-todos.el")
10407 (synopsis "Get todo.org into Emacs Magit status")
10408 (description "This package allows you to get @file{todo.org} into your
10409 magit status.
10410
10411 If you have a @file{todo.org} file with @code{TODO} items in the root of your
10412 repository, @code{magit-org-todos} will create a section in your Magit status
10413 buffer with each of your todos.")
10414 (license license:gpl3+))))
10415
10416 (define-public emacs-f3
10417 (package
10418 (name "emacs-f3")
10419 (version "0.1")
10420 (source
10421 (origin
10422 (method url-fetch)
10423 (uri (string-append "https://github.com/cosmicexplorer/f3/archive/"
10424 version ".tar.gz"))
10425 (file-name (string-append name "-" version ".tar.gz"))
10426 (sha256
10427 (base32
10428 "06b8i1jvklm5k3k90n65f197l1miq1xlxqkqpbppw4h3rhl4y98h"))))
10429 (build-system emacs-build-system)
10430 (propagated-inputs
10431 `(("emacs-helm" ,emacs-helm)))
10432 (home-page "https://github.com/cosmicexplorer/f3")
10433 (synopsis "Fantastic File Finder for Emacs")
10434 (description
10435 "The Fantastic File Finder for Emacs. Find files fast, using helm.")
10436 (license license:gpl3+)))
10437
10438 (define-public emacs-lice-el
10439 (let ((commit "4339929927c62bd636f89bb39ea999d18d269250"))
10440 (package
10441 (name "emacs-lice-el")
10442 (version (git-version "0.2" "1" commit))
10443 (source (origin
10444 (method git-fetch)
10445 (uri (git-reference
10446 (url "https://github.com/buzztaiki/lice-el.git")
10447 (commit commit)))
10448 (file-name (git-file-name name version))
10449 (sha256
10450 (base32
10451 "0879z761b7gajkhq176ps745xpdrivch349crransv8fnsc759yb"))))
10452 (build-system emacs-build-system)
10453 (home-page "https://github.com/buzztaiki/lice-el")
10454 (synopsis "License and header template for Emacs")
10455 (description "@code{lice.el} provides following features:
10456
10457 @itemize
10458 @item License template management.
10459 @item File header insertion.
10460 @end itemize\n")
10461 (license license:gpl3+))))
10462
10463 (define-public emacs-academic-phrases
10464 (let ((commit "0823ed8c24b26c32f909b896a469833ec4d7b656"))
10465 (package
10466 (name "emacs-academic-phrases")
10467 (version (git-version "0.1" "1" commit))
10468 (source
10469 (origin
10470 (method git-fetch)
10471 (uri (git-reference
10472 (url "https://github.com/nashamri/academic-phrases.git")
10473 (commit commit)))
10474 (file-name (string-append name "-" version "-checkout"))
10475 (sha256
10476 (base32
10477 "0qfzsq8jh05w4zkr0cvq3i1hdn97bq344vcqjg46sib26x3wpz6r"))))
10478 (build-system emacs-build-system)
10479 (propagated-inputs
10480 `(("emacs-dash" ,emacs-dash)
10481 ("emacs-s" ,emacs-s)
10482 ("emacs-ht" ,emacs-ht)))
10483 (home-page "https://github.com/nashamri/academic-phrases")
10484 (synopsis "Bypass that mental block when writing your papers")
10485 (description
10486 "When writing your academic paper, you might get stuck trying to find
10487 the right phrase that captures your intention. This package tries to
10488 alleviate that problem by presenting you with a list of phrases organized by
10489 the topic or by the paper section that you are writing. This package has
10490 around 600 phrases so far.
10491
10492 Using this package is easy, just call @code{academic-phrases} to get a list of
10493 phrases organized by topic, or call @code{academic-phrases-by-section} to
10494 browse the phrases by the paper section and fill-in the blanks if required.")
10495 (license license:gpl3+))))
10496
10497 (define-public emacs-auto-yasnippet
10498 (let ((commit "d1ccfea87312c6dd8cf8501ab5b71b1d3d44d95b"))
10499 (package
10500 (name "emacs-auto-yasnippet")
10501 (version (git-version "0.3.0" "1" commit))
10502 (source (origin
10503 (method git-fetch)
10504 (uri (git-reference
10505 (url "https://github.com/abo-abo/auto-yasnippet.git")
10506 (commit commit)))
10507 (file-name (string-append name "-" version "-checkout"))
10508 (sha256
10509 (base32
10510 "1i8k2qiyzd5rq0zplk4xb5nfa5mp0ibxbzwqj6c7877waq7244xk"))))
10511 (build-system emacs-build-system)
10512 (arguments
10513 '(#:phases
10514 (modify-phases %standard-phases
10515 (add-before 'install 'check
10516 (lambda _
10517 (invoke "emacs" "--batch"
10518 "-l" "auto-yasnippet.el"
10519 "-l" "auto-yasnippet-test.el"
10520 "-f" "ert-run-tests-batch-and-exit"))))))
10521 (propagated-inputs
10522 `(("emacs-yasnippet" ,emacs-yasnippet)))
10523 (home-page "https://github.com/abo-abo/auto-yasnippet/")
10524 (synopsis "Quickly create disposable yasnippets")
10525 (description "This package provides a hybrid of keyboard macros and
10526 yasnippet. You create the snippet on the go, usually to be used just in the
10527 one place. It's fast, because you're not leaving the current buffer, and all
10528 you do is enter the code you'd enter anyway, just placing ~ where you'd like
10529 yasnippet fields and mirrors to be.")
10530 (license license:gpl3+))))
10531
10532 (define-public emacs-highlight-numbers
10533 (package
10534 (name "emacs-highlight-numbers")
10535 (version "0.2.3")
10536 (source
10537 (origin
10538 (method url-fetch)
10539 (uri (string-append
10540 "https://github.com/Fanael/highlight-numbers/archive/"
10541 version ".tar.gz"))
10542 (file-name (string-append name "-" version ".tar.gz"))
10543 (sha256
10544 (base32
10545 "030v5p11d4n0581ncv499l1fqrmfziy756q6378x2bv22ixghqqp"))))
10546 (build-system emacs-build-system)
10547 (propagated-inputs
10548 `(("emacs-parent-mode" ,emacs-parent-mode)))
10549 (home-page "https://github.com/Fanael/highlight-numbers")
10550 (synopsis "Highlight numbers in source code")
10551 (description "@code{highlight-numbers-mode} provides a minor mode for
10552 syntax highlighting of numeric literals in source code.
10553
10554 It s customizable: it's easy to add or redefine what exactly consitutes a
10555 \"number\" in given major mode. See @code{highlight-numbers-modelist}.")
10556 (license license:gpl3+)))
10557
10558 (define-public emacs-darkroom
10559 (package
10560 (name "emacs-darkroom")
10561 (version "0.1")
10562 (source (origin
10563 (method url-fetch)
10564 (uri (string-append "https://elpa.gnu.org/packages/darkroom-"
10565 version ".el"))
10566 (sha256
10567 (base32
10568 "0fif8fm1h7x7g16949shfnaik5f5488clsvkf8bi5izpqp3vi6ak"))))
10569 (build-system emacs-build-system)
10570 (home-page "https://elpa.gnu.org/packages/darkroom.html")
10571 (synopsis "Remove visual distractions and focus on writing")
10572 (description "@code{darkroom-mode} makes visual distractions disappear.
10573 The mode-line is temporarily elided, text is enlarged and margins are adjusted
10574 so that it's centered on the window.
10575
10576 @code{darkroom-tentative-mode} is similar, but it doesn't immediately turn-on
10577 @code{darkroom-mode}, unless the current buffer lives in the sole window of
10578 the Emacs frame (i.e. all other windows are deleted). Whenever the frame is
10579 split to display more windows and more buffers, the buffer exits
10580 @code{darkroom-mode}. Whenever they are deleted, the buffer re-enters
10581 @code{darkroom-mode}.")
10582 (license license:gpl3+)))
10583
10584 (define-public emacs-rsw-elisp
10585 (package
10586 (name "emacs-rsw-elisp")
10587 (version "1.0.5")
10588 (source (origin
10589 (method url-fetch)
10590 (uri (string-append "https://github.com/rswgnu/rsw-elisp"
10591 "/archive/" version ".tar.gz"))
10592 (file-name (string-append name "-" version ".tar.gz"))
10593 (sha256
10594 (base32
10595 "1jnn7xfwl3wxc87v44ccsf1wwp80par3xgcvfb1icd6zchjmlcps"))))
10596 (build-system emacs-build-system)
10597 (home-page "https://github.com/rswgnu/rsw-elisp")
10598 (synopsis "Improved expressions that interactively evaluate Emacs Lisp")
10599 (description "This package improves and replaces the GNU Emacs commands
10600 that interactively evaluate Emacs Lisp expressions. The new commands replace
10601 standard key bindings and are all prefixed with @code{rsw-elisp-}. They work
10602 the same way as the old commands when called non-interactively; only the
10603 interactive behavior should be different.")
10604 (license license:gpl3+)))
10605
10606 (define-public emacs-default-text-scale
10607 (let ((commit "968e985e219235f3e744d6d967e592acbaf6e0a8")
10608 (revision "1"))
10609 (package
10610 (name "emacs-default-text-scale")
10611 (version (string-append "0.1" "-" revision "."
10612 (string-take commit 7)))
10613 (source (origin
10614 (method git-fetch)
10615 (uri (git-reference
10616 (url "https://github.com/purcell/default-text-scale")
10617 (commit commit)))
10618 (file-name (string-append name "-" version "-checkout"))
10619 (sha256
10620 (base32
10621 "0zds01c3q5yny6ab1fxfkzzgn1kgl3q23lxxap905f4qd70v922h"))))
10622 (build-system emacs-build-system)
10623 (home-page "https://github.com/purcell/default-text-scale")
10624 (synopsis "Adjust the font size in all Emacs frames")
10625 (description "This package provides commands for increasing or
10626 decreasing the default font size in all GUI Emacs frames.")
10627 (license license:gpl3+))))
10628
10629 (define-public emacs-visual-regexp
10630 (package
10631 (name "emacs-visual-regexp")
10632 (version "1.1.1")
10633 (source
10634 (origin
10635 (method url-fetch)
10636 (uri (string-append "https://github.com/benma/visual-regexp.el/archive/"
10637 "v" version ".tar.gz"))
10638 (file-name (string-append name "-" version ".tar.gz"))
10639 (sha256
10640 (base32
10641 "1czmhvcivlcdyz7rfm0vd4a3xsgmy4qbvbl6yjxc217wrxqflr92"))))
10642 (build-system emacs-build-system)
10643 (home-page "https://github.com/benma/visual-regexp.el/")
10644 (synopsis "Regexp command with interactive visual feedback")
10645 (description "This package provides an Emacs regexp command with
10646 interactive visual feedback.")
10647 (license license:gpl3+)))
10648
10649 (define-public emacs-faceup
10650 (let ((commit "6c92dad56a133e14e7b27831e1bcf9b3a71ff154")
10651 (revision "1"))
10652 (package
10653 (name "emacs-faceup")
10654 (version (string-append "0.0.1" "-" revision "."
10655 (string-take commit 7)))
10656 (source
10657 (origin
10658 (method git-fetch)
10659 (uri (git-reference
10660 (url "https://github.com/Lindydancer/faceup.git")
10661 (commit commit)))
10662 (file-name (string-append name "-" version "-checkout"))
10663 (sha256
10664 (base32
10665 "1yzmy7flrhrh0i10bdszx8idx6r8h6czm4vm4q0z6fp5fw94zwrx"))))
10666 (build-system emacs-build-system)
10667 (home-page "https://github.com/Lindydancer/faceup")
10668 (synopsis "Markup language for faces and font-lock regression testing")
10669 (description "Emacs is capable of highlighting buffers based on
10670 language-specific @code{font-lock} rules. This package makes it possible to
10671 perform regression test for packages that provide font-lock rules.")
10672 (license license:gpl3+))))
10673
10674 (define-public emacs-racket-mode
10675 (let ((commit "b977873e6128f8399432dcd60cc39f6a6f803d9c")
10676 (revision "2"))
10677 (package
10678 (name "emacs-racket-mode")
10679 (version (string-append "0.0.2" "-" revision "."
10680 (string-take commit 7)))
10681 (source
10682 (origin
10683 (method git-fetch)
10684 (uri (git-reference
10685 (url "https://github.com/greghendershott/racket-mode")
10686 (commit commit)))
10687 (file-name (string-append name "-" version "-checkout"))
10688 (sha256
10689 (base32
10690 "0vp4bbbplqvmnhjpl6ajrlydmrhqzil56cfbs18m5c5fddx0zlh7"))))
10691 (build-system emacs-build-system)
10692 (arguments
10693 `(#:include '("\\.el$" "\\.rkt$")))
10694 (propagated-inputs
10695 `(("emacs-faceup" ,emacs-faceup)
10696 ("emacs-s" ,emacs-s)))
10697 (home-page "https://github.com/greghendershott/racket-mode")
10698 (synopsis "Major mode for Racket language")
10699 (description "@code{racket-mode} provides:
10700
10701 @itemize
10702 @item Focus on Racket (not various Schemes).
10703 @item Follow DrRacket concepts where applicable.
10704 @item Thorough font-lock and indent.
10705 @end itemize\n")
10706 (license license:gpl3+))))
10707
10708 (define-public emacs-grep-context
10709 (let ((commit "a17c57e66687a54e195e08afe776bdd60cb6c0a7"))
10710 (package
10711 (name "emacs-grep-context")
10712 (version (git-version "0.1" "1" commit))
10713 (source
10714 (origin
10715 (method git-fetch)
10716 (uri (git-reference
10717 (url "https://github.com/mkcms/grep-context.git")
10718 (commit commit)))
10719 (file-name (string-append name "-" version "-checkout"))
10720 (sha256
10721 (base32
10722 "1nqfa6kjzjshww4hnwg1c0vcr90bdjihy3kmixq3c3jkvxg99b62"))))
10723 (build-system emacs-build-system)
10724 (propagated-inputs
10725 `(("emacs-dash" ,emacs-dash)))
10726 (home-page "https://github.com/nashamri/academic-phrases")
10727 (synopsis "Increase context in compilation and grep buffers")
10728 (description
10729 "This package provides an Emacs package for more context in
10730 compilation/grep buffers. Works with @code{wgrep}, @code{ack}, @code{ag},
10731 @code{ivy}.")
10732 (license license:gpl3+))))
10733
10734 (define-public emacs-helm-firefox
10735 (let ((commit "0ad34b7b5abc485a86cae6920c14de861cbeb085")
10736 (revision "1"))
10737 (package
10738 (name "emacs-helm-firefox")
10739 (version (string-append "0.0.1" "-" revision "."
10740 (string-take commit 7)))
10741 (source
10742 (origin
10743 (method git-fetch)
10744 (uri (git-reference
10745 (url "https://github.com/emacs-helm/helm-firefox.git")
10746 (commit commit)))
10747 (file-name (string-append name "-" version "-checkout"))
10748 (sha256
10749 (base32
10750 "08mjsi2f9s29fkk35cj1rrparjnkm836qmbfdwdz7y51f9varjbs"))))
10751 (propagated-inputs
10752 `(("emacs-helm" ,emacs-helm)))
10753 (build-system emacs-build-system)
10754 (home-page "https://github.com/emacs-helm/helm-firefox")
10755 (synopsis "Display firefox bookmarks with Emacs Helm interface")
10756 (description "Display firefox bookmarks with Emacs Helm interface")
10757 (license license:gpl3+))))
10758
10759 (define-public emacs-interactive-align
10760 (package
10761 (name "emacs-interactive-align")
10762 (version "0.1.0")
10763 (source
10764 (origin
10765 (method url-fetch)
10766 (uri (string-append "https://github.com/mkcms/interactive-align/"
10767 "archive/" "v" version ".tar.gz"))
10768 (file-name (string-append name "-" version ".tar.gz"))
10769 (sha256
10770 (base32
10771 "0sibpgb4lp6yy3pziak8f3hz4b28yj0dqy2nzh51z3d0b63h528m"))))
10772 (build-system emacs-build-system)
10773 (home-page "https://github.com/mkcms/interactive-align/")
10774 (synopsis "Interactive align-regexp command in Emacs")
10775 (description "Interactive align-regexp command in Emacs")
10776 (license license:gpl3+)))
10777
10778 (define-public emacs-shift-number
10779 (package
10780 (name "emacs-shift-number")
10781 (version "0.1")
10782 (source
10783 (origin
10784 (method url-fetch)
10785 (uri (string-append "https://github.com/alezost/shift-number.el"
10786 "/archive/" "v" version ".tar.gz"))
10787 (file-name (string-append name "-" version ".tar.gz"))
10788 (sha256
10789 (base32
10790 "1g79m0hqn9jgpm565vvh8pdfzndc4vw7xisnh5qysj55qfg8cb1x"))))
10791 (build-system emacs-build-system)
10792 (home-page "https://github.com/alezost/shift-number.el")
10793 (synopsis "Increase or decrease the number at point")
10794 (description "@code{emacs-shift-number} provides commands
10795 @code{shift-number-up} to increase and @code{shift-number-down} to
10796 decrease the number at point.")
10797 (license license:gpl3+)))
10798
10799 (define-public emacs-highlight-defined
10800 (package
10801 (name "emacs-highlight-defined")
10802 (version "0.1.5")
10803 (source
10804 (origin
10805 (method url-fetch)
10806 (uri (string-append
10807 "https://github.com/Fanael/highlight-defined/archive/"
10808 version ".tar.gz"))
10809 (file-name (string-append name "-" version ".tar.gz"))
10810 (sha256
10811 (base32
10812 "1ryd66989b5byqdw8jmjrjf0c78iiz72wibld750skcnj5h5h506"))))
10813 (build-system emacs-build-system)
10814 (home-page "https://github.com/Fanael/highlight-defined")
10815 (synopsis "Syntax highlighting of known Elisp symbols")
10816 (description "Minor mode providing syntax highlighting of known Emacs Lisp
10817 symbols. Currently the code distinguishes Lisp functions, built-in functions,
10818 macros, faces and variables. To enable call @code{highlight-defined-mode}. ")
10819 (license license:gpl3+)))
10820
10821 (define-public emacs-parinfer-mode
10822 (package
10823 (name "emacs-parinfer-mode")
10824 (version "0.4.10")
10825 (source
10826 (origin
10827 (method url-fetch)
10828 (uri (string-append "https://github.com/DogLooksGood/parinfer-mode/archive/"
10829 "v" version ".tar.gz"))
10830 (file-name (string-append name "-" version ".tar.gz"))
10831 (sha256
10832 (base32
10833 "06ba9qi59sm9ih9m38fbr8kj4qkvrm58n0c0ngfjz60gnr9x9pcv"))))
10834 (propagated-inputs
10835 `(("emacs-dash" ,emacs-dash)
10836 ("emacs-rainbow-delimiters" ,emacs-rainbow-delimiters)
10837 ("emacs-company" ,emacs-company)))
10838 (build-system emacs-build-system)
10839 (home-page "https://github.com/DogLooksGood/parinfer-mode/")
10840 (synopsis "Lisp structure editing mode")
10841 (description "@code{parinfer-mode} is a proof-of-concept editor
10842 mode for Lisp programming languages. It will infer some changes to
10843 keep Parens and Indentation inline with one another.")
10844 (license license:gpl3+)))
10845
10846 (define-public emacs-helm-eww
10847 (let ((commit "9d36acc433bcf689598b1b4d7d47c9aeb84d6b44"))
10848 (package
10849 (name "emacs-helm-eww")
10850 (version (git-version "0.1" "3" commit))
10851 (source (origin
10852 (method git-fetch)
10853 (uri (git-reference
10854 (url "https://github.com/emacs-helm/helm-eww.git")
10855 (commit commit)))
10856 (file-name (string-append name "-" version "-checkout"))
10857 (sha256
10858 (base32
10859 "06gnf84gx6qbhcw1h5jhjnvcdxkdpv0npm53x3pgqybbll5rn5dy"))))
10860 (propagated-inputs
10861 `(("emacs-helm" ,emacs-helm)))
10862 (build-system emacs-build-system)
10863 (home-page "https://github.com/emacs-helm/helm-eww/")
10864 (synopsis "Helm interface to EWW")
10865 (description "This package provides a Helm interface for EWW buffers,
10866 bookmarks and history.")
10867 (license license:gpl3+))))
10868
10869 (define-public emacs-stumpwm-mode
10870 (let ((commit "8fbe071d2c6c040794060a354eb377218dc10b35")
10871 (revision "1"))
10872 (package
10873 (name "emacs-stumpwm-mode")
10874 (version (string-append "0.0.1-" revision "."
10875 (string-take commit 7)))
10876 (source (origin
10877 (method git-fetch)
10878 (uri (git-reference
10879 (url "https://github.com/stumpwm/stumpwm-contrib.git")
10880 (commit commit)))
10881 (file-name (string-append name "-" version "-checkout"))
10882 (sha256
10883 (base32
10884 "1dfwsvz1c8w6j4jp0kzaz78ml3f5dp0a5pvf090kwpbpg176r7iq"))))
10885 (build-system emacs-build-system)
10886 (arguments
10887 `(#:phases
10888 (modify-phases %standard-phases
10889 (add-after 'unpack 'chdir-elisp
10890 ;; Elisp directory is not in root of the source.
10891 (lambda _
10892 (chdir "util/swm-emacs"))))))
10893 (home-page "https://github.com/stumpwm/stumpwm-contrib")
10894 (synopsis "Emacs minor-mode for Stumpwm")
10895 (description "Emacs minor-mode for Stumpwm")
10896 (license license:gpl3+))))
10897
10898 (define-public emacs-irfc
10899 (package
10900 (name "emacs-irfc")
10901 (version "20130824.507")
10902 (source
10903 (origin
10904 (method url-fetch)
10905 (uri "https://www.emacswiki.org/emacs/download/irfc.el")
10906 (file-name (string-append "irfc-" version ".el"))
10907 (sha256
10908 (base32
10909 "197ybqwbj8qjh2p9pkf5mvqnrkpcgmv8c5s2gvl6msyrabk0mnca"))))
10910 (build-system emacs-build-system)
10911 (home-page "https://www.emacswiki.org/emacs/download/irfc.el")
10912 (synopsis "Interface for IETF RFC document")
10913 (description
10914 "This package provides an Emacs interface for IETF RFC document.")
10915 (license license:gpl3+)))
10916
10917 (define-public emacs-ido-vertical-mode
10918 (package
10919 (name "emacs-ido-vertical-mode")
10920 (version "0.1.6")
10921 (source
10922 (origin
10923 (method url-fetch)
10924 (uri (string-append
10925 "https://github.com/creichert/ido-vertical-mode.el/archive/"
10926 "v" version ".tar.gz"))
10927 (file-name (string-append name "-" version ".tar.gz"))
10928 (sha256
10929 (base32
10930 "0dprdxq8wvqd45dinwj92k0kixr07c8xvspa6i613mjcpxgwjg53"))))
10931 (build-system emacs-build-system)
10932 (home-page "https://github.com/creichert/ido-vertical-mode.el")
10933 (synopsis "Makes ido-mode display vertically")
10934 (description "Makes ido-mode display prospects vertically.")
10935 (license license:gpl3+)))
10936
10937 (define-public emacs-wordgen
10938 (package
10939 (name "emacs-wordgen")
10940 (version "0.1.4")
10941 (source
10942 (origin
10943 (method url-fetch)
10944 (uri (string-append "https://github.com/Fanael/wordgen.el/archive/"
10945 version ".tar.gz"))
10946 (file-name (string-append name "-" version ".tar.gz"))
10947 (sha256
10948 (base32
10949 "1h2iyixdm49h53pwj9ics9gb9h3g6wa4hainpnjg6mfarf49jkmg"))))
10950 (build-system emacs-build-system)
10951 (home-page "https://github.com/Fanael/wordgen.el")
10952 (synopsis "Random word generator")
10953 (description "This package provides functions to generate random words
10954 using user-provided rules.")
10955 (license license:gpl3+)))
10956
10957 (define-public emacs-on-screen
10958 (package
10959 (name "emacs-on-screen")
10960 (version "1.3.2")
10961 (source
10962 (origin
10963 (method url-fetch)
10964 (uri (string-append
10965 "http://elpa.gnu.org/packages/on-screen-" version ".el"))
10966 (file-name (string-append name "-" version ".el"))
10967 (sha256
10968 (base32
10969 "15d18mjgv1pnwl6kf3pr5w64q1322p1l1qlfvnckglwmzy5sl2qv"))))
10970 (build-system emacs-build-system)
10971 (home-page
10972 "https://github.com/michael-heerdegen/on-screen.el")
10973 (synopsis "Guide your eyes while scrolling")
10974 (description
10975 "Scrolling can be distracting because your eyes may lose
10976 orientation. This library implements a minor mode that highlights
10977 the previously visible buffer part after each scroll.")
10978 (license license:gpl3+)))
10979
10980 (define-public emacs-highlight-escape-sequences
10981 (let ((commit "08d846a7aa748209d65fecead2b6a766c3e5cb41")
10982 (revision "1"))
10983 (package
10984 (name "emacs-highlight-escape-sequences")
10985 (version (string-append "0.0.1" "-" revision "."
10986 (string-take commit 7)))
10987 (source
10988 (origin
10989 (method git-fetch)
10990 (uri (git-reference
10991 (url "https://github.com/dgutov/highlight-escape-sequences.git")
10992 (commit commit)))
10993 (file-name (string-append name "-" version "-checkout"))
10994 (sha256
10995 (base32
10996 "05mc3w1f8ykf80914a1yddw6j8cmh0h57llm07xh89s53821v2is"))))
10997 (build-system emacs-build-system)
10998 (home-page "https://github.com/dgutov/highlight-escape-sequences")
10999 (synopsis "Highlight escape sequences in Emacs")
11000 (description "@code{highlight-escape-sequences} provides an
11001 Emacs minor mode to escape sequences in code.")
11002 (license license:gpl3+))))
11003
11004 (define-public emacs-dashboard
11005 (package
11006 (name "emacs-dashboard")
11007 (version "1.2.4")
11008 (source
11009 (origin
11010 (method url-fetch)
11011 (uri (string-append
11012 "https://github.com/rakanalh/emacs-dashboard/archive/"
11013 version ".tar.gz"))
11014 (file-name (string-append name "-" version ".tar.gz"))
11015 (sha256
11016 (base32
11017 "1738lmbgq6gk24hcwic0qjyajr21l5xzhya4pv58dw1bhd6vxv9g"))))
11018 (build-system emacs-build-system)
11019 (propagated-inputs
11020 `(("emacs-page-break-lines" ,emacs-page-break-lines)))
11021 (arguments '(#:include '("\\.el$" "\\.txt$" "\\.png$")))
11022 (home-page "https://github.com/rakanalh/emacs-dashboard")
11023 (synopsis "Startup screen extracted from Spacemacs")
11024 (description "This package provides an extensible Emacs dashboard, with
11025 sections for bookmarks, projectil projects, org-agenda and more. ")
11026 (license license:gpl3+)))
11027
11028 (define-public emacs-slime-company
11029 (package
11030 (name "emacs-slime-company")
11031 (version "1.1")
11032 (source
11033 (origin
11034 (method url-fetch)
11035 (uri (string-append "https://github.com/anwyn/slime-company/archive/"
11036 "v" version ".tar.gz"))
11037 (sha256
11038 (base32
11039 "1myl79pxj501xfr5qc5a24qddsn2l5iaamg7rf7fpny7mr9v70ar"))
11040 (file-name (string-append name "-" version ".tar.gz"))))
11041 (build-system emacs-build-system)
11042 (propagated-inputs
11043 `(("emacs-slime" ,emacs-slime)
11044 ("emacs-company" ,emacs-company)))
11045 (home-page "https://company-mode.github.io")
11046 (synopsis "SLIME completion backend for @code{company-mode}")
11047 (description
11048 "This is a backend implementation for the completion package
11049 @code{company-mode} which supports the normal and the fuzzy completion
11050 modes of SLIME.")
11051 (license license:gpl3+)))
11052
11053 (define-public emacs-sml-mode
11054 (package
11055 (name "emacs-sml-mode")
11056 (version "6.8")
11057 (source
11058 (origin
11059 (method url-fetch)
11060 (uri (string-append "http://elpa.gnu.org/packages/sml-mode-"
11061 version ".el"))
11062 (sha256
11063 (base32
11064 "105fcrz5qp95f2n3fdm3awr6z58sbrjihjss6qnrg4lz2ggbc328"))))
11065 (build-system emacs-build-system)
11066 (home-page "http://elpa.gnu.org/packages/sml-mode.html")
11067 (synopsis "Major mode for editing (Standard) ML")
11068 (description "SML-MODE is a major Emacs mode for editing Standard ML.
11069 It provides syntax highlighting and automatic indentation and
11070 comes with sml-proc which allows interaction with an inferior SML
11071 interactive loop.")
11072 (license license:gpl3+)))
11073
11074 (define-public emacs-eros
11075 (let ((commit "a42e45c9b2397156c684330b0fc90ee0eba773f5")
11076 (revision "1"))
11077 (package
11078 (name "emacs-eros")
11079 (version (string-append "0.0.1" "-" revision "."
11080 (string-take commit 7)))
11081 (source
11082 (origin
11083 (method git-fetch)
11084 (uri (git-reference
11085 (url "https://github.com/xiongtx/eros.git")
11086 (commit commit)))
11087 (file-name (string-append name "-" version "-checkout"))
11088 (sha256
11089 (base32
11090 "0whlsq90v13fz69k3wjrwcwb9gkpfxqjd75mg3nrp85j9nwhb5i4"))))
11091 (build-system emacs-build-system)
11092 (home-page "https://github.com/xiongtx/eros")
11093 (synopsis "Evaluation result overlays")
11094 (description "@code{eros} provides evaluation result overlays.")
11095 (license license:gpl3+))))
11096
11097 (define-public emacs-stickyfunc-enhance
11098 (let ((commit "13bdba51fcd83ccbc3267959d23afc94d458dcb0")
11099 (revision "1"))
11100 (package
11101 (name "emacs-stickyfunc-enhance")
11102 (version "0.1")
11103 (source
11104 (origin
11105 (method git-fetch)
11106 (uri (git-reference
11107 (url "https://github.com/tuhdo/semantic-stickyfunc-enhance.git")
11108 (commit commit)))
11109 (file-name (string-append name "-" version "-checkout"))
11110 (sha256
11111 (base32
11112 "16dxjsr5nj20blww4xpd4jzgjprzzh1nwvb810ggdmp9paf4iy0g"))))
11113 (build-system emacs-build-system)
11114 (home-page "https://github.com/tuhdo/semantic-stickyfunc-enhance")
11115 (synopsis "Enhancement to stock @code{semantic-stickyfunc-mode}")
11116 (description
11117 "@code{semantic-stickyfunc-mode} shows the function point is currently
11118 in at the first line of the current buffer. This is useful when you have a
11119 very long function that spreads more than a screen, and you don't have to
11120 scroll up to read the function name and then scroll down to original position.")
11121 (license license:gpl3+))))
11122
11123 (define-public emacs-git-auto-commit-mode
11124 (package
11125 (name "emacs-git-auto-commit-mode")
11126 (version "4.4.0")
11127 (source
11128 (origin
11129 (method url-fetch)
11130 (uri (string-append
11131 "https://github.com/ryuslash/git-auto-commit-mode/archive/"
11132 version ".tar.gz"))
11133 (file-name (string-append name "-" version ".tar.gz"))
11134 (sha256
11135 (base32
11136 "04avxmalsl3b7zi2vipfw9rb4wrwysnipsbch96skviql9axk870"))))
11137 (build-system emacs-build-system)
11138 (home-page "https://github.com/ryuslash/git-auto-commit-mode")
11139 (synopsis "Emacs Minor mode to automatically commit and push")
11140 (description "@code{git-auto-commit-mode} is an Emacs minor mode that
11141 tries to commit changes to a file after every save.
11142
11143 When @code{gac-automatically-push-p} is non-nil, it also tries to push to
11144 the current upstream.")
11145 (license license:gpl3+)))
11146
11147 (define-public emacs-company-restclient
11148 (package
11149 (name "emacs-company-restclient")
11150 (version "0.1.0")
11151 (source
11152 (origin
11153 (method url-fetch)
11154 (uri (string-append
11155 "https://github.com/iquiw/company-restclient/archive/"
11156 "v" version ".tar.gz"))
11157 (file-name (string-append name "-" version ".tar.gz"))
11158 (sha256
11159 (base32
11160 "1kr3f0wgqlk7r171bvb2kinv7fanwj2md01wdpx04qkgwcr1as00"))))
11161 (build-system emacs-build-system)
11162 (propagated-inputs
11163 `(("emacs-company" ,emacs-company)
11164 ("emacs-know-your-http-well" ,emacs-know-your-http-well)
11165 ("emacs-restclient" ,emacs-restclient)))
11166 (home-page "https://github.com/iquiw/company-restclient")
11167 (synopsis "Company-mode completion back-end for restclient-mode")
11168 (description "@code{company-mode} back-end for
11169 @code{restclient-mode}.
11170
11171 It provides auto-completion for HTTP methods and headers in
11172 @code{restclient-mode}. Completion source is given by
11173 @code{know-your-http-well}.")
11174 (license license:gpl3+)))
11175
11176 (define-public emacs-noflet
11177 (let ((version "20170629")
11178 (revision "1")
11179 (commit "7ae84dc3257637af7334101456dafe1759c6b68a"))
11180 (package
11181 (name "emacs-noflet")
11182 (version (git-version version revision commit))
11183 (source
11184 (origin
11185 (method git-fetch)
11186 (uri (git-reference
11187 (url "https://github.com/nicferrier/emacs-noflet")
11188 (commit commit)))
11189 (file-name (string-append name "-" version "-checkout"))
11190 (sha256
11191 (base32
11192 "0g70gnmfi8n24jzfci9nrj0n9bn1qig7b8f9f325rin8h7x32ypf"))))
11193 (build-system emacs-build-system)
11194 (arguments
11195 `(#:phases
11196 (modify-phases %standard-phases
11197 (add-after 'unpack 'require-dash
11198 ;; noflet.el uses -map from dash, but (require 'dash) is
11199 ;; missing. So, add it.
11200 (lambda _
11201 (substitute* "noflet.el"
11202 ((";;; Code:") ";;; Code:\n(require 'dash)"))
11203 #t)))))
11204 (propagated-inputs
11205 `(("emacs-dash" ,emacs-dash)))
11206 (home-page "https://github.com/nicferrier/emacs-noflet")
11207 (synopsis "Locally override functions")
11208 (description "@code{emacs-noflet} let's you locally override functions,
11209 in the manner of @command{flet}, but with access to the original function
11210 through the symbol: @command{this-fn}.")
11211 (license license:gpl3+))))
11212
11213 (define-public emacs-dumb-jump
11214 (package
11215 (name "emacs-dumb-jump")
11216 (version "0.5.2")
11217 (source
11218 (origin
11219 (method url-fetch)
11220 (uri (string-append
11221 "https://github.com/jacktasia/dumb-jump/archive/v"
11222 version ".tar.gz"))
11223 (file-name (string-append name "-" version ".tar.gz"))
11224 (sha256
11225 (base32
11226 "07n0xjgpxjpf3vp9gxchkjpydyj0zm166930as0kwiwkhjlsirsf"))))
11227 (build-system emacs-build-system)
11228 (arguments
11229 `(#:tests? #f ; FIXME: Tests freeze when run.
11230 #:test-command '("ert-runner")
11231 #:phases
11232 (modify-phases %standard-phases
11233 (add-after 'unpack 'set-shell
11234 (lambda _
11235 ;; Setting the SHELL environment variable is required for the
11236 ;; tests to find sh.
11237 (setenv "SHELL" (which "sh"))
11238 #t)))))
11239 (native-inputs
11240 `(("emacs-el-mock" ,emacs-el-mock)
11241 ("emacs-noflet" ,emacs-noflet)
11242 ("emacs-undercover" ,emacs-undercover)
11243 ("ert-runner" ,emacs-ert-runner)))
11244 (propagated-inputs
11245 `(("emacs-f" ,emacs-f)
11246 ("emacs-popup" ,emacs-popup)))
11247 (home-page "https://github.com/jacktasia/dumb-jump")
11248 (synopsis "Jump to definition for multiple languages without configuration")
11249 (description "Dumb Jump is an Emacs \"jump to definition\" package with
11250 support for multiple programming languages that favors \"just working\" over
11251 speed or accuracy. This means minimal --- and ideally zero --- configuration
11252 with absolutely no stored indexes (tags) or persistent background processes.
11253 Dumb Jump performs best with The Silver Searcher @command{ag} or ripgrep
11254 @command{rg} installed.")
11255 (license license:gpl3+)))
11256
11257 (define-public emacs-dts-mode
11258 (let ((commit "9ee0854446dcc6c53d2b8d2941051768dba50344")
11259 (revision "1"))
11260 (package
11261 (name "emacs-dts-mode")
11262 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
11263 (source
11264 (origin
11265 (method git-fetch)
11266 (uri (git-reference
11267 (url "https://github.com/bgamari/dts-mode.git")
11268 (commit commit)))
11269 (file-name (string-append name "-" version "-checkout"))
11270 (sha256
11271 (base32
11272 "1k8lljdbc90nd29xrhdrsscxavzdq532wq2mg7ljc94krj7538b1"))))
11273 (build-system emacs-build-system)
11274 (home-page "https://github.com/bgamari/dts-mode.git")
11275 (synopsis "Emacs minor mode for editing device tree files")
11276 (description
11277 "This package provides an Emacs minor mode for highlighting
11278 device tree files.")
11279 (license license:gpl3+))))
11280
11281 (define-public emacs-daemons
11282 (package
11283 (name "emacs-daemons")
11284 (version "2.0.0")
11285 (source
11286 (origin
11287 (method git-fetch)
11288 (uri (git-reference
11289 (url "https://github.com/cbowdon/daemons.el")
11290 (commit version)))
11291 (file-name (string-append name "-" version "-checkout"))
11292 (sha256
11293 (base32
11294 "00bkzfaw3bqykcks610vk9wlpa2z360xn32bpsrycacwfv29j7g4"))))
11295 (build-system emacs-build-system)
11296 (home-page "https://github.com/cbowdon/daemons.el")
11297 (synopsis "Emacs UI for managing init system services")
11298 (description
11299 "This is an Emacs mode to give you a UI for managing init system
11300 daemons (services) for those getting tired of typing out @code{sudo service
11301 my_thing reload} all the time. It offers a consistent UI over different init
11302 systems.")
11303 (license license:gpl3+)))
11304
11305 (define-public emacs-esh-autosuggest
11306 (package
11307 (name "emacs-esh-autosuggest")
11308 (version "2.0.0")
11309 (source
11310 (origin
11311 (method git-fetch)
11312 (uri (git-reference
11313 (url "https://github.com/dieggsy/esh-autosuggest")
11314 (commit version)))
11315 (file-name (string-append name "-" version "-checkout"))
11316 (sha256
11317 (base32
11318 "116pdjgpjy9b0psm5kzwkwy7dq8vn0p6dy75dl1zsy2xrjf1iqdw"))))
11319 (build-system emacs-build-system)
11320 (propagated-inputs `(("emacs-company" ,emacs-company)))
11321 (home-page "https://github.com/dieggsy/esh-autosuggest")
11322 (synopsis "Fish-like autosuggestions in Eshell")
11323 (description
11324 "This package assumes you use something other than company for eshell
11325 completion (e.g. @code{eshell-pcomplete}, @code{completion-at-point},
11326 @code{helm-esh-pcomplete}). @code{company-mode} is used solely as a mechanism
11327 for history autosuggestions.
11328
11329 Unless you're using @code{use-package}'s hook keyword, you can enable the
11330 autosuggestions with:
11331 @code{(add-hook 'eshell-mode-hook #'esh-autosuggest-mode)}")
11332 (license license:gpl3+)))
11333
11334 (define-public emacs-desktop-environment
11335 (package
11336 (name "emacs-desktop-environment")
11337 (version "0.2.0")
11338 (source
11339 (origin
11340 (method git-fetch)
11341 (uri (git-reference
11342 (url "https://github.com/DamienCassou/desktop-environment.git")
11343 (commit (string-append "v" version))))
11344 (file-name (string-append name "-" version "-checkout"))
11345 (sha256
11346 (base32
11347 "1fal3yfmqg10cb53qsf5gsq2gvyz9w16wmlpnpjwjzwnjfn6l73r"))))
11348 (build-system emacs-build-system)
11349 (home-page "https://gitlab.petton.fr/DamienCassou/desktop-environment")
11350 (synopsis "Control your GNU/Linux desktop environment from Emacs")
11351 (description
11352 "This package helps you control your GNU/Linux desktop from Emacs.
11353 With @code{desktop-environment}, you can control the brightness and volume as
11354 well as take screenshots and lock your screen. The package depends on the
11355 availability of shell commands to do the hard work for us. These commands can
11356 be changed by customizing the appropriate variables.")
11357 (license license:gpl3+)))
11358
11359 (define-public emacs-org-caldav
11360 (package
11361 (name "emacs-org-caldav")
11362 (version "20180403")
11363 (source
11364 (origin
11365 (method url-fetch)
11366 (uri (string-append
11367 "https://github.com/dengste/org-caldav/raw/"
11368 "8d3492c27a09f437d2d94f2736c56d7652e87aa0"
11369 "/org-caldav.el"))
11370 (sha256
11371 (base32
11372 "1fh4gh68ddj0is99z2ccyh97v6psnyda61n2dsadzqhcxn51amlc"))))
11373 (build-system emacs-build-system)
11374 (propagated-inputs `(("emacs-org" ,emacs-org)))
11375 (home-page "https://github.com/dengste/org-caldav")
11376 (synopsis
11377 "Sync Org files with external calendars via the CalDAV protocol")
11378 (description
11379 "Synchronize between events in Org-mode files and a CalDAV calendar.
11380 This code is still alpha.")
11381 (license license:gpl3+)))
11382
11383 (define-public emacs-zotxt
11384 (package
11385 (name "emacs-zotxt")
11386 (version "20180518")
11387 (source
11388 (origin
11389 (method url-fetch)
11390 (uri (string-append
11391 "https://github.com/egh/zotxt-emacs/archive/"
11392 "23a4a9f74a658222027d53a9a83cd4bcc583ca8b"
11393 ".tar.gz"))
11394 (sha256
11395 (base32
11396 "1qlibaciqgsva6fc7vv9krssjq00bi880396jk7llbi3c52q9n1y"))))
11397 (build-system emacs-build-system)
11398 (propagated-inputs
11399 `(("emacs-deferred" ,emacs-deferred)
11400 ("emacs-request" ,emacs-request)))
11401 (home-page "https://github.com/egh/zotxt-emacs")
11402 (synopsis "Integrate Emacs with Zotero")
11403 (description "This package provides two integration features between Emacs
11404 and the Zotero research assistant: Insertion of links to Zotero items into an
11405 Org-mode file, and citations of Zotero items in Pandoc Markdown files.")
11406 (license license:gpl3+)))
11407
11408 (define-public emacs-evil-ediff
11409 ;; Evil-Ediff is included in Evil Collection from 20180617.
11410 (deprecated-package "emacs-evil-ediff" emacs-evil-collection))
11411
11412 (define-public emacs-evil-magit
11413 (let ((commit "dbf5a646a7ce1c35c229dfdc423bd5ecd927a3a8"))
11414 (package
11415 (name "emacs-evil-magit")
11416 (version (git-version "0.4.2" "1" commit))
11417 (source
11418 (origin
11419 (method git-fetch)
11420 (uri (git-reference
11421 (url "https://github.com/emacs-evil/evil-magit")
11422 (commit commit)))
11423 (file-name (string-append name "-" version "-checkout"))
11424 (sha256
11425 (base32
11426 "0ya0dkviq4pi92ab69a4j674y5r1hc1x3x7r7hlm97ag3a6zfkav"))))
11427 (build-system emacs-build-system)
11428 (propagated-inputs
11429 `(("emacs-evil" ,emacs-evil)
11430 ("magit" ,emacs-magit)))
11431 (home-page
11432 "https://github.com/emacs-evil/evil-magit")
11433 (synopsis "Evil-based key bindings for Magit")
11434 (description
11435 "This Emacs library configures Magit and Evil to play well with each other.
11436 For some background see @url{https://github.com/magit/evil-magit/issues/1}.
11437 See the README at @url{https://github.com/justbur/evil-magit} for a table
11438 describing the key binding changes.")
11439 (license license:gpl3+))))
11440
11441 (define-public emacs-evil-mu4e
11442 ;; Evil-mu4e is included in Evil Collection from 20180617.
11443 (deprecated-package "emacs-evil-mu4e" emacs-evil-collection))
11444
11445 (define-public emacs-evil-multiedit
11446 (let ((commit "ea3d9177b74ab0bc65e55df9cc0a0b42e4ef815d"))
11447 (package
11448 (name "emacs-evil-multiedit")
11449 (version (git-version "1.3.9" "1" commit))
11450 (source
11451 (origin
11452 (method git-fetch)
11453 (uri (git-reference
11454 (url "https://github.com/hlissner/evil-multiedit")
11455 (commit commit)))
11456 (file-name (string-append name "-" version "-checkout"))
11457 (sha256
11458 (base32
11459 "17zm35r474z8ras4xy7124pcb972d385pbdv4jxyj5vq042vq07w"))))
11460 (build-system emacs-build-system)
11461 (propagated-inputs
11462 `(("emacs-evil" ,emacs-evil)
11463 ("emacs-iedit" ,emacs-iedit)))
11464 (home-page
11465 "https://github.com/hlissner/evil-multiedit")
11466 (synopsis "Multiple cursors for Evil mode")
11467 (description
11468 "This plugin was an answer to the lack of proper multiple cursor support
11469 in Emacs+Evil. It allows you to select and edit matches interactively,
11470 integrating @code{iedit-mode} into Evil mode with an attempt at sensible
11471 defaults.")
11472 (license license:gpl3+))))
11473
11474 (define-public emacs-evil-org
11475 (let ((commit "b6d652a9163d3430a9e0933a554bdbee5244bbf6"))
11476 (package
11477 (name "emacs-evil-org")
11478 (version (git-version "0.1.1" "1" commit))
11479 (source
11480 (origin
11481 (method git-fetch)
11482 (uri (git-reference
11483 (url "https://github.com/Somelauw/evil-org-mode")
11484 (commit commit)))
11485 (file-name (string-append name "-" version "-checkout"))
11486 (sha256
11487 (base32
11488 "176hrw7y7nczffbyhsa167b8rvfacsmcafm2gpkrdjqlrikbmrhl"))))
11489 (build-system emacs-build-system)
11490 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
11491 (home-page
11492 "https://github.com/Somelauw/evil-org-mode")
11493 (synopsis "Evil keybindings for Org mode")
11494 (description
11495 "This package adds supplemental Evil mode key-bindings to Emacs
11496 Org-mode. It features:
11497 @itemize
11498 @item normal, visual and insert mode bindings;
11499 @item key bindings organised in key themes;
11500 @item operators like > and < to work on headings;
11501 @item text objects;
11502 @item table support;
11503 @item calendar (date selection) support;
11504 @item agenda support.
11505 @end itemize\n")
11506 (license license:gpl3+))))
11507
11508 (define-public emacs-fish-completion
11509 (let ((commit "bac15fda1392a891070574dfe5d2d50b10831e8b"))
11510 (package
11511 (name "emacs-fish-completion")
11512 (version (git-version "20180616" "1" commit))
11513 (source
11514 (origin
11515 (method url-fetch)
11516 (uri (string-append
11517 "https://gitlab.com/Ambrevar/emacs-fish-completion/repository/"
11518 "archive.tar.gz?ref="
11519 commit))
11520 (sha256
11521 (base32
11522 "093qzdrbkl7dhjk16zq8i13kh1phyigkblcfrbgbrxjqd2ndrfdi"))))
11523 (build-system emacs-build-system)
11524 (inputs `(("fish" ,fish)))
11525 (arguments
11526 `(#:phases
11527 (modify-phases %standard-phases
11528 (add-after 'unpack 'configure
11529 (lambda* (#:key inputs outputs #:allow-other-keys)
11530 (let ((fish (assoc-ref inputs "fish")))
11531 ;; Specify the absolute file names of the various
11532 ;; programs so that everything works out-of-the-box.
11533 (emacs-substitute-variables
11534 "fish-completion.el"
11535 ("fish-completion-command"
11536 (string-append fish "/bin/fish")))))))))
11537 (home-page
11538 "https://gitlab.com/Ambrevar/emacs-fish-completion")
11539 (synopsis "Fish completion for Emacs pcomplete")
11540 (description
11541 "This package provides completion for the Fish shell to pcomplete (used
11542 by shell and Eshell). You can set it up globally with:
11543
11544 @example
11545 (when (and (executable-find \"fish\")
11546 (require 'fish-completion nil t))
11547 (global-fish-completion-mode))
11548 @end example
11549
11550 Alternatively, you can call the @code{fish-completion-mode} manually or in
11551 shell/Eshell mode hook.
11552
11553 The package @code{emacs-bash-completion} is an optional dependency: if available,
11554 @code{fish-completion-complete} can be configured to fall back on bash to further
11555 try completing. See @code{fish-completion-fallback-on-bash-p}.")
11556 (license license:gpl3+))))
11557
11558 (define-public emacs-gif-screencast
11559 (let ((commit "12b25442b97b84abae74ecb5190a9d14ff7cfe5a"))
11560 (package
11561 (name "emacs-gif-screencast")
11562 (version (git-version "20180616" "1" commit))
11563 (source
11564 (origin
11565 (method url-fetch)
11566 (uri (string-append
11567 "https://gitlab.com/Ambrevar/emacs-gif-screencast/"
11568 "repository/archive.tar.gz?ref="
11569 commit))
11570 (sha256
11571 (base32
11572 "0lc457i78xjkn5idr2aaiadkh76zcsksj84z0qh80a9y775syrgh"))))
11573 (build-system emacs-build-system)
11574 (inputs
11575 `(("scrot" ,scrot)
11576 ("imagemagick" ,imagemagick)
11577 ("gifsicle" ,gifsicle)))
11578 (arguments
11579 `(#:phases
11580 (modify-phases %standard-phases
11581 (add-after 'unpack 'configure
11582 (lambda* (#:key inputs outputs #:allow-other-keys)
11583 (let ((scrot (assoc-ref inputs "scrot"))
11584 (imagemagick (assoc-ref inputs "imagemagick"))
11585 (gifsicle (assoc-ref inputs "gifsicle")))
11586 ;; Specify the absolute file names of the various
11587 ;; programs so that everything works out-of-the-box.
11588 (emacs-substitute-variables
11589 "gif-screencast.el"
11590 ("gif-screencast-program"
11591 (string-append scrot "/bin/scrot"))
11592 ("gif-screencast-convert-program"
11593 (string-append imagemagick "/bin/convert"))
11594 ("gif-screencast-cropping-program"
11595 (string-append imagemagick "/bin/mogrify"))
11596 ("gif-screencast-optimize-program"
11597 (string-append imagemagick "/bin/gifsicle")))))))))
11598 (home-page
11599 "https://gitlab.com/Ambrevar/emacs-gif-screencast")
11600 (synopsis "One-frame-per-action GIF recording")
11601 (description
11602 "Call @code{gif-screencast} to start a recording.
11603 A screenshot is taken for every user action. Call
11604 @code{gif-screencast-stop} (<f9> by default) to finish recording and create
11605 the GIF result.")
11606 (license license:gpl3+))))
11607
11608 (define-public emacs-google-translate
11609 (package
11610 (name "emacs-google-translate")
11611 (version "0.11.16")
11612 (source
11613 (origin
11614 (method url-fetch)
11615 (uri (string-append "https://github.com/atykhonov/google-translate/"
11616 "archive/v" version ".tar.gz"))
11617 (file-name (string-append name "-" version ".tar.gz"))
11618 (sha256
11619 (base32
11620 "01n9spj1d0gjfj39x526rl3m9c28wnx9afipmf5s8y77cx3mfwhl"))))
11621 (build-system emacs-build-system)
11622 (home-page "https://github.com/atykhonov/google-translate")
11623 (synopsis "Emacs interface to Google Translate")
11624 (description
11625 "This packages provides an Emacs interface to the Google Translate
11626 on-line service.")
11627 (license license:gpl3+)))
11628
11629 (define-public emacs-helm-company
11630 (let ((commit "d3fc093a0e833b4dee6561c00d6df3d62aa50f3f"))
11631 (package
11632 (name "emacs-helm-company")
11633 (version (git-version "0.2.3" "1" commit))
11634 (source
11635 (origin
11636 (method git-fetch)
11637 (uri (git-reference
11638 (url "https://github.com/Sodel-the-Vociferous/helm-company")
11639 (commit commit)))
11640 (file-name (string-append name "-" version "-checkout"))
11641 (sha256
11642 (base32
11643 "1ciirsanhajdqm5iwl8k9ywf4jha1wdv4sc4d9kslyrfr9zn4q6k"))))
11644 (build-system emacs-build-system)
11645 (propagated-inputs
11646 `(("emacs-helm" ,emacs-helm)
11647 ("emacs-company" ,emacs-company)))
11648 (home-page "https://github.com/Sodel-the-Vociferous/helm-company")
11649 (synopsis "Helm interface for company-mode")
11650 (description
11651 "This is a Helm interface to company-mode, a text completion
11652 framework.")
11653 (license license:gpl3+))))
11654
11655 (define-public emacs-helm-descbinds
11656 (let ((commit "033be73f21778633813264ce1634a6e1ad873d8e"))
11657 (package
11658 (name "emacs-helm-descbinds")
11659 (version (git-version "1.13" "1" commit))
11660 (source
11661 (origin
11662 (method git-fetch)
11663 (uri (git-reference
11664 (url "https://github.com/emacs-helm/helm-descbinds")
11665 (commit commit)))
11666 (file-name (string-append name "-" version "-checkout"))
11667 (sha256
11668 (base32
11669 "1n89p56qwa243w1c85i5awnaf7piwjsvfi7nmnsrwm33hix5dknk"))))
11670 (build-system emacs-build-system)
11671 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
11672 (home-page "https://github.com/emacs-helm/helm-descbinds")
11673 (synopsis "Convenient @code{describe-bindings} with Helm")
11674 (description
11675 "This package is a replacement of @code{describe-bindings} for Helm.
11676 @code{describe-bindings} is replaced with @code{helm-descbinds}. As usual,
11677 type @code{C-h b}, or any incomplete key sequence plus @code{C-h}, to run
11678 @code{helm-descbinds}. The bindings are presented in a similar way as
11679 @code{describe-bindings} does, but you can use completion to find the command
11680 you searched for and execute it, or view its documentation.")
11681 (license license:gpl3+))))
11682
11683 (define-public emacs-helm-emms
11684 (let ((commit "d3f9bdef8ff0d093eaf6e26af50ea905ab53fdec"))
11685 (package
11686 (name "emacs-helm-emms")
11687 (version (git-version "1.3" "1" commit))
11688 (source
11689 (origin
11690 (method git-fetch)
11691 (uri (git-reference
11692 (url "https://github.com/emacs-helm/helm-emms")
11693 (commit commit)))
11694 (file-name (string-append name "-" version "-checkout"))
11695 (sha256
11696 (base32
11697 "0bdb8xp0yp3gijpa9i2rc17gfzjhzlm92vdzw93i10qpd1xhj4aa"))))
11698 (build-system emacs-build-system)
11699 (propagated-inputs
11700 `(("emacs-helm" ,emacs-helm)
11701 ("emacs-emms" ,emacs-emms)))
11702 (home-page
11703 "https://github.com/emacs-helm/helm-emms")
11704 (synopsis "Emms for Helm")
11705 (description "Helm interface for Emms to browse all tracks and all folders
11706 from @code{emms-source-file-default-directory}.")
11707 (license license:gpl3+))))
11708
11709 (define-public emacs-helm-exwm
11710 (let ((commit "56266f261ba3b3d2753b374b50da20eb768c06f5"))
11711 (package
11712 (name "emacs-helm-exwm")
11713 (version (git-version "20180703" "2" commit))
11714 (source
11715 (origin
11716 (method url-fetch)
11717 (uri (string-append
11718 "https://github.com/emacs-helm/helm-exwm/archive/"
11719 commit
11720 ".tar.gz"))
11721 (sha256
11722 (base32
11723 "0n7hdiajw5vxl8ha2r9r4cl4i7crza25348825wb6acwhhzijxcj"))))
11724 (build-system emacs-build-system)
11725 (propagated-inputs
11726 `(("emacs-helm" ,emacs-helm)
11727 ("emacs-exwm" ,emacs-exwm)))
11728 (home-page
11729 "https://github.com/emacs-helm/helm-exwm")
11730 (synopsis "Helm for EXWM buffers")
11731 (description
11732 "@code{helm-exwm} runs a Helm session over the list of EXWM buffers.
11733 @code{helm-exwm-switch} is a convenience X application launcher using Helm to
11734 switch between the various windows of one or several specific applications.
11735 See @code{helm-exwm-switch-browser} for an example.")
11736 (license license:gpl3+))))
11737
11738 (define-public emacs-helm-flycheck
11739 (let ((commit "3cf7d3bb194acacc6395f88360588013d92675d6"))
11740 (package
11741 (name "emacs-helm-flycheck")
11742 (version (git-version "0.4" "1" commit))
11743 (source
11744 (origin
11745 (method git-fetch)
11746 (uri (git-reference
11747 (url "https://github.com/yasuyk/helm-flycheck")
11748 (commit commit)))
11749 (file-name (string-append name "-" version "-checkout"))
11750 (sha256
11751 (base32
11752 "1a2yfxhz04klwhcandqvfzysxp6b7bxyxx1xk1x3kds5hif5fkl4"))))
11753 (build-system emacs-build-system)
11754 (propagated-inputs
11755 `(("emacs-dash" ,emacs-dash)
11756 ("emacs-flycheck" ,emacs-flycheck)
11757 ("emacs-helm" ,emacs-helm)))
11758 (home-page "https://github.com/yasuyk/helm-flycheck")
11759 (synopsis "Show Flycheck errors with Helm")
11760 (description
11761 "This integrates Flycheck with Helm.")
11762 (license license:gpl3+))))
11763
11764 (define-public emacs-helm-ls-git
11765 (let ((commit "76654c776a7f6e2e5290645e748aac2a746f7daa"))
11766 (package
11767 (name "emacs-helm-ls-git")
11768 (version (git-version "1.9.1" "1" commit))
11769 (source
11770 (origin
11771 (method git-fetch)
11772 (uri (git-reference
11773 (url "https://github.com/emacs-helm/helm-ls-git")
11774 (commit commit)))
11775 (file-name (string-append name "-" version "-checkout"))
11776 (sha256
11777 (base32
11778 "0vsq1n3xl3ghy5zik2scm7jrs501n4kybdqd6yw6j0cv4jxdqbr0"))))
11779 (build-system emacs-build-system)
11780 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
11781 (home-page "https://github.com/emacs-helm/helm-ls-git")
11782 (synopsis "Helm interface for listing the files in a Git repository")
11783 (description
11784 "This package provides a Helm interface for Git files.
11785 @itemize
11786 @item Display the open buffers in project.
11787 @item Display a status source showing state of project (modified files etc.).
11788 @item Display a list of all files in project under git control.
11789 @item Quickly look at diffs of modified files.
11790 @item Allow switching to @code{git status} with your preferred frontend
11791 (vc-dir, Magit,etc.).
11792 @item Full integration of git-grep, also allow usage of @code{helm-grep} (you
11793 can use ack-grep instead of grep).
11794 @item Integrate usage of gid from id-utils.
11795 @item Full integration with @code{helm-find-files}, allow you to browse
11796 projects unrelated to current-buffer.
11797 @item In addition, all actions of type files and buffers are provided.
11798 @end itemize\n")
11799 (license license:gpl3+))))
11800
11801 (define-public emacs-helm-mu
11802 (let ((commit "77e6fea24e01481418738421dbcfe28ef1bd63cf"))
11803 (package
11804 (name "emacs-helm-mu")
11805 (version (git-version "20180513" "1" commit))
11806 (source
11807 (origin
11808 (method url-fetch)
11809 (uri (string-append
11810 "https://github.com/emacs-helm/helm-mu/archive/"
11811 commit
11812 ".tar.gz"))
11813 (sha256
11814 (base32
11815 "0qm4xi3i957scm50nar398pv4x8y03si10l77jb9ckjaviyq2hj9"))))
11816 (build-system emacs-build-system)
11817 (propagated-inputs
11818 `(("emacs-helm" ,emacs-helm)
11819 ("mu" ,mu)))
11820 (home-page
11821 "https://github.com/emacs-helm/helm-mu")
11822 (synopsis
11823 "Helm sources for searching emails and contacts")
11824 (description
11825 "Helm sources for searching emails and contacts using @code{mu} and
11826 @code{mu4e}. Mu is an indexer for maildirs and mu4e is a mutt-like MUA for
11827 Emacs build on top of mu. Mu is highly efficient making it possible to get
11828 instant results even for huge maildirs. It also provides search operators,
11829 e.g: @code{from:Peter to:Anne flag:attach search term}.")
11830 (license license:gpl3+))))
11831
11832 (define-public emacs-helm-pass
11833 (let ((commit "ebcbef1a962795a36e3491ae926e2a4b8a8b0ebb"))
11834 (package
11835 (name "emacs-helm-pass")
11836 (version (git-version "20180416" "1" commit))
11837 (source
11838 (origin
11839 (method url-fetch)
11840 (uri (string-append
11841 "https://github.com/jabranham/helm-pass/archive/"
11842 commit
11843 ".tar.gz"))
11844 (sha256
11845 (base32
11846 "1pgq4hj9wvz7z2fyxwsvbh6rmc1akya84v382nx26rr76iavz6wi"))))
11847 (build-system emacs-build-system)
11848 (propagated-inputs
11849 `(("emacs-helm" ,emacs-helm)
11850 ("emacs-password-store" ,emacs-password-store)))
11851 (home-page
11852 "https://github.com/jabranham/helm-pass")
11853 (synopsis "Helm interface to pass, the standard Unix password manager")
11854 (description
11855 "Users of @code{helm-pass} may also be interested in functionality
11856 provided by other Emacs packages dealing with pass:
11857 @itemize
11858 @item @code{emacs-password-store}, which @code{helm-pass} relies on.
11859 @item @code{emacs-pass}, a major mode for @code{pass}.
11860 @item @code{auth-source-pass.el}: integration of Emacs' auth-source with
11861 @code{pass}, included in Emacs 26+).
11862 @end itemize\n")
11863 (license license:gpl3+))))
11864
11865 (define-public emacs-image+
11866 (let ((commit "6834d0c09bb4df9ecc0d7a559bd7827fed48fffc"))
11867 (package
11868 (name "emacs-image+")
11869 (version (git-version "0.6.2" "1" commit))
11870 (source
11871 (origin
11872 (method git-fetch)
11873 (uri (git-reference
11874 (url "https://github.com/mhayashi1120/Emacs-imagex")
11875 (commit commit)))
11876 (file-name (string-append name "-" version "-checkout"))
11877 (sha256
11878 (base32
11879 "0v66wk9nh0raih4jhrzmmyi5lbysjnmbv791vm2230ffi2hmwxnd"))))
11880 (build-system emacs-build-system)
11881 (inputs `(("imagemagick" ,imagemagick)))
11882 (arguments
11883 `(#:phases
11884 (modify-phases %standard-phases
11885 (add-after 'unpack 'configure
11886 (lambda* (#:key inputs outputs #:allow-other-keys)
11887 (let ((imagemagick (assoc-ref inputs "imagemagick")))
11888 ;; Specify the absolute file names of the various
11889 ;; programs so that everything works out-of-the-box.
11890 (chmod "image+.el" #o666)
11891 (emacs-substitute-variables
11892 "image+.el"
11893 ("imagex-convert-command"
11894 (string-append imagemagick "/bin/convert"))
11895 ("imagex-identify-command"
11896 (string-append imagemagick "/bin/identify")))))))))
11897 (home-page "https://github.com/mhayashi1120/Emacs-imagex")
11898 (synopsis "Image manipulation extensions for Emacs")
11899 (description
11900 "Image+ provides keybindings allowing you to zoom in or zoom out of an
11901 image, rotate it, save modified images, and more.")
11902 (license license:gpl3+))))
11903
11904 (define-public emacs-package-lint
11905 (let ((commit "69bb89d00ba212b734c676ad056aa793c450b288"))
11906 (package
11907 (name "emacs-package-lint")
11908 (version (git-version "0.5" "1" commit))
11909 (source
11910 (origin
11911 (method git-fetch)
11912 (uri (git-reference
11913 (url "https://github.com/purcell/package-lint")
11914 (commit commit)))
11915 (file-name (string-append name "-" version "-checkout"))
11916 (sha256
11917 (base32
11918 "1hfricsgmy3x9snnd2p4xq6vnnv94qdsxxnxp07b3hqc9bhw31rq"))))
11919 (build-system emacs-build-system)
11920 (home-page "https://github.com/purcell/package-lint")
11921 (synopsis "Linting library for elisp package authors")
11922 (description
11923 "This provides a list of issues with the Emacs package metadata of a file,
11924 e.g. the package dependencies it requires. See function
11925 @code{package-lint-buffer}. Checks will currently be enabled only if a
11926 \"Package-Requires:\" or \"Package-Version:\" header is present in the
11927 file.")
11928 (license license:gpl3+))))
11929
11930 (define-public emacs-picpocket
11931 (let ((version "40")
11932 (commit "6fd88b8711c4370662c0f9c462170187d092a046"))
11933 (package
11934 (name "emacs-picpocket")
11935 (version version)
11936 (source
11937 (origin
11938 (method git-fetch)
11939 (uri (git-reference
11940 (url "https://github.com/johanclaesson/picpocket")
11941 (commit commit)))
11942 (file-name (git-file-name name version))
11943 (sha256
11944 (base32 "1mdzzxf7xm7zwrpnqqxa27d1cr31pd72d7ilbwljv13qp177a3yw"))))
11945 (build-system emacs-build-system)
11946 (arguments ; needed for running tests
11947 `(#:tests? #t
11948 #:emacs ,emacs
11949 #:test-command '("emacs" "--batch"
11950 "-l" "picpocket-test.el"
11951 "-f" "ert-run-tests-batch-and-exit")))
11952 (home-page "https://github.com/johanclaesson/picpocket")
11953 (synopsis "Image viewer for Emacs")
11954 (description
11955 "Picpocket is an image viewer for GNU Emacs. It has commands for:
11956
11957 @itemize
11958 @item File operations on the picture files (delete, move, copy, hardlink).
11959 @item Scale and rotate the picture.
11960 @item Associate pictures with tags which are saved to disk.
11961 @item Filter pictures according to tags.
11962 @item Customizing keystrokes for quick tagging and file operations.
11963 @item Undo and browse history of undoable commands.
11964 @end itemize")
11965 (license license:gpl3+))))
11966
11967 (define-public emacs-wgrep-helm
11968 ;; `emacs-wgrep-helm' was mistakenly added.
11969 (deprecated-package "emacs-wgrep-helm" emacs-wgrep))
11970
11971 (define-public emacs-mu4e-conversation
11972 (let ((commit "e7d4bfcb0d392b0aed1f705ccac2419a168d1f5e"))
11973 (package
11974 (name "emacs-mu4e-conversation")
11975 (version (git-version "20181126" "4" commit))
11976 (source
11977 (origin
11978 (method url-fetch)
11979 (uri (string-append
11980 "https://gitlab.com/Ambrevar/mu4e-conversation/"
11981 "repository/archive.tar.gz?ref="
11982 commit))
11983 (file-name (string-append name "-" version "-checkout"))
11984 (sha256
11985 (base32
11986 "0b52hf9rm2afba9pvgink9bwqm705sk0y5qikp0ff5sk53wqvy29"))))
11987 (build-system emacs-build-system)
11988 (propagated-inputs
11989 `(("mu" ,mu)))
11990 (home-page
11991 "https://gitlab.com/Ambrevar/mu4e-conversation")
11992 (synopsis
11993 "Show a complete thread in a single buffer")
11994 (description
11995 "This package offers an alternate view to mu4e's e-mail display. It
11996 shows all e-mails of a thread in a single view, where each correspondent has
11997 their own face. Threads can be displayed linearly (in which case e-mails are
11998 displayed in chronological order) or as an Org document where the node tree
11999 maps the thread tree.")
12000 (license license:gpl3+))))
12001
12002 (define-public emacs-pinentry
12003 (let ((commit "dcc9ba03252ee5d39e03bba31b420e0708c3ba0c")
12004 (revision "1"))
12005 (package
12006 (name "emacs-pinentry")
12007 (version (git-version "0.1" revision commit))
12008 (source
12009 (origin
12010 (method url-fetch)
12011 (uri (string-append
12012 "http://git.savannah.gnu.org/cgit/emacs/elpa.git/plain"
12013 "/packages/pinentry/pinentry.el?id=" commit))
12014 (file-name (string-append "pinentry.el"))
12015 (sha256
12016 (base32
12017 "1lf30q6r8nz5cjzclbb9bbymsk2y75nskvb55hnjdv93gr3j0sik"))))
12018 (build-system emacs-build-system)
12019 (propagated-inputs
12020 `(("gnupg" ,gnupg)))
12021 (home-page "https://elpa.gnu.org/packages/pinentry.html")
12022 (synopsis "GnuPG Pinentry server implementation")
12023 (description
12024 "This package allows GnuPG passphrase to be prompted through the
12025 minibuffer instead of graphical dialog.
12026
12027 To use, add @code{allow-emacs-pinentry} to @code{~/.gnupg/gpg-agent.conf},
12028 reload the configuration with @code{gpgconf --reload gpg-agent}, and start the
12029 server with @code{M-x pinentry-start}.")
12030 (license license:gpl3+))))
12031
12032 (define-public emacs-org-brain
12033 (package
12034 (name "emacs-org-brain")
12035 (version "0.5")
12036 (source
12037 (origin
12038 (method git-fetch)
12039 (uri (git-reference
12040 (url "https://github.com/Kungsgeten/org-brain.git")
12041 (commit "3faf9303af3f2356e3444e69c22dc6c5774047d1")))
12042 (file-name (git-file-name name version))
12043 (sha256
12044 (base32
12045 "1ad681zk6kckw2zbk0r4iaj4bw8cfqrbd1s3gdwgdjlzq81q9mmj"))))
12046 (build-system emacs-build-system)
12047 (home-page "https://github.com/Kungsgeten/org-brain")
12048 (synopsis "Org-mode wiki and concept-mapping for Emacs")
12049 (description "@code{emacs-org-brain} implements a variant of concept
12050 mapping in Emacs, using @code{org-mode}. An org-brain is a network of
12051 org-mode entries, where each entry is a file or a headline, and you can get a
12052 visual overview of the relationships between the entries: parents, children,
12053 siblings and friends. This visual overview can also be used to browse your
12054 entries. You can think of entries as nodes in a mind map, or pages in a
12055 wiki.")
12056 (license license:expat)))
12057
12058 (define-public emacs-recent-addresses
12059 (let ((commit "afbbfdc43b81e620acf827ca20d297e0c517b6eb")
12060 (revision "1"))
12061 (package
12062 (name "emacs-recent-addresses")
12063 (home-page "http://nschum.de/src/emacs/recent-addresses/")
12064 (version (git-version "0.1" revision commit))
12065 (source (origin
12066 (method git-fetch)
12067 (uri (git-reference
12068 ;; Note: Use a branch that works with Helm. Submitted
12069 ;; at <https://github.com/nschum/recent-addresses.el/pull/1>.
12070 (url "https://github.com/civodul/recent-addresses.el")
12071 (commit commit)))
12072 (sha256
12073 (base32
12074 "0ajrq0galjmdyjdjyxazykjyax3gh6hvfk4s7l657pi11g0q5zax"))
12075 (file-name (git-file-name name version))))
12076 (build-system emacs-build-system)
12077 (synopsis "Record recently-used email addressed and auto-complete them")
12078 (description
12079 "@code{recent-addresses} is an Emacs package that allows you to quickly
12080 look up previously used email addresses. It can be used alongside the Gnus
12081 email client.")
12082 (license license:gpl2+))))
12083
12084 (define-public emacs-fold-dwim
12085 (let ((commit "c46f4bb2ce91b4e307136320e72c28dd50b6cd8b")
12086 (revision "0"))
12087 (package
12088 (name "emacs-fold-dwim")
12089 (version (git-version "1.2" revision commit))
12090 (home-page "https://github.com/emacsattic/fold-dwim")
12091 (source (origin
12092 (method git-fetch)
12093 (uri (git-reference (url home-page) (commit commit)))
12094 (sha256
12095 (base32
12096 "1yz1wis31asw6xa5maliyd1ck2q02xnnh7dc6swgj9cb4wi7k6i1"))
12097 (file-name (git-file-name name version))))
12098 (build-system emacs-build-system)
12099 (synopsis "Unified user interface for Emacs folding modes")
12100 (description
12101 "DWIM stands for \"do what I mean\", as in the idea that one keystroke
12102 can do different things depending on the context. In this package, it means
12103 that, if the cursor is in a currently hidden folded construction, we want to
12104 show it; if it's not, we want to hide whatever fold the cursor is in.")
12105 (license license:gpl2+))))
12106
12107 (define-public emacs-markup-faces
12108 (package
12109 (name "emacs-markup-faces")
12110 (version "1.0.0")
12111 (source
12112 (origin
12113 (method url-fetch)
12114 (uri (string-append "https://stable.melpa.org/packages/markup-faces-"
12115 version ".el"))
12116 (sha256
12117 (base32
12118 "124dxbaa25fwxnpwsygpz7pw6da6dnnw7y2lic3jf8rgz7lw4v32"))))
12119 (build-system emacs-build-system)
12120 (home-page "https://github.com/sensorflo/markup-faces")
12121 (synopsis "Collection of Emacs faces for markup language modes")
12122 (description "emacs-markup-faces is like font-lock-faces, but tailored for
12123 markup languages instead programming languages. The sub group markup-faces-text
12124 is also intended for 'text viewing modes' such as info or (wo)man. This gives a
12125 common look and feel, or let's say theme, across different markup language modes
12126 and 'text viewing modes' respectively.")
12127 (license license:gpl3+)))
12128
12129 (define-public emacs-adoc-mode
12130 (package
12131 (name "emacs-adoc-mode")
12132 (version "0.6.6")
12133 (source
12134 (origin
12135 (method url-fetch)
12136 (uri (string-append "https://stable.melpa.org/packages/adoc-mode-"
12137 version ".el"))
12138 (sha256
12139 (base32
12140 "1c6hrgxxsnl2c19rgjykpm7r4xg9lp6bmk5z6bi7g8pqlrgwffcy"))))
12141 (build-system emacs-build-system)
12142 (propagated-inputs
12143 `(("emacs-markup-faces" ,emacs-markup-faces)))
12144 (home-page "https://github.com/sensorflo/adoc-mode/wiki")
12145 (synopsis "AsciiDoc mode for Emacs")
12146 (description "This package provides an Emacs major mode for editing AsciiDoc
12147 files. It focuses on highlighting the document to improve readability.")
12148 (license license:gpl2+)))
12149
12150 (define-public emacs-rust-mode
12151 (let ((commit
12152 ;; Last release is old (2016), use more recent commit to get bug
12153 ;; fixes.
12154 "64b4a2450e4d4c47f6307851c9b2598cd2254d68")
12155 (revision "0"))
12156 (package
12157 (name "emacs-rust-mode")
12158 (version (git-version "0.3.0" revision commit))
12159 (source (origin
12160 (method git-fetch)
12161 (uri
12162 (git-reference
12163 (url "https://github.com/rust-lang/rust-mode")
12164 (commit commit)))
12165 (file-name (git-file-name name version))
12166 (sha256
12167 (base32
12168 "0pbz36lljgb7bdgx3h3g0pq1nss1kvn8mhk1l3mknsmynd6w4nd8"))))
12169 (build-system emacs-build-system)
12170 (arguments
12171 `(#:phases
12172 (modify-phases %standard-phases
12173 (replace 'check
12174 (lambda _
12175 (invoke "sh" "run_rust_emacs_tests.sh"))))))
12176 (home-page "https://github.com/rust-lang/rust-mode")
12177 (synopsis "Major Emacs mode for editing Rust source code")
12178 (description "This package provides a major Emacs mode for editing Rust
12179 source code.")
12180 (license (list license:expat
12181 license:asl2.0)))))
12182
12183 (define-public emacs-ztree
12184 (let ((commit "c54425a094353ec40a8179f9eab3596f76c6cf94"))
12185 (package
12186 (name "emacs-ztree")
12187 (version (git-version "1.0.5" "1" commit))
12188 (source
12189 (origin
12190 (method git-fetch)
12191 (uri (git-reference
12192 (url "https://github.com/fourier/ztree")
12193 (commit commit)))
12194 (file-name (git-file-name name version))
12195 (sha256
12196 (base32
12197 "0j8fpxds8m1zi04nrs8vv21091abvh4n8ab76f1sgdxnp4l5cfb0"))))
12198 (build-system emacs-build-system)
12199 (home-page "https://github.com/fourier/ztree")
12200 (synopsis "Directory tree comparison mode for Emacs")
12201 (description "Ztree is a project dedicated to implementation of several
12202 text-tree applications inside GNU Emacs. It consists of 2 subprojects:
12203 @command{ztree-diff} and @command{ztree-dir} (the basis of
12204 @command{ztree-diff}).")
12205 (license license:gpl3))))
12206
12207 (define-public emacs-helm-org-contacts
12208 (let ((commit "0af703bd9a43032b89fdf5559673151d1ac2fffc"))
12209 (package
12210 (name "emacs-helm-org-contacts")
12211 (version (git-version "20180707" "1" commit))
12212 (source
12213 (origin
12214 (method git-fetch)
12215 (uri (git-reference
12216 (url "https://github.com/tmalsburg/helm-org-contacts")
12217 (commit commit)))
12218 (file-name (git-file-name name version))
12219 (sha256
12220 (base32
12221 "1cl7cm2ic9pg4vc9cdh84vzjj1x2lpd5ymimiva8h4l17kiphk4s"))))
12222 (build-system emacs-build-system)
12223 (propagated-inputs
12224 `(("emacs-dash" ,emacs-dash)
12225 ("emacs-helm" ,emacs-helm)
12226 ("emacs-s" ,emacs-s)))
12227 (home-page "https://github.com/tmalsburg/helm-org-contacts")
12228 (synopsis "Helm source for org-contacts")
12229 (description "This Helm source can be used to search contacts stored in
12230 org-contacts format. There are actions for inserting postal addresses, email
12231 addresses, and phone numbers in the buffer where @command{helm-org-contacts}
12232 was called.")
12233 (license license:gpl3))))
12234
12235 (define-public emacs-dired-du
12236 (package
12237 (name "emacs-dired-du")
12238 (version "0.5.1")
12239 (source
12240 (origin
12241 (method url-fetch)
12242 (uri (string-append
12243 "https://elpa.gnu.org/packages/dired-du-"
12244 version ".tar"))
12245 (sha256
12246 (base32
12247 "1091scnrjh0a4gja4z6jxic6ghy1yryv46qk9c76pmh50cpw6766"))))
12248 (build-system emacs-build-system)
12249 (home-page "http://elpa.gnu.org/packages/dired-du.html")
12250 (synopsis "Dired with recursive directory sizes")
12251 (description
12252 "Display the recursive size of directories in Dired.
12253 This file defines a minor mode @command{dired-du-mode} to show the recursive
12254 size of directories in Dired buffers. If @command{du} program is available,
12255 then the directory sizes are obtained with it. Otherwise, the directory sizes
12256 are obtained with Lisp. The former is faster and provide a more precise
12257 value. For directories where the user doesn't have read permission, the
12258 recursive size is not obtained. Once this mode is enabled, every new Dired
12259 buffer displays recursive dir sizes.")
12260 (license license:gpl3+)))
12261
12262 (define-public emacs-pcre2el
12263 ;; Last release is very old so we get the latest commit.
12264 (let ((commit "0b5b2a2c173aab3fd14aac6cf5e90ad3bf58fa7d"))
12265 (package
12266 (name "emacs-pcre2el")
12267 (version (git-version "1.8" "1" commit))
12268 (source
12269 (origin
12270 (method git-fetch)
12271 (uri (git-reference
12272 (url "https://github.com/joddie/pcre2el")
12273 (commit commit)))
12274 (file-name (git-file-name name version))
12275 (sha256
12276 (base32
12277 "14br6ad138qx1z822wqssswqiihxiynz1k69p6mcdisr2q8yyi1z"))))
12278 (build-system emacs-build-system)
12279 (home-page "https://github.com/joddie/pcre2el")
12280 (synopsis "Convert between PCRE, Emacs and rx regexp syntax")
12281 (description "@code{pcre2el} or @code{rxt} (RegeXp Translator or RegeXp
12282 Tools) is a utility for working with regular expressions in Emacs, based on a
12283 recursive-descent parser for regexp syntax. In addition to converting (a
12284 subset of) PCRE syntax into its Emacs equivalent, it can do the following:
12285
12286 @itemize
12287 @item convert Emacs syntax to PCRE
12288 @item convert either syntax to @code{rx}, an S-expression based regexp syntax
12289 @item untangle complex regexps by showing the parse tree in @code{rx} form and
12290 highlighting the corresponding chunks of code
12291 @item show the complete list of strings (productions) matching a regexp,
12292 provided the list is finite
12293 @item provide live font-locking of regexp syntax (so far only for Elisp
12294 buffers – other modes on the TODO list).
12295 @end itemize\n")
12296 (license license:gpl3))))
12297
12298 (define-public emacs-magit-todos
12299 (package
12300 (name "emacs-magit-todos")
12301 (version "1.1")
12302 (source
12303 (origin
12304 (method git-fetch)
12305 (uri (git-reference
12306 (url "https://github.com/alphapapa/magit-todos")
12307 (commit version)))
12308 (file-name (git-file-name name version))
12309 (sha256
12310 (base32
12311 "1mvzbxshr6zjdim3jd368ar1hy5l7n22i03cpvzdmrw83kkwdyhd"))))
12312 (build-system emacs-build-system)
12313 (propagated-inputs
12314 `(("emacs-async" ,emacs-async)
12315 ("emacs-dash" ,emacs-dash)
12316 ("emacs-f" ,emacs-f)
12317 ("emacs-hl-todo" ,emacs-hl-todo)
12318 ("magit" ,emacs-magit)
12319 ("emacs-pcre2el" ,emacs-pcre2el)
12320 ("emacs-s" ,emacs-s)))
12321 (home-page "https://github.com/alphapapa/magit-todos")
12322 (synopsis "Show source files' TODOs (and FIXMEs, etc) in Magit status buffer")
12323 (description "This package displays keyword entries from source code
12324 comments and Org files in the Magit status buffer. Activating an item jumps
12325 to it in its file. By default, it uses keywords from @code{hl-todo}, minus a
12326 few (like NOTE).")
12327 (license license:gpl3)))
12328
12329 (define-public emacs-git-annex
12330 ;; Unreleased version has a fontification fix.
12331 (let ((commit "ebdb44aef1883f1b2b8058e05d30fb9315b03707")
12332 (revision "1"))
12333 (package
12334 (name "emacs-git-annex")
12335 (version (string-append "1.1-" revision "." (string-take commit 8)))
12336 (source
12337 (origin
12338 (method git-fetch)
12339 (uri (git-reference
12340 (url "https://github.com/jwiegley/git-annex-el")
12341 (commit commit)))
12342 (file-name (string-append name "-" version "-checkout"))
12343 (sha256
12344 (base32
12345 "1mzv40gj7k10h7h5s43my8msgzjpj680qprqa9pp8nbyhl49v3wh"))))
12346 (build-system emacs-build-system)
12347 (home-page "https://github.com/jwiegley/git-annex-el")
12348 (synopsis "Emacs integration for git-annex")
12349 (description "Enhances Dired and buffers visiting annex files with
12350 git-annex functionality. In Dired, the names of annex files are shortened by
12351 hiding the symbolic links and fontified based on whether content is present.
12352 Commands for performing some common operations (e.g., unlocking and adding
12353 files) are provided.")
12354 (license license:gpl2+))))
12355
12356 (define-public emacs-hackernews
12357 (let ((commit "d8c450bbc76d6bb65ec5cdb6c3b888a23f3769e9"))
12358 (package
12359 (name "emacs-hackernews")
12360 (version (git-version "0.4.0" "1" commit))
12361 (source
12362 (origin
12363 (method git-fetch)
12364 (uri (git-reference
12365 (url "https://github.com/clarete/hackernews.el")
12366 (commit commit)))
12367 (file-name (git-file-name name version))
12368 (sha256
12369 (base32
12370 "06mp4n6c300jv5lhwf50ircfjckzr2p1zd38s4mqnxxjlf1maim7"))))
12371 (build-system emacs-build-system)
12372 (home-page "https://github.com/clarete/hackernews.el")
12373 (synopsis "Hacker News client for Emacs")
12374 (description "The @command{hackernews} package is able to fetch stories
12375 from six different Hacker News feeds, namely top, new, best, ask, show and job
12376 stories. The default feed is top stories, which corresponds to the Hacker
12377 News homepage.")
12378 (license license:gpl3))))
12379
12380 (define-public emacs-youtube-dl
12381 (let ((commit "7c9d7a7d05b72a7d1b1257a36c5e2b2567b185dd"))
12382 (package
12383 (name "emacs-youtube-dl")
12384 (version (git-version "1.0" "1" commit))
12385 (source
12386 (origin
12387 (method git-fetch)
12388 (uri (git-reference
12389 (url "https://github.com/skeeto/youtube-dl-emacs/")
12390 (commit commit)))
12391 (file-name (git-file-name name version))
12392 (sha256
12393 (base32
12394 "0mh4s089a4x8s380agzb2306kdp1hl204px1n5rrrrdcls7imnh6"))))
12395 (build-system emacs-build-system)
12396 (inputs
12397 `(("youtube-dl" ,youtube-dl)))
12398 (arguments
12399 `(#:phases
12400 (modify-phases %standard-phases
12401 (add-after 'unpack 'configure
12402 (lambda* (#:key inputs #:allow-other-keys)
12403 (let ((youtube-dl (assoc-ref inputs "youtube-dl")))
12404 ;; .el is read-only in git.
12405 (chmod "youtube-dl.el" #o644)
12406 ;; Specify the absolute file names of the various
12407 ;; programs so that everything works out-of-the-box.
12408 (emacs-substitute-variables
12409 "youtube-dl.el"
12410 ("youtube-dl-program"
12411 (string-append youtube-dl "/bin/youtube-dl")))))))))
12412 (home-page "https://github.com/skeeto/youtube-dl-emacs/")
12413 (synopsis "Emacs youtube-dl download manager")
12414 (description "This package manages a video download queue for
12415 @command{youtube-dl}, which serves as the back end. It manages a single
12416 @command{youtube-dl} subprocess, downloading one video at a time. New videos
12417 can be queued at any time.")
12418 (license license:unlicense))))
12419
12420 (define-public emacs-org-web-tools
12421 (package
12422 (name "emacs-org-web-tools")
12423 (version "1.0")
12424 (source
12425 (origin
12426 (method git-fetch)
12427 (uri (git-reference
12428 (url "https://github.com/alphapapa/org-web-tools")
12429 (commit version)))
12430 (file-name (git-file-name name version))
12431 (sha256
12432 (base32
12433 "0kak9h5ny00d39gnwspv53nadnag01brw2fq9zk5wpfc91h9bjng"))))
12434 (build-system emacs-build-system)
12435 (propagated-inputs
12436 `(("emacs-dash" ,emacs-dash)
12437 ("emacs-esxml" ,emacs-esxml)
12438 ("emacs-s" ,emacs-s)))
12439 (inputs
12440 `(("pandoc" ,ghc-pandoc)))
12441 (arguments
12442 `(#:phases
12443 (modify-phases %standard-phases
12444 (add-after 'unpack 'patch-exec-paths
12445 (lambda* (#:key inputs #:allow-other-keys)
12446 (let ((pandoc (assoc-ref inputs "pandoc")))
12447 (substitute* "org-web-tools.el"
12448 (("\"pandoc\"") (string-append "\"" pandoc "/bin/pandoc\"")))
12449 #t))))))
12450 (home-page "https://github.com/alphapapa/org-web-tools")
12451 (synopsis "Display/Process web page as Org-mode content")
12452 (description "This package contains library functions and commands useful
12453 for retrieving web page content and processing it into Org-mode content.
12454
12455 For example, you can copy a URL to the clipboard or kill-ring, then run a
12456 command that downloads the page, isolates the “readable” content with
12457 @command{eww-readable}, converts it to Org-mode content with Pandoc, and
12458 displays it in an Org-mode buffer. Another command does all of that but
12459 inserts it as an Org entry instead of displaying it in a new buffer.")
12460 (license license:gpl3+)))
12461
12462 (define-public emacs-blimp
12463 (let ((commit "e420763d6d18b5d1be552cdbc47f91418343db03"))
12464 (package
12465 (name "emacs-blimp")
12466 (version (git-version "0.0.0" "1" commit))
12467 (source
12468 (origin
12469 (method git-fetch)
12470 (uri (git-reference
12471 (url "https://github.com/walseb/blimp")
12472 (commit commit)))
12473 (file-name (git-file-name name version))
12474 (sha256
12475 (base32
12476 "09wmhpym516b81dfq8smdmysh1fn610dzlyvyl2rkx8600f0fizd"))))
12477 (build-system emacs-build-system)
12478 (propagated-inputs
12479 `(("emacs-eimp" ,emacs-eimp)))
12480 (home-page "https://github.com/walseb/blimp")
12481 (synopsis "Emacs wrapper around all Imagemagick commands")
12482 (description "Blimp (Bustling Image Manipulation Package) is a complete
12483 wrapper around all Imagemagick commands with descriptions, autocompletion (for
12484 some commands) and hints displayed in prompt using @command{eimp.el} to
12485 execute its commands and resize images.")
12486 (license license:gpl3+))))
12487
12488 (define-public emacs-synosaurus
12489 (let ((commit "8bf95b935976ec0a1964cf175ed57cc5f6f93bdb"))
12490 (package
12491 (name "emacs-synosaurus")
12492 (version (git-version "0.1.0" "1" commit))
12493 (source
12494 (origin
12495 (method git-fetch)
12496 (uri (git-reference
12497 (url "https://github.com/hpdeifel/synosaurus")
12498 (commit commit)))
12499 (file-name (git-file-name name version))
12500 (sha256
12501 (base32
12502 "15by9jccab6kyplxa6k0glzaivxkqdigl33gl2qi2cvy6f2q7gva"))))
12503 (build-system emacs-build-system)
12504 (propagated-inputs
12505 `(("wordnet" ,wordnet)))
12506 (arguments
12507 `(#:phases
12508 (modify-phases %standard-phases
12509 (add-after 'unpack 'configure
12510 (lambda* (#:key inputs outputs #:allow-other-keys)
12511 (let ((wn (assoc-ref inputs "wordnet")))
12512 ;; .el is read-only in git.
12513 (chmod "synosaurus-wordnet.el" #o644)
12514 ;; Specify the absolute file names of the various
12515 ;; programs so that everything works out-of-the-box.
12516 (emacs-substitute-variables
12517 "synosaurus-wordnet.el"
12518 ("wordnet-command"
12519 (string-append wn "/bin/wn")))))))))
12520 (home-page "https://github.com/hpdeifel/synosaurus")
12521 (synopsis "Extensible thesaurus mode for Emacs")
12522 (description "Synosaurus is a thesaurus fontend for Emacs with pluggable
12523 backends, including the @command{wordnet} offline backend.")
12524 (license license:gpl3+))))
12525
12526 (define-public emacs-all-the-icons
12527 (package
12528 (name "emacs-all-the-icons")
12529 (version "3.2.0")
12530 (source
12531 (origin
12532 (method git-fetch)
12533 (uri (git-reference
12534 (url "https://github.com/domtronn/all-the-icons.el.git")
12535 (commit version)))
12536 (file-name (git-file-name name version))
12537 (sha256
12538 (base32
12539 "1sdl33117lccznj38021lwcdnpi9nxmym295q6y460y4dm4lx0jn"))))
12540 (build-system emacs-build-system)
12541 (arguments
12542 `(#:include '("\\.el$" "^data/" "^fonts/")
12543 ;; Compiling "test/" fails with "Symbol’s value as variable is void:
12544 ;; all-the-icons--root-code". Ignoring tests.
12545 #:exclude '("^test/")
12546 #:tests? #f))
12547 (propagated-inputs
12548 `(("f" ,emacs-f)
12549 ("memoize" ,emacs-memoize)))
12550 (home-page "https://github.com/domtronn/all-the-icons.el")
12551 (synopsis "Collect icon fonts and propertize them within Emacs")
12552 (description "All-the-icons is a utility package to collect various icon
12553 fonts and propertize them within Emacs. Icon fonts allow you to propertize
12554 and format icons the same way you would normal text. This enables things such
12555 as better scaling of and anti aliasing of the icons.")
12556 ;; Package is released under Expat license. Elisp files are licensed
12557 ;; under GPL3+. Fonts come with various licenses: Expat for
12558 ;; "all-the-icons.ttf" and "file-icons.ttf", Apache License 2.0 for
12559 ;; "material-design-icons.ttf", and SIL OFL 1.1 for "fontawesome.ttf",
12560 ;; "ocitcons.ttf" and "weathericons.ttf".
12561 (license
12562 (list license:expat license:gpl3+ license:silofl1.1 license:asl2.0))))
12563
12564 (define-public emacs-powerline
12565 (package
12566 (name "emacs-powerline")
12567 (version "2.4")
12568 (source
12569 (origin
12570 (method git-fetch)
12571 (uri (git-reference
12572 (url "https://github.com/milkypostman/powerline.git")
12573 (commit version)))
12574 (file-name (git-file-name name version))
12575 (sha256
12576 (base32
12577 "1hp3xp18943n0rlggz55150020ivw8gvi1vyxkr4z8xhpwq4gaar"))))
12578 (build-system emacs-build-system)
12579 (home-page "https://github.com/milkypostman/powerline/")
12580 (synopsis "Mode-line plugin for Emacs")
12581 (description "Powerline is a utility plugin which allows you to create
12582 a better-looking, more functional Emacs mode-line. A collection of predefined
12583 themes comes with the package.")
12584 (license license:gpl3+)))
12585
12586 (define-public emacs-spaceline
12587 (package
12588 (name "emacs-spaceline")
12589 (version "2.0.1")
12590 (source
12591 (origin
12592 (method git-fetch)
12593 (uri (git-reference
12594 (url "https://github.com/TheBB/spaceline.git")
12595 (commit (string-append "v" version))))
12596 (file-name (git-file-name name version))
12597 (sha256
12598 (base32
12599 "1q8r95zfrh0vxna5ml2pq9b9f66clfqcl4d2qy2aizkvzyxg6skl"))))
12600 (build-system emacs-build-system)
12601 (propagated-inputs
12602 `(("dash" ,emacs-dash)
12603 ("powerline" ,emacs-powerline)
12604 ("s" ,emacs-s)))
12605 (home-page "https://github.com/TheBB/spaceline")
12606 (synopsis "Powerline theme from Spacemacs")
12607 (description "Spaceline provides Spacemacs' mode-line theme.
12608 This package provides features for three kinds of users.
12609
12610 @itemize
12611 @item You just want to use the Spacemacs mode-line theme and forget about it.
12612 @item You want to use something similar to the Spacemacs mode-line theme, but
12613 with a handful of easy tweaks.
12614 @item You want an easy-to-use library for building your own mode-line from
12615 scratch, and you think the Spacemacs theme looks good.
12616 @end itemize")
12617 (license license:gpl3+)))
12618
12619 (define-public emacs-column-marker
12620 (package
12621 (name "emacs-column-marker")
12622 (version "9")
12623 (source
12624 (origin
12625 (method url-fetch)
12626 (uri "https://www.emacswiki.org/emacs/download/column-marker.el")
12627 (sha256 (base32 "05bv198zhqw5hqq6cr11mhz02dpca74hhp1ycwq369m0yb2naxy9"))))
12628 (build-system emacs-build-system)
12629 (home-page "https://www.emacswiki.org/emacs/ColumnMarker")
12630 (synopsis "Emacs mode for highlighting columns")
12631 (description
12632 "With @code{column-marker.el} you can highlight any number of text columns.
12633 Three such highlight column markers are provided by default. This is
12634 especially useful for languages like COBOL or Fortran where certain columns
12635 have special meaning. It is also handy for aligning text across long vertical
12636 distances. Multi-column characters, such as @kbd{TAB} are treated
12637 correctly.")
12638 (license license:gpl2+)))
12639
12640 (define-public emacs-slime-repl-ansi-color
12641 (let ((commit "ad03263f5d4de473bc173b64a6fc3dc1106393d7"))
12642 (package
12643 (name "emacs-slime-repl-ansi-color")
12644 (version (git-version "0.0.0" "1" commit))
12645 (source (origin
12646 (method git-fetch)
12647 (uri (git-reference
12648 (url "https://github.com/deadtrickster/slime-repl-ansi-color")
12649 (commit commit)))
12650 (file-name (git-file-name name version))
12651 (sha256
12652 (base32
12653 "0bpg7gxz310x7bnlg324c507sxc5gxwwz6h64h6kdq141r73vbi4"))))
12654 (build-system emacs-build-system)
12655 (home-page "https://github.com/deadtrickster/slime-repl-ansi-color")
12656 (synopsis "Color ANSI codes in the REPL of SLIME")
12657 (description "Color ANSI codes in the REPL of SLIME")
12658 (license license:gpl2+))))
12659
12660 (define-public emacs-helm-slime
12661 (let ((commit "9980925f3e5f6ac5a30369d2a544e82006a79c76"))
12662 (package
12663 (name "emacs-helm-slime")
12664 (version (git-version "0.0.0" "1" commit))
12665 (source (origin
12666 (method git-fetch)
12667 (uri (git-reference
12668 (url "https://github.com/emacs-helm/helm-slime")
12669 (commit commit)))
12670 (file-name (git-file-name name version))
12671 (sha256
12672 (base32
12673 "0xa07gpfkzwn522x9573mq5mfxvbawdgd0m93gqj6w5a14wk8zzh"))))
12674 (build-system emacs-build-system)
12675 (propagated-inputs
12676 `(("emacs-helm" ,emacs-helm)
12677 ("emacs-slime" ,emacs-slime)))
12678 (home-page "https://github.com/emacs-helm/helm-slime")
12679 (synopsis "Helm for SLIME, the Superior Lisp Interaction Mode for Emacs")
12680 (description "Helm-SLIME defines a few new commands:
12681
12682 @itemize
12683 @item helm-slime-complete: Select a symbol from the SLIME completion systems.
12684 @item helm-slime-list-connections: Yet another slime-list-connections with Helm.
12685 @item: helm-slime-apropos: Yet another slime-apropos with Helm.
12686 @item helm-slime-repl-history: Select an input from the SLIME REPL history and insert it.
12687 @end itemize\n")
12688 (license license:gpl3+))))
12689
12690 (define-public emacs-gtk-look
12691 (package
12692 (name "emacs-gtk-look")
12693 (version "29")
12694 (source (origin
12695 (method url-fetch)
12696 (uri "https://download.tuxfamily.org/user42/gtk-look.el")
12697 (sha256
12698 (base32
12699 "14p2nwrd51cr1v06fxbjjn6jdrkf9d6vcxhmscm0kl677s25ypsp"))))
12700 (build-system emacs-build-system)
12701 (arguments
12702 `(#:phases
12703 (modify-phases %standard-phases
12704 (add-after 'unpack 'configure
12705 (lambda _
12706 ;; File is read-only.
12707 (chmod "gtk-look.el" #o644)
12708 (emacs-substitute-variables "gtk-look.el"
12709 ("gtk-lookup-devhelp-indices"
12710 '(list (expand-file-name "~/.guix-profile/share/gtk-doc/html/*/*.devhelp*"))))
12711 #t)))))
12712 (home-page "http://user42.tuxfamily.org/gtk-look/index.html")
12713 (synopsis "Find and display HTML documentation for GTK, GNOME and Glib")
12714 (description "@command{gtk-look} finds and displays HTML documentation for
12715 GTK, GNOME and Glib functions and variables in Emacs, similar to what
12716 info-lookup-symbol does for info files (C-h S). The documentation is expected
12717 to be devhelp indexes with HTML files. The location of the indexes can be
12718 customized. In addition to C code development @command{gtk-look} is good for
12719
12720 @itemize
12721 @item @command{perl-gtk2}, recognising class funcs like
12722 @command{Gtk2::Label->new} and bare method names like @command{set_text}.
12723 @item @command{guile-gnome}, recognising methods like @command{set-text} and
12724 classes like @command{<gtk-window>}.
12725 @end itemize\n")
12726 (license license:gpl3+)))
12727
12728 (define-public emacs-ov
12729 (package
12730 (name "emacs-ov")
12731 (version "1.0.6")
12732 (source (origin
12733 (method git-fetch)
12734 (uri (git-reference
12735 (url "https://github.com/ShingoFukuyama/ov.el.git")
12736 (commit version)))
12737 (file-name (git-file-name name version))
12738 (sha256
12739 (base32
12740 "0qxk2rf84j86syxi8xknsq252irwg7sz396v3bb4wqz4prpj0kzc"))))
12741 (build-system emacs-build-system)
12742 (home-page "https://github.com/ShingoFukuyama/ov.el")
12743 (synopsis "Overlay library for Emacs Lisp")
12744 (description "@code{ov.el} provides a simple way to manipulate overlays in
12745 Emacs.")
12746 (license license:gpl3+)))
12747
12748 (define-public emacs-matrix-client
12749 (let ((commit "5d8e959a63e5de05b628ca8e1dfb974f7f618821"))
12750 (package
12751 (name "emacs-matrix-client")
12752 (version (git-version "0.0.0" "1" commit))
12753 (source (origin
12754 (method git-fetch)
12755 (uri (git-reference
12756 (url "https://github.com/jgkamat/matrix-client-el.git")
12757 (commit commit)))
12758 (file-name (git-file-name name version))
12759 (sha256
12760 (base32
12761 "15mwyjq3z867v0xl4m2s3vvfn0wqncb67xawm1cjmpnambz1yz1n"))))
12762 (build-system emacs-build-system)
12763 (propagated-inputs
12764 `(("a" ,emacs-a)
12765 ("dash" ,emacs-dash)
12766 ("esxml" ,emacs-esxml)
12767 ("f" ,emacs-f)
12768 ("frame-purpose" ,emacs-frame-purpose)
12769 ("ht" ,emacs-ht)
12770 ("ov" ,emacs-ov)
12771 ("rainbow-identifiers" ,emacs-rainbow-identifiers)
12772 ("request" ,emacs-request)
12773 ("s" ,emacs-s)
12774 ("tracking" ,emacs-tracking)))
12775 (home-page "https://github.com/jgkamat/matrix-client-el")
12776 (synopsis "Matrix client for Emacs")
12777 (description "@code{matrix-client} is a simple chat UI to Matrix.org
12778 rooms. It also provides an API which allows Emacs to seamlessly create
12779 RPC channels with users and other software.")
12780 (license license:gpl3+))))
12781
12782 (define-public emacs-sesman
12783 (package
12784 (name "emacs-sesman")
12785 (version "0.3.3")
12786 (source
12787 (origin
12788 (method git-fetch)
12789 (uri (git-reference
12790 (url "https://github.com/vspinu/sesman.git")
12791 (commit (string-append "v" version))))
12792 (file-name (git-file-name name version))
12793 (sha256
12794 (base32
12795 "0r32f8ma9ddczxrrdz0nadp14j3zmk10q1ch02gb82synkx3xdra"))))
12796 (build-system emacs-build-system)
12797 (arguments
12798 `(#:tests? #t
12799 #:test-command '("make" "test")))
12800 (home-page "https://github.com/vspinu/sesman")
12801 (synopsis "Session manager for Emacs based IDEs")
12802 (description "Sesman provides facilities for session management and
12803 interactive session association with the current contexts (project, directory,
12804 buffers). While sesman can be used to manage arbitrary sessions, it primary
12805 targets the Emacs based IDEs (CIDER, ESS, Geiser, Robe, SLIME etc.)")
12806 (license license:gpl3+)))
12807
12808 (define-public emacs-buttercup
12809 (package
12810 (name "emacs-buttercup")
12811 (version "1.16")
12812 (source
12813 (origin
12814 (method git-fetch)
12815 (uri (git-reference
12816 (url "https://github.com/jorgenschaefer/emacs-buttercup.git")
12817 (commit (string-append "v" version))))
12818 (file-name (git-file-name name version))
12819 (sha256
12820 (base32
12821 "0dckgcyzsav6ld78bcyrrygy1cz1jvqgav6vy8f6klpmk3r8xrl1"))))
12822 (build-system emacs-build-system)
12823 (arguments
12824 `(#:tests? #t
12825 #:test-command '("make" "test")
12826 #:phases
12827 (modify-phases %standard-phases
12828 (add-after 'install 'install-bin
12829 (lambda* (#:key outputs #:allow-other-keys)
12830 (install-file "bin/buttercup"
12831 (string-append (assoc-ref outputs "out") "/bin"))
12832 #t)))))
12833 (home-page "https://github.com/jorgenschaefer/emacs-buttercup")
12834 (synopsis "Behavior driven emacs lisp testing framework")
12835 (description "Buttercup is a behavior-driven development framework for
12836 testing Emacs Lisp code. It allows to group related tests so they can share
12837 common set-up and tear-down code, and allows the programmer to \"spy\" on
12838 functions to ensure they are called with the right arguments during testing.")
12839 (license license:gpl3+)))
12840
12841 (define-public emacs-wordnut
12842 (let ((commit "feac531404041855312c1a046bde7ea18c674915")
12843 (revision "0"))
12844 (package
12845 (name "emacs-wordnut")
12846 (version (git-version "0.1" revision commit))
12847 (home-page "https://github.com/gromnitsky/wordnut")
12848 (source (origin
12849 (method git-fetch)
12850 (uri (git-reference (url home-page) (commit commit)))
12851 (sha256
12852 (base32
12853 "1jl0b6g64a9w0q7bfvwha67vgws5xd15b7mkfyb5gkz3pymqhfxn"))
12854 (patches
12855 (search-patches "emacs-wordnut-require-adaptive-wrap.patch"))
12856 (file-name (git-file-name name version))))
12857 (build-system emacs-build-system)
12858 (propagated-inputs
12859 `(("wordnet" ,wordnet)
12860 ("emacs-adaptive-wrap" ,emacs-adaptive-wrap)))
12861 (synopsis "Major mode for WordNet")
12862 (description "This Emacs package provides an interface for
12863 @code{wordnet}. Features include completion, if the query is not found
12864 too ambiguous and navigation in the result buffer.")
12865 (license license:gpl3+))))
12866
12867 (define-public emacs-dedukti-mode
12868 (let ((commit "d7c3505a1046187de3c3aeb144455078d514594e"))
12869 (package
12870 (name "emacs-dedukti-mode")
12871 (version (git-version "0" "0" commit))
12872 (home-page "https://github.com/rafoo/dedukti-mode")
12873 (source (origin
12874 (method git-fetch)
12875 (uri (git-reference
12876 (url home-page)
12877 (commit commit)))
12878 (sha256
12879 (base32
12880 "1842wikq24c8rg0ac84vb1qby9ng1nssxswyyni4kq85lng5lcrp"))
12881 (file-name (git-file-name name version))))
12882 (inputs
12883 `(("dedukti" ,dedukti)))
12884 (build-system emacs-build-system)
12885 (arguments
12886 '(#:phases
12887 (modify-phases %standard-phases
12888 (add-before 'install 'patch-dkpath
12889 (lambda _
12890 (let ((dkcheck-path (which "dkcheck")))
12891 (substitute* "dedukti-mode.el"
12892 (("dedukti-path \"(.*)\"")
12893 (string-append "dedukti-path \"" dkcheck-path "\"")))))))))
12894 (synopsis "Emacs major mode for Dedukti files")
12895 (description "This package provides an Emacs major mode for editing
12896 Dedukti files.")
12897 (license license:cecill-b))))
12898
12899 (define-public emacs-flycheck-dedukti
12900 (let ((commit "3dbff5646355f39d57a3ec514f560a6b0082a1cd"))
12901 (package
12902 (name "emacs-flycheck-dedukti")
12903 (version (git-version "0" "0" commit))
12904 (home-page "https://github.com/rafoo/flycheck-dedukti")
12905 (source (origin
12906 (method git-fetch)
12907 (uri (git-reference
12908 (url home-page)
12909 (commit commit)))
12910 (sha256
12911 (base32
12912 "1ffpxnwl3wx244n44mbw81g00nhnykd0lnid29f4aw1av7w6nw8l"))
12913 (file-name (git-file-name name version))))
12914 (build-system emacs-build-system)
12915 (inputs
12916 `(("dedukti-mode" ,emacs-dedukti-mode)
12917 ("flycheck-mode" ,emacs-flycheck)))
12918 (synopsis "Flycheck integration for the dedukti language")
12919 (description "This package provides a frontend for Flycheck to perform
12920 syntax checking on dedukti files.")
12921 (license license:cecill-b))))
12922
12923 (define-public emacs-frame-purpose
12924 (package
12925 (name "emacs-frame-purpose")
12926 (version "1.0")
12927 (source (origin
12928 (method git-fetch)
12929 (uri (git-reference
12930 (url "https://github.com/alphapapa/frame-purpose.el.git")
12931 (commit version)))
12932 (sha256
12933 (base32
12934 "0jq2aam1yvccw887ighd1wm2xkvk5bv53ffiz3crcl16a255aj4q"))
12935 (file-name (git-file-name name version))))
12936 (build-system emacs-build-system)
12937 (inputs
12938 `(("dash" ,emacs-dash)))
12939 (synopsis "Purpose-specific frames for Emacs")
12940 (description "@code{frame-purpose} makes it easy to open purpose-specific
12941 frames that only show certain buffers, e.g. by buffers’ major mode, their
12942 filename or directory, etc, with custom frame/X-window titles, icons, and
12943 other frame parameters.")
12944 (home-page "https://github.com/alphapapa/frame-purpose.el")
12945 (license license:gpl3+)))
12946
12947 (define-public emacs-arduino-mode
12948 (let ((commit "3e2bad4569ad26e929e6db2cbcff0d6d36812698")) ;no release yet
12949 (package
12950 (name "emacs-arduino-mode")
12951 (version (git-version "0" "0" commit))
12952 (source (origin
12953 (method git-fetch)
12954 (uri (git-reference
12955 (url "https://github.com/bookest/arduino-mode.git")
12956 (commit commit)))
12957 (sha256
12958 (base32
12959 "1yvaqjc9hadbnnay5fprnh890xsp53kidad1zpb4a5z4a5z61n3c"))
12960 (file-name (git-file-name name version))))
12961 (build-system emacs-build-system)
12962 (synopsis "Emacs major mode for editing Arduino sketches")
12963 (description "Emacs major mode for editing Arduino sketches.")
12964 (home-page "https://github.com/bookest/arduino-mode")
12965 (license license:gpl3+))))