gnu: Add emacs-org-re-reveal.
[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, 2019 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 ng0 <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, 2019 Arun Isaac <arunisaac@systemreboot.net>
20 ;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
21 ;;; Copyright © 2017, 2018, 2019 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, 2019 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, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
33 ;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org>
34 ;;; Copyright © 2017, 2018, 2019 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 ;;; Copyright © 2018, 2019 Brett Gilio <brettg@posteo.net>
45 ;;; Copyright © 2019 Dimakakos Dimos <bendersteed@teknik.io>
46 ;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com>
47 ;;;
48 ;;; This file is part of GNU Guix.
49 ;;;
50 ;;; GNU Guix is free software; you can redistribute it and/or modify it
51 ;;; under the terms of the GNU General Public License as published by
52 ;;; the Free Software Foundation; either version 3 of the License, or (at
53 ;;; your option) any later version.
54 ;;;
55 ;;; GNU Guix is distributed in the hope that it will be useful, but
56 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
57 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
58 ;;; GNU General Public License for more details.
59 ;;;
60 ;;; You should have received a copy of the GNU General Public License
61 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
62
63 (define-module (gnu packages emacs-xyz)
64 #:use-module ((guix licenses) #:prefix license:)
65 #:use-module (guix packages)
66 #:use-module (guix cvs-download)
67 #:use-module (guix download)
68 #:use-module (guix git-download)
69 #:use-module (guix build-system gnu)
70 #:use-module (guix build-system cmake)
71 #:use-module (guix build-system emacs)
72 #:use-module (guix build-system glib-or-gtk)
73 #:use-module (guix build-system perl)
74 #:use-module (guix build-system trivial)
75 #:use-module (gnu packages)
76 #:use-module (gnu packages admin)
77 #:use-module (gnu packages audio)
78 #:use-module (gnu packages bash)
79 #:use-module (gnu packages cmake)
80 #:use-module (gnu packages code)
81 #:use-module (gnu packages databases)
82 #:use-module (gnu packages emacs)
83 #:use-module (gnu packages guile)
84 #:use-module (gnu packages gtk)
85 #:use-module (gnu packages gnome)
86 #:use-module (gnu packages ncurses)
87 #:use-module (gnu packages python)
88 #:use-module (gnu packages python-xyz)
89 #:use-module (gnu packages tex)
90 #:use-module (gnu packages texinfo)
91 #:use-module (gnu packages tcl)
92 #:use-module (gnu packages tls)
93 #:use-module (gnu packages pkg-config)
94 #:use-module (gnu packages xorg)
95 #:use-module (gnu packages lesstif)
96 #:use-module (gnu packages llvm)
97 #:use-module (gnu packages image)
98 #:use-module (gnu packages linux)
99 #:use-module (gnu packages libevent)
100 #:use-module (gnu packages version-control)
101 #:use-module (gnu packages imagemagick)
102 #:use-module (gnu packages w3m)
103 #:use-module (gnu packages wget)
104 #:use-module (gnu packages autotools)
105 #:use-module (gnu packages base)
106 #:use-module (gnu packages compression)
107 #:use-module (gnu packages xml)
108 #:use-module (gnu packages glib)
109 #:use-module (gnu packages acl)
110 #:use-module (gnu packages mail)
111 #:use-module (gnu packages package-management)
112 #:use-module (gnu packages perl)
113 #:use-module (gnu packages pdf)
114 #:use-module (gnu packages scheme)
115 #:use-module (gnu packages speech)
116 #:use-module (gnu packages xiph)
117 #:use-module (gnu packages mp3)
118 #:use-module (gnu packages gettext)
119 #:use-module (gnu packages fribidi)
120 #:use-module (gnu packages gd)
121 #:use-module (gnu packages fontutils)
122 #:use-module (gnu packages password-utils)
123 #:use-module (gnu packages pulseaudio)
124 #:use-module (gnu packages xdisorg)
125 #:use-module (gnu packages shells)
126 #:use-module (gnu packages sqlite)
127 #:use-module (gnu packages gnupg)
128 #:use-module (gnu packages video)
129 #:use-module (gnu packages haskell)
130 #:use-module (gnu packages wordnet)
131 #:use-module (guix utils)
132 #:use-module (srfi srfi-1)
133 #:use-module (ice-9 match))
134
135 ;;;
136 ;;; Emacs hacking.
137 ;;;
138
139 (define-public emacs-geiser
140 (package
141 (name "emacs-geiser")
142 (version "0.10")
143 (source (origin
144 (method url-fetch)
145 (uri (string-append "mirror://savannah/geiser/" version
146 "/geiser-" version ".tar.gz"))
147 (sha256
148 (base32
149 "0pj3l7p8d60c9b4vfprnv6g5l61d74pls4b5dvd84cn4ky9mzwjv"))))
150 (build-system gnu-build-system)
151 (arguments
152 '(#:phases
153 (modify-phases %standard-phases
154 (add-after 'install 'post-install
155 (lambda* (#:key outputs #:allow-other-keys)
156 (symlink "geiser-install.el"
157 (string-append (assoc-ref outputs "out")
158 "/share/emacs/site-lisp/"
159 "geiser-autoloads.el"))
160 #t)))))
161 (inputs `(("guile" ,guile-2.2)))
162 (native-inputs `(("emacs" ,emacs-minimal)))
163 (home-page "https://nongnu.org/geiser/")
164 (synopsis "Collection of Emacs modes for Guile and Racket hacking")
165 (description
166 "Geiser is a collection of Emacs major and minor modes that conspire with
167 one or more Scheme implementations to keep the Lisp Machine Spirit alive. The
168 continuously running Scheme interpreter takes the center of the stage in
169 Geiser. A bundle of Elisp shims orchestrates the dialog between the Scheme
170 implementation, Emacs and, ultimately, the schemer, giving them access to live
171 metadata.")
172 (license license:bsd-3)))
173
174 (define-public geiser
175 (deprecated-package "geiser" emacs-geiser))
176
177 (define-public emacs-paredit
178 (package
179 (name "emacs-paredit")
180 (version "24")
181 (source (origin
182 (method url-fetch)
183 (uri (string-append "http://mumble.net/~campbell/emacs/paredit-"
184 version ".el"))
185 (sha256
186 (base32
187 "0pp3n8q6kc70blqsaw0zlzp6bc327dpgdrjr0cnh7hqg1lras7ka"))))
188 (build-system emacs-build-system)
189 (home-page "http://mumble.net/~campbell/emacs/paredit/")
190 (synopsis "Emacs minor mode for editing parentheses")
191 (description
192 "ParEdit (paredit.el) is a minor mode for performing structured editing
193 of S-expression data. The typical example of this would be Lisp or Scheme
194 source code.
195
196 ParEdit helps **keep parentheses balanced** and adds many keys for moving
197 S-expressions and moving around in S-expressions. Its behavior can be jarring
198 for those who may want transient periods of unbalanced parentheses, such as
199 when typing parentheses directly or commenting out code line by line.")
200 (license license:gpl3+)))
201
202 (define-public paredit
203 (deprecated-package "paredit" emacs-paredit))
204
205 (define-public git-modes
206 (package
207 (name "emacs-git-modes")
208 (version "1.2.8")
209 (source (origin
210 (method git-fetch)
211 (uri (git-reference
212 (url "https://github.com/magit/git-modes")
213 (commit version)))
214 (file-name (git-file-name name version))
215 (sha256
216 (base32
217 "08hy7rbfazs6grkpk54i82bz0i0c74zcjk96cip8970h6jn3mj72"))))
218 (build-system emacs-build-system)
219 (home-page "https://github.com/magit/git-modes")
220 (synopsis "Emacs major modes for Git configuration files")
221 (description
222 "This package provides Emacs major modes for editing various Git
223 configuration files, such as .gitattributes, .gitignore, and .git/config.")
224 (license license:gpl3+)))
225
226 (define-public git-modes/old-name
227 (deprecated-package "git-modes" git-modes))
228
229 (define-public emacs-with-editor
230 (package
231 (name "emacs-with-editor")
232 (version "2.8.0")
233 (source (origin
234 (method git-fetch)
235 (uri (git-reference
236 (url "https://github.com/magit/with-editor.git")
237 (commit (string-append "v" version))))
238 (file-name (git-file-name name version))
239 (sha256
240 (base32
241 "1bbzvxnjpxqyvi808isld025b3pcidn4r2xf8hnk9bmzcfdvdr6q"))))
242 (build-system emacs-build-system)
243 (propagated-inputs
244 `(("emacs-dash" ,emacs-dash)))
245 (home-page "https://github.com/magit/with-editor")
246 (synopsis "Emacs library for using Emacsclient as EDITOR")
247 (description
248 "This package provides an Emacs library to use the Emacsclient as
249 @code{$EDITOR} of child processes, making sure they know how to call home.
250 For remote processes a substitute is provided, which communicates with Emacs
251 on stdout instead of using a socket as the Emacsclient does.")
252 (license license:gpl3+)))
253
254 (define-public emacs-magit
255 ;; Version 2.90.1 has trouble loading the transient library,
256 ;; so we use a more recent commit that fixes it.
257 (let ((commit "b4aec016b5577afa8d889f258b499814d1bb1d94"))
258 (package
259 (name "emacs-magit")
260 (version (git-version "2.90.1" "1" commit))
261 (source (origin
262 (method git-fetch)
263 (uri (git-reference
264 (url "https://github.com/magit/magit")
265 (commit commit)))
266 (file-name (git-file-name name version))
267 (sha256
268 (base32
269 "0zl7v6z0y50pcgqsf2r8c1k3r5nwjad9ba7r6sgrnf4rc62br7jv"))))
270 (build-system gnu-build-system)
271 (native-inputs `(("texinfo" ,texinfo)
272 ("emacs" ,emacs-minimal)))
273 (inputs
274 `(("git" ,git)
275 ("perl" ,perl)))
276 (propagated-inputs
277 `(("dash" ,emacs-dash)
278 ("with-editor" ,emacs-with-editor)
279 ("transient" ,emacs-transient)))
280 (arguments
281 `(#:modules ((guix build gnu-build-system)
282 (guix build utils)
283 (guix build emacs-utils))
284 #:imported-modules (,@%gnu-build-system-modules
285 (guix build emacs-utils))
286 #:test-target "test"
287 #:tests? #f ; tests are not included in the release
288
289 #:make-flags
290 (list (string-append "PREFIX=" %output)
291 ;; Don't put .el files in a sub-directory.
292 (string-append "lispdir=" %output "/share/emacs/site-lisp")
293 (string-append "DASH_DIR="
294 (assoc-ref %build-inputs "dash")
295 "/share/emacs/site-lisp/guix.d/dash-"
296 ,(package-version emacs-dash))
297 (string-append "WITH_EDITOR_DIR="
298 (assoc-ref %build-inputs "with-editor")
299 "/share/emacs/site-lisp/guix.d/with-editor-"
300 ,(package-version emacs-with-editor))
301 (string-append "TRANSIENT_DIR="
302 (assoc-ref %build-inputs "transient")
303 "/share/emacs/site-lisp/guix.d/transient-"
304 ,(package-version emacs-transient)))
305
306 #:phases
307 (modify-phases %standard-phases
308 (delete 'configure)
309 (add-before
310 'build 'patch-exec-paths
311 (lambda* (#:key inputs #:allow-other-keys)
312 (let ((perl (assoc-ref inputs "perl")))
313 (make-file-writable "lisp/magit-sequence.el")
314 (emacs-substitute-variables "lisp/magit-sequence.el"
315 ("magit-perl-executable" (string-append perl "/bin/perl")))
316 #t))))))
317 (home-page "https://magit.vc/")
318 (synopsis "Emacs interface for the Git version control system")
319 (description
320 "With Magit, you can inspect and modify your Git repositories with Emacs.
321 You can review and commit the changes you have made to the tracked files, for
322 example, and you can browse the history of past changes. There is support for
323 cherry picking, reverting, merging, rebasing, and other common Git
324 operations.")
325 (license license:gpl3+))))
326
327 (define-public magit
328 (deprecated-package "magit" emacs-magit))
329
330 (define-public emacs-magit-svn
331 (let ((commit "9e33ceee32f665db59909e1c00a667ccdd04178f"))
332 (package
333 (name "emacs-magit-svn")
334 (version (git-version "2.2.1" "1" commit))
335 (source (origin
336 (method git-fetch)
337 (uri (git-reference
338 (url "https://github.com/magit/magit-svn")
339 (commit commit)))
340 (file-name (git-file-name name version))
341 (sha256
342 (base32
343 "1mlqz8dh6jy5rv72lgkxv253dgh73fmbaidskicypapvbl3lr6xy"))))
344 (build-system trivial-build-system)
345 (native-inputs `(("emacs" ,emacs-minimal)))
346 (propagated-inputs `(("dash" ,emacs-dash)
347 ("with-editor" ,emacs-with-editor)
348 ("magit" ,emacs-magit)
349 ("transient" ,emacs-transient)))
350 (arguments
351 `(#:modules ((guix build utils)
352 (guix build emacs-utils))
353
354 #:builder
355 (begin
356 (use-modules (guix build utils)
357 (guix build emacs-utils))
358
359 (let ((emacs (string-append (assoc-ref %build-inputs "emacs")
360 "/bin/emacs"))
361 (magit (string-append (assoc-ref %build-inputs "magit")
362 "/share/emacs/site-lisp"))
363 (transient (string-append (assoc-ref %build-inputs "transient")
364 "/share/emacs/site-lisp/guix.d/transient-"
365 ,(package-version emacs-transient)))
366 (dash (string-append (assoc-ref %build-inputs "dash")
367 "/share/emacs/site-lisp/guix.d/dash-"
368 ,(package-version emacs-dash)))
369 (with-editor (string-append (assoc-ref %build-inputs "with-editor")
370 "/share/emacs/site-lisp/guix.d/with-editor-"
371 ,(package-version emacs-with-editor)))
372 (source (assoc-ref %build-inputs "source"))
373 (lisp-dir (string-append %output "/share/emacs/site-lisp")))
374
375 (install-file (string-append source "/magit-svn.el")
376 lisp-dir)
377
378 (with-directory-excursion lisp-dir
379 (parameterize ((%emacs emacs))
380 (emacs-generate-autoloads ,name lisp-dir)
381 (setenv "EMACSLOADPATH"
382 (string-append ":" magit ":" transient
383 ":" dash ":" with-editor))
384 (emacs-batch-eval '(byte-compile-file "magit-svn.el"))))
385 #t))))
386 (home-page "https://github.com/magit/magit-svn")
387 (synopsis "Git-SVN extension to Magit")
388 (description
389 "This package is an extension to Magit, the Git Emacs mode, providing
390 support for Git-SVN.")
391 (license license:gpl3+))))
392
393 (define-public magit-svn
394 (deprecated-package "magit-svn" emacs-magit-svn))
395
396 (define-public emacs-magit-popup
397 (package
398 (name "emacs-magit-popup")
399 (version "2.12.5")
400 (source (origin
401 (method git-fetch)
402 (uri (git-reference
403 (url "https://github.com/magit/magit-popup.git")
404 (commit (string-append "v" version))))
405 (file-name (git-file-name name version))
406 (sha256
407 (base32
408 "13riknyqr6vxqll80sfhvz165flvdz367rbd0pr5slb01bnfsi2i"))))
409 (build-system emacs-build-system)
410 (arguments
411 `(#:phases
412 (modify-phases %standard-phases
413 (add-before 'install 'make-info
414 (lambda _
415 (invoke "make" "info"))))))
416 (native-inputs
417 `(("texinfo" ,texinfo)))
418 (propagated-inputs
419 `(("emacs-dash" ,emacs-dash)))
420 (home-page "https://github.com/magit/magit-popup")
421 (synopsis "Define prefix-infix-suffix command combos")
422 (description
423 "This library implements a generic interface for toggling switches and
424 setting options and then invoking an Emacs command which does something with
425 these arguments. The prototypical use is for the command to call an external
426 process, passing on the arguments as command line arguments.")
427 (license license:gpl3+)))
428
429 (define-public emacs-treepy
430 (package
431 (name "emacs-treepy")
432 (version "0.1.1")
433 (source (origin
434 (method git-fetch)
435 (uri (git-reference
436 (url "https://github.com/volrath/treepy.el.git")
437 (commit version)))
438 (file-name (git-file-name name version))
439 (sha256
440 (base32
441 "04zwm6gx9pxfvgfkizx6pvb1ql8pqxjyzqp8flz0432x0gq5nlxk"))))
442 (build-system emacs-build-system)
443 (home-page
444 "https://github.com/volrath/treepy.el")
445 (synopsis "Tree traversal tools")
446 (description
447 "Generic tools for recursive and iterative tree traversal based on
448 clojure.walk and clojure.zip respectively.")
449 (license license:gpl3+)))
450
451 (define-public emacs-graphql
452 (package
453 (name "emacs-graphql")
454 (version "0.1.1")
455 (source (origin
456 (modules '((guix build utils)))
457 ;; Remove examples file with references to external packages as
458 ;; they do not exist at compilation time.
459 (snippet
460 '(begin (delete-file "examples.el")
461 #t))
462 (method git-fetch)
463 (uri (git-reference
464 (url "https://github.com/vermiculus/graphql.el.git")
465 (commit version)))
466 (file-name (git-file-name name version))
467 (sha256
468 (base32
469 "0sp0skc1rnhi39szfbq1i99pdgd3bhn4c15cff05iqhjy2d4hniw"))))
470 (build-system emacs-build-system)
471 (home-page
472 "https://github.com/vermiculus/graphql.el")
473 (synopsis "GraphQL utilities")
474 (description
475 "GraphQL.el provides a generally-applicable domain-specific language for
476 creating and executing GraphQL queries against your favorite web services.
477 GraphQL is a data query language and runtime designed and used to request and
478 deliver data to mobile and web apps.")
479 (license license:gpl3+)))
480
481 (define-public emacs-ghub
482 (package
483 (name "emacs-ghub")
484 (version "3.2.0")
485 (source (origin
486 (method git-fetch)
487 (uri (git-reference
488 (url "https://github.com/magit/ghub")
489 (commit (string-append "v" version))))
490 (file-name (git-file-name name version))
491 (sha256
492 (base32
493 "0lp52qygyavddl1lrgsyb6mq7hcf9h89dy2pzya3mb2va49f0vvl"))))
494 (build-system emacs-build-system)
495 (arguments
496 `(#:phases
497 (modify-phases %standard-phases
498 (add-before 'install 'make-info
499 (lambda _
500 (invoke "make" "info"))))))
501 (native-inputs
502 `(("texinfo" ,texinfo)))
503 (propagated-inputs
504 `(("dash" ,emacs-dash)
505 ("graphql" ,emacs-graphql)
506 ("treepy" ,emacs-treepy)))
507 (home-page "https://github.com/magit/ghub")
508 (synopsis "Emacs client libraries for the APIs of various Git forges")
509 (description
510 "Ghub provides basic support for using the APIs of various Git forges from
511 Emacs packages. It supports the REST APIs of Github, Github GraphQL, Gitlab,
512 Gitea, Gogs and Bitbucket. It abstracts access to API resources using only a
513 handful of functions that are not resource-specific.")
514 (license license:gpl3+)))
515
516 (define-public emacs-scribble-mode
517 (let ((commit "34e9e5edb921813b6483e0fefa848efb6ee4b314")
518 (version "0.0")
519 (revision 0))
520 (package
521 (name "emacs-scribble-mode")
522 (version (if (zero? revision)
523 version
524 (string-append version "-"
525 (number->string revision)
526 "." (string-take commit 7))))
527 (source (origin
528 (method git-fetch)
529 (uri (git-reference
530 (url "https://github.com/emacs-pe/scribble-mode.git")
531 (commit commit)))
532 (sha256
533 (base32
534 "0598byqpz2q6yi2q4dwd77jj9z3n99z34d3an51s9m2za0nh1qvp"))))
535 (build-system emacs-build-system)
536 (home-page "https://github.com/emacs-pe/scribble-mode")
537 (synopsis "Emacs mode for editing the Scribble documentation syntax.")
538 (description
539 "This package provides basic syntax highlighting and editing support
540 for editing Racket's Scribble documentation syntax in Emacs.")
541 (license license:gpl3+))))
542
543 (define-public emacs-unpackaged-el
544 (let ((commit "f4df7f8dfea715e893b2223adda32545803f5cce")
545 (revision "1"))
546 (package
547 (name "emacs-unpackaged-el")
548 (version (git-version "0" revision commit))
549 (source
550 (origin
551 (method git-fetch)
552 (uri (git-reference
553 (url "https://github.com/alphapapa/unpackaged.el")
554 (commit commit)))
555 (file-name (git-file-name name version))
556 (sha256
557 (base32
558 "1yf3zrgqfhnr0az8gn1kqqwnhfi3nc0vbjkcagwcqwk3sp1jda86"))))
559 (build-system emacs-build-system)
560 (propagated-inputs
561 `(("emacs-dash" ,emacs-dash)
562 ("emacs-org" ,emacs-org)
563 ("emacs-s" ,emacs-s)
564 ("emacs-use-package" ,emacs-use-package)))
565 (home-page "https://github.com/alphapapa/unpackaged.el")
566 (synopsis "Useful snippets of Emacs Lisp code")
567 (description "This package provides Emacs Lisp utilities for a variety
568 of tasks, including version control, task management, and regex-based
569 replacement.")
570 (license license:gpl3+))))
571
572 (define-public emacs-haskell-mode
573 (package
574 (name "emacs-haskell-mode")
575 (version "16.1")
576 (source (origin
577 (method git-fetch)
578 (uri (git-reference
579 (url "https://github.com/haskell/haskell-mode")
580 (commit (string-append "v" version))))
581 (file-name (git-file-name name version))
582 (sha256
583 (base32 "1qk36y0v9fzass6785il65c6wb5cfj4ihhwkvgnzmbafpa8p4dvq"))
584 (patches
585 (search-patches ; backport test failure fixes
586 "haskell-mode-unused-variables.patch"
587 "haskell-mode-make-check.patch"))))
588 (inputs
589 `(("emacs-el-search" ,emacs-el-search) ; for tests
590 ("emacs-stream" ,emacs-stream))) ; for tests
591 (propagated-inputs
592 `(("emacs-dash" ,emacs-dash)))
593 (native-inputs
594 `(("emacs" ,emacs-minimal)
595 ("texinfo" ,texinfo)))
596 (build-system gnu-build-system)
597 (arguments
598 `(#:make-flags (list (string-append "EMACS="
599 (assoc-ref %build-inputs "emacs")
600 "/bin/emacs"))
601 #:modules ((ice-9 match)
602 (srfi srfi-26)
603 ,@%gnu-build-system-modules)
604 #:phases
605 (modify-phases %standard-phases
606 (delete 'configure)
607 (add-before
608 'build 'pre-build
609 (lambda* (#:key inputs #:allow-other-keys)
610 (define (el-dir store-dir)
611 (match (find-files store-dir "\\.el$")
612 ((f1 f2 ...) (dirname f1))
613 (_ "")))
614
615 (let ((sh (string-append (assoc-ref inputs "bash") "/bin/sh")))
616 (define emacs-prefix? (cut string-prefix? "emacs-" <>))
617
618 (setenv "SHELL" "sh")
619 (setenv "EMACSLOADPATH"
620 (string-concatenate
621 (map (match-lambda
622 (((? emacs-prefix? name) . dir)
623 (string-append (el-dir dir) ":"))
624 (_ ""))
625 inputs)))
626 (substitute* (find-files "." "\\.el") (("/bin/sh") sh))
627 ;; embed filename to fix test failure
628 (let ((file "tests/haskell-cabal-tests.el"))
629 (substitute* file
630 (("\\(buffer-file-name\\)")
631 (format #f "(or (buffer-file-name) ~s)" file))))
632 #t)))
633 (replace
634 'install
635 (lambda* (#:key outputs #:allow-other-keys)
636 (let* ((out (assoc-ref outputs "out"))
637 (el-dir (string-append out "/share/emacs/site-lisp"))
638 (doc (string-append
639 out "/share/doc/haskell-mode-" ,version))
640 (info (string-append out "/share/info")))
641 (define (copy-to-dir dir files)
642 (for-each (lambda (f)
643 (install-file f dir))
644 files))
645
646 (with-directory-excursion "doc"
647 (invoke "makeinfo" "haskell-mode.texi")
648 (install-file "haskell-mode.info" info))
649 (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md"))
650 (copy-to-dir el-dir (find-files "." "\\.elc?"))
651 ;; These are part of other packages.
652 (with-directory-excursion el-dir
653 (for-each delete-file '("dash.el" "ert.el")))
654 #t))))))
655 (home-page "https://github.com/haskell/haskell-mode")
656 (synopsis "Haskell mode for Emacs")
657 (description
658 "This is an Emacs mode for editing, debugging and developing Haskell
659 programs.")
660 (license license:gpl3+)))
661
662 (define-public haskell-mode
663 (deprecated-package "haskell-mode" emacs-haskell-mode))
664
665 (define-public emacs-flycheck
666 (package
667 (name "emacs-flycheck")
668 (version "31")
669 (source (origin
670 (method url-fetch)
671 (uri (string-append
672 "https://github.com/flycheck/flycheck/releases/download/"
673 version "/flycheck-" version ".tar"))
674 (sha256
675 (base32
676 "01rnwan16m7cyyrfca3c5c60mbj2r3knkpzbhji2fczsf0wns240"))
677 (modules '((guix build utils)))
678 (snippet `(begin
679 ;; Change 'flycheck-version' so that it does not
680 ;; attempt to get its version from pkg-info.el.
681 (substitute* "flycheck.el"
682 (("\\(pkg-info-version-info 'flycheck\\)")
683 (string-append "\"" ,version "\"")))
684 #t))))
685 (build-system emacs-build-system)
686 (propagated-inputs
687 `(("emacs-dash" ,emacs-dash)))
688 (home-page "https://www.flycheck.org")
689 (synopsis "On-the-fly syntax checking")
690 (description
691 "This package provides on-the-fly syntax checking for GNU Emacs. It is a
692 replacement for the older Flymake extension which is part of GNU Emacs, with
693 many improvements and additional features.
694
695 Flycheck provides fully-automatic, fail-safe, on-the-fly background syntax
696 checking for over 30 programming and markup languages with more than 70
697 different tools. It highlights errors and warnings inline in the buffer, and
698 provides an optional IDE-like error list.")
699 (license license:gpl3+))) ;+GFDLv1.3+ for the manual
700
701 (define-public emacs-a
702 (package
703 (name "emacs-a")
704 (version "0.1.1")
705 (source (origin
706 (method git-fetch)
707 (uri (git-reference
708 (url "https://github.com/plexus/a.el.git")
709 (commit (string-append "v" version))))
710 (file-name (git-file-name name version))
711 (sha256
712 (base32
713 "00v9w6qg3bkwdhypq0ssf0phdh0f4bcq59c20lngd6vhk0204dqi"))))
714 (build-system emacs-build-system)
715 (home-page "https://github.com/plexus/a.el/")
716 (synopsis
717 "Emacs library for dealing with association lists and hash tables")
718 (description "@code{emacs-a} provides Emacs Lisp functions for dealing
719 with associative structures in a uniform and functional way. These functions
720 can take association lists, hash tables, and in some cases vectors (where the
721 index is considered the key).")
722 (license license:gpl3+)))
723
724 (define-public emacs-anaphora
725 (package
726 (name "emacs-anaphora")
727 (version "1.0.4")
728 (source
729 (origin
730 (method git-fetch)
731 (uri (git-reference
732 (url "https://github.com/rolandwalker/anaphora.git")
733 (commit (string-append "v" version))))
734 (file-name (git-file-name name version))
735 (sha256
736 (base32
737 "11fgiy029sqz7nvdm7dcal95lacryz9zql0x5h05z48nrrcl4bib"))))
738 (build-system emacs-build-system)
739 (home-page "https://github.com/rolandwalker/anaphora/")
740 (synopsis "Anaphoric expressions for Emacs Lisp")
741 (description "@code{emacs-anaphora} implements anaphoric expressions for
742 Emacs Lisp.
743
744 Anaphoric expressions implicitly create one or more temporary variables which
745 can be referred to during the expression. This technique can improve clarity
746 in certain cases. It also enables recursion for anonymous functions.")
747 (license license:public-domain)))
748
749 (define-public emacs-xr
750 (package
751 (name "emacs-xr")
752 (version "1.7")
753 (source
754 (origin
755 (method url-fetch)
756 (uri (string-append
757 "https://elpa.gnu.org/packages/xr-" version ".tar"))
758 (sha256
759 (base32
760 "099r88s2giv95nkwiim1cx8fy7cvv1pg1701733p4ami82ldsdw0"))))
761 (build-system emacs-build-system)
762 (home-page "http://elpa.gnu.org/packages/xr.html")
763 (synopsis "Convert string regexp to rx notation")
764 (description
765 "This is an inverse companion to the @code{rx} package for translating
766 regexps in string form to the @code{rx} notation. Its chief uses are:
767
768 @itemize
769 @item Migrating existing code to @code{rx} form, for better readability and
770 maintainability
771 @item Understanding complex regexp strings and finding errors in them
772 @end itemize
773
774 In addition to Emacs regexps, this package can also parse and troubleshoot
775 skip set strings, which are arguments to @code{skip-chars-forward} and
776 @code{skip-chars-backward}.")
777 (license license:gpl3+)))
778
779 \f
780 ;;;
781 ;;; Web browsing.
782 ;;;
783
784 (define-public emacs-w3m
785 ;; Emacs-w3m follows a "rolling release" model.
786 (package
787 (name "emacs-w3m")
788 (version "2018-11-11")
789 (source (origin
790 (method cvs-fetch)
791 (uri (cvs-reference
792 (root-directory
793 ":pserver:anonymous@cvs.namazu.org:/storage/cvsroot")
794 (module "emacs-w3m")
795 (revision version)))
796 (file-name (string-append name "-" version "-checkout"))
797 (sha256
798 (base32
799 "0nvahdbjs12zg7zsk4gql02mvnv56cf1rwj2f5p42lwp3xvswiwp"))))
800 (build-system gnu-build-system)
801 (native-inputs `(("autoconf" ,autoconf)
802 ("texinfo" ,texinfo)
803 ("emacs" ,emacs-minimal)))
804 (inputs `(("w3m" ,w3m)
805 ("imagemagick" ,imagemagick)))
806 (arguments
807 `(#:modules ((guix build gnu-build-system)
808 (guix build utils)
809 (guix build emacs-utils))
810 #:imported-modules (,@%gnu-build-system-modules
811 (guix build emacs-utils))
812 #:configure-flags
813 (let ((out (assoc-ref %outputs "out")))
814 (list (string-append "--with-lispdir="
815 out "/share/emacs/site-lisp")
816 (string-append "--with-icondir="
817 out "/share/images/emacs-w3m")
818 ;; Leave .el files uncompressed, otherwise GC can't
819 ;; identify run-time dependencies. See
820 ;; <http://lists.gnu.org/archive/html/guix-devel/2015-12/msg00208.html>
821 "--without-compress-install"))
822 #:tests? #f ; no check target
823 #:phases
824 (modify-phases %standard-phases
825 (add-after 'unpack 'autoconf
826 (lambda _
827 (invoke "autoconf")))
828 (add-before 'configure 'support-emacs!
829 (lambda _
830 ;; For some reason 'AC_PATH_EMACS' thinks that 'Emacs 26' is
831 ;; unsupported.
832 (substitute* "configure"
833 (("EMACS_FLAVOR=unsupported")
834 "EMACS_FLAVOR=emacs"))
835 #t))
836 (add-before 'build 'patch-exec-paths
837 (lambda* (#:key inputs outputs #:allow-other-keys)
838 (let ((out (assoc-ref outputs "out"))
839 (w3m (assoc-ref inputs "w3m"))
840 (imagemagick (assoc-ref inputs "imagemagick"))
841 (coreutils (assoc-ref inputs "coreutils")))
842 (make-file-writable "w3m.el")
843 (emacs-substitute-variables "w3m.el"
844 ("w3m-command" (string-append w3m "/bin/w3m"))
845 ("w3m-touch-command"
846 (string-append coreutils "/bin/touch"))
847 ("w3m-icon-directory"
848 (string-append out "/share/images/emacs-w3m")))
849 (make-file-writable "w3m-image.el")
850 (emacs-substitute-variables "w3m-image.el"
851 ("w3m-imagick-convert-program"
852 (string-append imagemagick "/bin/convert"))
853 ("w3m-imagick-identify-program"
854 (string-append imagemagick "/bin/identify")))
855 #t)))
856 (replace 'install
857 (lambda* (#:key outputs #:allow-other-keys)
858 (invoke "make" "install" "install-icons")
859 (with-directory-excursion
860 (string-append (assoc-ref outputs "out")
861 "/share/emacs/site-lisp")
862 (for-each delete-file '("ChangeLog" "ChangeLog.1"))
863 (symlink "w3m-load.el" "w3m-autoloads.el")
864 #t))))))
865 (home-page "http://emacs-w3m.namazu.org/")
866 (synopsis "Simple Web browser for Emacs based on w3m")
867 (description
868 "Emacs-w3m is an emacs interface for the w3m web browser.")
869 (license license:gpl2+)))
870
871 (define-public emacs-wget
872 (package
873 (name "emacs-wget")
874 (version "0.5.0")
875 (source (origin
876 (method url-fetch)
877 (uri (string-append "mirror://debian/pool/main/w/wget-el/wget-el_"
878 version ".orig.tar.gz"))
879 (sha256
880 (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff"))))
881 (build-system gnu-build-system)
882 (inputs `(("wget" ,wget)))
883 (native-inputs `(("emacs" ,emacs-minimal)))
884 (arguments
885 `(#:modules ((guix build gnu-build-system)
886 (guix build utils)
887 (guix build emacs-utils))
888 #:imported-modules (,@%gnu-build-system-modules
889 (guix build emacs-utils))
890 #:tests? #f ; no check target
891 #:phases
892 (modify-phases %standard-phases
893 (replace 'configure
894 (lambda* (#:key outputs #:allow-other-keys)
895 (substitute* "Makefile"
896 (("/usr/local") (assoc-ref outputs "out"))
897 (("/site-lisp/emacs-wget") "/site-lisp"))
898 #t))
899 (add-before 'build 'patch-exec-paths
900 (lambda* (#:key inputs outputs #:allow-other-keys)
901 (let ((wget (assoc-ref inputs "wget")))
902 (emacs-substitute-variables "wget.el"
903 ("wget-command" (string-append wget "/bin/wget"))))
904 #t))
905 (add-after 'install 'post-install
906 (lambda* (#:key outputs #:allow-other-keys)
907 (emacs-generate-autoloads
908 "wget" (string-append (assoc-ref outputs "out")
909 "/share/emacs/site-lisp/"))
910 #t)))))
911 (home-page "http://www.emacswiki.org/emacs/EmacsWget")
912 (synopsis "Simple file downloader for Emacs based on wget")
913 (description
914 "Emacs-wget is an emacs interface for the wget file downloader.")
915 (license license:gpl2+)))
916
917 \f
918 ;;;
919 ;;; Multimedia.
920 ;;;
921
922 (define-public emacs-emms
923 (package
924 (name "emacs-emms")
925 (version "5.1")
926 (source (origin
927 (method url-fetch)
928 (uri (string-append "mirror://gnu/emms/emms-"
929 version ".tar.gz"))
930 (sha256
931 (base32
932 "149ddczyx6x10zn4mn8g0rll1rwf4yciv8x6j0qdnlbwszblx2x6"))
933 (modules '((guix build utils)))
934 (snippet
935 '(begin
936 (substitute* "Makefile"
937 (("/usr/bin/install-info")
938 ;; No need to use 'install-info' since it would create a
939 ;; useless 'dir' file.
940 "true")
941 (("^INFODIR=.*")
942 ;; Install Info files to $out/share/info, not $out/info.
943 "INFODIR := $(PREFIX)/share/info\n")
944 (("/site-lisp/emms")
945 ;; Install directly in share/emacs/site-lisp, not in a
946 ;; sub-directory.
947 "/site-lisp")
948 (("^all: (.*)\n" _ rest)
949 ;; Build 'emms-print-metadata'.
950 (string-append "all: " rest " emms-print-metadata\n")))
951 #t))))
952 (build-system gnu-build-system)
953 (arguments
954 `(#:modules ((guix build gnu-build-system)
955 (guix build utils)
956 (guix build emacs-utils)
957 (ice-9 ftw))
958 #:imported-modules (,@%gnu-build-system-modules
959 (guix build emacs-utils))
960
961 #:phases
962 (modify-phases %standard-phases
963 (replace 'configure
964 (lambda* (#:key inputs outputs #:allow-other-keys)
965 (let ((out (assoc-ref outputs "out"))
966 (flac (assoc-ref inputs "flac"))
967 (vorbis (assoc-ref inputs "vorbis-tools"))
968 (alsa (assoc-ref inputs "alsa-utils"))
969 (mpg321 (assoc-ref inputs "mpg321"))
970 (mp3info (assoc-ref inputs "mp3info"))
971 (opus (assoc-ref inputs "opus-tools")))
972 ;; Specify the installation directory.
973 (substitute* "Makefile"
974 (("PREFIX=.*$")
975 (string-append "PREFIX := " out "\n")))
976
977 (setenv "SHELL" (which "sh"))
978 (setenv "CC" "gcc")
979
980 ;; Specify the absolute file names of the various
981 ;; programs so that everything works out-of-the-box.
982 (with-directory-excursion "lisp"
983 (emacs-substitute-variables
984 "emms-player-mpg321-remote.el"
985 ("emms-player-mpg321-remote-command"
986 (string-append mpg321 "/bin/mpg321")))
987 (substitute* "emms-player-simple.el"
988 (("\"ogg123\"")
989 (string-append "\"" vorbis "/bin/ogg123\"")))
990 (substitute* "emms-player-simple.el"
991 (("\"mpg321\"")
992 (string-append "\"" mpg321 "/bin/mpg321\"")))
993 (emacs-substitute-variables "emms-info-ogginfo.el"
994 ("emms-info-ogginfo-program-name"
995 (string-append vorbis "/bin/ogginfo")))
996 (emacs-substitute-variables "emms-info-opusinfo.el"
997 ("emms-info-opusinfo-program-name"
998 (string-append opus "/bin/opusinfo")))
999 (emacs-substitute-variables "emms-info-libtag.el"
1000 ("emms-info-libtag-program-name"
1001 (string-append out "/bin/emms-print-metadata")))
1002 (emacs-substitute-variables "emms-info-mp3info.el"
1003 ("emms-info-mp3info-program-name"
1004 (string-append mp3info "/bin/mp3info")))
1005 (emacs-substitute-variables "emms-info-metaflac.el"
1006 ("emms-info-metaflac-program-name"
1007 (string-append flac "/bin/metaflac")))
1008 (emacs-substitute-variables "emms-source-file.el"
1009 ("emms-source-file-gnu-find" (which "find")))
1010 (substitute* "emms-volume-amixer.el"
1011 (("\"amixer\"")
1012 (string-append "\"" alsa "/bin/amixer\"")))
1013 (substitute* "emms-tag-editor.el"
1014 (("\"mp3info\"")
1015 (string-append "\"" mp3info "/bin/mp3info\"")))))))
1016 (add-before 'install 'pre-install
1017 (lambda* (#:key outputs #:allow-other-keys)
1018 ;; The 'install' rule expects the target directories to exist.
1019 (let* ((out (assoc-ref outputs "out"))
1020 (bin (string-append out "/bin"))
1021 (man1 (string-append out "/share/man/man1")))
1022 (mkdir-p bin)
1023 (mkdir-p man1)
1024
1025 ;; Ensure that files are not rejected by gzip
1026 (let ((early-1980 315619200)) ; 1980-01-02 UTC
1027 (ftw "." (lambda (file stat flag)
1028 (unless (<= early-1980 (stat:mtime stat))
1029 (utime file early-1980 early-1980))
1030 #t)))
1031 #t)))
1032 (add-after 'install 'post-install
1033 (lambda* (#:key outputs #:allow-other-keys)
1034 (let ((out (assoc-ref outputs "out")))
1035 (symlink "emms-auto.el"
1036 (string-append out "/share/emacs/site-lisp/"
1037 "emms-autoloads.el")))
1038 #t)))
1039 #:tests? #f))
1040 (native-inputs `(("emacs" ,emacs-minimal) ;for (guix build emacs-utils)
1041 ("texinfo" ,texinfo)))
1042 (inputs `(("alsa-utils" ,alsa-utils)
1043 ("flac" ,flac) ;for metaflac
1044 ("vorbis-tools" ,vorbis-tools)
1045 ("mpg321" ,mpg321)
1046 ("taglib" ,taglib)
1047 ("mp3info" ,mp3info)
1048 ("opus-tools" ,opus-tools)))
1049 (properties '((upstream-name . "emms")))
1050 (synopsis "Emacs Multimedia System")
1051 (description
1052 "EMMS is the Emacs Multimedia System. It is a small front-end which
1053 can control one of the supported external players. Thus, it supports
1054 whatever formats are supported by your music player. It also
1055 supports tagging and playlist management, all behind a clean and
1056 light user interface.")
1057 (home-page "https://www.gnu.org/software/emms/")
1058 (license license:gpl3+)))
1059
1060 (define-public emacs-emms-player-mpv
1061 ;; A new mpv backend is included in Emms from 5.0.
1062 (deprecated-package "emacs-emms-player-mpv" emacs-emms))
1063
1064 (define-public emacs-emms-mode-line-cycle
1065 (package
1066 (name "emacs-emms-mode-line-cycle")
1067 (version "0.2.5")
1068 (source
1069 (origin
1070 (method git-fetch)
1071 (uri (git-reference
1072 (url "https://github.com/momomo5717/emms-mode-line-cycle")
1073 (commit version)))
1074 (file-name (git-file-name name version))
1075 (sha256
1076 (base32
1077 "0q80f0plch6k4lhs8c9qm3mfycfbp3kn5sjrk9zxgxwnn901y9mp"))))
1078 (build-system emacs-build-system)
1079 (propagated-inputs
1080 `(("emms" ,emacs-emms)))
1081 (home-page "https://github.com/momomo5717/emms-mode-line-cycle")
1082 (synopsis "Display the EMMS mode line as a ticker")
1083 (description
1084 "This is a minor mode for updating the EMMS mode-line string cyclically
1085 within a specified width. It is useful for displaying long track titles.")
1086 (license license:gpl3+)))
1087
1088 \f
1089 ;;;
1090 ;;; Miscellaneous.
1091 ;;;
1092
1093 (define-public emacs-bbdb
1094 (package
1095 (name "emacs-bbdb")
1096 (version "3.1.2")
1097 (source (origin
1098 (method url-fetch)
1099 (uri (string-append "mirror://savannah/bbdb/bbdb-"
1100 version ".tar.gz"))
1101 (sha256
1102 (base32
1103 "1gs16bbpiiy01w9pyg12868r57kx1v3hnw04gmqsmpc40l1hyy05"))
1104 (modules '((guix build utils)))
1105 (snippet
1106 ;; We don't want to build and install the PDF.
1107 '(begin
1108 (substitute* "doc/Makefile.in"
1109 (("^doc_DATA = .*$")
1110 "doc_DATA =\n"))
1111 #t))))
1112 (build-system gnu-build-system)
1113 (arguments
1114 '(#:phases
1115 (modify-phases %standard-phases
1116 (add-after 'install 'post-install
1117 (lambda* (#:key outputs #:allow-other-keys)
1118 ;; Add an autoloads file with the right name for guix.el.
1119 (let* ((out (assoc-ref outputs "out"))
1120 (site (string-append out "/share/emacs/site-lisp")))
1121 (with-directory-excursion site
1122 (symlink "bbdb-loaddefs.el" "bbdb-autoloads.el")))
1123 #t)))))
1124 (native-inputs `(("emacs" ,emacs-minimal)))
1125 (home-page "https://savannah.nongnu.org/projects/bbdb/")
1126 (synopsis "Contact management utility for Emacs")
1127 (description
1128 "BBDB is the Insidious Big Brother Database for GNU Emacs. It provides
1129 an address book for email and snail mail addresses, phone numbers and the
1130 like. It can be linked with various Emacs mail clients (Message and Mail
1131 mode, Rmail, Gnus, MH-E, and VM). BBDB is fully customizable.")
1132 (license license:gpl3+)))
1133
1134 (define-public bbdb
1135 (deprecated-package "bbdb" emacs-bbdb))
1136
1137 (define-public emacs-aggressive-indent
1138 (package
1139 (name "emacs-aggressive-indent")
1140 (version "1.8.3")
1141 (source (origin
1142 (method url-fetch)
1143 (uri (string-append "https://elpa.gnu.org/packages/"
1144 "aggressive-indent-" version ".el"))
1145 (sha256
1146 (base32
1147 "0jnzccl50x0wapprgwxinp99pwwa6j43q6msn4gv437j7swy8wnj"))))
1148 (build-system emacs-build-system)
1149 (home-page "https://elpa.gnu.org/packages/aggressive-indent.html")
1150 (synopsis "Minor mode to aggressively keep your code always indented")
1151 (description
1152 "@code{aggressive-indent-mode} is a minor mode that keeps your code
1153 always indented. It reindents after every change, making it more reliable
1154 than @code{electric-indent-mode}.")
1155 (license license:gpl2+)))
1156
1157 (define-public emacs-ag
1158 (package
1159 (name "emacs-ag")
1160 (version "0.47")
1161 (source (origin
1162 (method url-fetch)
1163 (uri (string-append
1164 "https://github.com/Wilfred/ag.el/archive/"
1165 version ".tar.gz"))
1166 (file-name (string-append name "-" version ".tar.gz"))
1167 (sha256
1168 (base32
1169 "1rlmp6wnyhqfg86dbz17r914msp58favn4kd4yrdwyia265a4lar"))))
1170 (build-system emacs-build-system)
1171 (arguments
1172 `(#:phases
1173 (modify-phases %standard-phases
1174 (add-before 'install 'make-info
1175 (lambda _
1176 (with-directory-excursion "docs"
1177 (invoke "make" "info"))))
1178 (add-after 'install 'install-info
1179 (lambda* (#:key outputs #:allow-other-keys)
1180 (let* ((out (assoc-ref outputs "out"))
1181 (info (string-append out "/share/info")))
1182 (install-file "docs/_build/texinfo/agel.info" info)
1183 #t))))))
1184 (native-inputs
1185 `(("python-sphinx" ,python-sphinx)
1186 ("texinfo" ,texinfo)))
1187 (propagated-inputs
1188 `(("dash" ,emacs-dash)
1189 ("s" ,emacs-s)
1190 ;; We need to use 'ag' as the executable on remote systems.
1191 ("the-silver-searcher" ,the-silver-searcher)))
1192 (home-page "https://github.com/Wilfred/ag.el")
1193 (synopsis "Front-end for ag (the-silver-searcher) for Emacs")
1194 (description "This package provides the ability to use the silver
1195 searcher, a code searching tool, sometimes abbreviated to @code{ag}. Features
1196 include version control system awareness, use of Perl compatible regular
1197 expressions, editing the search results directly and searching file names
1198 rather than the contents of files.")
1199 (license license:gpl3+)))
1200
1201 (define-public emacs-async
1202 (package
1203 (name "emacs-async")
1204 (home-page "https://github.com/jwiegley/emacs-async")
1205 (version "1.9.3")
1206 (source (origin
1207 (method git-fetch)
1208 (uri (git-reference
1209 (url home-page)
1210 (commit (string-append "v" version))))
1211 (file-name (git-file-name name version))
1212 (sha256
1213 (base32
1214 "1zsnb6dy8p6y68xgidv3dfxaga4biramfw8fq7wac0sc50vc98vq"))))
1215 (build-system emacs-build-system)
1216 (synopsis "Asynchronous processing in Emacs")
1217 (description
1218 "This package provides the ability to call asynchronous functions and
1219 processes. For example, it can be used to run dired commands (for copying,
1220 moving, etc.) asynchronously using @code{dired-async-mode}. Also it is used
1221 as a library for other Emacs packages.")
1222 (license license:gpl3+)))
1223
1224 (define-public emacs-auctex
1225 (package
1226 (name "emacs-auctex")
1227 (version "12.1.0")
1228 (source
1229 (origin
1230 (method url-fetch)
1231 (uri (string-append
1232 "https://elpa.gnu.org/packages/auctex-"
1233 version
1234 ".tar"))
1235 (sha256
1236 (base32
1237 "0iy5x61xqkxaph2hq64sg50l1c6yp6qhzppwadayxkdz00b46sas"))))
1238 (build-system emacs-build-system)
1239 ;; We use 'emacs' because AUCTeX requires dbus at compile time
1240 ;; ('emacs-minimal' does not provide dbus).
1241 (arguments
1242 `(#:emacs ,emacs
1243 #:include '("\\.el$" "^images/" "^latex/" "\\.info$")
1244 #:exclude '("^tests/" "^latex/README")))
1245 (native-inputs
1246 `(("perl" ,perl)))
1247 (home-page "https://www.gnu.org/software/auctex/")
1248 (synopsis "Integrated environment for TeX")
1249 (description
1250 "AUCTeX is a comprehensive customizable integrated environment for
1251 writing input files for TeX, LaTeX, ConTeXt, Texinfo, and docTeX using Emacs
1252 or XEmacs.")
1253 (license license:gpl3+)))
1254
1255 (define-public emacs-autothemer
1256 (package
1257 (name "emacs-autothemer")
1258 (version "0.2.2")
1259 (source
1260 (origin
1261 (method url-fetch)
1262 (uri (string-append "https://github.com/sebastiansturm/autothemer/archive/"
1263 version ".tar.gz"))
1264 (file-name (string-append name "-" version ".tar.gz"))
1265 (sha256
1266 (base32
1267 "0rd28r9wfrbll212am4ih9hrvypx785aff76va2cbfxdwm9kixsa"))))
1268 (build-system emacs-build-system)
1269 (propagated-inputs
1270 `(("emacs-dash" ,emacs-dash)))
1271 (home-page "https://github.com/sebastiansturm/autothemer")
1272 (synopsis "Conveniently create Emacs themes")
1273 (description
1274 "Autothemer provides a thin layer on top of @code{deftheme} and
1275 @code{custom-theme-set-faces} that creates a new custom color theme, based on
1276 a set of simplified face specifications and a user-supplied color palette")
1277 (license license:gpl3+)))
1278
1279 (define-public emacs-howm
1280 (package
1281 (name "emacs-howm")
1282 (version "1.4.4")
1283 (source
1284 (origin
1285 (method url-fetch)
1286 (uri (string-append "http://howm.sourceforge.jp/a/howm-"
1287 version ".tar.gz"))
1288 (sha256
1289 (base32
1290 "0ddm91l6z58j7x59fa966j6q1rg4cinyza4r8ibg80hprn5h31qk"))))
1291 (build-system gnu-build-system)
1292 (native-inputs
1293 `(("emacs" ,emacs-minimal)))
1294 (arguments
1295 `(#:configure-flags
1296 (list (string-append "--with-howmdir=" %output
1297 "/share/emacs/site-lisp/guix.d/howm-" ,version))
1298 #:modules ((guix build gnu-build-system)
1299 ((guix build emacs-build-system) #:prefix emacs:)
1300 (guix build utils))
1301 #:imported-modules (,@%gnu-build-system-modules
1302 (guix build emacs-build-system)
1303 (guix build emacs-utils))
1304 #:phases
1305 (modify-phases %standard-phases
1306 (add-after 'install 'make-autoloads
1307 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
1308 (home-page "http://howm.osdn.jp/")
1309 (synopsis "Note-taking tool for Emacs")
1310 (description "Howm is a note-taking tool for Emacs. Like
1311 code@{emacs-wiki.el}, it facilitates using hyperlinks and doing full-text
1312 searches. Unlike code@{emacs-wiki.el}, it can be combined with any format.")
1313 (license license:gpl1+)))
1314
1315 (define-public emacs-calfw
1316 (package
1317 (name "emacs-calfw")
1318 (version "1.6")
1319 (source
1320 (origin
1321 (method url-fetch)
1322 (uri (string-append
1323 "https://github.com/kiwanami/emacs-calfw/archive/v"
1324 version ".tar.gz"))
1325 (file-name (string-append name "-" version ".tar.gz"))
1326 (sha256
1327 (base32
1328 "1zr91xr0f1xfcv78yxka8vs5ximmq2ixmqf2pkb57kwwnxlypq4i"))))
1329 (build-system emacs-build-system)
1330 (propagated-inputs
1331 `(("emacs-howm" ,emacs-howm)))
1332 (home-page "https://github.com/kiwanami/emacs-calfw/")
1333 (synopsis "Calendar framework for Emacs")
1334 (description
1335 "This package displays a calendar view with various schedule data in the
1336 Emacs buffer.")
1337 (license license:gpl3+)))
1338
1339 (define-public emacs-direnv
1340 (package
1341 (name "emacs-direnv")
1342 (version "1.2.0")
1343 (source
1344 (origin
1345 (method url-fetch)
1346 (uri (string-append
1347 "https://github.com/wbolster/emacs-direnv/archive/"
1348 version ".tar.gz"))
1349 (file-name (string-append name "-" version ".tar.gz"))
1350 (sha256
1351 (base32
1352 "0m9nxawklhiiysyibzzhh2zkxgq1fskqvaqb06f7r8dnhabfy9fr"))))
1353 (build-system emacs-build-system)
1354 (propagated-inputs
1355 `(("dash" ,emacs-dash)
1356 ("with-editor" ,emacs-with-editor)))
1357 (home-page "https://github.com/wbolster/emacs-direnv")
1358 (synopsis "Direnv integration for Emacs")
1359 (description
1360 "This package provides support for invoking direnv to get the environment
1361 for the current file and updating the environment within Emacs to match.
1362
1363 Direnv can be invoked manually, and a global minor mode is included that will
1364 update the environment when the active buffer changes.
1365
1366 Using emacs-direnv means that programs started from Emacs will use the
1367 environment set through Direnv.")
1368 (license license:gpl3+)))
1369
1370 (define-public emacs-ggtags
1371 (package
1372 (name "emacs-ggtags")
1373 (version "0.8.13")
1374 (source
1375 (origin
1376 (method url-fetch)
1377 (uri (string-append "http://elpa.gnu.org/packages/ggtags-"
1378 version ".el"))
1379 (sha256
1380 (base32
1381 "1qa7lcrcmf76sf6dy8sxbg4adq7rg59fm0n5848w3qxgsr0h45fg"))))
1382 (build-system emacs-build-system)
1383 (inputs
1384 `(("global" ,global)))
1385 (arguments
1386 `(#:phases
1387 (modify-phases %standard-phases
1388 (add-after 'unpack 'configure
1389 (lambda* (#:key inputs #:allow-other-keys)
1390 (chmod "ggtags.el" #o644)
1391 (emacs-substitute-variables "ggtags.el"
1392 ("ggtags-executable-directory"
1393 (string-append (assoc-ref inputs "global") "/bin")))
1394 #t)))))
1395 (home-page "https://github.com/leoliu/ggtags")
1396 (synopsis "Frontend to the GNU Global source code tagging system")
1397 (description "@code{ggtags} provides a frontend to the GNU Global source
1398 code tagging system.
1399
1400 Features:
1401
1402 @itemize
1403 @item Build on @code{compile.el} for asynchronicity and its large feature-set.
1404 @item Automatically update Global's tag files when needed with tuning for
1405 large source trees.
1406 @item Intuitive navigation among multiple matches with mode-line display of
1407 current match, total matches and exit status.
1408 @item Read tag with completion.
1409 @item Show definition at point.
1410 @item Jump to #include files.
1411 @item Support search history and saving a search to register/bookmark.
1412 @item Query replace.
1413 @item Manage Global's environment variables on a per-project basis.
1414 @item Highlight (definition) tag at point.
1415 @item Abbreviated display of file names.
1416 @item Support all Global search backends: @code{grep}, @code{idutils}, etc.
1417 @item Support exuberant ctags @url{http://ctags.sourceforge.net/} and
1418 @code{pygments} backend.
1419 @item Support all Global's output formats: @code{grep}, @code{ctags-x},
1420 @code{cscope} etc.
1421 @item Support projects on remote hosts (e.g. via @code{tramp}).
1422 @item Support eldoc.
1423 @item Search @code{GTAGSLIBPATH} for references and symbols.
1424 @end itemize\n")
1425 (license license:gpl3+)))
1426
1427 (define-public emacs-go-mode
1428 (package
1429 (name "emacs-go-mode")
1430 (version "1.5.0")
1431 (source (origin
1432 (method git-fetch)
1433 (uri (git-reference
1434 (url "https://github.com/dominikh/go-mode.el.git")
1435 (commit (string-append "v" version))))
1436 (file-name (git-file-name name version))
1437 (sha256
1438 (base32
1439 "1nd2h50yb0493wvf1h7fzplq45rmqn2w7kxpgnlxzhkvq99v8vzf"))))
1440 (build-system emacs-build-system)
1441 (arguments
1442 `(#:phases
1443 (modify-phases %standard-phases
1444 (add-after 'unpack 'make-writable
1445 (lambda _
1446 (for-each make-file-writable (find-files "." "\\.el$"))
1447 #t)))))
1448 (home-page "https://github.com/dominikh/go-mode.el")
1449 (synopsis "Go mode for Emacs")
1450 (description
1451 "This package provides go-mode, an Emacs mode for working with software
1452 written in the Go programming language.")
1453 (license license:bsd-3)))
1454
1455 (define-public emacs-google-maps
1456 (package
1457 (name "emacs-google-maps")
1458 (version "1.0.0")
1459 (source (origin
1460 (method url-fetch)
1461 (uri (string-append "https://github.com/jd/google-maps.el/"
1462 "archive/" version ".tar.gz"))
1463 (file-name (string-append name "-" version ".tar.gz"))
1464 (sha256
1465 (base32
1466 "014bxapm4d8vjxbzrfjdpsavxyfx981mlcb10aq5rmigr6il8ybs"))))
1467 (build-system emacs-build-system)
1468 (home-page "https://github.com/jd/google-maps.el")
1469 (synopsis "Access Google Maps from Emacs")
1470 (description "The @code{google-maps} package allows to display Google
1471 Maps directly inside Emacs.")
1472 (license license:gpl3+)))
1473
1474 (define-public emacs-graphviz-dot-mode
1475 (let ((commit "c456a2b65c734089e6c44e87209a5a432a741b1a")
1476 (revision "1"))
1477 (package
1478 (name "emacs-graphviz-dot-mode")
1479 (version (string-append "0.3.11-" revision "."
1480 (string-take commit 7)))
1481 (source (origin
1482 (method git-fetch)
1483 (uri (git-reference
1484 (url "https://github.com/ppareit/graphviz-dot-mode.git")
1485 (commit commit)))
1486 (file-name (string-append name "-" version "-checkout"))
1487 (sha256
1488 (base32
1489 "0j1r2rspaakw37b0mx7pwpvdsvixq9sw3xjbww5piihzpdxz58z1"))))
1490 (build-system emacs-build-system)
1491 (arguments
1492 `(#:phases
1493 (modify-phases %standard-phases
1494 (add-before 'install 'make-info
1495 (lambda* (#:key inputs #:allow-other-keys)
1496 (with-directory-excursion "texinfo"
1497 (substitute* "Makefile"
1498 (("\\/usr\\/bin\\/gzip")
1499 (string-append (assoc-ref inputs "gzip") "/bin/gzip")))
1500 (invoke "make"
1501 "clean"
1502 "info"
1503 (string-append "TEXINFODIR="
1504 (assoc-ref inputs "texinfo")
1505 "/bin")))))
1506 (add-after 'install 'install-info
1507 (lambda* (#:key outputs #:allow-other-keys)
1508 (let* ((out (assoc-ref outputs "out"))
1509 (info (string-append out "/share/info")))
1510 (install-file "texinfo/graphviz-dot-mode.info.gz" info)
1511 #t))))))
1512 (native-inputs
1513 `(("texinfo" ,texinfo)
1514 ("gzip" ,gzip)))
1515 (home-page "http://ppareit.github.com/graphviz-dot-mode")
1516 (synopsis "Major mode for editing Graphviz Dot files")
1517 (description
1518 "This Emacs packages helps you to create @file{.dot} or @file{.gv}
1519 files using the dot syntax, and use Graphviz to convert these files to
1520 diagrams.")
1521 (license license:gpl2+))))
1522
1523 (define-public emacs-mmm-mode
1524 (package
1525 (name "emacs-mmm-mode")
1526 (version "0.5.5")
1527 (source
1528 (origin
1529 (method url-fetch)
1530 (uri (string-append
1531 "https://github.com/purcell/mmm-mode/archive/"
1532 version ".tar.gz"))
1533 (file-name (string-append name "-" version ".tar.gz"))
1534 (sha256
1535 (base32
1536 "0c5ing3hcr74k78hqhrfwiv6m3n8hqfrw89j2x34vf60f4iyqzqc"))))
1537 (build-system gnu-build-system)
1538 (arguments
1539 '(#:phases
1540 (modify-phases %standard-phases
1541 (add-after 'unpack 'autogen
1542 (lambda _
1543 (invoke "sh" "autogen.sh"))))))
1544 (native-inputs
1545 `(("autoconf" ,autoconf)
1546 ("automake" ,automake)
1547 ("emacs" ,emacs-minimal)
1548 ("texinfo" ,texinfo)))
1549 (home-page "https://github.com/purcell/mmm-mode")
1550 (synopsis "Allow multiple major modes in an Emacs buffer")
1551 (description
1552 "MMM Mode is a minor mode that allows multiple major modes to coexist in a
1553 single buffer.")
1554 (license license:gpl3+)))
1555
1556 (define-public emacs-tablist
1557 (package
1558 (name "emacs-tablist")
1559 (version "0.70")
1560 (source (origin
1561 (method url-fetch)
1562 (uri (string-append
1563 "https://github.com/politza/tablist/archive/v"
1564 version ".tar.gz"))
1565 (file-name (string-append name "-" version ".tar.gz"))
1566 (sha256
1567 (base32
1568 "177d6s7ym1mwz1nhnl09r14z3n093g9a2szm97xsaig0c204xz9c"))))
1569 (build-system emacs-build-system)
1570 (home-page "https://github.com/politza/tablist")
1571 (synopsis "Extension for @code{tabulated-list-mode}")
1572 (description "Tablist is the Emacs package that provides several
1573 additional features to @code{tabulated-list-mode}: it adds marks,
1574 filters, new key bindings and faces. It can be enabled by
1575 @code{tablist-mode} or @code{tablist-minor-mode} commands.")
1576 (license license:gpl3+)))
1577
1578 (define-public emacs-pdf-tools
1579 (package
1580 (name "emacs-pdf-tools")
1581 (version "0.90")
1582 (home-page "https://github.com/politza/pdf-tools")
1583 (source (origin
1584 (method git-fetch)
1585 (uri (git-reference (url home-page)
1586 (commit (string-append "v" version))))
1587 (file-name (git-file-name name version))
1588 (sha256
1589 (base32
1590 "0iv2g5kd14zk3r5dzdw7b7hk4b5w7qpbilcqkja46jgxbb6xnpl9"))))
1591 (build-system gnu-build-system)
1592 (arguments
1593 `(#:tests? #f ; there are no tests
1594 #:modules ((guix build gnu-build-system)
1595 ((guix build emacs-build-system) #:prefix emacs:)
1596 (guix build utils)
1597 (guix build emacs-utils))
1598 #:imported-modules (,@%gnu-build-system-modules
1599 (guix build emacs-build-system)
1600 (guix build emacs-utils))
1601 #:phases
1602 (modify-phases %standard-phases
1603 ;; Build server side using 'gnu-build-system'.
1604 (add-after 'unpack 'enter-server-dir
1605 (lambda _ (chdir "server") #t))
1606 (add-after 'enter-server-dir 'autogen
1607 (lambda _
1608 (invoke "bash" "autogen.sh")))
1609
1610 ;; Build emacs side using 'emacs-build-system'.
1611 (add-after 'compress-documentation 'enter-lisp-dir
1612 (lambda _ (chdir "../lisp") #t))
1613 (add-after 'enter-lisp-dir 'emacs-patch-variables
1614 (lambda* (#:key outputs #:allow-other-keys)
1615 (for-each make-file-writable (find-files "."))
1616
1617 ;; Set path to epdfinfo program.
1618 (emacs-substitute-variables "pdf-info.el"
1619 ("pdf-info-epdfinfo-program"
1620 (string-append (assoc-ref outputs "out")
1621 "/bin/epdfinfo")))
1622 ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto
1623 ;; upgrading" that pdf-tools tries to perform.
1624 (emacs-substitute-variables "pdf-tools.el"
1625 ("pdf-tools-handle-upgrades" '()))))
1626 (add-after 'emacs-patch-variables 'emacs-set-emacs-load-path
1627 (assoc-ref emacs:%standard-phases 'set-emacs-load-path))
1628 (add-after 'emacs-set-emacs-load-path 'emacs-install
1629 (assoc-ref emacs:%standard-phases 'install))
1630 (add-after 'emacs-install 'emacs-build
1631 (assoc-ref emacs:%standard-phases 'build))
1632 (add-after 'emacs-install 'emacs-make-autoloads
1633 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
1634 (native-inputs `(("autoconf" ,autoconf)
1635 ("automake" ,automake)
1636 ("pkg-config" ,pkg-config)
1637 ("emacs" ,emacs-minimal)))
1638 (inputs `(("poppler" ,poppler)
1639 ("cairo" ,cairo)
1640 ("glib" ,glib)
1641 ("libpng" ,libpng)
1642 ("zlib" ,zlib)))
1643 (propagated-inputs `(("tablist" ,emacs-tablist)))
1644 (synopsis "Emacs support library for PDF files")
1645 (description
1646 "PDF Tools is, among other things, a replacement of DocView for PDF
1647 files. The key difference is that pages are not pre-rendered by
1648 e.g. ghostscript and stored in the file-system, but rather created on-demand
1649 and stored in memory.")
1650 (license license:gpl3+)))
1651
1652 (define-public emacs-dash
1653 (package
1654 (name "emacs-dash")
1655 (version "2.15.0")
1656 (source (origin
1657 (method git-fetch)
1658 (uri (git-reference
1659 (url "https://github.com/magnars/dash.el.git")
1660 (commit version)))
1661 (file-name (git-file-name name version))
1662 (sha256
1663 (base32
1664 "0dx8q3jr8fh73cfl7mqi5dq0012ambpvc74d2c71fsv9rfw85693"))))
1665 (build-system emacs-build-system)
1666 (arguments
1667 `(#:tests? #t
1668 #:test-command '("./run-tests.sh")))
1669 (home-page "https://github.com/magnars/dash.el")
1670 (synopsis "Modern list library for Emacs")
1671 (description "This package provides a modern list API library for Emacs.")
1672 (license license:gpl3+)))
1673
1674 (define-public emacs-bui
1675 (package
1676 (name "emacs-bui")
1677 (version "1.2.1")
1678 (source (origin
1679 (method git-fetch)
1680 (uri (git-reference
1681 (url "https://notabug.org/alezost/emacs-bui.git")
1682 (commit (string-append "v" version))))
1683 (file-name (string-append name "-" version "-checkout"))
1684 (sha256
1685 (base32
1686 "0sszdl4kvqbihdh8d7mybpp0d8yw2p3gyiipjcxz9xhvvmw3ww4x"))))
1687 (build-system emacs-build-system)
1688 (propagated-inputs
1689 `(("dash" ,emacs-dash)))
1690 (home-page "https://notabug.org/alezost/emacs-bui")
1691 (synopsis "Buffer interface library for Emacs")
1692 (description
1693 "BUI (Buffer User Interface) is a library for making @code{list} and
1694 @code{info} interfaces to display an arbitrary data of the same
1695 type, for example: packages, buffers, files, etc.")
1696 (license license:gpl3+)))
1697
1698 (define-public emacs-guix
1699 (package
1700 (name "emacs-guix")
1701 (version "0.5.1.1")
1702 (source (origin
1703 (method url-fetch)
1704 (uri (string-append "https://emacs-guix.gitlab.io/website/"
1705 "releases/emacs-guix-" version ".tar.gz"))
1706 (sha256
1707 (base32
1708 "1gxg7lan3njc2yg2d02b2zij0d2cm2pv2q08nqz86s85jk3b6m03"))))
1709 (build-system gnu-build-system)
1710 (arguments
1711 `(#:configure-flags
1712 (let ((guix (assoc-ref %build-inputs "guix"))
1713 (gcrypt (assoc-ref %build-inputs "guile-gcrypt"))
1714 (geiser (assoc-ref %build-inputs "geiser"))
1715 (dash (assoc-ref %build-inputs "dash"))
1716 (bui (assoc-ref %build-inputs "bui"))
1717 (magit-popup (assoc-ref %build-inputs "magit-popup"))
1718 (edit-indirect (assoc-ref %build-inputs "edit-indirect"))
1719 (site-lisp "/share/emacs/site-lisp")
1720 (site-scm "/share/guile/site")
1721 (site-go "/lib/guile")
1722 (guile-dir (lambda (dir)
1723 (car (find-files dir
1724 (lambda (file stat)
1725 (string-prefix?
1726 "2." (basename file)))
1727 #:directories? #t)))))
1728 (list (string-append "--with-guix-site-dir="
1729 (guile-dir (string-append guix site-scm)))
1730 (string-append "--with-guix-site-ccache-dir="
1731 (guile-dir (string-append guix site-go))
1732 "/site-ccache")
1733 (string-append "--with-guile-gcrypt-site-dir="
1734 (guile-dir (string-append gcrypt site-scm)))
1735 (string-append "--with-guile-gcrypt-site-ccache-dir="
1736 (guile-dir (string-append gcrypt site-go))
1737 "/site-ccache")
1738 (string-append "--with-geiser-lispdir=" geiser site-lisp)
1739 (string-append "--with-dash-lispdir="
1740 dash site-lisp "/guix.d/dash-"
1741 ,(package-version emacs-dash))
1742 (string-append "--with-bui-lispdir="
1743 bui site-lisp "/guix.d/bui-"
1744 ,(package-version emacs-bui))
1745 (string-append "--with-editindirect-lispdir="
1746 edit-indirect site-lisp "/guix.d/edit-indirect-"
1747 ,(package-version emacs-edit-indirect))
1748 (string-append "--with-popup-lispdir="
1749 magit-popup site-lisp "/guix.d/magit-popup-"
1750 ,(package-version emacs-magit-popup))))))
1751 (native-inputs
1752 `(("pkg-config" ,pkg-config)
1753 ("emacs" ,emacs-minimal)))
1754 (inputs
1755 `(("guile" ,guile-2.2)
1756 ("guix" ,guix)))
1757 (propagated-inputs
1758 `(("geiser" ,emacs-geiser)
1759 ("guile-gcrypt" ,guile-gcrypt)
1760 ("dash" ,emacs-dash)
1761 ("bui" ,emacs-bui)
1762 ("edit-indirect" ,emacs-edit-indirect)
1763 ("magit-popup" ,emacs-magit-popup)))
1764 (home-page "https://emacs-guix.gitlab.io/website/")
1765 (synopsis "Emacs interface for GNU Guix")
1766 (description
1767 "Emacs-Guix provides a visual interface, tools and features for the GNU
1768 Guix package manager. Particularly, it allows you to do various package
1769 management tasks from Emacs. To begin with, run @code{M-x guix-about} or
1770 @code{M-x guix-help} command.")
1771 (license license:gpl3+)))
1772
1773 (define-public emacs-build-farm
1774 (package
1775 (name "emacs-build-farm")
1776 (version "0.2.2")
1777 (source (origin
1778 (method git-fetch)
1779 (uri (git-reference
1780 (url "https://notabug.org/alezost/emacs-build-farm.git")
1781 (commit (string-append "v" version))))
1782 (file-name (string-append name "-" version "-checkout"))
1783 (sha256
1784 (base32
1785 "0i0bwbav5861j2y15j9nd5m9rdqg9q97zgcbld8pivr9nyxy63lz"))))
1786 (build-system emacs-build-system)
1787 (propagated-inputs
1788 `(("bui" ,emacs-bui)
1789 ("magit-popup" ,emacs-magit-popup)))
1790 (home-page "https://notabug.org/alezost/emacs-build-farm")
1791 (synopsis "Emacs interface for Hydra and Cuirass build farms")
1792 (description
1793 "This Emacs package provides an interface for Hydra and
1794 Cuirass (build farms used by Nix and Guix). It allows you to look at
1795 various data related to the build farm projects, jobsets, builds and
1796 evaluations. The entry point is @code{M-x build-farm} command.")
1797 (license license:gpl3+)))
1798
1799 (define-public emacs-d-mode
1800 (package
1801 (name "emacs-d-mode")
1802 (version "2.0.9")
1803 (source (origin
1804 (method url-fetch)
1805 (uri (string-append
1806 "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode/"
1807 "archive/" version ".tar.gz"))
1808 (file-name (string-append name "-" version ".tar.gz"))
1809 (sha256
1810 (base32
1811 "127aa77ix3p7w4g339bx026df9y649dahlr3v359z0hs40zjz3kd"))))
1812 (build-system emacs-build-system)
1813 (propagated-inputs
1814 `(("emacs-undercover" ,emacs-undercover)))
1815 (home-page "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
1816 (synopsis "Emacs major mode for editing D code")
1817 (description "This package provides an Emacs major mode for highlighting
1818 code written in the D programming language. This mode is currently known to
1819 work with Emacs 24 and 25.")
1820 (license license:gpl2+)))
1821
1822 (define-public emacs-keyfreq
1823 (package
1824 (name "emacs-keyfreq")
1825 (version "20160516.716")
1826 (source
1827 (origin
1828 (method url-fetch)
1829 (uri (string-append "http://melpa.org/packages/keyfreq-"
1830 version ".el"))
1831 (sha256
1832 (base32
1833 "008hd7d06qskc3mx0bbdgpgy2pwxr8185fzlyqf9qjg49y74p6g8"))))
1834 (build-system emacs-build-system)
1835 (home-page "https://github.com/dacap/keyfreq")
1836 (synopsis "Track Emacs command frequencies")
1837 (description "@code{emacs-keyfeq} tracks and shows how many times you used
1838 a command.")
1839 (license license:gpl3+)))
1840
1841 (define-public emacs-olivetti
1842 (package
1843 (name "emacs-olivetti")
1844 (version "1.5.7")
1845 (source (origin
1846 (method url-fetch)
1847 (uri (string-append
1848 "https://stable.melpa.org/packages/olivetti-"
1849 version ".el"))
1850 (sha256
1851 (base32
1852 "1yj2ylg46q0pw1xzlv2b0fv9x8p56x25284s9v2smwjr4vf0nwcj"))))
1853 (build-system emacs-build-system)
1854 (home-page "https://github.com/rnkn/olivetti")
1855 (synopsis "Emacs minor mode for a nice writing environment")
1856 (description "This package provides an Emacs minor mode that puts writing
1857 in the center.")
1858 (license license:gpl3+)))
1859
1860 (define-public emacs-undo-tree
1861 (package
1862 (name "emacs-undo-tree")
1863 (version "0.6.6")
1864 (source (origin
1865 (method git-fetch)
1866 (uri (git-reference
1867 (url "http://dr-qubit.org/git/undo-tree.git")
1868 (commit (string-append "release/" version))))
1869 (file-name (string-append name "-" version "-checkout"))
1870 (sha256
1871 (base32
1872 "1hnh2mnmw179gr094r561w6cw1haid0lpvpqvkc24wpj82vphzpa"))))
1873 (build-system emacs-build-system)
1874 (home-page "http://www.dr-qubit.org/emacs.php")
1875 (synopsis "Treat undo history as a tree")
1876 (description "Tree-like interface to Emacs undo system, providing
1877 graphical tree presentation of all previous states of buffer that
1878 allows easily move between them.")
1879 (license license:gpl3+)))
1880
1881 (define-public emacs-s
1882 (package
1883 (name "emacs-s")
1884 (version "1.12.0")
1885 (source (origin
1886 (method url-fetch)
1887 (uri (string-append
1888 "https://github.com/magnars/s.el/archive/"
1889 version ".tar.gz"))
1890 (file-name (string-append name "-" version ".tar.gz"))
1891 (sha256
1892 (base32
1893 "0xbl75863pcm806zg0x1lw7qznzjq2c8320k8js7apyag8q4srvh"))))
1894 (build-system emacs-build-system)
1895 (arguments
1896 `(#:tests? #t
1897 #:emacs ,emacs ; FIXME: tests fail with emacs-minimal
1898 #:test-command '("./run-tests.sh")))
1899 (home-page "https://github.com/magnars/s.el")
1900 (synopsis "Emacs string manipulation library")
1901 (description "This package provides an Emacs library for manipulating
1902 strings.")
1903 (license license:gpl3+)))
1904
1905 (define-public emacs-symon
1906 (package
1907 (name "emacs-symon")
1908 (version "20160630")
1909 (source
1910 (origin
1911 (method url-fetch)
1912 (uri (string-append "https://github.com/zk-phi/symon/archive/"
1913 version ".tar.gz"))
1914 (file-name (string-append name "-" version ".tar.gz"))
1915 (sha256
1916 (base32
1917 "0h4jcgdnq98wc9rj72nwyazq8498yg55jfljiij5qwbn1xf1g5zz"))))
1918 (build-system emacs-build-system)
1919 (home-page "https://github.com/zk-phi/symon")
1920 (synopsis "Tiny graphical system monitor")
1921 (description
1922 "Tiny graphical system monitor for the Emacs minibuffer when idle.")
1923 (license license:gpl2+)))
1924
1925 (define-public emacs-sx
1926 (let ((version "20180212")
1927 (revision "1")
1928 (commit "833435fbf90d1c9e927d165b155f3b1ef39271de"))
1929 (package
1930 (name "emacs-sx")
1931 (version (git-version version revision commit))
1932 (source
1933 (origin
1934 (method git-fetch)
1935 (uri (git-reference
1936 (url "https://github.com/vermiculus/sx.el")
1937 (commit commit)))
1938 (file-name (git-file-name name version))
1939 (sha256
1940 (base32
1941 "1369xaxq1vy3d9yh862ddnhddikdpg2d0wv1ly00pnvdp9v4cqgd"))))
1942 (build-system emacs-build-system)
1943 (propagated-inputs
1944 `(("emacs-markdown-mode" ,emacs-markdown-mode)))
1945 (home-page "https://github.com/vermiculus/sx.el")
1946 (synopsis "Emacs StackExchange client")
1947 (description
1948 "Emacs StackExchange client. Ask and answer questions on
1949 Stack Overflow, Super User, and other StackExchange sites.")
1950 (license license:gpl3+))))
1951
1952 (define-public emacs-f
1953 (package
1954 (name "emacs-f")
1955 (version "0.20.0")
1956 (source (origin
1957 (method git-fetch)
1958 (uri (git-reference
1959 (url "https://github.com/rejeep/f.el.git")
1960 (commit (string-append "v" version))))
1961 (file-name (git-file-name name version))
1962 (sha256
1963 (base32
1964 "1a47xk3yp1rp17fqg7ldl3d3fb888h0fz3sysqfdz1bfdgs8a9bk"))))
1965 (build-system emacs-build-system)
1966 (propagated-inputs
1967 `(("emacs-s" ,emacs-s)
1968 ("emacs-dash" ,emacs-dash)))
1969 (home-page "https://github.com/rejeep/f.el")
1970 (synopsis "Emacs API for working with files and directories")
1971 (description "This package provides an Emacs library for working with
1972 files and directories.")
1973 (license license:gpl3+)))
1974
1975 (define-public emacs-git-gutter
1976 (package
1977 (name "emacs-git-gutter")
1978 (version "0.90")
1979 (source (origin
1980 (method url-fetch)
1981 (uri (string-append
1982 "https://github.com/syohex/" name "/archive/"
1983 version ".tar.gz"))
1984 (file-name (string-append name "-" version ".tar.gz"))
1985 (sha256
1986 (base32
1987 "1nmhvhpq1l56mj2yq3ag23rw3x4xgnsy8szp30s26l0yjnkhc4qg"))))
1988 (build-system emacs-build-system)
1989 (home-page "https://github.com/syohex/emacs-git-gutter")
1990 (synopsis "See and manage hunks of text in a version control system")
1991 (description
1992 "This package is an Emacs minor mode for displaying and interacting with
1993 hunks of text managed in a version control system. Added modified and deleted
1994 areas can be indicated with symbols on the edge of the buffer, and commands
1995 can be used to move between and perform actions on these hunks.
1996
1997 Git, Mercurial, Subversion and Bazaar are supported, and many parts of the
1998 display and behaviour is easily customisable.")
1999 (license license:gpl3+)))
2000
2001 (define-public emacs-git-timemachine
2002 (package
2003 (name "emacs-git-timemachine")
2004 (version "4.5")
2005 (source
2006 (origin
2007 (method url-fetch)
2008 (uri (string-append "https://gitlab.com/pidu/git-timemachine"
2009 "/-/archive/" version
2010 "/git-timemachine-" version ".tar.gz"))
2011 (file-name (string-append name "-" version ".tar.gz"))
2012 (sha256
2013 (base32
2014 "0ii40qcincasg7s1yrvqcxkqcqzb4sfs7gcxscn6m4x4ans165zy"))))
2015 (build-system emacs-build-system)
2016 (home-page "https://gitlab.com/pidu/git-timemachine")
2017 (synopsis "Step through historic versions of Git-controlled files")
2018 (description "This package enables you to step through historic versions
2019 of files under Git version control from within Emacs.")
2020 (license license:gpl3+)))
2021
2022 (define-public emacs-minitest
2023 (let ((commit "1aadb7865c1dc69c201cecee275751ecec33a182")
2024 (revision "1"))
2025 (package
2026 (name "emacs-minitest")
2027 (version (git-version "0.8.0" revision commit))
2028 (source (origin
2029 (method git-fetch)
2030 (uri (git-reference
2031 (url "https://github.com/arthurnn/minitest-emacs")
2032 (commit commit)))
2033 (file-name (git-file-name name commit))
2034 (sha256
2035 (base32
2036 "1l18zqpdzbnqj2qawq8hj7z7pl8hr8z9d8ihy8jaiqma915hmhj1"))))
2037 (build-system emacs-build-system)
2038 (arguments
2039 '(#:include (cons "^snippets\\/minitest-mode\\/" %default-include)
2040 #:exclude (delete "^[^/]*tests?\\.el$" %default-exclude)))
2041 (propagated-inputs
2042 `(("emacs-dash" ,emacs-dash)
2043 ("emacs-f" ,emacs-f)))
2044 (home-page "https://github.com/arthurnn/minitest-emacs")
2045 (synopsis "Emacs minitest mode")
2046 (description
2047 "The minitest mode provides commands to run the tests for the current
2048 file or line, as well as rerunning the previous tests, or all the tests for a
2049 project.
2050
2051 This package also includes relevant snippets for yasnippet.")
2052 (license license:expat))))
2053
2054 (define-public emacs-el-mock
2055 (package
2056 (name "emacs-el-mock")
2057 (version "1.25.1")
2058 (source
2059 (origin
2060 (method url-fetch)
2061 (uri (string-append "https://github.com/rejeep/el-mock.el/"
2062 "archive/v" version ".tar.gz"))
2063 (file-name (string-append name "-" version ".tar.gz"))
2064 (sha256
2065 (base32
2066 "16xw94n58xxn3zvgyj72bmzs0k5lkvswjmzs79ws9n7rzdivb38b"))))
2067 (build-system emacs-build-system)
2068 (home-page "https://github.com/rejeep/el-mock.el")
2069 (synopsis "Tiny mock and stub framework in Emacs Lisp")
2070 (description
2071 "Emacs Lisp Mock is a library for mocking and stubbing using readable
2072 syntax. Most commonly Emacs Lisp Mock is used in conjunction with Emacs Lisp
2073 Expectations, but it can be used in other contexts.")
2074 (license license:gpl3+)))
2075
2076 (define-public emacs-espuds
2077 (package
2078 (name "emacs-espuds")
2079 (version "0.3.3")
2080 (source
2081 (origin
2082 (method url-fetch)
2083 (uri (string-append "https://github.com/ecukes/espuds/"
2084 "archive/v" version ".tar.gz"))
2085 (file-name (string-append name "-" version ".tar.gz"))
2086 (sha256
2087 (base32
2088 "0xv551376pbmh735a3zjwc9z4qdx6ngj1vpq3xqjpn0a1rwjyn4k"))))
2089 (build-system emacs-build-system)
2090 (propagated-inputs
2091 `(("emacs-s" ,emacs-s)
2092 ("emacs-dash" ,emacs-dash)
2093 ("emacs-f" ,emacs-f)))
2094 (home-page "https://github.com/ecukes/espuds")
2095 (synopsis "Common step definitions for Ecukes")
2096 (description "Espuds is a collection of the most commonly used step
2097 definitions for testing with the Ecukes framework.")
2098 (license license:gpl3+)))
2099
2100 (define-public emacs-spark
2101 (let ((version "20160503") ; no proper tag, use date of commit
2102 (commit "0bf148c3ede3b31d56fd75f347cdd0b0eae60025")
2103 (revision "1"))
2104 (package
2105 (name "emacs-spark")
2106 (version (git-version version revision commit))
2107 (source
2108 (origin
2109 (method git-fetch)
2110 (uri (git-reference
2111 (url "https://github.com/alvinfrancis/spark.git")
2112 (commit commit)))
2113 (file-name (git-file-name name version))
2114 (sha256
2115 (base32
2116 "1ykqr86j17mi95s08d9fp02d7ych1331b04dcqxzxnmpkhwngyj1"))))
2117 (build-system emacs-build-system)
2118 (home-page "https://github.com/alvinfrancis/spark")
2119 (synopsis "Sparkline generation library for Emacs Lisp")
2120 (description "@code{emacs-spark} is a sparkline generation library for
2121 Emacs Lisp. It generates a sparkline string given a list of numbers. It is a
2122 port of @code{cl-spark} to Emacs Lisp.")
2123 (license license:expat))))
2124
2125 (define-public emacs-es-mode
2126 (package
2127 (name "emacs-es-mode")
2128 (version "4.3.0")
2129 (source (origin
2130 (method url-fetch)
2131 (uri (string-append
2132 "https://github.com/dakrone/es-mode/archive/"
2133 version ".tar.gz"))
2134 (file-name (string-append name "-" version ".tar.gz"))
2135 (sha256
2136 (base32
2137 "0y86qdcb3g7fkcb4pzsjh3syzql6w3314hg1wqxq4a8bbk3y0cgr"))))
2138 (build-system emacs-build-system)
2139 (propagated-inputs
2140 ;; The version of org in Emacs 24.5 is not sufficient, and causes tables
2141 ;; to be rendered incorrectly
2142 `(("emacs-dash" ,emacs-dash)
2143 ("emacs-org" ,emacs-org)
2144 ("emacs-spark" ,emacs-spark)))
2145 (home-page "https://github.com/dakrone/es-mode")
2146 (synopsis "Major mode for editing Elasticsearch queries")
2147 (description "@code{es-mode} includes highlighting, completion and
2148 indentation support for Elasticsearch queries. Also supported are
2149 @code{es-mode} blocks in @code{org-mode}, for which the results of queries can
2150 be processed through @code{jq}, or in the case of aggregations, can be
2151 rendered in to a table. In addition, there is an @code{es-command-center}
2152 mode, which displays information about Elasticsearch clusters.")
2153 (license license:gpl3+)))
2154
2155 (define-public emacs-expand-region
2156 (package
2157 (name "emacs-expand-region")
2158 (version "0.11.0")
2159 (source
2160 (origin
2161 (method url-fetch)
2162 (uri (string-append "https://github.com/magnars/expand-region.el"
2163 "/archive/" version ".tar.gz"))
2164 (file-name (string-append name "-" version ".tar.gz"))
2165 (sha256
2166 (base32
2167 "08dy1f411sh9wwww53rjw80idcf3vpki6ba2arl4hl5jcw9651g0"))))
2168 (build-system emacs-build-system)
2169 (home-page "https://github.com/magnars/expand-region.el")
2170 (synopsis "Increase selected region by semantic units")
2171 (description
2172 "Expand region increases the selected region by semantic units. Just
2173 keep pressing the key until it selects what you want. There's also
2174 @code{er/contract-region} if you expand too far.")
2175 (license license:gpl3+)))
2176
2177 (define-public emacs-fill-column-indicator
2178 (package
2179 (name "emacs-fill-column-indicator")
2180 (version "1.89")
2181 (source
2182 (origin
2183 (method url-fetch)
2184 (uri (string-append "https://github.com/alpaker/Fill-Column-Indicator"
2185 "/archive/v" version ".tar.gz"))
2186 (file-name (string-append name "-" version ".tar.gz"))
2187 (sha256
2188 (base32
2189 "09ab01np14bdcsr38xf95kpnvxzqr46mdjmphg3pigwnx39a3jvg"))))
2190 (build-system emacs-build-system)
2191 (home-page "https://www.emacswiki.org/emacs/FillColumnIndicator")
2192 (synopsis "Graphically indicate the fill column")
2193 (description
2194 "Fill-column-indicator graphically indicates the location of the fill
2195 column by drawing a thin line down the length of the editing window.")
2196 (license license:gpl3+)))
2197
2198 (define-public emacs-grep-a-lot
2199 (package
2200 (name "emacs-grep-a-lot")
2201 (version "1.0.7")
2202 (source (origin
2203 (method git-fetch)
2204 (uri (git-reference
2205 (url "https://github.com/ZungBang/emacs-grep-a-lot.git")
2206 (commit "9f9f645b9e308a0d887b66864ff97d0fca1ba4ad")))
2207 (file-name (string-append name "-" version "-checkout"))
2208 (sha256
2209 (base32
2210 "1f8262mrlinzgnn4m49hbj1hm3c1mvzza24py4b37sasn49546lw"))))
2211 (build-system emacs-build-system)
2212 (home-page "https://github.com/ZungBang/emacs-grep-a-lot")
2213 (synopsis "Enables multiple grep buffers in Emacs")
2214 (description
2215 "This Emacs package allows managing multiple grep buffers.")
2216 (license license:gpl3+)))
2217
2218 (define-public emacs-inf-ruby
2219 (package
2220 (name "emacs-inf-ruby")
2221 (version "2.5.1")
2222 (source
2223 (origin
2224 (method url-fetch)
2225 (uri (string-append "https://github.com/nonsequitur/inf-ruby/"
2226 "archive/" version ".tar.gz"))
2227 (file-name (string-append name "-" version ".tar.gz"))
2228 (sha256
2229 (base32
2230 "0m7323k649ckxql1grsdnf71bjhys7l4qb8wbpphb1mr1q8i4066"))))
2231 (build-system emacs-build-system)
2232 (home-page "https://github.com/nonsequitur/inf-ruby")
2233 (synopsis "Provides a REPL buffer connected to a Ruby subprocess in Emacs")
2234 (description
2235 "@code{inf-ruby} provides a Read Eval Print Loop (REPL) buffer, allowing
2236 for easy interaction with a ruby subprocess. Features include support for
2237 detecting specific uses of Ruby, e.g. when using rails, and using a
2238 appropriate console.")
2239 (license license:gpl3+)))
2240
2241 (define-public emacs-znc
2242 (package
2243 (name "emacs-znc")
2244 (version "0.0.2")
2245 (source
2246 (origin
2247 (method url-fetch)
2248 (uri (string-append "https://marmalade-repo.org/packages/znc-"
2249 version ".el"))
2250 (sha256
2251 (base32
2252 "1d8lqvybgyazin5z0g1c4l3rg1vzrrvf0saqs53jr1zcdg0lianh"))))
2253 (build-system emacs-build-system)
2254 (home-page "https://github.com/sshirokov/ZNC.el")
2255 (synopsis "Make ERC and ZNC get along better")
2256 (description
2257 "This is a thin wrapper around @code{erc} that enables one to use the ZNC
2258 IRC bouncer with ERC.")
2259 (license license:expat)))
2260
2261 (define-public emacs-shut-up
2262 (package
2263 (name "emacs-shut-up")
2264 (version "0.3.2")
2265 (source
2266 (origin
2267 (method url-fetch)
2268 (uri (string-append "https://github.com/cask/shut-up/"
2269 "archive/v" version ".tar.gz"))
2270 (file-name (string-append name "-" version ".tar.gz"))
2271 (sha256
2272 (base32
2273 "09kzrjdkb569iviyg7ydwq44yh84m3f9hkl7jizfrlk0w4gz67d1"))))
2274 (build-system emacs-build-system)
2275 (home-page "https://github.com/cask/shut-up")
2276 (synopsis "Silence Emacs")
2277 (description "This package silences most output of Emacs when running an
2278 Emacs shell script.")
2279 (license license:expat)))
2280
2281 (define-public emacs-undercover
2282 (package
2283 (name "emacs-undercover")
2284 (version "0.6.0")
2285 (source
2286 (origin
2287 (method url-fetch)
2288 (uri (string-append "https://github.com/sviridov/undercover.el/"
2289 "archive/v" version ".tar.gz"))
2290 (file-name (string-append name "-" version ".tar.gz"))
2291 (sha256
2292 (base32
2293 "0f48fi0xnbsqs382rgh85m9mq1wdnr0yib7as9xhwzvq0hsr5m0a"))))
2294 (build-system emacs-build-system)
2295 (propagated-inputs
2296 `(("emacs-dash" ,emacs-dash)
2297 ("emacs-shut-up" ,emacs-shut-up)))
2298 (home-page "https://github.com/sviridov/undercover.el")
2299 (synopsis "Test coverage library for Emacs Lisp")
2300 (description
2301 "Undercover is a test coverage library for software written in Emacs
2302 Lisp.")
2303 (license license:expat)))
2304
2305 (define-public emacs-paren-face
2306 (package
2307 (name "emacs-paren-face")
2308 (version "1.0.0")
2309 (source
2310 (origin
2311 (method url-fetch)
2312 (uri (string-append "https://github.com/tarsius/paren-face/archive/"
2313 version ".tar.gz"))
2314 (file-name (string-append name "-" version ".tar.gz"))
2315 (sha256
2316 (base32
2317 "0y4qrhxa9332vsvr999jg7qj1ymnfgwpf591yi4a4jgg90pm7qnn"))))
2318 (build-system emacs-build-system)
2319 (home-page "https://github.com/tarsius/paren-face")
2320 (synopsis "Face for parentheses in lisp modes")
2321 (description
2322 "This library defines a face named @code{parenthesis} used just for
2323 parentheses. The intended purpose of this face is to make parentheses less
2324 visible in Lisp code by dimming them. Lispers probably don't need to be
2325 constantly made aware of the existence of the parentheses. Dimming them might
2326 be even more useful for people new to lisp who have not yet learned to
2327 subconsciously blend out the parentheses.")
2328 (license license:gpl3+)))
2329
2330 (define-public emacs-page-break-lines
2331 (package
2332 (name "emacs-page-break-lines")
2333 (version "0.11")
2334 (source
2335 (origin
2336 (method url-fetch)
2337 (uri (string-append "https://github.com/purcell/page-break-lines/"
2338 "archive/" version ".tar.gz"))
2339 (file-name (string-append name "-" version ".tar.gz"))
2340 (sha256
2341 (base32
2342 "1zzhziq5kbrm9rxk30kx2glz455fp1blqxg8cpcf6l8xl3w8z4pg"))))
2343 (build-system emacs-build-system)
2344 (home-page "https://github.com/purcell/page-break-lines")
2345 (synopsis "Display page breaks as tidy horizontal lines")
2346 (description
2347 "This library provides a global mode which displays form feed characters
2348 as horizontal rules.")
2349 (license license:gpl3+)))
2350
2351 (define-public emacs-simple-httpd
2352 (package
2353 (name "emacs-simple-httpd")
2354 (version "1.4.6")
2355 (source
2356 (origin
2357 (method url-fetch)
2358 (uri (string-append "https://github.com/skeeto/emacs-web-server/"
2359 "archive/" version ".tar.gz"))
2360 (file-name (string-append name "-" version ".tar.gz"))
2361 (sha256
2362 (base32
2363 "01r7h3imnj4qx1m53a2wjafvbylcyz5f9r2rg2cs7ky3chlg220r"))))
2364 (build-system emacs-build-system)
2365 (home-page "https://github.com/skeeto/emacs-http-server")
2366 (synopsis "HTTP server in pure Emacs Lisp")
2367 (description
2368 "This package provides a simple HTTP server written in Emacs Lisp to
2369 serve files and directory listings.")
2370 (license license:unlicense)))
2371
2372 (define-public emacs-skewer-mode
2373 (package
2374 (name "emacs-skewer-mode")
2375 (version "1.6.2")
2376 (source
2377 (origin
2378 (method url-fetch)
2379 (uri (string-append "https://github.com/skeeto/skewer-mode/archive/"
2380 version ".tar.gz"))
2381 (file-name (string-append name "-" version ".tar.gz"))
2382 (sha256
2383 (base32
2384 "07jpz374j0j964szy3zznrkyja2kpdl3xa87wh7349mzxivqxdx0"))))
2385 (build-system emacs-build-system)
2386 (propagated-inputs
2387 `(("emacs-simple-httpd" ,emacs-simple-httpd)
2388 ("emacs-js2-mode" ,emacs-js2-mode)))
2389 (arguments '(#:include '("\\.el$" "\\.js$" "\\.html$")))
2390 (home-page "https://github.com/skeeto/skewer-mode")
2391 (synopsis "Live web development in Emacs")
2392 (description
2393 "Skewer-mode provides live interaction with JavaScript, CSS, and HTML in
2394 a web browser. Expressions are sent on-the-fly from an editing buffer to be
2395 evaluated in the browser, just like Emacs does with an inferior Lisp process
2396 in Lisp modes.")
2397 (license license:unlicense)))
2398
2399 (define-public emacs-string-inflection
2400 (package
2401 (name "emacs-string-inflection")
2402 (version "1.0.6")
2403 (source (origin
2404 (method git-fetch)
2405 (uri (git-reference
2406 (url "https://github.com/akicho8/string-inflection")
2407 (commit "a150e7bdda60b7824d3a936750ce23f73b0e4edd")))
2408 (file-name (string-append name "-" version "-checkout"))
2409 (sha256
2410 (base32
2411 "1k0sm552iawi49v4zis6dbb81d1rzgky9v0dpv7nj31gnb7bmy7k"))))
2412 (build-system emacs-build-system)
2413 (native-inputs
2414 `(("ert-runner" ,emacs-ert-runner)))
2415 (arguments
2416 `(#:tests? #t
2417 #:test-command '("ert-runner")))
2418 (home-page "https://github.com/akicho8/string-inflection")
2419 (synopsis "Convert symbol names between different naming conventions")
2420 (description
2421 "This Emacs package provides convenient methods for manipulating the
2422 naming style of a symbol. It supports different naming conventions such as:
2423
2424 @enumerate
2425 @item camel case
2426 @item Pascal case
2427 @item all upper case
2428 @item lower case separated by underscore
2429 @item etc...
2430 @end enumerate\n")
2431 (license license:gpl2+)))
2432
2433 (define-public emacs-stripe-buffer
2434 (package
2435 (name "emacs-stripe-buffer")
2436 (version "0.2.5")
2437 (source
2438 (origin
2439 (method url-fetch)
2440 (uri (string-append "https://github.com/sabof/stripe-buffer/"
2441 "archive/" version ".tar.gz"))
2442 (file-name (string-append name "-" version ".tar.gz"))
2443 (sha256
2444 (base32
2445 "1p515dq7raly5hw94kiwm3vzsfih0d8af622q4ipvvljsm98aiik"))))
2446 (build-system emacs-build-system)
2447 (home-page "https://github.com/sabof/stripe-buffer/")
2448 (synopsis "Add stripes to list buffers")
2449 (description
2450 "This Emacs package adds faces to add stripes to list buffers and org
2451 tables.")
2452 (license license:gpl2+)))
2453
2454 (define-public emacs-rich-minority
2455 (package
2456 (name "emacs-rich-minority")
2457 (version "1.0.1")
2458 (source
2459 (origin
2460 (method url-fetch)
2461 (uri (string-append "https://github.com/Malabarba/rich-minority/"
2462 "archive/" version ".tar.gz"))
2463 (file-name (string-append name "-" version ".tar.gz"))
2464 (sha256
2465 (base32
2466 "1l0cb0q7kyi88nwfqd542psnkgwnjklpzc5rx32gzd3lkwkrbr8v"))))
2467 (build-system emacs-build-system)
2468 (home-page "https://github.com/Malabarba/rich-minority")
2469 (synopsis "Clean-up and beautify the list of minor modes")
2470 (description
2471 "This Emacs package hides and/or highlights minor modes in the
2472 mode-line.")
2473 (license license:gpl2+)))
2474
2475 (define-public emacs-robe
2476 (package
2477 (name "emacs-robe")
2478 (version "0.8.1")
2479 (source
2480 (origin
2481 (method url-fetch)
2482 (uri (string-append "https://github.com/dgutov/robe/"
2483 "archive/" version ".tar.gz"))
2484 (file-name (string-append name "-" version ".tar.gz"))
2485 (sha256
2486 (base32
2487 "1vp45y99fwj88z04ah4yppz4z568qcib646az6m9az5ar0f203br"))))
2488 (build-system emacs-build-system)
2489 (arguments
2490 '(#:include (cons "^lib\\/" %default-include)))
2491 (propagated-inputs
2492 `(("emacs-inf-ruby" ,emacs-inf-ruby)))
2493 (home-page "https://github.com/dgutov/robe")
2494 (synopsis "Ruby code assistance tool for Emacs")
2495 (description
2496 "Robe can provide information on loaded classes and modules in Ruby code,
2497 as well as where methods are defined. This allows the user to jump to method
2498 definitions, modules and classes, display method documentation and provide
2499 method and constant name completion.")
2500 (license license:gpl3+)))
2501
2502 (define-public emacs-rspec
2503 (package
2504 (name "emacs-rspec")
2505 (version "1.11")
2506 (source
2507 (origin
2508 (method url-fetch)
2509 (uri (string-append "https://github.com/pezra/rspec-mode/"
2510 "archive/v" version ".tar.gz"))
2511 (file-name (string-append name "-" version ".tar.gz"))
2512 (sha256
2513 (base32
2514 "1j0a7ms5516nlg60qfyn730pfxys6acm0rgyxh5xfkpi6jafgpvw"))))
2515 (build-system emacs-build-system)
2516 (home-page "https://github.com/pezra/rspec-mode")
2517 (synopsis "Provides a rspec mode for working with RSpec")
2518 (description
2519 "The Emacs RSpec mode provides keybindings for Ruby source files, e.g. to
2520 verify the spec associated with the current buffer, or entire project, as well
2521 as moving between the spec files, and coresponding code files.
2522
2523 Also included are keybindings for spec files and Dired buffers, as well as
2524 snippets for yasnippet.")
2525 (license license:gpl3+)))
2526
2527 (define-public emacs-smart-mode-line
2528 (package
2529 (name "emacs-smart-mode-line")
2530 (version "2.12.0")
2531 (source
2532 (origin
2533 (method url-fetch)
2534 (uri (string-append "https://github.com/Malabarba/smart-mode-line/"
2535 "archive/" version ".tar.gz"))
2536 (file-name (string-append name "-" version ".tar.gz"))
2537 (sha256
2538 (base32
2539 "1hn8s6laijmg7w1bgwdfrki6h9vxkbgr8rmmssvd5yqyad5w2sba"))))
2540 (build-system emacs-build-system)
2541 (propagated-inputs
2542 `(("emacs-rich-minority" ,emacs-rich-minority)))
2543 (home-page "https://github.com/Malabarba/smart-mode-line")
2544 (synopsis "Color-coded smart mode-line")
2545 (description
2546 "Smart Mode Line is a mode-line theme for Emacs. It aims to be easy to
2547 read from small to large monitors by using colors, a prefix feature, and smart
2548 truncation.")
2549 (license license:gpl2+)))
2550
2551 (define-public emacs-sr-speedbar
2552 (let ((commit "77a83fb50f763a465c021eca7343243f465b4a47")
2553 (revision "0"))
2554 (package
2555 (name "emacs-sr-speedbar")
2556 (version (git-version "20161025" revision commit))
2557 (source
2558 (origin
2559 (method git-fetch)
2560 (uri (git-reference
2561 (url "https://github.com/emacsorphanage/sr-speedbar.git")
2562 (commit commit)))
2563 (file-name (git-file-name name version))
2564 (sha256
2565 (base32
2566 "0sd12555hk7z721y00kv3crdybvcn1i08wmd148z5imayzibj153"))))
2567 (build-system emacs-build-system)
2568 (home-page "https://www.emacswiki.org/emacs/SrSpeedbar")
2569 (synopsis "Same frame Emacs @code{speedbar}")
2570 (description
2571 "This Emacs package allows you to show @code{M-x speedbar} in the
2572 same frame (in an extra window). You can customize the initial width of
2573 the speedbar window.")
2574 (license license:gpl3+))))
2575
2576 (define-public emacs-shell-switcher
2577 (package
2578 (name "emacs-shell-switcher")
2579 (version "1.0.1")
2580 (source
2581 (origin
2582 (method url-fetch)
2583 (uri (string-append "https://github.com/DamienCassou/shell-switcher"
2584 "/archive/v" version ".tar.gz"))
2585 (file-name (string-append name "-" version ".tar.gz"))
2586 (sha256
2587 (base32
2588 "1c23mfkdqz2g9rixd9smm323vzlvhzz3ng34ambcqjfq309qb2nz"))))
2589 (build-system emacs-build-system)
2590 (home-page "https://github.com/DamienCassou/shell-switcher")
2591 (synopsis "Provide fast switching between shell buffers")
2592 (description
2593 "This package provides commands to quickly switch between shell buffers.")
2594 (license license:gpl3+)))
2595
2596 (define-public emacs-ob-ipython
2597 (package
2598 (name "emacs-ob-ipython")
2599 (version "20150704.8807064693")
2600 (source (origin
2601 (method git-fetch)
2602 (uri (git-reference
2603 (commit "880706469338ab59b5bb7dbe8460016f89755364")
2604 (url "https://github.com/gregsexton/ob-ipython.git")))
2605 (file-name (string-append name "-" version "-checkout"))
2606 (sha256
2607 (base32
2608 "1scf25snbds9ymagpny30ijbsg479r3nm0ih01dy4m9d0g7qryb7"))))
2609 (build-system emacs-build-system)
2610 (propagated-inputs
2611 `(("emacs-f" ,emacs-f)))
2612 (home-page "http://www.gregsexton.org")
2613 (synopsis "Org-Babel functions for IPython evaluation")
2614 (description "This package adds support to Org-Babel for evaluating Python
2615 source code using IPython.")
2616 (license license:gpl3+)))
2617
2618 (define-public emacs-debbugs
2619 (package
2620 (name "emacs-debbugs")
2621 (version "0.16")
2622 (source (origin
2623 (method url-fetch)
2624 (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
2625 version ".tar"))
2626 (sha256
2627 (base32
2628 "0y3bq803c7820h15g66d1648skxfhlfa2v6vincj6xk5ssp44s9p"))))
2629 (build-system emacs-build-system)
2630 (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
2631 (propagated-inputs
2632 `(("emacs-async" ,emacs-async)))
2633 (home-page "https://elpa.gnu.org/packages/debbugs.html")
2634 (synopsis "Access the Debbugs bug tracker in Emacs")
2635 (description
2636 "This package lets you access the @uref{http://bugs.gnu.org,GNU Bug
2637 Tracker} from within Emacs.
2638
2639 For instance, it defines the command @code{M-x debbugs-gnu} for listing bugs,
2640 and the command @code{M-x debbugs-gnu-search} for bug searching. If you
2641 prefer the listing of bugs as TODO items of @code{org-mode}, you could use
2642 @code{M-x debbugs-org} and related commands.
2643
2644 A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug
2645 Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.")
2646 (license license:gpl3+)))
2647
2648 (define-public emacs-ert-expectations
2649 (package
2650 (name "emacs-ert-expectations")
2651 (version "0.2")
2652 (source
2653 (origin
2654 (method url-fetch)
2655 (uri "https://www.emacswiki.org/emacs/download/ert-expectations.el")
2656 (sha256
2657 (base32
2658 "0cwy3ilsid90abzzjb7ha2blq9kmv3gfp3icwwfcz6qczgirq6g7"))))
2659 (build-system emacs-build-system)
2660 (home-page "https://www.emacswiki.org/emacs/ert-expectations.el")
2661 (synopsis "Simple unit test framework for Emacs Lisp")
2662 (description "@code{emacs-ert-expectations} is a simple unit test
2663 framework for Emacs Lisp to be used with @code{ert}.")
2664 (license license:gpl3+)))
2665
2666 (define-public emacs-deferred
2667 (package
2668 (name "emacs-deferred")
2669 (version "0.5.1")
2670 (home-page "https://github.com/kiwanami/emacs-deferred")
2671 (source (origin
2672 (method git-fetch)
2673 (uri (git-reference
2674 (url home-page)
2675 (commit (string-append "v" version))))
2676 (sha256
2677 (base32
2678 "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"))
2679 (file-name (string-append name "-" version))))
2680 (build-system emacs-build-system)
2681 (arguments
2682 `(#:phases
2683 (modify-phases %standard-phases
2684 (add-after 'unpack 'set-shell
2685 ;; Setting the SHELL environment variable is required for the tests
2686 ;; to find sh.
2687 (lambda _
2688 (setenv "SHELL" (which "sh"))
2689 #t))
2690 (add-before 'check 'fix-makefile
2691 (lambda _
2692 (substitute* "Makefile"
2693 (("\\$\\(CASK\\) exec ") ""))
2694 #t)))
2695 #:tests? #t
2696 #:test-command '("make" "test")))
2697 (native-inputs
2698 `(("emacs-ert-expectations" ,emacs-ert-expectations)
2699 ("emacs-undercover" ,emacs-undercover)
2700 ("ert-runner" ,emacs-ert-runner)))
2701 (synopsis "Simple asynchronous functions for Emacs Lisp")
2702 (description
2703 "The @code{deferred.el} library provides support for asynchronous tasks.
2704 The API is almost the same as that of
2705 @uref{https://github.com/cho45/jsdeferred, JSDeferred}, a JavaScript library
2706 for asynchronous tasks.")
2707 (license license:gpl3+)))
2708
2709 (define-public emacs-butler
2710 (package
2711 (name "emacs-butler")
2712 (version "0.2.4")
2713 (home-page "https://github.com/AshtonKem/Butler")
2714 (source (origin
2715 (method git-fetch)
2716 (uri (git-reference
2717 (url home-page)
2718 (commit version)))
2719 (sha256
2720 (base32
2721 "1pii9dw4skq7nr4na6qxqasl36av8cwjp71bf1fgppqpcd9z8skj"))
2722 (file-name (string-append name "-" version))))
2723 (build-system emacs-build-system)
2724 (propagated-inputs
2725 `(("emacs-deferred" ,emacs-deferred)))
2726 (synopsis "Emacs client for Jenkins")
2727 (description
2728 "Butler provides an interface to connect to Jenkins continuous
2729 integration servers. Users can specify a list of server in the
2730 @code{butler-server-list} variable and then use @code{M-x butler-status} to
2731 view the build status of those servers' build jobs, and possibly to trigger
2732 build jobs.")
2733 (license license:gpl3+)))
2734
2735 (define-public emacs-company
2736 (package
2737 (name "emacs-company")
2738 (version "0.9.7")
2739 (source
2740 (origin
2741 (method url-fetch)
2742 (uri (string-append "https://github.com/company-mode/company-mode/archive/"
2743 version ".tar.gz"))
2744 (file-name (string-append name "-" version ".tar.gz"))
2745 (sha256
2746 (base32
2747 "19flv38f2qhxda8lbk2ckywvibd72vbzmn4hchqz6d8acsknh4sb"))))
2748 (build-system emacs-build-system)
2749 (arguments
2750 `(#:phases
2751 (modify-phases %standard-phases
2752 (add-before 'check 'fix-bin-dir
2753 (lambda _
2754 ;; The company-files-candidates-normal-root test looks
2755 ;; for the /bin directory, but the build environment has
2756 ;; no /bin directory. Modify the test to look for the
2757 ;; /tmp directory.
2758 (substitute* "test/files-tests.el"
2759 (("/bin/") "/tmp/"))
2760 #t)))
2761 #:tests? #t
2762 #:test-command '("make" "test-batch")))
2763 (home-page "http://company-mode.github.io/")
2764 (synopsis "Modular text completion framework")
2765 (description
2766 "Company is a modular completion mechanism. Modules for retrieving
2767 completion candidates are called back-ends, modules for displaying them are
2768 front-ends. Company comes with many back-ends, e.g. @code{company-elisp}.
2769 These are distributed in separate files and can be used individually.")
2770 (license license:gpl3+)))
2771
2772 (define-public emacs-irony-mode
2773 (package
2774 (name "emacs-irony-mode")
2775 (version "1.2.0")
2776 (home-page "https://github.com/Sarcasm/irony-mode")
2777 (source (origin
2778 (method git-fetch)
2779 (uri (git-reference
2780 (url (string-append home-page ".git"))
2781 (commit (string-append "v" version))))
2782 (sha256
2783 (base32
2784 "0nhjrnlmss535jbshjjd30vydbr8py21vkx4p294w6d8vg2rssf8"))
2785 (file-name (string-append name "-" version ".tar.gz"))))
2786 (build-system emacs-build-system)
2787 (inputs `(("server" ,emacs-irony-mode-server)))
2788 (arguments `(#:phases
2789 (modify-phases %standard-phases
2790 (add-after 'unpack 'configure
2791 (lambda* (#:key inputs #:allow-other-keys)
2792 (chmod "irony.el" #o644)
2793 (emacs-substitute-variables "irony.el"
2794 ("irony-server-install-prefix"
2795 (assoc-ref inputs "server")))
2796 #t)))))
2797 (synopsis "C/C++/ObjC Code completion and syntax checks for Emacs")
2798 (description "Irony-mode provides Clang-assisted syntax checking and
2799 completion for C, C++, and ObjC in GNU Emacs. Using @code{libclang} it can
2800 provide syntax checking and autocompletion on compiler level which is very
2801 resistent against false positives. It also integrates well with other
2802 packages like @code{eldoc-mode} and especially @code{company-mode} as
2803 described on the homepage.")
2804 (license license:gpl3+)))
2805
2806 (define-public emacs-irony-mode-server
2807 (package (inherit emacs-irony-mode)
2808 (name "emacs-irony-mode-server")
2809 (inputs
2810 `(("clang" ,clang)))
2811 (arguments
2812 `(#:phases
2813 (modify-phases %standard-phases
2814 (replace 'configure
2815 (lambda* (#:key outputs #:allow-other-keys)
2816 (let ((out (assoc-ref outputs "out")))
2817 (invoke "cmake"
2818 "server"
2819 (string-append "-DCMAKE_INSTALL_PREFIX=" out)) #t))))))
2820 (build-system cmake-build-system)
2821 (synopsis "Server for the Emacs @dfn{irony mode}")))
2822
2823 (define-public emacs-company-irony
2824 (package
2825 (name "emacs-company-irony")
2826 (version "1.1.0")
2827 (source (origin
2828 (method git-fetch)
2829 (uri (git-reference
2830 (url "https://github.com/Sarcasm/company-irony.git")
2831 (commit (string-append "v" version))))
2832 (sha256 (base32
2833 "1qgyam2vyjw90kpxns5cd6bq3qiqjhzpwrlvmi18vyb69qcgqd8a"))
2834 (file-name (git-file-name name version))))
2835 (build-system emacs-build-system)
2836 (inputs
2837 `(("emacs-irony-mode" ,emacs-irony-mode)
2838 ("emacs-company" ,emacs-company)))
2839 (synopsis "C++ completion backend for Company using irony-mode")
2840 (description "This backend for company-mode allows for C++ code completion
2841 with irony-mode using clang-tooling.")
2842 (home-page "https://github.com/Sarcasm/company-irony")
2843 (license license:gpl3+)))
2844
2845 (define-public emacs-flycheck-irony
2846 (package
2847 (name "emacs-flycheck-irony")
2848 (version "0.1.0")
2849 (source (origin
2850 (method git-fetch)
2851 (uri (git-reference
2852 (url "https://github.com/Sarcasm/flycheck-irony.git")
2853 (commit (string-append "v" version))))
2854 (sha256
2855 (base32 "0qa5a8wzvzxwqql92ibc9s43k8sj3vwn7skz9hfr8av0skkhx996"))
2856 (file-name (string-append name "-" version))))
2857 (build-system emacs-build-system)
2858 (inputs
2859 `(("irony-mode" ,emacs-irony-mode)
2860 ("flycheck-mode" ,emacs-flycheck)
2861 ("emacs-company" ,emacs-company)))
2862 (synopsis "Live syntax checking frontend for Flycheck using irony-mode")
2863 (description "This package provides a frontend for Flycheck that lets
2864 irony-mode do the syntax checking.")
2865 (home-page "https://github.com/Sarcasm/flycheck-irony")
2866 (license license:gpl3+)))
2867
2868 (define-public emacs-irony-eldoc
2869 (package
2870 (name "emacs-irony-eldoc")
2871 (version (package-version emacs-irony-mode))
2872 (source
2873 (origin
2874 (method git-fetch)
2875 (uri (git-reference
2876 (url "https://github.com/ikirill/irony-eldoc.git")
2877 (commit "0df5831eaae264a25422b061eb2792aadde8b3f2")))
2878 (sha256 (base32 "1l5qpr66v1l12fb50yh73grb2rr85xxmbj19mm33b5rdrq2bqmmd"))
2879 (file-name (string-append name "-" version))))
2880 (build-system emacs-build-system)
2881 (inputs
2882 `(("irony-mode" ,emacs-irony-mode)))
2883 (synopsis "Eldoc integration for irony-mode")
2884 (description "Irony-eldoc is an eldoc extension that shows documentation
2885 for the current function or variable in the minibuffer.")
2886 (home-page "https://github.com/ikirill/irony-eldoc")
2887 (license license:gpl3+)))
2888
2889 (define-public emacs-company-quickhelp
2890 (package
2891 (name "emacs-company-quickhelp")
2892 (version "2.3.0")
2893 (source
2894 (origin
2895 (method url-fetch)
2896 (uri (string-append
2897 "https://github.com/expez/company-quickhelp/archive/"
2898 version ".tar.gz"))
2899 (file-name (string-append name "-" version ".tar.gz"))
2900 (sha256
2901 (base32
2902 "0xrn2z1dgk5gmkmp2jkn9g83ckk39lqp5pyyv8rl7f6gqvib3qh0"))))
2903 (build-system emacs-build-system)
2904 (propagated-inputs
2905 `(("emacs-pos-tip" ,emacs-pos-tip)
2906 ("emacs-company" ,emacs-company)))
2907 (home-page "https://github.com/expez/company-quickhelp")
2908 (synopsis "Popup documentation for completion candidates")
2909 (description "@code{company-quickhelp} shows documentation for the
2910 completion candidate when using the Company text completion framework.")
2911 (license license:gpl3+)))
2912
2913 (define-public emacs-multiple-cursors
2914 (package
2915 (name "emacs-multiple-cursors")
2916 (version "1.4.0")
2917 (source
2918 (origin
2919 (method url-fetch)
2920 (uri (string-append "https://github.com/magnars/multiple-cursors.el/"
2921 "archive/" version ".tar.gz"))
2922 (file-name (string-append name "-" version ".tar.gz"))
2923 (sha256
2924 (base32
2925 "0hihihlvcvzayg5fnqzcg45fhvlmq6xlq58syy00rjwbry9w389k"))))
2926 (build-system emacs-build-system)
2927 (home-page "https://github.com/magnars/multiple-cursors.el")
2928 (synopsis "Multiple cursors for Emacs")
2929 (description
2930 "This package adds support to Emacs for editing text with multiple
2931 simultaneous cursors.")
2932 (license license:gpl3+)))
2933
2934 (define-public emacs-typo
2935 (package
2936 (name "emacs-typo")
2937 (version "1.1")
2938 (home-page "https://github.com/jorgenschaefer/typoel")
2939 (source (origin
2940 (method git-fetch)
2941 (uri (git-reference
2942 (url home-page)
2943 (commit (string-append "v" version))))
2944 (sha256
2945 (base32
2946 "1jhd4grch5iz12gyxwfbsgh4dmz5hj4bg4gnvphccg8dsnni05k2"))
2947 (file-name (string-append name "-" version))))
2948 (build-system emacs-build-system)
2949 (synopsis "Minor mode for typographic editing")
2950 (description
2951 "This package provides two Emacs modes, @code{typo-mode} and
2952 @code{typo-global-mode}. These modes automatically insert Unicode characters
2953 for quotation marks, dashes, and ellipses. For example, typing @kbd{\"}
2954 automatically inserts a Unicode opening or closing quotation mark, depending
2955 on context.")
2956 (license license:gpl3+)))
2957
2958 (define-public emacs-scheme-complete
2959 (let ((commit "9b5cf224bf2a5994bc6d5b152ff487517f1a9bb5"))
2960 (package
2961 (name "emacs-scheme-complete")
2962 (version (string-append "20151223." (string-take commit 8)))
2963 (source
2964 (origin
2965 (file-name (string-append name "-" version))
2966 (method git-fetch)
2967 (uri (git-reference
2968 (url "https://github.com/ashinn/scheme-complete.git")
2969 (commit commit)))
2970 (sha256
2971 (base32
2972 "141wn9l0m33w0g3dqmx8nxbfdny1r5xbr6ak61rsz21bk0qafs7x"))
2973 (patches
2974 (search-patches "emacs-scheme-complete-scheme-r5rs-info.patch"))))
2975 (build-system emacs-build-system)
2976 (home-page "https://github.com/ashinn/scheme-complete")
2977 (synopsis "Smart tab completion for Scheme in Emacs")
2978 (description
2979 "This file provides a single function, @code{scheme-smart-complete},
2980 which you can use for intelligent, context-sensitive completion for any Scheme
2981 implementation in Emacs. To use it just load this file and bind that function
2982 to a key in your preferred mode.")
2983 (license license:public-domain))))
2984
2985 (define-public emacs-scel
2986 (let ((version "20170629")
2987 (revision "1")
2988 (commit "aeea3ad4be9306d14c3a734a4ff54fee10ac135b"))
2989 (package
2990 (name "emacs-scel")
2991 (version (git-version version revision commit))
2992 (source
2993 (origin
2994 (method git-fetch)
2995 (uri (git-reference
2996 (url "https://github.com/supercollider/scel.git")
2997 (commit commit)))
2998 (file-name (string-append name "-" version "-checkout"))
2999 (sha256
3000 (base32
3001 "0jvmzs1lsjyndqshhii2y4mnr3wghai26i3p75453zrpxpg0zvvw"))))
3002 (build-system emacs-build-system)
3003 (arguments
3004 `(#:modules ((guix build emacs-build-system)
3005 ((guix build cmake-build-system) #:prefix cmake:)
3006 (guix build utils))
3007 #:imported-modules (,@%emacs-build-system-modules
3008 (guix build cmake-build-system))
3009 #:phases
3010 (modify-phases %standard-phases
3011 (add-after 'unpack 'configure
3012 (lambda* (#:key outputs #:allow-other-keys)
3013 (substitute* "el/CMakeLists.txt"
3014 (("share/emacs/site-lisp/SuperCollider")
3015 (string-append
3016 "share/emacs/site-lisp/guix.d/scel-" ,version)))
3017 ((assoc-ref cmake:%standard-phases 'configure)
3018 #:outputs outputs
3019 #:configure-flags '("-DSC_EL_BYTECOMPILE=OFF"))))
3020 (add-after 'set-emacs-load-path 'add-el-dir-to-emacs-load-path
3021 (lambda _
3022 (setenv "EMACSLOADPATH"
3023 (string-append (getcwd) "/el:" (getenv "EMACSLOADPATH")))
3024 #t))
3025 (replace 'install (assoc-ref cmake:%standard-phases 'install)))))
3026 (inputs
3027 `(("supercollider" ,supercollider)))
3028 (native-inputs
3029 `(("cmake" ,cmake)))
3030 (home-page "https://github.com/supercollider/scel")
3031 (synopsis "SuperCollider Emacs interface")
3032 (description "@code{emacs-scel} is an Emacs interface to SuperCollider.
3033 SuperCollider is a platform for audio synthesis and algorithmic composition.")
3034 (license license:gpl2+))))
3035
3036 (define-public emacs-mit-scheme-doc
3037 (package
3038 (name "emacs-mit-scheme-doc")
3039 (version "20140203")
3040 (source
3041 (origin
3042 (modules '((guix build utils)))
3043 (snippet
3044 ;; keep only file of interest
3045 '(begin
3046 (for-each delete-file '("dot-emacs.el" "Makefile"))
3047 (install-file "6.945-config/mit-scheme-doc.el" ".")
3048 (delete-file-recursively "6.945-config")
3049 #t))
3050 (file-name (string-append name "-" version ".tar.bz2"))
3051 (method url-fetch)
3052 (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/"
3053 "6.945/dont-panic/emacs-basic-config.tar.bz2"))
3054 (sha256
3055 (base32
3056 "0dqidg2bd66pawqfarvwca93w5gqf9mikn1k2a2rmd9ymfjpziq1"))))
3057 (build-system emacs-build-system)
3058 (inputs `(("mit-scheme" ,mit-scheme)))
3059 (arguments
3060 `(#:phases
3061 (modify-phases %standard-phases
3062 (add-after 'unpack 'configure-doc
3063 (lambda* (#:key inputs #:allow-other-keys)
3064 (let* ((mit-scheme-dir (assoc-ref inputs "mit-scheme"))
3065 (doc-dir (string-append mit-scheme-dir "/share/doc/"
3066 "mit-scheme-"
3067 ,(package-version mit-scheme))))
3068 (substitute* "mit-scheme-doc.el"
3069 (("http://www\\.gnu\\.org/software/mit-scheme/documentation/mit-scheme-ref/")
3070 (string-append "file:" doc-dir "/mit-scheme-ref/")))))))))
3071 (home-page "http://groups.csail.mit.edu/mac/users/gjs/6.945/dont-panic/")
3072 (synopsis "MIT-Scheme documentation lookup for Emacs")
3073 (description
3074 "This package provides a set of Emacs functions to search definitions of
3075 identifiers in the MIT-Scheme documentation.")
3076 (license license:gpl2+)))
3077
3078 (define-public emacs-constants
3079 (package
3080 (name "emacs-constants")
3081 (version "2.6")
3082 (home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
3083 (source
3084 (origin
3085 (file-name (string-append name "-" version ".tar.gz"))
3086 (method url-fetch)
3087 (uri (string-append "https://github.com/fedeinthemix/emacs-constants"
3088 "/archive/v" version ".tar.gz"))
3089 (sha256
3090 (base32
3091 "0pnrpmmxq8mh5h2hbrp5vcym0j0fh6dv3s7c5ccn18wllhzg9g7n"))))
3092 (build-system emacs-build-system)
3093 (synopsis "Enter definition of constants into an Emacs buffer")
3094 (description
3095 "This package provides functions for inserting the definition of natural
3096 constants and units into an Emacs buffer.")
3097 (license license:gpl2+)))
3098
3099 (define-public emacs-tagedit
3100 (package
3101 (name "emacs-tagedit")
3102 (version "1.4.0")
3103 (source
3104 (origin
3105 (method url-fetch)
3106 (uri (string-append "https://github.com/magnars/tagedit/"
3107 "archive/" version ".tar.gz"))
3108 (file-name (string-append name "-" version ".tar.gz"))
3109 (sha256
3110 (base32
3111 "1apfnann4qklfdsmdi7icjsj18x7gwx8d83iqr4z25clszz95xfq"))))
3112 (build-system emacs-build-system)
3113 (propagated-inputs
3114 `(("emacs-s" ,emacs-s)
3115 ("emacs-dash" ,emacs-dash)))
3116 (home-page "https://github.com/magnars/tagedit")
3117 (synopsis "Some paredit-like features for html-mode")
3118 (description
3119 "This package provides a collection of paredit-like functions for editing
3120 in @code{html-mode}.")
3121 (license license:gpl3+)))
3122
3123 (define-public emacs-slime
3124 (package
3125 (name "emacs-slime")
3126 (version "2.23")
3127 (source
3128 (origin
3129 (file-name (string-append name "-" version ".tar.gz"))
3130 (method url-fetch)
3131 (uri (string-append
3132 "https://github.com/slime/slime/archive/v"
3133 version ".tar.gz"))
3134 (sha256
3135 (base32
3136 "01gkrqfpifcx1vipwrbhns2r4s8izp3z1w4p41azc943s1a2d5nc"))))
3137 (build-system emacs-build-system)
3138 (native-inputs
3139 `(("texinfo" ,texinfo)))
3140 (arguments
3141 `(#:include '("\\.el$" "\\.lisp$" "\\.asd$" "contrib")
3142 #:exclude '("^slime-tests.el" "^contrib/test/"
3143 "^contrib/Makefile$" "^contrib/README.md$")
3144 #:phases
3145 (modify-phases %standard-phases
3146 (add-before 'install 'configure
3147 (lambda* _
3148 (emacs-substitute-variables "slime.el"
3149 ("inferior-lisp-program" "sbcl"))
3150 #t))
3151 (add-before 'install 'install-doc
3152 (lambda* (#:key outputs #:allow-other-keys)
3153 (let* ((out (assoc-ref outputs "out"))
3154 (info-dir (string-append out "/share/info"))
3155 (doc-dir (string-append out "/share/doc/"
3156 ,name "-" ,version))
3157 (doc-files '("doc/slime-refcard.pdf"
3158 "README.md" "NEWS" "PROBLEMS"
3159 "CONTRIBUTING.md")))
3160 (with-directory-excursion "doc"
3161 (substitute* "Makefile"
3162 (("infodir=/usr/local/info")
3163 (string-append "infodir=" info-dir)))
3164 (invoke "make" "html/index.html")
3165 (invoke "make" "slime.info")
3166 (install-file "slime.info" info-dir)
3167 (copy-recursively "html" (string-append doc-dir "/html")))
3168 (for-each (lambda (f)
3169 (install-file f doc-dir)
3170 (delete-file f))
3171 doc-files)
3172 (delete-file-recursively "doc")
3173 #t))))))
3174 (home-page "https://github.com/slime/slime")
3175 (synopsis "Superior Lisp Interaction Mode for Emacs")
3176 (description
3177 "SLIME extends Emacs with support for interactive programming in
3178 Common Lisp. The features are centered around @command{slime-mode},
3179 an Emacs minor mode that complements the standard @command{lisp-mode}.
3180 While lisp-mode supports editing Lisp source files, @command{slime-mode}
3181 adds support for interacting with a running Common Lisp process
3182 for compilation, debugging, documentation lookup, and so on.")
3183 (license (list license:gpl2+ license:public-domain))))
3184
3185 (define-public emacs-popup
3186 (package
3187 (name "emacs-popup")
3188 (version "0.5.3")
3189 (source (origin
3190 (method url-fetch)
3191 (uri (string-append
3192 "https://github.com/auto-complete/popup-el/archive/v"
3193 version ".tar.gz"))
3194 (file-name (string-append name "-" version ".tar.gz"))
3195 (sha256
3196 (base32
3197 "1yrgfj8y69xmcb6kwgplhq68ndm9410qwh7sd2knnd1gchpphdc0"))))
3198 (build-system emacs-build-system)
3199 (home-page "https://github.com/auto-complete/popup-el")
3200 (synopsis "Visual Popup User Interface for Emacs")
3201 (description
3202 "Popup.el is a visual popup user interface library for Emacs.
3203 This provides a basic API and common UI widgets such as popup tooltips
3204 and popup menus.")
3205 (license license:gpl3+)))
3206
3207 (define-public emacs-puppet-mode
3208 (let ((commit "b3ed5057166a4f49dfa9be638523a348b55a2fd2")
3209 (revision "1"))
3210 (package
3211 (name "emacs-puppet-mode")
3212 ;; The last release, 0.3 was several years ago, and there have been many
3213 ;; commits since
3214 (version (git-version "0.3" revision commit))
3215 (source
3216 (origin
3217 (method url-fetch)
3218 (uri (string-append
3219 "https://raw.githubusercontent.com/voxpupuli/puppet-mode/"
3220 commit "/puppet-mode.el"))
3221 (sha256
3222 (base32
3223 "1indycxawsl0p2aqqg754f6735q3cmah9vd886rpn0ncc3ipi1xm"))))
3224 (build-system emacs-build-system)
3225 (home-page "https://github.com/voxpupuli/puppet-mode")
3226 (synopsis "Emacs major mode for the Puppet configuration language")
3227 (description
3228 "This package provides support for the Puppet configuration language,
3229 including syntax highlighting, indentation of expressions and statements,
3230 linting of manifests and integration with Puppet Debugger.")
3231 ;; Also incorporates work covered by the Apache License, Version 2.0
3232 (license license:gpl3+))))
3233
3234 (define-public emacs-god-mode
3235 (let ((commit "6cf0807b6555eb6fcf8387a4e3b667071ef38964")
3236 (revision "1"))
3237 (package
3238 (name "emacs-god-mode")
3239 (version (string-append "20151005.925."
3240 revision "-" (string-take commit 9)))
3241 (source
3242 (origin
3243 (method git-fetch)
3244 (uri (git-reference
3245 (url "https://github.com/chrisdone/god-mode.git")
3246 (commit commit)))
3247 (file-name (string-append name "-" version "-checkout"))
3248 (sha256
3249 (base32
3250 "1am415k4xxcva6y3vbvyvknzc6bma49pq3p85zmpjsdmsp18qdix"))))
3251 (build-system emacs-build-system)
3252 (home-page "https://github.com/chrisdone/god-mode")
3253 (synopsis "Minor mode for entering commands without modifier keys")
3254 (description
3255 "This package provides a global minor mode for entering Emacs commands
3256 without modifier keys. It's similar to Vim's separation of commands and
3257 insertion mode. When enabled all keys are implicitly prefixed with
3258 @samp{C-} (among other helpful shortcuts).")
3259 (license license:gpl3+))))
3260
3261 (define-public emacs-jinja2-mode
3262 (package
3263 (name "emacs-jinja2-mode")
3264 (version "0.2")
3265 (source
3266 (origin
3267 (method url-fetch)
3268 (uri (string-append "https://github.com/paradoxxxzero/jinja2-mode/"
3269 "archive/v" version ".tar.gz"))
3270 (file-name (string-append name "-" version ".tar.gz"))
3271 (sha256
3272 (base32
3273 "0cgxjab1kla2zc2fj7bzib6i7snp08zshandmp9kqcm85l262xpn"))))
3274 (build-system emacs-build-system)
3275 (home-page "https://github.com/paradoxxxzero/jinja2-mode")
3276 (synopsis "Major mode for jinja2")
3277 (description
3278 "Emacs major mode for jinja2 with: syntax highlighting,
3279 sgml/html integration, and indentation (working with sgml).")
3280 (license license:gpl3+)))
3281
3282 (define-public emacs-rfcview
3283 (package
3284 (name "emacs-rfcview")
3285 (version "0.13")
3286 (home-page "http://www.loveshack.ukfsn.org/emacs")
3287 (source (origin
3288 (method url-fetch)
3289 (uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el")
3290 (sha256
3291 (base32
3292 "0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz"))))
3293 (build-system emacs-build-system)
3294 (synopsis "Prettify Request for Comments (RFC) documents")
3295 (description "The Internet Engineering Task Force (IETF) and the Internet
3296 Society (ISOC) publish various Internet-related protocols and specifications
3297 as \"Request for Comments\" (RFC) documents and Internet Standard (STD)
3298 documents. RFCs and STDs are published in a simple text form. This package
3299 provides an Emacs major mode, rfcview-mode, which makes it more pleasant to
3300 read these documents in Emacs. It prettifies the text and adds
3301 hyperlinks/menus for easier navigation. It also provides functions for
3302 browsing the index of RFC documents and fetching them from remote servers or
3303 local directories.")
3304 (license license:gpl3+)))
3305
3306 (define-public emacs-ffap-rfc-space
3307 (package
3308 (name "emacs-ffap-rfc-space")
3309 (version "12")
3310 (home-page "http://user42.tuxfamily.org/ffap-rfc-space/index.html")
3311 (source (origin
3312 (method url-fetch)
3313 (uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el")
3314 (sha256
3315 (base32
3316 "1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck"))))
3317 (build-system emacs-build-system)
3318 (synopsis "Make ffap recognize an RFC with a space before its number")
3319 (description "The Internet Engineering Task Force (IETF) and the
3320 Internet Society (ISOC) publish various Internet-related protocols and
3321 specifications as \"Request for Comments\" (RFC) documents. The
3322 built-in Emacs module \"ffap\" (Find File at Point) has the ability to
3323 recognize names at point which look like \"RFC1234\" and \"RFC-1234\"
3324 and load the appropriate RFC from a remote server. However, it fails
3325 to recognize a name like \"RFC 1234\". This package enhances ffap so
3326 that it correctly finds RFCs even when a space appears before the
3327 number.")
3328 (license license:gpl3+)))
3329
3330 (define-public emacs-org-bullets
3331 (package
3332 (name "emacs-org-bullets")
3333 (version "0.2.4")
3334 (source
3335 (origin
3336 (method url-fetch)
3337 (uri (string-append "https://github.com/sabof/org-bullets/archive/"
3338 version ".tar.gz"))
3339 (file-name (string-append name "-" version ".tar.gz"))
3340 (sha256
3341 (base32
3342 "1dyxvpb73vj80v8br2q9rf255hfphrgaw91fbvwdcd735np9pcnh"))))
3343 (build-system emacs-build-system)
3344 (home-page "https://github.com/sabof/org-bullets")
3345 (synopsis "Show bullets in org-mode as UTF-8 characters")
3346 (description
3347 "This package provides an Emacs minor mode causing bullets in
3348 @code{org-mode} to be rendered as UTF-8 characters.")
3349 (license license:gpl3+)))
3350
3351 (define-public emacs-org-pomodoro
3352 (package
3353 (name "emacs-org-pomodoro")
3354 (version "2.1.0")
3355 (source
3356 (origin
3357 (method url-fetch)
3358 (uri (string-append
3359 "https://github.com/lolownia/org-pomodoro/archive/"
3360 version ".tar.gz"))
3361 (file-name (string-append name "-" version ".tar.gz"))
3362 (sha256
3363 (base32
3364 "1jalsggw3q5kvj353f84x4nl04a5vmq07h75ggppy1627lb31zm4"))))
3365 (build-system emacs-build-system)
3366 (propagated-inputs
3367 `(("emacs-alert" ,emacs-alert)))
3368 (home-page "https://github.com/lolownia/org-pomodoro")
3369 (synopsis "Pomodoro technique for org-mode")
3370 (description "@code{emacs-org-pomodoro} adds very basic support for
3371 Pomodoro technique in Emacs org-mode.
3372
3373 Run @code{M-x org-pomodoro} for the task at point or select one of the
3374 last tasks that you clocked time for. Each clocked-in pomodoro starts
3375 a timer of 25 minutes and after each pomodoro a break timer of 5
3376 minutes is started automatically. Every 4 breaks a long break is
3377 started with 20 minutes. All values are customizable.")
3378 (license license:gpl3+)))
3379
3380 (define-public emacs-org-trello
3381 (package
3382 (name "emacs-org-trello")
3383 (version "0.8.0")
3384 (source (origin
3385 (method url-fetch)
3386 (uri (string-append
3387 "https://github.com/org-trello/org-trello/archive/"
3388 version ".tar.gz"))
3389 (file-name (string-append name "-" version ".tar.gz"))
3390 (sha256
3391 (base32
3392 "0549mnf5cgwn8b8jbl38fljbaxmh1605sv9j8f3lsa95jhs1zpa0"))))
3393 (build-system emacs-build-system)
3394 (propagated-inputs
3395 `(("emacs-dash" ,emacs-dash)
3396 ("emacs-deferred" ,emacs-deferred)
3397 ("emacs-f" ,emacs-f)
3398 ("emacs-helm" ,emacs-helm)
3399 ("emacs-request" ,emacs-request)
3400 ("emacs-s" ,emacs-s)))
3401 (home-page "https://org-trello.github.io")
3402 (synopsis "Emacs minor mode for interacting with Trello")
3403 (description "This package provides an Emacs minor mode to extend
3404 @code{org-mode} with Trello abilities. Trello is an online project
3405 organizer.")
3406 (license license:gpl3+)))
3407
3408 (define-public emacs-atom-one-dark-theme
3409 (let ((commit "1f1185bf667a38d3d0d180ce85fd4c131818aae2")
3410 (revision "0"))
3411 (package
3412 (name "emacs-atom-one-dark-theme")
3413 (version (git-version "0.4.0" revision commit))
3414 (source (origin
3415 (method git-fetch)
3416 (uri (git-reference
3417 (url "https://github.com/jonathanchu/atom-one-dark-theme.git")
3418 (commit commit)))
3419 (sha256
3420 (base32
3421 "1alma16hg3mfjly8a9s3mrswkjjx4lrpdnf43869hn2ibkn7zx9z"))
3422 (file-name (git-file-name name version))))
3423 (build-system emacs-build-system)
3424 (home-page "https://github.com/jonathanchu/atom-one-dark-theme")
3425 (synopsis "Atom One Dark color theme for Emacs")
3426 (description "An Emacs port of the Atom One Dark theme from Atom.io.")
3427 (license license:gpl3+))))
3428
3429 (define-public emacs-zenburn-theme
3430 (package
3431 (name "emacs-zenburn-theme")
3432 (version "2.6")
3433 (source (origin
3434 (method url-fetch)
3435 (uri (string-append
3436 "https://github.com/bbatsov/zenburn-emacs/archive/v"
3437 version ".tar.gz"))
3438 (file-name (string-append name "-" version ".tar.gz"))
3439 (sha256
3440 (base32
3441 "0qc9d1rwq55yzh8shbppyd6izy1grpyr8kqh5zdgm7c5jccngpr4"))))
3442 (build-system emacs-build-system)
3443 (home-page "https://github.com/bbatsov/zenburn-emacs")
3444 (synopsis "Low contrast color theme for Emacs")
3445 (description
3446 "Zenburn theme is a port of the popular Vim Zenburn theme for Emacs.
3447 It is built on top of the custom theme support in Emacs 24 or later.")
3448 (license license:gpl3+)))
3449
3450 (define-public emacs-solarized-theme
3451 (package
3452 (name "emacs-solarized-theme")
3453 (version "1.2.2")
3454 (source (origin
3455 (method url-fetch)
3456 (uri (string-append "https://github.com/bbatsov/solarized-emacs/"
3457 "archive/v" version ".tar.gz"))
3458 (file-name (string-append name "-" version ".tar.gz"))
3459 (sha256
3460 (base32
3461 "1ha3slc6d9wi9ilkhmwrzkvf308n6ph7b0k69pk369s9304awxzx"))))
3462 (build-system emacs-build-system)
3463 (propagated-inputs
3464 `(("emacs-dash" ,emacs-dash)))
3465 (home-page "https://github.com/bbatsov/solarized-emacs")
3466 (synopsis "Port of the Solarized theme for Emacs")
3467 (description
3468 "Solarized for Emacs is a port of the Solarized theme for Vim. This
3469 package provides a light and a dark variant.")
3470 (license license:gpl3+)))
3471
3472 (define-public emacs-ahungry-theme
3473 (package
3474 (name "emacs-ahungry-theme")
3475 (version "1.10.0")
3476 (source
3477 (origin (method url-fetch)
3478 (uri (string-append "https://elpa.gnu.org/packages/ahungry-theme-"
3479 version ".tar"))
3480 (sha256
3481 (base32
3482 "14q5yw56n82qph09bk7wmj5b1snhh9w0nk5s1l7yn9ldg71xq6pm"))))
3483 (build-system emacs-build-system)
3484 (home-page "https://github.com/ahungry/color-theme-ahungry")
3485 (synopsis "Ahungry color theme for Emacs")
3486 (description "Ahungry theme for Emacs provides bright and bold colors.
3487 If you load it from a terminal, you will be able to make use of the
3488 transparent background. If you load it from a GUI, it will default to a
3489 dark background.")
3490 (license license:gpl3+)))
3491
3492 (define-public emacs-2048-game
3493 (package
3494 (name "emacs-2048-game")
3495 (version "20151026.1233")
3496 (source
3497 (origin
3498 (method url-fetch)
3499 (uri (string-append "https://melpa.org/packages/2048-game-"
3500 version ".el"))
3501 (sha256
3502 (base32
3503 "0gy2pvz79whpavp4jmz8h9krzn7brmvv3diixi1d4w51pcdvaldd"))))
3504 (build-system emacs-build-system)
3505 (home-page "https://bitbucket.org/zck/2048.el")
3506 (synopsis "Implementation of the game 2048 in Emacs Lisp")
3507 (description
3508 "This program is an implementation of 2048 for Emacs.
3509 The goal of this game is to create a tile with value 2048. The size of the
3510 board and goal value can be customized.")
3511 (license license:gpl3+)))
3512
3513 (define-public emacs-base16-theme
3514 (package
3515 (name "emacs-base16-theme")
3516 (version "2.1")
3517 (source
3518 (origin
3519 (method url-fetch)
3520 (uri (string-append "https://stable.melpa.org/packages/base16-theme-"
3521 version ".tar"))
3522 (sha256
3523 (base32
3524 "0z6hrwz2jlz6jbr381rcqcqvx6hss5cad352klx07rark7zccacj"))))
3525 (build-system emacs-build-system)
3526 (home-page "https://github.com/belak/base16-emacs")
3527 (synopsis "Base16 color themes for Emacs")
3528 (description
3529 "Base16 provides carefully chosen syntax highlighting and a default set
3530 of sixteen colors suitable for a wide range of applications. Base16 is not a
3531 single theme but a set of guidelines with numerous implementations.")
3532 (license license:expat)))
3533
3534 (define-public emacs-smartparens
3535 (package
3536 (name "emacs-smartparens")
3537 (version "1.11.0")
3538 (source (origin
3539 (method url-fetch)
3540 (uri (string-append
3541 "https://github.com/Fuco1/smartparens/archive/"
3542 version ".tar.gz"))
3543 (file-name (string-append name "-" version ".tar.gz"))
3544 (sha256
3545 (base32
3546 "0q5as813xs8y29i3v2rm97phd6m7xsmmw6hwbvx57gwmi8i1c409"))))
3547 (build-system emacs-build-system)
3548 (propagated-inputs
3549 `(("emacs-dash" ,emacs-dash)
3550 ("emacs-markdown-mode" ,emacs-markdown-mode)))
3551 (home-page "https://github.com/Fuco1/smartparens")
3552 (synopsis "Paredit-like insertion, wrapping and navigation with user
3553 defined pairs")
3554 (description
3555 "Smartparens is a minor mode for Emacs that deals with parens pairs
3556 and tries to be smart about it. It started as a unification effort to
3557 combine functionality of several existing packages in a single,
3558 compatible and extensible way to deal with parentheses, delimiters, tags
3559 and the like. Some of these packages include autopair, textmate,
3560 wrap-region, electric-pair-mode, paredit and others. With the basic
3561 features found in other packages it also brings many improvements as
3562 well as completely new features.")
3563 (license license:gpl3+)))
3564
3565 (define-public emacs-highlight-symbol
3566 (package
3567 (name "emacs-highlight-symbol")
3568 (version "1.3")
3569 (source (origin
3570 (method url-fetch)
3571 (uri (string-append
3572 "https://github.com/nschum/highlight-symbol.el/archive/"
3573 version ".tar.gz"))
3574 (file-name (string-append name "-" version ".tar.gz"))
3575 (sha256
3576 (base32
3577 "1n7k1qns0fn0jsyc0hrjac5nzk21xw48yc30vyrhwvc51h0b9g90"))))
3578 (build-system emacs-build-system)
3579 (home-page "https://nschum.de/src/emacs/highlight-symbol")
3580 (synopsis "Automatic and manual symbol highlighting for Emacs")
3581 (description
3582 "Use @code{highlight-symbol} to toggle highlighting of the symbol at
3583 point throughout the current buffer. Use @code{highlight-symbol-mode} to keep
3584 the symbol at point highlighted.
3585
3586 The functions @code{highlight-symbol-next}, @code{highlight-symbol-prev},
3587 @code{highlight-symbol-next-in-defun} and
3588 @code{highlight-symbol-prev-in-defun} allow for cycling through the locations
3589 of any symbol at point. Use @code{highlight-symbol-nav-mode} to enable key
3590 bindings @code{M-p} and @code{M-p} for navigation. When
3591 @code{highlight-symbol-on-navigation-p} is set, highlighting is triggered
3592 regardless of @code{highlight-symbol-idle-delay}.
3593
3594 @code{highlight-symbol-query-replace} can be used to replace the symbol. ")
3595 (license license:gpl2+)))
3596
3597 (define-public emacs-hl-todo
3598 (package
3599 (name "emacs-hl-todo")
3600 (version "1.9.0")
3601 (source (origin
3602 (method url-fetch)
3603 (uri (string-append
3604 "https://raw.githubusercontent.com/tarsius/hl-todo/"
3605 version "/hl-todo.el"))
3606 (file-name (string-append "hl-todo-" version ".el"))
3607 (sha256
3608 (base32
3609 "0728givzh7xv5i88ac9if8byj1p8bilrj1fnizca10s0rv100hdr"))))
3610 (build-system emacs-build-system)
3611 (home-page "https://github.com/tarsius/hl-todo")
3612 (synopsis "Emacs mode to highlight TODO and similar keywords")
3613 (description
3614 "This package provides an Emacs mode to highlight TODO and similar
3615 keywords in comments and strings. This package also provides commands for
3616 moving to the next or previous keyword and to invoke @code{occur} with a
3617 regexp that matches all known keywords.")
3618 (license license:gpl3+)))
3619
3620 (define-public emacs-perspective
3621 (package
3622 (name "emacs-perspective")
3623 (version "1.12")
3624 (source
3625 (origin
3626 (method url-fetch)
3627 (uri (string-append "https://github.com/nex3/perspective-el/"
3628 "archive/" version ".tar.gz"))
3629 (file-name (string-append name "-" version ".tar.gz"))
3630 (sha256
3631 (base32
3632 "078ahh0kmhdylq5ib9c81c76kz1n02xwc83pm729d00i84ibviic"))))
3633 (build-system emacs-build-system)
3634 (home-page "https://github.com/nex3/perspective-el")
3635 (synopsis "Switch between named \"perspectives\"")
3636 (description
3637 "This package provides tagged workspaces in Emacs, similar to workspaces in
3638 windows managers such as Awesome and XMonad. @code{perspective.el} provides
3639 multiple workspaces (or \"perspectives\") for each Emacs frame. Each
3640 perspective is composed of a window configuration and a set of buffers.
3641 Switching to a perspective activates its window configuration, and when in a
3642 perspective only its buffers are available by default.")
3643 ;; This package is released under the same license as Emacs (GPLv3+) or
3644 ;; the Expat license.
3645 (license license:gpl3+)))
3646
3647 (define-public emacs-test-simple
3648 (package
3649 (name "emacs-test-simple")
3650 (version "1.3.0")
3651 (source
3652 (origin
3653 (method url-fetch)
3654 (uri (string-append "https://elpa.gnu.org/packages/test-simple-"
3655 version ".el"))
3656 (sha256
3657 (base32
3658 "1yd61jc9ds95a5n09052kwc5gasy57g4lxr0jsff040brlyi9czz"))))
3659 (build-system emacs-build-system)
3660 (home-page "https://github.com/rocky/emacs-test-simple")
3661 (synopsis "Simple unit test framework for Emacs Lisp")
3662 (description
3663 "Test Simple is a simple unit test framework for Emacs Lisp. It
3664 alleviates the need for context macros, enclosing specifications or required
3665 test tags. It supports both interactive and non-interactive use.")
3666 (license license:gpl3+)))
3667
3668 (define-public emacs-load-relative
3669 (package
3670 (name "emacs-load-relative")
3671 (version "1.3")
3672 (source
3673 (origin
3674 (method url-fetch)
3675 (uri (string-append "https://elpa.gnu.org/packages/load-relative-"
3676 version ".el"))
3677 (sha256
3678 (base32
3679 "1hfxb2436jdsi9wfmsv47lkkpa5galjf5q81bqabbsv79rv59dps"))))
3680 (build-system emacs-build-system)
3681 (home-page "http://github.com/rocky/emacs-load-relative")
3682 (synopsis "Emacs Lisp relative file loading related functions")
3683 (description
3684 "Provides functions which facilitate writing multi-file Emacs packages
3685 and running from the source tree without having to \"install\" code or fiddle
3686 with @{load-path}.
3687
3688 The main function, @code{load-relative}, loads an Emacs Lisp file relative to
3689 another (presumably currently running) Emacs Lisp file.")
3690 (license license:gpl3+)))
3691
3692 (define-public emacs-loc-changes
3693 (package
3694 (name "emacs-loc-changes")
3695 (version "1.2")
3696 (source
3697 (origin
3698 (method url-fetch)
3699 (uri (string-append "https://elpa.gnu.org/packages/loc-changes-"
3700 version ".el"))
3701 (sha256
3702 (base32
3703 "1x8fn8vqasayf1rb8a6nma9n6nbvkx60krmiahyb05vl5rrsw6r3"))))
3704 (build-system emacs-build-system)
3705 (home-page "https://github.com/rocky/emacs-loc-changes")
3706 (synopsis "Keeps track of positions even after buffer changes")
3707 (description
3708 "This Emacs package provides a mean to track important buffer positions
3709 after buffer changes.")
3710 (license license:gpl3+)))
3711
3712 (define-public emacs-realgud
3713 (package
3714 (name "emacs-realgud")
3715 (version "1.4.5")
3716 (source
3717 (origin
3718 (method url-fetch)
3719 (uri (string-append "https://elpa.gnu.org/packages/realgud-"
3720 version ".tar"))
3721 (sha256
3722 (base32
3723 "108wgxg7fb4byaiasgvbxv2hq7b00biq9f0mh9hy6vw4160y5w24"))
3724 (patches
3725 ;; Patch awaiting inclusion upstream (see:
3726 ;; https://github.com/realgud/realgud/pull/226).
3727 (search-patches "emacs-realgud-fix-configure-ac.patch"))))
3728 (build-system emacs-build-system)
3729 (arguments
3730 `(#:tests? #t
3731 #:phases
3732 (modify-phases %standard-phases
3733 (add-after 'set-emacs-load-path 'fix-autogen-script
3734 (lambda _
3735 (substitute* "autogen.sh"
3736 (("./configure") "sh configure"))))
3737 (add-after 'fix-autogen-script 'autogen
3738 (lambda _
3739 (setenv "CONFIG_SHELL" "sh")
3740 (invoke "sh" "autogen.sh")))
3741 (add-after 'fix-autogen-script 'set-home
3742 (lambda _
3743 (setenv "HOME" (getenv "TMPDIR"))))
3744 (add-before 'patch-el-files 'remove-realgud-pkg.el
3745 (lambda _
3746 ;; XXX: This file is auto-generated at some point and causes
3747 ;; substitute* to crash during the `patch-el-files' phase with:
3748 ;; ERROR: In procedure stat: No such file or directory:
3749 ;; "./realgud-pkg.el"
3750 (delete-file "./realgud-pkg.el")
3751 ;; FIXME: `patch-el-files' crashes on this file with error:
3752 ;; unable to locate "bashdb".
3753 (delete-file "./test/test-regexp-bashdb.el"))))
3754 #:include (cons* ".*\\.el$" %default-include)))
3755 (native-inputs
3756 `(("autoconf" ,autoconf)
3757 ("automake" ,automake)
3758 ("emacs-test-simple" ,emacs-test-simple)))
3759 (propagated-inputs
3760 `(("emacs-load-relative" ,emacs-load-relative)
3761 ("emacs-loc-changes" ,emacs-loc-changes)))
3762 (home-page "https://github.com/realgud/realgud/")
3763 (synopsis
3764 "Modular front-end for interacting with external debuggers")
3765 (description
3766 "RealGUD is a modular, extensible GNU Emacs front-end for interacting
3767 with external debuggers. It integrates various debuggers such as gdb, pdb,
3768 ipdb, jdb, lldb, bashdb, zshdb, etc. and allows to visually step code in the
3769 sources. Unlike GUD, it also supports running multiple debug sessions in
3770 parallel.")
3771 (license license:gpl3+)))
3772
3773 (define-public emacs-request
3774 (package
3775 (name "emacs-request")
3776 (version "0.3.0")
3777 (source (origin
3778 (method git-fetch)
3779 (uri (git-reference
3780 (url "https://github.com/tkf/emacs-request.git")
3781 (commit (string-append "v" version))))
3782 (file-name (string-append name "-" version "-checkout"))
3783 (sha256
3784 (base32
3785 "0wyxqbb35yqf6ci47531lk32d6fppamx9d8826kdz983vm87him7"))))
3786 (build-system emacs-build-system)
3787 (propagated-inputs
3788 `(("emacs-deferred" ,emacs-deferred)))
3789 (home-page "https://github.com/tkf/emacs-request")
3790 (synopsis "Package for speaking HTTP in Emacs Lisp")
3791 (description "This package provides a HTTP request library with multiple
3792 backends. It supports url.el which is shipped with Emacs and the curl command
3793 line program.")
3794 (license license:gpl3+)))
3795
3796 (define-public emacs-rudel
3797 (package
3798 (name "emacs-rudel")
3799 (version "0.3.1")
3800 (source
3801 (origin
3802 (method url-fetch)
3803 (uri (string-append "http://elpa.gnu.org/packages/rudel-"
3804 version ".tar"))
3805 (sha256
3806 (base32
3807 "0glqa68g509p0s2vcc0i8kzlddnc9brd9jqhnm5rzxz4i050cvnz"))))
3808 (build-system emacs-build-system)
3809 (home-page "http://rudel.sourceforge.net/")
3810 (synopsis "Collaborative editing framework")
3811 (description
3812 "Rudel is a collaborative editing environment for GNU Emacs. Its purpose
3813 is to share buffers with other users in order to edit the contents of those
3814 buffers collaboratively. Rudel supports multiple backends to enable
3815 communication with other collaborative editors using different protocols,
3816 though currently Obby (for use with the Gobby editor) is the only
3817 fully-functional one.")
3818 (license license:gpl3+)))
3819
3820 (define-public emacs-hydra
3821 (package
3822 (name "emacs-hydra")
3823 (version "0.14.0")
3824 (source
3825 (origin
3826 (method git-fetch)
3827 (uri (git-reference
3828 (url "https://github.com/abo-abo/hydra")
3829 (commit version)))
3830 (file-name (git-file-name name version))
3831 (sha256
3832 (base32
3833 "0ln4z2796ycy33g5jcxkqvm7638qxy4sipsab7d2864hh700cikg"))))
3834 (build-system emacs-build-system)
3835 (home-page "https://github.com/abo-abo/hydra")
3836 (synopsis "Make Emacs bindings that stick around")
3837 (description
3838 "This package can be used to tie related commands into a family of short
3839 bindings with a common prefix---a Hydra. Once you summon the Hydra (through
3840 the prefixed binding), all the heads can be called in succession with only a
3841 short extension. Any binding that isn't the Hydra's head vanquishes the
3842 Hydra. Note that the final binding, besides vanquishing the Hydra, will still
3843 serve its original purpose, calling the command assigned to it. This makes
3844 the Hydra very seamless; it's like a minor mode that disables itself
3845 automatically.")
3846 (license license:gpl3+)))
3847
3848 (define-public emacs-ivy
3849 (package
3850 (name "emacs-ivy")
3851 (version "0.11.0")
3852 (source
3853 (origin
3854 (method git-fetch)
3855 (uri (git-reference
3856 (url "https://github.com/abo-abo/swiper.git")
3857 (commit version)))
3858 (file-name (string-append name "-" version "-checkout"))
3859 (sha256
3860 (base32
3861 "009n8zjycs62cv4i1k9adbb284wz2w3r13xki2740sj34k683v13"))))
3862 (build-system emacs-build-system)
3863 (arguments
3864 `(#:phases
3865 (modify-phases %standard-phases
3866 (add-after 'install 'install-doc
3867 (lambda* (#:key outputs #:allow-other-keys)
3868 (let* ((out (assoc-ref outputs "out"))
3869 (info (string-append out "/share/info")))
3870 (with-directory-excursion "doc"
3871 (invoke "makeinfo" "ivy.texi")
3872 (install-file "ivy.info" info)
3873 #t)))))))
3874 (propagated-inputs
3875 `(("emacs-hydra" ,emacs-hydra)))
3876 (native-inputs
3877 `(("texinfo" ,texinfo)))
3878 (home-page "http://oremacs.com/swiper/")
3879 (synopsis "Incremental vertical completion for Emacs")
3880 (description
3881 "This package provides @code{ivy-read} as an alternative to
3882 @code{completing-read} and similar functions. No attempt is made to determine
3883 the best candidate. Instead, the user can navigate candidates with
3884 @code{ivy-next-line} and @code{ivy-previous-line}. The matching is done by
3885 splitting the input text by spaces and re-building it into a regular
3886 expression.")
3887 (license license:gpl3+)))
3888
3889 (define-public emacs-ivy-yasnippet
3890 (let ((commit "32580b4fd23ebf9ca7dde96704f7d53df6e253cd")
3891 (revision "2"))
3892 (package
3893 (name "emacs-ivy-yasnippet")
3894 (version (git-version "0.1" revision commit))
3895 (source
3896 (origin
3897 (method git-fetch)
3898 (uri (git-reference
3899 (url "https://github.com/mkcms/ivy-yasnippet.git")
3900 (commit commit)))
3901 (file-name (git-file-name name version))
3902 (sha256
3903 (base32
3904 "1wfg6mmd5gl1qgvayyzpxlkh9s7jgn20y8l1vh1zbj1czvv51xp8"))))
3905 (build-system emacs-build-system)
3906 (propagated-inputs
3907 `(("emacs-ivy" ,emacs-ivy)
3908 ("emacs-yasnippet" ,emacs-yasnippet)
3909 ("emacs-dash" ,emacs-dash)))
3910 (home-page "https://github.com/mkcms/ivy-yasnippet")
3911 (synopsis "Preview @code{yasnippets} with @code{ivy}")
3912 (description "This package allows you to select @code{yasnippet}
3913 snippets using @code{ivy} completion. When current selection changes in the
3914 minibuffer, the snippet contents are temporarily expanded in the buffer. To
3915 use it, call @code{M-x ivy-yasnippet} (but make sure you have enabled
3916 @code{yas-minor-mode} first).")
3917 (license license:gpl3+))))
3918
3919 (define-public emacs-ivy-rich
3920 (package
3921 (name "emacs-ivy-rich")
3922 (version "0.1.0")
3923 (source
3924 (origin
3925 (method url-fetch)
3926 (uri (string-append "https://github.com/Yevgnen/ivy-rich/archive/"
3927 version ".tar.gz"))
3928 (file-name (string-append name "-" version ".tar.gz"))
3929 (sha256
3930 (base32
3931 "14r3mx5rkd4wz0ls5pv5w6c7la3z9iy93d3jfind3xyg4kywy95c"))))
3932 (build-system emacs-build-system)
3933 (propagated-inputs
3934 `(("emacs-ivy" ,emacs-ivy)))
3935 (home-page "https://github.com/Yevgnen/ivy-rich")
3936 (synopsis "More friendly interface for @code{ivy}")
3937 (description
3938 "This package extends @code{ivy} by showing more information in the
3939 minibuffer for each candidate. It adds columns showing buffer modes, file
3940 sizes, docstrings, etc. If @code{emacs-all-the-icons} is installed, it can
3941 show icons as well.")
3942 (license license:gpl3+)))
3943
3944 (define-public emacs-avy
3945 (package
3946 (name "emacs-avy")
3947 (version "0.4.0")
3948 (source
3949 (origin
3950 (method url-fetch)
3951 (uri (string-append "https://github.com/abo-abo/avy/archive/"
3952 version ".tar.gz"))
3953 (file-name (string-append name "-" version ".tar.gz"))
3954 (sha256
3955 (base32
3956 "1wdrq512h25ymzjbf2kbsdymvd2ryfwzb6bh5bc3yv7q203im796"))))
3957 (build-system emacs-build-system)
3958 (home-page "https://github.com/abo-abo/avy")
3959 (synopsis "Tree-based completion for Emacs")
3960 (description
3961 "This package provides a generic completion method based on building a
3962 balanced decision tree with each candidate being a leaf. To traverse the tree
3963 from the root to a desired leaf, typically a sequence of @code{read-key} can
3964 be used.
3965
3966 In order for @code{read-key} to make sense, the tree needs to be visualized
3967 appropriately, with a character at each branch node. So this completion
3968 method works only for things that you can see on your screen, all at once,
3969 such as the positions of characters, words, line beginnings, links, or
3970 windows.")
3971 (license license:gpl3+)))
3972
3973 (define-public emacs-ace-window
3974 (package
3975 (name "emacs-ace-window")
3976 (version "0.9.0")
3977 (source
3978 (origin
3979 (method url-fetch)
3980 (uri (string-append "https://github.com/abo-abo/ace-window/archive/"
3981 version ".tar.gz"))
3982 (file-name (string-append name "-" version ".tar.gz"))
3983 (sha256
3984 (base32
3985 "1p2sgfl5dml4zbd6ldql6lm2m9vmd236ah996ni32x254s48j5pn"))))
3986 (build-system emacs-build-system)
3987 (propagated-inputs
3988 `(("emacs-avy" ,emacs-avy)))
3989 (home-page "https://github.com/abo-abo/ace-window")
3990 (synopsis "Quickly switch windows in Emacs")
3991 (description
3992 "@code{ace-window} is meant to replace @code{other-window}.
3993 In fact, when there are only two windows present, @code{other-window} is
3994 called. If there are more, each window will have its first character
3995 highlighted. Pressing that character will switch to that window.")
3996 (license license:gpl3+)))
3997
3998 (define-public emacs-iedit
3999 (package
4000 (name "emacs-iedit")
4001 (version "0.9.9.9")
4002 (source
4003 (origin
4004 (method url-fetch)
4005 (uri (string-append "https://github.com/victorhge/iedit/archive/v"
4006 version ".tar.gz"))
4007 (file-name (string-append name "-" version ".tar.gz"))
4008 (sha256
4009 (base32
4010 "1hv8q6pr85ss9g3158l1fqv3m62vsq8rslsi86jicr2dcxyascr0"))))
4011 (build-system emacs-build-system)
4012 (home-page "http://www.emacswiki.org/emacs/Iedit")
4013 (synopsis "Edit multiple regions in the same way simultaneously")
4014 (description
4015 "This package is an Emacs minor mode and allows you to edit one
4016 occurrence of some text in a buffer (possibly narrowed) or region, and
4017 simultaneously have other occurrences edited in the same way.
4018
4019 You can also use Iedit mode as a quick way to temporarily show only the buffer
4020 lines that match the current text being edited. This gives you the effect of
4021 a temporary @code{keep-lines} or @code{occur}.")
4022 (license license:gpl3+)))
4023
4024 (define-public emacs-zoutline
4025 (let ((commit "b3ee0f0e0b916838c2d2c249beba74ffdb8d5699")
4026 (revision "0"))
4027 (package
4028 (name "emacs-zoutline")
4029 (version (git-version "0.1" revision commit))
4030 (home-page "https://github.com/abo-abo/zoutline")
4031 (source (origin
4032 (method git-fetch)
4033 (uri (git-reference (url home-page) (commit commit)))
4034 (sha256
4035 (base32
4036 "0sd0017piw0dis6dhpq5dkqd3acisxqgipl7dj8gmc1vnswhdwr8"))
4037 (file-name (git-file-name name version))))
4038 (build-system emacs-build-system)
4039 (synopsis "Simple outline library")
4040 (description
4041 "This library provides helpers for outlines. Outlines allow users to
4042 navigate code in a tree-like fashion.")
4043 (license license:gpl3+))))
4044
4045 (define-public emacs-lispy
4046 ;; Release 0.26.0 was almost 3 years ago, and there have been ~772 commits
4047 ;; since.
4048 (let ((commit "f94cfc6b8f9c3afe7d028c366928049c011023de")
4049 (revision "1"))
4050 (package
4051 (name "emacs-lispy")
4052 (version (git-version "0.26.0" revision commit))
4053 (home-page "https://github.com/abo-abo/lispy")
4054 (source (origin
4055 (method git-fetch)
4056 (uri (git-reference (url home-page) (commit commit)))
4057 (sha256
4058 (base32
4059 "1bm2cpwizg1qfpm377gpx1af1hm5maw69if1csnk5vwaphmv8c4g"))
4060 (file-name (git-file-name name version))))
4061 (build-system emacs-build-system)
4062 (propagated-inputs
4063 `(("emacs-ace-window" ,emacs-ace-window)
4064 ("emacs-iedit" ,emacs-iedit)
4065 ("emacs-ivy" ,emacs-ivy)
4066 ("emacs-hydra" ,emacs-hydra)
4067 ("emacs-zoutline" ,emacs-zoutline)))
4068 (synopsis "Modal S-expression editing")
4069 (description
4070 "Due to the structure of Lisp syntax it's very rare for the programmer
4071 to want to insert characters right before \"(\" or right after \")\". Thus
4072 unprefixed printable characters can be used to call commands when the point is
4073 at one of these special locations. Lispy provides unprefixed keybindings for
4074 S-expression editing when point is at the beginning or end of an
4075 S-expression.")
4076 (license license:gpl3+))))
4077
4078 (define-public emacs-lispyville
4079 (let ((commit "d28b937f0cabd8ce61e2020fe9a733ca80d82c74")
4080 (revision "1"))
4081 (package
4082 (name "emacs-lispyville")
4083 (version (git-version "0.1" revision commit))
4084 (home-page "https://github.com/noctuid/lispyville")
4085 (source (origin
4086 (method git-fetch)
4087 (uri (git-reference (url home-page) (commit commit)))
4088 (sha256
4089 (base32
4090 "0f6srwj1qqkfkbmp5n5pjvi6gm7b7xav05p5hrs2i83rjrakzzqx"))
4091 (file-name (git-file-name name version))))
4092 (propagated-inputs
4093 `(("emacs-evil" ,emacs-evil)
4094 ("emacs-lispy" ,emacs-lispy)))
4095 (build-system emacs-build-system)
4096 (synopsis "Minor mode for integrating Evil with lispy")
4097 (description
4098 "LispyVille's main purpose is to provide a Lisp editing environment
4099 suited towards Evil users. It can serve as a minimal layer on top of lispy
4100 for better integration with Evil, but it does not require the use of lispy’s
4101 keybinding style. The provided commands allow for editing Lisp in normal
4102 state and will work even without lispy being enabled.")
4103 (license license:gpl3+))))
4104
4105 (define-public emacs-clojure-mode
4106 (package
4107 (name "emacs-clojure-mode")
4108 (version "5.6.1")
4109 (source (origin
4110 (method url-fetch)
4111 (uri (string-append
4112 "https://github.com/clojure-emacs/clojure-mode/archive/"
4113 version ".tar.gz"))
4114 (file-name (string-append name "-" version ".tar.gz"))
4115 (sha256
4116 (base32
4117 "1f4k1hncy5ygh4izn7mqfp744nnisrp9ywn2njknbjxx34ai1q88"))))
4118 (build-system emacs-build-system)
4119 (native-inputs
4120 `(("emacs-dash" ,emacs-dash)
4121 ("emacs-s" ,emacs-s)
4122 ("ert-runner" ,emacs-ert-runner)))
4123 (arguments
4124 `(#:tests? #t
4125 #:test-command '("ert-runner")))
4126 (home-page "https://github.com/clojure-emacs/clojure-mode")
4127 (synopsis "Major mode for Clojure code")
4128 (description
4129 "This Emacs package provides font-lock, indentation, navigation and basic
4130 refactoring for the @uref{http://clojure.org, Clojure programming language}.
4131 It is recommended to use @code{clojure-mode} with paredit or smartparens.")
4132 (license license:gpl3+)))
4133
4134 (define-public emacs-epl
4135 (package
4136 (name "emacs-epl")
4137 (version "0.8")
4138 (source (origin
4139 (method url-fetch)
4140 (uri (string-append
4141 "https://github.com/cask/epl/archive/"
4142 version ".tar.gz"))
4143 (file-name (string-append name "-" version ".tar.gz"))
4144 (sha256
4145 (base32
4146 "1511n3a3f5gvaf2b4nh018by61ciyzi3y3603fzqma7p9hrckarc"))))
4147 (build-system emacs-build-system)
4148 (home-page "https://github.com/cask/epl")
4149 (synopsis "Emacs Package Library")
4150 (description
4151 "A package management library for Emacs, based on @code{package.el}.
4152
4153 The purpose of this library is to wrap all the quirks and hassle of
4154 @code{package.el} into a sane API.")
4155 (license license:gpl3+)))
4156
4157 (define-public emacs-queue
4158 (package
4159 (name "emacs-queue")
4160 (version "0.2")
4161 (source (origin
4162 (method url-fetch)
4163 (uri (string-append "https://elpa.gnu.org/packages/queue-"
4164 version ".el"))
4165 (sha256
4166 (base32
4167 "0cx2848sqnnkkr4zisvqadzxngjyhmb36mh0q3if7q19yjjhmrkb"))))
4168 (build-system emacs-build-system)
4169 (home-page "http://www.dr-qubit.org/tags/computing-code-emacs.html")
4170 (synopsis "Queue data structure for Emacs")
4171 (description
4172 "This Emacs library provides queue data structure. These queues can be
4173 used both as a first-in last-out (FILO) and as a first-in first-out (FIFO)
4174 stack, i.e. elements can be added to the front or back of the queue, and can
4175 be removed from the front. This type of data structure is sometimes called an
4176 \"output-restricted deque\".")
4177 (license license:gpl3+)))
4178
4179 (define-public emacs-pkg-info
4180 (package
4181 (name "emacs-pkg-info")
4182 (version "0.6")
4183 (source (origin
4184 (method url-fetch)
4185 (uri (string-append
4186 "https://github.com/lunaryorn/pkg-info.el/archive/"
4187 version ".tar.gz"))
4188 (file-name (string-append name "-" version ".tar.gz"))
4189 (sha256
4190 (base32
4191 "1gy1jks5mmm02gg1c8gcyr4f8a9s5ggzhk56gv33b9mzjqzi5rd5"))))
4192 (build-system emacs-build-system)
4193 (propagated-inputs `(("emacs-epl" ,emacs-epl)))
4194 (home-page "https://github.com/lunaryorn/pkg-info.el")
4195 (synopsis "Information about Emacs packages")
4196 (description
4197 "This library extracts information from the installed Emacs packages.")
4198 (license license:gpl3+)))
4199
4200 (define-public emacs-spinner
4201 (package
4202 (name "emacs-spinner")
4203 (version "1.7.3")
4204 (source (origin
4205 (method url-fetch)
4206 (uri (string-append "https://elpa.gnu.org/packages/spinner-"
4207 version ".el"))
4208 (sha256
4209 (base32
4210 "19kp1mmndbmw11sgvv2ggfjl4pyf5zrsbh3871f0965pw9z8vahd"))))
4211 (build-system emacs-build-system)
4212 (home-page "https://github.com/Malabarba/spinner.el")
4213 (synopsis "Emacs mode-line spinner for operations in progress")
4214 (description
4215 "This Emacs package adds spinners and progress-bars to the mode-line for
4216 ongoing operations.")
4217 (license license:gpl3+)))
4218
4219 (define-public emacs-sparql-mode
4220 (package
4221 (name "emacs-sparql-mode")
4222 (version "2.0.1")
4223 (source (origin
4224 (method url-fetch)
4225 (uri (string-append "https://github.com/ljos/sparql-mode/archive/"
4226 "v" version ".tar.gz"))
4227 (file-name (string-append name "-" version ".tar.gz"))
4228 (sha256
4229 (base32
4230 "1s93mkllxnhy7fw616cnnc2danacdlarys0g3cn89drh0llh53cv"))))
4231 (build-system emacs-build-system)
4232 (home-page "https://github.com/ljos/sparql-mode")
4233 (synopsis "SPARQL mode for Emacs")
4234 (description "This package provides a major mode for Emacs that provides
4235 syntax highlighting for SPARQL. It also provides a way to execute queries
4236 against a SPARQL HTTP endpoint, such as is provided by Fuseki. It is also
4237 possible to query other endpoints like DBPedia.")
4238 (license license:gpl3+)))
4239
4240 (define-public emacs-better-defaults
4241 (package
4242 (name "emacs-better-defaults")
4243 (version "0.1.3")
4244 (source
4245 (origin
4246 (method url-fetch)
4247 (uri (string-append "https://github.com/technomancy/better-defaults"
4248 "/archive/" version ".tar.gz"))
4249 (file-name (string-append name "-" version ".tar.gz"))
4250 (sha256
4251 (base32
4252 "08fg4zslzlxbvyil5g4gwvwd22fh4zsgqprs5wh9hv1rgc6757m2"))))
4253 (build-system emacs-build-system)
4254 (home-page "https://github.com/technomancy/better-defaults")
4255 (synopsis "Better defaults for Emacs")
4256 (description
4257 "Better defaults attempts to address the most obvious deficiencies of the
4258 Emacs default configuration in uncontroversial ways that nearly everyone can
4259 agree upon.")
4260 (license license:gpl3+)))
4261
4262 (define-public emacs-eprime
4263 (let ((commit "17a481af26496be91c07139a9bfc05cfe722506f"))
4264 (package
4265 (name "emacs-eprime")
4266 (version (string-append "20140513-" (string-take commit 7)))
4267 (source (origin
4268 (method url-fetch)
4269 (uri (string-append "https://raw.githubusercontent.com"
4270 "/AndrewHynes/eprime-mode/"
4271 commit "/eprime-mode.el"))
4272 (file-name (string-append "eprime-" version ".el"))
4273 (sha256
4274 (base32
4275 "0v68lggkyq7kbcr9zyi573m2g2x251xy3jadlaw8kx02l8krwq8d"))))
4276 (build-system emacs-build-system)
4277 (home-page "https://github.com/AndrewHynes/eprime-mode")
4278 (synopsis "E-prime checking mode for Emacs")
4279 (description "This package provides an E-prime checking mode for Emacs
4280 that highlights non-conforming text. The subset of the English language called
4281 E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
4282 (license license:gpl3+))))
4283
4284 (define-public emacs-julia-mode
4285 ;; XXX: Upstream version remained stuck at 0.3. See
4286 ;; <https://github.com/JuliaEditorSupport/julia-emacs/issues/46>.
4287 (let ((commit "115d4dc8a07445301772da8376b232fa8c7168f4")
4288 (revision "1"))
4289 (package
4290 (name "emacs-julia-mode")
4291 (version (string-append "0.3-" revision "." (string-take commit 8)))
4292 (source
4293 (origin
4294 (method git-fetch)
4295 (uri (git-reference
4296 (url "https://github.com/JuliaEditorSupport/julia-emacs.git")
4297 (commit commit)))
4298 (file-name (string-append name "-" version "-checkout"))
4299 (sha256
4300 (base32
4301 "1is4dcv6blslpzbjcg8l2jpxi8xj96q4cm0nxjxsyswpm8bw8ki0"))))
4302 (build-system emacs-build-system)
4303 (arguments
4304 `(#:tests? #t
4305 #:test-command '("emacs" "--batch"
4306 "-l" "julia-mode-tests.el"
4307 "-f" "ert-run-tests-batch-and-exit")))
4308 (home-page "https://github.com/JuliaEditorSupport/julia-emacs")
4309 (synopsis "Major mode for Julia")
4310 (description "This Emacs package provides a mode for the Julia
4311 programming language.")
4312 (license license:expat))))
4313
4314 (define-public emacs-smex
4315 (package
4316 (name "emacs-smex")
4317 (version "3.0")
4318 (source (origin
4319 (method url-fetch)
4320 (uri (string-append "https://raw.githubusercontent.com"
4321 "/nonsequitur/smex/" version "/smex.el"))
4322 (file-name (string-append "smex-" version ".el"))
4323 (sha256
4324 (base32
4325 "0ar310zx9k5y4i1vl2rawvi712xj9gx77160860jbs691p77cxqp"))))
4326 (build-system emacs-build-system)
4327 (home-page "https://github.com/nonsequitur/smex/")
4328 (synopsis "M-x interface with Ido-style fuzzy matching")
4329 (description
4330 "Smex is a M-x enhancement for Emacs. Built on top of Ido, it provides a
4331 convenient interface to your recently and most frequently used commands. And
4332 to all the other commands, too.")
4333 (license license:gpl3+)))
4334
4335 (define-public emacs-js2-mode
4336 (package
4337 (name "emacs-js2-mode")
4338 (version "20180301")
4339 (source (origin
4340 (method url-fetch)
4341 (uri (string-append "https://github.com/mooz/js2-mode/archive/"
4342 version ".tar.gz"))
4343 (file-name (string-append name "-" version ".tar.gz"))
4344 (sha256
4345 (base32
4346 "13aghgwaqrmbf3pbifcry52kya454wnh1gbdh5805n1n6xgjm5w3"))))
4347 (build-system emacs-build-system)
4348 (home-page "https://github.com/mooz/js2-mode/")
4349 (synopsis "Improved JavaScript editing mode for Emacs")
4350 (description
4351 "Js2-mode provides a JavaScript major mode for Emacs that is more
4352 advanced than the built-in javascript-mode. Features include accurate syntax
4353 highlighting using a recursive-descent parser, on-the-fly reporting of syntax
4354 errors and strict-mode warnings, smart line-wrapping within comments and
4355 strings, and code folding.")
4356 (license license:gpl3+)))
4357
4358 (define-public emacs-nodejs-repl
4359 (package
4360 (name "emacs-nodejs-repl")
4361 (version "0.2.0")
4362 (source (origin
4363 (method url-fetch)
4364 (uri (string-append "https://github.com/abicky/nodejs-repl.el"
4365 "/archive/" version ".tar.gz"))
4366 (sha256
4367 (base32
4368 "0hq2cqdq2668yf48g7qnkci90nhih1gnhacsgz355jnib56lhmkz"))
4369 (file-name (string-append name "-" version ".tar.gz"))))
4370 (build-system emacs-build-system)
4371 (home-page "https://github.com/abicky/nodejs-repl.el")
4372 (synopsis "Node.js REPL inside Emacs")
4373 (description
4374 "This program is derived from comint-mode and provides the following
4375 features:
4376
4377 @itemize
4378 @item TAB completion same as Node.js REPL
4379 @item file name completion in string
4380 @item incremental history search
4381 @end itemize")
4382 (license license:gpl3+)))
4383
4384 (define-public emacs-typescript-mode
4385 (package
4386 (name "emacs-typescript-mode")
4387 (version "0.3")
4388 (source (origin
4389 (method url-fetch)
4390 (uri (string-append
4391 "https://github.com/ananthakumaran/typescript.el"
4392 "/archive/v" version ".tar.gz"))
4393 (sha256
4394 (base32
4395 "1gqjirm8scf0wysm7x97zdfbs4qa5nqdl64jfbkd18iskv5mg3rj"))
4396 (file-name (string-append name "-" version ".tar.gz"))))
4397 (build-system emacs-build-system)
4398 (home-page "https://github.com/ananthakumaran/typescript.el")
4399 (synopsis "Emacs major mode for editing Typescript code")
4400 (description
4401 "This is based on Karl Landstrom's barebones @code{typescript-mode}.
4402 This is much more robust and works with @code{cc-mode}'s comment
4403 filling (mostly). The modifications to the original @code{javascript.el} mode
4404 mainly consisted in replacing \"javascript\" with \"typescript\"
4405
4406 The main features of this Typescript mode are syntactic highlighting (enabled
4407 with @code{font-lock-mode} or @code{global-font-lock-mode}), automatic
4408 indentation and filling of comments and C preprocessor fontification.")
4409 (license license:gpl3+)))
4410
4411 (define-public emacs-tide
4412 (package
4413 (name "emacs-tide")
4414 (version "3.2.3")
4415 (source (origin
4416 (method url-fetch)
4417 (uri (string-append "https://github.com/ananthakumaran/tide"
4418 "/archive/v" version ".tar.gz"))
4419 (sha256
4420 (base32
4421 "1c600myr2yqbkmy9lify38lz0zzjdqk1733db5n7vsay16vn6fzi"))
4422 (file-name (string-append name "-" version ".tar.gz"))))
4423 (build-system emacs-build-system)
4424 (propagated-inputs
4425 `(("emacs-dash" ,emacs-dash)
4426 ("emacs-s" ,emacs-s)
4427 ("emacs-flycheck" ,emacs-flycheck)
4428 ("emacs-typescript-mode" ,emacs-typescript-mode)))
4429 (home-page "https://github.com/ananthakumaran/tide")
4430 (synopsis "Typescript IDE for Emacs")
4431 (description
4432 "Tide is an Interactive Development Environment (IDE) for Emacs which
4433 provides the following features:
4434
4435 @itemize
4436 @item ElDoc
4437 @item Auto complete
4438 @item Flycheck
4439 @item Jump to definition, Jump to type definition
4440 @item Find occurrences
4441 @item Rename symbol
4442 @item Imenu
4443 @item Compile On Save
4444 @item Highlight Identifiers
4445 @item Code Fixes
4446 @item Code Refactor
4447 @item Organize Imports
4448 @end itemize")
4449 (license license:gpl3+)))
4450
4451 (define-public emacs-markdown-mode
4452 (package
4453 (name "emacs-markdown-mode")
4454 (version "2.3")
4455 (source (origin
4456 (method url-fetch)
4457 (uri (string-append "https://raw.githubusercontent.com/jrblevin"
4458 "/markdown-mode/v" version
4459 "/markdown-mode.el"))
4460 (file-name (string-append "markdown-mode-" version ".el"))
4461 (sha256
4462 (base32
4463 "152whyrq3dqlqy5wv4mdd94kmal19hs5kwaxjcp2gp2r97lsmdmi"))))
4464 (build-system emacs-build-system)
4465 (home-page "http://jblevins.org/projects/markdown-mode/")
4466 (synopsis "Emacs Major mode for Markdown files")
4467 (description
4468 "Markdown-mode is a major mode for editing Markdown-formatted text files
4469 in Emacs.")
4470 (license license:gpl3+)))
4471
4472 (define-public emacs-edit-indirect
4473 (package
4474 (name "emacs-edit-indirect")
4475 (version "0.1.5")
4476 (source
4477 (origin
4478 (method git-fetch)
4479 (uri (git-reference
4480 (url "https://github.com/Fanael/edit-indirect")
4481 (commit version)))
4482 (file-name (git-file-name name version))
4483 (sha256
4484 (base32
4485 "0by1x53pji39fjrj5bd446kz831nv0vdgw2jqasbym4pc1p2947r"))))
4486 (build-system emacs-build-system)
4487 (home-page "https://github.com/Fanael/edit-indirect")
4488 (synopsis "Edit regions in separate buffers")
4489 (description "This package allows you to edit regions in separate buffers,
4490 like @code{org-edit-src-code} but for arbitrary regions.")
4491 (license license:gpl3+)))
4492
4493 (define-public emacs-projectile
4494 (package
4495 (name "emacs-projectile")
4496 (version "2.0.0")
4497 (source (origin
4498 (method url-fetch)
4499 (uri (string-append "https://raw.githubusercontent.com/bbatsov"
4500 "/projectile/v" version "/projectile.el"))
4501 (file-name (string-append "projectile-" version ".el"))
4502 (sha256
4503 (base32
4504 "149hablms6n9b4wp78dz4pjz1rzyylfw9ayghq5p9d7k661mvyby"))))
4505 (build-system emacs-build-system)
4506 (propagated-inputs
4507 `(("emacs-dash" ,emacs-dash)
4508 ("emacs-pkg-info" ,emacs-pkg-info)))
4509 (home-page "https://github.com/bbatsov/projectile")
4510 (synopsis "Manage and navigate projects in Emacs easily")
4511 (description
4512 "This library provides easy project management and navigation. The
4513 concept of a project is pretty basic - just a folder containing special file.
4514 Currently git, mercurial and bazaar repos are considered projects by default.
4515 If you want to mark a folder manually as a project just create an empty
4516 .projectile file in it.")
4517 (license license:gpl3+)))
4518
4519 (define-public emacs-elfeed
4520 (package
4521 (name "emacs-elfeed")
4522 (version "3.0.0")
4523 (source (origin
4524 (method url-fetch)
4525 (uri (string-append "https://github.com/skeeto/elfeed/archive/"
4526 version ".tar.gz"))
4527 (file-name (string-append name "-" version ".tar.gz"))
4528 (sha256
4529 (base32
4530 "1wkdrxr6zzqb48czqqv34l87bx8aqjk1739ddqg933aqh241kfvn"))))
4531 (build-system emacs-build-system)
4532 (arguments
4533 `(#:tests? #t
4534 #:test-command '("make" "test")))
4535 (home-page "https://github.com/skeeto/elfeed")
4536 (synopsis "Atom/RSS feed reader for Emacs")
4537 (description
4538 "Elfeed is an extensible web feed reader for Emacs, supporting both Atom
4539 and RSS, with a user interface inspired by notmuch.")
4540 (license license:gpl3+)))
4541
4542 (define-public emacs-el-x
4543 (package
4544 (name "emacs-el-x")
4545 (version "0.3.1")
4546 (source (origin
4547 (method git-fetch)
4548 (uri (git-reference
4549 (url "https://github.com/sigma/el-x.git")
4550 (commit (string-append "v" version))))
4551 (file-name (string-append name "-" version "-checkout"))
4552 (sha256
4553 (base32
4554 "1i6j44ssxm1xdg0mf91nh1lnprwsaxsx8vsrf720nan7mfr283h5"))))
4555 (build-system emacs-build-system)
4556 (arguments
4557 `(#:phases
4558 (modify-phases %standard-phases
4559 ;; Move the source files to the top level, which is included in
4560 ;; the EMACSLOADPATH.
4561 (add-after 'unpack 'move-source-files
4562 (lambda _
4563 (let ((el-files (find-files "./lisp" ".*\\.el$")))
4564 (for-each (lambda (f)
4565 (rename-file f (basename f)))
4566 el-files))
4567 #t)))))
4568 (home-page "https://github.com/sigma/el-x")
4569 (synopsis "Emacs Lisp extensions")
4570 (description "command@{emacs-el-x} defines the @code{dflet} macro to
4571 provide the historic behavior of @code{flet}, as well as
4572 @code{declare-function} stub for older Emacs.")
4573 (license license:gpl2+)))
4574
4575 (define-public emacs-mocker
4576 (package
4577 (name "emacs-mocker")
4578 (version "0.3.1")
4579 (source (origin
4580 (method git-fetch)
4581 (uri (git-reference
4582 (url "https://github.com/sigma/mocker.el.git")
4583 (commit (string-append "v" version))))
4584 (file-name (string-append name "-" version "-checkout"))
4585 (sha256
4586 (base32
4587 "1lav7am41v63xgavq8pr88y828jmd1cxd4prjq7jlbxm6nvrwxh2"))))
4588 (build-system emacs-build-system)
4589 (arguments
4590 `(#:tests? #t
4591 #:test-command '("ert-runner")))
4592 (native-inputs
4593 `(("ert-runner" ,emacs-ert-runner)))
4594 (propagated-inputs
4595 `(("emacs-el-x" ,emacs-el-x)))
4596 (home-page "https://github.com/sigma/mocker.el")
4597 (synopsis "Mocking framework for Emacs Lisp")
4598 (description "Mocker.el is a framework for writing tests in Emacs Lisp.
4599 It uses regular Lisp rather than a domain specific language (DSL), which
4600 maximizes flexibility (at the expense of conciseness).")
4601 (license license:gpl2+)))
4602
4603 (define-public emacs-find-file-in-project
4604 (package
4605 (name "emacs-find-file-in-project")
4606 (version "5.4.7")
4607 (source (origin
4608 (method git-fetch)
4609 (uri (git-reference
4610 (url "https://github.com/technomancy/find-file-in-project.git")
4611 (commit version)))
4612 (file-name (string-append name "-" version "-checkout"))
4613 (sha256
4614 (base32
4615 "1sdnyqv69mipbgs9yax88m9b6crsa59rjhwrih197pifl4089awr"))))
4616 (build-system emacs-build-system)
4617 (arguments
4618 `(#:phases
4619 (modify-phases %standard-phases
4620 (add-before 'check 'set-shell
4621 ;; Otherwise Emacs shell-file-name is set to "/bin/sh", which doesn't
4622 ;; work.
4623 (lambda _
4624 (setenv "SHELL" (which "sh"))
4625 #t)))
4626 #:tests? #t
4627 #:test-command '("./tests/test.sh")))
4628 (home-page "https://github.com/technomancy/find-file-in-project")
4629 (synopsis "File/directory finder for Emacs")
4630 (description "@code{find-file-in-project} allows to find files or
4631 directories quickly in the current project. The project root is detected
4632 automatically when Git, Subversion or Mercurial are used. It also provides
4633 functions to assist in reviewing changes on files.")
4634 (license license:gpl3+)))
4635
4636 (define-public emacs-pyvenv
4637 (package
4638 (name "emacs-pyvenv")
4639 (version "1.20")
4640 (source (origin
4641 (method git-fetch)
4642 (uri (git-reference
4643 (url "https://github.com/jorgenschaefer/pyvenv.git")
4644 (commit (string-append "v" version))))
4645 (file-name (string-append name "-" version "-checkout"))
4646 (sha256
4647 (base32
4648 "1x052fsavb94x3scpqd6n9spqgzaahzbdxhg4qa5sy6hqsabn6zh"))))
4649 (build-system emacs-build-system)
4650 (arguments
4651 `(#:phases
4652 (modify-phases %standard-phases
4653 ;; This phase incorrectly attempts to substitute "activate" and fails
4654 ;; doing so.
4655 (delete 'patch-el-files))
4656 #:tests? #t
4657 #:test-command '("ert-runner")))
4658 (native-inputs
4659 `(("ert-runner" ,emacs-ert-runner)
4660 ("emacs-mocker" ,emacs-mocker)))
4661 (home-page "https://github.com/jorgenschaefer/pyvenv")
4662 (synopsis "Python virtual environment interface for Emacs")
4663 (description "pyvenv.el is a minor mode to support using Python virtual
4664 environments (virtualenv) inside Emacs.")
4665 (license license:gpl3+)))
4666
4667 (define-public emacs-highlight-indentation
4668 (package
4669 (name "emacs-highlight-indentation")
4670 (version "0.7.0")
4671 (source (origin
4672 (method git-fetch)
4673 (uri (git-reference
4674 (url "https://github.com/antonj/Highlight-Indentation-for-Emacs.git")
4675 (commit (string-append "v" version))))
4676 (file-name (string-append name "-" version "-checkout"))
4677 (sha256
4678 (base32
4679 "00l54k75qk24a0znzl4ij3s3nrnr2wy9ha3za8apphzlm98m907k"))))
4680 (build-system emacs-build-system)
4681 (home-page "https://github.com/antonj/Highlight-Indentation-for-Emacs/")
4682 (synopsis "Highlighting indentation for Emacs")
4683 (description "Provides two minor modes to highlight indentation guides in Emacs:
4684 @enumerate
4685 @item @code{highlight-indentation-mode}, which displays guidelines
4686 indentation (space indentation only).
4687 @item @code{highlight-indentation-current-column-mode}, which displays guidelines for the current-point indentation (space indentation only).
4688 @end enumerate")
4689 (license license:gpl2+)))
4690
4691 (define-public emacs-elpy
4692 (package
4693 (name "emacs-elpy")
4694 (version "1.28.0")
4695 (source (origin
4696 (method git-fetch)
4697 (uri (git-reference
4698 (url "https://github.com/jorgenschaefer/elpy.git")
4699 (commit version)))
4700 (file-name (string-append name "-" version "-checkout"))
4701 (sha256
4702 (base32
4703 "073bwxwjzcbmvpcz9q2xjwzx9x7hkvjni6fwvikh6yawzjp56jis"))))
4704 (build-system emacs-build-system)
4705 (arguments
4706 `(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include)
4707 #:phases
4708 ;; TODO: Make `elpy-config' display Guix commands :)
4709 (modify-phases %standard-phases
4710 ;; One elpy test depends on being run inside a Python virtual
4711 ;; environment to pass. We have nothing to gain from doing so here,
4712 ;; so we just trick Elpy into thinking we are (see:
4713 ;; https://github.com/jorgenschaefer/elpy/pull/1293).
4714 (add-before 'check 'fake-virtualenv
4715 (lambda _
4716 (setenv "VIRTUAL_ENV" "/tmp")
4717 #t))
4718 (add-before 'check 'build-doc
4719 (lambda _
4720 (with-directory-excursion "docs"
4721 (invoke "make" "info" "man"))
4722 ;; Move .info file at the root so that it can installed by the
4723 ;; 'move-doc phase.
4724 (rename-file "docs/_build/texinfo/Elpy.info" "Elpy.info")
4725 #t))
4726 (add-after 'build-doc 'install-manpage
4727 (lambda* (#:key outputs #:allow-other-keys)
4728 (let* ((out (assoc-ref outputs "out"))
4729 (man1 (string-append out "/share/man/man1")))
4730 (mkdir-p man1)
4731 (copy-file "docs/_build/man/elpy.1"
4732 (string-append man1 "/elpy.1")))
4733 #t)))
4734 #:tests? #t
4735 #:test-command '("ert-runner")))
4736 (propagated-inputs
4737 `(("emacs-company" ,emacs-company)
4738 ("emacs-find-file-in-project" ,emacs-find-file-in-project)
4739 ("emacs-highlight-indentation" ,emacs-highlight-indentation)
4740 ("emacs-yasnippet" ,emacs-yasnippet)
4741 ("pyvenv" ,emacs-pyvenv)
4742 ("s" ,emacs-s)))
4743 (native-inputs
4744 `(("ert-runner" ,emacs-ert-runner)
4745 ("emacs-f" ,emacs-f)
4746 ("python" ,python-wrapper)
4747 ("python-autopep8" ,python-autopep8)
4748 ("python-black" ,python-black)
4749 ("python-flake8" ,python-flake8)
4750 ("python-jedi" ,python-jedi)
4751 ("python-yapf" ,python-yapf)
4752 ;; For documentation.
4753 ("python-sphinx" ,python-sphinx)
4754 ("texinfo" ,texinfo)))
4755 (home-page "https://github.com/jorgenschaefer/elpy")
4756 (synopsis "Python development environment for Emacs")
4757 (description "Elpy brings powerful Python editing to Emacs. It combines
4758 and configures a number of other packages written in Emacs Lisp as well as
4759 Python, together offering features such as navigation, documentation,
4760 completion, interactive development and more.")
4761 (license license:gpl3+)))
4762
4763 (define-public emacs-rainbow-delimiters
4764 (package
4765 (name "emacs-rainbow-delimiters")
4766 (version "2.1.3")
4767 (source (origin
4768 (method url-fetch)
4769 (uri (string-append "https://raw.githubusercontent.com/Fanael"
4770 "/rainbow-delimiters/" version
4771 "/rainbow-delimiters.el"))
4772 (file-name (string-append "rainbow-delimiters-" version ".el"))
4773 (sha256
4774 (base32
4775 "1b3kampwsjabhcqdp0khgff13wc5jqhy3rbvaa12vnv7qy22l9ck"))))
4776 (build-system emacs-build-system)
4777 (home-page "https://github.com/Fanael/rainbow-delimiters")
4778 (synopsis "Highlight brackets according to their depth")
4779 (description
4780 "Rainbow-delimiters is a \"rainbow parentheses\"-like mode for Emacs which
4781 highlights parentheses, brackets, and braces according to their depth. Each
4782 successive level is highlighted in a different color, making it easy to spot
4783 matching delimiters, orient yourself in the code, and tell which statements
4784 are at a given level.")
4785 (license license:gpl3+)))
4786
4787 (define-public emacs-rainbow-identifiers
4788 (package
4789 (name "emacs-rainbow-identifiers")
4790 (version "0.2.2")
4791 (source (origin
4792 (method url-fetch)
4793 (uri (string-append "https://raw.githubusercontent.com/Fanael"
4794 "/rainbow-identifiers/" version
4795 "/rainbow-identifiers.el"))
4796 (file-name (string-append "rainbow-identifiers-" version ".el"))
4797 (sha256
4798 (base32
4799 "0325abxj47k0g1i8nqrq70w2wr6060ckhhf92krv1s072b3jzm31"))))
4800 (build-system emacs-build-system)
4801 (home-page "https://github.com/Fanael/rainbow-identifiers")
4802 (synopsis "Highlight identifiers in source code")
4803 (description
4804 "Rainbow identifiers mode is an Emacs minor mode providing highlighting of
4805 identifiers based on their names. Each identifier gets a color based on a hash
4806 of its name.")
4807 (license license:bsd-2)))
4808
4809 (define-public emacs-rainbow-mode
4810 (package
4811 (name "emacs-rainbow-mode")
4812 (version "1.0.1")
4813 (source (origin
4814 (method url-fetch)
4815 (uri (string-append
4816 "http://elpa.gnu.org/packages/rainbow-mode-" version ".el"))
4817 (sha256
4818 (base32
4819 "0cpga4ax635rfpj7y2vmh7ank0yw00dcy20gjg1mj74r97by8csf"))))
4820 (build-system emacs-build-system)
4821 (home-page "http://elpa.gnu.org/packages/rainbow-mode.html")
4822 (synopsis "Colorize color names in buffers")
4823 (description
4824 "This minor mode sets background color to strings that match color
4825 names, e.g. #0000ff is displayed in white with a blue background.")
4826 (license license:gpl3+)))
4827
4828 (define-public emacs-visual-fill-column
4829 (package
4830 (name "emacs-visual-fill-column")
4831 (version "1.11")
4832 (source (origin
4833 (method url-fetch)
4834 (uri (string-append "https://codeload.github.com/joostkremers/"
4835 "visual-fill-column/tar.gz/" version))
4836 (file-name (string-append name "-" version ".tar.gz"))
4837 (sha256
4838 (base32
4839 "13jnviakp607zcms7f8ams56mr8wffnq1pghlc6fvqs39663pgwh"))))
4840 (build-system emacs-build-system)
4841 (home-page "https://github.com/joostkremers/visual-fill-column")
4842 (synopsis "Fill-column for visual-line-mode")
4843 (description
4844 "@code{visual-fill-column-mode} is a small Emacs minor mode that mimics
4845 the effect of @code{fill-column} in @code{visual-line-mode}. Instead of
4846 wrapping lines at the window edge, which is the standard behaviour of
4847 @code{visual-line-mode}, it wraps lines at @code{fill-column}. If
4848 @code{fill-column} is too large for the window, the text is wrapped at the
4849 window edge.")
4850 (license license:gpl3+)))
4851
4852 (define-public emacs-writeroom
4853 (package
4854 (name "emacs-writeroom")
4855 (version "3.7")
4856 (source (origin
4857 (method url-fetch)
4858 (uri (string-append
4859 "https://github.com/joostkremers/writeroom-mode/archive/"
4860 version ".tar.gz"))
4861 (file-name (string-append name "-" version ".tar.gz"))
4862 (sha256
4863 (base32
4864 "0yqgp5h3kvvpgva4azakb2wnjl7gsyh45glf75crspv3xyq57f2r"))))
4865 (build-system emacs-build-system)
4866 (propagated-inputs
4867 `(("emacs-visual-fill-column" ,emacs-visual-fill-column)))
4868 (home-page "https://github.com/joostkremers/writeroom-mode")
4869 (synopsis "Distraction-free writing for Emacs")
4870 (description
4871 "This package defines a minor mode for distraction-free writing. Some of
4872 the default effects include entering fullscreen, deleting other windows of the
4873 current frame, disabling the mode line, and adding margins to the buffer that
4874 restrict the text width to 80 characters.")
4875 (license license:bsd-3)))
4876
4877 (define-public emacs-ido-completing-read+
4878 (package
4879 (name "emacs-ido-completing-read+")
4880 (version "3.12")
4881 (source (origin
4882 (method url-fetch)
4883 (uri (string-append "https://raw.githubusercontent.com"
4884 "/DarwinAwardWinner/ido-ubiquitous/v"
4885 version "/ido-completing-read+.el"))
4886 (file-name (string-append "ido-completing-read+-" version ".el"))
4887 (sha256
4888 (base32
4889 "1cyalb0p7nfsm4n6n9q6rjmvn6adqc0fq8ybnlj3n41n289dkfjf"))))
4890 (build-system emacs-build-system)
4891 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
4892 (synopsis "Replacement for completing-read using ido")
4893 (description
4894 "The ido-completing-read+ function is a wrapper for ido-completing-read.
4895 Importantly, it detects edge cases that ordinary ido cannot handle and either
4896 adjusts them so ido can handle them, or else simply falls back to the standard
4897 Emacs completion function instead.")
4898 (license license:gpl3+)))
4899
4900 (define-public emacs-ido-ubiquitous
4901 (package
4902 (name "emacs-ido-ubiquitous")
4903 (version "3.12")
4904 (source (origin
4905 (method url-fetch)
4906 (uri (string-append "https://raw.githubusercontent.com"
4907 "/DarwinAwardWinner/ido-ubiquitous/v"
4908 version "/ido-ubiquitous.el"))
4909 (file-name (string-append "ido-ubiquitous-" version ".el"))
4910 (sha256
4911 (base32
4912 "197ypji0fb6jsdcq40rpnknwlh3imas6s6jbsvkfm0pz9988c3q2"))))
4913 (build-system emacs-build-system)
4914 (propagated-inputs
4915 `(("emacs-ido-completing-read+" ,emacs-ido-completing-read+)))
4916 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
4917 (synopsis "Use ido (nearly) everywhere")
4918 (description
4919 "Ido-ubiquitous enables ido-style completion for almost every function
4920 that uses the standard completion function completing-read.")
4921 (license license:gpl3+)))
4922
4923 (define-public emacs-yaml-mode
4924 (package
4925 (name "emacs-yaml-mode")
4926 (version "0.0.13")
4927 (source (origin
4928 (method url-fetch)
4929 (uri (string-append "https://raw.githubusercontent.com/yoshiki"
4930 "/yaml-mode/v" version "/yaml-mode.el"))
4931 (file-name (string-append "yaml-mode-" version ".el"))
4932 (sha256
4933 (base32
4934 "0im88sk9dqw03x6d6zaspgvg9i0pfpgb8f2zygrmbifh2w4pwmvj"))))
4935 (build-system emacs-build-system)
4936 (home-page "https://github.com/yoshiki/yaml-mode")
4937 (synopsis "Major mode for editing YAML files")
4938 (description
4939 "Yaml-mode is an Emacs major mode for editing files in the YAML data
4940 serialization format. It was initially developed by Yoshiki Kurihara and many
4941 features were added by Marshall Vandegrift. As YAML and Python share the fact
4942 that indentation determines structure, this mode provides indentation and
4943 indentation command behavior very similar to that of python-mode.")
4944 (license license:gpl3+)))
4945
4946 (define-public emacs-web-mode
4947 (package
4948 (name "emacs-web-mode")
4949 (version "16")
4950 (source (origin
4951 (method url-fetch)
4952 (uri (string-append "https://raw.githubusercontent.com/fxbois"
4953 "/web-mode/v" version "/web-mode.el"))
4954 (file-name (string-append "web-mode-" version ".el"))
4955 (sha256
4956 (base32
4957 "1hs5w7kdvcyn4ihyw1kfjg48djn5p7lz4rlbhzzdqv1g56xqx3gw"))))
4958 (build-system emacs-build-system)
4959 (synopsis "Major mode for editing web templates")
4960 (description "Web-mode is an Emacs major mode for editing web templates
4961 aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by
4962 client/server side engines). Web-mode is compatible with many template
4963 engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker,
4964 Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template,
4965 Dust.js, React/JSX, Angularjs, ejs, etc.")
4966 (home-page "http://web-mode.org/")
4967 (license license:gpl3+)))
4968
4969 (define-public emacs-wgrep
4970 (let ((commit "414be70bd313e482cd9f0b70fd2daad4ee23497c"))
4971 ;; Late commit fixes compatibility issue with Emacs 26+.
4972 (package
4973 (name "emacs-wgrep")
4974 (version (git-version "2.1.10" "1" commit))
4975 (source (origin
4976 (method git-fetch)
4977 (uri (git-reference
4978 (url "https://github.com/mhayashi1120/Emacs-wgrep")
4979 (commit commit)))
4980 (file-name (git-file-name name version))
4981 (sha256
4982 (base32
4983 "1sdhd587q3pg92lhiayph87azhalmf1gzrnsprkmqvnphv7mvks9"))))
4984 (build-system emacs-build-system)
4985 (home-page "https://github.com/mhayashi1120/Emacs-wgrep")
4986 (synopsis "Edit a grep buffer and apply those changes to the files")
4987 (description
4988 "Emacs wgrep allows you to edit a grep buffer and apply those changes
4989 to the file buffer. Several backends are supported beside the classic grep:
4990 ack, ag, helm and pt.")
4991 (license license:gpl3+))))
4992
4993 (define-public emacs-helm
4994 (package
4995 (name "emacs-helm")
4996 (version "3.1")
4997 (source (origin
4998 (method url-fetch)
4999 (uri (string-append
5000 "https://github.com/" name "/helm/archive/v"
5001 version ".tar.gz"))
5002 (file-name (string-append name "-" version ".tar.gz"))
5003 (sha256
5004 (base32
5005 "0ymykcsbcgq2kskqc0ddigg0kfznxx3j02mkd5r3c3n8gn3kgz84"))))
5006 (build-system emacs-build-system)
5007 (propagated-inputs
5008 `(("emacs-async" ,emacs-async)
5009 ("emacs-popup" ,emacs-popup)))
5010 (home-page "https://emacs-helm.github.io/helm/")
5011 (synopsis "Incremental completion and selection narrowing
5012 framework for Emacs")
5013 (description "Helm is incremental completion and selection narrowing
5014 framework for Emacs. It will help steer you in the right direction when
5015 you're looking for stuff in Emacs (like buffers, files, etc). Helm is a fork
5016 of @code{anything.el} originally written by Tamas Patrovic and can be
5017 considered to be its successor. Helm sets out to clean up the legacy code in
5018 @code{anything.el} and provide a cleaner, leaner and more modular tool, that's
5019 not tied in the trap of backward compatibility.")
5020 (license license:gpl3+)))
5021
5022 (define-public emacs-helm-swoop
5023 (package
5024 (name "emacs-helm-swoop")
5025 (version "1.7.4")
5026 (source (origin
5027 (method url-fetch)
5028 (uri (string-append
5029 "https://github.com/ShingoFukuyama/helm-swoop/archive/"
5030 version
5031 ".tar.gz"))
5032 (file-name (string-append name "-" version ".tar.gz"))
5033 (sha256
5034 (base32
5035 "1ssivsjzlnkg049cg993l8fp09l5nhpz6asj7w5c91zp5kpc6fh7"))))
5036 (build-system emacs-build-system)
5037 (propagated-inputs
5038 `(("emacs-helm" ,emacs-helm)))
5039 (home-page "https://github.com/ShingoFukuyama/helm-swoop")
5040 (synopsis "Filter and jump to lines in an Emacs buffer using Helm")
5041 (description
5042 "This package builds on the Helm interface to provide several commands
5043 for search-based navigation of buffers.")
5044 (license license:gpl2+)))
5045
5046 (define-public emacs-helm-projectile
5047 (package
5048 (name "emacs-helm-projectile")
5049 (version "0.14.0")
5050 (source (origin
5051 (method url-fetch)
5052 (uri (string-append
5053 "https://github.com/bbatsov/helm-projectile/archive/v"
5054 version
5055 ".tar.gz"))
5056 (file-name (string-append name "-" version ".tar.gz"))
5057 (sha256
5058 (base32
5059 "19cfmilqh8kbab3b2hmx6lyrj73q6vfmn3p730x95g23iz16mnd5"))))
5060 (build-system emacs-build-system)
5061 (propagated-inputs
5062 `(("emacs-dash" ,emacs-dash)
5063 ("emacs-helm" ,emacs-helm)
5064 ("emacs-projectile" ,emacs-projectile)))
5065 (home-page "https://github.com/bbatsov/helm-projectile")
5066 (synopsis "Helm integration for Projectile")
5067 (description
5068 "This Emacs library provides a Helm interface for Projectile.")
5069 (license license:gpl3+)))
5070
5071 (define-public emacs-helm-make
5072 (let ((commit "feae8df22bc4b20705ea08ac9adfc2b43bb348d0")
5073 (revision "1"))
5074 (package
5075 (name "emacs-helm-make")
5076 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
5077 (source
5078 (origin
5079 (method git-fetch)
5080 (uri (git-reference
5081 (url "https://github.com/abo-abo/helm-make.git")
5082 (commit commit)))
5083 (file-name (string-append name "-" version "-checkout"))
5084 (sha256
5085 (base32
5086 "1y2v77mmd1bfkkz51cnk1l0dg3lvvxc39wlamnm7wjns66dbvlam"))))
5087 (build-system emacs-build-system)
5088 (propagated-inputs
5089 `(("emacs-helm" ,emacs-helm)
5090 ("emacs-projectile" ,emacs-projectile)))
5091 (home-page "https://github.com/abo-abo/helm-make")
5092 (synopsis "Select a Makefile target with helm")
5093 (description "@code{helm-make} or @code{helm-make-projectile} will give
5094 you a @code{helm} selection of directory Makefile's targets. Selecting a
5095 target will call @code{compile} on it.")
5096 (license license:gpl3+))))
5097
5098 (define-public emacs-cider
5099 (package
5100 (name "emacs-cider")
5101 (version "0.20.0")
5102 (source
5103 (origin
5104 (method git-fetch)
5105 (uri (git-reference
5106 (url "https://github.com/clojure-emacs/cider.git")
5107 (commit (string-append "v" version))))
5108 (file-name (git-file-name name version))
5109 (sha256
5110 (base32
5111 "0lfhzg9c931jbx27hpshk3l76gwbp6ggf668sqa77xrvymwdlsnw"))))
5112 (build-system emacs-build-system)
5113 (arguments
5114 '(#:exclude ; Don't exclude 'cider-test.el'.
5115 '("^\\.dir-locals\\.el$" "^test/")))
5116 (propagated-inputs
5117 `(("emacs-clojure-mode" ,emacs-clojure-mode)
5118 ("emacs-sesman" ,emacs-sesman)
5119 ("emacs-spinner" ,emacs-spinner)
5120 ("emacs-pkg-info" ,emacs-pkg-info)
5121 ("emacs-queue" ,emacs-queue)))
5122 (home-page "https://cider.readthedocs.io/")
5123 (synopsis "Clojure development environment for Emacs")
5124 (description
5125 "CIDER (Clojure Interactive Development Environment that Rocks) aims to
5126 provide an interactive development experience similar to the one you'd get
5127 when programming in Emacs Lisp, Common Lisp (with SLIME or Sly), Scheme (with
5128 Geiser) and Smalltalk.
5129
5130 CIDER is the successor to the now deprecated combination of using SLIME +
5131 swank-clojure for Clojure development.
5132
5133 There are plenty of differences between CIDER and SLIME, but the core ideas
5134 are pretty much the same (and SLIME served as the principle inspiration for
5135 CIDER).")
5136 (license license:gpl3+)))
5137
5138 ;; There hasn't been a tag or release since 2015, so we take the latest
5139 ;; commit.
5140 (define-public emacs-sly
5141 (let ((commit "486bfbe95612bcdc0960c490207970a188e0fbb9")
5142 (revision "1"))
5143 (package
5144 (name "emacs-sly")
5145 (version (string-append "1.0.0-" revision "." (string-take commit 9)))
5146 (source
5147 (origin
5148 (method git-fetch)
5149 (uri (git-reference
5150 (url "https://github.com/joaotavora/sly.git")
5151 (commit commit)))
5152 (file-name (git-file-name name version))
5153 (sha256
5154 (base32
5155 "0ib4q4k3h3qn88pymyjjmlmnpizdn1mfg5gpk5a715nqsgxlg09l"))))
5156 (build-system emacs-build-system)
5157 (arguments
5158 `(#:include (cons "^lib\\/" %default-include)
5159 #:phases
5160 ;; The package provides autoloads.
5161 (modify-phases %standard-phases
5162 (delete 'make-autoloads))))
5163 (home-page "https://github.com/joaotavora/sly")
5164 (synopsis "Sylvester the Cat's Common Lisp IDE")
5165 (description
5166 "SLY is Sylvester the Cat's Common Lisp IDE. SLY is a fork of SLIME, and
5167 contains the following improvements over it:
5168
5169 @enumerate
5170 @item Completely redesigned REPL based on Emacs's own full-featured
5171 @code{comint.el}
5172 @item Live code annotations via a new @code{sly-stickers} contrib
5173 @item Consistent interactive button interface. Everything can be copied to
5174 the REPL.
5175 @item Multiple inspectors with independent history
5176 @item Regexp-capable @code{M-x sly-apropos}
5177 @item Contribs are first class SLY citizens and enabled by default
5178 @item Use ASDF to loads contribs on demand.
5179 @end enumerate
5180
5181 SLY tracks SLIME's bugfixes and all its familar features (debugger, inspector,
5182 xref, etc...) are still available, but with better integration.")
5183 (license license:gpl3+))))
5184
5185 (define-public emacs-lua-mode
5186 (let ((commit "652e299cb967fccca827dda381d61a9c144d97de")
5187 (revision "1"))
5188 (package
5189 (name "emacs-lua-mode")
5190 (version (string-append "20151025." revision "-" (string-take commit 9)))
5191 (home-page "https://github.com/immerrr/lua-mode/")
5192 (source (origin
5193 (method git-fetch)
5194 (uri (git-reference
5195 (url home-page)
5196 (commit commit)))
5197 (file-name (string-append name "-" version ".checkout"))
5198 (sha256
5199 (base32
5200 "053025k930wh0lak6rc1973ynfrmm8zsyzfqhhd39x7abkl41hc9"))))
5201 (build-system emacs-build-system)
5202 (synopsis "Major mode for lua")
5203 (description
5204 "This Emacs package provides a mode for @uref{https://www.lua.org/,
5205 Lua programing language}.")
5206 (license license:gpl2+))))
5207
5208 (define-public emacs-ebuild-mode
5209 (package
5210 (name "emacs-ebuild-mode")
5211 (version "1.37")
5212 (source (origin
5213 (method url-fetch)
5214 (uri (string-append
5215 "https://dev.gentoo.org/~ulm/emacs/ebuild-mode"
5216 "-" version ".tar.xz"))
5217 (file-name (string-append name "-" version ".tar.xz"))
5218 (sha256
5219 (base32
5220 "07dzrdjjczkxdfdgi60h4jjkvzi4p0k9rij2wpfp8s03ay3qldpp"))))
5221 (build-system emacs-build-system)
5222 (home-page "https://devmanual.gentoo.org")
5223 (synopsis "Major modes for Gentoo package files")
5224 (description
5225 "This Emacs package provides modes for ebuild, eclass, eblit, GLEP42
5226 news items, openrc and runscripts.")
5227 (license license:gpl2+)))
5228
5229 (define-public emacs-evil
5230 (package
5231 (name "emacs-evil")
5232 (version "1.2.14")
5233 (source
5234 (origin
5235 (method git-fetch)
5236 (uri (git-reference
5237 (url "https://github.com/emacs-evil/evil")
5238 (commit version)))
5239 (file-name (string-append name "-" version "-checkout"))
5240 (sha256
5241 (base32
5242 "1833w397xhac5g3pp25szr2gyvclxy91aw27azvbmsx94pyk2a3q"))))
5243 (build-system emacs-build-system)
5244 (propagated-inputs
5245 `(("emacs-undo-tree" ,emacs-undo-tree)
5246 ("emacs-goto-chg" ,emacs-goto-chg)))
5247 (home-page "https://github.com/emacs-evil/evil")
5248 (synopsis "Extensible Vi layer for Emacs")
5249 (description
5250 "Evil is an extensible vi layer for Emacs. It emulates the
5251 main features of Vim, and provides facilities for writing custom
5252 extensions.")
5253 (license license:gpl3+)))
5254
5255 (define-public emacs-evil-collection
5256 (let ((commit "e7b57aae0131634d0da5e599717a86c4b3ca6092")
5257 (revision "7"))
5258 (package
5259 (name "emacs-evil-collection")
5260 (version (git-version "0.0.1" revision commit))
5261 (source (origin
5262 (method git-fetch)
5263 (uri (git-reference
5264 (url "https://github.com/emacs-evil/evil-collection")
5265 (commit commit)))
5266 (file-name (string-append name "-" version "-checkout"))
5267 (sha256
5268 (base32
5269 "1g7bxvgnsikpxxdimy0lymn3xz53fari048l827sjyw5kxi59d20"))))
5270 (build-system emacs-build-system)
5271 (propagated-inputs
5272 `(("emacs-evil" ,emacs-evil)))
5273 (home-page "https://github.com/emacs-evil/evil-collection")
5274 (synopsis "Collection of Evil bindings for many major and minor modes")
5275 (description "This is a collection of Evil bindings for the parts of
5276 Emacs that Evil does not cover properly by default, such as @code{help-mode},
5277 @code{M-x calendar}, Eshell and more.")
5278 (license license:gpl3+))))
5279
5280 (define-public emacs-goto-chg
5281 (package
5282 (name "emacs-goto-chg")
5283 (version "1.6")
5284 (source
5285 (origin
5286 (method url-fetch)
5287 ;; There is no versioned source.
5288 (uri "https://www.emacswiki.org/emacs/download/goto-chg.el")
5289 (file-name (string-append "goto-chg-" version ".el"))
5290 (sha256
5291 (base32
5292 "078d6p4br5vips7b9x4v6cy0wxf6m5ij9gpqd4g33bryn22gnpij"))))
5293 (build-system emacs-build-system)
5294 ;; There is no other home page.
5295 (home-page "https://www.emacswiki.org/emacs/goto-chg.el")
5296 (synopsis "Go to the last change in the Emacs buffer")
5297 (description
5298 "This package provides @code{M-x goto-last-change} command that goes to
5299 the point of the most recent edit in the current Emacs buffer. When repeated,
5300 go to the second most recent edit, etc. Negative argument, @kbd{C-u -}, is
5301 used for reverse direction.")
5302 (license license:gpl2+)))
5303
5304 (define-public emacs-monroe
5305 (package
5306 (name "emacs-monroe")
5307 (version "0.3.1")
5308 (source
5309 (origin
5310 (method url-fetch)
5311 (uri (string-append "https://github.com/sanel/monroe/archive/"
5312 version ".tar.gz"))
5313 (file-name (string-append name "-" version ".tar.gz"))
5314 (sha256
5315 (base32
5316 "0icdx8shkd951phlnmcq1vqaxp1l667q5rjscskc5r22aylakh4w"))))
5317 (build-system emacs-build-system)
5318 (home-page "https://github.com/sanel/monroe")
5319 (synopsis "Clojure nREPL client for Emacs")
5320 (description
5321 "Monroe is a nREPL client for Emacs, focused on simplicity and easy
5322 distribution, primarily targeting Clojure users")
5323 (license license:gpl3+)))
5324
5325 (define-public emacs-orgalist
5326 (package
5327 (name "emacs-orgalist")
5328 (version "1.9")
5329 (source
5330 (origin
5331 (method url-fetch)
5332 (uri (string-append "https://elpa.gnu.org/packages/"
5333 "orgalist-" version ".el"))
5334 (sha256
5335 (base32
5336 "1rmmcyiiqkq54hn74nhzxzl4nvd902hv6gq341jwhrm7yiagffi6"))))
5337 (build-system emacs-build-system)
5338 (home-page "http://elpa.gnu.org/packages/orgalist.html")
5339 (synopsis "Manage Org-like lists in non-Org buffers")
5340 (description "Write Org mode's plain lists in non-Org buffers. More
5341 specifically, Orgalist supports the syntax of Org mode for numbered,
5342 unnumbered, description items, checkboxes, and counter cookies.
5343
5344 The library also implements radio lists, i.e., lists written in Org
5345 syntax later translated into the host format, e.g., LaTeX or HTML.")
5346 (license license:gpl3+)))
5347
5348 (define-public emacs-writegood-mode
5349 (package
5350 (name "emacs-writegood-mode")
5351 (version "2.0.2")
5352 (home-page "https://github.com/bnbeckwith/writegood-mode")
5353 (source (origin
5354 (method git-fetch)
5355 (uri (git-reference
5356 (url home-page)
5357 (commit (string-append "v" version))))
5358 (sha256
5359 (base32
5360 "1nnjn1r669hvvzfycllwap4w04m8rfsk4nzcg8057m1f263kj31b"))
5361 (file-name (string-append name "-checkout"))))
5362 (build-system emacs-build-system)
5363 (synopsis "Polish up poor writing on the fly")
5364 (description
5365 "This minor mode tries to find and highlight problems with your writing
5366 in English as you type. It primarily detects \"weasel words\" and abuse of
5367 passive voice.")
5368 (license license:gpl3+)))
5369
5370 (define-public emacs-neotree
5371 (package
5372 (name "emacs-neotree")
5373 (version "0.5.2")
5374 (home-page "https://github.com/jaypei/emacs-neotree")
5375 (source (origin
5376 (method url-fetch)
5377 (uri (string-append
5378 "https://github.com/jaypei/" name
5379 "/archive/" version ".tar.gz"))
5380 (sha256
5381 (base32
5382 "1zd6dchwyijnf7kgchfcp51gs938l204dk9z6mljrfqf2zy0gp12"))
5383 (file-name (string-append name "-" version ".tar.gz"))))
5384 (build-system emacs-build-system)
5385 (synopsis "Folder tree view for Emacs")
5386 (description "This Emacs package provides a folder tree view.")
5387 (license license:gpl3+)))
5388
5389 (define-public emacs-org
5390 (package
5391 (name "emacs-org")
5392 ;; emacs-org-contrib inherits from this package. Please update its sha256
5393 ;; checksum as well.
5394 (version "9.2.2")
5395 (source (origin
5396 (method url-fetch)
5397 (uri (string-append "http://elpa.gnu.org/packages/org-"
5398 version ".tar"))
5399 (sha256
5400 (base32
5401 "02fq3x4haady2vagg9b363ynsrxzpijfp420qhciy7x8y7m89abw"))))
5402 (build-system emacs-build-system)
5403 (home-page "https://orgmode.org/")
5404 (synopsis "Outline-based notes management and organizer")
5405 (description "Org is an Emacs mode for keeping notes, maintaining TODO
5406 lists, and project planning with a fast and effective lightweight markup
5407 language. It also is an authoring system with unique support for literate
5408 programming and reproducible research.")
5409 (license license:gpl3+)))
5410
5411 (define-public emacs-org-contrib
5412 (package
5413 (inherit emacs-org)
5414 (name "emacs-org-contrib")
5415 (version "20190311")
5416 (source (origin
5417 (method url-fetch)
5418 (uri (string-append "https://orgmode.org/elpa/org-plus-contrib-"
5419 version ".tar"))
5420 (sha256
5421 (base32
5422 "189p0f70j7z3hh72ay8cxa9n8xkcj06dlw765fwnqd2mm72vx0nb"))))
5423 (arguments
5424 `(#:modules ((guix build emacs-build-system)
5425 (guix build utils)
5426 (guix build emacs-utils)
5427 (ice-9 ftw)
5428 (srfi srfi-1))
5429 #:phases
5430 (modify-phases %standard-phases
5431 (add-after 'install 'delete-org-files
5432 (lambda* (#:key inputs outputs #:allow-other-keys)
5433 (let* ((out (assoc-ref outputs "out"))
5434 (org (assoc-ref inputs "org"))
5435 (contrib-files
5436 (map basename (find-files out)))
5437 (org+contrib-files
5438 (map basename (find-files org)))
5439 (duplicates (lset-intersection
5440 string=? contrib-files org+contrib-files)))
5441 (with-directory-excursion
5442 (string-append
5443 out "/share/emacs/site-lisp/guix.d/org-contrib-" ,version)
5444 (for-each delete-file duplicates))
5445 #t))))))
5446 (propagated-inputs
5447 `(("arduino-mode" ,emacs-arduino-mode)
5448 ("cider" ,emacs-cider)
5449 ("org" ,emacs-org)
5450 ("scel" ,emacs-scel)))
5451 (synopsis "Contributed packages to Org mode")
5452 (description "Org is an Emacs mode for keeping notes, maintaining TODO
5453 lists, and project planning with a fast and effective plain-text system.
5454
5455 This package is equivalent to org-plus-contrib, but only includes additional
5456 files that you would find in @file{contrib/} from the git repository.")))
5457
5458 (define-public emacs-flx
5459 (package
5460 (name "emacs-flx")
5461 (version "0.6.1")
5462 (source
5463 (origin
5464 (method url-fetch)
5465 (uri (string-append "https://github.com/lewang/"
5466 "flx/archive/v" version ".tar.gz"))
5467 (sha256
5468 (base32
5469 "0bkcpnf1j4i2fcc2rllwbz62l00sw2mcia6rm5amgwvlkqavmkv6"))
5470 (file-name (string-append name "-" version ".tar.gz"))))
5471 (build-system emacs-build-system)
5472 (home-page "https://github.com/lewang/flx")
5473 (synopsis "Fuzzy matching for Emacs")
5474 (description
5475 "Flx provides fuzzy matching for emacs a la sublime text.
5476 The sorting algorithm is a balance between word beginnings (abbreviation)
5477 and contiguous matches (substring). The longer the substring match,
5478 the higher it scores. This maps well to how we think about matching.
5479 Flx has support for ido (interactively do things) through flx-ido.")
5480 (license license:gpl3+)))
5481
5482 (define-public emacs-cyberpunk-theme
5483 (package
5484 (name "emacs-cyberpunk-theme")
5485 (version "1.19")
5486 (source
5487 (origin
5488 (method url-fetch)
5489 (uri (string-append "https://github.com/n3mo/cyberpunk-theme.el/"
5490 "archive/" version ".tar.gz"))
5491 (sha256
5492 (base32
5493 "05l5fxw1mn5py6mfhxrzyqjq0d8m5m1akfi46vrgh13r414jffvv"))
5494 (file-name (string-append name "-" version ".tar.gz"))))
5495 (build-system emacs-build-system)
5496 (home-page "https://github.com/n3mo/cyberpunk-theme.el")
5497 (synopsis "Cyberpunk theme for emacs built-in color theme support")
5498 (description
5499 "Cyberpunk color theme for the emacs 24+ built-in color theme support
5500 known loosely as deftheme. Many mode-specific customizations are included.")
5501 (license license:gpl3+)))
5502
5503 (define-public emacs-danneskjold-theme
5504 (let* ((commit "8733d2fe8743e8a01826ea6d4430ef376c727e57")
5505 (revision "1"))
5506 (package
5507 (name "emacs-danneskjold-theme")
5508 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
5509 (home-page "https://github.com/rails-to-cosmos/danneskjold-theme")
5510 (source
5511 (origin
5512 (method git-fetch)
5513 (uri (git-reference
5514 (url home-page)
5515 (commit commit)))
5516 (file-name (string-append name "-" version "-checkout"))
5517 (sha256
5518 (base32
5519 "0s6rbsb0y8i8m5b9xm4gw1p1cxsxdqnqxqqb638pygz9f76mbir1"))))
5520 (build-system emacs-build-system)
5521 (arguments
5522 `(#:phases
5523 (modify-phases %standard-phases
5524 (add-after 'unpack 'delete-screenshots
5525 (lambda _
5526 (delete-file-recursively "screenshots") #t)))))
5527 (synopsis "High-contrast Emacs theme")
5528 (description
5529 "@code{danneskjold-theme} is a high-contrast theme for Emacs.")
5530 (license license:gpl3+))))
5531
5532 (define-public emacs-dream-theme
5533 (let* ((commit "107a11d74365046f28a1802a2bdb5e69e4a7488b")
5534 (revision "1"))
5535 (package
5536 (name "emacs-dream-theme")
5537 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
5538 (source
5539 (origin
5540 (method git-fetch)
5541 (uri (git-reference
5542 (url "https://github.com/djcb/dream-theme")
5543 (commit commit)))
5544 (file-name (string-append name "-" version "-checkout"))
5545 (sha256
5546 (base32
5547 "0za18nfkq4xqm35k6006vsixcbmvmxqgma4iw5sw37h8vmcsdylk"))))
5548 (build-system emacs-build-system)
5549 (home-page "https://github.com/djcb/dream-theme")
5550 (synopsis "High-contrast Emacs theme")
5551 (description
5552 "@code{dream-theme} is a dark, clean theme for Emacs. It is inspired
5553 by zenburn, sinburn and similar themes, but slowly diverging from them.")
5554 (license license:gpl3+))))
5555
5556 (define-public emacs-auto-complete
5557 (package
5558 (name "emacs-auto-complete")
5559 (version "1.5.1")
5560 (source
5561 (origin
5562 (method url-fetch)
5563 (uri (string-append "https://github.com/auto-complete/"
5564 "auto-complete/archive/v" version ".tar.gz"))
5565 (sha256
5566 (base32
5567 "1jvq4lj00hwml75lpmlciazy8f3bbg13gffsfnl835p4qd8l7yqv"))
5568 (file-name (string-append name "-" version ".tar.gz"))))
5569 (build-system emacs-build-system)
5570 (propagated-inputs
5571 `(("emacs-popup" ,emacs-popup)))
5572 (home-page "https://github.com/auto-complete/auto-complete")
5573 (synopsis "Intelligent auto-completion extension for Emacs")
5574 (description
5575 "Auto-Complete is an intelligent auto-completion extension for Emacs.
5576 It extends the standard Emacs completion interface and provides an environment
5577 that allows users to concentrate more on their own work. Its features are:
5578 a visual interface, reduce overhead of completion by using statistic method,
5579 extensibility.")
5580 (license license:gpl3+)))
5581
5582 (define-public emacs-nginx-mode
5583 (package
5584 (name "emacs-nginx-mode")
5585 (version "1.1.9")
5586 (source
5587 (origin
5588 (method url-fetch)
5589 (uri (string-append
5590 "https://github.com/ajc/nginx-mode/archive/v"
5591 version ".tar.gz"))
5592 (file-name (string-append name "-" version ".tar.gz"))
5593 (sha256
5594 (base32
5595 "0bzyrj6zz1hm67bkhw23bam7qc869s3zg7m1rb1c3aa4n0aw90cq"))))
5596 (build-system emacs-build-system)
5597 (home-page "https://github.com/ajc/nginx-mode")
5598 (synopsis "Emacs major mode for editing nginx config files")
5599 (description "This package provides an Emacs major mode for
5600 editing nginx config files.")
5601 (license license:gpl2+)))
5602
5603 (define-public emacs-stream
5604 (package
5605 (name "emacs-stream")
5606 (version "2.2.0")
5607 (home-page "https://github.com/NicolasPetton/stream")
5608 (source
5609 (origin
5610 (method url-fetch)
5611 (file-name (string-append name "-" version ".tar.gz"))
5612 (uri (string-append home-page "/archive/"version ".tar.gz"))
5613 (sha256
5614 (base32 "03ql4nqfz5pn55mjly6clhvc3g7x2d28kj7mrlqmigvjbql39xxc"))))
5615 (build-system emacs-build-system)
5616 (synopsis "Implementation of streams for Emacs")
5617 (description "This library provides an implementation of streams for Emacs.
5618 Streams are implemented as delayed evaluation of cons cells.")
5619 (license license:gpl3+)))
5620
5621 (define-public emacs-el-search
5622 (let ((commit "f26277bfbb3fc3fc74beea6592f294c439796bd4")
5623 (revision "1"))
5624 (package
5625 (name "emacs-el-search")
5626 ;; No ufficial release.
5627 (version (string-append "0.0-" revision "." (string-take commit 7)))
5628 (home-page "https://github.com/emacsmirror/el-search")
5629 (source
5630 (origin
5631 (method git-fetch)
5632 (file-name (string-append name "-" version ".tar.gz"))
5633 (uri (git-reference
5634 (commit commit)
5635 (url (string-append home-page ".git"))))
5636 (sha256
5637 (base32 "12xf40h9sb7xxg2r97gsia94q02543mgiiiw46fzh1ac7b7993g6"))))
5638 (build-system emacs-build-system)
5639 (inputs `(("emacs-stream" ,emacs-stream)))
5640 (synopsis "Expression based interactive search for emacs-lisp-mode")
5641 (description "This package provides expression based interactive search
5642 procedures for emacs-lisp-mode.")
5643 (license license:gpl3+))))
5644
5645 (define-public emacs-ht
5646 (package
5647 (name "emacs-ht")
5648 (version "2.2")
5649 (source
5650 (origin
5651 (method url-fetch)
5652 (uri (string-append
5653 "https://github.com/Wilfred/ht.el/archive/"
5654 version ".tar.gz"))
5655 (file-name (string-append name "-" version ".tar.gz"))
5656 (sha256
5657 (base32
5658 "0fsi27gdrh2dgwdbq43vnw5sz25war6shlxaclr60fl7krpxjkzf"))))
5659 (build-system emacs-build-system)
5660 (propagated-inputs `(("emacs-dash" ,emacs-dash)))
5661 (home-page "https://github.com/Wilfred/ht.el")
5662 (synopsis "Hash table library for Emacs")
5663 (description
5664 "This package simplifies the use of hash tables in elisp. It also
5665 provides functions to convert hash tables from and to alists and plists.")
5666 (license license:gpl3+)))
5667
5668 (define-public emacs-log4e
5669 (package
5670 (name "emacs-log4e")
5671 (version "0.3.0")
5672 (source
5673 (origin
5674 (method url-fetch)
5675 (uri (string-append
5676 "https://github.com/aki2o/log4e/archive/v"
5677 version ".tar.gz"))
5678 (file-name (string-append name "-" version ".tar.gz"))
5679 (sha256
5680 (base32
5681 "0nbdpbw353snda3v19l9hsm6gimppwnpxj18amm350bm81lyim2g"))))
5682 (build-system emacs-build-system)
5683 (arguments
5684 `(#:phases
5685 (modify-phases %standard-phases
5686 (add-after 'unpack 'remove-tests
5687 ;; Guile builder complains about null characters in some
5688 ;; strings of test files. Remove "test" directory (it is not
5689 ;; needed anyway).
5690 (lambda _
5691 (delete-file-recursively "test"))))))
5692 (home-page "https://github.com/aki2o/log4e")
5693 (synopsis "Logging framework for elisp")
5694 (description
5695 "This package provides a logging framework for elisp. It allows
5696 you to deal with multiple log levels.")
5697 (license license:gpl3+)))
5698
5699 (define-public emacs-gntp
5700 (package
5701 (name "emacs-gntp")
5702 (version "0.1")
5703 (source
5704 (origin
5705 (method url-fetch)
5706 (uri (string-append
5707 "https://github.com/tekai/gntp.el/archive/v"
5708 version ".tar.gz"))
5709 (file-name (string-append name "-" version ".tar.gz"))
5710 (sha256
5711 (base32
5712 "16c1dfkia9yhl206bdhjr3b8kfvqcqr38jl5lq8qsyrrzsnmghny"))))
5713 (build-system emacs-build-system)
5714 (home-page "https://github.com/tekai/gntp.el")
5715 (synopsis "Growl Notification Protocol for Emacs")
5716 (description
5717 "This package implements the Growl Notification Protocol GNTP
5718 described at @uref{http://www.growlforwindows.com/gfw/help/gntp.aspx}.
5719 It is incomplete as it only lets you send but not receive
5720 notifications.")
5721 (license license:bsd-3)))
5722
5723 (define-public emacs-alert
5724 (package
5725 (name "emacs-alert")
5726 (version "1.2")
5727 (source
5728 (origin
5729 (method url-fetch)
5730 (uri (string-append
5731 "https://github.com/jwiegley/alert/archive/v"
5732 version ".tar.gz"))
5733 (file-name (string-append name "-" version ".tar.gz"))
5734 (sha256
5735 (base32
5736 "1693kck3k2iz5zhpmxwqyafxm68hr6gzs60lkxd3j1wlp2c9fwyr"))))
5737 (build-system emacs-build-system)
5738 (propagated-inputs
5739 `(("emacs-gntp" ,emacs-gntp)
5740 ("emacs-log4e" ,emacs-log4e)))
5741 (home-page "https://github.com/jwiegley/alert")
5742 (synopsis "Growl-style notification system for Emacs")
5743 (description
5744 "Alert is a Growl-workalike for Emacs which uses a common notification
5745 interface and multiple, selectable \"styles\", whose use is fully
5746 customizable by the user.")
5747 (license license:gpl2+)))
5748
5749 (define-public emacs-mu4e-alert
5750 (package
5751 (name "emacs-mu4e-alert")
5752 (version "1.0")
5753 (source
5754 (origin
5755 (method url-fetch)
5756 (uri (string-append
5757 "https://github.com/iqbalansari/mu4e-alert/archive/v"
5758 version ".tar.gz"))
5759 (file-name (string-append name "-" version ".tar.gz"))
5760 (sha256
5761 (base32
5762 "07qc834qnxn8xi4bw5nawj8g91bmkzw0r0vahkgysp7r9xrf57gj"))))
5763 (build-system emacs-build-system)
5764 (propagated-inputs
5765 `(("emacs-alert" ,emacs-alert)
5766 ("emacs-s" ,emacs-s)
5767 ("emacs-ht" ,emacs-ht)
5768 ("mu" ,mu)))
5769 (home-page "https://github.com/iqbalansari/mu4e-alert")
5770 (synopsis "Desktop notification for mu4e")
5771 (description
5772 "This package provides desktop notifications for mu4e.
5773 Additionally it can display the number of unread emails in the
5774 mode-line.")
5775 (license license:gpl3+)))
5776
5777 (define-public emacs-pretty-mode
5778 (package
5779 (name "emacs-pretty-mode")
5780 (version "2.0.3")
5781 (source
5782 (origin
5783 (method url-fetch)
5784 (uri (string-append "https://github.com/akatov/pretty-mode/"
5785 "archive/" version ".tar.gz"))
5786 (file-name (string-append name "-" version ".tar.gz"))
5787 (sha256
5788 (base32
5789 "1fan7m4vnqs8kpg7r54kx3g7faadkpkf9kzarfv8n57kq8w157pl"))))
5790 (build-system emacs-build-system)
5791 (home-page "https://github.com/akatov/pretty-mode")
5792 (synopsis "Redisplay parts of the buffer as Unicode symbols")
5793 (description
5794 "Emacs minor mode for redisplaying parts of the buffer as pretty symbols.")
5795 (license license:gpl3+)))
5796
5797 (define-public emacs-yasnippet
5798 (package
5799 (name "emacs-yasnippet")
5800 (version "0.13.0")
5801 (source (origin
5802 (method url-fetch)
5803 (uri (string-append "https://github.com/joaotavora/yasnippet/"
5804 "archive/" version ".tar.gz"))
5805 (file-name (string-append name "-" version ".tar.gz"))
5806 (sha256
5807 (base32
5808 "12ls2x17agzbrj1xynjbmfa11igqxia4hj4fv6fpr66yci2r1plc"))
5809 (modules '((guix build utils)))
5810 (snippet
5811 '(begin
5812 ;; YASnippet expects a "snippets" subdirectory in the same
5813 ;; directory as yasnippet.el, but we don't install it
5814 ;; because it's a git submodule pointing to an external
5815 ;; repository. Adjust `yas-snippet-dirs' to prevent
5816 ;; warnings about a missing directory.
5817 (substitute* "yasnippet.el"
5818 (("^ +'yas-installed-snippets-dir\\)\\)\n")
5819 "))\n"))
5820 #t))))
5821 (build-system emacs-build-system)
5822 (home-page "https://github.com/joaotavora/yasnippet")
5823 (synopsis "Yet another snippet extension for Emacs")
5824 (description
5825 "YASnippet is a template system for Emacs. It allows you to type an
5826 abbreviation and automatically expand it into function templates.")
5827 (license license:gpl3+)))
5828
5829 (define-public emacs-yasnippet-snippets
5830 (let ((commit "885050d34737e2fb36a3e7759d60c09347bd4ce0")
5831 (revision "1"))
5832 (package
5833 (name "emacs-yasnippet-snippets")
5834 (version (string-append "1-" revision "." (string-take commit 8)))
5835 (source
5836 (origin
5837 (method git-fetch)
5838 (uri (git-reference
5839 (url "https://github.com/AndreaCrotti/yasnippet-snippets")
5840 (commit commit)))
5841 (file-name (string-append name "-" version "-checkout"))
5842 (sha256
5843 (base32
5844 "1m935zgglw0iakzrixld5rcjz3wnj84f8wy2mvc3pggjri9l0qr9"))))
5845 (build-system trivial-build-system)
5846 (arguments
5847 `(#:modules ((ice-9 ftw)
5848 (ice-9 regex)
5849 (guix build utils))
5850 #:builder
5851 (begin
5852 (use-modules (ice-9 ftw)
5853 (ice-9 regex)
5854 (guix build utils))
5855 (with-directory-excursion (assoc-ref %build-inputs "source")
5856 (for-each (lambda (dir)
5857 (copy-recursively
5858 dir
5859 (string-append %output
5860 "/share/emacs/yasnippet-snippets/"
5861 dir)))
5862 (scandir "." (lambda (fname)
5863 (and (string-match "-mode$" fname)
5864 (directory-exists? fname))))))
5865 #t)))
5866 (home-page "https://github.com/AndreaCrotti/yasnippet-snippets")
5867 (synopsis "Collection of YASnippet snippets for many languages")
5868 (description
5869 "Provides Andrea Crotti's collection of YASnippet snippets. After installation,
5870 the snippets will be in \"~/.guix-profile/share/emacs/yasnippet-snippets/\".
5871 To make YASnippet aware of these snippets, add the above directory to
5872 @code{yas-snippet-dirs}.")
5873 (license license:expat))))
5874
5875 (define-public emacs-helm-c-yasnippet
5876 (let ((commit "65ca732b510bfc31636708aebcfe4d2d845b59b0")
5877 (revision "1"))
5878 (package
5879 (name "emacs-helm-c-yasnippet")
5880 (version (string-append "0.6.7" "-" revision "."
5881 (string-take commit 7)))
5882 (source (origin
5883 (method git-fetch)
5884 (uri (git-reference
5885 (url "https://github.com/emacs-jp/helm-c-yasnippet")
5886 (commit commit)))
5887 (file-name (string-append name "-" version "-checkout"))
5888 (sha256
5889 (base32
5890 "1cbafjqlzxbg19xfdqsinsh7afq58gkf44rsg1qxfgm8g6zhr7f8"))))
5891 (build-system emacs-build-system)
5892 (propagated-inputs
5893 `(("emacs-helm" ,emacs-helm)
5894 ("emacs-yasnippet" ,emacs-yasnippet)))
5895 (home-page "https://github.com/emacs-jp/helm-c-yasnippet")
5896 (synopsis "Helm integration for Yasnippet")
5897 (description "This Emacs library provides Helm interface for
5898 Yasnippet.")
5899 (license license:gpl2+))))
5900
5901 (define-public emacs-helm-system-packages
5902 ;; There won't be a new release after 1.10.1 until
5903 ;; https://github.com/emacs-helm/helm-system-packages/issues/25 is fixed,
5904 ;; and latest commits fix import issues with Guix.
5905 (let ((commit "6572340f41611ef1991e9612d34d59130957ee4a"))
5906 (package
5907 (name "emacs-helm-system-packages")
5908 (version (git-version "1.10.1" "1" commit))
5909 (source (origin
5910 (method git-fetch)
5911 (uri (git-reference
5912 (url "https://github.com/emacs-helm/helm-system-packages")
5913 (commit commit)))
5914 (file-name (git-file-name name version))
5915 (sha256
5916 (base32
5917 "0mcz6vkpk12vsyd37xv1rbg4v442sxc3lj8yxskqg294xbdaclz4"))))
5918 (build-system emacs-build-system)
5919 (inputs
5920 `(("recutils" ,recutils)))
5921 (propagated-inputs
5922 `(("emacs-helm" ,emacs-helm)))
5923 (arguments
5924 `(#:phases
5925 (modify-phases %standard-phases
5926 (add-after 'unpack 'configure
5927 (lambda* (#:key inputs outputs #:allow-other-keys)
5928 (let ((recutils (assoc-ref inputs "recutils")))
5929 ;; Specify the absolute file names of the various
5930 ;; programs so that everything works out-of-the-box.
5931 (substitute* "helm-system-packages-guix.el"
5932 (("recsel") (string-append recutils "/bin/recsel")))))))))
5933 (home-page "https://github.com/emacs-helm/helm-system-packages")
5934 (synopsis "Helm System Packages is an interface to your package manager")
5935 (description "List all available packages in Helm (with installed
5936 packages displayed in their own respective face). Fuzzy-search, mark and
5937 execute the desired action over any selections of packages: Install,
5938 uninstall, display packages details (in Org Mode) or insert details at point,
5939 find files owned by packages... And much more, including performing all the
5940 above over the network.")
5941 (license license:gpl3+))))
5942
5943 (define-public emacs-memoize
5944 (package
5945 (name "emacs-memoize")
5946 (version "1.1")
5947 (source
5948 (origin
5949 (method url-fetch)
5950 (uri (string-append
5951 "https://github.com/skeeto/emacs-memoize/archive/"
5952 version ".tar.gz"))
5953 (file-name (string-append name "-" version ".tar.gz"))
5954 (sha256
5955 (base32
5956 "05ijgwi4ymxx31vpjm2pn356j85cykknajn14lrzz8pn5sh0vrg4"))))
5957 (build-system emacs-build-system)
5958 (arguments
5959 `(#:tests? #t
5960 #:test-command '("emacs" "--batch"
5961 "-l" "memoize-test.el"
5962 "-f" "ert-run-tests-batch-and-exit")))
5963 (home-page "https://github.com/skeeto/emacs-memoize")
5964 (synopsis "Emacs lisp memoization library")
5965 (description "@code{emacs-memoize} is an Emacs library for
5966 memoizing functions.")
5967 (license license:unlicense)))
5968
5969 (define-public emacs-linum-relative
5970 (package
5971 (name "emacs-linum-relative")
5972 (version "0.5")
5973 (source
5974 (origin
5975 (method url-fetch)
5976 (uri (string-append
5977 "https://github.com/coldnew/linum-relative/archive/"
5978 version ".tar.gz"))
5979 (file-name (string-append name "-" version ".tar.gz"))
5980 (sha256
5981 (base32
5982 "0s4frvr27866lw1rn3jal9wj5rkz9fx4yiszqv7w06azsdgsqksv"))))
5983 (build-system emacs-build-system)
5984 (home-page "https://github.com/coldnew/linum-relative")
5985 (synopsis "Relative line numbering for Emacs")
5986 (description "@code{emacs-linum-relative} displays the relative line
5987 number on the left margin in Emacs.")
5988 (license license:gpl2+)))
5989
5990 (define-public emacs-idle-highlight
5991 (package
5992 (name "emacs-idle-highlight")
5993 (version "1.1.3")
5994 (source
5995 (origin
5996 (method url-fetch)
5997 (uri (string-append
5998 "https://github.com/nonsequitur/idle-highlight-mode/archive/"
5999 version ".tar.gz"))
6000 (file-name (string-append name "-" version ".tar.gz"))
6001 (sha256
6002 (base32
6003 "0kdv10hrgqpskjh0zvpnzwlkn5bccnqxas62gkws6njln57bf8nl"))))
6004 (build-system emacs-build-system)
6005 (home-page "https://www.emacswiki.org/emacs/IdleHighlight")
6006 (synopsis "Highlights all occurrences of the word the point is on")
6007 (description
6008 "This Emacs package provides @code{idle-highlight-mode} that sets
6009 an idle timer to highlight all occurrences in the buffer of the word under
6010 the point.")
6011 (license license:gpl3+)))
6012
6013 (define-public emacs-ox-twbs
6014 (package
6015 (name "emacs-ox-twbs")
6016 (version "1.1.1")
6017 (source
6018 (origin
6019 (method url-fetch)
6020 (uri (string-append
6021 "https://github.com/marsmining/ox-twbs/archive/v"
6022 version ".tar.gz"))
6023 (file-name (string-append name "-" version ".tar.gz"))
6024 (sha256
6025 (base32
6026 "1zaq8dczq5wijjk36114k2x3hfrqig3lyx6djril6wyk67vczyqs"))))
6027 (build-system emacs-build-system)
6028 (home-page "https://github.com/marsmining/ox-twbs")
6029 (synopsis "Export org-mode docs as HTML compatible with Twitter Bootstrap")
6030 (description
6031 "This Emacs package outputs your org-mode docs with a simple, clean and
6032 modern look. It implements a new HTML back-end for exporting org-mode docs as
6033 HTML compatible with Twitter Bootstrap. By default, HTML is exported with
6034 jQuery and Bootstrap resources included via osscdn.")
6035 (license license:gpl3+)))
6036
6037 (define-public emacs-highlight-sexp
6038 (package
6039 (name "emacs-highlight-sexp")
6040 (version "1.0")
6041 (source
6042 (origin
6043 (method url-fetch)
6044 (uri (string-append
6045 "https://github.com/daimrod/highlight-sexp/archive/v"
6046 version ".tar.gz"))
6047 (file-name (string-append name "-" version ".tar.gz"))
6048 (sha256
6049 (base32
6050 "0jwx87qkln1rg9wmv4qkgkml935fh2pkgrg5x4ca6n5dgb4q6rj1"))))
6051 (build-system emacs-build-system)
6052 (home-page "https://github.com/daimrod/highlight-sexp")
6053 (synopsis "Minor mode that highlights the s-exp at the current position")
6054 (description
6055 "This Emacs package highlights the s-exp at the current position.")
6056 (license license:gpl3+)))
6057
6058 (define-public emacs-highlight-stages
6059 (let ((commit "29cbc5b78261916da042ddb107420083da49b271")
6060 (revision "1"))
6061 (package
6062 (name "emacs-highlight-stages")
6063 (version (string-append "1.1.0" "-" revision "." (string-take commit 7)))
6064 (source
6065 (origin
6066 (method git-fetch)
6067 (uri (git-reference
6068 (url "https://github.com/zk-phi/highlight-stages.git")
6069 (commit commit)))
6070 (file-name (string-append name "-" version "-checkout"))
6071 (sha256
6072 (base32
6073 "0r6nbcrr0dqpgm8dir8ahzjy7rw4nrac48byamzrq96r7ajlxlv0"))
6074 (patches
6075 (search-patches "emacs-highlight-stages-add-gexp.patch"))))
6076 (build-system emacs-build-system)
6077 (home-page "https://github.com/wigust/highlight-stages")
6078 (synopsis "Minor mode that highlights (quasi-quoted) expressions")
6079 (description "@code{highlight-stages} provides an Emacs minor mode that
6080 highlights quasi-quoted expressions.")
6081 (license license:gpl3+))))
6082
6083 (define-public emacspeak
6084 (package
6085 (name "emacspeak")
6086 (version "49.0")
6087 (source
6088 (origin
6089 (method url-fetch)
6090 (uri (string-append
6091 "https://github.com/tvraman/emacspeak/releases/download/"
6092 version "/emacspeak-" version ".tar.bz2"))
6093 (sha256
6094 (base32
6095 "1smf26m7201z0bk49lzbw9zhbjfi6wylidfjixb8ylp6g0wnh8dx"))))
6096 (build-system gnu-build-system)
6097 (arguments
6098 '(#:make-flags (list (string-append "prefix="
6099 (assoc-ref %outputs "out")))
6100 #:phases
6101 (modify-phases %standard-phases
6102 (replace 'configure
6103 (lambda* (#:key outputs #:allow-other-keys)
6104 (let* ((out (assoc-ref outputs "out"))
6105 (lisp (string-append out
6106 "/share/emacs/site-lisp/emacspeak")))
6107 (setenv "SHELL" (which "sh"))
6108 ;; Configure Emacspeak according to etc/install.org.
6109 (invoke "make" "config"))))
6110 (add-after 'build 'build-espeak
6111 (lambda _
6112 (invoke "make" "espeak")))
6113 (replace 'install
6114 (lambda* (#:key inputs outputs #:allow-other-keys)
6115 (let* ((out (assoc-ref outputs "out"))
6116 (bin (string-append out "/bin"))
6117 (lisp (string-append out "/share/emacs/site-lisp/emacspeak"))
6118 (info (string-append out "/share/info"))
6119 (emacs (string-append (assoc-ref inputs "emacs")
6120 "/bin/emacs")))
6121 ;; According to etc/install.org, the Emacspeak directory should
6122 ;; be copied to its installation destination.
6123 (for-each
6124 (lambda (file)
6125 (copy-recursively file (string-append lisp "/" file)))
6126 '("etc" "info" "js" "lisp" "media" "scapes" "servers" "sounds"
6127 "stumpwm" "xsl"))
6128 ;; Make sure emacspeak is loaded from the correct directory.
6129 (substitute* "etc/emacspeak.sh"
6130 (("/lisp/emacspeak-setup.el")
6131 (string-append lisp "/lisp/emacspeak-setup.el")))
6132 ;; Install the convenient startup script.
6133 (mkdir-p bin)
6134 (copy-file "etc/emacspeak.sh" (string-append bin "/emacspeak")))
6135 #t))
6136 (add-after 'install 'wrap-program
6137 (lambda* (#:key inputs outputs #:allow-other-keys)
6138 (let* ((out (assoc-ref outputs "out"))
6139 (emacspeak (string-append out "/bin/emacspeak"))
6140 (espeak (string-append (assoc-ref inputs "espeak")
6141 "/bin/espeak")))
6142 ;; The environment variable DTK_PROGRAM tells emacspeak what
6143 ;; program to use for speech.
6144 (wrap-program emacspeak
6145 `("DTK_PROGRAM" ":" prefix (,espeak)))
6146 #t))))
6147 #:tests? #f)) ; no check target
6148 (inputs
6149 `(("emacs" ,emacs)
6150 ("espeak" ,espeak)
6151 ("perl" ,perl)
6152 ("tcl" ,tcl)
6153 ("tclx" ,tclx)))
6154 (home-page "http://emacspeak.sourceforge.net")
6155 (synopsis "Audio desktop interface for Emacs")
6156 (description
6157 "Emacspeak is a speech interface that allows visually impaired users to
6158 interact independently and efficiently with the computer. Audio formatting
6159 --a technique pioneered by AsTeR-- and full support for W3C's Aural CSS (ACSS)
6160 allows Emacspeak to produce rich aural presentations of electronic information.
6161 By seamlessly blending all aspects of the Internet such as Web-surfing and
6162 messaging, Emacspeak speech-enables local and remote information via a
6163 consistent and well-integrated user interface.")
6164 (license license:gpl2+)))
6165
6166 (define-public emacs-adaptive-wrap
6167 (package
6168 (name "emacs-adaptive-wrap")
6169 (version "0.5.1")
6170 (source (origin
6171 (method url-fetch)
6172 (uri (string-append
6173 "http://elpa.gnu.org/packages/adaptive-wrap-"
6174 version ".el"))
6175 (sha256
6176 (base32
6177 "0qi7gjprcpywk2daivnlavwsx53hl5wcqvpxbwinvigg42vxh3ll"))))
6178 (build-system emacs-build-system)
6179 (home-page "http://elpa.gnu.org/packages/adaptive-wrap.html")
6180 (synopsis "Smart line-wrapping with wrap-prefix")
6181 (description
6182 "This Emacs package provides the @code{adaptive-wrap-prefix-mode}
6183 minor mode which sets the wrap-prefix property on the fly so that
6184 single-long-line paragraphs get word-wrapped in a way similar to what
6185 you'd get with @kbd{M-q} using @code{adaptive-fill-mode}, but without
6186 actually changing the buffer's text.")
6187 (license license:gpl3+)))
6188
6189 (define-public emacs-diff-hl
6190 (package
6191 (name "emacs-diff-hl")
6192 (version "1.8.5")
6193 (source
6194 (origin
6195 (method url-fetch)
6196 (uri (string-append "https://elpa.gnu.org/packages/diff-hl-"
6197 version ".tar"))
6198 (sha256
6199 (base32
6200 "1vxc7z7c2qs0mx7l5sa4sybi5qbzv0s79flj74p1ynw8dl3qxg3d"))))
6201 (build-system emacs-build-system)
6202 (home-page "https://github.com/dgutov/diff-hl")
6203 (synopsis
6204 "Highlight uncommitted changes using VC")
6205 (description
6206 "@code{diff-hl-mode} highlights uncommitted changes on the side of the
6207 window (using the fringe, by default), allows you to jump between
6208 the hunks and revert them selectively.")
6209 (license license:gpl3+)))
6210
6211 (define-public emacs-diminish
6212 (package
6213 (name "emacs-diminish")
6214 (version "0.45")
6215 (source
6216 (origin
6217 (method url-fetch)
6218 (uri (string-append
6219 "https://github.com/myrjola/diminish.el/archive/v"
6220 version ".tar.gz"))
6221 (file-name (string-append name "-" version ".tar.gz"))
6222 (sha256
6223 (base32
6224 "0i3629sv5cfrrb00hcnmaqzgs8mk36yasc1ax3ry1ga09nr6rkj9"))))
6225 (build-system emacs-build-system)
6226 (home-page "https://github.com/myrjola/diminish.el")
6227 (synopsis "Diminish minor modes with no modeline display")
6228 (description "@code{emacs-diminish} implements hiding or
6229 abbreviation of the mode line displays (lighters) of minor modes.")
6230 (license license:gpl2+)))
6231
6232 (define-public emacs-use-package
6233 (let ((commit "da8c9e2840343906e732f9699e43d35a1f06481d")
6234 (revision "1"))
6235 (package
6236 (name "emacs-use-package")
6237 (version (git-version "2.3" revision commit))
6238 (source (origin
6239 (method git-fetch)
6240 (uri (git-reference
6241 (url "https://github.com/jwiegley/use-package")
6242 (commit commit)))
6243 (file-name (git-file-name name version))
6244 (sha256
6245 (base32
6246 "0jz38pbq1p9h85i6qcsh3sfzkd103y6mw3rg5zd14dxigp8ir3xz"))))
6247 (build-system emacs-build-system)
6248 (propagated-inputs
6249 `(("emacs-diminish" ,emacs-diminish)))
6250 (arguments
6251 `(#:tests? #t
6252 #:test-command '("emacs" "--batch"
6253 "-l" "use-package-tests.el"
6254 "-f" "ert-run-tests-batch-and-exit")))
6255 (home-page "https://github.com/jwiegley/use-package")
6256 (synopsis "Declaration for simplifying your .emacs")
6257 (description "The use-package macro allows you to isolate package
6258 configuration in your @file{.emacs} file in a way that is both
6259 performance-oriented and tidy.")
6260 (license license:gpl2+))))
6261
6262 (define-public emacs-strace-mode
6263 (let* ((commit "6a69b4b06db6797af56f33eda5cb28af94e59f11")
6264 (revision "1"))
6265 (package
6266 (name "emacs-strace-mode")
6267 (version (string-append "0.0.2-" revision "." (string-take commit 7)))
6268 (source (origin
6269 (method git-fetch)
6270 (uri (git-reference
6271 (url "https://github.com/pkmoore/strace-mode")
6272 (commit commit)))
6273 (file-name (string-append name "-" version "-checkout"))
6274 (sha256
6275 (base32
6276 "1lbk2kzdznf2bkfazizfbimaxxzfzv00lrz1ran9dc2zqbc0bj9f"))))
6277 (build-system emacs-build-system)
6278 (home-page "https://github.com/pkmoore/strace-mode")
6279 (synopsis "Emacs major mode to highlight strace outputs")
6280 (description "@code{emacs-strace-mode} provides an Emacs major mode
6281 highlighting strace outputs.")
6282 (license license:gpl3+))))
6283
6284 (define-public emacs-default-encrypt
6285 (package
6286 (name "emacs-default-encrypt")
6287 (version "4.3")
6288 (source
6289 (origin
6290 (method url-fetch)
6291 (uri (string-append
6292 "https://www.informationelle-selbstbestimmung-im-internet.de"
6293 "/emacs/jl-encrypt" version "/jl-encrypt.el"))
6294 (file-name (string-append "jl-encrypt-" version ".el"))
6295 (sha256
6296 (base32
6297 "16i3rlfp3jxlqvndn8idylhmczync3gwmy8a019v29vyr48rnnr0"))))
6298 (build-system emacs-build-system)
6299 (home-page "https://www.informationelle-selbstbestimmung-im-internet.de/Emacs.html")
6300 (synopsis "Automatically encrypt or sign Gnus messages in Emacs")
6301 (description
6302 "DefaultEncrypt is designed to be used with Gnus in Emacs. It
6303 automatically encrypts messages that you send (e.g., email) when public keys
6304 for all recipients are available, and it protects you from accidentally
6305 sending un-encrypted messages. It can also be configured to automatically
6306 sign messages that you send. For details and instructions on how to use
6307 DefaultEncrypt, please refer to the home page or read the comments in the
6308 source file, @file{jl-encrypt.el}.")
6309 (license license:gpl3+)))
6310
6311 (define-public emacs-htmlize
6312 (package
6313 (name "emacs-htmlize")
6314 (version "1.53")
6315 (source
6316 (origin
6317 (method url-fetch)
6318 (uri (string-append
6319 "https://github.com/hniksic/emacs-htmlize/archive/release/"
6320 version ".tar.gz"))
6321 (file-name (string-append name "-" version ".tar.gz"))
6322 (sha256
6323 (base32
6324 "1lzaf9m1qr9dhw4nn53g6wszk2vqw95gpsbrc3y85bams4cn24ga"))))
6325 (build-system emacs-build-system)
6326 (home-page "https://github.com/hniksic/emacs-htmlize")
6327 (synopsis "Convert buffer text and decorations to HTML")
6328 (description "@code{emacs-htmlize} converts the buffer text and
6329 the associated decorations to HTML. Output to CSS, inline CSS and
6330 fonts is supported.")
6331 (license license:gpl2+)))
6332
6333 (define-public emacs-xmlgen
6334 (package
6335 (name "emacs-xmlgen")
6336 (version "0.5")
6337 (source
6338 (origin
6339 (method url-fetch)
6340 (uri (string-append
6341 "https://github.com/philjackson/xmlgen/archive/"
6342 version ".tar.gz"))
6343 (file-name (string-append name "-" version ".tar.gz"))
6344 (sha256
6345 (base32
6346 "0zay490vjby3f7455r0vydmjg7q1gwc78hilpfb0rg4gwz224z8r"))))
6347 (build-system emacs-build-system)
6348 (arguments
6349 `(#:tests? #t
6350 #:test-command '("emacs" "--batch"
6351 "-l" "xmlgen-test.el"
6352 "-f" "ert-run-tests-batch-and-exit")))
6353 (home-page "https://github.com/philjackson/xmlgen")
6354 (synopsis "S-expression to XML domain specific language (DSL) in
6355 Emacs Lisp")
6356 (description "@code{emacs-xmlgen} provides S-expression to XML
6357 conversion for Emacs Lisp.")
6358 (license license:gpl2+)))
6359
6360 (define-public emacs-cdlatex
6361 (package
6362 (name "emacs-cdlatex")
6363 (version "4.7")
6364 (source
6365 (origin
6366 (method url-fetch)
6367 (uri (string-append
6368 "https://github.com/cdominik/cdlatex/archive/"
6369 version ".tar.gz"))
6370 (file-name (string-append name "-" version ".tar.gz"))
6371 (sha256
6372 (base32
6373 "0pivapphmykc6vhvpx7hdyl55ls37vc4jcrxpvs4yk7jzcmwa9xp"))))
6374 (build-system emacs-build-system)
6375 (propagated-inputs
6376 `(("emacs-auctex" ,emacs-auctex)))
6377 (home-page "https://github.com/cdominik/cdlatex")
6378 (synopsis "Fast Emacs input methods for LaTeX environments and
6379 math")
6380 (description "CDLaTeX is an Emacs minor mode supporting fast
6381 insertion of environment templates and math in LaTeX. Similar
6382 commands are also offered as part of the AUCTeX package, but it is not
6383 the same - CDLaTeX focuses on speediness for inserting LaTeX
6384 constructs.")
6385 (license license:gpl3+)))
6386
6387 (define-public emacs-cnfonts
6388 (package
6389 (name "emacs-cnfonts")
6390 (version "0.9.1")
6391 (source (origin
6392 (method url-fetch)
6393 (uri (string-append
6394 "https://github.com/tumashu/cnfonts/archive/v"
6395 version ".tar.gz"))
6396 (file-name (string-append name "-" version ".tar.gz"))
6397 (sha256
6398 (base32
6399 "1l6cgcvc6md1zq97ccczankpyi0k4vjx6apflny6kjq3p33lyhf4"))))
6400 (build-system emacs-build-system)
6401 (home-page "https://github.com/tumashu/cnfonts")
6402 (synopsis "Emacs Chinese fonts setup tool")
6403 (description "cnfonts is a Chinese fonts setup tool, allowing for easy
6404 configuration of Chinese fonts.")
6405 (license license:gpl2+)))
6406
6407 (define-public emacs-php-mode
6408 (package
6409 (name "emacs-php-mode")
6410 (version "20171225.342")
6411 (source (origin
6412 (method url-fetch)
6413 (uri (string-append
6414 "https://melpa.org/packages/php-mode-"
6415 version ".tar"))
6416 (sha256
6417 (base32
6418 "1zz682f34v4wsm2dyj1gnrnvsrqdq1cy7j8p6cvc398w2fziyg3q"))))
6419 (build-system emacs-build-system)
6420 (home-page "https://github.com/ejmr/php-mode")
6421 (synopsis "Major mode for editing PHP code")
6422 (description "@code{php-mode} is a major mode for editing PHP source
6423 code. It's an extension of C mode; thus it inherits all C mode's navigation
6424 functionality. But it colors according to the PHP grammar and indents
6425 according to the PEAR coding guidelines. It also includes a couple handy
6426 IDE-type features such as documentation search and a source and class
6427 browser.")
6428 (license license:gpl3+)))
6429
6430 (define-public emacs-pos-tip
6431 (package
6432 (name "emacs-pos-tip")
6433 (version "0.4.6")
6434 (source (origin
6435 (method url-fetch)
6436 (uri (string-append
6437 "https://github.com/pitkali/pos-tip/archive/"
6438 version ".tar.gz"))
6439 (file-name (string-append name "-" version ".tar.gz"))
6440 (sha256
6441 (base32
6442 "12jqfy26vjk7lq0aa8yn8zqj8c85fkvx7y9prj0pcn4wqiz2ad2r"))))
6443 (build-system emacs-build-system)
6444 ;; The following functions and variables needed by emacs-pos-tip are
6445 ;; not included in emacs-minimal:
6446 ;; x-display-pixel-width, x-display-pixel-height, x-show-tip
6447 (arguments `(#:emacs ,emacs))
6448 (home-page "https://github.com/pitkali/pos-tip")
6449 (synopsis "Show tooltip at point")
6450 (description "The standard library tooltip.el provides a function for
6451 displaying a tooltip at the mouse position. However, locating a tooltip at an
6452 arbitrary buffer position in a window is not easy. Pos-tip provides such a
6453 function to be used by other frontend programs.")
6454 (license license:gpl2+)))
6455
6456 (define-public emacs-pyim-basedict
6457 (package
6458 (name "emacs-pyim-basedict")
6459 (version "0.3.1")
6460 (source (origin
6461 (method url-fetch)
6462 (uri (string-append
6463 "https://github.com/tumashu/pyim-basedict/archive/v"
6464 version ".tar.gz"))
6465 (file-name (string-append name "-" version ".tar.gz"))
6466 (sha256
6467 (base32
6468 "0nfgxviavkgrpyfsw60xsws4fk51fcmgl8fp6zf4ibqjjbp53n3n"))))
6469 (build-system emacs-build-system)
6470 (home-page "https://github.com/tumashu/pyim-basedict")
6471 (synopsis "Input method dictionary of pyim")
6472 (description "Pyim-basedict is the default pinyin input method dictionary,
6473 containing words from the rime project.")
6474 (license license:gpl2+)))
6475
6476 (define-public emacs-pyim
6477 (package
6478 (name "emacs-pyim")
6479 (version "1.8")
6480 (source
6481 (origin
6482 (method git-fetch)
6483 (uri (git-reference
6484 (url "https://github.com/tumashu/pyim")
6485 (commit (string-append "v" version))))
6486 (file-name (git-file-name name version))
6487 (sha256
6488 (base32
6489 "16rma4cv7xgky0g3x4an27v30jdi6i1sqw43cl99zhkqvp43l3f9"))))
6490 (build-system emacs-build-system)
6491 (propagated-inputs
6492 `(("emacs-async" ,emacs-async)
6493 ("emacs-pyim-basedict" ,emacs-pyim-basedict)
6494 ("emacs-popup" ,emacs-popup)
6495 ("emacs-posframe" ,emacs-posframe)))
6496 (home-page "https://github.com/tumashu/pyim")
6497 (synopsis "Chinese input method")
6498 (description "Chinese input method which supports quanpin, shuangpin, wubi
6499 and cangjie.")
6500 (license license:gpl2+)))
6501
6502 (define-public emacs-posframe
6503 (package
6504 (name "emacs-posframe")
6505 (version "0.4.2")
6506 (source
6507 (origin
6508 (method url-fetch)
6509 (uri (string-append
6510 "https://elpa.gnu.org/packages/posframe-" version ".el"))
6511 (sha256
6512 (base32
6513 "1h8vvxvsg41vc1nnglqjs2q0k1yzfsn72skga9s76qa3zxmx6kds"))))
6514 (build-system emacs-build-system)
6515 ;; emacs-minimal does not include the function font-info
6516 (arguments `(#:emacs ,emacs))
6517 (home-page "https://github.com/tumashu/posframe")
6518 (synopsis "Pop a posframe (a child frame) at point")
6519 (description "@code{emacs-posframe} can pop a posframe at point. A
6520 posframe is a child frame displayed within its root window's buffer.
6521 @code{emacs-posframe} is fast and works well with CJK languages.")
6522 (license license:gpl3+)))
6523
6524 (define-public emacs-el2org
6525 (package
6526 (name "emacs-el2org")
6527 (version "0.6.0")
6528 (source (origin
6529 (method url-fetch)
6530 (uri (string-append
6531 "https://github.com/tumashu/el2org/archive/v"
6532 version ".tar.gz"))
6533 (file-name (string-append name "-" version ".tar.gz"))
6534 (sha256
6535 (base32
6536 "0gd3km1swwvg2w0kdi7370f54wgrflxn63gjgssfjc1iyc9sbqwq"))))
6537 (build-system emacs-build-system)
6538 (home-page "https://github.com/tumashu/el2org")
6539 (synopsis "Convert Emacs-lisp file to org file")
6540 (description "El2org is a simple tool, which can convert Emacs-lisp file
6541 to org file, you can use this tool to write orgify commentary.")
6542 (license license:gpl2+)))
6543
6544 (define-public emacs-mustache
6545 (package
6546 (name "emacs-mustache")
6547 (version "0.23")
6548 (source (origin
6549 (method url-fetch)
6550 (uri (string-append
6551 "https://github.com/Wilfred/mustache.el/archive/"
6552 version ".tar.gz"))
6553 (file-name (string-append name "-" version ".tar.gz"))
6554 (sha256
6555 (base32
6556 "0k9lcgil7kykkv1ylrgwy1g13ldjjmgi2cwmysgyb2vlj3jbwpdj"))))
6557 (build-system emacs-build-system)
6558 (propagated-inputs
6559 `(("emacs-dash" ,emacs-dash)
6560 ("emacs-ht" ,emacs-ht)
6561 ("emacs-s" ,emacs-s)))
6562 (home-page "https://github.com/Wilfred/mustache.el")
6563 (synopsis "Mustache templating library for Emacs")
6564 (description "Mustache templating library for Emacs, mustache is
6565 a simple web template system, which is described as a logic-less system
6566 because it lacks any explicit control flow statements, both looping and
6567 conditional evaluation can be achieved using section tags processing lists
6568 and lambdas.")
6569 (license license:gpl3+)))
6570
6571 (define-public emacs-org2web
6572 (package
6573 (name "emacs-org2web")
6574 (version "0.9.1")
6575 (source (origin
6576 (method url-fetch)
6577 (uri (string-append
6578 "https://github.com/tumashu/org2web/archive/v"
6579 version ".tar.gz"))
6580 (file-name (string-append name "-" version ".tar.gz"))
6581 (sha256
6582 (base32
6583 "1c0ixcphlhp4c4qdiwq40bc3yp1gp1llp8pxrk4s7ny9n68s52zp"))))
6584 (build-system emacs-build-system)
6585 (propagated-inputs
6586 `(("emacs-dash" ,emacs-dash)
6587 ("emacs-el2org" ,emacs-el2org)
6588 ("emacs-ht" ,emacs-ht)
6589 ("emacs-mustache" ,emacs-mustache)
6590 ("emacs-simple-httpd" ,emacs-simple-httpd)))
6591 (home-page "https://github.com/tumashu/org2web")
6592 (synopsis "Static site generator based on org-mode ")
6593 (description "Org2web is a static site generator based on org-mode,
6594 which code derived from Kelvin H's org-page.")
6595 (license license:gpl2+)))
6596
6597 (define-public emacs-xelb
6598 (package
6599 (name "emacs-xelb")
6600 (version "0.17")
6601 (source (origin
6602 (method url-fetch)
6603 (uri (string-append "https://elpa.gnu.org/packages/xelb-"
6604 version ".tar"))
6605 (sha256
6606 (base32
6607 "0k98580vq253fjdgklgqlwl450saninfw39fbq8lv3xsnp3dcgml"))))
6608 (build-system emacs-build-system)
6609 ;; The following functions and variables needed by emacs-xelb are
6610 ;; not included in emacs-minimal:
6611 ;; x-display-screens, x-keysym-table, x-alt-keysym, x-meta-keysym
6612 ;; x-hyper-keysym, x-super-keysym, libxml-parse-xml-region
6613 ;; x-display-pixel-width, x-display-pixel-height
6614 (arguments
6615 `(#:emacs ,emacs
6616 #:phases
6617 (modify-phases %standard-phases
6618 (add-after 'unpack 'regenerate-el-files
6619 (lambda* (#:key inputs #:allow-other-keys)
6620 (invoke "make"
6621 (string-append "PROTO_PATH="
6622 (assoc-ref inputs "xcb-proto")
6623 "/share/xcb")
6624 (string-append "EMACS_BIN="
6625 (assoc-ref inputs "emacs")
6626 "/bin/emacs -Q")))))))
6627 (native-inputs `(("xcb-proto" ,xcb-proto)))
6628 (home-page "https://github.com/ch11ng/xelb")
6629 (synopsis "X protocol Emacs Lisp binding")
6630 (description "@code{emacs-xelb} is a pure Emacs Lisp implementation of the
6631 X11 protocol based on the XML description files from the XCB project. It
6632 features an object-oriented API and permits a certain degree of concurrency.
6633 It should enable you to implement low-level X11 applications.")
6634 (license license:gpl3+)))
6635
6636 (define-public emacs-exwm
6637 (package
6638 (name "emacs-exwm")
6639 (version "0.22")
6640 (synopsis "Emacs X window manager")
6641 (source (origin
6642 (method url-fetch)
6643 (uri (string-append "https://elpa.gnu.org/packages/exwm-"
6644 version ".tar"))
6645 (sha256
6646 (base32
6647 "0lppm8ng37i5s4x7xdrxhjbdcnpl6pyvn4g7w52zbckjsn8qnqh0"))))
6648 (build-system emacs-build-system)
6649 (propagated-inputs
6650 `(("emacs-xelb" ,emacs-xelb)))
6651 (inputs
6652 `(("xhost" ,xhost)
6653 ("dbus" ,dbus)))
6654 ;; The following functions and variables needed by emacs-exwm are
6655 ;; not included in emacs-minimal:
6656 ;; scroll-bar-mode, fringe-mode
6657 ;; x-display-pixel-width, x-display-pixel-height
6658 (arguments
6659 `(#:emacs ,emacs
6660 #:phases
6661 (modify-phases %standard-phases
6662 (add-after 'build 'install-xsession
6663 (lambda* (#:key inputs outputs #:allow-other-keys)
6664 (let* ((out (assoc-ref outputs "out"))
6665 (xsessions (string-append out "/share/xsessions"))
6666 (bin (string-append out "/bin"))
6667 (exwm-executable (string-append bin "/exwm")))
6668 ;; Add a .desktop file to xsessions
6669 (mkdir-p xsessions)
6670 (mkdir-p bin)
6671 (with-output-to-file
6672 (string-append xsessions "/exwm.desktop")
6673 (lambda _
6674 (format #t "[Desktop Entry]~@
6675 Name=~a~@
6676 Comment=~a~@
6677 Exec=~a~@
6678 TryExec=~@*~a~@
6679 Type=Application~%" ,name ,synopsis exwm-executable)))
6680 ;; Add a shell wrapper to bin
6681 (with-output-to-file exwm-executable
6682 (lambda _
6683 (format #t "#!~a ~@
6684 ~a +SI:localuser:$USER ~@
6685 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
6686 (string-append (assoc-ref inputs "bash") "/bin/sh")
6687 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
6688 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
6689 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
6690 '(cond
6691 ((file-exists-p "~/.exwm")
6692 (load-file "~/.exwm"))
6693 ((not (featurep 'exwm))
6694 (require 'exwm)
6695 (require 'exwm-config)
6696 (exwm-config-default)
6697 (message (concat "exwm configuration not found. "
6698 "Falling back to default configuration...")))))))
6699 (chmod exwm-executable #o555)
6700 #t))))))
6701 (home-page "https://github.com/ch11ng/exwm")
6702 (description "EXWM is a full-featured tiling X window manager for Emacs
6703 built on top of XELB.")
6704 (license license:gpl3+)))
6705
6706 (define-public emacs-switch-window
6707 (package
6708 (name "emacs-switch-window")
6709 (version "1.6.2")
6710 (source
6711 (origin
6712 (method git-fetch)
6713 (uri (git-reference
6714 (url "https://github.com/dimitri/switch-window")
6715 (commit (string-append "v" version))))
6716 (file-name (git-file-name name version))
6717 (sha256
6718 (base32
6719 "0rci96asgamr6qp6nkyr5vwrnslswjxcjd96yccy4aivh0g66yfg"))))
6720 (build-system emacs-build-system)
6721 (home-page "https://github.com/dimitri/switch-window")
6722 (synopsis "Emacs window switch tool")
6723 (description "Switch-window is an emacs window switch tool, which
6724 offer a visual way to choose a window to switch to, delete, split or
6725 other operations.")
6726 (license license:wtfpl2)))
6727
6728 (define-public emacs-exwm-x
6729 (package
6730 (name "emacs-exwm-x")
6731 (version "1.9.0")
6732 (synopsis "Derivative window manager based on EXWM")
6733 (source
6734 (origin
6735 (method git-fetch)
6736 (uri (git-reference
6737 (url "https://github.com/tumashu/exwm-x")
6738 (commit (string-append "v" version))))
6739 (file-name (git-file-name name version))
6740 (sha256
6741 (base32
6742 "03l3dl7s1qys1kkh40rm1sfx7axy1b8sf5f6nyksj9ps6d30p5i4"))))
6743 (build-system emacs-build-system)
6744 (propagated-inputs
6745 `(("emacs-exwm" ,emacs-exwm)
6746 ("emacs-switch-window" ,emacs-switch-window)
6747 ("emacs-ivy" ,emacs-ivy)
6748 ("emacs-use-package" ,emacs-use-package)))
6749 (inputs
6750 `(("xhost" ,xhost)
6751 ("dbus" ,dbus)))
6752 ;; Need emacs instead of emacs-minimal,
6753 ;; for emacs's bin path will be inserted into bin/exwm-x file.
6754 (arguments
6755 `(#:emacs ,emacs
6756 #:phases
6757 (modify-phases %standard-phases
6758 (add-after 'build 'install-xsession
6759 (lambda* (#:key inputs outputs #:allow-other-keys)
6760 (let* ((out (assoc-ref outputs "out"))
6761 (xsessions (string-append out "/share/xsessions"))
6762 (bin (string-append out "/bin"))
6763 (exwm-executable (string-append bin "/exwm-x")))
6764 ;; Add a .desktop file to xsessions
6765 (mkdir-p xsessions)
6766 (mkdir-p bin)
6767 (with-output-to-file
6768 (string-append xsessions "/exwm-x.desktop")
6769 (lambda _
6770 (format #t "[Desktop Entry]~@
6771 Name=~a~@
6772 Comment=~a~@
6773 Exec=~a~@
6774 TryExec=~@*~a~@
6775 Type=Application~%" ,name ,synopsis exwm-executable)))
6776 ;; Add a shell wrapper to bin
6777 (with-output-to-file exwm-executable
6778 (lambda _
6779 (format #t "#!~a ~@
6780 ~a +SI:localuser:$USER ~@
6781 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
6782 (string-append (assoc-ref inputs "bash") "/bin/sh")
6783 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
6784 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
6785 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
6786 '(require 'exwmx-loader))))
6787 (chmod exwm-executable #o555)
6788 #t))))))
6789 (home-page "https://github.com/tumashu/exwm-x")
6790 (description "EXWM-X is a derivative window manager based on EXWM, with focus
6791 on mouse-control.")
6792 (license license:gpl3+)))
6793
6794 (define-public emacs-gnuplot
6795 (package
6796 (name "emacs-gnuplot")
6797 (version "0.7.0")
6798 (source
6799 (origin
6800 (method url-fetch)
6801 (uri (string-append
6802 "https://github.com/bruceravel/gnuplot-mode/archive/"
6803 version ".tar.gz"))
6804 (file-name (string-append name "-" version ".tar.gz"))
6805 (sha256
6806 (base32
6807 "0glzymrn138lwig7p4cj17x4if5jisr6l4g6wcbxisqkqgc1h01i"))))
6808 (build-system gnu-build-system)
6809 (native-inputs `(("emacs" ,emacs-minimal)))
6810 (arguments
6811 (let ((elisp-dir (string-append "/share/emacs/site-lisp/guix.d"
6812 "/gnuplot-" version)))
6813 `(#:modules ((guix build gnu-build-system)
6814 (guix build utils)
6815 (guix build emacs-utils))
6816 #:imported-modules (,@%gnu-build-system-modules
6817 (guix build emacs-utils))
6818 #:configure-flags
6819 (list (string-append "EMACS=" (assoc-ref %build-inputs "emacs")
6820 "/bin/emacs")
6821 (string-append "--with-lispdir=" %output ,elisp-dir))
6822 #:phases
6823 (modify-phases %standard-phases
6824 (add-after 'install 'generate-autoloads
6825 (lambda* (#:key outputs #:allow-other-keys)
6826 (emacs-generate-autoloads
6827 "gnuplot"
6828 (string-append (assoc-ref outputs "out") ,elisp-dir))
6829 #t))))))
6830 (home-page "https://github.com/bruceravel/gnuplot-mode")
6831 (synopsis "Emacs major mode for interacting with gnuplot")
6832 (description "@code{emacs-gnuplot} is an emacs major mode for interacting
6833 with gnuplot.")
6834 (license license:gpl2+)))
6835
6836 (define-public emacs-transpose-frame
6837 (package
6838 (name "emacs-transpose-frame")
6839 (version "0.1.0")
6840 (source
6841 (origin
6842 (method url-fetch)
6843 (uri "http://www.emacswiki.org/emacs/download/transpose-frame.el")
6844 (file-name (string-append "transpose-frame-" version ".el"))
6845 (sha256
6846 (base32
6847 "1f67yksgw9s6j0033hmqzaxx2a93jm11sd5ys7cc3li5gfh680m4"))))
6848 (build-system emacs-build-system)
6849 (home-page "https://www.emacswiki.org/emacs/TransposeFrame")
6850 (synopsis "Transpose window arrangement in current frame")
6851 (description "@code{emacs-transpose-frame} provides some interactive
6852 functions which allows users to transpose windows arrangement in currently
6853 selected frame.")
6854 (license license:bsd-2)))
6855
6856 (define-public emacs-key-chord
6857 (package
6858 (name "emacs-key-chord")
6859 (version "0.6")
6860 (source
6861 (origin
6862 (method url-fetch)
6863 (uri "https://www.emacswiki.org/emacs/download/key-chord.el")
6864 (file-name (string-append "key-chord-" version ".el"))
6865 (sha256
6866 (base32
6867 "03m44pqggfrd53nh9dvpdjgm0rvca34qxmd30hr33hzprzjambxg"))))
6868 (build-system emacs-build-system)
6869 (home-page "https://www.emacswiki.org/emacs/key-chord.el")
6870 (synopsis "Map pairs of simultaneously pressed keys to Emacs commands")
6871 (description "@code{emacs-key-chord} provides @code{key-chord-mode}, a
6872 mode for binding key chords to commands. A key chord is defined as two keys
6873 pressed simultaneously or a single key quickly pressed twice.")
6874 (license license:gpl2+)))
6875
6876 (define-public emacs-evil-surround
6877 (package
6878 (name "emacs-evil-surround")
6879 (version "1.0.0")
6880 (source
6881 (origin
6882 (method url-fetch)
6883 (uri (string-append
6884 "https://github.com/timcharper/evil-surround/archive/v"
6885 version ".tar.gz"))
6886 (file-name (string-append name "-" version ".tar.gz"))
6887 (sha256
6888 (base32
6889 "0p572jgic3q1ia1nz37kclir729ay6i2f4sa7wnaapyxly2lwb3r"))))
6890 (build-system emacs-build-system)
6891 (propagated-inputs
6892 `(("emacs-evil" ,emacs-evil)))
6893 (home-page "https://github.com/timcharper/evil-surround")
6894 (synopsis "Easily modify surrounding parantheses and quotes")
6895 (description "@code{emacs-evil-surround} allows easy deletion, change and
6896 addition of surrounding pairs, such as parantheses and quotes, in evil mode.")
6897 (license license:gpl3+)))
6898
6899 (define-public emacs-evil-commentary
6900 (package
6901 (name "emacs-evil-commentary")
6902 (version "2.1.1")
6903 (source
6904 (origin
6905 (method url-fetch)
6906 (uri (string-append
6907 "https://github.com/linktohack/evil-commentary/archive/v"
6908 version ".tar.gz"))
6909 (file-name (string-append name "-" version ".tar.gz"))
6910 (sha256
6911 (base32
6912 "1jdya0i921nwskwrzdsj0vrr3m7gm49dy6f6pk9p5nxaarfxk230"))))
6913 (build-system emacs-build-system)
6914 (propagated-inputs
6915 `(("emacs-evil" ,emacs-evil)))
6916 (home-page "https://github.com/linktohack/evil-commentary")
6917 (synopsis "Comment out code in evil mode")
6918 (description "@code{emacs-evil-commentary} adds keybindings to easily
6919 comment out lines of code in evil mode. It provides @code{gcc} to comment out
6920 lines, and @code{gc} to comment out the target of a motion.")
6921 (license license:gpl3+)))
6922
6923 ;; Tests for emacs-ansi have a circular dependency with ert-runner, and
6924 ;; therefore cannot be run
6925 (define-public emacs-ansi
6926 (package
6927 (name "emacs-ansi")
6928 (version "0.4.1")
6929 (source
6930 (origin
6931 (method url-fetch)
6932 (uri (string-append "https://github.com/rejeep/ansi.el/archive/v"
6933 version ".tar.gz"))
6934 (file-name (string-append name "-" version ".tar.gz"))
6935 (sha256
6936 (base32
6937 "13jj4vbi98j3p17hs99bmy7g21jd5h4v3wpxk4pkvhylm3bfwjw8"))))
6938 (build-system emacs-build-system)
6939 (propagated-inputs
6940 `(("emacs-dash" ,emacs-dash)
6941 ("emacs-s" ,emacs-s)))
6942 (home-page "https://github.com/rejeep/ansi.el")
6943 (synopsis "Convert strings to ANSI")
6944 (description "@code{emacs-ansi} defines functions that turns simple
6945 strings to ANSI strings. Turning a string into an ANSI string can be to add
6946 color to a text, add color in the background of a text or adding a style, such
6947 as bold, underscore or italic.")
6948 (license license:gpl3+)))
6949
6950 ;; Tests for emacs-commander have a circular dependency with ert-runner, and
6951 ;; therefore cannot be run
6952 (define-public emacs-commander
6953 (package
6954 (name "emacs-commander")
6955 (version "0.7.0")
6956 (source
6957 (origin
6958 (method url-fetch)
6959 (uri (string-append "https://github.com/rejeep/commander.el/archive/v"
6960 version ".tar.gz"))
6961 (file-name (string-append name "-" version ".tar.gz"))
6962 (sha256
6963 (base32
6964 "196s2i15z7gwxa97l1wkxvjnfmj5n38wwm6d3g4zz15l2vqggc2y"))))
6965 (build-system emacs-build-system)
6966 (propagated-inputs
6967 `(("emacs-dash" ,emacs-dash)
6968 ("emacs-f" ,emacs-f)
6969 ("emacs-s" ,emacs-s)))
6970 (home-page "https://github.com/rejeep/commander.el")
6971 (synopsis "Emacs command line parser")
6972 (description "@code{emacs-commander} provides command line parsing for
6973 Emacs.")
6974 (license license:gpl3+)))
6975
6976 ;; Tests for ert-runner have a circular dependency with ecukes, and therefore
6977 ;; cannot be run
6978 (define-public emacs-ert-runner
6979 (let ((version "0.7.0")
6980 (revision "1")
6981 (commit "90b8fdd5970ef76a4649be60003b37f82cdc1a65"))
6982 (package
6983 (name "emacs-ert-runner")
6984 (version (git-version "0.7.0" revision commit))
6985 (source
6986 (origin
6987 (method git-fetch)
6988 (uri (git-reference
6989 (url "https://github.com/rejeep/ert-runner.el.git")
6990 (commit commit)))
6991 (file-name (git-file-name name version))
6992 (sha256
6993 (base32
6994 "04nxmyzncacj2wmzd84vv9wkkr2dk9lcb10dvygqmg3p1gadnwzz"))))
6995 (build-system emacs-build-system)
6996 (inputs
6997 `(("emacs-ansi" ,emacs-ansi)
6998 ("emacs-commander" ,emacs-commander)
6999 ("emacs-dash" ,emacs-dash)
7000 ("emacs-f" ,emacs-f)
7001 ("emacs-s" ,emacs-s)
7002 ("emacs-shut-up" ,emacs-shut-up)))
7003 (arguments
7004 `(#:phases
7005 (modify-phases %standard-phases
7006 (add-after 'install 'install-executable
7007 (lambda* (#:key inputs outputs #:allow-other-keys)
7008 (let ((out (assoc-ref outputs "out"))
7009 (source-directory (string-append
7010 (getenv "TMPDIR") "/source")))
7011 (substitute* "bin/ert-runner"
7012 (("ERT_RUNNER=\"\\$\\(dirname \\$\\(dirname \\$0\\)\\)")
7013 (string-append "ERT_RUNNER=\"" out
7014 "/share/emacs/site-lisp/guix.d/ert-runner-"
7015 ,version)))
7016 (install-file "bin/ert-runner" (string-append out "/bin"))
7017 (wrap-program (string-append out "/bin/ert-runner")
7018 (list "EMACSLOADPATH" ":" 'prefix
7019 ;; Do not capture the transient source directory in
7020 ;; the wrapper.
7021 (delete source-directory
7022 (string-split (getenv "EMACSLOADPATH") #\:))))
7023 #t))))
7024 #:include (cons* "^reporters/.*\\.el$" %default-include)))
7025 (home-page "https://github.com/rejeep/ert-runner.el")
7026 (synopsis "Opinionated Ert testing workflow")
7027 (description "@code{ert-runner} is a tool for Emacs projects tested
7028 using ERT. It assumes a certain test structure setup and can therefore make
7029 running tests easier.")
7030 (license license:gpl3+))))
7031
7032 (define-public ert-runner
7033 (deprecated-package "ert-runner" emacs-ert-runner))
7034
7035 (define-public emacs-disable-mouse
7036 (package
7037 (name "emacs-disable-mouse")
7038 (version "0.2")
7039 (source
7040 (origin
7041 (method url-fetch)
7042 (uri (string-append
7043 "https://github.com/purcell/disable-mouse/archive/"
7044 version ".tar.gz"))
7045 (file-name (string-append name "-" version ".tar.gz"))
7046 (sha256
7047 (base32
7048 "0haqpq23r1wx04lsqrrg3p5visg9hx5i36dg55ab003wfsrlrzbc"))))
7049 (build-system emacs-build-system)
7050 (home-page "https://github.com/purcell/disable-mouse")
7051 (synopsis "Disable mouse commands globally")
7052 (description
7053 "Provides @code{disable-mouse-mode} and @code{global-disable-mouse-mode},
7054 pair of minor modes which suppress all mouse events by intercepting them and
7055 running a customisable handler command (@code{ignore} by default). ")
7056 (license license:gpl3+)))
7057
7058 (define-public emacs-json-reformat
7059 (package
7060 (name "emacs-json-reformat")
7061 (version "0.0.6")
7062 (source
7063 (origin
7064 (method url-fetch)
7065 (uri (string-append "https://github.com/gongo/json-reformat/archive/"
7066 version ".tar.gz"))
7067 (file-name (string-append name "-" version ".tar.gz"))
7068 (sha256
7069 (base32
7070 "11fbq4scrgr7m0iwnzcrn2g7xvqwm2gf82sa7zy1l0nil7265p28"))
7071 (patches (search-patches "emacs-json-reformat-fix-tests.patch"))))
7072 (build-system emacs-build-system)
7073 (propagated-inputs
7074 `(("emacs-undercover" ,emacs-undercover)))
7075 (native-inputs
7076 `(("emacs-dash" ,emacs-dash)
7077 ("emacs-shut-up" ,emacs-shut-up)
7078 ("ert-runner" ,emacs-ert-runner)))
7079 (arguments
7080 `(#:tests? #t
7081 #:test-command '("ert-runner")
7082 #:phases
7083 (modify-phases %standard-phases
7084 (add-before 'check 'delete-json-objects-order-test
7085 (lambda _
7086 (emacs-batch-edit-file "test/json-reformat-test.el"
7087 `(progn (progn (goto-char (point-min))
7088 (re-search-forward
7089 "ert-deftest json-reformat-test:json-reformat-region")
7090 (beginning-of-line)
7091 (kill-sexp))
7092 (basic-save-buffer)))
7093 #t)))))
7094 (home-page "https://github.com/gongo/json-reformat")
7095 (synopsis "Reformatting tool for JSON")
7096 (description "@code{json-reformat} provides a reformatting tool for
7097 @url{http://json.org/, JSON}.")
7098 (license license:gpl3+)))
7099
7100 (define-public emacs-json-snatcher
7101 (package
7102 (name "emacs-json-snatcher")
7103 (version "1.0.0")
7104 (source
7105 (origin
7106 (method url-fetch)
7107 (uri (string-append "https://github.com/Sterlingg/json-snatcher/archive/"
7108 version ".tar.gz"))
7109 (file-name (string-append name "-" version ".tar.gz"))
7110 (sha256
7111 (base32
7112 "1nfiwsifpdiz0lbrqa77nl0crnfrv5h85ans9b0g5rggnmyshcfb"))))
7113 (build-system emacs-build-system)
7114 (home-page "https://github.com/sterlingg/json-snatcher")
7115 (synopsis "Grabs the path to JSON values in a JSON file")
7116 (description "@code{emacs-json-snatcher} grabs the path to JSON values in
7117 a @url{http://json.org/, JSON} file.")
7118 (license license:gpl3+)))
7119
7120 (define-public emacs-json-mode
7121 (package
7122 (name "emacs-json-mode")
7123 (version "1.7.0")
7124 (source
7125 (origin
7126 (method url-fetch)
7127 (uri (string-append "https://github.com/joshwnj/json-mode/archive/"
7128 "v" version ".tar.gz"))
7129 (file-name (string-append name "-" version ".tar.gz"))
7130 (sha256
7131 (base32
7132 "06h45p4cn767pk9sqi2zb1c65wy5gyyijqxzpglp80zwxhvajdz5"))))
7133 (build-system emacs-build-system)
7134 (propagated-inputs
7135 `(("emacs-json-reformat" ,emacs-json-reformat)
7136 ("emacs-json-snatcher" ,emacs-json-snatcher)))
7137 (home-page "https://github.com/joshwnj/json-mode")
7138 (synopsis "Major mode for editing JSON files")
7139 (description "@code{json-mode} extends the builtin js-mode syntax
7140 highlighting.")
7141 (license license:gpl3+)))
7142
7143 (define-public emacs-restclient
7144 (let ((commit "07a3888bb36d0e29608142ebe743b4362b800f40")
7145 (revision "1")) ;Guix package revision,
7146 ;upstream doesn't have official releases
7147 (package
7148 (name "emacs-restclient")
7149 (version (string-append revision "."
7150 (string-take commit 7)))
7151 (source (origin
7152 (method git-fetch)
7153 (uri (git-reference
7154 (url "https://github.com/pashky/restclient.el.git")
7155 (commit commit)))
7156 (sha256
7157 (base32
7158 "00lmjhb5im1kgrp54yipf1h9pshxzgjlg71yf2rq5n973gvb0w0q"))
7159 (file-name (git-file-name name version))))
7160 (build-system emacs-build-system)
7161 (propagated-inputs
7162 `(("emacs-helm" ,emacs-helm)))
7163 (home-page "https://github.com/pashky/restclient.el")
7164 (synopsis "Explore and test HTTP REST webservices")
7165 (description
7166 "This tool allows for testing and exploration of HTTP REST Web services
7167 from within Emacs. Restclient runs queries from a plan-text query sheet,
7168 displays results pretty-printed in XML or JSON with @code{restclient-mode}")
7169 (license license:public-domain))))
7170
7171 (define-public emacs-eimp
7172 (let ((version "1.4.0")
7173 (commit "2e7536fe6d8f7faf1bad7a8ae37faba0162c3b4f")
7174 (revision "1"))
7175 (package
7176 (name "emacs-eimp")
7177 (version (git-version version revision commit))
7178 (source
7179 (origin
7180 (method git-fetch)
7181 (uri (git-reference
7182 (url "https://github.com/nicferrier/eimp.git")
7183 (commit commit)))
7184 (file-name (git-file-name name version))
7185 (sha256
7186 (base32
7187 "154d57yafxbcf39r89n5j43c86rp2fki3lw3gwy7ww2g6qkclcra"))))
7188 (build-system emacs-build-system)
7189 (arguments
7190 `(#:phases
7191 (modify-phases %standard-phases
7192 (add-after 'unpack 'configure
7193 (lambda* (#:key inputs #:allow-other-keys)
7194 (let ((imagemagick (assoc-ref inputs "imagemagick")))
7195 ;; eimp.el is read-only in git.
7196 (chmod "eimp.el" #o644)
7197 (emacs-substitute-variables "eimp.el"
7198 ("eimp-mogrify-program"
7199 (string-append imagemagick "/bin/mogrify"))))
7200 #t)))))
7201 (inputs
7202 `(("imagemagick" ,imagemagick)))
7203 (home-page "https://github.com/nicferrier/eimp")
7204 (synopsis "Interactive image manipulation utility for Emacs")
7205 (description "@code{emacs-eimp} allows interactive image manipulation
7206 from within Emacs. It uses the code@{mogrify} utility from ImageMagick to do
7207 the actual transformations.")
7208 (license license:gpl2+))))
7209
7210 (define-public emacs-dired-hacks
7211 (let ((commit "eda68006ce73bbf6b9b995bfd70d08bec8cade36")
7212 (revision "1"))
7213 (package
7214 (name "emacs-dired-hacks")
7215 (version (string-append "0.0.1-" revision "."
7216 (string-take commit 7)))
7217 (source (origin
7218 (method git-fetch)
7219 (uri (git-reference
7220 (url "https://github.com/Fuco1/dired-hacks.git")
7221 (commit commit)))
7222 (file-name (string-append name "-" version "-checkout"))
7223 (sha256
7224 (base32
7225 "1w7ssl9zssn5rcha6apf4h8drkd02k4xgvs203bdbqyqp9wz9brx"))))
7226 (build-system emacs-build-system)
7227 (propagated-inputs
7228 `(("emacs-dash" ,emacs-dash)
7229 ("emacs-eimp" ,emacs-eimp)
7230 ("emacs-f" ,emacs-f)
7231 ("emacs-s" ,emacs-s)))
7232 (home-page "https://github.com/Fuco1/dired-hacks")
7233 (synopsis
7234 "Collection of useful dired additions")
7235 (description
7236 "Collection of Emacs dired mode additions:
7237 @itemize
7238 @item dired-avfs
7239 @item dired-columns
7240 @item dired-filter
7241 @item dired-hacks-utils
7242 @item dired-images
7243 @item dired-list
7244 @item dired-narrow
7245 @item dired-open
7246 @item dired-rainbow
7247 @item dired-ranger
7248 @item dired-subtree
7249 @item dired-tagsistant
7250 @end itemize\n")
7251 (license license:gpl3+))))
7252
7253 (define-public emacs-dired-sidebar
7254 (let ((commit "06bd0d40bab812c61a668129daf29ba359424454")
7255 (revision "0"))
7256 (package
7257 (name "emacs-dired-sidebar")
7258 (home-page "https://github.com/jojojames/dired-sidebar")
7259 (version (git-version "0.0.1" revision commit))
7260 (source (origin
7261 (method git-fetch)
7262 (uri (git-reference (url home-page) (commit commit)))
7263 (sha256
7264 (base32
7265 "0lvwvq6sl80sha9fq5m4568sg534dhmifyjqw75bqddcbf3by84x"))))
7266 (build-system emacs-build-system)
7267 (propagated-inputs
7268 `(("emacs-dired-subtree" ,emacs-dired-hacks)))
7269 (synopsis "Sidebar for Emacs using Dired")
7270 (description
7271 "This package provides a sidebar for Emacs similar to @code{NeoTree}
7272 or @code{treemacs}, but leveraging @code{Dired} to do the job of display.")
7273 (license license:gpl3+))))
7274
7275 (define-public emacs-which-key
7276 (package
7277 (name "emacs-which-key")
7278 (version "3.3.1")
7279 (source
7280 (origin
7281 (method url-fetch)
7282 (uri (string-append
7283 "https://github.com/justbur/emacs-which-key/archive/v"
7284 version ".tar.gz"))
7285 (sha256
7286 (base32
7287 "1g8k0js21bc8mlw6hvmg93zgfjhil77c30cv1hf85y4qb9ldvika"))
7288 (file-name (string-append name "-" version ".tar.gz"))))
7289 (build-system emacs-build-system)
7290 (arguments
7291 `(#:tests? #t
7292 #:test-command '("emacs" "--batch"
7293 "-l" "which-key-tests.el"
7294 "-f" "ert-run-tests-batch-and-exit")))
7295 (home-page "https://github.com/justbur/emacs-which-key")
7296 (synopsis "Display available key bindings in popup")
7297 (description
7298 "@code{emacs-which-key} is a minor mode for Emacs that displays the key
7299 bindings following your currently entered incomplete command (a prefix) in a
7300 popup. For example, after enabling the minor mode if you enter C-x and wait
7301 for the default of 1 second, the minibuffer will expand with all of the
7302 available key bindings that follow C-x (or as many as space allows given your
7303 settings).")
7304 (license license:gpl3+)))
7305
7306 (define-public emacs-ws-butler
7307 (package
7308 (name "emacs-ws-butler")
7309 (version "0.6")
7310 (source (origin
7311 (method git-fetch)
7312 (uri (git-reference
7313 (url "https://github.com/lewang/ws-butler.git")
7314 (commit "323b651dd70ee40a25accc940b8f80c3a3185205")))
7315 (file-name (string-append name "-" version "-checkout"))
7316 (sha256
7317 (base32
7318 "1a4b0lsmwq84qfx51c5xy4fryhb1ysld4fhgw2vr37izf53379sb"))))
7319 (build-system emacs-build-system)
7320 (native-inputs
7321 `(("ert-runner" ,emacs-ert-runner)))
7322 (arguments
7323 `(#:tests? #t
7324 #:test-command '("ert-runner" "tests")))
7325 (home-page "https://github.com/lewang/ws-butler")
7326 (synopsis "Trim spaces from end of lines")
7327 (description
7328 "This Emacs package automatically and unobtrusively trims whitespace
7329 characters from end of lines.")
7330 (license license:gpl3+)))
7331
7332 (define-public emacs-org-edit-latex
7333 (package
7334 (name "emacs-org-edit-latex")
7335 (version "0.8.0")
7336 (source
7337 (origin
7338 (method url-fetch)
7339 (uri (string-append
7340 "https://github.com/et2010/org-edit-latex/archive/v"
7341 version ".tar.gz"))
7342 (file-name (string-append name "-" version ".tar.gz"))
7343 (sha256
7344 (base32
7345 "1y4h6wrs8286h9pbsv4d8fr67a885vz8b2k80qgv5qddipi2i78p"))))
7346 (build-system emacs-build-system)
7347 (propagated-inputs
7348 `(("emacs-auctex" ,emacs-auctex)
7349 ;; The version of org in Emacs 25.2 is not sufficient, because the
7350 ;; `org-latex-make-preamble' function is required.
7351 ("emacs-org" ,emacs-org)))
7352 (home-page "https://github.com/et2010/org-edit-latex")
7353 (synopsis "Edit a latex fragment just like editing a src block")
7354 (description "@code{emacs-org-edit-latex} is an extension for org-mode.
7355 It lets you edit a latex fragment in a dedicated buffer just like editing a
7356 src block.")
7357 (license license:gpl3+)))
7358
7359 (define-public emacs-emamux
7360 (package
7361 (name "emacs-emamux")
7362 (version "0.14")
7363 (source (origin
7364 (method url-fetch)
7365 (uri (string-append
7366 "https://github.com/syohex/emacs-emamux/archive/"
7367 version ".tar.gz"))
7368 (file-name (string-append name "-" version ".tar.gz"))
7369 (sha256
7370 (base32
7371 "0wlqg4icy037bj70b0qmhvwvmiwhagpnx6pnxhq6gzy1hvwlilkx"))))
7372 (build-system emacs-build-system)
7373 (home-page "https://github.com/syohex/emacs-emamux")
7374 (synopsis "Manipulate Tmux from Emacs")
7375 (description
7376 "@code{emacs-emamux} lets Emacs interact with the @code{tmux} terminal
7377 multiplexer.")
7378 (license license:gpl3+)))
7379
7380 (define-public emacs-rpm-spec-mode
7381 (package
7382 (name "emacs-rpm-spec-mode")
7383 (version "0.16")
7384 (source
7385 (origin
7386 (method url-fetch)
7387 ;; URI has the Fedora release number instead of the version
7388 ;; number. This will have to updated manually every new release.
7389 (uri (string-append
7390 "https://src.fedoraproject.org/cgit/rpms"
7391 "/emacs-rpm-spec-mode.git/snapshot"
7392 "/emacs-rpm-spec-mode-f26.tar.gz"))
7393 (sha256
7394 (base32
7395 "17dz80lhjrc89fj17pysl8slahzrqdkxgcjdk55zls6jizkr6kz3"))))
7396 (build-system emacs-build-system)
7397 (home-page "http://pkgs.fedoraproject.org/cgit/rpms/emacs-rpm-spec-mode.git")
7398 (synopsis "Emacs major mode for editing RPM spec files")
7399 (description "@code{emacs-rpm-spec-mode} provides an Emacs major mode for
7400 editing RPM spec files.")
7401 (license license:gpl2+)))
7402
7403 (define-public emacs-git-messenger
7404 (package
7405 (name "emacs-git-messenger")
7406 (version "0.18")
7407 (source
7408 (origin
7409 (method url-fetch)
7410 (uri (string-append
7411 "https://github.com/syohex/emacs-git-messenger/archive/"
7412 version ".tar.gz"))
7413 (file-name (string-append name "-" version ".tar.gz"))
7414 (sha256
7415 (base32
7416 "17mqki6g0wx46fn7dcbcc2pjxik7vvrcb1j9jzxim8b9psbsbnp9"))))
7417 (build-system emacs-build-system)
7418 (propagated-inputs
7419 `(("emacs-popup" ,emacs-popup)))
7420 (arguments
7421 `(#:tests? #t
7422 #:test-command '("emacs" "--batch" "-l" "test/test.el"
7423 "-f" "ert-run-tests-batch-and-exit")))
7424 (home-page "https://github.com/syohex/emacs-git-messenger")
7425 (synopsis "Popup commit message at current line")
7426 (description "@code{emacs-git-messenger} provides
7427 @code{git-messenger:popup-message}, a function that when called, will popup
7428 the last git commit message for the current line. This uses git-blame
7429 internally.")
7430 (license license:gpl3+)))
7431
7432 (define-public emacs-gitpatch
7433 (package
7434 (name "emacs-gitpatch")
7435 (version "0.5.0")
7436 (source
7437 (origin
7438 (method url-fetch)
7439 (uri (string-append "https://github.com/tumashu/gitpatch/archive/"
7440 "v" version ".tar.gz"))
7441 (file-name (string-append name "-" version ".tar.gz"))
7442 (sha256
7443 (base32
7444 "1yj6pmic541lcnscjin300k380qp9xdfprs55xg1q57jrkq6f6k7"))))
7445 (build-system emacs-build-system)
7446 (home-page "https://github.com/tumashu/gitpatch")
7447 (synopsis "Mail git patch from Emacs")
7448 (description "@code{emacs-gitpatch} lets users easily send git patches,
7449 created by @code{git format-patch}, from @code{magit}, @code{dired} and
7450 @code{ibuffer} buffers.")
7451 (license license:gpl3+)))
7452
7453 (define-public emacs-erc-hl-nicks
7454 (package
7455 (name "emacs-erc-hl-nicks")
7456 (version "1.3.3")
7457 (source
7458 (origin
7459 (method url-fetch)
7460 (uri (string-append "https://github.com/leathekd/erc-hl-nicks"
7461 "/archive/" version ".tar.gz"))
7462 (file-name (string-append name "-" version ".tar.gz"))
7463 (sha256
7464 (base32
7465 "1a1r2kc3688g8c2ybkpwh88kgmnqhg3h3032g2yn4zr9m0n3vpkr"))))
7466 (build-system emacs-build-system)
7467 (synopsis "Nickname highlighting for Emacs ERC")
7468 (description "@code{erc-hl-nicks} highlights nicknames in ERC, an IRC
7469 client for Emacs. The main features are:
7470 @itemize
7471 @item Auto-colorizes nicknames without having to specify colors
7472 @item Ignores certain characters that IRC clients add to nicknames to avoid
7473 duplicates (nickname, nickname’, nickname\", etc.)
7474 @item Attempts to produce colors with a sufficient amount of contrast between
7475 the nick color and the background color
7476 @end itemize\n")
7477 (home-page "https://github.com/leathekd/erc-hl-nicks")
7478 (license license:gpl3+)))
7479
7480 (define-public emacs-engine-mode
7481 (package
7482 (name "emacs-engine-mode")
7483 (version "2.0.0")
7484 (source
7485 (origin
7486 (method url-fetch)
7487 (uri (string-append "https://github.com/hrs/engine-mode/archive/"
7488 "v" version ".tar.gz"))
7489 (file-name (string-append name "-" version ".tar.gz"))
7490 (sha256
7491 (base32
7492 "1vm4p7pcp1vnwwxvps1bhm7i7hkabqqxl898knxf2hqvxys76684"))))
7493 (build-system emacs-build-system)
7494 (synopsis "Minor mode for defining and querying search engines")
7495 (description "@code{engine-mode} is a global minor mode for Emacs. It
7496 enables you to easily define search engines, bind them to keybindings, and
7497 query them from the comfort of your editor.")
7498 (home-page "https://github.com/hrs/engine-mode")
7499 (license license:gpl3+)))
7500
7501 (define-public emacs-prop-menu
7502 (package
7503 (name "emacs-prop-menu")
7504 (version "0.1.2")
7505 (source
7506 (origin
7507 (method url-fetch)
7508 (uri (string-append
7509 "http://stable.melpa.org/packages/prop-menu-"
7510 version ".el"))
7511 (sha256
7512 (base32
7513 "01bk4sjafzz7gqrkv9jg0pa85qr34vbk3q8ga2b0m61bndywzgpr"))))
7514 (build-system emacs-build-system)
7515 (home-page
7516 "https://github.com/david-christiansen/prop-menu-el")
7517 (synopsis
7518 "Create and display a context menu based on text and overlay properties")
7519 (description
7520 "This is a library for computing context menus based on text
7521 properties and overlays. The intended use is to have tools that
7522 annotate source code and others that use these annotations, without
7523 requiring a direct coupling between them, but maintaining
7524 discoverability.
7525
7526 Major modes that wish to use this library should first define an
7527 appropriate value for @code{prop-menu-item-functions}. Then, they should
7528 bind @code{prop-menu-by-completing-read} to an appropriate
7529 key. Optionally, a mouse pop-up can be added by binding
7530 @code{prop-menu-show-menu} to a mouse event.")
7531 (license license:gpl3+)))
7532
7533 (define-public emacs-idris-mode
7534 (package
7535 (name "emacs-idris-mode")
7536 (version "0.9.19")
7537 (source
7538 (origin
7539 (method url-fetch)
7540 (uri (string-append
7541 "http://stable.melpa.org/packages/idris-mode-"
7542 version ".tar"))
7543 (sha256
7544 (base32
7545 "02r1qqsxi6qk7q4cj6a6pygbj856dcw9vcmhfh0ib92j41v77q6y"))))
7546 (build-system emacs-build-system)
7547 (propagated-inputs
7548 `(("emacs-prop-menu" ,emacs-prop-menu)))
7549 (home-page
7550 "https://github.com/idris-hackers/idris-mode")
7551 (synopsis "Major mode for editing Idris code")
7552 (description
7553 "This is an Emacs mode for editing Idris code. It requires the latest
7554 version of Idris, and some features may rely on the latest Git version of
7555 Idris.")
7556 (license license:gpl3+)))
7557
7558 (define-public emacs-browse-at-remote
7559 (package
7560 (name "emacs-browse-at-remote")
7561 (version "0.10.0")
7562 (source
7563 (origin
7564 (method url-fetch)
7565 (uri (string-append
7566 "https://github.com/rmuslimov/browse-at-remote/archive/"
7567 version ".tar.gz"))
7568 (file-name (string-append name "-" version ".tar.gz"))
7569 (sha256
7570 (base32
7571 "0ymslsp6i1naw25zckv25bf4aaq6qwkbkn95qyzlwg869l802686"))))
7572 (build-system emacs-build-system)
7573 (propagated-inputs
7574 `(("emacs-f" ,emacs-f)
7575 ("emacs-s" ,emacs-s)))
7576 (native-inputs
7577 `(("ert-runner" ,emacs-ert-runner)))
7578 (arguments
7579 `(#:tests? #t
7580 #:test-command '("ert-runner")))
7581 (home-page "https://github.com/rmuslimov/browse-at-remote")
7582 (synopsis "Open github/gitlab/bitbucket/stash page from Emacs")
7583 (description
7584 "This Emacs package allows you to open a target page on
7585 github/gitlab (or bitbucket) by calling @code{browse-at-remote} command.
7586 It supports dired buffers and opens them in tree mode at destination.")
7587 (license license:gpl3+)))
7588
7589 (define-public emacs-tiny
7590 (package
7591 (name "emacs-tiny")
7592 (version "0.2.1")
7593 (source
7594 (origin
7595 (method url-fetch)
7596 (uri (string-append "http://elpa.gnu.org/packages/tiny-" version ".tar"))
7597 (sha256
7598 (base32
7599 "1cr73a8gba549ja55x0c2s554f3zywf69zbnd7v82jz5q1k9wd2v"))))
7600 (build-system emacs-build-system)
7601 (home-page "https://github.com/abo-abo/tiny")
7602 (synopsis "Quickly generate linear ranges in Emacs")
7603 (description
7604 "The main command of the @code{tiny} extension for Emacs is @code{tiny-expand}.
7605 It is meant to quickly generate linear ranges, e.g. 5, 6, 7, 8. Some elisp
7606 proficiency is an advantage, since you can transform your numeric range with
7607 an elisp expression.")
7608 (license license:gpl3+)))
7609
7610 (define-public emacs-emojify
7611 (package
7612 (name "emacs-emojify")
7613 (version "0.4")
7614 (source
7615 (origin
7616 (method url-fetch)
7617 (uri (string-append "https://github.com/iqbalansari/emacs-emojify/"
7618 "releases/download/v" version "/emojify-"
7619 version ".tar"))
7620 (sha256
7621 (base32
7622 "0k84v2d2bkiwcky9fi1yyprgkj46g7wh6pyl9gzmcd7sqv051d5n"))))
7623 (build-system emacs-build-system)
7624 (arguments
7625 `(#:phases
7626 (modify-phases %standard-phases
7627 (add-after 'install 'install-data
7628 (lambda* (#:key outputs #:allow-other-keys)
7629 (copy-recursively "data"
7630 (string-append (assoc-ref outputs "out")
7631 "/share/emacs/site-lisp/guix.d/"
7632 "emojify-" ,version "/data"))
7633 #t)))))
7634 (propagated-inputs
7635 `(("emacs-ht" ,emacs-ht)))
7636 (home-page "https://github.com/iqbalansari/emacs-emojify")
7637 (synopsis "Display emojis in Emacs")
7638 (description "This package displays emojis in Emacs similar to how Github,
7639 Slack, and other websites do. It can display plain ASCII like @code{:)} as
7640 well as Github-style emojis like @code{:smile:}. It provides a minor mode
7641 @code{emojify-mode} to enable the display of emojis in a buffer.")
7642 (license license:gpl3+)))
7643
7644 (define-public emacs-websocket
7645 (package
7646 (name "emacs-websocket")
7647 (version "1.10")
7648 (source
7649 (origin
7650 (method git-fetch)
7651 (uri (git-reference
7652 (url "https://github.com/ahyatt/emacs-websocket.git")
7653 (commit version)))
7654 (file-name (string-append name "-" version "-checkout"))
7655 (sha256
7656 (base32
7657 "1dgrf7na6r6mmkknphzshlbd5fnzisg0qn0j7vfpa38wgsymaq52"))))
7658 (build-system emacs-build-system)
7659 (home-page "http://elpa.gnu.org/packages/websocket.html")
7660 (synopsis "Emacs WebSocket client and server")
7661 (description "This is an Elisp library for WebSocket clients to talk to
7662 WebSocket servers, and for WebSocket servers to accept connections from
7663 WebSocket clients. This library is designed to be used by other library
7664 writers, to write applications that use WebSockets, and is not useful by
7665 itself.")
7666 (license license:gpl3+)))
7667
7668 (define-public emacs-oauth2
7669 (package
7670 (name "emacs-oauth2")
7671 (version "0.11")
7672 (source
7673 (origin
7674 (method url-fetch)
7675 (uri (string-append "https://elpa.gnu.org/packages/oauth2-"
7676 version ".el"))
7677 (sha256
7678 (base32
7679 "0ydkc9jazsnbbvfhd47mql52y7k06n3z7r0naqxkwb99j9blqsmp"))))
7680 (build-system emacs-build-system)
7681 (home-page "http://elpa.gnu.org/packages/oauth2.html")
7682 (synopsis "OAuth 2.0 authorization protocol implementation")
7683 (description
7684 "This package provides an Elisp implementation of the OAuth 2.0 draft.
7685 The main entry point is @code{oauth2-auth-and-store} which will return a token
7686 structure. This token structure can be then used with
7687 @code{oauth2-url-retrieve-synchronously} or @code{oauth2-url-retrieve} to
7688 retrieve any data that need OAuth authentication to be accessed. If the token
7689 needs to be refreshed, the code handles it automatically and stores the new
7690 value of the access token.")
7691 (license license:gpl3+)))
7692
7693 (define-public emacs-circe
7694 (package
7695 (name "emacs-circe")
7696 (version "2.10")
7697 (source
7698 (origin
7699 (method git-fetch)
7700 (uri (git-reference
7701 (url "https://github.com/jorgenschaefer/circe.git")
7702 (commit (string-append "v" version))))
7703 (file-name (git-file-name name version))
7704 (sha256
7705 (base32
7706 "10gi14kwxd81blddpvqh95lgmpbfgp0m955naxix3bs3r6a75n4s"))))
7707 (build-system emacs-build-system)
7708 (arguments
7709 `(#:tests? #t
7710 #:test-command '("buttercup" "-L" ".")
7711 #:phases
7712 (modify-phases %standard-phases
7713 ;; The HOME environment variable should be set to an existing
7714 ;; directory for the tests to succeed.
7715 (add-before 'check 'set-home
7716 (lambda _
7717 (setenv "HOME" "/tmp")
7718 #t)))))
7719 (native-inputs
7720 `(("emacs-buttercup" ,emacs-buttercup)))
7721 ;; In order to securely connect to an IRC server using TLS, Circe requires
7722 ;; the GnuTLS binary.
7723 (propagated-inputs
7724 `(("gnutls" ,gnutls)))
7725 (home-page "https://github.com/jorgenschaefer/circe")
7726 (synopsis "Client for IRC in Emacs")
7727 (description "Circe is a Client for IRC in Emacs. It integrates well with
7728 the rest of the editor, using standard Emacs key bindings and indicating
7729 activity in channels in the status bar so it stays out of your way unless you
7730 want to use it.")
7731 (license license:gpl3+)))
7732
7733 (define-public emacs-tracking
7734 (package
7735 (inherit emacs-circe)
7736 (name "emacs-tracking")
7737 (arguments
7738 ;; "tracking.el" is a library extracted from Circe package. It requires
7739 ;; "shorten.el".
7740 `(#:include '("^shorten.el$" "^tracking.el$")
7741 ,@(package-arguments emacs-circe)))
7742 (home-page "https://github.com/jorgenschaefer/circe/wiki/Tracking")
7743 (synopsis "Buffer tracking library")
7744 (description "@code{tracking.el} provides a way for different modes to
7745 notify the user that a buffer needs attention. The user then can cycle
7746 through them using @key{C-c C-SPC}.")
7747 (license license:gpl3+)))
7748
7749 (define-public emacs-slack
7750 (let ((commit "99a57501629a0329a9ca090c1ea1296462eda02d")
7751 (revision "5"))
7752 (package
7753 (name "emacs-slack")
7754 (version (git-version "0.0.2" revision commit))
7755 (source (origin
7756 (method git-fetch)
7757 (uri (git-reference
7758 (url "https://github.com/yuya373/emacs-slack.git")
7759 (commit commit)))
7760 (file-name (git-file-name name commit))
7761 (sha256
7762 (base32
7763 "0jw1diypfw8pmzkq0napgxmfc0gqka7zcccgnw359604lr30k2z2"))))
7764 (build-system emacs-build-system)
7765 (propagated-inputs
7766 `(("emacs-alert" ,emacs-alert)
7767 ("emacs-emojify" ,emacs-emojify)
7768 ("emacs-helm" ,emacs-helm)
7769 ("emacs-request" ,emacs-request)
7770 ("emacs-websocket" ,emacs-websocket)
7771 ("emacs-oauth2" ,emacs-oauth2)
7772 ("emacs-circe" ,emacs-circe)))
7773 (home-page "https://github.com/yuya373/emacs-slack")
7774 (synopsis "Slack client for Emacs")
7775 (description "This package provides an Emacs client for the Slack
7776 messaging service.")
7777 (license license:gpl3+))))
7778
7779 (define-public emacs-bash-completion
7780 (package
7781 (name "emacs-bash-completion")
7782 (version "2.1.0")
7783 (source
7784 (origin
7785 (method url-fetch)
7786 (uri (string-append
7787 "https://github.com/szermatt/emacs-bash-completion/archive/v"
7788 version ".tar.gz"))
7789 (file-name (string-append name "-" version ".tar.gz"))
7790 (sha256
7791 (base32
7792 "1z0qck3v3ra6ivacn8n04w1v33a4xn01xx860761q31qzsv3sksq"))))
7793 (inputs `(("bash" ,bash)))
7794 (build-system emacs-build-system)
7795 (arguments
7796 `(#:phases
7797 (modify-phases %standard-phases
7798 (add-before 'install 'configure
7799 (lambda* (#:key inputs #:allow-other-keys)
7800 (let ((bash (assoc-ref inputs "bash")))
7801 (emacs-substitute-variables "bash-completion.el"
7802 ("bash-completion-prog" (string-append bash "/bin/bash"))))
7803 #t)))))
7804 (home-page "https://github.com/szermatt/emacs-bash-completion")
7805 (synopsis "Bash completion for the shell buffer")
7806 (description
7807 "@code{bash-completion} defines dynamic completion hooks for shell-mode
7808 and shell-command prompts that are based on Bash completion.")
7809 (license license:gpl2+)))
7810
7811 (define-public emacs-easy-kill
7812 (package
7813 (name "emacs-easy-kill")
7814 (version "0.9.3")
7815 (source (origin
7816 (method url-fetch)
7817 (uri (string-append "https://elpa.gnu.org/packages/easy-kill-"
7818 version ".tar"))
7819 (sha256
7820 (base32
7821 "17nw0mglmg877axwg1d0gs03yc0p04lzmd3pl0nsnqbh3303fnqb"))))
7822 (build-system emacs-build-system)
7823 (home-page "https://github.com/leoliu/easy-kill")
7824 (synopsis "Kill and mark things easily in Emacs")
7825 (description
7826 "This package provides commands @code{easy-kill} and @code{easy-mark} to
7827 let users kill or mark things easily.")
7828 (license license:gpl3+)))
7829
7830 (define-public emacs-csv-mode
7831 (package
7832 (name "emacs-csv-mode")
7833 (version "1.7")
7834 (source
7835 (origin
7836 (method url-fetch)
7837 (uri (string-append "http://elpa.gnu.org/packages/csv-mode-"
7838 version ".el"))
7839 (sha256
7840 (base32
7841 "0r4bip0w3h55i8h6sxh06czf294mrhavybz0zypzrjw91m1bi7z6"))))
7842 (build-system emacs-build-system)
7843 (home-page
7844 "http://elpa.gnu.org/packages/csv-mode.html")
7845 (synopsis
7846 "Major mode for editing comma/char separated values")
7847 (description
7848 "This Emacs package implements CSV mode, a major mode for editing records
7849 in a generalized CSV (character-separated values) format.")
7850 (license license:gpl3+)))
7851
7852 (define-public emacs-transmission
7853 (package
7854 (name "emacs-transmission")
7855 (version "0.12.1")
7856 (source (origin
7857 (method url-fetch)
7858 (uri (string-append
7859 "https://github.com/holomorph/transmission/archive/"
7860 version ".tar.gz"))
7861 (file-name (string-append name "-" version ".tar.gz"))
7862 (sha256
7863 (base32
7864 "1rrlgn96gi1ljfwbwvlyyxbq75xzamlbdhq1bpyadxxmxcvlmk3n"))))
7865 (build-system emacs-build-system)
7866 (home-page "https://github.com/holomorph/transmission")
7867 (synopsis "Emacs interface to a Transmission session")
7868 (description "This package provides an Emacs interface to interact with a
7869 running session of the Transmission Bittorrent client.
7870
7871 Features:
7872
7873 @itemize
7874 @item List, add, start/stop, verify, remove torrents.
7875 @item Set speed limits, ratio limits, bandwidth priorities, trackers.
7876 @item Navigate to the corresponding file list, torrent info, peer info
7877 contexts.
7878 @item Toggle downloading and set priorities for individual files.
7879 @end itemize\n")
7880 (license license:gpl3+)))
7881
7882 (define-public emacs-polymode
7883 (package
7884 (name "emacs-polymode")
7885 (version "0.1.5")
7886 (source (origin
7887 (method git-fetch)
7888 (uri (git-reference
7889 (url "https://github.com/vspinu/polymode.git")
7890 (commit (string-append "v" version))))
7891 (file-name (git-file-name name version))
7892 (sha256
7893 (base32
7894 "0wwphs54jx48a3ca6x1qaz56j3j9bg4mv8g2akkffrzbdcb8sbc7"))))
7895 (build-system emacs-build-system)
7896 (arguments
7897 `(#:include (cons* "^modes/.*\\.el$" %default-include)
7898 #:phases
7899 (modify-phases %standard-phases
7900 (add-after 'set-emacs-load-path 'add-modes-subdir-to-load-path
7901 (lambda _
7902 (setenv "EMACSLOADPATH"
7903 (string-append (getenv "EMACSLOADPATH")
7904 ":" (getcwd) "/modes" ":")))))))
7905 (home-page "https://github.com/vspinu/polymode")
7906 (synopsis "Framework for multiple Emacs modes based on indirect buffers")
7907 (description "Polymode is an Emacs package that offers generic support
7908 for multiple major modes inside a single Emacs buffer. It is lightweight,
7909 object oriented and highly extensible. Creating a new polymode typically
7910 takes only a few lines of code. Polymode also provides extensible facilities
7911 for external literate programming tools for exporting, weaving and tangling.")
7912 (license license:gpl3+)))
7913
7914 (define-public emacs-polymode-ansible
7915 (let ((commit "b26094d029e25dc797b94254f797e7807a57e4c8"))
7916 (package
7917 (name "emacs-polymode-ansible")
7918 ;; No upstream version release yet.
7919 (version (git-version "0.1" "1" commit))
7920 (source
7921 (origin
7922 (method git-fetch)
7923 (uri (git-reference
7924 (url "https://gitlab.com/mavit/poly-ansible")
7925 (commit commit)))
7926 (file-name (git-file-name name version))
7927 (sha256
7928 (base32
7929 "055shddqibib3hx2ykwdz910nrqws40cd407mq946l2bf6v87gj6"))))
7930 (build-system emacs-build-system)
7931 (propagated-inputs
7932 `(("emacs-ansible-doc" ,emacs-ansible-doc)
7933 ("emacs-jinja2-mode" ,emacs-jinja2-mode)
7934 ("emacs-polymode" ,emacs-polymode)
7935 ("emacs-yaml-mode" ,emacs-yaml-mode)))
7936 (properties '((upstream-name . "poly-ansible")))
7937 (home-page "https://gitlab.com/mavit/poly-ansible/")
7938 (synopsis "Polymode for Ansible - Jinja2 in YAML")
7939 (description
7940 "Edit YAML files for Ansible containing embedded Jinja2 templating.")
7941 (license license:gpl3+))))
7942
7943 (define-public eless
7944 (package
7945 (name "eless")
7946 (version "0.3")
7947 (source (origin
7948 (method url-fetch)
7949 (uri (string-append
7950 "https://github.com/kaushalmodi/eless/archive/"
7951 "v" version ".tar.gz"))
7952 (file-name (string-append name "-" version ".tar.gz"))
7953 (sha256
7954 (base32
7955 "0gjnnhgw5xs1w3qfnkvwa2nv44gnxr8pkhx3c7qig45p8nh1461h"))))
7956 (build-system trivial-build-system)
7957 (inputs
7958 `(("bash" ,bash)))
7959 (native-inputs
7960 `(("tar" ,tar)
7961 ("gzip" ,gzip)))
7962 (arguments
7963 `(#:modules ((guix build utils))
7964 #:builder
7965 (begin
7966 (use-modules (guix build utils))
7967 (setenv "PATH" (string-append
7968 (assoc-ref %build-inputs "tar") "/bin" ":"
7969 (assoc-ref %build-inputs "gzip") "/bin"))
7970 (invoke "tar" "xvf" (assoc-ref %build-inputs "source"))
7971 (chdir (string-append "eless" "-" ,version))
7972 (substitute* "eless" (("/usr/bin/env bash")
7973 (string-append (assoc-ref %build-inputs "bash")
7974 "/bin/bash")))
7975 (install-file "eless" (string-append %output "/bin"))
7976 (install-file "doc/eless.info" (string-append %output "/share/info"))
7977 #t)))
7978 (home-page "https://github.com/kaushalmodi/eless")
7979 (synopsis "Use Emacs as a paginator")
7980 (description "@code{eless} provides a combination of Bash script
7981 and a minimal Emacs view-mode.
7982
7983 Feautures:
7984
7985 @itemize
7986 @item Independent of a user’s Emacs config.
7987 @item Customizable via the @code{(locate-user-emacs-file \"elesscfg\")} config.
7988 @item Not require an Emacs server to be already running.
7989 @item Syntax highlighting.
7990 @item Org-mode file rendering.
7991 @item @code{man} page viewer.
7992 @item Info viewer.
7993 @item Dired, wdired, (batch edit symbolic links).
7994 @item Colored diffs, git diff, git log, ls with auto ANSI detection.
7995 @item Filter log files lines matching a regexp.
7996 @item Auto-revert log files similar to @code{tail -f}.
7997 @item Quickly change frame and font sizes.
7998 @end itemize\n")
7999 (license license:expat)))
8000
8001 (define-public emacs-evil-matchit
8002 (package
8003 (name "emacs-evil-matchit")
8004 (version "2.2.6")
8005 (source
8006 (origin
8007 (method url-fetch)
8008 (uri (string-append
8009 "https://github.com/redguardtoo/evil-matchit/archive/"
8010 version ".tar.gz"))
8011 (file-name (string-append name "-" version ".tar.gz"))
8012 (sha256
8013 (base32
8014 "1yp9sl6542317mn1060ri90zyf6bs6qylagndhqy02p368q31rhi"))))
8015 (build-system emacs-build-system)
8016 (propagated-inputs
8017 `(("emacs-evil" ,emacs-evil)))
8018 (home-page "https://github.com/redguardtoo/evil-matchit")
8019 (synopsis "Vim matchit ported into Emacs")
8020 (description
8021 "@code{evil-matchit} is a minor mode for jumping between matching tags in
8022 evil mode using @kbd{%}. It is a port of @code{matchit} for Vim.")
8023 (license license:gpl3+)))
8024
8025 (define-public emacs-evil-smartparens
8026 (package
8027 (name "emacs-evil-smartparens")
8028 (version "0.4.0")
8029 (source
8030 (origin
8031 (method url-fetch)
8032 (uri (string-append
8033 "https://github.com/expez/evil-smartparens/archive/"
8034 version ".tar.gz"))
8035 (file-name (string-append name "-" version ".tar.gz"))
8036 (sha256
8037 (base32
8038 "1bwzdd3054d407d5j4m3njsbvmc9r8zzp33m32pj3b3irxrl68q0"))))
8039 (build-system emacs-build-system)
8040 (propagated-inputs
8041 `(("emacs-evil" ,emacs-evil)
8042 ("emacs-smartparens" ,emacs-smartparens)))
8043 (home-page "https://github.com/expez/evil-smartparens")
8044 (synopsis "Emacs Evil integration for Smartparens")
8045 (description "@code{emacs-evil-smartparens} is an Emacs minor mode which
8046 makes Evil play nice with Smartparens. Evil is an Emacs minor mode that
8047 emulates Vim features and provides Vim-like key bindings.")
8048 (license license:gpl3+)))
8049
8050 (define-public emacs-evil-quickscope
8051 (package
8052 (name "emacs-evil-quickscope")
8053 (version "0.1.4")
8054 (source
8055 (origin
8056 (method url-fetch)
8057 (uri (string-append "https://github.com/blorbx/evil-quickscope/archive/v"
8058 version ".tar.gz"))
8059 (file-name (string-append name "-" version ".tar.gz"))
8060 (sha256
8061 (base32
8062 "1r26a412mmar7vbf89zcifswiwpdg30mjzj32xdyqss57aqi83ma"))))
8063 (build-system emacs-build-system)
8064 (propagated-inputs
8065 `(("emacs-evil" ,emacs-evil)))
8066 (arguments
8067 `(#:tests? #t
8068 #:test-command '("emacs" "--batch"
8069 "-l" "evil-quickscope-tests.el"
8070 "-f" "ert-run-tests-batch-and-exit")))
8071 (home-page "https://github.com/blorbx/evil-quickscope")
8072 (synopsis "Target highlighting for emacs evil-mode f,F,t and T commands")
8073 (description "@code{emacs-evil-quickscope} highlights targets for Evil
8074 mode’s f,F,t,T keys, allowing for quick navigation within a line. It is a
8075 port of quick-scope for Vim. Evil is an Emacs minor mode that emulates Vim
8076 features and provides Vim-like key bindings.")
8077 (license license:gpl3+)))
8078
8079 (define-public emacs-bongo
8080 (package
8081 (name "emacs-bongo")
8082 (version "1.0")
8083 (source
8084 (origin
8085 (method url-fetch)
8086 (uri (string-append
8087 "https://github.com/dbrock/bongo/archive/"
8088 version ".tar.gz"))
8089 (file-name (string-append name "-" version ".tar.gz"))
8090 (sha256
8091 (base32
8092 "1pcsyyrvj7djjjwpaswd1i782hvqvlvs39cy9ns0k795si6xd64d"))))
8093 (build-system emacs-build-system)
8094 (home-page "https://github.com/dbrock/bongo")
8095 (synopsis "Media player for Emacs")
8096 (description
8097 "This package provides a flexible media player for Emacs. @code{Bongo}
8098 supports multiple backends such as @code{vlc}, @code{mpg123},
8099 @code{ogg123}, @code{speexdec}, @code{timidity}, @code{mikmod} and
8100 @code{afplay}.")
8101 (license license:gpl2+)))
8102
8103 (define-public emacs-groovy-modes
8104 (package
8105 (name "emacs-groovy-modes")
8106 (version "2.0")
8107 (source (origin
8108 (method url-fetch)
8109 (uri (string-append
8110 "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes"
8111 "/archive/" version ".tar.gz"))
8112 (file-name (string-append name "-" version ".tar.gz"))
8113 (sha256
8114 (base32
8115 "15j0hnkx9nppjzda5cqsxxz5f3bq9hc4xfyjcdypzqiypcvmpa39"))))
8116 (build-system emacs-build-system)
8117 (propagated-inputs
8118 `(("emacs-s" ,emacs-s)))
8119 (home-page "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
8120 (synopsis "Groovy related modes for Emacs")
8121 (description
8122 "This package provides @code{groovy-mode} for syntax highlighing in
8123 Groovy source files, REPL integration with run-groovy and Grails project
8124 navigation with the grails mode.")
8125 (license license:gpl3+)))
8126
8127 (define-public groovy-emacs-modes
8128 (deprecated-package "groovy-emacs-modes" emacs-groovy-modes))
8129
8130 (define-public emacs-org-tree-slide
8131 (let ((commit "dff8f1a4a64c8dd0a1fde0b0131e2fe186747134")
8132 (revision "0"))
8133 (package
8134 (name "emacs-org-tree-slide")
8135 (version (git-version "0.1" revision commit))
8136 (home-page "https://github.com/takaxp/org-tree-slide")
8137 (source (origin
8138 (method git-fetch)
8139 (uri (git-reference (url home-page) (commit commit)))
8140 (sha256
8141 (base32
8142 "153bg0x7ypla11pq51jmsgzfjklwwnrq56xgpbfhk1j16xwz9hyf"))
8143 (file-name (git-file-name name version))))
8144 (build-system emacs-build-system)
8145 (synopsis "Presentation tool for org-mode")
8146 (description
8147 "Org-tree-slide provides a slideshow mode to view org-mode files. Use
8148 @code{org-tree-slide-mode} to enter the slideshow mode, and then @kbd{C->} and
8149 @kbd{C-<} to jump to the next and previous slide.")
8150 (license license:gpl3+))))
8151
8152 (define-public emacs-scratch-el
8153 (let ((commit "2cdf2b841ce7a0987093f65b0cc431947549f897")
8154 (revision "1"))
8155 (package
8156 (name "emacs-scratch-el")
8157 (version (git-version "1.2" revision commit))
8158 (source (origin
8159 (method git-fetch)
8160 (uri (git-reference
8161 (url "https://github.com/ieure/scratch-el.git")
8162 (commit commit)))
8163 (file-name (git-file-name name version))
8164 (sha256
8165 (base32
8166 "0wscsndynjmnliajqaz28r1ww81j8wh84zwaaswx51abhwgl0idf"))))
8167 (build-system emacs-build-system)
8168 (native-inputs
8169 `(("texinfo" ,texinfo)))
8170 (arguments
8171 '(#:phases
8172 (modify-phases %standard-phases
8173 (add-after 'install 'install-doc
8174 (lambda* (#:key outputs #:allow-other-keys)
8175 (unless (invoke "makeinfo" "scratch.texi")
8176 (error "makeinfo failed"))
8177 (install-file "scratch.info"
8178 (string-append (assoc-ref outputs "out")
8179 "/share/info"))
8180 #t)))))
8181 (home-page "https://github.com/ieure/scratch-el/")
8182 (synopsis "Create scratch buffers with the same mode as current buffer")
8183 (description "Scratch is an extension to Emacs that enables one to create
8184 scratch buffers that are in the same mode as the current buffer. This is
8185 notably useful when working on code in some language; you may grab code into a
8186 scratch buffer, and, by virtue of this extension, do so using the Emacs
8187 formatting rules for that language.")
8188 (license license:bsd-2))))
8189
8190 (define-public emacs-kv
8191 (package
8192 (name "emacs-kv")
8193 (version "0.0.19")
8194 (source
8195 (origin
8196 (method git-fetch)
8197 (uri (git-reference
8198 (url "https://github.com/nicferrier/emacs-kv.git")
8199 (commit "721148475bce38a70e0b678ba8aa923652e8900e")))
8200 (file-name (string-append name "-" version "-checkout"))
8201 (sha256
8202 (base32
8203 "0r0lz2s6gvy04fwnafai668jsf4546h4k6zd6isx5wpk0n33pj5m"))))
8204 (build-system emacs-build-system)
8205 (arguments
8206 `(#:tests? #t
8207 #:test-command '("emacs" "--batch" "-l" "kv-tests.el"
8208 "-f" "ert-run-tests-batch-and-exit")))
8209 (home-page "https://github.com/nicferrier/emacs-kv")
8210 (synopsis "Key/Value data structures library for Emacs Lisp")
8211 (description "@code{emacs-kv} is a collection of tools for dealing with
8212 key/value data structures such as plists, alists and hash-tables in Emacs
8213 Lisp.")
8214 (license license:gpl3+)))
8215
8216 (define-public emacs-esxml
8217 (package
8218 (name "emacs-esxml")
8219 (version "0.3.4")
8220 (source (origin
8221 (method git-fetch)
8222 (uri (git-reference
8223 (url "https://github.com/tali713/esxml.git")
8224 (commit version)))
8225 (file-name (git-file-name name version))
8226 (sha256
8227 (base32
8228 "00vv8a75wdklygdyr4km9mc2ismxak69c45jmcny41xl44rp9x8m"))))
8229 (build-system emacs-build-system)
8230 (arguments
8231 `(#:phases
8232 (modify-phases %standard-phases
8233 (add-after 'unpack 'fix-sources
8234 (lambda _
8235 ;; See: https://github.com/tali713/esxml/pull/28.
8236 (substitute* "css-lite.el"
8237 ((";;; main interface")
8238 (string-append ";;; main interface\n"
8239 "(require 'cl-lib)"))
8240 (("mapcan")
8241 "cl-mapcan")
8242 (("',\\(cl-mapcan #'process-css-rule rules\\)")
8243 "(cl-mapcan #'process-css-rule ',rules)"))
8244 (substitute* "esxml-form.el"
8245 ((",esxml-form-field-defn")
8246 "#'esxml-form-field-defn"))
8247 ;; See: https://github.com/tali713/esxml/issues/25
8248 (delete-file "esxpath.el")
8249 #t)))))
8250 (propagated-inputs
8251 `(("emacs-kv" ,emacs-kv)))
8252 (home-page "https://github.com/tali713/esxml/")
8253 (synopsis "SXML for EmacsLisp")
8254 (description "This is XML/XHTML done with S-Expressions in EmacsLisp.
8255 Simply, this is the easiest way to write HTML or XML in Lisp. This library
8256 uses the native form of XML representation as used by many libraries already
8257 included within Emacs. See @code{esxml-to-xml} for a concise description of
8258 the format.")
8259 (license license:gpl3+)))
8260
8261 (define-public emacs-nov-el
8262 (package
8263 (name "emacs-nov-el")
8264 (version "0.2.6")
8265 (source (origin
8266 (method git-fetch)
8267 (uri (git-reference
8268 (url "https://github.com/wasamasa/nov.el.git")
8269 (commit version)))
8270 (file-name (git-file-name name version))
8271 (sha256
8272 (base32
8273 "188h5gzn1zf443g0b7q5bpmvvpr6ds5h8aci8vxc92py56rhyrvc"))))
8274 (build-system emacs-build-system)
8275 (arguments
8276 `(#:phases
8277 (modify-phases %standard-phases
8278 (add-after 'unpack 'embed-path-to-unzip
8279 (lambda _
8280 (substitute* "nov.el"
8281 (("\\(executable-find \"unzip\"\\)")
8282 (string-append "\"" (which "unzip") "\"")))
8283 #t)))))
8284 (propagated-inputs
8285 `(("emacs-dash" ,emacs-dash)
8286 ("emacs-esxml" ,emacs-esxml)))
8287 (inputs
8288 `(("unzip" ,unzip)))
8289 (home-page "https://github.com/wasamasa/nov.el/")
8290 (synopsis "Major mode for reading EPUBs in Emacs")
8291 (description "@code{nov.el} provides a major mode for reading EPUB
8292 documents.
8293
8294 Features:
8295
8296 @itemize
8297 @item Basic navigation (jump to TOC, previous/next chapter)
8298 @item Remembering and restoring the last read position
8299 @item Jump to next chapter when scrolling beyond end
8300 @item Renders EPUB2 (@code{.ncx}) and EPUB3 (@code{<nav>}) TOCs
8301 @item Hyperlinks to internal and external targets
8302 @item Supports textual and image documents
8303 @item View source of document files
8304 @item Metadata display
8305 @item Image rescaling
8306 @end itemize
8307 ")
8308 (license license:gpl3+)))
8309
8310 (define-public epipe
8311 (package
8312 (name "epipe")
8313 (version "0.1.0")
8314 (source
8315 (origin
8316 (method url-fetch)
8317 (uri (string-append "https://github.com/cute-jumper/epipe/archive/"
8318 version ".tar.gz"))
8319 (file-name (string-append name "-" version ".tar.gz"))
8320 (sha256
8321 (base32
8322 "05a036852g4j63k1mhvyfrcsgkl9lczayi7x61570ysw3cli5wp5"))))
8323 (build-system trivial-build-system)
8324 (inputs
8325 `(("bash" ,bash)
8326 ("perl" ,perl)))
8327 (native-inputs
8328 `(("tar" ,tar)
8329 ("gzip" ,gzip)))
8330 (arguments
8331 `(#:modules
8332 ((guix build utils))
8333 #:builder
8334 (begin
8335 (use-modules (guix build utils))
8336 ;; Extract source
8337 (setenv "PATH" (string-append
8338 (assoc-ref %build-inputs "tar") "/bin" ":"
8339 (assoc-ref %build-inputs "gzip") "/bin"))
8340 (invoke "tar" "xvf" (assoc-ref %build-inputs "source"))
8341 (chdir (string-append ,name "-" ,version))
8342 ;; Patch shebangs
8343 (substitute* "epipe"
8344 (("/usr/bin/env bash")
8345 (string-append (assoc-ref %build-inputs "bash") "/bin/bash")))
8346 (patch-shebang "epipe.pl"
8347 (list (string-append (assoc-ref %build-inputs "perl")
8348 "/bin")))
8349 ;; Installation
8350 (for-each (lambda (file)
8351 (install-file file (string-append %output "/bin")))
8352 '("epipe" "epipe.pl"))
8353 #t)))
8354 (home-page "https://github.com/cute-jumper/epipe")
8355 (synopsis "Pipe to the @code{emacsclient}")
8356 (description "@code{epipe} provides an utility to use your editor in
8357 the pipeline, featuring the support for running @code{emacsclient}.")
8358 (license license:gpl3+)))
8359
8360 (define-public emacs-hcl-mode
8361 (package
8362 (name "emacs-hcl-mode")
8363 (version "0.03")
8364 (source
8365 (origin
8366 (method url-fetch)
8367 (uri (string-append
8368 "https://github.com/syohex/emacs-hcl-mode/archive/"
8369 version ".tar.gz"))
8370 (file-name (string-append name "-" version ".tar.gz"))
8371 (sha256
8372 (base32
8373 "0pvw74qpwh0znqzp6syp4wxjqs7dp1hbn5h7xfk97mff9l5d8k6x"))))
8374 (build-system emacs-build-system)
8375 (home-page "https://github.com/syohex/emacs-hcl-mode")
8376 (synopsis "Major mode for the Hashicorp Configuration Language")
8377 (description
8378 "@code{emacs-hcl-mode} provides an Emacs major mode for working with
8379 @acronym{HCL, Hashicorp Configuration Language}. It provides syntax
8380 highlighting and indentation support.")
8381 (license license:gpl3+)))
8382
8383 (define-public emacs-terraform-mode
8384 (package
8385 (name "emacs-terraform-mode")
8386 (version "0.06")
8387 (source
8388 (origin
8389 (method url-fetch)
8390 (uri (string-append
8391 "https://github.com/syohex/emacs-terraform-mode/archive/"
8392 version ".tar.gz"))
8393 (file-name (string-append name "-" version ".tar.gz"))
8394 (sha256
8395 (base32
8396 "0h9267ifdjmcin4sj8slxydbacx4bqicbvg8pa1qq2l72h9m5381"))))
8397 (build-system emacs-build-system)
8398 (propagated-inputs
8399 `(("emacs-hcl-mode" ,emacs-hcl-mode)))
8400 (home-page "https://github.com/syohex/emacs-terraform-mode")
8401 (synopsis "Major mode for Terraform")
8402 (description
8403 "@code{emacs-terraform-mode} provides a major mode for working with
8404 @uref{https://www.terraform.io/, Terraform} configuration files. Most of the
8405 functionality is inherited from @code{hcl-mode}.")
8406 (license license:gpl3+)))
8407
8408 (define-public emacs-exec-path-from-shell
8409 (package
8410 (name "emacs-exec-path-from-shell")
8411 (version "1.11")
8412 (source
8413 (origin
8414 (method url-fetch)
8415 (uri (string-append
8416 "https://stable.melpa.org/packages/exec-path-from-shell-"
8417 version ".el"))
8418 (sha256
8419 (base32
8420 "03qjgb81cq1l3j54lvlf98r75vmmgd06mj6qh5wa6mz4xzp4w26r"))))
8421 (build-system emacs-build-system)
8422 (home-page "https://github.com/purcell/exec-path-from-shell")
8423 (synopsis "Get environment variables such as @var{PATH} from the shell")
8424 (description
8425 "This library allows the user to set Emacs @var{exec-path} and @var{PATH}
8426 from the shell @var{PATH}, so that @code{shell-command}, @code{compile} and
8427 the like work as expected on systems on which Emacs is not guaranteed to
8428 inherit a login shell's environment variables. It also allows other
8429 environment variables to be retrieved from the shell, so that Emacs will see
8430 the same values you get in a terminal.")
8431 (license license:gpl3+)))
8432
8433 (define-public emacs-deft
8434 (package
8435 (name "emacs-deft")
8436 (version "0.8")
8437 (source
8438 (origin
8439 (method url-fetch)
8440 (uri (string-append "https://stable.melpa.org/packages/deft-"
8441 version ".el"))
8442 (sha256
8443 (base32
8444 "1vb9cjxskc7c0yyf9pvxy1fzypg1vrcgwnjz0m3hslinsgdyig58"))))
8445 (build-system emacs-build-system)
8446 (home-page "https://jblevins.org/projects/deft/")
8447 (synopsis "Quickly browse, filter, and edit plain text notes")
8448 (description
8449 "Deft is an Emacs mode for quickly browsing, filtering, and editing
8450 directories of plain text notes, inspired by Notational Velocity.")
8451 (license license:bsd-3)))
8452
8453 (define-public emacs-anzu
8454 (package
8455 (name "emacs-anzu")
8456 (version "0.62")
8457 (source
8458 (origin
8459 (method url-fetch)
8460 (uri (string-append "https://github.com/syohex/emacs-anzu/archive/"
8461 version ".tar.gz"))
8462 (file-name (string-append name "-" version ".tar.gz"))
8463 (sha256
8464 (base32
8465 "16cg3897x5znbmgk7sdy0qyd0fbic9dmmz0dchq2vz5z29yhg4cz"))))
8466 (build-system emacs-build-system)
8467 (home-page "https://github.com/syohex/emacs-anzu")
8468 (synopsis "Show number of matches in mode-line while searching")
8469 (description
8470 "Anzu provides a minor mode which displays \"current match/total
8471 matches\" in the mode line in various search modes. This is an Emacs port of
8472 Anzu.zim.")
8473 (license license:gpl3+)))
8474
8475 (define-public emacs-emmet-mode
8476 (package
8477 (name "emacs-emmet-mode")
8478 (version "1.0.8")
8479 (source (origin
8480 (method url-fetch)
8481 (uri (string-append "https://github.com/smihica/emmet-mode"
8482 "/archive/" version ".tar.gz"))
8483 (file-name (string-append name "-" version ".tar.gz"))
8484 (sha256
8485 (base32
8486 "0g3p22yabfcp98cfv9dgl9il2m2pd53isq2q11vb3s7qyn31f7zj"))))
8487 (build-system emacs-build-system)
8488 (home-page "https://github.com/smihica/emmet-mode")
8489 (synopsis "Unofficial Emmet's support for Emacs")
8490 (description
8491 "Unfold CSS-selector-like expressions to markup. It is intended to be
8492 used with SGML-like languages: XML, HTML, XHTML, XSL, etc.")
8493 (license license:gpl3+)))
8494
8495 (define-public emacs-ergoemacs-mode
8496 (let ((commit "3ce23bba3cb50562693860f87f3528c471d603ba")
8497 (revision "1"))
8498 (package
8499 (name "emacs-ergoemacs-mode")
8500 (version (git-version "5.16.10.12" revision commit))
8501 (source
8502 (origin
8503 (method git-fetch)
8504 (uri (git-reference
8505 (url "https://github.com/ergoemacs/ergoemacs-mode.git")
8506 (commit commit)))
8507 (sha256
8508 (base32
8509 "1s3b9bridl78hh1mxmdk9nqlmqhibbaxk0a1cixmsf23s06w8w6l"))))
8510 (build-system emacs-build-system)
8511 (propagated-inputs
8512 `(("emacs-undo-tree" ,emacs-undo-tree)))
8513 (home-page "https://ergoemacs.github.io/")
8514 (synopsis "Emacs mode based on common modern interface and ergonomics")
8515 (description
8516 "This package provides an efficient Emacs keybinding set based on
8517 statistics of command frequency, and supports common shortcuts for open,
8518 close, copy, cut, paste, undo, redo.")
8519 (license license:gpl3+))))
8520
8521 (define-public emacs-password-store
8522 (package
8523 (name "emacs-password-store")
8524 (version "1.7.3")
8525 (source (origin
8526 (method url-fetch)
8527 (uri
8528 (string-append "https://git.zx2c4.com/password-store/snapshot/"
8529 "password-store-" version ".tar.xz"))
8530 (sha256
8531 (base32
8532 "1x53k5dn3cdmvy8m4fqdld4hji5n676ksl0ql4armkmsds26av1b"))))
8533 (build-system emacs-build-system)
8534 (arguments
8535 `(#:phases
8536 (modify-phases %standard-phases
8537 (add-after 'unpack 'extract-el-file
8538 (lambda _
8539 (copy-file "contrib/emacs/password-store.el" "password-store.el")
8540 (delete-file-recursively "contrib")
8541 (delete-file-recursively "man")
8542 (delete-file-recursively "src")
8543 (delete-file-recursively "tests"))))))
8544 (propagated-inputs
8545 `(("emacs-f" ,emacs-f)
8546 ("emacs-s" ,emacs-s)
8547 ("emacs-with-editor" ,emacs-with-editor)
8548 ("password-store" ,password-store)))
8549 (home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs")
8550 (synopsis "Password store (pass) support for Emacs")
8551 (description
8552 "This package provides functions for working with pass (\"the
8553 standard Unix password manager\").")
8554 (license license:gpl2+)))
8555
8556 (define-public emacs-pass
8557 (package
8558 (name "emacs-pass")
8559 (version "1.8")
8560 (source (origin
8561 (method url-fetch)
8562 (uri (string-append
8563 "https://github.com/NicolasPetton/pass/archive/"
8564 version ".tar.gz"))
8565 (sha256
8566 (base32
8567 "0aiz90gklk0cb8n4v1s3l0mx6pp2b7f4k2c0fjpihwmga13yklwn"))
8568 (file-name (string-append name "-" version ".tar.gz"))))
8569 (build-system emacs-build-system)
8570 (propagated-inputs
8571 `(("emacs-password-store" ,emacs-password-store)
8572 ("emacs-f" ,emacs-f)))
8573 (home-page "https://github.com/NicolasPetton/pass")
8574 (synopsis "Major mode for @file{password-store.el}")
8575 (description "This is a major mode for managing password-store (pass)
8576 keychains. The keychain entries are displayed in a directory-like structure
8577 and can be consulted and modified.")
8578 (license license:gpl3+)))
8579
8580 (define-public emacs-evil-anzu
8581 (package
8582 (name "emacs-evil-anzu")
8583 (version "0.03")
8584 (source
8585 (origin
8586 (method url-fetch)
8587 (uri (string-append "https://github.com/syohex/emacs-evil-anzu"
8588 "/archive/" version ".tar.gz"))
8589 (file-name (string-append name "-" version ".tar.gz"))
8590 (sha256
8591 (base32 "032hh2946z529cizqsg8pm6cpn5qdj8lfk3qskmx6xv3g2ra56ns"))))
8592 (build-system emacs-build-system)
8593 (propagated-inputs
8594 `(("emacs-evil" ,emacs-evil)
8595 ("emacs-anzu" ,emacs-anzu)))
8596 (home-page "https://github.com/syohex/emacs-evil-anzu")
8597 (synopsis "Anzu for evil-mode")
8598 (description "@code{anzu} provides a minor mode that displays the current
8599 match and total match information in the mode-line in various search modes.")
8600 (license license:gpl3+)))
8601
8602 (define-public emacs-pg
8603 (let ((commit "4f6516ec3946d95dcef49abb6703cc89ecb5183d"))
8604 (package
8605 (name "emacs-pg")
8606 (version (git-version "0.1" "1" commit))
8607 (source (origin
8608 (method git-fetch)
8609 (uri (git-reference (url "https://github.com/cbbrowne/pg.el")
8610 (commit commit)))
8611 (file-name (git-file-name name version))
8612 (sha256
8613 (base32
8614 "1zh7v4nnpzvbi8yj1ynlqlawk5bmlxi6s80b5f2y7hkdqb5q26k0"))))
8615 (build-system emacs-build-system)
8616 (home-page "https://github.com/cbbrowne/pg.el")
8617 (synopsis "Emacs Lisp interface for PostgreSQL")
8618 (description
8619 "This package provides an Emacs Lisp interface for PostgreSQL.")
8620 (license license:gpl3+))))
8621
8622 (define-public emacs-cl-generic
8623 (package
8624 (name "emacs-cl-generic")
8625 (version "0.3")
8626 (source
8627 (origin
8628 (method url-fetch)
8629 (uri (string-append "https://elpa.gnu.org/packages/cl-generic-"
8630 version ".el"))
8631 (sha256
8632 (base32
8633 "0vb338bhjpsnrf60qgxny4z5rjrnifahnrv9axd4shay89d894zq"))))
8634 (build-system emacs-build-system)
8635 (home-page "https://elpa.gnu.org/packages/seq.html")
8636 (synopsis
8637 "Forward @code{cl-generic} compatibility for Emacs before version 25")
8638 (description "This package provides a subset of the features of the
8639 @code{cl-generic} package introduced in Emacs-25, for use on previous
8640 @code{emacsen}.")
8641 (license license:gpl3+)))
8642
8643 (define-public emacs-finalize
8644 (package
8645 (name "emacs-finalize")
8646 (version "2.0.0")
8647 (source
8648 (origin
8649 (method url-fetch)
8650 (uri (string-append "https://github.com/skeeto/elisp-finalize/archive/"
8651 version ".tar.gz"))
8652 (file-name (string-append name "-" version ".tar.gz"))
8653 (sha256
8654 (base32
8655 "077fycy3i5f0kjw5z3rhf4kld5lbk2idz690nkwhkz04vppk4q4x"))))
8656 (build-system emacs-build-system)
8657 (propagated-inputs
8658 `(("emacs-cl-generic" ,emacs-cl-generic)))
8659 (home-page "https://github.com/skeeto/elisp-finalize")
8660 (synopsis "Finalizers for Emacs Lisp")
8661 (description
8662 "This package will allows to immediately run a callback (a finalizer)
8663 after its registered lisp object has been garbage collected. This allows for
8664 extra resources, such as buffers and processes, to be cleaned up after the
8665 object has been freed.")
8666 (license license:unlicense)))
8667
8668 (define-public emacs-emacsql
8669 (package
8670 (name "emacs-emacsql")
8671 (version "3.0.0")
8672 (source (origin
8673 (method git-fetch)
8674 (uri (git-reference
8675 (url "https://github.com/skeeto/emacsql.git")
8676 (commit (string-append version))))
8677 (file-name (git-file-name name version))
8678 (sha256
8679 (base32
8680 "1c84gxr1majqj4b59wgdy3lzm3ap66w9qsrnkx8hdbk9895ak81g"))))
8681 (build-system emacs-build-system)
8682 (arguments
8683 `(#:modules ((guix build emacs-build-system)
8684 (guix build utils)
8685 (guix build emacs-utils)
8686 (srfi srfi-26))
8687 #:phases
8688 (modify-phases %standard-phases
8689 (delete 'build) ;‘build-emacsql-sqlite’ compiles ‘*.el’ files.
8690 (add-before 'install 'patch-elisp-shell-shebangs
8691 (lambda _
8692 (substitute* (find-files "." "\\.el")
8693 (("/bin/sh") (which "sh")))
8694 #t))
8695 (add-after 'patch-elisp-shell-shebangs 'setenv-shell
8696 (lambda _
8697 (setenv "SHELL" "sh")))
8698 (add-after 'setenv-shell 'build-emacsql-sqlite
8699 (lambda _
8700 (invoke "make" "binary" "CC=gcc")))
8701 (add-after 'build-emacsql-sqlite 'install-emacsql-sqlite
8702 ;; This build phase installs emacs-emacsql binary.
8703 (lambda* (#:key outputs #:allow-other-keys)
8704 (install-file "sqlite/emacsql-sqlite"
8705 (string-append (assoc-ref outputs "out")
8706 "/bin"))
8707 #t))
8708 (add-after 'install-emacsql-sqlite 'patch-emacsql-sqlite.el
8709 ;; This build phase removes interactive prompts
8710 ;; and makes sure Emacs look for binaries in the right places.
8711 (lambda* (#:key outputs #:allow-other-keys)
8712 (let ((file "emacsql-sqlite.el"))
8713 (chmod file #o644)
8714 (emacs-substitute-sexps file
8715 ;; Make sure Emacs looks for ‘GCC’ binary in the right place.
8716 ("(executable-find" (which "gcc"))
8717 ;; Make sure Emacs looks for ‘emacsql-sqlite’ binary
8718 ;; in the right place.
8719 ("(defvar emacsql-sqlite-executable"
8720 (string-append (assoc-ref outputs "out")
8721 "/bin/emacsql-sqlite"))))))
8722 (replace 'install
8723 (lambda* (#:key outputs #:allow-other-keys)
8724 (let* ((out (assoc-ref outputs "out")))
8725 (install-file "sqlite/emacsql-sqlite"
8726 (string-append out "/bin"))
8727 (for-each (cut install-file <>
8728 (string-append out "/share/emacs/site-lisp/guix.d/"
8729 "emacsql" "-" ,version))
8730 (find-files "." "\\.elc*$")))
8731 #t)))))
8732 (inputs
8733 `(("emacs-minimal" ,emacs-minimal)
8734 ("mariadb" ,mariadb)
8735 ("postgresql" ,postgresql)))
8736 (propagated-inputs
8737 `(("emacs-finalize" ,emacs-finalize)
8738 ("emacs-pg" ,emacs-pg)))
8739 (home-page "https://github.com/skeeto/emacsql")
8740 (synopsis "Emacs high-level SQL database front-end")
8741 (description "Any readable Lisp value can be stored as a value in EmacSQL,
8742 including numbers, strings, symbols, lists, vectors, and closures. EmacSQL
8743 has no concept of @code{TEXT} values; it's all just Lisp objects. The Lisp
8744 object @code{nil} corresponds 1:1 with @code{NULL} in the database.")
8745 (license license:gpl3+)))
8746
8747 (define-public emacs-closql
8748 (package
8749 (name "emacs-closql")
8750 (version "1.0.0")
8751 (source
8752 (origin
8753 (method git-fetch)
8754 (uri (git-reference
8755 (url "https://github.com/emacscollective/closql.git")
8756 (commit (string-append "v" version))))
8757 (file-name (git-file-name name version))
8758 (sha256
8759 (base32
8760 "1xhpfjjkjqfc1k2rj77cscclz5r7gpvv3hi202x178vdcpipjwar"))))
8761 (build-system emacs-build-system)
8762 (propagated-inputs
8763 `(("emacs-emacsql" ,emacs-emacsql)))
8764 (home-page "https://github.com/emacscollective/closql")
8765 (synopsis "Store EIEIO objects using EmacSQL")
8766 (description
8767 "This package allows to store uniform EIEIO objects in an EmacSQL
8768 database. SQLite is used as backend. This library imposes some restrictions
8769 on what kind of objects can be stored; it isn't intended to store arbitrary
8770 objects. All objects have to share a common superclass and subclasses cannot
8771 add any additional instance slots.")
8772 (license license:gpl3)))
8773
8774 (define-public emacs-epkg
8775 ;; The release version is to old for the current database scheme.
8776 (let ((commit "432312b9583ed7b88ad9644fd1bf2183765a892e"))
8777 (package
8778 (name "emacs-epkg")
8779 (version (git-version "3.0.0" "1" commit))
8780 (source
8781 (origin
8782 (method git-fetch)
8783 (uri (git-reference
8784 (url "https://github.com/emacscollective/epkg.git")
8785 (commit commit)))
8786 (file-name (git-file-name name version))
8787 (sha256
8788 (base32
8789 "0d882kahn7a0vri7a9r15lvmfx1zn2hsga6jfcc6jv0hqbswlb2k"))))
8790 (build-system emacs-build-system)
8791 (propagated-inputs
8792 `(("emacs-closql" ,emacs-closql)
8793 ("emacs-dash" ,emacs-dash)))
8794 (home-page "https://emacsmirror.net")
8795 (synopsis "Browse the Emacsmirror package database")
8796 (description "This package provides access to a local copy of the
8797 Emacsmirror package database. It provides low-level functions for querying
8798 the database and a @file{package.el} user interface for browsing the database.
8799 Epkg itself is not a package manager.
8800
8801 Getting a local copy:
8802
8803 @example
8804 git clone https://github.com/emacsmirror/epkgs.git ~/.emacs.d/epkgs
8805 cd ~/.emacs.d/epkgs
8806 git submodule init
8807 git config --global url.https://github.com/.insteadOf git@@github.com:
8808 git submodule update
8809 @end example
8810
8811 Some submodule may be missing. In this case Git will prompt for a GitHub user
8812 name and password. To skip it press a @key{Return} key.
8813
8814 You could get a Epkg package list by invoking @code{epkg-list-packages} in
8815 Emacs.")
8816 (license license:gpl3+))))
8817
8818 (define-public emacs-elisp-slime-nav
8819 (package
8820 (name "emacs-elisp-slime-nav")
8821 (version "0.9")
8822 (source
8823 (origin
8824 (method url-fetch)
8825 (uri (string-append "https://github.com/purcell/elisp-slime-nav/archive/"
8826 version ".tar.gz"))
8827 (file-name (string-append name "-" version ".tar.gz"))
8828 (sha256
8829 (base32
8830 "1vq7ym1q47p97gxrv45c9gm96d23xbp237vkmakikj6grngxjfb2"))))
8831 (build-system emacs-build-system)
8832 (home-page "https://github.com/purcell/elisp-slime-nav")
8833 (synopsis "Make @code{M-.} and @code{M-,} work for elisp like they do in SLIME")
8834 (description
8835 "This package provides SLIME's convenient @code{M-.}and @code{M-,} navigation
8836 in @code{emacs-lisp-mode}, together with an elisp equivalent of
8837 @code{slime-describe-symbol}.")
8838 (license license:gpl3+)))
8839
8840 (define-public emacs-dedicated
8841 (package
8842 (name "emacs-dedicated")
8843 (version "1.0.0")
8844 (source (origin
8845 (method url-fetch)
8846 (uri (string-append
8847 "https://github.com/emacsorphanage/dedicated/archive/"
8848 version
8849 ".tar.gz"))
8850 (sha256
8851 (base32
8852 "0nhbkp278cvcznb5rp3jp9ii3mjgb79zx8iwfrw7zfk3yg8688ni"))
8853 (file-name (string-append name "-" version ".tar.gz"))))
8854 (build-system emacs-build-system)
8855 (home-page "https://github.com/emacsorphanage/dedicated")
8856 (synopsis "Emacs minor mode for toggling a windows's \"dedicated\" flag")
8857 (description
8858 "This simple Emacs minor mode allows you to toggle a window's
8859 \"dedicated\" flag. When a window is \"dedicated\", Emacs will not select
8860 files into that window. This can be quite handy since many commands will use
8861 another window to show results (compilation mode, starting info, and so on).
8862 A dedicated window won't be used for such a purpose. For details, please read
8863 the source file.")
8864 (license license:gpl2+)))
8865
8866 (define-public emacs-nnreddit
8867 (let ((commit "9843f99d01fd8f1eea2fc685965a7c7f4eeb187a")
8868 (revision "1"))
8869 (package
8870 (name "emacs-nnreddit")
8871 (version (string-append "0.0.1-" revision "."
8872 (string-take commit 7)))
8873 (source (origin
8874 (method git-fetch)
8875 (uri (git-reference
8876 (url "https://github.com/paul-issartel/nnreddit.git")
8877 (commit commit)))
8878 (file-name (string-append name "-" version "-checkout"))
8879 (sha256
8880 (base32
8881 "0j4h3bnga640250jdq8bwyja49r41ssrsjd6lba4gzzllqk02nbn"))))
8882 (build-system emacs-build-system)
8883 (home-page "https://github.com/paul-issartel/nnreddit")
8884 (synopsis "Reddit backend for the Gnus newsreader")
8885 (description "@url{https://www.reddit.com} backend for the Gnus
8886 newsreader.")
8887 (license license:gpl3+))))
8888
8889 (define-public emacs-makey
8890 (package
8891 (name "emacs-makey")
8892 (version "0.3")
8893 (source
8894 (origin
8895 (method url-fetch)
8896 (uri (string-append "https://github.com/mickeynp/makey/archive/"
8897 version ".tar.gz"))
8898 (file-name (string-append name "-" version ".tar.gz"))
8899 (sha256
8900 (base32
8901 "0kzl4q1wf2zhkx9nrymxa67n99iq0bj7zqhpaz4byksna1hsxfmv"))))
8902 (build-system emacs-build-system)
8903 (home-page "https://github.com/mickeynp/makey")
8904 (synopsis "Emacs interactive command-line mode")
8905 (description
8906 "This package provides an Emacs interactive command-line mode.")
8907 (license license:gpl3+)))
8908
8909 (define-public emacs-outorg
8910 (let ((commit "78b0695121fb974bc4e971eb4ef7f8afd6d89d64"))
8911 (package
8912 (name "emacs-outorg")
8913 (version (git-version "2.0" "1" commit))
8914 (source
8915 (origin
8916 (method git-fetch)
8917 (uri (git-reference
8918 (url "https://github.com/alphapapa/outorg")
8919 (commit commit)))
8920 (file-name (git-file-name name version))
8921 (sha256
8922 (base32
8923 "03aclh4m3f7rb821gr9pwvnqkkl91px3qxdcarpf3ypa1x4fxvlj"))))
8924 (build-system emacs-build-system)
8925 (home-page "https://github.com/alphapapa/outorg")
8926 (synopsis "Org-style comment editing")
8927 (description "Outorg is for editing comment-sections of source-code
8928 files in temporary Org-mode buffers. It turns conventional
8929 literate-programming upside-down in that the default mode is the
8930 programming-mode, and special action has to be taken to switch to the
8931 text-mode (i.e. Org-mode).")
8932 (license license:gpl3+))))
8933
8934 (define-public emacs-outshine
8935 (let ((commit "5f1a6b70231d2811c522e4e5e8c89ff461b311d6"))
8936 (package
8937 (name "emacs-outshine")
8938 (version (git-version "2.0" "1" commit))
8939 (source (origin
8940 (method git-fetch)
8941 (uri (git-reference
8942 (url "https://github.com/alphapapa/outshine.git")
8943 (commit commit)))
8944 (file-name (git-file-name name version))
8945 (sha256
8946 (base32
8947 "1l9v1dfhgg7il11ifbhvcvrg3acfjk9sdxlc3lja1k54d7dp60jv"))))
8948 (build-system emacs-build-system)
8949 (propagated-inputs
8950 `(("emacs-outorg" ,emacs-outorg)))
8951 (home-page "https://github.com/alphapapa/outshine")
8952 (synopsis "Emacs outline with outshine")
8953 (description "Outshine attempts to bring the look and feel of
8954 @code{org-mode} to an Emacs outside of the Org major-mode. It is an extension
8955 of @code{outline-minor-mode} (@code{org-mode} itself derives from
8956 outline-mode), so there is no such thing like an outshine mode, only
8957 @code{outline-minor-mode} with outshine extensions loaded.")
8958 (license license:gpl3+))))
8959
8960 (define-public emacs-parsebib
8961 (package
8962 (name "emacs-parsebib")
8963 (version "2.3.1")
8964 (source
8965 (origin
8966 (method url-fetch)
8967 (uri (string-append "https://github.com/joostkremers/parsebib/archive/"
8968 version ".tar.gz"))
8969 (file-name (string-append name "-" version ".tar.gz"))
8970 (sha256
8971 (base32
8972 "0cxagnmc5ab6idmb26axpizhr4sqglkncc59768yavn3p04jyq63"))))
8973 (build-system emacs-build-system)
8974 (home-page "https://github.com/joostkremers/parsebib")
8975 (synopsis "Library for parsing bib files")
8976 (description
8977 "This package provides an Emacs library for parsing bib files.")
8978 (license license:gpl3+)))
8979
8980 (define-public emacs-biblio
8981 (package
8982 (name "emacs-biblio")
8983 (version "0.2")
8984 (source
8985 (origin
8986 (method url-fetch)
8987 (uri (string-append "https://github.com/cpitclaudel/biblio.el/archive/"
8988 version ".tar.gz"))
8989 (file-name (string-append name "-" version ".tar.gz"))
8990 (sha256
8991 (base32
8992 "0vwrljmab8m1z83048gxx5mryml9f5pb3h0jpwkvqcl0ra152lzx"))))
8993 (build-system emacs-build-system)
8994 (propagated-inputs
8995 `(("emacs-seq" ,emacs-seq)
8996 ("emacs-dash" ,emacs-dash)
8997 ("emacs-let-alist" ,emacs-let-alist)))
8998 (home-page "https://github.com/cpitclaudel/biblio.el")
8999 (synopsis "Browse and import bibliographic references")
9000 (description "This package provides an extensible Emacs package for
9001 browsing and fetching references.
9002
9003 @file{biblio.el} makes it easy to browse and gather bibliographic references
9004 and publications from various sources, by keywords or by DOI. References are
9005 automatically fetched from well-curated sources, and formatted as BibTeX.")
9006 (license license:gpl3+)))
9007
9008 (define-public emacs-helm-bibtex
9009 (let ((commit "8ed898fb5a68f18e9bb9973832a5c1f8abcfc463")
9010 (revision "1"))
9011 (package
9012 (name "emacs-helm-bibtex")
9013 (version (string-append "2.0.0" "-" revision "."
9014 (string-take commit 7)))
9015 (source
9016 (origin
9017 (method git-fetch)
9018 (uri (git-reference
9019 (url "https://github.com/tmalsburg/helm-bibtex.git")
9020 (commit commit)))
9021 (file-name (string-append name "-" version "-checkout"))
9022 (sha256
9023 (base32
9024 "14lyx0vbqr97p3anzrsp7m3q0kqclyjcdwplpraim403fcklzbnz"))))
9025 (build-system emacs-build-system)
9026 (propagated-inputs
9027 `(("emacs-helm" ,emacs-helm)
9028 ("emacs-parsebib" ,emacs-parsebib)
9029 ("emacs-s" ,emacs-s)
9030 ("emacs-dash" ,emacs-dash)
9031 ("emacs-f" ,emacs-f)
9032 ("emacs-biblio" ,emacs-biblio)
9033 ("emacs-ivy" ,emacs-ivy)))
9034 (home-page "https://github.com/tmalsburg/helm-bibtex")
9035 (synopsis "Bibliography manager based on Helm")
9036 (description "This package provides bibliography manager for Emacs,
9037 based on Helm and the bibtex-completion backend.
9038
9039 Key features:
9040
9041 @itemize
9042 @item Quick access to your bibliography from within Emacs
9043 @item Powerful search capabilities
9044 @item Provides instant search results as you type
9045 @item Tightly integrated with LaTeX authoring, emails, Org mode, etc.
9046 @item Open the PDFs, URLs, or DOIs associated with an entry
9047 @item Insert LaTeX cite commands, Ebib links, or Pandoc citations,
9048 BibTeX entries, or plain text references at point, attach PDFs to emails
9049 @item Support for note taking
9050 @item Quick access to online bibliographic databases such as Pubmed,
9051 arXiv, Google Scholar, Library of Congress, etc.
9052 @item Imports BibTeX entries from CrossRef and other sources.
9053 @end itemize\n")
9054 (license license:gpl3+))))
9055
9056 (define-public emacs-ewmctrl
9057 (let ((commit "3d0217c4d6cdb5c308b6cb4293574f470d4faacf"))
9058 (package
9059 (name "emacs-ewmctrl")
9060 (version (git-version "0.0.1" "1" commit))
9061 (source
9062 (origin
9063 (method git-fetch)
9064 (uri (git-reference
9065 (url "https://github.com/flexibeast/ewmctrl.git")
9066 (commit commit)))
9067 (file-name (git-file-name name version))
9068 (sha256
9069 (base32
9070 "0ilwvx0qryv3v6xf0gxqwnfm6pf96gxap8h9g3f6z6lk9ff4n1wi"))))
9071 (build-system emacs-build-system)
9072 (arguments
9073 '(#:phases
9074 (modify-phases %standard-phases
9075 (add-after 'unpack 'patch-ewmctrl
9076 ;; This build phase makes sure ‘ewmctrl’ looks
9077 ;; for ‘wmctrl’ in the right place.
9078 (lambda _
9079 (let ((file "ewmctrl.el"))
9080 (chmod file #o644)
9081 (emacs-substitute-sexps file
9082 ("(defcustom ewmctrl-wmctrl-path" (which "wmctrl")))))))))
9083 (inputs
9084 `(("wmctrl" ,wmctrl)))
9085 (home-page "https://github.com/flexibeast/ewmctrl")
9086 (synopsis "Emacs interface to @code{wmctrl}")
9087 (description "@code{ewmctrl} provides an Emacs interface to
9088 @code{wmctrl} command-line window-management program.")
9089 (license license:gpl3+))))
9090
9091 (define-public emacs-erc-image
9092 (let ((commit "82fb3871f02e24b1e880770b9a3d187aab43d0f0")
9093 (revision "1"))
9094 (package
9095 (name "emacs-erc-image")
9096 (version (git-version "0" revision commit))
9097 (source
9098 (origin
9099 (method git-fetch)
9100 (uri (git-reference
9101 (url "https://github.com/kidd/erc-image.el")
9102 (commit commit)))
9103 (file-name (git-file-name name version))
9104 (sha256
9105 (base32
9106 "1q8mkf612fb4fjp8h4kbr107wn083iqfdgv8f80pcmil8y33dw9i"))))
9107 (build-system emacs-build-system)
9108 (home-page "https://github.com/kidd/erc-image.el")
9109 (synopsis "Show inlined images (png/jpg/gif/svg) in ERC buffers")
9110 (description "This plugin subscribes to hooks @code{erc-insert-modify-hook}
9111 and @code{erc-send-modify-hook} to download and show images.")
9112 (license license:gpl3+))))
9113
9114 (define-public emacs-helm-gtags
9115 (package
9116 (name "emacs-helm-gtags")
9117 (version "1.5.6")
9118 (source (origin
9119 (method url-fetch)
9120 (uri (string-append
9121 "https://github.com/syohex/emacs-helm-gtags/archive/"
9122 version ".tar.gz"))
9123 (file-name (string-append name "-" version ".tar.gz"))
9124 (sha256
9125 (base32
9126 "1a10snhg6nnnan6w9a7mcziy26vxbsr3c35i0gcarnkdp2yqng36"))))
9127 (build-system emacs-build-system)
9128 (propagated-inputs
9129 `(("emacs-helm" ,emacs-helm)))
9130 (home-page "https://github.com/syohex/emacs-helm-gtags")
9131 (synopsis "Emacs Helm interface to GNU Global")
9132 (description
9133 "@code{emacs-helm-gtags} provides a Emacs Helm interface to GNU Global.")
9134 (license license:gpl3+)))
9135
9136 (define-public emacs-list-utils
9137 (package
9138 (name "emacs-list-utils")
9139 (version "0.4.4")
9140 (source
9141 (origin
9142 (method url-fetch)
9143 (uri (string-append "https://github.com/rolandwalker/list-utils/archive/"
9144 "v" version ".tar.gz"))
9145 (file-name (string-append name "-" version ".tar.gz"))
9146 (sha256
9147 (base32
9148 "1xc1xh8c82h5gdjbgpdsdclgwxkxbb7h3x3a2bscpm41g8pnan4p"))))
9149 (build-system emacs-build-system)
9150 (home-page "https://github.com/rolandwalker/list-utils")
9151 (synopsis "List-manipulation utility functions")
9152 (description "This package provides a list manipulation library for Emacs.")
9153 (license license:gpl3+)))
9154
9155 (define-public emacs-move-text
9156 (package
9157 (name "emacs-move-text")
9158 (version "2.0.8")
9159 (source
9160 (origin
9161 (method url-fetch)
9162 (uri (string-append "https://github.com/emacsfodder/move-text/archive/"
9163 version ".tar.gz"))
9164 (file-name (string-append name "-" version ".tar.gz"))
9165 (sha256
9166 (base32
9167 "1sjfja9r25692pgcldgnjzkapzy970m14jh9l4pajysiqcdk72g0"))))
9168 (build-system emacs-build-system)
9169 (home-page "https://github.com/emacsfodder/move-text")
9170 (synopsis "Move current line or region with M-up or M-down")
9171 (description "This package provide functions to move the current line
9172 using @kbd{M-up} or @kbd{M-down} if a region is marked, it will move the
9173 region instead.")
9174 (license license:gpl3+)))
9175
9176 (define-public emacs-validate
9177 (package
9178 (name "emacs-validate")
9179 (version "1.0.5")
9180 (source (origin
9181 (method url-fetch)
9182 (uri (string-append "https://github.com/Malabarba/validate.el"
9183 "/archive/" version ".tar.gz"))
9184 (file-name (string-append name "-" version ".tar.gz"))
9185 (sha256
9186 (base32
9187 "125mbd111f1h1baw0z3fzm48y1bvaigljyzvvnqgrn0shxbj0khg"))))
9188 (build-system emacs-build-system)
9189 (home-page "https://github.com/Malabarba/validate.el")
9190 (synopsis "Emacs library for scheme validation")
9191 (description "This Emacs library provides two functions that perform
9192 schema validation.")
9193 (license license:gpl3+)))
9194
9195 (define-public emacs-rainbow-blocks
9196 (let ((commit "dd435d7bb34ff6f162a5f315df308b90b7e9f842"))
9197 (package
9198 (name "emacs-rainbow-blocks")
9199 (version (git-version "1.0.0" "1" commit))
9200 (source (origin
9201 (method git-fetch)
9202 (uri (git-reference
9203 (url "https://github.com/istib/rainbow-blocks.git")
9204 (commit commit)))
9205 (file-name (git-file-name name version))
9206 (sha256
9207 (base32
9208 "06yfb3i7wzvqrhkb61zib9xvpb5i00s4frizkzff66im05k0n795"))))
9209 (build-system emacs-build-system)
9210 (home-page "https://github.com/istib/rainbow-blocks")
9211 (synopsis "Highlight sexp blocks")
9212 (description "Rainbow-blocks is an Emacs mode that highlights blocks
9213 made of parentheses, brackets, and braces according to their depth. Each
9214 successive level is highlighted in a different color. This makes it easy to
9215 orient yourself in the code, and tell which statements are at a given level.")
9216 (license license:gpl3+))))
9217
9218 (define-public emacs-hierarchy
9219 (package
9220 (name "emacs-hierarchy")
9221 (version "0.7.0")
9222 (source
9223 (origin
9224 (method url-fetch)
9225 (uri (string-append
9226 "https://github.com/DamienCassou/hierarchy/archive/"
9227 "v" version ".tar.gz"))
9228 (file-name (string-append name "-" version ".tar.gz"))
9229 (sha256
9230 (base32
9231 "1a463v5zk6zis2p8cs4mads3iyxh266yahi6j6y0paggfl2yhkc8"))))
9232 (build-system emacs-build-system)
9233 (home-page "https://github.com/DamienCassou/hierarchy")
9234 (synopsis "Library to create and display hierarchy structures")
9235 (description "This package provides an Emacs library to create, query,
9236 navigate and display hierarchy structures.")
9237 (license license:gpl3+)))
9238
9239 (define-public emacs-tree-mode
9240 (let ((commit "b06078826d5875d74b0e7b7ac47b0d0917610534")
9241 (revision "1"))
9242 (package
9243 (name "emacs-tree-mode")
9244 (version (string-append "0.0.1" "-" revision "."
9245 (string-take commit 7)))
9246 (source
9247 (origin
9248 (method git-fetch)
9249 (uri (git-reference
9250 (url "https://github.com/emacsorphanage/tree-mode.git")
9251 (commit commit)))
9252 (file-name (string-append name "-" version "-checkout"))
9253 (sha256
9254 (base32
9255 "13bbdhdmqg4x9yghanhr8fsbsxbnypzxdxgicz31sjjm675kpnix"))))
9256 (build-system emacs-build-system)
9257 (home-page "https://github.com/emacsorphanage/tree-mode")
9258 (synopsis "Emacs mode to manage tree widgets")
9259 (description
9260 "This package provides an Emacs library to manage tree widgets.")
9261 (license license:gpl3+))))
9262
9263 (define-public emacs-md4rd
9264 (let ((commit "c55512c2f7680db2a1e73db6bdf93adecaf40fec")
9265 (revision "1"))
9266 (package
9267 (name "emacs-md4rd")
9268 (version (string-append "0.0.2" "-" revision "."
9269 (string-take commit 7)))
9270 (source (origin
9271 (method git-fetch)
9272 (uri (git-reference
9273 (url "https://github.com/ahungry/md4rd.git")
9274 (commit commit)))
9275 (file-name (string-append name "-" version "-checkout"))
9276 (sha256
9277 (base32
9278 "0mvv1mvsrpkrmikcpfqf2zbawnzgq33j6zjdrlv48mcw57xb2ak9"))))
9279 (propagated-inputs
9280 `(("emacs-hierarchy" ,emacs-hierarchy)
9281 ("emacs-request" ,emacs-request)
9282 ("emacs-dash" ,emacs-dash)
9283 ("emacs-s" ,emacs-s)
9284 ("emacs-tree-mode" ,emacs-tree-mode)))
9285 (build-system emacs-build-system)
9286 (home-page "https://github.com/ahungry/md4rd")
9287 (synopsis "Emacs Mode for Reddit")
9288 (description
9289 "This package allows to read Reddit from within Emacs interactively.")
9290 (license license:gpl3+))))
9291
9292 (define-public emacs-pulseaudio-control
9293 (let ((commit "7e1a87068379075a5e9ce36c64c686c03d20d379")
9294 (revision "3"))
9295 (package
9296 (name "emacs-pulseaudio-control")
9297 (version (git-version "0.0.1" revision commit))
9298 (source
9299 (origin
9300 (method git-fetch)
9301 (uri (git-reference
9302 (url "https://github.com/flexibeast/pulseaudio-control.git")
9303 (commit commit)))
9304 (file-name (git-file-name name version))
9305 (sha256
9306 (base32
9307 "0wcaqyh15x56255rrj350089z15pnwixa2vf0ly6dv0hjmzmh3mr"))))
9308 (build-system emacs-build-system)
9309 (arguments
9310 '(#:phases (modify-phases %standard-phases
9311 (add-after 'unpack 'patch-file-name
9312 (lambda* (#:key inputs #:allow-other-keys)
9313 (let ((pulseaudio (assoc-ref inputs "pulseaudio")))
9314 (chmod "pulseaudio-control.el" #o600)
9315 (emacs-substitute-variables "pulseaudio-control.el"
9316 ("pulseaudio-control-pactl-path"
9317 (string-append pulseaudio "/bin/pactl")))
9318 #t))))))
9319 (inputs `(("pulseaudio" ,pulseaudio)))
9320 (home-page "https://github.com/flexibeast/pulseaudio-control")
9321 (synopsis "Control @code{pulseaudio} from Emacs")
9322 (description
9323 "This package allows to control @code{pulseaudio} from Emacs.")
9324 (license license:gpl3+))))
9325
9326 (define-public emacs-datetime
9327 (package
9328 (name "emacs-datetime")
9329 (version "0.3")
9330 (source (origin
9331 (method url-fetch)
9332 (uri (string-append
9333 "https://github.com/doublep/datetime/archive/"
9334 version ".tar.gz"))
9335 (file-name (string-append name "-" version ".tar.gz"))
9336 (sha256
9337 (base32
9338 "12wqpj67rjij2ki7nmw38rz3k2bsq68pk6zswknlcn9qhp1zd9w9"))))
9339 (build-system emacs-build-system)
9340 (home-page "https://github.com/doublep/datetime/")
9341 (synopsis "Library to work with dates in Emacs")
9342 (description "Parsing, formatting, matching and recoding
9343 timestamps and date-time format strings library for Emacs.")
9344 (license license:gpl3+)))
9345
9346 (define-public emacs-org-mind-map
9347 (let ((commit "9d6e262bedd94daf9de269f4d56de277275677cb")
9348 (revision "1"))
9349 (package
9350 (name "emacs-org-mind-map")
9351 (version (string-append "0.0.1" "-" revision "."
9352 (string-take commit 7)))
9353 (source
9354 (origin
9355 (method git-fetch)
9356 (uri (git-reference
9357 (url "https://github.com/theodorewiles/org-mind-map.git")
9358 (commit commit)))
9359 (file-name (string-append name "-" version "-checkout"))
9360 (sha256
9361 (base32
9362 "0jgkkgq7g64zckrmjib0hvz0qy3ynz5vz13qbmlpf096l3bb65wn"))))
9363 (propagated-inputs
9364 `(("emacs-dash" ,emacs-dash)))
9365 (build-system emacs-build-system)
9366 (home-page "https://github.com/theodorewiles/org-mind-map")
9367 (synopsis "Create Graphviz directed graphs from Org files")
9368 (description
9369 "This package creates Graphviz directed graphs from Org files.")
9370 (license license:gpl3+))))
9371
9372 (define-public emacs-npm-mode
9373 (package
9374 (name "emacs-npm-mode")
9375 (version "0.6.0")
9376 (source
9377 (origin
9378 (method url-fetch)
9379 (uri (string-append "https://github.com/mojochao/npm-mode/archive/"
9380 version ".tar.gz"))
9381 (file-name (string-append name "-" version ".tar.gz"))
9382 (sha256
9383 (base32
9384 "1kq1ww22dwf8c2i2b4z2ldbbmnihj65kb7n5vzvwkch9h4hxpqh5"))))
9385 (build-system emacs-build-system)
9386 (home-page "https://github.com/mojochao/npm-mode")
9387 (synopsis "Minor mode for working with @code{npm} projects")
9388 (description
9389 "@code{npm-mode} provides a minor mode to work with @code{npm} projects.")
9390 (license license:gpl3+)))
9391
9392 (define-public emacs-seq
9393 (package
9394 (name "emacs-seq")
9395 (version "2.20")
9396 (source
9397 (origin
9398 (method url-fetch)
9399 (uri (string-append "http://elpa.gnu.org/packages/seq-" version ".tar"))
9400 (sha256
9401 (base32
9402 "0vrpx6nnyjb0gsypknzagimlhvcvi5y1rcdkpxyqr42415zr8d0n"))))
9403 (build-system emacs-build-system)
9404 (home-page "http://elpa.gnu.org/packages/seq.html")
9405 (synopsis "Sequence manipulation functions")
9406 (description "Sequence-manipulation functions that complement basic
9407 functions provided by @file{subr.el}.")
9408 (license license:gpl3+)))
9409
9410 (define-public emacs-itail
9411 (let ((commit "6e43c20da03be3b9c6ece93b7dc3495975ec1888")
9412 (revision "1"))
9413 (package
9414 (name "emacs-itail")
9415 (version (string-append "0.0.1" "-" revision "."
9416 (string-take commit 7)))
9417 (source
9418 (origin
9419 (method git-fetch)
9420 (uri (git-reference
9421 (url "https://github.com/re5et/itail.git")
9422 (commit commit)))
9423 (file-name (string-append name "-" version "-checkout"))
9424 (sha256
9425 (base32
9426 "044nzxh1hq41faxw3lix0wy78vfz304pjcaa5a11dqfz7q3gx5cv"))))
9427 (build-system emacs-build-system)
9428 (home-page "https://github.com/re5et/itail")
9429 (synopsis "Interactive @code{tail} Emacs mode")
9430 (description "@code{itail} provides interactive @code{tail} mode
9431 that allows you to filter the tail with unix pipes and highlight the
9432 contents of the tailed file. Works locally or on remote files using
9433 tramp.")
9434 (license license:gpl3+))))
9435
9436 (define-public emacs-loop
9437 (package
9438 (name "emacs-loop")
9439 (version "1.3")
9440 (source
9441 (origin
9442 (method url-fetch)
9443 (uri (string-append "https://github.com/Wilfred/loop.el/archive/"
9444 version ".tar.gz"))
9445 (file-name (string-append name "-" version ".tar.gz"))
9446 (sha256
9447 (base32
9448 "1z3rhh3zyjabz36410yz0lp4a0qwwj0387as662wvx3z9y54jia9"))))
9449 (build-system emacs-build-system)
9450 (home-page "https://github.com/Wilfred/loop.el")
9451 (synopsis "Imperative loop structures for Emacs")
9452 (description "Loop structures familiar to users of other languages. This
9453 library adds a selection of popular loop structures as well as break and
9454 continue.")
9455 (license license:gpl3+)))
9456
9457 (define-public emacs-elisp-refs
9458 (package
9459 (name "emacs-elisp-refs")
9460 (version "1.3")
9461 (source
9462 (origin
9463 (method url-fetch)
9464 (uri (string-append "https://github.com/Wilfred/elisp-refs/archive/"
9465 version ".tar.gz"))
9466 (file-name (string-append name "-" version ".tar.gz"))
9467 (sha256
9468 (base32
9469 "02nzcn3v14n7mp7q32j5r4wdlpsw3zixzh6cf0cdyarfir6dly3p"))))
9470 (build-system emacs-build-system)
9471 (propagated-inputs
9472 `(("emacs-dash" ,emacs-dash)
9473 ("emacs-f" ,emacs-f)
9474 ("emacs-list-utils" ,emacs-list-utils)
9475 ("emacs-loop" ,emacs-loop)
9476 ("emacs-s" ,emacs-s)
9477 ("emacs-shut-up" ,emacs-shut-up)))
9478 (home-page "https://github.com/Wilfred/elisp-refs")
9479 (synopsis "Find callers of elisp functions or macros")
9480 (description "Find references to functions, macros or variables. Unlike a
9481 dumb text search, @code{elisp-refs} actually parses the code, so it's never
9482 confused by comments or @code{foo-bar} matching @code{foo}.")
9483 (license license:gpl3+)))
9484
9485 (define-public emacs-crux
9486 (let ((commit "4f5c8fefd5a6aa52e128c4a0401cc86410d6ac8f")
9487 (revision "1"))
9488 (package
9489 (name "emacs-crux")
9490 (version (string-append "0.3.0" "-" revision "."
9491 (string-take commit 7)))
9492 (source
9493 (origin
9494 (method git-fetch)
9495 (uri (git-reference
9496 (url "https://github.com/bbatsov/crux.git")
9497 (commit commit)))
9498 (file-name (string-append name "-" version "-checkout"))
9499 (sha256
9500 (base32
9501 "1fdxvv25cs01sg6fmvmzxpzvs50i6v8n2jya60lbavxqqhi0sbxd"))))
9502 (build-system emacs-build-system)
9503 (home-page "https://github.com/bbatsov/crux")
9504 (synopsis "Collection of useful functions for Emacs")
9505 (description
9506 "@code{crux} provides a collection of useful functions for Emacs.")
9507 (license license:gpl3+))))
9508
9509 (define-public emacs-edit-server
9510 (package
9511 (name "emacs-edit-server")
9512 (version "1.13")
9513 (source
9514 (origin
9515 (method url-fetch)
9516 (uri (string-append "https://github.com/stsquad/emacs_chrome/archive/"
9517 "v" version ".tar.gz"))
9518 (file-name (string-append name "-" version ".tar.gz"))
9519 (sha256
9520 (base32
9521 "1r92kqggslqasza718z4ka883mqfbnibdm43f0j9gaipk0msm2wf"))))
9522 (build-system emacs-build-system)
9523 (arguments
9524 `(#:phases
9525 (modify-phases %standard-phases
9526 (add-after 'unpack 'chdir-elisp
9527 ;; Elisp directory is not in root of the source.
9528 (lambda _
9529 (chdir "servers"))))))
9530 (home-page "https://github.com/stsquad/emacs_chrome")
9531 (synopsis "Server that responds to edit requests from Chromium")
9532 (description
9533 "This package provides an edit server to respond to requests from Emacs.")
9534 (license license:gpl3+)))
9535
9536 (define-public emacs-m-buffer-el
9537 (package
9538 (name "emacs-m-buffer-el")
9539 (version "0.15")
9540 (source
9541 (origin
9542 (method url-fetch)
9543 (uri (string-append "https://github.com/phillord/m-buffer-el"
9544 "/archive/" "v" version ".tar.gz"))
9545 (file-name (string-append name "-" version ".tar.gz"))
9546 (sha256
9547 (base32
9548 "17vdcc8q37q9db98jyww1c0ivinmwfcw4l04zccfacalra63a214"))))
9549 (arguments
9550 `(#:phases
9551 (modify-phases %standard-phases
9552 (add-before 'install 'check
9553 (lambda* (#:key inputs #:allow-other-keys)
9554 (invoke "emacs" "--batch" "-L" "."
9555 "-l" "test/m-buffer-test.el"
9556 "-l" "test/m-buffer-at-test.el"
9557 "-f" "ert-run-tests-batch-and-exit"))))))
9558 (build-system emacs-build-system)
9559 (home-page "https://github.com/phillord/m-buffer-el")
9560 (synopsis "List oriented buffer operations for Emacs")
9561 (description "@code{m-buffer} provides a set of list-orientated functions
9562 for operating over the contents of Emacs buffers.")
9563 (license license:gpl3+)))
9564
9565 (define-public emacs-let-alist
9566 (package
9567 (name "emacs-let-alist")
9568 (version "1.0.5")
9569 (source
9570 (origin
9571 (method url-fetch)
9572 (uri (string-append
9573 "https://elpa.gnu.org/packages/let-alist-" version ".el"))
9574 (sha256
9575 (base32
9576 "0r7b9jni50la1m79kklml11syg8d2fmdlr83pv005sv1wh02jszw"))))
9577 (build-system emacs-build-system)
9578 (home-page "https://elpa.gnu.org/packages/let-alist.html")
9579 (synopsis "Easily let-bind values of an assoc-list by their names")
9580 (description "This package offers a single macro, @code{let-alist}. This
9581 macro takes a first argument (whose value must be an alist) and a body.")
9582 (license license:gpl3+)))
9583
9584 (define-public emacs-esup
9585 (let ((commit "a589005a9a888537deef94d6fe38a9b8790c97c7")
9586 (revision "1"))
9587 (package
9588 (name "emacs-esup")
9589 (version (string-append "0.6" "-" revision "."
9590 (string-take commit 7)))
9591 (source
9592 (origin
9593 (method git-fetch)
9594 (uri (git-reference
9595 (url "https://github.com/jschaf/esup.git")
9596 (commit commit)))
9597 (file-name (string-append name "-" version "-checkout"))
9598 (sha256
9599 (base32
9600 "04lxmd0h7mfjjl0qghrycgff0vcv950j1wqv0dbkr61jxp64n5fv"))))
9601 ;; TODO: Add tests
9602 (build-system emacs-build-system)
9603 (home-page "https://github.com/jschaf/esup")
9604 (synopsis "Emacs start up profiler")
9605 (description "Benchmark Emacs Startup time without ever leaving
9606 your Emacs.")
9607 (license license:gpl2+))))
9608
9609 (define-public emacs-sourcemap
9610 (package
9611 (name "emacs-sourcemap")
9612 (version "0.03")
9613 (source
9614 (origin
9615 (method url-fetch)
9616 (uri (string-append "https://github.com/syohex/emacs-sourcemap/archive/"
9617 version ".tar.gz"))
9618 (file-name (string-append name "-" version ".tar.gz"))
9619 (sha256
9620 (base32
9621 "0bmd5l3cx2iyl7vxn84xdhs80b07kpdpfwki28lh5d0kmm5qs6m6"))))
9622 (build-system emacs-build-system)
9623 (home-page "https://github.com/syohex/emacs-sourcemap")
9624 (synopsis "Sourcemap parser")
9625 (description "Sourcemap parser")
9626 (license license:gpl3+)))
9627
9628 (define-public emacs-macrostep
9629 (let ((commit "424e3734a1ee526a1bd7b5c3cd1d3ef19d184267"))
9630 (package
9631 (name "emacs-macrostep")
9632 (version (git-version "0.9" "1" commit))
9633 (source (origin
9634 (method git-fetch)
9635 (uri (git-reference
9636 (url "https://github.com/joddie/macrostep.git")
9637 (commit commit)))
9638 (file-name (string-append name "-" version "-checkout"))
9639 (sha256
9640 (base32
9641 "1fm40mxdn289cyzgw992223dgrjmwxn4q8svyyxfaxjrpb38jhjz"))))
9642 (build-system emacs-build-system)
9643 (arguments
9644 '(#:phases
9645 (modify-phases %standard-phases
9646 (add-before 'check 'remove-test
9647 ;; Fails because of requirement ‘/bin/sh’.
9648 (lambda _
9649 (let ((file "macrostep-test.el"))
9650 (chmod file #o644)
9651 (emacs-batch-edit-file file
9652 `(progn (progn (goto-char (point-min))
9653 (re-search-forward
9654 "(ert-deftest macrostep-expand-c-macros")
9655 (beginning-of-line)
9656 (kill-sexp))
9657 (basic-save-buffer))))))
9658 (add-before 'install 'check
9659 (lambda _
9660 (invoke "emacs" "--batch" "-L" "."
9661 "-l" "macrostep-test.el"
9662 "-f" "ert-run-tests-batch-and-exit"))))))
9663 (home-page "https://github.com/joddie/macrostep")
9664 (synopsis "Interactive macro-expander for Emacs")
9665 (description "@code{macrostep} is an Emacs minor mode for interactively
9666 stepping through the expansion of macros in Emacs Lisp source code. It lets
9667 you see exactly what happens at each step of the expansion process by
9668 pretty-printing the expanded forms inline in the source buffer, which is
9669 temporarily read-only while macro expansions are visible. You can expand and
9670 collapse macro forms one step at a time, and evaluate or instrument the
9671 expansions for debugging with Edebug as normal (but see “Bugs and known
9672 limitations”, below). Single-stepping through the expansion is particularly
9673 useful for debugging macros that expand into another macro form. These can be
9674 difficult to debug with Emacs’ built-in macroexpand, which continues expansion
9675 until the top-level form is no longer a macro call.")
9676 (license license:gpl3+))))
9677
9678 (define-public emacs-parent-mode
9679 (package
9680 (name "emacs-parent-mode")
9681 (version "2.3")
9682 (source
9683 (origin
9684 (method url-fetch)
9685 (uri (string-append "https://github.com/Fanael/parent-mode/archive/"
9686 version ".tar.gz"))
9687 (file-name (string-append name "-" version ".tar.gz"))
9688 (sha256
9689 (base32
9690 "0gxbl5s1w96v6v55b7aaansgw4sxhzfx9nrsvpk3pfhsibs6yqjd"))))
9691 (build-system emacs-build-system)
9692 (home-page "https://github.com/Fanael/parent-mode")
9693 (synopsis "Get major mode's parent modes")
9694 (description "Get major mode's parent modes")
9695 (license license:gpl3+)))
9696
9697 (define-public emacs-lacarte
9698 (package
9699 (name "emacs-lacarte")
9700 (version "0.1")
9701 (source (origin
9702 (method url-fetch)
9703 (uri "https://www.emacswiki.org/emacs/download/lacarte.el")
9704 (sha256
9705 (base32
9706 "1sbmk37ljq5j7dsw5c37sbxvlfgdqswh7bi4dknyjzfxlq50f4am"))))
9707 (build-system emacs-build-system)
9708 (home-page "https://www.emacswiki.org/emacs/lacarte.el")
9709 (synopsis "Execute menu items as commands, with completion")
9710 (description "Execute menu items as commands, with completion.")
9711 (license license:gpl3)))
9712
9713 (define-public emacs-isearch-prop
9714 (let ((commit "5e9dc44cf582d998aaa73ccd4d07cbda01248156")
9715 (revision "1"))
9716 (package
9717 (name "emacs-isearch-prop")
9718 (version (git-version "0" revision commit))
9719 (source
9720 (origin
9721 (method git-fetch)
9722 (uri (git-reference
9723 (url "https://github.com/emacsmirror/isearch-prop.git")
9724 (commit commit)))
9725 (file-name (git-file-name name version))
9726 (sha256
9727 (base32
9728 "1xawppy705ybsgx566zvj8zk2aajq0sqvhvfs7nijqq32lx0a2zl"))))
9729 (build-system emacs-build-system)
9730 (home-page "https://www.emacswiki.org/emacs/isearch-prop.el")
9731 (synopsis "Extensions to @code{isearch.el}")
9732 (description "The Emacs library @code{isearch-prop.el} lets you search within
9733 contexts. You can limit incremental search to a set of zones of
9734 buffer text, search contexts that in effect constitute a multi-region.
9735 These zones can be defined in various ways, including some ways
9736 provided specially by this library.")
9737 (license license:gpl3+))))
9738
9739 (define-public emacs-company-lua
9740 (let ((commit "0be8122f3adf57ad27953bf4b03545d6298d3da4"))
9741 (package
9742 (name "emacs-company-lua")
9743 (version (git-version "0.1" "1" commit))
9744 (source
9745 (origin
9746 (method git-fetch)
9747 (uri (git-reference
9748 (url "https://github.com/ptrv/company-lua.git")
9749 (commit commit)))
9750 (file-name (git-file-name name version))
9751 (sha256
9752 (base32
9753 "1d9i165apgmwns7b2fd5wcpjpkah3dyj20v5sb8ynvz6qhhr5r9c"))))
9754 (build-system emacs-build-system)
9755 (propagated-inputs
9756 `(("emacs-company" ,emacs-company)
9757 ("emacs-s" ,emacs-s)
9758 ("emacs-f" ,emacs-f)
9759 ("emacs-lua-mode" ,emacs-lua-mode)))
9760 (home-page "https://github.com/ptrv/company-lua")
9761 (synopsis "Company backend for Lua")
9762 (description
9763 "This package provides Company backend for Lua programming language.")
9764 (license license:gpl3+))))
9765
9766 (define-public emacs-beginend
9767 (package
9768 (name "emacs-beginend")
9769 (version "2.0.0")
9770 (source
9771 (origin
9772 (method url-fetch)
9773 (uri (string-append "https://github.com/DamienCassou/beginend/archive/"
9774 "v" version ".tar.gz"))
9775 (file-name (string-append name "-" version ".tar.gz"))
9776 (sha256
9777 (base32
9778 "0z4rbwffh9vxfvcrlvym4p73z7gf72q0b5iv33llbpcpbijknnrq"))))
9779 ;; TODO: Run tests.
9780 (build-system emacs-build-system)
9781 (inputs
9782 `(("emacs-undercover" ,emacs-undercover))) ; For tests.
9783 (home-page "https://github.com/DamienCassou/beginend")
9784 (synopsis "Redefine @code{M-<} and @code{M->} for Emacs modes")
9785 (description "@code{beginend} redefines @code{M-<} and @code{M->}
9786 keybindings for Emacs modes so that point moves to meaningful
9787 locations. Redefined keys are still accessible by pressing the same
9788 key again.")
9789 (license license:gpl3+)))
9790
9791 (define-public emacs-mbsync
9792 (let ((commit "42077e83ae2db778ce0f8e22f8357b40355526b3")
9793 (revision "1"))
9794 (package
9795 (name "emacs-mbsync")
9796 (version (string-append "0.0.1" "-" revision "."
9797 (string-take commit 7)))
9798 (source
9799 (origin
9800 (method git-fetch)
9801 (uri (git-reference
9802 (url "https://github.com/dimitri/mbsync-el.git")
9803 (commit commit)))
9804 (file-name (string-append name "-" version "-checkout"))
9805 (sha256
9806 (base32
9807 "0yj93y2mpxlir8x73znlg1slxlv4blm1vjv5h2w3j8lxg8bxvmn6"))))
9808 (build-system emacs-build-system)
9809 (home-page "https://github.com/dimitri/mbsync-el")
9810 (synopsis "Interface to mbsync for Emacs")
9811 (description "This package allows to call the @code{mbsync} from
9812 within Emacs.")
9813 (license license:gpl3+))))
9814
9815 (define-public emacs-ibuffer-projectile
9816 (let ((commit "c18ac540ee46cb759fc5df18747f6e8d23563011")
9817 (revision "1"))
9818 (package
9819 (name "emacs-ibuffer-projectile")
9820 (version (string-append "0.2" "-" revision "."
9821 (string-take commit 7)))
9822 (source
9823 (origin
9824 (method git-fetch)
9825 (uri (git-reference
9826 (url "https://github.com/purcell/ibuffer-projectile.git")
9827 (commit commit)))
9828 (file-name (string-append name "-" version "-checkout"))
9829 (sha256
9830 (base32
9831 "1nd26cwwdpnwj0g4w393rd59klpyr6wqrnyr6scmwb5d06bsm44n"))))
9832 (build-system emacs-build-system)
9833 (propagated-inputs
9834 `(("emacs-projectile" ,emacs-projectile)))
9835 (home-page "https://github.com/purcell/ibuffer-projectile")
9836 (synopsis "Group ibuffer's list by projectile root")
9837 (description "Adds functionality to Emacs @code{ibuffer} for
9838 grouping buffers by their projectile root directory.")
9839 (license license:gpl3+))))
9840
9841 (define-public emacs-helm-mode-manager
9842 (package
9843 (name "emacs-helm-mode-manager")
9844 (version "1.0.0")
9845 (source
9846 (origin
9847 (method url-fetch)
9848 (uri (string-append "https://github.com/istib/helm-mode-manager/"
9849 "archive/" version ".tar.gz"))
9850 (file-name (string-append name "-" version ".tar.gz"))
9851 (sha256
9852 (base32
9853 "0wllj321z16hgrx0ddwzk5wz4mnnx5am7w5nclqclfc5dfdn92wm"))))
9854 (build-system emacs-build-system)
9855 (propagated-inputs
9856 `(("emacs-helm" ,emacs-helm)))
9857 (home-page "https://github.com/istib/helm-mode-manager/")
9858 (synopsis "Switch and toggle Emacs major and minor modes using Helm")
9859 (description "This package provides a Helm interface for toggling Emacs
9860 major or minor mode.
9861
9862 @itemize
9863 @item @code{helm-switch-major-mode} list of all major modes
9864 @item @code{helm-enable-minor-mode} list of all inactive minor modes
9865 @item @code{helm-disable-minor-mode} list of all ACTIVE minor modes
9866 @end itemize\n
9867
9868 Hitting @code{RET} enables the mode, @code{C-z} shows the mode
9869 documentation.")
9870 (license license:gpl3+)))
9871
9872 (define-public emacs-hy-mode
9873 (package
9874 (name "emacs-hy-mode")
9875 (version "1.0.3")
9876 (source
9877 (origin
9878 (method url-fetch)
9879 (uri (string-append "https://github.com/hylang/hy-mode/archive/"
9880 "v" version ".tar.gz"))
9881 (file-name (string-append name "-" version ".tar.gz"))
9882 (sha256
9883 (base32
9884 "0b4pvbr2hf77bq2vsyfsv653q0dab7qzq85wc7kdziw7687jdf2z"))))
9885 (build-system emacs-build-system)
9886 (propagated-inputs
9887 `(("emacs-dash" ,emacs-dash)
9888 ("emacs-s" ,emacs-s)))
9889 (home-page "https://github.com/hylang/hy-mode")
9890 (synopsis "Major mode for Hylang")
9891 (description "This package provides a major mode for Hylang.")
9892 (license license:gpl3+)))
9893
9894 (define-public emacs-web-beautify
9895 (package
9896 (name "emacs-web-beautify")
9897 (version "0.3.2")
9898 (source
9899 (origin
9900 (method url-fetch)
9901 (uri (string-append "https://github.com/yasuyk/web-beautify/archive/"
9902 version ".tar.gz"))
9903 (file-name (string-append name "-" version ".tar.gz"))
9904 (sha256
9905 (base32
9906 "1j57hwid74id4swkx2g0iljfawx0k9c7qjrwqc0mv657x9p78hcs"))))
9907 (build-system emacs-build-system)
9908 (home-page "https://github.com/yasuyk/web-beautify")
9909 (synopsis "Format HTML, CSS and JavaScript, JSON")
9910 (description "This package provides an Emacs functions to format HTML,
9911 CSS, JavaScript, JSON.")
9912 (license license:gpl3+)))
9913
9914 (define-public emacs-helm-shell-history
9915 (let ((commit "110d3c35c52fe4b89b29e79ea4c8626bce7266a1"))
9916 (package
9917 (name "emacs-helm-shell-history")
9918 (version (git-version "0.1" "1" commit))
9919 (source
9920 (origin
9921 (method git-fetch)
9922 (uri (git-reference
9923 (url "https://github.com/yuutayamada/helm-shell-history.git")
9924 (commit commit)))
9925 (file-name (git-file-name name version))
9926 (sha256
9927 (base32
9928 "18fkjcz69g4dyaxhf9j8svr5x6dhsdnglddwisis8hdn504scpfj"))))
9929 (build-system emacs-build-system)
9930 (arguments
9931 '(#:phases
9932 (modify-phases %standard-phases
9933 (add-before 'check 'patch-helm-shell-history-file
9934 (lambda _
9935 (let ((file "helm-shell-history.el"))
9936 (chmod file #o644)
9937 (emacs-substitute-sexps file
9938 ("(defvar helm-shell-history-file"
9939 `(expand-file-name "~/.bash_history"))))
9940 #t)))))
9941 (propagated-inputs
9942 `(("emacs-helm" ,emacs-helm)))
9943 (home-page "https://github.com/yuutayamada/helm-shell-history")
9944 (synopsis "Find shell history with Emacs Helm")
9945 (description "This package provides an Emacs Helm interface to search
9946 throw a shell history.")
9947 (license license:gpl3+))))
9948
9949 (define-public emacs-discover-my-major
9950 (package
9951 (name "emacs-discover-my-major")
9952 (version "1.0")
9953 (source
9954 (origin
9955 (method url-fetch)
9956 (uri
9957 (string-append "https://github.com/steckerhalter/discover-my-major"
9958 "/archive/" version ".tar.gz"))
9959 (file-name (string-append name "-" version ".tar.gz"))
9960 (sha256
9961 (base32
9962 "0nah41f92rrl2l405kpqr6iaks11jyclgl4z7ilfymbr4ifmsiyl"))))
9963 (build-system emacs-build-system)
9964 (propagated-inputs
9965 `(("emacs-makey" ,emacs-makey)))
9966 (home-page "https://github.com/steckerhalter/discover-my-major")
9967 (synopsis "Discover key bindings for the current Emacs major mode")
9968 (description "This package provides allows to discover key bindings and
9969 their meaning for the current Emacs major-mode.")
9970 (license license:gpl3+)))
9971
9972 (define-public emacs-org-ref
9973 (let ((commit "8c9b5d7efb9f0c1ad5186b8203bdd017f4249129")
9974 (revision "1"))
9975 (package
9976 (name "emacs-org-ref")
9977 (version (string-append "1.1.1" "-" revision "."
9978 (string-take commit 7)))
9979 (source
9980 (origin
9981 (method git-fetch)
9982 (uri (git-reference
9983 (url "https://github.com/jkitchin/org-ref.git")
9984 (commit commit)))
9985 (file-name (string-append name "-" version "-checkout"))
9986 (sha256
9987 (base32
9988 "1rxz0bjdsayk0slv23i07d9xhj2m7s4hsc81wc2d1cs52dkr5zmz"))))
9989 (build-system emacs-build-system)
9990 (propagated-inputs
9991 `(("emacs-dash" ,emacs-dash)
9992 ("emacs-helm" ,emacs-helm)
9993 ("emacs-helm-bibtex" ,emacs-helm-bibtex)
9994 ("emacs-ivy" ,emacs-ivy)
9995 ("emacs-hydra" ,emacs-hydra)
9996 ("emacs-key-chord" ,emacs-key-chord)
9997 ("emacs-s" ,emacs-s)
9998 ("emacs-f" ,emacs-f)
9999 ("emacs-pdf-tools" ,emacs-pdf-tools)))
10000 (home-page "https://github.com/jkitchin/org-ref")
10001 (synopsis "Citations, cross-references and bibliographies in org-mode")
10002 (description
10003 "Lisp code to setup bibliography, cite, ref and label org-mode links.
10004 Also sets up reftex and helm for org-mode citations. The links are
10005 clickable and do things that are useful.
10006
10007 The default setup uses helm-bibtex.
10008
10009 You should really read org-ref.org in this package for details.")
10010 (license license:gpl3+))))
10011
10012 ;; This project is unmaintained. Please use emacs-org-re-reveal instead.
10013 (define-public emacs-org-reveal
10014 (let ((commit "1cdd088ec5fab631c564dca7f9f74fd3e9b7d4d4"))
10015 (package
10016 (name "emacs-org-reveal")
10017 (version (git-version "0.1" "2" commit))
10018 (source (origin
10019 (method git-fetch)
10020 (uri (git-reference
10021 (url "https://github.com/yjwen/org-reveal.git")
10022 (commit commit)))
10023 (file-name (git-file-name name version))
10024 (sha256
10025 (base32
10026 "1vjxjadq2i74p96y9jxnqj1yb86fsgxzmn7bjgnb88ay6nvc1l72"))))
10027 (build-system emacs-build-system)
10028 (home-page "https://github.com/yjwen/org-reveal")
10029 (synopsis "Org and Reveal.js powered HTML presentation tool")
10030 (description "Org-Reveal is a command@{org-mode} extension that allows
10031 to create beautiful presentations (slides) with 3D effects from simple but
10032 powerful Org contents.")
10033 (license license:gpl3+))))
10034
10035 (define-public emacs-org-re-reveal
10036 (package
10037 (name "emacs-org-re-reveal")
10038 (version "1.0.3")
10039 (source (origin
10040 (method git-fetch)
10041 (uri (git-reference
10042 (url "https://gitlab.com/oer/org-re-reveal.git")
10043 (commit "50cc6574c77f12d423f6cd096d8f76feb3673abc")))
10044 (file-name (git-file-name name version))
10045 (sha256
10046 (base32
10047 "1v3z30gpimg4spf6zzqwp9b597zxk89h0vpq6xp58js4rjg4ixk8"))))
10048 (build-system emacs-build-system)
10049 (propagated-inputs
10050 `(("emacs-htmlize" ,emacs-htmlize)
10051 ("emacs-org" ,emacs-org)))
10052 (home-page "https://gitlab.com/oer/org-re-reveal")
10053 (synopsis "Build HTML presentations with reveal.js from Org source files")
10054 (description "This project started as fork of org-reveal. It provides an
10055 export back-end for HTML presentations with reveal.js from Org mode source
10056 files.")
10057 (license license:gpl3+)))
10058
10059 (define-public emacs-add-hooks
10060 (package
10061 (name "emacs-add-hooks")
10062 (version "3.1.1")
10063 (source (origin
10064 (method url-fetch)
10065 (uri (string-append
10066 "https://github.com/nickmccurdy/add-hooks/archive/"
10067 version ".tar.gz"))
10068 (file-name (string-append name "-" version ".tar.gz"))
10069 (sha256
10070 (base32
10071 "03a28gb3298g7pc2qji9hi44p4d99ljp5mpi9cmg42ldv8fl6549"))))
10072 (build-system emacs-build-system)
10073 (home-page "https://github.com/nickmccurdy/add-hooks/")
10074 (synopsis "Emacs function for setting multiple hooks")
10075 (description "This package provides a @code{add-hooks} function tidies up
10076 duplicate hook and function names further into a single declarative call.")
10077 (license license:gpl3+)))
10078
10079 (define-public emacs-fancy-narrow
10080 (package
10081 (name "emacs-fancy-narrow")
10082 (version "0.9.5")
10083 (source
10084 (origin
10085 (method url-fetch)
10086 (uri (string-append "https://github.com/Malabarba/fancy-narrow/archive/"
10087 version ".tar.gz"))
10088 (file-name (string-append name "-" version ".tar.gz"))
10089 (sha256
10090 (base32
10091 "0rf2rnzg82pdqch041yyx3f9ddixffkk9s2ydzg8hwy66sg3385n"))))
10092 (build-system emacs-build-system)
10093 (home-page "https://github.com/Malabarba/fancy-narrow/releases")
10094 (synopsis "Imitate @code{narrow-to-region} with more eye candy")
10095 (description
10096 "Unlike @code{narrow-to-region}, which completely hides text outside
10097 the narrowed region, this package simply de-emphasizes the text, makes it
10098 read-only, and makes it unreachable. This leads to a much more natural
10099 feeling where the region stays static (instead of being brutally moved to a
10100 blank slate) and is clearly highlighted with respect to the rest of the
10101 buffer.")
10102 (license license:gpl2+)))
10103
10104 (define-public emacs-know-your-http-well
10105 (package
10106 (name "emacs-know-your-http-well")
10107 (version "0.5.0")
10108 (source
10109 (origin
10110 (method url-fetch)
10111 (uri (string-append
10112 "https://github.com/for-GET/know-your-http-well/archive/"
10113 "v" version ".tar.gz"))
10114 (file-name (string-append name "-" version ".tar.gz"))
10115 (sha256
10116 (base32
10117 "1y3kwz88awcgwaivlswq0q4g2i02762r23lpwg61bfqy5lrjjqnj"))))
10118 (arguments
10119 `(#:phases
10120 (modify-phases %standard-phases
10121 (add-after 'unpack 'install-json-files
10122 (lambda* (#:key outputs #:allow-other-keys)
10123 (for-each (lambda (directory)
10124 (copy-recursively directory
10125 (string-append
10126 (assoc-ref outputs "out")
10127 directory)))
10128 '("js" "json"))))
10129 (add-after 'unpack 'chdir-elisp
10130 ;; Elisp directory is not in root of the source.
10131 (lambda _
10132 (chdir "emacs"))))))
10133 (build-system emacs-build-system)
10134 (home-page "https://github.com/for-GET/know-your-http-well")
10135 (synopsis "Meaning of HTTP headers codes")
10136 (description "Meaning of HTTP headers codes.")
10137 (license license:gpl3+)))
10138
10139 (define-public emacs-navi-mode
10140 (let ((commit "c1d38e8237f4e14af020a0b7d4f118ea198ab674"))
10141 (package
10142 (name "emacs-navi-mode")
10143 (version (git-version "2.0" "1" commit))
10144 (source
10145 (origin
10146 (method git-fetch)
10147 (uri (git-reference
10148 (url "https://github.com/alphapapa/navi.git")
10149 (commit commit)))
10150 (file-name (git-file-name name version))
10151 (sha256
10152 (base32
10153 "0jj5spk14hgb7zb1cd2n8whcw4k1kd5zb6llwj96v178yaws7l8k"))))
10154 (build-system emacs-build-system)
10155 (propagated-inputs
10156 `(("emacs-outshine" ,emacs-outshine)
10157 ("emacs-outorg" ,emacs-outorg)))
10158 (home-page "https://github.com/alphapapa/navi")
10159 (synopsis "Emacs major-mode for easy buffer-navigation")
10160 (description
10161 "This package provides an Emacs major-mode for easy buffer-navigation")
10162 (license license:gpl3+))))
10163
10164 (define-public emacs-download-region
10165 (let ((commit "eb9e557529a73b4cfc8281c70dd0d95db333fffa")
10166 (revision "1"))
10167 (package
10168 (name "emacs-download-region")
10169 (version (string-append "0.0.1" "-" revision "."
10170 (string-take commit 7)))
10171 (source
10172 (origin
10173 (method git-fetch)
10174 (uri (git-reference
10175 (url "https://github.com/zk-phi/download-region.git")
10176 (commit commit)))
10177 (file-name (string-append name "-" version "-checkout"))
10178 (sha256
10179 (base32
10180 "0v52djg39b6k2snizd9x0qc009ws5y0ywqsfwhqgcbs5ymzh7dsc"))))
10181 (build-system emacs-build-system)
10182 (home-page "https://github.com/zk-phi/download-region")
10183 (synopsis "In buffer download manager for Emacs")
10184 (description "@code{download-region} provides in buffer
10185 downloading manager for Emacs.")
10186 (license license:gpl3+))))
10187
10188 (define-public emacs-helpful
10189 (package
10190 (name "emacs-helpful")
10191 (version "0.15")
10192 (source (origin
10193 (method url-fetch)
10194 (uri (string-append
10195 "https://github.com/Wilfred/helpful/archive/"
10196 version ".tar.gz"))
10197 (file-name (string-append name "-" version ".tar.gz"))
10198 (sha256
10199 (base32
10200 "1xmvhphzb4hbg647dz4lafy6hd19b7bk3lxni6irqrzdsrclhzn6"))))
10201 (build-system emacs-build-system)
10202 (propagated-inputs
10203 `(("emacs-elisp-refs" ,emacs-elisp-refs)))
10204 (home-page "https://github.com/Wilfred/helpful")
10205 (synopsis "More contextual information in Emacs help")
10206 (description "@code{helpful} is an alternative to the built-in Emacs help
10207 that provides much more contextual information.
10208
10209 @itemize
10210 @item Show the source code for interactively defined functions (unlike the
10211 built-in Help).
10212 @item Fall back to the raw sexp if no source is available.
10213 @item Show where a function is being called.
10214 @item Docstrings will Highlight the summary (the first sentence), include
10215 cross-references, hide superfluous puncuation.
10216 @item Show you the properties that have been applied to the current
10217 symbol. This provides visibility of features like edebug or byte-code
10218 optimisation.
10219 @item Provide a separate @code{helpful-command} function to view interactive
10220 functions.
10221 @item Display any keybindings that apply to interactive functions.
10222 @item Trace, disassemble functions from inside Helpful. This is discoverable
10223 and doesn't require memorisation of commands.
10224 @end itemize\n")
10225 (license license:gpl3+)))
10226
10227 (define-public emacs-logview
10228 (package
10229 (name "emacs-logview")
10230 (version "0.9")
10231 (source (origin
10232 (method url-fetch)
10233 (uri (string-append
10234 "https://github.com/doublep/logview/archive/"
10235 version ".tar.gz"))
10236 (file-name (string-append name "-" version ".tar.gz"))
10237 (sha256
10238 (base32
10239 "1vd11ppm46ldqsiwhqgw91p34gbjh1y82r9mxcn9r2gj65nvhxcp"))))
10240 (propagated-inputs
10241 `(("emacs-datetime" ,emacs-datetime)))
10242 (build-system emacs-build-system)
10243 (home-page "https://github.com/doublep/logview/")
10244 (synopsis "Emacs mode for viewing log files")
10245 (description "@code{logview} provides an Emacs mode to view log files.")
10246 (license license:gpl3+)))
10247
10248 (define-public emacs-suggest
10249 (package
10250 (name "emacs-suggest")
10251 (version "0.7")
10252 (home-page "https://github.com/Wilfred/suggest.el")
10253 (source
10254 (origin
10255 (method git-fetch)
10256 (uri (git-reference
10257 (url home-page)
10258 (commit version)))
10259 (file-name (git-file-name name version))
10260 (sha256
10261 (base32
10262 "01v8plska5d3g19sb1m4ph1i3ayprfzk8mi6mpabjy6zad397xjl"))))
10263 (build-system emacs-build-system)
10264 (propagated-inputs
10265 `(("emacs-loop" ,emacs-loop)
10266 ("emacs-dash" ,emacs-dash)
10267 ("emacs-s" ,emacs-s)
10268 ("emacs-f" ,emacs-f)
10269 ("emacs-spinner" ,emacs-spinner)
10270 ("emacs-shut-up" ,emacs-shut-up)))
10271 (synopsis "Suggest Elisp functions that give the output requested")
10272 (description "Suggest.el will find functions that give the output
10273 requested. It's a great way of exploring list, string and arithmetic
10274 functions.")
10275 (license license:gpl3+)))
10276
10277 (define-public emacs-benchmark-init
10278 (package
10279 (name "emacs-benchmark-init")
10280 (version "1.0")
10281 (source (origin
10282 (method url-fetch)
10283 (uri (string-append
10284 "https://github.com/dholm/benchmark-init-el/archive/"
10285 version ".tar.gz"))
10286 (file-name (string-append name "-" version ".tar.gz"))
10287 (sha256
10288 (base32
10289 "0szyqr4nncwz4vd5gww1vz31kf9r2lx25p4d0d09pm35974x53kz"))))
10290 (build-system emacs-build-system)
10291 (home-page "https://github.com/dholm/benchmark-init-el")
10292 (synopsis "Benchmark Emacs @code{require} and @code{load} calls")
10293 (description "@code{benchmark-init} provides a way to keep track of where
10294 time is being spent during Emacs startup in order to optimize startup time.")
10295 (license license:gpl3+)))
10296
10297 (define-public emacs-emms-player-simple-mpv
10298 ;; A new mpv backend is included in Emms from 5.0.
10299 (deprecated-package "emacs-emms-player-simple-mpv" emacs-emms))
10300
10301 (define-public emacs-magit-gerrit
10302 (let ((version "0.3")
10303 (revision "1")
10304 (commit "ece6f369694aca17f3ac166ed2801b432acfe20d"))
10305 (package
10306 (name "emacs-magit-gerrit")
10307 (version (git-version version revision commit))
10308 (source (origin
10309 (method git-fetch)
10310 (uri (git-reference
10311 (url "https://github.com/terranpro/magit-gerrit.git")
10312 (commit commit)))
10313 (file-name (git-file-name name version))
10314 (sha256
10315 (base32
10316 "0mms0gxv9a3ns8lk5k2wjibm3088y1cmpr3axjdh6ppv7r5wdvii"))))
10317 (build-system emacs-build-system)
10318 (propagated-inputs
10319 `(("emacs-magit" ,emacs-magit)))
10320 (home-page "https://github.com/terranpro/magit-gerrit")
10321 (synopsis "Magit extension for Gerrit")
10322 (description "This Magit extension provides integration with Gerrit,
10323 which makes it possible to conduct Gerrit code reviews directly from within
10324 Emacs.")
10325 (license license:gpl3+))))
10326
10327 (define-public emacs-magit-org-todos-el
10328 (let ((commit "df206287737b9671f2e36ae7b1474ebbe9940d2a"))
10329 (package
10330 (name "emacs-magit-org-todos-el")
10331 (version (git-version "0.1.1" "1" commit))
10332 (source
10333 (origin
10334 (method git-fetch)
10335 (uri (git-reference
10336 (url "https://github.com/danielma/magit-org-todos.el.git")
10337 (commit commit)))
10338 (file-name (git-file-name name version))
10339 (sha256
10340 (base32
10341 "0kdp7k7jnnrkhsg0xh1c3h7iz0vgi120gf5xwl1hxy61avivnxrn"))))
10342 (propagated-inputs
10343 `(("magit" ,emacs-magit)))
10344 (build-system emacs-build-system)
10345 (home-page "https://github.com/danielma/magit-org-todos.el")
10346 (synopsis "Get todo.org into Emacs Magit status")
10347 (description "This package allows you to get @file{todo.org} into your
10348 magit status.
10349
10350 If you have a @file{todo.org} file with @code{TODO} items in the root of your
10351 repository, @code{magit-org-todos} will create a section in your Magit status
10352 buffer with each of your todos.")
10353 (license license:gpl3+))))
10354
10355 (define-public emacs-f3
10356 (package
10357 (name "emacs-f3")
10358 (version "0.1")
10359 (source
10360 (origin
10361 (method url-fetch)
10362 (uri (string-append "https://github.com/cosmicexplorer/f3/archive/"
10363 version ".tar.gz"))
10364 (file-name (string-append name "-" version ".tar.gz"))
10365 (sha256
10366 (base32
10367 "06b8i1jvklm5k3k90n65f197l1miq1xlxqkqpbppw4h3rhl4y98h"))))
10368 (build-system emacs-build-system)
10369 (propagated-inputs
10370 `(("emacs-helm" ,emacs-helm)))
10371 (home-page "https://github.com/cosmicexplorer/f3")
10372 (synopsis "Fantastic File Finder for Emacs")
10373 (description
10374 "The Fantastic File Finder for Emacs. Find files fast, using helm.")
10375 (license license:gpl3+)))
10376
10377 (define-public emacs-lice-el
10378 (let ((commit "4339929927c62bd636f89bb39ea999d18d269250"))
10379 (package
10380 (name "emacs-lice-el")
10381 (version (git-version "0.2" "1" commit))
10382 (source (origin
10383 (method git-fetch)
10384 (uri (git-reference
10385 (url "https://github.com/buzztaiki/lice-el.git")
10386 (commit commit)))
10387 (file-name (git-file-name name version))
10388 (sha256
10389 (base32
10390 "0879z761b7gajkhq176ps745xpdrivch349crransv8fnsc759yb"))))
10391 (build-system emacs-build-system)
10392 (home-page "https://github.com/buzztaiki/lice-el")
10393 (synopsis "License and header template for Emacs")
10394 (description "@code{lice.el} provides following features:
10395
10396 @itemize
10397 @item License template management.
10398 @item File header insertion.
10399 @end itemize\n")
10400 (license license:gpl3+))))
10401
10402 (define-public emacs-academic-phrases
10403 (let ((commit "0823ed8c24b26c32f909b896a469833ec4d7b656"))
10404 (package
10405 (name "emacs-academic-phrases")
10406 (version (git-version "0.1" "1" commit))
10407 (source
10408 (origin
10409 (method git-fetch)
10410 (uri (git-reference
10411 (url "https://github.com/nashamri/academic-phrases.git")
10412 (commit commit)))
10413 (file-name (string-append name "-" version "-checkout"))
10414 (sha256
10415 (base32
10416 "0qfzsq8jh05w4zkr0cvq3i1hdn97bq344vcqjg46sib26x3wpz6r"))))
10417 (build-system emacs-build-system)
10418 (propagated-inputs
10419 `(("emacs-dash" ,emacs-dash)
10420 ("emacs-s" ,emacs-s)
10421 ("emacs-ht" ,emacs-ht)))
10422 (home-page "https://github.com/nashamri/academic-phrases")
10423 (synopsis "Bypass that mental block when writing your papers")
10424 (description
10425 "When writing your academic paper, you might get stuck trying to find
10426 the right phrase that captures your intention. This package tries to
10427 alleviate that problem by presenting you with a list of phrases organized by
10428 the topic or by the paper section that you are writing. This package has
10429 around 600 phrases so far.
10430
10431 Using this package is easy, just call @code{academic-phrases} to get a list of
10432 phrases organized by topic, or call @code{academic-phrases-by-section} to
10433 browse the phrases by the paper section and fill-in the blanks if required.")
10434 (license license:gpl3+))))
10435
10436 (define-public emacs-auto-yasnippet
10437 (let ((commit "d1ccfea87312c6dd8cf8501ab5b71b1d3d44d95b"))
10438 (package
10439 (name "emacs-auto-yasnippet")
10440 (version (git-version "0.3.0" "1" commit))
10441 (source (origin
10442 (method git-fetch)
10443 (uri (git-reference
10444 (url "https://github.com/abo-abo/auto-yasnippet.git")
10445 (commit commit)))
10446 (file-name (string-append name "-" version "-checkout"))
10447 (sha256
10448 (base32
10449 "1i8k2qiyzd5rq0zplk4xb5nfa5mp0ibxbzwqj6c7877waq7244xk"))))
10450 (build-system emacs-build-system)
10451 (arguments
10452 '(#:phases
10453 (modify-phases %standard-phases
10454 (add-before 'install 'check
10455 (lambda _
10456 (invoke "emacs" "--batch"
10457 "-l" "auto-yasnippet.el"
10458 "-l" "auto-yasnippet-test.el"
10459 "-f" "ert-run-tests-batch-and-exit"))))))
10460 (propagated-inputs
10461 `(("emacs-yasnippet" ,emacs-yasnippet)))
10462 (home-page "https://github.com/abo-abo/auto-yasnippet/")
10463 (synopsis "Quickly create disposable yasnippets")
10464 (description "This package provides a hybrid of keyboard macros and
10465 yasnippet. You create the snippet on the go, usually to be used just in the
10466 one place. It's fast, because you're not leaving the current buffer, and all
10467 you do is enter the code you'd enter anyway, just placing ~ where you'd like
10468 yasnippet fields and mirrors to be.")
10469 (license license:gpl3+))))
10470
10471 (define-public emacs-highlight-numbers
10472 (package
10473 (name "emacs-highlight-numbers")
10474 (version "0.2.3")
10475 (source
10476 (origin
10477 (method url-fetch)
10478 (uri (string-append
10479 "https://github.com/Fanael/highlight-numbers/archive/"
10480 version ".tar.gz"))
10481 (file-name (string-append name "-" version ".tar.gz"))
10482 (sha256
10483 (base32
10484 "030v5p11d4n0581ncv499l1fqrmfziy756q6378x2bv22ixghqqp"))))
10485 (build-system emacs-build-system)
10486 (propagated-inputs
10487 `(("emacs-parent-mode" ,emacs-parent-mode)))
10488 (home-page "https://github.com/Fanael/highlight-numbers")
10489 (synopsis "Highlight numbers in source code")
10490 (description "@code{highlight-numbers-mode} provides a minor mode for
10491 syntax highlighting of numeric literals in source code.
10492
10493 It s customizable: it's easy to add or redefine what exactly consitutes a
10494 \"number\" in given major mode. See @code{highlight-numbers-modelist}.")
10495 (license license:gpl3+)))
10496
10497 (define-public emacs-darkroom
10498 (package
10499 (name "emacs-darkroom")
10500 (version "0.1")
10501 (source (origin
10502 (method url-fetch)
10503 (uri (string-append "https://elpa.gnu.org/packages/darkroom-"
10504 version ".el"))
10505 (sha256
10506 (base32
10507 "0fif8fm1h7x7g16949shfnaik5f5488clsvkf8bi5izpqp3vi6ak"))))
10508 (build-system emacs-build-system)
10509 (home-page "https://elpa.gnu.org/packages/darkroom.html")
10510 (synopsis "Remove visual distractions and focus on writing")
10511 (description "@code{darkroom-mode} makes visual distractions disappear.
10512 The mode-line is temporarily elided, text is enlarged and margins are adjusted
10513 so that it's centered on the window.
10514
10515 @code{darkroom-tentative-mode} is similar, but it doesn't immediately turn-on
10516 @code{darkroom-mode}, unless the current buffer lives in the sole window of
10517 the Emacs frame (i.e. all other windows are deleted). Whenever the frame is
10518 split to display more windows and more buffers, the buffer exits
10519 @code{darkroom-mode}. Whenever they are deleted, the buffer re-enters
10520 @code{darkroom-mode}.")
10521 (license license:gpl3+)))
10522
10523 (define-public emacs-rsw-elisp
10524 (package
10525 (name "emacs-rsw-elisp")
10526 (version "1.0.5")
10527 (source (origin
10528 (method url-fetch)
10529 (uri (string-append "https://github.com/rswgnu/rsw-elisp"
10530 "/archive/" version ".tar.gz"))
10531 (file-name (string-append name "-" version ".tar.gz"))
10532 (sha256
10533 (base32
10534 "1jnn7xfwl3wxc87v44ccsf1wwp80par3xgcvfb1icd6zchjmlcps"))))
10535 (build-system emacs-build-system)
10536 (home-page "https://github.com/rswgnu/rsw-elisp")
10537 (synopsis "Improved expressions that interactively evaluate Emacs Lisp")
10538 (description "This package improves and replaces the GNU Emacs commands
10539 that interactively evaluate Emacs Lisp expressions. The new commands replace
10540 standard key bindings and are all prefixed with @code{rsw-elisp-}. They work
10541 the same way as the old commands when called non-interactively; only the
10542 interactive behavior should be different.")
10543 (license license:gpl3+)))
10544
10545 (define-public emacs-default-text-scale
10546 (let ((commit "968e985e219235f3e744d6d967e592acbaf6e0a8")
10547 (revision "1"))
10548 (package
10549 (name "emacs-default-text-scale")
10550 (version (string-append "0.1" "-" revision "."
10551 (string-take commit 7)))
10552 (source (origin
10553 (method git-fetch)
10554 (uri (git-reference
10555 (url "https://github.com/purcell/default-text-scale")
10556 (commit commit)))
10557 (file-name (string-append name "-" version "-checkout"))
10558 (sha256
10559 (base32
10560 "0zds01c3q5yny6ab1fxfkzzgn1kgl3q23lxxap905f4qd70v922h"))))
10561 (build-system emacs-build-system)
10562 (home-page "https://github.com/purcell/default-text-scale")
10563 (synopsis "Adjust the font size in all Emacs frames")
10564 (description "This package provides commands for increasing or
10565 decreasing the default font size in all GUI Emacs frames.")
10566 (license license:gpl3+))))
10567
10568 (define-public emacs-visual-regexp
10569 (package
10570 (name "emacs-visual-regexp")
10571 (version "1.1.1")
10572 (source
10573 (origin
10574 (method url-fetch)
10575 (uri (string-append "https://github.com/benma/visual-regexp.el/archive/"
10576 "v" version ".tar.gz"))
10577 (file-name (string-append name "-" version ".tar.gz"))
10578 (sha256
10579 (base32
10580 "1czmhvcivlcdyz7rfm0vd4a3xsgmy4qbvbl6yjxc217wrxqflr92"))))
10581 (build-system emacs-build-system)
10582 (home-page "https://github.com/benma/visual-regexp.el/")
10583 (synopsis "Regexp command with interactive visual feedback")
10584 (description "This package provides an Emacs regexp command with
10585 interactive visual feedback.")
10586 (license license:gpl3+)))
10587
10588 (define-public emacs-faceup
10589 (let ((commit "6c92dad56a133e14e7b27831e1bcf9b3a71ff154")
10590 (revision "1"))
10591 (package
10592 (name "emacs-faceup")
10593 (version (string-append "0.0.1" "-" revision "."
10594 (string-take commit 7)))
10595 (source
10596 (origin
10597 (method git-fetch)
10598 (uri (git-reference
10599 (url "https://github.com/Lindydancer/faceup.git")
10600 (commit commit)))
10601 (file-name (string-append name "-" version "-checkout"))
10602 (sha256
10603 (base32
10604 "1yzmy7flrhrh0i10bdszx8idx6r8h6czm4vm4q0z6fp5fw94zwrx"))))
10605 (build-system emacs-build-system)
10606 (home-page "https://github.com/Lindydancer/faceup")
10607 (synopsis "Markup language for faces and font-lock regression testing")
10608 (description "Emacs is capable of highlighting buffers based on
10609 language-specific @code{font-lock} rules. This package makes it possible to
10610 perform regression test for packages that provide font-lock rules.")
10611 (license license:gpl3+))))
10612
10613 (define-public emacs-racket-mode
10614 (let ((commit "b977873e6128f8399432dcd60cc39f6a6f803d9c")
10615 (revision "2"))
10616 (package
10617 (name "emacs-racket-mode")
10618 (version (string-append "0.0.2" "-" revision "."
10619 (string-take commit 7)))
10620 (source
10621 (origin
10622 (method git-fetch)
10623 (uri (git-reference
10624 (url "https://github.com/greghendershott/racket-mode")
10625 (commit commit)))
10626 (file-name (string-append name "-" version "-checkout"))
10627 (sha256
10628 (base32
10629 "0vp4bbbplqvmnhjpl6ajrlydmrhqzil56cfbs18m5c5fddx0zlh7"))))
10630 (build-system emacs-build-system)
10631 (arguments
10632 `(#:include '("\\.el$" "\\.rkt$")))
10633 (propagated-inputs
10634 `(("emacs-faceup" ,emacs-faceup)
10635 ("emacs-s" ,emacs-s)))
10636 (home-page "https://github.com/greghendershott/racket-mode")
10637 (synopsis "Major mode for Racket language")
10638 (description "@code{racket-mode} provides:
10639
10640 @itemize
10641 @item Focus on Racket (not various Schemes).
10642 @item Follow DrRacket concepts where applicable.
10643 @item Thorough font-lock and indent.
10644 @end itemize\n")
10645 (license license:gpl3+))))
10646
10647 (define-public emacs-grep-context
10648 (let ((commit "a17c57e66687a54e195e08afe776bdd60cb6c0a7"))
10649 (package
10650 (name "emacs-grep-context")
10651 (version (git-version "0.1" "1" commit))
10652 (source
10653 (origin
10654 (method git-fetch)
10655 (uri (git-reference
10656 (url "https://github.com/mkcms/grep-context.git")
10657 (commit commit)))
10658 (file-name (string-append name "-" version "-checkout"))
10659 (sha256
10660 (base32
10661 "1nqfa6kjzjshww4hnwg1c0vcr90bdjihy3kmixq3c3jkvxg99b62"))))
10662 (build-system emacs-build-system)
10663 (propagated-inputs
10664 `(("emacs-dash" ,emacs-dash)))
10665 (home-page "https://github.com/nashamri/academic-phrases")
10666 (synopsis "Increase context in compilation and grep buffers")
10667 (description
10668 "This package provides an Emacs package for more context in
10669 compilation/grep buffers. Works with @code{wgrep}, @code{ack}, @code{ag},
10670 @code{ivy}.")
10671 (license license:gpl3+))))
10672
10673 (define-public emacs-helm-firefox
10674 (let ((commit "0ad34b7b5abc485a86cae6920c14de861cbeb085")
10675 (revision "1"))
10676 (package
10677 (name "emacs-helm-firefox")
10678 (version (string-append "0.0.1" "-" revision "."
10679 (string-take commit 7)))
10680 (source
10681 (origin
10682 (method git-fetch)
10683 (uri (git-reference
10684 (url "https://github.com/emacs-helm/helm-firefox.git")
10685 (commit commit)))
10686 (file-name (string-append name "-" version "-checkout"))
10687 (sha256
10688 (base32
10689 "08mjsi2f9s29fkk35cj1rrparjnkm836qmbfdwdz7y51f9varjbs"))))
10690 (propagated-inputs
10691 `(("emacs-helm" ,emacs-helm)))
10692 (build-system emacs-build-system)
10693 (home-page "https://github.com/emacs-helm/helm-firefox")
10694 (synopsis "Display firefox bookmarks with Emacs Helm interface")
10695 (description "Display firefox bookmarks with Emacs Helm interface")
10696 (license license:gpl3+))))
10697
10698 (define-public emacs-interactive-align
10699 (package
10700 (name "emacs-interactive-align")
10701 (version "0.1.0")
10702 (source
10703 (origin
10704 (method url-fetch)
10705 (uri (string-append "https://github.com/mkcms/interactive-align/"
10706 "archive/" "v" version ".tar.gz"))
10707 (file-name (string-append name "-" version ".tar.gz"))
10708 (sha256
10709 (base32
10710 "0sibpgb4lp6yy3pziak8f3hz4b28yj0dqy2nzh51z3d0b63h528m"))))
10711 (build-system emacs-build-system)
10712 (home-page "https://github.com/mkcms/interactive-align/")
10713 (synopsis "Interactive align-regexp command in Emacs")
10714 (description "Interactive align-regexp command in Emacs")
10715 (license license:gpl3+)))
10716
10717 (define-public emacs-shift-number
10718 (package
10719 (name "emacs-shift-number")
10720 (version "0.1")
10721 (source
10722 (origin
10723 (method url-fetch)
10724 (uri (string-append "https://github.com/alezost/shift-number.el"
10725 "/archive/" "v" version ".tar.gz"))
10726 (file-name (string-append name "-" version ".tar.gz"))
10727 (sha256
10728 (base32
10729 "1g79m0hqn9jgpm565vvh8pdfzndc4vw7xisnh5qysj55qfg8cb1x"))))
10730 (build-system emacs-build-system)
10731 (home-page "https://github.com/alezost/shift-number.el")
10732 (synopsis "Increase or decrease the number at point")
10733 (description "@code{emacs-shift-number} provides commands
10734 @code{shift-number-up} to increase and @code{shift-number-down} to
10735 decrease the number at point.")
10736 (license license:gpl3+)))
10737
10738 (define-public emacs-highlight-defined
10739 (package
10740 (name "emacs-highlight-defined")
10741 (version "0.1.5")
10742 (source
10743 (origin
10744 (method url-fetch)
10745 (uri (string-append
10746 "https://github.com/Fanael/highlight-defined/archive/"
10747 version ".tar.gz"))
10748 (file-name (string-append name "-" version ".tar.gz"))
10749 (sha256
10750 (base32
10751 "1ryd66989b5byqdw8jmjrjf0c78iiz72wibld750skcnj5h5h506"))))
10752 (build-system emacs-build-system)
10753 (home-page "https://github.com/Fanael/highlight-defined")
10754 (synopsis "Syntax highlighting of known Elisp symbols")
10755 (description "Minor mode providing syntax highlighting of known Emacs Lisp
10756 symbols. Currently the code distinguishes Lisp functions, built-in functions,
10757 macros, faces and variables. To enable call @code{highlight-defined-mode}. ")
10758 (license license:gpl3+)))
10759
10760 (define-public emacs-parinfer-mode
10761 (package
10762 (name "emacs-parinfer-mode")
10763 (version "0.4.10")
10764 (source
10765 (origin
10766 (method url-fetch)
10767 (uri (string-append "https://github.com/DogLooksGood/parinfer-mode/archive/"
10768 "v" version ".tar.gz"))
10769 (file-name (string-append name "-" version ".tar.gz"))
10770 (sha256
10771 (base32
10772 "06ba9qi59sm9ih9m38fbr8kj4qkvrm58n0c0ngfjz60gnr9x9pcv"))))
10773 (propagated-inputs
10774 `(("emacs-dash" ,emacs-dash)
10775 ("emacs-rainbow-delimiters" ,emacs-rainbow-delimiters)
10776 ("emacs-company" ,emacs-company)))
10777 (build-system emacs-build-system)
10778 (home-page "https://github.com/DogLooksGood/parinfer-mode/")
10779 (synopsis "Lisp structure editing mode")
10780 (description "@code{parinfer-mode} is a proof-of-concept editor
10781 mode for Lisp programming languages. It will infer some changes to
10782 keep Parens and Indentation inline with one another.")
10783 (license license:gpl3+)))
10784
10785 (define-public emacs-helm-eww
10786 (package
10787 (name "emacs-helm-eww")
10788 (version "1.2")
10789 (source (origin
10790 (method git-fetch)
10791 (uri (git-reference
10792 (url "https://github.com/emacs-helm/helm-eww.git")
10793 (commit version)))
10794 (file-name (string-append name "-" version "-checkout"))
10795 (sha256
10796 (base32
10797 "0hpq1h0p69c9k6hkd2mjpprx213sc5475q7pr2zpmwrjdzgcv70z"))))
10798 (propagated-inputs
10799 `(("emacs-helm" ,emacs-helm)))
10800 (build-system emacs-build-system)
10801 (home-page "https://github.com/emacs-helm/helm-eww/")
10802 (synopsis "Helm interface to EWW")
10803 (description "This package provides a Helm interface for EWW buffers,
10804 bookmarks and history.")
10805 (license license:gpl3+)))
10806
10807 (define-public emacs-stumpwm-mode
10808 (let ((commit "8fbe071d2c6c040794060a354eb377218dc10b35")
10809 (revision "1"))
10810 (package
10811 (name "emacs-stumpwm-mode")
10812 (version (string-append "0.0.1-" revision "."
10813 (string-take commit 7)))
10814 (source (origin
10815 (method git-fetch)
10816 (uri (git-reference
10817 (url "https://github.com/stumpwm/stumpwm-contrib.git")
10818 (commit commit)))
10819 (file-name (string-append name "-" version "-checkout"))
10820 (sha256
10821 (base32
10822 "1dfwsvz1c8w6j4jp0kzaz78ml3f5dp0a5pvf090kwpbpg176r7iq"))))
10823 (build-system emacs-build-system)
10824 (arguments
10825 `(#:phases
10826 (modify-phases %standard-phases
10827 (add-after 'unpack 'chdir-elisp
10828 ;; Elisp directory is not in root of the source.
10829 (lambda _
10830 (chdir "util/swm-emacs"))))))
10831 (home-page "https://github.com/stumpwm/stumpwm-contrib")
10832 (synopsis "Emacs minor-mode for Stumpwm")
10833 (description "Emacs minor-mode for Stumpwm")
10834 (license license:gpl3+))))
10835
10836 (define-public emacs-irfc
10837 (package
10838 (name "emacs-irfc")
10839 (version "20130824.507")
10840 (source
10841 (origin
10842 (method url-fetch)
10843 (uri "https://www.emacswiki.org/emacs/download/irfc.el")
10844 (file-name (string-append "irfc-" version ".el"))
10845 (sha256
10846 (base32
10847 "197ybqwbj8qjh2p9pkf5mvqnrkpcgmv8c5s2gvl6msyrabk0mnca"))))
10848 (build-system emacs-build-system)
10849 (home-page "https://www.emacswiki.org/emacs/download/irfc.el")
10850 (synopsis "Interface for IETF RFC document")
10851 (description
10852 "This package provides an Emacs interface for IETF RFC document.")
10853 (license license:gpl3+)))
10854
10855 (define-public emacs-ido-vertical-mode
10856 (package
10857 (name "emacs-ido-vertical-mode")
10858 (version "0.1.6")
10859 (source
10860 (origin
10861 (method url-fetch)
10862 (uri (string-append
10863 "https://github.com/creichert/ido-vertical-mode.el/archive/"
10864 "v" version ".tar.gz"))
10865 (file-name (string-append name "-" version ".tar.gz"))
10866 (sha256
10867 (base32
10868 "0dprdxq8wvqd45dinwj92k0kixr07c8xvspa6i613mjcpxgwjg53"))))
10869 (build-system emacs-build-system)
10870 (home-page "https://github.com/creichert/ido-vertical-mode.el")
10871 (synopsis "Makes ido-mode display vertically")
10872 (description "Makes ido-mode display prospects vertically.")
10873 (license license:gpl3+)))
10874
10875 (define-public emacs-wordgen
10876 (package
10877 (name "emacs-wordgen")
10878 (version "0.1.4")
10879 (source
10880 (origin
10881 (method url-fetch)
10882 (uri (string-append "https://github.com/Fanael/wordgen.el/archive/"
10883 version ".tar.gz"))
10884 (file-name (string-append name "-" version ".tar.gz"))
10885 (sha256
10886 (base32
10887 "1h2iyixdm49h53pwj9ics9gb9h3g6wa4hainpnjg6mfarf49jkmg"))))
10888 (build-system emacs-build-system)
10889 (home-page "https://github.com/Fanael/wordgen.el")
10890 (synopsis "Random word generator")
10891 (description "This package provides functions to generate random words
10892 using user-provided rules.")
10893 (license license:gpl3+)))
10894
10895 (define-public emacs-on-screen
10896 (package
10897 (name "emacs-on-screen")
10898 (version "1.3.2")
10899 (source
10900 (origin
10901 (method url-fetch)
10902 (uri (string-append
10903 "http://elpa.gnu.org/packages/on-screen-" version ".el"))
10904 (file-name (string-append name "-" version ".el"))
10905 (sha256
10906 (base32
10907 "15d18mjgv1pnwl6kf3pr5w64q1322p1l1qlfvnckglwmzy5sl2qv"))))
10908 (build-system emacs-build-system)
10909 (home-page
10910 "https://github.com/michael-heerdegen/on-screen.el")
10911 (synopsis "Guide your eyes while scrolling")
10912 (description
10913 "Scrolling can be distracting because your eyes may lose
10914 orientation. This library implements a minor mode that highlights
10915 the previously visible buffer part after each scroll.")
10916 (license license:gpl3+)))
10917
10918 (define-public emacs-highlight-escape-sequences
10919 (let ((commit "08d846a7aa748209d65fecead2b6a766c3e5cb41")
10920 (revision "1"))
10921 (package
10922 (name "emacs-highlight-escape-sequences")
10923 (version (string-append "0.0.1" "-" revision "."
10924 (string-take commit 7)))
10925 (source
10926 (origin
10927 (method git-fetch)
10928 (uri (git-reference
10929 (url "https://github.com/dgutov/highlight-escape-sequences.git")
10930 (commit commit)))
10931 (file-name (string-append name "-" version "-checkout"))
10932 (sha256
10933 (base32
10934 "05mc3w1f8ykf80914a1yddw6j8cmh0h57llm07xh89s53821v2is"))))
10935 (build-system emacs-build-system)
10936 (home-page "https://github.com/dgutov/highlight-escape-sequences")
10937 (synopsis "Highlight escape sequences in Emacs")
10938 (description "@code{highlight-escape-sequences} provides an
10939 Emacs minor mode to escape sequences in code.")
10940 (license license:gpl3+))))
10941
10942 (define-public emacs-dashboard
10943 (package
10944 (name "emacs-dashboard")
10945 (version "1.2.4")
10946 (source
10947 (origin
10948 (method url-fetch)
10949 (uri (string-append
10950 "https://github.com/rakanalh/emacs-dashboard/archive/"
10951 version ".tar.gz"))
10952 (file-name (string-append name "-" version ".tar.gz"))
10953 (sha256
10954 (base32
10955 "1738lmbgq6gk24hcwic0qjyajr21l5xzhya4pv58dw1bhd6vxv9g"))))
10956 (build-system emacs-build-system)
10957 (propagated-inputs
10958 `(("emacs-page-break-lines" ,emacs-page-break-lines)))
10959 (arguments '(#:include '("\\.el$" "\\.txt$" "\\.png$")))
10960 (home-page "https://github.com/rakanalh/emacs-dashboard")
10961 (synopsis "Startup screen extracted from Spacemacs")
10962 (description "This package provides an extensible Emacs dashboard, with
10963 sections for bookmarks, projectil projects, org-agenda and more. ")
10964 (license license:gpl3+)))
10965
10966 (define-public emacs-slime-company
10967 (package
10968 (name "emacs-slime-company")
10969 (version "1.1")
10970 (source
10971 (origin
10972 (method url-fetch)
10973 (uri (string-append "https://github.com/anwyn/slime-company/archive/"
10974 "v" version ".tar.gz"))
10975 (sha256
10976 (base32
10977 "1myl79pxj501xfr5qc5a24qddsn2l5iaamg7rf7fpny7mr9v70ar"))
10978 (file-name (string-append name "-" version ".tar.gz"))))
10979 (build-system emacs-build-system)
10980 (propagated-inputs
10981 `(("emacs-slime" ,emacs-slime)
10982 ("emacs-company" ,emacs-company)))
10983 (home-page "https://company-mode.github.io")
10984 (synopsis "SLIME completion backend for @code{company-mode}")
10985 (description
10986 "This is a backend implementation for the completion package
10987 @code{company-mode} which supports the normal and the fuzzy completion
10988 modes of SLIME.")
10989 (license license:gpl3+)))
10990
10991 (define-public emacs-sml-mode
10992 (package
10993 (name "emacs-sml-mode")
10994 (version "6.8")
10995 (source
10996 (origin
10997 (method url-fetch)
10998 (uri (string-append "http://elpa.gnu.org/packages/sml-mode-"
10999 version ".el"))
11000 (sha256
11001 (base32
11002 "105fcrz5qp95f2n3fdm3awr6z58sbrjihjss6qnrg4lz2ggbc328"))))
11003 (build-system emacs-build-system)
11004 (home-page "http://elpa.gnu.org/packages/sml-mode.html")
11005 (synopsis "Major mode for editing (Standard) ML")
11006 (description "SML-MODE is a major Emacs mode for editing Standard ML.
11007 It provides syntax highlighting and automatic indentation and
11008 comes with sml-proc which allows interaction with an inferior SML
11009 interactive loop.")
11010 (license license:gpl3+)))
11011
11012 (define-public emacs-eros
11013 (let ((commit "a42e45c9b2397156c684330b0fc90ee0eba773f5")
11014 (revision "1"))
11015 (package
11016 (name "emacs-eros")
11017 (version (string-append "0.0.1" "-" revision "."
11018 (string-take commit 7)))
11019 (source
11020 (origin
11021 (method git-fetch)
11022 (uri (git-reference
11023 (url "https://github.com/xiongtx/eros.git")
11024 (commit commit)))
11025 (file-name (string-append name "-" version "-checkout"))
11026 (sha256
11027 (base32
11028 "0whlsq90v13fz69k3wjrwcwb9gkpfxqjd75mg3nrp85j9nwhb5i4"))))
11029 (build-system emacs-build-system)
11030 (home-page "https://github.com/xiongtx/eros")
11031 (synopsis "Evaluation result overlays")
11032 (description "@code{eros} provides evaluation result overlays.")
11033 (license license:gpl3+))))
11034
11035 (define-public emacs-stickyfunc-enhance
11036 (let ((commit "13bdba51fcd83ccbc3267959d23afc94d458dcb0")
11037 (revision "1"))
11038 (package
11039 (name "emacs-stickyfunc-enhance")
11040 (version "0.1")
11041 (source
11042 (origin
11043 (method git-fetch)
11044 (uri (git-reference
11045 (url "https://github.com/tuhdo/semantic-stickyfunc-enhance.git")
11046 (commit commit)))
11047 (file-name (string-append name "-" version "-checkout"))
11048 (sha256
11049 (base32
11050 "16dxjsr5nj20blww4xpd4jzgjprzzh1nwvb810ggdmp9paf4iy0g"))))
11051 (build-system emacs-build-system)
11052 (home-page "https://github.com/tuhdo/semantic-stickyfunc-enhance")
11053 (synopsis "Enhancement to stock @code{semantic-stickyfunc-mode}")
11054 (description
11055 "@code{semantic-stickyfunc-mode} shows the function point is currently
11056 in at the first line of the current buffer. This is useful when you have a
11057 very long function that spreads more than a screen, and you don't have to
11058 scroll up to read the function name and then scroll down to original position.")
11059 (license license:gpl3+))))
11060
11061 (define-public emacs-git-auto-commit-mode
11062 (package
11063 (name "emacs-git-auto-commit-mode")
11064 (version "4.4.0")
11065 (source
11066 (origin
11067 (method url-fetch)
11068 (uri (string-append
11069 "https://github.com/ryuslash/git-auto-commit-mode/archive/"
11070 version ".tar.gz"))
11071 (file-name (string-append name "-" version ".tar.gz"))
11072 (sha256
11073 (base32
11074 "04avxmalsl3b7zi2vipfw9rb4wrwysnipsbch96skviql9axk870"))))
11075 (build-system emacs-build-system)
11076 (home-page "https://github.com/ryuslash/git-auto-commit-mode")
11077 (synopsis "Emacs Minor mode to automatically commit and push")
11078 (description "@code{git-auto-commit-mode} is an Emacs minor mode that
11079 tries to commit changes to a file after every save.
11080
11081 When @code{gac-automatically-push-p} is non-nil, it also tries to push to
11082 the current upstream.")
11083 (license license:gpl3+)))
11084
11085 (define-public emacs-company-restclient
11086 (package
11087 (name "emacs-company-restclient")
11088 (version "0.1.0")
11089 (source
11090 (origin
11091 (method url-fetch)
11092 (uri (string-append
11093 "https://github.com/iquiw/company-restclient/archive/"
11094 "v" version ".tar.gz"))
11095 (file-name (string-append name "-" version ".tar.gz"))
11096 (sha256
11097 (base32
11098 "1kr3f0wgqlk7r171bvb2kinv7fanwj2md01wdpx04qkgwcr1as00"))))
11099 (build-system emacs-build-system)
11100 (propagated-inputs
11101 `(("emacs-company" ,emacs-company)
11102 ("emacs-know-your-http-well" ,emacs-know-your-http-well)
11103 ("emacs-restclient" ,emacs-restclient)))
11104 (home-page "https://github.com/iquiw/company-restclient")
11105 (synopsis "Company-mode completion back-end for restclient-mode")
11106 (description "@code{company-mode} back-end for
11107 @code{restclient-mode}.
11108
11109 It provides auto-completion for HTTP methods and headers in
11110 @code{restclient-mode}. Completion source is given by
11111 @code{know-your-http-well}.")
11112 (license license:gpl3+)))
11113
11114 (define-public emacs-noflet
11115 (let ((version "20170629")
11116 (revision "1")
11117 (commit "7ae84dc3257637af7334101456dafe1759c6b68a"))
11118 (package
11119 (name "emacs-noflet")
11120 (version (git-version version revision commit))
11121 (source
11122 (origin
11123 (method git-fetch)
11124 (uri (git-reference
11125 (url "https://github.com/nicferrier/emacs-noflet")
11126 (commit commit)))
11127 (file-name (string-append name "-" version "-checkout"))
11128 (sha256
11129 (base32
11130 "0g70gnmfi8n24jzfci9nrj0n9bn1qig7b8f9f325rin8h7x32ypf"))))
11131 (build-system emacs-build-system)
11132 (arguments
11133 `(#:phases
11134 (modify-phases %standard-phases
11135 (add-after 'unpack 'require-dash
11136 ;; noflet.el uses -map from dash, but (require 'dash) is
11137 ;; missing. So, add it.
11138 (lambda _
11139 (substitute* "noflet.el"
11140 ((";;; Code:") ";;; Code:\n(require 'dash)"))
11141 #t)))))
11142 (propagated-inputs
11143 `(("emacs-dash" ,emacs-dash)))
11144 (home-page "https://github.com/nicferrier/emacs-noflet")
11145 (synopsis "Locally override functions")
11146 (description "@code{emacs-noflet} let's you locally override functions,
11147 in the manner of @command{flet}, but with access to the original function
11148 through the symbol: @command{this-fn}.")
11149 (license license:gpl3+))))
11150
11151 (define-public emacs-dumb-jump
11152 (package
11153 (name "emacs-dumb-jump")
11154 (version "0.5.2")
11155 (source
11156 (origin
11157 (method url-fetch)
11158 (uri (string-append
11159 "https://github.com/jacktasia/dumb-jump/archive/v"
11160 version ".tar.gz"))
11161 (file-name (string-append name "-" version ".tar.gz"))
11162 (sha256
11163 (base32
11164 "07n0xjgpxjpf3vp9gxchkjpydyj0zm166930as0kwiwkhjlsirsf"))))
11165 (build-system emacs-build-system)
11166 (arguments
11167 `(#:tests? #f ; FIXME: Tests freeze when run.
11168 #:test-command '("ert-runner")
11169 #:phases
11170 (modify-phases %standard-phases
11171 (add-after 'unpack 'set-shell
11172 (lambda _
11173 ;; Setting the SHELL environment variable is required for the
11174 ;; tests to find sh.
11175 (setenv "SHELL" (which "sh"))
11176 #t)))))
11177 (native-inputs
11178 `(("emacs-el-mock" ,emacs-el-mock)
11179 ("emacs-noflet" ,emacs-noflet)
11180 ("emacs-undercover" ,emacs-undercover)
11181 ("ert-runner" ,emacs-ert-runner)))
11182 (propagated-inputs
11183 `(("emacs-f" ,emacs-f)
11184 ("emacs-popup" ,emacs-popup)))
11185 (home-page "https://github.com/jacktasia/dumb-jump")
11186 (synopsis "Jump to definition for multiple languages without configuration")
11187 (description "Dumb Jump is an Emacs \"jump to definition\" package with
11188 support for multiple programming languages that favors \"just working\" over
11189 speed or accuracy. This means minimal --- and ideally zero --- configuration
11190 with absolutely no stored indexes (tags) or persistent background processes.
11191 Dumb Jump performs best with The Silver Searcher @command{ag} or ripgrep
11192 @command{rg} installed.")
11193 (license license:gpl3+)))
11194
11195 (define-public emacs-dts-mode
11196 (let ((commit "9ee0854446dcc6c53d2b8d2941051768dba50344")
11197 (revision "1"))
11198 (package
11199 (name "emacs-dts-mode")
11200 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
11201 (source
11202 (origin
11203 (method git-fetch)
11204 (uri (git-reference
11205 (url "https://github.com/bgamari/dts-mode.git")
11206 (commit commit)))
11207 (file-name (string-append name "-" version "-checkout"))
11208 (sha256
11209 (base32
11210 "1k8lljdbc90nd29xrhdrsscxavzdq532wq2mg7ljc94krj7538b1"))))
11211 (build-system emacs-build-system)
11212 (home-page "https://github.com/bgamari/dts-mode.git")
11213 (synopsis "Emacs minor mode for editing device tree files")
11214 (description
11215 "This package provides an Emacs minor mode for highlighting
11216 device tree files.")
11217 (license license:gpl3+))))
11218
11219 (define-public emacs-daemons
11220 (package
11221 (name "emacs-daemons")
11222 (version "2.0.0")
11223 (source
11224 (origin
11225 (method git-fetch)
11226 (uri (git-reference
11227 (url "https://github.com/cbowdon/daemons.el")
11228 (commit version)))
11229 (file-name (string-append name "-" version "-checkout"))
11230 (sha256
11231 (base32
11232 "00bkzfaw3bqykcks610vk9wlpa2z360xn32bpsrycacwfv29j7g4"))))
11233 (build-system emacs-build-system)
11234 (home-page "https://github.com/cbowdon/daemons.el")
11235 (synopsis "Emacs UI for managing init system services")
11236 (description
11237 "This is an Emacs mode to give you a UI for managing init system
11238 daemons (services) for those getting tired of typing out @code{sudo service
11239 my_thing reload} all the time. It offers a consistent UI over different init
11240 systems.")
11241 (license license:gpl3+)))
11242
11243 (define-public emacs-isearch+
11244 (let ((commit "95e49af9dbf0254e095a11f115e101b52659520a")
11245 (revision "1"))
11246 (package
11247 (name "emacs-isearch+")
11248 (version (git-version "0" revision commit))
11249 (source
11250 (origin
11251 (method git-fetch)
11252 (uri (git-reference
11253 (url "https://github.com/emacsmirror/isearch-plus.git")
11254 (commit commit)))
11255 (file-name (git-file-name name version))
11256 (sha256
11257 (base32
11258 "0xhd9zgknf4lvzyf4apirpd7spb1hbpzkvys00a7pkmd0vvahk0v"))))
11259 (build-system emacs-build-system)
11260 (home-page "https://www.emacswiki.org/emacs/isearch+.el")
11261 (synopsis "Extensions to @code{isearch.el}")
11262 (description "This package extends @code{isearch} with advice, dynamic
11263 filters, highlighting of regexp group levels, and more.")
11264 (license license:gpl2+))))
11265
11266 (define-public emacs-eshell-bookmark
11267 (package
11268 (name "emacs-eshell-bookmark")
11269 (version "2.0.0")
11270 (source
11271 (origin
11272 (method git-fetch)
11273 (uri (git-reference
11274 (url "https://github.com/Fuco1/eshell-bookmark")
11275 (commit version)))
11276 (file-name (git-file-name name version))
11277 (sha256
11278 (base32
11279 "14dmsnixf9vqdhsixw693sml0fn80zcf0b37z049fb40cmppqxdw"))))
11280 (build-system emacs-build-system)
11281 (home-page "https://github.com/Fuco1/eshell-bookmark")
11282 (synopsis "Provide @file{bookmark.el} integration for @code{eshell}")
11283 (description
11284 "This package allows for bookmarking @code{eshell} buffers. Upon
11285 visiting the bookmark, a new @code{eshell} session will be opened in the
11286 appropriate directory if no @code{eshell} session is active.")
11287 (license license:gpl3+)))
11288
11289 (define-public emacs-eshell-z
11290 (package
11291 (name "emacs-eshell-z")
11292 (version "0.3.2")
11293 (source
11294 (origin
11295 (method git-fetch)
11296 (uri (git-reference
11297 (url "https://github.com/xuchunyang/eshell-z")
11298 (commit (string-append "v" version))))
11299 (file-name (git-file-name name version))
11300 (sha256
11301 (base32
11302 "1aac4m814jgxwpz7lbyx5r4z5dmawp4sk7pwbx0zqpnbcsaq5wwc"))))
11303 (build-system emacs-build-system)
11304 (home-page "https://github.com/xuchunyang/eshell-z")
11305 (synopsis "Quick navigation to frequently visited directories")
11306 (description
11307 "This package is a port of @code{z}, and keeps track of visited directories
11308 and commands invoked within them in order to enable navigation via input of
11309 matching regexps.")
11310 (license license:gpl3+)))
11311
11312 (define-public emacs-esh-autosuggest
11313 (package
11314 (name "emacs-esh-autosuggest")
11315 (version "2.0.0")
11316 (source
11317 (origin
11318 (method git-fetch)
11319 (uri (git-reference
11320 (url "https://github.com/dieggsy/esh-autosuggest")
11321 (commit version)))
11322 (file-name (string-append name "-" version "-checkout"))
11323 (sha256
11324 (base32
11325 "116pdjgpjy9b0psm5kzwkwy7dq8vn0p6dy75dl1zsy2xrjf1iqdw"))))
11326 (build-system emacs-build-system)
11327 (propagated-inputs `(("emacs-company" ,emacs-company)))
11328 (home-page "https://github.com/dieggsy/esh-autosuggest")
11329 (synopsis "Fish-like autosuggestions in Eshell")
11330 (description
11331 "This package assumes you use something other than company for eshell
11332 completion (e.g. @code{eshell-pcomplete}, @code{completion-at-point},
11333 @code{helm-esh-pcomplete}). @code{company-mode} is used solely as a mechanism
11334 for history autosuggestions.
11335
11336 Unless you're using @code{use-package}'s hook keyword, you can enable the
11337 autosuggestions with:
11338 @code{(add-hook 'eshell-mode-hook #'esh-autosuggest-mode)}")
11339 (license license:gpl3+)))
11340
11341 (define-public emacs-desktop-environment
11342 (let ((commit "a9eba14f2b5b8070f78dca839ca8259736e346a6"))
11343 (package
11344 (name "emacs-desktop-environment")
11345 (version (git-version "0.2.0" "1" commit))
11346 (source
11347 (origin
11348 (method git-fetch)
11349 (uri (git-reference
11350 (url "https://gitlab.petton.fr/DamienCassou/desktop-environment")
11351 (commit commit)))
11352 (file-name (string-append name "-" version "-checkout"))
11353 (sha256
11354 (base32
11355 "0x73x5hy7w55jrzy3xvqhk90rrsznmxjqvsvwhh21qznv5w269xz"))))
11356 (build-system emacs-build-system)
11357 (home-page "https://gitlab.petton.fr/DamienCassou/desktop-environment")
11358 (synopsis "Control your GNU/Linux desktop environment from Emacs")
11359 (description
11360 "This package helps you control your GNU/Linux desktop from Emacs.
11361 With @code{desktop-environment}, you can control the brightness and volume as
11362 well as take screenshots and lock your screen. The package depends on the
11363 availability of shell commands to do the hard work for us. These commands can
11364 be changed by customizing the appropriate variables.")
11365 (license license:gpl3+))))
11366
11367 (define-public emacs-org-caldav
11368 (package
11369 (name "emacs-org-caldav")
11370 (version "20180403")
11371 (source
11372 (origin
11373 (method url-fetch)
11374 (uri (string-append
11375 "https://github.com/dengste/org-caldav/raw/"
11376 "8d3492c27a09f437d2d94f2736c56d7652e87aa0"
11377 "/org-caldav.el"))
11378 (sha256
11379 (base32
11380 "1fh4gh68ddj0is99z2ccyh97v6psnyda61n2dsadzqhcxn51amlc"))))
11381 (build-system emacs-build-system)
11382 (propagated-inputs `(("emacs-org" ,emacs-org)))
11383 (home-page "https://github.com/dengste/org-caldav")
11384 (synopsis
11385 "Sync Org files with external calendars via the CalDAV protocol")
11386 (description
11387 "Synchronize between events in Org-mode files and a CalDAV calendar.
11388 This code is still alpha.")
11389 (license license:gpl3+)))
11390
11391 (define-public emacs-zotxt
11392 (package
11393 (name "emacs-zotxt")
11394 (version "20180518")
11395 (source
11396 (origin
11397 (method url-fetch)
11398 (uri (string-append
11399 "https://github.com/egh/zotxt-emacs/archive/"
11400 "23a4a9f74a658222027d53a9a83cd4bcc583ca8b"
11401 ".tar.gz"))
11402 (sha256
11403 (base32
11404 "1qlibaciqgsva6fc7vv9krssjq00bi880396jk7llbi3c52q9n1y"))))
11405 (build-system emacs-build-system)
11406 (propagated-inputs
11407 `(("emacs-deferred" ,emacs-deferred)
11408 ("emacs-request" ,emacs-request)))
11409 (home-page "https://github.com/egh/zotxt-emacs")
11410 (synopsis "Integrate Emacs with Zotero")
11411 (description "This package provides two integration features between Emacs
11412 and the Zotero research assistant: Insertion of links to Zotero items into an
11413 Org-mode file, and citations of Zotero items in Pandoc Markdown files.")
11414 (license license:gpl3+)))
11415
11416 (define-public emacs-evil-ediff
11417 ;; Evil-Ediff is included in Evil Collection from 20180617.
11418 (deprecated-package "emacs-evil-ediff" emacs-evil-collection))
11419
11420 (define-public emacs-evil-magit
11421 (let ((commit "e2fec5877994c0c19f0c25fa01f3d22cb0ab38ba"))
11422 (package
11423 (name "emacs-evil-magit")
11424 (version (git-version "0.4.2" "2" commit))
11425 (source
11426 (origin
11427 (method git-fetch)
11428 (uri (git-reference
11429 (url "https://github.com/emacs-evil/evil-magit")
11430 (commit commit)))
11431 (file-name (string-append name "-" version "-checkout"))
11432 (sha256
11433 (base32
11434 "134v7s03jvbhm70mavwab85r09i68g2a5bvriirh0chz1av2y16v"))))
11435 (build-system emacs-build-system)
11436 (propagated-inputs
11437 `(("emacs-evil" ,emacs-evil)
11438 ("magit" ,emacs-magit)))
11439 (home-page
11440 "https://github.com/emacs-evil/evil-magit")
11441 (synopsis "Evil-based key bindings for Magit")
11442 (description
11443 "This Emacs library configures Magit and Evil to play well with each other.
11444 For some background see @url{https://github.com/magit/evil-magit/issues/1}.
11445 See the README at @url{https://github.com/justbur/evil-magit} for a table
11446 describing the key binding changes.")
11447 (license license:gpl3+))))
11448
11449 (define-public emacs-evil-mu4e
11450 ;; Evil-mu4e is included in Evil Collection from 20180617.
11451 (deprecated-package "emacs-evil-mu4e" emacs-evil-collection))
11452
11453 (define-public emacs-evil-multiedit
11454 (package
11455 (name "emacs-evil-multiedit")
11456 (version "1.3.9")
11457 (source
11458 (origin
11459 (method git-fetch)
11460 (uri (git-reference
11461 (url "https://github.com/hlissner/evil-multiedit")
11462 (commit (string-append "v" version))))
11463 (file-name (string-append name "-" version "-checkout"))
11464 (sha256
11465 (base32
11466 "19h3kqylqzbjv4297wkzzxdmn9yxbg6z4ga4ssrqri90xs7m3rw3"))))
11467 (build-system emacs-build-system)
11468 (propagated-inputs
11469 `(("emacs-evil" ,emacs-evil)
11470 ("emacs-iedit" ,emacs-iedit)))
11471 (home-page
11472 "https://github.com/hlissner/evil-multiedit")
11473 (synopsis "Multiple cursors for Evil mode")
11474 (description
11475 "This plugin was an answer to the lack of proper multiple cursor support
11476 in Emacs+Evil. It allows you to select and edit matches interactively,
11477 integrating @code{iedit-mode} into Evil mode with an attempt at sensible
11478 defaults.")
11479 (license license:gpl3+)))
11480
11481 (define-public emacs-evil-org
11482 (let ((commit "b6d652a9163d3430a9e0933a554bdbee5244bbf6"))
11483 (package
11484 (name "emacs-evil-org")
11485 (version (git-version "0.1.1" "1" commit))
11486 (source
11487 (origin
11488 (method git-fetch)
11489 (uri (git-reference
11490 (url "https://github.com/Somelauw/evil-org-mode")
11491 (commit commit)))
11492 (file-name (string-append name "-" version "-checkout"))
11493 (sha256
11494 (base32
11495 "176hrw7y7nczffbyhsa167b8rvfacsmcafm2gpkrdjqlrikbmrhl"))))
11496 (build-system emacs-build-system)
11497 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
11498 (home-page
11499 "https://github.com/Somelauw/evil-org-mode")
11500 (synopsis "Evil keybindings for Org mode")
11501 (description
11502 "This package adds supplemental Evil mode key-bindings to Emacs
11503 Org-mode. It features:
11504 @itemize
11505 @item normal, visual and insert mode bindings;
11506 @item key bindings organised in key themes;
11507 @item operators like > and < to work on headings;
11508 @item text objects;
11509 @item table support;
11510 @item calendar (date selection) support;
11511 @item agenda support.
11512 @end itemize\n")
11513 (license license:gpl3+))))
11514
11515 (define-public emacs-debpaste
11516 (package
11517 (name "emacs-debpaste")
11518 (version "0.1.5")
11519 (home-page "https://github.com/alezost/debpaste.el")
11520 (source
11521 (origin
11522 (method git-fetch)
11523 (uri (git-reference (url home-page)
11524 (commit (string-append "v" version))))
11525 (file-name (string-append name "-" version ".tar.gz"))
11526 (sha256
11527 (base32
11528 "1wi70r56pd5z0x4dp4m58p9asq03j74kdm4fi9vai83vsl2z9amq"))))
11529 (build-system emacs-build-system)
11530 (propagated-inputs
11531 `(("emacs-xml-rpc" ,emacs-xml-rpc)))
11532 (synopsis "Manipulate pastes from the Debian Pastezone")
11533 (description "Debpaste is an Emacs interface for the Debian Pastezone,
11534 allowing you to receive, post, and delete pastes. It communicates with the
11535 server using XML-RPC.")
11536 (license license:gpl3+)))
11537
11538 (define-public emacs-xml-rpc
11539 (let ((commit "8f624f8b964e9145acb504e4457c9510e87dd93c")
11540 (revision "1"))
11541 (package
11542 (name "emacs-xml-rpc")
11543 (version (git-version "1.6.12" revision commit))
11544 (source
11545 (origin
11546 (method git-fetch)
11547 (uri (git-reference
11548 (url "https://github.com/hexmode/xml-rpc-el")
11549 (commit commit)))
11550 (file-name (git-file-name name version))
11551 (sha256
11552 (base32
11553 "0xa54z52rsfl3n0xgmbycj4zazp8ksgdwcq56swzs6wp72zlalmj"))))
11554 (build-system emacs-build-system)
11555 (home-page "https://github.com/hexmode/xml-rpc-el")
11556 (synopsis "XML-RPC client for Emacs")
11557 (description "This package provides an XML-RPC client for Emacs capable
11558 of both synchronous and asynchronous method calls using the @code{url}
11559 package's async retrieval functionality. @file{xml-rpc.el} represents XML-RPC
11560 datatypes as Lisp values, automatically converting to and from the XML
11561 datastructures as needed, both for method parameters and return values, making
11562 using XML-RPC methods fairly transparent to the Lisp code.")
11563 (license license:gpl3+))))
11564
11565 (define-public emacs-fish-completion
11566 (package
11567 (name "emacs-fish-completion")
11568 (version "1.0")
11569 (source
11570 (origin
11571 (method url-fetch)
11572 (uri (string-append
11573 "https://gitlab.com/Ambrevar/emacs-fish-completion/repository/"
11574 "archive.tar.gz?ref="
11575 version))
11576 (sha256
11577 (base32
11578 "1hpma1c5j50ja03ibr7h1xmyv7k8j3rbvqivad47kwqhlsgw0jk0"))))
11579 (build-system emacs-build-system)
11580 (inputs `(("fish" ,fish)))
11581 (arguments
11582 `(#:phases
11583 (modify-phases %standard-phases
11584 (add-after 'unpack 'configure
11585 (lambda* (#:key inputs outputs #:allow-other-keys)
11586 (let ((fish (assoc-ref inputs "fish")))
11587 ;; Specify the absolute file names of the various
11588 ;; programs so that everything works out-of-the-box.
11589 (emacs-substitute-variables
11590 "fish-completion.el"
11591 ("fish-completion-command"
11592 (string-append fish "/bin/fish")))))))))
11593 (home-page
11594 "https://gitlab.com/Ambrevar/emacs-fish-completion")
11595 (synopsis "Fish completion for Emacs pcomplete")
11596 (description
11597 "This package provides completion for the Fish shell to pcomplete (used
11598 by shell and Eshell). You can set it up globally with:
11599
11600 @example
11601 (when (and (executable-find \"fish\")
11602 (require 'fish-completion nil t))
11603 (global-fish-completion-mode))
11604 @end example
11605
11606 Alternatively, you can call the @code{fish-completion-mode} manually or in
11607 shell/Eshell mode hook.
11608
11609 The package @code{emacs-bash-completion} is an optional dependency: if available,
11610 @code{fish-completion-complete} can be configured to fall back on bash to further
11611 try completing. See @code{fish-completion-fallback-on-bash-p}.")
11612 (license license:gpl3+)))
11613
11614 (define-public emacs-gif-screencast
11615 (let ((commit "12b25442b97b84abae74ecb5190a9d14ff7cfe5a"))
11616 (package
11617 (name "emacs-gif-screencast")
11618 (version (git-version "20180616" "1" commit))
11619 (source
11620 (origin
11621 (method url-fetch)
11622 (uri (string-append
11623 "https://gitlab.com/Ambrevar/emacs-gif-screencast/"
11624 "repository/archive.tar.gz?ref="
11625 commit))
11626 (sha256
11627 (base32
11628 "0lc457i78xjkn5idr2aaiadkh76zcsksj84z0qh80a9y775syrgh"))))
11629 (build-system emacs-build-system)
11630 (inputs
11631 `(("scrot" ,scrot)
11632 ("imagemagick" ,imagemagick)
11633 ("gifsicle" ,gifsicle)))
11634 (arguments
11635 `(#:phases
11636 (modify-phases %standard-phases
11637 (add-after 'unpack 'configure
11638 (lambda* (#:key inputs outputs #:allow-other-keys)
11639 (let ((scrot (assoc-ref inputs "scrot"))
11640 (imagemagick (assoc-ref inputs "imagemagick"))
11641 (gifsicle (assoc-ref inputs "gifsicle")))
11642 ;; Specify the absolute file names of the various
11643 ;; programs so that everything works out-of-the-box.
11644 (emacs-substitute-variables
11645 "gif-screencast.el"
11646 ("gif-screencast-program"
11647 (string-append scrot "/bin/scrot"))
11648 ("gif-screencast-convert-program"
11649 (string-append imagemagick "/bin/convert"))
11650 ("gif-screencast-cropping-program"
11651 (string-append imagemagick "/bin/mogrify"))
11652 ("gif-screencast-optimize-program"
11653 (string-append imagemagick "/bin/gifsicle")))))))))
11654 (home-page
11655 "https://gitlab.com/Ambrevar/emacs-gif-screencast")
11656 (synopsis "One-frame-per-action GIF recording")
11657 (description
11658 "Call @code{gif-screencast} to start a recording.
11659 A screenshot is taken for every user action. Call
11660 @code{gif-screencast-stop} (<f9> by default) to finish recording and create
11661 the GIF result.")
11662 (license license:gpl3+))))
11663
11664 (define-public emacs-google-translate
11665 (package
11666 (name "emacs-google-translate")
11667 (version "0.11.16")
11668 (source
11669 (origin
11670 (method url-fetch)
11671 (uri (string-append "https://github.com/atykhonov/google-translate/"
11672 "archive/v" version ".tar.gz"))
11673 (file-name (string-append name "-" version ".tar.gz"))
11674 (sha256
11675 (base32
11676 "01n9spj1d0gjfj39x526rl3m9c28wnx9afipmf5s8y77cx3mfwhl"))))
11677 (build-system emacs-build-system)
11678 (home-page "https://github.com/atykhonov/google-translate")
11679 (synopsis "Emacs interface to Google Translate")
11680 (description
11681 "This packages provides an Emacs interface to the Google Translate
11682 on-line service.")
11683 (license license:gpl3+)))
11684
11685 (define-public emacs-helm-company
11686 (let ((commit "d3fc093a0e833b4dee6561c00d6df3d62aa50f3f"))
11687 (package
11688 (name "emacs-helm-company")
11689 (version (git-version "0.2.3" "1" commit))
11690 (source
11691 (origin
11692 (method git-fetch)
11693 (uri (git-reference
11694 (url "https://github.com/Sodel-the-Vociferous/helm-company")
11695 (commit commit)))
11696 (file-name (string-append name "-" version "-checkout"))
11697 (sha256
11698 (base32
11699 "1ciirsanhajdqm5iwl8k9ywf4jha1wdv4sc4d9kslyrfr9zn4q6k"))))
11700 (build-system emacs-build-system)
11701 (propagated-inputs
11702 `(("emacs-helm" ,emacs-helm)
11703 ("emacs-company" ,emacs-company)))
11704 (home-page "https://github.com/Sodel-the-Vociferous/helm-company")
11705 (synopsis "Helm interface for company-mode")
11706 (description
11707 "This is a Helm interface to company-mode, a text completion
11708 framework.")
11709 (license license:gpl3+))))
11710
11711 (define-public emacs-helm-descbinds
11712 (let ((commit "033be73f21778633813264ce1634a6e1ad873d8e"))
11713 (package
11714 (name "emacs-helm-descbinds")
11715 (version (git-version "1.13" "1" commit))
11716 (source
11717 (origin
11718 (method git-fetch)
11719 (uri (git-reference
11720 (url "https://github.com/emacs-helm/helm-descbinds")
11721 (commit commit)))
11722 (file-name (string-append name "-" version "-checkout"))
11723 (sha256
11724 (base32
11725 "1n89p56qwa243w1c85i5awnaf7piwjsvfi7nmnsrwm33hix5dknk"))))
11726 (build-system emacs-build-system)
11727 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
11728 (home-page "https://github.com/emacs-helm/helm-descbinds")
11729 (synopsis "Convenient @code{describe-bindings} with Helm")
11730 (description
11731 "This package is a replacement of @code{describe-bindings} for Helm.
11732 @code{describe-bindings} is replaced with @code{helm-descbinds}. As usual,
11733 type @code{C-h b}, or any incomplete key sequence plus @code{C-h}, to run
11734 @code{helm-descbinds}. The bindings are presented in a similar way as
11735 @code{describe-bindings} does, but you can use completion to find the command
11736 you searched for and execute it, or view its documentation.")
11737 (license license:gpl3+))))
11738
11739 (define-public emacs-helm-emms
11740 (let ((commit "b785cb845a98a643eba9d5d53c9c0b4e6810a3cd"))
11741 (package
11742 (name "emacs-helm-emms")
11743 (version (git-version "1.3" "2" commit))
11744 (source
11745 (origin
11746 (method git-fetch)
11747 (uri (git-reference
11748 (url "https://github.com/emacs-helm/helm-emms")
11749 (commit commit)))
11750 (file-name (string-append name "-" version "-checkout"))
11751 (sha256
11752 (base32
11753 "1595r09y3rmwd46nnhvjja3hb8j2ila295ijxv61cg52ws4wginh"))))
11754 (build-system emacs-build-system)
11755 (propagated-inputs
11756 `(("emacs-helm" ,emacs-helm)
11757 ("emacs-emms" ,emacs-emms)))
11758 (home-page
11759 "https://github.com/emacs-helm/helm-emms")
11760 (synopsis "Emms for Helm")
11761 (description "Helm interface for Emms to browse all tracks and all folders
11762 from @code{emms-source-file-default-directory}.")
11763 (license license:gpl3+))))
11764
11765 (define-public emacs-helm-exwm
11766 (let ((commit "56266f261ba3b3d2753b374b50da20eb768c06f5"))
11767 (package
11768 (name "emacs-helm-exwm")
11769 (version (git-version "20180703" "2" commit))
11770 (source
11771 (origin
11772 (method url-fetch)
11773 (uri (string-append
11774 "https://github.com/emacs-helm/helm-exwm/archive/"
11775 commit
11776 ".tar.gz"))
11777 (sha256
11778 (base32
11779 "0n7hdiajw5vxl8ha2r9r4cl4i7crza25348825wb6acwhhzijxcj"))))
11780 (build-system emacs-build-system)
11781 (propagated-inputs
11782 `(("emacs-helm" ,emacs-helm)
11783 ("emacs-exwm" ,emacs-exwm)))
11784 (home-page
11785 "https://github.com/emacs-helm/helm-exwm")
11786 (synopsis "Helm for EXWM buffers")
11787 (description
11788 "@code{helm-exwm} runs a Helm session over the list of EXWM buffers.
11789 @code{helm-exwm-switch} is a convenience X application launcher using Helm to
11790 switch between the various windows of one or several specific applications.
11791 See @code{helm-exwm-switch-browser} for an example.")
11792 (license license:gpl3+))))
11793
11794 (define-public emacs-helm-flycheck
11795 (let ((commit "3cf7d3bb194acacc6395f88360588013d92675d6"))
11796 (package
11797 (name "emacs-helm-flycheck")
11798 (version (git-version "0.4" "1" commit))
11799 (source
11800 (origin
11801 (method git-fetch)
11802 (uri (git-reference
11803 (url "https://github.com/yasuyk/helm-flycheck")
11804 (commit commit)))
11805 (file-name (string-append name "-" version "-checkout"))
11806 (sha256
11807 (base32
11808 "1a2yfxhz04klwhcandqvfzysxp6b7bxyxx1xk1x3kds5hif5fkl4"))))
11809 (build-system emacs-build-system)
11810 (propagated-inputs
11811 `(("emacs-dash" ,emacs-dash)
11812 ("emacs-flycheck" ,emacs-flycheck)
11813 ("emacs-helm" ,emacs-helm)))
11814 (home-page "https://github.com/yasuyk/helm-flycheck")
11815 (synopsis "Show Flycheck errors with Helm")
11816 (description
11817 "This integrates Flycheck with Helm.")
11818 (license license:gpl3+))))
11819
11820 (define-public emacs-helm-ls-git
11821 (let ((commit "76654c776a7f6e2e5290645e748aac2a746f7daa"))
11822 (package
11823 (name "emacs-helm-ls-git")
11824 (version (git-version "1.9.1" "1" commit))
11825 (source
11826 (origin
11827 (method git-fetch)
11828 (uri (git-reference
11829 (url "https://github.com/emacs-helm/helm-ls-git")
11830 (commit commit)))
11831 (file-name (string-append name "-" version "-checkout"))
11832 (sha256
11833 (base32
11834 "0vsq1n3xl3ghy5zik2scm7jrs501n4kybdqd6yw6j0cv4jxdqbr0"))))
11835 (build-system emacs-build-system)
11836 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
11837 (home-page "https://github.com/emacs-helm/helm-ls-git")
11838 (synopsis "Helm interface for listing the files in a Git repository")
11839 (description
11840 "This package provides a Helm interface for Git files.
11841 @itemize
11842 @item Display the open buffers in project.
11843 @item Display a status source showing state of project (modified files etc.).
11844 @item Display a list of all files in project under git control.
11845 @item Quickly look at diffs of modified files.
11846 @item Allow switching to @code{git status} with your preferred frontend
11847 (vc-dir, Magit,etc.).
11848 @item Full integration of git-grep, also allow usage of @code{helm-grep} (you
11849 can use ack-grep instead of grep).
11850 @item Integrate usage of gid from id-utils.
11851 @item Full integration with @code{helm-find-files}, allow you to browse
11852 projects unrelated to current-buffer.
11853 @item In addition, all actions of type files and buffers are provided.
11854 @end itemize\n")
11855 (license license:gpl3+))))
11856
11857 (define-public emacs-helm-mu
11858 (let ((commit "77e6fea24e01481418738421dbcfe28ef1bd63cf"))
11859 (package
11860 (name "emacs-helm-mu")
11861 (version (git-version "20180513" "1" commit))
11862 (source
11863 (origin
11864 (method url-fetch)
11865 (uri (string-append
11866 "https://github.com/emacs-helm/helm-mu/archive/"
11867 commit
11868 ".tar.gz"))
11869 (sha256
11870 (base32
11871 "0qm4xi3i957scm50nar398pv4x8y03si10l77jb9ckjaviyq2hj9"))))
11872 (build-system emacs-build-system)
11873 (propagated-inputs
11874 `(("emacs-helm" ,emacs-helm)
11875 ("mu" ,mu)))
11876 (home-page
11877 "https://github.com/emacs-helm/helm-mu")
11878 (synopsis
11879 "Helm sources for searching emails and contacts")
11880 (description
11881 "Helm sources for searching emails and contacts using @code{mu} and
11882 @code{mu4e}. Mu is an indexer for maildirs and mu4e is a mutt-like MUA for
11883 Emacs build on top of mu. Mu is highly efficient making it possible to get
11884 instant results even for huge maildirs. It also provides search operators,
11885 e.g: @code{from:Peter to:Anne flag:attach search term}.")
11886 (license license:gpl3+))))
11887
11888 (define-public emacs-helm-pass
11889 (package
11890 (name "emacs-helm-pass")
11891 (version "0.3")
11892 (source
11893 (origin
11894 (method git-fetch)
11895 (uri (git-reference
11896 (url "https://github.com/emacs-helm/helm-pass")
11897 (commit version)))
11898 (sha256
11899 (base32
11900 "0vglaknmir3yv4iwibwn8r40ran8d04gcyp99hx73ldmf3zqpnxv"))))
11901 (build-system emacs-build-system)
11902 (propagated-inputs
11903 `(("emacs-helm" ,emacs-helm)
11904 ("emacs-password-store" ,emacs-password-store)))
11905 (home-page "https://github.com/emacs-helm/helm-pass")
11906 (synopsis "Helm interface to pass, the standard Unix password manager")
11907 (description
11908 "Users of @code{helm-pass} may also be interested in functionality
11909 provided by other Emacs packages dealing with pass:
11910 @itemize
11911 @item @code{emacs-password-store}, which @code{helm-pass} relies on.
11912 @item @code{emacs-pass}, a major mode for @code{pass}.
11913 @item @code{auth-source-pass.el}: integration of Emacs' auth-source with
11914 @code{pass}, included in Emacs 26+).
11915 @end itemize\n")
11916 (license license:gpl3+)))
11917
11918 (define-public emacs-image+
11919 (let ((commit "6834d0c09bb4df9ecc0d7a559bd7827fed48fffc"))
11920 (package
11921 (name "emacs-image+")
11922 (version (git-version "0.6.2" "1" commit))
11923 (source
11924 (origin
11925 (method git-fetch)
11926 (uri (git-reference
11927 (url "https://github.com/mhayashi1120/Emacs-imagex")
11928 (commit commit)))
11929 (file-name (string-append name "-" version "-checkout"))
11930 (sha256
11931 (base32
11932 "0v66wk9nh0raih4jhrzmmyi5lbysjnmbv791vm2230ffi2hmwxnd"))))
11933 (build-system emacs-build-system)
11934 (inputs `(("imagemagick" ,imagemagick)))
11935 (arguments
11936 `(#:phases
11937 (modify-phases %standard-phases
11938 (add-after 'unpack 'configure
11939 (lambda* (#:key inputs outputs #:allow-other-keys)
11940 (let ((imagemagick (assoc-ref inputs "imagemagick")))
11941 ;; Specify the absolute file names of the various
11942 ;; programs so that everything works out-of-the-box.
11943 (chmod "image+.el" #o666)
11944 (emacs-substitute-variables
11945 "image+.el"
11946 ("imagex-convert-command"
11947 (string-append imagemagick "/bin/convert"))
11948 ("imagex-identify-command"
11949 (string-append imagemagick "/bin/identify")))))))))
11950 (home-page "https://github.com/mhayashi1120/Emacs-imagex")
11951 (synopsis "Image manipulation extensions for Emacs")
11952 (description
11953 "Image+ provides keybindings allowing you to zoom in or zoom out of an
11954 image, rotate it, save modified images, and more.")
11955 (license license:gpl3+))))
11956
11957 (define-public emacs-package-lint
11958 (let ((commit "69bb89d00ba212b734c676ad056aa793c450b288"))
11959 (package
11960 (name "emacs-package-lint")
11961 (version (git-version "0.5" "1" commit))
11962 (source
11963 (origin
11964 (method git-fetch)
11965 (uri (git-reference
11966 (url "https://github.com/purcell/package-lint")
11967 (commit commit)))
11968 (file-name (string-append name "-" version "-checkout"))
11969 (sha256
11970 (base32
11971 "1hfricsgmy3x9snnd2p4xq6vnnv94qdsxxnxp07b3hqc9bhw31rq"))))
11972 (build-system emacs-build-system)
11973 (home-page "https://github.com/purcell/package-lint")
11974 (synopsis "Linting library for elisp package authors")
11975 (description
11976 "This provides a list of issues with the Emacs package metadata of a file,
11977 e.g. the package dependencies it requires. See function
11978 @code{package-lint-buffer}. Checks will currently be enabled only if a
11979 \"Package-Requires:\" or \"Package-Version:\" header is present in the
11980 file.")
11981 (license license:gpl3+))))
11982
11983 (define-public emacs-picpocket
11984 (let ((version "40")
11985 (commit "6fd88b8711c4370662c0f9c462170187d092a046"))
11986 (package
11987 (name "emacs-picpocket")
11988 (version version)
11989 (source
11990 (origin
11991 (method git-fetch)
11992 (uri (git-reference
11993 (url "https://github.com/johanclaesson/picpocket")
11994 (commit commit)))
11995 (file-name (git-file-name name version))
11996 (sha256
11997 (base32 "1mdzzxf7xm7zwrpnqqxa27d1cr31pd72d7ilbwljv13qp177a3yw"))))
11998 (build-system emacs-build-system)
11999 (arguments ; needed for running tests
12000 `(#:tests? #t
12001 #:emacs ,emacs
12002 #:test-command '("emacs" "--batch"
12003 "-l" "picpocket-test.el"
12004 "-f" "ert-run-tests-batch-and-exit")))
12005 (home-page "https://github.com/johanclaesson/picpocket")
12006 (synopsis "Image viewer for Emacs")
12007 (description
12008 "Picpocket is an image viewer for GNU Emacs. It has commands for:
12009
12010 @itemize
12011 @item File operations on the picture files (delete, move, copy, hardlink).
12012 @item Scale and rotate the picture.
12013 @item Associate pictures with tags which are saved to disk.
12014 @item Filter pictures according to tags.
12015 @item Customizing keystrokes for quick tagging and file operations.
12016 @item Undo and browse history of undoable commands.
12017 @end itemize")
12018 (license license:gpl3+))))
12019
12020 (define-public emacs-wgrep-helm
12021 ;; `emacs-wgrep-helm' was mistakenly added.
12022 (deprecated-package "emacs-wgrep-helm" emacs-wgrep))
12023
12024 (define-public emacs-mu4e-conversation
12025 (let ((commit "e7d4bfcb0d392b0aed1f705ccac2419a168d1f5e"))
12026 (package
12027 (name "emacs-mu4e-conversation")
12028 (version (git-version "20181126" "4" commit))
12029 (source
12030 (origin
12031 (method url-fetch)
12032 (uri (string-append
12033 "https://gitlab.com/Ambrevar/mu4e-conversation/"
12034 "repository/archive.tar.gz?ref="
12035 commit))
12036 (file-name (string-append name "-" version "-checkout"))
12037 (sha256
12038 (base32
12039 "0b52hf9rm2afba9pvgink9bwqm705sk0y5qikp0ff5sk53wqvy29"))))
12040 (build-system emacs-build-system)
12041 (propagated-inputs
12042 `(("mu" ,mu)))
12043 (home-page
12044 "https://gitlab.com/Ambrevar/mu4e-conversation")
12045 (synopsis
12046 "Show a complete thread in a single buffer")
12047 (description
12048 "This package offers an alternate view to mu4e's e-mail display. It
12049 shows all e-mails of a thread in a single view, where each correspondent has
12050 their own face. Threads can be displayed linearly (in which case e-mails are
12051 displayed in chronological order) or as an Org document where the node tree
12052 maps the thread tree.")
12053 (license license:gpl3+))))
12054
12055 (define-public emacs-pinentry
12056 (let ((commit "dcc9ba03252ee5d39e03bba31b420e0708c3ba0c")
12057 (revision "1"))
12058 (package
12059 (name "emacs-pinentry")
12060 (version (git-version "0.1" revision commit))
12061 (source
12062 (origin
12063 (method url-fetch)
12064 (uri (string-append
12065 "http://git.savannah.gnu.org/cgit/emacs/elpa.git/plain"
12066 "/packages/pinentry/pinentry.el?id=" commit))
12067 (file-name (string-append "pinentry.el"))
12068 (sha256
12069 (base32
12070 "1lf30q6r8nz5cjzclbb9bbymsk2y75nskvb55hnjdv93gr3j0sik"))))
12071 (build-system emacs-build-system)
12072 (propagated-inputs
12073 `(("gnupg" ,gnupg)))
12074 (home-page "https://elpa.gnu.org/packages/pinentry.html")
12075 (synopsis "GnuPG Pinentry server implementation")
12076 (description
12077 "This package allows GnuPG passphrase to be prompted through the
12078 minibuffer instead of graphical dialog.
12079
12080 To use, add @code{allow-emacs-pinentry} to @code{~/.gnupg/gpg-agent.conf},
12081 reload the configuration with @code{gpgconf --reload gpg-agent}, and start the
12082 server with @code{M-x pinentry-start}.")
12083 (license license:gpl3+))))
12084
12085 (define-public emacs-org-brain
12086 (package
12087 (name "emacs-org-brain")
12088 (version "0.5")
12089 (source
12090 (origin
12091 (method git-fetch)
12092 (uri (git-reference
12093 (url "https://github.com/Kungsgeten/org-brain.git")
12094 (commit "3faf9303af3f2356e3444e69c22dc6c5774047d1")))
12095 (file-name (git-file-name name version))
12096 (sha256
12097 (base32
12098 "1ad681zk6kckw2zbk0r4iaj4bw8cfqrbd1s3gdwgdjlzq81q9mmj"))))
12099 (build-system emacs-build-system)
12100 (home-page "https://github.com/Kungsgeten/org-brain")
12101 (synopsis "Org-mode wiki and concept-mapping for Emacs")
12102 (description "@code{emacs-org-brain} implements a variant of concept
12103 mapping in Emacs, using @code{org-mode}. An org-brain is a network of
12104 org-mode entries, where each entry is a file or a headline, and you can get a
12105 visual overview of the relationships between the entries: parents, children,
12106 siblings and friends. This visual overview can also be used to browse your
12107 entries. You can think of entries as nodes in a mind map, or pages in a
12108 wiki.")
12109 (license license:expat)))
12110
12111 (define-public emacs-recent-addresses
12112 (let ((commit "afbbfdc43b81e620acf827ca20d297e0c517b6eb")
12113 (revision "1"))
12114 (package
12115 (name "emacs-recent-addresses")
12116 (home-page "http://nschum.de/src/emacs/recent-addresses/")
12117 (version (git-version "0.1" revision commit))
12118 (source (origin
12119 (method git-fetch)
12120 (uri (git-reference
12121 ;; Note: Use a branch that works with Helm. Submitted
12122 ;; at <https://github.com/nschum/recent-addresses.el/pull/1>.
12123 (url "https://github.com/civodul/recent-addresses.el")
12124 (commit commit)))
12125 (sha256
12126 (base32
12127 "0ajrq0galjmdyjdjyxazykjyax3gh6hvfk4s7l657pi11g0q5zax"))
12128 (file-name (git-file-name name version))))
12129 (build-system emacs-build-system)
12130 (synopsis "Record recently-used email addressed and auto-complete them")
12131 (description
12132 "@code{recent-addresses} is an Emacs package that allows you to quickly
12133 look up previously used email addresses. It can be used alongside the Gnus
12134 email client.")
12135 (license license:gpl2+))))
12136
12137 (define-public emacs-fold-dwim
12138 (let ((commit "c46f4bb2ce91b4e307136320e72c28dd50b6cd8b")
12139 (revision "0"))
12140 (package
12141 (name "emacs-fold-dwim")
12142 (version (git-version "1.2" revision commit))
12143 (home-page "https://github.com/emacsattic/fold-dwim")
12144 (source (origin
12145 (method git-fetch)
12146 (uri (git-reference (url home-page) (commit commit)))
12147 (sha256
12148 (base32
12149 "1yz1wis31asw6xa5maliyd1ck2q02xnnh7dc6swgj9cb4wi7k6i1"))
12150 (file-name (git-file-name name version))))
12151 (build-system emacs-build-system)
12152 (synopsis "Unified user interface for Emacs folding modes")
12153 (description
12154 "DWIM stands for \"do what I mean\", as in the idea that one keystroke
12155 can do different things depending on the context. In this package, it means
12156 that, if the cursor is in a currently hidden folded construction, we want to
12157 show it; if it's not, we want to hide whatever fold the cursor is in.")
12158 (license license:gpl2+))))
12159
12160 (define-public emacs-markup-faces
12161 (package
12162 (name "emacs-markup-faces")
12163 (version "1.0.0")
12164 (source
12165 (origin
12166 (method url-fetch)
12167 (uri (string-append "https://stable.melpa.org/packages/markup-faces-"
12168 version ".el"))
12169 (sha256
12170 (base32
12171 "124dxbaa25fwxnpwsygpz7pw6da6dnnw7y2lic3jf8rgz7lw4v32"))))
12172 (build-system emacs-build-system)
12173 (home-page "https://github.com/sensorflo/markup-faces")
12174 (synopsis "Collection of Emacs faces for markup language modes")
12175 (description "emacs-markup-faces is like font-lock-faces, but tailored for
12176 markup languages instead programming languages. The sub group markup-faces-text
12177 is also intended for 'text viewing modes' such as info or (wo)man. This gives a
12178 common look and feel, or let's say theme, across different markup language modes
12179 and 'text viewing modes' respectively.")
12180 (license license:gpl3+)))
12181
12182 (define-public emacs-adoc-mode
12183 (package
12184 (name "emacs-adoc-mode")
12185 (version "0.6.6")
12186 (source
12187 (origin
12188 (method url-fetch)
12189 (uri (string-append "https://stable.melpa.org/packages/adoc-mode-"
12190 version ".el"))
12191 (sha256
12192 (base32
12193 "1c6hrgxxsnl2c19rgjykpm7r4xg9lp6bmk5z6bi7g8pqlrgwffcy"))))
12194 (build-system emacs-build-system)
12195 (propagated-inputs
12196 `(("emacs-markup-faces" ,emacs-markup-faces)))
12197 (home-page "https://github.com/sensorflo/adoc-mode/wiki")
12198 (synopsis "AsciiDoc mode for Emacs")
12199 (description "This package provides an Emacs major mode for editing AsciiDoc
12200 files. It focuses on highlighting the document to improve readability.")
12201 (license license:gpl2+)))
12202
12203 (define-public emacs-rust-mode
12204 (let ((commit
12205 ;; Last release is old (2016), use more recent commit to get bug
12206 ;; fixes.
12207 "64b4a2450e4d4c47f6307851c9b2598cd2254d68")
12208 (revision "0"))
12209 (package
12210 (name "emacs-rust-mode")
12211 (version (git-version "0.3.0" revision commit))
12212 (source (origin
12213 (method git-fetch)
12214 (uri
12215 (git-reference
12216 (url "https://github.com/rust-lang/rust-mode")
12217 (commit commit)))
12218 (file-name (git-file-name name version))
12219 (sha256
12220 (base32
12221 "0pbz36lljgb7bdgx3h3g0pq1nss1kvn8mhk1l3mknsmynd6w4nd8"))))
12222 (build-system emacs-build-system)
12223 (arguments
12224 `(#:phases
12225 (modify-phases %standard-phases
12226 (replace 'check
12227 (lambda _
12228 (invoke "sh" "run_rust_emacs_tests.sh"))))))
12229 (home-page "https://github.com/rust-lang/rust-mode")
12230 (synopsis "Major Emacs mode for editing Rust source code")
12231 (description "This package provides a major Emacs mode for editing Rust
12232 source code.")
12233 (license (list license:expat
12234 license:asl2.0)))))
12235
12236 (define-public emacs-ztree
12237 (let ((commit "c54425a094353ec40a8179f9eab3596f76c6cf94"))
12238 (package
12239 (name "emacs-ztree")
12240 (version (git-version "1.0.5" "1" commit))
12241 (source
12242 (origin
12243 (method git-fetch)
12244 (uri (git-reference
12245 (url "https://github.com/fourier/ztree")
12246 (commit commit)))
12247 (file-name (git-file-name name version))
12248 (sha256
12249 (base32
12250 "0j8fpxds8m1zi04nrs8vv21091abvh4n8ab76f1sgdxnp4l5cfb0"))))
12251 (build-system emacs-build-system)
12252 (home-page "https://github.com/fourier/ztree")
12253 (synopsis "Directory tree comparison mode for Emacs")
12254 (description "Ztree is a project dedicated to implementation of several
12255 text-tree applications inside GNU Emacs. It consists of 2 subprojects:
12256 @command{ztree-diff} and @command{ztree-dir} (the basis of
12257 @command{ztree-diff}).")
12258 (license license:gpl3))))
12259
12260 (define-public emacs-helm-org-contacts
12261 (let ((commit "0af703bd9a43032b89fdf5559673151d1ac2fffc"))
12262 (package
12263 (name "emacs-helm-org-contacts")
12264 (version (git-version "20180707" "1" commit))
12265 (source
12266 (origin
12267 (method git-fetch)
12268 (uri (git-reference
12269 (url "https://github.com/tmalsburg/helm-org-contacts")
12270 (commit commit)))
12271 (file-name (git-file-name name version))
12272 (sha256
12273 (base32
12274 "1cl7cm2ic9pg4vc9cdh84vzjj1x2lpd5ymimiva8h4l17kiphk4s"))))
12275 (build-system emacs-build-system)
12276 (propagated-inputs
12277 `(("emacs-dash" ,emacs-dash)
12278 ("emacs-helm" ,emacs-helm)
12279 ("emacs-s" ,emacs-s)))
12280 (home-page "https://github.com/tmalsburg/helm-org-contacts")
12281 (synopsis "Helm source for org-contacts")
12282 (description "This Helm source can be used to search contacts stored in
12283 org-contacts format. There are actions for inserting postal addresses, email
12284 addresses, and phone numbers in the buffer where @command{helm-org-contacts}
12285 was called.")
12286 (license license:gpl3))))
12287
12288 (define-public emacs-dired-du
12289 (package
12290 (name "emacs-dired-du")
12291 (version "0.5.1")
12292 (source
12293 (origin
12294 (method url-fetch)
12295 (uri (string-append
12296 "https://elpa.gnu.org/packages/dired-du-"
12297 version ".tar"))
12298 (sha256
12299 (base32
12300 "1091scnrjh0a4gja4z6jxic6ghy1yryv46qk9c76pmh50cpw6766"))))
12301 (build-system emacs-build-system)
12302 (home-page "http://elpa.gnu.org/packages/dired-du.html")
12303 (synopsis "Dired with recursive directory sizes")
12304 (description
12305 "Display the recursive size of directories in Dired.
12306 This file defines a minor mode @command{dired-du-mode} to show the recursive
12307 size of directories in Dired buffers. If @command{du} program is available,
12308 then the directory sizes are obtained with it. Otherwise, the directory sizes
12309 are obtained with Lisp. The former is faster and provide a more precise
12310 value. For directories where the user doesn't have read permission, the
12311 recursive size is not obtained. Once this mode is enabled, every new Dired
12312 buffer displays recursive dir sizes.")
12313 (license license:gpl3+)))
12314
12315 (define-public emacs-pcre2el
12316 ;; Last release is very old so we get the latest commit.
12317 (let ((commit "0b5b2a2c173aab3fd14aac6cf5e90ad3bf58fa7d"))
12318 (package
12319 (name "emacs-pcre2el")
12320 (version (git-version "1.8" "1" commit))
12321 (source
12322 (origin
12323 (method git-fetch)
12324 (uri (git-reference
12325 (url "https://github.com/joddie/pcre2el")
12326 (commit commit)))
12327 (file-name (git-file-name name version))
12328 (sha256
12329 (base32
12330 "14br6ad138qx1z822wqssswqiihxiynz1k69p6mcdisr2q8yyi1z"))))
12331 (build-system emacs-build-system)
12332 (home-page "https://github.com/joddie/pcre2el")
12333 (synopsis "Convert between PCRE, Emacs and rx regexp syntax")
12334 (description "@code{pcre2el} or @code{rxt} (RegeXp Translator or RegeXp
12335 Tools) is a utility for working with regular expressions in Emacs, based on a
12336 recursive-descent parser for regexp syntax. In addition to converting (a
12337 subset of) PCRE syntax into its Emacs equivalent, it can do the following:
12338
12339 @itemize
12340 @item convert Emacs syntax to PCRE
12341 @item convert either syntax to @code{rx}, an S-expression based regexp syntax
12342 @item untangle complex regexps by showing the parse tree in @code{rx} form and
12343 highlighting the corresponding chunks of code
12344 @item show the complete list of strings (productions) matching a regexp,
12345 provided the list is finite
12346 @item provide live font-locking of regexp syntax (so far only for Elisp
12347 buffers – other modes on the TODO list).
12348 @end itemize\n")
12349 (license license:gpl3))))
12350
12351 (define-public emacs-magit-todos
12352 (package
12353 (name "emacs-magit-todos")
12354 (version "1.1.7")
12355 (source
12356 (origin
12357 (method git-fetch)
12358 (uri (git-reference
12359 (url "https://github.com/alphapapa/magit-todos")
12360 (commit version)))
12361 (file-name (git-file-name name version))
12362 (sha256
12363 (base32
12364 "0qagdxpik64n4rw9scy451ws5sw00v64ri9g2dcw7b66bx2c6c6w"))))
12365 (build-system emacs-build-system)
12366 (propagated-inputs
12367 `(("emacs-async" ,emacs-async)
12368 ("emacs-dash" ,emacs-dash)
12369 ("emacs-f" ,emacs-f)
12370 ("emacs-hl-todo" ,emacs-hl-todo)
12371 ("magit" ,emacs-magit)
12372 ("emacs-pcre2el" ,emacs-pcre2el)
12373 ("emacs-s" ,emacs-s)))
12374 (home-page "https://github.com/alphapapa/magit-todos")
12375 (synopsis "Show source files' TODOs (and FIXMEs, etc) in Magit status buffer")
12376 (description "This package displays keyword entries from source code
12377 comments and Org files in the Magit status buffer. Activating an item jumps
12378 to it in its file. By default, it uses keywords from @code{hl-todo}, minus a
12379 few (like NOTE).")
12380 (license license:gpl3)))
12381
12382 (define-public emacs-git-annex
12383 ;; Unreleased version has a fontification fix.
12384 (let ((commit "ebdb44aef1883f1b2b8058e05d30fb9315b03707")
12385 (revision "1"))
12386 (package
12387 (name "emacs-git-annex")
12388 (version (string-append "1.1-" revision "." (string-take commit 8)))
12389 (source
12390 (origin
12391 (method git-fetch)
12392 (uri (git-reference
12393 (url "https://github.com/jwiegley/git-annex-el")
12394 (commit commit)))
12395 (file-name (string-append name "-" version "-checkout"))
12396 (sha256
12397 (base32
12398 "1mzv40gj7k10h7h5s43my8msgzjpj680qprqa9pp8nbyhl49v3wh"))))
12399 (build-system emacs-build-system)
12400 (home-page "https://github.com/jwiegley/git-annex-el")
12401 (synopsis "Emacs integration for git-annex")
12402 (description "Enhances Dired and buffers visiting annex files with
12403 git-annex functionality. In Dired, the names of annex files are shortened by
12404 hiding the symbolic links and fontified based on whether content is present.
12405 Commands for performing some common operations (e.g., unlocking and adding
12406 files) are provided.")
12407 (license license:gpl2+))))
12408
12409 (define-public emacs-hackernews
12410 (let ((commit "d8c450bbc76d6bb65ec5cdb6c3b888a23f3769e9"))
12411 (package
12412 (name "emacs-hackernews")
12413 (version (git-version "0.4.0" "1" commit))
12414 (source
12415 (origin
12416 (method git-fetch)
12417 (uri (git-reference
12418 (url "https://github.com/clarete/hackernews.el")
12419 (commit commit)))
12420 (file-name (git-file-name name version))
12421 (sha256
12422 (base32
12423 "06mp4n6c300jv5lhwf50ircfjckzr2p1zd38s4mqnxxjlf1maim7"))))
12424 (build-system emacs-build-system)
12425 (home-page "https://github.com/clarete/hackernews.el")
12426 (synopsis "Hacker News client for Emacs")
12427 (description "The @command{hackernews} package is able to fetch stories
12428 from six different Hacker News feeds, namely top, new, best, ask, show and job
12429 stories. The default feed is top stories, which corresponds to the Hacker
12430 News homepage.")
12431 (license license:gpl3))))
12432
12433 (define-public emacs-youtube-dl
12434 (let ((commit "7c9d7a7d05b72a7d1b1257a36c5e2b2567b185dd"))
12435 (package
12436 (name "emacs-youtube-dl")
12437 (version (git-version "1.0" "1" commit))
12438 (source
12439 (origin
12440 (method git-fetch)
12441 (uri (git-reference
12442 (url "https://github.com/skeeto/youtube-dl-emacs/")
12443 (commit commit)))
12444 (file-name (git-file-name name version))
12445 (sha256
12446 (base32
12447 "0mh4s089a4x8s380agzb2306kdp1hl204px1n5rrrrdcls7imnh6"))))
12448 (build-system emacs-build-system)
12449 (inputs
12450 `(("youtube-dl" ,youtube-dl)))
12451 (arguments
12452 `(#:phases
12453 (modify-phases %standard-phases
12454 (add-after 'unpack 'configure
12455 (lambda* (#:key inputs #:allow-other-keys)
12456 (let ((youtube-dl (assoc-ref inputs "youtube-dl")))
12457 ;; .el is read-only in git.
12458 (chmod "youtube-dl.el" #o644)
12459 ;; Specify the absolute file names of the various
12460 ;; programs so that everything works out-of-the-box.
12461 (emacs-substitute-variables
12462 "youtube-dl.el"
12463 ("youtube-dl-program"
12464 (string-append youtube-dl "/bin/youtube-dl")))))))))
12465 (home-page "https://github.com/skeeto/youtube-dl-emacs/")
12466 (synopsis "Emacs youtube-dl download manager")
12467 (description "This package manages a video download queue for
12468 @command{youtube-dl}, which serves as the back end. It manages a single
12469 @command{youtube-dl} subprocess, downloading one video at a time. New videos
12470 can be queued at any time.")
12471 (license license:unlicense))))
12472
12473 (define-public emacs-org-web-tools
12474 (package
12475 (name "emacs-org-web-tools")
12476 (version "1.0")
12477 (source
12478 (origin
12479 (method git-fetch)
12480 (uri (git-reference
12481 (url "https://github.com/alphapapa/org-web-tools")
12482 (commit version)))
12483 (file-name (git-file-name name version))
12484 (sha256
12485 (base32
12486 "0kak9h5ny00d39gnwspv53nadnag01brw2fq9zk5wpfc91h9bjng"))))
12487 (build-system emacs-build-system)
12488 (propagated-inputs
12489 `(("emacs-dash" ,emacs-dash)
12490 ("emacs-esxml" ,emacs-esxml)
12491 ("emacs-s" ,emacs-s)))
12492 (inputs
12493 `(("pandoc" ,ghc-pandoc)))
12494 (arguments
12495 `(#:phases
12496 (modify-phases %standard-phases
12497 (add-after 'unpack 'patch-exec-paths
12498 (lambda* (#:key inputs #:allow-other-keys)
12499 (let ((pandoc (assoc-ref inputs "pandoc")))
12500 (substitute* "org-web-tools.el"
12501 (("\"pandoc\"") (string-append "\"" pandoc "/bin/pandoc\"")))
12502 #t))))))
12503 (home-page "https://github.com/alphapapa/org-web-tools")
12504 (synopsis "Display/Process web page as Org-mode content")
12505 (description "This package contains library functions and commands useful
12506 for retrieving web page content and processing it into Org-mode content.
12507
12508 For example, you can copy a URL to the clipboard or kill-ring, then run a
12509 command that downloads the page, isolates the “readable” content with
12510 @command{eww-readable}, converts it to Org-mode content with Pandoc, and
12511 displays it in an Org-mode buffer. Another command does all of that but
12512 inserts it as an Org entry instead of displaying it in a new buffer.")
12513 (license license:gpl3+)))
12514
12515 (define-public emacs-blimp
12516 (let ((commit "e420763d6d18b5d1be552cdbc47f91418343db03"))
12517 (package
12518 (name "emacs-blimp")
12519 (version (git-version "0.0.0" "1" commit))
12520 (source
12521 (origin
12522 (method git-fetch)
12523 (uri (git-reference
12524 (url "https://github.com/walseb/blimp")
12525 (commit commit)))
12526 (file-name (git-file-name name version))
12527 (sha256
12528 (base32
12529 "09wmhpym516b81dfq8smdmysh1fn610dzlyvyl2rkx8600f0fizd"))))
12530 (build-system emacs-build-system)
12531 (propagated-inputs
12532 `(("emacs-eimp" ,emacs-eimp)))
12533 (home-page "https://github.com/walseb/blimp")
12534 (synopsis "Emacs wrapper around all Imagemagick commands")
12535 (description "Blimp (Bustling Image Manipulation Package) is a complete
12536 wrapper around all Imagemagick commands with descriptions, autocompletion (for
12537 some commands) and hints displayed in prompt using @command{eimp.el} to
12538 execute its commands and resize images.")
12539 (license license:gpl3+))))
12540
12541 (define-public emacs-synosaurus
12542 (let ((commit "8bf95b935976ec0a1964cf175ed57cc5f6f93bdb"))
12543 (package
12544 (name "emacs-synosaurus")
12545 (version (git-version "0.1.0" "1" commit))
12546 (source
12547 (origin
12548 (method git-fetch)
12549 (uri (git-reference
12550 (url "https://github.com/hpdeifel/synosaurus")
12551 (commit commit)))
12552 (file-name (git-file-name name version))
12553 (sha256
12554 (base32
12555 "15by9jccab6kyplxa6k0glzaivxkqdigl33gl2qi2cvy6f2q7gva"))))
12556 (build-system emacs-build-system)
12557 (propagated-inputs
12558 `(("wordnet" ,wordnet)))
12559 (arguments
12560 `(#:phases
12561 (modify-phases %standard-phases
12562 (add-after 'unpack 'configure
12563 (lambda* (#:key inputs outputs #:allow-other-keys)
12564 (let ((wn (assoc-ref inputs "wordnet")))
12565 ;; .el is read-only in git.
12566 (chmod "synosaurus-wordnet.el" #o644)
12567 ;; Specify the absolute file names of the various
12568 ;; programs so that everything works out-of-the-box.
12569 (emacs-substitute-variables
12570 "synosaurus-wordnet.el"
12571 ("wordnet-command"
12572 (string-append wn "/bin/wn")))))))))
12573 (home-page "https://github.com/hpdeifel/synosaurus")
12574 (synopsis "Extensible thesaurus mode for Emacs")
12575 (description "Synosaurus is a thesaurus fontend for Emacs with pluggable
12576 backends, including the @command{wordnet} offline backend.")
12577 (license license:gpl3+))))
12578
12579 (define-public emacs-editorconfig
12580 (package
12581 (name "emacs-editorconfig")
12582 (version "0.7.14")
12583 (source
12584 (origin
12585 (method git-fetch)
12586 (uri (git-reference
12587 (url "https://github.com/editorconfig/editorconfig-emacs")
12588 (commit (string-append "v" version))))
12589 (file-name (git-file-name name version))
12590 (sha256
12591 (base32
12592 "19j2428ij7sqvrqs7rqg1mcnv9109y6drqba40dkv3vrkk5d2yia"))))
12593 (build-system emacs-build-system)
12594 (home-page "https://github.com/editorconfig/editorconfig-emacs")
12595 (synopsis "Define and maintain consistent coding styles between different
12596 editors and IDEs")
12597 (description "The EditorConfig project consists of a file format for
12598 defining coding styles and a collection of text editor plugins that enable
12599 editors to read the file format and adhere to defined styles. EditorConfig
12600 files are easily readable and they work nicely with version control systems.")
12601 (license license:gpl3+)))
12602
12603 (define-public emacs-all-the-icons
12604 (package
12605 (name "emacs-all-the-icons")
12606 (version "3.2.0")
12607 (source
12608 (origin
12609 (method git-fetch)
12610 (uri (git-reference
12611 (url "https://github.com/domtronn/all-the-icons.el.git")
12612 (commit version)))
12613 (file-name (git-file-name name version))
12614 (sha256
12615 (base32
12616 "1sdl33117lccznj38021lwcdnpi9nxmym295q6y460y4dm4lx0jn"))))
12617 (build-system emacs-build-system)
12618 (arguments
12619 `(#:include '("\\.el$" "^data/" "^fonts/")
12620 ;; Compiling "test/" fails with "Symbol’s value as variable is void:
12621 ;; all-the-icons--root-code". Ignoring tests.
12622 #:exclude '("^test/")
12623 #:tests? #f))
12624 (propagated-inputs
12625 `(("f" ,emacs-f)
12626 ("memoize" ,emacs-memoize)))
12627 (home-page "https://github.com/domtronn/all-the-icons.el")
12628 (synopsis "Collect icon fonts and propertize them within Emacs")
12629 (description "All-the-icons is a utility package to collect various icon
12630 fonts and propertize them within Emacs. Icon fonts allow you to propertize
12631 and format icons the same way you would normal text. This enables things such
12632 as better scaling of and anti aliasing of the icons.")
12633 ;; Package is released under Expat license. Elisp files are licensed
12634 ;; under GPL3+. Fonts come with various licenses: Expat for
12635 ;; "all-the-icons.ttf" and "file-icons.ttf", Apache License 2.0 for
12636 ;; "material-design-icons.ttf", and SIL OFL 1.1 for "fontawesome.ttf",
12637 ;; "ocitcons.ttf" and "weathericons.ttf".
12638 (license
12639 (list license:expat license:gpl3+ license:silofl1.1 license:asl2.0))))
12640
12641 (define-public emacs-powerline
12642 (package
12643 (name "emacs-powerline")
12644 (version "2.4")
12645 (source
12646 (origin
12647 (method git-fetch)
12648 (uri (git-reference
12649 (url "https://github.com/milkypostman/powerline.git")
12650 (commit version)))
12651 (file-name (git-file-name name version))
12652 (sha256
12653 (base32
12654 "1hp3xp18943n0rlggz55150020ivw8gvi1vyxkr4z8xhpwq4gaar"))))
12655 (build-system emacs-build-system)
12656 (home-page "https://github.com/milkypostman/powerline/")
12657 (synopsis "Mode-line plugin for Emacs")
12658 (description "Powerline is a utility plugin which allows you to create
12659 a better-looking, more functional Emacs mode-line. A collection of predefined
12660 themes comes with the package.")
12661 (license license:gpl3+)))
12662
12663 (define-public emacs-spaceline
12664 (package
12665 (name "emacs-spaceline")
12666 (version "2.0.1")
12667 (source
12668 (origin
12669 (method git-fetch)
12670 (uri (git-reference
12671 (url "https://github.com/TheBB/spaceline.git")
12672 (commit (string-append "v" version))))
12673 (file-name (git-file-name name version))
12674 (sha256
12675 (base32
12676 "1q8r95zfrh0vxna5ml2pq9b9f66clfqcl4d2qy2aizkvzyxg6skl"))))
12677 (build-system emacs-build-system)
12678 (propagated-inputs
12679 `(("dash" ,emacs-dash)
12680 ("powerline" ,emacs-powerline)
12681 ("s" ,emacs-s)))
12682 (home-page "https://github.com/TheBB/spaceline")
12683 (synopsis "Powerline theme from Spacemacs")
12684 (description "Spaceline provides Spacemacs' mode-line theme.
12685 This package provides features for three kinds of users.
12686
12687 @itemize
12688 @item You just want to use the Spacemacs mode-line theme and forget about it.
12689 @item You want to use something similar to the Spacemacs mode-line theme, but
12690 with a handful of easy tweaks.
12691 @item You want an easy-to-use library for building your own mode-line from
12692 scratch, and you think the Spacemacs theme looks good.
12693 @end itemize")
12694 (license license:gpl3+)))
12695
12696 (define-public emacs-column-marker
12697 (package
12698 (name "emacs-column-marker")
12699 (version "9")
12700 (source
12701 (origin
12702 (method url-fetch)
12703 (uri "https://www.emacswiki.org/emacs/download/column-marker.el")
12704 (sha256 (base32 "05bv198zhqw5hqq6cr11mhz02dpca74hhp1ycwq369m0yb2naxy9"))))
12705 (build-system emacs-build-system)
12706 (home-page "https://www.emacswiki.org/emacs/ColumnMarker")
12707 (synopsis "Emacs mode for highlighting columns")
12708 (description
12709 "With @code{column-marker.el} you can highlight any number of text columns.
12710 Three such highlight column markers are provided by default. This is
12711 especially useful for languages like COBOL or Fortran where certain columns
12712 have special meaning. It is also handy for aligning text across long vertical
12713 distances. Multi-column characters, such as @kbd{TAB} are treated
12714 correctly.")
12715 (license license:gpl2+)))
12716
12717 (define-public emacs-slime-repl-ansi-color
12718 (let ((commit "ad03263f5d4de473bc173b64a6fc3dc1106393d7"))
12719 (package
12720 (name "emacs-slime-repl-ansi-color")
12721 (version (git-version "0.0.0" "1" commit))
12722 (source (origin
12723 (method git-fetch)
12724 (uri (git-reference
12725 (url "https://github.com/deadtrickster/slime-repl-ansi-color")
12726 (commit commit)))
12727 (file-name (git-file-name name version))
12728 (sha256
12729 (base32
12730 "0bpg7gxz310x7bnlg324c507sxc5gxwwz6h64h6kdq141r73vbi4"))))
12731 (build-system emacs-build-system)
12732 (home-page "https://github.com/deadtrickster/slime-repl-ansi-color")
12733 (synopsis "Color ANSI codes in the REPL of SLIME")
12734 (description "Color ANSI codes in the REPL of SLIME")
12735 (license license:gpl2+))))
12736
12737 (define-public emacs-helm-slime
12738 (package
12739 (name "emacs-helm-slime")
12740 (version "0.3.0")
12741 (source (origin
12742 (method git-fetch)
12743 (uri (git-reference
12744 (url "https://github.com/emacs-helm/helm-slime")
12745 (commit version)))
12746 (file-name (git-file-name name version))
12747 (sha256
12748 (base32
12749 "1qhb9446rpj17pm0hi3miy5gs5k3ld43bq29kzy0y26bf7ivfcjv"))))
12750 (build-system emacs-build-system)
12751 (propagated-inputs
12752 `(("emacs-helm" ,emacs-helm)
12753 ("emacs-slime" ,emacs-slime)))
12754 (home-page "https://github.com/emacs-helm/helm-slime")
12755 (synopsis "Helm for SLIME, the Superior Lisp Interaction Mode for Emacs")
12756 (description "Helm-SLIME defines a few new commands:
12757
12758 @itemize
12759 @item helm-slime-complete: Select a symbol from the SLIME completion systems.
12760 @item helm-slime-list-connections: Yet another slime-list-connections with Helm.
12761 @item: helm-slime-apropos: Yet another slime-apropos with Helm.
12762 @item helm-slime-repl-history: Select an input from the SLIME REPL history and insert it.
12763 @end itemize\n")
12764 (license license:gpl3+)))
12765
12766 (define-public emacs-gtk-look
12767 (package
12768 (name "emacs-gtk-look")
12769 (version "29")
12770 (source (origin
12771 (method url-fetch)
12772 (uri "https://download.tuxfamily.org/user42/gtk-look.el")
12773 (sha256
12774 (base32
12775 "14p2nwrd51cr1v06fxbjjn6jdrkf9d6vcxhmscm0kl677s25ypsp"))))
12776 (build-system emacs-build-system)
12777 (arguments
12778 `(#:phases
12779 (modify-phases %standard-phases
12780 (add-after 'unpack 'configure
12781 (lambda _
12782 ;; File is read-only.
12783 (chmod "gtk-look.el" #o644)
12784 (emacs-substitute-variables "gtk-look.el"
12785 ("gtk-lookup-devhelp-indices"
12786 '(list (expand-file-name "~/.guix-profile/share/gtk-doc/html/*/*.devhelp*"))))
12787 #t)))))
12788 (home-page "http://user42.tuxfamily.org/gtk-look/index.html")
12789 (synopsis "Find and display HTML documentation for GTK, GNOME and Glib")
12790 (description "@command{gtk-look} finds and displays HTML documentation for
12791 GTK, GNOME and Glib functions and variables in Emacs, similar to what
12792 info-lookup-symbol does for info files (C-h S). The documentation is expected
12793 to be devhelp indexes with HTML files. The location of the indexes can be
12794 customized. In addition to C code development @command{gtk-look} is good for
12795
12796 @itemize
12797 @item @command{perl-gtk2}, recognising class funcs like
12798 @command{Gtk2::Label->new} and bare method names like @command{set_text}.
12799 @item @command{guile-gnome}, recognising methods like @command{set-text} and
12800 classes like @command{<gtk-window>}.
12801 @end itemize\n")
12802 (license license:gpl3+)))
12803
12804 (define-public emacs-ov
12805 (package
12806 (name "emacs-ov")
12807 (version "1.0.6")
12808 (source (origin
12809 (method git-fetch)
12810 (uri (git-reference
12811 (url "https://github.com/ShingoFukuyama/ov.el.git")
12812 (commit version)))
12813 (file-name (git-file-name name version))
12814 (sha256
12815 (base32
12816 "0qxk2rf84j86syxi8xknsq252irwg7sz396v3bb4wqz4prpj0kzc"))))
12817 (build-system emacs-build-system)
12818 (home-page "https://github.com/ShingoFukuyama/ov.el")
12819 (synopsis "Overlay library for Emacs Lisp")
12820 (description "@code{ov.el} provides a simple way to manipulate overlays in
12821 Emacs.")
12822 (license license:gpl3+)))
12823
12824 (define-public emacs-matrix-client
12825 (let ((commit "a0623667b07a4bf60980c97b078e9faed97ace79"))
12826 (package
12827 (name "emacs-matrix-client")
12828 (version (git-version "0.0.0" "3" commit))
12829 (source (origin
12830 (method git-fetch)
12831 (uri (git-reference
12832 (url "https://github.com/jgkamat/matrix-client-el.git")
12833 (commit commit)))
12834 (file-name (git-file-name name version))
12835 (sha256
12836 (base32
12837 "1zya8id3y9wzjaj7nplq7br6nhm3lsskv0fkn1xr1y77fzcfgcdb"))))
12838 (build-system emacs-build-system)
12839 (propagated-inputs
12840 `(("a" ,emacs-a)
12841 ("anaphora" ,emacs-anaphora)
12842 ("dash" ,emacs-dash)
12843 ("esxml" ,emacs-esxml)
12844 ("f" ,emacs-f)
12845 ("frame-purpose" ,emacs-frame-purpose)
12846 ("ht" ,emacs-ht)
12847 ("ov" ,emacs-ov)
12848 ("rainbow-identifiers" ,emacs-rainbow-identifiers)
12849 ("request" ,emacs-request)
12850 ("s" ,emacs-s)
12851 ("tracking" ,emacs-tracking)))
12852 (home-page "https://github.com/jgkamat/matrix-client-el")
12853 (synopsis "Matrix client for Emacs")
12854 (description "@code{matrix-client} is a simple chat UI to Matrix.org
12855 rooms. It also provides an API which allows Emacs to seamlessly create
12856 RPC channels with users and other software.")
12857 (license license:gpl3+))))
12858
12859 (define-public emacs-sesman
12860 (package
12861 (name "emacs-sesman")
12862 (version "0.3.3")
12863 (source
12864 (origin
12865 (method git-fetch)
12866 (uri (git-reference
12867 (url "https://github.com/vspinu/sesman.git")
12868 (commit (string-append "v" version))))
12869 (file-name (git-file-name name version))
12870 (sha256
12871 (base32
12872 "0r32f8ma9ddczxrrdz0nadp14j3zmk10q1ch02gb82synkx3xdra"))))
12873 (build-system emacs-build-system)
12874 (arguments
12875 `(#:tests? #t
12876 #:test-command '("make" "test")))
12877 (home-page "https://github.com/vspinu/sesman")
12878 (synopsis "Session manager for Emacs based IDEs")
12879 (description "Sesman provides facilities for session management and
12880 interactive session association with the current contexts (project, directory,
12881 buffers). While sesman can be used to manage arbitrary sessions, it primary
12882 targets the Emacs based IDEs (CIDER, ESS, Geiser, Robe, SLIME etc.)")
12883 (license license:gpl3+)))
12884
12885 (define-public emacs-buttercup
12886 (package
12887 (name "emacs-buttercup")
12888 (version "1.16")
12889 (source
12890 (origin
12891 (method git-fetch)
12892 (uri (git-reference
12893 (url "https://github.com/jorgenschaefer/emacs-buttercup.git")
12894 (commit (string-append "v" version))))
12895 (file-name (git-file-name name version))
12896 (sha256
12897 (base32
12898 "0dckgcyzsav6ld78bcyrrygy1cz1jvqgav6vy8f6klpmk3r8xrl1"))))
12899 (build-system emacs-build-system)
12900 (arguments
12901 `(#:tests? #t
12902 #:test-command '("make" "test")
12903 #:phases
12904 (modify-phases %standard-phases
12905 (add-after 'install 'install-bin
12906 (lambda* (#:key outputs #:allow-other-keys)
12907 (install-file "bin/buttercup"
12908 (string-append (assoc-ref outputs "out") "/bin"))
12909 #t)))))
12910 (home-page "https://github.com/jorgenschaefer/emacs-buttercup")
12911 (synopsis "Behavior driven emacs lisp testing framework")
12912 (description "Buttercup is a behavior-driven development framework for
12913 testing Emacs Lisp code. It allows to group related tests so they can share
12914 common set-up and tear-down code, and allows the programmer to \"spy\" on
12915 functions to ensure they are called with the right arguments during testing.")
12916 (license license:gpl3+)))
12917
12918 (define-public emacs-wordnut
12919 (let ((commit "feac531404041855312c1a046bde7ea18c674915")
12920 (revision "0"))
12921 (package
12922 (name "emacs-wordnut")
12923 (version (git-version "0.1" revision commit))
12924 (home-page "https://github.com/gromnitsky/wordnut")
12925 (source (origin
12926 (method git-fetch)
12927 (uri (git-reference (url home-page) (commit commit)))
12928 (sha256
12929 (base32
12930 "1jl0b6g64a9w0q7bfvwha67vgws5xd15b7mkfyb5gkz3pymqhfxn"))
12931 (patches
12932 (search-patches "emacs-wordnut-require-adaptive-wrap.patch"))
12933 (file-name (git-file-name name version))))
12934 (build-system emacs-build-system)
12935 (propagated-inputs
12936 `(("wordnet" ,wordnet)
12937 ("emacs-adaptive-wrap" ,emacs-adaptive-wrap)))
12938 (synopsis "Major mode for WordNet")
12939 (description "This Emacs package provides an interface for
12940 @code{wordnet}. Features include completion, if the query is not found
12941 too ambiguous and navigation in the result buffer.")
12942 (license license:gpl3+))))
12943
12944 (define-public emacs-frame-purpose
12945 (package
12946 (name "emacs-frame-purpose")
12947 (version "1.0")
12948 (source (origin
12949 (method git-fetch)
12950 (uri (git-reference
12951 (url "https://github.com/alphapapa/frame-purpose.el.git")
12952 (commit version)))
12953 (sha256
12954 (base32
12955 "0jq2aam1yvccw887ighd1wm2xkvk5bv53ffiz3crcl16a255aj4q"))
12956 (file-name (git-file-name name version))))
12957 (build-system emacs-build-system)
12958 (inputs
12959 `(("dash" ,emacs-dash)))
12960 (synopsis "Purpose-specific frames for Emacs")
12961 (description "@code{frame-purpose} makes it easy to open purpose-specific
12962 frames that only show certain buffers, e.g. by buffers’ major mode, their
12963 filename or directory, etc, with custom frame/X-window titles, icons, and
12964 other frame parameters.")
12965 (home-page "https://github.com/alphapapa/frame-purpose.el")
12966 (license license:gpl3+)))
12967
12968 (define-public emacs-arduino-mode
12969 (let ((commit "3e2bad4569ad26e929e6db2cbcff0d6d36812698")) ;no release yet
12970 (package
12971 (name "emacs-arduino-mode")
12972 (version (git-version "0" "0" commit))
12973 (source (origin
12974 (method git-fetch)
12975 (uri (git-reference
12976 (url "https://github.com/bookest/arduino-mode.git")
12977 (commit commit)))
12978 (sha256
12979 (base32
12980 "1yvaqjc9hadbnnay5fprnh890xsp53kidad1zpb4a5z4a5z61n3c"))
12981 (file-name (git-file-name name version))))
12982 (build-system emacs-build-system)
12983 (synopsis "Emacs major mode for editing Arduino sketches")
12984 (description "Emacs major mode for editing Arduino sketches.")
12985 (home-page "https://github.com/bookest/arduino-mode")
12986 (license license:gpl3+))))
12987
12988 (define-public emacs-general
12989 (let ((commit "675050199b5a30d54a24b58a367db32c0bdc47f5"))
12990 (package
12991 (name "emacs-general")
12992 (version (git-version "0" "0" commit))
12993 (home-page "https://github.com/noctuid/general.el")
12994 (source (origin
12995 (method git-fetch)
12996 (uri (git-reference
12997 (url (string-append home-page ".git"))
12998 (commit commit)))
12999 (sha256
13000 (base32
13001 "175yyhzk57yk1sskxh3d2jzhrh2waiibbcfsll167qxr117yji5h"))
13002 (file-name (git-file-name name version))))
13003 (build-system emacs-build-system)
13004 (synopsis "More convenient key definitions in emacs")
13005 (description "@code{general.el} provides a more convenient method for
13006 binding keys in emacs (for both evil and non-evil users). Like
13007 @code{use-package}, which provides a convenient, unified interface for
13008 managing packages, @code{general.el} is intended to provide a convenient,
13009 unified interface for key definitions. While this package does implement some
13010 completely new functionality (such as the ability to make vim-style
13011 keybindings under non-prefix keys with an optional timeout), its primary
13012 purpose is to build on existing functionality to make key definition more
13013 clear and concise. @code{general-define-key} is user-extensible and supports
13014 defining multiple keys in multiple keymaps at once, implicitly wrapping key
13015 strings with (@code{kbd ...}), using named prefix key sequences (like the
13016 leader key in vim), and much more.")
13017 (license license:gpl3+))))
13018
13019 (define-public emacs-tldr
13020 (let ((commit "398b197c8d2238628b07e1b32d0f373876279f4c"))
13021 (package
13022 (name "emacs-tldr")
13023 (version (git-version "0" "0" commit))
13024 (home-page "https://github.com/kuanyui/tldr.el")
13025 (source (origin
13026 (method git-fetch)
13027 (uri (git-reference
13028 (url (string-append home-page ".git"))
13029 (commit commit)))
13030 (sha256
13031 (base32
13032 "0iq7qlis6c6r2qkdpncrhh5vsihkhvy5x4y1y8cjb7zxkh62w33f"))
13033 (file-name (git-file-name name version))))
13034 (build-system emacs-build-system)
13035 (synopsis "Simplified and community-driven man pages for Emacs")
13036 (description "@code{emacs-tldr} allows the user to access tldr pages
13037 from within emacs. The @code{tldr} pages are a community effort to simplify
13038 the man pages with practical examples.")
13039 (license license:wtfpl2))))
13040
13041 (define-public emacs-window-layout
13042 (package
13043 (name "emacs-window-layout")
13044 (version "1.4")
13045 (home-page "https://github.com/kiwanami/emacs-window-layout")
13046 (source (origin
13047 (method git-fetch)
13048 (uri (git-reference
13049 (url home-page)
13050 (commit (string-append "v" version))))
13051 (sha256
13052 (base32
13053 "0wgqi8r844lbx52fn6az8c1n8m681rp6dkfzd54wmdk1ka7zmvv6"))
13054 (file-name (git-file-name name version))))
13055 (build-system emacs-build-system)
13056 (synopsis "Simple window layout management framework for emacs")
13057 (description "A window-layout management library that can split a frame
13058 or a window into some windows according to a layout recipe.")
13059 (license license:gpl3+)))
13060
13061 (define-public emacs-e2wm
13062 (package
13063 (name "emacs-e2wm")
13064 (version "1.4")
13065 (home-page "https://github.com/kiwanami/emacs-window-manager")
13066 (source (origin
13067 (method git-fetch)
13068 (uri (git-reference
13069 (url home-page)
13070 (commit (string-append "v" version))))
13071 (sha256
13072 (base32
13073 "12midsrx07pdrsr1qbl2rpi7xyhxqx08bkz7n7gf8vsmqkpfp56s"))
13074 (file-name (git-file-name name version))))
13075 (build-system emacs-build-system)
13076 (propagated-inputs
13077 `(("emacs-window-layout" ,emacs-window-layout)))
13078 (synopsis "Equilibrium Emacs Window Manager")
13079 (description "E2WM is a window manager for Emacs. It enables to
13080 customize the place of pop-up window, how the windows are split, how the
13081 buffers are located in the windows, keybinds to manipulate windows and
13082 buffers, etc. It also has plug-ins to help your Emacs life.")
13083 (license license:gpl3+)))
13084
13085 (define-public emacs-ctable
13086 (let ((commit "b8830d1ca95abb100a81bc32011bd17d5ecba000"))
13087 (package
13088 (name "emacs-ctable")
13089 (version (git-version "0.1.2" "1" commit))
13090 (home-page "https://github.com/kiwanami/emacs-ctable")
13091 (source (origin
13092 (method git-fetch)
13093 (uri (git-reference
13094 (url home-page)
13095 (commit commit)))
13096 (sha256
13097 (base32
13098 "0pg303pnqscrsbx9579hc815angszsgf9vpd2z2f8p4f4ka6a00h"))
13099 (file-name (git-file-name name version))))
13100 (build-system emacs-build-system)
13101 (synopsis "Table component for Emacs Lisp")
13102 (description "This program is a table component for Emacs Lisp. Other
13103 programs can use this table component for the application UI.")
13104 (license license:gpl3+))))
13105
13106 (define-public emacs-epc
13107 (let ((commit "e1bfa5ca163273859336e3cc89b4b6460f7f8cda"))
13108 (package
13109 (name "emacs-epc")
13110 (version (git-version "0.1.1" "1" commit))
13111 (home-page "https://github.com/kiwanami/emacs-epc")
13112 (source (origin
13113 (method git-fetch)
13114 (uri (git-reference
13115 (url home-page)
13116 (commit commit)))
13117 (sha256
13118 (base32
13119 "15nkrjgi64f829isfd6xrhl4zw8jirr8pkas7nisrbk1av868hx0"))
13120 (file-name (git-file-name name version))))
13121 (build-system emacs-build-system)
13122 (propagated-inputs
13123 `(("emacs-deferred" ,emacs-deferred)
13124 ("emacs-ctable" ,emacs-ctable)))
13125 (synopsis "RPC stack for Emacs Lisp")
13126 (description "This program is an asynchronous RPC stack for Emacs.
13127 Using this RPC stack, Emacs can communicate with the peer process
13128 smoothly. Because the protocol employs S-expression encoding and consists of
13129 asynchronous communications, the RPC response is fairly good.")
13130 (license license:gpl3+))))
13131
13132 (define-public emacs-edbi
13133 (let ((commit "6f50aaf4bde75255221f2292c7a4ad3fa9d918c0"))
13134 (package
13135 (name "emacs-edbi")
13136 (version (git-version "0.1.3" "1" commit))
13137 (home-page "https://github.com/kiwanami/emacs-edbi")
13138 (source (origin
13139 (method git-fetch)
13140 (uri (git-reference
13141 (url home-page)
13142 (commit commit)))
13143 (sha256
13144 (base32
13145 "0x0igyvdcm4863n7zndvcv6wgzwgn7324cbfjja6xd7r0k936zdy"))
13146 (file-name (git-file-name name version))))
13147 (build-system emacs-build-system)
13148 (inputs
13149 `(("perl" ,perl)
13150 ("perl-rpc-epc-service" ,perl-rpc-epc-service)
13151 ("perl-dbi" ,perl-dbi)
13152 ;; TODO: Adding support for perl-dbd-mysql and others would
13153 ;; dramatically increase the closure size. Make several packages?
13154 ("perl-dbd-sqlite" ,perl-dbd-sqlite)))
13155 (propagated-inputs
13156 `(("emacs-e2wm" ,emacs-e2wm)
13157 ("emacs-epc" ,emacs-epc)))
13158 (arguments
13159 `(#:include '("\\.el$" "\\.pl$")
13160 #:phases
13161 (modify-phases %standard-phases
13162 (add-after 'install 'patch-path
13163 (lambda* (#:key inputs outputs #:allow-other-keys)
13164 (let ((perl (assoc-ref inputs "perl"))
13165 (dir (string-append (assoc-ref outputs "out")
13166 "/share/emacs/site-lisp/guix.d/edbi-"
13167 ,version)))
13168 (substitute* (string-append dir "/edbi.el")
13169 (("\"perl\"") (string-append "\"" perl "/bin/perl\"")))
13170 (chmod (string-append dir "/edbi-bridge.pl") #o555)
13171 (wrap-program (string-append dir "/edbi-bridge.pl")
13172 `("PERL5LIB" ":" prefix (,(getenv "PERL5LIB"))))
13173 #t))))))
13174 (synopsis "Database Interface for Emacs Lisp")
13175 (description "This program connects the database server through Perl's
13176 DBI, and provides DB-accessing API and the simple management UI.")
13177 (license license:gpl3+))))
13178
13179 (define-public emacs-edbi-sqlite
13180 (let ((commit "52cb9ca1af7691b592f2cfd2f007847e7a4ccd5f"))
13181 (package
13182 (name "emacs-edbi-sqlite")
13183 (version (git-version "0.1.1" "1" commit))
13184 (home-page "https://github.com/proofit404/edbi-sqlite")
13185 (source (origin
13186 (method git-fetch)
13187 (uri (git-reference
13188 (url home-page)
13189 (commit commit)))
13190 (sha256
13191 (base32
13192 "1vll81386fx90lq5sy4rlxcik6mvw7zx5cc51f0yaca9bkcckp51"))
13193 (file-name (git-file-name name version))))
13194 (build-system emacs-build-system)
13195 (propagated-inputs
13196 `(("emacs-edbi" ,emacs-edbi)))
13197 (synopsis "Open SQLite files in Emacs")
13198 (description "This package is a convenience wrapper for @command{edbi}
13199 to open SQLite databases.")
13200 (license license:gpl3+))))
13201
13202 (define-public emacs-nix-mode
13203 (package
13204 (name "emacs-nix-mode")
13205 (version "1.2.2")
13206 (source
13207 (origin
13208 (method url-fetch)
13209 (uri (string-append "https://github.com/NixOS/nix-mode/archive/v"
13210 version ".tar.gz"))
13211 (file-name (string-append name "-" version ".tar.gz"))
13212 (sha256
13213 (base32
13214 "06aqz0czznsj8835jqnk794sy2p6pa8kxfqwh0nl5d5vxivria6z"))))
13215 (build-system emacs-build-system)
13216 (inputs
13217 `(("emacs-company" ,emacs-company)
13218 ("emacs-mmm-mode" ,emacs-mmm-mode)))
13219 (home-page "https://github.com/NixOS/nix-mode")
13220 (synopsis "Emacs major mode for editing Nix expressions")
13221 (description "@code{nixos-mode} provides an Emacs major mode for editing
13222 Nix expressions. It supports syntax highlighting, indenting and refilling of
13223 comments.")
13224 (license license:lgpl2.1+)))
13225
13226 (define-public emacs-simple-mpc
13227 ;; There have been no releases.
13228 (let ((commit "bee8520e81292b4c7353e45b193f9a13b482f5b2")
13229 (revision "1"))
13230 (package
13231 (name "emacs-simple-mpc")
13232 (version (git-version "0" revision commit))
13233 (source
13234 (origin
13235 (method git-fetch)
13236 (uri (git-reference
13237 (url "https://github.com/jorenvo/simple-mpc.git")
13238 (commit commit)))
13239 (file-name (git-file-name name version))
13240 (sha256
13241 (base32
13242 "1ja06pv007cmzjjgka95jlg31k7d29jrih1yxyblsxv85s9sg21q"))))
13243 (build-system emacs-build-system)
13244 (propagated-inputs `(("emacs-s" ,emacs-s)))
13245 (home-page "https://github.com/jorenvo/simple-mpc")
13246 (synopsis "Simple Emacs frontend to mpc")
13247 (description "This package provides an Emacs major mode which acts as a
13248 front end to mpc, a client for the @dfn{Music Player Daemon} (MPD).")
13249 (license license:gpl3+))))
13250
13251 (define-public emacs-mkmcc-gnuplot-mode
13252 (package
13253 (name "emacs-mkmcc-gnuplot-mode")
13254 (version "1.2.0")
13255 (source
13256 (origin
13257 (method git-fetch)
13258 (uri (git-reference
13259 (url "https://github.com/mkmcc/gnuplot-mode")
13260 (commit "601f6392986f0cba332c87678d31ae0d0a496ce7")))
13261 (file-name (string-append name "-" version "-checkout"))
13262 (sha256
13263 (base32
13264 "14f0yh1rjqc3337j4sbqzfb7pjim2c8a7wk1a73xkrdkmjn82vgb"))))
13265 (build-system emacs-build-system)
13266 (home-page "https://mkmcc.github.io/software/gnuplot-mode.html")
13267 (synopsis "Minimal emacs major mode for editing gnuplot scripts")
13268 (description "@code{emacs-mkmcc-gnuplot-mode} is a minimal emacs major
13269 mode for editing gnuplot scripts. It provides syntax highlighting,
13270 indentation and a command to plot the file.")
13271 (license license:gpl3+)))
13272
13273 (define-public emacs-dtrt-indent
13274 (package
13275 (name "emacs-dtrt-indent")
13276 (version "0.8")
13277 (source (origin
13278 (method git-fetch)
13279 (uri (git-reference
13280 (url "https://github.com/jscheid/dtrt-indent")
13281 (commit version)))
13282 (file-name (git-file-name name version))
13283 (sha256
13284 (base32
13285 "0pgf0pvqd8k4yzhdn2df9lp0y8hmlm2ccrh07jivwlccs95pcz7z"))))
13286 (build-system emacs-build-system)
13287 (home-page "https://github.com/jscheid/dtrt-indent")
13288 (synopsis "Minor mode that guesses the indentation offset")
13289 (description "This package provides a minor mode that guesses the
13290 indentation offset originally used for creating source code files and
13291 transparently adjusts the corresponding settings in Emacs, making it more
13292 convenient to edit foreign files.")
13293 (license license:gpl2+)))
13294
13295 (define-public emacs-repo
13296 (package
13297 (name "emacs-repo")
13298 (version "0.1.3")
13299 (source (origin
13300 (method git-fetch)
13301 (uri (git-reference
13302 (url "https://github.com/canatella/repo-el")
13303 (commit version)))
13304 (file-name (git-file-name name version))
13305 (sha256
13306 (base32
13307 "0rbvcvm7bfr6ncji7cllfxyyr6x7n9fx863byp243phsj3n93adz"))))
13308 (build-system emacs-build-system)
13309 (native-inputs
13310 `(("emacs-el-mock" ,emacs-el-mock)
13311 ("ert-runner" ,emacs-ert-runner)))
13312 (propagated-inputs
13313 `(("emacs-f" ,emacs-f)
13314 ("magit" ,emacs-magit)))
13315 (home-page "https://github.com/canatella/repo-el")
13316 (synopsis "Emacs interface for the Google Repo tool")
13317 (description "This package provides integration of the Google Repo tool
13318 with emacs. It displays the output of the @code{repo status} command in a
13319 buffer and launches Magit from the status buffer for the project at point.")
13320 (license license:gpl3+)))
13321
13322 (define-public emacs-alect-themes
13323 (package
13324 (name "emacs-alect-themes")
13325 (version "0.9")
13326 (source (origin
13327 (method git-fetch)
13328 (uri (git-reference
13329 (url "https://github.com/alezost/alect-themes")
13330 (commit (string-append "v" version))))
13331 (file-name (git-file-name name version))
13332 (sha256
13333 (base32
13334 "0nffxpdm0sa7bynwi0rmlwpc4qmvbda5ankhzz7fmk4ap9fkjxv9"))))
13335 (build-system emacs-build-system)
13336 (home-page "https://github.com/alezost/alect-themes")
13337 (synopsis "Low contrast, light, dark and black color theme for Emacs")
13338 (description "@code{emacs-alect-themes} provides configurable light, dark
13339 and black color themes for Emacs. The themes are intended to be used with
13340 GUI.")
13341 (license license:gpl3+)))
13342
13343 (define-public emacs-google-c-style
13344 (let ((commit "6271f3f473ceb3a7fef99388a3040903b1a145f1")
13345 (revision "0"))
13346 (package
13347 (name "emacs-google-c-style")
13348 (version (git-version "0.1" revision commit))
13349 (source (origin
13350 (method git-fetch)
13351 (uri (git-reference
13352 (url "https://github.com/google/styleguide")
13353 (commit commit)))
13354 (file-name (git-file-name name version))
13355 (sha256
13356 (base32
13357 "1jghyyasdl15c4gaqaxmdn43am63k6bykn5ab83f1ahv9zi1krxk"))))
13358 (build-system emacs-build-system)
13359 (home-page "https://github.com/google/styleguide")
13360 (synopsis "Emacs settings file for Google C/C++ style")
13361 (description "@code{emacs-google-c-style} provides an Emacs settings
13362 file for Google C and C++ style.")
13363 (license license:gpl1+))))
13364
13365 (define-public emacs-redshank
13366 (let ((commit "f98e68f532e622bcd464292ca4a9cf5fbea14ebb")
13367 (revision "1"))
13368 (package
13369 (name "emacs-redshank")
13370 (version (git-version "0.1" revision commit))
13371 (source (origin
13372 (method git-fetch)
13373 (uri (git-reference
13374 (url "http://www.foldr.org/~michaelw/projects/redshank.git")
13375 (commit commit)))
13376 (file-name (git-file-name name version))
13377 (sha256
13378 (base32
13379 "1jdkgvd5xy9hl5q611jwah2n05abjp7qcy9sj4k1z11x0ii62b6p"))))
13380 (build-system emacs-build-system)
13381 (propagated-inputs
13382 `(("emacs-paredit" ,emacs-paredit)))
13383 (home-page "http://www.foldr.org/~michaelw/emacs/redshank/")
13384 (synopsis "Common Lisp Editing Extensions (for Emacs)")
13385 (description "Redshank is a collection of code-wrangling Emacs macros
13386 mostly geared towards Common Lisp, but some are useful for other Lisp
13387 dialects, too. Redshank's code transformations aim to be expression-based (as
13388 opposed to character-based).")
13389 (license license:gpl1+))))
13390
13391 (define-public emacs-disk-usage
13392 (package
13393 (name "emacs-disk-usage")
13394 (version "1.3.0")
13395 (home-page "https://gitlab.com/Ambrevar/emacs-disk-usage")
13396 (source
13397 (origin
13398 (method url-fetch)
13399 (uri (string-append
13400 "https://elpa.gnu.org/packages/disk-usage-"
13401 version
13402 ".el"))
13403 (sha256
13404 (base32
13405 "0ky6c34z7c6hd4yvcrcsidkfk2kvffkg63v02vch2i6hg1n6n028"))))
13406 (build-system emacs-build-system)
13407 (synopsis "Sort and browse disk usage listings with Emacs")
13408 (description "Disk Usage is a file system analyzer: it offers a tabulated
13409 view of file listings sorted by size. Directory sizes are computed
13410 recursively. The results are cached for speed.")
13411 (license license:gpl3+)))
13412
13413 (define-public emacs-orgit
13414 (let ((commit "2456436a7e64d26bcf455b3890a586acaa3e7f93"))
13415 (package
13416 (name "emacs-orgit")
13417 (version (git-version "1.5.1" "2" commit))
13418 (home-page "https://github.com/magit/orgit")
13419 (source (origin
13420 (method git-fetch)
13421 (uri (git-reference
13422 (url home-page)
13423 (commit commit)))
13424 (file-name (git-file-name name version))
13425 (sha256
13426 (base32
13427 "1i52dq2ynddb1irgigr5mdwfbfd3bvm1f29jnzd7nlc0nk186nvh"))))
13428 (build-system emacs-build-system)
13429 (propagated-inputs
13430 `(("emacs-dash" ,emacs-dash)
13431 ("emacs-magit" ,emacs-magit)))
13432 (synopsis "Support for Org links to Magit buffers")
13433 (description "This package defines several Org link types, which can be
13434 used to link to certain Magit buffers. Use the command
13435 @command{org-store-link} while such a buffer is current to store a link.
13436 Later you can insert it into an Org buffer using the command
13437 @code{org-insert-link}.")
13438 (license license:gpl3+))))
13439
13440 (define-public emacs-amx
13441 (package
13442 (name "emacs-amx")
13443 (version "3.2")
13444 (source (origin
13445 (method git-fetch)
13446 (uri (git-reference
13447 (url "https://github.com/DarwinAwardWinner/amx")
13448 (commit (string-append "v" version))))
13449 (file-name (git-file-name name version))
13450 (sha256
13451 (base32
13452 "0bb8y1dmzyqkrb4mg6zndcsxppby3glridv2aap2pv05gv8kx7mj"))))
13453 (build-system emacs-build-system)
13454 (propagated-inputs `(("emacs-s" ,emacs-s)))
13455 (home-page "https://github.com/DarwinAwardWinner/amx")
13456 (synopsis "Alternative interface for M-x")
13457 (description "Amx is an alternative interface for M-x in Emacs. It
13458 provides several enhancements over the ordinary
13459 @code{execute-extended-command}, such as prioritizing your most-used commands
13460 in the completion list and showing keyboard shortcuts, and it supports several
13461 completion systems for selecting commands, such as ido and ivy.")
13462 (license license:gpl3+)))
13463
13464 (define-public emacs-lorem-ipsum
13465 (let ((commit "4b39f6fed455d67f635b3837cf5668bf74d0f6cd"))
13466 (package
13467 (name "emacs-lorem-ipsum")
13468 (version (git-version "0.2" "1" commit))
13469 (home-page "https://github.com/jschaf/emacs-lorem-ipsum/")
13470 (source (origin
13471 (method git-fetch)
13472 (uri (git-reference
13473 (url home-page)
13474 (commit commit)))
13475 (file-name (git-file-name name version))
13476 (sha256
13477 (base32
13478 "0a3b18p3vdjci89prsgdzjnfxsl8p67vjhf8ai4qdng7zvh50lir"))))
13479 (build-system emacs-build-system)
13480 (synopsis "Insert dummy pseudo Latin text in Emacs")
13481 (description "This package provides convenience functions to insert
13482 dummy Latin text into a buffer. This can be useful if you need to produce
13483 paragraphs or pages of text for testing purposes.")
13484 (license license:gpl3+))))
13485
13486 (define-public emacs-lisp-extra-font-lock
13487 (let ((commit "4605eccbe1a7fcbd3cacf5b71249435413b4db4f"))
13488 (package
13489 (name "emacs-lisp-extra-font-lock")
13490 (version (git-version "0.0.6" "1" commit))
13491 (home-page "https://github.com/Lindydancer/lisp-extra-font-lock")
13492 (source (origin
13493 (method git-fetch)
13494 (uri (git-reference
13495 (url home-page)
13496 (commit commit)))
13497 (file-name (git-file-name name version))
13498 (sha256
13499 (base32
13500 "152vcp3mdlv33jf5va4rinl1d0k960gnfhbrqqrafazgx9j3ya8w"))))
13501 (build-system emacs-build-system)
13502 (synopsis "Highlight bound variables and quoted expressions in Emacs")
13503 (description "This package highlight the location where local variables
13504 is created (bound, for example, by let) as well as quoted and backquoted
13505 constant expressions.")
13506 (license license:gpl3+))))
13507
13508 (define-public emacs-docker-tramp
13509 (package
13510 (name "emacs-docker-tramp")
13511 (version "0.1")
13512 (source
13513 (origin
13514 (method git-fetch)
13515 (uri (git-reference
13516 (url "https://github.com/emacs-pe/docker-tramp.el")
13517 (commit (string-append "v" version))))
13518 (file-name (git-file-name name version))
13519 (sha256
13520 (base32
13521 "0lxvzmfg52fhxrhbvp92zwp7cv4i1rlxnkyyzgngj3sjm7y60yvg"))))
13522 (build-system emacs-build-system)
13523 (home-page "https://github.com/emacs-pe/docker-tramp.el")
13524 (synopsis "TRAMP integration for docker containers")
13525 (description
13526 "This package provides a TRAMP method for Docker containers.")
13527 (license license:gpl3+)))
13528
13529 (define-public emacs-docker
13530 (package
13531 (name "emacs-docker")
13532 (version "1.2.0")
13533 (source (origin
13534 (method git-fetch)
13535 (uri (git-reference
13536 (url "https://github.com/Silex/docker.el")
13537 (commit version)))
13538 (file-name (git-file-name name version))
13539 (sha256
13540 (base32
13541 "15kd86kaq1x6giz855q9w6zvnyc742j309j0pmm86rwx398g4rq1"))))
13542 (inputs
13543 `(("emacs-undercover" ,emacs-undercover)))
13544 (propagated-inputs
13545 `(("emacs-dash" ,emacs-dash)
13546 ("emacs-docker-tramp" ,emacs-docker-tramp)
13547 ("emacs-magit-popup" ,emacs-magit-popup)
13548 ("emacs-s" ,emacs-s)
13549 ("emacs-tablist" ,emacs-tablist)
13550 ("emacs-json-mode" ,emacs-json-mode)))
13551 (arguments
13552 `(#:phases
13553 (modify-phases %standard-phases
13554 (delete 'check)))) ;no tests
13555 (build-system emacs-build-system)
13556 (home-page "https://github.com/Silex/docker.el")
13557 (synopsis "Manage docker from Emacs")
13558 (description "This package provides an Emacs interface for Docker.")
13559 (license license:gpl3+)))
13560
13561 (define-public emacs-dockerfile-mode
13562 ;; Latest upstream release is too old.
13563 (let ((commit "7223d92718f78fa3ab15667cdb2ed90cfeb579e7"))
13564 (package
13565 (name "emacs-dockerfile-mode")
13566 (version (git-version "1.2" "1" commit))
13567 (source
13568 (origin
13569 (method git-fetch)
13570 (uri (git-reference
13571 (url "https://github.com/spotify/dockerfile-mode.git")
13572 (commit commit)))
13573 (file-name (git-file-name name version))
13574 (sha256
13575 (base32
13576 "0hmipgl4rk6aih11i8mnspwdijjiwk2y0wns6lzs8bgkvy3c064r"))))
13577 (build-system emacs-build-system)
13578 (propagated-inputs
13579 `(("emacs-s" ,emacs-s)))
13580 (home-page "https://github.com/spotify/dockerfile-mode")
13581 (synopsis "Major mode for editing Dockerfile")
13582 (description
13583 "This package provides a major mode @code{dockerfile-mode} for use with
13584 the standard @code{Dockerfile} file format.")
13585 (license license:asl2.0))))
13586
13587 (define-public emacs-lsp-mode
13588 (package
13589 (name "emacs-lsp-mode")
13590 (version "6.0")
13591 (source (origin
13592 (method git-fetch)
13593 (uri (git-reference
13594 (url "https://github.com/emacs-lsp/lsp-mode.git")
13595 (commit version)))
13596 (file-name (git-file-name name version))
13597 (sha256
13598 (base32
13599 "1v1mq6ixzlgiazj8fmg4xaqhsqn3l89iqy74yndhvzh2rdf0pbkl"))))
13600 (build-system emacs-build-system)
13601 (propagated-inputs
13602 `(("emacs-dash" ,emacs-dash)
13603 ("emacs-f" ,emacs-f)
13604 ("emacs-ht" ,emacs-ht)
13605 ("emacs-spinner" ,emacs-spinner)))
13606 (home-page "https://github.com/emacs-lsp/lsp-mode")
13607 (synopsis "Emacs client and library for the Language Server Protocol")
13608 (description "@code{LSP-mode} is a client and library implmentation for
13609 the Language Server Protocol. This mode aims to provide an IDE-like
13610 experience by providing optional integration with other popular Emacs packages
13611 like @code{company}, @code{flycheck}, and @code{projectile}.")
13612 (license license:gpl3+)))
13613
13614 (define-public emacs-lsp-ui
13615 (package
13616 (name "emacs-lsp-ui")
13617 (version "6.0")
13618 (source (origin
13619 (method git-fetch)
13620 (uri (git-reference
13621 (url "https://github.com/emacs-lsp/lsp-ui.git")
13622 (commit version)))
13623 (file-name (git-file-name name version))
13624 (sha256
13625 (base32
13626 "1r4327fd8cvjxfwkddp5c4bdskyncbs4sx9m3z2w4d773y2jrakc"))))
13627 (build-system emacs-build-system)
13628 (propagated-inputs
13629 `(("emacs-dash" ,emacs-dash)
13630 ("emacs-lsp-mode" ,emacs-lsp-mode)
13631 ("emacs-markdown-mode" ,emacs-markdown-mode)
13632 ("emacs-flycheck" ,emacs-flycheck)))
13633 (home-page "https://github.com/emacs-lsp/lsp-ui")
13634 (synopsis "User interface extensions for @code{lsp-mode}")
13635 (description
13636 "@code{LSP-ui} contains several enhancements and integrations for
13637 @code{lsp-mode}, such as visual flychecking, displaying references in-line,
13638 and code peeking.")
13639 (license license:gpl3+)))
13640
13641 (define-public emacs-helm-notmuch
13642 (let ((commit "9988eb0f787c82c779f2417b5613b9142a5b1c9b"))
13643 (package
13644 (name "emacs-helm-notmuch")
13645 (version (git-version "1.1" "1" commit))
13646 (home-page "https://github.com/xuchunyang/helm-notmuch/")
13647 (source (origin
13648 (method git-fetch)
13649 (uri (git-reference
13650 (url home-page)
13651 (commit commit)))
13652 (file-name (git-file-name name version))
13653 (sha256
13654 (base32
13655 "1jwhmlqlgzxj2zfz0za33vn8m2zrsmkmnq2vx5i1nry70p9h43b4"))))
13656 (build-system emacs-build-system)
13657 (propagated-inputs
13658 `(("emacs-helm" ,emacs-helm)
13659 ("notmuch" ,notmuch)))
13660 (synopsis "Search emails with Emacs Notmuch and Helm")
13661 (description
13662 "This package can be used to search emails in Emacs, searching result
13663 displays as you type thanks to Helm, though @command{notmuch-search} does the
13664 real search.")
13665 (license license:gpl3+))))
13666
13667 (define-public emacs-elmacro
13668 (let ((commit "89b9b0feabafd01fee48111d67131c4c9b5fed9a"))
13669 (package
13670 (name "emacs-elmacro")
13671 (version (git-version "1.1.0" "1" commit))
13672 (home-page "https://github.com/Silex/elmacro")
13673 (source (origin
13674 (method git-fetch)
13675 (uri (git-reference
13676 (url home-page)
13677 (commit commit)))
13678 (file-name (git-file-name name version))
13679 (sha256
13680 (base32
13681 "06wkzafh6vbcjf0m3sl253mgcq32p8cdv7vsfmyx51baa36938ha"))))
13682 (build-system emacs-build-system)
13683 (propagated-inputs
13684 `(("emacs-s" ,emacs-s)
13685 ("emacs-dash" ,emacs-dash)))
13686 (synopsis "Convert keyboard macros to Emacs Lisp")
13687 (description
13688 "This package displays keyboard macros or latest interactive commands
13689 as Emacs Lisp.")
13690 (license license:gpl3+))))
13691
13692 (define-public emacs-transient
13693 ;; 0.1.0 depends on lv.el but not later versions.
13694 (let ((commit "7e45a57ec81185631fe763733f64c99021df2a06"))
13695 (package
13696 (name "emacs-transient")
13697 (version (git-version "0.1.0" "1" commit))
13698 (source (origin
13699 (method git-fetch)
13700 (uri (git-reference
13701 (url "https://github.com/magit/transient")
13702 (commit commit)))
13703 (file-name (git-file-name name version))
13704 (sha256
13705 (base32
13706 "0r6d4c1lga3bk0s7q7y4v4hbpxnd9h40cjxybqvax2z902931fz1"))))
13707 (build-system gnu-build-system)
13708 (native-inputs `(("texinfo" ,texinfo)
13709 ("emacs" ,emacs-minimal)))
13710 (propagated-inputs
13711 `(("dash" ,emacs-dash)))
13712 (arguments
13713 `(#:modules ((guix build gnu-build-system)
13714 (guix build utils)
13715 (srfi srfi-26)
13716 (guix build emacs-utils))
13717 #:imported-modules (,@%gnu-build-system-modules
13718 (guix build emacs-utils))
13719 #:tests? #f ; tests are not included in the release
13720 #:make-flags (list "lisp" "info"
13721 (string-append "LOAD_PATH=-L . -L "
13722 (assoc-ref %build-inputs "dash")
13723 "/share/emacs/site-lisp/guix.d/dash-"
13724 ,(package-version emacs-dash)))
13725 #:phases
13726 (modify-phases %standard-phases
13727 (delete 'configure)
13728 (replace 'install
13729 (lambda* (#:key inputs outputs #:allow-other-keys)
13730 (let* ((out (assoc-ref outputs "out"))
13731 (lisp (string-append out "/share/emacs/site-lisp/guix.d/"
13732 "transient" "-" ,version))
13733 (info (string-append out "/share/info")))
13734 (for-each (cut install-file <> lisp)
13735 (find-files "." "\\.elc*$"))
13736 (install-file "docs/transient.info" (string-append info)))
13737 #t)))))
13738 (home-page "https://magit.vc/manual/transient")
13739 (synopsis "Transient commands in Emacs")
13740 (description
13741 "Taking inspiration from prefix keys and prefix arguments in Emacs,
13742 Transient implements a similar abstraction involving a prefix command, infix
13743 arguments and suffix commands. We could call this abstraction a \"transient
13744 command\", but because it always involves at least two commands (a prefix and
13745 a suffix) we prefer to call it just a \"transient\".")
13746 (license license:gpl3+))))
13747
13748 (define-public emacs-nhexl-mode
13749 (package
13750 (name "emacs-nhexl-mode")
13751 (version "1.2")
13752 (source
13753 (origin
13754 (method url-fetch)
13755 (uri (string-append
13756 "https://elpa.gnu.org/packages/nhexl-mode-"
13757 version ".el"))
13758 (sha256
13759 (base32
13760 "031h22p564qdvr9khs05qcba06pmsk68cr7zyc7c04hfr3y3ziaf"))))
13761 (build-system emacs-build-system)
13762 (home-page "http://elpa.gnu.org/packages/nhexl-mode.html")
13763 (synopsis "Minor mode to edit files via hex-dump format")
13764 (description
13765 "This package implements NHexl mode, a minor mode for editing files
13766 in hex dump format. The mode command is called @command{nhexl-mode}.
13767
13768 This minor mode implements similar functionality to @command{hexl-mode},
13769 but using a different implementation technique, which makes it
13770 usable as a \"plain\" minor mode. It works on any buffer, and does
13771 not mess with the undo log or with the major mode.
13772
13773 It also comes with:
13774
13775 @itemize
13776 @item @command{nhexl-nibble-edit-mode}: a \"nibble editor\" minor mode, where
13777 the cursor pretends to advance by nibbles (4-bit) and the self-insertion keys
13778 (which only work for hex-digits) will only modify the nibble under point.
13779 @item @command{nhexl-overwrite-only-mode}: a minor mode to try and avoid
13780 moving text. In this minor mode, not only self-inserting keys overwrite
13781 existing text, but commands like `yank' and @command{kill-region} as well.
13782 @item It overrides @code{C-u} to use hexadecimal, so you can do @code{C-u a 4
13783 C-f} to advance by #xa4 characters.
13784 @end itemize\n")
13785 (license license:gpl3+)))