gnu: emacs-git-modes: 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")
324 (version "2.2.0")
325 (source (origin
326 (method url-fetch)
327 (uri (string-append
328 "https://github.com/magit/magit-svn/archive/"
329 version ".tar.gz"))
330 (file-name (string-append name "-" version ".tar.gz"))
331 (sha256
332 (base32
333 "1c3n377v436zaxamlsz04y1ahdhp96x1vd43zaryv4y10m02ba47"))))
334 (build-system trivial-build-system)
335 (native-inputs `(("emacs" ,emacs-minimal)
336 ("tar" ,tar)
337 ("gzip" ,gzip)))
338 (propagated-inputs `(("dash" ,emacs-dash)
339 ("with-editor" ,emacs-with-editor)
340 ("magit" ,emacs-magit)))
341 (arguments
342 `(#:modules ((guix build utils)
343 (guix build emacs-utils))
344
345 #:builder
346 (begin
347 (use-modules (guix build utils)
348 (guix build emacs-utils))
349
350 (let* ((tar (string-append (assoc-ref %build-inputs "tar")
351 "/bin/tar"))
352 (PATH (string-append (assoc-ref %build-inputs "gzip")
353 "/bin"))
354 (emacs (string-append (assoc-ref %build-inputs "emacs")
355 "/bin/emacs"))
356 (magit (string-append (assoc-ref %build-inputs "magit")
357 "/share/emacs/site-lisp"))
358 (dash (string-append (assoc-ref %build-inputs "dash")
359 "/share/emacs/site-lisp/guix.d/dash-"
360 ,(package-version emacs-dash)))
361 (with-editor (string-append (assoc-ref %build-inputs "with-editor")
362 "/share/emacs/site-lisp/guix.d/with-editor-"
363 ,(package-version emacs-with-editor)))
364 (source (assoc-ref %build-inputs "source"))
365 (lisp-dir (string-append %output "/share/emacs/site-lisp")))
366 (setenv "PATH" PATH)
367 (invoke tar "xvf" source)
368
369 (install-file (string-append "magit-svn-" ,version "/magit-svn.el")
370 lisp-dir)
371
372 (with-directory-excursion lisp-dir
373 (parameterize ((%emacs emacs))
374 (emacs-generate-autoloads ,name lisp-dir)
375 (setenv "EMACSLOADPATH"
376 (string-append ":" magit ":" dash ":" with-editor))
377 (emacs-batch-eval '(byte-compile-file "magit-svn.el"))))
378 #t))))
379 (home-page "https://github.com/magit/magit-svn")
380 (synopsis "Git-SVN extension to Magit")
381 (description
382 "This package is an extension to Magit, the Git Emacs mode, providing
383support for Git-SVN.")
384 (license license:gpl3+)))
385
386(define-public magit-svn
387 (deprecated-package "magit-svn" emacs-magit-svn))
388
389(define-public emacs-magit-popup
390 (package
391 (name "emacs-magit-popup")
392 (version "2.12.5")
393 (source (origin
394 (method git-fetch)
395 (uri (git-reference
396 (url "https://github.com/magit/magit-popup.git")
397 (commit (string-append "v" version))))
398 (file-name (git-file-name name version))
399 (sha256
400 (base32
401 "13riknyqr6vxqll80sfhvz165flvdz367rbd0pr5slb01bnfsi2i"))))
402 (build-system emacs-build-system)
403 (arguments
404 `(#:phases
405 (modify-phases %standard-phases
406 (add-before 'install 'make-info
407 (lambda _
408 (invoke "make" "info"))))))
409 (native-inputs
410 `(("texinfo" ,texinfo)))
411 (propagated-inputs
412 `(("emacs-dash" ,emacs-dash)))
413 (home-page "https://github.com/magit/magit-popup")
414 (synopsis "Define prefix-infix-suffix command combos")
415 (description
416 "This library implements a generic interface for toggling switches and
417setting options and then invoking an Emacs command which does something with
418these arguments. The prototypical use is for the command to call an external
419process, passing on the arguments as command line arguments.")
420 (license license:gpl3+)))
421
422(define-public emacs-treepy
423 (package
424 (name "emacs-treepy")
425 (version "0.1.1")
426 (source (origin
427 (method git-fetch)
428 (uri (git-reference
429 (url "https://github.com/volrath/treepy.el.git")
430 (commit version)))
431 (file-name (git-file-name name version))
432 (sha256
433 (base32
434 "04zwm6gx9pxfvgfkizx6pvb1ql8pqxjyzqp8flz0432x0gq5nlxk"))))
435 (build-system emacs-build-system)
436 (home-page
437 "https://github.com/volrath/treepy.el")
438 (synopsis "Tree traversal tools")
439 (description
440 "Generic tools for recursive and iterative tree traversal based on
441clojure.walk and clojure.zip respectively.")
442 (license license:gpl3+)))
443
444(define-public emacs-graphql
445 (package
446 (name "emacs-graphql")
447 (version "0.1.1")
448 (source (origin
449 (modules '((guix build utils)))
450 ;; Remove examples file with references to external packages as
451 ;; they do not exist at compilation time.
452 (snippet
453 '(begin (delete-file "examples.el")
454 #t))
455 (method git-fetch)
456 (uri (git-reference
457 (url "https://github.com/vermiculus/graphql.el.git")
458 (commit version)))
459 (file-name (git-file-name name version))
460 (sha256
461 (base32
462 "0sp0skc1rnhi39szfbq1i99pdgd3bhn4c15cff05iqhjy2d4hniw"))))
463 (build-system emacs-build-system)
464 (home-page
465 "https://github.com/vermiculus/graphql.el")
466 (synopsis "GraphQL utilities")
467 (description
468 "GraphQL.el provides a generally-applicable domain-specific language for
469creating and executing GraphQL queries against your favorite web services.
470GraphQL is a data query language and runtime designed and used to request and
471deliver data to mobile and web apps.")
472 (license license:gpl3+)))
473
474(define-public emacs-ghub
475 (package
476 (name "emacs-ghub")
477 (version "2.0.1")
478 (source (origin
479 (method url-fetch)
480 (uri (string-append
481 "https://github.com/magit/ghub/archive/v"
482 version ".tar.gz"))
483 (file-name (string-append name "-" version ".tar.gz"))
484 (sha256
485 (base32
486 "0d0qj5r1bm2aidi61rigrdaycxnyb7y1ivb3h8rpvvapsf8sk7z0"))))
487 (build-system emacs-build-system)
488 (arguments
489 `(#:phases
490 (modify-phases %standard-phases
491 (add-before 'install 'make-info
492 (lambda _
493 (invoke "make" "info"))))))
494 (native-inputs
495 `(("texinfo" ,texinfo)))
496 (home-page "https://github.com/magit/ghub")
497 (synopsis "Emacs client library for Github API and Gitlab API")
498 (description
499 "This package provides 2 files: @file{ghub.el} and @file{glab.el},
500which are the libraries that provide basic support for using the Github and
501Gitlab APIs from Emacs packages. It abstracts access to API resources using
502only a handful of functions that are not resource-specific.")
503 (license license:gpl3+)))
504
505(define-public emacs-scribble-mode
506 (let ((commit "34e9e5edb921813b6483e0fefa848efb6ee4b314")
507 (version "0.0")
508 (revision 0))
509 (package
510 (name "emacs-scribble-mode")
511 (version (if (zero? revision)
512 version
513 (string-append version "-"
514 (number->string revision)
515 "." (string-take commit 7))))
516 (source (origin
517 (method git-fetch)
518 (uri (git-reference
519 (url "https://github.com/emacs-pe/scribble-mode.git")
520 (commit commit)))
521 (sha256
522 (base32
523 "0598byqpz2q6yi2q4dwd77jj9z3n99z34d3an51s9m2za0nh1qvp"))))
524 (build-system emacs-build-system)
525 (home-page "https://github.com/emacs-pe/scribble-mode")
526 (synopsis "Emacs mode for editing the Scribble documentation syntax.")
527 (description
528 "This package provides basic syntax highlighting and editing support
529for editing Racket's Scribble documentation syntax in Emacs.")
530 (license license:gpl3+))))
531
532(define-public emacs-haskell-mode
533 (package
534 (name "emacs-haskell-mode")
535 (version "16.1")
536 (source (origin
537 (method url-fetch)
538 (file-name (string-append name "-" version ".tar.gz"))
539 (uri (string-append
540 "https://github.com/haskell/haskell-mode/archive/v"
541 version ".tar.gz"))
542 (sha256
543 (base32 "0g6lcjw7lcgavv3yrd8xjcyqgfyjl787y32r1z14amw2f009m78h"))
544 (patches
545 (search-patches ; backport test failure fixes
546 "haskell-mode-unused-variables.patch"
547 "haskell-mode-make-check.patch"))))
548 (inputs
549 `(("emacs-el-search" ,emacs-el-search) ; for tests
550 ("emacs-stream" ,emacs-stream))) ; for tests
551 (propagated-inputs
552 `(("emacs-dash" ,emacs-dash)))
553 (native-inputs
554 `(("emacs" ,emacs-minimal)
555 ("texinfo" ,texinfo)))
556 (build-system gnu-build-system)
557 (arguments
558 `(#:make-flags (list (string-append "EMACS="
559 (assoc-ref %build-inputs "emacs")
560 "/bin/emacs"))
561 #:modules ((ice-9 match)
562 (srfi srfi-26)
563 ,@%gnu-build-system-modules)
564 #:phases
565 (modify-phases %standard-phases
566 (delete 'configure)
567 (add-before
568 'build 'pre-build
569 (lambda* (#:key inputs #:allow-other-keys)
570 (define (el-dir store-dir)
571 (match (find-files store-dir "\\.el$")
572 ((f1 f2 ...) (dirname f1))
573 (_ "")))
574
575 (let ((sh (string-append (assoc-ref inputs "bash") "/bin/sh")))
576 (define emacs-prefix? (cut string-prefix? "emacs-" <>))
577
578 (setenv "SHELL" "sh")
579 (setenv "EMACSLOADPATH"
580 (string-concatenate
581 (map (match-lambda
582 (((? emacs-prefix? name) . dir)
583 (string-append (el-dir dir) ":"))
584 (_ ""))
585 inputs)))
586 (substitute* (find-files "." "\\.el") (("/bin/sh") sh))
587 ;; embed filename to fix test failure
588 (let ((file "tests/haskell-cabal-tests.el"))
589 (substitute* file
590 (("\\(buffer-file-name\\)")
591 (format #f "(or (buffer-file-name) ~s)" file))))
592 #t)))
593 (replace
594 'install
595 (lambda* (#:key outputs #:allow-other-keys)
596 (let* ((out (assoc-ref outputs "out"))
597 (el-dir (string-append out "/share/emacs/site-lisp"))
598 (doc (string-append
599 out "/share/doc/haskell-mode-" ,version))
600 (info (string-append out "/share/info")))
601 (define (copy-to-dir dir files)
602 (for-each (lambda (f)
603 (install-file f dir))
604 files))
605
606 (with-directory-excursion "doc"
607 (invoke "makeinfo" "haskell-mode.texi")
608 (install-file "haskell-mode.info" info))
609 (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md"))
610 (copy-to-dir el-dir (find-files "." "\\.elc?"))
611 ;; These are part of other packages.
612 (with-directory-excursion el-dir
613 (for-each delete-file '("dash.el" "ert.el")))
614 #t))))))
615 (home-page "https://github.com/haskell/haskell-mode")
616 (synopsis "Haskell mode for Emacs")
617 (description
618 "This is an Emacs mode for editing, debugging and developing Haskell
619programs.")
620 (license license:gpl3+)))
621
622(define-public haskell-mode
623 (deprecated-package "haskell-mode" emacs-haskell-mode))
624
625(define-public emacs-flycheck
626 (package
627 (name "emacs-flycheck")
628 (version "31")
629 (source (origin
630 (method url-fetch)
631 (uri (string-append
632 "https://github.com/flycheck/flycheck/releases/download/"
633 version "/flycheck-" version ".tar"))
634 (sha256
635 (base32
636 "01rnwan16m7cyyrfca3c5c60mbj2r3knkpzbhji2fczsf0wns240"))
637 (modules '((guix build utils)))
638 (snippet `(begin
639 ;; Change 'flycheck-version' so that it does not
640 ;; attempt to get its version from pkg-info.el.
641 (substitute* "flycheck.el"
642 (("\\(pkg-info-version-info 'flycheck\\)")
643 (string-append "\"" ,version "\"")))
644 #t))))
645 (build-system emacs-build-system)
646 (propagated-inputs
647 `(("emacs-dash" ,emacs-dash)))
648 (home-page "https://www.flycheck.org")
649 (synopsis "On-the-fly syntax checking")
650 (description
651 "This package provides on-the-fly syntax checking for GNU Emacs. It is a
652replacement for the older Flymake extension which is part of GNU Emacs, with
653many improvements and additional features.
654
655Flycheck provides fully-automatic, fail-safe, on-the-fly background syntax
656checking for over 30 programming and markup languages with more than 70
657different tools. It highlights errors and warnings inline in the buffer, and
658provides an optional IDE-like error list.")
659 (license license:gpl3+))) ;+GFDLv1.3+ for the manual
660
661(define-public emacs-a
662 (package
663 (name "emacs-a")
664 (version "0.1.1")
665 (source (origin
666 (method git-fetch)
667 (uri (git-reference
668 (url "https://github.com/plexus/a.el.git")
669 (commit (string-append "v" version))))
670 (file-name (git-file-name name version))
671 (sha256
672 (base32
673 "00v9w6qg3bkwdhypq0ssf0phdh0f4bcq59c20lngd6vhk0204dqi"))))
674 (build-system emacs-build-system)
675 (home-page "https://github.com/plexus/a.el/")
676 (synopsis
677 "Emacs library for dealing with association lists and hash tables")
678 (description "@code{emacs-a} provides Emacs Lisp functions for dealing
679with associative structures in a uniform and functional way. These functions
680can take association lists, hash tables, and in some cases vectors (where the
681index is considered the key).")
682 (license license:gpl3+)))
683
60ceff7e
NG
684(define-public emacs-anaphora
685 (package
686 (name "emacs-anaphora")
687 (version "1.0.4")
688 (source
689 (origin
690 (method git-fetch)
691 (uri (git-reference
692 (url "https://github.com/rolandwalker/anaphora.git")
693 (commit (string-append "v" version))))
694 (file-name (git-file-name name version))
695 (sha256
696 (base32
697 "11fgiy029sqz7nvdm7dcal95lacryz9zql0x5h05z48nrrcl4bib"))))
698 (build-system emacs-build-system)
699 (home-page "https://github.com/rolandwalker/anaphora/")
700 (synopsis "Anaphoric expressions for Emacs Lisp")
701 (description "@code{emacs-anaphora} implements anaphoric expressions for
702Emacs Lisp.
703
704Anaphoric expressions implicitly create one or more temporary variables which
705can be referred to during the expression. This technique can improve clarity
706in certain cases. It also enables recursion for anonymous functions.")
707 (license license:public-domain)))
708
eeb883cb
RW
709\f
710;;;
711;;; Web browsing.
712;;;
713
714(define-public emacs-w3m
715 ;; Emacs-w3m follows a "rolling release" model.
716 (package
717 (name "emacs-w3m")
718 (version "2018-11-11")
719 (source (origin
720 (method cvs-fetch)
721 (uri (cvs-reference
722 (root-directory
723 ":pserver:anonymous@cvs.namazu.org:/storage/cvsroot")
724 (module "emacs-w3m")
725 (revision version)))
726 (file-name (string-append name "-" version "-checkout"))
727 (sha256
728 (base32
729 "0nvahdbjs12zg7zsk4gql02mvnv56cf1rwj2f5p42lwp3xvswiwp"))))
730 (build-system gnu-build-system)
731 (native-inputs `(("autoconf" ,autoconf)
732 ("texinfo" ,texinfo)
733 ("emacs" ,emacs-minimal)))
734 (inputs `(("w3m" ,w3m)
735 ("imagemagick" ,imagemagick)))
736 (arguments
737 `(#:modules ((guix build gnu-build-system)
738 (guix build utils)
739 (guix build emacs-utils))
740 #:imported-modules (,@%gnu-build-system-modules
741 (guix build emacs-utils))
742 #:configure-flags
743 (let ((out (assoc-ref %outputs "out")))
744 (list (string-append "--with-lispdir="
745 out "/share/emacs/site-lisp")
746 (string-append "--with-icondir="
747 out "/share/images/emacs-w3m")
748 ;; Leave .el files uncompressed, otherwise GC can't
749 ;; identify run-time dependencies. See
750 ;; <http://lists.gnu.org/archive/html/guix-devel/2015-12/msg00208.html>
751 "--without-compress-install"))
752 #:tests? #f ; no check target
753 #:phases
754 (modify-phases %standard-phases
755 (add-after 'unpack 'autoconf
756 (lambda _
757 (invoke "autoconf")))
758 (add-before 'configure 'support-emacs!
759 (lambda _
760 ;; For some reason 'AC_PATH_EMACS' thinks that 'Emacs 26' is
761 ;; unsupported.
762 (substitute* "configure"
763 (("EMACS_FLAVOR=unsupported")
764 "EMACS_FLAVOR=emacs"))
765 #t))
766 (add-before 'build 'patch-exec-paths
767 (lambda* (#:key inputs outputs #:allow-other-keys)
768 (let ((out (assoc-ref outputs "out"))
769 (w3m (assoc-ref inputs "w3m"))
770 (imagemagick (assoc-ref inputs "imagemagick"))
771 (coreutils (assoc-ref inputs "coreutils")))
772 (make-file-writable "w3m.el")
773 (emacs-substitute-variables "w3m.el"
774 ("w3m-command" (string-append w3m "/bin/w3m"))
775 ("w3m-touch-command"
776 (string-append coreutils "/bin/touch"))
777 ("w3m-icon-directory"
778 (string-append out "/share/images/emacs-w3m")))
779 (make-file-writable "w3m-image.el")
780 (emacs-substitute-variables "w3m-image.el"
781 ("w3m-imagick-convert-program"
782 (string-append imagemagick "/bin/convert"))
783 ("w3m-imagick-identify-program"
784 (string-append imagemagick "/bin/identify")))
785 #t)))
786 (replace 'install
787 (lambda* (#:key outputs #:allow-other-keys)
788 (invoke "make" "install" "install-icons")
789 (with-directory-excursion
790 (string-append (assoc-ref outputs "out")
791 "/share/emacs/site-lisp")
792 (for-each delete-file '("ChangeLog" "ChangeLog.1"))
793 (symlink "w3m-load.el" "w3m-autoloads.el")
794 #t))))))
795 (home-page "http://emacs-w3m.namazu.org/")
796 (synopsis "Simple Web browser for Emacs based on w3m")
797 (description
798 "Emacs-w3m is an emacs interface for the w3m web browser.")
799 (license license:gpl2+)))
800
801(define-public emacs-wget
802 (package
803 (name "emacs-wget")
804 (version "0.5.0")
805 (source (origin
806 (method url-fetch)
807 (uri (string-append "mirror://debian/pool/main/w/wget-el/wget-el_"
808 version ".orig.tar.gz"))
809 (sha256
810 (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff"))))
811 (build-system gnu-build-system)
812 (inputs `(("wget" ,wget)))
813 (native-inputs `(("emacs" ,emacs-minimal)))
814 (arguments
815 `(#:modules ((guix build gnu-build-system)
816 (guix build utils)
817 (guix build emacs-utils))
818 #:imported-modules (,@%gnu-build-system-modules
819 (guix build emacs-utils))
820 #:tests? #f ; no check target
821 #:phases
822 (modify-phases %standard-phases
823 (replace 'configure
824 (lambda* (#:key outputs #:allow-other-keys)
825 (substitute* "Makefile"
826 (("/usr/local") (assoc-ref outputs "out"))
827 (("/site-lisp/emacs-wget") "/site-lisp"))
828 #t))
829 (add-before 'build 'patch-exec-paths
830 (lambda* (#:key inputs outputs #:allow-other-keys)
831 (let ((wget (assoc-ref inputs "wget")))
832 (emacs-substitute-variables "wget.el"
833 ("wget-command" (string-append wget "/bin/wget"))))
834 #t))
835 (add-after 'install 'post-install
836 (lambda* (#:key outputs #:allow-other-keys)
837 (emacs-generate-autoloads
838 "wget" (string-append (assoc-ref outputs "out")
839 "/share/emacs/site-lisp/"))
840 #t)))))
841 (home-page "http://www.emacswiki.org/emacs/EmacsWget")
842 (synopsis "Simple file downloader for Emacs based on wget")
843 (description
844 "Emacs-wget is an emacs interface for the wget file downloader.")
845 (license license:gpl2+)))
846
847\f
848;;;
849;;; Multimedia.
850;;;
851
852(define-public emacs-emms
853 (package
854 (name "emacs-emms")
855 (version "5.1")
856 (source (origin
857 (method url-fetch)
858 (uri (string-append "mirror://gnu/emms/emms-"
859 version ".tar.gz"))
860 (sha256
861 (base32
862 "149ddczyx6x10zn4mn8g0rll1rwf4yciv8x6j0qdnlbwszblx2x6"))
863 (modules '((guix build utils)))
864 (snippet
865 '(begin
866 (substitute* "Makefile"
867 (("/usr/bin/install-info")
868 ;; No need to use 'install-info' since it would create a
869 ;; useless 'dir' file.
870 "true")
871 (("^INFODIR=.*")
872 ;; Install Info files to $out/share/info, not $out/info.
873 "INFODIR := $(PREFIX)/share/info\n")
874 (("/site-lisp/emms")
875 ;; Install directly in share/emacs/site-lisp, not in a
876 ;; sub-directory.
877 "/site-lisp")
878 (("^all: (.*)\n" _ rest)
879 ;; Build 'emms-print-metadata'.
880 (string-append "all: " rest " emms-print-metadata\n")))
881 #t))))
882 (build-system gnu-build-system)
883 (arguments
884 `(#:modules ((guix build gnu-build-system)
885 (guix build utils)
886 (guix build emacs-utils)
887 (ice-9 ftw))
888 #:imported-modules (,@%gnu-build-system-modules
889 (guix build emacs-utils))
890
891 #:phases
892 (modify-phases %standard-phases
893 (replace 'configure
894 (lambda* (#:key inputs outputs #:allow-other-keys)
895 (let ((out (assoc-ref outputs "out"))
896 (flac (assoc-ref inputs "flac"))
897 (vorbis (assoc-ref inputs "vorbis-tools"))
898 (alsa (assoc-ref inputs "alsa-utils"))
899 (mpg321 (assoc-ref inputs "mpg321"))
900 (mp3info (assoc-ref inputs "mp3info"))
901 (opus (assoc-ref inputs "opus-tools")))
902 ;; Specify the installation directory.
903 (substitute* "Makefile"
904 (("PREFIX=.*$")
905 (string-append "PREFIX := " out "\n")))
906
907 (setenv "SHELL" (which "sh"))
908 (setenv "CC" "gcc")
909
910 ;; Specify the absolute file names of the various
911 ;; programs so that everything works out-of-the-box.
912 (with-directory-excursion "lisp"
913 (emacs-substitute-variables
914 "emms-player-mpg321-remote.el"
915 ("emms-player-mpg321-remote-command"
916 (string-append mpg321 "/bin/mpg321")))
917 (substitute* "emms-player-simple.el"
918 (("\"ogg123\"")
919 (string-append "\"" vorbis "/bin/ogg123\"")))
920 (substitute* "emms-player-simple.el"
921 (("\"mpg321\"")
922 (string-append "\"" mpg321 "/bin/mpg321\"")))
923 (emacs-substitute-variables "emms-info-ogginfo.el"
924 ("emms-info-ogginfo-program-name"
925 (string-append vorbis "/bin/ogginfo")))
926 (emacs-substitute-variables "emms-info-opusinfo.el"
927 ("emms-info-opusinfo-program-name"
928 (string-append opus "/bin/opusinfo")))
929 (emacs-substitute-variables "emms-info-libtag.el"
930 ("emms-info-libtag-program-name"
931 (string-append out "/bin/emms-print-metadata")))
932 (emacs-substitute-variables "emms-info-mp3info.el"
933 ("emms-info-mp3info-program-name"
934 (string-append mp3info "/bin/mp3info")))
935 (emacs-substitute-variables "emms-info-metaflac.el"
936 ("emms-info-metaflac-program-name"
937 (string-append flac "/bin/metaflac")))
938 (emacs-substitute-variables "emms-source-file.el"
939 ("emms-source-file-gnu-find" (which "find")))
940 (substitute* "emms-volume-amixer.el"
941 (("\"amixer\"")
942 (string-append "\"" alsa "/bin/amixer\"")))
943 (substitute* "emms-tag-editor.el"
944 (("\"mp3info\"")
945 (string-append "\"" mp3info "/bin/mp3info\"")))))))
946 (add-before 'install 'pre-install
947 (lambda* (#:key outputs #:allow-other-keys)
948 ;; The 'install' rule expects the target directories to exist.
949 (let* ((out (assoc-ref outputs "out"))
950 (bin (string-append out "/bin"))
951 (man1 (string-append out "/share/man/man1")))
952 (mkdir-p bin)
953 (mkdir-p man1)
954
955 ;; Ensure that files are not rejected by gzip
956 (let ((early-1980 315619200)) ; 1980-01-02 UTC
957 (ftw "." (lambda (file stat flag)
958 (unless (<= early-1980 (stat:mtime stat))
959 (utime file early-1980 early-1980))
960 #t)))
961 #t)))
962 (add-after 'install 'post-install
963 (lambda* (#:key outputs #:allow-other-keys)
964 (let ((out (assoc-ref outputs "out")))
965 (symlink "emms-auto.el"
966 (string-append out "/share/emacs/site-lisp/"
967 "emms-autoloads.el")))
968 #t)))
969 #:tests? #f))
970 (native-inputs `(("emacs" ,emacs-minimal) ;for (guix build emacs-utils)
971 ("texinfo" ,texinfo)))
972 (inputs `(("alsa-utils" ,alsa-utils)
973 ("flac" ,flac) ;for metaflac
974 ("vorbis-tools" ,vorbis-tools)
975 ("mpg321" ,mpg321)
976 ("taglib" ,taglib)
977 ("mp3info" ,mp3info)
978 ("opus-tools" ,opus-tools)))
979 (properties '((upstream-name . "emms")))
980 (synopsis "Emacs Multimedia System")
981 (description
982 "EMMS is the Emacs Multimedia System. It is a small front-end which
983can control one of the supported external players. Thus, it supports
984whatever formats are supported by your music player. It also
985supports tagging and playlist management, all behind a clean and
986light user interface.")
987 (home-page "https://www.gnu.org/software/emms/")
988 (license license:gpl3+)))
989
990(define-public emacs-emms-player-mpv
991 ;; A new mpv backend is included in Emms from 5.0.
992 (deprecated-package "emacs-emms-player-mpv" emacs-emms))
993
994(define-public emacs-emms-mode-line-cycle
995 (package
996 (name "emacs-emms-mode-line-cycle")
997 (version "0.2.5")
998 (source
999 (origin
1000 (method url-fetch)
1001 (uri (string-append "https://github.com/momomo5717/emms-mode-line-cycle"
1002 "/archive/" version ".tar.gz"))
1003 (file-name (string-append name "-" version ".tar.gz"))
1004 (sha256
1005 (base32
1006 "0ifszi930pnaxk1x8pcydmvnp06868gc7nfx14q17zbajbx735k6"))))
1007 (build-system emacs-build-system)
1008 (propagated-inputs
1009 `(("emms" ,emacs-emms)))
1010 (home-page "https://github.com/momomo5717/emms-mode-line-cycle")
1011 (synopsis "Display the EMMS mode line as a ticker")
1012 (description
1013 "This is a minor mode for updating the EMMS mode-line string cyclically
1014within a specified width. It is useful for displaying long track titles.")
1015 (license license:gpl3+)))
1016
1017\f
1018;;;
1019;;; Miscellaneous.
1020;;;
1021
1022(define-public emacs-bbdb
1023 (package
1024 (name "emacs-bbdb")
1025 (version "3.1.2")
1026 (source (origin
1027 (method url-fetch)
1028 (uri (string-append "mirror://savannah/bbdb/bbdb-"
1029 version ".tar.gz"))
1030 (sha256
1031 (base32
1032 "1gs16bbpiiy01w9pyg12868r57kx1v3hnw04gmqsmpc40l1hyy05"))
1033 (modules '((guix build utils)))
1034 (snippet
1035 ;; We don't want to build and install the PDF.
1036 '(begin
1037 (substitute* "doc/Makefile.in"
1038 (("^doc_DATA = .*$")
1039 "doc_DATA =\n"))
1040 #t))))
1041 (build-system gnu-build-system)
1042 (arguments
1043 '(#:phases
1044 (modify-phases %standard-phases
1045 (add-after 'install 'post-install
1046 (lambda* (#:key outputs #:allow-other-keys)
1047 ;; Add an autoloads file with the right name for guix.el.
1048 (let* ((out (assoc-ref outputs "out"))
1049 (site (string-append out "/share/emacs/site-lisp")))
1050 (with-directory-excursion site
1051 (symlink "bbdb-loaddefs.el" "bbdb-autoloads.el")))
1052 #t)))))
1053 (native-inputs `(("emacs" ,emacs-minimal)))
1054 (home-page "https://savannah.nongnu.org/projects/bbdb/")
1055 (synopsis "Contact management utility for Emacs")
1056 (description
1057 "BBDB is the Insidious Big Brother Database for GNU Emacs. It provides
1058an address book for email and snail mail addresses, phone numbers and the
1059like. It can be linked with various Emacs mail clients (Message and Mail
1060mode, Rmail, Gnus, MH-E, and VM). BBDB is fully customizable.")
1061 (license license:gpl3+)))
1062
1063(define-public bbdb
1064 (deprecated-package "bbdb" emacs-bbdb))
1065
1066(define-public emacs-aggressive-indent
1067 (package
1068 (name "emacs-aggressive-indent")
1069 (version "1.8.3")
1070 (source (origin
1071 (method url-fetch)
1072 (uri (string-append "https://elpa.gnu.org/packages/"
1073 "aggressive-indent-" version ".el"))
1074 (sha256
1075 (base32
1076 "0jnzccl50x0wapprgwxinp99pwwa6j43q6msn4gv437j7swy8wnj"))))
1077 (build-system emacs-build-system)
1078 (home-page "https://elpa.gnu.org/packages/aggressive-indent.html")
1079 (synopsis "Minor mode to aggressively keep your code always indented")
1080 (description
1081 "@code{aggressive-indent-mode} is a minor mode that keeps your code
1082always indented. It reindents after every change, making it more reliable
1083than @code{electric-indent-mode}.")
1084 (license license:gpl2+)))
1085
1086(define-public emacs-ag
1087 (package
1088 (name "emacs-ag")
1089 (version "0.47")
1090 (source (origin
1091 (method url-fetch)
1092 (uri (string-append
1093 "https://github.com/Wilfred/ag.el/archive/"
1094 version ".tar.gz"))
1095 (file-name (string-append name "-" version ".tar.gz"))
1096 (sha256
1097 (base32
1098 "1rlmp6wnyhqfg86dbz17r914msp58favn4kd4yrdwyia265a4lar"))))
1099 (build-system emacs-build-system)
1100 (arguments
1101 `(#:phases
1102 (modify-phases %standard-phases
1103 (add-before 'install 'make-info
1104 (lambda _
1105 (with-directory-excursion "docs"
1106 (invoke "make" "info"))))
1107 (add-after 'install 'install-info
1108 (lambda* (#:key outputs #:allow-other-keys)
1109 (let* ((out (assoc-ref outputs "out"))
1110 (info (string-append out "/share/info")))
1111 (install-file "docs/_build/texinfo/agel.info" info)
1112 #t))))))
1113 (native-inputs
1114 `(("python-sphinx" ,python-sphinx)
1115 ("texinfo" ,texinfo)))
1116 (propagated-inputs
1117 `(("dash" ,emacs-dash)
1118 ("s" ,emacs-s)
1119 ;; We need to use 'ag' as the executable on remote systems.
1120 ("the-silver-searcher" ,the-silver-searcher)))
1121 (home-page "https://github.com/Wilfred/ag.el")
1122 (synopsis "Front-end for ag (the-silver-searcher) for Emacs")
1123 (description "This package provides the ability to use the silver
1124searcher, a code searching tool, sometimes abbreviated to @code{ag}. Features
1125include version control system awareness, use of Perl compatible regular
1126expressions, editing the search results directly and searching file names
1127rather than the contents of files.")
1128 (license license:gpl3+)))
1129
1130(define-public emacs-async
1131 (package
1132 (name "emacs-async")
1133 (home-page "https://github.com/jwiegley/emacs-async")
1134 (version "1.9.3")
1135 (source (origin
1136 (method git-fetch)
1137 (uri (git-reference
1138 (url home-page)
1139 (commit (string-append "v" version))))
1140 (file-name (git-file-name name version))
1141 (sha256
1142 (base32
1143 "1zsnb6dy8p6y68xgidv3dfxaga4biramfw8fq7wac0sc50vc98vq"))))
1144 (build-system emacs-build-system)
1145 (synopsis "Asynchronous processing in Emacs")
1146 (description
1147 "This package provides the ability to call asynchronous functions and
1148processes. For example, it can be used to run dired commands (for copying,
1149moving, etc.) asynchronously using @code{dired-async-mode}. Also it is used
1150as a library for other Emacs packages.")
1151 (license license:gpl3+)))
1152
1153(define-public emacs-auctex
1154 (package
1155 (name "emacs-auctex")
1156 (version "12.1.0")
1157 (source
1158 (origin
1159 (method url-fetch)
1160 (uri (string-append
1161 "https://elpa.gnu.org/packages/auctex-"
1162 version
1163 ".tar"))
1164 (sha256
1165 (base32
1166 "0iy5x61xqkxaph2hq64sg50l1c6yp6qhzppwadayxkdz00b46sas"))))
1167 (build-system emacs-build-system)
1168 ;; We use 'emacs' because AUCTeX requires dbus at compile time
1169 ;; ('emacs-minimal' does not provide dbus).
1170 (arguments
1171 `(#:emacs ,emacs
1172 #:include '("\\.el$" "^images/" "^latex/" "\\.info$")
1173 #:exclude '("^tests/" "^latex/README")))
1174 (native-inputs
1175 `(("perl" ,perl)))
1176 (home-page "https://www.gnu.org/software/auctex/")
1177 (synopsis "Integrated environment for TeX")
1178 (description
1179 "AUCTeX is a comprehensive customizable integrated environment for
1180writing input files for TeX, LaTeX, ConTeXt, Texinfo, and docTeX using Emacs
1181or XEmacs.")
1182 (license license:gpl3+)))
1183
1184(define-public emacs-autothemer
1185 (package
1186 (name "emacs-autothemer")
1187 (version "0.2.2")
1188 (source
1189 (origin
1190 (method url-fetch)
1191 (uri (string-append "https://github.com/sebastiansturm/autothemer/archive/"
1192 version ".tar.gz"))
1193 (file-name (string-append name "-" version ".tar.gz"))
1194 (sha256
1195 (base32
1196 "0rd28r9wfrbll212am4ih9hrvypx785aff76va2cbfxdwm9kixsa"))))
1197 (build-system emacs-build-system)
1198 (propagated-inputs
1199 `(("emacs-dash" ,emacs-dash)))
1200 (home-page "https://github.com/sebastiansturm/autothemer")
1201 (synopsis "Conveniently create Emacs themes")
1202 (description
1203 "Autothemer provides a thin layer on top of @code{deftheme} and
1204@code{custom-theme-set-faces} that creates a new custom color theme, based on
1205a set of simplified face specifications and a user-supplied color palette")
1206 (license license:gpl3+)))
1207
1208(define-public emacs-howm
1209 (package
1210 (name "emacs-howm")
1211 (version "1.4.4")
1212 (source
1213 (origin
1214 (method url-fetch)
1215 (uri (string-append "http://howm.sourceforge.jp/a/howm-"
1216 version ".tar.gz"))
1217 (sha256
1218 (base32
1219 "0ddm91l6z58j7x59fa966j6q1rg4cinyza4r8ibg80hprn5h31qk"))))
1220 (build-system gnu-build-system)
1221 (native-inputs
1222 `(("emacs" ,emacs-minimal)))
1223 (arguments
1224 `(#:configure-flags
1225 (list (string-append "--with-howmdir=" %output
1226 "/share/emacs/site-lisp/guix.d/howm-" ,version))
1227 #:modules ((guix build gnu-build-system)
1228 ((guix build emacs-build-system) #:prefix emacs:)
1229 (guix build utils))
1230 #:imported-modules (,@%gnu-build-system-modules
1231 (guix build emacs-build-system)
1232 (guix build emacs-utils))
1233 #:phases
1234 (modify-phases %standard-phases
1235 (add-after 'install 'make-autoloads
1236 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
1237 (home-page "http://howm.osdn.jp/")
1238 (synopsis "Note-taking tool for Emacs")
1239 (description "Howm is a note-taking tool for Emacs. Like
1240code@{emacs-wiki.el}, it facilitates using hyperlinks and doing full-text
1241searches. Unlike code@{emacs-wiki.el}, it can be combined with any format.")
1242 (license license:gpl1+)))
1243
1244(define-public emacs-calfw
1245 (package
1246 (name "emacs-calfw")
1247 (version "1.6")
1248 (source
1249 (origin
1250 (method url-fetch)
1251 (uri (string-append
1252 "https://github.com/kiwanami/emacs-calfw/archive/v"
1253 version ".tar.gz"))
1254 (file-name (string-append name "-" version ".tar.gz"))
1255 (sha256
1256 (base32
1257 "1zr91xr0f1xfcv78yxka8vs5ximmq2ixmqf2pkb57kwwnxlypq4i"))))
1258 (build-system emacs-build-system)
1259 (propagated-inputs
1260 `(("emacs-howm" ,emacs-howm)))
1261 (home-page "https://github.com/kiwanami/emacs-calfw/")
1262 (synopsis "Calendar framework for Emacs")
1263 (description
1264 "This package displays a calendar view with various schedule data in the
1265Emacs buffer.")
1266 (license license:gpl3+)))
1267
1268(define-public emacs-direnv
1269 (package
1270 (name "emacs-direnv")
1271 (version "1.2.0")
1272 (source
1273 (origin
1274 (method url-fetch)
1275 (uri (string-append
1276 "https://github.com/wbolster/emacs-direnv/archive/"
1277 version ".tar.gz"))
1278 (file-name (string-append name "-" version ".tar.gz"))
1279 (sha256
1280 (base32
1281 "0m9nxawklhiiysyibzzhh2zkxgq1fskqvaqb06f7r8dnhabfy9fr"))))
1282 (build-system emacs-build-system)
1283 (propagated-inputs
1284 `(("dash" ,emacs-dash)
1285 ("with-editor" ,emacs-with-editor)))
1286 (home-page "https://github.com/wbolster/emacs-direnv")
1287 (synopsis "Direnv integration for Emacs")
1288 (description
1289 "This package provides support for invoking direnv to get the environment
1290for the current file and updating the environment within Emacs to match.
1291
1292Direnv can be invoked manually, and a global minor mode is included that will
1293update the environment when the active buffer changes.
1294
1295Using emacs-direnv means that programs started from Emacs will use the
1296environment set through Direnv.")
1297 (license license:gpl3+)))
1298
1299(define-public emacs-ggtags
1300 (package
1301 (name "emacs-ggtags")
1302 (version "0.8.13")
1303 (source
1304 (origin
1305 (method url-fetch)
1306 (uri (string-append "http://elpa.gnu.org/packages/ggtags-"
1307 version ".el"))
1308 (sha256
1309 (base32
1310 "1qa7lcrcmf76sf6dy8sxbg4adq7rg59fm0n5848w3qxgsr0h45fg"))))
1311 (build-system emacs-build-system)
1312 (inputs
1313 `(("global" ,global)))
1314 (arguments
1315 `(#:phases
1316 (modify-phases %standard-phases
1317 (add-after 'unpack 'configure
1318 (lambda* (#:key inputs #:allow-other-keys)
1319 (chmod "ggtags.el" #o644)
1320 (emacs-substitute-variables "ggtags.el"
1321 ("ggtags-executable-directory"
1322 (string-append (assoc-ref inputs "global") "/bin")))
1323 #t)))))
1324 (home-page "https://github.com/leoliu/ggtags")
1325 (synopsis "Frontend to the GNU Global source code tagging system")
1326 (description "@code{ggtags} provides a frontend to the GNU Global source
1327code tagging system.
1328
1329Features:
1330
1331@itemize
1332@item Build on @code{compile.el} for asynchronicity and its large feature-set.
1333@item Automatically update Global's tag files when needed with tuning for
1334large source trees.
1335@item Intuitive navigation among multiple matches with mode-line display of
1336current match, total matches and exit status.
1337@item Read tag with completion.
1338@item Show definition at point.
1339@item Jump to #include files.
1340@item Support search history and saving a search to register/bookmark.
1341@item Query replace.
1342@item Manage Global's environment variables on a per-project basis.
1343@item Highlight (definition) tag at point.
1344@item Abbreviated display of file names.
1345@item Support all Global search backends: @code{grep}, @code{idutils}, etc.
1346@item Support exuberant ctags @url{http://ctags.sourceforge.net/} and
1347@code{pygments} backend.
1348@item Support all Global's output formats: @code{grep}, @code{ctags-x},
1349@code{cscope} etc.
1350@item Support projects on remote hosts (e.g. via @code{tramp}).
1351@item Support eldoc.
1352@item Search @code{GTAGSLIBPATH} for references and symbols.
1353@end itemize\n")
1354 (license license:gpl3+)))
1355
1356(define-public emacs-go-mode
1357 (package
1358 (name "emacs-go-mode")
1359 (version "1.5.0")
1360 (source (origin
1361 (method git-fetch)
1362 (uri (git-reference
1363 (url "https://github.com/dominikh/go-mode.el.git")
1364 (commit (string-append "v" version))))
1365 (file-name (git-file-name name version))
1366 (sha256
1367 (base32
1368 "1nd2h50yb0493wvf1h7fzplq45rmqn2w7kxpgnlxzhkvq99v8vzf"))))
1369 (build-system emacs-build-system)
1370 (arguments
1371 `(#:phases
1372 (modify-phases %standard-phases
1373 (add-after 'unpack 'make-writable
1374 (lambda _
1375 (for-each make-file-writable (find-files "." "\\.el$"))
1376 #t)))))
1377 (home-page "https://github.com/dominikh/go-mode.el")
1378 (synopsis "Go mode for Emacs")
1379 (description
1380 "This package provides go-mode, an Emacs mode for working with software
1381written in the Go programming language.")
1382 (license license:bsd-3)))
1383
1384(define-public emacs-google-maps
1385 (package
1386 (name "emacs-google-maps")
1387 (version "1.0.0")
1388 (source (origin
1389 (method url-fetch)
1390 (uri (string-append "https://github.com/jd/google-maps.el/"
1391 "archive/" version ".tar.gz"))
1392 (file-name (string-append name "-" version ".tar.gz"))
1393 (sha256
1394 (base32
1395 "014bxapm4d8vjxbzrfjdpsavxyfx981mlcb10aq5rmigr6il8ybs"))))
1396 (build-system emacs-build-system)
1397 (home-page "https://github.com/jd/google-maps.el")
1398 (synopsis "Access Google Maps from Emacs")
1399 (description "The @code{google-maps} package allows to display Google
1400Maps directly inside Emacs.")
1401 (license license:gpl3+)))
1402
1403(define-public emacs-graphviz-dot-mode
1404 (let ((commit "c456a2b65c734089e6c44e87209a5a432a741b1a")
1405 (revision "1"))
1406 (package
1407 (name "emacs-graphviz-dot-mode")
1408 (version (string-append "0.3.11-" revision "."
1409 (string-take commit 7)))
1410 (source (origin
1411 (method git-fetch)
1412 (uri (git-reference
1413 (url "https://github.com/ppareit/graphviz-dot-mode.git")
1414 (commit commit)))
1415 (file-name (string-append name "-" version "-checkout"))
1416 (sha256
1417 (base32
1418 "0j1r2rspaakw37b0mx7pwpvdsvixq9sw3xjbww5piihzpdxz58z1"))))
1419 (build-system emacs-build-system)
1420 (arguments
1421 `(#:phases
1422 (modify-phases %standard-phases
1423 (add-before 'install 'make-info
1424 (lambda* (#:key inputs #:allow-other-keys)
1425 (with-directory-excursion "texinfo"
1426 (substitute* "Makefile"
1427 (("\\/usr\\/bin\\/gzip")
1428 (string-append (assoc-ref inputs "gzip") "/bin/gzip")))
1429 (invoke "make"
1430 "clean"
1431 "info"
1432 (string-append "TEXINFODIR="
1433 (assoc-ref inputs "texinfo")
1434 "/bin")))))
1435 (add-after 'install 'install-info
1436 (lambda* (#:key outputs #:allow-other-keys)
1437 (let* ((out (assoc-ref outputs "out"))
1438 (info (string-append out "/share/info")))
1439 (install-file "texinfo/graphviz-dot-mode.info.gz" info)
1440 #t))))))
1441 (native-inputs
1442 `(("texinfo" ,texinfo)
1443 ("gzip" ,gzip)))
1444 (home-page "http://ppareit.github.com/graphviz-dot-mode")
1445 (synopsis "Major mode for editing Graphviz Dot files")
1446 (description
1447 "This Emacs packages helps you to create @file{.dot} or @file{.gv}
1448files using the dot syntax, and use Graphviz to convert these files to
1449diagrams.")
1450 (license license:gpl2+))))
1451
1452(define-public emacs-mmm-mode
1453 (package
1454 (name "emacs-mmm-mode")
1455 (version "0.5.5")
1456 (source
1457 (origin
1458 (method url-fetch)
1459 (uri (string-append
1460 "https://github.com/purcell/mmm-mode/archive/"
1461 version ".tar.gz"))
1462 (file-name (string-append name "-" version ".tar.gz"))
1463 (sha256
1464 (base32
1465 "0c5ing3hcr74k78hqhrfwiv6m3n8hqfrw89j2x34vf60f4iyqzqc"))))
1466 (build-system gnu-build-system)
1467 (arguments
1468 '(#:phases
1469 (modify-phases %standard-phases
1470 (add-after 'unpack 'autogen
1471 (lambda _
1472 (invoke "sh" "autogen.sh"))))))
1473 (native-inputs
1474 `(("autoconf" ,autoconf)
1475 ("automake" ,automake)
1476 ("emacs" ,emacs-minimal)
1477 ("texinfo" ,texinfo)))
1478 (home-page "https://github.com/purcell/mmm-mode")
1479 (synopsis "Allow multiple major modes in an Emacs buffer")
1480 (description
1481 "MMM Mode is a minor mode that allows multiple major modes to coexist in a
1482single buffer.")
1483 (license license:gpl3+)))
1484
1485(define-public emacs-tablist
1486 (package
1487 (name "emacs-tablist")
1488 (version "0.70")
1489 (source (origin
1490 (method url-fetch)
1491 (uri (string-append
1492 "https://github.com/politza/tablist/archive/v"
1493 version ".tar.gz"))
1494 (file-name (string-append name "-" version ".tar.gz"))
1495 (sha256
1496 (base32
1497 "177d6s7ym1mwz1nhnl09r14z3n093g9a2szm97xsaig0c204xz9c"))))
1498 (build-system emacs-build-system)
1499 (home-page "https://github.com/politza/tablist")
1500 (synopsis "Extension for @code{tabulated-list-mode}")
1501 (description "Tablist is the Emacs package that provides several
1502additional features to @code{tabulated-list-mode}: it adds marks,
1503filters, new key bindings and faces. It can be enabled by
1504@code{tablist-mode} or @code{tablist-minor-mode} commands.")
1505 (license license:gpl3+)))
1506
1507(define-public emacs-pdf-tools
1508 (package
1509 (name "emacs-pdf-tools")
1510 (version "0.80")
1511 (home-page "https://github.com/politza/pdf-tools")
1512 (source (origin
1513 (method git-fetch)
1514 (uri (git-reference (url home-page)
1515 (commit (string-append "v" version))))
1516 (file-name (git-file-name name version))
1517 (sha256
1518 (base32
1519 "1i4647vax5na73basc5dz4lh9kprir00fh8ps4i0l1y3ippnjs2s"))
1520 (patches (search-patches "emacs-pdf-tools-poppler.patch"))))
1521 (build-system gnu-build-system)
1522 (arguments
1523 `(#:tests? #f ; there are no tests
1524 #:modules ((guix build gnu-build-system)
1525 ((guix build emacs-build-system) #:prefix emacs:)
1526 (guix build utils)
1527 (guix build emacs-utils))
1528 #:imported-modules (,@%gnu-build-system-modules
1529 (guix build emacs-build-system)
1530 (guix build emacs-utils))
1531 #:phases
1532 (modify-phases %standard-phases
1533 ;; Build server side using 'gnu-build-system'.
1534 (add-after 'unpack 'enter-server-dir
1535 (lambda _ (chdir "server") #t))
1536 (add-after 'enter-server-dir 'autogen
1537 (lambda _
1538 (invoke "bash" "autogen.sh")))
1539
1540 ;; Build emacs side using 'emacs-build-system'.
1541 (add-after 'compress-documentation 'enter-lisp-dir
1542 (lambda _ (chdir "../lisp") #t))
1543 (add-after 'enter-lisp-dir 'emacs-patch-variables
1544 (lambda* (#:key outputs #:allow-other-keys)
1545 (for-each make-file-writable (find-files "."))
1546
1547 ;; Set path to epdfinfo program.
1548 (emacs-substitute-variables "pdf-info.el"
1549 ("pdf-info-epdfinfo-program"
1550 (string-append (assoc-ref outputs "out")
1551 "/bin/epdfinfo")))
1552 ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto
1553 ;; upgrading" that pdf-tools tries to perform.
1554 (emacs-substitute-variables "pdf-tools.el"
1555 ("pdf-tools-handle-upgrades" '()))))
1556 (add-after 'emacs-patch-variables 'emacs-set-emacs-load-path
1557 (assoc-ref emacs:%standard-phases 'set-emacs-load-path))
1558 (add-after 'emacs-set-emacs-load-path 'emacs-install
1559 (assoc-ref emacs:%standard-phases 'install))
1560 (add-after 'emacs-install 'emacs-build
1561 (assoc-ref emacs:%standard-phases 'build))
1562 (add-after 'emacs-install 'emacs-make-autoloads
1563 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
1564 (native-inputs `(("autoconf" ,autoconf)
1565 ("automake" ,automake)
1566 ("pkg-config" ,pkg-config)
1567 ("emacs" ,emacs-minimal)))
1568 (inputs `(("poppler" ,poppler)
1569 ("cairo" ,cairo)
1570 ("glib" ,glib)
1571 ("libpng" ,libpng)
1572 ("zlib" ,zlib)))
1573 (propagated-inputs `(("tablist" ,emacs-tablist)))
1574 (synopsis "Emacs support library for PDF files")
1575 (description
1576 "PDF Tools is, among other things, a replacement of DocView for PDF
1577files. The key difference is that pages are not pre-rendered by
1578e.g. ghostscript and stored in the file-system, but rather created on-demand
1579and stored in memory.")
1580 (license license:gpl3+)))
1581
1582(define-public emacs-dash
1583 (package
1584 (name "emacs-dash")
1585 (version "2.14.1")
1586 (source (origin
1587 (method git-fetch)
1588 (uri (git-reference
1589 (url "https://github.com/magnars/dash.el.git")
1590 (commit version)))
1591 (file-name (git-file-name name version))
1592 (sha256
1593 (base32
1594 "1kzijmjxjxgr7p8clphzvmm47vczckbs8mza9an77c25bn627ywl"))))
1595 (build-system emacs-build-system)
1596 (arguments
1597 `(#:tests? #t
1598 #:test-command '("./run-tests.sh")))
1599 (home-page "https://github.com/magnars/dash.el")
1600 (synopsis "Modern list library for Emacs")
1601 (description "This package provides a modern list API library for Emacs.")
1602 (license license:gpl3+)))
1603
1604(define-public emacs-bui
1605 (package
1606 (name "emacs-bui")
1607 (version "1.2.1")
1608 (source (origin
1609 (method git-fetch)
1610 (uri (git-reference
1611 (url "https://notabug.org/alezost/emacs-bui.git")
1612 (commit (string-append "v" version))))
1613 (file-name (string-append name "-" version "-checkout"))
1614 (sha256
1615 (base32
1616 "0sszdl4kvqbihdh8d7mybpp0d8yw2p3gyiipjcxz9xhvvmw3ww4x"))))
1617 (build-system emacs-build-system)
1618 (propagated-inputs
1619 `(("dash" ,emacs-dash)))
1620 (home-page "https://notabug.org/alezost/emacs-bui")
1621 (synopsis "Buffer interface library for Emacs")
1622 (description
1623 "BUI (Buffer User Interface) is a library for making @code{list} and
1624@code{info} interfaces to display an arbitrary data of the same
1625type, for example: packages, buffers, files, etc.")
1626 (license license:gpl3+)))
1627
1628(define-public emacs-guix
1629 (package
1630 (name "emacs-guix")
1631 (version "0.5.1.1")
1632 (source (origin
1633 (method url-fetch)
1634 (uri (string-append "https://emacs-guix.gitlab.io/website/"
1635 "releases/emacs-guix-" version ".tar.gz"))
1636 (sha256
1637 (base32
1638 "1gxg7lan3njc2yg2d02b2zij0d2cm2pv2q08nqz86s85jk3b6m03"))))
1639 (build-system gnu-build-system)
1640 (arguments
1641 `(#:configure-flags
1642 (let ((guix (assoc-ref %build-inputs "guix"))
1643 (gcrypt (assoc-ref %build-inputs "guile-gcrypt"))
1644 (geiser (assoc-ref %build-inputs "geiser"))
1645 (dash (assoc-ref %build-inputs "dash"))
1646 (bui (assoc-ref %build-inputs "bui"))
1647 (magit-popup (assoc-ref %build-inputs "magit-popup"))
1648 (edit-indirect (assoc-ref %build-inputs "edit-indirect"))
1649 (site-lisp "/share/emacs/site-lisp")
1650 (site-scm "/share/guile/site")
1651 (site-go "/lib/guile")
1652 (guile-dir (lambda (dir)
1653 (car (find-files dir
1654 (lambda (file stat)
1655 (string-prefix?
1656 "2." (basename file)))
1657 #:directories? #t)))))
1658 (list (string-append "--with-guix-site-dir="
1659 (guile-dir (string-append guix site-scm)))
1660 (string-append "--with-guix-site-ccache-dir="
1661 (guile-dir (string-append guix site-go))
1662 "/site-ccache")
1663 (string-append "--with-guile-gcrypt-site-dir="
1664 (guile-dir (string-append gcrypt site-scm)))
1665 (string-append "--with-guile-gcrypt-site-ccache-dir="
1666 (guile-dir (string-append gcrypt site-go))
1667 "/site-ccache")
1668 (string-append "--with-geiser-lispdir=" geiser site-lisp)
1669 (string-append "--with-dash-lispdir="
1670 dash site-lisp "/guix.d/dash-"
1671 ,(package-version emacs-dash))
1672 (string-append "--with-bui-lispdir="
1673 bui site-lisp "/guix.d/bui-"
1674 ,(package-version emacs-bui))
1675 (string-append "--with-editindirect-lispdir="
1676 edit-indirect site-lisp "/guix.d/edit-indirect-"
1677 ,(package-version emacs-edit-indirect))
1678 (string-append "--with-popup-lispdir="
1679 magit-popup site-lisp "/guix.d/magit-popup-"
1680 ,(package-version emacs-magit-popup))))))
1681 (native-inputs
1682 `(("pkg-config" ,pkg-config)
1683 ("emacs" ,emacs-minimal)))
1684 (inputs
1685 `(("guile" ,guile-2.2)
1686 ("guix" ,guix)))
1687 (propagated-inputs
1688 `(("geiser" ,emacs-geiser)
1689 ("guile-gcrypt" ,guile-gcrypt)
1690 ("dash" ,emacs-dash)
1691 ("bui" ,emacs-bui)
1692 ("edit-indirect" ,emacs-edit-indirect)
1693 ("magit-popup" ,emacs-magit-popup)))
1694 (home-page "https://emacs-guix.gitlab.io/website/")
1695 (synopsis "Emacs interface for GNU Guix")
1696 (description
1697 "Emacs-Guix provides a visual interface, tools and features for the GNU
1698Guix package manager. Particularly, it allows you to do various package
1699management tasks from Emacs. To begin with, run @code{M-x guix-about} or
1700@code{M-x guix-help} command.")
1701 (license license:gpl3+)))
1702
1703(define-public emacs-build-farm
1704 (package
1705 (name "emacs-build-farm")
1706 (version "0.2.2")
1707 (source (origin
1708 (method git-fetch)
1709 (uri (git-reference
1710 (url "https://notabug.org/alezost/emacs-build-farm.git")
1711 (commit (string-append "v" version))))
1712 (file-name (string-append name "-" version "-checkout"))
1713 (sha256
1714 (base32
1715 "0i0bwbav5861j2y15j9nd5m9rdqg9q97zgcbld8pivr9nyxy63lz"))))
1716 (build-system emacs-build-system)
1717 (propagated-inputs
1718 `(("bui" ,emacs-bui)
1719 ("magit-popup" ,emacs-magit-popup)))
1720 (home-page "https://notabug.org/alezost/emacs-build-farm")
1721 (synopsis "Emacs interface for Hydra and Cuirass build farms")
1722 (description
1723 "This Emacs package provides an interface for Hydra and
1724Cuirass (build farms used by Nix and Guix). It allows you to look at
1725various data related to the build farm projects, jobsets, builds and
1726evaluations. The entry point is @code{M-x build-farm} command.")
1727 (license license:gpl3+)))
1728
1729(define-public emacs-d-mode
1730 (package
1731 (name "emacs-d-mode")
1732 (version "2.0.9")
1733 (source (origin
1734 (method url-fetch)
1735 (uri (string-append
1736 "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode/"
1737 "archive/" version ".tar.gz"))
1738 (file-name (string-append name "-" version ".tar.gz"))
1739 (sha256
1740 (base32
1741 "127aa77ix3p7w4g339bx026df9y649dahlr3v359z0hs40zjz3kd"))))
1742 (build-system emacs-build-system)
1743 (propagated-inputs
1744 `(("emacs-undercover" ,emacs-undercover)))
1745 (home-page "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
1746 (synopsis "Emacs major mode for editing D code")
1747 (description "This package provides an Emacs major mode for highlighting
1748code written in the D programming language. This mode is currently known to
1749work with Emacs 24 and 25.")
1750 (license license:gpl2+)))
1751
1752(define-public emacs-keyfreq
1753 (package
1754 (name "emacs-keyfreq")
1755 (version "20160516.716")
1756 (source
1757 (origin
1758 (method url-fetch)
1759 (uri (string-append "http://melpa.org/packages/keyfreq-"
1760 version ".el"))
1761 (sha256
1762 (base32
1763 "008hd7d06qskc3mx0bbdgpgy2pwxr8185fzlyqf9qjg49y74p6g8"))))
1764 (build-system emacs-build-system)
1765 (home-page "https://github.com/dacap/keyfreq")
1766 (synopsis "Track Emacs command frequencies")
1767 (description "@code{emacs-keyfeq} tracks and shows how many times you used
1768a command.")
1769 (license license:gpl3+)))
1770
1771(define-public emacs-olivetti
1772 (package
1773 (name "emacs-olivetti")
1774 (version "1.5.7")
1775 (source (origin
1776 (method url-fetch)
1777 (uri (string-append
1778 "https://stable.melpa.org/packages/olivetti-"
1779 version ".el"))
1780 (sha256
1781 (base32
1782 "1yj2ylg46q0pw1xzlv2b0fv9x8p56x25284s9v2smwjr4vf0nwcj"))))
1783 (build-system emacs-build-system)
1784 (home-page "https://github.com/rnkn/olivetti")
1785 (synopsis "Emacs minor mode for a nice writing environment")
1786 (description "This package provides an Emacs minor mode that puts writing
1787in the center.")
1788 (license license:gpl3+)))
1789
1790(define-public emacs-undo-tree
1791 (package
1792 (name "emacs-undo-tree")
1793 (version "0.6.6")
1794 (source (origin
1795 (method git-fetch)
1796 (uri (git-reference
1797 (url "http://dr-qubit.org/git/undo-tree.git")
1798 (commit (string-append "release/" version))))
1799 (file-name (string-append name "-" version "-checkout"))
1800 (sha256
1801 (base32
1802 "1hnh2mnmw179gr094r561w6cw1haid0lpvpqvkc24wpj82vphzpa"))))
1803 (build-system emacs-build-system)
1804 (home-page "http://www.dr-qubit.org/emacs.php")
1805 (synopsis "Treat undo history as a tree")
1806 (description "Tree-like interface to Emacs undo system, providing
1807graphical tree presentation of all previous states of buffer that
1808allows easily move between them.")
1809 (license license:gpl3+)))
1810
1811(define-public emacs-s
1812 (package
1813 (name "emacs-s")
1814 (version "1.12.0")
1815 (source (origin
1816 (method url-fetch)
1817 (uri (string-append
1818 "https://github.com/magnars/s.el/archive/"
1819 version ".tar.gz"))
1820 (file-name (string-append name "-" version ".tar.gz"))
1821 (sha256
1822 (base32
1823 "0xbl75863pcm806zg0x1lw7qznzjq2c8320k8js7apyag8q4srvh"))))
1824 (build-system emacs-build-system)
1825 (arguments
1826 `(#:tests? #t
1827 #:emacs ,emacs ; FIXME: tests fail with emacs-minimal
1828 #:test-command '("./run-tests.sh")))
1829 (home-page "https://github.com/magnars/s.el")
1830 (synopsis "Emacs string manipulation library")
1831 (description "This package provides an Emacs library for manipulating
1832strings.")
1833 (license license:gpl3+)))
1834
1835(define-public emacs-symon
1836 (package
1837 (name "emacs-symon")
1838 (version "20160630")
1839 (source
1840 (origin
1841 (method url-fetch)
1842 (uri (string-append "https://github.com/zk-phi/symon/archive/"
1843 version ".tar.gz"))
1844 (file-name (string-append name "-" version ".tar.gz"))
1845 (sha256
1846 (base32
1847 "0h4jcgdnq98wc9rj72nwyazq8498yg55jfljiij5qwbn1xf1g5zz"))))
1848 (build-system emacs-build-system)
1849 (home-page "https://github.com/zk-phi/symon")
1850 (synopsis "Tiny graphical system monitor")
1851 (description
1852 "Tiny graphical system monitor for the Emacs minibuffer when idle.")
1853 (license license:gpl2+)))
1854
1855(define-public emacs-sx
1856 (let ((version "20180212")
1857 (revision "1")
1858 (commit "833435fbf90d1c9e927d165b155f3b1ef39271de"))
1859 (package
1860 (name "emacs-sx")
1861 (version (git-version version revision commit))
1862 (source
1863 (origin
1864 (method git-fetch)
1865 (uri (git-reference
1866 (url "https://github.com/vermiculus/sx.el")
1867 (commit commit)))
1868 (file-name (git-file-name name version))
1869 (sha256
1870 (base32
1871 "1369xaxq1vy3d9yh862ddnhddikdpg2d0wv1ly00pnvdp9v4cqgd"))))
1872 (build-system emacs-build-system)
1873 (propagated-inputs
1874 `(("emacs-markdown-mode" ,emacs-markdown-mode)))
1875 (home-page "https://github.com/vermiculus/sx.el")
1876 (synopsis "Emacs StackExchange client")
1877 (description
1878 "Emacs StackExchange client. Ask and answer questions on
1879Stack Overflow, Super User, and other StackExchange sites.")
1880 (license license:gpl3+))))
1881
1882(define-public emacs-f
1883 (package
1884 (name "emacs-f")
1885 (version "0.20.0")
1886 (source (origin
1887 (method git-fetch)
1888 (uri (git-reference
1889 (url "https://github.com/rejeep/f.el.git")
1890 (commit (string-append "v" version))))
1891 (file-name (git-file-name name version))
1892 (sha256
1893 (base32
1894 "1a47xk3yp1rp17fqg7ldl3d3fb888h0fz3sysqfdz1bfdgs8a9bk"))))
1895 (build-system emacs-build-system)
1896 (propagated-inputs
1897 `(("emacs-s" ,emacs-s)
1898 ("emacs-dash" ,emacs-dash)))
1899 (home-page "https://github.com/rejeep/f.el")
1900 (synopsis "Emacs API for working with files and directories")
1901 (description "This package provides an Emacs library for working with
1902files and directories.")
1903 (license license:gpl3+)))
1904
1905(define-public emacs-git-gutter
1906 (package
1907 (name "emacs-git-gutter")
1908 (version "0.90")
1909 (source (origin
1910 (method url-fetch)
1911 (uri (string-append
1912 "https://github.com/syohex/" name "/archive/"
1913 version ".tar.gz"))
1914 (file-name (string-append name "-" version ".tar.gz"))
1915 (sha256
1916 (base32
1917 "1nmhvhpq1l56mj2yq3ag23rw3x4xgnsy8szp30s26l0yjnkhc4qg"))))
1918 (build-system emacs-build-system)
1919 (home-page "https://github.com/syohex/emacs-git-gutter")
1920 (synopsis "See and manage hunks of text in a version control system")
1921 (description
1922 "This package is an Emacs minor mode for displaying and interacting with
1923hunks of text managed in a version control system. Added modified and deleted
1924areas can be indicated with symbols on the edge of the buffer, and commands
1925can be used to move between and perform actions on these hunks.
1926
1927Git, Mercurial, Subversion and Bazaar are supported, and many parts of the
1928display and behaviour is easily customisable.")
1929 (license license:gpl3+)))
1930
1931(define-public emacs-git-timemachine
1932 (package
1933 (name "emacs-git-timemachine")
1934 (version "4.5")
1935 (source
1936 (origin
1937 (method url-fetch)
1938 (uri (string-append "https://gitlab.com/pidu/git-timemachine"
1939 "/-/archive/" version
1940 "/git-timemachine-" version ".tar.gz"))
1941 (file-name (string-append name "-" version ".tar.gz"))
1942 (sha256
1943 (base32
1944 "0ii40qcincasg7s1yrvqcxkqcqzb4sfs7gcxscn6m4x4ans165zy"))))
1945 (build-system emacs-build-system)
1946 (home-page "https://gitlab.com/pidu/git-timemachine")
1947 (synopsis "Step through historic versions of Git-controlled files")
1948 (description "This package enables you to step through historic versions
1949of files under Git version control from within Emacs.")
1950 (license license:gpl3+)))
1951
1952(define-public emacs-minitest
1953 (let ((commit "1aadb7865c1dc69c201cecee275751ecec33a182")
1954 (revision "1"))
1955 (package
1956 (name "emacs-minitest")
1957 (version (git-version "0.8.0" revision commit))
1958 (source (origin
1959 (method git-fetch)
1960 (uri (git-reference
1961 (url "https://github.com/arthurnn/minitest-emacs")
1962 (commit commit)))
1963 (file-name (git-file-name name commit))
1964 (sha256
1965 (base32
1966 "1l18zqpdzbnqj2qawq8hj7z7pl8hr8z9d8ihy8jaiqma915hmhj1"))))
1967 (build-system emacs-build-system)
1968 (arguments
1969 '(#:include (cons "^snippets\\/minitest-mode\\/" %default-include)
1970 #:exclude (delete "^[^/]*tests?\\.el$" %default-exclude)))
1971 (propagated-inputs
1972 `(("emacs-dash" ,emacs-dash)
1973 ("emacs-f" ,emacs-f)))
1974 (home-page "https://github.com/arthurnn/minitest-emacs")
1975 (synopsis "Emacs minitest mode")
1976 (description
1977 "The minitest mode provides commands to run the tests for the current
1978file or line, as well as rerunning the previous tests, or all the tests for a
1979project.
1980
1981This package also includes relevant snippets for yasnippet.")
1982 (license license:expat))))
1983
1984(define-public emacs-el-mock
1985 (package
1986 (name "emacs-el-mock")
1987 (version "1.25.1")
1988 (source
1989 (origin
1990 (method url-fetch)
1991 (uri (string-append "https://github.com/rejeep/el-mock.el/"
1992 "archive/v" version ".tar.gz"))
1993 (file-name (string-append name "-" version ".tar.gz"))
1994 (sha256
1995 (base32
1996 "16xw94n58xxn3zvgyj72bmzs0k5lkvswjmzs79ws9n7rzdivb38b"))))
1997 (build-system emacs-build-system)
1998 (home-page "https://github.com/rejeep/el-mock.el")
1999 (synopsis "Tiny mock and stub framework in Emacs Lisp")
2000 (description
2001 "Emacs Lisp Mock is a library for mocking and stubbing using readable
2002syntax. Most commonly Emacs Lisp Mock is used in conjunction with Emacs Lisp
2003Expectations, but it can be used in other contexts.")
2004 (license license:gpl3+)))
2005
2006(define-public emacs-espuds
2007 (package
2008 (name "emacs-espuds")
2009 (version "0.3.3")
2010 (source
2011 (origin
2012 (method url-fetch)
2013 (uri (string-append "https://github.com/ecukes/espuds/"
2014 "archive/v" version ".tar.gz"))
2015 (file-name (string-append name "-" version ".tar.gz"))
2016 (sha256
2017 (base32
2018 "0xv551376pbmh735a3zjwc9z4qdx6ngj1vpq3xqjpn0a1rwjyn4k"))))
2019 (build-system emacs-build-system)
2020 (propagated-inputs
2021 `(("emacs-s" ,emacs-s)
2022 ("emacs-dash" ,emacs-dash)
2023 ("emacs-f" ,emacs-f)))
2024 (home-page "https://github.com/ecukes/espuds")
2025 (synopsis "Common step definitions for Ecukes")
2026 (description "Espuds is a collection of the most commonly used step
2027definitions for testing with the Ecukes framework.")
2028 (license license:gpl3+)))
2029
2030(define-public emacs-spark
2031 (let ((version "20160503") ; no proper tag, use date of commit
2032 (commit "0bf148c3ede3b31d56fd75f347cdd0b0eae60025")
2033 (revision "1"))
2034 (package
2035 (name "emacs-spark")
2036 (version (git-version version revision commit))
2037 (source
2038 (origin
2039 (method git-fetch)
2040 (uri (git-reference
2041 (url "https://github.com/alvinfrancis/spark.git")
2042 (commit commit)))
2043 (file-name (git-file-name name version))
2044 (sha256
2045 (base32
2046 "1ykqr86j17mi95s08d9fp02d7ych1331b04dcqxzxnmpkhwngyj1"))))
2047 (build-system emacs-build-system)
2048 (home-page "https://github.com/alvinfrancis/spark")
2049 (synopsis "Sparkline generation library for Emacs Lisp")
2050 (description "@code{emacs-spark} is a sparkline generation library for
2051Emacs Lisp. It generates a sparkline string given a list of numbers. It is a
2052port of @code{cl-spark} to Emacs Lisp.")
2053 (license license:expat))))
2054
2055(define-public emacs-es-mode
2056 (package
2057 (name "emacs-es-mode")
2058 (version "4.3.0")
2059 (source (origin
2060 (method url-fetch)
2061 (uri (string-append
2062 "https://github.com/dakrone/es-mode/archive/"
2063 version ".tar.gz"))
2064 (file-name (string-append name "-" version ".tar.gz"))
2065 (sha256
2066 (base32
2067 "0y86qdcb3g7fkcb4pzsjh3syzql6w3314hg1wqxq4a8bbk3y0cgr"))))
2068 (build-system emacs-build-system)
2069 (propagated-inputs
2070 ;; The version of org in Emacs 24.5 is not sufficient, and causes tables
2071 ;; to be rendered incorrectly
2072 `(("emacs-dash" ,emacs-dash)
2073 ("emacs-org" ,emacs-org)
2074 ("emacs-spark" ,emacs-spark)))
2075 (home-page "https://github.com/dakrone/es-mode")
2076 (synopsis "Major mode for editing Elasticsearch queries")
2077 (description "@code{es-mode} includes highlighting, completion and
2078indentation support for Elasticsearch queries. Also supported are
2079@code{es-mode} blocks in @code{org-mode}, for which the results of queries can
2080be processed through @code{jq}, or in the case of aggregations, can be
2081rendered in to a table. In addition, there is an @code{es-command-center}
2082mode, which displays information about Elasticsearch clusters.")
2083 (license license:gpl3+)))
2084
2085(define-public emacs-expand-region
2086 (package
2087 (name "emacs-expand-region")
2088 (version "0.11.0")
2089 (source
2090 (origin
2091 (method url-fetch)
2092 (uri (string-append "https://github.com/magnars/expand-region.el"
2093 "/archive/" version ".tar.gz"))
2094 (file-name (string-append name "-" version ".tar.gz"))
2095 (sha256
2096 (base32
2097 "08dy1f411sh9wwww53rjw80idcf3vpki6ba2arl4hl5jcw9651g0"))))
2098 (build-system emacs-build-system)
2099 (home-page "https://github.com/magnars/expand-region.el")
2100 (synopsis "Increase selected region by semantic units")
2101 (description
2102 "Expand region increases the selected region by semantic units. Just
2103keep pressing the key until it selects what you want. There's also
2104@code{er/contract-region} if you expand too far.")
2105 (license license:gpl3+)))
2106
2107(define-public emacs-fill-column-indicator
2108 (package
2109 (name "emacs-fill-column-indicator")
2110 (version "1.89")
2111 (source
2112 (origin
2113 (method url-fetch)
2114 (uri (string-append "https://github.com/alpaker/Fill-Column-Indicator"
2115 "/archive/v" version ".tar.gz"))
2116 (file-name (string-append name "-" version ".tar.gz"))
2117 (sha256
2118 (base32
2119 "09ab01np14bdcsr38xf95kpnvxzqr46mdjmphg3pigwnx39a3jvg"))))
2120 (build-system emacs-build-system)
2121 (home-page "https://www.emacswiki.org/emacs/FillColumnIndicator")
2122 (synopsis "Graphically indicate the fill column")
2123 (description
2124 "Fill-column-indicator graphically indicates the location of the fill
2125column by drawing a thin line down the length of the editing window.")
2126 (license license:gpl3+)))
2127
2128(define-public emacs-grep-a-lot
2129 (package
2130 (name "emacs-grep-a-lot")
2131 (version "1.0.7")
2132 (source (origin
2133 (method git-fetch)
2134 (uri (git-reference
2135 (url "https://github.com/ZungBang/emacs-grep-a-lot.git")
2136 (commit "9f9f645b9e308a0d887b66864ff97d0fca1ba4ad")))
2137 (file-name (string-append name "-" version "-checkout"))
2138 (sha256
2139 (base32
2140 "1f8262mrlinzgnn4m49hbj1hm3c1mvzza24py4b37sasn49546lw"))))
2141 (build-system emacs-build-system)
2142 (home-page "https://github.com/ZungBang/emacs-grep-a-lot")
2143 (synopsis "Enables multiple grep buffers in Emacs")
2144 (description
2145 "This Emacs package allows managing multiple grep buffers.")
2146 (license license:gpl3+)))
2147
2148(define-public emacs-inf-ruby
2149 (package
2150 (name "emacs-inf-ruby")
2151 (version "2.5.1")
2152 (source
2153 (origin
2154 (method url-fetch)
2155 (uri (string-append "https://github.com/nonsequitur/inf-ruby/"
2156 "archive/" version ".tar.gz"))
2157 (file-name (string-append name "-" version ".tar.gz"))
2158 (sha256
2159 (base32
2160 "0m7323k649ckxql1grsdnf71bjhys7l4qb8wbpphb1mr1q8i4066"))))
2161 (build-system emacs-build-system)
2162 (home-page "https://github.com/nonsequitur/inf-ruby")
2163 (synopsis "Provides a REPL buffer connected to a Ruby subprocess in Emacs")
2164 (description
2165 "@code{inf-ruby} provides a Read Eval Print Loop (REPL) buffer, allowing
2166for easy interaction with a ruby subprocess. Features include support for
2167detecting specific uses of Ruby, e.g. when using rails, and using a
2168appropriate console.")
2169 (license license:gpl3+)))
2170
2171(define-public emacs-znc
2172 (package
2173 (name "emacs-znc")
2174 (version "0.0.2")
2175 (source
2176 (origin
2177 (method url-fetch)
2178 (uri (string-append "https://marmalade-repo.org/packages/znc-"
2179 version ".el"))
2180 (sha256
2181 (base32
2182 "1d8lqvybgyazin5z0g1c4l3rg1vzrrvf0saqs53jr1zcdg0lianh"))))
2183 (build-system emacs-build-system)
2184 (home-page "https://github.com/sshirokov/ZNC.el")
2185 (synopsis "Make ERC and ZNC get along better")
2186 (description
2187 "This is a thin wrapper around @code{erc} that enables one to use the ZNC
2188IRC bouncer with ERC.")
2189 (license license:expat)))
2190
2191(define-public emacs-shut-up
2192 (package
2193 (name "emacs-shut-up")
2194 (version "0.3.2")
2195 (source
2196 (origin
2197 (method url-fetch)
2198 (uri (string-append "https://github.com/cask/shut-up/"
2199 "archive/v" version ".tar.gz"))
2200 (file-name (string-append name "-" version ".tar.gz"))
2201 (sha256
2202 (base32
2203 "09kzrjdkb569iviyg7ydwq44yh84m3f9hkl7jizfrlk0w4gz67d1"))))
2204 (build-system emacs-build-system)
2205 (home-page "https://github.com/cask/shut-up")
2206 (synopsis "Silence Emacs")
2207 (description "This package silences most output of Emacs when running an
2208Emacs shell script.")
2209 (license license:expat)))
2210
2211(define-public emacs-undercover
2212 (package
2213 (name "emacs-undercover")
2214 (version "0.6.0")
2215 (source
2216 (origin
2217 (method url-fetch)
2218 (uri (string-append "https://github.com/sviridov/undercover.el/"
2219 "archive/v" version ".tar.gz"))
2220 (file-name (string-append name "-" version ".tar.gz"))
2221 (sha256
2222 (base32
2223 "0f48fi0xnbsqs382rgh85m9mq1wdnr0yib7as9xhwzvq0hsr5m0a"))))
2224 (build-system emacs-build-system)
2225 (propagated-inputs
2226 `(("emacs-dash" ,emacs-dash)
2227 ("emacs-shut-up" ,emacs-shut-up)))
2228 (home-page "https://github.com/sviridov/undercover.el")
2229 (synopsis "Test coverage library for Emacs Lisp")
2230 (description
2231 "Undercover is a test coverage library for software written in Emacs
2232Lisp.")
2233 (license license:expat)))
2234
2235(define-public emacs-paren-face
2236 (package
2237 (name "emacs-paren-face")
2238 (version "1.0.0")
2239 (source
2240 (origin
2241 (method url-fetch)
2242 (uri (string-append "https://github.com/tarsius/paren-face/archive/"
2243 version ".tar.gz"))
2244 (file-name (string-append name "-" version ".tar.gz"))
2245 (sha256
2246 (base32
2247 "0y4qrhxa9332vsvr999jg7qj1ymnfgwpf591yi4a4jgg90pm7qnn"))))
2248 (build-system emacs-build-system)
2249 (home-page "https://github.com/tarsius/paren-face")
2250 (synopsis "Face for parentheses in lisp modes")
2251 (description
2252 "This library defines a face named @code{parenthesis} used just for
2253parentheses. The intended purpose of this face is to make parentheses less
2254visible in Lisp code by dimming them. Lispers probably don't need to be
2255constantly made aware of the existence of the parentheses. Dimming them might
2256be even more useful for people new to lisp who have not yet learned to
2257subconsciously blend out the parentheses.")
2258 (license license:gpl3+)))
2259
2260(define-public emacs-page-break-lines
2261 (package
2262 (name "emacs-page-break-lines")
2263 (version "0.11")
2264 (source
2265 (origin
2266 (method url-fetch)
2267 (uri (string-append "https://github.com/purcell/page-break-lines/"
2268 "archive/" version ".tar.gz"))
2269 (file-name (string-append name "-" version ".tar.gz"))
2270 (sha256
2271 (base32
2272 "1zzhziq5kbrm9rxk30kx2glz455fp1blqxg8cpcf6l8xl3w8z4pg"))))
2273 (build-system emacs-build-system)
2274 (home-page "https://github.com/purcell/page-break-lines")
2275 (synopsis "Display page breaks as tidy horizontal lines")
2276 (description
2277 "This library provides a global mode which displays form feed characters
2278as horizontal rules.")
2279 (license license:gpl3+)))
2280
2281(define-public emacs-simple-httpd
2282 (package
2283 (name "emacs-simple-httpd")
2284 (version "1.4.6")
2285 (source
2286 (origin
2287 (method url-fetch)
2288 (uri (string-append "https://github.com/skeeto/emacs-web-server/"
2289 "archive/" version ".tar.gz"))
2290 (file-name (string-append name "-" version ".tar.gz"))
2291 (sha256
2292 (base32
2293 "01r7h3imnj4qx1m53a2wjafvbylcyz5f9r2rg2cs7ky3chlg220r"))))
2294 (build-system emacs-build-system)
2295 (home-page "https://github.com/skeeto/emacs-http-server")
2296 (synopsis "HTTP server in pure Emacs Lisp")
2297 (description
2298 "This package provides a simple HTTP server written in Emacs Lisp to
2299serve files and directory listings.")
2300 (license license:unlicense)))
2301
2302(define-public emacs-skewer-mode
2303 (package
2304 (name "emacs-skewer-mode")
2305 (version "1.6.2")
2306 (source
2307 (origin
2308 (method url-fetch)
2309 (uri (string-append "https://github.com/skeeto/skewer-mode/archive/"
2310 version ".tar.gz"))
2311 (file-name (string-append name "-" version ".tar.gz"))
2312 (sha256
2313 (base32
2314 "07jpz374j0j964szy3zznrkyja2kpdl3xa87wh7349mzxivqxdx0"))))
2315 (build-system emacs-build-system)
2316 (propagated-inputs
2317 `(("emacs-simple-httpd" ,emacs-simple-httpd)
2318 ("emacs-js2-mode" ,emacs-js2-mode)))
2319 (arguments '(#:include '("\\.el$" "\\.js$" "\\.html$")))
2320 (home-page "https://github.com/skeeto/skewer-mode")
2321 (synopsis "Live web development in Emacs")
2322 (description
2323 "Skewer-mode provides live interaction with JavaScript, CSS, and HTML in
2324a web browser. Expressions are sent on-the-fly from an editing buffer to be
2325evaluated in the browser, just like Emacs does with an inferior Lisp process
2326in Lisp modes.")
2327 (license license:unlicense)))
2328
2329(define-public emacs-string-inflection
2330 (package
2331 (name "emacs-string-inflection")
2332 (version "1.0.6")
2333 (source (origin
2334 (method git-fetch)
2335 (uri (git-reference
2336 (url "https://github.com/akicho8/string-inflection")
2337 (commit "a150e7bdda60b7824d3a936750ce23f73b0e4edd")))
2338 (file-name (string-append name "-" version "-checkout"))
2339 (sha256
2340 (base32
2341 "1k0sm552iawi49v4zis6dbb81d1rzgky9v0dpv7nj31gnb7bmy7k"))))
2342 (build-system emacs-build-system)
2343 (native-inputs
2344 `(("ert-runner" ,emacs-ert-runner)))
2345 (arguments
2346 `(#:tests? #t
2347 #:test-command '("ert-runner")))
2348 (home-page "https://github.com/akicho8/string-inflection")
2349 (synopsis "Convert symbol names between different naming conventions")
2350 (description
2351 "This Emacs package provides convenient methods for manipulating the
2352naming style of a symbol. It supports different naming conventions such as:
2353
2354@enumerate
2355@item camel case
2356@item Pascal case
2357@item all upper case
2358@item lower case separated by underscore
2359@item etc...
2360@end enumerate\n")
2361 (license license:gpl2+)))
2362
2363(define-public emacs-stripe-buffer
2364 (package
2365 (name "emacs-stripe-buffer")
2366 (version "0.2.5")
2367 (source
2368 (origin
2369 (method url-fetch)
2370 (uri (string-append "https://github.com/sabof/stripe-buffer/"
2371 "archive/" version ".tar.gz"))
2372 (file-name (string-append name "-" version ".tar.gz"))
2373 (sha256
2374 (base32
2375 "1p515dq7raly5hw94kiwm3vzsfih0d8af622q4ipvvljsm98aiik"))))
2376 (build-system emacs-build-system)
2377 (home-page "https://github.com/sabof/stripe-buffer/")
2378 (synopsis "Add stripes to list buffers")
2379 (description
2380 "This Emacs package adds faces to add stripes to list buffers and org
2381tables.")
2382 (license license:gpl2+)))
2383
2384(define-public emacs-rich-minority
2385 (package
2386 (name "emacs-rich-minority")
2387 (version "1.0.1")
2388 (source
2389 (origin
2390 (method url-fetch)
2391 (uri (string-append "https://github.com/Malabarba/rich-minority/"
2392 "archive/" version ".tar.gz"))
2393 (file-name (string-append name "-" version ".tar.gz"))
2394 (sha256
2395 (base32
2396 "1l0cb0q7kyi88nwfqd542psnkgwnjklpzc5rx32gzd3lkwkrbr8v"))))
2397 (build-system emacs-build-system)
2398 (home-page "https://github.com/Malabarba/rich-minority")
2399 (synopsis "Clean-up and beautify the list of minor modes")
2400 (description
2401 "This Emacs package hides and/or highlights minor modes in the
2402mode-line.")
2403 (license license:gpl2+)))
2404
2405(define-public emacs-robe
2406 (package
2407 (name "emacs-robe")
2408 (version "0.8.1")
2409 (source
2410 (origin
2411 (method url-fetch)
2412 (uri (string-append "https://github.com/dgutov/robe/"
2413 "archive/" version ".tar.gz"))
2414 (file-name (string-append name "-" version ".tar.gz"))
2415 (sha256
2416 (base32
2417 "1vp45y99fwj88z04ah4yppz4z568qcib646az6m9az5ar0f203br"))))
2418 (build-system emacs-build-system)
2419 (arguments
2420 '(#:include (cons "^lib\\/" %default-include)))
2421 (propagated-inputs
2422 `(("emacs-inf-ruby" ,emacs-inf-ruby)))
2423 (home-page "https://github.com/dgutov/robe")
2424 (synopsis "Ruby code assistance tool for Emacs")
2425 (description
2426 "Robe can provide information on loaded classes and modules in Ruby code,
2427as well as where methods are defined. This allows the user to jump to method
2428definitions, modules and classes, display method documentation and provide
2429method and constant name completion.")
2430 (license license:gpl3+)))
2431
2432(define-public emacs-rspec
2433 (package
2434 (name "emacs-rspec")
2435 (version "1.11")
2436 (source
2437 (origin
2438 (method url-fetch)
2439 (uri (string-append "https://github.com/pezra/rspec-mode/"
2440 "archive/v" version ".tar.gz"))
2441 (file-name (string-append name "-" version ".tar.gz"))
2442 (sha256
2443 (base32
2444 "1j0a7ms5516nlg60qfyn730pfxys6acm0rgyxh5xfkpi6jafgpvw"))))
2445 (build-system emacs-build-system)
2446 (home-page "https://github.com/pezra/rspec-mode")
2447 (synopsis "Provides a rspec mode for working with RSpec")
2448 (description
2449 "The Emacs RSpec mode provides keybindings for Ruby source files, e.g. to
2450verify the spec associated with the current buffer, or entire project, as well
2451as moving between the spec files, and coresponding code files.
2452
2453Also included are keybindings for spec files and Dired buffers, as well as
2454snippets for yasnippet.")
2455 (license license:gpl3+)))
2456
2457(define-public emacs-smart-mode-line
2458 (package
2459 (name "emacs-smart-mode-line")
2460 (version "2.12.0")
2461 (source
2462 (origin
2463 (method url-fetch)
2464 (uri (string-append "https://github.com/Malabarba/smart-mode-line/"
2465 "archive/" version ".tar.gz"))
2466 (file-name (string-append name "-" version ".tar.gz"))
2467 (sha256
2468 (base32
2469 "1hn8s6laijmg7w1bgwdfrki6h9vxkbgr8rmmssvd5yqyad5w2sba"))))
2470 (build-system emacs-build-system)
2471 (propagated-inputs
2472 `(("emacs-rich-minority" ,emacs-rich-minority)))
2473 (home-page "https://github.com/Malabarba/smart-mode-line")
2474 (synopsis "Color-coded smart mode-line")
2475 (description
2476 "Smart Mode Line is a mode-line theme for Emacs. It aims to be easy to
2477read from small to large monitors by using colors, a prefix feature, and smart
2478truncation.")
2479 (license license:gpl2+)))
2480
2481(define-public emacs-sr-speedbar
2482 (let ((commit "77a83fb50f763a465c021eca7343243f465b4a47")
2483 (revision "0"))
2484 (package
2485 (name "emacs-sr-speedbar")
2486 (version (git-version "20161025" revision commit))
2487 (source
2488 (origin
2489 (method git-fetch)
2490 (uri (git-reference
2491 (url "https://github.com/emacsorphanage/sr-speedbar.git")
2492 (commit commit)))
2493 (file-name (git-file-name name version))
2494 (sha256
2495 (base32
2496 "0sd12555hk7z721y00kv3crdybvcn1i08wmd148z5imayzibj153"))))
2497 (build-system emacs-build-system)
2498 (home-page "https://www.emacswiki.org/emacs/SrSpeedbar")
2499 (synopsis "Same frame Emacs @code{speedbar}")
2500 (description
2501 "This Emacs package allows you to show @code{M-x speedbar} in the
2502same frame (in an extra window). You can customize the initial width of
2503the speedbar window.")
2504 (license license:gpl3+))))
2505
2506(define-public emacs-shell-switcher
2507 (package
2508 (name "emacs-shell-switcher")
2509 (version "1.0.1")
2510 (source
2511 (origin
2512 (method url-fetch)
2513 (uri (string-append "https://github.com/DamienCassou/shell-switcher"
2514 "/archive/v" version ".tar.gz"))
2515 (file-name (string-append name "-" version ".tar.gz"))
2516 (sha256
2517 (base32
2518 "1c23mfkdqz2g9rixd9smm323vzlvhzz3ng34ambcqjfq309qb2nz"))))
2519 (build-system emacs-build-system)
2520 (home-page "https://github.com/DamienCassou/shell-switcher")
2521 (synopsis "Provide fast switching between shell buffers")
2522 (description
2523 "This package provides commands to quickly switch between shell buffers.")
2524 (license license:gpl3+)))
2525
2526(define-public emacs-ob-ipython
2527 (package
2528 (name "emacs-ob-ipython")
2529 (version "20150704.8807064693")
2530 (source (origin
2531 (method git-fetch)
2532 (uri (git-reference
2533 (commit "880706469338ab59b5bb7dbe8460016f89755364")
2534 (url "https://github.com/gregsexton/ob-ipython.git")))
2535 (file-name (string-append name "-" version "-checkout"))
2536 (sha256
2537 (base32
2538 "1scf25snbds9ymagpny30ijbsg479r3nm0ih01dy4m9d0g7qryb7"))))
2539 (build-system emacs-build-system)
2540 (propagated-inputs
2541 `(("emacs-f" ,emacs-f)))
2542 (home-page "http://www.gregsexton.org")
2543 (synopsis "Org-Babel functions for IPython evaluation")
2544 (description "This package adds support to Org-Babel for evaluating Python
2545source code using IPython.")
2546 (license license:gpl3+)))
2547
2548(define-public emacs-debbugs
2549 (package
2550 (name "emacs-debbugs")
2551 (version "0.16")
2552 (source (origin
2553 (method url-fetch)
2554 (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
2555 version ".tar"))
2556 (sha256
2557 (base32
2558 "0y3bq803c7820h15g66d1648skxfhlfa2v6vincj6xk5ssp44s9p"))))
2559 (build-system emacs-build-system)
2560 (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
2561 (propagated-inputs
2562 `(("emacs-async" ,emacs-async)))
2563 (home-page "https://elpa.gnu.org/packages/debbugs.html")
2564 (synopsis "Access the Debbugs bug tracker in Emacs")
2565 (description
2566 "This package lets you access the @uref{http://bugs.gnu.org,GNU Bug
2567Tracker} from within Emacs.
2568
2569For instance, it defines the command @code{M-x debbugs-gnu} for listing bugs,
2570and the command @code{M-x debbugs-gnu-search} for bug searching. If you
2571prefer the listing of bugs as TODO items of @code{org-mode}, you could use
2572@code{M-x debbugs-org} and related commands.
2573
2574A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug
2575Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.")
2576 (license license:gpl3+)))
2577
2578(define-public emacs-ert-expectations
2579 (package
2580 (name "emacs-ert-expectations")
2581 (version "0.2")
2582 (source
2583 (origin
2584 (method url-fetch)
2585 (uri "https://www.emacswiki.org/emacs/download/ert-expectations.el")
2586 (sha256
2587 (base32
2588 "0cwy3ilsid90abzzjb7ha2blq9kmv3gfp3icwwfcz6qczgirq6g7"))))
2589 (build-system emacs-build-system)
2590 (home-page "https://www.emacswiki.org/emacs/ert-expectations.el")
2591 (synopsis "Simple unit test framework for Emacs Lisp")
2592 (description "@code{emacs-ert-expectations} is a simple unit test
2593framework for Emacs Lisp to be used with @code{ert}.")
2594 (license license:gpl3+)))
2595
2596(define-public emacs-deferred
2597 (package
2598 (name "emacs-deferred")
2599 (version "0.5.1")
2600 (home-page "https://github.com/kiwanami/emacs-deferred")
2601 (source (origin
2602 (method git-fetch)
2603 (uri (git-reference
2604 (url home-page)
2605 (commit (string-append "v" version))))
2606 (sha256
2607 (base32
2608 "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"))
2609 (file-name (string-append name "-" version))))
2610 (build-system emacs-build-system)
2611 (arguments
2612 `(#:phases
2613 (modify-phases %standard-phases
2614 (add-after 'unpack 'set-shell
2615 ;; Setting the SHELL environment variable is required for the tests
2616 ;; to find sh.
2617 (lambda _
2618 (setenv "SHELL" (which "sh"))
2619 #t))
2620 (add-before 'check 'fix-makefile
2621 (lambda _
2622 (substitute* "Makefile"
2623 (("\\$\\(CASK\\) exec ") ""))
2624 #t)))
2625 #:tests? #t
2626 #:test-command '("make" "test")))
2627 (native-inputs
2628 `(("emacs-ert-expectations" ,emacs-ert-expectations)
2629 ("emacs-undercover" ,emacs-undercover)
2630 ("ert-runner" ,emacs-ert-runner)))
2631 (synopsis "Simple asynchronous functions for Emacs Lisp")
2632 (description
2633 "The @code{deferred.el} library provides support for asynchronous tasks.
2634The API is almost the same as that of
2635@uref{https://github.com/cho45/jsdeferred, JSDeferred}, a JavaScript library
2636for asynchronous tasks.")
2637 (license license:gpl3+)))
2638
2639(define-public emacs-butler
2640 (package
2641 (name "emacs-butler")
2642 (version "0.2.4")
2643 (home-page "https://github.com/AshtonKem/Butler")
2644 (source (origin
2645 (method git-fetch)
2646 (uri (git-reference
2647 (url home-page)
2648 (commit version)))
2649 (sha256
2650 (base32
2651 "1pii9dw4skq7nr4na6qxqasl36av8cwjp71bf1fgppqpcd9z8skj"))
2652 (file-name (string-append name "-" version))))
2653 (build-system emacs-build-system)
2654 (propagated-inputs
2655 `(("emacs-deferred" ,emacs-deferred)))
2656 (synopsis "Emacs client for Jenkins")
2657 (description
2658 "Butler provides an interface to connect to Jenkins continuous
2659integration servers. Users can specify a list of server in the
2660@code{butler-server-list} variable and then use @code{M-x butler-status} to
2661view the build status of those servers' build jobs, and possibly to trigger
2662build jobs.")
2663 (license license:gpl3+)))
2664
2665(define-public emacs-company
2666 (package
2667 (name "emacs-company")
2668 (version "0.9.7")
2669 (source
2670 (origin
2671 (method url-fetch)
2672 (uri (string-append "https://github.com/company-mode/company-mode/archive/"
2673 version ".tar.gz"))
2674 (file-name (string-append name "-" version ".tar.gz"))
2675 (sha256
2676 (base32
2677 "19flv38f2qhxda8lbk2ckywvibd72vbzmn4hchqz6d8acsknh4sb"))))
2678 (build-system emacs-build-system)
2679 (arguments
2680 `(#:phases
2681 (modify-phases %standard-phases
2682 (add-before 'check 'fix-bin-dir
2683 (lambda _
2684 ;; The company-files-candidates-normal-root test looks
2685 ;; for the /bin directory, but the build environment has
2686 ;; no /bin directory. Modify the test to look for the
2687 ;; /tmp directory.
2688 (substitute* "test/files-tests.el"
2689 (("/bin/") "/tmp/"))
2690 #t)))
2691 #:tests? #t
2692 #:test-command '("make" "test-batch")))
2693 (home-page "http://company-mode.github.io/")
2694 (synopsis "Modular text completion framework")
2695 (description
2696 "Company is a modular completion mechanism. Modules for retrieving
2697completion candidates are called back-ends, modules for displaying them are
2698front-ends. Company comes with many back-ends, e.g. @code{company-elisp}.
2699These are distributed in separate files and can be used individually.")
2700 (license license:gpl3+)))
2701
2702(define-public emacs-irony-mode
2703 (package
2704 (name "emacs-irony-mode")
2705 (version "1.2.0")
2706 (home-page "https://github.com/Sarcasm/irony-mode")
2707 (source (origin
2708 (method git-fetch)
2709 (uri (git-reference
2710 (url (string-append home-page ".git"))
2711 (commit (string-append "v" version))))
2712 (sha256
2713 (base32
2714 "0nhjrnlmss535jbshjjd30vydbr8py21vkx4p294w6d8vg2rssf8"))
2715 (file-name (string-append name "-" version ".tar.gz"))))
2716 (build-system emacs-build-system)
2717 (inputs `(("server" ,emacs-irony-mode-server)))
2718 (arguments `(#:phases
2719 (modify-phases %standard-phases
2720 (add-after 'unpack 'configure
2721 (lambda* (#:key inputs #:allow-other-keys)
2722 (chmod "irony.el" #o644)
2723 (emacs-substitute-variables "irony.el"
2724 ("irony-server-install-prefix"
2725 (assoc-ref inputs "server")))
2726 #t)))))
2727 (synopsis "C/C++/ObjC Code completion and syntax checks for Emacs")
2728 (description "Irony-mode provides Clang-assisted syntax checking and
2729completion for C, C++, and ObjC in GNU Emacs. Using @code{libclang} it can
2730provide syntax checking and autocompletion on compiler level which is very
2731resistent against false positives. It also integrates well with other
2732packages like @code{eldoc-mode} and especially @code{company-mode} as
2733described on the homepage.")
2734 (license license:gpl3+)))
2735
2736(define-public emacs-irony-mode-server
2737 (package (inherit emacs-irony-mode)
2738 (name "emacs-irony-mode-server")
2739 (inputs
2740 `(("clang" ,clang)))
2741 (arguments
2742 `(#:phases
2743 (modify-phases %standard-phases
2744 (replace 'configure
2745 (lambda* (#:key outputs #:allow-other-keys)
2746 (let ((out (assoc-ref outputs "out")))
2747 (invoke "cmake"
2748 "server"
2749 (string-append "-DCMAKE_INSTALL_PREFIX=" out)) #t))))))
2750 (build-system cmake-build-system)
2751 (synopsis "Server for the Emacs @dfn{irony mode}")))
2752
2753(define-public emacs-company-irony
2754 (package
2755 (name "emacs-company-irony")
2756 (version "1.1.0")
2757 (source (origin
2758 (method git-fetch)
2759 (uri (git-reference
2760 (url "https://github.com/Sarcasm/company-irony.git")
2761 (commit (string-append "v" version))))
2762 (sha256 (base32
2763 "1qgyam2vyjw90kpxns5cd6bq3qiqjhzpwrlvmi18vyb69qcgqd8a"))
2764 (file-name (git-file-name name version))))
2765 (build-system emacs-build-system)
2766 (inputs
2767 `(("emacs-irony-mode" ,emacs-irony-mode)
2768 ("emacs-company" ,emacs-company)))
2769 (synopsis "C++ completion backend for Company using irony-mode")
2770 (description "This backend for company-mode allows for C++ code completion
2771with irony-mode using clang-tooling.")
2772 (home-page "https://github.com/Sarcasm/company-irony")
2773 (license license:gpl3+)))
2774
2775(define-public emacs-flycheck-irony
2776 (package
2777 (name "emacs-flycheck-irony")
2778 (version "0.1.0")
2779 (source (origin
2780 (method git-fetch)
2781 (uri (git-reference
2782 (url "https://github.com/Sarcasm/flycheck-irony.git")
2783 (commit (string-append "v" version))))
2784 (sha256
2785 (base32 "0qa5a8wzvzxwqql92ibc9s43k8sj3vwn7skz9hfr8av0skkhx996"))
2786 (file-name (string-append name "-" version))))
2787 (build-system emacs-build-system)
2788 (inputs
2789 `(("irony-mode" ,emacs-irony-mode)
2790 ("flycheck-mode" ,emacs-flycheck)
2791 ("emacs-company" ,emacs-company)))
2792 (synopsis "Live syntax checking frontend for Flycheck using irony-mode")
2793 (description "This package provides a frontend for Flycheck that lets
2794irony-mode do the syntax checking.")
2795 (home-page "https://github.com/Sarcasm/flycheck-irony")
2796 (license license:gpl3+)))
2797
2798(define-public emacs-irony-eldoc
2799 (package
2800 (name "emacs-irony-eldoc")
2801 (version (package-version emacs-irony-mode))
2802 (source
2803 (origin
2804 (method git-fetch)
2805 (uri (git-reference
2806 (url "https://github.com/ikirill/irony-eldoc.git")
2807 (commit "0df5831eaae264a25422b061eb2792aadde8b3f2")))
2808 (sha256 (base32 "1l5qpr66v1l12fb50yh73grb2rr85xxmbj19mm33b5rdrq2bqmmd"))
2809 (file-name (string-append name "-" version))))
2810 (build-system emacs-build-system)
2811 (inputs
2812 `(("irony-mode" ,emacs-irony-mode)))
2813 (synopsis "Eldoc integration for irony-mode")
2814 (description "Irony-eldoc is an eldoc extension that shows documentation
2815for the current function or variable in the minibuffer.")
2816 (home-page "https://github.com/ikirill/irony-eldoc")
2817 (license license:gpl3+)))
2818
2819(define-public emacs-company-quickhelp
2820 (package
2821 (name "emacs-company-quickhelp")
2822 (version "2.3.0")
2823 (source
2824 (origin
2825 (method url-fetch)
2826 (uri (string-append
2827 "https://github.com/expez/company-quickhelp/archive/"
2828 version ".tar.gz"))
2829 (file-name (string-append name "-" version ".tar.gz"))
2830 (sha256
2831 (base32
2832 "0xrn2z1dgk5gmkmp2jkn9g83ckk39lqp5pyyv8rl7f6gqvib3qh0"))))
2833 (build-system emacs-build-system)
2834 (propagated-inputs
2835 `(("emacs-pos-tip" ,emacs-pos-tip)
2836 ("emacs-company" ,emacs-company)))
2837 (home-page "https://github.com/expez/company-quickhelp")
2838 (synopsis "Popup documentation for completion candidates")
2839 (description "@code{company-quickhelp} shows documentation for the
2840completion candidate when using the Company text completion framework.")
2841 (license license:gpl3+)))
2842
2843(define-public emacs-multiple-cursors
2844 (package
2845 (name "emacs-multiple-cursors")
2846 (version "1.4.0")
2847 (source
2848 (origin
2849 (method url-fetch)
2850 (uri (string-append "https://github.com/magnars/multiple-cursors.el/"
2851 "archive/" version ".tar.gz"))
2852 (file-name (string-append name "-" version ".tar.gz"))
2853 (sha256
2854 (base32
2855 "0hihihlvcvzayg5fnqzcg45fhvlmq6xlq58syy00rjwbry9w389k"))))
2856 (build-system emacs-build-system)
2857 (home-page "https://github.com/magnars/multiple-cursors.el")
2858 (synopsis "Multiple cursors for Emacs")
2859 (description
2860 "This package adds support to Emacs for editing text with multiple
2861simultaneous cursors.")
2862 (license license:gpl3+)))
2863
2864(define-public emacs-typo
2865 (package
2866 (name "emacs-typo")
2867 (version "1.1")
2868 (home-page "https://github.com/jorgenschaefer/typoel")
2869 (source (origin
2870 (method git-fetch)
2871 (uri (git-reference
2872 (url home-page)
2873 (commit (string-append "v" version))))
2874 (sha256
2875 (base32
2876 "1jhd4grch5iz12gyxwfbsgh4dmz5hj4bg4gnvphccg8dsnni05k2"))
2877 (file-name (string-append name "-" version))))
2878 (build-system emacs-build-system)
2879 (synopsis "Minor mode for typographic editing")
2880 (description
2881 "This package provides two Emacs modes, @code{typo-mode} and
2882@code{typo-global-mode}. These modes automatically insert Unicode characters
2883for quotation marks, dashes, and ellipses. For example, typing @kbd{\"}
2884automatically inserts a Unicode opening or closing quotation mark, depending
2885on context.")
2886 (license license:gpl3+)))
2887
2888(define-public emacs-scheme-complete
2889 (let ((commit "9b5cf224bf2a5994bc6d5b152ff487517f1a9bb5"))
2890 (package
2891 (name "emacs-scheme-complete")
2892 (version (string-append "20151223." (string-take commit 8)))
2893 (source
2894 (origin
2895 (file-name (string-append name "-" version))
2896 (method git-fetch)
2897 (uri (git-reference
2898 (url "https://github.com/ashinn/scheme-complete.git")
2899 (commit commit)))
2900 (sha256
2901 (base32
2902 "141wn9l0m33w0g3dqmx8nxbfdny1r5xbr6ak61rsz21bk0qafs7x"))
2903 (patches
2904 (search-patches "emacs-scheme-complete-scheme-r5rs-info.patch"))))
2905 (build-system emacs-build-system)
2906 (home-page "https://github.com/ashinn/scheme-complete")
2907 (synopsis "Smart tab completion for Scheme in Emacs")
2908 (description
2909 "This file provides a single function, @code{scheme-smart-complete},
2910which you can use for intelligent, context-sensitive completion for any Scheme
2911implementation in Emacs. To use it just load this file and bind that function
2912to a key in your preferred mode.")
2913 (license license:public-domain))))
2914
2915(define-public emacs-scel
2916 (let ((version "20170629")
2917 (revision "1")
2918 (commit "aeea3ad4be9306d14c3a734a4ff54fee10ac135b"))
2919 (package
2920 (name "emacs-scel")
2921 (version (git-version version revision commit))
2922 (source
2923 (origin
2924 (method git-fetch)
2925 (uri (git-reference
2926 (url "https://github.com/supercollider/scel.git")
2927 (commit commit)))
2928 (file-name (string-append name "-" version "-checkout"))
2929 (sha256
2930 (base32
2931 "0jvmzs1lsjyndqshhii2y4mnr3wghai26i3p75453zrpxpg0zvvw"))))
2932 (build-system emacs-build-system)
2933 (arguments
2934 `(#:modules ((guix build emacs-build-system)
2935 ((guix build cmake-build-system) #:prefix cmake:)
2936 (guix build utils))
2937 #:imported-modules (,@%emacs-build-system-modules
2938 (guix build cmake-build-system))
2939 #:phases
2940 (modify-phases %standard-phases
2941 (add-after 'unpack 'configure
2942 (lambda* (#:key outputs #:allow-other-keys)
2943 (substitute* "el/CMakeLists.txt"
2944 (("share/emacs/site-lisp/SuperCollider")
2945 (string-append
2946 "share/emacs/site-lisp/guix.d/scel-" ,version)))
2947 ((assoc-ref cmake:%standard-phases 'configure)
2948 #:outputs outputs
2949 #:configure-flags '("-DSC_EL_BYTECOMPILE=OFF"))))
2950 (add-after 'set-emacs-load-path 'add-el-dir-to-emacs-load-path
2951 (lambda _
2952 (setenv "EMACSLOADPATH"
2953 (string-append (getcwd) "/el:" (getenv "EMACSLOADPATH")))
2954 #t))
2955 (replace 'install (assoc-ref cmake:%standard-phases 'install)))))
2956 (inputs
2957 `(("supercollider" ,supercollider)))
2958 (native-inputs
2959 `(("cmake" ,cmake)))
2960 (home-page "https://github.com/supercollider/scel")
2961 (synopsis "SuperCollider Emacs interface")
2962 (description "@code{emacs-scel} is an Emacs interface to SuperCollider.
2963SuperCollider is a platform for audio synthesis and algorithmic composition.")
2964 (license license:gpl2+))))
2965
2966(define-public emacs-mit-scheme-doc
2967 (package
2968 (name "emacs-mit-scheme-doc")
2969 (version "20140203")
2970 (source
2971 (origin
2972 (modules '((guix build utils)))
2973 (snippet
2974 ;; keep only file of interest
2975 '(begin
2976 (for-each delete-file '("dot-emacs.el" "Makefile"))
2977 (install-file "6.945-config/mit-scheme-doc.el" ".")
2978 (delete-file-recursively "6.945-config")
2979 #t))
2980 (file-name (string-append name "-" version ".tar.bz2"))
2981 (method url-fetch)
2982 (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/"
2983 "6.945/dont-panic/emacs-basic-config.tar.bz2"))
2984 (sha256
2985 (base32
2986 "0dqidg2bd66pawqfarvwca93w5gqf9mikn1k2a2rmd9ymfjpziq1"))))
2987 (build-system emacs-build-system)
2988 (inputs `(("mit-scheme" ,mit-scheme)))
2989 (arguments
2990 `(#:phases
2991 (modify-phases %standard-phases
2992 (add-after 'unpack 'configure-doc
2993 (lambda* (#:key inputs #:allow-other-keys)
2994 (let* ((mit-scheme-dir (assoc-ref inputs "mit-scheme"))
2995 (doc-dir (string-append mit-scheme-dir "/share/doc/"
2996 "mit-scheme-"
2997 ,(package-version mit-scheme))))
2998 (substitute* "mit-scheme-doc.el"
2999 (("http://www\\.gnu\\.org/software/mit-scheme/documentation/mit-scheme-ref/")
3000 (string-append "file:" doc-dir "/mit-scheme-ref/")))))))))
3001 (home-page "http://groups.csail.mit.edu/mac/users/gjs/6.945/dont-panic/")
3002 (synopsis "MIT-Scheme documentation lookup for Emacs")
3003 (description
3004 "This package provides a set of Emacs functions to search definitions of
3005identifiers in the MIT-Scheme documentation.")
3006 (license license:gpl2+)))
3007
3008(define-public emacs-constants
3009 (package
3010 (name "emacs-constants")
3011 (version "2.6")
3012 (home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
3013 (source
3014 (origin
3015 (file-name (string-append name "-" version ".tar.gz"))
3016 (method url-fetch)
3017 (uri (string-append "https://github.com/fedeinthemix/emacs-constants"
3018 "/archive/v" version ".tar.gz"))
3019 (sha256
3020 (base32
3021 "0pnrpmmxq8mh5h2hbrp5vcym0j0fh6dv3s7c5ccn18wllhzg9g7n"))))
3022 (build-system emacs-build-system)
3023 (synopsis "Enter definition of constants into an Emacs buffer")
3024 (description
3025 "This package provides functions for inserting the definition of natural
3026constants and units into an Emacs buffer.")
3027 (license license:gpl2+)))
3028
3029(define-public emacs-tagedit
3030 (package
3031 (name "emacs-tagedit")
3032 (version "1.4.0")
3033 (source
3034 (origin
3035 (method url-fetch)
3036 (uri (string-append "https://github.com/magnars/tagedit/"
3037 "archive/" version ".tar.gz"))
3038 (file-name (string-append name "-" version ".tar.gz"))
3039 (sha256
3040 (base32
3041 "1apfnann4qklfdsmdi7icjsj18x7gwx8d83iqr4z25clszz95xfq"))))
3042 (build-system emacs-build-system)
3043 (propagated-inputs
3044 `(("emacs-s" ,emacs-s)
3045 ("emacs-dash" ,emacs-dash)))
3046 (home-page "https://github.com/magnars/tagedit")
3047 (synopsis "Some paredit-like features for html-mode")
3048 (description
3049 "This package provides a collection of paredit-like functions for editing
3050in @code{html-mode}.")
3051 (license license:gpl3+)))
3052
3053(define-public emacs-slime
3054 (package
3055 (name "emacs-slime")
3056 (version "2.22")
3057 (source
3058 (origin
3059 (file-name (string-append name "-" version ".tar.gz"))
3060 (method url-fetch)
3061 (uri (string-append
3062 "https://github.com/slime/slime/archive/v"
3063 version ".tar.gz"))
3064 (sha256
3065 (base32
3066 "07vaib1n4zyh5yy30gdpq0bc5cv6w84piml5b3mfc9ibjhaykkms"))))
3067 (build-system emacs-build-system)
3068 (native-inputs
3069 `(("texinfo" ,texinfo)))
3070 (arguments
3071 `(#:include '("\\.el$" "\\.lisp$" "\\.asd$" "contrib")
3072 #:exclude '("^slime-tests.el" "^contrib/test/"
3073 "^contrib/Makefile$" "^contrib/README.md$")
3074 #:phases
3075 (modify-phases %standard-phases
3076 (add-before 'install 'configure
3077 (lambda* _
3078 (emacs-substitute-variables "slime.el"
3079 ("inferior-lisp-program" "sbcl"))
3080 #t))
3081 (add-before 'install 'install-doc
3082 (lambda* (#:key outputs #:allow-other-keys)
3083 (let* ((out (assoc-ref outputs "out"))
3084 (info-dir (string-append out "/share/info"))
3085 (doc-dir (string-append out "/share/doc/"
3086 ,name "-" ,version))
3087 (doc-files '("doc/slime-refcard.pdf"
3088 "README.md" "NEWS" "PROBLEMS"
3089 "CONTRIBUTING.md")))
3090 (with-directory-excursion "doc"
3091 (substitute* "Makefile"
3092 (("infodir=/usr/local/info")
3093 (string-append "infodir=" info-dir)))
3094 (invoke "make" "html/index.html")
3095 (invoke "make" "slime.info")
3096 (install-file "slime.info" info-dir)
3097 (copy-recursively "html" (string-append doc-dir "/html")))
3098 (for-each (lambda (f)
3099 (install-file f doc-dir)
3100 (delete-file f))
3101 doc-files)
3102 (delete-file-recursively "doc")
3103 #t))))))
3104 (home-page "https://github.com/slime/slime")
3105 (synopsis "Superior Lisp Interaction Mode for Emacs")
3106 (description
3107 "SLIME extends Emacs with support for interactive programming in
3108Common Lisp. The features are centered around @command{slime-mode},
3109an Emacs minor mode that complements the standard @command{lisp-mode}.
3110While lisp-mode supports editing Lisp source files, @command{slime-mode}
3111adds support for interacting with a running Common Lisp process
3112for compilation, debugging, documentation lookup, and so on.")
3113 (license (list license:gpl2+ license:public-domain))))
3114
3115(define-public emacs-popup
3116 (package
3117 (name "emacs-popup")
3118 (version "0.5.3")
3119 (source (origin
3120 (method url-fetch)
3121 (uri (string-append
3122 "https://github.com/auto-complete/popup-el/archive/v"
3123 version ".tar.gz"))
3124 (file-name (string-append name "-" version ".tar.gz"))
3125 (sha256
3126 (base32
3127 "1yrgfj8y69xmcb6kwgplhq68ndm9410qwh7sd2knnd1gchpphdc0"))))
3128 (build-system emacs-build-system)
3129 (home-page "https://github.com/auto-complete/popup-el")
3130 (synopsis "Visual Popup User Interface for Emacs")
3131 (description
3132 "Popup.el is a visual popup user interface library for Emacs.
3133This provides a basic API and common UI widgets such as popup tooltips
3134and popup menus.")
3135 (license license:gpl3+)))
3136
3137(define-public emacs-puppet-mode
3138 (let ((commit "b3ed5057166a4f49dfa9be638523a348b55a2fd2")
3139 (revision "1"))
3140 (package
3141 (name "emacs-puppet-mode")
3142 ;; The last release, 0.3 was several years ago, and there have been many
3143 ;; commits since
3144 (version (git-version "0.3" revision commit))
3145 (source
3146 (origin
3147 (method url-fetch)
3148 (uri (string-append
3149 "https://raw.githubusercontent.com/voxpupuli/puppet-mode/"
3150 commit "/puppet-mode.el"))
3151 (sha256
3152 (base32
3153 "1indycxawsl0p2aqqg754f6735q3cmah9vd886rpn0ncc3ipi1xm"))))
3154 (build-system emacs-build-system)
3155 (home-page "https://github.com/voxpupuli/puppet-mode")
3156 (synopsis "Emacs major mode for the Puppet configuration language")
3157 (description
3158 "This package provides support for the Puppet configuration language,
3159including syntax highlighting, indentation of expressions and statements,
3160linting of manifests and integration with Puppet Debugger.")
3161 ;; Also incorporates work covered by the Apache License, Version 2.0
3162 (license license:gpl3+))))
3163
3164(define-public emacs-god-mode
3165 (let ((commit "6cf0807b6555eb6fcf8387a4e3b667071ef38964")
3166 (revision "1"))
3167 (package
3168 (name "emacs-god-mode")
3169 (version (string-append "20151005.925."
3170 revision "-" (string-take commit 9)))
3171 (source
3172 (origin
3173 (method git-fetch)
3174 (uri (git-reference
3175 (url "https://github.com/chrisdone/god-mode.git")
3176 (commit commit)))
3177 (file-name (string-append name "-" version "-checkout"))
3178 (sha256
3179 (base32
3180 "1am415k4xxcva6y3vbvyvknzc6bma49pq3p85zmpjsdmsp18qdix"))))
3181 (build-system emacs-build-system)
3182 (home-page "https://github.com/chrisdone/god-mode")
3183 (synopsis "Minor mode for entering commands without modifier keys")
3184 (description
3185 "This package provides a global minor mode for entering Emacs commands
3186without modifier keys. It's similar to Vim's separation of commands and
3187insertion mode. When enabled all keys are implicitly prefixed with
3188@samp{C-} (among other helpful shortcuts).")
3189 (license license:gpl3+))))
3190
3191(define-public emacs-jinja2-mode
3192 (package
3193 (name "emacs-jinja2-mode")
3194 (version "0.2")
3195 (source
3196 (origin
3197 (method url-fetch)
3198 (uri (string-append "https://github.com/paradoxxxzero/jinja2-mode/"
3199 "archive/v" version ".tar.gz"))
3200 (file-name (string-append name "-" version ".tar.gz"))
3201 (sha256
3202 (base32
3203 "0cgxjab1kla2zc2fj7bzib6i7snp08zshandmp9kqcm85l262xpn"))))
3204 (build-system emacs-build-system)
3205 (home-page "https://github.com/paradoxxxzero/jinja2-mode")
3206 (synopsis "Major mode for jinja2")
3207 (description
3208 "Emacs major mode for jinja2 with: syntax highlighting,
3209sgml/html integration, and indentation (working with sgml).")
3210 (license license:gpl3+)))
3211
3212(define-public emacs-rfcview
3213 (package
3214 (name "emacs-rfcview")
3215 (version "0.13")
3216 (home-page "http://www.loveshack.ukfsn.org/emacs")
3217 (source (origin
3218 (method url-fetch)
3219 (uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el")
3220 (sha256
3221 (base32
3222 "0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz"))))
3223 (build-system emacs-build-system)
3224 (synopsis "Prettify Request for Comments (RFC) documents")
3225 (description "The Internet Engineering Task Force (IETF) and the Internet
3226Society (ISOC) publish various Internet-related protocols and specifications
3227as \"Request for Comments\" (RFC) documents and Internet Standard (STD)
3228documents. RFCs and STDs are published in a simple text form. This package
3229provides an Emacs major mode, rfcview-mode, which makes it more pleasant to
3230read these documents in Emacs. It prettifies the text and adds
3231hyperlinks/menus for easier navigation. It also provides functions for
3232browsing the index of RFC documents and fetching them from remote servers or
3233local directories.")
3234 (license license:gpl3+)))
3235
3236(define-public emacs-ffap-rfc-space
3237 (package
3238 (name "emacs-ffap-rfc-space")
3239 (version "12")
3240 (home-page "http://user42.tuxfamily.org/ffap-rfc-space/index.html")
3241 (source (origin
3242 (method url-fetch)
3243 (uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el")
3244 (sha256
3245 (base32
3246 "1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck"))))
3247 (build-system emacs-build-system)
3248 (synopsis "Make ffap recognize an RFC with a space before its number")
3249 (description "The Internet Engineering Task Force (IETF) and the
3250Internet Society (ISOC) publish various Internet-related protocols and
3251specifications as \"Request for Comments\" (RFC) documents. The
3252built-in Emacs module \"ffap\" (Find File at Point) has the ability to
3253recognize names at point which look like \"RFC1234\" and \"RFC-1234\"
3254and load the appropriate RFC from a remote server. However, it fails
3255to recognize a name like \"RFC 1234\". This package enhances ffap so
3256that it correctly finds RFCs even when a space appears before the
3257number.")
3258 (license license:gpl3+)))
3259
3260(define-public emacs-org-bullets
3261 (package
3262 (name "emacs-org-bullets")
3263 (version "0.2.4")
3264 (source
3265 (origin
3266 (method url-fetch)
3267 (uri (string-append "https://github.com/sabof/org-bullets/archive/"
3268 version ".tar.gz"))
3269 (file-name (string-append name "-" version ".tar.gz"))
3270 (sha256
3271 (base32
3272 "1dyxvpb73vj80v8br2q9rf255hfphrgaw91fbvwdcd735np9pcnh"))))
3273 (build-system emacs-build-system)
3274 (home-page "https://github.com/sabof/org-bullets")
3275 (synopsis "Show bullets in org-mode as UTF-8 characters")
3276 (description
3277 "This package provides an Emacs minor mode causing bullets in
3278@code{org-mode} to be rendered as UTF-8 characters.")
3279 (license license:gpl3+)))
3280
3281(define-public emacs-org-pomodoro
3282 (package
3283 (name "emacs-org-pomodoro")
3284 (version "2.1.0")
3285 (source
3286 (origin
3287 (method url-fetch)
3288 (uri (string-append
3289 "https://github.com/lolownia/org-pomodoro/archive/"
3290 version ".tar.gz"))
3291 (file-name (string-append name "-" version ".tar.gz"))
3292 (sha256
3293 (base32
3294 "1jalsggw3q5kvj353f84x4nl04a5vmq07h75ggppy1627lb31zm4"))))
3295 (build-system emacs-build-system)
3296 (propagated-inputs
3297 `(("emacs-alert" ,emacs-alert)))
3298 (home-page "https://github.com/lolownia/org-pomodoro")
3299 (synopsis "Pomodoro technique for org-mode")
3300 (description "@code{emacs-org-pomodoro} adds very basic support for
3301Pomodoro technique in Emacs org-mode.
3302
3303Run @code{M-x org-pomodoro} for the task at point or select one of the
3304last tasks that you clocked time for. Each clocked-in pomodoro starts
3305a timer of 25 minutes and after each pomodoro a break timer of 5
3306minutes is started automatically. Every 4 breaks a long break is
3307started with 20 minutes. All values are customizable.")
3308 (license license:gpl3+)))
3309
3310(define-public emacs-org-trello
3311 (package
3312 (name "emacs-org-trello")
3313 (version "0.8.0")
3314 (source (origin
3315 (method url-fetch)
3316 (uri (string-append
3317 "https://github.com/org-trello/org-trello/archive/"
3318 version ".tar.gz"))
3319 (file-name (string-append name "-" version ".tar.gz"))
3320 (sha256
3321 (base32
3322 "0549mnf5cgwn8b8jbl38fljbaxmh1605sv9j8f3lsa95jhs1zpa0"))))
3323 (build-system emacs-build-system)
3324 (propagated-inputs
3325 `(("emacs-dash" ,emacs-dash)
3326 ("emacs-deferred" ,emacs-deferred)
3327 ("emacs-f" ,emacs-f)
3328 ("emacs-helm" ,emacs-helm)
3329 ("emacs-request" ,emacs-request)
3330 ("emacs-s" ,emacs-s)))
3331 (home-page "https://org-trello.github.io")
3332 (synopsis "Emacs minor mode for interacting with Trello")
3333 (description "This package provides an Emacs minor mode to extend
3334@code{org-mode} with Trello abilities. Trello is an online project
3335organizer.")
3336 (license license:gpl3+)))
3337
3338(define-public emacs-atom-one-dark-theme
3339 (let ((commit "1f1185bf667a38d3d0d180ce85fd4c131818aae2")
3340 (revision "0"))
3341 (package
3342 (name "emacs-atom-one-dark-theme")
3343 (version (git-version "0.4.0" revision commit))
3344 (source (origin
3345 (method git-fetch)
3346 (uri (git-reference
3347 (url "https://github.com/jonathanchu/atom-one-dark-theme.git")
3348 (commit commit)))
3349 (sha256
3350 (base32
3351 "1alma16hg3mfjly8a9s3mrswkjjx4lrpdnf43869hn2ibkn7zx9z"))
3352 (file-name (git-file-name name version))))
3353 (build-system emacs-build-system)
3354 (home-page "https://github.com/jonathanchu/atom-one-dark-theme")
3355 (synopsis "Atom One Dark color theme for Emacs")
3356 (description "An Emacs port of the Atom One Dark theme from Atom.io.")
3357 (license license:gpl3+))))
3358
3359(define-public emacs-zenburn-theme
3360 (package
3361 (name "emacs-zenburn-theme")
3362 (version "2.6")
3363 (source (origin
3364 (method url-fetch)
3365 (uri (string-append
3366 "https://github.com/bbatsov/zenburn-emacs/archive/v"
3367 version ".tar.gz"))
3368 (file-name (string-append name "-" version ".tar.gz"))
3369 (sha256
3370 (base32
3371 "0qc9d1rwq55yzh8shbppyd6izy1grpyr8kqh5zdgm7c5jccngpr4"))))
3372 (build-system emacs-build-system)
3373 (home-page "https://github.com/bbatsov/zenburn-emacs")
3374 (synopsis "Low contrast color theme for Emacs")
3375 (description
3376 "Zenburn theme is a port of the popular Vim Zenburn theme for Emacs.
3377It is built on top of the custom theme support in Emacs 24 or later.")
3378 (license license:gpl3+)))
3379
3380(define-public emacs-solarized-theme
3381 (package
3382 (name "emacs-solarized-theme")
3383 (version "1.2.2")
3384 (source (origin
3385 (method url-fetch)
3386 (uri (string-append "https://github.com/bbatsov/solarized-emacs/"
3387 "archive/v" version ".tar.gz"))
3388 (file-name (string-append name "-" version ".tar.gz"))
3389 (sha256
3390 (base32
3391 "1ha3slc6d9wi9ilkhmwrzkvf308n6ph7b0k69pk369s9304awxzx"))))
3392 (build-system emacs-build-system)
3393 (propagated-inputs
3394 `(("emacs-dash" ,emacs-dash)))
3395 (home-page "https://github.com/bbatsov/solarized-emacs")
3396 (synopsis "Port of the Solarized theme for Emacs")
3397 (description
3398 "Solarized for Emacs is a port of the Solarized theme for Vim. This
3399package provides a light and a dark variant.")
3400 (license license:gpl3+)))
3401
3402(define-public emacs-ahungry-theme
3403 (package
3404 (name "emacs-ahungry-theme")
3405 (version "1.10.0")
3406 (source
3407 (origin (method url-fetch)
3408 (uri (string-append "https://elpa.gnu.org/packages/ahungry-theme-"
3409 version ".tar"))
3410 (sha256
3411 (base32
3412 "14q5yw56n82qph09bk7wmj5b1snhh9w0nk5s1l7yn9ldg71xq6pm"))))
3413 (build-system emacs-build-system)
3414 (home-page "https://github.com/ahungry/color-theme-ahungry")
3415 (synopsis "Ahungry color theme for Emacs")
3416 (description "Ahungry theme for Emacs provides bright and bold colors.
3417If you load it from a terminal, you will be able to make use of the
3418transparent background. If you load it from a GUI, it will default to a
3419dark background.")
3420 (license license:gpl3+)))
3421
3422(define-public emacs-2048-game
3423 (package
3424 (name "emacs-2048-game")
3425 (version "20151026.1233")
3426 (source
3427 (origin
3428 (method url-fetch)
3429 (uri (string-append "https://melpa.org/packages/2048-game-"
3430 version ".el"))
3431 (sha256
3432 (base32
3433 "0gy2pvz79whpavp4jmz8h9krzn7brmvv3diixi1d4w51pcdvaldd"))))
3434 (build-system emacs-build-system)
3435 (home-page "https://bitbucket.org/zck/2048.el")
3436 (synopsis "Implementation of the game 2048 in Emacs Lisp")
3437 (description
3438 "This program is an implementation of 2048 for Emacs.
3439The goal of this game is to create a tile with value 2048. The size of the
3440board and goal value can be customized.")
3441 (license license:gpl3+)))
3442
3443(define-public emacs-base16-theme
3444 (package
3445 (name "emacs-base16-theme")
3446 (version "2.1")
3447 (source
3448 (origin
3449 (method url-fetch)
3450 (uri (string-append "https://stable.melpa.org/packages/base16-theme-"
3451 version ".tar"))
3452 (sha256
3453 (base32
3454 "0z6hrwz2jlz6jbr381rcqcqvx6hss5cad352klx07rark7zccacj"))))
3455 (build-system emacs-build-system)
3456 (home-page "https://github.com/belak/base16-emacs")
3457 (synopsis "Base16 color themes for Emacs")
3458 (description
3459 "Base16 provides carefully chosen syntax highlighting and a default set
3460of sixteen colors suitable for a wide range of applications. Base16 is not a
3461single theme but a set of guidelines with numerous implementations.")
3462 (license license:expat)))
3463
3464(define-public emacs-smartparens
3465 (package
3466 (name "emacs-smartparens")
3467 (version "1.11.0")
3468 (source (origin
3469 (method url-fetch)
3470 (uri (string-append
3471 "https://github.com/Fuco1/smartparens/archive/"
3472 version ".tar.gz"))
3473 (file-name (string-append name "-" version ".tar.gz"))
3474 (sha256
3475 (base32
3476 "0q5as813xs8y29i3v2rm97phd6m7xsmmw6hwbvx57gwmi8i1c409"))))
3477 (build-system emacs-build-system)
3478 (propagated-inputs
3479 `(("emacs-dash" ,emacs-dash)
3480 ("emacs-markdown-mode" ,emacs-markdown-mode)))
3481 (home-page "https://github.com/Fuco1/smartparens")
3482 (synopsis "Paredit-like insertion, wrapping and navigation with user
3483defined pairs")
3484 (description
3485 "Smartparens is a minor mode for Emacs that deals with parens pairs
3486and tries to be smart about it. It started as a unification effort to
3487combine functionality of several existing packages in a single,
3488compatible and extensible way to deal with parentheses, delimiters, tags
3489and the like. Some of these packages include autopair, textmate,
3490wrap-region, electric-pair-mode, paredit and others. With the basic
3491features found in other packages it also brings many improvements as
3492well as completely new features.")
3493 (license license:gpl3+)))
3494
3495(define-public emacs-highlight-symbol
3496 (package
3497 (name "emacs-highlight-symbol")
3498 (version "1.3")
3499 (source (origin
3500 (method url-fetch)
3501 (uri (string-append
3502 "https://github.com/nschum/highlight-symbol.el/archive/"
3503 version ".tar.gz"))
3504 (file-name (string-append name "-" version ".tar.gz"))
3505 (sha256
3506 (base32
3507 "1n7k1qns0fn0jsyc0hrjac5nzk21xw48yc30vyrhwvc51h0b9g90"))))
3508 (build-system emacs-build-system)
3509 (home-page "https://nschum.de/src/emacs/highlight-symbol")
3510 (synopsis "Automatic and manual symbol highlighting for Emacs")
3511 (description
3512 "Use @code{highlight-symbol} to toggle highlighting of the symbol at
3513point throughout the current buffer. Use @code{highlight-symbol-mode} to keep
3514the symbol at point highlighted.
3515
3516The functions @code{highlight-symbol-next}, @code{highlight-symbol-prev},
3517@code{highlight-symbol-next-in-defun} and
3518@code{highlight-symbol-prev-in-defun} allow for cycling through the locations
3519of any symbol at point. Use @code{highlight-symbol-nav-mode} to enable key
3520bindings @code{M-p} and @code{M-p} for navigation. When
3521@code{highlight-symbol-on-navigation-p} is set, highlighting is triggered
3522regardless of @code{highlight-symbol-idle-delay}.
3523
3524@code{highlight-symbol-query-replace} can be used to replace the symbol. ")
3525 (license license:gpl2+)))
3526
3527(define-public emacs-hl-todo
3528 (package
3529 (name "emacs-hl-todo")
3530 (version "1.9.0")
3531 (source (origin
3532 (method url-fetch)
3533 (uri (string-append
3534 "https://raw.githubusercontent.com/tarsius/hl-todo/"
3535 version "/hl-todo.el"))
3536 (file-name (string-append "hl-todo-" version ".el"))
3537 (sha256
3538 (base32
3539 "0728givzh7xv5i88ac9if8byj1p8bilrj1fnizca10s0rv100hdr"))))
3540 (build-system emacs-build-system)
3541 (home-page "https://github.com/tarsius/hl-todo")
3542 (synopsis "Emacs mode to highlight TODO and similar keywords")
3543 (description
3544 "This package provides an Emacs mode to highlight TODO and similar
3545keywords in comments and strings. This package also provides commands for
3546moving to the next or previous keyword and to invoke @code{occur} with a
3547regexp that matches all known keywords.")
3548 (license license:gpl3+)))
3549
3550(define-public emacs-perspective
3551 (package
3552 (name "emacs-perspective")
3553 (version "1.12")
3554 (source
3555 (origin
3556 (method url-fetch)
3557 (uri (string-append "https://github.com/nex3/perspective-el/"
3558 "archive/" version ".tar.gz"))
3559 (file-name (string-append name "-" version ".tar.gz"))
3560 (sha256
3561 (base32
3562 "078ahh0kmhdylq5ib9c81c76kz1n02xwc83pm729d00i84ibviic"))))
3563 (build-system emacs-build-system)
3564 (home-page "https://github.com/nex3/perspective-el")
3565 (synopsis "Switch between named \"perspectives\"")
3566 (description
3567 "This package provides tagged workspaces in Emacs, similar to workspaces in
3568windows managers such as Awesome and XMonad. @code{perspective.el} provides
3569multiple workspaces (or \"perspectives\") for each Emacs frame. Each
3570perspective is composed of a window configuration and a set of buffers.
3571Switching to a perspective activates its window configuration, and when in a
3572perspective only its buffers are available by default.")
3573 ;; This package is released under the same license as Emacs (GPLv3+) or
3574 ;; the Expat license.
3575 (license license:gpl3+)))
3576
3577(define-public emacs-test-simple
3578 (package
3579 (name "emacs-test-simple")
3580 (version "1.3.0")
3581 (source
3582 (origin
3583 (method url-fetch)
3584 (uri (string-append "https://elpa.gnu.org/packages/test-simple-"
3585 version ".el"))
3586 (sha256
3587 (base32
3588 "1yd61jc9ds95a5n09052kwc5gasy57g4lxr0jsff040brlyi9czz"))))
3589 (build-system emacs-build-system)
3590 (home-page "https://github.com/rocky/emacs-test-simple")
3591 (synopsis "Simple unit test framework for Emacs Lisp")
3592 (description
3593 "Test Simple is a simple unit test framework for Emacs Lisp. It
3594alleviates the need for context macros, enclosing specifications or required
3595test tags. It supports both interactive and non-interactive use.")
3596 (license license:gpl3+)))
3597
3598(define-public emacs-load-relative
3599 (package
3600 (name "emacs-load-relative")
3601 (version "1.3")
3602 (source
3603 (origin
3604 (method url-fetch)
3605 (uri (string-append "https://elpa.gnu.org/packages/load-relative-"
3606 version ".el"))
3607 (sha256
3608 (base32
3609 "1hfxb2436jdsi9wfmsv47lkkpa5galjf5q81bqabbsv79rv59dps"))))
3610 (build-system emacs-build-system)
3611 (home-page "http://github.com/rocky/emacs-load-relative")
3612 (synopsis "Emacs Lisp relative file loading related functions")
3613 (description
3614 "Provides functions which facilitate writing multi-file Emacs packages
3615and running from the source tree without having to \"install\" code or fiddle
3616with @{load-path}.
3617
3618The main function, @code{load-relative}, loads an Emacs Lisp file relative to
3619another (presumably currently running) Emacs Lisp file.")
3620 (license license:gpl3+)))
3621
3622(define-public emacs-loc-changes
3623 (package
3624 (name "emacs-loc-changes")
3625 (version "1.2")
3626 (source
3627 (origin
3628 (method url-fetch)
3629 (uri (string-append "https://elpa.gnu.org/packages/loc-changes-"
3630 version ".el"))
3631 (sha256
3632 (base32
3633 "1x8fn8vqasayf1rb8a6nma9n6nbvkx60krmiahyb05vl5rrsw6r3"))))
3634 (build-system emacs-build-system)
3635 (home-page "https://github.com/rocky/emacs-loc-changes")
3636 (synopsis "Keeps track of positions even after buffer changes")
3637 (description
3638 "This Emacs package provides a mean to track important buffer positions
3639after buffer changes.")
3640 (license license:gpl3+)))
3641
3642(define-public emacs-realgud
3643 (package
3644 (name "emacs-realgud")
3645 (version "1.4.5")
3646 (source
3647 (origin
3648 (method url-fetch)
3649 (uri (string-append "https://elpa.gnu.org/packages/realgud-"
3650 version ".tar"))
3651 (sha256
3652 (base32
3653 "108wgxg7fb4byaiasgvbxv2hq7b00biq9f0mh9hy6vw4160y5w24"))
3654 (patches
3655 ;; Patch awaiting inclusion upstream (see:
3656 ;; https://github.com/realgud/realgud/pull/226).
3657 (search-patches "emacs-realgud-fix-configure-ac.patch"))))
3658 (build-system emacs-build-system)
3659 (arguments
3660 `(#:tests? #t
3661 #:phases
3662 (modify-phases %standard-phases
3663 (add-after 'set-emacs-load-path 'fix-autogen-script
3664 (lambda _
3665 (substitute* "autogen.sh"
3666 (("./configure") "sh configure"))))
3667 (add-after 'fix-autogen-script 'autogen
3668 (lambda _
3669 (setenv "CONFIG_SHELL" "sh")
3670 (invoke "sh" "autogen.sh")))
3671 (add-after 'fix-autogen-script 'set-home
3672 (lambda _
3673 (setenv "HOME" (getenv "TMPDIR"))))
3674 (add-before 'patch-el-files 'remove-realgud-pkg.el
3675 (lambda _
3676 ;; XXX: This file is auto-generated at some point and causes
3677 ;; substitute* to crash during the `patch-el-files' phase with:
3678 ;; ERROR: In procedure stat: No such file or directory:
3679 ;; "./realgud-pkg.el"
3680 (delete-file "./realgud-pkg.el")
3681 ;; FIXME: `patch-el-files' crashes on this file with error:
3682 ;; unable to locate "bashdb".
3683 (delete-file "./test/test-regexp-bashdb.el"))))
3684 #:include (cons* ".*\\.el$" %default-include)))
3685 (native-inputs
3686 `(("autoconf" ,autoconf)
3687 ("automake" ,automake)
3688 ("emacs-test-simple" ,emacs-test-simple)))
3689 (propagated-inputs
3690 `(("emacs-load-relative" ,emacs-load-relative)
3691 ("emacs-loc-changes" ,emacs-loc-changes)))
3692 (home-page "https://github.com/realgud/realgud/")
3693 (synopsis
3694 "Modular front-end for interacting with external debuggers")
3695 (description
3696 "RealGUD is a modular, extensible GNU Emacs front-end for interacting
3697with external debuggers. It integrates various debuggers such as gdb, pdb,
3698ipdb, jdb, lldb, bashdb, zshdb, etc. and allows to visually step code in the
3699sources. Unlike GUD, it also supports running multiple debug sessions in
3700parallel.")
3701 (license license:gpl3+)))
3702
3703(define-public emacs-request
3704 (package
3705 (name "emacs-request")
3706 (version "0.3.0")
3707 (source (origin
3708 (method git-fetch)
3709 (uri (git-reference
3710 (url "https://github.com/tkf/emacs-request.git")
3711 (commit (string-append "v" version))))
3712 (file-name (string-append name "-" version "-checkout"))
3713 (sha256
3714 (base32
3715 "0wyxqbb35yqf6ci47531lk32d6fppamx9d8826kdz983vm87him7"))))
3716 (build-system emacs-build-system)
3717 (propagated-inputs
3718 `(("emacs-deferred" ,emacs-deferred)))
3719 (home-page "https://github.com/tkf/emacs-request")
3720 (synopsis "Package for speaking HTTP in Emacs Lisp")
3721 (description "This package provides a HTTP request library with multiple
3722backends. It supports url.el which is shipped with Emacs and the curl command
3723line program.")
3724 (license license:gpl3+)))
3725
3726(define-public emacs-rudel
3727 (package
3728 (name "emacs-rudel")
3729 (version "0.3.1")
3730 (source
3731 (origin
3732 (method url-fetch)
3733 (uri (string-append "http://elpa.gnu.org/packages/rudel-"
3734 version ".tar"))
3735 (sha256
3736 (base32
3737 "0glqa68g509p0s2vcc0i8kzlddnc9brd9jqhnm5rzxz4i050cvnz"))))
3738 (build-system emacs-build-system)
3739 (home-page "http://rudel.sourceforge.net/")
3740 (synopsis "Collaborative editing framework")
3741 (description
3742 "Rudel is a collaborative editing environment for GNU Emacs. Its purpose
3743is to share buffers with other users in order to edit the contents of those
3744buffers collaboratively. Rudel supports multiple backends to enable
3745communication with other collaborative editors using different protocols,
3746though currently Obby (for use with the Gobby editor) is the only
3747fully-functional one.")
3748 (license license:gpl3+)))
3749
3750(define-public emacs-hydra
3751 (package
3752 (name "emacs-hydra")
3753 (version "0.14.0")
3754 (source
3755 (origin
3756 (method git-fetch)
3757 (uri (git-reference
3758 (url "https://github.com/abo-abo/hydra")
3759 (commit version)))
3760 (file-name (git-file-name name version))
3761 (sha256
3762 (base32
3763 "0ln4z2796ycy33g5jcxkqvm7638qxy4sipsab7d2864hh700cikg"))))
3764 (build-system emacs-build-system)
3765 (home-page "https://github.com/abo-abo/hydra")
3766 (synopsis "Make Emacs bindings that stick around")
3767 (description
3768 "This package can be used to tie related commands into a family of short
3769bindings with a common prefix---a Hydra. Once you summon the Hydra (through
3770the prefixed binding), all the heads can be called in succession with only a
3771short extension. Any binding that isn't the Hydra's head vanquishes the
3772Hydra. Note that the final binding, besides vanquishing the Hydra, will still
3773serve its original purpose, calling the command assigned to it. This makes
3774the Hydra very seamless; it's like a minor mode that disables itself
3775automatically.")
3776 (license license:gpl3+)))
3777
3778(define-public emacs-ivy
3779 (package
3780 (name "emacs-ivy")
3781 (version "0.10.0")
3782 (source
3783 (origin
3784 (method git-fetch)
3785 (uri (git-reference
3786 (url "https://github.com/abo-abo/swiper.git")
3787 (commit version)))
3788 (file-name (string-append name "-" version "-checkout"))
3789 (sha256
3790 (base32
3791 "14vnigqb5c3yi4q9ysw1fiwdqyqwyklqpb9wnjf81chm7s2mshnr"))))
3792 (build-system emacs-build-system)
3793 (arguments
3794 `(#:phases
3795 (modify-phases %standard-phases
3796 (add-after 'install 'install-doc
3797 (lambda* (#:key outputs #:allow-other-keys)
3798 (let* ((out (assoc-ref outputs "out"))
3799 (info (string-append out "/share/info")))
3800 (with-directory-excursion "doc"
3801 (invoke "makeinfo" "ivy.texi")
3802 (install-file "ivy.info" info)
3803 #t)))))))
3804 (propagated-inputs
3805 `(("emacs-hydra" ,emacs-hydra)))
3806 (native-inputs
3807 `(("texinfo" ,texinfo)))
3808 (home-page "http://oremacs.com/swiper/")
3809 (synopsis "Incremental vertical completion for Emacs")
3810 (description
3811 "This package provides @code{ivy-read} as an alternative to
3812@code{completing-read} and similar functions. No attempt is made to determine
3813the best candidate. Instead, the user can navigate candidates with
3814@code{ivy-next-line} and @code{ivy-previous-line}. The matching is done by
3815splitting the input text by spaces and re-building it into a regular
3816expression.")
3817 (license license:gpl3+)))
3818
3819(define-public emacs-ivy-yasnippet
3820 (let ((commit "32580b4fd23ebf9ca7dde96704f7d53df6e253cd")
3821 (revision "2"))
3822 (package
3823 (name "emacs-ivy-yasnippet")
3824 (version (git-version "0.1" revision commit))
3825 (source
3826 (origin
3827 (method git-fetch)
3828 (uri (git-reference
3829 (url "https://github.com/mkcms/ivy-yasnippet.git")
3830 (commit commit)))
3831 (file-name (git-file-name name version))
3832 (sha256
3833 (base32
3834 "1wfg6mmd5gl1qgvayyzpxlkh9s7jgn20y8l1vh1zbj1czvv51xp8"))))
3835 (build-system emacs-build-system)
3836 (propagated-inputs
3837 `(("emacs-ivy" ,emacs-ivy)
3838 ("emacs-yasnippet" ,emacs-yasnippet)
3839 ("emacs-dash" ,emacs-dash)))
3840 (home-page "https://github.com/mkcms/ivy-yasnippet")
3841 (synopsis "Preview @code{yasnippets} with @code{ivy}")
3842 (description "This package allows you to select @code{yasnippet}
3843snippets using @code{ivy} completion. When current selection changes in the
3844minibuffer, the snippet contents are temporarily expanded in the buffer. To
3845use it, call @code{M-x ivy-yasnippet} (but make sure you have enabled
3846@code{yas-minor-mode} first).")
3847 (license license:gpl3+))))
3848
3849(define-public emacs-ivy-rich
3850 (package
3851 (name "emacs-ivy-rich")
3852 (version "0.1.0")
3853 (source
3854 (origin
3855 (method url-fetch)
3856 (uri (string-append "https://github.com/Yevgnen/ivy-rich/archive/"
3857 version ".tar.gz"))
3858 (file-name (string-append name "-" version ".tar.gz"))
3859 (sha256
3860 (base32
3861 "14r3mx5rkd4wz0ls5pv5w6c7la3z9iy93d3jfind3xyg4kywy95c"))))
3862 (build-system emacs-build-system)
3863 (propagated-inputs
3864 `(("emacs-ivy" ,emacs-ivy)))
3865 (home-page "https://github.com/Yevgnen/ivy-rich")
3866 (synopsis "More friendly interface for @code{ivy}")
3867 (description
3868 "This package extends @code{ivy} by showing more information in the
3869minibuffer for each candidate. It adds columns showing buffer modes, file
3870sizes, docstrings, etc. If @code{emacs-all-the-icons} is installed, it can
3871show icons as well.")
3872 (license license:gpl3+)))
3873
3874(define-public emacs-avy
3875 (package
3876 (name "emacs-avy")
3877 (version "0.4.0")
3878 (source
3879 (origin
3880 (method url-fetch)
3881 (uri (string-append "https://github.com/abo-abo/avy/archive/"
3882 version ".tar.gz"))
3883 (file-name (string-append name "-" version ".tar.gz"))
3884 (sha256
3885 (base32
3886 "1wdrq512h25ymzjbf2kbsdymvd2ryfwzb6bh5bc3yv7q203im796"))))
3887 (build-system emacs-build-system)
3888 (home-page "https://github.com/abo-abo/avy")
3889 (synopsis "Tree-based completion for Emacs")
3890 (description
3891 "This package provides a generic completion method based on building a
3892balanced decision tree with each candidate being a leaf. To traverse the tree
3893from the root to a desired leaf, typically a sequence of @code{read-key} can
3894be used.
3895
3896In order for @code{read-key} to make sense, the tree needs to be visualized
3897appropriately, with a character at each branch node. So this completion
3898method works only for things that you can see on your screen, all at once,
3899such as the positions of characters, words, line beginnings, links, or
3900windows.")
3901 (license license:gpl3+)))
3902
3903(define-public emacs-ace-window
3904 (package
3905 (name "emacs-ace-window")
3906 (version "0.9.0")
3907 (source
3908 (origin
3909 (method url-fetch)
3910 (uri (string-append "https://github.com/abo-abo/ace-window/archive/"
3911 version ".tar.gz"))
3912 (file-name (string-append name "-" version ".tar.gz"))
3913 (sha256
3914 (base32
3915 "1p2sgfl5dml4zbd6ldql6lm2m9vmd236ah996ni32x254s48j5pn"))))
3916 (build-system emacs-build-system)
3917 (propagated-inputs
3918 `(("emacs-avy" ,emacs-avy)))
3919 (home-page "https://github.com/abo-abo/ace-window")
3920 (synopsis "Quickly switch windows in Emacs")
3921 (description
3922 "@code{ace-window} is meant to replace @code{other-window}.
3923In fact, when there are only two windows present, @code{other-window} is
3924called. If there are more, each window will have its first character
3925highlighted. Pressing that character will switch to that window.")
3926 (license license:gpl3+)))
3927
3928(define-public emacs-iedit
3929 (package
3930 (name "emacs-iedit")
3931 (version "0.9.9.9")
3932 (source
3933 (origin
3934 (method url-fetch)
3935 (uri (string-append "https://github.com/victorhge/iedit/archive/v"
3936 version ".tar.gz"))
3937 (file-name (string-append name "-" version ".tar.gz"))
3938 (sha256
3939 (base32
3940 "1hv8q6pr85ss9g3158l1fqv3m62vsq8rslsi86jicr2dcxyascr0"))))
3941 (build-system emacs-build-system)
3942 (home-page "http://www.emacswiki.org/emacs/Iedit")
3943 (synopsis "Edit multiple regions in the same way simultaneously")
3944 (description
3945 "This package is an Emacs minor mode and allows you to edit one
3946occurrence of some text in a buffer (possibly narrowed) or region, and
3947simultaneously have other occurrences edited in the same way.
3948
3949You can also use Iedit mode as a quick way to temporarily show only the buffer
3950lines that match the current text being edited. This gives you the effect of
3951a temporary @code{keep-lines} or @code{occur}.")
3952 (license license:gpl3+)))
3953
3954(define-public emacs-zoutline
3955 (let ((commit "b3ee0f0e0b916838c2d2c249beba74ffdb8d5699")
3956 (revision "0"))
3957 (package
3958 (name "emacs-zoutline")
3959 (version (git-version "0.1" revision commit))
3960 (home-page "https://github.com/abo-abo/zoutline")
3961 (source (origin
3962 (method git-fetch)
3963 (uri (git-reference (url home-page) (commit commit)))
3964 (sha256
3965 (base32
3966 "0sd0017piw0dis6dhpq5dkqd3acisxqgipl7dj8gmc1vnswhdwr8"))
3967 (file-name (git-file-name name version))))
3968 (build-system emacs-build-system)
3969 (synopsis "Simple outline library")
3970 (description
3971 "This library provides helpers for outlines. Outlines allow users to
3972navigate code in a tree-like fashion.")
3973 (license license:gpl3+))))
3974
3975(define-public emacs-lispy
3976 ;; Release 0.26.0 was almost 3 years ago, and there have been ~772 commits
3977 ;; since.
3978 (let ((commit "c2a358a7a15fcf056a5b7461a8e690b481b03b80")
3979 (revision "0"))
3980 (package
3981 (name "emacs-lispy")
3982 (version (git-version "0.26.0" revision commit))
3983 (home-page "https://github.com/abo-abo/lispy")
3984 (source (origin
3985 (method git-fetch)
3986 (uri (git-reference (url home-page) (commit commit)))
3987 (sha256
3988 (base32
3989 "1g6756qqx2n4cx8jac6mlwayilsiyc5rz8nrqjnywvzc75xdinjd"))
3990 (file-name (git-file-name name version))))
3991 (build-system emacs-build-system)
3992 (propagated-inputs
3993 `(("emacs-ace-window" ,emacs-ace-window)
3994 ("emacs-iedit" ,emacs-iedit)
3995 ("emacs-ivy" ,emacs-ivy)
3996 ("emacs-hydra" ,emacs-hydra)
3997 ("emacs-zoutline" ,emacs-zoutline)))
3998 (synopsis "Modal S-expression editing")
3999 (description
4000 "Due to the structure of Lisp syntax it's very rare for the programmer
4001to want to insert characters right before \"(\" or right after \")\". Thus
4002unprefixed printable characters can be used to call commands when the point is
4003at one of these special locations. Lispy provides unprefixed keybindings for
4004S-expression editing when point is at the beginning or end of an
4005S-expression.")
4006 (license license:gpl3+))))
4007
4008(define-public emacs-lispyville
4009 ;; Later versions need a more recent Evil, with an evil-define-key*
4010 ;; supporting nil for the state.
4011 (let ((commit "b4291857ed6a49a67c4ea77522889ce51fb171ab")
4012 (revision "0"))
4013 (package
4014 (name "emacs-lispyville")
4015 (version (git-version "0.1" revision commit))
4016 (home-page "https://github.com/noctuid/lispyville")
4017 (source (origin
4018 (method git-fetch)
4019 (uri (git-reference (url home-page) (commit commit)))
4020 (sha256
4021 (base32
4022 "095zibzc3naknahdrnb59g9rbljy8wz9rkc7rf8avb3wxlwvxhm3"))
4023 (file-name (git-file-name name version))))
4024 (propagated-inputs
4025 `(("emacs-evil" ,emacs-evil)
4026 ("emacs-lispy" ,emacs-lispy)))
4027 (build-system emacs-build-system)
4028 (synopsis "Minor mode for integrating Evil with lispy")
4029 (description
4030 "LispyVille's main purpose is to provide a Lisp editing environment
4031suited towards Evil users. It can serve as a minimal layer on top of lispy
4032for better integration with Evil, but it does not require the use of lispy’s
4033keybinding style. The provided commands allow for editing Lisp in normal
4034state and will work even without lispy being enabled.")
4035 (license license:gpl3+))))
4036
4037(define-public emacs-clojure-mode
4038 (package
4039 (name "emacs-clojure-mode")
4040 (version "5.6.1")
4041 (source (origin
4042 (method url-fetch)
4043 (uri (string-append
4044 "https://github.com/clojure-emacs/clojure-mode/archive/"
4045 version ".tar.gz"))
4046 (file-name (string-append name "-" version ".tar.gz"))
4047 (sha256
4048 (base32
4049 "1f4k1hncy5ygh4izn7mqfp744nnisrp9ywn2njknbjxx34ai1q88"))))
4050 (build-system emacs-build-system)
4051 (native-inputs
4052 `(("emacs-dash" ,emacs-dash)
4053 ("emacs-s" ,emacs-s)
4054 ("ert-runner" ,emacs-ert-runner)))
4055 (arguments
4056 `(#:tests? #t
4057 #:test-command '("ert-runner")))
4058 (home-page "https://github.com/clojure-emacs/clojure-mode")
4059 (synopsis "Major mode for Clojure code")
4060 (description
4061 "This Emacs package provides font-lock, indentation, navigation and basic
4062refactoring for the @uref{http://clojure.org, Clojure programming language}.
4063It is recommended to use @code{clojure-mode} with paredit or smartparens.")
4064 (license license:gpl3+)))
4065
4066(define-public emacs-epl
4067 (package
4068 (name "emacs-epl")
4069 (version "0.8")
4070 (source (origin
4071 (method url-fetch)
4072 (uri (string-append
4073 "https://github.com/cask/epl/archive/"
4074 version ".tar.gz"))
4075 (file-name (string-append name "-" version ".tar.gz"))
4076 (sha256
4077 (base32
4078 "1511n3a3f5gvaf2b4nh018by61ciyzi3y3603fzqma7p9hrckarc"))))
4079 (build-system emacs-build-system)
4080 (home-page "https://github.com/cask/epl")
4081 (synopsis "Emacs Package Library")
4082 (description
4083 "A package management library for Emacs, based on @code{package.el}.
4084
4085The purpose of this library is to wrap all the quirks and hassle of
4086@code{package.el} into a sane API.")
4087 (license license:gpl3+)))
4088
4089(define-public emacs-queue
4090 (package
4091 (name "emacs-queue")
4092 (version "0.2")
4093 (source (origin
4094 (method url-fetch)
4095 (uri (string-append "https://elpa.gnu.org/packages/queue-"
4096 version ".el"))
4097 (sha256
4098 (base32
4099 "0cx2848sqnnkkr4zisvqadzxngjyhmb36mh0q3if7q19yjjhmrkb"))))
4100 (build-system emacs-build-system)
4101 (home-page "http://www.dr-qubit.org/tags/computing-code-emacs.html")
4102 (synopsis "Queue data structure for Emacs")
4103 (description
4104 "This Emacs library provides queue data structure. These queues can be
4105used both as a first-in last-out (FILO) and as a first-in first-out (FIFO)
4106stack, i.e. elements can be added to the front or back of the queue, and can
4107be removed from the front. This type of data structure is sometimes called an
4108\"output-restricted deque\".")
4109 (license license:gpl3+)))
4110
4111(define-public emacs-pkg-info
4112 (package
4113 (name "emacs-pkg-info")
4114 (version "0.6")
4115 (source (origin
4116 (method url-fetch)
4117 (uri (string-append
4118 "https://github.com/lunaryorn/pkg-info.el/archive/"
4119 version ".tar.gz"))
4120 (file-name (string-append name "-" version ".tar.gz"))
4121 (sha256
4122 (base32
4123 "1gy1jks5mmm02gg1c8gcyr4f8a9s5ggzhk56gv33b9mzjqzi5rd5"))))
4124 (build-system emacs-build-system)
4125 (propagated-inputs `(("emacs-epl" ,emacs-epl)))
4126 (home-page "https://github.com/lunaryorn/pkg-info.el")
4127 (synopsis "Information about Emacs packages")
4128 (description
4129 "This library extracts information from the installed Emacs packages.")
4130 (license license:gpl3+)))
4131
4132(define-public emacs-spinner
4133 (package
4134 (name "emacs-spinner")
4135 (version "1.7.3")
4136 (source (origin
4137 (method url-fetch)
4138 (uri (string-append "https://elpa.gnu.org/packages/spinner-"
4139 version ".el"))
4140 (sha256
4141 (base32
4142 "19kp1mmndbmw11sgvv2ggfjl4pyf5zrsbh3871f0965pw9z8vahd"))))
4143 (build-system emacs-build-system)
4144 (home-page "https://github.com/Malabarba/spinner.el")
4145 (synopsis "Emacs mode-line spinner for operations in progress")
4146 (description
4147 "This Emacs package adds spinners and progress-bars to the mode-line for
4148ongoing operations.")
4149 (license license:gpl3+)))
4150
4151(define-public emacs-sparql-mode
4152 (package
4153 (name "emacs-sparql-mode")
4154 (version "2.0.1")
4155 (source (origin
4156 (method url-fetch)
4157 (uri (string-append "https://github.com/ljos/sparql-mode/archive/"
4158 "v" version ".tar.gz"))
4159 (file-name (string-append name "-" version ".tar.gz"))
4160 (sha256
4161 (base32
4162 "1s93mkllxnhy7fw616cnnc2danacdlarys0g3cn89drh0llh53cv"))))
4163 (build-system emacs-build-system)
4164 (home-page "https://github.com/ljos/sparql-mode")
4165 (synopsis "SPARQL mode for Emacs")
4166 (description "This package provides a major mode for Emacs that provides
4167syntax highlighting for SPARQL. It also provides a way to execute queries
4168against a SPARQL HTTP endpoint, such as is provided by Fuseki. It is also
4169possible to query other endpoints like DBPedia.")
4170 (license license:gpl3+)))
4171
4172(define-public emacs-better-defaults
4173 (package
4174 (name "emacs-better-defaults")
4175 (version "0.1.3")
4176 (source
4177 (origin
4178 (method url-fetch)
4179 (uri (string-append "https://github.com/technomancy/better-defaults"
4180 "/archive/" version ".tar.gz"))
4181 (file-name (string-append name "-" version ".tar.gz"))
4182 (sha256
4183 (base32
4184 "08fg4zslzlxbvyil5g4gwvwd22fh4zsgqprs5wh9hv1rgc6757m2"))))
4185 (build-system emacs-build-system)
4186 (home-page "https://github.com/technomancy/better-defaults")
4187 (synopsis "Better defaults for Emacs")
4188 (description
4189 "Better defaults attempts to address the most obvious deficiencies of the
4190Emacs default configuration in uncontroversial ways that nearly everyone can
4191agree upon.")
4192 (license license:gpl3+)))
4193
4194(define-public emacs-eprime
4195 (let ((commit "17a481af26496be91c07139a9bfc05cfe722506f"))
4196 (package
4197 (name "emacs-eprime")
4198 (version (string-append "20140513-" (string-take commit 7)))
4199 (source (origin
4200 (method url-fetch)
4201 (uri (string-append "https://raw.githubusercontent.com"
4202 "/AndrewHynes/eprime-mode/"
4203 commit "/eprime-mode.el"))
4204 (file-name (string-append "eprime-" version ".el"))
4205 (sha256
4206 (base32
4207 "0v68lggkyq7kbcr9zyi573m2g2x251xy3jadlaw8kx02l8krwq8d"))))
4208 (build-system emacs-build-system)
4209 (home-page "https://github.com/AndrewHynes/eprime-mode")
4210 (synopsis "E-prime checking mode for Emacs")
4211 (description "This package provides an E-prime checking mode for Emacs
4212that highlights non-conforming text. The subset of the English language called
4213E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
4214 (license license:gpl3+))))
4215
4216(define-public emacs-julia-mode
4217 ;; XXX: Upstream version remained stuck at 0.3. See
4218 ;; <https://github.com/JuliaEditorSupport/julia-emacs/issues/46>.
4219 (let ((commit "115d4dc8a07445301772da8376b232fa8c7168f4")
4220 (revision "1"))
4221 (package
4222 (name "emacs-julia-mode")
4223 (version (string-append "0.3-" revision "." (string-take commit 8)))
4224 (source
4225 (origin
4226 (method git-fetch)
4227 (uri (git-reference
4228 (url "https://github.com/JuliaEditorSupport/julia-emacs.git")
4229 (commit commit)))
4230 (file-name (string-append name "-" version "-checkout"))
4231 (sha256
4232 (base32
4233 "1is4dcv6blslpzbjcg8l2jpxi8xj96q4cm0nxjxsyswpm8bw8ki0"))))
4234 (build-system emacs-build-system)
4235 (arguments
4236 `(#:tests? #t
4237 #:test-command '("emacs" "--batch"
4238 "-l" "julia-mode-tests.el"
4239 "-f" "ert-run-tests-batch-and-exit")))
4240 (home-page "https://github.com/JuliaEditorSupport/julia-emacs")
4241 (synopsis "Major mode for Julia")
4242 (description "This Emacs package provides a mode for the Julia
4243programming language.")
4244 (license license:expat))))
4245
4246(define-public emacs-smex
4247 (package
4248 (name "emacs-smex")
4249 (version "3.0")
4250 (source (origin
4251 (method url-fetch)
4252 (uri (string-append "https://raw.githubusercontent.com"
4253 "/nonsequitur/smex/" version "/smex.el"))
4254 (file-name (string-append "smex-" version ".el"))
4255 (sha256
4256 (base32
4257 "0ar310zx9k5y4i1vl2rawvi712xj9gx77160860jbs691p77cxqp"))))
4258 (build-system emacs-build-system)
4259 (home-page "https://github.com/nonsequitur/smex/")
4260 (synopsis "M-x interface with Ido-style fuzzy matching")
4261 (description
4262 "Smex is a M-x enhancement for Emacs. Built on top of Ido, it provides a
4263convenient interface to your recently and most frequently used commands. And
4264to all the other commands, too.")
4265 (license license:gpl3+)))
4266
4267(define-public emacs-js2-mode
4268 (package
4269 (name "emacs-js2-mode")
4270 (version "20180301")
4271 (source (origin
4272 (method url-fetch)
4273 (uri (string-append "https://github.com/mooz/js2-mode/archive/"
4274 version ".tar.gz"))
4275 (file-name (string-append name "-" version ".tar.gz"))
4276 (sha256
4277 (base32
4278 "13aghgwaqrmbf3pbifcry52kya454wnh1gbdh5805n1n6xgjm5w3"))))
4279 (build-system emacs-build-system)
4280 (home-page "https://github.com/mooz/js2-mode/")
4281 (synopsis "Improved JavaScript editing mode for Emacs")
4282 (description
4283 "Js2-mode provides a JavaScript major mode for Emacs that is more
4284advanced than the built-in javascript-mode. Features include accurate syntax
4285highlighting using a recursive-descent parser, on-the-fly reporting of syntax
4286errors and strict-mode warnings, smart line-wrapping within comments and
4287strings, and code folding.")
4288 (license license:gpl3+)))
4289
4290(define-public emacs-nodejs-repl
4291 (package
4292 (name "emacs-nodejs-repl")
4293 (version "0.2.0")
4294 (source (origin
4295 (method url-fetch)
4296 (uri (string-append "https://github.com/abicky/nodejs-repl.el"
4297 "/archive/" version ".tar.gz"))
4298 (sha256
4299 (base32
4300 "0hq2cqdq2668yf48g7qnkci90nhih1gnhacsgz355jnib56lhmkz"))
4301 (file-name (string-append name "-" version ".tar.gz"))))
4302 (build-system emacs-build-system)
4303 (home-page "https://github.com/abicky/nodejs-repl.el")
4304 (synopsis "Node.js REPL inside Emacs")
4305 (description
4306 "This program is derived from comint-mode and provides the following
4307features:
4308
4309@itemize
4310@item TAB completion same as Node.js REPL
4311@item file name completion in string
4312@item incremental history search
4313@end itemize")
4314 (license license:gpl3+)))
4315
4316(define-public emacs-typescript-mode
4317 (package
4318 (name "emacs-typescript-mode")
4319 (version "0.3")
4320 (source (origin
4321 (method url-fetch)
4322 (uri (string-append
4323 "https://github.com/ananthakumaran/typescript.el"
4324 "/archive/v" version ".tar.gz"))
4325 (sha256
4326 (base32
4327 "1gqjirm8scf0wysm7x97zdfbs4qa5nqdl64jfbkd18iskv5mg3rj"))
4328 (file-name (string-append name "-" version ".tar.gz"))))
4329 (build-system emacs-build-system)
4330 (home-page "https://github.com/ananthakumaran/typescript.el")
4331 (synopsis "Emacs major mode for editing Typescript code")
4332 (description
4333 "This is based on Karl Landstrom's barebones @code{typescript-mode}.
4334This is much more robust and works with @code{cc-mode}'s comment
4335filling (mostly). The modifications to the original @code{javascript.el} mode
4336mainly consisted in replacing \"javascript\" with \"typescript\"
4337
4338The main features of this Typescript mode are syntactic highlighting (enabled
4339with @code{font-lock-mode} or @code{global-font-lock-mode}), automatic
4340indentation and filling of comments and C preprocessor fontification.")
4341 (license license:gpl3+)))
4342
4343(define-public emacs-tide
4344 (package
4345 (name "emacs-tide")
4346 (version "2.8.3.1")
4347 (source (origin
4348 (method url-fetch)
4349 (uri (string-append "https://github.com/ananthakumaran/tide"
4350 "/archive/v" version ".tar.gz"))
4351 (sha256
4352 (base32
4353 "1k0kzqiv1hfs0kqm37947snzhrsmand3i9chvm6a2r5lb8v9q47y"))
4354 (file-name (string-append name "-" version ".tar.gz"))))
4355 (build-system emacs-build-system)
4356 (propagated-inputs
4357 `(("emacs-dash" ,emacs-dash)
4358 ("emacs-s" ,emacs-s)
4359 ("emacs-flycheck" ,emacs-flycheck)
4360 ("emacs-typescript-mode" ,emacs-typescript-mode)))
4361 (home-page "https://github.com/ananthakumaran/tide")
4362 (synopsis "Typescript IDE for Emacs")
4363 (description
4364 "Tide is an Interactive Development Environment (IDE) for Emacs which
4365provides the following features:
4366
4367@itemize
4368@item ElDoc
4369@item Auto complete
4370@item Flycheck
4371@item Jump to definition, Jump to type definition
4372@item Find occurrences
4373@item Rename symbol
4374@item Imenu
4375@item Compile On Save
4376@item Highlight Identifiers
4377@item Code Fixes
4378@item Code Refactor
4379@item Organize Imports
4380@end itemize")
4381 (license license:gpl3+)))
4382
4383(define-public emacs-markdown-mode
4384 (package
4385 (name "emacs-markdown-mode")
4386 (version "2.3")
4387 (source (origin
4388 (method url-fetch)
4389 (uri (string-append "https://raw.githubusercontent.com/jrblevin"
4390 "/markdown-mode/v" version
4391 "/markdown-mode.el"))
4392 (file-name (string-append "markdown-mode-" version ".el"))
4393 (sha256
4394 (base32
4395 "152whyrq3dqlqy5wv4mdd94kmal19hs5kwaxjcp2gp2r97lsmdmi"))))
4396 (build-system emacs-build-system)
4397 (home-page "http://jblevins.org/projects/markdown-mode/")
4398 (synopsis "Emacs Major mode for Markdown files")
4399 (description
4400 "Markdown-mode is a major mode for editing Markdown-formatted text files
4401in Emacs.")
4402 (license license:gpl3+)))
4403
4404(define-public emacs-edit-indirect
4405 (package
4406 (name "emacs-edit-indirect")
4407 (version "0.1.5")
4408 (source
4409 (origin
4410 (method git-fetch)
4411 (uri (git-reference
4412 (url "https://github.com/Fanael/edit-indirect")
4413 (commit version)))
4414 (file-name (git-file-name name version))
4415 (sha256
4416 (base32
4417 "0by1x53pji39fjrj5bd446kz831nv0vdgw2jqasbym4pc1p2947r"))))
4418 (build-system emacs-build-system)
4419 (home-page "https://github.com/Fanael/edit-indirect")
4420 (synopsis "Edit regions in separate buffers")
4421 (description "This package allows you to edit regions in separate buffers,
4422like @code{org-edit-src-code} but for arbitrary regions.")
4423 (license license:gpl3+)))
4424
4425(define-public emacs-projectile
4426 (package
4427 (name "emacs-projectile")
4428 (version "0.14.0")
4429 (source (origin
4430 (method url-fetch)
4431 (uri (string-append "https://raw.githubusercontent.com/bbatsov"
4432 "/projectile/v" version "/projectile.el"))
4433 (file-name (string-append "projectile-" version ".el"))
4434 (sha256
4435 (base32
4436 "1ql1wnzhblbwnv66hf2y0wq45g71hh6s9inc090lmhm1vgylbd1f"))))
4437 (build-system emacs-build-system)
4438 (propagated-inputs
4439 `(("emacs-dash" ,emacs-dash)
4440 ("emacs-pkg-info" ,emacs-pkg-info)))
4441 (home-page "https://github.com/bbatsov/projectile")
4442 (synopsis "Manage and navigate projects in Emacs easily")
4443 (description
4444 "This library provides easy project management and navigation. The
4445concept of a project is pretty basic - just a folder containing special file.
4446Currently git, mercurial and bazaar repos are considered projects by default.
4447If you want to mark a folder manually as a project just create an empty
4448.projectile file in it.")
4449 (license license:gpl3+)))
4450
4451(define-public emacs-elfeed
4452 (package
4453 (name "emacs-elfeed")
4454 (version "3.0.0")
4455 (source (origin
4456 (method url-fetch)
4457 (uri (string-append "https://github.com/skeeto/elfeed/archive/"
4458 version ".tar.gz"))
4459 (file-name (string-append name "-" version ".tar.gz"))
4460 (sha256
4461 (base32
4462 "1wkdrxr6zzqb48czqqv34l87bx8aqjk1739ddqg933aqh241kfvn"))))
4463 (build-system emacs-build-system)
4464 (arguments
4465 `(#:tests? #t
4466 #:test-command '("make" "test")))
4467 (home-page "https://github.com/skeeto/elfeed")
4468 (synopsis "Atom/RSS feed reader for Emacs")
4469 (description
4470 "Elfeed is an extensible web feed reader for Emacs, supporting both Atom
4471and RSS, with a user interface inspired by notmuch.")
4472 (license license:gpl3+)))
4473
4474(define-public emacs-el-x
4475 (package
4476 (name "emacs-el-x")
4477 (version "0.3.1")
4478 (source (origin
4479 (method git-fetch)
4480 (uri (git-reference
4481 (url "https://github.com/sigma/el-x.git")
4482 (commit (string-append "v" version))))
4483 (file-name (string-append name "-" version "-checkout"))
4484 (sha256
4485 (base32
4486 "1i6j44ssxm1xdg0mf91nh1lnprwsaxsx8vsrf720nan7mfr283h5"))))
4487 (build-system emacs-build-system)
4488 (arguments
4489 `(#:phases
4490 (modify-phases %standard-phases
4491 ;; Move the source files to the top level, which is included in
4492 ;; the EMACSLOADPATH.
4493 (add-after 'unpack 'move-source-files
4494 (lambda _
4495 (let ((el-files (find-files "./lisp" ".*\\.el$")))
4496 (for-each (lambda (f)
4497 (rename-file f (basename f)))
4498 el-files))
4499 #t)))))
4500 (home-page "https://github.com/sigma/el-x")
4501 (synopsis "Emacs Lisp extensions")
4502 (description "command@{emacs-el-x} defines the @code{dflet} macro to
4503provide the historic behavior of @code{flet}, as well as
4504@code{declare-function} stub for older Emacs.")
4505 (license license:gpl2+)))
4506
4507(define-public emacs-mocker
4508 (package
4509 (name "emacs-mocker")
4510 (version "0.3.1")
4511 (source (origin
4512 (method git-fetch)
4513 (uri (git-reference
4514 (url "https://github.com/sigma/mocker.el.git")
4515 (commit (string-append "v" version))))
4516 (file-name (string-append name "-" version "-checkout"))
4517 (sha256
4518 (base32
4519 "1lav7am41v63xgavq8pr88y828jmd1cxd4prjq7jlbxm6nvrwxh2"))))
4520 (build-system emacs-build-system)
4521 (arguments
4522 `(#:tests? #t
4523 #:test-command '("ert-runner")))
4524 (native-inputs
4525 `(("ert-runner" ,emacs-ert-runner)))
4526 (propagated-inputs
4527 `(("emacs-el-x" ,emacs-el-x)))
4528 (home-page "https://github.com/sigma/mocker.el")
4529 (synopsis "Mocking framework for Emacs Lisp")
4530 (description "Mocker.el is a framework for writing tests in Emacs Lisp.
4531It uses regular Lisp rather than a domain specific language (DSL), which
4532maximizes flexibility (at the expense of conciseness).")
4533 (license license:gpl2+)))
4534
4535(define-public emacs-find-file-in-project
4536 (package
4537 (name "emacs-find-file-in-project")
4538 (version "5.4.7")
4539 (source (origin
4540 (method git-fetch)
4541 (uri (git-reference
4542 (url "https://github.com/technomancy/find-file-in-project.git")
4543 (commit version)))
4544 (file-name (string-append name "-" version "-checkout"))
4545 (sha256
4546 (base32
4547 "1sdnyqv69mipbgs9yax88m9b6crsa59rjhwrih197pifl4089awr"))))
4548 (build-system emacs-build-system)
4549 (arguments
4550 `(#:phases
4551 (modify-phases %standard-phases
4552 (add-before 'check 'set-shell
4553 ;; Otherwise Emacs shell-file-name is set to "/bin/sh", which doesn't
4554 ;; work.
4555 (lambda _
4556 (setenv "SHELL" (which "sh"))
4557 #t)))
4558 #:tests? #t
4559 #:test-command '("./tests/test.sh")))
4560 (home-page "https://github.com/technomancy/find-file-in-project")
4561 (synopsis "File/directory finder for Emacs")
4562 (description "@code{find-file-in-project} allows to find files or
4563directories quickly in the current project. The project root is detected
4564automatically when Git, Subversion or Mercurial are used. It also provides
4565functions to assist in reviewing changes on files.")
4566 (license license:gpl3+)))
4567
4568(define-public emacs-pyvenv
4569 (package
4570 (name "emacs-pyvenv")
4571 (version "1.11")
4572 (source (origin
4573 (method git-fetch)
4574 (uri (git-reference
4575 (url "https://github.com/jorgenschaefer/pyvenv.git")
4576 (commit (string-append "v" version))))
4577 (file-name (string-append name "-" version "-checkout"))
4578 (sha256
4579 (base32
4580 "1a346qdimr1dvj53q033aqnahwd2dhyn9jadrs019nm0bzgw7g63"))))
4581 (build-system emacs-build-system)
4582 (arguments
4583 `(#:phases
4584 (modify-phases %standard-phases
4585 ;; This phase incorrectly attempts to substitute "activate" and fails
4586 ;; doing so.
4587 (delete 'patch-el-files))
4588 #:tests? #t
4589 #:test-command '("ert-runner")))
4590 (native-inputs
4591 `(("ert-runner" ,emacs-ert-runner)
4592 ("emacs-mocker" ,emacs-mocker)))
4593 (home-page "https://github.com/jorgenschaefer/pyvenv")
4594 (synopsis "Virtualenv minor mode for Emacs")
4595 (description "pyvenv.el is a minor mode to support using Python virtual
4596environments (virtualenv) inside Emacs.")
4597 (license license:gpl3+)))
4598
4599(define-public emacs-highlight-indentation
4600 (package
4601 (name "emacs-highlight-indentation")
4602 (version "0.7.0")
4603 (source (origin
4604 (method git-fetch)
4605 (uri (git-reference
4606 (url "https://github.com/antonj/Highlight-Indentation-for-Emacs.git")
4607 (commit (string-append "v" version))))
4608 (file-name (string-append name "-" version "-checkout"))
4609 (sha256
4610 (base32
4611 "00l54k75qk24a0znzl4ij3s3nrnr2wy9ha3za8apphzlm98m907k"))))
4612 (build-system emacs-build-system)
4613 (home-page "https://github.com/antonj/Highlight-Indentation-for-Emacs/")
4614 (synopsis "Highlighting indentation for Emacs")
4615 (description "Provides two minor modes to highlight indentation guides in Emacs:
4616@enumerate
4617@item @code{highlight-indentation-mode}, which displays guidelines
4618indentation (space indentation only).
4619@item @code{highlight-indentation-current-column-mode}, which displays guidelines for the current-point indentation (space indentation only).
4620@end enumerate")
4621 (license license:gpl2+)))
4622
4623(define-public emacs-elpy
4624 (package
4625 (name "emacs-elpy")
4626 (version "1.27.0")
4627 (source (origin
4628 (method git-fetch)
4629 (uri (git-reference
4630 (url "https://github.com/jorgenschaefer/elpy.git")
4631 (commit version)))
4632 (file-name (string-append name "-" version "-checkout"))
4633 (sha256
4634 (base32
4635 "1b76y0kzk7s9ya8k9bpsgn31i9l0rxs4iz6lg7snhjgh03k0ssgv"))))
4636 (build-system emacs-build-system)
4637 (arguments
4638 `(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include)
4639 #:phases
4640 ;; TODO: Make `elpy-config' display Guix commands :)
4641 (modify-phases %standard-phases
4642 ;; One elpy test depends on being run inside a Python virtual
4643 ;; environment to pass. We have nothing to gain from doing so here,
4644 ;; so we just trick Elpy into thinking we are (see:
4645 ;; https://github.com/jorgenschaefer/elpy/pull/1293).
4646 (add-before 'check 'fake-virtualenv
4647 (lambda _
4648 (setenv "VIRTUAL_ENV" "/tmp")
4649 #t))
4650 (add-before 'check 'build-doc
4651 (lambda _
4652 (with-directory-excursion "docs"
4653 (invoke "make" "info" "man"))
4654 ;; Move .info file at the root so that it can installed by the
4655 ;; 'move-doc phase.
4656 (rename-file "docs/_build/texinfo/Elpy.info" "Elpy.info")
4657 #t))
4658 (add-after 'build-doc 'install-manpage
4659 (lambda* (#:key outputs #:allow-other-keys)
4660 (let* ((out (assoc-ref outputs "out"))
4661 (man1 (string-append out "/share/man/man1")))
4662 (mkdir-p man1)
4663 (copy-file "docs/_build/man/elpy.1"
4664 (string-append man1 "/elpy.1")))
4665 #t)))
4666 #:tests? #t
4667 #:test-command '("ert-runner")))
4668 (propagated-inputs
4669 `(("emacs-company" ,emacs-company)
4670 ("emacs-find-file-in-project" ,emacs-find-file-in-project)
4671 ("emacs-highlight-indentation" ,emacs-highlight-indentation)
4672 ("emacs-yasnippet" ,emacs-yasnippet)
4673 ("pyvenv" ,emacs-pyvenv)
4674 ("s" ,emacs-s)))
4675 (native-inputs
4676 `(("ert-runner" ,emacs-ert-runner)
4677 ("emacs-f" ,emacs-f)
4678 ("python" ,python-wrapper)
4679 ("python-autopep8" ,python-autopep8)
4680 ("python-black" ,python-black)
4681 ("python-flake8" ,python-flake8)
4682 ("python-jedi" ,python-jedi)
4683 ("python-yapf" ,python-yapf)
4684 ;; For documentation.
4685 ("python-sphinx" ,python-sphinx)
4686 ("texinfo" ,texinfo)))
4687 (home-page "https://github.com/jorgenschaefer/elpy")
4688 (synopsis "Python development environment for Emacs")
4689 (description "Elpy brings powerful Python editing to Emacs. It combines
4690and configures a number of other packages written in Emacs Lisp as well as
4691Python, together offering features such as navigation, documentation,
4692completion, interactive development and more.")
4693 (license license:gpl3+)))
4694
4695(define-public emacs-rainbow-delimiters
4696 (package
4697 (name "emacs-rainbow-delimiters")
4698 (version "2.1.3")
4699 (source (origin
4700 (method url-fetch)
4701 (uri (string-append "https://raw.githubusercontent.com/Fanael"
4702 "/rainbow-delimiters/" version
4703 "/rainbow-delimiters.el"))
4704 (file-name (string-append "rainbow-delimiters-" version ".el"))
4705 (sha256
4706 (base32
4707 "1b3kampwsjabhcqdp0khgff13wc5jqhy3rbvaa12vnv7qy22l9ck"))))
4708 (build-system emacs-build-system)
4709 (home-page "https://github.com/Fanael/rainbow-delimiters")
4710 (synopsis "Highlight brackets according to their depth")
4711 (description
4712 "Rainbow-delimiters is a \"rainbow parentheses\"-like mode for Emacs which
4713highlights parentheses, brackets, and braces according to their depth. Each
4714successive level is highlighted in a different color, making it easy to spot
4715matching delimiters, orient yourself in the code, and tell which statements
4716are at a given level.")
4717 (license license:gpl3+)))
4718
4719(define-public emacs-rainbow-identifiers
4720 (package
4721 (name "emacs-rainbow-identifiers")
4722 (version "0.2.2")
4723 (source (origin
4724 (method url-fetch)
4725 (uri (string-append "https://raw.githubusercontent.com/Fanael"
4726 "/rainbow-identifiers/" version
4727 "/rainbow-identifiers.el"))
4728 (file-name (string-append "rainbow-identifiers-" version ".el"))
4729 (sha256
4730 (base32
4731 "0325abxj47k0g1i8nqrq70w2wr6060ckhhf92krv1s072b3jzm31"))))
4732 (build-system emacs-build-system)
4733 (home-page "https://github.com/Fanael/rainbow-identifiers")
4734 (synopsis "Highlight identifiers in source code")
4735 (description
4736 "Rainbow identifiers mode is an Emacs minor mode providing highlighting of
4737identifiers based on their names. Each identifier gets a color based on a hash
4738of its name.")
4739 (license license:bsd-2)))
4740
4741(define-public emacs-rainbow-mode
4742 (package
4743 (name "emacs-rainbow-mode")
4744 (version "1.0.1")
4745 (source (origin
4746 (method url-fetch)
4747 (uri (string-append
4748 "http://elpa.gnu.org/packages/rainbow-mode-" version ".el"))
4749 (sha256
4750 (base32
4751 "0cpga4ax635rfpj7y2vmh7ank0yw00dcy20gjg1mj74r97by8csf"))))
4752 (build-system emacs-build-system)
4753 (home-page "http://elpa.gnu.org/packages/rainbow-mode.html")
4754 (synopsis "Colorize color names in buffers")
4755 (description
4756 "This minor mode sets background color to strings that match color
4757names, e.g. #0000ff is displayed in white with a blue background.")
4758 (license license:gpl3+)))
4759
4760(define-public emacs-visual-fill-column
4761 (package
4762 (name "emacs-visual-fill-column")
4763 (version "1.11")
4764 (source (origin
4765 (method url-fetch)
4766 (uri (string-append "https://codeload.github.com/joostkremers/"
4767 "visual-fill-column/tar.gz/" version))
4768 (file-name (string-append name "-" version ".tar.gz"))
4769 (sha256
4770 (base32
4771 "13jnviakp607zcms7f8ams56mr8wffnq1pghlc6fvqs39663pgwh"))))
4772 (build-system emacs-build-system)
4773 (home-page "https://github.com/joostkremers/visual-fill-column")
4774 (synopsis "Fill-column for visual-line-mode")
4775 (description
4776 "@code{visual-fill-column-mode} is a small Emacs minor mode that mimics
4777the effect of @code{fill-column} in @code{visual-line-mode}. Instead of
4778wrapping lines at the window edge, which is the standard behaviour of
4779@code{visual-line-mode}, it wraps lines at @code{fill-column}. If
4780@code{fill-column} is too large for the window, the text is wrapped at the
4781window edge.")
4782 (license license:gpl3+)))
4783
4784(define-public emacs-writeroom
4785 (package
4786 (name "emacs-writeroom")
4787 (version "3.7")
4788 (source (origin
4789 (method url-fetch)
4790 (uri (string-append
4791 "https://github.com/joostkremers/writeroom-mode/archive/"
4792 version ".tar.gz"))
4793 (file-name (string-append name "-" version ".tar.gz"))
4794 (sha256
4795 (base32
4796 "0yqgp5h3kvvpgva4azakb2wnjl7gsyh45glf75crspv3xyq57f2r"))))
4797 (build-system emacs-build-system)
4798 (propagated-inputs
4799 `(("emacs-visual-fill-column" ,emacs-visual-fill-column)))
4800 (home-page "https://github.com/joostkremers/writeroom-mode")
4801 (synopsis "Distraction-free writing for Emacs")
4802 (description
4803 "This package defines a minor mode for distraction-free writing. Some of
4804the default effects include entering fullscreen, deleting other windows of the
4805current frame, disabling the mode line, and adding margins to the buffer that
4806restrict the text width to 80 characters.")
4807 (license license:bsd-3)))
4808
4809(define-public emacs-ido-completing-read+
4810 (package
4811 (name "emacs-ido-completing-read+")
4812 (version "3.12")
4813 (source (origin
4814 (method url-fetch)
4815 (uri (string-append "https://raw.githubusercontent.com"
4816 "/DarwinAwardWinner/ido-ubiquitous/v"
4817 version "/ido-completing-read+.el"))
4818 (file-name (string-append "ido-completing-read+-" version ".el"))
4819 (sha256
4820 (base32
4821 "1cyalb0p7nfsm4n6n9q6rjmvn6adqc0fq8ybnlj3n41n289dkfjf"))))
4822 (build-system emacs-build-system)
4823 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
4824 (synopsis "Replacement for completing-read using ido")
4825 (description
4826 "The ido-completing-read+ function is a wrapper for ido-completing-read.
4827Importantly, it detects edge cases that ordinary ido cannot handle and either
4828adjusts them so ido can handle them, or else simply falls back to the standard
4829Emacs completion function instead.")
4830 (license license:gpl3+)))
4831
4832(define-public emacs-ido-ubiquitous
4833 (package
4834 (name "emacs-ido-ubiquitous")
4835 (version "3.12")
4836 (source (origin
4837 (method url-fetch)
4838 (uri (string-append "https://raw.githubusercontent.com"
4839 "/DarwinAwardWinner/ido-ubiquitous/v"
4840 version "/ido-ubiquitous.el"))
4841 (file-name (string-append "ido-ubiquitous-" version ".el"))
4842 (sha256
4843 (base32
4844 "197ypji0fb6jsdcq40rpnknwlh3imas6s6jbsvkfm0pz9988c3q2"))))
4845 (build-system emacs-build-system)
4846 (propagated-inputs
4847 `(("emacs-ido-completing-read+" ,emacs-ido-completing-read+)))
4848 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
4849 (synopsis "Use ido (nearly) everywhere")
4850 (description
4851 "Ido-ubiquitous enables ido-style completion for almost every function
4852that uses the standard completion function completing-read.")
4853 (license license:gpl3+)))
4854
4855(define-public emacs-yaml-mode
4856 (package
4857 (name "emacs-yaml-mode")
4858 (version "0.0.13")
4859 (source (origin
4860 (method url-fetch)
4861 (uri (string-append "https://raw.githubusercontent.com/yoshiki"
4862 "/yaml-mode/v" version "/yaml-mode.el"))
4863 (file-name (string-append "yaml-mode-" version ".el"))
4864 (sha256
4865 (base32
4866 "0im88sk9dqw03x6d6zaspgvg9i0pfpgb8f2zygrmbifh2w4pwmvj"))))
4867 (build-system emacs-build-system)
4868 (home-page "https://github.com/yoshiki/yaml-mode")
4869 (synopsis "Major mode for editing YAML files")
4870 (description
4871 "Yaml-mode is an Emacs major mode for editing files in the YAML data
4872serialization format. It was initially developed by Yoshiki Kurihara and many
4873features were added by Marshall Vandegrift. As YAML and Python share the fact
4874that indentation determines structure, this mode provides indentation and
4875indentation command behavior very similar to that of python-mode.")
4876 (license license:gpl3+)))
4877
4878(define-public emacs-web-mode
4879 (package
4880 (name "emacs-web-mode")
4881 (version "16")
4882 (source (origin
4883 (method url-fetch)
4884 (uri (string-append "https://raw.githubusercontent.com/fxbois"
4885 "/web-mode/v" version "/web-mode.el"))
4886 (file-name (string-append "web-mode-" version ".el"))
4887 (sha256
4888 (base32
4889 "1hs5w7kdvcyn4ihyw1kfjg48djn5p7lz4rlbhzzdqv1g56xqx3gw"))))
4890 (build-system emacs-build-system)
4891 (synopsis "Major mode for editing web templates")
4892 (description "Web-mode is an Emacs major mode for editing web templates
4893aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by
4894client/server side engines). Web-mode is compatible with many template
4895engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker,
4896Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template,
4897Dust.js, React/JSX, Angularjs, ejs, etc.")
4898 (home-page "http://web-mode.org/")
4899 (license license:gpl3+)))
4900
4901(define-public emacs-wgrep
4902 (let ((commit "414be70bd313e482cd9f0b70fd2daad4ee23497c"))
4903 ;; Late commit fixes compatibility issue with Emacs 26+.
4904 (package
4905 (name "emacs-wgrep")
4906 (version (git-version "2.1.10" "1" commit))
4907 (source (origin
4908 (method git-fetch)
4909 (uri (git-reference
4910 (url "https://github.com/mhayashi1120/Emacs-wgrep")
4911 (commit commit)))
4912 (file-name (git-file-name name version))
4913 (sha256
4914 (base32
4915 "1sdhd587q3pg92lhiayph87azhalmf1gzrnsprkmqvnphv7mvks9"))))
4916 (build-system emacs-build-system)
4917 (home-page "https://github.com/mhayashi1120/Emacs-wgrep")
4918 (synopsis "Edit a grep buffer and apply those changes to the files")
4919 (description
4920 "Emacs wgrep allows you to edit a grep buffer and apply those changes
4921to the file buffer. Several backends are supported beside the classic grep:
4922ack, ag, helm and pt.")
4923 (license license:gpl3+))))
4924
4925(define-public emacs-helm
4926 (package
4927 (name "emacs-helm")
4928 (version "3.0")
4929 (source (origin
4930 (method url-fetch)
4931 (uri (string-append
4932 "https://github.com/" name "/helm/archive/v"
4933 version ".tar.gz"))
4934 (file-name (string-append name "-" version ".tar.gz"))
4935 (sha256
4936 (base32
4937 "0k2r0ccppaqfjvyszaxa16vf7g2qzj1clhfr6v646ncsy17laciw"))))
4938 (build-system emacs-build-system)
4939 (propagated-inputs
4940 `(("emacs-async" ,emacs-async)
4941 ("emacs-popup" ,emacs-popup)))
4942 (home-page "https://emacs-helm.github.io/helm/")
4943 (synopsis "Incremental completion and selection narrowing
4944framework for Emacs")
4945 (description "Helm is incremental completion and selection narrowing
4946framework for Emacs. It will help steer you in the right direction when
4947you're looking for stuff in Emacs (like buffers, files, etc). Helm is a fork
4948of @code{anything.el} originally written by Tamas Patrovic and can be
4949considered to be its successor. Helm sets out to clean up the legacy code in
4950@code{anything.el} and provide a cleaner, leaner and more modular tool, that's
4951not tied in the trap of backward compatibility.")
4952 (license license:gpl3+)))
4953
4954(define-public emacs-helm-swoop
4955 (package
4956 (name "emacs-helm-swoop")
4957 (version "1.7.4")
4958 (source (origin
4959 (method url-fetch)
4960 (uri (string-append
4961 "https://github.com/ShingoFukuyama/helm-swoop/archive/"
4962 version
4963 ".tar.gz"))
4964 (file-name (string-append name "-" version ".tar.gz"))
4965 (sha256
4966 (base32
4967 "1ssivsjzlnkg049cg993l8fp09l5nhpz6asj7w5c91zp5kpc6fh7"))))
4968 (build-system emacs-build-system)
4969 (propagated-inputs
4970 `(("emacs-helm" ,emacs-helm)))
4971 (home-page "https://github.com/ShingoFukuyama/helm-swoop")
4972 (synopsis "Filter and jump to lines in an Emacs buffer using Helm")
4973 (description
4974 "This package builds on the Helm interface to provide several commands
4975for search-based navigation of buffers.")
4976 (license license:gpl2+)))
4977
4978(define-public emacs-helm-projectile
4979 (package
4980 (name "emacs-helm-projectile")
4981 (version "0.14.0")
4982 (source (origin
4983 (method url-fetch)
4984 (uri (string-append
4985 "https://github.com/bbatsov/helm-projectile/archive/v"
4986 version
4987 ".tar.gz"))
4988 (file-name (string-append name "-" version ".tar.gz"))
4989 (sha256
4990 (base32
4991 "19cfmilqh8kbab3b2hmx6lyrj73q6vfmn3p730x95g23iz16mnd5"))))
4992 (build-system emacs-build-system)
4993 (propagated-inputs
4994 `(("emacs-dash" ,emacs-dash)
4995 ("emacs-helm" ,emacs-helm)
4996 ("emacs-projectile" ,emacs-projectile)))
4997 (home-page "https://github.com/bbatsov/helm-projectile")
4998 (synopsis "Helm integration for Projectile")
4999 (description
5000 "This Emacs library provides a Helm interface for Projectile.")
5001 (license license:gpl3+)))
5002
5003(define-public emacs-helm-make
5004 (let ((commit "feae8df22bc4b20705ea08ac9adfc2b43bb348d0")
5005 (revision "1"))
5006 (package
5007 (name "emacs-helm-make")
5008 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
5009 (source
5010 (origin
5011 (method git-fetch)
5012 (uri (git-reference
5013 (url "https://github.com/abo-abo/helm-make.git")
5014 (commit commit)))
5015 (file-name (string-append name "-" version "-checkout"))
5016 (sha256
5017 (base32
5018 "1y2v77mmd1bfkkz51cnk1l0dg3lvvxc39wlamnm7wjns66dbvlam"))))
5019 (build-system emacs-build-system)
5020 (propagated-inputs
5021 `(("emacs-helm" ,emacs-helm)
5022 ("emacs-projectile" ,emacs-projectile)))
5023 (home-page "https://github.com/abo-abo/helm-make")
5024 (synopsis "Select a Makefile target with helm")
5025 (description "@code{helm-make} or @code{helm-make-projectile} will give
5026you a @code{helm} selection of directory Makefile's targets. Selecting a
5027target will call @code{compile} on it.")
5028 (license license:gpl3+))))
5029
5030(define-public emacs-cider
5031 (package
5032 (name "emacs-cider")
5033 (version "0.18.0")
5034 (source
5035 (origin
5036 (method git-fetch)
5037 (uri (git-reference
5038 (url "https://github.com/clojure-emacs/cider.git")
5039 (commit (string-append "v" version))))
5040 (file-name (git-file-name name version))
5041 (sha256
5042 (base32
5043 "1m9kc88vga3q5d731qnpngnsa0n57pf21k3hll20rw8rggrx4vdn"))))
5044 (build-system emacs-build-system)
5045 (arguments
5046 '(#:exclude ; Don't exclude 'cider-test.el'.
5047 '("^\\.dir-locals\\.el$" "^test/")))
5048 (propagated-inputs
5049 `(("emacs-clojure-mode" ,emacs-clojure-mode)
5050 ("emacs-sesman" ,emacs-sesman)
5051 ("emacs-spinner" ,emacs-spinner)
5052 ("emacs-pkg-info" ,emacs-pkg-info)
5053 ("emacs-queue" ,emacs-queue)))
5054 (home-page "https://cider.readthedocs.io/")
5055 (synopsis "Clojure development environment for Emacs")
5056 (description
5057 "CIDER (Clojure Interactive Development Environment that Rocks) aims to
5058provide an interactive development experience similar to the one you'd get
5059when programming in Emacs Lisp, Common Lisp (with SLIME or Sly), Scheme (with
5060Geiser) and Smalltalk.
5061
5062CIDER is the successor to the now deprecated combination of using SLIME +
5063swank-clojure for Clojure development.
5064
5065There are plenty of differences between CIDER and SLIME, but the core ideas
5066are pretty much the same (and SLIME served as the principle inspiration for
5067CIDER).")
5068 (license license:gpl3+)))
5069
5070;; There hasn't been a tag or release since 2015, so we take the latest
5071;; commit.
5072(define-public emacs-sly
5073 (let ((commit "486bfbe95612bcdc0960c490207970a188e0fbb9")
5074 (revision "1"))
5075 (package
5076 (name "emacs-sly")
5077 (version (string-append "1.0.0-" revision "." (string-take commit 9)))
5078 (source
5079 (origin
5080 (method git-fetch)
5081 (uri (git-reference
5082 (url "https://github.com/joaotavora/sly.git")
5083 (commit commit)))
5084 (file-name (git-file-name name version))
5085 (sha256
5086 (base32
5087 "0ib4q4k3h3qn88pymyjjmlmnpizdn1mfg5gpk5a715nqsgxlg09l"))))
5088 (build-system emacs-build-system)
5089 (arguments
5090 `(#:include (cons "^lib\\/" %default-include)
5091 #:phases
5092 ;; The package provides autoloads.
5093 (modify-phases %standard-phases
5094 (delete 'make-autoloads))))
5095 (home-page "https://github.com/joaotavora/sly")
5096 (synopsis "Sylvester the Cat's Common Lisp IDE")
5097 (description
5098 "SLY is Sylvester the Cat's Common Lisp IDE. SLY is a fork of SLIME, and
5099contains the following improvements over it:
5100
5101@enumerate
5102@item Completely redesigned REPL based on Emacs's own full-featured
5103 @code{comint.el}
5104@item Live code annotations via a new @code{sly-stickers} contrib
5105@item Consistent interactive button interface. Everything can be copied to
5106 the REPL.
5107@item Multiple inspectors with independent history
5108@item Regexp-capable @code{M-x sly-apropos}
5109@item Contribs are first class SLY citizens and enabled by default
5110@item Use ASDF to loads contribs on demand.
5111@end enumerate
5112
5113SLY tracks SLIME's bugfixes and all its familar features (debugger, inspector,
5114xref, etc...) are still available, but with better integration.")
5115 (license license:gpl3+))))
5116
5117(define-public emacs-lua-mode
5118 (let ((commit "652e299cb967fccca827dda381d61a9c144d97de")
5119 (revision "1"))
5120 (package
5121 (name "emacs-lua-mode")
5122 (version (string-append "20151025." revision "-" (string-take commit 9)))
5123 (home-page "https://github.com/immerrr/lua-mode/")
5124 (source (origin
5125 (method git-fetch)
5126 (uri (git-reference
5127 (url home-page)
5128 (commit commit)))
5129 (file-name (string-append name "-" version ".checkout"))
5130 (sha256
5131 (base32
5132 "053025k930wh0lak6rc1973ynfrmm8zsyzfqhhd39x7abkl41hc9"))))
5133 (build-system emacs-build-system)
5134 (synopsis "Major mode for lua")
5135 (description
5136 "This Emacs package provides a mode for @uref{https://www.lua.org/,
5137Lua programing language}.")
5138 (license license:gpl2+))))
5139
5140(define-public emacs-ebuild-mode
5141 (package
5142 (name "emacs-ebuild-mode")
5143 (version "1.37")
5144 (source (origin
5145 (method url-fetch)
5146 (uri (string-append
5147 "https://dev.gentoo.org/~ulm/emacs/ebuild-mode"
5148 "-" version ".tar.xz"))
5149 (file-name (string-append name "-" version ".tar.xz"))
5150 (sha256
5151 (base32
5152 "07dzrdjjczkxdfdgi60h4jjkvzi4p0k9rij2wpfp8s03ay3qldpp"))))
5153 (build-system emacs-build-system)
5154 (home-page "https://devmanual.gentoo.org")
5155 (synopsis "Major modes for Gentoo package files")
5156 (description
5157 "This Emacs package provides modes for ebuild, eclass, eblit, GLEP42
5158news items, openrc and runscripts.")
5159 (license license:gpl2+)))
5160
5161(define-public emacs-evil
5162 (let ((commit "230b87212c81aaa68ef5547a6b998d9c365fe139"))
5163 (package
5164 (name "emacs-evil")
5165 (version (git-version "1.2.13" "1" commit))
5166 (source
5167 (origin
5168 (method git-fetch)
5169 (uri (git-reference
5170 (url "https://github.com/emacs-evil/evil")
5171 (commit commit)))
5172 (file-name (string-append name "-" version "-checkout"))
5173 (sha256
5174 (base32
5175 "0c9zy3bpck10gcrv79kd3h7i4ygd5bgbgy773n0lg7a2r5kwn1gx"))))
5176 (build-system emacs-build-system)
5177 (propagated-inputs
5178 `(("emacs-undo-tree" ,emacs-undo-tree)
5179 ("emacs-goto-chg" ,emacs-goto-chg)))
5180 (home-page "https://github.com/emacs-evil/evil")
5181 (synopsis "Extensible Vi layer for Emacs")
5182 (description
5183 "Evil is an extensible vi layer for Emacs. It emulates the
5184main features of Vim, and provides facilities for writing custom
5185extensions.")
5186 (license license:gpl3+))))
5187
5188(define-public emacs-evil-collection
5189 (let ((commit "4e1f0e0b17153d460805a0da90d6191d66b2673d")
5190 (revision "5"))
5191 (package
5192 (name "emacs-evil-collection")
5193 (version (git-version "0.0.1" revision commit))
5194 (source (origin
5195 (method git-fetch)
5196 (uri (git-reference
5197 (url "https://github.com/emacs-evil/evil-collection")
5198 (commit commit)))
5199 (file-name (string-append name "-" version "-checkout"))
5200 (sha256
5201 (base32
5202 "11d5ppdnb2y2mwsdd9g62h7zds962kw3nss89zv5iwgcf9f1fb5x"))))
5203 (build-system emacs-build-system)
5204 (propagated-inputs
5205 `(("emacs-evil" ,emacs-evil)))
5206 (home-page "https://github.com/emacs-evil/evil-collection")
5207 (synopsis "Collection of Evil bindings for many major and minor modes")
5208 (description "This is a collection of Evil bindings for the parts of
5209Emacs that Evil does not cover properly by default, such as @code{help-mode},
5210@code{M-x calendar}, Eshell and more.")
5211 (license license:gpl3+))))
5212
5213(define-public emacs-goto-chg
5214 (package
5215 (name "emacs-goto-chg")
5216 (version "1.6")
5217 (source
5218 (origin
5219 (method url-fetch)
5220 ;; There is no versioned source.
5221 (uri "https://www.emacswiki.org/emacs/download/goto-chg.el")
5222 (file-name (string-append "goto-chg-" version ".el"))
5223 (sha256
5224 (base32
5225 "078d6p4br5vips7b9x4v6cy0wxf6m5ij9gpqd4g33bryn22gnpij"))))
5226 (build-system emacs-build-system)
5227 ;; There is no other home page.
5228 (home-page "https://www.emacswiki.org/emacs/goto-chg.el")
5229 (synopsis "Go to the last change in the Emacs buffer")
5230 (description
5231 "This package provides @code{M-x goto-last-change} command that goes to
5232the point of the most recent edit in the current Emacs buffer. When repeated,
5233go to the second most recent edit, etc. Negative argument, @kbd{C-u -}, is
5234used for reverse direction.")
5235 (license license:gpl2+)))
5236
5237(define-public emacs-monroe
5238 (package
5239 (name "emacs-monroe")
5240 (version "0.3.1")
5241 (source
5242 (origin
5243 (method url-fetch)
5244 (uri (string-append "https://github.com/sanel/monroe/archive/"
5245 version ".tar.gz"))
5246 (file-name (string-append name "-" version ".tar.gz"))
5247 (sha256
5248 (base32
5249 "0icdx8shkd951phlnmcq1vqaxp1l667q5rjscskc5r22aylakh4w"))))
5250 (build-system emacs-build-system)
5251 (home-page "https://github.com/sanel/monroe")
5252 (synopsis "Clojure nREPL client for Emacs")
5253 (description
5254 "Monroe is a nREPL client for Emacs, focused on simplicity and easy
5255distribution, primarily targeting Clojure users")
5256 (license license:gpl3+)))
5257
5258(define-public emacs-orgalist
5259 (package
5260 (name "emacs-orgalist")
5261 (version "1.9")
5262 (source
5263 (origin
5264 (method url-fetch)
5265 (uri (string-append "https://elpa.gnu.org/packages/"
5266 "orgalist-" version ".el"))
5267 (sha256
5268 (base32
5269 "1rmmcyiiqkq54hn74nhzxzl4nvd902hv6gq341jwhrm7yiagffi6"))))
5270 (build-system emacs-build-system)
5271 (home-page "http://elpa.gnu.org/packages/orgalist.html")
5272 (synopsis "Manage Org-like lists in non-Org buffers")
5273 (description "Write Org mode's plain lists in non-Org buffers. More
5274specifically, Orgalist supports the syntax of Org mode for numbered,
5275unnumbered, description items, checkboxes, and counter cookies.
5276
5277The library also implements radio lists, i.e., lists written in Org
5278syntax later translated into the host format, e.g., LaTeX or HTML.")
5279 (license license:gpl3+)))
5280
5281(define-public emacs-writegood-mode
5282 (package
5283 (name "emacs-writegood-mode")
5284 (version "2.0.2")
5285 (home-page "https://github.com/bnbeckwith/writegood-mode")
5286 (source (origin
5287 (method git-fetch)
5288 (uri (git-reference
5289 (url home-page)
5290 (commit (string-append "v" version))))
5291 (sha256
5292 (base32
5293 "1nnjn1r669hvvzfycllwap4w04m8rfsk4nzcg8057m1f263kj31b"))
5294 (file-name (string-append name "-checkout"))))
5295 (build-system emacs-build-system)
5296 (synopsis "Polish up poor writing on the fly")
5297 (description
5298 "This minor mode tries to find and highlight problems with your writing
5299in English as you type. It primarily detects \"weasel words\" and abuse of
5300passive voice.")
5301 (license license:gpl3+)))
5302
5303(define-public emacs-neotree
5304 (package
5305 (name "emacs-neotree")
5306 (version "0.5.2")
5307 (home-page "https://github.com/jaypei/emacs-neotree")
5308 (source (origin
5309 (method url-fetch)
5310 (uri (string-append
5311 "https://github.com/jaypei/" name
5312 "/archive/" version ".tar.gz"))
5313 (sha256
5314 (base32
5315 "1zd6dchwyijnf7kgchfcp51gs938l204dk9z6mljrfqf2zy0gp12"))
5316 (file-name (string-append name "-" version ".tar.gz"))))
5317 (build-system emacs-build-system)
5318 (synopsis "Folder tree view for Emacs")
5319 (description "This Emacs package provides a folder tree view.")
5320 (license license:gpl3+)))
5321
5322(define-public emacs-org
5323 (package
5324 (name "emacs-org")
5325 ;; emacs-org-contrib inherits from this package. Please update its sha256
5326 ;; checksum as well.
5327 (version "9.2")
5328 (source (origin
5329 (method url-fetch)
5330 (uri (string-append "http://elpa.gnu.org/packages/org-"
5331 version ".tar"))
5332 (sha256
5333 (base32
5334 "14ydwh2r360fpi6v2g9rgf0zazy2ddq1pcdxvzn73h65glnnclz9"))))
5335 (build-system emacs-build-system)
5336 (home-page "https://orgmode.org/")
5337 (synopsis "Outline-based notes management and organizer")
5338 (description "Org is an Emacs mode for keeping notes, maintaining TODO
5339lists, and project planning with a fast and effective lightweight markup
5340language. It also is an authoring system with unique support for literate
5341programming and reproducible research.")
5342 (license license:gpl3+)))
5343
5344(define-public emacs-org-contrib
5345 (package
5346 (inherit emacs-org)
5347 (name "emacs-org-contrib")
5348 (version "20181230")
5349 (source (origin
5350 (method url-fetch)
5351 (uri (string-append "https://orgmode.org/elpa/org-plus-contrib-"
5352 version ".tar"))
5353 (sha256
5354 (base32
5355 "0gibwcjlardjwq19bh0zzszv0dxxlml0rh5iikkcdynbgndk1aa1"))))
5356 (arguments
5357 `(#:modules ((guix build emacs-build-system)
5358 (guix build utils)
5359 (guix build emacs-utils)
5360 (ice-9 ftw)
5361 (srfi srfi-1))
5362 #:phases
5363 (modify-phases %standard-phases
5364 (add-after 'install 'delete-org-files
5365 (lambda* (#:key inputs outputs #:allow-other-keys)
5366 (let* ((out (assoc-ref outputs "out"))
5367 (org (assoc-ref inputs "org"))
5368 (contrib-files
5369 (map basename (find-files out)))
5370 (org+contrib-files
5371 (map basename (find-files org)))
5372 (duplicates (lset-intersection
5373 string=? contrib-files org+contrib-files)))
5374 (with-directory-excursion
5375 (string-append
5376 out "/share/emacs/site-lisp/guix.d/org-contrib-" ,version)
5377 (for-each delete-file duplicates))
5378 #t))))))
5379 (propagated-inputs
5380 `(("arduino-mode" ,emacs-arduino-mode)
5381 ("cider" ,emacs-cider)
5382 ("org" ,emacs-org)
5383 ("scel" ,emacs-scel)))
5384 (synopsis "Contributed packages to Org mode")
5385 (description "Org is an Emacs mode for keeping notes, maintaining TODO
5386lists, and project planning with a fast and effective plain-text system.
5387
5388This package is equivalent to org-plus-contrib, but only includes additional
5389files that you would find in @file{contrib/} from the git repository.")))
5390
5391(define-public emacs-flx
5392 (package
5393 (name "emacs-flx")
5394 (version "0.6.1")
5395 (source
5396 (origin
5397 (method url-fetch)
5398 (uri (string-append "https://github.com/lewang/"
5399 "flx/archive/v" version ".tar.gz"))
5400 (sha256
5401 (base32
5402 "0bkcpnf1j4i2fcc2rllwbz62l00sw2mcia6rm5amgwvlkqavmkv6"))
5403 (file-name (string-append name "-" version ".tar.gz"))))
5404 (build-system emacs-build-system)
5405 (home-page "https://github.com/lewang/flx")
5406 (synopsis "Fuzzy matching for Emacs")
5407 (description
5408 "Flx provides fuzzy matching for emacs a la sublime text.
5409The sorting algorithm is a balance between word beginnings (abbreviation)
5410and contiguous matches (substring). The longer the substring match,
5411the higher it scores. This maps well to how we think about matching.
5412Flx has support for ido (interactively do things) through flx-ido.")
5413 (license license:gpl3+)))
5414
5415(define-public emacs-cyberpunk-theme
5416 (package
5417 (name "emacs-cyberpunk-theme")
5418 (version "1.19")
5419 (source
5420 (origin
5421 (method url-fetch)
5422 (uri (string-append "https://github.com/n3mo/cyberpunk-theme.el/"
5423 "archive/" version ".tar.gz"))
5424 (sha256
5425 (base32
5426 "05l5fxw1mn5py6mfhxrzyqjq0d8m5m1akfi46vrgh13r414jffvv"))
5427 (file-name (string-append name "-" version ".tar.gz"))))
5428 (build-system emacs-build-system)
5429 (home-page "https://github.com/n3mo/cyberpunk-theme.el")
5430 (synopsis "Cyberpunk theme for emacs built-in color theme support")
5431 (description
5432 "Cyberpunk color theme for the emacs 24+ built-in color theme support
5433known loosely as deftheme. Many mode-specific customizations are included.")
5434 (license license:gpl3+)))
5435
5436(define-public emacs-danneskjold-theme
5437 (let* ((commit "8733d2fe8743e8a01826ea6d4430ef376c727e57")
5438 (revision "1"))
5439 (package
5440 (name "emacs-danneskjold-theme")
5441 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
5442 (home-page "https://github.com/rails-to-cosmos/danneskjold-theme")
5443 (source
5444 (origin
5445 (method git-fetch)
5446 (uri (git-reference
5447 (url home-page)
5448 (commit commit)))
5449 (file-name (string-append name "-" version "-checkout"))
5450 (sha256
5451 (base32
5452 "0s6rbsb0y8i8m5b9xm4gw1p1cxsxdqnqxqqb638pygz9f76mbir1"))))
5453 (build-system emacs-build-system)
5454 (arguments
5455 `(#:phases
5456 (modify-phases %standard-phases
5457 (add-after 'unpack 'delete-screenshots
5458 (lambda _
5459 (delete-file-recursively "screenshots") #t)))))
5460 (synopsis "High-contrast Emacs theme")
5461 (description
5462 "@code{danneskjold-theme} is a high-contrast theme for Emacs.")
5463 (license license:gpl3+))))
5464
5465(define-public emacs-dream-theme
5466 (let* ((commit "107a11d74365046f28a1802a2bdb5e69e4a7488b")
5467 (revision "1"))
5468 (package
5469 (name "emacs-dream-theme")
5470 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
5471 (source
5472 (origin
5473 (method git-fetch)
5474 (uri (git-reference
5475 (url "https://github.com/djcb/dream-theme")
5476 (commit commit)))
5477 (file-name (string-append name "-" version "-checkout"))
5478 (sha256
5479 (base32
5480 "0za18nfkq4xqm35k6006vsixcbmvmxqgma4iw5sw37h8vmcsdylk"))))
5481 (build-system emacs-build-system)
5482 (home-page "https://github.com/djcb/dream-theme")
5483 (synopsis "High-contrast Emacs theme")
5484 (description
5485 "@code{dream-theme} is a dark, clean theme for Emacs. It is inspired
5486by zenburn, sinburn and similar themes, but slowly diverging from them.")
5487 (license license:gpl3+))))
5488
5489(define-public emacs-auto-complete
5490 (package
5491 (name "emacs-auto-complete")
5492 (version "1.5.1")
5493 (source
5494 (origin
5495 (method url-fetch)
5496 (uri (string-append "https://github.com/auto-complete/"
5497 "auto-complete/archive/v" version ".tar.gz"))
5498 (sha256
5499 (base32
5500 "1jvq4lj00hwml75lpmlciazy8f3bbg13gffsfnl835p4qd8l7yqv"))
5501 (file-name (string-append name "-" version ".tar.gz"))))
5502 (build-system emacs-build-system)
5503 (propagated-inputs
5504 `(("emacs-popup" ,emacs-popup)))
5505 (home-page "https://github.com/auto-complete/auto-complete")
5506 (synopsis "Intelligent auto-completion extension for Emacs")
5507 (description
5508 "Auto-Complete is an intelligent auto-completion extension for Emacs.
5509It extends the standard Emacs completion interface and provides an environment
5510that allows users to concentrate more on their own work. Its features are:
5511a visual interface, reduce overhead of completion by using statistic method,
5512extensibility.")
5513 (license license:gpl3+)))
5514
5515(define-public emacs-nginx-mode
5516 (package
5517 (name "emacs-nginx-mode")
5518 (version "1.1.9")
5519 (source
5520 (origin
5521 (method url-fetch)
5522 (uri (string-append
5523 "https://github.com/ajc/nginx-mode/archive/v"
5524 version ".tar.gz"))
5525 (file-name (string-append name "-" version ".tar.gz"))
5526 (sha256
5527 (base32
5528 "0bzyrj6zz1hm67bkhw23bam7qc869s3zg7m1rb1c3aa4n0aw90cq"))))
5529 (build-system emacs-build-system)
5530 (home-page "https://github.com/ajc/nginx-mode")
5531 (synopsis "Emacs major mode for editing nginx config files")
5532 (description "This package provides an Emacs major mode for
5533editing nginx config files.")
5534 (license license:gpl2+)))
5535
5536(define-public emacs-stream
5537 (package
5538 (name "emacs-stream")
5539 (version "2.2.0")
5540 (home-page "https://github.com/NicolasPetton/stream")
5541 (source
5542 (origin
5543 (method url-fetch)
5544 (file-name (string-append name "-" version ".tar.gz"))
5545 (uri (string-append home-page "/archive/"version ".tar.gz"))
5546 (sha256
5547 (base32 "03ql4nqfz5pn55mjly6clhvc3g7x2d28kj7mrlqmigvjbql39xxc"))))
5548 (build-system emacs-build-system)
5549 (synopsis "Implementation of streams for Emacs")
5550 (description "This library provides an implementation of streams for Emacs.
5551Streams are implemented as delayed evaluation of cons cells.")
5552 (license license:gpl3+)))
5553
5554(define-public emacs-el-search
5555 (let ((commit "f26277bfbb3fc3fc74beea6592f294c439796bd4")
5556 (revision "1"))
5557 (package
5558 (name "emacs-el-search")
5559 ;; No ufficial release.
5560 (version (string-append "0.0-" revision "." (string-take commit 7)))
5561 (home-page "https://github.com/emacsmirror/el-search")
5562 (source
5563 (origin
5564 (method git-fetch)
5565 (file-name (string-append name "-" version ".tar.gz"))
5566 (uri (git-reference
5567 (commit commit)
5568 (url (string-append home-page ".git"))))
5569 (sha256
5570 (base32 "12xf40h9sb7xxg2r97gsia94q02543mgiiiw46fzh1ac7b7993g6"))))
5571 (build-system emacs-build-system)
5572 (inputs `(("emacs-stream" ,emacs-stream)))
5573 (synopsis "Expression based interactive search for emacs-lisp-mode")
5574 (description "This package provides expression based interactive search
5575procedures for emacs-lisp-mode.")
5576 (license license:gpl3+))))
5577
5578(define-public emacs-ht
5579 (package
5580 (name "emacs-ht")
5581 (version "2.1")
5582 (source
5583 (origin
5584 (method url-fetch)
5585 (uri (string-append
5586 "https://github.com/Wilfred/ht.el/archive/"
5587 version ".tar.gz"))
5588 (file-name (string-append name "-" version ".tar.gz"))
5589 (sha256
5590 (base32
5591 "1lpba36kzxcc966fvsbrfpy8ah9gnvay0yk26gbyjil0rggrbqzj"))))
5592 (build-system emacs-build-system)
5593 (propagated-inputs `(("emacs-dash" ,emacs-dash)))
5594 (home-page "https://github.com/Wilfred/ht.el")
5595 (synopsis "Hash table library for Emacs")
5596 (description
5597 "This package simplifies the use of hash tables in elisp. It also
5598provides functions to convert hash tables from and to alists and plists.")
5599 (license license:gpl3+)))
5600
5601(define-public emacs-log4e
5602 (package
5603 (name "emacs-log4e")
5604 (version "0.3.0")
5605 (source
5606 (origin
5607 (method url-fetch)
5608 (uri (string-append
5609 "https://github.com/aki2o/log4e/archive/v"
5610 version ".tar.gz"))
5611 (file-name (string-append name "-" version ".tar.gz"))
5612 (sha256
5613 (base32
5614 "0nbdpbw353snda3v19l9hsm6gimppwnpxj18amm350bm81lyim2g"))))
5615 (build-system emacs-build-system)
5616 (arguments
5617 `(#:phases
5618 (modify-phases %standard-phases
5619 (add-after 'unpack 'remove-tests
5620 ;; Guile builder complains about null characters in some
5621 ;; strings of test files. Remove "test" directory (it is not
5622 ;; needed anyway).
5623 (lambda _
5624 (delete-file-recursively "test"))))))
5625 (home-page "https://github.com/aki2o/log4e")
5626 (synopsis "Logging framework for elisp")
5627 (description
5628 "This package provides a logging framework for elisp. It allows
5629you to deal with multiple log levels.")
5630 (license license:gpl3+)))
5631
5632(define-public emacs-gntp
5633 (package
5634 (name "emacs-gntp")
5635 (version "0.1")
5636 (source
5637 (origin
5638 (method url-fetch)
5639 (uri (string-append
5640 "https://github.com/tekai/gntp.el/archive/v"
5641 version ".tar.gz"))
5642 (file-name (string-append name "-" version ".tar.gz"))
5643 (sha256
5644 (base32
5645 "16c1dfkia9yhl206bdhjr3b8kfvqcqr38jl5lq8qsyrrzsnmghny"))))
5646 (build-system emacs-build-system)
5647 (home-page "https://github.com/tekai/gntp.el")
5648 (synopsis "Growl Notification Protocol for Emacs")
5649 (description
5650 "This package implements the Growl Notification Protocol GNTP
5651described at @uref{http://www.growlforwindows.com/gfw/help/gntp.aspx}.
5652It is incomplete as it only lets you send but not receive
5653notifications.")
5654 (license license:bsd-3)))
5655
5656(define-public emacs-alert
5657 (package
5658 (name "emacs-alert")
5659 (version "1.2")
5660 (source
5661 (origin
5662 (method url-fetch)
5663 (uri (string-append
5664 "https://github.com/jwiegley/alert/archive/v"
5665 version ".tar.gz"))
5666 (file-name (string-append name "-" version ".tar.gz"))
5667 (sha256
5668 (base32
5669 "1693kck3k2iz5zhpmxwqyafxm68hr6gzs60lkxd3j1wlp2c9fwyr"))))
5670 (build-system emacs-build-system)
5671 (propagated-inputs
5672 `(("emacs-gntp" ,emacs-gntp)
5673 ("emacs-log4e" ,emacs-log4e)))
5674 (home-page "https://github.com/jwiegley/alert")
5675 (synopsis "Growl-style notification system for Emacs")
5676 (description
5677 "Alert is a Growl-workalike for Emacs which uses a common notification
5678interface and multiple, selectable \"styles\", whose use is fully
5679customizable by the user.")
5680 (license license:gpl2+)))
5681
5682(define-public emacs-mu4e-alert
5683 (package
5684 (name "emacs-mu4e-alert")
5685 (version "1.0")
5686 (source
5687 (origin
5688 (method url-fetch)
5689 (uri (string-append
5690 "https://github.com/iqbalansari/mu4e-alert/archive/v"
5691 version ".tar.gz"))
5692 (file-name (string-append name "-" version ".tar.gz"))
5693 (sha256
5694 (base32
5695 "07qc834qnxn8xi4bw5nawj8g91bmkzw0r0vahkgysp7r9xrf57gj"))))
5696 (build-system emacs-build-system)
5697 (propagated-inputs
5698 `(("emacs-alert" ,emacs-alert)
5699 ("emacs-s" ,emacs-s)
5700 ("emacs-ht" ,emacs-ht)
5701 ("mu" ,mu)))
5702 (home-page "https://github.com/iqbalansari/mu4e-alert")
5703 (synopsis "Desktop notification for mu4e")
5704 (description
5705 "This package provides desktop notifications for mu4e.
5706Additionally it can display the number of unread emails in the
5707mode-line.")
5708 (license license:gpl3+)))
5709
5710(define-public emacs-pretty-mode
5711 (package
5712 (name "emacs-pretty-mode")
5713 (version "2.0.3")
5714 (source
5715 (origin
5716 (method url-fetch)
5717 (uri (string-append "https://github.com/akatov/pretty-mode/"
5718 "archive/" version ".tar.gz"))
5719 (file-name (string-append name "-" version ".tar.gz"))
5720 (sha256
5721 (base32
5722 "1fan7m4vnqs8kpg7r54kx3g7faadkpkf9kzarfv8n57kq8w157pl"))))
5723 (build-system emacs-build-system)
5724 (home-page "https://github.com/akatov/pretty-mode")
5725 (synopsis "Redisplay parts of the buffer as Unicode symbols")
5726 (description
5727 "Emacs minor mode for redisplaying parts of the buffer as pretty symbols.")
5728 (license license:gpl3+)))
5729
5730(define-public emacs-yasnippet
5731 (package
5732 (name "emacs-yasnippet")
5733 (version "0.13.0")
5734 (source (origin
5735 (method url-fetch)
5736 (uri (string-append "https://github.com/joaotavora/yasnippet/"
5737 "archive/" version ".tar.gz"))
5738 (file-name (string-append name "-" version ".tar.gz"))
5739 (sha256
5740 (base32
5741 "12ls2x17agzbrj1xynjbmfa11igqxia4hj4fv6fpr66yci2r1plc"))
5742 (modules '((guix build utils)))
5743 (snippet
5744 '(begin
5745 ;; YASnippet expects a "snippets" subdirectory in the same
5746 ;; directory as yasnippet.el, but we don't install it
5747 ;; because it's a git submodule pointing to an external
5748 ;; repository. Adjust `yas-snippet-dirs' to prevent
5749 ;; warnings about a missing directory.
5750 (substitute* "yasnippet.el"
5751 (("^ +'yas-installed-snippets-dir\\)\\)\n")
5752 "))\n"))
5753 #t))))
5754 (build-system emacs-build-system)
5755 (home-page "https://github.com/joaotavora/yasnippet")
5756 (synopsis "Yet another snippet extension for Emacs")
5757 (description
5758 "YASnippet is a template system for Emacs. It allows you to type an
5759abbreviation and automatically expand it into function templates.")
5760 (license license:gpl3+)))
5761
5762(define-public emacs-yasnippet-snippets
5763 (let ((commit "885050d34737e2fb36a3e7759d60c09347bd4ce0")
5764 (revision "1"))
5765 (package
5766 (name "emacs-yasnippet-snippets")
5767 (version (string-append "1-" revision "." (string-take commit 8)))
5768 (source
5769 (origin
5770 (method git-fetch)
5771 (uri (git-reference
5772 (url "https://github.com/AndreaCrotti/yasnippet-snippets")
5773 (commit commit)))
5774 (file-name (string-append name "-" version "-checkout"))
5775 (sha256
5776 (base32
5777 "1m935zgglw0iakzrixld5rcjz3wnj84f8wy2mvc3pggjri9l0qr9"))))
5778 (build-system trivial-build-system)
5779 (arguments
5780 `(#:modules ((ice-9 ftw)
5781 (ice-9 regex)
5782 (guix build utils))
5783 #:builder
5784 (begin
5785 (use-modules (ice-9 ftw)
5786 (ice-9 regex)
5787 (guix build utils))
5788 (with-directory-excursion (assoc-ref %build-inputs "source")
5789 (for-each (lambda (dir)
5790 (copy-recursively
5791 dir
5792 (string-append %output
5793 "/share/emacs/yasnippet-snippets/"
5794 dir)))
5795 (scandir "." (lambda (fname)
5796 (and (string-match "-mode$" fname)
5797 (directory-exists? fname))))))
5798 #t)))
5799 (home-page "https://github.com/AndreaCrotti/yasnippet-snippets")
5800 (synopsis "Collection of YASnippet snippets for many languages")
5801 (description
5802 "Provides Andrea Crotti's collection of YASnippet snippets. After installation,
5803the snippets will be in \"~/.guix-profile/share/emacs/yasnippet-snippets/\".
5804To make YASnippet aware of these snippets, add the above directory to
5805@code{yas-snippet-dirs}.")
5806 (license license:expat))))
5807
5808(define-public emacs-helm-c-yasnippet
5809 (let ((commit "65ca732b510bfc31636708aebcfe4d2d845b59b0")
5810 (revision "1"))
5811 (package
5812 (name "emacs-helm-c-yasnippet")
5813 (version (string-append "0.6.7" "-" revision "."
5814 (string-take commit 7)))
5815 (source (origin
5816 (method git-fetch)
5817 (uri (git-reference
5818 (url "https://github.com/emacs-jp/helm-c-yasnippet")
5819 (commit commit)))
5820 (file-name (string-append name "-" version "-checkout"))
5821 (sha256
5822 (base32
5823 "1cbafjqlzxbg19xfdqsinsh7afq58gkf44rsg1qxfgm8g6zhr7f8"))))
5824 (build-system emacs-build-system)
5825 (propagated-inputs
5826 `(("emacs-helm" ,emacs-helm)
5827 ("emacs-yasnippet" ,emacs-yasnippet)))
5828 (home-page "https://github.com/emacs-jp/helm-c-yasnippet")
5829 (synopsis "Helm integration for Yasnippet")
5830 (description "This Emacs library provides Helm interface for
5831Yasnippet.")
5832 (license license:gpl2+))))
5833
5834(define-public emacs-helm-system-packages
5835 (package
5836 (name "emacs-helm-system-packages")
5837 (version "1.10.1")
5838 (source (origin
5839 (method git-fetch)
5840 (uri (git-reference
5841 (url "https://github.com/emacs-helm/helm-system-packages")
5842 (commit (string-append "v" version))))
5843 (file-name (string-append name "-" version "-checkout"))
5844 (sha256
5845 (base32
5846 "01by0c4lqi2cw8xmbxkjw7m9x78zssm31sx4hdpw5j35s2951j0f"))))
5847 (build-system emacs-build-system)
5848 (inputs
5849 `(("recutils" ,recutils)))
5850 (propagated-inputs
5851 `(("emacs-helm" ,emacs-helm)))
5852 (arguments
5853 `(#:phases
5854 (modify-phases %standard-phases
5855 (add-after 'unpack 'configure
5856 (lambda* (#:key inputs outputs #:allow-other-keys)
5857 (let ((recutils (assoc-ref inputs "recutils")))
5858 ;; Specify the absolute file names of the various
5859 ;; programs so that everything works out-of-the-box.
5860 (substitute* "helm-system-packages-guix.el"
5861 (("recsel") (string-append recutils "/bin/recsel")))))))))
5862 (home-page "https://github.com/emacs-helm/helm-system-packages")
5863 (synopsis "Helm System Packages is an interface to your package manager")
5864 (description "List all available packages in Helm (with installed
5865packages displayed in their own respective face). Fuzzy-search, mark and
5866execute the desired action over any selections of packages: Install,
5867uninstall, display packages details (in Org Mode) or insert details at point,
5868find files owned by packages... And much more, including performing all the
5869above over the network.")
5870 (license license:gpl3+)))
5871
5872(define-public emacs-memoize
5873 (package
5874 (name "emacs-memoize")
5875 (version "1.1")
5876 (source
5877 (origin
5878 (method url-fetch)
5879 (uri (string-append
5880 "https://github.com/skeeto/emacs-memoize/archive/"
5881 version ".tar.gz"))
5882 (file-name (string-append name "-" version ".tar.gz"))
5883 (sha256
5884 (base32
5885 "05ijgwi4ymxx31vpjm2pn356j85cykknajn14lrzz8pn5sh0vrg4"))))
5886 (build-system emacs-build-system)
5887 (arguments
5888 `(#:tests? #t
5889 #:test-command '("emacs" "--batch"
5890 "-l" "memoize-test.el"
5891 "-f" "ert-run-tests-batch-and-exit")))
5892 (home-page "https://github.com/skeeto/emacs-memoize")
5893 (synopsis "Emacs lisp memoization library")
5894 (description "@code{emacs-memoize} is an Emacs library for
5895memoizing functions.")
5896 (license license:unlicense)))
5897
5898(define-public emacs-linum-relative
5899 (package
5900 (name "emacs-linum-relative")
5901 (version "0.5")
5902 (source
5903 (origin
5904 (method url-fetch)
5905 (uri (string-append
5906 "https://github.com/coldnew/linum-relative/archive/"
5907 version ".tar.gz"))
5908 (file-name (string-append name "-" version ".tar.gz"))
5909 (sha256
5910 (base32
5911 "0s4frvr27866lw1rn3jal9wj5rkz9fx4yiszqv7w06azsdgsqksv"))))
5912 (build-system emacs-build-system)
5913 (home-page "https://github.com/coldnew/linum-relative")
5914 (synopsis "Relative line numbering for Emacs")
5915 (description "@code{emacs-linum-relative} displays the relative line
5916number on the left margin in Emacs.")
5917 (license license:gpl2+)))
5918
5919(define-public emacs-idle-highlight
5920 (package
5921 (name "emacs-idle-highlight")
5922 (version "1.1.3")
5923 (source
5924 (origin
5925 (method url-fetch)
5926 (uri (string-append
5927 "https://github.com/nonsequitur/idle-highlight-mode/archive/"
5928 version ".tar.gz"))
5929 (file-name (string-append name "-" version ".tar.gz"))
5930 (sha256
5931 (base32
5932 "0kdv10hrgqpskjh0zvpnzwlkn5bccnqxas62gkws6njln57bf8nl"))))
5933 (build-system emacs-build-system)
5934 (home-page "https://www.emacswiki.org/emacs/IdleHighlight")
5935 (synopsis "Highlights all occurrences of the word the point is on")
5936 (description
5937 "This Emacs package provides @code{idle-highlight-mode} that sets
5938 an idle timer to highlight all occurrences in the buffer of the word under
5939 the point.")
5940 (license license:gpl3+)))
5941
5942(define-public emacs-ox-twbs
5943 (package
5944 (name "emacs-ox-twbs")
5945 (version "1.1.1")
5946 (source
5947 (origin
5948 (method url-fetch)
5949 (uri (string-append
5950 "https://github.com/marsmining/ox-twbs/archive/v"
5951 version ".tar.gz"))
5952 (file-name (string-append name "-" version ".tar.gz"))
5953 (sha256
5954 (base32
5955 "1zaq8dczq5wijjk36114k2x3hfrqig3lyx6djril6wyk67vczyqs"))))
5956 (build-system emacs-build-system)
5957 (home-page "https://github.com/marsmining/ox-twbs")
5958 (synopsis "Export org-mode docs as HTML compatible with Twitter Bootstrap")
5959 (description
5960 "This Emacs package outputs your org-mode docs with a simple, clean and
5961modern look. It implements a new HTML back-end for exporting org-mode docs as
5962HTML compatible with Twitter Bootstrap. By default, HTML is exported with
5963jQuery and Bootstrap resources included via osscdn.")
5964 (license license:gpl3+)))
5965
5966(define-public emacs-highlight-sexp
5967 (package
5968 (name "emacs-highlight-sexp")
5969 (version "1.0")
5970 (source
5971 (origin
5972 (method url-fetch)
5973 (uri (string-append
5974 "https://github.com/daimrod/highlight-sexp/archive/v"
5975 version ".tar.gz"))
5976 (file-name (string-append name "-" version ".tar.gz"))
5977 (sha256
5978 (base32
5979 "0jwx87qkln1rg9wmv4qkgkml935fh2pkgrg5x4ca6n5dgb4q6rj1"))))
5980 (build-system emacs-build-system)
5981 (home-page "https://github.com/daimrod/highlight-sexp")
5982 (synopsis "Minor mode that highlights the s-exp at the current position")
5983 (description
5984 "This Emacs package highlights the s-exp at the current position.")
5985 (license license:gpl3+)))
5986
5987(define-public emacs-highlight-stages
5988 (let ((commit "29cbc5b78261916da042ddb107420083da49b271")
5989 (revision "1"))
5990 (package
5991 (name "emacs-highlight-stages")
5992 (version (string-append "1.1.0" "-" revision "." (string-take commit 7)))
5993 (source
5994 (origin
5995 (method git-fetch)
5996 (uri (git-reference
5997 (url "https://github.com/zk-phi/highlight-stages.git")
5998 (commit commit)))
5999 (file-name (string-append name "-" version "-checkout"))
6000 (sha256
6001 (base32
6002 "0r6nbcrr0dqpgm8dir8ahzjy7rw4nrac48byamzrq96r7ajlxlv0"))
6003 (patches
6004 (search-patches "emacs-highlight-stages-add-gexp.patch"))))
6005 (build-system emacs-build-system)
6006 (home-page "https://github.com/wigust/highlight-stages")
6007 (synopsis "Minor mode that highlights (quasi-quoted) expressions")
6008 (description "@code{highlight-stages} provides an Emacs minor mode that
6009highlights quasi-quoted expressions.")
6010 (license license:gpl3+))))
6011
6012(define-public emacspeak
6013 (package
6014 (name "emacspeak")
6015 (version "48.0")
6016 (source
6017 (origin
6018 (method url-fetch)
6019 (uri (string-append
6020 "https://github.com/tvraman/emacspeak/releases/download/"
6021 version "/emacspeak-" version ".tar.bz2"))
6022 (sha256
6023 (base32
6024 "07imi3hji06b3r7v7v59978q76s8a7ynmxwfc9j03pgnv965lpjy"))))
6025 (build-system gnu-build-system)
6026 (arguments
6027 '(#:make-flags (list (string-append "prefix="
6028 (assoc-ref %outputs "out")))
6029 #:phases
6030 (modify-phases %standard-phases
6031 (replace 'configure
6032 (lambda* (#:key outputs #:allow-other-keys)
6033 (let* ((out (assoc-ref outputs "out"))
6034 (lisp (string-append out
6035 "/share/emacs/site-lisp/emacspeak")))
6036 (setenv "SHELL" (which "sh"))
6037 ;; Configure Emacspeak according to etc/install.org.
6038 (invoke "make" "config"))))
6039 (add-after 'build 'build-espeak
6040 (lambda _
6041 (invoke "make" "espeak")))
6042 (replace 'install
6043 (lambda* (#:key inputs outputs #:allow-other-keys)
6044 (let* ((out (assoc-ref outputs "out"))
6045 (bin (string-append out "/bin"))
6046 (lisp (string-append out "/share/emacs/site-lisp/emacspeak"))
6047 (info (string-append out "/share/info"))
6048 (emacs (string-append (assoc-ref inputs "emacs")
6049 "/bin/emacs")))
6050 ;; According to etc/install.org, the Emacspeak directory should
6051 ;; be copied to its installation destination.
6052 (for-each
6053 (lambda (file)
6054 (copy-recursively file (string-append lisp "/" file)))
6055 '("etc" "info" "js" "lisp" "media" "scapes" "servers" "sounds"
6056 "stumpwm" "xsl"))
6057 ;; Make sure emacspeak is loaded from the correct directory.
6058 (substitute* "etc/emacspeak.sh"
6059 (("exec FLAVOR.*")
6060 (string-append "exec " emacs " -l " lisp
6061 "/lisp/emacspeak-setup.el $CL_ALL")))
6062 ;; Install the convenient startup script.
6063 (mkdir-p bin)
6064 (copy-file "etc/emacspeak.sh" (string-append bin "/emacspeak")))
6065 #t))
6066 (add-after 'install 'wrap-program
6067 (lambda* (#:key inputs outputs #:allow-other-keys)
6068 (let* ((out (assoc-ref outputs "out"))
6069 (emacspeak (string-append out "/bin/emacspeak"))
6070 (espeak (string-append (assoc-ref inputs "espeak")
6071 "/bin/espeak")))
6072 ;; The environment variable DTK_PROGRAM tells emacspeak what
6073 ;; program to use for speech.
6074 (wrap-program emacspeak
6075 `("DTK_PROGRAM" ":" prefix (,espeak)))
6076 #t))))
6077 #:tests? #f)) ; no check target
6078 (inputs
6079 `(("emacs" ,emacs)
6080 ("espeak" ,espeak)
6081 ("perl" ,perl)
6082 ("tcl" ,tcl)
6083 ("tclx" ,tclx)))
6084 (home-page "http://emacspeak.sourceforge.net")
6085 (synopsis "Audio desktop interface for Emacs")
6086 (description
6087 "Emacspeak is a speech interface that allows visually impaired users to
6088interact independently and efficiently with the computer. Audio formatting
6089--a technique pioneered by AsTeR-- and full support for W3C's Aural CSS (ACSS)
6090allows Emacspeak to produce rich aural presentations of electronic information.
6091By seamlessly blending all aspects of the Internet such as Web-surfing and
6092messaging, Emacspeak speech-enables local and remote information via a
6093consistent and well-integrated user interface.")
6094 (license license:gpl2+)))
6095
6096(define-public emacs-adaptive-wrap
6097 (package
6098 (name "emacs-adaptive-wrap")
6099 (version "0.5.1")
6100 (source (origin
6101 (method url-fetch)
6102 (uri (string-append
6103 "http://elpa.gnu.org/packages/adaptive-wrap-"
6104 version ".el"))
6105 (sha256
6106 (base32
6107 "0qi7gjprcpywk2daivnlavwsx53hl5wcqvpxbwinvigg42vxh3ll"))))
6108 (build-system emacs-build-system)
6109 (home-page "http://elpa.gnu.org/packages/adaptive-wrap.html")
6110 (synopsis "Smart line-wrapping with wrap-prefix")
6111 (description
6112 "This Emacs package provides the @code{adaptive-wrap-prefix-mode}
6113minor mode which sets the wrap-prefix property on the fly so that
6114single-long-line paragraphs get word-wrapped in a way similar to what
6115you'd get with @kbd{M-q} using @code{adaptive-fill-mode}, but without
6116actually changing the buffer's text.")
6117 (license license:gpl3+)))
6118
6119(define-public emacs-diff-hl
6120 (package
6121 (name "emacs-diff-hl")
6122 (version "1.8.5")
6123 (source
6124 (origin
6125 (method url-fetch)
6126 (uri (string-append "https://elpa.gnu.org/packages/diff-hl-"
6127 version ".tar"))
6128 (sha256
6129 (base32
6130 "1vxc7z7c2qs0mx7l5sa4sybi5qbzv0s79flj74p1ynw8dl3qxg3d"))))
6131 (build-system emacs-build-system)
6132 (home-page "https://github.com/dgutov/diff-hl")
6133 (synopsis
6134 "Highlight uncommitted changes using VC")
6135 (description
6136 "@code{diff-hl-mode} highlights uncommitted changes on the side of the
6137window (using the fringe, by default), allows you to jump between
6138the hunks and revert them selectively.")
6139 (license license:gpl3+)))
6140
6141(define-public emacs-diminish
6142 (package
6143 (name "emacs-diminish")
6144 (version "0.45")
6145 (source
6146 (origin
6147 (method url-fetch)
6148 (uri (string-append
6149 "https://github.com/myrjola/diminish.el/archive/v"
6150 version ".tar.gz"))
6151 (file-name (string-append name "-" version ".tar.gz"))
6152 (sha256
6153 (base32
6154 "0i3629sv5cfrrb00hcnmaqzgs8mk36yasc1ax3ry1ga09nr6rkj9"))))
6155 (build-system emacs-build-system)
6156 (home-page "https://github.com/myrjola/diminish.el")
6157 (synopsis "Diminish minor modes with no modeline display")
6158 (description "@code{emacs-diminish} implements hiding or
6159abbreviation of the mode line displays (lighters) of minor modes.")
6160 (license license:gpl2+)))
6161
6162(define-public emacs-use-package
6163 (let ((commit "da8c9e2840343906e732f9699e43d35a1f06481d")
6164 (revision "1"))
6165 (package
6166 (name "emacs-use-package")
6167 (version (git-version "2.3" revision commit))
6168 (source (origin
6169 (method git-fetch)
6170 (uri (git-reference
6171 (url "https://github.com/jwiegley/use-package")
6172 (commit commit)))
6173 (file-name (git-file-name name version))
6174 (sha256
6175 (base32
6176 "0jz38pbq1p9h85i6qcsh3sfzkd103y6mw3rg5zd14dxigp8ir3xz"))))
6177 (build-system emacs-build-system)
6178 (propagated-inputs
6179 `(("emacs-diminish" ,emacs-diminish)))
6180 (arguments
6181 `(#:tests? #t
6182 #:test-command '("emacs" "--batch"
6183 "-l" "use-package-tests.el"
6184 "-f" "ert-run-tests-batch-and-exit")))
6185 (home-page "https://github.com/jwiegley/use-package")
6186 (synopsis "Declaration for simplifying your .emacs")
6187 (description "The use-package macro allows you to isolate package
6188configuration in your @file{.emacs} file in a way that is both
6189performance-oriented and tidy.")
6190 (license license:gpl2+))))
6191
6192(define-public emacs-strace-mode
6193 (let* ((commit "6a69b4b06db6797af56f33eda5cb28af94e59f11")
6194 (revision "1"))
6195 (package
6196 (name "emacs-strace-mode")
6197 (version (string-append "0.0.2-" revision "." (string-take commit 7)))
6198 (source (origin
6199 (method git-fetch)
6200 (uri (git-reference
6201 (url "https://github.com/pkmoore/strace-mode")
6202 (commit commit)))
6203 (file-name (string-append name "-" version "-checkout"))
6204 (sha256
6205 (base32
6206 "1lbk2kzdznf2bkfazizfbimaxxzfzv00lrz1ran9dc2zqbc0bj9f"))))
6207 (build-system emacs-build-system)
6208 (home-page "https://github.com/pkmoore/strace-mode")
6209 (synopsis "Emacs major mode to highlight strace outputs")
6210 (description "@code{emacs-strace-mode} provides an Emacs major mode
6211 highlighting strace outputs.")
6212 (license license:gpl3+))))
6213
6214(define-public emacs-default-encrypt
6215 (package
6216 (name "emacs-default-encrypt")
6217 (version "4.3")
6218 (source
6219 (origin
6220 (method url-fetch)
6221 (uri (string-append
6222 "https://www.informationelle-selbstbestimmung-im-internet.de"
6223 "/emacs/jl-encrypt" version "/jl-encrypt.el"))
6224 (file-name (string-append "jl-encrypt-" version ".el"))
6225 (sha256
6226 (base32
6227 "16i3rlfp3jxlqvndn8idylhmczync3gwmy8a019v29vyr48rnnr0"))))
6228 (build-system emacs-build-system)
6229 (home-page "https://www.informationelle-selbstbestimmung-im-internet.de/Emacs.html")
6230 (synopsis "Automatically encrypt or sign Gnus messages in Emacs")
6231 (description
6232 "DefaultEncrypt is designed to be used with Gnus in Emacs. It
6233automatically encrypts messages that you send (e.g., email) when public keys
6234for all recipients are available, and it protects you from accidentally
6235sending un-encrypted messages. It can also be configured to automatically
6236sign messages that you send. For details and instructions on how to use
6237DefaultEncrypt, please refer to the home page or read the comments in the
6238source file, @file{jl-encrypt.el}.")
6239 (license license:gpl3+)))
6240
6241(define-public emacs-htmlize
6242 (package
6243 (name "emacs-htmlize")
6244 (version "1.53")
6245 (source
6246 (origin
6247 (method url-fetch)
6248 (uri (string-append
6249 "https://github.com/hniksic/emacs-htmlize/archive/release/"
6250 version ".tar.gz"))
6251 (file-name (string-append name "-" version ".tar.gz"))
6252 (sha256
6253 (base32
6254 "1lzaf9m1qr9dhw4nn53g6wszk2vqw95gpsbrc3y85bams4cn24ga"))))
6255 (build-system emacs-build-system)
6256 (home-page "https://github.com/hniksic/emacs-htmlize")
6257 (synopsis "Convert buffer text and decorations to HTML")
6258 (description "@code{emacs-htmlize} converts the buffer text and
6259the associated decorations to HTML. Output to CSS, inline CSS and
6260fonts is supported.")
6261 (license license:gpl2+)))
6262
6263(define-public emacs-xmlgen
6264 (package
6265 (name "emacs-xmlgen")
6266 (version "0.5")
6267 (source
6268 (origin
6269 (method url-fetch)
6270 (uri (string-append
6271 "https://github.com/philjackson/xmlgen/archive/"
6272 version ".tar.gz"))
6273 (file-name (string-append name "-" version ".tar.gz"))
6274 (sha256
6275 (base32
6276 "0zay490vjby3f7455r0vydmjg7q1gwc78hilpfb0rg4gwz224z8r"))))
6277 (build-system emacs-build-system)
6278 (arguments
6279 `(#:tests? #t
6280 #:test-command '("emacs" "--batch"
6281 "-l" "xmlgen-test.el"
6282 "-f" "ert-run-tests-batch-and-exit")))
6283 (home-page "https://github.com/philjackson/xmlgen")
6284 (synopsis "S-expression to XML domain specific language (DSL) in
6285Emacs Lisp")
6286 (description "@code{emacs-xmlgen} provides S-expression to XML
6287conversion for Emacs Lisp.")
6288 (license license:gpl2+)))
6289
6290(define-public emacs-cdlatex
6291 (package
6292 (name "emacs-cdlatex")
6293 (version "4.7")
6294 (source
6295 (origin
6296 (method url-fetch)
6297 (uri (string-append
6298 "https://github.com/cdominik/cdlatex/archive/"
6299 version ".tar.gz"))
6300 (file-name (string-append name "-" version ".tar.gz"))
6301 (sha256
6302 (base32
6303 "0pivapphmykc6vhvpx7hdyl55ls37vc4jcrxpvs4yk7jzcmwa9xp"))))
6304 (build-system emacs-build-system)
6305 (propagated-inputs
6306 `(("emacs-auctex" ,emacs-auctex)))
6307 (home-page "https://github.com/cdominik/cdlatex")
6308 (synopsis "Fast Emacs input methods for LaTeX environments and
6309math")
6310 (description "CDLaTeX is an Emacs minor mode supporting fast
6311insertion of environment templates and math in LaTeX. Similar
6312commands are also offered as part of the AUCTeX package, but it is not
6313the same - CDLaTeX focuses on speediness for inserting LaTeX
6314constructs.")
6315 (license license:gpl3+)))
6316
6317(define-public emacs-cnfonts
6318 (package
6319 (name "emacs-cnfonts")
6320 (version "0.9.1")
6321 (source (origin
6322 (method url-fetch)
6323 (uri (string-append
6324 "https://github.com/tumashu/cnfonts/archive/v"
6325 version ".tar.gz"))
6326 (file-name (string-append name "-" version ".tar.gz"))
6327 (sha256
6328 (base32
6329 "1l6cgcvc6md1zq97ccczankpyi0k4vjx6apflny6kjq3p33lyhf4"))))
6330 (build-system emacs-build-system)
6331 (home-page "https://github.com/tumashu/cnfonts")
6332 (synopsis "Emacs Chinese fonts setup tool")
6333 (description "cnfonts is a Chinese fonts setup tool, allowing for easy
6334configuration of Chinese fonts.")
6335 (license license:gpl2+)))
6336
6337(define-public emacs-php-mode
6338 (package
6339 (name "emacs-php-mode")
6340 (version "20171225.342")
6341 (source (origin
6342 (method url-fetch)
6343 (uri (string-append
6344 "https://melpa.org/packages/php-mode-"
6345 version ".tar"))
6346 (sha256
6347 (base32
6348 "1zz682f34v4wsm2dyj1gnrnvsrqdq1cy7j8p6cvc398w2fziyg3q"))))
6349 (build-system emacs-build-system)
6350 (home-page "https://github.com/ejmr/php-mode")
6351 (synopsis "Major mode for editing PHP code")
6352 (description "@code{php-mode} is a major mode for editing PHP source
6353code. It's an extension of C mode; thus it inherits all C mode's navigation
6354functionality. But it colors according to the PHP grammar and indents
6355according to the PEAR coding guidelines. It also includes a couple handy
6356IDE-type features such as documentation search and a source and class
6357browser.")
6358 (license license:gpl3+)))
6359
6360(define-public emacs-pos-tip
6361 (package
6362 (name "emacs-pos-tip")
6363 (version "0.4.6")
6364 (source (origin
6365 (method url-fetch)
6366 (uri (string-append
6367 "https://github.com/pitkali/pos-tip/archive/"
6368 version ".tar.gz"))
6369 (file-name (string-append name "-" version ".tar.gz"))
6370 (sha256
6371 (base32
6372 "12jqfy26vjk7lq0aa8yn8zqj8c85fkvx7y9prj0pcn4wqiz2ad2r"))))
6373 (build-system emacs-build-system)
6374 ;; The following functions and variables needed by emacs-pos-tip are
6375 ;; not included in emacs-minimal:
6376 ;; x-display-pixel-width, x-display-pixel-height, x-show-tip
6377 (arguments `(#:emacs ,emacs))
6378 (home-page "https://github.com/pitkali/pos-tip")
6379 (synopsis "Show tooltip at point")
6380 (description "The standard library tooltip.el provides a function for
6381displaying a tooltip at the mouse position. However, locating a tooltip at an
6382arbitrary buffer position in a window is not easy. Pos-tip provides such a
6383function to be used by other frontend programs.")
6384 (license license:gpl2+)))
6385
6386(define-public emacs-pyim-basedict
6387 (package
6388 (name "emacs-pyim-basedict")
6389 (version "0.3.1")
6390 (source (origin
6391 (method url-fetch)
6392 (uri (string-append
6393 "https://github.com/tumashu/pyim-basedict/archive/v"
6394 version ".tar.gz"))
6395 (file-name (string-append name "-" version ".tar.gz"))
6396 (sha256
6397 (base32
6398 "0nfgxviavkgrpyfsw60xsws4fk51fcmgl8fp6zf4ibqjjbp53n3n"))))
6399 (build-system emacs-build-system)
6400 (home-page "https://github.com/tumashu/pyim-basedict")
6401 (synopsis "Input method dictionary of pyim")
6402 (description "Pyim-basedict is the default pinyin input method dictionary,
6403containing words from the rime project.")
6404 (license license:gpl2+)))
6405
6406(define-public emacs-pyim
6407 (package
6408 (name "emacs-pyim")
6409 (version "1.8")
6410 (source
6411 (origin
6412 (method git-fetch)
6413 (uri (git-reference
6414 (url "https://github.com/tumashu/pyim")
6415 (commit (string-append "v" version))))
6416 (file-name (git-file-name name version))
6417 (sha256
6418 (base32
6419 "16rma4cv7xgky0g3x4an27v30jdi6i1sqw43cl99zhkqvp43l3f9"))))
6420 (build-system emacs-build-system)
6421 (propagated-inputs
6422 `(("emacs-async" ,emacs-async)
6423 ("emacs-pyim-basedict" ,emacs-pyim-basedict)
6424 ("emacs-popup" ,emacs-popup)
6425 ("emacs-posframe" ,emacs-posframe)))
6426 (home-page "https://github.com/tumashu/pyim")
6427 (synopsis "Chinese input method")
6428 (description "Chinese input method which supports quanpin, shuangpin, wubi
6429and cangjie.")
6430 (license license:gpl2+)))
6431
6432(define-public emacs-posframe
6433 (package
6434 (name "emacs-posframe")
6435 (version "0.4.2")
6436 (source
6437 (origin
6438 (method url-fetch)
6439 (uri (string-append
6440 "https://elpa.gnu.org/packages/posframe-" version ".el"))
6441 (sha256
6442 (base32
6443 "1h8vvxvsg41vc1nnglqjs2q0k1yzfsn72skga9s76qa3zxmx6kds"))))
6444 (build-system emacs-build-system)
6445 ;; emacs-minimal does not include the function font-info
6446 (arguments `(#:emacs ,emacs))
6447 (home-page "https://github.com/tumashu/posframe")
6448 (synopsis "Pop a posframe (a child frame) at point")
6449 (description "@code{emacs-posframe} can pop a posframe at point. A
6450posframe is a child frame displayed within its root window's buffer.
6451@code{emacs-posframe} is fast and works well with CJK languages.")
6452 (license license:gpl3+)))
6453
6454(define-public emacs-el2org
6455 (package
6456 (name "emacs-el2org")
6457 (version "0.6.0")
6458 (source (origin
6459 (method url-fetch)
6460 (uri (string-append
6461 "https://github.com/tumashu/el2org/archive/v"
6462 version ".tar.gz"))
6463 (file-name (string-append name "-" version ".tar.gz"))
6464 (sha256
6465 (base32
6466 "0gd3km1swwvg2w0kdi7370f54wgrflxn63gjgssfjc1iyc9sbqwq"))))
6467 (build-system emacs-build-system)
6468 (home-page "https://github.com/tumashu/el2org")
6469 (synopsis "Convert Emacs-lisp file to org file")
6470 (description "El2org is a simple tool, which can convert Emacs-lisp file
6471to org file, you can use this tool to write orgify commentary.")
6472 (license license:gpl2+)))
6473
6474(define-public emacs-mustache
6475 (package
6476 (name "emacs-mustache")
6477 (version "0.23")
6478 (source (origin
6479 (method url-fetch)
6480 (uri (string-append
6481 "https://github.com/Wilfred/mustache.el/archive/"
6482 version ".tar.gz"))
6483 (file-name (string-append name "-" version ".tar.gz"))
6484 (sha256
6485 (base32
6486 "0k9lcgil7kykkv1ylrgwy1g13ldjjmgi2cwmysgyb2vlj3jbwpdj"))))
6487 (build-system emacs-build-system)
6488 (propagated-inputs
6489 `(("emacs-dash" ,emacs-dash)
6490 ("emacs-ht" ,emacs-ht)
6491 ("emacs-s" ,emacs-s)))
6492 (home-page "https://github.com/Wilfred/mustache.el")
6493 (synopsis "Mustache templating library for Emacs")
6494 (description "Mustache templating library for Emacs, mustache is
6495a simple web template system, which is described as a logic-less system
6496because it lacks any explicit control flow statements, both looping and
6497conditional evaluation can be achieved using section tags processing lists
6498and lambdas.")
6499 (license license:gpl3+)))
6500
6501(define-public emacs-org2web
6502 (package
6503 (name "emacs-org2web")
6504 (version "0.9.1")
6505 (source (origin
6506 (method url-fetch)
6507 (uri (string-append
6508 "https://github.com/tumashu/org2web/archive/v"
6509 version ".tar.gz"))
6510 (file-name (string-append name "-" version ".tar.gz"))
6511 (sha256
6512 (base32
6513 "1c0ixcphlhp4c4qdiwq40bc3yp1gp1llp8pxrk4s7ny9n68s52zp"))))
6514 (build-system emacs-build-system)
6515 (propagated-inputs
6516 `(("emacs-dash" ,emacs-dash)
6517 ("emacs-el2org" ,emacs-el2org)
6518 ("emacs-ht" ,emacs-ht)
6519 ("emacs-mustache" ,emacs-mustache)
6520 ("emacs-simple-httpd" ,emacs-simple-httpd)))
6521 (home-page "https://github.com/tumashu/org2web")
6522 (synopsis "Static site generator based on org-mode ")
6523 (description "Org2web is a static site generator based on org-mode,
6524which code derived from Kelvin H's org-page.")
6525 (license license:gpl2+)))
6526
6527(define-public emacs-xelb
6528 (package
6529 (name "emacs-xelb")
6530 (version "0.16")
6531 (source (origin
6532 (method url-fetch)
6533 (uri (string-append "https://elpa.gnu.org/packages/xelb-"
6534 version ".tar"))
6535 (sha256
6536 (base32
6537 "03wsr1jr7f7zfd80h864rd4makwh4widdnj1kjv2xyjwdgap9rl8"))))
6538 (build-system emacs-build-system)
6539 ;; The following functions and variables needed by emacs-xelb are
6540 ;; not included in emacs-minimal:
6541 ;; x-display-screens, x-keysym-table, x-alt-keysym, x-meta-keysym
6542 ;; x-hyper-keysym, x-super-keysym, libxml-parse-xml-region
6543 ;; x-display-pixel-width, x-display-pixel-height
6544 (arguments
6545 `(#:emacs ,emacs
6546 #:phases
6547 (modify-phases %standard-phases
6548 (add-after 'unpack 'regenerate-el-files
6549 (lambda* (#:key inputs #:allow-other-keys)
6550 (invoke "make"
6551 (string-append "PROTO_PATH="
6552 (assoc-ref inputs "xcb-proto")
6553 "/share/xcb")
6554 (string-append "EMACS_BIN="
6555 (assoc-ref inputs "emacs")
6556 "/bin/emacs -Q")))))))
6557 (native-inputs `(("xcb-proto" ,xcb-proto)))
6558 (home-page "https://github.com/ch11ng/xelb")
6559 (synopsis "X protocol Emacs Lisp binding")
6560 (description "@code{emacs-xelb} is a pure Emacs Lisp implementation of the
6561X11 protocol based on the XML description files from the XCB project. It
6562features an object-oriented API and permits a certain degree of concurrency.
6563It should enable you to implement low-level X11 applications.")
6564 (license license:gpl3+)))
6565
6566(define-public emacs-exwm
6567 (package
6568 (name "emacs-exwm")
6569 (version "0.21")
6570 (synopsis "Emacs X window manager")
6571 (source (origin
6572 (method url-fetch)
6573 (uri (string-append "https://elpa.gnu.org/packages/exwm-"
6574 version ".tar"))
6575 (sha256
6576 (base32
6577 "07ng1pgsnc3isfsyzh2gfc7391p9il8lb5xqf1z6yqn20w7k6xzj"))))
6578 (build-system emacs-build-system)
6579 (propagated-inputs
6580 `(("emacs-xelb" ,emacs-xelb)))
6581 (inputs
6582 `(("xhost" ,xhost)
6583 ("dbus" ,dbus)))
6584 ;; The following functions and variables needed by emacs-exwm are
6585 ;; not included in emacs-minimal:
6586 ;; scroll-bar-mode, fringe-mode
6587 ;; x-display-pixel-width, x-display-pixel-height
6588 (arguments
6589 `(#:emacs ,emacs
6590 #:phases
6591 (modify-phases %standard-phases
6592 (add-after 'build 'install-xsession
6593 (lambda* (#:key inputs outputs #:allow-other-keys)
6594 (let* ((out (assoc-ref outputs "out"))
6595 (xsessions (string-append out "/share/xsessions"))
6596 (bin (string-append out "/bin"))
6597 (exwm-executable (string-append bin "/exwm")))
6598 ;; Add a .desktop file to xsessions
6599 (mkdir-p xsessions)
6600 (mkdir-p bin)
6601 (with-output-to-file
6602 (string-append xsessions "/exwm.desktop")
6603 (lambda _
6604 (format #t "[Desktop Entry]~@
6605 Name=~a~@
6606 Comment=~a~@
6607 Exec=~a~@
6608 TryExec=~@*~a~@
6609 Type=Application~%" ,name ,synopsis exwm-executable)))
6610 ;; Add a shell wrapper to bin
6611 (with-output-to-file exwm-executable
6612 (lambda _
6613 (format #t "#!~a ~@
6614 ~a +SI:localuser:$USER ~@
6615 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
6616 (string-append (assoc-ref inputs "bash") "/bin/sh")
6617 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
6618 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
6619 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
6620 '(cond
6621 ((file-exists-p "~/.exwm")
6622 (load-file "~/.exwm"))
6623 ((not (featurep 'exwm))
6624 (require 'exwm)
6625 (require 'exwm-config)
6626 (exwm-config-default)
6627 (message (concat "exwm configuration not found. "
6628 "Falling back to default configuration...")))))))
6629 (chmod exwm-executable #o555)
6630 #t))))))
6631 (home-page "https://github.com/ch11ng/exwm")
6632 (description "EXWM is a full-featured tiling X window manager for Emacs
6633built on top of XELB.")
6634 (license license:gpl3+)))
6635
6636(define-public emacs-switch-window
6637 (package
6638 (name "emacs-switch-window")
6639 (version "1.6.2")
6640 (source
6641 (origin
6642 (method git-fetch)
6643 (uri (git-reference
6644 (url "https://github.com/dimitri/switch-window")
6645 (commit (string-append "v" version))))
6646 (file-name (git-file-name name version))
6647 (sha256
6648 (base32
6649 "0rci96asgamr6qp6nkyr5vwrnslswjxcjd96yccy4aivh0g66yfg"))))
6650 (build-system emacs-build-system)
6651 (home-page "https://github.com/dimitri/switch-window")
6652 (synopsis "Emacs window switch tool")
6653 (description "Switch-window is an emacs window switch tool, which
6654offer a visual way to choose a window to switch to, delete, split or
6655other operations.")
6656 (license license:wtfpl2)))
6657
6658(define-public emacs-exwm-x
6659 (package
6660 (name "emacs-exwm-x")
6661 (version "1.9.0")
6662 (synopsis "Derivative window manager based on EXWM")
6663 (source
6664 (origin
6665 (method git-fetch)
6666 (uri (git-reference
6667 (url "https://github.com/tumashu/exwm-x")
6668 (commit (string-append "v" version))))
6669 (file-name (git-file-name name version))
6670 (sha256
6671 (base32
6672 "03l3dl7s1qys1kkh40rm1sfx7axy1b8sf5f6nyksj9ps6d30p5i4"))))
6673 (build-system emacs-build-system)
6674 (propagated-inputs
6675 `(("emacs-exwm" ,emacs-exwm)
6676 ("emacs-switch-window" ,emacs-switch-window)
6677 ("emacs-ivy" ,emacs-ivy)
6678 ("emacs-use-package" ,emacs-use-package)))
6679 (inputs
6680 `(("xhost" ,xhost)
6681 ("dbus" ,dbus)))
6682 ;; Need emacs instead of emacs-minimal,
6683 ;; for emacs's bin path will be inserted into bin/exwm-x file.
6684 (arguments
6685 `(#:emacs ,emacs
6686 #:phases
6687 (modify-phases %standard-phases
6688 (add-after 'build 'install-xsession
6689 (lambda* (#:key inputs outputs #:allow-other-keys)
6690 (let* ((out (assoc-ref outputs "out"))
6691 (xsessions (string-append out "/share/xsessions"))
6692 (bin (string-append out "/bin"))
6693 (exwm-executable (string-append bin "/exwm-x")))
6694 ;; Add a .desktop file to xsessions
6695 (mkdir-p xsessions)
6696 (mkdir-p bin)
6697 (with-output-to-file
6698 (string-append xsessions "/exwm-x.desktop")
6699 (lambda _
6700 (format #t "[Desktop Entry]~@
6701 Name=~a~@
6702 Comment=~a~@
6703 Exec=~a~@
6704 TryExec=~@*~a~@
6705 Type=Application~%" ,name ,synopsis exwm-executable)))
6706 ;; Add a shell wrapper to bin
6707 (with-output-to-file exwm-executable
6708 (lambda _
6709 (format #t "#!~a ~@
6710 ~a +SI:localuser:$USER ~@
6711 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
6712 (string-append (assoc-ref inputs "bash") "/bin/sh")
6713 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
6714 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
6715 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
6716 '(require 'exwmx-loader))))
6717 (chmod exwm-executable #o555)
6718 #t))))))
6719 (home-page "https://github.com/tumashu/exwm-x")
6720 (description "EXWM-X is a derivative window manager based on EXWM, with focus
6721on mouse-control.")
6722 (license license:gpl3+)))
6723
6724(define-public emacs-gnuplot
6725 (package
6726 (name "emacs-gnuplot")
6727 (version "0.7.0")
6728 (source
6729 (origin
6730 (method url-fetch)
6731 (uri (string-append
6732 "https://github.com/bruceravel/gnuplot-mode/archive/"
6733 version ".tar.gz"))
6734 (file-name (string-append name "-" version ".tar.gz"))
6735 (sha256
6736 (base32
6737 "0glzymrn138lwig7p4cj17x4if5jisr6l4g6wcbxisqkqgc1h01i"))))
6738 (build-system gnu-build-system)
6739 (native-inputs `(("emacs" ,emacs-minimal)))
6740 (arguments
6741 (let ((elisp-dir (string-append "/share/emacs/site-lisp/guix.d"
6742 "/gnuplot-" version)))
6743 `(#:modules ((guix build gnu-build-system)
6744 (guix build utils)
6745 (guix build emacs-utils))
6746 #:imported-modules (,@%gnu-build-system-modules
6747 (guix build emacs-utils))
6748 #:configure-flags
6749 (list (string-append "EMACS=" (assoc-ref %build-inputs "emacs")
6750 "/bin/emacs")
6751 (string-append "--with-lispdir=" %output ,elisp-dir))
6752 #:phases
6753 (modify-phases %standard-phases
6754 (add-after 'install 'generate-autoloads
6755 (lambda* (#:key outputs #:allow-other-keys)
6756 (emacs-generate-autoloads
6757 "gnuplot"
6758 (string-append (assoc-ref outputs "out") ,elisp-dir))
6759 #t))))))
6760 (home-page "https://github.com/bruceravel/gnuplot-mode")
6761 (synopsis "Emacs major mode for interacting with gnuplot")
6762 (description "@code{emacs-gnuplot} is an emacs major mode for interacting
6763with gnuplot.")
6764 (license license:gpl2+)))
6765
6766(define-public emacs-transpose-frame
6767 (package
6768 (name "emacs-transpose-frame")
6769 (version "0.1.0")
6770 (source
6771 (origin
6772 (method url-fetch)
6773 (uri "http://www.emacswiki.org/emacs/download/transpose-frame.el")
6774 (file-name (string-append "transpose-frame-" version ".el"))
6775 (sha256
6776 (base32
6777 "1f67yksgw9s6j0033hmqzaxx2a93jm11sd5ys7cc3li5gfh680m4"))))
6778 (build-system emacs-build-system)
6779 (home-page "https://www.emacswiki.org/emacs/TransposeFrame")
6780 (synopsis "Transpose window arrangement in current frame")
6781 (description "@code{emacs-transpose-frame} provides some interactive
6782functions which allows users to transpose windows arrangement in currently
6783selected frame.")
6784 (license license:bsd-2)))
6785
6786(define-public emacs-key-chord
6787 (package
6788 (name "emacs-key-chord")
6789 (version "0.6")
6790 (source
6791 (origin
6792 (method url-fetch)
6793 (uri "https://www.emacswiki.org/emacs/download/key-chord.el")
6794 (file-name (string-append "key-chord-" version ".el"))
6795 (sha256
6796 (base32
6797 "03m44pqggfrd53nh9dvpdjgm0rvca34qxmd30hr33hzprzjambxg"))))
6798 (build-system emacs-build-system)
6799 (home-page "https://www.emacswiki.org/emacs/key-chord.el")
6800 (synopsis "Map pairs of simultaneously pressed keys to Emacs commands")
6801 (description "@code{emacs-key-chord} provides @code{key-chord-mode}, a
6802mode for binding key chords to commands. A key chord is defined as two keys
6803pressed simultaneously or a single key quickly pressed twice.")
6804 (license license:gpl2+)))
6805
6806(define-public emacs-evil-surround
6807 (package
6808 (name "emacs-evil-surround")
6809 (version "1.0.0")
6810 (source
6811 (origin
6812 (method url-fetch)
6813 (uri (string-append
6814 "https://github.com/timcharper/evil-surround/archive/v"
6815 version ".tar.gz"))
6816 (file-name (string-append name "-" version ".tar.gz"))
6817 (sha256
6818 (base32
6819 "0p572jgic3q1ia1nz37kclir729ay6i2f4sa7wnaapyxly2lwb3r"))))
6820 (build-system emacs-build-system)
6821 (propagated-inputs
6822 `(("emacs-evil" ,emacs-evil)))
6823 (home-page "https://github.com/timcharper/evil-surround")
6824 (synopsis "Easily modify surrounding parantheses and quotes")
6825 (description "@code{emacs-evil-surround} allows easy deletion, change and
6826addition of surrounding pairs, such as parantheses and quotes, in evil mode.")
6827 (license license:gpl3+)))
6828
6829(define-public emacs-evil-commentary
6830 (package
6831 (name "emacs-evil-commentary")
6832 (version "2.1.1")
6833 (source
6834 (origin
6835 (method url-fetch)
6836 (uri (string-append
6837 "https://github.com/linktohack/evil-commentary/archive/v"
6838 version ".tar.gz"))
6839 (file-name (string-append name "-" version ".tar.gz"))
6840 (sha256
6841 (base32
6842 "1jdya0i921nwskwrzdsj0vrr3m7gm49dy6f6pk9p5nxaarfxk230"))))
6843 (build-system emacs-build-system)
6844 (propagated-inputs
6845 `(("emacs-evil" ,emacs-evil)))
6846 (home-page "https://github.com/linktohack/evil-commentary")
6847 (synopsis "Comment out code in evil mode")
6848 (description "@code{emacs-evil-commentary} adds keybindings to easily
6849comment out lines of code in evil mode. It provides @code{gcc} to comment out
6850lines, and @code{gc} to comment out the target of a motion.")
6851 (license license:gpl3+)))
6852
6853;; Tests for emacs-ansi have a circular dependency with ert-runner, and
6854;; therefore cannot be run
6855(define-public emacs-ansi
6856 (package
6857 (name "emacs-ansi")
6858 (version "0.4.1")
6859 (source
6860 (origin
6861 (method url-fetch)
6862 (uri (string-append "https://github.com/rejeep/ansi.el/archive/v"
6863 version ".tar.gz"))
6864 (file-name (string-append name "-" version ".tar.gz"))
6865 (sha256
6866 (base32
6867 "13jj4vbi98j3p17hs99bmy7g21jd5h4v3wpxk4pkvhylm3bfwjw8"))))
6868 (build-system emacs-build-system)
6869 (propagated-inputs
6870 `(("emacs-dash" ,emacs-dash)
6871 ("emacs-s" ,emacs-s)))
6872 (home-page "https://github.com/rejeep/ansi.el")
6873 (synopsis "Convert strings to ANSI")
6874 (description "@code{emacs-ansi} defines functions that turns simple
6875strings to ANSI strings. Turning a string into an ANSI string can be to add
6876color to a text, add color in the background of a text or adding a style, such
6877as bold, underscore or italic.")
6878 (license license:gpl3+)))
6879
6880;; Tests for emacs-commander have a circular dependency with ert-runner, and
6881;; therefore cannot be run
6882(define-public emacs-commander
6883 (package
6884 (name "emacs-commander")
6885 (version "0.7.0")
6886 (source
6887 (origin
6888 (method url-fetch)
6889 (uri (string-append "https://github.com/rejeep/commander.el/archive/v"
6890 version ".tar.gz"))
6891 (file-name (string-append name "-" version ".tar.gz"))
6892 (sha256
6893 (base32
6894 "196s2i15z7gwxa97l1wkxvjnfmj5n38wwm6d3g4zz15l2vqggc2y"))))
6895 (build-system emacs-build-system)
6896 (propagated-inputs
6897 `(("emacs-dash" ,emacs-dash)
6898 ("emacs-f" ,emacs-f)
6899 ("emacs-s" ,emacs-s)))
6900 (home-page "https://github.com/rejeep/commander.el")
6901 (synopsis "Emacs command line parser")
6902 (description "@code{emacs-commander} provides command line parsing for
6903Emacs.")
6904 (license license:gpl3+)))
6905
6906;; Tests for ert-runner have a circular dependency with ecukes, and therefore
6907;; cannot be run
6908(define-public emacs-ert-runner
82328c01
MC
6909 (let ((version "0.7.0")
6910 (revision "1")
6911 (commit "90b8fdd5970ef76a4649be60003b37f82cdc1a65"))
6912 (package
6913 (name "emacs-ert-runner")
6914 (version (git-version "0.7.0" revision commit))
6915 (source
6916 (origin
6917 (method git-fetch)
6918 (uri (git-reference
6919 (url "https://github.com/rejeep/ert-runner.el.git")
6920 (commit commit)))
6921 (file-name (git-file-name name version))
6922 (sha256
6923 (base32
6924 "04nxmyzncacj2wmzd84vv9wkkr2dk9lcb10dvygqmg3p1gadnwzz"))))
6925 (build-system emacs-build-system)
6926 (inputs
6927 `(("emacs-ansi" ,emacs-ansi)
6928 ("emacs-commander" ,emacs-commander)
6929 ("emacs-dash" ,emacs-dash)
6930 ("emacs-f" ,emacs-f)
6931 ("emacs-s" ,emacs-s)
6932 ("emacs-shut-up" ,emacs-shut-up)))
6933 (arguments
6934 `(#:phases
6935 (modify-phases %standard-phases
6936 (add-after 'install 'install-executable
6937 (lambda* (#:key inputs outputs #:allow-other-keys)
6938 (let ((out (assoc-ref outputs "out")))
6939 (substitute* "bin/ert-runner"
6940 (("ERT_RUNNER=\"\\$\\(dirname \\$\\(dirname \\$0\\)\\)")
6941 (string-append "ERT_RUNNER=\"" out
6942 "/share/emacs/site-lisp/guix.d/ert-runner-"
6943 ,version)))
6944 (install-file "bin/ert-runner" (string-append out "/bin"))
6945 (wrap-program (string-append out "/bin/ert-runner")
6946 (list "EMACSLOADPATH" ":" 'prefix
6947 (string-split (getenv "EMACSLOADPATH") #\:)))
6948 #t))))
6949 #:include (cons* "^reporters/.*\\.el$" %default-include)))
6950 (home-page "https://github.com/rejeep/ert-runner.el")
6951 (synopsis "Opinionated Ert testing workflow")
6952 (description "@code{ert-runner} is a tool for Emacs projects tested
eeb883cb
RW
6953using ERT. It assumes a certain test structure setup and can therefore make
6954running tests easier.")
82328c01 6955 (license license:gpl3+))))
eeb883cb
RW
6956
6957(define-public ert-runner
6958 (deprecated-package "ert-runner" emacs-ert-runner))
6959
6960(define-public emacs-disable-mouse
6961 (package
6962 (name "emacs-disable-mouse")
6963 (version "0.2")
6964 (source
6965 (origin
6966 (method url-fetch)
6967 (uri (string-append
6968 "https://github.com/purcell/disable-mouse/archive/"
6969 version ".tar.gz"))
6970 (file-name (string-append name "-" version ".tar.gz"))
6971 (sha256
6972 (base32
6973 "0haqpq23r1wx04lsqrrg3p5visg9hx5i36dg55ab003wfsrlrzbc"))))
6974 (build-system emacs-build-system)
6975 (home-page "https://github.com/purcell/disable-mouse")
6976 (synopsis "Disable mouse commands globally")
6977 (description
6978 "Provides @code{disable-mouse-mode} and @code{global-disable-mouse-mode},
6979pair of minor modes which suppress all mouse events by intercepting them and
6980running a customisable handler command (@code{ignore} by default). ")
6981 (license license:gpl3+)))
6982
6983(define-public emacs-json-reformat
6984 (package
6985 (name "emacs-json-reformat")
6986 (version "0.0.6")
6987 (source
6988 (origin
6989 (method url-fetch)
6990 (uri (string-append "https://github.com/gongo/json-reformat/archive/"
6991 version ".tar.gz"))
6992 (file-name (string-append name "-" version ".tar.gz"))
6993 (sha256
6994 (base32
6995 "11fbq4scrgr7m0iwnzcrn2g7xvqwm2gf82sa7zy1l0nil7265p28"))
6996 (patches (search-patches "emacs-json-reformat-fix-tests.patch"))))
6997 (build-system emacs-build-system)
6998 (propagated-inputs
6999 `(("emacs-undercover" ,emacs-undercover)))
7000 (native-inputs
7001 `(("emacs-dash" ,emacs-dash)
7002 ("emacs-shut-up" ,emacs-shut-up)
7003 ("ert-runner" ,emacs-ert-runner)))
7004 (arguments
7005 `(#:tests? #t
7006 #:test-command '("ert-runner")))
7007 (home-page "https://github.com/gongo/json-reformat")
7008 (synopsis "Reformatting tool for JSON")
7009 (description "@code{json-reformat} provides a reformatting tool for
7010@url{http://json.org/, JSON}.")
7011 (license license:gpl3+)))
7012
7013(define-public emacs-json-snatcher
7014 (package
7015 (name "emacs-json-snatcher")
7016 (version "1.0.0")
7017 (source
7018 (origin
7019 (method url-fetch)
7020 (uri (string-append "https://github.com/Sterlingg/json-snatcher/archive/"
7021 version ".tar.gz"))
7022 (file-name (string-append name "-" version ".tar.gz"))
7023 (sha256
7024 (base32
7025 "1nfiwsifpdiz0lbrqa77nl0crnfrv5h85ans9b0g5rggnmyshcfb"))))
7026 (build-system emacs-build-system)
7027 (home-page "https://github.com/sterlingg/json-snatcher")
7028 (synopsis "Grabs the path to JSON values in a JSON file")
7029 (description "@code{emacs-json-snatcher} grabs the path to JSON values in
7030a @url{http://json.org/, JSON} file.")
7031 (license license:gpl3+)))
7032
7033(define-public emacs-json-mode
7034 (package
7035 (name "emacs-json-mode")
7036 (version "1.7.0")
7037 (source
7038 (origin
7039 (method url-fetch)
7040 (uri (string-append "https://github.com/joshwnj/json-mode/archive/"
7041 "v" version ".tar.gz"))
7042 (file-name (string-append name "-" version ".tar.gz"))
7043 (sha256
7044 (base32
7045 "06h45p4cn767pk9sqi2zb1c65wy5gyyijqxzpglp80zwxhvajdz5"))))
7046 (build-system emacs-build-system)
7047 (propagated-inputs
7048 `(("emacs-json-reformat" ,emacs-json-reformat)
7049 ("emacs-json-snatcher" ,emacs-json-snatcher)))
7050 (home-page "https://github.com/joshwnj/json-mode")
7051 (synopsis "Major mode for editing JSON files")
7052 (description "@code{json-mode} extends the builtin js-mode syntax
7053highlighting.")
7054 (license license:gpl3+)))
7055
7056(define-public emacs-restclient
7057 (let ((commit "07a3888bb36d0e29608142ebe743b4362b800f40")
7058 (revision "1")) ;Guix package revision,
7059 ;upstream doesn't have official releases
7060 (package
7061 (name "emacs-restclient")
7062 (version (string-append revision "."
7063 (string-take commit 7)))
7064 (source (origin
7065 (method git-fetch)
7066 (uri (git-reference
7067 (url "https://github.com/pashky/restclient.el.git")
7068 (commit commit)))
7069 (sha256
7070 (base32
7071 "00lmjhb5im1kgrp54yipf1h9pshxzgjlg71yf2rq5n973gvb0w0q"))
7072 (file-name (git-file-name name version))))
7073 (build-system emacs-build-system)
7074 (propagated-inputs
7075 `(("emacs-helm" ,emacs-helm)))
7076 (home-page "https://github.com/pashky/restclient.el")
7077 (synopsis "Explore and test HTTP REST webservices")
7078 (description
7079 "This tool allows for testing and exploration of HTTP REST Web services
7080from within Emacs. Restclient runs queries from a plan-text query sheet,
7081displays results pretty-printed in XML or JSON with @code{restclient-mode}")
7082 (license license:public-domain))))
7083
7084(define-public emacs-eimp
7085 (let ((version "1.4.0")
7086 (commit "2e7536fe6d8f7faf1bad7a8ae37faba0162c3b4f")
7087 (revision "1"))
7088 (package
7089 (name "emacs-eimp")
7090 (version (git-version version revision commit))
7091 (source
7092 (origin
7093 (method git-fetch)
7094 (uri (git-reference
7095 (url "https://github.com/nicferrier/eimp.git")
7096 (commit commit)))
7097 (file-name (git-file-name name version))
7098 (sha256
7099 (base32
7100 "154d57yafxbcf39r89n5j43c86rp2fki3lw3gwy7ww2g6qkclcra"))))
7101 (build-system emacs-build-system)
7102 (arguments
7103 `(#:phases
7104 (modify-phases %standard-phases
7105 (add-after 'unpack 'configure
7106 (lambda* (#:key inputs #:allow-other-keys)
7107 (let ((imagemagick (assoc-ref inputs "imagemagick")))
7108 ;; eimp.el is read-only in git.
7109 (chmod "eimp.el" #o644)
7110 (emacs-substitute-variables "eimp.el"
7111 ("eimp-mogrify-program"
7112 (string-append imagemagick "/bin/mogrify"))))
7113 #t)))))
7114 (inputs
7115 `(("imagemagick" ,imagemagick)))
7116 (home-page "https://github.com/nicferrier/eimp")
7117 (synopsis "Interactive image manipulation utility for Emacs")
7118 (description "@code{emacs-eimp} allows interactive image manipulation
7119from within Emacs. It uses the code@{mogrify} utility from ImageMagick to do
7120the actual transformations.")
7121 (license license:gpl2+))))
7122
7123(define-public emacs-dired-hacks
7124 (let ((commit "eda68006ce73bbf6b9b995bfd70d08bec8cade36")
7125 (revision "1"))
7126 (package
7127 (name "emacs-dired-hacks")
7128 (version (string-append "0.0.1-" revision "."
7129 (string-take commit 7)))
7130 (source (origin
7131 (method git-fetch)
7132 (uri (git-reference
7133 (url "https://github.com/Fuco1/dired-hacks.git")
7134 (commit commit)))
7135 (file-name (string-append name "-" version "-checkout"))
7136 (sha256
7137 (base32
7138 "1w7ssl9zssn5rcha6apf4h8drkd02k4xgvs203bdbqyqp9wz9brx"))))
7139 (build-system emacs-build-system)
7140 (propagated-inputs
7141 `(("emacs-dash" ,emacs-dash)
7142 ("emacs-eimp" ,emacs-eimp)
7143 ("emacs-f" ,emacs-f)
7144 ("emacs-s" ,emacs-s)))
7145 (home-page "https://github.com/Fuco1/dired-hacks")
7146 (synopsis
7147 "Collection of useful dired additions")
7148 (description
7149 "Collection of Emacs dired mode additions:
7150@itemize
7151@item dired-avfs
7152@item dired-columns
7153@item dired-filter
7154@item dired-hacks-utils
7155@item dired-images
7156@item dired-list
7157@item dired-narrow
7158@item dired-open
7159@item dired-rainbow
7160@item dired-ranger
7161@item dired-subtree
7162@item dired-tagsistant
7163@end itemize\n")
7164 (license license:gpl3+))))
7165
7166(define-public emacs-dired-sidebar
7167 (let ((commit "06bd0d40bab812c61a668129daf29ba359424454")
7168 (revision "0"))
7169 (package
7170 (name "emacs-dired-sidebar")
7171 (home-page "https://github.com/jojojames/dired-sidebar")
7172 (version (git-version "0.0.1" revision commit))
7173 (source (origin
7174 (method git-fetch)
7175 (uri (git-reference (url home-page) (commit commit)))
7176 (sha256
7177 (base32
7178 "0lvwvq6sl80sha9fq5m4568sg534dhmifyjqw75bqddcbf3by84x"))))
7179 (build-system emacs-build-system)
7180 (propagated-inputs
7181 `(("emacs-dired-subtree" ,emacs-dired-hacks)))
7182 (synopsis "Sidebar for Emacs using Dired")
7183 (description
7184 "This package provides a sidebar for Emacs similar to @code{NeoTree}
7185or @code{treemacs}, but leveraging @code{Dired} to do the job of display.")
7186 (license license:gpl3+))))
7187
7188(define-public emacs-which-key
7189 (package
7190 (name "emacs-which-key")
7191 (version "3.3.0")
7192 (source
7193 (origin
7194 (method url-fetch)
7195 (uri (string-append
7196 "https://github.com/justbur/emacs-which-key/archive/v"
7197 version ".tar.gz"))
7198 (sha256
7199 (base32
7200 "1lsj314111cp2hjjwnv3f46ws1za6bm39rgy3l19044xf6a68j5w"))
7201 (file-name (string-append name "-" version ".tar.gz"))))
7202 (build-system emacs-build-system)
7203 (arguments
7204 `(#:tests? #t
7205 #:test-command '("emacs" "--batch"
7206 "-l" "which-key-tests.el"
7207 "-f" "ert-run-tests-batch-and-exit")))
7208 (home-page "https://github.com/justbur/emacs-which-key")
7209 (synopsis "Display available key bindings in popup")
7210 (description
7211 "@code{emacs-which-key} is a minor mode for Emacs that displays the key
7212bindings following your currently entered incomplete command (a prefix) in a
7213popup. For example, after enabling the minor mode if you enter C-x and wait
7214for the default of 1 second, the minibuffer will expand with all of the
7215available key bindings that follow C-x (or as many as space allows given your
7216settings).")
7217 (license license:gpl3+)))
7218
7219(define-public emacs-ws-butler
7220 (package
7221 (name "emacs-ws-butler")
7222 (version "0.6")
7223 (source (origin
7224 (method git-fetch)
7225 (uri (git-reference
7226 (url "https://github.com/lewang/ws-butler.git")
7227 (commit "323b651dd70ee40a25accc940b8f80c3a3185205")))
7228 (file-name (string-append name "-" version "-checkout"))
7229 (sha256
7230 (base32
7231 "1a4b0lsmwq84qfx51c5xy4fryhb1ysld4fhgw2vr37izf53379sb"))))
7232 (build-system emacs-build-system)
7233 (native-inputs
7234 `(("ert-runner" ,emacs-ert-runner)))
7235 (arguments
7236 `(#:tests? #t
7237 #:test-command '("ert-runner" "tests")))
7238 (home-page "https://github.com/lewang/ws-butler")
7239 (synopsis "Trim spaces from end of lines")
7240 (description
7241 "This Emacs package automatically and unobtrusively trims whitespace
7242characters from end of lines.")
7243 (license license:gpl3+)))
7244
7245(define-public emacs-org-edit-latex
7246 (package
7247 (name "emacs-org-edit-latex")
7248 (version "0.8.0")
7249 (source
7250 (origin
7251 (method url-fetch)
7252 (uri (string-append
7253 "https://github.com/et2010/org-edit-latex/archive/v"
7254 version ".tar.gz"))
7255 (file-name (string-append name "-" version ".tar.gz"))
7256 (sha256
7257 (base32
7258 "1y4h6wrs8286h9pbsv4d8fr67a885vz8b2k80qgv5qddipi2i78p"))))
7259 (build-system emacs-build-system)
7260 (propagated-inputs
7261 `(("emacs-auctex" ,emacs-auctex)
7262 ;; The version of org in Emacs 25.2 is not sufficient, because the
7263 ;; `org-latex-make-preamble' function is required.
7264 ("emacs-org" ,emacs-org)))
7265 (home-page "https://github.com/et2010/org-edit-latex")
7266 (synopsis "Edit a latex fragment just like editing a src block")
7267 (description "@code{emacs-org-edit-latex} is an extension for org-mode.
7268It lets you edit a latex fragment in a dedicated buffer just like editing a
7269src block.")
7270 (license license:gpl3+)))
7271
7272(define-public emacs-emamux
7273 (package
7274 (name "emacs-emamux")
7275 (version "0.14")
7276 (source (origin
7277 (method url-fetch)
7278 (uri (string-append
7279 "https://github.com/syohex/emacs-emamux/archive/"
7280 version ".tar.gz"))
7281 (file-name (string-append name "-" version ".tar.gz"))
7282 (sha256
7283 (base32
7284 "0wlqg4icy037bj70b0qmhvwvmiwhagpnx6pnxhq6gzy1hvwlilkx"))))
7285 (build-system emacs-build-system)
7286 (home-page "https://github.com/syohex/emacs-emamux")
7287 (synopsis "Manipulate Tmux from Emacs")
7288 (description
7289 "@code{emacs-emamux} lets Emacs interact with the @code{tmux} terminal
7290multiplexer.")
7291 (license license:gpl3+)))
7292
7293(define-public emacs-rpm-spec-mode
7294 (package
7295 (name "emacs-rpm-spec-mode")
7296 (version "0.16")
7297 (source
7298 (origin
7299 (method url-fetch)
7300 ;; URI has the Fedora release number instead of the version
7301 ;; number. This will have to updated manually every new release.
7302 (uri (string-append
7303 "https://src.fedoraproject.org/cgit/rpms"
7304 "/emacs-rpm-spec-mode.git/snapshot"
7305 "/emacs-rpm-spec-mode-f26.tar.gz"))
7306 (sha256
7307 (base32
7308 "17dz80lhjrc89fj17pysl8slahzrqdkxgcjdk55zls6jizkr6kz3"))))
7309 (build-system emacs-build-system)
7310 (home-page "http://pkgs.fedoraproject.org/cgit/rpms/emacs-rpm-spec-mode.git")
7311 (synopsis "Emacs major mode for editing RPM spec files")
7312 (description "@code{emacs-rpm-spec-mode} provides an Emacs major mode for
7313editing RPM spec files.")
7314 (license license:gpl2+)))
7315
7316(define-public emacs-git-messenger
7317 (package
7318 (name "emacs-git-messenger")
7319 (version "0.18")
7320 (source
7321 (origin
7322 (method url-fetch)
7323 (uri (string-append
7324 "https://github.com/syohex/emacs-git-messenger/archive/"
7325 version ".tar.gz"))
7326 (file-name (string-append name "-" version ".tar.gz"))
7327 (sha256
7328 (base32
7329 "17mqki6g0wx46fn7dcbcc2pjxik7vvrcb1j9jzxim8b9psbsbnp9"))))
7330 (build-system emacs-build-system)
7331 (propagated-inputs
7332 `(("emacs-popup" ,emacs-popup)))
7333 (arguments
7334 `(#:tests? #t
7335 #:test-command '("emacs" "--batch" "-l" "test/test.el"
7336 "-f" "ert-run-tests-batch-and-exit")))
7337 (home-page "https://github.com/syohex/emacs-git-messenger")
7338 (synopsis "Popup commit message at current line")
7339 (description "@code{emacs-git-messenger} provides
7340@code{git-messenger:popup-message}, a function that when called, will popup
7341the last git commit message for the current line. This uses git-blame
7342internally.")
7343 (license license:gpl3+)))
7344
7345(define-public emacs-gitpatch
7346 (package
7347 (name "emacs-gitpatch")
7348 (version "0.5.0")
7349 (source
7350 (origin
7351 (method url-fetch)
7352 (uri (string-append "https://github.com/tumashu/gitpatch/archive/"
7353 "v" version ".tar.gz"))
7354 (file-name (string-append name "-" version ".tar.gz"))
7355 (sha256
7356 (base32
7357 "1yj6pmic541lcnscjin300k380qp9xdfprs55xg1q57jrkq6f6k7"))))
7358 (build-system emacs-build-system)
7359 (home-page "https://github.com/tumashu/gitpatch")
7360 (synopsis "Mail git patch from Emacs")
7361 (description "@code{emacs-gitpatch} lets users easily send git patches,
7362created by @code{git format-patch}, from @code{magit}, @code{dired} and
7363@code{ibuffer} buffers.")
7364 (license license:gpl3+)))
7365
7366(define-public emacs-erc-hl-nicks
7367 (package
7368 (name "emacs-erc-hl-nicks")
7369 (version "1.3.3")
7370 (source
7371 (origin
7372 (method url-fetch)
7373 (uri (string-append "https://github.com/leathekd/erc-hl-nicks"
7374 "/archive/" version ".tar.gz"))
7375 (file-name (string-append name "-" version ".tar.gz"))
7376 (sha256
7377 (base32
7378 "1a1r2kc3688g8c2ybkpwh88kgmnqhg3h3032g2yn4zr9m0n3vpkr"))))
7379 (build-system emacs-build-system)
7380 (synopsis "Nickname highlighting for Emacs ERC")
7381 (description "@code{erc-hl-nicks} highlights nicknames in ERC, an IRC
7382client for Emacs. The main features are:
7383@itemize
7384@item Auto-colorizes nicknames without having to specify colors
7385@item Ignores certain characters that IRC clients add to nicknames to avoid
7386duplicates (nickname, nickname’, nickname\", etc.)
7387@item Attempts to produce colors with a sufficient amount of contrast between
7388the nick color and the background color
7389@end itemize\n")
7390 (home-page "https://github.com/leathekd/erc-hl-nicks")
7391 (license license:gpl3+)))
7392
7393(define-public emacs-engine-mode
7394 (package
7395 (name "emacs-engine-mode")
7396 (version "2.0.0")
7397 (source
7398 (origin
7399 (method url-fetch)
7400 (uri (string-append "https://github.com/hrs/engine-mode/archive/"
7401 "v" version ".tar.gz"))
7402 (file-name (string-append name "-" version ".tar.gz"))
7403 (sha256
7404 (base32
7405 "1vm4p7pcp1vnwwxvps1bhm7i7hkabqqxl898knxf2hqvxys76684"))))
7406 (build-system emacs-build-system)
7407 (synopsis "Minor mode for defining and querying search engines")
7408 (description "@code{engine-mode} is a global minor mode for Emacs. It
7409enables you to easily define search engines, bind them to keybindings, and
7410query them from the comfort of your editor.")
7411 (home-page "https://github.com/hrs/engine-mode")
7412 (license license:gpl3+)))
7413
7414(define-public emacs-prop-menu
7415 (package
7416 (name "emacs-prop-menu")
7417 (version "0.1.2")
7418 (source
7419 (origin
7420 (method url-fetch)
7421 (uri (string-append
7422 "http://stable.melpa.org/packages/prop-menu-"
7423 version ".el"))
7424 (sha256
7425 (base32
7426 "01bk4sjafzz7gqrkv9jg0pa85qr34vbk3q8ga2b0m61bndywzgpr"))))
7427 (build-system emacs-build-system)
7428 (home-page
7429 "https://github.com/david-christiansen/prop-menu-el")
7430 (synopsis
7431 "Create and display a context menu based on text and overlay properties")
7432 (description
7433 "This is a library for computing context menus based on text
7434properties and overlays. The intended use is to have tools that
7435annotate source code and others that use these annotations, without
7436requiring a direct coupling between them, but maintaining
7437discoverability.
7438
7439Major modes that wish to use this library should first define an
7440appropriate value for @code{prop-menu-item-functions}. Then, they should
7441bind @code{prop-menu-by-completing-read} to an appropriate
7442key. Optionally, a mouse pop-up can be added by binding
7443@code{prop-menu-show-menu} to a mouse event.")
7444 (license license:gpl3+)))
7445
7446(define-public emacs-idris-mode
7447 (package
7448 (name "emacs-idris-mode")
7449 (version "0.9.19")
7450 (source
7451 (origin
7452 (method url-fetch)
7453 (uri (string-append
7454 "http://stable.melpa.org/packages/idris-mode-"
7455 version ".tar"))
7456 (sha256
7457 (base32
7458 "02r1qqsxi6qk7q4cj6a6pygbj856dcw9vcmhfh0ib92j41v77q6y"))))
7459 (build-system emacs-build-system)
7460 (propagated-inputs
7461 `(("emacs-prop-menu" ,emacs-prop-menu)))
7462 (home-page
7463 "https://github.com/idris-hackers/idris-mode")
7464 (synopsis "Major mode for editing Idris code")
7465 (description
7466 "This is an Emacs mode for editing Idris code. It requires the latest
7467version of Idris, and some features may rely on the latest Git version of
7468Idris.")
7469 (license license:gpl3+)))
7470
7471(define-public emacs-browse-at-remote
7472 (package
7473 (name "emacs-browse-at-remote")
7474 (version "0.10.0")
7475 (source
7476 (origin
7477 (method url-fetch)
7478 (uri (string-append
7479 "https://github.com/rmuslimov/browse-at-remote/archive/"
7480 version ".tar.gz"))
7481 (file-name (string-append name "-" version ".tar.gz"))
7482 (sha256
7483 (base32
7484 "0ymslsp6i1naw25zckv25bf4aaq6qwkbkn95qyzlwg869l802686"))))
7485 (build-system emacs-build-system)
7486 (propagated-inputs
7487 `(("emacs-f" ,emacs-f)
7488 ("emacs-s" ,emacs-s)))
7489 (native-inputs
7490 `(("ert-runner" ,emacs-ert-runner)))
7491 (arguments
7492 `(#:tests? #t
7493 #:test-command '("ert-runner")))
7494 (home-page "https://github.com/rmuslimov/browse-at-remote")
7495 (synopsis "Open github/gitlab/bitbucket/stash page from Emacs")
7496 (description
7497 "This Emacs package allows you to open a target page on
7498github/gitlab (or bitbucket) by calling @code{browse-at-remote} command.
7499It supports dired buffers and opens them in tree mode at destination.")
7500 (license license:gpl3+)))
7501
7502(define-public emacs-tiny
7503 (package
7504 (name "emacs-tiny")
7505 (version "0.2.1")
7506 (source
7507 (origin
7508 (method url-fetch)
7509 (uri (string-append "http://elpa.gnu.org/packages/tiny-" version ".tar"))
7510 (sha256
7511 (base32
7512 "1cr73a8gba549ja55x0c2s554f3zywf69zbnd7v82jz5q1k9wd2v"))))
7513 (build-system emacs-build-system)
7514 (home-page "https://github.com/abo-abo/tiny")
7515 (synopsis "Quickly generate linear ranges in Emacs")
7516 (description
7517 "The main command of the @code{tiny} extension for Emacs is @code{tiny-expand}.
7518It is meant to quickly generate linear ranges, e.g. 5, 6, 7, 8. Some elisp
7519proficiency is an advantage, since you can transform your numeric range with
7520an elisp expression.")
7521 (license license:gpl3+)))
7522
7523(define-public emacs-emojify
7524 (package
7525 (name "emacs-emojify")
7526 (version "0.4")
7527 (source
7528 (origin
7529 (method url-fetch)
7530 (uri (string-append "https://github.com/iqbalansari/emacs-emojify/"
7531 "releases/download/v" version "/emojify-"
7532 version ".tar"))
7533 (sha256
7534 (base32
7535 "0k84v2d2bkiwcky9fi1yyprgkj46g7wh6pyl9gzmcd7sqv051d5n"))))
7536 (build-system emacs-build-system)
7537 (arguments
7538 `(#:phases
7539 (modify-phases %standard-phases
7540 (add-after 'install 'install-data
7541 (lambda* (#:key outputs #:allow-other-keys)
7542 (copy-recursively "data"
7543 (string-append (assoc-ref outputs "out")
7544 "/share/emacs/site-lisp/guix.d/"
7545 "emojify-" ,version "/data"))
7546 #t)))))
7547 (propagated-inputs
7548 `(("emacs-ht" ,emacs-ht)))
7549 (home-page "https://github.com/iqbalansari/emacs-emojify")
7550 (synopsis "Display emojis in Emacs")
7551 (description "This package displays emojis in Emacs similar to how Github,
7552Slack, and other websites do. It can display plain ASCII like @code{:)} as
7553well as Github-style emojis like @code{:smile:}. It provides a minor mode
7554@code{emojify-mode} to enable the display of emojis in a buffer.")
7555 (license license:gpl3+)))
7556
7557(define-public emacs-websocket
7558 (package
7559 (name "emacs-websocket")
7560 (version "1.10")
7561 (source
7562 (origin
7563 (method git-fetch)
7564 (uri (git-reference
7565 (url "https://github.com/ahyatt/emacs-websocket.git")
7566 (commit version)))
7567 (file-name (string-append name "-" version "-checkout"))
7568 (sha256
7569 (base32
7570 "1dgrf7na6r6mmkknphzshlbd5fnzisg0qn0j7vfpa38wgsymaq52"))))
7571 (build-system emacs-build-system)
7572 (home-page "http://elpa.gnu.org/packages/websocket.html")
7573 (synopsis "Emacs WebSocket client and server")
7574 (description "This is an Elisp library for WebSocket clients to talk to
7575WebSocket servers, and for WebSocket servers to accept connections from
7576WebSocket clients. This library is designed to be used by other library
7577writers, to write applications that use WebSockets, and is not useful by
7578itself.")
7579 (license license:gpl3+)))
7580
7581(define-public emacs-oauth2
7582 (package
7583 (name "emacs-oauth2")
7584 (version "0.11")
7585 (source
7586 (origin
7587 (method url-fetch)
7588 (uri (string-append "https://elpa.gnu.org/packages/oauth2-"
7589 version ".el"))
7590 (sha256
7591 (base32
7592 "0ydkc9jazsnbbvfhd47mql52y7k06n3z7r0naqxkwb99j9blqsmp"))))
7593 (build-system emacs-build-system)
7594 (home-page "http://elpa.gnu.org/packages/oauth2.html")
7595 (synopsis "OAuth 2.0 authorization protocol implementation")
7596 (description
7597 "This package provides an Elisp implementation of the OAuth 2.0 draft.
7598The main entry point is @code{oauth2-auth-and-store} which will return a token
7599structure. This token structure can be then used with
7600@code{oauth2-url-retrieve-synchronously} or @code{oauth2-url-retrieve} to
7601retrieve any data that need OAuth authentication to be accessed. If the token
7602needs to be refreshed, the code handles it automatically and stores the new
7603value of the access token.")
7604 (license license:gpl3+)))
7605
7606(define-public emacs-circe
7607 (package
7608 (name "emacs-circe")
7609 (version "2.10")
7610 (source
7611 (origin
7612 (method git-fetch)
7613 (uri (git-reference
7614 (url "https://github.com/jorgenschaefer/circe.git")
7615 (commit (string-append "v" version))))
7616 (file-name (git-file-name name version))
7617 (sha256
7618 (base32
7619 "10gi14kwxd81blddpvqh95lgmpbfgp0m955naxix3bs3r6a75n4s"))))
7620 (build-system emacs-build-system)
7621 (arguments
7622 `(#:tests? #t
7623 #:test-command '("buttercup" "-L" ".")
7624 #:phases
7625 (modify-phases %standard-phases
7626 ;; The HOME environment variable should be set to an existing
7627 ;; directory for the tests to succeed.
7628 (add-before 'check 'set-home
7629 (lambda _
7630 (setenv "HOME" "/tmp")
7631 #t)))))
7632 (native-inputs
7633 `(("emacs-buttercup" ,emacs-buttercup)))
7634 ;; In order to securely connect to an IRC server using TLS, Circe requires
7635 ;; the GnuTLS binary.
7636 (propagated-inputs
7637 `(("gnutls" ,gnutls)))
7638 (home-page "https://github.com/jorgenschaefer/circe")
7639 (synopsis "Client for IRC in Emacs")
7640 (description "Circe is a Client for IRC in Emacs. It integrates well with
7641the rest of the editor, using standard Emacs key bindings and indicating
7642activity in channels in the status bar so it stays out of your way unless you
7643want to use it.")
7644 (license license:gpl3+)))
7645
7646(define-public emacs-tracking
7647 (package
7648 (inherit emacs-circe)
7649 (name "emacs-tracking")
7650 (arguments
7651 ;; "tracking.el" is a library extracted from Circe package. It requires
7652 ;; "shorten.el".
7653 `(#:include '("^shorten.el$" "^tracking.el$")
7654 ,@(package-arguments emacs-circe)))
7655 (home-page "https://github.com/jorgenschaefer/circe/wiki/Tracking")
7656 (synopsis "Buffer tracking library")
7657 (description "@code{tracking.el} provides a way for different modes to
7658notify the user that a buffer needs attention. The user then can cycle
7659through them using @key{C-c C-SPC}.")
7660 (license license:gpl3+)))
7661
7662(define-public emacs-slack
7663 (let ((commit "99a57501629a0329a9ca090c1ea1296462eda02d")
7664 (revision "5"))
7665 (package
7666 (name "emacs-slack")
7667 (version (git-version "0.0.2" revision commit))
7668 (source (origin
7669 (method git-fetch)
7670 (uri (git-reference
7671 (url "https://github.com/yuya373/emacs-slack.git")
7672 (commit commit)))
7673 (file-name (git-file-name name commit))
7674 (sha256
7675 (base32
7676 "0jw1diypfw8pmzkq0napgxmfc0gqka7zcccgnw359604lr30k2z2"))))
7677 (build-system emacs-build-system)
7678 (propagated-inputs
7679 `(("emacs-alert" ,emacs-alert)
7680 ("emacs-emojify" ,emacs-emojify)
7681 ("emacs-helm" ,emacs-helm)
7682 ("emacs-request" ,emacs-request)
7683 ("emacs-websocket" ,emacs-websocket)
7684 ("emacs-oauth2" ,emacs-oauth2)
7685 ("emacs-circe" ,emacs-circe)))
7686 (home-page "https://github.com/yuya373/emacs-slack")
7687 (synopsis "Slack client for Emacs")
7688 (description "This package provides an Emacs client for the Slack
7689messaging service.")
7690 (license license:gpl3+))))
7691
7692(define-public emacs-bash-completion
7693 (package
7694 (name "emacs-bash-completion")
7695 (version "2.1.0")
7696 (source
7697 (origin
7698 (method url-fetch)
7699 (uri (string-append
7700 "https://github.com/szermatt/emacs-bash-completion/archive/v"
7701 version ".tar.gz"))
7702 (file-name (string-append name "-" version ".tar.gz"))
7703 (sha256
7704 (base32
7705 "1z0qck3v3ra6ivacn8n04w1v33a4xn01xx860761q31qzsv3sksq"))))
7706 (inputs `(("bash" ,bash)))
7707 (build-system emacs-build-system)
7708 (arguments
7709 `(#:phases
7710 (modify-phases %standard-phases
7711 (add-before 'install 'configure
7712 (lambda* (#:key inputs #:allow-other-keys)
7713 (let ((bash (assoc-ref inputs "bash")))
7714 (emacs-substitute-variables "bash-completion.el"
7715 ("bash-completion-prog" (string-append bash "/bin/bash"))))
7716 #t)))))
7717 (home-page "https://github.com/szermatt/emacs-bash-completion")
7718 (synopsis "Bash completion for the shell buffer")
7719 (description
7720 "@code{bash-completion} defines dynamic completion hooks for shell-mode
7721and shell-command prompts that are based on Bash completion.")
7722 (license license:gpl2+)))
7723
7724(define-public emacs-easy-kill
7725 (package
7726 (name "emacs-easy-kill")
7727 (version "0.9.3")
7728 (source (origin
7729 (method url-fetch)
7730 (uri (string-append "https://elpa.gnu.org/packages/easy-kill-"
7731 version ".tar"))
7732 (sha256
7733 (base32
7734 "17nw0mglmg877axwg1d0gs03yc0p04lzmd3pl0nsnqbh3303fnqb"))))
7735 (build-system emacs-build-system)
7736 (home-page "https://github.com/leoliu/easy-kill")
7737 (synopsis "Kill and mark things easily in Emacs")
7738 (description
7739 "This package provides commands @code{easy-kill} and @code{easy-mark} to
7740let users kill or mark things easily.")
7741 (license license:gpl3+)))
7742
7743(define-public emacs-csv-mode
7744 (package
7745 (name "emacs-csv-mode")
7746 (version "1.7")
7747 (source
7748 (origin
7749 (method url-fetch)
7750 (uri (string-append "http://elpa.gnu.org/packages/csv-mode-"
7751 version ".el"))
7752 (sha256
7753 (base32
7754 "0r4bip0w3h55i8h6sxh06czf294mrhavybz0zypzrjw91m1bi7z6"))))
7755 (build-system emacs-build-system)
7756 (home-page
7757 "http://elpa.gnu.org/packages/csv-mode.html")
7758 (synopsis
7759 "Major mode for editing comma/char separated values")
7760 (description
7761 "This Emacs package implements CSV mode, a major mode for editing records
7762in a generalized CSV (character-separated values) format.")
7763 (license license:gpl3+)))
7764
7765(define-public emacs-transmission
7766 (package
7767 (name "emacs-transmission")
7768 (version "0.12.1")
7769 (source (origin
7770 (method url-fetch)
7771 (uri (string-append
7772 "https://github.com/holomorph/transmission/archive/"
7773 version ".tar.gz"))
7774 (file-name (string-append name "-" version ".tar.gz"))
7775 (sha256
7776 (base32
7777 "1rrlgn96gi1ljfwbwvlyyxbq75xzamlbdhq1bpyadxxmxcvlmk3n"))))
7778 (build-system emacs-build-system)
7779 (home-page "https://github.com/holomorph/transmission")
7780 (synopsis "Emacs interface to a Transmission session")
7781 (description "This package provides an Emacs interface to interact with a
7782running session of the Transmission Bittorrent client.
7783
7784Features:
7785
7786@itemize
7787@item List, add, start/stop, verify, remove torrents.
7788@item Set speed limits, ratio limits, bandwidth priorities, trackers.
7789@item Navigate to the corresponding file list, torrent info, peer info
7790contexts.
7791@item Toggle downloading and set priorities for individual files.
7792@end itemize\n")
7793 (license license:gpl3+)))
7794
7795(define-public emacs-polymode
7796 (package
7797 (name "emacs-polymode")
7798 (version "0.1.5")
7799 (source (origin
7800 (method git-fetch)
7801 (uri (git-reference
7802 (url "https://github.com/vspinu/polymode.git")
7803 (commit (string-append "v" version))))
7804 (file-name (git-file-name name version))
7805 (sha256
7806 (base32
7807 "0wwphs54jx48a3ca6x1qaz56j3j9bg4mv8g2akkffrzbdcb8sbc7"))))
7808 (build-system emacs-build-system)
7809 (arguments
7810 `(#:include (cons* "^modes/.*\\.el$" %default-include)
7811 #:phases
7812 (modify-phases %standard-phases
7813 (add-after 'set-emacs-load-path 'add-modes-subdir-to-load-path
7814 (lambda _
7815 (setenv "EMACSLOADPATH"
7816 (string-append (getenv "EMACSLOADPATH")
7817 ":" (getcwd) "/modes" ":")))))))
7818 (home-page "https://github.com/vspinu/polymode")
7819 (synopsis "Framework for multiple Emacs modes based on indirect buffers")
7820 (description "Polymode is an Emacs package that offers generic support
7821for multiple major modes inside a single Emacs buffer. It is lightweight,
7822object oriented and highly extensible. Creating a new polymode typically
7823takes only a few lines of code. Polymode also provides extensible facilities
7824for external literate programming tools for exporting, weaving and tangling.")
7825 (license license:gpl3+)))
7826
7827(define-public emacs-polymode-ansible
7828 (let ((commit "b26094d029e25dc797b94254f797e7807a57e4c8"))
7829 (package
7830 (name "emacs-polymode-ansible")
7831 ;; No upstream version release yet.
7832 (version (git-version "0.1" "1" commit))
7833 (source
7834 (origin
7835 (method git-fetch)
7836 (uri (git-reference
7837 (url "https://gitlab.com/mavit/poly-ansible")
7838 (commit commit)))
7839 (file-name (git-file-name name version))
7840 (sha256
7841 (base32
7842 "055shddqibib3hx2ykwdz910nrqws40cd407mq946l2bf6v87gj6"))))
7843 (build-system emacs-build-system)
7844 (propagated-inputs
7845 `(("emacs-ansible-doc" ,emacs-ansible-doc)
7846 ("emacs-jinja2-mode" ,emacs-jinja2-mode)
7847 ("emacs-polymode" ,emacs-polymode)
7848 ("emacs-yaml-mode" ,emacs-yaml-mode)))
7849 (properties '((upstream-name . "poly-ansible")))
7850 (home-page "https://gitlab.com/mavit/poly-ansible/")
7851 (synopsis "Polymode for Ansible - Jinja2 in YAML")
7852 (description
7853 "Edit YAML files for Ansible containing embedded Jinja2 templating.")
7854 (license license:gpl3+))))
7855
7856(define-public eless
7857 (package
7858 (name "eless")
7859 (version "0.3")
7860 (source (origin
7861 (method url-fetch)
7862 (uri (string-append
7863 "https://github.com/kaushalmodi/eless/archive/"
7864 "v" version ".tar.gz"))
7865 (file-name (string-append name "-" version ".tar.gz"))
7866 (sha256
7867 (base32
7868 "0gjnnhgw5xs1w3qfnkvwa2nv44gnxr8pkhx3c7qig45p8nh1461h"))))
7869 (build-system trivial-build-system)
7870 (inputs
7871 `(("bash" ,bash)))
7872 (native-inputs
7873 `(("tar" ,tar)
7874 ("gzip" ,gzip)))
7875 (arguments
7876 `(#:modules ((guix build utils))
7877 #:builder
7878 (begin
7879 (use-modules (guix build utils))
7880 (setenv "PATH" (string-append
7881 (assoc-ref %build-inputs "tar") "/bin" ":"
7882 (assoc-ref %build-inputs "gzip") "/bin"))
7883 (invoke "tar" "xvf" (assoc-ref %build-inputs "source"))
7884 (chdir (string-append "eless" "-" ,version))
7885 (substitute* "eless" (("/usr/bin/env bash")
7886 (string-append (assoc-ref %build-inputs "bash")
7887 "/bin/bash")))
7888 (install-file "eless" (string-append %output "/bin"))
7889 (install-file "doc/eless.info" (string-append %output "/share/info"))
7890 #t)))
7891 (home-page "https://github.com/kaushalmodi/eless")
7892 (synopsis "Use Emacs as a paginator")
7893 (description "@code{eless} provides a combination of Bash script
7894and a minimal Emacs view-mode.
7895
7896Feautures:
7897
7898@itemize
7899@item Independent of a user’s Emacs config.
7900@item Customizable via the @code{(locate-user-emacs-file \"elesscfg\")} config.
7901@item Not require an Emacs server to be already running.
7902@item Syntax highlighting.
7903@item Org-mode file rendering.
7904@item @code{man} page viewer.
7905@item Info viewer.
7906@item Dired, wdired, (batch edit symbolic links).
7907@item Colored diffs, git diff, git log, ls with auto ANSI detection.
7908@item Filter log files lines matching a regexp.
7909@item Auto-revert log files similar to @code{tail -f}.
7910@item Quickly change frame and font sizes.
7911@end itemize\n")
7912 (license license:expat)))
7913
7914(define-public emacs-evil-matchit
7915 (package
7916 (name "emacs-evil-matchit")
7917 (version "2.2.6")
7918 (source
7919 (origin
7920 (method url-fetch)
7921 (uri (string-append
7922 "https://github.com/redguardtoo/evil-matchit/archive/"
7923 version ".tar.gz"))
7924 (file-name (string-append name "-" version ".tar.gz"))
7925 (sha256
7926 (base32
7927 "1yp9sl6542317mn1060ri90zyf6bs6qylagndhqy02p368q31rhi"))))
7928 (build-system emacs-build-system)
7929 (propagated-inputs
7930 `(("emacs-evil" ,emacs-evil)))
7931 (home-page "https://github.com/redguardtoo/evil-matchit")
7932 (synopsis "Vim matchit ported into Emacs")
7933 (description
7934 "@code{evil-matchit} is a minor mode for jumping between matching tags in
7935evil mode using @kbd{%}. It is a port of @code{matchit} for Vim.")
7936 (license license:gpl3+)))
7937
7938(define-public emacs-evil-smartparens
7939 (package
7940 (name "emacs-evil-smartparens")
7941 (version "0.4.0")
7942 (source
7943 (origin
7944 (method url-fetch)
7945 (uri (string-append
7946 "https://github.com/expez/evil-smartparens/archive/"
7947 version ".tar.gz"))
7948 (file-name (string-append name "-" version ".tar.gz"))
7949 (sha256
7950 (base32
7951 "1bwzdd3054d407d5j4m3njsbvmc9r8zzp33m32pj3b3irxrl68q0"))))
7952 (build-system emacs-build-system)
7953 (propagated-inputs
7954 `(("emacs-evil" ,emacs-evil)
7955 ("emacs-smartparens" ,emacs-smartparens)))
7956 (home-page "https://github.com/expez/evil-smartparens")
7957 (synopsis "Emacs Evil integration for Smartparens")
7958 (description "@code{emacs-evil-smartparens} is an Emacs minor mode which
7959makes Evil play nice with Smartparens. Evil is an Emacs minor mode that
7960emulates Vim features and provides Vim-like key bindings.")
7961 (license license:gpl3+)))
7962
7963(define-public emacs-evil-quickscope
7964 (package
7965 (name "emacs-evil-quickscope")
7966 (version "0.1.4")
7967 (source
7968 (origin
7969 (method url-fetch)
7970 (uri (string-append "https://github.com/blorbx/evil-quickscope/archive/v"
7971 version ".tar.gz"))
7972 (file-name (string-append name "-" version ".tar.gz"))
7973 (sha256
7974 (base32
7975 "1r26a412mmar7vbf89zcifswiwpdg30mjzj32xdyqss57aqi83ma"))))
7976 (build-system emacs-build-system)
7977 (propagated-inputs
7978 `(("emacs-evil" ,emacs-evil)))
7979 (arguments
7980 `(#:tests? #t
7981 #:test-command '("emacs" "--batch"
7982 "-l" "evil-quickscope-tests.el"
7983 "-f" "ert-run-tests-batch-and-exit")))
7984 (home-page "https://github.com/blorbx/evil-quickscope")
7985 (synopsis "Target highlighting for emacs evil-mode f,F,t and T commands")
7986 (description "@code{emacs-evil-quickscope} highlights targets for Evil
7987mode’s f,F,t,T keys, allowing for quick navigation within a line. It is a
7988port of quick-scope for Vim. Evil is an Emacs minor mode that emulates Vim
7989features and provides Vim-like key bindings.")
7990 (license license:gpl3+)))
7991
7992(define-public emacs-bongo
7993 (package
7994 (name "emacs-bongo")
7995 (version "1.0")
7996 (source
7997 (origin
7998 (method url-fetch)
7999 (uri (string-append
8000 "https://github.com/dbrock/bongo/archive/"
8001 version ".tar.gz"))
8002 (file-name (string-append name "-" version ".tar.gz"))
8003 (sha256
8004 (base32
8005 "1pcsyyrvj7djjjwpaswd1i782hvqvlvs39cy9ns0k795si6xd64d"))))
8006 (build-system emacs-build-system)
8007 (home-page "https://github.com/dbrock/bongo")
8008 (synopsis "Media player for Emacs")
8009 (description
8010 "This package provides a flexible media player for Emacs. @code{Bongo}
8011supports multiple backends such as @code{vlc}, @code{mpg123},
8012@code{ogg123}, @code{speexdec}, @code{timidity}, @code{mikmod} and
8013@code{afplay}.")
8014 (license license:gpl2+)))
8015
8016(define-public emacs-groovy-modes
8017 (package
8018 (name "emacs-groovy-modes")
8019 (version "2.0")
8020 (source (origin
8021 (method url-fetch)
8022 (uri (string-append
8023 "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes"
8024 "/archive/" version ".tar.gz"))
8025 (file-name (string-append name "-" version ".tar.gz"))
8026 (sha256
8027 (base32
8028 "15j0hnkx9nppjzda5cqsxxz5f3bq9hc4xfyjcdypzqiypcvmpa39"))))
8029 (build-system emacs-build-system)
8030 (propagated-inputs
8031 `(("emacs-s" ,emacs-s)))
8032 (home-page "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
8033 (synopsis "Groovy related modes for Emacs")
8034 (description
8035 "This package provides @code{groovy-mode} for syntax highlighing in
8036Groovy source files, REPL integration with run-groovy and Grails project
8037navigation with the grails mode.")
8038 (license license:gpl3+)))
8039
8040(define-public groovy-emacs-modes
8041 (deprecated-package "groovy-emacs-modes" emacs-groovy-modes))
8042
8043(define-public emacs-org-tree-slide
8044 (let ((commit "dff8f1a4a64c8dd0a1fde0b0131e2fe186747134")
8045 (revision "0"))
8046 (package
8047 (name "emacs-org-tree-slide")
8048 (version (git-version "0.1" revision commit))
8049 (home-page "https://github.com/takaxp/org-tree-slide")
8050 (source (origin
8051 (method git-fetch)
8052 (uri (git-reference (url home-page) (commit commit)))
8053 (sha256
8054 (base32
8055 "153bg0x7ypla11pq51jmsgzfjklwwnrq56xgpbfhk1j16xwz9hyf"))
8056 (file-name (git-file-name name version))))
8057 (build-system emacs-build-system)
8058 (synopsis "Presentation tool for org-mode")
8059 (description
8060 "Org-tree-slide provides a slideshow mode to view org-mode files. Use
8061@code{org-tree-slide-mode} to enter the slideshow mode, and then @kbd{C->} and
8062@kbd{C-<} to jump to the next and previous slide.")
8063 (license license:gpl3+))))
8064
8065(define-public emacs-scratch-el
8066 (let ((commit "2cdf2b841ce7a0987093f65b0cc431947549f897")
8067 (revision "1"))
8068 (package
8069 (name "emacs-scratch-el")
8070 (version (git-version "1.2" revision commit))
8071 (source (origin
8072 (method git-fetch)
8073 (uri (git-reference
8074 (url "https://github.com/ieure/scratch-el.git")
8075 (commit commit)))
8076 (file-name (git-file-name name version))
8077 (sha256
8078 (base32
8079 "0wscsndynjmnliajqaz28r1ww81j8wh84zwaaswx51abhwgl0idf"))))
8080 (build-system emacs-build-system)
8081 (native-inputs
8082 `(("texinfo" ,texinfo)))
8083 (arguments
8084 '(#:phases
8085 (modify-phases %standard-phases
8086 (add-after 'install 'install-doc
8087 (lambda* (#:key outputs #:allow-other-keys)
8088 (unless (invoke "makeinfo" "scratch.texi")
8089 (error "makeinfo failed"))
8090 (install-file "scratch.info"
8091 (string-append (assoc-ref outputs "out")
8092 "/share/info"))
8093 #t)))))
8094 (home-page "https://github.com/ieure/scratch-el/")
8095 (synopsis "Create scratch buffers with the same mode as current buffer")
8096 (description "Scratch is an extension to Emacs that enables one to create
8097scratch buffers that are in the same mode as the current buffer. This is
8098notably useful when working on code in some language; you may grab code into a
8099scratch buffer, and, by virtue of this extension, do so using the Emacs
8100formatting rules for that language.")
8101 (license license:bsd-2))))
8102
8103(define-public emacs-kv
8104 (package
8105 (name "emacs-kv")
8106 (version "0.0.19")
8107 (source
8108 (origin
8109 (method git-fetch)
8110 (uri (git-reference
8111 (url "https://github.com/nicferrier/emacs-kv.git")
8112 (commit "721148475bce38a70e0b678ba8aa923652e8900e")))
8113 (file-name (string-append name "-" version "-checkout"))
8114 (sha256
8115 (base32
8116 "0r0lz2s6gvy04fwnafai668jsf4546h4k6zd6isx5wpk0n33pj5m"))))
8117 (build-system emacs-build-system)
8118 (arguments
8119 `(#:tests? #t
8120 #:test-command '("emacs" "--batch" "-l" "kv-tests.el"
8121 "-f" "ert-run-tests-batch-and-exit")))
8122 (home-page "https://github.com/nicferrier/emacs-kv")
8123 (synopsis "Key/Value data structures library for Emacs Lisp")
8124 (description "@code{emacs-kv} is a collection of tools for dealing with
8125key/value data structures such as plists, alists and hash-tables in Emacs
8126Lisp.")
8127 (license license:gpl3+)))
8128
8129(define-public emacs-esxml
8130 (package
8131 (name "emacs-esxml")
8132 (version "0.3.4")
8133 (source (origin
8134 (method git-fetch)
8135 (uri (git-reference
8136 (url "https://github.com/tali713/esxml.git")
8137 (commit version)))
8138 (file-name (git-file-name name version))
8139 (sha256
8140 (base32
8141 "00vv8a75wdklygdyr4km9mc2ismxak69c45jmcny41xl44rp9x8m"))))
8142 (build-system emacs-build-system)
8143 (arguments
8144 `(#:phases
8145 (modify-phases %standard-phases
8146 (add-after 'unpack 'fix-sources
8147 (lambda _
8148 ;; See: https://github.com/tali713/esxml/pull/28.
8149 (substitute* "css-lite.el"
8150 ((";;; main interface")
8151 (string-append ";;; main interface\n"
8152 "(require 'cl-lib)"))
8153 (("mapcan")
8154 "cl-mapcan")
8155 (("',\\(cl-mapcan #'process-css-rule rules\\)")
8156 "(cl-mapcan #'process-css-rule ',rules)"))
8157 (substitute* "esxml-form.el"
8158 ((",esxml-form-field-defn")
8159 "#'esxml-form-field-defn"))
8160 ;; See: https://github.com/tali713/esxml/issues/25
8161 (delete-file "esxpath.el")
8162 #t)))))
8163 (propagated-inputs
8164 `(("emacs-kv" ,emacs-kv)))
8165 (home-page "https://github.com/tali713/esxml/")
8166 (synopsis "SXML for EmacsLisp")
8167 (description "This is XML/XHTML done with S-Expressions in EmacsLisp.
8168Simply, this is the easiest way to write HTML or XML in Lisp. This library
8169uses the native form of XML representation as used by many libraries already
8170included within Emacs. See @code{esxml-to-xml} for a concise description of
8171the format.")
8172 (license license:gpl3+)))
8173
8174(define-public emacs-nov-el
8175 (package
8176 (name "emacs-nov-el")
8177 (version "0.2.6")
8178 (source (origin
8179 (method git-fetch)
8180 (uri (git-reference
8181 (url "https://github.com/wasamasa/nov.el.git")
8182 (commit version)))
8183 (file-name (git-file-name name version))
8184 (sha256
8185 (base32
8186 "188h5gzn1zf443g0b7q5bpmvvpr6ds5h8aci8vxc92py56rhyrvc"))))
8187 (build-system emacs-build-system)
8188 (arguments
8189 `(#:phases
8190 (modify-phases %standard-phases
8191 (add-after 'unpack 'embed-path-to-unzip
8192 (lambda _
8193 (substitute* "nov.el"
8194 (("\\(executable-find \"unzip\"\\)")
8195 (string-append "\"" (which "unzip") "\"")))
8196 #t)))))
8197 (propagated-inputs
8198 `(("emacs-dash" ,emacs-dash)
8199 ("emacs-esxml" ,emacs-esxml)))
8200 (inputs
8201 `(("unzip" ,unzip)))
8202 (home-page "https://github.com/wasamasa/nov.el/")
8203 (synopsis "Major mode for reading EPUBs in Emacs")
8204 (description "@code{nov.el} provides a major mode for reading EPUB
8205documents.
8206
8207Features:
8208
8209@itemize
8210@item Basic navigation (jump to TOC, previous/next chapter)
8211@item Remembering and restoring the last read position
8212@item Jump to next chapter when scrolling beyond end
8213@item Renders EPUB2 (@code{.ncx}) and EPUB3 (@code{<nav>}) TOCs
8214@item Hyperlinks to internal and external targets
8215@item Supports textual and image documents
8216@item View source of document files
8217@item Metadata display
8218@item Image rescaling
8219@end itemize
8220")
8221 (license license:gpl3+)))
8222
8223(define-public epipe
8224 (package
8225 (name "epipe")
8226 (version "0.1.0")
8227 (source
8228 (origin
8229 (method url-fetch)
8230 (uri (string-append "https://github.com/cute-jumper/epipe/archive/"
8231 version ".tar.gz"))
8232 (file-name (string-append name "-" version ".tar.gz"))
8233 (sha256
8234 (base32
8235 "05a036852g4j63k1mhvyfrcsgkl9lczayi7x61570ysw3cli5wp5"))))
8236 (build-system trivial-build-system)
8237 (inputs
8238 `(("bash" ,bash)
8239 ("perl" ,perl)))
8240 (native-inputs
8241 `(("tar" ,tar)
8242 ("gzip" ,gzip)))
8243 (arguments
8244 `(#:modules
8245 ((guix build utils))
8246 #:builder
8247 (begin
8248 (use-modules (guix build utils))
8249 ;; Extract source
8250 (setenv "PATH" (string-append
8251 (assoc-ref %build-inputs "tar") "/bin" ":"
8252 (assoc-ref %build-inputs "gzip") "/bin"))
8253 (invoke "tar" "xvf" (assoc-ref %build-inputs "source"))
8254 (chdir (string-append ,name "-" ,version))
8255 ;; Patch shebangs
8256 (substitute* "epipe"
8257 (("/usr/bin/env bash")
8258 (string-append (assoc-ref %build-inputs "bash") "/bin/bash")))
8259 (patch-shebang "epipe.pl"
8260 (list (string-append (assoc-ref %build-inputs "perl")
8261 "/bin")))
8262 ;; Installation
8263 (for-each (lambda (file)
8264 (install-file file (string-append %output "/bin")))
8265 '("epipe" "epipe.pl"))
8266 #t)))
8267 (home-page "https://github.com/cute-jumper/epipe")
8268 (synopsis "Pipe to the @code{emacsclient}")
8269 (description "@code{epipe} provides an utility to use your editor in
8270the pipeline, featuring the support for running @code{emacsclient}.")
8271 (license license:gpl3+)))
8272
8273(define-public emacs-hcl-mode
8274 (package
8275 (name "emacs-hcl-mode")
8276 (version "0.03")
8277 (source
8278 (origin
8279 (method url-fetch)
8280 (uri (string-append
8281 "https://github.com/syohex/emacs-hcl-mode/archive/"
8282 version ".tar.gz"))
8283 (file-name (string-append name "-" version ".tar.gz"))
8284 (sha256
8285 (base32
8286 "0pvw74qpwh0znqzp6syp4wxjqs7dp1hbn5h7xfk97mff9l5d8k6x"))))
8287 (build-system emacs-build-system)
8288 (home-page "https://github.com/syohex/emacs-hcl-mode")
8289 (synopsis "Major mode for the Hashicorp Configuration Language")
8290 (description
8291 "@code{emacs-hcl-mode} provides an Emacs major mode for working with
8292@acronym{HCL, Hashicorp Configuration Language}. It provides syntax
8293highlighting and indentation support.")
8294 (license license:gpl3+)))
8295
8296(define-public emacs-terraform-mode
8297 (package
8298 (name "emacs-terraform-mode")
8299 (version "0.06")
8300 (source
8301 (origin
8302 (method url-fetch)
8303 (uri (string-append
8304 "https://github.com/syohex/emacs-terraform-mode/archive/"
8305 version ".tar.gz"))
8306 (file-name (string-append name "-" version ".tar.gz"))
8307 (sha256
8308 (base32
8309 "0h9267ifdjmcin4sj8slxydbacx4bqicbvg8pa1qq2l72h9m5381"))))
8310 (build-system emacs-build-system)
8311 (propagated-inputs
8312 `(("emacs-hcl-mode" ,emacs-hcl-mode)))
8313 (home-page "https://github.com/syohex/emacs-terraform-mode")
8314 (synopsis "Major mode for Terraform")
8315 (description
8316 "@code{emacs-terraform-mode} provides a major mode for working with
8317@uref{https://www.terraform.io/, Terraform} configuration files. Most of the
8318functionality is inherited from @code{hcl-mode}.")
8319 (license license:gpl3+)))
8320
8321(define-public emacs-exec-path-from-shell
8322 (package
8323 (name "emacs-exec-path-from-shell")
8324 (version "1.11")
8325 (source
8326 (origin
8327 (method url-fetch)
8328 (uri (string-append
8329 "https://stable.melpa.org/packages/exec-path-from-shell-"
8330 version ".el"))
8331 (sha256
8332 (base32
8333 "03qjgb81cq1l3j54lvlf98r75vmmgd06mj6qh5wa6mz4xzp4w26r"))))
8334 (build-system emacs-build-system)
8335 (home-page "https://github.com/purcell/exec-path-from-shell")
8336 (synopsis "Get environment variables such as @var{PATH} from the shell")
8337 (description
8338 "This library allows the user to set Emacs @var{exec-path} and @var{PATH}
8339from the shell @var{PATH}, so that @code{shell-command}, @code{compile} and
8340the like work as expected on systems on which Emacs is not guaranteed to
8341inherit a login shell's environment variables. It also allows other
8342environment variables to be retrieved from the shell, so that Emacs will see
8343the same values you get in a terminal.")
8344 (license license:gpl3+)))
8345
8346(define-public emacs-deft
8347 (package
8348 (name "emacs-deft")
8349 (version "0.8")
8350 (source
8351 (origin
8352 (method url-fetch)
8353 (uri (string-append "https://stable.melpa.org/packages/deft-"
8354 version ".el"))
8355 (sha256
8356 (base32
8357 "1vb9cjxskc7c0yyf9pvxy1fzypg1vrcgwnjz0m3hslinsgdyig58"))))
8358 (build-system emacs-build-system)
8359 (home-page "https://jblevins.org/projects/deft/")
8360 (synopsis "Quickly browse, filter, and edit plain text notes")
8361 (description
8362 "Deft is an Emacs mode for quickly browsing, filtering, and editing
8363directories of plain text notes, inspired by Notational Velocity.")
8364 (license license:bsd-3)))
8365
8366(define-public emacs-anzu
8367 (package
8368 (name "emacs-anzu")
8369 (version "0.62")
8370 (source
8371 (origin
8372 (method url-fetch)
8373 (uri (string-append "https://github.com/syohex/emacs-anzu/archive/"
8374 version ".tar.gz"))
8375 (file-name (string-append name "-" version ".tar.gz"))
8376 (sha256
8377 (base32
8378 "16cg3897x5znbmgk7sdy0qyd0fbic9dmmz0dchq2vz5z29yhg4cz"))))
8379 (build-system emacs-build-system)
8380 (home-page "https://github.com/syohex/emacs-anzu")
8381 (synopsis "Show number of matches in mode-line while searching")
8382 (description
8383 "Anzu provides a minor mode which displays \"current match/total
8384matches\" in the mode line in various search modes. This is an Emacs port of
8385Anzu.zim.")
8386 (license license:gpl3+)))
8387
8388(define-public emacs-emmet-mode
8389 (package
8390 (name "emacs-emmet-mode")
8391 (version "1.0.8")
8392 (source (origin
8393 (method url-fetch)
8394 (uri (string-append "https://github.com/smihica/emmet-mode"
8395 "/archive/" version ".tar.gz"))
8396 (file-name (string-append name "-" version ".tar.gz"))
8397 (sha256
8398 (base32
8399 "0g3p22yabfcp98cfv9dgl9il2m2pd53isq2q11vb3s7qyn31f7zj"))))
8400 (build-system emacs-build-system)
8401 (home-page "https://github.com/smihica/emmet-mode")
8402 (synopsis "Unofficial Emmet's support for Emacs")
8403 (description
8404 "Unfold CSS-selector-like expressions to markup. It is intended to be
8405used with SGML-like languages: XML, HTML, XHTML, XSL, etc.")
8406 (license license:gpl3+)))
8407
8408(define-public emacs-ergoemacs-mode
8409 (let ((commit "3ce23bba3cb50562693860f87f3528c471d603ba")
8410 (revision "1"))
8411 (package
8412 (name "emacs-ergoemacs-mode")
8413 (version (git-version "5.16.10.12" revision commit))
8414 (source
8415 (origin
8416 (method git-fetch)
8417 (uri (git-reference
8418 (url "https://github.com/ergoemacs/ergoemacs-mode.git")
8419 (commit commit)))
8420 (sha256
8421 (base32
8422 "1s3b9bridl78hh1mxmdk9nqlmqhibbaxk0a1cixmsf23s06w8w6l"))))
8423 (build-system emacs-build-system)
8424 (propagated-inputs
8425 `(("emacs-undo-tree" ,emacs-undo-tree)))
8426 (home-page "https://ergoemacs.github.io/")
8427 (synopsis "Emacs mode based on common modern interface and ergonomics")
8428 (description
8429 "This package provides an efficient Emacs keybinding set based on
8430statistics of command frequency, and supports common shortcuts for open,
8431close, copy, cut, paste, undo, redo.")
8432 (license license:gpl3+))))
8433
8434(define-public emacs-password-store
8435 (package
8436 (name "emacs-password-store")
8437 (version "1.7.3")
8438 (source (origin
8439 (method url-fetch)
8440 (uri
8441 (string-append "https://git.zx2c4.com/password-store/snapshot/"
8442 "password-store-" version ".tar.xz"))
8443 (sha256
8444 (base32
8445 "1x53k5dn3cdmvy8m4fqdld4hji5n676ksl0ql4armkmsds26av1b"))))
8446 (build-system emacs-build-system)
8447 (arguments
8448 `(#:phases
8449 (modify-phases %standard-phases
8450 (add-after 'unpack 'extract-el-file
8451 (lambda _
8452 (copy-file "contrib/emacs/password-store.el" "password-store.el")
8453 (delete-file-recursively "contrib")
8454 (delete-file-recursively "man")
8455 (delete-file-recursively "src")
8456 (delete-file-recursively "tests"))))))
8457 (propagated-inputs
8458 `(("emacs-f" ,emacs-f)
8459 ("emacs-s" ,emacs-s)
8460 ("emacs-with-editor" ,emacs-with-editor)
8461 ("password-store" ,password-store)))
8462 (home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs")
8463 (synopsis "Password store (pass) support for Emacs")
8464 (description
8465 "This package provides functions for working with pass (\"the
8466standard Unix password manager\").")
8467 (license license:gpl2+)))
8468
8469(define-public emacs-pass
8470 (package
8471 (name "emacs-pass")
8472 (version "1.8")
8473 (source (origin
8474 (method url-fetch)
8475 (uri (string-append
8476 "https://github.com/NicolasPetton/pass/archive/"
8477 version ".tar.gz"))
8478 (sha256
8479 (base32
8480 "0aiz90gklk0cb8n4v1s3l0mx6pp2b7f4k2c0fjpihwmga13yklwn"))
8481 (file-name (string-append name "-" version ".tar.gz"))))
8482 (build-system emacs-build-system)
8483 (propagated-inputs
8484 `(("emacs-password-store" ,emacs-password-store)
8485 ("emacs-f" ,emacs-f)))
8486 (home-page "https://github.com/NicolasPetton/pass")
8487 (synopsis "Major mode for @file{password-store.el}")
8488 (description "This is a major mode for managing password-store (pass)
8489keychains. The keychain entries are displayed in a directory-like structure
8490and can be consulted and modified.")
8491 (license license:gpl3+)))
8492
8493(define-public emacs-evil-anzu
8494 (package
8495 (name "emacs-evil-anzu")
8496 (version "0.03")
8497 (source
8498 (origin
8499 (method url-fetch)
8500 (uri (string-append "https://github.com/syohex/emacs-evil-anzu"
8501 "/archive/" version ".tar.gz"))
8502 (file-name (string-append name "-" version ".tar.gz"))
8503 (sha256
8504 (base32 "032hh2946z529cizqsg8pm6cpn5qdj8lfk3qskmx6xv3g2ra56ns"))))
8505 (build-system emacs-build-system)
8506 (propagated-inputs
8507 `(("emacs-evil" ,emacs-evil)
8508 ("emacs-anzu" ,emacs-anzu)))
8509 (home-page "https://github.com/syohex/emacs-evil-anzu")
8510 (synopsis "Anzu for evil-mode")
8511 (description "@code{anzu} provides a minor mode that displays the current
8512match and total match information in the mode-line in various search modes.")
8513 (license license:gpl3+)))
8514
8515(define-public emacs-pg
8516 (let ((commit "4f6516ec3946d95dcef49abb6703cc89ecb5183d"))
8517 (package
8518 (name "emacs-pg")
8519 (version (git-version "0.1" "1" commit))
8520 (source (origin
8521 (method git-fetch)
8522 (uri (git-reference (url "https://github.com/cbbrowne/pg.el")
8523 (commit commit)))
8524 (file-name (git-file-name name version))
8525 (sha256
8526 (base32
8527 "1zh7v4nnpzvbi8yj1ynlqlawk5bmlxi6s80b5f2y7hkdqb5q26k0"))))
8528 (build-system emacs-build-system)
8529 (home-page "https://github.com/cbbrowne/pg.el")
8530 (synopsis "Emacs Lisp interface for PostgreSQL")
8531 (description
8532 "This package provides an Emacs Lisp interface for PostgreSQL.")
8533 (license license:gpl3+))))
8534
8535(define-public emacs-cl-generic
8536 (package
8537 (name "emacs-cl-generic")
8538 (version "0.3")
8539 (source
8540 (origin
8541 (method url-fetch)
8542 (uri (string-append "https://elpa.gnu.org/packages/cl-generic-"
8543 version ".el"))
8544 (sha256
8545 (base32
8546 "0vb338bhjpsnrf60qgxny4z5rjrnifahnrv9axd4shay89d894zq"))))
8547 (build-system emacs-build-system)
8548 (home-page "https://elpa.gnu.org/packages/seq.html")
8549 (synopsis
8550 "Forward @code{cl-generic} compatibility for Emacs before version 25")
8551 (description "This package provides a subset of the features of the
8552@code{cl-generic} package introduced in Emacs-25, for use on previous
8553@code{emacsen}.")
8554 (license license:gpl3+)))
8555
8556(define-public emacs-finalize
8557 (package
8558 (name "emacs-finalize")
8559 (version "2.0.0")
8560 (source
8561 (origin
8562 (method url-fetch)
8563 (uri (string-append "https://github.com/skeeto/elisp-finalize/archive/"
8564 version ".tar.gz"))
8565 (file-name (string-append name "-" version ".tar.gz"))
8566 (sha256
8567 (base32
8568 "077fycy3i5f0kjw5z3rhf4kld5lbk2idz690nkwhkz04vppk4q4x"))))
8569 (build-system emacs-build-system)
8570 (propagated-inputs
8571 `(("emacs-cl-generic" ,emacs-cl-generic)))
8572 (home-page "https://github.com/skeeto/elisp-finalize")
8573 (synopsis "Finalizers for Emacs Lisp")
8574 (description
8575 "This package will allows to immediately run a callback (a finalizer)
8576after its registered lisp object has been garbage collected. This allows for
8577extra resources, such as buffers and processes, to be cleaned up after the
8578object has been freed.")
8579 (license license:unlicense)))
8580
8581(define-public emacs-emacsql
8582 (package
8583 (name "emacs-emacsql")
8584 (version "3.0.0")
8585 (source (origin
8586 (method git-fetch)
8587 (uri (git-reference
8588 (url "https://github.com/skeeto/emacsql.git")
8589 (commit (string-append version))))
8590 (file-name (git-file-name name version))
8591 (sha256
8592 (base32
8593 "1c84gxr1majqj4b59wgdy3lzm3ap66w9qsrnkx8hdbk9895ak81g"))))
8594 (build-system emacs-build-system)
8595 (arguments
8596 `(#:modules ((guix build emacs-build-system)
8597 (guix build utils)
8598 (guix build emacs-utils)
8599 (srfi srfi-26))
8600 #:phases
8601 (modify-phases %standard-phases
8602 (delete 'build) ;‘build-emacsql-sqlite’ compiles ‘*.el’ files.
8603 (add-before 'install 'patch-elisp-shell-shebangs
8604 (lambda _
8605 (substitute* (find-files "." "\\.el")
8606 (("/bin/sh") (which "sh")))
8607 #t))
8608 (add-after 'patch-elisp-shell-shebangs 'setenv-shell
8609 (lambda _
8610 (setenv "SHELL" "sh")))
8611 (add-after 'setenv-shell 'build-emacsql-sqlite
8612 (lambda _
8613 (invoke "make" "binary" "CC=gcc")))
8614 (add-after 'build-emacsql-sqlite 'install-emacsql-sqlite
8615 ;; This build phase installs emacs-emacsql binary.
8616 (lambda* (#:key outputs #:allow-other-keys)
8617 (install-file "sqlite/emacsql-sqlite"
8618 (string-append (assoc-ref outputs "out")
8619 "/bin"))
8620 #t))
8621 (add-after 'install-emacsql-sqlite 'patch-emacsql-sqlite.el
8622 ;; This build phase removes interactive prompts
8623 ;; and makes sure Emacs look for binaries in the right places.
8624 (lambda* (#:key outputs #:allow-other-keys)
8625 (let ((file "emacsql-sqlite.el"))
8626 (chmod file #o644)
8627 (emacs-substitute-sexps file
8628 ;; Make sure Emacs looks for ‘GCC’ binary in the right place.
8629 ("(executable-find" (which "gcc"))
8630 ;; Make sure Emacs looks for ‘emacsql-sqlite’ binary
8631 ;; in the right place.
8632 ("(defvar emacsql-sqlite-executable"
8633 (string-append (assoc-ref outputs "out")
8634 "/bin/emacsql-sqlite"))))))
8635 (replace 'install
8636 (lambda* (#:key outputs #:allow-other-keys)
8637 (let* ((out (assoc-ref outputs "out")))
8638 (install-file "sqlite/emacsql-sqlite"
8639 (string-append out "/bin"))
8640 (for-each (cut install-file <>
8641 (string-append out "/share/emacs/site-lisp/guix.d/"
8642 "emacsql" "-" ,version))
8643 (find-files "." "\\.elc*$")))
8644 #t)))))
8645 (inputs
8646 `(("emacs-minimal" ,emacs-minimal)
8647 ("mariadb" ,mariadb)
8648 ("postgresql" ,postgresql)))
8649 (propagated-inputs
8650 `(("emacs-finalize" ,emacs-finalize)
8651 ("emacs-pg" ,emacs-pg)))
8652 (home-page "https://github.com/skeeto/emacsql")
8653 (synopsis "Emacs high-level SQL database front-end")
8654 (description "Any readable Lisp value can be stored as a value in EmacSQL,
8655including numbers, strings, symbols, lists, vectors, and closures. EmacSQL
8656has no concept of @code{TEXT} values; it's all just Lisp objects. The Lisp
8657object @code{nil} corresponds 1:1 with @code{NULL} in the database.")
8658 (license license:gpl3+)))
8659
8660(define-public emacs-closql
8661 (package
8662 (name "emacs-closql")
8663 (version "1.0.0")
8664 (source
8665 (origin
8666 (method git-fetch)
8667 (uri (git-reference
8668 (url "https://github.com/emacscollective/closql.git")
8669 (commit (string-append "v" version))))
8670 (file-name (git-file-name name version))
8671 (sha256
8672 (base32
8673 "1xhpfjjkjqfc1k2rj77cscclz5r7gpvv3hi202x178vdcpipjwar"))))
8674 (build-system emacs-build-system)
8675 (propagated-inputs
8676 `(("emacs-emacsql" ,emacs-emacsql)))
8677 (home-page "https://github.com/emacscollective/closql")
8678 (synopsis "Store EIEIO objects using EmacSQL")
8679 (description
8680 "This package allows to store uniform EIEIO objects in an EmacSQL
8681database. SQLite is used as backend. This library imposes some restrictions
8682on what kind of objects can be stored; it isn't intended to store arbitrary
8683objects. All objects have to share a common superclass and subclasses cannot
8684add any additional instance slots.")
8685 (license license:gpl3)))
8686
8687(define-public emacs-epkg
8688 ;; The release version is to old for the current database scheme.
8689 (let ((commit "432312b9583ed7b88ad9644fd1bf2183765a892e"))
8690 (package
8691 (name "emacs-epkg")
8692 (version (git-version "3.0.0" "1" commit))
8693 (source
8694 (origin
8695 (method git-fetch)
8696 (uri (git-reference
8697 (url "https://github.com/emacscollective/epkg.git")
8698 (commit commit)))
8699 (file-name (git-file-name name version))
8700 (sha256
8701 (base32
8702 "0d882kahn7a0vri7a9r15lvmfx1zn2hsga6jfcc6jv0hqbswlb2k"))))
8703 (build-system emacs-build-system)
8704 (propagated-inputs
8705 `(("emacs-closql" ,emacs-closql)
8706 ("emacs-dash" ,emacs-dash)))
8707 (home-page "https://emacsmirror.net")
8708 (synopsis "Browse the Emacsmirror package database")
8709 (description "This package provides access to a local copy of the
8710Emacsmirror package database. It provides low-level functions for querying
8711the database and a @file{package.el} user interface for browsing the database.
8712Epkg itself is not a package manager.
8713
8714Getting a local copy:
8715
8716@example
8717git clone https://github.com/emacsmirror/epkgs.git ~/.emacs.d/epkgs
8718cd ~/.emacs.d/epkgs
8719git submodule init
8720git config --global url.https://github.com/.insteadOf git@@github.com:
8721git submodule update
8722@end example
8723
8724Some submodule may be missing. In this case Git will prompt for a GitHub user
8725name and password. To skip it press a @key{Return} key.
8726
8727You could get a Epkg package list by invoking @code{epkg-list-packages} in
8728Emacs.")
8729 (license license:gpl3+))))
8730
8731(define-public emacs-elisp-slime-nav
8732 (package
8733 (name "emacs-elisp-slime-nav")
8734 (version "0.9")
8735 (source
8736 (origin
8737 (method url-fetch)
8738 (uri (string-append "https://github.com/purcell/elisp-slime-nav/archive/"
8739 version ".tar.gz"))
8740 (file-name (string-append name "-" version ".tar.gz"))
8741 (sha256
8742 (base32
8743 "1vq7ym1q47p97gxrv45c9gm96d23xbp237vkmakikj6grngxjfb2"))))
8744 (build-system emacs-build-system)
8745 (home-page "https://github.com/purcell/elisp-slime-nav")
8746 (synopsis "Make @code{M-.} and @code{M-,} work for elisp like they do in SLIME")
8747 (description
8748 "This package provides SLIME's convenient @code{M-.}and @code{M-,} navigation
8749in @code{emacs-lisp-mode}, together with an elisp equivalent of
8750@code{slime-describe-symbol}.")
8751 (license license:gpl3+)))
8752
8753(define-public emacs-dedicated
8754 (package
8755 (name "emacs-dedicated")
8756 (version "1.0.0")
8757 (source (origin
8758 (method url-fetch)
8759 (uri (string-append
8760 "https://github.com/emacsorphanage/dedicated/archive/"
8761 version
8762 ".tar.gz"))
8763 (sha256
8764 (base32
8765 "0nhbkp278cvcznb5rp3jp9ii3mjgb79zx8iwfrw7zfk3yg8688ni"))
8766 (file-name (string-append name "-" version ".tar.gz"))))
8767 (build-system emacs-build-system)
8768 (home-page "https://github.com/emacsorphanage/dedicated")
8769 (synopsis "Emacs minor mode for toggling a windows's \"dedicated\" flag")
8770 (description
8771 "This simple Emacs minor mode allows you to toggle a window's
8772\"dedicated\" flag. When a window is \"dedicated\", Emacs will not select
8773files into that window. This can be quite handy since many commands will use
8774another window to show results (compilation mode, starting info, and so on).
8775A dedicated window won't be used for such a purpose. For details, please read
8776the source file.")
8777 (license license:gpl2+)))
8778
8779(define-public emacs-nnreddit
8780 (let ((commit "9843f99d01fd8f1eea2fc685965a7c7f4eeb187a")
8781 (revision "1"))
8782 (package
8783 (name "emacs-nnreddit")
8784 (version (string-append "0.0.1-" revision "."
8785 (string-take commit 7)))
8786 (source (origin
8787 (method git-fetch)
8788 (uri (git-reference
8789 (url "https://github.com/paul-issartel/nnreddit.git")
8790 (commit commit)))
8791 (file-name (string-append name "-" version "-checkout"))
8792 (sha256
8793 (base32
8794 "0j4h3bnga640250jdq8bwyja49r41ssrsjd6lba4gzzllqk02nbn"))))
8795 (build-system emacs-build-system)
8796 (home-page "https://github.com/paul-issartel/nnreddit")
8797 (synopsis "Reddit backend for the Gnus newsreader")
8798 (description "@url{https://www.reddit.com} backend for the Gnus
8799newsreader.")
8800 (license license:gpl3+))))
8801
8802(define-public emacs-makey
8803 (package
8804 (name "emacs-makey")
8805 (version "0.3")
8806 (source
8807 (origin
8808 (method url-fetch)
8809 (uri (string-append "https://github.com/mickeynp/makey/archive/"
8810 version ".tar.gz"))
8811 (file-name (string-append name "-" version ".tar.gz"))
8812 (sha256
8813 (base32
8814 "0kzl4q1wf2zhkx9nrymxa67n99iq0bj7zqhpaz4byksna1hsxfmv"))))
8815 (build-system emacs-build-system)
8816 (home-page "https://github.com/mickeynp/makey")
8817 (synopsis "Emacs interactive command-line mode")
8818 (description
8819 "This package provides an Emacs interactive command-line mode.")
8820 (license license:gpl3+)))
8821
8822(define-public emacs-outorg
8823 (let ((commit "78b0695121fb974bc4e971eb4ef7f8afd6d89d64"))
8824 (package
8825 (name "emacs-outorg")
8826 (version (git-version "2.0" "1" commit))
8827 (source
8828 (origin
8829 (method git-fetch)
8830 (uri (git-reference
8831 (url "https://github.com/alphapapa/outorg")
8832 (commit commit)))
8833 (file-name (git-file-name name version))
8834 (sha256
8835 (base32
8836 "03aclh4m3f7rb821gr9pwvnqkkl91px3qxdcarpf3ypa1x4fxvlj"))))
8837 (build-system emacs-build-system)
8838 (home-page "https://github.com/alphapapa/outorg")
8839 (synopsis "Org-style comment editing")
8840 (description "Outorg is for editing comment-sections of source-code
8841files in temporary Org-mode buffers. It turns conventional
8842literate-programming upside-down in that the default mode is the
8843programming-mode, and special action has to be taken to switch to the
8844text-mode (i.e. Org-mode).")
8845 (license license:gpl3+))))
8846
8847(define-public emacs-outshine
8848 (let ((commit "5f1a6b70231d2811c522e4e5e8c89ff461b311d6"))
8849 (package
8850 (name "emacs-outshine")
8851 (version (git-version "2.0" "1" commit))
8852 (source (origin
8853 (method git-fetch)
8854 (uri (git-reference
8855 (url "https://github.com/alphapapa/outshine.git")
8856 (commit commit)))
8857 (file-name (git-file-name name version))
8858 (sha256
8859 (base32
8860 "1l9v1dfhgg7il11ifbhvcvrg3acfjk9sdxlc3lja1k54d7dp60jv"))))
8861 (build-system emacs-build-system)
8862 (propagated-inputs
8863 `(("emacs-outorg" ,emacs-outorg)))
8864 (home-page "https://github.com/alphapapa/outshine")
8865 (synopsis "Emacs outline with outshine")
8866 (description "Outshine attempts to bring the look and feel of
8867@code{org-mode} to an Emacs outside of the Org major-mode. It is an extension
8868of @code{outline-minor-mode} (@code{org-mode} itself derives from
8869outline-mode), so there is no such thing like an outshine mode, only
8870@code{outline-minor-mode} with outshine extensions loaded.")
8871 (license license:gpl3+))))
8872
8873(define-public emacs-parsebib
8874 (package
8875 (name "emacs-parsebib")
8876 (version "2.3.1")
8877 (source
8878 (origin
8879 (method url-fetch)
8880 (uri (string-append "https://github.com/joostkremers/parsebib/archive/"
8881 version ".tar.gz"))
8882 (file-name (string-append name "-" version ".tar.gz"))
8883 (sha256
8884 (base32
8885 "0cxagnmc5ab6idmb26axpizhr4sqglkncc59768yavn3p04jyq63"))))
8886 (build-system emacs-build-system)
8887 (home-page "https://github.com/joostkremers/parsebib")
8888 (synopsis "Library for parsing bib files")
8889 (description
8890 "This package provides an Emacs library for parsing bib files.")
8891 (license license:gpl3+)))
8892
8893(define-public emacs-biblio
8894 (package
8895 (name "emacs-biblio")
8896 (version "0.1")
8897 (source
8898 (origin
8899 (method url-fetch)
8900 (uri (string-append "https://github.com/cpitclaudel/biblio.el/archive/"
8901 version ".tar.gz"))
8902 (file-name (string-append name "-" version ".tar.gz"))
8903 (sha256
8904 (base32
8905 "109fvivsb4r0rbqljngqrmxqvbnbkqlivczx6brrvlr7ci625lhf"))))
8906 (build-system emacs-build-system)
8907 (propagated-inputs
8908 `(("emacs-seq" ,emacs-seq)
8909 ("emacs-dash" ,emacs-dash)
8910 ("emacs-let-alist" ,emacs-let-alist)))
8911 (home-page "https://github.com/cpitclaudel/biblio.el")
8912 (synopsis "Browse and import bibliographic references")
8913 (description "This package provides an extensible Emacs package for
8914browsing and fetching references.
8915
8916@file{biblio.el} makes it easy to browse and gather bibliographic references
8917and publications from various sources, by keywords or by DOI. References are
8918automatically fetched from well-curated sources, and formatted as BibTeX.")
8919 (license license:gpl3+)))
8920
8921(define-public emacs-helm-bibtex
8922 (let ((commit "8ed898fb5a68f18e9bb9973832a5c1f8abcfc463")
8923 (revision "1"))
8924 (package
8925 (name "emacs-helm-bibtex")
8926 (version (string-append "2.0.0" "-" revision "."
8927 (string-take commit 7)))
8928 (source
8929 (origin
8930 (method git-fetch)
8931 (uri (git-reference
8932 (url "https://github.com/tmalsburg/helm-bibtex.git")
8933 (commit commit)))
8934 (file-name (string-append name "-" version "-checkout"))
8935 (sha256
8936 (base32
8937 "14lyx0vbqr97p3anzrsp7m3q0kqclyjcdwplpraim403fcklzbnz"))))
8938 (build-system emacs-build-system)
8939 (propagated-inputs
8940 `(("emacs-helm" ,emacs-helm)
8941 ("emacs-parsebib" ,emacs-parsebib)
8942 ("emacs-s" ,emacs-s)
8943 ("emacs-dash" ,emacs-dash)
8944 ("emacs-f" ,emacs-f)
8945 ("emacs-biblio" ,emacs-biblio)
8946 ("emacs-ivy" ,emacs-ivy)))
8947 (home-page "https://github.com/tmalsburg/helm-bibtex")
8948 (synopsis "Bibliography manager based on Helm")
8949 (description "This package provides bibliography manager for Emacs,
8950based on Helm and the bibtex-completion backend.
8951
8952Key features:
8953
8954@itemize
8955@item Quick access to your bibliography from within Emacs
8956@item Powerful search capabilities
8957@item Provides instant search results as you type
8958@item Tightly integrated with LaTeX authoring, emails, Org mode, etc.
8959@item Open the PDFs, URLs, or DOIs associated with an entry
8960@item Insert LaTeX cite commands, Ebib links, or Pandoc citations,
8961BibTeX entries, or plain text references at point, attach PDFs to emails
8962@item Support for note taking
8963@item Quick access to online bibliographic databases such as Pubmed,
8964arXiv, Google Scholar, Library of Congress, etc.
8965@item Imports BibTeX entries from CrossRef and other sources.
8966@end itemize\n")
8967 (license license:gpl3+))))
8968
8969(define-public emacs-ewmctrl
8970 (let ((commit "3d0217c4d6cdb5c308b6cb4293574f470d4faacf"))
8971 (package
8972 (name "emacs-ewmctrl")
8973 (version (git-version "0.0.1" "1" commit))
8974 (source
8975 (origin
8976 (method git-fetch)
8977 (uri (git-reference
8978 (url "https://github.com/flexibeast/ewmctrl.git")
8979 (commit commit)))
8980 (file-name (git-file-name name version))
8981 (sha256
8982 (base32
8983 "0ilwvx0qryv3v6xf0gxqwnfm6pf96gxap8h9g3f6z6lk9ff4n1wi"))))
8984 (build-system emacs-build-system)
8985 (arguments
8986 '(#:phases
8987 (modify-phases %standard-phases
8988 (add-after 'unpack 'patch-ewmctrl
8989 ;; This build phase makes sure ‘ewmctrl’ looks
8990 ;; for ‘wmctrl’ in the right place.
8991 (lambda _
8992 (let ((file "ewmctrl.el"))
8993 (chmod file #o644)
8994 (emacs-substitute-sexps file
8995 ("(defcustom ewmctrl-wmctrl-path" (which "wmctrl")))))))))
8996 (inputs
8997 `(("wmctrl" ,wmctrl)))
8998 (home-page "https://github.com/flexibeast/ewmctrl")
8999 (synopsis "Emacs interface to @code{wmctrl}")
9000 (description "@code{ewmctrl} provides an Emacs interface to
9001@code{wmctrl} command-line window-management program.")
9002 (license license:gpl3+))))
9003
9004(define-public emacs-helm-gtags
9005 (package
9006 (name "emacs-helm-gtags")
9007 (version "1.5.6")
9008 (source (origin
9009 (method url-fetch)
9010 (uri (string-append
9011 "https://github.com/syohex/emacs-helm-gtags/archive/"
9012 version ".tar.gz"))
9013 (file-name (string-append name "-" version ".tar.gz"))
9014 (sha256
9015 (base32
9016 "1a10snhg6nnnan6w9a7mcziy26vxbsr3c35i0gcarnkdp2yqng36"))))
9017 (build-system emacs-build-system)
9018 (propagated-inputs
9019 `(("emacs-helm" ,emacs-helm)))
9020 (home-page "https://github.com/syohex/emacs-helm-gtags")
9021 (synopsis "Emacs Helm interface to GNU Global")
9022 (description
9023 "@code{emacs-helm-gtags} provides a Emacs Helm interface to GNU Global.")
9024 (license license:gpl3+)))
9025
9026(define-public emacs-list-utils
9027 (package
9028 (name "emacs-list-utils")
9029 (version "0.4.4")
9030 (source
9031 (origin
9032 (method url-fetch)
9033 (uri (string-append "https://github.com/rolandwalker/list-utils/archive/"
9034 "v" version ".tar.gz"))
9035 (file-name (string-append name "-" version ".tar.gz"))
9036 (sha256
9037 (base32
9038 "1xc1xh8c82h5gdjbgpdsdclgwxkxbb7h3x3a2bscpm41g8pnan4p"))))
9039 (build-system emacs-build-system)
9040 (home-page "https://github.com/rolandwalker/list-utils")
9041 (synopsis "List-manipulation utility functions")
9042 (description "This package provides a list manipulation library for Emacs.")
9043 (license license:gpl3+)))
9044
9045(define-public emacs-move-text
9046 (package
9047 (name "emacs-move-text")
9048 (version "2.0.8")
9049 (source
9050 (origin
9051 (method url-fetch)
9052 (uri (string-append "https://github.com/emacsfodder/move-text/archive/"
9053 version ".tar.gz"))
9054 (file-name (string-append name "-" version ".tar.gz"))
9055 (sha256
9056 (base32
9057 "1sjfja9r25692pgcldgnjzkapzy970m14jh9l4pajysiqcdk72g0"))))
9058 (build-system emacs-build-system)
9059 (home-page "https://github.com/emacsfodder/move-text")
9060 (synopsis "Move current line or region with M-up or M-down")
9061 (description "This package provide functions to move the current line
9062using @kbd{M-up} or @kbd{M-down} if a region is marked, it will move the
9063region instead.")
9064 (license license:gpl3+)))
9065
9066(define-public emacs-validate
9067 (package
9068 (name "emacs-validate")
9069 (version "1.0.5")
9070 (source (origin
9071 (method url-fetch)
9072 (uri (string-append "https://github.com/Malabarba/validate.el"
9073 "/archive/" version ".tar.gz"))
9074 (file-name (string-append name "-" version ".tar.gz"))
9075 (sha256
9076 (base32
9077 "125mbd111f1h1baw0z3fzm48y1bvaigljyzvvnqgrn0shxbj0khg"))))
9078 (build-system emacs-build-system)
9079 (home-page "https://github.com/Malabarba/validate.el")
9080 (synopsis "Emacs library for scheme validation")
9081 (description "This Emacs library provides two functions that perform
9082schema validation.")
9083 (license license:gpl3+)))
9084
9085(define-public emacs-rainbow-blocks
9086 (let ((commit "dd435d7bb34ff6f162a5f315df308b90b7e9f842"))
9087 (package
9088 (name "emacs-rainbow-blocks")
9089 (version (git-version "1.0.0" "1" commit))
9090 (source (origin
9091 (method git-fetch)
9092 (uri (git-reference
9093 (url "https://github.com/istib/rainbow-blocks.git")
9094 (commit commit)))
9095 (file-name (git-file-name name version))
9096 (sha256
9097 (base32
9098 "06yfb3i7wzvqrhkb61zib9xvpb5i00s4frizkzff66im05k0n795"))))
9099 (build-system emacs-build-system)
9100 (home-page "https://github.com/istib/rainbow-blocks")
9101 (synopsis "Highlight sexp blocks")
9102 (description "Rainbow-blocks is an Emacs mode that highlights blocks
9103made of parentheses, brackets, and braces according to their depth. Each
9104successive level is highlighted in a different color. This makes it easy to
9105orient yourself in the code, and tell which statements are at a given level.")
9106 (license license:gpl3+))))
9107
9108(define-public emacs-hierarchy
9109 (package
9110 (name "emacs-hierarchy")
9111 (version "0.7.0")
9112 (source
9113 (origin
9114 (method url-fetch)
9115 (uri (string-append
9116 "https://github.com/DamienCassou/hierarchy/archive/"
9117 "v" version ".tar.gz"))
9118 (file-name (string-append name "-" version ".tar.gz"))
9119 (sha256
9120 (base32
9121 "1a463v5zk6zis2p8cs4mads3iyxh266yahi6j6y0paggfl2yhkc8"))))
9122 (build-system emacs-build-system)
9123 (home-page "https://github.com/DamienCassou/hierarchy")
9124 (synopsis "Library to create and display hierarchy structures")
9125 (description "This package provides an Emacs library to create, query,
9126navigate and display hierarchy structures.")
9127 (license license:gpl3+)))
9128
9129(define-public emacs-tree-mode
9130 (let ((commit "b06078826d5875d74b0e7b7ac47b0d0917610534")
9131 (revision "1"))
9132 (package
9133 (name "emacs-tree-mode")
9134 (version (string-append "0.0.1" "-" revision "."
9135 (string-take commit 7)))
9136 (source
9137 (origin
9138 (method git-fetch)
9139 (uri (git-reference
9140 (url "https://github.com/emacsorphanage/tree-mode.git")
9141 (commit commit)))
9142 (file-name (string-append name "-" version "-checkout"))
9143 (sha256
9144 (base32
9145 "13bbdhdmqg4x9yghanhr8fsbsxbnypzxdxgicz31sjjm675kpnix"))))
9146 (build-system emacs-build-system)
9147 (home-page "https://github.com/emacsorphanage/tree-mode")
9148 (synopsis "Emacs mode to manage tree widgets")
9149 (description
9150 "This package provides an Emacs library to manage tree widgets.")
9151 (license license:gpl3+))))
9152
9153(define-public emacs-md4rd
9154 (let ((commit "c55512c2f7680db2a1e73db6bdf93adecaf40fec")
9155 (revision "1"))
9156 (package
9157 (name "emacs-md4rd")
9158 (version (string-append "0.0.2" "-" revision "."
9159 (string-take commit 7)))
9160 (source (origin
9161 (method git-fetch)
9162 (uri (git-reference
9163 (url "https://github.com/ahungry/md4rd.git")
9164 (commit commit)))
9165 (file-name (string-append name "-" version "-checkout"))
9166 (sha256
9167 (base32
9168 "0mvv1mvsrpkrmikcpfqf2zbawnzgq33j6zjdrlv48mcw57xb2ak9"))))
9169 (propagated-inputs
9170 `(("emacs-hierarchy" ,emacs-hierarchy)
9171 ("emacs-request" ,emacs-request)
9172 ("emacs-dash" ,emacs-dash)
9173 ("emacs-s" ,emacs-s)
9174 ("emacs-tree-mode" ,emacs-tree-mode)))
9175 (build-system emacs-build-system)
9176 (home-page "https://github.com/ahungry/md4rd")
9177 (synopsis "Emacs Mode for Reddit")
9178 (description
9179 "This package allows to read Reddit from within Emacs interactively.")
9180 (license license:gpl3+))))
9181
9182(define-public emacs-pulseaudio-control
9183 (let ((commit "1da372ec79f5d2fb901d1f9f0679fee8848fd011")
9184 (revision "2"))
9185 (package
9186 (name "emacs-pulseaudio-control")
9187 (version (git-version "0.0.1" revision commit))
9188 (source
9189 (origin
9190 (method git-fetch)
9191 (uri (git-reference
9192 (url "https://github.com/flexibeast/pulseaudio-control.git")
9193 (commit commit)))
9194 (file-name (git-file-name name version))
9195 (sha256
9196 (base32
9197 "02xrsms2pjqdk6327midi61i5vg2h9cq5jwaxv43ldm68wl7hi6k"))))
9198 (build-system emacs-build-system)
9199 (arguments
9200 '(#:phases (modify-phases %standard-phases
9201 (add-after 'unpack 'patch-file-name
9202 (lambda* (#:key inputs #:allow-other-keys)
9203 (let ((pulseaudio (assoc-ref inputs "pulseaudio")))
9204 (chmod "pulseaudio-control.el" #o600)
9205 (emacs-substitute-variables "pulseaudio-control.el"
9206 ("pulseaudio-control-pactl-path"
9207 (string-append pulseaudio "/bin/pactl")))
9208 #t))))))
9209 (inputs `(("pulseaudio" ,pulseaudio)))
9210 (home-page "https://github.com/flexibeast/pulseaudio-control")
9211 (synopsis "Control @code{pulseaudio} from Emacs")
9212 (description
9213 "This package allows to control @code{pulseaudio} from Emacs.")
9214 (license license:gpl3+))))
9215
9216(define-public emacs-datetime
9217 (package
9218 (name "emacs-datetime")
9219 (version "0.3")
9220 (source (origin
9221 (method url-fetch)
9222 (uri (string-append
9223 "https://github.com/doublep/datetime/archive/"
9224 version ".tar.gz"))
9225 (file-name (string-append name "-" version ".tar.gz"))
9226 (sha256
9227 (base32
9228 "12wqpj67rjij2ki7nmw38rz3k2bsq68pk6zswknlcn9qhp1zd9w9"))))
9229 (build-system emacs-build-system)
9230 (home-page "https://github.com/doublep/datetime/")
9231 (synopsis "Library to work with dates in Emacs")
9232 (description "Parsing, formatting, matching and recoding
9233timestamps and date-time format strings library for Emacs.")
9234 (license license:gpl3+)))
9235
9236(define-public emacs-org-mind-map
9237 (let ((commit "9d6e262bedd94daf9de269f4d56de277275677cb")
9238 (revision "1"))
9239 (package
9240 (name "emacs-org-mind-map")
9241 (version (string-append "0.0.1" "-" revision "."
9242 (string-take commit 7)))
9243 (source
9244 (origin
9245 (method git-fetch)
9246 (uri (git-reference
9247 (url "https://github.com/theodorewiles/org-mind-map.git")
9248 (commit commit)))
9249 (file-name (string-append name "-" version "-checkout"))
9250 (sha256
9251 (base32
9252 "0jgkkgq7g64zckrmjib0hvz0qy3ynz5vz13qbmlpf096l3bb65wn"))))
9253 (propagated-inputs
9254 `(("emacs-dash" ,emacs-dash)))
9255 (build-system emacs-build-system)
9256 (home-page "https://github.com/theodorewiles/org-mind-map")
9257 (synopsis "Create Graphviz directed graphs from Org files")
9258 (description
9259 "This package creates Graphviz directed graphs from Org files.")
9260 (license license:gpl3+))))
9261
9262(define-public emacs-npm-mode
9263 (package
9264 (name "emacs-npm-mode")
9265 (version "0.6.0")
9266 (source
9267 (origin
9268 (method url-fetch)
9269 (uri (string-append "https://github.com/mojochao/npm-mode/archive/"
9270 version ".tar.gz"))
9271 (file-name (string-append name "-" version ".tar.gz"))
9272 (sha256
9273 (base32
9274 "1kq1ww22dwf8c2i2b4z2ldbbmnihj65kb7n5vzvwkch9h4hxpqh5"))))
9275 (build-system emacs-build-system)
9276 (home-page "https://github.com/mojochao/npm-mode")
9277 (synopsis "Minor mode for working with @code{npm} projects")
9278 (description
9279 "@code{npm-mode} provides a minor mode to work with @code{npm} projects.")
9280 (license license:gpl3+)))
9281
9282(define-public emacs-seq
9283 (package
9284 (name "emacs-seq")
9285 (version "2.20")
9286 (source
9287 (origin
9288 (method url-fetch)
9289 (uri (string-append "http://elpa.gnu.org/packages/seq-" version ".tar"))
9290 (sha256
9291 (base32
9292 "0vrpx6nnyjb0gsypknzagimlhvcvi5y1rcdkpxyqr42415zr8d0n"))))
9293 (build-system emacs-build-system)
9294 (home-page "http://elpa.gnu.org/packages/seq.html")
9295 (synopsis "Sequence manipulation functions")
9296 (description "Sequence-manipulation functions that complement basic
9297functions provided by @file{subr.el}.")
9298 (license license:gpl3+)))
9299
9300(define-public emacs-itail
9301 (let ((commit "6e43c20da03be3b9c6ece93b7dc3495975ec1888")
9302 (revision "1"))
9303 (package
9304 (name "emacs-itail")
9305 (version (string-append "0.0.1" "-" revision "."
9306 (string-take commit 7)))
9307 (source
9308 (origin
9309 (method git-fetch)
9310 (uri (git-reference
9311 (url "https://github.com/re5et/itail.git")
9312 (commit commit)))
9313 (file-name (string-append name "-" version "-checkout"))
9314 (sha256
9315 (base32
9316 "044nzxh1hq41faxw3lix0wy78vfz304pjcaa5a11dqfz7q3gx5cv"))))
9317 (build-system emacs-build-system)
9318 (home-page "https://github.com/re5et/itail")
9319 (synopsis "Interactive @code{tail} Emacs mode")
9320 (description "@code{itail} provides interactive @code{tail} mode
9321that allows you to filter the tail with unix pipes and highlight the
9322contents of the tailed file. Works locally or on remote files using
9323tramp.")
9324 (license license:gpl3+))))
9325
9326(define-public emacs-loop
9327 (package
9328 (name "emacs-loop")
9329 (version "1.3")
9330 (source
9331 (origin
9332 (method url-fetch)
9333 (uri (string-append "https://github.com/Wilfred/loop.el/archive/"
9334 version ".tar.gz"))
9335 (file-name (string-append name "-" version ".tar.gz"))
9336 (sha256
9337 (base32
9338 "1z3rhh3zyjabz36410yz0lp4a0qwwj0387as662wvx3z9y54jia9"))))
9339 (build-system emacs-build-system)
9340 (home-page "https://github.com/Wilfred/loop.el")
9341 (synopsis "Imperative loop structures for Emacs")
9342 (description "Loop structures familiar to users of other languages. This
9343library adds a selection of popular loop structures as well as break and
9344continue.")
9345 (license license:gpl3+)))
9346
9347(define-public emacs-elisp-refs
9348 (package
9349 (name "emacs-elisp-refs")
9350 (version "1.3")
9351 (source
9352 (origin
9353 (method url-fetch)
9354 (uri (string-append "https://github.com/Wilfred/elisp-refs/archive/"
9355 version ".tar.gz"))
9356 (file-name (string-append name "-" version ".tar.gz"))
9357 (sha256
9358 (base32
9359 "02nzcn3v14n7mp7q32j5r4wdlpsw3zixzh6cf0cdyarfir6dly3p"))))
9360 (build-system emacs-build-system)
9361 (propagated-inputs
9362 `(("emacs-dash" ,emacs-dash)
9363 ("emacs-f" ,emacs-f)
9364 ("emacs-list-utils" ,emacs-list-utils)
9365 ("emacs-loop" ,emacs-loop)
9366 ("emacs-s" ,emacs-s)
9367 ("emacs-shut-up" ,emacs-shut-up)))
9368 (home-page "https://github.com/Wilfred/elisp-refs")
9369 (synopsis "Find callers of elisp functions or macros")
9370 (description "Find references to functions, macros or variables. Unlike a
9371dumb text search, @code{elisp-refs} actually parses the code, so it's never
9372confused by comments or @code{foo-bar} matching @code{foo}.")
9373 (license license:gpl3+)))
9374
9375(define-public emacs-crux
9376 (let ((commit "4f5c8fefd5a6aa52e128c4a0401cc86410d6ac8f")
9377 (revision "1"))
9378 (package
9379 (name "emacs-crux")
9380 (version (string-append "0.3.0" "-" revision "."
9381 (string-take commit 7)))
9382 (source
9383 (origin
9384 (method git-fetch)
9385 (uri (git-reference
9386 (url "https://github.com/bbatsov/crux.git")
9387 (commit commit)))
9388 (file-name (string-append name "-" version "-checkout"))
9389 (sha256
9390 (base32
9391 "1fdxvv25cs01sg6fmvmzxpzvs50i6v8n2jya60lbavxqqhi0sbxd"))))
9392 (build-system emacs-build-system)
9393 (home-page "https://github.com/bbatsov/crux")
9394 (synopsis "Collection of useful functions for Emacs")
9395 (description
9396 "@code{crux} provides a collection of useful functions for Emacs.")
9397 (license license:gpl3+))))
9398
9399(define-public emacs-edit-server
9400 (package
9401 (name "emacs-edit-server")
9402 (version "1.13")
9403 (source
9404 (origin
9405 (method url-fetch)
9406 (uri (string-append "https://github.com/stsquad/emacs_chrome/archive/"
9407 "v" version ".tar.gz"))
9408 (file-name (string-append name "-" version ".tar.gz"))
9409 (sha256
9410 (base32
9411 "1r92kqggslqasza718z4ka883mqfbnibdm43f0j9gaipk0msm2wf"))))
9412 (build-system emacs-build-system)
9413 (arguments
9414 `(#:phases
9415 (modify-phases %standard-phases
9416 (add-after 'unpack 'chdir-elisp
9417 ;; Elisp directory is not in root of the source.
9418 (lambda _
9419 (chdir "servers"))))))
9420 (home-page "https://github.com/stsquad/emacs_chrome")
9421 (synopsis "Server that responds to edit requests from Chromium")
9422 (description
9423 "This package provides an edit server to respond to requests from Emacs.")
9424 (license license:gpl3+)))
9425
9426(define-public emacs-m-buffer-el
9427 (package
9428 (name "emacs-m-buffer-el")
9429 (version "0.15")
9430 (source
9431 (origin
9432 (method url-fetch)
9433 (uri (string-append "https://github.com/phillord/m-buffer-el"
9434 "/archive/" "v" version ".tar.gz"))
9435 (file-name (string-append name "-" version ".tar.gz"))
9436 (sha256
9437 (base32
9438 "17vdcc8q37q9db98jyww1c0ivinmwfcw4l04zccfacalra63a214"))))
9439 (arguments
9440 `(#:phases
9441 (modify-phases %standard-phases
9442 (add-before 'install 'check
9443 (lambda* (#:key inputs #:allow-other-keys)
9444 (invoke "emacs" "--batch" "-L" "."
9445 "-l" "test/m-buffer-test.el"
9446 "-l" "test/m-buffer-at-test.el"
9447 "-f" "ert-run-tests-batch-and-exit"))))))
9448 (build-system emacs-build-system)
9449 (home-page "https://github.com/phillord/m-buffer-el")
9450 (synopsis "List oriented buffer operations for Emacs")
9451 (description "@code{m-buffer} provides a set of list-orientated functions
9452for operating over the contents of Emacs buffers.")
9453 (license license:gpl3+)))
9454
9455(define-public emacs-let-alist
9456 (package
9457 (name "emacs-let-alist")
9458 (version "1.0.5")
9459 (source
9460 (origin
9461 (method url-fetch)
9462 (uri (string-append
9463 "https://elpa.gnu.org/packages/let-alist-" version ".el"))
9464 (sha256
9465 (base32
9466 "0r7b9jni50la1m79kklml11syg8d2fmdlr83pv005sv1wh02jszw"))))
9467 (build-system emacs-build-system)
9468 (home-page "https://elpa.gnu.org/packages/let-alist.html")
9469 (synopsis "Easily let-bind values of an assoc-list by their names")
9470 (description "This package offers a single macro, @code{let-alist}. This
9471macro takes a first argument (whose value must be an alist) and a body.")
9472 (license license:gpl3+)))
9473
9474(define-public emacs-esup
9475 (let ((commit "a589005a9a888537deef94d6fe38a9b8790c97c7")
9476 (revision "1"))
9477 (package
9478 (name "emacs-esup")
9479 (version (string-append "0.6" "-" revision "."
9480 (string-take commit 7)))
9481 (source
9482 (origin
9483 (method git-fetch)
9484 (uri (git-reference
9485 (url "https://github.com/jschaf/esup.git")
9486 (commit commit)))
9487 (file-name (string-append name "-" version "-checkout"))
9488 (sha256
9489 (base32
9490 "04lxmd0h7mfjjl0qghrycgff0vcv950j1wqv0dbkr61jxp64n5fv"))))
9491 ;; TODO: Add tests
9492 (build-system emacs-build-system)
9493 (home-page "https://github.com/jschaf/esup")
9494 (synopsis "Emacs start up profiler")
9495 (description "Benchmark Emacs Startup time without ever leaving
9496your Emacs.")
9497 (license license:gpl2+))))
9498
9499(define-public emacs-sourcemap
9500 (package
9501 (name "emacs-sourcemap")
9502 (version "0.03")
9503 (source
9504 (origin
9505 (method url-fetch)
9506 (uri (string-append "https://github.com/syohex/emacs-sourcemap/archive/"
9507 version ".tar.gz"))
9508 (file-name (string-append name "-" version ".tar.gz"))
9509 (sha256
9510 (base32
9511 "0bmd5l3cx2iyl7vxn84xdhs80b07kpdpfwki28lh5d0kmm5qs6m6"))))
9512 (build-system emacs-build-system)
9513 (home-page "https://github.com/syohex/emacs-sourcemap")
9514 (synopsis "Sourcemap parser")
9515 (description "Sourcemap parser")
9516 (license license:gpl3+)))
9517
9518(define-public emacs-macrostep
9519 (let ((commit "424e3734a1ee526a1bd7b5c3cd1d3ef19d184267"))
9520 (package
9521 (name "emacs-macrostep")
9522 (version (git-version "0.9" "1" commit))
9523 (source (origin
9524 (method git-fetch)
9525 (uri (git-reference
9526 (url "https://github.com/joddie/macrostep.git")
9527 (commit commit)))
9528 (file-name (string-append name "-" version "-checkout"))
9529 (sha256
9530 (base32
9531 "1fm40mxdn289cyzgw992223dgrjmwxn4q8svyyxfaxjrpb38jhjz"))))
9532 (build-system emacs-build-system)
9533 (arguments
9534 '(#:phases
9535 (modify-phases %standard-phases
9536 (add-before 'check 'remove-test
9537 ;; Fails because of requirement ‘/bin/sh’.
9538 (lambda _
9539 (let ((file "macrostep-test.el"))
9540 (chmod file #o644)
9541 (emacs-batch-edit-file file
9542 `(progn (progn (goto-char (point-min))
9543 (re-search-forward
9544 "(ert-deftest macrostep-expand-c-macros")
9545 (beginning-of-line)
9546 (kill-sexp))
9547 (basic-save-buffer))))))
9548 (add-before 'install 'check
9549 (lambda _
9550 (invoke "emacs" "--batch" "-L" "."
9551 "-l" "macrostep-test.el"
9552 "-f" "ert-run-tests-batch-and-exit"))))))
9553 (home-page "https://github.com/joddie/macrostep")
9554 (synopsis "Interactive macro-expander for Emacs")
9555 (description "@code{macrostep} is an Emacs minor mode for interactively
9556stepping through the expansion of macros in Emacs Lisp source code. It lets
9557you see exactly what happens at each step of the expansion process by
9558pretty-printing the expanded forms inline in the source buffer, which is
9559temporarily read-only while macro expansions are visible. You can expand and
9560collapse macro forms one step at a time, and evaluate or instrument the
9561expansions for debugging with Edebug as normal (but see “Bugs and known
9562limitations”, below). Single-stepping through the expansion is particularly
9563useful for debugging macros that expand into another macro form. These can be
9564difficult to debug with Emacs’ built-in macroexpand, which continues expansion
9565until the top-level form is no longer a macro call.")
9566 (license license:gpl3+))))
9567
9568(define-public emacs-parent-mode
9569 (package
9570 (name "emacs-parent-mode")
9571 (version "2.3")
9572 (source
9573 (origin
9574 (method url-fetch)
9575 (uri (string-append "https://github.com/Fanael/parent-mode/archive/"
9576 version ".tar.gz"))
9577 (file-name (string-append name "-" version ".tar.gz"))
9578 (sha256
9579 (base32
9580 "0gxbl5s1w96v6v55b7aaansgw4sxhzfx9nrsvpk3pfhsibs6yqjd"))))
9581 (build-system emacs-build-system)
9582 (home-page "https://github.com/Fanael/parent-mode")
9583 (synopsis "Get major mode's parent modes")
9584 (description "Get major mode's parent modes")
9585 (license license:gpl3+)))
9586
9587(define-public emacs-lacarte
9588 (package
9589 (name "emacs-lacarte")
9590 (version "0.1")
9591 (source (origin
9592 (method url-fetch)
9593 (uri "https://www.emacswiki.org/emacs/download/lacarte.el")
9594 (sha256
9595 (base32
9596 "1sbmk37ljq5j7dsw5c37sbxvlfgdqswh7bi4dknyjzfxlq50f4am"))))
9597 (build-system emacs-build-system)
9598 (home-page "https://www.emacswiki.org/emacs/lacarte.el")
9599 (synopsis "Execute menu items as commands, with completion")
9600 (description "Execute menu items as commands, with completion.")
9601 (license license:gpl3)))
9602
9603(define-public emacs-company-lua
9604 (let ((commit "0be8122f3adf57ad27953bf4b03545d6298d3da4"))
9605 (package
9606 (name "emacs-company-lua")
9607 (version (git-version "0.1" "1" commit))
9608 (source
9609 (origin
9610 (method git-fetch)
9611 (uri (git-reference
9612 (url "https://github.com/ptrv/company-lua.git")
9613 (commit commit)))
9614 (file-name (git-file-name name version))
9615 (sha256
9616 (base32
9617 "1d9i165apgmwns7b2fd5wcpjpkah3dyj20v5sb8ynvz6qhhr5r9c"))))
9618 (build-system emacs-build-system)
9619 (propagated-inputs
9620 `(("emacs-company" ,emacs-company)
9621 ("emacs-s" ,emacs-s)
9622 ("emacs-f" ,emacs-f)
9623 ("emacs-lua-mode" ,emacs-lua-mode)))
9624 (home-page "https://github.com/ptrv/company-lua")
9625 (synopsis "Company backend for Lua")
9626 (description
9627 "This package provides Company backend for Lua programming language.")
9628 (license license:gpl3+))))
9629
9630(define-public emacs-beginend
9631 (package
9632 (name "emacs-beginend")
9633 (version "2.0.0")
9634 (source
9635 (origin
9636 (method url-fetch)
9637 (uri (string-append "https://github.com/DamienCassou/beginend/archive/"
9638 "v" version ".tar.gz"))
9639 (file-name (string-append name "-" version ".tar.gz"))
9640 (sha256
9641 (base32
9642 "0z4rbwffh9vxfvcrlvym4p73z7gf72q0b5iv33llbpcpbijknnrq"))))
9643 ;; TODO: Run tests.
9644 (build-system emacs-build-system)
9645 (inputs
9646 `(("emacs-undercover" ,emacs-undercover))) ; For tests.
9647 (home-page "https://github.com/DamienCassou/beginend")
9648 (synopsis "Redefine @code{M-<} and @code{M->} for Emacs modes")
9649 (description "@code{beginend} redefines @code{M-<} and @code{M->}
9650keybindings for Emacs modes so that point moves to meaningful
9651locations. Redefined keys are still accessible by pressing the same
9652key again.")
9653 (license license:gpl3+)))
9654
9655(define-public emacs-mbsync
9656 (let ((commit "42077e83ae2db778ce0f8e22f8357b40355526b3")
9657 (revision "1"))
9658 (package
9659 (name "emacs-mbsync")
9660 (version (string-append "0.0.1" "-" revision "."
9661 (string-take commit 7)))
9662 (source
9663 (origin
9664 (method git-fetch)
9665 (uri (git-reference
9666 (url "https://github.com/dimitri/mbsync-el.git")
9667 (commit commit)))
9668 (file-name (string-append name "-" version "-checkout"))
9669 (sha256
9670 (base32
9671 "0yj93y2mpxlir8x73znlg1slxlv4blm1vjv5h2w3j8lxg8bxvmn6"))))
9672 (build-system emacs-build-system)
9673 (home-page "https://github.com/dimitri/mbsync-el")
9674 (synopsis "Interface to mbsync for Emacs")
9675 (description "This package allows to call the @code{mbsync} from
9676within Emacs.")
9677 (license license:gpl3+))))
9678
9679(define-public emacs-ibuffer-projectile
9680 (let ((commit "c18ac540ee46cb759fc5df18747f6e8d23563011")
9681 (revision "1"))
9682 (package
9683 (name "emacs-ibuffer-projectile")
9684 (version (string-append "0.2" "-" revision "."
9685 (string-take commit 7)))
9686 (source
9687 (origin
9688 (method git-fetch)
9689 (uri (git-reference
9690 (url "https://github.com/purcell/ibuffer-projectile.git")
9691 (commit commit)))
9692 (file-name (string-append name "-" version "-checkout"))
9693 (sha256
9694 (base32
9695 "1nd26cwwdpnwj0g4w393rd59klpyr6wqrnyr6scmwb5d06bsm44n"))))
9696 (build-system emacs-build-system)
9697 (propagated-inputs
9698 `(("emacs-projectile" ,emacs-projectile)))
9699 (home-page "https://github.com/purcell/ibuffer-projectile")
9700 (synopsis "Group ibuffer's list by projectile root")
9701 (description "Adds functionality to Emacs @code{ibuffer} for
9702grouping buffers by their projectile root directory.")
9703 (license license:gpl3+))))
9704
9705(define-public emacs-helm-mode-manager
9706 (package
9707 (name "emacs-helm-mode-manager")
9708 (version "1.0.0")
9709 (source
9710 (origin
9711 (method url-fetch)
9712 (uri (string-append "https://github.com/istib/helm-mode-manager/"
9713 "archive/" version ".tar.gz"))
9714 (file-name (string-append name "-" version ".tar.gz"))
9715 (sha256
9716 (base32
9717 "0wllj321z16hgrx0ddwzk5wz4mnnx5am7w5nclqclfc5dfdn92wm"))))
9718 (build-system emacs-build-system)
9719 (propagated-inputs
9720 `(("emacs-helm" ,emacs-helm)))
9721 (home-page "https://github.com/istib/helm-mode-manager/")
9722 (synopsis "Switch and toggle Emacs major and minor modes using Helm")
9723 (description "This package provides a Helm interface for toggling Emacs
9724major or minor mode.
9725
9726@itemize
9727@item @code{helm-switch-major-mode} list of all major modes
9728@item @code{helm-enable-minor-mode} list of all inactive minor modes
9729@item @code{helm-disable-minor-mode} list of all ACTIVE minor modes
9730@end itemize\n
9731
9732Hitting @code{RET} enables the mode, @code{C-z} shows the mode
9733documentation.")
9734 (license license:gpl3+)))
9735
9736(define-public emacs-hy-mode
9737 (package
9738 (name "emacs-hy-mode")
9739 (version "1.0.3")
9740 (source
9741 (origin
9742 (method url-fetch)
9743 (uri (string-append "https://github.com/hylang/hy-mode/archive/"
9744 "v" version ".tar.gz"))
9745 (file-name (string-append name "-" version ".tar.gz"))
9746 (sha256
9747 (base32
9748 "0b4pvbr2hf77bq2vsyfsv653q0dab7qzq85wc7kdziw7687jdf2z"))))
9749 (build-system emacs-build-system)
9750 (propagated-inputs
9751 `(("emacs-dash" ,emacs-dash)
9752 ("emacs-s" ,emacs-s)))
9753 (home-page "https://github.com/hylang/hy-mode")
9754 (synopsis "Major mode for Hylang")
9755 (description "This package provides a major mode for Hylang.")
9756 (license license:gpl3+)))
9757
9758(define-public emacs-web-beautify
9759 (package
9760 (name "emacs-web-beautify")
9761 (version "0.3.2")
9762 (source
9763 (origin
9764 (method url-fetch)
9765 (uri (string-append "https://github.com/yasuyk/web-beautify/archive/"
9766 version ".tar.gz"))
9767 (file-name (string-append name "-" version ".tar.gz"))
9768 (sha256
9769 (base32
9770 "1j57hwid74id4swkx2g0iljfawx0k9c7qjrwqc0mv657x9p78hcs"))))
9771 (build-system emacs-build-system)
9772 (home-page "https://github.com/yasuyk/web-beautify")
9773 (synopsis "Format HTML, CSS and JavaScript, JSON")
9774 (description "This package provides an Emacs functions to format HTML,
9775CSS, JavaScript, JSON.")
9776 (license license:gpl3+)))
9777
9778(define-public emacs-helm-shell-history
9779 (let ((commit "110d3c35c52fe4b89b29e79ea4c8626bce7266a1"))
9780 (package
9781 (name "emacs-helm-shell-history")
9782 (version (git-version "0.1" "1" commit))
9783 (source
9784 (origin
9785 (method git-fetch)
9786 (uri (git-reference
9787 (url "https://github.com/yuutayamada/helm-shell-history.git")
9788 (commit commit)))
9789 (file-name (git-file-name name version))
9790 (sha256
9791 (base32
9792 "18fkjcz69g4dyaxhf9j8svr5x6dhsdnglddwisis8hdn504scpfj"))))
9793 (build-system emacs-build-system)
9794 (arguments
9795 '(#:phases
9796 (modify-phases %standard-phases
9797 (add-before 'check 'patch-helm-shell-history-file
9798 (lambda _
9799 (let ((file "helm-shell-history.el"))
9800 (chmod file #o644)
9801 (emacs-substitute-sexps file
9802 ("(defvar helm-shell-history-file"
9803 `(expand-file-name "~/.bash_history"))))
9804 #t)))))
9805 (propagated-inputs
9806 `(("emacs-helm" ,emacs-helm)))
9807 (home-page "https://github.com/yuutayamada/helm-shell-history")
9808 (synopsis "Find shell history with Emacs Helm")
9809 (description "This package provides an Emacs Helm interface to search
9810throw a shell history.")
9811 (license license:gpl3+))))
9812
9813(define-public emacs-discover-my-major
9814 (package
9815 (name "emacs-discover-my-major")
9816 (version "1.0")
9817 (source
9818 (origin
9819 (method url-fetch)
9820 (uri
9821 (string-append "https://github.com/steckerhalter/discover-my-major"
9822 "/archive/" version ".tar.gz"))
9823 (file-name (string-append name "-" version ".tar.gz"))
9824 (sha256
9825 (base32
9826 "0nah41f92rrl2l405kpqr6iaks11jyclgl4z7ilfymbr4ifmsiyl"))))
9827 (build-system emacs-build-system)
9828 (propagated-inputs
9829 `(("emacs-makey" ,emacs-makey)))
9830 (home-page "https://github.com/steckerhalter/discover-my-major")
9831 (synopsis "Discover key bindings for the current Emacs major mode")
9832 (description "This package provides allows to discover key bindings and
9833their meaning for the current Emacs major-mode.")
9834 (license license:gpl3+)))
9835
9836(define-public emacs-org-ref
9837 (let ((commit "8c9b5d7efb9f0c1ad5186b8203bdd017f4249129")
9838 (revision "1"))
9839 (package
9840 (name "emacs-org-ref")
9841 (version (string-append "1.1.1" "-" revision "."
9842 (string-take commit 7)))
9843 (source
9844 (origin
9845 (method git-fetch)
9846 (uri (git-reference
9847 (url "https://github.com/jkitchin/org-ref.git")
9848 (commit commit)))
9849 (file-name (string-append name "-" version "-checkout"))
9850 (sha256
9851 (base32
9852 "1rxz0bjdsayk0slv23i07d9xhj2m7s4hsc81wc2d1cs52dkr5zmz"))))
9853 (build-system emacs-build-system)
9854 (propagated-inputs
9855 `(("emacs-dash" ,emacs-dash)
9856 ("emacs-helm" ,emacs-helm)
9857 ("emacs-helm-bibtex" ,emacs-helm-bibtex)
9858 ("emacs-ivy" ,emacs-ivy)
9859 ("emacs-hydra" ,emacs-hydra)
9860 ("emacs-key-chord" ,emacs-key-chord)
9861 ("emacs-s" ,emacs-s)
9862 ("emacs-f" ,emacs-f)
9863 ("emacs-pdf-tools" ,emacs-pdf-tools)))
9864 (home-page "https://github.com/jkitchin/org-ref")
9865 (synopsis "Citations, cross-references and bibliographies in org-mode")
9866 (description
9867 "Lisp code to setup bibliography, cite, ref and label org-mode links.
9868Also sets up reftex and helm for org-mode citations. The links are
9869clickable and do things that are useful.
9870
9871The default setup uses helm-bibtex.
9872
9873You should really read org-ref.org in this package for details.")
9874 (license license:gpl3+))))
9875
9876(define-public emacs-org-reveal
9877 (package
9878 (name "emacs-org-reveal")
9879 ;; There are no proper tag, so we use the latest commit of the stable
9880 ;; branch, as does MELPA.
9881 (version "20161027.926")
9882 (source (origin
9883 (method git-fetch)
9884 (uri (git-reference
9885 (url "https://github.com/yjwen/org-reveal.git")
9886 (commit "001567cc12d50ba07612edd1718b86a12e8c2547")))
9887 (file-name (string-append name "-" version "-checkout"))
9888 (sha256
9889 (base32
9890 "18rma8smjrskbjyna076zhvx79zs5r5vinb537h8mw13pfxd6cm8"))))
9891 (build-system emacs-build-system)
9892 (home-page "https://github.com/yjwen/org-reveal")
9893 (synopsis "Org and Reveal.js powered HTML presentation tool")
9894 (description "Org-Reveal is a command@{org-mode} extension that allows to
9895create beautiful presentations (slides) with 3D effects from simple but
9896powerful Org contents.")
9897 (license license:gpl3+)))
9898
9899(define-public emacs-add-hooks
9900 (package
9901 (name "emacs-add-hooks")
9902 (version "3.1.1")
9903 (source (origin
9904 (method url-fetch)
9905 (uri (string-append
9906 "https://github.com/nickmccurdy/add-hooks/archive/"
9907 version ".tar.gz"))
9908 (file-name (string-append name "-" version ".tar.gz"))
9909 (sha256
9910 (base32
9911 "03a28gb3298g7pc2qji9hi44p4d99ljp5mpi9cmg42ldv8fl6549"))))
9912 (build-system emacs-build-system)
9913 (home-page "https://github.com/nickmccurdy/add-hooks/")
9914 (synopsis "Emacs function for setting multiple hooks")
9915 (description "This package provides a @code{add-hooks} function tidies up
9916duplicate hook and function names further into a single declarative call.")
9917 (license license:gpl3+)))
9918
9919(define-public emacs-fancy-narrow
9920 (package
9921 (name "emacs-fancy-narrow")
9922 (version "0.9.5")
9923 (source
9924 (origin
9925 (method url-fetch)
9926 (uri (string-append "https://github.com/Malabarba/fancy-narrow/archive/"
9927 version ".tar.gz"))
9928 (file-name (string-append name "-" version ".tar.gz"))
9929 (sha256
9930 (base32
9931 "0rf2rnzg82pdqch041yyx3f9ddixffkk9s2ydzg8hwy66sg3385n"))))
9932 (build-system emacs-build-system)
9933 (home-page "https://github.com/Malabarba/fancy-narrow/releases")
9934 (synopsis "Imitate @code{narrow-to-region} with more eye candy")
9935 (description
9936 "Unlike @code{narrow-to-region}, which completely hides text outside
9937the narrowed region, this package simply de-emphasizes the text, makes it
9938read-only, and makes it unreachable. This leads to a much more natural
9939feeling where the region stays static (instead of being brutally moved to a
9940blank slate) and is clearly highlighted with respect to the rest of the
9941buffer.")
9942 (license license:gpl2+)))
9943
9944(define-public emacs-know-your-http-well
9945 (package
9946 (name "emacs-know-your-http-well")
9947 (version "0.5.0")
9948 (source
9949 (origin
9950 (method url-fetch)
9951 (uri (string-append
9952 "https://github.com/for-GET/know-your-http-well/archive/"
9953 "v" version ".tar.gz"))
9954 (file-name (string-append name "-" version ".tar.gz"))
9955 (sha256
9956 (base32
9957 "1y3kwz88awcgwaivlswq0q4g2i02762r23lpwg61bfqy5lrjjqnj"))))
9958 (arguments
9959 `(#:phases
9960 (modify-phases %standard-phases
9961 (add-after 'unpack 'install-json-files
9962 (lambda* (#:key outputs #:allow-other-keys)
9963 (for-each (lambda (directory)
9964 (copy-recursively directory
9965 (string-append
9966 (assoc-ref outputs "out")
9967 directory)))
9968 '("js" "json"))))
9969 (add-after 'unpack 'chdir-elisp
9970 ;; Elisp directory is not in root of the source.
9971 (lambda _
9972 (chdir "emacs"))))))
9973 (build-system emacs-build-system)
9974 (home-page "https://github.com/for-GET/know-your-http-well")
9975 (synopsis "Meaning of HTTP headers codes")
9976 (description "Meaning of HTTP headers codes.")
9977 (license license:gpl3+)))
9978
9979(define-public emacs-navi-mode
9980 (let ((commit "c1d38e8237f4e14af020a0b7d4f118ea198ab674"))
9981 (package
9982 (name "emacs-navi-mode")
9983 (version (git-version "2.0" "1" commit))
9984 (source
9985 (origin
9986 (method git-fetch)
9987 (uri (git-reference
9988 (url "https://github.com/alphapapa/navi.git")
9989 (commit commit)))
9990 (file-name (git-file-name name version))
9991 (sha256
9992 (base32
9993 "0jj5spk14hgb7zb1cd2n8whcw4k1kd5zb6llwj96v178yaws7l8k"))))
9994 (build-system emacs-build-system)
9995 (propagated-inputs
9996 `(("emacs-outshine" ,emacs-outshine)
9997 ("emacs-outorg" ,emacs-outorg)))
9998 (home-page "https://github.com/alphapapa/navi")
9999 (synopsis "Emacs major-mode for easy buffer-navigation")
10000 (description
10001 "This package provides an Emacs major-mode for easy buffer-navigation")
10002 (license license:gpl3+))))
10003
10004(define-public emacs-download-region
10005 (let ((commit "eb9e557529a73b4cfc8281c70dd0d95db333fffa")
10006 (revision "1"))
10007 (package
10008 (name "emacs-download-region")
10009 (version (string-append "0.0.1" "-" revision "."
10010 (string-take commit 7)))
10011 (source
10012 (origin
10013 (method git-fetch)
10014 (uri (git-reference
10015 (url "https://github.com/zk-phi/download-region.git")
10016 (commit commit)))
10017 (file-name (string-append name "-" version "-checkout"))
10018 (sha256
10019 (base32
10020 "0v52djg39b6k2snizd9x0qc009ws5y0ywqsfwhqgcbs5ymzh7dsc"))))
10021 (build-system emacs-build-system)
10022 (home-page "https://github.com/zk-phi/download-region")
10023 (synopsis "In buffer download manager for Emacs")
10024 (description "@code{download-region} provides in buffer
10025downloading manager for Emacs.")
10026 (license license:gpl3+))))
10027
10028(define-public emacs-helpful
10029 (package
10030 (name "emacs-helpful")
10031 (version "0.15")
10032 (source (origin
10033 (method url-fetch)
10034 (uri (string-append
10035 "https://github.com/Wilfred/helpful/archive/"
10036 version ".tar.gz"))
10037 (file-name (string-append name "-" version ".tar.gz"))
10038 (sha256
10039 (base32
10040 "1xmvhphzb4hbg647dz4lafy6hd19b7bk3lxni6irqrzdsrclhzn6"))))
10041 (build-system emacs-build-system)
10042 (propagated-inputs
10043 `(("emacs-elisp-refs" ,emacs-elisp-refs)))
10044 (home-page "https://github.com/Wilfred/helpful")
10045 (synopsis "More contextual information in Emacs help")
10046 (description "@code{helpful} is an alternative to the built-in Emacs help
10047that provides much more contextual information.
10048
10049@itemize
10050@item Show the source code for interactively defined functions (unlike the
10051built-in Help).
10052@item Fall back to the raw sexp if no source is available.
10053@item Show where a function is being called.
10054@item Docstrings will Highlight the summary (the first sentence), include
10055cross-references, hide superfluous puncuation.
10056@item Show you the properties that have been applied to the current
10057symbol. This provides visibility of features like edebug or byte-code
10058optimisation.
10059@item Provide a separate @code{helpful-command} function to view interactive
10060functions.
10061@item Display any keybindings that apply to interactive functions.
10062@item Trace, disassemble functions from inside Helpful. This is discoverable
10063and doesn't require memorisation of commands.
10064@end itemize\n")
10065 (license license:gpl3+)))
10066
10067(define-public emacs-logview
10068 (package
10069 (name "emacs-logview")
10070 (version "0.9")
10071 (source (origin
10072 (method url-fetch)
10073 (uri (string-append
10074 "https://github.com/doublep/logview/archive/"
10075 version ".tar.gz"))
10076 (file-name (string-append name "-" version ".tar.gz"))
10077 (sha256
10078 (base32
10079 "1vd11ppm46ldqsiwhqgw91p34gbjh1y82r9mxcn9r2gj65nvhxcp"))))
10080 (propagated-inputs
10081 `(("emacs-datetime" ,emacs-datetime)))
10082 (build-system emacs-build-system)
10083 (home-page "https://github.com/doublep/logview/")
10084 (synopsis "Emacs mode for viewing log files")
10085 (description "@code{logview} provides an Emacs mode to view log files.")
10086 (license license:gpl3+)))
10087
10088(define-public emacs-suggest
10089 (package
10090 (name "emacs-suggest")
10091 (version "0.4")
10092 (source
10093 (origin
10094 (method url-fetch)
10095 (uri (string-append "https://github.com/Wilfred/suggest.el/archive/"
10096 version ".tar.gz"))
10097 (file-name (string-append name "-" version ".tar.gz"))
10098 (sha256
10099 (base32
10100 "1760fm3j19w8xxcawq6s859h86q1rdg69pg9yz48n76kwfk3vlgp"))))
10101 (build-system emacs-build-system)
10102 (propagated-inputs
10103 `(("emacs-loop" ,emacs-loop)
10104 ("emacs-dash" ,emacs-dash)
10105 ("emacs-s" ,emacs-s)
10106 ("emacs-f" ,emacs-f)))
10107 (home-page "https://github.com/Wilfred/suggest.el")
10108 (synopsis "Suggest Elisp functions that give the output requested")
10109 (description "Suggest.el will find functions that give the output
10110requested. It's a great way of exploring list, string and arithmetic
10111functions.")
10112 (license license:gpl3+)))
10113
10114(define-public emacs-benchmark-init
10115 (package
10116 (name "emacs-benchmark-init")
10117 (version "1.0")
10118 (source (origin
10119 (method url-fetch)
10120 (uri (string-append
10121 "https://github.com/dholm/benchmark-init-el/archive/"
10122 version ".tar.gz"))
10123 (file-name (string-append name "-" version ".tar.gz"))
10124 (sha256
10125 (base32
10126 "0szyqr4nncwz4vd5gww1vz31kf9r2lx25p4d0d09pm35974x53kz"))))
10127 (build-system emacs-build-system)
10128 (home-page "https://github.com/dholm/benchmark-init-el")
10129 (synopsis "Benchmark Emacs @code{require} and @code{load} calls")
10130 (description "@code{benchmark-init} provides a way to keep track of where
10131time is being spent during Emacs startup in order to optimize startup time.")
10132 (license license:gpl3+)))
10133
10134(define-public emacs-emms-player-simple-mpv
10135 ;; A new mpv backend is included in Emms from 5.0.
10136 (deprecated-package "emacs-emms-player-simple-mpv" emacs-emms))
10137
10138(define-public emacs-magit-org-todos-el
10139 (let ((commit "df206287737b9671f2e36ae7b1474ebbe9940d2a"))
10140 (package
10141 (name "emacs-magit-org-todos-el")
10142 (version (git-version "0.1.1" "1" commit))
10143 (source
10144 (origin
10145 (method git-fetch)
10146 (uri (git-reference
10147 (url "https://github.com/danielma/magit-org-todos.el.git")
10148 (commit commit)))
10149 (file-name (git-file-name name version))
10150 (sha256
10151 (base32
10152 "0kdp7k7jnnrkhsg0xh1c3h7iz0vgi120gf5xwl1hxy61avivnxrn"))))
10153 (propagated-inputs
10154 `(("magit" ,emacs-magit)))
10155 (build-system emacs-build-system)
10156 (home-page "https://github.com/danielma/magit-org-todos.el")
10157 (synopsis "Get todo.org into Emacs Magit status")
10158 (description "This package allows you to get @file{todo.org} into your
10159magit status.
10160
10161If you have a @file{todo.org} file with @code{TODO} items in the root of your
10162repository, @code{magit-org-todos} will create a section in your Magit status
10163buffer with each of your todos.")
10164 (license license:gpl3+))))
10165
10166(define-public emacs-f3
10167 (package
10168 (name "emacs-f3")
10169 (version "0.1")
10170 (source
10171 (origin
10172 (method url-fetch)
10173 (uri (string-append "https://github.com/cosmicexplorer/f3/archive/"
10174 version ".tar.gz"))
10175 (file-name (string-append name "-" version ".tar.gz"))
10176 (sha256
10177 (base32
10178 "06b8i1jvklm5k3k90n65f197l1miq1xlxqkqpbppw4h3rhl4y98h"))))
10179 (build-system emacs-build-system)
10180 (propagated-inputs
10181 `(("emacs-helm" ,emacs-helm)))
10182 (home-page "https://github.com/cosmicexplorer/f3")
10183 (synopsis "Fantastic File Finder for Emacs")
10184 (description
10185 "The Fantastic File Finder for Emacs. Find files fast, using helm.")
10186 (license license:gpl3+)))
10187
10188(define-public emacs-lice-el
10189 (let ((commit "4339929927c62bd636f89bb39ea999d18d269250"))
10190 (package
10191 (name "emacs-lice-el")
10192 (version (git-version "0.2" "1" commit))
10193 (source (origin
10194 (method git-fetch)
10195 (uri (git-reference
10196 (url "https://github.com/buzztaiki/lice-el.git")
10197 (commit commit)))
10198 (file-name (git-file-name name version))
10199 (sha256
10200 (base32
10201 "0879z761b7gajkhq176ps745xpdrivch349crransv8fnsc759yb"))))
10202 (build-system emacs-build-system)
10203 (home-page "https://github.com/buzztaiki/lice-el")
10204 (synopsis "License and header template for Emacs")
10205 (description "@code{lice.el} provides following features:
10206
10207@itemize
10208@item License template management.
10209@item File header insertion.
10210@end itemize\n")
10211 (license license:gpl3+))))
10212
10213(define-public emacs-academic-phrases
10214 (let ((commit "0823ed8c24b26c32f909b896a469833ec4d7b656"))
10215 (package
10216 (name "emacs-academic-phrases")
10217 (version (git-version "0.1" "1" commit))
10218 (source
10219 (origin
10220 (method git-fetch)
10221 (uri (git-reference
10222 (url "https://github.com/nashamri/academic-phrases.git")
10223 (commit commit)))
10224 (file-name (string-append name "-" version "-checkout"))
10225 (sha256
10226 (base32
10227 "0qfzsq8jh05w4zkr0cvq3i1hdn97bq344vcqjg46sib26x3wpz6r"))))
10228 (build-system emacs-build-system)
10229 (propagated-inputs
10230 `(("emacs-dash" ,emacs-dash)
10231 ("emacs-s" ,emacs-s)
10232 ("emacs-ht" ,emacs-ht)))
10233 (home-page "https://github.com/nashamri/academic-phrases")
10234 (synopsis "Bypass that mental block when writing your papers")
10235 (description
10236 "When writing your academic paper, you might get stuck trying to find
10237the right phrase that captures your intention. This package tries to
10238alleviate that problem by presenting you with a list of phrases organized by
10239the topic or by the paper section that you are writing. This package has
10240around 600 phrases so far.
10241
10242Using this package is easy, just call @code{academic-phrases} to get a list of
10243phrases organized by topic, or call @code{academic-phrases-by-section} to
10244browse the phrases by the paper section and fill-in the blanks if required.")
10245 (license license:gpl3+))))
10246
10247(define-public emacs-auto-yasnippet
10248 (let ((commit "d1ccfea87312c6dd8cf8501ab5b71b1d3d44d95b"))
10249 (package
10250 (name "emacs-auto-yasnippet")
10251 (version (git-version "0.3.0" "1" commit))
10252 (source (origin
10253 (method git-fetch)
10254 (uri (git-reference
10255 (url "https://github.com/abo-abo/auto-yasnippet.git")
10256 (commit commit)))
10257 (file-name (string-append name "-" version "-checkout"))
10258 (sha256
10259 (base32
10260 "1i8k2qiyzd5rq0zplk4xb5nfa5mp0ibxbzwqj6c7877waq7244xk"))))
10261 (build-system emacs-build-system)
10262 (arguments
10263 '(#:phases
10264 (modify-phases %standard-phases
10265 (add-before 'install 'check
10266 (lambda _
10267 (invoke "emacs" "--batch"
10268 "-l" "auto-yasnippet.el"
10269 "-l" "auto-yasnippet-test.el"
10270 "-f" "ert-run-tests-batch-and-exit"))))))
10271 (propagated-inputs
10272 `(("emacs-yasnippet" ,emacs-yasnippet)))
10273 (home-page "https://github.com/abo-abo/auto-yasnippet/")
10274 (synopsis "Quickly create disposable yasnippets")
10275 (description "This package provides a hybrid of keyboard macros and
10276yasnippet. You create the snippet on the go, usually to be used just in the
10277one place. It's fast, because you're not leaving the current buffer, and all
10278you do is enter the code you'd enter anyway, just placing ~ where you'd like
10279yasnippet fields and mirrors to be.")
10280 (license license:gpl3+))))
10281
10282(define-public emacs-highlight-numbers
10283 (package
10284 (name "emacs-highlight-numbers")
10285 (version "0.2.3")
10286 (source
10287 (origin
10288 (method url-fetch)
10289 (uri (string-append
10290 "https://github.com/Fanael/highlight-numbers/archive/"
10291 version ".tar.gz"))
10292 (file-name (string-append name "-" version ".tar.gz"))
10293 (sha256
10294 (base32
10295 "030v5p11d4n0581ncv499l1fqrmfziy756q6378x2bv22ixghqqp"))))
10296 (build-system emacs-build-system)
10297 (propagated-inputs
10298 `(("emacs-parent-mode" ,emacs-parent-mode)))
10299 (home-page "https://github.com/Fanael/highlight-numbers")
10300 (synopsis "Highlight numbers in source code")
10301 (description "@code{highlight-numbers-mode} provides a minor mode for
10302syntax highlighting of numeric literals in source code.
10303
10304It s customizable: it's easy to add or redefine what exactly consitutes a
10305\"number\" in given major mode. See @code{highlight-numbers-modelist}.")
10306 (license license:gpl3+)))
10307
10308(define-public emacs-darkroom
10309 (package
10310 (name "emacs-darkroom")
10311 (version "0.1")
10312 (source (origin
10313 (method url-fetch)
10314 (uri (string-append "https://elpa.gnu.org/packages/darkroom-"
10315 version ".el"))
10316 (sha256
10317 (base32
10318 "0fif8fm1h7x7g16949shfnaik5f5488clsvkf8bi5izpqp3vi6ak"))))
10319 (build-system emacs-build-system)
10320 (home-page "https://elpa.gnu.org/packages/darkroom.html")
10321 (synopsis "Remove visual distractions and focus on writing")
10322 (description "@code{darkroom-mode} makes visual distractions disappear.
10323The mode-line is temporarily elided, text is enlarged and margins are adjusted
10324so that it's centered on the window.
10325
10326@code{darkroom-tentative-mode} is similar, but it doesn't immediately turn-on
10327@code{darkroom-mode}, unless the current buffer lives in the sole window of
10328the Emacs frame (i.e. all other windows are deleted). Whenever the frame is
10329split to display more windows and more buffers, the buffer exits
10330@code{darkroom-mode}. Whenever they are deleted, the buffer re-enters
10331@code{darkroom-mode}.")
10332 (license license:gpl3+)))
10333
10334(define-public emacs-rsw-elisp
10335 (package
10336 (name "emacs-rsw-elisp")
10337 (version "1.0.5")
10338 (source (origin
10339 (method url-fetch)
10340 (uri (string-append "https://github.com/rswgnu/rsw-elisp"
10341 "/archive/" version ".tar.gz"))
10342 (file-name (string-append name "-" version ".tar.gz"))
10343 (sha256
10344 (base32
10345 "1jnn7xfwl3wxc87v44ccsf1wwp80par3xgcvfb1icd6zchjmlcps"))))
10346 (build-system emacs-build-system)
10347 (home-page "https://github.com/rswgnu/rsw-elisp")
10348 (synopsis "Improved expressions that interactively evaluate Emacs Lisp")
10349 (description "This package improves and replaces the GNU Emacs commands
10350that interactively evaluate Emacs Lisp expressions. The new commands replace
10351standard key bindings and are all prefixed with @code{rsw-elisp-}. They work
10352the same way as the old commands when called non-interactively; only the
10353interactive behavior should be different.")
10354 (license license:gpl3+)))
10355
10356(define-public emacs-default-text-scale
10357 (let ((commit "968e985e219235f3e744d6d967e592acbaf6e0a8")
10358 (revision "1"))
10359 (package
10360 (name "emacs-default-text-scale")
10361 (version (string-append "0.1" "-" revision "."
10362 (string-take commit 7)))
10363 (source (origin
10364 (method git-fetch)
10365 (uri (git-reference
10366 (url "https://github.com/purcell/default-text-scale")
10367 (commit commit)))
10368 (file-name (string-append name "-" version "-checkout"))
10369 (sha256
10370 (base32
10371 "0zds01c3q5yny6ab1fxfkzzgn1kgl3q23lxxap905f4qd70v922h"))))
10372 (build-system emacs-build-system)
10373 (home-page "https://github.com/purcell/default-text-scale")
10374 (synopsis "Adjust the font size in all Emacs frames")
10375 (description "This package provides commands for increasing or
10376decreasing the default font size in all GUI Emacs frames.")
10377 (license license:gpl3+))))
10378
10379(define-public emacs-visual-regexp
10380 (package
10381 (name "emacs-visual-regexp")
10382 (version "1.1.1")
10383 (source
10384 (origin
10385 (method url-fetch)
10386 (uri (string-append "https://github.com/benma/visual-regexp.el/archive/"
10387 "v" version ".tar.gz"))
10388 (file-name (string-append name "-" version ".tar.gz"))
10389 (sha256
10390 (base32
10391 "1czmhvcivlcdyz7rfm0vd4a3xsgmy4qbvbl6yjxc217wrxqflr92"))))
10392 (build-system emacs-build-system)
10393 (home-page "https://github.com/benma/visual-regexp.el/")
10394 (synopsis "Regexp command with interactive visual feedback")
10395 (description "This package provides an Emacs regexp command with
10396interactive visual feedback.")
10397 (license license:gpl3+)))
10398
10399(define-public emacs-faceup
10400 (let ((commit "6c92dad56a133e14e7b27831e1bcf9b3a71ff154")
10401 (revision "1"))
10402 (package
10403 (name "emacs-faceup")
10404 (version (string-append "0.0.1" "-" revision "."
10405 (string-take commit 7)))
10406 (source
10407 (origin
10408 (method git-fetch)
10409 (uri (git-reference
10410 (url "https://github.com/Lindydancer/faceup.git")
10411 (commit commit)))
10412 (file-name (string-append name "-" version "-checkout"))
10413 (sha256
10414 (base32
10415 "1yzmy7flrhrh0i10bdszx8idx6r8h6czm4vm4q0z6fp5fw94zwrx"))))
10416 (build-system emacs-build-system)
10417 (home-page "https://github.com/Lindydancer/faceup")
10418 (synopsis "Markup language for faces and font-lock regression testing")
10419 (description "Emacs is capable of highlighting buffers based on
10420language-specific @code{font-lock} rules. This package makes it possible to
10421perform regression test for packages that provide font-lock rules.")
10422 (license license:gpl3+))))
10423
10424(define-public emacs-racket-mode
10425 (let ((commit "b977873e6128f8399432dcd60cc39f6a6f803d9c")
10426 (revision "2"))
10427 (package
10428 (name "emacs-racket-mode")
10429 (version (string-append "0.0.2" "-" revision "."
10430 (string-take commit 7)))
10431 (source
10432 (origin
10433 (method git-fetch)
10434 (uri (git-reference
10435 (url "https://github.com/greghendershott/racket-mode")
10436 (commit commit)))
10437 (file-name (string-append name "-" version "-checkout"))
10438 (sha256
10439 (base32
10440 "0vp4bbbplqvmnhjpl6ajrlydmrhqzil56cfbs18m5c5fddx0zlh7"))))
10441 (build-system emacs-build-system)
10442 (arguments
10443 `(#:include '("\\.el$" "\\.rkt$")))
10444 (propagated-inputs
10445 `(("emacs-faceup" ,emacs-faceup)
10446 ("emacs-s" ,emacs-s)))
10447 (home-page "https://github.com/greghendershott/racket-mode")
10448 (synopsis "Major mode for Racket language")
10449 (description "@code{racket-mode} provides:
10450
10451@itemize
10452@item Focus on Racket (not various Schemes).
10453@item Follow DrRacket concepts where applicable.
10454@item Thorough font-lock and indent.
10455@end itemize\n")
10456 (license license:gpl3+))))
10457
10458(define-public emacs-grep-context
10459 (let ((commit "a17c57e66687a54e195e08afe776bdd60cb6c0a7"))
10460 (package
10461 (name "emacs-grep-context")
10462 (version (git-version "0.1" "1" commit))
10463 (source
10464 (origin
10465 (method git-fetch)
10466 (uri (git-reference
10467 (url "https://github.com/mkcms/grep-context.git")
10468 (commit commit)))
10469 (file-name (string-append name "-" version "-checkout"))
10470 (sha256
10471 (base32
10472 "1nqfa6kjzjshww4hnwg1c0vcr90bdjihy3kmixq3c3jkvxg99b62"))))
10473 (build-system emacs-build-system)
10474 (propagated-inputs
10475 `(("emacs-dash" ,emacs-dash)))
10476 (home-page "https://github.com/nashamri/academic-phrases")
10477 (synopsis "Increase context in compilation and grep buffers")
10478 (description
10479 "This package provides an Emacs package for more context in
10480compilation/grep buffers. Works with @code{wgrep}, @code{ack}, @code{ag},
10481@code{ivy}.")
10482 (license license:gpl3+))))
10483
10484(define-public emacs-helm-firefox
10485 (let ((commit "0ad34b7b5abc485a86cae6920c14de861cbeb085")
10486 (revision "1"))
10487 (package
10488 (name "emacs-helm-firefox")
10489 (version (string-append "0.0.1" "-" revision "."
10490 (string-take commit 7)))
10491 (source
10492 (origin
10493 (method git-fetch)
10494 (uri (git-reference
10495 (url "https://github.com/emacs-helm/helm-firefox.git")
10496 (commit commit)))
10497 (file-name (string-append name "-" version "-checkout"))
10498 (sha256
10499 (base32
10500 "08mjsi2f9s29fkk35cj1rrparjnkm836qmbfdwdz7y51f9varjbs"))))
10501 (propagated-inputs
10502 `(("emacs-helm" ,emacs-helm)))
10503 (build-system emacs-build-system)
10504 (home-page "https://github.com/emacs-helm/helm-firefox")
10505 (synopsis "Display firefox bookmarks with Emacs Helm interface")
10506 (description "Display firefox bookmarks with Emacs Helm interface")
10507 (license license:gpl3+))))
10508
10509(define-public emacs-interactive-align
10510 (package
10511 (name "emacs-interactive-align")
10512 (version "0.1.0")
10513 (source
10514 (origin
10515 (method url-fetch)
10516 (uri (string-append "https://github.com/mkcms/interactive-align/"
10517 "archive/" "v" version ".tar.gz"))
10518 (file-name (string-append name "-" version ".tar.gz"))
10519 (sha256
10520 (base32
10521 "0sibpgb4lp6yy3pziak8f3hz4b28yj0dqy2nzh51z3d0b63h528m"))))
10522 (build-system emacs-build-system)
10523 (home-page "https://github.com/mkcms/interactive-align/")
10524 (synopsis "Interactive align-regexp command in Emacs")
10525 (description "Interactive align-regexp command in Emacs")
10526 (license license:gpl3+)))
10527
10528(define-public emacs-shift-number
10529 (package
10530 (name "emacs-shift-number")
10531 (version "0.1")
10532 (source
10533 (origin
10534 (method url-fetch)
10535 (uri (string-append "https://github.com/alezost/shift-number.el"
10536 "/archive/" "v" version ".tar.gz"))
10537 (file-name (string-append name "-" version ".tar.gz"))
10538 (sha256
10539 (base32
10540 "1g79m0hqn9jgpm565vvh8pdfzndc4vw7xisnh5qysj55qfg8cb1x"))))
10541 (build-system emacs-build-system)
10542 (home-page "https://github.com/alezost/shift-number.el")
10543 (synopsis "Increase or decrease the number at point")
10544 (description "@code{emacs-shift-number} provides commands
10545@code{shift-number-up} to increase and @code{shift-number-down} to
10546decrease the number at point.")
10547 (license license:gpl3+)))
10548
10549(define-public emacs-highlight-defined
10550 (package
10551 (name "emacs-highlight-defined")
10552 (version "0.1.5")
10553 (source
10554 (origin
10555 (method url-fetch)
10556 (uri (string-append
10557 "https://github.com/Fanael/highlight-defined/archive/"
10558 version ".tar.gz"))
10559 (file-name (string-append name "-" version ".tar.gz"))
10560 (sha256
10561 (base32
10562 "1ryd66989b5byqdw8jmjrjf0c78iiz72wibld750skcnj5h5h506"))))
10563 (build-system emacs-build-system)
10564 (home-page "https://github.com/Fanael/highlight-defined")
10565 (synopsis "Syntax highlighting of known Elisp symbols")
10566 (description "Minor mode providing syntax highlighting of known Emacs Lisp
10567symbols. Currently the code distinguishes Lisp functions, built-in functions,
10568macros, faces and variables. To enable call @code{highlight-defined-mode}. ")
10569 (license license:gpl3+)))
10570
10571(define-public emacs-parinfer-mode
10572 (package
10573 (name "emacs-parinfer-mode")
10574 (version "0.4.10")
10575 (source
10576 (origin
10577 (method url-fetch)
10578 (uri (string-append "https://github.com/DogLooksGood/parinfer-mode/archive/"
10579 "v" version ".tar.gz"))
10580 (file-name (string-append name "-" version ".tar.gz"))
10581 (sha256
10582 (base32
10583 "06ba9qi59sm9ih9m38fbr8kj4qkvrm58n0c0ngfjz60gnr9x9pcv"))))
10584 (propagated-inputs
10585 `(("emacs-dash" ,emacs-dash)
10586 ("emacs-rainbow-delimiters" ,emacs-rainbow-delimiters)
10587 ("emacs-company" ,emacs-company)))
10588 (build-system emacs-build-system)
10589 (home-page "https://github.com/DogLooksGood/parinfer-mode/")
10590 (synopsis "Lisp structure editing mode")
10591 (description "@code{parinfer-mode} is a proof-of-concept editor
10592mode for Lisp programming languages. It will infer some changes to
10593keep Parens and Indentation inline with one another.")
10594 (license license:gpl3+)))
10595
10596(define-public emacs-helm-eww
10597 (let ((commit "9d36acc433bcf689598b1b4d7d47c9aeb84d6b44"))
10598 (package
10599 (name "emacs-helm-eww")
10600 (version (git-version "0.1" "3" commit))
10601 (source (origin
10602 (method git-fetch)
10603 (uri (git-reference
10604 (url "https://github.com/emacs-helm/helm-eww.git")
10605 (commit commit)))
10606 (file-name (string-append name "-" version "-checkout"))
10607 (sha256
10608 (base32
10609 "06gnf84gx6qbhcw1h5jhjnvcdxkdpv0npm53x3pgqybbll5rn5dy"))))
10610 (propagated-inputs
10611 `(("emacs-helm" ,emacs-helm)))
10612 (build-system emacs-build-system)
10613 (home-page "https://github.com/emacs-helm/helm-eww/")
10614 (synopsis "Helm interface to EWW")
10615 (description "This package provides a Helm interface for EWW buffers,
10616bookmarks and history.")
10617 (license license:gpl3+))))
10618
10619(define-public emacs-stumpwm-mode
10620 (let ((commit "8fbe071d2c6c040794060a354eb377218dc10b35")
10621 (revision "1"))
10622 (package
10623 (name "emacs-stumpwm-mode")
10624 (version (string-append "0.0.1-" revision "."
10625 (string-take commit 7)))
10626 (source (origin
10627 (method git-fetch)
10628 (uri (git-reference
10629 (url "https://github.com/stumpwm/stumpwm-contrib.git")
10630 (commit commit)))
10631 (file-name (string-append name "-" version "-checkout"))
10632 (sha256
10633 (base32
10634 "1dfwsvz1c8w6j4jp0kzaz78ml3f5dp0a5pvf090kwpbpg176r7iq"))))
10635 (build-system emacs-build-system)
10636 (arguments
10637 `(#:phases
10638 (modify-phases %standard-phases
10639 (add-after 'unpack 'chdir-elisp
10640 ;; Elisp directory is not in root of the source.
10641 (lambda _
10642 (chdir "util/swm-emacs"))))))
10643 (home-page "https://github.com/stumpwm/stumpwm-contrib")
10644 (synopsis "Emacs minor-mode for Stumpwm")
10645 (description "Emacs minor-mode for Stumpwm")
10646 (license license:gpl3+))))
10647
10648(define-public emacs-irfc
10649 (package
10650 (name "emacs-irfc")
10651 (version "20130824.507")
10652 (source
10653 (origin
10654 (method url-fetch)
10655 (uri "https://www.emacswiki.org/emacs/download/irfc.el")
10656 (file-name (string-append "irfc-" version ".el"))
10657 (sha256
10658 (base32
10659 "197ybqwbj8qjh2p9pkf5mvqnrkpcgmv8c5s2gvl6msyrabk0mnca"))))
10660 (build-system emacs-build-system)
10661 (home-page "https://www.emacswiki.org/emacs/download/irfc.el")
10662 (synopsis "Interface for IETF RFC document")
10663 (description
10664 "This package provides an Emacs interface for IETF RFC document.")
10665 (license license:gpl3+)))
10666
10667(define-public emacs-ido-vertical-mode
10668 (package
10669 (name "emacs-ido-vertical-mode")
10670 (version "0.1.6")
10671 (source
10672 (origin
10673 (method url-fetch)
10674 (uri (string-append
10675 "https://github.com/creichert/ido-vertical-mode.el/archive/"
10676 "v" version ".tar.gz"))
10677 (file-name (string-append name "-" version ".tar.gz"))
10678 (sha256
10679 (base32
10680 "0dprdxq8wvqd45dinwj92k0kixr07c8xvspa6i613mjcpxgwjg53"))))
10681 (build-system emacs-build-system)
10682 (home-page "https://github.com/creichert/ido-vertical-mode.el")
10683 (synopsis "Makes ido-mode display vertically")
10684 (description "Makes ido-mode display prospects vertically.")
10685 (license license:gpl3+)))
10686
10687(define-public emacs-wordgen
10688 (package
10689 (name "emacs-wordgen")
10690 (version "0.1.4")
10691 (source
10692 (origin
10693 (method url-fetch)
10694 (uri (string-append "https://github.com/Fanael/wordgen.el/archive/"
10695 version ".tar.gz"))
10696 (file-name (string-append name "-" version ".tar.gz"))
10697 (sha256
10698 (base32
10699 "1h2iyixdm49h53pwj9ics9gb9h3g6wa4hainpnjg6mfarf49jkmg"))))
10700 (build-system emacs-build-system)
10701 (home-page "https://github.com/Fanael/wordgen.el")
10702 (synopsis "Random word generator")
10703 (description "This package provides functions to generate random words
10704using user-provided rules.")
10705 (license license:gpl3+)))
10706
10707(define-public emacs-on-screen
10708 (package
10709 (name "emacs-on-screen")
10710 (version "1.3.2")
10711 (source
10712 (origin
10713 (method url-fetch)
10714 (uri (string-append
10715 "http://elpa.gnu.org/packages/on-screen-" version ".el"))
10716 (file-name (string-append name "-" version ".el"))
10717 (sha256
10718 (base32
10719 "15d18mjgv1pnwl6kf3pr5w64q1322p1l1qlfvnckglwmzy5sl2qv"))))
10720 (build-system emacs-build-system)
10721 (home-page
10722 "https://github.com/michael-heerdegen/on-screen.el")
10723 (synopsis "Guide your eyes while scrolling")
10724 (description
10725 "Scrolling can be distracting because your eyes may lose
10726orientation. This library implements a minor mode that highlights
10727the previously visible buffer part after each scroll.")
10728 (license license:gpl3+)))
10729
10730(define-public emacs-highlight-escape-sequences
10731 (let ((commit "08d846a7aa748209d65fecead2b6a766c3e5cb41")
10732 (revision "1"))
10733 (package
10734 (name "emacs-highlight-escape-sequences")
10735 (version (string-append "0.0.1" "-" revision "."
10736 (string-take commit 7)))
10737 (source
10738 (origin
10739 (method git-fetch)
10740 (uri (git-reference
10741 (url "https://github.com/dgutov/highlight-escape-sequences.git")
10742 (commit commit)))
10743 (file-name (string-append name "-" version "-checkout"))
10744 (sha256
10745 (base32
10746 "05mc3w1f8ykf80914a1yddw6j8cmh0h57llm07xh89s53821v2is"))))
10747 (build-system emacs-build-system)
10748 (home-page "https://github.com/dgutov/highlight-escape-sequences")
10749 (synopsis "Highlight escape sequences in Emacs")
10750 (description "@code{highlight-escape-sequences} provides an
10751Emacs minor mode to escape sequences in code.")
10752 (license license:gpl3+))))
10753
10754(define-public emacs-dashboard
10755 (package
10756 (name "emacs-dashboard")
10757 (version "1.2.4")
10758 (source
10759 (origin
10760 (method url-fetch)
10761 (uri (string-append
10762 "https://github.com/rakanalh/emacs-dashboard/archive/"
10763 version ".tar.gz"))
10764 (file-name (string-append name "-" version ".tar.gz"))
10765 (sha256
10766 (base32
10767 "1738lmbgq6gk24hcwic0qjyajr21l5xzhya4pv58dw1bhd6vxv9g"))))
10768 (build-system emacs-build-system)
10769 (propagated-inputs
10770 `(("emacs-page-break-lines" ,emacs-page-break-lines)))
10771 (arguments '(#:include '("\\.el$" "\\.txt$" "\\.png$")))
10772 (home-page "https://github.com/rakanalh/emacs-dashboard")
10773 (synopsis "Startup screen extracted from Spacemacs")
10774 (description "This package provides an extensible Emacs dashboard, with
10775sections for bookmarks, projectil projects, org-agenda and more. ")
10776 (license license:gpl3+)))
10777
10778(define-public emacs-slime-company
10779 (package
10780 (name "emacs-slime-company")
10781 (version "1.1")
10782 (source
10783 (origin
10784 (method url-fetch)
10785 (uri (string-append "https://github.com/anwyn/slime-company/archive/"
10786 "v" version ".tar.gz"))
10787 (sha256
10788 (base32
10789 "1myl79pxj501xfr5qc5a24qddsn2l5iaamg7rf7fpny7mr9v70ar"))
10790 (file-name (string-append name "-" version ".tar.gz"))))
10791 (build-system emacs-build-system)
10792 (propagated-inputs
10793 `(("emacs-slime" ,emacs-slime)
10794 ("emacs-company" ,emacs-company)))
10795 (home-page "https://company-mode.github.io")
10796 (synopsis "SLIME completion backend for @code{company-mode}")
10797 (description
10798 "This is a backend implementation for the completion package
10799@code{company-mode} which supports the normal and the fuzzy completion
10800modes of SLIME.")
10801 (license license:gpl3+)))
10802
10803(define-public emacs-sml-mode
10804 (package
10805 (name "emacs-sml-mode")
10806 (version "6.8")
10807 (source
10808 (origin
10809 (method url-fetch)
10810 (uri (string-append "http://elpa.gnu.org/packages/sml-mode-"
10811 version ".el"))
10812 (sha256
10813 (base32
10814 "105fcrz5qp95f2n3fdm3awr6z58sbrjihjss6qnrg4lz2ggbc328"))))
10815 (build-system emacs-build-system)
10816 (home-page "http://elpa.gnu.org/packages/sml-mode.html")
10817 (synopsis "Major mode for editing (Standard) ML")
10818 (description "SML-MODE is a major Emacs mode for editing Standard ML.
10819It provides syntax highlighting and automatic indentation and
10820comes with sml-proc which allows interaction with an inferior SML
10821interactive loop.")
10822 (license license:gpl3+)))
10823
10824(define-public emacs-eros
10825 (let ((commit "a42e45c9b2397156c684330b0fc90ee0eba773f5")
10826 (revision "1"))
10827 (package
10828 (name "emacs-eros")
10829 (version (string-append "0.0.1" "-" revision "."
10830 (string-take commit 7)))
10831 (source
10832 (origin
10833 (method git-fetch)
10834 (uri (git-reference
10835 (url "https://github.com/xiongtx/eros.git")
10836 (commit commit)))
10837 (file-name (string-append name "-" version "-checkout"))
10838 (sha256
10839 (base32
10840 "0whlsq90v13fz69k3wjrwcwb9gkpfxqjd75mg3nrp85j9nwhb5i4"))))
10841 (build-system emacs-build-system)
10842 (home-page "https://github.com/xiongtx/eros")
10843 (synopsis "Evaluation result overlays")
10844 (description "@code{eros} provides evaluation result overlays.")
10845 (license license:gpl3+))))
10846
10847(define-public emacs-stickyfunc-enhance
10848 (let ((commit "13bdba51fcd83ccbc3267959d23afc94d458dcb0")
10849 (revision "1"))
10850 (package
10851 (name "emacs-stickyfunc-enhance")
10852 (version "0.1")
10853 (source
10854 (origin
10855 (method git-fetch)
10856 (uri (git-reference
10857 (url "https://github.com/tuhdo/semantic-stickyfunc-enhance.git")
10858 (commit commit)))
10859 (file-name (string-append name "-" version "-checkout"))
10860 (sha256
10861 (base32
10862 "16dxjsr5nj20blww4xpd4jzgjprzzh1nwvb810ggdmp9paf4iy0g"))))
10863 (build-system emacs-build-system)
10864 (home-page "https://github.com/tuhdo/semantic-stickyfunc-enhance")
10865 (synopsis "Enhancement to stock @code{semantic-stickyfunc-mode}")
10866 (description
10867 "@code{semantic-stickyfunc-mode} shows the function point is currently
10868in at the first line of the current buffer. This is useful when you have a
10869very long function that spreads more than a screen, and you don't have to
10870scroll up to read the function name and then scroll down to original position.")
10871 (license license:gpl3+))))
10872
10873(define-public emacs-git-auto-commit-mode
10874 (package
10875 (name "emacs-git-auto-commit-mode")
10876 (version "4.4.0")
10877 (source
10878 (origin
10879 (method url-fetch)
10880 (uri (string-append
10881 "https://github.com/ryuslash/git-auto-commit-mode/archive/"
10882 version ".tar.gz"))
10883 (file-name (string-append name "-" version ".tar.gz"))
10884 (sha256
10885 (base32
10886 "04avxmalsl3b7zi2vipfw9rb4wrwysnipsbch96skviql9axk870"))))
10887 (build-system emacs-build-system)
10888 (home-page "https://github.com/ryuslash/git-auto-commit-mode")
10889 (synopsis "Emacs Minor mode to automatically commit and push")
10890 (description "@code{git-auto-commit-mode} is an Emacs minor mode that
10891tries to commit changes to a file after every save.
10892
10893When @code{gac-automatically-push-p} is non-nil, it also tries to push to
10894the current upstream.")
10895 (license license:gpl3+)))
10896
10897(define-public emacs-company-restclient
10898 (package
10899 (name "emacs-company-restclient")
10900 (version "0.1.0")
10901 (source
10902 (origin
10903 (method url-fetch)
10904 (uri (string-append
10905 "https://github.com/iquiw/company-restclient/archive/"
10906 "v" version ".tar.gz"))
10907 (file-name (string-append name "-" version ".tar.gz"))
10908 (sha256
10909 (base32
10910 "1kr3f0wgqlk7r171bvb2kinv7fanwj2md01wdpx04qkgwcr1as00"))))
10911 (build-system emacs-build-system)
10912 (propagated-inputs
10913 `(("emacs-company" ,emacs-company)
10914 ("emacs-know-your-http-well" ,emacs-know-your-http-well)
10915 ("emacs-restclient" ,emacs-restclient)))
10916 (home-page "https://github.com/iquiw/company-restclient")
10917 (synopsis "Company-mode completion back-end for restclient-mode")
10918 (description "@code{company-mode} back-end for
10919@code{restclient-mode}.
10920
10921It provides auto-completion for HTTP methods and headers in
10922@code{restclient-mode}. Completion source is given by
10923@code{know-your-http-well}.")
10924 (license license:gpl3+)))
10925
10926(define-public emacs-noflet
10927 (let ((version "20170629")
10928 (revision "1")
10929 (commit "7ae84dc3257637af7334101456dafe1759c6b68a"))
10930 (package
10931 (name "emacs-noflet")
10932 (version (git-version version revision commit))
10933 (source
10934 (origin
10935 (method git-fetch)
10936 (uri (git-reference
10937 (url "https://github.com/nicferrier/emacs-noflet")
10938 (commit commit)))
10939 (file-name (string-append name "-" version "-checkout"))
10940 (sha256
10941 (base32
10942 "0g70gnmfi8n24jzfci9nrj0n9bn1qig7b8f9f325rin8h7x32ypf"))))
10943 (build-system emacs-build-system)
10944 (arguments
10945 `(#:phases
10946 (modify-phases %standard-phases
10947 (add-after 'unpack 'require-dash
10948 ;; noflet.el uses -map from dash, but (require 'dash) is
10949 ;; missing. So, add it.
10950 (lambda _
10951 (substitute* "noflet.el"
10952 ((";;; Code:") ";;; Code:\n(require 'dash)"))
10953 #t)))))
10954 (propagated-inputs
10955 `(("emacs-dash" ,emacs-dash)))
10956 (home-page "https://github.com/nicferrier/emacs-noflet")
10957 (synopsis "Locally override functions")
10958 (description "@code{emacs-noflet} let's you locally override functions,
10959in the manner of @command{flet}, but with access to the original function
10960through the symbol: @command{this-fn}.")
10961 (license license:gpl3+))))
10962
10963(define-public emacs-dumb-jump
10964 (package
10965 (name "emacs-dumb-jump")
10966 (version "0.5.2")
10967 (source
10968 (origin
10969 (method url-fetch)
10970 (uri (string-append
10971 "https://github.com/jacktasia/dumb-jump/archive/v"
10972 version ".tar.gz"))
10973 (file-name (string-append name "-" version ".tar.gz"))
10974 (sha256
10975 (base32
10976 "07n0xjgpxjpf3vp9gxchkjpydyj0zm166930as0kwiwkhjlsirsf"))))
10977 (build-system emacs-build-system)
10978 (arguments
10979 `(#:tests? #f ; FIXME: Tests freeze when run.
10980 #:test-command '("ert-runner")
10981 #:phases
10982 (modify-phases %standard-phases
10983 (add-after 'unpack 'set-shell
10984 (lambda _
10985 ;; Setting the SHELL environment variable is required for the
10986 ;; tests to find sh.
10987 (setenv "SHELL" (which "sh"))
10988 #t)))))
10989 (native-inputs
10990 `(("emacs-el-mock" ,emacs-el-mock)
10991 ("emacs-noflet" ,emacs-noflet)
10992 ("emacs-undercover" ,emacs-undercover)
10993 ("ert-runner" ,emacs-ert-runner)))
10994 (propagated-inputs
10995 `(("emacs-f" ,emacs-f)
10996 ("emacs-popup" ,emacs-popup)))
10997 (home-page "https://github.com/jacktasia/dumb-jump")
10998 (synopsis "Jump to definition for multiple languages without configuration")
10999 (description "Dumb Jump is an Emacs \"jump to definition\" package with
11000support for multiple programming languages that favors \"just working\" over
11001speed or accuracy. This means minimal --- and ideally zero --- configuration
11002with absolutely no stored indexes (tags) or persistent background processes.
11003Dumb Jump performs best with The Silver Searcher @command{ag} or ripgrep
11004@command{rg} installed.")
11005 (license license:gpl3+)))
11006
11007(define-public emacs-dts-mode
11008 (let ((commit "9ee0854446dcc6c53d2b8d2941051768dba50344")
11009 (revision "1"))
11010 (package
11011 (name "emacs-dts-mode")
11012 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
11013 (source
11014 (origin
11015 (method git-fetch)
11016 (uri (git-reference
11017 (url "https://github.com/bgamari/dts-mode.git")
11018 (commit commit)))
11019 (file-name (string-append name "-" version "-checkout"))
11020 (sha256
11021 (base32
11022 "1k8lljdbc90nd29xrhdrsscxavzdq532wq2mg7ljc94krj7538b1"))))
11023 (build-system emacs-build-system)
11024 (home-page "https://github.com/bgamari/dts-mode.git")
11025 (synopsis "Emacs minor mode for editing device tree files")
11026 (description
11027 "This package provides an Emacs minor mode for highlighting
11028device tree files.")
11029 (license license:gpl3+))))
11030
11031(define-public emacs-daemons
11032 (package
11033 (name "emacs-daemons")
11034 (version "2.0.0")
11035 (source
11036 (origin
11037 (method git-fetch)
11038 (uri (git-reference
11039 (url "https://github.com/cbowdon/daemons.el")
11040 (commit version)))
11041 (file-name (string-append name "-" version "-checkout"))
11042 (sha256
11043 (base32
11044 "00bkzfaw3bqykcks610vk9wlpa2z360xn32bpsrycacwfv29j7g4"))))
11045 (build-system emacs-build-system)
11046 (home-page "https://github.com/cbowdon/daemons.el")
11047 (synopsis "Emacs UI for managing init system services")
11048 (description
11049 "This is an Emacs mode to give you a UI for managing init system
11050daemons (services) for those getting tired of typing out @code{sudo service
11051my_thing reload} all the time. It offers a consistent UI over different init
11052systems.")
11053 (license license:gpl3+)))
11054
11055(define-public emacs-esh-autosuggest
11056 (package
11057 (name "emacs-esh-autosuggest")
11058 (version "2.0.0")
11059 (source
11060 (origin
11061 (method git-fetch)
11062 (uri (git-reference
11063 (url "https://github.com/dieggsy/esh-autosuggest")
11064 (commit version)))
11065 (file-name (string-append name "-" version "-checkout"))
11066 (sha256
11067 (base32
11068 "116pdjgpjy9b0psm5kzwkwy7dq8vn0p6dy75dl1zsy2xrjf1iqdw"))))
11069 (build-system emacs-build-system)
11070 (propagated-inputs `(("emacs-company" ,emacs-company)))
11071 (home-page "https://github.com/dieggsy/esh-autosuggest")
11072 (synopsis "Fish-like autosuggestions in Eshell")
11073 (description
11074 "This package assumes you use something other than company for eshell
11075completion (e.g. @code{eshell-pcomplete}, @code{completion-at-point},
11076@code{helm-esh-pcomplete}). @code{company-mode} is used solely as a mechanism
11077for history autosuggestions.
11078
11079Unless you're using @code{use-package}'s hook keyword, you can enable the
11080autosuggestions with:
11081@code{(add-hook 'eshell-mode-hook #'esh-autosuggest-mode)}")
11082 (license license:gpl3+)))
11083
11084(define-public emacs-desktop-environment
11085 (package
11086 (name "emacs-desktop-environment")
11087 (version "0.2.0")
11088 (source
11089 (origin
11090 (method git-fetch)
11091 (uri (git-reference
11092 (url "https://github.com/DamienCassou/desktop-environment.git")
11093 (commit (string-append "v" version))))
11094 (file-name (string-append name "-" version "-checkout"))
11095 (sha256
11096 (base32
11097 "1fal3yfmqg10cb53qsf5gsq2gvyz9w16wmlpnpjwjzwnjfn6l73r"))))
11098 (build-system emacs-build-system)
11099 (home-page "https://gitlab.petton.fr/DamienCassou/desktop-environment")
11100 (synopsis "Control your GNU/Linux desktop environment from Emacs")
11101 (description
11102 "This package helps you control your GNU/Linux desktop from Emacs.
11103With @code{desktop-environment}, you can control the brightness and volume as
11104well as take screenshots and lock your screen. The package depends on the
11105availability of shell commands to do the hard work for us. These commands can
11106be changed by customizing the appropriate variables.")
11107 (license license:gpl3+)))
11108
11109(define-public emacs-org-caldav
11110 (package
11111 (name "emacs-org-caldav")
11112 (version "20180403")
11113 (source
11114 (origin
11115 (method url-fetch)
11116 (uri (string-append
11117 "https://github.com/dengste/org-caldav/raw/"
11118 "8d3492c27a09f437d2d94f2736c56d7652e87aa0"
11119 "/org-caldav.el"))
11120 (sha256
11121 (base32
11122 "1fh4gh68ddj0is99z2ccyh97v6psnyda61n2dsadzqhcxn51amlc"))))
11123 (build-system emacs-build-system)
11124 (propagated-inputs `(("emacs-org" ,emacs-org)))
11125 (home-page "https://github.com/dengste/org-caldav")
11126 (synopsis
11127 "Sync Org files with external calendars via the CalDAV protocol")
11128 (description
11129 "Synchronize between events in Org-mode files and a CalDAV calendar.
11130This code is still alpha.")
11131 (license license:gpl3+)))
11132
11133(define-public emacs-zotxt
11134 (package
11135 (name "emacs-zotxt")
11136 (version "20180518")
11137 (source
11138 (origin
11139 (method url-fetch)
11140 (uri (string-append
11141 "https://github.com/egh/zotxt-emacs/archive/"
11142 "23a4a9f74a658222027d53a9a83cd4bcc583ca8b"
11143 ".tar.gz"))
11144 (sha256
11145 (base32
11146 "1qlibaciqgsva6fc7vv9krssjq00bi880396jk7llbi3c52q9n1y"))))
11147 (build-system emacs-build-system)
11148 (propagated-inputs
11149 `(("emacs-deferred" ,emacs-deferred)
11150 ("emacs-request" ,emacs-request)))
11151 (home-page "https://github.com/egh/zotxt-emacs")
11152 (synopsis "Integrate Emacs with Zotero")
11153 (description "This package provides two integration features between Emacs
11154and the Zotero research assistant: Insertion of links to Zotero items into an
11155Org-mode file, and citations of Zotero items in Pandoc Markdown files.")
11156 (license license:gpl3+)))
11157
11158(define-public emacs-evil-ediff
11159 ;; Evil-Ediff is included in Evil Collection from 20180617.
11160 (deprecated-package "emacs-evil-ediff" emacs-evil-collection))
11161
11162(define-public emacs-evil-magit
11163 (let ((commit "dbf5a646a7ce1c35c229dfdc423bd5ecd927a3a8"))
11164 (package
11165 (name "emacs-evil-magit")
11166 (version (git-version "0.4.2" "1" commit))
11167 (source
11168 (origin
11169 (method git-fetch)
11170 (uri (git-reference
11171 (url "https://github.com/emacs-evil/evil-magit")
11172 (commit commit)))
11173 (file-name (string-append name "-" version "-checkout"))
11174 (sha256
11175 (base32
11176 "0ya0dkviq4pi92ab69a4j674y5r1hc1x3x7r7hlm97ag3a6zfkav"))))
11177 (build-system emacs-build-system)
11178 (propagated-inputs
11179 `(("emacs-evil" ,emacs-evil)
11180 ("magit" ,emacs-magit)))
11181 (home-page
11182 "https://github.com/emacs-evil/evil-magit")
11183 (synopsis "Evil-based key bindings for Magit")
11184 (description
11185 "This Emacs library configures Magit and Evil to play well with each other.
11186For some background see @url{https://github.com/magit/evil-magit/issues/1}.
11187See the README at @url{https://github.com/justbur/evil-magit} for a table
11188describing the key binding changes.")
11189 (license license:gpl3+))))
11190
11191(define-public emacs-evil-mu4e
11192 ;; Evil-mu4e is included in Evil Collection from 20180617.
11193 (deprecated-package "emacs-evil-mu4e" emacs-evil-collection))
11194
11195(define-public emacs-evil-multiedit
11196 (package
11197 (name "emacs-evil-multiedit")
11198 (version "1.3.9")
11199 (source
11200 (origin
11201 (method git-fetch)
11202 (uri (git-reference
11203 (url "https://github.com/hlissner/evil-multiedit")
11204 (commit (string-append "v" version))))
11205 (file-name (string-append name "-" version "-checkout"))
11206 (sha256
11207 (base32
11208 "19h3kqylqzbjv4297wkzzxdmn9yxbg6z4ga4ssrqri90xs7m3rw3"))))
11209 (build-system emacs-build-system)
11210 (propagated-inputs
11211 `(("emacs-evil" ,emacs-evil)
11212 ("emacs-iedit" ,emacs-iedit)))
11213 (home-page
11214 "https://github.com/hlissner/evil-multiedit")
11215 (synopsis "Multiple cursors for Evil mode")
11216 (description
11217 "This plugin was an answer to the lack of proper multiple cursor support
11218in Emacs+Evil. It allows you to select and edit matches interactively,
11219integrating @code{iedit-mode} into Evil mode with an attempt at sensible
11220defaults.")
11221 (license license:gpl3+)))
11222
11223(define-public emacs-evil-org
11224 (let ((commit "b6d652a9163d3430a9e0933a554bdbee5244bbf6"))
11225 (package
11226 (name "emacs-evil-org")
11227 (version (git-version "0.1.1" "1" commit))
11228 (source
11229 (origin
11230 (method git-fetch)
11231 (uri (git-reference
11232 (url "https://github.com/Somelauw/evil-org-mode")
11233 (commit commit)))
11234 (file-name (string-append name "-" version "-checkout"))
11235 (sha256
11236 (base32
11237 "176hrw7y7nczffbyhsa167b8rvfacsmcafm2gpkrdjqlrikbmrhl"))))
11238 (build-system emacs-build-system)
11239 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
11240 (home-page
11241 "https://github.com/Somelauw/evil-org-mode")
11242 (synopsis "Evil keybindings for Org mode")
11243 (description
11244 "This package adds supplemental Evil mode key-bindings to Emacs
11245Org-mode. It features:
11246@itemize
11247@item normal, visual and insert mode bindings;
11248@item key bindings organised in key themes;
11249@item operators like > and < to work on headings;
11250@item text objects;
11251@item table support;
11252@item calendar (date selection) support;
11253@item agenda support.
11254@end itemize\n")
11255 (license license:gpl3+))))
11256
11257(define-public emacs-fish-completion
11258 (let ((commit "bac15fda1392a891070574dfe5d2d50b10831e8b"))
11259 (package
11260 (name "emacs-fish-completion")
11261 (version (git-version "20180616" "1" commit))
11262 (source
11263 (origin
11264 (method url-fetch)
11265 (uri (string-append
11266 "https://gitlab.com/Ambrevar/emacs-fish-completion/repository/"
11267 "archive.tar.gz?ref="
11268 commit))
11269 (sha256
11270 (base32
11271 "093qzdrbkl7dhjk16zq8i13kh1phyigkblcfrbgbrxjqd2ndrfdi"))))
11272 (build-system emacs-build-system)
11273 (inputs `(("fish" ,fish)))
11274 (arguments
11275 `(#:phases
11276 (modify-phases %standard-phases
11277 (add-after 'unpack 'configure
11278 (lambda* (#:key inputs outputs #:allow-other-keys)
11279 (let ((fish (assoc-ref inputs "fish")))
11280 ;; Specify the absolute file names of the various
11281 ;; programs so that everything works out-of-the-box.
11282 (emacs-substitute-variables
11283 "fish-completion.el"
11284 ("fish-completion-command"
11285 (string-append fish "/bin/fish")))))))))
11286 (home-page
11287 "https://gitlab.com/Ambrevar/emacs-fish-completion")
11288 (synopsis "Fish completion for Emacs pcomplete")
11289 (description
11290 "This package provides completion for the Fish shell to pcomplete (used
11291by shell and Eshell). You can set it up globally with:
11292
11293@example
11294(when (and (executable-find \"fish\")
11295 (require 'fish-completion nil t))
11296 (global-fish-completion-mode))
11297@end example
11298
11299Alternatively, you can call the @code{fish-completion-mode} manually or in
11300shell/Eshell mode hook.
11301
11302The package @code{emacs-bash-completion} is an optional dependency: if available,
11303@code{fish-completion-complete} can be configured to fall back on bash to further
11304try completing. See @code{fish-completion-fallback-on-bash-p}.")
11305 (license license:gpl3+))))
11306
11307(define-public emacs-gif-screencast
11308 (let ((commit "12b25442b97b84abae74ecb5190a9d14ff7cfe5a"))
11309 (package
11310 (name "emacs-gif-screencast")
11311 (version (git-version "20180616" "1" commit))
11312 (source
11313 (origin
11314 (method url-fetch)
11315 (uri (string-append
11316 "https://gitlab.com/Ambrevar/emacs-gif-screencast/"
11317 "repository/archive.tar.gz?ref="
11318 commit))
11319 (sha256
11320 (base32
11321 "0lc457i78xjkn5idr2aaiadkh76zcsksj84z0qh80a9y775syrgh"))))
11322 (build-system emacs-build-system)
11323 (inputs
11324 `(("scrot" ,scrot)
11325 ("imagemagick" ,imagemagick)
11326 ("gifsicle" ,gifsicle)))
11327 (arguments
11328 `(#:phases
11329 (modify-phases %standard-phases
11330 (add-after 'unpack 'configure
11331 (lambda* (#:key inputs outputs #:allow-other-keys)
11332 (let ((scrot (assoc-ref inputs "scrot"))
11333 (imagemagick (assoc-ref inputs "imagemagick"))
11334 (gifsicle (assoc-ref inputs "gifsicle")))
11335 ;; Specify the absolute file names of the various
11336 ;; programs so that everything works out-of-the-box.
11337 (emacs-substitute-variables
11338 "gif-screencast.el"
11339 ("gif-screencast-program"
11340 (string-append scrot "/bin/scrot"))
11341 ("gif-screencast-convert-program"
11342 (string-append imagemagick "/bin/convert"))
11343 ("gif-screencast-cropping-program"
11344 (string-append imagemagick "/bin/mogrify"))
11345 ("gif-screencast-optimize-program"
11346 (string-append imagemagick "/bin/gifsicle")))))))))
11347 (home-page
11348 "https://gitlab.com/Ambrevar/emacs-gif-screencast")
11349 (synopsis "One-frame-per-action GIF recording")
11350 (description
11351 "Call @code{gif-screencast} to start a recording.
11352A screenshot is taken for every user action. Call
11353@code{gif-screencast-stop} (<f9> by default) to finish recording and create
11354the GIF result.")
11355 (license license:gpl3+))))
11356
11357(define-public emacs-google-translate
11358 (package
11359 (name "emacs-google-translate")
11360 (version "0.11.16")
11361 (source
11362 (origin
11363 (method url-fetch)
11364 (uri (string-append "https://github.com/atykhonov/google-translate/"
11365 "archive/v" version ".tar.gz"))
11366 (file-name (string-append name "-" version ".tar.gz"))
11367 (sha256
11368 (base32
11369 "01n9spj1d0gjfj39x526rl3m9c28wnx9afipmf5s8y77cx3mfwhl"))))
11370 (build-system emacs-build-system)
11371 (home-page "https://github.com/atykhonov/google-translate")
11372 (synopsis "Emacs interface to Google Translate")
11373 (description
11374 "This packages provides an Emacs interface to the Google Translate
11375on-line service.")
11376 (license license:gpl3+)))
11377
11378(define-public emacs-helm-company
11379 (let ((commit "d3fc093a0e833b4dee6561c00d6df3d62aa50f3f"))
11380 (package
11381 (name "emacs-helm-company")
11382 (version (git-version "0.2.3" "1" commit))
11383 (source
11384 (origin
11385 (method git-fetch)
11386 (uri (git-reference
11387 (url "https://github.com/Sodel-the-Vociferous/helm-company")
11388 (commit commit)))
11389 (file-name (string-append name "-" version "-checkout"))
11390 (sha256
11391 (base32
11392 "1ciirsanhajdqm5iwl8k9ywf4jha1wdv4sc4d9kslyrfr9zn4q6k"))))
11393 (build-system emacs-build-system)
11394 (propagated-inputs
11395 `(("emacs-helm" ,emacs-helm)
11396 ("emacs-company" ,emacs-company)))
11397 (home-page "https://github.com/Sodel-the-Vociferous/helm-company")
11398 (synopsis "Helm interface for company-mode")
11399 (description
11400 "This is a Helm interface to company-mode, a text completion
11401framework.")
11402 (license license:gpl3+))))
11403
11404(define-public emacs-helm-descbinds
11405 (let ((commit "033be73f21778633813264ce1634a6e1ad873d8e"))
11406 (package
11407 (name "emacs-helm-descbinds")
11408 (version (git-version "1.13" "1" commit))
11409 (source
11410 (origin
11411 (method git-fetch)
11412 (uri (git-reference
11413 (url "https://github.com/emacs-helm/helm-descbinds")
11414 (commit commit)))
11415 (file-name (string-append name "-" version "-checkout"))
11416 (sha256
11417 (base32
11418 "1n89p56qwa243w1c85i5awnaf7piwjsvfi7nmnsrwm33hix5dknk"))))
11419 (build-system emacs-build-system)
11420 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
11421 (home-page "https://github.com/emacs-helm/helm-descbinds")
11422 (synopsis "Convenient @code{describe-bindings} with Helm")
11423 (description
11424 "This package is a replacement of @code{describe-bindings} for Helm.
11425@code{describe-bindings} is replaced with @code{helm-descbinds}. As usual,
11426type @code{C-h b}, or any incomplete key sequence plus @code{C-h}, to run
11427@code{helm-descbinds}. The bindings are presented in a similar way as
11428@code{describe-bindings} does, but you can use completion to find the command
11429you searched for and execute it, or view its documentation.")
11430 (license license:gpl3+))))
11431
11432(define-public emacs-helm-emms
11433 (let ((commit "d3f9bdef8ff0d093eaf6e26af50ea905ab53fdec"))
11434 (package
11435 (name "emacs-helm-emms")
11436 (version (git-version "1.3" "1" commit))
11437 (source
11438 (origin
11439 (method git-fetch)
11440 (uri (git-reference
11441 (url "https://github.com/emacs-helm/helm-emms")
11442 (commit commit)))
11443 (file-name (string-append name "-" version "-checkout"))
11444 (sha256
11445 (base32
11446 "0bdb8xp0yp3gijpa9i2rc17gfzjhzlm92vdzw93i10qpd1xhj4aa"))))
11447 (build-system emacs-build-system)
11448 (propagated-inputs
11449 `(("emacs-helm" ,emacs-helm)
11450 ("emacs-emms" ,emacs-emms)))
11451 (home-page
11452 "https://github.com/emacs-helm/helm-emms")
11453 (synopsis "Emms for Helm")
11454 (description "Helm interface for Emms to browse all tracks and all folders
11455from @code{emms-source-file-default-directory}.")
11456 (license license:gpl3+))))
11457
11458(define-public emacs-helm-exwm
11459 (let ((commit "56266f261ba3b3d2753b374b50da20eb768c06f5"))
11460 (package
11461 (name "emacs-helm-exwm")
11462 (version (git-version "20180703" "2" commit))
11463 (source
11464 (origin
11465 (method url-fetch)
11466 (uri (string-append
11467 "https://github.com/emacs-helm/helm-exwm/archive/"
11468 commit
11469 ".tar.gz"))
11470 (sha256
11471 (base32
11472 "0n7hdiajw5vxl8ha2r9r4cl4i7crza25348825wb6acwhhzijxcj"))))
11473 (build-system emacs-build-system)
11474 (propagated-inputs
11475 `(("emacs-helm" ,emacs-helm)
11476 ("emacs-exwm" ,emacs-exwm)))
11477 (home-page
11478 "https://github.com/emacs-helm/helm-exwm")
11479 (synopsis "Helm for EXWM buffers")
11480 (description
11481 "@code{helm-exwm} runs a Helm session over the list of EXWM buffers.
11482@code{helm-exwm-switch} is a convenience X application launcher using Helm to
11483switch between the various windows of one or several specific applications.
11484See @code{helm-exwm-switch-browser} for an example.")
11485 (license license:gpl3+))))
11486
11487(define-public emacs-helm-flycheck
11488 (let ((commit "3cf7d3bb194acacc6395f88360588013d92675d6"))
11489 (package
11490 (name "emacs-helm-flycheck")
11491 (version (git-version "0.4" "1" commit))
11492 (source
11493 (origin
11494 (method git-fetch)
11495 (uri (git-reference
11496 (url "https://github.com/yasuyk/helm-flycheck")
11497 (commit commit)))
11498 (file-name (string-append name "-" version "-checkout"))
11499 (sha256
11500 (base32
11501 "1a2yfxhz04klwhcandqvfzysxp6b7bxyxx1xk1x3kds5hif5fkl4"))))
11502 (build-system emacs-build-system)
11503 (propagated-inputs
11504 `(("emacs-dash" ,emacs-dash)
11505 ("emacs-flycheck" ,emacs-flycheck)
11506 ("emacs-helm" ,emacs-helm)))
11507 (home-page "https://github.com/yasuyk/helm-flycheck")
11508 (synopsis "Show Flycheck errors with Helm")
11509 (description
11510 "This integrates Flycheck with Helm.")
11511 (license license:gpl3+))))
11512
11513(define-public emacs-helm-ls-git
11514 (let ((commit "76654c776a7f6e2e5290645e748aac2a746f7daa"))
11515 (package
11516 (name "emacs-helm-ls-git")
11517 (version (git-version "1.9.1" "1" commit))
11518 (source
11519 (origin
11520 (method git-fetch)
11521 (uri (git-reference
11522 (url "https://github.com/emacs-helm/helm-ls-git")
11523 (commit commit)))
11524 (file-name (string-append name "-" version "-checkout"))
11525 (sha256
11526 (base32
11527 "0vsq1n3xl3ghy5zik2scm7jrs501n4kybdqd6yw6j0cv4jxdqbr0"))))
11528 (build-system emacs-build-system)
11529 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
11530 (home-page "https://github.com/emacs-helm/helm-ls-git")
11531 (synopsis "Helm interface for listing the files in a Git repository")
11532 (description
11533 "This package provides a Helm interface for Git files.
11534@itemize
11535@item Display the open buffers in project.
11536@item Display a status source showing state of project (modified files etc.).
11537@item Display a list of all files in project under git control.
11538@item Quickly look at diffs of modified files.
11539@item Allow switching to @code{git status} with your preferred frontend
11540(vc-dir, Magit,etc.).
11541@item Full integration of git-grep, also allow usage of @code{helm-grep} (you
11542can use ack-grep instead of grep).
11543@item Integrate usage of gid from id-utils.
11544@item Full integration with @code{helm-find-files}, allow you to browse
11545projects unrelated to current-buffer.
11546@item In addition, all actions of type files and buffers are provided.
11547@end itemize\n")
11548 (license license:gpl3+))))
11549
11550(define-public emacs-helm-mu
11551 (let ((commit "77e6fea24e01481418738421dbcfe28ef1bd63cf"))
11552 (package
11553 (name "emacs-helm-mu")
11554 (version (git-version "20180513" "1" commit))
11555 (source
11556 (origin
11557 (method url-fetch)
11558 (uri (string-append
11559 "https://github.com/emacs-helm/helm-mu/archive/"
11560 commit
11561 ".tar.gz"))
11562 (sha256
11563 (base32
11564 "0qm4xi3i957scm50nar398pv4x8y03si10l77jb9ckjaviyq2hj9"))))
11565 (build-system emacs-build-system)
11566 (propagated-inputs
11567 `(("emacs-helm" ,emacs-helm)
11568 ("mu" ,mu)))
11569 (home-page
11570 "https://github.com/emacs-helm/helm-mu")
11571 (synopsis
11572 "Helm sources for searching emails and contacts")
11573 (description
11574 "Helm sources for searching emails and contacts using @code{mu} and
11575@code{mu4e}. Mu is an indexer for maildirs and mu4e is a mutt-like MUA for
11576Emacs build on top of mu. Mu is highly efficient making it possible to get
11577instant results even for huge maildirs. It also provides search operators,
11578e.g: @code{from:Peter to:Anne flag:attach search term}.")
11579 (license license:gpl3+))))
11580
11581(define-public emacs-helm-pass
11582 (let ((commit "ebcbef1a962795a36e3491ae926e2a4b8a8b0ebb"))
11583 (package
11584 (name "emacs-helm-pass")
11585 (version (git-version "20180416" "1" commit))
11586 (source
11587 (origin
11588 (method url-fetch)
11589 (uri (string-append
11590 "https://github.com/jabranham/helm-pass/archive/"
11591 commit
11592 ".tar.gz"))
11593 (sha256
11594 (base32
11595 "1pgq4hj9wvz7z2fyxwsvbh6rmc1akya84v382nx26rr76iavz6wi"))))
11596 (build-system emacs-build-system)
11597 (propagated-inputs
11598 `(("emacs-helm" ,emacs-helm)
11599 ("emacs-password-store" ,emacs-password-store)))
11600 (home-page
11601 "https://github.com/jabranham/helm-pass")
11602 (synopsis "Helm interface to pass, the standard Unix password manager")
11603 (description
11604 "Users of @code{helm-pass} may also be interested in functionality
11605provided by other Emacs packages dealing with pass:
11606@itemize
11607@item @code{emacs-password-store}, which @code{helm-pass} relies on.
11608@item @code{emacs-pass}, a major mode for @code{pass}.
11609@item @code{auth-source-pass.el}: integration of Emacs' auth-source with
11610@code{pass}, included in Emacs 26+).
11611@end itemize\n")
11612 (license license:gpl3+))))
11613
11614(define-public emacs-image+
11615 (let ((commit "6834d0c09bb4df9ecc0d7a559bd7827fed48fffc"))
11616 (package
11617 (name "emacs-image+")
11618 (version (git-version "0.6.2" "1" commit))
11619 (source
11620 (origin
11621 (method git-fetch)
11622 (uri (git-reference
11623 (url "https://github.com/mhayashi1120/Emacs-imagex")
11624 (commit commit)))
11625 (file-name (string-append name "-" version "-checkout"))
11626 (sha256
11627 (base32
11628 "0v66wk9nh0raih4jhrzmmyi5lbysjnmbv791vm2230ffi2hmwxnd"))))
11629 (build-system emacs-build-system)
11630 (inputs `(("imagemagick" ,imagemagick)))
11631 (arguments
11632 `(#:phases
11633 (modify-phases %standard-phases
11634 (add-after 'unpack 'configure
11635 (lambda* (#:key inputs outputs #:allow-other-keys)
11636 (let ((imagemagick (assoc-ref inputs "imagemagick")))
11637 ;; Specify the absolute file names of the various
11638 ;; programs so that everything works out-of-the-box.
11639 (chmod "image+.el" #o666)
11640 (emacs-substitute-variables
11641 "image+.el"
11642 ("imagex-convert-command"
11643 (string-append imagemagick "/bin/convert"))
11644 ("imagex-identify-command"
11645 (string-append imagemagick "/bin/identify")))))))))
11646 (home-page "https://github.com/mhayashi1120/Emacs-imagex")
11647 (synopsis "Image manipulation extensions for Emacs")
11648 (description
11649 "Image+ provides keybindings allowing you to zoom in or zoom out of an
11650image, rotate it, save modified images, and more.")
11651 (license license:gpl3+))))
11652
11653(define-public emacs-package-lint
11654 (let ((commit "69bb89d00ba212b734c676ad056aa793c450b288"))
11655 (package
11656 (name "emacs-package-lint")
11657 (version (git-version "0.5" "1" commit))
11658 (source
11659 (origin
11660 (method git-fetch)
11661 (uri (git-reference
11662 (url "https://github.com/purcell/package-lint")
11663 (commit commit)))
11664 (file-name (string-append name "-" version "-checkout"))
11665 (sha256
11666 (base32
11667 "1hfricsgmy3x9snnd2p4xq6vnnv94qdsxxnxp07b3hqc9bhw31rq"))))
11668 (build-system emacs-build-system)
11669 (home-page "https://github.com/purcell/package-lint")
11670 (synopsis "Linting library for elisp package authors")
11671 (description
11672 "This provides a list of issues with the Emacs package metadata of a file,
11673e.g. the package dependencies it requires. See function
11674@code{package-lint-buffer}. Checks will currently be enabled only if a
11675\"Package-Requires:\" or \"Package-Version:\" header is present in the
11676file.")
11677 (license license:gpl3+))))
11678
11679(define-public emacs-picpocket
11680 (let ((version "40")
11681 (commit "6fd88b8711c4370662c0f9c462170187d092a046"))
11682 (package
11683 (name "emacs-picpocket")
11684 (version version)
11685 (source
11686 (origin
11687 (method git-fetch)
11688 (uri (git-reference
11689 (url "https://github.com/johanclaesson/picpocket")
11690 (commit commit)))
11691 (file-name (git-file-name name version))
11692 (sha256
11693 (base32 "1mdzzxf7xm7zwrpnqqxa27d1cr31pd72d7ilbwljv13qp177a3yw"))))
11694 (build-system emacs-build-system)
11695 (arguments ; needed for running tests
11696 `(#:tests? #t
11697 #:emacs ,emacs
11698 #:test-command '("emacs" "--batch"
11699 "-l" "picpocket-test.el"
11700 "-f" "ert-run-tests-batch-and-exit")))
11701 (home-page "https://github.com/johanclaesson/picpocket")
11702 (synopsis "Image viewer for Emacs")
11703 (description
11704 "Picpocket is an image viewer for GNU Emacs. It has commands for:
11705
11706@itemize
11707@item File operations on the picture files (delete, move, copy, hardlink).
11708@item Scale and rotate the picture.
11709@item Associate pictures with tags which are saved to disk.
11710@item Filter pictures according to tags.
11711@item Customizing keystrokes for quick tagging and file operations.
11712@item Undo and browse history of undoable commands.
11713@end itemize")
11714 (license license:gpl3+))))
11715
11716(define-public emacs-wgrep-helm
11717 ;; `emacs-wgrep-helm' was mistakenly added.
11718 (deprecated-package "emacs-wgrep-helm" emacs-wgrep))
11719
11720(define-public emacs-mu4e-conversation
11721 (let ((commit "e7d4bfcb0d392b0aed1f705ccac2419a168d1f5e"))
11722 (package
11723 (name "emacs-mu4e-conversation")
11724 (version (git-version "20181126" "4" commit))
11725 (source
11726 (origin
11727 (method url-fetch)
11728 (uri (string-append
11729 "https://gitlab.com/Ambrevar/mu4e-conversation/"
11730 "repository/archive.tar.gz?ref="
11731 commit))
11732 (file-name (string-append name "-" version "-checkout"))
11733 (sha256
11734 (base32
11735 "0b52hf9rm2afba9pvgink9bwqm705sk0y5qikp0ff5sk53wqvy29"))))
11736 (build-system emacs-build-system)
11737 (propagated-inputs
11738 `(("mu" ,mu)))
11739 (home-page
11740 "https://gitlab.com/Ambrevar/mu4e-conversation")
11741 (synopsis
11742 "Show a complete thread in a single buffer")
11743 (description
11744 "This package offers an alternate view to mu4e's e-mail display. It
11745shows all e-mails of a thread in a single view, where each correspondent has
11746their own face. Threads can be displayed linearly (in which case e-mails are
11747displayed in chronological order) or as an Org document where the node tree
11748maps the thread tree.")
11749 (license license:gpl3+))))
11750
11751(define-public emacs-pinentry
11752 (let ((commit "dcc9ba03252ee5d39e03bba31b420e0708c3ba0c")
11753 (revision "1"))
11754 (package
11755 (name "emacs-pinentry")
11756 (version (git-version "0.1" revision commit))
11757 (source
11758 (origin
11759 (method url-fetch)
11760 (uri (string-append
11761 "http://git.savannah.gnu.org/cgit/emacs/elpa.git/plain"
11762 "/packages/pinentry/pinentry.el?id=" commit))
11763 (file-name (string-append "pinentry.el"))
11764 (sha256
11765 (base32
11766 "1lf30q6r8nz5cjzclbb9bbymsk2y75nskvb55hnjdv93gr3j0sik"))))
11767 (build-system emacs-build-system)
11768 (propagated-inputs
11769 `(("gnupg" ,gnupg)))
11770 (home-page "https://elpa.gnu.org/packages/pinentry.html")
11771 (synopsis "GnuPG Pinentry server implementation")
11772 (description
11773 "This package allows GnuPG passphrase to be prompted through the
11774minibuffer instead of graphical dialog.
11775
11776To use, add @code{allow-emacs-pinentry} to @code{~/.gnupg/gpg-agent.conf},
11777reload the configuration with @code{gpgconf --reload gpg-agent}, and start the
11778server with @code{M-x pinentry-start}.")
11779 (license license:gpl3+))))
11780
11781(define-public emacs-org-brain
11782 (package
11783 (name "emacs-org-brain")
11784 (version "0.5")
11785 (source
11786 (origin
11787 (method git-fetch)
11788 (uri (git-reference
11789 (url "https://github.com/Kungsgeten/org-brain.git")
11790 (commit "3faf9303af3f2356e3444e69c22dc6c5774047d1")))
11791 (file-name (git-file-name name version))
11792 (sha256
11793 (base32
11794 "1ad681zk6kckw2zbk0r4iaj4bw8cfqrbd1s3gdwgdjlzq81q9mmj"))))
11795 (build-system emacs-build-system)
11796 (home-page "https://github.com/Kungsgeten/org-brain")
11797 (synopsis "Org-mode wiki and concept-mapping for Emacs")
11798 (description "@code{emacs-org-brain} implements a variant of concept
11799mapping in Emacs, using @code{org-mode}. An org-brain is a network of
11800org-mode entries, where each entry is a file or a headline, and you can get a
11801visual overview of the relationships between the entries: parents, children,
11802siblings and friends. This visual overview can also be used to browse your
11803entries. You can think of entries as nodes in a mind map, or pages in a
11804wiki.")
11805 (license license:expat)))
11806
11807(define-public emacs-recent-addresses
11808 (let ((commit "afbbfdc43b81e620acf827ca20d297e0c517b6eb")
11809 (revision "1"))
11810 (package
11811 (name "emacs-recent-addresses")
11812 (home-page "http://nschum.de/src/emacs/recent-addresses/")
11813 (version (git-version "0.1" revision commit))
11814 (source (origin
11815 (method git-fetch)
11816 (uri (git-reference
11817 ;; Note: Use a branch that works with Helm. Submitted
11818 ;; at <https://github.com/nschum/recent-addresses.el/pull/1>.
11819 (url "https://github.com/civodul/recent-addresses.el")
11820 (commit commit)))
11821 (sha256
11822 (base32
11823 "0ajrq0galjmdyjdjyxazykjyax3gh6hvfk4s7l657pi11g0q5zax"))
11824 (file-name (git-file-name name version))))
11825 (build-system emacs-build-system)
11826 (synopsis "Record recently-used email addressed and auto-complete them")
11827 (description
11828 "@code{recent-addresses} is an Emacs package that allows you to quickly
11829look up previously used email addresses. It can be used alongside the Gnus
11830email client.")
11831 (license license:gpl2+))))
11832
11833(define-public emacs-fold-dwim
11834 (let ((commit "c46f4bb2ce91b4e307136320e72c28dd50b6cd8b")
11835 (revision "0"))
11836 (package
11837 (name "emacs-fold-dwim")
11838 (version (git-version "1.2" revision commit))
11839 (home-page "https://github.com/emacsattic/fold-dwim")
11840 (source (origin
11841 (method git-fetch)
11842 (uri (git-reference (url home-page) (commit commit)))
11843 (sha256
11844 (base32
11845 "1yz1wis31asw6xa5maliyd1ck2q02xnnh7dc6swgj9cb4wi7k6i1"))
11846 (file-name (git-file-name name version))))
11847 (build-system emacs-build-system)
11848 (synopsis "Unified user interface for Emacs folding modes")
11849 (description
11850 "DWIM stands for \"do what I mean\", as in the idea that one keystroke
11851can do different things depending on the context. In this package, it means
11852that, if the cursor is in a currently hidden folded construction, we want to
11853show it; if it's not, we want to hide whatever fold the cursor is in.")
11854 (license license:gpl2+))))
11855
11856(define-public emacs-markup-faces
11857 (package
11858 (name "emacs-markup-faces")
11859 (version "1.0.0")
11860 (source
11861 (origin
11862 (method url-fetch)
11863 (uri (string-append "https://stable.melpa.org/packages/markup-faces-"
11864 version ".el"))
11865 (sha256
11866 (base32
11867 "124dxbaa25fwxnpwsygpz7pw6da6dnnw7y2lic3jf8rgz7lw4v32"))))
11868 (build-system emacs-build-system)
11869 (home-page "https://github.com/sensorflo/markup-faces")
11870 (synopsis "Collection of Emacs faces for markup language modes")
11871 (description "emacs-markup-faces is like font-lock-faces, but tailored for
11872markup languages instead programming languages. The sub group markup-faces-text
11873is also intended for 'text viewing modes' such as info or (wo)man. This gives a
11874common look and feel, or let's say theme, across different markup language modes
11875and 'text viewing modes' respectively.")
11876 (license license:gpl3+)))
11877
11878(define-public emacs-adoc-mode
11879 (package
11880 (name "emacs-adoc-mode")
11881 (version "0.6.6")
11882 (source
11883 (origin
11884 (method url-fetch)
11885 (uri (string-append "https://stable.melpa.org/packages/adoc-mode-"
11886 version ".el"))
11887 (sha256
11888 (base32
11889 "1c6hrgxxsnl2c19rgjykpm7r4xg9lp6bmk5z6bi7g8pqlrgwffcy"))))
11890 (build-system emacs-build-system)
11891 (propagated-inputs
11892 `(("emacs-markup-faces" ,emacs-markup-faces)))
11893 (home-page "https://github.com/sensorflo/adoc-mode/wiki")
11894 (synopsis "AsciiDoc mode for Emacs")
11895 (description "This package provides an Emacs major mode for editing AsciiDoc
11896files. It focuses on highlighting the document to improve readability.")
11897 (license license:gpl2+)))
11898
11899(define-public emacs-rust-mode
11900 (let ((commit
11901 ;; Last release is old (2016), use more recent commit to get bug
11902 ;; fixes.
11903 "64b4a2450e4d4c47f6307851c9b2598cd2254d68")
11904 (revision "0"))
11905 (package
11906 (name "emacs-rust-mode")
11907 (version (git-version "0.3.0" revision commit))
11908 (source (origin
11909 (method git-fetch)
11910 (uri
11911 (git-reference
11912 (url "https://github.com/rust-lang/rust-mode")
11913 (commit commit)))
11914 (file-name (git-file-name name version))
11915 (sha256
11916 (base32
11917 "0pbz36lljgb7bdgx3h3g0pq1nss1kvn8mhk1l3mknsmynd6w4nd8"))))
11918 (build-system emacs-build-system)
11919 (arguments
11920 `(#:phases
11921 (modify-phases %standard-phases
11922 (replace 'check
11923 (lambda _
11924 (invoke "sh" "run_rust_emacs_tests.sh"))))))
11925 (home-page "https://github.com/rust-lang/rust-mode")
11926 (synopsis "Major Emacs mode for editing Rust source code")
11927 (description "This package provides a major Emacs mode for editing Rust
11928source code.")
11929 (license (list license:expat
11930 license:asl2.0)))))
11931
11932(define-public emacs-ztree
11933 (let ((commit "c54425a094353ec40a8179f9eab3596f76c6cf94"))
11934 (package
11935 (name "emacs-ztree")
11936 (version (git-version "1.0.5" "1" commit))
11937 (source
11938 (origin
11939 (method git-fetch)
11940 (uri (git-reference
11941 (url "https://github.com/fourier/ztree")
11942 (commit commit)))
11943 (file-name (git-file-name name version))
11944 (sha256
11945 (base32
11946 "0j8fpxds8m1zi04nrs8vv21091abvh4n8ab76f1sgdxnp4l5cfb0"))))
11947 (build-system emacs-build-system)
11948 (home-page "https://github.com/fourier/ztree")
11949 (synopsis "Directory tree comparison mode for Emacs")
11950 (description "Ztree is a project dedicated to implementation of several
11951text-tree applications inside GNU Emacs. It consists of 2 subprojects:
11952@command{ztree-diff} and @command{ztree-dir} (the basis of
11953@command{ztree-diff}).")
11954 (license license:gpl3))))
11955
11956(define-public emacs-helm-org-contacts
11957 (let ((commit "0af703bd9a43032b89fdf5559673151d1ac2fffc"))
11958 (package
11959 (name "emacs-helm-org-contacts")
11960 (version (git-version "20180707" "1" commit))
11961 (source
11962 (origin
11963 (method git-fetch)
11964 (uri (git-reference
11965 (url "https://github.com/tmalsburg/helm-org-contacts")
11966 (commit commit)))
11967 (file-name (git-file-name name version))
11968 (sha256
11969 (base32
11970 "1cl7cm2ic9pg4vc9cdh84vzjj1x2lpd5ymimiva8h4l17kiphk4s"))))
11971 (build-system emacs-build-system)
11972 (propagated-inputs
11973 `(("emacs-dash" ,emacs-dash)
11974 ("emacs-helm" ,emacs-helm)
11975 ("emacs-s" ,emacs-s)))
11976 (home-page "https://github.com/tmalsburg/helm-org-contacts")
11977 (synopsis "Helm source for org-contacts")
11978 (description "This Helm source can be used to search contacts stored in
11979org-contacts format. There are actions for inserting postal addresses, email
11980addresses, and phone numbers in the buffer where @command{helm-org-contacts}
11981was called.")
11982 (license license:gpl3))))
11983
11984(define-public emacs-dired-du
11985 (package
11986 (name "emacs-dired-du")
11987 (version "0.5.1")
11988 (source
11989 (origin
11990 (method url-fetch)
11991 (uri (string-append
11992 "https://elpa.gnu.org/packages/dired-du-"
11993 version ".tar"))
11994 (sha256
11995 (base32
11996 "1091scnrjh0a4gja4z6jxic6ghy1yryv46qk9c76pmh50cpw6766"))))
11997 (build-system emacs-build-system)
11998 (home-page "http://elpa.gnu.org/packages/dired-du.html")
11999 (synopsis "Dired with recursive directory sizes")
12000 (description
12001 "Display the recursive size of directories in Dired.
12002This file defines a minor mode @command{dired-du-mode} to show the recursive
12003size of directories in Dired buffers. If @command{du} program is available,
12004then the directory sizes are obtained with it. Otherwise, the directory sizes
12005are obtained with Lisp. The former is faster and provide a more precise
12006value. For directories where the user doesn't have read permission, the
12007recursive size is not obtained. Once this mode is enabled, every new Dired
12008buffer displays recursive dir sizes.")
12009 (license license:gpl3+)))
12010
12011(define-public emacs-pcre2el
12012 ;; Last release is very old so we get the latest commit.
12013 (let ((commit "0b5b2a2c173aab3fd14aac6cf5e90ad3bf58fa7d"))
12014 (package
12015 (name "emacs-pcre2el")
12016 (version (git-version "1.8" "1" commit))
12017 (source
12018 (origin
12019 (method git-fetch)
12020 (uri (git-reference
12021 (url "https://github.com/joddie/pcre2el")
12022 (commit commit)))
12023 (file-name (git-file-name name version))
12024 (sha256
12025 (base32
12026 "14br6ad138qx1z822wqssswqiihxiynz1k69p6mcdisr2q8yyi1z"))))
12027 (build-system emacs-build-system)
12028 (home-page "https://github.com/joddie/pcre2el")
12029 (synopsis "Convert between PCRE, Emacs and rx regexp syntax")
12030 (description "@code{pcre2el} or @code{rxt} (RegeXp Translator or RegeXp
12031Tools) is a utility for working with regular expressions in Emacs, based on a
12032recursive-descent parser for regexp syntax. In addition to converting (a
12033subset of) PCRE syntax into its Emacs equivalent, it can do the following:
12034
12035@itemize
12036@item convert Emacs syntax to PCRE
12037@item convert either syntax to @code{rx}, an S-expression based regexp syntax
12038@item untangle complex regexps by showing the parse tree in @code{rx} form and
12039highlighting the corresponding chunks of code
12040@item show the complete list of strings (productions) matching a regexp,
12041provided the list is finite
12042@item provide live font-locking of regexp syntax (so far only for Elisp
12043buffers – other modes on the TODO list).
12044@end itemize\n")
12045 (license license:gpl3))))
12046
12047(define-public emacs-magit-todos
12048 (package
12049 (name "emacs-magit-todos")
12050 (version "1.1")
12051 (source
12052 (origin
12053 (method git-fetch)
12054 (uri (git-reference
12055 (url "https://github.com/alphapapa/magit-todos")
12056 (commit version)))
12057 (file-name (git-file-name name version))
12058 (sha256
12059 (base32
12060 "1mvzbxshr6zjdim3jd368ar1hy5l7n22i03cpvzdmrw83kkwdyhd"))))
12061 (build-system emacs-build-system)
12062 (propagated-inputs
12063 `(("emacs-async" ,emacs-async)
12064 ("emacs-dash" ,emacs-dash)
12065 ("emacs-f" ,emacs-f)
12066 ("emacs-hl-todo" ,emacs-hl-todo)
12067 ("magit" ,emacs-magit)
12068 ("emacs-pcre2el" ,emacs-pcre2el)
12069 ("emacs-s" ,emacs-s)))
12070 (home-page "https://github.com/alphapapa/magit-todos")
12071 (synopsis "Show source files' TODOs (and FIXMEs, etc) in Magit status buffer")
12072 (description "This package displays keyword entries from source code
12073comments and Org files in the Magit status buffer. Activating an item jumps
12074to it in its file. By default, it uses keywords from @code{hl-todo}, minus a
12075few (like NOTE).")
12076 (license license:gpl3)))
12077
12078(define-public emacs-git-annex
12079 ;; Unreleased version has a fontification fix.
12080 (let ((commit "ebdb44aef1883f1b2b8058e05d30fb9315b03707")
12081 (revision "1"))
12082 (package
12083 (name "emacs-git-annex")
12084 (version (string-append "1.1-" revision "." (string-take commit 8)))
12085 (source
12086 (origin
12087 (method git-fetch)
12088 (uri (git-reference
12089 (url "https://github.com/jwiegley/git-annex-el")
12090 (commit commit)))
12091 (file-name (string-append name "-" version "-checkout"))
12092 (sha256
12093 (base32
12094 "1mzv40gj7k10h7h5s43my8msgzjpj680qprqa9pp8nbyhl49v3wh"))))
12095 (build-system emacs-build-system)
12096 (home-page "https://github.com/jwiegley/git-annex-el")
12097 (synopsis "Emacs integration for git-annex")
12098 (description "Enhances Dired and buffers visiting annex files with
12099git-annex functionality. In Dired, the names of annex files are shortened by
12100hiding the symbolic links and fontified based on whether content is present.
12101Commands for performing some common operations (e.g., unlocking and adding
12102files) are provided.")
12103 (license license:gpl2+))))
12104
12105(define-public emacs-hackernews
12106 (let ((commit "d8c450bbc76d6bb65ec5cdb6c3b888a23f3769e9"))
12107 (package
12108 (name "emacs-hackernews")
12109 (version (git-version "0.4.0" "1" commit))
12110 (source
12111 (origin
12112 (method git-fetch)
12113 (uri (git-reference
12114 (url "https://github.com/clarete/hackernews.el")
12115 (commit commit)))
12116 (file-name (git-file-name name version))
12117 (sha256
12118 (base32
12119 "06mp4n6c300jv5lhwf50ircfjckzr2p1zd38s4mqnxxjlf1maim7"))))
12120 (build-system emacs-build-system)
12121 (home-page "https://github.com/clarete/hackernews.el")
12122 (synopsis "Hacker News client for Emacs")
12123 (description "The @command{hackernews} package is able to fetch stories
12124from six different Hacker News feeds, namely top, new, best, ask, show and job
12125stories. The default feed is top stories, which corresponds to the Hacker
12126News homepage.")
12127 (license license:gpl3))))
12128
12129(define-public emacs-youtube-dl
12130 (let ((commit "7c9d7a7d05b72a7d1b1257a36c5e2b2567b185dd"))
12131 (package
12132 (name "emacs-youtube-dl")
12133 (version (git-version "1.0" "1" commit))
12134 (source
12135 (origin
12136 (method git-fetch)
12137 (uri (git-reference
12138 (url "https://github.com/skeeto/youtube-dl-emacs/")
12139 (commit commit)))
12140 (file-name (git-file-name name version))
12141 (sha256
12142 (base32
12143 "0mh4s089a4x8s380agzb2306kdp1hl204px1n5rrrrdcls7imnh6"))))
12144 (build-system emacs-build-system)
12145 (inputs
12146 `(("youtube-dl" ,youtube-dl)))
12147 (arguments
12148 `(#:phases
12149 (modify-phases %standard-phases
12150 (add-after 'unpack 'configure
12151 (lambda* (#:key inputs #:allow-other-keys)
12152 (let ((youtube-dl (assoc-ref inputs "youtube-dl")))
12153 ;; .el is read-only in git.
12154 (chmod "youtube-dl.el" #o644)
12155 ;; Specify the absolute file names of the various
12156 ;; programs so that everything works out-of-the-box.
12157 (emacs-substitute-variables
12158 "youtube-dl.el"
12159 ("youtube-dl-program"
12160 (string-append youtube-dl "/bin/youtube-dl")))))))))
12161 (home-page "https://github.com/skeeto/youtube-dl-emacs/")
12162 (synopsis "Emacs youtube-dl download manager")
12163 (description "This package manages a video download queue for
12164@command{youtube-dl}, which serves as the back end. It manages a single
12165@command{youtube-dl} subprocess, downloading one video at a time. New videos
12166can be queued at any time.")
12167 (license license:unlicense))))
12168
12169(define-public emacs-org-web-tools
12170 (package
12171 (name "emacs-org-web-tools")
12172 (version "1.0")
12173 (source
12174 (origin
12175 (method git-fetch)
12176 (uri (git-reference
12177 (url "https://github.com/alphapapa/org-web-tools")
12178 (commit version)))
12179 (file-name (git-file-name name version))
12180 (sha256
12181 (base32
12182 "0kak9h5ny00d39gnwspv53nadnag01brw2fq9zk5wpfc91h9bjng"))))
12183 (build-system emacs-build-system)
12184 (propagated-inputs
12185 `(("emacs-dash" ,emacs-dash)
12186 ("emacs-esxml" ,emacs-esxml)
12187 ("emacs-s" ,emacs-s)))
12188 (inputs
12189 `(("pandoc" ,ghc-pandoc)))
12190 (arguments
12191 `(#:phases
12192 (modify-phases %standard-phases
12193 (add-after 'unpack 'patch-exec-paths
12194 (lambda* (#:key inputs #:allow-other-keys)
12195 (let ((pandoc (assoc-ref inputs "pandoc")))
12196 (substitute* "org-web-tools.el"
12197 (("\"pandoc\"") (string-append "\"" pandoc "/bin/pandoc\"")))
12198 #t))))))
12199 (home-page "https://github.com/alphapapa/org-web-tools")
12200 (synopsis "Display/Process web page as Org-mode content")
12201 (description "This package contains library functions and commands useful
12202for retrieving web page content and processing it into Org-mode content.
12203
12204For example, you can copy a URL to the clipboard or kill-ring, then run a
12205command that downloads the page, isolates the “readable” content with
12206@command{eww-readable}, converts it to Org-mode content with Pandoc, and
12207displays it in an Org-mode buffer. Another command does all of that but
12208inserts it as an Org entry instead of displaying it in a new buffer.")
12209 (license license:gpl3+)))
12210
12211(define-public emacs-blimp
12212 (let ((commit "e420763d6d18b5d1be552cdbc47f91418343db03"))
12213 (package
12214 (name "emacs-blimp")
12215 (version (git-version "0.0.0" "1" commit))
12216 (source
12217 (origin
12218 (method git-fetch)
12219 (uri (git-reference
12220 (url "https://github.com/walseb/blimp")
12221 (commit commit)))
12222 (file-name (git-file-name name version))
12223 (sha256
12224 (base32
12225 "09wmhpym516b81dfq8smdmysh1fn610dzlyvyl2rkx8600f0fizd"))))
12226 (build-system emacs-build-system)
12227 (propagated-inputs
12228 `(("emacs-eimp" ,emacs-eimp)))
12229 (home-page "https://github.com/walseb/blimp")
12230 (synopsis "Emacs wrapper around all Imagemagick commands")
12231 (description "Blimp (Bustling Image Manipulation Package) is a complete
12232wrapper around all Imagemagick commands with descriptions, autocompletion (for
12233some commands) and hints displayed in prompt using @command{eimp.el} to
12234execute its commands and resize images.")
12235 (license license:gpl3+))))
12236
12237(define-public emacs-synosaurus
12238 (let ((commit "8bf95b935976ec0a1964cf175ed57cc5f6f93bdb"))
12239 (package
12240 (name "emacs-synosaurus")
12241 (version (git-version "0.1.0" "1" commit))
12242 (source
12243 (origin
12244 (method git-fetch)
12245 (uri (git-reference
12246 (url "https://github.com/hpdeifel/synosaurus")
12247 (commit commit)))
12248 (file-name (git-file-name name version))
12249 (sha256
12250 (base32
12251 "15by9jccab6kyplxa6k0glzaivxkqdigl33gl2qi2cvy6f2q7gva"))))
12252 (build-system emacs-build-system)
12253 (propagated-inputs
12254 `(("wordnet" ,wordnet)))
12255 (arguments
12256 `(#:phases
12257 (modify-phases %standard-phases
12258 (add-after 'unpack 'configure
12259 (lambda* (#:key inputs outputs #:allow-other-keys)
12260 (let ((wn (assoc-ref inputs "wordnet")))
12261 ;; .el is read-only in git.
12262 (chmod "synosaurus-wordnet.el" #o644)
12263 ;; Specify the absolute file names of the various
12264 ;; programs so that everything works out-of-the-box.
12265 (emacs-substitute-variables
12266 "synosaurus-wordnet.el"
12267 ("wordnet-command"
12268 (string-append wn "/bin/wn")))))))))
12269 (home-page "https://github.com/hpdeifel/synosaurus")
12270 (synopsis "Extensible thesaurus mode for Emacs")
12271 (description "Synosaurus is a thesaurus fontend for Emacs with pluggable
12272backends, including the @command{wordnet} offline backend.")
12273 (license license:gpl3+))))
12274
12275(define-public emacs-all-the-icons
12276 (package
12277 (name "emacs-all-the-icons")
12278 (version "3.2.0")
12279 (source
12280 (origin
12281 (method git-fetch)
12282 (uri (git-reference
12283 (url "https://github.com/domtronn/all-the-icons.el.git")
12284 (commit version)))
12285 (file-name (git-file-name name version))
12286 (sha256
12287 (base32
12288 "1sdl33117lccznj38021lwcdnpi9nxmym295q6y460y4dm4lx0jn"))))
12289 (build-system emacs-build-system)
12290 (arguments
12291 `(#:include '("\\.el$" "^data/" "^fonts/")
12292 ;; Compiling "test/" fails with "Symbol’s value as variable is void:
12293 ;; all-the-icons--root-code". Ignoring tests.
12294 #:exclude '("^test/")
12295 #:tests? #f))
12296 (propagated-inputs
12297 `(("f" ,emacs-f)
12298 ("memoize" ,emacs-memoize)))
12299 (home-page "https://github.com/domtronn/all-the-icons.el")
12300 (synopsis "Collect icon fonts and propertize them within Emacs")
12301 (description "All-the-icons is a utility package to collect various icon
12302fonts and propertize them within Emacs. Icon fonts allow you to propertize
12303and format icons the same way you would normal text. This enables things such
12304as better scaling of and anti aliasing of the icons.")
12305 ;; Package is released under Expat license. Elisp files are licensed
12306 ;; under GPL3+. Fonts come with various licenses: Expat for
12307 ;; "all-the-icons.ttf" and "file-icons.ttf", Apache License 2.0 for
12308 ;; "material-design-icons.ttf", and SIL OFL 1.1 for "fontawesome.ttf",
12309 ;; "ocitcons.ttf" and "weathericons.ttf".
12310 (license
12311 (list license:expat license:gpl3+ license:silofl1.1 license:asl2.0))))
12312
12313(define-public emacs-powerline
12314 (package
12315 (name "emacs-powerline")
12316 (version "2.4")
12317 (source
12318 (origin
12319 (method git-fetch)
12320 (uri (git-reference
12321 (url "https://github.com/milkypostman/powerline.git")
12322 (commit version)))
12323 (file-name (git-file-name name version))
12324 (sha256
12325 (base32
12326 "1hp3xp18943n0rlggz55150020ivw8gvi1vyxkr4z8xhpwq4gaar"))))
12327 (build-system emacs-build-system)
12328 (home-page "https://github.com/milkypostman/powerline/")
12329 (synopsis "Mode-line plugin for Emacs")
12330 (description "Powerline is a utility plugin which allows you to create
12331a better-looking, more functional Emacs mode-line. A collection of predefined
12332themes comes with the package.")
12333 (license license:gpl3+)))
12334
12335(define-public emacs-spaceline
12336 (package
12337 (name "emacs-spaceline")
12338 (version "2.0.1")
12339 (source
12340 (origin
12341 (method git-fetch)
12342 (uri (git-reference
12343 (url "https://github.com/TheBB/spaceline.git")
12344 (commit (string-append "v" version))))
12345 (file-name (git-file-name name version))
12346 (sha256
12347 (base32
12348 "1q8r95zfrh0vxna5ml2pq9b9f66clfqcl4d2qy2aizkvzyxg6skl"))))
12349 (build-system emacs-build-system)
12350 (propagated-inputs
12351 `(("dash" ,emacs-dash)
12352 ("powerline" ,emacs-powerline)
12353 ("s" ,emacs-s)))
12354 (home-page "https://github.com/TheBB/spaceline")
12355 (synopsis "Powerline theme from Spacemacs")
12356 (description "Spaceline provides Spacemacs' mode-line theme.
12357This package provides features for three kinds of users.
12358
12359@itemize
12360@item You just want to use the Spacemacs mode-line theme and forget about it.
12361@item You want to use something similar to the Spacemacs mode-line theme, but
12362with a handful of easy tweaks.
12363@item You want an easy-to-use library for building your own mode-line from
12364scratch, and you think the Spacemacs theme looks good.
12365@end itemize")
12366 (license license:gpl3+)))
12367
12368(define-public emacs-column-marker
12369 (package
12370 (name "emacs-column-marker")
12371 (version "9")
12372 (source
12373 (origin
12374 (method url-fetch)
12375 (uri "https://www.emacswiki.org/emacs/download/column-marker.el")
12376 (sha256 (base32 "05bv198zhqw5hqq6cr11mhz02dpca74hhp1ycwq369m0yb2naxy9"))))
12377 (build-system emacs-build-system)
12378 (home-page "https://www.emacswiki.org/emacs/ColumnMarker")
12379 (synopsis "Emacs mode for highlighting columns")
12380 (description
12381 "With @code{column-marker.el} you can highlight any number of text columns.
12382Three such highlight column markers are provided by default. This is
12383especially useful for languages like COBOL or Fortran where certain columns
12384have special meaning. It is also handy for aligning text across long vertical
12385distances. Multi-column characters, such as @kbd{TAB} are treated
12386correctly.")
12387 (license license:gpl2+)))
12388
12389(define-public emacs-slime-repl-ansi-color
12390 (let ((commit "ad03263f5d4de473bc173b64a6fc3dc1106393d7"))
12391 (package
12392 (name "emacs-slime-repl-ansi-color")
12393 (version (git-version "0.0.0" "1" commit))
12394 (source (origin
12395 (method git-fetch)
12396 (uri (git-reference
12397 (url "https://github.com/deadtrickster/slime-repl-ansi-color")
12398 (commit commit)))
12399 (file-name (git-file-name name version))
12400 (sha256
12401 (base32
12402 "0bpg7gxz310x7bnlg324c507sxc5gxwwz6h64h6kdq141r73vbi4"))))
12403 (build-system emacs-build-system)
12404 (home-page "https://github.com/deadtrickster/slime-repl-ansi-color")
12405 (synopsis "Color ANSI codes in the REPL of SLIME")
12406 (description "Color ANSI codes in the REPL of SLIME")
12407 (license license:gpl2+))))
12408
12409(define-public emacs-helm-slime
12410 (let ((commit "9980925f3e5f6ac5a30369d2a544e82006a79c76"))
12411 (package
12412 (name "emacs-helm-slime")
12413 (version (git-version "0.0.0" "1" commit))
12414 (source (origin
12415 (method git-fetch)
12416 (uri (git-reference
12417 (url "https://github.com/emacs-helm/helm-slime")
12418 (commit commit)))
12419 (file-name (git-file-name name version))
12420 (sha256
12421 (base32
12422 "0xa07gpfkzwn522x9573mq5mfxvbawdgd0m93gqj6w5a14wk8zzh"))))
12423 (build-system emacs-build-system)
12424 (propagated-inputs
12425 `(("emacs-helm" ,emacs-helm)
12426 ("emacs-slime" ,emacs-slime)))
12427 (home-page "https://github.com/emacs-helm/helm-slime")
12428 (synopsis "Helm for SLIME, the Superior Lisp Interaction Mode for Emacs")
12429 (description "Helm-SLIME defines a few new commands:
12430
12431@itemize
12432@item helm-slime-complete: Select a symbol from the SLIME completion systems.
12433@item helm-slime-list-connections: Yet another slime-list-connections with Helm.
12434@item: helm-slime-apropos: Yet another slime-apropos with Helm.
12435@item helm-slime-repl-history: Select an input from the SLIME REPL history and insert it.
12436@end itemize\n")
12437 (license license:gpl3+))))
12438
12439(define-public emacs-gtk-look
12440 (package
12441 (name "emacs-gtk-look")
12442 (version "29")
12443 (source (origin
12444 (method url-fetch)
12445 (uri "https://download.tuxfamily.org/user42/gtk-look.el")
12446 (sha256
12447 (base32
12448 "14p2nwrd51cr1v06fxbjjn6jdrkf9d6vcxhmscm0kl677s25ypsp"))))
12449 (build-system emacs-build-system)
12450 (arguments
12451 `(#:phases
12452 (modify-phases %standard-phases
12453 (add-after 'unpack 'configure
12454 (lambda _
12455 ;; File is read-only.
12456 (chmod "gtk-look.el" #o644)
12457 (emacs-substitute-variables "gtk-look.el"
12458 ("gtk-lookup-devhelp-indices"
12459 '(list (expand-file-name "~/.guix-profile/share/gtk-doc/html/*/*.devhelp*"))))
12460 #t)))))
12461 (home-page "http://user42.tuxfamily.org/gtk-look/index.html")
12462 (synopsis "Find and display HTML documentation for GTK, GNOME and Glib")
12463 (description "@command{gtk-look} finds and displays HTML documentation for
12464GTK, GNOME and Glib functions and variables in Emacs, similar to what
12465info-lookup-symbol does for info files (C-h S). The documentation is expected
12466to be devhelp indexes with HTML files. The location of the indexes can be
12467customized. In addition to C code development @command{gtk-look} is good for
12468
12469@itemize
12470@item @command{perl-gtk2}, recognising class funcs like
12471@command{Gtk2::Label->new} and bare method names like @command{set_text}.
12472@item @command{guile-gnome}, recognising methods like @command{set-text} and
12473classes like @command{<gtk-window>}.
12474@end itemize\n")
12475 (license license:gpl3+)))
12476
12477(define-public emacs-ov
12478 (package
12479 (name "emacs-ov")
12480 (version "1.0.6")
12481 (source (origin
12482 (method git-fetch)
12483 (uri (git-reference
12484 (url "https://github.com/ShingoFukuyama/ov.el.git")
12485 (commit version)))
12486 (file-name (git-file-name name version))
12487 (sha256
12488 (base32
12489 "0qxk2rf84j86syxi8xknsq252irwg7sz396v3bb4wqz4prpj0kzc"))))
12490 (build-system emacs-build-system)
12491 (home-page "https://github.com/ShingoFukuyama/ov.el")
12492 (synopsis "Overlay library for Emacs Lisp")
12493 (description "@code{ov.el} provides a simple way to manipulate overlays in
12494Emacs.")
12495 (license license:gpl3+)))
12496
12497(define-public emacs-matrix-client
85a3d63f 12498 (let ((commit "a0623667b07a4bf60980c97b078e9faed97ace79"))
eeb883cb
RW
12499 (package
12500 (name "emacs-matrix-client")
85a3d63f 12501 (version (git-version "0.0.0" "3" commit))
eeb883cb
RW
12502 (source (origin
12503 (method git-fetch)
12504 (uri (git-reference
12505 (url "https://github.com/jgkamat/matrix-client-el.git")
12506 (commit commit)))
12507 (file-name (git-file-name name version))
12508 (sha256
12509 (base32
85a3d63f 12510 "1zya8id3y9wzjaj7nplq7br6nhm3lsskv0fkn1xr1y77fzcfgcdb"))))
eeb883cb
RW
12511 (build-system emacs-build-system)
12512 (propagated-inputs
12513 `(("a" ,emacs-a)
e6ab20f7 12514 ("anaphora" ,emacs-anaphora)
eeb883cb
RW
12515 ("dash" ,emacs-dash)
12516 ("esxml" ,emacs-esxml)
12517 ("f" ,emacs-f)
12518 ("frame-purpose" ,emacs-frame-purpose)
12519 ("ht" ,emacs-ht)
12520 ("ov" ,emacs-ov)
12521 ("rainbow-identifiers" ,emacs-rainbow-identifiers)
12522 ("request" ,emacs-request)
12523 ("s" ,emacs-s)
12524 ("tracking" ,emacs-tracking)))
12525 (home-page "https://github.com/jgkamat/matrix-client-el")
12526 (synopsis "Matrix client for Emacs")
12527 (description "@code{matrix-client} is a simple chat UI to Matrix.org
12528rooms. It also provides an API which allows Emacs to seamlessly create
12529RPC channels with users and other software.")
12530 (license license:gpl3+))))
12531
12532(define-public emacs-sesman
12533 (package
12534 (name "emacs-sesman")
12535 (version "0.3.3")
12536 (source
12537 (origin
12538 (method git-fetch)
12539 (uri (git-reference
12540 (url "https://github.com/vspinu/sesman.git")
12541 (commit (string-append "v" version))))
12542 (file-name (git-file-name name version))
12543 (sha256
12544 (base32
12545 "0r32f8ma9ddczxrrdz0nadp14j3zmk10q1ch02gb82synkx3xdra"))))
12546 (build-system emacs-build-system)
12547 (arguments
12548 `(#:tests? #t
12549 #:test-command '("make" "test")))
12550 (home-page "https://github.com/vspinu/sesman")
12551 (synopsis "Session manager for Emacs based IDEs")
12552 (description "Sesman provides facilities for session management and
12553interactive session association with the current contexts (project, directory,
12554buffers). While sesman can be used to manage arbitrary sessions, it primary
12555targets the Emacs based IDEs (CIDER, ESS, Geiser, Robe, SLIME etc.)")
12556 (license license:gpl3+)))
12557
12558(define-public emacs-buttercup
12559 (package
12560 (name "emacs-buttercup")
12561 (version "1.16")
12562 (source
12563 (origin
12564 (method git-fetch)
12565 (uri (git-reference
12566 (url "https://github.com/jorgenschaefer/emacs-buttercup.git")
12567 (commit (string-append "v" version))))
12568 (file-name (git-file-name name version))
12569 (sha256
12570 (base32
12571 "0dckgcyzsav6ld78bcyrrygy1cz1jvqgav6vy8f6klpmk3r8xrl1"))))
12572 (build-system emacs-build-system)
12573 (arguments
12574 `(#:tests? #t
12575 #:test-command '("make" "test")
12576 #:phases
12577 (modify-phases %standard-phases
12578 (add-after 'install 'install-bin
12579 (lambda* (#:key outputs #:allow-other-keys)
12580 (install-file "bin/buttercup"
12581 (string-append (assoc-ref outputs "out") "/bin"))
12582 #t)))))
12583 (home-page "https://github.com/jorgenschaefer/emacs-buttercup")
12584 (synopsis "Behavior driven emacs lisp testing framework")
12585 (description "Buttercup is a behavior-driven development framework for
12586testing Emacs Lisp code. It allows to group related tests so they can share
12587common set-up and tear-down code, and allows the programmer to \"spy\" on
12588functions to ensure they are called with the right arguments during testing.")
12589 (license license:gpl3+)))
12590
12591(define-public emacs-wordnut
12592 (let ((commit "feac531404041855312c1a046bde7ea18c674915")
12593 (revision "0"))
12594 (package
12595 (name "emacs-wordnut")
12596 (version (git-version "0.1" revision commit))
12597 (home-page "https://github.com/gromnitsky/wordnut")
12598 (source (origin
12599 (method git-fetch)
12600 (uri (git-reference (url home-page) (commit commit)))
12601 (sha256
12602 (base32
12603 "1jl0b6g64a9w0q7bfvwha67vgws5xd15b7mkfyb5gkz3pymqhfxn"))
12604 (patches
12605 (search-patches "emacs-wordnut-require-adaptive-wrap.patch"))
12606 (file-name (git-file-name name version))))
12607 (build-system emacs-build-system)
12608 (propagated-inputs
12609 `(("wordnet" ,wordnet)
12610 ("emacs-adaptive-wrap" ,emacs-adaptive-wrap)))
12611 (synopsis "Major mode for WordNet")
12612 (description "This Emacs package provides an interface for
12613@code{wordnet}. Features include completion, if the query is not found
12614too ambiguous and navigation in the result buffer.")
12615 (license license:gpl3+))))
12616
12617(define-public emacs-frame-purpose
12618 (package
12619 (name "emacs-frame-purpose")
12620 (version "1.0")
12621 (source (origin
12622 (method git-fetch)
12623 (uri (git-reference
12624 (url "https://github.com/alphapapa/frame-purpose.el.git")
12625 (commit version)))
12626 (sha256
12627 (base32
12628 "0jq2aam1yvccw887ighd1wm2xkvk5bv53ffiz3crcl16a255aj4q"))
12629 (file-name (git-file-name name version))))
12630 (build-system emacs-build-system)
12631 (inputs
12632 `(("dash" ,emacs-dash)))
12633 (synopsis "Purpose-specific frames for Emacs")
12634 (description "@code{frame-purpose} makes it easy to open purpose-specific
12635frames that only show certain buffers, e.g. by buffers’ major mode, their
12636filename or directory, etc, with custom frame/X-window titles, icons, and
12637other frame parameters.")
12638 (home-page "https://github.com/alphapapa/frame-purpose.el")
12639 (license license:gpl3+)))
12640
12641(define-public emacs-arduino-mode
12642 (let ((commit "3e2bad4569ad26e929e6db2cbcff0d6d36812698")) ;no release yet
12643 (package
12644 (name "emacs-arduino-mode")
12645 (version (git-version "0" "0" commit))
12646 (source (origin
12647 (method git-fetch)
12648 (uri (git-reference
12649 (url "https://github.com/bookest/arduino-mode.git")
12650 (commit commit)))
12651 (sha256
12652 (base32
12653 "1yvaqjc9hadbnnay5fprnh890xsp53kidad1zpb4a5z4a5z61n3c"))
12654 (file-name (git-file-name name version))))
12655 (build-system emacs-build-system)
12656 (synopsis "Emacs major mode for editing Arduino sketches")
12657 (description "Emacs major mode for editing Arduino sketches.")
12658 (home-page "https://github.com/bookest/arduino-mode")
12659 (license license:gpl3+))))
12660
12661(define-public emacs-general
12662 (let ((commit "675050199b5a30d54a24b58a367db32c0bdc47f5"))
12663 (package
12664 (name "emacs-general")
12665 (version (git-version "0" "0" commit))
12666 (home-page "https://github.com/noctuid/general.el")
12667 (source (origin
12668 (method git-fetch)
12669 (uri (git-reference
12670 (url (string-append home-page ".git"))
12671 (commit commit)))
12672 (sha256
12673 (base32
12674 "175yyhzk57yk1sskxh3d2jzhrh2waiibbcfsll167qxr117yji5h"))
12675 (file-name (git-file-name name version))))
12676 (build-system emacs-build-system)
12677 (synopsis "More convenient key definitions in emacs")
12678 (description "@code{general.el} provides a more convenient method for
12679binding keys in emacs (for both evil and non-evil users). Like
12680@code{use-package}, which provides a convenient, unified interface for
12681managing packages, @code{general.el} is intended to provide a convenient,
12682unified interface for key definitions. While this package does implement some
12683completely new functionality (such as the ability to make vim-style
12684keybindings under non-prefix keys with an optional timeout), its primary
12685purpose is to build on existing functionality to make key definition more
12686clear and concise. @code{general-define-key} is user-extensible and supports
12687defining multiple keys in multiple keymaps at once, implicitly wrapping key
12688strings with (@code{kbd ...}), using named prefix key sequences (like the
12689leader key in vim), and much more.")
12690 (license license:gpl3+))))
12691
12692(define-public emacs-tldr
12693 (let ((commit "398b197c8d2238628b07e1b32d0f373876279f4c"))
12694 (package
12695 (name "emacs-tldr")
12696 (version (git-version "0" "0" commit))
12697 (home-page "https://github.com/kuanyui/tldr.el")
12698 (source (origin
12699 (method git-fetch)
12700 (uri (git-reference
12701 (url (string-append home-page ".git"))
12702 (commit commit)))
12703 (sha256
12704 (base32
12705 "0iq7qlis6c6r2qkdpncrhh5vsihkhvy5x4y1y8cjb7zxkh62w33f"))
12706 (file-name (git-file-name name version))))
12707 (build-system emacs-build-system)
12708 (synopsis "Simplified and community-driven man pages for Emacs")
12709 (description "@code{emacs-tldr} allows the user to access tldr pages
12710from within emacs. The @code{tldr} pages are a community effort to simplify
12711the man pages with practical examples.")
12712 (license license:wtfpl2))))
9830f1a2
PN
12713
12714(define-public emacs-window-layout
12715 (package
12716 (name "emacs-window-layout")
12717 (version "1.4")
12718 (home-page "https://github.com/kiwanami/emacs-window-layout")
12719 (source (origin
12720 (method git-fetch)
12721 (uri (git-reference
12722 (url home-page)
12723 (commit (string-append "v" version))))
12724 (sha256
12725 (base32
12726 "0wgqi8r844lbx52fn6az8c1n8m681rp6dkfzd54wmdk1ka7zmvv6"))
12727 (file-name (git-file-name name version))))
12728 (build-system emacs-build-system)
12729 (synopsis "Simple window layout management framework for emacs")
12730 (description "A window-layout management library that can split a frame
12731or a window into some windows according to a layout recipe.")
12732 (license license:gpl3+)))
5544a07f
PN
12733
12734(define-public emacs-e2wm
12735 (package
12736 (name "emacs-e2wm")
12737 (version "1.4")
12738 (home-page "https://github.com/kiwanami/emacs-window-manager")
12739 (source (origin
12740 (method git-fetch)
12741 (uri (git-reference
12742 (url home-page)
12743 (commit (string-append "v" version))))
12744 (sha256
12745 (base32
12746 "12midsrx07pdrsr1qbl2rpi7xyhxqx08bkz7n7gf8vsmqkpfp56s"))
12747 (file-name (git-file-name name version))))
12748 (build-system emacs-build-system)
12749 (propagated-inputs
12750 `(("emacs-window-layout" ,emacs-window-layout)))
12751 (synopsis "Equilibrium Emacs Window Manager")
12752 (description "E2WM is a window manager for Emacs. It enables to
12753customize the place of pop-up window, how the windows are split, how the
12754buffers are located in the windows, keybinds to manipulate windows and
12755buffers, etc. It also has plug-ins to help your Emacs life.")
12756 (license license:gpl3+)))
3e1fcc5e
PN
12757
12758(define-public emacs-ctable
12759 (let ((commit "b8830d1ca95abb100a81bc32011bd17d5ecba000"))
12760 (package
12761 (name "emacs-ctable")
12762 (version (git-version "0.1.2" "1" commit))
12763 (home-page "https://github.com/kiwanami/emacs-ctable")
12764 (source (origin
12765 (method git-fetch)
12766 (uri (git-reference
12767 (url home-page)
12768 (commit commit)))
12769 (sha256
12770 (base32
12771 "0pg303pnqscrsbx9579hc815angszsgf9vpd2z2f8p4f4ka6a00h"))
12772 (file-name (git-file-name name version))))
12773 (build-system emacs-build-system)
12774 (synopsis "Table component for Emacs Lisp")
12775 (description "This program is a table component for Emacs Lisp. Other
12776programs can use this table component for the application UI.")
12777 (license license:gpl3+))))
8c98ce92
PN
12778
12779(define-public emacs-epc
12780 (let ((commit "e1bfa5ca163273859336e3cc89b4b6460f7f8cda"))
12781 (package
12782 (name "emacs-epc")
12783 (version (git-version "0.1.1" "1" commit))
12784 (home-page "https://github.com/kiwanami/emacs-epc")
12785 (source (origin
12786 (method git-fetch)
12787 (uri (git-reference
12788 (url home-page)
12789 (commit commit)))
12790 (sha256
12791 (base32
12792 "15nkrjgi64f829isfd6xrhl4zw8jirr8pkas7nisrbk1av868hx0"))
12793 (file-name (git-file-name name version))))
12794 (build-system emacs-build-system)
12795 (propagated-inputs
12796 `(("emacs-deferred" ,emacs-deferred)
12797 ("emacs-ctable" ,emacs-ctable)))
12798 (synopsis "RPC stack for Emacs Lisp")
12799 (description "This program is an asynchronous RPC stack for Emacs.
12800Using this RPC stack, Emacs can communicate with the peer process
12801smoothly. Because the protocol employs S-expression encoding and consists of
12802asynchronous communications, the RPC response is fairly good.")
12803 (license license:gpl3+))))
c010ec65
PN
12804
12805(define-public emacs-edbi
12806 (let ((commit "6f50aaf4bde75255221f2292c7a4ad3fa9d918c0"))
12807 (package
12808 (name "emacs-edbi")
12809 (version (git-version "0.1.3" "1" commit))
12810 (home-page "https://github.com/kiwanami/emacs-edbi")
12811 (source (origin
12812 (method git-fetch)
12813 (uri (git-reference
12814 (url home-page)
12815 (commit commit)))
12816 (sha256
12817 (base32
12818 "0x0igyvdcm4863n7zndvcv6wgzwgn7324cbfjja6xd7r0k936zdy"))
12819 (file-name (git-file-name name version))))
12820 (build-system emacs-build-system)
12821 (inputs
12822 `(("perl" ,perl)
12823 ("perl-rpc-epc-service" ,perl-rpc-epc-service)
12824 ("perl-dbi" ,perl-dbi)
12825 ;; TODO: Adding support for perl-dbd-mysql and others would
12826 ;; dramatically increase the closure size. Make several packages?
12827 ("perl-dbd-sqlite" ,perl-dbd-sqlite)))
12828 (propagated-inputs
12829 `(("emacs-e2wm" ,emacs-e2wm)
12830 ("emacs-epc" ,emacs-epc)))
12831 (arguments
12832 `(#:include '("\\.el$" "\\.pl$")
12833 #:phases
12834 (modify-phases %standard-phases
12835 (add-after 'install 'patch-path
12836 (lambda* (#:key inputs outputs #:allow-other-keys)
12837 (let ((perl (assoc-ref inputs "perl"))
12838 (dir (string-append (assoc-ref outputs "out")
12839 "/share/emacs/site-lisp/guix.d/edbi-"
12840 ,version)))
12841 (substitute* (string-append dir "/edbi.el")
12842 (("\"perl\"") (string-append "\"" perl "/bin/perl\"")))
12843 (chmod (string-append dir "/edbi-bridge.pl") #o555)
12844 (wrap-program (string-append dir "/edbi-bridge.pl")
12845 `("PERL5LIB" ":" prefix (,(getenv "PERL5LIB"))))
12846 #t))))))
12847 (synopsis "Database Interface for Emacs Lisp")
12848 (description "This program connects the database server through Perl's
12849DBI, and provides DB-accessing API and the simple management UI.")
12850 (license license:gpl3+))))
3d540c48
PN
12851
12852(define-public emacs-edbi-sqlite
12853 (let ((commit "52cb9ca1af7691b592f2cfd2f007847e7a4ccd5f"))
12854 (package
12855 (name "emacs-edbi-sqlite")
12856 (version (git-version "0.1.1" "1" commit))
12857 (home-page "https://github.com/proofit404/edbi-sqlite")
12858 (source (origin
12859 (method git-fetch)
12860 (uri (git-reference
12861 (url home-page)
12862 (commit commit)))
12863 (sha256
12864 (base32
12865 "1vll81386fx90lq5sy4rlxcik6mvw7zx5cc51f0yaca9bkcckp51"))
12866 (file-name (git-file-name name version))))
12867 (build-system emacs-build-system)
12868 (propagated-inputs
12869 `(("emacs-edbi" ,emacs-edbi)))
12870 (synopsis "Open SQLite files in Emacs")
12871 (description "This package is a convenience wrapper for @command{edbi}
12872to open SQLite databases.")
12873 (license license:gpl3+))))
f896abc7
LC
12874
12875(define-public emacs-nix-mode
12876 (package
12877 (name "emacs-nix-mode")
12878 (version "1.2.2")
12879 (source
12880 (origin
12881 (method url-fetch)
12882 (uri (string-append "https://github.com/NixOS/nix-mode/archive/v"
12883 version ".tar.gz"))
12884 (file-name (string-append name "-" version ".tar.gz"))
12885 (sha256
12886 (base32
12887 "06aqz0czznsj8835jqnk794sy2p6pa8kxfqwh0nl5d5vxivria6z"))))
12888 (build-system emacs-build-system)
12889 (inputs
12890 `(("emacs-company" ,emacs-company)
12891 ("emacs-mmm-mode" ,emacs-mmm-mode)))
12892 (home-page "https://github.com/NixOS/nix-mode")
12893 (synopsis "Emacs major mode for editing Nix expressions")
12894 (description "@code{nixos-mode} provides an Emacs major mode for editing
12895Nix expressions. It supports syntax highlighting, indenting and refilling of
12896comments.")
12897 (license license:lgpl2.1+)))