gnu: emacs-haskell-mode: Don't use unstable tarball.
[jackhill/guix/guix.git] / gnu / packages / emacs-xyz.scm
CommitLineData
eeb883cb
RW
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2014 Taylan Ulrich Bayirli/Kammer <taylanbayirli@gmail.com>
3;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
4;;; Copyright © 2014, 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
5;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Alex Kost <alezost@gmail.com>
6;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
7;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
8;;; Copyright © 2016, 2017, 2018 Chris Marusich <cmmarusich@gmail.com>
9;;; Copyright © 2015, 2016, 2018 Christopher Lemmer Webber <cwebber@dustycloud.org>
10;;; Copyright © 2016 Adriano Peluso <catonano@gmail.com>
11;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
12;;; Copyright © 2016 David Thompson <davet@gnu.org>
13;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
14;;; Copyright © 2016, 2017 Roel Janssen <roel@gnu.org>
15;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is>
16;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
17;;; Copyright © 2016, 2017, 2018, 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
18;;; Copyright © 2016, 2017, 2018 Alex Vong <alexvong1995@gmail.com>
19;;; Copyright © 2016, 2017, 2018 Arun Isaac <arunisaac@systemreboot.net>
20;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
21;;; Copyright © 2017, 2018 Mathieu Othacehe <m.othacehe@gmail.com>
22;;; Copyright © 2017, 2018, 2019 Clément Lassieur <clement@lassieur.org>
23;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
24;;; Copyright © 2017, 2018 Kyle Meyer <kyle@kyleam.com>
25;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
26;;; Copyright © 2017 George Clemmer <myglc2@gmail.com>
27;;; Copyright © 2017, 2018 Feng Shu <tumashu@163.com>
28;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
29;;; Copyright © 2017, 2018 Oleg Pykhalov <go.wigust@gmail.com>
30;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
31;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
32;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
33;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org>
82328c01 34;;; Copyright © 2017, 2018, 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
eeb883cb
RW
35;;; Copyright © 2018 Sohom Bhattacharjee <soham.bhattacharjee15@gmail.com>
36;;; Copyright © 2018 Mathieu Lirzin <mthl@gnu.org>
9830f1a2 37;;; Copyright © 2018, 2019 Pierre Neidhardt <mail@ambrevar.xyz>
eeb883cb
RW
38;;; Copyright © 2018, 2019 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
39;;; Copyright © 2018 Jack Hill <jackhill@jackhill.us>
40;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
41;;; Copyright © 2018 Alex Branham <alex.branham@gmail.com>
42;;; Copyright © 2018 Thorsten Wilms <t_w_@freenet.de>
43;;; Copyright © 2018 Pierre Langlois <pierre.langlois@gmx.com>
44;;;
45;;; This file is part of GNU Guix.
46;;;
47;;; GNU Guix is free software; you can redistribute it and/or modify it
48;;; under the terms of the GNU General Public License as published by
49;;; the Free Software Foundation; either version 3 of the License, or (at
50;;; your option) any later version.
51;;;
52;;; GNU Guix is distributed in the hope that it will be useful, but
53;;; WITHOUT ANY WARRANTY; without even the implied warranty of
54;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
55;;; GNU General Public License for more details.
56;;;
57;;; You should have received a copy of the GNU General Public License
58;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
59
60(define-module (gnu packages emacs-xyz)
61 #:use-module ((guix licenses) #:prefix license:)
62 #:use-module (guix packages)
63 #:use-module (guix cvs-download)
64 #:use-module (guix download)
65 #:use-module (guix git-download)
66 #:use-module (guix build-system gnu)
67 #:use-module (guix build-system cmake)
68 #:use-module (guix build-system emacs)
69 #:use-module (guix build-system glib-or-gtk)
c010ec65 70 #:use-module (guix build-system perl)
eeb883cb
RW
71 #:use-module (guix build-system trivial)
72 #:use-module (gnu packages)
73 #:use-module (gnu packages admin)
74 #:use-module (gnu packages audio)
75 #:use-module (gnu packages bash)
76 #:use-module (gnu packages cmake)
77 #:use-module (gnu packages code)
78 #:use-module (gnu packages databases)
79 #:use-module (gnu packages emacs)
80 #:use-module (gnu packages guile)
81 #:use-module (gnu packages gtk)
82 #:use-module (gnu packages gnome)
83 #:use-module (gnu packages ncurses)
84 #:use-module (gnu packages python)
85 #:use-module (gnu packages python-xyz)
86 #:use-module (gnu packages tex)
87 #:use-module (gnu packages texinfo)
88 #:use-module (gnu packages tcl)
89 #:use-module (gnu packages tls)
90 #:use-module (gnu packages pkg-config)
91 #:use-module (gnu packages xorg)
92 #:use-module (gnu packages lesstif)
93 #:use-module (gnu packages llvm)
94 #:use-module (gnu packages image)
95 #:use-module (gnu packages linux)
c010ec65 96 #:use-module (gnu packages libevent)
eeb883cb
RW
97 #:use-module (gnu packages version-control)
98 #:use-module (gnu packages imagemagick)
99 #:use-module (gnu packages w3m)
100 #:use-module (gnu packages wget)
101 #:use-module (gnu packages autotools)
102 #:use-module (gnu packages base)
103 #:use-module (gnu packages compression)
104 #:use-module (gnu packages xml)
105 #:use-module (gnu packages glib)
106 #:use-module (gnu packages acl)
107 #:use-module (gnu packages mail)
108 #:use-module (gnu packages package-management)
109 #:use-module (gnu packages perl)
110 #:use-module (gnu packages pdf)
111 #:use-module (gnu packages scheme)
112 #:use-module (gnu packages xiph)
113 #:use-module (gnu packages mp3)
114 #:use-module (gnu packages gettext)
115 #:use-module (gnu packages fribidi)
116 #:use-module (gnu packages gd)
117 #:use-module (gnu packages fontutils)
118 #:use-module (gnu packages password-utils)
119 #:use-module (gnu packages pulseaudio)
120 #:use-module (gnu packages xdisorg)
121 #:use-module (gnu packages shells)
122 #:use-module (gnu packages sqlite)
123 #:use-module (gnu packages gnupg)
124 #:use-module (gnu packages video)
125 #:use-module (gnu packages haskell)
126 #:use-module (gnu packages wordnet)
127 #:use-module (guix utils)
128 #:use-module (srfi srfi-1)
129 #:use-module (ice-9 match))
130
131;;;
132;;; Emacs hacking.
133;;;
134
135(define-public emacs-geiser
136 (package
137 (name "emacs-geiser")
138 (version "0.10")
139 (source (origin
140 (method url-fetch)
141 (uri (string-append "mirror://savannah/geiser/" version
142 "/geiser-" version ".tar.gz"))
143 (sha256
144 (base32
145 "0pj3l7p8d60c9b4vfprnv6g5l61d74pls4b5dvd84cn4ky9mzwjv"))))
146 (build-system gnu-build-system)
147 (arguments
148 '(#:phases
149 (modify-phases %standard-phases
150 (add-after 'install 'post-install
151 (lambda* (#:key outputs #:allow-other-keys)
152 (symlink "geiser-install.el"
153 (string-append (assoc-ref outputs "out")
154 "/share/emacs/site-lisp/"
155 "geiser-autoloads.el"))
156 #t)))))
157 (inputs `(("guile" ,guile-2.2)))
158 (native-inputs `(("emacs" ,emacs-minimal)))
159 (home-page "https://nongnu.org/geiser/")
160 (synopsis "Collection of Emacs modes for Guile and Racket hacking")
161 (description
162 "Geiser is a collection of Emacs major and minor modes that conspire with
163one or more Scheme implementations to keep the Lisp Machine Spirit alive. The
164continuously running Scheme interpreter takes the center of the stage in
165Geiser. A bundle of Elisp shims orchestrates the dialog between the Scheme
166implementation, Emacs and, ultimately, the schemer, giving them access to live
167metadata.")
168 (license license:bsd-3)))
169
170(define-public geiser
171 (deprecated-package "geiser" emacs-geiser))
172
173(define-public emacs-paredit
174 (package
175 (name "emacs-paredit")
176 (version "24")
177 (source (origin
178 (method url-fetch)
179 (uri (string-append "http://mumble.net/~campbell/emacs/paredit-"
180 version ".el"))
181 (sha256
182 (base32
183 "0pp3n8q6kc70blqsaw0zlzp6bc327dpgdrjr0cnh7hqg1lras7ka"))))
184 (build-system emacs-build-system)
185 (home-page "http://mumble.net/~campbell/emacs/paredit/")
186 (synopsis "Emacs minor mode for editing parentheses")
187 (description
188 "ParEdit (paredit.el) is a minor mode for performing structured editing
189of S-expression data. The typical example of this would be Lisp or Scheme
190source code.
191
192ParEdit helps **keep parentheses balanced** and adds many keys for moving
193S-expressions and moving around in S-expressions. Its behavior can be jarring
194for those who may want transient periods of unbalanced parentheses, such as
195when typing parentheses directly or commenting out code line by line.")
196 (license license:gpl3+)))
197
198(define-public paredit
199 (deprecated-package "paredit" emacs-paredit))
200
201(define-public git-modes
202 (package
203 (name "emacs-git-modes")
204 (version "1.2.8")
205 (source (origin
8b9fab8f
EF
206 (method git-fetch)
207 (uri (git-reference
208 (url "https://github.com/magit/git-modes")
209 (commit version)))
210 (file-name (git-file-name name version))
eeb883cb
RW
211 (sha256
212 (base32
8b9fab8f 213 "08hy7rbfazs6grkpk54i82bz0i0c74zcjk96cip8970h6jn3mj72"))))
eeb883cb
RW
214 (build-system emacs-build-system)
215 (home-page "https://github.com/magit/git-modes")
216 (synopsis "Emacs major modes for Git configuration files")
217 (description
218 "This package provides Emacs major modes for editing various Git
219configuration files, such as .gitattributes, .gitignore, and .git/config.")
220 (license license:gpl3+)))
221
222(define-public git-modes/old-name
223 (deprecated-package "git-modes" git-modes))
224
225(define-public emacs-with-editor
226 (package
227 (name "emacs-with-editor")
228 (version "2.8.0")
229 (source (origin
230 (method git-fetch)
231 (uri (git-reference
232 (url "https://github.com/magit/with-editor.git")
233 (commit (string-append "v" version))))
234 (file-name (git-file-name name version))
235 (sha256
236 (base32
237 "1bbzvxnjpxqyvi808isld025b3pcidn4r2xf8hnk9bmzcfdvdr6q"))))
238 (build-system emacs-build-system)
239 (propagated-inputs
240 `(("emacs-dash" ,emacs-dash)))
241 (home-page "https://github.com/magit/with-editor")
242 (synopsis "Emacs library for using Emacsclient as EDITOR")
243 (description
244 "This package provides an Emacs library to use the Emacsclient as
245@code{$EDITOR} of child processes, making sure they know how to call home.
246For remote processes a substitute is provided, which communicates with Emacs
247on stdout instead of using a socket as the Emacsclient does.")
248 (license license:gpl3+)))
249
250(define-public emacs-magit
251 (package
252 (name "emacs-magit")
253 (version "2.13.0")
254 (source (origin
255 (method url-fetch)
256 (uri (string-append
257 "https://github.com/magit/magit/releases/download/"
258 version "/magit-" version ".tar.gz"))
259 (sha256
260 (base32
261 "1ygaah3dd3nxpyd17297xgvdcgr7pgzzwlmpnmchki0kiwgg3sbc"))))
262 (build-system gnu-build-system)
263 (native-inputs `(("texinfo" ,texinfo)
264 ("emacs" ,emacs-minimal)))
265 (inputs
266 `(("git" ,git)
267 ("perl" ,perl)))
268 (propagated-inputs
269 `(("dash" ,emacs-dash)
270 ("ghub" ,emacs-ghub)
271 ("magit-popup" ,emacs-magit-popup)
272 ("with-editor" ,emacs-with-editor)))
273 (arguments
274 `(#:test-target "test"
275 #:tests? #f ; tests are not included in the release
276
277 #:make-flags
278 (list (string-append "PREFIX=" %output)
279 ;; Don't put .el files in a sub-directory.
280 (string-append "lispdir=" %output "/share/emacs/site-lisp")
281 (string-append "DASH_DIR="
282 (assoc-ref %build-inputs "dash")
283 "/share/emacs/site-lisp/guix.d/dash-"
284 ,(package-version emacs-dash))
285 (string-append "GHUB_DIR="
286 (assoc-ref %build-inputs "ghub")
287 "/share/emacs/site-lisp/guix.d/ghub-"
288 ,(package-version emacs-ghub))
289 (string-append "MAGIT_POPUP_DIR="
290 (assoc-ref %build-inputs "magit-popup")
291 "/share/emacs/site-lisp/guix.d/magit-popup-"
292 ,(package-version emacs-magit-popup))
293 (string-append "WITH_EDITOR_DIR="
294 (assoc-ref %build-inputs "with-editor")
295 "/share/emacs/site-lisp/guix.d/with-editor-"
296 ,(package-version emacs-with-editor)))
297
298 #:phases
299 (modify-phases %standard-phases
300 (delete 'configure)
301 (add-before
302 'build 'patch-exec-paths
303 (lambda* (#:key inputs #:allow-other-keys)
304 (let ((perl (assoc-ref inputs "perl")))
305 (substitute* "lisp/magit-sequence.el"
306 (("perl") (string-append perl "/bin/perl")))
307 #t))))))
308 (home-page "https://magit.vc/")
309 (synopsis "Emacs interface for the Git version control system")
310 (description
311 "With Magit, you can inspect and modify your Git repositories with Emacs.
312You can review and commit the changes you have made to the tracked files, for
313example, and you can browse the history of past changes. There is support for
314cherry picking, reverting, merging, rebasing, and other common Git
315operations.")
316 (license license:gpl3+)))
317
318(define-public magit
319 (deprecated-package "magit" emacs-magit))
320
321(define-public emacs-magit-svn
322 (package
323 (name "emacs-magit-svn")
427530b9 324 (version "2.2.1")
eeb883cb 325 (source (origin
daa82371
EF
326 (method git-fetch)
327 (uri (git-reference
328 (url "https://github.com/magit/magit-svn")
329 (commit version)))
330 (file-name (git-file-name name version))
eeb883cb
RW
331 (sha256
332 (base32
427530b9 333 "01kcsc53q3mbhgjssjpby7ypnhqsr48rkl1xz3ahaypmlp929gl9"))))
eeb883cb 334 (build-system trivial-build-system)
daa82371 335 (native-inputs `(("emacs" ,emacs-minimal)))
eeb883cb 336 (propagated-inputs `(("dash" ,emacs-dash)
ff1d5478 337 ("ghub" ,emacs-ghub)
eeb883cb 338 ("with-editor" ,emacs-with-editor)
ff1d5478
EF
339 ("magit" ,emacs-magit)
340 ("magit-popup" ,emacs-magit-popup)))
eeb883cb
RW
341 (arguments
342 `(#:modules ((guix build utils)
343 (guix build emacs-utils))
344
345 #:builder
346 (begin
347 (use-modules (guix build utils)
348 (guix build emacs-utils))
349
daa82371
EF
350 (let ((emacs (string-append (assoc-ref %build-inputs "emacs")
351 "/bin/emacs"))
352 (magit (string-append (assoc-ref %build-inputs "magit")
353 "/share/emacs/site-lisp"))
ff1d5478
EF
354 (magit-popup (string-append (assoc-ref %build-inputs "magit-popup")
355 "/share/emacs/site-lisp/guix.d/magit-popup-"
356 ,(package-version emacs-magit-popup)))
357 (ghub (string-append (assoc-ref %build-inputs "ghub")
358 "/share/emacs/site-lisp/guix.d/ghub-"
359 ,(package-version emacs-ghub)))
daa82371
EF
360 (dash (string-append (assoc-ref %build-inputs "dash")
361 "/share/emacs/site-lisp/guix.d/dash-"
362 ,(package-version emacs-dash)))
363 (with-editor (string-append (assoc-ref %build-inputs "with-editor")
364 "/share/emacs/site-lisp/guix.d/with-editor-"
365 ,(package-version emacs-with-editor)))
366 (source (assoc-ref %build-inputs "source"))
367 (lisp-dir (string-append %output "/share/emacs/site-lisp")))
eeb883cb 368
daa82371 369 (install-file (string-append source "/magit-svn.el")
eeb883cb
RW
370 lisp-dir)
371
372 (with-directory-excursion lisp-dir
373 (parameterize ((%emacs emacs))
374 (emacs-generate-autoloads ,name lisp-dir)
375 (setenv "EMACSLOADPATH"
ff1d5478
EF
376 (string-append ":" magit ":" magit-popup ":" ghub ":"
377 dash ":" with-editor))
eeb883cb
RW
378 (emacs-batch-eval '(byte-compile-file "magit-svn.el"))))
379 #t))))
380 (home-page "https://github.com/magit/magit-svn")
381 (synopsis "Git-SVN extension to Magit")
382 (description
383 "This package is an extension to Magit, the Git Emacs mode, providing
384support for Git-SVN.")
385 (license license:gpl3+)))
386
387(define-public magit-svn
388 (deprecated-package "magit-svn" emacs-magit-svn))
389
390(define-public emacs-magit-popup
391 (package
392 (name "emacs-magit-popup")
393 (version "2.12.5")
394 (source (origin
395 (method git-fetch)
396 (uri (git-reference
397 (url "https://github.com/magit/magit-popup.git")
398 (commit (string-append "v" version))))
399 (file-name (git-file-name name version))
400 (sha256
401 (base32
402 "13riknyqr6vxqll80sfhvz165flvdz367rbd0pr5slb01bnfsi2i"))))
403 (build-system emacs-build-system)
404 (arguments
405 `(#:phases
406 (modify-phases %standard-phases
407 (add-before 'install 'make-info
408 (lambda _
409 (invoke "make" "info"))))))
410 (native-inputs
411 `(("texinfo" ,texinfo)))
412 (propagated-inputs
413 `(("emacs-dash" ,emacs-dash)))
414 (home-page "https://github.com/magit/magit-popup")
415 (synopsis "Define prefix-infix-suffix command combos")
416 (description
417 "This library implements a generic interface for toggling switches and
418setting options and then invoking an Emacs command which does something with
419these arguments. The prototypical use is for the command to call an external
420process, passing on the arguments as command line arguments.")
421 (license license:gpl3+)))
422
423(define-public emacs-treepy
424 (package
425 (name "emacs-treepy")
426 (version "0.1.1")
427 (source (origin
428 (method git-fetch)
429 (uri (git-reference
430 (url "https://github.com/volrath/treepy.el.git")
431 (commit version)))
432 (file-name (git-file-name name version))
433 (sha256
434 (base32
435 "04zwm6gx9pxfvgfkizx6pvb1ql8pqxjyzqp8flz0432x0gq5nlxk"))))
436 (build-system emacs-build-system)
437 (home-page
438 "https://github.com/volrath/treepy.el")
439 (synopsis "Tree traversal tools")
440 (description
441 "Generic tools for recursive and iterative tree traversal based on
442clojure.walk and clojure.zip respectively.")
443 (license license:gpl3+)))
444
445(define-public emacs-graphql
446 (package
447 (name "emacs-graphql")
448 (version "0.1.1")
449 (source (origin
450 (modules '((guix build utils)))
451 ;; Remove examples file with references to external packages as
452 ;; they do not exist at compilation time.
453 (snippet
454 '(begin (delete-file "examples.el")
455 #t))
456 (method git-fetch)
457 (uri (git-reference
458 (url "https://github.com/vermiculus/graphql.el.git")
459 (commit version)))
460 (file-name (git-file-name name version))
461 (sha256
462 (base32
463 "0sp0skc1rnhi39szfbq1i99pdgd3bhn4c15cff05iqhjy2d4hniw"))))
464 (build-system emacs-build-system)
465 (home-page
466 "https://github.com/vermiculus/graphql.el")
467 (synopsis "GraphQL utilities")
468 (description
469 "GraphQL.el provides a generally-applicable domain-specific language for
470creating and executing GraphQL queries against your favorite web services.
471GraphQL is a data query language and runtime designed and used to request and
472deliver data to mobile and web apps.")
473 (license license:gpl3+)))
474
475(define-public emacs-ghub
476 (package
477 (name "emacs-ghub")
478 (version "2.0.1")
479 (source (origin
0c662875
EF
480 (method git-fetch)
481 (uri (git-reference
482 (url "https://github.com/magit/ghub")
483 (commit (string-append "v" version))))
484 (file-name (git-file-name name version))
eeb883cb
RW
485 (sha256
486 (base32
0c662875 487 "1b5jrpj3z989r3mf4jfch8rnaaa5hyb2395xz3v37f0vsphd7s0y"))))
eeb883cb
RW
488 (build-system emacs-build-system)
489 (arguments
490 `(#:phases
491 (modify-phases %standard-phases
492 (add-before 'install 'make-info
493 (lambda _
494 (invoke "make" "info"))))))
495 (native-inputs
496 `(("texinfo" ,texinfo)))
497 (home-page "https://github.com/magit/ghub")
498 (synopsis "Emacs client library for Github API and Gitlab API")
499 (description
500 "This package provides 2 files: @file{ghub.el} and @file{glab.el},
501which are the libraries that provide basic support for using the Github and
502Gitlab APIs from Emacs packages. It abstracts access to API resources using
503only a handful of functions that are not resource-specific.")
504 (license license:gpl3+)))
505
506(define-public emacs-scribble-mode
507 (let ((commit "34e9e5edb921813b6483e0fefa848efb6ee4b314")
508 (version "0.0")
509 (revision 0))
510 (package
511 (name "emacs-scribble-mode")
512 (version (if (zero? revision)
513 version
514 (string-append version "-"
515 (number->string revision)
516 "." (string-take commit 7))))
517 (source (origin
518 (method git-fetch)
519 (uri (git-reference
520 (url "https://github.com/emacs-pe/scribble-mode.git")
521 (commit commit)))
522 (sha256
523 (base32
524 "0598byqpz2q6yi2q4dwd77jj9z3n99z34d3an51s9m2za0nh1qvp"))))
525 (build-system emacs-build-system)
526 (home-page "https://github.com/emacs-pe/scribble-mode")
527 (synopsis "Emacs mode for editing the Scribble documentation syntax.")
528 (description
529 "This package provides basic syntax highlighting and editing support
530for editing Racket's Scribble documentation syntax in Emacs.")
531 (license license:gpl3+))))
532
533(define-public emacs-haskell-mode
534 (package
535 (name "emacs-haskell-mode")
536 (version "16.1")
537 (source (origin
f5350a07
EF
538 (method git-fetch)
539 (uri (git-reference
540 (url "https://github.com/haskell/haskell-mode")
541 (commit (string-append "v" version))))
542 (file-name (git-file-name name version))
eeb883cb 543 (sha256
f5350a07 544 (base32 "1qk36y0v9fzass6785il65c6wb5cfj4ihhwkvgnzmbafpa8p4dvq"))
eeb883cb
RW
545 (patches
546 (search-patches ; backport test failure fixes
547 "haskell-mode-unused-variables.patch"
548 "haskell-mode-make-check.patch"))))
549 (inputs
550 `(("emacs-el-search" ,emacs-el-search) ; for tests
551 ("emacs-stream" ,emacs-stream))) ; for tests
552 (propagated-inputs
553 `(("emacs-dash" ,emacs-dash)))
554 (native-inputs
555 `(("emacs" ,emacs-minimal)
556 ("texinfo" ,texinfo)))
557 (build-system gnu-build-system)
558 (arguments
559 `(#:make-flags (list (string-append "EMACS="
560 (assoc-ref %build-inputs "emacs")
561 "/bin/emacs"))
562 #:modules ((ice-9 match)
563 (srfi srfi-26)
564 ,@%gnu-build-system-modules)
565 #:phases
566 (modify-phases %standard-phases
567 (delete 'configure)
568 (add-before
569 'build 'pre-build
570 (lambda* (#:key inputs #:allow-other-keys)
571 (define (el-dir store-dir)
572 (match (find-files store-dir "\\.el$")
573 ((f1 f2 ...) (dirname f1))
574 (_ "")))
575
576 (let ((sh (string-append (assoc-ref inputs "bash") "/bin/sh")))
577 (define emacs-prefix? (cut string-prefix? "emacs-" <>))
578
579 (setenv "SHELL" "sh")
580 (setenv "EMACSLOADPATH"
581 (string-concatenate
582 (map (match-lambda
583 (((? emacs-prefix? name) . dir)
584 (string-append (el-dir dir) ":"))
585 (_ ""))
586 inputs)))
587 (substitute* (find-files "." "\\.el") (("/bin/sh") sh))
588 ;; embed filename to fix test failure
589 (let ((file "tests/haskell-cabal-tests.el"))
590 (substitute* file
591 (("\\(buffer-file-name\\)")
592 (format #f "(or (buffer-file-name) ~s)" file))))
593 #t)))
594 (replace
595 'install
596 (lambda* (#:key outputs #:allow-other-keys)
597 (let* ((out (assoc-ref outputs "out"))
598 (el-dir (string-append out "/share/emacs/site-lisp"))
599 (doc (string-append
600 out "/share/doc/haskell-mode-" ,version))
601 (info (string-append out "/share/info")))
602 (define (copy-to-dir dir files)
603 (for-each (lambda (f)
604 (install-file f dir))
605 files))
606
607 (with-directory-excursion "doc"
608 (invoke "makeinfo" "haskell-mode.texi")
609 (install-file "haskell-mode.info" info))
610 (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md"))
611 (copy-to-dir el-dir (find-files "." "\\.elc?"))
612 ;; These are part of other packages.
613 (with-directory-excursion el-dir
614 (for-each delete-file '("dash.el" "ert.el")))
615 #t))))))
616 (home-page "https://github.com/haskell/haskell-mode")
617 (synopsis "Haskell mode for Emacs")
618 (description
619 "This is an Emacs mode for editing, debugging and developing Haskell
620programs.")
621 (license license:gpl3+)))
622
623(define-public haskell-mode
624 (deprecated-package "haskell-mode" emacs-haskell-mode))
625
626(define-public emacs-flycheck
627 (package
628 (name "emacs-flycheck")
629 (version "31")
630 (source (origin
631 (method url-fetch)
632 (uri (string-append
633 "https://github.com/flycheck/flycheck/releases/download/"
634 version "/flycheck-" version ".tar"))
635 (sha256
636 (base32
637 "01rnwan16m7cyyrfca3c5c60mbj2r3knkpzbhji2fczsf0wns240"))
638 (modules '((guix build utils)))
639 (snippet `(begin
640 ;; Change 'flycheck-version' so that it does not
641 ;; attempt to get its version from pkg-info.el.
642 (substitute* "flycheck.el"
643 (("\\(pkg-info-version-info 'flycheck\\)")
644 (string-append "\"" ,version "\"")))
645 #t))))
646 (build-system emacs-build-system)
647 (propagated-inputs
648 `(("emacs-dash" ,emacs-dash)))
649 (home-page "https://www.flycheck.org")
650 (synopsis "On-the-fly syntax checking")
651 (description
652 "This package provides on-the-fly syntax checking for GNU Emacs. It is a
653replacement for the older Flymake extension which is part of GNU Emacs, with
654many improvements and additional features.
655
656Flycheck provides fully-automatic, fail-safe, on-the-fly background syntax
657checking for over 30 programming and markup languages with more than 70
658different tools. It highlights errors and warnings inline in the buffer, and
659provides an optional IDE-like error list.")
660 (license license:gpl3+))) ;+GFDLv1.3+ for the manual
661
662(define-public emacs-a
663 (package
664 (name "emacs-a")
665 (version "0.1.1")
666 (source (origin
667 (method git-fetch)
668 (uri (git-reference
669 (url "https://github.com/plexus/a.el.git")
670 (commit (string-append "v" version))))
671 (file-name (git-file-name name version))
672 (sha256
673 (base32
674 "00v9w6qg3bkwdhypq0ssf0phdh0f4bcq59c20lngd6vhk0204dqi"))))
675 (build-system emacs-build-system)
676 (home-page "https://github.com/plexus/a.el/")
677 (synopsis
678 "Emacs library for dealing with association lists and hash tables")
679 (description "@code{emacs-a} provides Emacs Lisp functions for dealing
680with associative structures in a uniform and functional way. These functions
681can take association lists, hash tables, and in some cases vectors (where the
682index is considered the key).")
683 (license license:gpl3+)))
684
60ceff7e
NG
685(define-public emacs-anaphora
686 (package
687 (name "emacs-anaphora")
688 (version "1.0.4")
689 (source
690 (origin
691 (method git-fetch)
692 (uri (git-reference
693 (url "https://github.com/rolandwalker/anaphora.git")
694 (commit (string-append "v" version))))
695 (file-name (git-file-name name version))
696 (sha256
697 (base32
698 "11fgiy029sqz7nvdm7dcal95lacryz9zql0x5h05z48nrrcl4bib"))))
699 (build-system emacs-build-system)
700 (home-page "https://github.com/rolandwalker/anaphora/")
701 (synopsis "Anaphoric expressions for Emacs Lisp")
702 (description "@code{emacs-anaphora} implements anaphoric expressions for
703Emacs Lisp.
704
705Anaphoric expressions implicitly create one or more temporary variables which
706can be referred to during the expression. This technique can improve clarity
707in certain cases. It also enables recursion for anonymous functions.")
708 (license license:public-domain)))
709
eeb883cb
RW
710\f
711;;;
712;;; Web browsing.
713;;;
714
715(define-public emacs-w3m
716 ;; Emacs-w3m follows a "rolling release" model.
717 (package
718 (name "emacs-w3m")
719 (version "2018-11-11")
720 (source (origin
721 (method cvs-fetch)
722 (uri (cvs-reference
723 (root-directory
724 ":pserver:anonymous@cvs.namazu.org:/storage/cvsroot")
725 (module "emacs-w3m")
726 (revision version)))
727 (file-name (string-append name "-" version "-checkout"))
728 (sha256
729 (base32
730 "0nvahdbjs12zg7zsk4gql02mvnv56cf1rwj2f5p42lwp3xvswiwp"))))
731 (build-system gnu-build-system)
732 (native-inputs `(("autoconf" ,autoconf)
733 ("texinfo" ,texinfo)
734 ("emacs" ,emacs-minimal)))
735 (inputs `(("w3m" ,w3m)
736 ("imagemagick" ,imagemagick)))
737 (arguments
738 `(#:modules ((guix build gnu-build-system)
739 (guix build utils)
740 (guix build emacs-utils))
741 #:imported-modules (,@%gnu-build-system-modules
742 (guix build emacs-utils))
743 #:configure-flags
744 (let ((out (assoc-ref %outputs "out")))
745 (list (string-append "--with-lispdir="
746 out "/share/emacs/site-lisp")
747 (string-append "--with-icondir="
748 out "/share/images/emacs-w3m")
749 ;; Leave .el files uncompressed, otherwise GC can't
750 ;; identify run-time dependencies. See
751 ;; <http://lists.gnu.org/archive/html/guix-devel/2015-12/msg00208.html>
752 "--without-compress-install"))
753 #:tests? #f ; no check target
754 #:phases
755 (modify-phases %standard-phases
756 (add-after 'unpack 'autoconf
757 (lambda _
758 (invoke "autoconf")))
759 (add-before 'configure 'support-emacs!
760 (lambda _
761 ;; For some reason 'AC_PATH_EMACS' thinks that 'Emacs 26' is
762 ;; unsupported.
763 (substitute* "configure"
764 (("EMACS_FLAVOR=unsupported")
765 "EMACS_FLAVOR=emacs"))
766 #t))
767 (add-before 'build 'patch-exec-paths
768 (lambda* (#:key inputs outputs #:allow-other-keys)
769 (let ((out (assoc-ref outputs "out"))
770 (w3m (assoc-ref inputs "w3m"))
771 (imagemagick (assoc-ref inputs "imagemagick"))
772 (coreutils (assoc-ref inputs "coreutils")))
773 (make-file-writable "w3m.el")
774 (emacs-substitute-variables "w3m.el"
775 ("w3m-command" (string-append w3m "/bin/w3m"))
776 ("w3m-touch-command"
777 (string-append coreutils "/bin/touch"))
778 ("w3m-icon-directory"
779 (string-append out "/share/images/emacs-w3m")))
780 (make-file-writable "w3m-image.el")
781 (emacs-substitute-variables "w3m-image.el"
782 ("w3m-imagick-convert-program"
783 (string-append imagemagick "/bin/convert"))
784 ("w3m-imagick-identify-program"
785 (string-append imagemagick "/bin/identify")))
786 #t)))
787 (replace 'install
788 (lambda* (#:key outputs #:allow-other-keys)
789 (invoke "make" "install" "install-icons")
790 (with-directory-excursion
791 (string-append (assoc-ref outputs "out")
792 "/share/emacs/site-lisp")
793 (for-each delete-file '("ChangeLog" "ChangeLog.1"))
794 (symlink "w3m-load.el" "w3m-autoloads.el")
795 #t))))))
796 (home-page "http://emacs-w3m.namazu.org/")
797 (synopsis "Simple Web browser for Emacs based on w3m")
798 (description
799 "Emacs-w3m is an emacs interface for the w3m web browser.")
800 (license license:gpl2+)))
801
802(define-public emacs-wget
803 (package
804 (name "emacs-wget")
805 (version "0.5.0")
806 (source (origin
807 (method url-fetch)
808 (uri (string-append "mirror://debian/pool/main/w/wget-el/wget-el_"
809 version ".orig.tar.gz"))
810 (sha256
811 (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff"))))
812 (build-system gnu-build-system)
813 (inputs `(("wget" ,wget)))
814 (native-inputs `(("emacs" ,emacs-minimal)))
815 (arguments
816 `(#:modules ((guix build gnu-build-system)
817 (guix build utils)
818 (guix build emacs-utils))
819 #:imported-modules (,@%gnu-build-system-modules
820 (guix build emacs-utils))
821 #:tests? #f ; no check target
822 #:phases
823 (modify-phases %standard-phases
824 (replace 'configure
825 (lambda* (#:key outputs #:allow-other-keys)
826 (substitute* "Makefile"
827 (("/usr/local") (assoc-ref outputs "out"))
828 (("/site-lisp/emacs-wget") "/site-lisp"))
829 #t))
830 (add-before 'build 'patch-exec-paths
831 (lambda* (#:key inputs outputs #:allow-other-keys)
832 (let ((wget (assoc-ref inputs "wget")))
833 (emacs-substitute-variables "wget.el"
834 ("wget-command" (string-append wget "/bin/wget"))))
835 #t))
836 (add-after 'install 'post-install
837 (lambda* (#:key outputs #:allow-other-keys)
838 (emacs-generate-autoloads
839 "wget" (string-append (assoc-ref outputs "out")
840 "/share/emacs/site-lisp/"))
841 #t)))))
842 (home-page "http://www.emacswiki.org/emacs/EmacsWget")
843 (synopsis "Simple file downloader for Emacs based on wget")
844 (description
845 "Emacs-wget is an emacs interface for the wget file downloader.")
846 (license license:gpl2+)))
847
848\f
849;;;
850;;; Multimedia.
851;;;
852
853(define-public emacs-emms
854 (package
855 (name "emacs-emms")
856 (version "5.1")
857 (source (origin
858 (method url-fetch)
859 (uri (string-append "mirror://gnu/emms/emms-"
860 version ".tar.gz"))
861 (sha256
862 (base32
863 "149ddczyx6x10zn4mn8g0rll1rwf4yciv8x6j0qdnlbwszblx2x6"))
864 (modules '((guix build utils)))
865 (snippet
866 '(begin
867 (substitute* "Makefile"
868 (("/usr/bin/install-info")
869 ;; No need to use 'install-info' since it would create a
870 ;; useless 'dir' file.
871 "true")
872 (("^INFODIR=.*")
873 ;; Install Info files to $out/share/info, not $out/info.
874 "INFODIR := $(PREFIX)/share/info\n")
875 (("/site-lisp/emms")
876 ;; Install directly in share/emacs/site-lisp, not in a
877 ;; sub-directory.
878 "/site-lisp")
879 (("^all: (.*)\n" _ rest)
880 ;; Build 'emms-print-metadata'.
881 (string-append "all: " rest " emms-print-metadata\n")))
882 #t))))
883 (build-system gnu-build-system)
884 (arguments
885 `(#:modules ((guix build gnu-build-system)
886 (guix build utils)
887 (guix build emacs-utils)
888 (ice-9 ftw))
889 #:imported-modules (,@%gnu-build-system-modules
890 (guix build emacs-utils))
891
892 #:phases
893 (modify-phases %standard-phases
894 (replace 'configure
895 (lambda* (#:key inputs outputs #:allow-other-keys)
896 (let ((out (assoc-ref outputs "out"))
897 (flac (assoc-ref inputs "flac"))
898 (vorbis (assoc-ref inputs "vorbis-tools"))
899 (alsa (assoc-ref inputs "alsa-utils"))
900 (mpg321 (assoc-ref inputs "mpg321"))
901 (mp3info (assoc-ref inputs "mp3info"))
902 (opus (assoc-ref inputs "opus-tools")))
903 ;; Specify the installation directory.
904 (substitute* "Makefile"
905 (("PREFIX=.*$")
906 (string-append "PREFIX := " out "\n")))
907
908 (setenv "SHELL" (which "sh"))
909 (setenv "CC" "gcc")
910
911 ;; Specify the absolute file names of the various
912 ;; programs so that everything works out-of-the-box.
913 (with-directory-excursion "lisp"
914 (emacs-substitute-variables
915 "emms-player-mpg321-remote.el"
916 ("emms-player-mpg321-remote-command"
917 (string-append mpg321 "/bin/mpg321")))
918 (substitute* "emms-player-simple.el"
919 (("\"ogg123\"")
920 (string-append "\"" vorbis "/bin/ogg123\"")))
921 (substitute* "emms-player-simple.el"
922 (("\"mpg321\"")
923 (string-append "\"" mpg321 "/bin/mpg321\"")))
924 (emacs-substitute-variables "emms-info-ogginfo.el"
925 ("emms-info-ogginfo-program-name"
926 (string-append vorbis "/bin/ogginfo")))
927 (emacs-substitute-variables "emms-info-opusinfo.el"
928 ("emms-info-opusinfo-program-name"
929 (string-append opus "/bin/opusinfo")))
930 (emacs-substitute-variables "emms-info-libtag.el"
931 ("emms-info-libtag-program-name"
932 (string-append out "/bin/emms-print-metadata")))
933 (emacs-substitute-variables "emms-info-mp3info.el"
934 ("emms-info-mp3info-program-name"
935 (string-append mp3info "/bin/mp3info")))
936 (emacs-substitute-variables "emms-info-metaflac.el"
937 ("emms-info-metaflac-program-name"
938 (string-append flac "/bin/metaflac")))
939 (emacs-substitute-variables "emms-source-file.el"
940 ("emms-source-file-gnu-find" (which "find")))
941 (substitute* "emms-volume-amixer.el"
942 (("\"amixer\"")
943 (string-append "\"" alsa "/bin/amixer\"")))
944 (substitute* "emms-tag-editor.el"
945 (("\"mp3info\"")
946 (string-append "\"" mp3info "/bin/mp3info\"")))))))
947 (add-before 'install 'pre-install
948 (lambda* (#:key outputs #:allow-other-keys)
949 ;; The 'install' rule expects the target directories to exist.
950 (let* ((out (assoc-ref outputs "out"))
951 (bin (string-append out "/bin"))
952 (man1 (string-append out "/share/man/man1")))
953 (mkdir-p bin)
954 (mkdir-p man1)
955
956 ;; Ensure that files are not rejected by gzip
957 (let ((early-1980 315619200)) ; 1980-01-02 UTC
958 (ftw "." (lambda (file stat flag)
959 (unless (<= early-1980 (stat:mtime stat))
960 (utime file early-1980 early-1980))
961 #t)))
962 #t)))
963 (add-after 'install 'post-install
964 (lambda* (#:key outputs #:allow-other-keys)
965 (let ((out (assoc-ref outputs "out")))
966 (symlink "emms-auto.el"
967 (string-append out "/share/emacs/site-lisp/"
968 "emms-autoloads.el")))
969 #t)))
970 #:tests? #f))
971 (native-inputs `(("emacs" ,emacs-minimal) ;for (guix build emacs-utils)
972 ("texinfo" ,texinfo)))
973 (inputs `(("alsa-utils" ,alsa-utils)
974 ("flac" ,flac) ;for metaflac
975 ("vorbis-tools" ,vorbis-tools)
976 ("mpg321" ,mpg321)
977 ("taglib" ,taglib)
978 ("mp3info" ,mp3info)
979 ("opus-tools" ,opus-tools)))
980 (properties '((upstream-name . "emms")))
981 (synopsis "Emacs Multimedia System")
982 (description
983 "EMMS is the Emacs Multimedia System. It is a small front-end which
984can control one of the supported external players. Thus, it supports
985whatever formats are supported by your music player. It also
986supports tagging and playlist management, all behind a clean and
987light user interface.")
988 (home-page "https://www.gnu.org/software/emms/")
989 (license license:gpl3+)))
990
991(define-public emacs-emms-player-mpv
992 ;; A new mpv backend is included in Emms from 5.0.
993 (deprecated-package "emacs-emms-player-mpv" emacs-emms))
994
995(define-public emacs-emms-mode-line-cycle
996 (package
997 (name "emacs-emms-mode-line-cycle")
998 (version "0.2.5")
999 (source
1000 (origin
1001 (method url-fetch)
1002 (uri (string-append "https://github.com/momomo5717/emms-mode-line-cycle"
1003 "/archive/" version ".tar.gz"))
1004 (file-name (string-append name "-" version ".tar.gz"))
1005 (sha256
1006 (base32
1007 "0ifszi930pnaxk1x8pcydmvnp06868gc7nfx14q17zbajbx735k6"))))
1008 (build-system emacs-build-system)
1009 (propagated-inputs
1010 `(("emms" ,emacs-emms)))
1011 (home-page "https://github.com/momomo5717/emms-mode-line-cycle")
1012 (synopsis "Display the EMMS mode line as a ticker")
1013 (description
1014 "This is a minor mode for updating the EMMS mode-line string cyclically
1015within a specified width. It is useful for displaying long track titles.")
1016 (license license:gpl3+)))
1017
1018\f
1019;;;
1020;;; Miscellaneous.
1021;;;
1022
1023(define-public emacs-bbdb
1024 (package
1025 (name "emacs-bbdb")
1026 (version "3.1.2")
1027 (source (origin
1028 (method url-fetch)
1029 (uri (string-append "mirror://savannah/bbdb/bbdb-"
1030 version ".tar.gz"))
1031 (sha256
1032 (base32
1033 "1gs16bbpiiy01w9pyg12868r57kx1v3hnw04gmqsmpc40l1hyy05"))
1034 (modules '((guix build utils)))
1035 (snippet
1036 ;; We don't want to build and install the PDF.
1037 '(begin
1038 (substitute* "doc/Makefile.in"
1039 (("^doc_DATA = .*$")
1040 "doc_DATA =\n"))
1041 #t))))
1042 (build-system gnu-build-system)
1043 (arguments
1044 '(#:phases
1045 (modify-phases %standard-phases
1046 (add-after 'install 'post-install
1047 (lambda* (#:key outputs #:allow-other-keys)
1048 ;; Add an autoloads file with the right name for guix.el.
1049 (let* ((out (assoc-ref outputs "out"))
1050 (site (string-append out "/share/emacs/site-lisp")))
1051 (with-directory-excursion site
1052 (symlink "bbdb-loaddefs.el" "bbdb-autoloads.el")))
1053 #t)))))
1054 (native-inputs `(("emacs" ,emacs-minimal)))
1055 (home-page "https://savannah.nongnu.org/projects/bbdb/")
1056 (synopsis "Contact management utility for Emacs")
1057 (description
1058 "BBDB is the Insidious Big Brother Database for GNU Emacs. It provides
1059an address book for email and snail mail addresses, phone numbers and the
1060like. It can be linked with various Emacs mail clients (Message and Mail
1061mode, Rmail, Gnus, MH-E, and VM). BBDB is fully customizable.")
1062 (license license:gpl3+)))
1063
1064(define-public bbdb
1065 (deprecated-package "bbdb" emacs-bbdb))
1066
1067(define-public emacs-aggressive-indent
1068 (package
1069 (name "emacs-aggressive-indent")
1070 (version "1.8.3")
1071 (source (origin
1072 (method url-fetch)
1073 (uri (string-append "https://elpa.gnu.org/packages/"
1074 "aggressive-indent-" version ".el"))
1075 (sha256
1076 (base32
1077 "0jnzccl50x0wapprgwxinp99pwwa6j43q6msn4gv437j7swy8wnj"))))
1078 (build-system emacs-build-system)
1079 (home-page "https://elpa.gnu.org/packages/aggressive-indent.html")
1080 (synopsis "Minor mode to aggressively keep your code always indented")
1081 (description
1082 "@code{aggressive-indent-mode} is a minor mode that keeps your code
1083always indented. It reindents after every change, making it more reliable
1084than @code{electric-indent-mode}.")
1085 (license license:gpl2+)))
1086
1087(define-public emacs-ag
1088 (package
1089 (name "emacs-ag")
1090 (version "0.47")
1091 (source (origin
1092 (method url-fetch)
1093 (uri (string-append
1094 "https://github.com/Wilfred/ag.el/archive/"
1095 version ".tar.gz"))
1096 (file-name (string-append name "-" version ".tar.gz"))
1097 (sha256
1098 (base32
1099 "1rlmp6wnyhqfg86dbz17r914msp58favn4kd4yrdwyia265a4lar"))))
1100 (build-system emacs-build-system)
1101 (arguments
1102 `(#:phases
1103 (modify-phases %standard-phases
1104 (add-before 'install 'make-info
1105 (lambda _
1106 (with-directory-excursion "docs"
1107 (invoke "make" "info"))))
1108 (add-after 'install 'install-info
1109 (lambda* (#:key outputs #:allow-other-keys)
1110 (let* ((out (assoc-ref outputs "out"))
1111 (info (string-append out "/share/info")))
1112 (install-file "docs/_build/texinfo/agel.info" info)
1113 #t))))))
1114 (native-inputs
1115 `(("python-sphinx" ,python-sphinx)
1116 ("texinfo" ,texinfo)))
1117 (propagated-inputs
1118 `(("dash" ,emacs-dash)
1119 ("s" ,emacs-s)
1120 ;; We need to use 'ag' as the executable on remote systems.
1121 ("the-silver-searcher" ,the-silver-searcher)))
1122 (home-page "https://github.com/Wilfred/ag.el")
1123 (synopsis "Front-end for ag (the-silver-searcher) for Emacs")
1124 (description "This package provides the ability to use the silver
1125searcher, a code searching tool, sometimes abbreviated to @code{ag}. Features
1126include version control system awareness, use of Perl compatible regular
1127expressions, editing the search results directly and searching file names
1128rather than the contents of files.")
1129 (license license:gpl3+)))
1130
1131(define-public emacs-async
1132 (package
1133 (name "emacs-async")
1134 (home-page "https://github.com/jwiegley/emacs-async")
1135 (version "1.9.3")
1136 (source (origin
1137 (method git-fetch)
1138 (uri (git-reference
1139 (url home-page)
1140 (commit (string-append "v" version))))
1141 (file-name (git-file-name name version))
1142 (sha256
1143 (base32
1144 "1zsnb6dy8p6y68xgidv3dfxaga4biramfw8fq7wac0sc50vc98vq"))))
1145 (build-system emacs-build-system)
1146 (synopsis "Asynchronous processing in Emacs")
1147 (description
1148 "This package provides the ability to call asynchronous functions and
1149processes. For example, it can be used to run dired commands (for copying,
1150moving, etc.) asynchronously using @code{dired-async-mode}. Also it is used
1151as a library for other Emacs packages.")
1152 (license license:gpl3+)))
1153
1154(define-public emacs-auctex
1155 (package
1156 (name "emacs-auctex")
1157 (version "12.1.0")
1158 (source
1159 (origin
1160 (method url-fetch)
1161 (uri (string-append
1162 "https://elpa.gnu.org/packages/auctex-"
1163 version
1164 ".tar"))
1165 (sha256
1166 (base32
1167 "0iy5x61xqkxaph2hq64sg50l1c6yp6qhzppwadayxkdz00b46sas"))))
1168 (build-system emacs-build-system)
1169 ;; We use 'emacs' because AUCTeX requires dbus at compile time
1170 ;; ('emacs-minimal' does not provide dbus).
1171 (arguments
1172 `(#:emacs ,emacs
1173 #:include '("\\.el$" "^images/" "^latex/" "\\.info$")
1174 #:exclude '("^tests/" "^latex/README")))
1175 (native-inputs
1176 `(("perl" ,perl)))
1177 (home-page "https://www.gnu.org/software/auctex/")
1178 (synopsis "Integrated environment for TeX")
1179 (description
1180 "AUCTeX is a comprehensive customizable integrated environment for
1181writing input files for TeX, LaTeX, ConTeXt, Texinfo, and docTeX using Emacs
1182or XEmacs.")
1183 (license license:gpl3+)))
1184
1185(define-public emacs-autothemer
1186 (package
1187 (name "emacs-autothemer")
1188 (version "0.2.2")
1189 (source
1190 (origin
1191 (method url-fetch)
1192 (uri (string-append "https://github.com/sebastiansturm/autothemer/archive/"
1193 version ".tar.gz"))
1194 (file-name (string-append name "-" version ".tar.gz"))
1195 (sha256
1196 (base32
1197 "0rd28r9wfrbll212am4ih9hrvypx785aff76va2cbfxdwm9kixsa"))))
1198 (build-system emacs-build-system)
1199 (propagated-inputs
1200 `(("emacs-dash" ,emacs-dash)))
1201 (home-page "https://github.com/sebastiansturm/autothemer")
1202 (synopsis "Conveniently create Emacs themes")
1203 (description
1204 "Autothemer provides a thin layer on top of @code{deftheme} and
1205@code{custom-theme-set-faces} that creates a new custom color theme, based on
1206a set of simplified face specifications and a user-supplied color palette")
1207 (license license:gpl3+)))
1208
1209(define-public emacs-howm
1210 (package
1211 (name "emacs-howm")
1212 (version "1.4.4")
1213 (source
1214 (origin
1215 (method url-fetch)
1216 (uri (string-append "http://howm.sourceforge.jp/a/howm-"
1217 version ".tar.gz"))
1218 (sha256
1219 (base32
1220 "0ddm91l6z58j7x59fa966j6q1rg4cinyza4r8ibg80hprn5h31qk"))))
1221 (build-system gnu-build-system)
1222 (native-inputs
1223 `(("emacs" ,emacs-minimal)))
1224 (arguments
1225 `(#:configure-flags
1226 (list (string-append "--with-howmdir=" %output
1227 "/share/emacs/site-lisp/guix.d/howm-" ,version))
1228 #:modules ((guix build gnu-build-system)
1229 ((guix build emacs-build-system) #:prefix emacs:)
1230 (guix build utils))
1231 #:imported-modules (,@%gnu-build-system-modules
1232 (guix build emacs-build-system)
1233 (guix build emacs-utils))
1234 #:phases
1235 (modify-phases %standard-phases
1236 (add-after 'install 'make-autoloads
1237 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
1238 (home-page "http://howm.osdn.jp/")
1239 (synopsis "Note-taking tool for Emacs")
1240 (description "Howm is a note-taking tool for Emacs. Like
1241code@{emacs-wiki.el}, it facilitates using hyperlinks and doing full-text
1242searches. Unlike code@{emacs-wiki.el}, it can be combined with any format.")
1243 (license license:gpl1+)))
1244
1245(define-public emacs-calfw
1246 (package
1247 (name "emacs-calfw")
1248 (version "1.6")
1249 (source
1250 (origin
1251 (method url-fetch)
1252 (uri (string-append
1253 "https://github.com/kiwanami/emacs-calfw/archive/v"
1254 version ".tar.gz"))
1255 (file-name (string-append name "-" version ".tar.gz"))
1256 (sha256
1257 (base32
1258 "1zr91xr0f1xfcv78yxka8vs5ximmq2ixmqf2pkb57kwwnxlypq4i"))))
1259 (build-system emacs-build-system)
1260 (propagated-inputs
1261 `(("emacs-howm" ,emacs-howm)))
1262 (home-page "https://github.com/kiwanami/emacs-calfw/")
1263 (synopsis "Calendar framework for Emacs")
1264 (description
1265 "This package displays a calendar view with various schedule data in the
1266Emacs buffer.")
1267 (license license:gpl3+)))
1268
1269(define-public emacs-direnv
1270 (package
1271 (name "emacs-direnv")
1272 (version "1.2.0")
1273 (source
1274 (origin
1275 (method url-fetch)
1276 (uri (string-append
1277 "https://github.com/wbolster/emacs-direnv/archive/"
1278 version ".tar.gz"))
1279 (file-name (string-append name "-" version ".tar.gz"))
1280 (sha256
1281 (base32
1282 "0m9nxawklhiiysyibzzhh2zkxgq1fskqvaqb06f7r8dnhabfy9fr"))))
1283 (build-system emacs-build-system)
1284 (propagated-inputs
1285 `(("dash" ,emacs-dash)
1286 ("with-editor" ,emacs-with-editor)))
1287 (home-page "https://github.com/wbolster/emacs-direnv")
1288 (synopsis "Direnv integration for Emacs")
1289 (description
1290 "This package provides support for invoking direnv to get the environment
1291for the current file and updating the environment within Emacs to match.
1292
1293Direnv can be invoked manually, and a global minor mode is included that will
1294update the environment when the active buffer changes.
1295
1296Using emacs-direnv means that programs started from Emacs will use the
1297environment set through Direnv.")
1298 (license license:gpl3+)))
1299
1300(define-public emacs-ggtags
1301 (package
1302 (name "emacs-ggtags")
1303 (version "0.8.13")
1304 (source
1305 (origin
1306 (method url-fetch)
1307 (uri (string-append "http://elpa.gnu.org/packages/ggtags-"
1308 version ".el"))
1309 (sha256
1310 (base32
1311 "1qa7lcrcmf76sf6dy8sxbg4adq7rg59fm0n5848w3qxgsr0h45fg"))))
1312 (build-system emacs-build-system)
1313 (inputs
1314 `(("global" ,global)))
1315 (arguments
1316 `(#:phases
1317 (modify-phases %standard-phases
1318 (add-after 'unpack 'configure
1319 (lambda* (#:key inputs #:allow-other-keys)
1320 (chmod "ggtags.el" #o644)
1321 (emacs-substitute-variables "ggtags.el"
1322 ("ggtags-executable-directory"
1323 (string-append (assoc-ref inputs "global") "/bin")))
1324 #t)))))
1325 (home-page "https://github.com/leoliu/ggtags")
1326 (synopsis "Frontend to the GNU Global source code tagging system")
1327 (description "@code{ggtags} provides a frontend to the GNU Global source
1328code tagging system.
1329
1330Features:
1331
1332@itemize
1333@item Build on @code{compile.el} for asynchronicity and its large feature-set.
1334@item Automatically update Global's tag files when needed with tuning for
1335large source trees.
1336@item Intuitive navigation among multiple matches with mode-line display of
1337current match, total matches and exit status.
1338@item Read tag with completion.
1339@item Show definition at point.
1340@item Jump to #include files.
1341@item Support search history and saving a search to register/bookmark.
1342@item Query replace.
1343@item Manage Global's environment variables on a per-project basis.
1344@item Highlight (definition) tag at point.
1345@item Abbreviated display of file names.
1346@item Support all Global search backends: @code{grep}, @code{idutils}, etc.
1347@item Support exuberant ctags @url{http://ctags.sourceforge.net/} and
1348@code{pygments} backend.
1349@item Support all Global's output formats: @code{grep}, @code{ctags-x},
1350@code{cscope} etc.
1351@item Support projects on remote hosts (e.g. via @code{tramp}).
1352@item Support eldoc.
1353@item Search @code{GTAGSLIBPATH} for references and symbols.
1354@end itemize\n")
1355 (license license:gpl3+)))
1356
1357(define-public emacs-go-mode
1358 (package
1359 (name "emacs-go-mode")
1360 (version "1.5.0")
1361 (source (origin
1362 (method git-fetch)
1363 (uri (git-reference
1364 (url "https://github.com/dominikh/go-mode.el.git")
1365 (commit (string-append "v" version))))
1366 (file-name (git-file-name name version))
1367 (sha256
1368 (base32
1369 "1nd2h50yb0493wvf1h7fzplq45rmqn2w7kxpgnlxzhkvq99v8vzf"))))
1370 (build-system emacs-build-system)
1371 (arguments
1372 `(#:phases
1373 (modify-phases %standard-phases
1374 (add-after 'unpack 'make-writable
1375 (lambda _
1376 (for-each make-file-writable (find-files "." "\\.el$"))
1377 #t)))))
1378 (home-page "https://github.com/dominikh/go-mode.el")
1379 (synopsis "Go mode for Emacs")
1380 (description
1381 "This package provides go-mode, an Emacs mode for working with software
1382written in the Go programming language.")
1383 (license license:bsd-3)))
1384
1385(define-public emacs-google-maps
1386 (package
1387 (name "emacs-google-maps")
1388 (version "1.0.0")
1389 (source (origin
1390 (method url-fetch)
1391 (uri (string-append "https://github.com/jd/google-maps.el/"
1392 "archive/" version ".tar.gz"))
1393 (file-name (string-append name "-" version ".tar.gz"))
1394 (sha256
1395 (base32
1396 "014bxapm4d8vjxbzrfjdpsavxyfx981mlcb10aq5rmigr6il8ybs"))))
1397 (build-system emacs-build-system)
1398 (home-page "https://github.com/jd/google-maps.el")
1399 (synopsis "Access Google Maps from Emacs")
1400 (description "The @code{google-maps} package allows to display Google
1401Maps directly inside Emacs.")
1402 (license license:gpl3+)))
1403
1404(define-public emacs-graphviz-dot-mode
1405 (let ((commit "c456a2b65c734089e6c44e87209a5a432a741b1a")
1406 (revision "1"))
1407 (package
1408 (name "emacs-graphviz-dot-mode")
1409 (version (string-append "0.3.11-" revision "."
1410 (string-take commit 7)))
1411 (source (origin
1412 (method git-fetch)
1413 (uri (git-reference
1414 (url "https://github.com/ppareit/graphviz-dot-mode.git")
1415 (commit commit)))
1416 (file-name (string-append name "-" version "-checkout"))
1417 (sha256
1418 (base32
1419 "0j1r2rspaakw37b0mx7pwpvdsvixq9sw3xjbww5piihzpdxz58z1"))))
1420 (build-system emacs-build-system)
1421 (arguments
1422 `(#:phases
1423 (modify-phases %standard-phases
1424 (add-before 'install 'make-info
1425 (lambda* (#:key inputs #:allow-other-keys)
1426 (with-directory-excursion "texinfo"
1427 (substitute* "Makefile"
1428 (("\\/usr\\/bin\\/gzip")
1429 (string-append (assoc-ref inputs "gzip") "/bin/gzip")))
1430 (invoke "make"
1431 "clean"
1432 "info"
1433 (string-append "TEXINFODIR="
1434 (assoc-ref inputs "texinfo")
1435 "/bin")))))
1436 (add-after 'install 'install-info
1437 (lambda* (#:key outputs #:allow-other-keys)
1438 (let* ((out (assoc-ref outputs "out"))
1439 (info (string-append out "/share/info")))
1440 (install-file "texinfo/graphviz-dot-mode.info.gz" info)
1441 #t))))))
1442 (native-inputs
1443 `(("texinfo" ,texinfo)
1444 ("gzip" ,gzip)))
1445 (home-page "http://ppareit.github.com/graphviz-dot-mode")
1446 (synopsis "Major mode for editing Graphviz Dot files")
1447 (description
1448 "This Emacs packages helps you to create @file{.dot} or @file{.gv}
1449files using the dot syntax, and use Graphviz to convert these files to
1450diagrams.")
1451 (license license:gpl2+))))
1452
1453(define-public emacs-mmm-mode
1454 (package
1455 (name "emacs-mmm-mode")
1456 (version "0.5.5")
1457 (source
1458 (origin
1459 (method url-fetch)
1460 (uri (string-append
1461 "https://github.com/purcell/mmm-mode/archive/"
1462 version ".tar.gz"))
1463 (file-name (string-append name "-" version ".tar.gz"))
1464 (sha256
1465 (base32
1466 "0c5ing3hcr74k78hqhrfwiv6m3n8hqfrw89j2x34vf60f4iyqzqc"))))
1467 (build-system gnu-build-system)
1468 (arguments
1469 '(#:phases
1470 (modify-phases %standard-phases
1471 (add-after 'unpack 'autogen
1472 (lambda _
1473 (invoke "sh" "autogen.sh"))))))
1474 (native-inputs
1475 `(("autoconf" ,autoconf)
1476 ("automake" ,automake)
1477 ("emacs" ,emacs-minimal)
1478 ("texinfo" ,texinfo)))
1479 (home-page "https://github.com/purcell/mmm-mode")
1480 (synopsis "Allow multiple major modes in an Emacs buffer")
1481 (description
1482 "MMM Mode is a minor mode that allows multiple major modes to coexist in a
1483single buffer.")
1484 (license license:gpl3+)))
1485
1486(define-public emacs-tablist
1487 (package
1488 (name "emacs-tablist")
1489 (version "0.70")
1490 (source (origin
1491 (method url-fetch)
1492 (uri (string-append
1493 "https://github.com/politza/tablist/archive/v"
1494 version ".tar.gz"))
1495 (file-name (string-append name "-" version ".tar.gz"))
1496 (sha256
1497 (base32
1498 "177d6s7ym1mwz1nhnl09r14z3n093g9a2szm97xsaig0c204xz9c"))))
1499 (build-system emacs-build-system)
1500 (home-page "https://github.com/politza/tablist")
1501 (synopsis "Extension for @code{tabulated-list-mode}")
1502 (description "Tablist is the Emacs package that provides several
1503additional features to @code{tabulated-list-mode}: it adds marks,
1504filters, new key bindings and faces. It can be enabled by
1505@code{tablist-mode} or @code{tablist-minor-mode} commands.")
1506 (license license:gpl3+)))
1507
1508(define-public emacs-pdf-tools
1509 (package
1510 (name "emacs-pdf-tools")
1511 (version "0.80")
1512 (home-page "https://github.com/politza/pdf-tools")
1513 (source (origin
1514 (method git-fetch)
1515 (uri (git-reference (url home-page)
1516 (commit (string-append "v" version))))
1517 (file-name (git-file-name name version))
1518 (sha256
1519 (base32
1520 "1i4647vax5na73basc5dz4lh9kprir00fh8ps4i0l1y3ippnjs2s"))
1521 (patches (search-patches "emacs-pdf-tools-poppler.patch"))))
1522 (build-system gnu-build-system)
1523 (arguments
1524 `(#:tests? #f ; there are no tests
1525 #:modules ((guix build gnu-build-system)
1526 ((guix build emacs-build-system) #:prefix emacs:)
1527 (guix build utils)
1528 (guix build emacs-utils))
1529 #:imported-modules (,@%gnu-build-system-modules
1530 (guix build emacs-build-system)
1531 (guix build emacs-utils))
1532 #:phases
1533 (modify-phases %standard-phases
1534 ;; Build server side using 'gnu-build-system'.
1535 (add-after 'unpack 'enter-server-dir
1536 (lambda _ (chdir "server") #t))
1537 (add-after 'enter-server-dir 'autogen
1538 (lambda _
1539 (invoke "bash" "autogen.sh")))
1540
1541 ;; Build emacs side using 'emacs-build-system'.
1542 (add-after 'compress-documentation 'enter-lisp-dir
1543 (lambda _ (chdir "../lisp") #t))
1544 (add-after 'enter-lisp-dir 'emacs-patch-variables
1545 (lambda* (#:key outputs #:allow-other-keys)
1546 (for-each make-file-writable (find-files "."))
1547
1548 ;; Set path to epdfinfo program.
1549 (emacs-substitute-variables "pdf-info.el"
1550 ("pdf-info-epdfinfo-program"
1551 (string-append (assoc-ref outputs "out")
1552 "/bin/epdfinfo")))
1553 ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto
1554 ;; upgrading" that pdf-tools tries to perform.
1555 (emacs-substitute-variables "pdf-tools.el"
1556 ("pdf-tools-handle-upgrades" '()))))
1557 (add-after 'emacs-patch-variables 'emacs-set-emacs-load-path
1558 (assoc-ref emacs:%standard-phases 'set-emacs-load-path))
1559 (add-after 'emacs-set-emacs-load-path 'emacs-install
1560 (assoc-ref emacs:%standard-phases 'install))
1561 (add-after 'emacs-install 'emacs-build
1562 (assoc-ref emacs:%standard-phases 'build))
1563 (add-after 'emacs-install 'emacs-make-autoloads
1564 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
1565 (native-inputs `(("autoconf" ,autoconf)
1566 ("automake" ,automake)
1567 ("pkg-config" ,pkg-config)
1568 ("emacs" ,emacs-minimal)))
1569 (inputs `(("poppler" ,poppler)
1570 ("cairo" ,cairo)
1571 ("glib" ,glib)
1572 ("libpng" ,libpng)
1573 ("zlib" ,zlib)))
1574 (propagated-inputs `(("tablist" ,emacs-tablist)))
1575 (synopsis "Emacs support library for PDF files")
1576 (description
1577 "PDF Tools is, among other things, a replacement of DocView for PDF
1578files. The key difference is that pages are not pre-rendered by
1579e.g. ghostscript and stored in the file-system, but rather created on-demand
1580and stored in memory.")
1581 (license license:gpl3+)))
1582
1583(define-public emacs-dash
1584 (package
1585 (name "emacs-dash")
1586 (version "2.14.1")
1587 (source (origin
1588 (method git-fetch)
1589 (uri (git-reference
1590 (url "https://github.com/magnars/dash.el.git")
1591 (commit version)))
1592 (file-name (git-file-name name version))
1593 (sha256
1594 (base32
1595 "1kzijmjxjxgr7p8clphzvmm47vczckbs8mza9an77c25bn627ywl"))))
1596 (build-system emacs-build-system)
1597 (arguments
1598 `(#:tests? #t
1599 #:test-command '("./run-tests.sh")))
1600 (home-page "https://github.com/magnars/dash.el")
1601 (synopsis "Modern list library for Emacs")
1602 (description "This package provides a modern list API library for Emacs.")
1603 (license license:gpl3+)))
1604
1605(define-public emacs-bui
1606 (package
1607 (name "emacs-bui")
1608 (version "1.2.1")
1609 (source (origin
1610 (method git-fetch)
1611 (uri (git-reference
1612 (url "https://notabug.org/alezost/emacs-bui.git")
1613 (commit (string-append "v" version))))
1614 (file-name (string-append name "-" version "-checkout"))
1615 (sha256
1616 (base32
1617 "0sszdl4kvqbihdh8d7mybpp0d8yw2p3gyiipjcxz9xhvvmw3ww4x"))))
1618 (build-system emacs-build-system)
1619 (propagated-inputs
1620 `(("dash" ,emacs-dash)))
1621 (home-page "https://notabug.org/alezost/emacs-bui")
1622 (synopsis "Buffer interface library for Emacs")
1623 (description
1624 "BUI (Buffer User Interface) is a library for making @code{list} and
1625@code{info} interfaces to display an arbitrary data of the same
1626type, for example: packages, buffers, files, etc.")
1627 (license license:gpl3+)))
1628
1629(define-public emacs-guix
1630 (package
1631 (name "emacs-guix")
1632 (version "0.5.1.1")
1633 (source (origin
1634 (method url-fetch)
1635 (uri (string-append "https://emacs-guix.gitlab.io/website/"
1636 "releases/emacs-guix-" version ".tar.gz"))
1637 (sha256
1638 (base32
1639 "1gxg7lan3njc2yg2d02b2zij0d2cm2pv2q08nqz86s85jk3b6m03"))))
1640 (build-system gnu-build-system)
1641 (arguments
1642 `(#:configure-flags
1643 (let ((guix (assoc-ref %build-inputs "guix"))
1644 (gcrypt (assoc-ref %build-inputs "guile-gcrypt"))
1645 (geiser (assoc-ref %build-inputs "geiser"))
1646 (dash (assoc-ref %build-inputs "dash"))
1647 (bui (assoc-ref %build-inputs "bui"))
1648 (magit-popup (assoc-ref %build-inputs "magit-popup"))
1649 (edit-indirect (assoc-ref %build-inputs "edit-indirect"))
1650 (site-lisp "/share/emacs/site-lisp")
1651 (site-scm "/share/guile/site")
1652 (site-go "/lib/guile")
1653 (guile-dir (lambda (dir)
1654 (car (find-files dir
1655 (lambda (file stat)
1656 (string-prefix?
1657 "2." (basename file)))
1658 #:directories? #t)))))
1659 (list (string-append "--with-guix-site-dir="
1660 (guile-dir (string-append guix site-scm)))
1661 (string-append "--with-guix-site-ccache-dir="
1662 (guile-dir (string-append guix site-go))
1663 "/site-ccache")
1664 (string-append "--with-guile-gcrypt-site-dir="
1665 (guile-dir (string-append gcrypt site-scm)))
1666 (string-append "--with-guile-gcrypt-site-ccache-dir="
1667 (guile-dir (string-append gcrypt site-go))
1668 "/site-ccache")
1669 (string-append "--with-geiser-lispdir=" geiser site-lisp)
1670 (string-append "--with-dash-lispdir="
1671 dash site-lisp "/guix.d/dash-"
1672 ,(package-version emacs-dash))
1673 (string-append "--with-bui-lispdir="
1674 bui site-lisp "/guix.d/bui-"
1675 ,(package-version emacs-bui))
1676 (string-append "--with-editindirect-lispdir="
1677 edit-indirect site-lisp "/guix.d/edit-indirect-"
1678 ,(package-version emacs-edit-indirect))
1679 (string-append "--with-popup-lispdir="
1680 magit-popup site-lisp "/guix.d/magit-popup-"
1681 ,(package-version emacs-magit-popup))))))
1682 (native-inputs
1683 `(("pkg-config" ,pkg-config)
1684 ("emacs" ,emacs-minimal)))
1685 (inputs
1686 `(("guile" ,guile-2.2)
1687 ("guix" ,guix)))
1688 (propagated-inputs
1689 `(("geiser" ,emacs-geiser)
1690 ("guile-gcrypt" ,guile-gcrypt)
1691 ("dash" ,emacs-dash)
1692 ("bui" ,emacs-bui)
1693 ("edit-indirect" ,emacs-edit-indirect)
1694 ("magit-popup" ,emacs-magit-popup)))
1695 (home-page "https://emacs-guix.gitlab.io/website/")
1696 (synopsis "Emacs interface for GNU Guix")
1697 (description
1698 "Emacs-Guix provides a visual interface, tools and features for the GNU
1699Guix package manager. Particularly, it allows you to do various package
1700management tasks from Emacs. To begin with, run @code{M-x guix-about} or
1701@code{M-x guix-help} command.")
1702 (license license:gpl3+)))
1703
1704(define-public emacs-build-farm
1705 (package
1706 (name "emacs-build-farm")
1707 (version "0.2.2")
1708 (source (origin
1709 (method git-fetch)
1710 (uri (git-reference
1711 (url "https://notabug.org/alezost/emacs-build-farm.git")
1712 (commit (string-append "v" version))))
1713 (file-name (string-append name "-" version "-checkout"))
1714 (sha256
1715 (base32
1716 "0i0bwbav5861j2y15j9nd5m9rdqg9q97zgcbld8pivr9nyxy63lz"))))
1717 (build-system emacs-build-system)
1718 (propagated-inputs
1719 `(("bui" ,emacs-bui)
1720 ("magit-popup" ,emacs-magit-popup)))
1721 (home-page "https://notabug.org/alezost/emacs-build-farm")
1722 (synopsis "Emacs interface for Hydra and Cuirass build farms")
1723 (description
1724 "This Emacs package provides an interface for Hydra and
1725Cuirass (build farms used by Nix and Guix). It allows you to look at
1726various data related to the build farm projects, jobsets, builds and
1727evaluations. The entry point is @code{M-x build-farm} command.")
1728 (license license:gpl3+)))
1729
1730(define-public emacs-d-mode
1731 (package
1732 (name "emacs-d-mode")
1733 (version "2.0.9")
1734 (source (origin
1735 (method url-fetch)
1736 (uri (string-append
1737 "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode/"
1738 "archive/" version ".tar.gz"))
1739 (file-name (string-append name "-" version ".tar.gz"))
1740 (sha256
1741 (base32
1742 "127aa77ix3p7w4g339bx026df9y649dahlr3v359z0hs40zjz3kd"))))
1743 (build-system emacs-build-system)
1744 (propagated-inputs
1745 `(("emacs-undercover" ,emacs-undercover)))
1746 (home-page "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
1747 (synopsis "Emacs major mode for editing D code")
1748 (description "This package provides an Emacs major mode for highlighting
1749code written in the D programming language. This mode is currently known to
1750work with Emacs 24 and 25.")
1751 (license license:gpl2+)))
1752
1753(define-public emacs-keyfreq
1754 (package
1755 (name "emacs-keyfreq")
1756 (version "20160516.716")
1757 (source
1758 (origin
1759 (method url-fetch)
1760 (uri (string-append "http://melpa.org/packages/keyfreq-"
1761 version ".el"))
1762 (sha256
1763 (base32
1764 "008hd7d06qskc3mx0bbdgpgy2pwxr8185fzlyqf9qjg49y74p6g8"))))
1765 (build-system emacs-build-system)
1766 (home-page "https://github.com/dacap/keyfreq")
1767 (synopsis "Track Emacs command frequencies")
1768 (description "@code{emacs-keyfeq} tracks and shows how many times you used
1769a command.")
1770 (license license:gpl3+)))
1771
1772(define-public emacs-olivetti
1773 (package
1774 (name "emacs-olivetti")
1775 (version "1.5.7")
1776 (source (origin
1777 (method url-fetch)
1778 (uri (string-append
1779 "https://stable.melpa.org/packages/olivetti-"
1780 version ".el"))
1781 (sha256
1782 (base32
1783 "1yj2ylg46q0pw1xzlv2b0fv9x8p56x25284s9v2smwjr4vf0nwcj"))))
1784 (build-system emacs-build-system)
1785 (home-page "https://github.com/rnkn/olivetti")
1786 (synopsis "Emacs minor mode for a nice writing environment")
1787 (description "This package provides an Emacs minor mode that puts writing
1788in the center.")
1789 (license license:gpl3+)))
1790
1791(define-public emacs-undo-tree
1792 (package
1793 (name "emacs-undo-tree")
1794 (version "0.6.6")
1795 (source (origin
1796 (method git-fetch)
1797 (uri (git-reference
1798 (url "http://dr-qubit.org/git/undo-tree.git")
1799 (commit (string-append "release/" version))))
1800 (file-name (string-append name "-" version "-checkout"))
1801 (sha256
1802 (base32
1803 "1hnh2mnmw179gr094r561w6cw1haid0lpvpqvkc24wpj82vphzpa"))))
1804 (build-system emacs-build-system)
1805 (home-page "http://www.dr-qubit.org/emacs.php")
1806 (synopsis "Treat undo history as a tree")
1807 (description "Tree-like interface to Emacs undo system, providing
1808graphical tree presentation of all previous states of buffer that
1809allows easily move between them.")
1810 (license license:gpl3+)))
1811
1812(define-public emacs-s
1813 (package
1814 (name "emacs-s")
1815 (version "1.12.0")
1816 (source (origin
1817 (method url-fetch)
1818 (uri (string-append
1819 "https://github.com/magnars/s.el/archive/"
1820 version ".tar.gz"))
1821 (file-name (string-append name "-" version ".tar.gz"))
1822 (sha256
1823 (base32
1824 "0xbl75863pcm806zg0x1lw7qznzjq2c8320k8js7apyag8q4srvh"))))
1825 (build-system emacs-build-system)
1826 (arguments
1827 `(#:tests? #t
1828 #:emacs ,emacs ; FIXME: tests fail with emacs-minimal
1829 #:test-command '("./run-tests.sh")))
1830 (home-page "https://github.com/magnars/s.el")
1831 (synopsis "Emacs string manipulation library")
1832 (description "This package provides an Emacs library for manipulating
1833strings.")
1834 (license license:gpl3+)))
1835
1836(define-public emacs-symon
1837 (package
1838 (name "emacs-symon")
1839 (version "20160630")
1840 (source
1841 (origin
1842 (method url-fetch)
1843 (uri (string-append "https://github.com/zk-phi/symon/archive/"
1844 version ".tar.gz"))
1845 (file-name (string-append name "-" version ".tar.gz"))
1846 (sha256
1847 (base32
1848 "0h4jcgdnq98wc9rj72nwyazq8498yg55jfljiij5qwbn1xf1g5zz"))))
1849 (build-system emacs-build-system)
1850 (home-page "https://github.com/zk-phi/symon")
1851 (synopsis "Tiny graphical system monitor")
1852 (description
1853 "Tiny graphical system monitor for the Emacs minibuffer when idle.")
1854 (license license:gpl2+)))
1855
1856(define-public emacs-sx
1857 (let ((version "20180212")
1858 (revision "1")
1859 (commit "833435fbf90d1c9e927d165b155f3b1ef39271de"))
1860 (package
1861 (name "emacs-sx")
1862 (version (git-version version revision commit))
1863 (source
1864 (origin
1865 (method git-fetch)
1866 (uri (git-reference
1867 (url "https://github.com/vermiculus/sx.el")
1868 (commit commit)))
1869 (file-name (git-file-name name version))
1870 (sha256
1871 (base32
1872 "1369xaxq1vy3d9yh862ddnhddikdpg2d0wv1ly00pnvdp9v4cqgd"))))
1873 (build-system emacs-build-system)
1874 (propagated-inputs
1875 `(("emacs-markdown-mode" ,emacs-markdown-mode)))
1876 (home-page "https://github.com/vermiculus/sx.el")
1877 (synopsis "Emacs StackExchange client")
1878 (description
1879 "Emacs StackExchange client. Ask and answer questions on
1880Stack Overflow, Super User, and other StackExchange sites.")
1881 (license license:gpl3+))))
1882
1883(define-public emacs-f
1884 (package
1885 (name "emacs-f")
1886 (version "0.20.0")
1887 (source (origin
1888 (method git-fetch)
1889 (uri (git-reference
1890 (url "https://github.com/rejeep/f.el.git")
1891 (commit (string-append "v" version))))
1892 (file-name (git-file-name name version))
1893 (sha256
1894 (base32
1895 "1a47xk3yp1rp17fqg7ldl3d3fb888h0fz3sysqfdz1bfdgs8a9bk"))))
1896 (build-system emacs-build-system)
1897 (propagated-inputs
1898 `(("emacs-s" ,emacs-s)
1899 ("emacs-dash" ,emacs-dash)))
1900 (home-page "https://github.com/rejeep/f.el")
1901 (synopsis "Emacs API for working with files and directories")
1902 (description "This package provides an Emacs library for working with
1903files and directories.")
1904 (license license:gpl3+)))
1905
1906(define-public emacs-git-gutter
1907 (package
1908 (name "emacs-git-gutter")
1909 (version "0.90")
1910 (source (origin
1911 (method url-fetch)
1912 (uri (string-append
1913 "https://github.com/syohex/" name "/archive/"
1914 version ".tar.gz"))
1915 (file-name (string-append name "-" version ".tar.gz"))
1916 (sha256
1917 (base32
1918 "1nmhvhpq1l56mj2yq3ag23rw3x4xgnsy8szp30s26l0yjnkhc4qg"))))
1919 (build-system emacs-build-system)
1920 (home-page "https://github.com/syohex/emacs-git-gutter")
1921 (synopsis "See and manage hunks of text in a version control system")
1922 (description
1923 "This package is an Emacs minor mode for displaying and interacting with
1924hunks of text managed in a version control system. Added modified and deleted
1925areas can be indicated with symbols on the edge of the buffer, and commands
1926can be used to move between and perform actions on these hunks.
1927
1928Git, Mercurial, Subversion and Bazaar are supported, and many parts of the
1929display and behaviour is easily customisable.")
1930 (license license:gpl3+)))
1931
1932(define-public emacs-git-timemachine
1933 (package
1934 (name "emacs-git-timemachine")
1935 (version "4.5")
1936 (source
1937 (origin
1938 (method url-fetch)
1939 (uri (string-append "https://gitlab.com/pidu/git-timemachine"
1940 "/-/archive/" version
1941 "/git-timemachine-" version ".tar.gz"))
1942 (file-name (string-append name "-" version ".tar.gz"))
1943 (sha256
1944 (base32
1945 "0ii40qcincasg7s1yrvqcxkqcqzb4sfs7gcxscn6m4x4ans165zy"))))
1946 (build-system emacs-build-system)
1947 (home-page "https://gitlab.com/pidu/git-timemachine")
1948 (synopsis "Step through historic versions of Git-controlled files")
1949 (description "This package enables you to step through historic versions
1950of files under Git version control from within Emacs.")
1951 (license license:gpl3+)))
1952
1953(define-public emacs-minitest
1954 (let ((commit "1aadb7865c1dc69c201cecee275751ecec33a182")
1955 (revision "1"))
1956 (package
1957 (name "emacs-minitest")
1958 (version (git-version "0.8.0" revision commit))
1959 (source (origin
1960 (method git-fetch)
1961 (uri (git-reference
1962 (url "https://github.com/arthurnn/minitest-emacs")
1963 (commit commit)))
1964 (file-name (git-file-name name commit))
1965 (sha256
1966 (base32
1967 "1l18zqpdzbnqj2qawq8hj7z7pl8hr8z9d8ihy8jaiqma915hmhj1"))))
1968 (build-system emacs-build-system)
1969 (arguments
1970 '(#:include (cons "^snippets\\/minitest-mode\\/" %default-include)
1971 #:exclude (delete "^[^/]*tests?\\.el$" %default-exclude)))
1972 (propagated-inputs
1973 `(("emacs-dash" ,emacs-dash)
1974 ("emacs-f" ,emacs-f)))
1975 (home-page "https://github.com/arthurnn/minitest-emacs")
1976 (synopsis "Emacs minitest mode")
1977 (description
1978 "The minitest mode provides commands to run the tests for the current
1979file or line, as well as rerunning the previous tests, or all the tests for a
1980project.
1981
1982This package also includes relevant snippets for yasnippet.")
1983 (license license:expat))))
1984
1985(define-public emacs-el-mock
1986 (package
1987 (name "emacs-el-mock")
1988 (version "1.25.1")
1989 (source
1990 (origin
1991 (method url-fetch)
1992 (uri (string-append "https://github.com/rejeep/el-mock.el/"
1993 "archive/v" version ".tar.gz"))
1994 (file-name (string-append name "-" version ".tar.gz"))
1995 (sha256
1996 (base32
1997 "16xw94n58xxn3zvgyj72bmzs0k5lkvswjmzs79ws9n7rzdivb38b"))))
1998 (build-system emacs-build-system)
1999 (home-page "https://github.com/rejeep/el-mock.el")
2000 (synopsis "Tiny mock and stub framework in Emacs Lisp")
2001 (description
2002 "Emacs Lisp Mock is a library for mocking and stubbing using readable
2003syntax. Most commonly Emacs Lisp Mock is used in conjunction with Emacs Lisp
2004Expectations, but it can be used in other contexts.")
2005 (license license:gpl3+)))
2006
2007(define-public emacs-espuds
2008 (package
2009 (name "emacs-espuds")
2010 (version "0.3.3")
2011 (source
2012 (origin
2013 (method url-fetch)
2014 (uri (string-append "https://github.com/ecukes/espuds/"
2015 "archive/v" version ".tar.gz"))
2016 (file-name (string-append name "-" version ".tar.gz"))
2017 (sha256
2018 (base32
2019 "0xv551376pbmh735a3zjwc9z4qdx6ngj1vpq3xqjpn0a1rwjyn4k"))))
2020 (build-system emacs-build-system)
2021 (propagated-inputs
2022 `(("emacs-s" ,emacs-s)
2023 ("emacs-dash" ,emacs-dash)
2024 ("emacs-f" ,emacs-f)))
2025 (home-page "https://github.com/ecukes/espuds")
2026 (synopsis "Common step definitions for Ecukes")
2027 (description "Espuds is a collection of the most commonly used step
2028definitions for testing with the Ecukes framework.")
2029 (license license:gpl3+)))
2030
2031(define-public emacs-spark
2032 (let ((version "20160503") ; no proper tag, use date of commit
2033 (commit "0bf148c3ede3b31d56fd75f347cdd0b0eae60025")
2034 (revision "1"))
2035 (package
2036 (name "emacs-spark")
2037 (version (git-version version revision commit))
2038 (source
2039 (origin
2040 (method git-fetch)
2041 (uri (git-reference
2042 (url "https://github.com/alvinfrancis/spark.git")
2043 (commit commit)))
2044 (file-name (git-file-name name version))
2045 (sha256
2046 (base32
2047 "1ykqr86j17mi95s08d9fp02d7ych1331b04dcqxzxnmpkhwngyj1"))))
2048 (build-system emacs-build-system)
2049 (home-page "https://github.com/alvinfrancis/spark")
2050 (synopsis "Sparkline generation library for Emacs Lisp")
2051 (description "@code{emacs-spark} is a sparkline generation library for
2052Emacs Lisp. It generates a sparkline string given a list of numbers. It is a
2053port of @code{cl-spark} to Emacs Lisp.")
2054 (license license:expat))))
2055
2056(define-public emacs-es-mode
2057 (package
2058 (name "emacs-es-mode")
2059 (version "4.3.0")
2060 (source (origin
2061 (method url-fetch)
2062 (uri (string-append
2063 "https://github.com/dakrone/es-mode/archive/"
2064 version ".tar.gz"))
2065 (file-name (string-append name "-" version ".tar.gz"))
2066 (sha256
2067 (base32
2068 "0y86qdcb3g7fkcb4pzsjh3syzql6w3314hg1wqxq4a8bbk3y0cgr"))))
2069 (build-system emacs-build-system)
2070 (propagated-inputs
2071 ;; The version of org in Emacs 24.5 is not sufficient, and causes tables
2072 ;; to be rendered incorrectly
2073 `(("emacs-dash" ,emacs-dash)
2074 ("emacs-org" ,emacs-org)
2075 ("emacs-spark" ,emacs-spark)))
2076 (home-page "https://github.com/dakrone/es-mode")
2077 (synopsis "Major mode for editing Elasticsearch queries")
2078 (description "@code{es-mode} includes highlighting, completion and
2079indentation support for Elasticsearch queries. Also supported are
2080@code{es-mode} blocks in @code{org-mode}, for which the results of queries can
2081be processed through @code{jq}, or in the case of aggregations, can be
2082rendered in to a table. In addition, there is an @code{es-command-center}
2083mode, which displays information about Elasticsearch clusters.")
2084 (license license:gpl3+)))
2085
2086(define-public emacs-expand-region
2087 (package
2088 (name "emacs-expand-region")
2089 (version "0.11.0")
2090 (source
2091 (origin
2092 (method url-fetch)
2093 (uri (string-append "https://github.com/magnars/expand-region.el"
2094 "/archive/" version ".tar.gz"))
2095 (file-name (string-append name "-" version ".tar.gz"))
2096 (sha256
2097 (base32
2098 "08dy1f411sh9wwww53rjw80idcf3vpki6ba2arl4hl5jcw9651g0"))))
2099 (build-system emacs-build-system)
2100 (home-page "https://github.com/magnars/expand-region.el")
2101 (synopsis "Increase selected region by semantic units")
2102 (description
2103 "Expand region increases the selected region by semantic units. Just
2104keep pressing the key until it selects what you want. There's also
2105@code{er/contract-region} if you expand too far.")
2106 (license license:gpl3+)))
2107
2108(define-public emacs-fill-column-indicator
2109 (package
2110 (name "emacs-fill-column-indicator")
2111 (version "1.89")
2112 (source
2113 (origin
2114 (method url-fetch)
2115 (uri (string-append "https://github.com/alpaker/Fill-Column-Indicator"
2116 "/archive/v" version ".tar.gz"))
2117 (file-name (string-append name "-" version ".tar.gz"))
2118 (sha256
2119 (base32
2120 "09ab01np14bdcsr38xf95kpnvxzqr46mdjmphg3pigwnx39a3jvg"))))
2121 (build-system emacs-build-system)
2122 (home-page "https://www.emacswiki.org/emacs/FillColumnIndicator")
2123 (synopsis "Graphically indicate the fill column")
2124 (description
2125 "Fill-column-indicator graphically indicates the location of the fill
2126column by drawing a thin line down the length of the editing window.")
2127 (license license:gpl3+)))
2128
2129(define-public emacs-grep-a-lot
2130 (package
2131 (name "emacs-grep-a-lot")
2132 (version "1.0.7")
2133 (source (origin
2134 (method git-fetch)
2135 (uri (git-reference
2136 (url "https://github.com/ZungBang/emacs-grep-a-lot.git")
2137 (commit "9f9f645b9e308a0d887b66864ff97d0fca1ba4ad")))
2138 (file-name (string-append name "-" version "-checkout"))
2139 (sha256
2140 (base32
2141 "1f8262mrlinzgnn4m49hbj1hm3c1mvzza24py4b37sasn49546lw"))))
2142 (build-system emacs-build-system)
2143 (home-page "https://github.com/ZungBang/emacs-grep-a-lot")
2144 (synopsis "Enables multiple grep buffers in Emacs")
2145 (description
2146 "This Emacs package allows managing multiple grep buffers.")
2147 (license license:gpl3+)))
2148
2149(define-public emacs-inf-ruby
2150 (package
2151 (name "emacs-inf-ruby")
2152 (version "2.5.1")
2153 (source
2154 (origin
2155 (method url-fetch)
2156 (uri (string-append "https://github.com/nonsequitur/inf-ruby/"
2157 "archive/" version ".tar.gz"))
2158 (file-name (string-append name "-" version ".tar.gz"))
2159 (sha256
2160 (base32
2161 "0m7323k649ckxql1grsdnf71bjhys7l4qb8wbpphb1mr1q8i4066"))))
2162 (build-system emacs-build-system)
2163 (home-page "https://github.com/nonsequitur/inf-ruby")
2164 (synopsis "Provides a REPL buffer connected to a Ruby subprocess in Emacs")
2165 (description
2166 "@code{inf-ruby} provides a Read Eval Print Loop (REPL) buffer, allowing
2167for easy interaction with a ruby subprocess. Features include support for
2168detecting specific uses of Ruby, e.g. when using rails, and using a
2169appropriate console.")
2170 (license license:gpl3+)))
2171
2172(define-public emacs-znc
2173 (package
2174 (name "emacs-znc")
2175 (version "0.0.2")
2176 (source
2177 (origin
2178 (method url-fetch)
2179 (uri (string-append "https://marmalade-repo.org/packages/znc-"
2180 version ".el"))
2181 (sha256
2182 (base32
2183 "1d8lqvybgyazin5z0g1c4l3rg1vzrrvf0saqs53jr1zcdg0lianh"))))
2184 (build-system emacs-build-system)
2185 (home-page "https://github.com/sshirokov/ZNC.el")
2186 (synopsis "Make ERC and ZNC get along better")
2187 (description
2188 "This is a thin wrapper around @code{erc} that enables one to use the ZNC
2189IRC bouncer with ERC.")
2190 (license license:expat)))
2191
2192(define-public emacs-shut-up
2193 (package
2194 (name "emacs-shut-up")
2195 (version "0.3.2")
2196 (source
2197 (origin
2198 (method url-fetch)
2199 (uri (string-append "https://github.com/cask/shut-up/"
2200 "archive/v" version ".tar.gz"))
2201 (file-name (string-append name "-" version ".tar.gz"))
2202 (sha256
2203 (base32
2204 "09kzrjdkb569iviyg7ydwq44yh84m3f9hkl7jizfrlk0w4gz67d1"))))
2205 (build-system emacs-build-system)
2206 (home-page "https://github.com/cask/shut-up")
2207 (synopsis "Silence Emacs")
2208 (description "This package silences most output of Emacs when running an
2209Emacs shell script.")
2210 (license license:expat)))
2211
2212(define-public emacs-undercover
2213 (package
2214 (name "emacs-undercover")
2215 (version "0.6.0")
2216 (source
2217 (origin
2218 (method url-fetch)
2219 (uri (string-append "https://github.com/sviridov/undercover.el/"
2220 "archive/v" version ".tar.gz"))
2221 (file-name (string-append name "-" version ".tar.gz"))
2222 (sha256
2223 (base32
2224 "0f48fi0xnbsqs382rgh85m9mq1wdnr0yib7as9xhwzvq0hsr5m0a"))))
2225 (build-system emacs-build-system)
2226 (propagated-inputs
2227 `(("emacs-dash" ,emacs-dash)
2228 ("emacs-shut-up" ,emacs-shut-up)))
2229 (home-page "https://github.com/sviridov/undercover.el")
2230 (synopsis "Test coverage library for Emacs Lisp")
2231 (description
2232 "Undercover is a test coverage library for software written in Emacs
2233Lisp.")
2234 (license license:expat)))
2235
2236(define-public emacs-paren-face
2237 (package
2238 (name "emacs-paren-face")
2239 (version "1.0.0")
2240 (source
2241 (origin
2242 (method url-fetch)
2243 (uri (string-append "https://github.com/tarsius/paren-face/archive/"
2244 version ".tar.gz"))
2245 (file-name (string-append name "-" version ".tar.gz"))
2246 (sha256
2247 (base32
2248 "0y4qrhxa9332vsvr999jg7qj1ymnfgwpf591yi4a4jgg90pm7qnn"))))
2249 (build-system emacs-build-system)
2250 (home-page "https://github.com/tarsius/paren-face")
2251 (synopsis "Face for parentheses in lisp modes")
2252 (description
2253 "This library defines a face named @code{parenthesis} used just for
2254parentheses. The intended purpose of this face is to make parentheses less
2255visible in Lisp code by dimming them. Lispers probably don't need to be
2256constantly made aware of the existence of the parentheses. Dimming them might
2257be even more useful for people new to lisp who have not yet learned to
2258subconsciously blend out the parentheses.")
2259 (license license:gpl3+)))
2260
2261(define-public emacs-page-break-lines
2262 (package
2263 (name "emacs-page-break-lines")
2264 (version "0.11")
2265 (source
2266 (origin
2267 (method url-fetch)
2268 (uri (string-append "https://github.com/purcell/page-break-lines/"
2269 "archive/" version ".tar.gz"))
2270 (file-name (string-append name "-" version ".tar.gz"))
2271 (sha256
2272 (base32
2273 "1zzhziq5kbrm9rxk30kx2glz455fp1blqxg8cpcf6l8xl3w8z4pg"))))
2274 (build-system emacs-build-system)
2275 (home-page "https://github.com/purcell/page-break-lines")
2276 (synopsis "Display page breaks as tidy horizontal lines")
2277 (description
2278 "This library provides a global mode which displays form feed characters
2279as horizontal rules.")
2280 (license license:gpl3+)))
2281
2282(define-public emacs-simple-httpd
2283 (package
2284 (name "emacs-simple-httpd")
2285 (version "1.4.6")
2286 (source
2287 (origin
2288 (method url-fetch)
2289 (uri (string-append "https://github.com/skeeto/emacs-web-server/"
2290 "archive/" version ".tar.gz"))
2291 (file-name (string-append name "-" version ".tar.gz"))
2292 (sha256
2293 (base32
2294 "01r7h3imnj4qx1m53a2wjafvbylcyz5f9r2rg2cs7ky3chlg220r"))))
2295 (build-system emacs-build-system)
2296 (home-page "https://github.com/skeeto/emacs-http-server")
2297 (synopsis "HTTP server in pure Emacs Lisp")
2298 (description
2299 "This package provides a simple HTTP server written in Emacs Lisp to
2300serve files and directory listings.")
2301 (license license:unlicense)))
2302
2303(define-public emacs-skewer-mode
2304 (package
2305 (name "emacs-skewer-mode")
2306 (version "1.6.2")
2307 (source
2308 (origin
2309 (method url-fetch)
2310 (uri (string-append "https://github.com/skeeto/skewer-mode/archive/"
2311 version ".tar.gz"))
2312 (file-name (string-append name "-" version ".tar.gz"))
2313 (sha256
2314 (base32
2315 "07jpz374j0j964szy3zznrkyja2kpdl3xa87wh7349mzxivqxdx0"))))
2316 (build-system emacs-build-system)
2317 (propagated-inputs
2318 `(("emacs-simple-httpd" ,emacs-simple-httpd)
2319 ("emacs-js2-mode" ,emacs-js2-mode)))
2320 (arguments '(#:include '("\\.el$" "\\.js$" "\\.html$")))
2321 (home-page "https://github.com/skeeto/skewer-mode")
2322 (synopsis "Live web development in Emacs")
2323 (description
2324 "Skewer-mode provides live interaction with JavaScript, CSS, and HTML in
2325a web browser. Expressions are sent on-the-fly from an editing buffer to be
2326evaluated in the browser, just like Emacs does with an inferior Lisp process
2327in Lisp modes.")
2328 (license license:unlicense)))
2329
2330(define-public emacs-string-inflection
2331 (package
2332 (name "emacs-string-inflection")
2333 (version "1.0.6")
2334 (source (origin
2335 (method git-fetch)
2336 (uri (git-reference
2337 (url "https://github.com/akicho8/string-inflection")
2338 (commit "a150e7bdda60b7824d3a936750ce23f73b0e4edd")))
2339 (file-name (string-append name "-" version "-checkout"))
2340 (sha256
2341 (base32
2342 "1k0sm552iawi49v4zis6dbb81d1rzgky9v0dpv7nj31gnb7bmy7k"))))
2343 (build-system emacs-build-system)
2344 (native-inputs
2345 `(("ert-runner" ,emacs-ert-runner)))
2346 (arguments
2347 `(#:tests? #t
2348 #:test-command '("ert-runner")))
2349 (home-page "https://github.com/akicho8/string-inflection")
2350 (synopsis "Convert symbol names between different naming conventions")
2351 (description
2352 "This Emacs package provides convenient methods for manipulating the
2353naming style of a symbol. It supports different naming conventions such as:
2354
2355@enumerate
2356@item camel case
2357@item Pascal case
2358@item all upper case
2359@item lower case separated by underscore
2360@item etc...
2361@end enumerate\n")
2362 (license license:gpl2+)))
2363
2364(define-public emacs-stripe-buffer
2365 (package
2366 (name "emacs-stripe-buffer")
2367 (version "0.2.5")
2368 (source
2369 (origin
2370 (method url-fetch)
2371 (uri (string-append "https://github.com/sabof/stripe-buffer/"
2372 "archive/" version ".tar.gz"))
2373 (file-name (string-append name "-" version ".tar.gz"))
2374 (sha256
2375 (base32
2376 "1p515dq7raly5hw94kiwm3vzsfih0d8af622q4ipvvljsm98aiik"))))
2377 (build-system emacs-build-system)
2378 (home-page "https://github.com/sabof/stripe-buffer/")
2379 (synopsis "Add stripes to list buffers")
2380 (description
2381 "This Emacs package adds faces to add stripes to list buffers and org
2382tables.")
2383 (license license:gpl2+)))
2384
2385(define-public emacs-rich-minority
2386 (package
2387 (name "emacs-rich-minority")
2388 (version "1.0.1")
2389 (source
2390 (origin
2391 (method url-fetch)
2392 (uri (string-append "https://github.com/Malabarba/rich-minority/"
2393 "archive/" version ".tar.gz"))
2394 (file-name (string-append name "-" version ".tar.gz"))
2395 (sha256
2396 (base32
2397 "1l0cb0q7kyi88nwfqd542psnkgwnjklpzc5rx32gzd3lkwkrbr8v"))))
2398 (build-system emacs-build-system)
2399 (home-page "https://github.com/Malabarba/rich-minority")
2400 (synopsis "Clean-up and beautify the list of minor modes")
2401 (description
2402 "This Emacs package hides and/or highlights minor modes in the
2403mode-line.")
2404 (license license:gpl2+)))
2405
2406(define-public emacs-robe
2407 (package
2408 (name "emacs-robe")
2409 (version "0.8.1")
2410 (source
2411 (origin
2412 (method url-fetch)
2413 (uri (string-append "https://github.com/dgutov/robe/"
2414 "archive/" version ".tar.gz"))
2415 (file-name (string-append name "-" version ".tar.gz"))
2416 (sha256
2417 (base32
2418 "1vp45y99fwj88z04ah4yppz4z568qcib646az6m9az5ar0f203br"))))
2419 (build-system emacs-build-system)
2420 (arguments
2421 '(#:include (cons "^lib\\/" %default-include)))
2422 (propagated-inputs
2423 `(("emacs-inf-ruby" ,emacs-inf-ruby)))
2424 (home-page "https://github.com/dgutov/robe")
2425 (synopsis "Ruby code assistance tool for Emacs")
2426 (description
2427 "Robe can provide information on loaded classes and modules in Ruby code,
2428as well as where methods are defined. This allows the user to jump to method
2429definitions, modules and classes, display method documentation and provide
2430method and constant name completion.")
2431 (license license:gpl3+)))
2432
2433(define-public emacs-rspec
2434 (package
2435 (name "emacs-rspec")
2436 (version "1.11")
2437 (source
2438 (origin
2439 (method url-fetch)
2440 (uri (string-append "https://github.com/pezra/rspec-mode/"
2441 "archive/v" version ".tar.gz"))
2442 (file-name (string-append name "-" version ".tar.gz"))
2443 (sha256
2444 (base32
2445 "1j0a7ms5516nlg60qfyn730pfxys6acm0rgyxh5xfkpi6jafgpvw"))))
2446 (build-system emacs-build-system)
2447 (home-page "https://github.com/pezra/rspec-mode")
2448 (synopsis "Provides a rspec mode for working with RSpec")
2449 (description
2450 "The Emacs RSpec mode provides keybindings for Ruby source files, e.g. to
2451verify the spec associated with the current buffer, or entire project, as well
2452as moving between the spec files, and coresponding code files.
2453
2454Also included are keybindings for spec files and Dired buffers, as well as
2455snippets for yasnippet.")
2456 (license license:gpl3+)))
2457
2458(define-public emacs-smart-mode-line
2459 (package
2460 (name "emacs-smart-mode-line")
2461 (version "2.12.0")
2462 (source
2463 (origin
2464 (method url-fetch)
2465 (uri (string-append "https://github.com/Malabarba/smart-mode-line/"
2466 "archive/" version ".tar.gz"))
2467 (file-name (string-append name "-" version ".tar.gz"))
2468 (sha256
2469 (base32
2470 "1hn8s6laijmg7w1bgwdfrki6h9vxkbgr8rmmssvd5yqyad5w2sba"))))
2471 (build-system emacs-build-system)
2472 (propagated-inputs
2473 `(("emacs-rich-minority" ,emacs-rich-minority)))
2474 (home-page "https://github.com/Malabarba/smart-mode-line")
2475 (synopsis "Color-coded smart mode-line")
2476 (description
2477 "Smart Mode Line is a mode-line theme for Emacs. It aims to be easy to
2478read from small to large monitors by using colors, a prefix feature, and smart
2479truncation.")
2480 (license license:gpl2+)))
2481
2482(define-public emacs-sr-speedbar
2483 (let ((commit "77a83fb50f763a465c021eca7343243f465b4a47")
2484 (revision "0"))
2485 (package
2486 (name "emacs-sr-speedbar")
2487 (version (git-version "20161025" revision commit))
2488 (source
2489 (origin
2490 (method git-fetch)
2491 (uri (git-reference
2492 (url "https://github.com/emacsorphanage/sr-speedbar.git")
2493 (commit commit)))
2494 (file-name (git-file-name name version))
2495 (sha256
2496 (base32
2497 "0sd12555hk7z721y00kv3crdybvcn1i08wmd148z5imayzibj153"))))
2498 (build-system emacs-build-system)
2499 (home-page "https://www.emacswiki.org/emacs/SrSpeedbar")
2500 (synopsis "Same frame Emacs @code{speedbar}")
2501 (description
2502 "This Emacs package allows you to show @code{M-x speedbar} in the
2503same frame (in an extra window). You can customize the initial width of
2504the speedbar window.")
2505 (license license:gpl3+))))
2506
2507(define-public emacs-shell-switcher
2508 (package
2509 (name "emacs-shell-switcher")
2510 (version "1.0.1")
2511 (source
2512 (origin
2513 (method url-fetch)
2514 (uri (string-append "https://github.com/DamienCassou/shell-switcher"
2515 "/archive/v" version ".tar.gz"))
2516 (file-name (string-append name "-" version ".tar.gz"))
2517 (sha256
2518 (base32
2519 "1c23mfkdqz2g9rixd9smm323vzlvhzz3ng34ambcqjfq309qb2nz"))))
2520 (build-system emacs-build-system)
2521 (home-page "https://github.com/DamienCassou/shell-switcher")
2522 (synopsis "Provide fast switching between shell buffers")
2523 (description
2524 "This package provides commands to quickly switch between shell buffers.")
2525 (license license:gpl3+)))
2526
2527(define-public emacs-ob-ipython
2528 (package
2529 (name "emacs-ob-ipython")
2530 (version "20150704.8807064693")
2531 (source (origin
2532 (method git-fetch)
2533 (uri (git-reference
2534 (commit "880706469338ab59b5bb7dbe8460016f89755364")
2535 (url "https://github.com/gregsexton/ob-ipython.git")))
2536 (file-name (string-append name "-" version "-checkout"))
2537 (sha256
2538 (base32
2539 "1scf25snbds9ymagpny30ijbsg479r3nm0ih01dy4m9d0g7qryb7"))))
2540 (build-system emacs-build-system)
2541 (propagated-inputs
2542 `(("emacs-f" ,emacs-f)))
2543 (home-page "http://www.gregsexton.org")
2544 (synopsis "Org-Babel functions for IPython evaluation")
2545 (description "This package adds support to Org-Babel for evaluating Python
2546source code using IPython.")
2547 (license license:gpl3+)))
2548
2549(define-public emacs-debbugs
2550 (package
2551 (name "emacs-debbugs")
2552 (version "0.16")
2553 (source (origin
2554 (method url-fetch)
2555 (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
2556 version ".tar"))
2557 (sha256
2558 (base32
2559 "0y3bq803c7820h15g66d1648skxfhlfa2v6vincj6xk5ssp44s9p"))))
2560 (build-system emacs-build-system)
2561 (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
2562 (propagated-inputs
2563 `(("emacs-async" ,emacs-async)))
2564 (home-page "https://elpa.gnu.org/packages/debbugs.html")
2565 (synopsis "Access the Debbugs bug tracker in Emacs")
2566 (description
2567 "This package lets you access the @uref{http://bugs.gnu.org,GNU Bug
2568Tracker} from within Emacs.
2569
2570For instance, it defines the command @code{M-x debbugs-gnu} for listing bugs,
2571and the command @code{M-x debbugs-gnu-search} for bug searching. If you
2572prefer the listing of bugs as TODO items of @code{org-mode}, you could use
2573@code{M-x debbugs-org} and related commands.
2574
2575A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug
2576Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.")
2577 (license license:gpl3+)))
2578
2579(define-public emacs-ert-expectations
2580 (package
2581 (name "emacs-ert-expectations")
2582 (version "0.2")
2583 (source
2584 (origin
2585 (method url-fetch)
2586 (uri "https://www.emacswiki.org/emacs/download/ert-expectations.el")
2587 (sha256
2588 (base32
2589 "0cwy3ilsid90abzzjb7ha2blq9kmv3gfp3icwwfcz6qczgirq6g7"))))
2590 (build-system emacs-build-system)
2591 (home-page "https://www.emacswiki.org/emacs/ert-expectations.el")
2592 (synopsis "Simple unit test framework for Emacs Lisp")
2593 (description "@code{emacs-ert-expectations} is a simple unit test
2594framework for Emacs Lisp to be used with @code{ert}.")
2595 (license license:gpl3+)))
2596
2597(define-public emacs-deferred
2598 (package
2599 (name "emacs-deferred")
2600 (version "0.5.1")
2601 (home-page "https://github.com/kiwanami/emacs-deferred")
2602 (source (origin
2603 (method git-fetch)
2604 (uri (git-reference
2605 (url home-page)
2606 (commit (string-append "v" version))))
2607 (sha256
2608 (base32
2609 "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"))
2610 (file-name (string-append name "-" version))))
2611 (build-system emacs-build-system)
2612 (arguments
2613 `(#:phases
2614 (modify-phases %standard-phases
2615 (add-after 'unpack 'set-shell
2616 ;; Setting the SHELL environment variable is required for the tests
2617 ;; to find sh.
2618 (lambda _
2619 (setenv "SHELL" (which "sh"))
2620 #t))
2621 (add-before 'check 'fix-makefile
2622 (lambda _
2623 (substitute* "Makefile"
2624 (("\\$\\(CASK\\) exec ") ""))
2625 #t)))
2626 #:tests? #t
2627 #:test-command '("make" "test")))
2628 (native-inputs
2629 `(("emacs-ert-expectations" ,emacs-ert-expectations)
2630 ("emacs-undercover" ,emacs-undercover)
2631 ("ert-runner" ,emacs-ert-runner)))
2632 (synopsis "Simple asynchronous functions for Emacs Lisp")
2633 (description
2634 "The @code{deferred.el} library provides support for asynchronous tasks.
2635The API is almost the same as that of
2636@uref{https://github.com/cho45/jsdeferred, JSDeferred}, a JavaScript library
2637for asynchronous tasks.")
2638 (license license:gpl3+)))
2639
2640(define-public emacs-butler
2641 (package
2642 (name "emacs-butler")
2643 (version "0.2.4")
2644 (home-page "https://github.com/AshtonKem/Butler")
2645 (source (origin
2646 (method git-fetch)
2647 (uri (git-reference
2648 (url home-page)
2649 (commit version)))
2650 (sha256
2651 (base32
2652 "1pii9dw4skq7nr4na6qxqasl36av8cwjp71bf1fgppqpcd9z8skj"))
2653 (file-name (string-append name "-" version))))
2654 (build-system emacs-build-system)
2655 (propagated-inputs
2656 `(("emacs-deferred" ,emacs-deferred)))
2657 (synopsis "Emacs client for Jenkins")
2658 (description
2659 "Butler provides an interface to connect to Jenkins continuous
2660integration servers. Users can specify a list of server in the
2661@code{butler-server-list} variable and then use @code{M-x butler-status} to
2662view the build status of those servers' build jobs, and possibly to trigger
2663build jobs.")
2664 (license license:gpl3+)))
2665
2666(define-public emacs-company
2667 (package
2668 (name "emacs-company")
2669 (version "0.9.7")
2670 (source
2671 (origin
2672 (method url-fetch)
2673 (uri (string-append "https://github.com/company-mode/company-mode/archive/"
2674 version ".tar.gz"))
2675 (file-name (string-append name "-" version ".tar.gz"))
2676 (sha256
2677 (base32
2678 "19flv38f2qhxda8lbk2ckywvibd72vbzmn4hchqz6d8acsknh4sb"))))
2679 (build-system emacs-build-system)
2680 (arguments
2681 `(#:phases
2682 (modify-phases %standard-phases
2683 (add-before 'check 'fix-bin-dir
2684 (lambda _
2685 ;; The company-files-candidates-normal-root test looks
2686 ;; for the /bin directory, but the build environment has
2687 ;; no /bin directory. Modify the test to look for the
2688 ;; /tmp directory.
2689 (substitute* "test/files-tests.el"
2690 (("/bin/") "/tmp/"))
2691 #t)))
2692 #:tests? #t
2693 #:test-command '("make" "test-batch")))
2694 (home-page "http://company-mode.github.io/")
2695 (synopsis "Modular text completion framework")
2696 (description
2697 "Company is a modular completion mechanism. Modules for retrieving
2698completion candidates are called back-ends, modules for displaying them are
2699front-ends. Company comes with many back-ends, e.g. @code{company-elisp}.
2700These are distributed in separate files and can be used individually.")
2701 (license license:gpl3+)))
2702
2703(define-public emacs-irony-mode
2704 (package
2705 (name "emacs-irony-mode")
2706 (version "1.2.0")
2707 (home-page "https://github.com/Sarcasm/irony-mode")
2708 (source (origin
2709 (method git-fetch)
2710 (uri (git-reference
2711 (url (string-append home-page ".git"))
2712 (commit (string-append "v" version))))
2713 (sha256
2714 (base32
2715 "0nhjrnlmss535jbshjjd30vydbr8py21vkx4p294w6d8vg2rssf8"))
2716 (file-name (string-append name "-" version ".tar.gz"))))
2717 (build-system emacs-build-system)
2718 (inputs `(("server" ,emacs-irony-mode-server)))
2719 (arguments `(#:phases
2720 (modify-phases %standard-phases
2721 (add-after 'unpack 'configure
2722 (lambda* (#:key inputs #:allow-other-keys)
2723 (chmod "irony.el" #o644)
2724 (emacs-substitute-variables "irony.el"
2725 ("irony-server-install-prefix"
2726 (assoc-ref inputs "server")))
2727 #t)))))
2728 (synopsis "C/C++/ObjC Code completion and syntax checks for Emacs")
2729 (description "Irony-mode provides Clang-assisted syntax checking and
2730completion for C, C++, and ObjC in GNU Emacs. Using @code{libclang} it can
2731provide syntax checking and autocompletion on compiler level which is very
2732resistent against false positives. It also integrates well with other
2733packages like @code{eldoc-mode} and especially @code{company-mode} as
2734described on the homepage.")
2735 (license license:gpl3+)))
2736
2737(define-public emacs-irony-mode-server
2738 (package (inherit emacs-irony-mode)
2739 (name "emacs-irony-mode-server")
2740 (inputs
2741 `(("clang" ,clang)))
2742 (arguments
2743 `(#:phases
2744 (modify-phases %standard-phases
2745 (replace 'configure
2746 (lambda* (#:key outputs #:allow-other-keys)
2747 (let ((out (assoc-ref outputs "out")))
2748 (invoke "cmake"
2749 "server"
2750 (string-append "-DCMAKE_INSTALL_PREFIX=" out)) #t))))))
2751 (build-system cmake-build-system)
2752 (synopsis "Server for the Emacs @dfn{irony mode}")))
2753
2754(define-public emacs-company-irony
2755 (package
2756 (name "emacs-company-irony")
2757 (version "1.1.0")
2758 (source (origin
2759 (method git-fetch)
2760 (uri (git-reference
2761 (url "https://github.com/Sarcasm/company-irony.git")
2762 (commit (string-append "v" version))))
2763 (sha256 (base32
2764 "1qgyam2vyjw90kpxns5cd6bq3qiqjhzpwrlvmi18vyb69qcgqd8a"))
2765 (file-name (git-file-name name version))))
2766 (build-system emacs-build-system)
2767 (inputs
2768 `(("emacs-irony-mode" ,emacs-irony-mode)
2769 ("emacs-company" ,emacs-company)))
2770 (synopsis "C++ completion backend for Company using irony-mode")
2771 (description "This backend for company-mode allows for C++ code completion
2772with irony-mode using clang-tooling.")
2773 (home-page "https://github.com/Sarcasm/company-irony")
2774 (license license:gpl3+)))
2775
2776(define-public emacs-flycheck-irony
2777 (package
2778 (name "emacs-flycheck-irony")
2779 (version "0.1.0")
2780 (source (origin
2781 (method git-fetch)
2782 (uri (git-reference
2783 (url "https://github.com/Sarcasm/flycheck-irony.git")
2784 (commit (string-append "v" version))))
2785 (sha256
2786 (base32 "0qa5a8wzvzxwqql92ibc9s43k8sj3vwn7skz9hfr8av0skkhx996"))
2787 (file-name (string-append name "-" version))))
2788 (build-system emacs-build-system)
2789 (inputs
2790 `(("irony-mode" ,emacs-irony-mode)
2791 ("flycheck-mode" ,emacs-flycheck)
2792 ("emacs-company" ,emacs-company)))
2793 (synopsis "Live syntax checking frontend for Flycheck using irony-mode")
2794 (description "This package provides a frontend for Flycheck that lets
2795irony-mode do the syntax checking.")
2796 (home-page "https://github.com/Sarcasm/flycheck-irony")
2797 (license license:gpl3+)))
2798
2799(define-public emacs-irony-eldoc
2800 (package
2801 (name "emacs-irony-eldoc")
2802 (version (package-version emacs-irony-mode))
2803 (source
2804 (origin
2805 (method git-fetch)
2806 (uri (git-reference
2807 (url "https://github.com/ikirill/irony-eldoc.git")
2808 (commit "0df5831eaae264a25422b061eb2792aadde8b3f2")))
2809 (sha256 (base32 "1l5qpr66v1l12fb50yh73grb2rr85xxmbj19mm33b5rdrq2bqmmd"))
2810 (file-name (string-append name "-" version))))
2811 (build-system emacs-build-system)
2812 (inputs
2813 `(("irony-mode" ,emacs-irony-mode)))
2814 (synopsis "Eldoc integration for irony-mode")
2815 (description "Irony-eldoc is an eldoc extension that shows documentation
2816for the current function or variable in the minibuffer.")
2817 (home-page "https://github.com/ikirill/irony-eldoc")
2818 (license license:gpl3+)))
2819
2820(define-public emacs-company-quickhelp
2821 (package
2822 (name "emacs-company-quickhelp")
2823 (version "2.3.0")
2824 (source
2825 (origin
2826 (method url-fetch)
2827 (uri (string-append
2828 "https://github.com/expez/company-quickhelp/archive/"
2829 version ".tar.gz"))
2830 (file-name (string-append name "-" version ".tar.gz"))
2831 (sha256
2832 (base32
2833 "0xrn2z1dgk5gmkmp2jkn9g83ckk39lqp5pyyv8rl7f6gqvib3qh0"))))
2834 (build-system emacs-build-system)
2835 (propagated-inputs
2836 `(("emacs-pos-tip" ,emacs-pos-tip)
2837 ("emacs-company" ,emacs-company)))
2838 (home-page "https://github.com/expez/company-quickhelp")
2839 (synopsis "Popup documentation for completion candidates")
2840 (description "@code{company-quickhelp} shows documentation for the
2841completion candidate when using the Company text completion framework.")
2842 (license license:gpl3+)))
2843
2844(define-public emacs-multiple-cursors
2845 (package
2846 (name "emacs-multiple-cursors")
2847 (version "1.4.0")
2848 (source
2849 (origin
2850 (method url-fetch)
2851 (uri (string-append "https://github.com/magnars/multiple-cursors.el/"
2852 "archive/" version ".tar.gz"))
2853 (file-name (string-append name "-" version ".tar.gz"))
2854 (sha256
2855 (base32
2856 "0hihihlvcvzayg5fnqzcg45fhvlmq6xlq58syy00rjwbry9w389k"))))
2857 (build-system emacs-build-system)
2858 (home-page "https://github.com/magnars/multiple-cursors.el")
2859 (synopsis "Multiple cursors for Emacs")
2860 (description
2861 "This package adds support to Emacs for editing text with multiple
2862simultaneous cursors.")
2863 (license license:gpl3+)))
2864
2865(define-public emacs-typo
2866 (package
2867 (name "emacs-typo")
2868 (version "1.1")
2869 (home-page "https://github.com/jorgenschaefer/typoel")
2870 (source (origin
2871 (method git-fetch)
2872 (uri (git-reference
2873 (url home-page)
2874 (commit (string-append "v" version))))
2875 (sha256
2876 (base32
2877 "1jhd4grch5iz12gyxwfbsgh4dmz5hj4bg4gnvphccg8dsnni05k2"))
2878 (file-name (string-append name "-" version))))
2879 (build-system emacs-build-system)
2880 (synopsis "Minor mode for typographic editing")
2881 (description
2882 "This package provides two Emacs modes, @code{typo-mode} and
2883@code{typo-global-mode}. These modes automatically insert Unicode characters
2884for quotation marks, dashes, and ellipses. For example, typing @kbd{\"}
2885automatically inserts a Unicode opening or closing quotation mark, depending
2886on context.")
2887 (license license:gpl3+)))
2888
2889(define-public emacs-scheme-complete
2890 (let ((commit "9b5cf224bf2a5994bc6d5b152ff487517f1a9bb5"))
2891 (package
2892 (name "emacs-scheme-complete")
2893 (version (string-append "20151223." (string-take commit 8)))
2894 (source
2895 (origin
2896 (file-name (string-append name "-" version))
2897 (method git-fetch)
2898 (uri (git-reference
2899 (url "https://github.com/ashinn/scheme-complete.git")
2900 (commit commit)))
2901 (sha256
2902 (base32
2903 "141wn9l0m33w0g3dqmx8nxbfdny1r5xbr6ak61rsz21bk0qafs7x"))
2904 (patches
2905 (search-patches "emacs-scheme-complete-scheme-r5rs-info.patch"))))
2906 (build-system emacs-build-system)
2907 (home-page "https://github.com/ashinn/scheme-complete")
2908 (synopsis "Smart tab completion for Scheme in Emacs")
2909 (description
2910 "This file provides a single function, @code{scheme-smart-complete},
2911which you can use for intelligent, context-sensitive completion for any Scheme
2912implementation in Emacs. To use it just load this file and bind that function
2913to a key in your preferred mode.")
2914 (license license:public-domain))))
2915
2916(define-public emacs-scel
2917 (let ((version "20170629")
2918 (revision "1")
2919 (commit "aeea3ad4be9306d14c3a734a4ff54fee10ac135b"))
2920 (package
2921 (name "emacs-scel")
2922 (version (git-version version revision commit))
2923 (source
2924 (origin
2925 (method git-fetch)
2926 (uri (git-reference
2927 (url "https://github.com/supercollider/scel.git")
2928 (commit commit)))
2929 (file-name (string-append name "-" version "-checkout"))
2930 (sha256
2931 (base32
2932 "0jvmzs1lsjyndqshhii2y4mnr3wghai26i3p75453zrpxpg0zvvw"))))
2933 (build-system emacs-build-system)
2934 (arguments
2935 `(#:modules ((guix build emacs-build-system)
2936 ((guix build cmake-build-system) #:prefix cmake:)
2937 (guix build utils))
2938 #:imported-modules (,@%emacs-build-system-modules
2939 (guix build cmake-build-system))
2940 #:phases
2941 (modify-phases %standard-phases
2942 (add-after 'unpack 'configure
2943 (lambda* (#:key outputs #:allow-other-keys)
2944 (substitute* "el/CMakeLists.txt"
2945 (("share/emacs/site-lisp/SuperCollider")
2946 (string-append
2947 "share/emacs/site-lisp/guix.d/scel-" ,version)))
2948 ((assoc-ref cmake:%standard-phases 'configure)
2949 #:outputs outputs
2950 #:configure-flags '("-DSC_EL_BYTECOMPILE=OFF"))))
2951 (add-after 'set-emacs-load-path 'add-el-dir-to-emacs-load-path
2952 (lambda _
2953 (setenv "EMACSLOADPATH"
2954 (string-append (getcwd) "/el:" (getenv "EMACSLOADPATH")))
2955 #t))
2956 (replace 'install (assoc-ref cmake:%standard-phases 'install)))))
2957 (inputs
2958 `(("supercollider" ,supercollider)))
2959 (native-inputs
2960 `(("cmake" ,cmake)))
2961 (home-page "https://github.com/supercollider/scel")
2962 (synopsis "SuperCollider Emacs interface")
2963 (description "@code{emacs-scel} is an Emacs interface to SuperCollider.
2964SuperCollider is a platform for audio synthesis and algorithmic composition.")
2965 (license license:gpl2+))))
2966
2967(define-public emacs-mit-scheme-doc
2968 (package
2969 (name "emacs-mit-scheme-doc")
2970 (version "20140203")
2971 (source
2972 (origin
2973 (modules '((guix build utils)))
2974 (snippet
2975 ;; keep only file of interest
2976 '(begin
2977 (for-each delete-file '("dot-emacs.el" "Makefile"))
2978 (install-file "6.945-config/mit-scheme-doc.el" ".")
2979 (delete-file-recursively "6.945-config")
2980 #t))
2981 (file-name (string-append name "-" version ".tar.bz2"))
2982 (method url-fetch)
2983 (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/"
2984 "6.945/dont-panic/emacs-basic-config.tar.bz2"))
2985 (sha256
2986 (base32
2987 "0dqidg2bd66pawqfarvwca93w5gqf9mikn1k2a2rmd9ymfjpziq1"))))
2988 (build-system emacs-build-system)
2989 (inputs `(("mit-scheme" ,mit-scheme)))
2990 (arguments
2991 `(#:phases
2992 (modify-phases %standard-phases
2993 (add-after 'unpack 'configure-doc
2994 (lambda* (#:key inputs #:allow-other-keys)
2995 (let* ((mit-scheme-dir (assoc-ref inputs "mit-scheme"))
2996 (doc-dir (string-append mit-scheme-dir "/share/doc/"
2997 "mit-scheme-"
2998 ,(package-version mit-scheme))))
2999 (substitute* "mit-scheme-doc.el"
3000 (("http://www\\.gnu\\.org/software/mit-scheme/documentation/mit-scheme-ref/")
3001 (string-append "file:" doc-dir "/mit-scheme-ref/")))))))))
3002 (home-page "http://groups.csail.mit.edu/mac/users/gjs/6.945/dont-panic/")
3003 (synopsis "MIT-Scheme documentation lookup for Emacs")
3004 (description
3005 "This package provides a set of Emacs functions to search definitions of
3006identifiers in the MIT-Scheme documentation.")
3007 (license license:gpl2+)))
3008
3009(define-public emacs-constants
3010 (package
3011 (name "emacs-constants")
3012 (version "2.6")
3013 (home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
3014 (source
3015 (origin
3016 (file-name (string-append name "-" version ".tar.gz"))
3017 (method url-fetch)
3018 (uri (string-append "https://github.com/fedeinthemix/emacs-constants"
3019 "/archive/v" version ".tar.gz"))
3020 (sha256
3021 (base32
3022 "0pnrpmmxq8mh5h2hbrp5vcym0j0fh6dv3s7c5ccn18wllhzg9g7n"))))
3023 (build-system emacs-build-system)
3024 (synopsis "Enter definition of constants into an Emacs buffer")
3025 (description
3026 "This package provides functions for inserting the definition of natural
3027constants and units into an Emacs buffer.")
3028 (license license:gpl2+)))
3029
3030(define-public emacs-tagedit
3031 (package
3032 (name "emacs-tagedit")
3033 (version "1.4.0")
3034 (source
3035 (origin
3036 (method url-fetch)
3037 (uri (string-append "https://github.com/magnars/tagedit/"
3038 "archive/" version ".tar.gz"))
3039 (file-name (string-append name "-" version ".tar.gz"))
3040 (sha256
3041 (base32
3042 "1apfnann4qklfdsmdi7icjsj18x7gwx8d83iqr4z25clszz95xfq"))))
3043 (build-system emacs-build-system)
3044 (propagated-inputs
3045 `(("emacs-s" ,emacs-s)
3046 ("emacs-dash" ,emacs-dash)))
3047 (home-page "https://github.com/magnars/tagedit")
3048 (synopsis "Some paredit-like features for html-mode")
3049 (description
3050 "This package provides a collection of paredit-like functions for editing
3051in @code{html-mode}.")
3052 (license license:gpl3+)))
3053
3054(define-public emacs-slime
3055 (package
3056 (name "emacs-slime")
3057 (version "2.22")
3058 (source
3059 (origin
3060 (file-name (string-append name "-" version ".tar.gz"))
3061 (method url-fetch)
3062 (uri (string-append
3063 "https://github.com/slime/slime/archive/v"
3064 version ".tar.gz"))
3065 (sha256
3066 (base32
3067 "07vaib1n4zyh5yy30gdpq0bc5cv6w84piml5b3mfc9ibjhaykkms"))))
3068 (build-system emacs-build-system)
3069 (native-inputs
3070 `(("texinfo" ,texinfo)))
3071 (arguments
3072 `(#:include '("\\.el$" "\\.lisp$" "\\.asd$" "contrib")
3073 #:exclude '("^slime-tests.el" "^contrib/test/"
3074 "^contrib/Makefile$" "^contrib/README.md$")
3075 #:phases
3076 (modify-phases %standard-phases
3077 (add-before 'install 'configure
3078 (lambda* _
3079 (emacs-substitute-variables "slime.el"
3080 ("inferior-lisp-program" "sbcl"))
3081 #t))
3082 (add-before 'install 'install-doc
3083 (lambda* (#:key outputs #:allow-other-keys)
3084 (let* ((out (assoc-ref outputs "out"))
3085 (info-dir (string-append out "/share/info"))
3086 (doc-dir (string-append out "/share/doc/"
3087 ,name "-" ,version))
3088 (doc-files '("doc/slime-refcard.pdf"
3089 "README.md" "NEWS" "PROBLEMS"
3090 "CONTRIBUTING.md")))
3091 (with-directory-excursion "doc"
3092 (substitute* "Makefile"
3093 (("infodir=/usr/local/info")
3094 (string-append "infodir=" info-dir)))
3095 (invoke "make" "html/index.html")
3096 (invoke "make" "slime.info")
3097 (install-file "slime.info" info-dir)
3098 (copy-recursively "html" (string-append doc-dir "/html")))
3099 (for-each (lambda (f)
3100 (install-file f doc-dir)
3101 (delete-file f))
3102 doc-files)
3103 (delete-file-recursively "doc")
3104 #t))))))
3105 (home-page "https://github.com/slime/slime")
3106 (synopsis "Superior Lisp Interaction Mode for Emacs")
3107 (description
3108 "SLIME extends Emacs with support for interactive programming in
3109Common Lisp. The features are centered around @command{slime-mode},
3110an Emacs minor mode that complements the standard @command{lisp-mode}.
3111While lisp-mode supports editing Lisp source files, @command{slime-mode}
3112adds support for interacting with a running Common Lisp process
3113for compilation, debugging, documentation lookup, and so on.")
3114 (license (list license:gpl2+ license:public-domain))))
3115
3116(define-public emacs-popup
3117 (package
3118 (name "emacs-popup")
3119 (version "0.5.3")
3120 (source (origin
3121 (method url-fetch)
3122 (uri (string-append
3123 "https://github.com/auto-complete/popup-el/archive/v"
3124 version ".tar.gz"))
3125 (file-name (string-append name "-" version ".tar.gz"))
3126 (sha256
3127 (base32
3128 "1yrgfj8y69xmcb6kwgplhq68ndm9410qwh7sd2knnd1gchpphdc0"))))
3129 (build-system emacs-build-system)
3130 (home-page "https://github.com/auto-complete/popup-el")
3131 (synopsis "Visual Popup User Interface for Emacs")
3132 (description
3133 "Popup.el is a visual popup user interface library for Emacs.
3134This provides a basic API and common UI widgets such as popup tooltips
3135and popup menus.")
3136 (license license:gpl3+)))
3137
3138(define-public emacs-puppet-mode
3139 (let ((commit "b3ed5057166a4f49dfa9be638523a348b55a2fd2")
3140 (revision "1"))
3141 (package
3142 (name "emacs-puppet-mode")
3143 ;; The last release, 0.3 was several years ago, and there have been many
3144 ;; commits since
3145 (version (git-version "0.3" revision commit))
3146 (source
3147 (origin
3148 (method url-fetch)
3149 (uri (string-append
3150 "https://raw.githubusercontent.com/voxpupuli/puppet-mode/"
3151 commit "/puppet-mode.el"))
3152 (sha256
3153 (base32
3154 "1indycxawsl0p2aqqg754f6735q3cmah9vd886rpn0ncc3ipi1xm"))))
3155 (build-system emacs-build-system)
3156 (home-page "https://github.com/voxpupuli/puppet-mode")
3157 (synopsis "Emacs major mode for the Puppet configuration language")
3158 (description
3159 "This package provides support for the Puppet configuration language,
3160including syntax highlighting, indentation of expressions and statements,
3161linting of manifests and integration with Puppet Debugger.")
3162 ;; Also incorporates work covered by the Apache License, Version 2.0
3163 (license license:gpl3+))))
3164
3165(define-public emacs-god-mode
3166 (let ((commit "6cf0807b6555eb6fcf8387a4e3b667071ef38964")
3167 (revision "1"))
3168 (package
3169 (name "emacs-god-mode")
3170 (version (string-append "20151005.925."
3171 revision "-" (string-take commit 9)))
3172 (source
3173 (origin
3174 (method git-fetch)
3175 (uri (git-reference
3176 (url "https://github.com/chrisdone/god-mode.git")
3177 (commit commit)))
3178 (file-name (string-append name "-" version "-checkout"))
3179 (sha256
3180 (base32
3181 "1am415k4xxcva6y3vbvyvknzc6bma49pq3p85zmpjsdmsp18qdix"))))
3182 (build-system emacs-build-system)
3183 (home-page "https://github.com/chrisdone/god-mode")
3184 (synopsis "Minor mode for entering commands without modifier keys")
3185 (description
3186 "This package provides a global minor mode for entering Emacs commands
3187without modifier keys. It's similar to Vim's separation of commands and
3188insertion mode. When enabled all keys are implicitly prefixed with
3189@samp{C-} (among other helpful shortcuts).")
3190 (license license:gpl3+))))
3191
3192(define-public emacs-jinja2-mode
3193 (package
3194 (name "emacs-jinja2-mode")
3195 (version "0.2")
3196 (source
3197 (origin
3198 (method url-fetch)
3199 (uri (string-append "https://github.com/paradoxxxzero/jinja2-mode/"
3200 "archive/v" version ".tar.gz"))
3201 (file-name (string-append name "-" version ".tar.gz"))
3202 (sha256
3203 (base32
3204 "0cgxjab1kla2zc2fj7bzib6i7snp08zshandmp9kqcm85l262xpn"))))
3205 (build-system emacs-build-system)
3206 (home-page "https://github.com/paradoxxxzero/jinja2-mode")
3207 (synopsis "Major mode for jinja2")
3208 (description
3209 "Emacs major mode for jinja2 with: syntax highlighting,
3210sgml/html integration, and indentation (working with sgml).")
3211 (license license:gpl3+)))
3212
3213(define-public emacs-rfcview
3214 (package
3215 (name "emacs-rfcview")
3216 (version "0.13")
3217 (home-page "http://www.loveshack.ukfsn.org/emacs")
3218 (source (origin
3219 (method url-fetch)
3220 (uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el")
3221 (sha256
3222 (base32
3223 "0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz"))))
3224 (build-system emacs-build-system)
3225 (synopsis "Prettify Request for Comments (RFC) documents")
3226 (description "The Internet Engineering Task Force (IETF) and the Internet
3227Society (ISOC) publish various Internet-related protocols and specifications
3228as \"Request for Comments\" (RFC) documents and Internet Standard (STD)
3229documents. RFCs and STDs are published in a simple text form. This package
3230provides an Emacs major mode, rfcview-mode, which makes it more pleasant to
3231read these documents in Emacs. It prettifies the text and adds
3232hyperlinks/menus for easier navigation. It also provides functions for
3233browsing the index of RFC documents and fetching them from remote servers or
3234local directories.")
3235 (license license:gpl3+)))
3236
3237(define-public emacs-ffap-rfc-space
3238 (package
3239 (name "emacs-ffap-rfc-space")
3240 (version "12")
3241 (home-page "http://user42.tuxfamily.org/ffap-rfc-space/index.html")
3242 (source (origin
3243 (method url-fetch)
3244 (uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el")
3245 (sha256
3246 (base32
3247 "1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck"))))
3248 (build-system emacs-build-system)
3249 (synopsis "Make ffap recognize an RFC with a space before its number")
3250 (description "The Internet Engineering Task Force (IETF) and the
3251Internet Society (ISOC) publish various Internet-related protocols and
3252specifications as \"Request for Comments\" (RFC) documents. The
3253built-in Emacs module \"ffap\" (Find File at Point) has the ability to
3254recognize names at point which look like \"RFC1234\" and \"RFC-1234\"
3255and load the appropriate RFC from a remote server. However, it fails
3256to recognize a name like \"RFC 1234\". This package enhances ffap so
3257that it correctly finds RFCs even when a space appears before the
3258number.")
3259 (license license:gpl3+)))
3260
3261(define-public emacs-org-bullets
3262 (package
3263 (name "emacs-org-bullets")
3264 (version "0.2.4")
3265 (source
3266 (origin
3267 (method url-fetch)
3268 (uri (string-append "https://github.com/sabof/org-bullets/archive/"
3269 version ".tar.gz"))
3270 (file-name (string-append name "-" version ".tar.gz"))
3271 (sha256
3272 (base32
3273 "1dyxvpb73vj80v8br2q9rf255hfphrgaw91fbvwdcd735np9pcnh"))))
3274 (build-system emacs-build-system)
3275 (home-page "https://github.com/sabof/org-bullets")
3276 (synopsis "Show bullets in org-mode as UTF-8 characters")
3277 (description
3278 "This package provides an Emacs minor mode causing bullets in
3279@code{org-mode} to be rendered as UTF-8 characters.")
3280 (license license:gpl3+)))
3281
3282(define-public emacs-org-pomodoro
3283 (package
3284 (name "emacs-org-pomodoro")
3285 (version "2.1.0")
3286 (source
3287 (origin
3288 (method url-fetch)
3289 (uri (string-append
3290 "https://github.com/lolownia/org-pomodoro/archive/"
3291 version ".tar.gz"))
3292 (file-name (string-append name "-" version ".tar.gz"))
3293 (sha256
3294 (base32
3295 "1jalsggw3q5kvj353f84x4nl04a5vmq07h75ggppy1627lb31zm4"))))
3296 (build-system emacs-build-system)
3297 (propagated-inputs
3298 `(("emacs-alert" ,emacs-alert)))
3299 (home-page "https://github.com/lolownia/org-pomodoro")
3300 (synopsis "Pomodoro technique for org-mode")
3301 (description "@code{emacs-org-pomodoro} adds very basic support for
3302Pomodoro technique in Emacs org-mode.
3303
3304Run @code{M-x org-pomodoro} for the task at point or select one of the
3305last tasks that you clocked time for. Each clocked-in pomodoro starts
3306a timer of 25 minutes and after each pomodoro a break timer of 5
3307minutes is started automatically. Every 4 breaks a long break is
3308started with 20 minutes. All values are customizable.")
3309 (license license:gpl3+)))
3310
3311(define-public emacs-org-trello
3312 (package
3313 (name "emacs-org-trello")
3314 (version "0.8.0")
3315 (source (origin
3316 (method url-fetch)
3317 (uri (string-append
3318 "https://github.com/org-trello/org-trello/archive/"
3319 version ".tar.gz"))
3320 (file-name (string-append name "-" version ".tar.gz"))
3321 (sha256
3322 (base32
3323 "0549mnf5cgwn8b8jbl38fljbaxmh1605sv9j8f3lsa95jhs1zpa0"))))
3324 (build-system emacs-build-system)
3325 (propagated-inputs
3326 `(("emacs-dash" ,emacs-dash)
3327 ("emacs-deferred" ,emacs-deferred)
3328 ("emacs-f" ,emacs-f)
3329 ("emacs-helm" ,emacs-helm)
3330 ("emacs-request" ,emacs-request)
3331 ("emacs-s" ,emacs-s)))
3332 (home-page "https://org-trello.github.io")
3333 (synopsis "Emacs minor mode for interacting with Trello")
3334 (description "This package provides an Emacs minor mode to extend
3335@code{org-mode} with Trello abilities. Trello is an online project
3336organizer.")
3337 (license license:gpl3+)))
3338
3339(define-public emacs-atom-one-dark-theme
3340 (let ((commit "1f1185bf667a38d3d0d180ce85fd4c131818aae2")
3341 (revision "0"))
3342 (package
3343 (name "emacs-atom-one-dark-theme")
3344 (version (git-version "0.4.0" revision commit))
3345 (source (origin
3346 (method git-fetch)
3347 (uri (git-reference
3348 (url "https://github.com/jonathanchu/atom-one-dark-theme.git")
3349 (commit commit)))
3350 (sha256
3351 (base32
3352 "1alma16hg3mfjly8a9s3mrswkjjx4lrpdnf43869hn2ibkn7zx9z"))
3353 (file-name (git-file-name name version))))
3354 (build-system emacs-build-system)
3355 (home-page "https://github.com/jonathanchu/atom-one-dark-theme")
3356 (synopsis "Atom One Dark color theme for Emacs")
3357 (description "An Emacs port of the Atom One Dark theme from Atom.io.")
3358 (license license:gpl3+))))
3359
3360(define-public emacs-zenburn-theme
3361 (package
3362 (name "emacs-zenburn-theme")
3363 (version "2.6")
3364 (source (origin
3365 (method url-fetch)
3366 (uri (string-append
3367 "https://github.com/bbatsov/zenburn-emacs/archive/v"
3368 version ".tar.gz"))
3369 (file-name (string-append name "-" version ".tar.gz"))
3370 (sha256
3371 (base32
3372 "0qc9d1rwq55yzh8shbppyd6izy1grpyr8kqh5zdgm7c5jccngpr4"))))
3373 (build-system emacs-build-system)
3374 (home-page "https://github.com/bbatsov/zenburn-emacs")
3375 (synopsis "Low contrast color theme for Emacs")
3376 (description
3377 "Zenburn theme is a port of the popular Vim Zenburn theme for Emacs.
3378It is built on top of the custom theme support in Emacs 24 or later.")
3379 (license license:gpl3+)))
3380
3381(define-public emacs-solarized-theme
3382 (package
3383 (name "emacs-solarized-theme")
3384 (version "1.2.2")
3385 (source (origin
3386 (method url-fetch)
3387 (uri (string-append "https://github.com/bbatsov/solarized-emacs/"
3388 "archive/v" version ".tar.gz"))
3389 (file-name (string-append name "-" version ".tar.gz"))
3390 (sha256
3391 (base32
3392 "1ha3slc6d9wi9ilkhmwrzkvf308n6ph7b0k69pk369s9304awxzx"))))
3393 (build-system emacs-build-system)
3394 (propagated-inputs
3395 `(("emacs-dash" ,emacs-dash)))
3396 (home-page "https://github.com/bbatsov/solarized-emacs")
3397 (synopsis "Port of the Solarized theme for Emacs")
3398 (description
3399 "Solarized for Emacs is a port of the Solarized theme for Vim. This
3400package provides a light and a dark variant.")
3401 (license license:gpl3+)))
3402
3403(define-public emacs-ahungry-theme
3404 (package
3405 (name "emacs-ahungry-theme")
3406 (version "1.10.0")
3407 (source
3408 (origin (method url-fetch)
3409 (uri (string-append "https://elpa.gnu.org/packages/ahungry-theme-"
3410 version ".tar"))
3411 (sha256
3412 (base32
3413 "14q5yw56n82qph09bk7wmj5b1snhh9w0nk5s1l7yn9ldg71xq6pm"))))
3414 (build-system emacs-build-system)
3415 (home-page "https://github.com/ahungry/color-theme-ahungry")
3416 (synopsis "Ahungry color theme for Emacs")
3417 (description "Ahungry theme for Emacs provides bright and bold colors.
3418If you load it from a terminal, you will be able to make use of the
3419transparent background. If you load it from a GUI, it will default to a
3420dark background.")
3421 (license license:gpl3+)))
3422
3423(define-public emacs-2048-game
3424 (package
3425 (name "emacs-2048-game")
3426 (version "20151026.1233")
3427 (source
3428 (origin
3429 (method url-fetch)
3430 (uri (string-append "https://melpa.org/packages/2048-game-"
3431 version ".el"))
3432 (sha256
3433 (base32
3434 "0gy2pvz79whpavp4jmz8h9krzn7brmvv3diixi1d4w51pcdvaldd"))))
3435 (build-system emacs-build-system)
3436 (home-page "https://bitbucket.org/zck/2048.el")
3437 (synopsis "Implementation of the game 2048 in Emacs Lisp")
3438 (description
3439 "This program is an implementation of 2048 for Emacs.
3440The goal of this game is to create a tile with value 2048. The size of the
3441board and goal value can be customized.")
3442 (license license:gpl3+)))
3443
3444(define-public emacs-base16-theme
3445 (package
3446 (name "emacs-base16-theme")
3447 (version "2.1")
3448 (source
3449 (origin
3450 (method url-fetch)
3451 (uri (string-append "https://stable.melpa.org/packages/base16-theme-"
3452 version ".tar"))
3453 (sha256
3454 (base32
3455 "0z6hrwz2jlz6jbr381rcqcqvx6hss5cad352klx07rark7zccacj"))))
3456 (build-system emacs-build-system)
3457 (home-page "https://github.com/belak/base16-emacs")
3458 (synopsis "Base16 color themes for Emacs")
3459 (description
3460 "Base16 provides carefully chosen syntax highlighting and a default set
3461of sixteen colors suitable for a wide range of applications. Base16 is not a
3462single theme but a set of guidelines with numerous implementations.")
3463 (license license:expat)))
3464
3465(define-public emacs-smartparens
3466 (package
3467 (name "emacs-smartparens")
3468 (version "1.11.0")
3469 (source (origin
3470 (method url-fetch)
3471 (uri (string-append
3472 "https://github.com/Fuco1/smartparens/archive/"
3473 version ".tar.gz"))
3474 (file-name (string-append name "-" version ".tar.gz"))
3475 (sha256
3476 (base32
3477 "0q5as813xs8y29i3v2rm97phd6m7xsmmw6hwbvx57gwmi8i1c409"))))
3478 (build-system emacs-build-system)
3479 (propagated-inputs
3480 `(("emacs-dash" ,emacs-dash)
3481 ("emacs-markdown-mode" ,emacs-markdown-mode)))
3482 (home-page "https://github.com/Fuco1/smartparens")
3483 (synopsis "Paredit-like insertion, wrapping and navigation with user
3484defined pairs")
3485 (description
3486 "Smartparens is a minor mode for Emacs that deals with parens pairs
3487and tries to be smart about it. It started as a unification effort to
3488combine functionality of several existing packages in a single,
3489compatible and extensible way to deal with parentheses, delimiters, tags
3490and the like. Some of these packages include autopair, textmate,
3491wrap-region, electric-pair-mode, paredit and others. With the basic
3492features found in other packages it also brings many improvements as
3493well as completely new features.")
3494 (license license:gpl3+)))
3495
3496(define-public emacs-highlight-symbol
3497 (package
3498 (name "emacs-highlight-symbol")
3499 (version "1.3")
3500 (source (origin
3501 (method url-fetch)
3502 (uri (string-append
3503 "https://github.com/nschum/highlight-symbol.el/archive/"
3504 version ".tar.gz"))
3505 (file-name (string-append name "-" version ".tar.gz"))
3506 (sha256
3507 (base32
3508 "1n7k1qns0fn0jsyc0hrjac5nzk21xw48yc30vyrhwvc51h0b9g90"))))
3509 (build-system emacs-build-system)
3510 (home-page "https://nschum.de/src/emacs/highlight-symbol")
3511 (synopsis "Automatic and manual symbol highlighting for Emacs")
3512 (description
3513 "Use @code{highlight-symbol} to toggle highlighting of the symbol at
3514point throughout the current buffer. Use @code{highlight-symbol-mode} to keep
3515the symbol at point highlighted.
3516
3517The functions @code{highlight-symbol-next}, @code{highlight-symbol-prev},
3518@code{highlight-symbol-next-in-defun} and
3519@code{highlight-symbol-prev-in-defun} allow for cycling through the locations
3520of any symbol at point. Use @code{highlight-symbol-nav-mode} to enable key
3521bindings @code{M-p} and @code{M-p} for navigation. When
3522@code{highlight-symbol-on-navigation-p} is set, highlighting is triggered
3523regardless of @code{highlight-symbol-idle-delay}.
3524
3525@code{highlight-symbol-query-replace} can be used to replace the symbol. ")
3526 (license license:gpl2+)))
3527
3528(define-public emacs-hl-todo
3529 (package
3530 (name "emacs-hl-todo")
3531 (version "1.9.0")
3532 (source (origin
3533 (method url-fetch)
3534 (uri (string-append
3535 "https://raw.githubusercontent.com/tarsius/hl-todo/"
3536 version "/hl-todo.el"))
3537 (file-name (string-append "hl-todo-" version ".el"))
3538 (sha256
3539 (base32
3540 "0728givzh7xv5i88ac9if8byj1p8bilrj1fnizca10s0rv100hdr"))))
3541 (build-system emacs-build-system)
3542 (home-page "https://github.com/tarsius/hl-todo")
3543 (synopsis "Emacs mode to highlight TODO and similar keywords")
3544 (description
3545 "This package provides an Emacs mode to highlight TODO and similar
3546keywords in comments and strings. This package also provides commands for
3547moving to the next or previous keyword and to invoke @code{occur} with a
3548regexp that matches all known keywords.")
3549 (license license:gpl3+)))
3550
3551(define-public emacs-perspective
3552 (package
3553 (name "emacs-perspective")
3554 (version "1.12")
3555 (source
3556 (origin
3557 (method url-fetch)
3558 (uri (string-append "https://github.com/nex3/perspective-el/"
3559 "archive/" version ".tar.gz"))
3560 (file-name (string-append name "-" version ".tar.gz"))
3561 (sha256
3562 (base32
3563 "078ahh0kmhdylq5ib9c81c76kz1n02xwc83pm729d00i84ibviic"))))
3564 (build-system emacs-build-system)
3565 (home-page "https://github.com/nex3/perspective-el")
3566 (synopsis "Switch between named \"perspectives\"")
3567 (description
3568 "This package provides tagged workspaces in Emacs, similar to workspaces in
3569windows managers such as Awesome and XMonad. @code{perspective.el} provides
3570multiple workspaces (or \"perspectives\") for each Emacs frame. Each
3571perspective is composed of a window configuration and a set of buffers.
3572Switching to a perspective activates its window configuration, and when in a
3573perspective only its buffers are available by default.")
3574 ;; This package is released under the same license as Emacs (GPLv3+) or
3575 ;; the Expat license.
3576 (license license:gpl3+)))
3577
3578(define-public emacs-test-simple
3579 (package
3580 (name "emacs-test-simple")
3581 (version "1.3.0")
3582 (source
3583 (origin
3584 (method url-fetch)
3585 (uri (string-append "https://elpa.gnu.org/packages/test-simple-"
3586 version ".el"))
3587 (sha256
3588 (base32
3589 "1yd61jc9ds95a5n09052kwc5gasy57g4lxr0jsff040brlyi9czz"))))
3590 (build-system emacs-build-system)
3591 (home-page "https://github.com/rocky/emacs-test-simple")
3592 (synopsis "Simple unit test framework for Emacs Lisp")
3593 (description
3594 "Test Simple is a simple unit test framework for Emacs Lisp. It
3595alleviates the need for context macros, enclosing specifications or required
3596test tags. It supports both interactive and non-interactive use.")
3597 (license license:gpl3+)))
3598
3599(define-public emacs-load-relative
3600 (package
3601 (name "emacs-load-relative")
3602 (version "1.3")
3603 (source
3604 (origin
3605 (method url-fetch)
3606 (uri (string-append "https://elpa.gnu.org/packages/load-relative-"
3607 version ".el"))
3608 (sha256
3609 (base32
3610 "1hfxb2436jdsi9wfmsv47lkkpa5galjf5q81bqabbsv79rv59dps"))))
3611 (build-system emacs-build-system)
3612 (home-page "http://github.com/rocky/emacs-load-relative")
3613 (synopsis "Emacs Lisp relative file loading related functions")
3614 (description
3615 "Provides functions which facilitate writing multi-file Emacs packages
3616and running from the source tree without having to \"install\" code or fiddle
3617with @{load-path}.
3618
3619The main function, @code{load-relative}, loads an Emacs Lisp file relative to
3620another (presumably currently running) Emacs Lisp file.")
3621 (license license:gpl3+)))
3622
3623(define-public emacs-loc-changes
3624 (package
3625 (name "emacs-loc-changes")
3626 (version "1.2")
3627 (source
3628 (origin
3629 (method url-fetch)
3630 (uri (string-append "https://elpa.gnu.org/packages/loc-changes-"
3631 version ".el"))
3632 (sha256
3633 (base32
3634 "1x8fn8vqasayf1rb8a6nma9n6nbvkx60krmiahyb05vl5rrsw6r3"))))
3635 (build-system emacs-build-system)
3636 (home-page "https://github.com/rocky/emacs-loc-changes")
3637 (synopsis "Keeps track of positions even after buffer changes")
3638 (description
3639 "This Emacs package provides a mean to track important buffer positions
3640after buffer changes.")
3641 (license license:gpl3+)))
3642
3643(define-public emacs-realgud
3644 (package
3645 (name "emacs-realgud")
3646 (version "1.4.5")
3647 (source
3648 (origin
3649 (method url-fetch)
3650 (uri (string-append "https://elpa.gnu.org/packages/realgud-"
3651 version ".tar"))
3652 (sha256
3653 (base32
3654 "108wgxg7fb4byaiasgvbxv2hq7b00biq9f0mh9hy6vw4160y5w24"))
3655 (patches
3656 ;; Patch awaiting inclusion upstream (see:
3657 ;; https://github.com/realgud/realgud/pull/226).
3658 (search-patches "emacs-realgud-fix-configure-ac.patch"))))
3659 (build-system emacs-build-system)
3660 (arguments
3661 `(#:tests? #t
3662 #:phases
3663 (modify-phases %standard-phases
3664 (add-after 'set-emacs-load-path 'fix-autogen-script
3665 (lambda _
3666 (substitute* "autogen.sh"
3667 (("./configure") "sh configure"))))
3668 (add-after 'fix-autogen-script 'autogen
3669 (lambda _
3670 (setenv "CONFIG_SHELL" "sh")
3671 (invoke "sh" "autogen.sh")))
3672 (add-after 'fix-autogen-script 'set-home
3673 (lambda _
3674 (setenv "HOME" (getenv "TMPDIR"))))
3675 (add-before 'patch-el-files 'remove-realgud-pkg.el
3676 (lambda _
3677 ;; XXX: This file is auto-generated at some point and causes
3678 ;; substitute* to crash during the `patch-el-files' phase with:
3679 ;; ERROR: In procedure stat: No such file or directory:
3680 ;; "./realgud-pkg.el"
3681 (delete-file "./realgud-pkg.el")
3682 ;; FIXME: `patch-el-files' crashes on this file with error:
3683 ;; unable to locate "bashdb".
3684 (delete-file "./test/test-regexp-bashdb.el"))))
3685 #:include (cons* ".*\\.el$" %default-include)))
3686 (native-inputs
3687 `(("autoconf" ,autoconf)
3688 ("automake" ,automake)
3689 ("emacs-test-simple" ,emacs-test-simple)))
3690 (propagated-inputs
3691 `(("emacs-load-relative" ,emacs-load-relative)
3692 ("emacs-loc-changes" ,emacs-loc-changes)))
3693 (home-page "https://github.com/realgud/realgud/")
3694 (synopsis
3695 "Modular front-end for interacting with external debuggers")
3696 (description
3697 "RealGUD is a modular, extensible GNU Emacs front-end for interacting
3698with external debuggers. It integrates various debuggers such as gdb, pdb,
3699ipdb, jdb, lldb, bashdb, zshdb, etc. and allows to visually step code in the
3700sources. Unlike GUD, it also supports running multiple debug sessions in
3701parallel.")
3702 (license license:gpl3+)))
3703
3704(define-public emacs-request
3705 (package
3706 (name "emacs-request")
3707 (version "0.3.0")
3708 (source (origin
3709 (method git-fetch)
3710 (uri (git-reference
3711 (url "https://github.com/tkf/emacs-request.git")
3712 (commit (string-append "v" version))))
3713 (file-name (string-append name "-" version "-checkout"))
3714 (sha256
3715 (base32
3716 "0wyxqbb35yqf6ci47531lk32d6fppamx9d8826kdz983vm87him7"))))
3717 (build-system emacs-build-system)
3718 (propagated-inputs
3719 `(("emacs-deferred" ,emacs-deferred)))
3720 (home-page "https://github.com/tkf/emacs-request")
3721 (synopsis "Package for speaking HTTP in Emacs Lisp")
3722 (description "This package provides a HTTP request library with multiple
3723backends. It supports url.el which is shipped with Emacs and the curl command
3724line program.")
3725 (license license:gpl3+)))
3726
3727(define-public emacs-rudel
3728 (package
3729 (name "emacs-rudel")
3730 (version "0.3.1")
3731 (source
3732 (origin
3733 (method url-fetch)
3734 (uri (string-append "http://elpa.gnu.org/packages/rudel-"
3735 version ".tar"))
3736 (sha256
3737 (base32
3738 "0glqa68g509p0s2vcc0i8kzlddnc9brd9jqhnm5rzxz4i050cvnz"))))
3739 (build-system emacs-build-system)
3740 (home-page "http://rudel.sourceforge.net/")
3741 (synopsis "Collaborative editing framework")
3742 (description
3743 "Rudel is a collaborative editing environment for GNU Emacs. Its purpose
3744is to share buffers with other users in order to edit the contents of those
3745buffers collaboratively. Rudel supports multiple backends to enable
3746communication with other collaborative editors using different protocols,
3747though currently Obby (for use with the Gobby editor) is the only
3748fully-functional one.")
3749 (license license:gpl3+)))
3750
3751(define-public emacs-hydra
3752 (package
3753 (name "emacs-hydra")
3754 (version "0.14.0")
3755 (source
3756 (origin
3757 (method git-fetch)
3758 (uri (git-reference
3759 (url "https://github.com/abo-abo/hydra")
3760 (commit version)))
3761 (file-name (git-file-name name version))
3762 (sha256
3763 (base32
3764 "0ln4z2796ycy33g5jcxkqvm7638qxy4sipsab7d2864hh700cikg"))))
3765 (build-system emacs-build-system)
3766 (home-page "https://github.com/abo-abo/hydra")
3767 (synopsis "Make Emacs bindings that stick around")
3768 (description
3769 "This package can be used to tie related commands into a family of short
3770bindings with a common prefix---a Hydra. Once you summon the Hydra (through
3771the prefixed binding), all the heads can be called in succession with only a
3772short extension. Any binding that isn't the Hydra's head vanquishes the
3773Hydra. Note that the final binding, besides vanquishing the Hydra, will still
3774serve its original purpose, calling the command assigned to it. This makes
3775the Hydra very seamless; it's like a minor mode that disables itself
3776automatically.")
3777 (license license:gpl3+)))
3778
3779(define-public emacs-ivy
3780 (package
3781 (name "emacs-ivy")
3782 (version "0.10.0")
3783 (source
3784 (origin
3785 (method git-fetch)
3786 (uri (git-reference
3787 (url "https://github.com/abo-abo/swiper.git")
3788 (commit version)))
3789 (file-name (string-append name "-" version "-checkout"))
3790 (sha256
3791 (base32
3792 "14vnigqb5c3yi4q9ysw1fiwdqyqwyklqpb9wnjf81chm7s2mshnr"))))
3793 (build-system emacs-build-system)
3794 (arguments
3795 `(#:phases
3796 (modify-phases %standard-phases
3797 (add-after 'install 'install-doc
3798 (lambda* (#:key outputs #:allow-other-keys)
3799 (let* ((out (assoc-ref outputs "out"))
3800 (info (string-append out "/share/info")))
3801 (with-directory-excursion "doc"
3802 (invoke "makeinfo" "ivy.texi")
3803 (install-file "ivy.info" info)
3804 #t)))))))
3805 (propagated-inputs
3806 `(("emacs-hydra" ,emacs-hydra)))
3807 (native-inputs
3808 `(("texinfo" ,texinfo)))
3809 (home-page "http://oremacs.com/swiper/")
3810 (synopsis "Incremental vertical completion for Emacs")
3811 (description
3812 "This package provides @code{ivy-read} as an alternative to
3813@code{completing-read} and similar functions. No attempt is made to determine
3814the best candidate. Instead, the user can navigate candidates with
3815@code{ivy-next-line} and @code{ivy-previous-line}. The matching is done by
3816splitting the input text by spaces and re-building it into a regular
3817expression.")
3818 (license license:gpl3+)))
3819
3820(define-public emacs-ivy-yasnippet
3821 (let ((commit "32580b4fd23ebf9ca7dde96704f7d53df6e253cd")
3822 (revision "2"))
3823 (package
3824 (name "emacs-ivy-yasnippet")
3825 (version (git-version "0.1" revision commit))
3826 (source
3827 (origin
3828 (method git-fetch)
3829 (uri (git-reference
3830 (url "https://github.com/mkcms/ivy-yasnippet.git")
3831 (commit commit)))
3832 (file-name (git-file-name name version))
3833 (sha256
3834 (base32
3835 "1wfg6mmd5gl1qgvayyzpxlkh9s7jgn20y8l1vh1zbj1czvv51xp8"))))
3836 (build-system emacs-build-system)
3837 (propagated-inputs
3838 `(("emacs-ivy" ,emacs-ivy)
3839 ("emacs-yasnippet" ,emacs-yasnippet)
3840 ("emacs-dash" ,emacs-dash)))
3841 (home-page "https://github.com/mkcms/ivy-yasnippet")
3842 (synopsis "Preview @code{yasnippets} with @code{ivy}")
3843 (description "This package allows you to select @code{yasnippet}
3844snippets using @code{ivy} completion. When current selection changes in the
3845minibuffer, the snippet contents are temporarily expanded in the buffer. To
3846use it, call @code{M-x ivy-yasnippet} (but make sure you have enabled
3847@code{yas-minor-mode} first).")
3848 (license license:gpl3+))))
3849
3850(define-public emacs-ivy-rich
3851 (package
3852 (name "emacs-ivy-rich")
3853 (version "0.1.0")
3854 (source
3855 (origin
3856 (method url-fetch)
3857 (uri (string-append "https://github.com/Yevgnen/ivy-rich/archive/"
3858 version ".tar.gz"))
3859 (file-name (string-append name "-" version ".tar.gz"))
3860 (sha256
3861 (base32
3862 "14r3mx5rkd4wz0ls5pv5w6c7la3z9iy93d3jfind3xyg4kywy95c"))))
3863 (build-system emacs-build-system)
3864 (propagated-inputs
3865 `(("emacs-ivy" ,emacs-ivy)))
3866 (home-page "https://github.com/Yevgnen/ivy-rich")
3867 (synopsis "More friendly interface for @code{ivy}")
3868 (description
3869 "This package extends @code{ivy} by showing more information in the
3870minibuffer for each candidate. It adds columns showing buffer modes, file
3871sizes, docstrings, etc. If @code{emacs-all-the-icons} is installed, it can
3872show icons as well.")
3873 (license license:gpl3+)))
3874
3875(define-public emacs-avy
3876 (package
3877 (name "emacs-avy")
3878 (version "0.4.0")
3879 (source
3880 (origin
3881 (method url-fetch)
3882 (uri (string-append "https://github.com/abo-abo/avy/archive/"
3883 version ".tar.gz"))
3884 (file-name (string-append name "-" version ".tar.gz"))
3885 (sha256
3886 (base32
3887 "1wdrq512h25ymzjbf2kbsdymvd2ryfwzb6bh5bc3yv7q203im796"))))
3888 (build-system emacs-build-system)
3889 (home-page "https://github.com/abo-abo/avy")
3890 (synopsis "Tree-based completion for Emacs")
3891 (description
3892 "This package provides a generic completion method based on building a
3893balanced decision tree with each candidate being a leaf. To traverse the tree
3894from the root to a desired leaf, typically a sequence of @code{read-key} can
3895be used.
3896
3897In order for @code{read-key} to make sense, the tree needs to be visualized
3898appropriately, with a character at each branch node. So this completion
3899method works only for things that you can see on your screen, all at once,
3900such as the positions of characters, words, line beginnings, links, or
3901windows.")
3902 (license license:gpl3+)))
3903
3904(define-public emacs-ace-window
3905 (package
3906 (name "emacs-ace-window")
3907 (version "0.9.0")
3908 (source
3909 (origin
3910 (method url-fetch)
3911 (uri (string-append "https://github.com/abo-abo/ace-window/archive/"
3912 version ".tar.gz"))
3913 (file-name (string-append name "-" version ".tar.gz"))
3914 (sha256
3915 (base32
3916 "1p2sgfl5dml4zbd6ldql6lm2m9vmd236ah996ni32x254s48j5pn"))))
3917 (build-system emacs-build-system)
3918 (propagated-inputs
3919 `(("emacs-avy" ,emacs-avy)))
3920 (home-page "https://github.com/abo-abo/ace-window")
3921 (synopsis "Quickly switch windows in Emacs")
3922 (description
3923 "@code{ace-window} is meant to replace @code{other-window}.
3924In fact, when there are only two windows present, @code{other-window} is
3925called. If there are more, each window will have its first character
3926highlighted. Pressing that character will switch to that window.")
3927 (license license:gpl3+)))
3928
3929(define-public emacs-iedit
3930 (package
3931 (name "emacs-iedit")
3932 (version "0.9.9.9")
3933 (source
3934 (origin
3935 (method url-fetch)
3936 (uri (string-append "https://github.com/victorhge/iedit/archive/v"
3937 version ".tar.gz"))
3938 (file-name (string-append name "-" version ".tar.gz"))
3939 (sha256
3940 (base32
3941 "1hv8q6pr85ss9g3158l1fqv3m62vsq8rslsi86jicr2dcxyascr0"))))
3942 (build-system emacs-build-system)
3943 (home-page "http://www.emacswiki.org/emacs/Iedit")
3944 (synopsis "Edit multiple regions in the same way simultaneously")
3945 (description
3946 "This package is an Emacs minor mode and allows you to edit one
3947occurrence of some text in a buffer (possibly narrowed) or region, and
3948simultaneously have other occurrences edited in the same way.
3949
3950You can also use Iedit mode as a quick way to temporarily show only the buffer
3951lines that match the current text being edited. This gives you the effect of
3952a temporary @code{keep-lines} or @code{occur}.")
3953 (license license:gpl3+)))
3954
3955(define-public emacs-zoutline
3956 (let ((commit "b3ee0f0e0b916838c2d2c249beba74ffdb8d5699")
3957 (revision "0"))
3958 (package
3959 (name "emacs-zoutline")
3960 (version (git-version "0.1" revision commit))
3961 (home-page "https://github.com/abo-abo/zoutline")
3962 (source (origin
3963 (method git-fetch)
3964 (uri (git-reference (url home-page) (commit commit)))
3965 (sha256
3966 (base32
3967 "0sd0017piw0dis6dhpq5dkqd3acisxqgipl7dj8gmc1vnswhdwr8"))
3968 (file-name (git-file-name name version))))
3969 (build-system emacs-build-system)
3970 (synopsis "Simple outline library")
3971 (description
3972 "This library provides helpers for outlines. Outlines allow users to
3973navigate code in a tree-like fashion.")
3974 (license license:gpl3+))))
3975
3976(define-public emacs-lispy
3977 ;; Release 0.26.0 was almost 3 years ago, and there have been ~772 commits
3978 ;; since.
3979 (let ((commit "c2a358a7a15fcf056a5b7461a8e690b481b03b80")
3980 (revision "0"))
3981 (package
3982 (name "emacs-lispy")
3983 (version (git-version "0.26.0" revision commit))
3984 (home-page "https://github.com/abo-abo/lispy")
3985 (source (origin
3986 (method git-fetch)
3987 (uri (git-reference (url home-page) (commit commit)))
3988 (sha256
3989 (base32
3990 "1g6756qqx2n4cx8jac6mlwayilsiyc5rz8nrqjnywvzc75xdinjd"))
3991 (file-name (git-file-name name version))))
3992 (build-system emacs-build-system)
3993 (propagated-inputs
3994 `(("emacs-ace-window" ,emacs-ace-window)
3995 ("emacs-iedit" ,emacs-iedit)
3996 ("emacs-ivy" ,emacs-ivy)
3997 ("emacs-hydra" ,emacs-hydra)
3998 ("emacs-zoutline" ,emacs-zoutline)))
3999 (synopsis "Modal S-expression editing")
4000 (description
4001 "Due to the structure of Lisp syntax it's very rare for the programmer
4002to want to insert characters right before \"(\" or right after \")\". Thus
4003unprefixed printable characters can be used to call commands when the point is
4004at one of these special locations. Lispy provides unprefixed keybindings for
4005S-expression editing when point is at the beginning or end of an
4006S-expression.")
4007 (license license:gpl3+))))
4008
4009(define-public emacs-lispyville
4010 ;; Later versions need a more recent Evil, with an evil-define-key*
4011 ;; supporting nil for the state.
4012 (let ((commit "b4291857ed6a49a67c4ea77522889ce51fb171ab")
4013 (revision "0"))
4014 (package
4015 (name "emacs-lispyville")
4016 (version (git-version "0.1" revision commit))
4017 (home-page "https://github.com/noctuid/lispyville")
4018 (source (origin
4019 (method git-fetch)
4020 (uri (git-reference (url home-page) (commit commit)))
4021 (sha256
4022 (base32
4023 "095zibzc3naknahdrnb59g9rbljy8wz9rkc7rf8avb3wxlwvxhm3"))
4024 (file-name (git-file-name name version))))
4025 (propagated-inputs
4026 `(("emacs-evil" ,emacs-evil)
4027 ("emacs-lispy" ,emacs-lispy)))
4028 (build-system emacs-build-system)
4029 (synopsis "Minor mode for integrating Evil with lispy")
4030 (description
4031 "LispyVille's main purpose is to provide a Lisp editing environment
4032suited towards Evil users. It can serve as a minimal layer on top of lispy
4033for better integration with Evil, but it does not require the use of lispy’s
4034keybinding style. The provided commands allow for editing Lisp in normal
4035state and will work even without lispy being enabled.")
4036 (license license:gpl3+))))
4037
4038(define-public emacs-clojure-mode
4039 (package
4040 (name "emacs-clojure-mode")
4041 (version "5.6.1")
4042 (source (origin
4043 (method url-fetch)
4044 (uri (string-append
4045 "https://github.com/clojure-emacs/clojure-mode/archive/"
4046 version ".tar.gz"))
4047 (file-name (string-append name "-" version ".tar.gz"))
4048 (sha256
4049 (base32
4050 "1f4k1hncy5ygh4izn7mqfp744nnisrp9ywn2njknbjxx34ai1q88"))))
4051 (build-system emacs-build-system)
4052 (native-inputs
4053 `(("emacs-dash" ,emacs-dash)
4054 ("emacs-s" ,emacs-s)
4055 ("ert-runner" ,emacs-ert-runner)))
4056 (arguments
4057 `(#:tests? #t
4058 #:test-command '("ert-runner")))
4059 (home-page "https://github.com/clojure-emacs/clojure-mode")
4060 (synopsis "Major mode for Clojure code")
4061 (description
4062 "This Emacs package provides font-lock, indentation, navigation and basic
4063refactoring for the @uref{http://clojure.org, Clojure programming language}.
4064It is recommended to use @code{clojure-mode} with paredit or smartparens.")
4065 (license license:gpl3+)))
4066
4067(define-public emacs-epl
4068 (package
4069 (name "emacs-epl")
4070 (version "0.8")
4071 (source (origin
4072 (method url-fetch)
4073 (uri (string-append
4074 "https://github.com/cask/epl/archive/"
4075 version ".tar.gz"))
4076 (file-name (string-append name "-" version ".tar.gz"))
4077 (sha256
4078 (base32
4079 "1511n3a3f5gvaf2b4nh018by61ciyzi3y3603fzqma7p9hrckarc"))))
4080 (build-system emacs-build-system)
4081 (home-page "https://github.com/cask/epl")
4082 (synopsis "Emacs Package Library")
4083 (description
4084 "A package management library for Emacs, based on @code{package.el}.
4085
4086The purpose of this library is to wrap all the quirks and hassle of
4087@code{package.el} into a sane API.")
4088 (license license:gpl3+)))
4089
4090(define-public emacs-queue
4091 (package
4092 (name "emacs-queue")
4093 (version "0.2")
4094 (source (origin
4095 (method url-fetch)
4096 (uri (string-append "https://elpa.gnu.org/packages/queue-"
4097 version ".el"))
4098 (sha256
4099 (base32
4100 "0cx2848sqnnkkr4zisvqadzxngjyhmb36mh0q3if7q19yjjhmrkb"))))
4101 (build-system emacs-build-system)
4102 (home-page "http://www.dr-qubit.org/tags/computing-code-emacs.html")
4103 (synopsis "Queue data structure for Emacs")
4104 (description
4105 "This Emacs library provides queue data structure. These queues can be
4106used both as a first-in last-out (FILO) and as a first-in first-out (FIFO)
4107stack, i.e. elements can be added to the front or back of the queue, and can
4108be removed from the front. This type of data structure is sometimes called an
4109\"output-restricted deque\".")
4110 (license license:gpl3+)))
4111
4112(define-public emacs-pkg-info
4113 (package
4114 (name "emacs-pkg-info")
4115 (version "0.6")
4116 (source (origin
4117 (method url-fetch)
4118 (uri (string-append
4119 "https://github.com/lunaryorn/pkg-info.el/archive/"
4120 version ".tar.gz"))
4121 (file-name (string-append name "-" version ".tar.gz"))
4122 (sha256
4123 (base32
4124 "1gy1jks5mmm02gg1c8gcyr4f8a9s5ggzhk56gv33b9mzjqzi5rd5"))))
4125 (build-system emacs-build-system)
4126 (propagated-inputs `(("emacs-epl" ,emacs-epl)))
4127 (home-page "https://github.com/lunaryorn/pkg-info.el")
4128 (synopsis "Information about Emacs packages")
4129 (description
4130 "This library extracts information from the installed Emacs packages.")
4131 (license license:gpl3+)))
4132
4133(define-public emacs-spinner
4134 (package
4135 (name "emacs-spinner")
4136 (version "1.7.3")
4137 (source (origin
4138 (method url-fetch)
4139 (uri (string-append "https://elpa.gnu.org/packages/spinner-"
4140 version ".el"))
4141 (sha256
4142 (base32
4143 "19kp1mmndbmw11sgvv2ggfjl4pyf5zrsbh3871f0965pw9z8vahd"))))
4144 (build-system emacs-build-system)
4145 (home-page "https://github.com/Malabarba/spinner.el")
4146 (synopsis "Emacs mode-line spinner for operations in progress")
4147 (description
4148 "This Emacs package adds spinners and progress-bars to the mode-line for
4149ongoing operations.")
4150 (license license:gpl3+)))
4151
4152(define-public emacs-sparql-mode
4153 (package
4154 (name "emacs-sparql-mode")
4155 (version "2.0.1")
4156 (source (origin
4157 (method url-fetch)
4158 (uri (string-append "https://github.com/ljos/sparql-mode/archive/"
4159 "v" version ".tar.gz"))
4160 (file-name (string-append name "-" version ".tar.gz"))
4161 (sha256
4162 (base32
4163 "1s93mkllxnhy7fw616cnnc2danacdlarys0g3cn89drh0llh53cv"))))
4164 (build-system emacs-build-system)
4165 (home-page "https://github.com/ljos/sparql-mode")
4166 (synopsis "SPARQL mode for Emacs")
4167 (description "This package provides a major mode for Emacs that provides
4168syntax highlighting for SPARQL. It also provides a way to execute queries
4169against a SPARQL HTTP endpoint, such as is provided by Fuseki. It is also
4170possible to query other endpoints like DBPedia.")
4171 (license license:gpl3+)))
4172
4173(define-public emacs-better-defaults
4174 (package
4175 (name "emacs-better-defaults")
4176 (version "0.1.3")
4177 (source
4178 (origin
4179 (method url-fetch)
4180 (uri (string-append "https://github.com/technomancy/better-defaults"
4181 "/archive/" version ".tar.gz"))
4182 (file-name (string-append name "-" version ".tar.gz"))
4183 (sha256
4184 (base32
4185 "08fg4zslzlxbvyil5g4gwvwd22fh4zsgqprs5wh9hv1rgc6757m2"))))
4186 (build-system emacs-build-system)
4187 (home-page "https://github.com/technomancy/better-defaults")
4188 (synopsis "Better defaults for Emacs")
4189 (description
4190 "Better defaults attempts to address the most obvious deficiencies of the
4191Emacs default configuration in uncontroversial ways that nearly everyone can
4192agree upon.")
4193 (license license:gpl3+)))
4194
4195(define-public emacs-eprime
4196 (let ((commit "17a481af26496be91c07139a9bfc05cfe722506f"))
4197 (package
4198 (name "emacs-eprime")
4199 (version (string-append "20140513-" (string-take commit 7)))
4200 (source (origin
4201 (method url-fetch)
4202 (uri (string-append "https://raw.githubusercontent.com"
4203 "/AndrewHynes/eprime-mode/"
4204 commit "/eprime-mode.el"))
4205 (file-name (string-append "eprime-" version ".el"))
4206 (sha256
4207 (base32
4208 "0v68lggkyq7kbcr9zyi573m2g2x251xy3jadlaw8kx02l8krwq8d"))))
4209 (build-system emacs-build-system)
4210 (home-page "https://github.com/AndrewHynes/eprime-mode")
4211 (synopsis "E-prime checking mode for Emacs")
4212 (description "This package provides an E-prime checking mode for Emacs
4213that highlights non-conforming text. The subset of the English language called
4214E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
4215 (license license:gpl3+))))
4216
4217(define-public emacs-julia-mode
4218 ;; XXX: Upstream version remained stuck at 0.3. See
4219 ;; <https://github.com/JuliaEditorSupport/julia-emacs/issues/46>.
4220 (let ((commit "115d4dc8a07445301772da8376b232fa8c7168f4")
4221 (revision "1"))
4222 (package
4223 (name "emacs-julia-mode")
4224 (version (string-append "0.3-" revision "." (string-take commit 8)))
4225 (source
4226 (origin
4227 (method git-fetch)
4228 (uri (git-reference
4229 (url "https://github.com/JuliaEditorSupport/julia-emacs.git")
4230 (commit commit)))
4231 (file-name (string-append name "-" version "-checkout"))
4232 (sha256
4233 (base32
4234 "1is4dcv6blslpzbjcg8l2jpxi8xj96q4cm0nxjxsyswpm8bw8ki0"))))
4235 (build-system emacs-build-system)
4236 (arguments
4237 `(#:tests? #t
4238 #:test-command '("emacs" "--batch"
4239 "-l" "julia-mode-tests.el"
4240 "-f" "ert-run-tests-batch-and-exit")))
4241 (home-page "https://github.com/JuliaEditorSupport/julia-emacs")
4242 (synopsis "Major mode for Julia")
4243 (description "This Emacs package provides a mode for the Julia
4244programming language.")
4245 (license license:expat))))
4246
4247(define-public emacs-smex
4248 (package
4249 (name "emacs-smex")
4250 (version "3.0")
4251 (source (origin
4252 (method url-fetch)
4253 (uri (string-append "https://raw.githubusercontent.com"
4254 "/nonsequitur/smex/" version "/smex.el"))
4255 (file-name (string-append "smex-" version ".el"))
4256 (sha256
4257 (base32
4258 "0ar310zx9k5y4i1vl2rawvi712xj9gx77160860jbs691p77cxqp"))))
4259 (build-system emacs-build-system)
4260 (home-page "https://github.com/nonsequitur/smex/")
4261 (synopsis "M-x interface with Ido-style fuzzy matching")
4262 (description
4263 "Smex is a M-x enhancement for Emacs. Built on top of Ido, it provides a
4264convenient interface to your recently and most frequently used commands. And
4265to all the other commands, too.")
4266 (license license:gpl3+)))
4267
4268(define-public emacs-js2-mode
4269 (package
4270 (name "emacs-js2-mode")
4271 (version "20180301")
4272 (source (origin
4273 (method url-fetch)
4274 (uri (string-append "https://github.com/mooz/js2-mode/archive/"
4275 version ".tar.gz"))
4276 (file-name (string-append name "-" version ".tar.gz"))
4277 (sha256
4278 (base32
4279 "13aghgwaqrmbf3pbifcry52kya454wnh1gbdh5805n1n6xgjm5w3"))))
4280 (build-system emacs-build-system)
4281 (home-page "https://github.com/mooz/js2-mode/")
4282 (synopsis "Improved JavaScript editing mode for Emacs")
4283 (description
4284 "Js2-mode provides a JavaScript major mode for Emacs that is more
4285advanced than the built-in javascript-mode. Features include accurate syntax
4286highlighting using a recursive-descent parser, on-the-fly reporting of syntax
4287errors and strict-mode warnings, smart line-wrapping within comments and
4288strings, and code folding.")
4289 (license license:gpl3+)))
4290
4291(define-public emacs-nodejs-repl
4292 (package
4293 (name "emacs-nodejs-repl")
4294 (version "0.2.0")
4295 (source (origin
4296 (method url-fetch)
4297 (uri (string-append "https://github.com/abicky/nodejs-repl.el"
4298 "/archive/" version ".tar.gz"))
4299 (sha256
4300 (base32
4301 "0hq2cqdq2668yf48g7qnkci90nhih1gnhacsgz355jnib56lhmkz"))
4302 (file-name (string-append name "-" version ".tar.gz"))))
4303 (build-system emacs-build-system)
4304 (home-page "https://github.com/abicky/nodejs-repl.el")
4305 (synopsis "Node.js REPL inside Emacs")
4306 (description
4307 "This program is derived from comint-mode and provides the following
4308features:
4309
4310@itemize
4311@item TAB completion same as Node.js REPL
4312@item file name completion in string
4313@item incremental history search
4314@end itemize")
4315 (license license:gpl3+)))
4316
4317(define-public emacs-typescript-mode
4318 (package
4319 (name "emacs-typescript-mode")
4320 (version "0.3")
4321 (source (origin
4322 (method url-fetch)
4323 (uri (string-append
4324 "https://github.com/ananthakumaran/typescript.el"
4325 "/archive/v" version ".tar.gz"))
4326 (sha256
4327 (base32
4328 "1gqjirm8scf0wysm7x97zdfbs4qa5nqdl64jfbkd18iskv5mg3rj"))
4329 (file-name (string-append name "-" version ".tar.gz"))))
4330 (build-system emacs-build-system)
4331 (home-page "https://github.com/ananthakumaran/typescript.el")
4332 (synopsis "Emacs major mode for editing Typescript code")
4333 (description
4334 "This is based on Karl Landstrom's barebones @code{typescript-mode}.
4335This is much more robust and works with @code{cc-mode}'s comment
4336filling (mostly). The modifications to the original @code{javascript.el} mode
4337mainly consisted in replacing \"javascript\" with \"typescript\"
4338
4339The main features of this Typescript mode are syntactic highlighting (enabled
4340with @code{font-lock-mode} or @code{global-font-lock-mode}), automatic
4341indentation and filling of comments and C preprocessor fontification.")
4342 (license license:gpl3+)))
4343
4344(define-public emacs-tide
4345 (package
4346 (name "emacs-tide")
4347 (version "2.8.3.1")
4348 (source (origin
4349 (method url-fetch)
4350 (uri (string-append "https://github.com/ananthakumaran/tide"
4351 "/archive/v" version ".tar.gz"))
4352 (sha256
4353 (base32
4354 "1k0kzqiv1hfs0kqm37947snzhrsmand3i9chvm6a2r5lb8v9q47y"))
4355 (file-name (string-append name "-" version ".tar.gz"))))
4356 (build-system emacs-build-system)
4357 (propagated-inputs
4358 `(("emacs-dash" ,emacs-dash)
4359 ("emacs-s" ,emacs-s)
4360 ("emacs-flycheck" ,emacs-flycheck)
4361 ("emacs-typescript-mode" ,emacs-typescript-mode)))
4362 (home-page "https://github.com/ananthakumaran/tide")
4363 (synopsis "Typescript IDE for Emacs")
4364 (description
4365 "Tide is an Interactive Development Environment (IDE) for Emacs which
4366provides the following features:
4367
4368@itemize
4369@item ElDoc
4370@item Auto complete
4371@item Flycheck
4372@item Jump to definition, Jump to type definition
4373@item Find occurrences
4374@item Rename symbol
4375@item Imenu
4376@item Compile On Save
4377@item Highlight Identifiers
4378@item Code Fixes
4379@item Code Refactor
4380@item Organize Imports
4381@end itemize")
4382 (license license:gpl3+)))
4383
4384(define-public emacs-markdown-mode
4385 (package
4386 (name "emacs-markdown-mode")
4387 (version "2.3")
4388 (source (origin
4389 (method url-fetch)
4390 (uri (string-append "https://raw.githubusercontent.com/jrblevin"
4391 "/markdown-mode/v" version
4392 "/markdown-mode.el"))
4393 (file-name (string-append "markdown-mode-" version ".el"))
4394 (sha256
4395 (base32
4396 "152whyrq3dqlqy5wv4mdd94kmal19hs5kwaxjcp2gp2r97lsmdmi"))))
4397 (build-system emacs-build-system)
4398 (home-page "http://jblevins.org/projects/markdown-mode/")
4399 (synopsis "Emacs Major mode for Markdown files")
4400 (description
4401 "Markdown-mode is a major mode for editing Markdown-formatted text files
4402in Emacs.")
4403 (license license:gpl3+)))
4404
4405(define-public emacs-edit-indirect
4406 (package
4407 (name "emacs-edit-indirect")
4408 (version "0.1.5")
4409 (source
4410 (origin
4411 (method git-fetch)
4412 (uri (git-reference
4413 (url "https://github.com/Fanael/edit-indirect")
4414 (commit version)))
4415 (file-name (git-file-name name version))
4416 (sha256
4417 (base32
4418 "0by1x53pji39fjrj5bd446kz831nv0vdgw2jqasbym4pc1p2947r"))))
4419 (build-system emacs-build-system)
4420 (home-page "https://github.com/Fanael/edit-indirect")
4421 (synopsis "Edit regions in separate buffers")
4422 (description "This package allows you to edit regions in separate buffers,
4423like @code{org-edit-src-code} but for arbitrary regions.")
4424 (license license:gpl3+)))
4425
4426(define-public emacs-projectile
4427 (package
4428 (name "emacs-projectile")
4429 (version "0.14.0")
4430 (source (origin
4431 (method url-fetch)
4432 (uri (string-append "https://raw.githubusercontent.com/bbatsov"
4433 "/projectile/v" version "/projectile.el"))
4434 (file-name (string-append "projectile-" version ".el"))
4435 (sha256
4436 (base32
4437 "1ql1wnzhblbwnv66hf2y0wq45g71hh6s9inc090lmhm1vgylbd1f"))))
4438 (build-system emacs-build-system)
4439 (propagated-inputs
4440 `(("emacs-dash" ,emacs-dash)
4441 ("emacs-pkg-info" ,emacs-pkg-info)))
4442 (home-page "https://github.com/bbatsov/projectile")
4443 (synopsis "Manage and navigate projects in Emacs easily")
4444 (description
4445 "This library provides easy project management and navigation. The
4446concept of a project is pretty basic - just a folder containing special file.
4447Currently git, mercurial and bazaar repos are considered projects by default.
4448If you want to mark a folder manually as a project just create an empty
4449.projectile file in it.")
4450 (license license:gpl3+)))
4451
4452(define-public emacs-elfeed
4453 (package
4454 (name "emacs-elfeed")
4455 (version "3.0.0")
4456 (source (origin
4457 (method url-fetch)
4458 (uri (string-append "https://github.com/skeeto/elfeed/archive/"
4459 version ".tar.gz"))
4460 (file-name (string-append name "-" version ".tar.gz"))
4461 (sha256
4462 (base32
4463 "1wkdrxr6zzqb48czqqv34l87bx8aqjk1739ddqg933aqh241kfvn"))))
4464 (build-system emacs-build-system)
4465 (arguments
4466 `(#:tests? #t
4467 #:test-command '("make" "test")))
4468 (home-page "https://github.com/skeeto/elfeed")
4469 (synopsis "Atom/RSS feed reader for Emacs")
4470 (description
4471 "Elfeed is an extensible web feed reader for Emacs, supporting both Atom
4472and RSS, with a user interface inspired by notmuch.")
4473 (license license:gpl3+)))
4474
4475(define-public emacs-el-x
4476 (package
4477 (name "emacs-el-x")
4478 (version "0.3.1")
4479 (source (origin
4480 (method git-fetch)
4481 (uri (git-reference
4482 (url "https://github.com/sigma/el-x.git")
4483 (commit (string-append "v" version))))
4484 (file-name (string-append name "-" version "-checkout"))
4485 (sha256
4486 (base32
4487 "1i6j44ssxm1xdg0mf91nh1lnprwsaxsx8vsrf720nan7mfr283h5"))))
4488 (build-system emacs-build-system)
4489 (arguments
4490 `(#:phases
4491 (modify-phases %standard-phases
4492 ;; Move the source files to the top level, which is included in
4493 ;; the EMACSLOADPATH.
4494 (add-after 'unpack 'move-source-files
4495 (lambda _
4496 (let ((el-files (find-files "./lisp" ".*\\.el$")))
4497 (for-each (lambda (f)
4498 (rename-file f (basename f)))
4499 el-files))
4500 #t)))))
4501 (home-page "https://github.com/sigma/el-x")
4502 (synopsis "Emacs Lisp extensions")
4503 (description "command@{emacs-el-x} defines the @code{dflet} macro to
4504provide the historic behavior of @code{flet}, as well as
4505@code{declare-function} stub for older Emacs.")
4506 (license license:gpl2+)))
4507
4508(define-public emacs-mocker
4509 (package
4510 (name "emacs-mocker")
4511 (version "0.3.1")
4512 (source (origin
4513 (method git-fetch)
4514 (uri (git-reference
4515 (url "https://github.com/sigma/mocker.el.git")
4516 (commit (string-append "v" version))))
4517 (file-name (string-append name "-" version "-checkout"))
4518 (sha256
4519 (base32
4520 "1lav7am41v63xgavq8pr88y828jmd1cxd4prjq7jlbxm6nvrwxh2"))))
4521 (build-system emacs-build-system)
4522 (arguments
4523 `(#:tests? #t
4524 #:test-command '("ert-runner")))
4525 (native-inputs
4526 `(("ert-runner" ,emacs-ert-runner)))
4527 (propagated-inputs
4528 `(("emacs-el-x" ,emacs-el-x)))
4529 (home-page "https://github.com/sigma/mocker.el")
4530 (synopsis "Mocking framework for Emacs Lisp")
4531 (description "Mocker.el is a framework for writing tests in Emacs Lisp.
4532It uses regular Lisp rather than a domain specific language (DSL), which
4533maximizes flexibility (at the expense of conciseness).")
4534 (license license:gpl2+)))
4535
4536(define-public emacs-find-file-in-project
4537 (package
4538 (name "emacs-find-file-in-project")
4539 (version "5.4.7")
4540 (source (origin
4541 (method git-fetch)
4542 (uri (git-reference
4543 (url "https://github.com/technomancy/find-file-in-project.git")
4544 (commit version)))
4545 (file-name (string-append name "-" version "-checkout"))
4546 (sha256
4547 (base32
4548 "1sdnyqv69mipbgs9yax88m9b6crsa59rjhwrih197pifl4089awr"))))
4549 (build-system emacs-build-system)
4550 (arguments
4551 `(#:phases
4552 (modify-phases %standard-phases
4553 (add-before 'check 'set-shell
4554 ;; Otherwise Emacs shell-file-name is set to "/bin/sh", which doesn't
4555 ;; work.
4556 (lambda _
4557 (setenv "SHELL" (which "sh"))
4558 #t)))
4559 #:tests? #t
4560 #:test-command '("./tests/test.sh")))
4561 (home-page "https://github.com/technomancy/find-file-in-project")
4562 (synopsis "File/directory finder for Emacs")
4563 (description "@code{find-file-in-project} allows to find files or
4564directories quickly in the current project. The project root is detected
4565automatically when Git, Subversion or Mercurial are used. It also provides
4566functions to assist in reviewing changes on files.")
4567 (license license:gpl3+)))
4568
4569(define-public emacs-pyvenv
4570 (package
4571 (name "emacs-pyvenv")
4572 (version "1.11")
4573 (source (origin
4574 (method git-fetch)
4575 (uri (git-reference
4576 (url "https://github.com/jorgenschaefer/pyvenv.git")
4577 (commit (string-append "v" version))))
4578 (file-name (string-append name "-" version "-checkout"))
4579 (sha256
4580 (base32
4581 "1a346qdimr1dvj53q033aqnahwd2dhyn9jadrs019nm0bzgw7g63"))))
4582 (build-system emacs-build-system)
4583 (arguments
4584 `(#:phases
4585 (modify-phases %standard-phases
4586 ;; This phase incorrectly attempts to substitute "activate" and fails
4587 ;; doing so.
4588 (delete 'patch-el-files))
4589 #:tests? #t
4590 #:test-command '("ert-runner")))
4591 (native-inputs
4592 `(("ert-runner" ,emacs-ert-runner)
4593 ("emacs-mocker" ,emacs-mocker)))
4594 (home-page "https://github.com/jorgenschaefer/pyvenv")
4595 (synopsis "Virtualenv minor mode for Emacs")
4596 (description "pyvenv.el is a minor mode to support using Python virtual
4597environments (virtualenv) inside Emacs.")
4598 (license license:gpl3+)))
4599
4600(define-public emacs-highlight-indentation
4601 (package
4602 (name "emacs-highlight-indentation")
4603 (version "0.7.0")
4604 (source (origin
4605 (method git-fetch)
4606 (uri (git-reference
4607 (url "https://github.com/antonj/Highlight-Indentation-for-Emacs.git")
4608 (commit (string-append "v" version))))
4609 (file-name (string-append name "-" version "-checkout"))
4610 (sha256
4611 (base32
4612 "00l54k75qk24a0znzl4ij3s3nrnr2wy9ha3za8apphzlm98m907k"))))
4613 (build-system emacs-build-system)
4614 (home-page "https://github.com/antonj/Highlight-Indentation-for-Emacs/")
4615 (synopsis "Highlighting indentation for Emacs")
4616 (description "Provides two minor modes to highlight indentation guides in Emacs:
4617@enumerate
4618@item @code{highlight-indentation-mode}, which displays guidelines
4619indentation (space indentation only).
4620@item @code{highlight-indentation-current-column-mode}, which displays guidelines for the current-point indentation (space indentation only).
4621@end enumerate")
4622 (license license:gpl2+)))
4623
4624(define-public emacs-elpy
4625 (package
4626 (name "emacs-elpy")
4627 (version "1.27.0")
4628 (source (origin
4629 (method git-fetch)
4630 (uri (git-reference
4631 (url "https://github.com/jorgenschaefer/elpy.git")
4632 (commit version)))
4633 (file-name (string-append name "-" version "-checkout"))
4634 (sha256
4635 (base32
4636 "1b76y0kzk7s9ya8k9bpsgn31i9l0rxs4iz6lg7snhjgh03k0ssgv"))))
4637 (build-system emacs-build-system)
4638 (arguments
4639 `(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include)
4640 #:phases
4641 ;; TODO: Make `elpy-config' display Guix commands :)
4642 (modify-phases %standard-phases
4643 ;; One elpy test depends on being run inside a Python virtual
4644 ;; environment to pass. We have nothing to gain from doing so here,
4645 ;; so we just trick Elpy into thinking we are (see:
4646 ;; https://github.com/jorgenschaefer/elpy/pull/1293).
4647 (add-before 'check 'fake-virtualenv
4648 (lambda _
4649 (setenv "VIRTUAL_ENV" "/tmp")
4650 #t))
4651 (add-before 'check 'build-doc
4652 (lambda _
4653 (with-directory-excursion "docs"
4654 (invoke "make" "info" "man"))
4655 ;; Move .info file at the root so that it can installed by the
4656 ;; 'move-doc phase.
4657 (rename-file "docs/_build/texinfo/Elpy.info" "Elpy.info")
4658 #t))
4659 (add-after 'build-doc 'install-manpage
4660 (lambda* (#:key outputs #:allow-other-keys)
4661 (let* ((out (assoc-ref outputs "out"))
4662 (man1 (string-append out "/share/man/man1")))
4663 (mkdir-p man1)
4664 (copy-file "docs/_build/man/elpy.1"
4665 (string-append man1 "/elpy.1")))
4666 #t)))
4667 #:tests? #t
4668 #:test-command '("ert-runner")))
4669 (propagated-inputs
4670 `(("emacs-company" ,emacs-company)
4671 ("emacs-find-file-in-project" ,emacs-find-file-in-project)
4672 ("emacs-highlight-indentation" ,emacs-highlight-indentation)
4673 ("emacs-yasnippet" ,emacs-yasnippet)
4674 ("pyvenv" ,emacs-pyvenv)
4675 ("s" ,emacs-s)))
4676 (native-inputs
4677 `(("ert-runner" ,emacs-ert-runner)
4678 ("emacs-f" ,emacs-f)
4679 ("python" ,python-wrapper)
4680 ("python-autopep8" ,python-autopep8)
4681 ("python-black" ,python-black)
4682 ("python-flake8" ,python-flake8)
4683 ("python-jedi" ,python-jedi)
4684 ("python-yapf" ,python-yapf)
4685 ;; For documentation.
4686 ("python-sphinx" ,python-sphinx)
4687 ("texinfo" ,texinfo)))
4688 (home-page "https://github.com/jorgenschaefer/elpy")
4689 (synopsis "Python development environment for Emacs")
4690 (description "Elpy brings powerful Python editing to Emacs. It combines
4691and configures a number of other packages written in Emacs Lisp as well as
4692Python, together offering features such as navigation, documentation,
4693completion, interactive development and more.")
4694 (license license:gpl3+)))
4695
4696(define-public emacs-rainbow-delimiters
4697 (package
4698 (name "emacs-rainbow-delimiters")
4699 (version "2.1.3")
4700 (source (origin
4701 (method url-fetch)
4702 (uri (string-append "https://raw.githubusercontent.com/Fanael"
4703 "/rainbow-delimiters/" version
4704 "/rainbow-delimiters.el"))
4705 (file-name (string-append "rainbow-delimiters-" version ".el"))
4706 (sha256
4707 (base32
4708 "1b3kampwsjabhcqdp0khgff13wc5jqhy3rbvaa12vnv7qy22l9ck"))))
4709 (build-system emacs-build-system)
4710 (home-page "https://github.com/Fanael/rainbow-delimiters")
4711 (synopsis "Highlight brackets according to their depth")
4712 (description
4713 "Rainbow-delimiters is a \"rainbow parentheses\"-like mode for Emacs which
4714highlights parentheses, brackets, and braces according to their depth. Each
4715successive level is highlighted in a different color, making it easy to spot
4716matching delimiters, orient yourself in the code, and tell which statements
4717are at a given level.")
4718 (license license:gpl3+)))
4719
4720(define-public emacs-rainbow-identifiers
4721 (package
4722 (name "emacs-rainbow-identifiers")
4723 (version "0.2.2")
4724 (source (origin
4725 (method url-fetch)
4726 (uri (string-append "https://raw.githubusercontent.com/Fanael"
4727 "/rainbow-identifiers/" version
4728 "/rainbow-identifiers.el"))
4729 (file-name (string-append "rainbow-identifiers-" version ".el"))
4730 (sha256
4731 (base32
4732 "0325abxj47k0g1i8nqrq70w2wr6060ckhhf92krv1s072b3jzm31"))))
4733 (build-system emacs-build-system)
4734 (home-page "https://github.com/Fanael/rainbow-identifiers")
4735 (synopsis "Highlight identifiers in source code")
4736 (description
4737 "Rainbow identifiers mode is an Emacs minor mode providing highlighting of
4738identifiers based on their names. Each identifier gets a color based on a hash
4739of its name.")
4740 (license license:bsd-2)))
4741
4742(define-public emacs-rainbow-mode
4743 (package
4744 (name "emacs-rainbow-mode")
4745 (version "1.0.1")
4746 (source (origin
4747 (method url-fetch)
4748 (uri (string-append
4749 "http://elpa.gnu.org/packages/rainbow-mode-" version ".el"))
4750 (sha256
4751 (base32
4752 "0cpga4ax635rfpj7y2vmh7ank0yw00dcy20gjg1mj74r97by8csf"))))
4753 (build-system emacs-build-system)
4754 (home-page "http://elpa.gnu.org/packages/rainbow-mode.html")
4755 (synopsis "Colorize color names in buffers")
4756 (description
4757 "This minor mode sets background color to strings that match color
4758names, e.g. #0000ff is displayed in white with a blue background.")
4759 (license license:gpl3+)))
4760
4761(define-public emacs-visual-fill-column
4762 (package
4763 (name "emacs-visual-fill-column")
4764 (version "1.11")
4765 (source (origin
4766 (method url-fetch)
4767 (uri (string-append "https://codeload.github.com/joostkremers/"
4768 "visual-fill-column/tar.gz/" version))
4769 (file-name (string-append name "-" version ".tar.gz"))
4770 (sha256
4771 (base32
4772 "13jnviakp607zcms7f8ams56mr8wffnq1pghlc6fvqs39663pgwh"))))
4773 (build-system emacs-build-system)
4774 (home-page "https://github.com/joostkremers/visual-fill-column")
4775 (synopsis "Fill-column for visual-line-mode")
4776 (description
4777 "@code{visual-fill-column-mode} is a small Emacs minor mode that mimics
4778the effect of @code{fill-column} in @code{visual-line-mode}. Instead of
4779wrapping lines at the window edge, which is the standard behaviour of
4780@code{visual-line-mode}, it wraps lines at @code{fill-column}. If
4781@code{fill-column} is too large for the window, the text is wrapped at the
4782window edge.")
4783 (license license:gpl3+)))
4784
4785(define-public emacs-writeroom
4786 (package
4787 (name "emacs-writeroom")
4788 (version "3.7")
4789 (source (origin
4790 (method url-fetch)
4791 (uri (string-append
4792 "https://github.com/joostkremers/writeroom-mode/archive/"
4793 version ".tar.gz"))
4794 (file-name (string-append name "-" version ".tar.gz"))
4795 (sha256
4796 (base32
4797 "0yqgp5h3kvvpgva4azakb2wnjl7gsyh45glf75crspv3xyq57f2r"))))
4798 (build-system emacs-build-system)
4799 (propagated-inputs
4800 `(("emacs-visual-fill-column" ,emacs-visual-fill-column)))
4801 (home-page "https://github.com/joostkremers/writeroom-mode")
4802 (synopsis "Distraction-free writing for Emacs")
4803 (description
4804 "This package defines a minor mode for distraction-free writing. Some of
4805the default effects include entering fullscreen, deleting other windows of the
4806current frame, disabling the mode line, and adding margins to the buffer that
4807restrict the text width to 80 characters.")
4808 (license license:bsd-3)))
4809
4810(define-public emacs-ido-completing-read+
4811 (package
4812 (name "emacs-ido-completing-read+")
4813 (version "3.12")
4814 (source (origin
4815 (method url-fetch)
4816 (uri (string-append "https://raw.githubusercontent.com"
4817 "/DarwinAwardWinner/ido-ubiquitous/v"
4818 version "/ido-completing-read+.el"))
4819 (file-name (string-append "ido-completing-read+-" version ".el"))
4820 (sha256
4821 (base32
4822 "1cyalb0p7nfsm4n6n9q6rjmvn6adqc0fq8ybnlj3n41n289dkfjf"))))
4823 (build-system emacs-build-system)
4824 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
4825 (synopsis "Replacement for completing-read using ido")
4826 (description
4827 "The ido-completing-read+ function is a wrapper for ido-completing-read.
4828Importantly, it detects edge cases that ordinary ido cannot handle and either
4829adjusts them so ido can handle them, or else simply falls back to the standard
4830Emacs completion function instead.")
4831 (license license:gpl3+)))
4832
4833(define-public emacs-ido-ubiquitous
4834 (package
4835 (name "emacs-ido-ubiquitous")
4836 (version "3.12")
4837 (source (origin
4838 (method url-fetch)
4839 (uri (string-append "https://raw.githubusercontent.com"
4840 "/DarwinAwardWinner/ido-ubiquitous/v"
4841 version "/ido-ubiquitous.el"))
4842 (file-name (string-append "ido-ubiquitous-" version ".el"))
4843 (sha256
4844 (base32
4845 "197ypji0fb6jsdcq40rpnknwlh3imas6s6jbsvkfm0pz9988c3q2"))))
4846 (build-system emacs-build-system)
4847 (propagated-inputs
4848 `(("emacs-ido-completing-read+" ,emacs-ido-completing-read+)))
4849 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
4850 (synopsis "Use ido (nearly) everywhere")
4851 (description
4852 "Ido-ubiquitous enables ido-style completion for almost every function
4853that uses the standard completion function completing-read.")
4854 (license license:gpl3+)))
4855
4856(define-public emacs-yaml-mode
4857 (package
4858 (name "emacs-yaml-mode")
4859 (version "0.0.13")
4860 (source (origin
4861 (method url-fetch)
4862 (uri (string-append "https://raw.githubusercontent.com/yoshiki"
4863 "/yaml-mode/v" version "/yaml-mode.el"))
4864 (file-name (string-append "yaml-mode-" version ".el"))
4865 (sha256
4866 (base32
4867 "0im88sk9dqw03x6d6zaspgvg9i0pfpgb8f2zygrmbifh2w4pwmvj"))))
4868 (build-system emacs-build-system)
4869 (home-page "https://github.com/yoshiki/yaml-mode")
4870 (synopsis "Major mode for editing YAML files")
4871 (description
4872 "Yaml-mode is an Emacs major mode for editing files in the YAML data
4873serialization format. It was initially developed by Yoshiki Kurihara and many
4874features were added by Marshall Vandegrift. As YAML and Python share the fact
4875that indentation determines structure, this mode provides indentation and
4876indentation command behavior very similar to that of python-mode.")
4877 (license license:gpl3+)))
4878
4879(define-public emacs-web-mode
4880 (package
4881 (name "emacs-web-mode")
4882 (version "16")
4883 (source (origin
4884 (method url-fetch)
4885 (uri (string-append "https://raw.githubusercontent.com/fxbois"
4886 "/web-mode/v" version "/web-mode.el"))
4887 (file-name (string-append "web-mode-" version ".el"))
4888 (sha256
4889 (base32
4890 "1hs5w7kdvcyn4ihyw1kfjg48djn5p7lz4rlbhzzdqv1g56xqx3gw"))))
4891 (build-system emacs-build-system)
4892 (synopsis "Major mode for editing web templates")
4893 (description "Web-mode is an Emacs major mode for editing web templates
4894aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by
4895client/server side engines). Web-mode is compatible with many template
4896engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker,
4897Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template,
4898Dust.js, React/JSX, Angularjs, ejs, etc.")
4899 (home-page "http://web-mode.org/")
4900 (license license:gpl3+)))
4901
4902(define-public emacs-wgrep
4903 (let ((commit "414be70bd313e482cd9f0b70fd2daad4ee23497c"))
4904 ;; Late commit fixes compatibility issue with Emacs 26+.
4905 (package
4906 (name "emacs-wgrep")
4907 (version (git-version "2.1.10" "1" commit))
4908 (source (origin
4909 (method git-fetch)
4910 (uri (git-reference
4911 (url "https://github.com/mhayashi1120/Emacs-wgrep")
4912 (commit commit)))
4913 (file-name (git-file-name name version))
4914 (sha256
4915 (base32
4916 "1sdhd587q3pg92lhiayph87azhalmf1gzrnsprkmqvnphv7mvks9"))))
4917 (build-system emacs-build-system)
4918 (home-page "https://github.com/mhayashi1120/Emacs-wgrep")
4919 (synopsis "Edit a grep buffer and apply those changes to the files")
4920 (description
4921 "Emacs wgrep allows you to edit a grep buffer and apply those changes
4922to the file buffer. Several backends are supported beside the classic grep:
4923ack, ag, helm and pt.")
4924 (license license:gpl3+))))
4925
4926(define-public emacs-helm
4927 (package
4928 (name "emacs-helm")
4929 (version "3.0")
4930 (source (origin
4931 (method url-fetch)
4932 (uri (string-append
4933 "https://github.com/" name "/helm/archive/v"
4934 version ".tar.gz"))
4935 (file-name (string-append name "-" version ".tar.gz"))
4936 (sha256
4937 (base32
4938 "0k2r0ccppaqfjvyszaxa16vf7g2qzj1clhfr6v646ncsy17laciw"))))
4939 (build-system emacs-build-system)
4940 (propagated-inputs
4941 `(("emacs-async" ,emacs-async)
4942 ("emacs-popup" ,emacs-popup)))
4943 (home-page "https://emacs-helm.github.io/helm/")
4944 (synopsis "Incremental completion and selection narrowing
4945framework for Emacs")
4946 (description "Helm is incremental completion and selection narrowing
4947framework for Emacs. It will help steer you in the right direction when
4948you're looking for stuff in Emacs (like buffers, files, etc). Helm is a fork
4949of @code{anything.el} originally written by Tamas Patrovic and can be
4950considered to be its successor. Helm sets out to clean up the legacy code in
4951@code{anything.el} and provide a cleaner, leaner and more modular tool, that's
4952not tied in the trap of backward compatibility.")
4953 (license license:gpl3+)))
4954
4955(define-public emacs-helm-swoop
4956 (package
4957 (name "emacs-helm-swoop")
4958 (version "1.7.4")
4959 (source (origin
4960 (method url-fetch)
4961 (uri (string-append
4962 "https://github.com/ShingoFukuyama/helm-swoop/archive/"
4963 version
4964 ".tar.gz"))
4965 (file-name (string-append name "-" version ".tar.gz"))
4966 (sha256
4967 (base32
4968 "1ssivsjzlnkg049cg993l8fp09l5nhpz6asj7w5c91zp5kpc6fh7"))))
4969 (build-system emacs-build-system)
4970 (propagated-inputs
4971 `(("emacs-helm" ,emacs-helm)))
4972 (home-page "https://github.com/ShingoFukuyama/helm-swoop")
4973 (synopsis "Filter and jump to lines in an Emacs buffer using Helm")
4974 (description
4975 "This package builds on the Helm interface to provide several commands
4976for search-based navigation of buffers.")
4977 (license license:gpl2+)))
4978
4979(define-public emacs-helm-projectile
4980 (package
4981 (name "emacs-helm-projectile")
4982 (version "0.14.0")
4983 (source (origin
4984 (method url-fetch)
4985 (uri (string-append
4986 "https://github.com/bbatsov/helm-projectile/archive/v"
4987 version
4988 ".tar.gz"))
4989 (file-name (string-append name "-" version ".tar.gz"))
4990 (sha256
4991 (base32
4992 "19cfmilqh8kbab3b2hmx6lyrj73q6vfmn3p730x95g23iz16mnd5"))))
4993 (build-system emacs-build-system)
4994 (propagated-inputs
4995 `(("emacs-dash" ,emacs-dash)
4996 ("emacs-helm" ,emacs-helm)
4997 ("emacs-projectile" ,emacs-projectile)))
4998 (home-page "https://github.com/bbatsov/helm-projectile")
4999 (synopsis "Helm integration for Projectile")
5000 (description
5001 "This Emacs library provides a Helm interface for Projectile.")
5002 (license license:gpl3+)))
5003
5004(define-public emacs-helm-make
5005 (let ((commit "feae8df22bc4b20705ea08ac9adfc2b43bb348d0")
5006 (revision "1"))
5007 (package
5008 (name "emacs-helm-make")
5009 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
5010 (source
5011 (origin
5012 (method git-fetch)
5013 (uri (git-reference
5014 (url "https://github.com/abo-abo/helm-make.git")
5015 (commit commit)))
5016 (file-name (string-append name "-" version "-checkout"))
5017 (sha256
5018 (base32
5019 "1y2v77mmd1bfkkz51cnk1l0dg3lvvxc39wlamnm7wjns66dbvlam"))))
5020 (build-system emacs-build-system)
5021 (propagated-inputs
5022 `(("emacs-helm" ,emacs-helm)
5023 ("emacs-projectile" ,emacs-projectile)))
5024 (home-page "https://github.com/abo-abo/helm-make")
5025 (synopsis "Select a Makefile target with helm")
5026 (description "@code{helm-make} or @code{helm-make-projectile} will give
5027you a @code{helm} selection of directory Makefile's targets. Selecting a
5028target will call @code{compile} on it.")
5029 (license license:gpl3+))))
5030
5031(define-public emacs-cider
5032 (package
5033 (name "emacs-cider")
5034 (version "0.18.0")
5035 (source
5036 (origin
5037 (method git-fetch)
5038 (uri (git-reference
5039 (url "https://github.com/clojure-emacs/cider.git")
5040 (commit (string-append "v" version))))
5041 (file-name (git-file-name name version))
5042 (sha256
5043 (base32
5044 "1m9kc88vga3q5d731qnpngnsa0n57pf21k3hll20rw8rggrx4vdn"))))
5045 (build-system emacs-build-system)
5046 (arguments
5047 '(#:exclude ; Don't exclude 'cider-test.el'.
5048 '("^\\.dir-locals\\.el$" "^test/")))
5049 (propagated-inputs
5050 `(("emacs-clojure-mode" ,emacs-clojure-mode)
5051 ("emacs-sesman" ,emacs-sesman)
5052 ("emacs-spinner" ,emacs-spinner)
5053 ("emacs-pkg-info" ,emacs-pkg-info)
5054 ("emacs-queue" ,emacs-queue)))
5055 (home-page "https://cider.readthedocs.io/")
5056 (synopsis "Clojure development environment for Emacs")
5057 (description
5058 "CIDER (Clojure Interactive Development Environment that Rocks) aims to
5059provide an interactive development experience similar to the one you'd get
5060when programming in Emacs Lisp, Common Lisp (with SLIME or Sly), Scheme (with
5061Geiser) and Smalltalk.
5062
5063CIDER is the successor to the now deprecated combination of using SLIME +
5064swank-clojure for Clojure development.
5065
5066There are plenty of differences between CIDER and SLIME, but the core ideas
5067are pretty much the same (and SLIME served as the principle inspiration for
5068CIDER).")
5069 (license license:gpl3+)))
5070
5071;; There hasn't been a tag or release since 2015, so we take the latest
5072;; commit.
5073(define-public emacs-sly
5074 (let ((commit "486bfbe95612bcdc0960c490207970a188e0fbb9")
5075 (revision "1"))
5076 (package
5077 (name "emacs-sly")
5078 (version (string-append "1.0.0-" revision "." (string-take commit 9)))
5079 (source
5080 (origin
5081 (method git-fetch)
5082 (uri (git-reference
5083 (url "https://github.com/joaotavora/sly.git")
5084 (commit commit)))
5085 (file-name (git-file-name name version))
5086 (sha256
5087 (base32
5088 "0ib4q4k3h3qn88pymyjjmlmnpizdn1mfg5gpk5a715nqsgxlg09l"))))
5089 (build-system emacs-build-system)
5090 (arguments
5091 `(#:include (cons "^lib\\/" %default-include)
5092 #:phases
5093 ;; The package provides autoloads.
5094 (modify-phases %standard-phases
5095 (delete 'make-autoloads))))
5096 (home-page "https://github.com/joaotavora/sly")
5097 (synopsis "Sylvester the Cat's Common Lisp IDE")
5098 (description
5099 "SLY is Sylvester the Cat's Common Lisp IDE. SLY is a fork of SLIME, and
5100contains the following improvements over it:
5101
5102@enumerate
5103@item Completely redesigned REPL based on Emacs's own full-featured
5104 @code{comint.el}
5105@item Live code annotations via a new @code{sly-stickers} contrib
5106@item Consistent interactive button interface. Everything can be copied to
5107 the REPL.
5108@item Multiple inspectors with independent history
5109@item Regexp-capable @code{M-x sly-apropos}
5110@item Contribs are first class SLY citizens and enabled by default
5111@item Use ASDF to loads contribs on demand.
5112@end enumerate
5113
5114SLY tracks SLIME's bugfixes and all its familar features (debugger, inspector,
5115xref, etc...) are still available, but with better integration.")
5116 (license license:gpl3+))))
5117
5118(define-public emacs-lua-mode
5119 (let ((commit "652e299cb967fccca827dda381d61a9c144d97de")
5120 (revision "1"))
5121 (package
5122 (name "emacs-lua-mode")
5123 (version (string-append "20151025." revision "-" (string-take commit 9)))
5124 (home-page "https://github.com/immerrr/lua-mode/")
5125 (source (origin
5126 (method git-fetch)
5127 (uri (git-reference
5128 (url home-page)
5129 (commit commit)))
5130 (file-name (string-append name "-" version ".checkout"))
5131 (sha256
5132 (base32
5133 "053025k930wh0lak6rc1973ynfrmm8zsyzfqhhd39x7abkl41hc9"))))
5134 (build-system emacs-build-system)
5135 (synopsis "Major mode for lua")
5136 (description
5137 "This Emacs package provides a mode for @uref{https://www.lua.org/,
5138Lua programing language}.")
5139 (license license:gpl2+))))
5140
5141(define-public emacs-ebuild-mode
5142 (package
5143 (name "emacs-ebuild-mode")
5144 (version "1.37")
5145 (source (origin
5146 (method url-fetch)
5147 (uri (string-append
5148 "https://dev.gentoo.org/~ulm/emacs/ebuild-mode"
5149 "-" version ".tar.xz"))
5150 (file-name (string-append name "-" version ".tar.xz"))
5151 (sha256
5152 (base32
5153 "07dzrdjjczkxdfdgi60h4jjkvzi4p0k9rij2wpfp8s03ay3qldpp"))))
5154 (build-system emacs-build-system)
5155 (home-page "https://devmanual.gentoo.org")
5156 (synopsis "Major modes for Gentoo package files")
5157 (description
5158 "This Emacs package provides modes for ebuild, eclass, eblit, GLEP42
5159news items, openrc and runscripts.")
5160 (license license:gpl2+)))
5161
5162(define-public emacs-evil
5163 (let ((commit "230b87212c81aaa68ef5547a6b998d9c365fe139"))
5164 (package
5165 (name "emacs-evil")
5166 (version (git-version "1.2.13" "1" commit))
5167 (source
5168 (origin
5169 (method git-fetch)
5170 (uri (git-reference
5171 (url "https://github.com/emacs-evil/evil")
5172 (commit commit)))
5173 (file-name (string-append name "-" version "-checkout"))
5174 (sha256
5175 (base32
5176 "0c9zy3bpck10gcrv79kd3h7i4ygd5bgbgy773n0lg7a2r5kwn1gx"))))
5177 (build-system emacs-build-system)
5178 (propagated-inputs
5179 `(("emacs-undo-tree" ,emacs-undo-tree)
5180 ("emacs-goto-chg" ,emacs-goto-chg)))
5181 (home-page "https://github.com/emacs-evil/evil")
5182 (synopsis "Extensible Vi layer for Emacs")
5183 (description
5184 "Evil is an extensible vi layer for Emacs. It emulates the
5185main features of Vim, and provides facilities for writing custom
5186extensions.")
5187 (license license:gpl3+))))
5188
5189(define-public emacs-evil-collection
5190 (let ((commit "4e1f0e0b17153d460805a0da90d6191d66b2673d")
5191 (revision "5"))
5192 (package
5193 (name "emacs-evil-collection")
5194 (version (git-version "0.0.1" revision commit))
5195 (source (origin
5196 (method git-fetch)
5197 (uri (git-reference
5198 (url "https://github.com/emacs-evil/evil-collection")
5199 (commit commit)))
5200 (file-name (string-append name "-" version "-checkout"))
5201 (sha256
5202 (base32
5203 "11d5ppdnb2y2mwsdd9g62h7zds962kw3nss89zv5iwgcf9f1fb5x"))))
5204 (build-system emacs-build-system)
5205 (propagated-inputs
5206 `(("emacs-evil" ,emacs-evil)))
5207 (home-page "https://github.com/emacs-evil/evil-collection")
5208 (synopsis "Collection of Evil bindings for many major and minor modes")
5209 (description "This is a collection of Evil bindings for the parts of
5210Emacs that Evil does not cover properly by default, such as @code{help-mode},
5211@code{M-x calendar}, Eshell and more.")
5212 (license license:gpl3+))))
5213
5214(define-public emacs-goto-chg
5215 (package
5216 (name "emacs-goto-chg")
5217 (version "1.6")
5218 (source
5219 (origin
5220 (method url-fetch)
5221 ;; There is no versioned source.
5222 (uri "https://www.emacswiki.org/emacs/download/goto-chg.el")
5223 (file-name (string-append "goto-chg-" version ".el"))
5224 (sha256
5225 (base32
5226 "078d6p4br5vips7b9x4v6cy0wxf6m5ij9gpqd4g33bryn22gnpij"))))
5227 (build-system emacs-build-system)
5228 ;; There is no other home page.
5229 (home-page "https://www.emacswiki.org/emacs/goto-chg.el")
5230 (synopsis "Go to the last change in the Emacs buffer")
5231 (description
5232 "This package provides @code{M-x goto-last-change} command that goes to
5233the point of the most recent edit in the current Emacs buffer. When repeated,
5234go to the second most recent edit, etc. Negative argument, @kbd{C-u -}, is
5235used for reverse direction.")
5236 (license license:gpl2+)))
5237
5238(define-public emacs-monroe
5239 (package
5240 (name "emacs-monroe")
5241 (version "0.3.1")
5242 (source
5243 (origin
5244 (method url-fetch)
5245 (uri (string-append "https://github.com/sanel/monroe/archive/"
5246 version ".tar.gz"))
5247 (file-name (string-append name "-" version ".tar.gz"))
5248 (sha256
5249 (base32
5250 "0icdx8shkd951phlnmcq1vqaxp1l667q5rjscskc5r22aylakh4w"))))
5251 (build-system emacs-build-system)
5252 (home-page "https://github.com/sanel/monroe")
5253 (synopsis "Clojure nREPL client for Emacs")
5254 (description
5255 "Monroe is a nREPL client for Emacs, focused on simplicity and easy
5256distribution, primarily targeting Clojure users")
5257 (license license:gpl3+)))
5258
5259(define-public emacs-orgalist
5260 (package
5261 (name "emacs-orgalist")
5262 (version "1.9")
5263 (source
5264 (origin
5265 (method url-fetch)
5266 (uri (string-append "https://elpa.gnu.org/packages/"
5267 "orgalist-" version ".el"))
5268 (sha256
5269 (base32
5270 "1rmmcyiiqkq54hn74nhzxzl4nvd902hv6gq341jwhrm7yiagffi6"))))
5271 (build-system emacs-build-system)
5272 (home-page "http://elpa.gnu.org/packages/orgalist.html")
5273 (synopsis "Manage Org-like lists in non-Org buffers")
5274 (description "Write Org mode's plain lists in non-Org buffers. More
5275specifically, Orgalist supports the syntax of Org mode for numbered,
5276unnumbered, description items, checkboxes, and counter cookies.
5277
5278The library also implements radio lists, i.e., lists written in Org
5279syntax later translated into the host format, e.g., LaTeX or HTML.")
5280 (license license:gpl3+)))
5281
5282(define-public emacs-writegood-mode
5283 (package
5284 (name "emacs-writegood-mode")
5285 (version "2.0.2")
5286 (home-page "https://github.com/bnbeckwith/writegood-mode")
5287 (source (origin
5288 (method git-fetch)
5289 (uri (git-reference
5290 (url home-page)
5291 (commit (string-append "v" version))))
5292 (sha256
5293 (base32
5294 "1nnjn1r669hvvzfycllwap4w04m8rfsk4nzcg8057m1f263kj31b"))
5295 (file-name (string-append name "-checkout"))))
5296 (build-system emacs-build-system)
5297 (synopsis "Polish up poor writing on the fly")
5298 (description
5299 "This minor mode tries to find and highlight problems with your writing
5300in English as you type. It primarily detects \"weasel words\" and abuse of
5301passive voice.")
5302 (license license:gpl3+)))
5303
5304(define-public emacs-neotree
5305 (package
5306 (name "emacs-neotree")
5307 (version "0.5.2")
5308 (home-page "https://github.com/jaypei/emacs-neotree")
5309 (source (origin
5310 (method url-fetch)
5311 (uri (string-append
5312 "https://github.com/jaypei/" name
5313 "/archive/" version ".tar.gz"))
5314 (sha256
5315 (base32
5316 "1zd6dchwyijnf7kgchfcp51gs938l204dk9z6mljrfqf2zy0gp12"))
5317 (file-name (string-append name "-" version ".tar.gz"))))
5318 (build-system emacs-build-system)
5319 (synopsis "Folder tree view for Emacs")
5320 (description "This Emacs package provides a folder tree view.")
5321 (license license:gpl3+)))
5322
5323(define-public emacs-org
5324 (package
5325 (name "emacs-org")
5326 ;; emacs-org-contrib inherits from this package. Please update its sha256
5327 ;; checksum as well.
5328 (version "9.2")
5329 (source (origin
5330 (method url-fetch)
5331 (uri (string-append "http://elpa.gnu.org/packages/org-"
5332 version ".tar"))
5333 (sha256
5334 (base32
5335 "14ydwh2r360fpi6v2g9rgf0zazy2ddq1pcdxvzn73h65glnnclz9"))))
5336 (build-system emacs-build-system)
5337 (home-page "https://orgmode.org/")
5338 (synopsis "Outline-based notes management and organizer")
5339 (description "Org is an Emacs mode for keeping notes, maintaining TODO
5340lists, and project planning with a fast and effective lightweight markup
5341language. It also is an authoring system with unique support for literate
5342programming and reproducible research.")
5343 (license license:gpl3+)))
5344
5345(define-public emacs-org-contrib
5346 (package
5347 (inherit emacs-org)
5348 (name "emacs-org-contrib")
5349 (version "20181230")
5350 (source (origin
5351 (method url-fetch)
5352 (uri (string-append "https://orgmode.org/elpa/org-plus-contrib-"
5353 version ".tar"))
5354 (sha256
5355 (base32
5356 "0gibwcjlardjwq19bh0zzszv0dxxlml0rh5iikkcdynbgndk1aa1"))))
5357 (arguments
5358 `(#:modules ((guix build emacs-build-system)
5359 (guix build utils)
5360 (guix build emacs-utils)
5361 (ice-9 ftw)
5362 (srfi srfi-1))
5363 #:phases
5364 (modify-phases %standard-phases
5365 (add-after 'install 'delete-org-files
5366 (lambda* (#:key inputs outputs #:allow-other-keys)
5367 (let* ((out (assoc-ref outputs "out"))
5368 (org (assoc-ref inputs "org"))
5369 (contrib-files
5370 (map basename (find-files out)))
5371 (org+contrib-files
5372 (map basename (find-files org)))
5373 (duplicates (lset-intersection
5374 string=? contrib-files org+contrib-files)))
5375 (with-directory-excursion
5376 (string-append
5377 out "/share/emacs/site-lisp/guix.d/org-contrib-" ,version)
5378 (for-each delete-file duplicates))
5379 #t))))))
5380 (propagated-inputs
5381 `(("arduino-mode" ,emacs-arduino-mode)
5382 ("cider" ,emacs-cider)
5383 ("org" ,emacs-org)
5384 ("scel" ,emacs-scel)))
5385 (synopsis "Contributed packages to Org mode")
5386 (description "Org is an Emacs mode for keeping notes, maintaining TODO
5387lists, and project planning with a fast and effective plain-text system.
5388
5389This package is equivalent to org-plus-contrib, but only includes additional
5390files that you would find in @file{contrib/} from the git repository.")))
5391
5392(define-public emacs-flx
5393 (package
5394 (name "emacs-flx")
5395 (version "0.6.1")
5396 (source
5397 (origin
5398 (method url-fetch)
5399 (uri (string-append "https://github.com/lewang/"
5400 "flx/archive/v" version ".tar.gz"))
5401 (sha256
5402 (base32
5403 "0bkcpnf1j4i2fcc2rllwbz62l00sw2mcia6rm5amgwvlkqavmkv6"))
5404 (file-name (string-append name "-" version ".tar.gz"))))
5405 (build-system emacs-build-system)
5406 (home-page "https://github.com/lewang/flx")
5407 (synopsis "Fuzzy matching for Emacs")
5408 (description
5409 "Flx provides fuzzy matching for emacs a la sublime text.
5410The sorting algorithm is a balance between word beginnings (abbreviation)
5411and contiguous matches (substring). The longer the substring match,
5412the higher it scores. This maps well to how we think about matching.
5413Flx has support for ido (interactively do things) through flx-ido.")
5414 (license license:gpl3+)))
5415
5416(define-public emacs-cyberpunk-theme
5417 (package
5418 (name "emacs-cyberpunk-theme")
5419 (version "1.19")
5420 (source
5421 (origin
5422 (method url-fetch)
5423 (uri (string-append "https://github.com/n3mo/cyberpunk-theme.el/"
5424 "archive/" version ".tar.gz"))
5425 (sha256
5426 (base32
5427 "05l5fxw1mn5py6mfhxrzyqjq0d8m5m1akfi46vrgh13r414jffvv"))
5428 (file-name (string-append name "-" version ".tar.gz"))))
5429 (build-system emacs-build-system)
5430 (home-page "https://github.com/n3mo/cyberpunk-theme.el")
5431 (synopsis "Cyberpunk theme for emacs built-in color theme support")
5432 (description
5433 "Cyberpunk color theme for the emacs 24+ built-in color theme support
5434known loosely as deftheme. Many mode-specific customizations are included.")
5435 (license license:gpl3+)))
5436
5437(define-public emacs-danneskjold-theme
5438 (let* ((commit "8733d2fe8743e8a01826ea6d4430ef376c727e57")
5439 (revision "1"))
5440 (package
5441 (name "emacs-danneskjold-theme")
5442 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
5443 (home-page "https://github.com/rails-to-cosmos/danneskjold-theme")
5444 (source
5445 (origin
5446 (method git-fetch)
5447 (uri (git-reference
5448 (url home-page)
5449 (commit commit)))
5450 (file-name (string-append name "-" version "-checkout"))
5451 (sha256
5452 (base32
5453 "0s6rbsb0y8i8m5b9xm4gw1p1cxsxdqnqxqqb638pygz9f76mbir1"))))
5454 (build-system emacs-build-system)
5455 (arguments
5456 `(#:phases
5457 (modify-phases %standard-phases
5458 (add-after 'unpack 'delete-screenshots
5459 (lambda _
5460 (delete-file-recursively "screenshots") #t)))))
5461 (synopsis "High-contrast Emacs theme")
5462 (description
5463 "@code{danneskjold-theme} is a high-contrast theme for Emacs.")
5464 (license license:gpl3+))))
5465
5466(define-public emacs-dream-theme
5467 (let* ((commit "107a11d74365046f28a1802a2bdb5e69e4a7488b")
5468 (revision "1"))
5469 (package
5470 (name "emacs-dream-theme")
5471 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
5472 (source
5473 (origin
5474 (method git-fetch)
5475 (uri (git-reference
5476 (url "https://github.com/djcb/dream-theme")
5477 (commit commit)))
5478 (file-name (string-append name "-" version "-checkout"))
5479 (sha256
5480 (base32
5481 "0za18nfkq4xqm35k6006vsixcbmvmxqgma4iw5sw37h8vmcsdylk"))))
5482 (build-system emacs-build-system)
5483 (home-page "https://github.com/djcb/dream-theme")
5484 (synopsis "High-contrast Emacs theme")
5485 (description
5486 "@code{dream-theme} is a dark, clean theme for Emacs. It is inspired
5487by zenburn, sinburn and similar themes, but slowly diverging from them.")
5488 (license license:gpl3+))))
5489
5490(define-public emacs-auto-complete
5491 (package
5492 (name "emacs-auto-complete")
5493 (version "1.5.1")
5494 (source
5495 (origin
5496 (method url-fetch)
5497 (uri (string-append "https://github.com/auto-complete/"
5498 "auto-complete/archive/v" version ".tar.gz"))
5499 (sha256
5500 (base32
5501 "1jvq4lj00hwml75lpmlciazy8f3bbg13gffsfnl835p4qd8l7yqv"))
5502 (file-name (string-append name "-" version ".tar.gz"))))
5503 (build-system emacs-build-system)
5504 (propagated-inputs
5505 `(("emacs-popup" ,emacs-popup)))
5506 (home-page "https://github.com/auto-complete/auto-complete")
5507 (synopsis "Intelligent auto-completion extension for Emacs")
5508 (description
5509 "Auto-Complete is an intelligent auto-completion extension for Emacs.
5510It extends the standard Emacs completion interface and provides an environment
5511that allows users to concentrate more on their own work. Its features are:
5512a visual interface, reduce overhead of completion by using statistic method,
5513extensibility.")
5514 (license license:gpl3+)))
5515
5516(define-public emacs-nginx-mode
5517 (package
5518 (name "emacs-nginx-mode")
5519 (version "1.1.9")
5520 (source
5521 (origin
5522 (method url-fetch)
5523 (uri (string-append
5524 "https://github.com/ajc/nginx-mode/archive/v"
5525 version ".tar.gz"))
5526 (file-name (string-append name "-" version ".tar.gz"))
5527 (sha256
5528 (base32
5529 "0bzyrj6zz1hm67bkhw23bam7qc869s3zg7m1rb1c3aa4n0aw90cq"))))
5530 (build-system emacs-build-system)
5531 (home-page "https://github.com/ajc/nginx-mode")
5532 (synopsis "Emacs major mode for editing nginx config files")
5533 (description "This package provides an Emacs major mode for
5534editing nginx config files.")
5535 (license license:gpl2+)))
5536
5537(define-public emacs-stream
5538 (package
5539 (name "emacs-stream")
5540 (version "2.2.0")
5541 (home-page "https://github.com/NicolasPetton/stream")
5542 (source
5543 (origin
5544 (method url-fetch)
5545 (file-name (string-append name "-" version ".tar.gz"))
5546 (uri (string-append home-page "/archive/"version ".tar.gz"))
5547 (sha256
5548 (base32 "03ql4nqfz5pn55mjly6clhvc3g7x2d28kj7mrlqmigvjbql39xxc"))))
5549 (build-system emacs-build-system)
5550 (synopsis "Implementation of streams for Emacs")
5551 (description "This library provides an implementation of streams for Emacs.
5552Streams are implemented as delayed evaluation of cons cells.")
5553 (license license:gpl3+)))
5554
5555(define-public emacs-el-search
5556 (let ((commit "f26277bfbb3fc3fc74beea6592f294c439796bd4")
5557 (revision "1"))
5558 (package
5559 (name "emacs-el-search")
5560 ;; No ufficial release.
5561 (version (string-append "0.0-" revision "." (string-take commit 7)))
5562 (home-page "https://github.com/emacsmirror/el-search")
5563 (source
5564 (origin
5565 (method git-fetch)
5566 (file-name (string-append name "-" version ".tar.gz"))
5567 (uri (git-reference
5568 (commit commit)
5569 (url (string-append home-page ".git"))))
5570 (sha256
5571 (base32 "12xf40h9sb7xxg2r97gsia94q02543mgiiiw46fzh1ac7b7993g6"))))
5572 (build-system emacs-build-system)
5573 (inputs `(("emacs-stream" ,emacs-stream)))
5574 (synopsis "Expression based interactive search for emacs-lisp-mode")
5575 (description "This package provides expression based interactive search
5576procedures for emacs-lisp-mode.")
5577 (license license:gpl3+))))
5578
5579(define-public emacs-ht
5580 (package
5581 (name "emacs-ht")
5582 (version "2.1")
5583 (source
5584 (origin
5585 (method url-fetch)
5586 (uri (string-append
5587 "https://github.com/Wilfred/ht.el/archive/"
5588 version ".tar.gz"))
5589 (file-name (string-append name "-" version ".tar.gz"))
5590 (sha256
5591 (base32
5592 "1lpba36kzxcc966fvsbrfpy8ah9gnvay0yk26gbyjil0rggrbqzj"))))
5593 (build-system emacs-build-system)
5594 (propagated-inputs `(("emacs-dash" ,emacs-dash)))
5595 (home-page "https://github.com/Wilfred/ht.el")
5596 (synopsis "Hash table library for Emacs")
5597 (description
5598 "This package simplifies the use of hash tables in elisp. It also
5599provides functions to convert hash tables from and to alists and plists.")
5600 (license license:gpl3+)))
5601
5602(define-public emacs-log4e
5603 (package
5604 (name "emacs-log4e")
5605 (version "0.3.0")
5606 (source
5607 (origin
5608 (method url-fetch)
5609 (uri (string-append
5610 "https://github.com/aki2o/log4e/archive/v"
5611 version ".tar.gz"))
5612 (file-name (string-append name "-" version ".tar.gz"))
5613 (sha256
5614 (base32
5615 "0nbdpbw353snda3v19l9hsm6gimppwnpxj18amm350bm81lyim2g"))))
5616 (build-system emacs-build-system)
5617 (arguments
5618 `(#:phases
5619 (modify-phases %standard-phases
5620 (add-after 'unpack 'remove-tests
5621 ;; Guile builder complains about null characters in some
5622 ;; strings of test files. Remove "test" directory (it is not
5623 ;; needed anyway).
5624 (lambda _
5625 (delete-file-recursively "test"))))))
5626 (home-page "https://github.com/aki2o/log4e")
5627 (synopsis "Logging framework for elisp")
5628 (description
5629 "This package provides a logging framework for elisp. It allows
5630you to deal with multiple log levels.")
5631 (license license:gpl3+)))
5632
5633(define-public emacs-gntp
5634 (package
5635 (name "emacs-gntp")
5636 (version "0.1")
5637 (source
5638 (origin
5639 (method url-fetch)
5640 (uri (string-append
5641 "https://github.com/tekai/gntp.el/archive/v"
5642 version ".tar.gz"))
5643 (file-name (string-append name "-" version ".tar.gz"))
5644 (sha256
5645 (base32
5646 "16c1dfkia9yhl206bdhjr3b8kfvqcqr38jl5lq8qsyrrzsnmghny"))))
5647 (build-system emacs-build-system)
5648 (home-page "https://github.com/tekai/gntp.el")
5649 (synopsis "Growl Notification Protocol for Emacs")
5650 (description
5651 "This package implements the Growl Notification Protocol GNTP
5652described at @uref{http://www.growlforwindows.com/gfw/help/gntp.aspx}.
5653It is incomplete as it only lets you send but not receive
5654notifications.")
5655 (license license:bsd-3)))
5656
5657(define-public emacs-alert
5658 (package
5659 (name "emacs-alert")
5660 (version "1.2")
5661 (source
5662 (origin
5663 (method url-fetch)
5664 (uri (string-append
5665 "https://github.com/jwiegley/alert/archive/v"
5666 version ".tar.gz"))
5667 (file-name (string-append name "-" version ".tar.gz"))
5668 (sha256
5669 (base32
5670 "1693kck3k2iz5zhpmxwqyafxm68hr6gzs60lkxd3j1wlp2c9fwyr"))))
5671 (build-system emacs-build-system)
5672 (propagated-inputs
5673 `(("emacs-gntp" ,emacs-gntp)
5674 ("emacs-log4e" ,emacs-log4e)))
5675 (home-page "https://github.com/jwiegley/alert")
5676 (synopsis "Growl-style notification system for Emacs")
5677 (description
5678 "Alert is a Growl-workalike for Emacs which uses a common notification
5679interface and multiple, selectable \"styles\", whose use is fully
5680customizable by the user.")
5681 (license license:gpl2+)))
5682
5683(define-public emacs-mu4e-alert
5684 (package
5685 (name "emacs-mu4e-alert")
5686 (version "1.0")
5687 (source
5688 (origin
5689 (method url-fetch)
5690 (uri (string-append
5691 "https://github.com/iqbalansari/mu4e-alert/archive/v"
5692 version ".tar.gz"))
5693 (file-name (string-append name "-" version ".tar.gz"))
5694 (sha256
5695 (base32
5696 "07qc834qnxn8xi4bw5nawj8g91bmkzw0r0vahkgysp7r9xrf57gj"))))
5697 (build-system emacs-build-system)
5698 (propagated-inputs
5699 `(("emacs-alert" ,emacs-alert)
5700 ("emacs-s" ,emacs-s)
5701 ("emacs-ht" ,emacs-ht)
5702 ("mu" ,mu)))
5703 (home-page "https://github.com/iqbalansari/mu4e-alert")
5704 (synopsis "Desktop notification for mu4e")
5705 (description
5706 "This package provides desktop notifications for mu4e.
5707Additionally it can display the number of unread emails in the
5708mode-line.")
5709 (license license:gpl3+)))
5710
5711(define-public emacs-pretty-mode
5712 (package
5713 (name "emacs-pretty-mode")
5714 (version "2.0.3")
5715 (source
5716 (origin
5717 (method url-fetch)
5718 (uri (string-append "https://github.com/akatov/pretty-mode/"
5719 "archive/" version ".tar.gz"))
5720 (file-name (string-append name "-" version ".tar.gz"))
5721 (sha256
5722 (base32
5723 "1fan7m4vnqs8kpg7r54kx3g7faadkpkf9kzarfv8n57kq8w157pl"))))
5724 (build-system emacs-build-system)
5725 (home-page "https://github.com/akatov/pretty-mode")
5726 (synopsis "Redisplay parts of the buffer as Unicode symbols")
5727 (description
5728 "Emacs minor mode for redisplaying parts of the buffer as pretty symbols.")
5729 (license license:gpl3+)))
5730
5731(define-public emacs-yasnippet
5732 (package
5733 (name "emacs-yasnippet")
5734 (version "0.13.0")
5735 (source (origin
5736 (method url-fetch)
5737 (uri (string-append "https://github.com/joaotavora/yasnippet/"
5738 "archive/" version ".tar.gz"))
5739 (file-name (string-append name "-" version ".tar.gz"))
5740 (sha256
5741 (base32
5742 "12ls2x17agzbrj1xynjbmfa11igqxia4hj4fv6fpr66yci2r1plc"))
5743 (modules '((guix build utils)))
5744 (snippet
5745 '(begin
5746 ;; YASnippet expects a "snippets" subdirectory in the same
5747 ;; directory as yasnippet.el, but we don't install it
5748 ;; because it's a git submodule pointing to an external
5749 ;; repository. Adjust `yas-snippet-dirs' to prevent
5750 ;; warnings about a missing directory.
5751 (substitute* "yasnippet.el"
5752 (("^ +'yas-installed-snippets-dir\\)\\)\n")
5753 "))\n"))
5754 #t))))
5755 (build-system emacs-build-system)
5756 (home-page "https://github.com/joaotavora/yasnippet")
5757 (synopsis "Yet another snippet extension for Emacs")
5758 (description
5759 "YASnippet is a template system for Emacs. It allows you to type an
5760abbreviation and automatically expand it into function templates.")
5761 (license license:gpl3+)))
5762
5763(define-public emacs-yasnippet-snippets
5764 (let ((commit "885050d34737e2fb36a3e7759d60c09347bd4ce0")
5765 (revision "1"))
5766 (package
5767 (name "emacs-yasnippet-snippets")
5768 (version (string-append "1-" revision "." (string-take commit 8)))
5769 (source
5770 (origin
5771 (method git-fetch)
5772 (uri (git-reference
5773 (url "https://github.com/AndreaCrotti/yasnippet-snippets")
5774 (commit commit)))
5775 (file-name (string-append name "-" version "-checkout"))
5776 (sha256
5777 (base32
5778 "1m935zgglw0iakzrixld5rcjz3wnj84f8wy2mvc3pggjri9l0qr9"))))
5779 (build-system trivial-build-system)
5780 (arguments
5781 `(#:modules ((ice-9 ftw)
5782 (ice-9 regex)
5783 (guix build utils))
5784 #:builder
5785 (begin
5786 (use-modules (ice-9 ftw)
5787 (ice-9 regex)
5788 (guix build utils))
5789 (with-directory-excursion (assoc-ref %build-inputs "source")
5790 (for-each (lambda (dir)
5791 (copy-recursively
5792 dir
5793 (string-append %output
5794 "/share/emacs/yasnippet-snippets/"
5795 dir)))
5796 (scandir "." (lambda (fname)
5797 (and (string-match "-mode$" fname)
5798 (directory-exists? fname))))))
5799 #t)))
5800 (home-page "https://github.com/AndreaCrotti/yasnippet-snippets")
5801 (synopsis "Collection of YASnippet snippets for many languages")
5802 (description
5803 "Provides Andrea Crotti's collection of YASnippet snippets. After installation,
5804the snippets will be in \"~/.guix-profile/share/emacs/yasnippet-snippets/\".
5805To make YASnippet aware of these snippets, add the above directory to
5806@code{yas-snippet-dirs}.")
5807 (license license:expat))))
5808
5809(define-public emacs-helm-c-yasnippet
5810 (let ((commit "65ca732b510bfc31636708aebcfe4d2d845b59b0")
5811 (revision "1"))
5812 (package
5813 (name "emacs-helm-c-yasnippet")
5814 (version (string-append "0.6.7" "-" revision "."
5815 (string-take commit 7)))
5816 (source (origin
5817 (method git-fetch)
5818 (uri (git-reference
5819 (url "https://github.com/emacs-jp/helm-c-yasnippet")
5820 (commit commit)))
5821 (file-name (string-append name "-" version "-checkout"))
5822 (sha256
5823 (base32
5824 "1cbafjqlzxbg19xfdqsinsh7afq58gkf44rsg1qxfgm8g6zhr7f8"))))
5825 (build-system emacs-build-system)
5826 (propagated-inputs
5827 `(("emacs-helm" ,emacs-helm)
5828 ("emacs-yasnippet" ,emacs-yasnippet)))
5829 (home-page "https://github.com/emacs-jp/helm-c-yasnippet")
5830 (synopsis "Helm integration for Yasnippet")
5831 (description "This Emacs library provides Helm interface for
5832Yasnippet.")
5833 (license license:gpl2+))))
5834
5835(define-public emacs-helm-system-packages
5836 (package
5837 (name "emacs-helm-system-packages")
5838 (version "1.10.1")
5839 (source (origin
5840 (method git-fetch)
5841 (uri (git-reference
5842 (url "https://github.com/emacs-helm/helm-system-packages")
5843 (commit (string-append "v" version))))
5844 (file-name (string-append name "-" version "-checkout"))
5845 (sha256
5846 (base32
5847 "01by0c4lqi2cw8xmbxkjw7m9x78zssm31sx4hdpw5j35s2951j0f"))))
5848 (build-system emacs-build-system)
5849 (inputs
5850 `(("recutils" ,recutils)))
5851 (propagated-inputs
5852 `(("emacs-helm" ,emacs-helm)))
5853 (arguments
5854 `(#:phases
5855 (modify-phases %standard-phases
5856 (add-after 'unpack 'configure
5857 (lambda* (#:key inputs outputs #:allow-other-keys)
5858 (let ((recutils (assoc-ref inputs "recutils")))
5859 ;; Specify the absolute file names of the various
5860 ;; programs so that everything works out-of-the-box.
5861 (substitute* "helm-system-packages-guix.el"
5862 (("recsel") (string-append recutils "/bin/recsel")))))))))
5863 (home-page "https://github.com/emacs-helm/helm-system-packages")
5864 (synopsis "Helm System Packages is an interface to your package manager")
5865 (description "List all available packages in Helm (with installed
5866packages displayed in their own respective face). Fuzzy-search, mark and
5867execute the desired action over any selections of packages: Install,
5868uninstall, display packages details (in Org Mode) or insert details at point,
5869find files owned by packages... And much more, including performing all the
5870above over the network.")
5871 (license license:gpl3+)))
5872
5873(define-public emacs-memoize
5874 (package
5875 (name "emacs-memoize")
5876 (version "1.1")
5877 (source
5878 (origin
5879 (method url-fetch)
5880 (uri (string-append
5881 "https://github.com/skeeto/emacs-memoize/archive/"
5882 version ".tar.gz"))
5883 (file-name (string-append name "-" version ".tar.gz"))
5884 (sha256
5885 (base32
5886 "05ijgwi4ymxx31vpjm2pn356j85cykknajn14lrzz8pn5sh0vrg4"))))
5887 (build-system emacs-build-system)
5888 (arguments
5889 `(#:tests? #t
5890 #:test-command '("emacs" "--batch"
5891 "-l" "memoize-test.el"
5892 "-f" "ert-run-tests-batch-and-exit")))
5893 (home-page "https://github.com/skeeto/emacs-memoize")
5894 (synopsis "Emacs lisp memoization library")
5895 (description "@code{emacs-memoize} is an Emacs library for
5896memoizing functions.")
5897 (license license:unlicense)))
5898
5899(define-public emacs-linum-relative
5900 (package
5901 (name "emacs-linum-relative")
5902 (version "0.5")
5903 (source
5904 (origin
5905 (method url-fetch)
5906 (uri (string-append
5907 "https://github.com/coldnew/linum-relative/archive/"
5908 version ".tar.gz"))
5909 (file-name (string-append name "-" version ".tar.gz"))
5910 (sha256
5911 (base32
5912 "0s4frvr27866lw1rn3jal9wj5rkz9fx4yiszqv7w06azsdgsqksv"))))
5913 (build-system emacs-build-system)
5914 (home-page "https://github.com/coldnew/linum-relative")
5915 (synopsis "Relative line numbering for Emacs")
5916 (description "@code{emacs-linum-relative} displays the relative line
5917number on the left margin in Emacs.")
5918 (license license:gpl2+)))
5919
5920(define-public emacs-idle-highlight
5921 (package
5922 (name "emacs-idle-highlight")
5923 (version "1.1.3")
5924 (source
5925 (origin
5926 (method url-fetch)
5927 (uri (string-append
5928 "https://github.com/nonsequitur/idle-highlight-mode/archive/"
5929 version ".tar.gz"))
5930 (file-name (string-append name "-" version ".tar.gz"))
5931 (sha256
5932 (base32
5933 "0kdv10hrgqpskjh0zvpnzwlkn5bccnqxas62gkws6njln57bf8nl"))))
5934 (build-system emacs-build-system)
5935 (home-page "https://www.emacswiki.org/emacs/IdleHighlight")
5936 (synopsis "Highlights all occurrences of the word the point is on")
5937 (description
5938 "This Emacs package provides @code{idle-highlight-mode} that sets
5939 an idle timer to highlight all occurrences in the buffer of the word under
5940 the point.")
5941 (license license:gpl3+)))
5942
5943(define-public emacs-ox-twbs
5944 (package
5945 (name "emacs-ox-twbs")
5946 (version "1.1.1")
5947 (source
5948 (origin
5949 (method url-fetch)
5950 (uri (string-append
5951 "https://github.com/marsmining/ox-twbs/archive/v"
5952 version ".tar.gz"))
5953 (file-name (string-append name "-" version ".tar.gz"))
5954 (sha256
5955 (base32
5956 "1zaq8dczq5wijjk36114k2x3hfrqig3lyx6djril6wyk67vczyqs"))))
5957 (build-system emacs-build-system)
5958 (home-page "https://github.com/marsmining/ox-twbs")
5959 (synopsis "Export org-mode docs as HTML compatible with Twitter Bootstrap")
5960 (description
5961 "This Emacs package outputs your org-mode docs with a simple, clean and
5962modern look. It implements a new HTML back-end for exporting org-mode docs as
5963HTML compatible with Twitter Bootstrap. By default, HTML is exported with
5964jQuery and Bootstrap resources included via osscdn.")
5965 (license license:gpl3+)))
5966
5967(define-public emacs-highlight-sexp
5968 (package
5969 (name "emacs-highlight-sexp")
5970 (version "1.0")
5971 (source
5972 (origin
5973 (method url-fetch)
5974 (uri (string-append
5975 "https://github.com/daimrod/highlight-sexp/archive/v"
5976 version ".tar.gz"))
5977 (file-name (string-append name "-" version ".tar.gz"))
5978 (sha256
5979 (base32
5980 "0jwx87qkln1rg9wmv4qkgkml935fh2pkgrg5x4ca6n5dgb4q6rj1"))))
5981 (build-system emacs-build-system)
5982 (home-page "https://github.com/daimrod/highlight-sexp")
5983 (synopsis "Minor mode that highlights the s-exp at the current position")
5984 (description
5985 "This Emacs package highlights the s-exp at the current position.")
5986 (license license:gpl3+)))
5987
5988(define-public emacs-highlight-stages
5989 (let ((commit "29cbc5b78261916da042ddb107420083da49b271")
5990 (revision "1"))
5991 (package
5992 (name "emacs-highlight-stages")
5993 (version (string-append "1.1.0" "-" revision "." (string-take commit 7)))
5994 (source
5995 (origin
5996 (method git-fetch)
5997 (uri (git-reference
5998 (url "https://github.com/zk-phi/highlight-stages.git")
5999 (commit commit)))
6000 (file-name (string-append name "-" version "-checkout"))
6001 (sha256
6002 (base32
6003 "0r6nbcrr0dqpgm8dir8ahzjy7rw4nrac48byamzrq96r7ajlxlv0"))
6004 (patches
6005 (search-patches "emacs-highlight-stages-add-gexp.patch"))))
6006 (build-system emacs-build-system)
6007 (home-page "https://github.com/wigust/highlight-stages")
6008 (synopsis "Minor mode that highlights (quasi-quoted) expressions")
6009 (description "@code{highlight-stages} provides an Emacs minor mode that
6010highlights quasi-quoted expressions.")
6011 (license license:gpl3+))))
6012
6013(define-public emacspeak
6014 (package
6015 (name "emacspeak")
6016 (version "48.0")
6017 (source
6018 (origin
6019 (method url-fetch)
6020 (uri (string-append
6021 "https://github.com/tvraman/emacspeak/releases/download/"
6022 version "/emacspeak-" version ".tar.bz2"))
6023 (sha256
6024 (base32
6025 "07imi3hji06b3r7v7v59978q76s8a7ynmxwfc9j03pgnv965lpjy"))))
6026 (build-system gnu-build-system)
6027 (arguments
6028 '(#:make-flags (list (string-append "prefix="
6029 (assoc-ref %outputs "out")))
6030 #:phases
6031 (modify-phases %standard-phases
6032 (replace 'configure
6033 (lambda* (#:key outputs #:allow-other-keys)
6034 (let* ((out (assoc-ref outputs "out"))
6035 (lisp (string-append out
6036 "/share/emacs/site-lisp/emacspeak")))
6037 (setenv "SHELL" (which "sh"))
6038 ;; Configure Emacspeak according to etc/install.org.
6039 (invoke "make" "config"))))
6040 (add-after 'build 'build-espeak
6041 (lambda _
6042 (invoke "make" "espeak")))
6043 (replace 'install
6044 (lambda* (#:key inputs outputs #:allow-other-keys)
6045 (let* ((out (assoc-ref outputs "out"))
6046 (bin (string-append out "/bin"))
6047 (lisp (string-append out "/share/emacs/site-lisp/emacspeak"))
6048 (info (string-append out "/share/info"))
6049 (emacs (string-append (assoc-ref inputs "emacs")
6050 "/bin/emacs")))
6051 ;; According to etc/install.org, the Emacspeak directory should
6052 ;; be copied to its installation destination.
6053 (for-each
6054 (lambda (file)
6055 (copy-recursively file (string-append lisp "/" file)))
6056 '("etc" "info" "js" "lisp" "media" "scapes" "servers" "sounds"
6057 "stumpwm" "xsl"))
6058 ;; Make sure emacspeak is loaded from the correct directory.
6059 (substitute* "etc/emacspeak.sh"
6060 (("exec FLAVOR.*")
6061 (string-append "exec " emacs " -l " lisp
6062 "/lisp/emacspeak-setup.el $CL_ALL")))
6063 ;; Install the convenient startup script.
6064 (mkdir-p bin)
6065 (copy-file "etc/emacspeak.sh" (string-append bin "/emacspeak")))
6066 #t))
6067 (add-after 'install 'wrap-program
6068 (lambda* (#:key inputs outputs #:allow-other-keys)
6069 (let* ((out (assoc-ref outputs "out"))
6070 (emacspeak (string-append out "/bin/emacspeak"))
6071 (espeak (string-append (assoc-ref inputs "espeak")
6072 "/bin/espeak")))
6073 ;; The environment variable DTK_PROGRAM tells emacspeak what
6074 ;; program to use for speech.
6075 (wrap-program emacspeak
6076 `("DTK_PROGRAM" ":" prefix (,espeak)))
6077 #t))))
6078 #:tests? #f)) ; no check target
6079 (inputs
6080 `(("emacs" ,emacs)
6081 ("espeak" ,espeak)
6082 ("perl" ,perl)
6083 ("tcl" ,tcl)
6084 ("tclx" ,tclx)))
6085 (home-page "http://emacspeak.sourceforge.net")
6086 (synopsis "Audio desktop interface for Emacs")
6087 (description
6088 "Emacspeak is a speech interface that allows visually impaired users to
6089interact independently and efficiently with the computer. Audio formatting
6090--a technique pioneered by AsTeR-- and full support for W3C's Aural CSS (ACSS)
6091allows Emacspeak to produce rich aural presentations of electronic information.
6092By seamlessly blending all aspects of the Internet such as Web-surfing and
6093messaging, Emacspeak speech-enables local and remote information via a
6094consistent and well-integrated user interface.")
6095 (license license:gpl2+)))
6096
6097(define-public emacs-adaptive-wrap
6098 (package
6099 (name "emacs-adaptive-wrap")
6100 (version "0.5.1")
6101 (source (origin
6102 (method url-fetch)
6103 (uri (string-append
6104 "http://elpa.gnu.org/packages/adaptive-wrap-"
6105 version ".el"))
6106 (sha256
6107 (base32
6108 "0qi7gjprcpywk2daivnlavwsx53hl5wcqvpxbwinvigg42vxh3ll"))))
6109 (build-system emacs-build-system)
6110 (home-page "http://elpa.gnu.org/packages/adaptive-wrap.html")
6111 (synopsis "Smart line-wrapping with wrap-prefix")
6112 (description
6113 "This Emacs package provides the @code{adaptive-wrap-prefix-mode}
6114minor mode which sets the wrap-prefix property on the fly so that
6115single-long-line paragraphs get word-wrapped in a way similar to what
6116you'd get with @kbd{M-q} using @code{adaptive-fill-mode}, but without
6117actually changing the buffer's text.")
6118 (license license:gpl3+)))
6119
6120(define-public emacs-diff-hl
6121 (package
6122 (name "emacs-diff-hl")
6123 (version "1.8.5")
6124 (source
6125 (origin
6126 (method url-fetch)
6127 (uri (string-append "https://elpa.gnu.org/packages/diff-hl-"
6128 version ".tar"))
6129 (sha256
6130 (base32
6131 "1vxc7z7c2qs0mx7l5sa4sybi5qbzv0s79flj74p1ynw8dl3qxg3d"))))
6132 (build-system emacs-build-system)
6133 (home-page "https://github.com/dgutov/diff-hl")
6134 (synopsis
6135 "Highlight uncommitted changes using VC")
6136 (description
6137 "@code{diff-hl-mode} highlights uncommitted changes on the side of the
6138window (using the fringe, by default), allows you to jump between
6139the hunks and revert them selectively.")
6140 (license license:gpl3+)))
6141
6142(define-public emacs-diminish
6143 (package
6144 (name "emacs-diminish")
6145 (version "0.45")
6146 (source
6147 (origin
6148 (method url-fetch)
6149 (uri (string-append
6150 "https://github.com/myrjola/diminish.el/archive/v"
6151 version ".tar.gz"))
6152 (file-name (string-append name "-" version ".tar.gz"))
6153 (sha256
6154 (base32
6155 "0i3629sv5cfrrb00hcnmaqzgs8mk36yasc1ax3ry1ga09nr6rkj9"))))
6156 (build-system emacs-build-system)
6157 (home-page "https://github.com/myrjola/diminish.el")
6158 (synopsis "Diminish minor modes with no modeline display")
6159 (description "@code{emacs-diminish} implements hiding or
6160abbreviation of the mode line displays (lighters) of minor modes.")
6161 (license license:gpl2+)))
6162
6163(define-public emacs-use-package
6164 (let ((commit "da8c9e2840343906e732f9699e43d35a1f06481d")
6165 (revision "1"))
6166 (package
6167 (name "emacs-use-package")
6168 (version (git-version "2.3" revision commit))
6169 (source (origin
6170 (method git-fetch)
6171 (uri (git-reference
6172 (url "https://github.com/jwiegley/use-package")
6173 (commit commit)))
6174 (file-name (git-file-name name version))
6175 (sha256
6176 (base32
6177 "0jz38pbq1p9h85i6qcsh3sfzkd103y6mw3rg5zd14dxigp8ir3xz"))))
6178 (build-system emacs-build-system)
6179 (propagated-inputs
6180 `(("emacs-diminish" ,emacs-diminish)))
6181 (arguments
6182 `(#:tests? #t
6183 #:test-command '("emacs" "--batch"
6184 "-l" "use-package-tests.el"
6185 "-f" "ert-run-tests-batch-and-exit")))
6186 (home-page "https://github.com/jwiegley/use-package")
6187 (synopsis "Declaration for simplifying your .emacs")
6188 (description "The use-package macro allows you to isolate package
6189configuration in your @file{.emacs} file in a way that is both
6190performance-oriented and tidy.")
6191 (license license:gpl2+))))
6192
6193(define-public emacs-strace-mode
6194 (let* ((commit "6a69b4b06db6797af56f33eda5cb28af94e59f11")
6195 (revision "1"))
6196 (package
6197 (name "emacs-strace-mode")
6198 (version (string-append "0.0.2-" revision "." (string-take commit 7)))
6199 (source (origin
6200 (method git-fetch)
6201 (uri (git-reference
6202 (url "https://github.com/pkmoore/strace-mode")
6203 (commit commit)))
6204 (file-name (string-append name "-" version "-checkout"))
6205 (sha256
6206 (base32
6207 "1lbk2kzdznf2bkfazizfbimaxxzfzv00lrz1ran9dc2zqbc0bj9f"))))
6208 (build-system emacs-build-system)
6209 (home-page "https://github.com/pkmoore/strace-mode")
6210 (synopsis "Emacs major mode to highlight strace outputs")
6211 (description "@code{emacs-strace-mode} provides an Emacs major mode
6212 highlighting strace outputs.")
6213 (license license:gpl3+))))
6214
6215(define-public emacs-default-encrypt
6216 (package
6217 (name "emacs-default-encrypt")
6218 (version "4.3")
6219 (source
6220 (origin
6221 (method url-fetch)
6222 (uri (string-append
6223 "https://www.informationelle-selbstbestimmung-im-internet.de"
6224 "/emacs/jl-encrypt" version "/jl-encrypt.el"))
6225 (file-name (string-append "jl-encrypt-" version ".el"))
6226 (sha256
6227 (base32
6228 "16i3rlfp3jxlqvndn8idylhmczync3gwmy8a019v29vyr48rnnr0"))))
6229 (build-system emacs-build-system)
6230 (home-page "https://www.informationelle-selbstbestimmung-im-internet.de/Emacs.html")
6231 (synopsis "Automatically encrypt or sign Gnus messages in Emacs")
6232 (description
6233 "DefaultEncrypt is designed to be used with Gnus in Emacs. It
6234automatically encrypts messages that you send (e.g., email) when public keys
6235for all recipients are available, and it protects you from accidentally
6236sending un-encrypted messages. It can also be configured to automatically
6237sign messages that you send. For details and instructions on how to use
6238DefaultEncrypt, please refer to the home page or read the comments in the
6239source file, @file{jl-encrypt.el}.")
6240 (license license:gpl3+)))
6241
6242(define-public emacs-htmlize
6243 (package
6244 (name "emacs-htmlize")
6245 (version "1.53")
6246 (source
6247 (origin
6248 (method url-fetch)
6249 (uri (string-append
6250 "https://github.com/hniksic/emacs-htmlize/archive/release/"
6251 version ".tar.gz"))
6252 (file-name (string-append name "-" version ".tar.gz"))
6253 (sha256
6254 (base32
6255 "1lzaf9m1qr9dhw4nn53g6wszk2vqw95gpsbrc3y85bams4cn24ga"))))
6256 (build-system emacs-build-system)
6257 (home-page "https://github.com/hniksic/emacs-htmlize")
6258 (synopsis "Convert buffer text and decorations to HTML")
6259 (description "@code{emacs-htmlize} converts the buffer text and
6260the associated decorations to HTML. Output to CSS, inline CSS and
6261fonts is supported.")
6262 (license license:gpl2+)))
6263
6264(define-public emacs-xmlgen
6265 (package
6266 (name "emacs-xmlgen")
6267 (version "0.5")
6268 (source
6269 (origin
6270 (method url-fetch)
6271 (uri (string-append
6272 "https://github.com/philjackson/xmlgen/archive/"
6273 version ".tar.gz"))
6274 (file-name (string-append name "-" version ".tar.gz"))
6275 (sha256
6276 (base32
6277 "0zay490vjby3f7455r0vydmjg7q1gwc78hilpfb0rg4gwz224z8r"))))
6278 (build-system emacs-build-system)
6279 (arguments
6280 `(#:tests? #t
6281 #:test-command '("emacs" "--batch"
6282 "-l" "xmlgen-test.el"
6283 "-f" "ert-run-tests-batch-and-exit")))
6284 (home-page "https://github.com/philjackson/xmlgen")
6285 (synopsis "S-expression to XML domain specific language (DSL) in
6286Emacs Lisp")
6287 (description "@code{emacs-xmlgen} provides S-expression to XML
6288conversion for Emacs Lisp.")
6289 (license license:gpl2+)))
6290
6291(define-public emacs-cdlatex
6292 (package
6293 (name "emacs-cdlatex")
6294 (version "4.7")
6295 (source
6296 (origin
6297 (method url-fetch)
6298 (uri (string-append
6299 "https://github.com/cdominik/cdlatex/archive/"
6300 version ".tar.gz"))
6301 (file-name (string-append name "-" version ".tar.gz"))
6302 (sha256
6303 (base32
6304 "0pivapphmykc6vhvpx7hdyl55ls37vc4jcrxpvs4yk7jzcmwa9xp"))))
6305 (build-system emacs-build-system)
6306 (propagated-inputs
6307 `(("emacs-auctex" ,emacs-auctex)))
6308 (home-page "https://github.com/cdominik/cdlatex")
6309 (synopsis "Fast Emacs input methods for LaTeX environments and
6310math")
6311 (description "CDLaTeX is an Emacs minor mode supporting fast
6312insertion of environment templates and math in LaTeX. Similar
6313commands are also offered as part of the AUCTeX package, but it is not
6314the same - CDLaTeX focuses on speediness for inserting LaTeX
6315constructs.")
6316 (license license:gpl3+)))
6317
6318(define-public emacs-cnfonts
6319 (package
6320 (name "emacs-cnfonts")
6321 (version "0.9.1")
6322 (source (origin
6323 (method url-fetch)
6324 (uri (string-append
6325 "https://github.com/tumashu/cnfonts/archive/v"
6326 version ".tar.gz"))
6327 (file-name (string-append name "-" version ".tar.gz"))
6328 (sha256
6329 (base32
6330 "1l6cgcvc6md1zq97ccczankpyi0k4vjx6apflny6kjq3p33lyhf4"))))
6331 (build-system emacs-build-system)
6332 (home-page "https://github.com/tumashu/cnfonts")
6333 (synopsis "Emacs Chinese fonts setup tool")
6334 (description "cnfonts is a Chinese fonts setup tool, allowing for easy
6335configuration of Chinese fonts.")
6336 (license license:gpl2+)))
6337
6338(define-public emacs-php-mode
6339 (package
6340 (name "emacs-php-mode")
6341 (version "20171225.342")
6342 (source (origin
6343 (method url-fetch)
6344 (uri (string-append
6345 "https://melpa.org/packages/php-mode-"
6346 version ".tar"))
6347 (sha256
6348 (base32
6349 "1zz682f34v4wsm2dyj1gnrnvsrqdq1cy7j8p6cvc398w2fziyg3q"))))
6350 (build-system emacs-build-system)
6351 (home-page "https://github.com/ejmr/php-mode")
6352 (synopsis "Major mode for editing PHP code")
6353 (description "@code{php-mode} is a major mode for editing PHP source
6354code. It's an extension of C mode; thus it inherits all C mode's navigation
6355functionality. But it colors according to the PHP grammar and indents
6356according to the PEAR coding guidelines. It also includes a couple handy
6357IDE-type features such as documentation search and a source and class
6358browser.")
6359 (license license:gpl3+)))
6360
6361(define-public emacs-pos-tip
6362 (package
6363 (name "emacs-pos-tip")
6364 (version "0.4.6")
6365 (source (origin
6366 (method url-fetch)
6367 (uri (string-append
6368 "https://github.com/pitkali/pos-tip/archive/"
6369 version ".tar.gz"))
6370 (file-name (string-append name "-" version ".tar.gz"))
6371 (sha256
6372 (base32
6373 "12jqfy26vjk7lq0aa8yn8zqj8c85fkvx7y9prj0pcn4wqiz2ad2r"))))
6374 (build-system emacs-build-system)
6375 ;; The following functions and variables needed by emacs-pos-tip are
6376 ;; not included in emacs-minimal:
6377 ;; x-display-pixel-width, x-display-pixel-height, x-show-tip
6378 (arguments `(#:emacs ,emacs))
6379 (home-page "https://github.com/pitkali/pos-tip")
6380 (synopsis "Show tooltip at point")
6381 (description "The standard library tooltip.el provides a function for
6382displaying a tooltip at the mouse position. However, locating a tooltip at an
6383arbitrary buffer position in a window is not easy. Pos-tip provides such a
6384function to be used by other frontend programs.")
6385 (license license:gpl2+)))
6386
6387(define-public emacs-pyim-basedict
6388 (package
6389 (name "emacs-pyim-basedict")
6390 (version "0.3.1")
6391 (source (origin
6392 (method url-fetch)
6393 (uri (string-append
6394 "https://github.com/tumashu/pyim-basedict/archive/v"
6395 version ".tar.gz"))
6396 (file-name (string-append name "-" version ".tar.gz"))
6397 (sha256
6398 (base32
6399 "0nfgxviavkgrpyfsw60xsws4fk51fcmgl8fp6zf4ibqjjbp53n3n"))))
6400 (build-system emacs-build-system)
6401 (home-page "https://github.com/tumashu/pyim-basedict")
6402 (synopsis "Input method dictionary of pyim")
6403 (description "Pyim-basedict is the default pinyin input method dictionary,
6404containing words from the rime project.")
6405 (license license:gpl2+)))
6406
6407(define-public emacs-pyim
6408 (package
6409 (name "emacs-pyim")
6410 (version "1.8")
6411 (source
6412 (origin
6413 (method git-fetch)
6414 (uri (git-reference
6415 (url "https://github.com/tumashu/pyim")
6416 (commit (string-append "v" version))))
6417 (file-name (git-file-name name version))
6418 (sha256
6419 (base32
6420 "16rma4cv7xgky0g3x4an27v30jdi6i1sqw43cl99zhkqvp43l3f9"))))
6421 (build-system emacs-build-system)
6422 (propagated-inputs
6423 `(("emacs-async" ,emacs-async)
6424 ("emacs-pyim-basedict" ,emacs-pyim-basedict)
6425 ("emacs-popup" ,emacs-popup)
6426 ("emacs-posframe" ,emacs-posframe)))
6427 (home-page "https://github.com/tumashu/pyim")
6428 (synopsis "Chinese input method")
6429 (description "Chinese input method which supports quanpin, shuangpin, wubi
6430and cangjie.")
6431 (license license:gpl2+)))
6432
6433(define-public emacs-posframe
6434 (package
6435 (name "emacs-posframe")
6436 (version "0.4.2")
6437 (source
6438 (origin
6439 (method url-fetch)
6440 (uri (string-append
6441 "https://elpa.gnu.org/packages/posframe-" version ".el"))
6442 (sha256
6443 (base32
6444 "1h8vvxvsg41vc1nnglqjs2q0k1yzfsn72skga9s76qa3zxmx6kds"))))
6445 (build-system emacs-build-system)
6446 ;; emacs-minimal does not include the function font-info
6447 (arguments `(#:emacs ,emacs))
6448 (home-page "https://github.com/tumashu/posframe")
6449 (synopsis "Pop a posframe (a child frame) at point")
6450 (description "@code{emacs-posframe} can pop a posframe at point. A
6451posframe is a child frame displayed within its root window's buffer.
6452@code{emacs-posframe} is fast and works well with CJK languages.")
6453 (license license:gpl3+)))
6454
6455(define-public emacs-el2org
6456 (package
6457 (name "emacs-el2org")
6458 (version "0.6.0")
6459 (source (origin
6460 (method url-fetch)
6461 (uri (string-append
6462 "https://github.com/tumashu/el2org/archive/v"
6463 version ".tar.gz"))
6464 (file-name (string-append name "-" version ".tar.gz"))
6465 (sha256
6466 (base32
6467 "0gd3km1swwvg2w0kdi7370f54wgrflxn63gjgssfjc1iyc9sbqwq"))))
6468 (build-system emacs-build-system)
6469 (home-page "https://github.com/tumashu/el2org")
6470 (synopsis "Convert Emacs-lisp file to org file")
6471 (description "El2org is a simple tool, which can convert Emacs-lisp file
6472to org file, you can use this tool to write orgify commentary.")
6473 (license license:gpl2+)))
6474
6475(define-public emacs-mustache
6476 (package
6477 (name "emacs-mustache")
6478 (version "0.23")
6479 (source (origin
6480 (method url-fetch)
6481 (uri (string-append
6482 "https://github.com/Wilfred/mustache.el/archive/"
6483 version ".tar.gz"))
6484 (file-name (string-append name "-" version ".tar.gz"))
6485 (sha256
6486 (base32
6487 "0k9lcgil7kykkv1ylrgwy1g13ldjjmgi2cwmysgyb2vlj3jbwpdj"))))
6488 (build-system emacs-build-system)
6489 (propagated-inputs
6490 `(("emacs-dash" ,emacs-dash)
6491 ("emacs-ht" ,emacs-ht)
6492 ("emacs-s" ,emacs-s)))
6493 (home-page "https://github.com/Wilfred/mustache.el")
6494 (synopsis "Mustache templating library for Emacs")
6495 (description "Mustache templating library for Emacs, mustache is
6496a simple web template system, which is described as a logic-less system
6497because it lacks any explicit control flow statements, both looping and
6498conditional evaluation can be achieved using section tags processing lists
6499and lambdas.")
6500 (license license:gpl3+)))
6501
6502(define-public emacs-org2web
6503 (package
6504 (name "emacs-org2web")
6505 (version "0.9.1")
6506 (source (origin
6507 (method url-fetch)
6508 (uri (string-append
6509 "https://github.com/tumashu/org2web/archive/v"
6510 version ".tar.gz"))
6511 (file-name (string-append name "-" version ".tar.gz"))
6512 (sha256
6513 (base32
6514 "1c0ixcphlhp4c4qdiwq40bc3yp1gp1llp8pxrk4s7ny9n68s52zp"))))
6515 (build-system emacs-build-system)
6516 (propagated-inputs
6517 `(("emacs-dash" ,emacs-dash)
6518 ("emacs-el2org" ,emacs-el2org)
6519 ("emacs-ht" ,emacs-ht)
6520 ("emacs-mustache" ,emacs-mustache)
6521 ("emacs-simple-httpd" ,emacs-simple-httpd)))
6522 (home-page "https://github.com/tumashu/org2web")
6523 (synopsis "Static site generator based on org-mode ")
6524 (description "Org2web is a static site generator based on org-mode,
6525which code derived from Kelvin H's org-page.")
6526 (license license:gpl2+)))
6527
6528(define-public emacs-xelb
6529 (package
6530 (name "emacs-xelb")
6531 (version "0.16")
6532 (source (origin
6533 (method url-fetch)
6534 (uri (string-append "https://elpa.gnu.org/packages/xelb-"
6535 version ".tar"))
6536 (sha256
6537 (base32
6538 "03wsr1jr7f7zfd80h864rd4makwh4widdnj1kjv2xyjwdgap9rl8"))))
6539 (build-system emacs-build-system)
6540 ;; The following functions and variables needed by emacs-xelb are
6541 ;; not included in emacs-minimal:
6542 ;; x-display-screens, x-keysym-table, x-alt-keysym, x-meta-keysym
6543 ;; x-hyper-keysym, x-super-keysym, libxml-parse-xml-region
6544 ;; x-display-pixel-width, x-display-pixel-height
6545 (arguments
6546 `(#:emacs ,emacs
6547 #:phases
6548 (modify-phases %standard-phases
6549 (add-after 'unpack 'regenerate-el-files
6550 (lambda* (#:key inputs #:allow-other-keys)
6551 (invoke "make"
6552 (string-append "PROTO_PATH="
6553 (assoc-ref inputs "xcb-proto")
6554 "/share/xcb")
6555 (string-append "EMACS_BIN="
6556 (assoc-ref inputs "emacs")
6557 "/bin/emacs -Q")))))))
6558 (native-inputs `(("xcb-proto" ,xcb-proto)))
6559 (home-page "https://github.com/ch11ng/xelb")
6560 (synopsis "X protocol Emacs Lisp binding")
6561 (description "@code{emacs-xelb} is a pure Emacs Lisp implementation of the
6562X11 protocol based on the XML description files from the XCB project. It
6563features an object-oriented API and permits a certain degree of concurrency.
6564It should enable you to implement low-level X11 applications.")
6565 (license license:gpl3+)))
6566
6567(define-public emacs-exwm
6568 (package
6569 (name "emacs-exwm")
6570 (version "0.21")
6571 (synopsis "Emacs X window manager")
6572 (source (origin
6573 (method url-fetch)
6574 (uri (string-append "https://elpa.gnu.org/packages/exwm-"
6575 version ".tar"))
6576 (sha256
6577 (base32
6578 "07ng1pgsnc3isfsyzh2gfc7391p9il8lb5xqf1z6yqn20w7k6xzj"))))
6579 (build-system emacs-build-system)
6580 (propagated-inputs
6581 `(("emacs-xelb" ,emacs-xelb)))
6582 (inputs
6583 `(("xhost" ,xhost)
6584 ("dbus" ,dbus)))
6585 ;; The following functions and variables needed by emacs-exwm are
6586 ;; not included in emacs-minimal:
6587 ;; scroll-bar-mode, fringe-mode
6588 ;; x-display-pixel-width, x-display-pixel-height
6589 (arguments
6590 `(#:emacs ,emacs
6591 #:phases
6592 (modify-phases %standard-phases
6593 (add-after 'build 'install-xsession
6594 (lambda* (#:key inputs outputs #:allow-other-keys)
6595 (let* ((out (assoc-ref outputs "out"))
6596 (xsessions (string-append out "/share/xsessions"))
6597 (bin (string-append out "/bin"))
6598 (exwm-executable (string-append bin "/exwm")))
6599 ;; Add a .desktop file to xsessions
6600 (mkdir-p xsessions)
6601 (mkdir-p bin)
6602 (with-output-to-file
6603 (string-append xsessions "/exwm.desktop")
6604 (lambda _
6605 (format #t "[Desktop Entry]~@
6606 Name=~a~@
6607 Comment=~a~@
6608 Exec=~a~@
6609 TryExec=~@*~a~@
6610 Type=Application~%" ,name ,synopsis exwm-executable)))
6611 ;; Add a shell wrapper to bin
6612 (with-output-to-file exwm-executable
6613 (lambda _
6614 (format #t "#!~a ~@
6615 ~a +SI:localuser:$USER ~@
6616 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
6617 (string-append (assoc-ref inputs "bash") "/bin/sh")
6618 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
6619 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
6620 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
6621 '(cond
6622 ((file-exists-p "~/.exwm")
6623 (load-file "~/.exwm"))
6624 ((not (featurep 'exwm))
6625 (require 'exwm)
6626 (require 'exwm-config)
6627 (exwm-config-default)
6628 (message (concat "exwm configuration not found. "
6629 "Falling back to default configuration...")))))))
6630 (chmod exwm-executable #o555)
6631 #t))))))
6632 (home-page "https://github.com/ch11ng/exwm")
6633 (description "EXWM is a full-featured tiling X window manager for Emacs
6634built on top of XELB.")
6635 (license license:gpl3+)))
6636
6637(define-public emacs-switch-window
6638 (package
6639 (name "emacs-switch-window")
6640 (version "1.6.2")
6641 (source
6642 (origin
6643 (method git-fetch)
6644 (uri (git-reference
6645 (url "https://github.com/dimitri/switch-window")
6646 (commit (string-append "v" version))))
6647 (file-name (git-file-name name version))
6648 (sha256
6649 (base32
6650 "0rci96asgamr6qp6nkyr5vwrnslswjxcjd96yccy4aivh0g66yfg"))))
6651 (build-system emacs-build-system)
6652 (home-page "https://github.com/dimitri/switch-window")
6653 (synopsis "Emacs window switch tool")
6654 (description "Switch-window is an emacs window switch tool, which
6655offer a visual way to choose a window to switch to, delete, split or
6656other operations.")
6657 (license license:wtfpl2)))
6658
6659(define-public emacs-exwm-x
6660 (package
6661 (name "emacs-exwm-x")
6662 (version "1.9.0")
6663 (synopsis "Derivative window manager based on EXWM")
6664 (source
6665 (origin
6666 (method git-fetch)
6667 (uri (git-reference
6668 (url "https://github.com/tumashu/exwm-x")
6669 (commit (string-append "v" version))))
6670 (file-name (git-file-name name version))
6671 (sha256
6672 (base32
6673 "03l3dl7s1qys1kkh40rm1sfx7axy1b8sf5f6nyksj9ps6d30p5i4"))))
6674 (build-system emacs-build-system)
6675 (propagated-inputs
6676 `(("emacs-exwm" ,emacs-exwm)
6677 ("emacs-switch-window" ,emacs-switch-window)
6678 ("emacs-ivy" ,emacs-ivy)
6679 ("emacs-use-package" ,emacs-use-package)))
6680 (inputs
6681 `(("xhost" ,xhost)
6682 ("dbus" ,dbus)))
6683 ;; Need emacs instead of emacs-minimal,
6684 ;; for emacs's bin path will be inserted into bin/exwm-x file.
6685 (arguments
6686 `(#:emacs ,emacs
6687 #:phases
6688 (modify-phases %standard-phases
6689 (add-after 'build 'install-xsession
6690 (lambda* (#:key inputs outputs #:allow-other-keys)
6691 (let* ((out (assoc-ref outputs "out"))
6692 (xsessions (string-append out "/share/xsessions"))
6693 (bin (string-append out "/bin"))
6694 (exwm-executable (string-append bin "/exwm-x")))
6695 ;; Add a .desktop file to xsessions
6696 (mkdir-p xsessions)
6697 (mkdir-p bin)
6698 (with-output-to-file
6699 (string-append xsessions "/exwm-x.desktop")
6700 (lambda _
6701 (format #t "[Desktop Entry]~@
6702 Name=~a~@
6703 Comment=~a~@
6704 Exec=~a~@
6705 TryExec=~@*~a~@
6706 Type=Application~%" ,name ,synopsis exwm-executable)))
6707 ;; Add a shell wrapper to bin
6708 (with-output-to-file exwm-executable
6709 (lambda _
6710 (format #t "#!~a ~@
6711 ~a +SI:localuser:$USER ~@
6712 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
6713 (string-append (assoc-ref inputs "bash") "/bin/sh")
6714 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
6715 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
6716 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
6717 '(require 'exwmx-loader))))
6718 (chmod exwm-executable #o555)
6719 #t))))))
6720 (home-page "https://github.com/tumashu/exwm-x")
6721 (description "EXWM-X is a derivative window manager based on EXWM, with focus
6722on mouse-control.")
6723 (license license:gpl3+)))
6724
6725(define-public emacs-gnuplot
6726 (package
6727 (name "emacs-gnuplot")
6728 (version "0.7.0")
6729 (source
6730 (origin
6731 (method url-fetch)
6732 (uri (string-append
6733 "https://github.com/bruceravel/gnuplot-mode/archive/"
6734 version ".tar.gz"))
6735 (file-name (string-append name "-" version ".tar.gz"))
6736 (sha256
6737 (base32
6738 "0glzymrn138lwig7p4cj17x4if5jisr6l4g6wcbxisqkqgc1h01i"))))
6739 (build-system gnu-build-system)
6740 (native-inputs `(("emacs" ,emacs-minimal)))
6741 (arguments
6742 (let ((elisp-dir (string-append "/share/emacs/site-lisp/guix.d"
6743 "/gnuplot-" version)))
6744 `(#:modules ((guix build gnu-build-system)
6745 (guix build utils)
6746 (guix build emacs-utils))
6747 #:imported-modules (,@%gnu-build-system-modules
6748 (guix build emacs-utils))
6749 #:configure-flags
6750 (list (string-append "EMACS=" (assoc-ref %build-inputs "emacs")
6751 "/bin/emacs")
6752 (string-append "--with-lispdir=" %output ,elisp-dir))
6753 #:phases
6754 (modify-phases %standard-phases
6755 (add-after 'install 'generate-autoloads
6756 (lambda* (#:key outputs #:allow-other-keys)
6757 (emacs-generate-autoloads
6758 "gnuplot"
6759 (string-append (assoc-ref outputs "out") ,elisp-dir))
6760 #t))))))
6761 (home-page "https://github.com/bruceravel/gnuplot-mode")
6762 (synopsis "Emacs major mode for interacting with gnuplot")
6763 (description "@code{emacs-gnuplot} is an emacs major mode for interacting
6764with gnuplot.")
6765 (license license:gpl2+)))
6766
6767(define-public emacs-transpose-frame
6768 (package
6769 (name "emacs-transpose-frame")
6770 (version "0.1.0")
6771 (source
6772 (origin
6773 (method url-fetch)
6774 (uri "http://www.emacswiki.org/emacs/download/transpose-frame.el")
6775 (file-name (string-append "transpose-frame-" version ".el"))
6776 (sha256
6777 (base32
6778 "1f67yksgw9s6j0033hmqzaxx2a93jm11sd5ys7cc3li5gfh680m4"))))
6779 (build-system emacs-build-system)
6780 (home-page "https://www.emacswiki.org/emacs/TransposeFrame")
6781 (synopsis "Transpose window arrangement in current frame")
6782 (description "@code{emacs-transpose-frame} provides some interactive
6783functions which allows users to transpose windows arrangement in currently
6784selected frame.")
6785 (license license:bsd-2)))
6786
6787(define-public emacs-key-chord
6788 (package
6789 (name "emacs-key-chord")
6790 (version "0.6")
6791 (source
6792 (origin
6793 (method url-fetch)
6794 (uri "https://www.emacswiki.org/emacs/download/key-chord.el")
6795 (file-name (string-append "key-chord-" version ".el"))
6796 (sha256
6797 (base32
6798 "03m44pqggfrd53nh9dvpdjgm0rvca34qxmd30hr33hzprzjambxg"))))
6799 (build-system emacs-build-system)
6800 (home-page "https://www.emacswiki.org/emacs/key-chord.el")
6801 (synopsis "Map pairs of simultaneously pressed keys to Emacs commands")
6802 (description "@code{emacs-key-chord} provides @code{key-chord-mode}, a
6803mode for binding key chords to commands. A key chord is defined as two keys
6804pressed simultaneously or a single key quickly pressed twice.")
6805 (license license:gpl2+)))
6806
6807(define-public emacs-evil-surround
6808 (package
6809 (name "emacs-evil-surround")
6810 (version "1.0.0")
6811 (source
6812 (origin
6813 (method url-fetch)
6814 (uri (string-append
6815 "https://github.com/timcharper/evil-surround/archive/v"
6816 version ".tar.gz"))
6817 (file-name (string-append name "-" version ".tar.gz"))
6818 (sha256
6819 (base32
6820 "0p572jgic3q1ia1nz37kclir729ay6i2f4sa7wnaapyxly2lwb3r"))))
6821 (build-system emacs-build-system)
6822 (propagated-inputs
6823 `(("emacs-evil" ,emacs-evil)))
6824 (home-page "https://github.com/timcharper/evil-surround")
6825 (synopsis "Easily modify surrounding parantheses and quotes")
6826 (description "@code{emacs-evil-surround} allows easy deletion, change and
6827addition of surrounding pairs, such as parantheses and quotes, in evil mode.")
6828 (license license:gpl3+)))
6829
6830(define-public emacs-evil-commentary
6831 (package
6832 (name "emacs-evil-commentary")
6833 (version "2.1.1")
6834 (source
6835 (origin
6836 (method url-fetch)
6837 (uri (string-append
6838 "https://github.com/linktohack/evil-commentary/archive/v"
6839 version ".tar.gz"))
6840 (file-name (string-append name "-" version ".tar.gz"))
6841 (sha256
6842 (base32
6843 "1jdya0i921nwskwrzdsj0vrr3m7gm49dy6f6pk9p5nxaarfxk230"))))
6844 (build-system emacs-build-system)
6845 (propagated-inputs
6846 `(("emacs-evil" ,emacs-evil)))
6847 (home-page "https://github.com/linktohack/evil-commentary")
6848 (synopsis "Comment out code in evil mode")
6849 (description "@code{emacs-evil-commentary} adds keybindings to easily
6850comment out lines of code in evil mode. It provides @code{gcc} to comment out
6851lines, and @code{gc} to comment out the target of a motion.")
6852 (license license:gpl3+)))
6853
6854;; Tests for emacs-ansi have a circular dependency with ert-runner, and
6855;; therefore cannot be run
6856(define-public emacs-ansi
6857 (package
6858 (name "emacs-ansi")
6859 (version "0.4.1")
6860 (source
6861 (origin
6862 (method url-fetch)
6863 (uri (string-append "https://github.com/rejeep/ansi.el/archive/v"
6864 version ".tar.gz"))
6865 (file-name (string-append name "-" version ".tar.gz"))
6866 (sha256
6867 (base32
6868 "13jj4vbi98j3p17hs99bmy7g21jd5h4v3wpxk4pkvhylm3bfwjw8"))))
6869 (build-system emacs-build-system)
6870 (propagated-inputs
6871 `(("emacs-dash" ,emacs-dash)
6872 ("emacs-s" ,emacs-s)))
6873 (home-page "https://github.com/rejeep/ansi.el")
6874 (synopsis "Convert strings to ANSI")
6875 (description "@code{emacs-ansi} defines functions that turns simple
6876strings to ANSI strings. Turning a string into an ANSI string can be to add
6877color to a text, add color in the background of a text or adding a style, such
6878as bold, underscore or italic.")
6879 (license license:gpl3+)))
6880
6881;; Tests for emacs-commander have a circular dependency with ert-runner, and
6882;; therefore cannot be run
6883(define-public emacs-commander
6884 (package
6885 (name "emacs-commander")
6886 (version "0.7.0")
6887 (source
6888 (origin
6889 (method url-fetch)
6890 (uri (string-append "https://github.com/rejeep/commander.el/archive/v"
6891 version ".tar.gz"))
6892 (file-name (string-append name "-" version ".tar.gz"))
6893 (sha256
6894 (base32
6895 "196s2i15z7gwxa97l1wkxvjnfmj5n38wwm6d3g4zz15l2vqggc2y"))))
6896 (build-system emacs-build-system)
6897 (propagated-inputs
6898 `(("emacs-dash" ,emacs-dash)
6899 ("emacs-f" ,emacs-f)
6900 ("emacs-s" ,emacs-s)))
6901 (home-page "https://github.com/rejeep/commander.el")
6902 (synopsis "Emacs command line parser")
6903 (description "@code{emacs-commander} provides command line parsing for
6904Emacs.")
6905 (license license:gpl3+)))
6906
6907;; Tests for ert-runner have a circular dependency with ecukes, and therefore
6908;; cannot be run
6909(define-public emacs-ert-runner
82328c01
MC
6910 (let ((version "0.7.0")
6911 (revision "1")
6912 (commit "90b8fdd5970ef76a4649be60003b37f82cdc1a65"))
6913 (package
6914 (name "emacs-ert-runner")
6915 (version (git-version "0.7.0" revision commit))
6916 (source
6917 (origin
6918 (method git-fetch)
6919 (uri (git-reference
6920 (url "https://github.com/rejeep/ert-runner.el.git")
6921 (commit commit)))
6922 (file-name (git-file-name name version))
6923 (sha256
6924 (base32
6925 "04nxmyzncacj2wmzd84vv9wkkr2dk9lcb10dvygqmg3p1gadnwzz"))))
6926 (build-system emacs-build-system)
6927 (inputs
6928 `(("emacs-ansi" ,emacs-ansi)
6929 ("emacs-commander" ,emacs-commander)
6930 ("emacs-dash" ,emacs-dash)
6931 ("emacs-f" ,emacs-f)
6932 ("emacs-s" ,emacs-s)
6933 ("emacs-shut-up" ,emacs-shut-up)))
6934 (arguments
6935 `(#:phases
6936 (modify-phases %standard-phases
6937 (add-after 'install 'install-executable
6938 (lambda* (#:key inputs outputs #:allow-other-keys)
6939 (let ((out (assoc-ref outputs "out")))
6940 (substitute* "bin/ert-runner"
6941 (("ERT_RUNNER=\"\\$\\(dirname \\$\\(dirname \\$0\\)\\)")
6942 (string-append "ERT_RUNNER=\"" out
6943 "/share/emacs/site-lisp/guix.d/ert-runner-"
6944 ,version)))
6945 (install-file "bin/ert-runner" (string-append out "/bin"))
6946 (wrap-program (string-append out "/bin/ert-runner")
6947 (list "EMACSLOADPATH" ":" 'prefix
6948 (string-split (getenv "EMACSLOADPATH") #\:)))
6949 #t))))
6950 #:include (cons* "^reporters/.*\\.el$" %default-include)))
6951 (home-page "https://github.com/rejeep/ert-runner.el")
6952 (synopsis "Opinionated Ert testing workflow")
6953 (description "@code{ert-runner} is a tool for Emacs projects tested
eeb883cb
RW
6954using ERT. It assumes a certain test structure setup and can therefore make
6955running tests easier.")
82328c01 6956 (license license:gpl3+))))
eeb883cb
RW
6957
6958(define-public ert-runner
6959 (deprecated-package "ert-runner" emacs-ert-runner))
6960
6961(define-public emacs-disable-mouse
6962 (package
6963 (name "emacs-disable-mouse")
6964 (version "0.2")
6965 (source
6966 (origin
6967 (method url-fetch)
6968 (uri (string-append
6969 "https://github.com/purcell/disable-mouse/archive/"
6970 version ".tar.gz"))
6971 (file-name (string-append name "-" version ".tar.gz"))
6972 (sha256
6973 (base32
6974 "0haqpq23r1wx04lsqrrg3p5visg9hx5i36dg55ab003wfsrlrzbc"))))
6975 (build-system emacs-build-system)
6976 (home-page "https://github.com/purcell/disable-mouse")
6977 (synopsis "Disable mouse commands globally")
6978 (description
6979 "Provides @code{disable-mouse-mode} and @code{global-disable-mouse-mode},
6980pair of minor modes which suppress all mouse events by intercepting them and
6981running a customisable handler command (@code{ignore} by default). ")
6982 (license license:gpl3+)))
6983
6984(define-public emacs-json-reformat
6985 (package
6986 (name "emacs-json-reformat")
6987 (version "0.0.6")
6988 (source
6989 (origin
6990 (method url-fetch)
6991 (uri (string-append "https://github.com/gongo/json-reformat/archive/"
6992 version ".tar.gz"))
6993 (file-name (string-append name "-" version ".tar.gz"))
6994 (sha256
6995 (base32
6996 "11fbq4scrgr7m0iwnzcrn2g7xvqwm2gf82sa7zy1l0nil7265p28"))
6997 (patches (search-patches "emacs-json-reformat-fix-tests.patch"))))
6998 (build-system emacs-build-system)
6999 (propagated-inputs
7000 `(("emacs-undercover" ,emacs-undercover)))
7001 (native-inputs
7002 `(("emacs-dash" ,emacs-dash)
7003 ("emacs-shut-up" ,emacs-shut-up)
7004 ("ert-runner" ,emacs-ert-runner)))
7005 (arguments
7006 `(#:tests? #t
7007 #:test-command '("ert-runner")))
7008 (home-page "https://github.com/gongo/json-reformat")
7009 (synopsis "Reformatting tool for JSON")
7010 (description "@code{json-reformat} provides a reformatting tool for
7011@url{http://json.org/, JSON}.")
7012 (license license:gpl3+)))
7013
7014(define-public emacs-json-snatcher
7015 (package
7016 (name "emacs-json-snatcher")
7017 (version "1.0.0")
7018 (source
7019 (origin
7020 (method url-fetch)
7021 (uri (string-append "https://github.com/Sterlingg/json-snatcher/archive/"
7022 version ".tar.gz"))
7023 (file-name (string-append name "-" version ".tar.gz"))
7024 (sha256
7025 (base32
7026 "1nfiwsifpdiz0lbrqa77nl0crnfrv5h85ans9b0g5rggnmyshcfb"))))
7027 (build-system emacs-build-system)
7028 (home-page "https://github.com/sterlingg/json-snatcher")
7029 (synopsis "Grabs the path to JSON values in a JSON file")
7030 (description "@code{emacs-json-snatcher} grabs the path to JSON values in
7031a @url{http://json.org/, JSON} file.")
7032 (license license:gpl3+)))
7033
7034(define-public emacs-json-mode
7035 (package
7036 (name "emacs-json-mode")
7037 (version "1.7.0")
7038 (source
7039 (origin
7040 (method url-fetch)
7041 (uri (string-append "https://github.com/joshwnj/json-mode/archive/"
7042 "v" version ".tar.gz"))
7043 (file-name (string-append name "-" version ".tar.gz"))
7044 (sha256
7045 (base32
7046 "06h45p4cn767pk9sqi2zb1c65wy5gyyijqxzpglp80zwxhvajdz5"))))
7047 (build-system emacs-build-system)
7048 (propagated-inputs
7049 `(("emacs-json-reformat" ,emacs-json-reformat)
7050 ("emacs-json-snatcher" ,emacs-json-snatcher)))
7051 (home-page "https://github.com/joshwnj/json-mode")
7052 (synopsis "Major mode for editing JSON files")
7053 (description "@code{json-mode} extends the builtin js-mode syntax
7054highlighting.")
7055 (license license:gpl3+)))
7056
7057(define-public emacs-restclient
7058 (let ((commit "07a3888bb36d0e29608142ebe743b4362b800f40")
7059 (revision "1")) ;Guix package revision,
7060 ;upstream doesn't have official releases
7061 (package
7062 (name "emacs-restclient")
7063 (version (string-append revision "."
7064 (string-take commit 7)))
7065 (source (origin
7066 (method git-fetch)
7067 (uri (git-reference
7068 (url "https://github.com/pashky/restclient.el.git")
7069 (commit commit)))
7070 (sha256
7071 (base32
7072 "00lmjhb5im1kgrp54yipf1h9pshxzgjlg71yf2rq5n973gvb0w0q"))
7073 (file-name (git-file-name name version))))
7074 (build-system emacs-build-system)
7075 (propagated-inputs
7076 `(("emacs-helm" ,emacs-helm)))
7077 (home-page "https://github.com/pashky/restclient.el")
7078 (synopsis "Explore and test HTTP REST webservices")
7079 (description
7080 "This tool allows for testing and exploration of HTTP REST Web services
7081from within Emacs. Restclient runs queries from a plan-text query sheet,
7082displays results pretty-printed in XML or JSON with @code{restclient-mode}")
7083 (license license:public-domain))))
7084
7085(define-public emacs-eimp
7086 (let ((version "1.4.0")
7087 (commit "2e7536fe6d8f7faf1bad7a8ae37faba0162c3b4f")
7088 (revision "1"))
7089 (package
7090 (name "emacs-eimp")
7091 (version (git-version version revision commit))
7092 (source
7093 (origin
7094 (method git-fetch)
7095 (uri (git-reference
7096 (url "https://github.com/nicferrier/eimp.git")
7097 (commit commit)))
7098 (file-name (git-file-name name version))
7099 (sha256
7100 (base32
7101 "154d57yafxbcf39r89n5j43c86rp2fki3lw3gwy7ww2g6qkclcra"))))
7102 (build-system emacs-build-system)
7103 (arguments
7104 `(#:phases
7105 (modify-phases %standard-phases
7106 (add-after 'unpack 'configure
7107 (lambda* (#:key inputs #:allow-other-keys)
7108 (let ((imagemagick (assoc-ref inputs "imagemagick")))
7109 ;; eimp.el is read-only in git.
7110 (chmod "eimp.el" #o644)
7111 (emacs-substitute-variables "eimp.el"
7112 ("eimp-mogrify-program"
7113 (string-append imagemagick "/bin/mogrify"))))
7114 #t)))))
7115 (inputs
7116 `(("imagemagick" ,imagemagick)))
7117 (home-page "https://github.com/nicferrier/eimp")
7118 (synopsis "Interactive image manipulation utility for Emacs")
7119 (description "@code{emacs-eimp} allows interactive image manipulation
7120from within Emacs. It uses the code@{mogrify} utility from ImageMagick to do
7121the actual transformations.")
7122 (license license:gpl2+))))
7123
7124(define-public emacs-dired-hacks
7125 (let ((commit "eda68006ce73bbf6b9b995bfd70d08bec8cade36")
7126 (revision "1"))
7127 (package
7128 (name "emacs-dired-hacks")
7129 (version (string-append "0.0.1-" revision "."
7130 (string-take commit 7)))
7131 (source (origin
7132 (method git-fetch)
7133 (uri (git-reference
7134 (url "https://github.com/Fuco1/dired-hacks.git")
7135 (commit commit)))
7136 (file-name (string-append name "-" version "-checkout"))
7137 (sha256
7138 (base32
7139 "1w7ssl9zssn5rcha6apf4h8drkd02k4xgvs203bdbqyqp9wz9brx"))))
7140 (build-system emacs-build-system)
7141 (propagated-inputs
7142 `(("emacs-dash" ,emacs-dash)
7143 ("emacs-eimp" ,emacs-eimp)
7144 ("emacs-f" ,emacs-f)
7145 ("emacs-s" ,emacs-s)))
7146 (home-page "https://github.com/Fuco1/dired-hacks")
7147 (synopsis
7148 "Collection of useful dired additions")
7149 (description
7150 "Collection of Emacs dired mode additions:
7151@itemize
7152@item dired-avfs
7153@item dired-columns
7154@item dired-filter
7155@item dired-hacks-utils
7156@item dired-images
7157@item dired-list
7158@item dired-narrow
7159@item dired-open
7160@item dired-rainbow
7161@item dired-ranger
7162@item dired-subtree
7163@item dired-tagsistant
7164@end itemize\n")
7165 (license license:gpl3+))))
7166
7167(define-public emacs-dired-sidebar
7168 (let ((commit "06bd0d40bab812c61a668129daf29ba359424454")
7169 (revision "0"))
7170 (package
7171 (name "emacs-dired-sidebar")
7172 (home-page "https://github.com/jojojames/dired-sidebar")
7173 (version (git-version "0.0.1" revision commit))
7174 (source (origin
7175 (method git-fetch)
7176 (uri (git-reference (url home-page) (commit commit)))
7177 (sha256
7178 (base32
7179 "0lvwvq6sl80sha9fq5m4568sg534dhmifyjqw75bqddcbf3by84x"))))
7180 (build-system emacs-build-system)
7181 (propagated-inputs
7182 `(("emacs-dired-subtree" ,emacs-dired-hacks)))
7183 (synopsis "Sidebar for Emacs using Dired")
7184 (description
7185 "This package provides a sidebar for Emacs similar to @code{NeoTree}
7186or @code{treemacs}, but leveraging @code{Dired} to do the job of display.")
7187 (license license:gpl3+))))
7188
7189(define-public emacs-which-key
7190 (package
7191 (name "emacs-which-key")
7192 (version "3.3.0")
7193 (source
7194 (origin
7195 (method url-fetch)
7196 (uri (string-append
7197 "https://github.com/justbur/emacs-which-key/archive/v"
7198 version ".tar.gz"))
7199 (sha256
7200 (base32
7201 "1lsj314111cp2hjjwnv3f46ws1za6bm39rgy3l19044xf6a68j5w"))
7202 (file-name (string-append name "-" version ".tar.gz"))))
7203 (build-system emacs-build-system)
7204 (arguments
7205 `(#:tests? #t
7206 #:test-command '("emacs" "--batch"
7207 "-l" "which-key-tests.el"
7208 "-f" "ert-run-tests-batch-and-exit")))
7209 (home-page "https://github.com/justbur/emacs-which-key")
7210 (synopsis "Display available key bindings in popup")
7211 (description
7212 "@code{emacs-which-key} is a minor mode for Emacs that displays the key
7213bindings following your currently entered incomplete command (a prefix) in a
7214popup. For example, after enabling the minor mode if you enter C-x and wait
7215for the default of 1 second, the minibuffer will expand with all of the
7216available key bindings that follow C-x (or as many as space allows given your
7217settings).")
7218 (license license:gpl3+)))
7219
7220(define-public emacs-ws-butler
7221 (package
7222 (name "emacs-ws-butler")
7223 (version "0.6")
7224 (source (origin
7225 (method git-fetch)
7226 (uri (git-reference
7227 (url "https://github.com/lewang/ws-butler.git")
7228 (commit "323b651dd70ee40a25accc940b8f80c3a3185205")))
7229 (file-name (string-append name "-" version "-checkout"))
7230 (sha256
7231 (base32
7232 "1a4b0lsmwq84qfx51c5xy4fryhb1ysld4fhgw2vr37izf53379sb"))))
7233 (build-system emacs-build-system)
7234 (native-inputs
7235 `(("ert-runner" ,emacs-ert-runner)))
7236 (arguments
7237 `(#:tests? #t
7238 #:test-command '("ert-runner" "tests")))
7239 (home-page "https://github.com/lewang/ws-butler")
7240 (synopsis "Trim spaces from end of lines")
7241 (description
7242 "This Emacs package automatically and unobtrusively trims whitespace
7243characters from end of lines.")
7244 (license license:gpl3+)))
7245
7246(define-public emacs-org-edit-latex
7247 (package
7248 (name "emacs-org-edit-latex")
7249 (version "0.8.0")
7250 (source
7251 (origin
7252 (method url-fetch)
7253 (uri (string-append
7254 "https://github.com/et2010/org-edit-latex/archive/v"
7255 version ".tar.gz"))
7256 (file-name (string-append name "-" version ".tar.gz"))
7257 (sha256
7258 (base32
7259 "1y4h6wrs8286h9pbsv4d8fr67a885vz8b2k80qgv5qddipi2i78p"))))
7260 (build-system emacs-build-system)
7261 (propagated-inputs
7262 `(("emacs-auctex" ,emacs-auctex)
7263 ;; The version of org in Emacs 25.2 is not sufficient, because the
7264 ;; `org-latex-make-preamble' function is required.
7265 ("emacs-org" ,emacs-org)))
7266 (home-page "https://github.com/et2010/org-edit-latex")
7267 (synopsis "Edit a latex fragment just like editing a src block")
7268 (description "@code{emacs-org-edit-latex} is an extension for org-mode.
7269It lets you edit a latex fragment in a dedicated buffer just like editing a
7270src block.")
7271 (license license:gpl3+)))
7272
7273(define-public emacs-emamux
7274 (package
7275 (name "emacs-emamux")
7276 (version "0.14")
7277 (source (origin
7278 (method url-fetch)
7279 (uri (string-append
7280 "https://github.com/syohex/emacs-emamux/archive/"
7281 version ".tar.gz"))
7282 (file-name (string-append name "-" version ".tar.gz"))
7283 (sha256
7284 (base32
7285 "0wlqg4icy037bj70b0qmhvwvmiwhagpnx6pnxhq6gzy1hvwlilkx"))))
7286 (build-system emacs-build-system)
7287 (home-page "https://github.com/syohex/emacs-emamux")
7288 (synopsis "Manipulate Tmux from Emacs")
7289 (description
7290 "@code{emacs-emamux} lets Emacs interact with the @code{tmux} terminal
7291multiplexer.")
7292 (license license:gpl3+)))
7293
7294(define-public emacs-rpm-spec-mode
7295 (package
7296 (name "emacs-rpm-spec-mode")
7297 (version "0.16")
7298 (source
7299 (origin
7300 (method url-fetch)
7301 ;; URI has the Fedora release number instead of the version
7302 ;; number. This will have to updated manually every new release.
7303 (uri (string-append
7304 "https://src.fedoraproject.org/cgit/rpms"
7305 "/emacs-rpm-spec-mode.git/snapshot"
7306 "/emacs-rpm-spec-mode-f26.tar.gz"))
7307 (sha256
7308 (base32
7309 "17dz80lhjrc89fj17pysl8slahzrqdkxgcjdk55zls6jizkr6kz3"))))
7310 (build-system emacs-build-system)
7311 (home-page "http://pkgs.fedoraproject.org/cgit/rpms/emacs-rpm-spec-mode.git")
7312 (synopsis "Emacs major mode for editing RPM spec files")
7313 (description "@code{emacs-rpm-spec-mode} provides an Emacs major mode for
7314editing RPM spec files.")
7315 (license license:gpl2+)))
7316
7317(define-public emacs-git-messenger
7318 (package
7319 (name "emacs-git-messenger")
7320 (version "0.18")
7321 (source
7322 (origin
7323 (method url-fetch)
7324 (uri (string-append
7325 "https://github.com/syohex/emacs-git-messenger/archive/"
7326 version ".tar.gz"))
7327 (file-name (string-append name "-" version ".tar.gz"))
7328 (sha256
7329 (base32
7330 "17mqki6g0wx46fn7dcbcc2pjxik7vvrcb1j9jzxim8b9psbsbnp9"))))
7331 (build-system emacs-build-system)
7332 (propagated-inputs
7333 `(("emacs-popup" ,emacs-popup)))
7334 (arguments
7335 `(#:tests? #t
7336 #:test-command '("emacs" "--batch" "-l" "test/test.el"
7337 "-f" "ert-run-tests-batch-and-exit")))
7338 (home-page "https://github.com/syohex/emacs-git-messenger")
7339 (synopsis "Popup commit message at current line")
7340 (description "@code{emacs-git-messenger} provides
7341@code{git-messenger:popup-message}, a function that when called, will popup
7342the last git commit message for the current line. This uses git-blame
7343internally.")
7344 (license license:gpl3+)))
7345
7346(define-public emacs-gitpatch
7347 (package
7348 (name "emacs-gitpatch")
7349 (version "0.5.0")
7350 (source
7351 (origin
7352 (method url-fetch)
7353 (uri (string-append "https://github.com/tumashu/gitpatch/archive/"
7354 "v" version ".tar.gz"))
7355 (file-name (string-append name "-" version ".tar.gz"))
7356 (sha256
7357 (base32
7358 "1yj6pmic541lcnscjin300k380qp9xdfprs55xg1q57jrkq6f6k7"))))
7359 (build-system emacs-build-system)
7360 (home-page "https://github.com/tumashu/gitpatch")
7361 (synopsis "Mail git patch from Emacs")
7362 (description "@code{emacs-gitpatch} lets users easily send git patches,
7363created by @code{git format-patch}, from @code{magit}, @code{dired} and
7364@code{ibuffer} buffers.")
7365 (license license:gpl3+)))
7366
7367(define-public emacs-erc-hl-nicks
7368 (package
7369 (name "emacs-erc-hl-nicks")
7370 (version "1.3.3")
7371 (source
7372 (origin
7373 (method url-fetch)
7374 (uri (string-append "https://github.com/leathekd/erc-hl-nicks"
7375 "/archive/" version ".tar.gz"))
7376 (file-name (string-append name "-" version ".tar.gz"))
7377 (sha256
7378 (base32
7379 "1a1r2kc3688g8c2ybkpwh88kgmnqhg3h3032g2yn4zr9m0n3vpkr"))))
7380 (build-system emacs-build-system)
7381 (synopsis "Nickname highlighting for Emacs ERC")
7382 (description "@code{erc-hl-nicks} highlights nicknames in ERC, an IRC
7383client for Emacs. The main features are:
7384@itemize
7385@item Auto-colorizes nicknames without having to specify colors
7386@item Ignores certain characters that IRC clients add to nicknames to avoid
7387duplicates (nickname, nickname’, nickname\", etc.)
7388@item Attempts to produce colors with a sufficient amount of contrast between
7389the nick color and the background color
7390@end itemize\n")
7391 (home-page "https://github.com/leathekd/erc-hl-nicks")
7392 (license license:gpl3+)))
7393
7394(define-public emacs-engine-mode
7395 (package
7396 (name "emacs-engine-mode")
7397 (version "2.0.0")
7398 (source
7399 (origin
7400 (method url-fetch)
7401 (uri (string-append "https://github.com/hrs/engine-mode/archive/"
7402 "v" version ".tar.gz"))
7403 (file-name (string-append name "-" version ".tar.gz"))
7404 (sha256
7405 (base32
7406 "1vm4p7pcp1vnwwxvps1bhm7i7hkabqqxl898knxf2hqvxys76684"))))
7407 (build-system emacs-build-system)
7408 (synopsis "Minor mode for defining and querying search engines")
7409 (description "@code{engine-mode} is a global minor mode for Emacs. It
7410enables you to easily define search engines, bind them to keybindings, and
7411query them from the comfort of your editor.")
7412 (home-page "https://github.com/hrs/engine-mode")
7413 (license license:gpl3+)))
7414
7415(define-public emacs-prop-menu
7416 (package
7417 (name "emacs-prop-menu")
7418 (version "0.1.2")
7419 (source
7420 (origin
7421 (method url-fetch)
7422 (uri (string-append
7423 "http://stable.melpa.org/packages/prop-menu-"
7424 version ".el"))
7425 (sha256
7426 (base32
7427 "01bk4sjafzz7gqrkv9jg0pa85qr34vbk3q8ga2b0m61bndywzgpr"))))
7428 (build-system emacs-build-system)
7429 (home-page
7430 "https://github.com/david-christiansen/prop-menu-el")
7431 (synopsis
7432 "Create and display a context menu based on text and overlay properties")
7433 (description
7434 "This is a library for computing context menus based on text
7435properties and overlays. The intended use is to have tools that
7436annotate source code and others that use these annotations, without
7437requiring a direct coupling between them, but maintaining
7438discoverability.
7439
7440Major modes that wish to use this library should first define an
7441appropriate value for @code{prop-menu-item-functions}. Then, they should
7442bind @code{prop-menu-by-completing-read} to an appropriate
7443key. Optionally, a mouse pop-up can be added by binding
7444@code{prop-menu-show-menu} to a mouse event.")
7445 (license license:gpl3+)))
7446
7447(define-public emacs-idris-mode
7448 (package
7449 (name "emacs-idris-mode")
7450 (version "0.9.19")
7451 (source
7452 (origin
7453 (method url-fetch)
7454 (uri (string-append
7455 "http://stable.melpa.org/packages/idris-mode-"
7456 version ".tar"))
7457 (sha256
7458 (base32
7459 "02r1qqsxi6qk7q4cj6a6pygbj856dcw9vcmhfh0ib92j41v77q6y"))))
7460 (build-system emacs-build-system)
7461 (propagated-inputs
7462 `(("emacs-prop-menu" ,emacs-prop-menu)))
7463 (home-page
7464 "https://github.com/idris-hackers/idris-mode")
7465 (synopsis "Major mode for editing Idris code")
7466 (description
7467 "This is an Emacs mode for editing Idris code. It requires the latest
7468version of Idris, and some features may rely on the latest Git version of
7469Idris.")
7470 (license license:gpl3+)))
7471
7472(define-public emacs-browse-at-remote
7473 (package
7474 (name "emacs-browse-at-remote")
7475 (version "0.10.0")
7476 (source
7477 (origin
7478 (method url-fetch)
7479 (uri (string-append
7480 "https://github.com/rmuslimov/browse-at-remote/archive/"
7481 version ".tar.gz"))
7482 (file-name (string-append name "-" version ".tar.gz"))
7483 (sha256
7484 (base32
7485 "0ymslsp6i1naw25zckv25bf4aaq6qwkbkn95qyzlwg869l802686"))))
7486 (build-system emacs-build-system)
7487 (propagated-inputs
7488 `(("emacs-f" ,emacs-f)
7489 ("emacs-s" ,emacs-s)))
7490 (native-inputs
7491 `(("ert-runner" ,emacs-ert-runner)))
7492 (arguments
7493 `(#:tests? #t
7494 #:test-command '("ert-runner")))
7495 (home-page "https://github.com/rmuslimov/browse-at-remote")
7496 (synopsis "Open github/gitlab/bitbucket/stash page from Emacs")
7497 (description
7498 "This Emacs package allows you to open a target page on
7499github/gitlab (or bitbucket) by calling @code{browse-at-remote} command.
7500It supports dired buffers and opens them in tree mode at destination.")
7501 (license license:gpl3+)))
7502
7503(define-public emacs-tiny
7504 (package
7505 (name "emacs-tiny")
7506 (version "0.2.1")
7507 (source
7508 (origin
7509 (method url-fetch)
7510 (uri (string-append "http://elpa.gnu.org/packages/tiny-" version ".tar"))
7511 (sha256
7512 (base32
7513 "1cr73a8gba549ja55x0c2s554f3zywf69zbnd7v82jz5q1k9wd2v"))))
7514 (build-system emacs-build-system)
7515 (home-page "https://github.com/abo-abo/tiny")
7516 (synopsis "Quickly generate linear ranges in Emacs")
7517 (description
7518 "The main command of the @code{tiny} extension for Emacs is @code{tiny-expand}.
7519It is meant to quickly generate linear ranges, e.g. 5, 6, 7, 8. Some elisp
7520proficiency is an advantage, since you can transform your numeric range with
7521an elisp expression.")
7522 (license license:gpl3+)))
7523
7524(define-public emacs-emojify
7525 (package
7526 (name "emacs-emojify")
7527 (version "0.4")
7528 (source
7529 (origin
7530 (method url-fetch)
7531 (uri (string-append "https://github.com/iqbalansari/emacs-emojify/"
7532 "releases/download/v" version "/emojify-"
7533 version ".tar"))
7534 (sha256
7535 (base32
7536 "0k84v2d2bkiwcky9fi1yyprgkj46g7wh6pyl9gzmcd7sqv051d5n"))))
7537 (build-system emacs-build-system)
7538 (arguments
7539 `(#:phases
7540 (modify-phases %standard-phases
7541 (add-after 'install 'install-data
7542 (lambda* (#:key outputs #:allow-other-keys)
7543 (copy-recursively "data"
7544 (string-append (assoc-ref outputs "out")
7545 "/share/emacs/site-lisp/guix.d/"
7546 "emojify-" ,version "/data"))
7547 #t)))))
7548 (propagated-inputs
7549 `(("emacs-ht" ,emacs-ht)))
7550 (home-page "https://github.com/iqbalansari/emacs-emojify")
7551 (synopsis "Display emojis in Emacs")
7552 (description "This package displays emojis in Emacs similar to how Github,
7553Slack, and other websites do. It can display plain ASCII like @code{:)} as
7554well as Github-style emojis like @code{:smile:}. It provides a minor mode
7555@code{emojify-mode} to enable the display of emojis in a buffer.")
7556 (license license:gpl3+)))
7557
7558(define-public emacs-websocket
7559 (package
7560 (name "emacs-websocket")
7561 (version "1.10")
7562 (source
7563 (origin
7564 (method git-fetch)
7565 (uri (git-reference
7566 (url "https://github.com/ahyatt/emacs-websocket.git")
7567 (commit version)))
7568 (file-name (string-append name "-" version "-checkout"))
7569 (sha256
7570 (base32
7571 "1dgrf7na6r6mmkknphzshlbd5fnzisg0qn0j7vfpa38wgsymaq52"))))
7572 (build-system emacs-build-system)
7573 (home-page "http://elpa.gnu.org/packages/websocket.html")
7574 (synopsis "Emacs WebSocket client and server")
7575 (description "This is an Elisp library for WebSocket clients to talk to
7576WebSocket servers, and for WebSocket servers to accept connections from
7577WebSocket clients. This library is designed to be used by other library
7578writers, to write applications that use WebSockets, and is not useful by
7579itself.")
7580 (license license:gpl3+)))
7581
7582(define-public emacs-oauth2
7583 (package
7584 (name "emacs-oauth2")
7585 (version "0.11")
7586 (source
7587 (origin
7588 (method url-fetch)
7589 (uri (string-append "https://elpa.gnu.org/packages/oauth2-"
7590 version ".el"))
7591 (sha256
7592 (base32
7593 "0ydkc9jazsnbbvfhd47mql52y7k06n3z7r0naqxkwb99j9blqsmp"))))
7594 (build-system emacs-build-system)
7595 (home-page "http://elpa.gnu.org/packages/oauth2.html")
7596 (synopsis "OAuth 2.0 authorization protocol implementation")
7597 (description
7598 "This package provides an Elisp implementation of the OAuth 2.0 draft.
7599The main entry point is @code{oauth2-auth-and-store} which will return a token
7600structure. This token structure can be then used with
7601@code{oauth2-url-retrieve-synchronously} or @code{oauth2-url-retrieve} to
7602retrieve any data that need OAuth authentication to be accessed. If the token
7603needs to be refreshed, the code handles it automatically and stores the new
7604value of the access token.")
7605 (license license:gpl3+)))
7606
7607(define-public emacs-circe
7608 (package
7609 (name "emacs-circe")
7610 (version "2.10")
7611 (source
7612 (origin
7613 (method git-fetch)
7614 (uri (git-reference
7615 (url "https://github.com/jorgenschaefer/circe.git")
7616 (commit (string-append "v" version))))
7617 (file-name (git-file-name name version))
7618 (sha256
7619 (base32
7620 "10gi14kwxd81blddpvqh95lgmpbfgp0m955naxix3bs3r6a75n4s"))))
7621 (build-system emacs-build-system)
7622 (arguments
7623 `(#:tests? #t
7624 #:test-command '("buttercup" "-L" ".")
7625 #:phases
7626 (modify-phases %standard-phases
7627 ;; The HOME environment variable should be set to an existing
7628 ;; directory for the tests to succeed.
7629 (add-before 'check 'set-home
7630 (lambda _
7631 (setenv "HOME" "/tmp")
7632 #t)))))
7633 (native-inputs
7634 `(("emacs-buttercup" ,emacs-buttercup)))
7635 ;; In order to securely connect to an IRC server using TLS, Circe requires
7636 ;; the GnuTLS binary.
7637 (propagated-inputs
7638 `(("gnutls" ,gnutls)))
7639 (home-page "https://github.com/jorgenschaefer/circe")
7640 (synopsis "Client for IRC in Emacs")
7641 (description "Circe is a Client for IRC in Emacs. It integrates well with
7642the rest of the editor, using standard Emacs key bindings and indicating
7643activity in channels in the status bar so it stays out of your way unless you
7644want to use it.")
7645 (license license:gpl3+)))
7646
7647(define-public emacs-tracking
7648 (package
7649 (inherit emacs-circe)
7650 (name "emacs-tracking")
7651 (arguments
7652 ;; "tracking.el" is a library extracted from Circe package. It requires
7653 ;; "shorten.el".
7654 `(#:include '("^shorten.el$" "^tracking.el$")
7655 ,@(package-arguments emacs-circe)))
7656 (home-page "https://github.com/jorgenschaefer/circe/wiki/Tracking")
7657 (synopsis "Buffer tracking library")
7658 (description "@code{tracking.el} provides a way for different modes to
7659notify the user that a buffer needs attention. The user then can cycle
7660through them using @key{C-c C-SPC}.")
7661 (license license:gpl3+)))
7662
7663(define-public emacs-slack
7664 (let ((commit "99a57501629a0329a9ca090c1ea1296462eda02d")
7665 (revision "5"))
7666 (package
7667 (name "emacs-slack")
7668 (version (git-version "0.0.2" revision commit))
7669 (source (origin
7670 (method git-fetch)
7671 (uri (git-reference
7672 (url "https://github.com/yuya373/emacs-slack.git")
7673 (commit commit)))
7674 (file-name (git-file-name name commit))
7675 (sha256
7676 (base32
7677 "0jw1diypfw8pmzkq0napgxmfc0gqka7zcccgnw359604lr30k2z2"))))
7678 (build-system emacs-build-system)
7679 (propagated-inputs
7680 `(("emacs-alert" ,emacs-alert)
7681 ("emacs-emojify" ,emacs-emojify)
7682 ("emacs-helm" ,emacs-helm)
7683 ("emacs-request" ,emacs-request)
7684 ("emacs-websocket" ,emacs-websocket)
7685 ("emacs-oauth2" ,emacs-oauth2)
7686 ("emacs-circe" ,emacs-circe)))
7687 (home-page "https://github.com/yuya373/emacs-slack")
7688 (synopsis "Slack client for Emacs")
7689 (description "This package provides an Emacs client for the Slack
7690messaging service.")
7691 (license license:gpl3+))))
7692
7693(define-public emacs-bash-completion
7694 (package
7695 (name "emacs-bash-completion")
7696 (version "2.1.0")
7697 (source
7698 (origin
7699 (method url-fetch)
7700 (uri (string-append
7701 "https://github.com/szermatt/emacs-bash-completion/archive/v"
7702 version ".tar.gz"))
7703 (file-name (string-append name "-" version ".tar.gz"))
7704 (sha256
7705 (base32
7706 "1z0qck3v3ra6ivacn8n04w1v33a4xn01xx860761q31qzsv3sksq"))))
7707 (inputs `(("bash" ,bash)))
7708 (build-system emacs-build-system)
7709 (arguments
7710 `(#:phases
7711 (modify-phases %standard-phases
7712 (add-before 'install 'configure
7713 (lambda* (#:key inputs #:allow-other-keys)
7714 (let ((bash (assoc-ref inputs "bash")))
7715 (emacs-substitute-variables "bash-completion.el"
7716 ("bash-completion-prog" (string-append bash "/bin/bash"))))
7717 #t)))))
7718 (home-page "https://github.com/szermatt/emacs-bash-completion")
7719 (synopsis "Bash completion for the shell buffer")
7720 (description
7721 "@code{bash-completion} defines dynamic completion hooks for shell-mode
7722and shell-command prompts that are based on Bash completion.")
7723 (license license:gpl2+)))
7724
7725(define-public emacs-easy-kill
7726 (package
7727 (name "emacs-easy-kill")
7728 (version "0.9.3")
7729 (source (origin
7730 (method url-fetch)
7731 (uri (string-append "https://elpa.gnu.org/packages/easy-kill-"
7732 version ".tar"))
7733 (sha256
7734 (base32
7735 "17nw0mglmg877axwg1d0gs03yc0p04lzmd3pl0nsnqbh3303fnqb"))))
7736 (build-system emacs-build-system)
7737 (home-page "https://github.com/leoliu/easy-kill")
7738 (synopsis "Kill and mark things easily in Emacs")
7739 (description
7740 "This package provides commands @code{easy-kill} and @code{easy-mark} to
7741let users kill or mark things easily.")
7742 (license license:gpl3+)))
7743
7744(define-public emacs-csv-mode
7745 (package
7746 (name "emacs-csv-mode")
7747 (version "1.7")
7748 (source
7749 (origin
7750 (method url-fetch)
7751 (uri (string-append "http://elpa.gnu.org/packages/csv-mode-"
7752 version ".el"))
7753 (sha256
7754 (base32
7755 "0r4bip0w3h55i8h6sxh06czf294mrhavybz0zypzrjw91m1bi7z6"))))
7756 (build-system emacs-build-system)
7757 (home-page
7758 "http://elpa.gnu.org/packages/csv-mode.html")
7759 (synopsis
7760 "Major mode for editing comma/char separated values")
7761 (description
7762 "This Emacs package implements CSV mode, a major mode for editing records
7763in a generalized CSV (character-separated values) format.")
7764 (license license:gpl3+)))
7765
7766(define-public emacs-transmission
7767 (package
7768 (name "emacs-transmission")
7769 (version "0.12.1")
7770 (source (origin
7771 (method url-fetch)
7772 (uri (string-append
7773 "https://github.com/holomorph/transmission/archive/"
7774 version ".tar.gz"))
7775 (file-name (string-append name "-" version ".tar.gz"))
7776 (sha256
7777 (base32
7778 "1rrlgn96gi1ljfwbwvlyyxbq75xzamlbdhq1bpyadxxmxcvlmk3n"))))
7779 (build-system emacs-build-system)
7780 (home-page "https://github.com/holomorph/transmission")
7781 (synopsis "Emacs interface to a Transmission session")
7782 (description "This package provides an Emacs interface to interact with a
7783running session of the Transmission Bittorrent client.
7784
7785Features:
7786
7787@itemize
7788@item List, add, start/stop, verify, remove torrents.
7789@item Set speed limits, ratio limits, bandwidth priorities, trackers.
7790@item Navigate to the corresponding file list, torrent info, peer info
7791contexts.
7792@item Toggle downloading and set priorities for individual files.
7793@end itemize\n")
7794 (license license:gpl3+)))
7795
7796(define-public emacs-polymode
7797 (package
7798 (name "emacs-polymode")
7799 (version "0.1.5")
7800 (source (origin
7801 (method git-fetch)
7802 (uri (git-reference
7803 (url "https://github.com/vspinu/polymode.git")
7804 (commit (string-append "v" version))))
7805 (file-name (git-file-name name version))
7806 (sha256
7807 (base32
7808 "0wwphs54jx48a3ca6x1qaz56j3j9bg4mv8g2akkffrzbdcb8sbc7"))))
7809 (build-system emacs-build-system)
7810 (arguments
7811 `(#:include (cons* "^modes/.*\\.el$" %default-include)
7812 #:phases
7813 (modify-phases %standard-phases
7814 (add-after 'set-emacs-load-path 'add-modes-subdir-to-load-path
7815 (lambda _
7816 (setenv "EMACSLOADPATH"
7817 (string-append (getenv "EMACSLOADPATH")
7818 ":" (getcwd) "/modes" ":")))))))
7819 (home-page "https://github.com/vspinu/polymode")
7820 (synopsis "Framework for multiple Emacs modes based on indirect buffers")
7821 (description "Polymode is an Emacs package that offers generic support
7822for multiple major modes inside a single Emacs buffer. It is lightweight,
7823object oriented and highly extensible. Creating a new polymode typically
7824takes only a few lines of code. Polymode also provides extensible facilities
7825for external literate programming tools for exporting, weaving and tangling.")
7826 (license license:gpl3+)))
7827
7828(define-public emacs-polymode-ansible
7829 (let ((commit "b26094d029e25dc797b94254f797e7807a57e4c8"))
7830 (package
7831 (name "emacs-polymode-ansible")
7832 ;; No upstream version release yet.
7833 (version (git-version "0.1" "1" commit))
7834 (source
7835 (origin
7836 (method git-fetch)
7837 (uri (git-reference
7838 (url "https://gitlab.com/mavit/poly-ansible")
7839 (commit commit)))
7840 (file-name (git-file-name name version))
7841 (sha256
7842 (base32
7843 "055shddqibib3hx2ykwdz910nrqws40cd407mq946l2bf6v87gj6"))))
7844 (build-system emacs-build-system)
7845 (propagated-inputs
7846 `(("emacs-ansible-doc" ,emacs-ansible-doc)
7847 ("emacs-jinja2-mode" ,emacs-jinja2-mode)
7848 ("emacs-polymode" ,emacs-polymode)
7849 ("emacs-yaml-mode" ,emacs-yaml-mode)))
7850 (properties '((upstream-name . "poly-ansible")))
7851 (home-page "https://gitlab.com/mavit/poly-ansible/")
7852 (synopsis "Polymode for Ansible - Jinja2 in YAML")
7853 (description
7854 "Edit YAML files for Ansible containing embedded Jinja2 templating.")
7855 (license license:gpl3+))))
7856
7857(define-public eless
7858 (package
7859 (name "eless")
7860 (version "0.3")
7861 (source (origin
7862 (method url-fetch)
7863 (uri (string-append
7864 "https://github.com/kaushalmodi/eless/archive/"
7865 "v" version ".tar.gz"))
7866 (file-name (string-append name "-" version ".tar.gz"))
7867 (sha256
7868 (base32
7869 "0gjnnhgw5xs1w3qfnkvwa2nv44gnxr8pkhx3c7qig45p8nh1461h"))))
7870 (build-system trivial-build-system)
7871 (inputs
7872 `(("bash" ,bash)))
7873 (native-inputs
7874 `(("tar" ,tar)
7875 ("gzip" ,gzip)))
7876 (arguments
7877 `(#:modules ((guix build utils))
7878 #:builder
7879 (begin
7880 (use-modules (guix build utils))
7881 (setenv "PATH" (string-append
7882 (assoc-ref %build-inputs "tar") "/bin" ":"
7883 (assoc-ref %build-inputs "gzip") "/bin"))
7884 (invoke "tar" "xvf" (assoc-ref %build-inputs "source"))
7885 (chdir (string-append "eless" "-" ,version))
7886 (substitute* "eless" (("/usr/bin/env bash")
7887 (string-append (assoc-ref %build-inputs "bash")
7888 "/bin/bash")))
7889 (install-file "eless" (string-append %output "/bin"))
7890 (install-file "doc/eless.info" (string-append %output "/share/info"))
7891 #t)))
7892 (home-page "https://github.com/kaushalmodi/eless")
7893 (synopsis "Use Emacs as a paginator")
7894 (description "@code{eless} provides a combination of Bash script
7895and a minimal Emacs view-mode.
7896
7897Feautures:
7898
7899@itemize
7900@item Independent of a user’s Emacs config.
7901@item Customizable via the @code{(locate-user-emacs-file \"elesscfg\")} config.
7902@item Not require an Emacs server to be already running.
7903@item Syntax highlighting.
7904@item Org-mode file rendering.
7905@item @code{man} page viewer.
7906@item Info viewer.
7907@item Dired, wdired, (batch edit symbolic links).
7908@item Colored diffs, git diff, git log, ls with auto ANSI detection.
7909@item Filter log files lines matching a regexp.
7910@item Auto-revert log files similar to @code{tail -f}.
7911@item Quickly change frame and font sizes.
7912@end itemize\n")
7913 (license license:expat)))
7914
7915(define-public emacs-evil-matchit
7916 (package
7917 (name "emacs-evil-matchit")
7918 (version "2.2.6")
7919 (source
7920 (origin
7921 (method url-fetch)
7922 (uri (string-append
7923 "https://github.com/redguardtoo/evil-matchit/archive/"
7924 version ".tar.gz"))
7925 (file-name (string-append name "-" version ".tar.gz"))
7926 (sha256
7927 (base32
7928 "1yp9sl6542317mn1060ri90zyf6bs6qylagndhqy02p368q31rhi"))))
7929 (build-system emacs-build-system)
7930 (propagated-inputs
7931 `(("emacs-evil" ,emacs-evil)))
7932 (home-page "https://github.com/redguardtoo/evil-matchit")
7933 (synopsis "Vim matchit ported into Emacs")
7934 (description
7935 "@code{evil-matchit} is a minor mode for jumping between matching tags in
7936evil mode using @kbd{%}. It is a port of @code{matchit} for Vim.")
7937 (license license:gpl3+)))
7938
7939(define-public emacs-evil-smartparens
7940 (package
7941 (name "emacs-evil-smartparens")
7942 (version "0.4.0")
7943 (source
7944 (origin
7945 (method url-fetch)
7946 (uri (string-append
7947 "https://github.com/expez/evil-smartparens/archive/"
7948 version ".tar.gz"))
7949 (file-name (string-append name "-" version ".tar.gz"))
7950 (sha256
7951 (base32
7952 "1bwzdd3054d407d5j4m3njsbvmc9r8zzp33m32pj3b3irxrl68q0"))))
7953 (build-system emacs-build-system)
7954 (propagated-inputs
7955 `(("emacs-evil" ,emacs-evil)
7956 ("emacs-smartparens" ,emacs-smartparens)))
7957 (home-page "https://github.com/expez/evil-smartparens")
7958 (synopsis "Emacs Evil integration for Smartparens")
7959 (description "@code{emacs-evil-smartparens} is an Emacs minor mode which
7960makes Evil play nice with Smartparens. Evil is an Emacs minor mode that
7961emulates Vim features and provides Vim-like key bindings.")
7962 (license license:gpl3+)))
7963
7964(define-public emacs-evil-quickscope
7965 (package
7966 (name "emacs-evil-quickscope")
7967 (version "0.1.4")
7968 (source
7969 (origin
7970 (method url-fetch)
7971 (uri (string-append "https://github.com/blorbx/evil-quickscope/archive/v"
7972 version ".tar.gz"))
7973 (file-name (string-append name "-" version ".tar.gz"))
7974 (sha256
7975 (base32
7976 "1r26a412mmar7vbf89zcifswiwpdg30mjzj32xdyqss57aqi83ma"))))
7977 (build-system emacs-build-system)
7978 (propagated-inputs
7979 `(("emacs-evil" ,emacs-evil)))
7980 (arguments
7981 `(#:tests? #t
7982 #:test-command '("emacs" "--batch"
7983 "-l" "evil-quickscope-tests.el"
7984 "-f" "ert-run-tests-batch-and-exit")))
7985 (home-page "https://github.com/blorbx/evil-quickscope")
7986 (synopsis "Target highlighting for emacs evil-mode f,F,t and T commands")
7987 (description "@code{emacs-evil-quickscope} highlights targets for Evil
7988mode’s f,F,t,T keys, allowing for quick navigation within a line. It is a
7989port of quick-scope for Vim. Evil is an Emacs minor mode that emulates Vim
7990features and provides Vim-like key bindings.")
7991 (license license:gpl3+)))
7992
7993(define-public emacs-bongo
7994 (package
7995 (name "emacs-bongo")
7996 (version "1.0")
7997 (source
7998 (origin
7999 (method url-fetch)
8000 (uri (string-append
8001 "https://github.com/dbrock/bongo/archive/"
8002 version ".tar.gz"))
8003 (file-name (string-append name "-" version ".tar.gz"))
8004 (sha256
8005 (base32
8006 "1pcsyyrvj7djjjwpaswd1i782hvqvlvs39cy9ns0k795si6xd64d"))))
8007 (build-system emacs-build-system)
8008 (home-page "https://github.com/dbrock/bongo")
8009 (synopsis "Media player for Emacs")
8010 (description
8011 "This package provides a flexible media player for Emacs. @code{Bongo}
8012supports multiple backends such as @code{vlc}, @code{mpg123},
8013@code{ogg123}, @code{speexdec}, @code{timidity}, @code{mikmod} and
8014@code{afplay}.")
8015 (license license:gpl2+)))
8016
8017(define-public emacs-groovy-modes
8018 (package
8019 (name "emacs-groovy-modes")
8020 (version "2.0")
8021 (source (origin
8022 (method url-fetch)
8023 (uri (string-append
8024 "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes"
8025 "/archive/" version ".tar.gz"))
8026 (file-name (string-append name "-" version ".tar.gz"))
8027 (sha256
8028 (base32
8029 "15j0hnkx9nppjzda5cqsxxz5f3bq9hc4xfyjcdypzqiypcvmpa39"))))
8030 (build-system emacs-build-system)
8031 (propagated-inputs
8032 `(("emacs-s" ,emacs-s)))
8033 (home-page "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
8034 (synopsis "Groovy related modes for Emacs")
8035 (description
8036 "This package provides @code{groovy-mode} for syntax highlighing in
8037Groovy source files, REPL integration with run-groovy and Grails project
8038navigation with the grails mode.")
8039 (license license:gpl3+)))
8040
8041(define-public groovy-emacs-modes
8042 (deprecated-package "groovy-emacs-modes" emacs-groovy-modes))
8043
8044(define-public emacs-org-tree-slide
8045 (let ((commit "dff8f1a4a64c8dd0a1fde0b0131e2fe186747134")
8046 (revision "0"))
8047 (package
8048 (name "emacs-org-tree-slide")
8049 (version (git-version "0.1" revision commit))
8050 (home-page "https://github.com/takaxp/org-tree-slide")
8051 (source (origin
8052 (method git-fetch)
8053 (uri (git-reference (url home-page) (commit commit)))
8054 (sha256
8055 (base32
8056 "153bg0x7ypla11pq51jmsgzfjklwwnrq56xgpbfhk1j16xwz9hyf"))
8057 (file-name (git-file-name name version))))
8058 (build-system emacs-build-system)
8059 (synopsis "Presentation tool for org-mode")
8060 (description
8061 "Org-tree-slide provides a slideshow mode to view org-mode files. Use
8062@code{org-tree-slide-mode} to enter the slideshow mode, and then @kbd{C->} and
8063@kbd{C-<} to jump to the next and previous slide.")
8064 (license license:gpl3+))))
8065
8066(define-public emacs-scratch-el
8067 (let ((commit "2cdf2b841ce7a0987093f65b0cc431947549f897")
8068 (revision "1"))
8069 (package
8070 (name "emacs-scratch-el")
8071 (version (git-version "1.2" revision commit))
8072 (source (origin
8073 (method git-fetch)
8074 (uri (git-reference
8075 (url "https://github.com/ieure/scratch-el.git")
8076 (commit commit)))
8077 (file-name (git-file-name name version))
8078 (sha256
8079 (base32
8080 "0wscsndynjmnliajqaz28r1ww81j8wh84zwaaswx51abhwgl0idf"))))
8081 (build-system emacs-build-system)
8082 (native-inputs
8083 `(("texinfo" ,texinfo)))
8084 (arguments
8085 '(#:phases
8086 (modify-phases %standard-phases
8087 (add-after 'install 'install-doc
8088 (lambda* (#:key outputs #:allow-other-keys)
8089 (unless (invoke "makeinfo" "scratch.texi")
8090 (error "makeinfo failed"))
8091 (install-file "scratch.info"
8092 (string-append (assoc-ref outputs "out")
8093 "/share/info"))
8094 #t)))))
8095 (home-page "https://github.com/ieure/scratch-el/")
8096 (synopsis "Create scratch buffers with the same mode as current buffer")
8097 (description "Scratch is an extension to Emacs that enables one to create
8098scratch buffers that are in the same mode as the current buffer. This is
8099notably useful when working on code in some language; you may grab code into a
8100scratch buffer, and, by virtue of this extension, do so using the Emacs
8101formatting rules for that language.")
8102 (license license:bsd-2))))
8103
8104(define-public emacs-kv
8105 (package
8106 (name "emacs-kv")
8107 (version "0.0.19")
8108 (source
8109 (origin
8110 (method git-fetch)
8111 (uri (git-reference
8112 (url "https://github.com/nicferrier/emacs-kv.git")
8113 (commit "721148475bce38a70e0b678ba8aa923652e8900e")))
8114 (file-name (string-append name "-" version "-checkout"))
8115 (sha256
8116 (base32
8117 "0r0lz2s6gvy04fwnafai668jsf4546h4k6zd6isx5wpk0n33pj5m"))))
8118 (build-system emacs-build-system)
8119 (arguments
8120 `(#:tests? #t
8121 #:test-command '("emacs" "--batch" "-l" "kv-tests.el"
8122 "-f" "ert-run-tests-batch-and-exit")))
8123 (home-page "https://github.com/nicferrier/emacs-kv")
8124 (synopsis "Key/Value data structures library for Emacs Lisp")
8125 (description "@code{emacs-kv} is a collection of tools for dealing with
8126key/value data structures such as plists, alists and hash-tables in Emacs
8127Lisp.")
8128 (license license:gpl3+)))
8129
8130(define-public emacs-esxml
8131 (package
8132 (name "emacs-esxml")
8133 (version "0.3.4")
8134 (source (origin
8135 (method git-fetch)
8136 (uri (git-reference
8137 (url "https://github.com/tali713/esxml.git")
8138 (commit version)))
8139 (file-name (git-file-name name version))
8140 (sha256
8141 (base32
8142 "00vv8a75wdklygdyr4km9mc2ismxak69c45jmcny41xl44rp9x8m"))))
8143 (build-system emacs-build-system)
8144 (arguments
8145 `(#:phases
8146 (modify-phases %standard-phases
8147 (add-after 'unpack 'fix-sources
8148 (lambda _
8149 ;; See: https://github.com/tali713/esxml/pull/28.
8150 (substitute* "css-lite.el"
8151 ((";;; main interface")
8152 (string-append ";;; main interface\n"
8153 "(require 'cl-lib)"))
8154 (("mapcan")
8155 "cl-mapcan")
8156 (("',\\(cl-mapcan #'process-css-rule rules\\)")
8157 "(cl-mapcan #'process-css-rule ',rules)"))
8158 (substitute* "esxml-form.el"
8159 ((",esxml-form-field-defn")
8160 "#'esxml-form-field-defn"))
8161 ;; See: https://github.com/tali713/esxml/issues/25
8162 (delete-file "esxpath.el")
8163 #t)))))
8164 (propagated-inputs
8165 `(("emacs-kv" ,emacs-kv)))
8166 (home-page "https://github.com/tali713/esxml/")
8167 (synopsis "SXML for EmacsLisp")
8168 (description "This is XML/XHTML done with S-Expressions in EmacsLisp.
8169Simply, this is the easiest way to write HTML or XML in Lisp. This library
8170uses the native form of XML representation as used by many libraries already
8171included within Emacs. See @code{esxml-to-xml} for a concise description of
8172the format.")
8173 (license license:gpl3+)))
8174
8175(define-public emacs-nov-el
8176 (package
8177 (name "emacs-nov-el")
8178 (version "0.2.6")
8179 (source (origin
8180 (method git-fetch)
8181 (uri (git-reference
8182 (url "https://github.com/wasamasa/nov.el.git")
8183 (commit version)))
8184 (file-name (git-file-name name version))
8185 (sha256
8186 (base32
8187 "188h5gzn1zf443g0b7q5bpmvvpr6ds5h8aci8vxc92py56rhyrvc"))))
8188 (build-system emacs-build-system)
8189 (arguments
8190 `(#:phases
8191 (modify-phases %standard-phases
8192 (add-after 'unpack 'embed-path-to-unzip
8193 (lambda _
8194 (substitute* "nov.el"
8195 (("\\(executable-find \"unzip\"\\)")
8196 (string-append "\"" (which "unzip") "\"")))
8197 #t)))))
8198 (propagated-inputs
8199 `(("emacs-dash" ,emacs-dash)
8200 ("emacs-esxml" ,emacs-esxml)))
8201 (inputs
8202 `(("unzip" ,unzip)))
8203 (home-page "https://github.com/wasamasa/nov.el/")
8204 (synopsis "Major mode for reading EPUBs in Emacs")
8205 (description "@code{nov.el} provides a major mode for reading EPUB
8206documents.
8207
8208Features:
8209
8210@itemize
8211@item Basic navigation (jump to TOC, previous/next chapter)
8212@item Remembering and restoring the last read position
8213@item Jump to next chapter when scrolling beyond end
8214@item Renders EPUB2 (@code{.ncx}) and EPUB3 (@code{<nav>}) TOCs
8215@item Hyperlinks to internal and external targets
8216@item Supports textual and image documents
8217@item View source of document files
8218@item Metadata display
8219@item Image rescaling
8220@end itemize
8221")
8222 (license license:gpl3+)))
8223
8224(define-public epipe
8225 (package
8226 (name "epipe")
8227 (version "0.1.0")
8228 (source
8229 (origin
8230 (method url-fetch)
8231 (uri (string-append "https://github.com/cute-jumper/epipe/archive/"
8232 version ".tar.gz"))
8233 (file-name (string-append name "-" version ".tar.gz"))
8234 (sha256
8235 (base32
8236 "05a036852g4j63k1mhvyfrcsgkl9lczayi7x61570ysw3cli5wp5"))))
8237 (build-system trivial-build-system)
8238 (inputs
8239 `(("bash" ,bash)
8240 ("perl" ,perl)))
8241 (native-inputs
8242 `(("tar" ,tar)
8243 ("gzip" ,gzip)))
8244 (arguments
8245 `(#:modules
8246 ((guix build utils))
8247 #:builder
8248 (begin
8249 (use-modules (guix build utils))
8250 ;; Extract source
8251 (setenv "PATH" (string-append
8252 (assoc-ref %build-inputs "tar") "/bin" ":"
8253 (assoc-ref %build-inputs "gzip") "/bin"))
8254 (invoke "tar" "xvf" (assoc-ref %build-inputs "source"))
8255 (chdir (string-append ,name "-" ,version))
8256 ;; Patch shebangs
8257 (substitute* "epipe"
8258 (("/usr/bin/env bash")
8259 (string-append (assoc-ref %build-inputs "bash") "/bin/bash")))
8260 (patch-shebang "epipe.pl"
8261 (list (string-append (assoc-ref %build-inputs "perl")
8262 "/bin")))
8263 ;; Installation
8264 (for-each (lambda (file)
8265 (install-file file (string-append %output "/bin")))
8266 '("epipe" "epipe.pl"))
8267 #t)))
8268 (home-page "https://github.com/cute-jumper/epipe")
8269 (synopsis "Pipe to the @code{emacsclient}")
8270 (description "@code{epipe} provides an utility to use your editor in
8271the pipeline, featuring the support for running @code{emacsclient}.")
8272 (license license:gpl3+)))
8273
8274(define-public emacs-hcl-mode
8275 (package
8276 (name "emacs-hcl-mode")
8277 (version "0.03")
8278 (source
8279 (origin
8280 (method url-fetch)
8281 (uri (string-append
8282 "https://github.com/syohex/emacs-hcl-mode/archive/"
8283 version ".tar.gz"))
8284 (file-name (string-append name "-" version ".tar.gz"))
8285 (sha256
8286 (base32
8287 "0pvw74qpwh0znqzp6syp4wxjqs7dp1hbn5h7xfk97mff9l5d8k6x"))))
8288 (build-system emacs-build-system)
8289 (home-page "https://github.com/syohex/emacs-hcl-mode")
8290 (synopsis "Major mode for the Hashicorp Configuration Language")
8291 (description
8292 "@code{emacs-hcl-mode} provides an Emacs major mode for working with
8293@acronym{HCL, Hashicorp Configuration Language}. It provides syntax
8294highlighting and indentation support.")
8295 (license license:gpl3+)))
8296
8297(define-public emacs-terraform-mode
8298 (package
8299 (name "emacs-terraform-mode")
8300 (version "0.06")
8301 (source
8302 (origin
8303 (method url-fetch)
8304 (uri (string-append
8305 "https://github.com/syohex/emacs-terraform-mode/archive/"
8306 version ".tar.gz"))
8307 (file-name (string-append name "-" version ".tar.gz"))
8308 (sha256
8309 (base32
8310 "0h9267ifdjmcin4sj8slxydbacx4bqicbvg8pa1qq2l72h9m5381"))))
8311 (build-system emacs-build-system)
8312 (propagated-inputs
8313 `(("emacs-hcl-mode" ,emacs-hcl-mode)))
8314 (home-page "https://github.com/syohex/emacs-terraform-mode")
8315 (synopsis "Major mode for Terraform")
8316 (description
8317 "@code{emacs-terraform-mode} provides a major mode for working with
8318@uref{https://www.terraform.io/, Terraform} configuration files. Most of the
8319functionality is inherited from @code{hcl-mode}.")
8320 (license license:gpl3+)))
8321
8322(define-public emacs-exec-path-from-shell
8323 (package
8324 (name "emacs-exec-path-from-shell")
8325 (version "1.11")
8326 (source
8327 (origin
8328 (method url-fetch)
8329 (uri (string-append
8330 "https://stable.melpa.org/packages/exec-path-from-shell-"
8331 version ".el"))
8332 (sha256
8333 (base32
8334 "03qjgb81cq1l3j54lvlf98r75vmmgd06mj6qh5wa6mz4xzp4w26r"))))
8335 (build-system emacs-build-system)
8336 (home-page "https://github.com/purcell/exec-path-from-shell")
8337 (synopsis "Get environment variables such as @var{PATH} from the shell")
8338 (description
8339 "This library allows the user to set Emacs @var{exec-path} and @var{PATH}
8340from the shell @var{PATH}, so that @code{shell-command}, @code{compile} and
8341the like work as expected on systems on which Emacs is not guaranteed to
8342inherit a login shell's environment variables. It also allows other
8343environment variables to be retrieved from the shell, so that Emacs will see
8344the same values you get in a terminal.")
8345 (license license:gpl3+)))
8346
8347(define-public emacs-deft
8348 (package
8349 (name "emacs-deft")
8350 (version "0.8")
8351 (source
8352 (origin
8353 (method url-fetch)
8354 (uri (string-append "https://stable.melpa.org/packages/deft-"
8355 version ".el"))
8356 (sha256
8357 (base32
8358 "1vb9cjxskc7c0yyf9pvxy1fzypg1vrcgwnjz0m3hslinsgdyig58"))))
8359 (build-system emacs-build-system)
8360 (home-page "https://jblevins.org/projects/deft/")
8361 (synopsis "Quickly browse, filter, and edit plain text notes")
8362 (description
8363 "Deft is an Emacs mode for quickly browsing, filtering, and editing
8364directories of plain text notes, inspired by Notational Velocity.")
8365 (license license:bsd-3)))
8366
8367(define-public emacs-anzu
8368 (package
8369 (name "emacs-anzu")
8370 (version "0.62")
8371 (source
8372 (origin
8373 (method url-fetch)
8374 (uri (string-append "https://github.com/syohex/emacs-anzu/archive/"
8375 version ".tar.gz"))
8376 (file-name (string-append name "-" version ".tar.gz"))
8377 (sha256
8378 (base32
8379 "16cg3897x5znbmgk7sdy0qyd0fbic9dmmz0dchq2vz5z29yhg4cz"))))
8380 (build-system emacs-build-system)
8381 (home-page "https://github.com/syohex/emacs-anzu")
8382 (synopsis "Show number of matches in mode-line while searching")
8383 (description
8384 "Anzu provides a minor mode which displays \"current match/total
8385matches\" in the mode line in various search modes. This is an Emacs port of
8386Anzu.zim.")
8387 (license license:gpl3+)))
8388
8389(define-public emacs-emmet-mode
8390 (package
8391 (name "emacs-emmet-mode")
8392 (version "1.0.8")
8393 (source (origin
8394 (method url-fetch)
8395 (uri (string-append "https://github.com/smihica/emmet-mode"
8396 "/archive/" version ".tar.gz"))
8397 (file-name (string-append name "-" version ".tar.gz"))
8398 (sha256
8399 (base32
8400 "0g3p22yabfcp98cfv9dgl9il2m2pd53isq2q11vb3s7qyn31f7zj"))))
8401 (build-system emacs-build-system)
8402 (home-page "https://github.com/smihica/emmet-mode")
8403 (synopsis "Unofficial Emmet's support for Emacs")
8404 (description
8405 "Unfold CSS-selector-like expressions to markup. It is intended to be
8406used with SGML-like languages: XML, HTML, XHTML, XSL, etc.")
8407 (license license:gpl3+)))
8408
8409(define-public emacs-ergoemacs-mode
8410 (let ((commit "3ce23bba3cb50562693860f87f3528c471d603ba")
8411 (revision "1"))
8412 (package
8413 (name "emacs-ergoemacs-mode")
8414 (version (git-version "5.16.10.12" revision commit))
8415 (source
8416 (origin
8417 (method git-fetch)
8418 (uri (git-reference
8419 (url "https://github.com/ergoemacs/ergoemacs-mode.git")
8420 (commit commit)))
8421 (sha256
8422 (base32
8423 "1s3b9bridl78hh1mxmdk9nqlmqhibbaxk0a1cixmsf23s06w8w6l"))))
8424 (build-system emacs-build-system)
8425 (propagated-inputs
8426 `(("emacs-undo-tree" ,emacs-undo-tree)))
8427 (home-page "https://ergoemacs.github.io/")
8428 (synopsis "Emacs mode based on common modern interface and ergonomics")
8429 (description
8430 "This package provides an efficient Emacs keybinding set based on
8431statistics of command frequency, and supports common shortcuts for open,
8432close, copy, cut, paste, undo, redo.")
8433 (license license:gpl3+))))
8434
8435(define-public emacs-password-store
8436 (package
8437 (name "emacs-password-store")
8438 (version "1.7.3")
8439 (source (origin
8440 (method url-fetch)
8441 (uri
8442 (string-append "https://git.zx2c4.com/password-store/snapshot/"
8443 "password-store-" version ".tar.xz"))
8444 (sha256
8445 (base32
8446 "1x53k5dn3cdmvy8m4fqdld4hji5n676ksl0ql4armkmsds26av1b"))))
8447 (build-system emacs-build-system)
8448 (arguments
8449 `(#:phases
8450 (modify-phases %standard-phases
8451 (add-after 'unpack 'extract-el-file
8452 (lambda _
8453 (copy-file "contrib/emacs/password-store.el" "password-store.el")
8454 (delete-file-recursively "contrib")
8455 (delete-file-recursively "man")
8456 (delete-file-recursively "src")
8457 (delete-file-recursively "tests"))))))
8458 (propagated-inputs
8459 `(("emacs-f" ,emacs-f)
8460 ("emacs-s" ,emacs-s)
8461 ("emacs-with-editor" ,emacs-with-editor)
8462 ("password-store" ,password-store)))
8463 (home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs")
8464 (synopsis "Password store (pass) support for Emacs")
8465 (description
8466 "This package provides functions for working with pass (\"the
8467standard Unix password manager\").")
8468 (license license:gpl2+)))
8469
8470(define-public emacs-pass
8471 (package
8472 (name "emacs-pass")
8473 (version "1.8")
8474 (source (origin
8475 (method url-fetch)
8476 (uri (string-append
8477 "https://github.com/NicolasPetton/pass/archive/"
8478 version ".tar.gz"))
8479 (sha256
8480 (base32
8481 "0aiz90gklk0cb8n4v1s3l0mx6pp2b7f4k2c0fjpihwmga13yklwn"))
8482 (file-name (string-append name "-" version ".tar.gz"))))
8483 (build-system emacs-build-system)
8484 (propagated-inputs
8485 `(("emacs-password-store" ,emacs-password-store)
8486 ("emacs-f" ,emacs-f)))
8487 (home-page "https://github.com/NicolasPetton/pass")
8488 (synopsis "Major mode for @file{password-store.el}")
8489 (description "This is a major mode for managing password-store (pass)
8490keychains. The keychain entries are displayed in a directory-like structure
8491and can be consulted and modified.")
8492 (license license:gpl3+)))
8493
8494(define-public emacs-evil-anzu
8495 (package
8496 (name "emacs-evil-anzu")
8497 (version "0.03")
8498 (source
8499 (origin
8500 (method url-fetch)
8501 (uri (string-append "https://github.com/syohex/emacs-evil-anzu"
8502 "/archive/" version ".tar.gz"))
8503 (file-name (string-append name "-" version ".tar.gz"))
8504 (sha256
8505 (base32 "032hh2946z529cizqsg8pm6cpn5qdj8lfk3qskmx6xv3g2ra56ns"))))
8506 (build-system emacs-build-system)
8507 (propagated-inputs
8508 `(("emacs-evil" ,emacs-evil)
8509 ("emacs-anzu" ,emacs-anzu)))
8510 (home-page "https://github.com/syohex/emacs-evil-anzu")
8511 (synopsis "Anzu for evil-mode")
8512 (description "@code{anzu} provides a minor mode that displays the current
8513match and total match information in the mode-line in various search modes.")
8514 (license license:gpl3+)))
8515
8516(define-public emacs-pg
8517 (let ((commit "4f6516ec3946d95dcef49abb6703cc89ecb5183d"))
8518 (package
8519 (name "emacs-pg")
8520 (version (git-version "0.1" "1" commit))
8521 (source (origin
8522 (method git-fetch)
8523 (uri (git-reference (url "https://github.com/cbbrowne/pg.el")
8524 (commit commit)))
8525 (file-name (git-file-name name version))
8526 (sha256
8527 (base32
8528 "1zh7v4nnpzvbi8yj1ynlqlawk5bmlxi6s80b5f2y7hkdqb5q26k0"))))
8529 (build-system emacs-build-system)
8530 (home-page "https://github.com/cbbrowne/pg.el")
8531 (synopsis "Emacs Lisp interface for PostgreSQL")
8532 (description
8533 "This package provides an Emacs Lisp interface for PostgreSQL.")
8534 (license license:gpl3+))))
8535
8536(define-public emacs-cl-generic
8537 (package
8538 (name "emacs-cl-generic")
8539 (version "0.3")
8540 (source
8541 (origin
8542 (method url-fetch)
8543 (uri (string-append "https://elpa.gnu.org/packages/cl-generic-"
8544 version ".el"))
8545 (sha256
8546 (base32
8547 "0vb338bhjpsnrf60qgxny4z5rjrnifahnrv9axd4shay89d894zq"))))
8548 (build-system emacs-build-system)
8549 (home-page "https://elpa.gnu.org/packages/seq.html")
8550 (synopsis
8551 "Forward @code{cl-generic} compatibility for Emacs before version 25")
8552 (description "This package provides a subset of the features of the
8553@code{cl-generic} package introduced in Emacs-25, for use on previous
8554@code{emacsen}.")
8555 (license license:gpl3+)))
8556
8557(define-public emacs-finalize
8558 (package
8559 (name "emacs-finalize")
8560 (version "2.0.0")
8561 (source
8562 (origin
8563 (method url-fetch)
8564 (uri (string-append "https://github.com/skeeto/elisp-finalize/archive/"
8565 version ".tar.gz"))
8566 (file-name (string-append name "-" version ".tar.gz"))
8567 (sha256
8568 (base32
8569 "077fycy3i5f0kjw5z3rhf4kld5lbk2idz690nkwhkz04vppk4q4x"))))
8570 (build-system emacs-build-system)
8571 (propagated-inputs
8572 `(("emacs-cl-generic" ,emacs-cl-generic)))
8573 (home-page "https://github.com/skeeto/elisp-finalize")
8574 (synopsis "Finalizers for Emacs Lisp")
8575 (description
8576 "This package will allows to immediately run a callback (a finalizer)
8577after its registered lisp object has been garbage collected. This allows for
8578extra resources, such as buffers and processes, to be cleaned up after the
8579object has been freed.")
8580 (license license:unlicense)))
8581
8582(define-public emacs-emacsql
8583 (package
8584 (name "emacs-emacsql")
8585 (version "3.0.0")
8586 (source (origin
8587 (method git-fetch)
8588 (uri (git-reference
8589 (url "https://github.com/skeeto/emacsql.git")
8590 (commit (string-append version))))
8591 (file-name (git-file-name name version))
8592 (sha256
8593 (base32
8594 "1c84gxr1majqj4b59wgdy3lzm3ap66w9qsrnkx8hdbk9895ak81g"))))
8595 (build-system emacs-build-system)
8596 (arguments
8597 `(#:modules ((guix build emacs-build-system)
8598 (guix build utils)
8599 (guix build emacs-utils)
8600 (srfi srfi-26))
8601 #:phases
8602 (modify-phases %standard-phases
8603 (delete 'build) ;‘build-emacsql-sqlite’ compiles ‘*.el’ files.
8604 (add-before 'install 'patch-elisp-shell-shebangs
8605 (lambda _
8606 (substitute* (find-files "." "\\.el")
8607 (("/bin/sh") (which "sh")))
8608 #t))
8609 (add-after 'patch-elisp-shell-shebangs 'setenv-shell
8610 (lambda _
8611 (setenv "SHELL" "sh")))
8612 (add-after 'setenv-shell 'build-emacsql-sqlite
8613 (lambda _
8614 (invoke "make" "binary" "CC=gcc")))
8615 (add-after 'build-emacsql-sqlite 'install-emacsql-sqlite
8616 ;; This build phase installs emacs-emacsql binary.
8617 (lambda* (#:key outputs #:allow-other-keys)
8618 (install-file "sqlite/emacsql-sqlite"
8619 (string-append (assoc-ref outputs "out")
8620 "/bin"))
8621 #t))
8622 (add-after 'install-emacsql-sqlite 'patch-emacsql-sqlite.el
8623 ;; This build phase removes interactive prompts
8624 ;; and makes sure Emacs look for binaries in the right places.
8625 (lambda* (#:key outputs #:allow-other-keys)
8626 (let ((file "emacsql-sqlite.el"))
8627 (chmod file #o644)
8628 (emacs-substitute-sexps file
8629 ;; Make sure Emacs looks for ‘GCC’ binary in the right place.
8630 ("(executable-find" (which "gcc"))
8631 ;; Make sure Emacs looks for ‘emacsql-sqlite’ binary
8632 ;; in the right place.
8633 ("(defvar emacsql-sqlite-executable"
8634 (string-append (assoc-ref outputs "out")
8635 "/bin/emacsql-sqlite"))))))
8636 (replace 'install
8637 (lambda* (#:key outputs #:allow-other-keys)
8638 (let* ((out (assoc-ref outputs "out")))
8639 (install-file "sqlite/emacsql-sqlite"
8640 (string-append out "/bin"))
8641 (for-each (cut install-file <>
8642 (string-append out "/share/emacs/site-lisp/guix.d/"
8643 "emacsql" "-" ,version))
8644 (find-files "." "\\.elc*$")))
8645 #t)))))
8646 (inputs
8647 `(("emacs-minimal" ,emacs-minimal)
8648 ("mariadb" ,mariadb)
8649 ("postgresql" ,postgresql)))
8650 (propagated-inputs
8651 `(("emacs-finalize" ,emacs-finalize)
8652 ("emacs-pg" ,emacs-pg)))
8653 (home-page "https://github.com/skeeto/emacsql")
8654 (synopsis "Emacs high-level SQL database front-end")
8655 (description "Any readable Lisp value can be stored as a value in EmacSQL,
8656including numbers, strings, symbols, lists, vectors, and closures. EmacSQL
8657has no concept of @code{TEXT} values; it's all just Lisp objects. The Lisp
8658object @code{nil} corresponds 1:1 with @code{NULL} in the database.")
8659 (license license:gpl3+)))
8660
8661(define-public emacs-closql
8662 (package
8663 (name "emacs-closql")
8664 (version "1.0.0")
8665 (source
8666 (origin
8667 (method git-fetch)
8668 (uri (git-reference
8669 (url "https://github.com/emacscollective/closql.git")
8670 (commit (string-append "v" version))))
8671 (file-name (git-file-name name version))
8672 (sha256
8673 (base32
8674 "1xhpfjjkjqfc1k2rj77cscclz5r7gpvv3hi202x178vdcpipjwar"))))
8675 (build-system emacs-build-system)
8676 (propagated-inputs
8677 `(("emacs-emacsql" ,emacs-emacsql)))
8678 (home-page "https://github.com/emacscollective/closql")
8679 (synopsis "Store EIEIO objects using EmacSQL")
8680 (description
8681 "This package allows to store uniform EIEIO objects in an EmacSQL
8682database. SQLite is used as backend. This library imposes some restrictions
8683on what kind of objects can be stored; it isn't intended to store arbitrary
8684objects. All objects have to share a common superclass and subclasses cannot
8685add any additional instance slots.")
8686 (license license:gpl3)))
8687
8688(define-public emacs-epkg
8689 ;; The release version is to old for the current database scheme.
8690 (let ((commit "432312b9583ed7b88ad9644fd1bf2183765a892e"))
8691 (package
8692 (name "emacs-epkg")
8693 (version (git-version "3.0.0" "1" commit))
8694 (source
8695 (origin
8696 (method git-fetch)
8697 (uri (git-reference
8698 (url "https://github.com/emacscollective/epkg.git")
8699 (commit commit)))
8700 (file-name (git-file-name name version))
8701 (sha256
8702 (base32
8703 "0d882kahn7a0vri7a9r15lvmfx1zn2hsga6jfcc6jv0hqbswlb2k"))))
8704 (build-system emacs-build-system)
8705 (propagated-inputs
8706 `(("emacs-closql" ,emacs-closql)
8707 ("emacs-dash" ,emacs-dash)))
8708 (home-page "https://emacsmirror.net")
8709 (synopsis "Browse the Emacsmirror package database")
8710 (description "This package provides access to a local copy of the
8711Emacsmirror package database. It provides low-level functions for querying
8712the database and a @file{package.el} user interface for browsing the database.
8713Epkg itself is not a package manager.
8714
8715Getting a local copy:
8716
8717@example
8718git clone https://github.com/emacsmirror/epkgs.git ~/.emacs.d/epkgs
8719cd ~/.emacs.d/epkgs
8720git submodule init
8721git config --global url.https://github.com/.insteadOf git@@github.com:
8722git submodule update
8723@end example
8724
8725Some submodule may be missing. In this case Git will prompt for a GitHub user
8726name and password. To skip it press a @key{Return} key.
8727
8728You could get a Epkg package list by invoking @code{epkg-list-packages} in
8729Emacs.")
8730 (license license:gpl3+))))
8731
8732(define-public emacs-elisp-slime-nav
8733 (package
8734 (name "emacs-elisp-slime-nav")
8735 (version "0.9")
8736 (source
8737 (origin
8738 (method url-fetch)
8739 (uri (string-append "https://github.com/purcell/elisp-slime-nav/archive/"
8740 version ".tar.gz"))
8741 (file-name (string-append name "-" version ".tar.gz"))
8742 (sha256
8743 (base32
8744 "1vq7ym1q47p97gxrv45c9gm96d23xbp237vkmakikj6grngxjfb2"))))
8745 (build-system emacs-build-system)
8746 (home-page "https://github.com/purcell/elisp-slime-nav")
8747 (synopsis "Make @code{M-.} and @code{M-,} work for elisp like they do in SLIME")
8748 (description
8749 "This package provides SLIME's convenient @code{M-.}and @code{M-,} navigation
8750in @code{emacs-lisp-mode}, together with an elisp equivalent of
8751@code{slime-describe-symbol}.")
8752 (license license:gpl3+)))
8753
8754(define-public emacs-dedicated
8755 (package
8756 (name "emacs-dedicated")
8757 (version "1.0.0")
8758 (source (origin
8759 (method url-fetch)
8760 (uri (string-append
8761 "https://github.com/emacsorphanage/dedicated/archive/"
8762 version
8763 ".tar.gz"))
8764 (sha256
8765 (base32
8766 "0nhbkp278cvcznb5rp3jp9ii3mjgb79zx8iwfrw7zfk3yg8688ni"))
8767 (file-name (string-append name "-" version ".tar.gz"))))
8768 (build-system emacs-build-system)
8769 (home-page "https://github.com/emacsorphanage/dedicated")
8770 (synopsis "Emacs minor mode for toggling a windows's \"dedicated\" flag")
8771 (description
8772 "This simple Emacs minor mode allows you to toggle a window's
8773\"dedicated\" flag. When a window is \"dedicated\", Emacs will not select
8774files into that window. This can be quite handy since many commands will use
8775another window to show results (compilation mode, starting info, and so on).
8776A dedicated window won't be used for such a purpose. For details, please read
8777the source file.")
8778 (license license:gpl2+)))
8779
8780(define-public emacs-nnreddit
8781 (let ((commit "9843f99d01fd8f1eea2fc685965a7c7f4eeb187a")
8782 (revision "1"))
8783 (package
8784 (name "emacs-nnreddit")
8785 (version (string-append "0.0.1-" revision "."
8786 (string-take commit 7)))
8787 (source (origin
8788 (method git-fetch)
8789 (uri (git-reference
8790 (url "https://github.com/paul-issartel/nnreddit.git")
8791 (commit commit)))
8792 (file-name (string-append name "-" version "-checkout"))
8793 (sha256
8794 (base32
8795 "0j4h3bnga640250jdq8bwyja49r41ssrsjd6lba4gzzllqk02nbn"))))
8796 (build-system emacs-build-system)
8797 (home-page "https://github.com/paul-issartel/nnreddit")
8798 (synopsis "Reddit backend for the Gnus newsreader")
8799 (description "@url{https://www.reddit.com} backend for the Gnus
8800newsreader.")
8801 (license license:gpl3+))))
8802
8803(define-public emacs-makey
8804 (package
8805 (name "emacs-makey")
8806 (version "0.3")
8807 (source
8808 (origin
8809 (method url-fetch)
8810 (uri (string-append "https://github.com/mickeynp/makey/archive/"
8811 version ".tar.gz"))
8812 (file-name (string-append name "-" version ".tar.gz"))
8813 (sha256
8814 (base32
8815 "0kzl4q1wf2zhkx9nrymxa67n99iq0bj7zqhpaz4byksna1hsxfmv"))))
8816 (build-system emacs-build-system)
8817 (home-page "https://github.com/mickeynp/makey")
8818 (synopsis "Emacs interactive command-line mode")
8819 (description
8820 "This package provides an Emacs interactive command-line mode.")
8821 (license license:gpl3+)))
8822
8823(define-public emacs-outorg
8824 (let ((commit "78b0695121fb974bc4e971eb4ef7f8afd6d89d64"))
8825 (package
8826 (name "emacs-outorg")
8827 (version (git-version "2.0" "1" commit))
8828 (source
8829 (origin
8830 (method git-fetch)
8831 (uri (git-reference
8832 (url "https://github.com/alphapapa/outorg")
8833 (commit commit)))
8834 (file-name (git-file-name name version))
8835 (sha256
8836 (base32
8837 "03aclh4m3f7rb821gr9pwvnqkkl91px3qxdcarpf3ypa1x4fxvlj"))))
8838 (build-system emacs-build-system)
8839 (home-page "https://github.com/alphapapa/outorg")
8840 (synopsis "Org-style comment editing")
8841 (description "Outorg is for editing comment-sections of source-code
8842files in temporary Org-mode buffers. It turns conventional
8843literate-programming upside-down in that the default mode is the
8844programming-mode, and special action has to be taken to switch to the
8845text-mode (i.e. Org-mode).")
8846 (license license:gpl3+))))
8847
8848(define-public emacs-outshine
8849 (let ((commit "5f1a6b70231d2811c522e4e5e8c89ff461b311d6"))
8850 (package
8851 (name "emacs-outshine")
8852 (version (git-version "2.0" "1" commit))
8853 (source (origin
8854 (method git-fetch)
8855 (uri (git-reference
8856 (url "https://github.com/alphapapa/outshine.git")
8857 (commit commit)))
8858 (file-name (git-file-name name version))
8859 (sha256
8860 (base32
8861 "1l9v1dfhgg7il11ifbhvcvrg3acfjk9sdxlc3lja1k54d7dp60jv"))))
8862 (build-system emacs-build-system)
8863 (propagated-inputs
8864 `(("emacs-outorg" ,emacs-outorg)))
8865 (home-page "https://github.com/alphapapa/outshine")
8866 (synopsis "Emacs outline with outshine")
8867 (description "Outshine attempts to bring the look and feel of
8868@code{org-mode} to an Emacs outside of the Org major-mode. It is an extension
8869of @code{outline-minor-mode} (@code{org-mode} itself derives from
8870outline-mode), so there is no such thing like an outshine mode, only
8871@code{outline-minor-mode} with outshine extensions loaded.")
8872 (license license:gpl3+))))
8873
8874(define-public emacs-parsebib
8875 (package
8876 (name "emacs-parsebib")
8877 (version "2.3.1")
8878 (source
8879 (origin
8880 (method url-fetch)
8881 (uri (string-append "https://github.com/joostkremers/parsebib/archive/"
8882 version ".tar.gz"))
8883 (file-name (string-append name "-" version ".tar.gz"))
8884 (sha256
8885 (base32
8886 "0cxagnmc5ab6idmb26axpizhr4sqglkncc59768yavn3p04jyq63"))))
8887 (build-system emacs-build-system)
8888 (home-page "https://github.com/joostkremers/parsebib")
8889 (synopsis "Library for parsing bib files")
8890 (description
8891 "This package provides an Emacs library for parsing bib files.")
8892 (license license:gpl3+)))
8893
8894(define-public emacs-biblio
8895 (package
8896 (name "emacs-biblio")
8897 (version "0.1")
8898 (source
8899 (origin
8900 (method url-fetch)
8901 (uri (string-append "https://github.com/cpitclaudel/biblio.el/archive/"
8902 version ".tar.gz"))
8903 (file-name (string-append name "-" version ".tar.gz"))
8904 (sha256
8905 (base32
8906 "109fvivsb4r0rbqljngqrmxqvbnbkqlivczx6brrvlr7ci625lhf"))))
8907 (build-system emacs-build-system)
8908 (propagated-inputs
8909 `(("emacs-seq" ,emacs-seq)
8910 ("emacs-dash" ,emacs-dash)
8911 ("emacs-let-alist" ,emacs-let-alist)))
8912 (home-page "https://github.com/cpitclaudel/biblio.el")
8913 (synopsis "Browse and import bibliographic references")
8914 (description "This package provides an extensible Emacs package for
8915browsing and fetching references.
8916
8917@file{biblio.el} makes it easy to browse and gather bibliographic references
8918and publications from various sources, by keywords or by DOI. References are
8919automatically fetched from well-curated sources, and formatted as BibTeX.")
8920 (license license:gpl3+)))
8921
8922(define-public emacs-helm-bibtex
8923 (let ((commit "8ed898fb5a68f18e9bb9973832a5c1f8abcfc463")
8924 (revision "1"))
8925 (package
8926 (name "emacs-helm-bibtex")
8927 (version (string-append "2.0.0" "-" revision "."
8928 (string-take commit 7)))
8929 (source
8930 (origin
8931 (method git-fetch)
8932 (uri (git-reference
8933 (url "https://github.com/tmalsburg/helm-bibtex.git")
8934 (commit commit)))
8935 (file-name (string-append name "-" version "-checkout"))
8936 (sha256
8937 (base32
8938 "14lyx0vbqr97p3anzrsp7m3q0kqclyjcdwplpraim403fcklzbnz"))))
8939 (build-system emacs-build-system)
8940 (propagated-inputs
8941 `(("emacs-helm" ,emacs-helm)
8942 ("emacs-parsebib" ,emacs-parsebib)
8943 ("emacs-s" ,emacs-s)
8944 ("emacs-dash" ,emacs-dash)
8945 ("emacs-f" ,emacs-f)
8946 ("emacs-biblio" ,emacs-biblio)
8947 ("emacs-ivy" ,emacs-ivy)))
8948 (home-page "https://github.com/tmalsburg/helm-bibtex")
8949 (synopsis "Bibliography manager based on Helm")
8950 (description "This package provides bibliography manager for Emacs,
8951based on Helm and the bibtex-completion backend.
8952
8953Key features:
8954
8955@itemize
8956@item Quick access to your bibliography from within Emacs
8957@item Powerful search capabilities
8958@item Provides instant search results as you type
8959@item Tightly integrated with LaTeX authoring, emails, Org mode, etc.
8960@item Open the PDFs, URLs, or DOIs associated with an entry
8961@item Insert LaTeX cite commands, Ebib links, or Pandoc citations,
8962BibTeX entries, or plain text references at point, attach PDFs to emails
8963@item Support for note taking
8964@item Quick access to online bibliographic databases such as Pubmed,
8965arXiv, Google Scholar, Library of Congress, etc.
8966@item Imports BibTeX entries from CrossRef and other sources.
8967@end itemize\n")
8968 (license license:gpl3+))))
8969
8970(define-public emacs-ewmctrl
8971 (let ((commit "3d0217c4d6cdb5c308b6cb4293574f470d4faacf"))
8972 (package
8973 (name "emacs-ewmctrl")
8974 (version (git-version "0.0.1" "1" commit))
8975 (source
8976 (origin
8977 (method git-fetch)
8978 (uri (git-reference
8979 (url "https://github.com/flexibeast/ewmctrl.git")
8980 (commit commit)))
8981 (file-name (git-file-name name version))
8982 (sha256
8983 (base32
8984 "0ilwvx0qryv3v6xf0gxqwnfm6pf96gxap8h9g3f6z6lk9ff4n1wi"))))
8985 (build-system emacs-build-system)
8986 (arguments
8987 '(#:phases
8988 (modify-phases %standard-phases
8989 (add-after 'unpack 'patch-ewmctrl
8990 ;; This build phase makes sure ‘ewmctrl’ looks
8991 ;; for ‘wmctrl’ in the right place.
8992 (lambda _
8993 (let ((file "ewmctrl.el"))
8994 (chmod file #o644)
8995 (emacs-substitute-sexps file
8996 ("(defcustom ewmctrl-wmctrl-path" (which "wmctrl")))))))))
8997 (inputs
8998 `(("wmctrl" ,wmctrl)))
8999 (home-page "https://github.com/flexibeast/ewmctrl")
9000 (synopsis "Emacs interface to @code{wmctrl}")
9001 (description "@code{ewmctrl} provides an Emacs interface to
9002@code{wmctrl} command-line window-management program.")
9003 (license license:gpl3+))))
9004
9005(define-public emacs-helm-gtags
9006 (package
9007 (name "emacs-helm-gtags")
9008 (version "1.5.6")
9009 (source (origin
9010 (method url-fetch)
9011 (uri (string-append
9012 "https://github.com/syohex/emacs-helm-gtags/archive/"
9013 version ".tar.gz"))
9014 (file-name (string-append name "-" version ".tar.gz"))
9015 (sha256
9016 (base32
9017 "1a10snhg6nnnan6w9a7mcziy26vxbsr3c35i0gcarnkdp2yqng36"))))
9018 (build-system emacs-build-system)
9019 (propagated-inputs
9020 `(("emacs-helm" ,emacs-helm)))
9021 (home-page "https://github.com/syohex/emacs-helm-gtags")
9022 (synopsis "Emacs Helm interface to GNU Global")
9023 (description
9024 "@code{emacs-helm-gtags} provides a Emacs Helm interface to GNU Global.")
9025 (license license:gpl3+)))
9026
9027(define-public emacs-list-utils
9028 (package
9029 (name "emacs-list-utils")
9030 (version "0.4.4")
9031 (source
9032 (origin
9033 (method url-fetch)
9034 (uri (string-append "https://github.com/rolandwalker/list-utils/archive/"
9035 "v" version ".tar.gz"))
9036 (file-name (string-append name "-" version ".tar.gz"))
9037 (sha256
9038 (base32
9039 "1xc1xh8c82h5gdjbgpdsdclgwxkxbb7h3x3a2bscpm41g8pnan4p"))))
9040 (build-system emacs-build-system)
9041 (home-page "https://github.com/rolandwalker/list-utils")
9042 (synopsis "List-manipulation utility functions")
9043 (description "This package provides a list manipulation library for Emacs.")
9044 (license license:gpl3+)))
9045
9046(define-public emacs-move-text
9047 (package
9048 (name "emacs-move-text")
9049 (version "2.0.8")
9050 (source
9051 (origin
9052 (method url-fetch)
9053 (uri (string-append "https://github.com/emacsfodder/move-text/archive/"
9054 version ".tar.gz"))
9055 (file-name (string-append name "-" version ".tar.gz"))
9056 (sha256
9057 (base32
9058 "1sjfja9r25692pgcldgnjzkapzy970m14jh9l4pajysiqcdk72g0"))))
9059 (build-system emacs-build-system)
9060 (home-page "https://github.com/emacsfodder/move-text")
9061 (synopsis "Move current line or region with M-up or M-down")
9062 (description "This package provide functions to move the current line
9063using @kbd{M-up} or @kbd{M-down} if a region is marked, it will move the
9064region instead.")
9065 (license license:gpl3+)))
9066
9067(define-public emacs-validate
9068 (package
9069 (name "emacs-validate")
9070 (version "1.0.5")
9071 (source (origin
9072 (method url-fetch)
9073 (uri (string-append "https://github.com/Malabarba/validate.el"
9074 "/archive/" version ".tar.gz"))
9075 (file-name (string-append name "-" version ".tar.gz"))
9076 (sha256
9077 (base32
9078 "125mbd111f1h1baw0z3fzm48y1bvaigljyzvvnqgrn0shxbj0khg"))))
9079 (build-system emacs-build-system)
9080 (home-page "https://github.com/Malabarba/validate.el")
9081 (synopsis "Emacs library for scheme validation")
9082 (description "This Emacs library provides two functions that perform
9083schema validation.")
9084 (license license:gpl3+)))
9085
9086(define-public emacs-rainbow-blocks
9087 (let ((commit "dd435d7bb34ff6f162a5f315df308b90b7e9f842"))
9088 (package
9089 (name "emacs-rainbow-blocks")
9090 (version (git-version "1.0.0" "1" commit))
9091 (source (origin
9092 (method git-fetch)
9093 (uri (git-reference
9094 (url "https://github.com/istib/rainbow-blocks.git")
9095 (commit commit)))
9096 (file-name (git-file-name name version))
9097 (sha256
9098 (base32
9099 "06yfb3i7wzvqrhkb61zib9xvpb5i00s4frizkzff66im05k0n795"))))
9100 (build-system emacs-build-system)
9101 (home-page "https://github.com/istib/rainbow-blocks")
9102 (synopsis "Highlight sexp blocks")
9103 (description "Rainbow-blocks is an Emacs mode that highlights blocks
9104made of parentheses, brackets, and braces according to their depth. Each
9105successive level is highlighted in a different color. This makes it easy to
9106orient yourself in the code, and tell which statements are at a given level.")
9107 (license license:gpl3+))))
9108
9109(define-public emacs-hierarchy
9110 (package
9111 (name "emacs-hierarchy")
9112 (version "0.7.0")
9113 (source
9114 (origin
9115 (method url-fetch)
9116 (uri (string-append
9117 "https://github.com/DamienCassou/hierarchy/archive/"
9118 "v" version ".tar.gz"))
9119 (file-name (string-append name "-" version ".tar.gz"))
9120 (sha256
9121 (base32
9122 "1a463v5zk6zis2p8cs4mads3iyxh266yahi6j6y0paggfl2yhkc8"))))
9123 (build-system emacs-build-system)
9124 (home-page "https://github.com/DamienCassou/hierarchy")
9125 (synopsis "Library to create and display hierarchy structures")
9126 (description "This package provides an Emacs library to create, query,
9127navigate and display hierarchy structures.")
9128 (license license:gpl3+)))
9129
9130(define-public emacs-tree-mode
9131 (let ((commit "b06078826d5875d74b0e7b7ac47b0d0917610534")
9132 (revision "1"))
9133 (package
9134 (name "emacs-tree-mode")
9135 (version (string-append "0.0.1" "-" revision "."
9136 (string-take commit 7)))
9137 (source
9138 (origin
9139 (method git-fetch)
9140 (uri (git-reference
9141 (url "https://github.com/emacsorphanage/tree-mode.git")
9142 (commit commit)))
9143 (file-name (string-append name "-" version "-checkout"))
9144 (sha256
9145 (base32
9146 "13bbdhdmqg4x9yghanhr8fsbsxbnypzxdxgicz31sjjm675kpnix"))))
9147 (build-system emacs-build-system)
9148 (home-page "https://github.com/emacsorphanage/tree-mode")
9149 (synopsis "Emacs mode to manage tree widgets")
9150 (description
9151 "This package provides an Emacs library to manage tree widgets.")
9152 (license license:gpl3+))))
9153
9154(define-public emacs-md4rd
9155 (let ((commit "c55512c2f7680db2a1e73db6bdf93adecaf40fec")
9156 (revision "1"))
9157 (package
9158 (name "emacs-md4rd")
9159 (version (string-append "0.0.2" "-" revision "."
9160 (string-take commit 7)))
9161 (source (origin
9162 (method git-fetch)
9163 (uri (git-reference
9164 (url "https://github.com/ahungry/md4rd.git")
9165 (commit commit)))
9166 (file-name (string-append name "-" version "-checkout"))
9167 (sha256
9168 (base32
9169 "0mvv1mvsrpkrmikcpfqf2zbawnzgq33j6zjdrlv48mcw57xb2ak9"))))
9170 (propagated-inputs
9171 `(("emacs-hierarchy" ,emacs-hierarchy)
9172 ("emacs-request" ,emacs-request)
9173 ("emacs-dash" ,emacs-dash)
9174 ("emacs-s" ,emacs-s)
9175 ("emacs-tree-mode" ,emacs-tree-mode)))
9176 (build-system emacs-build-system)
9177 (home-page "https://github.com/ahungry/md4rd")
9178 (synopsis "Emacs Mode for Reddit")
9179 (description
9180 "This package allows to read Reddit from within Emacs interactively.")
9181 (license license:gpl3+))))
9182
9183(define-public emacs-pulseaudio-control
9184 (let ((commit "1da372ec79f5d2fb901d1f9f0679fee8848fd011")
9185 (revision "2"))
9186 (package
9187 (name "emacs-pulseaudio-control")
9188 (version (git-version "0.0.1" revision commit))
9189 (source
9190 (origin
9191 (method git-fetch)
9192 (uri (git-reference
9193 (url "https://github.com/flexibeast/pulseaudio-control.git")
9194 (commit commit)))
9195 (file-name (git-file-name name version))
9196 (sha256
9197 (base32
9198 "02xrsms2pjqdk6327midi61i5vg2h9cq5jwaxv43ldm68wl7hi6k"))))
9199 (build-system emacs-build-system)
9200 (arguments
9201 '(#:phases (modify-phases %standard-phases
9202 (add-after 'unpack 'patch-file-name
9203 (lambda* (#:key inputs #:allow-other-keys)
9204 (let ((pulseaudio (assoc-ref inputs "pulseaudio")))
9205 (chmod "pulseaudio-control.el" #o600)
9206 (emacs-substitute-variables "pulseaudio-control.el"
9207 ("pulseaudio-control-pactl-path"
9208 (string-append pulseaudio "/bin/pactl")))
9209 #t))))))
9210 (inputs `(("pulseaudio" ,pulseaudio)))
9211 (home-page "https://github.com/flexibeast/pulseaudio-control")
9212 (synopsis "Control @code{pulseaudio} from Emacs")
9213 (description
9214 "This package allows to control @code{pulseaudio} from Emacs.")
9215 (license license:gpl3+))))
9216
9217(define-public emacs-datetime
9218 (package
9219 (name "emacs-datetime")
9220 (version "0.3")
9221 (source (origin
9222 (method url-fetch)
9223 (uri (string-append
9224 "https://github.com/doublep/datetime/archive/"
9225 version ".tar.gz"))
9226 (file-name (string-append name "-" version ".tar.gz"))
9227 (sha256
9228 (base32
9229 "12wqpj67rjij2ki7nmw38rz3k2bsq68pk6zswknlcn9qhp1zd9w9"))))
9230 (build-system emacs-build-system)
9231 (home-page "https://github.com/doublep/datetime/")
9232 (synopsis "Library to work with dates in Emacs")
9233 (description "Parsing, formatting, matching and recoding
9234timestamps and date-time format strings library for Emacs.")
9235 (license license:gpl3+)))
9236
9237(define-public emacs-org-mind-map
9238 (let ((commit "9d6e262bedd94daf9de269f4d56de277275677cb")
9239 (revision "1"))
9240 (package
9241 (name "emacs-org-mind-map")
9242 (version (string-append "0.0.1" "-" revision "."
9243 (string-take commit 7)))
9244 (source
9245 (origin
9246 (method git-fetch)
9247 (uri (git-reference
9248 (url "https://github.com/theodorewiles/org-mind-map.git")
9249 (commit commit)))
9250 (file-name (string-append name "-" version "-checkout"))
9251 (sha256
9252 (base32
9253 "0jgkkgq7g64zckrmjib0hvz0qy3ynz5vz13qbmlpf096l3bb65wn"))))
9254 (propagated-inputs
9255 `(("emacs-dash" ,emacs-dash)))
9256 (build-system emacs-build-system)
9257 (home-page "https://github.com/theodorewiles/org-mind-map")
9258 (synopsis "Create Graphviz directed graphs from Org files")
9259 (description
9260 "This package creates Graphviz directed graphs from Org files.")
9261 (license license:gpl3+))))
9262
9263(define-public emacs-npm-mode
9264 (package
9265 (name "emacs-npm-mode")
9266 (version "0.6.0")
9267 (source
9268 (origin
9269 (method url-fetch)
9270 (uri (string-append "https://github.com/mojochao/npm-mode/archive/"
9271 version ".tar.gz"))
9272 (file-name (string-append name "-" version ".tar.gz"))
9273 (sha256
9274 (base32
9275 "1kq1ww22dwf8c2i2b4z2ldbbmnihj65kb7n5vzvwkch9h4hxpqh5"))))
9276 (build-system emacs-build-system)
9277 (home-page "https://github.com/mojochao/npm-mode")
9278 (synopsis "Minor mode for working with @code{npm} projects")
9279 (description
9280 "@code{npm-mode} provides a minor mode to work with @code{npm} projects.")
9281 (license license:gpl3+)))
9282
9283(define-public emacs-seq
9284 (package
9285 (name "emacs-seq")
9286 (version "2.20")
9287 (source
9288 (origin
9289 (method url-fetch)
9290 (uri (string-append "http://elpa.gnu.org/packages/seq-" version ".tar"))
9291 (sha256
9292 (base32
9293 "0vrpx6nnyjb0gsypknzagimlhvcvi5y1rcdkpxyqr42415zr8d0n"))))
9294 (build-system emacs-build-system)
9295 (home-page "http://elpa.gnu.org/packages/seq.html")
9296 (synopsis "Sequence manipulation functions")
9297 (description "Sequence-manipulation functions that complement basic
9298functions provided by @file{subr.el}.")
9299 (license license:gpl3+)))
9300
9301(define-public emacs-itail
9302 (let ((commit "6e43c20da03be3b9c6ece93b7dc3495975ec1888")
9303 (revision "1"))
9304 (package
9305 (name "emacs-itail")
9306 (version (string-append "0.0.1" "-" revision "."
9307 (string-take commit 7)))
9308 (source
9309 (origin
9310 (method git-fetch)
9311 (uri (git-reference
9312 (url "https://github.com/re5et/itail.git")
9313 (commit commit)))
9314 (file-name (string-append name "-" version "-checkout"))
9315 (sha256
9316 (base32
9317 "044nzxh1hq41faxw3lix0wy78vfz304pjcaa5a11dqfz7q3gx5cv"))))
9318 (build-system emacs-build-system)
9319 (home-page "https://github.com/re5et/itail")
9320 (synopsis "Interactive @code{tail} Emacs mode")
9321 (description "@code{itail} provides interactive @code{tail} mode
9322that allows you to filter the tail with unix pipes and highlight the
9323contents of the tailed file. Works locally or on remote files using
9324tramp.")
9325 (license license:gpl3+))))
9326
9327(define-public emacs-loop
9328 (package
9329 (name "emacs-loop")
9330 (version "1.3")
9331 (source
9332 (origin
9333 (method url-fetch)
9334 (uri (string-append "https://github.com/Wilfred/loop.el/archive/"
9335 version ".tar.gz"))
9336 (file-name (string-append name "-" version ".tar.gz"))
9337 (sha256
9338 (base32
9339 "1z3rhh3zyjabz36410yz0lp4a0qwwj0387as662wvx3z9y54jia9"))))
9340 (build-system emacs-build-system)
9341 (home-page "https://github.com/Wilfred/loop.el")
9342 (synopsis "Imperative loop structures for Emacs")
9343 (description "Loop structures familiar to users of other languages. This
9344library adds a selection of popular loop structures as well as break and
9345continue.")
9346 (license license:gpl3+)))
9347
9348(define-public emacs-elisp-refs
9349 (package
9350 (name "emacs-elisp-refs")
9351 (version "1.3")
9352 (source
9353 (origin
9354 (method url-fetch)
9355 (uri (string-append "https://github.com/Wilfred/elisp-refs/archive/"
9356 version ".tar.gz"))
9357 (file-name (string-append name "-" version ".tar.gz"))
9358 (sha256
9359 (base32
9360 "02nzcn3v14n7mp7q32j5r4wdlpsw3zixzh6cf0cdyarfir6dly3p"))))
9361 (build-system emacs-build-system)
9362 (propagated-inputs
9363 `(("emacs-dash" ,emacs-dash)
9364 ("emacs-f" ,emacs-f)
9365 ("emacs-list-utils" ,emacs-list-utils)
9366 ("emacs-loop" ,emacs-loop)
9367 ("emacs-s" ,emacs-s)
9368 ("emacs-shut-up" ,emacs-shut-up)))
9369 (home-page "https://github.com/Wilfred/elisp-refs")
9370 (synopsis "Find callers of elisp functions or macros")
9371 (description "Find references to functions, macros or variables. Unlike a
9372dumb text search, @code{elisp-refs} actually parses the code, so it's never
9373confused by comments or @code{foo-bar} matching @code{foo}.")
9374 (license license:gpl3+)))
9375
9376(define-public emacs-crux
9377 (let ((commit "4f5c8fefd5a6aa52e128c4a0401cc86410d6ac8f")
9378 (revision "1"))
9379 (package
9380 (name "emacs-crux")
9381 (version (string-append "0.3.0" "-" revision "."
9382 (string-take commit 7)))
9383 (source
9384 (origin
9385 (method git-fetch)
9386 (uri (git-reference
9387 (url "https://github.com/bbatsov/crux.git")
9388 (commit commit)))
9389 (file-name (string-append name "-" version "-checkout"))
9390 (sha256
9391 (base32
9392 "1fdxvv25cs01sg6fmvmzxpzvs50i6v8n2jya60lbavxqqhi0sbxd"))))
9393 (build-system emacs-build-system)
9394 (home-page "https://github.com/bbatsov/crux")
9395 (synopsis "Collection of useful functions for Emacs")
9396 (description
9397 "@code{crux} provides a collection of useful functions for Emacs.")
9398 (license license:gpl3+))))
9399
9400(define-public emacs-edit-server
9401 (package
9402 (name "emacs-edit-server")
9403 (version "1.13")
9404 (source
9405 (origin
9406 (method url-fetch)
9407 (uri (string-append "https://github.com/stsquad/emacs_chrome/archive/"
9408 "v" version ".tar.gz"))
9409 (file-name (string-append name "-" version ".tar.gz"))
9410 (sha256
9411 (base32
9412 "1r92kqggslqasza718z4ka883mqfbnibdm43f0j9gaipk0msm2wf"))))
9413 (build-system emacs-build-system)
9414 (arguments
9415 `(#:phases
9416 (modify-phases %standard-phases
9417 (add-after 'unpack 'chdir-elisp
9418 ;; Elisp directory is not in root of the source.
9419 (lambda _
9420 (chdir "servers"))))))
9421 (home-page "https://github.com/stsquad/emacs_chrome")
9422 (synopsis "Server that responds to edit requests from Chromium")
9423 (description
9424 "This package provides an edit server to respond to requests from Emacs.")
9425 (license license:gpl3+)))
9426
9427(define-public emacs-m-buffer-el
9428 (package
9429 (name "emacs-m-buffer-el")
9430 (version "0.15")
9431 (source
9432 (origin
9433 (method url-fetch)
9434 (uri (string-append "https://github.com/phillord/m-buffer-el"
9435 "/archive/" "v" version ".tar.gz"))
9436 (file-name (string-append name "-" version ".tar.gz"))
9437 (sha256
9438 (base32
9439 "17vdcc8q37q9db98jyww1c0ivinmwfcw4l04zccfacalra63a214"))))
9440 (arguments
9441 `(#:phases
9442 (modify-phases %standard-phases
9443 (add-before 'install 'check
9444 (lambda* (#:key inputs #:allow-other-keys)
9445 (invoke "emacs" "--batch" "-L" "."
9446 "-l" "test/m-buffer-test.el"
9447 "-l" "test/m-buffer-at-test.el"
9448 "-f" "ert-run-tests-batch-and-exit"))))))
9449 (build-system emacs-build-system)
9450 (home-page "https://github.com/phillord/m-buffer-el")
9451 (synopsis "List oriented buffer operations for Emacs")
9452 (description "@code{m-buffer} provides a set of list-orientated functions
9453for operating over the contents of Emacs buffers.")
9454 (license license:gpl3+)))
9455
9456(define-public emacs-let-alist
9457 (package
9458 (name "emacs-let-alist")
9459 (version "1.0.5")
9460 (source
9461 (origin
9462 (method url-fetch)
9463 (uri (string-append
9464 "https://elpa.gnu.org/packages/let-alist-" version ".el"))
9465 (sha256
9466 (base32
9467 "0r7b9jni50la1m79kklml11syg8d2fmdlr83pv005sv1wh02jszw"))))
9468 (build-system emacs-build-system)
9469 (home-page "https://elpa.gnu.org/packages/let-alist.html")
9470 (synopsis "Easily let-bind values of an assoc-list by their names")
9471 (description "This package offers a single macro, @code{let-alist}. This
9472macro takes a first argument (whose value must be an alist) and a body.")
9473 (license license:gpl3+)))
9474
9475(define-public emacs-esup
9476 (let ((commit "a589005a9a888537deef94d6fe38a9b8790c97c7")
9477 (revision "1"))
9478 (package
9479 (name "emacs-esup")
9480 (version (string-append "0.6" "-" revision "."
9481 (string-take commit 7)))
9482 (source
9483 (origin
9484 (method git-fetch)
9485 (uri (git-reference
9486 (url "https://github.com/jschaf/esup.git")
9487 (commit commit)))
9488 (file-name (string-append name "-" version "-checkout"))
9489 (sha256
9490 (base32
9491 "04lxmd0h7mfjjl0qghrycgff0vcv950j1wqv0dbkr61jxp64n5fv"))))
9492 ;; TODO: Add tests
9493 (build-system emacs-build-system)
9494 (home-page "https://github.com/jschaf/esup")
9495 (synopsis "Emacs start up profiler")
9496 (description "Benchmark Emacs Startup time without ever leaving
9497your Emacs.")
9498 (license license:gpl2+))))
9499
9500(define-public emacs-sourcemap
9501 (package
9502 (name "emacs-sourcemap")
9503 (version "0.03")
9504 (source
9505 (origin
9506 (method url-fetch)
9507 (uri (string-append "https://github.com/syohex/emacs-sourcemap/archive/"
9508 version ".tar.gz"))
9509 (file-name (string-append name "-" version ".tar.gz"))
9510 (sha256
9511 (base32
9512 "0bmd5l3cx2iyl7vxn84xdhs80b07kpdpfwki28lh5d0kmm5qs6m6"))))
9513 (build-system emacs-build-system)
9514 (home-page "https://github.com/syohex/emacs-sourcemap")
9515 (synopsis "Sourcemap parser")
9516 (description "Sourcemap parser")
9517 (license license:gpl3+)))
9518
9519(define-public emacs-macrostep
9520 (let ((commit "424e3734a1ee526a1bd7b5c3cd1d3ef19d184267"))
9521 (package
9522 (name "emacs-macrostep")
9523 (version (git-version "0.9" "1" commit))
9524 (source (origin
9525 (method git-fetch)
9526 (uri (git-reference
9527 (url "https://github.com/joddie/macrostep.git")
9528 (commit commit)))
9529 (file-name (string-append name "-" version "-checkout"))
9530 (sha256
9531 (base32
9532 "1fm40mxdn289cyzgw992223dgrjmwxn4q8svyyxfaxjrpb38jhjz"))))
9533 (build-system emacs-build-system)
9534 (arguments
9535 '(#:phases
9536 (modify-phases %standard-phases
9537 (add-before 'check 'remove-test
9538 ;; Fails because of requirement ‘/bin/sh’.
9539 (lambda _
9540 (let ((file "macrostep-test.el"))
9541 (chmod file #o644)
9542 (emacs-batch-edit-file file
9543 `(progn (progn (goto-char (point-min))
9544 (re-search-forward
9545 "(ert-deftest macrostep-expand-c-macros")
9546 (beginning-of-line)
9547 (kill-sexp))
9548 (basic-save-buffer))))))
9549 (add-before 'install 'check
9550 (lambda _
9551 (invoke "emacs" "--batch" "-L" "."
9552 "-l" "macrostep-test.el"
9553 "-f" "ert-run-tests-batch-and-exit"))))))
9554 (home-page "https://github.com/joddie/macrostep")
9555 (synopsis "Interactive macro-expander for Emacs")
9556 (description "@code{macrostep} is an Emacs minor mode for interactively
9557stepping through the expansion of macros in Emacs Lisp source code. It lets
9558you see exactly what happens at each step of the expansion process by
9559pretty-printing the expanded forms inline in the source buffer, which is
9560temporarily read-only while macro expansions are visible. You can expand and
9561collapse macro forms one step at a time, and evaluate or instrument the
9562expansions for debugging with Edebug as normal (but see “Bugs and known
9563limitations”, below). Single-stepping through the expansion is particularly
9564useful for debugging macros that expand into another macro form. These can be
9565difficult to debug with Emacs’ built-in macroexpand, which continues expansion
9566until the top-level form is no longer a macro call.")
9567 (license license:gpl3+))))
9568
9569(define-public emacs-parent-mode
9570 (package
9571 (name "emacs-parent-mode")
9572 (version "2.3")
9573 (source
9574 (origin
9575 (method url-fetch)
9576 (uri (string-append "https://github.com/Fanael/parent-mode/archive/"
9577 version ".tar.gz"))
9578 (file-name (string-append name "-" version ".tar.gz"))
9579 (sha256
9580 (base32
9581 "0gxbl5s1w96v6v55b7aaansgw4sxhzfx9nrsvpk3pfhsibs6yqjd"))))
9582 (build-system emacs-build-system)
9583 (home-page "https://github.com/Fanael/parent-mode")
9584 (synopsis "Get major mode's parent modes")
9585 (description "Get major mode's parent modes")
9586 (license license:gpl3+)))
9587
9588(define-public emacs-lacarte
9589 (package
9590 (name "emacs-lacarte")
9591 (version "0.1")
9592 (source (origin
9593 (method url-fetch)
9594 (uri "https://www.emacswiki.org/emacs/download/lacarte.el")
9595 (sha256
9596 (base32
9597 "1sbmk37ljq5j7dsw5c37sbxvlfgdqswh7bi4dknyjzfxlq50f4am"))))
9598 (build-system emacs-build-system)
9599 (home-page "https://www.emacswiki.org/emacs/lacarte.el")
9600 (synopsis "Execute menu items as commands, with completion")
9601 (description "Execute menu items as commands, with completion.")
9602 (license license:gpl3)))
9603
9604(define-public emacs-company-lua
9605 (let ((commit "0be8122f3adf57ad27953bf4b03545d6298d3da4"))
9606 (package
9607 (name "emacs-company-lua")
9608 (version (git-version "0.1" "1" commit))
9609 (source
9610 (origin
9611 (method git-fetch)
9612 (uri (git-reference
9613 (url "https://github.com/ptrv/company-lua.git")
9614 (commit commit)))
9615 (file-name (git-file-name name version))
9616 (sha256
9617 (base32
9618 "1d9i165apgmwns7b2fd5wcpjpkah3dyj20v5sb8ynvz6qhhr5r9c"))))
9619 (build-system emacs-build-system)
9620 (propagated-inputs
9621 `(("emacs-company" ,emacs-company)
9622 ("emacs-s" ,emacs-s)
9623 ("emacs-f" ,emacs-f)
9624 ("emacs-lua-mode" ,emacs-lua-mode)))
9625 (home-page "https://github.com/ptrv/company-lua")
9626 (synopsis "Company backend for Lua")
9627 (description
9628 "This package provides Company backend for Lua programming language.")
9629 (license license:gpl3+))))
9630
9631(define-public emacs-beginend
9632 (package
9633 (name "emacs-beginend")
9634 (version "2.0.0")
9635 (source
9636 (origin
9637 (method url-fetch)
9638 (uri (string-append "https://github.com/DamienCassou/beginend/archive/"
9639 "v" version ".tar.gz"))
9640 (file-name (string-append name "-" version ".tar.gz"))
9641 (sha256
9642 (base32
9643 "0z4rbwffh9vxfvcrlvym4p73z7gf72q0b5iv33llbpcpbijknnrq"))))
9644 ;; TODO: Run tests.
9645 (build-system emacs-build-system)
9646 (inputs
9647 `(("emacs-undercover" ,emacs-undercover))) ; For tests.
9648 (home-page "https://github.com/DamienCassou/beginend")
9649 (synopsis "Redefine @code{M-<} and @code{M->} for Emacs modes")
9650 (description "@code{beginend} redefines @code{M-<} and @code{M->}
9651keybindings for Emacs modes so that point moves to meaningful
9652locations. Redefined keys are still accessible by pressing the same
9653key again.")
9654 (license license:gpl3+)))
9655
9656(define-public emacs-mbsync
9657 (let ((commit "42077e83ae2db778ce0f8e22f8357b40355526b3")
9658 (revision "1"))
9659 (package
9660 (name "emacs-mbsync")
9661 (version (string-append "0.0.1" "-" revision "."
9662 (string-take commit 7)))
9663 (source
9664 (origin
9665 (method git-fetch)
9666 (uri (git-reference
9667 (url "https://github.com/dimitri/mbsync-el.git")
9668 (commit commit)))
9669 (file-name (string-append name "-" version "-checkout"))
9670 (sha256
9671 (base32
9672 "0yj93y2mpxlir8x73znlg1slxlv4blm1vjv5h2w3j8lxg8bxvmn6"))))
9673 (build-system emacs-build-system)
9674 (home-page "https://github.com/dimitri/mbsync-el")
9675 (synopsis "Interface to mbsync for Emacs")
9676 (description "This package allows to call the @code{mbsync} from
9677within Emacs.")
9678 (license license:gpl3+))))
9679
9680(define-public emacs-ibuffer-projectile
9681 (let ((commit "c18ac540ee46cb759fc5df18747f6e8d23563011")
9682 (revision "1"))
9683 (package
9684 (name "emacs-ibuffer-projectile")
9685 (version (string-append "0.2" "-" revision "."
9686 (string-take commit 7)))
9687 (source
9688 (origin
9689 (method git-fetch)
9690 (uri (git-reference
9691 (url "https://github.com/purcell/ibuffer-projectile.git")
9692 (commit commit)))
9693 (file-name (string-append name "-" version "-checkout"))
9694 (sha256
9695 (base32
9696 "1nd26cwwdpnwj0g4w393rd59klpyr6wqrnyr6scmwb5d06bsm44n"))))
9697 (build-system emacs-build-system)
9698 (propagated-inputs
9699 `(("emacs-projectile" ,emacs-projectile)))
9700 (home-page "https://github.com/purcell/ibuffer-projectile")
9701 (synopsis "Group ibuffer's list by projectile root")
9702 (description "Adds functionality to Emacs @code{ibuffer} for
9703grouping buffers by their projectile root directory.")
9704 (license license:gpl3+))))
9705
9706(define-public emacs-helm-mode-manager
9707 (package
9708 (name "emacs-helm-mode-manager")
9709 (version "1.0.0")
9710 (source
9711 (origin
9712 (method url-fetch)
9713 (uri (string-append "https://github.com/istib/helm-mode-manager/"
9714 "archive/" version ".tar.gz"))
9715 (file-name (string-append name "-" version ".tar.gz"))
9716 (sha256
9717 (base32
9718 "0wllj321z16hgrx0ddwzk5wz4mnnx5am7w5nclqclfc5dfdn92wm"))))
9719 (build-system emacs-build-system)
9720 (propagated-inputs
9721 `(("emacs-helm" ,emacs-helm)))
9722 (home-page "https://github.com/istib/helm-mode-manager/")
9723 (synopsis "Switch and toggle Emacs major and minor modes using Helm")
9724 (description "This package provides a Helm interface for toggling Emacs
9725major or minor mode.
9726
9727@itemize
9728@item @code{helm-switch-major-mode} list of all major modes
9729@item @code{helm-enable-minor-mode} list of all inactive minor modes
9730@item @code{helm-disable-minor-mode} list of all ACTIVE minor modes
9731@end itemize\n
9732
9733Hitting @code{RET} enables the mode, @code{C-z} shows the mode
9734documentation.")
9735 (license license:gpl3+)))
9736
9737(define-public emacs-hy-mode
9738 (package
9739 (name "emacs-hy-mode")
9740 (version "1.0.3")
9741 (source
9742 (origin
9743 (method url-fetch)
9744 (uri (string-append "https://github.com/hylang/hy-mode/archive/"
9745 "v" version ".tar.gz"))
9746 (file-name (string-append name "-" version ".tar.gz"))
9747 (sha256
9748 (base32
9749 "0b4pvbr2hf77bq2vsyfsv653q0dab7qzq85wc7kdziw7687jdf2z"))))
9750 (build-system emacs-build-system)
9751 (propagated-inputs
9752 `(("emacs-dash" ,emacs-dash)
9753 ("emacs-s" ,emacs-s)))
9754 (home-page "https://github.com/hylang/hy-mode")
9755 (synopsis "Major mode for Hylang")
9756 (description "This package provides a major mode for Hylang.")
9757 (license license:gpl3+)))
9758
9759(define-public emacs-web-beautify
9760 (package
9761 (name "emacs-web-beautify")
9762 (version "0.3.2")
9763 (source
9764 (origin
9765 (method url-fetch)
9766 (uri (string-append "https://github.com/yasuyk/web-beautify/archive/"
9767 version ".tar.gz"))
9768 (file-name (string-append name "-" version ".tar.gz"))
9769 (sha256
9770 (base32
9771 "1j57hwid74id4swkx2g0iljfawx0k9c7qjrwqc0mv657x9p78hcs"))))
9772 (build-system emacs-build-system)
9773 (home-page "https://github.com/yasuyk/web-beautify")
9774 (synopsis "Format HTML, CSS and JavaScript, JSON")
9775 (description "This package provides an Emacs functions to format HTML,
9776CSS, JavaScript, JSON.")
9777 (license license:gpl3+)))
9778
9779(define-public emacs-helm-shell-history
9780 (let ((commit "110d3c35c52fe4b89b29e79ea4c8626bce7266a1"))
9781 (package
9782 (name "emacs-helm-shell-history")
9783 (version (git-version "0.1" "1" commit))
9784 (source
9785 (origin
9786 (method git-fetch)
9787 (uri (git-reference
9788 (url "https://github.com/yuutayamada/helm-shell-history.git")
9789 (commit commit)))
9790 (file-name (git-file-name name version))
9791 (sha256
9792 (base32
9793 "18fkjcz69g4dyaxhf9j8svr5x6dhsdnglddwisis8hdn504scpfj"))))
9794 (build-system emacs-build-system)
9795 (arguments
9796 '(#:phases
9797 (modify-phases %standard-phases
9798 (add-before 'check 'patch-helm-shell-history-file
9799 (lambda _
9800 (let ((file "helm-shell-history.el"))
9801 (chmod file #o644)
9802 (emacs-substitute-sexps file
9803 ("(defvar helm-shell-history-file"
9804 `(expand-file-name "~/.bash_history"))))
9805 #t)))))
9806 (propagated-inputs
9807 `(("emacs-helm" ,emacs-helm)))
9808 (home-page "https://github.com/yuutayamada/helm-shell-history")
9809 (synopsis "Find shell history with Emacs Helm")
9810 (description "This package provides an Emacs Helm interface to search
9811throw a shell history.")
9812 (license license:gpl3+))))
9813
9814(define-public emacs-discover-my-major
9815 (package
9816 (name "emacs-discover-my-major")
9817 (version "1.0")
9818 (source
9819 (origin
9820 (method url-fetch)
9821 (uri
9822 (string-append "https://github.com/steckerhalter/discover-my-major"
9823 "/archive/" version ".tar.gz"))
9824 (file-name (string-append name "-" version ".tar.gz"))
9825 (sha256
9826 (base32
9827 "0nah41f92rrl2l405kpqr6iaks11jyclgl4z7ilfymbr4ifmsiyl"))))
9828 (build-system emacs-build-system)
9829 (propagated-inputs
9830 `(("emacs-makey" ,emacs-makey)))
9831 (home-page "https://github.com/steckerhalter/discover-my-major")
9832 (synopsis "Discover key bindings for the current Emacs major mode")
9833 (description "This package provides allows to discover key bindings and
9834their meaning for the current Emacs major-mode.")
9835 (license license:gpl3+)))
9836
9837(define-public emacs-org-ref
9838 (let ((commit "8c9b5d7efb9f0c1ad5186b8203bdd017f4249129")
9839 (revision "1"))
9840 (package
9841 (name "emacs-org-ref")
9842 (version (string-append "1.1.1" "-" revision "."
9843 (string-take commit 7)))
9844 (source
9845 (origin
9846 (method git-fetch)
9847 (uri (git-reference
9848 (url "https://github.com/jkitchin/org-ref.git")
9849 (commit commit)))
9850 (file-name (string-append name "-" version "-checkout"))
9851 (sha256
9852 (base32
9853 "1rxz0bjdsayk0slv23i07d9xhj2m7s4hsc81wc2d1cs52dkr5zmz"))))
9854 (build-system emacs-build-system)
9855 (propagated-inputs
9856 `(("emacs-dash" ,emacs-dash)
9857 ("emacs-helm" ,emacs-helm)
9858 ("emacs-helm-bibtex" ,emacs-helm-bibtex)
9859 ("emacs-ivy" ,emacs-ivy)
9860 ("emacs-hydra" ,emacs-hydra)
9861 ("emacs-key-chord" ,emacs-key-chord)
9862 ("emacs-s" ,emacs-s)
9863 ("emacs-f" ,emacs-f)
9864 ("emacs-pdf-tools" ,emacs-pdf-tools)))
9865 (home-page "https://github.com/jkitchin/org-ref")
9866 (synopsis "Citations, cross-references and bibliographies in org-mode")
9867 (description
9868 "Lisp code to setup bibliography, cite, ref and label org-mode links.
9869Also sets up reftex and helm for org-mode citations. The links are
9870clickable and do things that are useful.
9871
9872The default setup uses helm-bibtex.
9873
9874You should really read org-ref.org in this package for details.")
9875 (license license:gpl3+))))
9876
9877(define-public emacs-org-reveal
9878 (package
9879 (name "emacs-org-reveal")
9880 ;; There are no proper tag, so we use the latest commit of the stable
9881 ;; branch, as does MELPA.
9882 (version "20161027.926")
9883 (source (origin
9884 (method git-fetch)
9885 (uri (git-reference
9886 (url "https://github.com/yjwen/org-reveal.git")
9887 (commit "001567cc12d50ba07612edd1718b86a12e8c2547")))
9888 (file-name (string-append name "-" version "-checkout"))
9889 (sha256
9890 (base32
9891 "18rma8smjrskbjyna076zhvx79zs5r5vinb537h8mw13pfxd6cm8"))))
9892 (build-system emacs-build-system)
9893 (home-page "https://github.com/yjwen/org-reveal")
9894 (synopsis "Org and Reveal.js powered HTML presentation tool")
9895 (description "Org-Reveal is a command@{org-mode} extension that allows to
9896create beautiful presentations (slides) with 3D effects from simple but
9897powerful Org contents.")
9898 (license license:gpl3+)))
9899
9900(define-public emacs-add-hooks
9901 (package
9902 (name "emacs-add-hooks")
9903 (version "3.1.1")
9904 (source (origin
9905 (method url-fetch)
9906 (uri (string-append
9907 "https://github.com/nickmccurdy/add-hooks/archive/"
9908 version ".tar.gz"))
9909 (file-name (string-append name "-" version ".tar.gz"))
9910 (sha256
9911 (base32
9912 "03a28gb3298g7pc2qji9hi44p4d99ljp5mpi9cmg42ldv8fl6549"))))
9913 (build-system emacs-build-system)
9914 (home-page "https://github.com/nickmccurdy/add-hooks/")
9915 (synopsis "Emacs function for setting multiple hooks")
9916 (description "This package provides a @code{add-hooks} function tidies up
9917duplicate hook and function names further into a single declarative call.")
9918 (license license:gpl3+)))
9919
9920(define-public emacs-fancy-narrow
9921 (package
9922 (name "emacs-fancy-narrow")
9923 (version "0.9.5")
9924 (source
9925 (origin
9926 (method url-fetch)
9927 (uri (string-append "https://github.com/Malabarba/fancy-narrow/archive/"
9928 version ".tar.gz"))
9929 (file-name (string-append name "-" version ".tar.gz"))
9930 (sha256
9931 (base32
9932 "0rf2rnzg82pdqch041yyx3f9ddixffkk9s2ydzg8hwy66sg3385n"))))
9933 (build-system emacs-build-system)
9934 (home-page "https://github.com/Malabarba/fancy-narrow/releases")
9935 (synopsis "Imitate @code{narrow-to-region} with more eye candy")
9936 (description
9937 "Unlike @code{narrow-to-region}, which completely hides text outside
9938the narrowed region, this package simply de-emphasizes the text, makes it
9939read-only, and makes it unreachable. This leads to a much more natural
9940feeling where the region stays static (instead of being brutally moved to a
9941blank slate) and is clearly highlighted with respect to the rest of the
9942buffer.")
9943 (license license:gpl2+)))
9944
9945(define-public emacs-know-your-http-well
9946 (package
9947 (name "emacs-know-your-http-well")
9948 (version "0.5.0")
9949 (source
9950 (origin
9951 (method url-fetch)
9952 (uri (string-append
9953 "https://github.com/for-GET/know-your-http-well/archive/"
9954 "v" version ".tar.gz"))
9955 (file-name (string-append name "-" version ".tar.gz"))
9956 (sha256
9957 (base32
9958 "1y3kwz88awcgwaivlswq0q4g2i02762r23lpwg61bfqy5lrjjqnj"))))
9959 (arguments
9960 `(#:phases
9961 (modify-phases %standard-phases
9962 (add-after 'unpack 'install-json-files
9963 (lambda* (#:key outputs #:allow-other-keys)
9964 (for-each (lambda (directory)
9965 (copy-recursively directory
9966 (string-append
9967 (assoc-ref outputs "out")
9968 directory)))
9969 '("js" "json"))))
9970 (add-after 'unpack 'chdir-elisp
9971 ;; Elisp directory is not in root of the source.
9972 (lambda _
9973 (chdir "emacs"))))))
9974 (build-system emacs-build-system)
9975 (home-page "https://github.com/for-GET/know-your-http-well")
9976 (synopsis "Meaning of HTTP headers codes")
9977 (description "Meaning of HTTP headers codes.")
9978 (license license:gpl3+)))
9979
9980(define-public emacs-navi-mode
9981 (let ((commit "c1d38e8237f4e14af020a0b7d4f118ea198ab674"))
9982 (package
9983 (name "emacs-navi-mode")
9984 (version (git-version "2.0" "1" commit))
9985 (source
9986 (origin
9987 (method git-fetch)
9988 (uri (git-reference
9989 (url "https://github.com/alphapapa/navi.git")
9990 (commit commit)))
9991 (file-name (git-file-name name version))
9992 (sha256
9993 (base32
9994 "0jj5spk14hgb7zb1cd2n8whcw4k1kd5zb6llwj96v178yaws7l8k"))))
9995 (build-system emacs-build-system)
9996 (propagated-inputs
9997 `(("emacs-outshine" ,emacs-outshine)
9998 ("emacs-outorg" ,emacs-outorg)))
9999 (home-page "https://github.com/alphapapa/navi")
10000 (synopsis "Emacs major-mode for easy buffer-navigation")
10001 (description
10002 "This package provides an Emacs major-mode for easy buffer-navigation")
10003 (license license:gpl3+))))
10004
10005(define-public emacs-download-region
10006 (let ((commit "eb9e557529a73b4cfc8281c70dd0d95db333fffa")
10007 (revision "1"))
10008 (package
10009 (name "emacs-download-region")
10010 (version (string-append "0.0.1" "-" revision "."
10011 (string-take commit 7)))
10012 (source
10013 (origin
10014 (method git-fetch)
10015 (uri (git-reference
10016 (url "https://github.com/zk-phi/download-region.git")
10017 (commit commit)))
10018 (file-name (string-append name "-" version "-checkout"))
10019 (sha256
10020 (base32
10021 "0v52djg39b6k2snizd9x0qc009ws5y0ywqsfwhqgcbs5ymzh7dsc"))))
10022 (build-system emacs-build-system)
10023 (home-page "https://github.com/zk-phi/download-region")
10024 (synopsis "In buffer download manager for Emacs")
10025 (description "@code{download-region} provides in buffer
10026downloading manager for Emacs.")
10027 (license license:gpl3+))))
10028
10029(define-public emacs-helpful
10030 (package
10031 (name "emacs-helpful")
10032 (version "0.15")
10033 (source (origin
10034 (method url-fetch)
10035 (uri (string-append
10036 "https://github.com/Wilfred/helpful/archive/"
10037 version ".tar.gz"))
10038 (file-name (string-append name "-" version ".tar.gz"))
10039 (sha256
10040 (base32
10041 "1xmvhphzb4hbg647dz4lafy6hd19b7bk3lxni6irqrzdsrclhzn6"))))
10042 (build-system emacs-build-system)
10043 (propagated-inputs
10044 `(("emacs-elisp-refs" ,emacs-elisp-refs)))
10045 (home-page "https://github.com/Wilfred/helpful")
10046 (synopsis "More contextual information in Emacs help")
10047 (description "@code{helpful} is an alternative to the built-in Emacs help
10048that provides much more contextual information.
10049
10050@itemize
10051@item Show the source code for interactively defined functions (unlike the
10052built-in Help).
10053@item Fall back to the raw sexp if no source is available.
10054@item Show where a function is being called.
10055@item Docstrings will Highlight the summary (the first sentence), include
10056cross-references, hide superfluous puncuation.
10057@item Show you the properties that have been applied to the current
10058symbol. This provides visibility of features like edebug or byte-code
10059optimisation.
10060@item Provide a separate @code{helpful-command} function to view interactive
10061functions.
10062@item Display any keybindings that apply to interactive functions.
10063@item Trace, disassemble functions from inside Helpful. This is discoverable
10064and doesn't require memorisation of commands.
10065@end itemize\n")
10066 (license license:gpl3+)))
10067
10068(define-public emacs-logview
10069 (package
10070 (name "emacs-logview")
10071 (version "0.9")
10072 (source (origin
10073 (method url-fetch)
10074 (uri (string-append
10075 "https://github.com/doublep/logview/archive/"
10076 version ".tar.gz"))
10077 (file-name (string-append name "-" version ".tar.gz"))
10078 (sha256
10079 (base32
10080 "1vd11ppm46ldqsiwhqgw91p34gbjh1y82r9mxcn9r2gj65nvhxcp"))))
10081 (propagated-inputs
10082 `(("emacs-datetime" ,emacs-datetime)))
10083 (build-system emacs-build-system)
10084 (home-page "https://github.com/doublep/logview/")
10085 (synopsis "Emacs mode for viewing log files")
10086 (description "@code{logview} provides an Emacs mode to view log files.")
10087 (license license:gpl3+)))
10088
10089(define-public emacs-suggest
10090 (package
10091 (name "emacs-suggest")
10092 (version "0.4")
10093 (source
10094 (origin
10095 (method url-fetch)
10096 (uri (string-append "https://github.com/Wilfred/suggest.el/archive/"
10097 version ".tar.gz"))
10098 (file-name (string-append name "-" version ".tar.gz"))
10099 (sha256
10100 (base32
10101 "1760fm3j19w8xxcawq6s859h86q1rdg69pg9yz48n76kwfk3vlgp"))))
10102 (build-system emacs-build-system)
10103 (propagated-inputs
10104 `(("emacs-loop" ,emacs-loop)
10105 ("emacs-dash" ,emacs-dash)
10106 ("emacs-s" ,emacs-s)
10107 ("emacs-f" ,emacs-f)))
10108 (home-page "https://github.com/Wilfred/suggest.el")
10109 (synopsis "Suggest Elisp functions that give the output requested")
10110 (description "Suggest.el will find functions that give the output
10111requested. It's a great way of exploring list, string and arithmetic
10112functions.")
10113 (license license:gpl3+)))
10114
10115(define-public emacs-benchmark-init
10116 (package
10117 (name "emacs-benchmark-init")
10118 (version "1.0")
10119 (source (origin
10120 (method url-fetch)
10121 (uri (string-append
10122 "https://github.com/dholm/benchmark-init-el/archive/"
10123 version ".tar.gz"))
10124 (file-name (string-append name "-" version ".tar.gz"))
10125 (sha256
10126 (base32
10127 "0szyqr4nncwz4vd5gww1vz31kf9r2lx25p4d0d09pm35974x53kz"))))
10128 (build-system emacs-build-system)
10129 (home-page "https://github.com/dholm/benchmark-init-el")
10130 (synopsis "Benchmark Emacs @code{require} and @code{load} calls")
10131 (description "@code{benchmark-init} provides a way to keep track of where
10132time is being spent during Emacs startup in order to optimize startup time.")
10133 (license license:gpl3+)))
10134
10135(define-public emacs-emms-player-simple-mpv
10136 ;; A new mpv backend is included in Emms from 5.0.
10137 (deprecated-package "emacs-emms-player-simple-mpv" emacs-emms))
10138
10139(define-public emacs-magit-org-todos-el
10140 (let ((commit "df206287737b9671f2e36ae7b1474ebbe9940d2a"))
10141 (package
10142 (name "emacs-magit-org-todos-el")
10143 (version (git-version "0.1.1" "1" commit))
10144 (source
10145 (origin
10146 (method git-fetch)
10147 (uri (git-reference
10148 (url "https://github.com/danielma/magit-org-todos.el.git")
10149 (commit commit)))
10150 (file-name (git-file-name name version))
10151 (sha256
10152 (base32
10153 "0kdp7k7jnnrkhsg0xh1c3h7iz0vgi120gf5xwl1hxy61avivnxrn"))))
10154 (propagated-inputs
10155 `(("magit" ,emacs-magit)))
10156 (build-system emacs-build-system)
10157 (home-page "https://github.com/danielma/magit-org-todos.el")
10158 (synopsis "Get todo.org into Emacs Magit status")
10159 (description "This package allows you to get @file{todo.org} into your
10160magit status.
10161
10162If you have a @file{todo.org} file with @code{TODO} items in the root of your
10163repository, @code{magit-org-todos} will create a section in your Magit status
10164buffer with each of your todos.")
10165 (license license:gpl3+))))
10166
10167(define-public emacs-f3
10168 (package
10169 (name "emacs-f3")
10170 (version "0.1")
10171 (source
10172 (origin
10173 (method url-fetch)
10174 (uri (string-append "https://github.com/cosmicexplorer/f3/archive/"
10175 version ".tar.gz"))
10176 (file-name (string-append name "-" version ".tar.gz"))
10177 (sha256
10178 (base32
10179 "06b8i1jvklm5k3k90n65f197l1miq1xlxqkqpbppw4h3rhl4y98h"))))
10180 (build-system emacs-build-system)
10181 (propagated-inputs
10182 `(("emacs-helm" ,emacs-helm)))
10183 (home-page "https://github.com/cosmicexplorer/f3")
10184 (synopsis "Fantastic File Finder for Emacs")
10185 (description
10186 "The Fantastic File Finder for Emacs. Find files fast, using helm.")
10187 (license license:gpl3+)))
10188
10189(define-public emacs-lice-el
10190 (let ((commit "4339929927c62bd636f89bb39ea999d18d269250"))
10191 (package
10192 (name "emacs-lice-el")
10193 (version (git-version "0.2" "1" commit))
10194 (source (origin
10195 (method git-fetch)
10196 (uri (git-reference
10197 (url "https://github.com/buzztaiki/lice-el.git")
10198 (commit commit)))
10199 (file-name (git-file-name name version))
10200 (sha256
10201 (base32
10202 "0879z761b7gajkhq176ps745xpdrivch349crransv8fnsc759yb"))))
10203 (build-system emacs-build-system)
10204 (home-page "https://github.com/buzztaiki/lice-el")
10205 (synopsis "License and header template for Emacs")
10206 (description "@code{lice.el} provides following features:
10207
10208@itemize
10209@item License template management.
10210@item File header insertion.
10211@end itemize\n")
10212 (license license:gpl3+))))
10213
10214(define-public emacs-academic-phrases
10215 (let ((commit "0823ed8c24b26c32f909b896a469833ec4d7b656"))
10216 (package
10217 (name "emacs-academic-phrases")
10218 (version (git-version "0.1" "1" commit))
10219 (source
10220 (origin
10221 (method git-fetch)
10222 (uri (git-reference
10223 (url "https://github.com/nashamri/academic-phrases.git")
10224 (commit commit)))
10225 (file-name (string-append name "-" version "-checkout"))
10226 (sha256
10227 (base32
10228 "0qfzsq8jh05w4zkr0cvq3i1hdn97bq344vcqjg46sib26x3wpz6r"))))
10229 (build-system emacs-build-system)
10230 (propagated-inputs
10231 `(("emacs-dash" ,emacs-dash)
10232 ("emacs-s" ,emacs-s)
10233 ("emacs-ht" ,emacs-ht)))
10234 (home-page "https://github.com/nashamri/academic-phrases")
10235 (synopsis "Bypass that mental block when writing your papers")
10236 (description
10237 "When writing your academic paper, you might get stuck trying to find
10238the right phrase that captures your intention. This package tries to
10239alleviate that problem by presenting you with a list of phrases organized by
10240the topic or by the paper section that you are writing. This package has
10241around 600 phrases so far.
10242
10243Using this package is easy, just call @code{academic-phrases} to get a list of
10244phrases organized by topic, or call @code{academic-phrases-by-section} to
10245browse the phrases by the paper section and fill-in the blanks if required.")
10246 (license license:gpl3+))))
10247
10248(define-public emacs-auto-yasnippet
10249 (let ((commit "d1ccfea87312c6dd8cf8501ab5b71b1d3d44d95b"))
10250 (package
10251 (name "emacs-auto-yasnippet")
10252 (version (git-version "0.3.0" "1" commit))
10253 (source (origin
10254 (method git-fetch)
10255 (uri (git-reference
10256 (url "https://github.com/abo-abo/auto-yasnippet.git")
10257 (commit commit)))
10258 (file-name (string-append name "-" version "-checkout"))
10259 (sha256
10260 (base32
10261 "1i8k2qiyzd5rq0zplk4xb5nfa5mp0ibxbzwqj6c7877waq7244xk"))))
10262 (build-system emacs-build-system)
10263 (arguments
10264 '(#:phases
10265 (modify-phases %standard-phases
10266 (add-before 'install 'check
10267 (lambda _
10268 (invoke "emacs" "--batch"
10269 "-l" "auto-yasnippet.el"
10270 "-l" "auto-yasnippet-test.el"
10271 "-f" "ert-run-tests-batch-and-exit"))))))
10272 (propagated-inputs
10273 `(("emacs-yasnippet" ,emacs-yasnippet)))
10274 (home-page "https://github.com/abo-abo/auto-yasnippet/")
10275 (synopsis "Quickly create disposable yasnippets")
10276 (description "This package provides a hybrid of keyboard macros and
10277yasnippet. You create the snippet on the go, usually to be used just in the
10278one place. It's fast, because you're not leaving the current buffer, and all
10279you do is enter the code you'd enter anyway, just placing ~ where you'd like
10280yasnippet fields and mirrors to be.")
10281 (license license:gpl3+))))
10282
10283(define-public emacs-highlight-numbers
10284 (package
10285 (name "emacs-highlight-numbers")
10286 (version "0.2.3")
10287 (source
10288 (origin
10289 (method url-fetch)
10290 (uri (string-append
10291 "https://github.com/Fanael/highlight-numbers/archive/"
10292 version ".tar.gz"))
10293 (file-name (string-append name "-" version ".tar.gz"))
10294 (sha256
10295 (base32
10296 "030v5p11d4n0581ncv499l1fqrmfziy756q6378x2bv22ixghqqp"))))
10297 (build-system emacs-build-system)
10298 (propagated-inputs
10299 `(("emacs-parent-mode" ,emacs-parent-mode)))
10300 (home-page "https://github.com/Fanael/highlight-numbers")
10301 (synopsis "Highlight numbers in source code")
10302 (description "@code{highlight-numbers-mode} provides a minor mode for
10303syntax highlighting of numeric literals in source code.
10304
10305It s customizable: it's easy to add or redefine what exactly consitutes a
10306\"number\" in given major mode. See @code{highlight-numbers-modelist}.")
10307 (license license:gpl3+)))
10308
10309(define-public emacs-darkroom
10310 (package
10311 (name "emacs-darkroom")
10312 (version "0.1")
10313 (source (origin
10314 (method url-fetch)
10315 (uri (string-append "https://elpa.gnu.org/packages/darkroom-"
10316 version ".el"))
10317 (sha256
10318 (base32
10319 "0fif8fm1h7x7g16949shfnaik5f5488clsvkf8bi5izpqp3vi6ak"))))
10320 (build-system emacs-build-system)
10321 (home-page "https://elpa.gnu.org/packages/darkroom.html")
10322 (synopsis "Remove visual distractions and focus on writing")
10323 (description "@code{darkroom-mode} makes visual distractions disappear.
10324The mode-line is temporarily elided, text is enlarged and margins are adjusted
10325so that it's centered on the window.
10326
10327@code{darkroom-tentative-mode} is similar, but it doesn't immediately turn-on
10328@code{darkroom-mode}, unless the current buffer lives in the sole window of
10329the Emacs frame (i.e. all other windows are deleted). Whenever the frame is
10330split to display more windows and more buffers, the buffer exits
10331@code{darkroom-mode}. Whenever they are deleted, the buffer re-enters
10332@code{darkroom-mode}.")
10333 (license license:gpl3+)))
10334
10335(define-public emacs-rsw-elisp
10336 (package
10337 (name "emacs-rsw-elisp")
10338 (version "1.0.5")
10339 (source (origin
10340 (method url-fetch)
10341 (uri (string-append "https://github.com/rswgnu/rsw-elisp"
10342 "/archive/" version ".tar.gz"))
10343 (file-name (string-append name "-" version ".tar.gz"))
10344 (sha256
10345 (base32
10346 "1jnn7xfwl3wxc87v44ccsf1wwp80par3xgcvfb1icd6zchjmlcps"))))
10347 (build-system emacs-build-system)
10348 (home-page "https://github.com/rswgnu/rsw-elisp")
10349 (synopsis "Improved expressions that interactively evaluate Emacs Lisp")
10350 (description "This package improves and replaces the GNU Emacs commands
10351that interactively evaluate Emacs Lisp expressions. The new commands replace
10352standard key bindings and are all prefixed with @code{rsw-elisp-}. They work
10353the same way as the old commands when called non-interactively; only the
10354interactive behavior should be different.")
10355 (license license:gpl3+)))
10356
10357(define-public emacs-default-text-scale
10358 (let ((commit "968e985e219235f3e744d6d967e592acbaf6e0a8")
10359 (revision "1"))
10360 (package
10361 (name "emacs-default-text-scale")
10362 (version (string-append "0.1" "-" revision "."
10363 (string-take commit 7)))
10364 (source (origin
10365 (method git-fetch)
10366 (uri (git-reference
10367 (url "https://github.com/purcell/default-text-scale")
10368 (commit commit)))
10369 (file-name (string-append name "-" version "-checkout"))
10370 (sha256
10371 (base32
10372 "0zds01c3q5yny6ab1fxfkzzgn1kgl3q23lxxap905f4qd70v922h"))))
10373 (build-system emacs-build-system)
10374 (home-page "https://github.com/purcell/default-text-scale")
10375 (synopsis "Adjust the font size in all Emacs frames")
10376 (description "This package provides commands for increasing or
10377decreasing the default font size in all GUI Emacs frames.")
10378 (license license:gpl3+))))
10379
10380(define-public emacs-visual-regexp
10381 (package
10382 (name "emacs-visual-regexp")
10383 (version "1.1.1")
10384 (source
10385 (origin
10386 (method url-fetch)
10387 (uri (string-append "https://github.com/benma/visual-regexp.el/archive/"
10388 "v" version ".tar.gz"))
10389 (file-name (string-append name "-" version ".tar.gz"))
10390 (sha256
10391 (base32
10392 "1czmhvcivlcdyz7rfm0vd4a3xsgmy4qbvbl6yjxc217wrxqflr92"))))
10393 (build-system emacs-build-system)
10394 (home-page "https://github.com/benma/visual-regexp.el/")
10395 (synopsis "Regexp command with interactive visual feedback")
10396 (description "This package provides an Emacs regexp command with
10397interactive visual feedback.")
10398 (license license:gpl3+)))
10399
10400(define-public emacs-faceup
10401 (let ((commit "6c92dad56a133e14e7b27831e1bcf9b3a71ff154")
10402 (revision "1"))
10403 (package
10404 (name "emacs-faceup")
10405 (version (string-append "0.0.1" "-" revision "."
10406 (string-take commit 7)))
10407 (source
10408 (origin
10409 (method git-fetch)
10410 (uri (git-reference
10411 (url "https://github.com/Lindydancer/faceup.git")
10412 (commit commit)))
10413 (file-name (string-append name "-" version "-checkout"))
10414 (sha256
10415 (base32
10416 "1yzmy7flrhrh0i10bdszx8idx6r8h6czm4vm4q0z6fp5fw94zwrx"))))
10417 (build-system emacs-build-system)
10418 (home-page "https://github.com/Lindydancer/faceup")
10419 (synopsis "Markup language for faces and font-lock regression testing")
10420 (description "Emacs is capable of highlighting buffers based on
10421language-specific @code{font-lock} rules. This package makes it possible to
10422perform regression test for packages that provide font-lock rules.")
10423 (license license:gpl3+))))
10424
10425(define-public emacs-racket-mode
10426 (let ((commit "b977873e6128f8399432dcd60cc39f6a6f803d9c")
10427 (revision "2"))
10428 (package
10429 (name "emacs-racket-mode")
10430 (version (string-append "0.0.2" "-" revision "."
10431 (string-take commit 7)))
10432 (source
10433 (origin
10434 (method git-fetch)
10435 (uri (git-reference
10436 (url "https://github.com/greghendershott/racket-mode")
10437 (commit commit)))
10438 (file-name (string-append name "-" version "-checkout"))
10439 (sha256
10440 (base32
10441 "0vp4bbbplqvmnhjpl6ajrlydmrhqzil56cfbs18m5c5fddx0zlh7"))))
10442 (build-system emacs-build-system)
10443 (arguments
10444 `(#:include '("\\.el$" "\\.rkt$")))
10445 (propagated-inputs
10446 `(("emacs-faceup" ,emacs-faceup)
10447 ("emacs-s" ,emacs-s)))
10448 (home-page "https://github.com/greghendershott/racket-mode")
10449 (synopsis "Major mode for Racket language")
10450 (description "@code{racket-mode} provides:
10451
10452@itemize
10453@item Focus on Racket (not various Schemes).
10454@item Follow DrRacket concepts where applicable.
10455@item Thorough font-lock and indent.
10456@end itemize\n")
10457 (license license:gpl3+))))
10458
10459(define-public emacs-grep-context
10460 (let ((commit "a17c57e66687a54e195e08afe776bdd60cb6c0a7"))
10461 (package
10462 (name "emacs-grep-context")
10463 (version (git-version "0.1" "1" commit))
10464 (source
10465 (origin
10466 (method git-fetch)
10467 (uri (git-reference
10468 (url "https://github.com/mkcms/grep-context.git")
10469 (commit commit)))
10470 (file-name (string-append name "-" version "-checkout"))
10471 (sha256
10472 (base32
10473 "1nqfa6kjzjshww4hnwg1c0vcr90bdjihy3kmixq3c3jkvxg99b62"))))
10474 (build-system emacs-build-system)
10475 (propagated-inputs
10476 `(("emacs-dash" ,emacs-dash)))
10477 (home-page "https://github.com/nashamri/academic-phrases")
10478 (synopsis "Increase context in compilation and grep buffers")
10479 (description
10480 "This package provides an Emacs package for more context in
10481compilation/grep buffers. Works with @code{wgrep}, @code{ack}, @code{ag},
10482@code{ivy}.")
10483 (license license:gpl3+))))
10484
10485(define-public emacs-helm-firefox
10486 (let ((commit "0ad34b7b5abc485a86cae6920c14de861cbeb085")
10487 (revision "1"))
10488 (package
10489 (name "emacs-helm-firefox")
10490 (version (string-append "0.0.1" "-" revision "."
10491 (string-take commit 7)))
10492 (source
10493 (origin
10494 (method git-fetch)
10495 (uri (git-reference
10496 (url "https://github.com/emacs-helm/helm-firefox.git")
10497 (commit commit)))
10498 (file-name (string-append name "-" version "-checkout"))
10499 (sha256
10500 (base32
10501 "08mjsi2f9s29fkk35cj1rrparjnkm836qmbfdwdz7y51f9varjbs"))))
10502 (propagated-inputs
10503 `(("emacs-helm" ,emacs-helm)))
10504 (build-system emacs-build-system)
10505 (home-page "https://github.com/emacs-helm/helm-firefox")
10506 (synopsis "Display firefox bookmarks with Emacs Helm interface")
10507 (description "Display firefox bookmarks with Emacs Helm interface")
10508 (license license:gpl3+))))
10509
10510(define-public emacs-interactive-align
10511 (package
10512 (name "emacs-interactive-align")
10513 (version "0.1.0")
10514 (source
10515 (origin
10516 (method url-fetch)
10517 (uri (string-append "https://github.com/mkcms/interactive-align/"
10518 "archive/" "v" version ".tar.gz"))
10519 (file-name (string-append name "-" version ".tar.gz"))
10520 (sha256
10521 (base32
10522 "0sibpgb4lp6yy3pziak8f3hz4b28yj0dqy2nzh51z3d0b63h528m"))))
10523 (build-system emacs-build-system)
10524 (home-page "https://github.com/mkcms/interactive-align/")
10525 (synopsis "Interactive align-regexp command in Emacs")
10526 (description "Interactive align-regexp command in Emacs")
10527 (license license:gpl3+)))
10528
10529(define-public emacs-shift-number
10530 (package
10531 (name "emacs-shift-number")
10532 (version "0.1")
10533 (source
10534 (origin
10535 (method url-fetch)
10536 (uri (string-append "https://github.com/alezost/shift-number.el"
10537 "/archive/" "v" version ".tar.gz"))
10538 (file-name (string-append name "-" version ".tar.gz"))
10539 (sha256
10540 (base32
10541 "1g79m0hqn9jgpm565vvh8pdfzndc4vw7xisnh5qysj55qfg8cb1x"))))
10542 (build-system emacs-build-system)
10543 (home-page "https://github.com/alezost/shift-number.el")
10544 (synopsis "Increase or decrease the number at point")
10545 (description "@code{emacs-shift-number} provides commands
10546@code{shift-number-up} to increase and @code{shift-number-down} to
10547decrease the number at point.")
10548 (license license:gpl3+)))
10549
10550(define-public emacs-highlight-defined
10551 (package
10552 (name "emacs-highlight-defined")
10553 (version "0.1.5")
10554 (source
10555 (origin
10556 (method url-fetch)
10557 (uri (string-append
10558 "https://github.com/Fanael/highlight-defined/archive/"
10559 version ".tar.gz"))
10560 (file-name (string-append name "-" version ".tar.gz"))
10561 (sha256
10562 (base32
10563 "1ryd66989b5byqdw8jmjrjf0c78iiz72wibld750skcnj5h5h506"))))
10564 (build-system emacs-build-system)
10565 (home-page "https://github.com/Fanael/highlight-defined")
10566 (synopsis "Syntax highlighting of known Elisp symbols")
10567 (description "Minor mode providing syntax highlighting of known Emacs Lisp
10568symbols. Currently the code distinguishes Lisp functions, built-in functions,
10569macros, faces and variables. To enable call @code{highlight-defined-mode}. ")
10570 (license license:gpl3+)))
10571
10572(define-public emacs-parinfer-mode
10573 (package
10574 (name "emacs-parinfer-mode")
10575 (version "0.4.10")
10576 (source
10577 (origin
10578 (method url-fetch)
10579 (uri (string-append "https://github.com/DogLooksGood/parinfer-mode/archive/"
10580 "v" version ".tar.gz"))
10581 (file-name (string-append name "-" version ".tar.gz"))
10582 (sha256
10583 (base32
10584 "06ba9qi59sm9ih9m38fbr8kj4qkvrm58n0c0ngfjz60gnr9x9pcv"))))
10585 (propagated-inputs
10586 `(("emacs-dash" ,emacs-dash)
10587 ("emacs-rainbow-delimiters" ,emacs-rainbow-delimiters)
10588 ("emacs-company" ,emacs-company)))
10589 (build-system emacs-build-system)
10590 (home-page "https://github.com/DogLooksGood/parinfer-mode/")
10591 (synopsis "Lisp structure editing mode")
10592 (description "@code{parinfer-mode} is a proof-of-concept editor
10593mode for Lisp programming languages. It will infer some changes to
10594keep Parens and Indentation inline with one another.")
10595 (license license:gpl3+)))
10596
10597(define-public emacs-helm-eww
10598 (let ((commit "9d36acc433bcf689598b1b4d7d47c9aeb84d6b44"))
10599 (package
10600 (name "emacs-helm-eww")
10601 (version (git-version "0.1" "3" commit))
10602 (source (origin
10603 (method git-fetch)
10604 (uri (git-reference
10605 (url "https://github.com/emacs-helm/helm-eww.git")
10606 (commit commit)))
10607 (file-name (string-append name "-" version "-checkout"))
10608 (sha256
10609 (base32
10610 "06gnf84gx6qbhcw1h5jhjnvcdxkdpv0npm53x3pgqybbll5rn5dy"))))
10611 (propagated-inputs
10612 `(("emacs-helm" ,emacs-helm)))
10613 (build-system emacs-build-system)
10614 (home-page "https://github.com/emacs-helm/helm-eww/")
10615 (synopsis "Helm interface to EWW")
10616 (description "This package provides a Helm interface for EWW buffers,
10617bookmarks and history.")
10618 (license license:gpl3+))))
10619
10620(define-public emacs-stumpwm-mode
10621 (let ((commit "8fbe071d2c6c040794060a354eb377218dc10b35")
10622 (revision "1"))
10623 (package
10624 (name "emacs-stumpwm-mode")
10625 (version (string-append "0.0.1-" revision "."
10626 (string-take commit 7)))
10627 (source (origin
10628 (method git-fetch)
10629 (uri (git-reference
10630 (url "https://github.com/stumpwm/stumpwm-contrib.git")
10631 (commit commit)))
10632 (file-name (string-append name "-" version "-checkout"))
10633 (sha256
10634 (base32
10635 "1dfwsvz1c8w6j4jp0kzaz78ml3f5dp0a5pvf090kwpbpg176r7iq"))))
10636 (build-system emacs-build-system)
10637 (arguments
10638 `(#:phases
10639 (modify-phases %standard-phases
10640 (add-after 'unpack 'chdir-elisp
10641 ;; Elisp directory is not in root of the source.
10642 (lambda _
10643 (chdir "util/swm-emacs"))))))
10644 (home-page "https://github.com/stumpwm/stumpwm-contrib")
10645 (synopsis "Emacs minor-mode for Stumpwm")
10646 (description "Emacs minor-mode for Stumpwm")
10647 (license license:gpl3+))))
10648
10649(define-public emacs-irfc
10650 (package
10651 (name "emacs-irfc")
10652 (version "20130824.507")
10653 (source
10654 (origin
10655 (method url-fetch)
10656 (uri "https://www.emacswiki.org/emacs/download/irfc.el")
10657 (file-name (string-append "irfc-" version ".el"))
10658 (sha256
10659 (base32
10660 "197ybqwbj8qjh2p9pkf5mvqnrkpcgmv8c5s2gvl6msyrabk0mnca"))))
10661 (build-system emacs-build-system)
10662 (home-page "https://www.emacswiki.org/emacs/download/irfc.el")
10663 (synopsis "Interface for IETF RFC document")
10664 (description
10665 "This package provides an Emacs interface for IETF RFC document.")
10666 (license license:gpl3+)))
10667
10668(define-public emacs-ido-vertical-mode
10669 (package
10670 (name "emacs-ido-vertical-mode")
10671 (version "0.1.6")
10672 (source
10673 (origin
10674 (method url-fetch)
10675 (uri (string-append
10676 "https://github.com/creichert/ido-vertical-mode.el/archive/"
10677 "v" version ".tar.gz"))
10678 (file-name (string-append name "-" version ".tar.gz"))
10679 (sha256
10680 (base32
10681 "0dprdxq8wvqd45dinwj92k0kixr07c8xvspa6i613mjcpxgwjg53"))))
10682 (build-system emacs-build-system)
10683 (home-page "https://github.com/creichert/ido-vertical-mode.el")
10684 (synopsis "Makes ido-mode display vertically")
10685 (description "Makes ido-mode display prospects vertically.")
10686 (license license:gpl3+)))
10687
10688(define-public emacs-wordgen
10689 (package
10690 (name "emacs-wordgen")
10691 (version "0.1.4")
10692 (source
10693 (origin
10694 (method url-fetch)
10695 (uri (string-append "https://github.com/Fanael/wordgen.el/archive/"
10696 version ".tar.gz"))
10697 (file-name (string-append name "-" version ".tar.gz"))
10698 (sha256
10699 (base32
10700 "1h2iyixdm49h53pwj9ics9gb9h3g6wa4hainpnjg6mfarf49jkmg"))))
10701 (build-system emacs-build-system)
10702 (home-page "https://github.com/Fanael/wordgen.el")
10703 (synopsis "Random word generator")
10704 (description "This package provides functions to generate random words
10705using user-provided rules.")
10706 (license license:gpl3+)))
10707
10708(define-public emacs-on-screen
10709 (package
10710 (name "emacs-on-screen")
10711 (version "1.3.2")
10712 (source
10713 (origin
10714 (method url-fetch)
10715 (uri (string-append
10716 "http://elpa.gnu.org/packages/on-screen-" version ".el"))
10717 (file-name (string-append name "-" version ".el"))
10718 (sha256
10719 (base32
10720 "15d18mjgv1pnwl6kf3pr5w64q1322p1l1qlfvnckglwmzy5sl2qv"))))
10721 (build-system emacs-build-system)
10722 (home-page
10723 "https://github.com/michael-heerdegen/on-screen.el")
10724 (synopsis "Guide your eyes while scrolling")
10725 (description
10726 "Scrolling can be distracting because your eyes may lose
10727orientation. This library implements a minor mode that highlights
10728the previously visible buffer part after each scroll.")
10729 (license license:gpl3+)))
10730
10731(define-public emacs-highlight-escape-sequences
10732 (let ((commit "08d846a7aa748209d65fecead2b6a766c3e5cb41")
10733 (revision "1"))
10734 (package
10735 (name "emacs-highlight-escape-sequences")
10736 (version (string-append "0.0.1" "-" revision "."
10737 (string-take commit 7)))
10738 (source
10739 (origin
10740 (method git-fetch)
10741 (uri (git-reference
10742 (url "https://github.com/dgutov/highlight-escape-sequences.git")
10743 (commit commit)))
10744 (file-name (string-append name "-" version "-checkout"))
10745 (sha256
10746 (base32
10747 "05mc3w1f8ykf80914a1yddw6j8cmh0h57llm07xh89s53821v2is"))))
10748 (build-system emacs-build-system)
10749 (home-page "https://github.com/dgutov/highlight-escape-sequences")
10750 (synopsis "Highlight escape sequences in Emacs")
10751 (description "@code{highlight-escape-sequences} provides an
10752Emacs minor mode to escape sequences in code.")
10753 (license license:gpl3+))))
10754
10755(define-public emacs-dashboard
10756 (package
10757 (name "emacs-dashboard")
10758 (version "1.2.4")
10759 (source
10760 (origin
10761 (method url-fetch)
10762 (uri (string-append
10763 "https://github.com/rakanalh/emacs-dashboard/archive/"
10764 version ".tar.gz"))
10765 (file-name (string-append name "-" version ".tar.gz"))
10766 (sha256
10767 (base32
10768 "1738lmbgq6gk24hcwic0qjyajr21l5xzhya4pv58dw1bhd6vxv9g"))))
10769 (build-system emacs-build-system)
10770 (propagated-inputs
10771 `(("emacs-page-break-lines" ,emacs-page-break-lines)))
10772 (arguments '(#:include '("\\.el$" "\\.txt$" "\\.png$")))
10773 (home-page "https://github.com/rakanalh/emacs-dashboard")
10774 (synopsis "Startup screen extracted from Spacemacs")
10775 (description "This package provides an extensible Emacs dashboard, with
10776sections for bookmarks, projectil projects, org-agenda and more. ")
10777 (license license:gpl3+)))
10778
10779(define-public emacs-slime-company
10780 (package
10781 (name "emacs-slime-company")
10782 (version "1.1")
10783 (source
10784 (origin
10785 (method url-fetch)
10786 (uri (string-append "https://github.com/anwyn/slime-company/archive/"
10787 "v" version ".tar.gz"))
10788 (sha256
10789 (base32
10790 "1myl79pxj501xfr5qc5a24qddsn2l5iaamg7rf7fpny7mr9v70ar"))
10791 (file-name (string-append name "-" version ".tar.gz"))))
10792 (build-system emacs-build-system)
10793 (propagated-inputs
10794 `(("emacs-slime" ,emacs-slime)
10795 ("emacs-company" ,emacs-company)))
10796 (home-page "https://company-mode.github.io")
10797 (synopsis "SLIME completion backend for @code{company-mode}")
10798 (description
10799 "This is a backend implementation for the completion package
10800@code{company-mode} which supports the normal and the fuzzy completion
10801modes of SLIME.")
10802 (license license:gpl3+)))
10803
10804(define-public emacs-sml-mode
10805 (package
10806 (name "emacs-sml-mode")
10807 (version "6.8")
10808 (source
10809 (origin
10810 (method url-fetch)
10811 (uri (string-append "http://elpa.gnu.org/packages/sml-mode-"
10812 version ".el"))
10813 (sha256
10814 (base32
10815 "105fcrz5qp95f2n3fdm3awr6z58sbrjihjss6qnrg4lz2ggbc328"))))
10816 (build-system emacs-build-system)
10817 (home-page "http://elpa.gnu.org/packages/sml-mode.html")
10818 (synopsis "Major mode for editing (Standard) ML")
10819 (description "SML-MODE is a major Emacs mode for editing Standard ML.
10820It provides syntax highlighting and automatic indentation and
10821comes with sml-proc which allows interaction with an inferior SML
10822interactive loop.")
10823 (license license:gpl3+)))
10824
10825(define-public emacs-eros
10826 (let ((commit "a42e45c9b2397156c684330b0fc90ee0eba773f5")
10827 (revision "1"))
10828 (package
10829 (name "emacs-eros")
10830 (version (string-append "0.0.1" "-" revision "."
10831 (string-take commit 7)))
10832 (source
10833 (origin
10834 (method git-fetch)
10835 (uri (git-reference
10836 (url "https://github.com/xiongtx/eros.git")
10837 (commit commit)))
10838 (file-name (string-append name "-" version "-checkout"))
10839 (sha256
10840 (base32
10841 "0whlsq90v13fz69k3wjrwcwb9gkpfxqjd75mg3nrp85j9nwhb5i4"))))
10842 (build-system emacs-build-system)
10843 (home-page "https://github.com/xiongtx/eros")
10844 (synopsis "Evaluation result overlays")
10845 (description "@code{eros} provides evaluation result overlays.")
10846 (license license:gpl3+))))
10847
10848(define-public emacs-stickyfunc-enhance
10849 (let ((commit "13bdba51fcd83ccbc3267959d23afc94d458dcb0")
10850 (revision "1"))
10851 (package
10852 (name "emacs-stickyfunc-enhance")
10853 (version "0.1")
10854 (source
10855 (origin
10856 (method git-fetch)
10857 (uri (git-reference
10858 (url "https://github.com/tuhdo/semantic-stickyfunc-enhance.git")
10859 (commit commit)))
10860 (file-name (string-append name "-" version "-checkout"))
10861 (sha256
10862 (base32
10863 "16dxjsr5nj20blww4xpd4jzgjprzzh1nwvb810ggdmp9paf4iy0g"))))
10864 (build-system emacs-build-system)
10865 (home-page "https://github.com/tuhdo/semantic-stickyfunc-enhance")
10866 (synopsis "Enhancement to stock @code{semantic-stickyfunc-mode}")
10867 (description
10868 "@code{semantic-stickyfunc-mode} shows the function point is currently
10869in at the first line of the current buffer. This is useful when you have a
10870very long function that spreads more than a screen, and you don't have to
10871scroll up to read the function name and then scroll down to original position.")
10872 (license license:gpl3+))))
10873
10874(define-public emacs-git-auto-commit-mode
10875 (package
10876 (name "emacs-git-auto-commit-mode")
10877 (version "4.4.0")
10878 (source
10879 (origin
10880 (method url-fetch)
10881 (uri (string-append
10882 "https://github.com/ryuslash/git-auto-commit-mode/archive/"
10883 version ".tar.gz"))
10884 (file-name (string-append name "-" version ".tar.gz"))
10885 (sha256
10886 (base32
10887 "04avxmalsl3b7zi2vipfw9rb4wrwysnipsbch96skviql9axk870"))))
10888 (build-system emacs-build-system)
10889 (home-page "https://github.com/ryuslash/git-auto-commit-mode")
10890 (synopsis "Emacs Minor mode to automatically commit and push")
10891 (description "@code{git-auto-commit-mode} is an Emacs minor mode that
10892tries to commit changes to a file after every save.
10893
10894When @code{gac-automatically-push-p} is non-nil, it also tries to push to
10895the current upstream.")
10896 (license license:gpl3+)))
10897
10898(define-public emacs-company-restclient
10899 (package
10900 (name "emacs-company-restclient")
10901 (version "0.1.0")
10902 (source
10903 (origin
10904 (method url-fetch)
10905 (uri (string-append
10906 "https://github.com/iquiw/company-restclient/archive/"
10907 "v" version ".tar.gz"))
10908 (file-name (string-append name "-" version ".tar.gz"))
10909 (sha256
10910 (base32
10911 "1kr3f0wgqlk7r171bvb2kinv7fanwj2md01wdpx04qkgwcr1as00"))))
10912 (build-system emacs-build-system)
10913 (propagated-inputs
10914 `(("emacs-company" ,emacs-company)
10915 ("emacs-know-your-http-well" ,emacs-know-your-http-well)
10916 ("emacs-restclient" ,emacs-restclient)))
10917 (home-page "https://github.com/iquiw/company-restclient")
10918 (synopsis "Company-mode completion back-end for restclient-mode")
10919 (description "@code{company-mode} back-end for
10920@code{restclient-mode}.
10921
10922It provides auto-completion for HTTP methods and headers in
10923@code{restclient-mode}. Completion source is given by
10924@code{know-your-http-well}.")
10925 (license license:gpl3+)))
10926
10927(define-public emacs-noflet
10928 (let ((version "20170629")
10929 (revision "1")
10930 (commit "7ae84dc3257637af7334101456dafe1759c6b68a"))
10931 (package
10932 (name "emacs-noflet")
10933 (version (git-version version revision commit))
10934 (source
10935 (origin
10936 (method git-fetch)
10937 (uri (git-reference
10938 (url "https://github.com/nicferrier/emacs-noflet")
10939 (commit commit)))
10940 (file-name (string-append name "-" version "-checkout"))
10941 (sha256
10942 (base32
10943 "0g70gnmfi8n24jzfci9nrj0n9bn1qig7b8f9f325rin8h7x32ypf"))))
10944 (build-system emacs-build-system)
10945 (arguments
10946 `(#:phases
10947 (modify-phases %standard-phases
10948 (add-after 'unpack 'require-dash
10949 ;; noflet.el uses -map from dash, but (require 'dash) is
10950 ;; missing. So, add it.
10951 (lambda _
10952 (substitute* "noflet.el"
10953 ((";;; Code:") ";;; Code:\n(require 'dash)"))
10954 #t)))))
10955 (propagated-inputs
10956 `(("emacs-dash" ,emacs-dash)))
10957 (home-page "https://github.com/nicferrier/emacs-noflet")
10958 (synopsis "Locally override functions")
10959 (description "@code{emacs-noflet} let's you locally override functions,
10960in the manner of @command{flet}, but with access to the original function
10961through the symbol: @command{this-fn}.")
10962 (license license:gpl3+))))
10963
10964(define-public emacs-dumb-jump
10965 (package
10966 (name "emacs-dumb-jump")
10967 (version "0.5.2")
10968 (source
10969 (origin
10970 (method url-fetch)
10971 (uri (string-append
10972 "https://github.com/jacktasia/dumb-jump/archive/v"
10973 version ".tar.gz"))
10974 (file-name (string-append name "-" version ".tar.gz"))
10975 (sha256
10976 (base32
10977 "07n0xjgpxjpf3vp9gxchkjpydyj0zm166930as0kwiwkhjlsirsf"))))
10978 (build-system emacs-build-system)
10979 (arguments
10980 `(#:tests? #f ; FIXME: Tests freeze when run.
10981 #:test-command '("ert-runner")
10982 #:phases
10983 (modify-phases %standard-phases
10984 (add-after 'unpack 'set-shell
10985 (lambda _
10986 ;; Setting the SHELL environment variable is required for the
10987 ;; tests to find sh.
10988 (setenv "SHELL" (which "sh"))
10989 #t)))))
10990 (native-inputs
10991 `(("emacs-el-mock" ,emacs-el-mock)
10992 ("emacs-noflet" ,emacs-noflet)
10993 ("emacs-undercover" ,emacs-undercover)
10994 ("ert-runner" ,emacs-ert-runner)))
10995 (propagated-inputs
10996 `(("emacs-f" ,emacs-f)
10997 ("emacs-popup" ,emacs-popup)))
10998 (home-page "https://github.com/jacktasia/dumb-jump")
10999 (synopsis "Jump to definition for multiple languages without configuration")
11000 (description "Dumb Jump is an Emacs \"jump to definition\" package with
11001support for multiple programming languages that favors \"just working\" over
11002speed or accuracy. This means minimal --- and ideally zero --- configuration
11003with absolutely no stored indexes (tags) or persistent background processes.
11004Dumb Jump performs best with The Silver Searcher @command{ag} or ripgrep
11005@command{rg} installed.")
11006 (license license:gpl3+)))
11007
11008(define-public emacs-dts-mode
11009 (let ((commit "9ee0854446dcc6c53d2b8d2941051768dba50344")
11010 (revision "1"))
11011 (package
11012 (name "emacs-dts-mode")
11013 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
11014 (source
11015 (origin
11016 (method git-fetch)
11017 (uri (git-reference
11018 (url "https://github.com/bgamari/dts-mode.git")
11019 (commit commit)))
11020 (file-name (string-append name "-" version "-checkout"))
11021 (sha256
11022 (base32
11023 "1k8lljdbc90nd29xrhdrsscxavzdq532wq2mg7ljc94krj7538b1"))))
11024 (build-system emacs-build-system)
11025 (home-page "https://github.com/bgamari/dts-mode.git")
11026 (synopsis "Emacs minor mode for editing device tree files")
11027 (description
11028 "This package provides an Emacs minor mode for highlighting
11029device tree files.")
11030 (license license:gpl3+))))
11031
11032(define-public emacs-daemons
11033 (package
11034 (name "emacs-daemons")
11035 (version "2.0.0")
11036 (source
11037 (origin
11038 (method git-fetch)
11039 (uri (git-reference
11040 (url "https://github.com/cbowdon/daemons.el")
11041 (commit version)))
11042 (file-name (string-append name "-" version "-checkout"))
11043 (sha256
11044 (base32
11045 "00bkzfaw3bqykcks610vk9wlpa2z360xn32bpsrycacwfv29j7g4"))))
11046 (build-system emacs-build-system)
11047 (home-page "https://github.com/cbowdon/daemons.el")
11048 (synopsis "Emacs UI for managing init system services")
11049 (description
11050 "This is an Emacs mode to give you a UI for managing init system
11051daemons (services) for those getting tired of typing out @code{sudo service
11052my_thing reload} all the time. It offers a consistent UI over different init
11053systems.")
11054 (license license:gpl3+)))
11055
11056(define-public emacs-esh-autosuggest
11057 (package
11058 (name "emacs-esh-autosuggest")
11059 (version "2.0.0")
11060 (source
11061 (origin
11062 (method git-fetch)
11063 (uri (git-reference
11064 (url "https://github.com/dieggsy/esh-autosuggest")
11065 (commit version)))
11066 (file-name (string-append name "-" version "-checkout"))
11067 (sha256
11068 (base32
11069 "116pdjgpjy9b0psm5kzwkwy7dq8vn0p6dy75dl1zsy2xrjf1iqdw"))))
11070 (build-system emacs-build-system)
11071 (propagated-inputs `(("emacs-company" ,emacs-company)))
11072 (home-page "https://github.com/dieggsy/esh-autosuggest")
11073 (synopsis "Fish-like autosuggestions in Eshell")
11074 (description
11075 "This package assumes you use something other than company for eshell
11076completion (e.g. @code{eshell-pcomplete}, @code{completion-at-point},
11077@code{helm-esh-pcomplete}). @code{company-mode} is used solely as a mechanism
11078for history autosuggestions.
11079
11080Unless you're using @code{use-package}'s hook keyword, you can enable the
11081autosuggestions with:
11082@code{(add-hook 'eshell-mode-hook #'esh-autosuggest-mode)}")
11083 (license license:gpl3+)))
11084
11085(define-public emacs-desktop-environment
11086 (package
11087 (name "emacs-desktop-environment")
11088 (version "0.2.0")
11089 (source
11090 (origin
11091 (method git-fetch)
11092 (uri (git-reference
11093 (url "https://github.com/DamienCassou/desktop-environment.git")
11094 (commit (string-append "v" version))))
11095 (file-name (string-append name "-" version "-checkout"))
11096 (sha256
11097 (base32
11098 "1fal3yfmqg10cb53qsf5gsq2gvyz9w16wmlpnpjwjzwnjfn6l73r"))))
11099 (build-system emacs-build-system)
11100 (home-page "https://gitlab.petton.fr/DamienCassou/desktop-environment")
11101 (synopsis "Control your GNU/Linux desktop environment from Emacs")
11102 (description
11103 "This package helps you control your GNU/Linux desktop from Emacs.
11104With @code{desktop-environment}, you can control the brightness and volume as
11105well as take screenshots and lock your screen. The package depends on the
11106availability of shell commands to do the hard work for us. These commands can
11107be changed by customizing the appropriate variables.")
11108 (license license:gpl3+)))
11109
11110(define-public emacs-org-caldav
11111 (package
11112 (name "emacs-org-caldav")
11113 (version "20180403")
11114 (source
11115 (origin
11116 (method url-fetch)
11117 (uri (string-append
11118 "https://github.com/dengste/org-caldav/raw/"
11119 "8d3492c27a09f437d2d94f2736c56d7652e87aa0"
11120 "/org-caldav.el"))
11121 (sha256
11122 (base32
11123 "1fh4gh68ddj0is99z2ccyh97v6psnyda61n2dsadzqhcxn51amlc"))))
11124 (build-system emacs-build-system)
11125 (propagated-inputs `(("emacs-org" ,emacs-org)))
11126 (home-page "https://github.com/dengste/org-caldav")
11127 (synopsis
11128 "Sync Org files with external calendars via the CalDAV protocol")
11129 (description
11130 "Synchronize between events in Org-mode files and a CalDAV calendar.
11131This code is still alpha.")
11132 (license license:gpl3+)))
11133
11134(define-public emacs-zotxt
11135 (package
11136 (name "emacs-zotxt")
11137 (version "20180518")
11138 (source
11139 (origin
11140 (method url-fetch)
11141 (uri (string-append
11142 "https://github.com/egh/zotxt-emacs/archive/"
11143 "23a4a9f74a658222027d53a9a83cd4bcc583ca8b"
11144 ".tar.gz"))
11145 (sha256
11146 (base32
11147 "1qlibaciqgsva6fc7vv9krssjq00bi880396jk7llbi3c52q9n1y"))))
11148 (build-system emacs-build-system)
11149 (propagated-inputs
11150 `(("emacs-deferred" ,emacs-deferred)
11151 ("emacs-request" ,emacs-request)))
11152 (home-page "https://github.com/egh/zotxt-emacs")
11153 (synopsis "Integrate Emacs with Zotero")
11154 (description "This package provides two integration features between Emacs
11155and the Zotero research assistant: Insertion of links to Zotero items into an
11156Org-mode file, and citations of Zotero items in Pandoc Markdown files.")
11157 (license license:gpl3+)))
11158
11159(define-public emacs-evil-ediff
11160 ;; Evil-Ediff is included in Evil Collection from 20180617.
11161 (deprecated-package "emacs-evil-ediff" emacs-evil-collection))
11162
11163(define-public emacs-evil-magit
11164 (let ((commit "dbf5a646a7ce1c35c229dfdc423bd5ecd927a3a8"))
11165 (package
11166 (name "emacs-evil-magit")
11167 (version (git-version "0.4.2" "1" commit))
11168 (source
11169 (origin
11170 (method git-fetch)
11171 (uri (git-reference
11172 (url "https://github.com/emacs-evil/evil-magit")
11173 (commit commit)))
11174 (file-name (string-append name "-" version "-checkout"))
11175 (sha256
11176 (base32
11177 "0ya0dkviq4pi92ab69a4j674y5r1hc1x3x7r7hlm97ag3a6zfkav"))))
11178 (build-system emacs-build-system)
11179 (propagated-inputs
11180 `(("emacs-evil" ,emacs-evil)
11181 ("magit" ,emacs-magit)))
11182 (home-page
11183 "https://github.com/emacs-evil/evil-magit")
11184 (synopsis "Evil-based key bindings for Magit")
11185 (description
11186 "This Emacs library configures Magit and Evil to play well with each other.
11187For some background see @url{https://github.com/magit/evil-magit/issues/1}.
11188See the README at @url{https://github.com/justbur/evil-magit} for a table
11189describing the key binding changes.")
11190 (license license:gpl3+))))
11191
11192(define-public emacs-evil-mu4e
11193 ;; Evil-mu4e is included in Evil Collection from 20180617.
11194 (deprecated-package "emacs-evil-mu4e" emacs-evil-collection))
11195
11196(define-public emacs-evil-multiedit
11197 (package
11198 (name "emacs-evil-multiedit")
11199 (version "1.3.9")
11200 (source
11201 (origin
11202 (method git-fetch)
11203 (uri (git-reference
11204 (url "https://github.com/hlissner/evil-multiedit")
11205 (commit (string-append "v" version))))
11206 (file-name (string-append name "-" version "-checkout"))
11207 (sha256
11208 (base32
11209 "19h3kqylqzbjv4297wkzzxdmn9yxbg6z4ga4ssrqri90xs7m3rw3"))))
11210 (build-system emacs-build-system)
11211 (propagated-inputs
11212 `(("emacs-evil" ,emacs-evil)
11213 ("emacs-iedit" ,emacs-iedit)))
11214 (home-page
11215 "https://github.com/hlissner/evil-multiedit")
11216 (synopsis "Multiple cursors for Evil mode")
11217 (description
11218 "This plugin was an answer to the lack of proper multiple cursor support
11219in Emacs+Evil. It allows you to select and edit matches interactively,
11220integrating @code{iedit-mode} into Evil mode with an attempt at sensible
11221defaults.")
11222 (license license:gpl3+)))
11223
11224(define-public emacs-evil-org
11225 (let ((commit "b6d652a9163d3430a9e0933a554bdbee5244bbf6"))
11226 (package
11227 (name "emacs-evil-org")
11228 (version (git-version "0.1.1" "1" commit))
11229 (source
11230 (origin
11231 (method git-fetch)
11232 (uri (git-reference
11233 (url "https://github.com/Somelauw/evil-org-mode")
11234 (commit commit)))
11235 (file-name (string-append name "-" version "-checkout"))
11236 (sha256
11237 (base32
11238 "176hrw7y7nczffbyhsa167b8rvfacsmcafm2gpkrdjqlrikbmrhl"))))
11239 (build-system emacs-build-system)
11240 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
11241 (home-page
11242 "https://github.com/Somelauw/evil-org-mode")
11243 (synopsis "Evil keybindings for Org mode")
11244 (description
11245 "This package adds supplemental Evil mode key-bindings to Emacs
11246Org-mode. It features:
11247@itemize
11248@item normal, visual and insert mode bindings;
11249@item key bindings organised in key themes;
11250@item operators like > and < to work on headings;
11251@item text objects;
11252@item table support;
11253@item calendar (date selection) support;
11254@item agenda support.
11255@end itemize\n")
11256 (license license:gpl3+))))
11257
11258(define-public emacs-fish-completion
11259 (let ((commit "bac15fda1392a891070574dfe5d2d50b10831e8b"))
11260 (package
11261 (name "emacs-fish-completion")
11262 (version (git-version "20180616" "1" commit))
11263 (source
11264 (origin
11265 (method url-fetch)
11266 (uri (string-append
11267 "https://gitlab.com/Ambrevar/emacs-fish-completion/repository/"
11268 "archive.tar.gz?ref="
11269 commit))
11270 (sha256
11271 (base32
11272 "093qzdrbkl7dhjk16zq8i13kh1phyigkblcfrbgbrxjqd2ndrfdi"))))
11273 (build-system emacs-build-system)
11274 (inputs `(("fish" ,fish)))
11275 (arguments
11276 `(#:phases
11277 (modify-phases %standard-phases
11278 (add-after 'unpack 'configure
11279 (lambda* (#:key inputs outputs #:allow-other-keys)
11280 (let ((fish (assoc-ref inputs "fish")))
11281 ;; Specify the absolute file names of the various
11282 ;; programs so that everything works out-of-the-box.
11283 (emacs-substitute-variables
11284 "fish-completion.el"
11285 ("fish-completion-command"
11286 (string-append fish "/bin/fish")))))))))
11287 (home-page
11288 "https://gitlab.com/Ambrevar/emacs-fish-completion")
11289 (synopsis "Fish completion for Emacs pcomplete")
11290 (description
11291 "This package provides completion for the Fish shell to pcomplete (used
11292by shell and Eshell). You can set it up globally with:
11293
11294@example
11295(when (and (executable-find \"fish\")
11296 (require 'fish-completion nil t))
11297 (global-fish-completion-mode))
11298@end example
11299
11300Alternatively, you can call the @code{fish-completion-mode} manually or in
11301shell/Eshell mode hook.
11302
11303The package @code{emacs-bash-completion} is an optional dependency: if available,
11304@code{fish-completion-complete} can be configured to fall back on bash to further
11305try completing. See @code{fish-completion-fallback-on-bash-p}.")
11306 (license license:gpl3+))))
11307
11308(define-public emacs-gif-screencast
11309 (let ((commit "12b25442b97b84abae74ecb5190a9d14ff7cfe5a"))
11310 (package
11311 (name "emacs-gif-screencast")
11312 (version (git-version "20180616" "1" commit))
11313 (source
11314 (origin
11315 (method url-fetch)
11316 (uri (string-append
11317 "https://gitlab.com/Ambrevar/emacs-gif-screencast/"
11318 "repository/archive.tar.gz?ref="
11319 commit))
11320 (sha256
11321 (base32
11322 "0lc457i78xjkn5idr2aaiadkh76zcsksj84z0qh80a9y775syrgh"))))
11323 (build-system emacs-build-system)
11324 (inputs
11325 `(("scrot" ,scrot)
11326 ("imagemagick" ,imagemagick)
11327 ("gifsicle" ,gifsicle)))
11328 (arguments
11329 `(#:phases
11330 (modify-phases %standard-phases
11331 (add-after 'unpack 'configure
11332 (lambda* (#:key inputs outputs #:allow-other-keys)
11333 (let ((scrot (assoc-ref inputs "scrot"))
11334 (imagemagick (assoc-ref inputs "imagemagick"))
11335 (gifsicle (assoc-ref inputs "gifsicle")))
11336 ;; Specify the absolute file names of the various
11337 ;; programs so that everything works out-of-the-box.
11338 (emacs-substitute-variables
11339 "gif-screencast.el"
11340 ("gif-screencast-program"
11341 (string-append scrot "/bin/scrot"))
11342 ("gif-screencast-convert-program"
11343 (string-append imagemagick "/bin/convert"))
11344 ("gif-screencast-cropping-program"
11345 (string-append imagemagick "/bin/mogrify"))
11346 ("gif-screencast-optimize-program"
11347 (string-append imagemagick "/bin/gifsicle")))))))))
11348 (home-page
11349 "https://gitlab.com/Ambrevar/emacs-gif-screencast")
11350 (synopsis "One-frame-per-action GIF recording")
11351 (description
11352 "Call @code{gif-screencast} to start a recording.
11353A screenshot is taken for every user action. Call
11354@code{gif-screencast-stop} (<f9> by default) to finish recording and create
11355the GIF result.")
11356 (license license:gpl3+))))
11357
11358(define-public emacs-google-translate
11359 (package
11360 (name "emacs-google-translate")
11361 (version "0.11.16")
11362 (source
11363 (origin
11364 (method url-fetch)
11365 (uri (string-append "https://github.com/atykhonov/google-translate/"
11366 "archive/v" version ".tar.gz"))
11367 (file-name (string-append name "-" version ".tar.gz"))
11368 (sha256
11369 (base32
11370 "01n9spj1d0gjfj39x526rl3m9c28wnx9afipmf5s8y77cx3mfwhl"))))
11371 (build-system emacs-build-system)
11372 (home-page "https://github.com/atykhonov/google-translate")
11373 (synopsis "Emacs interface to Google Translate")
11374 (description
11375 "This packages provides an Emacs interface to the Google Translate
11376on-line service.")
11377 (license license:gpl3+)))
11378
11379(define-public emacs-helm-company
11380 (let ((commit "d3fc093a0e833b4dee6561c00d6df3d62aa50f3f"))
11381 (package
11382 (name "emacs-helm-company")
11383 (version (git-version "0.2.3" "1" commit))
11384 (source
11385 (origin
11386 (method git-fetch)
11387 (uri (git-reference
11388 (url "https://github.com/Sodel-the-Vociferous/helm-company")
11389 (commit commit)))
11390 (file-name (string-append name "-" version "-checkout"))
11391 (sha256
11392 (base32
11393 "1ciirsanhajdqm5iwl8k9ywf4jha1wdv4sc4d9kslyrfr9zn4q6k"))))
11394 (build-system emacs-build-system)
11395 (propagated-inputs
11396 `(("emacs-helm" ,emacs-helm)
11397 ("emacs-company" ,emacs-company)))
11398 (home-page "https://github.com/Sodel-the-Vociferous/helm-company")
11399 (synopsis "Helm interface for company-mode")
11400 (description
11401 "This is a Helm interface to company-mode, a text completion
11402framework.")
11403 (license license:gpl3+))))
11404
11405(define-public emacs-helm-descbinds
11406 (let ((commit "033be73f21778633813264ce1634a6e1ad873d8e"))
11407 (package
11408 (name "emacs-helm-descbinds")
11409 (version (git-version "1.13" "1" commit))
11410 (source
11411 (origin
11412 (method git-fetch)
11413 (uri (git-reference
11414 (url "https://github.com/emacs-helm/helm-descbinds")
11415 (commit commit)))
11416 (file-name (string-append name "-" version "-checkout"))
11417 (sha256
11418 (base32
11419 "1n89p56qwa243w1c85i5awnaf7piwjsvfi7nmnsrwm33hix5dknk"))))
11420 (build-system emacs-build-system)
11421 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
11422 (home-page "https://github.com/emacs-helm/helm-descbinds")
11423 (synopsis "Convenient @code{describe-bindings} with Helm")
11424 (description
11425 "This package is a replacement of @code{describe-bindings} for Helm.
11426@code{describe-bindings} is replaced with @code{helm-descbinds}. As usual,
11427type @code{C-h b}, or any incomplete key sequence plus @code{C-h}, to run
11428@code{helm-descbinds}. The bindings are presented in a similar way as
11429@code{describe-bindings} does, but you can use completion to find the command
11430you searched for and execute it, or view its documentation.")
11431 (license license:gpl3+))))
11432
11433(define-public emacs-helm-emms
11434 (let ((commit "d3f9bdef8ff0d093eaf6e26af50ea905ab53fdec"))
11435 (package
11436 (name "emacs-helm-emms")
11437 (version (git-version "1.3" "1" commit))
11438 (source
11439 (origin
11440 (method git-fetch)
11441 (uri (git-reference
11442 (url "https://github.com/emacs-helm/helm-emms")
11443 (commit commit)))
11444 (file-name (string-append name "-" version "-checkout"))
11445 (sha256
11446 (base32
11447 "0bdb8xp0yp3gijpa9i2rc17gfzjhzlm92vdzw93i10qpd1xhj4aa"))))
11448 (build-system emacs-build-system)
11449 (propagated-inputs
11450 `(("emacs-helm" ,emacs-helm)
11451 ("emacs-emms" ,emacs-emms)))
11452 (home-page
11453 "https://github.com/emacs-helm/helm-emms")
11454 (synopsis "Emms for Helm")
11455 (description "Helm interface for Emms to browse all tracks and all folders
11456from @code{emms-source-file-default-directory}.")
11457 (license license:gpl3+))))
11458
11459(define-public emacs-helm-exwm
11460 (let ((commit "56266f261ba3b3d2753b374b50da20eb768c06f5"))
11461 (package
11462 (name "emacs-helm-exwm")
11463 (version (git-version "20180703" "2" commit))
11464 (source
11465 (origin
11466 (method url-fetch)
11467 (uri (string-append
11468 "https://github.com/emacs-helm/helm-exwm/archive/"
11469 commit
11470 ".tar.gz"))
11471 (sha256
11472 (base32
11473 "0n7hdiajw5vxl8ha2r9r4cl4i7crza25348825wb6acwhhzijxcj"))))
11474 (build-system emacs-build-system)
11475 (propagated-inputs
11476 `(("emacs-helm" ,emacs-helm)
11477 ("emacs-exwm" ,emacs-exwm)))
11478 (home-page
11479 "https://github.com/emacs-helm/helm-exwm")
11480 (synopsis "Helm for EXWM buffers")
11481 (description
11482 "@code{helm-exwm} runs a Helm session over the list of EXWM buffers.
11483@code{helm-exwm-switch} is a convenience X application launcher using Helm to
11484switch between the various windows of one or several specific applications.
11485See @code{helm-exwm-switch-browser} for an example.")
11486 (license license:gpl3+))))
11487
11488(define-public emacs-helm-flycheck
11489 (let ((commit "3cf7d3bb194acacc6395f88360588013d92675d6"))
11490 (package
11491 (name "emacs-helm-flycheck")
11492 (version (git-version "0.4" "1" commit))
11493 (source
11494 (origin
11495 (method git-fetch)
11496 (uri (git-reference
11497 (url "https://github.com/yasuyk/helm-flycheck")
11498 (commit commit)))
11499 (file-name (string-append name "-" version "-checkout"))
11500 (sha256
11501 (base32
11502 "1a2yfxhz04klwhcandqvfzysxp6b7bxyxx1xk1x3kds5hif5fkl4"))))
11503 (build-system emacs-build-system)
11504 (propagated-inputs
11505 `(("emacs-dash" ,emacs-dash)
11506 ("emacs-flycheck" ,emacs-flycheck)
11507 ("emacs-helm" ,emacs-helm)))
11508 (home-page "https://github.com/yasuyk/helm-flycheck")
11509 (synopsis "Show Flycheck errors with Helm")
11510 (description
11511 "This integrates Flycheck with Helm.")
11512 (license license:gpl3+))))
11513
11514(define-public emacs-helm-ls-git
11515 (let ((commit "76654c776a7f6e2e5290645e748aac2a746f7daa"))
11516 (package
11517 (name "emacs-helm-ls-git")
11518 (version (git-version "1.9.1" "1" commit))
11519 (source
11520 (origin
11521 (method git-fetch)
11522 (uri (git-reference
11523 (url "https://github.com/emacs-helm/helm-ls-git")
11524 (commit commit)))
11525 (file-name (string-append name "-" version "-checkout"))
11526 (sha256
11527 (base32
11528 "0vsq1n3xl3ghy5zik2scm7jrs501n4kybdqd6yw6j0cv4jxdqbr0"))))
11529 (build-system emacs-build-system)
11530 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
11531 (home-page "https://github.com/emacs-helm/helm-ls-git")
11532 (synopsis "Helm interface for listing the files in a Git repository")
11533 (description
11534 "This package provides a Helm interface for Git files.
11535@itemize
11536@item Display the open buffers in project.
11537@item Display a status source showing state of project (modified files etc.).
11538@item Display a list of all files in project under git control.
11539@item Quickly look at diffs of modified files.
11540@item Allow switching to @code{git status} with your preferred frontend
11541(vc-dir, Magit,etc.).
11542@item Full integration of git-grep, also allow usage of @code{helm-grep} (you
11543can use ack-grep instead of grep).
11544@item Integrate usage of gid from id-utils.
11545@item Full integration with @code{helm-find-files}, allow you to browse
11546projects unrelated to current-buffer.
11547@item In addition, all actions of type files and buffers are provided.
11548@end itemize\n")
11549 (license license:gpl3+))))
11550
11551(define-public emacs-helm-mu
11552 (let ((commit "77e6fea24e01481418738421dbcfe28ef1bd63cf"))
11553 (package
11554 (name "emacs-helm-mu")
11555 (version (git-version "20180513" "1" commit))
11556 (source
11557 (origin
11558 (method url-fetch)
11559 (uri (string-append
11560 "https://github.com/emacs-helm/helm-mu/archive/"
11561 commit
11562 ".tar.gz"))
11563 (sha256
11564 (base32
11565 "0qm4xi3i957scm50nar398pv4x8y03si10l77jb9ckjaviyq2hj9"))))
11566 (build-system emacs-build-system)
11567 (propagated-inputs
11568 `(("emacs-helm" ,emacs-helm)
11569 ("mu" ,mu)))
11570 (home-page
11571 "https://github.com/emacs-helm/helm-mu")
11572 (synopsis
11573 "Helm sources for searching emails and contacts")
11574 (description
11575 "Helm sources for searching emails and contacts using @code{mu} and
11576@code{mu4e}. Mu is an indexer for maildirs and mu4e is a mutt-like MUA for
11577Emacs build on top of mu. Mu is highly efficient making it possible to get
11578instant results even for huge maildirs. It also provides search operators,
11579e.g: @code{from:Peter to:Anne flag:attach search term}.")
11580 (license license:gpl3+))))
11581
11582(define-public emacs-helm-pass
11583 (let ((commit "ebcbef1a962795a36e3491ae926e2a4b8a8b0ebb"))
11584 (package
11585 (name "emacs-helm-pass")
11586 (version (git-version "20180416" "1" commit))
11587 (source
11588 (origin
11589 (method url-fetch)
11590 (uri (string-append
11591 "https://github.com/jabranham/helm-pass/archive/"
11592 commit
11593 ".tar.gz"))
11594 (sha256
11595 (base32
11596 "1pgq4hj9wvz7z2fyxwsvbh6rmc1akya84v382nx26rr76iavz6wi"))))
11597 (build-system emacs-build-system)
11598 (propagated-inputs
11599 `(("emacs-helm" ,emacs-helm)
11600 ("emacs-password-store" ,emacs-password-store)))
11601 (home-page
11602 "https://github.com/jabranham/helm-pass")
11603 (synopsis "Helm interface to pass, the standard Unix password manager")
11604 (description
11605 "Users of @code{helm-pass} may also be interested in functionality
11606provided by other Emacs packages dealing with pass:
11607@itemize
11608@item @code{emacs-password-store}, which @code{helm-pass} relies on.
11609@item @code{emacs-pass}, a major mode for @code{pass}.
11610@item @code{auth-source-pass.el}: integration of Emacs' auth-source with
11611@code{pass}, included in Emacs 26+).
11612@end itemize\n")
11613 (license license:gpl3+))))
11614
11615(define-public emacs-image+
11616 (let ((commit "6834d0c09bb4df9ecc0d7a559bd7827fed48fffc"))
11617 (package
11618 (name "emacs-image+")
11619 (version (git-version "0.6.2" "1" commit))
11620 (source
11621 (origin
11622 (method git-fetch)
11623 (uri (git-reference
11624 (url "https://github.com/mhayashi1120/Emacs-imagex")
11625 (commit commit)))
11626 (file-name (string-append name "-" version "-checkout"))
11627 (sha256
11628 (base32
11629 "0v66wk9nh0raih4jhrzmmyi5lbysjnmbv791vm2230ffi2hmwxnd"))))
11630 (build-system emacs-build-system)
11631 (inputs `(("imagemagick" ,imagemagick)))
11632 (arguments
11633 `(#:phases
11634 (modify-phases %standard-phases
11635 (add-after 'unpack 'configure
11636 (lambda* (#:key inputs outputs #:allow-other-keys)
11637 (let ((imagemagick (assoc-ref inputs "imagemagick")))
11638 ;; Specify the absolute file names of the various
11639 ;; programs so that everything works out-of-the-box.
11640 (chmod "image+.el" #o666)
11641 (emacs-substitute-variables
11642 "image+.el"
11643 ("imagex-convert-command"
11644 (string-append imagemagick "/bin/convert"))
11645 ("imagex-identify-command"
11646 (string-append imagemagick "/bin/identify")))))))))
11647 (home-page "https://github.com/mhayashi1120/Emacs-imagex")
11648 (synopsis "Image manipulation extensions for Emacs")
11649 (description
11650 "Image+ provides keybindings allowing you to zoom in or zoom out of an
11651image, rotate it, save modified images, and more.")
11652 (license license:gpl3+))))
11653
11654(define-public emacs-package-lint
11655 (let ((commit "69bb89d00ba212b734c676ad056aa793c450b288"))
11656 (package
11657 (name "emacs-package-lint")
11658 (version (git-version "0.5" "1" commit))
11659 (source
11660 (origin
11661 (method git-fetch)
11662 (uri (git-reference
11663 (url "https://github.com/purcell/package-lint")
11664 (commit commit)))
11665 (file-name (string-append name "-" version "-checkout"))
11666 (sha256
11667 (base32
11668 "1hfricsgmy3x9snnd2p4xq6vnnv94qdsxxnxp07b3hqc9bhw31rq"))))
11669 (build-system emacs-build-system)
11670 (home-page "https://github.com/purcell/package-lint")
11671 (synopsis "Linting library for elisp package authors")
11672 (description
11673 "This provides a list of issues with the Emacs package metadata of a file,
11674e.g. the package dependencies it requires. See function
11675@code{package-lint-buffer}. Checks will currently be enabled only if a
11676\"Package-Requires:\" or \"Package-Version:\" header is present in the
11677file.")
11678 (license license:gpl3+))))
11679
11680(define-public emacs-picpocket
11681 (let ((version "40")
11682 (commit "6fd88b8711c4370662c0f9c462170187d092a046"))
11683 (package
11684 (name "emacs-picpocket")
11685 (version version)
11686 (source
11687 (origin
11688 (method git-fetch)
11689 (uri (git-reference
11690 (url "https://github.com/johanclaesson/picpocket")
11691 (commit commit)))
11692 (file-name (git-file-name name version))
11693 (sha256
11694 (base32 "1mdzzxf7xm7zwrpnqqxa27d1cr31pd72d7ilbwljv13qp177a3yw"))))
11695 (build-system emacs-build-system)
11696 (arguments ; needed for running tests
11697 `(#:tests? #t
11698 #:emacs ,emacs
11699 #:test-command '("emacs" "--batch"
11700 "-l" "picpocket-test.el"
11701 "-f" "ert-run-tests-batch-and-exit")))
11702 (home-page "https://github.com/johanclaesson/picpocket")
11703 (synopsis "Image viewer for Emacs")
11704 (description
11705 "Picpocket is an image viewer for GNU Emacs. It has commands for:
11706
11707@itemize
11708@item File operations on the picture files (delete, move, copy, hardlink).
11709@item Scale and rotate the picture.
11710@item Associate pictures with tags which are saved to disk.
11711@item Filter pictures according to tags.
11712@item Customizing keystrokes for quick tagging and file operations.
11713@item Undo and browse history of undoable commands.
11714@end itemize")
11715 (license license:gpl3+))))
11716
11717(define-public emacs-wgrep-helm
11718 ;; `emacs-wgrep-helm' was mistakenly added.
11719 (deprecated-package "emacs-wgrep-helm" emacs-wgrep))
11720
11721(define-public emacs-mu4e-conversation
11722 (let ((commit "e7d4bfcb0d392b0aed1f705ccac2419a168d1f5e"))
11723 (package
11724 (name "emacs-mu4e-conversation")
11725 (version (git-version "20181126" "4" commit))
11726 (source
11727 (origin
11728 (method url-fetch)
11729 (uri (string-append
11730 "https://gitlab.com/Ambrevar/mu4e-conversation/"
11731 "repository/archive.tar.gz?ref="
11732 commit))
11733 (file-name (string-append name "-" version "-checkout"))
11734 (sha256
11735 (base32
11736 "0b52hf9rm2afba9pvgink9bwqm705sk0y5qikp0ff5sk53wqvy29"))))
11737 (build-system emacs-build-system)
11738 (propagated-inputs
11739 `(("mu" ,mu)))
11740 (home-page
11741 "https://gitlab.com/Ambrevar/mu4e-conversation")
11742 (synopsis
11743 "Show a complete thread in a single buffer")
11744 (description
11745 "This package offers an alternate view to mu4e's e-mail display. It
11746shows all e-mails of a thread in a single view, where each correspondent has
11747their own face. Threads can be displayed linearly (in which case e-mails are
11748displayed in chronological order) or as an Org document where the node tree
11749maps the thread tree.")
11750 (license license:gpl3+))))
11751
11752(define-public emacs-pinentry
11753 (let ((commit "dcc9ba03252ee5d39e03bba31b420e0708c3ba0c")
11754 (revision "1"))
11755 (package
11756 (name "emacs-pinentry")
11757 (version (git-version "0.1" revision commit))
11758 (source
11759 (origin
11760 (method url-fetch)
11761 (uri (string-append
11762 "http://git.savannah.gnu.org/cgit/emacs/elpa.git/plain"
11763 "/packages/pinentry/pinentry.el?id=" commit))
11764 (file-name (string-append "pinentry.el"))
11765 (sha256
11766 (base32
11767 "1lf30q6r8nz5cjzclbb9bbymsk2y75nskvb55hnjdv93gr3j0sik"))))
11768 (build-system emacs-build-system)
11769 (propagated-inputs
11770 `(("gnupg" ,gnupg)))
11771 (home-page "https://elpa.gnu.org/packages/pinentry.html")
11772 (synopsis "GnuPG Pinentry server implementation")
11773 (description
11774 "This package allows GnuPG passphrase to be prompted through the
11775minibuffer instead of graphical dialog.
11776
11777To use, add @code{allow-emacs-pinentry} to @code{~/.gnupg/gpg-agent.conf},
11778reload the configuration with @code{gpgconf --reload gpg-agent}, and start the
11779server with @code{M-x pinentry-start}.")
11780 (license license:gpl3+))))
11781
11782(define-public emacs-org-brain
11783 (package
11784 (name "emacs-org-brain")
11785 (version "0.5")
11786 (source
11787 (origin
11788 (method git-fetch)
11789 (uri (git-reference
11790 (url "https://github.com/Kungsgeten/org-brain.git")
11791 (commit "3faf9303af3f2356e3444e69c22dc6c5774047d1")))
11792 (file-name (git-file-name name version))
11793 (sha256
11794 (base32
11795 "1ad681zk6kckw2zbk0r4iaj4bw8cfqrbd1s3gdwgdjlzq81q9mmj"))))
11796 (build-system emacs-build-system)
11797 (home-page "https://github.com/Kungsgeten/org-brain")
11798 (synopsis "Org-mode wiki and concept-mapping for Emacs")
11799 (description "@code{emacs-org-brain} implements a variant of concept
11800mapping in Emacs, using @code{org-mode}. An org-brain is a network of
11801org-mode entries, where each entry is a file or a headline, and you can get a
11802visual overview of the relationships between the entries: parents, children,
11803siblings and friends. This visual overview can also be used to browse your
11804entries. You can think of entries as nodes in a mind map, or pages in a
11805wiki.")
11806 (license license:expat)))
11807
11808(define-public emacs-recent-addresses
11809 (let ((commit "afbbfdc43b81e620acf827ca20d297e0c517b6eb")
11810 (revision "1"))
11811 (package
11812 (name "emacs-recent-addresses")
11813 (home-page "http://nschum.de/src/emacs/recent-addresses/")
11814 (version (git-version "0.1" revision commit))
11815 (source (origin
11816 (method git-fetch)
11817 (uri (git-reference
11818 ;; Note: Use a branch that works with Helm. Submitted
11819 ;; at <https://github.com/nschum/recent-addresses.el/pull/1>.
11820 (url "https://github.com/civodul/recent-addresses.el")
11821 (commit commit)))
11822 (sha256
11823 (base32
11824 "0ajrq0galjmdyjdjyxazykjyax3gh6hvfk4s7l657pi11g0q5zax"))
11825 (file-name (git-file-name name version))))
11826 (build-system emacs-build-system)
11827 (synopsis "Record recently-used email addressed and auto-complete them")
11828 (description
11829 "@code{recent-addresses} is an Emacs package that allows you to quickly
11830look up previously used email addresses. It can be used alongside the Gnus
11831email client.")
11832 (license license:gpl2+))))
11833
11834(define-public emacs-fold-dwim
11835 (let ((commit "c46f4bb2ce91b4e307136320e72c28dd50b6cd8b")
11836 (revision "0"))
11837 (package
11838 (name "emacs-fold-dwim")
11839 (version (git-version "1.2" revision commit))
11840 (home-page "https://github.com/emacsattic/fold-dwim")
11841 (source (origin
11842 (method git-fetch)
11843 (uri (git-reference (url home-page) (commit commit)))
11844 (sha256
11845 (base32
11846 "1yz1wis31asw6xa5maliyd1ck2q02xnnh7dc6swgj9cb4wi7k6i1"))
11847 (file-name (git-file-name name version))))
11848 (build-system emacs-build-system)
11849 (synopsis "Unified user interface for Emacs folding modes")
11850 (description
11851 "DWIM stands for \"do what I mean\", as in the idea that one keystroke
11852can do different things depending on the context. In this package, it means
11853that, if the cursor is in a currently hidden folded construction, we want to
11854show it; if it's not, we want to hide whatever fold the cursor is in.")
11855 (license license:gpl2+))))
11856
11857(define-public emacs-markup-faces
11858 (package
11859 (name "emacs-markup-faces")
11860 (version "1.0.0")
11861 (source
11862 (origin
11863 (method url-fetch)
11864 (uri (string-append "https://stable.melpa.org/packages/markup-faces-"
11865 version ".el"))
11866 (sha256
11867 (base32
11868 "124dxbaa25fwxnpwsygpz7pw6da6dnnw7y2lic3jf8rgz7lw4v32"))))
11869 (build-system emacs-build-system)
11870 (home-page "https://github.com/sensorflo/markup-faces")
11871 (synopsis "Collection of Emacs faces for markup language modes")
11872 (description "emacs-markup-faces is like font-lock-faces, but tailored for
11873markup languages instead programming languages. The sub group markup-faces-text
11874is also intended for 'text viewing modes' such as info or (wo)man. This gives a
11875common look and feel, or let's say theme, across different markup language modes
11876and 'text viewing modes' respectively.")
11877 (license license:gpl3+)))
11878
11879(define-public emacs-adoc-mode
11880 (package
11881 (name "emacs-adoc-mode")
11882 (version "0.6.6")
11883 (source
11884 (origin
11885 (method url-fetch)
11886 (uri (string-append "https://stable.melpa.org/packages/adoc-mode-"
11887 version ".el"))
11888 (sha256
11889 (base32
11890 "1c6hrgxxsnl2c19rgjykpm7r4xg9lp6bmk5z6bi7g8pqlrgwffcy"))))
11891 (build-system emacs-build-system)
11892 (propagated-inputs
11893 `(("emacs-markup-faces" ,emacs-markup-faces)))
11894 (home-page "https://github.com/sensorflo/adoc-mode/wiki")
11895 (synopsis "AsciiDoc mode for Emacs")
11896 (description "This package provides an Emacs major mode for editing AsciiDoc
11897files. It focuses on highlighting the document to improve readability.")
11898 (license license:gpl2+)))
11899
11900(define-public emacs-rust-mode
11901 (let ((commit
11902 ;; Last release is old (2016), use more recent commit to get bug
11903 ;; fixes.
11904 "64b4a2450e4d4c47f6307851c9b2598cd2254d68")
11905 (revision "0"))
11906 (package
11907 (name "emacs-rust-mode")
11908 (version (git-version "0.3.0" revision commit))
11909 (source (origin
11910 (method git-fetch)
11911 (uri
11912 (git-reference
11913 (url "https://github.com/rust-lang/rust-mode")
11914 (commit commit)))
11915 (file-name (git-file-name name version))
11916 (sha256
11917 (base32
11918 "0pbz36lljgb7bdgx3h3g0pq1nss1kvn8mhk1l3mknsmynd6w4nd8"))))
11919 (build-system emacs-build-system)
11920 (arguments
11921 `(#:phases
11922 (modify-phases %standard-phases
11923 (replace 'check
11924 (lambda _
11925 (invoke "sh" "run_rust_emacs_tests.sh"))))))
11926 (home-page "https://github.com/rust-lang/rust-mode")
11927 (synopsis "Major Emacs mode for editing Rust source code")
11928 (description "This package provides a major Emacs mode for editing Rust
11929source code.")
11930 (license (list license:expat
11931 license:asl2.0)))))
11932
11933(define-public emacs-ztree
11934 (let ((commit "c54425a094353ec40a8179f9eab3596f76c6cf94"))
11935 (package
11936 (name "emacs-ztree")
11937 (version (git-version "1.0.5" "1" commit))
11938 (source
11939 (origin
11940 (method git-fetch)
11941 (uri (git-reference
11942 (url "https://github.com/fourier/ztree")
11943 (commit commit)))
11944 (file-name (git-file-name name version))
11945 (sha256
11946 (base32
11947 "0j8fpxds8m1zi04nrs8vv21091abvh4n8ab76f1sgdxnp4l5cfb0"))))
11948 (build-system emacs-build-system)
11949 (home-page "https://github.com/fourier/ztree")
11950 (synopsis "Directory tree comparison mode for Emacs")
11951 (description "Ztree is a project dedicated to implementation of several
11952text-tree applications inside GNU Emacs. It consists of 2 subprojects:
11953@command{ztree-diff} and @command{ztree-dir} (the basis of
11954@command{ztree-diff}).")
11955 (license license:gpl3))))
11956
11957(define-public emacs-helm-org-contacts
11958 (let ((commit "0af703bd9a43032b89fdf5559673151d1ac2fffc"))
11959 (package
11960 (name "emacs-helm-org-contacts")
11961 (version (git-version "20180707" "1" commit))
11962 (source
11963 (origin
11964 (method git-fetch)
11965 (uri (git-reference
11966 (url "https://github.com/tmalsburg/helm-org-contacts")
11967 (commit commit)))
11968 (file-name (git-file-name name version))
11969 (sha256
11970 (base32
11971 "1cl7cm2ic9pg4vc9cdh84vzjj1x2lpd5ymimiva8h4l17kiphk4s"))))
11972 (build-system emacs-build-system)
11973 (propagated-inputs
11974 `(("emacs-dash" ,emacs-dash)
11975 ("emacs-helm" ,emacs-helm)
11976 ("emacs-s" ,emacs-s)))
11977 (home-page "https://github.com/tmalsburg/helm-org-contacts")
11978 (synopsis "Helm source for org-contacts")
11979 (description "This Helm source can be used to search contacts stored in
11980org-contacts format. There are actions for inserting postal addresses, email
11981addresses, and phone numbers in the buffer where @command{helm-org-contacts}
11982was called.")
11983 (license license:gpl3))))
11984
11985(define-public emacs-dired-du
11986 (package
11987 (name "emacs-dired-du")
11988 (version "0.5.1")
11989 (source
11990 (origin
11991 (method url-fetch)
11992 (uri (string-append
11993 "https://elpa.gnu.org/packages/dired-du-"
11994 version ".tar"))
11995 (sha256
11996 (base32
11997 "1091scnrjh0a4gja4z6jxic6ghy1yryv46qk9c76pmh50cpw6766"))))
11998 (build-system emacs-build-system)
11999 (home-page "http://elpa.gnu.org/packages/dired-du.html")
12000 (synopsis "Dired with recursive directory sizes")
12001 (description
12002 "Display the recursive size of directories in Dired.
12003This file defines a minor mode @command{dired-du-mode} to show the recursive
12004size of directories in Dired buffers. If @command{du} program is available,
12005then the directory sizes are obtained with it. Otherwise, the directory sizes
12006are obtained with Lisp. The former is faster and provide a more precise
12007value. For directories where the user doesn't have read permission, the
12008recursive size is not obtained. Once this mode is enabled, every new Dired
12009buffer displays recursive dir sizes.")
12010 (license license:gpl3+)))
12011
12012(define-public emacs-pcre2el
12013 ;; Last release is very old so we get the latest commit.
12014 (let ((commit "0b5b2a2c173aab3fd14aac6cf5e90ad3bf58fa7d"))
12015 (package
12016 (name "emacs-pcre2el")
12017 (version (git-version "1.8" "1" commit))
12018 (source
12019 (origin
12020 (method git-fetch)
12021 (uri (git-reference
12022 (url "https://github.com/joddie/pcre2el")
12023 (commit commit)))
12024 (file-name (git-file-name name version))
12025 (sha256
12026 (base32
12027 "14br6ad138qx1z822wqssswqiihxiynz1k69p6mcdisr2q8yyi1z"))))
12028 (build-system emacs-build-system)
12029 (home-page "https://github.com/joddie/pcre2el")
12030 (synopsis "Convert between PCRE, Emacs and rx regexp syntax")
12031 (description "@code{pcre2el} or @code{rxt} (RegeXp Translator or RegeXp
12032Tools) is a utility for working with regular expressions in Emacs, based on a
12033recursive-descent parser for regexp syntax. In addition to converting (a
12034subset of) PCRE syntax into its Emacs equivalent, it can do the following:
12035
12036@itemize
12037@item convert Emacs syntax to PCRE
12038@item convert either syntax to @code{rx}, an S-expression based regexp syntax
12039@item untangle complex regexps by showing the parse tree in @code{rx} form and
12040highlighting the corresponding chunks of code
12041@item show the complete list of strings (productions) matching a regexp,
12042provided the list is finite
12043@item provide live font-locking of regexp syntax (so far only for Elisp
12044buffers – other modes on the TODO list).
12045@end itemize\n")
12046 (license license:gpl3))))
12047
12048(define-public emacs-magit-todos
12049 (package
12050 (name "emacs-magit-todos")
12051 (version "1.1")
12052 (source
12053 (origin
12054 (method git-fetch)
12055 (uri (git-reference
12056 (url "https://github.com/alphapapa/magit-todos")
12057 (commit version)))
12058 (file-name (git-file-name name version))
12059 (sha256
12060 (base32
12061 "1mvzbxshr6zjdim3jd368ar1hy5l7n22i03cpvzdmrw83kkwdyhd"))))
12062 (build-system emacs-build-system)
12063 (propagated-inputs
12064 `(("emacs-async" ,emacs-async)
12065 ("emacs-dash" ,emacs-dash)
12066 ("emacs-f" ,emacs-f)
12067 ("emacs-hl-todo" ,emacs-hl-todo)
12068 ("magit" ,emacs-magit)
12069 ("emacs-pcre2el" ,emacs-pcre2el)
12070 ("emacs-s" ,emacs-s)))
12071 (home-page "https://github.com/alphapapa/magit-todos")
12072 (synopsis "Show source files' TODOs (and FIXMEs, etc) in Magit status buffer")
12073 (description "This package displays keyword entries from source code
12074comments and Org files in the Magit status buffer. Activating an item jumps
12075to it in its file. By default, it uses keywords from @code{hl-todo}, minus a
12076few (like NOTE).")
12077 (license license:gpl3)))
12078
12079(define-public emacs-git-annex
12080 ;; Unreleased version has a fontification fix.
12081 (let ((commit "ebdb44aef1883f1b2b8058e05d30fb9315b03707")
12082 (revision "1"))
12083 (package
12084 (name "emacs-git-annex")
12085 (version (string-append "1.1-" revision "." (string-take commit 8)))
12086 (source
12087 (origin
12088 (method git-fetch)
12089 (uri (git-reference
12090 (url "https://github.com/jwiegley/git-annex-el")
12091 (commit commit)))
12092 (file-name (string-append name "-" version "-checkout"))
12093 (sha256
12094 (base32
12095 "1mzv40gj7k10h7h5s43my8msgzjpj680qprqa9pp8nbyhl49v3wh"))))
12096 (build-system emacs-build-system)
12097 (home-page "https://github.com/jwiegley/git-annex-el")
12098 (synopsis "Emacs integration for git-annex")
12099 (description "Enhances Dired and buffers visiting annex files with
12100git-annex functionality. In Dired, the names of annex files are shortened by
12101hiding the symbolic links and fontified based on whether content is present.
12102Commands for performing some common operations (e.g., unlocking and adding
12103files) are provided.")
12104 (license license:gpl2+))))
12105
12106(define-public emacs-hackernews
12107 (let ((commit "d8c450bbc76d6bb65ec5cdb6c3b888a23f3769e9"))
12108 (package
12109 (name "emacs-hackernews")
12110 (version (git-version "0.4.0" "1" commit))
12111 (source
12112 (origin
12113 (method git-fetch)
12114 (uri (git-reference
12115 (url "https://github.com/clarete/hackernews.el")
12116 (commit commit)))
12117 (file-name (git-file-name name version))
12118 (sha256
12119 (base32
12120 "06mp4n6c300jv5lhwf50ircfjckzr2p1zd38s4mqnxxjlf1maim7"))))
12121 (build-system emacs-build-system)
12122 (home-page "https://github.com/clarete/hackernews.el")
12123 (synopsis "Hacker News client for Emacs")
12124 (description "The @command{hackernews} package is able to fetch stories
12125from six different Hacker News feeds, namely top, new, best, ask, show and job
12126stories. The default feed is top stories, which corresponds to the Hacker
12127News homepage.")
12128 (license license:gpl3))))
12129
12130(define-public emacs-youtube-dl
12131 (let ((commit "7c9d7a7d05b72a7d1b1257a36c5e2b2567b185dd"))
12132 (package
12133 (name "emacs-youtube-dl")
12134 (version (git-version "1.0" "1" commit))
12135 (source
12136 (origin
12137 (method git-fetch)
12138 (uri (git-reference
12139 (url "https://github.com/skeeto/youtube-dl-emacs/")
12140 (commit commit)))
12141 (file-name (git-file-name name version))
12142 (sha256
12143 (base32
12144 "0mh4s089a4x8s380agzb2306kdp1hl204px1n5rrrrdcls7imnh6"))))
12145 (build-system emacs-build-system)
12146 (inputs
12147 `(("youtube-dl" ,youtube-dl)))
12148 (arguments
12149 `(#:phases
12150 (modify-phases %standard-phases
12151 (add-after 'unpack 'configure
12152 (lambda* (#:key inputs #:allow-other-keys)
12153 (let ((youtube-dl (assoc-ref inputs "youtube-dl")))
12154 ;; .el is read-only in git.
12155 (chmod "youtube-dl.el" #o644)
12156 ;; Specify the absolute file names of the various
12157 ;; programs so that everything works out-of-the-box.
12158 (emacs-substitute-variables
12159 "youtube-dl.el"
12160 ("youtube-dl-program"
12161 (string-append youtube-dl "/bin/youtube-dl")))))))))
12162 (home-page "https://github.com/skeeto/youtube-dl-emacs/")
12163 (synopsis "Emacs youtube-dl download manager")
12164 (description "This package manages a video download queue for
12165@command{youtube-dl}, which serves as the back end. It manages a single
12166@command{youtube-dl} subprocess, downloading one video at a time. New videos
12167can be queued at any time.")
12168 (license license:unlicense))))
12169
12170(define-public emacs-org-web-tools
12171 (package
12172 (name "emacs-org-web-tools")
12173 (version "1.0")
12174 (source
12175 (origin
12176 (method git-fetch)
12177 (uri (git-reference
12178 (url "https://github.com/alphapapa/org-web-tools")
12179 (commit version)))
12180 (file-name (git-file-name name version))
12181 (sha256
12182 (base32
12183 "0kak9h5ny00d39gnwspv53nadnag01brw2fq9zk5wpfc91h9bjng"))))
12184 (build-system emacs-build-system)
12185 (propagated-inputs
12186 `(("emacs-dash" ,emacs-dash)
12187 ("emacs-esxml" ,emacs-esxml)
12188 ("emacs-s" ,emacs-s)))
12189 (inputs
12190 `(("pandoc" ,ghc-pandoc)))
12191 (arguments
12192 `(#:phases
12193 (modify-phases %standard-phases
12194 (add-after 'unpack 'patch-exec-paths
12195 (lambda* (#:key inputs #:allow-other-keys)
12196 (let ((pandoc (assoc-ref inputs "pandoc")))
12197 (substitute* "org-web-tools.el"
12198 (("\"pandoc\"") (string-append "\"" pandoc "/bin/pandoc\"")))
12199 #t))))))
12200 (home-page "https://github.com/alphapapa/org-web-tools")
12201 (synopsis "Display/Process web page as Org-mode content")
12202 (description "This package contains library functions and commands useful
12203for retrieving web page content and processing it into Org-mode content.
12204
12205For example, you can copy a URL to the clipboard or kill-ring, then run a
12206command that downloads the page, isolates the “readable” content with
12207@command{eww-readable}, converts it to Org-mode content with Pandoc, and
12208displays it in an Org-mode buffer. Another command does all of that but
12209inserts it as an Org entry instead of displaying it in a new buffer.")
12210 (license license:gpl3+)))
12211
12212(define-public emacs-blimp
12213 (let ((commit "e420763d6d18b5d1be552cdbc47f91418343db03"))
12214 (package
12215 (name "emacs-blimp")
12216 (version (git-version "0.0.0" "1" commit))
12217 (source
12218 (origin
12219 (method git-fetch)
12220 (uri (git-reference
12221 (url "https://github.com/walseb/blimp")
12222 (commit commit)))
12223 (file-name (git-file-name name version))
12224 (sha256
12225 (base32
12226 "09wmhpym516b81dfq8smdmysh1fn610dzlyvyl2rkx8600f0fizd"))))
12227 (build-system emacs-build-system)
12228 (propagated-inputs
12229 `(("emacs-eimp" ,emacs-eimp)))
12230 (home-page "https://github.com/walseb/blimp")
12231 (synopsis "Emacs wrapper around all Imagemagick commands")
12232 (description "Blimp (Bustling Image Manipulation Package) is a complete
12233wrapper around all Imagemagick commands with descriptions, autocompletion (for
12234some commands) and hints displayed in prompt using @command{eimp.el} to
12235execute its commands and resize images.")
12236 (license license:gpl3+))))
12237
12238(define-public emacs-synosaurus
12239 (let ((commit "8bf95b935976ec0a1964cf175ed57cc5f6f93bdb"))
12240 (package
12241 (name "emacs-synosaurus")
12242 (version (git-version "0.1.0" "1" commit))
12243 (source
12244 (origin
12245 (method git-fetch)
12246 (uri (git-reference
12247 (url "https://github.com/hpdeifel/synosaurus")
12248 (commit commit)))
12249 (file-name (git-file-name name version))
12250 (sha256
12251 (base32
12252 "15by9jccab6kyplxa6k0glzaivxkqdigl33gl2qi2cvy6f2q7gva"))))
12253 (build-system emacs-build-system)
12254 (propagated-inputs
12255 `(("wordnet" ,wordnet)))
12256 (arguments
12257 `(#:phases
12258 (modify-phases %standard-phases
12259 (add-after 'unpack 'configure
12260 (lambda* (#:key inputs outputs #:allow-other-keys)
12261 (let ((wn (assoc-ref inputs "wordnet")))
12262 ;; .el is read-only in git.
12263 (chmod "synosaurus-wordnet.el" #o644)
12264 ;; Specify the absolute file names of the various
12265 ;; programs so that everything works out-of-the-box.
12266 (emacs-substitute-variables
12267 "synosaurus-wordnet.el"
12268 ("wordnet-command"
12269 (string-append wn "/bin/wn")))))))))
12270 (home-page "https://github.com/hpdeifel/synosaurus")
12271 (synopsis "Extensible thesaurus mode for Emacs")
12272 (description "Synosaurus is a thesaurus fontend for Emacs with pluggable
12273backends, including the @command{wordnet} offline backend.")
12274 (license license:gpl3+))))
12275
12276(define-public emacs-all-the-icons
12277 (package
12278 (name "emacs-all-the-icons")
12279 (version "3.2.0")
12280 (source
12281 (origin
12282 (method git-fetch)
12283 (uri (git-reference
12284 (url "https://github.com/domtronn/all-the-icons.el.git")
12285 (commit version)))
12286 (file-name (git-file-name name version))
12287 (sha256
12288 (base32
12289 "1sdl33117lccznj38021lwcdnpi9nxmym295q6y460y4dm4lx0jn"))))
12290 (build-system emacs-build-system)
12291 (arguments
12292 `(#:include '("\\.el$" "^data/" "^fonts/")
12293 ;; Compiling "test/" fails with "Symbol’s value as variable is void:
12294 ;; all-the-icons--root-code". Ignoring tests.
12295 #:exclude '("^test/")
12296 #:tests? #f))
12297 (propagated-inputs
12298 `(("f" ,emacs-f)
12299 ("memoize" ,emacs-memoize)))
12300 (home-page "https://github.com/domtronn/all-the-icons.el")
12301 (synopsis "Collect icon fonts and propertize them within Emacs")
12302 (description "All-the-icons is a utility package to collect various icon
12303fonts and propertize them within Emacs. Icon fonts allow you to propertize
12304and format icons the same way you would normal text. This enables things such
12305as better scaling of and anti aliasing of the icons.")
12306 ;; Package is released under Expat license. Elisp files are licensed
12307 ;; under GPL3+. Fonts come with various licenses: Expat for
12308 ;; "all-the-icons.ttf" and "file-icons.ttf", Apache License 2.0 for
12309 ;; "material-design-icons.ttf", and SIL OFL 1.1 for "fontawesome.ttf",
12310 ;; "ocitcons.ttf" and "weathericons.ttf".
12311 (license
12312 (list license:expat license:gpl3+ license:silofl1.1 license:asl2.0))))
12313
12314(define-public emacs-powerline
12315 (package
12316 (name "emacs-powerline")
12317 (version "2.4")
12318 (source
12319 (origin
12320 (method git-fetch)
12321 (uri (git-reference
12322 (url "https://github.com/milkypostman/powerline.git")
12323 (commit version)))
12324 (file-name (git-file-name name version))
12325 (sha256
12326 (base32
12327 "1hp3xp18943n0rlggz55150020ivw8gvi1vyxkr4z8xhpwq4gaar"))))
12328 (build-system emacs-build-system)
12329 (home-page "https://github.com/milkypostman/powerline/")
12330 (synopsis "Mode-line plugin for Emacs")
12331 (description "Powerline is a utility plugin which allows you to create
12332a better-looking, more functional Emacs mode-line. A collection of predefined
12333themes comes with the package.")
12334 (license license:gpl3+)))
12335
12336(define-public emacs-spaceline
12337 (package
12338 (name "emacs-spaceline")
12339 (version "2.0.1")
12340 (source
12341 (origin
12342 (method git-fetch)
12343 (uri (git-reference
12344 (url "https://github.com/TheBB/spaceline.git")
12345 (commit (string-append "v" version))))
12346 (file-name (git-file-name name version))
12347 (sha256
12348 (base32
12349 "1q8r95zfrh0vxna5ml2pq9b9f66clfqcl4d2qy2aizkvzyxg6skl"))))
12350 (build-system emacs-build-system)
12351 (propagated-inputs
12352 `(("dash" ,emacs-dash)
12353 ("powerline" ,emacs-powerline)
12354 ("s" ,emacs-s)))
12355 (home-page "https://github.com/TheBB/spaceline")
12356 (synopsis "Powerline theme from Spacemacs")
12357 (description "Spaceline provides Spacemacs' mode-line theme.
12358This package provides features for three kinds of users.
12359
12360@itemize
12361@item You just want to use the Spacemacs mode-line theme and forget about it.
12362@item You want to use something similar to the Spacemacs mode-line theme, but
12363with a handful of easy tweaks.
12364@item You want an easy-to-use library for building your own mode-line from
12365scratch, and you think the Spacemacs theme looks good.
12366@end itemize")
12367 (license license:gpl3+)))
12368
12369(define-public emacs-column-marker
12370 (package
12371 (name "emacs-column-marker")
12372 (version "9")
12373 (source
12374 (origin
12375 (method url-fetch)
12376 (uri "https://www.emacswiki.org/emacs/download/column-marker.el")
12377 (sha256 (base32 "05bv198zhqw5hqq6cr11mhz02dpca74hhp1ycwq369m0yb2naxy9"))))
12378 (build-system emacs-build-system)
12379 (home-page "https://www.emacswiki.org/emacs/ColumnMarker")
12380 (synopsis "Emacs mode for highlighting columns")
12381 (description
12382 "With @code{column-marker.el} you can highlight any number of text columns.
12383Three such highlight column markers are provided by default. This is
12384especially useful for languages like COBOL or Fortran where certain columns
12385have special meaning. It is also handy for aligning text across long vertical
12386distances. Multi-column characters, such as @kbd{TAB} are treated
12387correctly.")
12388 (license license:gpl2+)))
12389
12390(define-public emacs-slime-repl-ansi-color
12391 (let ((commit "ad03263f5d4de473bc173b64a6fc3dc1106393d7"))
12392 (package
12393 (name "emacs-slime-repl-ansi-color")
12394 (version (git-version "0.0.0" "1" commit))
12395 (source (origin
12396 (method git-fetch)
12397 (uri (git-reference
12398 (url "https://github.com/deadtrickster/slime-repl-ansi-color")
12399 (commit commit)))
12400 (file-name (git-file-name name version))
12401 (sha256
12402 (base32
12403 "0bpg7gxz310x7bnlg324c507sxc5gxwwz6h64h6kdq141r73vbi4"))))
12404 (build-system emacs-build-system)
12405 (home-page "https://github.com/deadtrickster/slime-repl-ansi-color")
12406 (synopsis "Color ANSI codes in the REPL of SLIME")
12407 (description "Color ANSI codes in the REPL of SLIME")
12408 (license license:gpl2+))))
12409
12410(define-public emacs-helm-slime
12411 (let ((commit "9980925f3e5f6ac5a30369d2a544e82006a79c76"))
12412 (package
12413 (name "emacs-helm-slime")
12414 (version (git-version "0.0.0" "1" commit))
12415 (source (origin
12416 (method git-fetch)
12417 (uri (git-reference
12418 (url "https://github.com/emacs-helm/helm-slime")
12419 (commit commit)))
12420 (file-name (git-file-name name version))
12421 (sha256
12422 (base32
12423 "0xa07gpfkzwn522x9573mq5mfxvbawdgd0m93gqj6w5a14wk8zzh"))))
12424 (build-system emacs-build-system)
12425 (propagated-inputs
12426 `(("emacs-helm" ,emacs-helm)
12427 ("emacs-slime" ,emacs-slime)))
12428 (home-page "https://github.com/emacs-helm/helm-slime")
12429 (synopsis "Helm for SLIME, the Superior Lisp Interaction Mode for Emacs")
12430 (description "Helm-SLIME defines a few new commands:
12431
12432@itemize
12433@item helm-slime-complete: Select a symbol from the SLIME completion systems.
12434@item helm-slime-list-connections: Yet another slime-list-connections with Helm.
12435@item: helm-slime-apropos: Yet another slime-apropos with Helm.
12436@item helm-slime-repl-history: Select an input from the SLIME REPL history and insert it.
12437@end itemize\n")
12438 (license license:gpl3+))))
12439
12440(define-public emacs-gtk-look
12441 (package
12442 (name "emacs-gtk-look")
12443 (version "29")
12444 (source (origin
12445 (method url-fetch)
12446 (uri "https://download.tuxfamily.org/user42/gtk-look.el")
12447 (sha256
12448 (base32
12449 "14p2nwrd51cr1v06fxbjjn6jdrkf9d6vcxhmscm0kl677s25ypsp"))))
12450 (build-system emacs-build-system)
12451 (arguments
12452 `(#:phases
12453 (modify-phases %standard-phases
12454 (add-after 'unpack 'configure
12455 (lambda _
12456 ;; File is read-only.
12457 (chmod "gtk-look.el" #o644)
12458 (emacs-substitute-variables "gtk-look.el"
12459 ("gtk-lookup-devhelp-indices"
12460 '(list (expand-file-name "~/.guix-profile/share/gtk-doc/html/*/*.devhelp*"))))
12461 #t)))))
12462 (home-page "http://user42.tuxfamily.org/gtk-look/index.html")
12463 (synopsis "Find and display HTML documentation for GTK, GNOME and Glib")
12464 (description "@command{gtk-look} finds and displays HTML documentation for
12465GTK, GNOME and Glib functions and variables in Emacs, similar to what
12466info-lookup-symbol does for info files (C-h S). The documentation is expected
12467to be devhelp indexes with HTML files. The location of the indexes can be
12468customized. In addition to C code development @command{gtk-look} is good for
12469
12470@itemize
12471@item @command{perl-gtk2}, recognising class funcs like
12472@command{Gtk2::Label->new} and bare method names like @command{set_text}.
12473@item @command{guile-gnome}, recognising methods like @command{set-text} and
12474classes like @command{<gtk-window>}.
12475@end itemize\n")
12476 (license license:gpl3+)))
12477
12478(define-public emacs-ov
12479 (package
12480 (name "emacs-ov")
12481 (version "1.0.6")
12482 (source (origin
12483 (method git-fetch)
12484 (uri (git-reference
12485 (url "https://github.com/ShingoFukuyama/ov.el.git")
12486 (commit version)))
12487 (file-name (git-file-name name version))
12488 (sha256
12489 (base32
12490 "0qxk2rf84j86syxi8xknsq252irwg7sz396v3bb4wqz4prpj0kzc"))))
12491 (build-system emacs-build-system)
12492 (home-page "https://github.com/ShingoFukuyama/ov.el")
12493 (synopsis "Overlay library for Emacs Lisp")
12494 (description "@code{ov.el} provides a simple way to manipulate overlays in
12495Emacs.")
12496 (license license:gpl3+)))
12497
12498(define-public emacs-matrix-client
85a3d63f 12499 (let ((commit "a0623667b07a4bf60980c97b078e9faed97ace79"))
eeb883cb
RW
12500 (package
12501 (name "emacs-matrix-client")
85a3d63f 12502 (version (git-version "0.0.0" "3" commit))
eeb883cb
RW
12503 (source (origin
12504 (method git-fetch)
12505 (uri (git-reference
12506 (url "https://github.com/jgkamat/matrix-client-el.git")
12507 (commit commit)))
12508 (file-name (git-file-name name version))
12509 (sha256
12510 (base32
85a3d63f 12511 "1zya8id3y9wzjaj7nplq7br6nhm3lsskv0fkn1xr1y77fzcfgcdb"))))
eeb883cb
RW
12512 (build-system emacs-build-system)
12513 (propagated-inputs
12514 `(("a" ,emacs-a)
e6ab20f7 12515 ("anaphora" ,emacs-anaphora)
eeb883cb
RW
12516 ("dash" ,emacs-dash)
12517 ("esxml" ,emacs-esxml)
12518 ("f" ,emacs-f)
12519 ("frame-purpose" ,emacs-frame-purpose)
12520 ("ht" ,emacs-ht)
12521 ("ov" ,emacs-ov)
12522 ("rainbow-identifiers" ,emacs-rainbow-identifiers)
12523 ("request" ,emacs-request)
12524 ("s" ,emacs-s)
12525 ("tracking" ,emacs-tracking)))
12526 (home-page "https://github.com/jgkamat/matrix-client-el")
12527 (synopsis "Matrix client for Emacs")
12528 (description "@code{matrix-client} is a simple chat UI to Matrix.org
12529rooms. It also provides an API which allows Emacs to seamlessly create
12530RPC channels with users and other software.")
12531 (license license:gpl3+))))
12532
12533(define-public emacs-sesman
12534 (package
12535 (name "emacs-sesman")
12536 (version "0.3.3")
12537 (source
12538 (origin
12539 (method git-fetch)
12540 (uri (git-reference
12541 (url "https://github.com/vspinu/sesman.git")
12542 (commit (string-append "v" version))))
12543 (file-name (git-file-name name version))
12544 (sha256
12545 (base32
12546 "0r32f8ma9ddczxrrdz0nadp14j3zmk10q1ch02gb82synkx3xdra"))))
12547 (build-system emacs-build-system)
12548 (arguments
12549 `(#:tests? #t
12550 #:test-command '("make" "test")))
12551 (home-page "https://github.com/vspinu/sesman")
12552 (synopsis "Session manager for Emacs based IDEs")
12553 (description "Sesman provides facilities for session management and
12554interactive session association with the current contexts (project, directory,
12555buffers). While sesman can be used to manage arbitrary sessions, it primary
12556targets the Emacs based IDEs (CIDER, ESS, Geiser, Robe, SLIME etc.)")
12557 (license license:gpl3+)))
12558
12559(define-public emacs-buttercup
12560 (package
12561 (name "emacs-buttercup")
12562 (version "1.16")
12563 (source
12564 (origin
12565 (method git-fetch)
12566 (uri (git-reference
12567 (url "https://github.com/jorgenschaefer/emacs-buttercup.git")
12568 (commit (string-append "v" version))))
12569 (file-name (git-file-name name version))
12570 (sha256
12571 (base32
12572 "0dckgcyzsav6ld78bcyrrygy1cz1jvqgav6vy8f6klpmk3r8xrl1"))))
12573 (build-system emacs-build-system)
12574 (arguments
12575 `(#:tests? #t
12576 #:test-command '("make" "test")
12577 #:phases
12578 (modify-phases %standard-phases
12579 (add-after 'install 'install-bin
12580 (lambda* (#:key outputs #:allow-other-keys)
12581 (install-file "bin/buttercup"
12582 (string-append (assoc-ref outputs "out") "/bin"))
12583 #t)))))
12584 (home-page "https://github.com/jorgenschaefer/emacs-buttercup")
12585 (synopsis "Behavior driven emacs lisp testing framework")
12586 (description "Buttercup is a behavior-driven development framework for
12587testing Emacs Lisp code. It allows to group related tests so they can share
12588common set-up and tear-down code, and allows the programmer to \"spy\" on
12589functions to ensure they are called with the right arguments during testing.")
12590 (license license:gpl3+)))
12591
12592(define-public emacs-wordnut
12593 (let ((commit "feac531404041855312c1a046bde7ea18c674915")
12594 (revision "0"))
12595 (package
12596 (name "emacs-wordnut")
12597 (version (git-version "0.1" revision commit))
12598 (home-page "https://github.com/gromnitsky/wordnut")
12599 (source (origin
12600 (method git-fetch)
12601 (uri (git-reference (url home-page) (commit commit)))
12602 (sha256
12603 (base32
12604 "1jl0b6g64a9w0q7bfvwha67vgws5xd15b7mkfyb5gkz3pymqhfxn"))
12605 (patches
12606 (search-patches "emacs-wordnut-require-adaptive-wrap.patch"))
12607 (file-name (git-file-name name version))))
12608 (build-system emacs-build-system)
12609 (propagated-inputs
12610 `(("wordnet" ,wordnet)
12611 ("emacs-adaptive-wrap" ,emacs-adaptive-wrap)))
12612 (synopsis "Major mode for WordNet")
12613 (description "This Emacs package provides an interface for
12614@code{wordnet}. Features include completion, if the query is not found
12615too ambiguous and navigation in the result buffer.")
12616 (license license:gpl3+))))
12617
12618(define-public emacs-frame-purpose
12619 (package
12620 (name "emacs-frame-purpose")
12621 (version "1.0")
12622 (source (origin
12623 (method git-fetch)
12624 (uri (git-reference
12625 (url "https://github.com/alphapapa/frame-purpose.el.git")
12626 (commit version)))
12627 (sha256
12628 (base32
12629 "0jq2aam1yvccw887ighd1wm2xkvk5bv53ffiz3crcl16a255aj4q"))
12630 (file-name (git-file-name name version))))
12631 (build-system emacs-build-system)
12632 (inputs
12633 `(("dash" ,emacs-dash)))
12634 (synopsis "Purpose-specific frames for Emacs")
12635 (description "@code{frame-purpose} makes it easy to open purpose-specific
12636frames that only show certain buffers, e.g. by buffers’ major mode, their
12637filename or directory, etc, with custom frame/X-window titles, icons, and
12638other frame parameters.")
12639 (home-page "https://github.com/alphapapa/frame-purpose.el")
12640 (license license:gpl3+)))
12641
12642(define-public emacs-arduino-mode
12643 (let ((commit "3e2bad4569ad26e929e6db2cbcff0d6d36812698")) ;no release yet
12644 (package
12645 (name "emacs-arduino-mode")
12646 (version (git-version "0" "0" commit))
12647 (source (origin
12648 (method git-fetch)
12649 (uri (git-reference
12650 (url "https://github.com/bookest/arduino-mode.git")
12651 (commit commit)))
12652 (sha256
12653 (base32
12654 "1yvaqjc9hadbnnay5fprnh890xsp53kidad1zpb4a5z4a5z61n3c"))
12655 (file-name (git-file-name name version))))
12656 (build-system emacs-build-system)
12657 (synopsis "Emacs major mode for editing Arduino sketches")
12658 (description "Emacs major mode for editing Arduino sketches.")
12659 (home-page "https://github.com/bookest/arduino-mode")
12660 (license license:gpl3+))))
12661
12662(define-public emacs-general
12663 (let ((commit "675050199b5a30d54a24b58a367db32c0bdc47f5"))
12664 (package
12665 (name "emacs-general")
12666 (version (git-version "0" "0" commit))
12667 (home-page "https://github.com/noctuid/general.el")
12668 (source (origin
12669 (method git-fetch)
12670 (uri (git-reference
12671 (url (string-append home-page ".git"))
12672 (commit commit)))
12673 (sha256
12674 (base32
12675 "175yyhzk57yk1sskxh3d2jzhrh2waiibbcfsll167qxr117yji5h"))
12676 (file-name (git-file-name name version))))
12677 (build-system emacs-build-system)
12678 (synopsis "More convenient key definitions in emacs")
12679 (description "@code{general.el} provides a more convenient method for
12680binding keys in emacs (for both evil and non-evil users). Like
12681@code{use-package}, which provides a convenient, unified interface for
12682managing packages, @code{general.el} is intended to provide a convenient,
12683unified interface for key definitions. While this package does implement some
12684completely new functionality (such as the ability to make vim-style
12685keybindings under non-prefix keys with an optional timeout), its primary
12686purpose is to build on existing functionality to make key definition more
12687clear and concise. @code{general-define-key} is user-extensible and supports
12688defining multiple keys in multiple keymaps at once, implicitly wrapping key
12689strings with (@code{kbd ...}), using named prefix key sequences (like the
12690leader key in vim), and much more.")
12691 (license license:gpl3+))))
12692
12693(define-public emacs-tldr
12694 (let ((commit "398b197c8d2238628b07e1b32d0f373876279f4c"))
12695 (package
12696 (name "emacs-tldr")
12697 (version (git-version "0" "0" commit))
12698 (home-page "https://github.com/kuanyui/tldr.el")
12699 (source (origin
12700 (method git-fetch)
12701 (uri (git-reference
12702 (url (string-append home-page ".git"))
12703 (commit commit)))
12704 (sha256
12705 (base32
12706 "0iq7qlis6c6r2qkdpncrhh5vsihkhvy5x4y1y8cjb7zxkh62w33f"))
12707 (file-name (git-file-name name version))))
12708 (build-system emacs-build-system)
12709 (synopsis "Simplified and community-driven man pages for Emacs")
12710 (description "@code{emacs-tldr} allows the user to access tldr pages
12711from within emacs. The @code{tldr} pages are a community effort to simplify
12712the man pages with practical examples.")
12713 (license license:wtfpl2))))
9830f1a2
PN
12714
12715(define-public emacs-window-layout
12716 (package
12717 (name "emacs-window-layout")
12718 (version "1.4")
12719 (home-page "https://github.com/kiwanami/emacs-window-layout")
12720 (source (origin
12721 (method git-fetch)
12722 (uri (git-reference
12723 (url home-page)
12724 (commit (string-append "v" version))))
12725 (sha256
12726 (base32
12727 "0wgqi8r844lbx52fn6az8c1n8m681rp6dkfzd54wmdk1ka7zmvv6"))
12728 (file-name (git-file-name name version))))
12729 (build-system emacs-build-system)
12730 (synopsis "Simple window layout management framework for emacs")
12731 (description "A window-layout management library that can split a frame
12732or a window into some windows according to a layout recipe.")
12733 (license license:gpl3+)))
5544a07f
PN
12734
12735(define-public emacs-e2wm
12736 (package
12737 (name "emacs-e2wm")
12738 (version "1.4")
12739 (home-page "https://github.com/kiwanami/emacs-window-manager")
12740 (source (origin
12741 (method git-fetch)
12742 (uri (git-reference
12743 (url home-page)
12744 (commit (string-append "v" version))))
12745 (sha256
12746 (base32
12747 "12midsrx07pdrsr1qbl2rpi7xyhxqx08bkz7n7gf8vsmqkpfp56s"))
12748 (file-name (git-file-name name version))))
12749 (build-system emacs-build-system)
12750 (propagated-inputs
12751 `(("emacs-window-layout" ,emacs-window-layout)))
12752 (synopsis "Equilibrium Emacs Window Manager")
12753 (description "E2WM is a window manager for Emacs. It enables to
12754customize the place of pop-up window, how the windows are split, how the
12755buffers are located in the windows, keybinds to manipulate windows and
12756buffers, etc. It also has plug-ins to help your Emacs life.")
12757 (license license:gpl3+)))
3e1fcc5e
PN
12758
12759(define-public emacs-ctable
12760 (let ((commit "b8830d1ca95abb100a81bc32011bd17d5ecba000"))
12761 (package
12762 (name "emacs-ctable")
12763 (version (git-version "0.1.2" "1" commit))
12764 (home-page "https://github.com/kiwanami/emacs-ctable")
12765 (source (origin
12766 (method git-fetch)
12767 (uri (git-reference
12768 (url home-page)
12769 (commit commit)))
12770 (sha256
12771 (base32
12772 "0pg303pnqscrsbx9579hc815angszsgf9vpd2z2f8p4f4ka6a00h"))
12773 (file-name (git-file-name name version))))
12774 (build-system emacs-build-system)
12775 (synopsis "Table component for Emacs Lisp")
12776 (description "This program is a table component for Emacs Lisp. Other
12777programs can use this table component for the application UI.")
12778 (license license:gpl3+))))
8c98ce92
PN
12779
12780(define-public emacs-epc
12781 (let ((commit "e1bfa5ca163273859336e3cc89b4b6460f7f8cda"))
12782 (package
12783 (name "emacs-epc")
12784 (version (git-version "0.1.1" "1" commit))
12785 (home-page "https://github.com/kiwanami/emacs-epc")
12786 (source (origin
12787 (method git-fetch)
12788 (uri (git-reference
12789 (url home-page)
12790 (commit commit)))
12791 (sha256
12792 (base32
12793 "15nkrjgi64f829isfd6xrhl4zw8jirr8pkas7nisrbk1av868hx0"))
12794 (file-name (git-file-name name version))))
12795 (build-system emacs-build-system)
12796 (propagated-inputs
12797 `(("emacs-deferred" ,emacs-deferred)
12798 ("emacs-ctable" ,emacs-ctable)))
12799 (synopsis "RPC stack for Emacs Lisp")
12800 (description "This program is an asynchronous RPC stack for Emacs.
12801Using this RPC stack, Emacs can communicate with the peer process
12802smoothly. Because the protocol employs S-expression encoding and consists of
12803asynchronous communications, the RPC response is fairly good.")
12804 (license license:gpl3+))))
c010ec65
PN
12805
12806(define-public emacs-edbi
12807 (let ((commit "6f50aaf4bde75255221f2292c7a4ad3fa9d918c0"))
12808 (package
12809 (name "emacs-edbi")
12810 (version (git-version "0.1.3" "1" commit))
12811 (home-page "https://github.com/kiwanami/emacs-edbi")
12812 (source (origin
12813 (method git-fetch)
12814 (uri (git-reference
12815 (url home-page)
12816 (commit commit)))
12817 (sha256
12818 (base32
12819 "0x0igyvdcm4863n7zndvcv6wgzwgn7324cbfjja6xd7r0k936zdy"))
12820 (file-name (git-file-name name version))))
12821 (build-system emacs-build-system)
12822 (inputs
12823 `(("perl" ,perl)
12824 ("perl-rpc-epc-service" ,perl-rpc-epc-service)
12825 ("perl-dbi" ,perl-dbi)
12826 ;; TODO: Adding support for perl-dbd-mysql and others would
12827 ;; dramatically increase the closure size. Make several packages?
12828 ("perl-dbd-sqlite" ,perl-dbd-sqlite)))
12829 (propagated-inputs
12830 `(("emacs-e2wm" ,emacs-e2wm)
12831 ("emacs-epc" ,emacs-epc)))
12832 (arguments
12833 `(#:include '("\\.el$" "\\.pl$")
12834 #:phases
12835 (modify-phases %standard-phases
12836 (add-after 'install 'patch-path
12837 (lambda* (#:key inputs outputs #:allow-other-keys)
12838 (let ((perl (assoc-ref inputs "perl"))
12839 (dir (string-append (assoc-ref outputs "out")
12840 "/share/emacs/site-lisp/guix.d/edbi-"
12841 ,version)))
12842 (substitute* (string-append dir "/edbi.el")
12843 (("\"perl\"") (string-append "\"" perl "/bin/perl\"")))
12844 (chmod (string-append dir "/edbi-bridge.pl") #o555)
12845 (wrap-program (string-append dir "/edbi-bridge.pl")
12846 `("PERL5LIB" ":" prefix (,(getenv "PERL5LIB"))))
12847 #t))))))
12848 (synopsis "Database Interface for Emacs Lisp")
12849 (description "This program connects the database server through Perl's
12850DBI, and provides DB-accessing API and the simple management UI.")
12851 (license license:gpl3+))))
3d540c48
PN
12852
12853(define-public emacs-edbi-sqlite
12854 (let ((commit "52cb9ca1af7691b592f2cfd2f007847e7a4ccd5f"))
12855 (package
12856 (name "emacs-edbi-sqlite")
12857 (version (git-version "0.1.1" "1" commit))
12858 (home-page "https://github.com/proofit404/edbi-sqlite")
12859 (source (origin
12860 (method git-fetch)
12861 (uri (git-reference
12862 (url home-page)
12863 (commit commit)))
12864 (sha256
12865 (base32
12866 "1vll81386fx90lq5sy4rlxcik6mvw7zx5cc51f0yaca9bkcckp51"))
12867 (file-name (git-file-name name version))))
12868 (build-system emacs-build-system)
12869 (propagated-inputs
12870 `(("emacs-edbi" ,emacs-edbi)))
12871 (synopsis "Open SQLite files in Emacs")
12872 (description "This package is a convenience wrapper for @command{edbi}
12873to open SQLite databases.")
12874 (license license:gpl3+))))
f896abc7
LC
12875
12876(define-public emacs-nix-mode
12877 (package
12878 (name "emacs-nix-mode")
12879 (version "1.2.2")
12880 (source
12881 (origin
12882 (method url-fetch)
12883 (uri (string-append "https://github.com/NixOS/nix-mode/archive/v"
12884 version ".tar.gz"))
12885 (file-name (string-append name "-" version ".tar.gz"))
12886 (sha256
12887 (base32
12888 "06aqz0czznsj8835jqnk794sy2p6pa8kxfqwh0nl5d5vxivria6z"))))
12889 (build-system emacs-build-system)
12890 (inputs
12891 `(("emacs-company" ,emacs-company)
12892 ("emacs-mmm-mode" ,emacs-mmm-mode)))
12893 (home-page "https://github.com/NixOS/nix-mode")
12894 (synopsis "Emacs major mode for editing Nix expressions")
12895 (description "@code{nixos-mode} provides an Emacs major mode for editing
12896Nix expressions. It supports syntax highlighting, indenting and refilling of
12897comments.")
12898 (license license:lgpl2.1+)))