cb84a87a951c8a3f678143c817f54fc75e0d684f
[jackhill/guix/guix.git] / gnu / packages / emacs-xyz.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2014 Taylan Ulrich Bayirli/Kammer <taylanbayirli@gmail.com>
3 ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
4 ;;; Copyright © 2014, 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
5 ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Alex Kost <alezost@gmail.com>
6 ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
7 ;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
8 ;;; Copyright © 2016, 2017, 2018 Chris Marusich <cmmarusich@gmail.com>
9 ;;; Copyright © 2015, 2016, 2018 Christopher Lemmer Webber <cwebber@dustycloud.org>
10 ;;; Copyright © 2016 Adriano Peluso <catonano@gmail.com>
11 ;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
12 ;;; Copyright © 2016 David Thompson <davet@gnu.org>
13 ;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
14 ;;; Copyright © 2016, 2017 Roel Janssen <roel@gnu.org>
15 ;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is>
16 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
17 ;;; Copyright © 2016, 2017, 2018, 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
18 ;;; Copyright © 2016, 2017, 2018 Alex Vong <alexvong1995@gmail.com>
19 ;;; Copyright © 2016, 2017, 2018 Arun Isaac <arunisaac@systemreboot.net>
20 ;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
21 ;;; Copyright © 2017, 2018 Mathieu Othacehe <m.othacehe@gmail.com>
22 ;;; Copyright © 2017, 2018, 2019 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, 2019 Pierre Neidhardt <mail@ambrevar.xyz>
38 ;;; Copyright © 2018, 2019 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
39 ;;; Copyright © 2018 Jack Hill <jackhill@jackhill.us>
40 ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
41 ;;; Copyright © 2018 Alex Branham <alex.branham@gmail.com>
42 ;;; Copyright © 2018 Thorsten Wilms <t_w_@freenet.de>
43 ;;; Copyright © 2018 Pierre Langlois <pierre.langlois@gmx.com>
44 ;;;
45 ;;; This file is part of GNU Guix.
46 ;;;
47 ;;; GNU Guix is free software; you can redistribute it and/or modify it
48 ;;; under the terms of the GNU General Public License as published by
49 ;;; the Free Software Foundation; either version 3 of the License, or (at
50 ;;; your option) any later version.
51 ;;;
52 ;;; GNU Guix is distributed in the hope that it will be useful, but
53 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
54 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
55 ;;; GNU General Public License for more details.
56 ;;;
57 ;;; You should have received a copy of the GNU General Public License
58 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
59
60 (define-module (gnu packages emacs-xyz)
61 #:use-module ((guix licenses) #:prefix license:)
62 #:use-module (guix packages)
63 #:use-module (guix cvs-download)
64 #:use-module (guix download)
65 #:use-module (guix git-download)
66 #:use-module (guix build-system gnu)
67 #:use-module (guix build-system cmake)
68 #:use-module (guix build-system emacs)
69 #:use-module (guix build-system glib-or-gtk)
70 #:use-module (guix build-system perl)
71 #:use-module (guix build-system trivial)
72 #:use-module (gnu packages)
73 #:use-module (gnu packages admin)
74 #:use-module (gnu packages audio)
75 #:use-module (gnu packages bash)
76 #:use-module (gnu packages cmake)
77 #:use-module (gnu packages code)
78 #:use-module (gnu packages databases)
79 #:use-module (gnu packages emacs)
80 #:use-module (gnu packages guile)
81 #:use-module (gnu packages gtk)
82 #:use-module (gnu packages gnome)
83 #:use-module (gnu packages ncurses)
84 #:use-module (gnu packages python)
85 #:use-module (gnu packages python-xyz)
86 #:use-module (gnu packages tex)
87 #:use-module (gnu packages texinfo)
88 #:use-module (gnu packages tcl)
89 #:use-module (gnu packages tls)
90 #:use-module (gnu packages pkg-config)
91 #:use-module (gnu packages xorg)
92 #:use-module (gnu packages lesstif)
93 #:use-module (gnu packages llvm)
94 #:use-module (gnu packages image)
95 #:use-module (gnu packages linux)
96 #:use-module (gnu packages libevent)
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 xiph)
113 #:use-module (gnu packages mp3)
114 #:use-module (gnu packages gettext)
115 #:use-module (gnu packages fribidi)
116 #:use-module (gnu packages gd)
117 #:use-module (gnu packages fontutils)
118 #:use-module (gnu packages password-utils)
119 #:use-module (gnu packages pulseaudio)
120 #:use-module (gnu packages xdisorg)
121 #:use-module (gnu packages shells)
122 #:use-module (gnu packages sqlite)
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 (guix utils)
128 #:use-module (srfi srfi-1)
129 #:use-module (ice-9 match))
130
131 ;;;
132 ;;; Emacs hacking.
133 ;;;
134
135 (define-public emacs-geiser
136 (package
137 (name "emacs-geiser")
138 (version "0.10")
139 (source (origin
140 (method url-fetch)
141 (uri (string-append "mirror://savannah/geiser/" version
142 "/geiser-" version ".tar.gz"))
143 (sha256
144 (base32
145 "0pj3l7p8d60c9b4vfprnv6g5l61d74pls4b5dvd84cn4ky9mzwjv"))))
146 (build-system gnu-build-system)
147 (arguments
148 '(#:phases
149 (modify-phases %standard-phases
150 (add-after 'install 'post-install
151 (lambda* (#:key outputs #:allow-other-keys)
152 (symlink "geiser-install.el"
153 (string-append (assoc-ref outputs "out")
154 "/share/emacs/site-lisp/"
155 "geiser-autoloads.el"))
156 #t)))))
157 (inputs `(("guile" ,guile-2.2)))
158 (native-inputs `(("emacs" ,emacs-minimal)))
159 (home-page "https://nongnu.org/geiser/")
160 (synopsis "Collection of Emacs modes for Guile and Racket hacking")
161 (description
162 "Geiser is a collection of Emacs major and minor modes that conspire with
163 one or more Scheme implementations to keep the Lisp Machine Spirit alive. The
164 continuously running Scheme interpreter takes the center of the stage in
165 Geiser. A bundle of Elisp shims orchestrates the dialog between the Scheme
166 implementation, Emacs and, ultimately, the schemer, giving them access to live
167 metadata.")
168 (license license:bsd-3)))
169
170 (define-public geiser
171 (deprecated-package "geiser" emacs-geiser))
172
173 (define-public emacs-paredit
174 (package
175 (name "emacs-paredit")
176 (version "24")
177 (source (origin
178 (method url-fetch)
179 (uri (string-append "http://mumble.net/~campbell/emacs/paredit-"
180 version ".el"))
181 (sha256
182 (base32
183 "0pp3n8q6kc70blqsaw0zlzp6bc327dpgdrjr0cnh7hqg1lras7ka"))))
184 (build-system emacs-build-system)
185 (home-page "http://mumble.net/~campbell/emacs/paredit/")
186 (synopsis "Emacs minor mode for editing parentheses")
187 (description
188 "ParEdit (paredit.el) is a minor mode for performing structured editing
189 of S-expression data. The typical example of this would be Lisp or Scheme
190 source code.
191
192 ParEdit helps **keep parentheses balanced** and adds many keys for moving
193 S-expressions and moving around in S-expressions. Its behavior can be jarring
194 for those who may want transient periods of unbalanced parentheses, such as
195 when typing parentheses directly or commenting out code line by line.")
196 (license license:gpl3+)))
197
198 (define-public paredit
199 (deprecated-package "paredit" emacs-paredit))
200
201 (define-public git-modes
202 (package
203 (name "emacs-git-modes")
204 (version "1.2.8")
205 (source (origin
206 (method url-fetch)
207 (uri (string-append
208 "https://github.com/magit/git-modes/archive/"
209 version ".tar.gz"))
210 (file-name (string-append name "-" version ".tar.gz"))
211 (sha256
212 (base32
213 "0h49f68yn0q4lg054adqii4qja1z2pzybm7nf4kvpq7fzjrzgv1q"))))
214 (build-system emacs-build-system)
215 (home-page "https://github.com/magit/git-modes")
216 (synopsis "Emacs major modes for Git configuration files")
217 (description
218 "This package provides Emacs major modes for editing various Git
219 configuration files, such as .gitattributes, .gitignore, and .git/config.")
220 (license license:gpl3+)))
221
222 (define-public git-modes/old-name
223 (deprecated-package "git-modes" git-modes))
224
225 (define-public emacs-with-editor
226 (package
227 (name "emacs-with-editor")
228 (version "2.8.0")
229 (source (origin
230 (method git-fetch)
231 (uri (git-reference
232 (url "https://github.com/magit/with-editor.git")
233 (commit (string-append "v" version))))
234 (file-name (git-file-name name version))
235 (sha256
236 (base32
237 "1bbzvxnjpxqyvi808isld025b3pcidn4r2xf8hnk9bmzcfdvdr6q"))))
238 (build-system emacs-build-system)
239 (propagated-inputs
240 `(("emacs-dash" ,emacs-dash)))
241 (home-page "https://github.com/magit/with-editor")
242 (synopsis "Emacs library for using Emacsclient as EDITOR")
243 (description
244 "This package provides an Emacs library to use the Emacsclient as
245 @code{$EDITOR} of child processes, making sure they know how to call home.
246 For remote processes a substitute is provided, which communicates with Emacs
247 on stdout instead of using a socket as the Emacsclient does.")
248 (license license:gpl3+)))
249
250 (define-public emacs-magit
251 (package
252 (name "emacs-magit")
253 (version "2.13.0")
254 (source (origin
255 (method url-fetch)
256 (uri (string-append
257 "https://github.com/magit/magit/releases/download/"
258 version "/magit-" version ".tar.gz"))
259 (sha256
260 (base32
261 "1ygaah3dd3nxpyd17297xgvdcgr7pgzzwlmpnmchki0kiwgg3sbc"))))
262 (build-system gnu-build-system)
263 (native-inputs `(("texinfo" ,texinfo)
264 ("emacs" ,emacs-minimal)))
265 (inputs
266 `(("git" ,git)
267 ("perl" ,perl)))
268 (propagated-inputs
269 `(("dash" ,emacs-dash)
270 ("ghub" ,emacs-ghub)
271 ("magit-popup" ,emacs-magit-popup)
272 ("with-editor" ,emacs-with-editor)))
273 (arguments
274 `(#:test-target "test"
275 #:tests? #f ; tests are not included in the release
276
277 #:make-flags
278 (list (string-append "PREFIX=" %output)
279 ;; Don't put .el files in a sub-directory.
280 (string-append "lispdir=" %output "/share/emacs/site-lisp")
281 (string-append "DASH_DIR="
282 (assoc-ref %build-inputs "dash")
283 "/share/emacs/site-lisp/guix.d/dash-"
284 ,(package-version emacs-dash))
285 (string-append "GHUB_DIR="
286 (assoc-ref %build-inputs "ghub")
287 "/share/emacs/site-lisp/guix.d/ghub-"
288 ,(package-version emacs-ghub))
289 (string-append "MAGIT_POPUP_DIR="
290 (assoc-ref %build-inputs "magit-popup")
291 "/share/emacs/site-lisp/guix.d/magit-popup-"
292 ,(package-version emacs-magit-popup))
293 (string-append "WITH_EDITOR_DIR="
294 (assoc-ref %build-inputs "with-editor")
295 "/share/emacs/site-lisp/guix.d/with-editor-"
296 ,(package-version emacs-with-editor)))
297
298 #:phases
299 (modify-phases %standard-phases
300 (delete 'configure)
301 (add-before
302 'build 'patch-exec-paths
303 (lambda* (#:key inputs #:allow-other-keys)
304 (let ((perl (assoc-ref inputs "perl")))
305 (substitute* "lisp/magit-sequence.el"
306 (("perl") (string-append perl "/bin/perl")))
307 #t))))))
308 (home-page "https://magit.vc/")
309 (synopsis "Emacs interface for the Git version control system")
310 (description
311 "With Magit, you can inspect and modify your Git repositories with Emacs.
312 You can review and commit the changes you have made to the tracked files, for
313 example, and you can browse the history of past changes. There is support for
314 cherry picking, reverting, merging, rebasing, and other common Git
315 operations.")
316 (license license:gpl3+)))
317
318 (define-public magit
319 (deprecated-package "magit" emacs-magit))
320
321 (define-public emacs-magit-svn
322 (package
323 (name "emacs-magit-svn")
324 (version "2.2.0")
325 (source (origin
326 (method url-fetch)
327 (uri (string-append
328 "https://github.com/magit/magit-svn/archive/"
329 version ".tar.gz"))
330 (file-name (string-append name "-" version ".tar.gz"))
331 (sha256
332 (base32
333 "1c3n377v436zaxamlsz04y1ahdhp96x1vd43zaryv4y10m02ba47"))))
334 (build-system trivial-build-system)
335 (native-inputs `(("emacs" ,emacs-minimal)
336 ("tar" ,tar)
337 ("gzip" ,gzip)))
338 (propagated-inputs `(("dash" ,emacs-dash)
339 ("with-editor" ,emacs-with-editor)
340 ("magit" ,emacs-magit)))
341 (arguments
342 `(#:modules ((guix build utils)
343 (guix build emacs-utils))
344
345 #:builder
346 (begin
347 (use-modules (guix build utils)
348 (guix build emacs-utils))
349
350 (let* ((tar (string-append (assoc-ref %build-inputs "tar")
351 "/bin/tar"))
352 (PATH (string-append (assoc-ref %build-inputs "gzip")
353 "/bin"))
354 (emacs (string-append (assoc-ref %build-inputs "emacs")
355 "/bin/emacs"))
356 (magit (string-append (assoc-ref %build-inputs "magit")
357 "/share/emacs/site-lisp"))
358 (dash (string-append (assoc-ref %build-inputs "dash")
359 "/share/emacs/site-lisp/guix.d/dash-"
360 ,(package-version emacs-dash)))
361 (with-editor (string-append (assoc-ref %build-inputs "with-editor")
362 "/share/emacs/site-lisp/guix.d/with-editor-"
363 ,(package-version emacs-with-editor)))
364 (source (assoc-ref %build-inputs "source"))
365 (lisp-dir (string-append %output "/share/emacs/site-lisp")))
366 (setenv "PATH" PATH)
367 (invoke tar "xvf" source)
368
369 (install-file (string-append "magit-svn-" ,version "/magit-svn.el")
370 lisp-dir)
371
372 (with-directory-excursion lisp-dir
373 (parameterize ((%emacs emacs))
374 (emacs-generate-autoloads ,name lisp-dir)
375 (setenv "EMACSLOADPATH"
376 (string-append ":" magit ":" dash ":" with-editor))
377 (emacs-batch-eval '(byte-compile-file "magit-svn.el"))))
378 #t))))
379 (home-page "https://github.com/magit/magit-svn")
380 (synopsis "Git-SVN extension to Magit")
381 (description
382 "This package is an extension to Magit, the Git Emacs mode, providing
383 support for Git-SVN.")
384 (license license:gpl3+)))
385
386 (define-public magit-svn
387 (deprecated-package "magit-svn" emacs-magit-svn))
388
389 (define-public emacs-magit-popup
390 (package
391 (name "emacs-magit-popup")
392 (version "2.12.5")
393 (source (origin
394 (method git-fetch)
395 (uri (git-reference
396 (url "https://github.com/magit/magit-popup.git")
397 (commit (string-append "v" version))))
398 (file-name (git-file-name name version))
399 (sha256
400 (base32
401 "13riknyqr6vxqll80sfhvz165flvdz367rbd0pr5slb01bnfsi2i"))))
402 (build-system emacs-build-system)
403 (arguments
404 `(#:phases
405 (modify-phases %standard-phases
406 (add-before 'install 'make-info
407 (lambda _
408 (invoke "make" "info"))))))
409 (native-inputs
410 `(("texinfo" ,texinfo)))
411 (propagated-inputs
412 `(("emacs-dash" ,emacs-dash)))
413 (home-page "https://github.com/magit/magit-popup")
414 (synopsis "Define prefix-infix-suffix command combos")
415 (description
416 "This library implements a generic interface for toggling switches and
417 setting options and then invoking an Emacs command which does something with
418 these arguments. The prototypical use is for the command to call an external
419 process, passing on the arguments as command line arguments.")
420 (license license:gpl3+)))
421
422 (define-public emacs-treepy
423 (package
424 (name "emacs-treepy")
425 (version "0.1.1")
426 (source (origin
427 (method git-fetch)
428 (uri (git-reference
429 (url "https://github.com/volrath/treepy.el.git")
430 (commit version)))
431 (file-name (git-file-name name version))
432 (sha256
433 (base32
434 "04zwm6gx9pxfvgfkizx6pvb1ql8pqxjyzqp8flz0432x0gq5nlxk"))))
435 (build-system emacs-build-system)
436 (home-page
437 "https://github.com/volrath/treepy.el")
438 (synopsis "Tree traversal tools")
439 (description
440 "Generic tools for recursive and iterative tree traversal based on
441 clojure.walk and clojure.zip respectively.")
442 (license license:gpl3+)))
443
444 (define-public emacs-graphql
445 (package
446 (name "emacs-graphql")
447 (version "0.1.1")
448 (source (origin
449 (modules '((guix build utils)))
450 ;; Remove examples file with references to external packages as
451 ;; they do not exist at compilation time.
452 (snippet
453 '(begin (delete-file "examples.el")
454 #t))
455 (method git-fetch)
456 (uri (git-reference
457 (url "https://github.com/vermiculus/graphql.el.git")
458 (commit version)))
459 (file-name (git-file-name name version))
460 (sha256
461 (base32
462 "0sp0skc1rnhi39szfbq1i99pdgd3bhn4c15cff05iqhjy2d4hniw"))))
463 (build-system emacs-build-system)
464 (home-page
465 "https://github.com/vermiculus/graphql.el")
466 (synopsis "GraphQL utilities")
467 (description
468 "GraphQL.el provides a generally-applicable domain-specific language for
469 creating and executing GraphQL queries against your favorite web services.
470 GraphQL is a data query language and runtime designed and used to request and
471 deliver data to mobile and web apps.")
472 (license license:gpl3+)))
473
474 (define-public emacs-ghub
475 (package
476 (name "emacs-ghub")
477 (version "2.0.1")
478 (source (origin
479 (method url-fetch)
480 (uri (string-append
481 "https://github.com/magit/ghub/archive/v"
482 version ".tar.gz"))
483 (file-name (string-append name "-" version ".tar.gz"))
484 (sha256
485 (base32
486 "0d0qj5r1bm2aidi61rigrdaycxnyb7y1ivb3h8rpvvapsf8sk7z0"))))
487 (build-system emacs-build-system)
488 (arguments
489 `(#:phases
490 (modify-phases %standard-phases
491 (add-before 'install 'make-info
492 (lambda _
493 (invoke "make" "info"))))))
494 (native-inputs
495 `(("texinfo" ,texinfo)))
496 (home-page "https://github.com/magit/ghub")
497 (synopsis "Emacs client library for Github API and Gitlab API")
498 (description
499 "This package provides 2 files: @file{ghub.el} and @file{glab.el},
500 which are the libraries that provide basic support for using the Github and
501 Gitlab APIs from Emacs packages. It abstracts access to API resources using
502 only a handful of functions that are not resource-specific.")
503 (license license:gpl3+)))
504
505 (define-public emacs-scribble-mode
506 (let ((commit "34e9e5edb921813b6483e0fefa848efb6ee4b314")
507 (version "0.0")
508 (revision 0))
509 (package
510 (name "emacs-scribble-mode")
511 (version (if (zero? revision)
512 version
513 (string-append version "-"
514 (number->string revision)
515 "." (string-take commit 7))))
516 (source (origin
517 (method git-fetch)
518 (uri (git-reference
519 (url "https://github.com/emacs-pe/scribble-mode.git")
520 (commit commit)))
521 (sha256
522 (base32
523 "0598byqpz2q6yi2q4dwd77jj9z3n99z34d3an51s9m2za0nh1qvp"))))
524 (build-system emacs-build-system)
525 (home-page "https://github.com/emacs-pe/scribble-mode")
526 (synopsis "Emacs mode for editing the Scribble documentation syntax.")
527 (description
528 "This package provides basic syntax highlighting and editing support
529 for editing Racket's Scribble documentation syntax in Emacs.")
530 (license license:gpl3+))))
531
532 (define-public emacs-haskell-mode
533 (package
534 (name "emacs-haskell-mode")
535 (version "16.1")
536 (source (origin
537 (method url-fetch)
538 (file-name (string-append name "-" version ".tar.gz"))
539 (uri (string-append
540 "https://github.com/haskell/haskell-mode/archive/v"
541 version ".tar.gz"))
542 (sha256
543 (base32 "0g6lcjw7lcgavv3yrd8xjcyqgfyjl787y32r1z14amw2f009m78h"))
544 (patches
545 (search-patches ; backport test failure fixes
546 "haskell-mode-unused-variables.patch"
547 "haskell-mode-make-check.patch"))))
548 (inputs
549 `(("emacs-el-search" ,emacs-el-search) ; for tests
550 ("emacs-stream" ,emacs-stream))) ; for tests
551 (propagated-inputs
552 `(("emacs-dash" ,emacs-dash)))
553 (native-inputs
554 `(("emacs" ,emacs-minimal)
555 ("texinfo" ,texinfo)))
556 (build-system gnu-build-system)
557 (arguments
558 `(#:make-flags (list (string-append "EMACS="
559 (assoc-ref %build-inputs "emacs")
560 "/bin/emacs"))
561 #:modules ((ice-9 match)
562 (srfi srfi-26)
563 ,@%gnu-build-system-modules)
564 #:phases
565 (modify-phases %standard-phases
566 (delete 'configure)
567 (add-before
568 'build 'pre-build
569 (lambda* (#:key inputs #:allow-other-keys)
570 (define (el-dir store-dir)
571 (match (find-files store-dir "\\.el$")
572 ((f1 f2 ...) (dirname f1))
573 (_ "")))
574
575 (let ((sh (string-append (assoc-ref inputs "bash") "/bin/sh")))
576 (define emacs-prefix? (cut string-prefix? "emacs-" <>))
577
578 (setenv "SHELL" "sh")
579 (setenv "EMACSLOADPATH"
580 (string-concatenate
581 (map (match-lambda
582 (((? emacs-prefix? name) . dir)
583 (string-append (el-dir dir) ":"))
584 (_ ""))
585 inputs)))
586 (substitute* (find-files "." "\\.el") (("/bin/sh") sh))
587 ;; embed filename to fix test failure
588 (let ((file "tests/haskell-cabal-tests.el"))
589 (substitute* file
590 (("\\(buffer-file-name\\)")
591 (format #f "(or (buffer-file-name) ~s)" file))))
592 #t)))
593 (replace
594 'install
595 (lambda* (#:key outputs #:allow-other-keys)
596 (let* ((out (assoc-ref outputs "out"))
597 (el-dir (string-append out "/share/emacs/site-lisp"))
598 (doc (string-append
599 out "/share/doc/haskell-mode-" ,version))
600 (info (string-append out "/share/info")))
601 (define (copy-to-dir dir files)
602 (for-each (lambda (f)
603 (install-file f dir))
604 files))
605
606 (with-directory-excursion "doc"
607 (invoke "makeinfo" "haskell-mode.texi")
608 (install-file "haskell-mode.info" info))
609 (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md"))
610 (copy-to-dir el-dir (find-files "." "\\.elc?"))
611 ;; These are part of other packages.
612 (with-directory-excursion el-dir
613 (for-each delete-file '("dash.el" "ert.el")))
614 #t))))))
615 (home-page "https://github.com/haskell/haskell-mode")
616 (synopsis "Haskell mode for Emacs")
617 (description
618 "This is an Emacs mode for editing, debugging and developing Haskell
619 programs.")
620 (license license:gpl3+)))
621
622 (define-public haskell-mode
623 (deprecated-package "haskell-mode" emacs-haskell-mode))
624
625 (define-public emacs-flycheck
626 (package
627 (name "emacs-flycheck")
628 (version "31")
629 (source (origin
630 (method url-fetch)
631 (uri (string-append
632 "https://github.com/flycheck/flycheck/releases/download/"
633 version "/flycheck-" version ".tar"))
634 (sha256
635 (base32
636 "01rnwan16m7cyyrfca3c5c60mbj2r3knkpzbhji2fczsf0wns240"))
637 (modules '((guix build utils)))
638 (snippet `(begin
639 ;; Change 'flycheck-version' so that it does not
640 ;; attempt to get its version from pkg-info.el.
641 (substitute* "flycheck.el"
642 (("\\(pkg-info-version-info 'flycheck\\)")
643 (string-append "\"" ,version "\"")))
644 #t))))
645 (build-system emacs-build-system)
646 (propagated-inputs
647 `(("emacs-dash" ,emacs-dash)))
648 (home-page "https://www.flycheck.org")
649 (synopsis "On-the-fly syntax checking")
650 (description
651 "This package provides on-the-fly syntax checking for GNU Emacs. It is a
652 replacement for the older Flymake extension which is part of GNU Emacs, with
653 many improvements and additional features.
654
655 Flycheck provides fully-automatic, fail-safe, on-the-fly background syntax
656 checking for over 30 programming and markup languages with more than 70
657 different tools. It highlights errors and warnings inline in the buffer, and
658 provides an optional IDE-like error list.")
659 (license license:gpl3+))) ;+GFDLv1.3+ for the manual
660
661 (define-public emacs-a
662 (package
663 (name "emacs-a")
664 (version "0.1.1")
665 (source (origin
666 (method git-fetch)
667 (uri (git-reference
668 (url "https://github.com/plexus/a.el.git")
669 (commit (string-append "v" version))))
670 (file-name (git-file-name name version))
671 (sha256
672 (base32
673 "00v9w6qg3bkwdhypq0ssf0phdh0f4bcq59c20lngd6vhk0204dqi"))))
674 (build-system emacs-build-system)
675 (home-page "https://github.com/plexus/a.el/")
676 (synopsis
677 "Emacs library for dealing with association lists and hash tables")
678 (description "@code{emacs-a} provides Emacs Lisp functions for dealing
679 with associative structures in a uniform and functional way. These functions
680 can take association lists, hash tables, and in some cases vectors (where the
681 index is considered the key).")
682 (license license:gpl3+)))
683
684 (define-public emacs-anaphora
685 (package
686 (name "emacs-anaphora")
687 (version "1.0.4")
688 (source
689 (origin
690 (method git-fetch)
691 (uri (git-reference
692 (url "https://github.com/rolandwalker/anaphora.git")
693 (commit (string-append "v" version))))
694 (file-name (git-file-name name version))
695 (sha256
696 (base32
697 "11fgiy029sqz7nvdm7dcal95lacryz9zql0x5h05z48nrrcl4bib"))))
698 (build-system emacs-build-system)
699 (home-page "https://github.com/rolandwalker/anaphora/")
700 (synopsis "Anaphoric expressions for Emacs Lisp")
701 (description "@code{emacs-anaphora} implements anaphoric expressions for
702 Emacs Lisp.
703
704 Anaphoric expressions implicitly create one or more temporary variables which
705 can be referred to during the expression. This technique can improve clarity
706 in certain cases. It also enables recursion for anonymous functions.")
707 (license license:public-domain)))
708
709 \f
710 ;;;
711 ;;; Web browsing.
712 ;;;
713
714 (define-public emacs-w3m
715 ;; Emacs-w3m follows a "rolling release" model.
716 (package
717 (name "emacs-w3m")
718 (version "2018-11-11")
719 (source (origin
720 (method cvs-fetch)
721 (uri (cvs-reference
722 (root-directory
723 ":pserver:anonymous@cvs.namazu.org:/storage/cvsroot")
724 (module "emacs-w3m")
725 (revision version)))
726 (file-name (string-append name "-" version "-checkout"))
727 (sha256
728 (base32
729 "0nvahdbjs12zg7zsk4gql02mvnv56cf1rwj2f5p42lwp3xvswiwp"))))
730 (build-system gnu-build-system)
731 (native-inputs `(("autoconf" ,autoconf)
732 ("texinfo" ,texinfo)
733 ("emacs" ,emacs-minimal)))
734 (inputs `(("w3m" ,w3m)
735 ("imagemagick" ,imagemagick)))
736 (arguments
737 `(#:modules ((guix build gnu-build-system)
738 (guix build utils)
739 (guix build emacs-utils))
740 #:imported-modules (,@%gnu-build-system-modules
741 (guix build emacs-utils))
742 #:configure-flags
743 (let ((out (assoc-ref %outputs "out")))
744 (list (string-append "--with-lispdir="
745 out "/share/emacs/site-lisp")
746 (string-append "--with-icondir="
747 out "/share/images/emacs-w3m")
748 ;; Leave .el files uncompressed, otherwise GC can't
749 ;; identify run-time dependencies. See
750 ;; <http://lists.gnu.org/archive/html/guix-devel/2015-12/msg00208.html>
751 "--without-compress-install"))
752 #:tests? #f ; no check target
753 #:phases
754 (modify-phases %standard-phases
755 (add-after 'unpack 'autoconf
756 (lambda _
757 (invoke "autoconf")))
758 (add-before 'configure 'support-emacs!
759 (lambda _
760 ;; For some reason 'AC_PATH_EMACS' thinks that 'Emacs 26' is
761 ;; unsupported.
762 (substitute* "configure"
763 (("EMACS_FLAVOR=unsupported")
764 "EMACS_FLAVOR=emacs"))
765 #t))
766 (add-before 'build 'patch-exec-paths
767 (lambda* (#:key inputs outputs #:allow-other-keys)
768 (let ((out (assoc-ref outputs "out"))
769 (w3m (assoc-ref inputs "w3m"))
770 (imagemagick (assoc-ref inputs "imagemagick"))
771 (coreutils (assoc-ref inputs "coreutils")))
772 (make-file-writable "w3m.el")
773 (emacs-substitute-variables "w3m.el"
774 ("w3m-command" (string-append w3m "/bin/w3m"))
775 ("w3m-touch-command"
776 (string-append coreutils "/bin/touch"))
777 ("w3m-icon-directory"
778 (string-append out "/share/images/emacs-w3m")))
779 (make-file-writable "w3m-image.el")
780 (emacs-substitute-variables "w3m-image.el"
781 ("w3m-imagick-convert-program"
782 (string-append imagemagick "/bin/convert"))
783 ("w3m-imagick-identify-program"
784 (string-append imagemagick "/bin/identify")))
785 #t)))
786 (replace 'install
787 (lambda* (#:key outputs #:allow-other-keys)
788 (invoke "make" "install" "install-icons")
789 (with-directory-excursion
790 (string-append (assoc-ref outputs "out")
791 "/share/emacs/site-lisp")
792 (for-each delete-file '("ChangeLog" "ChangeLog.1"))
793 (symlink "w3m-load.el" "w3m-autoloads.el")
794 #t))))))
795 (home-page "http://emacs-w3m.namazu.org/")
796 (synopsis "Simple Web browser for Emacs based on w3m")
797 (description
798 "Emacs-w3m is an emacs interface for the w3m web browser.")
799 (license license:gpl2+)))
800
801 (define-public emacs-wget
802 (package
803 (name "emacs-wget")
804 (version "0.5.0")
805 (source (origin
806 (method url-fetch)
807 (uri (string-append "mirror://debian/pool/main/w/wget-el/wget-el_"
808 version ".orig.tar.gz"))
809 (sha256
810 (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff"))))
811 (build-system gnu-build-system)
812 (inputs `(("wget" ,wget)))
813 (native-inputs `(("emacs" ,emacs-minimal)))
814 (arguments
815 `(#:modules ((guix build gnu-build-system)
816 (guix build utils)
817 (guix build emacs-utils))
818 #:imported-modules (,@%gnu-build-system-modules
819 (guix build emacs-utils))
820 #:tests? #f ; no check target
821 #:phases
822 (modify-phases %standard-phases
823 (replace 'configure
824 (lambda* (#:key outputs #:allow-other-keys)
825 (substitute* "Makefile"
826 (("/usr/local") (assoc-ref outputs "out"))
827 (("/site-lisp/emacs-wget") "/site-lisp"))
828 #t))
829 (add-before 'build 'patch-exec-paths
830 (lambda* (#:key inputs outputs #:allow-other-keys)
831 (let ((wget (assoc-ref inputs "wget")))
832 (emacs-substitute-variables "wget.el"
833 ("wget-command" (string-append wget "/bin/wget"))))
834 #t))
835 (add-after 'install 'post-install
836 (lambda* (#:key outputs #:allow-other-keys)
837 (emacs-generate-autoloads
838 "wget" (string-append (assoc-ref outputs "out")
839 "/share/emacs/site-lisp/"))
840 #t)))))
841 (home-page "http://www.emacswiki.org/emacs/EmacsWget")
842 (synopsis "Simple file downloader for Emacs based on wget")
843 (description
844 "Emacs-wget is an emacs interface for the wget file downloader.")
845 (license license:gpl2+)))
846
847 \f
848 ;;;
849 ;;; Multimedia.
850 ;;;
851
852 (define-public emacs-emms
853 (package
854 (name "emacs-emms")
855 (version "5.1")
856 (source (origin
857 (method url-fetch)
858 (uri (string-append "mirror://gnu/emms/emms-"
859 version ".tar.gz"))
860 (sha256
861 (base32
862 "149ddczyx6x10zn4mn8g0rll1rwf4yciv8x6j0qdnlbwszblx2x6"))
863 (modules '((guix build utils)))
864 (snippet
865 '(begin
866 (substitute* "Makefile"
867 (("/usr/bin/install-info")
868 ;; No need to use 'install-info' since it would create a
869 ;; useless 'dir' file.
870 "true")
871 (("^INFODIR=.*")
872 ;; Install Info files to $out/share/info, not $out/info.
873 "INFODIR := $(PREFIX)/share/info\n")
874 (("/site-lisp/emms")
875 ;; Install directly in share/emacs/site-lisp, not in a
876 ;; sub-directory.
877 "/site-lisp")
878 (("^all: (.*)\n" _ rest)
879 ;; Build 'emms-print-metadata'.
880 (string-append "all: " rest " emms-print-metadata\n")))
881 #t))))
882 (build-system gnu-build-system)
883 (arguments
884 `(#:modules ((guix build gnu-build-system)
885 (guix build utils)
886 (guix build emacs-utils)
887 (ice-9 ftw))
888 #:imported-modules (,@%gnu-build-system-modules
889 (guix build emacs-utils))
890
891 #:phases
892 (modify-phases %standard-phases
893 (replace 'configure
894 (lambda* (#:key inputs outputs #:allow-other-keys)
895 (let ((out (assoc-ref outputs "out"))
896 (flac (assoc-ref inputs "flac"))
897 (vorbis (assoc-ref inputs "vorbis-tools"))
898 (alsa (assoc-ref inputs "alsa-utils"))
899 (mpg321 (assoc-ref inputs "mpg321"))
900 (mp3info (assoc-ref inputs "mp3info"))
901 (opus (assoc-ref inputs "opus-tools")))
902 ;; Specify the installation directory.
903 (substitute* "Makefile"
904 (("PREFIX=.*$")
905 (string-append "PREFIX := " out "\n")))
906
907 (setenv "SHELL" (which "sh"))
908 (setenv "CC" "gcc")
909
910 ;; Specify the absolute file names of the various
911 ;; programs so that everything works out-of-the-box.
912 (with-directory-excursion "lisp"
913 (emacs-substitute-variables
914 "emms-player-mpg321-remote.el"
915 ("emms-player-mpg321-remote-command"
916 (string-append mpg321 "/bin/mpg321")))
917 (substitute* "emms-player-simple.el"
918 (("\"ogg123\"")
919 (string-append "\"" vorbis "/bin/ogg123\"")))
920 (substitute* "emms-player-simple.el"
921 (("\"mpg321\"")
922 (string-append "\"" mpg321 "/bin/mpg321\"")))
923 (emacs-substitute-variables "emms-info-ogginfo.el"
924 ("emms-info-ogginfo-program-name"
925 (string-append vorbis "/bin/ogginfo")))
926 (emacs-substitute-variables "emms-info-opusinfo.el"
927 ("emms-info-opusinfo-program-name"
928 (string-append opus "/bin/opusinfo")))
929 (emacs-substitute-variables "emms-info-libtag.el"
930 ("emms-info-libtag-program-name"
931 (string-append out "/bin/emms-print-metadata")))
932 (emacs-substitute-variables "emms-info-mp3info.el"
933 ("emms-info-mp3info-program-name"
934 (string-append mp3info "/bin/mp3info")))
935 (emacs-substitute-variables "emms-info-metaflac.el"
936 ("emms-info-metaflac-program-name"
937 (string-append flac "/bin/metaflac")))
938 (emacs-substitute-variables "emms-source-file.el"
939 ("emms-source-file-gnu-find" (which "find")))
940 (substitute* "emms-volume-amixer.el"
941 (("\"amixer\"")
942 (string-append "\"" alsa "/bin/amixer\"")))
943 (substitute* "emms-tag-editor.el"
944 (("\"mp3info\"")
945 (string-append "\"" mp3info "/bin/mp3info\"")))))))
946 (add-before 'install 'pre-install
947 (lambda* (#:key outputs #:allow-other-keys)
948 ;; The 'install' rule expects the target directories to exist.
949 (let* ((out (assoc-ref outputs "out"))
950 (bin (string-append out "/bin"))
951 (man1 (string-append out "/share/man/man1")))
952 (mkdir-p bin)
953 (mkdir-p man1)
954
955 ;; Ensure that files are not rejected by gzip
956 (let ((early-1980 315619200)) ; 1980-01-02 UTC
957 (ftw "." (lambda (file stat flag)
958 (unless (<= early-1980 (stat:mtime stat))
959 (utime file early-1980 early-1980))
960 #t)))
961 #t)))
962 (add-after 'install 'post-install
963 (lambda* (#:key outputs #:allow-other-keys)
964 (let ((out (assoc-ref outputs "out")))
965 (symlink "emms-auto.el"
966 (string-append out "/share/emacs/site-lisp/"
967 "emms-autoloads.el")))
968 #t)))
969 #:tests? #f))
970 (native-inputs `(("emacs" ,emacs-minimal) ;for (guix build emacs-utils)
971 ("texinfo" ,texinfo)))
972 (inputs `(("alsa-utils" ,alsa-utils)
973 ("flac" ,flac) ;for metaflac
974 ("vorbis-tools" ,vorbis-tools)
975 ("mpg321" ,mpg321)
976 ("taglib" ,taglib)
977 ("mp3info" ,mp3info)
978 ("opus-tools" ,opus-tools)))
979 (properties '((upstream-name . "emms")))
980 (synopsis "Emacs Multimedia System")
981 (description
982 "EMMS is the Emacs Multimedia System. It is a small front-end which
983 can control one of the supported external players. Thus, it supports
984 whatever formats are supported by your music player. It also
985 supports tagging and playlist management, all behind a clean and
986 light user interface.")
987 (home-page "https://www.gnu.org/software/emms/")
988 (license license:gpl3+)))
989
990 (define-public emacs-emms-player-mpv
991 ;; A new mpv backend is included in Emms from 5.0.
992 (deprecated-package "emacs-emms-player-mpv" emacs-emms))
993
994 (define-public emacs-emms-mode-line-cycle
995 (package
996 (name "emacs-emms-mode-line-cycle")
997 (version "0.2.5")
998 (source
999 (origin
1000 (method url-fetch)
1001 (uri (string-append "https://github.com/momomo5717/emms-mode-line-cycle"
1002 "/archive/" version ".tar.gz"))
1003 (file-name (string-append name "-" version ".tar.gz"))
1004 (sha256
1005 (base32
1006 "0ifszi930pnaxk1x8pcydmvnp06868gc7nfx14q17zbajbx735k6"))))
1007 (build-system emacs-build-system)
1008 (propagated-inputs
1009 `(("emms" ,emacs-emms)))
1010 (home-page "https://github.com/momomo5717/emms-mode-line-cycle")
1011 (synopsis "Display the EMMS mode line as a ticker")
1012 (description
1013 "This is a minor mode for updating the EMMS mode-line string cyclically
1014 within a specified width. It is useful for displaying long track titles.")
1015 (license license:gpl3+)))
1016
1017 \f
1018 ;;;
1019 ;;; Miscellaneous.
1020 ;;;
1021
1022 (define-public emacs-bbdb
1023 (package
1024 (name "emacs-bbdb")
1025 (version "3.1.2")
1026 (source (origin
1027 (method url-fetch)
1028 (uri (string-append "mirror://savannah/bbdb/bbdb-"
1029 version ".tar.gz"))
1030 (sha256
1031 (base32
1032 "1gs16bbpiiy01w9pyg12868r57kx1v3hnw04gmqsmpc40l1hyy05"))
1033 (modules '((guix build utils)))
1034 (snippet
1035 ;; We don't want to build and install the PDF.
1036 '(begin
1037 (substitute* "doc/Makefile.in"
1038 (("^doc_DATA = .*$")
1039 "doc_DATA =\n"))
1040 #t))))
1041 (build-system gnu-build-system)
1042 (arguments
1043 '(#:phases
1044 (modify-phases %standard-phases
1045 (add-after 'install 'post-install
1046 (lambda* (#:key outputs #:allow-other-keys)
1047 ;; Add an autoloads file with the right name for guix.el.
1048 (let* ((out (assoc-ref outputs "out"))
1049 (site (string-append out "/share/emacs/site-lisp")))
1050 (with-directory-excursion site
1051 (symlink "bbdb-loaddefs.el" "bbdb-autoloads.el")))
1052 #t)))))
1053 (native-inputs `(("emacs" ,emacs-minimal)))
1054 (home-page "https://savannah.nongnu.org/projects/bbdb/")
1055 (synopsis "Contact management utility for Emacs")
1056 (description
1057 "BBDB is the Insidious Big Brother Database for GNU Emacs. It provides
1058 an address book for email and snail mail addresses, phone numbers and the
1059 like. It can be linked with various Emacs mail clients (Message and Mail
1060 mode, Rmail, Gnus, MH-E, and VM). BBDB is fully customizable.")
1061 (license license:gpl3+)))
1062
1063 (define-public bbdb
1064 (deprecated-package "bbdb" emacs-bbdb))
1065
1066 (define-public emacs-aggressive-indent
1067 (package
1068 (name "emacs-aggressive-indent")
1069 (version "1.8.3")
1070 (source (origin
1071 (method url-fetch)
1072 (uri (string-append "https://elpa.gnu.org/packages/"
1073 "aggressive-indent-" version ".el"))
1074 (sha256
1075 (base32
1076 "0jnzccl50x0wapprgwxinp99pwwa6j43q6msn4gv437j7swy8wnj"))))
1077 (build-system emacs-build-system)
1078 (home-page "https://elpa.gnu.org/packages/aggressive-indent.html")
1079 (synopsis "Minor mode to aggressively keep your code always indented")
1080 (description
1081 "@code{aggressive-indent-mode} is a minor mode that keeps your code
1082 always indented. It reindents after every change, making it more reliable
1083 than @code{electric-indent-mode}.")
1084 (license license:gpl2+)))
1085
1086 (define-public emacs-ag
1087 (package
1088 (name "emacs-ag")
1089 (version "0.47")
1090 (source (origin
1091 (method url-fetch)
1092 (uri (string-append
1093 "https://github.com/Wilfred/ag.el/archive/"
1094 version ".tar.gz"))
1095 (file-name (string-append name "-" version ".tar.gz"))
1096 (sha256
1097 (base32
1098 "1rlmp6wnyhqfg86dbz17r914msp58favn4kd4yrdwyia265a4lar"))))
1099 (build-system emacs-build-system)
1100 (arguments
1101 `(#:phases
1102 (modify-phases %standard-phases
1103 (add-before 'install 'make-info
1104 (lambda _
1105 (with-directory-excursion "docs"
1106 (invoke "make" "info"))))
1107 (add-after 'install 'install-info
1108 (lambda* (#:key outputs #:allow-other-keys)
1109 (let* ((out (assoc-ref outputs "out"))
1110 (info (string-append out "/share/info")))
1111 (install-file "docs/_build/texinfo/agel.info" info)
1112 #t))))))
1113 (native-inputs
1114 `(("python-sphinx" ,python-sphinx)
1115 ("texinfo" ,texinfo)))
1116 (propagated-inputs
1117 `(("dash" ,emacs-dash)
1118 ("s" ,emacs-s)
1119 ;; We need to use 'ag' as the executable on remote systems.
1120 ("the-silver-searcher" ,the-silver-searcher)))
1121 (home-page "https://github.com/Wilfred/ag.el")
1122 (synopsis "Front-end for ag (the-silver-searcher) for Emacs")
1123 (description "This package provides the ability to use the silver
1124 searcher, a code searching tool, sometimes abbreviated to @code{ag}. Features
1125 include version control system awareness, use of Perl compatible regular
1126 expressions, editing the search results directly and searching file names
1127 rather than the contents of files.")
1128 (license license:gpl3+)))
1129
1130 (define-public emacs-async
1131 (package
1132 (name "emacs-async")
1133 (home-page "https://github.com/jwiegley/emacs-async")
1134 (version "1.9.3")
1135 (source (origin
1136 (method git-fetch)
1137 (uri (git-reference
1138 (url home-page)
1139 (commit (string-append "v" version))))
1140 (file-name (git-file-name name version))
1141 (sha256
1142 (base32
1143 "1zsnb6dy8p6y68xgidv3dfxaga4biramfw8fq7wac0sc50vc98vq"))))
1144 (build-system emacs-build-system)
1145 (synopsis "Asynchronous processing in Emacs")
1146 (description
1147 "This package provides the ability to call asynchronous functions and
1148 processes. For example, it can be used to run dired commands (for copying,
1149 moving, etc.) asynchronously using @code{dired-async-mode}. Also it is used
1150 as a library for other Emacs packages.")
1151 (license license:gpl3+)))
1152
1153 (define-public emacs-auctex
1154 (package
1155 (name "emacs-auctex")
1156 (version "12.1.0")
1157 (source
1158 (origin
1159 (method url-fetch)
1160 (uri (string-append
1161 "https://elpa.gnu.org/packages/auctex-"
1162 version
1163 ".tar"))
1164 (sha256
1165 (base32
1166 "0iy5x61xqkxaph2hq64sg50l1c6yp6qhzppwadayxkdz00b46sas"))))
1167 (build-system emacs-build-system)
1168 ;; We use 'emacs' because AUCTeX requires dbus at compile time
1169 ;; ('emacs-minimal' does not provide dbus).
1170 (arguments
1171 `(#:emacs ,emacs
1172 #:include '("\\.el$" "^images/" "^latex/" "\\.info$")
1173 #:exclude '("^tests/" "^latex/README")))
1174 (native-inputs
1175 `(("perl" ,perl)))
1176 (home-page "https://www.gnu.org/software/auctex/")
1177 (synopsis "Integrated environment for TeX")
1178 (description
1179 "AUCTeX is a comprehensive customizable integrated environment for
1180 writing input files for TeX, LaTeX, ConTeXt, Texinfo, and docTeX using Emacs
1181 or XEmacs.")
1182 (license license:gpl3+)))
1183
1184 (define-public emacs-autothemer
1185 (package
1186 (name "emacs-autothemer")
1187 (version "0.2.2")
1188 (source
1189 (origin
1190 (method url-fetch)
1191 (uri (string-append "https://github.com/sebastiansturm/autothemer/archive/"
1192 version ".tar.gz"))
1193 (file-name (string-append name "-" version ".tar.gz"))
1194 (sha256
1195 (base32
1196 "0rd28r9wfrbll212am4ih9hrvypx785aff76va2cbfxdwm9kixsa"))))
1197 (build-system emacs-build-system)
1198 (propagated-inputs
1199 `(("emacs-dash" ,emacs-dash)))
1200 (home-page "https://github.com/sebastiansturm/autothemer")
1201 (synopsis "Conveniently create Emacs themes")
1202 (description
1203 "Autothemer provides a thin layer on top of @code{deftheme} and
1204 @code{custom-theme-set-faces} that creates a new custom color theme, based on
1205 a set of simplified face specifications and a user-supplied color palette")
1206 (license license:gpl3+)))
1207
1208 (define-public emacs-howm
1209 (package
1210 (name "emacs-howm")
1211 (version "1.4.4")
1212 (source
1213 (origin
1214 (method url-fetch)
1215 (uri (string-append "http://howm.sourceforge.jp/a/howm-"
1216 version ".tar.gz"))
1217 (sha256
1218 (base32
1219 "0ddm91l6z58j7x59fa966j6q1rg4cinyza4r8ibg80hprn5h31qk"))))
1220 (build-system gnu-build-system)
1221 (native-inputs
1222 `(("emacs" ,emacs-minimal)))
1223 (arguments
1224 `(#:configure-flags
1225 (list (string-append "--with-howmdir=" %output
1226 "/share/emacs/site-lisp/guix.d/howm-" ,version))
1227 #:modules ((guix build gnu-build-system)
1228 ((guix build emacs-build-system) #:prefix emacs:)
1229 (guix build utils))
1230 #:imported-modules (,@%gnu-build-system-modules
1231 (guix build emacs-build-system)
1232 (guix build emacs-utils))
1233 #:phases
1234 (modify-phases %standard-phases
1235 (add-after 'install 'make-autoloads
1236 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
1237 (home-page "http://howm.osdn.jp/")
1238 (synopsis "Note-taking tool for Emacs")
1239 (description "Howm is a note-taking tool for Emacs. Like
1240 code@{emacs-wiki.el}, it facilitates using hyperlinks and doing full-text
1241 searches. Unlike code@{emacs-wiki.el}, it can be combined with any format.")
1242 (license license:gpl1+)))
1243
1244 (define-public emacs-calfw
1245 (package
1246 (name "emacs-calfw")
1247 (version "1.6")
1248 (source
1249 (origin
1250 (method url-fetch)
1251 (uri (string-append
1252 "https://github.com/kiwanami/emacs-calfw/archive/v"
1253 version ".tar.gz"))
1254 (file-name (string-append name "-" version ".tar.gz"))
1255 (sha256
1256 (base32
1257 "1zr91xr0f1xfcv78yxka8vs5ximmq2ixmqf2pkb57kwwnxlypq4i"))))
1258 (build-system emacs-build-system)
1259 (propagated-inputs
1260 `(("emacs-howm" ,emacs-howm)))
1261 (home-page "https://github.com/kiwanami/emacs-calfw/")
1262 (synopsis "Calendar framework for Emacs")
1263 (description
1264 "This package displays a calendar view with various schedule data in the
1265 Emacs buffer.")
1266 (license license:gpl3+)))
1267
1268 (define-public emacs-direnv
1269 (package
1270 (name "emacs-direnv")
1271 (version "1.2.0")
1272 (source
1273 (origin
1274 (method url-fetch)
1275 (uri (string-append
1276 "https://github.com/wbolster/emacs-direnv/archive/"
1277 version ".tar.gz"))
1278 (file-name (string-append name "-" version ".tar.gz"))
1279 (sha256
1280 (base32
1281 "0m9nxawklhiiysyibzzhh2zkxgq1fskqvaqb06f7r8dnhabfy9fr"))))
1282 (build-system emacs-build-system)
1283 (propagated-inputs
1284 `(("dash" ,emacs-dash)
1285 ("with-editor" ,emacs-with-editor)))
1286 (home-page "https://github.com/wbolster/emacs-direnv")
1287 (synopsis "Direnv integration for Emacs")
1288 (description
1289 "This package provides support for invoking direnv to get the environment
1290 for the current file and updating the environment within Emacs to match.
1291
1292 Direnv can be invoked manually, and a global minor mode is included that will
1293 update the environment when the active buffer changes.
1294
1295 Using emacs-direnv means that programs started from Emacs will use the
1296 environment set through Direnv.")
1297 (license license:gpl3+)))
1298
1299 (define-public emacs-ggtags
1300 (package
1301 (name "emacs-ggtags")
1302 (version "0.8.13")
1303 (source
1304 (origin
1305 (method url-fetch)
1306 (uri (string-append "http://elpa.gnu.org/packages/ggtags-"
1307 version ".el"))
1308 (sha256
1309 (base32
1310 "1qa7lcrcmf76sf6dy8sxbg4adq7rg59fm0n5848w3qxgsr0h45fg"))))
1311 (build-system emacs-build-system)
1312 (inputs
1313 `(("global" ,global)))
1314 (arguments
1315 `(#:phases
1316 (modify-phases %standard-phases
1317 (add-after 'unpack 'configure
1318 (lambda* (#:key inputs #:allow-other-keys)
1319 (chmod "ggtags.el" #o644)
1320 (emacs-substitute-variables "ggtags.el"
1321 ("ggtags-executable-directory"
1322 (string-append (assoc-ref inputs "global") "/bin")))
1323 #t)))))
1324 (home-page "https://github.com/leoliu/ggtags")
1325 (synopsis "Frontend to the GNU Global source code tagging system")
1326 (description "@code{ggtags} provides a frontend to the GNU Global source
1327 code tagging system.
1328
1329 Features:
1330
1331 @itemize
1332 @item Build on @code{compile.el} for asynchronicity and its large feature-set.
1333 @item Automatically update Global's tag files when needed with tuning for
1334 large source trees.
1335 @item Intuitive navigation among multiple matches with mode-line display of
1336 current match, total matches and exit status.
1337 @item Read tag with completion.
1338 @item Show definition at point.
1339 @item Jump to #include files.
1340 @item Support search history and saving a search to register/bookmark.
1341 @item Query replace.
1342 @item Manage Global's environment variables on a per-project basis.
1343 @item Highlight (definition) tag at point.
1344 @item Abbreviated display of file names.
1345 @item Support all Global search backends: @code{grep}, @code{idutils}, etc.
1346 @item Support exuberant ctags @url{http://ctags.sourceforge.net/} and
1347 @code{pygments} backend.
1348 @item Support all Global's output formats: @code{grep}, @code{ctags-x},
1349 @code{cscope} etc.
1350 @item Support projects on remote hosts (e.g. via @code{tramp}).
1351 @item Support eldoc.
1352 @item Search @code{GTAGSLIBPATH} for references and symbols.
1353 @end itemize\n")
1354 (license license:gpl3+)))
1355
1356 (define-public emacs-go-mode
1357 (package
1358 (name "emacs-go-mode")
1359 (version "1.5.0")
1360 (source (origin
1361 (method git-fetch)
1362 (uri (git-reference
1363 (url "https://github.com/dominikh/go-mode.el.git")
1364 (commit (string-append "v" version))))
1365 (file-name (git-file-name name version))
1366 (sha256
1367 (base32
1368 "1nd2h50yb0493wvf1h7fzplq45rmqn2w7kxpgnlxzhkvq99v8vzf"))))
1369 (build-system emacs-build-system)
1370 (arguments
1371 `(#:phases
1372 (modify-phases %standard-phases
1373 (add-after 'unpack 'make-writable
1374 (lambda _
1375 (for-each make-file-writable (find-files "." "\\.el$"))
1376 #t)))))
1377 (home-page "https://github.com/dominikh/go-mode.el")
1378 (synopsis "Go mode for Emacs")
1379 (description
1380 "This package provides go-mode, an Emacs mode for working with software
1381 written in the Go programming language.")
1382 (license license:bsd-3)))
1383
1384 (define-public emacs-google-maps
1385 (package
1386 (name "emacs-google-maps")
1387 (version "1.0.0")
1388 (source (origin
1389 (method url-fetch)
1390 (uri (string-append "https://github.com/jd/google-maps.el/"
1391 "archive/" version ".tar.gz"))
1392 (file-name (string-append name "-" version ".tar.gz"))
1393 (sha256
1394 (base32
1395 "014bxapm4d8vjxbzrfjdpsavxyfx981mlcb10aq5rmigr6il8ybs"))))
1396 (build-system emacs-build-system)
1397 (home-page "https://github.com/jd/google-maps.el")
1398 (synopsis "Access Google Maps from Emacs")
1399 (description "The @code{google-maps} package allows to display Google
1400 Maps directly inside Emacs.")
1401 (license license:gpl3+)))
1402
1403 (define-public emacs-graphviz-dot-mode
1404 (let ((commit "c456a2b65c734089e6c44e87209a5a432a741b1a")
1405 (revision "1"))
1406 (package
1407 (name "emacs-graphviz-dot-mode")
1408 (version (string-append "0.3.11-" revision "."
1409 (string-take commit 7)))
1410 (source (origin
1411 (method git-fetch)
1412 (uri (git-reference
1413 (url "https://github.com/ppareit/graphviz-dot-mode.git")
1414 (commit commit)))
1415 (file-name (string-append name "-" version "-checkout"))
1416 (sha256
1417 (base32
1418 "0j1r2rspaakw37b0mx7pwpvdsvixq9sw3xjbww5piihzpdxz58z1"))))
1419 (build-system emacs-build-system)
1420 (arguments
1421 `(#:phases
1422 (modify-phases %standard-phases
1423 (add-before 'install 'make-info
1424 (lambda* (#:key inputs #:allow-other-keys)
1425 (with-directory-excursion "texinfo"
1426 (substitute* "Makefile"
1427 (("\\/usr\\/bin\\/gzip")
1428 (string-append (assoc-ref inputs "gzip") "/bin/gzip")))
1429 (invoke "make"
1430 "clean"
1431 "info"
1432 (string-append "TEXINFODIR="
1433 (assoc-ref inputs "texinfo")
1434 "/bin")))))
1435 (add-after 'install 'install-info
1436 (lambda* (#:key outputs #:allow-other-keys)
1437 (let* ((out (assoc-ref outputs "out"))
1438 (info (string-append out "/share/info")))
1439 (install-file "texinfo/graphviz-dot-mode.info.gz" info)
1440 #t))))))
1441 (native-inputs
1442 `(("texinfo" ,texinfo)
1443 ("gzip" ,gzip)))
1444 (home-page "http://ppareit.github.com/graphviz-dot-mode")
1445 (synopsis "Major mode for editing Graphviz Dot files")
1446 (description
1447 "This Emacs packages helps you to create @file{.dot} or @file{.gv}
1448 files using the dot syntax, and use Graphviz to convert these files to
1449 diagrams.")
1450 (license license:gpl2+))))
1451
1452 (define-public emacs-mmm-mode
1453 (package
1454 (name "emacs-mmm-mode")
1455 (version "0.5.5")
1456 (source
1457 (origin
1458 (method url-fetch)
1459 (uri (string-append
1460 "https://github.com/purcell/mmm-mode/archive/"
1461 version ".tar.gz"))
1462 (file-name (string-append name "-" version ".tar.gz"))
1463 (sha256
1464 (base32
1465 "0c5ing3hcr74k78hqhrfwiv6m3n8hqfrw89j2x34vf60f4iyqzqc"))))
1466 (build-system gnu-build-system)
1467 (arguments
1468 '(#:phases
1469 (modify-phases %standard-phases
1470 (add-after 'unpack 'autogen
1471 (lambda _
1472 (invoke "sh" "autogen.sh"))))))
1473 (native-inputs
1474 `(("autoconf" ,autoconf)
1475 ("automake" ,automake)
1476 ("emacs" ,emacs-minimal)
1477 ("texinfo" ,texinfo)))
1478 (home-page "https://github.com/purcell/mmm-mode")
1479 (synopsis "Allow multiple major modes in an Emacs buffer")
1480 (description
1481 "MMM Mode is a minor mode that allows multiple major modes to coexist in a
1482 single buffer.")
1483 (license license:gpl3+)))
1484
1485 (define-public emacs-tablist
1486 (package
1487 (name "emacs-tablist")
1488 (version "0.70")
1489 (source (origin
1490 (method url-fetch)
1491 (uri (string-append
1492 "https://github.com/politza/tablist/archive/v"
1493 version ".tar.gz"))
1494 (file-name (string-append name "-" version ".tar.gz"))
1495 (sha256
1496 (base32
1497 "177d6s7ym1mwz1nhnl09r14z3n093g9a2szm97xsaig0c204xz9c"))))
1498 (build-system emacs-build-system)
1499 (home-page "https://github.com/politza/tablist")
1500 (synopsis "Extension for @code{tabulated-list-mode}")
1501 (description "Tablist is the Emacs package that provides several
1502 additional features to @code{tabulated-list-mode}: it adds marks,
1503 filters, new key bindings and faces. It can be enabled by
1504 @code{tablist-mode} or @code{tablist-minor-mode} commands.")
1505 (license license:gpl3+)))
1506
1507 (define-public emacs-pdf-tools
1508 (package
1509 (name "emacs-pdf-tools")
1510 (version "0.80")
1511 (home-page "https://github.com/politza/pdf-tools")
1512 (source (origin
1513 (method git-fetch)
1514 (uri (git-reference (url home-page)
1515 (commit (string-append "v" version))))
1516 (file-name (git-file-name name version))
1517 (sha256
1518 (base32
1519 "1i4647vax5na73basc5dz4lh9kprir00fh8ps4i0l1y3ippnjs2s"))
1520 (patches (search-patches "emacs-pdf-tools-poppler.patch"))))
1521 (build-system gnu-build-system)
1522 (arguments
1523 `(#:tests? #f ; there are no tests
1524 #:modules ((guix build gnu-build-system)
1525 ((guix build emacs-build-system) #:prefix emacs:)
1526 (guix build utils)
1527 (guix build emacs-utils))
1528 #:imported-modules (,@%gnu-build-system-modules
1529 (guix build emacs-build-system)
1530 (guix build emacs-utils))
1531 #:phases
1532 (modify-phases %standard-phases
1533 ;; Build server side using 'gnu-build-system'.
1534 (add-after 'unpack 'enter-server-dir
1535 (lambda _ (chdir "server") #t))
1536 (add-after 'enter-server-dir 'autogen
1537 (lambda _
1538 (invoke "bash" "autogen.sh")))
1539
1540 ;; Build emacs side using 'emacs-build-system'.
1541 (add-after 'compress-documentation 'enter-lisp-dir
1542 (lambda _ (chdir "../lisp") #t))
1543 (add-after 'enter-lisp-dir 'emacs-patch-variables
1544 (lambda* (#:key outputs #:allow-other-keys)
1545 (for-each make-file-writable (find-files "."))
1546
1547 ;; Set path to epdfinfo program.
1548 (emacs-substitute-variables "pdf-info.el"
1549 ("pdf-info-epdfinfo-program"
1550 (string-append (assoc-ref outputs "out")
1551 "/bin/epdfinfo")))
1552 ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto
1553 ;; upgrading" that pdf-tools tries to perform.
1554 (emacs-substitute-variables "pdf-tools.el"
1555 ("pdf-tools-handle-upgrades" '()))))
1556 (add-after 'emacs-patch-variables 'emacs-set-emacs-load-path
1557 (assoc-ref emacs:%standard-phases 'set-emacs-load-path))
1558 (add-after 'emacs-set-emacs-load-path 'emacs-install
1559 (assoc-ref emacs:%standard-phases 'install))
1560 (add-after 'emacs-install 'emacs-build
1561 (assoc-ref emacs:%standard-phases 'build))
1562 (add-after 'emacs-install 'emacs-make-autoloads
1563 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
1564 (native-inputs `(("autoconf" ,autoconf)
1565 ("automake" ,automake)
1566 ("pkg-config" ,pkg-config)
1567 ("emacs" ,emacs-minimal)))
1568 (inputs `(("poppler" ,poppler)
1569 ("cairo" ,cairo)
1570 ("glib" ,glib)
1571 ("libpng" ,libpng)
1572 ("zlib" ,zlib)))
1573 (propagated-inputs `(("tablist" ,emacs-tablist)))
1574 (synopsis "Emacs support library for PDF files")
1575 (description
1576 "PDF Tools is, among other things, a replacement of DocView for PDF
1577 files. The key difference is that pages are not pre-rendered by
1578 e.g. ghostscript and stored in the file-system, but rather created on-demand
1579 and stored in memory.")
1580 (license license:gpl3+)))
1581
1582 (define-public emacs-dash
1583 (package
1584 (name "emacs-dash")
1585 (version "2.14.1")
1586 (source (origin
1587 (method git-fetch)
1588 (uri (git-reference
1589 (url "https://github.com/magnars/dash.el.git")
1590 (commit version)))
1591 (file-name (git-file-name name version))
1592 (sha256
1593 (base32
1594 "1kzijmjxjxgr7p8clphzvmm47vczckbs8mza9an77c25bn627ywl"))))
1595 (build-system emacs-build-system)
1596 (arguments
1597 `(#:tests? #t
1598 #:test-command '("./run-tests.sh")))
1599 (home-page "https://github.com/magnars/dash.el")
1600 (synopsis "Modern list library for Emacs")
1601 (description "This package provides a modern list API library for Emacs.")
1602 (license license:gpl3+)))
1603
1604 (define-public emacs-bui
1605 (package
1606 (name "emacs-bui")
1607 (version "1.2.1")
1608 (source (origin
1609 (method git-fetch)
1610 (uri (git-reference
1611 (url "https://notabug.org/alezost/emacs-bui.git")
1612 (commit (string-append "v" version))))
1613 (file-name (string-append name "-" version "-checkout"))
1614 (sha256
1615 (base32
1616 "0sszdl4kvqbihdh8d7mybpp0d8yw2p3gyiipjcxz9xhvvmw3ww4x"))))
1617 (build-system emacs-build-system)
1618 (propagated-inputs
1619 `(("dash" ,emacs-dash)))
1620 (home-page "https://notabug.org/alezost/emacs-bui")
1621 (synopsis "Buffer interface library for Emacs")
1622 (description
1623 "BUI (Buffer User Interface) is a library for making @code{list} and
1624 @code{info} interfaces to display an arbitrary data of the same
1625 type, for example: packages, buffers, files, etc.")
1626 (license license:gpl3+)))
1627
1628 (define-public emacs-guix
1629 (package
1630 (name "emacs-guix")
1631 (version "0.5.1.1")
1632 (source (origin
1633 (method url-fetch)
1634 (uri (string-append "https://emacs-guix.gitlab.io/website/"
1635 "releases/emacs-guix-" version ".tar.gz"))
1636 (sha256
1637 (base32
1638 "1gxg7lan3njc2yg2d02b2zij0d2cm2pv2q08nqz86s85jk3b6m03"))))
1639 (build-system gnu-build-system)
1640 (arguments
1641 `(#:configure-flags
1642 (let ((guix (assoc-ref %build-inputs "guix"))
1643 (gcrypt (assoc-ref %build-inputs "guile-gcrypt"))
1644 (geiser (assoc-ref %build-inputs "geiser"))
1645 (dash (assoc-ref %build-inputs "dash"))
1646 (bui (assoc-ref %build-inputs "bui"))
1647 (magit-popup (assoc-ref %build-inputs "magit-popup"))
1648 (edit-indirect (assoc-ref %build-inputs "edit-indirect"))
1649 (site-lisp "/share/emacs/site-lisp")
1650 (site-scm "/share/guile/site")
1651 (site-go "/lib/guile")
1652 (guile-dir (lambda (dir)
1653 (car (find-files dir
1654 (lambda (file stat)
1655 (string-prefix?
1656 "2." (basename file)))
1657 #:directories? #t)))))
1658 (list (string-append "--with-guix-site-dir="
1659 (guile-dir (string-append guix site-scm)))
1660 (string-append "--with-guix-site-ccache-dir="
1661 (guile-dir (string-append guix site-go))
1662 "/site-ccache")
1663 (string-append "--with-guile-gcrypt-site-dir="
1664 (guile-dir (string-append gcrypt site-scm)))
1665 (string-append "--with-guile-gcrypt-site-ccache-dir="
1666 (guile-dir (string-append gcrypt site-go))
1667 "/site-ccache")
1668 (string-append "--with-geiser-lispdir=" geiser site-lisp)
1669 (string-append "--with-dash-lispdir="
1670 dash site-lisp "/guix.d/dash-"
1671 ,(package-version emacs-dash))
1672 (string-append "--with-bui-lispdir="
1673 bui site-lisp "/guix.d/bui-"
1674 ,(package-version emacs-bui))
1675 (string-append "--with-editindirect-lispdir="
1676 edit-indirect site-lisp "/guix.d/edit-indirect-"
1677 ,(package-version emacs-edit-indirect))
1678 (string-append "--with-popup-lispdir="
1679 magit-popup site-lisp "/guix.d/magit-popup-"
1680 ,(package-version emacs-magit-popup))))))
1681 (native-inputs
1682 `(("pkg-config" ,pkg-config)
1683 ("emacs" ,emacs-minimal)))
1684 (inputs
1685 `(("guile" ,guile-2.2)
1686 ("guix" ,guix)))
1687 (propagated-inputs
1688 `(("geiser" ,emacs-geiser)
1689 ("guile-gcrypt" ,guile-gcrypt)
1690 ("dash" ,emacs-dash)
1691 ("bui" ,emacs-bui)
1692 ("edit-indirect" ,emacs-edit-indirect)
1693 ("magit-popup" ,emacs-magit-popup)))
1694 (home-page "https://emacs-guix.gitlab.io/website/")
1695 (synopsis "Emacs interface for GNU Guix")
1696 (description
1697 "Emacs-Guix provides a visual interface, tools and features for the GNU
1698 Guix package manager. Particularly, it allows you to do various package
1699 management tasks from Emacs. To begin with, run @code{M-x guix-about} or
1700 @code{M-x guix-help} command.")
1701 (license license:gpl3+)))
1702
1703 (define-public emacs-build-farm
1704 (package
1705 (name "emacs-build-farm")
1706 (version "0.2.2")
1707 (source (origin
1708 (method git-fetch)
1709 (uri (git-reference
1710 (url "https://notabug.org/alezost/emacs-build-farm.git")
1711 (commit (string-append "v" version))))
1712 (file-name (string-append name "-" version "-checkout"))
1713 (sha256
1714 (base32
1715 "0i0bwbav5861j2y15j9nd5m9rdqg9q97zgcbld8pivr9nyxy63lz"))))
1716 (build-system emacs-build-system)
1717 (propagated-inputs
1718 `(("bui" ,emacs-bui)
1719 ("magit-popup" ,emacs-magit-popup)))
1720 (home-page "https://notabug.org/alezost/emacs-build-farm")
1721 (synopsis "Emacs interface for Hydra and Cuirass build farms")
1722 (description
1723 "This Emacs package provides an interface for Hydra and
1724 Cuirass (build farms used by Nix and Guix). It allows you to look at
1725 various data related to the build farm projects, jobsets, builds and
1726 evaluations. The entry point is @code{M-x build-farm} command.")
1727 (license license:gpl3+)))
1728
1729 (define-public emacs-d-mode
1730 (package
1731 (name "emacs-d-mode")
1732 (version "2.0.9")
1733 (source (origin
1734 (method url-fetch)
1735 (uri (string-append
1736 "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode/"
1737 "archive/" version ".tar.gz"))
1738 (file-name (string-append name "-" version ".tar.gz"))
1739 (sha256
1740 (base32
1741 "127aa77ix3p7w4g339bx026df9y649dahlr3v359z0hs40zjz3kd"))))
1742 (build-system emacs-build-system)
1743 (propagated-inputs
1744 `(("emacs-undercover" ,emacs-undercover)))
1745 (home-page "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
1746 (synopsis "Emacs major mode for editing D code")
1747 (description "This package provides an Emacs major mode for highlighting
1748 code written in the D programming language. This mode is currently known to
1749 work with Emacs 24 and 25.")
1750 (license license:gpl2+)))
1751
1752 (define-public emacs-keyfreq
1753 (package
1754 (name "emacs-keyfreq")
1755 (version "20160516.716")
1756 (source
1757 (origin
1758 (method url-fetch)
1759 (uri (string-append "http://melpa.org/packages/keyfreq-"
1760 version ".el"))
1761 (sha256
1762 (base32
1763 "008hd7d06qskc3mx0bbdgpgy2pwxr8185fzlyqf9qjg49y74p6g8"))))
1764 (build-system emacs-build-system)
1765 (home-page "https://github.com/dacap/keyfreq")
1766 (synopsis "Track Emacs command frequencies")
1767 (description "@code{emacs-keyfeq} tracks and shows how many times you used
1768 a command.")
1769 (license license:gpl3+)))
1770
1771 (define-public emacs-olivetti
1772 (package
1773 (name "emacs-olivetti")
1774 (version "1.5.7")
1775 (source (origin
1776 (method url-fetch)
1777 (uri (string-append
1778 "https://stable.melpa.org/packages/olivetti-"
1779 version ".el"))
1780 (sha256
1781 (base32
1782 "1yj2ylg46q0pw1xzlv2b0fv9x8p56x25284s9v2smwjr4vf0nwcj"))))
1783 (build-system emacs-build-system)
1784 (home-page "https://github.com/rnkn/olivetti")
1785 (synopsis "Emacs minor mode for a nice writing environment")
1786 (description "This package provides an Emacs minor mode that puts writing
1787 in the center.")
1788 (license license:gpl3+)))
1789
1790 (define-public emacs-undo-tree
1791 (package
1792 (name "emacs-undo-tree")
1793 (version "0.6.6")
1794 (source (origin
1795 (method git-fetch)
1796 (uri (git-reference
1797 (url "http://dr-qubit.org/git/undo-tree.git")
1798 (commit (string-append "release/" version))))
1799 (file-name (string-append name "-" version "-checkout"))
1800 (sha256
1801 (base32
1802 "1hnh2mnmw179gr094r561w6cw1haid0lpvpqvkc24wpj82vphzpa"))))
1803 (build-system emacs-build-system)
1804 (home-page "http://www.dr-qubit.org/emacs.php")
1805 (synopsis "Treat undo history as a tree")
1806 (description "Tree-like interface to Emacs undo system, providing
1807 graphical tree presentation of all previous states of buffer that
1808 allows easily move between them.")
1809 (license license:gpl3+)))
1810
1811 (define-public emacs-s
1812 (package
1813 (name "emacs-s")
1814 (version "1.12.0")
1815 (source (origin
1816 (method url-fetch)
1817 (uri (string-append
1818 "https://github.com/magnars/s.el/archive/"
1819 version ".tar.gz"))
1820 (file-name (string-append name "-" version ".tar.gz"))
1821 (sha256
1822 (base32
1823 "0xbl75863pcm806zg0x1lw7qznzjq2c8320k8js7apyag8q4srvh"))))
1824 (build-system emacs-build-system)
1825 (arguments
1826 `(#:tests? #t
1827 #:emacs ,emacs ; FIXME: tests fail with emacs-minimal
1828 #:test-command '("./run-tests.sh")))
1829 (home-page "https://github.com/magnars/s.el")
1830 (synopsis "Emacs string manipulation library")
1831 (description "This package provides an Emacs library for manipulating
1832 strings.")
1833 (license license:gpl3+)))
1834
1835 (define-public emacs-symon
1836 (package
1837 (name "emacs-symon")
1838 (version "20160630")
1839 (source
1840 (origin
1841 (method url-fetch)
1842 (uri (string-append "https://github.com/zk-phi/symon/archive/"
1843 version ".tar.gz"))
1844 (file-name (string-append name "-" version ".tar.gz"))
1845 (sha256
1846 (base32
1847 "0h4jcgdnq98wc9rj72nwyazq8498yg55jfljiij5qwbn1xf1g5zz"))))
1848 (build-system emacs-build-system)
1849 (home-page "https://github.com/zk-phi/symon")
1850 (synopsis "Tiny graphical system monitor")
1851 (description
1852 "Tiny graphical system monitor for the Emacs minibuffer when idle.")
1853 (license license:gpl2+)))
1854
1855 (define-public emacs-sx
1856 (let ((version "20180212")
1857 (revision "1")
1858 (commit "833435fbf90d1c9e927d165b155f3b1ef39271de"))
1859 (package
1860 (name "emacs-sx")
1861 (version (git-version version revision commit))
1862 (source
1863 (origin
1864 (method git-fetch)
1865 (uri (git-reference
1866 (url "https://github.com/vermiculus/sx.el")
1867 (commit commit)))
1868 (file-name (git-file-name name version))
1869 (sha256
1870 (base32
1871 "1369xaxq1vy3d9yh862ddnhddikdpg2d0wv1ly00pnvdp9v4cqgd"))))
1872 (build-system emacs-build-system)
1873 (propagated-inputs
1874 `(("emacs-markdown-mode" ,emacs-markdown-mode)))
1875 (home-page "https://github.com/vermiculus/sx.el")
1876 (synopsis "Emacs StackExchange client")
1877 (description
1878 "Emacs StackExchange client. Ask and answer questions on
1879 Stack Overflow, Super User, and other StackExchange sites.")
1880 (license license:gpl3+))))
1881
1882 (define-public emacs-f
1883 (package
1884 (name "emacs-f")
1885 (version "0.20.0")
1886 (source (origin
1887 (method git-fetch)
1888 (uri (git-reference
1889 (url "https://github.com/rejeep/f.el.git")
1890 (commit (string-append "v" version))))
1891 (file-name (git-file-name name version))
1892 (sha256
1893 (base32
1894 "1a47xk3yp1rp17fqg7ldl3d3fb888h0fz3sysqfdz1bfdgs8a9bk"))))
1895 (build-system emacs-build-system)
1896 (propagated-inputs
1897 `(("emacs-s" ,emacs-s)
1898 ("emacs-dash" ,emacs-dash)))
1899 (home-page "https://github.com/rejeep/f.el")
1900 (synopsis "Emacs API for working with files and directories")
1901 (description "This package provides an Emacs library for working with
1902 files and directories.")
1903 (license license:gpl3+)))
1904
1905 (define-public emacs-git-gutter
1906 (package
1907 (name "emacs-git-gutter")
1908 (version "0.90")
1909 (source (origin
1910 (method url-fetch)
1911 (uri (string-append
1912 "https://github.com/syohex/" name "/archive/"
1913 version ".tar.gz"))
1914 (file-name (string-append name "-" version ".tar.gz"))
1915 (sha256
1916 (base32
1917 "1nmhvhpq1l56mj2yq3ag23rw3x4xgnsy8szp30s26l0yjnkhc4qg"))))
1918 (build-system emacs-build-system)
1919 (home-page "https://github.com/syohex/emacs-git-gutter")
1920 (synopsis "See and manage hunks of text in a version control system")
1921 (description
1922 "This package is an Emacs minor mode for displaying and interacting with
1923 hunks of text managed in a version control system. Added modified and deleted
1924 areas can be indicated with symbols on the edge of the buffer, and commands
1925 can be used to move between and perform actions on these hunks.
1926
1927 Git, Mercurial, Subversion and Bazaar are supported, and many parts of the
1928 display and behaviour is easily customisable.")
1929 (license license:gpl3+)))
1930
1931 (define-public emacs-git-timemachine
1932 (package
1933 (name "emacs-git-timemachine")
1934 (version "4.5")
1935 (source
1936 (origin
1937 (method url-fetch)
1938 (uri (string-append "https://gitlab.com/pidu/git-timemachine"
1939 "/-/archive/" version
1940 "/git-timemachine-" version ".tar.gz"))
1941 (file-name (string-append name "-" version ".tar.gz"))
1942 (sha256
1943 (base32
1944 "0ii40qcincasg7s1yrvqcxkqcqzb4sfs7gcxscn6m4x4ans165zy"))))
1945 (build-system emacs-build-system)
1946 (home-page "https://gitlab.com/pidu/git-timemachine")
1947 (synopsis "Step through historic versions of Git-controlled files")
1948 (description "This package enables you to step through historic versions
1949 of files under Git version control from within Emacs.")
1950 (license license:gpl3+)))
1951
1952 (define-public emacs-minitest
1953 (let ((commit "1aadb7865c1dc69c201cecee275751ecec33a182")
1954 (revision "1"))
1955 (package
1956 (name "emacs-minitest")
1957 (version (git-version "0.8.0" revision commit))
1958 (source (origin
1959 (method git-fetch)
1960 (uri (git-reference
1961 (url "https://github.com/arthurnn/minitest-emacs")
1962 (commit commit)))
1963 (file-name (git-file-name name commit))
1964 (sha256
1965 (base32
1966 "1l18zqpdzbnqj2qawq8hj7z7pl8hr8z9d8ihy8jaiqma915hmhj1"))))
1967 (build-system emacs-build-system)
1968 (arguments
1969 '(#:include (cons "^snippets\\/minitest-mode\\/" %default-include)
1970 #:exclude (delete "^[^/]*tests?\\.el$" %default-exclude)))
1971 (propagated-inputs
1972 `(("emacs-dash" ,emacs-dash)
1973 ("emacs-f" ,emacs-f)))
1974 (home-page "https://github.com/arthurnn/minitest-emacs")
1975 (synopsis "Emacs minitest mode")
1976 (description
1977 "The minitest mode provides commands to run the tests for the current
1978 file or line, as well as rerunning the previous tests, or all the tests for a
1979 project.
1980
1981 This package also includes relevant snippets for yasnippet.")
1982 (license license:expat))))
1983
1984 (define-public emacs-el-mock
1985 (package
1986 (name "emacs-el-mock")
1987 (version "1.25.1")
1988 (source
1989 (origin
1990 (method url-fetch)
1991 (uri (string-append "https://github.com/rejeep/el-mock.el/"
1992 "archive/v" version ".tar.gz"))
1993 (file-name (string-append name "-" version ".tar.gz"))
1994 (sha256
1995 (base32
1996 "16xw94n58xxn3zvgyj72bmzs0k5lkvswjmzs79ws9n7rzdivb38b"))))
1997 (build-system emacs-build-system)
1998 (home-page "https://github.com/rejeep/el-mock.el")
1999 (synopsis "Tiny mock and stub framework in Emacs Lisp")
2000 (description
2001 "Emacs Lisp Mock is a library for mocking and stubbing using readable
2002 syntax. Most commonly Emacs Lisp Mock is used in conjunction with Emacs Lisp
2003 Expectations, but it can be used in other contexts.")
2004 (license license:gpl3+)))
2005
2006 (define-public emacs-espuds
2007 (package
2008 (name "emacs-espuds")
2009 (version "0.3.3")
2010 (source
2011 (origin
2012 (method url-fetch)
2013 (uri (string-append "https://github.com/ecukes/espuds/"
2014 "archive/v" version ".tar.gz"))
2015 (file-name (string-append name "-" version ".tar.gz"))
2016 (sha256
2017 (base32
2018 "0xv551376pbmh735a3zjwc9z4qdx6ngj1vpq3xqjpn0a1rwjyn4k"))))
2019 (build-system emacs-build-system)
2020 (propagated-inputs
2021 `(("emacs-s" ,emacs-s)
2022 ("emacs-dash" ,emacs-dash)
2023 ("emacs-f" ,emacs-f)))
2024 (home-page "https://github.com/ecukes/espuds")
2025 (synopsis "Common step definitions for Ecukes")
2026 (description "Espuds is a collection of the most commonly used step
2027 definitions for testing with the Ecukes framework.")
2028 (license license:gpl3+)))
2029
2030 (define-public emacs-spark
2031 (let ((version "20160503") ; no proper tag, use date of commit
2032 (commit "0bf148c3ede3b31d56fd75f347cdd0b0eae60025")
2033 (revision "1"))
2034 (package
2035 (name "emacs-spark")
2036 (version (git-version version revision commit))
2037 (source
2038 (origin
2039 (method git-fetch)
2040 (uri (git-reference
2041 (url "https://github.com/alvinfrancis/spark.git")
2042 (commit commit)))
2043 (file-name (git-file-name name version))
2044 (sha256
2045 (base32
2046 "1ykqr86j17mi95s08d9fp02d7ych1331b04dcqxzxnmpkhwngyj1"))))
2047 (build-system emacs-build-system)
2048 (home-page "https://github.com/alvinfrancis/spark")
2049 (synopsis "Sparkline generation library for Emacs Lisp")
2050 (description "@code{emacs-spark} is a sparkline generation library for
2051 Emacs Lisp. It generates a sparkline string given a list of numbers. It is a
2052 port of @code{cl-spark} to Emacs Lisp.")
2053 (license license:expat))))
2054
2055 (define-public emacs-es-mode
2056 (package
2057 (name "emacs-es-mode")
2058 (version "4.3.0")
2059 (source (origin
2060 (method url-fetch)
2061 (uri (string-append
2062 "https://github.com/dakrone/es-mode/archive/"
2063 version ".tar.gz"))
2064 (file-name (string-append name "-" version ".tar.gz"))
2065 (sha256
2066 (base32
2067 "0y86qdcb3g7fkcb4pzsjh3syzql6w3314hg1wqxq4a8bbk3y0cgr"))))
2068 (build-system emacs-build-system)
2069 (propagated-inputs
2070 ;; The version of org in Emacs 24.5 is not sufficient, and causes tables
2071 ;; to be rendered incorrectly
2072 `(("emacs-dash" ,emacs-dash)
2073 ("emacs-org" ,emacs-org)
2074 ("emacs-spark" ,emacs-spark)))
2075 (home-page "https://github.com/dakrone/es-mode")
2076 (synopsis "Major mode for editing Elasticsearch queries")
2077 (description "@code{es-mode} includes highlighting, completion and
2078 indentation support for Elasticsearch queries. Also supported are
2079 @code{es-mode} blocks in @code{org-mode}, for which the results of queries can
2080 be processed through @code{jq}, or in the case of aggregations, can be
2081 rendered in to a table. In addition, there is an @code{es-command-center}
2082 mode, which displays information about Elasticsearch clusters.")
2083 (license license:gpl3+)))
2084
2085 (define-public emacs-expand-region
2086 (package
2087 (name "emacs-expand-region")
2088 (version "0.11.0")
2089 (source
2090 (origin
2091 (method url-fetch)
2092 (uri (string-append "https://github.com/magnars/expand-region.el"
2093 "/archive/" version ".tar.gz"))
2094 (file-name (string-append name "-" version ".tar.gz"))
2095 (sha256
2096 (base32
2097 "08dy1f411sh9wwww53rjw80idcf3vpki6ba2arl4hl5jcw9651g0"))))
2098 (build-system emacs-build-system)
2099 (home-page "https://github.com/magnars/expand-region.el")
2100 (synopsis "Increase selected region by semantic units")
2101 (description
2102 "Expand region increases the selected region by semantic units. Just
2103 keep pressing the key until it selects what you want. There's also
2104 @code{er/contract-region} if you expand too far.")
2105 (license license:gpl3+)))
2106
2107 (define-public emacs-fill-column-indicator
2108 (package
2109 (name "emacs-fill-column-indicator")
2110 (version "1.89")
2111 (source
2112 (origin
2113 (method url-fetch)
2114 (uri (string-append "https://github.com/alpaker/Fill-Column-Indicator"
2115 "/archive/v" version ".tar.gz"))
2116 (file-name (string-append name "-" version ".tar.gz"))
2117 (sha256
2118 (base32
2119 "09ab01np14bdcsr38xf95kpnvxzqr46mdjmphg3pigwnx39a3jvg"))))
2120 (build-system emacs-build-system)
2121 (home-page "https://www.emacswiki.org/emacs/FillColumnIndicator")
2122 (synopsis "Graphically indicate the fill column")
2123 (description
2124 "Fill-column-indicator graphically indicates the location of the fill
2125 column by drawing a thin line down the length of the editing window.")
2126 (license license:gpl3+)))
2127
2128 (define-public emacs-grep-a-lot
2129 (package
2130 (name "emacs-grep-a-lot")
2131 (version "1.0.7")
2132 (source (origin
2133 (method git-fetch)
2134 (uri (git-reference
2135 (url "https://github.com/ZungBang/emacs-grep-a-lot.git")
2136 (commit "9f9f645b9e308a0d887b66864ff97d0fca1ba4ad")))
2137 (file-name (string-append name "-" version "-checkout"))
2138 (sha256
2139 (base32
2140 "1f8262mrlinzgnn4m49hbj1hm3c1mvzza24py4b37sasn49546lw"))))
2141 (build-system emacs-build-system)
2142 (home-page "https://github.com/ZungBang/emacs-grep-a-lot")
2143 (synopsis "Enables multiple grep buffers in Emacs")
2144 (description
2145 "This Emacs package allows managing multiple grep buffers.")
2146 (license license:gpl3+)))
2147
2148 (define-public emacs-inf-ruby
2149 (package
2150 (name "emacs-inf-ruby")
2151 (version "2.5.1")
2152 (source
2153 (origin
2154 (method url-fetch)
2155 (uri (string-append "https://github.com/nonsequitur/inf-ruby/"
2156 "archive/" version ".tar.gz"))
2157 (file-name (string-append name "-" version ".tar.gz"))
2158 (sha256
2159 (base32
2160 "0m7323k649ckxql1grsdnf71bjhys7l4qb8wbpphb1mr1q8i4066"))))
2161 (build-system emacs-build-system)
2162 (home-page "https://github.com/nonsequitur/inf-ruby")
2163 (synopsis "Provides a REPL buffer connected to a Ruby subprocess in Emacs")
2164 (description
2165 "@code{inf-ruby} provides a Read Eval Print Loop (REPL) buffer, allowing
2166 for easy interaction with a ruby subprocess. Features include support for
2167 detecting specific uses of Ruby, e.g. when using rails, and using a
2168 appropriate console.")
2169 (license license:gpl3+)))
2170
2171 (define-public emacs-znc
2172 (package
2173 (name "emacs-znc")
2174 (version "0.0.2")
2175 (source
2176 (origin
2177 (method url-fetch)
2178 (uri (string-append "https://marmalade-repo.org/packages/znc-"
2179 version ".el"))
2180 (sha256
2181 (base32
2182 "1d8lqvybgyazin5z0g1c4l3rg1vzrrvf0saqs53jr1zcdg0lianh"))))
2183 (build-system emacs-build-system)
2184 (home-page "https://github.com/sshirokov/ZNC.el")
2185 (synopsis "Make ERC and ZNC get along better")
2186 (description
2187 "This is a thin wrapper around @code{erc} that enables one to use the ZNC
2188 IRC bouncer with ERC.")
2189 (license license:expat)))
2190
2191 (define-public emacs-shut-up
2192 (package
2193 (name "emacs-shut-up")
2194 (version "0.3.2")
2195 (source
2196 (origin
2197 (method url-fetch)
2198 (uri (string-append "https://github.com/cask/shut-up/"
2199 "archive/v" version ".tar.gz"))
2200 (file-name (string-append name "-" version ".tar.gz"))
2201 (sha256
2202 (base32
2203 "09kzrjdkb569iviyg7ydwq44yh84m3f9hkl7jizfrlk0w4gz67d1"))))
2204 (build-system emacs-build-system)
2205 (home-page "https://github.com/cask/shut-up")
2206 (synopsis "Silence Emacs")
2207 (description "This package silences most output of Emacs when running an
2208 Emacs shell script.")
2209 (license license:expat)))
2210
2211 (define-public emacs-undercover
2212 (package
2213 (name "emacs-undercover")
2214 (version "0.6.0")
2215 (source
2216 (origin
2217 (method url-fetch)
2218 (uri (string-append "https://github.com/sviridov/undercover.el/"
2219 "archive/v" version ".tar.gz"))
2220 (file-name (string-append name "-" version ".tar.gz"))
2221 (sha256
2222 (base32
2223 "0f48fi0xnbsqs382rgh85m9mq1wdnr0yib7as9xhwzvq0hsr5m0a"))))
2224 (build-system emacs-build-system)
2225 (propagated-inputs
2226 `(("emacs-dash" ,emacs-dash)
2227 ("emacs-shut-up" ,emacs-shut-up)))
2228 (home-page "https://github.com/sviridov/undercover.el")
2229 (synopsis "Test coverage library for Emacs Lisp")
2230 (description
2231 "Undercover is a test coverage library for software written in Emacs
2232 Lisp.")
2233 (license license:expat)))
2234
2235 (define-public emacs-paren-face
2236 (package
2237 (name "emacs-paren-face")
2238 (version "1.0.0")
2239 (source
2240 (origin
2241 (method url-fetch)
2242 (uri (string-append "https://github.com/tarsius/paren-face/archive/"
2243 version ".tar.gz"))
2244 (file-name (string-append name "-" version ".tar.gz"))
2245 (sha256
2246 (base32
2247 "0y4qrhxa9332vsvr999jg7qj1ymnfgwpf591yi4a4jgg90pm7qnn"))))
2248 (build-system emacs-build-system)
2249 (home-page "https://github.com/tarsius/paren-face")
2250 (synopsis "Face for parentheses in lisp modes")
2251 (description
2252 "This library defines a face named @code{parenthesis} used just for
2253 parentheses. The intended purpose of this face is to make parentheses less
2254 visible in Lisp code by dimming them. Lispers probably don't need to be
2255 constantly made aware of the existence of the parentheses. Dimming them might
2256 be even more useful for people new to lisp who have not yet learned to
2257 subconsciously blend out the parentheses.")
2258 (license license:gpl3+)))
2259
2260 (define-public emacs-page-break-lines
2261 (package
2262 (name "emacs-page-break-lines")
2263 (version "0.11")
2264 (source
2265 (origin
2266 (method url-fetch)
2267 (uri (string-append "https://github.com/purcell/page-break-lines/"
2268 "archive/" version ".tar.gz"))
2269 (file-name (string-append name "-" version ".tar.gz"))
2270 (sha256
2271 (base32
2272 "1zzhziq5kbrm9rxk30kx2glz455fp1blqxg8cpcf6l8xl3w8z4pg"))))
2273 (build-system emacs-build-system)
2274 (home-page "https://github.com/purcell/page-break-lines")
2275 (synopsis "Display page breaks as tidy horizontal lines")
2276 (description
2277 "This library provides a global mode which displays form feed characters
2278 as horizontal rules.")
2279 (license license:gpl3+)))
2280
2281 (define-public emacs-simple-httpd
2282 (package
2283 (name "emacs-simple-httpd")
2284 (version "1.4.6")
2285 (source
2286 (origin
2287 (method url-fetch)
2288 (uri (string-append "https://github.com/skeeto/emacs-web-server/"
2289 "archive/" version ".tar.gz"))
2290 (file-name (string-append name "-" version ".tar.gz"))
2291 (sha256
2292 (base32
2293 "01r7h3imnj4qx1m53a2wjafvbylcyz5f9r2rg2cs7ky3chlg220r"))))
2294 (build-system emacs-build-system)
2295 (home-page "https://github.com/skeeto/emacs-http-server")
2296 (synopsis "HTTP server in pure Emacs Lisp")
2297 (description
2298 "This package provides a simple HTTP server written in Emacs Lisp to
2299 serve files and directory listings.")
2300 (license license:unlicense)))
2301
2302 (define-public emacs-skewer-mode
2303 (package
2304 (name "emacs-skewer-mode")
2305 (version "1.6.2")
2306 (source
2307 (origin
2308 (method url-fetch)
2309 (uri (string-append "https://github.com/skeeto/skewer-mode/archive/"
2310 version ".tar.gz"))
2311 (file-name (string-append name "-" version ".tar.gz"))
2312 (sha256
2313 (base32
2314 "07jpz374j0j964szy3zznrkyja2kpdl3xa87wh7349mzxivqxdx0"))))
2315 (build-system emacs-build-system)
2316 (propagated-inputs
2317 `(("emacs-simple-httpd" ,emacs-simple-httpd)
2318 ("emacs-js2-mode" ,emacs-js2-mode)))
2319 (arguments '(#:include '("\\.el$" "\\.js$" "\\.html$")))
2320 (home-page "https://github.com/skeeto/skewer-mode")
2321 (synopsis "Live web development in Emacs")
2322 (description
2323 "Skewer-mode provides live interaction with JavaScript, CSS, and HTML in
2324 a web browser. Expressions are sent on-the-fly from an editing buffer to be
2325 evaluated in the browser, just like Emacs does with an inferior Lisp process
2326 in Lisp modes.")
2327 (license license:unlicense)))
2328
2329 (define-public emacs-string-inflection
2330 (package
2331 (name "emacs-string-inflection")
2332 (version "1.0.6")
2333 (source (origin
2334 (method git-fetch)
2335 (uri (git-reference
2336 (url "https://github.com/akicho8/string-inflection")
2337 (commit "a150e7bdda60b7824d3a936750ce23f73b0e4edd")))
2338 (file-name (string-append name "-" version "-checkout"))
2339 (sha256
2340 (base32
2341 "1k0sm552iawi49v4zis6dbb81d1rzgky9v0dpv7nj31gnb7bmy7k"))))
2342 (build-system emacs-build-system)
2343 (native-inputs
2344 `(("ert-runner" ,emacs-ert-runner)))
2345 (arguments
2346 `(#:tests? #t
2347 #:test-command '("ert-runner")))
2348 (home-page "https://github.com/akicho8/string-inflection")
2349 (synopsis "Convert symbol names between different naming conventions")
2350 (description
2351 "This Emacs package provides convenient methods for manipulating the
2352 naming style of a symbol. It supports different naming conventions such as:
2353
2354 @enumerate
2355 @item camel case
2356 @item Pascal case
2357 @item all upper case
2358 @item lower case separated by underscore
2359 @item etc...
2360 @end enumerate\n")
2361 (license license:gpl2+)))
2362
2363 (define-public emacs-stripe-buffer
2364 (package
2365 (name "emacs-stripe-buffer")
2366 (version "0.2.5")
2367 (source
2368 (origin
2369 (method url-fetch)
2370 (uri (string-append "https://github.com/sabof/stripe-buffer/"
2371 "archive/" version ".tar.gz"))
2372 (file-name (string-append name "-" version ".tar.gz"))
2373 (sha256
2374 (base32
2375 "1p515dq7raly5hw94kiwm3vzsfih0d8af622q4ipvvljsm98aiik"))))
2376 (build-system emacs-build-system)
2377 (home-page "https://github.com/sabof/stripe-buffer/")
2378 (synopsis "Add stripes to list buffers")
2379 (description
2380 "This Emacs package adds faces to add stripes to list buffers and org
2381 tables.")
2382 (license license:gpl2+)))
2383
2384 (define-public emacs-rich-minority
2385 (package
2386 (name "emacs-rich-minority")
2387 (version "1.0.1")
2388 (source
2389 (origin
2390 (method url-fetch)
2391 (uri (string-append "https://github.com/Malabarba/rich-minority/"
2392 "archive/" version ".tar.gz"))
2393 (file-name (string-append name "-" version ".tar.gz"))
2394 (sha256
2395 (base32
2396 "1l0cb0q7kyi88nwfqd542psnkgwnjklpzc5rx32gzd3lkwkrbr8v"))))
2397 (build-system emacs-build-system)
2398 (home-page "https://github.com/Malabarba/rich-minority")
2399 (synopsis "Clean-up and beautify the list of minor modes")
2400 (description
2401 "This Emacs package hides and/or highlights minor modes in the
2402 mode-line.")
2403 (license license:gpl2+)))
2404
2405 (define-public emacs-robe
2406 (package
2407 (name "emacs-robe")
2408 (version "0.8.1")
2409 (source
2410 (origin
2411 (method url-fetch)
2412 (uri (string-append "https://github.com/dgutov/robe/"
2413 "archive/" version ".tar.gz"))
2414 (file-name (string-append name "-" version ".tar.gz"))
2415 (sha256
2416 (base32
2417 "1vp45y99fwj88z04ah4yppz4z568qcib646az6m9az5ar0f203br"))))
2418 (build-system emacs-build-system)
2419 (arguments
2420 '(#:include (cons "^lib\\/" %default-include)))
2421 (propagated-inputs
2422 `(("emacs-inf-ruby" ,emacs-inf-ruby)))
2423 (home-page "https://github.com/dgutov/robe")
2424 (synopsis "Ruby code assistance tool for Emacs")
2425 (description
2426 "Robe can provide information on loaded classes and modules in Ruby code,
2427 as well as where methods are defined. This allows the user to jump to method
2428 definitions, modules and classes, display method documentation and provide
2429 method and constant name completion.")
2430 (license license:gpl3+)))
2431
2432 (define-public emacs-rspec
2433 (package
2434 (name "emacs-rspec")
2435 (version "1.11")
2436 (source
2437 (origin
2438 (method url-fetch)
2439 (uri (string-append "https://github.com/pezra/rspec-mode/"
2440 "archive/v" version ".tar.gz"))
2441 (file-name (string-append name "-" version ".tar.gz"))
2442 (sha256
2443 (base32
2444 "1j0a7ms5516nlg60qfyn730pfxys6acm0rgyxh5xfkpi6jafgpvw"))))
2445 (build-system emacs-build-system)
2446 (home-page "https://github.com/pezra/rspec-mode")
2447 (synopsis "Provides a rspec mode for working with RSpec")
2448 (description
2449 "The Emacs RSpec mode provides keybindings for Ruby source files, e.g. to
2450 verify the spec associated with the current buffer, or entire project, as well
2451 as moving between the spec files, and coresponding code files.
2452
2453 Also included are keybindings for spec files and Dired buffers, as well as
2454 snippets for yasnippet.")
2455 (license license:gpl3+)))
2456
2457 (define-public emacs-smart-mode-line
2458 (package
2459 (name "emacs-smart-mode-line")
2460 (version "2.12.0")
2461 (source
2462 (origin
2463 (method url-fetch)
2464 (uri (string-append "https://github.com/Malabarba/smart-mode-line/"
2465 "archive/" version ".tar.gz"))
2466 (file-name (string-append name "-" version ".tar.gz"))
2467 (sha256
2468 (base32
2469 "1hn8s6laijmg7w1bgwdfrki6h9vxkbgr8rmmssvd5yqyad5w2sba"))))
2470 (build-system emacs-build-system)
2471 (propagated-inputs
2472 `(("emacs-rich-minority" ,emacs-rich-minority)))
2473 (home-page "https://github.com/Malabarba/smart-mode-line")
2474 (synopsis "Color-coded smart mode-line")
2475 (description
2476 "Smart Mode Line is a mode-line theme for Emacs. It aims to be easy to
2477 read from small to large monitors by using colors, a prefix feature, and smart
2478 truncation.")
2479 (license license:gpl2+)))
2480
2481 (define-public emacs-sr-speedbar
2482 (let ((commit "77a83fb50f763a465c021eca7343243f465b4a47")
2483 (revision "0"))
2484 (package
2485 (name "emacs-sr-speedbar")
2486 (version (git-version "20161025" revision commit))
2487 (source
2488 (origin
2489 (method git-fetch)
2490 (uri (git-reference
2491 (url "https://github.com/emacsorphanage/sr-speedbar.git")
2492 (commit commit)))
2493 (file-name (git-file-name name version))
2494 (sha256
2495 (base32
2496 "0sd12555hk7z721y00kv3crdybvcn1i08wmd148z5imayzibj153"))))
2497 (build-system emacs-build-system)
2498 (home-page "https://www.emacswiki.org/emacs/SrSpeedbar")
2499 (synopsis "Same frame Emacs @code{speedbar}")
2500 (description
2501 "This Emacs package allows you to show @code{M-x speedbar} in the
2502 same frame (in an extra window). You can customize the initial width of
2503 the speedbar window.")
2504 (license license:gpl3+))))
2505
2506 (define-public emacs-shell-switcher
2507 (package
2508 (name "emacs-shell-switcher")
2509 (version "1.0.1")
2510 (source
2511 (origin
2512 (method url-fetch)
2513 (uri (string-append "https://github.com/DamienCassou/shell-switcher"
2514 "/archive/v" version ".tar.gz"))
2515 (file-name (string-append name "-" version ".tar.gz"))
2516 (sha256
2517 (base32
2518 "1c23mfkdqz2g9rixd9smm323vzlvhzz3ng34ambcqjfq309qb2nz"))))
2519 (build-system emacs-build-system)
2520 (home-page "https://github.com/DamienCassou/shell-switcher")
2521 (synopsis "Provide fast switching between shell buffers")
2522 (description
2523 "This package provides commands to quickly switch between shell buffers.")
2524 (license license:gpl3+)))
2525
2526 (define-public emacs-ob-ipython
2527 (package
2528 (name "emacs-ob-ipython")
2529 (version "20150704.8807064693")
2530 (source (origin
2531 (method git-fetch)
2532 (uri (git-reference
2533 (commit "880706469338ab59b5bb7dbe8460016f89755364")
2534 (url "https://github.com/gregsexton/ob-ipython.git")))
2535 (file-name (string-append name "-" version "-checkout"))
2536 (sha256
2537 (base32
2538 "1scf25snbds9ymagpny30ijbsg479r3nm0ih01dy4m9d0g7qryb7"))))
2539 (build-system emacs-build-system)
2540 (propagated-inputs
2541 `(("emacs-f" ,emacs-f)))
2542 (home-page "http://www.gregsexton.org")
2543 (synopsis "Org-Babel functions for IPython evaluation")
2544 (description "This package adds support to Org-Babel for evaluating Python
2545 source code using IPython.")
2546 (license license:gpl3+)))
2547
2548 (define-public emacs-debbugs
2549 (package
2550 (name "emacs-debbugs")
2551 (version "0.16")
2552 (source (origin
2553 (method url-fetch)
2554 (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
2555 version ".tar"))
2556 (sha256
2557 (base32
2558 "0y3bq803c7820h15g66d1648skxfhlfa2v6vincj6xk5ssp44s9p"))))
2559 (build-system emacs-build-system)
2560 (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
2561 (propagated-inputs
2562 `(("emacs-async" ,emacs-async)))
2563 (home-page "https://elpa.gnu.org/packages/debbugs.html")
2564 (synopsis "Access the Debbugs bug tracker in Emacs")
2565 (description
2566 "This package lets you access the @uref{http://bugs.gnu.org,GNU Bug
2567 Tracker} from within Emacs.
2568
2569 For instance, it defines the command @code{M-x debbugs-gnu} for listing bugs,
2570 and the command @code{M-x debbugs-gnu-search} for bug searching. If you
2571 prefer the listing of bugs as TODO items of @code{org-mode}, you could use
2572 @code{M-x debbugs-org} and related commands.
2573
2574 A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug
2575 Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.")
2576 (license license:gpl3+)))
2577
2578 (define-public emacs-ert-expectations
2579 (package
2580 (name "emacs-ert-expectations")
2581 (version "0.2")
2582 (source
2583 (origin
2584 (method url-fetch)
2585 (uri "https://www.emacswiki.org/emacs/download/ert-expectations.el")
2586 (sha256
2587 (base32
2588 "0cwy3ilsid90abzzjb7ha2blq9kmv3gfp3icwwfcz6qczgirq6g7"))))
2589 (build-system emacs-build-system)
2590 (home-page "https://www.emacswiki.org/emacs/ert-expectations.el")
2591 (synopsis "Simple unit test framework for Emacs Lisp")
2592 (description "@code{emacs-ert-expectations} is a simple unit test
2593 framework for Emacs Lisp to be used with @code{ert}.")
2594 (license license:gpl3+)))
2595
2596 (define-public emacs-deferred
2597 (package
2598 (name "emacs-deferred")
2599 (version "0.5.1")
2600 (home-page "https://github.com/kiwanami/emacs-deferred")
2601 (source (origin
2602 (method git-fetch)
2603 (uri (git-reference
2604 (url home-page)
2605 (commit (string-append "v" version))))
2606 (sha256
2607 (base32
2608 "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"))
2609 (file-name (string-append name "-" version))))
2610 (build-system emacs-build-system)
2611 (arguments
2612 `(#:phases
2613 (modify-phases %standard-phases
2614 (add-after 'unpack 'set-shell
2615 ;; Setting the SHELL environment variable is required for the tests
2616 ;; to find sh.
2617 (lambda _
2618 (setenv "SHELL" (which "sh"))
2619 #t))
2620 (add-before 'check 'fix-makefile
2621 (lambda _
2622 (substitute* "Makefile"
2623 (("\\$\\(CASK\\) exec ") ""))
2624 #t)))
2625 #:tests? #t
2626 #:test-command '("make" "test")))
2627 (native-inputs
2628 `(("emacs-ert-expectations" ,emacs-ert-expectations)
2629 ("emacs-undercover" ,emacs-undercover)
2630 ("ert-runner" ,emacs-ert-runner)))
2631 (synopsis "Simple asynchronous functions for Emacs Lisp")
2632 (description
2633 "The @code{deferred.el} library provides support for asynchronous tasks.
2634 The API is almost the same as that of
2635 @uref{https://github.com/cho45/jsdeferred, JSDeferred}, a JavaScript library
2636 for asynchronous tasks.")
2637 (license license:gpl3+)))
2638
2639 (define-public emacs-butler
2640 (package
2641 (name "emacs-butler")
2642 (version "0.2.4")
2643 (home-page "https://github.com/AshtonKem/Butler")
2644 (source (origin
2645 (method git-fetch)
2646 (uri (git-reference
2647 (url home-page)
2648 (commit version)))
2649 (sha256
2650 (base32
2651 "1pii9dw4skq7nr4na6qxqasl36av8cwjp71bf1fgppqpcd9z8skj"))
2652 (file-name (string-append name "-" version))))
2653 (build-system emacs-build-system)
2654 (propagated-inputs
2655 `(("emacs-deferred" ,emacs-deferred)))
2656 (synopsis "Emacs client for Jenkins")
2657 (description
2658 "Butler provides an interface to connect to Jenkins continuous
2659 integration servers. Users can specify a list of server in the
2660 @code{butler-server-list} variable and then use @code{M-x butler-status} to
2661 view the build status of those servers' build jobs, and possibly to trigger
2662 build jobs.")
2663 (license license:gpl3+)))
2664
2665 (define-public emacs-company
2666 (package
2667 (name "emacs-company")
2668 (version "0.9.7")
2669 (source
2670 (origin
2671 (method url-fetch)
2672 (uri (string-append "https://github.com/company-mode/company-mode/archive/"
2673 version ".tar.gz"))
2674 (file-name (string-append name "-" version ".tar.gz"))
2675 (sha256
2676 (base32
2677 "19flv38f2qhxda8lbk2ckywvibd72vbzmn4hchqz6d8acsknh4sb"))))
2678 (build-system emacs-build-system)
2679 (arguments
2680 `(#:phases
2681 (modify-phases %standard-phases
2682 (add-before 'check 'fix-bin-dir
2683 (lambda _
2684 ;; The company-files-candidates-normal-root test looks
2685 ;; for the /bin directory, but the build environment has
2686 ;; no /bin directory. Modify the test to look for the
2687 ;; /tmp directory.
2688 (substitute* "test/files-tests.el"
2689 (("/bin/") "/tmp/"))
2690 #t)))
2691 #:tests? #t
2692 #:test-command '("make" "test-batch")))
2693 (home-page "http://company-mode.github.io/")
2694 (synopsis "Modular text completion framework")
2695 (description
2696 "Company is a modular completion mechanism. Modules for retrieving
2697 completion candidates are called back-ends, modules for displaying them are
2698 front-ends. Company comes with many back-ends, e.g. @code{company-elisp}.
2699 These are distributed in separate files and can be used individually.")
2700 (license license:gpl3+)))
2701
2702 (define-public emacs-irony-mode
2703 (package
2704 (name "emacs-irony-mode")
2705 (version "1.2.0")
2706 (home-page "https://github.com/Sarcasm/irony-mode")
2707 (source (origin
2708 (method git-fetch)
2709 (uri (git-reference
2710 (url (string-append home-page ".git"))
2711 (commit (string-append "v" version))))
2712 (sha256
2713 (base32
2714 "0nhjrnlmss535jbshjjd30vydbr8py21vkx4p294w6d8vg2rssf8"))
2715 (file-name (string-append name "-" version ".tar.gz"))))
2716 (build-system emacs-build-system)
2717 (inputs `(("server" ,emacs-irony-mode-server)))
2718 (arguments `(#:phases
2719 (modify-phases %standard-phases
2720 (add-after 'unpack 'configure
2721 (lambda* (#:key inputs #:allow-other-keys)
2722 (chmod "irony.el" #o644)
2723 (emacs-substitute-variables "irony.el"
2724 ("irony-server-install-prefix"
2725 (assoc-ref inputs "server")))
2726 #t)))))
2727 (synopsis "C/C++/ObjC Code completion and syntax checks for Emacs")
2728 (description "Irony-mode provides Clang-assisted syntax checking and
2729 completion for C, C++, and ObjC in GNU Emacs. Using @code{libclang} it can
2730 provide syntax checking and autocompletion on compiler level which is very
2731 resistent against false positives. It also integrates well with other
2732 packages like @code{eldoc-mode} and especially @code{company-mode} as
2733 described on the homepage.")
2734 (license license:gpl3+)))
2735
2736 (define-public emacs-irony-mode-server
2737 (package (inherit emacs-irony-mode)
2738 (name "emacs-irony-mode-server")
2739 (inputs
2740 `(("clang" ,clang)))
2741 (arguments
2742 `(#:phases
2743 (modify-phases %standard-phases
2744 (replace 'configure
2745 (lambda* (#:key outputs #:allow-other-keys)
2746 (let ((out (assoc-ref outputs "out")))
2747 (invoke "cmake"
2748 "server"
2749 (string-append "-DCMAKE_INSTALL_PREFIX=" out)) #t))))))
2750 (build-system cmake-build-system)
2751 (synopsis "Server for the Emacs @dfn{irony mode}")))
2752
2753 (define-public emacs-company-irony
2754 (package
2755 (name "emacs-company-irony")
2756 (version "1.1.0")
2757 (source (origin
2758 (method git-fetch)
2759 (uri (git-reference
2760 (url "https://github.com/Sarcasm/company-irony.git")
2761 (commit (string-append "v" version))))
2762 (sha256 (base32
2763 "1qgyam2vyjw90kpxns5cd6bq3qiqjhzpwrlvmi18vyb69qcgqd8a"))
2764 (file-name (git-file-name name version))))
2765 (build-system emacs-build-system)
2766 (inputs
2767 `(("emacs-irony-mode" ,emacs-irony-mode)
2768 ("emacs-company" ,emacs-company)))
2769 (synopsis "C++ completion backend for Company using irony-mode")
2770 (description "This backend for company-mode allows for C++ code completion
2771 with irony-mode using clang-tooling.")
2772 (home-page "https://github.com/Sarcasm/company-irony")
2773 (license license:gpl3+)))
2774
2775 (define-public emacs-flycheck-irony
2776 (package
2777 (name "emacs-flycheck-irony")
2778 (version "0.1.0")
2779 (source (origin
2780 (method git-fetch)
2781 (uri (git-reference
2782 (url "https://github.com/Sarcasm/flycheck-irony.git")
2783 (commit (string-append "v" version))))
2784 (sha256
2785 (base32 "0qa5a8wzvzxwqql92ibc9s43k8sj3vwn7skz9hfr8av0skkhx996"))
2786 (file-name (string-append name "-" version))))
2787 (build-system emacs-build-system)
2788 (inputs
2789 `(("irony-mode" ,emacs-irony-mode)
2790 ("flycheck-mode" ,emacs-flycheck)
2791 ("emacs-company" ,emacs-company)))
2792 (synopsis "Live syntax checking frontend for Flycheck using irony-mode")
2793 (description "This package provides a frontend for Flycheck that lets
2794 irony-mode do the syntax checking.")
2795 (home-page "https://github.com/Sarcasm/flycheck-irony")
2796 (license license:gpl3+)))
2797
2798 (define-public emacs-irony-eldoc
2799 (package
2800 (name "emacs-irony-eldoc")
2801 (version (package-version emacs-irony-mode))
2802 (source
2803 (origin
2804 (method git-fetch)
2805 (uri (git-reference
2806 (url "https://github.com/ikirill/irony-eldoc.git")
2807 (commit "0df5831eaae264a25422b061eb2792aadde8b3f2")))
2808 (sha256 (base32 "1l5qpr66v1l12fb50yh73grb2rr85xxmbj19mm33b5rdrq2bqmmd"))
2809 (file-name (string-append name "-" version))))
2810 (build-system emacs-build-system)
2811 (inputs
2812 `(("irony-mode" ,emacs-irony-mode)))
2813 (synopsis "Eldoc integration for irony-mode")
2814 (description "Irony-eldoc is an eldoc extension that shows documentation
2815 for the current function or variable in the minibuffer.")
2816 (home-page "https://github.com/ikirill/irony-eldoc")
2817 (license license:gpl3+)))
2818
2819 (define-public emacs-company-quickhelp
2820 (package
2821 (name "emacs-company-quickhelp")
2822 (version "2.3.0")
2823 (source
2824 (origin
2825 (method url-fetch)
2826 (uri (string-append
2827 "https://github.com/expez/company-quickhelp/archive/"
2828 version ".tar.gz"))
2829 (file-name (string-append name "-" version ".tar.gz"))
2830 (sha256
2831 (base32
2832 "0xrn2z1dgk5gmkmp2jkn9g83ckk39lqp5pyyv8rl7f6gqvib3qh0"))))
2833 (build-system emacs-build-system)
2834 (propagated-inputs
2835 `(("emacs-pos-tip" ,emacs-pos-tip)
2836 ("emacs-company" ,emacs-company)))
2837 (home-page "https://github.com/expez/company-quickhelp")
2838 (synopsis "Popup documentation for completion candidates")
2839 (description "@code{company-quickhelp} shows documentation for the
2840 completion candidate when using the Company text completion framework.")
2841 (license license:gpl3+)))
2842
2843 (define-public emacs-multiple-cursors
2844 (package
2845 (name "emacs-multiple-cursors")
2846 (version "1.4.0")
2847 (source
2848 (origin
2849 (method url-fetch)
2850 (uri (string-append "https://github.com/magnars/multiple-cursors.el/"
2851 "archive/" version ".tar.gz"))
2852 (file-name (string-append name "-" version ".tar.gz"))
2853 (sha256
2854 (base32
2855 "0hihihlvcvzayg5fnqzcg45fhvlmq6xlq58syy00rjwbry9w389k"))))
2856 (build-system emacs-build-system)
2857 (home-page "https://github.com/magnars/multiple-cursors.el")
2858 (synopsis "Multiple cursors for Emacs")
2859 (description
2860 "This package adds support to Emacs for editing text with multiple
2861 simultaneous cursors.")
2862 (license license:gpl3+)))
2863
2864 (define-public emacs-typo
2865 (package
2866 (name "emacs-typo")
2867 (version "1.1")
2868 (home-page "https://github.com/jorgenschaefer/typoel")
2869 (source (origin
2870 (method git-fetch)
2871 (uri (git-reference
2872 (url home-page)
2873 (commit (string-append "v" version))))
2874 (sha256
2875 (base32
2876 "1jhd4grch5iz12gyxwfbsgh4dmz5hj4bg4gnvphccg8dsnni05k2"))
2877 (file-name (string-append name "-" version))))
2878 (build-system emacs-build-system)
2879 (synopsis "Minor mode for typographic editing")
2880 (description
2881 "This package provides two Emacs modes, @code{typo-mode} and
2882 @code{typo-global-mode}. These modes automatically insert Unicode characters
2883 for quotation marks, dashes, and ellipses. For example, typing @kbd{\"}
2884 automatically inserts a Unicode opening or closing quotation mark, depending
2885 on context.")
2886 (license license:gpl3+)))
2887
2888 (define-public emacs-scheme-complete
2889 (let ((commit "9b5cf224bf2a5994bc6d5b152ff487517f1a9bb5"))
2890 (package
2891 (name "emacs-scheme-complete")
2892 (version (string-append "20151223." (string-take commit 8)))
2893 (source
2894 (origin
2895 (file-name (string-append name "-" version))
2896 (method git-fetch)
2897 (uri (git-reference
2898 (url "https://github.com/ashinn/scheme-complete.git")
2899 (commit commit)))
2900 (sha256
2901 (base32
2902 "141wn9l0m33w0g3dqmx8nxbfdny1r5xbr6ak61rsz21bk0qafs7x"))
2903 (patches
2904 (search-patches "emacs-scheme-complete-scheme-r5rs-info.patch"))))
2905 (build-system emacs-build-system)
2906 (home-page "https://github.com/ashinn/scheme-complete")
2907 (synopsis "Smart tab completion for Scheme in Emacs")
2908 (description
2909 "This file provides a single function, @code{scheme-smart-complete},
2910 which you can use for intelligent, context-sensitive completion for any Scheme
2911 implementation in Emacs. To use it just load this file and bind that function
2912 to a key in your preferred mode.")
2913 (license license:public-domain))))
2914
2915 (define-public emacs-scel
2916 (let ((version "20170629")
2917 (revision "1")
2918 (commit "aeea3ad4be9306d14c3a734a4ff54fee10ac135b"))
2919 (package
2920 (name "emacs-scel")
2921 (version (git-version version revision commit))
2922 (source
2923 (origin
2924 (method git-fetch)
2925 (uri (git-reference
2926 (url "https://github.com/supercollider/scel.git")
2927 (commit commit)))
2928 (file-name (string-append name "-" version "-checkout"))
2929 (sha256
2930 (base32
2931 "0jvmzs1lsjyndqshhii2y4mnr3wghai26i3p75453zrpxpg0zvvw"))))
2932 (build-system emacs-build-system)
2933 (arguments
2934 `(#:modules ((guix build emacs-build-system)
2935 ((guix build cmake-build-system) #:prefix cmake:)
2936 (guix build utils))
2937 #:imported-modules (,@%emacs-build-system-modules
2938 (guix build cmake-build-system))
2939 #:phases
2940 (modify-phases %standard-phases
2941 (add-after 'unpack 'configure
2942 (lambda* (#:key outputs #:allow-other-keys)
2943 (substitute* "el/CMakeLists.txt"
2944 (("share/emacs/site-lisp/SuperCollider")
2945 (string-append
2946 "share/emacs/site-lisp/guix.d/scel-" ,version)))
2947 ((assoc-ref cmake:%standard-phases 'configure)
2948 #:outputs outputs
2949 #:configure-flags '("-DSC_EL_BYTECOMPILE=OFF"))))
2950 (add-after 'set-emacs-load-path 'add-el-dir-to-emacs-load-path
2951 (lambda _
2952 (setenv "EMACSLOADPATH"
2953 (string-append (getcwd) "/el:" (getenv "EMACSLOADPATH")))
2954 #t))
2955 (replace 'install (assoc-ref cmake:%standard-phases 'install)))))
2956 (inputs
2957 `(("supercollider" ,supercollider)))
2958 (native-inputs
2959 `(("cmake" ,cmake)))
2960 (home-page "https://github.com/supercollider/scel")
2961 (synopsis "SuperCollider Emacs interface")
2962 (description "@code{emacs-scel} is an Emacs interface to SuperCollider.
2963 SuperCollider is a platform for audio synthesis and algorithmic composition.")
2964 (license license:gpl2+))))
2965
2966 (define-public emacs-mit-scheme-doc
2967 (package
2968 (name "emacs-mit-scheme-doc")
2969 (version "20140203")
2970 (source
2971 (origin
2972 (modules '((guix build utils)))
2973 (snippet
2974 ;; keep only file of interest
2975 '(begin
2976 (for-each delete-file '("dot-emacs.el" "Makefile"))
2977 (install-file "6.945-config/mit-scheme-doc.el" ".")
2978 (delete-file-recursively "6.945-config")
2979 #t))
2980 (file-name (string-append name "-" version ".tar.bz2"))
2981 (method url-fetch)
2982 (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/"
2983 "6.945/dont-panic/emacs-basic-config.tar.bz2"))
2984 (sha256
2985 (base32
2986 "0dqidg2bd66pawqfarvwca93w5gqf9mikn1k2a2rmd9ymfjpziq1"))))
2987 (build-system emacs-build-system)
2988 (inputs `(("mit-scheme" ,mit-scheme)))
2989 (arguments
2990 `(#:phases
2991 (modify-phases %standard-phases
2992 (add-after 'unpack 'configure-doc
2993 (lambda* (#:key inputs #:allow-other-keys)
2994 (let* ((mit-scheme-dir (assoc-ref inputs "mit-scheme"))
2995 (doc-dir (string-append mit-scheme-dir "/share/doc/"
2996 "mit-scheme-"
2997 ,(package-version mit-scheme))))
2998 (substitute* "mit-scheme-doc.el"
2999 (("http://www\\.gnu\\.org/software/mit-scheme/documentation/mit-scheme-ref/")
3000 (string-append "file:" doc-dir "/mit-scheme-ref/")))))))))
3001 (home-page "http://groups.csail.mit.edu/mac/users/gjs/6.945/dont-panic/")
3002 (synopsis "MIT-Scheme documentation lookup for Emacs")
3003 (description
3004 "This package provides a set of Emacs functions to search definitions of
3005 identifiers in the MIT-Scheme documentation.")
3006 (license license:gpl2+)))
3007
3008 (define-public emacs-constants
3009 (package
3010 (name "emacs-constants")
3011 (version "2.6")
3012 (home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
3013 (source
3014 (origin
3015 (file-name (string-append name "-" version ".tar.gz"))
3016 (method url-fetch)
3017 (uri (string-append "https://github.com/fedeinthemix/emacs-constants"
3018 "/archive/v" version ".tar.gz"))
3019 (sha256
3020 (base32
3021 "0pnrpmmxq8mh5h2hbrp5vcym0j0fh6dv3s7c5ccn18wllhzg9g7n"))))
3022 (build-system emacs-build-system)
3023 (synopsis "Enter definition of constants into an Emacs buffer")
3024 (description
3025 "This package provides functions for inserting the definition of natural
3026 constants and units into an Emacs buffer.")
3027 (license license:gpl2+)))
3028
3029 (define-public emacs-tagedit
3030 (package
3031 (name "emacs-tagedit")
3032 (version "1.4.0")
3033 (source
3034 (origin
3035 (method url-fetch)
3036 (uri (string-append "https://github.com/magnars/tagedit/"
3037 "archive/" version ".tar.gz"))
3038 (file-name (string-append name "-" version ".tar.gz"))
3039 (sha256
3040 (base32
3041 "1apfnann4qklfdsmdi7icjsj18x7gwx8d83iqr4z25clszz95xfq"))))
3042 (build-system emacs-build-system)
3043 (propagated-inputs
3044 `(("emacs-s" ,emacs-s)
3045 ("emacs-dash" ,emacs-dash)))
3046 (home-page "https://github.com/magnars/tagedit")
3047 (synopsis "Some paredit-like features for html-mode")
3048 (description
3049 "This package provides a collection of paredit-like functions for editing
3050 in @code{html-mode}.")
3051 (license license:gpl3+)))
3052
3053 (define-public emacs-slime
3054 (package
3055 (name "emacs-slime")
3056 (version "2.22")
3057 (source
3058 (origin
3059 (file-name (string-append name "-" version ".tar.gz"))
3060 (method url-fetch)
3061 (uri (string-append
3062 "https://github.com/slime/slime/archive/v"
3063 version ".tar.gz"))
3064 (sha256
3065 (base32
3066 "07vaib1n4zyh5yy30gdpq0bc5cv6w84piml5b3mfc9ibjhaykkms"))))
3067 (build-system emacs-build-system)
3068 (native-inputs
3069 `(("texinfo" ,texinfo)))
3070 (arguments
3071 `(#:include '("\\.el$" "\\.lisp$" "\\.asd$" "contrib")
3072 #:exclude '("^slime-tests.el" "^contrib/test/"
3073 "^contrib/Makefile$" "^contrib/README.md$")
3074 #:phases
3075 (modify-phases %standard-phases
3076 (add-before 'install 'configure
3077 (lambda* _
3078 (emacs-substitute-variables "slime.el"
3079 ("inferior-lisp-program" "sbcl"))
3080 #t))
3081 (add-before 'install 'install-doc
3082 (lambda* (#:key outputs #:allow-other-keys)
3083 (let* ((out (assoc-ref outputs "out"))
3084 (info-dir (string-append out "/share/info"))
3085 (doc-dir (string-append out "/share/doc/"
3086 ,name "-" ,version))
3087 (doc-files '("doc/slime-refcard.pdf"
3088 "README.md" "NEWS" "PROBLEMS"
3089 "CONTRIBUTING.md")))
3090 (with-directory-excursion "doc"
3091 (substitute* "Makefile"
3092 (("infodir=/usr/local/info")
3093 (string-append "infodir=" info-dir)))
3094 (invoke "make" "html/index.html")
3095 (invoke "make" "slime.info")
3096 (install-file "slime.info" info-dir)
3097 (copy-recursively "html" (string-append doc-dir "/html")))
3098 (for-each (lambda (f)
3099 (install-file f doc-dir)
3100 (delete-file f))
3101 doc-files)
3102 (delete-file-recursively "doc")
3103 #t))))))
3104 (home-page "https://github.com/slime/slime")
3105 (synopsis "Superior Lisp Interaction Mode for Emacs")
3106 (description
3107 "SLIME extends Emacs with support for interactive programming in
3108 Common Lisp. The features are centered around @command{slime-mode},
3109 an Emacs minor mode that complements the standard @command{lisp-mode}.
3110 While lisp-mode supports editing Lisp source files, @command{slime-mode}
3111 adds support for interacting with a running Common Lisp process
3112 for compilation, debugging, documentation lookup, and so on.")
3113 (license (list license:gpl2+ license:public-domain))))
3114
3115 (define-public emacs-popup
3116 (package
3117 (name "emacs-popup")
3118 (version "0.5.3")
3119 (source (origin
3120 (method url-fetch)
3121 (uri (string-append
3122 "https://github.com/auto-complete/popup-el/archive/v"
3123 version ".tar.gz"))
3124 (file-name (string-append name "-" version ".tar.gz"))
3125 (sha256
3126 (base32
3127 "1yrgfj8y69xmcb6kwgplhq68ndm9410qwh7sd2knnd1gchpphdc0"))))
3128 (build-system emacs-build-system)
3129 (home-page "https://github.com/auto-complete/popup-el")
3130 (synopsis "Visual Popup User Interface for Emacs")
3131 (description
3132 "Popup.el is a visual popup user interface library for Emacs.
3133 This provides a basic API and common UI widgets such as popup tooltips
3134 and popup menus.")
3135 (license license:gpl3+)))
3136
3137 (define-public emacs-puppet-mode
3138 (let ((commit "b3ed5057166a4f49dfa9be638523a348b55a2fd2")
3139 (revision "1"))
3140 (package
3141 (name "emacs-puppet-mode")
3142 ;; The last release, 0.3 was several years ago, and there have been many
3143 ;; commits since
3144 (version (git-version "0.3" revision commit))
3145 (source
3146 (origin
3147 (method url-fetch)
3148 (uri (string-append
3149 "https://raw.githubusercontent.com/voxpupuli/puppet-mode/"
3150 commit "/puppet-mode.el"))
3151 (sha256
3152 (base32
3153 "1indycxawsl0p2aqqg754f6735q3cmah9vd886rpn0ncc3ipi1xm"))))
3154 (build-system emacs-build-system)
3155 (home-page "https://github.com/voxpupuli/puppet-mode")
3156 (synopsis "Emacs major mode for the Puppet configuration language")
3157 (description
3158 "This package provides support for the Puppet configuration language,
3159 including syntax highlighting, indentation of expressions and statements,
3160 linting of manifests and integration with Puppet Debugger.")
3161 ;; Also incorporates work covered by the Apache License, Version 2.0
3162 (license license:gpl3+))))
3163
3164 (define-public emacs-god-mode
3165 (let ((commit "6cf0807b6555eb6fcf8387a4e3b667071ef38964")
3166 (revision "1"))
3167 (package
3168 (name "emacs-god-mode")
3169 (version (string-append "20151005.925."
3170 revision "-" (string-take commit 9)))
3171 (source
3172 (origin
3173 (method git-fetch)
3174 (uri (git-reference
3175 (url "https://github.com/chrisdone/god-mode.git")
3176 (commit commit)))
3177 (file-name (string-append name "-" version "-checkout"))
3178 (sha256
3179 (base32
3180 "1am415k4xxcva6y3vbvyvknzc6bma49pq3p85zmpjsdmsp18qdix"))))
3181 (build-system emacs-build-system)
3182 (home-page "https://github.com/chrisdone/god-mode")
3183 (synopsis "Minor mode for entering commands without modifier keys")
3184 (description
3185 "This package provides a global minor mode for entering Emacs commands
3186 without modifier keys. It's similar to Vim's separation of commands and
3187 insertion mode. When enabled all keys are implicitly prefixed with
3188 @samp{C-} (among other helpful shortcuts).")
3189 (license license:gpl3+))))
3190
3191 (define-public emacs-jinja2-mode
3192 (package
3193 (name "emacs-jinja2-mode")
3194 (version "0.2")
3195 (source
3196 (origin
3197 (method url-fetch)
3198 (uri (string-append "https://github.com/paradoxxxzero/jinja2-mode/"
3199 "archive/v" version ".tar.gz"))
3200 (file-name (string-append name "-" version ".tar.gz"))
3201 (sha256
3202 (base32
3203 "0cgxjab1kla2zc2fj7bzib6i7snp08zshandmp9kqcm85l262xpn"))))
3204 (build-system emacs-build-system)
3205 (home-page "https://github.com/paradoxxxzero/jinja2-mode")
3206 (synopsis "Major mode for jinja2")
3207 (description
3208 "Emacs major mode for jinja2 with: syntax highlighting,
3209 sgml/html integration, and indentation (working with sgml).")
3210 (license license:gpl3+)))
3211
3212 (define-public emacs-rfcview
3213 (package
3214 (name "emacs-rfcview")
3215 (version "0.13")
3216 (home-page "http://www.loveshack.ukfsn.org/emacs")
3217 (source (origin
3218 (method url-fetch)
3219 (uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el")
3220 (sha256
3221 (base32
3222 "0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz"))))
3223 (build-system emacs-build-system)
3224 (synopsis "Prettify Request for Comments (RFC) documents")
3225 (description "The Internet Engineering Task Force (IETF) and the Internet
3226 Society (ISOC) publish various Internet-related protocols and specifications
3227 as \"Request for Comments\" (RFC) documents and Internet Standard (STD)
3228 documents. RFCs and STDs are published in a simple text form. This package
3229 provides an Emacs major mode, rfcview-mode, which makes it more pleasant to
3230 read these documents in Emacs. It prettifies the text and adds
3231 hyperlinks/menus for easier navigation. It also provides functions for
3232 browsing the index of RFC documents and fetching them from remote servers or
3233 local directories.")
3234 (license license:gpl3+)))
3235
3236 (define-public emacs-ffap-rfc-space
3237 (package
3238 (name "emacs-ffap-rfc-space")
3239 (version "12")
3240 (home-page "http://user42.tuxfamily.org/ffap-rfc-space/index.html")
3241 (source (origin
3242 (method url-fetch)
3243 (uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el")
3244 (sha256
3245 (base32
3246 "1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck"))))
3247 (build-system emacs-build-system)
3248 (synopsis "Make ffap recognize an RFC with a space before its number")
3249 (description "The Internet Engineering Task Force (IETF) and the
3250 Internet Society (ISOC) publish various Internet-related protocols and
3251 specifications as \"Request for Comments\" (RFC) documents. The
3252 built-in Emacs module \"ffap\" (Find File at Point) has the ability to
3253 recognize names at point which look like \"RFC1234\" and \"RFC-1234\"
3254 and load the appropriate RFC from a remote server. However, it fails
3255 to recognize a name like \"RFC 1234\". This package enhances ffap so
3256 that it correctly finds RFCs even when a space appears before the
3257 number.")
3258 (license license:gpl3+)))
3259
3260 (define-public emacs-org-bullets
3261 (package
3262 (name "emacs-org-bullets")
3263 (version "0.2.4")
3264 (source
3265 (origin
3266 (method url-fetch)
3267 (uri (string-append "https://github.com/sabof/org-bullets/archive/"
3268 version ".tar.gz"))
3269 (file-name (string-append name "-" version ".tar.gz"))
3270 (sha256
3271 (base32
3272 "1dyxvpb73vj80v8br2q9rf255hfphrgaw91fbvwdcd735np9pcnh"))))
3273 (build-system emacs-build-system)
3274 (home-page "https://github.com/sabof/org-bullets")
3275 (synopsis "Show bullets in org-mode as UTF-8 characters")
3276 (description
3277 "This package provides an Emacs minor mode causing bullets in
3278 @code{org-mode} to be rendered as UTF-8 characters.")
3279 (license license:gpl3+)))
3280
3281 (define-public emacs-org-pomodoro
3282 (package
3283 (name "emacs-org-pomodoro")
3284 (version "2.1.0")
3285 (source
3286 (origin
3287 (method url-fetch)
3288 (uri (string-append
3289 "https://github.com/lolownia/org-pomodoro/archive/"
3290 version ".tar.gz"))
3291 (file-name (string-append name "-" version ".tar.gz"))
3292 (sha256
3293 (base32
3294 "1jalsggw3q5kvj353f84x4nl04a5vmq07h75ggppy1627lb31zm4"))))
3295 (build-system emacs-build-system)
3296 (propagated-inputs
3297 `(("emacs-alert" ,emacs-alert)))
3298 (home-page "https://github.com/lolownia/org-pomodoro")
3299 (synopsis "Pomodoro technique for org-mode")
3300 (description "@code{emacs-org-pomodoro} adds very basic support for
3301 Pomodoro technique in Emacs org-mode.
3302
3303 Run @code{M-x org-pomodoro} for the task at point or select one of the
3304 last tasks that you clocked time for. Each clocked-in pomodoro starts
3305 a timer of 25 minutes and after each pomodoro a break timer of 5
3306 minutes is started automatically. Every 4 breaks a long break is
3307 started with 20 minutes. All values are customizable.")
3308 (license license:gpl3+)))
3309
3310 (define-public emacs-org-trello
3311 (package
3312 (name "emacs-org-trello")
3313 (version "0.8.0")
3314 (source (origin
3315 (method url-fetch)
3316 (uri (string-append
3317 "https://github.com/org-trello/org-trello/archive/"
3318 version ".tar.gz"))
3319 (file-name (string-append name "-" version ".tar.gz"))
3320 (sha256
3321 (base32
3322 "0549mnf5cgwn8b8jbl38fljbaxmh1605sv9j8f3lsa95jhs1zpa0"))))
3323 (build-system emacs-build-system)
3324 (propagated-inputs
3325 `(("emacs-dash" ,emacs-dash)
3326 ("emacs-deferred" ,emacs-deferred)
3327 ("emacs-f" ,emacs-f)
3328 ("emacs-helm" ,emacs-helm)
3329 ("emacs-request" ,emacs-request)
3330 ("emacs-s" ,emacs-s)))
3331 (home-page "https://org-trello.github.io")
3332 (synopsis "Emacs minor mode for interacting with Trello")
3333 (description "This package provides an Emacs minor mode to extend
3334 @code{org-mode} with Trello abilities. Trello is an online project
3335 organizer.")
3336 (license license:gpl3+)))
3337
3338 (define-public emacs-atom-one-dark-theme
3339 (let ((commit "1f1185bf667a38d3d0d180ce85fd4c131818aae2")
3340 (revision "0"))
3341 (package
3342 (name "emacs-atom-one-dark-theme")
3343 (version (git-version "0.4.0" revision commit))
3344 (source (origin
3345 (method git-fetch)
3346 (uri (git-reference
3347 (url "https://github.com/jonathanchu/atom-one-dark-theme.git")
3348 (commit commit)))
3349 (sha256
3350 (base32
3351 "1alma16hg3mfjly8a9s3mrswkjjx4lrpdnf43869hn2ibkn7zx9z"))
3352 (file-name (git-file-name name version))))
3353 (build-system emacs-build-system)
3354 (home-page "https://github.com/jonathanchu/atom-one-dark-theme")
3355 (synopsis "Atom One Dark color theme for Emacs")
3356 (description "An Emacs port of the Atom One Dark theme from Atom.io.")
3357 (license license:gpl3+))))
3358
3359 (define-public emacs-zenburn-theme
3360 (package
3361 (name "emacs-zenburn-theme")
3362 (version "2.6")
3363 (source (origin
3364 (method url-fetch)
3365 (uri (string-append
3366 "https://github.com/bbatsov/zenburn-emacs/archive/v"
3367 version ".tar.gz"))
3368 (file-name (string-append name "-" version ".tar.gz"))
3369 (sha256
3370 (base32
3371 "0qc9d1rwq55yzh8shbppyd6izy1grpyr8kqh5zdgm7c5jccngpr4"))))
3372 (build-system emacs-build-system)
3373 (home-page "https://github.com/bbatsov/zenburn-emacs")
3374 (synopsis "Low contrast color theme for Emacs")
3375 (description
3376 "Zenburn theme is a port of the popular Vim Zenburn theme for Emacs.
3377 It is built on top of the custom theme support in Emacs 24 or later.")
3378 (license license:gpl3+)))
3379
3380 (define-public emacs-solarized-theme
3381 (package
3382 (name "emacs-solarized-theme")
3383 (version "1.2.2")
3384 (source (origin
3385 (method url-fetch)
3386 (uri (string-append "https://github.com/bbatsov/solarized-emacs/"
3387 "archive/v" version ".tar.gz"))
3388 (file-name (string-append name "-" version ".tar.gz"))
3389 (sha256
3390 (base32
3391 "1ha3slc6d9wi9ilkhmwrzkvf308n6ph7b0k69pk369s9304awxzx"))))
3392 (build-system emacs-build-system)
3393 (propagated-inputs
3394 `(("emacs-dash" ,emacs-dash)))
3395 (home-page "https://github.com/bbatsov/solarized-emacs")
3396 (synopsis "Port of the Solarized theme for Emacs")
3397 (description
3398 "Solarized for Emacs is a port of the Solarized theme for Vim. This
3399 package provides a light and a dark variant.")
3400 (license license:gpl3+)))
3401
3402 (define-public emacs-ahungry-theme
3403 (package
3404 (name "emacs-ahungry-theme")
3405 (version "1.10.0")
3406 (source
3407 (origin (method url-fetch)
3408 (uri (string-append "https://elpa.gnu.org/packages/ahungry-theme-"
3409 version ".tar"))
3410 (sha256
3411 (base32
3412 "14q5yw56n82qph09bk7wmj5b1snhh9w0nk5s1l7yn9ldg71xq6pm"))))
3413 (build-system emacs-build-system)
3414 (home-page "https://github.com/ahungry/color-theme-ahungry")
3415 (synopsis "Ahungry color theme for Emacs")
3416 (description "Ahungry theme for Emacs provides bright and bold colors.
3417 If you load it from a terminal, you will be able to make use of the
3418 transparent background. If you load it from a GUI, it will default to a
3419 dark background.")
3420 (license license:gpl3+)))
3421
3422 (define-public emacs-2048-game
3423 (package
3424 (name "emacs-2048-game")
3425 (version "20151026.1233")
3426 (source
3427 (origin
3428 (method url-fetch)
3429 (uri (string-append "https://melpa.org/packages/2048-game-"
3430 version ".el"))
3431 (sha256
3432 (base32
3433 "0gy2pvz79whpavp4jmz8h9krzn7brmvv3diixi1d4w51pcdvaldd"))))
3434 (build-system emacs-build-system)
3435 (home-page "https://bitbucket.org/zck/2048.el")
3436 (synopsis "Implementation of the game 2048 in Emacs Lisp")
3437 (description
3438 "This program is an implementation of 2048 for Emacs.
3439 The goal of this game is to create a tile with value 2048. The size of the
3440 board and goal value can be customized.")
3441 (license license:gpl3+)))
3442
3443 (define-public emacs-base16-theme
3444 (package
3445 (name "emacs-base16-theme")
3446 (version "2.1")
3447 (source
3448 (origin
3449 (method url-fetch)
3450 (uri (string-append "https://stable.melpa.org/packages/base16-theme-"
3451 version ".tar"))
3452 (sha256
3453 (base32
3454 "0z6hrwz2jlz6jbr381rcqcqvx6hss5cad352klx07rark7zccacj"))))
3455 (build-system emacs-build-system)
3456 (home-page "https://github.com/belak/base16-emacs")
3457 (synopsis "Base16 color themes for Emacs")
3458 (description
3459 "Base16 provides carefully chosen syntax highlighting and a default set
3460 of sixteen colors suitable for a wide range of applications. Base16 is not a
3461 single theme but a set of guidelines with numerous implementations.")
3462 (license license:expat)))
3463
3464 (define-public emacs-smartparens
3465 (package
3466 (name "emacs-smartparens")
3467 (version "1.11.0")
3468 (source (origin
3469 (method url-fetch)
3470 (uri (string-append
3471 "https://github.com/Fuco1/smartparens/archive/"
3472 version ".tar.gz"))
3473 (file-name (string-append name "-" version ".tar.gz"))
3474 (sha256
3475 (base32
3476 "0q5as813xs8y29i3v2rm97phd6m7xsmmw6hwbvx57gwmi8i1c409"))))
3477 (build-system emacs-build-system)
3478 (propagated-inputs
3479 `(("emacs-dash" ,emacs-dash)
3480 ("emacs-markdown-mode" ,emacs-markdown-mode)))
3481 (home-page "https://github.com/Fuco1/smartparens")
3482 (synopsis "Paredit-like insertion, wrapping and navigation with user
3483 defined pairs")
3484 (description
3485 "Smartparens is a minor mode for Emacs that deals with parens pairs
3486 and tries to be smart about it. It started as a unification effort to
3487 combine functionality of several existing packages in a single,
3488 compatible and extensible way to deal with parentheses, delimiters, tags
3489 and the like. Some of these packages include autopair, textmate,
3490 wrap-region, electric-pair-mode, paredit and others. With the basic
3491 features found in other packages it also brings many improvements as
3492 well as completely new features.")
3493 (license license:gpl3+)))
3494
3495 (define-public emacs-highlight-symbol
3496 (package
3497 (name "emacs-highlight-symbol")
3498 (version "1.3")
3499 (source (origin
3500 (method url-fetch)
3501 (uri (string-append
3502 "https://github.com/nschum/highlight-symbol.el/archive/"
3503 version ".tar.gz"))
3504 (file-name (string-append name "-" version ".tar.gz"))
3505 (sha256
3506 (base32
3507 "1n7k1qns0fn0jsyc0hrjac5nzk21xw48yc30vyrhwvc51h0b9g90"))))
3508 (build-system emacs-build-system)
3509 (home-page "https://nschum.de/src/emacs/highlight-symbol")
3510 (synopsis "Automatic and manual symbol highlighting for Emacs")
3511 (description
3512 "Use @code{highlight-symbol} to toggle highlighting of the symbol at
3513 point throughout the current buffer. Use @code{highlight-symbol-mode} to keep
3514 the symbol at point highlighted.
3515
3516 The functions @code{highlight-symbol-next}, @code{highlight-symbol-prev},
3517 @code{highlight-symbol-next-in-defun} and
3518 @code{highlight-symbol-prev-in-defun} allow for cycling through the locations
3519 of any symbol at point. Use @code{highlight-symbol-nav-mode} to enable key
3520 bindings @code{M-p} and @code{M-p} for navigation. When
3521 @code{highlight-symbol-on-navigation-p} is set, highlighting is triggered
3522 regardless of @code{highlight-symbol-idle-delay}.
3523
3524 @code{highlight-symbol-query-replace} can be used to replace the symbol. ")
3525 (license license:gpl2+)))
3526
3527 (define-public emacs-hl-todo
3528 (package
3529 (name "emacs-hl-todo")
3530 (version "1.9.0")
3531 (source (origin
3532 (method url-fetch)
3533 (uri (string-append
3534 "https://raw.githubusercontent.com/tarsius/hl-todo/"
3535 version "/hl-todo.el"))
3536 (file-name (string-append "hl-todo-" version ".el"))
3537 (sha256
3538 (base32
3539 "0728givzh7xv5i88ac9if8byj1p8bilrj1fnizca10s0rv100hdr"))))
3540 (build-system emacs-build-system)
3541 (home-page "https://github.com/tarsius/hl-todo")
3542 (synopsis "Emacs mode to highlight TODO and similar keywords")
3543 (description
3544 "This package provides an Emacs mode to highlight TODO and similar
3545 keywords in comments and strings. This package also provides commands for
3546 moving to the next or previous keyword and to invoke @code{occur} with a
3547 regexp that matches all known keywords.")
3548 (license license:gpl3+)))
3549
3550 (define-public emacs-perspective
3551 (package
3552 (name "emacs-perspective")
3553 (version "1.12")
3554 (source
3555 (origin
3556 (method url-fetch)
3557 (uri (string-append "https://github.com/nex3/perspective-el/"
3558 "archive/" version ".tar.gz"))
3559 (file-name (string-append name "-" version ".tar.gz"))
3560 (sha256
3561 (base32
3562 "078ahh0kmhdylq5ib9c81c76kz1n02xwc83pm729d00i84ibviic"))))
3563 (build-system emacs-build-system)
3564 (home-page "https://github.com/nex3/perspective-el")
3565 (synopsis "Switch between named \"perspectives\"")
3566 (description
3567 "This package provides tagged workspaces in Emacs, similar to workspaces in
3568 windows managers such as Awesome and XMonad. @code{perspective.el} provides
3569 multiple workspaces (or \"perspectives\") for each Emacs frame. Each
3570 perspective is composed of a window configuration and a set of buffers.
3571 Switching to a perspective activates its window configuration, and when in a
3572 perspective only its buffers are available by default.")
3573 ;; This package is released under the same license as Emacs (GPLv3+) or
3574 ;; the Expat license.
3575 (license license:gpl3+)))
3576
3577 (define-public emacs-test-simple
3578 (package
3579 (name "emacs-test-simple")
3580 (version "1.3.0")
3581 (source
3582 (origin
3583 (method url-fetch)
3584 (uri (string-append "https://elpa.gnu.org/packages/test-simple-"
3585 version ".el"))
3586 (sha256
3587 (base32
3588 "1yd61jc9ds95a5n09052kwc5gasy57g4lxr0jsff040brlyi9czz"))))
3589 (build-system emacs-build-system)
3590 (home-page "https://github.com/rocky/emacs-test-simple")
3591 (synopsis "Simple unit test framework for Emacs Lisp")
3592 (description
3593 "Test Simple is a simple unit test framework for Emacs Lisp. It
3594 alleviates the need for context macros, enclosing specifications or required
3595 test tags. It supports both interactive and non-interactive use.")
3596 (license license:gpl3+)))
3597
3598 (define-public emacs-load-relative
3599 (package
3600 (name "emacs-load-relative")
3601 (version "1.3")
3602 (source
3603 (origin
3604 (method url-fetch)
3605 (uri (string-append "https://elpa.gnu.org/packages/load-relative-"
3606 version ".el"))
3607 (sha256
3608 (base32
3609 "1hfxb2436jdsi9wfmsv47lkkpa5galjf5q81bqabbsv79rv59dps"))))
3610 (build-system emacs-build-system)
3611 (home-page "http://github.com/rocky/emacs-load-relative")
3612 (synopsis "Emacs Lisp relative file loading related functions")
3613 (description
3614 "Provides functions which facilitate writing multi-file Emacs packages
3615 and running from the source tree without having to \"install\" code or fiddle
3616 with @{load-path}.
3617
3618 The main function, @code{load-relative}, loads an Emacs Lisp file relative to
3619 another (presumably currently running) Emacs Lisp file.")
3620 (license license:gpl3+)))
3621
3622 (define-public emacs-loc-changes
3623 (package
3624 (name "emacs-loc-changes")
3625 (version "1.2")
3626 (source
3627 (origin
3628 (method url-fetch)
3629 (uri (string-append "https://elpa.gnu.org/packages/loc-changes-"
3630 version ".el"))
3631 (sha256
3632 (base32
3633 "1x8fn8vqasayf1rb8a6nma9n6nbvkx60krmiahyb05vl5rrsw6r3"))))
3634 (build-system emacs-build-system)
3635 (home-page "https://github.com/rocky/emacs-loc-changes")
3636 (synopsis "Keeps track of positions even after buffer changes")
3637 (description
3638 "This Emacs package provides a mean to track important buffer positions
3639 after buffer changes.")
3640 (license license:gpl3+)))
3641
3642 (define-public emacs-realgud
3643 (package
3644 (name "emacs-realgud")
3645 (version "1.4.5")
3646 (source
3647 (origin
3648 (method url-fetch)
3649 (uri (string-append "https://elpa.gnu.org/packages/realgud-"
3650 version ".tar"))
3651 (sha256
3652 (base32
3653 "108wgxg7fb4byaiasgvbxv2hq7b00biq9f0mh9hy6vw4160y5w24"))
3654 (patches
3655 ;; Patch awaiting inclusion upstream (see:
3656 ;; https://github.com/realgud/realgud/pull/226).
3657 (search-patches "emacs-realgud-fix-configure-ac.patch"))))
3658 (build-system emacs-build-system)
3659 (arguments
3660 `(#:tests? #t
3661 #:phases
3662 (modify-phases %standard-phases
3663 (add-after 'set-emacs-load-path 'fix-autogen-script
3664 (lambda _
3665 (substitute* "autogen.sh"
3666 (("./configure") "sh configure"))))
3667 (add-after 'fix-autogen-script 'autogen
3668 (lambda _
3669 (setenv "CONFIG_SHELL" "sh")
3670 (invoke "sh" "autogen.sh")))
3671 (add-after 'fix-autogen-script 'set-home
3672 (lambda _
3673 (setenv "HOME" (getenv "TMPDIR"))))
3674 (add-before 'patch-el-files 'remove-realgud-pkg.el
3675 (lambda _
3676 ;; XXX: This file is auto-generated at some point and causes
3677 ;; substitute* to crash during the `patch-el-files' phase with:
3678 ;; ERROR: In procedure stat: No such file or directory:
3679 ;; "./realgud-pkg.el"
3680 (delete-file "./realgud-pkg.el")
3681 ;; FIXME: `patch-el-files' crashes on this file with error:
3682 ;; unable to locate "bashdb".
3683 (delete-file "./test/test-regexp-bashdb.el"))))
3684 #:include (cons* ".*\\.el$" %default-include)))
3685 (native-inputs
3686 `(("autoconf" ,autoconf)
3687 ("automake" ,automake)
3688 ("emacs-test-simple" ,emacs-test-simple)))
3689 (propagated-inputs
3690 `(("emacs-load-relative" ,emacs-load-relative)
3691 ("emacs-loc-changes" ,emacs-loc-changes)))
3692 (home-page "https://github.com/realgud/realgud/")
3693 (synopsis
3694 "Modular front-end for interacting with external debuggers")
3695 (description
3696 "RealGUD is a modular, extensible GNU Emacs front-end for interacting
3697 with external debuggers. It integrates various debuggers such as gdb, pdb,
3698 ipdb, jdb, lldb, bashdb, zshdb, etc. and allows to visually step code in the
3699 sources. Unlike GUD, it also supports running multiple debug sessions in
3700 parallel.")
3701 (license license:gpl3+)))
3702
3703 (define-public emacs-request
3704 (package
3705 (name "emacs-request")
3706 (version "0.3.0")
3707 (source (origin
3708 (method git-fetch)
3709 (uri (git-reference
3710 (url "https://github.com/tkf/emacs-request.git")
3711 (commit (string-append "v" version))))
3712 (file-name (string-append name "-" version "-checkout"))
3713 (sha256
3714 (base32
3715 "0wyxqbb35yqf6ci47531lk32d6fppamx9d8826kdz983vm87him7"))))
3716 (build-system emacs-build-system)
3717 (propagated-inputs
3718 `(("emacs-deferred" ,emacs-deferred)))
3719 (home-page "https://github.com/tkf/emacs-request")
3720 (synopsis "Package for speaking HTTP in Emacs Lisp")
3721 (description "This package provides a HTTP request library with multiple
3722 backends. It supports url.el which is shipped with Emacs and the curl command
3723 line program.")
3724 (license license:gpl3+)))
3725
3726 (define-public emacs-rudel
3727 (package
3728 (name "emacs-rudel")
3729 (version "0.3.1")
3730 (source
3731 (origin
3732 (method url-fetch)
3733 (uri (string-append "http://elpa.gnu.org/packages/rudel-"
3734 version ".tar"))
3735 (sha256
3736 (base32
3737 "0glqa68g509p0s2vcc0i8kzlddnc9brd9jqhnm5rzxz4i050cvnz"))))
3738 (build-system emacs-build-system)
3739 (home-page "http://rudel.sourceforge.net/")
3740 (synopsis "Collaborative editing framework")
3741 (description
3742 "Rudel is a collaborative editing environment for GNU Emacs. Its purpose
3743 is to share buffers with other users in order to edit the contents of those
3744 buffers collaboratively. Rudel supports multiple backends to enable
3745 communication with other collaborative editors using different protocols,
3746 though currently Obby (for use with the Gobby editor) is the only
3747 fully-functional one.")
3748 (license license:gpl3+)))
3749
3750 (define-public emacs-hydra
3751 (package
3752 (name "emacs-hydra")
3753 (version "0.14.0")
3754 (source
3755 (origin
3756 (method git-fetch)
3757 (uri (git-reference
3758 (url "https://github.com/abo-abo/hydra")
3759 (commit version)))
3760 (file-name (git-file-name name version))
3761 (sha256
3762 (base32
3763 "0ln4z2796ycy33g5jcxkqvm7638qxy4sipsab7d2864hh700cikg"))))
3764 (build-system emacs-build-system)
3765 (home-page "https://github.com/abo-abo/hydra")
3766 (synopsis "Make Emacs bindings that stick around")
3767 (description
3768 "This package can be used to tie related commands into a family of short
3769 bindings with a common prefix---a Hydra. Once you summon the Hydra (through
3770 the prefixed binding), all the heads can be called in succession with only a
3771 short extension. Any binding that isn't the Hydra's head vanquishes the
3772 Hydra. Note that the final binding, besides vanquishing the Hydra, will still
3773 serve its original purpose, calling the command assigned to it. This makes
3774 the Hydra very seamless; it's like a minor mode that disables itself
3775 automatically.")
3776 (license license:gpl3+)))
3777
3778 (define-public emacs-ivy
3779 (package
3780 (name "emacs-ivy")
3781 (version "0.10.0")
3782 (source
3783 (origin
3784 (method git-fetch)
3785 (uri (git-reference
3786 (url "https://github.com/abo-abo/swiper.git")
3787 (commit version)))
3788 (file-name (string-append name "-" version "-checkout"))
3789 (sha256
3790 (base32
3791 "14vnigqb5c3yi4q9ysw1fiwdqyqwyklqpb9wnjf81chm7s2mshnr"))))
3792 (build-system emacs-build-system)
3793 (arguments
3794 `(#:phases
3795 (modify-phases %standard-phases
3796 (add-after 'install 'install-doc
3797 (lambda* (#:key outputs #:allow-other-keys)
3798 (let* ((out (assoc-ref outputs "out"))
3799 (info (string-append out "/share/info")))
3800 (with-directory-excursion "doc"
3801 (invoke "makeinfo" "ivy.texi")
3802 (install-file "ivy.info" info)
3803 #t)))))))
3804 (propagated-inputs
3805 `(("emacs-hydra" ,emacs-hydra)))
3806 (native-inputs
3807 `(("texinfo" ,texinfo)))
3808 (home-page "http://oremacs.com/swiper/")
3809 (synopsis "Incremental vertical completion for Emacs")
3810 (description
3811 "This package provides @code{ivy-read} as an alternative to
3812 @code{completing-read} and similar functions. No attempt is made to determine
3813 the best candidate. Instead, the user can navigate candidates with
3814 @code{ivy-next-line} and @code{ivy-previous-line}. The matching is done by
3815 splitting the input text by spaces and re-building it into a regular
3816 expression.")
3817 (license license:gpl3+)))
3818
3819 (define-public emacs-ivy-yasnippet
3820 (let ((commit "32580b4fd23ebf9ca7dde96704f7d53df6e253cd")
3821 (revision "2"))
3822 (package
3823 (name "emacs-ivy-yasnippet")
3824 (version (git-version "0.1" revision commit))
3825 (source
3826 (origin
3827 (method git-fetch)
3828 (uri (git-reference
3829 (url "https://github.com/mkcms/ivy-yasnippet.git")
3830 (commit commit)))
3831 (file-name (git-file-name name version))
3832 (sha256
3833 (base32
3834 "1wfg6mmd5gl1qgvayyzpxlkh9s7jgn20y8l1vh1zbj1czvv51xp8"))))
3835 (build-system emacs-build-system)
3836 (propagated-inputs
3837 `(("emacs-ivy" ,emacs-ivy)
3838 ("emacs-yasnippet" ,emacs-yasnippet)
3839 ("emacs-dash" ,emacs-dash)))
3840 (home-page "https://github.com/mkcms/ivy-yasnippet")
3841 (synopsis "Preview @code{yasnippets} with @code{ivy}")
3842 (description "This package allows you to select @code{yasnippet}
3843 snippets using @code{ivy} completion. When current selection changes in the
3844 minibuffer, the snippet contents are temporarily expanded in the buffer. To
3845 use it, call @code{M-x ivy-yasnippet} (but make sure you have enabled
3846 @code{yas-minor-mode} first).")
3847 (license license:gpl3+))))
3848
3849 (define-public emacs-ivy-rich
3850 (package
3851 (name "emacs-ivy-rich")
3852 (version "0.1.0")
3853 (source
3854 (origin
3855 (method url-fetch)
3856 (uri (string-append "https://github.com/Yevgnen/ivy-rich/archive/"
3857 version ".tar.gz"))
3858 (file-name (string-append name "-" version ".tar.gz"))
3859 (sha256
3860 (base32
3861 "14r3mx5rkd4wz0ls5pv5w6c7la3z9iy93d3jfind3xyg4kywy95c"))))
3862 (build-system emacs-build-system)
3863 (propagated-inputs
3864 `(("emacs-ivy" ,emacs-ivy)))
3865 (home-page "https://github.com/Yevgnen/ivy-rich")
3866 (synopsis "More friendly interface for @code{ivy}")
3867 (description
3868 "This package extends @code{ivy} by showing more information in the
3869 minibuffer for each candidate. It adds columns showing buffer modes, file
3870 sizes, docstrings, etc. If @code{emacs-all-the-icons} is installed, it can
3871 show icons as well.")
3872 (license license:gpl3+)))
3873
3874 (define-public emacs-avy
3875 (package
3876 (name "emacs-avy")
3877 (version "0.4.0")
3878 (source
3879 (origin
3880 (method url-fetch)
3881 (uri (string-append "https://github.com/abo-abo/avy/archive/"
3882 version ".tar.gz"))
3883 (file-name (string-append name "-" version ".tar.gz"))
3884 (sha256
3885 (base32
3886 "1wdrq512h25ymzjbf2kbsdymvd2ryfwzb6bh5bc3yv7q203im796"))))
3887 (build-system emacs-build-system)
3888 (home-page "https://github.com/abo-abo/avy")
3889 (synopsis "Tree-based completion for Emacs")
3890 (description
3891 "This package provides a generic completion method based on building a
3892 balanced decision tree with each candidate being a leaf. To traverse the tree
3893 from the root to a desired leaf, typically a sequence of @code{read-key} can
3894 be used.
3895
3896 In order for @code{read-key} to make sense, the tree needs to be visualized
3897 appropriately, with a character at each branch node. So this completion
3898 method works only for things that you can see on your screen, all at once,
3899 such as the positions of characters, words, line beginnings, links, or
3900 windows.")
3901 (license license:gpl3+)))
3902
3903 (define-public emacs-ace-window
3904 (package
3905 (name "emacs-ace-window")
3906 (version "0.9.0")
3907 (source
3908 (origin
3909 (method url-fetch)
3910 (uri (string-append "https://github.com/abo-abo/ace-window/archive/"
3911 version ".tar.gz"))
3912 (file-name (string-append name "-" version ".tar.gz"))
3913 (sha256
3914 (base32
3915 "1p2sgfl5dml4zbd6ldql6lm2m9vmd236ah996ni32x254s48j5pn"))))
3916 (build-system emacs-build-system)
3917 (propagated-inputs
3918 `(("emacs-avy" ,emacs-avy)))
3919 (home-page "https://github.com/abo-abo/ace-window")
3920 (synopsis "Quickly switch windows in Emacs")
3921 (description
3922 "@code{ace-window} is meant to replace @code{other-window}.
3923 In fact, when there are only two windows present, @code{other-window} is
3924 called. If there are more, each window will have its first character
3925 highlighted. Pressing that character will switch to that window.")
3926 (license license:gpl3+)))
3927
3928 (define-public emacs-iedit
3929 (package
3930 (name "emacs-iedit")
3931 (version "0.9.9.9")
3932 (source
3933 (origin
3934 (method url-fetch)
3935 (uri (string-append "https://github.com/victorhge/iedit/archive/v"
3936 version ".tar.gz"))
3937 (file-name (string-append name "-" version ".tar.gz"))
3938 (sha256
3939 (base32
3940 "1hv8q6pr85ss9g3158l1fqv3m62vsq8rslsi86jicr2dcxyascr0"))))
3941 (build-system emacs-build-system)
3942 (home-page "http://www.emacswiki.org/emacs/Iedit")
3943 (synopsis "Edit multiple regions in the same way simultaneously")
3944 (description
3945 "This package is an Emacs minor mode and allows you to edit one
3946 occurrence of some text in a buffer (possibly narrowed) or region, and
3947 simultaneously have other occurrences edited in the same way.
3948
3949 You can also use Iedit mode as a quick way to temporarily show only the buffer
3950 lines that match the current text being edited. This gives you the effect of
3951 a temporary @code{keep-lines} or @code{occur}.")
3952 (license license:gpl3+)))
3953
3954 (define-public emacs-zoutline
3955 (let ((commit "b3ee0f0e0b916838c2d2c249beba74ffdb8d5699")
3956 (revision "0"))
3957 (package
3958 (name "emacs-zoutline")
3959 (version (git-version "0.1" revision commit))
3960 (home-page "https://github.com/abo-abo/zoutline")
3961 (source (origin
3962 (method git-fetch)
3963 (uri (git-reference (url home-page) (commit commit)))
3964 (sha256
3965 (base32
3966 "0sd0017piw0dis6dhpq5dkqd3acisxqgipl7dj8gmc1vnswhdwr8"))
3967 (file-name (git-file-name name version))))
3968 (build-system emacs-build-system)
3969 (synopsis "Simple outline library")
3970 (description
3971 "This library provides helpers for outlines. Outlines allow users to
3972 navigate code in a tree-like fashion.")
3973 (license license:gpl3+))))
3974
3975 (define-public emacs-lispy
3976 ;; Release 0.26.0 was almost 3 years ago, and there have been ~772 commits
3977 ;; since.
3978 (let ((commit "c2a358a7a15fcf056a5b7461a8e690b481b03b80")
3979 (revision "0"))
3980 (package
3981 (name "emacs-lispy")
3982 (version (git-version "0.26.0" revision commit))
3983 (home-page "https://github.com/abo-abo/lispy")
3984 (source (origin
3985 (method git-fetch)
3986 (uri (git-reference (url home-page) (commit commit)))
3987 (sha256
3988 (base32
3989 "1g6756qqx2n4cx8jac6mlwayilsiyc5rz8nrqjnywvzc75xdinjd"))
3990 (file-name (git-file-name name version))))
3991 (build-system emacs-build-system)
3992 (propagated-inputs
3993 `(("emacs-ace-window" ,emacs-ace-window)
3994 ("emacs-iedit" ,emacs-iedit)
3995 ("emacs-ivy" ,emacs-ivy)
3996 ("emacs-hydra" ,emacs-hydra)
3997 ("emacs-zoutline" ,emacs-zoutline)))
3998 (synopsis "Modal S-expression editing")
3999 (description
4000 "Due to the structure of Lisp syntax it's very rare for the programmer
4001 to want to insert characters right before \"(\" or right after \")\". Thus
4002 unprefixed printable characters can be used to call commands when the point is
4003 at one of these special locations. Lispy provides unprefixed keybindings for
4004 S-expression editing when point is at the beginning or end of an
4005 S-expression.")
4006 (license license:gpl3+))))
4007
4008 (define-public emacs-lispyville
4009 ;; Later versions need a more recent Evil, with an evil-define-key*
4010 ;; supporting nil for the state.
4011 (let ((commit "b4291857ed6a49a67c4ea77522889ce51fb171ab")
4012 (revision "0"))
4013 (package
4014 (name "emacs-lispyville")
4015 (version (git-version "0.1" revision commit))
4016 (home-page "https://github.com/noctuid/lispyville")
4017 (source (origin
4018 (method git-fetch)
4019 (uri (git-reference (url home-page) (commit commit)))
4020 (sha256
4021 (base32
4022 "095zibzc3naknahdrnb59g9rbljy8wz9rkc7rf8avb3wxlwvxhm3"))
4023 (file-name (git-file-name name version))))
4024 (propagated-inputs
4025 `(("emacs-evil" ,emacs-evil)
4026 ("emacs-lispy" ,emacs-lispy)))
4027 (build-system emacs-build-system)
4028 (synopsis "Minor mode for integrating Evil with lispy")
4029 (description
4030 "LispyVille's main purpose is to provide a Lisp editing environment
4031 suited towards Evil users. It can serve as a minimal layer on top of lispy
4032 for better integration with Evil, but it does not require the use of lispy’s
4033 keybinding style. The provided commands allow for editing Lisp in normal
4034 state and will work even without lispy being enabled.")
4035 (license license:gpl3+))))
4036
4037 (define-public emacs-clojure-mode
4038 (package
4039 (name "emacs-clojure-mode")
4040 (version "5.6.1")
4041 (source (origin
4042 (method url-fetch)
4043 (uri (string-append
4044 "https://github.com/clojure-emacs/clojure-mode/archive/"
4045 version ".tar.gz"))
4046 (file-name (string-append name "-" version ".tar.gz"))
4047 (sha256
4048 (base32
4049 "1f4k1hncy5ygh4izn7mqfp744nnisrp9ywn2njknbjxx34ai1q88"))))
4050 (build-system emacs-build-system)
4051 (native-inputs
4052 `(("emacs-dash" ,emacs-dash)
4053 ("emacs-s" ,emacs-s)
4054 ("ert-runner" ,emacs-ert-runner)))
4055 (arguments
4056 `(#:tests? #t
4057 #:test-command '("ert-runner")))
4058 (home-page "https://github.com/clojure-emacs/clojure-mode")
4059 (synopsis "Major mode for Clojure code")
4060 (description
4061 "This Emacs package provides font-lock, indentation, navigation and basic
4062 refactoring for the @uref{http://clojure.org, Clojure programming language}.
4063 It is recommended to use @code{clojure-mode} with paredit or smartparens.")
4064 (license license:gpl3+)))
4065
4066 (define-public emacs-epl
4067 (package
4068 (name "emacs-epl")
4069 (version "0.8")
4070 (source (origin
4071 (method url-fetch)
4072 (uri (string-append
4073 "https://github.com/cask/epl/archive/"
4074 version ".tar.gz"))
4075 (file-name (string-append name "-" version ".tar.gz"))
4076 (sha256
4077 (base32
4078 "1511n3a3f5gvaf2b4nh018by61ciyzi3y3603fzqma7p9hrckarc"))))
4079 (build-system emacs-build-system)
4080 (home-page "https://github.com/cask/epl")
4081 (synopsis "Emacs Package Library")
4082 (description
4083 "A package management library for Emacs, based on @code{package.el}.
4084
4085 The purpose of this library is to wrap all the quirks and hassle of
4086 @code{package.el} into a sane API.")
4087 (license license:gpl3+)))
4088
4089 (define-public emacs-queue
4090 (package
4091 (name "emacs-queue")
4092 (version "0.2")
4093 (source (origin
4094 (method url-fetch)
4095 (uri (string-append "https://elpa.gnu.org/packages/queue-"
4096 version ".el"))
4097 (sha256
4098 (base32
4099 "0cx2848sqnnkkr4zisvqadzxngjyhmb36mh0q3if7q19yjjhmrkb"))))
4100 (build-system emacs-build-system)
4101 (home-page "http://www.dr-qubit.org/tags/computing-code-emacs.html")
4102 (synopsis "Queue data structure for Emacs")
4103 (description
4104 "This Emacs library provides queue data structure. These queues can be
4105 used both as a first-in last-out (FILO) and as a first-in first-out (FIFO)
4106 stack, i.e. elements can be added to the front or back of the queue, and can
4107 be removed from the front. This type of data structure is sometimes called an
4108 \"output-restricted deque\".")
4109 (license license:gpl3+)))
4110
4111 (define-public emacs-pkg-info
4112 (package
4113 (name "emacs-pkg-info")
4114 (version "0.6")
4115 (source (origin
4116 (method url-fetch)
4117 (uri (string-append
4118 "https://github.com/lunaryorn/pkg-info.el/archive/"
4119 version ".tar.gz"))
4120 (file-name (string-append name "-" version ".tar.gz"))
4121 (sha256
4122 (base32
4123 "1gy1jks5mmm02gg1c8gcyr4f8a9s5ggzhk56gv33b9mzjqzi5rd5"))))
4124 (build-system emacs-build-system)
4125 (propagated-inputs `(("emacs-epl" ,emacs-epl)))
4126 (home-page "https://github.com/lunaryorn/pkg-info.el")
4127 (synopsis "Information about Emacs packages")
4128 (description
4129 "This library extracts information from the installed Emacs packages.")
4130 (license license:gpl3+)))
4131
4132 (define-public emacs-spinner
4133 (package
4134 (name "emacs-spinner")
4135 (version "1.7.3")
4136 (source (origin
4137 (method url-fetch)
4138 (uri (string-append "https://elpa.gnu.org/packages/spinner-"
4139 version ".el"))
4140 (sha256
4141 (base32
4142 "19kp1mmndbmw11sgvv2ggfjl4pyf5zrsbh3871f0965pw9z8vahd"))))
4143 (build-system emacs-build-system)
4144 (home-page "https://github.com/Malabarba/spinner.el")
4145 (synopsis "Emacs mode-line spinner for operations in progress")
4146 (description
4147 "This Emacs package adds spinners and progress-bars to the mode-line for
4148 ongoing operations.")
4149 (license license:gpl3+)))
4150
4151 (define-public emacs-sparql-mode
4152 (package
4153 (name "emacs-sparql-mode")
4154 (version "2.0.1")
4155 (source (origin
4156 (method url-fetch)
4157 (uri (string-append "https://github.com/ljos/sparql-mode/archive/"
4158 "v" version ".tar.gz"))
4159 (file-name (string-append name "-" version ".tar.gz"))
4160 (sha256
4161 (base32
4162 "1s93mkllxnhy7fw616cnnc2danacdlarys0g3cn89drh0llh53cv"))))
4163 (build-system emacs-build-system)
4164 (home-page "https://github.com/ljos/sparql-mode")
4165 (synopsis "SPARQL mode for Emacs")
4166 (description "This package provides a major mode for Emacs that provides
4167 syntax highlighting for SPARQL. It also provides a way to execute queries
4168 against a SPARQL HTTP endpoint, such as is provided by Fuseki. It is also
4169 possible to query other endpoints like DBPedia.")
4170 (license license:gpl3+)))
4171
4172 (define-public emacs-better-defaults
4173 (package
4174 (name "emacs-better-defaults")
4175 (version "0.1.3")
4176 (source
4177 (origin
4178 (method url-fetch)
4179 (uri (string-append "https://github.com/technomancy/better-defaults"
4180 "/archive/" version ".tar.gz"))
4181 (file-name (string-append name "-" version ".tar.gz"))
4182 (sha256
4183 (base32
4184 "08fg4zslzlxbvyil5g4gwvwd22fh4zsgqprs5wh9hv1rgc6757m2"))))
4185 (build-system emacs-build-system)
4186 (home-page "https://github.com/technomancy/better-defaults")
4187 (synopsis "Better defaults for Emacs")
4188 (description
4189 "Better defaults attempts to address the most obvious deficiencies of the
4190 Emacs default configuration in uncontroversial ways that nearly everyone can
4191 agree upon.")
4192 (license license:gpl3+)))
4193
4194 (define-public emacs-eprime
4195 (let ((commit "17a481af26496be91c07139a9bfc05cfe722506f"))
4196 (package
4197 (name "emacs-eprime")
4198 (version (string-append "20140513-" (string-take commit 7)))
4199 (source (origin
4200 (method url-fetch)
4201 (uri (string-append "https://raw.githubusercontent.com"
4202 "/AndrewHynes/eprime-mode/"
4203 commit "/eprime-mode.el"))
4204 (file-name (string-append "eprime-" version ".el"))
4205 (sha256
4206 (base32
4207 "0v68lggkyq7kbcr9zyi573m2g2x251xy3jadlaw8kx02l8krwq8d"))))
4208 (build-system emacs-build-system)
4209 (home-page "https://github.com/AndrewHynes/eprime-mode")
4210 (synopsis "E-prime checking mode for Emacs")
4211 (description "This package provides an E-prime checking mode for Emacs
4212 that highlights non-conforming text. The subset of the English language called
4213 E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
4214 (license license:gpl3+))))
4215
4216 (define-public emacs-julia-mode
4217 ;; XXX: Upstream version remained stuck at 0.3. See
4218 ;; <https://github.com/JuliaEditorSupport/julia-emacs/issues/46>.
4219 (let ((commit "115d4dc8a07445301772da8376b232fa8c7168f4")
4220 (revision "1"))
4221 (package
4222 (name "emacs-julia-mode")
4223 (version (string-append "0.3-" revision "." (string-take commit 8)))
4224 (source
4225 (origin
4226 (method git-fetch)
4227 (uri (git-reference
4228 (url "https://github.com/JuliaEditorSupport/julia-emacs.git")
4229 (commit commit)))
4230 (file-name (string-append name "-" version "-checkout"))
4231 (sha256
4232 (base32
4233 "1is4dcv6blslpzbjcg8l2jpxi8xj96q4cm0nxjxsyswpm8bw8ki0"))))
4234 (build-system emacs-build-system)
4235 (arguments
4236 `(#:tests? #t
4237 #:test-command '("emacs" "--batch"
4238 "-l" "julia-mode-tests.el"
4239 "-f" "ert-run-tests-batch-and-exit")))
4240 (home-page "https://github.com/JuliaEditorSupport/julia-emacs")
4241 (synopsis "Major mode for Julia")
4242 (description "This Emacs package provides a mode for the Julia
4243 programming language.")
4244 (license license:expat))))
4245
4246 (define-public emacs-smex
4247 (package
4248 (name "emacs-smex")
4249 (version "3.0")
4250 (source (origin
4251 (method url-fetch)
4252 (uri (string-append "https://raw.githubusercontent.com"
4253 "/nonsequitur/smex/" version "/smex.el"))
4254 (file-name (string-append "smex-" version ".el"))
4255 (sha256
4256 (base32
4257 "0ar310zx9k5y4i1vl2rawvi712xj9gx77160860jbs691p77cxqp"))))
4258 (build-system emacs-build-system)
4259 (home-page "https://github.com/nonsequitur/smex/")
4260 (synopsis "M-x interface with Ido-style fuzzy matching")
4261 (description
4262 "Smex is a M-x enhancement for Emacs. Built on top of Ido, it provides a
4263 convenient interface to your recently and most frequently used commands. And
4264 to all the other commands, too.")
4265 (license license:gpl3+)))
4266
4267 (define-public emacs-js2-mode
4268 (package
4269 (name "emacs-js2-mode")
4270 (version "20180301")
4271 (source (origin
4272 (method url-fetch)
4273 (uri (string-append "https://github.com/mooz/js2-mode/archive/"
4274 version ".tar.gz"))
4275 (file-name (string-append name "-" version ".tar.gz"))
4276 (sha256
4277 (base32
4278 "13aghgwaqrmbf3pbifcry52kya454wnh1gbdh5805n1n6xgjm5w3"))))
4279 (build-system emacs-build-system)
4280 (home-page "https://github.com/mooz/js2-mode/")
4281 (synopsis "Improved JavaScript editing mode for Emacs")
4282 (description
4283 "Js2-mode provides a JavaScript major mode for Emacs that is more
4284 advanced than the built-in javascript-mode. Features include accurate syntax
4285 highlighting using a recursive-descent parser, on-the-fly reporting of syntax
4286 errors and strict-mode warnings, smart line-wrapping within comments and
4287 strings, and code folding.")
4288 (license license:gpl3+)))
4289
4290 (define-public emacs-nodejs-repl
4291 (package
4292 (name "emacs-nodejs-repl")
4293 (version "0.2.0")
4294 (source (origin
4295 (method url-fetch)
4296 (uri (string-append "https://github.com/abicky/nodejs-repl.el"
4297 "/archive/" version ".tar.gz"))
4298 (sha256
4299 (base32
4300 "0hq2cqdq2668yf48g7qnkci90nhih1gnhacsgz355jnib56lhmkz"))
4301 (file-name (string-append name "-" version ".tar.gz"))))
4302 (build-system emacs-build-system)
4303 (home-page "https://github.com/abicky/nodejs-repl.el")
4304 (synopsis "Node.js REPL inside Emacs")
4305 (description
4306 "This program is derived from comint-mode and provides the following
4307 features:
4308
4309 @itemize
4310 @item TAB completion same as Node.js REPL
4311 @item file name completion in string
4312 @item incremental history search
4313 @end itemize")
4314 (license license:gpl3+)))
4315
4316 (define-public emacs-typescript-mode
4317 (package
4318 (name "emacs-typescript-mode")
4319 (version "0.3")
4320 (source (origin
4321 (method url-fetch)
4322 (uri (string-append
4323 "https://github.com/ananthakumaran/typescript.el"
4324 "/archive/v" version ".tar.gz"))
4325 (sha256
4326 (base32
4327 "1gqjirm8scf0wysm7x97zdfbs4qa5nqdl64jfbkd18iskv5mg3rj"))
4328 (file-name (string-append name "-" version ".tar.gz"))))
4329 (build-system emacs-build-system)
4330 (home-page "https://github.com/ananthakumaran/typescript.el")
4331 (synopsis "Emacs major mode for editing Typescript code")
4332 (description
4333 "This is based on Karl Landstrom's barebones @code{typescript-mode}.
4334 This is much more robust and works with @code{cc-mode}'s comment
4335 filling (mostly). The modifications to the original @code{javascript.el} mode
4336 mainly consisted in replacing \"javascript\" with \"typescript\"
4337
4338 The main features of this Typescript mode are syntactic highlighting (enabled
4339 with @code{font-lock-mode} or @code{global-font-lock-mode}), automatic
4340 indentation and filling of comments and C preprocessor fontification.")
4341 (license license:gpl3+)))
4342
4343 (define-public emacs-tide
4344 (package
4345 (name "emacs-tide")
4346 (version "2.8.3.1")
4347 (source (origin
4348 (method url-fetch)
4349 (uri (string-append "https://github.com/ananthakumaran/tide"
4350 "/archive/v" version ".tar.gz"))
4351 (sha256
4352 (base32
4353 "1k0kzqiv1hfs0kqm37947snzhrsmand3i9chvm6a2r5lb8v9q47y"))
4354 (file-name (string-append name "-" version ".tar.gz"))))
4355 (build-system emacs-build-system)
4356 (propagated-inputs
4357 `(("emacs-dash" ,emacs-dash)
4358 ("emacs-s" ,emacs-s)
4359 ("emacs-flycheck" ,emacs-flycheck)
4360 ("emacs-typescript-mode" ,emacs-typescript-mode)))
4361 (home-page "https://github.com/ananthakumaran/tide")
4362 (synopsis "Typescript IDE for Emacs")
4363 (description
4364 "Tide is an Interactive Development Environment (IDE) for Emacs which
4365 provides the following features:
4366
4367 @itemize
4368 @item ElDoc
4369 @item Auto complete
4370 @item Flycheck
4371 @item Jump to definition, Jump to type definition
4372 @item Find occurrences
4373 @item Rename symbol
4374 @item Imenu
4375 @item Compile On Save
4376 @item Highlight Identifiers
4377 @item Code Fixes
4378 @item Code Refactor
4379 @item Organize Imports
4380 @end itemize")
4381 (license license:gpl3+)))
4382
4383 (define-public emacs-markdown-mode
4384 (package
4385 (name "emacs-markdown-mode")
4386 (version "2.3")
4387 (source (origin
4388 (method url-fetch)
4389 (uri (string-append "https://raw.githubusercontent.com/jrblevin"
4390 "/markdown-mode/v" version
4391 "/markdown-mode.el"))
4392 (file-name (string-append "markdown-mode-" version ".el"))
4393 (sha256
4394 (base32
4395 "152whyrq3dqlqy5wv4mdd94kmal19hs5kwaxjcp2gp2r97lsmdmi"))))
4396 (build-system emacs-build-system)
4397 (home-page "http://jblevins.org/projects/markdown-mode/")
4398 (synopsis "Emacs Major mode for Markdown files")
4399 (description
4400 "Markdown-mode is a major mode for editing Markdown-formatted text files
4401 in Emacs.")
4402 (license license:gpl3+)))
4403
4404 (define-public emacs-edit-indirect
4405 (package
4406 (name "emacs-edit-indirect")
4407 (version "0.1.5")
4408 (source
4409 (origin
4410 (method git-fetch)
4411 (uri (git-reference
4412 (url "https://github.com/Fanael/edit-indirect")
4413 (commit version)))
4414 (file-name (git-file-name name version))
4415 (sha256
4416 (base32
4417 "0by1x53pji39fjrj5bd446kz831nv0vdgw2jqasbym4pc1p2947r"))))
4418 (build-system emacs-build-system)
4419 (home-page "https://github.com/Fanael/edit-indirect")
4420 (synopsis "Edit regions in separate buffers")
4421 (description "This package allows you to edit regions in separate buffers,
4422 like @code{org-edit-src-code} but for arbitrary regions.")
4423 (license license:gpl3+)))
4424
4425 (define-public emacs-projectile
4426 (package
4427 (name "emacs-projectile")
4428 (version "0.14.0")
4429 (source (origin
4430 (method url-fetch)
4431 (uri (string-append "https://raw.githubusercontent.com/bbatsov"
4432 "/projectile/v" version "/projectile.el"))
4433 (file-name (string-append "projectile-" version ".el"))
4434 (sha256
4435 (base32
4436 "1ql1wnzhblbwnv66hf2y0wq45g71hh6s9inc090lmhm1vgylbd1f"))))
4437 (build-system emacs-build-system)
4438 (propagated-inputs
4439 `(("emacs-dash" ,emacs-dash)
4440 ("emacs-pkg-info" ,emacs-pkg-info)))
4441 (home-page "https://github.com/bbatsov/projectile")
4442 (synopsis "Manage and navigate projects in Emacs easily")
4443 (description
4444 "This library provides easy project management and navigation. The
4445 concept of a project is pretty basic - just a folder containing special file.
4446 Currently git, mercurial and bazaar repos are considered projects by default.
4447 If you want to mark a folder manually as a project just create an empty
4448 .projectile file in it.")
4449 (license license:gpl3+)))
4450
4451 (define-public emacs-elfeed
4452 (package
4453 (name "emacs-elfeed")
4454 (version "3.0.0")
4455 (source (origin
4456 (method url-fetch)
4457 (uri (string-append "https://github.com/skeeto/elfeed/archive/"
4458 version ".tar.gz"))
4459 (file-name (string-append name "-" version ".tar.gz"))
4460 (sha256
4461 (base32
4462 "1wkdrxr6zzqb48czqqv34l87bx8aqjk1739ddqg933aqh241kfvn"))))
4463 (build-system emacs-build-system)
4464 (arguments
4465 `(#:tests? #t
4466 #:test-command '("make" "test")))
4467 (home-page "https://github.com/skeeto/elfeed")
4468 (synopsis "Atom/RSS feed reader for Emacs")
4469 (description
4470 "Elfeed is an extensible web feed reader for Emacs, supporting both Atom
4471 and RSS, with a user interface inspired by notmuch.")
4472 (license license:gpl3+)))
4473
4474 (define-public emacs-el-x
4475 (package
4476 (name "emacs-el-x")
4477 (version "0.3.1")
4478 (source (origin
4479 (method git-fetch)
4480 (uri (git-reference
4481 (url "https://github.com/sigma/el-x.git")
4482 (commit (string-append "v" version))))
4483 (file-name (string-append name "-" version "-checkout"))
4484 (sha256
4485 (base32
4486 "1i6j44ssxm1xdg0mf91nh1lnprwsaxsx8vsrf720nan7mfr283h5"))))
4487 (build-system emacs-build-system)
4488 (arguments
4489 `(#:phases
4490 (modify-phases %standard-phases
4491 ;; Move the source files to the top level, which is included in
4492 ;; the EMACSLOADPATH.
4493 (add-after 'unpack 'move-source-files
4494 (lambda _
4495 (let ((el-files (find-files "./lisp" ".*\\.el$")))
4496 (for-each (lambda (f)
4497 (rename-file f (basename f)))
4498 el-files))
4499 #t)))))
4500 (home-page "https://github.com/sigma/el-x")
4501 (synopsis "Emacs Lisp extensions")
4502 (description "command@{emacs-el-x} defines the @code{dflet} macro to
4503 provide the historic behavior of @code{flet}, as well as
4504 @code{declare-function} stub for older Emacs.")
4505 (license license:gpl2+)))
4506
4507 (define-public emacs-mocker
4508 (package
4509 (name "emacs-mocker")
4510 (version "0.3.1")
4511 (source (origin
4512 (method git-fetch)
4513 (uri (git-reference
4514 (url "https://github.com/sigma/mocker.el.git")
4515 (commit (string-append "v" version))))
4516 (file-name (string-append name "-" version "-checkout"))
4517 (sha256
4518 (base32
4519 "1lav7am41v63xgavq8pr88y828jmd1cxd4prjq7jlbxm6nvrwxh2"))))
4520 (build-system emacs-build-system)
4521 (arguments
4522 `(#:tests? #t
4523 #:test-command '("ert-runner")))
4524 (native-inputs
4525 `(("ert-runner" ,emacs-ert-runner)))
4526 (propagated-inputs
4527 `(("emacs-el-x" ,emacs-el-x)))
4528 (home-page "https://github.com/sigma/mocker.el")
4529 (synopsis "Mocking framework for Emacs Lisp")
4530 (description "Mocker.el is a framework for writing tests in Emacs Lisp.
4531 It uses regular Lisp rather than a domain specific language (DSL), which
4532 maximizes flexibility (at the expense of conciseness).")
4533 (license license:gpl2+)))
4534
4535 (define-public emacs-find-file-in-project
4536 (package
4537 (name "emacs-find-file-in-project")
4538 (version "5.4.7")
4539 (source (origin
4540 (method git-fetch)
4541 (uri (git-reference
4542 (url "https://github.com/technomancy/find-file-in-project.git")
4543 (commit version)))
4544 (file-name (string-append name "-" version "-checkout"))
4545 (sha256
4546 (base32
4547 "1sdnyqv69mipbgs9yax88m9b6crsa59rjhwrih197pifl4089awr"))))
4548 (build-system emacs-build-system)
4549 (arguments
4550 `(#:phases
4551 (modify-phases %standard-phases
4552 (add-before 'check 'set-shell
4553 ;; Otherwise Emacs shell-file-name is set to "/bin/sh", which doesn't
4554 ;; work.
4555 (lambda _
4556 (setenv "SHELL" (which "sh"))
4557 #t)))
4558 #:tests? #t
4559 #:test-command '("./tests/test.sh")))
4560 (home-page "https://github.com/technomancy/find-file-in-project")
4561 (synopsis "File/directory finder for Emacs")
4562 (description "@code{find-file-in-project} allows to find files or
4563 directories quickly in the current project. The project root is detected
4564 automatically when Git, Subversion or Mercurial are used. It also provides
4565 functions to assist in reviewing changes on files.")
4566 (license license:gpl3+)))
4567
4568 (define-public emacs-pyvenv
4569 (package
4570 (name "emacs-pyvenv")
4571 (version "1.11")
4572 (source (origin
4573 (method git-fetch)
4574 (uri (git-reference
4575 (url "https://github.com/jorgenschaefer/pyvenv.git")
4576 (commit (string-append "v" version))))
4577 (file-name (string-append name "-" version "-checkout"))
4578 (sha256
4579 (base32
4580 "1a346qdimr1dvj53q033aqnahwd2dhyn9jadrs019nm0bzgw7g63"))))
4581 (build-system emacs-build-system)
4582 (arguments
4583 `(#:phases
4584 (modify-phases %standard-phases
4585 ;; This phase incorrectly attempts to substitute "activate" and fails
4586 ;; doing so.
4587 (delete 'patch-el-files))
4588 #:tests? #t
4589 #:test-command '("ert-runner")))
4590 (native-inputs
4591 `(("ert-runner" ,emacs-ert-runner)
4592 ("emacs-mocker" ,emacs-mocker)))
4593 (home-page "https://github.com/jorgenschaefer/pyvenv")
4594 (synopsis "Virtualenv minor mode for Emacs")
4595 (description "pyvenv.el is a minor mode to support using Python virtual
4596 environments (virtualenv) inside Emacs.")
4597 (license license:gpl3+)))
4598
4599 (define-public emacs-highlight-indentation
4600 (package
4601 (name "emacs-highlight-indentation")
4602 (version "0.7.0")
4603 (source (origin
4604 (method git-fetch)
4605 (uri (git-reference
4606 (url "https://github.com/antonj/Highlight-Indentation-for-Emacs.git")
4607 (commit (string-append "v" version))))
4608 (file-name (string-append name "-" version "-checkout"))
4609 (sha256
4610 (base32
4611 "00l54k75qk24a0znzl4ij3s3nrnr2wy9ha3za8apphzlm98m907k"))))
4612 (build-system emacs-build-system)
4613 (home-page "https://github.com/antonj/Highlight-Indentation-for-Emacs/")
4614 (synopsis "Highlighting indentation for Emacs")
4615 (description "Provides two minor modes to highlight indentation guides in Emacs:
4616 @enumerate
4617 @item @code{highlight-indentation-mode}, which displays guidelines
4618 indentation (space indentation only).
4619 @item @code{highlight-indentation-current-column-mode}, which displays guidelines for the current-point indentation (space indentation only).
4620 @end enumerate")
4621 (license license:gpl2+)))
4622
4623 (define-public emacs-elpy
4624 (package
4625 (name "emacs-elpy")
4626 (version "1.27.0")
4627 (source (origin
4628 (method git-fetch)
4629 (uri (git-reference
4630 (url "https://github.com/jorgenschaefer/elpy.git")
4631 (commit version)))
4632 (file-name (string-append name "-" version "-checkout"))
4633 (sha256
4634 (base32
4635 "1b76y0kzk7s9ya8k9bpsgn31i9l0rxs4iz6lg7snhjgh03k0ssgv"))))
4636 (build-system emacs-build-system)
4637 (arguments
4638 `(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include)
4639 #:phases
4640 ;; TODO: Make `elpy-config' display Guix commands :)
4641 (modify-phases %standard-phases
4642 ;; One elpy test depends on being run inside a Python virtual
4643 ;; environment to pass. We have nothing to gain from doing so here,
4644 ;; so we just trick Elpy into thinking we are (see:
4645 ;; https://github.com/jorgenschaefer/elpy/pull/1293).
4646 (add-before 'check 'fake-virtualenv
4647 (lambda _
4648 (setenv "VIRTUAL_ENV" "/tmp")
4649 #t))
4650 (add-before 'check 'build-doc
4651 (lambda _
4652 (with-directory-excursion "docs"
4653 (invoke "make" "info" "man"))
4654 ;; Move .info file at the root so that it can installed by the
4655 ;; 'move-doc phase.
4656 (rename-file "docs/_build/texinfo/Elpy.info" "Elpy.info")
4657 #t))
4658 (add-after 'build-doc 'install-manpage
4659 (lambda* (#:key outputs #:allow-other-keys)
4660 (let* ((out (assoc-ref outputs "out"))
4661 (man1 (string-append out "/share/man/man1")))
4662 (mkdir-p man1)
4663 (copy-file "docs/_build/man/elpy.1"
4664 (string-append man1 "/elpy.1")))
4665 #t)))
4666 #:tests? #t
4667 #:test-command '("ert-runner")))
4668 (propagated-inputs
4669 `(("emacs-company" ,emacs-company)
4670 ("emacs-find-file-in-project" ,emacs-find-file-in-project)
4671 ("emacs-highlight-indentation" ,emacs-highlight-indentation)
4672 ("emacs-yasnippet" ,emacs-yasnippet)
4673 ("pyvenv" ,emacs-pyvenv)
4674 ("s" ,emacs-s)))
4675 (native-inputs
4676 `(("ert-runner" ,emacs-ert-runner)
4677 ("emacs-f" ,emacs-f)
4678 ("python" ,python-wrapper)
4679 ("python-autopep8" ,python-autopep8)
4680 ("python-black" ,python-black)
4681 ("python-flake8" ,python-flake8)
4682 ("python-jedi" ,python-jedi)
4683 ("python-yapf" ,python-yapf)
4684 ;; For documentation.
4685 ("python-sphinx" ,python-sphinx)
4686 ("texinfo" ,texinfo)))
4687 (home-page "https://github.com/jorgenschaefer/elpy")
4688 (synopsis "Python development environment for Emacs")
4689 (description "Elpy brings powerful Python editing to Emacs. It combines
4690 and configures a number of other packages written in Emacs Lisp as well as
4691 Python, together offering features such as navigation, documentation,
4692 completion, interactive development and more.")
4693 (license license:gpl3+)))
4694
4695 (define-public emacs-rainbow-delimiters
4696 (package
4697 (name "emacs-rainbow-delimiters")
4698 (version "2.1.3")
4699 (source (origin
4700 (method url-fetch)
4701 (uri (string-append "https://raw.githubusercontent.com/Fanael"
4702 "/rainbow-delimiters/" version
4703 "/rainbow-delimiters.el"))
4704 (file-name (string-append "rainbow-delimiters-" version ".el"))
4705 (sha256
4706 (base32
4707 "1b3kampwsjabhcqdp0khgff13wc5jqhy3rbvaa12vnv7qy22l9ck"))))
4708 (build-system emacs-build-system)
4709 (home-page "https://github.com/Fanael/rainbow-delimiters")
4710 (synopsis "Highlight brackets according to their depth")
4711 (description
4712 "Rainbow-delimiters is a \"rainbow parentheses\"-like mode for Emacs which
4713 highlights parentheses, brackets, and braces according to their depth. Each
4714 successive level is highlighted in a different color, making it easy to spot
4715 matching delimiters, orient yourself in the code, and tell which statements
4716 are at a given level.")
4717 (license license:gpl3+)))
4718
4719 (define-public emacs-rainbow-identifiers
4720 (package
4721 (name "emacs-rainbow-identifiers")
4722 (version "0.2.2")
4723 (source (origin
4724 (method url-fetch)
4725 (uri (string-append "https://raw.githubusercontent.com/Fanael"
4726 "/rainbow-identifiers/" version
4727 "/rainbow-identifiers.el"))
4728 (file-name (string-append "rainbow-identifiers-" version ".el"))
4729 (sha256
4730 (base32
4731 "0325abxj47k0g1i8nqrq70w2wr6060ckhhf92krv1s072b3jzm31"))))
4732 (build-system emacs-build-system)
4733 (home-page "https://github.com/Fanael/rainbow-identifiers")
4734 (synopsis "Highlight identifiers in source code")
4735 (description
4736 "Rainbow identifiers mode is an Emacs minor mode providing highlighting of
4737 identifiers based on their names. Each identifier gets a color based on a hash
4738 of its name.")
4739 (license license:bsd-2)))
4740
4741 (define-public emacs-rainbow-mode
4742 (package
4743 (name "emacs-rainbow-mode")
4744 (version "1.0.1")
4745 (source (origin
4746 (method url-fetch)
4747 (uri (string-append
4748 "http://elpa.gnu.org/packages/rainbow-mode-" version ".el"))
4749 (sha256
4750 (base32
4751 "0cpga4ax635rfpj7y2vmh7ank0yw00dcy20gjg1mj74r97by8csf"))))
4752 (build-system emacs-build-system)
4753 (home-page "http://elpa.gnu.org/packages/rainbow-mode.html")
4754 (synopsis "Colorize color names in buffers")
4755 (description
4756 "This minor mode sets background color to strings that match color
4757 names, e.g. #0000ff is displayed in white with a blue background.")
4758 (license license:gpl3+)))
4759
4760 (define-public emacs-visual-fill-column
4761 (package
4762 (name "emacs-visual-fill-column")
4763 (version "1.11")
4764 (source (origin
4765 (method url-fetch)
4766 (uri (string-append "https://codeload.github.com/joostkremers/"
4767 "visual-fill-column/tar.gz/" version))
4768 (file-name (string-append name "-" version ".tar.gz"))
4769 (sha256
4770 (base32
4771 "13jnviakp607zcms7f8ams56mr8wffnq1pghlc6fvqs39663pgwh"))))
4772 (build-system emacs-build-system)
4773 (home-page "https://github.com/joostkremers/visual-fill-column")
4774 (synopsis "Fill-column for visual-line-mode")
4775 (description
4776 "@code{visual-fill-column-mode} is a small Emacs minor mode that mimics
4777 the effect of @code{fill-column} in @code{visual-line-mode}. Instead of
4778 wrapping lines at the window edge, which is the standard behaviour of
4779 @code{visual-line-mode}, it wraps lines at @code{fill-column}. If
4780 @code{fill-column} is too large for the window, the text is wrapped at the
4781 window edge.")
4782 (license license:gpl3+)))
4783
4784 (define-public emacs-writeroom
4785 (package
4786 (name "emacs-writeroom")
4787 (version "3.7")
4788 (source (origin
4789 (method url-fetch)
4790 (uri (string-append
4791 "https://github.com/joostkremers/writeroom-mode/archive/"
4792 version ".tar.gz"))
4793 (file-name (string-append name "-" version ".tar.gz"))
4794 (sha256
4795 (base32
4796 "0yqgp5h3kvvpgva4azakb2wnjl7gsyh45glf75crspv3xyq57f2r"))))
4797 (build-system emacs-build-system)
4798 (propagated-inputs
4799 `(("emacs-visual-fill-column" ,emacs-visual-fill-column)))
4800 (home-page "https://github.com/joostkremers/writeroom-mode")
4801 (synopsis "Distraction-free writing for Emacs")
4802 (description
4803 "This package defines a minor mode for distraction-free writing. Some of
4804 the default effects include entering fullscreen, deleting other windows of the
4805 current frame, disabling the mode line, and adding margins to the buffer that
4806 restrict the text width to 80 characters.")
4807 (license license:bsd-3)))
4808
4809 (define-public emacs-ido-completing-read+
4810 (package
4811 (name "emacs-ido-completing-read+")
4812 (version "3.12")
4813 (source (origin
4814 (method url-fetch)
4815 (uri (string-append "https://raw.githubusercontent.com"
4816 "/DarwinAwardWinner/ido-ubiquitous/v"
4817 version "/ido-completing-read+.el"))
4818 (file-name (string-append "ido-completing-read+-" version ".el"))
4819 (sha256
4820 (base32
4821 "1cyalb0p7nfsm4n6n9q6rjmvn6adqc0fq8ybnlj3n41n289dkfjf"))))
4822 (build-system emacs-build-system)
4823 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
4824 (synopsis "Replacement for completing-read using ido")
4825 (description
4826 "The ido-completing-read+ function is a wrapper for ido-completing-read.
4827 Importantly, it detects edge cases that ordinary ido cannot handle and either
4828 adjusts them so ido can handle them, or else simply falls back to the standard
4829 Emacs completion function instead.")
4830 (license license:gpl3+)))
4831
4832 (define-public emacs-ido-ubiquitous
4833 (package
4834 (name "emacs-ido-ubiquitous")
4835 (version "3.12")
4836 (source (origin
4837 (method url-fetch)
4838 (uri (string-append "https://raw.githubusercontent.com"
4839 "/DarwinAwardWinner/ido-ubiquitous/v"
4840 version "/ido-ubiquitous.el"))
4841 (file-name (string-append "ido-ubiquitous-" version ".el"))
4842 (sha256
4843 (base32
4844 "197ypji0fb6jsdcq40rpnknwlh3imas6s6jbsvkfm0pz9988c3q2"))))
4845 (build-system emacs-build-system)
4846 (propagated-inputs
4847 `(("emacs-ido-completing-read+" ,emacs-ido-completing-read+)))
4848 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
4849 (synopsis "Use ido (nearly) everywhere")
4850 (description
4851 "Ido-ubiquitous enables ido-style completion for almost every function
4852 that uses the standard completion function completing-read.")
4853 (license license:gpl3+)))
4854
4855 (define-public emacs-yaml-mode
4856 (package
4857 (name "emacs-yaml-mode")
4858 (version "0.0.13")
4859 (source (origin
4860 (method url-fetch)
4861 (uri (string-append "https://raw.githubusercontent.com/yoshiki"
4862 "/yaml-mode/v" version "/yaml-mode.el"))
4863 (file-name (string-append "yaml-mode-" version ".el"))
4864 (sha256
4865 (base32
4866 "0im88sk9dqw03x6d6zaspgvg9i0pfpgb8f2zygrmbifh2w4pwmvj"))))
4867 (build-system emacs-build-system)
4868 (home-page "https://github.com/yoshiki/yaml-mode")
4869 (synopsis "Major mode for editing YAML files")
4870 (description
4871 "Yaml-mode is an Emacs major mode for editing files in the YAML data
4872 serialization format. It was initially developed by Yoshiki Kurihara and many
4873 features were added by Marshall Vandegrift. As YAML and Python share the fact
4874 that indentation determines structure, this mode provides indentation and
4875 indentation command behavior very similar to that of python-mode.")
4876 (license license:gpl3+)))
4877
4878 (define-public emacs-web-mode
4879 (package
4880 (name "emacs-web-mode")
4881 (version "16")
4882 (source (origin
4883 (method url-fetch)
4884 (uri (string-append "https://raw.githubusercontent.com/fxbois"
4885 "/web-mode/v" version "/web-mode.el"))
4886 (file-name (string-append "web-mode-" version ".el"))
4887 (sha256
4888 (base32
4889 "1hs5w7kdvcyn4ihyw1kfjg48djn5p7lz4rlbhzzdqv1g56xqx3gw"))))
4890 (build-system emacs-build-system)
4891 (synopsis "Major mode for editing web templates")
4892 (description "Web-mode is an Emacs major mode for editing web templates
4893 aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by
4894 client/server side engines). Web-mode is compatible with many template
4895 engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker,
4896 Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template,
4897 Dust.js, React/JSX, Angularjs, ejs, etc.")
4898 (home-page "http://web-mode.org/")
4899 (license license:gpl3+)))
4900
4901 (define-public emacs-wgrep
4902 (let ((commit "414be70bd313e482cd9f0b70fd2daad4ee23497c"))
4903 ;; Late commit fixes compatibility issue with Emacs 26+.
4904 (package
4905 (name "emacs-wgrep")
4906 (version (git-version "2.1.10" "1" commit))
4907 (source (origin
4908 (method git-fetch)
4909 (uri (git-reference
4910 (url "https://github.com/mhayashi1120/Emacs-wgrep")
4911 (commit commit)))
4912 (file-name (git-file-name name version))
4913 (sha256
4914 (base32
4915 "1sdhd587q3pg92lhiayph87azhalmf1gzrnsprkmqvnphv7mvks9"))))
4916 (build-system emacs-build-system)
4917 (home-page "https://github.com/mhayashi1120/Emacs-wgrep")
4918 (synopsis "Edit a grep buffer and apply those changes to the files")
4919 (description
4920 "Emacs wgrep allows you to edit a grep buffer and apply those changes
4921 to the file buffer. Several backends are supported beside the classic grep:
4922 ack, ag, helm and pt.")
4923 (license license:gpl3+))))
4924
4925 (define-public emacs-helm
4926 (package
4927 (name "emacs-helm")
4928 (version "3.0")
4929 (source (origin
4930 (method url-fetch)
4931 (uri (string-append
4932 "https://github.com/" name "/helm/archive/v"
4933 version ".tar.gz"))
4934 (file-name (string-append name "-" version ".tar.gz"))
4935 (sha256
4936 (base32
4937 "0k2r0ccppaqfjvyszaxa16vf7g2qzj1clhfr6v646ncsy17laciw"))))
4938 (build-system emacs-build-system)
4939 (propagated-inputs
4940 `(("emacs-async" ,emacs-async)
4941 ("emacs-popup" ,emacs-popup)))
4942 (home-page "https://emacs-helm.github.io/helm/")
4943 (synopsis "Incremental completion and selection narrowing
4944 framework for Emacs")
4945 (description "Helm is incremental completion and selection narrowing
4946 framework for Emacs. It will help steer you in the right direction when
4947 you're looking for stuff in Emacs (like buffers, files, etc). Helm is a fork
4948 of @code{anything.el} originally written by Tamas Patrovic and can be
4949 considered to be its successor. Helm sets out to clean up the legacy code in
4950 @code{anything.el} and provide a cleaner, leaner and more modular tool, that's
4951 not tied in the trap of backward compatibility.")
4952 (license license:gpl3+)))
4953
4954 (define-public emacs-helm-swoop
4955 (package
4956 (name "emacs-helm-swoop")
4957 (version "1.7.4")
4958 (source (origin
4959 (method url-fetch)
4960 (uri (string-append
4961 "https://github.com/ShingoFukuyama/helm-swoop/archive/"
4962 version
4963 ".tar.gz"))
4964 (file-name (string-append name "-" version ".tar.gz"))
4965 (sha256
4966 (base32
4967 "1ssivsjzlnkg049cg993l8fp09l5nhpz6asj7w5c91zp5kpc6fh7"))))
4968 (build-system emacs-build-system)
4969 (propagated-inputs
4970 `(("emacs-helm" ,emacs-helm)))
4971 (home-page "https://github.com/ShingoFukuyama/helm-swoop")
4972 (synopsis "Filter and jump to lines in an Emacs buffer using Helm")
4973 (description
4974 "This package builds on the Helm interface to provide several commands
4975 for search-based navigation of buffers.")
4976 (license license:gpl2+)))
4977
4978 (define-public emacs-helm-projectile
4979 (package
4980 (name "emacs-helm-projectile")
4981 (version "0.14.0")
4982 (source (origin
4983 (method url-fetch)
4984 (uri (string-append
4985 "https://github.com/bbatsov/helm-projectile/archive/v"
4986 version
4987 ".tar.gz"))
4988 (file-name (string-append name "-" version ".tar.gz"))
4989 (sha256
4990 (base32
4991 "19cfmilqh8kbab3b2hmx6lyrj73q6vfmn3p730x95g23iz16mnd5"))))
4992 (build-system emacs-build-system)
4993 (propagated-inputs
4994 `(("emacs-dash" ,emacs-dash)
4995 ("emacs-helm" ,emacs-helm)
4996 ("emacs-projectile" ,emacs-projectile)))
4997 (home-page "https://github.com/bbatsov/helm-projectile")
4998 (synopsis "Helm integration for Projectile")
4999 (description
5000 "This Emacs library provides a Helm interface for Projectile.")
5001 (license license:gpl3+)))
5002
5003 (define-public emacs-helm-make
5004 (let ((commit "feae8df22bc4b20705ea08ac9adfc2b43bb348d0")
5005 (revision "1"))
5006 (package
5007 (name "emacs-helm-make")
5008 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
5009 (source
5010 (origin
5011 (method git-fetch)
5012 (uri (git-reference
5013 (url "https://github.com/abo-abo/helm-make.git")
5014 (commit commit)))
5015 (file-name (string-append name "-" version "-checkout"))
5016 (sha256
5017 (base32
5018 "1y2v77mmd1bfkkz51cnk1l0dg3lvvxc39wlamnm7wjns66dbvlam"))))
5019 (build-system emacs-build-system)
5020 (propagated-inputs
5021 `(("emacs-helm" ,emacs-helm)
5022 ("emacs-projectile" ,emacs-projectile)))
5023 (home-page "https://github.com/abo-abo/helm-make")
5024 (synopsis "Select a Makefile target with helm")
5025 (description "@code{helm-make} or @code{helm-make-projectile} will give
5026 you a @code{helm} selection of directory Makefile's targets. Selecting a
5027 target will call @code{compile} on it.")
5028 (license license:gpl3+))))
5029
5030 (define-public emacs-cider
5031 (package
5032 (name "emacs-cider")
5033 (version "0.18.0")
5034 (source
5035 (origin
5036 (method git-fetch)
5037 (uri (git-reference
5038 (url "https://github.com/clojure-emacs/cider.git")
5039 (commit (string-append "v" version))))
5040 (file-name (git-file-name name version))
5041 (sha256
5042 (base32
5043 "1m9kc88vga3q5d731qnpngnsa0n57pf21k3hll20rw8rggrx4vdn"))))
5044 (build-system emacs-build-system)
5045 (arguments
5046 '(#:exclude ; Don't exclude 'cider-test.el'.
5047 '("^\\.dir-locals\\.el$" "^test/")))
5048 (propagated-inputs
5049 `(("emacs-clojure-mode" ,emacs-clojure-mode)
5050 ("emacs-sesman" ,emacs-sesman)
5051 ("emacs-spinner" ,emacs-spinner)
5052 ("emacs-pkg-info" ,emacs-pkg-info)
5053 ("emacs-queue" ,emacs-queue)))
5054 (home-page "https://cider.readthedocs.io/")
5055 (synopsis "Clojure development environment for Emacs")
5056 (description
5057 "CIDER (Clojure Interactive Development Environment that Rocks) aims to
5058 provide an interactive development experience similar to the one you'd get
5059 when programming in Emacs Lisp, Common Lisp (with SLIME or Sly), Scheme (with
5060 Geiser) and Smalltalk.
5061
5062 CIDER is the successor to the now deprecated combination of using SLIME +
5063 swank-clojure for Clojure development.
5064
5065 There are plenty of differences between CIDER and SLIME, but the core ideas
5066 are pretty much the same (and SLIME served as the principle inspiration for
5067 CIDER).")
5068 (license license:gpl3+)))
5069
5070 ;; There hasn't been a tag or release since 2015, so we take the latest
5071 ;; commit.
5072 (define-public emacs-sly
5073 (let ((commit "486bfbe95612bcdc0960c490207970a188e0fbb9")
5074 (revision "1"))
5075 (package
5076 (name "emacs-sly")
5077 (version (string-append "1.0.0-" revision "." (string-take commit 9)))
5078 (source
5079 (origin
5080 (method git-fetch)
5081 (uri (git-reference
5082 (url "https://github.com/joaotavora/sly.git")
5083 (commit commit)))
5084 (file-name (git-file-name name version))
5085 (sha256
5086 (base32
5087 "0ib4q4k3h3qn88pymyjjmlmnpizdn1mfg5gpk5a715nqsgxlg09l"))))
5088 (build-system emacs-build-system)
5089 (arguments
5090 `(#:include (cons "^lib\\/" %default-include)
5091 #:phases
5092 ;; The package provides autoloads.
5093 (modify-phases %standard-phases
5094 (delete 'make-autoloads))))
5095 (home-page "https://github.com/joaotavora/sly")
5096 (synopsis "Sylvester the Cat's Common Lisp IDE")
5097 (description
5098 "SLY is Sylvester the Cat's Common Lisp IDE. SLY is a fork of SLIME, and
5099 contains the following improvements over it:
5100
5101 @enumerate
5102 @item Completely redesigned REPL based on Emacs's own full-featured
5103 @code{comint.el}
5104 @item Live code annotations via a new @code{sly-stickers} contrib
5105 @item Consistent interactive button interface. Everything can be copied to
5106 the REPL.
5107 @item Multiple inspectors with independent history
5108 @item Regexp-capable @code{M-x sly-apropos}
5109 @item Contribs are first class SLY citizens and enabled by default
5110 @item Use ASDF to loads contribs on demand.
5111 @end enumerate
5112
5113 SLY tracks SLIME's bugfixes and all its familar features (debugger, inspector,
5114 xref, etc...) are still available, but with better integration.")
5115 (license license:gpl3+))))
5116
5117 (define-public emacs-lua-mode
5118 (let ((commit "652e299cb967fccca827dda381d61a9c144d97de")
5119 (revision "1"))
5120 (package
5121 (name "emacs-lua-mode")
5122 (version (string-append "20151025." revision "-" (string-take commit 9)))
5123 (home-page "https://github.com/immerrr/lua-mode/")
5124 (source (origin
5125 (method git-fetch)
5126 (uri (git-reference
5127 (url home-page)
5128 (commit commit)))
5129 (file-name (string-append name "-" version ".checkout"))
5130 (sha256
5131 (base32
5132 "053025k930wh0lak6rc1973ynfrmm8zsyzfqhhd39x7abkl41hc9"))))
5133 (build-system emacs-build-system)
5134 (synopsis "Major mode for lua")
5135 (description
5136 "This Emacs package provides a mode for @uref{https://www.lua.org/,
5137 Lua programing language}.")
5138 (license license:gpl2+))))
5139
5140 (define-public emacs-ebuild-mode
5141 (package
5142 (name "emacs-ebuild-mode")
5143 (version "1.37")
5144 (source (origin
5145 (method url-fetch)
5146 (uri (string-append
5147 "https://dev.gentoo.org/~ulm/emacs/ebuild-mode"
5148 "-" version ".tar.xz"))
5149 (file-name (string-append name "-" version ".tar.xz"))
5150 (sha256
5151 (base32
5152 "07dzrdjjczkxdfdgi60h4jjkvzi4p0k9rij2wpfp8s03ay3qldpp"))))
5153 (build-system emacs-build-system)
5154 (home-page "https://devmanual.gentoo.org")
5155 (synopsis "Major modes for Gentoo package files")
5156 (description
5157 "This Emacs package provides modes for ebuild, eclass, eblit, GLEP42
5158 news items, openrc and runscripts.")
5159 (license license:gpl2+)))
5160
5161 (define-public emacs-evil
5162 (let ((commit "230b87212c81aaa68ef5547a6b998d9c365fe139"))
5163 (package
5164 (name "emacs-evil")
5165 (version (git-version "1.2.13" "1" commit))
5166 (source
5167 (origin
5168 (method git-fetch)
5169 (uri (git-reference
5170 (url "https://github.com/emacs-evil/evil")
5171 (commit commit)))
5172 (file-name (string-append name "-" version "-checkout"))
5173 (sha256
5174 (base32
5175 "0c9zy3bpck10gcrv79kd3h7i4ygd5bgbgy773n0lg7a2r5kwn1gx"))))
5176 (build-system emacs-build-system)
5177 (propagated-inputs
5178 `(("emacs-undo-tree" ,emacs-undo-tree)
5179 ("emacs-goto-chg" ,emacs-goto-chg)))
5180 (home-page "https://github.com/emacs-evil/evil")
5181 (synopsis "Extensible Vi layer for Emacs")
5182 (description
5183 "Evil is an extensible vi layer for Emacs. It emulates the
5184 main features of Vim, and provides facilities for writing custom
5185 extensions.")
5186 (license license:gpl3+))))
5187
5188 (define-public emacs-evil-collection
5189 (let ((commit "4e1f0e0b17153d460805a0da90d6191d66b2673d")
5190 (revision "5"))
5191 (package
5192 (name "emacs-evil-collection")
5193 (version (git-version "0.0.1" revision commit))
5194 (source (origin
5195 (method git-fetch)
5196 (uri (git-reference
5197 (url "https://github.com/emacs-evil/evil-collection")
5198 (commit commit)))
5199 (file-name (string-append name "-" version "-checkout"))
5200 (sha256
5201 (base32
5202 "11d5ppdnb2y2mwsdd9g62h7zds962kw3nss89zv5iwgcf9f1fb5x"))))
5203 (build-system emacs-build-system)
5204 (propagated-inputs
5205 `(("emacs-evil" ,emacs-evil)))
5206 (home-page "https://github.com/emacs-evil/evil-collection")
5207 (synopsis "Collection of Evil bindings for many major and minor modes")
5208 (description "This is a collection of Evil bindings for the parts of
5209 Emacs that Evil does not cover properly by default, such as @code{help-mode},
5210 @code{M-x calendar}, Eshell and more.")
5211 (license license:gpl3+))))
5212
5213 (define-public emacs-goto-chg
5214 (package
5215 (name "emacs-goto-chg")
5216 (version "1.6")
5217 (source
5218 (origin
5219 (method url-fetch)
5220 ;; There is no versioned source.
5221 (uri "https://www.emacswiki.org/emacs/download/goto-chg.el")
5222 (file-name (string-append "goto-chg-" version ".el"))
5223 (sha256
5224 (base32
5225 "078d6p4br5vips7b9x4v6cy0wxf6m5ij9gpqd4g33bryn22gnpij"))))
5226 (build-system emacs-build-system)
5227 ;; There is no other home page.
5228 (home-page "https://www.emacswiki.org/emacs/goto-chg.el")
5229 (synopsis "Go to the last change in the Emacs buffer")
5230 (description
5231 "This package provides @code{M-x goto-last-change} command that goes to
5232 the point of the most recent edit in the current Emacs buffer. When repeated,
5233 go to the second most recent edit, etc. Negative argument, @kbd{C-u -}, is
5234 used for reverse direction.")
5235 (license license:gpl2+)))
5236
5237 (define-public emacs-monroe
5238 (package
5239 (name "emacs-monroe")
5240 (version "0.3.1")
5241 (source
5242 (origin
5243 (method url-fetch)
5244 (uri (string-append "https://github.com/sanel/monroe/archive/"
5245 version ".tar.gz"))
5246 (file-name (string-append name "-" version ".tar.gz"))
5247 (sha256
5248 (base32
5249 "0icdx8shkd951phlnmcq1vqaxp1l667q5rjscskc5r22aylakh4w"))))
5250 (build-system emacs-build-system)
5251 (home-page "https://github.com/sanel/monroe")
5252 (synopsis "Clojure nREPL client for Emacs")
5253 (description
5254 "Monroe is a nREPL client for Emacs, focused on simplicity and easy
5255 distribution, primarily targeting Clojure users")
5256 (license license:gpl3+)))
5257
5258 (define-public emacs-orgalist
5259 (package
5260 (name "emacs-orgalist")
5261 (version "1.9")
5262 (source
5263 (origin
5264 (method url-fetch)
5265 (uri (string-append "https://elpa.gnu.org/packages/"
5266 "orgalist-" version ".el"))
5267 (sha256
5268 (base32
5269 "1rmmcyiiqkq54hn74nhzxzl4nvd902hv6gq341jwhrm7yiagffi6"))))
5270 (build-system emacs-build-system)
5271 (home-page "http://elpa.gnu.org/packages/orgalist.html")
5272 (synopsis "Manage Org-like lists in non-Org buffers")
5273 (description "Write Org mode's plain lists in non-Org buffers. More
5274 specifically, Orgalist supports the syntax of Org mode for numbered,
5275 unnumbered, description items, checkboxes, and counter cookies.
5276
5277 The library also implements radio lists, i.e., lists written in Org
5278 syntax later translated into the host format, e.g., LaTeX or HTML.")
5279 (license license:gpl3+)))
5280
5281 (define-public emacs-writegood-mode
5282 (package
5283 (name "emacs-writegood-mode")
5284 (version "2.0.2")
5285 (home-page "https://github.com/bnbeckwith/writegood-mode")
5286 (source (origin
5287 (method git-fetch)
5288 (uri (git-reference
5289 (url home-page)
5290 (commit (string-append "v" version))))
5291 (sha256
5292 (base32
5293 "1nnjn1r669hvvzfycllwap4w04m8rfsk4nzcg8057m1f263kj31b"))
5294 (file-name (string-append name "-checkout"))))
5295 (build-system emacs-build-system)
5296 (synopsis "Polish up poor writing on the fly")
5297 (description
5298 "This minor mode tries to find and highlight problems with your writing
5299 in English as you type. It primarily detects \"weasel words\" and abuse of
5300 passive voice.")
5301 (license license:gpl3+)))
5302
5303 (define-public emacs-neotree
5304 (package
5305 (name "emacs-neotree")
5306 (version "0.5.2")
5307 (home-page "https://github.com/jaypei/emacs-neotree")
5308 (source (origin
5309 (method url-fetch)
5310 (uri (string-append
5311 "https://github.com/jaypei/" name
5312 "/archive/" version ".tar.gz"))
5313 (sha256
5314 (base32
5315 "1zd6dchwyijnf7kgchfcp51gs938l204dk9z6mljrfqf2zy0gp12"))
5316 (file-name (string-append name "-" version ".tar.gz"))))
5317 (build-system emacs-build-system)
5318 (synopsis "Folder tree view for Emacs")
5319 (description "This Emacs package provides a folder tree view.")
5320 (license license:gpl3+)))
5321
5322 (define-public emacs-org
5323 (package
5324 (name "emacs-org")
5325 ;; emacs-org-contrib inherits from this package. Please update its sha256
5326 ;; checksum as well.
5327 (version "9.2")
5328 (source (origin
5329 (method url-fetch)
5330 (uri (string-append "http://elpa.gnu.org/packages/org-"
5331 version ".tar"))
5332 (sha256
5333 (base32
5334 "14ydwh2r360fpi6v2g9rgf0zazy2ddq1pcdxvzn73h65glnnclz9"))))
5335 (build-system emacs-build-system)
5336 (home-page "https://orgmode.org/")
5337 (synopsis "Outline-based notes management and organizer")
5338 (description "Org is an Emacs mode for keeping notes, maintaining TODO
5339 lists, and project planning with a fast and effective lightweight markup
5340 language. It also is an authoring system with unique support for literate
5341 programming and reproducible research.")
5342 (license license:gpl3+)))
5343
5344 (define-public emacs-org-contrib
5345 (package
5346 (inherit emacs-org)
5347 (name "emacs-org-contrib")
5348 (version "20181230")
5349 (source (origin
5350 (method url-fetch)
5351 (uri (string-append "https://orgmode.org/elpa/org-plus-contrib-"
5352 version ".tar"))
5353 (sha256
5354 (base32
5355 "0gibwcjlardjwq19bh0zzszv0dxxlml0rh5iikkcdynbgndk1aa1"))))
5356 (arguments
5357 `(#:modules ((guix build emacs-build-system)
5358 (guix build utils)
5359 (guix build emacs-utils)
5360 (ice-9 ftw)
5361 (srfi srfi-1))
5362 #:phases
5363 (modify-phases %standard-phases
5364 (add-after 'install 'delete-org-files
5365 (lambda* (#:key inputs outputs #:allow-other-keys)
5366 (let* ((out (assoc-ref outputs "out"))
5367 (org (assoc-ref inputs "org"))
5368 (contrib-files
5369 (map basename (find-files out)))
5370 (org+contrib-files
5371 (map basename (find-files org)))
5372 (duplicates (lset-intersection
5373 string=? contrib-files org+contrib-files)))
5374 (with-directory-excursion
5375 (string-append
5376 out "/share/emacs/site-lisp/guix.d/org-contrib-" ,version)
5377 (for-each delete-file duplicates))
5378 #t))))))
5379 (propagated-inputs
5380 `(("arduino-mode" ,emacs-arduino-mode)
5381 ("cider" ,emacs-cider)
5382 ("org" ,emacs-org)
5383 ("scel" ,emacs-scel)))
5384 (synopsis "Contributed packages to Org mode")
5385 (description "Org is an Emacs mode for keeping notes, maintaining TODO
5386 lists, and project planning with a fast and effective plain-text system.
5387
5388 This package is equivalent to org-plus-contrib, but only includes additional
5389 files that you would find in @file{contrib/} from the git repository.")))
5390
5391 (define-public emacs-flx
5392 (package
5393 (name "emacs-flx")
5394 (version "0.6.1")
5395 (source
5396 (origin
5397 (method url-fetch)
5398 (uri (string-append "https://github.com/lewang/"
5399 "flx/archive/v" version ".tar.gz"))
5400 (sha256
5401 (base32
5402 "0bkcpnf1j4i2fcc2rllwbz62l00sw2mcia6rm5amgwvlkqavmkv6"))
5403 (file-name (string-append name "-" version ".tar.gz"))))
5404 (build-system emacs-build-system)
5405 (home-page "https://github.com/lewang/flx")
5406 (synopsis "Fuzzy matching for Emacs")
5407 (description
5408 "Flx provides fuzzy matching for emacs a la sublime text.
5409 The sorting algorithm is a balance between word beginnings (abbreviation)
5410 and contiguous matches (substring). The longer the substring match,
5411 the higher it scores. This maps well to how we think about matching.
5412 Flx has support for ido (interactively do things) through flx-ido.")
5413 (license license:gpl3+)))
5414
5415 (define-public emacs-cyberpunk-theme
5416 (package
5417 (name "emacs-cyberpunk-theme")
5418 (version "1.19")
5419 (source
5420 (origin
5421 (method url-fetch)
5422 (uri (string-append "https://github.com/n3mo/cyberpunk-theme.el/"
5423 "archive/" version ".tar.gz"))
5424 (sha256
5425 (base32
5426 "05l5fxw1mn5py6mfhxrzyqjq0d8m5m1akfi46vrgh13r414jffvv"))
5427 (file-name (string-append name "-" version ".tar.gz"))))
5428 (build-system emacs-build-system)
5429 (home-page "https://github.com/n3mo/cyberpunk-theme.el")
5430 (synopsis "Cyberpunk theme for emacs built-in color theme support")
5431 (description
5432 "Cyberpunk color theme for the emacs 24+ built-in color theme support
5433 known loosely as deftheme. Many mode-specific customizations are included.")
5434 (license license:gpl3+)))
5435
5436 (define-public emacs-danneskjold-theme
5437 (let* ((commit "8733d2fe8743e8a01826ea6d4430ef376c727e57")
5438 (revision "1"))
5439 (package
5440 (name "emacs-danneskjold-theme")
5441 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
5442 (home-page "https://github.com/rails-to-cosmos/danneskjold-theme")
5443 (source
5444 (origin
5445 (method git-fetch)
5446 (uri (git-reference
5447 (url home-page)
5448 (commit commit)))
5449 (file-name (string-append name "-" version "-checkout"))
5450 (sha256
5451 (base32
5452 "0s6rbsb0y8i8m5b9xm4gw1p1cxsxdqnqxqqb638pygz9f76mbir1"))))
5453 (build-system emacs-build-system)
5454 (arguments
5455 `(#:phases
5456 (modify-phases %standard-phases
5457 (add-after 'unpack 'delete-screenshots
5458 (lambda _
5459 (delete-file-recursively "screenshots") #t)))))
5460 (synopsis "High-contrast Emacs theme")
5461 (description
5462 "@code{danneskjold-theme} is a high-contrast theme for Emacs.")
5463 (license license:gpl3+))))
5464
5465 (define-public emacs-dream-theme
5466 (let* ((commit "107a11d74365046f28a1802a2bdb5e69e4a7488b")
5467 (revision "1"))
5468 (package
5469 (name "emacs-dream-theme")
5470 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
5471 (source
5472 (origin
5473 (method git-fetch)
5474 (uri (git-reference
5475 (url "https://github.com/djcb/dream-theme")
5476 (commit commit)))
5477 (file-name (string-append name "-" version "-checkout"))
5478 (sha256
5479 (base32
5480 "0za18nfkq4xqm35k6006vsixcbmvmxqgma4iw5sw37h8vmcsdylk"))))
5481 (build-system emacs-build-system)
5482 (home-page "https://github.com/djcb/dream-theme")
5483 (synopsis "High-contrast Emacs theme")
5484 (description
5485 "@code{dream-theme} is a dark, clean theme for Emacs. It is inspired
5486 by zenburn, sinburn and similar themes, but slowly diverging from them.")
5487 (license license:gpl3+))))
5488
5489 (define-public emacs-auto-complete
5490 (package
5491 (name "emacs-auto-complete")
5492 (version "1.5.1")
5493 (source
5494 (origin
5495 (method url-fetch)
5496 (uri (string-append "https://github.com/auto-complete/"
5497 "auto-complete/archive/v" version ".tar.gz"))
5498 (sha256
5499 (base32
5500 "1jvq4lj00hwml75lpmlciazy8f3bbg13gffsfnl835p4qd8l7yqv"))
5501 (file-name (string-append name "-" version ".tar.gz"))))
5502 (build-system emacs-build-system)
5503 (propagated-inputs
5504 `(("emacs-popup" ,emacs-popup)))
5505 (home-page "https://github.com/auto-complete/auto-complete")
5506 (synopsis "Intelligent auto-completion extension for Emacs")
5507 (description
5508 "Auto-Complete is an intelligent auto-completion extension for Emacs.
5509 It extends the standard Emacs completion interface and provides an environment
5510 that allows users to concentrate more on their own work. Its features are:
5511 a visual interface, reduce overhead of completion by using statistic method,
5512 extensibility.")
5513 (license license:gpl3+)))
5514
5515 (define-public emacs-nginx-mode
5516 (package
5517 (name "emacs-nginx-mode")
5518 (version "1.1.9")
5519 (source
5520 (origin
5521 (method url-fetch)
5522 (uri (string-append
5523 "https://github.com/ajc/nginx-mode/archive/v"
5524 version ".tar.gz"))
5525 (file-name (string-append name "-" version ".tar.gz"))
5526 (sha256
5527 (base32
5528 "0bzyrj6zz1hm67bkhw23bam7qc869s3zg7m1rb1c3aa4n0aw90cq"))))
5529 (build-system emacs-build-system)
5530 (home-page "https://github.com/ajc/nginx-mode")
5531 (synopsis "Emacs major mode for editing nginx config files")
5532 (description "This package provides an Emacs major mode for
5533 editing nginx config files.")
5534 (license license:gpl2+)))
5535
5536 (define-public emacs-stream
5537 (package
5538 (name "emacs-stream")
5539 (version "2.2.0")
5540 (home-page "https://github.com/NicolasPetton/stream")
5541 (source
5542 (origin
5543 (method url-fetch)
5544 (file-name (string-append name "-" version ".tar.gz"))
5545 (uri (string-append home-page "/archive/"version ".tar.gz"))
5546 (sha256
5547 (base32 "03ql4nqfz5pn55mjly6clhvc3g7x2d28kj7mrlqmigvjbql39xxc"))))
5548 (build-system emacs-build-system)
5549 (synopsis "Implementation of streams for Emacs")
5550 (description "This library provides an implementation of streams for Emacs.
5551 Streams are implemented as delayed evaluation of cons cells.")
5552 (license license:gpl3+)))
5553
5554 (define-public emacs-el-search
5555 (let ((commit "f26277bfbb3fc3fc74beea6592f294c439796bd4")
5556 (revision "1"))
5557 (package
5558 (name "emacs-el-search")
5559 ;; No ufficial release.
5560 (version (string-append "0.0-" revision "." (string-take commit 7)))
5561 (home-page "https://github.com/emacsmirror/el-search")
5562 (source
5563 (origin
5564 (method git-fetch)
5565 (file-name (string-append name "-" version ".tar.gz"))
5566 (uri (git-reference
5567 (commit commit)
5568 (url (string-append home-page ".git"))))
5569 (sha256
5570 (base32 "12xf40h9sb7xxg2r97gsia94q02543mgiiiw46fzh1ac7b7993g6"))))
5571 (build-system emacs-build-system)
5572 (inputs `(("emacs-stream" ,emacs-stream)))
5573 (synopsis "Expression based interactive search for emacs-lisp-mode")
5574 (description "This package provides expression based interactive search
5575 procedures for emacs-lisp-mode.")
5576 (license license:gpl3+))))
5577
5578 (define-public emacs-ht
5579 (package
5580 (name "emacs-ht")
5581 (version "2.1")
5582 (source
5583 (origin
5584 (method url-fetch)
5585 (uri (string-append
5586 "https://github.com/Wilfred/ht.el/archive/"
5587 version ".tar.gz"))
5588 (file-name (string-append name "-" version ".tar.gz"))
5589 (sha256
5590 (base32
5591 "1lpba36kzxcc966fvsbrfpy8ah9gnvay0yk26gbyjil0rggrbqzj"))))
5592 (build-system emacs-build-system)
5593 (propagated-inputs `(("emacs-dash" ,emacs-dash)))
5594 (home-page "https://github.com/Wilfred/ht.el")
5595 (synopsis "Hash table library for Emacs")
5596 (description
5597 "This package simplifies the use of hash tables in elisp. It also
5598 provides functions to convert hash tables from and to alists and plists.")
5599 (license license:gpl3+)))
5600
5601 (define-public emacs-log4e
5602 (package
5603 (name "emacs-log4e")
5604 (version "0.3.0")
5605 (source
5606 (origin
5607 (method url-fetch)
5608 (uri (string-append
5609 "https://github.com/aki2o/log4e/archive/v"
5610 version ".tar.gz"))
5611 (file-name (string-append name "-" version ".tar.gz"))
5612 (sha256
5613 (base32
5614 "0nbdpbw353snda3v19l9hsm6gimppwnpxj18amm350bm81lyim2g"))))
5615 (build-system emacs-build-system)
5616 (arguments
5617 `(#:phases
5618 (modify-phases %standard-phases
5619 (add-after 'unpack 'remove-tests
5620 ;; Guile builder complains about null characters in some
5621 ;; strings of test files. Remove "test" directory (it is not
5622 ;; needed anyway).
5623 (lambda _
5624 (delete-file-recursively "test"))))))
5625 (home-page "https://github.com/aki2o/log4e")
5626 (synopsis "Logging framework for elisp")
5627 (description
5628 "This package provides a logging framework for elisp. It allows
5629 you to deal with multiple log levels.")
5630 (license license:gpl3+)))
5631
5632 (define-public emacs-gntp
5633 (package
5634 (name "emacs-gntp")
5635 (version "0.1")
5636 (source
5637 (origin
5638 (method url-fetch)
5639 (uri (string-append
5640 "https://github.com/tekai/gntp.el/archive/v"
5641 version ".tar.gz"))
5642 (file-name (string-append name "-" version ".tar.gz"))
5643 (sha256
5644 (base32
5645 "16c1dfkia9yhl206bdhjr3b8kfvqcqr38jl5lq8qsyrrzsnmghny"))))
5646 (build-system emacs-build-system)
5647 (home-page "https://github.com/tekai/gntp.el")
5648 (synopsis "Growl Notification Protocol for Emacs")
5649 (description
5650 "This package implements the Growl Notification Protocol GNTP
5651 described at @uref{http://www.growlforwindows.com/gfw/help/gntp.aspx}.
5652 It is incomplete as it only lets you send but not receive
5653 notifications.")
5654 (license license:bsd-3)))
5655
5656 (define-public emacs-alert
5657 (package
5658 (name "emacs-alert")
5659 (version "1.2")
5660 (source
5661 (origin
5662 (method url-fetch)
5663 (uri (string-append
5664 "https://github.com/jwiegley/alert/archive/v"
5665 version ".tar.gz"))
5666 (file-name (string-append name "-" version ".tar.gz"))
5667 (sha256
5668 (base32
5669 "1693kck3k2iz5zhpmxwqyafxm68hr6gzs60lkxd3j1wlp2c9fwyr"))))
5670 (build-system emacs-build-system)
5671 (propagated-inputs
5672 `(("emacs-gntp" ,emacs-gntp)
5673 ("emacs-log4e" ,emacs-log4e)))
5674 (home-page "https://github.com/jwiegley/alert")
5675 (synopsis "Growl-style notification system for Emacs")
5676 (description
5677 "Alert is a Growl-workalike for Emacs which uses a common notification
5678 interface and multiple, selectable \"styles\", whose use is fully
5679 customizable by the user.")
5680 (license license:gpl2+)))
5681
5682 (define-public emacs-mu4e-alert
5683 (package
5684 (name "emacs-mu4e-alert")
5685 (version "1.0")
5686 (source
5687 (origin
5688 (method url-fetch)
5689 (uri (string-append
5690 "https://github.com/iqbalansari/mu4e-alert/archive/v"
5691 version ".tar.gz"))
5692 (file-name (string-append name "-" version ".tar.gz"))
5693 (sha256
5694 (base32
5695 "07qc834qnxn8xi4bw5nawj8g91bmkzw0r0vahkgysp7r9xrf57gj"))))
5696 (build-system emacs-build-system)
5697 (propagated-inputs
5698 `(("emacs-alert" ,emacs-alert)
5699 ("emacs-s" ,emacs-s)
5700 ("emacs-ht" ,emacs-ht)
5701 ("mu" ,mu)))
5702 (home-page "https://github.com/iqbalansari/mu4e-alert")
5703 (synopsis "Desktop notification for mu4e")
5704 (description
5705 "This package provides desktop notifications for mu4e.
5706 Additionally it can display the number of unread emails in the
5707 mode-line.")
5708 (license license:gpl3+)))
5709
5710 (define-public emacs-pretty-mode
5711 (package
5712 (name "emacs-pretty-mode")
5713 (version "2.0.3")
5714 (source
5715 (origin
5716 (method url-fetch)
5717 (uri (string-append "https://github.com/akatov/pretty-mode/"
5718 "archive/" version ".tar.gz"))
5719 (file-name (string-append name "-" version ".tar.gz"))
5720 (sha256
5721 (base32
5722 "1fan7m4vnqs8kpg7r54kx3g7faadkpkf9kzarfv8n57kq8w157pl"))))
5723 (build-system emacs-build-system)
5724 (home-page "https://github.com/akatov/pretty-mode")
5725 (synopsis "Redisplay parts of the buffer as Unicode symbols")
5726 (description
5727 "Emacs minor mode for redisplaying parts of the buffer as pretty symbols.")
5728 (license license:gpl3+)))
5729
5730 (define-public emacs-yasnippet
5731 (package
5732 (name "emacs-yasnippet")
5733 (version "0.13.0")
5734 (source (origin
5735 (method url-fetch)
5736 (uri (string-append "https://github.com/joaotavora/yasnippet/"
5737 "archive/" version ".tar.gz"))
5738 (file-name (string-append name "-" version ".tar.gz"))
5739 (sha256
5740 (base32
5741 "12ls2x17agzbrj1xynjbmfa11igqxia4hj4fv6fpr66yci2r1plc"))
5742 (modules '((guix build utils)))
5743 (snippet
5744 '(begin
5745 ;; YASnippet expects a "snippets" subdirectory in the same
5746 ;; directory as yasnippet.el, but we don't install it
5747 ;; because it's a git submodule pointing to an external
5748 ;; repository. Adjust `yas-snippet-dirs' to prevent
5749 ;; warnings about a missing directory.
5750 (substitute* "yasnippet.el"
5751 (("^ +'yas-installed-snippets-dir\\)\\)\n")
5752 "))\n"))
5753 #t))))
5754 (build-system emacs-build-system)
5755 (home-page "https://github.com/joaotavora/yasnippet")
5756 (synopsis "Yet another snippet extension for Emacs")
5757 (description
5758 "YASnippet is a template system for Emacs. It allows you to type an
5759 abbreviation and automatically expand it into function templates.")
5760 (license license:gpl3+)))
5761
5762 (define-public emacs-yasnippet-snippets
5763 (let ((commit "885050d34737e2fb36a3e7759d60c09347bd4ce0")
5764 (revision "1"))
5765 (package
5766 (name "emacs-yasnippet-snippets")
5767 (version (string-append "1-" revision "." (string-take commit 8)))
5768 (source
5769 (origin
5770 (method git-fetch)
5771 (uri (git-reference
5772 (url "https://github.com/AndreaCrotti/yasnippet-snippets")
5773 (commit commit)))
5774 (file-name (string-append name "-" version "-checkout"))
5775 (sha256
5776 (base32
5777 "1m935zgglw0iakzrixld5rcjz3wnj84f8wy2mvc3pggjri9l0qr9"))))
5778 (build-system trivial-build-system)
5779 (arguments
5780 `(#:modules ((ice-9 ftw)
5781 (ice-9 regex)
5782 (guix build utils))
5783 #:builder
5784 (begin
5785 (use-modules (ice-9 ftw)
5786 (ice-9 regex)
5787 (guix build utils))
5788 (with-directory-excursion (assoc-ref %build-inputs "source")
5789 (for-each (lambda (dir)
5790 (copy-recursively
5791 dir
5792 (string-append %output
5793 "/share/emacs/yasnippet-snippets/"
5794 dir)))
5795 (scandir "." (lambda (fname)
5796 (and (string-match "-mode$" fname)
5797 (directory-exists? fname))))))
5798 #t)))
5799 (home-page "https://github.com/AndreaCrotti/yasnippet-snippets")
5800 (synopsis "Collection of YASnippet snippets for many languages")
5801 (description
5802 "Provides Andrea Crotti's collection of YASnippet snippets. After installation,
5803 the snippets will be in \"~/.guix-profile/share/emacs/yasnippet-snippets/\".
5804 To make YASnippet aware of these snippets, add the above directory to
5805 @code{yas-snippet-dirs}.")
5806 (license license:expat))))
5807
5808 (define-public emacs-helm-c-yasnippet
5809 (let ((commit "65ca732b510bfc31636708aebcfe4d2d845b59b0")
5810 (revision "1"))
5811 (package
5812 (name "emacs-helm-c-yasnippet")
5813 (version (string-append "0.6.7" "-" revision "."
5814 (string-take commit 7)))
5815 (source (origin
5816 (method git-fetch)
5817 (uri (git-reference
5818 (url "https://github.com/emacs-jp/helm-c-yasnippet")
5819 (commit commit)))
5820 (file-name (string-append name "-" version "-checkout"))
5821 (sha256
5822 (base32
5823 "1cbafjqlzxbg19xfdqsinsh7afq58gkf44rsg1qxfgm8g6zhr7f8"))))
5824 (build-system emacs-build-system)
5825 (propagated-inputs
5826 `(("emacs-helm" ,emacs-helm)
5827 ("emacs-yasnippet" ,emacs-yasnippet)))
5828 (home-page "https://github.com/emacs-jp/helm-c-yasnippet")
5829 (synopsis "Helm integration for Yasnippet")
5830 (description "This Emacs library provides Helm interface for
5831 Yasnippet.")
5832 (license license:gpl2+))))
5833
5834 (define-public emacs-helm-system-packages
5835 (package
5836 (name "emacs-helm-system-packages")
5837 (version "1.10.1")
5838 (source (origin
5839 (method git-fetch)
5840 (uri (git-reference
5841 (url "https://github.com/emacs-helm/helm-system-packages")
5842 (commit (string-append "v" version))))
5843 (file-name (string-append name "-" version "-checkout"))
5844 (sha256
5845 (base32
5846 "01by0c4lqi2cw8xmbxkjw7m9x78zssm31sx4hdpw5j35s2951j0f"))))
5847 (build-system emacs-build-system)
5848 (inputs
5849 `(("recutils" ,recutils)))
5850 (propagated-inputs
5851 `(("emacs-helm" ,emacs-helm)))
5852 (arguments
5853 `(#:phases
5854 (modify-phases %standard-phases
5855 (add-after 'unpack 'configure
5856 (lambda* (#:key inputs outputs #:allow-other-keys)
5857 (let ((recutils (assoc-ref inputs "recutils")))
5858 ;; Specify the absolute file names of the various
5859 ;; programs so that everything works out-of-the-box.
5860 (substitute* "helm-system-packages-guix.el"
5861 (("recsel") (string-append recutils "/bin/recsel")))))))))
5862 (home-page "https://github.com/emacs-helm/helm-system-packages")
5863 (synopsis "Helm System Packages is an interface to your package manager")
5864 (description "List all available packages in Helm (with installed
5865 packages displayed in their own respective face). Fuzzy-search, mark and
5866 execute the desired action over any selections of packages: Install,
5867 uninstall, display packages details (in Org Mode) or insert details at point,
5868 find files owned by packages... And much more, including performing all the
5869 above over the network.")
5870 (license license:gpl3+)))
5871
5872 (define-public emacs-memoize
5873 (package
5874 (name "emacs-memoize")
5875 (version "1.1")
5876 (source
5877 (origin
5878 (method url-fetch)
5879 (uri (string-append
5880 "https://github.com/skeeto/emacs-memoize/archive/"
5881 version ".tar.gz"))
5882 (file-name (string-append name "-" version ".tar.gz"))
5883 (sha256
5884 (base32
5885 "05ijgwi4ymxx31vpjm2pn356j85cykknajn14lrzz8pn5sh0vrg4"))))
5886 (build-system emacs-build-system)
5887 (arguments
5888 `(#:tests? #t
5889 #:test-command '("emacs" "--batch"
5890 "-l" "memoize-test.el"
5891 "-f" "ert-run-tests-batch-and-exit")))
5892 (home-page "https://github.com/skeeto/emacs-memoize")
5893 (synopsis "Emacs lisp memoization library")
5894 (description "@code{emacs-memoize} is an Emacs library for
5895 memoizing functions.")
5896 (license license:unlicense)))
5897
5898 (define-public emacs-linum-relative
5899 (package
5900 (name "emacs-linum-relative")
5901 (version "0.5")
5902 (source
5903 (origin
5904 (method url-fetch)
5905 (uri (string-append
5906 "https://github.com/coldnew/linum-relative/archive/"
5907 version ".tar.gz"))
5908 (file-name (string-append name "-" version ".tar.gz"))
5909 (sha256
5910 (base32
5911 "0s4frvr27866lw1rn3jal9wj5rkz9fx4yiszqv7w06azsdgsqksv"))))
5912 (build-system emacs-build-system)
5913 (home-page "https://github.com/coldnew/linum-relative")
5914 (synopsis "Relative line numbering for Emacs")
5915 (description "@code{emacs-linum-relative} displays the relative line
5916 number on the left margin in Emacs.")
5917 (license license:gpl2+)))
5918
5919 (define-public emacs-idle-highlight
5920 (package
5921 (name "emacs-idle-highlight")
5922 (version "1.1.3")
5923 (source
5924 (origin
5925 (method url-fetch)
5926 (uri (string-append
5927 "https://github.com/nonsequitur/idle-highlight-mode/archive/"
5928 version ".tar.gz"))
5929 (file-name (string-append name "-" version ".tar.gz"))
5930 (sha256
5931 (base32
5932 "0kdv10hrgqpskjh0zvpnzwlkn5bccnqxas62gkws6njln57bf8nl"))))
5933 (build-system emacs-build-system)
5934 (home-page "https://www.emacswiki.org/emacs/IdleHighlight")
5935 (synopsis "Highlights all occurrences of the word the point is on")
5936 (description
5937 "This Emacs package provides @code{idle-highlight-mode} that sets
5938 an idle timer to highlight all occurrences in the buffer of the word under
5939 the point.")
5940 (license license:gpl3+)))
5941
5942 (define-public emacs-ox-twbs
5943 (package
5944 (name "emacs-ox-twbs")
5945 (version "1.1.1")
5946 (source
5947 (origin
5948 (method url-fetch)
5949 (uri (string-append
5950 "https://github.com/marsmining/ox-twbs/archive/v"
5951 version ".tar.gz"))
5952 (file-name (string-append name "-" version ".tar.gz"))
5953 (sha256
5954 (base32
5955 "1zaq8dczq5wijjk36114k2x3hfrqig3lyx6djril6wyk67vczyqs"))))
5956 (build-system emacs-build-system)
5957 (home-page "https://github.com/marsmining/ox-twbs")
5958 (synopsis "Export org-mode docs as HTML compatible with Twitter Bootstrap")
5959 (description
5960 "This Emacs package outputs your org-mode docs with a simple, clean and
5961 modern look. It implements a new HTML back-end for exporting org-mode docs as
5962 HTML compatible with Twitter Bootstrap. By default, HTML is exported with
5963 jQuery and Bootstrap resources included via osscdn.")
5964 (license license:gpl3+)))
5965
5966 (define-public emacs-highlight-sexp
5967 (package
5968 (name "emacs-highlight-sexp")
5969 (version "1.0")
5970 (source
5971 (origin
5972 (method url-fetch)
5973 (uri (string-append
5974 "https://github.com/daimrod/highlight-sexp/archive/v"
5975 version ".tar.gz"))
5976 (file-name (string-append name "-" version ".tar.gz"))
5977 (sha256
5978 (base32
5979 "0jwx87qkln1rg9wmv4qkgkml935fh2pkgrg5x4ca6n5dgb4q6rj1"))))
5980 (build-system emacs-build-system)
5981 (home-page "https://github.com/daimrod/highlight-sexp")
5982 (synopsis "Minor mode that highlights the s-exp at the current position")
5983 (description
5984 "This Emacs package highlights the s-exp at the current position.")
5985 (license license:gpl3+)))
5986
5987 (define-public emacs-highlight-stages
5988 (let ((commit "29cbc5b78261916da042ddb107420083da49b271")
5989 (revision "1"))
5990 (package
5991 (name "emacs-highlight-stages")
5992 (version (string-append "1.1.0" "-" revision "." (string-take commit 7)))
5993 (source
5994 (origin
5995 (method git-fetch)
5996 (uri (git-reference
5997 (url "https://github.com/zk-phi/highlight-stages.git")
5998 (commit commit)))
5999 (file-name (string-append name "-" version "-checkout"))
6000 (sha256
6001 (base32
6002 "0r6nbcrr0dqpgm8dir8ahzjy7rw4nrac48byamzrq96r7ajlxlv0"))
6003 (patches
6004 (search-patches "emacs-highlight-stages-add-gexp.patch"))))
6005 (build-system emacs-build-system)
6006 (home-page "https://github.com/wigust/highlight-stages")
6007 (synopsis "Minor mode that highlights (quasi-quoted) expressions")
6008 (description "@code{highlight-stages} provides an Emacs minor mode that
6009 highlights quasi-quoted expressions.")
6010 (license license:gpl3+))))
6011
6012 (define-public emacspeak
6013 (package
6014 (name "emacspeak")
6015 (version "48.0")
6016 (source
6017 (origin
6018 (method url-fetch)
6019 (uri (string-append
6020 "https://github.com/tvraman/emacspeak/releases/download/"
6021 version "/emacspeak-" version ".tar.bz2"))
6022 (sha256
6023 (base32
6024 "07imi3hji06b3r7v7v59978q76s8a7ynmxwfc9j03pgnv965lpjy"))))
6025 (build-system gnu-build-system)
6026 (arguments
6027 '(#:make-flags (list (string-append "prefix="
6028 (assoc-ref %outputs "out")))
6029 #:phases
6030 (modify-phases %standard-phases
6031 (replace 'configure
6032 (lambda* (#:key outputs #:allow-other-keys)
6033 (let* ((out (assoc-ref outputs "out"))
6034 (lisp (string-append out
6035 "/share/emacs/site-lisp/emacspeak")))
6036 (setenv "SHELL" (which "sh"))
6037 ;; Configure Emacspeak according to etc/install.org.
6038 (invoke "make" "config"))))
6039 (add-after 'build 'build-espeak
6040 (lambda _
6041 (invoke "make" "espeak")))
6042 (replace 'install
6043 (lambda* (#:key inputs outputs #:allow-other-keys)
6044 (let* ((out (assoc-ref outputs "out"))
6045 (bin (string-append out "/bin"))
6046 (lisp (string-append out "/share/emacs/site-lisp/emacspeak"))
6047 (info (string-append out "/share/info"))
6048 (emacs (string-append (assoc-ref inputs "emacs")
6049 "/bin/emacs")))
6050 ;; According to etc/install.org, the Emacspeak directory should
6051 ;; be copied to its installation destination.
6052 (for-each
6053 (lambda (file)
6054 (copy-recursively file (string-append lisp "/" file)))
6055 '("etc" "info" "js" "lisp" "media" "scapes" "servers" "sounds"
6056 "stumpwm" "xsl"))
6057 ;; Make sure emacspeak is loaded from the correct directory.
6058 (substitute* "etc/emacspeak.sh"
6059 (("exec FLAVOR.*")
6060 (string-append "exec " emacs " -l " lisp
6061 "/lisp/emacspeak-setup.el $CL_ALL")))
6062 ;; Install the convenient startup script.
6063 (mkdir-p bin)
6064 (copy-file "etc/emacspeak.sh" (string-append bin "/emacspeak")))
6065 #t))
6066 (add-after 'install 'wrap-program
6067 (lambda* (#:key inputs outputs #:allow-other-keys)
6068 (let* ((out (assoc-ref outputs "out"))
6069 (emacspeak (string-append out "/bin/emacspeak"))
6070 (espeak (string-append (assoc-ref inputs "espeak")
6071 "/bin/espeak")))
6072 ;; The environment variable DTK_PROGRAM tells emacspeak what
6073 ;; program to use for speech.
6074 (wrap-program emacspeak
6075 `("DTK_PROGRAM" ":" prefix (,espeak)))
6076 #t))))
6077 #:tests? #f)) ; no check target
6078 (inputs
6079 `(("emacs" ,emacs)
6080 ("espeak" ,espeak)
6081 ("perl" ,perl)
6082 ("tcl" ,tcl)
6083 ("tclx" ,tclx)))
6084 (home-page "http://emacspeak.sourceforge.net")
6085 (synopsis "Audio desktop interface for Emacs")
6086 (description
6087 "Emacspeak is a speech interface that allows visually impaired users to
6088 interact independently and efficiently with the computer. Audio formatting
6089 --a technique pioneered by AsTeR-- and full support for W3C's Aural CSS (ACSS)
6090 allows Emacspeak to produce rich aural presentations of electronic information.
6091 By seamlessly blending all aspects of the Internet such as Web-surfing and
6092 messaging, Emacspeak speech-enables local and remote information via a
6093 consistent and well-integrated user interface.")
6094 (license license:gpl2+)))
6095
6096 (define-public emacs-adaptive-wrap
6097 (package
6098 (name "emacs-adaptive-wrap")
6099 (version "0.5.1")
6100 (source (origin
6101 (method url-fetch)
6102 (uri (string-append
6103 "http://elpa.gnu.org/packages/adaptive-wrap-"
6104 version ".el"))
6105 (sha256
6106 (base32
6107 "0qi7gjprcpywk2daivnlavwsx53hl5wcqvpxbwinvigg42vxh3ll"))))
6108 (build-system emacs-build-system)
6109 (home-page "http://elpa.gnu.org/packages/adaptive-wrap.html")
6110 (synopsis "Smart line-wrapping with wrap-prefix")
6111 (description
6112 "This Emacs package provides the @code{adaptive-wrap-prefix-mode}
6113 minor mode which sets the wrap-prefix property on the fly so that
6114 single-long-line paragraphs get word-wrapped in a way similar to what
6115 you'd get with @kbd{M-q} using @code{adaptive-fill-mode}, but without
6116 actually changing the buffer's text.")
6117 (license license:gpl3+)))
6118
6119 (define-public emacs-diff-hl
6120 (package
6121 (name "emacs-diff-hl")
6122 (version "1.8.5")
6123 (source
6124 (origin
6125 (method url-fetch)
6126 (uri (string-append "https://elpa.gnu.org/packages/diff-hl-"
6127 version ".tar"))
6128 (sha256
6129 (base32
6130 "1vxc7z7c2qs0mx7l5sa4sybi5qbzv0s79flj74p1ynw8dl3qxg3d"))))
6131 (build-system emacs-build-system)
6132 (home-page "https://github.com/dgutov/diff-hl")
6133 (synopsis
6134 "Highlight uncommitted changes using VC")
6135 (description
6136 "@code{diff-hl-mode} highlights uncommitted changes on the side of the
6137 window (using the fringe, by default), allows you to jump between
6138 the hunks and revert them selectively.")
6139 (license license:gpl3+)))
6140
6141 (define-public emacs-diminish
6142 (package
6143 (name "emacs-diminish")
6144 (version "0.45")
6145 (source
6146 (origin
6147 (method url-fetch)
6148 (uri (string-append
6149 "https://github.com/myrjola/diminish.el/archive/v"
6150 version ".tar.gz"))
6151 (file-name (string-append name "-" version ".tar.gz"))
6152 (sha256
6153 (base32
6154 "0i3629sv5cfrrb00hcnmaqzgs8mk36yasc1ax3ry1ga09nr6rkj9"))))
6155 (build-system emacs-build-system)
6156 (home-page "https://github.com/myrjola/diminish.el")
6157 (synopsis "Diminish minor modes with no modeline display")
6158 (description "@code{emacs-diminish} implements hiding or
6159 abbreviation of the mode line displays (lighters) of minor modes.")
6160 (license license:gpl2+)))
6161
6162 (define-public emacs-use-package
6163 (let ((commit "da8c9e2840343906e732f9699e43d35a1f06481d")
6164 (revision "1"))
6165 (package
6166 (name "emacs-use-package")
6167 (version (git-version "2.3" revision commit))
6168 (source (origin
6169 (method git-fetch)
6170 (uri (git-reference
6171 (url "https://github.com/jwiegley/use-package")
6172 (commit commit)))
6173 (file-name (git-file-name name version))
6174 (sha256
6175 (base32
6176 "0jz38pbq1p9h85i6qcsh3sfzkd103y6mw3rg5zd14dxigp8ir3xz"))))
6177 (build-system emacs-build-system)
6178 (propagated-inputs
6179 `(("emacs-diminish" ,emacs-diminish)))
6180 (arguments
6181 `(#:tests? #t
6182 #:test-command '("emacs" "--batch"
6183 "-l" "use-package-tests.el"
6184 "-f" "ert-run-tests-batch-and-exit")))
6185 (home-page "https://github.com/jwiegley/use-package")
6186 (synopsis "Declaration for simplifying your .emacs")
6187 (description "The use-package macro allows you to isolate package
6188 configuration in your @file{.emacs} file in a way that is both
6189 performance-oriented and tidy.")
6190 (license license:gpl2+))))
6191
6192 (define-public emacs-strace-mode
6193 (let* ((commit "6a69b4b06db6797af56f33eda5cb28af94e59f11")
6194 (revision "1"))
6195 (package
6196 (name "emacs-strace-mode")
6197 (version (string-append "0.0.2-" revision "." (string-take commit 7)))
6198 (source (origin
6199 (method git-fetch)
6200 (uri (git-reference
6201 (url "https://github.com/pkmoore/strace-mode")
6202 (commit commit)))
6203 (file-name (string-append name "-" version "-checkout"))
6204 (sha256
6205 (base32
6206 "1lbk2kzdznf2bkfazizfbimaxxzfzv00lrz1ran9dc2zqbc0bj9f"))))
6207 (build-system emacs-build-system)
6208 (home-page "https://github.com/pkmoore/strace-mode")
6209 (synopsis "Emacs major mode to highlight strace outputs")
6210 (description "@code{emacs-strace-mode} provides an Emacs major mode
6211 highlighting strace outputs.")
6212 (license license:gpl3+))))
6213
6214 (define-public emacs-default-encrypt
6215 (package
6216 (name "emacs-default-encrypt")
6217 (version "4.3")
6218 (source
6219 (origin
6220 (method url-fetch)
6221 (uri (string-append
6222 "https://www.informationelle-selbstbestimmung-im-internet.de"
6223 "/emacs/jl-encrypt" version "/jl-encrypt.el"))
6224 (file-name (string-append "jl-encrypt-" version ".el"))
6225 (sha256
6226 (base32
6227 "16i3rlfp3jxlqvndn8idylhmczync3gwmy8a019v29vyr48rnnr0"))))
6228 (build-system emacs-build-system)
6229 (home-page "https://www.informationelle-selbstbestimmung-im-internet.de/Emacs.html")
6230 (synopsis "Automatically encrypt or sign Gnus messages in Emacs")
6231 (description
6232 "DefaultEncrypt is designed to be used with Gnus in Emacs. It
6233 automatically encrypts messages that you send (e.g., email) when public keys
6234 for all recipients are available, and it protects you from accidentally
6235 sending un-encrypted messages. It can also be configured to automatically
6236 sign messages that you send. For details and instructions on how to use
6237 DefaultEncrypt, please refer to the home page or read the comments in the
6238 source file, @file{jl-encrypt.el}.")
6239 (license license:gpl3+)))
6240
6241 (define-public emacs-htmlize
6242 (package
6243 (name "emacs-htmlize")
6244 (version "1.53")
6245 (source
6246 (origin
6247 (method url-fetch)
6248 (uri (string-append
6249 "https://github.com/hniksic/emacs-htmlize/archive/release/"
6250 version ".tar.gz"))
6251 (file-name (string-append name "-" version ".tar.gz"))
6252 (sha256
6253 (base32
6254 "1lzaf9m1qr9dhw4nn53g6wszk2vqw95gpsbrc3y85bams4cn24ga"))))
6255 (build-system emacs-build-system)
6256 (home-page "https://github.com/hniksic/emacs-htmlize")
6257 (synopsis "Convert buffer text and decorations to HTML")
6258 (description "@code{emacs-htmlize} converts the buffer text and
6259 the associated decorations to HTML. Output to CSS, inline CSS and
6260 fonts is supported.")
6261 (license license:gpl2+)))
6262
6263 (define-public emacs-xmlgen
6264 (package
6265 (name "emacs-xmlgen")
6266 (version "0.5")
6267 (source
6268 (origin
6269 (method url-fetch)
6270 (uri (string-append
6271 "https://github.com/philjackson/xmlgen/archive/"
6272 version ".tar.gz"))
6273 (file-name (string-append name "-" version ".tar.gz"))
6274 (sha256
6275 (base32
6276 "0zay490vjby3f7455r0vydmjg7q1gwc78hilpfb0rg4gwz224z8r"))))
6277 (build-system emacs-build-system)
6278 (arguments
6279 `(#:tests? #t
6280 #:test-command '("emacs" "--batch"
6281 "-l" "xmlgen-test.el"
6282 "-f" "ert-run-tests-batch-and-exit")))
6283 (home-page "https://github.com/philjackson/xmlgen")
6284 (synopsis "S-expression to XML domain specific language (DSL) in
6285 Emacs Lisp")
6286 (description "@code{emacs-xmlgen} provides S-expression to XML
6287 conversion for Emacs Lisp.")
6288 (license license:gpl2+)))
6289
6290 (define-public emacs-cdlatex
6291 (package
6292 (name "emacs-cdlatex")
6293 (version "4.7")
6294 (source
6295 (origin
6296 (method url-fetch)
6297 (uri (string-append
6298 "https://github.com/cdominik/cdlatex/archive/"
6299 version ".tar.gz"))
6300 (file-name (string-append name "-" version ".tar.gz"))
6301 (sha256
6302 (base32
6303 "0pivapphmykc6vhvpx7hdyl55ls37vc4jcrxpvs4yk7jzcmwa9xp"))))
6304 (build-system emacs-build-system)
6305 (propagated-inputs
6306 `(("emacs-auctex" ,emacs-auctex)))
6307 (home-page "https://github.com/cdominik/cdlatex")
6308 (synopsis "Fast Emacs input methods for LaTeX environments and
6309 math")
6310 (description "CDLaTeX is an Emacs minor mode supporting fast
6311 insertion of environment templates and math in LaTeX. Similar
6312 commands are also offered as part of the AUCTeX package, but it is not
6313 the same - CDLaTeX focuses on speediness for inserting LaTeX
6314 constructs.")
6315 (license license:gpl3+)))
6316
6317 (define-public emacs-cnfonts
6318 (package
6319 (name "emacs-cnfonts")
6320 (version "0.9.1")
6321 (source (origin
6322 (method url-fetch)
6323 (uri (string-append
6324 "https://github.com/tumashu/cnfonts/archive/v"
6325 version ".tar.gz"))
6326 (file-name (string-append name "-" version ".tar.gz"))
6327 (sha256
6328 (base32
6329 "1l6cgcvc6md1zq97ccczankpyi0k4vjx6apflny6kjq3p33lyhf4"))))
6330 (build-system emacs-build-system)
6331 (home-page "https://github.com/tumashu/cnfonts")
6332 (synopsis "Emacs Chinese fonts setup tool")
6333 (description "cnfonts is a Chinese fonts setup tool, allowing for easy
6334 configuration of Chinese fonts.")
6335 (license license:gpl2+)))
6336
6337 (define-public emacs-php-mode
6338 (package
6339 (name "emacs-php-mode")
6340 (version "20171225.342")
6341 (source (origin
6342 (method url-fetch)
6343 (uri (string-append
6344 "https://melpa.org/packages/php-mode-"
6345 version ".tar"))
6346 (sha256
6347 (base32
6348 "1zz682f34v4wsm2dyj1gnrnvsrqdq1cy7j8p6cvc398w2fziyg3q"))))
6349 (build-system emacs-build-system)
6350 (home-page "https://github.com/ejmr/php-mode")
6351 (synopsis "Major mode for editing PHP code")
6352 (description "@code{php-mode} is a major mode for editing PHP source
6353 code. It's an extension of C mode; thus it inherits all C mode's navigation
6354 functionality. But it colors according to the PHP grammar and indents
6355 according to the PEAR coding guidelines. It also includes a couple handy
6356 IDE-type features such as documentation search and a source and class
6357 browser.")
6358 (license license:gpl3+)))
6359
6360 (define-public emacs-pos-tip
6361 (package
6362 (name "emacs-pos-tip")
6363 (version "0.4.6")
6364 (source (origin
6365 (method url-fetch)
6366 (uri (string-append
6367 "https://github.com/pitkali/pos-tip/archive/"
6368 version ".tar.gz"))
6369 (file-name (string-append name "-" version ".tar.gz"))
6370 (sha256
6371 (base32
6372 "12jqfy26vjk7lq0aa8yn8zqj8c85fkvx7y9prj0pcn4wqiz2ad2r"))))
6373 (build-system emacs-build-system)
6374 ;; The following functions and variables needed by emacs-pos-tip are
6375 ;; not included in emacs-minimal:
6376 ;; x-display-pixel-width, x-display-pixel-height, x-show-tip
6377 (arguments `(#:emacs ,emacs))
6378 (home-page "https://github.com/pitkali/pos-tip")
6379 (synopsis "Show tooltip at point")
6380 (description "The standard library tooltip.el provides a function for
6381 displaying a tooltip at the mouse position. However, locating a tooltip at an
6382 arbitrary buffer position in a window is not easy. Pos-tip provides such a
6383 function to be used by other frontend programs.")
6384 (license license:gpl2+)))
6385
6386 (define-public emacs-pyim-basedict
6387 (package
6388 (name "emacs-pyim-basedict")
6389 (version "0.3.1")
6390 (source (origin
6391 (method url-fetch)
6392 (uri (string-append
6393 "https://github.com/tumashu/pyim-basedict/archive/v"
6394 version ".tar.gz"))
6395 (file-name (string-append name "-" version ".tar.gz"))
6396 (sha256
6397 (base32
6398 "0nfgxviavkgrpyfsw60xsws4fk51fcmgl8fp6zf4ibqjjbp53n3n"))))
6399 (build-system emacs-build-system)
6400 (home-page "https://github.com/tumashu/pyim-basedict")
6401 (synopsis "Input method dictionary of pyim")
6402 (description "Pyim-basedict is the default pinyin input method dictionary,
6403 containing words from the rime project.")
6404 (license license:gpl2+)))
6405
6406 (define-public emacs-pyim
6407 (package
6408 (name "emacs-pyim")
6409 (version "1.8")
6410 (source
6411 (origin
6412 (method git-fetch)
6413 (uri (git-reference
6414 (url "https://github.com/tumashu/pyim")
6415 (commit (string-append "v" version))))
6416 (file-name (git-file-name name version))
6417 (sha256
6418 (base32
6419 "16rma4cv7xgky0g3x4an27v30jdi6i1sqw43cl99zhkqvp43l3f9"))))
6420 (build-system emacs-build-system)
6421 (propagated-inputs
6422 `(("emacs-async" ,emacs-async)
6423 ("emacs-pyim-basedict" ,emacs-pyim-basedict)
6424 ("emacs-popup" ,emacs-popup)
6425 ("emacs-posframe" ,emacs-posframe)))
6426 (home-page "https://github.com/tumashu/pyim")
6427 (synopsis "Chinese input method")
6428 (description "Chinese input method which supports quanpin, shuangpin, wubi
6429 and cangjie.")
6430 (license license:gpl2+)))
6431
6432 (define-public emacs-posframe
6433 (package
6434 (name "emacs-posframe")
6435 (version "0.4.2")
6436 (source
6437 (origin
6438 (method url-fetch)
6439 (uri (string-append
6440 "https://elpa.gnu.org/packages/posframe-" version ".el"))
6441 (sha256
6442 (base32
6443 "1h8vvxvsg41vc1nnglqjs2q0k1yzfsn72skga9s76qa3zxmx6kds"))))
6444 (build-system emacs-build-system)
6445 ;; emacs-minimal does not include the function font-info
6446 (arguments `(#:emacs ,emacs))
6447 (home-page "https://github.com/tumashu/posframe")
6448 (synopsis "Pop a posframe (a child frame) at point")
6449 (description "@code{emacs-posframe} can pop a posframe at point. A
6450 posframe is a child frame displayed within its root window's buffer.
6451 @code{emacs-posframe} is fast and works well with CJK languages.")
6452 (license license:gpl3+)))
6453
6454 (define-public emacs-el2org
6455 (package
6456 (name "emacs-el2org")
6457 (version "0.6.0")
6458 (source (origin
6459 (method url-fetch)
6460 (uri (string-append
6461 "https://github.com/tumashu/el2org/archive/v"
6462 version ".tar.gz"))
6463 (file-name (string-append name "-" version ".tar.gz"))
6464 (sha256
6465 (base32
6466 "0gd3km1swwvg2w0kdi7370f54wgrflxn63gjgssfjc1iyc9sbqwq"))))
6467 (build-system emacs-build-system)
6468 (home-page "https://github.com/tumashu/el2org")
6469 (synopsis "Convert Emacs-lisp file to org file")
6470 (description "El2org is a simple tool, which can convert Emacs-lisp file
6471 to org file, you can use this tool to write orgify commentary.")
6472 (license license:gpl2+)))
6473
6474 (define-public emacs-mustache
6475 (package
6476 (name "emacs-mustache")
6477 (version "0.23")
6478 (source (origin
6479 (method url-fetch)
6480 (uri (string-append
6481 "https://github.com/Wilfred/mustache.el/archive/"
6482 version ".tar.gz"))
6483 (file-name (string-append name "-" version ".tar.gz"))
6484 (sha256
6485 (base32
6486 "0k9lcgil7kykkv1ylrgwy1g13ldjjmgi2cwmysgyb2vlj3jbwpdj"))))
6487 (build-system emacs-build-system)
6488 (propagated-inputs
6489 `(("emacs-dash" ,emacs-dash)
6490 ("emacs-ht" ,emacs-ht)
6491 ("emacs-s" ,emacs-s)))
6492 (home-page "https://github.com/Wilfred/mustache.el")
6493 (synopsis "Mustache templating library for Emacs")
6494 (description "Mustache templating library for Emacs, mustache is
6495 a simple web template system, which is described as a logic-less system
6496 because it lacks any explicit control flow statements, both looping and
6497 conditional evaluation can be achieved using section tags processing lists
6498 and lambdas.")
6499 (license license:gpl3+)))
6500
6501 (define-public emacs-org2web
6502 (package
6503 (name "emacs-org2web")
6504 (version "0.9.1")
6505 (source (origin
6506 (method url-fetch)
6507 (uri (string-append
6508 "https://github.com/tumashu/org2web/archive/v"
6509 version ".tar.gz"))
6510 (file-name (string-append name "-" version ".tar.gz"))
6511 (sha256
6512 (base32
6513 "1c0ixcphlhp4c4qdiwq40bc3yp1gp1llp8pxrk4s7ny9n68s52zp"))))
6514 (build-system emacs-build-system)
6515 (propagated-inputs
6516 `(("emacs-dash" ,emacs-dash)
6517 ("emacs-el2org" ,emacs-el2org)
6518 ("emacs-ht" ,emacs-ht)
6519 ("emacs-mustache" ,emacs-mustache)
6520 ("emacs-simple-httpd" ,emacs-simple-httpd)))
6521 (home-page "https://github.com/tumashu/org2web")
6522 (synopsis "Static site generator based on org-mode ")
6523 (description "Org2web is a static site generator based on org-mode,
6524 which code derived from Kelvin H's org-page.")
6525 (license license:gpl2+)))
6526
6527 (define-public emacs-xelb
6528 (package
6529 (name "emacs-xelb")
6530 (version "0.16")
6531 (source (origin
6532 (method url-fetch)
6533 (uri (string-append "https://elpa.gnu.org/packages/xelb-"
6534 version ".tar"))
6535 (sha256
6536 (base32
6537 "03wsr1jr7f7zfd80h864rd4makwh4widdnj1kjv2xyjwdgap9rl8"))))
6538 (build-system emacs-build-system)
6539 ;; The following functions and variables needed by emacs-xelb are
6540 ;; not included in emacs-minimal:
6541 ;; x-display-screens, x-keysym-table, x-alt-keysym, x-meta-keysym
6542 ;; x-hyper-keysym, x-super-keysym, libxml-parse-xml-region
6543 ;; x-display-pixel-width, x-display-pixel-height
6544 (arguments
6545 `(#:emacs ,emacs
6546 #:phases
6547 (modify-phases %standard-phases
6548 (add-after 'unpack 'regenerate-el-files
6549 (lambda* (#:key inputs #:allow-other-keys)
6550 (invoke "make"
6551 (string-append "PROTO_PATH="
6552 (assoc-ref inputs "xcb-proto")
6553 "/share/xcb")
6554 (string-append "EMACS_BIN="
6555 (assoc-ref inputs "emacs")
6556 "/bin/emacs -Q")))))))
6557 (native-inputs `(("xcb-proto" ,xcb-proto)))
6558 (home-page "https://github.com/ch11ng/xelb")
6559 (synopsis "X protocol Emacs Lisp binding")
6560 (description "@code{emacs-xelb} is a pure Emacs Lisp implementation of the
6561 X11 protocol based on the XML description files from the XCB project. It
6562 features an object-oriented API and permits a certain degree of concurrency.
6563 It should enable you to implement low-level X11 applications.")
6564 (license license:gpl3+)))
6565
6566 (define-public emacs-exwm
6567 (package
6568 (name "emacs-exwm")
6569 (version "0.21")
6570 (synopsis "Emacs X window manager")
6571 (source (origin
6572 (method url-fetch)
6573 (uri (string-append "https://elpa.gnu.org/packages/exwm-"
6574 version ".tar"))
6575 (sha256
6576 (base32
6577 "07ng1pgsnc3isfsyzh2gfc7391p9il8lb5xqf1z6yqn20w7k6xzj"))))
6578 (build-system emacs-build-system)
6579 (propagated-inputs
6580 `(("emacs-xelb" ,emacs-xelb)))
6581 (inputs
6582 `(("xhost" ,xhost)
6583 ("dbus" ,dbus)))
6584 ;; The following functions and variables needed by emacs-exwm are
6585 ;; not included in emacs-minimal:
6586 ;; scroll-bar-mode, fringe-mode
6587 ;; x-display-pixel-width, x-display-pixel-height
6588 (arguments
6589 `(#:emacs ,emacs
6590 #:phases
6591 (modify-phases %standard-phases
6592 (add-after 'build 'install-xsession
6593 (lambda* (#:key inputs outputs #:allow-other-keys)
6594 (let* ((out (assoc-ref outputs "out"))
6595 (xsessions (string-append out "/share/xsessions"))
6596 (bin (string-append out "/bin"))
6597 (exwm-executable (string-append bin "/exwm")))
6598 ;; Add a .desktop file to xsessions
6599 (mkdir-p xsessions)
6600 (mkdir-p bin)
6601 (with-output-to-file
6602 (string-append xsessions "/exwm.desktop")
6603 (lambda _
6604 (format #t "[Desktop Entry]~@
6605 Name=~a~@
6606 Comment=~a~@
6607 Exec=~a~@
6608 TryExec=~@*~a~@
6609 Type=Application~%" ,name ,synopsis exwm-executable)))
6610 ;; Add a shell wrapper to bin
6611 (with-output-to-file exwm-executable
6612 (lambda _
6613 (format #t "#!~a ~@
6614 ~a +SI:localuser:$USER ~@
6615 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
6616 (string-append (assoc-ref inputs "bash") "/bin/sh")
6617 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
6618 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
6619 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
6620 '(cond
6621 ((file-exists-p "~/.exwm")
6622 (load-file "~/.exwm"))
6623 ((not (featurep 'exwm))
6624 (require 'exwm)
6625 (require 'exwm-config)
6626 (exwm-config-default)
6627 (message (concat "exwm configuration not found. "
6628 "Falling back to default configuration...")))))))
6629 (chmod exwm-executable #o555)
6630 #t))))))
6631 (home-page "https://github.com/ch11ng/exwm")
6632 (description "EXWM is a full-featured tiling X window manager for Emacs
6633 built on top of XELB.")
6634 (license license:gpl3+)))
6635
6636 (define-public emacs-switch-window
6637 (package
6638 (name "emacs-switch-window")
6639 (version "1.6.2")
6640 (source
6641 (origin
6642 (method git-fetch)
6643 (uri (git-reference
6644 (url "https://github.com/dimitri/switch-window")
6645 (commit (string-append "v" version))))
6646 (file-name (git-file-name name version))
6647 (sha256
6648 (base32
6649 "0rci96asgamr6qp6nkyr5vwrnslswjxcjd96yccy4aivh0g66yfg"))))
6650 (build-system emacs-build-system)
6651 (home-page "https://github.com/dimitri/switch-window")
6652 (synopsis "Emacs window switch tool")
6653 (description "Switch-window is an emacs window switch tool, which
6654 offer a visual way to choose a window to switch to, delete, split or
6655 other operations.")
6656 (license license:wtfpl2)))
6657
6658 (define-public emacs-exwm-x
6659 (package
6660 (name "emacs-exwm-x")
6661 (version "1.9.0")
6662 (synopsis "Derivative window manager based on EXWM")
6663 (source
6664 (origin
6665 (method git-fetch)
6666 (uri (git-reference
6667 (url "https://github.com/tumashu/exwm-x")
6668 (commit (string-append "v" version))))
6669 (file-name (git-file-name name version))
6670 (sha256
6671 (base32
6672 "03l3dl7s1qys1kkh40rm1sfx7axy1b8sf5f6nyksj9ps6d30p5i4"))))
6673 (build-system emacs-build-system)
6674 (propagated-inputs
6675 `(("emacs-exwm" ,emacs-exwm)
6676 ("emacs-switch-window" ,emacs-switch-window)
6677 ("emacs-ivy" ,emacs-ivy)
6678 ("emacs-use-package" ,emacs-use-package)))
6679 (inputs
6680 `(("xhost" ,xhost)
6681 ("dbus" ,dbus)))
6682 ;; Need emacs instead of emacs-minimal,
6683 ;; for emacs's bin path will be inserted into bin/exwm-x file.
6684 (arguments
6685 `(#:emacs ,emacs
6686 #:phases
6687 (modify-phases %standard-phases
6688 (add-after 'build 'install-xsession
6689 (lambda* (#:key inputs outputs #:allow-other-keys)
6690 (let* ((out (assoc-ref outputs "out"))
6691 (xsessions (string-append out "/share/xsessions"))
6692 (bin (string-append out "/bin"))
6693 (exwm-executable (string-append bin "/exwm-x")))
6694 ;; Add a .desktop file to xsessions
6695 (mkdir-p xsessions)
6696 (mkdir-p bin)
6697 (with-output-to-file
6698 (string-append xsessions "/exwm-x.desktop")
6699 (lambda _
6700 (format #t "[Desktop Entry]~@
6701 Name=~a~@
6702 Comment=~a~@
6703 Exec=~a~@
6704 TryExec=~@*~a~@
6705 Type=Application~%" ,name ,synopsis exwm-executable)))
6706 ;; Add a shell wrapper to bin
6707 (with-output-to-file exwm-executable
6708 (lambda _
6709 (format #t "#!~a ~@
6710 ~a +SI:localuser:$USER ~@
6711 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
6712 (string-append (assoc-ref inputs "bash") "/bin/sh")
6713 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
6714 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
6715 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
6716 '(require 'exwmx-loader))))
6717 (chmod exwm-executable #o555)
6718 #t))))))
6719 (home-page "https://github.com/tumashu/exwm-x")
6720 (description "EXWM-X is a derivative window manager based on EXWM, with focus
6721 on mouse-control.")
6722 (license license:gpl3+)))
6723
6724 (define-public emacs-gnuplot
6725 (package
6726 (name "emacs-gnuplot")
6727 (version "0.7.0")
6728 (source
6729 (origin
6730 (method url-fetch)
6731 (uri (string-append
6732 "https://github.com/bruceravel/gnuplot-mode/archive/"
6733 version ".tar.gz"))
6734 (file-name (string-append name "-" version ".tar.gz"))
6735 (sha256
6736 (base32
6737 "0glzymrn138lwig7p4cj17x4if5jisr6l4g6wcbxisqkqgc1h01i"))))
6738 (build-system gnu-build-system)
6739 (native-inputs `(("emacs" ,emacs-minimal)))
6740 (arguments
6741 (let ((elisp-dir (string-append "/share/emacs/site-lisp/guix.d"
6742 "/gnuplot-" version)))
6743 `(#:modules ((guix build gnu-build-system)
6744 (guix build utils)
6745 (guix build emacs-utils))
6746 #:imported-modules (,@%gnu-build-system-modules
6747 (guix build emacs-utils))
6748 #:configure-flags
6749 (list (string-append "EMACS=" (assoc-ref %build-inputs "emacs")
6750 "/bin/emacs")
6751 (string-append "--with-lispdir=" %output ,elisp-dir))
6752 #:phases
6753 (modify-phases %standard-phases
6754 (add-after 'install 'generate-autoloads
6755 (lambda* (#:key outputs #:allow-other-keys)
6756 (emacs-generate-autoloads
6757 "gnuplot"
6758 (string-append (assoc-ref outputs "out") ,elisp-dir))
6759 #t))))))
6760 (home-page "https://github.com/bruceravel/gnuplot-mode")
6761 (synopsis "Emacs major mode for interacting with gnuplot")
6762 (description "@code{emacs-gnuplot} is an emacs major mode for interacting
6763 with gnuplot.")
6764 (license license:gpl2+)))
6765
6766 (define-public emacs-transpose-frame
6767 (package
6768 (name "emacs-transpose-frame")
6769 (version "0.1.0")
6770 (source
6771 (origin
6772 (method url-fetch)
6773 (uri "http://www.emacswiki.org/emacs/download/transpose-frame.el")
6774 (file-name (string-append "transpose-frame-" version ".el"))
6775 (sha256
6776 (base32
6777 "1f67yksgw9s6j0033hmqzaxx2a93jm11sd5ys7cc3li5gfh680m4"))))
6778 (build-system emacs-build-system)
6779 (home-page "https://www.emacswiki.org/emacs/TransposeFrame")
6780 (synopsis "Transpose window arrangement in current frame")
6781 (description "@code{emacs-transpose-frame} provides some interactive
6782 functions which allows users to transpose windows arrangement in currently
6783 selected frame.")
6784 (license license:bsd-2)))
6785
6786 (define-public emacs-key-chord
6787 (package
6788 (name "emacs-key-chord")
6789 (version "0.6")
6790 (source
6791 (origin
6792 (method url-fetch)
6793 (uri "https://www.emacswiki.org/emacs/download/key-chord.el")
6794 (file-name (string-append "key-chord-" version ".el"))
6795 (sha256
6796 (base32
6797 "03m44pqggfrd53nh9dvpdjgm0rvca34qxmd30hr33hzprzjambxg"))))
6798 (build-system emacs-build-system)
6799 (home-page "https://www.emacswiki.org/emacs/key-chord.el")
6800 (synopsis "Map pairs of simultaneously pressed keys to Emacs commands")
6801 (description "@code{emacs-key-chord} provides @code{key-chord-mode}, a
6802 mode for binding key chords to commands. A key chord is defined as two keys
6803 pressed simultaneously or a single key quickly pressed twice.")
6804 (license license:gpl2+)))
6805
6806 (define-public emacs-evil-surround
6807 (package
6808 (name "emacs-evil-surround")
6809 (version "1.0.0")
6810 (source
6811 (origin
6812 (method url-fetch)
6813 (uri (string-append
6814 "https://github.com/timcharper/evil-surround/archive/v"
6815 version ".tar.gz"))
6816 (file-name (string-append name "-" version ".tar.gz"))
6817 (sha256
6818 (base32
6819 "0p572jgic3q1ia1nz37kclir729ay6i2f4sa7wnaapyxly2lwb3r"))))
6820 (build-system emacs-build-system)
6821 (propagated-inputs
6822 `(("emacs-evil" ,emacs-evil)))
6823 (home-page "https://github.com/timcharper/evil-surround")
6824 (synopsis "Easily modify surrounding parantheses and quotes")
6825 (description "@code{emacs-evil-surround} allows easy deletion, change and
6826 addition of surrounding pairs, such as parantheses and quotes, in evil mode.")
6827 (license license:gpl3+)))
6828
6829 (define-public emacs-evil-commentary
6830 (package
6831 (name "emacs-evil-commentary")
6832 (version "2.1.1")
6833 (source
6834 (origin
6835 (method url-fetch)
6836 (uri (string-append
6837 "https://github.com/linktohack/evil-commentary/archive/v"
6838 version ".tar.gz"))
6839 (file-name (string-append name "-" version ".tar.gz"))
6840 (sha256
6841 (base32
6842 "1jdya0i921nwskwrzdsj0vrr3m7gm49dy6f6pk9p5nxaarfxk230"))))
6843 (build-system emacs-build-system)
6844 (propagated-inputs
6845 `(("emacs-evil" ,emacs-evil)))
6846 (home-page "https://github.com/linktohack/evil-commentary")
6847 (synopsis "Comment out code in evil mode")
6848 (description "@code{emacs-evil-commentary} adds keybindings to easily
6849 comment out lines of code in evil mode. It provides @code{gcc} to comment out
6850 lines, and @code{gc} to comment out the target of a motion.")
6851 (license license:gpl3+)))
6852
6853 ;; Tests for emacs-ansi have a circular dependency with ert-runner, and
6854 ;; therefore cannot be run
6855 (define-public emacs-ansi
6856 (package
6857 (name "emacs-ansi")
6858 (version "0.4.1")
6859 (source
6860 (origin
6861 (method url-fetch)
6862 (uri (string-append "https://github.com/rejeep/ansi.el/archive/v"
6863 version ".tar.gz"))
6864 (file-name (string-append name "-" version ".tar.gz"))
6865 (sha256
6866 (base32
6867 "13jj4vbi98j3p17hs99bmy7g21jd5h4v3wpxk4pkvhylm3bfwjw8"))))
6868 (build-system emacs-build-system)
6869 (propagated-inputs
6870 `(("emacs-dash" ,emacs-dash)
6871 ("emacs-s" ,emacs-s)))
6872 (home-page "https://github.com/rejeep/ansi.el")
6873 (synopsis "Convert strings to ANSI")
6874 (description "@code{emacs-ansi} defines functions that turns simple
6875 strings to ANSI strings. Turning a string into an ANSI string can be to add
6876 color to a text, add color in the background of a text or adding a style, such
6877 as bold, underscore or italic.")
6878 (license license:gpl3+)))
6879
6880 ;; Tests for emacs-commander have a circular dependency with ert-runner, and
6881 ;; therefore cannot be run
6882 (define-public emacs-commander
6883 (package
6884 (name "emacs-commander")
6885 (version "0.7.0")
6886 (source
6887 (origin
6888 (method url-fetch)
6889 (uri (string-append "https://github.com/rejeep/commander.el/archive/v"
6890 version ".tar.gz"))
6891 (file-name (string-append name "-" version ".tar.gz"))
6892 (sha256
6893 (base32
6894 "196s2i15z7gwxa97l1wkxvjnfmj5n38wwm6d3g4zz15l2vqggc2y"))))
6895 (build-system emacs-build-system)
6896 (propagated-inputs
6897 `(("emacs-dash" ,emacs-dash)
6898 ("emacs-f" ,emacs-f)
6899 ("emacs-s" ,emacs-s)))
6900 (home-page "https://github.com/rejeep/commander.el")
6901 (synopsis "Emacs command line parser")
6902 (description "@code{emacs-commander} provides command line parsing for
6903 Emacs.")
6904 (license license:gpl3+)))
6905
6906 ;; Tests for ert-runner have a circular dependency with ecukes, and therefore
6907 ;; cannot be run
6908 (define-public emacs-ert-runner
6909 (package
6910 (name "emacs-ert-runner")
6911 (version "0.7.0")
6912 (source
6913 (origin
6914 (method url-fetch)
6915 (uri (string-append "https://github.com/rejeep/ert-runner.el/archive/v"
6916 version ".tar.gz"))
6917 (file-name (string-append name "-" version ".tar.gz"))
6918 (sha256
6919 (base32
6920 "1657nck9i96a4xgl8crfqq0s8gflzp21pkkzwg6m3z5npjxklgwp"))))
6921 (build-system emacs-build-system)
6922 (inputs
6923 `(("emacs-ansi" ,emacs-ansi)
6924 ("emacs-commander" ,emacs-commander)
6925 ("emacs-dash" ,emacs-dash)
6926 ("emacs-f" ,emacs-f)
6927 ("emacs-s" ,emacs-s)
6928 ("emacs-shut-up" ,emacs-shut-up)))
6929 (arguments
6930 `(#:phases
6931 (modify-phases %standard-phases
6932 (add-after 'install 'install-executable
6933 (lambda* (#:key inputs outputs #:allow-other-keys)
6934 (let ((out (assoc-ref outputs "out")))
6935 (substitute* "bin/ert-runner"
6936 (("ERT_RUNNER=\"\\$\\(dirname \\$\\(dirname \\$0\\)\\)")
6937 (string-append "ERT_RUNNER=\"" out
6938 "/share/emacs/site-lisp/guix.d/ert-runner-"
6939 ,version)))
6940 (install-file "bin/ert-runner" (string-append out "/bin"))
6941 (wrap-program (string-append out "/bin/ert-runner")
6942 (list "EMACSLOADPATH" ":" 'prefix
6943 (string-split (getenv "EMACSLOADPATH") #\:)))
6944 #t))))
6945 #:include (cons* "^reporters/.*\\.el$" %default-include)))
6946 (home-page "https://github.com/rejeep/ert-runner.el")
6947 (synopsis "Opinionated Ert testing workflow")
6948 (description "@code{ert-runner} is a tool for Emacs projects tested
6949 using ERT. It assumes a certain test structure setup and can therefore make
6950 running tests easier.")
6951 (license license:gpl3+)))
6952
6953 (define-public ert-runner
6954 (deprecated-package "ert-runner" emacs-ert-runner))
6955
6956 (define-public emacs-disable-mouse
6957 (package
6958 (name "emacs-disable-mouse")
6959 (version "0.2")
6960 (source
6961 (origin
6962 (method url-fetch)
6963 (uri (string-append
6964 "https://github.com/purcell/disable-mouse/archive/"
6965 version ".tar.gz"))
6966 (file-name (string-append name "-" version ".tar.gz"))
6967 (sha256
6968 (base32
6969 "0haqpq23r1wx04lsqrrg3p5visg9hx5i36dg55ab003wfsrlrzbc"))))
6970 (build-system emacs-build-system)
6971 (home-page "https://github.com/purcell/disable-mouse")
6972 (synopsis "Disable mouse commands globally")
6973 (description
6974 "Provides @code{disable-mouse-mode} and @code{global-disable-mouse-mode},
6975 pair of minor modes which suppress all mouse events by intercepting them and
6976 running a customisable handler command (@code{ignore} by default). ")
6977 (license license:gpl3+)))
6978
6979 (define-public emacs-json-reformat
6980 (package
6981 (name "emacs-json-reformat")
6982 (version "0.0.6")
6983 (source
6984 (origin
6985 (method url-fetch)
6986 (uri (string-append "https://github.com/gongo/json-reformat/archive/"
6987 version ".tar.gz"))
6988 (file-name (string-append name "-" version ".tar.gz"))
6989 (sha256
6990 (base32
6991 "11fbq4scrgr7m0iwnzcrn2g7xvqwm2gf82sa7zy1l0nil7265p28"))
6992 (patches (search-patches "emacs-json-reformat-fix-tests.patch"))))
6993 (build-system emacs-build-system)
6994 (propagated-inputs
6995 `(("emacs-undercover" ,emacs-undercover)))
6996 (native-inputs
6997 `(("emacs-dash" ,emacs-dash)
6998 ("emacs-shut-up" ,emacs-shut-up)
6999 ("ert-runner" ,emacs-ert-runner)))
7000 (arguments
7001 `(#:tests? #t
7002 #:test-command '("ert-runner")))
7003 (home-page "https://github.com/gongo/json-reformat")
7004 (synopsis "Reformatting tool for JSON")
7005 (description "@code{json-reformat} provides a reformatting tool for
7006 @url{http://json.org/, JSON}.")
7007 (license license:gpl3+)))
7008
7009 (define-public emacs-json-snatcher
7010 (package
7011 (name "emacs-json-snatcher")
7012 (version "1.0.0")
7013 (source
7014 (origin
7015 (method url-fetch)
7016 (uri (string-append "https://github.com/Sterlingg/json-snatcher/archive/"
7017 version ".tar.gz"))
7018 (file-name (string-append name "-" version ".tar.gz"))
7019 (sha256
7020 (base32
7021 "1nfiwsifpdiz0lbrqa77nl0crnfrv5h85ans9b0g5rggnmyshcfb"))))
7022 (build-system emacs-build-system)
7023 (home-page "https://github.com/sterlingg/json-snatcher")
7024 (synopsis "Grabs the path to JSON values in a JSON file")
7025 (description "@code{emacs-json-snatcher} grabs the path to JSON values in
7026 a @url{http://json.org/, JSON} file.")
7027 (license license:gpl3+)))
7028
7029 (define-public emacs-json-mode
7030 (package
7031 (name "emacs-json-mode")
7032 (version "1.7.0")
7033 (source
7034 (origin
7035 (method url-fetch)
7036 (uri (string-append "https://github.com/joshwnj/json-mode/archive/"
7037 "v" version ".tar.gz"))
7038 (file-name (string-append name "-" version ".tar.gz"))
7039 (sha256
7040 (base32
7041 "06h45p4cn767pk9sqi2zb1c65wy5gyyijqxzpglp80zwxhvajdz5"))))
7042 (build-system emacs-build-system)
7043 (propagated-inputs
7044 `(("emacs-json-reformat" ,emacs-json-reformat)
7045 ("emacs-json-snatcher" ,emacs-json-snatcher)))
7046 (home-page "https://github.com/joshwnj/json-mode")
7047 (synopsis "Major mode for editing JSON files")
7048 (description "@code{json-mode} extends the builtin js-mode syntax
7049 highlighting.")
7050 (license license:gpl3+)))
7051
7052 (define-public emacs-restclient
7053 (let ((commit "07a3888bb36d0e29608142ebe743b4362b800f40")
7054 (revision "1")) ;Guix package revision,
7055 ;upstream doesn't have official releases
7056 (package
7057 (name "emacs-restclient")
7058 (version (string-append revision "."
7059 (string-take commit 7)))
7060 (source (origin
7061 (method git-fetch)
7062 (uri (git-reference
7063 (url "https://github.com/pashky/restclient.el.git")
7064 (commit commit)))
7065 (sha256
7066 (base32
7067 "00lmjhb5im1kgrp54yipf1h9pshxzgjlg71yf2rq5n973gvb0w0q"))
7068 (file-name (git-file-name name version))))
7069 (build-system emacs-build-system)
7070 (propagated-inputs
7071 `(("emacs-helm" ,emacs-helm)))
7072 (home-page "https://github.com/pashky/restclient.el")
7073 (synopsis "Explore and test HTTP REST webservices")
7074 (description
7075 "This tool allows for testing and exploration of HTTP REST Web services
7076 from within Emacs. Restclient runs queries from a plan-text query sheet,
7077 displays results pretty-printed in XML or JSON with @code{restclient-mode}")
7078 (license license:public-domain))))
7079
7080 (define-public emacs-eimp
7081 (let ((version "1.4.0")
7082 (commit "2e7536fe6d8f7faf1bad7a8ae37faba0162c3b4f")
7083 (revision "1"))
7084 (package
7085 (name "emacs-eimp")
7086 (version (git-version version revision commit))
7087 (source
7088 (origin
7089 (method git-fetch)
7090 (uri (git-reference
7091 (url "https://github.com/nicferrier/eimp.git")
7092 (commit commit)))
7093 (file-name (git-file-name name version))
7094 (sha256
7095 (base32
7096 "154d57yafxbcf39r89n5j43c86rp2fki3lw3gwy7ww2g6qkclcra"))))
7097 (build-system emacs-build-system)
7098 (arguments
7099 `(#:phases
7100 (modify-phases %standard-phases
7101 (add-after 'unpack 'configure
7102 (lambda* (#:key inputs #:allow-other-keys)
7103 (let ((imagemagick (assoc-ref inputs "imagemagick")))
7104 ;; eimp.el is read-only in git.
7105 (chmod "eimp.el" #o644)
7106 (emacs-substitute-variables "eimp.el"
7107 ("eimp-mogrify-program"
7108 (string-append imagemagick "/bin/mogrify"))))
7109 #t)))))
7110 (inputs
7111 `(("imagemagick" ,imagemagick)))
7112 (home-page "https://github.com/nicferrier/eimp")
7113 (synopsis "Interactive image manipulation utility for Emacs")
7114 (description "@code{emacs-eimp} allows interactive image manipulation
7115 from within Emacs. It uses the code@{mogrify} utility from ImageMagick to do
7116 the actual transformations.")
7117 (license license:gpl2+))))
7118
7119 (define-public emacs-dired-hacks
7120 (let ((commit "eda68006ce73bbf6b9b995bfd70d08bec8cade36")
7121 (revision "1"))
7122 (package
7123 (name "emacs-dired-hacks")
7124 (version (string-append "0.0.1-" revision "."
7125 (string-take commit 7)))
7126 (source (origin
7127 (method git-fetch)
7128 (uri (git-reference
7129 (url "https://github.com/Fuco1/dired-hacks.git")
7130 (commit commit)))
7131 (file-name (string-append name "-" version "-checkout"))
7132 (sha256
7133 (base32
7134 "1w7ssl9zssn5rcha6apf4h8drkd02k4xgvs203bdbqyqp9wz9brx"))))
7135 (build-system emacs-build-system)
7136 (propagated-inputs
7137 `(("emacs-dash" ,emacs-dash)
7138 ("emacs-eimp" ,emacs-eimp)
7139 ("emacs-f" ,emacs-f)
7140 ("emacs-s" ,emacs-s)))
7141 (home-page "https://github.com/Fuco1/dired-hacks")
7142 (synopsis
7143 "Collection of useful dired additions")
7144 (description
7145 "Collection of Emacs dired mode additions:
7146 @itemize
7147 @item dired-avfs
7148 @item dired-columns
7149 @item dired-filter
7150 @item dired-hacks-utils
7151 @item dired-images
7152 @item dired-list
7153 @item dired-narrow
7154 @item dired-open
7155 @item dired-rainbow
7156 @item dired-ranger
7157 @item dired-subtree
7158 @item dired-tagsistant
7159 @end itemize\n")
7160 (license license:gpl3+))))
7161
7162 (define-public emacs-dired-sidebar
7163 (let ((commit "06bd0d40bab812c61a668129daf29ba359424454")
7164 (revision "0"))
7165 (package
7166 (name "emacs-dired-sidebar")
7167 (home-page "https://github.com/jojojames/dired-sidebar")
7168 (version (git-version "0.0.1" revision commit))
7169 (source (origin
7170 (method git-fetch)
7171 (uri (git-reference (url home-page) (commit commit)))
7172 (sha256
7173 (base32
7174 "0lvwvq6sl80sha9fq5m4568sg534dhmifyjqw75bqddcbf3by84x"))))
7175 (build-system emacs-build-system)
7176 (propagated-inputs
7177 `(("emacs-dired-subtree" ,emacs-dired-hacks)))
7178 (synopsis "Sidebar for Emacs using Dired")
7179 (description
7180 "This package provides a sidebar for Emacs similar to @code{NeoTree}
7181 or @code{treemacs}, but leveraging @code{Dired} to do the job of display.")
7182 (license license:gpl3+))))
7183
7184 (define-public emacs-which-key
7185 (package
7186 (name "emacs-which-key")
7187 (version "3.3.0")
7188 (source
7189 (origin
7190 (method url-fetch)
7191 (uri (string-append
7192 "https://github.com/justbur/emacs-which-key/archive/v"
7193 version ".tar.gz"))
7194 (sha256
7195 (base32
7196 "1lsj314111cp2hjjwnv3f46ws1za6bm39rgy3l19044xf6a68j5w"))
7197 (file-name (string-append name "-" version ".tar.gz"))))
7198 (build-system emacs-build-system)
7199 (arguments
7200 `(#:tests? #t
7201 #:test-command '("emacs" "--batch"
7202 "-l" "which-key-tests.el"
7203 "-f" "ert-run-tests-batch-and-exit")))
7204 (home-page "https://github.com/justbur/emacs-which-key")
7205 (synopsis "Display available key bindings in popup")
7206 (description
7207 "@code{emacs-which-key} is a minor mode for Emacs that displays the key
7208 bindings following your currently entered incomplete command (a prefix) in a
7209 popup. For example, after enabling the minor mode if you enter C-x and wait
7210 for the default of 1 second, the minibuffer will expand with all of the
7211 available key bindings that follow C-x (or as many as space allows given your
7212 settings).")
7213 (license license:gpl3+)))
7214
7215 (define-public emacs-ws-butler
7216 (package
7217 (name "emacs-ws-butler")
7218 (version "0.6")
7219 (source (origin
7220 (method git-fetch)
7221 (uri (git-reference
7222 (url "https://github.com/lewang/ws-butler.git")
7223 (commit "323b651dd70ee40a25accc940b8f80c3a3185205")))
7224 (file-name (string-append name "-" version "-checkout"))
7225 (sha256
7226 (base32
7227 "1a4b0lsmwq84qfx51c5xy4fryhb1ysld4fhgw2vr37izf53379sb"))))
7228 (build-system emacs-build-system)
7229 (native-inputs
7230 `(("ert-runner" ,emacs-ert-runner)))
7231 (arguments
7232 `(#:tests? #t
7233 #:test-command '("ert-runner" "tests")))
7234 (home-page "https://github.com/lewang/ws-butler")
7235 (synopsis "Trim spaces from end of lines")
7236 (description
7237 "This Emacs package automatically and unobtrusively trims whitespace
7238 characters from end of lines.")
7239 (license license:gpl3+)))
7240
7241 (define-public emacs-org-edit-latex
7242 (package
7243 (name "emacs-org-edit-latex")
7244 (version "0.8.0")
7245 (source
7246 (origin
7247 (method url-fetch)
7248 (uri (string-append
7249 "https://github.com/et2010/org-edit-latex/archive/v"
7250 version ".tar.gz"))
7251 (file-name (string-append name "-" version ".tar.gz"))
7252 (sha256
7253 (base32
7254 "1y4h6wrs8286h9pbsv4d8fr67a885vz8b2k80qgv5qddipi2i78p"))))
7255 (build-system emacs-build-system)
7256 (propagated-inputs
7257 `(("emacs-auctex" ,emacs-auctex)
7258 ;; The version of org in Emacs 25.2 is not sufficient, because the
7259 ;; `org-latex-make-preamble' function is required.
7260 ("emacs-org" ,emacs-org)))
7261 (home-page "https://github.com/et2010/org-edit-latex")
7262 (synopsis "Edit a latex fragment just like editing a src block")
7263 (description "@code{emacs-org-edit-latex} is an extension for org-mode.
7264 It lets you edit a latex fragment in a dedicated buffer just like editing a
7265 src block.")
7266 (license license:gpl3+)))
7267
7268 (define-public emacs-emamux
7269 (package
7270 (name "emacs-emamux")
7271 (version "0.14")
7272 (source (origin
7273 (method url-fetch)
7274 (uri (string-append
7275 "https://github.com/syohex/emacs-emamux/archive/"
7276 version ".tar.gz"))
7277 (file-name (string-append name "-" version ".tar.gz"))
7278 (sha256
7279 (base32
7280 "0wlqg4icy037bj70b0qmhvwvmiwhagpnx6pnxhq6gzy1hvwlilkx"))))
7281 (build-system emacs-build-system)
7282 (home-page "https://github.com/syohex/emacs-emamux")
7283 (synopsis "Manipulate Tmux from Emacs")
7284 (description
7285 "@code{emacs-emamux} lets Emacs interact with the @code{tmux} terminal
7286 multiplexer.")
7287 (license license:gpl3+)))
7288
7289 (define-public emacs-rpm-spec-mode
7290 (package
7291 (name "emacs-rpm-spec-mode")
7292 (version "0.16")
7293 (source
7294 (origin
7295 (method url-fetch)
7296 ;; URI has the Fedora release number instead of the version
7297 ;; number. This will have to updated manually every new release.
7298 (uri (string-append
7299 "https://src.fedoraproject.org/cgit/rpms"
7300 "/emacs-rpm-spec-mode.git/snapshot"
7301 "/emacs-rpm-spec-mode-f26.tar.gz"))
7302 (sha256
7303 (base32
7304 "17dz80lhjrc89fj17pysl8slahzrqdkxgcjdk55zls6jizkr6kz3"))))
7305 (build-system emacs-build-system)
7306 (home-page "http://pkgs.fedoraproject.org/cgit/rpms/emacs-rpm-spec-mode.git")
7307 (synopsis "Emacs major mode for editing RPM spec files")
7308 (description "@code{emacs-rpm-spec-mode} provides an Emacs major mode for
7309 editing RPM spec files.")
7310 (license license:gpl2+)))
7311
7312 (define-public emacs-git-messenger
7313 (package
7314 (name "emacs-git-messenger")
7315 (version "0.18")
7316 (source
7317 (origin
7318 (method url-fetch)
7319 (uri (string-append
7320 "https://github.com/syohex/emacs-git-messenger/archive/"
7321 version ".tar.gz"))
7322 (file-name (string-append name "-" version ".tar.gz"))
7323 (sha256
7324 (base32
7325 "17mqki6g0wx46fn7dcbcc2pjxik7vvrcb1j9jzxim8b9psbsbnp9"))))
7326 (build-system emacs-build-system)
7327 (propagated-inputs
7328 `(("emacs-popup" ,emacs-popup)))
7329 (arguments
7330 `(#:tests? #t
7331 #:test-command '("emacs" "--batch" "-l" "test/test.el"
7332 "-f" "ert-run-tests-batch-and-exit")))
7333 (home-page "https://github.com/syohex/emacs-git-messenger")
7334 (synopsis "Popup commit message at current line")
7335 (description "@code{emacs-git-messenger} provides
7336 @code{git-messenger:popup-message}, a function that when called, will popup
7337 the last git commit message for the current line. This uses git-blame
7338 internally.")
7339 (license license:gpl3+)))
7340
7341 (define-public emacs-gitpatch
7342 (package
7343 (name "emacs-gitpatch")
7344 (version "0.5.0")
7345 (source
7346 (origin
7347 (method url-fetch)
7348 (uri (string-append "https://github.com/tumashu/gitpatch/archive/"
7349 "v" version ".tar.gz"))
7350 (file-name (string-append name "-" version ".tar.gz"))
7351 (sha256
7352 (base32
7353 "1yj6pmic541lcnscjin300k380qp9xdfprs55xg1q57jrkq6f6k7"))))
7354 (build-system emacs-build-system)
7355 (home-page "https://github.com/tumashu/gitpatch")
7356 (synopsis "Mail git patch from Emacs")
7357 (description "@code{emacs-gitpatch} lets users easily send git patches,
7358 created by @code{git format-patch}, from @code{magit}, @code{dired} and
7359 @code{ibuffer} buffers.")
7360 (license license:gpl3+)))
7361
7362 (define-public emacs-erc-hl-nicks
7363 (package
7364 (name "emacs-erc-hl-nicks")
7365 (version "1.3.3")
7366 (source
7367 (origin
7368 (method url-fetch)
7369 (uri (string-append "https://github.com/leathekd/erc-hl-nicks"
7370 "/archive/" version ".tar.gz"))
7371 (file-name (string-append name "-" version ".tar.gz"))
7372 (sha256
7373 (base32
7374 "1a1r2kc3688g8c2ybkpwh88kgmnqhg3h3032g2yn4zr9m0n3vpkr"))))
7375 (build-system emacs-build-system)
7376 (synopsis "Nickname highlighting for Emacs ERC")
7377 (description "@code{erc-hl-nicks} highlights nicknames in ERC, an IRC
7378 client for Emacs. The main features are:
7379 @itemize
7380 @item Auto-colorizes nicknames without having to specify colors
7381 @item Ignores certain characters that IRC clients add to nicknames to avoid
7382 duplicates (nickname, nickname’, nickname\", etc.)
7383 @item Attempts to produce colors with a sufficient amount of contrast between
7384 the nick color and the background color
7385 @end itemize\n")
7386 (home-page "https://github.com/leathekd/erc-hl-nicks")
7387 (license license:gpl3+)))
7388
7389 (define-public emacs-engine-mode
7390 (package
7391 (name "emacs-engine-mode")
7392 (version "2.0.0")
7393 (source
7394 (origin
7395 (method url-fetch)
7396 (uri (string-append "https://github.com/hrs/engine-mode/archive/"
7397 "v" version ".tar.gz"))
7398 (file-name (string-append name "-" version ".tar.gz"))
7399 (sha256
7400 (base32
7401 "1vm4p7pcp1vnwwxvps1bhm7i7hkabqqxl898knxf2hqvxys76684"))))
7402 (build-system emacs-build-system)
7403 (synopsis "Minor mode for defining and querying search engines")
7404 (description "@code{engine-mode} is a global minor mode for Emacs. It
7405 enables you to easily define search engines, bind them to keybindings, and
7406 query them from the comfort of your editor.")
7407 (home-page "https://github.com/hrs/engine-mode")
7408 (license license:gpl3+)))
7409
7410 (define-public emacs-prop-menu
7411 (package
7412 (name "emacs-prop-menu")
7413 (version "0.1.2")
7414 (source
7415 (origin
7416 (method url-fetch)
7417 (uri (string-append
7418 "http://stable.melpa.org/packages/prop-menu-"
7419 version ".el"))
7420 (sha256
7421 (base32
7422 "01bk4sjafzz7gqrkv9jg0pa85qr34vbk3q8ga2b0m61bndywzgpr"))))
7423 (build-system emacs-build-system)
7424 (home-page
7425 "https://github.com/david-christiansen/prop-menu-el")
7426 (synopsis
7427 "Create and display a context menu based on text and overlay properties")
7428 (description
7429 "This is a library for computing context menus based on text
7430 properties and overlays. The intended use is to have tools that
7431 annotate source code and others that use these annotations, without
7432 requiring a direct coupling between them, but maintaining
7433 discoverability.
7434
7435 Major modes that wish to use this library should first define an
7436 appropriate value for @code{prop-menu-item-functions}. Then, they should
7437 bind @code{prop-menu-by-completing-read} to an appropriate
7438 key. Optionally, a mouse pop-up can be added by binding
7439 @code{prop-menu-show-menu} to a mouse event.")
7440 (license license:gpl3+)))
7441
7442 (define-public emacs-idris-mode
7443 (package
7444 (name "emacs-idris-mode")
7445 (version "0.9.19")
7446 (source
7447 (origin
7448 (method url-fetch)
7449 (uri (string-append
7450 "http://stable.melpa.org/packages/idris-mode-"
7451 version ".tar"))
7452 (sha256
7453 (base32
7454 "02r1qqsxi6qk7q4cj6a6pygbj856dcw9vcmhfh0ib92j41v77q6y"))))
7455 (build-system emacs-build-system)
7456 (propagated-inputs
7457 `(("emacs-prop-menu" ,emacs-prop-menu)))
7458 (home-page
7459 "https://github.com/idris-hackers/idris-mode")
7460 (synopsis "Major mode for editing Idris code")
7461 (description
7462 "This is an Emacs mode for editing Idris code. It requires the latest
7463 version of Idris, and some features may rely on the latest Git version of
7464 Idris.")
7465 (license license:gpl3+)))
7466
7467 (define-public emacs-browse-at-remote
7468 (package
7469 (name "emacs-browse-at-remote")
7470 (version "0.10.0")
7471 (source
7472 (origin
7473 (method url-fetch)
7474 (uri (string-append
7475 "https://github.com/rmuslimov/browse-at-remote/archive/"
7476 version ".tar.gz"))
7477 (file-name (string-append name "-" version ".tar.gz"))
7478 (sha256
7479 (base32
7480 "0ymslsp6i1naw25zckv25bf4aaq6qwkbkn95qyzlwg869l802686"))))
7481 (build-system emacs-build-system)
7482 (propagated-inputs
7483 `(("emacs-f" ,emacs-f)
7484 ("emacs-s" ,emacs-s)))
7485 (native-inputs
7486 `(("ert-runner" ,emacs-ert-runner)))
7487 (arguments
7488 `(#:tests? #t
7489 #:test-command '("ert-runner")))
7490 (home-page "https://github.com/rmuslimov/browse-at-remote")
7491 (synopsis "Open github/gitlab/bitbucket/stash page from Emacs")
7492 (description
7493 "This Emacs package allows you to open a target page on
7494 github/gitlab (or bitbucket) by calling @code{browse-at-remote} command.
7495 It supports dired buffers and opens them in tree mode at destination.")
7496 (license license:gpl3+)))
7497
7498 (define-public emacs-tiny
7499 (package
7500 (name "emacs-tiny")
7501 (version "0.2.1")
7502 (source
7503 (origin
7504 (method url-fetch)
7505 (uri (string-append "http://elpa.gnu.org/packages/tiny-" version ".tar"))
7506 (sha256
7507 (base32
7508 "1cr73a8gba549ja55x0c2s554f3zywf69zbnd7v82jz5q1k9wd2v"))))
7509 (build-system emacs-build-system)
7510 (home-page "https://github.com/abo-abo/tiny")
7511 (synopsis "Quickly generate linear ranges in Emacs")
7512 (description
7513 "The main command of the @code{tiny} extension for Emacs is @code{tiny-expand}.
7514 It is meant to quickly generate linear ranges, e.g. 5, 6, 7, 8. Some elisp
7515 proficiency is an advantage, since you can transform your numeric range with
7516 an elisp expression.")
7517 (license license:gpl3+)))
7518
7519 (define-public emacs-emojify
7520 (package
7521 (name "emacs-emojify")
7522 (version "0.4")
7523 (source
7524 (origin
7525 (method url-fetch)
7526 (uri (string-append "https://github.com/iqbalansari/emacs-emojify/"
7527 "releases/download/v" version "/emojify-"
7528 version ".tar"))
7529 (sha256
7530 (base32
7531 "0k84v2d2bkiwcky9fi1yyprgkj46g7wh6pyl9gzmcd7sqv051d5n"))))
7532 (build-system emacs-build-system)
7533 (arguments
7534 `(#:phases
7535 (modify-phases %standard-phases
7536 (add-after 'install 'install-data
7537 (lambda* (#:key outputs #:allow-other-keys)
7538 (copy-recursively "data"
7539 (string-append (assoc-ref outputs "out")
7540 "/share/emacs/site-lisp/guix.d/"
7541 "emojify-" ,version "/data"))
7542 #t)))))
7543 (propagated-inputs
7544 `(("emacs-ht" ,emacs-ht)))
7545 (home-page "https://github.com/iqbalansari/emacs-emojify")
7546 (synopsis "Display emojis in Emacs")
7547 (description "This package displays emojis in Emacs similar to how Github,
7548 Slack, and other websites do. It can display plain ASCII like @code{:)} as
7549 well as Github-style emojis like @code{:smile:}. It provides a minor mode
7550 @code{emojify-mode} to enable the display of emojis in a buffer.")
7551 (license license:gpl3+)))
7552
7553 (define-public emacs-websocket
7554 (package
7555 (name "emacs-websocket")
7556 (version "1.10")
7557 (source
7558 (origin
7559 (method git-fetch)
7560 (uri (git-reference
7561 (url "https://github.com/ahyatt/emacs-websocket.git")
7562 (commit version)))
7563 (file-name (string-append name "-" version "-checkout"))
7564 (sha256
7565 (base32
7566 "1dgrf7na6r6mmkknphzshlbd5fnzisg0qn0j7vfpa38wgsymaq52"))))
7567 (build-system emacs-build-system)
7568 (home-page "http://elpa.gnu.org/packages/websocket.html")
7569 (synopsis "Emacs WebSocket client and server")
7570 (description "This is an Elisp library for WebSocket clients to talk to
7571 WebSocket servers, and for WebSocket servers to accept connections from
7572 WebSocket clients. This library is designed to be used by other library
7573 writers, to write applications that use WebSockets, and is not useful by
7574 itself.")
7575 (license license:gpl3+)))
7576
7577 (define-public emacs-oauth2
7578 (package
7579 (name "emacs-oauth2")
7580 (version "0.11")
7581 (source
7582 (origin
7583 (method url-fetch)
7584 (uri (string-append "https://elpa.gnu.org/packages/oauth2-"
7585 version ".el"))
7586 (sha256
7587 (base32
7588 "0ydkc9jazsnbbvfhd47mql52y7k06n3z7r0naqxkwb99j9blqsmp"))))
7589 (build-system emacs-build-system)
7590 (home-page "http://elpa.gnu.org/packages/oauth2.html")
7591 (synopsis "OAuth 2.0 authorization protocol implementation")
7592 (description
7593 "This package provides an Elisp implementation of the OAuth 2.0 draft.
7594 The main entry point is @code{oauth2-auth-and-store} which will return a token
7595 structure. This token structure can be then used with
7596 @code{oauth2-url-retrieve-synchronously} or @code{oauth2-url-retrieve} to
7597 retrieve any data that need OAuth authentication to be accessed. If the token
7598 needs to be refreshed, the code handles it automatically and stores the new
7599 value of the access token.")
7600 (license license:gpl3+)))
7601
7602 (define-public emacs-circe
7603 (package
7604 (name "emacs-circe")
7605 (version "2.10")
7606 (source
7607 (origin
7608 (method git-fetch)
7609 (uri (git-reference
7610 (url "https://github.com/jorgenschaefer/circe.git")
7611 (commit (string-append "v" version))))
7612 (file-name (git-file-name name version))
7613 (sha256
7614 (base32
7615 "10gi14kwxd81blddpvqh95lgmpbfgp0m955naxix3bs3r6a75n4s"))))
7616 (build-system emacs-build-system)
7617 (arguments
7618 `(#:tests? #t
7619 #:test-command '("buttercup" "-L" ".")
7620 #:phases
7621 (modify-phases %standard-phases
7622 ;; The HOME environment variable should be set to an existing
7623 ;; directory for the tests to succeed.
7624 (add-before 'check 'set-home
7625 (lambda _
7626 (setenv "HOME" "/tmp")
7627 #t)))))
7628 (native-inputs
7629 `(("emacs-buttercup" ,emacs-buttercup)))
7630 ;; In order to securely connect to an IRC server using TLS, Circe requires
7631 ;; the GnuTLS binary.
7632 (propagated-inputs
7633 `(("gnutls" ,gnutls)))
7634 (home-page "https://github.com/jorgenschaefer/circe")
7635 (synopsis "Client for IRC in Emacs")
7636 (description "Circe is a Client for IRC in Emacs. It integrates well with
7637 the rest of the editor, using standard Emacs key bindings and indicating
7638 activity in channels in the status bar so it stays out of your way unless you
7639 want to use it.")
7640 (license license:gpl3+)))
7641
7642 (define-public emacs-tracking
7643 (package
7644 (inherit emacs-circe)
7645 (name "emacs-tracking")
7646 (arguments
7647 ;; "tracking.el" is a library extracted from Circe package. It requires
7648 ;; "shorten.el".
7649 `(#:include '("^shorten.el$" "^tracking.el$")
7650 ,@(package-arguments emacs-circe)))
7651 (home-page "https://github.com/jorgenschaefer/circe/wiki/Tracking")
7652 (synopsis "Buffer tracking library")
7653 (description "@code{tracking.el} provides a way for different modes to
7654 notify the user that a buffer needs attention. The user then can cycle
7655 through them using @key{C-c C-SPC}.")
7656 (license license:gpl3+)))
7657
7658 (define-public emacs-slack
7659 (let ((commit "99a57501629a0329a9ca090c1ea1296462eda02d")
7660 (revision "5"))
7661 (package
7662 (name "emacs-slack")
7663 (version (git-version "0.0.2" revision commit))
7664 (source (origin
7665 (method git-fetch)
7666 (uri (git-reference
7667 (url "https://github.com/yuya373/emacs-slack.git")
7668 (commit commit)))
7669 (file-name (git-file-name name commit))
7670 (sha256
7671 (base32
7672 "0jw1diypfw8pmzkq0napgxmfc0gqka7zcccgnw359604lr30k2z2"))))
7673 (build-system emacs-build-system)
7674 (propagated-inputs
7675 `(("emacs-alert" ,emacs-alert)
7676 ("emacs-emojify" ,emacs-emojify)
7677 ("emacs-helm" ,emacs-helm)
7678 ("emacs-request" ,emacs-request)
7679 ("emacs-websocket" ,emacs-websocket)
7680 ("emacs-oauth2" ,emacs-oauth2)
7681 ("emacs-circe" ,emacs-circe)))
7682 (home-page "https://github.com/yuya373/emacs-slack")
7683 (synopsis "Slack client for Emacs")
7684 (description "This package provides an Emacs client for the Slack
7685 messaging service.")
7686 (license license:gpl3+))))
7687
7688 (define-public emacs-bash-completion
7689 (package
7690 (name "emacs-bash-completion")
7691 (version "2.1.0")
7692 (source
7693 (origin
7694 (method url-fetch)
7695 (uri (string-append
7696 "https://github.com/szermatt/emacs-bash-completion/archive/v"
7697 version ".tar.gz"))
7698 (file-name (string-append name "-" version ".tar.gz"))
7699 (sha256
7700 (base32
7701 "1z0qck3v3ra6ivacn8n04w1v33a4xn01xx860761q31qzsv3sksq"))))
7702 (inputs `(("bash" ,bash)))
7703 (build-system emacs-build-system)
7704 (arguments
7705 `(#:phases
7706 (modify-phases %standard-phases
7707 (add-before 'install 'configure
7708 (lambda* (#:key inputs #:allow-other-keys)
7709 (let ((bash (assoc-ref inputs "bash")))
7710 (emacs-substitute-variables "bash-completion.el"
7711 ("bash-completion-prog" (string-append bash "/bin/bash"))))
7712 #t)))))
7713 (home-page "https://github.com/szermatt/emacs-bash-completion")
7714 (synopsis "Bash completion for the shell buffer")
7715 (description
7716 "@code{bash-completion} defines dynamic completion hooks for shell-mode
7717 and shell-command prompts that are based on Bash completion.")
7718 (license license:gpl2+)))
7719
7720 (define-public emacs-easy-kill
7721 (package
7722 (name "emacs-easy-kill")
7723 (version "0.9.3")
7724 (source (origin
7725 (method url-fetch)
7726 (uri (string-append "https://elpa.gnu.org/packages/easy-kill-"
7727 version ".tar"))
7728 (sha256
7729 (base32
7730 "17nw0mglmg877axwg1d0gs03yc0p04lzmd3pl0nsnqbh3303fnqb"))))
7731 (build-system emacs-build-system)
7732 (home-page "https://github.com/leoliu/easy-kill")
7733 (synopsis "Kill and mark things easily in Emacs")
7734 (description
7735 "This package provides commands @code{easy-kill} and @code{easy-mark} to
7736 let users kill or mark things easily.")
7737 (license license:gpl3+)))
7738
7739 (define-public emacs-csv-mode
7740 (package
7741 (name "emacs-csv-mode")
7742 (version "1.7")
7743 (source
7744 (origin
7745 (method url-fetch)
7746 (uri (string-append "http://elpa.gnu.org/packages/csv-mode-"
7747 version ".el"))
7748 (sha256
7749 (base32
7750 "0r4bip0w3h55i8h6sxh06czf294mrhavybz0zypzrjw91m1bi7z6"))))
7751 (build-system emacs-build-system)
7752 (home-page
7753 "http://elpa.gnu.org/packages/csv-mode.html")
7754 (synopsis
7755 "Major mode for editing comma/char separated values")
7756 (description
7757 "This Emacs package implements CSV mode, a major mode for editing records
7758 in a generalized CSV (character-separated values) format.")
7759 (license license:gpl3+)))
7760
7761 (define-public emacs-transmission
7762 (package
7763 (name "emacs-transmission")
7764 (version "0.12.1")
7765 (source (origin
7766 (method url-fetch)
7767 (uri (string-append
7768 "https://github.com/holomorph/transmission/archive/"
7769 version ".tar.gz"))
7770 (file-name (string-append name "-" version ".tar.gz"))
7771 (sha256
7772 (base32
7773 "1rrlgn96gi1ljfwbwvlyyxbq75xzamlbdhq1bpyadxxmxcvlmk3n"))))
7774 (build-system emacs-build-system)
7775 (home-page "https://github.com/holomorph/transmission")
7776 (synopsis "Emacs interface to a Transmission session")
7777 (description "This package provides an Emacs interface to interact with a
7778 running session of the Transmission Bittorrent client.
7779
7780 Features:
7781
7782 @itemize
7783 @item List, add, start/stop, verify, remove torrents.
7784 @item Set speed limits, ratio limits, bandwidth priorities, trackers.
7785 @item Navigate to the corresponding file list, torrent info, peer info
7786 contexts.
7787 @item Toggle downloading and set priorities for individual files.
7788 @end itemize\n")
7789 (license license:gpl3+)))
7790
7791 (define-public emacs-polymode
7792 (package
7793 (name "emacs-polymode")
7794 (version "0.1.5")
7795 (source (origin
7796 (method git-fetch)
7797 (uri (git-reference
7798 (url "https://github.com/vspinu/polymode.git")
7799 (commit (string-append "v" version))))
7800 (file-name (git-file-name name version))
7801 (sha256
7802 (base32
7803 "0wwphs54jx48a3ca6x1qaz56j3j9bg4mv8g2akkffrzbdcb8sbc7"))))
7804 (build-system emacs-build-system)
7805 (arguments
7806 `(#:include (cons* "^modes/.*\\.el$" %default-include)
7807 #:phases
7808 (modify-phases %standard-phases
7809 (add-after 'set-emacs-load-path 'add-modes-subdir-to-load-path
7810 (lambda _
7811 (setenv "EMACSLOADPATH"
7812 (string-append (getenv "EMACSLOADPATH")
7813 ":" (getcwd) "/modes" ":")))))))
7814 (home-page "https://github.com/vspinu/polymode")
7815 (synopsis "Framework for multiple Emacs modes based on indirect buffers")
7816 (description "Polymode is an Emacs package that offers generic support
7817 for multiple major modes inside a single Emacs buffer. It is lightweight,
7818 object oriented and highly extensible. Creating a new polymode typically
7819 takes only a few lines of code. Polymode also provides extensible facilities
7820 for external literate programming tools for exporting, weaving and tangling.")
7821 (license license:gpl3+)))
7822
7823 (define-public emacs-polymode-ansible
7824 (let ((commit "b26094d029e25dc797b94254f797e7807a57e4c8"))
7825 (package
7826 (name "emacs-polymode-ansible")
7827 ;; No upstream version release yet.
7828 (version (git-version "0.1" "1" commit))
7829 (source
7830 (origin
7831 (method git-fetch)
7832 (uri (git-reference
7833 (url "https://gitlab.com/mavit/poly-ansible")
7834 (commit commit)))
7835 (file-name (git-file-name name version))
7836 (sha256
7837 (base32
7838 "055shddqibib3hx2ykwdz910nrqws40cd407mq946l2bf6v87gj6"))))
7839 (build-system emacs-build-system)
7840 (propagated-inputs
7841 `(("emacs-ansible-doc" ,emacs-ansible-doc)
7842 ("emacs-jinja2-mode" ,emacs-jinja2-mode)
7843 ("emacs-polymode" ,emacs-polymode)
7844 ("emacs-yaml-mode" ,emacs-yaml-mode)))
7845 (properties '((upstream-name . "poly-ansible")))
7846 (home-page "https://gitlab.com/mavit/poly-ansible/")
7847 (synopsis "Polymode for Ansible - Jinja2 in YAML")
7848 (description
7849 "Edit YAML files for Ansible containing embedded Jinja2 templating.")
7850 (license license:gpl3+))))
7851
7852 (define-public eless
7853 (package
7854 (name "eless")
7855 (version "0.3")
7856 (source (origin
7857 (method url-fetch)
7858 (uri (string-append
7859 "https://github.com/kaushalmodi/eless/archive/"
7860 "v" version ".tar.gz"))
7861 (file-name (string-append name "-" version ".tar.gz"))
7862 (sha256
7863 (base32
7864 "0gjnnhgw5xs1w3qfnkvwa2nv44gnxr8pkhx3c7qig45p8nh1461h"))))
7865 (build-system trivial-build-system)
7866 (inputs
7867 `(("bash" ,bash)))
7868 (native-inputs
7869 `(("tar" ,tar)
7870 ("gzip" ,gzip)))
7871 (arguments
7872 `(#:modules ((guix build utils))
7873 #:builder
7874 (begin
7875 (use-modules (guix build utils))
7876 (setenv "PATH" (string-append
7877 (assoc-ref %build-inputs "tar") "/bin" ":"
7878 (assoc-ref %build-inputs "gzip") "/bin"))
7879 (invoke "tar" "xvf" (assoc-ref %build-inputs "source"))
7880 (chdir (string-append "eless" "-" ,version))
7881 (substitute* "eless" (("/usr/bin/env bash")
7882 (string-append (assoc-ref %build-inputs "bash")
7883 "/bin/bash")))
7884 (install-file "eless" (string-append %output "/bin"))
7885 (install-file "doc/eless.info" (string-append %output "/share/info"))
7886 #t)))
7887 (home-page "https://github.com/kaushalmodi/eless")
7888 (synopsis "Use Emacs as a paginator")
7889 (description "@code{eless} provides a combination of Bash script
7890 and a minimal Emacs view-mode.
7891
7892 Feautures:
7893
7894 @itemize
7895 @item Independent of a user’s Emacs config.
7896 @item Customizable via the @code{(locate-user-emacs-file \"elesscfg\")} config.
7897 @item Not require an Emacs server to be already running.
7898 @item Syntax highlighting.
7899 @item Org-mode file rendering.
7900 @item @code{man} page viewer.
7901 @item Info viewer.
7902 @item Dired, wdired, (batch edit symbolic links).
7903 @item Colored diffs, git diff, git log, ls with auto ANSI detection.
7904 @item Filter log files lines matching a regexp.
7905 @item Auto-revert log files similar to @code{tail -f}.
7906 @item Quickly change frame and font sizes.
7907 @end itemize\n")
7908 (license license:expat)))
7909
7910 (define-public emacs-evil-matchit
7911 (package
7912 (name "emacs-evil-matchit")
7913 (version "2.2.6")
7914 (source
7915 (origin
7916 (method url-fetch)
7917 (uri (string-append
7918 "https://github.com/redguardtoo/evil-matchit/archive/"
7919 version ".tar.gz"))
7920 (file-name (string-append name "-" version ".tar.gz"))
7921 (sha256
7922 (base32
7923 "1yp9sl6542317mn1060ri90zyf6bs6qylagndhqy02p368q31rhi"))))
7924 (build-system emacs-build-system)
7925 (propagated-inputs
7926 `(("emacs-evil" ,emacs-evil)))
7927 (home-page "https://github.com/redguardtoo/evil-matchit")
7928 (synopsis "Vim matchit ported into Emacs")
7929 (description
7930 "@code{evil-matchit} is a minor mode for jumping between matching tags in
7931 evil mode using @kbd{%}. It is a port of @code{matchit} for Vim.")
7932 (license license:gpl3+)))
7933
7934 (define-public emacs-evil-smartparens
7935 (package
7936 (name "emacs-evil-smartparens")
7937 (version "0.4.0")
7938 (source
7939 (origin
7940 (method url-fetch)
7941 (uri (string-append
7942 "https://github.com/expez/evil-smartparens/archive/"
7943 version ".tar.gz"))
7944 (file-name (string-append name "-" version ".tar.gz"))
7945 (sha256
7946 (base32
7947 "1bwzdd3054d407d5j4m3njsbvmc9r8zzp33m32pj3b3irxrl68q0"))))
7948 (build-system emacs-build-system)
7949 (propagated-inputs
7950 `(("emacs-evil" ,emacs-evil)
7951 ("emacs-smartparens" ,emacs-smartparens)))
7952 (home-page "https://github.com/expez/evil-smartparens")
7953 (synopsis "Emacs Evil integration for Smartparens")
7954 (description "@code{emacs-evil-smartparens} is an Emacs minor mode which
7955 makes Evil play nice with Smartparens. Evil is an Emacs minor mode that
7956 emulates Vim features and provides Vim-like key bindings.")
7957 (license license:gpl3+)))
7958
7959 (define-public emacs-evil-quickscope
7960 (package
7961 (name "emacs-evil-quickscope")
7962 (version "0.1.4")
7963 (source
7964 (origin
7965 (method url-fetch)
7966 (uri (string-append "https://github.com/blorbx/evil-quickscope/archive/v"
7967 version ".tar.gz"))
7968 (file-name (string-append name "-" version ".tar.gz"))
7969 (sha256
7970 (base32
7971 "1r26a412mmar7vbf89zcifswiwpdg30mjzj32xdyqss57aqi83ma"))))
7972 (build-system emacs-build-system)
7973 (propagated-inputs
7974 `(("emacs-evil" ,emacs-evil)))
7975 (arguments
7976 `(#:tests? #t
7977 #:test-command '("emacs" "--batch"
7978 "-l" "evil-quickscope-tests.el"
7979 "-f" "ert-run-tests-batch-and-exit")))
7980 (home-page "https://github.com/blorbx/evil-quickscope")
7981 (synopsis "Target highlighting for emacs evil-mode f,F,t and T commands")
7982 (description "@code{emacs-evil-quickscope} highlights targets for Evil
7983 mode’s f,F,t,T keys, allowing for quick navigation within a line. It is a
7984 port of quick-scope for Vim. Evil is an Emacs minor mode that emulates Vim
7985 features and provides Vim-like key bindings.")
7986 (license license:gpl3+)))
7987
7988 (define-public emacs-bongo
7989 (package
7990 (name "emacs-bongo")
7991 (version "1.0")
7992 (source
7993 (origin
7994 (method url-fetch)
7995 (uri (string-append
7996 "https://github.com/dbrock/bongo/archive/"
7997 version ".tar.gz"))
7998 (file-name (string-append name "-" version ".tar.gz"))
7999 (sha256
8000 (base32
8001 "1pcsyyrvj7djjjwpaswd1i782hvqvlvs39cy9ns0k795si6xd64d"))))
8002 (build-system emacs-build-system)
8003 (home-page "https://github.com/dbrock/bongo")
8004 (synopsis "Media player for Emacs")
8005 (description
8006 "This package provides a flexible media player for Emacs. @code{Bongo}
8007 supports multiple backends such as @code{vlc}, @code{mpg123},
8008 @code{ogg123}, @code{speexdec}, @code{timidity}, @code{mikmod} and
8009 @code{afplay}.")
8010 (license license:gpl2+)))
8011
8012 (define-public emacs-groovy-modes
8013 (package
8014 (name "emacs-groovy-modes")
8015 (version "2.0")
8016 (source (origin
8017 (method url-fetch)
8018 (uri (string-append
8019 "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes"
8020 "/archive/" version ".tar.gz"))
8021 (file-name (string-append name "-" version ".tar.gz"))
8022 (sha256
8023 (base32
8024 "15j0hnkx9nppjzda5cqsxxz5f3bq9hc4xfyjcdypzqiypcvmpa39"))))
8025 (build-system emacs-build-system)
8026 (propagated-inputs
8027 `(("emacs-s" ,emacs-s)))
8028 (home-page "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
8029 (synopsis "Groovy related modes for Emacs")
8030 (description
8031 "This package provides @code{groovy-mode} for syntax highlighing in
8032 Groovy source files, REPL integration with run-groovy and Grails project
8033 navigation with the grails mode.")
8034 (license license:gpl3+)))
8035
8036 (define-public groovy-emacs-modes
8037 (deprecated-package "groovy-emacs-modes" emacs-groovy-modes))
8038
8039 (define-public emacs-org-tree-slide
8040 (let ((commit "dff8f1a4a64c8dd0a1fde0b0131e2fe186747134")
8041 (revision "0"))
8042 (package
8043 (name "emacs-org-tree-slide")
8044 (version (git-version "0.1" revision commit))
8045 (home-page "https://github.com/takaxp/org-tree-slide")
8046 (source (origin
8047 (method git-fetch)
8048 (uri (git-reference (url home-page) (commit commit)))
8049 (sha256
8050 (base32
8051 "153bg0x7ypla11pq51jmsgzfjklwwnrq56xgpbfhk1j16xwz9hyf"))
8052 (file-name (git-file-name name version))))
8053 (build-system emacs-build-system)
8054 (synopsis "Presentation tool for org-mode")
8055 (description
8056 "Org-tree-slide provides a slideshow mode to view org-mode files. Use
8057 @code{org-tree-slide-mode} to enter the slideshow mode, and then @kbd{C->} and
8058 @kbd{C-<} to jump to the next and previous slide.")
8059 (license license:gpl3+))))
8060
8061 (define-public emacs-scratch-el
8062 (let ((commit "2cdf2b841ce7a0987093f65b0cc431947549f897")
8063 (revision "1"))
8064 (package
8065 (name "emacs-scratch-el")
8066 (version (git-version "1.2" revision commit))
8067 (source (origin
8068 (method git-fetch)
8069 (uri (git-reference
8070 (url "https://github.com/ieure/scratch-el.git")
8071 (commit commit)))
8072 (file-name (git-file-name name version))
8073 (sha256
8074 (base32
8075 "0wscsndynjmnliajqaz28r1ww81j8wh84zwaaswx51abhwgl0idf"))))
8076 (build-system emacs-build-system)
8077 (native-inputs
8078 `(("texinfo" ,texinfo)))
8079 (arguments
8080 '(#:phases
8081 (modify-phases %standard-phases
8082 (add-after 'install 'install-doc
8083 (lambda* (#:key outputs #:allow-other-keys)
8084 (unless (invoke "makeinfo" "scratch.texi")
8085 (error "makeinfo failed"))
8086 (install-file "scratch.info"
8087 (string-append (assoc-ref outputs "out")
8088 "/share/info"))
8089 #t)))))
8090 (home-page "https://github.com/ieure/scratch-el/")
8091 (synopsis "Create scratch buffers with the same mode as current buffer")
8092 (description "Scratch is an extension to Emacs that enables one to create
8093 scratch buffers that are in the same mode as the current buffer. This is
8094 notably useful when working on code in some language; you may grab code into a
8095 scratch buffer, and, by virtue of this extension, do so using the Emacs
8096 formatting rules for that language.")
8097 (license license:bsd-2))))
8098
8099 (define-public emacs-kv
8100 (package
8101 (name "emacs-kv")
8102 (version "0.0.19")
8103 (source
8104 (origin
8105 (method git-fetch)
8106 (uri (git-reference
8107 (url "https://github.com/nicferrier/emacs-kv.git")
8108 (commit "721148475bce38a70e0b678ba8aa923652e8900e")))
8109 (file-name (string-append name "-" version "-checkout"))
8110 (sha256
8111 (base32
8112 "0r0lz2s6gvy04fwnafai668jsf4546h4k6zd6isx5wpk0n33pj5m"))))
8113 (build-system emacs-build-system)
8114 (arguments
8115 `(#:tests? #t
8116 #:test-command '("emacs" "--batch" "-l" "kv-tests.el"
8117 "-f" "ert-run-tests-batch-and-exit")))
8118 (home-page "https://github.com/nicferrier/emacs-kv")
8119 (synopsis "Key/Value data structures library for Emacs Lisp")
8120 (description "@code{emacs-kv} is a collection of tools for dealing with
8121 key/value data structures such as plists, alists and hash-tables in Emacs
8122 Lisp.")
8123 (license license:gpl3+)))
8124
8125 (define-public emacs-esxml
8126 (package
8127 (name "emacs-esxml")
8128 (version "0.3.4")
8129 (source (origin
8130 (method git-fetch)
8131 (uri (git-reference
8132 (url "https://github.com/tali713/esxml.git")
8133 (commit version)))
8134 (file-name (git-file-name name version))
8135 (sha256
8136 (base32
8137 "00vv8a75wdklygdyr4km9mc2ismxak69c45jmcny41xl44rp9x8m"))))
8138 (build-system emacs-build-system)
8139 (arguments
8140 `(#:phases
8141 (modify-phases %standard-phases
8142 (add-after 'unpack 'fix-sources
8143 (lambda _
8144 ;; See: https://github.com/tali713/esxml/pull/28.
8145 (substitute* "css-lite.el"
8146 ((";;; main interface")
8147 (string-append ";;; main interface\n"
8148 "(require 'cl-lib)"))
8149 (("mapcan")
8150 "cl-mapcan")
8151 (("',\\(cl-mapcan #'process-css-rule rules\\)")
8152 "(cl-mapcan #'process-css-rule ',rules)"))
8153 (substitute* "esxml-form.el"
8154 ((",esxml-form-field-defn")
8155 "#'esxml-form-field-defn"))
8156 ;; See: https://github.com/tali713/esxml/issues/25
8157 (delete-file "esxpath.el")
8158 #t)))))
8159 (propagated-inputs
8160 `(("emacs-kv" ,emacs-kv)))
8161 (home-page "https://github.com/tali713/esxml/")
8162 (synopsis "SXML for EmacsLisp")
8163 (description "This is XML/XHTML done with S-Expressions in EmacsLisp.
8164 Simply, this is the easiest way to write HTML or XML in Lisp. This library
8165 uses the native form of XML representation as used by many libraries already
8166 included within Emacs. See @code{esxml-to-xml} for a concise description of
8167 the format.")
8168 (license license:gpl3+)))
8169
8170 (define-public emacs-nov-el
8171 (package
8172 (name "emacs-nov-el")
8173 (version "0.2.6")
8174 (source (origin
8175 (method git-fetch)
8176 (uri (git-reference
8177 (url "https://github.com/wasamasa/nov.el.git")
8178 (commit version)))
8179 (file-name (git-file-name name version))
8180 (sha256
8181 (base32
8182 "188h5gzn1zf443g0b7q5bpmvvpr6ds5h8aci8vxc92py56rhyrvc"))))
8183 (build-system emacs-build-system)
8184 (arguments
8185 `(#:phases
8186 (modify-phases %standard-phases
8187 (add-after 'unpack 'embed-path-to-unzip
8188 (lambda _
8189 (substitute* "nov.el"
8190 (("\\(executable-find \"unzip\"\\)")
8191 (string-append "\"" (which "unzip") "\"")))
8192 #t)))))
8193 (propagated-inputs
8194 `(("emacs-dash" ,emacs-dash)
8195 ("emacs-esxml" ,emacs-esxml)))
8196 (inputs
8197 `(("unzip" ,unzip)))
8198 (home-page "https://github.com/wasamasa/nov.el/")
8199 (synopsis "Major mode for reading EPUBs in Emacs")
8200 (description "@code{nov.el} provides a major mode for reading EPUB
8201 documents.
8202
8203 Features:
8204
8205 @itemize
8206 @item Basic navigation (jump to TOC, previous/next chapter)
8207 @item Remembering and restoring the last read position
8208 @item Jump to next chapter when scrolling beyond end
8209 @item Renders EPUB2 (@code{.ncx}) and EPUB3 (@code{<nav>}) TOCs
8210 @item Hyperlinks to internal and external targets
8211 @item Supports textual and image documents
8212 @item View source of document files
8213 @item Metadata display
8214 @item Image rescaling
8215 @end itemize
8216 ")
8217 (license license:gpl3+)))
8218
8219 (define-public epipe
8220 (package
8221 (name "epipe")
8222 (version "0.1.0")
8223 (source
8224 (origin
8225 (method url-fetch)
8226 (uri (string-append "https://github.com/cute-jumper/epipe/archive/"
8227 version ".tar.gz"))
8228 (file-name (string-append name "-" version ".tar.gz"))
8229 (sha256
8230 (base32
8231 "05a036852g4j63k1mhvyfrcsgkl9lczayi7x61570ysw3cli5wp5"))))
8232 (build-system trivial-build-system)
8233 (inputs
8234 `(("bash" ,bash)
8235 ("perl" ,perl)))
8236 (native-inputs
8237 `(("tar" ,tar)
8238 ("gzip" ,gzip)))
8239 (arguments
8240 `(#:modules
8241 ((guix build utils))
8242 #:builder
8243 (begin
8244 (use-modules (guix build utils))
8245 ;; Extract source
8246 (setenv "PATH" (string-append
8247 (assoc-ref %build-inputs "tar") "/bin" ":"
8248 (assoc-ref %build-inputs "gzip") "/bin"))
8249 (invoke "tar" "xvf" (assoc-ref %build-inputs "source"))
8250 (chdir (string-append ,name "-" ,version))
8251 ;; Patch shebangs
8252 (substitute* "epipe"
8253 (("/usr/bin/env bash")
8254 (string-append (assoc-ref %build-inputs "bash") "/bin/bash")))
8255 (patch-shebang "epipe.pl"
8256 (list (string-append (assoc-ref %build-inputs "perl")
8257 "/bin")))
8258 ;; Installation
8259 (for-each (lambda (file)
8260 (install-file file (string-append %output "/bin")))
8261 '("epipe" "epipe.pl"))
8262 #t)))
8263 (home-page "https://github.com/cute-jumper/epipe")
8264 (synopsis "Pipe to the @code{emacsclient}")
8265 (description "@code{epipe} provides an utility to use your editor in
8266 the pipeline, featuring the support for running @code{emacsclient}.")
8267 (license license:gpl3+)))
8268
8269 (define-public emacs-hcl-mode
8270 (package
8271 (name "emacs-hcl-mode")
8272 (version "0.03")
8273 (source
8274 (origin
8275 (method url-fetch)
8276 (uri (string-append
8277 "https://github.com/syohex/emacs-hcl-mode/archive/"
8278 version ".tar.gz"))
8279 (file-name (string-append name "-" version ".tar.gz"))
8280 (sha256
8281 (base32
8282 "0pvw74qpwh0znqzp6syp4wxjqs7dp1hbn5h7xfk97mff9l5d8k6x"))))
8283 (build-system emacs-build-system)
8284 (home-page "https://github.com/syohex/emacs-hcl-mode")
8285 (synopsis "Major mode for the Hashicorp Configuration Language")
8286 (description
8287 "@code{emacs-hcl-mode} provides an Emacs major mode for working with
8288 @acronym{HCL, Hashicorp Configuration Language}. It provides syntax
8289 highlighting and indentation support.")
8290 (license license:gpl3+)))
8291
8292 (define-public emacs-terraform-mode
8293 (package
8294 (name "emacs-terraform-mode")
8295 (version "0.06")
8296 (source
8297 (origin
8298 (method url-fetch)
8299 (uri (string-append
8300 "https://github.com/syohex/emacs-terraform-mode/archive/"
8301 version ".tar.gz"))
8302 (file-name (string-append name "-" version ".tar.gz"))
8303 (sha256
8304 (base32
8305 "0h9267ifdjmcin4sj8slxydbacx4bqicbvg8pa1qq2l72h9m5381"))))
8306 (build-system emacs-build-system)
8307 (propagated-inputs
8308 `(("emacs-hcl-mode" ,emacs-hcl-mode)))
8309 (home-page "https://github.com/syohex/emacs-terraform-mode")
8310 (synopsis "Major mode for Terraform")
8311 (description
8312 "@code{emacs-terraform-mode} provides a major mode for working with
8313 @uref{https://www.terraform.io/, Terraform} configuration files. Most of the
8314 functionality is inherited from @code{hcl-mode}.")
8315 (license license:gpl3+)))
8316
8317 (define-public emacs-exec-path-from-shell
8318 (package
8319 (name "emacs-exec-path-from-shell")
8320 (version "1.11")
8321 (source
8322 (origin
8323 (method url-fetch)
8324 (uri (string-append
8325 "https://stable.melpa.org/packages/exec-path-from-shell-"
8326 version ".el"))
8327 (sha256
8328 (base32
8329 "03qjgb81cq1l3j54lvlf98r75vmmgd06mj6qh5wa6mz4xzp4w26r"))))
8330 (build-system emacs-build-system)
8331 (home-page "https://github.com/purcell/exec-path-from-shell")
8332 (synopsis "Get environment variables such as @var{PATH} from the shell")
8333 (description
8334 "This library allows the user to set Emacs @var{exec-path} and @var{PATH}
8335 from the shell @var{PATH}, so that @code{shell-command}, @code{compile} and
8336 the like work as expected on systems on which Emacs is not guaranteed to
8337 inherit a login shell's environment variables. It also allows other
8338 environment variables to be retrieved from the shell, so that Emacs will see
8339 the same values you get in a terminal.")
8340 (license license:gpl3+)))
8341
8342 (define-public emacs-deft
8343 (package
8344 (name "emacs-deft")
8345 (version "0.8")
8346 (source
8347 (origin
8348 (method url-fetch)
8349 (uri (string-append "https://stable.melpa.org/packages/deft-"
8350 version ".el"))
8351 (sha256
8352 (base32
8353 "1vb9cjxskc7c0yyf9pvxy1fzypg1vrcgwnjz0m3hslinsgdyig58"))))
8354 (build-system emacs-build-system)
8355 (home-page "https://jblevins.org/projects/deft/")
8356 (synopsis "Quickly browse, filter, and edit plain text notes")
8357 (description
8358 "Deft is an Emacs mode for quickly browsing, filtering, and editing
8359 directories of plain text notes, inspired by Notational Velocity.")
8360 (license license:bsd-3)))
8361
8362 (define-public emacs-anzu
8363 (package
8364 (name "emacs-anzu")
8365 (version "0.62")
8366 (source
8367 (origin
8368 (method url-fetch)
8369 (uri (string-append "https://github.com/syohex/emacs-anzu/archive/"
8370 version ".tar.gz"))
8371 (file-name (string-append name "-" version ".tar.gz"))
8372 (sha256
8373 (base32
8374 "16cg3897x5znbmgk7sdy0qyd0fbic9dmmz0dchq2vz5z29yhg4cz"))))
8375 (build-system emacs-build-system)
8376 (home-page "https://github.com/syohex/emacs-anzu")
8377 (synopsis "Show number of matches in mode-line while searching")
8378 (description
8379 "Anzu provides a minor mode which displays \"current match/total
8380 matches\" in the mode line in various search modes. This is an Emacs port of
8381 Anzu.zim.")
8382 (license license:gpl3+)))
8383
8384 (define-public emacs-emmet-mode
8385 (package
8386 (name "emacs-emmet-mode")
8387 (version "1.0.8")
8388 (source (origin
8389 (method url-fetch)
8390 (uri (string-append "https://github.com/smihica/emmet-mode"
8391 "/archive/" version ".tar.gz"))
8392 (file-name (string-append name "-" version ".tar.gz"))
8393 (sha256
8394 (base32
8395 "0g3p22yabfcp98cfv9dgl9il2m2pd53isq2q11vb3s7qyn31f7zj"))))
8396 (build-system emacs-build-system)
8397 (home-page "https://github.com/smihica/emmet-mode")
8398 (synopsis "Unofficial Emmet's support for Emacs")
8399 (description
8400 "Unfold CSS-selector-like expressions to markup. It is intended to be
8401 used with SGML-like languages: XML, HTML, XHTML, XSL, etc.")
8402 (license license:gpl3+)))
8403
8404 (define-public emacs-ergoemacs-mode
8405 (let ((commit "3ce23bba3cb50562693860f87f3528c471d603ba")
8406 (revision "1"))
8407 (package
8408 (name "emacs-ergoemacs-mode")
8409 (version (git-version "5.16.10.12" revision commit))
8410 (source
8411 (origin
8412 (method git-fetch)
8413 (uri (git-reference
8414 (url "https://github.com/ergoemacs/ergoemacs-mode.git")
8415 (commit commit)))
8416 (sha256
8417 (base32
8418 "1s3b9bridl78hh1mxmdk9nqlmqhibbaxk0a1cixmsf23s06w8w6l"))))
8419 (build-system emacs-build-system)
8420 (propagated-inputs
8421 `(("emacs-undo-tree" ,emacs-undo-tree)))
8422 (home-page "https://ergoemacs.github.io/")
8423 (synopsis "Emacs mode based on common modern interface and ergonomics")
8424 (description
8425 "This package provides an efficient Emacs keybinding set based on
8426 statistics of command frequency, and supports common shortcuts for open,
8427 close, copy, cut, paste, undo, redo.")
8428 (license license:gpl3+))))
8429
8430 (define-public emacs-password-store
8431 (package
8432 (name "emacs-password-store")
8433 (version "1.7.3")
8434 (source (origin
8435 (method url-fetch)
8436 (uri
8437 (string-append "https://git.zx2c4.com/password-store/snapshot/"
8438 "password-store-" version ".tar.xz"))
8439 (sha256
8440 (base32
8441 "1x53k5dn3cdmvy8m4fqdld4hji5n676ksl0ql4armkmsds26av1b"))))
8442 (build-system emacs-build-system)
8443 (arguments
8444 `(#:phases
8445 (modify-phases %standard-phases
8446 (add-after 'unpack 'extract-el-file
8447 (lambda _
8448 (copy-file "contrib/emacs/password-store.el" "password-store.el")
8449 (delete-file-recursively "contrib")
8450 (delete-file-recursively "man")
8451 (delete-file-recursively "src")
8452 (delete-file-recursively "tests"))))))
8453 (propagated-inputs
8454 `(("emacs-f" ,emacs-f)
8455 ("emacs-s" ,emacs-s)
8456 ("emacs-with-editor" ,emacs-with-editor)
8457 ("password-store" ,password-store)))
8458 (home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs")
8459 (synopsis "Password store (pass) support for Emacs")
8460 (description
8461 "This package provides functions for working with pass (\"the
8462 standard Unix password manager\").")
8463 (license license:gpl2+)))
8464
8465 (define-public emacs-pass
8466 (package
8467 (name "emacs-pass")
8468 (version "1.8")
8469 (source (origin
8470 (method url-fetch)
8471 (uri (string-append
8472 "https://github.com/NicolasPetton/pass/archive/"
8473 version ".tar.gz"))
8474 (sha256
8475 (base32
8476 "0aiz90gklk0cb8n4v1s3l0mx6pp2b7f4k2c0fjpihwmga13yklwn"))
8477 (file-name (string-append name "-" version ".tar.gz"))))
8478 (build-system emacs-build-system)
8479 (propagated-inputs
8480 `(("emacs-password-store" ,emacs-password-store)
8481 ("emacs-f" ,emacs-f)))
8482 (home-page "https://github.com/NicolasPetton/pass")
8483 (synopsis "Major mode for @file{password-store.el}")
8484 (description "This is a major mode for managing password-store (pass)
8485 keychains. The keychain entries are displayed in a directory-like structure
8486 and can be consulted and modified.")
8487 (license license:gpl3+)))
8488
8489 (define-public emacs-evil-anzu
8490 (package
8491 (name "emacs-evil-anzu")
8492 (version "0.03")
8493 (source
8494 (origin
8495 (method url-fetch)
8496 (uri (string-append "https://github.com/syohex/emacs-evil-anzu"
8497 "/archive/" version ".tar.gz"))
8498 (file-name (string-append name "-" version ".tar.gz"))
8499 (sha256
8500 (base32 "032hh2946z529cizqsg8pm6cpn5qdj8lfk3qskmx6xv3g2ra56ns"))))
8501 (build-system emacs-build-system)
8502 (propagated-inputs
8503 `(("emacs-evil" ,emacs-evil)
8504 ("emacs-anzu" ,emacs-anzu)))
8505 (home-page "https://github.com/syohex/emacs-evil-anzu")
8506 (synopsis "Anzu for evil-mode")
8507 (description "@code{anzu} provides a minor mode that displays the current
8508 match and total match information in the mode-line in various search modes.")
8509 (license license:gpl3+)))
8510
8511 (define-public emacs-pg
8512 (let ((commit "4f6516ec3946d95dcef49abb6703cc89ecb5183d"))
8513 (package
8514 (name "emacs-pg")
8515 (version (git-version "0.1" "1" commit))
8516 (source (origin
8517 (method git-fetch)
8518 (uri (git-reference (url "https://github.com/cbbrowne/pg.el")
8519 (commit commit)))
8520 (file-name (git-file-name name version))
8521 (sha256
8522 (base32
8523 "1zh7v4nnpzvbi8yj1ynlqlawk5bmlxi6s80b5f2y7hkdqb5q26k0"))))
8524 (build-system emacs-build-system)
8525 (home-page "https://github.com/cbbrowne/pg.el")
8526 (synopsis "Emacs Lisp interface for PostgreSQL")
8527 (description
8528 "This package provides an Emacs Lisp interface for PostgreSQL.")
8529 (license license:gpl3+))))
8530
8531 (define-public emacs-cl-generic
8532 (package
8533 (name "emacs-cl-generic")
8534 (version "0.3")
8535 (source
8536 (origin
8537 (method url-fetch)
8538 (uri (string-append "https://elpa.gnu.org/packages/cl-generic-"
8539 version ".el"))
8540 (sha256
8541 (base32
8542 "0vb338bhjpsnrf60qgxny4z5rjrnifahnrv9axd4shay89d894zq"))))
8543 (build-system emacs-build-system)
8544 (home-page "https://elpa.gnu.org/packages/seq.html")
8545 (synopsis
8546 "Forward @code{cl-generic} compatibility for Emacs before version 25")
8547 (description "This package provides a subset of the features of the
8548 @code{cl-generic} package introduced in Emacs-25, for use on previous
8549 @code{emacsen}.")
8550 (license license:gpl3+)))
8551
8552 (define-public emacs-finalize
8553 (package
8554 (name "emacs-finalize")
8555 (version "2.0.0")
8556 (source
8557 (origin
8558 (method url-fetch)
8559 (uri (string-append "https://github.com/skeeto/elisp-finalize/archive/"
8560 version ".tar.gz"))
8561 (file-name (string-append name "-" version ".tar.gz"))
8562 (sha256
8563 (base32
8564 "077fycy3i5f0kjw5z3rhf4kld5lbk2idz690nkwhkz04vppk4q4x"))))
8565 (build-system emacs-build-system)
8566 (propagated-inputs
8567 `(("emacs-cl-generic" ,emacs-cl-generic)))
8568 (home-page "https://github.com/skeeto/elisp-finalize")
8569 (synopsis "Finalizers for Emacs Lisp")
8570 (description
8571 "This package will allows to immediately run a callback (a finalizer)
8572 after its registered lisp object has been garbage collected. This allows for
8573 extra resources, such as buffers and processes, to be cleaned up after the
8574 object has been freed.")
8575 (license license:unlicense)))
8576
8577 (define-public emacs-emacsql
8578 (package
8579 (name "emacs-emacsql")
8580 (version "3.0.0")
8581 (source (origin
8582 (method git-fetch)
8583 (uri (git-reference
8584 (url "https://github.com/skeeto/emacsql.git")
8585 (commit (string-append version))))
8586 (file-name (git-file-name name version))
8587 (sha256
8588 (base32
8589 "1c84gxr1majqj4b59wgdy3lzm3ap66w9qsrnkx8hdbk9895ak81g"))))
8590 (build-system emacs-build-system)
8591 (arguments
8592 `(#:modules ((guix build emacs-build-system)
8593 (guix build utils)
8594 (guix build emacs-utils)
8595 (srfi srfi-26))
8596 #:phases
8597 (modify-phases %standard-phases
8598 (delete 'build) ;‘build-emacsql-sqlite’ compiles ‘*.el’ files.
8599 (add-before 'install 'patch-elisp-shell-shebangs
8600 (lambda _
8601 (substitute* (find-files "." "\\.el")
8602 (("/bin/sh") (which "sh")))
8603 #t))
8604 (add-after 'patch-elisp-shell-shebangs 'setenv-shell
8605 (lambda _
8606 (setenv "SHELL" "sh")))
8607 (add-after 'setenv-shell 'build-emacsql-sqlite
8608 (lambda _
8609 (invoke "make" "binary" "CC=gcc")))
8610 (add-after 'build-emacsql-sqlite 'install-emacsql-sqlite
8611 ;; This build phase installs emacs-emacsql binary.
8612 (lambda* (#:key outputs #:allow-other-keys)
8613 (install-file "sqlite/emacsql-sqlite"
8614 (string-append (assoc-ref outputs "out")
8615 "/bin"))
8616 #t))
8617 (add-after 'install-emacsql-sqlite 'patch-emacsql-sqlite.el
8618 ;; This build phase removes interactive prompts
8619 ;; and makes sure Emacs look for binaries in the right places.
8620 (lambda* (#:key outputs #:allow-other-keys)
8621 (let ((file "emacsql-sqlite.el"))
8622 (chmod file #o644)
8623 (emacs-substitute-sexps file
8624 ;; Make sure Emacs looks for ‘GCC’ binary in the right place.
8625 ("(executable-find" (which "gcc"))
8626 ;; Make sure Emacs looks for ‘emacsql-sqlite’ binary
8627 ;; in the right place.
8628 ("(defvar emacsql-sqlite-executable"
8629 (string-append (assoc-ref outputs "out")
8630 "/bin/emacsql-sqlite"))))))
8631 (replace 'install
8632 (lambda* (#:key outputs #:allow-other-keys)
8633 (let* ((out (assoc-ref outputs "out")))
8634 (install-file "sqlite/emacsql-sqlite"
8635 (string-append out "/bin"))
8636 (for-each (cut install-file <>
8637 (string-append out "/share/emacs/site-lisp/guix.d/"
8638 "emacsql" "-" ,version))
8639 (find-files "." "\\.elc*$")))
8640 #t)))))
8641 (inputs
8642 `(("emacs-minimal" ,emacs-minimal)
8643 ("mariadb" ,mariadb)
8644 ("postgresql" ,postgresql)))
8645 (propagated-inputs
8646 `(("emacs-finalize" ,emacs-finalize)
8647 ("emacs-pg" ,emacs-pg)))
8648 (home-page "https://github.com/skeeto/emacsql")
8649 (synopsis "Emacs high-level SQL database front-end")
8650 (description "Any readable Lisp value can be stored as a value in EmacSQL,
8651 including numbers, strings, symbols, lists, vectors, and closures. EmacSQL
8652 has no concept of @code{TEXT} values; it's all just Lisp objects. The Lisp
8653 object @code{nil} corresponds 1:1 with @code{NULL} in the database.")
8654 (license license:gpl3+)))
8655
8656 (define-public emacs-closql
8657 (package
8658 (name "emacs-closql")
8659 (version "1.0.0")
8660 (source
8661 (origin
8662 (method git-fetch)
8663 (uri (git-reference
8664 (url "https://github.com/emacscollective/closql.git")
8665 (commit (string-append "v" version))))
8666 (file-name (git-file-name name version))
8667 (sha256
8668 (base32
8669 "1xhpfjjkjqfc1k2rj77cscclz5r7gpvv3hi202x178vdcpipjwar"))))
8670 (build-system emacs-build-system)
8671 (propagated-inputs
8672 `(("emacs-emacsql" ,emacs-emacsql)))
8673 (home-page "https://github.com/emacscollective/closql")
8674 (synopsis "Store EIEIO objects using EmacSQL")
8675 (description
8676 "This package allows to store uniform EIEIO objects in an EmacSQL
8677 database. SQLite is used as backend. This library imposes some restrictions
8678 on what kind of objects can be stored; it isn't intended to store arbitrary
8679 objects. All objects have to share a common superclass and subclasses cannot
8680 add any additional instance slots.")
8681 (license license:gpl3)))
8682
8683 (define-public emacs-epkg
8684 ;; The release version is to old for the current database scheme.
8685 (let ((commit "432312b9583ed7b88ad9644fd1bf2183765a892e"))
8686 (package
8687 (name "emacs-epkg")
8688 (version (git-version "3.0.0" "1" commit))
8689 (source
8690 (origin
8691 (method git-fetch)
8692 (uri (git-reference
8693 (url "https://github.com/emacscollective/epkg.git")
8694 (commit commit)))
8695 (file-name (git-file-name name version))
8696 (sha256
8697 (base32
8698 "0d882kahn7a0vri7a9r15lvmfx1zn2hsga6jfcc6jv0hqbswlb2k"))))
8699 (build-system emacs-build-system)
8700 (propagated-inputs
8701 `(("emacs-closql" ,emacs-closql)
8702 ("emacs-dash" ,emacs-dash)))
8703 (home-page "https://emacsmirror.net")
8704 (synopsis "Browse the Emacsmirror package database")
8705 (description "This package provides access to a local copy of the
8706 Emacsmirror package database. It provides low-level functions for querying
8707 the database and a @file{package.el} user interface for browsing the database.
8708 Epkg itself is not a package manager.
8709
8710 Getting a local copy:
8711
8712 @example
8713 git clone https://github.com/emacsmirror/epkgs.git ~/.emacs.d/epkgs
8714 cd ~/.emacs.d/epkgs
8715 git submodule init
8716 git config --global url.https://github.com/.insteadOf git@@github.com:
8717 git submodule update
8718 @end example
8719
8720 Some submodule may be missing. In this case Git will prompt for a GitHub user
8721 name and password. To skip it press a @key{Return} key.
8722
8723 You could get a Epkg package list by invoking @code{epkg-list-packages} in
8724 Emacs.")
8725 (license license:gpl3+))))
8726
8727 (define-public emacs-elisp-slime-nav
8728 (package
8729 (name "emacs-elisp-slime-nav")
8730 (version "0.9")
8731 (source
8732 (origin
8733 (method url-fetch)
8734 (uri (string-append "https://github.com/purcell/elisp-slime-nav/archive/"
8735 version ".tar.gz"))
8736 (file-name (string-append name "-" version ".tar.gz"))
8737 (sha256
8738 (base32
8739 "1vq7ym1q47p97gxrv45c9gm96d23xbp237vkmakikj6grngxjfb2"))))
8740 (build-system emacs-build-system)
8741 (home-page "https://github.com/purcell/elisp-slime-nav")
8742 (synopsis "Make @code{M-.} and @code{M-,} work for elisp like they do in SLIME")
8743 (description
8744 "This package provides SLIME's convenient @code{M-.}and @code{M-,} navigation
8745 in @code{emacs-lisp-mode}, together with an elisp equivalent of
8746 @code{slime-describe-symbol}.")
8747 (license license:gpl3+)))
8748
8749 (define-public emacs-dedicated
8750 (package
8751 (name "emacs-dedicated")
8752 (version "1.0.0")
8753 (source (origin
8754 (method url-fetch)
8755 (uri (string-append
8756 "https://github.com/emacsorphanage/dedicated/archive/"
8757 version
8758 ".tar.gz"))
8759 (sha256
8760 (base32
8761 "0nhbkp278cvcznb5rp3jp9ii3mjgb79zx8iwfrw7zfk3yg8688ni"))
8762 (file-name (string-append name "-" version ".tar.gz"))))
8763 (build-system emacs-build-system)
8764 (home-page "https://github.com/emacsorphanage/dedicated")
8765 (synopsis "Emacs minor mode for toggling a windows's \"dedicated\" flag")
8766 (description
8767 "This simple Emacs minor mode allows you to toggle a window's
8768 \"dedicated\" flag. When a window is \"dedicated\", Emacs will not select
8769 files into that window. This can be quite handy since many commands will use
8770 another window to show results (compilation mode, starting info, and so on).
8771 A dedicated window won't be used for such a purpose. For details, please read
8772 the source file.")
8773 (license license:gpl2+)))
8774
8775 (define-public emacs-nnreddit
8776 (let ((commit "9843f99d01fd8f1eea2fc685965a7c7f4eeb187a")
8777 (revision "1"))
8778 (package
8779 (name "emacs-nnreddit")
8780 (version (string-append "0.0.1-" revision "."
8781 (string-take commit 7)))
8782 (source (origin
8783 (method git-fetch)
8784 (uri (git-reference
8785 (url "https://github.com/paul-issartel/nnreddit.git")
8786 (commit commit)))
8787 (file-name (string-append name "-" version "-checkout"))
8788 (sha256
8789 (base32
8790 "0j4h3bnga640250jdq8bwyja49r41ssrsjd6lba4gzzllqk02nbn"))))
8791 (build-system emacs-build-system)
8792 (home-page "https://github.com/paul-issartel/nnreddit")
8793 (synopsis "Reddit backend for the Gnus newsreader")
8794 (description "@url{https://www.reddit.com} backend for the Gnus
8795 newsreader.")
8796 (license license:gpl3+))))
8797
8798 (define-public emacs-makey
8799 (package
8800 (name "emacs-makey")
8801 (version "0.3")
8802 (source
8803 (origin
8804 (method url-fetch)
8805 (uri (string-append "https://github.com/mickeynp/makey/archive/"
8806 version ".tar.gz"))
8807 (file-name (string-append name "-" version ".tar.gz"))
8808 (sha256
8809 (base32
8810 "0kzl4q1wf2zhkx9nrymxa67n99iq0bj7zqhpaz4byksna1hsxfmv"))))
8811 (build-system emacs-build-system)
8812 (home-page "https://github.com/mickeynp/makey")
8813 (synopsis "Emacs interactive command-line mode")
8814 (description
8815 "This package provides an Emacs interactive command-line mode.")
8816 (license license:gpl3+)))
8817
8818 (define-public emacs-outorg
8819 (let ((commit "78b0695121fb974bc4e971eb4ef7f8afd6d89d64"))
8820 (package
8821 (name "emacs-outorg")
8822 (version (git-version "2.0" "1" commit))
8823 (source
8824 (origin
8825 (method git-fetch)
8826 (uri (git-reference
8827 (url "https://github.com/alphapapa/outorg")
8828 (commit commit)))
8829 (file-name (git-file-name name version))
8830 (sha256
8831 (base32
8832 "03aclh4m3f7rb821gr9pwvnqkkl91px3qxdcarpf3ypa1x4fxvlj"))))
8833 (build-system emacs-build-system)
8834 (home-page "https://github.com/alphapapa/outorg")
8835 (synopsis "Org-style comment editing")
8836 (description "Outorg is for editing comment-sections of source-code
8837 files in temporary Org-mode buffers. It turns conventional
8838 literate-programming upside-down in that the default mode is the
8839 programming-mode, and special action has to be taken to switch to the
8840 text-mode (i.e. Org-mode).")
8841 (license license:gpl3+))))
8842
8843 (define-public emacs-outshine
8844 (let ((commit "5f1a6b70231d2811c522e4e5e8c89ff461b311d6"))
8845 (package
8846 (name "emacs-outshine")
8847 (version (git-version "2.0" "1" commit))
8848 (source (origin
8849 (method git-fetch)
8850 (uri (git-reference
8851 (url "https://github.com/alphapapa/outshine.git")
8852 (commit commit)))
8853 (file-name (git-file-name name version))
8854 (sha256
8855 (base32
8856 "1l9v1dfhgg7il11ifbhvcvrg3acfjk9sdxlc3lja1k54d7dp60jv"))))
8857 (build-system emacs-build-system)
8858 (propagated-inputs
8859 `(("emacs-outorg" ,emacs-outorg)))
8860 (home-page "https://github.com/alphapapa/outshine")
8861 (synopsis "Emacs outline with outshine")
8862 (description "Outshine attempts to bring the look and feel of
8863 @code{org-mode} to an Emacs outside of the Org major-mode. It is an extension
8864 of @code{outline-minor-mode} (@code{org-mode} itself derives from
8865 outline-mode), so there is no such thing like an outshine mode, only
8866 @code{outline-minor-mode} with outshine extensions loaded.")
8867 (license license:gpl3+))))
8868
8869 (define-public emacs-parsebib
8870 (package
8871 (name "emacs-parsebib")
8872 (version "2.3.1")
8873 (source
8874 (origin
8875 (method url-fetch)
8876 (uri (string-append "https://github.com/joostkremers/parsebib/archive/"
8877 version ".tar.gz"))
8878 (file-name (string-append name "-" version ".tar.gz"))
8879 (sha256
8880 (base32
8881 "0cxagnmc5ab6idmb26axpizhr4sqglkncc59768yavn3p04jyq63"))))
8882 (build-system emacs-build-system)
8883 (home-page "https://github.com/joostkremers/parsebib")
8884 (synopsis "Library for parsing bib files")
8885 (description
8886 "This package provides an Emacs library for parsing bib files.")
8887 (license license:gpl3+)))
8888
8889 (define-public emacs-biblio
8890 (package
8891 (name "emacs-biblio")
8892 (version "0.1")
8893 (source
8894 (origin
8895 (method url-fetch)
8896 (uri (string-append "https://github.com/cpitclaudel/biblio.el/archive/"
8897 version ".tar.gz"))
8898 (file-name (string-append name "-" version ".tar.gz"))
8899 (sha256
8900 (base32
8901 "109fvivsb4r0rbqljngqrmxqvbnbkqlivczx6brrvlr7ci625lhf"))))
8902 (build-system emacs-build-system)
8903 (propagated-inputs
8904 `(("emacs-seq" ,emacs-seq)
8905 ("emacs-dash" ,emacs-dash)
8906 ("emacs-let-alist" ,emacs-let-alist)))
8907 (home-page "https://github.com/cpitclaudel/biblio.el")
8908 (synopsis "Browse and import bibliographic references")
8909 (description "This package provides an extensible Emacs package for
8910 browsing and fetching references.
8911
8912 @file{biblio.el} makes it easy to browse and gather bibliographic references
8913 and publications from various sources, by keywords or by DOI. References are
8914 automatically fetched from well-curated sources, and formatted as BibTeX.")
8915 (license license:gpl3+)))
8916
8917 (define-public emacs-helm-bibtex
8918 (let ((commit "8ed898fb5a68f18e9bb9973832a5c1f8abcfc463")
8919 (revision "1"))
8920 (package
8921 (name "emacs-helm-bibtex")
8922 (version (string-append "2.0.0" "-" revision "."
8923 (string-take commit 7)))
8924 (source
8925 (origin
8926 (method git-fetch)
8927 (uri (git-reference
8928 (url "https://github.com/tmalsburg/helm-bibtex.git")
8929 (commit commit)))
8930 (file-name (string-append name "-" version "-checkout"))
8931 (sha256
8932 (base32
8933 "14lyx0vbqr97p3anzrsp7m3q0kqclyjcdwplpraim403fcklzbnz"))))
8934 (build-system emacs-build-system)
8935 (propagated-inputs
8936 `(("emacs-helm" ,emacs-helm)
8937 ("emacs-parsebib" ,emacs-parsebib)
8938 ("emacs-s" ,emacs-s)
8939 ("emacs-dash" ,emacs-dash)
8940 ("emacs-f" ,emacs-f)
8941 ("emacs-biblio" ,emacs-biblio)
8942 ("emacs-ivy" ,emacs-ivy)))
8943 (home-page "https://github.com/tmalsburg/helm-bibtex")
8944 (synopsis "Bibliography manager based on Helm")
8945 (description "This package provides bibliography manager for Emacs,
8946 based on Helm and the bibtex-completion backend.
8947
8948 Key features:
8949
8950 @itemize
8951 @item Quick access to your bibliography from within Emacs
8952 @item Powerful search capabilities
8953 @item Provides instant search results as you type
8954 @item Tightly integrated with LaTeX authoring, emails, Org mode, etc.
8955 @item Open the PDFs, URLs, or DOIs associated with an entry
8956 @item Insert LaTeX cite commands, Ebib links, or Pandoc citations,
8957 BibTeX entries, or plain text references at point, attach PDFs to emails
8958 @item Support for note taking
8959 @item Quick access to online bibliographic databases such as Pubmed,
8960 arXiv, Google Scholar, Library of Congress, etc.
8961 @item Imports BibTeX entries from CrossRef and other sources.
8962 @end itemize\n")
8963 (license license:gpl3+))))
8964
8965 (define-public emacs-ewmctrl
8966 (let ((commit "3d0217c4d6cdb5c308b6cb4293574f470d4faacf"))
8967 (package
8968 (name "emacs-ewmctrl")
8969 (version (git-version "0.0.1" "1" commit))
8970 (source
8971 (origin
8972 (method git-fetch)
8973 (uri (git-reference
8974 (url "https://github.com/flexibeast/ewmctrl.git")
8975 (commit commit)))
8976 (file-name (git-file-name name version))
8977 (sha256
8978 (base32
8979 "0ilwvx0qryv3v6xf0gxqwnfm6pf96gxap8h9g3f6z6lk9ff4n1wi"))))
8980 (build-system emacs-build-system)
8981 (arguments
8982 '(#:phases
8983 (modify-phases %standard-phases
8984 (add-after 'unpack 'patch-ewmctrl
8985 ;; This build phase makes sure ‘ewmctrl’ looks
8986 ;; for ‘wmctrl’ in the right place.
8987 (lambda _
8988 (let ((file "ewmctrl.el"))
8989 (chmod file #o644)
8990 (emacs-substitute-sexps file
8991 ("(defcustom ewmctrl-wmctrl-path" (which "wmctrl")))))))))
8992 (inputs
8993 `(("wmctrl" ,wmctrl)))
8994 (home-page "https://github.com/flexibeast/ewmctrl")
8995 (synopsis "Emacs interface to @code{wmctrl}")
8996 (description "@code{ewmctrl} provides an Emacs interface to
8997 @code{wmctrl} command-line window-management program.")
8998 (license license:gpl3+))))
8999
9000 (define-public emacs-helm-gtags
9001 (package
9002 (name "emacs-helm-gtags")
9003 (version "1.5.6")
9004 (source (origin
9005 (method url-fetch)
9006 (uri (string-append
9007 "https://github.com/syohex/emacs-helm-gtags/archive/"
9008 version ".tar.gz"))
9009 (file-name (string-append name "-" version ".tar.gz"))
9010 (sha256
9011 (base32
9012 "1a10snhg6nnnan6w9a7mcziy26vxbsr3c35i0gcarnkdp2yqng36"))))
9013 (build-system emacs-build-system)
9014 (propagated-inputs
9015 `(("emacs-helm" ,emacs-helm)))
9016 (home-page "https://github.com/syohex/emacs-helm-gtags")
9017 (synopsis "Emacs Helm interface to GNU Global")
9018 (description
9019 "@code{emacs-helm-gtags} provides a Emacs Helm interface to GNU Global.")
9020 (license license:gpl3+)))
9021
9022 (define-public emacs-list-utils
9023 (package
9024 (name "emacs-list-utils")
9025 (version "0.4.4")
9026 (source
9027 (origin
9028 (method url-fetch)
9029 (uri (string-append "https://github.com/rolandwalker/list-utils/archive/"
9030 "v" version ".tar.gz"))
9031 (file-name (string-append name "-" version ".tar.gz"))
9032 (sha256
9033 (base32
9034 "1xc1xh8c82h5gdjbgpdsdclgwxkxbb7h3x3a2bscpm41g8pnan4p"))))
9035 (build-system emacs-build-system)
9036 (home-page "https://github.com/rolandwalker/list-utils")
9037 (synopsis "List-manipulation utility functions")
9038 (description "This package provides a list manipulation library for Emacs.")
9039 (license license:gpl3+)))
9040
9041 (define-public emacs-move-text
9042 (package
9043 (name "emacs-move-text")
9044 (version "2.0.8")
9045 (source
9046 (origin
9047 (method url-fetch)
9048 (uri (string-append "https://github.com/emacsfodder/move-text/archive/"
9049 version ".tar.gz"))
9050 (file-name (string-append name "-" version ".tar.gz"))
9051 (sha256
9052 (base32
9053 "1sjfja9r25692pgcldgnjzkapzy970m14jh9l4pajysiqcdk72g0"))))
9054 (build-system emacs-build-system)
9055 (home-page "https://github.com/emacsfodder/move-text")
9056 (synopsis "Move current line or region with M-up or M-down")
9057 (description "This package provide functions to move the current line
9058 using @kbd{M-up} or @kbd{M-down} if a region is marked, it will move the
9059 region instead.")
9060 (license license:gpl3+)))
9061
9062 (define-public emacs-validate
9063 (package
9064 (name "emacs-validate")
9065 (version "1.0.5")
9066 (source (origin
9067 (method url-fetch)
9068 (uri (string-append "https://github.com/Malabarba/validate.el"
9069 "/archive/" version ".tar.gz"))
9070 (file-name (string-append name "-" version ".tar.gz"))
9071 (sha256
9072 (base32
9073 "125mbd111f1h1baw0z3fzm48y1bvaigljyzvvnqgrn0shxbj0khg"))))
9074 (build-system emacs-build-system)
9075 (home-page "https://github.com/Malabarba/validate.el")
9076 (synopsis "Emacs library for scheme validation")
9077 (description "This Emacs library provides two functions that perform
9078 schema validation.")
9079 (license license:gpl3+)))
9080
9081 (define-public emacs-rainbow-blocks
9082 (let ((commit "dd435d7bb34ff6f162a5f315df308b90b7e9f842"))
9083 (package
9084 (name "emacs-rainbow-blocks")
9085 (version (git-version "1.0.0" "1" commit))
9086 (source (origin
9087 (method git-fetch)
9088 (uri (git-reference
9089 (url "https://github.com/istib/rainbow-blocks.git")
9090 (commit commit)))
9091 (file-name (git-file-name name version))
9092 (sha256
9093 (base32
9094 "06yfb3i7wzvqrhkb61zib9xvpb5i00s4frizkzff66im05k0n795"))))
9095 (build-system emacs-build-system)
9096 (home-page "https://github.com/istib/rainbow-blocks")
9097 (synopsis "Highlight sexp blocks")
9098 (description "Rainbow-blocks is an Emacs mode that highlights blocks
9099 made of parentheses, brackets, and braces according to their depth. Each
9100 successive level is highlighted in a different color. This makes it easy to
9101 orient yourself in the code, and tell which statements are at a given level.")
9102 (license license:gpl3+))))
9103
9104 (define-public emacs-hierarchy
9105 (package
9106 (name "emacs-hierarchy")
9107 (version "0.7.0")
9108 (source
9109 (origin
9110 (method url-fetch)
9111 (uri (string-append
9112 "https://github.com/DamienCassou/hierarchy/archive/"
9113 "v" version ".tar.gz"))
9114 (file-name (string-append name "-" version ".tar.gz"))
9115 (sha256
9116 (base32
9117 "1a463v5zk6zis2p8cs4mads3iyxh266yahi6j6y0paggfl2yhkc8"))))
9118 (build-system emacs-build-system)
9119 (home-page "https://github.com/DamienCassou/hierarchy")
9120 (synopsis "Library to create and display hierarchy structures")
9121 (description "This package provides an Emacs library to create, query,
9122 navigate and display hierarchy structures.")
9123 (license license:gpl3+)))
9124
9125 (define-public emacs-tree-mode
9126 (let ((commit "b06078826d5875d74b0e7b7ac47b0d0917610534")
9127 (revision "1"))
9128 (package
9129 (name "emacs-tree-mode")
9130 (version (string-append "0.0.1" "-" revision "."
9131 (string-take commit 7)))
9132 (source
9133 (origin
9134 (method git-fetch)
9135 (uri (git-reference
9136 (url "https://github.com/emacsorphanage/tree-mode.git")
9137 (commit commit)))
9138 (file-name (string-append name "-" version "-checkout"))
9139 (sha256
9140 (base32
9141 "13bbdhdmqg4x9yghanhr8fsbsxbnypzxdxgicz31sjjm675kpnix"))))
9142 (build-system emacs-build-system)
9143 (home-page "https://github.com/emacsorphanage/tree-mode")
9144 (synopsis "Emacs mode to manage tree widgets")
9145 (description
9146 "This package provides an Emacs library to manage tree widgets.")
9147 (license license:gpl3+))))
9148
9149 (define-public emacs-md4rd
9150 (let ((commit "c55512c2f7680db2a1e73db6bdf93adecaf40fec")
9151 (revision "1"))
9152 (package
9153 (name "emacs-md4rd")
9154 (version (string-append "0.0.2" "-" revision "."
9155 (string-take commit 7)))
9156 (source (origin
9157 (method git-fetch)
9158 (uri (git-reference
9159 (url "https://github.com/ahungry/md4rd.git")
9160 (commit commit)))
9161 (file-name (string-append name "-" version "-checkout"))
9162 (sha256
9163 (base32
9164 "0mvv1mvsrpkrmikcpfqf2zbawnzgq33j6zjdrlv48mcw57xb2ak9"))))
9165 (propagated-inputs
9166 `(("emacs-hierarchy" ,emacs-hierarchy)
9167 ("emacs-request" ,emacs-request)
9168 ("emacs-dash" ,emacs-dash)
9169 ("emacs-s" ,emacs-s)
9170 ("emacs-tree-mode" ,emacs-tree-mode)))
9171 (build-system emacs-build-system)
9172 (home-page "https://github.com/ahungry/md4rd")
9173 (synopsis "Emacs Mode for Reddit")
9174 (description
9175 "This package allows to read Reddit from within Emacs interactively.")
9176 (license license:gpl3+))))
9177
9178 (define-public emacs-pulseaudio-control
9179 (let ((commit "1da372ec79f5d2fb901d1f9f0679fee8848fd011")
9180 (revision "2"))
9181 (package
9182 (name "emacs-pulseaudio-control")
9183 (version (git-version "0.0.1" revision commit))
9184 (source
9185 (origin
9186 (method git-fetch)
9187 (uri (git-reference
9188 (url "https://github.com/flexibeast/pulseaudio-control.git")
9189 (commit commit)))
9190 (file-name (git-file-name name version))
9191 (sha256
9192 (base32
9193 "02xrsms2pjqdk6327midi61i5vg2h9cq5jwaxv43ldm68wl7hi6k"))))
9194 (build-system emacs-build-system)
9195 (arguments
9196 '(#:phases (modify-phases %standard-phases
9197 (add-after 'unpack 'patch-file-name
9198 (lambda* (#:key inputs #:allow-other-keys)
9199 (let ((pulseaudio (assoc-ref inputs "pulseaudio")))
9200 (chmod "pulseaudio-control.el" #o600)
9201 (emacs-substitute-variables "pulseaudio-control.el"
9202 ("pulseaudio-control-pactl-path"
9203 (string-append pulseaudio "/bin/pactl")))
9204 #t))))))
9205 (inputs `(("pulseaudio" ,pulseaudio)))
9206 (home-page "https://github.com/flexibeast/pulseaudio-control")
9207 (synopsis "Control @code{pulseaudio} from Emacs")
9208 (description
9209 "This package allows to control @code{pulseaudio} from Emacs.")
9210 (license license:gpl3+))))
9211
9212 (define-public emacs-datetime
9213 (package
9214 (name "emacs-datetime")
9215 (version "0.3")
9216 (source (origin
9217 (method url-fetch)
9218 (uri (string-append
9219 "https://github.com/doublep/datetime/archive/"
9220 version ".tar.gz"))
9221 (file-name (string-append name "-" version ".tar.gz"))
9222 (sha256
9223 (base32
9224 "12wqpj67rjij2ki7nmw38rz3k2bsq68pk6zswknlcn9qhp1zd9w9"))))
9225 (build-system emacs-build-system)
9226 (home-page "https://github.com/doublep/datetime/")
9227 (synopsis "Library to work with dates in Emacs")
9228 (description "Parsing, formatting, matching and recoding
9229 timestamps and date-time format strings library for Emacs.")
9230 (license license:gpl3+)))
9231
9232 (define-public emacs-org-mind-map
9233 (let ((commit "9d6e262bedd94daf9de269f4d56de277275677cb")
9234 (revision "1"))
9235 (package
9236 (name "emacs-org-mind-map")
9237 (version (string-append "0.0.1" "-" revision "."
9238 (string-take commit 7)))
9239 (source
9240 (origin
9241 (method git-fetch)
9242 (uri (git-reference
9243 (url "https://github.com/theodorewiles/org-mind-map.git")
9244 (commit commit)))
9245 (file-name (string-append name "-" version "-checkout"))
9246 (sha256
9247 (base32
9248 "0jgkkgq7g64zckrmjib0hvz0qy3ynz5vz13qbmlpf096l3bb65wn"))))
9249 (propagated-inputs
9250 `(("emacs-dash" ,emacs-dash)))
9251 (build-system emacs-build-system)
9252 (home-page "https://github.com/theodorewiles/org-mind-map")
9253 (synopsis "Create Graphviz directed graphs from Org files")
9254 (description
9255 "This package creates Graphviz directed graphs from Org files.")
9256 (license license:gpl3+))))
9257
9258 (define-public emacs-npm-mode
9259 (package
9260 (name "emacs-npm-mode")
9261 (version "0.6.0")
9262 (source
9263 (origin
9264 (method url-fetch)
9265 (uri (string-append "https://github.com/mojochao/npm-mode/archive/"
9266 version ".tar.gz"))
9267 (file-name (string-append name "-" version ".tar.gz"))
9268 (sha256
9269 (base32
9270 "1kq1ww22dwf8c2i2b4z2ldbbmnihj65kb7n5vzvwkch9h4hxpqh5"))))
9271 (build-system emacs-build-system)
9272 (home-page "https://github.com/mojochao/npm-mode")
9273 (synopsis "Minor mode for working with @code{npm} projects")
9274 (description
9275 "@code{npm-mode} provides a minor mode to work with @code{npm} projects.")
9276 (license license:gpl3+)))
9277
9278 (define-public emacs-seq
9279 (package
9280 (name "emacs-seq")
9281 (version "2.20")
9282 (source
9283 (origin
9284 (method url-fetch)
9285 (uri (string-append "http://elpa.gnu.org/packages/seq-" version ".tar"))
9286 (sha256
9287 (base32
9288 "0vrpx6nnyjb0gsypknzagimlhvcvi5y1rcdkpxyqr42415zr8d0n"))))
9289 (build-system emacs-build-system)
9290 (home-page "http://elpa.gnu.org/packages/seq.html")
9291 (synopsis "Sequence manipulation functions")
9292 (description "Sequence-manipulation functions that complement basic
9293 functions provided by @file{subr.el}.")
9294 (license license:gpl3+)))
9295
9296 (define-public emacs-itail
9297 (let ((commit "6e43c20da03be3b9c6ece93b7dc3495975ec1888")
9298 (revision "1"))
9299 (package
9300 (name "emacs-itail")
9301 (version (string-append "0.0.1" "-" revision "."
9302 (string-take commit 7)))
9303 (source
9304 (origin
9305 (method git-fetch)
9306 (uri (git-reference
9307 (url "https://github.com/re5et/itail.git")
9308 (commit commit)))
9309 (file-name (string-append name "-" version "-checkout"))
9310 (sha256
9311 (base32
9312 "044nzxh1hq41faxw3lix0wy78vfz304pjcaa5a11dqfz7q3gx5cv"))))
9313 (build-system emacs-build-system)
9314 (home-page "https://github.com/re5et/itail")
9315 (synopsis "Interactive @code{tail} Emacs mode")
9316 (description "@code{itail} provides interactive @code{tail} mode
9317 that allows you to filter the tail with unix pipes and highlight the
9318 contents of the tailed file. Works locally or on remote files using
9319 tramp.")
9320 (license license:gpl3+))))
9321
9322 (define-public emacs-loop
9323 (package
9324 (name "emacs-loop")
9325 (version "1.3")
9326 (source
9327 (origin
9328 (method url-fetch)
9329 (uri (string-append "https://github.com/Wilfred/loop.el/archive/"
9330 version ".tar.gz"))
9331 (file-name (string-append name "-" version ".tar.gz"))
9332 (sha256
9333 (base32
9334 "1z3rhh3zyjabz36410yz0lp4a0qwwj0387as662wvx3z9y54jia9"))))
9335 (build-system emacs-build-system)
9336 (home-page "https://github.com/Wilfred/loop.el")
9337 (synopsis "Imperative loop structures for Emacs")
9338 (description "Loop structures familiar to users of other languages. This
9339 library adds a selection of popular loop structures as well as break and
9340 continue.")
9341 (license license:gpl3+)))
9342
9343 (define-public emacs-elisp-refs
9344 (package
9345 (name "emacs-elisp-refs")
9346 (version "1.3")
9347 (source
9348 (origin
9349 (method url-fetch)
9350 (uri (string-append "https://github.com/Wilfred/elisp-refs/archive/"
9351 version ".tar.gz"))
9352 (file-name (string-append name "-" version ".tar.gz"))
9353 (sha256
9354 (base32
9355 "02nzcn3v14n7mp7q32j5r4wdlpsw3zixzh6cf0cdyarfir6dly3p"))))
9356 (build-system emacs-build-system)
9357 (propagated-inputs
9358 `(("emacs-dash" ,emacs-dash)
9359 ("emacs-f" ,emacs-f)
9360 ("emacs-list-utils" ,emacs-list-utils)
9361 ("emacs-loop" ,emacs-loop)
9362 ("emacs-s" ,emacs-s)
9363 ("emacs-shut-up" ,emacs-shut-up)))
9364 (home-page "https://github.com/Wilfred/elisp-refs")
9365 (synopsis "Find callers of elisp functions or macros")
9366 (description "Find references to functions, macros or variables. Unlike a
9367 dumb text search, @code{elisp-refs} actually parses the code, so it's never
9368 confused by comments or @code{foo-bar} matching @code{foo}.")
9369 (license license:gpl3+)))
9370
9371 (define-public emacs-crux
9372 (let ((commit "4f5c8fefd5a6aa52e128c4a0401cc86410d6ac8f")
9373 (revision "1"))
9374 (package
9375 (name "emacs-crux")
9376 (version (string-append "0.3.0" "-" revision "."
9377 (string-take commit 7)))
9378 (source
9379 (origin
9380 (method git-fetch)
9381 (uri (git-reference
9382 (url "https://github.com/bbatsov/crux.git")
9383 (commit commit)))
9384 (file-name (string-append name "-" version "-checkout"))
9385 (sha256
9386 (base32
9387 "1fdxvv25cs01sg6fmvmzxpzvs50i6v8n2jya60lbavxqqhi0sbxd"))))
9388 (build-system emacs-build-system)
9389 (home-page "https://github.com/bbatsov/crux")
9390 (synopsis "Collection of useful functions for Emacs")
9391 (description
9392 "@code{crux} provides a collection of useful functions for Emacs.")
9393 (license license:gpl3+))))
9394
9395 (define-public emacs-edit-server
9396 (package
9397 (name "emacs-edit-server")
9398 (version "1.13")
9399 (source
9400 (origin
9401 (method url-fetch)
9402 (uri (string-append "https://github.com/stsquad/emacs_chrome/archive/"
9403 "v" version ".tar.gz"))
9404 (file-name (string-append name "-" version ".tar.gz"))
9405 (sha256
9406 (base32
9407 "1r92kqggslqasza718z4ka883mqfbnibdm43f0j9gaipk0msm2wf"))))
9408 (build-system emacs-build-system)
9409 (arguments
9410 `(#:phases
9411 (modify-phases %standard-phases
9412 (add-after 'unpack 'chdir-elisp
9413 ;; Elisp directory is not in root of the source.
9414 (lambda _
9415 (chdir "servers"))))))
9416 (home-page "https://github.com/stsquad/emacs_chrome")
9417 (synopsis "Server that responds to edit requests from Chromium")
9418 (description
9419 "This package provides an edit server to respond to requests from Emacs.")
9420 (license license:gpl3+)))
9421
9422 (define-public emacs-m-buffer-el
9423 (package
9424 (name "emacs-m-buffer-el")
9425 (version "0.15")
9426 (source
9427 (origin
9428 (method url-fetch)
9429 (uri (string-append "https://github.com/phillord/m-buffer-el"
9430 "/archive/" "v" version ".tar.gz"))
9431 (file-name (string-append name "-" version ".tar.gz"))
9432 (sha256
9433 (base32
9434 "17vdcc8q37q9db98jyww1c0ivinmwfcw4l04zccfacalra63a214"))))
9435 (arguments
9436 `(#:phases
9437 (modify-phases %standard-phases
9438 (add-before 'install 'check
9439 (lambda* (#:key inputs #:allow-other-keys)
9440 (invoke "emacs" "--batch" "-L" "."
9441 "-l" "test/m-buffer-test.el"
9442 "-l" "test/m-buffer-at-test.el"
9443 "-f" "ert-run-tests-batch-and-exit"))))))
9444 (build-system emacs-build-system)
9445 (home-page "https://github.com/phillord/m-buffer-el")
9446 (synopsis "List oriented buffer operations for Emacs")
9447 (description "@code{m-buffer} provides a set of list-orientated functions
9448 for operating over the contents of Emacs buffers.")
9449 (license license:gpl3+)))
9450
9451 (define-public emacs-let-alist
9452 (package
9453 (name "emacs-let-alist")
9454 (version "1.0.5")
9455 (source
9456 (origin
9457 (method url-fetch)
9458 (uri (string-append
9459 "https://elpa.gnu.org/packages/let-alist-" version ".el"))
9460 (sha256
9461 (base32
9462 "0r7b9jni50la1m79kklml11syg8d2fmdlr83pv005sv1wh02jszw"))))
9463 (build-system emacs-build-system)
9464 (home-page "https://elpa.gnu.org/packages/let-alist.html")
9465 (synopsis "Easily let-bind values of an assoc-list by their names")
9466 (description "This package offers a single macro, @code{let-alist}. This
9467 macro takes a first argument (whose value must be an alist) and a body.")
9468 (license license:gpl3+)))
9469
9470 (define-public emacs-esup
9471 (let ((commit "a589005a9a888537deef94d6fe38a9b8790c97c7")
9472 (revision "1"))
9473 (package
9474 (name "emacs-esup")
9475 (version (string-append "0.6" "-" revision "."
9476 (string-take commit 7)))
9477 (source
9478 (origin
9479 (method git-fetch)
9480 (uri (git-reference
9481 (url "https://github.com/jschaf/esup.git")
9482 (commit commit)))
9483 (file-name (string-append name "-" version "-checkout"))
9484 (sha256
9485 (base32
9486 "04lxmd0h7mfjjl0qghrycgff0vcv950j1wqv0dbkr61jxp64n5fv"))))
9487 ;; TODO: Add tests
9488 (build-system emacs-build-system)
9489 (home-page "https://github.com/jschaf/esup")
9490 (synopsis "Emacs start up profiler")
9491 (description "Benchmark Emacs Startup time without ever leaving
9492 your Emacs.")
9493 (license license:gpl2+))))
9494
9495 (define-public emacs-sourcemap
9496 (package
9497 (name "emacs-sourcemap")
9498 (version "0.03")
9499 (source
9500 (origin
9501 (method url-fetch)
9502 (uri (string-append "https://github.com/syohex/emacs-sourcemap/archive/"
9503 version ".tar.gz"))
9504 (file-name (string-append name "-" version ".tar.gz"))
9505 (sha256
9506 (base32
9507 "0bmd5l3cx2iyl7vxn84xdhs80b07kpdpfwki28lh5d0kmm5qs6m6"))))
9508 (build-system emacs-build-system)
9509 (home-page "https://github.com/syohex/emacs-sourcemap")
9510 (synopsis "Sourcemap parser")
9511 (description "Sourcemap parser")
9512 (license license:gpl3+)))
9513
9514 (define-public emacs-macrostep
9515 (let ((commit "424e3734a1ee526a1bd7b5c3cd1d3ef19d184267"))
9516 (package
9517 (name "emacs-macrostep")
9518 (version (git-version "0.9" "1" commit))
9519 (source (origin
9520 (method git-fetch)
9521 (uri (git-reference
9522 (url "https://github.com/joddie/macrostep.git")
9523 (commit commit)))
9524 (file-name (string-append name "-" version "-checkout"))
9525 (sha256
9526 (base32
9527 "1fm40mxdn289cyzgw992223dgrjmwxn4q8svyyxfaxjrpb38jhjz"))))
9528 (build-system emacs-build-system)
9529 (arguments
9530 '(#:phases
9531 (modify-phases %standard-phases
9532 (add-before 'check 'remove-test
9533 ;; Fails because of requirement ‘/bin/sh’.
9534 (lambda _
9535 (let ((file "macrostep-test.el"))
9536 (chmod file #o644)
9537 (emacs-batch-edit-file file
9538 `(progn (progn (goto-char (point-min))
9539 (re-search-forward
9540 "(ert-deftest macrostep-expand-c-macros")
9541 (beginning-of-line)
9542 (kill-sexp))
9543 (basic-save-buffer))))))
9544 (add-before 'install 'check
9545 (lambda _
9546 (invoke "emacs" "--batch" "-L" "."
9547 "-l" "macrostep-test.el"
9548 "-f" "ert-run-tests-batch-and-exit"))))))
9549 (home-page "https://github.com/joddie/macrostep")
9550 (synopsis "Interactive macro-expander for Emacs")
9551 (description "@code{macrostep} is an Emacs minor mode for interactively
9552 stepping through the expansion of macros in Emacs Lisp source code. It lets
9553 you see exactly what happens at each step of the expansion process by
9554 pretty-printing the expanded forms inline in the source buffer, which is
9555 temporarily read-only while macro expansions are visible. You can expand and
9556 collapse macro forms one step at a time, and evaluate or instrument the
9557 expansions for debugging with Edebug as normal (but see “Bugs and known
9558 limitations”, below). Single-stepping through the expansion is particularly
9559 useful for debugging macros that expand into another macro form. These can be
9560 difficult to debug with Emacs’ built-in macroexpand, which continues expansion
9561 until the top-level form is no longer a macro call.")
9562 (license license:gpl3+))))
9563
9564 (define-public emacs-parent-mode
9565 (package
9566 (name "emacs-parent-mode")
9567 (version "2.3")
9568 (source
9569 (origin
9570 (method url-fetch)
9571 (uri (string-append "https://github.com/Fanael/parent-mode/archive/"
9572 version ".tar.gz"))
9573 (file-name (string-append name "-" version ".tar.gz"))
9574 (sha256
9575 (base32
9576 "0gxbl5s1w96v6v55b7aaansgw4sxhzfx9nrsvpk3pfhsibs6yqjd"))))
9577 (build-system emacs-build-system)
9578 (home-page "https://github.com/Fanael/parent-mode")
9579 (synopsis "Get major mode's parent modes")
9580 (description "Get major mode's parent modes")
9581 (license license:gpl3+)))
9582
9583 (define-public emacs-lacarte
9584 (package
9585 (name "emacs-lacarte")
9586 (version "0.1")
9587 (source (origin
9588 (method url-fetch)
9589 (uri "https://www.emacswiki.org/emacs/download/lacarte.el")
9590 (sha256
9591 (base32
9592 "1sbmk37ljq5j7dsw5c37sbxvlfgdqswh7bi4dknyjzfxlq50f4am"))))
9593 (build-system emacs-build-system)
9594 (home-page "https://www.emacswiki.org/emacs/lacarte.el")
9595 (synopsis "Execute menu items as commands, with completion")
9596 (description "Execute menu items as commands, with completion.")
9597 (license license:gpl3)))
9598
9599 (define-public emacs-company-lua
9600 (let ((commit "0be8122f3adf57ad27953bf4b03545d6298d3da4"))
9601 (package
9602 (name "emacs-company-lua")
9603 (version (git-version "0.1" "1" commit))
9604 (source
9605 (origin
9606 (method git-fetch)
9607 (uri (git-reference
9608 (url "https://github.com/ptrv/company-lua.git")
9609 (commit commit)))
9610 (file-name (git-file-name name version))
9611 (sha256
9612 (base32
9613 "1d9i165apgmwns7b2fd5wcpjpkah3dyj20v5sb8ynvz6qhhr5r9c"))))
9614 (build-system emacs-build-system)
9615 (propagated-inputs
9616 `(("emacs-company" ,emacs-company)
9617 ("emacs-s" ,emacs-s)
9618 ("emacs-f" ,emacs-f)
9619 ("emacs-lua-mode" ,emacs-lua-mode)))
9620 (home-page "https://github.com/ptrv/company-lua")
9621 (synopsis "Company backend for Lua")
9622 (description
9623 "This package provides Company backend for Lua programming language.")
9624 (license license:gpl3+))))
9625
9626 (define-public emacs-beginend
9627 (package
9628 (name "emacs-beginend")
9629 (version "2.0.0")
9630 (source
9631 (origin
9632 (method url-fetch)
9633 (uri (string-append "https://github.com/DamienCassou/beginend/archive/"
9634 "v" version ".tar.gz"))
9635 (file-name (string-append name "-" version ".tar.gz"))
9636 (sha256
9637 (base32
9638 "0z4rbwffh9vxfvcrlvym4p73z7gf72q0b5iv33llbpcpbijknnrq"))))
9639 ;; TODO: Run tests.
9640 (build-system emacs-build-system)
9641 (inputs
9642 `(("emacs-undercover" ,emacs-undercover))) ; For tests.
9643 (home-page "https://github.com/DamienCassou/beginend")
9644 (synopsis "Redefine @code{M-<} and @code{M->} for Emacs modes")
9645 (description "@code{beginend} redefines @code{M-<} and @code{M->}
9646 keybindings for Emacs modes so that point moves to meaningful
9647 locations. Redefined keys are still accessible by pressing the same
9648 key again.")
9649 (license license:gpl3+)))
9650
9651 (define-public emacs-mbsync
9652 (let ((commit "42077e83ae2db778ce0f8e22f8357b40355526b3")
9653 (revision "1"))
9654 (package
9655 (name "emacs-mbsync")
9656 (version (string-append "0.0.1" "-" revision "."
9657 (string-take commit 7)))
9658 (source
9659 (origin
9660 (method git-fetch)
9661 (uri (git-reference
9662 (url "https://github.com/dimitri/mbsync-el.git")
9663 (commit commit)))
9664 (file-name (string-append name "-" version "-checkout"))
9665 (sha256
9666 (base32
9667 "0yj93y2mpxlir8x73znlg1slxlv4blm1vjv5h2w3j8lxg8bxvmn6"))))
9668 (build-system emacs-build-system)
9669 (home-page "https://github.com/dimitri/mbsync-el")
9670 (synopsis "Interface to mbsync for Emacs")
9671 (description "This package allows to call the @code{mbsync} from
9672 within Emacs.")
9673 (license license:gpl3+))))
9674
9675 (define-public emacs-ibuffer-projectile
9676 (let ((commit "c18ac540ee46cb759fc5df18747f6e8d23563011")
9677 (revision "1"))
9678 (package
9679 (name "emacs-ibuffer-projectile")
9680 (version (string-append "0.2" "-" revision "."
9681 (string-take commit 7)))
9682 (source
9683 (origin
9684 (method git-fetch)
9685 (uri (git-reference
9686 (url "https://github.com/purcell/ibuffer-projectile.git")
9687 (commit commit)))
9688 (file-name (string-append name "-" version "-checkout"))
9689 (sha256
9690 (base32
9691 "1nd26cwwdpnwj0g4w393rd59klpyr6wqrnyr6scmwb5d06bsm44n"))))
9692 (build-system emacs-build-system)
9693 (propagated-inputs
9694 `(("emacs-projectile" ,emacs-projectile)))
9695 (home-page "https://github.com/purcell/ibuffer-projectile")
9696 (synopsis "Group ibuffer's list by projectile root")
9697 (description "Adds functionality to Emacs @code{ibuffer} for
9698 grouping buffers by their projectile root directory.")
9699 (license license:gpl3+))))
9700
9701 (define-public emacs-helm-mode-manager
9702 (package
9703 (name "emacs-helm-mode-manager")
9704 (version "1.0.0")
9705 (source
9706 (origin
9707 (method url-fetch)
9708 (uri (string-append "https://github.com/istib/helm-mode-manager/"
9709 "archive/" version ".tar.gz"))
9710 (file-name (string-append name "-" version ".tar.gz"))
9711 (sha256
9712 (base32
9713 "0wllj321z16hgrx0ddwzk5wz4mnnx5am7w5nclqclfc5dfdn92wm"))))
9714 (build-system emacs-build-system)
9715 (propagated-inputs
9716 `(("emacs-helm" ,emacs-helm)))
9717 (home-page "https://github.com/istib/helm-mode-manager/")
9718 (synopsis "Switch and toggle Emacs major and minor modes using Helm")
9719 (description "This package provides a Helm interface for toggling Emacs
9720 major or minor mode.
9721
9722 @itemize
9723 @item @code{helm-switch-major-mode} list of all major modes
9724 @item @code{helm-enable-minor-mode} list of all inactive minor modes
9725 @item @code{helm-disable-minor-mode} list of all ACTIVE minor modes
9726 @end itemize\n
9727
9728 Hitting @code{RET} enables the mode, @code{C-z} shows the mode
9729 documentation.")
9730 (license license:gpl3+)))
9731
9732 (define-public emacs-hy-mode
9733 (package
9734 (name "emacs-hy-mode")
9735 (version "1.0.3")
9736 (source
9737 (origin
9738 (method url-fetch)
9739 (uri (string-append "https://github.com/hylang/hy-mode/archive/"
9740 "v" version ".tar.gz"))
9741 (file-name (string-append name "-" version ".tar.gz"))
9742 (sha256
9743 (base32
9744 "0b4pvbr2hf77bq2vsyfsv653q0dab7qzq85wc7kdziw7687jdf2z"))))
9745 (build-system emacs-build-system)
9746 (propagated-inputs
9747 `(("emacs-dash" ,emacs-dash)
9748 ("emacs-s" ,emacs-s)))
9749 (home-page "https://github.com/hylang/hy-mode")
9750 (synopsis "Major mode for Hylang")
9751 (description "This package provides a major mode for Hylang.")
9752 (license license:gpl3+)))
9753
9754 (define-public emacs-web-beautify
9755 (package
9756 (name "emacs-web-beautify")
9757 (version "0.3.2")
9758 (source
9759 (origin
9760 (method url-fetch)
9761 (uri (string-append "https://github.com/yasuyk/web-beautify/archive/"
9762 version ".tar.gz"))
9763 (file-name (string-append name "-" version ".tar.gz"))
9764 (sha256
9765 (base32
9766 "1j57hwid74id4swkx2g0iljfawx0k9c7qjrwqc0mv657x9p78hcs"))))
9767 (build-system emacs-build-system)
9768 (home-page "https://github.com/yasuyk/web-beautify")
9769 (synopsis "Format HTML, CSS and JavaScript, JSON")
9770 (description "This package provides an Emacs functions to format HTML,
9771 CSS, JavaScript, JSON.")
9772 (license license:gpl3+)))
9773
9774 (define-public emacs-helm-shell-history
9775 (let ((commit "110d3c35c52fe4b89b29e79ea4c8626bce7266a1"))
9776 (package
9777 (name "emacs-helm-shell-history")
9778 (version (git-version "0.1" "1" commit))
9779 (source
9780 (origin
9781 (method git-fetch)
9782 (uri (git-reference
9783 (url "https://github.com/yuutayamada/helm-shell-history.git")
9784 (commit commit)))
9785 (file-name (git-file-name name version))
9786 (sha256
9787 (base32
9788 "18fkjcz69g4dyaxhf9j8svr5x6dhsdnglddwisis8hdn504scpfj"))))
9789 (build-system emacs-build-system)
9790 (arguments
9791 '(#:phases
9792 (modify-phases %standard-phases
9793 (add-before 'check 'patch-helm-shell-history-file
9794 (lambda _
9795 (let ((file "helm-shell-history.el"))
9796 (chmod file #o644)
9797 (emacs-substitute-sexps file
9798 ("(defvar helm-shell-history-file"
9799 `(expand-file-name "~/.bash_history"))))
9800 #t)))))
9801 (propagated-inputs
9802 `(("emacs-helm" ,emacs-helm)))
9803 (home-page "https://github.com/yuutayamada/helm-shell-history")
9804 (synopsis "Find shell history with Emacs Helm")
9805 (description "This package provides an Emacs Helm interface to search
9806 throw a shell history.")
9807 (license license:gpl3+))))
9808
9809 (define-public emacs-discover-my-major
9810 (package
9811 (name "emacs-discover-my-major")
9812 (version "1.0")
9813 (source
9814 (origin
9815 (method url-fetch)
9816 (uri
9817 (string-append "https://github.com/steckerhalter/discover-my-major"
9818 "/archive/" version ".tar.gz"))
9819 (file-name (string-append name "-" version ".tar.gz"))
9820 (sha256
9821 (base32
9822 "0nah41f92rrl2l405kpqr6iaks11jyclgl4z7ilfymbr4ifmsiyl"))))
9823 (build-system emacs-build-system)
9824 (propagated-inputs
9825 `(("emacs-makey" ,emacs-makey)))
9826 (home-page "https://github.com/steckerhalter/discover-my-major")
9827 (synopsis "Discover key bindings for the current Emacs major mode")
9828 (description "This package provides allows to discover key bindings and
9829 their meaning for the current Emacs major-mode.")
9830 (license license:gpl3+)))
9831
9832 (define-public emacs-org-ref
9833 (let ((commit "8c9b5d7efb9f0c1ad5186b8203bdd017f4249129")
9834 (revision "1"))
9835 (package
9836 (name "emacs-org-ref")
9837 (version (string-append "1.1.1" "-" revision "."
9838 (string-take commit 7)))
9839 (source
9840 (origin
9841 (method git-fetch)
9842 (uri (git-reference
9843 (url "https://github.com/jkitchin/org-ref.git")
9844 (commit commit)))
9845 (file-name (string-append name "-" version "-checkout"))
9846 (sha256
9847 (base32
9848 "1rxz0bjdsayk0slv23i07d9xhj2m7s4hsc81wc2d1cs52dkr5zmz"))))
9849 (build-system emacs-build-system)
9850 (propagated-inputs
9851 `(("emacs-dash" ,emacs-dash)
9852 ("emacs-helm" ,emacs-helm)
9853 ("emacs-helm-bibtex" ,emacs-helm-bibtex)
9854 ("emacs-ivy" ,emacs-ivy)
9855 ("emacs-hydra" ,emacs-hydra)
9856 ("emacs-key-chord" ,emacs-key-chord)
9857 ("emacs-s" ,emacs-s)
9858 ("emacs-f" ,emacs-f)
9859 ("emacs-pdf-tools" ,emacs-pdf-tools)))
9860 (home-page "https://github.com/jkitchin/org-ref")
9861 (synopsis "Citations, cross-references and bibliographies in org-mode")
9862 (description
9863 "Lisp code to setup bibliography, cite, ref and label org-mode links.
9864 Also sets up reftex and helm for org-mode citations. The links are
9865 clickable and do things that are useful.
9866
9867 The default setup uses helm-bibtex.
9868
9869 You should really read org-ref.org in this package for details.")
9870 (license license:gpl3+))))
9871
9872 (define-public emacs-org-reveal
9873 (package
9874 (name "emacs-org-reveal")
9875 ;; There are no proper tag, so we use the latest commit of the stable
9876 ;; branch, as does MELPA.
9877 (version "20161027.926")
9878 (source (origin
9879 (method git-fetch)
9880 (uri (git-reference
9881 (url "https://github.com/yjwen/org-reveal.git")
9882 (commit "001567cc12d50ba07612edd1718b86a12e8c2547")))
9883 (file-name (string-append name "-" version "-checkout"))
9884 (sha256
9885 (base32
9886 "18rma8smjrskbjyna076zhvx79zs5r5vinb537h8mw13pfxd6cm8"))))
9887 (build-system emacs-build-system)
9888 (home-page "https://github.com/yjwen/org-reveal")
9889 (synopsis "Org and Reveal.js powered HTML presentation tool")
9890 (description "Org-Reveal is a command@{org-mode} extension that allows to
9891 create beautiful presentations (slides) with 3D effects from simple but
9892 powerful Org contents.")
9893 (license license:gpl3+)))
9894
9895 (define-public emacs-add-hooks
9896 (package
9897 (name "emacs-add-hooks")
9898 (version "3.1.1")
9899 (source (origin
9900 (method url-fetch)
9901 (uri (string-append
9902 "https://github.com/nickmccurdy/add-hooks/archive/"
9903 version ".tar.gz"))
9904 (file-name (string-append name "-" version ".tar.gz"))
9905 (sha256
9906 (base32
9907 "03a28gb3298g7pc2qji9hi44p4d99ljp5mpi9cmg42ldv8fl6549"))))
9908 (build-system emacs-build-system)
9909 (home-page "https://github.com/nickmccurdy/add-hooks/")
9910 (synopsis "Emacs function for setting multiple hooks")
9911 (description "This package provides a @code{add-hooks} function tidies up
9912 duplicate hook and function names further into a single declarative call.")
9913 (license license:gpl3+)))
9914
9915 (define-public emacs-fancy-narrow
9916 (package
9917 (name "emacs-fancy-narrow")
9918 (version "0.9.5")
9919 (source
9920 (origin
9921 (method url-fetch)
9922 (uri (string-append "https://github.com/Malabarba/fancy-narrow/archive/"
9923 version ".tar.gz"))
9924 (file-name (string-append name "-" version ".tar.gz"))
9925 (sha256
9926 (base32
9927 "0rf2rnzg82pdqch041yyx3f9ddixffkk9s2ydzg8hwy66sg3385n"))))
9928 (build-system emacs-build-system)
9929 (home-page "https://github.com/Malabarba/fancy-narrow/releases")
9930 (synopsis "Imitate @code{narrow-to-region} with more eye candy")
9931 (description
9932 "Unlike @code{narrow-to-region}, which completely hides text outside
9933 the narrowed region, this package simply de-emphasizes the text, makes it
9934 read-only, and makes it unreachable. This leads to a much more natural
9935 feeling where the region stays static (instead of being brutally moved to a
9936 blank slate) and is clearly highlighted with respect to the rest of the
9937 buffer.")
9938 (license license:gpl2+)))
9939
9940 (define-public emacs-know-your-http-well
9941 (package
9942 (name "emacs-know-your-http-well")
9943 (version "0.5.0")
9944 (source
9945 (origin
9946 (method url-fetch)
9947 (uri (string-append
9948 "https://github.com/for-GET/know-your-http-well/archive/"
9949 "v" version ".tar.gz"))
9950 (file-name (string-append name "-" version ".tar.gz"))
9951 (sha256
9952 (base32
9953 "1y3kwz88awcgwaivlswq0q4g2i02762r23lpwg61bfqy5lrjjqnj"))))
9954 (arguments
9955 `(#:phases
9956 (modify-phases %standard-phases
9957 (add-after 'unpack 'install-json-files
9958 (lambda* (#:key outputs #:allow-other-keys)
9959 (for-each (lambda (directory)
9960 (copy-recursively directory
9961 (string-append
9962 (assoc-ref outputs "out")
9963 directory)))
9964 '("js" "json"))))
9965 (add-after 'unpack 'chdir-elisp
9966 ;; Elisp directory is not in root of the source.
9967 (lambda _
9968 (chdir "emacs"))))))
9969 (build-system emacs-build-system)
9970 (home-page "https://github.com/for-GET/know-your-http-well")
9971 (synopsis "Meaning of HTTP headers codes")
9972 (description "Meaning of HTTP headers codes.")
9973 (license license:gpl3+)))
9974
9975 (define-public emacs-navi-mode
9976 (let ((commit "c1d38e8237f4e14af020a0b7d4f118ea198ab674"))
9977 (package
9978 (name "emacs-navi-mode")
9979 (version (git-version "2.0" "1" commit))
9980 (source
9981 (origin
9982 (method git-fetch)
9983 (uri (git-reference
9984 (url "https://github.com/alphapapa/navi.git")
9985 (commit commit)))
9986 (file-name (git-file-name name version))
9987 (sha256
9988 (base32
9989 "0jj5spk14hgb7zb1cd2n8whcw4k1kd5zb6llwj96v178yaws7l8k"))))
9990 (build-system emacs-build-system)
9991 (propagated-inputs
9992 `(("emacs-outshine" ,emacs-outshine)
9993 ("emacs-outorg" ,emacs-outorg)))
9994 (home-page "https://github.com/alphapapa/navi")
9995 (synopsis "Emacs major-mode for easy buffer-navigation")
9996 (description
9997 "This package provides an Emacs major-mode for easy buffer-navigation")
9998 (license license:gpl3+))))
9999
10000 (define-public emacs-download-region
10001 (let ((commit "eb9e557529a73b4cfc8281c70dd0d95db333fffa")
10002 (revision "1"))
10003 (package
10004 (name "emacs-download-region")
10005 (version (string-append "0.0.1" "-" revision "."
10006 (string-take commit 7)))
10007 (source
10008 (origin
10009 (method git-fetch)
10010 (uri (git-reference
10011 (url "https://github.com/zk-phi/download-region.git")
10012 (commit commit)))
10013 (file-name (string-append name "-" version "-checkout"))
10014 (sha256
10015 (base32
10016 "0v52djg39b6k2snizd9x0qc009ws5y0ywqsfwhqgcbs5ymzh7dsc"))))
10017 (build-system emacs-build-system)
10018 (home-page "https://github.com/zk-phi/download-region")
10019 (synopsis "In buffer download manager for Emacs")
10020 (description "@code{download-region} provides in buffer
10021 downloading manager for Emacs.")
10022 (license license:gpl3+))))
10023
10024 (define-public emacs-helpful
10025 (package
10026 (name "emacs-helpful")
10027 (version "0.15")
10028 (source (origin
10029 (method url-fetch)
10030 (uri (string-append
10031 "https://github.com/Wilfred/helpful/archive/"
10032 version ".tar.gz"))
10033 (file-name (string-append name "-" version ".tar.gz"))
10034 (sha256
10035 (base32
10036 "1xmvhphzb4hbg647dz4lafy6hd19b7bk3lxni6irqrzdsrclhzn6"))))
10037 (build-system emacs-build-system)
10038 (propagated-inputs
10039 `(("emacs-elisp-refs" ,emacs-elisp-refs)))
10040 (home-page "https://github.com/Wilfred/helpful")
10041 (synopsis "More contextual information in Emacs help")
10042 (description "@code{helpful} is an alternative to the built-in Emacs help
10043 that provides much more contextual information.
10044
10045 @itemize
10046 @item Show the source code for interactively defined functions (unlike the
10047 built-in Help).
10048 @item Fall back to the raw sexp if no source is available.
10049 @item Show where a function is being called.
10050 @item Docstrings will Highlight the summary (the first sentence), include
10051 cross-references, hide superfluous puncuation.
10052 @item Show you the properties that have been applied to the current
10053 symbol. This provides visibility of features like edebug or byte-code
10054 optimisation.
10055 @item Provide a separate @code{helpful-command} function to view interactive
10056 functions.
10057 @item Display any keybindings that apply to interactive functions.
10058 @item Trace, disassemble functions from inside Helpful. This is discoverable
10059 and doesn't require memorisation of commands.
10060 @end itemize\n")
10061 (license license:gpl3+)))
10062
10063 (define-public emacs-logview
10064 (package
10065 (name "emacs-logview")
10066 (version "0.9")
10067 (source (origin
10068 (method url-fetch)
10069 (uri (string-append
10070 "https://github.com/doublep/logview/archive/"
10071 version ".tar.gz"))
10072 (file-name (string-append name "-" version ".tar.gz"))
10073 (sha256
10074 (base32
10075 "1vd11ppm46ldqsiwhqgw91p34gbjh1y82r9mxcn9r2gj65nvhxcp"))))
10076 (propagated-inputs
10077 `(("emacs-datetime" ,emacs-datetime)))
10078 (build-system emacs-build-system)
10079 (home-page "https://github.com/doublep/logview/")
10080 (synopsis "Emacs mode for viewing log files")
10081 (description "@code{logview} provides an Emacs mode to view log files.")
10082 (license license:gpl3+)))
10083
10084 (define-public emacs-suggest
10085 (package
10086 (name "emacs-suggest")
10087 (version "0.4")
10088 (source
10089 (origin
10090 (method url-fetch)
10091 (uri (string-append "https://github.com/Wilfred/suggest.el/archive/"
10092 version ".tar.gz"))
10093 (file-name (string-append name "-" version ".tar.gz"))
10094 (sha256
10095 (base32
10096 "1760fm3j19w8xxcawq6s859h86q1rdg69pg9yz48n76kwfk3vlgp"))))
10097 (build-system emacs-build-system)
10098 (propagated-inputs
10099 `(("emacs-loop" ,emacs-loop)
10100 ("emacs-dash" ,emacs-dash)
10101 ("emacs-s" ,emacs-s)
10102 ("emacs-f" ,emacs-f)))
10103 (home-page "https://github.com/Wilfred/suggest.el")
10104 (synopsis "Suggest Elisp functions that give the output requested")
10105 (description "Suggest.el will find functions that give the output
10106 requested. It's a great way of exploring list, string and arithmetic
10107 functions.")
10108 (license license:gpl3+)))
10109
10110 (define-public emacs-benchmark-init
10111 (package
10112 (name "emacs-benchmark-init")
10113 (version "1.0")
10114 (source (origin
10115 (method url-fetch)
10116 (uri (string-append
10117 "https://github.com/dholm/benchmark-init-el/archive/"
10118 version ".tar.gz"))
10119 (file-name (string-append name "-" version ".tar.gz"))
10120 (sha256
10121 (base32
10122 "0szyqr4nncwz4vd5gww1vz31kf9r2lx25p4d0d09pm35974x53kz"))))
10123 (build-system emacs-build-system)
10124 (home-page "https://github.com/dholm/benchmark-init-el")
10125 (synopsis "Benchmark Emacs @code{require} and @code{load} calls")
10126 (description "@code{benchmark-init} provides a way to keep track of where
10127 time is being spent during Emacs startup in order to optimize startup time.")
10128 (license license:gpl3+)))
10129
10130 (define-public emacs-emms-player-simple-mpv
10131 ;; A new mpv backend is included in Emms from 5.0.
10132 (deprecated-package "emacs-emms-player-simple-mpv" emacs-emms))
10133
10134 (define-public emacs-magit-org-todos-el
10135 (let ((commit "df206287737b9671f2e36ae7b1474ebbe9940d2a"))
10136 (package
10137 (name "emacs-magit-org-todos-el")
10138 (version (git-version "0.1.1" "1" commit))
10139 (source
10140 (origin
10141 (method git-fetch)
10142 (uri (git-reference
10143 (url "https://github.com/danielma/magit-org-todos.el.git")
10144 (commit commit)))
10145 (file-name (git-file-name name version))
10146 (sha256
10147 (base32
10148 "0kdp7k7jnnrkhsg0xh1c3h7iz0vgi120gf5xwl1hxy61avivnxrn"))))
10149 (propagated-inputs
10150 `(("magit" ,emacs-magit)))
10151 (build-system emacs-build-system)
10152 (home-page "https://github.com/danielma/magit-org-todos.el")
10153 (synopsis "Get todo.org into Emacs Magit status")
10154 (description "This package allows you to get @file{todo.org} into your
10155 magit status.
10156
10157 If you have a @file{todo.org} file with @code{TODO} items in the root of your
10158 repository, @code{magit-org-todos} will create a section in your Magit status
10159 buffer with each of your todos.")
10160 (license license:gpl3+))))
10161
10162 (define-public emacs-f3
10163 (package
10164 (name "emacs-f3")
10165 (version "0.1")
10166 (source
10167 (origin
10168 (method url-fetch)
10169 (uri (string-append "https://github.com/cosmicexplorer/f3/archive/"
10170 version ".tar.gz"))
10171 (file-name (string-append name "-" version ".tar.gz"))
10172 (sha256
10173 (base32
10174 "06b8i1jvklm5k3k90n65f197l1miq1xlxqkqpbppw4h3rhl4y98h"))))
10175 (build-system emacs-build-system)
10176 (propagated-inputs
10177 `(("emacs-helm" ,emacs-helm)))
10178 (home-page "https://github.com/cosmicexplorer/f3")
10179 (synopsis "Fantastic File Finder for Emacs")
10180 (description
10181 "The Fantastic File Finder for Emacs. Find files fast, using helm.")
10182 (license license:gpl3+)))
10183
10184 (define-public emacs-lice-el
10185 (let ((commit "4339929927c62bd636f89bb39ea999d18d269250"))
10186 (package
10187 (name "emacs-lice-el")
10188 (version (git-version "0.2" "1" commit))
10189 (source (origin
10190 (method git-fetch)
10191 (uri (git-reference
10192 (url "https://github.com/buzztaiki/lice-el.git")
10193 (commit commit)))
10194 (file-name (git-file-name name version))
10195 (sha256
10196 (base32
10197 "0879z761b7gajkhq176ps745xpdrivch349crransv8fnsc759yb"))))
10198 (build-system emacs-build-system)
10199 (home-page "https://github.com/buzztaiki/lice-el")
10200 (synopsis "License and header template for Emacs")
10201 (description "@code{lice.el} provides following features:
10202
10203 @itemize
10204 @item License template management.
10205 @item File header insertion.
10206 @end itemize\n")
10207 (license license:gpl3+))))
10208
10209 (define-public emacs-academic-phrases
10210 (let ((commit "0823ed8c24b26c32f909b896a469833ec4d7b656"))
10211 (package
10212 (name "emacs-academic-phrases")
10213 (version (git-version "0.1" "1" commit))
10214 (source
10215 (origin
10216 (method git-fetch)
10217 (uri (git-reference
10218 (url "https://github.com/nashamri/academic-phrases.git")
10219 (commit commit)))
10220 (file-name (string-append name "-" version "-checkout"))
10221 (sha256
10222 (base32
10223 "0qfzsq8jh05w4zkr0cvq3i1hdn97bq344vcqjg46sib26x3wpz6r"))))
10224 (build-system emacs-build-system)
10225 (propagated-inputs
10226 `(("emacs-dash" ,emacs-dash)
10227 ("emacs-s" ,emacs-s)
10228 ("emacs-ht" ,emacs-ht)))
10229 (home-page "https://github.com/nashamri/academic-phrases")
10230 (synopsis "Bypass that mental block when writing your papers")
10231 (description
10232 "When writing your academic paper, you might get stuck trying to find
10233 the right phrase that captures your intention. This package tries to
10234 alleviate that problem by presenting you with a list of phrases organized by
10235 the topic or by the paper section that you are writing. This package has
10236 around 600 phrases so far.
10237
10238 Using this package is easy, just call @code{academic-phrases} to get a list of
10239 phrases organized by topic, or call @code{academic-phrases-by-section} to
10240 browse the phrases by the paper section and fill-in the blanks if required.")
10241 (license license:gpl3+))))
10242
10243 (define-public emacs-auto-yasnippet
10244 (let ((commit "d1ccfea87312c6dd8cf8501ab5b71b1d3d44d95b"))
10245 (package
10246 (name "emacs-auto-yasnippet")
10247 (version (git-version "0.3.0" "1" commit))
10248 (source (origin
10249 (method git-fetch)
10250 (uri (git-reference
10251 (url "https://github.com/abo-abo/auto-yasnippet.git")
10252 (commit commit)))
10253 (file-name (string-append name "-" version "-checkout"))
10254 (sha256
10255 (base32
10256 "1i8k2qiyzd5rq0zplk4xb5nfa5mp0ibxbzwqj6c7877waq7244xk"))))
10257 (build-system emacs-build-system)
10258 (arguments
10259 '(#:phases
10260 (modify-phases %standard-phases
10261 (add-before 'install 'check
10262 (lambda _
10263 (invoke "emacs" "--batch"
10264 "-l" "auto-yasnippet.el"
10265 "-l" "auto-yasnippet-test.el"
10266 "-f" "ert-run-tests-batch-and-exit"))))))
10267 (propagated-inputs
10268 `(("emacs-yasnippet" ,emacs-yasnippet)))
10269 (home-page "https://github.com/abo-abo/auto-yasnippet/")
10270 (synopsis "Quickly create disposable yasnippets")
10271 (description "This package provides a hybrid of keyboard macros and
10272 yasnippet. You create the snippet on the go, usually to be used just in the
10273 one place. It's fast, because you're not leaving the current buffer, and all
10274 you do is enter the code you'd enter anyway, just placing ~ where you'd like
10275 yasnippet fields and mirrors to be.")
10276 (license license:gpl3+))))
10277
10278 (define-public emacs-highlight-numbers
10279 (package
10280 (name "emacs-highlight-numbers")
10281 (version "0.2.3")
10282 (source
10283 (origin
10284 (method url-fetch)
10285 (uri (string-append
10286 "https://github.com/Fanael/highlight-numbers/archive/"
10287 version ".tar.gz"))
10288 (file-name (string-append name "-" version ".tar.gz"))
10289 (sha256
10290 (base32
10291 "030v5p11d4n0581ncv499l1fqrmfziy756q6378x2bv22ixghqqp"))))
10292 (build-system emacs-build-system)
10293 (propagated-inputs
10294 `(("emacs-parent-mode" ,emacs-parent-mode)))
10295 (home-page "https://github.com/Fanael/highlight-numbers")
10296 (synopsis "Highlight numbers in source code")
10297 (description "@code{highlight-numbers-mode} provides a minor mode for
10298 syntax highlighting of numeric literals in source code.
10299
10300 It s customizable: it's easy to add or redefine what exactly consitutes a
10301 \"number\" in given major mode. See @code{highlight-numbers-modelist}.")
10302 (license license:gpl3+)))
10303
10304 (define-public emacs-darkroom
10305 (package
10306 (name "emacs-darkroom")
10307 (version "0.1")
10308 (source (origin
10309 (method url-fetch)
10310 (uri (string-append "https://elpa.gnu.org/packages/darkroom-"
10311 version ".el"))
10312 (sha256
10313 (base32
10314 "0fif8fm1h7x7g16949shfnaik5f5488clsvkf8bi5izpqp3vi6ak"))))
10315 (build-system emacs-build-system)
10316 (home-page "https://elpa.gnu.org/packages/darkroom.html")
10317 (synopsis "Remove visual distractions and focus on writing")
10318 (description "@code{darkroom-mode} makes visual distractions disappear.
10319 The mode-line is temporarily elided, text is enlarged and margins are adjusted
10320 so that it's centered on the window.
10321
10322 @code{darkroom-tentative-mode} is similar, but it doesn't immediately turn-on
10323 @code{darkroom-mode}, unless the current buffer lives in the sole window of
10324 the Emacs frame (i.e. all other windows are deleted). Whenever the frame is
10325 split to display more windows and more buffers, the buffer exits
10326 @code{darkroom-mode}. Whenever they are deleted, the buffer re-enters
10327 @code{darkroom-mode}.")
10328 (license license:gpl3+)))
10329
10330 (define-public emacs-rsw-elisp
10331 (package
10332 (name "emacs-rsw-elisp")
10333 (version "1.0.5")
10334 (source (origin
10335 (method url-fetch)
10336 (uri (string-append "https://github.com/rswgnu/rsw-elisp"
10337 "/archive/" version ".tar.gz"))
10338 (file-name (string-append name "-" version ".tar.gz"))
10339 (sha256
10340 (base32
10341 "1jnn7xfwl3wxc87v44ccsf1wwp80par3xgcvfb1icd6zchjmlcps"))))
10342 (build-system emacs-build-system)
10343 (home-page "https://github.com/rswgnu/rsw-elisp")
10344 (synopsis "Improved expressions that interactively evaluate Emacs Lisp")
10345 (description "This package improves and replaces the GNU Emacs commands
10346 that interactively evaluate Emacs Lisp expressions. The new commands replace
10347 standard key bindings and are all prefixed with @code{rsw-elisp-}. They work
10348 the same way as the old commands when called non-interactively; only the
10349 interactive behavior should be different.")
10350 (license license:gpl3+)))
10351
10352 (define-public emacs-default-text-scale
10353 (let ((commit "968e985e219235f3e744d6d967e592acbaf6e0a8")
10354 (revision "1"))
10355 (package
10356 (name "emacs-default-text-scale")
10357 (version (string-append "0.1" "-" revision "."
10358 (string-take commit 7)))
10359 (source (origin
10360 (method git-fetch)
10361 (uri (git-reference
10362 (url "https://github.com/purcell/default-text-scale")
10363 (commit commit)))
10364 (file-name (string-append name "-" version "-checkout"))
10365 (sha256
10366 (base32
10367 "0zds01c3q5yny6ab1fxfkzzgn1kgl3q23lxxap905f4qd70v922h"))))
10368 (build-system emacs-build-system)
10369 (home-page "https://github.com/purcell/default-text-scale")
10370 (synopsis "Adjust the font size in all Emacs frames")
10371 (description "This package provides commands for increasing or
10372 decreasing the default font size in all GUI Emacs frames.")
10373 (license license:gpl3+))))
10374
10375 (define-public emacs-visual-regexp
10376 (package
10377 (name "emacs-visual-regexp")
10378 (version "1.1.1")
10379 (source
10380 (origin
10381 (method url-fetch)
10382 (uri (string-append "https://github.com/benma/visual-regexp.el/archive/"
10383 "v" version ".tar.gz"))
10384 (file-name (string-append name "-" version ".tar.gz"))
10385 (sha256
10386 (base32
10387 "1czmhvcivlcdyz7rfm0vd4a3xsgmy4qbvbl6yjxc217wrxqflr92"))))
10388 (build-system emacs-build-system)
10389 (home-page "https://github.com/benma/visual-regexp.el/")
10390 (synopsis "Regexp command with interactive visual feedback")
10391 (description "This package provides an Emacs regexp command with
10392 interactive visual feedback.")
10393 (license license:gpl3+)))
10394
10395 (define-public emacs-faceup
10396 (let ((commit "6c92dad56a133e14e7b27831e1bcf9b3a71ff154")
10397 (revision "1"))
10398 (package
10399 (name "emacs-faceup")
10400 (version (string-append "0.0.1" "-" revision "."
10401 (string-take commit 7)))
10402 (source
10403 (origin
10404 (method git-fetch)
10405 (uri (git-reference
10406 (url "https://github.com/Lindydancer/faceup.git")
10407 (commit commit)))
10408 (file-name (string-append name "-" version "-checkout"))
10409 (sha256
10410 (base32
10411 "1yzmy7flrhrh0i10bdszx8idx6r8h6czm4vm4q0z6fp5fw94zwrx"))))
10412 (build-system emacs-build-system)
10413 (home-page "https://github.com/Lindydancer/faceup")
10414 (synopsis "Markup language for faces and font-lock regression testing")
10415 (description "Emacs is capable of highlighting buffers based on
10416 language-specific @code{font-lock} rules. This package makes it possible to
10417 perform regression test for packages that provide font-lock rules.")
10418 (license license:gpl3+))))
10419
10420 (define-public emacs-racket-mode
10421 (let ((commit "b977873e6128f8399432dcd60cc39f6a6f803d9c")
10422 (revision "2"))
10423 (package
10424 (name "emacs-racket-mode")
10425 (version (string-append "0.0.2" "-" revision "."
10426 (string-take commit 7)))
10427 (source
10428 (origin
10429 (method git-fetch)
10430 (uri (git-reference
10431 (url "https://github.com/greghendershott/racket-mode")
10432 (commit commit)))
10433 (file-name (string-append name "-" version "-checkout"))
10434 (sha256
10435 (base32
10436 "0vp4bbbplqvmnhjpl6ajrlydmrhqzil56cfbs18m5c5fddx0zlh7"))))
10437 (build-system emacs-build-system)
10438 (arguments
10439 `(#:include '("\\.el$" "\\.rkt$")))
10440 (propagated-inputs
10441 `(("emacs-faceup" ,emacs-faceup)
10442 ("emacs-s" ,emacs-s)))
10443 (home-page "https://github.com/greghendershott/racket-mode")
10444 (synopsis "Major mode for Racket language")
10445 (description "@code{racket-mode} provides:
10446
10447 @itemize
10448 @item Focus on Racket (not various Schemes).
10449 @item Follow DrRacket concepts where applicable.
10450 @item Thorough font-lock and indent.
10451 @end itemize\n")
10452 (license license:gpl3+))))
10453
10454 (define-public emacs-grep-context
10455 (let ((commit "a17c57e66687a54e195e08afe776bdd60cb6c0a7"))
10456 (package
10457 (name "emacs-grep-context")
10458 (version (git-version "0.1" "1" commit))
10459 (source
10460 (origin
10461 (method git-fetch)
10462 (uri (git-reference
10463 (url "https://github.com/mkcms/grep-context.git")
10464 (commit commit)))
10465 (file-name (string-append name "-" version "-checkout"))
10466 (sha256
10467 (base32
10468 "1nqfa6kjzjshww4hnwg1c0vcr90bdjihy3kmixq3c3jkvxg99b62"))))
10469 (build-system emacs-build-system)
10470 (propagated-inputs
10471 `(("emacs-dash" ,emacs-dash)))
10472 (home-page "https://github.com/nashamri/academic-phrases")
10473 (synopsis "Increase context in compilation and grep buffers")
10474 (description
10475 "This package provides an Emacs package for more context in
10476 compilation/grep buffers. Works with @code{wgrep}, @code{ack}, @code{ag},
10477 @code{ivy}.")
10478 (license license:gpl3+))))
10479
10480 (define-public emacs-helm-firefox
10481 (let ((commit "0ad34b7b5abc485a86cae6920c14de861cbeb085")
10482 (revision "1"))
10483 (package
10484 (name "emacs-helm-firefox")
10485 (version (string-append "0.0.1" "-" revision "."
10486 (string-take commit 7)))
10487 (source
10488 (origin
10489 (method git-fetch)
10490 (uri (git-reference
10491 (url "https://github.com/emacs-helm/helm-firefox.git")
10492 (commit commit)))
10493 (file-name (string-append name "-" version "-checkout"))
10494 (sha256
10495 (base32
10496 "08mjsi2f9s29fkk35cj1rrparjnkm836qmbfdwdz7y51f9varjbs"))))
10497 (propagated-inputs
10498 `(("emacs-helm" ,emacs-helm)))
10499 (build-system emacs-build-system)
10500 (home-page "https://github.com/emacs-helm/helm-firefox")
10501 (synopsis "Display firefox bookmarks with Emacs Helm interface")
10502 (description "Display firefox bookmarks with Emacs Helm interface")
10503 (license license:gpl3+))))
10504
10505 (define-public emacs-interactive-align
10506 (package
10507 (name "emacs-interactive-align")
10508 (version "0.1.0")
10509 (source
10510 (origin
10511 (method url-fetch)
10512 (uri (string-append "https://github.com/mkcms/interactive-align/"
10513 "archive/" "v" version ".tar.gz"))
10514 (file-name (string-append name "-" version ".tar.gz"))
10515 (sha256
10516 (base32
10517 "0sibpgb4lp6yy3pziak8f3hz4b28yj0dqy2nzh51z3d0b63h528m"))))
10518 (build-system emacs-build-system)
10519 (home-page "https://github.com/mkcms/interactive-align/")
10520 (synopsis "Interactive align-regexp command in Emacs")
10521 (description "Interactive align-regexp command in Emacs")
10522 (license license:gpl3+)))
10523
10524 (define-public emacs-shift-number
10525 (package
10526 (name "emacs-shift-number")
10527 (version "0.1")
10528 (source
10529 (origin
10530 (method url-fetch)
10531 (uri (string-append "https://github.com/alezost/shift-number.el"
10532 "/archive/" "v" version ".tar.gz"))
10533 (file-name (string-append name "-" version ".tar.gz"))
10534 (sha256
10535 (base32
10536 "1g79m0hqn9jgpm565vvh8pdfzndc4vw7xisnh5qysj55qfg8cb1x"))))
10537 (build-system emacs-build-system)
10538 (home-page "https://github.com/alezost/shift-number.el")
10539 (synopsis "Increase or decrease the number at point")
10540 (description "@code{emacs-shift-number} provides commands
10541 @code{shift-number-up} to increase and @code{shift-number-down} to
10542 decrease the number at point.")
10543 (license license:gpl3+)))
10544
10545 (define-public emacs-highlight-defined
10546 (package
10547 (name "emacs-highlight-defined")
10548 (version "0.1.5")
10549 (source
10550 (origin
10551 (method url-fetch)
10552 (uri (string-append
10553 "https://github.com/Fanael/highlight-defined/archive/"
10554 version ".tar.gz"))
10555 (file-name (string-append name "-" version ".tar.gz"))
10556 (sha256
10557 (base32
10558 "1ryd66989b5byqdw8jmjrjf0c78iiz72wibld750skcnj5h5h506"))))
10559 (build-system emacs-build-system)
10560 (home-page "https://github.com/Fanael/highlight-defined")
10561 (synopsis "Syntax highlighting of known Elisp symbols")
10562 (description "Minor mode providing syntax highlighting of known Emacs Lisp
10563 symbols. Currently the code distinguishes Lisp functions, built-in functions,
10564 macros, faces and variables. To enable call @code{highlight-defined-mode}. ")
10565 (license license:gpl3+)))
10566
10567 (define-public emacs-parinfer-mode
10568 (package
10569 (name "emacs-parinfer-mode")
10570 (version "0.4.10")
10571 (source
10572 (origin
10573 (method url-fetch)
10574 (uri (string-append "https://github.com/DogLooksGood/parinfer-mode/archive/"
10575 "v" version ".tar.gz"))
10576 (file-name (string-append name "-" version ".tar.gz"))
10577 (sha256
10578 (base32
10579 "06ba9qi59sm9ih9m38fbr8kj4qkvrm58n0c0ngfjz60gnr9x9pcv"))))
10580 (propagated-inputs
10581 `(("emacs-dash" ,emacs-dash)
10582 ("emacs-rainbow-delimiters" ,emacs-rainbow-delimiters)
10583 ("emacs-company" ,emacs-company)))
10584 (build-system emacs-build-system)
10585 (home-page "https://github.com/DogLooksGood/parinfer-mode/")
10586 (synopsis "Lisp structure editing mode")
10587 (description "@code{parinfer-mode} is a proof-of-concept editor
10588 mode for Lisp programming languages. It will infer some changes to
10589 keep Parens and Indentation inline with one another.")
10590 (license license:gpl3+)))
10591
10592 (define-public emacs-helm-eww
10593 (let ((commit "9d36acc433bcf689598b1b4d7d47c9aeb84d6b44"))
10594 (package
10595 (name "emacs-helm-eww")
10596 (version (git-version "0.1" "3" commit))
10597 (source (origin
10598 (method git-fetch)
10599 (uri (git-reference
10600 (url "https://github.com/emacs-helm/helm-eww.git")
10601 (commit commit)))
10602 (file-name (string-append name "-" version "-checkout"))
10603 (sha256
10604 (base32
10605 "06gnf84gx6qbhcw1h5jhjnvcdxkdpv0npm53x3pgqybbll5rn5dy"))))
10606 (propagated-inputs
10607 `(("emacs-helm" ,emacs-helm)))
10608 (build-system emacs-build-system)
10609 (home-page "https://github.com/emacs-helm/helm-eww/")
10610 (synopsis "Helm interface to EWW")
10611 (description "This package provides a Helm interface for EWW buffers,
10612 bookmarks and history.")
10613 (license license:gpl3+))))
10614
10615 (define-public emacs-stumpwm-mode
10616 (let ((commit "8fbe071d2c6c040794060a354eb377218dc10b35")
10617 (revision "1"))
10618 (package
10619 (name "emacs-stumpwm-mode")
10620 (version (string-append "0.0.1-" revision "."
10621 (string-take commit 7)))
10622 (source (origin
10623 (method git-fetch)
10624 (uri (git-reference
10625 (url "https://github.com/stumpwm/stumpwm-contrib.git")
10626 (commit commit)))
10627 (file-name (string-append name "-" version "-checkout"))
10628 (sha256
10629 (base32
10630 "1dfwsvz1c8w6j4jp0kzaz78ml3f5dp0a5pvf090kwpbpg176r7iq"))))
10631 (build-system emacs-build-system)
10632 (arguments
10633 `(#:phases
10634 (modify-phases %standard-phases
10635 (add-after 'unpack 'chdir-elisp
10636 ;; Elisp directory is not in root of the source.
10637 (lambda _
10638 (chdir "util/swm-emacs"))))))
10639 (home-page "https://github.com/stumpwm/stumpwm-contrib")
10640 (synopsis "Emacs minor-mode for Stumpwm")
10641 (description "Emacs minor-mode for Stumpwm")
10642 (license license:gpl3+))))
10643
10644 (define-public emacs-irfc
10645 (package
10646 (name "emacs-irfc")
10647 (version "20130824.507")
10648 (source
10649 (origin
10650 (method url-fetch)
10651 (uri "https://www.emacswiki.org/emacs/download/irfc.el")
10652 (file-name (string-append "irfc-" version ".el"))
10653 (sha256
10654 (base32
10655 "197ybqwbj8qjh2p9pkf5mvqnrkpcgmv8c5s2gvl6msyrabk0mnca"))))
10656 (build-system emacs-build-system)
10657 (home-page "https://www.emacswiki.org/emacs/download/irfc.el")
10658 (synopsis "Interface for IETF RFC document")
10659 (description
10660 "This package provides an Emacs interface for IETF RFC document.")
10661 (license license:gpl3+)))
10662
10663 (define-public emacs-ido-vertical-mode
10664 (package
10665 (name "emacs-ido-vertical-mode")
10666 (version "0.1.6")
10667 (source
10668 (origin
10669 (method url-fetch)
10670 (uri (string-append
10671 "https://github.com/creichert/ido-vertical-mode.el/archive/"
10672 "v" version ".tar.gz"))
10673 (file-name (string-append name "-" version ".tar.gz"))
10674 (sha256
10675 (base32
10676 "0dprdxq8wvqd45dinwj92k0kixr07c8xvspa6i613mjcpxgwjg53"))))
10677 (build-system emacs-build-system)
10678 (home-page "https://github.com/creichert/ido-vertical-mode.el")
10679 (synopsis "Makes ido-mode display vertically")
10680 (description "Makes ido-mode display prospects vertically.")
10681 (license license:gpl3+)))
10682
10683 (define-public emacs-wordgen
10684 (package
10685 (name "emacs-wordgen")
10686 (version "0.1.4")
10687 (source
10688 (origin
10689 (method url-fetch)
10690 (uri (string-append "https://github.com/Fanael/wordgen.el/archive/"
10691 version ".tar.gz"))
10692 (file-name (string-append name "-" version ".tar.gz"))
10693 (sha256
10694 (base32
10695 "1h2iyixdm49h53pwj9ics9gb9h3g6wa4hainpnjg6mfarf49jkmg"))))
10696 (build-system emacs-build-system)
10697 (home-page "https://github.com/Fanael/wordgen.el")
10698 (synopsis "Random word generator")
10699 (description "This package provides functions to generate random words
10700 using user-provided rules.")
10701 (license license:gpl3+)))
10702
10703 (define-public emacs-on-screen
10704 (package
10705 (name "emacs-on-screen")
10706 (version "1.3.2")
10707 (source
10708 (origin
10709 (method url-fetch)
10710 (uri (string-append
10711 "http://elpa.gnu.org/packages/on-screen-" version ".el"))
10712 (file-name (string-append name "-" version ".el"))
10713 (sha256
10714 (base32
10715 "15d18mjgv1pnwl6kf3pr5w64q1322p1l1qlfvnckglwmzy5sl2qv"))))
10716 (build-system emacs-build-system)
10717 (home-page
10718 "https://github.com/michael-heerdegen/on-screen.el")
10719 (synopsis "Guide your eyes while scrolling")
10720 (description
10721 "Scrolling can be distracting because your eyes may lose
10722 orientation. This library implements a minor mode that highlights
10723 the previously visible buffer part after each scroll.")
10724 (license license:gpl3+)))
10725
10726 (define-public emacs-highlight-escape-sequences
10727 (let ((commit "08d846a7aa748209d65fecead2b6a766c3e5cb41")
10728 (revision "1"))
10729 (package
10730 (name "emacs-highlight-escape-sequences")
10731 (version (string-append "0.0.1" "-" revision "."
10732 (string-take commit 7)))
10733 (source
10734 (origin
10735 (method git-fetch)
10736 (uri (git-reference
10737 (url "https://github.com/dgutov/highlight-escape-sequences.git")
10738 (commit commit)))
10739 (file-name (string-append name "-" version "-checkout"))
10740 (sha256
10741 (base32
10742 "05mc3w1f8ykf80914a1yddw6j8cmh0h57llm07xh89s53821v2is"))))
10743 (build-system emacs-build-system)
10744 (home-page "https://github.com/dgutov/highlight-escape-sequences")
10745 (synopsis "Highlight escape sequences in Emacs")
10746 (description "@code{highlight-escape-sequences} provides an
10747 Emacs minor mode to escape sequences in code.")
10748 (license license:gpl3+))))
10749
10750 (define-public emacs-dashboard
10751 (package
10752 (name "emacs-dashboard")
10753 (version "1.2.4")
10754 (source
10755 (origin
10756 (method url-fetch)
10757 (uri (string-append
10758 "https://github.com/rakanalh/emacs-dashboard/archive/"
10759 version ".tar.gz"))
10760 (file-name (string-append name "-" version ".tar.gz"))
10761 (sha256
10762 (base32
10763 "1738lmbgq6gk24hcwic0qjyajr21l5xzhya4pv58dw1bhd6vxv9g"))))
10764 (build-system emacs-build-system)
10765 (propagated-inputs
10766 `(("emacs-page-break-lines" ,emacs-page-break-lines)))
10767 (arguments '(#:include '("\\.el$" "\\.txt$" "\\.png$")))
10768 (home-page "https://github.com/rakanalh/emacs-dashboard")
10769 (synopsis "Startup screen extracted from Spacemacs")
10770 (description "This package provides an extensible Emacs dashboard, with
10771 sections for bookmarks, projectil projects, org-agenda and more. ")
10772 (license license:gpl3+)))
10773
10774 (define-public emacs-slime-company
10775 (package
10776 (name "emacs-slime-company")
10777 (version "1.1")
10778 (source
10779 (origin
10780 (method url-fetch)
10781 (uri (string-append "https://github.com/anwyn/slime-company/archive/"
10782 "v" version ".tar.gz"))
10783 (sha256
10784 (base32
10785 "1myl79pxj501xfr5qc5a24qddsn2l5iaamg7rf7fpny7mr9v70ar"))
10786 (file-name (string-append name "-" version ".tar.gz"))))
10787 (build-system emacs-build-system)
10788 (propagated-inputs
10789 `(("emacs-slime" ,emacs-slime)
10790 ("emacs-company" ,emacs-company)))
10791 (home-page "https://company-mode.github.io")
10792 (synopsis "SLIME completion backend for @code{company-mode}")
10793 (description
10794 "This is a backend implementation for the completion package
10795 @code{company-mode} which supports the normal and the fuzzy completion
10796 modes of SLIME.")
10797 (license license:gpl3+)))
10798
10799 (define-public emacs-sml-mode
10800 (package
10801 (name "emacs-sml-mode")
10802 (version "6.8")
10803 (source
10804 (origin
10805 (method url-fetch)
10806 (uri (string-append "http://elpa.gnu.org/packages/sml-mode-"
10807 version ".el"))
10808 (sha256
10809 (base32
10810 "105fcrz5qp95f2n3fdm3awr6z58sbrjihjss6qnrg4lz2ggbc328"))))
10811 (build-system emacs-build-system)
10812 (home-page "http://elpa.gnu.org/packages/sml-mode.html")
10813 (synopsis "Major mode for editing (Standard) ML")
10814 (description "SML-MODE is a major Emacs mode for editing Standard ML.
10815 It provides syntax highlighting and automatic indentation and
10816 comes with sml-proc which allows interaction with an inferior SML
10817 interactive loop.")
10818 (license license:gpl3+)))
10819
10820 (define-public emacs-eros
10821 (let ((commit "a42e45c9b2397156c684330b0fc90ee0eba773f5")
10822 (revision "1"))
10823 (package
10824 (name "emacs-eros")
10825 (version (string-append "0.0.1" "-" revision "."
10826 (string-take commit 7)))
10827 (source
10828 (origin
10829 (method git-fetch)
10830 (uri (git-reference
10831 (url "https://github.com/xiongtx/eros.git")
10832 (commit commit)))
10833 (file-name (string-append name "-" version "-checkout"))
10834 (sha256
10835 (base32
10836 "0whlsq90v13fz69k3wjrwcwb9gkpfxqjd75mg3nrp85j9nwhb5i4"))))
10837 (build-system emacs-build-system)
10838 (home-page "https://github.com/xiongtx/eros")
10839 (synopsis "Evaluation result overlays")
10840 (description "@code{eros} provides evaluation result overlays.")
10841 (license license:gpl3+))))
10842
10843 (define-public emacs-stickyfunc-enhance
10844 (let ((commit "13bdba51fcd83ccbc3267959d23afc94d458dcb0")
10845 (revision "1"))
10846 (package
10847 (name "emacs-stickyfunc-enhance")
10848 (version "0.1")
10849 (source
10850 (origin
10851 (method git-fetch)
10852 (uri (git-reference
10853 (url "https://github.com/tuhdo/semantic-stickyfunc-enhance.git")
10854 (commit commit)))
10855 (file-name (string-append name "-" version "-checkout"))
10856 (sha256
10857 (base32
10858 "16dxjsr5nj20blww4xpd4jzgjprzzh1nwvb810ggdmp9paf4iy0g"))))
10859 (build-system emacs-build-system)
10860 (home-page "https://github.com/tuhdo/semantic-stickyfunc-enhance")
10861 (synopsis "Enhancement to stock @code{semantic-stickyfunc-mode}")
10862 (description
10863 "@code{semantic-stickyfunc-mode} shows the function point is currently
10864 in at the first line of the current buffer. This is useful when you have a
10865 very long function that spreads more than a screen, and you don't have to
10866 scroll up to read the function name and then scroll down to original position.")
10867 (license license:gpl3+))))
10868
10869 (define-public emacs-git-auto-commit-mode
10870 (package
10871 (name "emacs-git-auto-commit-mode")
10872 (version "4.4.0")
10873 (source
10874 (origin
10875 (method url-fetch)
10876 (uri (string-append
10877 "https://github.com/ryuslash/git-auto-commit-mode/archive/"
10878 version ".tar.gz"))
10879 (file-name (string-append name "-" version ".tar.gz"))
10880 (sha256
10881 (base32
10882 "04avxmalsl3b7zi2vipfw9rb4wrwysnipsbch96skviql9axk870"))))
10883 (build-system emacs-build-system)
10884 (home-page "https://github.com/ryuslash/git-auto-commit-mode")
10885 (synopsis "Emacs Minor mode to automatically commit and push")
10886 (description "@code{git-auto-commit-mode} is an Emacs minor mode that
10887 tries to commit changes to a file after every save.
10888
10889 When @code{gac-automatically-push-p} is non-nil, it also tries to push to
10890 the current upstream.")
10891 (license license:gpl3+)))
10892
10893 (define-public emacs-company-restclient
10894 (package
10895 (name "emacs-company-restclient")
10896 (version "0.1.0")
10897 (source
10898 (origin
10899 (method url-fetch)
10900 (uri (string-append
10901 "https://github.com/iquiw/company-restclient/archive/"
10902 "v" version ".tar.gz"))
10903 (file-name (string-append name "-" version ".tar.gz"))
10904 (sha256
10905 (base32
10906 "1kr3f0wgqlk7r171bvb2kinv7fanwj2md01wdpx04qkgwcr1as00"))))
10907 (build-system emacs-build-system)
10908 (propagated-inputs
10909 `(("emacs-company" ,emacs-company)
10910 ("emacs-know-your-http-well" ,emacs-know-your-http-well)
10911 ("emacs-restclient" ,emacs-restclient)))
10912 (home-page "https://github.com/iquiw/company-restclient")
10913 (synopsis "Company-mode completion back-end for restclient-mode")
10914 (description "@code{company-mode} back-end for
10915 @code{restclient-mode}.
10916
10917 It provides auto-completion for HTTP methods and headers in
10918 @code{restclient-mode}. Completion source is given by
10919 @code{know-your-http-well}.")
10920 (license license:gpl3+)))
10921
10922 (define-public emacs-noflet
10923 (let ((version "20170629")
10924 (revision "1")
10925 (commit "7ae84dc3257637af7334101456dafe1759c6b68a"))
10926 (package
10927 (name "emacs-noflet")
10928 (version (git-version version revision commit))
10929 (source
10930 (origin
10931 (method git-fetch)
10932 (uri (git-reference
10933 (url "https://github.com/nicferrier/emacs-noflet")
10934 (commit commit)))
10935 (file-name (string-append name "-" version "-checkout"))
10936 (sha256
10937 (base32
10938 "0g70gnmfi8n24jzfci9nrj0n9bn1qig7b8f9f325rin8h7x32ypf"))))
10939 (build-system emacs-build-system)
10940 (arguments
10941 `(#:phases
10942 (modify-phases %standard-phases
10943 (add-after 'unpack 'require-dash
10944 ;; noflet.el uses -map from dash, but (require 'dash) is
10945 ;; missing. So, add it.
10946 (lambda _
10947 (substitute* "noflet.el"
10948 ((";;; Code:") ";;; Code:\n(require 'dash)"))
10949 #t)))))
10950 (propagated-inputs
10951 `(("emacs-dash" ,emacs-dash)))
10952 (home-page "https://github.com/nicferrier/emacs-noflet")
10953 (synopsis "Locally override functions")
10954 (description "@code{emacs-noflet} let's you locally override functions,
10955 in the manner of @command{flet}, but with access to the original function
10956 through the symbol: @command{this-fn}.")
10957 (license license:gpl3+))))
10958
10959 (define-public emacs-dumb-jump
10960 (package
10961 (name "emacs-dumb-jump")
10962 (version "0.5.2")
10963 (source
10964 (origin
10965 (method url-fetch)
10966 (uri (string-append
10967 "https://github.com/jacktasia/dumb-jump/archive/v"
10968 version ".tar.gz"))
10969 (file-name (string-append name "-" version ".tar.gz"))
10970 (sha256
10971 (base32
10972 "07n0xjgpxjpf3vp9gxchkjpydyj0zm166930as0kwiwkhjlsirsf"))))
10973 (build-system emacs-build-system)
10974 (arguments
10975 `(#:tests? #f ; FIXME: Tests freeze when run.
10976 #:test-command '("ert-runner")
10977 #:phases
10978 (modify-phases %standard-phases
10979 (add-after 'unpack 'set-shell
10980 (lambda _
10981 ;; Setting the SHELL environment variable is required for the
10982 ;; tests to find sh.
10983 (setenv "SHELL" (which "sh"))
10984 #t)))))
10985 (native-inputs
10986 `(("emacs-el-mock" ,emacs-el-mock)
10987 ("emacs-noflet" ,emacs-noflet)
10988 ("emacs-undercover" ,emacs-undercover)
10989 ("ert-runner" ,emacs-ert-runner)))
10990 (propagated-inputs
10991 `(("emacs-f" ,emacs-f)
10992 ("emacs-popup" ,emacs-popup)))
10993 (home-page "https://github.com/jacktasia/dumb-jump")
10994 (synopsis "Jump to definition for multiple languages without configuration")
10995 (description "Dumb Jump is an Emacs \"jump to definition\" package with
10996 support for multiple programming languages that favors \"just working\" over
10997 speed or accuracy. This means minimal --- and ideally zero --- configuration
10998 with absolutely no stored indexes (tags) or persistent background processes.
10999 Dumb Jump performs best with The Silver Searcher @command{ag} or ripgrep
11000 @command{rg} installed.")
11001 (license license:gpl3+)))
11002
11003 (define-public emacs-dts-mode
11004 (let ((commit "9ee0854446dcc6c53d2b8d2941051768dba50344")
11005 (revision "1"))
11006 (package
11007 (name "emacs-dts-mode")
11008 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
11009 (source
11010 (origin
11011 (method git-fetch)
11012 (uri (git-reference
11013 (url "https://github.com/bgamari/dts-mode.git")
11014 (commit commit)))
11015 (file-name (string-append name "-" version "-checkout"))
11016 (sha256
11017 (base32
11018 "1k8lljdbc90nd29xrhdrsscxavzdq532wq2mg7ljc94krj7538b1"))))
11019 (build-system emacs-build-system)
11020 (home-page "https://github.com/bgamari/dts-mode.git")
11021 (synopsis "Emacs minor mode for editing device tree files")
11022 (description
11023 "This package provides an Emacs minor mode for highlighting
11024 device tree files.")
11025 (license license:gpl3+))))
11026
11027 (define-public emacs-daemons
11028 (package
11029 (name "emacs-daemons")
11030 (version "2.0.0")
11031 (source
11032 (origin
11033 (method git-fetch)
11034 (uri (git-reference
11035 (url "https://github.com/cbowdon/daemons.el")
11036 (commit version)))
11037 (file-name (string-append name "-" version "-checkout"))
11038 (sha256
11039 (base32
11040 "00bkzfaw3bqykcks610vk9wlpa2z360xn32bpsrycacwfv29j7g4"))))
11041 (build-system emacs-build-system)
11042 (home-page "https://github.com/cbowdon/daemons.el")
11043 (synopsis "Emacs UI for managing init system services")
11044 (description
11045 "This is an Emacs mode to give you a UI for managing init system
11046 daemons (services) for those getting tired of typing out @code{sudo service
11047 my_thing reload} all the time. It offers a consistent UI over different init
11048 systems.")
11049 (license license:gpl3+)))
11050
11051 (define-public emacs-esh-autosuggest
11052 (package
11053 (name "emacs-esh-autosuggest")
11054 (version "2.0.0")
11055 (source
11056 (origin
11057 (method git-fetch)
11058 (uri (git-reference
11059 (url "https://github.com/dieggsy/esh-autosuggest")
11060 (commit version)))
11061 (file-name (string-append name "-" version "-checkout"))
11062 (sha256
11063 (base32
11064 "116pdjgpjy9b0psm5kzwkwy7dq8vn0p6dy75dl1zsy2xrjf1iqdw"))))
11065 (build-system emacs-build-system)
11066 (propagated-inputs `(("emacs-company" ,emacs-company)))
11067 (home-page "https://github.com/dieggsy/esh-autosuggest")
11068 (synopsis "Fish-like autosuggestions in Eshell")
11069 (description
11070 "This package assumes you use something other than company for eshell
11071 completion (e.g. @code{eshell-pcomplete}, @code{completion-at-point},
11072 @code{helm-esh-pcomplete}). @code{company-mode} is used solely as a mechanism
11073 for history autosuggestions.
11074
11075 Unless you're using @code{use-package}'s hook keyword, you can enable the
11076 autosuggestions with:
11077 @code{(add-hook 'eshell-mode-hook #'esh-autosuggest-mode)}")
11078 (license license:gpl3+)))
11079
11080 (define-public emacs-desktop-environment
11081 (package
11082 (name "emacs-desktop-environment")
11083 (version "0.2.0")
11084 (source
11085 (origin
11086 (method git-fetch)
11087 (uri (git-reference
11088 (url "https://github.com/DamienCassou/desktop-environment.git")
11089 (commit (string-append "v" version))))
11090 (file-name (string-append name "-" version "-checkout"))
11091 (sha256
11092 (base32
11093 "1fal3yfmqg10cb53qsf5gsq2gvyz9w16wmlpnpjwjzwnjfn6l73r"))))
11094 (build-system emacs-build-system)
11095 (home-page "https://gitlab.petton.fr/DamienCassou/desktop-environment")
11096 (synopsis "Control your GNU/Linux desktop environment from Emacs")
11097 (description
11098 "This package helps you control your GNU/Linux desktop from Emacs.
11099 With @code{desktop-environment}, you can control the brightness and volume as
11100 well as take screenshots and lock your screen. The package depends on the
11101 availability of shell commands to do the hard work for us. These commands can
11102 be changed by customizing the appropriate variables.")
11103 (license license:gpl3+)))
11104
11105 (define-public emacs-org-caldav
11106 (package
11107 (name "emacs-org-caldav")
11108 (version "20180403")
11109 (source
11110 (origin
11111 (method url-fetch)
11112 (uri (string-append
11113 "https://github.com/dengste/org-caldav/raw/"
11114 "8d3492c27a09f437d2d94f2736c56d7652e87aa0"
11115 "/org-caldav.el"))
11116 (sha256
11117 (base32
11118 "1fh4gh68ddj0is99z2ccyh97v6psnyda61n2dsadzqhcxn51amlc"))))
11119 (build-system emacs-build-system)
11120 (propagated-inputs `(("emacs-org" ,emacs-org)))
11121 (home-page "https://github.com/dengste/org-caldav")
11122 (synopsis
11123 "Sync Org files with external calendars via the CalDAV protocol")
11124 (description
11125 "Synchronize between events in Org-mode files and a CalDAV calendar.
11126 This code is still alpha.")
11127 (license license:gpl3+)))
11128
11129 (define-public emacs-zotxt
11130 (package
11131 (name "emacs-zotxt")
11132 (version "20180518")
11133 (source
11134 (origin
11135 (method url-fetch)
11136 (uri (string-append
11137 "https://github.com/egh/zotxt-emacs/archive/"
11138 "23a4a9f74a658222027d53a9a83cd4bcc583ca8b"
11139 ".tar.gz"))
11140 (sha256
11141 (base32
11142 "1qlibaciqgsva6fc7vv9krssjq00bi880396jk7llbi3c52q9n1y"))))
11143 (build-system emacs-build-system)
11144 (propagated-inputs
11145 `(("emacs-deferred" ,emacs-deferred)
11146 ("emacs-request" ,emacs-request)))
11147 (home-page "https://github.com/egh/zotxt-emacs")
11148 (synopsis "Integrate Emacs with Zotero")
11149 (description "This package provides two integration features between Emacs
11150 and the Zotero research assistant: Insertion of links to Zotero items into an
11151 Org-mode file, and citations of Zotero items in Pandoc Markdown files.")
11152 (license license:gpl3+)))
11153
11154 (define-public emacs-evil-ediff
11155 ;; Evil-Ediff is included in Evil Collection from 20180617.
11156 (deprecated-package "emacs-evil-ediff" emacs-evil-collection))
11157
11158 (define-public emacs-evil-magit
11159 (let ((commit "dbf5a646a7ce1c35c229dfdc423bd5ecd927a3a8"))
11160 (package
11161 (name "emacs-evil-magit")
11162 (version (git-version "0.4.2" "1" commit))
11163 (source
11164 (origin
11165 (method git-fetch)
11166 (uri (git-reference
11167 (url "https://github.com/emacs-evil/evil-magit")
11168 (commit commit)))
11169 (file-name (string-append name "-" version "-checkout"))
11170 (sha256
11171 (base32
11172 "0ya0dkviq4pi92ab69a4j674y5r1hc1x3x7r7hlm97ag3a6zfkav"))))
11173 (build-system emacs-build-system)
11174 (propagated-inputs
11175 `(("emacs-evil" ,emacs-evil)
11176 ("magit" ,emacs-magit)))
11177 (home-page
11178 "https://github.com/emacs-evil/evil-magit")
11179 (synopsis "Evil-based key bindings for Magit")
11180 (description
11181 "This Emacs library configures Magit and Evil to play well with each other.
11182 For some background see @url{https://github.com/magit/evil-magit/issues/1}.
11183 See the README at @url{https://github.com/justbur/evil-magit} for a table
11184 describing the key binding changes.")
11185 (license license:gpl3+))))
11186
11187 (define-public emacs-evil-mu4e
11188 ;; Evil-mu4e is included in Evil Collection from 20180617.
11189 (deprecated-package "emacs-evil-mu4e" emacs-evil-collection))
11190
11191 (define-public emacs-evil-multiedit
11192 (package
11193 (name "emacs-evil-multiedit")
11194 (version "1.3.9")
11195 (source
11196 (origin
11197 (method git-fetch)
11198 (uri (git-reference
11199 (url "https://github.com/hlissner/evil-multiedit")
11200 (commit (string-append "v" version))))
11201 (file-name (string-append name "-" version "-checkout"))
11202 (sha256
11203 (base32
11204 "19h3kqylqzbjv4297wkzzxdmn9yxbg6z4ga4ssrqri90xs7m3rw3"))))
11205 (build-system emacs-build-system)
11206 (propagated-inputs
11207 `(("emacs-evil" ,emacs-evil)
11208 ("emacs-iedit" ,emacs-iedit)))
11209 (home-page
11210 "https://github.com/hlissner/evil-multiedit")
11211 (synopsis "Multiple cursors for Evil mode")
11212 (description
11213 "This plugin was an answer to the lack of proper multiple cursor support
11214 in Emacs+Evil. It allows you to select and edit matches interactively,
11215 integrating @code{iedit-mode} into Evil mode with an attempt at sensible
11216 defaults.")
11217 (license license:gpl3+)))
11218
11219 (define-public emacs-evil-org
11220 (let ((commit "b6d652a9163d3430a9e0933a554bdbee5244bbf6"))
11221 (package
11222 (name "emacs-evil-org")
11223 (version (git-version "0.1.1" "1" commit))
11224 (source
11225 (origin
11226 (method git-fetch)
11227 (uri (git-reference
11228 (url "https://github.com/Somelauw/evil-org-mode")
11229 (commit commit)))
11230 (file-name (string-append name "-" version "-checkout"))
11231 (sha256
11232 (base32
11233 "176hrw7y7nczffbyhsa167b8rvfacsmcafm2gpkrdjqlrikbmrhl"))))
11234 (build-system emacs-build-system)
11235 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
11236 (home-page
11237 "https://github.com/Somelauw/evil-org-mode")
11238 (synopsis "Evil keybindings for Org mode")
11239 (description
11240 "This package adds supplemental Evil mode key-bindings to Emacs
11241 Org-mode. It features:
11242 @itemize
11243 @item normal, visual and insert mode bindings;
11244 @item key bindings organised in key themes;
11245 @item operators like > and < to work on headings;
11246 @item text objects;
11247 @item table support;
11248 @item calendar (date selection) support;
11249 @item agenda support.
11250 @end itemize\n")
11251 (license license:gpl3+))))
11252
11253 (define-public emacs-fish-completion
11254 (let ((commit "bac15fda1392a891070574dfe5d2d50b10831e8b"))
11255 (package
11256 (name "emacs-fish-completion")
11257 (version (git-version "20180616" "1" commit))
11258 (source
11259 (origin
11260 (method url-fetch)
11261 (uri (string-append
11262 "https://gitlab.com/Ambrevar/emacs-fish-completion/repository/"
11263 "archive.tar.gz?ref="
11264 commit))
11265 (sha256
11266 (base32
11267 "093qzdrbkl7dhjk16zq8i13kh1phyigkblcfrbgbrxjqd2ndrfdi"))))
11268 (build-system emacs-build-system)
11269 (inputs `(("fish" ,fish)))
11270 (arguments
11271 `(#:phases
11272 (modify-phases %standard-phases
11273 (add-after 'unpack 'configure
11274 (lambda* (#:key inputs outputs #:allow-other-keys)
11275 (let ((fish (assoc-ref inputs "fish")))
11276 ;; Specify the absolute file names of the various
11277 ;; programs so that everything works out-of-the-box.
11278 (emacs-substitute-variables
11279 "fish-completion.el"
11280 ("fish-completion-command"
11281 (string-append fish "/bin/fish")))))))))
11282 (home-page
11283 "https://gitlab.com/Ambrevar/emacs-fish-completion")
11284 (synopsis "Fish completion for Emacs pcomplete")
11285 (description
11286 "This package provides completion for the Fish shell to pcomplete (used
11287 by shell and Eshell). You can set it up globally with:
11288
11289 @example
11290 (when (and (executable-find \"fish\")
11291 (require 'fish-completion nil t))
11292 (global-fish-completion-mode))
11293 @end example
11294
11295 Alternatively, you can call the @code{fish-completion-mode} manually or in
11296 shell/Eshell mode hook.
11297
11298 The package @code{emacs-bash-completion} is an optional dependency: if available,
11299 @code{fish-completion-complete} can be configured to fall back on bash to further
11300 try completing. See @code{fish-completion-fallback-on-bash-p}.")
11301 (license license:gpl3+))))
11302
11303 (define-public emacs-gif-screencast
11304 (let ((commit "12b25442b97b84abae74ecb5190a9d14ff7cfe5a"))
11305 (package
11306 (name "emacs-gif-screencast")
11307 (version (git-version "20180616" "1" commit))
11308 (source
11309 (origin
11310 (method url-fetch)
11311 (uri (string-append
11312 "https://gitlab.com/Ambrevar/emacs-gif-screencast/"
11313 "repository/archive.tar.gz?ref="
11314 commit))
11315 (sha256
11316 (base32
11317 "0lc457i78xjkn5idr2aaiadkh76zcsksj84z0qh80a9y775syrgh"))))
11318 (build-system emacs-build-system)
11319 (inputs
11320 `(("scrot" ,scrot)
11321 ("imagemagick" ,imagemagick)
11322 ("gifsicle" ,gifsicle)))
11323 (arguments
11324 `(#:phases
11325 (modify-phases %standard-phases
11326 (add-after 'unpack 'configure
11327 (lambda* (#:key inputs outputs #:allow-other-keys)
11328 (let ((scrot (assoc-ref inputs "scrot"))
11329 (imagemagick (assoc-ref inputs "imagemagick"))
11330 (gifsicle (assoc-ref inputs "gifsicle")))
11331 ;; Specify the absolute file names of the various
11332 ;; programs so that everything works out-of-the-box.
11333 (emacs-substitute-variables
11334 "gif-screencast.el"
11335 ("gif-screencast-program"
11336 (string-append scrot "/bin/scrot"))
11337 ("gif-screencast-convert-program"
11338 (string-append imagemagick "/bin/convert"))
11339 ("gif-screencast-cropping-program"
11340 (string-append imagemagick "/bin/mogrify"))
11341 ("gif-screencast-optimize-program"
11342 (string-append imagemagick "/bin/gifsicle")))))))))
11343 (home-page
11344 "https://gitlab.com/Ambrevar/emacs-gif-screencast")
11345 (synopsis "One-frame-per-action GIF recording")
11346 (description
11347 "Call @code{gif-screencast} to start a recording.
11348 A screenshot is taken for every user action. Call
11349 @code{gif-screencast-stop} (<f9> by default) to finish recording and create
11350 the GIF result.")
11351 (license license:gpl3+))))
11352
11353 (define-public emacs-google-translate
11354 (package
11355 (name "emacs-google-translate")
11356 (version "0.11.16")
11357 (source
11358 (origin
11359 (method url-fetch)
11360 (uri (string-append "https://github.com/atykhonov/google-translate/"
11361 "archive/v" version ".tar.gz"))
11362 (file-name (string-append name "-" version ".tar.gz"))
11363 (sha256
11364 (base32
11365 "01n9spj1d0gjfj39x526rl3m9c28wnx9afipmf5s8y77cx3mfwhl"))))
11366 (build-system emacs-build-system)
11367 (home-page "https://github.com/atykhonov/google-translate")
11368 (synopsis "Emacs interface to Google Translate")
11369 (description
11370 "This packages provides an Emacs interface to the Google Translate
11371 on-line service.")
11372 (license license:gpl3+)))
11373
11374 (define-public emacs-helm-company
11375 (let ((commit "d3fc093a0e833b4dee6561c00d6df3d62aa50f3f"))
11376 (package
11377 (name "emacs-helm-company")
11378 (version (git-version "0.2.3" "1" commit))
11379 (source
11380 (origin
11381 (method git-fetch)
11382 (uri (git-reference
11383 (url "https://github.com/Sodel-the-Vociferous/helm-company")
11384 (commit commit)))
11385 (file-name (string-append name "-" version "-checkout"))
11386 (sha256
11387 (base32
11388 "1ciirsanhajdqm5iwl8k9ywf4jha1wdv4sc4d9kslyrfr9zn4q6k"))))
11389 (build-system emacs-build-system)
11390 (propagated-inputs
11391 `(("emacs-helm" ,emacs-helm)
11392 ("emacs-company" ,emacs-company)))
11393 (home-page "https://github.com/Sodel-the-Vociferous/helm-company")
11394 (synopsis "Helm interface for company-mode")
11395 (description
11396 "This is a Helm interface to company-mode, a text completion
11397 framework.")
11398 (license license:gpl3+))))
11399
11400 (define-public emacs-helm-descbinds
11401 (let ((commit "033be73f21778633813264ce1634a6e1ad873d8e"))
11402 (package
11403 (name "emacs-helm-descbinds")
11404 (version (git-version "1.13" "1" commit))
11405 (source
11406 (origin
11407 (method git-fetch)
11408 (uri (git-reference
11409 (url "https://github.com/emacs-helm/helm-descbinds")
11410 (commit commit)))
11411 (file-name (string-append name "-" version "-checkout"))
11412 (sha256
11413 (base32
11414 "1n89p56qwa243w1c85i5awnaf7piwjsvfi7nmnsrwm33hix5dknk"))))
11415 (build-system emacs-build-system)
11416 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
11417 (home-page "https://github.com/emacs-helm/helm-descbinds")
11418 (synopsis "Convenient @code{describe-bindings} with Helm")
11419 (description
11420 "This package is a replacement of @code{describe-bindings} for Helm.
11421 @code{describe-bindings} is replaced with @code{helm-descbinds}. As usual,
11422 type @code{C-h b}, or any incomplete key sequence plus @code{C-h}, to run
11423 @code{helm-descbinds}. The bindings are presented in a similar way as
11424 @code{describe-bindings} does, but you can use completion to find the command
11425 you searched for and execute it, or view its documentation.")
11426 (license license:gpl3+))))
11427
11428 (define-public emacs-helm-emms
11429 (let ((commit "d3f9bdef8ff0d093eaf6e26af50ea905ab53fdec"))
11430 (package
11431 (name "emacs-helm-emms")
11432 (version (git-version "1.3" "1" commit))
11433 (source
11434 (origin
11435 (method git-fetch)
11436 (uri (git-reference
11437 (url "https://github.com/emacs-helm/helm-emms")
11438 (commit commit)))
11439 (file-name (string-append name "-" version "-checkout"))
11440 (sha256
11441 (base32
11442 "0bdb8xp0yp3gijpa9i2rc17gfzjhzlm92vdzw93i10qpd1xhj4aa"))))
11443 (build-system emacs-build-system)
11444 (propagated-inputs
11445 `(("emacs-helm" ,emacs-helm)
11446 ("emacs-emms" ,emacs-emms)))
11447 (home-page
11448 "https://github.com/emacs-helm/helm-emms")
11449 (synopsis "Emms for Helm")
11450 (description "Helm interface for Emms to browse all tracks and all folders
11451 from @code{emms-source-file-default-directory}.")
11452 (license license:gpl3+))))
11453
11454 (define-public emacs-helm-exwm
11455 (let ((commit "56266f261ba3b3d2753b374b50da20eb768c06f5"))
11456 (package
11457 (name "emacs-helm-exwm")
11458 (version (git-version "20180703" "2" commit))
11459 (source
11460 (origin
11461 (method url-fetch)
11462 (uri (string-append
11463 "https://github.com/emacs-helm/helm-exwm/archive/"
11464 commit
11465 ".tar.gz"))
11466 (sha256
11467 (base32
11468 "0n7hdiajw5vxl8ha2r9r4cl4i7crza25348825wb6acwhhzijxcj"))))
11469 (build-system emacs-build-system)
11470 (propagated-inputs
11471 `(("emacs-helm" ,emacs-helm)
11472 ("emacs-exwm" ,emacs-exwm)))
11473 (home-page
11474 "https://github.com/emacs-helm/helm-exwm")
11475 (synopsis "Helm for EXWM buffers")
11476 (description
11477 "@code{helm-exwm} runs a Helm session over the list of EXWM buffers.
11478 @code{helm-exwm-switch} is a convenience X application launcher using Helm to
11479 switch between the various windows of one or several specific applications.
11480 See @code{helm-exwm-switch-browser} for an example.")
11481 (license license:gpl3+))))
11482
11483 (define-public emacs-helm-flycheck
11484 (let ((commit "3cf7d3bb194acacc6395f88360588013d92675d6"))
11485 (package
11486 (name "emacs-helm-flycheck")
11487 (version (git-version "0.4" "1" commit))
11488 (source
11489 (origin
11490 (method git-fetch)
11491 (uri (git-reference
11492 (url "https://github.com/yasuyk/helm-flycheck")
11493 (commit commit)))
11494 (file-name (string-append name "-" version "-checkout"))
11495 (sha256
11496 (base32
11497 "1a2yfxhz04klwhcandqvfzysxp6b7bxyxx1xk1x3kds5hif5fkl4"))))
11498 (build-system emacs-build-system)
11499 (propagated-inputs
11500 `(("emacs-dash" ,emacs-dash)
11501 ("emacs-flycheck" ,emacs-flycheck)
11502 ("emacs-helm" ,emacs-helm)))
11503 (home-page "https://github.com/yasuyk/helm-flycheck")
11504 (synopsis "Show Flycheck errors with Helm")
11505 (description
11506 "This integrates Flycheck with Helm.")
11507 (license license:gpl3+))))
11508
11509 (define-public emacs-helm-ls-git
11510 (let ((commit "76654c776a7f6e2e5290645e748aac2a746f7daa"))
11511 (package
11512 (name "emacs-helm-ls-git")
11513 (version (git-version "1.9.1" "1" commit))
11514 (source
11515 (origin
11516 (method git-fetch)
11517 (uri (git-reference
11518 (url "https://github.com/emacs-helm/helm-ls-git")
11519 (commit commit)))
11520 (file-name (string-append name "-" version "-checkout"))
11521 (sha256
11522 (base32
11523 "0vsq1n3xl3ghy5zik2scm7jrs501n4kybdqd6yw6j0cv4jxdqbr0"))))
11524 (build-system emacs-build-system)
11525 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
11526 (home-page "https://github.com/emacs-helm/helm-ls-git")
11527 (synopsis "Helm interface for listing the files in a Git repository")
11528 (description
11529 "This package provides a Helm interface for Git files.
11530 @itemize
11531 @item Display the open buffers in project.
11532 @item Display a status source showing state of project (modified files etc.).
11533 @item Display a list of all files in project under git control.
11534 @item Quickly look at diffs of modified files.
11535 @item Allow switching to @code{git status} with your preferred frontend
11536 (vc-dir, Magit,etc.).
11537 @item Full integration of git-grep, also allow usage of @code{helm-grep} (you
11538 can use ack-grep instead of grep).
11539 @item Integrate usage of gid from id-utils.
11540 @item Full integration with @code{helm-find-files}, allow you to browse
11541 projects unrelated to current-buffer.
11542 @item In addition, all actions of type files and buffers are provided.
11543 @end itemize\n")
11544 (license license:gpl3+))))
11545
11546 (define-public emacs-helm-mu
11547 (let ((commit "77e6fea24e01481418738421dbcfe28ef1bd63cf"))
11548 (package
11549 (name "emacs-helm-mu")
11550 (version (git-version "20180513" "1" commit))
11551 (source
11552 (origin
11553 (method url-fetch)
11554 (uri (string-append
11555 "https://github.com/emacs-helm/helm-mu/archive/"
11556 commit
11557 ".tar.gz"))
11558 (sha256
11559 (base32
11560 "0qm4xi3i957scm50nar398pv4x8y03si10l77jb9ckjaviyq2hj9"))))
11561 (build-system emacs-build-system)
11562 (propagated-inputs
11563 `(("emacs-helm" ,emacs-helm)
11564 ("mu" ,mu)))
11565 (home-page
11566 "https://github.com/emacs-helm/helm-mu")
11567 (synopsis
11568 "Helm sources for searching emails and contacts")
11569 (description
11570 "Helm sources for searching emails and contacts using @code{mu} and
11571 @code{mu4e}. Mu is an indexer for maildirs and mu4e is a mutt-like MUA for
11572 Emacs build on top of mu. Mu is highly efficient making it possible to get
11573 instant results even for huge maildirs. It also provides search operators,
11574 e.g: @code{from:Peter to:Anne flag:attach search term}.")
11575 (license license:gpl3+))))
11576
11577 (define-public emacs-helm-pass
11578 (let ((commit "ebcbef1a962795a36e3491ae926e2a4b8a8b0ebb"))
11579 (package
11580 (name "emacs-helm-pass")
11581 (version (git-version "20180416" "1" commit))
11582 (source
11583 (origin
11584 (method url-fetch)
11585 (uri (string-append
11586 "https://github.com/jabranham/helm-pass/archive/"
11587 commit
11588 ".tar.gz"))
11589 (sha256
11590 (base32
11591 "1pgq4hj9wvz7z2fyxwsvbh6rmc1akya84v382nx26rr76iavz6wi"))))
11592 (build-system emacs-build-system)
11593 (propagated-inputs
11594 `(("emacs-helm" ,emacs-helm)
11595 ("emacs-password-store" ,emacs-password-store)))
11596 (home-page
11597 "https://github.com/jabranham/helm-pass")
11598 (synopsis "Helm interface to pass, the standard Unix password manager")
11599 (description
11600 "Users of @code{helm-pass} may also be interested in functionality
11601 provided by other Emacs packages dealing with pass:
11602 @itemize
11603 @item @code{emacs-password-store}, which @code{helm-pass} relies on.
11604 @item @code{emacs-pass}, a major mode for @code{pass}.
11605 @item @code{auth-source-pass.el}: integration of Emacs' auth-source with
11606 @code{pass}, included in Emacs 26+).
11607 @end itemize\n")
11608 (license license:gpl3+))))
11609
11610 (define-public emacs-image+
11611 (let ((commit "6834d0c09bb4df9ecc0d7a559bd7827fed48fffc"))
11612 (package
11613 (name "emacs-image+")
11614 (version (git-version "0.6.2" "1" commit))
11615 (source
11616 (origin
11617 (method git-fetch)
11618 (uri (git-reference
11619 (url "https://github.com/mhayashi1120/Emacs-imagex")
11620 (commit commit)))
11621 (file-name (string-append name "-" version "-checkout"))
11622 (sha256
11623 (base32
11624 "0v66wk9nh0raih4jhrzmmyi5lbysjnmbv791vm2230ffi2hmwxnd"))))
11625 (build-system emacs-build-system)
11626 (inputs `(("imagemagick" ,imagemagick)))
11627 (arguments
11628 `(#:phases
11629 (modify-phases %standard-phases
11630 (add-after 'unpack 'configure
11631 (lambda* (#:key inputs outputs #:allow-other-keys)
11632 (let ((imagemagick (assoc-ref inputs "imagemagick")))
11633 ;; Specify the absolute file names of the various
11634 ;; programs so that everything works out-of-the-box.
11635 (chmod "image+.el" #o666)
11636 (emacs-substitute-variables
11637 "image+.el"
11638 ("imagex-convert-command"
11639 (string-append imagemagick "/bin/convert"))
11640 ("imagex-identify-command"
11641 (string-append imagemagick "/bin/identify")))))))))
11642 (home-page "https://github.com/mhayashi1120/Emacs-imagex")
11643 (synopsis "Image manipulation extensions for Emacs")
11644 (description
11645 "Image+ provides keybindings allowing you to zoom in or zoom out of an
11646 image, rotate it, save modified images, and more.")
11647 (license license:gpl3+))))
11648
11649 (define-public emacs-package-lint
11650 (let ((commit "69bb89d00ba212b734c676ad056aa793c450b288"))
11651 (package
11652 (name "emacs-package-lint")
11653 (version (git-version "0.5" "1" commit))
11654 (source
11655 (origin
11656 (method git-fetch)
11657 (uri (git-reference
11658 (url "https://github.com/purcell/package-lint")
11659 (commit commit)))
11660 (file-name (string-append name "-" version "-checkout"))
11661 (sha256
11662 (base32
11663 "1hfricsgmy3x9snnd2p4xq6vnnv94qdsxxnxp07b3hqc9bhw31rq"))))
11664 (build-system emacs-build-system)
11665 (home-page "https://github.com/purcell/package-lint")
11666 (synopsis "Linting library for elisp package authors")
11667 (description
11668 "This provides a list of issues with the Emacs package metadata of a file,
11669 e.g. the package dependencies it requires. See function
11670 @code{package-lint-buffer}. Checks will currently be enabled only if a
11671 \"Package-Requires:\" or \"Package-Version:\" header is present in the
11672 file.")
11673 (license license:gpl3+))))
11674
11675 (define-public emacs-picpocket
11676 (let ((version "40")
11677 (commit "6fd88b8711c4370662c0f9c462170187d092a046"))
11678 (package
11679 (name "emacs-picpocket")
11680 (version version)
11681 (source
11682 (origin
11683 (method git-fetch)
11684 (uri (git-reference
11685 (url "https://github.com/johanclaesson/picpocket")
11686 (commit commit)))
11687 (file-name (git-file-name name version))
11688 (sha256
11689 (base32 "1mdzzxf7xm7zwrpnqqxa27d1cr31pd72d7ilbwljv13qp177a3yw"))))
11690 (build-system emacs-build-system)
11691 (arguments ; needed for running tests
11692 `(#:tests? #t
11693 #:emacs ,emacs
11694 #:test-command '("emacs" "--batch"
11695 "-l" "picpocket-test.el"
11696 "-f" "ert-run-tests-batch-and-exit")))
11697 (home-page "https://github.com/johanclaesson/picpocket")
11698 (synopsis "Image viewer for Emacs")
11699 (description
11700 "Picpocket is an image viewer for GNU Emacs. It has commands for:
11701
11702 @itemize
11703 @item File operations on the picture files (delete, move, copy, hardlink).
11704 @item Scale and rotate the picture.
11705 @item Associate pictures with tags which are saved to disk.
11706 @item Filter pictures according to tags.
11707 @item Customizing keystrokes for quick tagging and file operations.
11708 @item Undo and browse history of undoable commands.
11709 @end itemize")
11710 (license license:gpl3+))))
11711
11712 (define-public emacs-wgrep-helm
11713 ;; `emacs-wgrep-helm' was mistakenly added.
11714 (deprecated-package "emacs-wgrep-helm" emacs-wgrep))
11715
11716 (define-public emacs-mu4e-conversation
11717 (let ((commit "e7d4bfcb0d392b0aed1f705ccac2419a168d1f5e"))
11718 (package
11719 (name "emacs-mu4e-conversation")
11720 (version (git-version "20181126" "4" commit))
11721 (source
11722 (origin
11723 (method url-fetch)
11724 (uri (string-append
11725 "https://gitlab.com/Ambrevar/mu4e-conversation/"
11726 "repository/archive.tar.gz?ref="
11727 commit))
11728 (file-name (string-append name "-" version "-checkout"))
11729 (sha256
11730 (base32
11731 "0b52hf9rm2afba9pvgink9bwqm705sk0y5qikp0ff5sk53wqvy29"))))
11732 (build-system emacs-build-system)
11733 (propagated-inputs
11734 `(("mu" ,mu)))
11735 (home-page
11736 "https://gitlab.com/Ambrevar/mu4e-conversation")
11737 (synopsis
11738 "Show a complete thread in a single buffer")
11739 (description
11740 "This package offers an alternate view to mu4e's e-mail display. It
11741 shows all e-mails of a thread in a single view, where each correspondent has
11742 their own face. Threads can be displayed linearly (in which case e-mails are
11743 displayed in chronological order) or as an Org document where the node tree
11744 maps the thread tree.")
11745 (license license:gpl3+))))
11746
11747 (define-public emacs-pinentry
11748 (let ((commit "dcc9ba03252ee5d39e03bba31b420e0708c3ba0c")
11749 (revision "1"))
11750 (package
11751 (name "emacs-pinentry")
11752 (version (git-version "0.1" revision commit))
11753 (source
11754 (origin
11755 (method url-fetch)
11756 (uri (string-append
11757 "http://git.savannah.gnu.org/cgit/emacs/elpa.git/plain"
11758 "/packages/pinentry/pinentry.el?id=" commit))
11759 (file-name (string-append "pinentry.el"))
11760 (sha256
11761 (base32
11762 "1lf30q6r8nz5cjzclbb9bbymsk2y75nskvb55hnjdv93gr3j0sik"))))
11763 (build-system emacs-build-system)
11764 (propagated-inputs
11765 `(("gnupg" ,gnupg)))
11766 (home-page "https://elpa.gnu.org/packages/pinentry.html")
11767 (synopsis "GnuPG Pinentry server implementation")
11768 (description
11769 "This package allows GnuPG passphrase to be prompted through the
11770 minibuffer instead of graphical dialog.
11771
11772 To use, add @code{allow-emacs-pinentry} to @code{~/.gnupg/gpg-agent.conf},
11773 reload the configuration with @code{gpgconf --reload gpg-agent}, and start the
11774 server with @code{M-x pinentry-start}.")
11775 (license license:gpl3+))))
11776
11777 (define-public emacs-org-brain
11778 (package
11779 (name "emacs-org-brain")
11780 (version "0.5")
11781 (source
11782 (origin
11783 (method git-fetch)
11784 (uri (git-reference
11785 (url "https://github.com/Kungsgeten/org-brain.git")
11786 (commit "3faf9303af3f2356e3444e69c22dc6c5774047d1")))
11787 (file-name (git-file-name name version))
11788 (sha256
11789 (base32
11790 "1ad681zk6kckw2zbk0r4iaj4bw8cfqrbd1s3gdwgdjlzq81q9mmj"))))
11791 (build-system emacs-build-system)
11792 (home-page "https://github.com/Kungsgeten/org-brain")
11793 (synopsis "Org-mode wiki and concept-mapping for Emacs")
11794 (description "@code{emacs-org-brain} implements a variant of concept
11795 mapping in Emacs, using @code{org-mode}. An org-brain is a network of
11796 org-mode entries, where each entry is a file or a headline, and you can get a
11797 visual overview of the relationships between the entries: parents, children,
11798 siblings and friends. This visual overview can also be used to browse your
11799 entries. You can think of entries as nodes in a mind map, or pages in a
11800 wiki.")
11801 (license license:expat)))
11802
11803 (define-public emacs-recent-addresses
11804 (let ((commit "afbbfdc43b81e620acf827ca20d297e0c517b6eb")
11805 (revision "1"))
11806 (package
11807 (name "emacs-recent-addresses")
11808 (home-page "http://nschum.de/src/emacs/recent-addresses/")
11809 (version (git-version "0.1" revision commit))
11810 (source (origin
11811 (method git-fetch)
11812 (uri (git-reference
11813 ;; Note: Use a branch that works with Helm. Submitted
11814 ;; at <https://github.com/nschum/recent-addresses.el/pull/1>.
11815 (url "https://github.com/civodul/recent-addresses.el")
11816 (commit commit)))
11817 (sha256
11818 (base32
11819 "0ajrq0galjmdyjdjyxazykjyax3gh6hvfk4s7l657pi11g0q5zax"))
11820 (file-name (git-file-name name version))))
11821 (build-system emacs-build-system)
11822 (synopsis "Record recently-used email addressed and auto-complete them")
11823 (description
11824 "@code{recent-addresses} is an Emacs package that allows you to quickly
11825 look up previously used email addresses. It can be used alongside the Gnus
11826 email client.")
11827 (license license:gpl2+))))
11828
11829 (define-public emacs-fold-dwim
11830 (let ((commit "c46f4bb2ce91b4e307136320e72c28dd50b6cd8b")
11831 (revision "0"))
11832 (package
11833 (name "emacs-fold-dwim")
11834 (version (git-version "1.2" revision commit))
11835 (home-page "https://github.com/emacsattic/fold-dwim")
11836 (source (origin
11837 (method git-fetch)
11838 (uri (git-reference (url home-page) (commit commit)))
11839 (sha256
11840 (base32
11841 "1yz1wis31asw6xa5maliyd1ck2q02xnnh7dc6swgj9cb4wi7k6i1"))
11842 (file-name (git-file-name name version))))
11843 (build-system emacs-build-system)
11844 (synopsis "Unified user interface for Emacs folding modes")
11845 (description
11846 "DWIM stands for \"do what I mean\", as in the idea that one keystroke
11847 can do different things depending on the context. In this package, it means
11848 that, if the cursor is in a currently hidden folded construction, we want to
11849 show it; if it's not, we want to hide whatever fold the cursor is in.")
11850 (license license:gpl2+))))
11851
11852 (define-public emacs-markup-faces
11853 (package
11854 (name "emacs-markup-faces")
11855 (version "1.0.0")
11856 (source
11857 (origin
11858 (method url-fetch)
11859 (uri (string-append "https://stable.melpa.org/packages/markup-faces-"
11860 version ".el"))
11861 (sha256
11862 (base32
11863 "124dxbaa25fwxnpwsygpz7pw6da6dnnw7y2lic3jf8rgz7lw4v32"))))
11864 (build-system emacs-build-system)
11865 (home-page "https://github.com/sensorflo/markup-faces")
11866 (synopsis "Collection of Emacs faces for markup language modes")
11867 (description "emacs-markup-faces is like font-lock-faces, but tailored for
11868 markup languages instead programming languages. The sub group markup-faces-text
11869 is also intended for 'text viewing modes' such as info or (wo)man. This gives a
11870 common look and feel, or let's say theme, across different markup language modes
11871 and 'text viewing modes' respectively.")
11872 (license license:gpl3+)))
11873
11874 (define-public emacs-adoc-mode
11875 (package
11876 (name "emacs-adoc-mode")
11877 (version "0.6.6")
11878 (source
11879 (origin
11880 (method url-fetch)
11881 (uri (string-append "https://stable.melpa.org/packages/adoc-mode-"
11882 version ".el"))
11883 (sha256
11884 (base32
11885 "1c6hrgxxsnl2c19rgjykpm7r4xg9lp6bmk5z6bi7g8pqlrgwffcy"))))
11886 (build-system emacs-build-system)
11887 (propagated-inputs
11888 `(("emacs-markup-faces" ,emacs-markup-faces)))
11889 (home-page "https://github.com/sensorflo/adoc-mode/wiki")
11890 (synopsis "AsciiDoc mode for Emacs")
11891 (description "This package provides an Emacs major mode for editing AsciiDoc
11892 files. It focuses on highlighting the document to improve readability.")
11893 (license license:gpl2+)))
11894
11895 (define-public emacs-rust-mode
11896 (let ((commit
11897 ;; Last release is old (2016), use more recent commit to get bug
11898 ;; fixes.
11899 "64b4a2450e4d4c47f6307851c9b2598cd2254d68")
11900 (revision "0"))
11901 (package
11902 (name "emacs-rust-mode")
11903 (version (git-version "0.3.0" revision commit))
11904 (source (origin
11905 (method git-fetch)
11906 (uri
11907 (git-reference
11908 (url "https://github.com/rust-lang/rust-mode")
11909 (commit commit)))
11910 (file-name (git-file-name name version))
11911 (sha256
11912 (base32
11913 "0pbz36lljgb7bdgx3h3g0pq1nss1kvn8mhk1l3mknsmynd6w4nd8"))))
11914 (build-system emacs-build-system)
11915 (arguments
11916 `(#:phases
11917 (modify-phases %standard-phases
11918 (replace 'check
11919 (lambda _
11920 (invoke "sh" "run_rust_emacs_tests.sh"))))))
11921 (home-page "https://github.com/rust-lang/rust-mode")
11922 (synopsis "Major Emacs mode for editing Rust source code")
11923 (description "This package provides a major Emacs mode for editing Rust
11924 source code.")
11925 (license (list license:expat
11926 license:asl2.0)))))
11927
11928 (define-public emacs-ztree
11929 (let ((commit "c54425a094353ec40a8179f9eab3596f76c6cf94"))
11930 (package
11931 (name "emacs-ztree")
11932 (version (git-version "1.0.5" "1" commit))
11933 (source
11934 (origin
11935 (method git-fetch)
11936 (uri (git-reference
11937 (url "https://github.com/fourier/ztree")
11938 (commit commit)))
11939 (file-name (git-file-name name version))
11940 (sha256
11941 (base32
11942 "0j8fpxds8m1zi04nrs8vv21091abvh4n8ab76f1sgdxnp4l5cfb0"))))
11943 (build-system emacs-build-system)
11944 (home-page "https://github.com/fourier/ztree")
11945 (synopsis "Directory tree comparison mode for Emacs")
11946 (description "Ztree is a project dedicated to implementation of several
11947 text-tree applications inside GNU Emacs. It consists of 2 subprojects:
11948 @command{ztree-diff} and @command{ztree-dir} (the basis of
11949 @command{ztree-diff}).")
11950 (license license:gpl3))))
11951
11952 (define-public emacs-helm-org-contacts
11953 (let ((commit "0af703bd9a43032b89fdf5559673151d1ac2fffc"))
11954 (package
11955 (name "emacs-helm-org-contacts")
11956 (version (git-version "20180707" "1" commit))
11957 (source
11958 (origin
11959 (method git-fetch)
11960 (uri (git-reference
11961 (url "https://github.com/tmalsburg/helm-org-contacts")
11962 (commit commit)))
11963 (file-name (git-file-name name version))
11964 (sha256
11965 (base32
11966 "1cl7cm2ic9pg4vc9cdh84vzjj1x2lpd5ymimiva8h4l17kiphk4s"))))
11967 (build-system emacs-build-system)
11968 (propagated-inputs
11969 `(("emacs-dash" ,emacs-dash)
11970 ("emacs-helm" ,emacs-helm)
11971 ("emacs-s" ,emacs-s)))
11972 (home-page "https://github.com/tmalsburg/helm-org-contacts")
11973 (synopsis "Helm source for org-contacts")
11974 (description "This Helm source can be used to search contacts stored in
11975 org-contacts format. There are actions for inserting postal addresses, email
11976 addresses, and phone numbers in the buffer where @command{helm-org-contacts}
11977 was called.")
11978 (license license:gpl3))))
11979
11980 (define-public emacs-dired-du
11981 (package
11982 (name "emacs-dired-du")
11983 (version "0.5.1")
11984 (source
11985 (origin
11986 (method url-fetch)
11987 (uri (string-append
11988 "https://elpa.gnu.org/packages/dired-du-"
11989 version ".tar"))
11990 (sha256
11991 (base32
11992 "1091scnrjh0a4gja4z6jxic6ghy1yryv46qk9c76pmh50cpw6766"))))
11993 (build-system emacs-build-system)
11994 (home-page "http://elpa.gnu.org/packages/dired-du.html")
11995 (synopsis "Dired with recursive directory sizes")
11996 (description
11997 "Display the recursive size of directories in Dired.
11998 This file defines a minor mode @command{dired-du-mode} to show the recursive
11999 size of directories in Dired buffers. If @command{du} program is available,
12000 then the directory sizes are obtained with it. Otherwise, the directory sizes
12001 are obtained with Lisp. The former is faster and provide a more precise
12002 value. For directories where the user doesn't have read permission, the
12003 recursive size is not obtained. Once this mode is enabled, every new Dired
12004 buffer displays recursive dir sizes.")
12005 (license license:gpl3+)))
12006
12007 (define-public emacs-pcre2el
12008 ;; Last release is very old so we get the latest commit.
12009 (let ((commit "0b5b2a2c173aab3fd14aac6cf5e90ad3bf58fa7d"))
12010 (package
12011 (name "emacs-pcre2el")
12012 (version (git-version "1.8" "1" commit))
12013 (source
12014 (origin
12015 (method git-fetch)
12016 (uri (git-reference
12017 (url "https://github.com/joddie/pcre2el")
12018 (commit commit)))
12019 (file-name (git-file-name name version))
12020 (sha256
12021 (base32
12022 "14br6ad138qx1z822wqssswqiihxiynz1k69p6mcdisr2q8yyi1z"))))
12023 (build-system emacs-build-system)
12024 (home-page "https://github.com/joddie/pcre2el")
12025 (synopsis "Convert between PCRE, Emacs and rx regexp syntax")
12026 (description "@code{pcre2el} or @code{rxt} (RegeXp Translator or RegeXp
12027 Tools) is a utility for working with regular expressions in Emacs, based on a
12028 recursive-descent parser for regexp syntax. In addition to converting (a
12029 subset of) PCRE syntax into its Emacs equivalent, it can do the following:
12030
12031 @itemize
12032 @item convert Emacs syntax to PCRE
12033 @item convert either syntax to @code{rx}, an S-expression based regexp syntax
12034 @item untangle complex regexps by showing the parse tree in @code{rx} form and
12035 highlighting the corresponding chunks of code
12036 @item show the complete list of strings (productions) matching a regexp,
12037 provided the list is finite
12038 @item provide live font-locking of regexp syntax (so far only for Elisp
12039 buffers – other modes on the TODO list).
12040 @end itemize\n")
12041 (license license:gpl3))))
12042
12043 (define-public emacs-magit-todos
12044 (package
12045 (name "emacs-magit-todos")
12046 (version "1.1")
12047 (source
12048 (origin
12049 (method git-fetch)
12050 (uri (git-reference
12051 (url "https://github.com/alphapapa/magit-todos")
12052 (commit version)))
12053 (file-name (git-file-name name version))
12054 (sha256
12055 (base32
12056 "1mvzbxshr6zjdim3jd368ar1hy5l7n22i03cpvzdmrw83kkwdyhd"))))
12057 (build-system emacs-build-system)
12058 (propagated-inputs
12059 `(("emacs-async" ,emacs-async)
12060 ("emacs-dash" ,emacs-dash)
12061 ("emacs-f" ,emacs-f)
12062 ("emacs-hl-todo" ,emacs-hl-todo)
12063 ("magit" ,emacs-magit)
12064 ("emacs-pcre2el" ,emacs-pcre2el)
12065 ("emacs-s" ,emacs-s)))
12066 (home-page "https://github.com/alphapapa/magit-todos")
12067 (synopsis "Show source files' TODOs (and FIXMEs, etc) in Magit status buffer")
12068 (description "This package displays keyword entries from source code
12069 comments and Org files in the Magit status buffer. Activating an item jumps
12070 to it in its file. By default, it uses keywords from @code{hl-todo}, minus a
12071 few (like NOTE).")
12072 (license license:gpl3)))
12073
12074 (define-public emacs-git-annex
12075 ;; Unreleased version has a fontification fix.
12076 (let ((commit "ebdb44aef1883f1b2b8058e05d30fb9315b03707")
12077 (revision "1"))
12078 (package
12079 (name "emacs-git-annex")
12080 (version (string-append "1.1-" revision "." (string-take commit 8)))
12081 (source
12082 (origin
12083 (method git-fetch)
12084 (uri (git-reference
12085 (url "https://github.com/jwiegley/git-annex-el")
12086 (commit commit)))
12087 (file-name (string-append name "-" version "-checkout"))
12088 (sha256
12089 (base32
12090 "1mzv40gj7k10h7h5s43my8msgzjpj680qprqa9pp8nbyhl49v3wh"))))
12091 (build-system emacs-build-system)
12092 (home-page "https://github.com/jwiegley/git-annex-el")
12093 (synopsis "Emacs integration for git-annex")
12094 (description "Enhances Dired and buffers visiting annex files with
12095 git-annex functionality. In Dired, the names of annex files are shortened by
12096 hiding the symbolic links and fontified based on whether content is present.
12097 Commands for performing some common operations (e.g., unlocking and adding
12098 files) are provided.")
12099 (license license:gpl2+))))
12100
12101 (define-public emacs-hackernews
12102 (let ((commit "d8c450bbc76d6bb65ec5cdb6c3b888a23f3769e9"))
12103 (package
12104 (name "emacs-hackernews")
12105 (version (git-version "0.4.0" "1" commit))
12106 (source
12107 (origin
12108 (method git-fetch)
12109 (uri (git-reference
12110 (url "https://github.com/clarete/hackernews.el")
12111 (commit commit)))
12112 (file-name (git-file-name name version))
12113 (sha256
12114 (base32
12115 "06mp4n6c300jv5lhwf50ircfjckzr2p1zd38s4mqnxxjlf1maim7"))))
12116 (build-system emacs-build-system)
12117 (home-page "https://github.com/clarete/hackernews.el")
12118 (synopsis "Hacker News client for Emacs")
12119 (description "The @command{hackernews} package is able to fetch stories
12120 from six different Hacker News feeds, namely top, new, best, ask, show and job
12121 stories. The default feed is top stories, which corresponds to the Hacker
12122 News homepage.")
12123 (license license:gpl3))))
12124
12125 (define-public emacs-youtube-dl
12126 (let ((commit "7c9d7a7d05b72a7d1b1257a36c5e2b2567b185dd"))
12127 (package
12128 (name "emacs-youtube-dl")
12129 (version (git-version "1.0" "1" commit))
12130 (source
12131 (origin
12132 (method git-fetch)
12133 (uri (git-reference
12134 (url "https://github.com/skeeto/youtube-dl-emacs/")
12135 (commit commit)))
12136 (file-name (git-file-name name version))
12137 (sha256
12138 (base32
12139 "0mh4s089a4x8s380agzb2306kdp1hl204px1n5rrrrdcls7imnh6"))))
12140 (build-system emacs-build-system)
12141 (inputs
12142 `(("youtube-dl" ,youtube-dl)))
12143 (arguments
12144 `(#:phases
12145 (modify-phases %standard-phases
12146 (add-after 'unpack 'configure
12147 (lambda* (#:key inputs #:allow-other-keys)
12148 (let ((youtube-dl (assoc-ref inputs "youtube-dl")))
12149 ;; .el is read-only in git.
12150 (chmod "youtube-dl.el" #o644)
12151 ;; Specify the absolute file names of the various
12152 ;; programs so that everything works out-of-the-box.
12153 (emacs-substitute-variables
12154 "youtube-dl.el"
12155 ("youtube-dl-program"
12156 (string-append youtube-dl "/bin/youtube-dl")))))))))
12157 (home-page "https://github.com/skeeto/youtube-dl-emacs/")
12158 (synopsis "Emacs youtube-dl download manager")
12159 (description "This package manages a video download queue for
12160 @command{youtube-dl}, which serves as the back end. It manages a single
12161 @command{youtube-dl} subprocess, downloading one video at a time. New videos
12162 can be queued at any time.")
12163 (license license:unlicense))))
12164
12165 (define-public emacs-org-web-tools
12166 (package
12167 (name "emacs-org-web-tools")
12168 (version "1.0")
12169 (source
12170 (origin
12171 (method git-fetch)
12172 (uri (git-reference
12173 (url "https://github.com/alphapapa/org-web-tools")
12174 (commit version)))
12175 (file-name (git-file-name name version))
12176 (sha256
12177 (base32
12178 "0kak9h5ny00d39gnwspv53nadnag01brw2fq9zk5wpfc91h9bjng"))))
12179 (build-system emacs-build-system)
12180 (propagated-inputs
12181 `(("emacs-dash" ,emacs-dash)
12182 ("emacs-esxml" ,emacs-esxml)
12183 ("emacs-s" ,emacs-s)))
12184 (inputs
12185 `(("pandoc" ,ghc-pandoc)))
12186 (arguments
12187 `(#:phases
12188 (modify-phases %standard-phases
12189 (add-after 'unpack 'patch-exec-paths
12190 (lambda* (#:key inputs #:allow-other-keys)
12191 (let ((pandoc (assoc-ref inputs "pandoc")))
12192 (substitute* "org-web-tools.el"
12193 (("\"pandoc\"") (string-append "\"" pandoc "/bin/pandoc\"")))
12194 #t))))))
12195 (home-page "https://github.com/alphapapa/org-web-tools")
12196 (synopsis "Display/Process web page as Org-mode content")
12197 (description "This package contains library functions and commands useful
12198 for retrieving web page content and processing it into Org-mode content.
12199
12200 For example, you can copy a URL to the clipboard or kill-ring, then run a
12201 command that downloads the page, isolates the “readable” content with
12202 @command{eww-readable}, converts it to Org-mode content with Pandoc, and
12203 displays it in an Org-mode buffer. Another command does all of that but
12204 inserts it as an Org entry instead of displaying it in a new buffer.")
12205 (license license:gpl3+)))
12206
12207 (define-public emacs-blimp
12208 (let ((commit "e420763d6d18b5d1be552cdbc47f91418343db03"))
12209 (package
12210 (name "emacs-blimp")
12211 (version (git-version "0.0.0" "1" commit))
12212 (source
12213 (origin
12214 (method git-fetch)
12215 (uri (git-reference
12216 (url "https://github.com/walseb/blimp")
12217 (commit commit)))
12218 (file-name (git-file-name name version))
12219 (sha256
12220 (base32
12221 "09wmhpym516b81dfq8smdmysh1fn610dzlyvyl2rkx8600f0fizd"))))
12222 (build-system emacs-build-system)
12223 (propagated-inputs
12224 `(("emacs-eimp" ,emacs-eimp)))
12225 (home-page "https://github.com/walseb/blimp")
12226 (synopsis "Emacs wrapper around all Imagemagick commands")
12227 (description "Blimp (Bustling Image Manipulation Package) is a complete
12228 wrapper around all Imagemagick commands with descriptions, autocompletion (for
12229 some commands) and hints displayed in prompt using @command{eimp.el} to
12230 execute its commands and resize images.")
12231 (license license:gpl3+))))
12232
12233 (define-public emacs-synosaurus
12234 (let ((commit "8bf95b935976ec0a1964cf175ed57cc5f6f93bdb"))
12235 (package
12236 (name "emacs-synosaurus")
12237 (version (git-version "0.1.0" "1" commit))
12238 (source
12239 (origin
12240 (method git-fetch)
12241 (uri (git-reference
12242 (url "https://github.com/hpdeifel/synosaurus")
12243 (commit commit)))
12244 (file-name (git-file-name name version))
12245 (sha256
12246 (base32
12247 "15by9jccab6kyplxa6k0glzaivxkqdigl33gl2qi2cvy6f2q7gva"))))
12248 (build-system emacs-build-system)
12249 (propagated-inputs
12250 `(("wordnet" ,wordnet)))
12251 (arguments
12252 `(#:phases
12253 (modify-phases %standard-phases
12254 (add-after 'unpack 'configure
12255 (lambda* (#:key inputs outputs #:allow-other-keys)
12256 (let ((wn (assoc-ref inputs "wordnet")))
12257 ;; .el is read-only in git.
12258 (chmod "synosaurus-wordnet.el" #o644)
12259 ;; Specify the absolute file names of the various
12260 ;; programs so that everything works out-of-the-box.
12261 (emacs-substitute-variables
12262 "synosaurus-wordnet.el"
12263 ("wordnet-command"
12264 (string-append wn "/bin/wn")))))))))
12265 (home-page "https://github.com/hpdeifel/synosaurus")
12266 (synopsis "Extensible thesaurus mode for Emacs")
12267 (description "Synosaurus is a thesaurus fontend for Emacs with pluggable
12268 backends, including the @command{wordnet} offline backend.")
12269 (license license:gpl3+))))
12270
12271 (define-public emacs-all-the-icons
12272 (package
12273 (name "emacs-all-the-icons")
12274 (version "3.2.0")
12275 (source
12276 (origin
12277 (method git-fetch)
12278 (uri (git-reference
12279 (url "https://github.com/domtronn/all-the-icons.el.git")
12280 (commit version)))
12281 (file-name (git-file-name name version))
12282 (sha256
12283 (base32
12284 "1sdl33117lccznj38021lwcdnpi9nxmym295q6y460y4dm4lx0jn"))))
12285 (build-system emacs-build-system)
12286 (arguments
12287 `(#:include '("\\.el$" "^data/" "^fonts/")
12288 ;; Compiling "test/" fails with "Symbol’s value as variable is void:
12289 ;; all-the-icons--root-code". Ignoring tests.
12290 #:exclude '("^test/")
12291 #:tests? #f))
12292 (propagated-inputs
12293 `(("f" ,emacs-f)
12294 ("memoize" ,emacs-memoize)))
12295 (home-page "https://github.com/domtronn/all-the-icons.el")
12296 (synopsis "Collect icon fonts and propertize them within Emacs")
12297 (description "All-the-icons is a utility package to collect various icon
12298 fonts and propertize them within Emacs. Icon fonts allow you to propertize
12299 and format icons the same way you would normal text. This enables things such
12300 as better scaling of and anti aliasing of the icons.")
12301 ;; Package is released under Expat license. Elisp files are licensed
12302 ;; under GPL3+. Fonts come with various licenses: Expat for
12303 ;; "all-the-icons.ttf" and "file-icons.ttf", Apache License 2.0 for
12304 ;; "material-design-icons.ttf", and SIL OFL 1.1 for "fontawesome.ttf",
12305 ;; "ocitcons.ttf" and "weathericons.ttf".
12306 (license
12307 (list license:expat license:gpl3+ license:silofl1.1 license:asl2.0))))
12308
12309 (define-public emacs-powerline
12310 (package
12311 (name "emacs-powerline")
12312 (version "2.4")
12313 (source
12314 (origin
12315 (method git-fetch)
12316 (uri (git-reference
12317 (url "https://github.com/milkypostman/powerline.git")
12318 (commit version)))
12319 (file-name (git-file-name name version))
12320 (sha256
12321 (base32
12322 "1hp3xp18943n0rlggz55150020ivw8gvi1vyxkr4z8xhpwq4gaar"))))
12323 (build-system emacs-build-system)
12324 (home-page "https://github.com/milkypostman/powerline/")
12325 (synopsis "Mode-line plugin for Emacs")
12326 (description "Powerline is a utility plugin which allows you to create
12327 a better-looking, more functional Emacs mode-line. A collection of predefined
12328 themes comes with the package.")
12329 (license license:gpl3+)))
12330
12331 (define-public emacs-spaceline
12332 (package
12333 (name "emacs-spaceline")
12334 (version "2.0.1")
12335 (source
12336 (origin
12337 (method git-fetch)
12338 (uri (git-reference
12339 (url "https://github.com/TheBB/spaceline.git")
12340 (commit (string-append "v" version))))
12341 (file-name (git-file-name name version))
12342 (sha256
12343 (base32
12344 "1q8r95zfrh0vxna5ml2pq9b9f66clfqcl4d2qy2aizkvzyxg6skl"))))
12345 (build-system emacs-build-system)
12346 (propagated-inputs
12347 `(("dash" ,emacs-dash)
12348 ("powerline" ,emacs-powerline)
12349 ("s" ,emacs-s)))
12350 (home-page "https://github.com/TheBB/spaceline")
12351 (synopsis "Powerline theme from Spacemacs")
12352 (description "Spaceline provides Spacemacs' mode-line theme.
12353 This package provides features for three kinds of users.
12354
12355 @itemize
12356 @item You just want to use the Spacemacs mode-line theme and forget about it.
12357 @item You want to use something similar to the Spacemacs mode-line theme, but
12358 with a handful of easy tweaks.
12359 @item You want an easy-to-use library for building your own mode-line from
12360 scratch, and you think the Spacemacs theme looks good.
12361 @end itemize")
12362 (license license:gpl3+)))
12363
12364 (define-public emacs-column-marker
12365 (package
12366 (name "emacs-column-marker")
12367 (version "9")
12368 (source
12369 (origin
12370 (method url-fetch)
12371 (uri "https://www.emacswiki.org/emacs/download/column-marker.el")
12372 (sha256 (base32 "05bv198zhqw5hqq6cr11mhz02dpca74hhp1ycwq369m0yb2naxy9"))))
12373 (build-system emacs-build-system)
12374 (home-page "https://www.emacswiki.org/emacs/ColumnMarker")
12375 (synopsis "Emacs mode for highlighting columns")
12376 (description
12377 "With @code{column-marker.el} you can highlight any number of text columns.
12378 Three such highlight column markers are provided by default. This is
12379 especially useful for languages like COBOL or Fortran where certain columns
12380 have special meaning. It is also handy for aligning text across long vertical
12381 distances. Multi-column characters, such as @kbd{TAB} are treated
12382 correctly.")
12383 (license license:gpl2+)))
12384
12385 (define-public emacs-slime-repl-ansi-color
12386 (let ((commit "ad03263f5d4de473bc173b64a6fc3dc1106393d7"))
12387 (package
12388 (name "emacs-slime-repl-ansi-color")
12389 (version (git-version "0.0.0" "1" commit))
12390 (source (origin
12391 (method git-fetch)
12392 (uri (git-reference
12393 (url "https://github.com/deadtrickster/slime-repl-ansi-color")
12394 (commit commit)))
12395 (file-name (git-file-name name version))
12396 (sha256
12397 (base32
12398 "0bpg7gxz310x7bnlg324c507sxc5gxwwz6h64h6kdq141r73vbi4"))))
12399 (build-system emacs-build-system)
12400 (home-page "https://github.com/deadtrickster/slime-repl-ansi-color")
12401 (synopsis "Color ANSI codes in the REPL of SLIME")
12402 (description "Color ANSI codes in the REPL of SLIME")
12403 (license license:gpl2+))))
12404
12405 (define-public emacs-helm-slime
12406 (let ((commit "9980925f3e5f6ac5a30369d2a544e82006a79c76"))
12407 (package
12408 (name "emacs-helm-slime")
12409 (version (git-version "0.0.0" "1" commit))
12410 (source (origin
12411 (method git-fetch)
12412 (uri (git-reference
12413 (url "https://github.com/emacs-helm/helm-slime")
12414 (commit commit)))
12415 (file-name (git-file-name name version))
12416 (sha256
12417 (base32
12418 "0xa07gpfkzwn522x9573mq5mfxvbawdgd0m93gqj6w5a14wk8zzh"))))
12419 (build-system emacs-build-system)
12420 (propagated-inputs
12421 `(("emacs-helm" ,emacs-helm)
12422 ("emacs-slime" ,emacs-slime)))
12423 (home-page "https://github.com/emacs-helm/helm-slime")
12424 (synopsis "Helm for SLIME, the Superior Lisp Interaction Mode for Emacs")
12425 (description "Helm-SLIME defines a few new commands:
12426
12427 @itemize
12428 @item helm-slime-complete: Select a symbol from the SLIME completion systems.
12429 @item helm-slime-list-connections: Yet another slime-list-connections with Helm.
12430 @item: helm-slime-apropos: Yet another slime-apropos with Helm.
12431 @item helm-slime-repl-history: Select an input from the SLIME REPL history and insert it.
12432 @end itemize\n")
12433 (license license:gpl3+))))
12434
12435 (define-public emacs-gtk-look
12436 (package
12437 (name "emacs-gtk-look")
12438 (version "29")
12439 (source (origin
12440 (method url-fetch)
12441 (uri "https://download.tuxfamily.org/user42/gtk-look.el")
12442 (sha256
12443 (base32
12444 "14p2nwrd51cr1v06fxbjjn6jdrkf9d6vcxhmscm0kl677s25ypsp"))))
12445 (build-system emacs-build-system)
12446 (arguments
12447 `(#:phases
12448 (modify-phases %standard-phases
12449 (add-after 'unpack 'configure
12450 (lambda _
12451 ;; File is read-only.
12452 (chmod "gtk-look.el" #o644)
12453 (emacs-substitute-variables "gtk-look.el"
12454 ("gtk-lookup-devhelp-indices"
12455 '(list (expand-file-name "~/.guix-profile/share/gtk-doc/html/*/*.devhelp*"))))
12456 #t)))))
12457 (home-page "http://user42.tuxfamily.org/gtk-look/index.html")
12458 (synopsis "Find and display HTML documentation for GTK, GNOME and Glib")
12459 (description "@command{gtk-look} finds and displays HTML documentation for
12460 GTK, GNOME and Glib functions and variables in Emacs, similar to what
12461 info-lookup-symbol does for info files (C-h S). The documentation is expected
12462 to be devhelp indexes with HTML files. The location of the indexes can be
12463 customized. In addition to C code development @command{gtk-look} is good for
12464
12465 @itemize
12466 @item @command{perl-gtk2}, recognising class funcs like
12467 @command{Gtk2::Label->new} and bare method names like @command{set_text}.
12468 @item @command{guile-gnome}, recognising methods like @command{set-text} and
12469 classes like @command{<gtk-window>}.
12470 @end itemize\n")
12471 (license license:gpl3+)))
12472
12473 (define-public emacs-ov
12474 (package
12475 (name "emacs-ov")
12476 (version "1.0.6")
12477 (source (origin
12478 (method git-fetch)
12479 (uri (git-reference
12480 (url "https://github.com/ShingoFukuyama/ov.el.git")
12481 (commit version)))
12482 (file-name (git-file-name name version))
12483 (sha256
12484 (base32
12485 "0qxk2rf84j86syxi8xknsq252irwg7sz396v3bb4wqz4prpj0kzc"))))
12486 (build-system emacs-build-system)
12487 (home-page "https://github.com/ShingoFukuyama/ov.el")
12488 (synopsis "Overlay library for Emacs Lisp")
12489 (description "@code{ov.el} provides a simple way to manipulate overlays in
12490 Emacs.")
12491 (license license:gpl3+)))
12492
12493 (define-public emacs-matrix-client
12494 (let ((commit "a0623667b07a4bf60980c97b078e9faed97ace79"))
12495 (package
12496 (name "emacs-matrix-client")
12497 (version (git-version "0.0.0" "3" commit))
12498 (source (origin
12499 (method git-fetch)
12500 (uri (git-reference
12501 (url "https://github.com/jgkamat/matrix-client-el.git")
12502 (commit commit)))
12503 (file-name (git-file-name name version))
12504 (sha256
12505 (base32
12506 "1zya8id3y9wzjaj7nplq7br6nhm3lsskv0fkn1xr1y77fzcfgcdb"))))
12507 (build-system emacs-build-system)
12508 (propagated-inputs
12509 `(("a" ,emacs-a)
12510 ("anaphora" ,emacs-anaphora)
12511 ("dash" ,emacs-dash)
12512 ("esxml" ,emacs-esxml)
12513 ("f" ,emacs-f)
12514 ("frame-purpose" ,emacs-frame-purpose)
12515 ("ht" ,emacs-ht)
12516 ("ov" ,emacs-ov)
12517 ("rainbow-identifiers" ,emacs-rainbow-identifiers)
12518 ("request" ,emacs-request)
12519 ("s" ,emacs-s)
12520 ("tracking" ,emacs-tracking)))
12521 (home-page "https://github.com/jgkamat/matrix-client-el")
12522 (synopsis "Matrix client for Emacs")
12523 (description "@code{matrix-client} is a simple chat UI to Matrix.org
12524 rooms. It also provides an API which allows Emacs to seamlessly create
12525 RPC channels with users and other software.")
12526 (license license:gpl3+))))
12527
12528 (define-public emacs-sesman
12529 (package
12530 (name "emacs-sesman")
12531 (version "0.3.3")
12532 (source
12533 (origin
12534 (method git-fetch)
12535 (uri (git-reference
12536 (url "https://github.com/vspinu/sesman.git")
12537 (commit (string-append "v" version))))
12538 (file-name (git-file-name name version))
12539 (sha256
12540 (base32
12541 "0r32f8ma9ddczxrrdz0nadp14j3zmk10q1ch02gb82synkx3xdra"))))
12542 (build-system emacs-build-system)
12543 (arguments
12544 `(#:tests? #t
12545 #:test-command '("make" "test")))
12546 (home-page "https://github.com/vspinu/sesman")
12547 (synopsis "Session manager for Emacs based IDEs")
12548 (description "Sesman provides facilities for session management and
12549 interactive session association with the current contexts (project, directory,
12550 buffers). While sesman can be used to manage arbitrary sessions, it primary
12551 targets the Emacs based IDEs (CIDER, ESS, Geiser, Robe, SLIME etc.)")
12552 (license license:gpl3+)))
12553
12554 (define-public emacs-buttercup
12555 (package
12556 (name "emacs-buttercup")
12557 (version "1.16")
12558 (source
12559 (origin
12560 (method git-fetch)
12561 (uri (git-reference
12562 (url "https://github.com/jorgenschaefer/emacs-buttercup.git")
12563 (commit (string-append "v" version))))
12564 (file-name (git-file-name name version))
12565 (sha256
12566 (base32
12567 "0dckgcyzsav6ld78bcyrrygy1cz1jvqgav6vy8f6klpmk3r8xrl1"))))
12568 (build-system emacs-build-system)
12569 (arguments
12570 `(#:tests? #t
12571 #:test-command '("make" "test")
12572 #:phases
12573 (modify-phases %standard-phases
12574 (add-after 'install 'install-bin
12575 (lambda* (#:key outputs #:allow-other-keys)
12576 (install-file "bin/buttercup"
12577 (string-append (assoc-ref outputs "out") "/bin"))
12578 #t)))))
12579 (home-page "https://github.com/jorgenschaefer/emacs-buttercup")
12580 (synopsis "Behavior driven emacs lisp testing framework")
12581 (description "Buttercup is a behavior-driven development framework for
12582 testing Emacs Lisp code. It allows to group related tests so they can share
12583 common set-up and tear-down code, and allows the programmer to \"spy\" on
12584 functions to ensure they are called with the right arguments during testing.")
12585 (license license:gpl3+)))
12586
12587 (define-public emacs-wordnut
12588 (let ((commit "feac531404041855312c1a046bde7ea18c674915")
12589 (revision "0"))
12590 (package
12591 (name "emacs-wordnut")
12592 (version (git-version "0.1" revision commit))
12593 (home-page "https://github.com/gromnitsky/wordnut")
12594 (source (origin
12595 (method git-fetch)
12596 (uri (git-reference (url home-page) (commit commit)))
12597 (sha256
12598 (base32
12599 "1jl0b6g64a9w0q7bfvwha67vgws5xd15b7mkfyb5gkz3pymqhfxn"))
12600 (patches
12601 (search-patches "emacs-wordnut-require-adaptive-wrap.patch"))
12602 (file-name (git-file-name name version))))
12603 (build-system emacs-build-system)
12604 (propagated-inputs
12605 `(("wordnet" ,wordnet)
12606 ("emacs-adaptive-wrap" ,emacs-adaptive-wrap)))
12607 (synopsis "Major mode for WordNet")
12608 (description "This Emacs package provides an interface for
12609 @code{wordnet}. Features include completion, if the query is not found
12610 too ambiguous and navigation in the result buffer.")
12611 (license license:gpl3+))))
12612
12613 (define-public emacs-frame-purpose
12614 (package
12615 (name "emacs-frame-purpose")
12616 (version "1.0")
12617 (source (origin
12618 (method git-fetch)
12619 (uri (git-reference
12620 (url "https://github.com/alphapapa/frame-purpose.el.git")
12621 (commit version)))
12622 (sha256
12623 (base32
12624 "0jq2aam1yvccw887ighd1wm2xkvk5bv53ffiz3crcl16a255aj4q"))
12625 (file-name (git-file-name name version))))
12626 (build-system emacs-build-system)
12627 (inputs
12628 `(("dash" ,emacs-dash)))
12629 (synopsis "Purpose-specific frames for Emacs")
12630 (description "@code{frame-purpose} makes it easy to open purpose-specific
12631 frames that only show certain buffers, e.g. by buffers’ major mode, their
12632 filename or directory, etc, with custom frame/X-window titles, icons, and
12633 other frame parameters.")
12634 (home-page "https://github.com/alphapapa/frame-purpose.el")
12635 (license license:gpl3+)))
12636
12637 (define-public emacs-arduino-mode
12638 (let ((commit "3e2bad4569ad26e929e6db2cbcff0d6d36812698")) ;no release yet
12639 (package
12640 (name "emacs-arduino-mode")
12641 (version (git-version "0" "0" commit))
12642 (source (origin
12643 (method git-fetch)
12644 (uri (git-reference
12645 (url "https://github.com/bookest/arduino-mode.git")
12646 (commit commit)))
12647 (sha256
12648 (base32
12649 "1yvaqjc9hadbnnay5fprnh890xsp53kidad1zpb4a5z4a5z61n3c"))
12650 (file-name (git-file-name name version))))
12651 (build-system emacs-build-system)
12652 (synopsis "Emacs major mode for editing Arduino sketches")
12653 (description "Emacs major mode for editing Arduino sketches.")
12654 (home-page "https://github.com/bookest/arduino-mode")
12655 (license license:gpl3+))))
12656
12657 (define-public emacs-general
12658 (let ((commit "675050199b5a30d54a24b58a367db32c0bdc47f5"))
12659 (package
12660 (name "emacs-general")
12661 (version (git-version "0" "0" commit))
12662 (home-page "https://github.com/noctuid/general.el")
12663 (source (origin
12664 (method git-fetch)
12665 (uri (git-reference
12666 (url (string-append home-page ".git"))
12667 (commit commit)))
12668 (sha256
12669 (base32
12670 "175yyhzk57yk1sskxh3d2jzhrh2waiibbcfsll167qxr117yji5h"))
12671 (file-name (git-file-name name version))))
12672 (build-system emacs-build-system)
12673 (synopsis "More convenient key definitions in emacs")
12674 (description "@code{general.el} provides a more convenient method for
12675 binding keys in emacs (for both evil and non-evil users). Like
12676 @code{use-package}, which provides a convenient, unified interface for
12677 managing packages, @code{general.el} is intended to provide a convenient,
12678 unified interface for key definitions. While this package does implement some
12679 completely new functionality (such as the ability to make vim-style
12680 keybindings under non-prefix keys with an optional timeout), its primary
12681 purpose is to build on existing functionality to make key definition more
12682 clear and concise. @code{general-define-key} is user-extensible and supports
12683 defining multiple keys in multiple keymaps at once, implicitly wrapping key
12684 strings with (@code{kbd ...}), using named prefix key sequences (like the
12685 leader key in vim), and much more.")
12686 (license license:gpl3+))))
12687
12688 (define-public emacs-tldr
12689 (let ((commit "398b197c8d2238628b07e1b32d0f373876279f4c"))
12690 (package
12691 (name "emacs-tldr")
12692 (version (git-version "0" "0" commit))
12693 (home-page "https://github.com/kuanyui/tldr.el")
12694 (source (origin
12695 (method git-fetch)
12696 (uri (git-reference
12697 (url (string-append home-page ".git"))
12698 (commit commit)))
12699 (sha256
12700 (base32
12701 "0iq7qlis6c6r2qkdpncrhh5vsihkhvy5x4y1y8cjb7zxkh62w33f"))
12702 (file-name (git-file-name name version))))
12703 (build-system emacs-build-system)
12704 (synopsis "Simplified and community-driven man pages for Emacs")
12705 (description "@code{emacs-tldr} allows the user to access tldr pages
12706 from within emacs. The @code{tldr} pages are a community effort to simplify
12707 the man pages with practical examples.")
12708 (license license:wtfpl2))))
12709
12710 (define-public emacs-window-layout
12711 (package
12712 (name "emacs-window-layout")
12713 (version "1.4")
12714 (home-page "https://github.com/kiwanami/emacs-window-layout")
12715 (source (origin
12716 (method git-fetch)
12717 (uri (git-reference
12718 (url home-page)
12719 (commit (string-append "v" version))))
12720 (sha256
12721 (base32
12722 "0wgqi8r844lbx52fn6az8c1n8m681rp6dkfzd54wmdk1ka7zmvv6"))
12723 (file-name (git-file-name name version))))
12724 (build-system emacs-build-system)
12725 (synopsis "Simple window layout management framework for emacs")
12726 (description "A window-layout management library that can split a frame
12727 or a window into some windows according to a layout recipe.")
12728 (license license:gpl3+)))
12729
12730 (define-public emacs-e2wm
12731 (package
12732 (name "emacs-e2wm")
12733 (version "1.4")
12734 (home-page "https://github.com/kiwanami/emacs-window-manager")
12735 (source (origin
12736 (method git-fetch)
12737 (uri (git-reference
12738 (url home-page)
12739 (commit (string-append "v" version))))
12740 (sha256
12741 (base32
12742 "12midsrx07pdrsr1qbl2rpi7xyhxqx08bkz7n7gf8vsmqkpfp56s"))
12743 (file-name (git-file-name name version))))
12744 (build-system emacs-build-system)
12745 (propagated-inputs
12746 `(("emacs-window-layout" ,emacs-window-layout)))
12747 (synopsis "Equilibrium Emacs Window Manager")
12748 (description "E2WM is a window manager for Emacs. It enables to
12749 customize the place of pop-up window, how the windows are split, how the
12750 buffers are located in the windows, keybinds to manipulate windows and
12751 buffers, etc. It also has plug-ins to help your Emacs life.")
12752 (license license:gpl3+)))
12753
12754 (define-public emacs-ctable
12755 (let ((commit "b8830d1ca95abb100a81bc32011bd17d5ecba000"))
12756 (package
12757 (name "emacs-ctable")
12758 (version (git-version "0.1.2" "1" commit))
12759 (home-page "https://github.com/kiwanami/emacs-ctable")
12760 (source (origin
12761 (method git-fetch)
12762 (uri (git-reference
12763 (url home-page)
12764 (commit commit)))
12765 (sha256
12766 (base32
12767 "0pg303pnqscrsbx9579hc815angszsgf9vpd2z2f8p4f4ka6a00h"))
12768 (file-name (git-file-name name version))))
12769 (build-system emacs-build-system)
12770 (synopsis "Table component for Emacs Lisp")
12771 (description "This program is a table component for Emacs Lisp. Other
12772 programs can use this table component for the application UI.")
12773 (license license:gpl3+))))
12774
12775 (define-public emacs-epc
12776 (let ((commit "e1bfa5ca163273859336e3cc89b4b6460f7f8cda"))
12777 (package
12778 (name "emacs-epc")
12779 (version (git-version "0.1.1" "1" commit))
12780 (home-page "https://github.com/kiwanami/emacs-epc")
12781 (source (origin
12782 (method git-fetch)
12783 (uri (git-reference
12784 (url home-page)
12785 (commit commit)))
12786 (sha256
12787 (base32
12788 "15nkrjgi64f829isfd6xrhl4zw8jirr8pkas7nisrbk1av868hx0"))
12789 (file-name (git-file-name name version))))
12790 (build-system emacs-build-system)
12791 (propagated-inputs
12792 `(("emacs-deferred" ,emacs-deferred)
12793 ("emacs-ctable" ,emacs-ctable)))
12794 (synopsis "RPC stack for Emacs Lisp")
12795 (description "This program is an asynchronous RPC stack for Emacs.
12796 Using this RPC stack, Emacs can communicate with the peer process
12797 smoothly. Because the protocol employs S-expression encoding and consists of
12798 asynchronous communications, the RPC response is fairly good.")
12799 (license license:gpl3+))))
12800
12801 (define-public emacs-edbi
12802 (let ((commit "6f50aaf4bde75255221f2292c7a4ad3fa9d918c0"))
12803 (package
12804 (name "emacs-edbi")
12805 (version (git-version "0.1.3" "1" commit))
12806 (home-page "https://github.com/kiwanami/emacs-edbi")
12807 (source (origin
12808 (method git-fetch)
12809 (uri (git-reference
12810 (url home-page)
12811 (commit commit)))
12812 (sha256
12813 (base32
12814 "0x0igyvdcm4863n7zndvcv6wgzwgn7324cbfjja6xd7r0k936zdy"))
12815 (file-name (git-file-name name version))))
12816 (build-system emacs-build-system)
12817 (inputs
12818 `(("perl" ,perl)
12819 ("perl-rpc-epc-service" ,perl-rpc-epc-service)
12820 ("perl-dbi" ,perl-dbi)
12821 ;; TODO: Adding support for perl-dbd-mysql and others would
12822 ;; dramatically increase the closure size. Make several packages?
12823 ("perl-dbd-sqlite" ,perl-dbd-sqlite)))
12824 (propagated-inputs
12825 `(("emacs-e2wm" ,emacs-e2wm)
12826 ("emacs-epc" ,emacs-epc)))
12827 (arguments
12828 `(#:include '("\\.el$" "\\.pl$")
12829 #:phases
12830 (modify-phases %standard-phases
12831 (add-after 'install 'patch-path
12832 (lambda* (#:key inputs outputs #:allow-other-keys)
12833 (let ((perl (assoc-ref inputs "perl"))
12834 (dir (string-append (assoc-ref outputs "out")
12835 "/share/emacs/site-lisp/guix.d/edbi-"
12836 ,version)))
12837 (substitute* (string-append dir "/edbi.el")
12838 (("\"perl\"") (string-append "\"" perl "/bin/perl\"")))
12839 (chmod (string-append dir "/edbi-bridge.pl") #o555)
12840 (wrap-program (string-append dir "/edbi-bridge.pl")
12841 `("PERL5LIB" ":" prefix (,(getenv "PERL5LIB"))))
12842 #t))))))
12843 (synopsis "Database Interface for Emacs Lisp")
12844 (description "This program connects the database server through Perl's
12845 DBI, and provides DB-accessing API and the simple management UI.")
12846 (license license:gpl3+))))
12847
12848 (define-public emacs-edbi-sqlite
12849 (let ((commit "52cb9ca1af7691b592f2cfd2f007847e7a4ccd5f"))
12850 (package
12851 (name "emacs-edbi-sqlite")
12852 (version (git-version "0.1.1" "1" commit))
12853 (home-page "https://github.com/proofit404/edbi-sqlite")
12854 (source (origin
12855 (method git-fetch)
12856 (uri (git-reference
12857 (url home-page)
12858 (commit commit)))
12859 (sha256
12860 (base32
12861 "1vll81386fx90lq5sy4rlxcik6mvw7zx5cc51f0yaca9bkcckp51"))
12862 (file-name (git-file-name name version))))
12863 (build-system emacs-build-system)
12864 (propagated-inputs
12865 `(("emacs-edbi" ,emacs-edbi)))
12866 (synopsis "Open SQLite files in Emacs")
12867 (description "This package is a convenience wrapper for @command{edbi}
12868 to open SQLite databases.")
12869 (license license:gpl3+))))
12870
12871 (define-public emacs-nix-mode
12872 (package
12873 (name "emacs-nix-mode")
12874 (version "1.2.2")
12875 (source
12876 (origin
12877 (method url-fetch)
12878 (uri (string-append "https://github.com/NixOS/nix-mode/archive/v"
12879 version ".tar.gz"))
12880 (file-name (string-append name "-" version ".tar.gz"))
12881 (sha256
12882 (base32
12883 "06aqz0czznsj8835jqnk794sy2p6pa8kxfqwh0nl5d5vxivria6z"))))
12884 (build-system emacs-build-system)
12885 (inputs
12886 `(("emacs-company" ,emacs-company)
12887 ("emacs-mmm-mode" ,emacs-mmm-mode)))
12888 (home-page "https://github.com/NixOS/nix-mode")
12889 (synopsis "Emacs major mode for editing Nix expressions")
12890 (description "@code{nixos-mode} provides an Emacs major mode for editing
12891 Nix expressions. It supports syntax highlighting, indenting and refilling of
12892 comments.")
12893 (license license:lgpl2.1+)))