Merge branch 'master' into staging
[jackhill/guix/guix.git] / gnu / packages / emacs-xyz.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2014 Taylan Ulrich Bayirli/Kammer <taylanbayirli@gmail.com>
3 ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
4 ;;; Copyright © 2014, 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
5 ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Alex Kost <alezost@gmail.com>
6 ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
7 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
8 ;;; Copyright © 2016, 2017, 2018, 2019 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, 2020 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 Nikita <nikita@n0.is>
16 ;;; Copyright © 2016, 2019 Alex Griffin <a@ajgrf.com>
17 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
18 ;;; Copyright © 2016, 2017, 2018 Alex Vong <alexvong1995@gmail.com>
19 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Arun Isaac <arunisaac@systemreboot.net>
20 ;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
21 ;;; Copyright © 2017, 2018, 2019, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
22 ;;; Copyright © 2017, 2018, 2019, 2020 Clément Lassieur <clement@lassieur.org>
23 ;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
24 ;;; Copyright © 2017, 2018 Kyle Meyer <kyle@kyleam.com>
25 ;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
26 ;;; Copyright © 2017 George Clemmer <myglc2@gmail.com>
27 ;;; Copyright © 2017, 2018 Feng Shu <tumashu@163.com>
28 ;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
29 ;;; Copyright © 2017, 2018, 2019, 2020 Oleg Pykhalov <go.wigust@gmail.com>
30 ;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
31 ;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
32 ;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
33 ;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org>
34 ;;; Copyright © 2017, 2018, 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
35 ;;; Copyright © 2018 Sohom Bhattacharjee <soham.bhattacharjee15@gmail.com>
36 ;;; Copyright © 2018, 2019 Mathieu Lirzin <mthl@gnu.org>
37 ;;; Copyright © 2018, 2019, 2020 Pierre Neidhardt <mail@ambrevar.xyz>
38 ;;; Copyright © 2018, 2019 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
39 ;;; Copyright © 2018, 2019 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, 2019 Pierre Langlois <pierre.langlois@gmx.com>
44 ;;; Copyright © 2018, 2019, 2020 Brett Gilio <brettg@gnu.org>
45 ;;; Copyright © 2019, 2020 Dimakakos Dimos <bendersteed@teknik.io>
46 ;;; Copyright © 2019, 2020 Brian Leung <bkleung89@gmail.com>
47 ;;; Copyright © 2019 mikadoZero <mikadozero@yandex.com>
48 ;;; Copyright © 2019 Gabriel Hondet <gabrielhondet@gmail.com>
49 ;;; Copyright © 2019, 2020 Joseph LaFreniere <joseph@lafreniere.xyz>
50 ;;; Copyright © 2019 Amar Singh <nly@disroot.org>
51 ;;; Copyright © 2019 Baptiste Strazzulla <bstrazzull@hotmail.fr>
52 ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
53 ;;; Copyright © 2019 Jens Mølgaard <jens@zete.tk>
54 ;;; Copyright © 2019, 2020 Amin Bandali <bandali@gnu.org>
55 ;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
56 ;;; Copyright © 2019 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
57 ;;; Copyright © 2019 Stephen Webber <montokapro@gmail.com>
58 ;;; Copyright © 2019 Leo Prikler <leo.prikler@student.tugraz.at>
59 ;;; Copyright © 2019 David Wilson <david@daviwil.com>
60 ;;; Copyright © 2020 Paul Garlick <pgarlick@tourbillion-technology.com>
61 ;;; Copyright © 2020 Robert Smith <robertsmith@posteo.net>
62 ;;; Copyright © 2020 Evan Straw <evan.straw99@gmail.com>
63 ;;; Copyright © 2020 Masaya Tojo <masaya@tojo.tokyo>
64 ;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
65 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
66 ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
67 ;;; Copyright © 2020 6033fe7de85d <6033fe7de85d@airmail.cc>
68 ;;; Copyright © 2020 John Soo <jsoo1@asu.edu>
69 ;;; Copyright © 2020 Jérémy Korwin-Zmijowski <jeremy@korwin-zmijowski.fr>
70 ;;; Copyright © 2020 Alberto Eleuterio Flores Guerrero <barbanegra+guix@posteo.mx>
71 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
72 ;;; Copyright © 2020 pinoaffe <pinoaffe@airmail.cc>
73 ;;;
74 ;;; This file is part of GNU Guix.
75 ;;;
76 ;;; GNU Guix is free software; you can redistribute it and/or modify it
77 ;;; under the terms of the GNU General Public License as published by
78 ;;; the Free Software Foundation; either version 3 of the License, or (at
79 ;;; your option) any later version.
80 ;;;
81 ;;; GNU Guix is distributed in the hope that it will be useful, but
82 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
83 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
84 ;;; GNU General Public License for more details.
85 ;;;
86 ;;; You should have received a copy of the GNU General Public License
87 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
88
89 (define-module (gnu packages emacs-xyz)
90 #:use-module ((guix licenses) #:prefix license:)
91 #:use-module (guix packages)
92 #:use-module (guix cvs-download)
93 #:use-module (guix download)
94 #:use-module (guix git-download)
95 #:use-module (guix hg-download)
96 #:use-module (guix build-system gnu)
97 #:use-module (guix build-system cmake)
98 #:use-module (guix build-system emacs)
99 #:use-module (guix build-system glib-or-gtk)
100 #:use-module (guix build-system perl)
101 #:use-module (guix build-system trivial)
102 #:use-module (gnu packages)
103 #:use-module (gnu packages admin)
104 #:use-module (gnu packages audio)
105 #:use-module (gnu packages bash)
106 #:use-module (gnu packages cmake)
107 #:use-module (gnu packages code)
108 #:use-module (gnu packages cpp)
109 #:use-module (gnu packages curl)
110 #:use-module (gnu packages databases)
111 #:use-module (gnu packages dictionaries)
112 #:use-module (gnu packages emacs)
113 #:use-module (gnu packages guile)
114 #:use-module (gnu packages gtk)
115 #:use-module (gnu packages gnome)
116 #:use-module (gnu packages haskell-apps)
117 #:use-module (gnu packages ncurses)
118 #:use-module (gnu packages python)
119 #:use-module (gnu packages python-xyz)
120 #:use-module (gnu packages telephony)
121 #:use-module (gnu packages terminals)
122 #:use-module (gnu packages tex)
123 #:use-module (gnu packages texinfo)
124 #:use-module (gnu packages tcl)
125 #:use-module (gnu packages tls)
126 #:use-module (gnu packages pkg-config)
127 #:use-module (gnu packages xorg)
128 #:use-module (gnu packages lesstif)
129 #:use-module (gnu packages llvm)
130 #:use-module (gnu packages image)
131 #:use-module (gnu packages linux)
132 #:use-module (gnu packages libevent)
133 #:use-module (gnu packages lua)
134 #:use-module (gnu packages music)
135 #:use-module (gnu packages version-control)
136 #:use-module (gnu packages imagemagick)
137 #:use-module (gnu packages w3m)
138 #:use-module (gnu packages wget)
139 #:use-module (gnu packages autotools)
140 #:use-module (gnu packages base)
141 #:use-module (gnu packages compression)
142 #:use-module (gnu packages node)
143 #:use-module (gnu packages xml)
144 #:use-module (gnu packages glib)
145 #:use-module (gnu packages acl)
146 #:use-module (gnu packages mail)
147 #:use-module (gnu packages messaging)
148 #:use-module (gnu packages package-management)
149 #:use-module (gnu packages perl)
150 #:use-module (gnu packages pdf)
151 #:use-module (gnu packages rust-apps)
152 #:use-module (gnu packages scheme)
153 #:use-module (gnu packages speech)
154 #:use-module (gnu packages xiph)
155 #:use-module (gnu packages mp3)
156 #:use-module (gnu packages gettext)
157 #:use-module (gnu packages fribidi)
158 #:use-module (gnu packages gd)
159 #:use-module (gnu packages fontutils)
160 #:use-module (gnu packages password-utils)
161 #:use-module (gnu packages pulseaudio)
162 #:use-module (gnu packages sphinx)
163 #:use-module (gnu packages xdisorg)
164 #:use-module (gnu packages shells)
165 #:use-module (gnu packages sqlite)
166 #:use-module (gnu packages gnupg)
167 #:use-module (gnu packages video)
168 #:use-module (gnu packages haskell-xyz)
169 #:use-module (gnu packages wordnet)
170 #:use-module (gnu packages photo)
171 #:use-module (gnu packages uml)
172 #:use-module (guix utils)
173 #:use-module (srfi srfi-1)
174 #:use-module (ice-9 match))
175
176 ;;;
177 ;;; Emacs hacking.
178 ;;;
179
180 (define-public emacs-geiser
181 (package
182 (name "emacs-geiser")
183 (version "0.11.2")
184 (source (origin
185 (method git-fetch)
186 (uri (git-reference
187 (url "https://gitlab.com/jaor/geiser/")
188 (commit version)))
189 (file-name (git-file-name name version))
190 (sha256
191 (base32
192 "1khi1bghsjx6cs5acizmlbw9z19s4qycnji9krdbn42cbpv0rysv"))))
193 (build-system gnu-build-system)
194 (arguments
195 '(#:phases
196 (modify-phases %standard-phases
197 (add-after 'install 'post-install
198 (lambda* (#:key outputs #:allow-other-keys)
199 (symlink "geiser-install.el"
200 (string-append (assoc-ref outputs "out")
201 "/share/emacs/site-lisp/"
202 "geiser-autoloads.el"))
203 #t)))))
204 (inputs `(("guile" ,guile-2.2)))
205 (native-inputs
206 `(("emacs" ,emacs-minimal)
207 ("autoconf" ,autoconf)
208 ("automake" ,automake)
209 ("texinfo" ,texinfo)))
210 (home-page "https://nongnu.org/geiser/")
211 (synopsis "Collection of Emacs modes for Guile and Racket hacking")
212 (description
213 "Geiser is a collection of Emacs major and minor modes that conspire with
214 one or more Scheme implementations to keep the Lisp Machine Spirit alive. The
215 continuously running Scheme interpreter takes the center of the stage in
216 Geiser. A bundle of Elisp shims orchestrates the dialog between the Scheme
217 implementation, Emacs and, ultimately, the schemer, giving them access to live
218 metadata.")
219 (license license:bsd-3)))
220
221 (define-public emacs-ac-geiser
222 (let ((commit "93818c936ee7e2f1ba1b315578bde363a7d43d05")
223 (revision "0"))
224 (package
225 (name "emacs-ac-geiser")
226 (version (git-version "0.1" revision commit))
227 (source
228 (origin
229 (uri (git-reference
230 (url "https://github.com/xiaohanyu/ac-geiser.git")
231 (commit commit)))
232 (method git-fetch)
233 (sha256
234 (base32 "00n2qa26yilaj837n1yp6lbqa4gf30nkkbvanl7m9ih7k48ssqmw"))
235 (file-name (git-file-name name version))))
236 (build-system emacs-build-system)
237 (propagated-inputs
238 `(("geiser" ,emacs-geiser)
239 ("auto-complete" ,emacs-auto-complete)))
240 (synopsis "Auto-complete backend for geiser")
241 (description
242 "This package provides an auto-complete source for Scheme projects
243 using geiser.")
244 (license license:bsd-3)
245 (home-page "https://github.com/xiaohanyu/ac-geiser"))))
246
247 (define-public emacs-paredit
248 (package
249 (name "emacs-paredit")
250 (version "24")
251 (source (origin
252 (method url-fetch)
253 (uri (string-append "http://mumble.net/~campbell/emacs/paredit-"
254 version ".el"))
255 (sha256
256 (base32
257 "0pp3n8q6kc70blqsaw0zlzp6bc327dpgdrjr0cnh7hqg1lras7ka"))))
258 (build-system emacs-build-system)
259 (home-page "http://mumble.net/~campbell/emacs/paredit/")
260 (synopsis "Emacs minor mode for editing parentheses")
261 (description
262 "ParEdit (paredit.el) is a minor mode for performing structured editing
263 of S-expression data. The typical example of this would be Lisp or Scheme
264 source code.
265
266 ParEdit helps **keep parentheses balanced** and adds many keys for moving
267 S-expressions and moving around in S-expressions. Its behavior can be jarring
268 for those who may want transient periods of unbalanced parentheses, such as
269 when typing parentheses directly or commenting out code line by line.")
270 (license license:gpl3+)))
271
272 (define-public git-modes
273 (package
274 (name "emacs-git-modes")
275 (version "1.2.8")
276 (source (origin
277 (method git-fetch)
278 (uri (git-reference
279 (url "https://github.com/magit/git-modes")
280 (commit version)))
281 (file-name (git-file-name name version))
282 (sha256
283 (base32
284 "08hy7rbfazs6grkpk54i82bz0i0c74zcjk96cip8970h6jn3mj72"))))
285 (build-system emacs-build-system)
286 (home-page "https://github.com/magit/git-modes")
287 (synopsis "Emacs major modes for Git configuration files")
288 (description
289 "This package provides Emacs major modes for editing various Git
290 configuration files, such as .gitattributes, .gitignore, and .git/config.")
291 (license license:gpl3+)))
292
293 (define-public emacs-with-editor
294 (package
295 (name "emacs-with-editor")
296 (version "2.9.0")
297 (source (origin
298 (method git-fetch)
299 (uri (git-reference
300 (url "https://github.com/magit/with-editor.git")
301 (commit (string-append "v" version))))
302 (file-name (git-file-name name version))
303 (sha256
304 (base32
305 "1sjb3qqrn1rhmpkrn14l8rya6c3gwxwmgw74n779s54kvl9gn7a9"))))
306 (build-system emacs-build-system)
307 (propagated-inputs
308 `(("emacs-dash" ,emacs-dash)))
309 (home-page "https://github.com/magit/with-editor")
310 (synopsis "Emacs library for using Emacsclient as EDITOR")
311 (description
312 "This package provides an Emacs library to use the Emacsclient as
313 @code{$EDITOR} of child processes, making sure they know how to call home.
314 For remote processes a substitute is provided, which communicates with Emacs
315 on stdout instead of using a socket as the Emacsclient does.")
316 (license license:gpl3+)))
317
318 (define-public emacs-magit
319 ;; `magit-setup-buffer' macro introduced in c761d28d and required in
320 ;; `emacs-forge'.
321 (let ((commit "c761d28d49e5238037512b898db0ec9b40d85770"))
322 (package
323 (name "emacs-magit")
324 (version (git-version "2.90.1" "3" commit))
325 (source (origin
326 (method git-fetch)
327 (uri (git-reference
328 (url "https://github.com/magit/magit.git")
329 (commit commit)))
330 (file-name (git-file-name name version))
331 (sha256
332 (base32
333 "16qx0404l05q1m6w7y5j8ck1z5nfmpinm00w0p2yh1hn5zzwy6dd"))
334 ;; FIXME: emacs-forge uses a function defined in this patch,
335 ;; which is newer than the current commit.
336 (patches
337 (search-patches
338 "emacs-magit-log-format-author-margin.patch"))
339 (modules '((guix build utils)))
340 (snippet
341 '(begin
342 ;; Fix syntax error
343 (substitute* "lisp/magit-extras.el"
344 (("rev\\)\\)\\)\\)\\)\\)") "rev)))))"))
345 #t))))
346 (build-system gnu-build-system)
347 (native-inputs `(("texinfo" ,texinfo)
348 ("emacs" ,emacs-minimal)))
349 (inputs
350 `(("git" ,git)
351 ("perl" ,perl)))
352 (propagated-inputs
353 `(("dash" ,emacs-dash)
354 ("with-editor" ,emacs-with-editor)
355 ("transient" ,emacs-transient)))
356 (arguments
357 `(#:modules ((guix build gnu-build-system)
358 (guix build utils)
359 (guix build emacs-utils))
360 #:imported-modules (,@%gnu-build-system-modules
361 (guix build emacs-utils))
362 #:test-target "test"
363 #:tests? #f ; tests are not included in the release
364 #:make-flags
365 (list (string-append "PREFIX=" %output)
366 ;; Don't put .el files in a sub-directory.
367 (string-append "lispdir=" %output "/share/emacs/site-lisp"))
368 #:phases
369 (modify-phases %standard-phases
370 (add-after 'unpack 'patch
371 (lambda _
372 (chmod "lisp/magit-extras.el" #o644)
373 (emacs-batch-edit-file "lisp/magit-extras.el"
374 `(progn (progn
375 (goto-char (point-min))
376 (re-search-forward "(defun magit-copy-buffer-revision ()")
377 (forward-sexp 2)
378 (kill-sexp)
379 (insert ,(format #f "~S"
380 '(if (use-region-p)
381 (copy-region-as-kill nil nil 'region)
382 (when-let ((rev (cl-case major-mode
383 ((magit-cherry-mode
384 magit-log-select-mode
385 magit-reflog-mode
386 magit-refs-mode
387 magit-revision-mode
388 magit-stash-mode
389 magit-stashes-mode)
390 (car magit-refresh-args))
391 ((magit-diff-mode magit-log-mode)
392 (let ((r (caar magit-refresh-args)))
393 (if (string-match "\\.\\.\\.?\\(.+\\)" r)
394 (match-string 1 r)
395 r)))
396 (magit-status-mode "HEAD"))))
397 (when (magit-commit-p rev)
398 (setq rev (magit-rev-parse rev))
399 (push (list rev default-directory) magit-revision-stack)
400 (kill-new (message "%s" rev))))))))
401 (basic-save-buffer)))
402 #t))
403 (delete 'configure)
404 (add-before
405 'build 'patch-exec-paths
406 (lambda* (#:key inputs #:allow-other-keys)
407 (let ((perl (assoc-ref inputs "perl")))
408 (make-file-writable "lisp/magit-sequence.el")
409 (emacs-substitute-variables "lisp/magit-sequence.el"
410 ("magit-perl-executable" (string-append perl "/bin/perl")))
411 #t))))))
412 (home-page "https://magit.vc/")
413 (synopsis "Emacs interface for the Git version control system")
414 (description
415 "With Magit, you can inspect and modify your Git repositories with Emacs.
416 You can review and commit the changes you have made to the tracked files, for
417 example, and you can browse the history of past changes. There is support for
418 cherry picking, reverting, merging, rebasing, and other common Git
419 operations.")
420 (license license:gpl3+))))
421
422 (define-public emacs-magit-svn
423 (let ((commit "9e33ceee32f665db59909e1c00a667ccdd04178f"))
424 (package
425 (name "emacs-magit-svn")
426 (version (git-version "2.2.1" "2" commit))
427 (source (origin
428 (method git-fetch)
429 (uri (git-reference
430 (url "https://github.com/magit/magit-svn")
431 (commit commit)))
432 (file-name (git-file-name name version))
433 (sha256
434 (base32
435 "1mlqz8dh6jy5rv72lgkxv253dgh73fmbaidskicypapvbl3lr6xy"))))
436 (build-system emacs-build-system)
437 (propagated-inputs `(("dash" ,emacs-dash)
438 ("with-editor" ,emacs-with-editor)
439 ("magit" ,emacs-magit)
440 ("transient" ,emacs-transient)))
441 (home-page "https://github.com/magit/magit-svn")
442 (synopsis "Git-SVN extension to Magit")
443 (description
444 "This package is an extension to Magit, the Git Emacs mode, providing
445 support for Git-SVN.")
446 (license license:gpl3+))))
447
448 (define-public emacs-magit-popup
449 (package
450 (name "emacs-magit-popup")
451 (version "2.12.5")
452 (source (origin
453 (method git-fetch)
454 (uri (git-reference
455 (url "https://github.com/magit/magit-popup.git")
456 (commit (string-append "v" version))))
457 (file-name (git-file-name name version))
458 (sha256
459 (base32
460 "13riknyqr6vxqll80sfhvz165flvdz367rbd0pr5slb01bnfsi2i"))))
461 (build-system emacs-build-system)
462 (arguments
463 `(#:phases
464 (modify-phases %standard-phases
465 (add-before 'install 'make-info
466 (lambda _
467 (invoke "make" "info"))))))
468 (native-inputs
469 `(("texinfo" ,texinfo)))
470 (propagated-inputs
471 `(("emacs-dash" ,emacs-dash)))
472 (home-page "https://github.com/magit/magit-popup")
473 (synopsis "Define prefix-infix-suffix command combos")
474 (description
475 "This library implements a generic interface for toggling switches and
476 setting options and then invoking an Emacs command which does something with
477 these arguments. The prototypical use is for the command to call an external
478 process, passing on the arguments as command line arguments.")
479 (license license:gpl3+)))
480
481 (define-public emacs-magit-annex
482 (let ((commit "ef5dce6267e9118a5eca82a22bcad0b67826c23a")
483 (revision "1"))
484 (package
485 (name "emacs-magit-annex")
486 (version (git-version "1.7.1" revision commit))
487 (source (origin
488 (method git-fetch)
489 (uri (git-reference
490 (url "https://github.com/magit/magit-annex.git")
491 (commit commit)))
492 (file-name (git-file-name name version))
493 (sha256
494 (base32
495 "0vzkydgl889cq173zjl89g2vrddb9abc4a8gljiz3b4a7n5b1nrd"))))
496 (build-system emacs-build-system)
497 (propagated-inputs
498 `(("magit" ,emacs-magit)
499 ("transient" ,emacs-transient)))
500 (home-page "https://github.com/magit/magit-annex/")
501 (synopsis "Git-annex support for Magit")
502 (description
503 "Magit-annex adds a few git-annex operations to the Magit interface.")
504 (license license:gpl3+))))
505
506 (define-public emacs-minions
507 (package
508 (name "emacs-minions")
509 (version "0.3.2")
510 (source (origin
511 (method git-fetch)
512 (uri (git-reference
513 (url "https://github.com/tarsius/minions.git")
514 (commit (string-append "v" version))))
515 (file-name (git-file-name name version))
516 (sha256
517 (base32
518 "16rplpbfy3dnvqqgavk9jb1f1ihr5875zlixd4zxb1pqxs3jkgw3"))))
519 (build-system emacs-build-system)
520 (propagated-inputs
521 `(("emacs-dash" ,emacs-dash)))
522 (home-page "https://github.com/tarsius/minions")
523 (synopsis "Minor-mode menu for the mode line")
524 (description
525 "This package implements a menu that lists enabled minor-modes, as well
526 as commonly but not currently enabled minor-modes. It can be used to toggle
527 local and global minor-modes, to access mode-specific menus, and to get help
528 about modes.
529
530 This menu is intended as a replacement for the incomplete yet wide list of
531 enabled minor-modes that is displayed in the mode line by default. To use the
532 menu like this, enable Minions mode.
533
534 Alternatively the menu can be bound globally, for example:
535 @code{(global-set-key [S-down-mouse-3] 'minions-minor-modes-menu)}.")
536 (license license:gpl3+)))
537
538 (define-public emacs-treepy
539 (package
540 (name "emacs-treepy")
541 (version "0.1.1")
542 (source (origin
543 (method git-fetch)
544 (uri (git-reference
545 (url "https://github.com/volrath/treepy.el.git")
546 (commit version)))
547 (file-name (git-file-name name version))
548 (sha256
549 (base32
550 "04zwm6gx9pxfvgfkizx6pvb1ql8pqxjyzqp8flz0432x0gq5nlxk"))))
551 (build-system emacs-build-system)
552 (home-page
553 "https://github.com/volrath/treepy.el")
554 (synopsis "Tree traversal tools")
555 (description
556 "Generic tools for recursive and iterative tree traversal based on
557 clojure.walk and clojure.zip respectively.")
558 (license license:gpl3+)))
559
560 (define-public emacs-graphql
561 (package
562 (name "emacs-graphql")
563 (version "0.1.1")
564 (source (origin
565 (modules '((guix build utils)))
566 ;; Remove examples file with references to external packages as
567 ;; they do not exist at compilation time.
568 (snippet
569 '(begin (delete-file "examples.el")
570 #t))
571 (method git-fetch)
572 (uri (git-reference
573 (url "https://github.com/vermiculus/graphql.el.git")
574 (commit version)))
575 (file-name (git-file-name name version))
576 (sha256
577 (base32
578 "0sp0skc1rnhi39szfbq1i99pdgd3bhn4c15cff05iqhjy2d4hniw"))))
579 (build-system emacs-build-system)
580 (home-page
581 "https://github.com/vermiculus/graphql.el")
582 (synopsis "GraphQL utilities")
583 (description
584 "GraphQL.el provides a generally-applicable domain-specific language for
585 creating and executing GraphQL queries against your favorite web services.
586 GraphQL is a data query language and runtime designed and used to request and
587 deliver data to mobile and web apps.")
588 (license license:gpl3+)))
589
590 (define-public emacs-ghub
591 ;; We need a newer commit to avoid problems in emacs-forge.
592 (let ((commit "e19cd86ca4768a6d89285123933baa3f1460d696")
593 (revision "2"))
594 (package
595 (name "emacs-ghub")
596 (version (git-version "3.2.0" revision commit))
597 (source (origin
598 (method git-fetch)
599 (uri (git-reference
600 (url "https://github.com/magit/ghub")
601 (commit commit)))
602 (file-name (git-file-name name version))
603 (sha256
604 (base32
605 "1d6f8sxlsl0fpkzwbpnaw77d1a5pkg63zfvf6a2fxir357lbdizx"))))
606 (build-system emacs-build-system)
607 (arguments
608 `(#:phases
609 (modify-phases %standard-phases
610 (add-before 'install 'make-info
611 (lambda _
612 (invoke "make" "info"))))))
613 (native-inputs
614 `(("texinfo" ,texinfo)))
615 (propagated-inputs
616 `(("dash" ,emacs-dash)
617 ("emacs-let-alist" ,emacs-let-alist)
618 ("treepy" ,emacs-treepy)))
619 (home-page "https://github.com/magit/ghub")
620 (synopsis "Emacs client libraries for the APIs of various Git forges")
621 (description
622 "Ghub provides basic support for using the APIs of various Git forges from
623 Emacs packages. It supports the REST APIs of Github, Github GraphQL, Gitlab,
624 Gitea, Gogs and Bitbucket. It abstracts access to API resources using only a
625 handful of functions that are not resource-specific.")
626 (license license:gpl3+))))
627
628 (define-public emacs-typit
629 ;; Last release is from 2017.
630 (let ((commit "231cb7df43253b84323520b8ed70f128d37003af")
631 (revision "1"))
632 (package
633 (name "emacs-typit")
634 (version (git-version "0.2.1" revision commit))
635 (source
636 (origin
637 (method git-fetch)
638 (uri (git-reference
639 (url "https://github.com/mrkkrp/typit.git")
640 (commit commit)))
641 (file-name (git-file-name name version))
642 (sha256
643 (base32 "1savrxs7xl92ifyxpxkkzv2didr7lb405h0dwz1bs1wldr5fb53f"))))
644 (build-system emacs-build-system)
645 (arguments
646 `(#:phases
647 (modify-phases %standard-phases
648 (add-after 'install 'install-dictionaries
649 (lambda* (#:key outputs #:allow-other-keys)
650 (let* ((out (assoc-ref outputs "out"))
651 (site-lisp
652 (string-append
653 out "/share/emacs/site-lisp/dict")))
654 (mkdir-p site-lisp)
655 (copy-recursively "dict" site-lisp)
656 #t))))))
657 (propagated-inputs
658 `(("emacs-f" ,emacs-f)
659 ("emacs-mmt" ,emacs-mmt)))
660 (home-page "https://github.com/mrkkrp/typit")
661 (synopsis "Typing game for Emacs with two difficulties")
662 (description "Emacs Typit is a typing game for Emacs. Words that are
663 picked randomly from the most frequent words in language you're practicing,
664 until time is up.")
665 (license license:gpl3+))))
666
667 (define-public emacs-scribble-mode
668 (let ((commit "217945d54de5e4bb207033f2116baa28f5c5ecf2")
669 (revision "2"))
670 (package
671 (name "emacs-scribble-mode")
672 (version (git-version "0.1" revision commit))
673 (source (origin
674 (method git-fetch)
675 (uri (git-reference
676 (url "https://github.com/emacs-pe/scribble-mode.git")
677 (commit commit)))
678 (file-name (git-file-name name version))
679 (sha256
680 (base32
681 "1s5ccw1a5ack01wd94ywfcrar9j98agchwdh30q7iyxr0d2z4sii"))))
682 (build-system emacs-build-system)
683 (home-page "https://github.com/emacs-pe/scribble-mode")
684 (synopsis "Emacs mode for editing the Scribble documentation syntax.")
685 (description
686 "This package provides basic syntax highlighting and editing support
687 for editing Racket's Scribble documentation syntax in Emacs.")
688 (license license:gpl3+))))
689
690 (define-public emacs-shroud
691 (package
692 (name "emacs-shroud")
693 (version "1.105")
694 (source
695 (origin
696 (method git-fetch)
697 (uri (git-reference
698 (url "https://git.savannah.gnu.org/git/emacs-shroud.git")
699 (commit version)))
700 (file-name (git-file-name name version))
701 (sha256
702 (base32 "0q2pb3w8s833fjhkzicciw2php4lsnismad1dnwgp2lcway757ra"))))
703 (build-system gnu-build-system)
704 (native-inputs
705 `(("autoconf" ,autoconf)
706 ("automake" ,automake)
707 ("texinfo" ,texinfo)
708 ("perl" ,perl)
709 ("emacs-minimal" ,emacs-minimal)))
710 (propagated-inputs
711 `(("emacs-bui" ,emacs-bui)
712 ("emacs-dash" ,emacs-dash)
713 ("emacs-f" ,emacs-f)
714 ("emacs-s" ,emacs-s)
715 ("gnupg" ,gnupg)
716 ("shroud" ,shroud)))
717 (home-page "https://www.nongnu.org/emacs-shroud")
718 (synopsis "Emacs interface to the Shroud password manager")
719 (description
720 "This package provides an Emacs interface to the Shroud password manager,
721 using the Buffers User Interface library. You can view, copy, and edit secrets
722 from within Emacs.")
723 (license license:gpl3+)))
724
725 (define-public emacs-unpackaged-el
726 (let ((commit "746801a677ada6cd6fa076e423aa0953779f3fad")
727 (revision "3"))
728 (package
729 (name "emacs-unpackaged-el")
730 (version (git-version "0" revision commit))
731 (source
732 (origin
733 (method git-fetch)
734 (uri (git-reference
735 (url "https://github.com/alphapapa/unpackaged.el")
736 (commit commit)))
737 (file-name (git-file-name name version))
738 (sha256
739 (base32
740 "0jvb2ci0h0lj368qhbff3pzkxj3nhlligpbkjzi525k9rkjgm7l8"))))
741 (build-system emacs-build-system)
742 (propagated-inputs
743 `(("emacs-dash" ,emacs-dash)
744 ("emacs-org" ,emacs-org)
745 ("emacs-s" ,emacs-s)
746 ("emacs-hydra" ,emacs-hydra)
747 ("emacs-use-package" ,emacs-use-package)))
748 (arguments
749 `(#:phases
750 (modify-phases %standard-phases
751 (add-after 'unpack 'require-hydra
752 (lambda _
753 (substitute* "unpackaged.el"
754 ((";;; Code:") ";;; Code:\n(require 'hydra)"))
755 #t)))))
756 (home-page "https://github.com/alphapapa/unpackaged.el")
757 (synopsis "Useful snippets of Emacs Lisp code")
758 (description "This package provides Emacs Lisp utilities for a variety
759 of tasks, including version control, task management, and regex-based
760 replacement.")
761 (license license:gpl3+))))
762
763 (define-public emacs-haskell-mode
764 (package
765 (name "emacs-haskell-mode")
766 (version "16.1")
767 (source (origin
768 (method git-fetch)
769 (uri (git-reference
770 (url "https://github.com/haskell/haskell-mode")
771 (commit (string-append "v" version))))
772 (file-name (git-file-name name version))
773 (sha256
774 (base32 "1qk36y0v9fzass6785il65c6wb5cfj4ihhwkvgnzmbafpa8p4dvq"))
775 (patches
776 (search-patches ; backport test failure fixes
777 "haskell-mode-unused-variables.patch"
778 "haskell-mode-make-check.patch"))))
779 (inputs
780 `(("emacs-el-search" ,emacs-el-search) ; for tests
781 ("emacs-stream" ,emacs-stream))) ; for tests
782 (propagated-inputs
783 `(("emacs-dash" ,emacs-dash)))
784 (native-inputs
785 `(("emacs" ,emacs-minimal)
786 ("texinfo" ,texinfo)))
787 (build-system gnu-build-system)
788 (arguments
789 `(#:make-flags (list (string-append "EMACS="
790 (assoc-ref %build-inputs "emacs")
791 "/bin/emacs"))
792 #:modules ((ice-9 match)
793 (srfi srfi-26)
794 ,@%gnu-build-system-modules)
795 #:phases
796 (modify-phases %standard-phases
797 (delete 'configure)
798 (add-before
799 'build 'pre-build
800 (lambda* (#:key inputs #:allow-other-keys)
801 (define (el-dir store-dir)
802 (match (find-files store-dir "\\.el$")
803 ((f1 f2 ...) (dirname f1))
804 (_ "")))
805
806 (let ((sh (string-append (assoc-ref inputs "bash") "/bin/sh")))
807 (define emacs-prefix? (cut string-prefix? "emacs-" <>))
808
809 (setenv "SHELL" "sh")
810 (setenv "EMACSLOADPATH"
811 (string-concatenate
812 (map (match-lambda
813 (((? emacs-prefix? name) . dir)
814 (string-append (el-dir dir) ":"))
815 (_ ""))
816 inputs)))
817 (substitute* (find-files "." "\\.el") (("/bin/sh") sh))
818 ;; embed filename to fix test failure
819 (let ((file "tests/haskell-cabal-tests.el"))
820 (substitute* file
821 (("\\(buffer-file-name\\)")
822 (format #f "(or (buffer-file-name) ~s)" file))))
823 #t)))
824 (replace
825 'install
826 (lambda* (#:key outputs #:allow-other-keys)
827 (let* ((out (assoc-ref outputs "out"))
828 (el-dir (string-append out "/share/emacs/site-lisp"))
829 (doc (string-append
830 out "/share/doc/haskell-mode-" ,version))
831 (info (string-append out "/share/info")))
832 (define (copy-to-dir dir files)
833 (for-each (lambda (f)
834 (install-file f dir))
835 files))
836
837 (with-directory-excursion "doc"
838 (invoke "makeinfo" "haskell-mode.texi")
839 (install-file "haskell-mode.info" info))
840 (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md"))
841 (copy-to-dir el-dir (find-files "." "\\.elc?"))
842 ;; These are part of other packages.
843 (with-directory-excursion el-dir
844 (for-each delete-file '("dash.el" "ert.el")))
845 #t))))))
846 (home-page "https://github.com/haskell/haskell-mode")
847 (synopsis "Haskell mode for Emacs")
848 (description
849 "This is an Emacs mode for editing, debugging and developing Haskell
850 programs.")
851 (license license:gpl3+)))
852
853 (define-public emacs-dante
854 (let ((commit "38b589417294c7ea44bf65b73b8046d950f9531b")
855 (revision "1"))
856 (package
857 (name "emacs-dante")
858 (version (git-version "1.6" revision commit))
859 (source (origin
860 (method git-fetch)
861 (uri (git-reference
862 (url "https://github.com/jyp/dante")
863 (commit commit)))
864 (sha256
865 (base32
866 "1mnmn635552zlwd4zr68jbvdjipl6gi4mi6wiyck28fsmq8kw96h"))
867 (file-name (git-file-name name version))))
868 (build-system emacs-build-system)
869 (propagated-inputs
870 `(("emacs-dash" ,emacs-dash)
871 ("emacs-f" ,emacs-f)
872 ("emacs-flycheck" ,emacs-flycheck)
873 ("emacs-haskell-mode" ,emacs-haskell-mode)
874 ("emacs-s" ,emacs-s)
875 ("emacs-company" ,emacs-company)
876 ("emacs-lcr" ,emacs-lcr)))
877 (home-page "https://github.com/jyp/dante")
878 (synopsis "Minor mode for interactive Haskell")
879 (description
880 "This package provides a minor mode for Haskell development that
881 supports type hints, definition-jumping, completion, and more.")
882 (license license:gpl3+))))
883
884 (define-public emacs-flycheck
885 ;; Last release version was more than 500 commits ago.
886 (let ((commit "9bcf6b665e15db94870bebc81dc8248c3eec20d3")
887 (revision "2"))
888 (package
889 (name "emacs-flycheck")
890 (version (git-version "31" revision commit))
891 (source
892 (origin
893 (method git-fetch)
894 (uri (git-reference
895 (url "https://github.com/flycheck/flycheck/")
896 (commit commit)))
897 (sha256
898 (base32 "015ixss5bjr7gvhj8mkw5x2x1hy6fvvsjarr2xpv0gskkkngs7pg"))
899 (file-name (git-file-name name version))))
900 (build-system emacs-build-system)
901 (propagated-inputs
902 `(("emacs-dash" ,emacs-dash)))
903 (native-inputs
904 `(("emacs-shut-up" ,emacs-shut-up)))
905 (arguments
906 `(#:phases
907 (modify-phases %standard-phases
908 (add-after 'unpack 'change-flycheck-version
909 (lambda _
910 (substitute* "flycheck.el"
911 (("\\(pkg-info-version-info 'flycheck\\)")
912 (string-append "\"" ,version "\"")))
913 #t)))
914 ;; TODO: many failing tests
915 #:tests? #f
916 #:test-command '("emacs" "-Q" "--batch" "-L" "."
917 "--load" "test/flycheck-test"
918 "--load" "test/run.el"
919 "-f" "flycheck-run-tests-main")))
920 (home-page "https://www.flycheck.org")
921 (synopsis "On-the-fly syntax checking")
922 (description
923 "This package provides on-the-fly syntax checking for GNU Emacs. It is a
924 replacement for the older Flymake extension which is part of GNU Emacs, with
925 many improvements and additional features.
926
927 Flycheck provides fully-automatic, fail-safe, on-the-fly background syntax
928 checking for over 30 programming and markup languages with more than 70
929 different tools. It highlights errors and warnings inline in the buffer, and
930 provides an optional IDE-like error list.")
931 (license license:gpl3+)))) ;+GFDLv1.3+ for the manual
932
933 (define-public emacs-a
934 (package
935 (name "emacs-a")
936 (version "0.1.1")
937 (source (origin
938 (method git-fetch)
939 (uri (git-reference
940 (url "https://github.com/plexus/a.el.git")
941 (commit (string-append "v" version))))
942 (file-name (git-file-name name version))
943 (sha256
944 (base32
945 "00v9w6qg3bkwdhypq0ssf0phdh0f4bcq59c20lngd6vhk0204dqi"))))
946 (build-system emacs-build-system)
947 (home-page "https://github.com/plexus/a.el/")
948 (synopsis
949 "Emacs library for dealing with association lists and hash tables")
950 (description "@code{emacs-a} provides Emacs Lisp functions for dealing
951 with associative structures in a uniform and functional way. These functions
952 can take association lists, hash tables, and in some cases vectors (where the
953 index is considered the key).")
954 (license license:gpl3+)))
955
956 (define-public emacs-ace-jump-mode
957 (package
958 (name "emacs-ace-jump-mode")
959 (version "2.0")
960 (home-page "https://github.com/winterTTr/ace-jump-mode")
961 (source (origin
962 (method git-fetch)
963 (uri (git-reference
964 (url home-page)
965 (commit (string-append "v" version))))
966 (sha256
967 (base32
968 "1bwvzh056ls2v7y26a0s4j5mj582dmds04lx4x6iqihs04ss74bb"))
969 (file-name (git-file-name name version))))
970 (build-system emacs-build-system)
971 (synopsis "Cursor location minor mode for fast navigation")
972 (description "Ace-jump-mode is a fast/direct cursor location minor
973 mode. It creates an N-Branch search tree internally and marks all
974 the possible position with predefined keys in within the whole Emacs
975 view. This allows you to move to the character, word, or line almost
976 directly.")
977 (license license:gpl3+)))
978
979 (define-public emacs-anaphora
980 (package
981 (name "emacs-anaphora")
982 (version "1.0.4")
983 (source
984 (origin
985 (method git-fetch)
986 (uri (git-reference
987 (url "https://github.com/rolandwalker/anaphora.git")
988 (commit (string-append "v" version))))
989 (file-name (git-file-name name version))
990 (sha256
991 (base32
992 "11fgiy029sqz7nvdm7dcal95lacryz9zql0x5h05z48nrrcl4bib"))))
993 (build-system emacs-build-system)
994 (home-page "https://github.com/rolandwalker/anaphora/")
995 (synopsis "Anaphoric expressions for Emacs Lisp")
996 (description "@code{emacs-anaphora} implements anaphoric expressions for
997 Emacs Lisp.
998
999 Anaphoric expressions implicitly create one or more temporary variables which
1000 can be referred to during the expression. This technique can improve clarity
1001 in certain cases. It also enables recursion for anonymous functions.")
1002 (license license:public-domain)))
1003
1004 (define-public emacs-xr
1005 (package
1006 (name "emacs-xr")
1007 (version "1.19")
1008 (source
1009 (origin
1010 (method url-fetch)
1011 (uri (string-append "https://elpa.gnu.org/packages/xr-" version ".tar"))
1012 (sha256
1013 (base32 "1aa3iqh0r635jw8k89zh8y4am9d4hfrqpk9mrdh2b51invjn8llq"))))
1014 (build-system emacs-build-system)
1015 (home-page "https://elpa.gnu.org/packages/xr.html")
1016 (synopsis "Convert string regexp to rx notation")
1017 (description
1018 "This is an inverse companion to the @code{rx} package for translating
1019 regexps in string form to the @code{rx} notation. Its chief uses are:
1020
1021 @itemize
1022 @item Migrating existing code to @code{rx} form, for better readability and
1023 maintainability
1024 @item Understanding complex regexp strings and finding errors in them
1025 @end itemize
1026
1027 In addition to Emacs regexps, this package can also parse and troubleshoot
1028 skip set strings, which are arguments to @code{skip-chars-forward} and
1029 @code{skip-chars-backward}.")
1030 (license license:gpl3+)))
1031
1032 (define-public emacs-ample-regexps
1033 (let ((commit "cbe91e148cac1ee8e223874dc956ed4cf607f046")
1034 (revision "1"))
1035 (package
1036 (name "emacs-ample-regexps")
1037 (version (git-version "0.1" revision commit))
1038 (source
1039 (origin
1040 (method git-fetch)
1041 (uri (git-reference
1042 (url "https://github.com/immerrr/ample-regexps.el")
1043 (commit commit)))
1044 (file-name (git-file-name name version))
1045 (sha256
1046 (base32
1047 "1mm4icrwx4mscp7kbbmlc34995r164dhrfczn5ybkyxjzzf76jn1"))))
1048 (build-system emacs-build-system)
1049 (native-inputs
1050 `(("ert-runner" ,emacs-ert-runner)))
1051 (arguments
1052 `(#:tests? #t
1053 #:test-command '("ert-runner" "-l" "ample-regexps")))
1054 (home-page "https://github.com/immerrr/ample-regexps.el")
1055 (synopsis "Compose and reuse Emacs regexps")
1056 (description
1057 "This package allows common parts of regexps to be easily picked out
1058 and reused.")
1059 (license license:gpl3+))))
1060
1061 (define-public emacs-ample-theme
1062 (let ((commit "536966adf882446165a1f756830028faa792c7a9")
1063 (revision "1"))
1064 (package
1065 (name "emacs-ample-theme")
1066 (version (git-version "0.0.0" revision commit))
1067 (source (origin
1068 (method git-fetch)
1069 (uri (git-reference
1070 (url "https://github.com/jordonbiondo/ample-theme")
1071 (commit commit)))
1072 (file-name (git-file-name name version))
1073 (sha256
1074 (base32
1075 "07bpv8dag40qjnm5000pgzpazj4whfxf93x2vprz26sg3mjfx0nf"))))
1076 (build-system emacs-build-system)
1077 (home-page "https://github.com/jordonbiondo/ample-theme")
1078 (synopsis "Theme for Emacs providing dark, light, and flat versions")
1079 (description "Ample themes is a collection of three themes sharing a
1080 similar pallet with a light, dark and flat versions with a focus on being easy
1081 on the eyes during night and day. They only support GUI and 256 colour
1082 terminals.")
1083 (license license:gpl3+))))
1084
1085 (define-public emacs-reformatter
1086 (package
1087 (name "emacs-reformatter")
1088 (version "0.4")
1089 (source
1090 (origin
1091 (method git-fetch)
1092 (uri (git-reference
1093 (url "https://github.com/purcell/reformatter.el.git")
1094 (commit version)))
1095 (file-name (git-file-name name version))
1096 (sha256
1097 (base32
1098 "0hhy6x1bkwlhdlarsgm06g3am4yh02yqv8qs34szpzgy53x84qah"))))
1099 (build-system emacs-build-system)
1100 (home-page "https://github.com/purcell/reformatter.el")
1101 (synopsis "Define commands which run reformatters on the current buffer")
1102 (description
1103 "This library lets elisp authors easily define an idiomatic command to
1104 reformat the current buffer using a command-line program, together with an
1105 optional minor mode which can apply this command automatically on save.")
1106 (license license:gpl3+)))
1107
1108 (define-public emacs-relint
1109 (package
1110 (name "emacs-relint")
1111 (version "1.17")
1112 (source
1113 (origin
1114 (method url-fetch)
1115 (uri (string-append
1116 "https://elpa.gnu.org/packages/relint-" version ".tar"))
1117 (sha256
1118 (base32 "1nv13dqdhf72c1jgk1ml4k6jqb8wsyphcx2vhsyhig5198lg4kd7"))))
1119 (build-system emacs-build-system)
1120 (propagated-inputs `(("emacs-xr" ,emacs-xr)))
1121 (home-page "https://github.com/mattiase/relint")
1122 (synopsis "Elisp regexp mistake finder")
1123 (description
1124 "Relint (regular expression lint) scans Elisp files for mistakes in
1125 regexps, including deprecated syntax and bad practice. It also checks the
1126 regexp-like arguments to @code{skip-chars-forward} and
1127 @code{skip-chars-backward}.")
1128 (license license:gpl3+)))
1129
1130 (define-public emacs-bug-hunter
1131 (let ((commit "b88d981afa9154b236c5a3a83b50d5889d46c6a7")
1132 (revision "1"))
1133 (package
1134 (name "emacs-bug-hunter")
1135 (version (git-version "1.3.1" revision commit))
1136 (source
1137 (origin
1138 (method git-fetch)
1139 (uri (git-reference
1140 (url "https://github.com/Malabarba/elisp-bug-hunter.git")
1141 (commit commit)))
1142 (file-name (git-file-name name commit))
1143 (sha256
1144 (base32
1145 "134fj493sdn93pyyac8rpz1fzahzmayvphsrmqp3wvgysmfqm38l"))))
1146 (build-system emacs-build-system)
1147 (propagated-inputs
1148 `(("emacs-seq" ,emacs-seq)))
1149 (home-page "https://github.com/Malabarba/elisp-bug-hunter")
1150 (synopsis "Hunt down errors by bisecting elisp files")
1151 (description
1152 "The Bug Hunter is an Emacs library that finds the source of an error
1153 or unexpected behavior inside an elisp configuration file (typically
1154 @file{init.el} or @file{.emacs}).")
1155 (license license:gpl3+))))
1156
1157 \f
1158 ;;;
1159 ;;; Web browsing.
1160 ;;;
1161
1162 (define-public emacs-w3m
1163 ;; Emacs-w3m follows a "rolling release" model.
1164 (package
1165 (name "emacs-w3m")
1166 (version "2018-11-11")
1167 (source (origin
1168 (method cvs-fetch)
1169 (uri (cvs-reference
1170 (root-directory
1171 ":pserver:anonymous@cvs.namazu.org:/storage/cvsroot")
1172 (module "emacs-w3m")
1173 (revision version)))
1174 (file-name (string-append name "-" version "-checkout"))
1175 (sha256
1176 (base32
1177 "0nvahdbjs12zg7zsk4gql02mvnv56cf1rwj2f5p42lwp3xvswiwp"))))
1178 (build-system gnu-build-system)
1179 (native-inputs `(("autoconf" ,autoconf)
1180 ("texinfo" ,texinfo)
1181 ("emacs" ,emacs-minimal)))
1182 (inputs `(("w3m" ,w3m)
1183 ("imagemagick" ,imagemagick)))
1184 (arguments
1185 `(#:modules ((guix build gnu-build-system)
1186 (guix build utils)
1187 (guix build emacs-utils))
1188 #:imported-modules (,@%gnu-build-system-modules
1189 (guix build emacs-utils))
1190 #:configure-flags
1191 (let ((out (assoc-ref %outputs "out")))
1192 (list (string-append "--with-lispdir="
1193 out "/share/emacs/site-lisp")
1194 (string-append "--with-icondir="
1195 out "/share/images/emacs-w3m")
1196 ;; Leave .el files uncompressed, otherwise GC can't
1197 ;; identify run-time dependencies. See
1198 ;; <http://lists.gnu.org/archive/html/guix-devel/2015-12/msg00208.html>
1199 "--without-compress-install"))
1200 #:tests? #f ; no check target
1201 #:phases
1202 (modify-phases %standard-phases
1203 (add-after 'unpack 'autoconf
1204 (lambda _
1205 (invoke "autoconf")))
1206 (add-before 'configure 'support-emacs!
1207 (lambda _
1208 ;; For some reason 'AC_PATH_EMACS' thinks that 'Emacs 26' is
1209 ;; unsupported.
1210 (substitute* "configure"
1211 (("EMACS_FLAVOR=unsupported")
1212 "EMACS_FLAVOR=emacs"))
1213 #t))
1214 (add-before 'build 'patch-exec-paths
1215 (lambda* (#:key inputs outputs #:allow-other-keys)
1216 (let ((out (assoc-ref outputs "out"))
1217 (w3m (assoc-ref inputs "w3m"))
1218 (imagemagick (assoc-ref inputs "imagemagick"))
1219 (coreutils (assoc-ref inputs "coreutils")))
1220 (make-file-writable "w3m.el")
1221 (emacs-substitute-variables "w3m.el"
1222 ("w3m-command" (string-append w3m "/bin/w3m"))
1223 ("w3m-touch-command"
1224 (string-append coreutils "/bin/touch"))
1225 ("w3m-icon-directory"
1226 (string-append out "/share/images/emacs-w3m")))
1227 (make-file-writable "w3m-image.el")
1228 (emacs-substitute-variables "w3m-image.el"
1229 ("w3m-imagick-convert-program"
1230 (string-append imagemagick "/bin/convert"))
1231 ("w3m-imagick-identify-program"
1232 (string-append imagemagick "/bin/identify")))
1233 #t)))
1234 (replace 'install
1235 (lambda* (#:key outputs #:allow-other-keys)
1236 (invoke "make" "install" "install-icons")
1237 (with-directory-excursion
1238 (string-append (assoc-ref outputs "out")
1239 "/share/emacs/site-lisp")
1240 (for-each delete-file '("ChangeLog" "ChangeLog.1"))
1241 (symlink "w3m-load.el" "w3m-autoloads.el")
1242 #t))))))
1243 (home-page "http://emacs-w3m.namazu.org/")
1244 (synopsis "Simple Web browser for Emacs based on w3m")
1245 (description
1246 "Emacs-w3m is an emacs interface for the w3m web browser.")
1247 (license license:gpl2+)))
1248
1249 (define-public emacs-wget
1250 (package
1251 (name "emacs-wget")
1252 (version "0.5.0")
1253 (source (origin
1254 (method url-fetch)
1255 (uri (string-append "mirror://debian/pool/main/w/wget-el/wget-el_"
1256 version ".orig.tar.gz"))
1257 (sha256
1258 (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff"))))
1259 (build-system gnu-build-system)
1260 (inputs `(("wget" ,wget)))
1261 (native-inputs `(("emacs" ,emacs-minimal)))
1262 (arguments
1263 `(#:modules ((guix build gnu-build-system)
1264 (guix build utils)
1265 (guix build emacs-utils))
1266 #:imported-modules (,@%gnu-build-system-modules
1267 (guix build emacs-utils))
1268 #:tests? #f ; no check target
1269 #:phases
1270 (modify-phases %standard-phases
1271 (replace 'configure
1272 (lambda* (#:key outputs #:allow-other-keys)
1273 (substitute* "Makefile"
1274 (("/usr/local") (assoc-ref outputs "out"))
1275 (("/site-lisp/emacs-wget") "/site-lisp"))
1276 #t))
1277 (add-before 'build 'patch-exec-paths
1278 (lambda* (#:key inputs outputs #:allow-other-keys)
1279 (let ((wget (assoc-ref inputs "wget")))
1280 (emacs-substitute-variables "wget.el"
1281 ("wget-command" (string-append wget "/bin/wget"))))
1282 #t))
1283 (add-after 'install 'post-install
1284 (lambda* (#:key outputs #:allow-other-keys)
1285 (emacs-generate-autoloads
1286 "wget" (string-append (assoc-ref outputs "out")
1287 "/share/emacs/site-lisp/"))
1288 #t)))))
1289 (home-page "https://www.emacswiki.org/emacs/EmacsWget")
1290 (synopsis "Simple file downloader for Emacs based on wget")
1291 (description
1292 "Emacs-wget is an emacs interface for the wget file downloader.")
1293 (license license:gpl2+)))
1294
1295 (define-public emacs-eww-lnum
1296 (package
1297 (name "emacs-eww-lnum")
1298 (version "1.1")
1299 (source (origin
1300 (method git-fetch)
1301 (uri (git-reference
1302 (url "https://github.com/m00natic/eww-lnum.git")
1303 (commit version)))
1304 (file-name (git-file-name name version))
1305 (sha256
1306 (base32
1307 "0gs6bi3s2sszc6v2b26929azmn5513kvyin99n4d0ark1jdbjmv2"))))
1308 (build-system emacs-build-system)
1309 (home-page "https://github.com/m00natic/eww-lnum")
1310 (synopsis "Conkeror-like functionality for Eww")
1311 (description "This is extension to the Emacs browser Eww that adds
1312 Conkeror-like functionality. In short, currently visible links, forms,
1313 buttons are temporarily assigned numbers with which the former can be
1314 immediately activated. Also filtering can be applied so selection can be
1315 incrementally confined in Isearch manner.")
1316 (license license:gpl3+)))
1317
1318
1319 \f
1320 ;;;
1321 ;;; Multimedia.
1322 ;;;
1323
1324 (define-public emacs-emms
1325 (package
1326 (name "emacs-emms")
1327 (version "5.4")
1328 (source
1329 (origin
1330 (method url-fetch)
1331 (uri (string-append "mirror://gnu/emms/emms-" version ".tar.gz"))
1332 (sha256
1333 (base32 "1nd7sb6pva7qb1ki6w0zhd6zvqzd7742kaqi0f3v4as5jh09l6nr"))
1334 (modules '((guix build utils)))
1335 (snippet
1336 '(begin
1337 (substitute* "Makefile"
1338 (("/usr/bin/install-info")
1339 ;; No need to use 'install-info' since it would create a
1340 ;; useless 'dir' file.
1341 "true")
1342 (("^INFODIR=.*")
1343 ;; Install Info files to $out/share/info, not $out/info.
1344 "INFODIR := $(PREFIX)/share/info\n")
1345 (("/site-lisp/emms")
1346 ;; Install directly in share/emacs/site-lisp, not in a
1347 ;; sub-directory.
1348 "/site-lisp")
1349 (("^all: (.*)\n" _ rest)
1350 ;; Build 'emms-print-metadata'.
1351 (string-append "all: " rest " emms-print-metadata\n")))
1352 #t))))
1353 (build-system gnu-build-system)
1354 (arguments
1355 `(#:modules ((guix build gnu-build-system)
1356 (guix build utils)
1357 (guix build emacs-utils)
1358 (ice-9 ftw))
1359 #:imported-modules (,@%gnu-build-system-modules
1360 (guix build emacs-utils))
1361
1362 #:phases
1363 (modify-phases %standard-phases
1364 (replace 'configure
1365 (lambda* (#:key inputs outputs #:allow-other-keys)
1366 (let ((out (assoc-ref outputs "out"))
1367 (flac (assoc-ref inputs "flac"))
1368 (vorbis (assoc-ref inputs "vorbis-tools"))
1369 (alsa (assoc-ref inputs "alsa-utils"))
1370 (mpg321 (assoc-ref inputs "mpg321"))
1371 (mp3info (assoc-ref inputs "mp3info"))
1372 (mutagen (assoc-ref inputs "mutagen"))
1373 (opus (assoc-ref inputs "opus-tools")))
1374 ;; Specify the installation directory.
1375 (substitute* "Makefile"
1376 (("PREFIX=.*$")
1377 (string-append "PREFIX := " out "\n")))
1378
1379 (setenv "SHELL" (which "sh"))
1380 (setenv "CC" "gcc")
1381
1382 ;; Specify the absolute file names of the various
1383 ;; programs so that everything works out-of-the-box.
1384 (with-directory-excursion "lisp"
1385 (emacs-substitute-variables
1386 "emms-player-mpg321-remote.el"
1387 ("emms-player-mpg321-remote-command"
1388 (string-append mpg321 "/bin/mpg321")))
1389 (substitute* "emms-player-simple.el"
1390 (("\"ogg123\"")
1391 (string-append "\"" vorbis "/bin/ogg123\"")))
1392 (substitute* "emms-player-simple.el"
1393 (("\"mpg321\"")
1394 (string-append "\"" mpg321 "/bin/mpg321\"")))
1395 (emacs-substitute-variables "emms-info-ogginfo.el"
1396 ("emms-info-ogginfo-program-name"
1397 (string-append vorbis "/bin/ogginfo")))
1398 (emacs-substitute-variables "emms-info-opusinfo.el"
1399 ("emms-info-opusinfo-program-name"
1400 (string-append opus "/bin/opusinfo")))
1401 (emacs-substitute-variables "emms-info-libtag.el"
1402 ("emms-info-libtag-program-name"
1403 (string-append out "/bin/emms-print-metadata")))
1404 (emacs-substitute-variables "emms-info-mp3info.el"
1405 ("emms-info-mp3info-program-name"
1406 (string-append mp3info "/bin/mp3info")))
1407 (emacs-substitute-variables "emms-info-metaflac.el"
1408 ("emms-info-metaflac-program-name"
1409 (string-append flac "/bin/metaflac")))
1410 (emacs-substitute-variables "emms-source-file.el"
1411 ("emms-source-file-gnu-find" (which "find")))
1412 (substitute* "emms-volume-amixer.el"
1413 (("\"amixer\"")
1414 (string-append "\"" alsa "/bin/amixer\"")))
1415 (substitute* "emms-tag-editor.el"
1416 (("\"mid3v2\"")
1417 (string-append "\"" mutagen "/bin/mid3v2\"")))
1418 #t))))
1419 (add-before 'install 'pre-install
1420 (lambda* (#:key outputs #:allow-other-keys)
1421 ;; The 'install' rule expects the target directories to exist.
1422 (let* ((out (assoc-ref outputs "out"))
1423 (bin (string-append out "/bin"))
1424 (man1 (string-append out "/share/man/man1")))
1425 (mkdir-p bin)
1426 (mkdir-p man1)
1427
1428 ;; Ensure that files are not rejected by gzip
1429 (let ((early-1980 315619200)) ; 1980-01-02 UTC
1430 (ftw "." (lambda (file stat flag)
1431 (unless (<= early-1980 (stat:mtime stat))
1432 (utime file early-1980 early-1980))
1433 #t)))
1434 #t)))
1435 (add-after 'install 'post-install
1436 (lambda* (#:key outputs #:allow-other-keys)
1437 (let ((out (assoc-ref outputs "out")))
1438 (symlink "emms-auto.el"
1439 (string-append out "/share/emacs/site-lisp/"
1440 "emms-autoloads.el")))
1441 #t)))
1442 #:tests? #f))
1443 (native-inputs `(("emacs" ,emacs-minimal) ;for (guix build emacs-utils)
1444 ("texinfo" ,texinfo)))
1445 (inputs `(("alsa-utils" ,alsa-utils)
1446 ("flac" ,flac) ;for metaflac
1447 ("vorbis-tools" ,vorbis-tools)
1448 ("mpg321" ,mpg321)
1449 ("taglib" ,taglib)
1450 ("mp3info" ,mp3info)
1451 ("mutagen" ,python-mutagen)
1452 ("opus-tools" ,opus-tools)))
1453 (properties '((upstream-name . "emms")))
1454 (synopsis "Emacs Multimedia System")
1455 (description
1456 "EMMS is the Emacs Multimedia System. It is a small front-end which
1457 can control one of the supported external players. Thus, it supports
1458 whatever formats are supported by your music player. It also
1459 supports tagging and playlist management, all behind a clean and
1460 light user interface.")
1461 (home-page "https://www.gnu.org/software/emms/")
1462 (license license:gpl3+)))
1463
1464 (define-public emacs-emms-mode-line-cycle
1465 (package
1466 (name "emacs-emms-mode-line-cycle")
1467 (version "0.2.5")
1468 (source
1469 (origin
1470 (method git-fetch)
1471 (uri (git-reference
1472 (url "https://github.com/momomo5717/emms-mode-line-cycle")
1473 (commit version)))
1474 (file-name (git-file-name name version))
1475 (sha256
1476 (base32
1477 "0q80f0plch6k4lhs8c9qm3mfycfbp3kn5sjrk9zxgxwnn901y9mp"))))
1478 (build-system emacs-build-system)
1479 (propagated-inputs
1480 `(("emms" ,emacs-emms)))
1481 (home-page "https://github.com/momomo5717/emms-mode-line-cycle")
1482 (synopsis "Display the EMMS mode line as a ticker")
1483 (description
1484 "This is a minor mode for updating the EMMS mode-line string cyclically
1485 within a specified width. It is useful for displaying long track titles.")
1486 (license license:gpl3+)))
1487
1488 \f
1489 ;;;
1490 ;;; Miscellaneous.
1491 ;;;
1492
1493 (define-public emacs-ace-link
1494 (package
1495 (name "emacs-ace-link")
1496 (version "0.5.0")
1497 (source
1498 (origin
1499 (method git-fetch)
1500 (uri (git-reference
1501 (url "https://github.com/abo-abo/ace-link.git")
1502 (commit version)))
1503 (file-name (git-file-name name version))
1504 (sha256
1505 (base32
1506 "147dz79vg4ym5wg3d544bw2khdb2j3hr73rw4qfm64wf0q2dj0vk"))))
1507 (build-system emacs-build-system)
1508 (propagated-inputs
1509 `(("emacs-avy" ,emacs-avy)))
1510 (home-page "https://github.com/abo-abo/ace-link")
1511 (synopsis "Quickly follow links in Emacs")
1512 (description
1513 "Currently, to jump to a link in a @code{Info-mode}, @code{help-mode},
1514 @code{woman-mode}, @code{org-mode}, @code{eww-mode}, @code{compilation-mode},
1515 @code{goto-address-mode} buffer, you can tab through the links to select the
1516 one you want. This is an O(N) operation, where the N is the amount of links.
1517 This package turns this into an O(1) operation. It does so by assigning a
1518 letter to each link using avy.")
1519 (license license:gpl3+)))
1520
1521 (define-public emacs-auto-sudoedit
1522 (package
1523 (name "emacs-auto-sudoedit")
1524 (version "1.0.0")
1525 (source
1526 (origin
1527 (method git-fetch)
1528 (uri (git-reference
1529 (url "https://github.com/ncaq/auto-sudoedit.git")
1530 (commit (string-append "v" version))))
1531 (file-name (git-file-name name version))
1532 (sha256
1533 (base32 "10p0hc95j382km8655pqld9wxg10j1f36czzppkdd6a55cxarv9f"))))
1534 (propagated-inputs
1535 `(("emacs-f" ,emacs-f)))
1536 (build-system emacs-build-system)
1537 (home-page "https://github.com/ncaq/auto-sudoedit")
1538 (synopsis "Automatically re-open read-only files with sudo")
1539 (description
1540 "This package automatically reopens a file or directory with
1541 @command{sudo} if it cannot write to it.")
1542 (license license:expat)))
1543
1544 (define-public emacs-bbdb
1545 (package
1546 (name "emacs-bbdb")
1547 (version "3.1.2")
1548 (source (origin
1549 (method url-fetch)
1550 (uri (string-append "mirror://savannah/bbdb/bbdb-"
1551 version ".tar.gz"))
1552 (sha256
1553 (base32
1554 "1gs16bbpiiy01w9pyg12868r57kx1v3hnw04gmqsmpc40l1hyy05"))
1555 (modules '((guix build utils)))
1556 (snippet
1557 ;; We don't want to build and install the PDF.
1558 '(begin
1559 (substitute* "doc/Makefile.in"
1560 (("^doc_DATA = .*$")
1561 "doc_DATA =\n"))
1562 #t))))
1563 (build-system gnu-build-system)
1564 (arguments
1565 '(#:phases
1566 (modify-phases %standard-phases
1567 (add-after 'install 'post-install
1568 (lambda* (#:key outputs #:allow-other-keys)
1569 ;; Add an autoloads file with the right name for guix.el.
1570 (let* ((out (assoc-ref outputs "out"))
1571 (site (string-append out "/share/emacs/site-lisp")))
1572 (with-directory-excursion site
1573 (symlink "bbdb-loaddefs.el" "bbdb-autoloads.el")))
1574 #t)))))
1575 (native-inputs `(("emacs" ,emacs-minimal)))
1576 (home-page "https://savannah.nongnu.org/projects/bbdb/")
1577 (synopsis "Contact management utility for Emacs")
1578 (description
1579 "BBDB is the Insidious Big Brother Database for GNU Emacs. It provides
1580 an address book for email and snail mail addresses, phone numbers and the
1581 like. It can be linked with various Emacs mail clients (Message and Mail
1582 mode, Rmail, Gnus, MH-E, and VM). BBDB is fully customizable.")
1583 (license license:gpl3+)))
1584
1585 (define-public emacs-aggressive-indent
1586 (package
1587 (name "emacs-aggressive-indent")
1588 (version "1.8.3")
1589 (source (origin
1590 (method url-fetch)
1591 (uri (string-append "https://elpa.gnu.org/packages/"
1592 "aggressive-indent-" version ".el"))
1593 (sha256
1594 (base32
1595 "0jnzccl50x0wapprgwxinp99pwwa6j43q6msn4gv437j7swy8wnj"))))
1596 (build-system emacs-build-system)
1597 (home-page "https://elpa.gnu.org/packages/aggressive-indent.html")
1598 (synopsis "Minor mode to aggressively keep your code always indented")
1599 (description
1600 "@code{aggressive-indent-mode} is a minor mode that keeps your code
1601 always indented. It reindents after every change, making it more reliable
1602 than @code{electric-indent-mode}.")
1603 (license license:gpl2+)))
1604
1605 (define-public emacs-ctrlf
1606 (package
1607 (name "emacs-ctrlf")
1608 (version "1.0")
1609 (source
1610 (origin
1611 (method git-fetch)
1612 (uri (git-reference
1613 (url "https://github.com/raxod502/ctrlf.git")
1614 (commit (string-append "v" version))))
1615 (file-name (git-file-name name version))
1616 (sha256
1617 (base32 "10gnhafas54zj3z9173h1g7b519ac4i26afclmw3w1pk6qyyb03z"))))
1618 (build-system emacs-build-system)
1619 (home-page "https://github.com/raxod502/ctrlf/")
1620 (synopsis "Single-buffer text search in Emacs")
1621 (description "CTRLF (pronounced @emph{control F}) is an intuitive and
1622 efficient solution for single-buffer text search in Emacs, replacing packages
1623 such as Isearch, Swiper, and helm-swoop. It takes inspiration from the
1624 widely-adopted and battle-tested @samp{Ctrl+F} interfaces in programs such as
1625 web browsers, but follows the flow and keybindings of Isearch.")
1626 (license license:expat)))
1627
1628 (define-public emacs-dhall-mode
1629 ;; There is no proper release. The base version is extracted from the
1630 ;; "Version" keyword in the main file.
1631 (let ((revision "0")
1632 (commit "ef4d33debe224c6ba37e51a29b9dc8b74f20f1c2"))
1633 (package
1634 (name "emacs-dhall-mode")
1635 (version (git-version "0.1.3" revision commit))
1636 (source
1637 (origin
1638 (method git-fetch)
1639 (uri
1640 (git-reference
1641 (url "https://github.com/psibi/dhall-mode")
1642 (commit commit)))
1643 (file-name (git-file-name name version))
1644 (sha256
1645 (base32 "1232y2k4l3bsz90pgis78zxmrw7jv09dfaip21yc1w4vpxfyr384"))))
1646 (build-system emacs-build-system)
1647 (propagated-inputs
1648 `(("emacs-reformatter" ,emacs-reformatter)))
1649 (home-page "https://github.com/psibi/dhall-mode")
1650 (synopsis "Major mode for working with Dhall configuration language")
1651 (description
1652 "Dhall-mode provides an Emacs Major mode for working with the Dhall
1653 configuration language. It features:
1654
1655 @itemize
1656 @item Syntax highlighting
1657 @item Multiline support for String
1658 @item Basic indentation, commenting
1659 @item Automatic formatting on save using dhall-format.
1660 @item Error highlighting.
1661 @end itemize")
1662 (license license:gpl3+))))
1663
1664 (define-public emacs-link-hint
1665 ;; Last release was in 2015.
1666 (let ((commit "d74a483652486260c052941fedeadddb1ea71f88")
1667 (revision "1"))
1668 (package
1669 (name "emacs-link-hint")
1670 (version (git-version "0.1" revision commit))
1671 (source
1672 (origin
1673 (method git-fetch)
1674 (uri (git-reference
1675 (url "https://github.com/noctuid/link-hint.el")
1676 (commit commit)))
1677 (file-name (git-file-name name version))
1678 (sha256
1679 (base32
1680 "0dghxd165fbds6czy9bfwpid3i4irgp3q08n9mg57sfifi0cmij0"))))
1681 (build-system emacs-build-system)
1682 (propagated-inputs
1683 `(("emacs-avy" ,emacs-avy)))
1684 (home-page "https://github.com/noctuid/link-hint.el")
1685 (synopsis "Vimperator-style link-hinting in Emacs")
1686 (description "This package provides commands for visiting and acting on
1687 links.")
1688 (license license:gpl3+))))
1689
1690 (define-public emacs-ag
1691 (package
1692 (name "emacs-ag")
1693 (version "0.48")
1694 (source (origin
1695 (method git-fetch)
1696 (uri (git-reference
1697 (url "https://github.com/Wilfred/ag.el.git")
1698 (commit version)))
1699 (file-name (git-file-name name version))
1700 (sha256
1701 (base32
1702 "1p918y24vcn2pdliaymd210xp9fvhd4a1srqbv2lfiqrh59yjidx"))))
1703 (build-system emacs-build-system)
1704 (arguments
1705 `(#:phases
1706 (modify-phases %standard-phases
1707 (add-before 'install 'make-info
1708 (lambda _
1709 (with-directory-excursion "docs"
1710 (invoke "make" "info"))))
1711 (add-after 'install 'install-info
1712 (lambda* (#:key outputs #:allow-other-keys)
1713 (let* ((out (assoc-ref outputs "out"))
1714 (info (string-append out "/share/info")))
1715 (install-file "docs/_build/texinfo/agel.info" info)
1716 #t))))))
1717 (native-inputs
1718 `(("python-sphinx" ,python-sphinx)
1719 ("texinfo" ,texinfo)))
1720 (propagated-inputs
1721 `(("dash" ,emacs-dash)
1722 ("s" ,emacs-s)
1723 ;; We need to use 'ag' as the executable on remote systems.
1724 ("the-silver-searcher" ,the-silver-searcher)))
1725 (home-page "https://github.com/Wilfred/ag.el")
1726 (synopsis "Front-end for ag (the-silver-searcher) for Emacs")
1727 (description "This package provides the ability to use the silver
1728 searcher, a code searching tool, sometimes abbreviated to @code{ag}. Features
1729 include version control system awareness, use of Perl compatible regular
1730 expressions, editing the search results directly and searching file names
1731 rather than the contents of files.")
1732 (license license:gpl3+)))
1733
1734 (define-public emacs-async
1735 (package
1736 (name "emacs-async")
1737 (home-page "https://github.com/jwiegley/emacs-async")
1738 (version "1.9.4")
1739 (source (origin
1740 (method git-fetch)
1741 (uri (git-reference
1742 (url home-page)
1743 (commit (string-append "v" version))))
1744 (file-name (git-file-name name version))
1745 (sha256
1746 (base32
1747 "0hhpyxb3d531jb2f3wvzx25183f0anm8nxv6mh0p825q2gkm6ly7"))))
1748 (build-system emacs-build-system)
1749 (synopsis "Asynchronous processing in Emacs")
1750 (description
1751 "This package provides the ability to call asynchronous functions and
1752 processes. For example, it can be used to run dired commands (for copying,
1753 moving, etc.) asynchronously using @code{dired-async-mode}. Also it is used
1754 as a library for other Emacs packages.")
1755 (license license:gpl3+)))
1756
1757 (define-public emacs-auctex
1758 (package
1759 (name "emacs-auctex")
1760 (version "12.2.0")
1761 (source
1762 (origin
1763 (method url-fetch)
1764 (uri (string-append "https://elpa.gnu.org/packages/auctex-"
1765 version ".tar"))
1766 (sha256
1767 (base32 "0j919l3q5sq6h1k1kmk4kyv0vkzl4f98fxcd64v34x5q1ahjhg48"))))
1768 (build-system emacs-build-system)
1769 ;; We use 'emacs' because AUCTeX requires dbus at compile time
1770 ;; ('emacs-minimal' does not provide dbus).
1771 (arguments
1772 `(#:emacs ,emacs
1773 #:include '("\\.el$" "^images/" "^latex/" "\\.info$")
1774 #:exclude '("^tests/" "^latex/README")
1775 #:phases
1776 (modify-phases %standard-phases
1777 (add-after 'install 'install-doc
1778 (lambda* (#:key outputs #:allow-other-keys)
1779 (let* ((out (assoc-ref outputs "out"))
1780 (etc-dir (string-append out "/share/" ,name "/"
1781 ,version "/etc")))
1782 (with-directory-excursion "doc"
1783 (setenv "HOME" (getenv "TMPDIR")) ; for mktextfm
1784 (invoke "pdftex" "tex-ref")
1785 (install-file "tex-ref.pdf" (string-append etc-dir
1786 "/refcards")))
1787 #t))))))
1788 (native-inputs
1789 `(("perl" ,perl)))
1790 (inputs
1791 `(("texlive" ,(texlive-union (list texlive-amsfonts)))))
1792 (home-page "https://www.gnu.org/software/auctex/")
1793 (synopsis "Integrated environment for TeX")
1794 (description
1795 "AUCTeX is a comprehensive customizable integrated environment for
1796 writing input files for TeX, LaTeX, ConTeXt, Texinfo, and docTeX using Emacs
1797 or XEmacs.")
1798 (license license:gpl3+)))
1799
1800 (define-public emacs-autothemer
1801 (package
1802 (name "emacs-autothemer")
1803 (version "0.2.2")
1804 (source
1805 (origin
1806 (method git-fetch)
1807 (uri (git-reference
1808 (url "https://github.com/sebastiansturm/autothemer.git")
1809 (commit version)))
1810 (file-name (git-file-name name version))
1811 (sha256
1812 (base32
1813 "0cd2pqh6k32sjidkcd8682y4l6mx52xw4a05f38kk8nsrk28m74k"))))
1814 (build-system emacs-build-system)
1815 (propagated-inputs
1816 `(("emacs-dash" ,emacs-dash)))
1817 (home-page "https://github.com/sebastiansturm/autothemer")
1818 (synopsis "Conveniently create Emacs themes")
1819 (description
1820 "Autothemer provides a thin layer on top of @code{deftheme} and
1821 @code{custom-theme-set-faces} that creates a new custom color theme, based on
1822 a set of simplified face specifications and a user-supplied color palette")
1823 (license license:gpl3+)))
1824
1825 (define-public emacs-howm
1826 (package
1827 (name "emacs-howm")
1828 (version "1.4.5")
1829 (source
1830 (origin
1831 (method url-fetch)
1832 (uri (string-append "https://howm.sourceforge.jp/a/howm-"
1833 version ".tar.gz"))
1834 (sha256
1835 (base32 "1kvr5pxpc9rwhkza9025mdi0wvh0f0rpawl21rzirjk1x10903yi"))))
1836 (build-system gnu-build-system)
1837 (native-inputs
1838 `(("emacs" ,emacs-minimal)))
1839 (arguments
1840 `(#:configure-flags
1841 (list (string-append "--with-howmdir=" %output
1842 "/share/emacs/site-lisp/"))
1843 #:modules ((guix build gnu-build-system)
1844 ((guix build emacs-build-system) #:prefix emacs:)
1845 (guix build utils))
1846 #:imported-modules (,@%gnu-build-system-modules
1847 (guix build emacs-build-system)
1848 (guix build emacs-utils))
1849 #:phases
1850 (modify-phases %standard-phases
1851 (add-after 'install 'make-autoloads
1852 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
1853 (home-page "https://howm.osdn.jp/")
1854 (synopsis "Note-taking tool for Emacs")
1855 (description "Howm is a note-taking tool for Emacs. Like
1856 code@{emacs-wiki.el}, it facilitates using hyperlinks and doing full-text
1857 searches. Unlike code@{emacs-wiki.el}, it can be combined with any format.")
1858 (license license:gpl1+)))
1859
1860 (define-public emacs-calfw
1861 (package
1862 (name "emacs-calfw")
1863 (version "1.6")
1864 (source
1865 (origin
1866 (method git-fetch)
1867 (uri (git-reference
1868 (url "https://github.com/kiwanami/emacs-calfw.git")
1869 (commit (string-append "v" version))))
1870 (file-name (git-file-name name version))
1871 (sha256
1872 (base32
1873 "0r42cagvmvvib76kd15nd9ix55ys6i549vxnls4z16s864695zpa"))))
1874 (build-system emacs-build-system)
1875 (propagated-inputs
1876 `(("emacs-howm" ,emacs-howm)))
1877 (home-page "https://github.com/kiwanami/emacs-calfw/")
1878 (synopsis "Calendar framework for Emacs")
1879 (description
1880 "This package displays a calendar view with various schedule data in the
1881 Emacs buffer.")
1882 (license license:gpl3+)))
1883
1884 (define-public emacs-caps-lock
1885 (package
1886 (name "emacs-caps-lock")
1887 (version "1.0")
1888 (source
1889 (origin
1890 (method url-fetch)
1891 (uri (string-append "https://elpa.gnu.org/packages/"
1892 "caps-lock-" version ".el"))
1893 (sha256
1894 (base32 "1i4hwam81p4dr0bk8257fkiz4xmv6knkjxj7a00fa35kgx5blpva"))))
1895 (build-system emacs-build-system)
1896 (home-page "http://elpa.gnu.org/packages/caps-lock.html")
1897 (synopsis "Caps Lock as a minor mode")
1898 (description
1899 "This package provides a minor mode to emulate the behavior of a Caps
1900 Lock key.")
1901 (license license:gpl3+)))
1902
1903 (define-public emacs-chronometrist
1904 (package
1905 (name "emacs-chronometrist")
1906 (version "0.4.2")
1907 (source
1908 (origin
1909 (method git-fetch)
1910 (uri (git-reference
1911 (url "https://framagit.org/contrapunctus/chronometrist.git")
1912 (commit (string-append "v" version))))
1913 (file-name (git-file-name name version))
1914 (sha256
1915 (base32 "1ccy7qz1wcmggqlf3hwigbqq4wrx1amds4x9bxz9py6bypglyjc5"))))
1916 (build-system emacs-build-system)
1917 (propagated-inputs
1918 `(("emacs-dash" ,emacs-dash)
1919 ("emacs-s" ,emacs-s)))
1920 (home-page "https://framagit.org/contrapunctus/chronometrist")
1921 (synopsis "Time tracker for Emacs")
1922 (description "Chronometrist is a time tracker in Emacs, largely modelled
1923 after the Android application, @emph{A Time Tracker}.
1924
1925 Its features are:
1926 @itemize
1927 @item Simple and efficient to use,
1928 @item Displays useful information about your time usage,
1929 @item Support for both mouse and keyboard,
1930 @item Human errors in tracking are easily fixed by editing a plain text file,
1931 @item Hooks to let you perform arbitrary actions when starting/stopping tasks.
1932 @end itemize")
1933 ;; Software is dual-licensed.
1934 (license (list license:unlicense license:wtfpl2))))
1935
1936 (define-public emacs-direnv
1937 (package
1938 (name "emacs-direnv")
1939 (version "2.0.0")
1940 (source
1941 (origin
1942 (method git-fetch)
1943 (uri (git-reference
1944 (url "https://github.com/wbolster/emacs-direnv.git")
1945 (commit version)))
1946 (file-name (git-file-name name version))
1947 (sha256
1948 (base32
1949 "005ibyzsx1fdyrl5iyhqpb1bg83mphzahq7zvw58x00syyqi2z49"))))
1950 (build-system emacs-build-system)
1951 (propagated-inputs
1952 `(("dash" ,emacs-dash)
1953 ("with-editor" ,emacs-with-editor)))
1954 (home-page "https://github.com/wbolster/emacs-direnv")
1955 (synopsis "Direnv integration for Emacs")
1956 (description
1957 "This package provides support for invoking direnv to get the environment
1958 for the current file and updating the environment within Emacs to match.
1959
1960 Direnv can be invoked manually, and a global minor mode is included that will
1961 update the environment when the active buffer changes.
1962
1963 Using emacs-direnv means that programs started from Emacs will use the
1964 environment set through Direnv.")
1965 (license license:gpl3+)))
1966
1967 (define-public emacs-elf-mode
1968 (package
1969 (name "emacs-elf-mode")
1970 (version "0.1.0")
1971 (source
1972 (origin
1973 (method git-fetch)
1974 (uri
1975 (git-reference
1976 (url "https://github.com/abo-abo/elf-mode")
1977 (commit version)))
1978 (file-name (git-file-name name version))
1979 (sha256
1980 (base32 "0cbvjbk2893ag1iy8ggixpirfiyhssm7fii96hb9jqdz874cdl0k"))))
1981 (build-system emacs-build-system)
1982 (home-page "https://github.com/abo-abo/elf-mode")
1983 (synopsis "Show symbol list when opening a binary file in Emacs")
1984 (description "This Emacs package provides a command showing the symbols
1985 that the binary uses instead of the actual binary contents.")
1986 (license license:gpl3+)))
1987
1988 (define-public emacs-form-feed
1989 (package
1990 (name "emacs-form-feed")
1991 (version "0.2.2")
1992 (source
1993 (origin
1994 (method git-fetch)
1995 (uri (git-reference
1996 (url "https://github.com/wasamasa/form-feed.git")
1997 (commit version)))
1998 (file-name (git-file-name name version))
1999 (sha256
2000 (base32 "171jna631b2iqcimfsik9c66gii8nc0zdb58m077w00rn7rcxbh2"))))
2001 (build-system emacs-build-system)
2002 (home-page "https://github.com/wasamasa/form-feed")
2003 (synopsis "Display ^L glyphs as horizontal lines")
2004 (description
2005 "This package provides a minor mode @code{form-feed-mode} to display page
2006 delimiters which usually appear as ^L glyphs on a single line as horizontal
2007 lines spanning the entire window. The minor mode is suitable for inclusion
2008 into mode hooks and is intended to be used that way.")
2009 (license license:gpl3+)))
2010
2011 (define-public emacs-ggtags
2012 (package
2013 (name "emacs-ggtags")
2014 (version "0.8.13")
2015 (source
2016 (origin
2017 (method url-fetch)
2018 (uri (string-append "https://elpa.gnu.org/packages/ggtags-"
2019 version ".el"))
2020 (sha256
2021 (base32
2022 "1qa7lcrcmf76sf6dy8sxbg4adq7rg59fm0n5848w3qxgsr0h45fg"))))
2023 (build-system emacs-build-system)
2024 (inputs
2025 `(("global" ,global)))
2026 (arguments
2027 `(#:phases
2028 (modify-phases %standard-phases
2029 (add-after 'unpack 'configure
2030 (lambda* (#:key inputs #:allow-other-keys)
2031 (chmod "ggtags.el" #o644)
2032 (emacs-substitute-variables "ggtags.el"
2033 ("ggtags-executable-directory"
2034 (string-append (assoc-ref inputs "global") "/bin")))
2035 #t)))))
2036 (home-page "https://github.com/leoliu/ggtags")
2037 (synopsis "Frontend to the GNU Global source code tagging system")
2038 (description "@code{ggtags} provides a frontend to the GNU Global source
2039 code tagging system.
2040
2041 Features:
2042
2043 @itemize
2044 @item Build on @code{compile.el} for asynchronicity and its large feature-set.
2045 @item Automatically update Global's tag files when needed with tuning for
2046 large source trees.
2047 @item Intuitive navigation among multiple matches with mode-line display of
2048 current match, total matches and exit status.
2049 @item Read tag with completion.
2050 @item Show definition at point.
2051 @item Jump to #include files.
2052 @item Support search history and saving a search to register/bookmark.
2053 @item Query replace.
2054 @item Manage Global's environment variables on a per-project basis.
2055 @item Highlight (definition) tag at point.
2056 @item Abbreviated display of file names.
2057 @item Support all Global search backends: @code{grep}, @code{idutils}, etc.
2058 @item Support exuberant ctags @url{http://ctags.sourceforge.net/} and
2059 @code{pygments} backend.
2060 @item Support all Global's output formats: @code{grep}, @code{ctags-x},
2061 @code{cscope} etc.
2062 @item Support projects on remote hosts (e.g. via @code{tramp}).
2063 @item Support eldoc.
2064 @item Search @code{GTAGSLIBPATH} for references and symbols.
2065 @end itemize\n")
2066 (license license:gpl3+)))
2067
2068 (define-public emacs-go-mode
2069 (package
2070 (name "emacs-go-mode")
2071 (version "1.5.0")
2072 (source (origin
2073 (method git-fetch)
2074 (uri (git-reference
2075 (url "https://github.com/dominikh/go-mode.el.git")
2076 (commit (string-append "v" version))))
2077 (file-name (git-file-name name version))
2078 (sha256
2079 (base32
2080 "1nd2h50yb0493wvf1h7fzplq45rmqn2w7kxpgnlxzhkvq99v8vzf"))))
2081 (build-system emacs-build-system)
2082 (arguments
2083 `(#:phases
2084 (modify-phases %standard-phases
2085 (add-after 'unpack 'make-writable
2086 (lambda _
2087 (for-each make-file-writable (find-files "." "\\.el$"))
2088 #t)))))
2089 (home-page "https://github.com/dominikh/go-mode.el")
2090 (synopsis "Go mode for Emacs")
2091 (description
2092 "This package provides go-mode, an Emacs mode for working with software
2093 written in the Go programming language.")
2094 (license license:bsd-3)))
2095
2096 (define-public emacs-google-maps
2097 (package
2098 (name "emacs-google-maps")
2099 (version "1.0.0")
2100 (source (origin
2101 (method git-fetch)
2102 (uri (git-reference
2103 (url "https://github.com/jd/google-maps.el.git")
2104 (commit version)))
2105 (file-name (git-file-name name version))
2106 (sha256
2107 (base32
2108 "183igr5lp20zcqi7rc01fk76sfxdhksd74i11v16gdsifdkjimd0"))))
2109 (build-system emacs-build-system)
2110 (home-page "https://github.com/jd/google-maps.el")
2111 (synopsis "Access Google Maps from Emacs")
2112 (description "The @code{google-maps} package displays Google
2113 Maps directly inside Emacs.")
2114 (license license:gpl3+)))
2115
2116 (define-public emacs-graphviz-dot-mode
2117 (package
2118 (name "emacs-graphviz-dot-mode")
2119 (version "0.4.2")
2120 (source
2121 (origin
2122 (method git-fetch)
2123 (uri (git-reference
2124 (url "https://github.com/ppareit/graphviz-dot-mode.git")
2125 (commit (string-append "v" version))))
2126 (file-name (git-file-name name version))
2127 (sha256
2128 (base32 "1v1p85wk73nfsvv66qf90flgf9dqhmv15z1r7q4zmc4ifklqn08m"))))
2129 (build-system emacs-build-system)
2130 (arguments
2131 `(#:phases
2132 (modify-phases %standard-phases
2133 (add-before 'install 'make-info
2134 (lambda* (#:key inputs #:allow-other-keys)
2135 (with-directory-excursion "texinfo"
2136 (substitute* "Makefile"
2137 (("\\/usr\\/bin\\/gzip")
2138 (string-append (assoc-ref inputs "gzip") "/bin/gzip")))
2139 (invoke "make"
2140 "clean"
2141 "info"
2142 (string-append "TEXINFODIR="
2143 (assoc-ref inputs "texinfo")
2144 "/bin")))))
2145 (add-after 'install 'install-info
2146 (lambda* (#:key outputs #:allow-other-keys)
2147 (let* ((out (assoc-ref outputs "out"))
2148 (info (string-append out "/share/info")))
2149 (install-file "texinfo/graphviz-dot-mode.info.gz" info)
2150 #t))))))
2151 (native-inputs
2152 `(("gzip" ,gzip)
2153 ("texinfo" ,texinfo)))
2154 (propagated-inputs
2155 `(("emacs-company" ,emacs-company)))
2156 (home-page "http://ppareit.github.com/graphviz-dot-mode")
2157 (synopsis "Major mode for editing Graphviz DOT files")
2158 (description
2159 "This Emacs package helps you to create @file{.dot} or @file{.gv} files
2160 using the DOT syntax, and use Graphviz to convert these files to diagrams.")
2161 (license license:gpl2+)))
2162
2163 (define-public emacs-imenu-list
2164 (package
2165 (name "emacs-imenu-list")
2166 (version "0.8")
2167 (source
2168 (origin
2169 (method git-fetch)
2170 (uri
2171 (git-reference
2172 (url "https://github.com/bmag/imenu-list")
2173 (commit (string-append "v" version))))
2174 (file-name (git-file-name name version))
2175 (sha256
2176 (base32 "13xh9bdl3k6ccfq83wjmkpi4269qahv4davki4wq18dr4amrzhlx"))))
2177 (build-system emacs-build-system)
2178 (home-page "https://github.com/bmag/imenu-list")
2179 (synopsis
2180 "Automatically tracks the current buffer's imenu entries")
2181 (description
2182 "This Emacs minor mode creates an automatically updated buffer called
2183 @code{*Ilist*} that is populated with the current buffer's imenu entries.
2184 This buffer is typically shown as a sidebar (Emacs vertically splits the
2185 window).")
2186 (license license:gpl3+)))
2187
2188 (define-public emacs-mmm-mode
2189 (package
2190 (name "emacs-mmm-mode")
2191 (version "0.5.7")
2192 (source
2193 (origin
2194 (method git-fetch)
2195 (uri (git-reference
2196 (url "https://github.com/purcell/mmm-mode.git")
2197 (commit version)))
2198 (file-name (git-file-name name version))
2199 (sha256
2200 (base32
2201 "0lxd55yhz0ag7v1ydff55bg4h8snq5lbk8cjwxqpyq6gh4v7md1h"))))
2202 (build-system gnu-build-system)
2203 (native-inputs
2204 `(("autoconf" ,autoconf)
2205 ("automake" ,automake)
2206 ("emacs" ,emacs-minimal)
2207 ("texinfo" ,texinfo-5))) ;fails to build with Texinfo 6.7
2208 (home-page "https://github.com/purcell/mmm-mode")
2209 (synopsis "Allow multiple major modes in an Emacs buffer")
2210 (description
2211 "MMM Mode is a minor mode that allows multiple major modes to coexist in a
2212 single buffer.")
2213 (license license:gpl3+)))
2214
2215 (define-public emacs-mmt
2216 (package
2217 (name "emacs-mmt")
2218 (version "0.2.0")
2219 (source
2220 (origin
2221 (method git-fetch)
2222 (uri (git-reference
2223 (url "https://github.com/mrkkrp/mmt.git")
2224 (commit version)))
2225 (file-name (git-file-name name version))
2226 (sha256
2227 (base32 "13vbfc5597v0gd87qyhn10f93nb477vjpg3jlpphbax9fvkf4gav"))))
2228 (build-system emacs-build-system)
2229 (home-page "https://github.com/mrkkrp/mmt")
2230 (synopsis "Classic tools to write Emacs Lisp macros")
2231 (description "Emacs MMT is a package that contains classic tools for Emacs
2232 Lisp developers who want to write macros with convenience.")
2233 (license license:gpl3+)))
2234
2235 (define-public emacs-tablist
2236 (package
2237 (name "emacs-tablist")
2238 (version "1.0")
2239 (source (origin
2240 (method git-fetch)
2241 (uri (git-reference
2242 (url "https://github.com/politza/tablist.git")
2243 (commit (string-append "v" version))))
2244 (file-name (git-file-name name version))
2245 (sha256
2246 (base32
2247 "0pzsdg0rm59daw34ppss79cg05z9wnr8nkmdcc48nkd0p69ip2yy"))))
2248 (build-system emacs-build-system)
2249 (home-page "https://github.com/politza/tablist")
2250 (synopsis "Extension for @code{tabulated-list-mode}")
2251 (description "Tablist is the Emacs package that provides several
2252 additional features to @code{tabulated-list-mode}: it adds marks,
2253 filters, new key bindings and faces. It can be enabled by
2254 @code{tablist-mode} or @code{tablist-minor-mode} commands.")
2255 (license license:gpl3+)))
2256
2257 (define-public emacs-djvu
2258 (package
2259 (name "emacs-djvu")
2260 (version "1.1")
2261 (source
2262 (origin
2263 (method url-fetch)
2264 (uri (string-append "https://elpa.gnu.org/packages/"
2265 "djvu-" version ".el"))
2266 (sha256
2267 (base32 "0njgyx09q225hliacsnjk8wallg5i6xkz6bj501pb05nwqfbvfk7"))))
2268 (build-system emacs-build-system)
2269 (home-page "http://elpa.gnu.org/packages/djvu.html")
2270 (synopsis "Edit and view Djvu files via djvused")
2271 (description
2272 "This package is a front end for the command-line program djvused from
2273 DjVuLibre, see @url{http://djvu.sourceforge.net/}. It assumes you have the
2274 programs @command{djvused}, @command{djview}, @command{ddjvu}, and
2275 @command{djvm} installed.")
2276 (license license:gpl3+)))
2277
2278 (define-public emacs-pabbrev
2279 (package
2280 (name "emacs-pabbrev")
2281 (version "4.2.1")
2282 (source
2283 (origin
2284 (method url-fetch)
2285 (uri (string-append "https://elpa.gnu.org/packages/"
2286 "pabbrev-" version ".el"))
2287 (sha256
2288 (base32 "19v5adk61y8fpigw7k6wz6dj79jwr450hnbi7fj0jvb21cvjmfxh"))))
2289 (build-system emacs-build-system)
2290 (home-page "http://elpa.gnu.org/packages/pabbrev.html")
2291 (synopsis "Predictive abbreviation expansion")
2292 (description
2293 "The code provides a abbreviation expansion for Emacs. It is
2294 fairly similar to Dabbrev expansion, which works based on the contents
2295 of the current buffer (or other buffers).
2296
2297 Predictive abbreviation expansion works based on the previously
2298 written text. Unlike dynamic abbreviation, the text is analysed
2299 during idle time, while Emacs is doing nothing else.")
2300 (license license:gpl3+)))
2301
2302 (define-public emacs-pdf-tools
2303 (package
2304 (name "emacs-pdf-tools")
2305 (version "0.90")
2306 (home-page "https://github.com/politza/pdf-tools")
2307 (source (origin
2308 (method git-fetch)
2309 (uri (git-reference (url home-page)
2310 (commit (string-append "v" version))))
2311 (file-name (git-file-name name version))
2312 (sha256
2313 (base32
2314 "0iv2g5kd14zk3r5dzdw7b7hk4b5w7qpbilcqkja46jgxbb6xnpl9"))))
2315 (build-system gnu-build-system)
2316 (arguments
2317 `(#:tests? #f ; there are no tests
2318 #:modules ((guix build gnu-build-system)
2319 ((guix build emacs-build-system) #:prefix emacs:)
2320 (guix build utils)
2321 (guix build emacs-utils))
2322 #:imported-modules (,@%gnu-build-system-modules
2323 (guix build emacs-build-system)
2324 (guix build emacs-utils))
2325 #:phases
2326 (modify-phases %standard-phases
2327 ;; Build server side using 'gnu-build-system'.
2328 (add-after 'unpack 'enter-server-dir
2329 (lambda _ (chdir "server") #t))
2330 (add-after 'enter-server-dir 'autogen
2331 (lambda _
2332 (invoke "bash" "autogen.sh")))
2333
2334 ;; Build emacs side using 'emacs-build-system'.
2335 (add-after 'compress-documentation 'enter-lisp-dir
2336 (lambda _ (chdir "../lisp") #t))
2337 (add-after 'enter-lisp-dir 'emacs-patch-variables
2338 (lambda* (#:key outputs #:allow-other-keys)
2339 (for-each make-file-writable (find-files "."))
2340
2341 ;; Set path to epdfinfo program.
2342 (emacs-substitute-variables "pdf-info.el"
2343 ("pdf-info-epdfinfo-program"
2344 (string-append (assoc-ref outputs "out")
2345 "/bin/epdfinfo")))
2346 ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto
2347 ;; upgrading" that pdf-tools tries to perform.
2348 (emacs-substitute-variables "pdf-tools.el"
2349 ("pdf-tools-handle-upgrades" '()))))
2350 (add-after 'emacs-patch-variables 'emacs-add-source-to-load-path
2351 (assoc-ref emacs:%standard-phases 'add-source-to-load-path))
2352 (add-after 'emacs-add-source-to-load-path 'emacs-install
2353 (assoc-ref emacs:%standard-phases 'install))
2354 (add-after 'emacs-install 'emacs-build
2355 (assoc-ref emacs:%standard-phases 'build))
2356 (add-after 'emacs-install 'emacs-make-autoloads
2357 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
2358 (native-inputs `(("autoconf" ,autoconf)
2359 ("automake" ,automake)
2360 ("pkg-config" ,pkg-config)
2361 ("emacs" ,emacs-minimal)))
2362 (inputs `(("poppler" ,poppler)
2363 ("cairo" ,cairo)
2364 ("glib" ,glib)
2365 ("libpng" ,libpng)
2366 ("zlib" ,zlib)))
2367 (propagated-inputs `(("tablist" ,emacs-tablist)))
2368 (synopsis "Emacs support library for PDF files")
2369 (description
2370 "PDF Tools is, among other things, a replacement of DocView for PDF
2371 files. The key difference is that pages are not pre-rendered by
2372 e.g. ghostscript and stored in the file-system, but rather created on-demand
2373 and stored in memory.")
2374 (license license:gpl3+)))
2375
2376 (define-public emacs-dash
2377 (package
2378 (name "emacs-dash")
2379 (version "2.17.0")
2380 (source (origin
2381 (method git-fetch)
2382 (uri (git-reference
2383 (url "https://github.com/magnars/dash.el.git")
2384 (commit version)))
2385 (file-name (git-file-name name version))
2386 (sha256
2387 (base32
2388 "153f55dqkhs8w2xlf6b88wp5vlkap7h8vjd9wxh4jp2ram5g4l1n"))))
2389 (build-system emacs-build-system)
2390 (arguments
2391 `(#:tests? #t
2392 #:test-command '("./run-tests.sh")))
2393 (home-page "https://github.com/magnars/dash.el")
2394 (synopsis "Modern list library for Emacs")
2395 (description "This package provides a modern list API library for Emacs.")
2396 (license license:gpl3+)))
2397
2398 (define-public emacs-bui
2399 (package
2400 (name "emacs-bui")
2401 (version "1.2.1")
2402 (source (origin
2403 (method git-fetch)
2404 (uri (git-reference
2405 (url "https://notabug.org/alezost/emacs-bui.git")
2406 (commit (string-append "v" version))))
2407 (file-name (git-file-name name version))
2408 (sha256
2409 (base32
2410 "0sszdl4kvqbihdh8d7mybpp0d8yw2p3gyiipjcxz9xhvvmw3ww4x"))))
2411 (build-system emacs-build-system)
2412 (propagated-inputs
2413 `(("dash" ,emacs-dash)))
2414 (home-page "https://notabug.org/alezost/emacs-bui")
2415 (synopsis "Buffer interface library for Emacs")
2416 (description
2417 "BUI (Buffer User Interface) is a library for making @code{list} and
2418 @code{info} interfaces to display an arbitrary data of the same
2419 type, for example: packages, buffers, files, etc.")
2420 (license license:gpl3+)))
2421
2422 (define-public emacs-guix
2423 (package
2424 (name "emacs-guix")
2425 (version "0.5.2")
2426 (source (origin
2427 (method url-fetch)
2428 (uri (string-append "https://emacs-guix.gitlab.io/website/"
2429 "releases/emacs-guix-" version ".tar.gz"))
2430 (sha256
2431 (base32
2432 "0yz64c0z4ygi2k4af18k4r1ncgys18jb8icywkp2g5pgmpn5l7ps"))
2433 (modules '((guix build utils)))
2434 (snippet
2435 '(begin
2436 ;; Add support for Guile 3.0. Remove for versions > 0.5.2.
2437 (substitute* "configure"
2438 (("\"2\\.2 2\\.0\"")
2439 "\"3.0 2.2 2.0\""))
2440 #t))))
2441 (build-system gnu-build-system)
2442 (native-inputs
2443 `(("pkg-config" ,pkg-config)
2444 ("emacs" ,emacs-minimal)))
2445 (inputs
2446 `(("guile" ,guile-3.0)
2447 ("guix" ,guix)))
2448 (propagated-inputs
2449 `(("geiser" ,emacs-geiser)
2450 ("guile-gcrypt" ,guile-gcrypt)
2451 ("dash" ,emacs-dash)
2452 ("bui" ,emacs-bui)
2453 ("edit-indirect" ,emacs-edit-indirect)
2454 ("magit-popup" ,emacs-magit-popup)))
2455 (home-page "https://emacs-guix.gitlab.io/website/")
2456 (synopsis "Emacs interface for GNU Guix")
2457 (description
2458 "Emacs-Guix provides a visual interface, tools and features for the GNU
2459 Guix package manager. Particularly, it allows you to do various package
2460 management tasks from Emacs. To begin with, run @code{M-x guix-about} or
2461 @code{M-x guix-help} command.")
2462 (license license:gpl3+)))
2463
2464 (define-public emacs-build-farm
2465 (package
2466 (name "emacs-build-farm")
2467 (version "0.2.2")
2468 (source (origin
2469 (method git-fetch)
2470 (uri (git-reference
2471 (url "https://notabug.org/alezost/emacs-build-farm.git")
2472 (commit (string-append "v" version))))
2473 (file-name (git-file-name name version))
2474 (sha256
2475 (base32
2476 "0i0bwbav5861j2y15j9nd5m9rdqg9q97zgcbld8pivr9nyxy63lz"))))
2477 (build-system emacs-build-system)
2478 (propagated-inputs
2479 `(("bui" ,emacs-bui)
2480 ("magit-popup" ,emacs-magit-popup)))
2481 (home-page "https://notabug.org/alezost/emacs-build-farm")
2482 (synopsis "Emacs interface for Hydra and Cuirass build farms")
2483 (description
2484 "This Emacs package provides an interface for Hydra and
2485 Cuirass (build farms used by Nix and Guix). It allows you to look at
2486 various data related to the build farm projects, jobsets, builds and
2487 evaluations. The entry point is @code{M-x build-farm} command.")
2488 (license license:gpl3+)))
2489
2490 (define-public emacs-d-mode
2491 (package
2492 (name "emacs-d-mode")
2493 (version "2.0.10")
2494 (source
2495 (origin
2496 (method git-fetch)
2497 (uri (git-reference
2498 (url "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode.git")
2499 (commit version)))
2500 (file-name (git-file-name name version))
2501 (sha256
2502 (base32 "0915kb9jcaixgindhj85fmykkhvj31ckp1yg6746fznwdgfrlifv"))))
2503 (build-system emacs-build-system)
2504 (propagated-inputs
2505 `(("emacs-undercover" ,emacs-undercover)))
2506 (home-page "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
2507 (synopsis "Emacs major mode for editing D code")
2508 (description "This package provides an Emacs major mode for highlighting
2509 code written in the D programming language. This mode is currently known to
2510 work with Emacs 24 and 25.")
2511 (license license:gpl2+)))
2512
2513 (define-public emacs-extempore-mode
2514 ;; Use the latest commit at time of packaging. There are no releases or tags.
2515 (let ((commit "09518ae6650d7be33a4633a4c0f31b7130d04c6e")
2516 (revision "1"))
2517 (package
2518 (name "emacs-extempore-mode")
2519 (version (git-version "0.0.0" revision commit))
2520 (source
2521 (origin
2522 (method git-fetch)
2523 (uri (git-reference
2524 (url "https://github.com/extemporelang/extempore-emacs-mode.git")
2525 (commit commit)))
2526 (file-name (git-file-name name version))
2527 (sha256
2528 (base32 "0hfza9lzdsz94gxhmzyp9fwviscv19rmnjgd0q613faayn11sjsp"))))
2529 (build-system emacs-build-system)
2530 (home-page "https://github.com/extemporelang/extempore-emacs-mode")
2531 (synopsis "Emacs major mode for Extempore source files")
2532 (description
2533 "This package provides a major mode for editing Extempore code. It can
2534 create an Extempore REPL, connect the current @code{extempore-mode} buffer to a
2535 running Extempore process, and more.")
2536 (license license:bsd-2))))
2537
2538 (define-public emacs-kakoune
2539 ;; Package has no release. Version is extracted from "Version:" keyword in
2540 ;; main file.
2541 (let ((commit "d73d14e69ea38076af50cc69f846808383ff539d")
2542 (revision "0"))
2543 (package
2544 (name "emacs-kakoune")
2545 (version (git-version "0.1" revision commit))
2546 (source
2547 (origin
2548 (method git-fetch)
2549 (uri (git-reference
2550 (url "https://github.com/jmorag/kakoune.el.git")
2551 (commit commit)))
2552 (file-name (git-file-name name version))
2553 (sha256
2554 (base32 "0nk6jdy1y5mc3ryd0smiqghrk6iv34d5grc7f7migmshlbq0np92"))))
2555 (build-system emacs-build-system)
2556 (propagated-inputs
2557 `(("emacs-expand-region" ,emacs-expand-region)
2558 ("emacs-multiple-cursors" ,emacs-multiple-cursors)
2559 ("emacs-ryo-modal" ,emacs-ryo-modal)))
2560 (home-page "https://github.com/jmorag/kakoune.el")
2561 (synopsis "Emacs simple simulation, but not emulation, of Kakoune")
2562 (description "This package provides many, but not all of the editing
2563 primitives in the Kakoune editor. Unlike Evil mode for Vim, this is a very
2564 shallow emulation, which seeks to do as little work as possible, leveraging
2565 Emacs native editing commmands and the work of other packages wherever
2566 possible.")
2567 (license license:expat))))
2568
2569 (define-public emacs-keyfreq
2570 (package
2571 (name "emacs-keyfreq")
2572 (version "20160516.716")
2573 (source
2574 (origin
2575 (method url-fetch)
2576 (uri (string-append "http://melpa.org/packages/keyfreq-"
2577 version ".el"))
2578 (sha256
2579 (base32
2580 "008hd7d06qskc3mx0bbdgpgy2pwxr8185fzlyqf9qjg49y74p6g8"))))
2581 (build-system emacs-build-system)
2582 (home-page "https://github.com/dacap/keyfreq")
2583 (synopsis "Track Emacs command frequencies")
2584 (description "@code{emacs-keyfeq} tracks and shows how many times you used
2585 a command.")
2586 (license license:gpl3+)))
2587
2588 (define-public emacs-olivetti
2589 (package
2590 (name "emacs-olivetti")
2591 (version "1.8.1")
2592 (source (origin
2593 (method git-fetch)
2594 (uri (git-reference
2595 (url "https://github.com/rnkn/olivetti.git")
2596 (commit (string-append "v" version))))
2597 (file-name (git-file-name name version))
2598 (sha256
2599 (base32
2600 "1fbj9s49y5yx5i429awv9rybacfgvhwp7v5h0zw67bpgx4qs44pa"))))
2601 (build-system emacs-build-system)
2602 (home-page "https://github.com/rnkn/olivetti")
2603 (synopsis "Emacs minor mode for a nice writing environment")
2604 (description "This package provides an Emacs minor mode that puts writing
2605 in the center.")
2606 (license license:gpl3+)))
2607
2608 (define-public emacs-undo-tree
2609 (package
2610 (name "emacs-undo-tree")
2611 (version "0.7.1")
2612 (source (origin
2613 (method git-fetch)
2614 (uri (git-reference
2615 (url "http://dr-qubit.org/git/undo-tree.git")
2616 (commit (string-append "release/" version))))
2617 (file-name (git-file-name name version))
2618 (sha256
2619 (base32
2620 "1nr0149y2nvrxj56gc12jqnfl01g6z9ypfsgl6pfg85cw73hnggk"))))
2621 (build-system emacs-build-system)
2622 (home-page "http://www.dr-qubit.org/emacs.php")
2623 (synopsis "Treat undo history as a tree")
2624 (description "Tree-like interface to Emacs undo system, providing
2625 graphical tree presentation of all previous states of buffer that
2626 allows easily move between them.")
2627 (license license:gpl3+)))
2628
2629 (define-public emacs-s
2630 (package
2631 (name "emacs-s")
2632 (version "1.12.0")
2633 (source
2634 (origin
2635 (method git-fetch)
2636 (uri (git-reference
2637 (url "https://github.com/magnars/s.el.git")
2638 (commit version)))
2639 (file-name (git-file-name name version))
2640 (sha256
2641 (base32 "1g8mqd13llj007al4nlxxx4z2lcsg3wk970mgjn0avwrhjjgdmmv"))))
2642 (build-system emacs-build-system)
2643 (arguments
2644 `(#:tests? #t
2645 #:emacs ,emacs ; FIXME: tests fail with emacs-minimal
2646 #:test-command '("./run-tests.sh")))
2647 (home-page "https://github.com/magnars/s.el")
2648 (synopsis "Emacs string manipulation library")
2649 (description "This package provides an Emacs library for manipulating
2650 strings.")
2651 (license license:gpl3+)))
2652
2653 (define-public emacs-symon
2654 (package
2655 (name "emacs-symon")
2656 (version "20160630")
2657 (source
2658 (origin
2659 (method git-fetch)
2660 (uri (git-reference
2661 (url "https://github.com/zk-phi/symon.git")
2662 (commit version)))
2663 (file-name (git-file-name name version))
2664 (sha256
2665 (base32 "1q7di9s8k710nx98wnqnbkkhdimrn0jf6z4xkm4c78l6s5idjwlz"))))
2666 (build-system emacs-build-system)
2667 (home-page "https://github.com/zk-phi/symon")
2668 (synopsis "Tiny graphical system monitor")
2669 (description
2670 "Tiny graphical system monitor for the Emacs minibuffer when idle.")
2671 (license license:gpl2+)))
2672
2673 (define-public emacs-sx
2674 (let ((version "20191229")
2675 (revision "0")
2676 (commit "e9d1093c97507a6d7b4f4710ef65200dae725e5f"))
2677 (package
2678 (name "emacs-sx")
2679 (version (git-version version revision commit))
2680 (source
2681 (origin
2682 (method git-fetch)
2683 (uri (git-reference
2684 (url "https://github.com/vermiculus/sx.el")
2685 (commit commit)))
2686 (file-name (git-file-name name version))
2687 (sha256
2688 (base32 "0m90ddwm8j0y6d1ppqhd2gil1107k202blw6mzm5bdambn4nfqkf"))))
2689 (build-system emacs-build-system)
2690 (propagated-inputs
2691 `(("emacs-markdown-mode" ,emacs-markdown-mode)))
2692 (home-page "https://github.com/vermiculus/sx.el")
2693 (synopsis "Emacs StackExchange client")
2694 (description
2695 "Emacs StackExchange client. Ask and answer questions on
2696 Stack Overflow, Super User, and other StackExchange sites.")
2697 (license license:gpl3+))))
2698
2699 (define-public emacs-toml-mode
2700 (let ((version "0.1.3")
2701 (revision "0")
2702 (commit "f6c61817b00f9c4a3cab1bae9c309e0fc45cdd06"))
2703 (package
2704 (name "emacs-toml-mode")
2705 (version (git-version version revision commit))
2706 (source
2707 (origin
2708 (method git-fetch)
2709 (uri (git-reference
2710 (url "https://github.com/dryman/toml-mode.el.git")
2711 (commit commit)))
2712 (file-name (git-file-name name version))
2713 (sha256
2714 (base32 "05b4ksay85c8y5ncax0qsvnmplwsfiw24z16a58gkarjz938hb57"))))
2715 (build-system emacs-build-system)
2716 (home-page "https://github.com/dryman/toml-mode.el")
2717 (synopsis "Emacs major mode for editing TOML files")
2718 (description
2719 ;; XXX: Ideally we'd use @acronym for "TOML", but Guile's Texinfo
2720 ;; parser does not currently support @comma{}, making it impossible
2721 ;; to use commas in the @acronym arguments.
2722 "This package provides a major mode for editing files in @dfn{TOML}
2723 (Tom's Obvious, Minimal Language) data format.")
2724 (license license:gpl3+))))
2725
2726 (define-public emacs-twittering-mode
2727 (package
2728 (name "emacs-twittering-mode")
2729 (version "3.1.0")
2730 (source
2731 (origin
2732 (method url-fetch)
2733 (uri (string-append "mirror://sourceforge/twmode"
2734 "/twittering-mode-" version
2735 "/twittering-mode-" version ".tar.xz"))
2736 (sha256
2737 (base32 "02imis1gxz90lah0b5n37j2hlsaw5igss11d85vpsm5d1bgw8j28"))))
2738 (build-system emacs-build-system)
2739 (home-page "http://twmode.sourceforge.net")
2740 (synopsis "Emacs major mode for Twitter")
2741 (description
2742 "Twittering mode is an Emacs major mode for Twitter.
2743 You can check timelines, tweet, mark posts as favorites and so on with
2744 Emacs.")
2745 (license license:gpl2+)))
2746
2747 (define-public emacs-f
2748 (package
2749 (name "emacs-f")
2750 (version "0.20.0")
2751 (source (origin
2752 (method git-fetch)
2753 (uri (git-reference
2754 (url "https://github.com/rejeep/f.el.git")
2755 (commit (string-append "v" version))))
2756 (file-name (git-file-name name version))
2757 (sha256
2758 (base32
2759 "1a47xk3yp1rp17fqg7ldl3d3fb888h0fz3sysqfdz1bfdgs8a9bk"))))
2760 (build-system emacs-build-system)
2761 (propagated-inputs
2762 `(("emacs-s" ,emacs-s)
2763 ("emacs-dash" ,emacs-dash)))
2764 (home-page "https://github.com/rejeep/f.el")
2765 (synopsis "Emacs API for working with files and directories")
2766 (description "This package provides an Emacs library for working with
2767 files and directories.")
2768 (license license:gpl3+)))
2769
2770 (define-public emacs-fringe-helper
2771 (let ((commit "ef4a9c023bae18ec1ddd7265f1f2d6d2e775efdd")
2772 (revision "1"))
2773 (package
2774 (name "emacs-fringe-helper")
2775 (version (git-version "1.0.1" revision commit))
2776 (source
2777 (origin
2778 (method git-fetch)
2779 (uri (git-reference
2780 (url "https://github.com/nschum/fringe-helper.el.git")
2781 (commit commit)))
2782 (file-name (git-file-name name version))
2783 (sha256
2784 (base32 "0ra9rc53l1gvkqank8apasl3r7wz2yfjrcvmfk3wpxhh24ppxv9d"))))
2785 (build-system emacs-build-system)
2786 (arguments
2787 `(#:tests? #t
2788 #:test-command '("emacs" "--batch"
2789 "-l" "tests.el"
2790 "-f" "ert-run-tests-batch-and-exit")))
2791 (home-page "https://github.com/nschum/fringe-helper.el")
2792 (synopsis "Helper functions for fringe bitmaps")
2793 (description
2794 "This package allows fringe bitmaps to be defined with a visual string
2795 representation.")
2796 (license license:gpl2+))))
2797
2798 (define-public emacs-git-gutter
2799 (package
2800 (name "emacs-git-gutter")
2801 (version "0.90")
2802 (source
2803 (origin
2804 (method git-fetch)
2805 (uri (git-reference
2806 (url "https://github.com/syohex/emacs-git-gutter.git")
2807 (commit version)))
2808 (file-name (git-file-name name version))
2809 (sha256
2810 (base32 "1abagq0psip7cgsqbfjv72qy60ywsny0ibsfcn74ldj6a9v17mz5"))))
2811 (build-system emacs-build-system)
2812 (home-page "https://github.com/syohex/emacs-git-gutter")
2813 (synopsis "See and manage hunks of text in a version control system")
2814 (description
2815 "This package is an Emacs minor mode for displaying and interacting with
2816 hunks of text managed in a version control system. Added modified and deleted
2817 areas can be indicated with symbols on the edge of the buffer, and commands
2818 can be used to move between and perform actions on these hunks.
2819
2820 Git, Mercurial, Subversion and Bazaar are supported, and many parts of the
2821 display and behaviour is easily customisable.")
2822 (license license:gpl3+)))
2823
2824 (define-public emacs-git-gutter-fringe
2825 (let ((commit "16226caab44174301f1659f7bf8cc67a76153445")
2826 (revision "1"))
2827 (package
2828 (name "emacs-git-gutter-fringe")
2829 (version (git-version "0.23" revision commit))
2830 (source
2831 (origin
2832 (method git-fetch)
2833 (uri (git-reference
2834 (url "https://github.com/syohex/git-gutter-fringe.git")
2835 (commit commit)))
2836 (file-name (git-file-name name version))
2837 (sha256
2838 (base32 "1y77gjl0yznamdj0f55d418zb75k22izisjg7ikvrfsl2yfqf3pm"))))
2839 (build-system emacs-build-system)
2840 (propagated-inputs
2841 `(("emacs-git-gutter" ,emacs-git-gutter)
2842 ("emacs-fringe-helper" ,emacs-fringe-helper)))
2843 (home-page "https://github.com/syohex/git-gutter-fringe")
2844 (synopsis "See and manage hunks of text in a version control system")
2845 (description
2846 "This package extends @code{git-gutter} to use the fringe area of a
2847 window.")
2848 (license license:gpl3+))))
2849
2850 (define-public emacs-git-link
2851 (package
2852 (name "emacs-git-link")
2853 (version "0.7.5")
2854 (source
2855 (origin
2856 (method git-fetch)
2857 (uri (git-reference
2858 (url "https://github.com/sshaw/git-link.git")
2859 (commit (string-append "v" version))))
2860 (file-name (git-file-name name version))
2861 (sha256
2862 (base32 "04xa6lp8wkjb6zs096bf4sz124grcjj15xv1h009bmn2j95rggj6"))))
2863 (build-system emacs-build-system)
2864 (arguments
2865 `(#:tests? #t
2866 #:test-command '("make" "test")))
2867 (home-page "https://github.com/sshaw/git-link")
2868 (synopsis "Create links for files and commits in GitHub/GitLab/etc. repos")
2869 (description
2870 "@code{git-link} returns the URL for the current buffer's file location
2871 at the current line number or active region. @code{git-link-commit} returns
2872 the URL for a commit. URLs are added to the kill ring.")
2873 (license license:gpl3+)))
2874
2875 (define-public emacs-apheleia
2876 (package
2877 (name "emacs-apheleia")
2878 (version "1.0")
2879 (source
2880 (origin
2881 (method git-fetch)
2882 (uri (git-reference
2883 (url "https://github.com/raxod502/apheleia.git")
2884 (commit (string-append "v" version))))
2885 (file-name (git-file-name name version))
2886 (sha256
2887 (base32 "04pls7zahy4jfkikv6fvd9vfpm4glhyanmmkx79hgi9pwdv966rf"))))
2888 (build-system emacs-build-system)
2889 (home-page "https://github.com/raxod502/apheleia")
2890 (synopsis "Reformat buffer stably")
2891 (description
2892 "This package allows for a buffer to be reformatted without moving point,
2893 so that running a formatting tool like @code{Prettier} or @code{Black} upon
2894 saving won't move point back to the beginning of the buffer.")
2895 (license license:gpl3+)))
2896
2897 (define-public emacs-git-timemachine
2898 (package
2899 (name "emacs-git-timemachine")
2900 (version "4.11")
2901 (source
2902 (origin
2903 (method git-fetch)
2904 (uri (git-reference
2905 (url "https://gitlab.com/pidu/git-timemachine.git")
2906 (commit version)))
2907 (file-name (git-file-name name version))
2908 (sha256
2909 (base32
2910 "1pz4l1xnq6s67w5yq9107vm8dg7rqf8n9dmbn90jys97c722g70n"))))
2911 (build-system emacs-build-system)
2912 (propagated-inputs
2913 `(("emacs-transient" ,emacs-transient)))
2914 (home-page "https://gitlab.com/pidu/git-timemachine")
2915 (synopsis "Step through historic versions of Git-controlled files")
2916 (description "This package enables you to step through historic versions
2917 of files under Git version control from within Emacs.")
2918 (license license:gpl3+)))
2919
2920 (define-public emacs-minitest
2921 (let ((commit "1aadb7865c1dc69c201cecee275751ecec33a182")
2922 (revision "1"))
2923 (package
2924 (name "emacs-minitest")
2925 (version (git-version "0.8.0" revision commit))
2926 (source (origin
2927 (method git-fetch)
2928 (uri (git-reference
2929 (url "https://github.com/arthurnn/minitest-emacs")
2930 (commit commit)))
2931 (file-name (git-file-name name commit))
2932 (sha256
2933 (base32
2934 "1l18zqpdzbnqj2qawq8hj7z7pl8hr8z9d8ihy8jaiqma915hmhj1"))))
2935 (build-system emacs-build-system)
2936 (arguments
2937 '(#:include (cons "^snippets\\/minitest-mode\\/" %default-include)
2938 #:exclude (delete "^[^/]*tests?\\.el$" %default-exclude)))
2939 (propagated-inputs
2940 `(("emacs-dash" ,emacs-dash)
2941 ("emacs-f" ,emacs-f)))
2942 (home-page "https://github.com/arthurnn/minitest-emacs")
2943 (synopsis "Emacs minitest mode")
2944 (description
2945 "The minitest mode provides commands to run the tests for the current
2946 file or line, as well as rerunning the previous tests, or all the tests for a
2947 project.
2948
2949 This package also includes relevant snippets for yasnippet.")
2950 (license license:expat))))
2951
2952 (define-public emacs-el-mock
2953 (package
2954 (name "emacs-el-mock")
2955 (version "1.25.1")
2956 (source
2957 (origin
2958 (method git-fetch)
2959 (uri (git-reference
2960 (url "https://github.com/rejeep/el-mock.el.git")
2961 (commit (string-append "v" version))))
2962 (file-name (git-file-name name version))
2963 (sha256
2964 (base32 "13mv1rhgkwiww2wh5w926jz7idppp492wir1vdl245c5x50dh4f7"))))
2965 (build-system emacs-build-system)
2966 (home-page "https://github.com/rejeep/el-mock.el")
2967 (synopsis "Tiny mock and stub framework in Emacs Lisp")
2968 (description
2969 "Emacs Lisp Mock is a library for mocking and stubbing using readable
2970 syntax. Most commonly Emacs Lisp Mock is used in conjunction with Emacs Lisp
2971 Expectations, but it can be used in other contexts.")
2972 (license license:gpl3+)))
2973
2974 (define-public emacs-espuds
2975 (package
2976 (name "emacs-espuds")
2977 (version "0.3.3")
2978 (source
2979 (origin
2980 (method git-fetch)
2981 (uri (git-reference
2982 (url "https://github.com/ecukes/espuds.git")
2983 (commit (string-append "v" version))))
2984 (file-name (git-file-name name version))
2985 (sha256
2986 (base32 "16r4j27j9yfdiy841w9q5ykkc6n3wrm7hvfacagb32mydk821ijg"))))
2987 (build-system emacs-build-system)
2988 (propagated-inputs
2989 `(("emacs-s" ,emacs-s)
2990 ("emacs-dash" ,emacs-dash)
2991 ("emacs-f" ,emacs-f)))
2992 (home-page "https://github.com/ecukes/espuds")
2993 (synopsis "Common step definitions for Ecukes")
2994 (description "Espuds is a collection of the most commonly used step
2995 definitions for testing with the Ecukes framework.")
2996 (license license:gpl3+)))
2997
2998 (define-public emacs-spark
2999 (let ((version "20160503") ; no proper tag, use date of commit
3000 (commit "0bf148c3ede3b31d56fd75f347cdd0b0eae60025")
3001 (revision "1"))
3002 (package
3003 (name "emacs-spark")
3004 (version (git-version version revision commit))
3005 (source
3006 (origin
3007 (method git-fetch)
3008 (uri (git-reference
3009 (url "https://github.com/alvinfrancis/spark.git")
3010 (commit commit)))
3011 (file-name (git-file-name name version))
3012 (sha256
3013 (base32
3014 "1ykqr86j17mi95s08d9fp02d7ych1331b04dcqxzxnmpkhwngyj1"))))
3015 (build-system emacs-build-system)
3016 (home-page "https://github.com/alvinfrancis/spark")
3017 (synopsis "Sparkline generation library for Emacs Lisp")
3018 (description "@code{emacs-spark} is a sparkline generation library for
3019 Emacs Lisp. It generates a sparkline string given a list of numbers. It is a
3020 port of @code{cl-spark} to Emacs Lisp.")
3021 (license license:expat))))
3022
3023 (define-public emacs-es-mode
3024 (package
3025 (name "emacs-es-mode")
3026 (version "4.3.0")
3027 (source
3028 (origin
3029 (method git-fetch)
3030 (uri (git-reference
3031 (url "https://github.com/dakrone/es-mode.git")
3032 (commit version)))
3033 (file-name (git-file-name name version))
3034 (sha256
3035 (base32 "1qhfnd5anp5qrmravv7ks5ix763xnki2f5jwcyj70qyxwr0l60cg"))))
3036 (build-system emacs-build-system)
3037 (propagated-inputs
3038 ;; The version of org in Emacs 24.5 is not sufficient, and causes tables
3039 ;; to be rendered incorrectly
3040 `(("emacs-dash" ,emacs-dash)
3041 ("emacs-org" ,emacs-org)
3042 ("emacs-spark" ,emacs-spark)))
3043 (home-page "https://github.com/dakrone/es-mode")
3044 (synopsis "Major mode for editing Elasticsearch queries")
3045 (description "@code{es-mode} includes highlighting, completion and
3046 indentation support for Elasticsearch queries. Also supported are
3047 @code{es-mode} blocks in @code{org-mode}, for which the results of queries can
3048 be processed through @code{jq}, or in the case of aggregations, can be
3049 rendered in to a table. In addition, there is an @code{es-command-center}
3050 mode, which displays information about Elasticsearch clusters.")
3051 (license license:gpl3+)))
3052
3053 (define-public emacs-expand-region
3054 (package
3055 (name "emacs-expand-region")
3056 (version "0.11.0")
3057 (source
3058 (origin
3059 (method git-fetch)
3060 (uri (git-reference
3061 (url "https://github.com/magnars/expand-region.el.git")
3062 (commit version)))
3063 (file-name (git-file-name name version))
3064 (sha256
3065 (base32 "0h40dhc3kn8fq86xnwi5lz7ql8my8737y7wkqr897p15y90swr35"))))
3066 (build-system emacs-build-system)
3067 (home-page "https://github.com/magnars/expand-region.el")
3068 (synopsis "Increase selected region by semantic units")
3069 (description
3070 "Expand region increases the selected region by semantic units. Just
3071 keep pressing the key until it selects what you want. There's also
3072 @code{er/contract-region} if you expand too far.")
3073 (license license:gpl3+)))
3074
3075 (define-public emacs-fill-column-indicator
3076 (package
3077 (name "emacs-fill-column-indicator")
3078 (version "1.90")
3079 (source
3080 (origin
3081 (method git-fetch)
3082 (uri (git-reference
3083 (url "https://github.com/alpaker/Fill-Column-Indicator.git")
3084 (commit version)))
3085 (file-name (git-file-name name version))
3086 (sha256
3087 (base32 "0snjznxdwwfdgccdcvrnk467416r244r2r5qcm2sga8l0ha9gw9z"))))
3088 (build-system emacs-build-system)
3089 (home-page "https://www.emacswiki.org/emacs/FillColumnIndicator")
3090 (synopsis "Graphically indicate the fill column")
3091 (description
3092 "Fill-column-indicator graphically indicates the location of the fill
3093 column by drawing a thin line down the length of the editing window.")
3094 (license license:gpl3+)))
3095
3096 (define-public emacs-grep-a-lot
3097 (package
3098 (name "emacs-grep-a-lot")
3099 (version "1.0.7")
3100 (source
3101 (origin
3102 (method git-fetch)
3103 (uri (git-reference
3104 (url "https://github.com/ZungBang/emacs-grep-a-lot.git")
3105 (commit "9f9f645b9e308a0d887b66864ff97d0fca1ba4ad")))
3106 (file-name (git-file-name name version))
3107 (sha256
3108 (base32 "1f8262mrlinzgnn4m49hbj1hm3c1mvzza24py4b37sasn49546lw"))))
3109 (build-system emacs-build-system)
3110 (home-page "https://github.com/ZungBang/emacs-grep-a-lot")
3111 (synopsis "Enables multiple grep buffers in Emacs")
3112 (description
3113 "This Emacs package allows managing multiple grep buffers.")
3114 (license license:gpl3+)))
3115
3116 (define-public emacs-rg
3117 (package
3118 (name "emacs-rg")
3119 (version "1.8.1")
3120 (source
3121 (origin
3122 (method git-fetch)
3123 (uri (git-reference
3124 (url "https://github.com/dajva/rg.el.git")
3125 (commit version)))
3126 (file-name (git-file-name name version))
3127 (sha256
3128 (base32 "0k7x5z7mh9flwih35cqy8chs54rack3nswdcpw5wcpgv6xim227y"))))
3129 (build-system emacs-build-system)
3130 (arguments
3131 '(#:phases
3132 (modify-phases %standard-phases
3133 (add-after 'unpack 'hardcode-rg-path
3134 ;; Hardcode the path to ripgrep.
3135 (lambda _
3136 (let ((file "rg.el"))
3137 (chmod file #o644)
3138 (emacs-substitute-sexps file
3139 ("(defcustom rg-executable" (which "rg")))))))))
3140 (propagated-inputs
3141 `(("emacs-s" ,emacs-s)
3142 ("emacs-wgrep" ,emacs-wgrep)))
3143 (inputs
3144 `(("ripgrep" ,ripgrep)))
3145 (home-page "https://rgel.readthedocs.io/en/latest/")
3146 (synopsis "Search tool based on @code{ripgrep}")
3147 (description
3148 "@code{rg} is an Emacs search package based on the @code{ripgrep} command
3149 line tool. It allows one to interactively search based on the editing context
3150 then refine or modify the search results.")
3151 (license license:gpl3+)))
3152
3153 (define-public emacs-inf-ruby
3154 (package
3155 (name "emacs-inf-ruby")
3156 (version "2.5.2")
3157 (source
3158 (origin
3159 (method git-fetch)
3160 (uri (git-reference
3161 (url "https://github.com/nonsequitur/inf-ruby.git")
3162 (commit version)))
3163 (file-name (git-file-name name version))
3164 (sha256
3165 (base32 "0a1hhvfbl6mq8rjsi77fg9fh5a91hi5scjrg9rjqc5ffbql67y0v"))))
3166 (build-system emacs-build-system)
3167 (home-page "https://github.com/nonsequitur/inf-ruby")
3168 (synopsis "Provides a REPL buffer connected to a Ruby subprocess in Emacs")
3169 (description
3170 "@code{inf-ruby} provides a Read Eval Print Loop (REPL) buffer, allowing
3171 for easy interaction with a ruby subprocess. Features include support for
3172 detecting specific uses of Ruby, e.g. when using rails, and using a
3173 appropriate console.")
3174 (license license:gpl3+)))
3175
3176 (define-public emacs-znc
3177 (package
3178 (name "emacs-znc")
3179 (version "0.0.2")
3180 (source
3181 (origin
3182 (method url-fetch)
3183 (uri (string-append "https://marmalade-repo.org/packages/znc-"
3184 version ".el"))
3185 (sha256
3186 (base32
3187 "1d8lqvybgyazin5z0g1c4l3rg1vzrrvf0saqs53jr1zcdg0lianh"))))
3188 (build-system emacs-build-system)
3189 (home-page "https://github.com/sshirokov/ZNC.el")
3190 (synopsis "Make ERC and ZNC get along better")
3191 (description
3192 "This is a thin wrapper around @code{erc} that enables one to use the ZNC
3193 IRC bouncer with ERC.")
3194 (license license:expat)))
3195
3196 (define-public emacs-shut-up
3197 (package
3198 (name "emacs-shut-up")
3199 (version "0.3.2")
3200 (source
3201 (origin
3202 (method git-fetch)
3203 (uri (git-reference
3204 (url "https://github.com/cask/shut-up.git")
3205 (commit (string-append "v" version))))
3206 (file-name (git-file-name name version))
3207 (sha256
3208 (base32 "103yvfgkj78i4bnv1fwk76izsa8h4wyj3vwj1vq7xggj607hkxzq"))))
3209 (build-system emacs-build-system)
3210 (home-page "https://github.com/cask/shut-up")
3211 (synopsis "Silence Emacs")
3212 (description "This package silences most output of Emacs when running an
3213 Emacs shell script.")
3214 (license license:expat)))
3215
3216 (define-public emacs-undercover
3217 (package
3218 (name "emacs-undercover")
3219 (version "0.6.1")
3220 (source
3221 (origin
3222 (method git-fetch)
3223 (uri (git-reference
3224 (url "https://github.com/sviridov/undercover.el.git")
3225 (commit version)))
3226 (file-name (git-file-name name version))
3227 (sha256
3228 (base32 "080bmfwyfi8663y8x594770hqz7mff7zvj2v03qdfwbhdr9w9y29"))))
3229 (build-system emacs-build-system)
3230 (propagated-inputs
3231 `(("emacs-dash" ,emacs-dash)
3232 ("emacs-shut-up" ,emacs-shut-up)))
3233 (home-page "https://github.com/sviridov/undercover.el")
3234 (synopsis "Test coverage library for Emacs Lisp")
3235 (description
3236 "Undercover is a test coverage library for software written in Emacs
3237 Lisp.")
3238 (license license:expat)))
3239
3240 (define-public emacs-paren-face
3241 (package
3242 (name "emacs-paren-face")
3243 (version "1.0.5")
3244 (source
3245 (origin
3246 (method git-fetch)
3247 (uri (git-reference
3248 (url "https://github.com/tarsius/paren-face.git")
3249 (commit version)))
3250 (file-name (git-file-name name version))
3251 (sha256
3252 (base32
3253 "04vkg8fhdn8x02dydxbwpizh2yn3sbmn9432v770vbbq6b62k2lx"))))
3254 (build-system emacs-build-system)
3255 (home-page "https://github.com/tarsius/paren-face")
3256 (synopsis "Face for parentheses in lisp modes")
3257 (description
3258 "This library defines a face named @code{parenthesis} used just for
3259 parentheses. The intended purpose of this face is to make parentheses less
3260 visible in Lisp code by dimming them. Lispers probably don't need to be
3261 constantly made aware of the existence of the parentheses. Dimming them might
3262 be even more useful for people new to lisp who have not yet learned to
3263 subconsciously blend out the parentheses.")
3264 (license license:gpl3+)))
3265
3266 (define-public emacs-page-break-lines
3267 (package
3268 (name "emacs-page-break-lines")
3269 (version "0.11")
3270 (source
3271 (origin
3272 (method git-fetch)
3273 (uri (git-reference
3274 (url "https://github.com/purcell/page-break-lines.git")
3275 (commit version)))
3276 (file-name (git-file-name name version))
3277 (sha256
3278 (base32 "1wp974716ih2cz9kdmdz7xwjy1qnnfzdzlfr9kchknagw8d9nn12"))))
3279 (build-system emacs-build-system)
3280 (home-page "https://github.com/purcell/page-break-lines")
3281 (synopsis "Display page breaks as tidy horizontal lines")
3282 (description
3283 "This library provides a global mode which displays form feed characters
3284 as horizontal rules.")
3285 (license license:gpl3+)))
3286
3287 (define-public emacs-simple-httpd
3288 (package
3289 (name "emacs-simple-httpd")
3290 (version "1.5.1")
3291 (source
3292 (origin
3293 (method git-fetch)
3294 (uri (git-reference
3295 (url "https://github.com/skeeto/emacs-web-server.git")
3296 (commit version)))
3297 (file-name (git-file-name name version))
3298 (sha256
3299 (base32 "0dpn92rg813c4pq7a1vzj3znyxzp2lmvxqz6pzcqi0l2xn5r3wvb"))))
3300 (build-system emacs-build-system)
3301 (home-page "https://github.com/skeeto/emacs-web-server")
3302 (synopsis "HTTP server in pure Emacs Lisp")
3303 (description
3304 "This package provides a simple HTTP server written in Emacs Lisp to
3305 serve files and directory listings.")
3306 (license license:unlicense)))
3307
3308 (define-public emacs-skewer-mode
3309 (package
3310 (name "emacs-skewer-mode")
3311 (version "1.8.0")
3312 (source
3313 (origin
3314 (method git-fetch)
3315 (uri (git-reference
3316 (url "https://github.com/skeeto/skewer-mode.git")
3317 (commit version)))
3318 (file-name (git-file-name name version))
3319 (sha256
3320 (base32 "1ha7jl7776pk1bki5zj2q0jy66450mn8xr3aqjc0m9kj3gc9qxgw"))))
3321 (build-system emacs-build-system)
3322 (propagated-inputs
3323 `(("emacs-simple-httpd" ,emacs-simple-httpd)
3324 ("emacs-js2-mode" ,emacs-js2-mode)))
3325 (arguments '(#:include '("\\.el$" "\\.js$" "\\.html$")))
3326 (home-page "https://github.com/skeeto/skewer-mode")
3327 (synopsis "Live web development in Emacs")
3328 (description
3329 "Skewer-mode provides live interaction with JavaScript, CSS, and HTML in
3330 a web browser. Expressions are sent on-the-fly from an editing buffer to be
3331 evaluated in the browser, just like Emacs does with an inferior Lisp process
3332 in Lisp modes.")
3333 (license license:unlicense)))
3334
3335 (define-public emacs-litable
3336 (let ((commit "b0278f3f8dcff424bfbdfdefb545b1fbff33206f"))
3337 (package
3338 (name "emacs-litable")
3339 (version (git-version "0.1" "0" commit))
3340 (source (origin
3341 (method git-fetch)
3342 (uri (git-reference
3343 (url "https://github.com/Fuco1/litable.git")
3344 (commit commit)))
3345 (file-name (git-file-name name version))
3346 (sha256
3347 (base32
3348 "0bny40hv9a024n01clxns351cs4j4ifhgcc7m4743xncqf612p7g"))))
3349 (build-system emacs-build-system)
3350 (propagated-inputs
3351 `(("emacs-dash" ,emacs-dash)))
3352 (home-page "https://github.com/Fuco1/litable/")
3353 (synopsis "Dynamic evaluation replacement with Emacs")
3354 (description "This package provides dynamic evaluation in Emacs.")
3355 (license license:gpl3+))))
3356
3357 (define-public emacs-string-inflection
3358 (package
3359 (name "emacs-string-inflection")
3360 (version "1.0.6")
3361 (source (origin
3362 (method git-fetch)
3363 (uri (git-reference
3364 (url "https://github.com/akicho8/string-inflection")
3365 (commit "a150e7bdda60b7824d3a936750ce23f73b0e4edd")))
3366 (file-name (git-file-name name version))
3367 (sha256
3368 (base32
3369 "1k0sm552iawi49v4zis6dbb81d1rzgky9v0dpv7nj31gnb7bmy7k"))))
3370 (build-system emacs-build-system)
3371 (native-inputs
3372 `(("ert-runner" ,emacs-ert-runner)))
3373 (arguments
3374 `(#:tests? #t
3375 #:test-command '("ert-runner")))
3376 (home-page "https://github.com/akicho8/string-inflection")
3377 (synopsis "Convert symbol names between different naming conventions")
3378 (description
3379 "This Emacs package provides convenient methods for manipulating the
3380 naming style of a symbol. It supports different naming conventions such as:
3381
3382 @enumerate
3383 @item camel case
3384 @item Pascal case
3385 @item all upper case
3386 @item lower case separated by underscore
3387 @item etc...
3388 @end enumerate\n")
3389 (license license:gpl2+)))
3390
3391 (define-public emacs-stripe-buffer
3392 (package
3393 (name "emacs-stripe-buffer")
3394 (version "0.2.5")
3395 (source
3396 (origin
3397 (method git-fetch)
3398 (uri (git-reference
3399 (url "https://github.com/sabof/stripe-buffer.git")
3400 (commit version)))
3401 (file-name (git-file-name name version))
3402 (sha256
3403 (base32 "035ym1c1vzg6hjsnd258z4dkrfc11lj4c0y4gpgybhk54dq3w9dk"))))
3404 (build-system emacs-build-system)
3405 (home-page "https://github.com/sabof/stripe-buffer/")
3406 (synopsis "Add stripes to list buffers")
3407 (description
3408 "This Emacs package adds faces to add stripes to list buffers and org
3409 tables.")
3410 (license license:gpl2+)))
3411
3412 (define-public emacs-org-rich-yank
3413 (package
3414 (name "emacs-org-rich-yank")
3415 (version "0.2.1")
3416 (source
3417 (origin
3418 (method git-fetch)
3419 (uri (git-reference
3420 (url "https://github.com/unhammer/org-rich-yank.git")
3421 (commit (string-append "v" version))))
3422 (file-name (git-file-name name version))
3423 (sha256
3424 (base32 "0gxb0fnh5gxjmld0hnk5hli0cvdd8gjd27m30bk2b80kwldxlq1z"))))
3425 (build-system emacs-build-system)
3426 (home-page "https://github.com/unhammer/org-rich-yank")
3427 (synopsis "Automatically surround source code pasted into Org with
3428 @code{#+BEGIN_SRC} blocks")
3429 (description
3430 "This package provides a utility function for Org buffers that makes a
3431 @code{_SRC} block with the appropriate language annotation for code that has
3432 been copied from an Emacs major mode.")
3433 (license license:gpl2+)))
3434
3435 (define-public emacs-ob-restclient
3436 (let ((commit "53376667eeddb1388fd6c6976f3222e7c8adcd46"))
3437 (package
3438 (name "emacs-ob-restclient")
3439 (version (git-version "0.02" "1" commit))
3440 (source
3441 (origin
3442 (method git-fetch)
3443 (uri (git-reference
3444 (url "https://github.com/alf/ob-restclient.el.git")
3445 (commit commit)))
3446 (file-name (git-file-name name version))
3447 (sha256
3448 (base32 "1djg53cp7y83gic2v71y6r5z76kwrbkp0r69hl25rs99dx6p89dy"))))
3449 (propagated-inputs
3450 `(("emacs-restclient" ,emacs-restclient)))
3451 (build-system emacs-build-system)
3452 (home-page "https://github.com/alf/ob-restclient.el")
3453 (synopsis "Org-babel functionality for @code{restclient-mode}")
3454 (description
3455 "This package integrates @code{restclient-mode} with Org.")
3456 (license license:gpl3+))))
3457
3458 (define-public emacs-org-now
3459 (let ((commit "8f6b277a73f1c66e58ccb4b7f40d406851befc91"))
3460 (package
3461 (name "emacs-org-now")
3462 (version (git-version "0.1-pre" "1" commit))
3463 (source
3464 (origin
3465 (method git-fetch)
3466 (uri (git-reference
3467 (url "https://github.com/alphapapa/org-now.git")
3468 (commit commit)))
3469 (file-name (git-file-name name version))
3470 (sha256
3471 (base32 "117zzkryznznk6h4i1jqzdn888nl019xrgxm2gza0lndx8dxsg2c"))))
3472 (propagated-inputs
3473 `(("emacs-dash" ,emacs-dash)))
3474 (build-system emacs-build-system)
3475 (home-page "https://github.com/alphapapa/org-now")
3476 (synopsis "Show current Org tasks in a sidebar")
3477 (description
3478 "This package provides commands to show Org headings in a sidebar
3479 window while working on them. After defining one heading as the \"now\"
3480 heading, other headings can be refiled to it with one command, and back to
3481 their original location with another.")
3482 (license license:gpl3+))))
3483
3484 (define-public emacs-rich-minority
3485 (package
3486 (name "emacs-rich-minority")
3487 (version "1.0.3")
3488 (source
3489 (origin
3490 (method git-fetch)
3491 (uri (git-reference
3492 (url "https://github.com/Malabarba/rich-minority.git")
3493 (commit version)))
3494 (file-name (git-file-name name version))
3495 (sha256
3496 (base32
3497 "1kn7c9qr9ykj68iqffzzmjsr6aazwac8cxb7j960sjb282rq0yyj"))))
3498 (build-system emacs-build-system)
3499 (home-page "https://github.com/Malabarba/rich-minority")
3500 (synopsis "Clean-up and beautify the list of minor modes")
3501 (description
3502 "This Emacs package hides and/or highlights minor modes in the
3503 mode-line.")
3504 (license license:gpl2+)))
3505
3506 (define-public emacs-robe
3507 (package
3508 (name "emacs-robe")
3509 (version "0.8.2")
3510 (source
3511 (origin
3512 (method git-fetch)
3513 (uri (git-reference
3514 (url "https://github.com/dgutov/robe.git")
3515 (commit version)))
3516 (file-name (git-file-name name version))
3517 (sha256
3518 (base32 "0qw18wi54yg971n4wnjqkd8lqj5lbs9ra8bvmngif2bzhqlfdsbn"))))
3519 (build-system emacs-build-system)
3520 (arguments
3521 '(#:include (cons "^lib\\/" %default-include)))
3522 (propagated-inputs
3523 `(("emacs-inf-ruby" ,emacs-inf-ruby)))
3524 (home-page "https://github.com/dgutov/robe")
3525 (synopsis "Ruby code assistance tool for Emacs")
3526 (description
3527 "Robe can provide information on loaded classes and modules in Ruby code,
3528 as well as where methods are defined. This allows the user to jump to method
3529 definitions, modules and classes, display method documentation and provide
3530 method and constant name completion.")
3531 (license license:gpl3+)))
3532
3533 (define-public emacs-robot-mode
3534 (let ((commit "32846e7e80ae3471b7c07f9709dcaa4f9b9ed4a0")
3535 (revision "1"))
3536 (package
3537 (name "emacs-robot-mode")
3538 (version (git-version "0.0.0" revision commit))
3539 (source (origin
3540 (method git-fetch)
3541 (uri (git-reference
3542 ;; A better maintained fork of robot-mode.
3543 (url "https://github.com/jvalkeejarvi/robot-mode.git")
3544 (commit commit)))
3545 (file-name (git-file-name name version))
3546 (sha256
3547 (base32
3548 "1i8wf7m0gml8zvvmlgppjzv78b432686p1qdbzgclc7qfcvzag0d"))))
3549 (build-system emacs-build-system)
3550 (propagated-inputs `(("emacs-s" ,emacs-s)))
3551 (home-page "https://github.com/jvalkeejarvi/robot-mode")
3552 (synopsis "Emacs mode for Robot Framework")
3553 (description "This major mode facilitates editing Robot Framework source
3554 files with features such as syntax highlighting, comments, finding keywords,
3555 completing keywords and smart indentation.")
3556 (license license:gpl3+))))
3557
3558 (define-public emacs-rspec
3559 (let ((commit "66ea7cc9699d6edc6115daa024818adbd85efc20")
3560 (revision "1"))
3561 (package
3562 (name "emacs-rspec")
3563 (version (git-version "1.11" revision commit))
3564 (source
3565 (origin
3566 (method git-fetch)
3567 (uri (git-reference
3568 (url "https://github.com/pezra/rspec-mode.git")
3569 (commit commit)))
3570 (file-name (git-file-name name version))
3571 (sha256
3572 (base32 "0b11s8r0pi7ah54km4yg4fqff8wkk409d25qnlwm1l94pdwjd1c8"))))
3573 (build-system emacs-build-system)
3574 (arguments
3575 `(#:include (cons "^snippets\\/rspec-mode\\/" %default-include)
3576 #:tests? #t
3577 #:test-command '("make" "test")))
3578 (home-page "https://github.com/pezra/rspec-mode")
3579 (synopsis "Provides a rspec mode for working with RSpec")
3580 (description
3581 "The Emacs RSpec mode provides keybindings for Ruby source files, e.g. to
3582 verify the spec associated with the current buffer, or entire project, as well
3583 as moving between the spec files, and corresponding code files.
3584
3585 Also included are keybindings for spec files and Dired buffers, as well as
3586 snippets for yasnippet.")
3587 (license license:gpl3+))))
3588
3589 (define-public emacs-smart-mode-line
3590 (package
3591 (name "emacs-smart-mode-line")
3592 (version "2.13")
3593 (source
3594 (origin
3595 (method git-fetch)
3596 (uri (git-reference
3597 (url "https://github.com/Malabarba/smart-mode-line.git")
3598 (commit version)))
3599 (file-name (git-file-name name version))
3600 (sha256
3601 (base32 "164b697xm1rwcggv37dymhf3npbyh2bs59z8b6m5x35lb4c3lf8b"))))
3602 (build-system emacs-build-system)
3603 (propagated-inputs
3604 `(("emacs-rich-minority" ,emacs-rich-minority)))
3605 (home-page "https://github.com/Malabarba/smart-mode-line")
3606 (synopsis "Color-coded smart mode-line")
3607 (description
3608 "Smart Mode Line is a mode-line theme for Emacs. It aims to be easy to
3609 read from small to large monitors by using colors, a prefix feature, and smart
3610 truncation.")
3611 (license license:gpl2+)))
3612
3613 (define-public emacs-sr-speedbar
3614 (let ((commit "77a83fb50f763a465c021eca7343243f465b4a47")
3615 (revision "0"))
3616 (package
3617 (name "emacs-sr-speedbar")
3618 (version (git-version "20161025" revision commit))
3619 (source
3620 (origin
3621 (method git-fetch)
3622 (uri (git-reference
3623 (url "https://github.com/emacsorphanage/sr-speedbar.git")
3624 (commit commit)))
3625 (file-name (git-file-name name version))
3626 (sha256
3627 (base32
3628 "0sd12555hk7z721y00kv3crdybvcn1i08wmd148z5imayzibj153"))))
3629 (build-system emacs-build-system)
3630 (home-page "https://www.emacswiki.org/emacs/SrSpeedbar")
3631 (synopsis "Same frame Emacs @code{speedbar}")
3632 (description
3633 "This Emacs package allows you to show @code{M-x speedbar} in the
3634 same frame (in an extra window). You can customize the initial width of
3635 the speedbar window.")
3636 (license license:gpl3+))))
3637
3638 (define-public emacs-shell-switcher
3639 (package
3640 (name "emacs-shell-switcher")
3641 (version "1.0.1")
3642 (source
3643 (origin
3644 (method git-fetch)
3645 (uri (git-reference
3646 (url "https://github.com/DamienCassou/shell-switcher.git")
3647 (commit (string-append "v" version))))
3648 (file-name (git-file-name name version))
3649 (sha256
3650 (base32 "0ia7sdip4hl27avckv3qpqgm3k4ynvp3xxq1cy53bqfzzx0gcria"))))
3651 (build-system emacs-build-system)
3652 (home-page "https://github.com/DamienCassou/shell-switcher")
3653 (synopsis "Provide fast switching between shell buffers")
3654 (description
3655 "This package provides commands to quickly switch between shell buffers.")
3656 (license license:gpl3+)))
3657
3658 (define-public emacs-names
3659 (let ((commit "d8baba5360e5253938a25d3e005455b6d2d86971")
3660 (version "20151201.0")
3661 (revision "8"))
3662 (package
3663 (name "emacs-names")
3664 (version (git-version version revision commit))
3665 (source
3666 (origin
3667 (method git-fetch)
3668 (uri (git-reference
3669 (url "https://github.com/Malabarba/names")
3670 (commit commit)))
3671 (file-name (git-file-name name version))
3672 (sha256
3673 (base32
3674 "11wyha2q8y7bzqq3jrzix8n97ywvsibvddrahqcps1a1yqk4hzfz"))))
3675 (build-system emacs-build-system)
3676 (home-page "https://github.com/Malabarba/names/")
3677 (synopsis "Namespace implementation for Emacs Lisp")
3678 (description
3679 "This package provides a macro that writes your namespaces for you.")
3680 (license license:gpl3+))))
3681
3682 (define-public emacs-evil-leader
3683 (package
3684 (name "emacs-evil-leader")
3685 (version "0.4.3")
3686 (source
3687 (origin
3688 (method git-fetch)
3689 (uri
3690 (git-reference
3691 (url "https://github.com/cofi/evil-leader")
3692 (commit version)))
3693 (file-name (git-file-name name version))
3694 (sha256
3695 (base32 "1k2zinchs0jjllp8zkpggckyy63dkyi5yig3p46vh4w45jdzysk5"))))
3696 (inputs
3697 `(("emacs-evil" ,emacs-evil)))
3698 (build-system emacs-build-system)
3699 (home-page "https://github.com/cofi/evil-leader")
3700 (synopsis "Implement <leader> feature from Vim")
3701 (description
3702 "Evil Leader provides the @code{<leader>} feature from Vim that provides
3703 an easy way to bind keys under a configurable prefix key.")
3704 (license license:gpl3+)))
3705
3706 (define-public emacs-evil-textobj-syntax
3707 (let ((commit "2d9ba8c75c754b409aea7469f46a5cfa52a872f3")
3708 (version "0")
3709 (revision "1"))
3710 (package
3711 (name "emacs-evil-textobj-syntax")
3712 (version (git-version version revision commit))
3713 (source
3714 (origin
3715 (method git-fetch)
3716 (uri (git-reference
3717 (url "https://github.com/laishulu/evil-textobj-syntax/")
3718 (commit commit)))
3719 (file-name (git-file-name name version))
3720 (sha256
3721 (base32
3722 "031p5i3274dazp7rz6m5y38shfgszm1clmkcf58qfqlvy978ammc"))))
3723 (build-system emacs-build-system)
3724 (propagated-inputs `(("emacs-evil" ,emacs-evil)
3725 ("emacs-names" ,emacs-names)))
3726 (home-page "https://github.com/laishulu/evil-textobj-syntax/")
3727 (synopsis "Text objects based on syntax highlighting")
3728 (description
3729 "This package provides text objects for @code{evil-mode} with
3730 boundaries defined by syntax highlighting.")
3731 (license license:gpl3+))))
3732
3733 (define-public emacs-flycheck-flow
3734 (let ((commit "9e8e52cfc98af6a23fd906f9cb5d5d470d8cf82d")
3735 (version "1.1")
3736 (revision "1"))
3737 (package
3738 (name "emacs-flycheck-flow")
3739 (version (git-version version revision commit))
3740 (source
3741 (origin
3742 (method git-fetch)
3743 (uri (git-reference
3744 (url "https://github.com/lbolla/emacs-flycheck-flow")
3745 (commit commit)))
3746 (file-name (git-file-name name version))
3747 (sha256
3748 (base32
3749 "14qldlisbmxzammr500gyha2hiv2xgyzfc6mysqii06kbcqn1ik1"))))
3750 (build-system emacs-build-system)
3751 (propagated-inputs
3752 `(("emacs-flycheck" ,emacs-flycheck)))
3753 (home-page "https://github.com/lbolla/emacs-flycheck-flow")
3754 (synopsis "Flow support for @code{flycheck-mode}")
3755 (description
3756 "This package allows @code{flycheck-mode} to provide syntax-checking
3757 for Flow files.")
3758 (license license:gpl3+))))
3759
3760 (define-public emacs-flycheck-grammalecte
3761 (package
3762 (name "emacs-flycheck-grammalecte")
3763 (version "1.2")
3764 (source
3765 (origin
3766 (method url-fetch)
3767 (uri (string-append "https://git.deparis.io/"
3768 "flycheck-grammalecte/snapshot/"
3769 "flycheck-grammalecte-" version ".tar.xz"))
3770 (sha256
3771 (base32 "1mzmzyik843r4j0ibpwqrxmb0g4xmirrf3lxr010bddkmmxf749a"))))
3772 (build-system emacs-build-system)
3773 (arguments
3774 `(#:include '("\\.(el|py)$")
3775 #:exclude '("^test-profile.el$")
3776 #:emacs ,emacs ;need libxml support
3777 #:phases
3778 (modify-phases %standard-phases
3779 (add-after 'unpack 'fix-python-executable
3780 ;; Hardcode python3 executable in the Emacs library.
3781 (lambda* (#:key inputs #:allow-other-keys)
3782 (let ((python3 (string-append (assoc-ref inputs "python")
3783 "/bin/python3")))
3784 (substitute* "flycheck-grammalecte.el"
3785 (("\"python3") (string-append "\"" python3)))
3786 #t)))
3787 (add-before 'build 'link-to-grammalecte
3788 ;; XXX: The Python part of the package requires grammalecte, but
3789 ;; the library is not specified in PYTHONPATH, since we're not
3790 ;; using Python build system. As a workaround, we symlink
3791 ;; grammalecte libraries here.
3792 (lambda* (#:key inputs outputs #:allow-other-keys)
3793 (let* ((out (assoc-ref outputs "out"))
3794 (grammalecte (assoc-ref inputs "grammalecte"))
3795 (version ,(version-major+minor (package-version python))))
3796 (with-directory-excursion
3797 (string-append out "/share/emacs/site-lisp")
3798 (symlink (string-append grammalecte "/lib/"
3799 "python" version "/site-packages/"
3800 "grammalecte")
3801 "grammalecte"))
3802 #t))))))
3803 (inputs
3804 `(("grammalecte" ,grammalecte)
3805 ("python" ,python)))
3806 (propagated-inputs
3807 `(("emacs-flycheck" ,emacs-flycheck)))
3808 (home-page "https://git.deparis.io/flycheck-grammalecte/")
3809 (synopsis "Integrate Grammalecte with Flycheck")
3810 (description
3811 "Integrate the French grammar and typography checker Grammalecte with
3812 Flycheck to automatically look for mistakes in your writings. It also
3813 provides an easy way to find synonyms and antonyms for a given word (to avoid
3814 repetitions for example).")
3815 (license license:gpl3+)))
3816
3817 (define-public emacs-flycheck-rust
3818 (package
3819 (name "emacs-flycheck-rust")
3820 (version "1.1")
3821 (source
3822 (origin
3823 (method git-fetch)
3824 (uri
3825 (git-reference
3826 (url "https://github.com/flycheck/flycheck-rust")
3827 (commit version)))
3828 (file-name (git-file-name name version))
3829 (sha256
3830 (base32 "1fh6j5w2387nh2fwwjphkhq17cgj5m2q5k0fhidvgc2w65lzbr1r"))))
3831 (propagated-inputs
3832 `(("emacs-dash" ,emacs-dash)
3833 ("emacs-flycheck" ,emacs-flycheck)
3834 ("emacs-let-alist" ,emacs-let-alist)))
3835 (build-system emacs-build-system)
3836 (home-page "https://github.com/flycheck/flycheck-rust")
3837 (synopsis "Rust/Cargo support for Flycheck")
3838 (description
3839 "This Flycheck extension configures Flycheck automatically for
3840 the current Cargo project.")
3841 (license license:gpl3+)))
3842
3843 (define-public emacs-elisp-demos
3844 (package
3845 (name "emacs-elisp-demos")
3846 (version "2020.02.19")
3847 (source
3848 (origin
3849 (method git-fetch)
3850 (uri (git-reference
3851 (url "https://github.com/xuchunyang/elisp-demos")
3852 (commit version)))
3853 (file-name (git-file-name name version))
3854 (sha256
3855 (base32
3856 "0mckgaz92v3y2vlkggx9kd51fd1mahylw39c42l51dyv8wscm7sc"))))
3857 (build-system emacs-build-system)
3858 (arguments
3859 `(#:include '("\\.el$" "\\.org$")
3860 #:tests? #t
3861 #:test-command '("make" "test")))
3862 (home-page "https://github.com/xuchunyang/elisp-demos/")
3863 (synopsis "Enhance @code{*Help*} buffers with additional examples")
3864 (description
3865 "This package injects example uses of Elisp functions into their
3866 respective @code{*Help*} buffers.")
3867 (license license:gpl3+)))
3868
3869 (define-public emacs-docker-compose-mode
3870 (package
3871 (name "emacs-docker-compose-mode")
3872 (version "1.1.0")
3873 (source
3874 (origin
3875 (method git-fetch)
3876 (uri (git-reference
3877 (url "https://github.com/meqif/docker-compose-mode")
3878 (commit version)))
3879 (file-name (git-file-name name version))
3880 (sha256
3881 (base32
3882 "1fbcxwfvm33xcdj3cs26d9i1zyrryyjjkv7sc3mfxd45nq8d3ivj"))))
3883 (build-system emacs-build-system)
3884 (propagated-inputs
3885 `(("emacs-dash" ,emacs-dash)
3886 ("emacs-f" ,emacs-f)))
3887 (home-page "https://github.com/meqif/docker-compose-mode/")
3888 (synopsis "Major mode for editing @file{docker-compose} files")
3889 (description
3890 "This is a major mode for @file{docker-compose} files that provides
3891 completion of relevant keywords.")
3892 (license license:expat)))
3893
3894 (define-public emacs-sudo-edit
3895 (let ((commit "cc3d478937b1accd38742bfceba92af02ee9357d")
3896 (revision "6"))
3897 (package
3898 (name "emacs-sudo-edit")
3899 (version (git-version "0.1.0" revision commit))
3900 (source
3901 (origin
3902 (method git-fetch)
3903 (uri (git-reference
3904 (url "https://github.com/nflath/sudo-edit")
3905 (commit commit)))
3906 (file-name (git-file-name name version))
3907 (sha256
3908 (base32
3909 "1qv58x5j5a3v1s2ylhck1ykbfclq0mbi0gsvaql3nyv8cxazqlwl"))))
3910 (build-system emacs-build-system)
3911 (native-inputs
3912 `(("emacs-undercover" ,emacs-undercover)))
3913 (arguments
3914 `(#:phases
3915 (modify-phases %standard-phases
3916 (add-before 'check 'fix-makefile
3917 (lambda _
3918 (substitute* "Makefile"
3919 (("\\$\\(CASK\\) exec ") ""))
3920 #t)))
3921 #:tests? #t
3922 #:test-command '("make" "test")))
3923 (home-page "https://github.com/nflath/sudo-edit/")
3924 (synopsis "Open files as another user")
3925 (description
3926 "This package allows editing files as another user, including the root
3927 user.")
3928 (license license:gpl3+))))
3929
3930 (define-public emacs-miniedit
3931 (package
3932 (name "emacs-miniedit")
3933 (version "2.0")
3934 (source
3935 (origin
3936 (method git-fetch)
3937 (uri (git-reference
3938 (url "https://github.com/emacsmirror/miniedit")
3939 (commit version)))
3940 (file-name (git-file-name name version))
3941 (sha256
3942 (base32
3943 "1850z96gly0jnr50472idqz1drzqarr0n23bbasslrc501xkg0bq"))))
3944 (build-system emacs-build-system)
3945 (home-page "https://github.com/emacsmirror/miniedit/")
3946 (synopsis "Enhanced editing for minibuffer fields")
3947 (description
3948 "This package provides a function that can be called from the
3949 minibuffer to enable editing the minibuffer input in another buffer with
3950 @code{text-mode} enabled.")
3951 (license license:gpl2+)))
3952
3953 (define-public emacs-ob-ipython
3954 (package
3955 (name "emacs-ob-ipython")
3956 (version "20180224")
3957 (source (origin
3958 (method git-fetch)
3959 (uri (git-reference
3960 (commit "7147455230841744fb5b95dcbe03320313a77124")
3961 (url "https://github.com/gregsexton/ob-ipython.git")))
3962 (file-name (git-file-name name version))
3963 (sha256
3964 (base32
3965 "1a10fc2jk37ni5sjjvf87s5nyaz2a6h2mlj5dxh4dhv5sd3bb85p"))))
3966 (build-system emacs-build-system)
3967 (propagated-inputs
3968 `(("emacs-f" ,emacs-f)))
3969 (home-page "http://www.gregsexton.org")
3970 (synopsis "Org-Babel functions for IPython evaluation")
3971 (description "This package adds support to Org-Babel for evaluating Python
3972 source code using IPython.")
3973 (license license:gpl3+)))
3974
3975 (define-public emacs-debbugs
3976 (package
3977 (name "emacs-debbugs")
3978 (version "0.22")
3979 (source (origin
3980 (method url-fetch)
3981 (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
3982 version ".tar"))
3983 (sha256
3984 (base32
3985 "05ik9qv539b5c1nzxkk3lk23bqj4vqgmfmd8x367abhb7c9gix2z"))))
3986 (build-system emacs-build-system)
3987 (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
3988 (propagated-inputs
3989 `(("emacs-async" ,emacs-async)))
3990 (home-page "https://elpa.gnu.org/packages/debbugs.html")
3991 (synopsis "Access the Debbugs bug tracker in Emacs")
3992 (description
3993 "This package lets you access the @uref{http://bugs.gnu.org,GNU Bug
3994 Tracker} from within Emacs.
3995
3996 For instance, it defines the command @code{M-x debbugs-gnu} for listing bugs,
3997 and the command @code{M-x debbugs-gnu-search} for bug searching. If you
3998 prefer the listing of bugs as TODO items of @code{org-mode}, you could use
3999 @code{M-x debbugs-org} and related commands.
4000
4001 A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug
4002 Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.")
4003 (license license:gpl3+)))
4004
4005 (define-public emacs-ert-expectations
4006 (package
4007 (name "emacs-ert-expectations")
4008 (version "0.2")
4009 (source
4010 (origin
4011 (method url-fetch)
4012 (uri "https://www.emacswiki.org/emacs/download/ert-expectations.el")
4013 (sha256
4014 (base32
4015 "0cwy3ilsid90abzzjb7ha2blq9kmv3gfp3icwwfcz6qczgirq6g7"))))
4016 (build-system emacs-build-system)
4017 (home-page "https://www.emacswiki.org/emacs/ert-expectations.el")
4018 (synopsis "Simple unit test framework for Emacs Lisp")
4019 (description "@code{emacs-ert-expectations} is a simple unit test
4020 framework for Emacs Lisp to be used with @code{ert}.")
4021 (license license:gpl3+)))
4022
4023 (define-public emacs-deferred
4024 (package
4025 (name "emacs-deferred")
4026 (version "0.5.1")
4027 (home-page "https://github.com/kiwanami/emacs-deferred")
4028 (source (origin
4029 (method git-fetch)
4030 (uri (git-reference
4031 (url home-page)
4032 (commit (string-append "v" version))))
4033 (file-name (git-file-name name version))
4034 (sha256
4035 (base32
4036 "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"))))
4037 (build-system emacs-build-system)
4038 (arguments
4039 `(#:phases
4040 (modify-phases %standard-phases
4041 (add-after 'unpack 'set-shell
4042 ;; Setting the SHELL environment variable is required for the tests
4043 ;; to find sh.
4044 (lambda _
4045 (setenv "SHELL" (which "sh"))
4046 #t))
4047 (add-before 'check 'fix-makefile
4048 (lambda _
4049 (substitute* "Makefile"
4050 (("\\$\\(CASK\\) exec ") ""))
4051 #t)))
4052 #:tests? #t
4053 #:test-command '("make" "test")))
4054 (native-inputs
4055 `(("emacs-ert-expectations" ,emacs-ert-expectations)
4056 ("emacs-undercover" ,emacs-undercover)
4057 ("ert-runner" ,emacs-ert-runner)))
4058 (synopsis "Simple asynchronous functions for Emacs Lisp")
4059 (description
4060 "The @code{deferred.el} library provides support for asynchronous tasks.
4061 The API is almost the same as that of
4062 @uref{https://github.com/cho45/jsdeferred, JSDeferred}, a JavaScript library
4063 for asynchronous tasks.")
4064 (license license:gpl3+)))
4065
4066 (define-public emacs-butler
4067 (package
4068 (name "emacs-butler")
4069 (version "0.2.4")
4070 (home-page "https://github.com/AshtonKem/Butler")
4071 (source (origin
4072 (method git-fetch)
4073 (uri (git-reference
4074 (url home-page)
4075 (commit version)))
4076 (file-name (git-file-name name version))
4077 (sha256
4078 (base32
4079 "1pii9dw4skq7nr4na6qxqasl36av8cwjp71bf1fgppqpcd9z8skj"))))
4080 (build-system emacs-build-system)
4081 (propagated-inputs
4082 `(("emacs-deferred" ,emacs-deferred)))
4083 (synopsis "Emacs client for Jenkins")
4084 (description
4085 "Butler provides an interface to connect to Jenkins continuous
4086 integration servers. Users can specify a list of server in the
4087 @code{butler-server-list} variable and then use @code{M-x butler-status} to
4088 view the build status of those servers' build jobs, and possibly to trigger
4089 build jobs.")
4090 (license license:gpl3+)))
4091
4092 (define-public emacs-company
4093 (package
4094 (name "emacs-company")
4095 (version "0.9.12")
4096 (source
4097 (origin
4098 (method git-fetch)
4099 (uri (git-reference
4100 (url "https://github.com/company-mode/company-mode.git")
4101 (commit version)))
4102 (file-name (git-file-name name version))
4103 (sha256
4104 (base32 "0c31amc6gyfkmb1ii6mm56c75za1yxkj2iyhrjc45nn2mrh7yj7a"))))
4105 (build-system emacs-build-system)
4106 (arguments
4107 `(#:phases
4108 (modify-phases %standard-phases
4109 (add-before 'check 'fix-bin-dir
4110 (lambda _
4111 ;; The company-files-candidates-normal-root test looks
4112 ;; for the /bin directory, but the build environment has
4113 ;; no /bin directory. Modify the test to look for the
4114 ;; /tmp directory.
4115 (substitute* "test/files-tests.el"
4116 (("/bin/") "/tmp/"))
4117 #t)))
4118 #:tests? #t
4119 #:test-command '("make" "test-batch")))
4120 (home-page "https://company-mode.github.io/")
4121 (synopsis "Modular text completion framework")
4122 (description
4123 "Company is a modular completion mechanism. Modules for retrieving
4124 completion candidates are called back-ends, modules for displaying them are
4125 front-ends. Company comes with many back-ends, e.g., @code{company-elisp}.
4126 These are distributed in separate files and can be used individually.")
4127 (license license:gpl3+)))
4128
4129 (define-public emacs-company-posframe
4130 (let ((version "0.1.0")
4131 (revision "1")
4132 (commit "67d899502384fb9ab2870aba0af41523dea7b64f"))
4133 (package
4134 (name "emacs-company-posframe")
4135 (version (git-version version revision commit))
4136 (source (origin
4137 (method git-fetch)
4138 (uri (git-reference
4139 (url "https://github.com/tumashu/company-posframe.git")
4140 (commit commit)))
4141 (file-name (git-file-name name version))
4142 (sha256
4143 (base32
4144 "051smlvz1siwglsd9k9l0m20mygrx4niflmyshha0064287aysxr"))))
4145 (build-system emacs-build-system)
4146 (propagated-inputs
4147 `(("emacs-company" ,emacs-company)
4148 ("emacs-posframe" ,emacs-posframe)))
4149 (home-page "https://github.com/tumashu/company-posframe")
4150 (synopsis "Use a posframe for @code{emacs-company}'s candidate menu")
4151 (description
4152 "Allows @code{emacs-company} to use child frames for its candidate menus.
4153
4154 @code{emacs-company-posframe} is fast enough for daily use and supports CJK
4155 languages.")
4156 (license license:gpl3+))))
4157
4158 (define-public emacs-irony-mode
4159 (package
4160 (name "emacs-irony-mode")
4161 (version "1.4.0")
4162 (home-page "https://github.com/Sarcasm/irony-mode")
4163 (source (origin
4164 (method git-fetch)
4165 (uri (git-reference
4166 (url (string-append home-page ".git"))
4167 (commit (string-append "v" version))))
4168 (file-name (git-file-name name version))
4169 (sha256
4170 (base32
4171 "0n2nfcq58md1p2xdhq1smh8v7lsyj0ci7ma5xyd6bkg5rvhsh10i"))))
4172 (build-system emacs-build-system)
4173 (inputs `(("server" ,emacs-irony-mode-server)))
4174 (arguments `(#:phases
4175 (modify-phases %standard-phases
4176 (add-after 'unpack 'configure
4177 (lambda* (#:key inputs #:allow-other-keys)
4178 (chmod "irony.el" #o644)
4179 (emacs-substitute-variables "irony.el"
4180 ("irony-server-install-prefix"
4181 (assoc-ref inputs "server")))
4182 #t)))))
4183 (synopsis "C/C++/ObjC Code completion and syntax checks for Emacs")
4184 (description "Irony-mode provides Clang-assisted syntax checking and
4185 completion for C, C++, and ObjC in GNU Emacs. Using @code{libclang} it can
4186 provide syntax checking and autocompletion on compiler level which is very
4187 resistant against false positives. It also integrates well with other
4188 packages like @code{eldoc-mode} and especially @code{company-mode} as
4189 described on the homepage.")
4190 (license license:gpl3+)))
4191
4192 (define-public emacs-irony-mode-server
4193 (package (inherit emacs-irony-mode)
4194 (name "emacs-irony-mode-server")
4195 (inputs
4196 `(("clang" ,clang)))
4197 (arguments
4198 `(#:phases
4199 (modify-phases %standard-phases
4200 (replace 'configure
4201 (lambda* (#:key outputs #:allow-other-keys)
4202 (let ((out (assoc-ref outputs "out")))
4203 (invoke "cmake"
4204 "server"
4205 (string-append "-DCMAKE_INSTALL_PREFIX=" out)) #t))))))
4206 (build-system cmake-build-system)
4207 (synopsis "Server for the Emacs @dfn{irony mode}")))
4208
4209 (define-public emacs-company-irony
4210 (package
4211 (name "emacs-company-irony")
4212 (version "1.1.0")
4213 (source (origin
4214 (method git-fetch)
4215 (uri (git-reference
4216 (url "https://github.com/Sarcasm/company-irony.git")
4217 (commit (string-append "v" version))))
4218 (sha256 (base32
4219 "1qgyam2vyjw90kpxns5cd6bq3qiqjhzpwrlvmi18vyb69qcgqd8a"))
4220 (file-name (git-file-name name version))))
4221 (build-system emacs-build-system)
4222 (inputs
4223 `(("emacs-irony-mode" ,emacs-irony-mode)
4224 ("emacs-company" ,emacs-company)))
4225 (synopsis "C++ completion backend for Company using irony-mode")
4226 (description "This backend for company-mode allows for C++ code completion
4227 with irony-mode using clang-tooling.")
4228 (home-page "https://github.com/Sarcasm/company-irony")
4229 (license license:gpl3+)))
4230
4231 (define-public emacs-flycheck-irony
4232 (package
4233 (name "emacs-flycheck-irony")
4234 (version "0.1.0")
4235 (source (origin
4236 (method git-fetch)
4237 (uri (git-reference
4238 (url "https://github.com/Sarcasm/flycheck-irony.git")
4239 (commit (string-append "v" version))))
4240 (file-name (git-file-name name version))
4241 (sha256
4242 (base32 "0qa5a8wzvzxwqql92ibc9s43k8sj3vwn7skz9hfr8av0skkhx996"))))
4243 (build-system emacs-build-system)
4244 (inputs
4245 `(("irony-mode" ,emacs-irony-mode)
4246 ("flycheck-mode" ,emacs-flycheck)
4247 ("emacs-company" ,emacs-company)))
4248 (synopsis "Live syntax checking frontend for Flycheck using irony-mode")
4249 (description "This package provides a frontend for Flycheck that lets
4250 irony-mode do the syntax checking.")
4251 (home-page "https://github.com/Sarcasm/flycheck-irony")
4252 (license license:gpl3+)))
4253
4254 (define-public emacs-irony-eldoc
4255 (package
4256 (name "emacs-irony-eldoc")
4257 (version (package-version emacs-irony-mode))
4258 (source
4259 (origin
4260 (method git-fetch)
4261 (uri (git-reference
4262 (url "https://github.com/ikirill/irony-eldoc.git")
4263 (commit "0df5831eaae264a25422b061eb2792aadde8b3f2")))
4264 (file-name (git-file-name name version))
4265 (sha256
4266 (base32 "1l5qpr66v1l12fb50yh73grb2rr85xxmbj19mm33b5rdrq2bqmmd"))))
4267 (build-system emacs-build-system)
4268 (inputs
4269 `(("irony-mode" ,emacs-irony-mode)))
4270 (synopsis "Eldoc integration for irony-mode")
4271 (description "Irony-eldoc is an eldoc extension that shows documentation
4272 for the current function or variable in the minibuffer.")
4273 (home-page "https://github.com/ikirill/irony-eldoc")
4274 (license license:gpl3+)))
4275
4276 (define-public emacs-company-quickhelp
4277 ;; XXX: release version 2.3.0 is on an unmaintained branch for some reason,
4278 ;; so we use the latest 2.2.0 commit instead
4279 (let ((commit "479676cade80a9f03802ca3d956591820ed5c537")
4280 (revision "1"))
4281 (package
4282 (name "emacs-company-quickhelp")
4283 (version (git-version "2.2.0" revision commit))
4284 (source
4285 (origin
4286 (method git-fetch)
4287 (uri (git-reference
4288 (url "https://github.com/expez/company-quickhelp.git")
4289 (commit commit)))
4290 (file-name (git-file-name name version))
4291 (sha256
4292 (base32 "0hbqpnaf4hnin3nmdzmfj3v22kk9a97b6zssqs96ns36d9h52xcp"))))
4293 (build-system emacs-build-system)
4294 (propagated-inputs
4295 `(("emacs-pos-tip" ,emacs-pos-tip)
4296 ("emacs-company" ,emacs-company)))
4297 (home-page "https://github.com/expez/company-quickhelp")
4298 (synopsis "Popup documentation for completion candidates")
4299 (description "@code{company-quickhelp} shows documentation for the
4300 completion candidate when using the Company text completion framework.")
4301 (license license:gpl3+))))
4302
4303 (define-public emacs-math-symbol-lists
4304 (let ((commit "dc7531cff0c845d5470a50c24d5d7309b2ced7eb")
4305 (revision "1"))
4306 (package
4307 (name "emacs-math-symbol-lists")
4308 (version (git-version "1.2.1" revision commit))
4309 (source
4310 (origin
4311 (method git-fetch)
4312 (uri (git-reference
4313 (url "https://github.com/vspinu/math-symbol-lists.git")
4314 (commit commit)))
4315 (file-name (git-file-name name version))
4316 (sha256
4317 (base32 "094m21i9rns6m59cmhxcivxxafbg52w8f8na4y3v47aq67zmhhqm"))))
4318 (build-system emacs-build-system)
4319 (home-page "https://github.com/vspinu/math-symbol-lists")
4320 (synopsis "Lists of Unicode math symbols and @code{LaTeX} commands")
4321 (description "This is a storage package used by completion engines like
4322 @code{company-math}.")
4323 (license license:gpl3+))))
4324
4325 (define-public emacs-company-coq
4326 (package
4327 (name "emacs-company-coq")
4328 (version "1.0.1")
4329 (source
4330 (origin
4331 (method git-fetch)
4332 (uri
4333 (git-reference
4334 (url "https://github.com/cpitclaudel/company-coq")
4335 (commit version)))
4336 (file-name (git-file-name name version))
4337 (sha256
4338 (base32 "0dxi4h8xqq5647k7h89s4pi8nwyj3brlhsckrv3p3b1g4dr6mk3b"))))
4339 (inputs
4340 `(("emacs-company" ,emacs-company)
4341 ("emacs-company-math" ,emacs-company-math)
4342 ("emacs-dash" ,emacs-dash)
4343 ("emacs-yasnippet" ,emacs-yasnippet)))
4344 (build-system emacs-build-system)
4345 (home-page "https://github.com/cpitclaudel/company-coq")
4346 (synopsis "Emacs extensions for Proof General's Coq mode")
4347 (description "This package includes a collection of Company mode backends
4348 for Proof-General's Coq mode, and many useful extensions to Proof-General. It
4349 features:
4350
4351 @itemize
4352 @item Prettification of operators, types, and subscripts,
4353 @item Auto-completion,
4354 @item Insertion of cases,
4355 @item Fully explicit intros,
4356 @item Outlines, code folding, and jumping to definition,
4357 @item Help with errors,
4358 @item and more.
4359 @end itemize")
4360 (license license:gpl3+)))
4361
4362 (define-public emacs-company-math
4363 (let ((commit "600e49449644f6835f9dc3501bc58461999e8ab9")
4364 (revision "1"))
4365 (package
4366 (name "emacs-company-math")
4367 (version (git-version "1.3" revision commit))
4368 (source
4369 (origin
4370 (method git-fetch)
4371 (uri (git-reference
4372 (url "https://github.com/vspinu/company-math.git")
4373 (commit commit)))
4374 (file-name (git-file-name name version))
4375 (sha256
4376 (base32
4377 "1ps2lpkzn8mjbpcbvvy1qz3xbgrh6951x8y9bsd1fm32drdph9lh"))))
4378 (build-system emacs-build-system)
4379 (propagated-inputs
4380 `(("emacs-math-symbol-lists" ,emacs-math-symbol-lists)
4381 ("emacs-company" ,emacs-company)))
4382 (home-page "https://github.com/vspinu/company-math")
4383 (synopsis "Completion backends for Unicode math symbols and @code{LaTeX} tags")
4384 (description "This package provides a backend for use with
4385 @code{company-mode} allowing for completion of common math symbols.")
4386 (license license:gpl3+))))
4387
4388 (define-public emacs-compdef
4389 (let ((commit "67104a38763cc819644f711248b170a43bce151b")
4390 (revision "2"))
4391 (package
4392 (name "emacs-compdef")
4393 (version (git-version "0.2" revision commit))
4394 (source
4395 (origin
4396 (method git-fetch)
4397 (uri (git-reference
4398 (url "https://gitlab.com/jjzmajic/compdef.git")
4399 (commit commit)))
4400 (file-name (git-file-name name version))
4401 (sha256
4402 (base32 "1f6y6cr67gps9jp5hd20xszfd3k26v70g6z4g5db6wdkvlnc2wkg"))))
4403 (build-system emacs-build-system)
4404 (home-page "https://gitlab.com/jjzmajic/compdef")
4405 (synopsis "Set local completion backends")
4406 (description "This package provides a function to cleanly set local
4407 completion backends according to mode, and integrates with
4408 @code{use-package}.")
4409 (license license:gpl3+))))
4410
4411 (define-public emacs-icomplete-vertical
4412 (package
4413 (name "emacs-icomplete-vertical")
4414 (version "0.1")
4415 (source
4416 (origin
4417 (method git-fetch)
4418 (uri (git-reference
4419 (url "https://github.com/oantolin/icomplete-vertical.git")
4420 (commit version)))
4421 (file-name (git-file-name name version))
4422 (sha256
4423 (base32
4424 "1bqnlvv1gvrjriazvzd3bq98r8ii6fqax0zznhvkl1ij5pf55a90"))))
4425 (build-system emacs-build-system)
4426 (home-page "https://github.com/oantolin/icomplete-vertical")
4427 (synopsis "Display icomplete candidates vertically")
4428 (description
4429 "This package defines a global minor mode to display Icomplete
4430 completion candidates vertically.")
4431 (license license:gpl3+)))
4432
4433 (define-public emacs-handle
4434 (let ((commit "51c050bc1c6e5caf0eb47ecd985daea1db7241ab")
4435 (revision "2"))
4436 (package
4437 (name "emacs-handle")
4438 (version (git-version "0.1" revision commit))
4439 (source
4440 (origin
4441 (method git-fetch)
4442 (uri (git-reference
4443 (url "https://gitlab.com/jjzmajic/handle.git")
4444 (commit commit)))
4445 (file-name (git-file-name name version))
4446 (sha256
4447 (base32 "14f15qzfmwdslml4rv37zb5d1lsjf0jibriz636hb7q7knx1n4sg"))))
4448 (build-system emacs-build-system)
4449 (propagated-inputs
4450 `(("emacs-parent-mode" ,emacs-parent-mode)))
4451 (home-page "https://gitlab.com/jjzmajic/handle")
4452 (synopsis "Handle generic functions across related major modes")
4453 (description "This package provides generic functions that specialize on
4454 major modes and intended purpose rather than on arguments. Different
4455 callables for tasks like expression evaluation, definition-jumping, and more
4456 can now be grouped accordingly and tried in sequence until one of them
4457 succeeds.")
4458 (license license:gpl3+))))
4459
4460 (define-public emacs-nswbuff
4461 (let ((commit "362da7f3687e2eb5bb11667347de85f4a9d002bc")
4462 (revision "1"))
4463 (package
4464 (name "emacs-nswbuff")
4465 (version (git-version "1.0" revision commit))
4466 (source
4467 (origin
4468 (method git-fetch)
4469 (uri (git-reference
4470 (url "https://github.com/joostkremers/nswbuff.git")
4471 (commit commit)))
4472 (file-name (git-file-name name version))
4473 (sha256
4474 (base32 "0l2xfz8z5qd4hz3kv6zn7h6qq3narkilri8a071y1n8j31jps4ma"))))
4475 (build-system emacs-build-system)
4476 (home-page "https://github.com/joostkremers/nswbuff")
4477 (synopsis "Quickly switch between buffers")
4478 (description "This package allows for navigating between buffers within
4479 a customizable list.")
4480 (license license:gpl3+))))
4481
4482 (define-public emacs-phi-search
4483 (let ((commit "9a089b8271cb1cff9640848850298c9ec855286c")
4484 (revision "1"))
4485 (package
4486 (name "emacs-phi-search")
4487 (version (git-version "20160630" revision commit))
4488 (source
4489 (origin
4490 (method git-fetch)
4491 (uri (git-reference
4492 (url "https://github.com/zk-phi/phi-search.git")
4493 (commit commit)))
4494 (file-name (git-file-name name version))
4495 (sha256
4496 (base32 "1gr5plcbrfdc4pglfj905s89hf8x0kc083h30wcnd81bnw9jwz1x"))))
4497 (build-system emacs-build-system)
4498 (home-page "https://github.com/zk-phi/phi-search")
4499 (synopsis "Interactive search compatible with @code{multiple-cursors}")
4500 (description "This package can be used with @code{multiple-cursors} to
4501 provide an incremental search that moves all fake cursors in sync.")
4502 (license license:gpl2+))))
4503
4504 (define-public emacs-phi-search-mc
4505 (let ((commit "7aa671910f766437089aec26c3aa7814222d1356")
4506 (revision "1"))
4507 (package
4508 (name "emacs-phi-search-mc")
4509 (version (git-version "2.2.1" revision commit))
4510 (source
4511 (origin
4512 (method git-fetch)
4513 (uri (git-reference
4514 (url "https://github.com/knu/phi-search-mc.el.git")
4515 (commit commit)))
4516 (file-name (git-file-name name version))
4517 (sha256
4518 (base32 "0wr86ad0yl52im6b9z0b9pzmhcn39qg5m9878yfv1nbxliw40lcd"))))
4519 (build-system emacs-build-system)
4520 (propagated-inputs
4521 `(("emacs-phi-search" ,emacs-phi-search)
4522 ("emacs-multiple-cursors" ,emacs-multiple-cursors)))
4523 (home-page "https://github.com/knu/phi-search-mc.el")
4524 (synopsis "Extend @code{phi-search} with additional
4525 @code{multiple-cursors} functionality")
4526 (description "This package provides further integration between
4527 @code{multiple-cursors} and @code{phi-search}, a package that allows for
4528 interactive searches to move multiple fake cursors.")
4529 (license license:bsd-2))))
4530
4531 (define-public emacs-multiple-cursors
4532 (package
4533 (name "emacs-multiple-cursors")
4534 (version "1.4.0")
4535 (source
4536 (origin
4537 (method git-fetch)
4538 (uri (git-reference
4539 (url "https://github.com/magnars/multiple-cursors.el.git")
4540 (commit version)))
4541 (file-name (git-file-name name version))
4542 (sha256
4543 (base32 "1ijgvzv5r44xqvz751fd5drbvrspapw6xwv47582w255j363r6ss"))))
4544 (build-system emacs-build-system)
4545 (home-page "https://github.com/magnars/multiple-cursors.el")
4546 (synopsis "Multiple cursors for Emacs")
4547 (description
4548 "This package adds support to Emacs for editing text with multiple
4549 simultaneous cursors.")
4550 (license license:gpl3+)))
4551
4552 (define-public emacs-mc-extras
4553 (let ((commit "053abc52181b8718559d7361a587bbb795faf164")
4554 (revision "1"))
4555 (package
4556 (name "emacs-mc-extras")
4557 (version (git-version "1.2.4" revision commit))
4558 (source
4559 (origin
4560 (method git-fetch)
4561 (uri (git-reference
4562 (url "https://github.com/knu/mc-extras.el.git")
4563 (commit commit)))
4564 (file-name (git-file-name name version))
4565 (sha256
4566 (base32 "16y48qrd20m20vypvys5jp4v4gc1qrqlkm75s1pk1r68i9zrw481"))))
4567 (build-system emacs-build-system)
4568 (propagated-inputs
4569 `(("emacs-multiple-cursors" ,emacs-multiple-cursors)))
4570 (home-page "https://github.com/knu/mc-extras.el")
4571 (synopsis "Extra functions for manipulating multiple cursors")
4572 (description
4573 "This package provides additional functions for
4574 @code{multiple-cursors}, including functions for marking s-expressions,
4575 comparing characters, removing cursors, and more.")
4576 (license license:bsd-2))))
4577
4578 (define-public emacs-typo
4579 (package
4580 (name "emacs-typo")
4581 (version "1.1")
4582 (home-page "https://github.com/jorgenschaefer/typoel")
4583 (source (origin
4584 (method git-fetch)
4585 (uri (git-reference
4586 (url home-page)
4587 (commit (string-append "v" version))))
4588 (file-name (git-file-name name version))
4589 (sha256
4590 (base32
4591 "1jhd4grch5iz12gyxwfbsgh4dmz5hj4bg4gnvphccg8dsnni05k2"))))
4592 (build-system emacs-build-system)
4593 (synopsis "Minor mode for typographic editing")
4594 (description
4595 "This package provides two Emacs modes, @code{typo-mode} and
4596 @code{typo-global-mode}. These modes automatically insert Unicode characters
4597 for quotation marks, dashes, and ellipses. For example, typing @kbd{\"}
4598 automatically inserts a Unicode opening or closing quotation mark, depending
4599 on context.")
4600 (license license:gpl3+)))
4601
4602 (define-public emacs-company-lsp
4603 (package
4604 (name "emacs-company-lsp")
4605 (version "2.1.0")
4606 (source (origin
4607 (method git-fetch)
4608 (uri (git-reference
4609 (url "https://github.com/tigersoldier/company-lsp.git")
4610 (commit version)))
4611 (file-name (git-file-name name version))
4612 (sha256
4613 (base32
4614 "1hy1x2w0yp5brm7714d1hziz3rpkywb5jp3yj78ibmi9ifny9vri"))))
4615 (build-system emacs-build-system)
4616 (propagated-inputs
4617 `(("emacs-dash" ,emacs-dash)
4618 ("emacs-lsp-mode" ,emacs-lsp-mode)
4619 ("emacs-company" ,emacs-company)
4620 ("emacs-s" ,emacs-s)
4621 ("emacs-dash" ,emacs-dash)))
4622 (native-inputs
4623 `(("emacs-buttercup" ,emacs-buttercup)))
4624 (arguments
4625 `(#:tests? #t
4626 #:test-command '("buttercup" "-L" ".")))
4627 (home-page "https://github.com/tigersoldier/company-lsp")
4628 (synopsis "Completion for @code{lsp-mode}")
4629 (description
4630 "This package provides completion features that are not possible with
4631 @code{lsp-mode} and @code{company-capf} alone, including support for trigger
4632 characters and asynchronous fetching of completion candidates.")
4633 (license license:gpl3+)))
4634
4635 (define-public emacs-scheme-complete
4636 (let ((commit "9b5cf224bf2a5994bc6d5b152ff487517f1a9bb5"))
4637 (package
4638 (name "emacs-scheme-complete")
4639 (version (string-append "20151223." (string-take commit 8)))
4640 (source
4641 (origin
4642 (method git-fetch)
4643 (uri (git-reference
4644 (url "https://github.com/ashinn/scheme-complete.git")
4645 (commit commit)))
4646 (file-name (git-file-name name version))
4647 (sha256
4648 (base32
4649 "141wn9l0m33w0g3dqmx8nxbfdny1r5xbr6ak61rsz21bk0qafs7x"))
4650 (patches
4651 (search-patches "emacs-scheme-complete-scheme-r5rs-info.patch"))))
4652 (build-system emacs-build-system)
4653 (home-page "https://github.com/ashinn/scheme-complete")
4654 (synopsis "Smart tab completion for Scheme in Emacs")
4655 (description
4656 "This file provides a single function, @code{scheme-smart-complete},
4657 which you can use for intelligent, context-sensitive completion for any Scheme
4658 implementation in Emacs. To use it just load this file and bind that function
4659 to a key in your preferred mode.")
4660 (license license:public-domain))))
4661
4662 (define-public emacs-scel
4663 (let ((version "20170629")
4664 (revision "1")
4665 (commit "aeea3ad4be9306d14c3a734a4ff54fee10ac135b"))
4666 (package
4667 (name "emacs-scel")
4668 (version (git-version version revision commit))
4669 (source
4670 (origin
4671 (method git-fetch)
4672 (uri (git-reference
4673 (url "https://github.com/supercollider/scel.git")
4674 (commit commit)))
4675 (file-name (git-file-name name version))
4676 (sha256
4677 (base32
4678 "0jvmzs1lsjyndqshhii2y4mnr3wghai26i3p75453zrpxpg0zvvw"))))
4679 (build-system emacs-build-system)
4680 (arguments
4681 `(#:modules ((guix build emacs-build-system)
4682 ((guix build cmake-build-system) #:prefix cmake:)
4683 (guix build utils))
4684 #:imported-modules (,@%emacs-build-system-modules
4685 (guix build cmake-build-system))
4686 #:phases
4687 (modify-phases %standard-phases
4688 (add-after 'unpack 'configure
4689 (lambda* (#:key outputs #:allow-other-keys)
4690 (substitute* "el/CMakeLists.txt"
4691 (("share/emacs/site-lisp/SuperCollider")
4692 (string-append
4693 "share/emacs/site-lisp")))
4694 ((assoc-ref cmake:%standard-phases 'configure)
4695 #:outputs outputs
4696 #:configure-flags '("-DSC_EL_BYTECOMPILE=OFF"))))
4697 (add-after 'add-source-to-load-path 'add-el-dir-to-emacs-load-path
4698 (lambda _
4699 (setenv "EMACSLOADPATH"
4700 (string-append (getcwd) "/el:" (getenv "EMACSLOADPATH")))
4701 #t))
4702 (replace 'install (assoc-ref cmake:%standard-phases 'install)))))
4703 (inputs
4704 `(("supercollider" ,supercollider)))
4705 (native-inputs
4706 `(("cmake" ,cmake-minimal)))
4707 (home-page "https://github.com/supercollider/scel")
4708 (synopsis "SuperCollider Emacs interface")
4709 (description "@code{emacs-scel} is an Emacs interface to SuperCollider.
4710 SuperCollider is a platform for audio synthesis and algorithmic composition.")
4711 (license license:gpl2+))))
4712
4713 (define-public emacs-company-auctex
4714 (let ((commit "48c42c58ce2f0e693301b0cb2d085055410c1b25")
4715 (revision "1"))
4716 (package
4717 (name "emacs-company-auctex")
4718 (version (git-version "0" revision commit))
4719 (source (origin
4720 (method git-fetch)
4721 (uri (git-reference
4722 (url "https://github.com/alexeyr/company-auctex")
4723 (commit commit)))
4724 (file-name (git-file-name name version))
4725 (sha256
4726 (base32
4727 "10qn7frn5wcmrlci3v6iliqzj7r9dls87h9zp3xkgrgn4bqprfp8"))))
4728 (build-system emacs-build-system)
4729 (propagated-inputs
4730 `(("emacs-yasnippet" ,emacs-yasnippet)
4731 ("emacs-auctex" ,emacs-auctex)
4732 ("emacs-company" ,emacs-company)))
4733 (home-page "https://github.com/alexeyr/company-auctex/")
4734 (synopsis "Completion for @code{AUCTeX}")
4735 (description
4736 "This package provides a group of backends permitting auto-completion
4737 for @code{AUCTeX}.")
4738 (license license:gpl3+))))
4739
4740 (define-public emacs-mit-scheme-doc
4741 (package
4742 (name "emacs-mit-scheme-doc")
4743 (version "20140203")
4744 (source
4745 (origin
4746 (modules '((guix build utils)))
4747 (snippet
4748 ;; keep only file of interest
4749 '(begin
4750 (for-each delete-file '("dot-emacs.el" "Makefile"))
4751 (install-file "6.945-config/mit-scheme-doc.el" ".")
4752 (delete-file-recursively "6.945-config")
4753 #t))
4754 (file-name (string-append name "-" version ".tar.bz2"))
4755 (method url-fetch)
4756 (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/"
4757 "6.945/dont-panic/emacs-basic-config.tar.bz2"))
4758 (sha256
4759 (base32
4760 "0dqidg2bd66pawqfarvwca93w5gqf9mikn1k2a2rmd9ymfjpziq1"))))
4761 (build-system emacs-build-system)
4762 (inputs `(("mit-scheme" ,mit-scheme)))
4763 (arguments
4764 `(#:phases
4765 (modify-phases %standard-phases
4766 (add-after 'unpack 'configure-doc
4767 (lambda* (#:key inputs #:allow-other-keys)
4768 (let* ((mit-scheme-dir (assoc-ref inputs "mit-scheme"))
4769 (doc-dir (string-append mit-scheme-dir "/share/doc/"
4770 "mit-scheme-"
4771 ,(package-version mit-scheme))))
4772 (substitute* "mit-scheme-doc.el"
4773 (("http://www\\.gnu\\.org/software/mit-scheme/documentation/mit-scheme-ref/")
4774 (string-append "file:" doc-dir "/mit-scheme-ref/")))))))))
4775 (home-page "https://groups.csail.mit.edu/mac/users/gjs/6.945/dont-panic/")
4776 (synopsis "MIT-Scheme documentation lookup for Emacs")
4777 (description
4778 "This package provides a set of Emacs functions to search definitions of
4779 identifiers in the MIT-Scheme documentation.")
4780 (license license:gpl2+)))
4781
4782 (define-public emacs-constants
4783 (package
4784 (name "emacs-constants")
4785 (version "2.6")
4786 (home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
4787 (source
4788 (origin
4789 (method git-fetch)
4790 (uri (git-reference
4791 (url "https://github.com/fedeinthemix/emacs-constants.git")
4792 (commit (string-append "v" version))))
4793 (file-name (git-file-name name version))
4794 (sha256
4795 (base32 "0f5sh6b45a8p9kancjp9jk44ws8ww6x50a0i6zgyyvr7dbvii1a0"))))
4796 (build-system emacs-build-system)
4797 (synopsis "Enter definition of constants into an Emacs buffer")
4798 (description
4799 "This package provides functions for inserting the definition of natural
4800 constants and units into an Emacs buffer.")
4801 (license license:gpl2+)))
4802
4803 (define-public emacs-tagedit
4804 (package
4805 (name "emacs-tagedit")
4806 (version "1.4.0")
4807 (source
4808 (origin
4809 (method git-fetch)
4810 (uri (git-reference
4811 (url "https://github.com/magnars/tagedit.git")
4812 (commit version)))
4813 (file-name (git-file-name name version))
4814 (sha256
4815 (base32 "0kq40g46s8kgiafrhdq99h79rz9h5fvgz59k7ralmf86bl4sdmdb"))))
4816 (build-system emacs-build-system)
4817 (propagated-inputs
4818 `(("emacs-s" ,emacs-s)
4819 ("emacs-dash" ,emacs-dash)))
4820 (home-page "https://github.com/magnars/tagedit")
4821 (synopsis "Some paredit-like features for html-mode")
4822 (description
4823 "This package provides a collection of paredit-like functions for editing
4824 in @code{html-mode}.")
4825 (license license:gpl3+)))
4826
4827 (define-public emacs-slime
4828 (package
4829 (name "emacs-slime")
4830 (version "2.24")
4831 (source
4832 (origin
4833 (method git-fetch)
4834 (uri (git-reference
4835 (url "https://github.com/slime/slime.git")
4836 (commit (string-append "v" version))))
4837 (file-name (git-file-name name version))
4838 (sha256
4839 (base32 "0js24x42m7b5iymb4rxz501dff19vav5pywnzv50b673rbkaaqvh"))))
4840 (build-system emacs-build-system)
4841 (native-inputs
4842 `(("texinfo" ,texinfo)))
4843 (arguments
4844 `(#:include '("\\.el$" "\\.lisp$" "\\.asd$" "contrib")
4845 #:exclude '("^slime-tests.el" "^contrib/test/"
4846 "^contrib/Makefile$" "^contrib/README.md$")
4847 #:phases
4848 (modify-phases %standard-phases
4849 (add-after 'unpack 'make-git-checkout-writable
4850 (lambda _
4851 (for-each make-file-writable (find-files "."))
4852 #t))
4853 (add-before 'install 'configure
4854 (lambda* _
4855 (emacs-substitute-variables "slime.el"
4856 ("inferior-lisp-program" "sbcl"))
4857 #t))
4858 (add-before 'install 'install-doc
4859 (lambda* (#:key outputs #:allow-other-keys)
4860 (let* ((out (assoc-ref outputs "out"))
4861 (info-dir (string-append out "/share/info"))
4862 (doc-dir (string-append out "/share/doc/"
4863 ,name "-" ,version))
4864 (doc-files '("doc/slime-refcard.pdf"
4865 "README.md" "NEWS" "PROBLEMS"
4866 "CONTRIBUTING.md")))
4867 (with-directory-excursion "doc"
4868 (substitute* "Makefile"
4869 (("infodir=/usr/local/info")
4870 (string-append "infodir=" info-dir)))
4871 (invoke "make" "html/index.html")
4872 (invoke "make" "slime.info")
4873 (install-file "slime.info" info-dir)
4874 (copy-recursively "html" (string-append doc-dir "/html")))
4875 (for-each (lambda (f)
4876 (install-file f doc-dir)
4877 (delete-file f))
4878 doc-files)
4879 (delete-file-recursively "doc")
4880 #t))))))
4881 (home-page "https://github.com/slime/slime")
4882 (synopsis "Superior Lisp Interaction Mode for Emacs")
4883 (description
4884 "SLIME extends Emacs with support for interactive programming in
4885 Common Lisp. The features are centered around @command{slime-mode},
4886 an Emacs minor mode that complements the standard @command{lisp-mode}.
4887 While lisp-mode supports editing Lisp source files, @command{slime-mode}
4888 adds support for interacting with a running Common Lisp process
4889 for compilation, debugging, documentation lookup, and so on.")
4890 (license (list license:gpl2+ license:public-domain))))
4891
4892 (define-public emacs-popup
4893 (package
4894 (name "emacs-popup")
4895 (version "0.5.3")
4896 (source
4897 (origin
4898 (method git-fetch)
4899 (uri (git-reference
4900 (url "https://github.com/auto-complete/popup-el.git")
4901 (commit (string-append "v" version))))
4902 (file-name (git-file-name name version))
4903 (sha256
4904 (base32 "1y538siabcf1n00wr4iz5gbxfndw661kx2mn9w1g4lg7yi4n0h0h"))))
4905 (build-system emacs-build-system)
4906 (home-page "https://github.com/auto-complete/popup-el")
4907 (synopsis "Visual Popup User Interface for Emacs")
4908 (description
4909 "Popup.el is a visual popup user interface library for Emacs.
4910 This provides a basic API and common UI widgets such as popup tooltips
4911 and popup menus.")
4912 (license license:gpl3+)))
4913
4914 (define-public emacs-python-environment
4915 (package
4916 (name "emacs-python-environment")
4917 (version "0.0.2")
4918 (source
4919 (origin
4920 (method git-fetch)
4921 (uri (git-reference
4922 (url "https://github.com/tkf/emacs-python-environment/")
4923 (commit version)))
4924 (file-name (git-file-name name version))
4925 (sha256
4926 (base32 "0q6bib9nr6xiq6npzbngyfcjk87yyvwzq1zirr3z1h5wadm34lsk"))))
4927 (build-system emacs-build-system)
4928 (propagated-inputs
4929 `(("emacs-deferred" ,emacs-deferred)))
4930 (home-page "https://github.com/tkf/emacs-python-environment")
4931 (synopsis "Provides a @code{virtualenv} API in Emacs Lisp")
4932 (description
4933 "This package permits automated installation of tools written in Python.")
4934 (license license:gpl3+)))
4935
4936 (define-public emacs-jedi
4937 (package
4938 (name "emacs-jedi")
4939 (version "0.2.8")
4940 (source (origin
4941 (method git-fetch)
4942 (uri (git-reference
4943 (url "https://github.com/tkf/emacs-jedi/")
4944 (commit (string-append "v" version))))
4945 (file-name (git-file-name name version))
4946 (sha256
4947 (base32
4948 "1bckxppfzd5gwn0aw4h86igb7igal9axqncq7j8zmflg7zppncf1"))))
4949 (build-system emacs-build-system)
4950 (native-inputs
4951 `(("emacs-mocker" ,emacs-mocker)))
4952 (propagated-inputs
4953 `(("emacs-auto-complete" ,emacs-auto-complete)
4954 ("emacs-python-environment" ,emacs-python-environment)
4955 ("emacs-epc" ,emacs-epc)))
4956 (home-page "https://github.com/tkf/emacs-jedi")
4957 (synopsis "Provides Python completion in Emacs")
4958 (description
4959 "This package provides completion in Python buffers and also helps find
4960 the locations of docstrings, arguments, and functions.")
4961 (license license:gpl3+)))
4962
4963 (define-public emacs-company-jedi
4964 (package
4965 (name "emacs-company-jedi")
4966 (version "0.04")
4967 (source (origin
4968 (method git-fetch)
4969 (uri (git-reference
4970 (url "https://github.com/syohex/emacs-company-jedi")
4971 (commit version)))
4972 (file-name (git-file-name name version))
4973 (sha256
4974 (base32
4975 "1ihqapp4dv92794rsgyq0rmhwika60cmradqd4bn9b72ss6plxs1"))))
4976 (build-system emacs-build-system)
4977 (propagated-inputs
4978 `(("emacs-jedi" ,emacs-jedi)
4979 ("emacs-company" ,emacs-company)))
4980 (home-page "https://github.com/syohex/emacs-company-jedi")
4981 (synopsis "Provides Python completion in @code{company-mode}")
4982 (description
4983 "This package provides a Company backend for Python.")
4984 (license license:gpl3+)))
4985
4986 (define-public emacs-puppet-mode
4987 (let ((commit "b3ed5057166a4f49dfa9be638523a348b55a2fd2")
4988 (revision "1"))
4989 (package
4990 (name "emacs-puppet-mode")
4991 ;; The last release, 0.3 was several years ago, and there have been many
4992 ;; commits since
4993 (version (git-version "0.3" revision commit))
4994 (source
4995 (origin
4996 (method url-fetch)
4997 (uri (string-append
4998 "https://raw.githubusercontent.com/voxpupuli/puppet-mode/"
4999 commit "/puppet-mode.el"))
5000 (sha256
5001 (base32
5002 "1indycxawsl0p2aqqg754f6735q3cmah9vd886rpn0ncc3ipi1xm"))))
5003 (build-system emacs-build-system)
5004 (home-page "https://github.com/voxpupuli/puppet-mode")
5005 (synopsis "Emacs major mode for the Puppet configuration language")
5006 (description
5007 "This package provides support for the Puppet configuration language,
5008 including syntax highlighting, indentation of expressions and statements,
5009 linting of manifests and integration with Puppet Debugger.")
5010 ;; Also incorporates work covered by the Apache License, Version 2.0
5011 (license license:gpl3+))))
5012
5013 (define-public emacs-god-mode
5014 (let ((commit "6cf0807b6555eb6fcf8387a4e3b667071ef38964")
5015 (revision "1"))
5016 (package
5017 (name "emacs-god-mode")
5018 (version (string-append "20151005.925."
5019 revision "-" (string-take commit 9)))
5020 (source
5021 (origin
5022 (method git-fetch)
5023 (uri (git-reference
5024 (url "https://github.com/chrisdone/god-mode.git")
5025 (commit commit)))
5026 (file-name (git-file-name name version))
5027 (sha256
5028 (base32
5029 "1am415k4xxcva6y3vbvyvknzc6bma49pq3p85zmpjsdmsp18qdix"))))
5030 (build-system emacs-build-system)
5031 (home-page "https://github.com/chrisdone/god-mode")
5032 (synopsis "Minor mode for entering commands without modifier keys")
5033 (description
5034 "This package provides a global minor mode for entering Emacs commands
5035 without modifier keys. It's similar to Vim's separation of commands and
5036 insertion mode. When enabled all keys are implicitly prefixed with
5037 @samp{C-} (among other helpful shortcuts).")
5038 (license license:gpl3+))))
5039
5040 (define-public emacs-jinja2-mode
5041 (package
5042 (name "emacs-jinja2-mode")
5043 (version "0.2")
5044 (source
5045 (origin
5046 (method git-fetch)
5047 (uri (git-reference
5048 (url "https://github.com/paradoxxxzero/jinja2-mode.git")
5049 (commit (string-append "v" version))))
5050 (file-name (git-file-name name version))
5051 (sha256
5052 (base32 "0l26wcy496k6xk7q5sf905xir0p73ziy6c44is77854lv3y0z381"))))
5053 (build-system emacs-build-system)
5054 (home-page "https://github.com/paradoxxxzero/jinja2-mode")
5055 (synopsis "Major mode for jinja2")
5056 (description
5057 "Emacs major mode for jinja2 with: syntax highlighting,
5058 sgml/html integration, and indentation (working with sgml).")
5059 (license license:gpl3+)))
5060
5061 (define-public emacs-company-cabal
5062 ;; The latest version is 0.3.0, but no release has been provided after 0.2.1.
5063 (let ((commit "62112a7259e24bd6c08885629a185afe512b7d3d")
5064 (revision "1"))
5065 (package
5066 (name "emacs-company-cabal")
5067 (version (git-version "0.3.0" revision commit))
5068 (source (origin
5069 (method git-fetch)
5070 (uri (git-reference
5071 (url "https://github.com/iquiw/company-cabal/")
5072 (commit commit)))
5073 (file-name (git-file-name name version))
5074 (sha256
5075 (base32
5076 "1gf45xwjzdm8i4q6c6khk4dbg1mmp2r0awz2sjr4dcr2dbd1n7mg"))))
5077 (build-system emacs-build-system)
5078 (propagated-inputs
5079 `(("emacs-company" ,emacs-company)))
5080 (arguments
5081 `(#:include (cons "^tools\\/" %default-include)))
5082 (home-page "https://github.com/iquiw/company-cabal/")
5083 (synopsis "Company completion for Haskell Cabal files")
5084 (description
5085 "This package allows for completion of field names, section names,
5086 field values, and more within @code{haskell-cabal-mode}.")
5087 (license license:gpl3+))))
5088
5089 (define-public emacs-rfcview
5090 (package
5091 (name "emacs-rfcview")
5092 (version "0.13")
5093 (home-page "http://www.loveshack.ukfsn.org/emacs")
5094 (source (origin
5095 (method url-fetch)
5096 (uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el")
5097 (sha256
5098 (base32
5099 "0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz"))))
5100 (build-system emacs-build-system)
5101 (synopsis "Prettify Request for Comments (RFC) documents")
5102 (description "The Internet Engineering Task Force (IETF) and the Internet
5103 Society (ISOC) publish various Internet-related protocols and specifications
5104 as \"Request for Comments\" (RFC) documents and Internet Standard (STD)
5105 documents. RFCs and STDs are published in a simple text form. This package
5106 provides an Emacs major mode, rfcview-mode, which makes it more pleasant to
5107 read these documents in Emacs. It prettifies the text and adds
5108 hyperlinks/menus for easier navigation. It also provides functions for
5109 browsing the index of RFC documents and fetching them from remote servers or
5110 local directories.")
5111 (license license:gpl3+)))
5112
5113 (define-public emacs-ffap-rfc-space
5114 (package
5115 (name "emacs-ffap-rfc-space")
5116 (version "12")
5117 (home-page "https://user42.tuxfamily.org/ffap-rfc-space/index.html")
5118 (source (origin
5119 (method url-fetch)
5120 (uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el")
5121 (sha256
5122 (base32
5123 "1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck"))))
5124 (build-system emacs-build-system)
5125 (synopsis "Make ffap recognize an RFC with a space before its number")
5126 (description "The Internet Engineering Task Force (IETF) and the
5127 Internet Society (ISOC) publish various Internet-related protocols and
5128 specifications as \"Request for Comments\" (RFC) documents. The
5129 built-in Emacs module \"ffap\" (Find File at Point) has the ability to
5130 recognize names at point which look like \"RFC1234\" and \"RFC-1234\"
5131 and load the appropriate RFC from a remote server. However, it fails
5132 to recognize a name like \"RFC 1234\". This package enhances ffap so
5133 that it correctly finds RFCs even when a space appears before the
5134 number.")
5135 (license license:gpl3+)))
5136
5137 (define-public emacs-org-bullets
5138 (package
5139 (name "emacs-org-bullets")
5140 (version "0.2.4")
5141 (source
5142 (origin
5143 (method git-fetch)
5144 (uri (git-reference
5145 (url "https://github.com/sabof/org-bullets.git")
5146 (commit version)))
5147 (file-name (git-file-name name version))
5148 (sha256
5149 (base32 "10nr4sjffnqbllv6gmak6pviyynrb7pi5nvrq331h5alm3xcpq0w"))))
5150 (build-system emacs-build-system)
5151 (home-page "https://github.com/sabof/org-bullets")
5152 (synopsis "Show bullets in org-mode as UTF-8 characters")
5153 (description
5154 "This package provides an Emacs minor mode causing bullets in
5155 @code{org-mode} to be rendered as UTF-8 characters.")
5156 (license license:gpl3+)))
5157
5158 (define-public emacs-org-superstar
5159 (package
5160 (name "emacs-org-superstar")
5161 (version "1.2.1")
5162 (source
5163 (origin
5164 (method git-fetch)
5165 (uri (git-reference
5166 (url "https://github.com/integral-dw/org-superstar-mode.git")
5167 (commit (string-append "v" version))))
5168 (file-name (git-file-name name version))
5169 (sha256
5170 (base32 "14w06v76xi4f6hpq6xzicrjjv0b802g5zc9as4mpimfy5gx2xpm0"))))
5171 (build-system emacs-build-system)
5172 (propagated-inputs
5173 `(("emacs-org" ,emacs-org)))
5174 (home-page "https://github.com/integral-dw/org-superstar-mode")
5175 (synopsis "Prettify headings and plain lists in Org mode")
5176 (description "This package prettifies headings and plain lists in
5177 Org mode. It is a direct descendant of @code{org-bullets}, with most
5178 of the code base completely rewritten.
5179
5180 Currently, this package prettifies Org heading lines by:
5181 @itemize
5182 @item replacing trailing bullets by UTF-8 bullets,
5183 @item hiding leading stars, customizing their look or removing them from vision,
5184 @item applying a custom face to the header bullet,
5185 @item applying a custom face to the leading bullets,
5186 @item using double-bullets for inline tasks,
5187 @item (optional) using special bullets for TODO keywords.
5188 @end itemize
5189
5190 It also prettifies Org plain list bullets by:
5191 @itemize
5192 @item replacing each bullet type (*, + and -) with UTF-8 bullets,
5193 @item applying a custom face to item bullets.
5194 @end itemize
5195
5196 Features degrade gracefully when viewed from terminal.")
5197 (license license:gpl3+)))
5198
5199 (define-public emacs-org-pomodoro
5200 ;; Last release version was from 2016.
5201 (let ((commit "aa07c11318f91219336197e62c47bc7a3d090479")
5202 (revision "1"))
5203 (package
5204 (name "emacs-org-pomodoro")
5205 (version (git-version "2.1.0" revision commit))
5206 (source
5207 (origin
5208 (method git-fetch)
5209 (uri (git-reference
5210 (url "https://github.com/marcinkoziej/org-pomodoro.git")
5211 (commit commit)))
5212 (file-name (git-file-name name version))
5213 (sha256
5214 (base32 "0nbprh2nhnmb7ngp9ndr6zr37ashcsvpi5slv7a37x1dl7j6w1k4"))))
5215 (build-system emacs-build-system)
5216 (propagated-inputs
5217 `(("emacs-alert" ,emacs-alert)))
5218 (arguments
5219 `(#:include (cons "^resources\\/" %default-include)
5220 #:tests? #t
5221 #:test-command '("emacs" "--batch"
5222 "-l" "org-pomodoro-tests.el"
5223 "-f" "ert-run-tests-batch-and-exit")
5224 #:phases
5225 (modify-phases %standard-phases
5226 (add-before 'check 'make-tests-writable
5227 (lambda _
5228 (make-file-writable "org-pomodoro-tests.el")
5229 #t))
5230 (add-before 'check 'add-require
5231 (lambda _
5232 (emacs-batch-edit-file "org-pomodoro-tests.el"
5233 `(progn (progn (goto-char (point-min))
5234 (re-search-forward
5235 "ert-deftest")
5236 (beginning-of-line)
5237 (forward-line -1)
5238 (insert "(require 'org-pomodoro)"))
5239 (basic-save-buffer)))
5240 #t)))))
5241 (home-page "https://github.com/marcinkoziej/org-pomodoro")
5242 (synopsis "Pomodoro technique for org-mode")
5243 (description "@code{emacs-org-pomodoro} adds very basic support for
5244 Pomodoro technique in Emacs org-mode.
5245
5246 Run @code{M-x org-pomodoro} for the task at point or select one of the
5247 last tasks that you clocked time for. Each clocked-in pomodoro starts
5248 a timer of 25 minutes and after each pomodoro a break timer of 5
5249 minutes is started automatically. Every 4 breaks a long break is
5250 started with 20 minutes. All values are customizable.")
5251 (license license:gpl3+))))
5252
5253 (define-public emacs-org-sidebar
5254 (package
5255 (name "emacs-org-sidebar")
5256 (version "0.2")
5257 (source
5258 (origin
5259 (method git-fetch)
5260 (uri (git-reference
5261 (url "https://github.com/alphapapa/org-sidebar.git")
5262 (commit version)))
5263 (file-name (git-file-name name version))
5264 (sha256
5265 (base32 "106h06vjfbqfj761vbxwymd6612ds8c6fk053yzgbrqzm3hn2c03"))))
5266 (build-system emacs-build-system)
5267 (propagated-inputs
5268 `(("emacs-dash" ,emacs-dash)
5269 ("emacs-org-super-agenda" ,emacs-org-super-agenda)
5270 ("emacs-org" ,emacs-org)
5271 ("emacs-org-ql" ,emacs-org-ql)
5272 ("emacs-s" ,emacs-s)))
5273 (home-page "https://github.com/alphapapa/org-sidebar")
5274 (synopsis "Helpful sidebar for Org buffers")
5275 (description "This package provides a sidebar for Org buffers. At the
5276 top is a chronological list of scheduled and deadlined tasks in the current
5277 buffer (similar to the Org agenda ,but without all its features), and below
5278 that is a list of all other non-done to-do items. If the buffer is narrowed,
5279 the sidebar only shows items in the narrowed portion; this allows seeing an
5280 overview of tasks in a subtree.")
5281 (license license:gpl3+)))
5282
5283 (define-public emacs-org-trello
5284 (package
5285 (name "emacs-org-trello")
5286 (version "0.8.1")
5287 (source
5288 (origin
5289 (method git-fetch)
5290 (uri (git-reference
5291 (url "https://github.com/org-trello/org-trello.git")
5292 (commit version)))
5293 (file-name (git-file-name name version))
5294 (sha256
5295 (base32
5296 "02gx3kv4mkij69ln8x8wf9n28x17pbb4kv85v78d3lxph7ykqimc"))))
5297 (build-system emacs-build-system)
5298 (propagated-inputs
5299 `(("emacs-dash" ,emacs-dash)
5300 ("emacs-deferred" ,emacs-deferred)
5301 ("emacs-f" ,emacs-f)
5302 ("emacs-helm" ,emacs-helm)
5303 ("emacs-request" ,emacs-request)
5304 ("emacs-s" ,emacs-s)))
5305 (home-page "https://org-trello.github.io")
5306 (synopsis "Emacs minor mode for interacting with Trello")
5307 (description "This package provides an Emacs minor mode to extend
5308 @code{org-mode} with Trello abilities. Trello is an online project
5309 organizer.")
5310 (license license:gpl3+)))
5311
5312 (define-public emacs-org-tanglesync
5313 (let ((commit "d99181f173b4e55b4e835d99fcd415e62beb047f")
5314 (revision "2"))
5315 (package
5316 (name "emacs-org-tanglesync")
5317 (version (git-version "0.6" revision commit))
5318 (source
5319 (origin
5320 (method git-fetch)
5321 (uri (git-reference
5322 (url "https://github.com/mtekman/org-tanglesync.el.git")
5323 (commit commit)))
5324 (file-name (git-file-name name version))
5325 (sha256
5326 (base32 "0x94gy1bgfd1f3p9w2bfrqj11bwy9ql0cpi1gw6srpj7kykx0lml"))))
5327 (build-system emacs-build-system)
5328 (propagated-inputs
5329 `(("emacs-org" ,emacs-org)))
5330 (home-page "https://github.com/mtekman/org-tanglesync.el")
5331 (synopsis "Sync Org source blocks with tangled external files")
5332 (description "This package automatically pulls changes from source code
5333 to their corresponding tangled blocks.")
5334 (license license:gpl3+))))
5335
5336 (define-public emacs-company-flow
5337 (let ((commit "76ef585c70d2a3206c2eadf24ba61e59124c3a16")
5338 (revision "1"))
5339 (package
5340 (name "emacs-company-flow")
5341 (version (git-version "0.1.0" revision commit))
5342 (source (origin
5343 (method git-fetch)
5344 (uri (git-reference
5345 (url "https://github.com/aaronjensen/company-flow/")
5346 (commit commit)))
5347 (file-name (git-file-name name version))
5348 (sha256
5349 (base32
5350 "0zs9cblnbkxa0dxw4lyllmybqizxcdx96gv8jlhx20nrjpi78piw"))))
5351 (build-system emacs-build-system)
5352 (propagated-inputs
5353 `(("emacs-company" ,emacs-company)
5354 ("emacs-dash" ,emacs-dash)))
5355 (home-page "https://github.com/aaronjensen/company-flow/")
5356 (synopsis "Flow backend for @code{company-mode}")
5357 (description
5358 "This package provides completion for JavaScript files utilizing Flow.")
5359 (license license:gpl3+))))
5360
5361 (define-public emacs-atom-one-dark-theme
5362 (let ((commit "1f1185bf667a38d3d0d180ce85fd4c131818aae2")
5363 (revision "0"))
5364 (package
5365 (name "emacs-atom-one-dark-theme")
5366 (version (git-version "0.4.0" revision commit))
5367 (source (origin
5368 (method git-fetch)
5369 (uri (git-reference
5370 (url "https://github.com/jonathanchu/atom-one-dark-theme.git")
5371 (commit commit)))
5372 (sha256
5373 (base32
5374 "1alma16hg3mfjly8a9s3mrswkjjx4lrpdnf43869hn2ibkn7zx9z"))
5375 (file-name (git-file-name name version))))
5376 (build-system emacs-build-system)
5377 (home-page "https://github.com/jonathanchu/atom-one-dark-theme")
5378 (synopsis "Atom One Dark color theme for Emacs")
5379 (description "An Emacs port of the Atom One Dark theme from Atom.io.")
5380 (license license:gpl3+))))
5381
5382 (define-public emacs-zenburn-theme
5383 (package
5384 (name "emacs-zenburn-theme")
5385 (version "2.6")
5386 (source
5387 (origin
5388 (method git-fetch)
5389 (uri (git-reference
5390 (url "https://github.com/bbatsov/zenburn-emacs.git")
5391 (commit (string-append "v" version))))
5392 (file-name (git-file-name name version))
5393 (sha256
5394 (base32 "1n87r5hs7h5r8dgfid66skpzcypl9hssr9m3npp916g6jfsi782f"))))
5395 (build-system emacs-build-system)
5396 (home-page "https://github.com/bbatsov/zenburn-emacs")
5397 (synopsis "Low contrast color theme for Emacs")
5398 (description
5399 "Zenburn theme is a port of the popular Vim Zenburn theme for Emacs.
5400 It is built on top of the custom theme support in Emacs 24 or later.")
5401 (license license:gpl3+)))
5402
5403 (define-public emacs-moe-theme-el
5404 (let ((commit "6e086d855d6bb446bbd1090742815589a81a915f")
5405 (version "1.0")
5406 (revision "1"))
5407 (package
5408 (name "emacs-moe-theme-el")
5409 (version (git-version version revision commit))
5410 (source
5411 (origin
5412 (method git-fetch)
5413 (uri (git-reference
5414 (url "https://github.com/kuanyui/moe-theme.el")
5415 (commit commit)))
5416 (file-name (git-file-name name version))
5417 (sha256
5418 (base32 "0xj4wfd7h4jqnr193pizm9frf6lmwjr0dsdv2l9mqh9k691z1dnc"))))
5419 (build-system emacs-build-system)
5420 (home-page "https://github.com/kuanyui/moe-theme.el")
5421 (synopsis "Anime-inspired color themes")
5422 (description
5423 "This package provides vibrant color schemes with light and dark
5424 variants.")
5425 (license license:gpl3+))))
5426
5427 (define-public emacs-solarized-theme
5428 (package
5429 (name "emacs-solarized-theme")
5430 (version "1.3.1")
5431 (source
5432 (origin
5433 (method git-fetch)
5434 (uri (git-reference
5435 (url "https://github.com/bbatsov/solarized-emacs/")
5436 (commit (string-append "v" version))))
5437 (file-name (git-file-name name version))
5438 (sha256
5439 (base32 "15ql8xcixgm7mbs7rsbybwszanqibq057j5b5ds89a31dw7zxf1g"))))
5440 (build-system emacs-build-system)
5441 (propagated-inputs
5442 `(("emacs-dash" ,emacs-dash)))
5443 (home-page "https://github.com/bbatsov/solarized-emacs")
5444 (synopsis "Port of the Solarized theme for Emacs")
5445 (description
5446 "Solarized for Emacs is a port of the Solarized theme for Vim. This
5447 package provides a light and a dark variant.")
5448 (license license:gpl3+)))
5449
5450 (define-public emacs-poet-theme
5451 (let ((commit "d84f7b259cc9b6ff8d442cf4c38bd6c7065ff8f4")
5452 (revision "0"))
5453 (package
5454 (name "emacs-poet-theme")
5455 (version (git-version "0" revision commit))
5456 (source
5457 (origin
5458 (method git-fetch)
5459 (uri (git-reference
5460 (url "https://github.com/kunalb/poet.git")
5461 (commit commit)))
5462 (file-name (git-file-name name version))
5463 (sha256
5464 (base32
5465 "0a84jdaj619mb59a46dmkk2sfs42rylqk9ryl1drgs8d3lia79mz"))))
5466 (build-system emacs-build-system)
5467 (home-page "https://github.com/kunalb/poet/")
5468 (synopsis "Emacs theme for prose")
5469 (description
5470 "Emacs has very good support for multiple fonts in a single file. Poet
5471 uses this support to make it much more convenient to write prose within Emacs,
5472 with particular attention paid to @code{org-mode} and @code{markdown-mode}.
5473 Code blocks, tables, etc are formatted in monospace text with the appropriate
5474 backgrounds.")
5475 (license license:expat))))
5476
5477 (define-public emacs-ahungry-theme
5478 (package
5479 (name "emacs-ahungry-theme")
5480 (version "1.10.0")
5481 (source
5482 (origin (method url-fetch)
5483 (uri (string-append "https://elpa.gnu.org/packages/ahungry-theme-"
5484 version ".tar"))
5485 (sha256
5486 (base32
5487 "14q5yw56n82qph09bk7wmj5b1snhh9w0nk5s1l7yn9ldg71xq6pm"))))
5488 (build-system emacs-build-system)
5489 (home-page "https://github.com/ahungry/color-theme-ahungry")
5490 (synopsis "Ahungry color theme for Emacs")
5491 (description "Ahungry theme for Emacs provides bright and bold colors.
5492 If you load it from a terminal, you will be able to make use of the
5493 transparent background. If you load it from a GUI, it will default to a
5494 dark background.")
5495 (license license:gpl3+)))
5496
5497 (define-public emacs-gruvbox-theme
5498 (package
5499 (name "emacs-gruvbox-theme")
5500 (version "1.28.0")
5501 (source (origin
5502 (method git-fetch)
5503 (uri (git-reference
5504 (url "https://github.com/greduan/emacs-theme-gruvbox.git")
5505 (commit version)))
5506 (file-name (git-file-name name version))
5507 (sha256
5508 (base32
5509 "00qq92gp1g55pzm97rh7k0dgxy44pxziridl8kqm4rbpi31r7k9p"))))
5510 (build-system emacs-build-system)
5511 (propagated-inputs
5512 `(("emacs-autothemer" ,emacs-autothemer)))
5513 (home-page "https://github.com/greduan/emacs-theme-gruvbox")
5514 (synopsis "Gruvbox is a retro groove color scheme ported from Vim")
5515 (description
5516 "Gruvbox is heavily inspired by badwolf, jellybeans and solarized.
5517
5518 Designed as a bright theme with pastel 'retro groove' colors and light/dark
5519 mode switching in the way of solarized. The main focus when developing gruvbox
5520 is to keep colors easily distinguishable, contrast enough and still pleasant
5521 for the eyes.")
5522 (license license:expat))) ; MIT license
5523
5524 (define-public emacs-spacegray-theme
5525 (let ((commit "9826265c2bceb2ebc1c5e16a45021da0253ace97")
5526 (revision "0"))
5527 (package
5528 (name "emacs-spacegray-theme")
5529 (version (git-version "0" revision commit))
5530 (source (origin
5531 (method git-fetch)
5532 (uri (git-reference
5533 (url "https://github.com/bruce/emacs-spacegray-theme.git")
5534 (commit commit)))
5535 (file-name (git-file-name name version))
5536 (sha256
5537 (base32
5538 "0aplwmm17ypbns5blc4rf5rr6dasj0zp5ibykpfl43fh4bd8z89n"))))
5539 (build-system emacs-build-system)
5540 (home-page "https://github.com/bruce/emacs-spacegray-theme")
5541 (synopsis "Port of Sublime Text's Spacegray theme for Emacs")
5542 (description
5543 "@code{spacegray-theme} is an Emacs port of the Spacegray theme from
5544 Sublime Text. It features a dark blue/gray background and soft blue, green,
5545 orange and red as accent colors.")
5546 (license license:expat)))) ; MIT license
5547
5548 (define-public emacs-2048-game
5549 (package
5550 (name "emacs-2048-game")
5551 (version "20151026.1233")
5552 (source
5553 (origin
5554 (method url-fetch)
5555 (uri (string-append "https://melpa.org/packages/2048-game-"
5556 version ".el"))
5557 (sha256
5558 (base32
5559 "0gy2pvz79whpavp4jmz8h9krzn7brmvv3diixi1d4w51pcdvaldd"))))
5560 (build-system emacs-build-system)
5561 (home-page "https://bitbucket.org/zck/2048.el")
5562 (synopsis "Implementation of the game 2048 in Emacs Lisp")
5563 (description
5564 "This program is an implementation of 2048 for Emacs.
5565 The goal of this game is to create a tile with value 2048. The size of the
5566 board and goal value can be customized.")
5567 (license license:gpl3+)))
5568
5569 (define-public emacs-4clojure
5570 ;; There is no release. Base version is extracted from Version keyword in
5571 ;; the main file.
5572 (let ((commit "4eccf8c7d4341a36c269451838114b27836699f9")
5573 (revision "1"))
5574 (package
5575 (name "emacs-4clojure")
5576 (version (git-version "0.2.1" revision commit))
5577 (source
5578 (origin
5579 (method git-fetch)
5580 (uri (git-reference
5581 (url "https://github.com/emacsorphanage/4clojure.git")
5582 (commit commit)))
5583 (file-name (git-file-name name version))
5584 (sha256
5585 (base32 "19x653lzc1dxil4ix257hciidbdmbhaxhs6qhlkwi9ygjrlrgvnk"))))
5586 (build-system emacs-build-system)
5587 (propagated-inputs
5588 `(("emacs-request" ,emacs-request)))
5589 (home-page "https://github.com/emacsorphanage/4clojure/")
5590 (synopsis "Open and evaluate 4clojure questions in Emacs")
5591 (description "Emacs 4clojure interacts with
5592 @url{http://www.4clojure.com, 4clojure} problems. You can open a specific
5593 question and move to the next or previous one. You can also verify your
5594 answers.")
5595 (license license:gpl3+))))
5596
5597 (define-public emacs-base16-theme
5598 (package
5599 (name "emacs-base16-theme")
5600 (version "2.2")
5601 (source
5602 (origin
5603 (method git-fetch)
5604 (uri (git-reference
5605 (url "https://github.com/belak/base16-emacs.git")
5606 (commit version)))
5607 (file-name (git-file-name name version))
5608 (sha256
5609 (base32 "01w89g413s1da6rf94y1xnhw79cjy2bqb01yfjs58cy492cm0vr6"))))
5610 (build-system emacs-build-system)
5611 (home-page "https://github.com/belak/base16-emacs")
5612 (synopsis "Base16 color themes for Emacs")
5613 (description
5614 "Base16 provides carefully chosen syntax highlighting and a default set
5615 of sixteen colors suitable for a wide range of applications. Base16 is not a
5616 single theme but a set of guidelines with numerous implementations.")
5617 (license license:expat)))
5618
5619 (define-public emacs-solaire-mode
5620 (package
5621 (name "emacs-solaire-mode")
5622 (version "1.0.9")
5623 (source
5624 (origin
5625 (method git-fetch)
5626 (uri (git-reference
5627 (url "https://github.com/hlissner/emacs-solaire-mode.git")
5628 (commit (string-append "v" version))))
5629 (file-name (git-file-name name version))
5630 (sha256
5631 (base32 "011m4r7s6i9lgjymh7jgq5jwwrpz4vmpvp3c8d4ix96v5hi04kzg"))))
5632 (build-system emacs-build-system)
5633 (home-page "https://github.com/hlissner/emacs-solaire-mode")
5634 (synopsis "Change background of file-visiting buffers in Emacs")
5635 (description
5636 "@code{solaire-mode} is inspired by editors which visually distinguish
5637 code-editing windows from sidebars, popups, terminals, ecetera. It changes the
5638 background of file-visiting buffers (and certain aspects of the UI) to make
5639 them easier to distinguish from other, less important buffers.")
5640 (license license:expat)))
5641
5642 (define-public emacs-prescient
5643 (package
5644 (name "emacs-prescient")
5645 (version "4.1")
5646 (source
5647 (origin
5648 (method git-fetch)
5649 (uri (git-reference
5650 (url "https://github.com/raxod502/prescient.el.git")
5651 (commit (string-append "v" version))))
5652 (file-name (git-file-name name version))
5653 (sha256
5654 (base32 "1rf5cz262hjpck7vpxg15bccdrwrmlhiyxc20liwcjb2ig36nis3"))))
5655 (build-system emacs-build-system)
5656 (propagated-inputs
5657 `(("emacs-company" ,emacs-company)
5658 ("emacs-ivy" ,emacs-ivy)
5659 ("emacs-selectrum" ,emacs-selectrum)))
5660 (home-page "https://github.com/raxod502/prescient.el/")
5661 (synopsis "Emacs library for sorting and filtering candidates")
5662 (description
5663 "Prescient is a library for sorting and filtering, as well as extensions
5664 for Ivy and Company that make use of the library.")
5665 (license license:expat)))
5666
5667 (define-public emacs-selectrum
5668 (package
5669 (name "emacs-selectrum")
5670 (version "1.0")
5671 (source
5672 (origin
5673 (method git-fetch)
5674 (uri (git-reference
5675 (url "https://github.com/raxod502/selectrum.git")
5676 (commit (string-append "v" version))))
5677 (file-name (git-file-name name version))
5678 (sha256
5679 (base32 "105zl102dwbzvk50xh6b824nq6p24kxhky18ghdnk5yi5sv620lm"))))
5680 (build-system emacs-build-system)
5681 (home-page "https://github.com/raxod502/selectrum/")
5682 (synopsis "Incremental narrowing in Emacs")
5683 (description "Selectrum is a solution for incremental narrowing in
5684 Emacs, replacing Helm, Ivy, and IDO. Its design philosophy is based
5685 on choosing the right abstractions and prioritizing consistency and
5686 predictability over special-cased improvements for particular cases.
5687 As such, Selectrum follows existing Emacs conventions where they exist
5688 and are reasonable, and it declines to implement features which have
5689 marginal benefit compared to the additional complexity of a new
5690 interface.")
5691 (license license:expat)))
5692
5693 (define-public emacs-smartparens
5694 (package
5695 (name "emacs-smartparens")
5696 (version "1.11.0")
5697 (source
5698 (origin
5699 (method git-fetch)
5700 (uri (git-reference
5701 (url "https://github.com/Fuco1/smartparens.git")
5702 (commit version)))
5703 (file-name (git-file-name name version))
5704 (sha256
5705 (base32 "0zij2f2rjjym98w68jkp10n1ckpfprlkk217c3fg16hz5nq4vnm6"))))
5706 (build-system emacs-build-system)
5707 (propagated-inputs
5708 `(("emacs-dash" ,emacs-dash)
5709 ("emacs-markdown-mode" ,emacs-markdown-mode)))
5710 (home-page "https://github.com/Fuco1/smartparens")
5711 (synopsis "Paredit-like insertion, wrapping and navigation with user
5712 defined pairs")
5713 (description
5714 "Smartparens is a minor mode for Emacs that deals with parens pairs
5715 and tries to be smart about it. It started as a unification effort to
5716 combine functionality of several existing packages in a single,
5717 compatible and extensible way to deal with parentheses, delimiters, tags
5718 and the like. Some of these packages include autopair, textmate,
5719 wrap-region, electric-pair-mode, paredit and others. With the basic
5720 features found in other packages it also brings many improvements as
5721 well as completely new features.")
5722 (license license:gpl3+)))
5723
5724 (define-public emacs-highlight-symbol
5725 ;; We prefer a more recent commit that provides an option to squelch
5726 ;; echo-area alerts that can drown out useful information like eldoc
5727 ;; messages.
5728 (let ((commit "7a789c779648c55b16e43278e51be5898c121b3a")
5729 (version "1.3")
5730 (revision "1"))
5731 (package
5732 (name "emacs-highlight-symbol")
5733 (version (git-version version revision commit))
5734 (source
5735 (origin
5736 (method git-fetch)
5737 (uri (git-reference
5738 (url "https://github.com/nschum/highlight-symbol.el.git")
5739 (commit commit)))
5740 (file-name (git-file-name name version))
5741 (sha256
5742 (base32 "19cgyk0sh8nsmf3jbi92i8qsdx4l4yilfq5jj9zfdbj9p5gvwx96"))))
5743 (build-system emacs-build-system)
5744 (home-page "https://nschum.de/src/emacs/highlight-symbol/")
5745 (synopsis "Automatic and manual symbol highlighting for Emacs")
5746 (description
5747 "Use @code{highlight-symbol} to toggle highlighting of the symbol at
5748 point throughout the current buffer. Use @code{highlight-symbol-mode} to keep
5749 the symbol at point highlighted.
5750
5751 The functions @code{highlight-symbol-next}, @code{highlight-symbol-prev},
5752 @code{highlight-symbol-next-in-defun} and
5753 @code{highlight-symbol-prev-in-defun} allow for cycling through the locations
5754 of any symbol at point. Use @code{highlight-symbol-nav-mode} to enable key
5755 bindings @code{M-p} and @code{M-p} for navigation. When
5756 @code{highlight-symbol-on-navigation-p} is set, highlighting is triggered
5757 regardless of @code{highlight-symbol-idle-delay}.
5758
5759 @code{highlight-symbol-query-replace} can be used to replace the symbol. ")
5760 (license license:gpl2+))))
5761
5762 (define-public emacs-symbol-overlay
5763 (let ((commit "e40a7c407f24158c45eaa5f54ed41f5e416a51dc")
5764 (revision "1"))
5765 (package
5766 (name "emacs-symbol-overlay")
5767 (version (git-version "4.1" revision commit))
5768 (source
5769 (origin
5770 (method git-fetch)
5771 (uri (git-reference
5772 (url "https://github.com/wolray/symbol-overlay.git")
5773 (commit commit)))
5774 (file-name (git-file-name name version))
5775 (sha256
5776 (base32 "0ibz3392d3jw1l8006h9kf8s7bg6vl7jc92bmqc031a433009ic7"))))
5777 (build-system emacs-build-system)
5778 (home-page "https://github.com/wolray/symbol-overlay")
5779 (synopsis "Highlight symbols and perform various search operations on them")
5780 (description
5781 "This package provides functions for highlighting and navigating
5782 between symbols.")
5783 (license license:gpl3+))))
5784
5785 (define-public emacs-hl-todo
5786 (package
5787 (name "emacs-hl-todo")
5788 (version "3.0.0")
5789 (source (origin
5790 (method git-fetch)
5791 (uri (git-reference
5792 (url "https://github.com/tarsius/hl-todo")
5793 (commit (string-append "v" version))))
5794 (file-name (git-file-name name version))
5795 (sha256
5796 (base32
5797 "07xcc04ivpl5sbgb55qz84mz6wa500h0awzw1zq1ba5mfjjq8hls"))))
5798 (build-system emacs-build-system)
5799 (home-page "https://github.com/tarsius/hl-todo")
5800 (synopsis "Emacs mode to highlight TODO and similar keywords")
5801 (description
5802 "This package provides an Emacs mode to highlight TODO and similar
5803 keywords in comments and strings. This package also provides commands for
5804 moving to the next or previous keyword and to invoke @code{occur} with a
5805 regexp that matches all known keywords.")
5806 (license license:gpl3+)))
5807
5808 (define-public emacs-perspective
5809 (package
5810 (name "emacs-perspective")
5811 (version "2.2")
5812 (source
5813 (origin
5814 (method git-fetch)
5815 (uri (git-reference
5816 (url "https://github.com/nex3/perspective-el.git")
5817 (commit version)))
5818 (file-name (git-file-name name version))
5819 (sha256
5820 (base32
5821 "0pd5sqrrz6y3md20yh6ffy32jdcgb1gc9b4j14pm6r54bqxik68h"))))
5822 (build-system emacs-build-system)
5823 (home-page "https://github.com/nex3/perspective-el")
5824 (synopsis "Switch between named \"perspectives\"")
5825 (description
5826 "This package provides tagged workspaces in Emacs, similar to workspaces in
5827 windows managers such as Awesome and XMonad. @code{perspective.el} provides
5828 multiple workspaces (or \"perspectives\") for each Emacs frame. Each
5829 perspective is composed of a window configuration and a set of buffers.
5830 Switching to a perspective activates its window configuration, and when in a
5831 perspective only its buffers are available by default.")
5832 ;; This package is released under the same license as Emacs (GPLv3+) or
5833 ;; the Expat license.
5834 (license license:gpl3+)))
5835
5836 (define-public emacs-persp-mode
5837 (package
5838 (name "emacs-persp-mode")
5839 (version "2.9.8")
5840 (source
5841 (origin
5842 (method git-fetch)
5843 (uri (git-reference
5844 (url "https://github.com/Bad-ptr/persp-mode.el.git")
5845 (commit (string-append "v" version))))
5846 (file-name (git-file-name name version))
5847 (sha256
5848 (base32
5849 "0b4y7a6j70s9lvr37riyy9k5kh3yvmx0m6nd9c0c8572ji4ij65g"))))
5850 (build-system emacs-build-system)
5851 (home-page "https://github.com/Bad-ptr/persp-mode.el")
5852 (synopsis "Switch between named \"perspectives\" shared among frames")
5853 (description
5854 "This package extends @code{perspective.el} to enable perspectives that
5855 can be saved to and restored from a file.")
5856 (license license:gpl2+)))
5857
5858 (define-public emacs-test-simple
5859 (package
5860 (name "emacs-test-simple")
5861 (version "1.3.0")
5862 (source
5863 (origin
5864 (method url-fetch)
5865 (uri (string-append "https://elpa.gnu.org/packages/test-simple-"
5866 version ".el"))
5867 (sha256
5868 (base32
5869 "1yd61jc9ds95a5n09052kwc5gasy57g4lxr0jsff040brlyi9czz"))))
5870 (build-system emacs-build-system)
5871 (home-page "https://github.com/rocky/emacs-test-simple")
5872 (synopsis "Simple unit test framework for Emacs Lisp")
5873 (description
5874 "Test Simple is a simple unit test framework for Emacs Lisp. It
5875 alleviates the need for context macros, enclosing specifications or required
5876 test tags. It supports both interactive and non-interactive use.")
5877 (license license:gpl3+)))
5878
5879 (define-public emacs-load-relative
5880 (package
5881 (name "emacs-load-relative")
5882 (version "1.3.1")
5883 (source
5884 (origin
5885 (method url-fetch)
5886 (uri (string-append "https://elpa.gnu.org/packages/load-relative-"
5887 version ".el"))
5888 (sha256
5889 (base32 "1m37scr82lqqy954fchjxrmdh4lngrl4d1yzxhp3yfjhsydizhrj"))))
5890 (build-system emacs-build-system)
5891 (home-page "http://github.com/rocky/emacs-load-relative")
5892 (synopsis "Emacs Lisp relative file loading related functions")
5893 (description
5894 "Provides functions which facilitate writing multi-file Emacs packages
5895 and running from the source tree without having to \"install\" code or fiddle
5896 with @{load-path}.
5897
5898 The main function, @code{load-relative}, loads an Emacs Lisp file relative to
5899 another (presumably currently running) Emacs Lisp file.")
5900 (license license:gpl3+)))
5901
5902 (define-public emacs-loc-changes
5903 (package
5904 (name "emacs-loc-changes")
5905 (version "1.2")
5906 (source
5907 (origin
5908 (method url-fetch)
5909 (uri (string-append "https://elpa.gnu.org/packages/loc-changes-"
5910 version ".el"))
5911 (sha256
5912 (base32
5913 "1x8fn8vqasayf1rb8a6nma9n6nbvkx60krmiahyb05vl5rrsw6r3"))))
5914 (build-system emacs-build-system)
5915 (home-page "https://github.com/rocky/emacs-loc-changes")
5916 (synopsis "Keeps track of positions even after buffer changes")
5917 (description
5918 "This Emacs package provides a mean to track important buffer positions
5919 after buffer changes.")
5920 (license license:gpl3+)))
5921
5922 (define-public emacs-realgud
5923 (package
5924 (name "emacs-realgud")
5925 (version "1.5.1")
5926 (source
5927 (origin
5928 (method git-fetch)
5929 (uri (git-reference
5930 (url "https://github.com/realgud/realgud/")
5931 (commit version)))
5932 (sha256
5933 (base32
5934 "1d3s23jk0i34wpyxfajydgyyvsxnpbqrfl0mgydsq7zw2c75ylnq"))
5935 (file-name (git-file-name name version))))
5936 (build-system emacs-build-system)
5937 (arguments
5938 `(#:tests? #t
5939 #:phases
5940 (modify-phases %standard-phases
5941 (add-after 'unpack 'fix-autogen-script
5942 (lambda _
5943 (substitute* "autogen.sh"
5944 (("./configure") "sh configure"))))
5945 (add-after 'fix-autogen-script 'autogen
5946 (lambda _
5947 (setenv "CONFIG_SHELL" "sh")
5948 (invoke "sh" "autogen.sh")))
5949 (add-after 'fix-autogen-script 'set-home
5950 (lambda _
5951 (setenv "HOME" (getenv "TMPDIR"))))
5952 (add-before 'patch-el-files 'remove-realgud-pkg.el
5953 (lambda _
5954 ;; FIXME: `patch-el-files' crashes on this file with error:
5955 ;; unable to locate "bashdb".
5956 (delete-file "./test/test-regexp-bashdb.el"))))
5957 #:include (cons* ".*\\.el$" %default-include)))
5958 (native-inputs
5959 `(("autoconf" ,autoconf)
5960 ("automake" ,automake)
5961 ("emacs-test-simple" ,emacs-test-simple)))
5962 (propagated-inputs
5963 `(("emacs-load-relative" ,emacs-load-relative)
5964 ("emacs-loc-changes" ,emacs-loc-changes)))
5965 (home-page "https://github.com/realgud/realgud/")
5966 (synopsis
5967 "Modular front-end for interacting with external debuggers")
5968 (description
5969 "RealGUD is a modular, extensible GNU Emacs front-end for interacting
5970 with external debuggers. It integrates various debuggers such as gdb, pdb,
5971 ipdb, jdb, lldb, bashdb, zshdb, etc. and allows to visually step code in the
5972 sources. Unlike GUD, it also supports running multiple debug sessions in
5973 parallel.")
5974 (license license:gpl3+)))
5975
5976 (define-public emacs-request
5977 (package
5978 (name "emacs-request")
5979 (version "0.3.2")
5980 (source (origin
5981 (method git-fetch)
5982 (uri (git-reference
5983 (url "https://github.com/tkf/emacs-request.git")
5984 (commit (string-append "v" version))))
5985 (file-name (git-file-name name version))
5986 (sha256
5987 (base32
5988 "1djywhvvb6kwdj0nd3axjvb7k2g06dzkc6hsf29w9rsk96vr8ryl"))))
5989 (build-system emacs-build-system)
5990 (arguments
5991 `(#:tests? #f)) ; requires network access.
5992 (propagated-inputs
5993 `(("emacs-deferred" ,emacs-deferred)))
5994 (home-page "https://github.com/tkf/emacs-request")
5995 (synopsis "Package for speaking HTTP in Emacs Lisp")
5996 (description "This package provides a HTTP request library with multiple
5997 backends. It supports url.el which is shipped with Emacs and the curl command
5998 line program.")
5999 (license license:gpl3+)))
6000
6001 (define-public emacs-rudel
6002 (package
6003 (name "emacs-rudel")
6004 (version "0.3.1")
6005 (source
6006 (origin
6007 (method url-fetch)
6008 (uri (string-append "https://elpa.gnu.org/packages/rudel-"
6009 version ".tar"))
6010 (sha256
6011 (base32
6012 "0glqa68g509p0s2vcc0i8kzlddnc9brd9jqhnm5rzxz4i050cvnz"))))
6013 (build-system emacs-build-system)
6014 (home-page "http://rudel.sourceforge.net/")
6015 (synopsis "Collaborative editing framework")
6016 (description
6017 "Rudel is a collaborative editing environment for GNU Emacs. Its purpose
6018 is to share buffers with other users in order to edit the contents of those
6019 buffers collaboratively. Rudel supports multiple backends to enable
6020 communication with other collaborative editors using different protocols,
6021 though currently Obby (for use with the Gobby editor) is the only
6022 fully-functional one.")
6023 (license license:gpl3+)))
6024
6025 (define-public emacs-hydra
6026 (package
6027 (name "emacs-hydra")
6028 (version "0.15.0")
6029 (source
6030 (origin
6031 (method git-fetch)
6032 (uri (git-reference
6033 (url "https://github.com/abo-abo/hydra")
6034 (commit version)))
6035 (file-name (git-file-name name version))
6036 (sha256
6037 (base32
6038 "0fapvhmhgc9kppf3bvkgry0cd7gyilg7sfvlscfrfjxpx4xvwsfy"))))
6039 (build-system emacs-build-system)
6040 (arguments
6041 `(#:tests? #t
6042 #:test-command '("make" "test")))
6043 (home-page "https://github.com/abo-abo/hydra")
6044 (synopsis "Make Emacs bindings that stick around")
6045 (description
6046 "This package can be used to tie related commands into a family of short
6047 bindings with a common prefix---a Hydra. Once you summon the Hydra (through
6048 the prefixed binding), all the heads can be called in succession with only a
6049 short extension. Any binding that isn't the Hydra's head vanquishes the
6050 Hydra. Note that the final binding, besides vanquishing the Hydra, will still
6051 serve its original purpose, calling the command assigned to it. This makes
6052 the Hydra very seamless; it's like a minor mode that disables itself
6053 automatically.")
6054 (license license:gpl3+)))
6055
6056 (define-public emacs-ivy
6057 (package
6058 (name "emacs-ivy")
6059 (version "0.13.0")
6060 (source
6061 (origin
6062 (method git-fetch)
6063 (uri (git-reference
6064 (url "https://github.com/abo-abo/swiper.git")
6065 (commit version)))
6066 (file-name (git-file-name name version))
6067 (sha256
6068 (base32
6069 "0ghcwrg8a6r5q6fw2x8s08cwlmnz2d8qjhisnjwbnc2l4cgqpd9p"))))
6070 (build-system emacs-build-system)
6071 (arguments
6072 `(#:phases
6073 (modify-phases %standard-phases
6074 (add-after 'install 'install-doc
6075 (lambda* (#:key outputs #:allow-other-keys)
6076 (let* ((out (assoc-ref outputs "out"))
6077 (info (string-append out "/share/info")))
6078 (with-directory-excursion "doc"
6079 (invoke "makeinfo" "ivy.texi")
6080 (install-file "ivy.info" info)
6081 #t))))
6082 (add-before 'check 'make-dummy-git-directory
6083 (lambda _
6084 (mkdir-p ".git")))
6085 (add-after 'check 'delete-dummy-git-directory
6086 (lambda _
6087 (delete-file-recursively ".git"))))
6088 #:tests? #t
6089 #:test-command '("make" "test")))
6090 (propagated-inputs
6091 `(("emacs-hydra" ,emacs-hydra)))
6092 (native-inputs
6093 `(("texinfo" ,texinfo)
6094 ("emacs-wgrep" ,emacs-wgrep)))
6095 (home-page "http://oremacs.com/swiper/")
6096 (synopsis "Incremental vertical completion for Emacs")
6097 (description
6098 "This package provides @code{ivy-read} as an alternative to
6099 @code{completing-read} and similar functions. No attempt is made to determine
6100 the best candidate. Instead, the user can navigate candidates with
6101 @code{ivy-next-line} and @code{ivy-previous-line}. The matching is done by
6102 splitting the input text by spaces and re-building it into a regular
6103 expression.")
6104 (license license:gpl3+)))
6105
6106 (define-public emacs-ivy-xref
6107 (let ((commit "1a35fc0f070388701b05b0a455cbe262e924d547")
6108 (revision "1"))
6109 (package
6110 (name "emacs-ivy-xref")
6111 (version (git-version "0.1" revision commit))
6112 (source
6113 (origin
6114 (method git-fetch)
6115 (uri (git-reference
6116 (url "https://github.com/alexmurray/ivy-xref.git")
6117 (commit commit)))
6118 (file-name (git-file-name name version))
6119 (sha256
6120 (base32
6121 "0d71nm9d9ajp5i6dnl8h1hw9jqp8gd1ajgninb1h13i80rplzl9k"))))
6122 (build-system emacs-build-system)
6123 (propagated-inputs
6124 `(("emacs-ivy" ,emacs-ivy)))
6125 (home-page "https://github.com/alexmurray/ivy-xref")
6126 (synopsis "Ivy interface for @code{xref}")
6127 (description "This package provides an Ivy interface for selecting from
6128 @code{xref} results.")
6129 (license license:gpl3))))
6130
6131 (define-public emacs-ivy-pass
6132 (let ((commit "5b523de1151f2109fdd6a8114d0af12eef83d3c5")
6133 (revision "1"))
6134 (package
6135 (name "emacs-ivy-pass")
6136 (version (git-version "0.1" revision commit))
6137 (source
6138 (origin
6139 (method git-fetch)
6140 (uri (git-reference
6141 (url "https://github.com/ecraven/ivy-pass.git")
6142 (commit commit)))
6143 (file-name (git-file-name name version))
6144 (sha256
6145 (base32
6146 "18crb4zh2pjf0cmv3b913m9vfng27girjwfqc3mk7vqd1r5a49yk"))))
6147 (build-system emacs-build-system)
6148 (propagated-inputs
6149 `(("emacs-ivy" ,emacs-ivy)
6150 ("emacs-password-store" ,emacs-password-store)
6151 ("password-store" ,password-store)))
6152 (home-page "https://github.com/ecraven/ivy-pass")
6153 (synopsis "Ivy interface for password store (pass)")
6154 (description "This package provides an Ivy interface for working with
6155 the password store @code{pass}.")
6156 (license license:gpl3))))
6157
6158 (define-public emacs-ivy-yasnippet
6159 (let ((commit "32580b4fd23ebf9ca7dde96704f7d53df6e253cd")
6160 (revision "2"))
6161 (package
6162 (name "emacs-ivy-yasnippet")
6163 (version (git-version "0.1" revision commit))
6164 (source
6165 (origin
6166 (method git-fetch)
6167 (uri (git-reference
6168 (url "https://github.com/mkcms/ivy-yasnippet.git")
6169 (commit commit)))
6170 (file-name (git-file-name name version))
6171 (sha256
6172 (base32
6173 "1wfg6mmd5gl1qgvayyzpxlkh9s7jgn20y8l1vh1zbj1czvv51xp8"))))
6174 (build-system emacs-build-system)
6175 (propagated-inputs
6176 `(("emacs-ivy" ,emacs-ivy)
6177 ("emacs-yasnippet" ,emacs-yasnippet)
6178 ("emacs-dash" ,emacs-dash)))
6179 (home-page "https://github.com/mkcms/ivy-yasnippet")
6180 (synopsis "Preview @code{yasnippets} with @code{ivy}")
6181 (description "This package allows you to select @code{yasnippet}
6182 snippets using @code{ivy} completion. When current selection changes in the
6183 minibuffer, the snippet contents are temporarily expanded in the buffer. To
6184 use it, call @code{M-x ivy-yasnippet} (but make sure you have enabled
6185 @code{yas-minor-mode} first).")
6186 (license license:gpl3+))))
6187
6188 (define-public emacs-ivy-rich
6189 ;; The latest release version has a small mistake that has since been fixed,
6190 ;; so we use a more recent commit.
6191 (let ((commit "7a667b135983a1f3ad33d6db8514638e2a3bdfb3")
6192 (revision "2"))
6193 (package
6194 (name "emacs-ivy-rich")
6195 (version (git-version "0.1.4" revision commit))
6196 (source
6197 (origin
6198 (method git-fetch)
6199 (uri (git-reference
6200 (url "https://github.com/Yevgnen/ivy-rich.git")
6201 (commit commit)))
6202 (file-name (git-file-name name version))
6203 (sha256
6204 (base32 "1v5j6pak2j1wjw19y7rx9rhxif0bj2h47xyl2knfcl6fi4qiqm9y"))))
6205 (build-system emacs-build-system)
6206 (propagated-inputs
6207 `(("emacs-ivy" ,emacs-ivy)))
6208 (home-page "https://github.com/Yevgnen/ivy-rich")
6209 (synopsis "More friendly interface for @code{ivy}")
6210 (description
6211 "This package extends @code{ivy} by showing more information in the
6212 minibuffer for each candidate. It adds columns showing buffer modes, file
6213 sizes, docstrings, etc. If @code{emacs-all-the-icons} is installed, it can
6214 show icons as well.")
6215 (license license:gpl3+))))
6216
6217 (define-public emacs-avy
6218 (package
6219 (name "emacs-avy")
6220 (version "0.5.0")
6221 (source
6222 (origin
6223 (method git-fetch)
6224 (uri (git-reference
6225 (url "https://github.com/abo-abo/avy.git")
6226 (commit version)))
6227 (file-name (git-file-name name version))
6228 (sha256
6229 (base32 "09qdni1s74i5pv8741szl5g4ynj8fxn0x65qmwa9rmfkbimnc0fs"))))
6230 (build-system emacs-build-system)
6231 (arguments
6232 `(#:tests? #t
6233 #:test-command '("make" "test")))
6234 (home-page "https://github.com/abo-abo/avy")
6235 (synopsis "Tree-based completion for Emacs")
6236 (description
6237 "This package provides a generic completion method based on building a
6238 balanced decision tree with each candidate being a leaf. To traverse the tree
6239 from the root to a desired leaf, typically a sequence of @code{read-key} can
6240 be used.
6241
6242 In order for @code{read-key} to make sense, the tree needs to be visualized
6243 appropriately, with a character at each branch node. So this completion
6244 method works only for things that you can see on your screen, all at once,
6245 such as the positions of characters, words, line beginnings, links, or
6246 windows.")
6247 (license license:gpl3+)))
6248
6249 (define-public emacs-ace-window
6250 (package
6251 (name "emacs-ace-window")
6252 (version "0.10.0")
6253 (source
6254 (origin
6255 (method git-fetch)
6256 (uri (git-reference
6257 (url "https://github.com/abo-abo/ace-window.git")
6258 (commit version)))
6259 (file-name (git-file-name name version))
6260 (sha256
6261 (base32
6262 "0f3r40d5yxp2pm2j0nn86s29nqj8py0jxjbj50v4ci3hsd92d8jl"))))
6263 (build-system emacs-build-system)
6264 (propagated-inputs
6265 `(("emacs-avy" ,emacs-avy)))
6266 (home-page "https://github.com/abo-abo/ace-window")
6267 (synopsis "Quickly switch windows in Emacs")
6268 (description
6269 "@code{ace-window} is meant to replace @code{other-window}.
6270 In fact, when there are only two windows present, @code{other-window} is
6271 called. If there are more, each window will have its first character
6272 highlighted. Pressing that character will switch to that window.")
6273 (license license:gpl3+)))
6274
6275 (define-public emacs-iedit
6276 ;; Last release version was in 2016.
6277 (let ((commit "e2c100cdd67b7d82835d281ac2cd1bf4f374bc8f")
6278 (revision "1"))
6279 (package
6280 (name "emacs-iedit")
6281 (version (git-version "0.9.9.9" revision commit))
6282 (source
6283 (origin
6284 (method git-fetch)
6285 (uri (git-reference
6286 (url "https://github.com/victorhge/iedit.git")
6287 (commit commit)))
6288 (file-name (git-file-name name version))
6289 (sha256
6290 (base32 "0wr3w2id95wx2rma8n1ifjrv9rx37ly26ijc5zi58id0yrip3hnc"))))
6291 (build-system emacs-build-system)
6292 (home-page "https://www.emacswiki.org/emacs/Iedit")
6293 (synopsis "Edit multiple regions in the same way simultaneously")
6294 (description
6295 "This package is an Emacs minor mode and allows you to edit one
6296 occurrence of some text in a buffer (possibly narrowed) or region, and
6297 simultaneously have other occurrences edited in the same way.
6298
6299 You can also use Iedit mode as a quick way to temporarily show only the buffer
6300 lines that match the current text being edited. This gives you the effect of
6301 a temporary @code{keep-lines} or @code{occur}.")
6302 (license license:gpl3+))))
6303
6304 (define-public emacs-zoutline
6305 (package
6306 (name "emacs-zoutline")
6307 (version "0.2.0")
6308 (source
6309 (origin
6310 (method git-fetch)
6311 (uri (git-reference
6312 (url "https://github.com/abo-abo/zoutline")
6313 (commit version)))
6314 (sha256
6315 (base32
6316 "1w0zh6vs7klgivq5r030a82mcfg1zwic4x3fimyiqyg5n8p67hyx"))
6317 (file-name (git-file-name name version))))
6318 (build-system emacs-build-system)
6319 (home-page "https://github.com/abo-abo/zoutline")
6320 (synopsis "Simple outline library")
6321 (description
6322 "This library provides helpers for outlines. Outlines allow users to
6323 navigate code in a tree-like fashion.")
6324 (license license:gpl3+)))
6325
6326 (define-public emacs-lispy
6327 (package
6328 (name "emacs-lispy")
6329 (version "0.27.0")
6330 (home-page "https://github.com/abo-abo/lispy")
6331 (source (origin
6332 (method git-fetch)
6333 (uri (git-reference
6334 (url "https://github.com/abo-abo/lispy")
6335 (commit version)))
6336 (sha256
6337 (base32
6338 "1cm7f4pyl73f3vhkb7ah6bbbrj2sa7n0p31g09k7dy4zgx04bgw6"))
6339 (file-name (git-file-name name version))))
6340 (build-system emacs-build-system)
6341 (propagated-inputs
6342 `(("emacs-ace-window" ,emacs-ace-window)
6343 ("emacs-iedit" ,emacs-iedit)
6344 ("emacs-ivy" ,emacs-ivy)
6345 ("emacs-hydra" ,emacs-hydra)
6346 ("emacs-zoutline" ,emacs-zoutline)))
6347 (native-inputs
6348 `(("emacs-clojure-mode" ,emacs-clojure-mode)
6349 ("emacs-undercover" ,emacs-undercover)))
6350 (arguments
6351 `(#:include (cons* "^lispy-clojure\\.clj$"
6352 "^lispy-python\\.py$"
6353 %default-include)
6354 #:phases
6355 ;; XXX: one failing test involving python evaluation
6356 (modify-phases %standard-phases
6357 (add-before 'check 'make-test-writable
6358 (lambda _
6359 (make-file-writable "lispy-test.el")
6360 #t))
6361 (add-before 'check 'remove-python-eval-test
6362 (lambda _
6363 (emacs-batch-edit-file "lispy-test.el"
6364 `(progn
6365 (progn
6366 (goto-char (point-min))
6367 (re-search-forward
6368 "ert-deftest lispy-eval-python-str")
6369 (beginning-of-line)
6370 (kill-sexp))
6371 (basic-save-buffer)))
6372 #t)))
6373 #:tests? #t
6374 #:test-command '("make" "test")))
6375 (synopsis "Modal S-expression editing")
6376 (description
6377 "Due to the structure of Lisp syntax it's very rare for the programmer
6378 to want to insert characters right before \"(\" or right after \")\". Thus
6379 unprefixed printable characters can be used to call commands when the point is
6380 at one of these special locations. Lispy provides unprefixed keybindings for
6381 S-expression editing when point is at the beginning or end of an
6382 S-expression.")
6383 (license license:gpl3+)))
6384
6385 (define-public emacs-lispyville
6386 (let ((commit "d28b937f0cabd8ce61e2020fe9a733ca80d82c74")
6387 (revision "1"))
6388 (package
6389 (name "emacs-lispyville")
6390 (version (git-version "0.1" revision commit))
6391 (home-page "https://github.com/noctuid/lispyville")
6392 (source (origin
6393 (method git-fetch)
6394 (uri (git-reference (url home-page) (commit commit)))
6395 (sha256
6396 (base32
6397 "0f6srwj1qqkfkbmp5n5pjvi6gm7b7xav05p5hrs2i83rjrakzzqx"))
6398 (file-name (git-file-name name version))))
6399 (propagated-inputs
6400 `(("emacs-evil" ,emacs-evil)
6401 ("emacs-lispy" ,emacs-lispy)))
6402 (build-system emacs-build-system)
6403 (arguments
6404 `(#:phases
6405 ;; XXX: mysterious whitespace issue with one test
6406 (modify-phases %standard-phases
6407 (add-before 'check 'make-test-writable
6408 (lambda _
6409 (make-file-writable "lispyville-test.el")
6410 #t))
6411 (add-after 'make-test-writable 'remove-test
6412 (lambda _
6413 (emacs-batch-edit-file "lispyville-test.el"
6414 `(progn (progn (goto-char (point-min))
6415 (re-search-forward
6416 "ert-deftest lispyville-comment-and-clone-dwim")
6417 (beginning-of-line)
6418 (kill-sexp))
6419 (basic-save-buffer))))))
6420 #:tests? #t
6421 #:test-command '("make" "test")))
6422 (synopsis "Minor mode for integrating Evil with lispy")
6423 (description
6424 "LispyVille's main purpose is to provide a Lisp editing environment
6425 suited towards Evil users. It can serve as a minimal layer on top of lispy
6426 for better integration with Evil, but it does not require the use of lispy’s
6427 keybinding style. The provided commands allow for editing Lisp in normal
6428 state and will work even without lispy being enabled.")
6429 (license license:gpl3+))))
6430
6431 (define-public emacs-lpy
6432 (let ((commit "43b401fe15f0f0d01edb189378b9498121e9f766")
6433 (revision "3"))
6434 (package
6435 (name "emacs-lpy")
6436 (version (git-version "0.1.0" revision commit))
6437 (source
6438 (origin
6439 (method git-fetch)
6440 (uri (git-reference
6441 (url "https://github.com/abo-abo/lpy")
6442 (commit commit)))
6443 (sha256
6444 (base32
6445 "0xj1r7cn1rivaxhvawvmgx9fg3xilpfw4lkf2x2aqplr4s85ijas"))
6446 (file-name (git-file-name name version))))
6447 (propagated-inputs
6448 `(("emacs-zoutline" ,emacs-zoutline)
6449 ("emacs-lispy" ,emacs-lispy)))
6450 (build-system emacs-build-system)
6451 (home-page "https://github.com/abo-abo/lpy")
6452 (synopsis "Modal editing for Python")
6453 (description
6454 "This package provides a minor mode for Python that binds useful
6455 commands to unprefixed keys, such as @code{j} or @code{e}, under certain
6456 circumstances, and leaves the keys untouched outside of those situations,
6457 allowing unprefixed keys to insert their respective characters as expected.")
6458 (license license:gpl3+))))
6459
6460 (define-public emacs-clojure-mode
6461 (package
6462 (name "emacs-clojure-mode")
6463 (version "5.6.1")
6464 (source
6465 (origin
6466 (method git-fetch)
6467 (uri (git-reference
6468 (url "https://github.com/clojure-emacs/clojure-mode.git")
6469 (commit version)))
6470 (file-name (git-file-name name version))
6471 (sha256
6472 (base32 "1qadymqzs5fn1sb347xzfw8lqq6s85vvkh4kzm35m61g5i2lm86y"))))
6473 (build-system emacs-build-system)
6474 (native-inputs
6475 `(("emacs-dash" ,emacs-dash)
6476 ("emacs-s" ,emacs-s)
6477 ("ert-runner" ,emacs-ert-runner)))
6478 (arguments
6479 `(#:tests? #t
6480 #:test-command '("ert-runner")))
6481 (home-page "https://github.com/clojure-emacs/clojure-mode")
6482 (synopsis "Major mode for Clojure code")
6483 (description
6484 "This Emacs package provides font-lock, indentation, navigation and basic
6485 refactoring for the @uref{http://clojure.org, Clojure programming language}.
6486 It is recommended to use @code{clojure-mode} with paredit or smartparens.")
6487 (license license:gpl3+)))
6488
6489 (define-public emacs-epl
6490 (package
6491 (name "emacs-epl")
6492 (version "0.8")
6493 (source
6494 (origin
6495 (method git-fetch)
6496 (uri (git-reference
6497 (url "https://github.com/cask/epl.git")
6498 (commit version)))
6499 (file-name (git-file-name name version))
6500 (sha256
6501 (base32 "0sjxd5y5hxhrbgfkpwx6m724r3841b53hgc61a0g5zwispw5pmrr"))))
6502 (build-system emacs-build-system)
6503 (home-page "https://github.com/cask/epl")
6504 (synopsis "Emacs Package Library")
6505 (description
6506 "A package management library for Emacs, based on @code{package.el}.
6507
6508 The purpose of this library is to wrap all the quirks and hassle of
6509 @code{package.el} into a sane API.")
6510 (license license:gpl3+)))
6511
6512 (define-public emacs-counsel-projectile
6513 (package
6514 (name "emacs-counsel-projectile")
6515 (version "0.3.0")
6516 (source (origin
6517 (method git-fetch)
6518 (uri (git-reference
6519 (url "https://github.com/ericdanan/counsel-projectile")
6520 (commit version)))
6521 (file-name (git-file-name name version))
6522 (sha256
6523 (base32
6524 "1inc4ndl0ysfwvxk4avbgpj4qi9rc93da6476a5c81xmwpsv8wmq"))))
6525 (build-system emacs-build-system)
6526 (propagated-inputs
6527 `(("emacs-ivy" ,emacs-ivy)
6528 ("emacs-projectile" ,emacs-projectile)))
6529 (home-page "https://github.com/ericdanan/counsel-projectile")
6530 (synopsis "Enhance Projectile with Ivy")
6531 (description
6532 "This package uses Ivy to provide additional actions for Projectile
6533 commands and replacements for existing functions.")
6534 (license license:gpl3+)))
6535
6536 (define-public emacs-queue
6537 (package
6538 (name "emacs-queue")
6539 (version "0.2")
6540 (source (origin
6541 (method url-fetch)
6542 (uri (string-append "https://elpa.gnu.org/packages/queue-"
6543 version ".el"))
6544 (sha256
6545 (base32
6546 "0cx2848sqnnkkr4zisvqadzxngjyhmb36mh0q3if7q19yjjhmrkb"))))
6547 (build-system emacs-build-system)
6548 (home-page "http://www.dr-qubit.org/tags/computing-code-emacs.html")
6549 (synopsis "Queue data structure for Emacs")
6550 (description
6551 "This Emacs library provides queue data structure. These queues can be
6552 used both as a first-in last-out (FILO) and as a first-in first-out (FIFO)
6553 stack, i.e. elements can be added to the front or back of the queue, and can
6554 be removed from the front. This type of data structure is sometimes called an
6555 \"output-restricted deque\".")
6556 (license license:gpl3+)))
6557
6558 (define-public emacs-pkg-info
6559 (package
6560 (name "emacs-pkg-info")
6561 (version "0.6")
6562 (source
6563 (origin
6564 (method git-fetch)
6565 (uri (git-reference
6566 (url "https://github.com/lunaryorn/pkg-info.el.git")
6567 (commit version)))
6568 (file-name (git-file-name name version))
6569 (sha256
6570 (base32 "0nk12dcppdyhav6m6yf7abpywyd7amxd4237zsfd32w4zxsx39k1"))))
6571 (build-system emacs-build-system)
6572 (propagated-inputs `(("emacs-epl" ,emacs-epl)))
6573 (home-page "https://github.com/lunaryorn/pkg-info.el")
6574 (synopsis "Information about Emacs packages")
6575 (description
6576 "This library extracts information from the installed Emacs packages.")
6577 (license license:gpl3+)))
6578
6579 (define-public emacs-spinner
6580 (package
6581 (name "emacs-spinner")
6582 (version "1.7.3")
6583 (source (origin
6584 (method url-fetch)
6585 (uri (string-append "https://elpa.gnu.org/packages/spinner-"
6586 version ".el"))
6587 (sha256
6588 (base32
6589 "19kp1mmndbmw11sgvv2ggfjl4pyf5zrsbh3871f0965pw9z8vahd"))))
6590 (build-system emacs-build-system)
6591 (home-page "https://github.com/Malabarba/spinner.el")
6592 (synopsis "Emacs mode-line spinner for operations in progress")
6593 (description
6594 "This Emacs package adds spinners and progress-bars to the mode-line for
6595 ongoing operations.")
6596 (license license:gpl3+)))
6597
6598 (define-public emacs-sparql-mode
6599 (package
6600 (name "emacs-sparql-mode")
6601 (version "2.0.1")
6602 (source
6603 (origin
6604 (method git-fetch)
6605 (uri (git-reference
6606 (url "https://github.com/ljos/sparql-mode.git")
6607 (commit (string-append "v" version))))
6608 (file-name (git-file-name name version))
6609 (sha256
6610 (base32 "0ywhqk6n5k0l85zjwbnrivnvxjzqipqrggv06lify6yv18qmyl6s"))))
6611 (build-system emacs-build-system)
6612 (home-page "https://github.com/ljos/sparql-mode")
6613 (synopsis "SPARQL mode for Emacs")
6614 (description "This package provides a major mode for Emacs that provides
6615 syntax highlighting for SPARQL. It also provides a way to execute queries
6616 against a SPARQL HTTP endpoint, such as is provided by Fuseki. It is also
6617 possible to query other endpoints like DBPedia.")
6618 (license license:gpl3+)))
6619
6620 (define-public emacs-better-defaults
6621 (package
6622 (name "emacs-better-defaults")
6623 (version "0.1.3")
6624 (source
6625 (origin
6626 (method git-fetch)
6627 (uri (git-reference
6628 (url "https://github.com/technomancy/better-defaults")
6629 (commit version)))
6630 (file-name (git-file-name name version))
6631 (sha256
6632 (base32
6633 "1rxznx2l0cdpiz8mad8s6q17m1fngpgb1cki7ch6yh18r3qz8ysr"))))
6634 (build-system emacs-build-system)
6635 (home-page "https://github.com/technomancy/better-defaults")
6636 (synopsis "Better defaults for Emacs")
6637 (description
6638 "Better defaults attempts to address the most obvious deficiencies of the
6639 Emacs default configuration in uncontroversial ways that nearly everyone can
6640 agree upon.")
6641 (license license:gpl3+)))
6642
6643 (define-public emacs-undohist-el
6644 (let ((commit "d2239a5f736724ceb9e3b6bcaa86f4064805cda0")
6645 (revision "1"))
6646 (package
6647 (name "emacs-undohist-el")
6648 (version (git-version "0" revision commit))
6649 (source
6650 (origin
6651 (method git-fetch)
6652 (uri (git-reference
6653 (url "https://github.com/m2ym/undohist-el")
6654 (commit commit)))
6655 (file-name (git-file-name name version))
6656 (sha256
6657 (base32
6658 "1c0daw246ky7b1x5b8h55x79pl1pjqk1k348l487bdd8zdj4w9wx"))
6659 (patches
6660 (search-patches "emacs-undohist-ignored.patch"))))
6661 (build-system emacs-build-system)
6662 (home-page "https://github.com/m2ym/undohist-el")
6663 (synopsis "Save undo history between sessions")
6664 (description "This package allows persistent use of undo history for
6665 individual file buffers.")
6666 (license license:gpl3+))))
6667
6668 (define-public emacs-eprime
6669 (let ((commit "17a481af26496be91c07139a9bfc05cfe722506f"))
6670 (package
6671 (name "emacs-eprime")
6672 (version (string-append "20140513-" (string-take commit 7)))
6673 (source (origin
6674 (method url-fetch)
6675 (uri (string-append "https://raw.githubusercontent.com"
6676 "/AndrewHynes/eprime-mode/"
6677 commit "/eprime-mode.el"))
6678 (file-name (string-append "eprime-" version ".el"))
6679 (sha256
6680 (base32
6681 "0v68lggkyq7kbcr9zyi573m2g2x251xy3jadlaw8kx02l8krwq8d"))))
6682 (build-system emacs-build-system)
6683 (home-page "https://github.com/AndrewHynes/eprime-mode")
6684 (synopsis "E-prime checking mode for Emacs")
6685 (description "This package provides an E-prime checking mode for Emacs
6686 that highlights non-conforming text. The subset of the English language called
6687 E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
6688 (license license:gpl3+))))
6689
6690 (define-public emacs-julia-mode
6691 ;; XXX: Upstream version remained stuck at 0.3. See
6692 ;; <https://github.com/JuliaEditorSupport/julia-emacs/issues/46>.
6693 (let ((commit "115d4dc8a07445301772da8376b232fa8c7168f4")
6694 (revision "1"))
6695 (package
6696 (name "emacs-julia-mode")
6697 (version (string-append "0.3-" revision "." (string-take commit 8)))
6698 (source
6699 (origin
6700 (method git-fetch)
6701 (uri (git-reference
6702 (url "https://github.com/JuliaEditorSupport/julia-emacs.git")
6703 (commit commit)))
6704 (file-name (git-file-name name version))
6705 (sha256
6706 (base32
6707 "1is4dcv6blslpzbjcg8l2jpxi8xj96q4cm0nxjxsyswpm8bw8ki0"))))
6708 (build-system emacs-build-system)
6709 (arguments
6710 `(#:tests? #t
6711 #:test-command '("emacs" "--batch"
6712 "-l" "julia-mode-tests.el"
6713 "-f" "ert-run-tests-batch-and-exit")))
6714 (home-page "https://github.com/JuliaEditorSupport/julia-emacs")
6715 (synopsis "Major mode for Julia")
6716 (description "This Emacs package provides a mode for the Julia
6717 programming language.")
6718 (license license:expat))))
6719
6720 (define-public emacs-smex
6721 (package
6722 (name "emacs-smex")
6723 (version "3.0")
6724 (source (origin
6725 (method url-fetch)
6726 (uri (string-append "https://raw.githubusercontent.com"
6727 "/nonsequitur/smex/" version "/smex.el"))
6728 (file-name (string-append "smex-" version ".el"))
6729 (sha256
6730 (base32
6731 "0ar310zx9k5y4i1vl2rawvi712xj9gx77160860jbs691p77cxqp"))))
6732 (build-system emacs-build-system)
6733 (home-page "https://github.com/nonsequitur/smex/")
6734 (synopsis "M-x interface with Ido-style fuzzy matching")
6735 (description
6736 "Smex is a M-x enhancement for Emacs. Built on top of Ido, it provides a
6737 convenient interface to your recently and most frequently used commands. And
6738 to all the other commands, too.")
6739 (license license:gpl3+)))
6740
6741 (define-public emacs-js2-mode
6742 (package
6743 (name "emacs-js2-mode")
6744 (version "20190219")
6745 (source
6746 (origin
6747 (method git-fetch)
6748 (uri (git-reference
6749 (url "https://github.com/mooz/js2-mode.git")
6750 (commit version)))
6751 (file-name (git-file-name name version))
6752 (sha256
6753 (base32 "0766bbr4piia9vfr4ivd2gwi8dxah654adv6h28ylz4q8xmfzm1b"))))
6754 (build-system emacs-build-system)
6755 (arguments
6756 `(#:tests? #t
6757 #:test-command '("make" "test")))
6758 (home-page "https://github.com/mooz/js2-mode/")
6759 (synopsis "Improved JavaScript editing mode for Emacs")
6760 (description
6761 "Js2-mode provides a JavaScript major mode for Emacs that is more
6762 advanced than the built-in javascript-mode. Features include accurate syntax
6763 highlighting using a recursive-descent parser, on-the-fly reporting of syntax
6764 errors and strict-mode warnings, smart line-wrapping within comments and
6765 strings, and code folding.")
6766 (license license:gpl3+)))
6767
6768 (define-public emacs-nodejs-repl
6769 (package
6770 (name "emacs-nodejs-repl")
6771 (version "0.2.2")
6772 (source (origin
6773 (method git-fetch)
6774 (uri (git-reference
6775 (url "https://github.com/abicky/nodejs-repl.el")
6776 (commit version)))
6777 (file-name (git-file-name name version))
6778 (sha256
6779 (base32
6780 "1kkj888k9x5n0i7xkia177gzsa84my3g8n0n7v65281cc4f1yhk5"))))
6781 (build-system emacs-build-system)
6782 (inputs
6783 `(("node" ,node)))
6784 (native-inputs
6785 `(("emacs-ert-expectations" ,emacs-ert-expectations)))
6786 (arguments
6787 `(#:phases
6788 (modify-phases %standard-phases
6789 (add-after 'unpack 'set-shell
6790 ;; Setting the SHELL environment variable is required for the tests
6791 ;; to find sh.
6792 (lambda _
6793 (setenv "SHELL" (which "sh"))
6794 #t))
6795 (add-after 'unpack 'configure
6796 (lambda* (#:key inputs outputs #:allow-other-keys)
6797 (let ((node (assoc-ref inputs "node")))
6798 ;; Specify the absolute file names of the various
6799 ;; programs so that everything works out-of-the-box.
6800 (make-file-writable "nodejs-repl.el")
6801 (emacs-substitute-variables
6802 "nodejs-repl.el"
6803 ("nodejs-repl-command"
6804 (string-append node "/bin/node")))))))
6805 #:tests? #t
6806 #:test-command '("emacs" "-Q" "--batch"
6807 "-L" "."
6808 "-l" "test/test.el"
6809 "-f" "ert-run-tests-batch-and-exit")))
6810 (home-page "https://github.com/abicky/nodejs-repl.el")
6811 (synopsis "Node.js REPL inside Emacs")
6812 (description
6813 "This program is derived from comint-mode and provides the following
6814 features:
6815
6816 @itemize
6817 @item TAB completion same as Node.js REPL
6818 @item file name completion in string
6819 @item incremental history search
6820 @end itemize")
6821 (license license:gpl3+)))
6822
6823 (define-public emacs-typescript-mode
6824 (package
6825 (name "emacs-typescript-mode")
6826 (version "0.3")
6827 (source (origin
6828 (method git-fetch)
6829 (uri (git-reference
6830 (url "https://github.com/ananthakumaran/typescript.el")
6831 (commit (string-append "v" version))))
6832 (file-name (git-file-name name version))
6833 (sha256
6834 (base32
6835 "002f1xfhq43fjaqliwrgxspryfahpa82va5dw3p8kwil2xwvc6mh"))))
6836 (build-system emacs-build-system)
6837 (home-page "https://github.com/ananthakumaran/typescript.el")
6838 (synopsis "Emacs major mode for editing Typescript code")
6839 (description
6840 "This is based on Karl Landstrom's barebones @code{typescript-mode}.
6841 This is much more robust and works with @code{cc-mode}'s comment
6842 filling (mostly). The modifications to the original @code{javascript.el} mode
6843 mainly consisted in replacing \"javascript\" with \"typescript\"
6844
6845 The main features of this Typescript mode are syntactic highlighting (enabled
6846 with @code{font-lock-mode} or @code{global-font-lock-mode}), automatic
6847 indentation and filling of comments and C preprocessor fontification.")
6848 (license license:gpl3+)))
6849
6850 (define-public emacs-tide
6851 (package
6852 (name "emacs-tide")
6853 (version "3.2.3")
6854 (source (origin
6855 (method git-fetch)
6856 (uri (git-reference
6857 (url "https://github.com/ananthakumaran/tide")
6858 (commit (string-append "v" version))))
6859 (file-name (git-file-name name version))
6860 (sha256
6861 (base32
6862 "19kjq4kr2j853p5qp1s79zxmrfprli82lsnphbrlp9vbnib28xyd"))))
6863 (build-system emacs-build-system)
6864 (propagated-inputs
6865 `(("emacs-dash" ,emacs-dash)
6866 ("emacs-s" ,emacs-s)
6867 ("emacs-flycheck" ,emacs-flycheck)
6868 ("emacs-typescript-mode" ,emacs-typescript-mode)))
6869 (home-page "https://github.com/ananthakumaran/tide")
6870 (synopsis "Typescript IDE for Emacs")
6871 (description
6872 "Tide is an Interactive Development Environment (IDE) for Emacs which
6873 provides the following features:
6874
6875 @itemize
6876 @item ElDoc
6877 @item Auto complete
6878 @item Flycheck
6879 @item Jump to definition, Jump to type definition
6880 @item Find occurrences
6881 @item Rename symbol
6882 @item Imenu
6883 @item Compile On Save
6884 @item Highlight Identifiers
6885 @item Code Fixes
6886 @item Code Refactor
6887 @item Organize Imports
6888 @end itemize")
6889 (license license:gpl3+)))
6890
6891 (define-public emacs-markdown-mode
6892 (package
6893 (name "emacs-markdown-mode")
6894 (version "2.3")
6895 (source (origin
6896 (method git-fetch)
6897 (uri (git-reference
6898 (url "https://github.com/jrblevin/markdown-mode.git")
6899 (commit (string-append "v" version))))
6900 (file-name (git-file-name name version))
6901 (sha256
6902 (base32
6903 "1zm1j4w0f3h01bmmpsv4j4mh6i13nnl8fcqlj2hsa1ncy1lgi8q7"))))
6904 (build-system emacs-build-system)
6905 (home-page "https://jblevins.org/projects/markdown-mode/")
6906 (synopsis "Emacs Major mode for Markdown files")
6907 (description
6908 "Markdown-mode is a major mode for editing Markdown-formatted text files
6909 in Emacs.")
6910 (license license:gpl3+)))
6911
6912 (define-public emacs-evil-markdown
6913 (let ((commit "46cd81b37991c4325fc24015a610f832b0ff995d")
6914 (revision "1"))
6915 (package
6916 (name "emacs-evil-markdown")
6917 (version (git-version "0.0.2" revision commit))
6918 (source (origin
6919 (method git-fetch)
6920 (uri (git-reference
6921 (url "https://github.com/Somelauw/evil-markdown.git")
6922 (commit commit)))
6923 (file-name (git-file-name name version))
6924 (sha256
6925 (base32
6926 "0mad8sp5y9vyk28595qygspnyh8bfmb1fbxjlw70qwc1kdn822n4"))))
6927 (build-system emacs-build-system)
6928 (propagated-inputs
6929 `(("emacs-markdown-mode" ,emacs-markdown-mode)
6930 ("emacs-evil" ,emacs-evil)))
6931 (home-page "http://jblevins.org/projects/evil-markdown/")
6932 (synopsis "Evil keybindings for @code{markdown-mode}")
6933 (description
6934 "This package provides custom text objects and bindings for
6935 @code{markdown-mode}.")
6936 (license license:gpl3+))))
6937
6938 (define-public emacs-edit-indirect
6939 (package
6940 (name "emacs-edit-indirect")
6941 (version "0.1.5")
6942 (source
6943 (origin
6944 (method git-fetch)
6945 (uri (git-reference
6946 (url "https://github.com/Fanael/edit-indirect")
6947 (commit version)))
6948 (file-name (git-file-name name version))
6949 (sha256
6950 (base32
6951 "0by1x53pji39fjrj5bd446kz831nv0vdgw2jqasbym4pc1p2947r"))))
6952 (build-system emacs-build-system)
6953 (home-page "https://github.com/Fanael/edit-indirect")
6954 (synopsis "Edit regions in separate buffers")
6955 (description "This package allows you to edit regions in separate buffers,
6956 like @code{org-edit-src-code} but for arbitrary regions.")
6957 (license license:gpl3+)))
6958
6959 (define-public emacs-projectile
6960 (package
6961 (name "emacs-projectile")
6962 (version "2.1.0")
6963 (source (origin
6964 (method url-fetch)
6965 (uri (string-append "https://raw.githubusercontent.com/bbatsov"
6966 "/projectile/v" version "/projectile.el"))
6967 (file-name (string-append "projectile-" version ".el"))
6968 (sha256
6969 (base32
6970 "1jj9wk91clyph3zmxkd7y7d6gdqmjd1vndhyq5fxp7i7dy013571"))))
6971 (build-system emacs-build-system)
6972 (propagated-inputs
6973 `(("emacs-dash" ,emacs-dash)
6974 ("emacs-pkg-info" ,emacs-pkg-info)))
6975 (home-page "https://github.com/bbatsov/projectile")
6976 (synopsis "Manage and navigate projects in Emacs easily")
6977 (description
6978 "This library provides easy project management and navigation. The
6979 concept of a project is pretty basic - just a folder containing special file.
6980 Currently git, mercurial and bazaar repos are considered projects by default.
6981 If you want to mark a folder manually as a project just create an empty
6982 .projectile file in it.")
6983 (license license:gpl3+)))
6984
6985 (define-public emacs-skeletor
6986 (let ((commit "47c5b761aee8452716c97a69949ac2f675affe13")
6987 (revision "1"))
6988 (package
6989 (name "emacs-skeletor")
6990 (version (git-version "1.6.1" revision commit))
6991 (source (origin
6992 (method git-fetch)
6993 (uri (git-reference
6994 (url "https://github.com/chrisbarrett/skeletor.el.git")
6995 (commit commit)))
6996 (file-name (git-file-name name version))
6997 (sha256
6998 (base32
6999 "12bdgykfh4mwsqdazxjdvha62h3q3v33159ypy91f6x59y01fi0n"))))
7000 (build-system emacs-build-system)
7001 (propagated-inputs
7002 `(("emacs-s" ,emacs-s)
7003 ("emacs-f" ,emacs-f)
7004 ("emacs-dash" ,emacs-dash)
7005 ("emacs-let-alist" ,emacs-let-alist)))
7006 (native-inputs
7007 `(("emacs-ert-runner" ,emacs-ert-runner)))
7008 (arguments
7009 `(#:include (cons "^project-skeletons\\/" %default-include)
7010 ;; XXX: one failing test involving initializing a git repo
7011 #:phases
7012 (modify-phases %standard-phases
7013 (add-before 'check 'make-test-writable
7014 (lambda _
7015 (make-file-writable "test/skeletor-test.el")
7016 #t))
7017 (add-before 'check 'remove-git-test
7018 (lambda _
7019 (emacs-batch-edit-file "test/skeletor-test.el"
7020 `(progn
7021 (progn
7022 (goto-char (point-min))
7023 (re-search-forward
7024 "ert-deftest initialises-git-repo")
7025 (beginning-of-line)
7026 (kill-sexp))
7027 (basic-save-buffer)))
7028 #t)))
7029 #:tests? #t
7030 #:test-command '("ert-runner")))
7031 (home-page "https://github.com/chrisbarrett/skeletor.el")
7032 (synopsis "Project skeletons for Emacs")
7033 (description "This package provides project templates and automates the
7034 mundane parts of setting up a new project, such as version control, licenses,
7035 and tooling.")
7036 (license license:gpl3+))))
7037
7038 (define-public emacs-elfeed
7039 (package
7040 (name "emacs-elfeed")
7041 (version "3.3.0")
7042 (source
7043 (origin
7044 (method git-fetch)
7045 (uri (git-reference
7046 (url "https://github.com/skeeto/elfeed.git")
7047 (commit version)))
7048 (file-name (git-file-name name version))
7049 (sha256
7050 (base32 "0j8a94val4ml7g1vcjgzk1w89h55sxfdrwnncmz6qbh1y2xsz8c5"))))
7051 (build-system emacs-build-system)
7052 (arguments
7053 `(#:tests? #t
7054 #:test-command '("make" "test")))
7055 (home-page "https://github.com/skeeto/elfeed")
7056 (synopsis "Atom/RSS feed reader for Emacs")
7057 (description
7058 "Elfeed is an extensible web feed reader for Emacs, supporting both Atom
7059 and RSS, with a user interface inspired by notmuch.")
7060 (license license:gpl3+)))
7061
7062 (define-public emacs-elfeed-org
7063 (let ((commit "77b6bbf222487809813de260447d31c4c59902c9"))
7064 (package
7065 (name "emacs-elfeed-org")
7066 (version (git-version "0.1" "1" commit))
7067 (source
7068 (origin
7069 (method git-fetch)
7070 (uri (git-reference
7071 (url "https://github.com/remyhonig/elfeed-org.git")
7072 (commit commit)))
7073 (file-name (git-file-name name version))
7074 (sha256
7075 (base32 "0a2ibka82xq1dhy2z7rd2y9zhcj8rna8357881yz49wf55ccgm53"))))
7076 (build-system emacs-build-system)
7077 (propagated-inputs
7078 `(("emacs-elfeed" ,emacs-elfeed)
7079 ("emacs-org" ,emacs-org)
7080 ("emacs-dash" ,emacs-dash)
7081 ("emacs-s" ,emacs-s)))
7082 (native-inputs
7083 `(("ert-runner" ,emacs-ert-runner)
7084 ("emacs-xtest" ,emacs-xtest)))
7085 (arguments
7086 `(#:tests? #t
7087 #:test-command '("ert-runner" "-L" "org-mode/lisp")
7088 #:phases
7089 (modify-phases %standard-phases
7090 (add-before 'check 'chmod
7091 (lambda _
7092 (chmod "test/fixture-mark-feed-ignore.org" #o644)
7093 #t)))))
7094 (home-page "https://github.com/remyhonig/elfeed-org")
7095 (synopsis "Configure Elfeed with an Org-mode file")
7096 (description
7097 "@code{elfeed-org} lets you manage your Elfeed subscriptions
7098 in Org-mode. Maintaining tags for all RSS feeds is cumbersome using
7099 the regular flat list, where there is no hierarchy and tag names are
7100 duplicated a lot. Org-mode makes the book keeping of tags and feeds
7101 much easier.")
7102 (license license:gpl3+))))
7103
7104 (define-public emacs-el-x
7105 (package
7106 (name "emacs-el-x")
7107 (version "0.3.1")
7108 (source (origin
7109 (method git-fetch)
7110 (uri (git-reference
7111 (url "https://github.com/sigma/el-x.git")
7112 (commit (string-append "v" version))))
7113 (file-name (git-file-name name version))
7114 (sha256
7115 (base32
7116 "1i6j44ssxm1xdg0mf91nh1lnprwsaxsx8vsrf720nan7mfr283h5"))))
7117 (build-system emacs-build-system)
7118 (arguments
7119 `(#:phases
7120 (modify-phases %standard-phases
7121 ;; Move the source files to the top level, which is included in
7122 ;; the EMACSLOADPATH.
7123 (add-after 'unpack 'move-source-files
7124 (lambda _
7125 (let ((el-files (find-files "./lisp" ".*\\.el$")))
7126 (for-each (lambda (f)
7127 (rename-file f (basename f)))
7128 el-files))
7129 #t)))))
7130 (home-page "https://github.com/sigma/el-x")
7131 (synopsis "Emacs Lisp extensions")
7132 (description "command@{emacs-el-x} defines the @code{dflet} macro to
7133 provide the historic behavior of @code{flet}, as well as
7134 @code{declare-function} stub for older Emacs.")
7135 (license license:gpl2+)))
7136
7137 (define-public emacs-mocker
7138 (package
7139 (name "emacs-mocker")
7140 (version "0.3.1")
7141 (source (origin
7142 (method git-fetch)
7143 (uri (git-reference
7144 (url "https://github.com/sigma/mocker.el.git")
7145 (commit (string-append "v" version))))
7146 (file-name (git-file-name name version))
7147 (sha256
7148 (base32
7149 "1lav7am41v63xgavq8pr88y828jmd1cxd4prjq7jlbxm6nvrwxh2"))))
7150 (build-system emacs-build-system)
7151 (arguments
7152 `(#:tests? #t
7153 #:test-command '("ert-runner")))
7154 (native-inputs
7155 `(("ert-runner" ,emacs-ert-runner)))
7156 (propagated-inputs
7157 `(("emacs-el-x" ,emacs-el-x)))
7158 (home-page "https://github.com/sigma/mocker.el")
7159 (synopsis "Mocking framework for Emacs Lisp")
7160 (description "Mocker.el is a framework for writing tests in Emacs Lisp.
7161 It uses regular Lisp rather than a domain specific language (DSL), which
7162 maximizes flexibility (at the expense of conciseness).")
7163 (license license:gpl2+)))
7164
7165 (define-public emacs-find-file-in-project
7166 (package
7167 (name "emacs-find-file-in-project")
7168 (version "5.7.7")
7169 (source (origin
7170 (method git-fetch)
7171 (uri (git-reference
7172 (url "https://github.com/technomancy/find-file-in-project.git")
7173 (commit version)))
7174 (file-name (git-file-name name version))
7175 (sha256
7176 (base32
7177 "1skjbh7m0cck2rwmgzrrds51gipqf1jqghyfx15drc1n6kwivx3h"))))
7178 (build-system emacs-build-system)
7179 (arguments
7180 `(#:tests? #t
7181 #:test-command '("ert-runner" "tests")))
7182 (native-inputs
7183 `(("ert-runner" ,emacs-ert-runner)))
7184 (home-page "https://github.com/technomancy/find-file-in-project")
7185 (synopsis "File/directory finder for Emacs")
7186 (description "@code{find-file-in-project} finds files or
7187 directories quickly in the current project. The project root is detected
7188 automatically when Git, Subversion or Mercurial are used. It also provides
7189 functions to assist in reviewing changes on files.")
7190 (license license:gpl3+)))
7191
7192 (define-public emacs-pyvenv
7193 (package
7194 (name "emacs-pyvenv")
7195 (version "1.21")
7196 (source (origin
7197 (method git-fetch)
7198 (uri (git-reference
7199 (url "https://github.com/jorgenschaefer/pyvenv.git")
7200 (commit (string-append "v" version))))
7201 (file-name (git-file-name name version))
7202 (sha256
7203 (base32
7204 "055sgk8zf4wb5nqsf3qasf5gg861zlb1831733f1qcrd2ij5gzxx"))))
7205 (build-system emacs-build-system)
7206 (arguments
7207 `(#:phases
7208 (modify-phases %standard-phases
7209 ;; This phase incorrectly attempts to substitute "activate" and fails
7210 ;; doing so.
7211 (delete 'patch-el-files))
7212 #:tests? #t
7213 #:test-command '("ert-runner")))
7214 (native-inputs
7215 `(("ert-runner" ,emacs-ert-runner)
7216 ("emacs-mocker" ,emacs-mocker)))
7217 (home-page "https://github.com/jorgenschaefer/pyvenv")
7218 (synopsis "Python virtual environment interface for Emacs")
7219 (description "pyvenv.el is a minor mode to support using Python virtual
7220 environments (virtualenv) inside Emacs.")
7221 (license license:gpl3+)))
7222
7223 (define-public emacs-highlight-indent-guides
7224 (let ((version "0.8.5") ; from package metadata
7225 (revision "0")
7226 (commit "c2c9de4d01edfb89609c91d4d7f1d81312015a2c"))
7227 (package
7228 (name "emacs-highlight-indent-guides")
7229 (version (git-version version revision commit))
7230 (source
7231 (origin
7232 (method git-fetch)
7233 (uri (git-reference
7234 (url "https://github.com/DarthFennec/highlight-indent-guides.git")
7235 (commit commit)))
7236 (file-name (git-file-name name version))
7237 (sha256
7238 (base32 "10chvqnmdmkx6i9sigqframr85ziyafiz44glwhvhjajfkv42ad2"))))
7239 (build-system emacs-build-system)
7240 (home-page
7241 "https://github.com/DarthFennec/highlight-indent-guides")
7242 (synopsis "Minor mode to highlight indentation")
7243 (description
7244 "This package provides a minor mode to highlight indentation levels via
7245 font-lock. Indent widths are dynamically discovered, which means this
7246 correctly highlights in any mode, regardless of indent width, even in
7247 languages with non-uniform indentation such as Haskell. This mode works
7248 properly around hard tabs and mixed indentation and behaves well in large
7249 buffers.")
7250 (license license:expat))))
7251
7252 (define-public emacs-highlight-indentation
7253 ;; Last release version is from 2015.
7254 (let ((commit "d03803f2c06749c430443a3d24e039cbafc9c58f")
7255 (revision "1"))
7256 (package
7257 (name "emacs-highlight-indentation")
7258 (version (git-version "0.7.0" revision commit))
7259 (source
7260 (origin
7261 (method git-fetch)
7262 (uri (git-reference
7263 (url "https://github.com/antonj/Highlight-Indentation-for-Emacs.git")
7264 (commit commit)))
7265 (file-name (git-file-name name version))
7266 (sha256
7267 (base32
7268 "1jq0gf4kcx9hvrw40rnw5c2qynjpjw1vsjbi2i4lqjbsnfnxn4wz"))))
7269 (build-system emacs-build-system)
7270 (home-page "https://github.com/antonj/Highlight-Indentation-for-Emacs/")
7271 (synopsis "Highlighting indentation for Emacs")
7272 (description "This package provides two minor modes to highlight
7273 indentation guides in Emacs:
7274
7275 @enumerate
7276 @item @code{highlight-indentation-mode}, which displays guidelines
7277 indentation (space indentation only).
7278 @item @code{highlight-indentation-current-column-mode}, which displays
7279 guidelines for the current-point indentation (space indentation only).
7280 @end enumerate")
7281 (license license:gpl2+))))
7282
7283 (define-public emacs-elpy
7284 (package
7285 (name "emacs-elpy")
7286 (version "1.32.0")
7287 (source (origin
7288 (method git-fetch)
7289 (uri (git-reference
7290 (url "https://github.com/jorgenschaefer/elpy.git")
7291 (commit version)))
7292 (file-name (git-file-name name version))
7293 (sha256
7294 (base32
7295 "0f00mdnzx6xqwni86rgvaa6sfkwyh62xfbwz8qsar15j0j6vc2dj"))))
7296 (build-system emacs-build-system)
7297 (arguments
7298 `(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include)
7299 #:phases
7300 (modify-phases %standard-phases
7301 ;; The default environment of the RPC uses Virtualenv to install
7302 ;; Python dependencies from PyPI. We don't want/need this in Guix.
7303 (add-before 'check 'do-not-use-virtualenv
7304 (lambda _
7305 (setenv "ELPY_TEST_DONT_USE_VIRTUALENV" "1")
7306 (substitute* "elpy-rpc.el"
7307 (("defcustom elpy-rpc-virtualenv-path 'default")
7308 "defcustom elpy-rpc-virtualenv-path 'system"))
7309 #t))
7310 (add-before 'check 'build-doc
7311 (lambda _
7312 (with-directory-excursion "docs"
7313 (invoke "make" "info" "man"))
7314 ;; Move .info file at the root so that it can installed by the
7315 ;; 'move-doc phase.
7316 (rename-file "docs/_build/texinfo/Elpy.info" "Elpy.info")
7317 #t))
7318 (add-after 'build-doc 'install-manpage
7319 (lambda* (#:key outputs #:allow-other-keys)
7320 (let* ((out (assoc-ref outputs "out"))
7321 (man1 (string-append out "/share/man/man1")))
7322 (mkdir-p man1)
7323 (copy-file "docs/_build/man/elpy.1"
7324 (string-append man1 "/elpy.1")))
7325 #t)))
7326 #:tests? #t
7327 #:test-command '("ert-runner")))
7328 (propagated-inputs
7329 `(("emacs-company" ,emacs-company)
7330 ("emacs-find-file-in-project" ,emacs-find-file-in-project)
7331 ("emacs-highlight-indentation" ,emacs-highlight-indentation)
7332 ("emacs-yasnippet" ,emacs-yasnippet)
7333 ("pyvenv" ,emacs-pyvenv)
7334 ("s" ,emacs-s)
7335 ;; The following are recommended Python dependencies that make Elpy
7336 ;; much more useful. Installing these avoids Elpy prompting to install them
7337 ;; from PyPI using pip.
7338 ("python-autopep8" ,python-autopep8)
7339 ("python-black" ,python-black)
7340 ("python-flake8" ,python-flake8)
7341 ("python-jedi" ,python-jedi)
7342 ("python-rope" ,python-rope)
7343 ("python-yapf" ,python-yapf)))
7344 (native-inputs
7345 `(("ert-runner" ,emacs-ert-runner)
7346 ("emacs-f" ,emacs-f)
7347 ("python" ,python-wrapper)
7348 ;; For documentation.
7349 ("python-sphinx" ,python-sphinx)
7350 ("texinfo" ,texinfo)))
7351 (home-page "https://github.com/jorgenschaefer/elpy")
7352 (synopsis "Python development environment for Emacs")
7353 (description "Elpy brings powerful Python editing to Emacs. It combines
7354 and configures a number of other packages written in Emacs Lisp as well as
7355 Python, together offering features such as navigation, documentation,
7356 completion, interactive development and more.")
7357 (license license:gpl3+)))
7358
7359 (define-public emacs-rainbow-delimiters
7360 (package
7361 (name "emacs-rainbow-delimiters")
7362 (version "2.1.4")
7363 (source (origin
7364 (method git-fetch)
7365 (uri (git-reference
7366 (url "https://github.com/Fanael/rainbow-delimiters.git")
7367 (commit version)))
7368 (file-name (git-file-name name version))
7369 (sha256
7370 (base32
7371 "1zr2669savnmkc68hiqsq9wccm6bs1j6jbmlac1xqh6nq7xgq36g"))))
7372 (build-system emacs-build-system)
7373 (home-page "https://github.com/Fanael/rainbow-delimiters")
7374 (arguments
7375 `(#:tests? #t
7376 #:test-command '("emacs" "-Q" "-batch"
7377 "-l" "rainbow-delimiters-test.el"
7378 "-f" "ert-run-tests-batch-and-exit")))
7379 (synopsis "Highlight brackets according to their depth")
7380 (description
7381 "Rainbow-delimiters is a \"rainbow parentheses\"-like mode for Emacs which
7382 highlights parentheses, brackets, and braces according to their depth. Each
7383 successive level is highlighted in a different color, making it easy to spot
7384 matching delimiters, orient yourself in the code, and tell which statements
7385 are at a given level.")
7386 (license license:gpl3+)))
7387
7388 (define-public emacs-rainbow-identifiers
7389 (package
7390 (name "emacs-rainbow-identifiers")
7391 (version "0.2.2")
7392 (source (origin
7393 (method url-fetch)
7394 (uri (string-append "https://raw.githubusercontent.com/Fanael"
7395 "/rainbow-identifiers/" version
7396 "/rainbow-identifiers.el"))
7397 (file-name (string-append "rainbow-identifiers-" version ".el"))
7398 (sha256
7399 (base32
7400 "0325abxj47k0g1i8nqrq70w2wr6060ckhhf92krv1s072b3jzm31"))))
7401 (build-system emacs-build-system)
7402 (home-page "https://github.com/Fanael/rainbow-identifiers")
7403 (synopsis "Highlight identifiers in source code")
7404 (description
7405 "Rainbow identifiers mode is an Emacs minor mode providing highlighting of
7406 identifiers based on their names. Each identifier gets a color based on a hash
7407 of its name.")
7408 (license license:bsd-2)))
7409
7410 (define-public emacs-rainbow-mode
7411 (package
7412 (name "emacs-rainbow-mode")
7413 (version "1.0.2")
7414 (source (origin
7415 (method url-fetch)
7416 (uri (string-append
7417 "https://elpa.gnu.org/packages/rainbow-mode-" version ".el"))
7418 (sha256
7419 (base32
7420 "1zfqj63sr07pdlwy7caz4fxsjhmbhh939n81z6jxq9xggm8ajxkd"))))
7421 (build-system emacs-build-system)
7422 (home-page "https://elpa.gnu.org/packages/rainbow-mode.html")
7423 (synopsis "Colorize color names in buffers")
7424 (description
7425 "This minor mode sets background color to strings that match color
7426 names, e.g. #0000ff is displayed in white with a blue background.")
7427 (license license:gpl3+)))
7428
7429 (define-public emacs-ryo-modal
7430 ;; Package has no release. Version is extracted from "Version:" keyword in
7431 ;; main file.
7432 (let ((commit "3a54312eea7023a86ca3f8eb3c03c872554bff2f")
7433 (revision "0"))
7434 (package
7435 (name "emacs-ryo-modal")
7436 (version (git-version "0.4" revision commit))
7437 (source
7438 (origin
7439 (method git-fetch)
7440 (uri (git-reference
7441 (url "https://github.com/Kungsgeten/ryo-modal.git")
7442 (commit commit)))
7443 (file-name (git-file-name name version))
7444 (sha256
7445 (base32 "1cyvp3bi6yhckbdnq98xvghmhdzghya5y9wd7hxjawibs75rza95"))))
7446 (build-system emacs-build-system)
7447 (home-page "http://github.com/Kungsgeten/ryo-modal")
7448 (synopsis "Emacs minor mode for defining modal editing environments")
7449 (description "RYO modal provides a convenient way of defining modal
7450 keybindings in Emacs, and does not come with any predefined bindings.")
7451 (license license:expat))))
7452
7453 (define-public emacs-visual-fill-column
7454 (package
7455 (name "emacs-visual-fill-column")
7456 (version "1.11")
7457 (source (origin
7458 (method url-fetch)
7459 (uri (string-append "https://codeload.github.com/joostkremers/"
7460 "visual-fill-column/tar.gz/" version))
7461 (file-name (string-append name "-" version ".tar.gz"))
7462 (sha256
7463 (base32
7464 "13jnviakp607zcms7f8ams56mr8wffnq1pghlc6fvqs39663pgwh"))))
7465 (build-system emacs-build-system)
7466 (home-page "https://github.com/joostkremers/visual-fill-column")
7467 (synopsis "Fill-column for visual-line-mode")
7468 (description
7469 "@code{visual-fill-column-mode} is a small Emacs minor mode that mimics
7470 the effect of @code{fill-column} in @code{visual-line-mode}. Instead of
7471 wrapping lines at the window edge, which is the standard behaviour of
7472 @code{visual-line-mode}, it wraps lines at @code{fill-column}. If
7473 @code{fill-column} is too large for the window, the text is wrapped at the
7474 window edge.")
7475 (license license:gpl3+)))
7476
7477 (define-public emacs-writeroom
7478 (package
7479 (name "emacs-writeroom")
7480 (version "3.9")
7481 (source
7482 (origin
7483 (method git-fetch)
7484 (uri (git-reference
7485 (url "https://github.com/joostkremers/writeroom-mode.git")
7486 (commit version)))
7487 (file-name (git-file-name name version))
7488 (sha256
7489 (base32
7490 "1nrppnfqsaki6myp58w8jhmzb94rzskh5n98glcn4ghr8sqnafi8"))))
7491 (build-system emacs-build-system)
7492 (propagated-inputs
7493 `(("emacs-visual-fill-column" ,emacs-visual-fill-column)))
7494 (home-page "https://github.com/joostkremers/writeroom-mode")
7495 (synopsis "Distraction-free writing for Emacs")
7496 (description
7497 "This package defines a minor mode for distraction-free writing. Some of
7498 the default effects include entering fullscreen, deleting other windows of the
7499 current frame, disabling the mode line, and adding margins to the buffer that
7500 restrict the text width to 80 characters.")
7501 (license license:bsd-3)))
7502
7503 (define-public emacs-ido-completing-read+
7504 (package
7505 (name "emacs-ido-completing-read+")
7506 (version "3.12")
7507 (source (origin
7508 (method url-fetch)
7509 (uri (string-append "https://raw.githubusercontent.com"
7510 "/DarwinAwardWinner/ido-ubiquitous/v"
7511 version "/ido-completing-read+.el"))
7512 (file-name (string-append "ido-completing-read+-" version ".el"))
7513 (sha256
7514 (base32
7515 "1cyalb0p7nfsm4n6n9q6rjmvn6adqc0fq8ybnlj3n41n289dkfjf"))))
7516 (build-system emacs-build-system)
7517 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
7518 (synopsis "Replacement for completing-read using ido")
7519 (description
7520 "The ido-completing-read+ function is a wrapper for ido-completing-read.
7521 Importantly, it detects edge cases that ordinary ido cannot handle and either
7522 adjusts them so ido can handle them, or else simply falls back to the standard
7523 Emacs completion function instead.")
7524 (license license:gpl3+)))
7525
7526 (define-public emacs-ido-ubiquitous
7527 (package
7528 (name "emacs-ido-ubiquitous")
7529 (version "3.12")
7530 (source (origin
7531 (method url-fetch)
7532 (uri (string-append "https://raw.githubusercontent.com"
7533 "/DarwinAwardWinner/ido-ubiquitous/v"
7534 version "/ido-ubiquitous.el"))
7535 (file-name (string-append "ido-ubiquitous-" version ".el"))
7536 (sha256
7537 (base32
7538 "197ypji0fb6jsdcq40rpnknwlh3imas6s6jbsvkfm0pz9988c3q2"))))
7539 (build-system emacs-build-system)
7540 (propagated-inputs
7541 `(("emacs-ido-completing-read+" ,emacs-ido-completing-read+)))
7542 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
7543 (synopsis "Use ido (nearly) everywhere")
7544 (description
7545 "Ido-ubiquitous enables ido-style completion for almost every function
7546 that uses the standard completion function completing-read.")
7547 (license license:gpl3+)))
7548
7549 (define-public emacs-yaml-mode
7550 (package
7551 (name "emacs-yaml-mode")
7552 (version "0.0.14")
7553 (source (origin
7554 (method git-fetch)
7555 (uri (git-reference
7556 (url "https://github.com/yoshiki/yaml-mode.git")
7557 (commit version)))
7558 (file-name (git-file-name name version))
7559 (sha256
7560 (base32
7561 "18g064ardqi1f3xz7j6rs1x9fvv9sn0iq9vgid8c6qvxq7gwj00r"))))
7562 (build-system emacs-build-system)
7563 (home-page "https://github.com/yoshiki/yaml-mode")
7564 (synopsis "Major mode for editing YAML files")
7565 (description
7566 "Yaml-mode is an Emacs major mode for editing files in the YAML data
7567 serialization format. It was initially developed by Yoshiki Kurihara and many
7568 features were added by Marshall Vandegrift. As YAML and Python share the fact
7569 that indentation determines structure, this mode provides indentation and
7570 indentation command behavior very similar to that of python-mode.")
7571 (license license:gpl3+)))
7572
7573 (define-public emacs-gitlab-ci-mode
7574 (package
7575 (name "emacs-gitlab-ci-mode")
7576 (version "20190425.11.10")
7577 (source (origin
7578 (method git-fetch)
7579 (uri (git-reference
7580 (url "https://gitlab.com/joewreschnig/gitlab-ci-mode.git")
7581 (commit (string-append "v" version))))
7582 (file-name (git-file-name name version))
7583 (sha256
7584 (base32
7585 "1jkp9mnbiccqnha9zs646znqyqvy5jjb81kah7ghbkzdqqk2avm0"))))
7586 (build-system emacs-build-system)
7587 (propagated-inputs
7588 `(("emacs-yaml-mode" ,emacs-yaml-mode)))
7589 (home-page "https://gitlab.com/joewreschnig/gitlab-ci-mode/")
7590 (synopsis "Emacs mode for editing GitLab CI files")
7591 (description
7592 "@code{gitlab-ci-mode} is an Emacs major mode for editing GitLab CI
7593 files. It provides syntax highlighting and completion for keywords and
7594 special variables. An interface to GitLab’s CI file linter is also provided
7595 via @code{gitlab-ci-lint}.")
7596 (license license:gpl3+)))
7597
7598 (define-public emacs-gitlab-snip-helm
7599 (package
7600 (name "emacs-gitlab-snip-helm")
7601 (version "0.0.2")
7602 (source (origin
7603 (method git-fetch)
7604 (uri (git-reference
7605 (url "https://gitlab.com/sasanidas/gitlab-snip-helm.git")
7606 (commit version)))
7607 (file-name (git-file-name name version))
7608 (sha256
7609 (base32
7610 "1c5js19zyb1z61hapvbfcl5jhrjqij46cxldgqij6al0scw44dga"))))
7611 (build-system emacs-build-system)
7612 (propagated-inputs
7613 `(("emacs-dash" ,emacs-dash)
7614 ("emacs-helm" ,emacs-helm)))
7615 (home-page "https://gitlab.com/sasanidas/gitlab-snip-helm/")
7616 (synopsis "GitLab snippet API interaction for Emacs")
7617 (description "This package provides GitLab snippet API interaction for
7618 Emacs.")
7619 (license license:gpl3+)))
7620
7621 (define-public emacs-web-mode
7622 (package
7623 (name "emacs-web-mode")
7624 (version "17")
7625 (source
7626 (origin
7627 (method git-fetch)
7628 (uri (git-reference
7629 (url "https://github.com/fxbois/web-mode.git")
7630 (commit (string-append "v" version))))
7631 (file-name (git-file-name name version))
7632 (sha256
7633 (base32 "0jr5a1nzp8nbdng0k2fcaymiiv9ngrbknbrqaswgqn3akvx793jk"))))
7634 (build-system emacs-build-system)
7635 (synopsis "Major mode for editing web templates")
7636 (description "Web mode is an Emacs major mode for editing web templates
7637 aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by
7638 client/server side engines). Web mode is compatible with many template
7639 engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker,
7640 Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template,
7641 Dust.js, React/JSX, Angularjs, ejs, etc.")
7642 (home-page "http://web-mode.org/")
7643 (license license:gpl3+)))
7644
7645 (define-public emacs-wgrep
7646 (package
7647 (name "emacs-wgrep")
7648 (version "2.3.2")
7649 (source (origin
7650 (method git-fetch)
7651 (uri (git-reference
7652 (url "https://github.com/mhayashi1120/Emacs-wgrep")
7653 (commit version)))
7654 (file-name (git-file-name name version))
7655 (sha256
7656 (base32
7657 "00cwqzb94jlq4mwgv8z7r3mn0a6mhq95z6j189kacq9g4473zh8d"))))
7658 (build-system emacs-build-system)
7659 (home-page "https://github.com/mhayashi1120/Emacs-wgrep")
7660 (synopsis "Edit a grep buffer and apply those changes to the files")
7661 (description
7662 "Emacs wgrep allows you to edit a grep buffer and apply those changes
7663 to the file buffer. Several backends are supported beside the classic grep:
7664 ack, ag, helm and pt.")
7665 (license license:gpl3+)))
7666
7667 (define-public emacs-helm
7668 (package
7669 (name "emacs-helm")
7670 (version "3.6.0")
7671 (source
7672 (origin
7673 (method git-fetch)
7674 (uri (git-reference
7675 (url "https://github.com/emacs-helm/helm.git")
7676 (commit (string-append "v" version))))
7677 (file-name (git-file-name name version))
7678 (sha256
7679 (base32 "0miq2q52pbicijp7pmj0widk252qixswywc03d120s4hya2b7vd7"))))
7680 (build-system emacs-build-system)
7681 (propagated-inputs
7682 `(("emacs-async" ,emacs-async)
7683 ("emacs-popup" ,emacs-popup)))
7684 (home-page "https://emacs-helm.github.io/helm/")
7685 (synopsis "Incremental completion and selection narrowing
7686 framework for Emacs")
7687 (description "Helm is incremental completion and selection narrowing
7688 framework for Emacs. It will help steer you in the right direction when
7689 you're looking for stuff in Emacs (like buffers, files, etc). Helm is a fork
7690 of @code{anything.el} originally written by Tamas Patrovic and can be
7691 considered to be its successor. Helm sets out to clean up the legacy code in
7692 @code{anything.el} and provide a cleaner, leaner and more modular tool, that's
7693 not tied in the trap of backward compatibility.")
7694 (license license:gpl3+)))
7695
7696 (define-public emacs-helm-org
7697 (let ((commit "8457e1e46227bf87726e05c42cec5a4b51c2ef7b")
7698 (revision "3"))
7699 (package
7700 (name "emacs-helm-org")
7701 (version (git-version "1.0" revision commit))
7702 (source
7703 (origin
7704 (method git-fetch)
7705 (uri (git-reference
7706 (url "https://github.com/emacs-helm/helm-org.git")
7707 (commit commit)))
7708 (file-name (git-file-name name version))
7709 (sha256
7710 (base32 "0kcjhwwi492n9m2w894hvdavfvhj45zygy7bwvx103wvpay5h6h6"))))
7711 (build-system emacs-build-system)
7712 (propagated-inputs
7713 `(("emacs-helm" ,emacs-helm)))
7714 (home-page "https://github.com/emacs-helm/helm-org")
7715 (synopsis "Helm interface to the Silver Searcher")
7716 (description
7717 "This package provides a frontend for grepping tools like ag and ack,
7718 as well as features for editing search results.")
7719 (license license:gpl3+))))
7720
7721 (define-public emacs-helm-swoop
7722 (package
7723 (name "emacs-helm-swoop")
7724 (version "2.0.0")
7725 (source
7726 (origin
7727 (method git-fetch)
7728 (uri (git-reference
7729 (url "https://github.com/emacsorphanage/helm-swoop.git")
7730 (commit version)))
7731 (file-name (git-file-name name version))
7732 (sha256
7733 (base32 "0k0ns92g45x8dbymqpl6ylk5mj3wiw2h03f48q5cy1z8in0c4rjd"))))
7734 (build-system emacs-build-system)
7735 (propagated-inputs
7736 `(("emacs-helm" ,emacs-helm)))
7737 (home-page "https://github.com/emacsorphanage/helm-swoop")
7738 (synopsis "Filter and jump to lines in an Emacs buffer using Helm")
7739 (description
7740 "This package builds on the Helm interface to provide several commands
7741 for search-based navigation of buffers.")
7742 (license license:gpl2+)))
7743
7744 (define-public emacs-helm-ag
7745 (package
7746 (name "emacs-helm-ag")
7747 (version "0.59")
7748 (source
7749 (origin
7750 (method git-fetch)
7751 (uri (git-reference
7752 (url "https://github.com/syohex/emacs-helm-ag.git")
7753 (commit version)))
7754 (file-name (git-file-name name version))
7755 (sha256
7756 (base32 "0vsz2b5qw4qahlf74059z4p1grinhfz28f0psw4c3qf4jasv3b9j"))))
7757 (build-system emacs-build-system)
7758 (propagated-inputs
7759 `(("emacs-helm" ,emacs-helm)))
7760 (home-page "https://github.com/syohex/emacs-helm-ag")
7761 (synopsis "Helm interface to the Silver Searcher")
7762 (description
7763 "This package provides a frontend for grepping tools like ag and ack,
7764 as well as features for editing search results.")
7765 (license license:gpl3+)))
7766
7767 ;; There hasn't been a tag or release since 2016, so we take the latest
7768 ;; commit.
7769 (define-public emacs-helm-projectile
7770 (let ((commit "5328b74dddcee8d1913803ca8167868831a07463")
7771 (version "0.14.0")
7772 (revision "1"))
7773 (package
7774 (name "emacs-helm-projectile")
7775 (version (git-version version revision commit))
7776 (source
7777 (origin
7778 (method git-fetch)
7779 (uri (git-reference
7780 (url "https://github.com/bbatsov/helm-projectile.git")
7781 (commit commit)))
7782 (file-name (git-file-name name version))
7783 (sha256
7784 (base32 "0a811cblrvc8llpv771b8dppgxs6bwjyvjy3qn2xns4nigvn93s0"))))
7785 (build-system emacs-build-system)
7786 (propagated-inputs
7787 `(("emacs-helm" ,emacs-helm)
7788 ("emacs-projectile" ,emacs-projectile)))
7789 (home-page "https://github.com/bbatsov/helm-projectile")
7790 (synopsis "Helm integration for Projectile")
7791 (description
7792 "This Emacs library provides a Helm interface for Projectile.")
7793 (license license:gpl3+))))
7794
7795 (define-public emacs-taskrunner
7796 (let ((commit "3afd4a546d42339543d3d4e51b175fc3e82b3358")
7797 (revision "1"))
7798 (package
7799 (name "emacs-taskrunner")
7800 (version (git-version "0.6" revision commit))
7801 (source
7802 (origin
7803 (method git-fetch)
7804 (uri (git-reference
7805 (url "https://github.com/emacs-taskrunner/emacs-taskrunner.git")
7806 (commit commit)))
7807 (file-name (git-file-name name version))
7808 (sha256
7809 (base32
7810 "1lkdvmjn3alhqxq2i64sdr977sbw3g0b2670d9bwyzi67qh0jxrv"))))
7811 (build-system emacs-build-system)
7812 (propagated-inputs
7813 `(("emacs-async" ,emacs-async)
7814 ("emacs-projectile" ,emacs-projectile)))
7815 (home-page "https://github.com/emacs-taskrunner/emacs-taskrunner")
7816 (synopsis "Retrieve tasks from various build systems and task-runners")
7817 (description "This package parses Makefiles and build-system files for
7818 multiple project types.")
7819 (license license:gpl3+))))
7820
7821 (define-public emacs-ivy-taskrunner
7822 (let ((commit "75d8d67cfe3c29663fe0f5508a887adf40ed5162")
7823 (revision "1"))
7824 (package
7825 (name "emacs-ivy-taskrunner")
7826 (version (git-version "0.9" revision commit))
7827 (source
7828 (origin
7829 (method git-fetch)
7830 (uri (git-reference
7831 (url "https://github.com/emacs-taskrunner/ivy-taskrunner.git")
7832 (commit commit)))
7833 (file-name (git-file-name name version))
7834 (sha256
7835 (base32
7836 "1wf4s4k0ap21f7g5w6128an8nsvbja7f5n889vcml5b6gjz058db"))))
7837 (build-system emacs-build-system)
7838 (propagated-inputs
7839 `(("emacs-ivy" ,emacs-ivy)
7840 ("emacs-taskrunner" ,emacs-taskrunner)
7841 ("emacs-projectile" ,emacs-projectile)))
7842 (home-page "https://github.com/emacs-taskrunner/ivy-taskrunner")
7843 (synopsis "Retrieve build-system tasks using Ivy")
7844 (description "This package provides an Ivy interface for selecting
7845 Makefile targets.")
7846 (license license:gpl3+))))
7847
7848 (define-public emacs-helm-taskrunner
7849 (let ((commit "1910dac19cbc7bd4fd08b0faf9affd455339fbea")
7850 (revision "1"))
7851 (package
7852 (name "emacs-helm-taskrunner")
7853 (version (git-version "0.9" revision commit))
7854 (source
7855 (origin
7856 (method git-fetch)
7857 (uri (git-reference
7858 (url "https://github.com/emacs-taskrunner/helm-taskrunner.git")
7859 (commit commit)))
7860 (file-name (git-file-name name version))
7861 (sha256
7862 (base32
7863 "182lmr858fx6rdhp1fy7kv8dvrhzcnxzwfck1q22s6xs8x85d5q7"))))
7864 (build-system emacs-build-system)
7865 (propagated-inputs
7866 `(("emacs-helm" ,emacs-helm)
7867 ("emacs-taskrunner" ,emacs-taskrunner)
7868 ("emacs-projectile" ,emacs-projectile)))
7869 (home-page "https://github.com/emacs-taskrunner/helm-taskrunner")
7870 (synopsis "Retrieve build-system tasks using Helm")
7871 (description "This package provides a Helm interface for selecting
7872 Makefile targets.")
7873 (license license:gpl3+))))
7874
7875 (define-public emacs-helm-make
7876 (let ((commit "feae8df22bc4b20705ea08ac9adfc2b43bb348d0")
7877 (revision "1"))
7878 (package
7879 (name "emacs-helm-make")
7880 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
7881 (source
7882 (origin
7883 (method git-fetch)
7884 (uri (git-reference
7885 (url "https://github.com/abo-abo/helm-make.git")
7886 (commit commit)))
7887 (file-name (git-file-name name version))
7888 (sha256
7889 (base32
7890 "1y2v77mmd1bfkkz51cnk1l0dg3lvvxc39wlamnm7wjns66dbvlam"))))
7891 (build-system emacs-build-system)
7892 (propagated-inputs
7893 `(("emacs-helm" ,emacs-helm)
7894 ("emacs-projectile" ,emacs-projectile)))
7895 (home-page "https://github.com/abo-abo/helm-make")
7896 (synopsis "Select a Makefile target with helm")
7897 (description "@code{helm-make} or @code{helm-make-projectile} will give
7898 you a @code{helm} selection of directory Makefile's targets. Selecting a
7899 target will call @code{compile} on it.")
7900 (license license:gpl3+))))
7901
7902 (define-public emacs-cider
7903 (package
7904 (name "emacs-cider")
7905 (version "0.23.0")
7906 (source
7907 (origin
7908 (method git-fetch)
7909 (uri (git-reference
7910 (url "https://github.com/clojure-emacs/cider.git")
7911 (commit (string-append "v" version))))
7912 (file-name (git-file-name name version))
7913 (sha256
7914 (base32
7915 "05yjkqc6d4grq9z5pxmv3anqh4zlhfg4v46jlccp6ynh030g7axs"))))
7916 (build-system emacs-build-system)
7917 (arguments
7918 '(#:exclude ; Don't exclude 'cider-test.el'.
7919 '("^\\.dir-locals\\.el$" "^test/")))
7920 (propagated-inputs
7921 `(("emacs-clojure-mode" ,emacs-clojure-mode)
7922 ("emacs-sesman" ,emacs-sesman)
7923 ("emacs-seq" ,emacs-seq)
7924 ("emacs-spinner" ,emacs-spinner)
7925 ("emacs-parseedn" ,emacs-parseedn)
7926 ("emacs-pkg-info" ,emacs-pkg-info)
7927 ("emacs-queue" ,emacs-queue)))
7928 (home-page "https://cider.mx/")
7929 (synopsis "Clojure development environment for Emacs")
7930 (description
7931 "CIDER (Clojure Interactive Development Environment that Rocks) aims to
7932 provide an interactive development experience similar to the one you'd get
7933 when programming in Emacs Lisp, Common Lisp (with SLIME or Sly), Scheme (with
7934 Geiser) and Smalltalk.
7935
7936 CIDER is the successor to the now deprecated combination of using SLIME +
7937 swank-clojure for Clojure development.
7938
7939 There are plenty of differences between CIDER and SLIME, but the core ideas
7940 are pretty much the same (and SLIME served as the principle inspiration for
7941 CIDER).")
7942 (license license:gpl3+)))
7943
7944 ;; There hasn't been a tag or release since 2016, so we take the latest
7945 ;; commit.
7946 (define-public emacs-sly
7947 (let ((commit "86a63df73360be51529806c7ed9b775b3f02284d")
7948 (revision "4"))
7949 (package
7950 (name "emacs-sly")
7951 (version (git-version "1.0.0" revision commit))
7952 (source
7953 (origin
7954 (method git-fetch)
7955 (uri (git-reference
7956 (url "https://github.com/joaotavora/sly.git")
7957 (commit commit)))
7958 (file-name (git-file-name name version))
7959 (sha256
7960 (base32
7961 "0sx6fdckcfcld41db0695svvlvllnfaazwx513686gnykwfd209n"))))
7962 (build-system emacs-build-system)
7963 (native-inputs
7964 `(("texinfo" ,texinfo)))
7965 (arguments
7966 `(#:include (cons* "^contrib\\/" "^lib\\/" "^slynk\\/" %default-include)
7967 #:phases
7968 ;; The package provides autoloads.
7969 (modify-phases %standard-phases
7970 (delete 'make-autoloads)
7971 (add-before 'install 'install-doc
7972 (lambda* (#:key outputs #:allow-other-keys)
7973 (let* ((out (assoc-ref outputs "out"))
7974 (info-dir (string-append out "/share/info"))
7975 (doc-dir (string-append out "/share/doc/"
7976 ,name "-" ,version))
7977 (doc-files '(;; "doc/sly-refcard.pdf" ; See sly-refcard.pdf below.
7978 "README.md" "NEWS.md" "PROBLEMS.md"
7979 "CONTRIBUTING.md")))
7980 (with-directory-excursion "doc"
7981 (substitute* "Makefile"
7982 (("infodir=/usr/local/info")
7983 (string-append "infodir=" info-dir))
7984 ;; Don't rebuild contributors.texi since we are not in
7985 ;; the git repo.
7986 (("contributors.texi: Makefile texinfo-tabulate.awk")
7987 "contributors.texi:"))
7988 (invoke "make" "html/index.html")
7989 (invoke "make" "sly.info")
7990 ;; TODO: We need minimal texlive with "preprint" package
7991 ;; (for fullpage.sty). (invoke "make" "sly-refcard.pdf")
7992 (install-file "sly.info" info-dir)
7993 (copy-recursively "html" (string-append doc-dir "/html")))
7994 (for-each (lambda (f)
7995 (install-file f doc-dir)
7996 (delete-file f))
7997 doc-files)
7998 (delete-file-recursively "doc")
7999 #t))))))
8000 (home-page "https://github.com/joaotavora/sly")
8001 (synopsis "Sylvester the Cat's Common Lisp IDE")
8002 (description
8003 "SLY is Sylvester the Cat's Common Lisp IDE. SLY is a fork of SLIME, and
8004 contains the following improvements over it:
8005
8006 @enumerate
8007 @item Completely redesigned REPL based on Emacs's own full-featured
8008 @code{comint.el}.
8009 @item Live code annotations via a new @code{sly-stickers} contrib.
8010 @item Consistent interactive button interface. Everything can be copied to
8011 the REPL.
8012 @item Multiple inspectors with independent history.
8013 @item Regexp-capable @code{M-x sly-apropos}.
8014 @item Contribs are first class SLY citizens and enabled by default.
8015 @item Use ASDF to loads contribs on demand.
8016 @end enumerate
8017
8018 SLY tracks SLIME's bugfixes and all its familiar features (debugger, inspector,
8019 xref, etc...) are still available, but with better integration.")
8020 (license license:gpl3+))))
8021
8022 (define-public emacs-sly-quicklisp
8023 (let ((commit "01ebe3976a244309f2e277c09206831135a0b66c")
8024 (revision "1"))
8025 (package
8026 (name "emacs-sly-quicklisp")
8027 (version (git-version "0.0.0" revision commit))
8028 (home-page "https://github.com/joaotavora/sly-quicklisp")
8029 (source
8030 (origin
8031 (method git-fetch)
8032 (uri (git-reference
8033 (url home-page)
8034 (commit commit)))
8035 (file-name (git-file-name name version))
8036 (sha256
8037 (base32
8038 "1vfqmvayf35g6y3ljsm3rlzv5jm50qikhh4lv2zkkswj6gkkb1cv"))))
8039 (build-system emacs-build-system)
8040 (propagated-inputs
8041 `(("emacs-sly" ,emacs-sly)))
8042 (arguments
8043 `(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
8044 #:phases
8045 ;; The package provides autoloads.
8046 (modify-phases %standard-phases
8047 (delete 'make-autoloads)
8048 (delete 'enable-autoloads-compilation))))
8049 (synopsis "Quicklisp support for SLY")
8050 (description
8051 "@command{sly-quicklisp} is an external contrib for SLY that provides a
8052 sly-quickload command that prompts the user for a package to install. ")
8053 (license license:gpl3+))))
8054
8055 (define-public emacs-sly-asdf
8056 (let ((commit "32ce14994e8faee9321605cec36d156b02996c46")
8057 (revision "4"))
8058 (package
8059 (name "emacs-sly-asdf")
8060 (version (git-version "0.1.0" revision commit))
8061 (home-page "https://github.com/mmgeorge/sly-asdf")
8062 (source
8063 (origin
8064 (method git-fetch)
8065 (uri (git-reference
8066 (url home-page)
8067 (commit commit)))
8068 (file-name (git-file-name name version))
8069 (sha256
8070 (base32
8071 "09x8l37wwqw74xc2frwzbfdb1if8rb3szg5akdk3v2qhik4sm3dd"))))
8072 (build-system emacs-build-system)
8073 (propagated-inputs
8074 `(("emacs-sly" ,emacs-sly)
8075 ("emacs-popup" ,emacs-popup)))
8076 (arguments
8077 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)))
8078 (synopsis "ASDF contrib for SLY")
8079 (description
8080 "@command{sly-asdf} is an external contrib for SLY that provides
8081 additional support for working with ASDF projects.")
8082 (license license:gpl3+))))
8083
8084 (define-public emacs-sly-named-readtables
8085 (let ((commit "a5a42674ccffa97ccd5e4e9742beaf3ea719931f")
8086 (revision "1"))
8087 (package
8088 (name "emacs-sly-named-readtables")
8089 (version (git-version "0.1" revision commit))
8090 (home-page "https://github.com/joaotavora/sly-named-readtables")
8091 (source
8092 (origin
8093 (method git-fetch)
8094 (uri (git-reference
8095 (url home-page)
8096 (commit commit)))
8097 (file-name (git-file-name name version))
8098 (sha256
8099 (base32
8100 "16asd119rzqrlclps2q6yrkis8jy5an5xgzzqvb7jdyq39zxg54q"))))
8101 (build-system emacs-build-system)
8102 (propagated-inputs
8103 `(("emacs-sly" ,emacs-sly)))
8104 (arguments
8105 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
8106 #:phases (modify-phases %standard-phases
8107 ;; Byte compilation of the autoload file fails.
8108 (delete 'enable-autoloads-compilation))))
8109 (synopsis "Named-readtables support for SLY")
8110 (description
8111 "@command{sly-named-readtables} is an external contrib for SLY that
8112 enables different readtables to be active in different parts of the same
8113 file.")
8114 (license license:gpl3+))))
8115
8116 (define-public emacs-sly-macrostep
8117 (let ((commit "be2d24545092d164be1a91031d8881afd29c9ec0")
8118 (revision "1"))
8119 (package
8120 (name "emacs-sly-macrostep")
8121 (version (git-version "0.1" revision commit))
8122 (home-page "https://github.com/joaotavora/sly-macrostep")
8123 (source
8124 (origin
8125 (method git-fetch)
8126 (uri (git-reference
8127 (url home-page)
8128 (commit commit)))
8129 (file-name (git-file-name name version))
8130 (sha256
8131 (base32
8132 "0v8m3zkccpqd2l8m9340y672l2mm3mrry8422nva5kfvpcwdayqb"))))
8133 (build-system emacs-build-system)
8134 (propagated-inputs
8135 `(("emacs-sly" ,emacs-sly)
8136 ("emacs-macrostep" ,emacs-macrostep)))
8137 (arguments
8138 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
8139 #:phases
8140 ;; The package provides autoloads.
8141 (modify-phases %standard-phases
8142 (delete 'make-autoloads)
8143 (delete 'enable-autoloads-compilation))))
8144 (synopsis "Expand Common Lisp macros inside source files with SLY")
8145 (description
8146 "@command{sly-macrostep} is a SLY contrib for expanding CL macros right
8147 inside the source file.")
8148 (license license:gpl3+))))
8149
8150 (define-public emacs-sly-package-inferred
8151 (let ((commit "800e71e2be631422277e2ec77e6d6f6ea20e95ef")
8152 (revision "1"))
8153 (package
8154 (name "emacs-sly-package-inferred")
8155 (version (git-version "0.1" revision commit))
8156 (home-page "https://github.com/40ants/sly-package-inferred")
8157 (source
8158 (origin
8159 (method git-fetch)
8160 (uri (git-reference
8161 (url home-page)
8162 (commit commit)))
8163 (file-name (git-file-name name version))
8164 (sha256
8165 (base32
8166 "1216idyp034nkqddhw4p53jkhhdxa6xnjjmsvijpf4rxqnfqvapg"))))
8167 (build-system emacs-build-system)
8168 (propagated-inputs
8169 `(("emacs-sly" ,emacs-sly)))
8170 (arguments
8171 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
8172 #:phases
8173 ;; The package provides autoloads.
8174 (modify-phases %standard-phases
8175 (delete 'make-autoloads))))
8176 (synopsis "Improved package inferred systems support for SLY")
8177 (description
8178 "@command{sly-package-inferred} is an external contrib for SLY that
8179 replaces its completion with a function which is better suited for systems
8180 using package inferred style.")
8181 (license license:gpl3+))))
8182
8183 (define-public emacs-lua-mode
8184 (let ((commit "1f596a93b3f1caadd7bba01030f8c179b029600b")
8185 (revision "1"))
8186 (package
8187 (name "emacs-lua-mode")
8188 (version (git-version "20191204" revision commit))
8189 (home-page "https://github.com/immerrr/lua-mode/")
8190 (source (origin
8191 (method git-fetch)
8192 (uri (git-reference
8193 (url home-page)
8194 (commit commit)))
8195 (file-name (git-file-name name version))
8196 (sha256
8197 (base32
8198 "0i4adlaik3qjx1wkb7rwk2clvj7ci2g8pm0siyb3yk90r6z5mspi"))))
8199 (build-system emacs-build-system)
8200 (arguments
8201 `(#:tests? #t
8202 #:test-command '("buttercup" "-l" "lua-mode.el")))
8203 (native-inputs
8204 `(("emacs-buttercup" ,emacs-buttercup)
8205 ("lua" ,lua)))
8206 (synopsis "Major mode for lua")
8207 (description
8208 "This Emacs package provides a mode for @uref{https://www.lua.org/,
8209 Lua programming language}.")
8210 (license license:gpl2+))))
8211
8212 (define-public emacs-ebuild-mode
8213 (package
8214 (name "emacs-ebuild-mode")
8215 (version "1.50")
8216 (source
8217 (origin
8218 (method url-fetch)
8219 (uri (string-append
8220 "https://dev.gentoo.org/~ulm/emacs/"
8221 "ebuild-mode-" version ".tar.xz"))
8222 (file-name (string-append name "-" version ".tar.xz"))
8223 (sha256
8224 (base32 "0bgi98vx6ahxijw69kfdiy3rkjdg7yi6k3bkjyasak5920m6fj1d"))))
8225 (build-system emacs-build-system)
8226 (arguments
8227 '(#:phases
8228 (modify-phases %standard-phases
8229 (add-after 'install 'install-doc
8230 (lambda* (#:key outputs #:allow-other-keys)
8231 (invoke "make" "ebuild-mode.info")
8232 (install-file "ebuild-mode.info"
8233 (string-append (assoc-ref outputs "out")
8234 "/share/info"))
8235 #t)))))
8236 (native-inputs
8237 `(("texinfo" ,texinfo)))
8238 (home-page "https://devmanual.gentoo.org")
8239 (synopsis "Major modes for Gentoo package files")
8240 (description
8241 "This Emacs package provides modes for ebuild, eclass, eblit, GLEP42
8242 news items, openrc and runscripts.")
8243 (license license:gpl2+)))
8244
8245 (define-public emacs-evil
8246 (package
8247 (name "emacs-evil")
8248 (version "1.2.14")
8249 (source
8250 (origin
8251 (method git-fetch)
8252 (uri (git-reference
8253 (url "https://github.com/emacs-evil/evil")
8254 (commit version)))
8255 (file-name (git-file-name name version))
8256 (sha256
8257 (base32
8258 "1833w397xhac5g3pp25szr2gyvclxy91aw27azvbmsx94pyk2a3q"))))
8259 (arguments
8260 `(#:phases
8261 (modify-phases %standard-phases
8262 (add-before 'check 'fix-test-helpers
8263 (lambda _
8264 (substitute* "evil-test-helpers.el"
8265 (("\\(undo-tree-mode 1\\)") ""))
8266 #t)))))
8267 (build-system emacs-build-system)
8268 (home-page "https://github.com/emacs-evil/evil")
8269 (synopsis "Extensible Vi layer for Emacs")
8270 (description
8271 "Evil is an extensible vi layer for Emacs. It emulates the
8272 main features of Vim, and provides facilities for writing custom
8273 extensions.")
8274 (license license:gpl3+)))
8275
8276 (define-public emacs-evil-collection
8277 (let ((commit "d062cc206d671fb5aefb1e0e679a9cb1d6c73e33")
8278 (revision "14"))
8279 (package
8280 (name "emacs-evil-collection")
8281 (version (git-version "0.0.3" revision commit))
8282 (source (origin
8283 (method git-fetch)
8284 (uri (git-reference
8285 (url "https://github.com/emacs-evil/evil-collection")
8286 (commit commit)))
8287 (file-name (git-file-name name version))
8288 (sha256
8289 (base32
8290 "1zizfqmfrxx3shgggwa74rg2qqbrs8704wf94ajx0k11dbm1dbrp"))))
8291 (build-system emacs-build-system)
8292 (propagated-inputs
8293 `(("emacs-evil" ,emacs-evil)
8294 ("emacs-annalist" ,emacs-annalist)))
8295 (arguments
8296 `(#:include (cons* "^modes\\/" %default-include)))
8297 (home-page "https://github.com/emacs-evil/evil-collection")
8298 (synopsis "Collection of Evil bindings for many major and minor modes")
8299 (description "This is a collection of Evil bindings for the parts of
8300 Emacs that Evil does not cover properly by default, such as @code{help-mode},
8301 @code{M-x calendar}, Eshell and more.")
8302 (license license:gpl3+))))
8303
8304 (define-public emacs-goto-chg
8305 (let ((commit "1829a13026c597e358f716d2c7793202458120b5")
8306 (version "1.7.3")
8307 (revision "1"))
8308 (package
8309 (name "emacs-goto-chg")
8310 (version (git-version version revision commit))
8311 (source
8312 (origin
8313 (method git-fetch)
8314 (uri (git-reference
8315 (url "https://github.com/emacs-evil/goto-chg")
8316 (commit commit)))
8317 (file-name (git-file-name name version))
8318 (sha256
8319 (base32
8320 "1y603maw9xwdj3qiarmf1bp13461f9f5ackzicsbynl0i9la3qki"))))
8321 (build-system emacs-build-system)
8322 (propagated-inputs
8323 `(("emacs-undo-tree" ,emacs-undo-tree)))
8324 (home-page "https://github.com/emacs-evil/goto-chg")
8325 (synopsis "Go to the last change in the Emacs buffer")
8326 (description
8327 "This package provides @code{M-x goto-last-change} command that goes to
8328 the point of the most recent edit in the current Emacs buffer. When repeated,
8329 go to the second most recent edit, etc. Negative argument, @kbd{C-u -}, is
8330 used for reverse direction.")
8331 (license license:gpl2+))))
8332
8333 (define-public emacs-janpath-evil-numbers
8334 (let ((commit "d988041c1fe6e941dc8d591390750b237f71f524")
8335 (version "0.5")
8336 (revision "1"))
8337 (package
8338 (name "emacs-janpath-evil-numbers")
8339 (version (git-version version revision commit))
8340 (source
8341 (origin
8342 (method git-fetch)
8343 (uri (git-reference
8344 (url "https://github.com/janpath/evil-numbers")
8345 (commit commit)))
8346 (file-name (git-file-name name version))
8347 (sha256
8348 (base32
8349 "16zixhxxcb83m82f2cfiardfn99j3w41v6vh1qk6j9pplrlfw70v"))))
8350 (build-system emacs-build-system)
8351 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
8352 (home-page "https://github.com/janpath/evil-numbers")
8353 (synopsis "Increment and decrement numeric literals")
8354 (description
8355 "This package provides functionality to search for a number up to the
8356 end of a line and increment or decrement it.")
8357 (license license:gpl3+))))
8358
8359 (define-public emacs-evil-owl
8360 (let ((commit "24c5f43df375194386344e69bc720ea3986c9510")
8361 (revision "3"))
8362 (package
8363 (name "emacs-evil-owl")
8364 (version (git-version "0.0.1" revision commit))
8365 (source
8366 (origin
8367 (method git-fetch)
8368 (uri (git-reference
8369 (url "https://github.com/mamapanda/evil-owl")
8370 (commit commit)))
8371 (file-name (git-file-name name version))
8372 (sha256
8373 (base32
8374 "0bqzch14whlmrcasakah3psrzswvkzd7mmi8hx5s64kfp29wbdhi"))))
8375 (build-system emacs-build-system)
8376 (propagated-inputs
8377 `(("emacs-evil" ,emacs-evil)))
8378 (arguments
8379 `(#:tests? #t
8380 #:test-command '("make" "test")))
8381 (home-page "https://github.com/mamapanda/evil-owl")
8382 (synopsis "Preview candidates when using Evil registers and marks")
8383 (description
8384 "This package supplements Evil's register- and mark-based commands with
8385 a popup window for previewing candidates.")
8386 (license license:gpl3+))))
8387
8388 (define-public emacs-evil-args
8389 (let ((commit "758ad5ae54ad34202064fec192c88151c08cb387")
8390 (revision "1"))
8391 (package
8392 (name "emacs-evil-args")
8393 (version (git-version "1.0" revision commit))
8394 (source
8395 (origin
8396 (method git-fetch)
8397 (uri (git-reference
8398 (url "https://github.com/wcsmith/evil-args.git")
8399 (commit commit)))
8400 (file-name (git-file-name name version))
8401 (sha256
8402 (base32
8403 "0k35glgsirc3cph8v5hhjrqfh4ndwh8a28qbr03y3jl8s453xcj7"))))
8404 (build-system emacs-build-system)
8405 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
8406 (home-page "https://github.com/wcsmith/evil-args")
8407 (synopsis "Motions and text objects for delimited arguments in Evil")
8408 (description
8409 "This package provides motions and text objects for delimited
8410 arguments, such as arguments separated by commas and semicolons.")
8411 (license license:expat))))
8412
8413 (define-public emacs-evil-escape
8414 (package
8415 (name "emacs-evil-escape")
8416 (version "3.14")
8417 (source
8418 (origin
8419 (method git-fetch)
8420 (uri
8421 (git-reference
8422 (url "https://github.com/syl20bnr/evil-escape")
8423 (commit (string-append "v" version))))
8424 (file-name (git-file-name name version))
8425 (sha256
8426 (base32 "0s8lmmm25qabicwaj9jybpbd8mkc62yl7jnhk1lpablydjkv3w2i"))))
8427 (propagated-inputs
8428 `(("emacs-evil" ,emacs-evil)))
8429 (build-system emacs-build-system)
8430 (home-page "https://github.com/syl20bnr/evil-escape")
8431 (synopsis "Escape from insert state and everything else in Emacs")
8432 (description
8433 "Evil escape provides a customizable key sequence to escape from insert
8434 state and everything else in Emacs.")
8435 (license license:gpl3+)))
8436
8437 (define-public emacs-evil-exchange
8438 (let ((commit "47691537815150715e64e6f6ec79be7746c96120")
8439 (version "0.41")
8440 (revision "1"))
8441 (package
8442 (name "emacs-evil-exchange")
8443 (version (git-version version revision commit))
8444 (source
8445 (origin
8446 (method git-fetch)
8447 (uri (git-reference
8448 (url "https://github.com/Dewdrops/evil-exchange")
8449 (commit commit)))
8450 (file-name (git-file-name name version))
8451 (sha256
8452 (base32
8453 "0bjpn4yqig17ddym6wqq5fm1b294q74hzcbj9a6gs97fqiwf88xa"))))
8454 (build-system emacs-build-system)
8455 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
8456 (native-inputs `(("emacs-ert-runner" ,emacs-ert-runner)))
8457 (arguments
8458 `(#:phases
8459 (modify-phases %standard-phases
8460 (add-before 'check 'fix-makefile
8461 (lambda _
8462 (substitute* "Makefile"
8463 (("cask exec ") ""))
8464 #t)))
8465 #:tests? #t
8466 #:test-command '("make" "test")))
8467 (home-page "https://github.com/Dewdrops/evil-exchange")
8468 (synopsis "Exchange text easily within Evil")
8469 (description
8470 "This package, a port of @code{vim-exchange}, provides an Evil operator
8471 for exchanging text.")
8472 (license license:gpl3+))))
8473
8474 (define-public emacs-evil-replace-with-register
8475 (let ((commit "91cc7bf21a94703c441cc9212214075b226b7f67")
8476 (version "0.1")
8477 (revision "1"))
8478 (package
8479 (name "emacs-evil-replace-with-register")
8480 (version (git-version version revision commit))
8481 (source
8482 (origin
8483 (method git-fetch)
8484 (uri (git-reference
8485 (url "https://github.com/Dewdrops/evil-ReplaceWithRegister")
8486 (commit commit)))
8487 (file-name (git-file-name name version))
8488 (sha256
8489 (base32
8490 "14rpn76qrf287s3y2agmddcxi27r226i53ixjvd694ss039g0r11"))))
8491 (build-system emacs-build-system)
8492 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
8493 (home-page "https://github.com/Dewdrops/evil-ReplaceWithRegister")
8494 (synopsis "Quickly replace text with the contents of a register")
8495 (description
8496 "This package provides an Evil operator for replacing text with the
8497 contents of a register.")
8498 (license license:gpl3+))))
8499
8500 (define-public emacs-evil-indent-plus
8501 (let ((commit "0c7501e6efed661242c3a20e0a6c79a6455c2c40")
8502 (version "1.0.0")
8503 (revision "1"))
8504 (package
8505 (name "emacs-evil-indent-plus")
8506 (version (git-version version revision commit))
8507 (source
8508 (origin
8509 (method git-fetch)
8510 (uri (git-reference
8511 (url "https://github.com/TheBB/evil-indent-plus")
8512 (commit commit)))
8513 (file-name (git-file-name name version))
8514 (sha256
8515 (base32
8516 "1g6r1ydscwjvmhh1zg4q3nap4avk8lb9msdqrh7dff6pla0r2qs6"))))
8517 (build-system emacs-build-system)
8518 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
8519 (home-page "https://github.com/TheBB/evil-indent-plus")
8520 (synopsis "Text objects based on indentation")
8521 (description
8522 "This package adds new text objects for @code{evil-mode} based on
8523 blocks having the same or higher indentation, including or excluding
8524 surrounding lines.")
8525 (license license:gpl2+))))
8526
8527 (define-public emacs-evil-text-object-python
8528 (let ((commit "9a064fe6475429145cbcc3b270fcc963b67adb15")
8529 (version "1.0.1")
8530 (revision "1"))
8531 (package
8532 (name "emacs-evil-text-object-python")
8533 (version (git-version version revision commit))
8534 (source
8535 (origin
8536 (method git-fetch)
8537 (uri (git-reference
8538 (url "https://github.com/wbolster/evil-text-object-python")
8539 (commit commit)))
8540 (file-name (git-file-name name version))
8541 (sha256
8542 (base32
8543 "074zpm6mmr1wfl6d5xdf8jk1fs4ccpbzf4ahhkwga9g71xiplszv"))))
8544 (build-system emacs-build-system)
8545 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
8546 (home-page "https://github.com/wbolster/evil-text-object-python")
8547 (synopsis "Text objects for Python")
8548 (description
8549 "This package provides @code{evil-mode} text objects for Python.")
8550 (license license:gpl3+))))
8551
8552 (define-public emacs-evil-lion
8553 (let ((commit "6b03593f5dd6e7c9ca02207f9a73615cf94c93ab")
8554 (revision "1"))
8555 (package
8556 (name "emacs-evil-lion")
8557 (version (git-version "0.0.2" revision commit))
8558 (source
8559 (origin
8560 (method git-fetch)
8561 (uri (git-reference
8562 (url "https://github.com/edkolev/evil-lion")
8563 (commit commit)))
8564 (file-name (git-file-name name version))
8565 (sha256
8566 (base32
8567 "1a162hynp0jcsn50c1w5a02mrw9w3q05c7lkqzqd25px3d0p772q"))))
8568 (build-system emacs-build-system)
8569 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
8570 (arguments
8571 `(#:tests? #t
8572 #:test-command '("make" "test")))
8573 (home-page "https://github.com/edkolev/evil-lion")
8574 (synopsis "Align operator for @code{evil-mode}")
8575 (description
8576 "This package, a port of @code{vim-lion}, provides an operator for
8577 aligning text objects based on separators.")
8578 (license license:gpl3+))))
8579
8580 (define-public emacs-evil-expat
8581 (let ((commit "f4fcd0aa3edc359adb5c986b5dd9188d220d84e2")
8582 (revision "1"))
8583 (package
8584 (name "emacs-evil-expat")
8585 (version (git-version "0.0.1" revision commit))
8586 (source
8587 (origin
8588 (method git-fetch)
8589 (uri (git-reference
8590 (url "https://github.com/edkolev/evil-expat")
8591 (commit commit)))
8592 (file-name (git-file-name name version))
8593 (sha256
8594 (base32
8595 "0872ix682hkdz0k8pn6sb54rqkx00rz5fxpd5j2snx406yagpaxz"))))
8596 (build-system emacs-build-system)
8597 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
8598 (arguments
8599 `(#:tests? #t
8600 #:test-command '("make" "test")))
8601 (home-page "https://github.com/edkolev/evil-expat")
8602 (synopsis "Extra @code{ex} commands for @code{evil-mode}")
8603 (description
8604 "This package provides additional commands for the @code{ex} command
8605 line, including functions for version control with Git and for copying and
8606 pasting into and from @code{tmux} paste buffers.")
8607 (license license:gpl3+))))
8608
8609 (define-public emacs-evil-nerd-commenter
8610 (package
8611 (name "emacs-evil-nerd-commenter")
8612 (version "3.3.8")
8613 (source
8614 (origin
8615 (method git-fetch)
8616 (uri (git-reference
8617 (url "https://github.com/redguardtoo/evil-nerd-commenter")
8618 (commit version)))
8619 (file-name (git-file-name name version))
8620 (sha256
8621 (base32
8622 "0qd5a89mzvdyhd8lm13iwp220vzpd6dajwx54frlc5bzsxdmg6vc"))))
8623 (build-system emacs-build-system)
8624 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
8625 (arguments
8626 `(#:tests? #t
8627 #:test-command '("make" "test")))
8628 (home-page "https://github.com/redguardtoo/evil-nerd-commenter")
8629 (synopsis "Comment and uncomment lines efficiently")
8630 (description
8631 "This package provides text objects and operators for comments within
8632 @code{evil-mode}.")
8633 (license license:gpl3+)))
8634
8635 (define-public emacs-evil-visual-replace
8636 (package
8637 (name "emacs-evil-visual-replace")
8638 (version "0.0.5")
8639 (source
8640 (origin
8641 (method git-fetch)
8642 (uri (git-reference
8643 (url "https://github.com/troyp/evil-visual-replace")
8644 (commit version)))
8645 (file-name (git-file-name name version))
8646 (sha256
8647 (base32
8648 "1gfyrq7xfzmzh3x8k5f08n027dlbwi0pkkxf9c39fkxp4jngibsz"))))
8649 (build-system emacs-build-system)
8650 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
8651 (home-page "https://github.com/troyp/evil-visual-replace")
8652 (synopsis "Replacement commands for @code{evil-mode} visual blocks")
8653 (description
8654 "This package provides versions of @code{query-replace} and
8655 @code{replace-regexp} that work for @code{evil-mode} visual blocks.")
8656 (license license:gpl2+)))
8657
8658 (define-public emacs-evil-visualstar
8659 (let ((commit "06c053d8f7381f91c53311b1234872ca96ced752")
8660 (version "0.0.2")
8661 (revision "1"))
8662 (package
8663 (name "emacs-evil-visualstar")
8664 (version (git-version version revision commit))
8665 (source
8666 (origin
8667 (method git-fetch)
8668 (uri (git-reference
8669 (url "https://github.com/bling/evil-visualstar")
8670 (commit commit)))
8671 (file-name (git-file-name name version))
8672 (sha256
8673 (base32
8674 "0mkbzw12fav945icibc2293m5haxqr3hzkyli2cf4ssk6yvn0x4c"))))
8675 (build-system emacs-build-system)
8676 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
8677 (home-page "https://github.com/bling/evil-visualstar")
8678 (synopsis "Instantly search using the visual selection")
8679 (description
8680 "This package provides @code{evil-mode} functions for using selected text
8681 to search.")
8682 (license license:gpl3+))))
8683
8684 (define-public emacs-monky
8685 (package
8686 (name "emacs-monky")
8687 (version "0.1")
8688 (source (origin
8689 (method git-fetch)
8690 (uri (git-reference
8691 (url "https://github.com/ananthakumaran/monky.git")
8692 (commit version)))
8693 (file-name (git-file-name name version))
8694 (sha256
8695 (base32
8696 "1fgn7al4zwz2k5wb5dy3byqg9lsrjk9fra341mxh5ma2pfwxjgps"))))
8697 (build-system emacs-build-system)
8698 (home-page "https://ananthakumaran.in/monky/index.html")
8699 (arguments
8700 `(#:tests? #t
8701 #:test-command '("emacs" "--batch"
8702 "-l" "test/monky-unit-test.el"
8703 "-f" "ert-run-tests-batch-and-exit")))
8704 (synopsis "Interactive interface for the Mercurial version control system")
8705 (description
8706 "Monky provides an Emacs interface for Mercurial (Hg). Using Monky, you
8707 can selectively commit files, view the diffs, and other things.")
8708 (license license:gpl3+)))
8709
8710 (define-public emacs-monroe
8711 (package
8712 (name "emacs-monroe")
8713 (version "0.3.1")
8714 (source
8715 (origin
8716 (method git-fetch)
8717 (uri (git-reference
8718 (url "https://github.com/sanel/monroe.git")
8719 (commit version)))
8720 (file-name (git-file-name name version))
8721 (sha256
8722 (base32 "101lfrykdbv37spkbw7zihhx26bc1lhjyxbanrcp9880bxj04jiy"))))
8723 (build-system emacs-build-system)
8724 (home-page "https://github.com/sanel/monroe")
8725 (synopsis "Clojure nREPL client for Emacs")
8726 (description
8727 "Monroe is a nREPL client for Emacs, focused on simplicity and easy
8728 distribution, primarily targeting Clojure users")
8729 (license license:gpl3+)))
8730
8731 (define-public emacs-orgalist
8732 (package
8733 (name "emacs-orgalist")
8734 (version "1.12")
8735 (source
8736 (origin
8737 (method url-fetch)
8738 (uri (string-append "https://elpa.gnu.org/packages/"
8739 "orgalist-" version ".el"))
8740 (sha256
8741 (base32 "1hwm7j0hbv2pg9w885ky1c9qga3grcfq8v216jv2ivkw8xzavysd"))))
8742 (build-system emacs-build-system)
8743 (home-page "https://elpa.gnu.org/packages/orgalist.html")
8744 (synopsis "Manage Org-like lists in non-Org buffers")
8745 (description "Orgalist writes and manages Org mode's plain lists in
8746 non-Org buffers. More specifically, it supports the syntax of Org mode for
8747 numbered, unnumbered, description items, checkboxes, and counter cookies.
8748
8749 The library also implements radio lists, i.e., lists written in Org syntax
8750 later translated into the host format, e.g., LaTeX or HTML.")
8751 (license license:gpl3+)))
8752
8753 (define-public emacs-writegood-mode
8754 (package
8755 (name "emacs-writegood-mode")
8756 (version "2.0.2")
8757 (home-page "https://github.com/bnbeckwith/writegood-mode")
8758 (source (origin
8759 (method git-fetch)
8760 (uri (git-reference
8761 (url home-page)
8762 (commit (string-append "v" version))))
8763 (sha256
8764 (base32
8765 "1nnjn1r669hvvzfycllwap4w04m8rfsk4nzcg8057m1f263kj31b"))
8766 (file-name (string-append name "-checkout"))))
8767 (build-system emacs-build-system)
8768 (synopsis "Polish up poor writing on the fly")
8769 (description
8770 "This minor mode tries to find and highlight problems with your writing
8771 in English as you type. It primarily detects \"weasel words\" and abuse of
8772 passive voice.")
8773 (license license:gpl3+)))
8774
8775 (define-public emacs-neotree
8776 (package
8777 (name "emacs-neotree")
8778 (version "0.5.2")
8779 (home-page "https://github.com/jaypei/emacs-neotree")
8780 (source (origin
8781 (method git-fetch)
8782 (uri (git-reference
8783 (url home-page)
8784 (commit version)))
8785 (sha256
8786 (base32
8787 "0hx72fq10772bbyqrj7mhhp02k26cccjxdadiqm1ykainhfmn1x0"))
8788 (file-name (git-file-name name version))))
8789 (build-system emacs-build-system)
8790 (synopsis "Folder tree view for Emacs")
8791 (description "This Emacs package provides a folder tree view.")
8792 (license license:gpl3+)))
8793
8794 (define-public emacs-org
8795 (package
8796 (name "emacs-org")
8797 ;; emacs-org-contrib inherits from this package. Please update it as
8798 ;; well.
8799 (version "9.3.6")
8800 (source
8801 (origin
8802 (method url-fetch)
8803 (uri (string-append "https://elpa.gnu.org/packages/org-" version ".tar"))
8804 (sha256
8805 (base32 "0jwpgfzjvf1hd3mx582pw86hysdryaqzp69hk6azi9kmq4bzk87d"))))
8806 (build-system emacs-build-system)
8807 (arguments
8808 `(#:phases
8809 (modify-phases %standard-phases
8810 (add-after 'install 'install-documentation
8811 (lambda* (#:key outputs #:allow-other-keys)
8812 (let* ((share (string-append (assoc-ref outputs "out") "/share"))
8813 (info-dir (string-append share "/info"))
8814 (doc-dir (string-append share "/doc/" ,name "-" ,version)))
8815 (install-file "org" info-dir)
8816 (install-file "orgcard.pdf" doc-dir))
8817 #t)))))
8818 (home-page "https://orgmode.org/")
8819 (synopsis "Outline-based notes management and organizer")
8820 (description "Org is an Emacs mode for keeping notes, maintaining TODO
8821 lists, and project planning with a fast and effective lightweight markup
8822 language. It also is an authoring system with unique support for literate
8823 programming and reproducible research.")
8824 (license license:gpl3+)))
8825
8826 (define-public emacs-org-contrib
8827 (package
8828 (inherit emacs-org)
8829 (name "emacs-org-contrib")
8830 (version "20200213")
8831 (source
8832 (origin
8833 (method url-fetch)
8834 (uri (string-append "https://orgmode.org/elpa/"
8835 "org-plus-contrib-" version ".tar"))
8836 (sha256
8837 (base32 "0g6rrrwplrifz4ip0jg638m4kvpvdg03hwnyghd813w0lm935mh5"))))
8838 (arguments
8839 `(#:modules ((guix build emacs-build-system)
8840 (guix build utils)
8841 (guix build emacs-utils)
8842 (ice-9 ftw)
8843 (srfi srfi-1))
8844 #:phases
8845 (modify-phases %standard-phases
8846 (add-after 'install 'delete-org-files
8847 (lambda* (#:key inputs outputs #:allow-other-keys)
8848 (let* ((out (assoc-ref outputs "out"))
8849 (org (assoc-ref inputs "org"))
8850 (contrib-files
8851 (map basename (find-files out)))
8852 (org+contrib-files
8853 (map basename (find-files org)))
8854 (duplicates (lset-intersection string=?
8855 contrib-files
8856 org+contrib-files)))
8857 (with-directory-excursion
8858 (string-append out "/share/emacs/site-lisp")
8859 (for-each delete-file duplicates))
8860 #t))))))
8861 (propagated-inputs
8862 `(("arduino-mode" ,emacs-arduino-mode)
8863 ("cider" ,emacs-cider)
8864 ("org" ,emacs-org)
8865 ("scel" ,emacs-scel)))
8866 (synopsis "Contributed packages to Org mode")
8867 (description "Org is an Emacs mode for keeping notes, maintaining TODO
8868 lists, and project planning with a fast and effective plain-text system.
8869
8870 This package is equivalent to org-plus-contrib, but only includes additional
8871 files that you would find in @file{contrib/} from the git repository.")))
8872
8873 (define-public emacs-flx
8874 (package
8875 (name "emacs-flx")
8876 (version "0.6.1")
8877 (source
8878 (origin
8879 (method git-fetch)
8880 (uri (git-reference
8881 (url "https://github.com/lewang/flx.git")
8882 (commit (string-append "v" version))))
8883 (sha256
8884 (base32
8885 "0sjybrcnb2sl33swy3q664vqrparajcl0m455gciiih2j87hwadc"))
8886 (file-name (git-file-name name version))))
8887 (build-system emacs-build-system)
8888 (home-page "https://github.com/lewang/flx")
8889 (synopsis "Fuzzy matching for Emacs")
8890 (description
8891 "Flx provides fuzzy matching for emacs a la sublime text.
8892 The sorting algorithm is a balance between word beginnings (abbreviation)
8893 and contiguous matches (substring). The longer the substring match,
8894 the higher it scores. This maps well to how we think about matching.
8895 Flx has support for ido (interactively do things) through flx-ido.")
8896 (license license:gpl3+)))
8897
8898 (define-public emacs-cyberpunk-theme
8899 (package
8900 (name "emacs-cyberpunk-theme")
8901 (version "1.21")
8902 (source
8903 (origin
8904 (method git-fetch)
8905 (uri (git-reference
8906 (url "https://github.com/n3mo/cyberpunk-theme.el/")
8907 (commit version)))
8908 (sha256
8909 (base32
8910 "05mfgr9aj7knn7niadv9p6z3qrfpq2lbbi2wxxx62xywim9maw2y"))
8911 (file-name (git-file-name name version))))
8912 (build-system emacs-build-system)
8913 (home-page "https://github.com/n3mo/cyberpunk-theme.el")
8914 (synopsis "Cyberpunk theme for Emacs built-in color theme support")
8915 (description
8916 "Cyberpunk color theme for the Emacs 24+ built-in color theme support
8917 known loosely as deftheme. Many mode-specific customizations are included.")
8918 (license license:gpl3+)))
8919
8920 (define-public emacs-danneskjold-theme
8921 (let* ((commit "8733d2fe8743e8a01826ea6d4430ef376c727e57")
8922 (revision "1"))
8923 (package
8924 (name "emacs-danneskjold-theme")
8925 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
8926 (home-page "https://github.com/rails-to-cosmos/danneskjold-theme")
8927 (source
8928 (origin
8929 (method git-fetch)
8930 (uri (git-reference
8931 (url home-page)
8932 (commit commit)))
8933 (file-name (git-file-name name version))
8934 (sha256
8935 (base32
8936 "0s6rbsb0y8i8m5b9xm4gw1p1cxsxdqnqxqqb638pygz9f76mbir1"))))
8937 (build-system emacs-build-system)
8938 (arguments
8939 `(#:phases
8940 (modify-phases %standard-phases
8941 (add-after 'unpack 'delete-screenshots
8942 (lambda _
8943 (delete-file-recursively "screenshots") #t)))))
8944 (synopsis "High-contrast Emacs theme")
8945 (description
8946 "@code{danneskjold-theme} is a high-contrast theme for Emacs.")
8947 (license license:gpl3+))))
8948
8949 (define-public emacs-dream-theme
8950 (let* ((commit "107a11d74365046f28a1802a2bdb5e69e4a7488b")
8951 (revision "1"))
8952 (package
8953 (name "emacs-dream-theme")
8954 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
8955 (source
8956 (origin
8957 (method git-fetch)
8958 (uri (git-reference
8959 (url "https://github.com/djcb/dream-theme")
8960 (commit commit)))
8961 (file-name (git-file-name name version))
8962 (sha256
8963 (base32
8964 "0za18nfkq4xqm35k6006vsixcbmvmxqgma4iw5sw37h8vmcsdylk"))))
8965 (build-system emacs-build-system)
8966 (home-page "https://github.com/djcb/dream-theme")
8967 (synopsis "High-contrast Emacs theme")
8968 (description
8969 "@code{dream-theme} is a dark, clean theme for Emacs. It is inspired
8970 by zenburn, sinburn and similar themes, but slowly diverging from them.")
8971 (license license:gpl3+))))
8972
8973 (define-public emacs-auto-complete
8974 (package
8975 (name "emacs-auto-complete")
8976 (version "1.5.1")
8977 (source
8978 (origin
8979 (method git-fetch)
8980 (uri (git-reference
8981 (url "https://github.com/auto-complete/auto-complete.git")
8982 (commit (string-append "v" version))))
8983 (sha256
8984 (base32
8985 "04i9b11iksg6acn885wl3qgi5xpsm3yszlqmd2x21yhprndlz7gb"))
8986 (file-name (git-file-name name version))))
8987 (build-system emacs-build-system)
8988 (propagated-inputs
8989 `(("emacs-popup" ,emacs-popup)))
8990 (home-page "https://github.com/auto-complete/auto-complete")
8991 (synopsis "Intelligent auto-completion extension for Emacs")
8992 (description
8993 "Auto-Complete is an intelligent auto-completion extension for Emacs.
8994 It extends the standard Emacs completion interface and provides an environment
8995 that allows users to concentrate more on their own work. Its features are:
8996 a visual interface, reduce overhead of completion by using statistic method,
8997 extensibility.")
8998 (license license:gpl3+)))
8999
9000 (define-public emacs-nginx-mode
9001 (package
9002 (name "emacs-nginx-mode")
9003 (version "1.1.9")
9004 (source
9005 (origin
9006 (method git-fetch)
9007 (uri (git-reference
9008 (url "https://github.com/ajc/nginx-mode.git")
9009 (commit (string-append "v" version))))
9010 (file-name (git-file-name name version))
9011 (sha256
9012 (base32 "17dh5pr3gh6adrbqx588gimxbb2fr7iv2qrxv6r48w2727l344xs"))))
9013 (build-system emacs-build-system)
9014 (home-page "https://github.com/ajc/nginx-mode")
9015 (synopsis "Emacs major mode for editing nginx config files")
9016 (description "This package provides an Emacs major mode for
9017 editing nginx config files.")
9018 (license license:gpl2+)))
9019
9020 (define-public emacs-stream
9021 (let ((commit "a3f3da155a49c133e2692bd8789b35492bfdc4f7")
9022 (revision "1"))
9023 (package
9024 (name "emacs-stream")
9025 (version (git-version "2.2.4" revision commit))
9026 (source
9027 (origin
9028 (method git-fetch)
9029 (uri (git-reference
9030 (url "https://github.com/Emacsmirror/stream.git")
9031 (commit commit)))
9032 (file-name (git-file-name name version))
9033 (sha256
9034 (base32 "0aig0yjb9z752ijh0mzildjmh44j051inchga8qll01dr8wf7332"))))
9035 (build-system emacs-build-system)
9036 (arguments
9037 `(#:tests? #t
9038 #:test-command '("emacs" "--batch"
9039 "-l" "tests/stream-tests.el"
9040 "-f" "ert-run-tests-batch-and-exit")))
9041 (home-page "https://github.com/Emacsmirror/stream")
9042 (synopsis "Implementation of streams for Emacs")
9043 (description "This library provides an implementation of streams for Emacs.
9044 Streams are implemented as delayed evaluation of cons cells.")
9045 (license license:gpl3+))))
9046
9047 (define-public emacs-cl-print
9048 (let ((commit "1a70c553dfb04352afb5b8696fe0cef8acc8f991")
9049 (revision "1"))
9050 (package
9051 (name "emacs-cl-print")
9052 (version (git-version "1.0" revision commit))
9053 (source
9054 (origin
9055 (method git-fetch)
9056 (uri (git-reference
9057 (url "https://github.com/emacsmirror/cl-print.git")
9058 (commit commit)))
9059 (file-name (git-file-name name version))
9060 (sha256
9061 (base32 "164zbnsi5mssvcpy0158fm7fw5cmd1r5nkpn29fmd2b2scy3gm79"))))
9062 (build-system emacs-build-system)
9063 (home-page "https://github.com/emacsmirror/cl-print")
9064 (synopsis "CL-style generic printing")
9065 (description "This package provides a generic function,
9066 @code{cl-print-object}, to which the programmer can add any method they
9067 please.")
9068 (license license:gpl3+))))
9069
9070 (define-public emacs-el-search
9071 (let ((commit "07bed84dd8ae9e4c6c648834224b1d33fdbd51e0")
9072 (revision "2"))
9073 (package
9074 (name "emacs-el-search")
9075 (version (git-version "1.12.6.1" revision commit))
9076 (source
9077 (origin
9078 (method git-fetch)
9079 (uri (git-reference
9080 (url "https://github.com/emacsmirror/el-search.git")
9081 (commit commit)))
9082 (file-name (git-file-name name version))
9083 (sha256
9084 (base32 "10w1ldgijdhfsrazp0y3bm76jv5wvdn94k1yp0pmc2m1896b58ak"))))
9085 (build-system emacs-build-system)
9086 (inputs
9087 `(("emacs-stream" ,emacs-stream)
9088 ("emacs-cl-print" ,emacs-cl-print)))
9089 (home-page "https://github.com/emacsmirror/el-search")
9090 (synopsis "Expression based interactive search for emacs-lisp-mode")
9091 (description "This package provides expression based interactive search
9092 procedures for emacs-lisp-mode.")
9093 (license license:gpl3+))))
9094
9095 (define-public emacs-ht
9096 (package
9097 (name "emacs-ht")
9098 (version "2.2")
9099 (source
9100 (origin
9101 (method git-fetch)
9102 (uri (git-reference
9103 (url "https://github.com/Wilfred/ht.el.git")
9104 (commit version)))
9105 (file-name (git-file-name name version))
9106 (sha256
9107 (base32 "1p3qa7g0wa0wbviv2f8bda39cjys3naayk5xjm3nxxmqsyy8papx"))))
9108 (build-system emacs-build-system)
9109 (propagated-inputs `(("emacs-dash" ,emacs-dash)))
9110 (native-inputs
9111 `(("emacs-ert-runner" ,emacs-ert-runner)))
9112 (arguments
9113 `(#:tests? #t
9114 #:test-command '("ert-runner")))
9115 (home-page "https://github.com/Wilfred/ht.el")
9116 (synopsis "Hash table library for Emacs")
9117 (description
9118 "This package simplifies the use of hash tables in elisp. It also
9119 provides functions to convert hash tables from and to alists and plists.")
9120 (license license:gpl3+)))
9121
9122 (define-public emacs-log4e
9123 (package
9124 (name "emacs-log4e")
9125 (version "0.3.0")
9126 (source
9127 (origin
9128 (method git-fetch)
9129 (uri (git-reference
9130 (url "https://github.com/aki2o/log4e.git")
9131 (commit (string-append "v" version))))
9132 (file-name (git-file-name name version))
9133 (sha256
9134 (base32 "1l28n7a0v2zkknc70i1wn6qb5i21dkhfizzk8wcj28v44cgzk022"))))
9135 (build-system emacs-build-system)
9136 (arguments
9137 `(#:phases
9138 (modify-phases %standard-phases
9139 (add-after 'unpack 'remove-tests
9140 ;; Guile builder complains about null characters in some
9141 ;; strings of test files. Remove "test" directory (it is not
9142 ;; needed anyway).
9143 (lambda _
9144 (delete-file-recursively "test"))))))
9145 (home-page "https://github.com/aki2o/log4e")
9146 (synopsis "Logging framework for elisp")
9147 (description
9148 "This package provides a logging framework for elisp. It allows
9149 you to deal with multiple log levels.")
9150 (license license:gpl3+)))
9151
9152 (define-public emacs-gntp
9153 (package
9154 (name "emacs-gntp")
9155 (version "0.1")
9156 (source
9157 (origin
9158 (method git-fetch)
9159 (uri (git-reference
9160 (url "https://github.com/tekai/gntp.el.git")
9161 (commit (string-append "v" version))))
9162 (file-name (git-file-name name version))
9163 (sha256
9164 (base32 "1nvyjjjydrimpxy4cpg90si7sr8lmldbhlcm2mx8npklp9pn5y3a"))))
9165 (build-system emacs-build-system)
9166 (home-page "https://github.com/tekai/gntp.el")
9167 (synopsis "Growl Notification Protocol for Emacs")
9168 (description
9169 "This package implements the Growl Notification Protocol GNTP
9170 described at @uref{http://www.growlforwindows.com/gfw/help/gntp.aspx}.
9171 It is incomplete as it only lets you send but not receive
9172 notifications.")
9173 (license license:bsd-3)))
9174
9175 (define-public emacs-alert
9176 (package
9177 (name "emacs-alert")
9178 (version "1.3")
9179 (source
9180 (origin
9181 (method git-fetch)
9182 (uri (git-reference
9183 (url "https://github.com/jwiegley/alert.git")
9184 (commit (string-append "v" version))))
9185 (file-name (git-file-name name version))
9186 (sha256
9187 (base32 "0lc0p5cl4hfrzw1z2ghb11k1lvljn5m08jw5fmgwgxv667kwh49r"))))
9188 (build-system emacs-build-system)
9189 (propagated-inputs
9190 `(("emacs-gntp" ,emacs-gntp)
9191 ("emacs-log4e" ,emacs-log4e)))
9192 (home-page "https://github.com/jwiegley/alert")
9193 (synopsis "Growl-style notification system for Emacs")
9194 (description
9195 "Alert is a Growl-workalike for Emacs which uses a common notification
9196 interface and multiple, selectable \"styles\", whose use is fully
9197 customizable by the user.")
9198 (license license:gpl2+)))
9199
9200 (define-public emacs-zones
9201 (let ((commit "3169815c323966ff8e252b44e3558d6d045243fe")
9202 (revision "2"))
9203 (package
9204 (name "emacs-zones")
9205 (version (git-version "0" revision commit))
9206 (source
9207 (origin
9208 (method git-fetch)
9209 (uri (git-reference
9210 (url "https://github.com/emacsmirror/zones.git")
9211 (commit commit)))
9212 (file-name (git-file-name name version))
9213 (sha256
9214 (base32
9215 "039msns5596rz0my7fxpanpxwg1lkhpiibm9ppnlzaajx1hszbzl"))
9216 (patches
9217 (search-patches
9218 "emacs-zones-called-interactively.patch"))))
9219 (build-system emacs-build-system)
9220 (home-page "https://www.emacswiki.org/emacs/Zones")
9221 (synopsis "Define and act on multiple zones of buffer text")
9222 (description "Library @file{zones.el} lets you easily define and
9223 subsequently act on multiple zones of buffer text. You can think of this as
9224 enlarging the notion of region. In effect, it can remove the requirement of
9225 target text being a contiguous sequence of characters. A set of buffer zones
9226 is, in effect, a (typically) noncontiguous set of text.")
9227 (license license:gpl3+))))
9228
9229 (define-public emacs-mu4e-alert
9230 (package
9231 (name "emacs-mu4e-alert")
9232 (version "1.0")
9233 (source
9234 (origin
9235 (method git-fetch)
9236 (uri (git-reference
9237 (url "https://github.com/iqbalansari/mu4e-alert.git")
9238 (commit (string-append "v" version))))
9239 (file-name (git-file-name name version))
9240 (sha256
9241 (base32 "1nvsfbfsma59ilf7c3vjngnmx3aapwvvvaafdy5szm5r6lkicqvg"))))
9242 (build-system emacs-build-system)
9243 (propagated-inputs
9244 `(("emacs-alert" ,emacs-alert)
9245 ("emacs-s" ,emacs-s)
9246 ("emacs-ht" ,emacs-ht)
9247 ("mu" ,mu)))
9248 (home-page "https://github.com/iqbalansari/mu4e-alert")
9249 (synopsis "Desktop notification for mu4e")
9250 (description
9251 "This package provides desktop notifications for mu4e.
9252 Additionally it can display the number of unread emails in the
9253 mode-line.")
9254 (license license:gpl3+)))
9255
9256 (define-public emacs-mu4e-jump-to-list
9257 (let ((commit "358bba003543b49ffa266e503e54aebd0ebe614b")
9258 (revision "1"))
9259 (package
9260 (name "emacs-mu4e-jump-to-list")
9261 (version (git-version "1.0" revision commit))
9262 (source
9263 (origin
9264 (method git-fetch)
9265 (uri (git-reference
9266 (url "https://gitlab.com/wavexx/mu4e-jump-to-list.el.git")
9267 (commit commit)))
9268 (file-name (git-file-name name version))
9269 (sha256
9270 (base32
9271 "00y9nap61q1z2cdql4k9g7fgi2gdgd9iy5s5lzrd9a4agbx6r7sv"))))
9272 (build-system emacs-build-system)
9273 (propagated-inputs
9274 `(("mu" ,mu)))
9275 (home-page "https://gitlab.com/wavexx/mu4e-jump-to-list.el")
9276 (synopsis "Select and view mailing lists in mu4e")
9277 (description
9278 "@code{mu4e-jump-to-list} allows you to select and view mailing lists
9279 automatically using existing List-ID headers in your mu database. Just press
9280 \"l\" in the headers view and any mailing list you've subscribed to will be
9281 automatically discovered and presented in recency order.")
9282 (license license:gpl3+))))
9283
9284 (define-public emacs-mu4e-patch
9285 (let ((commit "522da46c1653b1cacc79cde91d6534da7ae9517d")
9286 (revision "1"))
9287 (package
9288 (name "emacs-mu4e-patch")
9289 (version (git-version "0.1.0" revision commit))
9290 (source (origin
9291 (method git-fetch)
9292 (uri (git-reference
9293 (url "https://github.com/seanfarley/mu4e-patch")
9294 (commit commit)))
9295 (file-name (git-file-name name version))
9296 (sha256
9297 (base32
9298 "10lzf3b70pk6rzdrgx0ww0gc94v0ydh9zj1gbsa20xw27ds7hmfn"))))
9299 (build-system emacs-build-system)
9300 (propagated-inputs
9301 `(("mu" ,mu)))
9302 (home-page "https://github.com/seanfarley/mu4e-patch")
9303 (synopsis "Colorize patch-like emails in mu4e")
9304 (description
9305 "Extension for mu4e to colorize patch-like emails with diff-mode.
9306 This is based on Frank Terbeck's @code{gnus-article-treat-patch.el} but has
9307 been adapted to work with mu4e.")
9308 (license license:gpl3+))))
9309
9310 (define-public emacs-pretty-mode
9311 (package
9312 (name "emacs-pretty-mode")
9313 (version "2.0.3")
9314 (source
9315 (origin
9316 (method git-fetch)
9317 (uri (git-reference
9318 (url "https://github.com/akatov/pretty-mode/")
9319 (commit version)))
9320 (file-name (git-file-name name version))
9321 (sha256
9322 (base32
9323 "013fig9i4fyx16krp2vfv953p3rwdzr38zs6i50af4pqz4vrcfvh"))))
9324 (build-system emacs-build-system)
9325 (home-page "https://github.com/akatov/pretty-mode")
9326 (synopsis "Redisplay parts of the buffer as Unicode symbols")
9327 (description
9328 "Emacs minor mode for redisplaying parts of the buffer as pretty symbols.")
9329 (license license:gpl3+)))
9330
9331 (define-public emacs-yasnippet
9332 (package
9333 (name "emacs-yasnippet")
9334 (version "0.14.0")
9335 (source
9336 (origin
9337 (method git-fetch)
9338 (uri (git-reference
9339 (url "https://github.com/joaotavora/yasnippet.git")
9340 (commit version)))
9341 (file-name (string-append name "-" version ".tar.gz"))
9342 (sha256
9343 (base32 "0via9dzw8m5lzymg1h78xkwjssh39zr3g6ccyamlf1rjzjsyxknv"))
9344 (modules '((guix build utils)))
9345 (snippet
9346 '(begin
9347 ;; YASnippet expects a "snippets" subdirectory in the same
9348 ;; directory as yasnippet.el, but we don't install it because it's
9349 ;; a git submodule pointing to an external repository. Adjust
9350 ;; `yas-snippet-dirs' to prevent warnings about a missing
9351 ;; directory.
9352 (substitute* "yasnippet.el"
9353 (("^ +'yas-installed-snippets-dir\\)\\)\n")
9354 "))\n"))
9355 #t))))
9356 (build-system emacs-build-system)
9357 (arguments
9358 `(#:tests? #t
9359 #:test-command '("emacs" "--batch"
9360 "-l" "yasnippet-tests.el"
9361 "-f" "ert-run-tests-batch-and-exit")
9362 ;; FIXME: one failing test.
9363 #:phases
9364 (modify-phases %standard-phases
9365 (add-before 'check 'make-tests-writable
9366 (lambda _
9367 (make-file-writable "yasnippet-tests.el")
9368 #t))
9369 (add-before 'check 'delete-rebinding-test
9370 (lambda _
9371 (emacs-batch-edit-file "yasnippet-tests.el"
9372 `(progn (goto-char (point-min))
9373 (re-search-forward "ert-deftest test-rebindings")
9374 (beginning-of-line)
9375 (kill-sexp)
9376 (basic-save-buffer)))
9377 #t)))))
9378 (home-page "https://github.com/joaotavora/yasnippet")
9379 (synopsis "Yet another snippet extension for Emacs")
9380 (description
9381 "YASnippet is a template system for Emacs. It allows you to type an
9382 abbreviation and automatically expand it into function templates.")
9383 (license license:gpl3+)))
9384
9385 (define-public emacs-yasnippet-snippets
9386 (package
9387 (name "emacs-yasnippet-snippets")
9388 (version "0.20")
9389 (source
9390 (origin
9391 (method git-fetch)
9392 (uri (git-reference
9393 (url "https://github.com/AndreaCrotti/yasnippet-snippets")
9394 (commit version)))
9395 (file-name (git-file-name name version))
9396 (sha256
9397 (base32 "095w7cdmfwmmr6426mbq15n0a5izgbmv9408m9yh1pqz5x3v3vsx"))))
9398 (build-system trivial-build-system)
9399 (arguments
9400 `(#:modules ((guix build utils))
9401 #:builder
9402 (begin
9403 (use-modules (guix build utils))
9404 (let* ((source (assoc-ref %build-inputs "source"))
9405 (out (assoc-ref %outputs "out"))
9406 (snippet-dir
9407 (string-append out "/share/emacs/yasnippet-snippets/")))
9408 (with-directory-excursion source
9409 (mkdir-p snippet-dir)
9410 (copy-recursively "snippets" snippet-dir)))
9411 #t)))
9412 (home-page "https://github.com/AndreaCrotti/yasnippet-snippets")
9413 (synopsis "Collection of YASnippet snippets for many languages")
9414 (description
9415 "Provides Andrea Crotti's collection of YASnippet snippets. After installation,
9416 the snippets will be in \"~/.guix-profile/share/emacs/yasnippet-snippets/\".
9417 To make YASnippet aware of these snippets, add the above directory to
9418 @code{yas-snippet-dirs}.")
9419 (license license:gpl3+)))
9420
9421 (define-public emacs-helm-c-yasnippet
9422 (let ((commit "65ca732b510bfc31636708aebcfe4d2d845b59b0")
9423 (revision "1"))
9424 (package
9425 (name "emacs-helm-c-yasnippet")
9426 (version (string-append "0.6.7" "-" revision "."
9427 (string-take commit 7)))
9428 (source (origin
9429 (method git-fetch)
9430 (uri (git-reference
9431 (url "https://github.com/emacs-jp/helm-c-yasnippet")
9432 (commit commit)))
9433 (file-name (git-file-name name version))
9434 (sha256
9435 (base32
9436 "1cbafjqlzxbg19xfdqsinsh7afq58gkf44rsg1qxfgm8g6zhr7f8"))))
9437 (build-system emacs-build-system)
9438 (propagated-inputs
9439 `(("emacs-helm" ,emacs-helm)
9440 ("emacs-yasnippet" ,emacs-yasnippet)))
9441 (home-page "https://github.com/emacs-jp/helm-c-yasnippet")
9442 (synopsis "Helm integration for Yasnippet")
9443 (description "This Emacs library provides Helm interface for
9444 Yasnippet.")
9445 (license license:gpl2+))))
9446
9447 (define-public emacs-helm-system-packages
9448 ;; There won't be a new release after 1.10.1 until
9449 ;; https://github.com/emacs-helm/helm-system-packages/issues/25 is fixed,
9450 ;; and latest commits fix import issues with Guix.
9451 (let ((commit "6572340f41611ef1991e9612d34d59130957ee4a"))
9452 (package
9453 (name "emacs-helm-system-packages")
9454 (version (git-version "1.10.1" "1" commit))
9455 (source (origin
9456 (method git-fetch)
9457 (uri (git-reference
9458 (url "https://github.com/emacs-helm/helm-system-packages")
9459 (commit commit)))
9460 (file-name (git-file-name name version))
9461 (sha256
9462 (base32
9463 "0mcz6vkpk12vsyd37xv1rbg4v442sxc3lj8yxskqg294xbdaclz4"))))
9464 (build-system emacs-build-system)
9465 (inputs
9466 `(("recutils" ,recutils)))
9467 (propagated-inputs
9468 `(("emacs-helm" ,emacs-helm)))
9469 (arguments
9470 `(#:phases
9471 (modify-phases %standard-phases
9472 (add-after 'unpack 'configure
9473 (lambda* (#:key inputs outputs #:allow-other-keys)
9474 (let ((recutils (assoc-ref inputs "recutils")))
9475 ;; Specify the absolute file names of the various
9476 ;; programs so that everything works out-of-the-box.
9477 (substitute* "helm-system-packages-guix.el"
9478 (("recsel") (string-append recutils "/bin/recsel")))))))))
9479 (home-page "https://github.com/emacs-helm/helm-system-packages")
9480 (synopsis "Helm System Packages is an interface to your package manager")
9481 (description "List all available packages in Helm (with installed
9482 packages displayed in their own respective face). Fuzzy-search, mark and
9483 execute the desired action over any selections of packages: Install,
9484 uninstall, display packages details (in Org Mode) or insert details at point,
9485 find files owned by packages... And much more, including performing all the
9486 above over the network.")
9487 (license license:gpl3+))))
9488
9489 (define-public emacs-helm-org-rifle
9490 (package
9491 (name "emacs-helm-org-rifle")
9492 (version "1.7.0")
9493 (source
9494 (origin
9495 (method git-fetch)
9496 (uri (git-reference
9497 (url "https://github.com/alphapapa/helm-org-rifle")
9498 (commit version)))
9499 (file-name (git-file-name name version))
9500 (sha256
9501 (base32
9502 "058zvh7cdall7dl3xay9ibcjvs13fbqp8fli3lz980pinmsds3r2"))))
9503 (build-system emacs-build-system)
9504 (propagated-inputs
9505 `(("emacs-dash" ,emacs-dash)
9506 ("emacs-f" ,emacs-f)
9507 ("emacs-helm" ,emacs-helm)
9508 ("emacs-org" ,emacs-org)
9509 ("emacs-s" ,emacs-s)))
9510 (home-page "https://github.com/alphapapa/helm-org-rifle")
9511 (synopsis "Rifle through Org files")
9512 (description "This package searches both headings and contents of entries
9513 in Org buffers and displays matching entries.")
9514 (license license:gpl3+)))
9515
9516 (define-public emacs-dired-git-info
9517 ;; Upstream has no proper release. The base version is extracted from the
9518 ;; "Version" keyword in the main file.
9519 (let ((commit "91d57e3a4c5104c66a3abc18e281ee55e8979176")
9520 (revision "0"))
9521 (package
9522 (name "emacs-dired-git-info")
9523 (version (git-version "0.3.1" revision commit))
9524 (source
9525 (origin
9526 (method git-fetch)
9527 (uri
9528 (git-reference
9529 (url "https://github.com/clemera/dired-git-info")
9530 (commit commit)))
9531 (file-name (git-file-name name version))
9532 (sha256
9533 (base32 "1dr4iv95s4barxxj56znqkl9z0lg5jw731jmjr01s6vn8ar69gik"))))
9534 (build-system emacs-build-system)
9535 (home-page "https://github.com/clemera/dired-git-info/")
9536 (synopsis "Show git info in Emacs Dired")
9537 (description "This Emacs package provides a minor mode which shows git
9538 information inside the Dired buffer.")
9539 (license license:gpl3+))))
9540
9541 (define-public emacs-dired-toggle-sudo
9542 (let ((commit "13bbe52c54893f5aa3e56228450ffdd0c9e1d169")
9543 (revision "0"))
9544 (package
9545 (name "emacs-dired-toggle-sudo")
9546 (version (git-version "1.0" revision commit))
9547 (source
9548 (origin
9549 (method git-fetch)
9550 (uri (git-reference
9551 (url "https://github.com/renard/dired-toggle-sudo")
9552 (commit commit)))
9553 (file-name (git-file-name name version))
9554 (sha256
9555 (base32
9556 "1fw1pb1z6krqd1pfxxhr6rrfr9ckkcb0zsjzbjk0i2i1q5cg6car"))))
9557 (build-system emacs-build-system)
9558 (home-page "https://github.com/renard/dired-toggle-sudo")
9559 (synopsis "Browse directory with @code{sudo} privileges")
9560 (description "This package allows for the use of @code{dired} with
9561 @code{sudo} privileges.")
9562 (license license:wtfpl2))))
9563
9564 (define-public emacs-diredfl
9565 (package
9566 (name "emacs-diredfl")
9567 (version "0.4")
9568 (source
9569 (origin
9570 (method git-fetch)
9571 (uri
9572 (git-reference
9573 (url "https://github.com/purcell/diredfl")
9574 (commit version)))
9575 (file-name (git-file-name name version))
9576 (sha256
9577 (base32 "1zb2lz7rp58zqvpniqcsmqabi7nqg2d8bfd0hgmq68bn2hd25b5z"))))
9578 (build-system emacs-build-system)
9579 (home-page "https://github.com/purcell/diredfl/")
9580 (synopsis "Extra Emacs font lock rules for a more colourful Dired")
9581 (description "This library enables additional font locking in Dired mode.
9582 This is adapted from the extra font lock rules provided by Drew Adams' Dired+
9583 package.")
9584 (license license:gpl3+)))
9585
9586 (define-public emacs-memoize
9587 (package
9588 (name "emacs-memoize")
9589 (version "1.1")
9590 (source
9591 (origin
9592 (method git-fetch)
9593 (uri (git-reference
9594 (url "https://github.com/skeeto/emacs-memoize.git")
9595 (commit version)))
9596 (file-name (git-file-name name version))
9597 (sha256
9598 (base32 "04qgnlg4x6va7x364dhj1wbjmz8p5iq2vk36mn9198k2vxmijwzk"))))
9599 (build-system emacs-build-system)
9600 (arguments
9601 `(#:tests? #t
9602 #:test-command '("emacs" "--batch"
9603 "-l" "memoize-test.el"
9604 "-f" "ert-run-tests-batch-and-exit")))
9605 (home-page "https://github.com/skeeto/emacs-memoize")
9606 (synopsis "Emacs lisp memoization library")
9607 (description "@code{emacs-memoize} is an Emacs library for
9608 memoizing functions.")
9609 (license license:unlicense)))
9610
9611 (define-public emacs-linum-relative
9612 (package
9613 (name "emacs-linum-relative")
9614 (version "0.6")
9615 (source
9616 (origin
9617 (method git-fetch)
9618 (uri (git-reference
9619 (url "https://github.com/coldnew/linum-relative.git")
9620 (commit version)))
9621 (file-name (git-file-name name version))
9622 (sha256
9623 (base32 "0b3n1gk2w1p72x0zfdz9l70winq2fnjpjrgq0awxx730xk7ypp5n"))))
9624 (build-system emacs-build-system)
9625 (home-page "https://github.com/coldnew/linum-relative")
9626 (synopsis "Relative line numbering for Emacs")
9627 (description "@code{emacs-linum-relative} displays the relative line
9628 number on the left margin in Emacs.")
9629 (license license:gpl2+)))
9630
9631 (define-public emacs-idle-highlight
9632 (package
9633 (name "emacs-idle-highlight")
9634 (version "1.1.3")
9635 (source
9636 (origin
9637 (method git-fetch)
9638 (uri (git-reference
9639 (url "https://github.com/nonsequitur/idle-highlight-mode.git")
9640 (commit version)))
9641 (file-name (git-file-name name version))
9642 (sha256
9643 (base32 "0x4w1ksrw7dicl84zpf4d4scg672dyan9g95jkn6zvri0lr8xciv"))))
9644 (build-system emacs-build-system)
9645 (home-page "https://www.emacswiki.org/emacs/IdleHighlight")
9646 (synopsis "Highlights all occurrences of the word the point is on")
9647 (description
9648 "This Emacs package provides @code{idle-highlight-mode} that sets
9649 an idle timer to highlight all occurrences in the buffer of the word under
9650 the point.")
9651 (license license:gpl3+)))
9652
9653 (define-public emacs-ox-twbs
9654 (package
9655 (name "emacs-ox-twbs")
9656 (version "1.1.1")
9657 (source
9658 (origin
9659 (method git-fetch)
9660 (uri (git-reference
9661 (url "https://github.com/marsmining/ox-twbs.git")
9662 (commit (string-append "v" version))))
9663 (file-name (git-file-name name version))
9664 (sha256
9665 (base32 "0kd45p8y7ykadmai4jn1x1pgpafyqggwb1ccbjzalxw4k9wmd45f"))))
9666 (build-system emacs-build-system)
9667 (home-page "https://github.com/marsmining/ox-twbs")
9668 (synopsis "Export org-mode docs as HTML compatible with Twitter Bootstrap")
9669 (description
9670 "This Emacs package outputs your org-mode docs with a simple, clean and
9671 modern look. It implements a new HTML back-end for exporting org-mode docs as
9672 HTML compatible with Twitter Bootstrap. By default, HTML is exported with
9673 jQuery and Bootstrap resources included via osscdn.")
9674 (license license:gpl3+)))
9675
9676 (define-public emacs-highlight-sexp
9677 (package
9678 (name "emacs-highlight-sexp")
9679 (version "1.0")
9680 (source
9681 (origin
9682 (method git-fetch)
9683 (uri (git-reference
9684 (url "https://github.com/daimrod/highlight-sexp.git")
9685 (commit (string-append "v" version))))
9686 (file-name (git-file-name name version))
9687 (sha256
9688 (base32 "12cyk2q5g6p4ac2hykw1cag7dp1prjjnck5f7nalwwaklmy62y79"))))
9689 (build-system emacs-build-system)
9690 (home-page "https://github.com/daimrod/highlight-sexp")
9691 (synopsis "Minor mode that highlights the s-exp at the current position")
9692 (description
9693 "This Emacs package highlights the s-exp at the current position.")
9694 (license license:gpl3+)))
9695
9696 (define-public emacs-highlight-stages
9697 (let ((commit "29cbc5b78261916da042ddb107420083da49b271")
9698 (revision "1"))
9699 (package
9700 (name "emacs-highlight-stages")
9701 (version (string-append "1.1.0" "-" revision "." (string-take commit 7)))
9702 (source
9703 (origin
9704 (method git-fetch)
9705 (uri (git-reference
9706 (url "https://github.com/zk-phi/highlight-stages.git")
9707 (commit commit)))
9708 (file-name (git-file-name name version))
9709 (sha256
9710 (base32
9711 "0r6nbcrr0dqpgm8dir8ahzjy7rw4nrac48byamzrq96r7ajlxlv0"))
9712 (patches
9713 (search-patches "emacs-highlight-stages-add-gexp.patch"))))
9714 (build-system emacs-build-system)
9715 (home-page "https://github.com/wigust/highlight-stages")
9716 (synopsis "Minor mode that highlights (quasi-quoted) expressions")
9717 (description "@code{highlight-stages} provides an Emacs minor mode that
9718 highlights quasi-quoted expressions.")
9719 (license license:gpl3+))))
9720
9721 (define-public emacspeak
9722 (package
9723 (name "emacspeak")
9724 (version "50.0")
9725 (source
9726 (origin
9727 (method url-fetch)
9728 (uri (string-append
9729 "https://github.com/tvraman/emacspeak/releases/download/"
9730 version "/emacspeak-" version ".tar.bz2"))
9731 (sha256
9732 (base32
9733 "0rsj7rzfyqmyidfsjrhjnxi2d43axx6r3gac1fhv5xkkbiiqzqkb"))))
9734 (build-system gnu-build-system)
9735 (arguments
9736 '(#:make-flags (list (string-append "prefix="
9737 (assoc-ref %outputs "out")))
9738 #:phases
9739 (modify-phases %standard-phases
9740 (replace 'configure
9741 (lambda _
9742 (setenv "SHELL" (which "sh"))
9743 ;; Configure Emacspeak according to etc/install.org.
9744 (invoke "make" "config")))
9745 (add-after 'build 'build-espeak
9746 (lambda _
9747 (invoke "make" "espeak")))
9748 (replace 'install
9749 (lambda* (#:key inputs outputs #:allow-other-keys)
9750 (let* ((out (assoc-ref outputs "out"))
9751 (bin (string-append out "/bin"))
9752 (lisp (string-append out "/share/emacs/site-lisp/emacspeak"))
9753 (info (string-append out "/share/info"))
9754 (emacs (string-append (assoc-ref inputs "emacs")
9755 "/bin/emacs")))
9756 ;; According to etc/install.org, the Emacspeak directory should
9757 ;; be copied to its installation destination.
9758 (for-each
9759 (lambda (file)
9760 (copy-recursively file (string-append lisp "/" file)))
9761 '("etc" "info" "js" "lisp" "media" "servers" "sounds"
9762 "stumpwm" "xsl"))
9763 ;; Make sure emacspeak is loaded from the correct directory.
9764 (substitute* "etc/emacspeak.sh"
9765 (("/lisp/emacspeak-setup.el")
9766 (string-append lisp "/lisp/emacspeak-setup.el")))
9767 ;; Install the convenient startup script.
9768 (mkdir-p bin)
9769 (copy-file "etc/emacspeak.sh" (string-append bin "/emacspeak")))
9770 #t))
9771 (add-after 'install 'wrap-program
9772 (lambda* (#:key inputs outputs #:allow-other-keys)
9773 (let* ((out (assoc-ref outputs "out"))
9774 (emacspeak (string-append out "/bin/emacspeak"))
9775 (espeak (string-append (assoc-ref inputs "espeak")
9776 "/bin/espeak")))
9777 ;; The environment variable DTK_PROGRAM tells emacspeak what
9778 ;; program to use for speech.
9779 (wrap-program emacspeak
9780 `("DTK_PROGRAM" ":" prefix (,espeak)))
9781 #t))))
9782 #:tests? #f)) ; no check target
9783 (inputs
9784 `(("emacs" ,emacs)
9785 ("espeak" ,espeak)
9786 ("perl" ,perl)
9787 ("tcl" ,tcl)
9788 ("tclx" ,tclx)))
9789 (home-page "http://emacspeak.sourceforge.net")
9790 (synopsis "Audio desktop interface for Emacs")
9791 (description
9792 "Emacspeak is a speech interface that allows visually impaired users to
9793 interact independently and efficiently with the computer. Audio formatting
9794 --a technique pioneered by AsTeR-- and full support for W3C's Aural CSS (ACSS)
9795 allows Emacspeak to produce rich aural presentations of electronic information.
9796 By seamlessly blending all aspects of the Internet such as Web-surfing and
9797 messaging, Emacspeak speech-enables local and remote information via a
9798 consistent and well-integrated user interface.")
9799 (license license:gpl2+)))
9800
9801 (define-public emacs-adaptive-wrap
9802 (package
9803 (name "emacs-adaptive-wrap")
9804 (version "0.5.1")
9805 (source (origin
9806 (method url-fetch)
9807 (uri (string-append
9808 "https://elpa.gnu.org/packages/adaptive-wrap-"
9809 version ".el"))
9810 (sha256
9811 (base32
9812 "0qi7gjprcpywk2daivnlavwsx53hl5wcqvpxbwinvigg42vxh3ll"))))
9813 (build-system emacs-build-system)
9814 (home-page "https://elpa.gnu.org/packages/adaptive-wrap.html")
9815 (synopsis "Smart line-wrapping with wrap-prefix")
9816 (description
9817 "This Emacs package provides the @code{adaptive-wrap-prefix-mode}
9818 minor mode which sets the wrap-prefix property on the fly so that
9819 single-long-line paragraphs get word-wrapped in a way similar to what
9820 you'd get with @kbd{M-q} using @code{adaptive-fill-mode}, but without
9821 actually changing the buffer's text.")
9822 (license license:gpl3+)))
9823
9824 (define-public emacs-diff-hl
9825 (package
9826 (name "emacs-diff-hl")
9827 (version "1.8.7")
9828 (source
9829 (origin
9830 (method git-fetch)
9831 (uri (git-reference
9832 (url "https://github.com/dgutov/diff-hl")
9833 (commit version)))
9834 (file-name (git-file-name name version))
9835 (sha256
9836 (base32 "0i7x6qgr3nydcwhw72sbc8z9x9dfhgkf0dqj9nakvx36vn1bblbq"))))
9837 (build-system emacs-build-system)
9838 (home-page "https://github.com/dgutov/diff-hl")
9839 (synopsis
9840 "Highlight uncommitted changes using VC")
9841 (description
9842 "@code{diff-hl-mode} highlights uncommitted changes on the side of the
9843 window (using the fringe, by default), allows you to jump between
9844 the hunks and revert them selectively.")
9845 (license license:gpl3+)))
9846
9847 (define-public emacs-diminish
9848 (package
9849 (name "emacs-diminish")
9850 (version "0.45")
9851 (source
9852 (origin
9853 (method git-fetch)
9854 (uri (git-reference
9855 (url "https://github.com/myrjola/diminish.el.git")
9856 (commit (string-append "v" version))))
9857 (file-name (git-file-name name version))
9858 (sha256
9859 (base32 "0qpgfgp8hrzz4vdifxq8h25n0a0jlzgf7aa1fpy6r0080v5rqbb6"))))
9860 (build-system emacs-build-system)
9861 (home-page "https://github.com/myrjola/diminish.el")
9862 (synopsis "Diminish minor modes with no modeline display")
9863 (description "@code{emacs-diminish} implements hiding or
9864 abbreviation of the mode line displays (lighters) of minor modes.")
9865 (license license:gpl2+)))
9866
9867 (define-public emacs-use-package
9868 (package
9869 (name "emacs-use-package")
9870 (version "2.4")
9871 (source (origin
9872 (method git-fetch)
9873 (uri (git-reference
9874 (url "https://github.com/jwiegley/use-package")
9875 (commit version)))
9876 (file-name (git-file-name name version))
9877 (sha256
9878 (base32
9879 "1b7mjjh0d6fmkkd9vyj64vca27xqhga0nvyrrcqxpqjn62zq046y"))))
9880 (build-system emacs-build-system)
9881 (propagated-inputs
9882 `(("emacs-diminish" ,emacs-diminish)))
9883 (arguments
9884 `(#:tests? #t
9885 #:test-command '("emacs" "--batch"
9886 "-l" "use-package-tests.el"
9887 "-f" "ert-run-tests-batch-and-exit")))
9888 (home-page "https://github.com/jwiegley/use-package")
9889 (synopsis "Declaration for simplifying your .emacs")
9890 (description "The use-package macro allows you to isolate package
9891 configuration in your @file{.emacs} file in a way that is both
9892 performance-oriented and tidy.")
9893 (license license:gpl2+)))
9894
9895 (define-public emacs-leaf
9896 (package
9897 (name "emacs-leaf")
9898 (version "3.5.0")
9899 (source
9900 (origin
9901 (method git-fetch)
9902 (uri (git-reference
9903 (url "https://github.com/conao3/leaf.el.git")
9904 (commit (string-append "v" version))))
9905 (file-name (git-file-name name version))
9906 (sha256
9907 (base32
9908 "1rgd59146wad92yc64las0qgx67k2ifgsw1vwhp40xvkd7kb0r6d"))))
9909 (build-system emacs-build-system)
9910 (home-page "https://github.com/conao3/leaf.el")
9911 (arguments
9912 `(#:tests? #t
9913 #:test-command '("emacs" "--batch"
9914 "-l" "leaf-tests.el"
9915 "-f" "cort-test-run")))
9916 (synopsis
9917 "Simplify your init.el configuration, extended use-package")
9918 (description
9919 "This package provides macros that allows you to declaratively configure
9920 settings typical of an Elisp package with various keywords. The syntax is
9921 similar, but not identical to use-package -- overall, leaf aims at a cleaner
9922 and more predictable implementation.")
9923 (license license:agpl3+)))
9924
9925 (define-public emacs-strace-mode
9926 (let* ((commit "6a69b4b06db6797af56f33eda5cb28af94e59f11")
9927 (revision "1"))
9928 (package
9929 (name "emacs-strace-mode")
9930 (version (string-append "0.0.2-" revision "." (string-take commit 7)))
9931 (source (origin
9932 (method git-fetch)
9933 (uri (git-reference
9934 (url "https://github.com/pkmoore/strace-mode")
9935 (commit commit)))
9936 (file-name (git-file-name name version))
9937 (sha256
9938 (base32
9939 "1lbk2kzdznf2bkfazizfbimaxxzfzv00lrz1ran9dc2zqbc0bj9f"))))
9940 (build-system emacs-build-system)
9941 (home-page "https://github.com/pkmoore/strace-mode")
9942 (synopsis "Emacs major mode to highlight strace outputs")
9943 (description "@code{emacs-strace-mode} provides an Emacs major mode
9944 highlighting strace outputs.")
9945 (license license:gpl3+))))
9946
9947 (define-public emacs-default-encrypt
9948 (package
9949 (name "emacs-default-encrypt")
9950 (version "4.4")
9951 (source
9952 (origin
9953 (method url-fetch)
9954 (uri (string-append
9955 "https://informationelle-selbstbestimmung-im-internet.de"
9956 "/emacs/jl-encrypt" version "/jl-encrypt.el"))
9957 (file-name (string-append "jl-encrypt-" version ".el"))
9958 (sha256
9959 (base32
9960 "0w9ggz075j1zwg7d0rv9k8238g600p7czfnnsnawswi7yps2xk78"))))
9961 (build-system emacs-build-system)
9962 (home-page
9963 "https://informationelle-selbstbestimmung-im-internet.de/Emacs.html")
9964 (synopsis "Automatically encrypt or sign Gnus messages in Emacs")
9965 (description
9966 "DefaultEncrypt is designed to be used with Gnus in Emacs. It
9967 automatically encrypts messages that you send (e.g., email) when public keys
9968 for all recipients are available, and it protects you from accidentally
9969 sending un-encrypted messages. It can also be configured to automatically
9970 sign messages that you send. For details and instructions on how to use
9971 DefaultEncrypt, please refer to the home page or read the comments in the
9972 source file, @file{jl-encrypt.el}.")
9973 (license license:gpl3+)))
9974
9975 (define-public emacs-extend-smime
9976 (package
9977 (name "emacs-extend-smime")
9978 (version "3.3")
9979 (source
9980 (origin
9981 (method url-fetch)
9982 (uri (string-append
9983 "https://informationelle-selbstbestimmung-im-internet.de"
9984 "/emacs/jl-smime" version "/jl-smime.el"))
9985 (file-name (string-append "jl-smime-" version ".el"))
9986 (sha256
9987 (base32
9988 "1iv8s2wjmv3v5qfwlcy9hvvrmxxvp3f8m1krlr789q7bbh35jynh"))))
9989 (build-system emacs-build-system)
9990 (home-page
9991 "https://informationelle-selbstbestimmung-im-internet.de/Emacs.html")
9992 (synopsis "Improved S/MIME support for Gnus in Emacs")
9993 (propagated-inputs
9994 `(("emacs-default-encrypt" ,emacs-default-encrypt)))
9995 (description
9996 ;; TRANSLATORS: ExtendSMIME, DefaultEncrypt, and emacs-default-encrypt
9997 ;; should not be translated. The name "emacs-default-encrypt" refers to
9998 ;; the Guix package that provides DefaultEncrypt.
9999 "ExtendSMIME is designed to be used with Gnus in Emacs. It enhances
10000 DefaultEncrypt (emacs-default-encrypt) to support S/MIME (Secure/Multipurpose
10001 Internet Mail Extensions) via LDAP (Lightweight Directory Access Protocol).
10002 Before a message (e.g., email) is sent, ExtendSMIME searches for missing
10003 certificates via LDAP and imports them into @code{gpgsm}. When certificates
10004 for all recipients are available, DefaultEncrypt automatically encrypts the
10005 message. For details and instructions on how to use ExtendSMIME, please refer
10006 to the home page or read the comments in the source file,
10007 @file{jl-smime.el}.")
10008 (license license:gpl3+)))
10009
10010 (define-public emacs-htmlize
10011 (package
10012 (name "emacs-htmlize")
10013 (version "1.55")
10014 (source
10015 (origin
10016 (method git-fetch)
10017 (uri (git-reference
10018 (url "https://github.com/hniksic/emacs-htmlize.git")
10019 (commit (string-append "release/" version))))
10020 (file-name (git-file-name name version))
10021 (sha256
10022 (base32 "0gi3xshscpa53qrj8yplfsqahcilc2ybcc2p7gnh5nbnf2n1n97x"))))
10023 (build-system emacs-build-system)
10024 (home-page "https://github.com/hniksic/emacs-htmlize")
10025 (synopsis "Convert buffer text and decorations to HTML")
10026 (description "@code{emacs-htmlize} converts the buffer text and
10027 the associated decorations to HTML. Output to CSS, inline CSS and
10028 fonts is supported.")
10029 (license license:gpl2+)))
10030
10031 (define-public emacs-xmlgen
10032 (package
10033 (name "emacs-xmlgen")
10034 (version "0.5")
10035 (source
10036 (origin
10037 (method git-fetch)
10038 (uri (git-reference
10039 (url "https://github.com/philjackson/xmlgen.git")
10040 (commit version)))
10041 (file-name (git-file-name name version))
10042 (sha256
10043 (base32 "096i29v0badx0a6339h9ckdz78zj59gbjdp7vj7vhkq9d830392s"))))
10044 (build-system emacs-build-system)
10045 (arguments
10046 `(#:tests? #t
10047 #:test-command '("emacs" "--batch"
10048 "-l" "xmlgen-test.el"
10049 "-f" "ert-run-tests-batch-and-exit")))
10050 (home-page "https://github.com/philjackson/xmlgen")
10051 (synopsis "S-expression to XML domain specific language (DSL) in
10052 Emacs Lisp")
10053 (description "@code{emacs-xmlgen} provides S-expression to XML
10054 conversion for Emacs Lisp.")
10055 (license license:gpl2+)))
10056
10057 (define-public emacs-cdlatex
10058 (package
10059 (name "emacs-cdlatex")
10060 (version "4.7")
10061 (source
10062 (origin
10063 (method git-fetch)
10064 (uri (git-reference
10065 (url "https://github.com/cdominik/cdlatex.git")
10066 (commit version)))
10067 (file-name (git-file-name name version))
10068 (sha256
10069 (base32 "1jj9vmhc4s3ych08bjm1c2xwi81z1p20rj7bvxrgvb5aga2ghi9d"))))
10070 (build-system emacs-build-system)
10071 (propagated-inputs
10072 `(("emacs-auctex" ,emacs-auctex)))
10073 (home-page "https://github.com/cdominik/cdlatex")
10074 (synopsis "Fast Emacs input methods for LaTeX environments and
10075 math")
10076 (description "CDLaTeX is an Emacs minor mode supporting fast
10077 insertion of environment templates and math in LaTeX. Similar
10078 commands are also offered as part of the AUCTeX package, but it is not
10079 the same - CDLaTeX focuses on speediness for inserting LaTeX
10080 constructs.")
10081 (license license:gpl3+)))
10082
10083 (define-public emacs-cnfonts
10084 (package
10085 (name "emacs-cnfonts")
10086 (version "0.9.1")
10087 (source
10088 (origin
10089 (method git-fetch)
10090 (uri (git-reference
10091 (url "https://github.com/tumashu/cnfonts.git")
10092 (commit (string-append "v" version))))
10093 (file-name (git-file-name name version))
10094 (sha256
10095 (base32 "11d44lf0m0kbzq1mvyqkl4aprys0xqaarp08nij57xnynin1rynx"))))
10096 (build-system emacs-build-system)
10097 (home-page "https://github.com/tumashu/cnfonts")
10098 (synopsis "Emacs Chinese fonts setup tool")
10099 (description "cnfonts is a Chinese fonts setup tool, allowing for easy
10100 configuration of Chinese fonts.")
10101 (license license:gpl2+)))
10102
10103 (define-public emacs-php-mode
10104 (package
10105 (name "emacs-php-mode")
10106 (version "1.22.2")
10107 (source (origin
10108 (method git-fetch)
10109 (uri (git-reference
10110 (url "https://github.com/ejmr/php-mode.git")
10111 (commit (string-append "v" version))))
10112 (file-name (git-file-name name version))
10113 (sha256
10114 (base32
10115 "1r4bpyavlndd4c78cv5cc97bc0gkd4cggiyz4kd2vg6zlyc1nld3"))))
10116 (build-system emacs-build-system)
10117 (home-page "https://github.com/ejmr/php-mode")
10118 (synopsis "Major mode for editing PHP code")
10119 (description "@code{php-mode} is a major mode for editing PHP source
10120 code. It's an extension of C mode; thus it inherits all C mode's navigation
10121 functionality. But it colors according to the PHP grammar and indents
10122 according to the PEAR coding guidelines. It also includes a couple handy
10123 IDE-type features such as documentation search and a source and class
10124 browser.")
10125 (license license:gpl3+)))
10126
10127 (define-public emacs-pos-tip
10128 (package
10129 (name "emacs-pos-tip")
10130 (version "0.4.6")
10131 (source
10132 (origin
10133 (method git-fetch)
10134 (uri (git-reference
10135 (url "https://github.com/pitkali/pos-tip.git")
10136 (commit version)))
10137 (file-name (git-file-name name version))
10138 (sha256
10139 (base32 "0w8bnspnk871qndp18hs0wk4x9x31xr9rwbvf5dc8mcbnj29ch33"))))
10140 (build-system emacs-build-system)
10141 ;; The following functions and variables needed by emacs-pos-tip are
10142 ;; not included in emacs-minimal:
10143 ;; x-display-pixel-width, x-display-pixel-height, x-show-tip
10144 (arguments `(#:emacs ,emacs))
10145 (home-page "https://github.com/pitkali/pos-tip")
10146 (synopsis "Show tooltip at point")
10147 (description "The standard library tooltip.el provides a function for
10148 displaying a tooltip at the mouse position. However, locating a tooltip at an
10149 arbitrary buffer position in a window is not easy. Pos-tip provides such a
10150 function to be used by other frontend programs.")
10151 (license license:gpl2+)))
10152
10153 (define-public emacs-pyim-basedict
10154 (package
10155 (name "emacs-pyim-basedict")
10156 (version "0.3.1")
10157 (source
10158 (origin
10159 (method git-fetch)
10160 (uri (git-reference
10161 (url "https://github.com/tumashu/pyim-basedict.git")
10162 (commit (string-append "v" version))))
10163 (file-name (git-file-name name version))
10164 (sha256
10165 (base32 "0576r8ap9gp91ycjf1d47pn13kxp0f9fysn09zlq44hr0s1y2y5d"))))
10166 (build-system emacs-build-system)
10167 (home-page "https://github.com/tumashu/pyim-basedict")
10168 (synopsis "Input method dictionary of pyim")
10169 (description "Pyim-basedict is the default pinyin input method dictionary,
10170 containing words from the rime project.")
10171 (license license:gpl2+)))
10172
10173 (define-public emacs-pyim
10174 (package
10175 (name "emacs-pyim")
10176 (version "1.8")
10177 (source
10178 (origin
10179 (method git-fetch)
10180 (uri (git-reference
10181 (url "https://github.com/tumashu/pyim")
10182 (commit (string-append "v" version))))
10183 (file-name (git-file-name name version))
10184 (sha256
10185 (base32
10186 "16rma4cv7xgky0g3x4an27v30jdi6i1sqw43cl99zhkqvp43l3f9"))))
10187 (build-system emacs-build-system)
10188 (propagated-inputs
10189 `(("emacs-async" ,emacs-async)
10190 ("emacs-pyim-basedict" ,emacs-pyim-basedict)
10191 ("emacs-popup" ,emacs-popup)
10192 ("emacs-posframe" ,emacs-posframe)))
10193 (home-page "https://github.com/tumashu/pyim")
10194 (synopsis "Chinese input method")
10195 (description "Chinese input method which supports quanpin, shuangpin, wubi
10196 and cangjie.")
10197 (license license:gpl2+)))
10198
10199 (define-public emacs-posframe
10200 (package
10201 (name "emacs-posframe")
10202 (version "0.5.0")
10203 (source
10204 (origin
10205 (method git-fetch)
10206 (uri (git-reference
10207 (url "https://github.com/tumashu/posframe")
10208 (commit (string-append "v" version))))
10209 (file-name (git-file-name name version))
10210 (sha256
10211 (base32
10212 "1fhjxj7gi2pj5rdnmf0gddiwd8iifgjgjp01c01npz1gwwixyqh3"))))
10213 (build-system emacs-build-system)
10214 ;; emacs-minimal does not include the function font-info
10215 (arguments `(#:emacs ,emacs))
10216 (home-page "https://github.com/tumashu/posframe")
10217 (synopsis "Pop a posframe (a child frame) at point")
10218 (description "@code{emacs-posframe} can pop a posframe at point. A
10219 posframe is a child frame displayed within its root window's buffer.
10220 @code{emacs-posframe} is fast and works well with CJK languages.")
10221 (license license:gpl3+)))
10222
10223 (define-public emacs-el2org
10224 (package
10225 (name "emacs-el2org")
10226 (version "0.6.0")
10227 (source
10228 (origin
10229 (method git-fetch)
10230 (uri (git-reference
10231 (url "https://github.com/tumashu/el2org.git")
10232 (commit (string-append "v" version))))
10233 (file-name (git-file-name name version))
10234 (sha256
10235 (base32 "0mzddqny6wpg1fv99xrvlv7rxmaifvmy5bvj4in4pldhm4cx4q1b"))))
10236 (build-system emacs-build-system)
10237 (home-page "https://github.com/tumashu/el2org")
10238 (synopsis "Convert Emacs-lisp file to org file")
10239 (description "El2org is a simple tool, which can convert Emacs-lisp file
10240 to org file, you can use this tool to write orgify commentary.")
10241 (license license:gpl2+)))
10242
10243 (define-public emacs-mustache
10244 (package
10245 (name "emacs-mustache")
10246 (version "0.23")
10247 (source
10248 (origin
10249 (method git-fetch)
10250 (uri (git-reference
10251 (url "https://github.com/Wilfred/mustache.el.git")
10252 (commit version)))
10253 (file-name (git-file-name name version))
10254 (sha256
10255 (base32 "1n2ymd92qpvsby6ms0l3kjhdzzc47rri2aiscc6bs07hm4mjpr9q"))))
10256 (build-system emacs-build-system)
10257 (propagated-inputs
10258 `(("emacs-dash" ,emacs-dash)
10259 ("emacs-ht" ,emacs-ht)
10260 ("emacs-s" ,emacs-s)))
10261 (home-page "https://github.com/Wilfred/mustache.el")
10262 (synopsis "Mustache templating library for Emacs")
10263 (description "Mustache templating library for Emacs, mustache is
10264 a simple web template system, which is described as a logic-less system
10265 because it lacks any explicit control flow statements, both looping and
10266 conditional evaluation can be achieved using section tags processing lists
10267 and lambdas.")
10268 (license license:gpl3+)))
10269
10270 (define-public emacs-org2web
10271 (package
10272 (name "emacs-org2web")
10273 (version "0.9.1")
10274 (source
10275 (origin
10276 (method git-fetch)
10277 (uri (git-reference
10278 (url "https://github.com/tumashu/org2web.git")
10279 (commit (string-append "v" version))))
10280 (file-name (git-file-name name version))
10281 (sha256
10282 (base32 "0wsvfn409a2ivbich8b8zqza78sprirg4bl7igx536ydqclmi0n7"))))
10283 (build-system emacs-build-system)
10284 (propagated-inputs
10285 `(("emacs-dash" ,emacs-dash)
10286 ("emacs-el2org" ,emacs-el2org)
10287 ("emacs-ht" ,emacs-ht)
10288 ("emacs-mustache" ,emacs-mustache)
10289 ("emacs-simple-httpd" ,emacs-simple-httpd)))
10290 (home-page "https://github.com/tumashu/org2web")
10291 (synopsis "Static site generator based on org-mode ")
10292 (description "Org2web is a static site generator based on org-mode,
10293 which code derived from Kelvin H's org-page.")
10294 (license license:gpl2+)))
10295
10296 (define-public emacs-xelb
10297 (package
10298 (name "emacs-xelb")
10299 (version "0.18")
10300 (source (origin
10301 (method url-fetch)
10302 (uri (string-append "https://elpa.gnu.org/packages/xelb-"
10303 version ".tar"))
10304 (sha256
10305 (base32
10306 "1fp5mzl63sh0h3ws4l5p4qgvi7ny8a3fj6k4dhqa98xgw2bx03v7"))))
10307 (build-system emacs-build-system)
10308 ;; The following functions and variables needed by emacs-xelb are
10309 ;; not included in emacs-minimal:
10310 ;; x-display-screens, x-keysym-table, x-alt-keysym, x-meta-keysym
10311 ;; x-hyper-keysym, x-super-keysym, libxml-parse-xml-region
10312 ;; x-display-pixel-width, x-display-pixel-height
10313 (arguments
10314 `(#:emacs ,emacs
10315 #:phases
10316 (modify-phases %standard-phases
10317 (add-after 'unpack 'regenerate-el-files
10318 (lambda* (#:key inputs #:allow-other-keys)
10319 (invoke "make"
10320 (string-append "PROTO_PATH="
10321 (assoc-ref inputs "xcb-proto")
10322 "/share/xcb")
10323 (string-append "EMACS_BIN="
10324 (assoc-ref inputs "emacs")
10325 "/bin/emacs -Q")))))))
10326 (native-inputs `(("xcb-proto" ,xcb-proto)))
10327 (home-page "https://github.com/ch11ng/xelb")
10328 (synopsis "X protocol Emacs Lisp binding")
10329 (description "@code{emacs-xelb} is a pure Emacs Lisp implementation of the
10330 X11 protocol based on the XML description files from the XCB project. It
10331 features an object-oriented API and permits a certain degree of concurrency.
10332 It should enable you to implement low-level X11 applications.")
10333 (license license:gpl3+)))
10334
10335 (define-public emacs-exwm
10336 (package
10337 (name "emacs-exwm")
10338 (version "0.23")
10339 (synopsis "Emacs X window manager")
10340 (source (origin
10341 (method url-fetch)
10342 (uri (string-append "https://elpa.gnu.org/packages/exwm-"
10343 version ".tar"))
10344 (sha256
10345 (base32
10346 "05w1v3wrp1lzz20zd9lcvr5nhk809kgy6svvkbs15xhnr6x55ad5"))))
10347 (build-system emacs-build-system)
10348 (propagated-inputs
10349 `(("emacs-xelb" ,emacs-xelb)))
10350 (inputs
10351 `(("xhost" ,xhost)
10352 ("dbus" ,dbus)))
10353 ;; The following functions and variables needed by emacs-exwm are
10354 ;; not included in emacs-minimal:
10355 ;; scroll-bar-mode, fringe-mode
10356 ;; x-display-pixel-width, x-display-pixel-height
10357 (arguments
10358 `(#:emacs ,emacs
10359 #:phases
10360 (modify-phases %standard-phases
10361 (add-after 'build 'install-xsession
10362 (lambda* (#:key inputs outputs #:allow-other-keys)
10363 (let* ((out (assoc-ref outputs "out"))
10364 (xsessions (string-append out "/share/xsessions"))
10365 (bin (string-append out "/bin"))
10366 (exwm-executable (string-append bin "/exwm")))
10367 ;; Add a .desktop file to xsessions
10368 (mkdir-p xsessions)
10369 (mkdir-p bin)
10370 (make-desktop-entry-file
10371 (string-append xsessions "/exwm.desktop")
10372 #:name ,name
10373 #:comment ,synopsis
10374 #:exec exwm-executable
10375 #:try-exec exwm-executable)
10376 ;; Add a shell wrapper to bin
10377 (with-output-to-file exwm-executable
10378 (lambda _
10379 (format #t "#!~a ~@
10380 ~a +SI:localuser:$USER ~@
10381 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
10382 (string-append (assoc-ref inputs "bash") "/bin/sh")
10383 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
10384 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
10385 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
10386 '(cond
10387 ((file-exists-p "~/.exwm")
10388 (load-file "~/.exwm"))
10389 ((not (featurep 'exwm))
10390 (require 'exwm)
10391 (require 'exwm-config)
10392 (exwm-config-default)
10393 (message (concat "exwm configuration not found. "
10394 "Falling back to default configuration...")))))))
10395 (chmod exwm-executable #o555)
10396 #t))))))
10397 (home-page "https://github.com/ch11ng/exwm")
10398 (description "EXWM is a full-featured tiling X window manager for Emacs
10399 built on top of XELB.")
10400 (license license:gpl3+)))
10401
10402 (define-public emacs-switch-window
10403 (package
10404 (name "emacs-switch-window")
10405 (version "1.6.2")
10406 (source
10407 (origin
10408 (method git-fetch)
10409 (uri (git-reference
10410 (url "https://github.com/dimitri/switch-window")
10411 (commit (string-append "v" version))))
10412 (file-name (git-file-name name version))
10413 (sha256
10414 (base32
10415 "0rci96asgamr6qp6nkyr5vwrnslswjxcjd96yccy4aivh0g66yfg"))))
10416 (build-system emacs-build-system)
10417 (home-page "https://github.com/dimitri/switch-window")
10418 (synopsis "Emacs window switch tool")
10419 (description "Switch-window is an emacs window switch tool, which
10420 offer a visual way to choose a window to switch to, delete, split or
10421 other operations.")
10422 (license license:wtfpl2)))
10423
10424 (define-public emacs-exwm-x
10425 (package
10426 (name "emacs-exwm-x")
10427 (version "1.9.0")
10428 (synopsis "Derivative window manager based on EXWM")
10429 (source
10430 (origin
10431 (method git-fetch)
10432 (uri (git-reference
10433 (url "https://github.com/tumashu/exwm-x")
10434 (commit (string-append "v" version))))
10435 (file-name (git-file-name name version))
10436 (sha256
10437 (base32
10438 "03l3dl7s1qys1kkh40rm1sfx7axy1b8sf5f6nyksj9ps6d30p5i4"))))
10439 (build-system emacs-build-system)
10440 (propagated-inputs
10441 `(("emacs-exwm" ,emacs-exwm)
10442 ("emacs-switch-window" ,emacs-switch-window)
10443 ("emacs-ivy" ,emacs-ivy)
10444 ("emacs-use-package" ,emacs-use-package)))
10445 (inputs
10446 `(("xhost" ,xhost)
10447 ("dbus" ,dbus)))
10448 ;; Need emacs instead of emacs-minimal,
10449 ;; for emacs's bin path will be inserted into bin/exwm-x file.
10450 (arguments
10451 `(#:emacs ,emacs
10452 #:phases
10453 (modify-phases %standard-phases
10454 (add-after 'build 'install-xsession
10455 (lambda* (#:key inputs outputs #:allow-other-keys)
10456 (let* ((out (assoc-ref outputs "out"))
10457 (xsessions (string-append out "/share/xsessions"))
10458 (bin (string-append out "/bin"))
10459 (exwm-executable (string-append bin "/exwm-x")))
10460 ;; Add a .desktop file to xsessions
10461 (mkdir-p xsessions)
10462 (mkdir-p bin)
10463 (with-output-to-file
10464 (string-append xsessions "/exwm-x.desktop")
10465 (lambda _
10466 (format #t "[Desktop Entry]~@
10467 Name=~a~@
10468 Comment=~a~@
10469 Exec=~a~@
10470 TryExec=~@*~a~@
10471 Type=Application~%" ,name ,synopsis exwm-executable)))
10472 ;; Add a shell wrapper to bin
10473 (with-output-to-file exwm-executable
10474 (lambda _
10475 (format #t "#!~a ~@
10476 ~a +SI:localuser:$USER ~@
10477 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
10478 (string-append (assoc-ref inputs "bash") "/bin/sh")
10479 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
10480 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
10481 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
10482 '(require 'exwmx-loader))))
10483 (chmod exwm-executable #o555)
10484 #t))))))
10485 (home-page "https://github.com/tumashu/exwm-x")
10486 (description "EXWM-X is a derivative window manager based on EXWM, with focus
10487 on mouse-control.")
10488 (license license:gpl3+)))
10489
10490 (define-public emacs-gnugo
10491 (package
10492 (name "emacs-gnugo")
10493 (version "3.1.0")
10494 (source
10495 (origin
10496 (method url-fetch)
10497 (uri (string-append "https://elpa.gnu.org/packages/gnugo-"
10498 version ".tar"))
10499 (sha256
10500 (base32
10501 "0xpjvs250gg71qwapdsb1hlc61gs0gpkjds01srf784fvyxx2gf1"))))
10502 (build-system emacs-build-system)
10503 (arguments
10504 `(#:phases (modify-phases %standard-phases
10505 (add-after 'unpack 'configure-default-gnugo-xpms-variable
10506 (lambda _
10507 (substitute* "gnugo.el"
10508 (("defvar gnugo-xpms nil")
10509 "defvar gnugo-xpms #'gnugo-imgen-create-xpms"))
10510 #t)))))
10511 (propagated-inputs
10512 `(("emacs-ascii-art-to-unicode" ,emacs-ascii-art-to-unicode)
10513 ("emacs-xpm" ,emacs-xpm)))
10514 (home-page "https://elpa.gnu.org/packages/gnugo.html")
10515 (synopsis "Emacs major mode for playing GNU Go")
10516 (description "This package provides an Emacs based interface for GNU Go.
10517 It has a graphical mode where the board and stones are drawn using XPM images
10518 and supports the use of a mouse.")
10519 (license license:gpl3+)))
10520
10521 (define-public emacs-gnuplot
10522 (package
10523 (name "emacs-gnuplot")
10524 (version "0.7.0")
10525 (source
10526 (origin
10527 (method git-fetch)
10528 (uri (git-reference
10529 (url "https://github.com/bruceravel/gnuplot-mode.git")
10530 (commit version)))
10531 (file-name (git-file-name name version))
10532 (sha256
10533 (base32 "0bwri3cvm2vr27kyqkrddm28fs08axnd4nm9amfgp54xp20bn4yn"))))
10534 (build-system gnu-build-system)
10535 (native-inputs `(("emacs" ,emacs-minimal)))
10536 (arguments
10537 (let ((elisp-dir "/share/emacs/site-lisp"))
10538 `(#:modules ((guix build gnu-build-system)
10539 (guix build utils)
10540 (guix build emacs-utils))
10541 #:imported-modules (,@%gnu-build-system-modules
10542 (guix build emacs-utils))
10543 #:configure-flags
10544 (list (string-append "EMACS=" (assoc-ref %build-inputs "emacs")
10545 "/bin/emacs")
10546 (string-append "--with-lispdir=" %output ,elisp-dir))
10547 #:phases
10548 (modify-phases %standard-phases
10549 (add-after 'install 'generate-autoloads
10550 (lambda* (#:key outputs #:allow-other-keys)
10551 (emacs-generate-autoloads
10552 "gnuplot"
10553 (string-append (assoc-ref outputs "out") ,elisp-dir))
10554 #t))))))
10555 (home-page "https://github.com/bruceravel/gnuplot-mode")
10556 (synopsis "Emacs major mode for interacting with gnuplot")
10557 (description "@code{emacs-gnuplot} is an emacs major mode for interacting
10558 with gnuplot.")
10559 (license license:gpl2+)))
10560
10561 (define-public emacs-transpose-frame
10562 (package
10563 (name "emacs-transpose-frame")
10564 (version "0.1.0")
10565 (source
10566 (origin
10567 (method url-fetch)
10568 (uri "https://www.emacswiki.org/emacs/download/transpose-frame.el")
10569 (file-name (string-append "transpose-frame-" version ".el"))
10570 (sha256
10571 (base32
10572 "1f67yksgw9s6j0033hmqzaxx2a93jm11sd5ys7cc3li5gfh680m4"))))
10573 (build-system emacs-build-system)
10574 (home-page "https://www.emacswiki.org/emacs/TransposeFrame")
10575 (synopsis "Transpose window arrangement in current frame")
10576 (description "@code{emacs-transpose-frame} provides some interactive
10577 functions which allows users to transpose windows arrangement in currently
10578 selected frame.")
10579 (license license:bsd-2)))
10580
10581 (define-public emacs-key-chord
10582 (package
10583 (name "emacs-key-chord")
10584 (version "0.6")
10585 (source
10586 (origin
10587 (method url-fetch)
10588 (uri "https://www.emacswiki.org/emacs/download/key-chord.el")
10589 (file-name (string-append "key-chord-" version ".el"))
10590 (sha256
10591 (base32
10592 "03m44pqggfrd53nh9dvpdjgm0rvca34qxmd30hr33hzprzjambxg"))))
10593 (build-system emacs-build-system)
10594 (home-page "https://www.emacswiki.org/emacs/key-chord.el")
10595 (synopsis "Map pairs of simultaneously pressed keys to Emacs commands")
10596 (description "@code{emacs-key-chord} provides @code{key-chord-mode}, a
10597 mode for binding key chords to commands. A key chord is defined as two keys
10598 pressed simultaneously or a single key quickly pressed twice.")
10599 (license license:gpl2+)))
10600
10601 (define-public emacs-evil-surround
10602 (package
10603 (name "emacs-evil-surround")
10604 (version "1.0.4")
10605 (source
10606 (origin
10607 (method git-fetch)
10608 (uri (git-reference
10609 (url "https://github.com/emacs-evil/evil-surround")
10610 (commit version)))
10611 (file-name (git-file-name name version))
10612 (sha256
10613 (base32 "1ajsi6xn8mliwzl24h6pp9rd91z7f20yvkphr9q7k6zpjrd7fb9q"))))
10614 (build-system emacs-build-system)
10615 (propagated-inputs
10616 `(("emacs-evil" ,emacs-evil)))
10617 (arguments
10618 `(#:tests? #t
10619 #:test-command '("make" "test")))
10620 (home-page "https://github.com/emacs-evil/evil-surround")
10621 (synopsis "Easily modify surrounding parentheses and quotes")
10622 (description "@code{emacs-evil-surround} allows easy deletion, change and
10623 addition of surrounding pairs, such as parentheses and quotes, in evil mode.")
10624 (license license:gpl3+)))
10625
10626 (define-public emacs-evil-commentary
10627 (package
10628 (name "emacs-evil-commentary")
10629 (version "2.1.1")
10630 (source
10631 (origin
10632 (method git-fetch)
10633 (uri (git-reference
10634 (url "https://github.com/linktohack/evil-commentary.git")
10635 (commit (string-append "v" version))))
10636 (file-name (git-file-name name version))
10637 (sha256
10638 (base32 "0zjs9zyqfygnpxapvf0ymmiid40i06cxbhjzd81zw33nafgkf6r4"))))
10639 (build-system emacs-build-system)
10640 (propagated-inputs
10641 `(("emacs-evil" ,emacs-evil)))
10642 (home-page "https://github.com/linktohack/evil-commentary")
10643 (synopsis "Comment out code in evil mode")
10644 (description "@code{emacs-evil-commentary} adds keybindings to easily
10645 comment out lines of code in evil mode. It provides @code{gcc} to comment out
10646 lines, and @code{gc} to comment out the target of a motion.")
10647 (license license:gpl3+)))
10648
10649 ;; Tests for emacs-ansi have a circular dependency with ert-runner, and
10650 ;; therefore cannot be run
10651 (define-public emacs-ansi
10652 (package
10653 (name "emacs-ansi")
10654 (version "0.4.1")
10655 (source
10656 (origin
10657 (method git-fetch)
10658 (uri (git-reference
10659 (url "https://github.com/rejeep/ansi.el.git")
10660 (commit (string-append "v" version))))
10661 (file-name (git-file-name name version))
10662 (sha256
10663 (base32 "1hbddxarr40ygvaw4pwaivq2l4f0brszw73w1r50lkjlggb7bl3g"))))
10664 (build-system emacs-build-system)
10665 (propagated-inputs
10666 `(("emacs-dash" ,emacs-dash)
10667 ("emacs-s" ,emacs-s)))
10668 (home-page "https://github.com/rejeep/ansi.el")
10669 (synopsis "Convert strings to ANSI")
10670 (description "@code{emacs-ansi} defines functions that turns simple
10671 strings to ANSI strings. Turning a string into an ANSI string can be to add
10672 color to a text, add color in the background of a text or adding a style, such
10673 as bold, underscore or italic.")
10674 (license license:gpl3+)))
10675
10676 ;; Tests for emacs-commander have a circular dependency with ert-runner, and
10677 ;; therefore cannot be run
10678 (define-public emacs-commander
10679 (package
10680 (name "emacs-commander")
10681 (version "0.7.0")
10682 (source
10683 (origin
10684 (method git-fetch)
10685 (uri (git-reference
10686 (url "https://github.com/rejeep/commander.el.git")
10687 (commit (string-append "v" version))))
10688 (file-name (git-file-name name version))
10689 (sha256
10690 (base32 "1j6hhyzww7wfwk6bllbb5mk4hw4qs8hsgfbfdifsam9c6i4spm45"))))
10691 (build-system emacs-build-system)
10692 (propagated-inputs
10693 `(("emacs-dash" ,emacs-dash)
10694 ("emacs-f" ,emacs-f)
10695 ("emacs-s" ,emacs-s)))
10696 (home-page "https://github.com/rejeep/commander.el")
10697 (synopsis "Emacs command line parser")
10698 (description "@code{emacs-commander} provides command line parsing for
10699 Emacs.")
10700 (license license:gpl3+)))
10701
10702 (define-public emacs-eglot
10703 (package
10704 (name "emacs-eglot")
10705 (version "1.6")
10706 (source
10707 (origin
10708 (method url-fetch)
10709 (uri (string-append "https://elpa.gnu.org/packages/"
10710 "eglot-" version ".tar"))
10711 (sha256
10712 (base32 "15hd6sx7qrpvlvhwwkcgdiki8pswwf4mm7hkm0xvznskfcp44spx"))))
10713 (build-system emacs-build-system)
10714 (propagated-inputs
10715 `(("emacs-jsonrpc" ,emacs-jsonrpc)))
10716 (home-page "https://github.com/joaotavora/eglot")
10717 (synopsis "Client for Language Server Protocol (LSP) servers")
10718 (description
10719 "Emacs Polyglot, or Eglot, is an Emacs @acronym{Language Server Protocol,
10720 LSP} client that stays out of the way. It guesses the LSP program to start
10721 for the current file, using the major mode as a hint. It prompts you to enter
10722 one if it fails.")
10723 (license license:gpl3+)))
10724
10725 ;; Tests for ert-runner have a circular dependency with ecukes, and therefore
10726 ;; cannot be run
10727 (define-public emacs-ert-runner
10728 (package
10729 (name "emacs-ert-runner")
10730 (version "0.8.0")
10731 (source
10732 (origin
10733 (method git-fetch)
10734 (uri (git-reference
10735 (url "https://github.com/rejeep/ert-runner.el.git")
10736 (commit (string-append "v" version))))
10737 (file-name (git-file-name name version))
10738 (sha256
10739 (base32
10740 "08gygn9fjank5gpi4v6ynrkn0jbknxbwsn7md4p9ndygdbmnkf98"))))
10741 (build-system emacs-build-system)
10742 (inputs
10743 `(("emacs-ansi" ,emacs-ansi)
10744 ("emacs-commander" ,emacs-commander)
10745 ("emacs-dash" ,emacs-dash)
10746 ("emacs-f" ,emacs-f)
10747 ("emacs-s" ,emacs-s)
10748 ("emacs-shut-up" ,emacs-shut-up)))
10749 (arguments
10750 `(#:phases
10751 (modify-phases %standard-phases
10752 (add-after 'install 'install-executable
10753 (lambda* (#:key inputs outputs #:allow-other-keys)
10754 (let ((out (assoc-ref outputs "out"))
10755 (source-directory (string-append
10756 (getenv "TMPDIR") "/source")))
10757 (substitute* "bin/ert-runner"
10758 (("ERT_RUNNER=\"\\$\\(dirname \\$\\(dirname \\$0\\)\\)")
10759 (string-append "ERT_RUNNER=\"" out
10760 "/share/emacs/site-lisp")))
10761 (install-file "bin/ert-runner" (string-append out "/bin"))
10762 (wrap-program (string-append out "/bin/ert-runner")
10763 (list "EMACSLOADPATH" ":" 'prefix
10764 ;; Do not capture the transient source directory in
10765 ;; the wrapper.
10766 (delete source-directory
10767 (string-split (getenv "EMACSLOADPATH") #\:))))
10768 #t))))
10769 #:include (cons* "^reporters/.*\\.el$" %default-include)))
10770 (home-page "https://github.com/rejeep/ert-runner.el")
10771 (synopsis "Opinionated Ert testing workflow")
10772 (description "@code{ert-runner} is a tool for Emacs projects tested
10773 using ERT. It assumes a certain test structure setup and can therefore make
10774 running tests easier.")
10775 (license license:gpl3+)))
10776
10777 (define-public emacs-xtest
10778 (package
10779 (name "emacs-xtest")
10780 (version "1.1.0")
10781 (source (origin
10782 (method git-fetch)
10783 (uri (git-reference
10784 (url "https://github.com/promethial/xtest.git")
10785 (commit (string-append "v" version))))
10786 (file-name (git-file-name name version))
10787 (sha256
10788 (base32
10789 "1wqx6hlqcmqiljydih5fx89dw06g8w728pyn4iqsap8jwgjngb09"))))
10790 (arguments
10791 `(#:exclude '()))
10792 (build-system emacs-build-system)
10793 (home-page "https://github.com/promethial/xtest/")
10794 (synopsis "Simple testing with Emacs")
10795 (description "This package provides a simple testing library for Emacs.")
10796 (license license:gpl3+)))
10797
10798 (define-public emacs-disable-mouse
10799 (package
10800 (name "emacs-disable-mouse")
10801 (version "0.2")
10802 (source
10803 (origin
10804 (method git-fetch)
10805 (uri (git-reference
10806 (url "https://github.com/purcell/disable-mouse.git")
10807 (commit version)))
10808 (file-name (git-file-name name version))
10809 (sha256
10810 (base32 "1v1y5hf6k6ng7xsvgb27nh740d14m6l4krr0paccda8zgm4mw357"))))
10811 (build-system emacs-build-system)
10812 (home-page "https://github.com/purcell/disable-mouse")
10813 (synopsis "Disable mouse commands globally")
10814 (description
10815 "Provides @code{disable-mouse-mode} and @code{global-disable-mouse-mode},
10816 pair of minor modes which suppress all mouse events by intercepting them and
10817 running a customisable handler command (@code{ignore} by default). ")
10818 (license license:gpl3+)))
10819
10820 (define-public emacs-json-reformat
10821 (package
10822 (name "emacs-json-reformat")
10823 (version "0.0.6")
10824 (source
10825 (origin
10826 (method git-fetch)
10827 (uri (git-reference
10828 (url "https://github.com/gongo/json-reformat.git")
10829 (commit version)))
10830 (file-name (git-file-name name version))
10831 (sha256
10832 (base32 "0qp4n2k6s69jj4gwwimkpadjv245y54wk3bxb1x96f034gkp81vs"))
10833 (patches (search-patches "emacs-json-reformat-fix-tests.patch"))))
10834 (build-system emacs-build-system)
10835 (propagated-inputs
10836 `(("emacs-undercover" ,emacs-undercover)))
10837 (native-inputs
10838 `(("emacs-dash" ,emacs-dash)
10839 ("emacs-shut-up" ,emacs-shut-up)
10840 ("ert-runner" ,emacs-ert-runner)))
10841 (arguments
10842 `(#:tests? #t
10843 #:test-command '("ert-runner")
10844 #:phases
10845 (modify-phases %standard-phases
10846 (add-before 'check 'make-tests-writable
10847 (lambda _
10848 (for-each make-file-writable (find-files "test"))
10849 #t))
10850 (add-before 'check 'delete-json-objects-order-test
10851 (lambda _
10852 (emacs-batch-edit-file "test/json-reformat-test.el"
10853 `(progn (progn (goto-char (point-min))
10854 (re-search-forward
10855 "ert-deftest json-reformat-test:json-reformat-region")
10856 (beginning-of-line)
10857 (kill-sexp))
10858 (basic-save-buffer)))
10859 #t)))))
10860 (home-page "https://github.com/gongo/json-reformat")
10861 (synopsis "Reformatting tool for JSON")
10862 (description "@code{json-reformat} provides a reformatting tool for
10863 @url{http://json.org/, JSON}.")
10864 (license license:gpl3+)))
10865
10866 (define-public emacs-json-snatcher
10867 (package
10868 (name "emacs-json-snatcher")
10869 (version "1.0.0")
10870 (source
10871 (origin
10872 (method git-fetch)
10873 (uri (git-reference
10874 (url "https://github.com/Sterlingg/json-snatcher.git")
10875 (commit version)))
10876 (file-name (git-file-name name version))
10877 (sha256
10878 (base32 "05zsgnk7grgw9jzwl80h5sxfpifxlr37b4mkbvx7mjq4z14xc2jw"))))
10879 (build-system emacs-build-system)
10880 (home-page "https://github.com/sterlingg/json-snatcher")
10881 (synopsis "Grabs the path to JSON values in a JSON file")
10882 (description "@code{emacs-json-snatcher} grabs the path to JSON values in
10883 a @url{http://json.org/, JSON} file.")
10884 (license license:gpl3+)))
10885
10886 (define-public emacs-json-mode
10887 (package
10888 (name "emacs-json-mode")
10889 (version "1.7.0")
10890 (source
10891 (origin
10892 (method git-fetch)
10893 (uri (git-reference
10894 (url "https://github.com/joshwnj/json-mode.git")
10895 (commit (string-append "v" version))))
10896 (file-name (git-file-name name version))
10897 (sha256
10898 (base32 "0i79lqzdg59vkqwjd3q092xxn9vhxspb1vn4pkis0vfvn46g01jy"))))
10899 (build-system emacs-build-system)
10900 (propagated-inputs
10901 `(("emacs-json-reformat" ,emacs-json-reformat)
10902 ("emacs-json-snatcher" ,emacs-json-snatcher)))
10903 (home-page "https://github.com/joshwnj/json-mode")
10904 (synopsis "Major mode for editing JSON files")
10905 (description "@code{json-mode} extends the builtin js-mode syntax
10906 highlighting.")
10907 (license license:gpl3+)))
10908
10909 (define-public emacs-jsonrpc
10910 (package
10911 (name "emacs-jsonrpc")
10912 (version "1.0.11")
10913 (source
10914 (origin
10915 (method url-fetch)
10916 (uri (string-append "https://elpa.gnu.org/packages/"
10917 "jsonrpc-" version ".el"))
10918 (sha256
10919 (base32 "04cy1mqd6y8k5lcpg076szjk9av9345mmsnzzh6vgbcw3dcgbr23"))))
10920 (build-system emacs-build-system)
10921 (home-page "http://elpa.gnu.org/packages/jsonrpc.html")
10922 (synopsis "JSON-RPC library")
10923 (description
10924 "This library implements the JSONRPC 2.0 specification as
10925 described in @url{http://www.jsonrpc.org/}. As the name suggests,
10926 JSONRPC is a generic Remote Procedure Call protocol designed around
10927 JSON objects.")
10928 (license license:gpl3+)))
10929
10930 (define-public emacs-restclient
10931 (let ((commit "422ee8d8b077dffe65706a0f027ed700b84746bc")
10932 (version "0")
10933 (revision "2")) ;Guix package revision,
10934 ;upstream doesn't have official releases
10935 (package
10936 (name "emacs-restclient")
10937 (version (git-version version revision commit))
10938 (source (origin
10939 (method git-fetch)
10940 (uri (git-reference
10941 (url "https://github.com/pashky/restclient.el.git")
10942 (commit commit)))
10943 (sha256
10944 (base32
10945 "067nin7vxkdpffxa0q61ybv7szihhvpdinivmci9qkbb86rs9kkz"))
10946 (file-name (git-file-name name version))))
10947 (build-system emacs-build-system)
10948 (propagated-inputs
10949 `(("emacs-helm" ,emacs-helm)))
10950 (home-page "https://github.com/pashky/restclient.el")
10951 (synopsis "Explore and test HTTP REST webservices")
10952 (description
10953 "This tool allows for testing and exploration of HTTP REST Web services
10954 from within Emacs. Restclient runs queries from a plan-text query sheet,
10955 displays results pretty-printed in XML or JSON with @code{restclient-mode}")
10956 (license license:public-domain))))
10957
10958 (define-public emacs-whitespace-cleanup-mode
10959 (let ((commit "72427144b054b0238a86e1348c45d986b8830d9d")
10960 (revision "1"))
10961 (package
10962 (name "emacs-whitespace-cleanup-mode")
10963 (version (git-version "0.10" revision commit))
10964 (source (origin
10965 (method git-fetch)
10966 (uri (git-reference
10967 (url "https://github.com/purcell/whitespace-cleanup-mode")
10968 (commit commit)))
10969 (sha256
10970 (base32
10971 "1zlk534jbwrsabcg3kqlzk4h4hwya60lh6q2n1v4yn4rpf5ghsag"))
10972 (file-name (git-file-name name version))))
10973 (build-system emacs-build-system)
10974 (home-page "https://github.com/purcell/whitespace-cleanup-mode")
10975 (synopsis "Intelligently call @code{whitespace-cleanup} on save")
10976 (description
10977 "This package provides a minor mode that calls
10978 @code{whitespace-cleanup} before saving the current buffer only if the
10979 whitespace in the buffer was initially clean.")
10980 (license license:gpl3+))))
10981
10982 (define-public emacs-eimp
10983 (let ((version "1.4.0")
10984 (commit "2e7536fe6d8f7faf1bad7a8ae37faba0162c3b4f")
10985 (revision "1"))
10986 (package
10987 (name "emacs-eimp")
10988 (version (git-version version revision commit))
10989 (source
10990 (origin
10991 (method git-fetch)
10992 (uri (git-reference
10993 (url "https://github.com/nicferrier/eimp.git")
10994 (commit commit)))
10995 (file-name (git-file-name name version))
10996 (sha256
10997 (base32
10998 "154d57yafxbcf39r89n5j43c86rp2fki3lw3gwy7ww2g6qkclcra"))))
10999 (build-system emacs-build-system)
11000 (arguments
11001 `(#:phases
11002 (modify-phases %standard-phases
11003 (add-after 'unpack 'configure
11004 (lambda* (#:key inputs #:allow-other-keys)
11005 (let ((imagemagick (assoc-ref inputs "imagemagick")))
11006 ;; eimp.el is read-only in git.
11007 (chmod "eimp.el" #o644)
11008 (emacs-substitute-variables "eimp.el"
11009 ("eimp-mogrify-program"
11010 (string-append imagemagick "/bin/mogrify"))))
11011 #t)))))
11012 (inputs
11013 `(("imagemagick" ,imagemagick)))
11014 (home-page "https://github.com/nicferrier/eimp")
11015 (synopsis "Interactive image manipulation utility for Emacs")
11016 (description "@code{emacs-eimp} allows interactive image manipulation
11017 from within Emacs. It uses the code@{mogrify} utility from ImageMagick to do
11018 the actual transformations.")
11019 (license license:gpl2+))))
11020
11021 (define-public emacs-dired-hacks
11022 (let ((commit "886befe113fae397407c804f72c45613d1d43535")
11023 (revision "2"))
11024 (package
11025 (name "emacs-dired-hacks")
11026 (version (git-version "0.0.1" revision commit))
11027 (source (origin
11028 (method git-fetch)
11029 (uri (git-reference
11030 (url "https://github.com/Fuco1/dired-hacks.git")
11031 (commit commit)))
11032 (file-name (git-file-name name version))
11033 (sha256
11034 (base32
11035 "1cvibg90ggyrivpjmcfprpi2fx7dpa68f8kzg08s88gw5ib75djl"))))
11036 (build-system emacs-build-system)
11037 (propagated-inputs
11038 `(("emacs-dash" ,emacs-dash)
11039 ("emacs-eimp" ,emacs-eimp)
11040 ("emacs-f" ,emacs-f)
11041 ("emacs-s" ,emacs-s)))
11042 (home-page "https://github.com/Fuco1/dired-hacks")
11043 (synopsis
11044 "Collection of useful dired additions")
11045 (description
11046 "This package provides the following collection of Emacs dired mode
11047 additions:
11048
11049 @itemize
11050 @item dired-avfs
11051 @item dired-columns
11052 @item dired-filter
11053 @item dired-hacks-utils
11054 @item dired-images
11055 @item dired-list
11056 @item dired-narrow
11057 @item dired-open
11058 @item dired-rainbow
11059 @item dired-ranger
11060 @item dired-subtree
11061 @item dired-tagsistant
11062 @end itemize\n")
11063 (license license:gpl3+))))
11064
11065 (define-public emacs-dired-sidebar
11066 (let ((commit "21ccb6723bea69f2e2ca25998268d8a039f904cc")
11067 (revision "1"))
11068 (package
11069 (name "emacs-dired-sidebar")
11070 (home-page "https://github.com/jojojames/dired-sidebar")
11071 (version (git-version "0.1.0" revision commit))
11072 (source (origin
11073 (method git-fetch)
11074 (uri (git-reference (url home-page) (commit commit)))
11075 (file-name (git-file-name name version))
11076 (sha256
11077 (base32
11078 "0mck4qk6srbbf8xnn2sg11j822z4ybxvgavvy402d5sli515i8ca"))))
11079 (build-system emacs-build-system)
11080 (propagated-inputs
11081 `(("emacs-dired-subtree" ,emacs-dired-hacks)))
11082 (synopsis "Sidebar for Emacs using Dired")
11083 (description
11084 "This package provides a sidebar for Emacs similar to @code{NeoTree}
11085 or @code{treemacs}, but leveraging @code{Dired} to do the job of display.")
11086 (license license:gpl3+))))
11087
11088 (define-public emacs-which-key
11089 (package
11090 (name "emacs-which-key")
11091 (version "3.4.0")
11092 (source
11093 (origin
11094 (method git-fetch)
11095 (uri (git-reference
11096 (url "https://github.com/justbur/emacs-which-key.git")
11097 (commit (string-append "v" version))))
11098 (file-name (git-file-name name version))
11099 (sha256
11100 (base32 "1ahgb7dqdc75farkl0fg0a6hvx2067gdvjq99cd3z2dz56km0p05"))))
11101 (build-system emacs-build-system)
11102 (arguments
11103 `(#:tests? #t
11104 #:test-command '("emacs" "--batch"
11105 "-l" "which-key-tests.el"
11106 "-f" "ert-run-tests-batch-and-exit")))
11107 (home-page "https://github.com/justbur/emacs-which-key")
11108 (synopsis "Display available key bindings in popup")
11109 (description
11110 "@code{emacs-which-key} is a minor mode for Emacs that displays the key
11111 bindings following your currently entered incomplete command (a prefix) in a
11112 popup. For example, after enabling the minor mode if you enter C-x and wait
11113 for the default of 1 second, the minibuffer will expand with all of the
11114 available key bindings that follow C-x (or as many as space allows given your
11115 settings).")
11116 (license license:gpl3+)))
11117
11118 (define-public emacs-hercules
11119 (package
11120 (name "emacs-hercules")
11121 (version "0.2.1")
11122 (source
11123 (origin
11124 (method git-fetch)
11125 (uri (git-reference
11126 (url "https://gitlab.com/jjzmajic/hercules.el.git")
11127 (commit (string-append "v" version))))
11128 (file-name (git-file-name name version))
11129 (sha256
11130 (base32
11131 "19939pf5d6p2facmfhpyghx0vipb5k6ry3bmkmjfkj1zp132zfqf"))))
11132 (build-system emacs-build-system)
11133 (propagated-inputs
11134 `(("emacs-which-key" ,emacs-which-key)))
11135 (home-page "https://gitlab.com/jjzmajic/hercules.el")
11136 (synopsis "Call a chain of related commands without repeated prefix keys")
11137 (description
11138 "This package provides sticky-key-like functionality to obviate the
11139 need for repeated prefix-key sequences, and can reuse existing keymaps. The
11140 list of commands is displayed in a handy popup.")
11141 (license license:gpl3+)))
11142
11143 (define-public emacs-ws-butler
11144 (package
11145 (name "emacs-ws-butler")
11146 (version "0.6")
11147 (source (origin
11148 (method git-fetch)
11149 (uri (git-reference
11150 (url "https://github.com/lewang/ws-butler.git")
11151 (commit "323b651dd70ee40a25accc940b8f80c3a3185205")))
11152 (file-name (git-file-name name version))
11153 (sha256
11154 (base32
11155 "1a4b0lsmwq84qfx51c5xy4fryhb1ysld4fhgw2vr37izf53379sb"))))
11156 (build-system emacs-build-system)
11157 (native-inputs
11158 `(("ert-runner" ,emacs-ert-runner)))
11159 (arguments
11160 `(#:tests? #t
11161 #:test-command '("ert-runner" "tests")))
11162 (home-page "https://github.com/lewang/ws-butler")
11163 (synopsis "Trim spaces from end of lines")
11164 (description
11165 "This Emacs package automatically and unobtrusively trims whitespace
11166 characters from end of lines.")
11167 (license license:gpl3+)))
11168
11169 (define-public emacs-openwith
11170 (let ((changeset "aeb78782ec87680ea9f082a3f20a3675b3770cf9")
11171 (revision "0"))
11172 (package
11173 (name "emacs-openwith")
11174 (home-page "https://bitbucket.org/jpkotta/openwith")
11175 (version (git-version "0.0.1" revision changeset))
11176 (source (origin
11177 (method hg-fetch)
11178 (uri (hg-reference (url home-page) (changeset changeset)))
11179 (file-name (git-file-name name version))
11180 (sha256
11181 (base32
11182 "1wl6gnxsyhaad4cl9bxjc0qbc5jzvlwbwjbajs0n1s6qr07d6r01"))))
11183 (build-system emacs-build-system)
11184 (synopsis "Open external applications for files with Emacs")
11185 (description
11186 "This package enables you to associate file name patterns with external
11187 applications that are automatically invoked when you use commands like
11188 @code{find-file}. For example, you can have it open @code{png} files with
11189 @code{feh} and @code{mp4} files with @code{mpv}. This is especially useful
11190 when browsing files with Dired.")
11191 (license license:gpl2+))))
11192
11193 (define-public emacs-org-edit-latex
11194 (package
11195 (name "emacs-org-edit-latex")
11196 (version "0.8.0")
11197 (source
11198 (origin
11199 (method git-fetch)
11200 (uri (git-reference
11201 (url "https://github.com/et2010/org-edit-latex.git")
11202 (commit (string-append "v" version))))
11203 (file-name (git-file-name name version))
11204 (sha256
11205 (base32 "0zcllyhx9n9vcr5w87h0hfz25v52lvh5fi717cb7mf3jh89zh842"))))
11206 (build-system emacs-build-system)
11207 (propagated-inputs
11208 `(("emacs-auctex" ,emacs-auctex)
11209 ;; The version of org in Emacs 25.2 is not sufficient, because the
11210 ;; `org-latex-make-preamble' function is required.
11211 ("emacs-org" ,emacs-org)))
11212 (home-page "https://github.com/et2010/org-edit-latex")
11213 (synopsis "Edit a latex fragment just like editing a src block")
11214 (description "@code{emacs-org-edit-latex} is an extension for org-mode.
11215 It lets you edit a latex fragment in a dedicated buffer just like editing a
11216 src block.")
11217 (license license:gpl3+)))
11218
11219 (define-public emacs-emamux
11220 (package
11221 (name "emacs-emamux")
11222 (version "0.14")
11223 (source
11224 (origin
11225 (method git-fetch)
11226 (uri (git-reference
11227 (url "https://github.com/syohex/emacs-emamux.git")
11228 (commit version)))
11229 (file-name (git-file-name name version))
11230 (sha256
11231 (base32 "19y69qw79miim9cz5ji54gwspjkcp9g2c1xr5s7jj2fiabnxax6b"))))
11232 (build-system emacs-build-system)
11233 (home-page "https://github.com/syohex/emacs-emamux")
11234 (synopsis "Manipulate Tmux from Emacs")
11235 (description
11236 "@code{emacs-emamux} lets Emacs interact with the @code{tmux} terminal
11237 multiplexer.")
11238 (license license:gpl3+)))
11239
11240 (define-public emacs-rpm-spec-mode
11241 (package
11242 (name "emacs-rpm-spec-mode")
11243 (version "0.16")
11244 (source
11245 (origin
11246 (method url-fetch)
11247 ;; URI has the Fedora release number instead of the version
11248 ;; number. This will have to updated manually every new release.
11249 (uri (string-append
11250 "https://src.fedoraproject.org/cgit/rpms"
11251 "/emacs-rpm-spec-mode.git/snapshot"
11252 "/emacs-rpm-spec-mode-f26.tar.gz"))
11253 (sha256
11254 (base32
11255 "17dz80lhjrc89fj17pysl8slahzrqdkxgcjdk55zls6jizkr6kz3"))))
11256 (build-system emacs-build-system)
11257 (home-page "http://pkgs.fedoraproject.org/cgit/rpms/emacs-rpm-spec-mode.git")
11258 (synopsis "Emacs major mode for editing RPM spec files")
11259 (description "@code{emacs-rpm-spec-mode} provides an Emacs major mode for
11260 editing RPM spec files.")
11261 (license license:gpl2+)))
11262
11263 (define-public emacs-lcr
11264 (package
11265 (name "emacs-lcr")
11266 (version "1.1")
11267 (source
11268 (origin
11269 (method git-fetch)
11270 (uri (git-reference
11271 (url "https://github.com/jyp/lcr")
11272 (commit version)))
11273 (file-name (git-file-name name version))
11274 (sha256
11275 (base32 "0mc55icihxqpf8b05990q1lc2nj2792wcgyr73xsiqx0963sjaj8"))))
11276 (build-system emacs-build-system)
11277 (propagated-inputs
11278 `(("emacs-dash" ,emacs-dash)))
11279 (home-page "https://github.com/jyp/lcr")
11280 (synopsis "Lightweight coroutines in Emacs Lisp")
11281 (description "This package provides macros that can translate code into
11282 equivalent continuation-passing code, as well as miscellaneous utility
11283 functions written in continuation-passing style.")
11284 (license license:gpl3+)))
11285
11286 (define-public emacs-attrap
11287 (let ((commit "18cd1f7832870a36c404e872fa83a271fe8e688d")
11288 (revision "2"))
11289 (package
11290 (name "emacs-attrap")
11291 (version (git-version "1.0" revision commit))
11292 (source (origin
11293 (method git-fetch)
11294 (uri (git-reference
11295 (url "https://github.com/jyp/attrap")
11296 (commit commit)))
11297 (sha256
11298 (base32
11299 "078391949h0fgmshin8f79a1a595m06ig577rkgjqgngcp0d61l9"))
11300 (file-name (git-file-name name version))))
11301 (build-system emacs-build-system)
11302 (propagated-inputs
11303 `(("emacs-dash" ,emacs-dash)
11304 ("emacs-f" ,emacs-f)
11305 ("emacs-flycheck" ,emacs-flycheck)
11306 ("emacs-s" ,emacs-s)))
11307 (home-page "https://github.com/jyp/attrap")
11308 (synopsis "Fix coding error at point")
11309 (description "This package provides a command to fix the Flycheck error
11310 at point.")
11311 (license license:gpl3+))))
11312
11313 (define-public emacs-git-messenger
11314 (package
11315 (name "emacs-git-messenger")
11316 (version "0.18")
11317 (source
11318 (origin
11319 (method git-fetch)
11320 (uri (git-reference
11321 (url "https://github.com/syohex/emacs-git-messenger.git")
11322 (commit version)))
11323 (file-name (git-file-name name version))
11324 (sha256
11325 (base32 "04fnby2nblk8l70gv09asxkmnn53fh1pdfs77ix44npp99fyw8ix"))))
11326 (build-system emacs-build-system)
11327 (propagated-inputs
11328 `(("emacs-popup" ,emacs-popup)))
11329 (arguments
11330 `(#:tests? #t
11331 #:test-command '("emacs" "--batch" "-l" "test/test.el"
11332 "-f" "ert-run-tests-batch-and-exit")))
11333 (home-page "https://github.com/syohex/emacs-git-messenger")
11334 (synopsis "Popup commit message at current line")
11335 (description "@code{emacs-git-messenger} provides
11336 @code{git-messenger:popup-message}, a function that when called, will popup
11337 the last git commit message for the current line. This uses git-blame
11338 internally.")
11339 (license license:gpl3+)))
11340
11341 (define-public emacs-gitpatch
11342 (package
11343 (name "emacs-gitpatch")
11344 (version "0.5.1")
11345 (source
11346 (origin
11347 (method git-fetch)
11348 (uri (git-reference
11349 (url "https://github.com/tumashu/gitpatch.git")
11350 (commit (string-append "v" version))))
11351 (file-name (git-file-name name version))
11352 (sha256
11353 (base32 "1drf4fvmak7brf16axkh4nfz8pg44i7pjhfjz3dbkycbpp8y5vig"))))
11354 (build-system emacs-build-system)
11355 (home-page "https://github.com/tumashu/gitpatch")
11356 (synopsis "Mail git patch from Emacs")
11357 (description "@code{emacs-gitpatch} lets users easily send git patches,
11358 created by @code{git format-patch}, from @code{magit}, @code{dired} and
11359 @code{ibuffer} buffers.")
11360 (license license:gpl3+)))
11361
11362 (define-public emacs-erc-hl-nicks
11363 (package
11364 (name "emacs-erc-hl-nicks")
11365 (version "1.3.3")
11366 (source
11367 (origin
11368 (method git-fetch)
11369 (uri (git-reference
11370 (url "https://github.com/leathekd/erc-hl-nicks")
11371 (commit version)))
11372 (file-name (git-file-name name version))
11373 (sha256
11374 (base32 "0c82rxpl5v7bbxirf1ksg06xv5xcddh8nkrpj7i6nvfarwdfnk4f"))))
11375 (build-system emacs-build-system)
11376 (synopsis "Nickname highlighting for Emacs ERC")
11377 (description "@code{erc-hl-nicks} highlights nicknames in ERC, an IRC
11378 client for Emacs. The main features are:
11379 @itemize
11380 @item Auto-colorizes nicknames without having to specify colors
11381 @item Ignores certain characters that IRC clients add to nicknames to avoid
11382 duplicates (nickname, nickname’, nickname\", etc.)
11383 @item Attempts to produce colors with a sufficient amount of contrast between
11384 the nick color and the background color
11385 @end itemize\n")
11386 (home-page "https://github.com/leathekd/erc-hl-nicks")
11387 (license license:gpl3+)))
11388
11389 (define-public emacs-engine-mode
11390 (package
11391 (name "emacs-engine-mode")
11392 (version "2.1.1")
11393 (source
11394 (origin
11395 (method git-fetch)
11396 (uri (git-reference
11397 (url "https://github.com/hrs/engine-mode.git")
11398 (commit (string-append "v" version))))
11399 (file-name (git-file-name name version))
11400 (sha256
11401 (base32 "1xka8i4cdvp5r2v2mkli1zz17x1sdsnmszbhqav2rf94v656d91i"))))
11402 (build-system emacs-build-system)
11403 (synopsis "Minor mode for defining and querying search engines")
11404 (description "@code{engine-mode} is a global minor mode for Emacs. It
11405 enables you to easily define search engines, bind them to keybindings, and
11406 query them from the comfort of your editor.")
11407 (home-page "https://github.com/hrs/engine-mode")
11408 (license license:gpl3+)))
11409
11410 (define-public emacs-prop-menu
11411 (package
11412 (name "emacs-prop-menu")
11413 (version "0.1.2")
11414 (source
11415 (origin
11416 (method git-fetch)
11417 (uri (git-reference
11418 (url "https://github.com/david-christiansen/prop-menu-el.git")
11419 (commit version)))
11420 (file-name (git-file-name name version))
11421 (sha256
11422 (base32
11423 "18ap2liz5r5a8ja2zz9182fnfm47jnsbyblpq859zks356k37iwc"))))
11424 (build-system emacs-build-system)
11425 (home-page
11426 "https://github.com/david-christiansen/prop-menu-el")
11427 (synopsis
11428 "Create and display a context menu based on text and overlay properties")
11429 (description
11430 "This is a library for computing context menus based on text
11431 properties and overlays. The intended use is to have tools that
11432 annotate source code and others that use these annotations, without
11433 requiring a direct coupling between them, but maintaining
11434 discoverability.
11435
11436 Major modes that wish to use this library should first define an
11437 appropriate value for @code{prop-menu-item-functions}. Then, they should
11438 bind @code{prop-menu-by-completing-read} to an appropriate
11439 key. Optionally, a mouse pop-up can be added by binding
11440 @code{prop-menu-show-menu} to a mouse event.")
11441 (license license:gpl3+)))
11442
11443 (define-public emacs-idris-mode
11444 (let ((commit "acc8835449475d7cd205aba213fdd3d41c38ba40")
11445 (revision "0"))
11446 (package
11447 (name "emacs-idris-mode")
11448 (version (git-version "0.9.19" revision commit))
11449 (source
11450 (origin
11451 (method git-fetch)
11452 (uri (git-reference
11453 (url "https://github.com/idris-hackers/idris-mode.git")
11454 (commit commit)))
11455 (file-name (git-file-name name commit))
11456 (sha256
11457 (base32
11458 "0n9xbknc68id0mf8hbfmawi8qpvrs47ix807sk9ffv2g3ik32kk6"))))
11459 (build-system emacs-build-system)
11460 (propagated-inputs
11461 `(("emacs-prop-menu" ,emacs-prop-menu)))
11462 (home-page
11463 "https://github.com/idris-hackers/idris-mode")
11464 (synopsis "Major mode for editing Idris code")
11465 (description
11466 "This is an Emacs mode for editing Idris code. It requires the latest
11467 version of Idris, and some features may rely on the latest Git version of
11468 Idris.")
11469 (license license:gpl3+))))
11470
11471 (define-public emacs-browse-at-remote
11472 (package
11473 (name "emacs-browse-at-remote")
11474 (version "0.10.0")
11475 (source
11476 (origin
11477 (method git-fetch)
11478 (uri (git-reference
11479 (url "https://github.com/rmuslimov/browse-at-remote.git")
11480 (commit version)))
11481 (file-name (git-file-name name version))
11482 (sha256
11483 (base32 "0vhia7xmszcb3lxrb8wh93a3knjfzj48h8nhj4fh8zj1pjz6args"))))
11484 (build-system emacs-build-system)
11485 (propagated-inputs
11486 `(("emacs-f" ,emacs-f)
11487 ("emacs-s" ,emacs-s)))
11488 (native-inputs
11489 `(("ert-runner" ,emacs-ert-runner)))
11490 (arguments
11491 `(#:tests? #t
11492 #:test-command '("ert-runner")))
11493 (home-page "https://github.com/rmuslimov/browse-at-remote")
11494 (synopsis "Open github/gitlab/bitbucket/stash page from Emacs")
11495 (description
11496 "This Emacs package allows you to open a target page on
11497 github/gitlab (or bitbucket) by calling @code{browse-at-remote} command.
11498 It supports dired buffers and opens them in tree mode at destination.")
11499 (license license:gpl3+)))
11500
11501 (define-public emacs-tiny
11502 (let ((commit "fd8a6b0b0c564d8242259e20e557ee6041f40908")
11503 (revision "1"))
11504 (package
11505 (name "emacs-tiny")
11506 (version (git-version "0.2.1" revision commit))
11507 (source
11508 (origin
11509 (method git-fetch)
11510 (uri (git-reference
11511 (url "https://github.com/abo-abo/tiny.git")
11512 (commit commit)))
11513 (file-name (git-file-name name version))
11514 (sha256
11515 (base32
11516 "1498j392ap2mk4zmsm2id16pfgvj78r428da9vw7hdrzzibai2cx"))))
11517 (build-system emacs-build-system)
11518 (arguments
11519 `(#:tests? #t
11520 #:test-command '("make" "test")))
11521 (home-page "https://github.com/abo-abo/tiny")
11522 (synopsis "Quickly generate linear ranges in Emacs")
11523 (description
11524 "The main command of the @code{tiny} extension for Emacs is @code{tiny-expand}.
11525 It is meant to quickly generate linear ranges, e.g. 5, 6, 7, 8. Some elisp
11526 proficiency is an advantage, since you can transform your numeric range with
11527 an elisp expression.")
11528 (license license:gpl3+))))
11529
11530 (define-public emacs-emojify
11531 (package
11532 (name "emacs-emojify")
11533 (version "1.2")
11534 (source
11535 (origin
11536 (method git-fetch)
11537 (uri (git-reference
11538 (url "https://github.com/iqbalansari/emacs-emojify")
11539 (commit (string-append "v" version))))
11540 (file-name (git-file-name name version))
11541 (sha256
11542 (base32
11543 "1fqnj5x7ivjkm5y927dqqnm85q5hzczlb0hrfpjalrhasa6ijsrm"))))
11544 (build-system emacs-build-system)
11545 (arguments
11546 `(#:include (cons "^data/" %default-include)))
11547 (propagated-inputs
11548 `(("emacs-ht" ,emacs-ht)))
11549 (home-page "https://github.com/iqbalansari/emacs-emojify")
11550 (synopsis "Display emojis in Emacs")
11551 (description "This package displays emojis in Emacs similar to how Github,
11552 Slack, and other websites do. It can display plain ASCII like @code{:)} as
11553 well as Github-style emojis like @code{:smile:}. It provides a minor mode
11554 @code{emojify-mode} to enable the display of emojis in a buffer.")
11555 (license license:gpl3+)))
11556
11557 (define-public emacs-make-it-so
11558 (let ((commit "b73dfb640588123c9eece230ad72b37604f5c126")
11559 (revision "2"))
11560 (package
11561 (name "emacs-make-it-so")
11562 (version (git-version "0.1.0" revision commit))
11563 (source
11564 (origin
11565 (method git-fetch)
11566 (uri (git-reference
11567 (url "https://github.com/abo-abo/make-it-so")
11568 (commit commit)))
11569 (file-name (git-file-name name version))
11570 (sha256
11571 (base32
11572 "0p6xhyinzzkrwzbpxqfm8hlii0ikvmmylya240bwsa77w0g1k6xq"))))
11573 (build-system emacs-build-system)
11574 (arguments
11575 `(#:include (cons "^recipes/" %default-include)))
11576 (propagated-inputs
11577 `(("emacs-ivy" ,emacs-ivy)))
11578 (home-page "https://github.com/abo-abo/make-it-so")
11579 (synopsis "Transform files with Makefile recipes")
11580 (description "This package provides an interface for selecting from
11581 different conversion recipes, often including tools like @code{ffmpeg} or
11582 @code{convert}. The conversion command need only be written once, and
11583 subsequent invocations can be readily customized. Several recipes are
11584 included by default, and more can be readily added.")
11585 (license license:gpl3+))))
11586
11587 (define-public emacs-unidecode
11588 (let ((commit "5502ada9287b4012eabb879f12f5b0a9df52c5b7")
11589 (revision "1"))
11590 (package
11591 (name "emacs-unidecode")
11592 (version (git-version "0.2" revision commit))
11593 (source
11594 (origin
11595 (method git-fetch)
11596 (uri (git-reference
11597 (url "https://github.com/sindikat/unidecode")
11598 (commit commit)))
11599 (file-name (git-file-name name version))
11600 (sha256
11601 (base32
11602 "03x3nakbhmakwm977mwrf8jifvjnfwzpjv6wrwpizbqjnkgfchmn"))))
11603 (build-system emacs-build-system)
11604 (arguments
11605 `(#:include (cons* "^tools/" "^data/" %default-include)
11606 #:tests? #t
11607 #:test-command '("emacs" "--batch"
11608 "-l" "unidecode-test.el"
11609 "-f" "ert-run-tests-batch-and-exit")
11610 #:phases
11611 (modify-phases %standard-phases
11612 (add-before 'check 'make-tests-writable
11613 (lambda _
11614 (make-file-writable "unidecode-test.el")
11615 #t))
11616 (add-before 'check 'add-require
11617 (lambda _
11618 (emacs-batch-edit-file "unidecode-test.el"
11619 `(progn (progn (goto-char (point-min))
11620 (re-search-forward
11621 "ert-deftest")
11622 (forward-line -1)
11623 (insert "(require 'unidecode)"))
11624 (basic-save-buffer)))
11625 #t)))))
11626 (home-page "https://github.com/sindikat/unidecode")
11627 (synopsis "Transliterate Unicode text to ASCII")
11628 (description "This package provides functions for converting Unicode to ASCII.")
11629 (license license:gpl2+))))
11630
11631 (define-public emacs-pubmed
11632 (package
11633 (name "emacs-pubmed")
11634 (version "0.2.1")
11635 (source
11636 (origin
11637 (method git-fetch)
11638 (uri (git-reference
11639 (url "https://gitlab.com/fvdbeek/emacs-pubmed.git")
11640 (commit (string-append "v" version))))
11641 (file-name (git-file-name name version))
11642 (sha256
11643 (base32
11644 "15bwjxc7g43m5pi8z17anaqqkvi209r7kk1chmf175477gvrv7c0"))))
11645 (build-system emacs-build-system)
11646 (propagated-inputs
11647 `(("emacs-deferred" ,emacs-deferred)
11648 ("emacs-esxml" ,emacs-esxml)
11649 ("emacs-s" ,emacs-s)
11650 ("emacs-unidecode" ,emacs-unidecode)))
11651 (home-page "https://gitlab.com/fvdbeek/emacs-pubmed")
11652 (synopsis "Interface to PubMed")
11653 (description "This package provides an Emacs interface to the PubMed
11654 database of references on life sciences.")
11655 (license license:gpl3+)))
11656
11657 (define-public emacs-websocket
11658 (package
11659 (name "emacs-websocket")
11660 (version "1.10")
11661 (source
11662 (origin
11663 (method git-fetch)
11664 (uri (git-reference
11665 (url "https://github.com/ahyatt/emacs-websocket.git")
11666 (commit version)))
11667 (file-name (git-file-name name version))
11668 (sha256
11669 (base32
11670 "1dgrf7na6r6mmkknphzshlbd5fnzisg0qn0j7vfpa38wgsymaq52"))))
11671 (build-system emacs-build-system)
11672 (arguments
11673 `(#:tests? #t
11674 ;; TODO: also enable websocket-functional-test.el
11675 #:test-command '("emacs" "--batch"
11676 "-l" "websocket-test.el"
11677 "-f" "ert-run-tests-batch-and-exit")))
11678 (home-page "https://elpa.gnu.org/packages/websocket.html")
11679 (synopsis "Emacs WebSocket client and server")
11680 (description "This is an Elisp library for WebSocket clients to talk to
11681 WebSocket servers, and for WebSocket servers to accept connections from
11682 WebSocket clients. This library is designed to be used by other library
11683 writers, to write applications that use WebSockets, and is not useful by
11684 itself.")
11685 (license license:gpl3+)))
11686
11687 (define-public emacs-oauth2
11688 (package
11689 (name "emacs-oauth2")
11690 (version "0.11")
11691 (source
11692 (origin
11693 (method url-fetch)
11694 (uri (string-append "https://elpa.gnu.org/packages/oauth2-"
11695 version ".el"))
11696 (sha256
11697 (base32
11698 "0ydkc9jazsnbbvfhd47mql52y7k06n3z7r0naqxkwb99j9blqsmp"))))
11699 (build-system emacs-build-system)
11700 (home-page "https://elpa.gnu.org/packages/oauth2.html")
11701 (synopsis "OAuth 2.0 authorization protocol implementation")
11702 (description
11703 "This package provides an Elisp implementation of the OAuth 2.0 draft.
11704 The main entry point is @code{oauth2-auth-and-store} which will return a token
11705 structure. This token structure can be then used with
11706 @code{oauth2-url-retrieve-synchronously} or @code{oauth2-url-retrieve} to
11707 retrieve any data that need OAuth authentication to be accessed. If the token
11708 needs to be refreshed, the code handles it automatically and stores the new
11709 value of the access token.")
11710 (license license:gpl3+)))
11711
11712 (define-public emacs-circe
11713 (package
11714 (name "emacs-circe")
11715 (version "2.11")
11716 (source
11717 (origin
11718 (method git-fetch)
11719 (uri (git-reference
11720 (url "https://github.com/jorgenschaefer/circe.git")
11721 (commit (string-append "v" version))))
11722 (file-name (git-file-name name version))
11723 (sha256
11724 (base32 "0cr9flk310yn2jgvj4hbqw9nj5wlfi0fazdkqafzidgz6iq150wd"))))
11725 (build-system emacs-build-system)
11726 (arguments
11727 `(#:tests? #t
11728 #:test-command '("buttercup" "-L" ".")
11729 #:phases
11730 (modify-phases %standard-phases
11731 ;; The HOME environment variable should be set to an existing
11732 ;; directory for the tests to succeed.
11733 (add-before 'check 'set-home
11734 (lambda _
11735 (setenv "HOME" "/tmp")
11736 #t)))))
11737 (native-inputs
11738 `(("emacs-buttercup" ,emacs-buttercup)))
11739 ;; In order to securely connect to an IRC server using TLS, Circe requires
11740 ;; the GnuTLS binary.
11741 (propagated-inputs
11742 `(("gnutls" ,gnutls)))
11743 (home-page "https://github.com/jorgenschaefer/circe")
11744 (synopsis "Client for IRC in Emacs")
11745 (description "Circe is a Client for IRC in Emacs. It integrates well with
11746 the rest of the editor, using standard Emacs key bindings and indicating
11747 activity in channels in the status bar so it stays out of your way unless you
11748 want to use it.")
11749 (license license:gpl3+)))
11750
11751 (define-public emacs-tracking
11752 (package
11753 (inherit emacs-circe)
11754 (name "emacs-tracking")
11755 (arguments
11756 ;; "tracking.el" is a library extracted from Circe package. It requires
11757 ;; "shorten.el".
11758 `(#:include '("^shorten.el$" "^tracking.el$")
11759 ,@(package-arguments emacs-circe)))
11760 (home-page "https://github.com/jorgenschaefer/circe/wiki/Tracking")
11761 (synopsis "Buffer tracking library")
11762 (description "@code{tracking.el} provides a way for different modes to
11763 notify the user that a buffer needs attention. The user then can cycle
11764 through them using @key{C-c C-SPC}.")
11765 (license license:gpl3+)))
11766
11767 (define-public emacs-slack
11768 (let ((commit "b7b9eada0bf62d40dfe764b00f55913a2d3d742e")
11769 (revision "7"))
11770 (package
11771 (name "emacs-slack")
11772 (version (git-version "0.0.2" revision commit))
11773 (source (origin
11774 (method git-fetch)
11775 (uri (git-reference
11776 (url "https://github.com/yuya373/emacs-slack.git")
11777 (commit commit)))
11778 (file-name (git-file-name name commit))
11779 (sha256
11780 (base32
11781 "0cqr7jnfxzb0z2wy79pdwpv9cvmawjif1kin3zbp8q7zhwrq09v0"))))
11782 (build-system emacs-build-system)
11783 (arguments
11784 `(#:phases
11785 (modify-phases %standard-phases
11786 ;; HOME needs to exist for source compilation.
11787 (add-before 'build 'set-HOME
11788 (lambda _ (setenv "HOME" "/tmp") #t)))))
11789 (propagated-inputs
11790 `(("emacs-alert" ,emacs-alert)
11791 ("emacs-emojify" ,emacs-emojify)
11792 ("emacs-helm" ,emacs-helm)
11793 ("emacs-request" ,emacs-request)
11794 ("emacs-websocket" ,emacs-websocket)
11795 ("emacs-oauth2" ,emacs-oauth2)
11796 ("emacs-circe" ,emacs-circe)))
11797 (home-page "https://github.com/yuya373/emacs-slack")
11798 (synopsis "Slack client for Emacs")
11799 (description "This package provides an Emacs client for the Slack
11800 messaging service.")
11801 (license license:gpl3+))))
11802
11803 (define-public emacs-bash-completion
11804 (package
11805 (name "emacs-bash-completion")
11806 (version "2.1.0")
11807 (source
11808 (origin
11809 (method git-fetch)
11810 (uri (git-reference
11811 (url "https://github.com/szermatt/emacs-bash-completion.git")
11812 (commit version)))
11813 (file-name (git-file-name name version))
11814 (sha256
11815 (base32 "1a1wxcqzh0javjmxwi3lng5i99xiylm8lm04kv4q1lh9bli6vmv0"))))
11816 (inputs `(("bash" ,bash)))
11817 (build-system emacs-build-system)
11818 (arguments
11819 `(#:phases
11820 (modify-phases %standard-phases
11821 (add-after 'unpack 'make-git-checkout-writable
11822 (λ _
11823 (for-each make-file-writable (find-files "."))
11824 #t))
11825 (add-before 'install 'configure
11826 (lambda* (#:key inputs #:allow-other-keys)
11827 (let ((bash (assoc-ref inputs "bash")))
11828 (emacs-substitute-variables "bash-completion.el"
11829 ("bash-completion-prog" (string-append bash "/bin/bash"))))
11830 #t)))))
11831 (home-page "https://github.com/szermatt/emacs-bash-completion")
11832 (synopsis "Bash completion for the shell buffer")
11833 (description
11834 "@code{bash-completion} defines dynamic completion hooks for shell-mode
11835 and shell-command prompts that are based on Bash completion.")
11836 (license license:gpl2+)))
11837
11838 (define-public emacs-easy-kill
11839 (package
11840 (name "emacs-easy-kill")
11841 (version "0.9.3")
11842 (source (origin
11843 (method url-fetch)
11844 (uri (string-append "https://elpa.gnu.org/packages/easy-kill-"
11845 version ".tar"))
11846 (sha256
11847 (base32
11848 "17nw0mglmg877axwg1d0gs03yc0p04lzmd3pl0nsnqbh3303fnqb"))))
11849 (build-system emacs-build-system)
11850 (home-page "https://github.com/leoliu/easy-kill")
11851 (synopsis "Kill and mark things easily in Emacs")
11852 (description
11853 "This package provides commands @code{easy-kill} and @code{easy-mark} to
11854 let users kill or mark things easily.")
11855 (license license:gpl3+)))
11856
11857 (define-public emacs-csv-mode
11858 (package
11859 (name "emacs-csv-mode")
11860 (version "1.10")
11861 (source
11862 (origin
11863 (method url-fetch)
11864 (uri (string-append "https://elpa.gnu.org/packages/csv-mode-"
11865 version ".el"))
11866 (sha256
11867 (base32 "0q7j2cmj7vs6hz8cnf7j7lmlcjmig3jn2p6az345z96agl8a5xsq"))))
11868 (build-system emacs-build-system)
11869 (home-page "https://elpa.gnu.org/packages/csv-mode.html")
11870 (synopsis "Major mode for editing comma/char separated values")
11871 (description
11872 "This Emacs package implements CSV mode, a major mode for editing records
11873 in a generalized CSV (character-separated values) format.")
11874 (license license:gpl3+)))
11875
11876 (define-public emacs-transmission
11877 (package
11878 (name "emacs-transmission")
11879 (version "0.12.1")
11880 (source
11881 (origin
11882 (method git-fetch)
11883 (uri (git-reference
11884 (url "https://github.com/holomorph/transmission.git")
11885 (commit version)))
11886 (file-name (git-file-name name version))
11887 (sha256
11888 (base32 "0kvg2gawsgy440x1fsl2c4pkxwp3zirq9rzixanklk0ryijhd3ry"))))
11889 (build-system emacs-build-system)
11890 (home-page "https://github.com/holomorph/transmission")
11891 (synopsis "Emacs interface to a Transmission session")
11892 (description "This package provides an Emacs interface to interact with a
11893 running session of the Transmission Bittorrent client.
11894
11895 Features:
11896
11897 @itemize
11898 @item List, add, start/stop, verify, remove torrents.
11899 @item Set speed limits, ratio limits, bandwidth priorities, trackers.
11900 @item Navigate to the corresponding file list, torrent info, peer info
11901 contexts.
11902 @item Toggle downloading and set priorities for individual files.
11903 @end itemize\n")
11904 (license license:gpl3+)))
11905
11906 (define-public emacs-polymode
11907 (package
11908 (name "emacs-polymode")
11909 (version "0.2")
11910 (source (origin
11911 (method git-fetch)
11912 (uri (git-reference
11913 (url "https://github.com/polymode/polymode.git")
11914 (commit (string-append "v" version))))
11915 (file-name (git-file-name name version))
11916 (sha256
11917 (base32
11918 "04v0gnzfsjb50bgly6kvpryx8cyzwjaq2llw4qv9ijw1l6ixmq3b"))))
11919 (build-system emacs-build-system)
11920 (home-page "https://github.com/polymode/polymode")
11921 (synopsis "Framework for multiple Emacs modes based on indirect buffers")
11922 (description
11923 "Polymode is an Emacs package that offers generic support for multiple
11924 major modes inside a single Emacs buffer. It is lightweight, object oriented
11925 and highly extensible. Creating a new polymode typically takes only a few
11926 lines of code. Polymode also provides extensible facilities for external
11927 literate programming tools for exporting, weaving and tangling.")
11928 (license license:gpl3+)))
11929
11930 (define-public emacs-polymode-ansible
11931 (let ((commit "b26094d029e25dc797b94254f797e7807a57e4c8"))
11932 (package
11933 (name "emacs-polymode-ansible")
11934 ;; No upstream version release yet.
11935 (version (git-version "0.1" "1" commit))
11936 (source
11937 (origin
11938 (method git-fetch)
11939 (uri (git-reference
11940 (url "https://gitlab.com/mavit/poly-ansible")
11941 (commit commit)))
11942 (file-name (git-file-name name version))
11943 (sha256
11944 (base32
11945 "055shddqibib3hx2ykwdz910nrqws40cd407mq946l2bf6v87gj6"))))
11946 (build-system emacs-build-system)
11947 (propagated-inputs
11948 `(("emacs-ansible-doc" ,emacs-ansible-doc)
11949 ("emacs-jinja2-mode" ,emacs-jinja2-mode)
11950 ("emacs-polymode" ,emacs-polymode)
11951 ("emacs-yaml-mode" ,emacs-yaml-mode)))
11952 (properties '((upstream-name . "poly-ansible")))
11953 (home-page "https://gitlab.com/mavit/poly-ansible/")
11954 (synopsis "Polymode for Ansible - Jinja2 in YAML")
11955 (description
11956 "Edit YAML files for Ansible containing embedded Jinja2 templating.")
11957 (license license:gpl3+))))
11958
11959 (define-public emacs-polymode-org
11960 (package
11961 (name "emacs-polymode-org")
11962 (version "0.2")
11963 (source
11964 (origin
11965 (method git-fetch)
11966 (uri (git-reference
11967 (url "https://github.com/polymode/poly-org.git")
11968 (commit (string-append "v" version))))
11969 (file-name (git-file-name name version))
11970 (sha256
11971 (base32
11972 "04x6apjad4kg30456z1j4ipp64yjgkcaim6hqr6bb0rmrianqhck"))))
11973 (build-system emacs-build-system)
11974 (propagated-inputs
11975 `(("emacs-polymode" ,emacs-polymode)))
11976 (properties '((upstream-name . "poly-org")))
11977 (home-page "https://github.com/polymode/poly-org")
11978 (synopsis "Polymode definitions for Org mode buffers")
11979 (description
11980 "Provides definitions for @code{emacs-polymode} to support
11981 @code{emacs-org} buffers. Edit source blocks in an Org mode buffer using the
11982 native modes of the blocks' languages while remaining inside the primary Org
11983 buffer.")
11984 (license license:gpl3+)))
11985
11986 (define-public eless
11987 (package
11988 (name "eless")
11989 (version "0.3")
11990 (source
11991 (origin
11992 (method git-fetch)
11993 (uri (git-reference
11994 (url "https://github.com/kaushalmodi/eless.git")
11995 (commit (string-append "v" version))))
11996 (file-name (git-file-name name version))
11997 (sha256
11998 (base32 "0jr7vhh4vw69llhi0fh9ljscljkszkj0acdxl04da5hvqv6pnqbb"))))
11999 (build-system trivial-build-system)
12000 (inputs
12001 `(("bash" ,bash)))
12002 (arguments
12003 `(#:modules ((guix build utils))
12004 #:builder
12005 (begin
12006 (use-modules (guix build utils))
12007 (copy-recursively (assoc-ref %build-inputs "source") "source")
12008 (chdir "source")
12009 (substitute* "eless" (("/usr/bin/env bash")
12010 (string-append (assoc-ref %build-inputs "bash")
12011 "/bin/bash")))
12012 (install-file "eless" (string-append %output "/bin"))
12013 (install-file "doc/eless.info" (string-append %output "/share/info"))
12014 #t)))
12015 (home-page "https://github.com/kaushalmodi/eless")
12016 (synopsis "Use Emacs as a paginator")
12017 (description "@code{eless} provides a combination of Bash script
12018 and a minimal Emacs view-mode.
12019
12020 Feautures:
12021
12022 @itemize
12023 @item Independent of a user’s Emacs config.
12024 @item Customizable via the @code{(locate-user-emacs-file \"elesscfg\")} config.
12025 @item Not require an Emacs server to be already running.
12026 @item Syntax highlighting.
12027 @item Org-mode file rendering.
12028 @item @code{man} page viewer.
12029 @item Info viewer.
12030 @item Dired, wdired, (batch edit symbolic links).
12031 @item Colored diffs, git diff, git log, ls with auto ANSI detection.
12032 @item Filter log files lines matching a regexp.
12033 @item Auto-revert log files similar to @code{tail -f}.
12034 @item Quickly change frame and font sizes.
12035 @end itemize\n")
12036 (license license:expat)))
12037
12038 (define-public emacs-evil-matchit
12039 (package
12040 (name "emacs-evil-matchit")
12041 (version "2.3.4")
12042 (source
12043 (origin
12044 (method git-fetch)
12045 (uri (git-reference
12046 (url "https://github.com/redguardtoo/evil-matchit.git")
12047 (commit version)))
12048 (file-name (git-file-name name version))
12049 (sha256
12050 (base32 "1nflkmx08n3ya5vaipy1xg19hnqcp6f7ddsx9xjh5gl6ix2iz0az"))))
12051 (build-system emacs-build-system)
12052 (propagated-inputs
12053 `(("emacs-evil" ,emacs-evil)))
12054 (home-page "https://github.com/redguardtoo/evil-matchit")
12055 (synopsis "Vim matchit ported into Emacs")
12056 (description
12057 "@code{evil-matchit} is a minor mode for jumping between matching tags in
12058 evil mode using @kbd{%}. It is a port of @code{matchit} for Vim.")
12059 (license license:gpl3+)))
12060
12061 (define-public emacs-evil-smartparens
12062 (package
12063 (name "emacs-evil-smartparens")
12064 (version "0.4.0")
12065 (source
12066 (origin
12067 (method git-fetch)
12068 (uri (git-reference
12069 (url "https://github.com/expez/evil-smartparens.git")
12070 (commit version)))
12071 (file-name (git-file-name name version))
12072 (sha256
12073 (base32 "1di4qz5fbrlwbg16c2j0m7y8zqfxw027qd7zqmc3rwk9znbhg7wl"))))
12074 (build-system emacs-build-system)
12075 (propagated-inputs
12076 `(("emacs-evil" ,emacs-evil)
12077 ("emacs-smartparens" ,emacs-smartparens)))
12078 (home-page "https://github.com/expez/evil-smartparens")
12079 (synopsis "Emacs Evil integration for Smartparens")
12080 (description "@code{emacs-evil-smartparens} is an Emacs minor mode which
12081 makes Evil play nice with Smartparens. Evil is an Emacs minor mode that
12082 emulates Vim features and provides Vim-like key bindings.")
12083 (license license:gpl3+)))
12084
12085 (define-public emacs-evil-quickscope
12086 (package
12087 (name "emacs-evil-quickscope")
12088 (version "0.1.4")
12089 (source
12090 (origin
12091 (method git-fetch)
12092 (uri (git-reference
12093 (url "https://github.com/blorbx/evil-quickscope.git")
12094 (commit (string-append "v" version))))
12095 (file-name (git-file-name name version))
12096 (sha256
12097 (base32 "1ja9ggj70wf0nmma4xnc1zdzg2crq9h1cv3cj7cgwjmllflgkfq7"))))
12098 (build-system emacs-build-system)
12099 (propagated-inputs
12100 `(("emacs-evil" ,emacs-evil)))
12101 (arguments
12102 `(#:tests? #t
12103 #:test-command '("emacs" "--batch"
12104 "-l" "evil-quickscope-tests.el"
12105 "-f" "ert-run-tests-batch-and-exit")))
12106 (home-page "https://github.com/blorbx/evil-quickscope")
12107 (synopsis "Target highlighting for emacs evil-mode f,F,t and T commands")
12108 (description "@code{emacs-evil-quickscope} highlights targets for Evil
12109 mode’s f,F,t,T keys, allowing for quick navigation within a line. It is a
12110 port of quick-scope for Vim. Evil is an Emacs minor mode that emulates Vim
12111 features and provides Vim-like key bindings.")
12112 (license license:gpl3+)))
12113
12114 (define-public emacs-bongo
12115 (package
12116 (name "emacs-bongo")
12117 (version "1.0")
12118 (source
12119 (origin
12120 (method git-fetch)
12121 (uri (git-reference
12122 (url "https://github.com/dbrock/bongo.git")
12123 (commit version)))
12124 (file-name (git-file-name name version))
12125 (sha256
12126 (base32 "1q3ws2vn062dh7ci6jn2k2bcn7szh3ap64sgwkzdd6f1pas37fnr"))))
12127 (build-system emacs-build-system)
12128 (home-page "https://github.com/dbrock/bongo")
12129 (synopsis "Media player for Emacs")
12130 (description
12131 "This package provides a flexible media player for Emacs. @code{Bongo}
12132 supports multiple backends such as @code{vlc}, @code{mpg123},
12133 @code{ogg123}, @code{speexdec}, @code{timidity}, @code{mikmod} and
12134 @code{afplay}.")
12135 (license license:gpl2+)))
12136
12137 (define-public emacs-groovy-modes
12138 (package
12139 (name "emacs-groovy-modes")
12140 (version "2.0")
12141 (source (origin
12142 (method git-fetch)
12143 (uri (git-reference
12144 (url "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
12145 (commit version)))
12146 (file-name (git-file-name name version))
12147 (sha256
12148 (base32
12149 "0c1d4cbnlny8gpcd20zr1wxx6ggf28jgh7sgd5r1skpsvjpbfqx2"))))
12150 (build-system emacs-build-system)
12151 (propagated-inputs
12152 `(("emacs-s" ,emacs-s)))
12153 (home-page "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
12154 (synopsis "Groovy related modes for Emacs")
12155 (description
12156 "This package provides @code{groovy-mode} for syntax highlighting in
12157 Groovy source files, REPL integration with run-groovy and Grails project
12158 navigation with the grails mode.")
12159 (license license:gpl3+)))
12160
12161 (define-public emacs-org-tree-slide
12162 (let ((commit "036a36eec1cf712d3db155572aed325daa372eb5")
12163 (revision "2"))
12164 (package
12165 (name "emacs-org-tree-slide")
12166 (version (git-version "2.8.4" revision commit))
12167 (source (origin
12168 (method git-fetch)
12169 (uri (git-reference
12170 (url "https://github.com/takaxp/org-tree-slide.git")
12171 (commit commit)))
12172 (sha256
12173 (base32
12174 "1r8ncx25xmxicgciyv5przp68y8qgy40fm10ba55awvql4xcm0yk"))
12175 (file-name (git-file-name name version))))
12176 (build-system emacs-build-system)
12177 (home-page "https://github.com/takaxp/org-tree-slide")
12178 (synopsis "Presentation tool for org-mode")
12179 (description
12180 "Org-tree-slide provides a slideshow mode to view org-mode files. Use
12181 @code{org-tree-slide-mode} to enter the slideshow mode, and then @kbd{C->} and
12182 @kbd{C-<} to jump to the next and previous slide.")
12183 (license license:gpl3+))))
12184
12185 (define-public emacs-scratch-el
12186 (let ((commit "2cdf2b841ce7a0987093f65b0cc431947549f897")
12187 (revision "1"))
12188 (package
12189 (name "emacs-scratch-el")
12190 (version (git-version "1.2" revision commit))
12191 (source (origin
12192 (method git-fetch)
12193 (uri (git-reference
12194 (url "https://github.com/ieure/scratch-el.git")
12195 (commit commit)))
12196 (file-name (git-file-name name version))
12197 (sha256
12198 (base32
12199 "0wscsndynjmnliajqaz28r1ww81j8wh84zwaaswx51abhwgl0idf"))))
12200 (build-system emacs-build-system)
12201 (native-inputs
12202 `(("texinfo" ,texinfo)))
12203 (arguments
12204 '(#:phases
12205 (modify-phases %standard-phases
12206 (add-after 'install 'install-doc
12207 (lambda* (#:key outputs #:allow-other-keys)
12208 (unless (invoke "makeinfo" "scratch.texi")
12209 (error "makeinfo failed"))
12210 (install-file "scratch.info"
12211 (string-append (assoc-ref outputs "out")
12212 "/share/info"))
12213 #t)))))
12214 (home-page "https://github.com/ieure/scratch-el/")
12215 (synopsis "Create scratch buffers with the same mode as current buffer")
12216 (description "Scratch is an extension to Emacs that enables one to create
12217 scratch buffers that are in the same mode as the current buffer. This is
12218 notably useful when working on code in some language; you may grab code into a
12219 scratch buffer, and, by virtue of this extension, do so using the Emacs
12220 formatting rules for that language.")
12221 (license license:bsd-2))))
12222
12223 (define-public emacs-kv
12224 (package
12225 (name "emacs-kv")
12226 (version "0.0.19")
12227 (source
12228 (origin
12229 (method git-fetch)
12230 (uri (git-reference
12231 (url "https://github.com/nicferrier/emacs-kv.git")
12232 (commit "721148475bce38a70e0b678ba8aa923652e8900e")))
12233 (file-name (git-file-name name version))
12234 (sha256
12235 (base32
12236 "0r0lz2s6gvy04fwnafai668jsf4546h4k6zd6isx5wpk0n33pj5m"))))
12237 (build-system emacs-build-system)
12238 (arguments
12239 `(#:tests? #t
12240 #:test-command '("emacs" "--batch" "-l" "kv-tests.el"
12241 "-f" "ert-run-tests-batch-and-exit")))
12242 (home-page "https://github.com/nicferrier/emacs-kv")
12243 (synopsis "Key/Value data structures library for Emacs Lisp")
12244 (description "@code{emacs-kv} is a collection of tools for dealing with
12245 key/value data structures such as plists, alists and hash-tables in Emacs
12246 Lisp.")
12247 (license license:gpl3+)))
12248
12249 (define-public emacs-esxml
12250 (package
12251 (name "emacs-esxml")
12252 (version "0.3.4")
12253 (source (origin
12254 (method git-fetch)
12255 (uri (git-reference
12256 (url "https://github.com/tali713/esxml.git")
12257 (commit version)))
12258 (file-name (git-file-name name version))
12259 (sha256
12260 (base32
12261 "00vv8a75wdklygdyr4km9mc2ismxak69c45jmcny41xl44rp9x8m"))))
12262 (build-system emacs-build-system)
12263 (arguments
12264 `(#:phases
12265 (modify-phases %standard-phases
12266 (add-after 'unpack 'fix-sources
12267 (lambda _
12268 ;; See: https://github.com/tali713/esxml/pull/28.
12269 (substitute* "css-lite.el"
12270 ((";;; main interface")
12271 (string-append ";;; main interface\n"
12272 "(require 'cl-lib)"))
12273 (("mapcan")
12274 "cl-mapcan")
12275 (("',\\(cl-mapcan #'process-css-rule rules\\)")
12276 "(cl-mapcan #'process-css-rule ',rules)"))
12277 (substitute* "esxml-form.el"
12278 ((",esxml-form-field-defn")
12279 "#'esxml-form-field-defn"))
12280 ;; See: https://github.com/tali713/esxml/issues/25
12281 (delete-file "esxpath.el")
12282 #t)))))
12283 (propagated-inputs
12284 `(("emacs-kv" ,emacs-kv)))
12285 (home-page "https://github.com/tali713/esxml/")
12286 (synopsis "SXML for EmacsLisp")
12287 (description "This is XML/XHTML done with S-Expressions in EmacsLisp.
12288 Simply, this is the easiest way to write HTML or XML in Lisp. This library
12289 uses the native form of XML representation as used by many libraries already
12290 included within Emacs. See @code{esxml-to-xml} for a concise description of
12291 the format.")
12292 (license license:gpl3+)))
12293
12294 (define-public emacs-nov-el
12295 (package
12296 (name "emacs-nov-el")
12297 (version "0.2.9")
12298 (source (origin
12299 (method git-fetch)
12300 (uri (git-reference
12301 (url "https://github.com/wasamasa/nov.el.git")
12302 (commit version)))
12303 (file-name (git-file-name name version))
12304 (sha256
12305 (base32
12306 "0v01l1p35mcigixs6j4c5bpc7n7bd51kxa0p3l1xl0gr92774yq3"))))
12307 (build-system emacs-build-system)
12308 (arguments
12309 `(#:phases
12310 (modify-phases %standard-phases
12311 (add-after 'unpack 'embed-path-to-unzip
12312 (lambda _
12313 (substitute* "nov.el"
12314 (("\\(executable-find \"unzip\"\\)")
12315 (string-append "\"" (which "unzip") "\"")))
12316 #t)))))
12317 (propagated-inputs
12318 `(("emacs-dash" ,emacs-dash)
12319 ("emacs-esxml" ,emacs-esxml)))
12320 (inputs
12321 `(("unzip" ,unzip)))
12322 (home-page "https://github.com/wasamasa/nov.el/")
12323 (synopsis "Major mode for reading EPUBs in Emacs")
12324 (description "@code{nov.el} provides a major mode for reading EPUB
12325 documents.
12326
12327 Features:
12328
12329 @itemize
12330 @item Basic navigation (jump to TOC, previous/next chapter)
12331 @item Remembering and restoring the last read position
12332 @item Jump to next chapter when scrolling beyond end
12333 @item Renders EPUB2 (@code{.ncx}) and EPUB3 (@code{<nav>}) TOCs
12334 @item Hyperlinks to internal and external targets
12335 @item Supports textual and image documents
12336 @item View source of document files
12337 @item Metadata display
12338 @item Image rescaling
12339 @end itemize
12340 ")
12341 (license license:gpl3+)))
12342
12343 (define-public epipe
12344 (package
12345 (name "epipe")
12346 (version "0.1.0")
12347 (source
12348 (origin
12349 (method git-fetch)
12350 (uri (git-reference
12351 (url "https://github.com/cute-jumper/epipe.git")
12352 (commit version)))
12353 (file-name (git-file-name name version))
12354 (sha256
12355 (base32 "0lkisi1s7sn12nx8zh58qmsxwnk1rjwryj18wcbr148xqz3swg57"))))
12356 (build-system trivial-build-system)
12357 (inputs
12358 `(("bash" ,bash)
12359 ("perl" ,perl)))
12360 (arguments
12361 `(#:modules
12362 ((guix build utils))
12363 #:builder
12364 (begin
12365 (use-modules (guix build utils))
12366 ;; Extract source.
12367 (copy-recursively (assoc-ref %build-inputs "source") "source")
12368 (chdir "source")
12369 ;; Patch shebangs.
12370 (substitute* "epipe"
12371 (("/usr/bin/env bash")
12372 (string-append (assoc-ref %build-inputs "bash") "/bin/bash")))
12373 (patch-shebang "epipe.pl"
12374 (list (string-append (assoc-ref %build-inputs "perl")
12375 "/bin")))
12376 ;; Install.
12377 (for-each (lambda (file)
12378 (install-file file (string-append %output "/bin")))
12379 '("epipe" "epipe.pl"))
12380 #t)))
12381 (home-page "https://github.com/cute-jumper/epipe")
12382 (synopsis "Pipe to the @code{emacsclient}")
12383 (description "@code{epipe} provides an utility to use your editor in
12384 the pipeline, featuring the support for running @code{emacsclient}.")
12385 (license license:gpl3+)))
12386
12387 (define-public emacs-hcl-mode
12388 (package
12389 (name "emacs-hcl-mode")
12390 (version "0.03")
12391 (source
12392 (origin
12393 (method git-fetch)
12394 (uri (git-reference
12395 (url "https://github.com/syohex/emacs-hcl-mode.git")
12396 (commit version)))
12397 (file-name (git-file-name name version))
12398 (sha256
12399 (base32 "0jqrgq15jz6pvx38pnwkizzfiih0d3nxqphyrc92nqpcyimg8b6g"))))
12400 (build-system emacs-build-system)
12401 (home-page "https://github.com/syohex/emacs-hcl-mode")
12402 (synopsis "Major mode for the Hashicorp Configuration Language")
12403 (description
12404 "@code{emacs-hcl-mode} provides an Emacs major mode for working with
12405 @acronym{HCL, Hashicorp Configuration Language}. It provides syntax
12406 highlighting and indentation support.")
12407 (license license:gpl3+)))
12408
12409 (define-public emacs-terraform-mode
12410 (package
12411 (name "emacs-terraform-mode")
12412 (version "0.06")
12413 (source
12414 (origin
12415 (method git-fetch)
12416 (uri (git-reference
12417 (url "https://github.com/syohex/emacs-terraform-mode.git")
12418 (commit version)))
12419 (file-name (git-file-name name version))
12420 (sha256
12421 (base32 "05hn8kskx9lcgn7bzgam99c629zlryir2pickwrqndacjrqpdykx"))))
12422 (build-system emacs-build-system)
12423 (propagated-inputs
12424 `(("emacs-hcl-mode" ,emacs-hcl-mode)))
12425 (home-page "https://github.com/syohex/emacs-terraform-mode")
12426 (synopsis "Major mode for Terraform")
12427 (description
12428 "@code{emacs-terraform-mode} provides a major mode for working with
12429 @uref{https://www.terraform.io/, Terraform} configuration files. Most of the
12430 functionality is inherited from @code{hcl-mode}.")
12431 (license license:gpl3+)))
12432
12433 (define-public emacs-exec-path-from-shell
12434 (package
12435 (name "emacs-exec-path-from-shell")
12436 (version "1.12")
12437 (source
12438 (origin
12439 (method git-fetch)
12440 (uri (git-reference
12441 (url "https://github.com/purcell/exec-path-from-shell")
12442 (commit version)))
12443 (file-name (git-file-name name version))
12444 (sha256
12445 (base32
12446 "1ga8bpxngd3ph2hdiik92c612ki71qxw818i6rgx6f6a5r0sbf3p"))))
12447 (build-system emacs-build-system)
12448 (home-page "https://github.com/purcell/exec-path-from-shell")
12449 (synopsis "Get environment variables such as @var{PATH} from the shell")
12450 (description
12451 "This library allows the user to set Emacs @var{exec-path} and @var{PATH}
12452 from the shell @var{PATH}, so that @code{shell-command}, @code{compile} and
12453 the like work as expected on systems on which Emacs is not guaranteed to
12454 inherit a login shell's environment variables. It also allows other
12455 environment variables to be retrieved from the shell, so that Emacs will see
12456 the same values you get in a terminal.")
12457 (license license:gpl3+)))
12458
12459 (define-public emacs-frog-menu
12460 (let ((commit "740bbc88b8535d31f783f3b2043a2a6683afbf31")
12461 (revision "1"))
12462 (package
12463 (name "emacs-frog-menu")
12464 (version (git-version "0.2.9" revision commit))
12465 (source
12466 (origin
12467 (method git-fetch)
12468 (uri (git-reference
12469 (url "https://github.com/clemera/frog-menu")
12470 (commit commit)))
12471 (file-name (git-file-name name version))
12472 (sha256
12473 (base32
12474 "1g77424jwq62qj06rvld44s5hp0dw8rw2pwmmag6gd536zf65xrj"))))
12475 (build-system emacs-build-system)
12476 (propagated-inputs
12477 `(("emacs-posframe" ,emacs-posframe)
12478 ("emacs-avy" ,emacs-avy)))
12479 (home-page "https://github.com/clemera/frog-menu")
12480 (synopsis "Quickly pick items from ad hoc menus")
12481 (description
12482 "This package provides a popup offering a preview of a list of
12483 candidates on which user-defined dispatch actions can act.")
12484 (license license:gpl3+))))
12485
12486 (define-public emacs-frog-jump-buffer
12487 (let ((commit "2d7b342785ae27d45f5d252272df6eb773c78e20")
12488 (revision "1"))
12489 (package
12490 (name "emacs-frog-jump-buffer")
12491 (version (git-version "0.1.4" revision commit))
12492 (source
12493 (origin
12494 (method git-fetch)
12495 (uri (git-reference
12496 (url "https://github.com/waymondo/frog-jump-buffer")
12497 (commit commit)))
12498 (file-name (git-file-name name version))
12499 (sha256
12500 (base32
12501 "1z00by8hiss1r2lwmzrl8pnz6jykia2849dqqm4l3z5rf6lwvc0f"))))
12502 (build-system emacs-build-system)
12503 (propagated-inputs
12504 `(("emacs-dash" ,emacs-dash)
12505 ("emacs-frog-menu" ,emacs-frog-menu)
12506 ("emacs-avy" ,emacs-avy)))
12507 (home-page "https://github.com/waymondo/frog-jump-buffer")
12508 (synopsis "Jump to any Emacs buffer with minimal keystrokes")
12509 (description
12510 "This package provides a preview window of buffers that can be switched
12511 to with quicklink-style selections.")
12512 (license license:gpl3+))))
12513
12514 (define-public emacs-deft
12515 (package
12516 (name "emacs-deft")
12517 (version "0.8")
12518 (source
12519 (origin
12520 (method git-fetch)
12521 (uri (git-reference
12522 (url "https://github.com/jrblevin/deft.git")
12523 (commit (string-append "v" version))))
12524 (file-name (git-file-name name version))
12525 (sha256
12526 (base32
12527 "0z7cilgiz6krvl5h2z72hkch43qxmypb0k6p5vxn5lx1p6v0mrf2"))))
12528 (build-system emacs-build-system)
12529 (home-page "https://jblevins.org/projects/deft/")
12530 (synopsis "Quickly browse, filter, and edit plain text notes")
12531 (description
12532 "Deft is an Emacs mode for quickly browsing, filtering, and editing
12533 directories of plain text notes, inspired by Notational Velocity.")
12534 (license license:bsd-3)))
12535
12536 (define-public emacs-anzu
12537 (package
12538 (name "emacs-anzu")
12539 (version "0.62")
12540 (source
12541 (origin
12542 (method git-fetch)
12543 (uri (git-reference
12544 (url "https://github.com/syohex/emacs-anzu.git")
12545 (commit version)))
12546 (file-name (git-file-name name version))
12547 (sha256
12548 (base32 "1lzvc0ihcbplir4hqfyxfqpsd78arz15gk92kmq4f8ggbkl37fan"))))
12549 (build-system emacs-build-system)
12550 (home-page "https://github.com/syohex/emacs-anzu")
12551 (synopsis "Show number of matches in mode-line while searching")
12552 (description
12553 "Anzu provides a minor mode which displays \"current match/total
12554 matches\" in the mode line in various search modes. This is an Emacs port of
12555 Anzu.zim.")
12556 (license license:gpl3+)))
12557
12558 (define-public emacs-ascii-art-to-unicode
12559 (package
12560 (name "emacs-ascii-art-to-unicode")
12561 (version "1.12")
12562 (source
12563 (origin
12564 (method url-fetch)
12565 (uri (string-append "https://elpa.gnu.org/packages/ascii-art-to-unicode-"
12566 version ".el"))
12567 (sha256
12568 (base32
12569 "1w9h2lyriafxj71r79774gh822cz8mry3gdfzyj6ym6v9mvqypna"))))
12570 (build-system emacs-build-system)
12571 (home-page "https://elpa.gnu.org/packages/ascii-art-to-unicode.html")
12572 (synopsis "ASCII to Unicode art converter for Emacs")
12573 (description "This Emacs package provides the commands @command{aa2u} and
12574 @command{aa2u-rectangle}. Both of these commands can be used to convert
12575 simple ASCII art line drawings to Unicode; the former works on the active
12576 region of the buffer, while the latter works on rectangular selections.")
12577 (license license:gpl3+)))
12578
12579 (define-public emacs-emmet-mode
12580 (let ((commit "1acb821e0142136344ccf40c1e5fb664d7db2e70")
12581 (revision "1"))
12582 (package
12583 (name "emacs-emmet-mode")
12584 (version (git-version "1.0.8" revision commit))
12585 (source (origin
12586 (method git-fetch)
12587 (uri (git-reference
12588 (url "https://github.com/smihica/emmet-mode.git")
12589 (commit commit)))
12590 (file-name (git-file-name name version))
12591 (sha256
12592 (base32
12593 "1p25h191bm0h5b3w5apg7wks51k7pb7h4dlww4jbl9ri4d33fzcl"))))
12594 (build-system emacs-build-system)
12595 (home-page "https://github.com/smihica/emmet-mode")
12596 (synopsis "Unofficial Emmet's support for Emacs")
12597 (description
12598 "Unfold CSS-selector-like expressions to markup. It is intended to be
12599 used with SGML-like languages: XML, HTML, XHTML, XSL, etc.")
12600 (license license:gpl3+))))
12601
12602 (define-public emacs-ergoemacs-mode
12603 (let ((commit "3ce23bba3cb50562693860f87f3528c471d603ba")
12604 (revision "1"))
12605 (package
12606 (name "emacs-ergoemacs-mode")
12607 (version (git-version "5.16.10.12" revision commit))
12608 (source
12609 (origin
12610 (method git-fetch)
12611 (uri (git-reference
12612 (url "https://github.com/ergoemacs/ergoemacs-mode.git")
12613 (commit commit)))
12614 (file-name (git-file-name name version))
12615 (sha256
12616 (base32
12617 "1s3b9bridl78hh1mxmdk9nqlmqhibbaxk0a1cixmsf23s06w8w6l"))))
12618 (build-system emacs-build-system)
12619 (propagated-inputs
12620 `(("emacs-undo-tree" ,emacs-undo-tree)))
12621 (home-page "https://ergoemacs.github.io/")
12622 (synopsis "Emacs mode based on common modern interface and ergonomics")
12623 (description
12624 "This package provides an efficient Emacs keybinding set based on
12625 statistics of command frequency, and supports common shortcuts for open,
12626 close, copy, cut, paste, undo, redo.")
12627 (license license:gpl3+))))
12628
12629 (define-public emacs-password-store
12630 (package
12631 (name "emacs-password-store")
12632 (version "1.7.3")
12633 (source (origin
12634 (method url-fetch)
12635 (uri
12636 (string-append "https://git.zx2c4.com/password-store/snapshot/"
12637 "password-store-" version ".tar.xz"))
12638 (sha256
12639 (base32
12640 "1x53k5dn3cdmvy8m4fqdld4hji5n676ksl0ql4armkmsds26av1b"))))
12641 (build-system emacs-build-system)
12642 (arguments
12643 `(#:phases
12644 (modify-phases %standard-phases
12645 (add-after 'unpack 'extract-el-file
12646 (lambda _
12647 (copy-file "contrib/emacs/password-store.el" "password-store.el")
12648 (delete-file-recursively "contrib")
12649 (delete-file-recursively "man")
12650 (delete-file-recursively "src")
12651 (delete-file-recursively "tests"))))))
12652 (propagated-inputs
12653 `(("emacs-f" ,emacs-f)
12654 ("emacs-s" ,emacs-s)
12655 ("emacs-with-editor" ,emacs-with-editor)
12656 ("password-store" ,password-store)))
12657 (home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs")
12658 (synopsis "Password store (pass) support for Emacs")
12659 (description
12660 "This package provides functions for working with pass (\"the
12661 standard Unix password manager\").")
12662 (license license:gpl2+)))
12663
12664 (define-public emacs-auth-source-pass
12665 (let ((commit "847a1f54ed48856b4dfaaa184583ef2c84173edf")
12666 (revision "2"))
12667 (package
12668 (name "emacs-auth-source-pass")
12669 (version (git-version "5.0.0" revision commit))
12670 (source
12671 (origin
12672 (method git-fetch)
12673 (uri (git-reference
12674 (url "https://github.com/DamienCassou/auth-password-store.git")
12675 (commit commit)))
12676 (file-name (git-file-name name version))
12677 (sha256
12678 (base32 "0g48z5w6n3c54zqfpx65dfyl9jqbl15idvbb1hhw2pd9f9r8fykk"))))
12679 (build-system emacs-build-system)
12680 (arguments
12681 `(#:tests? #t
12682 #:test-command '("emacs" "--batch"
12683 "-L" "."
12684 "-l" "test/auth-source-pass-tests.el"
12685 "-f" "ert-run-tests-batch-and-exit")))
12686 (home-page "https://github.com/DamienCassou/auth-password-store")
12687 (synopsis "Integrate @code{auth-source} with @code{password-store}")
12688 (description "This package helps Emacs integrate with the Unix
12689 @code{password-store} application.")
12690 (license license:gpl3+))))
12691
12692 (define-public emacs-pass
12693 (package
12694 (name "emacs-pass")
12695 (version "2.0")
12696 (source
12697 (origin
12698 (method git-fetch)
12699 (uri (git-reference
12700 (url "https://github.com/NicolasPetton/pass.git")
12701 (commit version)))
12702 (file-name (git-file-name name version))
12703 (sha256
12704 (base32 "0jc8j421mlflspg24jvrqc2n3y5n3cpk3hjy560il8g36xi1049p"))))
12705 (build-system emacs-build-system)
12706 (propagated-inputs
12707 `(("emacs-password-store" ,emacs-password-store)
12708 ("emacs-f" ,emacs-f)))
12709 (home-page "https://github.com/NicolasPetton/pass")
12710 (synopsis "Major mode for @file{password-store.el}")
12711 (description "This is a major mode for managing password-store (pass)
12712 keychains. The keychain entries are displayed in a directory-like structure
12713 and can be consulted and modified.")
12714 (license license:gpl3+)))
12715
12716 (define-public emacs-psc-ide
12717 ;; There is no proper release. The base version is extracted from the
12718 ;; "Version" keyword in the main file.
12719 (let ((commit "7fc2b841be25f5bc5e1eb7d0634436181c38b3fe")
12720 (revision "1"))
12721 (package
12722 (name "emacs-psc-ide")
12723 (version (git-version "0.1.0" revision commit))
12724 (source
12725 (origin
12726 (method git-fetch)
12727 (uri
12728 (git-reference
12729 (url "https://github.com/purescript-emacs/psc-ide-emacs")
12730 (commit commit)))
12731 (file-name (git-file-name name version))
12732 (sha256
12733 (base32 "0r0fymyai30jimm34z1cmav4wgij8ci6s1d9y7qigygfbbfrdsmj"))))
12734 (build-system emacs-build-system)
12735 (propagated-inputs
12736 `(("emacs-company" ,emacs-company)
12737 ("emacs-dash" ,emacs-dash)
12738 ("emacs-flycheck" ,emacs-flycheck)
12739 ("emacs-let-alist" ,emacs-let-alist)
12740 ("emacs-s" ,emacs-s)
12741 ("emacs-seq" ,emacs-seq)))
12742 (home-page "https://github.com/purescript-emacs/psc-ide-emacs")
12743 (synopsis "Emacs integration for PureScript's psc-ide tool")
12744 (description
12745 "This package provices Emacs integration for @code{psc-ide}, an IDE
12746 protocol for PureScript programming language. It features:
12747
12748 @itemize
12749 @item Completions
12750 @item Type at point
12751 @item Go to definition
12752 @item Automatic imports
12753 @item Case split
12754 @item Build system integration, and
12755 @item Flycheck support
12756 @end itemize")
12757 (license license:gpl3+))))
12758
12759 (define-public emacs-evil-anzu
12760 (package
12761 (name "emacs-evil-anzu")
12762 (version "0.03")
12763 (source
12764 (origin
12765 (method git-fetch)
12766 (uri (git-reference
12767 (url "https://github.com/syohex/emacs-evil-anzu")
12768 (commit version)))
12769 (file-name (git-file-name name version))
12770 (sha256
12771 (base32 "0lw7fg4gqwj30r0l6k2ni36sxqkf65zf0d0z3rxnpwbxlf8dlkrr"))))
12772 (build-system emacs-build-system)
12773 (propagated-inputs
12774 `(("emacs-evil" ,emacs-evil)
12775 ("emacs-anzu" ,emacs-anzu)))
12776 (home-page "https://github.com/syohex/emacs-evil-anzu")
12777 (synopsis "Anzu for evil-mode")
12778 (description "@code{anzu} provides a minor mode that displays the current
12779 match and total match information in the mode-line in various search modes.")
12780 (license license:gpl3+)))
12781
12782 (define-public emacs-pg
12783 (let ((commit "4f6516ec3946d95dcef49abb6703cc89ecb5183d"))
12784 (package
12785 (name "emacs-pg")
12786 (version (git-version "0.1" "1" commit))
12787 (source (origin
12788 (method git-fetch)
12789 (uri (git-reference (url "https://github.com/cbbrowne/pg.el")
12790 (commit commit)))
12791 (file-name (git-file-name name version))
12792 (sha256
12793 (base32
12794 "1zh7v4nnpzvbi8yj1ynlqlawk5bmlxi6s80b5f2y7hkdqb5q26k0"))))
12795 (build-system emacs-build-system)
12796 (home-page "https://github.com/cbbrowne/pg.el")
12797 (synopsis "Emacs Lisp interface for PostgreSQL")
12798 (description
12799 "This package provides an Emacs Lisp interface for PostgreSQL.")
12800 (license license:gpl3+))))
12801
12802 (define-public emacs-cl-generic
12803 (package
12804 (name "emacs-cl-generic")
12805 (version "0.3")
12806 (source
12807 (origin
12808 (method url-fetch)
12809 (uri (string-append "https://elpa.gnu.org/packages/cl-generic-"
12810 version ".el"))
12811 (sha256
12812 (base32
12813 "0vb338bhjpsnrf60qgxny4z5rjrnifahnrv9axd4shay89d894zq"))))
12814 (build-system emacs-build-system)
12815 ;; Byte compilation of the autoload file fails.
12816 (arguments
12817 `(#:phases (modify-phases %standard-phases
12818 (delete 'enable-autoloads-compilation))))
12819 (home-page "https://elpa.gnu.org/packages/seq.html")
12820 (synopsis
12821 "Forward @code{cl-generic} compatibility for Emacs before version 25")
12822 (description "This package provides a subset of the features of the
12823 @code{cl-generic} package introduced in Emacs-25, for use on previous
12824 @code{emacsen}.")
12825 (license license:gpl3+)))
12826
12827 (define-public emacs-finalize
12828 (package
12829 (name "emacs-finalize")
12830 (version "2.0.0")
12831 (source
12832 (origin
12833 (method git-fetch)
12834 (uri (git-reference
12835 (url "https://github.com/skeeto/elisp-finalize.git")
12836 (commit version)))
12837 (file-name (git-file-name name version))
12838 (sha256
12839 (base32 "1gvlm4i62af5jscwz0jccc8ra0grprxpg2rlq91d5nn8dn5lpy79"))))
12840 (build-system emacs-build-system)
12841 (propagated-inputs
12842 `(("emacs-cl-generic" ,emacs-cl-generic)))
12843 (home-page "https://github.com/skeeto/elisp-finalize")
12844 (synopsis "Finalizers for Emacs Lisp")
12845 (description
12846 "This package runs a callback (a finalizer)
12847 after its registered lisp object has been garbage collected. This allows
12848 extra resources, such as buffers and processes, to be cleaned up after the
12849 object has been freed.")
12850 (license license:unlicense)))
12851
12852 (define-public emacs-emacsql
12853 (package
12854 (name "emacs-emacsql")
12855 (version "3.0.0")
12856 (source (origin
12857 (method git-fetch)
12858 (uri (git-reference
12859 (url "https://github.com/skeeto/emacsql.git")
12860 (commit (string-append version))))
12861 (file-name (git-file-name name version))
12862 (sha256
12863 (base32
12864 "1c84gxr1majqj4b59wgdy3lzm3ap66w9qsrnkx8hdbk9895ak81g"))))
12865 (build-system emacs-build-system)
12866 (arguments
12867 `(#:modules ((guix build emacs-build-system)
12868 (guix build utils)
12869 (guix build emacs-utils)
12870 (srfi srfi-26))
12871 #:phases
12872 (modify-phases %standard-phases
12873 (delete 'build) ;‘build-emacsql-sqlite’ compiles ‘*.el’ files.
12874 (add-before 'install 'patch-elisp-shell-shebangs
12875 (lambda _
12876 (substitute* (find-files "." "\\.el")
12877 (("/bin/sh") (which "sh")))
12878 #t))
12879 (add-after 'patch-elisp-shell-shebangs 'setenv-shell
12880 (lambda _
12881 (setenv "SHELL" "sh")))
12882 (add-after 'setenv-shell 'build-emacsql-sqlite
12883 (lambda _
12884 (invoke "make" "binary" "CC=gcc")))
12885 (add-after 'build-emacsql-sqlite 'install-emacsql-sqlite
12886 ;; This build phase installs emacs-emacsql binary.
12887 (lambda* (#:key outputs #:allow-other-keys)
12888 (install-file "sqlite/emacsql-sqlite"
12889 (string-append (assoc-ref outputs "out")
12890 "/bin"))
12891 #t))
12892 (add-after 'install-emacsql-sqlite 'patch-emacsql-sqlite.el
12893 ;; This build phase removes interactive prompts
12894 ;; and makes sure Emacs look for binaries in the right places.
12895 (lambda* (#:key outputs #:allow-other-keys)
12896 (let ((file "emacsql-sqlite.el"))
12897 (chmod file #o644)
12898 (emacs-substitute-sexps file
12899 ;; Make sure Emacs looks for ‘GCC’ binary in the right place.
12900 ("(executable-find" (which "gcc"))
12901 ;; Make sure Emacs looks for ‘emacsql-sqlite’ binary
12902 ;; in the right place.
12903 ("(defvar emacsql-sqlite-executable"
12904 (string-append (assoc-ref outputs "out")
12905 "/bin/emacsql-sqlite"))))))
12906 (replace 'install
12907 (lambda* (#:key outputs #:allow-other-keys)
12908 (let* ((out (assoc-ref outputs "out")))
12909 (install-file "sqlite/emacsql-sqlite"
12910 (string-append out "/bin"))
12911 (for-each (cut install-file <>
12912 (string-append out "/share/emacs/site-lisp"))
12913 (find-files "." "\\.elc*$")))
12914 #t)))))
12915 (inputs
12916 `(("emacs-minimal" ,emacs-minimal)
12917 ("mariadb" ,mariadb "lib")
12918 ("mariadb-dev" ,mariadb "dev")
12919 ("postgresql" ,postgresql)))
12920 (propagated-inputs
12921 `(("emacs-finalize" ,emacs-finalize)
12922 ("emacs-pg" ,emacs-pg)))
12923 (home-page "https://github.com/skeeto/emacsql")
12924 (synopsis "Emacs high-level SQL database front-end")
12925 (description "Any readable Lisp value can be stored as a value in EmacSQL,
12926 including numbers, strings, symbols, lists, vectors, and closures. EmacSQL
12927 has no concept of @code{TEXT} values; it's all just Lisp objects. The Lisp
12928 object @code{nil} corresponds 1:1 with @code{NULL} in the database.")
12929 (license license:gpl3+)))
12930
12931 (define-public emacs-closql
12932 ;; Take a commit newer than 1.0.0 release because of Emacs upgrade to 26.3.
12933 (let ((commit "70b98dbae53611d10a461d9b4a6f71086910dcef"))
12934 (package
12935 (name "emacs-closql")
12936 (version (git-version "1.0.0" "1" commit))
12937 (source
12938 (origin
12939 (method git-fetch)
12940 (uri (git-reference
12941 (url "https://github.com/emacscollective/closql.git")
12942 (commit commit)))
12943 (file-name (git-file-name name version))
12944 (sha256
12945 (base32
12946 "1wvhrihg663f61yzc7f0vha2abjdnlwbk0gjcwakdfk1bhwf5ikh"))))
12947 (build-system emacs-build-system)
12948 (propagated-inputs
12949 `(("emacs-emacsql" ,emacs-emacsql)))
12950 (home-page "https://github.com/emacscollective/closql")
12951 (synopsis "Store EIEIO objects using EmacSQL")
12952 (description
12953 "This package stores uniform EIEIO objects in an EmacSQL
12954 database. SQLite is used as backend. This library imposes some restrictions
12955 on what kind of objects can be stored; it isn't intended to store arbitrary
12956 objects. All objects have to share a common superclass and subclasses cannot
12957 add any additional instance slots.")
12958 (license license:gpl3))))
12959
12960 (define-public emacs-epkg
12961 ;; The release version is to old for the current database scheme.
12962 (let ((commit "432312b9583ed7b88ad9644fd1bf2183765a892e"))
12963 (package
12964 (name "emacs-epkg")
12965 (version (git-version "3.0.0" "1" commit))
12966 (source
12967 (origin
12968 (method git-fetch)
12969 (uri (git-reference
12970 (url "https://github.com/emacscollective/epkg.git")
12971 (commit commit)))
12972 (file-name (git-file-name name version))
12973 (sha256
12974 (base32
12975 "0d882kahn7a0vri7a9r15lvmfx1zn2hsga6jfcc6jv0hqbswlb2k"))))
12976 (build-system emacs-build-system)
12977 (propagated-inputs
12978 `(("emacs-closql" ,emacs-closql)
12979 ("emacs-dash" ,emacs-dash)))
12980 (home-page "https://emacsmirror.net")
12981 (synopsis "Browse the Emacsmirror package database")
12982 (description "This package provides access to a local copy of the
12983 Emacsmirror package database. It provides low-level functions for querying
12984 the database and a @file{package.el} user interface for browsing the database.
12985 Epkg itself is not a package manager.
12986
12987 Getting a local copy:
12988
12989 @example
12990 git clone https://github.com/emacsmirror/epkgs.git ~/.emacs.d/epkgs
12991 cd ~/.emacs.d/epkgs
12992 git submodule init
12993 git config --global url.https://github.com/.insteadOf git@@github.com:
12994 git submodule update
12995 @end example
12996
12997 Some submodule may be missing. In this case Git will prompt for a GitHub user
12998 name and password. To skip it press a @key{Return} key.
12999
13000 You could get a Epkg package list by invoking @code{epkg-list-packages} in
13001 Emacs.")
13002 (license license:gpl3+))))
13003
13004 (define-public emacs-elisp-slime-nav
13005 (package
13006 (name "emacs-elisp-slime-nav")
13007 (version "0.9")
13008 (source
13009 (origin
13010 (method git-fetch)
13011 (uri (git-reference
13012 (url "https://github.com/purcell/elisp-slime-nav.git")
13013 (commit version)))
13014 (file-name (git-file-name name version))
13015 (sha256
13016 (base32 "11vyy0bvzbs1h1kggikrvhd658j7c730w0pdp6qkm60rigvfi1ih"))))
13017 (build-system emacs-build-system)
13018 (home-page "https://github.com/purcell/elisp-slime-nav")
13019 (synopsis "Make @code{M-.} and @code{M-,} work for elisp like they do in SLIME")
13020 (description
13021 "This package provides SLIME's convenient @code{M-.}and @code{M-,} navigation
13022 in @code{emacs-lisp-mode}, together with an elisp equivalent of
13023 @code{slime-describe-symbol}.")
13024 (license license:gpl3+)))
13025
13026 (define-public emacs-dedicated
13027 (package
13028 (name "emacs-dedicated")
13029 (version "1.0.0")
13030 (source
13031 (origin
13032 (method git-fetch)
13033 (uri (git-reference
13034 (url "https://github.com/emacsorphanage/dedicated.git")
13035 (commit version)))
13036 (file-name (git-file-name name version))
13037 (sha256
13038 (base32 "0pba9s0h37sxyqh733vi6k5raa4cs7aradipf3826inw36jcw414"))))
13039 (build-system emacs-build-system)
13040 (home-page "https://github.com/emacsorphanage/dedicated")
13041 (synopsis "Emacs minor mode for toggling a windows's \"dedicated\" flag")
13042 (description
13043 "This simple Emacs minor mode allows you to toggle a window's
13044 \"dedicated\" flag. When a window is \"dedicated\", Emacs will not select
13045 files into that window. This can be quite handy since many commands will use
13046 another window to show results (compilation mode, starting info, and so on).
13047 A dedicated window won't be used for such a purpose. For details, please read
13048 the source file.")
13049 (license license:gpl2+)))
13050
13051 (define-public emacs-nnreddit
13052 (let ((commit "9843f99d01fd8f1eea2fc685965a7c7f4eeb187a")
13053 (revision "1"))
13054 (package
13055 (name "emacs-nnreddit")
13056 (version (string-append "0.0.1-" revision "."
13057 (string-take commit 7)))
13058 (source (origin
13059 (method git-fetch)
13060 (uri (git-reference
13061 (url "https://github.com/paul-issartel/nnreddit.git")
13062 (commit commit)))
13063 (file-name (git-file-name name version))
13064 (sha256
13065 (base32
13066 "0j4h3bnga640250jdq8bwyja49r41ssrsjd6lba4gzzllqk02nbn"))))
13067 (build-system emacs-build-system)
13068 (home-page "https://github.com/paul-issartel/nnreddit")
13069 (synopsis "Reddit backend for the Gnus newsreader")
13070 (description "@url{https://www.reddit.com} backend for the Gnus
13071 newsreader.")
13072 (license license:gpl3+))))
13073
13074 (define-public emacs-makey
13075 (package
13076 (name "emacs-makey")
13077 (version "0.3")
13078 (source
13079 (origin
13080 (method git-fetch)
13081 (uri (git-reference
13082 (url "https://github.com/mickeynp/makey.git")
13083 (commit version)))
13084 (file-name (git-file-name name version))
13085 (sha256
13086 (base32 "1rr7vpm3xxzcaam3m8xni3ajy8ycyljix07n2jzczayri9sd8csy"))))
13087 (build-system emacs-build-system)
13088 (home-page "https://github.com/mickeynp/makey")
13089 (synopsis "Emacs interactive command-line mode")
13090 (description
13091 "This package provides an Emacs interactive command-line mode.")
13092 (license license:gpl3+)))
13093
13094 (define-public emacs-outorg
13095 (let ((commit "78b0695121fb974bc4e971eb4ef7f8afd6d89d64"))
13096 (package
13097 (name "emacs-outorg")
13098 (version (git-version "2.0" "1" commit))
13099 (source
13100 (origin
13101 (method git-fetch)
13102 (uri (git-reference
13103 (url "https://github.com/alphapapa/outorg")
13104 (commit commit)))
13105 (file-name (git-file-name name version))
13106 (sha256
13107 (base32
13108 "03aclh4m3f7rb821gr9pwvnqkkl91px3qxdcarpf3ypa1x4fxvlj"))))
13109 (build-system emacs-build-system)
13110 (home-page "https://github.com/alphapapa/outorg")
13111 (synopsis "Org-style comment editing")
13112 (description "Outorg is for editing comment-sections of source-code
13113 files in temporary Org-mode buffers. It turns conventional
13114 literate-programming upside-down in that the default mode is the
13115 programming-mode, and special action has to be taken to switch to the
13116 text-mode (i.e. Org-mode).")
13117 (license license:gpl3+))))
13118
13119 (define-public emacs-outshine
13120 (package
13121 (name "emacs-outshine")
13122 (version "3.0.1")
13123 (source (origin
13124 (method git-fetch)
13125 (uri (git-reference
13126 (url "https://github.com/alphapapa/outshine.git")
13127 (commit (string-append "v" version))))
13128 (file-name (git-file-name name version))
13129 (sha256
13130 (base32
13131 "1lh9f5dgdbwfyzxk6nsg1xwdjs8gc6p9mbyyhp6f8fnk3h0y88cg"))))
13132 (build-system emacs-build-system)
13133 (propagated-inputs
13134 `(("emacs-outorg" ,emacs-outorg)))
13135 (home-page "https://github.com/alphapapa/outshine")
13136 (synopsis "Emacs outline with outshine")
13137 (description "Outshine attempts to bring the look and feel of
13138 @code{org-mode} to an Emacs outside of the Org major-mode. It is an extension
13139 of @code{outline-minor-mode} (@code{org-mode} itself derives from
13140 outline-mode), so there is no such thing like an outshine mode, only
13141 @code{outline-minor-mode} with outshine extensions loaded.")
13142 (license license:gpl3+)))
13143
13144 (define-public emacs-frecency
13145 (let ((commit "31ef9ff4af1a4fed3dcc24ea74037feea8795c87")
13146 (version "0.1-pre")
13147 (revision "1"))
13148 (package
13149 (name "emacs-frecency")
13150 (version (git-version version revision commit))
13151 (source (origin
13152 (method git-fetch)
13153 (uri (git-reference
13154 (url "https://github.com/alphapapa/frecency.el")
13155 (commit commit)))
13156 (sha256
13157 (base32
13158 "051aihjdg3x22svaxhwylpi8i6s2x9j8syvsj1jgilgjjdy15l6j"))
13159 (file-name (git-file-name name version))))
13160 (build-system emacs-build-system)
13161 (propagated-inputs
13162 `(("emacs-a" ,emacs-a)
13163 ("emacs-dash" ,emacs-dash)))
13164 (home-page "https://github.com/alphapapa/frecency.el")
13165 (synopsis "Sort items by frequency and recency of access")
13166 (description "This package provides a way of sorting items via
13167 a heuristic based on frequency and recency.")
13168 (license license:gpl3+))))
13169
13170 (define-public emacs-org-recent-headings
13171 (package
13172 (name "emacs-org-recent-headings")
13173 (version "0.1")
13174 (source (origin
13175 (method git-fetch)
13176 (uri (git-reference
13177 (url "https://github.com/alphapapa/org-recent-headings.git")
13178 (commit version)))
13179 (file-name (git-file-name name version))
13180 (sha256
13181 (base32
13182 "0gsrzmg3mssh9s28yjm9m866fnhm1pcligssz1q6brga6dm6f2yy"))))
13183 (build-system emacs-build-system)
13184 (propagated-inputs
13185 `(("emacs-org" ,emacs-org)
13186 ("emacs-dash" ,emacs-dash)
13187 ("emacs-frecency" ,emacs-frecency)))
13188 (home-page "https://github.com/alphapapa/org-recent-headings")
13189 (synopsis "Navigate to recently used Org headings and lists")
13190 (description "This package maintains a list of recently used Org headings,
13191 as well as functions for navigating between these headings.")
13192 (license license:gpl3+)))
13193
13194 (define-public emacs-org-super-agenda
13195 ;; emacs-org-sidebar depends on a newer commit than the latest release version.
13196 (let ((commit "a87ca11fbbe72ab6c1c4c3b55ae9e1e93ebfb8ba")
13197 (revision "3"))
13198 (package
13199 (name "emacs-org-super-agenda")
13200 (version (git-version "1.1.1" revision commit))
13201 (source (origin
13202 (method git-fetch)
13203 (uri (git-reference
13204 (url "https://github.com/alphapapa/org-super-agenda")
13205 (commit commit)))
13206 (file-name (git-file-name name version))
13207 (sha256
13208 (base32
13209 "08b7babdaqblb6jff57an4kbcxk6fkhf668620fipfjgbsnqv3ff"))))
13210 (build-system emacs-build-system)
13211 (propagated-inputs
13212 `(("emacs-org" ,emacs-org)
13213 ("emacs-dash" ,emacs-dash)
13214 ("emacs-ts" ,emacs-ts)
13215 ("emacs-ht" ,emacs-ht)
13216 ("emacs-s" ,emacs-s)))
13217 (home-page "https://github.com/alphapapa/org-super-agenda")
13218 (synopsis "Supercharged Org agenda")
13219 (description "This package allows items in the Org agenda to be grouped
13220 into sections while preserving the structure imposed by any timestamps.")
13221 (license license:gpl3+))))
13222
13223 (define-public emacs-org-make-toc
13224 (package
13225 (name "emacs-org-make-toc")
13226 (version "0.5")
13227 (source (origin
13228 (method git-fetch)
13229 (uri (git-reference
13230 (url "https://github.com/alphapapa/org-make-toc")
13231 (commit version)))
13232 (file-name (git-file-name name version))
13233 (sha256
13234 (base32
13235 "180ji6nnj6qj0rs1rdp1zlcrfsqf7ikb44ym8icbp5d6al2s4hnr"))))
13236 (build-system emacs-build-system)
13237 (propagated-inputs
13238 `(("emacs-org" ,emacs-org)
13239 ("emacs-dash" ,emacs-dash)
13240 ("emacs-s" ,emacs-s)))
13241 (home-page "https://github.com/alphapapa/org-make-toc")
13242 (synopsis "Maintain a table of contents for an Org file")
13243 (description "This package facilitates the creation and maintenance of
13244 tables of contents.")
13245 (license license:gpl3+)))
13246
13247 (define-public emacs-ts
13248 (let ((commit "395649a2f2ba79028331bb1fa9ec08b218950ff6")
13249 (revision "2"))
13250 (package
13251 (name "emacs-ts")
13252 (version (git-version "0.1" revision commit))
13253 (source (origin
13254 (method git-fetch)
13255 (uri (git-reference
13256 (url "https://github.com/alphapapa/ts.el")
13257 (commit commit)))
13258 (sha256
13259 (base32
13260 "02603wv66fplsigxd87jy23hrb5g9vigszcpdqrdv0ypaqaxlr3a"))
13261 (file-name (git-file-name name version))))
13262 (build-system emacs-build-system)
13263 (propagated-inputs
13264 `(("emacs-s" ,emacs-s)
13265 ("emacs-dash" ,emacs-dash)))
13266 (arguments
13267 ;; XXX: Three tests are failing because of a timezone-related issue
13268 ;; with how they're written. On my machine, all the failing test
13269 ;; results are 18000 seconds (5 hours) off.
13270
13271 ;; The ts-parse-org function accepts a string without any timezone
13272 ;; info, not assumed to be in Unix time, and converts it to a so-called
13273 ;; ts struct. The ts-unix function (accessor) accepts a ts struct,
13274 ;; then seems to assume the struct's corresponding time is in terms of
13275 ;; the user's current time zone, before returning a Unix time in
13276 ;; seconds.
13277
13278 ;; The failing tests all have similar problems, but nothing else about
13279 ;; the library seems particularly off.
13280
13281 `(#:tests? #t
13282 #:test-command '("emacs" "--batch"
13283 "-l" "test/test.el"
13284 "-f" "ert-run-tests-batch-and-exit")
13285 #:phases
13286 (modify-phases %standard-phases
13287 (add-before 'check 'make-tests-writable
13288 (lambda _
13289 (make-file-writable "test/test.el")
13290 #t))
13291 (add-before 'check 'delete-failing-tests
13292 (lambda _
13293 (emacs-batch-edit-file "test/test.el"
13294 `(progn (progn
13295 (goto-char (point-min))
13296 (dolist (test-regexp '("ert-deftest ts-format"
13297 "ert-deftest ts-parse-org\\_>"
13298 "ert-deftest ts-parse-org-element"))
13299 (re-search-forward test-regexp)
13300 (beginning-of-line)
13301 (kill-sexp)))
13302 (basic-save-buffer)))
13303 #t)))))
13304 (home-page "https://github.com/alphapapa/ts.el")
13305 (synopsis "Timestamp and date/time library")
13306 (description "This package facilitates manipulating dates, times, and
13307 timestamps by providing a @code{ts} struct.")
13308 (license license:gpl3+))))
13309
13310 (define-public emacs-peg
13311 (package
13312 (name "emacs-peg")
13313 (version "0.6")
13314 (source (origin
13315 (method git-fetch)
13316 (uri (git-reference
13317 (url "https://github.com/emacsmirror/peg")
13318 (commit version)))
13319 (sha256
13320 (base32
13321 "0kjz7ch4bn0m4v9zgqyqcrsasnqc5c5drv2hp22j7rnbb7ny0q3n"))
13322 (file-name (git-file-name name version))))
13323 (build-system emacs-build-system)
13324 (home-page "https://github.com/emacsmirror/peg/")
13325 (synopsis "Parsing Expression Grammars in Elisp")
13326 (description "This package provides a macro that parses the current buffer
13327 according to a parsing expression grammar.")
13328 (license license:gpl3+)))
13329
13330 (define-public emacs-org-ql
13331 (package
13332 (name "emacs-org-ql")
13333 (version "0.3.2")
13334 (source (origin
13335 (method git-fetch)
13336 (uri (git-reference
13337 (url "https://github.com/alphapapa/org-ql")
13338 (commit version)))
13339 (sha256
13340 (base32
13341 "11bhpi2l28vp8mm9nx18jljbqdnh9vxpv9kp1dn9lpsgivcdbc34"))
13342 (file-name (git-file-name name version))))
13343 (build-system emacs-build-system)
13344 (propagated-inputs
13345 `(("emacs-s" ,emacs-s)
13346 ("emacs-f" ,emacs-f)
13347 ("emacs-ov" ,emacs-ov)
13348 ("emacs-peg" ,emacs-peg)
13349 ("emacs-org-super-agenda" ,emacs-org-super-agenda)
13350 ("emacs-ts" ,emacs-ts)
13351 ("emacs-org" ,emacs-org)
13352 ("emacs-helm" ,emacs-helm)
13353 ("emacs-helm-org" ,emacs-helm-org)
13354 ("emacs-dash" ,emacs-dash)))
13355 (native-inputs
13356 `(("emacs-buttercup" ,emacs-buttercup)))
13357 (arguments
13358 `(#:phases
13359 (modify-phases %standard-phases
13360 (add-after 'unpack 'require-helm
13361 (lambda _
13362 (substitute* "helm-org-ql.el"
13363 (("^;;;; Requirements")
13364 ";;;; Requirements\n(require 'helm)\n(require 'helm-org)"))
13365 #t)))
13366 #:tests? #t
13367 #:test-command '("buttercup" "-L" ".")))
13368 (home-page "https://github.com/alphapapa/org-ql/")
13369 (synopsis "Query language for Org buffers")
13370 (description "This package provides a Lispy query language for Org
13371 files, allowing for actions to be performed based on search criteria.")
13372 (license license:gpl3+)))
13373
13374 (define-public emacs-org-auto-expand
13375 (let ((commit "4938d5f6460e2f8f051ba9ac000b291bfa43ef62")
13376 (revision "1"))
13377 (package
13378 (name "emacs-org-auto-expand")
13379 (version (git-version "0.1" revision commit))
13380 (source (origin
13381 (method git-fetch)
13382 (uri (git-reference
13383 (url "https://github.com/alphapapa/org-auto-expand")
13384 (commit commit)))
13385 (file-name (git-file-name name version))
13386 (sha256
13387 (base32
13388 "1my0c6xmkh37lwi6l472lz9d86lf20h6xcllzlxm1lxa24rhva6v"))))
13389 (build-system emacs-build-system)
13390 (propagated-inputs
13391 `(("emacs-org" ,emacs-org)
13392 ("emacs-dash" ,emacs-dash)))
13393 (home-page "https://github.com/alphapapa/org-auto-expand")
13394 (synopsis "Automatically expand certain Org headings")
13395 (description "This package allows a customizable set of headings in Org
13396 files to be expanded upon opening them.")
13397 (license license:gpl3+))))
13398
13399 (define-public emacs-parsebib
13400 (package
13401 (name "emacs-parsebib")
13402 (version "2.3.3")
13403 (source
13404 (origin
13405 (method git-fetch)
13406 (uri (git-reference
13407 (url "https://github.com/joostkremers/parsebib.git")
13408 (commit version)))
13409 (file-name (git-file-name name version))
13410 (sha256
13411 (base32 "0mpgyy9qfb5x4fvlmb274hgayjbwf0bgk65dxyx31zikjwpcd56p"))))
13412 (build-system emacs-build-system)
13413 (home-page "https://github.com/joostkremers/parsebib")
13414 (synopsis "Library for parsing @file{.bib} files")
13415 (description
13416 "This package provides an Emacs library for parsing @file{.bib} files.")
13417 (license license:gpl3+)))
13418
13419 (define-public emacs-ebib
13420 (package
13421 (name "emacs-ebib")
13422 (version "2.22.1")
13423 (source
13424 (origin
13425 (method git-fetch)
13426 (uri (git-reference
13427 (url "https://github.com/joostkremers/ebib.git")
13428 (commit version)))
13429 (file-name (git-file-name name version))
13430 (sha256
13431 (base32 "0spiz5r2y4pdpyc4d3f9w228giq0j9rm8f5h5akzn5rwiq9pfkwz"))))
13432 (build-system emacs-build-system)
13433 (propagated-inputs
13434 `(("emacs-parsebib" ,emacs-parsebib)))
13435 (home-page "https://joostkremers.github.io/ebib/")
13436 (synopsis "BibTeX database manager for Emacs")
13437 (description
13438 "Ebib is a BibTeX database manager that runs in GNU Emacs.
13439 With Ebib you can create, sort and manage your @file{.bib} database files, all
13440 within Emacs. It supports searching, multi-line field values and
13441 @samp{@@String} and @samp{@@Preamble} definitions. Ebib integrates
13442 with (La)TeX mode, Org mode and other Emacs editing modes.")
13443 ;; The Ebib source files are released under a BSD license with
13444 ;; the exception of org-ebib.el, which is released under the GNU
13445 ;; GPL.
13446 (license (list license:bsd-3
13447 license:gpl3+))))
13448
13449 (define-public emacs-biblio
13450 (package
13451 (name "emacs-biblio")
13452 (version "0.2")
13453 (source
13454 (origin
13455 (method git-fetch)
13456 (uri (git-reference
13457 (url "https://github.com/cpitclaudel/biblio.el.git")
13458 (commit version)))
13459 (file-name (git-file-name name version))
13460 (sha256
13461 (base32 "1gxjind6r235az59dr8liv03d8994mqb8a7m28j3c12q7p70aziz"))))
13462 (build-system emacs-build-system)
13463 (propagated-inputs
13464 `(("emacs-seq" ,emacs-seq)
13465 ("emacs-dash" ,emacs-dash)
13466 ("emacs-let-alist" ,emacs-let-alist)))
13467 (home-page "https://github.com/cpitclaudel/biblio.el")
13468 (synopsis "Browse and import bibliographic references")
13469 (description "This package provides an extensible Emacs package for
13470 browsing and fetching references.
13471
13472 @file{biblio.el} makes it easy to browse and gather bibliographic references
13473 and publications from various sources, by keywords or by DOI. References are
13474 automatically fetched from well-curated sources, and formatted as BibTeX.")
13475 (license license:gpl3+)))
13476
13477 (define-public emacs-helm-bibtex
13478 (let ((commit "d4471232be26793fbf56c0ac3690b5f537c378b9")
13479 (revision "2"))
13480 (package
13481 (name "emacs-helm-bibtex")
13482 (version (string-append "2.0.0" "-" revision "."
13483 (string-take commit 7)))
13484 (source
13485 (origin
13486 (method git-fetch)
13487 (uri (git-reference
13488 (url "https://github.com/tmalsburg/helm-bibtex.git")
13489 (commit commit)))
13490 (file-name (git-file-name name version))
13491 (sha256
13492 (base32
13493 "1bkzhic6qckb267025il1r3xcpz99kisphxiafni1pxvf9jafr0j"))))
13494 (build-system emacs-build-system)
13495 (propagated-inputs
13496 `(("emacs-helm" ,emacs-helm)
13497 ("emacs-parsebib" ,emacs-parsebib)
13498 ("emacs-s" ,emacs-s)
13499 ("emacs-dash" ,emacs-dash)
13500 ("emacs-f" ,emacs-f)
13501 ("emacs-biblio" ,emacs-biblio)
13502 ("emacs-ivy" ,emacs-ivy)))
13503 (home-page "https://github.com/tmalsburg/helm-bibtex")
13504 (synopsis "Bibliography manager based on Helm")
13505 (description "This package provides bibliography manager for Emacs,
13506 based on Helm and the bibtex-completion backend.
13507
13508 Key features:
13509
13510 @itemize
13511 @item Quick access to your bibliography from within Emacs
13512 @item Powerful search capabilities
13513 @item Provides instant search results as you type
13514 @item Tightly integrated with LaTeX authoring, emails, Org mode, etc.
13515 @item Open the PDFs, URLs, or DOIs associated with an entry
13516 @item Insert LaTeX cite commands, Ebib links, or Pandoc citations,
13517 BibTeX entries, or plain text references at point, attach PDFs to emails
13518 @item Support for note taking
13519 @item Quick access to online bibliographic databases such as Pubmed,
13520 arXiv, Google Scholar, Library of Congress, etc.
13521 @item Imports BibTeX entries from CrossRef and other sources.
13522 @end itemize\n")
13523 (license license:gpl3+))))
13524
13525 (define-public emacs-ewmctrl
13526 (let ((commit "3d0217c4d6cdb5c308b6cb4293574f470d4faacf"))
13527 (package
13528 (name "emacs-ewmctrl")
13529 (version (git-version "0.0.1" "1" commit))
13530 (source
13531 (origin
13532 (method git-fetch)
13533 (uri (git-reference
13534 (url "https://github.com/flexibeast/ewmctrl.git")
13535 (commit commit)))
13536 (file-name (git-file-name name version))
13537 (sha256
13538 (base32
13539 "0ilwvx0qryv3v6xf0gxqwnfm6pf96gxap8h9g3f6z6lk9ff4n1wi"))))
13540 (build-system emacs-build-system)
13541 (arguments
13542 '(#:phases
13543 (modify-phases %standard-phases
13544 (add-after 'unpack 'patch-ewmctrl
13545 ;; This build phase makes sure ‘ewmctrl’ looks
13546 ;; for ‘wmctrl’ in the right place.
13547 (lambda _
13548 (let ((file "ewmctrl.el"))
13549 (chmod file #o644)
13550 (emacs-substitute-sexps file
13551 ("(defcustom ewmctrl-wmctrl-path" (which "wmctrl")))))))))
13552 (inputs
13553 `(("wmctrl" ,wmctrl)))
13554 (home-page "https://github.com/flexibeast/ewmctrl")
13555 (synopsis "Emacs interface to @code{wmctrl}")
13556 (description "@code{ewmctrl} provides an Emacs interface to
13557 @code{wmctrl} command-line window-management program.")
13558 (license license:gpl3+))))
13559
13560 (define-public emacs-erc-image
13561 (let ((commit "82fb3871f02e24b1e880770b9a3d187aab43d0f0")
13562 (revision "1"))
13563 (package
13564 (name "emacs-erc-image")
13565 (version (git-version "0" revision commit))
13566 (source
13567 (origin
13568 (method git-fetch)
13569 (uri (git-reference
13570 (url "https://github.com/kidd/erc-image.el")
13571 (commit commit)))
13572 (file-name (git-file-name name version))
13573 (sha256
13574 (base32
13575 "1q8mkf612fb4fjp8h4kbr107wn083iqfdgv8f80pcmil8y33dw9i"))))
13576 (build-system emacs-build-system)
13577 (home-page "https://github.com/kidd/erc-image.el")
13578 (synopsis "Show inlined images (png/jpg/gif/svg) in ERC buffers")
13579 (description "This plugin subscribes to hooks @code{erc-insert-modify-hook}
13580 and @code{erc-send-modify-hook} to download and show images.")
13581 (license license:gpl3+))))
13582
13583 (define-public emacs-helm-gtags
13584 (package
13585 (name "emacs-helm-gtags")
13586 (version "1.5.6")
13587 (source
13588 (origin
13589 (method git-fetch)
13590 (uri (git-reference
13591 (url "https://github.com/syohex/emacs-helm-gtags.git")
13592 (commit version)))
13593 (file-name (git-file-name name version))
13594 (sha256
13595 (base32 "0zyspn9rqfs3hkq8qx0q1w5qiv30ignbmycyv0vn3a6q7a5fsnhx"))))
13596 (build-system emacs-build-system)
13597 (propagated-inputs
13598 `(("emacs-helm" ,emacs-helm)))
13599 (home-page "https://github.com/syohex/emacs-helm-gtags")
13600 (synopsis "Emacs Helm interface to GNU Global")
13601 (description
13602 "@code{emacs-helm-gtags} provides a Emacs Helm interface to GNU Global.")
13603 (license license:gpl3+)))
13604
13605 (define-public emacs-list-utils
13606 (package
13607 (name "emacs-list-utils")
13608 (version "0.4.4")
13609 (source
13610 (origin
13611 (method git-fetch)
13612 (uri (git-reference
13613 (url "https://github.com/rolandwalker/list-utils.git")
13614 (commit (string-append "v" version))))
13615 (file-name (git-file-name name version))
13616 (sha256
13617 (base32 "0ql159v7sxs33yh2l080kchrj52vk34knz50cvqi3ykpb7djg3sz"))))
13618 (build-system emacs-build-system)
13619 (home-page "https://github.com/rolandwalker/list-utils")
13620 (synopsis "List-manipulation utility functions")
13621 (description "This package provides a list manipulation library for Emacs.")
13622 (license license:gpl3+)))
13623
13624 (define-public emacs-move-text
13625 (package
13626 (name "emacs-move-text")
13627 (version "2.0.8")
13628 (source
13629 (origin
13630 (method git-fetch)
13631 (uri (git-reference
13632 (url "https://github.com/emacsfodder/move-text.git")
13633 (commit version)))
13634 (file-name (git-file-name name version))
13635 (sha256
13636 (base32 "06jxk5g23822gfmwrxhc34zand3dr8p2wjh1zs3j61ibz6n0nmz1"))))
13637 (build-system emacs-build-system)
13638 (home-page "https://github.com/emacsfodder/move-text")
13639 (synopsis "Move current line or region with M-up or M-down")
13640 (description "This package provide functions to move the current line
13641 using @kbd{M-up} or @kbd{M-down} if a region is marked, it will move the
13642 region instead.")
13643 (license license:gpl3+)))
13644
13645 (define-public emacs-validate
13646 (package
13647 (name "emacs-validate")
13648 (version "1.0.5")
13649 (source (origin
13650 (method git-fetch)
13651 (uri (git-reference
13652 (url "https://github.com/Malabarba/validate.el")
13653 (commit version)))
13654 (file-name (git-file-name name version))
13655 (sha256
13656 (base32
13657 "1l12ibx6cw4mgicgjpw71fb4fr4sd0k54lvbpq7ngc29br3j6i4v"))))
13658 (build-system emacs-build-system)
13659 (home-page "https://github.com/Malabarba/validate.el")
13660 (synopsis "Emacs library for scheme validation")
13661 (description "This Emacs library provides two functions that perform
13662 schema validation.")
13663 (license license:gpl3+)))
13664
13665 (define-public emacs-rainbow-blocks
13666 (let ((commit "dd435d7bb34ff6f162a5f315df308b90b7e9f842"))
13667 (package
13668 (name "emacs-rainbow-blocks")
13669 (version (git-version "1.0.0" "1" commit))
13670 (source (origin
13671 (method git-fetch)
13672 (uri (git-reference
13673 (url "https://github.com/istib/rainbow-blocks.git")
13674 (commit commit)))
13675 (file-name (git-file-name name version))
13676 (sha256
13677 (base32
13678 "06yfb3i7wzvqrhkb61zib9xvpb5i00s4frizkzff66im05k0n795"))))
13679 (build-system emacs-build-system)
13680 (home-page "https://github.com/istib/rainbow-blocks")
13681 (synopsis "Highlight sexp blocks")
13682 (description "Rainbow-blocks is an Emacs mode that highlights blocks
13683 made of parentheses, brackets, and braces according to their depth. Each
13684 successive level is highlighted in a different color. This makes it easy to
13685 orient yourself in the code, and tell which statements are at a given level.")
13686 (license license:gpl3+))))
13687
13688 (define-public emacs-hierarchy
13689 (package
13690 (name "emacs-hierarchy")
13691 (version "0.7.0")
13692 (source
13693 (origin
13694 (method git-fetch)
13695 (uri (git-reference
13696 (url "https://github.com/DamienCassou/hierarchy.git")
13697 (commit (string-append "v" version))))
13698 (file-name (git-file-name name version))
13699 (sha256
13700 (base32 "1kykbb1sil5cycfa5aj8dhsxc5yrx1641i2np5kwdjid6ahdlz5r"))))
13701 (build-system emacs-build-system)
13702 (native-inputs
13703 `(("emacs-buttercup" ,emacs-buttercup)))
13704 (arguments
13705 `(#:tests? #t
13706 #:test-command '("buttercup" "-L" ".")))
13707 (home-page "https://github.com/DamienCassou/hierarchy")
13708 (synopsis "Library to create and display hierarchy structures")
13709 (description "This package provides an Emacs library to create, query,
13710 navigate and display hierarchy structures.")
13711 (license license:gpl3+)))
13712
13713 (define-public emacs-tree-mode
13714 (let ((commit "b06078826d5875d74b0e7b7ac47b0d0917610534")
13715 (revision "1"))
13716 (package
13717 (name "emacs-tree-mode")
13718 (version (string-append "0.0.1" "-" revision "."
13719 (string-take commit 7)))
13720 (source
13721 (origin
13722 (method git-fetch)
13723 (uri (git-reference
13724 (url "https://github.com/emacsorphanage/tree-mode.git")
13725 (commit commit)))
13726 (file-name (git-file-name name version))
13727 (sha256
13728 (base32
13729 "13bbdhdmqg4x9yghanhr8fsbsxbnypzxdxgicz31sjjm675kpnix"))))
13730 (build-system emacs-build-system)
13731 (home-page "https://github.com/emacsorphanage/tree-mode")
13732 (synopsis "Emacs mode to manage tree widgets")
13733 (description
13734 "This package provides an Emacs library to manage tree widgets.")
13735 (license license:gpl3+))))
13736
13737 (define-public emacs-md4rd
13738 (package
13739 (name "emacs-md4rd")
13740 (version "0.3.1")
13741 (source (origin
13742 (method git-fetch)
13743 (uri (git-reference
13744 (url "https://github.com/ahungry/md4rd.git")
13745 (commit version)))
13746 (file-name (git-file-name name version))
13747 (sha256
13748 (base32
13749 "1n6g6k4adzkkn1g7z4j27s35xy12c1fg2r08gv345ddr3wplq4ri"))))
13750 (propagated-inputs
13751 `(("emacs-hierarchy" ,emacs-hierarchy)
13752 ("emacs-request" ,emacs-request)
13753 ("emacs-dash" ,emacs-dash)
13754 ("emacs-s" ,emacs-s)
13755 ("emacs-tree-mode" ,emacs-tree-mode)))
13756 (build-system emacs-build-system)
13757 (home-page "https://github.com/ahungry/md4rd")
13758 (synopsis "Emacs Mode for Reddit")
13759 (description
13760 "This package allows reading Reddit from within Emacs interactively.")
13761 (license license:gpl3+)))
13762
13763 (define-public emacs-pulseaudio-control
13764 (let ((commit "7e1a87068379075a5e9ce36c64c686c03d20d379")
13765 (revision "3"))
13766 (package
13767 (name "emacs-pulseaudio-control")
13768 (version (git-version "0.0.1" revision commit))
13769 (source
13770 (origin
13771 (method git-fetch)
13772 (uri (git-reference
13773 (url "https://github.com/flexibeast/pulseaudio-control.git")
13774 (commit commit)))
13775 (file-name (git-file-name name version))
13776 (sha256
13777 (base32
13778 "0wcaqyh15x56255rrj350089z15pnwixa2vf0ly6dv0hjmzmh3mr"))))
13779 (build-system emacs-build-system)
13780 (arguments
13781 '(#:phases (modify-phases %standard-phases
13782 (add-after 'unpack 'patch-file-name
13783 (lambda* (#:key inputs #:allow-other-keys)
13784 (let ((pulseaudio (assoc-ref inputs "pulseaudio")))
13785 (chmod "pulseaudio-control.el" #o600)
13786 (emacs-substitute-variables "pulseaudio-control.el"
13787 ("pulseaudio-control-pactl-path"
13788 (string-append pulseaudio "/bin/pactl")))
13789 #t))))))
13790 (inputs `(("pulseaudio" ,pulseaudio)))
13791 (home-page "https://github.com/flexibeast/pulseaudio-control")
13792 (synopsis "Control @code{pulseaudio} from Emacs")
13793 (description
13794 "This package allows controlling @code{pulseaudio} from Emacs.")
13795 (license license:gpl3+))))
13796
13797 (define-public emacs-datetime
13798 (package
13799 (name "emacs-datetime")
13800 (version "0.3")
13801 (source
13802 (origin
13803 (method git-fetch)
13804 (uri (git-reference
13805 (url "https://github.com/doublep/datetime.git")
13806 (commit version)))
13807 (file-name (git-file-name name version))
13808 (sha256
13809 (base32 "0fdswqi53qx924lib7nd9dazn0916xf1ybrh3bcn3f8cn6b8ikg5"))))
13810 (build-system emacs-build-system)
13811 (home-page "https://github.com/doublep/datetime/")
13812 (synopsis "Library to work with dates in Emacs")
13813 (description "Parsing, formatting, matching and recoding
13814 timestamps and date-time format strings library for Emacs.")
13815 (license license:gpl3+)))
13816
13817 (define-public emacs-org-mind-map
13818 (let ((commit "9d6e262bedd94daf9de269f4d56de277275677cb")
13819 (revision "1"))
13820 (package
13821 (name "emacs-org-mind-map")
13822 (version (string-append "0.0.1" "-" revision "."
13823 (string-take commit 7)))
13824 (source
13825 (origin
13826 (method git-fetch)
13827 (uri (git-reference
13828 (url "https://github.com/theodorewiles/org-mind-map.git")
13829 (commit commit)))
13830 (file-name (git-file-name name version))
13831 (sha256
13832 (base32
13833 "0jgkkgq7g64zckrmjib0hvz0qy3ynz5vz13qbmlpf096l3bb65wn"))))
13834 (propagated-inputs
13835 `(("emacs-dash" ,emacs-dash)))
13836 (build-system emacs-build-system)
13837 (home-page "https://github.com/theodorewiles/org-mind-map")
13838 (synopsis "Create Graphviz directed graphs from Org files")
13839 (description
13840 "This package creates Graphviz directed graphs from Org files.")
13841 (license license:gpl3+))))
13842
13843 (define-public emacs-npm-mode
13844 (package
13845 (name "emacs-npm-mode")
13846 (version "0.6.0")
13847 (source
13848 (origin
13849 (method git-fetch)
13850 (uri (git-reference
13851 (url "https://github.com/mojochao/npm-mode.git")
13852 (commit version)))
13853 (file-name (git-file-name name version))
13854 (sha256
13855 (base32 "1mh6nbffciw4yhv049kdhh796ysj1x21ndm3fwymhskb3dy0w1ss"))))
13856 (build-system emacs-build-system)
13857 (home-page "https://github.com/mojochao/npm-mode")
13858 (synopsis "Minor mode for working with @code{npm} projects")
13859 (description
13860 "@code{npm-mode} provides a minor mode to work with @code{npm} projects.")
13861 (license license:gpl3+)))
13862
13863 (define-public emacs-seq
13864 (package
13865 (name "emacs-seq")
13866 (version "2.20")
13867 (source
13868 (origin
13869 (method url-fetch)
13870 (uri (string-append "https://elpa.gnu.org/packages/seq-" version ".tar"))
13871 (sha256
13872 (base32
13873 "0vrpx6nnyjb0gsypknzagimlhvcvi5y1rcdkpxyqr42415zr8d0n"))))
13874 (build-system emacs-build-system)
13875 (home-page "https://elpa.gnu.org/packages/seq.html")
13876 (synopsis "Sequence manipulation functions")
13877 (description "Sequence-manipulation functions that complement basic
13878 functions provided by @file{subr.el}.")
13879 (license license:gpl3+)))
13880
13881 (define-public emacs-itail
13882 (let ((commit "6e43c20da03be3b9c6ece93b7dc3495975ec1888")
13883 (revision "1"))
13884 (package
13885 (name "emacs-itail")
13886 (version (string-append "0.0.1" "-" revision "."
13887 (string-take commit 7)))
13888 (source
13889 (origin
13890 (method git-fetch)
13891 (uri (git-reference
13892 (url "https://github.com/re5et/itail.git")
13893 (commit commit)))
13894 (file-name (git-file-name name version))
13895 (sha256
13896 (base32
13897 "044nzxh1hq41faxw3lix0wy78vfz304pjcaa5a11dqfz7q3gx5cv"))))
13898 (build-system emacs-build-system)
13899 (home-page "https://github.com/re5et/itail")
13900 (synopsis "Interactive @code{tail} Emacs mode")
13901 (description "@code{itail} provides interactive @code{tail} mode
13902 that allows you to filter the tail with unix pipes and highlight the
13903 contents of the tailed file. Works locally or on remote files using
13904 tramp.")
13905 (license license:gpl3+))))
13906
13907 (define-public emacs-loop
13908 (package
13909 (name "emacs-loop")
13910 (version "1.3")
13911 (source
13912 (origin
13913 (method git-fetch)
13914 (uri (git-reference
13915 (url "https://github.com/Wilfred/loop.el.git")
13916 (commit version)))
13917 (file-name (git-file-name name version))
13918 (sha256
13919 (base32 "1gs95xnmnn8aa4794k7h8mw1sz1nfdh9v0caqj6yvnsdnwy74n5x"))))
13920 (build-system emacs-build-system)
13921 (native-inputs
13922 `(("emacs-ert-runner" ,emacs-ert-runner)
13923 ("emacs-undercover" ,emacs-undercover)))
13924 (arguments
13925 `(#:tests? #t
13926 #:test-command '("ert-runner")))
13927 (home-page "https://github.com/Wilfred/loop.el")
13928 (synopsis "Imperative loop structures for Emacs")
13929 (description "Loop structures familiar to users of other languages. This
13930 library adds a selection of popular loop structures as well as break and
13931 continue.")
13932 (license license:gpl3+)))
13933
13934 (define-public emacs-elisp-refs
13935 (package
13936 (name "emacs-elisp-refs")
13937 (version "1.3")
13938 (source
13939 (origin
13940 (method git-fetch)
13941 (uri (git-reference
13942 (url "https://github.com/Wilfred/elisp-refs.git")
13943 (commit version)))
13944 (file-name (git-file-name name version))
13945 (sha256
13946 (base32 "0w7k91xf69zc0zkjrw8h8sjdjf9xq9qs5zhvajhd718lzf93564b"))))
13947 (build-system emacs-build-system)
13948 (propagated-inputs
13949 `(("emacs-dash" ,emacs-dash)
13950 ("emacs-f" ,emacs-f)
13951 ("emacs-list-utils" ,emacs-list-utils)
13952 ("emacs-loop" ,emacs-loop)
13953 ("emacs-s" ,emacs-s)
13954 ("emacs-shut-up" ,emacs-shut-up)))
13955 (native-inputs
13956 `(("emacs-ert-runner" ,emacs-ert-runner)
13957 ("emacs-undercover" ,emacs-undercover)))
13958 (arguments
13959 `(#:tests? #t
13960 #:test-command '("ert-runner")))
13961 (home-page "https://github.com/Wilfred/elisp-refs")
13962 (synopsis "Find callers of elisp functions or macros")
13963 (description "Find references to functions, macros or variables. Unlike a
13964 dumb text search, @code{elisp-refs} actually parses the code, so it's never
13965 confused by comments or @code{foo-bar} matching @code{foo}.")
13966 (license license:gpl3+)))
13967
13968 (define-public emacs-crux
13969 (let ((commit "308f17d914e2cd79cbc809de66d02b03ceb82859")
13970 (revision "2"))
13971 (package
13972 (name "emacs-crux")
13973 (version (git-version "0.3.0" revision commit))
13974 (source
13975 (origin
13976 (method git-fetch)
13977 (uri (git-reference
13978 (url "https://github.com/bbatsov/crux.git")
13979 (commit commit)))
13980 (file-name (git-file-name name version))
13981 (sha256
13982 (base32
13983 "0rf84finwlvmy0xpgyljjvnrijlmkzjyw9rh97svgxp9c1rzfk0x"))))
13984 (build-system emacs-build-system)
13985 (home-page "https://github.com/bbatsov/crux")
13986 (synopsis "Collection of useful functions for Emacs")
13987 (description
13988 "@code{crux} provides a collection of useful functions for Emacs.")
13989 (license license:gpl3+))))
13990
13991 (define-public emacs-edit-server
13992 (package
13993 (name "emacs-edit-server")
13994 (version "1.13")
13995 (source
13996 (origin
13997 (method git-fetch)
13998 (uri (git-reference
13999 (url "https://github.com/stsquad/emacs_chrome.git")
14000 (commit (string-append "v" version))))
14001 (file-name (git-file-name name version))
14002 (sha256
14003 (base32 "12dp1xj09jrp0kxp9xb6cak9dn6zkyis1wfn4fnhzmxxnrd8c5rn"))))
14004 (build-system emacs-build-system)
14005 (arguments
14006 `(#:phases
14007 (modify-phases %standard-phases
14008 (add-after 'unpack 'chdir-elisp
14009 ;; Elisp directory is not in root of the source.
14010 (lambda _
14011 (chdir "servers"))))))
14012 (home-page "https://github.com/stsquad/emacs_chrome")
14013 (synopsis "Server that responds to edit requests from Chromium")
14014 (description
14015 "This package provides an edit server to respond to requests from Emacs.")
14016 (license license:gpl3+)))
14017
14018 (define-public emacs-m-buffer-el
14019 (package
14020 (name "emacs-m-buffer-el")
14021 (version "0.15")
14022 (source
14023 (origin
14024 (method git-fetch)
14025 (uri (git-reference
14026 (url "https://github.com/phillord/m-buffer-el")
14027 (commit (string-append "v" version))))
14028 (file-name (git-file-name name version))
14029 (sha256
14030 (base32
14031 "1sx76i59razwccvn6x7rx5a124bfyjw9fcbxf4gj7nsg33qiq809"))))
14032 (arguments
14033 `(#:phases
14034 (modify-phases %standard-phases
14035 (add-before 'install 'check
14036 (lambda* (#:key inputs #:allow-other-keys)
14037 (invoke "emacs" "--batch" "-L" "."
14038 "-l" "test/m-buffer-test.el"
14039 "-l" "test/m-buffer-at-test.el"
14040 "-f" "ert-run-tests-batch-and-exit"))))))
14041 (build-system emacs-build-system)
14042 (home-page "https://github.com/phillord/m-buffer-el")
14043 (synopsis "List oriented buffer operations for Emacs")
14044 (description "@code{m-buffer} provides a set of list-orientated functions
14045 for operating over the contents of Emacs buffers.")
14046 (license license:gpl3+)))
14047
14048 (define-public emacs-let-alist
14049 (package
14050 (name "emacs-let-alist")
14051 (version "1.0.6")
14052 (source
14053 (origin
14054 (method url-fetch)
14055 (uri (string-append
14056 "https://elpa.gnu.org/packages/let-alist-" version ".el"))
14057 (sha256
14058 (base32 "0szj7vnjzz4zci5fvz7xqgcpi4pzdyyf4qi2s8xar2hi7v3yaawr"))))
14059 (build-system emacs-build-system)
14060 (home-page "https://elpa.gnu.org/packages/let-alist.html")
14061 (synopsis "Easily let-bind values of an assoc-list by their names")
14062 (description "This package offers a single macro, @code{let-alist}. This
14063 macro takes a first argument (whose value must be an alist) and a body.")
14064 (license license:gpl3+)))
14065
14066 (define-public emacs-esup
14067 (let ((commit "a589005a9a888537deef94d6fe38a9b8790c97c7")
14068 (revision "1"))
14069 (package
14070 (name "emacs-esup")
14071 (version (string-append "0.6" "-" revision "."
14072 (string-take commit 7)))
14073 (source
14074 (origin
14075 (method git-fetch)
14076 (uri (git-reference
14077 (url "https://github.com/jschaf/esup.git")
14078 (commit commit)))
14079 (file-name (git-file-name name version))
14080 (sha256
14081 (base32
14082 "04lxmd0h7mfjjl0qghrycgff0vcv950j1wqv0dbkr61jxp64n5fv"))))
14083 ;; TODO: Add tests
14084 (build-system emacs-build-system)
14085 (home-page "https://github.com/jschaf/esup")
14086 (synopsis "Emacs start up profiler")
14087 (description "Benchmark Emacs Startup time without ever leaving
14088 your Emacs.")
14089 (license license:gpl2+))))
14090
14091 (define-public emacs-restart-emacs
14092 (let ((commit "9aa90d3df9e08bc420e1c9845ee3ff568e911bd9")
14093 (revision "1"))
14094 (package
14095 (name "emacs-restart-emacs")
14096 (version (git-version "0.1.1" revision commit))
14097 (source
14098 (origin
14099 (method git-fetch)
14100 (uri (git-reference
14101 (url "https://github.com/iqbalansari/restart-emacs.git")
14102 (commit commit)))
14103 (file-name (git-file-name name version))
14104 (sha256
14105 (base32 "02x1a85k7r95z8091zgjiaj9nf0zvx1jy4xvl3hr12qbnrx1wfav"))))
14106 (build-system emacs-build-system)
14107 (home-page "https://github.com/iqbalansari/restart-emacs")
14108 (synopsis "Restart Emacs from within Emacs")
14109 (description "This package provides a simple command to restart Emacs from
14110 within Emacs.")
14111 (license license:gpl3+))))
14112
14113 (define-public emacs-sourcemap
14114 (package
14115 (name "emacs-sourcemap")
14116 (version "0.03")
14117 (source
14118 (origin
14119 (method git-fetch)
14120 (uri (git-reference
14121 (url "https://github.com/syohex/emacs-sourcemap.git")
14122 (commit version)))
14123 (file-name (git-file-name name version))
14124 (sha256
14125 (base32 "115g2mfpbfywp8xnag4gsb50klfvplqfh928a5mabb5s8v4a3582"))))
14126 (build-system emacs-build-system)
14127 (home-page "https://github.com/syohex/emacs-sourcemap")
14128 (synopsis "Sourcemap parser")
14129 (description "Sourcemap parser")
14130 (license license:gpl3+)))
14131
14132 (define-public emacs-macrostep
14133 (let ((commit "424e3734a1ee526a1bd7b5c3cd1d3ef19d184267"))
14134 (package
14135 (name "emacs-macrostep")
14136 (version (git-version "0.9" "1" commit))
14137 (source (origin
14138 (method git-fetch)
14139 (uri (git-reference
14140 (url "https://github.com/joddie/macrostep.git")
14141 (commit commit)))
14142 (file-name (git-file-name name version))
14143 (sha256
14144 (base32
14145 "1fm40mxdn289cyzgw992223dgrjmwxn4q8svyyxfaxjrpb38jhjz"))))
14146 (build-system emacs-build-system)
14147 (arguments
14148 '(#:phases
14149 (modify-phases %standard-phases
14150 (add-before 'check 'remove-test
14151 ;; Fails because of requirement ‘/bin/sh’.
14152 (lambda _
14153 (let ((file "macrostep-test.el"))
14154 (chmod file #o644)
14155 (emacs-batch-edit-file file
14156 `(progn (progn (goto-char (point-min))
14157 (re-search-forward
14158 "(ert-deftest macrostep-expand-c-macros")
14159 (beginning-of-line)
14160 (kill-sexp))
14161 (basic-save-buffer))))))
14162 (add-before 'install 'check
14163 (lambda _
14164 (invoke "emacs" "--batch" "-L" "."
14165 "-l" "macrostep-test.el"
14166 "-f" "ert-run-tests-batch-and-exit"))))))
14167 (home-page "https://github.com/joddie/macrostep")
14168 (synopsis "Interactive macro-expander for Emacs")
14169 (description "@code{macrostep} is an Emacs minor mode for interactively
14170 stepping through the expansion of macros in Emacs Lisp source code. It lets
14171 you see exactly what happens at each step of the expansion process by
14172 pretty-printing the expanded forms inline in the source buffer, which is
14173 temporarily read-only while macro expansions are visible. You can expand and
14174 collapse macro forms one step at a time, and evaluate or instrument the
14175 expansions for debugging with Edebug as normal (but see “Bugs and known
14176 limitations”, below). Single-stepping through the expansion is particularly
14177 useful for debugging macros that expand into another macro form. These can be
14178 difficult to debug with Emacs’ built-in macroexpand, which continues expansion
14179 until the top-level form is no longer a macro call.")
14180 (license license:gpl3+))))
14181
14182 (define-public emacs-parent-mode
14183 (package
14184 (name "emacs-parent-mode")
14185 (version "2.3")
14186 (source
14187 (origin
14188 (method git-fetch)
14189 (uri (git-reference
14190 (url "https://github.com/Fanael/parent-mode.git")
14191 (commit version)))
14192 (file-name (git-file-name name version))
14193 (sha256
14194 (base32 "0i5bc7lyyrx6swqlrp9l5x72yzwi53qn6ldrfs99gh08b3yvsnni"))))
14195 (build-system emacs-build-system)
14196 (home-page "https://github.com/Fanael/parent-mode")
14197 (synopsis "Get major mode's parent modes")
14198 (description "Get major mode's parent modes")
14199 (license license:gpl3+)))
14200
14201 (define-public emacs-lacarte
14202 (package
14203 (name "emacs-lacarte")
14204 (version "0.1")
14205 (source (origin
14206 (method url-fetch)
14207 (uri "https://www.emacswiki.org/emacs/download/lacarte.el")
14208 (sha256
14209 (base32
14210 "1sbmk37ljq5j7dsw5c37sbxvlfgdqswh7bi4dknyjzfxlq50f4am"))))
14211 (build-system emacs-build-system)
14212 (home-page "https://www.emacswiki.org/emacs/lacarte.el")
14213 (synopsis "Execute menu items as commands, with completion")
14214 (description "Execute menu items as commands, with completion.")
14215 (license license:gpl3)))
14216
14217 (define-public emacs-isearch-prop
14218 (let ((commit "4a2765f835dd115d472142da05215c4c748809f4")
14219 (revision "2"))
14220 (package
14221 (name "emacs-isearch-prop")
14222 (version (git-version "0" revision commit))
14223 (source
14224 (origin
14225 (method git-fetch)
14226 (uri (git-reference
14227 (url "https://github.com/emacsmirror/isearch-prop.git")
14228 (commit commit)))
14229 (file-name (git-file-name name version))
14230 (sha256
14231 (base32
14232 "06gdk5m84q6pxwng8rjxny1zkll8f3m2x6lw4xyib2dvg7iaslh3"))))
14233 (build-system emacs-build-system)
14234 (home-page "https://www.emacswiki.org/emacs/isearch-prop.el")
14235 (synopsis "Extensions to @code{isearch.el}")
14236 (description "The Emacs library @code{isearch-prop.el} lets you search within
14237 contexts. You can limit incremental search to a set of zones of
14238 buffer text, search contexts that in effect constitute a multi-region.
14239 These zones can be defined in various ways, including some ways
14240 provided specially by this library.")
14241 (license license:gpl3+))))
14242
14243 (define-public emacs-company-lua
14244 (let ((commit "29f6819de4d691e5fd0b62893a9f4fbc1c6fcb52")
14245 (revision "2"))
14246 (package
14247 (name "emacs-company-lua")
14248 (version (git-version "0.1" "2" commit))
14249 (source
14250 (origin
14251 (method git-fetch)
14252 (uri (git-reference
14253 (url "https://github.com/ptrv/company-lua.git")
14254 (commit commit)))
14255 (file-name (git-file-name name version))
14256 (sha256
14257 (base32
14258 "0ny2dcc7c585p7v3j6q0rpkbj1qmf2ismy8a5020jpr585xvz0hh"))))
14259 (build-system emacs-build-system)
14260 (propagated-inputs
14261 `(("emacs-company" ,emacs-company)
14262 ("emacs-s" ,emacs-s)
14263 ("emacs-f" ,emacs-f)
14264 ("emacs-lua-mode" ,emacs-lua-mode)))
14265 (arguments
14266 `(#:include (cons* "^lua\\/" %default-include)))
14267 (home-page "https://github.com/ptrv/company-lua")
14268 (synopsis "Company backend for Lua")
14269 (description
14270 "This package provides Company backend for Lua programming language.")
14271 (license license:gpl3+))))
14272
14273 (define-public emacs-beginend
14274 (package
14275 (name "emacs-beginend")
14276 (version "2.0.0")
14277 (source
14278 (origin
14279 (method git-fetch)
14280 (uri (git-reference
14281 (url "https://github.com/DamienCassou/beginend.git")
14282 (commit (string-append "v" version))))
14283 (file-name (git-file-name name version))
14284 (sha256
14285 (base32 "1jbhg73g1rrkbwql5vi2b0ys9avfazmwzwgd90gkzwavw0ch9cvl"))))
14286 ;; TODO: Run tests.
14287 (build-system emacs-build-system)
14288 (inputs
14289 `(("emacs-undercover" ,emacs-undercover))) ; For tests.
14290 (home-page "https://github.com/DamienCassou/beginend")
14291 (synopsis "Redefine @code{M-<} and @code{M->} for Emacs modes")
14292 (description "@code{beginend} redefines @code{M-<} and @code{M->}
14293 keybindings for Emacs modes so that point moves to meaningful
14294 locations. Redefined keys are still accessible by pressing the same
14295 key again.")
14296 (license license:gpl3+)))
14297
14298 (define-public emacs-mbsync
14299 (let ((commit "b62491c0e0d89eb9c66261a16d7ac81231c9c453")
14300 (revision "4"))
14301 (package
14302 (name "emacs-mbsync")
14303 (version (git-version "0.1.2" revision commit))
14304 (source
14305 (origin
14306 (method git-fetch)
14307 (uri (git-reference
14308 (url "https://github.com/dimitri/mbsync-el.git")
14309 (commit commit)))
14310 (file-name (git-file-name name version))
14311 (sha256
14312 (base32
14313 "1zlih37mkqjn2czl12zn7lgxxljvrwhqqpbksj9c91zn0f0rm3mz"))))
14314 (build-system emacs-build-system)
14315 (home-page "https://github.com/dimitri/mbsync-el")
14316 (synopsis "Interface to mbsync for Emacs")
14317 (description "This package calls @code{mbsync} from
14318 within Emacs.")
14319 (license license:gpl3+))))
14320
14321 (define-public emacs-ibuffer-projectile
14322 (let ((commit "76496214144687cee0b5139be2e61b1e400cac87")
14323 (revision "2"))
14324 (package
14325 (name "emacs-ibuffer-projectile")
14326 (version (git-version "0.2" revision commit))
14327 (source
14328 (origin
14329 (method git-fetch)
14330 (uri (git-reference
14331 (url "https://github.com/purcell/ibuffer-projectile.git")
14332 (commit commit)))
14333 (file-name (git-file-name name version))
14334 (sha256
14335 (base32
14336 "0vv9xwb1qd5x8zhqmmsn1nrpd11cql9hxb7483nsdhcfwl4apqav"))))
14337 (build-system emacs-build-system)
14338 (propagated-inputs
14339 `(("emacs-projectile" ,emacs-projectile)))
14340 (home-page "https://github.com/purcell/ibuffer-projectile")
14341 (synopsis "Group ibuffer's list by projectile root")
14342 (description "Adds functionality to Emacs @code{ibuffer} for
14343 grouping buffers by their projectile root directory.")
14344 (license license:gpl3+))))
14345
14346 (define-public emacs-elm-mode
14347 (package
14348 (name "emacs-elm-mode")
14349 (version "0.21.0")
14350 (source
14351 (origin
14352 (method git-fetch)
14353 (uri
14354 (git-reference
14355 (url "https://github.com/jcollard/elm-mode")
14356 (commit (string-append "v" version))))
14357 (file-name (git-file-name name version))
14358 (sha256
14359 (base32 "0iwk4fmw8hq3ry4ky1zc7lgl4cpbnrjyk74c2xzddfspi3ks41fd"))))
14360 (propagated-inputs
14361 `(("emacs-dash" ,emacs-dash)
14362 ("emacs-f" ,emacs-f)
14363 ("emacs-reformatter" ,emacs-reformatter)
14364 ("emacs-s" ,emacs-s)))
14365 (build-system emacs-build-system)
14366 (home-page "https://github.com/jcollard/elm-mode")
14367 (synopsis "Emacs major mode for editing Elm source code")
14368 (description
14369 "This package provides a major mode for editing Elm source code, and
14370 working with common core and third-party Elm tools. Its features are:
14371
14372 @itemize
14373 @item Syntax highlighting
14374 @item Intelligent indentation
14375 @item Integration with elm-make
14376 @item Integration with elm-repl
14377 @item Integration with elm-reactor
14378 @item Integration with elm-package
14379 @item Integration with elm-oracle
14380 @item Integration with elm-format
14381 @item Integration with elm-test
14382 @end itemize")
14383 (license license:gpl3+)))
14384
14385 (define-public emacs-helm-mode-manager
14386 (package
14387 (name "emacs-helm-mode-manager")
14388 (version "1.0.0")
14389 (source
14390 (origin
14391 (method git-fetch)
14392 (uri (git-reference
14393 (url "https://github.com/istib/helm-mode-manager")
14394 (commit version)))
14395 (file-name (git-file-name name version))
14396 (sha256
14397 (base32
14398 "1srx5f0s9x7zan7ayqd6scxfhcvr3nkd4yzs96hphd87rb18apzk"))))
14399 (build-system emacs-build-system)
14400 (propagated-inputs
14401 `(("emacs-helm" ,emacs-helm)))
14402 (home-page "https://github.com/istib/helm-mode-manager/")
14403 (synopsis "Switch and toggle Emacs major and minor modes using Helm")
14404 (description "This package provides a Helm interface for toggling Emacs
14405 major or minor mode.
14406
14407 @itemize
14408 @item @code{helm-switch-major-mode} list of all major modes
14409 @item @code{helm-enable-minor-mode} list of all inactive minor modes
14410 @item @code{helm-disable-minor-mode} list of all ACTIVE minor modes
14411 @end itemize\n
14412
14413 Hitting @code{RET} enables the mode, @code{C-z} shows the mode
14414 documentation.")
14415 (license license:gpl3+)))
14416
14417 (define-public emacs-hy-mode
14418 (package
14419 (name "emacs-hy-mode")
14420 (version "1.0.3")
14421 (source
14422 (origin
14423 (method git-fetch)
14424 (uri (git-reference
14425 (url "https://github.com/hylang/hy-mode.git")
14426 (commit (string-append "v" version))))
14427 (file-name (git-file-name name version))
14428 (sha256
14429 (base32 "1jxximiznz7fw9ys5k6plw85zrbzvxidql7py1fdi425fdp4058z"))))
14430 (build-system emacs-build-system)
14431 (propagated-inputs
14432 `(("emacs-dash" ,emacs-dash)
14433 ("emacs-s" ,emacs-s)))
14434 (home-page "https://github.com/hylang/hy-mode")
14435 (synopsis "Major mode for Hylang")
14436 (description "This package provides a major mode for Hylang.")
14437 (license license:gpl3+)))
14438
14439 (define-public emacs-web-beautify
14440 (package
14441 (name "emacs-web-beautify")
14442 (version "0.3.2")
14443 (source
14444 (origin
14445 (method git-fetch)
14446 (uri (git-reference
14447 (url "https://github.com/yasuyk/web-beautify.git")
14448 (commit version)))
14449 (file-name (git-file-name name version))
14450 (sha256
14451 (base32 "0vms7zz3ym53wf1zdrkbf2ky2xjr1v134ngsd0jr8azyi8siw84d"))))
14452 (build-system emacs-build-system)
14453 (home-page "https://github.com/yasuyk/web-beautify")
14454 (synopsis "Format HTML, CSS and JavaScript, JSON")
14455 (description "This package provides an Emacs functions to format HTML,
14456 CSS, JavaScript, JSON.")
14457 (license license:gpl3+)))
14458
14459 (define-public emacs-helm-shell-history
14460 (let ((commit "110d3c35c52fe4b89b29e79ea4c8626bce7266a1"))
14461 (package
14462 (name "emacs-helm-shell-history")
14463 (version (git-version "0.1" "1" commit))
14464 (source
14465 (origin
14466 (method git-fetch)
14467 (uri (git-reference
14468 (url "https://github.com/yuutayamada/helm-shell-history.git")
14469 (commit commit)))
14470 (file-name (git-file-name name version))
14471 (sha256
14472 (base32
14473 "18fkjcz69g4dyaxhf9j8svr5x6dhsdnglddwisis8hdn504scpfj"))))
14474 (build-system emacs-build-system)
14475 (arguments
14476 '(#:phases
14477 (modify-phases %standard-phases
14478 (add-before 'check 'patch-helm-shell-history-file
14479 (lambda _
14480 (let ((file "helm-shell-history.el"))
14481 (chmod file #o644)
14482 (emacs-substitute-sexps file
14483 ("(defvar helm-shell-history-file"
14484 `(expand-file-name "~/.bash_history"))))
14485 #t)))))
14486 (propagated-inputs
14487 `(("emacs-helm" ,emacs-helm)))
14488 (home-page "https://github.com/yuutayamada/helm-shell-history")
14489 (synopsis "Find shell history with Emacs Helm")
14490 (description "This package provides an Emacs Helm interface to search
14491 throw a shell history.")
14492 (license license:gpl3+))))
14493
14494 (define-public emacs-discover-my-major
14495 (package
14496 (name "emacs-discover-my-major")
14497 (version "1.0")
14498 (source
14499 (origin
14500 (method git-fetch)
14501 (uri (git-reference
14502 (url "https://framagit.org/steckerhalter/discover-my-major.git/")
14503 (commit version)))
14504 (file-name (git-file-name name version))
14505 (sha256
14506 (base32
14507 "1wlqyl03hhnflbyay3qlvdzqzvv5rbybcjpfddggda7ias9h0pr4"))))
14508 (build-system emacs-build-system)
14509 (propagated-inputs
14510 `(("emacs-makey" ,emacs-makey)))
14511 (home-page "https://framagit.org/steckerhalter/discover-my-major/")
14512 (synopsis "Discover key bindings for the current Emacs major mode")
14513 (description "This package discovers key bindings and
14514 their meaning for the current Emacs major-mode.")
14515 (license license:gpl3+)))
14516
14517 (define-public emacs-org-ref
14518 ;; No release since June 2017.
14519 (let ((commit "5bb9be2232db72b04754d7e4c02a3976ad422f6f")
14520 (revision "2"))
14521 (package
14522 (name "emacs-org-ref")
14523 (version (git-version "1.1.1" revision commit))
14524 (source
14525 (origin
14526 (method git-fetch)
14527 (uri (git-reference
14528 (url "https://github.com/jkitchin/org-ref.git")
14529 (commit commit)))
14530 (file-name (git-file-name name version))
14531 (sha256
14532 (base32 "15gcvbfj19kyv4nxa632b261dwhb26m99plq230qhv9ssfwfgxbx"))))
14533 (build-system emacs-build-system)
14534 (propagated-inputs
14535 `(("emacs-dash" ,emacs-dash)
14536 ("emacs-f" ,emacs-f)
14537 ("emacs-helm" ,emacs-helm)
14538 ("emacs-helm-bibtex" ,emacs-helm-bibtex)
14539 ("emacs-htmlize" ,emacs-htmlize)
14540 ("emacs-hydra" ,emacs-hydra)
14541 ("emacs-ivy" ,emacs-ivy)
14542 ("emacs-key-chord" ,emacs-key-chord)
14543 ("emacs-pdf-tools" ,emacs-pdf-tools)
14544 ("emacs-s" ,emacs-s)))
14545 (home-page "https://github.com/jkitchin/org-ref")
14546 (synopsis "Citations, cross-references and bibliographies in Org mode")
14547 (description
14548 "Org Ref is an Emacs library that provides rich support for citations,
14549 labels and cross-references in Org mode.
14550
14551 The basic idea of Org Ref is that it defines a convenient interface to insert
14552 citations from a reference database (e.g., from BibTeX files), and a set of
14553 functional Org links for citations, cross-references and labels that export
14554 properly to LaTeX, and that provide clickable functionality to the user. Org
14555 Ref interfaces with Helm BibTeX to facilitate citation entry, and it can also
14556 use RefTeX.
14557
14558 It also provides a fairly large number of utilities for finding bad citations,
14559 extracting BibTeX entries from citations in an Org file, and functions to
14560 create and modify BibTeX entries from a variety of sources, most notably from
14561 a DOI.
14562
14563 Org Ref is especially suitable for Org documents destined for LaTeX export and
14564 scientific publication. Org Ref is also useful for research documents and
14565 notes.")
14566 (license license:gpl3+))))
14567
14568 ;; This project is unmaintained. Please use emacs-org-re-reveal instead.
14569 (define-public emacs-org-reveal
14570 (let ((commit "9210413202a360a559a51e8275faa42be68cf44b"))
14571 (package
14572 (name "emacs-org-reveal")
14573 (version (git-version "0.1" "3" commit))
14574 (source (origin
14575 (method git-fetch)
14576 (uri (git-reference
14577 (url "https://github.com/yjwen/org-reveal.git")
14578 (commit commit)))
14579 (file-name (git-file-name name version))
14580 (sha256
14581 (base32
14582 "1wlfk823d3vrn480m38j7ncaqm193lvh6y22b92fx4b3yhdbndza"))))
14583 (build-system emacs-build-system)
14584 (home-page "https://github.com/yjwen/org-reveal")
14585 (synopsis "Org and Reveal.js powered HTML presentation tool")
14586 (description "Org-Reveal is a @command{org-mode} extension that allows
14587 to create beautiful presentations (slides) with 3D effects from simple but
14588 powerful Org contents.")
14589 (license license:gpl3+))))
14590
14591 (define-public emacs-org-re-reveal
14592 (package
14593 (name "emacs-org-re-reveal")
14594 (version "2.12.2")
14595 (source (origin
14596 (method git-fetch)
14597 (uri (git-reference
14598 (url "https://gitlab.com/oer/org-re-reveal.git")
14599 (commit version)))
14600 (file-name (git-file-name name version))
14601 (sha256
14602 (base32
14603 "19nz77f2r49hqavz50ri222prhrd5890vhvc7jfazbascbcdjbqv"))))
14604 (build-system emacs-build-system)
14605 (propagated-inputs
14606 `(("emacs-htmlize" ,emacs-htmlize)
14607 ("emacs-org" ,emacs-org)))
14608 (home-page "https://gitlab.com/oer/org-re-reveal")
14609 (synopsis "Build HTML presentations with reveal.js from Org source files")
14610 (description "This project started as fork of org-reveal. It provides an
14611 export back-end for HTML presentations with reveal.js from Org mode source
14612 files.")
14613 (license license:gpl3+)))
14614
14615 (define-public emacs-add-hooks
14616 (package
14617 (name "emacs-add-hooks")
14618 (version "3.1.1")
14619 (source
14620 (origin
14621 (method git-fetch)
14622 (uri (git-reference
14623 (url "https://github.com/nickmccurdy/add-hooks.git")
14624 (commit version)))
14625 (file-name (git-file-name name version))
14626 (sha256
14627 (base32 "1jv9fpcsm572zg0j1mbpbfkqgdlqapy89xhhj19pswkhjns1y2wl"))))
14628 (build-system emacs-build-system)
14629 (home-page "https://github.com/nickmccurdy/add-hooks/")
14630 (synopsis "Emacs function for setting multiple hooks")
14631 (description "This package provides a @code{add-hooks} function tidies up
14632 duplicate hook and function names further into a single declarative call.")
14633 (license license:gpl3+)))
14634
14635 (define-public emacs-fancy-narrow
14636 (package
14637 (name "emacs-fancy-narrow")
14638 (version "0.9.5")
14639 (source
14640 (origin
14641 (method git-fetch)
14642 (uri (git-reference
14643 (url "https://github.com/Malabarba/fancy-narrow.git")
14644 (commit version)))
14645 (file-name (git-file-name name version))
14646 (sha256
14647 (base32 "0vcr1gnqawvc1yclqs23jvxm6bqix8kpflf1c7znb0wzxmz9kx7y"))))
14648 (build-system emacs-build-system)
14649 (home-page "https://github.com/Malabarba/fancy-narrow/releases")
14650 (synopsis "Imitate @code{narrow-to-region} with more eye candy")
14651 (description
14652 "Unlike @code{narrow-to-region}, which completely hides text outside
14653 the narrowed region, this package simply de-emphasizes the text, makes it
14654 read-only, and makes it unreachable. This leads to a much more natural
14655 feeling where the region stays static (instead of being brutally moved to a
14656 blank slate) and is clearly highlighted with respect to the rest of the
14657 buffer.")
14658 (license license:gpl2+)))
14659
14660 (define-public emacs-know-your-http-well
14661 (package
14662 (name "emacs-know-your-http-well")
14663 (version "0.5.0")
14664 (source
14665 (origin
14666 (method git-fetch)
14667 (uri (git-reference
14668 (url "https://github.com/for-GET/know-your-http-well.git")
14669 (commit (string-append "v" version))))
14670 (file-name (git-file-name name version))
14671 (sha256
14672 (base32 "1lppggnii2r9fvlhh33gbdrwb50za8lnalavlq9s86ngndn4n94k"))))
14673 (arguments
14674 `(#:phases
14675 (modify-phases %standard-phases
14676 (add-after 'unpack 'install-json-files
14677 (lambda* (#:key outputs #:allow-other-keys)
14678 (for-each (lambda (directory)
14679 (copy-recursively directory
14680 (string-append
14681 (assoc-ref outputs "out")
14682 directory)))
14683 '("js" "json"))))
14684 (add-after 'unpack 'chdir-elisp
14685 ;; Elisp directory is not in root of the source.
14686 (lambda _
14687 (chdir "emacs"))))))
14688 (build-system emacs-build-system)
14689 (home-page "https://github.com/for-GET/know-your-http-well")
14690 (synopsis "Meaning of HTTP headers codes")
14691 (description "Meaning of HTTP headers codes.")
14692 (license license:gpl3+)))
14693
14694 (define-public emacs-navi-mode
14695 (let ((commit "c1d38e8237f4e14af020a0b7d4f118ea198ab674"))
14696 (package
14697 (name "emacs-navi-mode")
14698 (version (git-version "2.0" "1" commit))
14699 (source
14700 (origin
14701 (method git-fetch)
14702 (uri (git-reference
14703 (url "https://github.com/alphapapa/navi.git")
14704 (commit commit)))
14705 (file-name (git-file-name name version))
14706 (sha256
14707 (base32
14708 "0jj5spk14hgb7zb1cd2n8whcw4k1kd5zb6llwj96v178yaws7l8k"))))
14709 (build-system emacs-build-system)
14710 (propagated-inputs
14711 `(("emacs-outshine" ,emacs-outshine)
14712 ("emacs-outorg" ,emacs-outorg)))
14713 (home-page "https://github.com/alphapapa/navi")
14714 (synopsis "Emacs major-mode for easy buffer-navigation")
14715 (description
14716 "This package provides an Emacs major-mode for easy buffer-navigation")
14717 (license license:gpl3+))))
14718
14719 (define-public emacs-download-region
14720 (let ((commit "eb9e557529a73b4cfc8281c70dd0d95db333fffa")
14721 (revision "1"))
14722 (package
14723 (name "emacs-download-region")
14724 (version (string-append "0.0.1" "-" revision "."
14725 (string-take commit 7)))
14726 (source
14727 (origin
14728 (method git-fetch)
14729 (uri (git-reference
14730 (url "https://github.com/zk-phi/download-region.git")
14731 (commit commit)))
14732 (file-name (git-file-name name version))
14733 (sha256
14734 (base32
14735 "0v52djg39b6k2snizd9x0qc009ws5y0ywqsfwhqgcbs5ymzh7dsc"))))
14736 (build-system emacs-build-system)
14737 (home-page "https://github.com/zk-phi/download-region")
14738 (synopsis "In buffer download manager for Emacs")
14739 (description "@code{download-region} provides in buffer
14740 downloading manager for Emacs.")
14741 (license license:gpl3+))))
14742
14743 (define-public emacs-helpful
14744 (package
14745 (name "emacs-helpful")
14746 (version "0.17")
14747 (source
14748 (origin
14749 (method git-fetch)
14750 (uri (git-reference
14751 (url "https://github.com/Wilfred/helpful.git")
14752 (commit version)))
14753 (file-name (git-file-name name version))
14754 (sha256
14755 (base32 "0v2y0x9pwi08y2mgjjiw5brfb5haa7pbmy4540glw904ffxxcblj"))))
14756 (build-system emacs-build-system)
14757 (propagated-inputs
14758 `(("emacs-elisp-refs" ,emacs-elisp-refs)
14759 ("emacs-dash" ,emacs-dash)
14760 ("emacs-s" ,emacs-s)
14761 ("emacs-f" ,emacs-f)
14762 ("emacs-shut-up" ,emacs-shut-up)))
14763 (native-inputs
14764 `(("emacs-ert-runner" ,emacs-ert-runner)
14765 ("emacs-undercover" ,emacs-undercover)))
14766 (arguments
14767 `(#:tests? #t
14768 #:test-command '("ert-runner")))
14769 (home-page "https://github.com/Wilfred/helpful")
14770 (synopsis "More contextual information in Emacs help")
14771 (description "@code{helpful} is an alternative to the built-in Emacs help
14772 that provides much more contextual information.
14773
14774 @itemize
14775 @item Show the source code for interactively defined functions (unlike the
14776 built-in Help).
14777 @item Fall back to the raw sexp if no source is available.
14778 @item Show where a function is being called.
14779 @item Docstrings will Highlight the summary (the first sentence), include
14780 cross-references, hide superfluous puncuation.
14781 @item Show you the properties that have been applied to the current
14782 symbol. This provides visibility of features like edebug or byte-code
14783 optimisation.
14784 @item Provide a separate @code{helpful-command} function to view interactive
14785 functions.
14786 @item Display any keybindings that apply to interactive functions.
14787 @item Trace, disassemble functions from inside Helpful. This is discoverable
14788 and doesn't require memorisation of commands.
14789 @end itemize\n")
14790 (license license:gpl3+)))
14791
14792 (define-public emacs-logview
14793 (package
14794 (name "emacs-logview")
14795 (version "0.9")
14796 (source
14797 (origin
14798 (method git-fetch)
14799 (uri (git-reference
14800 (url "https://github.com/doublep/logview.git")
14801 (commit version)))
14802 (file-name (git-file-name name version))
14803 (sha256
14804 (base32 "1qhzs75pxnaksbhczmpdcy2zmrqavlzkzss7ik5nv2wf9vs0sn02"))))
14805 (propagated-inputs
14806 `(("emacs-datetime" ,emacs-datetime)))
14807 (build-system emacs-build-system)
14808 (home-page "https://github.com/doublep/logview/")
14809 (synopsis "Emacs mode for viewing log files")
14810 (description "@code{logview} provides an Emacs mode to view log files.")
14811 (license license:gpl3+)))
14812
14813 (define-public emacs-suggest
14814 (package
14815 (name "emacs-suggest")
14816 (version "0.7")
14817 (home-page "https://github.com/Wilfred/suggest.el")
14818 (source
14819 (origin
14820 (method git-fetch)
14821 (uri (git-reference
14822 (url home-page)
14823 (commit version)))
14824 (file-name (git-file-name name version))
14825 (sha256
14826 (base32
14827 "01v8plska5d3g19sb1m4ph1i3ayprfzk8mi6mpabjy6zad397xjl"))))
14828 (build-system emacs-build-system)
14829 (propagated-inputs
14830 `(("emacs-loop" ,emacs-loop)
14831 ("emacs-dash" ,emacs-dash)
14832 ("emacs-s" ,emacs-s)
14833 ("emacs-f" ,emacs-f)
14834 ("emacs-spinner" ,emacs-spinner)
14835 ("emacs-shut-up" ,emacs-shut-up)))
14836 (native-inputs
14837 `(("emacs-ert-runner" ,emacs-ert-runner)
14838 ("emacs-undercover" ,emacs-undercover)))
14839 (arguments
14840 `(#:tests? #t
14841 #:test-command '("ert-runner")))
14842 (synopsis "Suggest Elisp functions that give the output requested")
14843 (description "Suggest.el will find functions that give the output
14844 requested. It's a great way of exploring list, string and arithmetic
14845 functions.")
14846 (license license:gpl3+)))
14847
14848 (define-public emacs-benchmark-init
14849 (package
14850 (name "emacs-benchmark-init")
14851 (version "1.0")
14852 (source
14853 (origin
14854 (method git-fetch)
14855 (uri (git-reference
14856 (url "https://github.com/dholm/benchmark-init-el.git")
14857 (commit version)))
14858 (file-name (git-file-name name version))
14859 (sha256
14860 (base32 "1kyn1izm5sbqbp9whnhk9dn3yc7zy8bz5san5w3ivi3rpx15fh94"))))
14861 (build-system emacs-build-system)
14862 (home-page "https://github.com/dholm/benchmark-init-el")
14863 (synopsis "Benchmark Emacs @code{require} and @code{load} calls")
14864 (description "@code{benchmark-init} provides a way to keep track of where
14865 time is being spent during Emacs startup in order to optimize startup time.")
14866 (license license:gpl3+)))
14867
14868 (define-public emacs-magit-gerrit
14869 (let ((version "0.3")
14870 (revision "1")
14871 (commit "ece6f369694aca17f3ac166ed2801b432acfe20d"))
14872 (package
14873 (name "emacs-magit-gerrit")
14874 (version (git-version version revision commit))
14875 (source (origin
14876 (method git-fetch)
14877 (uri (git-reference
14878 (url "https://github.com/terranpro/magit-gerrit.git")
14879 (commit commit)))
14880 (file-name (git-file-name name version))
14881 (sha256
14882 (base32
14883 "0mms0gxv9a3ns8lk5k2wjibm3088y1cmpr3axjdh6ppv7r5wdvii"))))
14884 (build-system emacs-build-system)
14885 (propagated-inputs
14886 `(("emacs-magit" ,emacs-magit)))
14887 (home-page "https://github.com/terranpro/magit-gerrit")
14888 (synopsis "Magit extension for Gerrit")
14889 (description "This Magit extension provides integration with Gerrit,
14890 which makes it possible to conduct Gerrit code reviews directly from within
14891 Emacs.")
14892 (license license:gpl3+))))
14893
14894 (define-public emacs-magit-org-todos-el
14895 (let ((commit "df206287737b9671f2e36ae7b1474ebbe9940d2a"))
14896 (package
14897 (name "emacs-magit-org-todos-el")
14898 (version (git-version "0.1.1" "1" commit))
14899 (source
14900 (origin
14901 (method git-fetch)
14902 (uri (git-reference
14903 (url "https://github.com/danielma/magit-org-todos.el.git")
14904 (commit commit)))
14905 (file-name (git-file-name name version))
14906 (sha256
14907 (base32
14908 "0kdp7k7jnnrkhsg0xh1c3h7iz0vgi120gf5xwl1hxy61avivnxrn"))))
14909 (propagated-inputs
14910 `(("magit" ,emacs-magit)))
14911 (build-system emacs-build-system)
14912 (home-page "https://github.com/danielma/magit-org-todos.el")
14913 (synopsis "Get todo.org into Emacs Magit status")
14914 (description "This package allows you to get @file{todo.org} into your
14915 magit status.
14916
14917 If you have a @file{todo.org} file with @code{TODO} items in the root of your
14918 repository, @code{magit-org-todos} will create a section in your Magit status
14919 buffer with each of your todos.")
14920 (license license:gpl3+))))
14921
14922 (define-public emacs-vcsh
14923 (package
14924 (name "emacs-vcsh")
14925 (version "0.4.4")
14926 (source
14927 (origin
14928 (method git-fetch)
14929 (uri (git-reference
14930 (url "https://gitlab.com/stepnem/vcsh-el.git")
14931 (commit version)))
14932 (file-name (git-file-name name version))
14933 (sha256
14934 (base32 "183pffdiqb7qqmjq31wxl3fpv8qswqgg99gb716rddiyk15ysri7"))))
14935 (build-system emacs-build-system)
14936 (home-page "https://gitlab.com/stepnem/vcsh-el")
14937 (synopsis "Emacs VCSH integration")
14938 (description
14939 "This library provides basic ``enter'' functionality and a few
14940 convenience commands to initialize a @acronym{VCSH, Version Control System for
14941 $HOME} repository and add files to it. It can be used in conjunction with
14942 Magit.")
14943 (license license:public-domain)))
14944
14945 (define-public emacs-f3
14946 (package
14947 (name "emacs-f3")
14948 (version "0.1")
14949 (source
14950 (origin
14951 (method git-fetch)
14952 (uri (git-reference
14953 (url "https://github.com/cosmicexplorer/f3.git")
14954 (commit version)))
14955 (file-name (git-file-name name version))
14956 (sha256
14957 (base32 "1qg48zbjdjqimw4516ymrsilz41zkib9321q0caf9474s9xyp2bi"))))
14958 (build-system emacs-build-system)
14959 (propagated-inputs
14960 `(("emacs-helm" ,emacs-helm)))
14961 (home-page "https://github.com/cosmicexplorer/f3")
14962 (synopsis "Fantastic File Finder for Emacs")
14963 (description
14964 "The Fantastic File Finder for Emacs. Find files fast, using helm.")
14965 (license license:gpl3+)))
14966
14967 (define-public emacs-lice-el
14968 (let ((commit "4339929927c62bd636f89bb39ea999d18d269250"))
14969 (package
14970 (name "emacs-lice-el")
14971 (version (git-version "0.2" "1" commit))
14972 (source (origin
14973 (method git-fetch)
14974 (uri (git-reference
14975 (url "https://github.com/buzztaiki/lice-el.git")
14976 (commit commit)))
14977 (file-name (git-file-name name version))
14978 (sha256
14979 (base32
14980 "0879z761b7gajkhq176ps745xpdrivch349crransv8fnsc759yb"))))
14981 (build-system emacs-build-system)
14982 (home-page "https://github.com/buzztaiki/lice-el")
14983 (synopsis "License and header template for Emacs")
14984 (description "@code{lice.el} provides following features:
14985
14986 @itemize
14987 @item License template management.
14988 @item File header insertion.
14989 @end itemize\n")
14990 (license license:gpl3+))))
14991
14992 (define-public emacs-academic-phrases
14993 (let ((commit "0823ed8c24b26c32f909b896a469833ec4d7b656"))
14994 (package
14995 (name "emacs-academic-phrases")
14996 (version (git-version "0.1" "1" commit))
14997 (source
14998 (origin
14999 (method git-fetch)
15000 (uri (git-reference
15001 (url "https://github.com/nashamri/academic-phrases.git")
15002 (commit commit)))
15003 (file-name (git-file-name name version))
15004 (sha256
15005 (base32
15006 "0qfzsq8jh05w4zkr0cvq3i1hdn97bq344vcqjg46sib26x3wpz6r"))))
15007 (build-system emacs-build-system)
15008 (propagated-inputs
15009 `(("emacs-dash" ,emacs-dash)
15010 ("emacs-s" ,emacs-s)
15011 ("emacs-ht" ,emacs-ht)))
15012 (home-page "https://github.com/nashamri/academic-phrases")
15013 (synopsis "Bypass that mental block when writing your papers")
15014 (description
15015 "When writing your academic paper, you might get stuck trying to find
15016 the right phrase that captures your intention. This package tries to
15017 alleviate that problem by presenting you with a list of phrases organized by
15018 the topic or by the paper section that you are writing. This package has
15019 around 600 phrases so far.
15020
15021 Using this package is easy, just call @code{academic-phrases} to get a list of
15022 phrases organized by topic, or call @code{academic-phrases-by-section} to
15023 browse the phrases by the paper section and fill-in the blanks if required.")
15024 (license license:gpl3+))))
15025
15026 (define-public emacs-auto-yasnippet
15027 (let ((commit "624b0d9711222073a2a3f2186e2605eb99fc83c9")
15028 (revision "2"))
15029 (package
15030 (name "emacs-auto-yasnippet")
15031 (version (git-version "0.3.0" revision commit))
15032 (source (origin
15033 (method git-fetch)
15034 (uri (git-reference
15035 (url "https://github.com/abo-abo/auto-yasnippet.git")
15036 (commit commit)))
15037 (file-name (git-file-name name version))
15038 (sha256
15039 (base32
15040 "15g8wi067f345xhpi0c12w0h04p4f4lpccwmdjdfj8hzfl4gyxy9"))))
15041 (build-system emacs-build-system)
15042 (arguments
15043 '(#:tests? #t
15044 #:test-command '("make" "test")))
15045 (propagated-inputs
15046 `(("emacs-yasnippet" ,emacs-yasnippet)))
15047 (home-page "https://github.com/abo-abo/auto-yasnippet/")
15048 (synopsis "Quickly create disposable yasnippets")
15049 (description "This package provides a hybrid of keyboard macros and
15050 yasnippet. You create the snippet on the go, usually to be used just in the
15051 one place. It's fast, because you're not leaving the current buffer, and all
15052 you do is enter the code you'd enter anyway, just placing ~ where you'd like
15053 yasnippet fields and mirrors to be.")
15054 (license license:gpl3+))))
15055
15056 (define-public emacs-highlight-numbers
15057 (package
15058 (name "emacs-highlight-numbers")
15059 (version "0.2.3")
15060 (source
15061 (origin
15062 (method git-fetch)
15063 (uri (git-reference
15064 (url "https://github.com/Fanael/highlight-numbers.git")
15065 (commit version)))
15066 (file-name (git-file-name name version))
15067 (sha256
15068 (base32 "1r07mpyr7rhd7bkg778hx6vbhb4n9ixgzkpszhgks7ri6ia38pj8"))))
15069 (build-system emacs-build-system)
15070 (propagated-inputs
15071 `(("emacs-parent-mode" ,emacs-parent-mode)))
15072 (home-page "https://github.com/Fanael/highlight-numbers")
15073 (synopsis "Highlight numbers in source code")
15074 (description "@code{highlight-numbers-mode} provides a minor mode for
15075 syntax highlighting of numeric literals in source code.
15076
15077 It s customizable: it's easy to add or redefine what exactly consitutes a
15078 \"number\" in given major mode. See @code{highlight-numbers-modelist}.")
15079 (license license:gpl3+)))
15080
15081 (define-public emacs-darkroom
15082 (package
15083 (name "emacs-darkroom")
15084 (version "0.2")
15085 (source (origin
15086 (method url-fetch)
15087 (uri (string-append "https://elpa.gnu.org/packages/darkroom-"
15088 version ".el"))
15089 (sha256
15090 (base32
15091 "1a528brhz4vckhp77n2c1phkyqdliykpj9kzk3f834f4rwnb5mp0"))))
15092 (build-system emacs-build-system)
15093 (home-page "https://elpa.gnu.org/packages/darkroom.html")
15094 (synopsis "Remove visual distractions and focus on writing")
15095 (description "@code{darkroom-mode} makes visual distractions disappear.
15096 The mode-line is temporarily elided, text is enlarged and margins are adjusted
15097 so that it's centered on the window.
15098
15099 @code{darkroom-tentative-mode} is similar, but it doesn't immediately turn-on
15100 @code{darkroom-mode}, unless the current buffer lives in the sole window of
15101 the Emacs frame (i.e. all other windows are deleted). Whenever the frame is
15102 split to display more windows and more buffers, the buffer exits
15103 @code{darkroom-mode}. Whenever they are deleted, the buffer re-enters
15104 @code{darkroom-mode}.")
15105 (license license:gpl3+)))
15106
15107 (define-public emacs-rsw-elisp
15108 (package
15109 (name "emacs-rsw-elisp")
15110 (version "1.0.5")
15111 (source (origin
15112 (method git-fetch)
15113 (uri (git-reference
15114 (url "https://github.com/rswgnu/rsw-elisp")
15115 (commit version)))
15116 (file-name (git-file-name name version))
15117 (sha256
15118 (base32
15119 "0dfq8myg0r91900bk1s70amsmm4mjk2qsg12v5pk7lla5d2vnyaf"))))
15120 (build-system emacs-build-system)
15121 (home-page "https://github.com/rswgnu/rsw-elisp")
15122 (synopsis "Improved expressions that interactively evaluate Emacs Lisp")
15123 (description "This package improves and replaces the GNU Emacs commands
15124 that interactively evaluate Emacs Lisp expressions. The new commands replace
15125 standard key bindings and are all prefixed with @code{rsw-elisp-}. They work
15126 the same way as the old commands when called non-interactively; only the
15127 interactive behavior should be different.")
15128 (license license:gpl3+)))
15129
15130 (define-public emacs-default-text-scale
15131 (let ((commit "968e985e219235f3e744d6d967e592acbaf6e0a8")
15132 (revision "1"))
15133 (package
15134 (name "emacs-default-text-scale")
15135 (version (string-append "0.1" "-" revision "."
15136 (string-take commit 7)))
15137 (source (origin
15138 (method git-fetch)
15139 (uri (git-reference
15140 (url "https://github.com/purcell/default-text-scale")
15141 (commit commit)))
15142 (file-name (git-file-name name version))
15143 (sha256
15144 (base32
15145 "0zds01c3q5yny6ab1fxfkzzgn1kgl3q23lxxap905f4qd70v922h"))))
15146 (build-system emacs-build-system)
15147 (home-page "https://github.com/purcell/default-text-scale")
15148 (synopsis "Adjust the font size in all Emacs frames")
15149 (description "This package provides commands for increasing or
15150 decreasing the default font size in all GUI Emacs frames.")
15151 (license license:gpl3+))))
15152
15153 (define-public emacs-mixed-pitch
15154 (package
15155 (name "emacs-mixed-pitch")
15156 (version "1.0.1")
15157 (source
15158 (origin
15159 (method git-fetch)
15160 (uri (git-reference
15161 (url "https://gitlab.com/jabranham/mixed-pitch.git")
15162 (commit version)))
15163 (file-name (git-file-name name version))
15164 (sha256
15165 (base32 "1458sy5b6bis1i0k23jdqk6hfqg0ghk637r3ajql2g19ym48rf58"))))
15166 (build-system emacs-build-system)
15167 (home-page "https://gitlab.com/jabranham/mixed-pitch")
15168 (synopsis "Mix variable- and fixed-pitch fonts in the same Emacs buffer")
15169 (description
15170 "@code{mixed-pitch-mode} is a minor mode that enables mixing
15171 variable-pitch and fixed-pitch fonts in the same buffer. The list
15172 @code{mixed-pitch-fixed-pitch-faces} defines the faces that are kept
15173 fixed-pitch,everything else becomes variable-pitch.")
15174 (license license:gpl3+)))
15175
15176 (define-public emacs-visual-regexp
15177 (package
15178 (name "emacs-visual-regexp")
15179 (version "1.1.1")
15180 (source
15181 (origin
15182 (method git-fetch)
15183 (uri (git-reference
15184 (url "https://github.com/benma/visual-regexp.el.git")
15185 (commit (string-append "v" version))))
15186 (file-name (git-file-name name version))
15187 (sha256
15188 (base32 "12zpmzwyp85dzsjpxd3279kpfi9yz3jwc1k9fnb3xv3pjiil5svg"))))
15189 (build-system emacs-build-system)
15190 (home-page "https://github.com/benma/visual-regexp.el/")
15191 (synopsis "Regexp command with interactive visual feedback")
15192 (description "This package provides an Emacs regexp command with
15193 interactive visual feedback.")
15194 (license license:gpl3+)))
15195
15196 (define-public emacs-faceup
15197 (let ((commit "6c92dad56a133e14e7b27831e1bcf9b3a71ff154")
15198 (revision "1"))
15199 (package
15200 (name "emacs-faceup")
15201 (version (string-append "0.0.1" "-" revision "."
15202 (string-take commit 7)))
15203 (source
15204 (origin
15205 (method git-fetch)
15206 (uri (git-reference
15207 (url "https://github.com/Lindydancer/faceup.git")
15208 (commit commit)))
15209 (file-name (git-file-name name version))
15210 (sha256
15211 (base32
15212 "1yzmy7flrhrh0i10bdszx8idx6r8h6czm4vm4q0z6fp5fw94zwrx"))))
15213 (build-system emacs-build-system)
15214 (home-page "https://github.com/Lindydancer/faceup")
15215 (synopsis "Markup language for faces and font-lock regression testing")
15216 (description "Emacs is capable of highlighting buffers based on
15217 language-specific @code{font-lock} rules. This package makes it possible to
15218 perform regression test for packages that provide font-lock rules.")
15219 (license license:gpl3+))))
15220
15221 (define-public emacs-racket-mode
15222 (let ((commit "5f396fa91fc22310f5c519aa658436a1a5251846")
15223 (revision "5"))
15224 (package
15225 (name "emacs-racket-mode")
15226 (version (git-version "0.0.2" revision commit))
15227 (source
15228 (origin
15229 (method git-fetch)
15230 (uri (git-reference
15231 (url "https://github.com/greghendershott/racket-mode")
15232 (commit commit)))
15233 (file-name (git-file-name name version))
15234 (sha256
15235 (base32
15236 "1214y08i0c51d1vzw9jzyf79vyfqizdy6m0980qs13qbdwsj32v0"))))
15237 (build-system emacs-build-system)
15238 (arguments
15239 `(#:include '("\\.el$" "\\.rkt$")))
15240 (propagated-inputs
15241 `(("emacs-faceup" ,emacs-faceup)
15242 ("emacs-s" ,emacs-s)))
15243 (home-page "https://www.racket-mode.com/")
15244 (synopsis "Major mode for the Racket language")
15245 (description "@code{racket-mode} provides:
15246
15247 @itemize
15248 @item Focus on Racket (not various Schemes).
15249 @item Follow DrRacket concepts where applicable.
15250 @item Thorough font-lock and indent.
15251 @end itemize\n")
15252 (license license:gpl3+))))
15253
15254 (define-public emacs-grep-context
15255 (let ((commit "5a4e3efdf775755c1bbefcfe4b461c1166d81d7d")
15256 (revision "1"))
15257 (package
15258 (name "emacs-grep-context")
15259 (version (git-version "0.1.0" revision commit))
15260 (source
15261 (origin
15262 (method git-fetch)
15263 (uri (git-reference
15264 (url "https://github.com/mkcms/grep-context.git")
15265 (commit commit)))
15266 (file-name (git-file-name name version))
15267 (sha256
15268 (base32
15269 "00q7l4a3c0ay6g5ff9bfa2qgkiswsyh4s6pqnpg0zpzhvv5710f5"))))
15270 (build-system emacs-build-system)
15271 (propagated-inputs
15272 `(("emacs-dash" ,emacs-dash)))
15273 (home-page "https://github.com/mkcms/grep-context")
15274 (synopsis "Increase context in compilation and grep buffers")
15275 (description
15276 "This package provides an Emacs package for more context in
15277 compilation/grep buffers. Works with @code{wgrep}, @code{ack}, @code{ag},
15278 @code{ivy}.")
15279 (license license:gpl3+))))
15280
15281 (define-public emacs-helm-firefox
15282 (let ((commit "0ad34b7b5abc485a86cae6920c14de861cbeb085")
15283 (revision "1"))
15284 (package
15285 (name "emacs-helm-firefox")
15286 (version (string-append "0.0.1" "-" revision "."
15287 (string-take commit 7)))
15288 (source
15289 (origin
15290 (method git-fetch)
15291 (uri (git-reference
15292 (url "https://github.com/emacs-helm/helm-firefox.git")
15293 (commit commit)))
15294 (file-name (git-file-name name version))
15295 (sha256
15296 (base32
15297 "08mjsi2f9s29fkk35cj1rrparjnkm836qmbfdwdz7y51f9varjbs"))))
15298 (propagated-inputs
15299 `(("emacs-helm" ,emacs-helm)))
15300 (build-system emacs-build-system)
15301 (home-page "https://github.com/emacs-helm/helm-firefox")
15302 (synopsis "Display firefox bookmarks with Emacs Helm interface")
15303 (description "Display firefox bookmarks with Emacs Helm interface")
15304 (license license:gpl3+))))
15305
15306 (define-public emacs-interactive-align
15307 (package
15308 (name "emacs-interactive-align")
15309 (version "0.4.2")
15310 (source
15311 (origin
15312 (method git-fetch)
15313 (uri (git-reference
15314 (url "https://github.com/mkcms/interactive-align.git")
15315 (commit (string-append "v" version))))
15316 (file-name (git-file-name name version))
15317 (sha256
15318 (base32
15319 "0bh03w91i622hbar5dcq631ndxx1y8kd3h655pgw1g0lqkv1mlnc"))))
15320 (build-system emacs-build-system)
15321 (home-page "https://github.com/mkcms/interactive-align/")
15322 (synopsis "Interactive align-regexp command in Emacs")
15323 (description "Interactive align-regexp command in Emacs")
15324 (license license:gpl3+)))
15325
15326 (define-public emacs-shift-number
15327 (package
15328 (name "emacs-shift-number")
15329 (version "0.1")
15330 (source
15331 (origin
15332 (method git-fetch)
15333 (uri (git-reference
15334 (url "https://github.com/alezost/shift-number.el")
15335 (commit (string-append "v" version))))
15336 (file-name (git-file-name name version))
15337 (sha256
15338 (base32
15339 "0zlwmzsxkv4mkggylxfx2fkrwgz7dz3zbg2gkn2rxcpy2k2gla64"))))
15340 (build-system emacs-build-system)
15341 (home-page "https://github.com/alezost/shift-number.el")
15342 (synopsis "Increase or decrease the number at point")
15343 (description "@code{emacs-shift-number} provides commands
15344 @code{shift-number-up} to increase and @code{shift-number-down} to
15345 decrease the number at point.")
15346 (license license:gpl3+)))
15347
15348 (define-public emacs-highlight-defined
15349 (package
15350 (name "emacs-highlight-defined")
15351 (version "0.1.5")
15352 (source
15353 (origin
15354 (method git-fetch)
15355 (uri (git-reference
15356 (url "https://github.com/Fanael/highlight-defined.git")
15357 (commit version)))
15358 (file-name (git-file-name name version))
15359 (sha256
15360 (base32 "08czwa165rnd5z0dwwdddn7zi5w63sdk31l47bj0598kbly01n7r"))))
15361 (build-system emacs-build-system)
15362 (home-page "https://github.com/Fanael/highlight-defined")
15363 (synopsis "Syntax highlighting of known Elisp symbols")
15364 (description "Minor mode providing syntax highlighting of known Emacs Lisp
15365 symbols. Currently the code distinguishes Lisp functions, built-in functions,
15366 macros, faces and variables. To enable call @code{highlight-defined-mode}. ")
15367 (license license:gpl3+)))
15368
15369 (define-public emacs-parinfer-mode
15370 (package
15371 (name "emacs-parinfer-mode")
15372 (version "0.4.10")
15373 (source
15374 (origin
15375 (method git-fetch)
15376 (uri (git-reference
15377 (url "https://github.com/DogLooksGood/parinfer-mode.git")
15378 (commit (string-append "v" version))))
15379 (file-name (git-file-name name version))
15380 (sha256
15381 (base32 "0v97ncb0w1slb0x8861l3yr1kqz6fgw1fwl1z9lz6hh8p2ih34sk"))))
15382 (propagated-inputs
15383 `(("emacs-dash" ,emacs-dash)
15384 ("emacs-rainbow-delimiters" ,emacs-rainbow-delimiters)
15385 ("emacs-company" ,emacs-company)))
15386 (build-system emacs-build-system)
15387 (home-page "https://github.com/DogLooksGood/parinfer-mode/")
15388 (synopsis "Lisp structure editing mode")
15389 (description "@code{parinfer-mode} is a proof-of-concept editor
15390 mode for Lisp programming languages. It will infer some changes to
15391 keep Parens and Indentation inline with one another.")
15392 (license license:gpl3+)))
15393
15394 (define-public emacs-helm-eww
15395 (package
15396 (name "emacs-helm-eww")
15397 (version "1.2")
15398 (source (origin
15399 (method git-fetch)
15400 (uri (git-reference
15401 (url "https://github.com/emacs-helm/helm-eww.git")
15402 (commit version)))
15403 (file-name (git-file-name name version))
15404 (sha256
15405 (base32
15406 "0hpq1h0p69c9k6hkd2mjpprx213sc5475q7pr2zpmwrjdzgcv70z"))))
15407 (propagated-inputs
15408 `(("emacs-helm" ,emacs-helm)))
15409 (build-system emacs-build-system)
15410 (home-page "https://github.com/emacs-helm/helm-eww/")
15411 (synopsis "Helm interface to EWW")
15412 (description "This package provides a Helm interface for EWW buffers,
15413 bookmarks and history.")
15414 (license license:gpl3+)))
15415
15416 (define-public emacs-stumpwm-mode
15417 (let ((commit "dd5b037923ec7d3cc27c55806bcec5a1b8cf4e91")
15418 (revision "2"))
15419 (package
15420 (name "emacs-stumpwm-mode")
15421 (version (git-version "0.0.1" revision commit))
15422 (source (origin
15423 (method git-fetch)
15424 (uri (git-reference
15425 (url "https://github.com/stumpwm/stumpwm-contrib.git")
15426 (commit commit)))
15427 (file-name (git-file-name name version))
15428 (sha256
15429 (base32
15430 "0ahxdj9f884afpzxczx6mx7l4nwg4kw6afqaq7lwhf7lxcwylldn"))))
15431 (build-system emacs-build-system)
15432 (arguments
15433 `(#:phases
15434 (modify-phases %standard-phases
15435 (add-after 'unpack 'chdir-elisp
15436 ;; Elisp directory is not in root of the source.
15437 (lambda _
15438 (chdir "util/swm-emacs"))))))
15439 (home-page "https://github.com/stumpwm/stumpwm-contrib")
15440 (synopsis "Emacs minor-mode for Stumpwm")
15441 (description "Emacs minor-mode for Stumpwm")
15442 (license license:gpl3+))))
15443
15444 (define-public emacs-irfc
15445 (package
15446 (name "emacs-irfc")
15447 (version "20130824.507-1")
15448 (source
15449 (origin
15450 (method url-fetch)
15451 (uri "https://www.emacswiki.org/emacs/download/irfc.el")
15452 (file-name (string-append "irfc-" version ".el"))
15453 (sha256
15454 (base32
15455 "0rbfrza56kvspvgrwg0b5bj30d0qncqdsmfxn3y5caq4ifcj77hv"))))
15456 (build-system emacs-build-system)
15457 (home-page "https://www.emacswiki.org/emacs/download/irfc.el")
15458 (synopsis "Interface for IETF RFC document")
15459 (description
15460 "This package provides an Emacs interface for IETF RFC document.")
15461 (license license:gpl3+)))
15462
15463 (define-public emacs-ido-vertical-mode
15464 (package
15465 (name "emacs-ido-vertical-mode")
15466 (version "0.1.6")
15467 (source
15468 (origin
15469 (method git-fetch)
15470 (uri (git-reference
15471 (url "https://github.com/creichert/ido-vertical-mode.el.git")
15472 (commit (string-append "v" version))))
15473 (file-name (git-file-name name version))
15474 (sha256
15475 (base32 "1lv82q639xjnmvby56nwqn23ijh6f163bk675s33dkingm8csj8k"))))
15476 (build-system emacs-build-system)
15477 (home-page "https://github.com/creichert/ido-vertical-mode.el")
15478 (synopsis "Makes ido-mode display vertically")
15479 (description "Makes ido-mode display prospects vertically.")
15480 (license license:gpl3+)))
15481
15482 (define-public emacs-wordgen
15483 (package
15484 (name "emacs-wordgen")
15485 (version "0.1.4")
15486 (source
15487 (origin
15488 (method git-fetch)
15489 (uri (git-reference
15490 (url "https://github.com/Fanael/wordgen.el.git")
15491 (commit version)))
15492 (file-name (git-file-name name version))
15493 (sha256
15494 (base32 "06vbc9ycz1nbjwjkg99y3lj6jwb6lnwnmkqf09yr00jjrrfhfash"))))
15495 (build-system emacs-build-system)
15496 (home-page "https://github.com/Fanael/wordgen.el")
15497 (synopsis "Random word generator")
15498 (description "This package provides functions to generate random words
15499 using user-provided rules.")
15500 (license license:gpl3+)))
15501
15502 (define-public emacs-on-screen
15503 (package
15504 (name "emacs-on-screen")
15505 (version "1.3.3")
15506 (source
15507 (origin
15508 (method url-fetch)
15509 (uri (string-append
15510 "https://elpa.gnu.org/packages/on-screen-" version ".el"))
15511 (file-name (string-append name "-" version ".el"))
15512 (sha256
15513 (base32 "0ga4hw23ki583li2z2hr7l6hk1nc2kdg4afndg06cm9jn158wza7"))))
15514 (build-system emacs-build-system)
15515 (home-page "https://github.com/michael-heerdegen/on-screen.el")
15516 (synopsis "Guide your eyes while scrolling")
15517 (description
15518 "Scrolling can be distracting because your eyes may lose
15519 orientation. This library implements a minor mode that highlights
15520 the previously visible buffer part after each scroll.")
15521 (license license:gpl3+)))
15522
15523 (define-public emacs-highlight-escape-sequences
15524 (let ((commit "08d846a7aa748209d65fecead2b6a766c3e5cb41")
15525 (revision "1"))
15526 (package
15527 (name "emacs-highlight-escape-sequences")
15528 (version (string-append "0.0.1" "-" revision "."
15529 (string-take commit 7)))
15530 (source
15531 (origin
15532 (method git-fetch)
15533 (uri (git-reference
15534 (url "https://github.com/dgutov/highlight-escape-sequences.git")
15535 (commit commit)))
15536 (file-name (git-file-name name version))
15537 (sha256
15538 (base32
15539 "05mc3w1f8ykf80914a1yddw6j8cmh0h57llm07xh89s53821v2is"))))
15540 (build-system emacs-build-system)
15541 (home-page "https://github.com/dgutov/highlight-escape-sequences")
15542 (synopsis "Highlight escape sequences in Emacs")
15543 (description "@code{highlight-escape-sequences} provides an
15544 Emacs minor mode to escape sequences in code.")
15545 (license license:gpl3+))))
15546
15547 (define-public emacs-dashboard
15548 (package
15549 (name "emacs-dashboard")
15550 (version "1.6.0")
15551 (source
15552 (origin
15553 (method git-fetch)
15554 (uri (git-reference
15555 (url "https://github.com/rakanalh/emacs-dashboard.git")
15556 (commit version)))
15557 (file-name (git-file-name name version))
15558 (sha256
15559 (base32 "1g6g8vad1kdmv1zxp95a8sn70idl26isqjb3xk1r95pqnx1cn591"))))
15560 (build-system emacs-build-system)
15561 (propagated-inputs
15562 `(("emacs-page-break-lines" ,emacs-page-break-lines)))
15563 (arguments
15564 '(#:include '("\\.el$" "\\.txt$" "\\.png$")
15565 #:phases
15566 (modify-phases %standard-phases
15567 (add-after 'unpack 'patch-dashboard-widgets
15568 ;; This phase fixes compilation error.
15569 (lambda _
15570 (chmod "dashboard-widgets.el" #o666)
15571 (emacs-substitute-variables "dashboard-widgets.el"
15572 ("dashboard-init-info"
15573 '(format "Loaded in %s" (emacs-init-time))))
15574 #t)))))
15575 (home-page "https://github.com/rakanalh/emacs-dashboard")
15576 (synopsis "Startup screen extracted from Spacemacs")
15577 (description "This package provides an extensible Emacs dashboard, with
15578 sections for bookmarks, projectil projects, org-agenda and more. ")
15579 (license license:gpl3+)))
15580
15581 (define-public emacs-slime-company
15582 (package
15583 (name "emacs-slime-company")
15584 (version "1.1")
15585 (source
15586 (origin
15587 (method git-fetch)
15588 (uri (git-reference
15589 (url "https://github.com/anwyn/slime-company.git")
15590 (commit (string-append "v" version))))
15591 (file-name (git-file-name name version))
15592 (sha256
15593 (base32 "1hl1hqkc1pxga9k2k8k15d7dip7sfsmwf4wm4sh346m6nj606q8g"))))
15594 (build-system emacs-build-system)
15595 (propagated-inputs
15596 `(("emacs-slime" ,emacs-slime)
15597 ("emacs-company" ,emacs-company)))
15598 (home-page "https://company-mode.github.io")
15599 (synopsis "SLIME completion backend for @code{company-mode}")
15600 (description
15601 "This is a backend implementation for the completion package
15602 @code{company-mode} which supports the normal and the fuzzy completion
15603 modes of SLIME.")
15604 (license license:gpl3+)))
15605
15606 (define-public emacs-sml-mode
15607 (package
15608 (name "emacs-sml-mode")
15609 (version "6.10")
15610 (source
15611 (origin
15612 (method url-fetch)
15613 (uri (string-append "https://elpa.gnu.org/packages/sml-mode-"
15614 version ".el"))
15615 (sha256
15616 (base32 "01yf0s474r9xhj6nbs14ljn9ccxb5yy758i17c8nmgmqvm8fx7sb"))))
15617 (build-system emacs-build-system)
15618 (home-page "https://elpa.gnu.org/packages/sml-mode.html")
15619 (synopsis "Major mode for editing (Standard) ML")
15620 (description "SML-MODE is a major Emacs mode for editing Standard ML.
15621 It provides syntax highlighting and automatic indentation and
15622 comes with sml-proc which allows interaction with an inferior SML
15623 interactive loop.")
15624 (license license:gpl3+)))
15625
15626 (define-public emacs-eros
15627 (let ((commit "dd8910279226259e100dab798b073a52f9b4233a")
15628 (revision "2"))
15629 (package
15630 (name "emacs-eros")
15631 (version (git-version "0.0.1" revision commit))
15632 (source
15633 (origin
15634 (method git-fetch)
15635 (uri (git-reference
15636 (url "https://github.com/xiongtx/eros.git")
15637 (commit commit)))
15638 (file-name (git-file-name name version))
15639 (sha256
15640 (base32
15641 "08chj3a0lw4ygi2sv7wj0i6ihfbi8jhylr8p92inif8b88r6wg3k"))))
15642 (build-system emacs-build-system)
15643 (home-page "https://github.com/xiongtx/eros")
15644 (synopsis "Evaluation result overlays")
15645 (description "@code{eros} provides evaluation result overlays.")
15646 (license license:gpl3+))))
15647
15648 (define-public emacs-stickyfunc-enhance
15649 (let ((commit "13bdba51fcd83ccbc3267959d23afc94d458dcb0")
15650 (revision "1"))
15651 (package
15652 (name "emacs-stickyfunc-enhance")
15653 (version "0.1")
15654 (source
15655 (origin
15656 (method git-fetch)
15657 (uri (git-reference
15658 (url "https://github.com/tuhdo/semantic-stickyfunc-enhance.git")
15659 (commit commit)))
15660 (file-name (git-file-name name version))
15661 (sha256
15662 (base32
15663 "16dxjsr5nj20blww4xpd4jzgjprzzh1nwvb810ggdmp9paf4iy0g"))))
15664 (build-system emacs-build-system)
15665 (home-page "https://github.com/tuhdo/semantic-stickyfunc-enhance")
15666 (synopsis "Enhancement to stock @code{semantic-stickyfunc-mode}")
15667 (description
15668 "@code{semantic-stickyfunc-mode} shows the function point is currently
15669 in at the first line of the current buffer. This is useful when you have a
15670 very long function that spreads more than a screen, and you don't have to
15671 scroll up to read the function name and then scroll down to original position.")
15672 (license license:gpl3+))))
15673
15674 (define-public emacs-git-auto-commit-mode
15675 (package
15676 (name "emacs-git-auto-commit-mode")
15677 (version "4.5.0")
15678 (source
15679 (origin
15680 (method git-fetch)
15681 (uri (git-reference
15682 (url "https://github.com/ryuslash/git-auto-commit-mode.git")
15683 (commit version)))
15684 (file-name (git-file-name name version))
15685 (sha256
15686 (base32 "1w3v9pmlmdxl4pglsb6j0igp13lbzg5bhbr1rv2vll93m6zxmyma"))))
15687 (build-system emacs-build-system)
15688 (home-page "https://github.com/ryuslash/git-auto-commit-mode")
15689 (synopsis "Emacs Minor mode to automatically commit and push")
15690 (description "@code{git-auto-commit-mode} is an Emacs minor mode that
15691 tries to commit changes to a file after every save.
15692
15693 When @code{gac-automatically-push-p} is non-nil, it also tries to push to
15694 the current upstream.")
15695 (license license:gpl3+)))
15696
15697 (define-public emacs-scroll-on-drag
15698 (let ((commit "888abd04c34753b1fc4b2fe541bc004ebec5c996")
15699 (revision "1"))
15700 (package
15701 (name "emacs-scroll-on-drag")
15702 (version (git-version "0.1" revision commit))
15703 (source
15704 (origin
15705 (method git-fetch)
15706 (uri (git-reference
15707 (url "https://gitlab.com/ideasman42/emacs-scroll-on-drag.git")
15708 (commit commit)))
15709 (file-name (git-file-name name version))
15710 (sha256
15711 (base32
15712 "1si4hdqa3jw1inbyh3wb3i5i9grbms1nwky3vyk9zg7iznwm8a9p"))))
15713 (build-system emacs-build-system)
15714 (home-page "https://gitlab.com/ideasman42/emacs-scroll-on-drag")
15715 (synopsis "Interactive scrolling")
15716 (description "This package permits scrolling at increasing speeds based
15717 on drag distance.")
15718 (license license:gpl3+))))
15719
15720 (define-public emacs-company-restclient
15721 (package
15722 (name "emacs-company-restclient")
15723 (version "0.3.0")
15724 (source
15725 (origin
15726 (method git-fetch)
15727 (uri (git-reference
15728 (url "https://github.com/iquiw/company-restclient.git")
15729 (commit (string-append "v" version))))
15730 (file-name (git-file-name name version))
15731 (sha256
15732 (base32 "0yp0hlrgcr6yy1xkjvfckys2k24x9xg7y6336ma61bdwn5lpv0x0"))))
15733 (build-system emacs-build-system)
15734 (propagated-inputs
15735 `(("emacs-company" ,emacs-company)
15736 ("emacs-know-your-http-well" ,emacs-know-your-http-well)
15737 ("emacs-restclient" ,emacs-restclient)))
15738 (home-page "https://github.com/iquiw/company-restclient")
15739 (synopsis "Company-mode completion back-end for restclient-mode")
15740 (description "@code{company-mode} back-end for
15741 @code{restclient-mode}.
15742
15743 It provides auto-completion for HTTP methods and headers in
15744 @code{restclient-mode}. Completion source is given by
15745 @code{know-your-http-well}.")
15746 (license license:gpl3+)))
15747
15748 (define-public emacs-noflet
15749 (let ((version "20170629")
15750 (revision "1")
15751 (commit "7ae84dc3257637af7334101456dafe1759c6b68a"))
15752 (package
15753 (name "emacs-noflet")
15754 (version (git-version version revision commit))
15755 (source
15756 (origin
15757 (method git-fetch)
15758 (uri (git-reference
15759 (url "https://github.com/nicferrier/emacs-noflet")
15760 (commit commit)))
15761 (file-name (git-file-name name version))
15762 (sha256
15763 (base32
15764 "0g70gnmfi8n24jzfci9nrj0n9bn1qig7b8f9f325rin8h7x32ypf"))))
15765 (build-system emacs-build-system)
15766 (arguments
15767 `(#:phases
15768 (modify-phases %standard-phases
15769 (add-after 'unpack 'require-dash
15770 ;; noflet.el uses -map from dash, but (require 'dash) is
15771 ;; missing. So, add it.
15772 (lambda _
15773 (substitute* "noflet.el"
15774 ((";;; Code:") ";;; Code:\n(require 'dash)"))
15775 #t)))))
15776 (propagated-inputs
15777 `(("emacs-dash" ,emacs-dash)))
15778 (home-page "https://github.com/nicferrier/emacs-noflet")
15779 (synopsis "Locally override functions")
15780 (description "@code{emacs-noflet} lets you locally override functions,
15781 in the manner of @command{flet}, but with access to the original function
15782 through the symbol: @command{this-fn}.")
15783 (license license:gpl3+))))
15784
15785 (define-public emacs-dumb-jump
15786 (package
15787 (name "emacs-dumb-jump")
15788 (version "0.5.3")
15789 (source
15790 (origin
15791 (method git-fetch)
15792 (uri (git-reference
15793 (url "https://github.com/jacktasia/dumb-jump.git")
15794 (commit (string-append "v" version))))
15795 (file-name (git-file-name name version))
15796 (sha256
15797 (base32 "1njf60264snhxrd36m4z687lqfkis0p9mmrr7cf1c8l0lfdvawxi"))))
15798 (build-system emacs-build-system)
15799 (arguments
15800 `(#:tests? #f ; FIXME: Tests freeze when run.
15801 #:test-command '("ert-runner")
15802 #:phases
15803 (modify-phases %standard-phases
15804 (add-after 'unpack 'set-shell
15805 (lambda _
15806 ;; Setting the SHELL environment variable is required for the
15807 ;; tests to find sh.
15808 (setenv "SHELL" (which "sh"))
15809 #t)))))
15810 (native-inputs
15811 `(("emacs-el-mock" ,emacs-el-mock)
15812 ("emacs-noflet" ,emacs-noflet)
15813 ("emacs-undercover" ,emacs-undercover)
15814 ("ert-runner" ,emacs-ert-runner)))
15815 (propagated-inputs
15816 `(("emacs-f" ,emacs-f)
15817 ("emacs-popup" ,emacs-popup)))
15818 (home-page "https://github.com/jacktasia/dumb-jump")
15819 (synopsis "Jump to definition for multiple languages without configuration")
15820 (description "Dumb Jump is an Emacs \"jump to definition\" package with
15821 support for multiple programming languages that favors \"just working\" over
15822 speed or accuracy. This means minimal --- and ideally zero --- configuration
15823 with absolutely no stored indexes (tags) or persistent background processes.
15824 Dumb Jump performs best with The Silver Searcher @command{ag} or ripgrep
15825 @command{rg} installed.")
15826 (license license:gpl3+)))
15827
15828 (define-public emacs-dts-mode
15829 (let ((commit "9ee0854446dcc6c53d2b8d2941051768dba50344")
15830 (revision "1"))
15831 (package
15832 (name "emacs-dts-mode")
15833 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
15834 (source
15835 (origin
15836 (method git-fetch)
15837 (uri (git-reference
15838 (url "https://github.com/bgamari/dts-mode.git")
15839 (commit commit)))
15840 (file-name (git-file-name name version))
15841 (sha256
15842 (base32
15843 "1k8lljdbc90nd29xrhdrsscxavzdq532wq2mg7ljc94krj7538b1"))))
15844 (build-system emacs-build-system)
15845 (home-page "https://github.com/bgamari/dts-mode.git")
15846 (synopsis "Emacs minor mode for editing device tree files")
15847 (description
15848 "This package provides an Emacs minor mode for highlighting
15849 device tree files.")
15850 (license license:gpl3+))))
15851
15852 (define-public emacs-daemons
15853 (package
15854 (name "emacs-daemons")
15855 (version "2.0.0")
15856 (source
15857 (origin
15858 (method git-fetch)
15859 (uri (git-reference
15860 (url "https://github.com/cbowdon/daemons.el")
15861 (commit version)))
15862 (file-name (git-file-name name version))
15863 (sha256
15864 (base32
15865 "00bkzfaw3bqykcks610vk9wlpa2z360xn32bpsrycacwfv29j7g4"))))
15866 (build-system emacs-build-system)
15867 (home-page "https://github.com/cbowdon/daemons.el")
15868 (synopsis "Emacs UI for managing init system services")
15869 (description
15870 "This is an Emacs mode to give you a UI for managing init system
15871 daemons (services) for those getting tired of typing out @code{sudo service
15872 my_thing reload} all the time. It offers a consistent UI over different init
15873 systems.")
15874 (license license:gpl3+)))
15875
15876 (define-public emacs-isearch+
15877 (let ((commit "7c251b91a67bf914066e23e269ba52fda5b45f5f")
15878 (revision "2"))
15879 (package
15880 (name "emacs-isearch+")
15881 (version (git-version "0" revision commit))
15882 (source
15883 (origin
15884 (method git-fetch)
15885 (uri (git-reference
15886 (url "https://github.com/emacsmirror/isearch-plus.git")
15887 (commit commit)))
15888 (file-name (git-file-name name version))
15889 (sha256
15890 (base32
15891 "1w2799714jcdycjlxgs8lpmmz6dmzvcvqy8xwxhvmgpb60g4f2yr"))))
15892 (build-system emacs-build-system)
15893 (home-page "https://www.emacswiki.org/emacs/isearch+.el")
15894 (synopsis "Extensions to @code{isearch.el}")
15895 (description "This package extends @code{isearch} with advice, dynamic
15896 filters, highlighting of regexp group levels, and more.")
15897 (license license:gpl2+))))
15898
15899 (define-public emacs-eshell-bookmark
15900 (package
15901 (name "emacs-eshell-bookmark")
15902 (version "2.0.0")
15903 (source
15904 (origin
15905 (method git-fetch)
15906 (uri (git-reference
15907 (url "https://github.com/Fuco1/eshell-bookmark")
15908 (commit version)))
15909 (file-name (git-file-name name version))
15910 (sha256
15911 (base32
15912 "14dmsnixf9vqdhsixw693sml0fn80zcf0b37z049fb40cmppqxdw"))))
15913 (build-system emacs-build-system)
15914 (home-page "https://github.com/Fuco1/eshell-bookmark")
15915 (synopsis "Provide @file{bookmark.el} integration for @code{eshell}")
15916 (description
15917 "This package allows for bookmarking @code{eshell} buffers. Upon
15918 visiting the bookmark, a new @code{eshell} session will be opened in the
15919 appropriate directory if no @code{eshell} session is active.")
15920 (license license:gpl3+)))
15921
15922 (define-public emacs-eshell-z
15923 (package
15924 (name "emacs-eshell-z")
15925 (version "0.4")
15926 (source
15927 (origin
15928 (method git-fetch)
15929 (uri (git-reference
15930 (url "https://github.com/xuchunyang/eshell-z")
15931 (commit (string-append "v" version))))
15932 (file-name (git-file-name name version))
15933 (sha256
15934 (base32
15935 "13dwaq8q23rwmrkpy3gvf7aswrkk6b9ak5221xl7n0bld4wdhq3j"))))
15936 (build-system emacs-build-system)
15937 (home-page "https://github.com/xuchunyang/eshell-z")
15938 (synopsis "Quick navigation to frequently visited directories")
15939 (description
15940 "This package is a port of @code{z}, and keeps track of visited directories
15941 and commands invoked within them in order to enable navigation via input of
15942 matching regexps.")
15943 (license license:gpl3+)))
15944
15945 (define-public emacs-esh-autosuggest
15946 (package
15947 (name "emacs-esh-autosuggest")
15948 (version "2.0.0")
15949 (source
15950 (origin
15951 (method git-fetch)
15952 (uri (git-reference
15953 (url "https://github.com/dieggsy/esh-autosuggest")
15954 (commit version)))
15955 (file-name (git-file-name name version))
15956 (sha256
15957 (base32
15958 "116pdjgpjy9b0psm5kzwkwy7dq8vn0p6dy75dl1zsy2xrjf1iqdw"))))
15959 (build-system emacs-build-system)
15960 (propagated-inputs `(("emacs-company" ,emacs-company)))
15961 (home-page "https://github.com/dieggsy/esh-autosuggest")
15962 (synopsis "Fish-like autosuggestions in Eshell")
15963 (description
15964 "This package assumes you use something other than company for eshell
15965 completion (e.g. @code{eshell-pcomplete}, @code{completion-at-point},
15966 @code{helm-esh-pcomplete}). @code{company-mode} is used solely as a mechanism
15967 for history autosuggestions.
15968
15969 Unless you're using @code{use-package}'s hook keyword, you can enable the
15970 autosuggestions with:
15971 @code{(add-hook 'eshell-mode-hook #'esh-autosuggest-mode)}")
15972 (license license:gpl3+)))
15973
15974 (define-public emacs-desktop-environment
15975 (package
15976 (name "emacs-desktop-environment")
15977 (version "0.3.0")
15978 (source
15979 (origin
15980 (method git-fetch)
15981 (uri (git-reference
15982 (url "https://gitlab.petton.fr/DamienCassou/desktop-environment")
15983 (commit (string-append "v" version))))
15984 (file-name (git-file-name name version))
15985 (sha256
15986 (base32
15987 "195n99xvxyh4cfxjpfa1h1maalqrxf7nyi0bh3lqa1z6z5bdb6x2"))))
15988 (build-system emacs-build-system)
15989 (home-page "https://gitlab.petton.fr/DamienCassou/desktop-environment")
15990 (synopsis "Control your GNU/Linux desktop environment from Emacs")
15991 (description
15992 "This package helps you control your GNU/Linux desktop from Emacs.
15993 With @code{desktop-environment}, you can control the brightness and volume as
15994 well as take screenshots and lock your screen. The package depends on the
15995 availability of shell commands to do the hard work for us. These commands can
15996 be changed by customizing the appropriate variables.")
15997 (license license:gpl3+)))
15998
15999 (define-public emacs-org-caldav
16000 (let ((commit "a563500c9884f38ce08793e2964f8274adde163d"))
16001 (package
16002 (name "emacs-org-caldav")
16003 (version (git-version "0.0.0" "1" commit))
16004 (source
16005 (origin
16006 (method git-fetch)
16007 (uri (git-reference
16008 (url "https://github.com/dengste/org-caldav.git")
16009 (commit commit)))
16010 (file-name (git-file-name name version))
16011 (sha256
16012 (base32
16013 "18qi1iv5dc0gsvkv9ifal3cjpm568nlb907v8a53cnm4439x1l0l"))))
16014 (build-system emacs-build-system)
16015 (arguments
16016 ;; Tests require to have two specific calendars on a test server.
16017 `(#:exclude '("^org-caldav-testsuite\\.el")))
16018 (propagated-inputs
16019 `(("emacs-org" ,emacs-org)))
16020 (home-page "https://github.com/dengste/org-caldav")
16021 (synopsis "Sync Org files with external calendars via the CalDAV protocol")
16022 (description "Synchronize between events in Org files and a CalDAV
16023 calendar.")
16024 (license license:gpl3+))))
16025
16026 (define-public emacs-zotxt
16027 (package
16028 (name "emacs-zotxt")
16029 (version "20180518")
16030 (source
16031 (origin
16032 (method git-fetch)
16033 (uri (git-reference
16034 (url "https://github.com/egh/zotxt-emacs.git")
16035 (commit "23a4a9f74a658222027d53a9a83cd4bcc583ca8b")))
16036 (file-name (git-file-name name version))
16037 (sha256
16038 (base32 "09fq3w9yk9kn6bz7y9kgpiw612dvj3yzsdk734js6zgb0p8lfd2c"))))
16039 (build-system emacs-build-system)
16040 (propagated-inputs
16041 `(("emacs-deferred" ,emacs-deferred)
16042 ("emacs-request" ,emacs-request)))
16043 (home-page "https://github.com/egh/zotxt-emacs")
16044 (synopsis "Integrate Emacs with Zotero")
16045 (description "This package provides two integration features between Emacs
16046 and the Zotero research assistant: Insertion of links to Zotero items into an
16047 Org-mode file, and citations of Zotero items in Pandoc Markdown files.")
16048 (license license:gpl3+)))
16049
16050 (define-public emacs-evil-magit
16051 (let ((commit "4b66a1db8285457147a5436f209391016a819ea1")
16052 (revision "3"))
16053 (package
16054 (name "emacs-evil-magit")
16055 (version (git-version "0.4.2" revision commit))
16056 (source
16057 (origin
16058 (method git-fetch)
16059 (uri (git-reference
16060 (url "https://github.com/emacs-evil/evil-magit")
16061 (commit commit)))
16062 (file-name (git-file-name name version))
16063 (sha256
16064 (base32
16065 "0kkmbswfh34k3amfl3v140vsnz1gq4n4mg9g4khjd9yjph3zms4h"))))
16066 (build-system emacs-build-system)
16067 (propagated-inputs
16068 `(("emacs-evil" ,emacs-evil)
16069 ("magit" ,emacs-magit)))
16070 (arguments
16071 `(#:tests? #t
16072 #:test-command '("emacs" "-Q" "-batch"
16073 "-L" "."
16074 "-l" "evil-magit-tests"
16075 "-f" "ert-run-tests-batch-and-exit")))
16076 (home-page
16077 "https://github.com/emacs-evil/evil-magit")
16078 (synopsis "Evil-based key bindings for Magit")
16079 (description
16080 "This Emacs library configures Magit and Evil to play well with each other.
16081 For some background see @url{https://github.com/magit/evil-magit/issues/1}.
16082 See the README at @url{https://github.com/justbur/evil-magit} for a table
16083 describing the key binding changes.")
16084 (license license:gpl3+))))
16085
16086 (define-public emacs-evil-multiedit
16087 (package
16088 (name "emacs-evil-multiedit")
16089 (version "1.3.9")
16090 (source
16091 (origin
16092 (method git-fetch)
16093 (uri (git-reference
16094 (url "https://github.com/hlissner/evil-multiedit")
16095 (commit (string-append "v" version))))
16096 (file-name (git-file-name name version))
16097 (sha256
16098 (base32
16099 "19h3kqylqzbjv4297wkzzxdmn9yxbg6z4ga4ssrqri90xs7m3rw3"))))
16100 (build-system emacs-build-system)
16101 (propagated-inputs
16102 `(("emacs-evil" ,emacs-evil)
16103 ("emacs-iedit" ,emacs-iedit)))
16104 (native-inputs
16105 `(("emacs-ert-runner" ,emacs-ert-runner)))
16106 (arguments
16107 `(#:phases
16108 (modify-phases %standard-phases
16109 (add-before 'check 'fix-makefile
16110 (lambda _
16111 (substitute* "Makefile"
16112 (("@cask exec ") ""))
16113 #t)))
16114 #:tests? #t
16115 #:test-command '("make" "test")))
16116 (home-page
16117 "https://github.com/hlissner/evil-multiedit")
16118 (synopsis "Multiple cursors for Evil mode")
16119 (description
16120 "This plugin was an answer to the lack of proper multiple cursor support
16121 in Emacs+Evil. It allows you to select and edit matches interactively,
16122 integrating @code{iedit-mode} into Evil mode with an attempt at sensible
16123 defaults.")
16124 (license license:gpl3+)))
16125
16126 (define-public emacs-evil-mc
16127 (let ((commit "1cabb869fe70cef49f7dc06f015c3ade1a969c8c")
16128 (revision "2"))
16129 (package
16130 (name "emacs-evil-mc")
16131 (version (git-version "0.0.3" revision commit))
16132 (source
16133 (origin
16134 (method git-fetch)
16135 (uri (git-reference
16136 (url "https://github.com/gabesoft/evil-mc.git")
16137 (commit commit)))
16138 (file-name (git-file-name name version))
16139 (sha256
16140 (base32 "0p83p90faq1p02lmsfs7zrnky3cyzgy8z4m83a81r9kakjzhkrnb"))))
16141 (build-system emacs-build-system)
16142 (propagated-inputs
16143 `(("emacs-evil" ,emacs-evil)))
16144 (native-inputs
16145 `(("emacs-espuds" ,emacs-espuds)))
16146 (home-page "https://github.com/gabesoft/evil-mc")
16147 (synopsis "Interactive search compatible with @code{multiple-cursors}")
16148 (description "This package can be used with @code{multiple-cursors} to
16149 provide an incremental search that moves all fake cursors in sync.")
16150 (license license:expat))))
16151
16152 (define-public emacs-evil-org
16153 (let ((commit "9d4be14118bf27094a30dbff349b815f098aacbf"))
16154 (package
16155 (name "emacs-evil-org")
16156 (version (git-version "1.0.2" "1" commit))
16157 (source
16158 (origin
16159 (method git-fetch)
16160 (uri (git-reference
16161 (url "https://github.com/Somelauw/evil-org-mode")
16162 (commit commit)))
16163 (file-name (git-file-name name version))
16164 (sha256
16165 (base32
16166 "1fxxfkinb0gq4p5b686r7z4jrkv98zfgh5z889zkjacncv8ibswn"))))
16167 (build-system emacs-build-system)
16168 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
16169 (home-page
16170 "https://github.com/Somelauw/evil-org-mode")
16171 (synopsis "Evil keybindings for Org mode")
16172 (description
16173 "This package adds supplemental Evil mode key-bindings to Emacs
16174 Org-mode. It features:
16175 @itemize
16176 @item normal, visual and insert mode bindings;
16177 @item key bindings organised in key themes;
16178 @item operators like > and < to work on headings;
16179 @item text objects;
16180 @item table support;
16181 @item calendar (date selection) support;
16182 @item agenda support.
16183 @end itemize\n")
16184 (license license:gpl3+))))
16185
16186 (define-public emacs-debpaste
16187 (package
16188 (name "emacs-debpaste")
16189 (version "0.1.5")
16190 (home-page "https://github.com/alezost/debpaste.el")
16191 (source
16192 (origin
16193 (method git-fetch)
16194 (uri (git-reference (url home-page)
16195 (commit (string-append "v" version))))
16196 (file-name (git-file-name name version))
16197 (sha256
16198 (base32
16199 "1wi70r56pd5z0x4dp4m58p9asq03j74kdm4fi9vai83vsl2z9amq"))))
16200 (build-system emacs-build-system)
16201 (propagated-inputs
16202 `(("emacs-xml-rpc" ,emacs-xml-rpc)))
16203 (synopsis "Manipulate pastes from the Debian Pastezone")
16204 (description "Debpaste is an Emacs interface for the Debian Pastezone,
16205 allowing you to receive, post, and delete pastes. It communicates with the
16206 server using XML-RPC.")
16207 (license license:gpl3+)))
16208
16209 (define-public emacs-xml-rpc
16210 (let ((commit "8f624f8b964e9145acb504e4457c9510e87dd93c")
16211 (revision "1"))
16212 (package
16213 (name "emacs-xml-rpc")
16214 (version (git-version "1.6.12" revision commit))
16215 (source
16216 (origin
16217 (method git-fetch)
16218 (uri (git-reference
16219 (url "https://github.com/hexmode/xml-rpc-el")
16220 (commit commit)))
16221 (file-name (git-file-name name version))
16222 (sha256
16223 (base32
16224 "0xa54z52rsfl3n0xgmbycj4zazp8ksgdwcq56swzs6wp72zlalmj"))))
16225 (build-system emacs-build-system)
16226 (home-page "https://github.com/hexmode/xml-rpc-el")
16227 (synopsis "XML-RPC client for Emacs")
16228 (description "This package provides an XML-RPC client for Emacs capable
16229 of both synchronous and asynchronous method calls using the @code{url}
16230 package's async retrieval functionality. @file{xml-rpc.el} represents XML-RPC
16231 datatypes as Lisp values, automatically converting to and from the XML
16232 datastructures as needed, both for method parameters and return values, making
16233 using XML-RPC methods fairly transparent to the Lisp code.")
16234 (license license:gpl3+))))
16235
16236 (define-public emacs-xpm
16237 (package
16238 (name "emacs-xpm")
16239 (version "1.0.4")
16240 (source
16241 (origin
16242 (method url-fetch)
16243 (uri (string-append "https://elpa.gnu.org/packages/xpm-"
16244 version ".tar"))
16245 (sha256
16246 (base32
16247 "075miyashh9cm3b0gk6ngld3rm8bfgnh4qxnhxmmvjgzf6a64grh"))))
16248 (build-system emacs-build-system)
16249 (home-page "https://elpa.gnu.org/packages/xpm.html")
16250 (synopsis "XPM image editing mode for Emacs")
16251 (description "This Emacs package makes editing XPM images easy (and maybe
16252 fun). Editing is done directly on the (textual) image format, for maximal
16253 cohesion with the Emacs Way.")
16254 (license license:gpl3+)))
16255
16256 (define-public emacs-fish-completion
16257 (package
16258 (name "emacs-fish-completion")
16259 (version "1.2")
16260 (source
16261 (origin
16262 (method git-fetch)
16263 (uri (git-reference
16264 (url "https://gitlab.com/Ambrevar/emacs-fish-completion.git")
16265 (commit version)))
16266 (file-name (git-file-name name version))
16267 (sha256
16268 (base32
16269 "17lqip1i1rrsvxzz4bx9rqf1fvwd3hriwg3sj6qxmfc8pylnp37q"))))
16270 (build-system emacs-build-system)
16271 (inputs `(("fish" ,fish)))
16272 (arguments
16273 `(#:phases
16274 (modify-phases %standard-phases
16275 (add-after 'unpack 'configure
16276 (lambda* (#:key inputs outputs #:allow-other-keys)
16277 (let ((fish (assoc-ref inputs "fish")))
16278 ;; Specify the absolute file names of the various
16279 ;; programs so that everything works out-of-the-box.
16280 (make-file-writable "fish-completion.el")
16281 (emacs-substitute-variables
16282 "fish-completion.el"
16283 ("fish-completion-command"
16284 (string-append fish "/bin/fish")))))))))
16285 (home-page
16286 "https://gitlab.com/Ambrevar/emacs-fish-completion")
16287 (synopsis "Fish completion for Emacs pcomplete")
16288 (description
16289 "This package provides completion for the Fish shell to pcomplete (used
16290 by shell and Eshell). You can set it up globally with:
16291
16292 @example
16293 (when (and (executable-find \"fish\")
16294 (require 'fish-completion nil t))
16295 (global-fish-completion-mode))
16296 @end example
16297
16298 Alternatively, you can call the @code{fish-completion-mode} manually or in
16299 shell/Eshell mode hook.
16300
16301 The package @code{emacs-bash-completion} is an optional dependency: if available,
16302 @code{fish-completion-complete} can be configured to fall back on bash to further
16303 try completing. See @code{fish-completion-fallback-on-bash-p}.")
16304 (license license:gpl3+)))
16305
16306 (define-public emacs-gif-screencast
16307 (package
16308 (name "emacs-gif-screencast")
16309 (version "1.1")
16310 (source
16311 (origin
16312 (method git-fetch)
16313 (uri (git-reference
16314 (url "https://gitlab.com/Ambrevar/emacs-gif-screencast.git")
16315 (commit version)))
16316 (file-name (git-file-name name version))
16317 (sha256
16318 (base32
16319 "1g1by8lvf8c9vzm4wwsi5kp285kaj0ahsl54048ympin4pi0njw9"))))
16320 (build-system emacs-build-system)
16321 (inputs
16322 `(("scrot" ,scrot)
16323 ("imagemagick" ,imagemagick)
16324 ("gifsicle" ,gifsicle)))
16325 (arguments
16326 `(#:phases
16327 (modify-phases %standard-phases
16328 (add-after 'unpack 'configure
16329 (lambda* (#:key inputs outputs #:allow-other-keys)
16330 (let ((scrot (assoc-ref inputs "scrot"))
16331 (imagemagick (assoc-ref inputs "imagemagick"))
16332 (gifsicle (assoc-ref inputs "gifsicle")))
16333 (make-file-writable "gif-screencast.el")
16334 ;; Specify the absolute file names of the various
16335 ;; programs so that everything works out-of-the-box.
16336 (emacs-substitute-variables
16337 "gif-screencast.el"
16338 ("gif-screencast-program"
16339 (string-append scrot "/bin/scrot"))
16340 ("gif-screencast-convert-program"
16341 (string-append imagemagick "/bin/convert"))
16342 ("gif-screencast-cropping-program"
16343 (string-append imagemagick "/bin/mogrify"))
16344 ("gif-screencast-optimize-program"
16345 (string-append gifsicle "/bin/gifsicle")))))))))
16346 (home-page
16347 "https://gitlab.com/Ambrevar/emacs-gif-screencast")
16348 (synopsis "One-frame-per-action GIF recording")
16349 (description
16350 "Call @code{gif-screencast} to start a recording.
16351 A screenshot is taken for every user action. Call
16352 @code{gif-screencast-stop} (<f9> by default) to finish recording and create
16353 the GIF result.")
16354 (license license:gpl3+)))
16355
16356 (define-public emacs-google-translate
16357 (package
16358 (name "emacs-google-translate")
16359 (version "0.11.18")
16360 (source
16361 (origin
16362 (method git-fetch)
16363 (uri (git-reference
16364 (url "https://github.com/atykhonov/google-translate/")
16365 (commit (string-append "v" version))))
16366 (file-name (git-file-name name version))
16367 (sha256
16368 (base32
16369 "1kbiqisqyk31l94gxsirhnrdkj51ylgcb16fk2wf7zigmf13jqzp"))))
16370 (build-system emacs-build-system)
16371 (home-page "https://github.com/atykhonov/google-translate")
16372 (synopsis "Emacs interface to Google Translate")
16373 (description
16374 "This package provides an Emacs interface to the Google Translate
16375 on-line service.")
16376 (license license:gpl3+)))
16377
16378 (define-public emacs-helm-company
16379 (package
16380 (name "emacs-helm-company")
16381 (version "0.2.5")
16382 (source
16383 (origin
16384 (method git-fetch)
16385 (uri (git-reference
16386 (url "https://github.com/Sodel-the-Vociferous/helm-company")
16387 (commit (string-append "v" version))))
16388 (file-name (git-file-name name version))
16389 (sha256
16390 (base32
16391 "1ci37w6ahnqrfpb284gjvxmimlf61sdxb9k192yy9q983cksv2hx"))))
16392 (build-system emacs-build-system)
16393 (propagated-inputs
16394 `(("emacs-helm" ,emacs-helm)
16395 ("emacs-company" ,emacs-company)))
16396 (native-inputs
16397 `(("emacs-ert-runner" ,emacs-ert-runner)))
16398 (arguments
16399 `(#:tests? #t
16400 #:test-command '("ert-runner")))
16401 (home-page "https://github.com/Sodel-the-Vociferous/helm-company")
16402 (synopsis "Helm interface for company-mode")
16403 (description
16404 "This is a Helm interface to company-mode, a text completion
16405 framework.")
16406 (license license:gpl3+)))
16407
16408 (define-public emacs-helm-descbinds
16409 (let ((commit "033be73f21778633813264ce1634a6e1ad873d8e"))
16410 (package
16411 (name "emacs-helm-descbinds")
16412 (version (git-version "1.13" "1" commit))
16413 (source
16414 (origin
16415 (method git-fetch)
16416 (uri (git-reference
16417 (url "https://github.com/emacs-helm/helm-descbinds")
16418 (commit commit)))
16419 (file-name (git-file-name name version))
16420 (sha256
16421 (base32
16422 "1n89p56qwa243w1c85i5awnaf7piwjsvfi7nmnsrwm33hix5dknk"))))
16423 (build-system emacs-build-system)
16424 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
16425 (home-page "https://github.com/emacs-helm/helm-descbinds")
16426 (synopsis "Convenient @code{describe-bindings} with Helm")
16427 (description
16428 "This package is a replacement of @code{describe-bindings} for Helm.
16429 @code{describe-bindings} is replaced with @code{helm-descbinds}. As usual,
16430 type @code{C-h b}, or any incomplete key sequence plus @code{C-h}, to run
16431 @code{helm-descbinds}. The bindings are presented in a similar way as
16432 @code{describe-bindings} does, but you can use completion to find the command
16433 you searched for and execute it, or view its documentation.")
16434 (license license:gpl3+))))
16435
16436 (define-public emacs-helm-emms
16437 (let ((commit "b785cb845a98a643eba9d5d53c9c0b4e6810a3cd"))
16438 (package
16439 (name "emacs-helm-emms")
16440 (version (git-version "1.3" "2" commit))
16441 (source
16442 (origin
16443 (method git-fetch)
16444 (uri (git-reference
16445 (url "https://github.com/emacs-helm/helm-emms")
16446 (commit commit)))
16447 (file-name (git-file-name name version))
16448 (sha256
16449 (base32
16450 "1595r09y3rmwd46nnhvjja3hb8j2ila295ijxv61cg52ws4wginh"))))
16451 (build-system emacs-build-system)
16452 (propagated-inputs
16453 `(("emacs-helm" ,emacs-helm)
16454 ("emacs-emms" ,emacs-emms)))
16455 (home-page
16456 "https://github.com/emacs-helm/helm-emms")
16457 (synopsis "Emms for Helm")
16458 (description "Helm interface for Emms to browse all tracks and all folders
16459 from @code{emms-source-file-default-directory}.")
16460 (license license:gpl3+))))
16461
16462 (define-public emacs-helm-exwm
16463 (package
16464 (name "emacs-helm-exwm")
16465 (version "0.0.2")
16466 (source
16467 (origin
16468 (method git-fetch)
16469 (uri (git-reference
16470 (url "https://github.com/emacs-helm/helm-exwm.git")
16471 (commit version)))
16472 (file-name (git-file-name name version))
16473 (sha256
16474 (base32 "0g4k01ps14bp2az8v6dcag9llg045k2b4kdis81xx4lvw76znr9v"))))
16475 (build-system emacs-build-system)
16476 (propagated-inputs
16477 `(("emacs-helm" ,emacs-helm)
16478 ("emacs-exwm" ,emacs-exwm)))
16479 (home-page
16480 "https://github.com/emacs-helm/helm-exwm")
16481 (synopsis "Helm for EXWM buffers")
16482 (description
16483 "@code{helm-exwm} runs a Helm session over the list of EXWM buffers.
16484 @code{helm-exwm-switch} is a convenience X application launcher using Helm to
16485 switch between the various windows of one or several specific applications.
16486 See @code{helm-exwm-switch-browser} for an example.")
16487 (license license:gpl3+)))
16488
16489 (define-public emacs-helm-flycheck
16490 (let ((commit "3cf7d3bb194acacc6395f88360588013d92675d6"))
16491 (package
16492 (name "emacs-helm-flycheck")
16493 (version (git-version "0.4" "1" commit))
16494 (source
16495 (origin
16496 (method git-fetch)
16497 (uri (git-reference
16498 (url "https://github.com/yasuyk/helm-flycheck")
16499 (commit commit)))
16500 (file-name (git-file-name name version))
16501 (sha256
16502 (base32
16503 "1a2yfxhz04klwhcandqvfzysxp6b7bxyxx1xk1x3kds5hif5fkl4"))))
16504 (build-system emacs-build-system)
16505 (propagated-inputs
16506 `(("emacs-dash" ,emacs-dash)
16507 ("emacs-flycheck" ,emacs-flycheck)
16508 ("emacs-helm" ,emacs-helm)))
16509 (home-page "https://github.com/yasuyk/helm-flycheck")
16510 (synopsis "Show Flycheck errors with Helm")
16511 (description
16512 "This integrates Flycheck with Helm.")
16513 (license license:gpl3+))))
16514
16515 (define-public emacs-helm-ls-git
16516 (let ((commit "76654c776a7f6e2e5290645e748aac2a746f7daa"))
16517 (package
16518 (name "emacs-helm-ls-git")
16519 (version (git-version "1.9.1" "1" commit))
16520 (source
16521 (origin
16522 (method git-fetch)
16523 (uri (git-reference
16524 (url "https://github.com/emacs-helm/helm-ls-git")
16525 (commit commit)))
16526 (file-name (git-file-name name version))
16527 (sha256
16528 (base32
16529 "0vsq1n3xl3ghy5zik2scm7jrs501n4kybdqd6yw6j0cv4jxdqbr0"))))
16530 (build-system emacs-build-system)
16531 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
16532 (home-page "https://github.com/emacs-helm/helm-ls-git")
16533 (synopsis "Helm interface for listing the files in a Git repository")
16534 (description
16535 "This package provides a Helm interface for Git files.
16536 @itemize
16537 @item Display the open buffers in project.
16538 @item Display a status source showing state of project (modified files etc.).
16539 @item Display a list of all files in project under git control.
16540 @item Quickly look at diffs of modified files.
16541 @item Allow switching to @code{git status} with your preferred frontend
16542 (vc-dir, Magit,etc.).
16543 @item Full integration of git-grep, also allow usage of @code{helm-grep} (you
16544 can use ack-grep instead of grep).
16545 @item Integrate usage of gid from id-utils.
16546 @item Full integration with @code{helm-find-files}, allow you to browse
16547 projects unrelated to current-buffer.
16548 @item In addition, all actions of type files and buffers are provided.
16549 @end itemize\n")
16550 (license license:gpl3+))))
16551
16552 (define-public emacs-helm-mu
16553 (let ((commit "77e6fea24e01481418738421dbcfe28ef1bd63cf"))
16554 (package
16555 (name "emacs-helm-mu")
16556 (version (git-version "20180513" "1" commit))
16557 (source
16558 (origin
16559 (method git-fetch)
16560 (uri (git-reference
16561 (url "https://github.com/emacs-helm/helm-mu.git")
16562 (commit commit)))
16563 (file-name (git-file-name name version))
16564 (sha256
16565 (base32 "1lh0ahxdc5b2z18m9p30gwg8sbg33sjwkjr38p7h5xsm5fm7i0fz"))))
16566 (build-system emacs-build-system)
16567 (propagated-inputs
16568 `(("emacs-helm" ,emacs-helm)
16569 ("mu" ,mu)))
16570 (home-page
16571 "https://github.com/emacs-helm/helm-mu")
16572 (synopsis
16573 "Helm sources for searching emails and contacts")
16574 (description
16575 "Helm sources for searching emails and contacts using @code{mu} and
16576 @code{mu4e}. Mu is an indexer for maildirs and mu4e is a mutt-like MUA for
16577 Emacs build on top of mu. Mu is highly efficient making it possible to get
16578 instant results even for huge maildirs. It also provides search operators,
16579 e.g: @code{from:Peter to:Anne flag:attach search term}.")
16580 (license license:gpl3+))))
16581
16582 (define-public emacs-helm-pass
16583 (package
16584 (name "emacs-helm-pass")
16585 (version "0.3")
16586 (source
16587 (origin
16588 (method git-fetch)
16589 (uri (git-reference
16590 (url "https://github.com/emacs-helm/helm-pass")
16591 (commit version)))
16592 (file-name (git-file-name name version))
16593 (sha256
16594 (base32
16595 "0vglaknmir3yv4iwibwn8r40ran8d04gcyp99hx73ldmf3zqpnxv"))))
16596 (build-system emacs-build-system)
16597 (propagated-inputs
16598 `(("emacs-helm" ,emacs-helm)
16599 ("emacs-password-store" ,emacs-password-store)))
16600 (home-page "https://github.com/emacs-helm/helm-pass")
16601 (synopsis "Helm interface to pass, the standard Unix password manager")
16602 (description
16603 "Users of @code{helm-pass} may also be interested in functionality
16604 provided by other Emacs packages dealing with pass:
16605 @itemize
16606 @item @code{emacs-password-store}, which @code{helm-pass} relies on.
16607 @item @code{emacs-pass}, a major mode for @code{pass}.
16608 @item @code{auth-source-pass.el}: integration of Emacs' auth-source with
16609 @code{pass}, included in Emacs 26+).
16610 @end itemize\n")
16611 (license license:gpl3+)))
16612
16613 (define-public emacs-image+
16614 (let ((commit "6834d0c09bb4df9ecc0d7a559bd7827fed48fffc"))
16615 (package
16616 (name "emacs-image+")
16617 (version (git-version "0.6.2" "1" commit))
16618 (source
16619 (origin
16620 (method git-fetch)
16621 (uri (git-reference
16622 (url "https://github.com/mhayashi1120/Emacs-imagex")
16623 (commit commit)))
16624 (file-name (git-file-name name version))
16625 (sha256
16626 (base32
16627 "0v66wk9nh0raih4jhrzmmyi5lbysjnmbv791vm2230ffi2hmwxnd"))))
16628 (build-system emacs-build-system)
16629 (inputs `(("imagemagick" ,imagemagick)))
16630 (arguments
16631 `(#:phases
16632 (modify-phases %standard-phases
16633 (add-after 'unpack 'configure
16634 (lambda* (#:key inputs outputs #:allow-other-keys)
16635 (let ((imagemagick (assoc-ref inputs "imagemagick")))
16636 ;; Specify the absolute file names of the various
16637 ;; programs so that everything works out-of-the-box.
16638 (chmod "image+.el" #o666)
16639 (emacs-substitute-variables
16640 "image+.el"
16641 ("imagex-convert-command"
16642 (string-append imagemagick "/bin/convert"))
16643 ("imagex-identify-command"
16644 (string-append imagemagick "/bin/identify")))))))))
16645 (home-page "https://github.com/mhayashi1120/Emacs-imagex")
16646 (synopsis "Image manipulation extensions for Emacs")
16647 (description
16648 "Image+ provides keybindings allowing you to zoom in or zoom out of an
16649 image, rotate it, save modified images, and more.")
16650 (license license:gpl3+))))
16651
16652 (define-public emacs-package-lint
16653 (let ((commit "69bb89d00ba212b734c676ad056aa793c450b288"))
16654 (package
16655 (name "emacs-package-lint")
16656 (version (git-version "0.5" "1" commit))
16657 (source
16658 (origin
16659 (method git-fetch)
16660 (uri (git-reference
16661 (url "https://github.com/purcell/package-lint")
16662 (commit commit)))
16663 (file-name (git-file-name name version))
16664 (sha256
16665 (base32
16666 "1hfricsgmy3x9snnd2p4xq6vnnv94qdsxxnxp07b3hqc9bhw31rq"))))
16667 (build-system emacs-build-system)
16668 (home-page "https://github.com/purcell/package-lint")
16669 (synopsis "Linting library for elisp package authors")
16670 (description
16671 "This provides a list of issues with the Emacs package metadata of a file,
16672 e.g. the package dependencies it requires. See function
16673 @code{package-lint-buffer}. Checks will currently be enabled only if a
16674 \"Package-Requires:\" or \"Package-Version:\" header is present in the
16675 file.")
16676 (license license:gpl3+))))
16677
16678 (define-public emacs-picpocket
16679 (let ((version "40")
16680 (commit "6fd88b8711c4370662c0f9c462170187d092a046"))
16681 (package
16682 (name "emacs-picpocket")
16683 (version version)
16684 (source
16685 (origin
16686 (method git-fetch)
16687 (uri (git-reference
16688 (url "https://github.com/johanclaesson/picpocket")
16689 (commit commit)))
16690 (file-name (git-file-name name version))
16691 (sha256
16692 (base32 "1mdzzxf7xm7zwrpnqqxa27d1cr31pd72d7ilbwljv13qp177a3yw"))))
16693 (build-system emacs-build-system)
16694 (arguments ; needed for running tests
16695 `(#:tests? #t
16696 #:emacs ,emacs
16697 #:test-command '("emacs" "--batch"
16698 "-l" "picpocket-test.el"
16699 "-f" "ert-run-tests-batch-and-exit")))
16700 (home-page "https://github.com/johanclaesson/picpocket")
16701 (synopsis "Image viewer for Emacs")
16702 (description
16703 "Picpocket is an image viewer for GNU Emacs. It has commands for:
16704
16705 @itemize
16706 @item File operations on the picture files (delete, move, copy, hardlink).
16707 @item Scale and rotate the picture.
16708 @item Associate pictures with tags which are saved to disk.
16709 @item Filter pictures according to tags.
16710 @item Customizing keystrokes for quick tagging and file operations.
16711 @item Undo and browse history of undoable commands.
16712 @end itemize")
16713 (license license:gpl3+))))
16714
16715 (define-public emacs-mu4e-conversation
16716 (let ((commit "98110bb9c300fc9866dee8e0023355f9f79c9b96")
16717 (revision "5"))
16718 (package
16719 (name "emacs-mu4e-conversation")
16720 (version (git-version "0.0.1" revision commit))
16721 (source
16722 (origin
16723 (method git-fetch)
16724 (uri (git-reference
16725 (url "https://gitlab.com/Ambrevar/mu4e-conversation.git")
16726 (commit commit)))
16727 (file-name (git-file-name name version))
16728 (sha256
16729 (base32
16730 "080s96jkcw2p288sp1vgds91rgl693iz6hi2dv56p2ih0nnivwlg"))))
16731 (build-system emacs-build-system)
16732 (propagated-inputs
16733 `(("mu" ,mu)))
16734 (home-page
16735 "https://gitlab.com/Ambrevar/mu4e-conversation")
16736 (synopsis
16737 "Show a complete thread in a single buffer")
16738 (description
16739 "This package offers an alternate view to mu4e's e-mail display. It
16740 shows all e-mails of a thread in a single view, where each correspondent has
16741 their own face. Threads can be displayed linearly (in which case e-mails are
16742 displayed in chronological order) or as an Org document where the node tree
16743 maps the thread tree.")
16744 (license license:gpl3+))))
16745
16746 (define-public emacs-pinentry
16747 (let ((commit "dcc9ba03252ee5d39e03bba31b420e0708c3ba0c")
16748 (revision "1"))
16749 (package
16750 (name "emacs-pinentry")
16751 (version (git-version "0.1" revision commit))
16752 (source
16753 (origin
16754 (method url-fetch)
16755 (uri (string-append
16756 "http://git.savannah.gnu.org/cgit/emacs/elpa.git/plain"
16757 "/packages/pinentry/pinentry.el?id=" commit))
16758 (file-name (string-append "pinentry.el"))
16759 (sha256
16760 (base32
16761 "1lf30q6r8nz5cjzclbb9bbymsk2y75nskvb55hnjdv93gr3j0sik"))))
16762 (build-system emacs-build-system)
16763 (propagated-inputs
16764 `(("gnupg" ,gnupg)))
16765 (home-page "https://elpa.gnu.org/packages/pinentry.html")
16766 (synopsis "GnuPG Pinentry server implementation")
16767 (description
16768 "This package allows GnuPG passphrase to be prompted through the
16769 minibuffer instead of graphical dialog.
16770
16771 To use, add @code{allow-emacs-pinentry} to @code{~/.gnupg/gpg-agent.conf},
16772 reload the configuration with @code{gpgconf --reload gpg-agent}, and start the
16773 server with @code{M-x pinentry-start}.")
16774 (license license:gpl3+))))
16775
16776 (define-public emacs-so-long
16777 (let ((commit "cfae473b1bf65f78ddb015159e667ec0103d881c")
16778 (revision "2"))
16779 (package
16780 (name "emacs-so-long")
16781 (version (git-version "1.0" revision commit))
16782 (source
16783 (origin
16784 (method git-fetch)
16785 (uri (git-reference
16786 (url "https://git.savannah.gnu.org/git/so-long.git")
16787 (commit commit)))
16788 (file-name (git-file-name name version))
16789 (sha256
16790 (base32
16791 "0g943n5cl9lz5s7hszg6yvp10xd1xvd8mfgxyg0yckmp8fqkswin"))))
16792 (build-system emacs-build-system)
16793 (home-page "https://www.emacswiki.org/emacs/SoLong")
16794 (synopsis "Improve performance in files with long lines")
16795 (description "This package improves the performance of Emacs when
16796 viewing files with long lines.")
16797 (license license:gpl3+))))
16798
16799 (define-public emacs-github-review
16800 (let ((commit "a13a3b4f1b6114a32af843971a145ab880f51232")
16801 (revision "2"))
16802 (package
16803 (name "emacs-github-review")
16804 (version (git-version "0.1" revision commit))
16805 (source
16806 (origin
16807 (method git-fetch)
16808 (uri (git-reference
16809 (url "https://github.com/charignon/github-review")
16810 (commit commit)))
16811 (file-name (git-file-name name version))
16812 (sha256
16813 (base32
16814 "0injfpxzgfhmqalba845j5l5cdcxxqz43knhxwinf36g52nfabl0"))))
16815 (build-system emacs-build-system)
16816 (inputs
16817 `(("emacs-dash" ,emacs-dash)
16818 ("emacs-s" ,emacs-s)
16819 ("emacs-ghub" ,emacs-ghub)))
16820 (native-inputs
16821 `(("emacs-buttercup" ,emacs-buttercup)
16822 ("emacs-undercover" ,emacs-undercover)))
16823 (arguments
16824 `(#:tests? #t
16825 #:test-command '("buttercup" "-L" "test/github-review-test.el")))
16826 (home-page "https://github.com/charignon/github-review")
16827 (synopsis "Review GitHub pull requests within Emacs")
16828 (description "This package provides commands to pull in, comment on, and
16829 accept and reject GitHub pull requests.")
16830 (license license:gpl3+))))
16831
16832 (define-public emacs-deadgrep
16833 (let ((commit "3fc7ca1f58e190f0c80da455a0e40187e673020e")
16834 (revision "2"))
16835 (package
16836 (name "emacs-deadgrep")
16837 (version (git-version "0.8" revision commit))
16838 (source
16839 (origin
16840 (method git-fetch)
16841 (uri (git-reference
16842 (url "https://github.com/Wilfred/deadgrep")
16843 (commit commit)))
16844 (file-name (git-file-name name version))
16845 (sha256
16846 (base32
16847 "016gwqxd9aqzjw3hqv3vdf8cs6la8r65g6azg5rlmjqwfx3vsaha"))))
16848 (build-system emacs-build-system)
16849 (inputs
16850 `(("emacs-dash" ,emacs-dash)
16851 ("emacs-s" ,emacs-s)
16852 ("emacs-spinner" ,emacs-spinner)))
16853 (home-page "https://github.com/Wilfred/deadgrep")
16854 (synopsis "Frontend for @code{ripgrep}")
16855 (description "This package provides an Emacs interface for performing
16856 searches with @code{ripgrep}.")
16857 (license license:gpl3+))))
16858
16859 (define-public emacs-focus
16860 (let ((commit "ab42b8779929beeb7878c7fb3d3ccd80d9327c7f")
16861 (version "0.1.1")
16862 (revision "1"))
16863 (package
16864 (name "emacs-focus")
16865 (version (git-version version revision commit))
16866 (source
16867 (origin
16868 (method git-fetch)
16869 (uri (git-reference
16870 (url "https://github.com/larstvei/Focus")
16871 (commit commit)))
16872 (file-name (git-file-name name version))
16873 (sha256
16874 (base32
16875 "079v1syid7h2vr2ya6hs6hl0pgj60qdsw60mqw4cj2zllmkrkwj4"))))
16876 (build-system emacs-build-system)
16877 (home-page "https://github.com/larstvei/Focus")
16878 (synopsis "Minor mode for focusing in on relevant text")
16879 (description "This package provides a minor mode that dims the color of
16880 text in neighboring sections.")
16881 (license license:gpl3+))))
16882
16883 (define-public emacs-pandoc-mode
16884 (package
16885 (name "emacs-pandoc-mode")
16886 (version "2.27.2")
16887 (source
16888 (origin
16889 (method git-fetch)
16890 (uri (git-reference
16891 (url "https://github.com/joostkremers/pandoc-mode")
16892 (commit version)))
16893 (file-name (git-file-name name version))
16894 (sha256
16895 (base32
16896 "04bqc7mhgkfks3nsvimd3rrriv4nqbksmv5ahlbbd03aqa2b0vrv"))))
16897 (build-system emacs-build-system)
16898 (propagated-inputs
16899 `(("emacs-dash" ,emacs-dash)
16900 ("emacs-hydra" ,emacs-hydra)))
16901 (home-page "https://github.com/joostkremers/pandoc-mode")
16902 (synopsis "Minor mode for interacting with Pandoc")
16903 (description "This package provides a Hydra menu for interacting with the
16904 Pandoc, the document-conversion tool.")
16905 (license license:bsd-3)))
16906
16907 (define-public emacs-hlint-refactor-mode
16908 (let ((commit "c4307f86aad6d02e32e9b30cb6edc115584c791c")
16909 (revision "1"))
16910 (package
16911 (name "emacs-hlint-refactor-mode")
16912 (version (git-version "0.0.1" revision commit))
16913 (source
16914 (origin
16915 (method git-fetch)
16916 (uri (git-reference
16917 (url "https://github.com/mpickering/hlint-refactor-mode")
16918 (commit commit)))
16919 (file-name (git-file-name name version))
16920 (sha256
16921 (base32
16922 "1c71w9s34n0i7mm4njchxn6s3ri1y6mh3akgbg4nq41d42h8iap3"))))
16923 (build-system emacs-build-system)
16924 (propagated-inputs
16925 `(("apply-refact" ,apply-refact)
16926 ("hlint" ,hlint)))
16927 (home-page "https://github.com/mpickering/hlint-refactor-mode")
16928 (synopsis "Emacs bindings for @code{hlint}'s @code{--refactor} option")
16929 (description "This package applies refactoring suggestions from
16930 @code{hlint}.")
16931 (license license:expat))))
16932
16933 (define-public emacs-ccls
16934 (let ((commit "aab3e31fd716daf59f9794e62d473357263e8cc0")
16935 (revision "4"))
16936 (package
16937 (name "emacs-ccls")
16938 (version (git-version "0.1" revision commit))
16939 (source
16940 (origin
16941 (method git-fetch)
16942 (uri (git-reference
16943 (url "https://github.com/MaskRay/emacs-ccls")
16944 (commit commit)))
16945 (file-name (git-file-name name version))
16946 (sha256
16947 (base32
16948 "1ykgw21ypyhwlyflppjcgqrj1xw4d9rld4z65qvwhk3f12cv113j"))))
16949 (build-system emacs-build-system)
16950 (propagated-inputs
16951 `(("ccls" ,ccls)
16952 ("emacs-dash" ,emacs-dash)
16953 ("emacs-projectile" ,emacs-projectile)
16954 ("emacs-lsp-mode" ,emacs-lsp-mode)))
16955 (home-page "https://github.com/MaskRay/emacs-ccls")
16956 (synopsis "Emacs support for the @code{ccls} language server")
16957 (description "This package extends @code{lsp-mode} to work with @code{C}
16958 and @code{C++} files through the @code{ccls} language server.")
16959 (license license:expat))))
16960
16961 (define-public emacs-org-brain
16962 (package
16963 (name "emacs-org-brain")
16964 (version "0.5")
16965 (source
16966 (origin
16967 (method git-fetch)
16968 (uri (git-reference
16969 (url "https://github.com/Kungsgeten/org-brain.git")
16970 (commit "3faf9303af3f2356e3444e69c22dc6c5774047d1")))
16971 (file-name (git-file-name name version))
16972 (sha256
16973 (base32
16974 "1ad681zk6kckw2zbk0r4iaj4bw8cfqrbd1s3gdwgdjlzq81q9mmj"))))
16975 (build-system emacs-build-system)
16976 (home-page "https://github.com/Kungsgeten/org-brain")
16977 (synopsis "Org-mode wiki and concept-mapping for Emacs")
16978 (description "@code{emacs-org-brain} implements a variant of concept
16979 mapping in Emacs, using @code{org-mode}. An org-brain is a network of
16980 org-mode entries, where each entry is a file or a headline, and you can get a
16981 visual overview of the relationships between the entries: parents, children,
16982 siblings and friends. This visual overview can also be used to browse your
16983 entries. You can think of entries as nodes in a mind map, or pages in a
16984 wiki.")
16985 (license license:expat)))
16986
16987 (define-public emacs-recent-addresses
16988 (let ((commit "afbbfdc43b81e620acf827ca20d297e0c517b6eb")
16989 (revision "1"))
16990 (package
16991 (name "emacs-recent-addresses")
16992 (home-page "https://nschum.de/src/emacs/recent-addresses/")
16993 (version (git-version "0.1" revision commit))
16994 (source (origin
16995 (method git-fetch)
16996 (uri (git-reference
16997 ;; Note: Use a branch that works with Helm. Submitted
16998 ;; at <https://github.com/nschum/recent-addresses.el/pull/1>.
16999 (url "https://github.com/civodul/recent-addresses.el")
17000 (commit commit)))
17001 (sha256
17002 (base32
17003 "0ajrq0galjmdyjdjyxazykjyax3gh6hvfk4s7l657pi11g0q5zax"))
17004 (file-name (git-file-name name version))))
17005 (build-system emacs-build-system)
17006 (synopsis "Record recently-used email addressed and auto-complete them")
17007 (description
17008 "@code{recent-addresses} is an Emacs package that allows you to quickly
17009 look up previously used email addresses. It can be used alongside the Gnus
17010 email client.")
17011 (license license:gpl2+))))
17012
17013 (define-public emacs-fold-dwim
17014 (let ((commit "c46f4bb2ce91b4e307136320e72c28dd50b6cd8b")
17015 (revision "0"))
17016 (package
17017 (name "emacs-fold-dwim")
17018 (version (git-version "1.2" revision commit))
17019 (home-page "https://github.com/emacsattic/fold-dwim")
17020 (source (origin
17021 (method git-fetch)
17022 (uri (git-reference (url home-page) (commit commit)))
17023 (sha256
17024 (base32
17025 "1yz1wis31asw6xa5maliyd1ck2q02xnnh7dc6swgj9cb4wi7k6i1"))
17026 (file-name (git-file-name name version))))
17027 (build-system emacs-build-system)
17028 (synopsis "Unified user interface for Emacs folding modes")
17029 (description
17030 "DWIM stands for \"do what I mean\", as in the idea that one keystroke
17031 can do different things depending on the context. In this package, it means
17032 that, if the cursor is in a currently hidden folded construction, we want to
17033 show it; if it's not, we want to hide whatever fold the cursor is in.")
17034 (license license:gpl2+))))
17035
17036 (define-public emacs-markup-faces
17037 (package
17038 (name "emacs-markup-faces")
17039 (version "1.0.0")
17040 (source
17041 (origin
17042 (method url-fetch)
17043 (uri (string-append "https://stable.melpa.org/packages/markup-faces-"
17044 version ".el"))
17045 (sha256
17046 (base32
17047 "124dxbaa25fwxnpwsygpz7pw6da6dnnw7y2lic3jf8rgz7lw4v32"))))
17048 (build-system emacs-build-system)
17049 (home-page "https://github.com/sensorflo/markup-faces")
17050 (synopsis "Collection of Emacs faces for markup language modes")
17051 (description "emacs-markup-faces is like font-lock-faces, but tailored for
17052 markup languages instead programming languages. The sub group markup-faces-text
17053 is also intended for 'text viewing modes' such as info or (wo)man. This gives a
17054 common look and feel, or let's say theme, across different markup language modes
17055 and 'text viewing modes' respectively.")
17056 (license license:gpl3+)))
17057
17058 (define-public emacs-adoc-mode
17059 (package
17060 (name "emacs-adoc-mode")
17061 (version "0.6.6")
17062 (source
17063 (origin
17064 (method git-fetch)
17065 (uri (git-reference
17066 (url "https://github.com/sensorflo/adoc-mode.git")
17067 (commit (string-append "V" version))))
17068 (file-name (git-file-name name version))
17069 (sha256
17070 (base32
17071 "0kp2aafjhqxz3mjr9hkkss85r4n51chws5a2qj1xzb63dh36liwm"))))
17072 (build-system emacs-build-system)
17073 (arguments
17074 `(#:phases
17075 (modify-phases %standard-phases
17076 ;; See: https://github.com/sensorflo/adoc-mode/issues/39.
17077 (add-after 'unpack 'disable-failing-tests
17078 (lambda _
17079 (let-syntax
17080 ((disable-tests
17081 (syntax-rules ()
17082 ((_ file ())
17083 (syntax-error "test names list must not be empty"))
17084 ((_ file (test-name ...))
17085 (substitute* file
17086 (((string-append "^\\(ert-deftest " test-name ".*") all)
17087 (string-append all "(skip-unless nil)\n")) ...)))))
17088 (disable-tests "adoc-mode-test.el"
17089 ("adoctest-test-tempo-delimited-blocks"
17090 "adoctest-test-tempo-macros"
17091 "adoctest-test-tempo-paragraphs"
17092 "adoctest-test-tempo-passthroug-macros"
17093 "adoctest-test-tempo-quotes")))
17094 #t)))
17095 #:tests? #t
17096 #:test-command '("emacs" "-Q" "-batch"
17097 "-l" "adoc-mode-test.el"
17098 "-f" "ert-run-tests-batch-and-exit")))
17099 (propagated-inputs
17100 `(("emacs-markup-faces" ,emacs-markup-faces)))
17101 (home-page "https://github.com/sensorflo/adoc-mode/wiki")
17102 (synopsis "AsciiDoc mode for Emacs")
17103 (description "This package provides an Emacs major mode for editing AsciiDoc
17104 files. It focuses on highlighting the document to improve readability.")
17105 (license license:gpl2+)))
17106
17107 (define-public emacs-racer
17108 (package
17109 (name "emacs-racer")
17110 (version "1.2")
17111 (source
17112 (origin
17113 (method git-fetch)
17114 (uri
17115 (git-reference
17116 (url "https://github.com/racer-rust/emacs-racer")
17117 (commit version)))
17118 (file-name (git-file-name name version))
17119 (sha256
17120 (base32 "0xj5iki10cg8j8vvqjlw6lfx97k3agwirhchcjnzbnkry48x9qi6"))))
17121 (arguments
17122 `(#:tests? #t
17123 #:test-command '("make" "test")
17124 #:phases
17125 (modify-phases %standard-phases
17126 (add-before 'check 'fix-makefile
17127 (lambda _
17128 (substitute* "Makefile"
17129 (("\\$\\{CASK\\} exec ") ""))
17130 #t)))))
17131 (native-inputs
17132 `(("emacs-ert-runner" ,emacs-ert-runner)
17133 ("emacs-undercover" ,emacs-undercover)))
17134 (propagated-inputs
17135 `(("emacs-dash" ,emacs-dash)
17136 ("emacs-f" ,emacs-f)
17137 ("emacs-pos-tip" ,emacs-pos-tip)
17138 ("emacs-rust-mode" ,emacs-rust-mode)
17139 ("emacs-s" ,emacs-s)))
17140 (build-system emacs-build-system)
17141 (home-page "https://github.com/racer-rust/emacs-racer")
17142 (synopsis "Racer support for Emacs")
17143 (description
17144 "This is the official Emacs package for Racer. It supports code
17145 completion of variables, functions and modules. It can also jump to
17146 definition of functions and types, and show a help buffer based on the
17147 docstring of the thing at point.")
17148 (license license:expat)))
17149
17150 (define-public emacs-rust-mode
17151 (package
17152 (name "emacs-rust-mode")
17153 (version "0.4.0")
17154 (source (origin
17155 (method git-fetch)
17156 (uri (git-reference
17157 (url "https://github.com/rust-lang/rust-mode")
17158 (commit version)))
17159 (file-name (git-file-name name version))
17160 (sha256
17161 (base32
17162 "0bcrklyicxh032rrp585rl5mxd26nb61dp6r5bl935rlcmxzsczh"))))
17163 (build-system emacs-build-system)
17164 (arguments
17165 `(#:phases
17166 (modify-phases %standard-phases
17167 (replace 'check
17168 (lambda _
17169 (invoke "sh" "run_rust_emacs_tests.sh"))))))
17170 (home-page "https://github.com/rust-lang/rust-mode")
17171 (synopsis "Major Emacs mode for editing Rust source code")
17172 (description "This package provides a major Emacs mode for editing Rust
17173 source code.")
17174 (license (list license:expat
17175 license:asl2.0))))
17176
17177 (define-public emacs-ztree
17178 (let ((commit "c54425a094353ec40a8179f9eab3596f76c6cf94"))
17179 (package
17180 (name "emacs-ztree")
17181 (version (git-version "1.0.5" "1" commit))
17182 (source
17183 (origin
17184 (method git-fetch)
17185 (uri (git-reference
17186 (url "https://github.com/fourier/ztree")
17187 (commit commit)))
17188 (file-name (git-file-name name version))
17189 (sha256
17190 (base32
17191 "0j8fpxds8m1zi04nrs8vv21091abvh4n8ab76f1sgdxnp4l5cfb0"))))
17192 (build-system emacs-build-system)
17193 (home-page "https://github.com/fourier/ztree")
17194 (synopsis "Directory tree comparison mode for Emacs")
17195 (description "Ztree is a project dedicated to implementation of several
17196 text-tree applications inside GNU Emacs. It consists of 2 subprojects:
17197 @command{ztree-diff} and @command{ztree-dir} (the basis of
17198 @command{ztree-diff}).")
17199 (license license:gpl3))))
17200
17201 (define-public emacs-helm-org-contacts
17202 (let ((commit "e7f11615802df55bb8b679450b5a5ef82a9081f9"))
17203 (package
17204 (name "emacs-helm-org-contacts")
17205 (version (git-version "20200310" "1" commit))
17206 (source
17207 (origin
17208 (method git-fetch)
17209 (uri (git-reference
17210 (url "https://github.com/tmalsburg/helm-org-contacts")
17211 (commit commit)))
17212 (file-name (git-file-name name version))
17213 (sha256
17214 (base32
17215 "06a1gbrq3qcfsn0kyv4i24x1xxfrrwqa3kgfj4xa4va88q2vqyb5"))))
17216 (build-system emacs-build-system)
17217 (propagated-inputs
17218 `(("emacs-dash" ,emacs-dash)
17219 ("emacs-helm" ,emacs-helm)
17220 ("emacs-s" ,emacs-s)))
17221 (home-page "https://github.com/tmalsburg/helm-org-contacts")
17222 (synopsis "Helm source for org-contacts")
17223 (description "This Helm source can be used to search contacts stored in
17224 org-contacts format. There are actions for inserting postal addresses, email
17225 addresses, and phone numbers in the buffer where @command{helm-org-contacts}
17226 was called.")
17227 (license license:gpl3))))
17228
17229 (define-public emacs-dired-du
17230 (package
17231 (name "emacs-dired-du")
17232 (version "0.5.2")
17233 (source
17234 (origin
17235 (method url-fetch)
17236 (uri (string-append
17237 "https://elpa.gnu.org/packages/dired-du-" version ".tar"))
17238 (sha256
17239 (base32 "0vhph7vcicsiq28b10h3b4dvnhckcy4gccpdgsad5j7pwa5k26m1"))))
17240 (build-system emacs-build-system)
17241 (home-page "https://elpa.gnu.org/packages/dired-du.html")
17242 (synopsis "Dired with recursive directory sizes")
17243 (description
17244 "Display the recursive size of directories in Dired.
17245 This file defines a minor mode @command{dired-du-mode} to show the recursive
17246 size of directories in Dired buffers. If @command{du} program is available,
17247 then the directory sizes are obtained with it. Otherwise, the directory sizes
17248 are obtained with Lisp. The former is faster and provide a more precise
17249 value. For directories where the user doesn't have read permission, the
17250 recursive size is not obtained. Once this mode is enabled, every new Dired
17251 buffer displays recursive dir sizes.")
17252 (license license:gpl3+)))
17253
17254 (define-public emacs-dired-rsync
17255 (package
17256 (name "emacs-dired-rsync")
17257 (version "0.4")
17258 (source (origin
17259 (method git-fetch)
17260 (uri (git-reference
17261 (url "https://github.com/stsquad/dired-rsync.git")
17262 (commit version)))
17263 (file-name (git-file-name name version))
17264 (sha256
17265 (base32
17266 "0jzbn0izxqgz719gb6fpr60zbcb6w1ama13ngpvrig82nlhs37fv"))))
17267 (build-system emacs-build-system)
17268 (propagated-inputs
17269 `(("emacs-s" ,emacs-s)
17270 ("emacs-dash" ,emacs-dash)))
17271 (home-page "https://github.com/stsquad/dired-rsync/")
17272 (synopsis "Support for rsync from Emacs dired buffers")
17273 (description "This package adds a single command @code{dired-rsync} which
17274 allows the user to copy marked files in a dired buffer via @code{rsync}. This
17275 is useful, especially for large files, because the copy happens in the
17276 background and doesn’t lock up Emacs. It is also more efficient than using
17277 tramps own encoding methods for moving data between systems.")
17278 (license license:gpl3+)))
17279
17280 (define-public emacs-pcre2el
17281 ;; Last release is very old so we get the latest commit.
17282 (let ((commit "0b5b2a2c173aab3fd14aac6cf5e90ad3bf58fa7d"))
17283 (package
17284 (name "emacs-pcre2el")
17285 (version (git-version "1.8" "1" commit))
17286 (source
17287 (origin
17288 (method git-fetch)
17289 (uri (git-reference
17290 (url "https://github.com/joddie/pcre2el")
17291 (commit commit)))
17292 (file-name (git-file-name name version))
17293 (sha256
17294 (base32
17295 "14br6ad138qx1z822wqssswqiihxiynz1k69p6mcdisr2q8yyi1z"))))
17296 (build-system emacs-build-system)
17297 (home-page "https://github.com/joddie/pcre2el")
17298 (synopsis "Convert between PCRE, Emacs and rx regexp syntax")
17299 (description "@code{pcre2el} or @code{rxt} (RegeXp Translator or RegeXp
17300 Tools) is a utility for working with regular expressions in Emacs, based on a
17301 recursive-descent parser for regexp syntax. In addition to converting (a
17302 subset of) PCRE syntax into its Emacs equivalent, it can do the following:
17303
17304 @itemize
17305 @item convert Emacs syntax to PCRE
17306 @item convert either syntax to @code{rx}, an S-expression based regexp syntax
17307 @item untangle complex regexps by showing the parse tree in @code{rx} form and
17308 highlighting the corresponding chunks of code
17309 @item show the complete list of strings (productions) matching a regexp,
17310 provided the list is finite
17311 @item provide live font-locking of regexp syntax (so far only for Elisp
17312 buffers – other modes on the TODO list).
17313 @end itemize\n")
17314 (license license:gpl3))))
17315
17316 (define-public emacs-magit-todos
17317 (package
17318 (name "emacs-magit-todos")
17319 (version "1.4.1")
17320 (source
17321 (origin
17322 (method git-fetch)
17323 (uri (git-reference
17324 (url "https://github.com/alphapapa/magit-todos")
17325 (commit version)))
17326 (file-name (git-file-name name version))
17327 (sha256
17328 (base32
17329 "1rcl6j53yabxqk3jzgaxvm3wqq7rayf1hdib2v2fapw5b0layym6"))))
17330 (build-system emacs-build-system)
17331 (propagated-inputs
17332 `(("emacs-async" ,emacs-async)
17333 ("emacs-dash" ,emacs-dash)
17334 ("emacs-f" ,emacs-f)
17335 ("emacs-hl-todo" ,emacs-hl-todo)
17336 ("magit" ,emacs-magit)
17337 ("emacs-pcre2el" ,emacs-pcre2el)
17338 ("emacs-s" ,emacs-s)))
17339 (home-page "https://github.com/alphapapa/magit-todos")
17340 (synopsis "Show source files' TODOs (and FIXMEs, etc) in Magit status buffer")
17341 (description "This package displays keyword entries from source code
17342 comments and Org files in the Magit status buffer. Activating an item jumps
17343 to it in its file. By default, it uses keywords from @code{hl-todo}, minus a
17344 few (like NOTE).")
17345 (license license:gpl3)))
17346
17347 (define-public emacs-git-annex
17348 ;; Unreleased version has a fontification fix.
17349 (let ((commit "1324d3f23c534fe79391a2c256bb8803054e383b")
17350 (revision "2"))
17351 (package
17352 (name "emacs-git-annex")
17353 (version (git-version "1.1" revision commit))
17354 (source
17355 (origin
17356 (method git-fetch)
17357 (uri (git-reference
17358 (url "https://github.com/jwiegley/git-annex-el")
17359 (commit commit)))
17360 (file-name (git-file-name name version))
17361 (sha256
17362 (base32
17363 "1lfky2nsrlndlbvk6vwbswnvbvkz1sxgg0n3r5q6xykdkjym0lrh"))))
17364 (build-system emacs-build-system)
17365 (home-page "https://github.com/jwiegley/git-annex-el")
17366 (synopsis "Emacs integration for git-annex")
17367 (description "Enhances Dired and buffers visiting annex files with
17368 git-annex functionality. In Dired, the names of annex files are shortened by
17369 hiding the symbolic links and fontified based on whether content is present.
17370 Commands for performing some common operations (e.g., unlocking and adding
17371 files) are provided.")
17372 (license license:gpl2+))))
17373
17374 (define-public emacs-hackernews
17375 (let ((commit "2362d7b00e59da7caddc8c0adc24dccb42fddef9")
17376 (revision "2"))
17377 (package
17378 (name "emacs-hackernews")
17379 (version (git-version "0.5.0" revision commit))
17380 (source
17381 (origin
17382 (method git-fetch)
17383 (uri (git-reference
17384 (url "https://github.com/clarete/hackernews.el")
17385 (commit commit)))
17386 (file-name (git-file-name name version))
17387 (sha256
17388 (base32
17389 "1hcc5b173yzcvvd2ls3jxrmsw2w9bi21m9hcpcirkn0nh93ywadv"))))
17390 (build-system emacs-build-system)
17391 (home-page "https://github.com/clarete/hackernews.el")
17392 (synopsis "Hacker News client for Emacs")
17393 (description "The @command{hackernews} package is able to fetch stories
17394 from six different Hacker News feeds, namely top, new, best, ask, show and job
17395 stories. The default feed is top stories, which corresponds to the Hacker
17396 News homepage.")
17397 (license license:gpl3))))
17398
17399 (define-public emacs-youtube-dl
17400 (let ((commit "af877b5bc4f01c04fccfa7d47a2c328926f20ef4")
17401 (revision "2"))
17402 (package
17403 (name "emacs-youtube-dl")
17404 (version (git-version "1.0" "2" commit))
17405 (source
17406 (origin
17407 (method git-fetch)
17408 (uri (git-reference
17409 (url "https://github.com/skeeto/youtube-dl-emacs/")
17410 (commit commit)))
17411 (file-name (git-file-name name version))
17412 (sha256
17413 (base32
17414 "0zkl9jkjbx0lmp9ylv4rqg1zwqibk053s4rp7s1h0i18nzk7vn8j"))))
17415 (build-system emacs-build-system)
17416 (inputs
17417 `(("youtube-dl" ,youtube-dl)))
17418 (arguments
17419 `(#:phases
17420 (modify-phases %standard-phases
17421 (add-after 'unpack 'configure
17422 (lambda* (#:key inputs #:allow-other-keys)
17423 (let ((youtube-dl (assoc-ref inputs "youtube-dl")))
17424 ;; .el is read-only in git.
17425 (chmod "youtube-dl.el" #o644)
17426 ;; Specify the absolute file names of the various
17427 ;; programs so that everything works out-of-the-box.
17428 (emacs-substitute-variables
17429 "youtube-dl.el"
17430 ("youtube-dl-program"
17431 (string-append youtube-dl "/bin/youtube-dl")))))))))
17432 (home-page "https://github.com/skeeto/youtube-dl-emacs/")
17433 (synopsis "Emacs youtube-dl download manager")
17434 (description "This package manages a video download queue for
17435 @command{youtube-dl}, which serves as the back end. It manages a single
17436 @command{youtube-dl} subprocess, downloading one video at a time. New videos
17437 can be queued at any time.")
17438 (license license:unlicense))))
17439
17440 (define-public emacs-org-web-tools
17441 (package
17442 (name "emacs-org-web-tools")
17443 (version "1.0")
17444 (source
17445 (origin
17446 (method git-fetch)
17447 (uri (git-reference
17448 (url "https://github.com/alphapapa/org-web-tools")
17449 (commit version)))
17450 (file-name (git-file-name name version))
17451 (sha256
17452 (base32
17453 "0kak9h5ny00d39gnwspv53nadnag01brw2fq9zk5wpfc91h9bjng"))))
17454 (build-system emacs-build-system)
17455 (propagated-inputs
17456 `(("emacs-dash" ,emacs-dash)
17457 ("emacs-esxml" ,emacs-esxml)
17458 ("emacs-s" ,emacs-s)))
17459 (inputs
17460 `(("pandoc" ,ghc-pandoc)))
17461 (arguments
17462 `(#:phases
17463 (modify-phases %standard-phases
17464 (add-after 'unpack 'patch-exec-paths
17465 (lambda* (#:key inputs #:allow-other-keys)
17466 (let ((pandoc (assoc-ref inputs "pandoc")))
17467 (substitute* "org-web-tools.el"
17468 (("\"pandoc\"") (string-append "\"" pandoc "/bin/pandoc\"")))
17469 #t))))))
17470 (home-page "https://github.com/alphapapa/org-web-tools")
17471 (synopsis "Display/Process web page as Org-mode content")
17472 (description "This package contains library functions and commands useful
17473 for retrieving web page content and processing it into Org-mode content.
17474
17475 For example, you can copy a URL to the clipboard or kill-ring, then run a
17476 command that downloads the page, isolates the “readable” content with
17477 @command{eww-readable}, converts it to Org-mode content with Pandoc, and
17478 displays it in an Org-mode buffer. Another command does all of that but
17479 inserts it as an Org entry instead of displaying it in a new buffer.")
17480 (license license:gpl3+)))
17481
17482 (define-public emacs-blimp
17483 (let ((commit "e420763d6d18b5d1be552cdbc47f91418343db03"))
17484 (package
17485 (name "emacs-blimp")
17486 (version (git-version "0.0.0" "1" commit))
17487 (source
17488 (origin
17489 (method git-fetch)
17490 (uri (git-reference
17491 (url "https://github.com/walseb/blimp")
17492 (commit commit)))
17493 (file-name (git-file-name name version))
17494 (sha256
17495 (base32
17496 "09wmhpym516b81dfq8smdmysh1fn610dzlyvyl2rkx8600f0fizd"))))
17497 (build-system emacs-build-system)
17498 (propagated-inputs
17499 `(("emacs-eimp" ,emacs-eimp)))
17500 (home-page "https://github.com/walseb/blimp")
17501 (synopsis "Emacs wrapper around all Imagemagick commands")
17502 (description "Blimp (Bustling Image Manipulation Package) is a complete
17503 wrapper around all Imagemagick commands with descriptions, autocompletion (for
17504 some commands) and hints displayed in prompt using @command{eimp.el} to
17505 execute its commands and resize images.")
17506 (license license:gpl3+))))
17507
17508 (define-public emacs-synosaurus
17509 (let ((commit "8bf95b935976ec0a1964cf175ed57cc5f6f93bdb"))
17510 (package
17511 (name "emacs-synosaurus")
17512 (version (git-version "0.1.0" "1" commit))
17513 (source
17514 (origin
17515 (method git-fetch)
17516 (uri (git-reference
17517 (url "https://github.com/hpdeifel/synosaurus")
17518 (commit commit)))
17519 (file-name (git-file-name name version))
17520 (sha256
17521 (base32
17522 "15by9jccab6kyplxa6k0glzaivxkqdigl33gl2qi2cvy6f2q7gva"))))
17523 (build-system emacs-build-system)
17524 (propagated-inputs
17525 `(("wordnet" ,wordnet)))
17526 (arguments
17527 `(#:phases
17528 (modify-phases %standard-phases
17529 (add-after 'unpack 'configure
17530 (lambda* (#:key inputs outputs #:allow-other-keys)
17531 (let ((wn (assoc-ref inputs "wordnet")))
17532 ;; .el is read-only in git.
17533 (chmod "synosaurus-wordnet.el" #o644)
17534 ;; Specify the absolute file names of the various
17535 ;; programs so that everything works out-of-the-box.
17536 (emacs-substitute-variables
17537 "synosaurus-wordnet.el"
17538 ("wordnet-command"
17539 (string-append wn "/bin/wn")))))))))
17540 (home-page "https://github.com/hpdeifel/synosaurus")
17541 (synopsis "Extensible thesaurus mode for Emacs")
17542 (description "Synosaurus is a thesaurus fontend for Emacs with pluggable
17543 backends, including the @command{wordnet} offline backend.")
17544 (license license:gpl3+))))
17545
17546 (define-public emacs-editorconfig
17547 (package
17548 (name "emacs-editorconfig")
17549 (version "0.8.1")
17550 (source
17551 (origin
17552 (method git-fetch)
17553 (uri (git-reference
17554 (url "https://github.com/editorconfig/editorconfig-emacs")
17555 (commit (string-append "v" version))))
17556 (file-name (git-file-name name version))
17557 (sha256
17558 (base32
17559 "1djlhkap7zddknzvjsjz0agpfsms1ih05zcpg1bikid2vs4gddyr"))))
17560 (build-system emacs-build-system)
17561 (home-page "https://github.com/editorconfig/editorconfig-emacs")
17562 (synopsis "Define and maintain consistent coding styles between different
17563 editors and IDEs")
17564 (description "The EditorConfig project consists of a file format for
17565 defining coding styles and a collection of text editor plugins that enable
17566 editors to read the file format and adhere to defined styles. EditorConfig
17567 files are easily readable and they work nicely with version control systems.")
17568 (license license:gpl3+)))
17569
17570 (define-public emacs-all-the-icons
17571 (package
17572 (name "emacs-all-the-icons")
17573 (version "4.0.1")
17574 (source
17575 (origin
17576 (method git-fetch)
17577 (uri (git-reference
17578 (url "https://github.com/domtronn/all-the-icons.el.git")
17579 (commit version)))
17580 (file-name (git-file-name name version))
17581 (sha256
17582 (base32 "0yh7gnv9xfqn8q4rzaa6wpyn9575vyfxy7d3afly2mqsb367fgm5"))))
17583 (build-system emacs-build-system)
17584 (arguments
17585 `(#:include '("\\.el$" "^data/" "^fonts/")
17586 ;; Compiling "test/" fails with "Symbol’s value as variable is void:
17587 ;; all-the-icons--root-code". Ignoring tests.
17588 #:exclude '("^test/")
17589 #:tests? #f))
17590 (propagated-inputs
17591 `(("f" ,emacs-f)
17592 ("memoize" ,emacs-memoize)))
17593 (home-page "https://github.com/domtronn/all-the-icons.el")
17594 (synopsis "Collect icon fonts and propertize them within Emacs")
17595 (description
17596 "All-the-icons is a utility package to collect various icon fonts and
17597 propertize them within Emacs. Icon fonts allow you to propertize and format
17598 icons the same way you would normal text. This enables things such as better
17599 scaling of and anti aliasing of the icons.")
17600 ;; Package is released under Expat license. Elisp files are licensed
17601 ;; under GPL3+. Fonts come with various licenses: Expat for
17602 ;; "all-the-icons.ttf" and "file-icons.ttf", Apache License 2.0 for
17603 ;; "material-design-icons.ttf", and SIL OFL 1.1 for "fontawesome.ttf",
17604 ;; "ocitcons.ttf" and "weathericons.ttf".
17605 (license
17606 (list license:expat license:gpl3+ license:silofl1.1 license:asl2.0))))
17607
17608 (define-public emacs-wttrin
17609 (let ((commit "df5427ce2a5ad4dab652dbb1c4a1834d7ddc2abc")
17610 (revision "1"))
17611 (package
17612 (name "emacs-wttrin")
17613 (version (git-version "0.2.0" revision commit))
17614 (source (origin
17615 (method git-fetch)
17616 (uri (git-reference
17617 (url "https://github.com/bcbcarl/emacs-wttrin.git")
17618 (commit commit)))
17619 (file-name (git-file-name name version))
17620 (sha256
17621 (base32
17622 "1ai655f10iayb4vw0ass2j3x83f4vsv90326mnywkzfl3sxd432z"))))
17623 (build-system emacs-build-system)
17624 (propagated-inputs
17625 `(("emacs-xterm-color" ,emacs-xterm-color)))
17626 (home-page "https://github.com/bcbcarl/emacs-wttrin")
17627 (synopsis "Frontend for weather web service @url{wttr.in}")
17628 (description "This package provides local weather information from
17629 @url{wttr.in}.")
17630 (license license:expat))))
17631
17632 (define-public emacs-powerline
17633 (package
17634 (name "emacs-powerline")
17635 (version "2.4")
17636 (source
17637 (origin
17638 (method git-fetch)
17639 (uri (git-reference
17640 (url "https://github.com/milkypostman/powerline.git")
17641 (commit version)))
17642 (file-name (git-file-name name version))
17643 (sha256
17644 (base32
17645 "1hp3xp18943n0rlggz55150020ivw8gvi1vyxkr4z8xhpwq4gaar"))))
17646 (build-system emacs-build-system)
17647 (home-page "https://github.com/milkypostman/powerline/")
17648 (synopsis "Mode-line plugin for Emacs")
17649 (description "Powerline is a utility plugin which allows you to create
17650 a better-looking, more functional Emacs mode-line. A collection of predefined
17651 themes comes with the package.")
17652 (license license:gpl3+)))
17653
17654 (define-public emacs-spaceline
17655 (package
17656 (name "emacs-spaceline")
17657 (version "2.0.1")
17658 (source
17659 (origin
17660 (method git-fetch)
17661 (uri (git-reference
17662 (url "https://github.com/TheBB/spaceline.git")
17663 (commit (string-append "v" version))))
17664 (file-name (git-file-name name version))
17665 (sha256
17666 (base32
17667 "1q8r95zfrh0vxna5ml2pq9b9f66clfqcl4d2qy2aizkvzyxg6skl"))))
17668 (build-system emacs-build-system)
17669 (propagated-inputs
17670 `(("dash" ,emacs-dash)
17671 ("powerline" ,emacs-powerline)
17672 ("s" ,emacs-s)))
17673 (home-page "https://github.com/TheBB/spaceline")
17674 (synopsis "Powerline theme from Spacemacs")
17675 (description "Spaceline provides Spacemacs' mode-line theme.
17676 This package provides features for three kinds of users.
17677
17678 @itemize
17679 @item You just want to use the Spacemacs mode-line theme and forget about it.
17680 @item You want to use something similar to the Spacemacs mode-line theme, but
17681 with a handful of easy tweaks.
17682 @item You want an easy-to-use library for building your own mode-line from
17683 scratch, and you think the Spacemacs theme looks good.
17684 @end itemize")
17685 (license license:gpl3+)))
17686
17687 (define-public emacs-column-marker
17688 (package
17689 (name "emacs-column-marker")
17690 (version "9")
17691 (source
17692 (origin
17693 (method url-fetch)
17694 (uri "https://www.emacswiki.org/emacs/download/column-marker.el")
17695 (sha256 (base32 "05bv198zhqw5hqq6cr11mhz02dpca74hhp1ycwq369m0yb2naxy9"))))
17696 (build-system emacs-build-system)
17697 (home-page "https://www.emacswiki.org/emacs/ColumnMarker")
17698 (synopsis "Emacs mode for highlighting columns")
17699 (description
17700 "With @code{column-marker.el} you can highlight any number of text columns.
17701 Three such highlight column markers are provided by default. This is
17702 especially useful for languages like COBOL or Fortran where certain columns
17703 have special meaning. It is also handy for aligning text across long vertical
17704 distances. Multi-column characters, such as @kbd{TAB} are treated
17705 correctly.")
17706 (license license:gpl2+)))
17707
17708 (define-public emacs-slime-repl-ansi-color
17709 (let ((commit "ad03263f5d4de473bc173b64a6fc3dc1106393d7"))
17710 (package
17711 (name "emacs-slime-repl-ansi-color")
17712 (version (git-version "0.0.0" "1" commit))
17713 (source (origin
17714 (method git-fetch)
17715 (uri (git-reference
17716 (url "https://github.com/deadtrickster/slime-repl-ansi-color")
17717 (commit commit)))
17718 (file-name (git-file-name name version))
17719 (sha256
17720 (base32
17721 "0bpg7gxz310x7bnlg324c507sxc5gxwwz6h64h6kdq141r73vbi4"))))
17722 (build-system emacs-build-system)
17723 (home-page "https://github.com/deadtrickster/slime-repl-ansi-color")
17724 (synopsis "Color ANSI codes in the REPL of SLIME")
17725 (description "Color ANSI codes in the REPL of SLIME")
17726 (license license:gpl2+))))
17727
17728 (define-public emacs-helm-slime
17729 (package
17730 (name "emacs-helm-slime")
17731 (version "0.4.0")
17732 (source (origin
17733 (method git-fetch)
17734 (uri (git-reference
17735 (url "https://github.com/emacs-helm/helm-slime")
17736 (commit version)))
17737 (file-name (git-file-name name version))
17738 (sha256
17739 (base32
17740 "0mrpjhpijdrq353fnfvdj9l9xfsz390qlcvifcair9732ma7i8l0"))))
17741 (build-system emacs-build-system)
17742 (propagated-inputs
17743 `(("emacs-helm" ,emacs-helm)
17744 ("emacs-slime" ,emacs-slime)))
17745 (home-page "https://github.com/emacs-helm/helm-slime")
17746 (synopsis "Helm for SLIME, the Superior Lisp Interaction Mode for Emacs")
17747 (description "Helm-SLIME defines a few new commands:
17748
17749 @itemize
17750 @item helm-slime-complete: Select a symbol from the SLIME completion systems.
17751 @item helm-slime-list-connections: Yet another slime-list-connections with Helm.
17752 @item: helm-slime-apropos: Yet another slime-apropos with Helm.
17753 @item helm-slime-repl-history: Select an input from the SLIME REPL history and insert it.
17754 @end itemize\n")
17755 (license license:gpl3+)))
17756
17757 (define-public emacs-helm-sly
17758 (package
17759 (name "emacs-helm-sly")
17760 (version "0.4.1")
17761 (source (origin
17762 (method git-fetch)
17763 (uri (git-reference
17764 (url "https://github.com/emacs-helm/helm-sly")
17765 (commit version)))
17766 (file-name (git-file-name name version))
17767 (sha256
17768 (base32
17769 "0b2dx9nzh5233lkix3lz81c9cv626lk2hjpcjiikwvyp6y0q92ys"))))
17770 (build-system emacs-build-system)
17771 (propagated-inputs
17772 `(("emacs-helm" ,emacs-helm)
17773 ("emacs-sly" ,emacs-sly)))
17774 (home-page "https://github.com/emacs-helm/helm-sly")
17775 (synopsis "Helm for SLY, a Common Lisp interaction mode for Emacs")
17776 (description "Helm-SLY defines a few new commands:
17777
17778 @itemize
17779 @item helm-sly-list-connections: Yet another Lisp connection list with Helm.
17780 @item: helm-sly-apropos: Yet another @command{apropos} with Helm.
17781 @item helm-sly-mini: Like @command{helm-sly-list-connections}, but include an
17782 extra source of Lisp-related buffers, like the events buffer or the scratch
17783 buffer.
17784 @end itemize\n")
17785 (license license:gpl3+)))
17786
17787 (define-public emacs-gtk-look
17788 (package
17789 (name "emacs-gtk-look")
17790 (version "29")
17791 (source (origin
17792 (method url-fetch)
17793 (uri "https://download.tuxfamily.org/user42/gtk-look.el")
17794 (sha256
17795 (base32
17796 "14p2nwrd51cr1v06fxbjjn6jdrkf9d6vcxhmscm0kl677s25ypsp"))))
17797 (build-system emacs-build-system)
17798 (arguments
17799 `(#:phases
17800 (modify-phases %standard-phases
17801 (add-after 'unpack 'configure
17802 (lambda _
17803 ;; File is read-only.
17804 (chmod "gtk-look.el" #o644)
17805 (emacs-substitute-variables "gtk-look.el"
17806 ("gtk-lookup-devhelp-indices"
17807 '(list (expand-file-name "~/.guix-profile/share/gtk-doc/html/*/*.devhelp*"))))
17808 #t)))))
17809 (home-page "http://user42.tuxfamily.org/gtk-look/index.html")
17810 (synopsis "Find and display HTML documentation for GTK, GNOME and Glib")
17811 (description "@command{gtk-look} finds and displays HTML documentation for
17812 GTK, GNOME and Glib functions and variables in Emacs, similar to what
17813 info-lookup-symbol does for info files (C-h S). The documentation is expected
17814 to be devhelp indexes with HTML files. The location of the indexes can be
17815 customized. In addition to C code development @command{gtk-look} is good for
17816
17817 @itemize
17818 @item @command{perl-gtk2}, recognising class funcs like
17819 @command{Gtk2::Label->new} and bare method names like @command{set_text}.
17820 @item @command{guile-gnome}, recognising methods like @command{set-text} and
17821 classes like @command{<gtk-window>}.
17822 @end itemize\n")
17823 (license license:gpl3+)))
17824
17825 (define-public emacs-ov
17826 (package
17827 (name "emacs-ov")
17828 (version "1.0.6")
17829 (source (origin
17830 (method git-fetch)
17831 (uri (git-reference
17832 (url "https://github.com/ShingoFukuyama/ov.el.git")
17833 (commit version)))
17834 (file-name (git-file-name name version))
17835 (sha256
17836 (base32
17837 "0qxk2rf84j86syxi8xknsq252irwg7sz396v3bb4wqz4prpj0kzc"))))
17838 (build-system emacs-build-system)
17839 (home-page "https://github.com/ShingoFukuyama/ov.el")
17840 (synopsis "Overlay library for Emacs Lisp")
17841 (description "@code{ov.el} provides a simple way to manipulate overlays in
17842 Emacs.")
17843 (license license:gpl3+)))
17844
17845 (define-public emacs-matrix-client
17846 (let ((commit "a0623667b07a4bf60980c97b078e9faed97ace79"))
17847 (package
17848 (name "emacs-matrix-client")
17849 (version (git-version "0.0.0" "4" commit))
17850 (source (origin
17851 (method git-fetch)
17852 (uri (git-reference
17853 (url "https://github.com/jgkamat/matrix-client-el.git")
17854 (commit commit)))
17855 (file-name (git-file-name name version))
17856 (sha256
17857 (base32
17858 "1zya8id3y9wzjaj7nplq7br6nhm3lsskv0fkn1xr1y77fzcfgcdb"))))
17859 (build-system emacs-build-system)
17860 (arguments
17861 `(#:phases
17862 (modify-phases %standard-phases
17863 (add-after 'unpack 'add-missing-require
17864 ;; Fix a filter error at runtime due to a missing require.
17865 ;; Reported upstream:
17866 ;; <https://github.com/alphapapa/matrix-client.el/issues/76>
17867 (lambda _
17868 (substitute* "matrix-client-room.el"
17869 (("\\(require 'dash-functional\\)" all)
17870 (string-append all "\n" "(require 'anaphora)")))
17871 #t)))))
17872 (propagated-inputs
17873 `(("a" ,emacs-a)
17874 ("anaphora" ,emacs-anaphora)
17875 ("dash" ,emacs-dash)
17876 ("esxml" ,emacs-esxml)
17877 ("f" ,emacs-f)
17878 ("frame-purpose" ,emacs-frame-purpose)
17879 ("ht" ,emacs-ht)
17880 ("ov" ,emacs-ov)
17881 ("rainbow-identifiers" ,emacs-rainbow-identifiers)
17882 ("request" ,emacs-request)
17883 ("s" ,emacs-s)
17884 ("tracking" ,emacs-tracking)))
17885 (home-page "https://github.com/jgkamat/matrix-client-el")
17886 (synopsis "Matrix client for Emacs")
17887 (description "@code{matrix-client} is a simple chat UI to Matrix.org
17888 rooms. It also provides an API which allows Emacs to seamlessly create
17889 RPC channels with users and other software.")
17890 (license license:gpl3+))))
17891
17892 (define-public emacs-sesman
17893 (package
17894 (name "emacs-sesman")
17895 (version "0.3.4")
17896 (source
17897 (origin
17898 (method git-fetch)
17899 (uri (git-reference
17900 (url "https://github.com/vspinu/sesman.git")
17901 (commit (string-append "v" version))))
17902 (file-name (git-file-name name version))
17903 (sha256
17904 (base32
17905 "0z5jb4vpbjsi63w3wjy6d2lgz33qdfvrgfb3bszv4hcf6a96y7fc"))))
17906 (build-system emacs-build-system)
17907 (arguments
17908 `(#:phases
17909 (modify-phases %standard-phases
17910 (add-after 'unpack 'set-shell
17911 ;; Setting the SHELL environment variable is required for the tests
17912 ;; to find sh.
17913 (lambda _
17914 (setenv "SHELL" (which "sh"))
17915 #t)))
17916 #:tests? #t
17917 #:test-command '("make" "test")))
17918 (home-page "https://github.com/vspinu/sesman")
17919 (synopsis "Session manager for Emacs based IDEs")
17920 (description "Sesman provides facilities for session management and
17921 interactive session association with the current contexts (project, directory,
17922 buffers). While sesman can be used to manage arbitrary sessions, it primary
17923 targets the Emacs based IDEs (CIDER, ESS, Geiser, Robe, SLIME etc.)")
17924 (license license:gpl3+)))
17925
17926 (define-public emacs-buttercup
17927 (package
17928 (name "emacs-buttercup")
17929 (version "1.16")
17930 (source
17931 (origin
17932 (method git-fetch)
17933 (uri (git-reference
17934 (url "https://github.com/jorgenschaefer/emacs-buttercup.git")
17935 (commit (string-append "v" version))))
17936 (file-name (git-file-name name version))
17937 (sha256
17938 (base32
17939 "0dckgcyzsav6ld78bcyrrygy1cz1jvqgav6vy8f6klpmk3r8xrl1"))))
17940 (build-system emacs-build-system)
17941 (arguments
17942 `(#:tests? #t
17943 #:test-command '("make" "test")
17944 #:phases
17945 (modify-phases %standard-phases
17946 (add-after 'install 'install-bin
17947 (lambda* (#:key outputs #:allow-other-keys)
17948 (install-file "bin/buttercup"
17949 (string-append (assoc-ref outputs "out") "/bin"))
17950 #t)))))
17951 (home-page "https://github.com/jorgenschaefer/emacs-buttercup")
17952 (synopsis "Behavior driven emacs lisp testing framework")
17953 (description "Buttercup is a behavior-driven development framework for
17954 testing Emacs Lisp code. It groups related tests so they can share
17955 common set-up and tear-down code, and allows the programmer to \"spy\" on
17956 functions to ensure they are called with the right arguments during testing.")
17957 (license license:gpl3+)))
17958
17959 (define-public emacs-wordnut
17960 (let ((commit "feac531404041855312c1a046bde7ea18c674915")
17961 (revision "0"))
17962 (package
17963 (name "emacs-wordnut")
17964 (version (git-version "0.1" revision commit))
17965 (home-page "https://github.com/gromnitsky/wordnut")
17966 (source (origin
17967 (method git-fetch)
17968 (uri (git-reference (url home-page) (commit commit)))
17969 (sha256
17970 (base32
17971 "1jl0b6g64a9w0q7bfvwha67vgws5xd15b7mkfyb5gkz3pymqhfxn"))
17972 (patches
17973 (search-patches "emacs-wordnut-require-adaptive-wrap.patch"))
17974 (file-name (git-file-name name version))))
17975 (build-system emacs-build-system)
17976 (propagated-inputs
17977 `(("wordnet" ,wordnet)
17978 ("emacs-adaptive-wrap" ,emacs-adaptive-wrap)))
17979 (synopsis "Major mode for WordNet")
17980 (description "This Emacs package provides an interface for
17981 @code{wordnet}. Features include completion, if the query is not found
17982 too ambiguous and navigation in the result buffer.")
17983 (license license:gpl3+))))
17984
17985 (define-public emacs-frame-purpose
17986 (package
17987 (name "emacs-frame-purpose")
17988 (version "1.0")
17989 (source (origin
17990 (method git-fetch)
17991 (uri (git-reference
17992 (url "https://github.com/alphapapa/frame-purpose.el.git")
17993 (commit version)))
17994 (sha256
17995 (base32
17996 "0jq2aam1yvccw887ighd1wm2xkvk5bv53ffiz3crcl16a255aj4q"))
17997 (file-name (git-file-name name version))))
17998 (build-system emacs-build-system)
17999 (inputs
18000 `(("dash" ,emacs-dash)))
18001 (synopsis "Purpose-specific frames for Emacs")
18002 (description "@code{frame-purpose} makes it easy to open purpose-specific
18003 frames that only show certain buffers, e.g. by buffers’ major mode, their
18004 filename or directory, etc, with custom frame/X-window titles, icons, and
18005 other frame parameters.")
18006 (home-page "https://github.com/alphapapa/frame-purpose.el")
18007 (license license:gpl3+)))
18008
18009 (define-public emacs-arduino-mode
18010 (let ((commit "23ae47c9f28f559e70b790b471f20310e163a39b")
18011 (revision "1")) ;no release yet
18012 (package
18013 (name "emacs-arduino-mode")
18014 (version (git-version "0" revision commit))
18015 (source (origin
18016 (method git-fetch)
18017 (uri (git-reference
18018 (url "https://github.com/stardiviner/arduino-mode.git")
18019 (commit commit)))
18020 (sha256
18021 (base32
18022 "08vnbz9gpah1l93fzfd87aawrhcnh2v1kyfxgsn88pdwg8awz8rx"))
18023 (file-name (git-file-name name version))))
18024 (build-system emacs-build-system)
18025 (inputs
18026 `(("spinner" ,emacs-spinner)
18027 ("flycheck" ,emacs-flycheck)))
18028 (arguments
18029 `(#:phases
18030 (modify-phases %standard-phases
18031 ;; Emacs complains that "defmethod" and "defgeneric" are obsolete
18032 ;; macros when compiling. Substitute them with the recommended
18033 ;; macros "cl-defmethod" and "cl-defgeneric", respectively.
18034 (add-after 'unpack 'fix-obsolete
18035 (lambda _
18036 (substitute* "ede-arduino.el"
18037 (("defmethod") "cl-defmethod")
18038 (("defgeneric") "cl-defgeneric"))
18039 #t)))))
18040 (synopsis "Emacs major mode for editing Arduino sketches")
18041 (description "Emacs major mode for editing Arduino sketches.")
18042 (home-page "https://github.com/stardiviner/arduino-mode")
18043 (license license:gpl3+))))
18044
18045 (define-public emacs-annalist
18046 (let ((commit "e0601539c9ac0171a684ea3ff6266d215d1d08e6")
18047 (revision "1"))
18048 (package
18049 (name "emacs-annalist")
18050 (version (git-version "1.0.0" revision commit))
18051 (source (origin
18052 (method git-fetch)
18053 (uri (git-reference
18054 (url "https://github.com/noctuid/annalist.el.git")
18055 (commit commit)))
18056 (sha256
18057 (base32
18058 "10bmimdzpi6cql4sb2hbgdvrza83xbac50bi9qng4z662pfnlaam"))
18059 (file-name (git-file-name name version))))
18060 (build-system emacs-build-system)
18061 (native-inputs
18062 `(("emacs-buttercup" ,emacs-buttercup)
18063 ("emacs-lispy" ,emacs-lispy)
18064 ("emacs-evil" ,emacs-evil)))
18065 (arguments
18066 `(#:phases
18067 (modify-phases %standard-phases
18068 (add-before 'check 'fix-makefile
18069 (lambda _
18070 (substitute* "Makefile"
18071 (("cask exec ") ""))
18072 #t)))
18073 #:tests? #t
18074 #:test-command '("make" "test")))
18075 (home-page "https://github.com/noctuid/annalist.el")
18076 (synopsis "Record and display information with Org headings and tables")
18077 (description "This package allows for keybindings, settings, hooks, and
18078 advice to be recorded and displayed.")
18079 (license license:gpl3+))))
18080
18081 (define-public emacs-general
18082 (let ((commit "f38fb2294bd29261374b772f765730f2fa168b3e")
18083 (revision "3"))
18084 (package
18085 (name "emacs-general")
18086 (version (git-version "0" revision commit))
18087 (source (origin
18088 (method git-fetch)
18089 (uri (git-reference
18090 (url "https://github.com/noctuid/general.el.git")
18091 (commit commit)))
18092 (sha256
18093 (base32
18094 "1aqi5axkwfng6rm52sblf738c7rffp10sqs69dvkh2fv3ps8q28i"))
18095 (file-name (git-file-name name version))))
18096 (build-system emacs-build-system)
18097 (native-inputs
18098 `(("emacs-buttercup" ,emacs-buttercup)
18099 ("emacs-evil" ,emacs-evil)
18100 ("emacs-which-key" ,emacs-which-key)
18101 ("emacs-use-package" ,emacs-use-package)))
18102 (arguments
18103 `(#:phases
18104 (modify-phases %standard-phases
18105 (add-before 'check 'fix-makefile
18106 (lambda _
18107 (substitute* "Makefile"
18108 (("cask exec ") ""))
18109 #t)))
18110 #:tests? #t
18111 #:test-command '("make" "test")))
18112 (home-page "https://github.com/noctuid/general.el")
18113 (synopsis "More convenient key definitions in emacs")
18114 (description "@code{general.el} provides a more convenient method for
18115 binding keys in emacs (for both evil and non-evil users). Like
18116 @code{use-package}, which provides a convenient, unified interface for
18117 managing packages, @code{general.el} is intended to provide a convenient,
18118 unified interface for key definitions. While this package does implement some
18119 completely new functionality (such as the ability to make vim-style
18120 keybindings under non-prefix keys with an optional timeout), its primary
18121 purpose is to build on existing functionality to make key definition more
18122 clear and concise. @code{general-define-key} is user-extensible and supports
18123 defining multiple keys in multiple keymaps at once, implicitly wrapping key
18124 strings with (@code{kbd ...}), using named prefix key sequences (like the
18125 leader key in vim), and much more.")
18126 (license license:gpl3+))))
18127
18128 (define-public emacs-tldr
18129 (let ((commit "7203d1be3dcbf12131846ffe06601933fa874d74"))
18130 (package
18131 (name "emacs-tldr")
18132 (version (git-version "0" "1" commit))
18133 (home-page "https://github.com/kuanyui/tldr.el")
18134 (source (origin
18135 (method git-fetch)
18136 (uri (git-reference
18137 (url (string-append home-page ".git"))
18138 (commit commit)))
18139 (sha256
18140 (base32
18141 "1bw6la463l2yfm7rp76ga4makfy4kpxgwi7ni5gxk31w11g26ryk"))
18142 (file-name (git-file-name name version))))
18143 (build-system emacs-build-system)
18144 (propagated-inputs
18145 `(("emacs-request" ,emacs-request)))
18146 (synopsis "Simplified and community-driven man pages for Emacs")
18147 (description "@code{emacs-tldr} allows the user to access tldr pages
18148 from within emacs. The @code{tldr} pages are a community effort to simplify
18149 the man pages with practical examples.")
18150 (license license:wtfpl2))))
18151
18152 (define-public emacs-window-layout
18153 (package
18154 (name "emacs-window-layout")
18155 (version "1.4")
18156 (home-page "https://github.com/kiwanami/emacs-window-layout")
18157 (source (origin
18158 (method git-fetch)
18159 (uri (git-reference
18160 (url home-page)
18161 (commit (string-append "v" version))))
18162 (sha256
18163 (base32
18164 "0wgqi8r844lbx52fn6az8c1n8m681rp6dkfzd54wmdk1ka7zmvv6"))
18165 (file-name (git-file-name name version))))
18166 (build-system emacs-build-system)
18167 (synopsis "Simple window layout management framework for emacs")
18168 (description "A window-layout management library that can split a frame
18169 or a window into some windows according to a layout recipe.")
18170 (license license:gpl3+)))
18171
18172 (define-public emacs-e2wm
18173 (package
18174 (name "emacs-e2wm")
18175 (version "1.4")
18176 (home-page "https://github.com/kiwanami/emacs-window-manager")
18177 (source (origin
18178 (method git-fetch)
18179 (uri (git-reference
18180 (url home-page)
18181 (commit (string-append "v" version))))
18182 (sha256
18183 (base32
18184 "12midsrx07pdrsr1qbl2rpi7xyhxqx08bkz7n7gf8vsmqkpfp56s"))
18185 (file-name (git-file-name name version))))
18186 (build-system emacs-build-system)
18187 (propagated-inputs
18188 `(("emacs-window-layout" ,emacs-window-layout)))
18189 (synopsis "Equilibrium Emacs Window Manager")
18190 (description "E2WM is a window manager for Emacs. It enables to
18191 customize the place of pop-up window, how the windows are split, how the
18192 buffers are located in the windows, keybinds to manipulate windows and
18193 buffers, etc. It also has plug-ins to help your Emacs life.")
18194 (license license:gpl3+)))
18195
18196 (define-public emacs-ctable
18197 (let ((commit "b8830d1ca95abb100a81bc32011bd17d5ecba000"))
18198 (package
18199 (name "emacs-ctable")
18200 (version (git-version "0.1.2" "1" commit))
18201 (home-page "https://github.com/kiwanami/emacs-ctable")
18202 (source (origin
18203 (method git-fetch)
18204 (uri (git-reference
18205 (url home-page)
18206 (commit commit)))
18207 (sha256
18208 (base32
18209 "0pg303pnqscrsbx9579hc815angszsgf9vpd2z2f8p4f4ka6a00h"))
18210 (file-name (git-file-name name version))))
18211 (build-system emacs-build-system)
18212 (synopsis "Table component for Emacs Lisp")
18213 (description "This program is a table component for Emacs Lisp. Other
18214 programs can use this table component for the application UI.")
18215 (license license:gpl3+))))
18216
18217 (define-public emacs-leetcode
18218 (let ((commit "8624496af9e105c3e07d88844b37ede87540d604")
18219 (revision "1"))
18220 (package
18221 (name "emacs-leetcode")
18222 (version (git-version "0" "1" commit))
18223 (home-page "https://github.com/ginqi7/leetcode-emacs.git")
18224 (source (origin
18225 (method git-fetch)
18226 (uri (git-reference
18227 (url "https://github.com/ginqi7/leetcode-emacs")
18228 (commit commit)))
18229 (sha256
18230 (base32
18231 "11pp7ydlmwrv7djf9mwk4xzn295xbmdnj5x13bfj5yjpjr89p531"))
18232 (file-name (git-file-name name version))))
18233 (build-system emacs-build-system)
18234 (propagated-inputs
18235 `(("emacs-names" ,emacs-names)
18236 ("emacs-ctable" ,emacs-ctable)))
18237 (synopsis "Solve and submit LeetCode problems from within Emacs")
18238 (description "This package provides an Emacs interface to LeetCode
18239 allowing users to log in and solve problems of their choice using Emacs.")
18240 (license license:unlicense))))
18241
18242 (define-public emacs-epc
18243 (let ((commit "e1bfa5ca163273859336e3cc89b4b6460f7f8cda"))
18244 (package
18245 (name "emacs-epc")
18246 (version (git-version "0.1.1" "1" commit))
18247 (home-page "https://github.com/kiwanami/emacs-epc")
18248 (source (origin
18249 (method git-fetch)
18250 (uri (git-reference
18251 (url home-page)
18252 (commit commit)))
18253 (sha256
18254 (base32
18255 "15nkrjgi64f829isfd6xrhl4zw8jirr8pkas7nisrbk1av868hx0"))
18256 (file-name (git-file-name name version))))
18257 (build-system emacs-build-system)
18258 (propagated-inputs
18259 `(("emacs-deferred" ,emacs-deferred)
18260 ("emacs-ctable" ,emacs-ctable)))
18261 (synopsis "RPC stack for Emacs Lisp")
18262 (description "This program is an asynchronous RPC stack for Emacs.
18263 Using this RPC stack, Emacs can communicate with the peer process
18264 smoothly. Because the protocol employs S-expression encoding and consists of
18265 asynchronous communications, the RPC response is fairly good.")
18266 (license license:gpl3+))))
18267
18268 (define-public emacs-edbi
18269 (let ((commit "6f50aaf4bde75255221f2292c7a4ad3fa9d918c0"))
18270 (package
18271 (name "emacs-edbi")
18272 (version (git-version "0.1.3" "1" commit))
18273 (home-page "https://github.com/kiwanami/emacs-edbi")
18274 (source (origin
18275 (method git-fetch)
18276 (uri (git-reference
18277 (url home-page)
18278 (commit commit)))
18279 (sha256
18280 (base32
18281 "0x0igyvdcm4863n7zndvcv6wgzwgn7324cbfjja6xd7r0k936zdy"))
18282 (file-name (git-file-name name version))))
18283 (build-system emacs-build-system)
18284 (inputs
18285 `(("perl" ,perl)
18286 ("perl-rpc-epc-service" ,perl-rpc-epc-service)
18287 ("perl-dbi" ,perl-dbi)
18288 ;; TODO: Adding support for perl-dbd-mysql and others would
18289 ;; dramatically increase the closure size. Make several packages?
18290 ("perl-dbd-sqlite" ,perl-dbd-sqlite)))
18291 (propagated-inputs
18292 `(("emacs-e2wm" ,emacs-e2wm)
18293 ("emacs-epc" ,emacs-epc)))
18294 (arguments
18295 `(#:include '("\\.el$" "\\.pl$")
18296 #:phases
18297 (modify-phases %standard-phases
18298 (add-after 'install 'patch-path
18299 (lambda* (#:key inputs outputs #:allow-other-keys)
18300 (let ((perl (assoc-ref inputs "perl"))
18301 (dir (string-append (assoc-ref outputs "out")
18302 "/share/emacs/site-lisp")))
18303 (substitute* (string-append dir "/edbi.el")
18304 (("\"perl\"") (string-append "\"" perl "/bin/perl\"")))
18305 (chmod (string-append dir "/edbi-bridge.pl") #o555)
18306 (wrap-program (string-append dir "/edbi-bridge.pl")
18307 `("PERL5LIB" ":" prefix (,(getenv "PERL5LIB"))))
18308 #t))))))
18309 (synopsis "Database Interface for Emacs Lisp")
18310 (description "This program connects the database server through Perl's
18311 DBI, and provides DB-accessing API and the simple management UI.")
18312 (license license:gpl3+))))
18313
18314 (define-public emacs-edbi-sqlite
18315 (let ((commit "52cb9ca1af7691b592f2cfd2f007847e7a4ccd5f"))
18316 (package
18317 (name "emacs-edbi-sqlite")
18318 (version (git-version "0.1.1" "1" commit))
18319 (home-page "https://github.com/proofit404/edbi-sqlite")
18320 (source (origin
18321 (method git-fetch)
18322 (uri (git-reference
18323 (url home-page)
18324 (commit commit)))
18325 (sha256
18326 (base32
18327 "1vll81386fx90lq5sy4rlxcik6mvw7zx5cc51f0yaca9bkcckp51"))
18328 (file-name (git-file-name name version))))
18329 (build-system emacs-build-system)
18330 (propagated-inputs
18331 `(("emacs-edbi" ,emacs-edbi)))
18332 (synopsis "Open SQLite files in Emacs")
18333 (description "This package is a convenience wrapper for @command{edbi}
18334 to open SQLite databases.")
18335 (license license:gpl3+))))
18336
18337 (define-public emacs-nix-mode
18338 (package
18339 (name "emacs-nix-mode")
18340 (version "1.4.1")
18341 (source
18342 (origin
18343 (method git-fetch)
18344 (uri (git-reference
18345 (url "https://github.com/NixOS/nix-mode.git")
18346 (commit (string-append "v" version))))
18347 (file-name (git-file-name name version))
18348 (sha256
18349 (base32 "04xpgg9nba5m1bl7ci5l456whcb8nfhsbvgxyx89bp0zqgr005q7"))))
18350 (build-system emacs-build-system)
18351 (inputs
18352 `(("emacs-company" ,emacs-company)
18353 ("emacs-json-mode" ,emacs-json-mode)
18354 ("emacs-mmm-mode" ,emacs-mmm-mode)))
18355 (home-page "https://github.com/NixOS/nix-mode")
18356 (synopsis "Emacs major mode for editing Nix expressions")
18357 (description "@code{nixos-mode} provides an Emacs major mode for editing
18358 Nix expressions. It supports syntax highlighting, indenting and refilling of
18359 comments.")
18360 (license license:lgpl2.1+)))
18361
18362 (define-public emacs-libmpdel
18363 (package
18364 (name "emacs-libmpdel")
18365 (version "1.1.2")
18366 (source (origin
18367 (method git-fetch)
18368 (uri (git-reference
18369 (url "https://gitea.petton.fr/mpdel/libmpdel.git")
18370 (commit (string-append "v" version))))
18371 (file-name (git-file-name name version))
18372 (sha256
18373 (base32
18374 "0dnjndpv6bmz5blfs75ynmbm32g23l4slg5p3941b1i94a08qzpy"))))
18375 (build-system emacs-build-system)
18376 (home-page "https://gitea.petton.fr/mpdel/libmpdel")
18377 (synopsis "Emacs library to communicate with Music Player Daemon (MPD)")
18378 (description
18379 "An Emacs library client to communicate with Music Player Daemon (MPD), a
18380 flexible, powerful, server-side application for playing music.")
18381 (license license:gpl3+)))
18382
18383 (define-public emacs-mpdel
18384 (package
18385 (name "emacs-mpdel")
18386 (version "1.0.0")
18387 (source
18388 (origin
18389 (method git-fetch)
18390 (uri (git-reference
18391 (url "https://gitea.petton.fr/mpdel/mpdel.git")
18392 (commit (string-append "v" version))))
18393 (file-name (git-file-name name version))
18394 (sha256
18395 (base32
18396 "0pyyvbzskr44dxbmlp3y0r6s459fd51cvwjmnjaqxfxflr5v891g"))))
18397 (build-system emacs-build-system)
18398 (inputs
18399 `(("emacs-libmpdel" ,emacs-libmpdel)))
18400 (home-page "https://gitea.petton.fr/mpdel/mpdel")
18401 (synopsis "Emacs user interface for Music Player Daemon (MPD)")
18402 (description
18403 "MPDel provides an Emacs user interface to control playback (play, pause,
18404 next, volume) and display and control the current playlist as well as your
18405 stored playlists.")
18406 (license license:gpl3+)))
18407
18408 (define-public emacs-vterm
18409 (let ((version "0")
18410 (revision "1")
18411 (commit "e63bd65eece7c5de3a534b7e2fdbe58256ec2da0"))
18412 (package
18413 (name "emacs-vterm")
18414 (version (git-version version revision commit))
18415 (source (origin
18416 (method git-fetch)
18417 (uri (git-reference
18418 (url "https://github.com/akermu/emacs-libvterm.git")
18419 (commit commit)))
18420 (file-name (git-file-name name version))
18421 (sha256
18422 (base32
18423 "0iq857w54qmazxh23fipz85fb9i6dav3f63g0ghpmi6mybfp6i5v"))))
18424 (build-system emacs-build-system)
18425 (arguments
18426 `(#:modules ((guix build emacs-build-system)
18427 ((guix build cmake-build-system) #:prefix cmake:)
18428 (guix build emacs-utils)
18429 (guix build utils))
18430 #:imported-modules (,@%emacs-build-system-modules
18431 (guix build cmake-build-system))
18432 #:phases
18433 (modify-phases %standard-phases
18434 (add-before 'add-source-to-load-path 'substitute-vterm-module-path
18435 (lambda* (#:key outputs #:allow-other-keys)
18436 (chmod "vterm.el" #o644)
18437 (emacs-substitute-sexps "vterm.el"
18438 ("(require 'vterm-module nil t)"
18439 `(module-load
18440 ,(string-append (assoc-ref outputs "out")
18441 "/lib/vterm-module.so"))))
18442 #t))
18443 (add-after 'build 'configure
18444 ;; Run cmake.
18445 (lambda* (#:key outputs #:allow-other-keys)
18446 ((assoc-ref cmake:%standard-phases 'configure)
18447 #:outputs outputs
18448 #:out-of-source? #f
18449 #:configure-flags '("-DUSE_SYSTEM_LIBVTERM=ON"))
18450 #t))
18451 (add-after 'configure 'make
18452 ;; Run make.
18453 (lambda* (#:key (make-flags '()) outputs #:allow-other-keys)
18454 ;; Compile the shared object file.
18455 (apply invoke "make" "all" make-flags)
18456 ;; Move the file into /lib.
18457 (install-file
18458 "vterm-module.so"
18459 (string-append (assoc-ref outputs "out") "/lib"))
18460 #t)))
18461 #:tests? #f))
18462 (native-inputs
18463 `(("cmake" ,cmake-minimal)
18464 ("libtool" ,libtool)
18465 ("libvterm" ,libvterm)))
18466 (home-page "https://github.com/akermu/emacs-libvterm")
18467 (synopsis "Emacs libvterm integration")
18468 (description "This package implements a bridge to @code{libvterm} to
18469 display a terminal in an Emacs buffer.")
18470 (license license:gpl3+))))
18471
18472 (define-public emacs-simple-mpc
18473 ;; There have been no releases.
18474 (let ((commit "bee8520e81292b4c7353e45b193f9a13b482f5b2")
18475 (revision "1"))
18476 (package
18477 (name "emacs-simple-mpc")
18478 (version (git-version "0" revision commit))
18479 (source
18480 (origin
18481 (method git-fetch)
18482 (uri (git-reference
18483 (url "https://github.com/jorenvo/simple-mpc.git")
18484 (commit commit)))
18485 (file-name (git-file-name name version))
18486 (sha256
18487 (base32
18488 "1ja06pv007cmzjjgka95jlg31k7d29jrih1yxyblsxv85s9sg21q"))))
18489 (build-system emacs-build-system)
18490 (propagated-inputs `(("emacs-s" ,emacs-s)))
18491 (home-page "https://github.com/jorenvo/simple-mpc")
18492 (synopsis "Simple Emacs frontend to mpc")
18493 (description "This package provides an Emacs major mode which acts as a
18494 front end to mpc, a client for the @dfn{Music Player Daemon} (MPD).")
18495 (license license:gpl3+))))
18496
18497 (define-public emacs-mkmcc-gnuplot-mode
18498 (package
18499 (name "emacs-mkmcc-gnuplot-mode")
18500 (version "1.2.0")
18501 (source
18502 (origin
18503 (method git-fetch)
18504 (uri (git-reference
18505 (url "https://github.com/mkmcc/gnuplot-mode")
18506 (commit "601f6392986f0cba332c87678d31ae0d0a496ce7")))
18507 (file-name (git-file-name name version))
18508 (sha256
18509 (base32
18510 "14f0yh1rjqc3337j4sbqzfb7pjim2c8a7wk1a73xkrdkmjn82vgb"))))
18511 (build-system emacs-build-system)
18512 (home-page "https://mkmcc.github.io/software/gnuplot-mode.html")
18513 (synopsis "Minimal emacs major mode for editing gnuplot scripts")
18514 (description "@code{emacs-mkmcc-gnuplot-mode} is a minimal emacs major
18515 mode for editing gnuplot scripts. It provides syntax highlighting,
18516 indentation and a command to plot the file.")
18517 (license license:gpl3+)))
18518
18519 (define-public emacs-cmake-font-lock
18520 (let ((commit "e0ceaaae19c13b66f781512e3295bfc6707b56f4")
18521 (revision "1"))
18522 (package
18523 (name "emacs-cmake-font-lock")
18524 (version (git-version "0.1.5" revision commit))
18525 (source (origin
18526 (method git-fetch)
18527 (uri (git-reference
18528 (url "https://github.com/Lindydancer/cmake-font-lock.git")
18529 (commit commit)))
18530 (file-name (git-file-name name version))
18531 (sha256
18532 (base32
18533 "03gsyn95dlmsn15bl353bphi3qy7ccn5bss3f7n97kf38bllh0yf"))))
18534 (build-system emacs-build-system)
18535 (native-inputs
18536 `(("emacs-faceup" ,emacs-faceup)))
18537 (arguments
18538 `(#:include (cons "^admin\\/" %default-include)))
18539 (home-page "https://github.com/Lindydancer/cmake-font-lock")
18540 (synopsis "Advanced type-aware syntax-highlighting for CMake")
18541 (description "This package highlights function arguments in CMake
18542 according to their use.")
18543 (license license:gpl3+))))
18544
18545 (define-public emacs-dtrt-indent
18546 (package
18547 (name "emacs-dtrt-indent")
18548 (version "0.8")
18549 (source (origin
18550 (method git-fetch)
18551 (uri (git-reference
18552 (url "https://github.com/jscheid/dtrt-indent")
18553 (commit version)))
18554 (file-name (git-file-name name version))
18555 (sha256
18556 (base32
18557 "0pgf0pvqd8k4yzhdn2df9lp0y8hmlm2ccrh07jivwlccs95pcz7z"))))
18558 (build-system emacs-build-system)
18559 (home-page "https://github.com/jscheid/dtrt-indent")
18560 (synopsis "Minor mode that guesses the indentation offset")
18561 (description "This package provides a minor mode that guesses the
18562 indentation offset originally used for creating source code files and
18563 transparently adjusts the corresponding settings in Emacs, making it more
18564 convenient to edit foreign files.")
18565 (license license:gpl2+)))
18566
18567 (define-public emacs-repo
18568 (package
18569 (name "emacs-repo")
18570 (version "0.1.3")
18571 (source (origin
18572 (method git-fetch)
18573 (uri (git-reference
18574 (url "https://github.com/canatella/repo-el")
18575 (commit version)))
18576 (file-name (git-file-name name version))
18577 (sha256
18578 (base32
18579 "0rbvcvm7bfr6ncji7cllfxyyr6x7n9fx863byp243phsj3n93adz"))))
18580 (build-system emacs-build-system)
18581 (native-inputs
18582 `(("emacs-el-mock" ,emacs-el-mock)
18583 ("ert-runner" ,emacs-ert-runner)))
18584 (propagated-inputs
18585 `(("emacs-f" ,emacs-f)
18586 ("magit" ,emacs-magit)))
18587 (home-page "https://github.com/canatella/repo-el")
18588 (synopsis "Emacs interface for the Google Repo tool")
18589 (description "This package provides integration of the Google Repo tool
18590 with emacs. It displays the output of the @code{repo status} command in a
18591 buffer and launches Magit from the status buffer for the project at point.")
18592 (license license:gpl3+)))
18593
18594 (define-public emacs-alect-themes
18595 (package
18596 (name "emacs-alect-themes")
18597 (version "0.9")
18598 (source (origin
18599 (method git-fetch)
18600 (uri (git-reference
18601 (url "https://github.com/alezost/alect-themes")
18602 (commit (string-append "v" version))))
18603 (file-name (git-file-name name version))
18604 (sha256
18605 (base32
18606 "0nffxpdm0sa7bynwi0rmlwpc4qmvbda5ankhzz7fmk4ap9fkjxv9"))))
18607 (build-system emacs-build-system)
18608 (home-page "https://github.com/alezost/alect-themes")
18609 (synopsis "Low contrast, light, dark and black color theme for Emacs")
18610 (description "@code{emacs-alect-themes} provides configurable light, dark
18611 and black color themes for Emacs. The themes are intended to be used with
18612 GUI.")
18613 (license license:gpl3+)))
18614
18615 (define-public emacs-google-c-style
18616 (let ((commit "6271f3f473ceb3a7fef99388a3040903b1a145f1")
18617 (revision "0"))
18618 (package
18619 (name "emacs-google-c-style")
18620 (version (git-version "0.1" revision commit))
18621 (source (origin
18622 (method git-fetch)
18623 (uri (git-reference
18624 (url "https://github.com/google/styleguide")
18625 (commit commit)))
18626 (file-name (git-file-name name version))
18627 (sha256
18628 (base32
18629 "1jghyyasdl15c4gaqaxmdn43am63k6bykn5ab83f1ahv9zi1krxk"))))
18630 (build-system emacs-build-system)
18631 (home-page "https://github.com/google/styleguide")
18632 (synopsis "Emacs settings file for Google C/C++ style")
18633 (description "@code{emacs-google-c-style} provides an Emacs settings
18634 file for Google C and C++ style.")
18635 (license license:gpl1+))))
18636
18637 (define-public emacs-redshank
18638 (let ((commit "f98e68f532e622bcd464292ca4a9cf5fbea14ebb")
18639 (revision "1"))
18640 (package
18641 (name "emacs-redshank")
18642 (version (git-version "0.1" revision commit))
18643 (source (origin
18644 (method git-fetch)
18645 (uri (git-reference
18646 (url "http://www.foldr.org/~michaelw/projects/redshank.git")
18647 (commit commit)))
18648 (file-name (git-file-name name version))
18649 (sha256
18650 (base32
18651 "1jdkgvd5xy9hl5q611jwah2n05abjp7qcy9sj4k1z11x0ii62b6p"))))
18652 (build-system emacs-build-system)
18653 (propagated-inputs
18654 `(("emacs-paredit" ,emacs-paredit)))
18655 (home-page "http://www.foldr.org/~michaelw/emacs/redshank/")
18656 (synopsis "Common Lisp Editing Extensions (for Emacs)")
18657 (description "Redshank is a collection of code-wrangling Emacs macros
18658 mostly geared towards Common Lisp, but some are useful for other Lisp
18659 dialects, too. Redshank's code transformations aim to be expression-based (as
18660 opposed to character-based).")
18661 (license license:gpl1+))))
18662
18663 (define-public emacs-disk-usage
18664 (package
18665 (name "emacs-disk-usage")
18666 (version "1.3.3")
18667 (source
18668 (origin
18669 (method git-fetch)
18670 (uri (git-reference
18671 (url "https://gitlab.com/Ambrevar/emacs-disk-usage.git")
18672 (commit version)))
18673 (file-name (git-file-name name version))
18674 (sha256
18675 (base32
18676 "0hv2gsd8k5fbjgckgiyisq4rn1i7y4rchbjy8kmixjv6mx563bll"))))
18677 (build-system emacs-build-system)
18678 (home-page "https://gitlab.com/Ambrevar/emacs-disk-usage")
18679 (synopsis "Sort and browse disk usage listings with Emacs")
18680 (description "Disk Usage is a file system analyzer: it offers a tabulated
18681 view of file listings sorted by size. Directory sizes are computed
18682 recursively. The results are cached for speed.")
18683 (license license:gpl3+)))
18684
18685 (define-public emacs-orgit
18686 (package
18687 (name "emacs-orgit")
18688 (version "1.5.3")
18689 (home-page "https://github.com/magit/orgit")
18690 (source (origin
18691 (method git-fetch)
18692 (uri (git-reference
18693 (url home-page)
18694 (commit (string-append "v" version))))
18695 (file-name (git-file-name name version))
18696 (sha256
18697 (base32
18698 "1ywavzki510rslsgfm0cnn3mlh644p61ha2nfb715xhkg7cd3j9g"))))
18699 (build-system emacs-build-system)
18700 (propagated-inputs
18701 `(("emacs-dash" ,emacs-dash)
18702 ("emacs-magit" ,emacs-magit)))
18703 (synopsis "Support for Org links to Magit buffers")
18704 (description "This package defines several Org link types, which can be
18705 used to link to certain Magit buffers. Use the command
18706 @command{org-store-link} while such a buffer is current to store a link.
18707 Later you can insert it into an Org buffer using the command
18708 @code{org-insert-link}.")
18709 (license license:gpl3+)))
18710
18711 (define-public emacs-amx
18712 (package
18713 (name "emacs-amx")
18714 (version "3.3")
18715 (source
18716 (origin
18717 (method git-fetch)
18718 (uri (git-reference
18719 (url "https://github.com/DarwinAwardWinner/amx")
18720 (commit (string-append "v" version))))
18721 (file-name (git-file-name name version))
18722 (sha256
18723 (base32 "0ikjzs119g57cwh2v3jmy63lggqc0ib99q5gsl93slkk4y2ihavw"))))
18724 (build-system emacs-build-system)
18725 (propagated-inputs
18726 `(("emacs-s" ,emacs-s)))
18727 (home-page "https://github.com/DarwinAwardWinner/amx")
18728 (synopsis "Alternative M-x interface for Emacs")
18729 (description "Amx is an alternative interface for M-x in Emacs. It
18730 provides several enhancements over the ordinary
18731 @code{execute-extended-command}, such as prioritizing your most-used commands
18732 in the completion list and showing keyboard shortcuts, and it supports several
18733 completion systems for selecting commands, such as Ido and Ivy.")
18734 (license license:gpl3+)))
18735
18736 (define-public emacs-lorem-ipsum
18737 (let ((commit "4b39f6fed455d67f635b3837cf5668bf74d0f6cd"))
18738 (package
18739 (name "emacs-lorem-ipsum")
18740 (version (git-version "0.2" "1" commit))
18741 (home-page "https://github.com/jschaf/emacs-lorem-ipsum/")
18742 (source (origin
18743 (method git-fetch)
18744 (uri (git-reference
18745 (url home-page)
18746 (commit commit)))
18747 (file-name (git-file-name name version))
18748 (sha256
18749 (base32
18750 "0a3b18p3vdjci89prsgdzjnfxsl8p67vjhf8ai4qdng7zvh50lir"))))
18751 (build-system emacs-build-system)
18752 (synopsis "Insert dummy pseudo Latin text in Emacs")
18753 (description "This package provides convenience functions to insert
18754 dummy Latin text into a buffer. This can be useful if you need to produce
18755 paragraphs or pages of text for testing purposes.")
18756 (license license:gpl3+))))
18757
18758 (define-public emacs-lisp-extra-font-lock
18759 (let ((commit "4605eccbe1a7fcbd3cacf5b71249435413b4db4f"))
18760 (package
18761 (name "emacs-lisp-extra-font-lock")
18762 (version (git-version "0.0.6" "1" commit))
18763 (home-page "https://github.com/Lindydancer/lisp-extra-font-lock")
18764 (source (origin
18765 (method git-fetch)
18766 (uri (git-reference
18767 (url home-page)
18768 (commit commit)))
18769 (file-name (git-file-name name version))
18770 (sha256
18771 (base32
18772 "152vcp3mdlv33jf5va4rinl1d0k960gnfhbrqqrafazgx9j3ya8w"))))
18773 (build-system emacs-build-system)
18774 (synopsis "Highlight bound variables and quoted expressions in Emacs")
18775 (description "This package highlight the location where local variables
18776 is created (bound, for example, by let) as well as quoted and backquoted
18777 constant expressions.")
18778 (license license:gpl3+))))
18779
18780 (define-public emacs-docker-tramp
18781 (package
18782 (name "emacs-docker-tramp")
18783 (version "0.1")
18784 (source
18785 (origin
18786 (method git-fetch)
18787 (uri (git-reference
18788 (url "https://github.com/emacs-pe/docker-tramp.el")
18789 (commit (string-append "v" version))))
18790 (file-name (git-file-name name version))
18791 (sha256
18792 (base32
18793 "0lxvzmfg52fhxrhbvp92zwp7cv4i1rlxnkyyzgngj3sjm7y60yvg"))))
18794 (build-system emacs-build-system)
18795 (home-page "https://github.com/emacs-pe/docker-tramp.el")
18796 (synopsis "TRAMP integration for docker containers")
18797 (description
18798 "This package provides a TRAMP method for Docker containers.")
18799 (license license:gpl3+)))
18800
18801 (define-public emacs-docker
18802 (package
18803 (name "emacs-docker")
18804 (version "1.3.0")
18805 (source (origin
18806 (method git-fetch)
18807 (uri (git-reference
18808 (url "https://github.com/Silex/docker.el")
18809 (commit version)))
18810 (file-name (git-file-name name version))
18811 (sha256
18812 (base32
18813 "1g8r1faqp0z0vqp9qrl8m84pa0v2ddvc91klphdkfmldwv7rfipw"))))
18814 (inputs
18815 `(("emacs-undercover" ,emacs-undercover)))
18816 (propagated-inputs
18817 `(("emacs-dash" ,emacs-dash)
18818 ("emacs-docker-tramp" ,emacs-docker-tramp)
18819 ("emacs-magit-popup" ,emacs-magit-popup)
18820 ("emacs-s" ,emacs-s)
18821 ("emacs-tablist" ,emacs-tablist)
18822 ("emacs-json-mode" ,emacs-json-mode)))
18823 (arguments
18824 `(#:phases
18825 (modify-phases %standard-phases
18826 (delete 'check)))) ;no tests
18827 (build-system emacs-build-system)
18828 (home-page "https://github.com/Silex/docker.el")
18829 (synopsis "Manage docker from Emacs")
18830 (description "This package provides an Emacs interface for Docker.")
18831 (license license:gpl3+)))
18832
18833 (define-public emacs-dockerfile-mode
18834 ;; Latest upstream release is too old.
18835 (let ((commit "ed73e82dcc636dad00d1a8c3b32a49136d25ee60"))
18836 (package
18837 (name "emacs-dockerfile-mode")
18838 (version (git-version "1.2" "2" commit))
18839 (source
18840 (origin
18841 (method git-fetch)
18842 (uri (git-reference
18843 (url "https://github.com/spotify/dockerfile-mode.git")
18844 (commit commit)))
18845 (file-name (git-file-name name version))
18846 (sha256
18847 (base32
18848 "0lri2rnx4lr23vqfphkpq39cd4xfgzkvz1xsz7ccdvl4qj0k7fdl"))))
18849 (build-system emacs-build-system)
18850 (propagated-inputs
18851 `(("emacs-s" ,emacs-s)))
18852 (home-page "https://github.com/spotify/dockerfile-mode")
18853 (synopsis "Major mode for editing Dockerfile")
18854 (description
18855 "This package provides a major mode @code{dockerfile-mode} for use with
18856 the standard @code{Dockerfile} file format.")
18857 (license license:asl2.0))))
18858
18859 (define-public emacs-lsp-mode
18860 (package
18861 (name "emacs-lsp-mode")
18862 (version "6.3.1")
18863 (source (origin
18864 (method git-fetch)
18865 (uri (git-reference
18866 (url "https://github.com/emacs-lsp/lsp-mode.git")
18867 (commit version)))
18868 (file-name (git-file-name name version))
18869 (sha256
18870 (base32
18871 "125rpmhlyd6wmq7p71j54x3rzmk07vn1hdcvvdjjip5481raxcwx"))))
18872 (build-system emacs-build-system)
18873 (propagated-inputs
18874 `(("emacs-dash" ,emacs-dash)
18875 ("emacs-f" ,emacs-f)
18876 ("emacs-ht" ,emacs-ht)
18877 ("emacs-markdown-mode" ,emacs-markdown-mode)
18878 ("emacs-spinner" ,emacs-spinner)
18879 ("emacs-hydra" ,emacs-hydra)))
18880 (home-page "https://github.com/emacs-lsp/lsp-mode")
18881 (synopsis "Emacs client and library for the Language Server Protocol")
18882 (description "@code{LSP-mode} is a client and library implementation for
18883 the Language Server Protocol. This mode aims to provide an IDE-like
18884 experience by providing optional integration with other popular Emacs packages
18885 like @code{company}, @code{flycheck}, and @code{projectile}.")
18886 (license license:gpl3+)))
18887
18888 (define-public emacs-pfuture
18889 (let ((commit "368254ee30692c709400db413c347e18e76a8a55"))
18890 (package
18891 (name "emacs-pfuture")
18892 (version (git-version "1.6" "1" commit))
18893 (source (origin
18894 (method git-fetch)
18895 (uri (git-reference
18896 (url "https://github.com/Alexander-Miller/pfuture.git")
18897 (commit commit)))
18898 (file-name (git-file-name name version))
18899 (sha256
18900 (base32
18901 "096raqpjx84njws85r7pqq1wi9w9bjwkr0ga1mbbhlna1mfn3mg4"))))
18902 (build-system emacs-build-system)
18903 (home-page
18904 "https://github.com/Alexander-Miller/pfuture")
18905 (synopsis "Simple wrapper around asynchronous processes for Emacs")
18906 (description "This package provides a simple wrapper around asynchronous
18907 processes for Emacs")
18908 (license license:gpl3+))))
18909
18910 (define-public emacs-treemacs
18911 (package
18912 (name "emacs-treemacs")
18913 (version "2.6")
18914 (source (origin
18915 (method git-fetch)
18916 (uri (git-reference
18917 (url "https://github.com/Alexander-Miller/treemacs.git")
18918 (commit version)))
18919 (file-name (git-file-name name version))
18920 (sha256
18921 (base32
18922 "13gs8g05xj7np3i2q3bbxg6zgdiazzn1spxii4x0cyd4pg83c0i1"))))
18923 (build-system emacs-build-system)
18924 (propagated-inputs
18925 `(("emacs-dash" ,emacs-dash)
18926 ("emacs-s" ,emacs-s)
18927 ("emacs-f" ,emacs-f)
18928 ("emacs-ace-window" ,emacs-ace-window)
18929 ("emacs-pfuture" ,emacs-pfuture)
18930 ("emacs-hydra" ,emacs-hydra)
18931 ("emacs-ht" ,emacs-ht)))
18932 (native-inputs
18933 `(("emacs-buttercup" ,emacs-buttercup)
18934 ("emacs-el-mock" ,emacs-el-mock)))
18935 (inputs
18936 `(("python" ,python)))
18937 (arguments
18938 `(#:tests? #t ;TODO: Investigate ‘treemacs--parse-collapsed-dirs’ test failure.
18939 #:phases
18940 (modify-phases %standard-phases
18941 (add-after 'unpack 'fix-makefile
18942 (lambda _
18943 (substitute* "Makefile"
18944 (("@\\$\\(CASK\\) exec ") ""))
18945 #t))
18946 (add-after 'fix-makefile 'chdir-elisp
18947 ;; Elisp directory is not in root of the source.
18948 (lambda _
18949 (chdir "src/elisp")))
18950 (replace 'check
18951 (lambda _
18952 (with-directory-excursion "../.." ;treemacs root
18953 (chmod "test/test-treemacs.el" #o644)
18954 (emacs-substitute-sexps "test/test-treemacs.el"
18955 ("(describe \"treemacs--parse-collapsed-dirs\""
18956 ""))
18957 (invoke "make" "test"))))
18958 (add-before 'install 'patch-paths
18959 (lambda* (#:key inputs outputs #:allow-other-keys)
18960 (with-directory-excursion "../.." ;treemacs root
18961 (chmod "src/elisp/treemacs-core-utils.el" #o644)
18962 (emacs-substitute-variables "src/elisp/treemacs-core-utils.el"
18963 ("treemacs-dir"
18964 (string-append (assoc-ref outputs "out") "/")))
18965 (chmod "src/elisp/treemacs-icons.el" #o644)
18966 (substitute* "src/elisp/treemacs-icons.el"
18967 (("icons/default") "share/emacs-treemacs/images"))
18968 (chmod "src/elisp/treemacs-customization.el" #o644)
18969 (emacs-substitute-variables "src/elisp/treemacs-customization.el"
18970 ("treemacs-python-executable"
18971 (string-append (assoc-ref inputs "python") "/bin/python3")))
18972 (chmod "src/elisp/treemacs-async.el" #o644)
18973 (substitute* "src/elisp/treemacs-async.el"
18974 (("src/scripts") (string-append "share/" ,name "/scripts"))))
18975 #t))
18976 (add-after 'install 'install-data
18977 (lambda* (#:key outputs #:allow-other-keys)
18978 (let ((out (assoc-ref outputs "out")))
18979 (with-directory-excursion "../.." ;treemacs root
18980 (copy-recursively "icons/default"
18981 (string-append out "/share/" ,name "/images"))
18982 (copy-recursively
18983 "src/scripts"
18984 (string-append out "/share/" ,name "/scripts"))
18985 #t)))))))
18986 (home-page "https://github.com/Alexander-Miller/treemacs")
18987 (synopsis "Emacs tree style file explorer")
18988 (description "Powerful and flexible file tree project explorer.")
18989 (license license:gpl3+)))
18990
18991 (define-public emacs-treemacs-extra
18992 (package
18993 (inherit emacs-treemacs)
18994 (name "emacs-treemacs-extra")
18995 (propagated-inputs
18996 `(,@(package-propagated-inputs emacs-treemacs)
18997 ("emacs-evil" ,emacs-evil)
18998 ("emacs-magit" ,emacs-magit)
18999 ("emacs-projectile" ,emacs-projectile)))
19000 (arguments
19001 (substitute-keyword-arguments
19002 (package-arguments emacs-treemacs)
19003 ((#:phases phases)
19004 `(modify-phases ,phases
19005 (add-after 'chdir-elisp 'copy-extra
19006 (lambda _
19007 (copy-recursively "../extra" ".")))))))))
19008
19009 (define-public emacs-lsp-java
19010 (package
19011 (name "emacs-lsp-java")
19012 (version "2.2")
19013 (source (origin
19014 (method git-fetch)
19015 (uri (git-reference
19016 (url "https://github.com/emacs-lsp/lsp-java.git")
19017 (commit version)))
19018 (file-name (git-file-name name version))
19019 (sha256
19020 (base32
19021 "0hcnvbyaqyypgby1bfj4zbrbq97amk8hfx0sj4w73rl46yf4jk3j"))))
19022 (build-system emacs-build-system)
19023 (propagated-inputs
19024 `(("emacs-lsp-mode" ,emacs-lsp-mode)
19025 ("emacs-markdown-mode" ,emacs-markdown-mode)
19026 ("emacs-dash" ,emacs-dash)
19027 ("emacs-f" ,emacs-f)
19028 ("emacs-ht" ,emacs-ht)
19029 ("emacs-request" ,emacs-request)
19030 ("emacs-treemacs" ,emacs-treemacs)))
19031 (home-page "https://github.com/emacs-lsp/lsp-java/")
19032 (synopsis "Java support for lsp-mode")
19033 (description "Emacs Java IDE using Eclipse JDT Language Server.")
19034 (license license:gpl3+)))
19035
19036 (define-public emacs-lsp-ui
19037 (package
19038 (name "emacs-lsp-ui")
19039 (version "6.2")
19040 (source (origin
19041 (method git-fetch)
19042 (uri (git-reference
19043 (url "https://github.com/emacs-lsp/lsp-ui.git")
19044 (commit version)))
19045 (file-name (git-file-name name version))
19046 (sha256
19047 (base32
19048 "024753bi0p1jyjhw7wk8k6s16kbwab5ar4cfasvbn8g08acf293b"))))
19049 (build-system emacs-build-system)
19050 (propagated-inputs
19051 `(("emacs-dash" ,emacs-dash)
19052 ("emacs-lsp-mode" ,emacs-lsp-mode)
19053 ("emacs-markdown-mode" ,emacs-markdown-mode)
19054 ("emacs-flycheck" ,emacs-flycheck)))
19055 (home-page "https://github.com/emacs-lsp/lsp-ui")
19056 (synopsis "User interface extensions for @code{lsp-mode}")
19057 (description
19058 "@code{LSP-ui} contains several enhancements and integrations for
19059 @code{lsp-mode}, such as visual flychecking, displaying references in-line,
19060 and code peeking.")
19061 (license license:gpl3+)))
19062
19063 (define-public emacs-lsp-lua-emmy
19064 (let ((commit "ab53fb2a8b8942804eb75bab5624fd19f1d360bf"))
19065 (package
19066 (name "emacs-lsp-lua-emmy")
19067 (version (git-version "0.1.0" "1" commit))
19068 (source (origin
19069 (method git-fetch)
19070 (uri (git-reference
19071 (url "https://github.com/phenix3443/lsp-lua-emmy.git")
19072 (commit commit)))
19073 (file-name (git-file-name name version))
19074 (sha256
19075 (base32
19076 "0rbizis73n1w5ig07fj1han74chbc1zpbp5bn37rj0gz608aqka8"))))
19077 (build-system emacs-build-system)
19078 (propagated-inputs
19079 `(("emacs-lsp-mode" ,emacs-lsp-mode)))
19080 (home-page "https://github.com/phenix3443/lsp-lua-emmy/")
19081 (synopsis "Lua support in @code{lsp-mode} client for Emacs")
19082 (description "This package provides a Lua language support in
19083 @code{lsp-mode} client for Emacs.")
19084 (license license:gpl3+))))
19085
19086 (define-public emacs-lsp-ivy
19087 (let ((commit "caf1e1d7e22ed0b5fe18dd508d1a6f83dd163288")
19088 (revision "2"))
19089 (package
19090 (name "emacs-lsp-ivy")
19091 (version (git-version "0.1" revision commit))
19092 (source (origin
19093 (method git-fetch)
19094 (uri (git-reference
19095 (url "https://github.com/emacs-lsp/lsp-ivy.git")
19096 (commit commit)))
19097 (file-name (git-file-name name version))
19098 (sha256
19099 (base32
19100 "084ds4qhzhivfnicy3h7z4mblxgcqx8pfnkbjr9qjrfng7cisy4z"))))
19101 (build-system emacs-build-system)
19102 (propagated-inputs
19103 `(("emacs-ivy" ,emacs-ivy)
19104 ("emacs-lsp-mode" ,emacs-lsp-mode)
19105 ("emacs-dash" ,emacs-dash)))
19106 (home-page "https://github.com/emacs-lsp/lsp-ivy")
19107 (synopsis "Provide LSP-enhanced completion for symbols")
19108 (description
19109 "This package enhances @code{ivy} with completion for symbols from
19110 workspaces with a LSP-compliant server running.")
19111 (license license:gpl3+))))
19112
19113 (define-public emacs-helm-lsp
19114 (let ((commit "3a58ca4cfd94b9ab1e15e819d3b16ef568e8889b")
19115 (revision "1"))
19116 (package
19117 (name "emacs-helm-lsp")
19118 (version (git-version "0.1" revision commit))
19119 (source (origin
19120 (method git-fetch)
19121 (uri (git-reference
19122 (url "https://github.com/emacs-lsp/helm-lsp.git")
19123 (commit commit)))
19124 (file-name (git-file-name name version))
19125 (sha256
19126 (base32
19127 "0wh5zai3s17ss2q8wcdd6d87hv1h3nbyrxxs4js9cas8m6y2ssjv"))))
19128 (build-system emacs-build-system)
19129 (propagated-inputs
19130 `(("emacs-helm" ,emacs-helm)
19131 ("emacs-lsp-mode" ,emacs-lsp-mode)
19132 ("emacs-dash" ,emacs-dash)))
19133 (home-page "https://github.com/emacs-lsp/helm-lsp")
19134 (synopsis "Provide LSP-enhanced completion for symbols")
19135 (description
19136 "This package enhances @code{helm} with completion for symbols from
19137 workspaces with a LSP-compliant server running.")
19138 (license license:gpl3+))))
19139
19140 (define-public emacs-helm-notmuch
19141 (package
19142 (name "emacs-helm-notmuch")
19143 (version "1.2")
19144 (home-page "https://github.com/emacs-helm/helm-notmuch/")
19145 (source (origin
19146 (method git-fetch)
19147 (uri (git-reference
19148 (url home-page)
19149 (commit version)))
19150 (file-name (git-file-name name version))
19151 (sha256
19152 (base32
19153 "1k038dbdpaa411gl4071x19fklhnizhr346plxw23lsnxir9dhqc"))))
19154 (build-system emacs-build-system)
19155 (propagated-inputs
19156 `(("emacs-helm" ,emacs-helm)
19157 ("notmuch" ,notmuch)))
19158 (synopsis "Search emails with Emacs Notmuch and Helm")
19159 (description
19160 "This package can be used to search emails in Emacs, searching result
19161 displays as you type thanks to Helm, though @command{notmuch-search} does the
19162 real search.")
19163 (license license:gpl3+)))
19164
19165 (define-public emacs-elmacro
19166 (let ((commit "89b9b0feabafd01fee48111d67131c4c9b5fed9a"))
19167 (package
19168 (name "emacs-elmacro")
19169 (version (git-version "1.1.0" "1" commit))
19170 (home-page "https://github.com/Silex/elmacro")
19171 (source (origin
19172 (method git-fetch)
19173 (uri (git-reference
19174 (url home-page)
19175 (commit commit)))
19176 (file-name (git-file-name name version))
19177 (sha256
19178 (base32
19179 "06wkzafh6vbcjf0m3sl253mgcq32p8cdv7vsfmyx51baa36938ha"))))
19180 (build-system emacs-build-system)
19181 (propagated-inputs
19182 `(("emacs-s" ,emacs-s)
19183 ("emacs-dash" ,emacs-dash)))
19184 (synopsis "Convert keyboard macros to Emacs Lisp")
19185 (description
19186 "This package displays keyboard macros or latest interactive commands
19187 as Emacs Lisp.")
19188 (license license:gpl3+))))
19189
19190 (define-public emacs-transient
19191 ;; 0.1.0 depends on lv.el but not later versions.
19192 (let ((commit "7e45a57ec81185631fe763733f64c99021df2a06"))
19193 (package
19194 (name "emacs-transient")
19195 (version (git-version "0.1.0" "1" commit))
19196 (source (origin
19197 (method git-fetch)
19198 (uri (git-reference
19199 (url "https://github.com/magit/transient")
19200 (commit commit)))
19201 (file-name (git-file-name name version))
19202 (sha256
19203 (base32
19204 "0r6d4c1lga3bk0s7q7y4v4hbpxnd9h40cjxybqvax2z902931fz1"))))
19205 (build-system gnu-build-system)
19206 (native-inputs `(("texinfo" ,texinfo)
19207 ("emacs" ,emacs-minimal)))
19208 (propagated-inputs
19209 `(("dash" ,emacs-dash)))
19210 (arguments
19211 `(#:modules ((guix build gnu-build-system)
19212 (guix build utils)
19213 (srfi srfi-26)
19214 (guix build emacs-utils))
19215 #:imported-modules (,@%gnu-build-system-modules
19216 (guix build emacs-utils))
19217 #:tests? #f ; tests are not included in the release
19218 #:make-flags (list "lisp" "info")
19219 #:phases
19220 (modify-phases %standard-phases
19221 (delete 'configure)
19222 (replace 'install
19223 (lambda* (#:key inputs outputs #:allow-other-keys)
19224 (let* ((out (assoc-ref outputs "out"))
19225 (lisp (string-append out "/share/emacs/site-lisp"))
19226 (info (string-append out "/share/info")))
19227 (for-each (cut install-file <> lisp)
19228 (find-files "." "\\.elc*$"))
19229 (install-file "docs/transient.info" (string-append info)))
19230 #t)))))
19231 (home-page "https://magit.vc/manual/transient")
19232 (synopsis "Transient commands in Emacs")
19233 (description
19234 "Taking inspiration from prefix keys and prefix arguments in Emacs,
19235 Transient implements a similar abstraction involving a prefix command, infix
19236 arguments and suffix commands. We could call this abstraction a \"transient
19237 command\", but because it always involves at least two commands (a prefix and
19238 a suffix) we prefer to call it just a \"transient\".")
19239 (license license:gpl3+))))
19240
19241 (define-public emacs-forge
19242 (let ((commit "63cbf81f166fc71861d8e3d246df8e5ccedcb9bb"))
19243 (package
19244 (name "emacs-forge")
19245 (version (git-version "0.1.0" "3" commit))
19246 (source
19247 (origin
19248 (method git-fetch)
19249 (uri (git-reference
19250 (url "https://github.com/magit/forge.git")
19251 (commit commit)))
19252 (file-name (git-file-name name version))
19253 (sha256
19254 (base32
19255 "1yf2xjx3459py6rji740jm8bmh2pv66ghnbjxsvjd4jf9kcdav83"))))
19256 (build-system emacs-build-system)
19257 (native-inputs
19258 `(("texinfo" ,texinfo)
19259 ("emacs" ,emacs-minimal)))
19260 (propagated-inputs
19261 `(("emacs-closql" ,emacs-closql)
19262 ("emacs-dash" ,emacs-dash)
19263 ("emacs-emacsql-sqlite" ,emacs-emacsql)
19264 ("emacs-ghub" ,emacs-ghub)
19265 ("emacs-let-alist" ,emacs-let-alist)
19266 ("emacs-magit" ,emacs-magit)
19267 ("emacs-markdown-mode" ,emacs-markdown-mode)
19268 ("emacs-transient" ,emacs-transient)))
19269 (arguments
19270 `(#:tests? #f ;no tests
19271 #:phases
19272 (modify-phases %standard-phases
19273 (add-after 'unpack 'build-info-manual
19274 (lambda _
19275 (invoke "make" "info")
19276 ;; Move the info file to lisp so that it gets installed by the
19277 ;; emacs-build-system.
19278 (rename-file "docs/forge.info" "lisp/forge.info")))
19279 (add-after 'build-info-manual 'chdir-lisp
19280 (lambda _
19281 (chdir "lisp")
19282 #t)))))
19283 (home-page "https://github.com/magit/forge/")
19284 (synopsis "Access Git forges from Magit")
19285 (description "Work with Git forges, such as Github and Gitlab, from the
19286 comfort of Magit and the rest of Emacs.")
19287 (license license:gpl3+))))
19288
19289 (define-public emacs-matcha
19290 (let ((commit "c7df5cf5cdac9ae369e241342389ccda0205eab9"))
19291 (package
19292 (name "emacs-matcha")
19293 (version (git-version "0.0.1" "1" commit)) ;no upstream release
19294 (source (origin
19295 (method git-fetch)
19296 (uri (git-reference
19297 (url "https://github.com/jojojames/matcha.git")
19298 (commit commit)))
19299 (file-name (git-file-name name version))
19300 (sha256
19301 (base32
19302 "1lfnh1glg6al677m7ci0x8g5wjdhjxlfl3nv1f1ppsw4dpnwsj9b"))))
19303 (propagated-inputs
19304 `(("emacs-hydra" ,emacs-hydra)
19305 ("emacs-transient" ,emacs-transient)))
19306 (build-system emacs-build-system)
19307 (home-page "https://github.com/jojojames/matcha/")
19308 (synopsis "Collection of hydras with a generic interface to launch them")
19309 (description "Matcha provides a collection of transients for various
19310 packages with a consistent way to use them.")
19311 (license license:gpl3+))))
19312
19313 (define-public emacs-undo-propose-el
19314 (let ((commit "f80baee566807d733fbacbab08a897bcd62579c3")
19315 (revision "3"))
19316 (package
19317 (name "emacs-undo-propose-el")
19318 (version (git-version "3.0.0" revision commit))
19319 (source
19320 (origin
19321 (method git-fetch)
19322 (uri (git-reference
19323 (url "https://github.com/jackkamm/undo-propose-el")
19324 (commit commit)))
19325 (file-name (git-file-name name version))
19326 (sha256
19327 (base32
19328 "00rqz63bhh66q78l646q3w16gydygj8h4d8np0dpbifgzciak90b"))))
19329 (build-system emacs-build-system)
19330 (arguments
19331 `(#:tests? #t
19332 #:test-command '("make" "test")))
19333 (home-page "https://github.com/jackkamm/undo-propose-el")
19334 (synopsis "Simple and safe navigation of @code{undo} history")
19335 (description "This package permits navigation of @code{undo} history in a
19336 temporary buffer, which is read-only save for @code{undo} commands, and
19337 subsequent committal of a chain of @code{undo} commands as a single edit in
19338 the @code{undo} history.")
19339 (license license:gpl3+))))
19340
19341 (define-public emacs-elisp-docstring-mode
19342 (let ((commit "f512e509dd690f65133e55563ebbfd2dede5034f")
19343 (version "0.0.1")
19344 (revision "1"))
19345 (package
19346 (name "emacs-elisp-docstring-mode")
19347 (version (git-version version revision commit))
19348 (source
19349 (origin
19350 (method git-fetch)
19351 (uri (git-reference
19352 (url "https://github.com/Fuco1/elisp-docstring-mode")
19353 (commit commit)))
19354 (file-name (git-file-name name version))
19355 (sha256
19356 (base32
19357 "0al8m75p359h4n82rf0dsl22qfdg9cwwywn5pn7x6gb96c7qrqaa"))))
19358 (build-system emacs-build-system)
19359 (home-page "https://github.com/Fuco1/elisp-docstring-mode")
19360 (synopsis "Major mode for editing Emacs Lisp docstrings")
19361 (description "This package provides font lock and automatic escaping and
19362 unescaping of quotes.")
19363 (license license:gpl3+))))
19364
19365 (define-public emacs-vimrc-mode
19366 (let ((commit "13bc150a870d5d4a95f1111e4740e2b22813c30e")
19367 (version "0.3.1")
19368 (revision "1"))
19369 (package
19370 (name "emacs-vimrc-mode")
19371 (version (git-version version revision commit))
19372 (source
19373 (origin
19374 (method git-fetch)
19375 (uri (git-reference
19376 (url "https://github.com/mcandre/vimrc-mode")
19377 (commit commit)))
19378 (file-name (git-file-name name version))
19379 (sha256
19380 (base32
19381 "0026dqs3hwygk2k2xfra90w5sfnxrfj7l69jz7sq5glavbf340pk"))))
19382 (build-system emacs-build-system)
19383 (home-page "https://github.com/mcandre/vimrc-mode")
19384 (synopsis "Major mode for Vimscript")
19385 (description "This package provides font lock and @code{beginning-} and
19386 @code{end-of-defun} functions for Vimscript files.")
19387 (license license:gpl3+))))
19388
19389 (define-public emacs-flycheck-elm
19390 (let ((revision "0")
19391 (commit "1b60050efd4729bfba548f3e5adbcb58436667cb"))
19392 (package
19393 (name "emacs-flycheck-elm")
19394 (version (git-version "0" revision commit))
19395 (source
19396 (origin
19397 (method git-fetch)
19398 (uri
19399 (git-reference
19400 (url "https://github.com/bsermons/flycheck-elm")
19401 (commit commit)))
19402 (file-name (git-file-name name version))
19403 (sha256
19404 (base32 "1kjms9d2c98ffd1qxs879qhg0n4jzic0r5kni9y4gz3v09ww8zms"))))
19405 (build-system emacs-build-system)
19406 (propagated-inputs
19407 `(("emacs-flycheck" ,emacs-flycheck)
19408 ("emacs-let-alist" ,emacs-let-alist)))
19409 (home-page "https://github.com/bsermons/flycheck-elm")
19410 (synopsis "Flycheck support for the Elm language")
19411 (description "Flycheck Elm adds Flycheck support for Elm language.")
19412 (license license:gpl3+))))
19413
19414 (define-public emacs-flycheck-haskell
19415 (let ((commit "32ddff87165a7d3a35e7318bee997b5b4bd41278")
19416 (revision "2"))
19417 (package
19418 (name "emacs-flycheck-haskell")
19419 (version (git-version "0.8" revision commit))
19420 (source
19421 (origin
19422 (method git-fetch)
19423 (uri (git-reference
19424 (url "https://github.com/flycheck/flycheck-haskell")
19425 (commit commit)))
19426 (file-name (git-file-name name version))
19427 (sha256
19428 (base32
19429 "10pgsbagq6qj4mshq5sypv0q0khck92b30sc793b4g1pfpsxvgjn"))))
19430 (build-system emacs-build-system)
19431 (propagated-inputs
19432 `(("emacs-dash" ,emacs-dash)
19433 ("emacs-seq" ,emacs-seq)
19434 ("emacs-flycheck" ,emacs-flycheck)
19435 ("emacs-haskell-mode" ,emacs-haskell-mode)
19436 ("emacs-let-alist" ,emacs-let-alist)))
19437 (arguments
19438 `(#:include '("\\.el$" "\\.hs$")))
19439 (home-page "https://github.com/flycheck/flycheck-haskell")
19440 (synopsis "Flycheck for Haskell")
19441 (description "This package configures syntax-checking for Haskell
19442 buffers.")
19443 (license license:gpl3+))))
19444
19445 (define-public emacs-js2-refactor-el
19446 (let ((commit "d4c40b5fc86d3edd7c6a7d83ac86483ee1cb7a28")
19447 (revision "2"))
19448 (package
19449 (name "emacs-js2-refactor-el")
19450 (version (git-version "0.9.0" revision commit))
19451 (source
19452 (origin
19453 (method git-fetch)
19454 (uri (git-reference
19455 (url "https://github.com/magnars/js2-refactor.el")
19456 (commit commit)))
19457 (file-name (git-file-name name version))
19458 (sha256
19459 (base32
19460 "08b25y3raz0p98zxk9xdd8nj9shqd6mzrqhbq1gg4cwsmi7h7ly1"))))
19461 (build-system emacs-build-system)
19462 (propagated-inputs
19463 `(("emacs-dash" ,emacs-dash)
19464 ("emacs-s" ,emacs-s)
19465 ("emacs-js2-mode" ,emacs-js2-mode)
19466 ("emacs-yasnippet" ,emacs-yasnippet)
19467 ("emacs-multiple-cursors" ,emacs-multiple-cursors)))
19468 (native-inputs
19469 `(("emacs-buttercup" ,emacs-buttercup)
19470 ("emacs-espuds" ,emacs-espuds)))
19471 (home-page "https://github.com/magnars/js2-refactor.el")
19472 (synopsis "JavaScript refactoring in Emacs")
19473 (description "This package provides various refactoring functions for
19474 JavaScript.")
19475 (license license:gpl3+))))
19476
19477 (define-public emacs-prettier
19478 (let ((commit "e9b73e81d3e1642aec682195f127a42dfb0b5774")
19479 (version "0.1.0")
19480 (revision "1"))
19481 (package
19482 (name "emacs-prettier")
19483 (version (git-version version revision commit))
19484 (source
19485 (origin
19486 (method git-fetch)
19487 (uri (git-reference
19488 (url "https://github.com/prettier/prettier-emacs")
19489 (commit commit)))
19490 (file-name (git-file-name name version))
19491 (sha256
19492 (base32
19493 "0hj4fv3fgc60i6jrsx4a81s5c9fsxxafhhs3q2q1dypsscjci9ph"))))
19494 (build-system emacs-build-system)
19495 (home-page "https://github.com/prettier/prettier-emacs")
19496 (synopsis "Automatic formatting of JavaScript code")
19497 (description "This package integrates Prettier with Emacs, and
19498 provides a minor mode that autoformats the buffer upon saving.")
19499 (license license:expat))))
19500
19501 (define-public emacs-fish-mode
19502 (package
19503 (name "emacs-fish-mode")
19504 (version "0.1.4")
19505 (source
19506 (origin
19507 (method git-fetch)
19508 (uri (git-reference
19509 (url "https://github.com/wwwjfy/emacs-fish")
19510 (commit version)))
19511 (file-name (git-file-name name version))
19512 (sha256
19513 (base32
19514 "0a74ghmjjrxfdhk4mvq6lar4w6l6lc4iilabs99smqr2fn5rsslq"))))
19515 (build-system emacs-build-system)
19516 (home-page "https://github.com/wwwjfy/emacs-fish")
19517 (synopsis "Major mode for Fish shell scripts")
19518 (description "This package provides syntax highlighting and indentation
19519 functions for Fish shell scripts.")
19520 (license license:gpl3+)))
19521
19522 (define-public emacs-eshell-up
19523 (let ((commit "9c100bae5c3020e8d9307e4332d3b64e7dc28519")
19524 (version "0.0.3")
19525 (revision "12"))
19526 (package
19527 (name "emacs-eshell-up")
19528 (version (git-version version revision commit))
19529 (source
19530 (origin
19531 (method git-fetch)
19532 (uri (git-reference
19533 (url "https://github.com/peterwvj/eshell-up")
19534 (commit commit)))
19535 (file-name (git-file-name name version))
19536 (sha256
19537 (base32
19538 "00zdbcncjabgj5mp47l1chymx5na18v2g4kj730dgmj3rnl3iz2q"))))
19539 (build-system emacs-build-system)
19540 (home-page "https://github.com/peterwvj/eshell-up")
19541 (synopsis "Quickly go to a parent directory in @code{Eshell}")
19542 (description "This package provides quick navigation to a specific
19543 parent directory using @code{Eshell}.")
19544 (license license:gpl3+))))
19545
19546 (define-public emacs-tco-el
19547 (let ((commit "482db5313f090b17ed22ccd856f0e141dc75afe6")
19548 (revision "1"))
19549 (package
19550 (name "emacs-tco-el")
19551 (version (git-version "0.3" revision commit))
19552 (source
19553 (origin
19554 (method git-fetch)
19555 (uri (git-reference
19556 (url "https://github.com/Wilfred/tco.el")
19557 (commit commit)))
19558 (file-name (git-file-name name version))
19559 (sha256
19560 (base32
19561 "1z7xkbrqznk6ni687qqknp8labcyhl8y6576hjfri89fn21385y9"))))
19562 (build-system emacs-build-system)
19563 (propagated-inputs
19564 `(("emacs-dash" ,emacs-dash)))
19565 (native-inputs
19566 `(("emacs-ert-runner" ,emacs-ert-runner)
19567 ("emacs-undercover" ,emacs-undercover)))
19568 (arguments
19569 `(#:tests? #t
19570 #:test-command '("ert-runner")))
19571 (home-page "https://github.com/Wilfred/tco.el")
19572 (synopsis "Tail-call optimization for Emacs Lisp")
19573 (description "This package provides tail-call optimization for Emacs
19574 Lisp functions that call themselves in tail position.")
19575 (license license:gpl3+))))
19576
19577 (define-public emacs-equake
19578 (let ((commit "7eddc025ee61b83029363e22219af228b8c20681")
19579 (revision "2"))
19580 (package
19581 (name "emacs-equake")
19582 (version (git-version "0.85" revision commit))
19583 (source
19584 (origin
19585 (method git-fetch)
19586 (uri (git-reference
19587 (url "https://gitlab.com/emacsomancer/equake/")
19588 (commit commit)))
19589 (file-name (git-file-name name version))
19590 (sha256
19591 (base32
19592 "1c55pbqak3d02sw6z1139baxzy401b90g0gxzcc3j6sgplz6sc6w"))))
19593 (build-system emacs-build-system)
19594 (propagated-inputs
19595 `(("emacs-dash" ,emacs-dash)
19596 ("emacs-tco-el" ,emacs-tco-el)))
19597 (home-page "https://gitlab.com/emacsomancer/equake/")
19598 (synopsis "Drop-down console for @code{Eshell} and terminal emulators")
19599 (description "This package provides a Quake-style drop-down console
19600 compatible with Emacs' shell modes.")
19601 (license license:gpl3+))))
19602
19603 (define-public emacs-vdiff
19604 (let ((commit "09e15fc932bfd2febe1d4a65780a532394562b07")
19605 (revision "1"))
19606 (package
19607 (name "emacs-vdiff")
19608 (version (git-version "0.2.3" revision commit))
19609 (source
19610 (origin
19611 (method git-fetch)
19612 (uri (git-reference
19613 (url "https://github.com/justbur/emacs-vdiff.git")
19614 (commit commit)))
19615 (file-name (git-file-name name version))
19616 (sha256
19617 (base32
19618 "1gvqi5l4zs872nn4pmj603aza09d81qad2rgijzv268lif8z34db"))))
19619 (build-system emacs-build-system)
19620 (propagated-inputs
19621 `(("emacs-hydra" ,emacs-hydra)))
19622 (arguments
19623 `(#:tests? #t
19624 #:test-command '("emacs" "-Q" "-batch" "-L" "."
19625 "-l" "vdiff-test.el"
19626 "-f" "ert-run-tests-batch-and-exit")))
19627 (home-page "https://github.com/justbur/emacs-vdiff/")
19628 (synopsis "Frontend for diffing based on vimdiff")
19629 (description "This package permits comparisons of two or three buffers
19630 based on diff output.")
19631 (license license:gpl3+))))
19632
19633 (define-public emacs-vdiff-magit
19634 ;; Need to use a more recent commit than the latest release version because
19635 ;; of Magit and Transient
19636 (let ((commit "b100d126c69e5c26a61ae05aa1778bcc4302b597")
19637 (version "0.3.2")
19638 (revision "8"))
19639 (package
19640 (name "emacs-vdiff-magit")
19641 (version (git-version version revision commit))
19642 (source
19643 (origin
19644 (method git-fetch)
19645 (uri (git-reference
19646 (url "https://github.com/justbur/emacs-vdiff-magit/")
19647 (commit commit)))
19648 (file-name (git-file-name name version))
19649 (sha256
19650 (base32
19651 "16cjmrzflf2i1w01973sl944xrfanakba8sb4dpwi79d92xp03xy"))))
19652 (build-system emacs-build-system)
19653 (propagated-inputs
19654 `(("emacs-vdiff" ,emacs-vdiff)
19655 ("emacs-magit" ,emacs-magit)
19656 ("emacs-transient" ,emacs-transient)))
19657 (home-page "https://github.com/justbur/emacs-vdiff-magit/")
19658 (synopsis "Frontend for diffing based on vimdiff")
19659 (description "This package permits comparisons of two or three buffers
19660 based on diff output.")
19661 (license license:gpl3+))))
19662
19663 (define-public emacs-all-the-icons-dired
19664 (let ((commit "980b7747d6c4a7992a1ec56afad908956db0a519")
19665 (version "1.0")
19666 (revision "1"))
19667 (package
19668 (name "emacs-all-the-icons-dired")
19669 (version (git-version version revision commit))
19670 (source
19671 (origin
19672 (method git-fetch)
19673 (uri (git-reference
19674 (url "https://github.com/jtbm37/all-the-icons-dired/")
19675 (commit commit)))
19676 (file-name (git-file-name name version))
19677 (sha256
19678 (base32
19679 "1pvbgyxfj4j205nj1r02045f1y4wgavdsk7f45hxkkhms1rj8jyy"))))
19680 (build-system emacs-build-system)
19681 (propagated-inputs
19682 `(("emacs-all-the-icons" ,emacs-all-the-icons)))
19683 (home-page "https://github.com/jtbm37/all-the-icons-dired/")
19684 (synopsis "Show icons for each file in @code{dired-mode}")
19685 (description "This package allows icons from @file{all-the-icons.el} to
19686 be used in @code{dired-mode}.")
19687 (license license:gpl3+))))
19688
19689 (define-public emacs-exwm-edit
19690 (let ((commit "bc25ba094b383be3c650ca0b7e1534efe2bb154f")
19691 (version "0.0.1")
19692 (revision "2"))
19693 (package
19694 (name "emacs-exwm-edit")
19695 (version (git-version version revision commit))
19696 (source
19697 (origin
19698 (method git-fetch)
19699 (uri (git-reference
19700 (url "https://github.com/agzam/exwm-edit/")
19701 (commit commit)))
19702 (file-name (git-file-name name version))
19703 (sha256
19704 (base32
19705 "1z1ya9xgknka3dy3b3x8zzfkxdx5jqsi8q5aqkvxjxa6n7mmqdwv"))))
19706 (build-system emacs-build-system)
19707 (propagated-inputs
19708 `(("emacs-exwm" ,emacs-exwm)))
19709 (home-page "https://github.com/agzam/exwm-edit/")
19710 (synopsis "Open temp buffers for editing text from EXWM buffers")
19711 (description "This package facilitates editing text from EXWM buffers by
19712 generating a temp buffer in which any useful Emacs utilities and modes can be
19713 invoked.")
19714 (license license:gpl3+))))
19715
19716 (define-public emacs-ert-async
19717 (package
19718 (name "emacs-ert-async")
19719 (version "0.1.2")
19720 (source
19721 (origin
19722 (method git-fetch)
19723 (uri (git-reference
19724 (url "https://github.com/rejeep/ert-async.el")
19725 (commit (string-append "v" version))))
19726 (file-name (git-file-name name version))
19727 (sha256
19728 (base32
19729 "0hn9i405nfhjd1h9vnwj43nxbbz00khrwkjq0acfyxjaz1shfac9"))))
19730 (build-system emacs-build-system)
19731 (home-page "https://github.com/rejeep/ert-async.el")
19732 (synopsis "Async support for ERT")
19733 (description "This package allows ERT to work with asynchronous tests.")
19734 (license license:gpl3+)))
19735
19736 (define-public emacs-prodigy-el
19737 (let ((commit "0a12eec1f001a4eef16b2c0c524f02f2647a4ff1")
19738 (revision "2"))
19739 (package
19740 (name "emacs-prodigy-el")
19741 (version (git-version "0.7.0" revision commit))
19742 (source
19743 (origin
19744 (method git-fetch)
19745 (uri (git-reference
19746 (url "https://github.com/rejeep/prodigy.el")
19747 (commit commit)))
19748 (file-name (git-file-name name version))
19749 (sha256
19750 (base32
19751 "02kysq57kqzg0zkhaf302ada9cp9spgp71z8vbdq4c7dl6x75h4g"))))
19752 (build-system emacs-build-system)
19753 (propagated-inputs
19754 `(("emacs-dash" ,emacs-dash)
19755 ("emacs-s" ,emacs-s)
19756 ("emacs-f" ,emacs-f)))
19757 (native-inputs
19758 `(("emacs-el-mock" ,emacs-el-mock)
19759 ("emacs-ert-async" ,emacs-ert-async)))
19760 (home-page "https://github.com/rejeep/prodigy.el")
19761 (synopsis "Manage external services from within Emacs")
19762 (description "This package provides a GUI for defining and monitoring services.")
19763 (license license:gpl3+))))
19764
19765 (define-public emacs-web-server
19766 (let ((commit "cafa5b7582c57252a0884b2c33da9b18fb678713")
19767 (revision "1"))
19768 (package
19769 (name "emacs-web-server")
19770 (version (git-version "0.1.0" revision commit))
19771 (source
19772 (origin
19773 (method git-fetch)
19774 (uri (git-reference
19775 (url "https://github.com/eschulte/emacs-web-server/")
19776 (commit commit)))
19777 (file-name (git-file-name name version))
19778 (sha256
19779 (base32
19780 "1c0lfqmbs5hvz3fh3c8wgp6ipwmxrwx9xj264bjpj3phixd5419y"))))
19781 (build-system emacs-build-system)
19782 (native-inputs
19783 `(("curl" ,curl)))
19784 (arguments
19785 `(#:phases
19786 (modify-phases %standard-phases
19787 (add-after 'unpack 'set-shell
19788 ;; Setting the SHELL environment variable is required for the tests
19789 ;; to find sh.
19790 (lambda _
19791 (setenv "SHELL" (which "sh"))
19792 #t)))
19793 #:tests? #t
19794 #:test-command '("make" "check")))
19795 (home-page "https://github.com/eschulte/emacs-web-server/")
19796 (synopsis "Web server with handlers in Emacs Lisp")
19797 (description "This package supports HTTP GET and POST requests with
19798 url-encoded parameters, as well as web sockets.")
19799 (license license:gpl3+))))
19800
19801 (define-public emacs-markdown-preview-mode
19802 (package
19803 (name "emacs-markdown-preview-mode")
19804 (version "0.9.2")
19805 (source
19806 (origin
19807 (method git-fetch)
19808 (uri (git-reference
19809 (url "https://github.com/ancane/markdown-preview-mode")
19810 (commit (string-append "v" version))))
19811 (file-name (git-file-name name version))
19812 (sha256
19813 (base32
19814 "1d1id99gagymvzdfa1mwqh8y3szm8ii47rpijkfi1qnifjg5jaq9"))))
19815 (build-system emacs-build-system)
19816 (propagated-inputs
19817 `(("emacs-markdown-mode" ,emacs-markdown-mode)
19818 ("emacs-websocket" ,emacs-websocket)
19819 ("emacs-web-server" ,emacs-web-server)))
19820 (arguments '(#:include '("\\.el$" "\\.html$")))
19821 (home-page "https://github.com/ancane/markdown-preview-mode")
19822 (synopsis "Preview Markdown files")
19823 (description "This package provides a minor mode for preview of Markdown
19824 files, and sends rendered Markdown to a web browser.")
19825 (license license:gpl3+)))
19826
19827 (define-public emacs-dotenv-mode
19828 (package
19829 (name "emacs-dotenv-mode")
19830 (version "0.2.4")
19831 (source
19832 (origin
19833 (method git-fetch)
19834 (uri (git-reference
19835 (url "https://github.com/preetpalS/emacs-dotenv-mode")
19836 (commit (string-append "v" version))))
19837 (file-name (git-file-name name version))
19838 (sha256
19839 (base32
19840 "1fplkhxnsgdrg10iqsmw162zny2idz4vvv35spsb9j0hsk8imclc"))))
19841 (build-system emacs-build-system)
19842 (home-page "https://github.com/preetpalS/emacs-dotenv-mode")
19843 (synopsis "Major mode for @file{.env} files")
19844 (description "This package provides syntax highlighting for @file{.env}
19845 files.")
19846 (license license:gpl3+)))
19847
19848 (define-public emacs-add-node-modules-path
19849 (let ((commit "f31e69ccb681f882aebb806ce6e9478e3ac39708")
19850 (version "1.2.0")
19851 (revision "10"))
19852 (package
19853 (name "emacs-add-node-modules-path")
19854 (version (git-version version revision commit))
19855 (source
19856 (origin
19857 (method git-fetch)
19858 (uri (git-reference
19859 (url "https://github.com/codesuki/add-node-modules-path")
19860 (commit commit)))
19861 (file-name (git-file-name name version))
19862 (sha256
19863 (base32
19864 "0p106bqmvdr8by5iv02bshm339qbrjcch2d15mrm4h3nav03v306"))))
19865 (build-system emacs-build-system)
19866 (home-page "https://github.com/codesuki/add-node-modules-path")
19867 (synopsis "Add @file{node_modules} to the buffer-local @file{exec-path}")
19868 (description "This package searches the parent directories of the
19869 current file for the project's @file{node_modules/.bin/} directory, allowing
19870 Emacs to find project-specific installations of packages.")
19871 (license license:expat))))
19872
19873 (define-public emacs-flow-minor-mode
19874 (let ((commit "d1b32a7dd0d33c6a00a106da5f4b2323602cbd3e")
19875 (version "0.3")
19876 (revision "4"))
19877 (package
19878 (name "emacs-flow-minor-mode")
19879 (version (git-version version revision commit))
19880 (source
19881 (origin
19882 (method git-fetch)
19883 (uri (git-reference
19884 (url "https://github.com/an-sh/flow-minor-mode")
19885 (commit commit)))
19886 (file-name (git-file-name name version))
19887 (sha256
19888 (base32
19889 "169r4ib9qg9q6fm3p0p23qs1qx4pa9pg1qvyq4ysr85i7kwygppl"))))
19890 (build-system emacs-build-system)
19891 (home-page "https://github.com/an-sh/flow-minor-mode")
19892 (synopsis "Minor mode for JavaScript Flow files")
19893 (description "This package integrates Flow with Emacs, allowing for
19894 definition-jumping and type-checking on demand.")
19895 (license license:bsd-3))))
19896
19897 (define-public emacs-rjsx-mode
19898 (let ((commit "0e7fa6b4facdec4f85a7a8865bdf59dfd57217b5")
19899 (revision "2"))
19900 (package
19901 (name "emacs-rjsx-mode")
19902 (version (git-version "0.4" revision commit))
19903 (source
19904 (origin
19905 (method git-fetch)
19906 (uri (git-reference
19907 (url "https://github.com/felipeochoa/rjsx-mode")
19908 (commit commit)))
19909 (file-name (git-file-name name version))
19910 (sha256
19911 (base32
19912 "0s0871sx3ch09kgvbcp9na4zdrfrda62xjq8m9knbq5vnj8q8qpi"))))
19913 (build-system emacs-build-system)
19914 (propagated-inputs
19915 `(("emacs-js2-mode" ,emacs-js2-mode)))
19916 (arguments
19917 `(#:tests? #t
19918 #:test-command '("make" "test")))
19919 (home-page "https://github.com/felipeochoa/rjsx-mode")
19920 (synopsis "Major mode for JSX files")
19921 (description "This package extends the parser of @code{js2-mode} to
19922 support JSX syntax.")
19923 (license license:expat))))
19924
19925 (define-public emacs-origami-el
19926 (let ((commit "1f38085c8f9af7842765ed63f7d6dfe4dab59366")
19927 (version "1.0")
19928 (revision "1"))
19929 (package
19930 (name "emacs-origami-el")
19931 (version (git-version version revision commit))
19932 (source
19933 (origin
19934 (method git-fetch)
19935 (uri (git-reference
19936 (url "https://github.com/gregsexton/origami.el")
19937 (commit commit)))
19938 (file-name (git-file-name name version))
19939 (sha256
19940 (base32
19941 "0ha1qsz2p36pqa0sa2sp83lspbgx5lr7930qxnwd585liajzdd9x"))))
19942 (build-system emacs-build-system)
19943 (propagated-inputs
19944 `(("emacs-dash" ,emacs-dash)
19945 ("emacs-s" ,emacs-s)))
19946 (home-page "https://github.com/gregsexton/origami.el")
19947 (synopsis "Flexible text-folding")
19948 (description "This package provides a minor mode for collapsing and
19949 expanding regions of text without modifying the actual contents.")
19950 (license license:expat))))
19951
19952 (define-public emacs-peep-dired
19953 (let ((commit "c88a9a3050197840edfe145f11e0bb9488de32f4")
19954 (version "0")
19955 (revision "1"))
19956 (package
19957 (name "emacs-peep-dired")
19958 (version (git-version version revision commit))
19959 (source
19960 (origin
19961 (method git-fetch)
19962 (uri (git-reference
19963 (url "https://github.com/asok/peep-dired")
19964 (commit commit)))
19965 (file-name (git-file-name name version))
19966 (sha256
19967 (base32
19968 "1wy5qpnfri1gha2cnl6q20qar8dbl2mimpb43bnhmm2g3wgjyad6"))))
19969 (build-system emacs-build-system)
19970 (home-page "https://github.com/asok/peep-dired")
19971 (synopsis "Preview files in another window")
19972 (description "This package provides a minor mode that allows files to be
19973 previewed by scrolling up and down within a @code{dired} buffer.")
19974 (license license:gpl3+))))
19975
19976 (define-public emacs-counsel-etags
19977 (package
19978 (name "emacs-counsel-etags")
19979 (version "1.8.9")
19980 (source
19981 (origin
19982 (method git-fetch)
19983 (uri (git-reference
19984 (url "https://github.com/redguardtoo/counsel-etags")
19985 (commit version)))
19986 (file-name (git-file-name name version))
19987 (sha256
19988 (base32
19989 "0rmdl93kgyydwa96yclds9vwly41bpk8v18cbqc1x266w6v77dr9"))))
19990 (build-system emacs-build-system)
19991 (propagated-inputs
19992 `(("emacs-ivy" ,emacs-ivy)))
19993 (arguments
19994 `(#:tests? #t
19995 #:test-command '("make" "test")))
19996 (home-page "https://github.com/redguardtoo/counsel-etags")
19997 (synopsis "Fast @code{Ctags}/@code{Etags} solution with @code{ivy-mode}")
19998 (description "This package uses @code{ivy-mode} to facilitate navigating
19999 and searching through @code{Ctags} files.")
20000 (license license:gpl3+)))
20001
20002 (define-public emacs-ivy-clipmenu
20003 (let ((commit "d2071f2c5043a05d610cd1952e84176ca78c31dc"))
20004 (package
20005 (name "emacs-ivy-clipmenu")
20006 (version (git-version "0.0.1" "1" commit))
20007 (source (origin
20008 (method git-fetch)
20009 (uri (git-reference
20010 (url "https://github.com/wpcarro/ivy-clipmenu.el.git")
20011 (commit commit)))
20012 (file-name (git-file-name name version))
20013 (sha256
20014 (base32
20015 "0npd8glzk5z4n7y9mzbsbzi0cf3by19fqcki052jr3dga363lds7"))))
20016 (propagated-inputs
20017 `(("emacs-f" ,emacs-f)
20018 ("emacs-ivy" ,emacs-ivy)))
20019 (build-system emacs-build-system)
20020 (home-page "https://github.com/wpcarro/ivy-clipmenu.el")
20021 (synopsis "Ivy integration with clipmenu")
20022 (description "Ivy integration with the clipboard manager, clipmenu.")
20023 (license license:expat))))
20024
20025 (define-public emacs-org-download
20026 (let ((commit "10c9d7c8eed928c88a896310c882e3af4d8d0f61")
20027 (revision "2"))
20028 (package
20029 (name "emacs-org-download")
20030 (version (git-version "0.1.0" revision commit))
20031 (source (origin
20032 (method git-fetch)
20033 (uri (git-reference
20034 (url "https://github.com/abo-abo/org-download")
20035 (commit commit)))
20036 (sha256
20037 (base32
20038 "0i8wlx1i7y1vn5lqwjifvymvszg28a07vwqcm4jslf1v2ajs1lsl"))
20039 (file-name (git-file-name name version))))
20040 (build-system emacs-build-system)
20041 (propagated-inputs
20042 `(("emacs-org" ,emacs-org)
20043 ("emacs-async" ,emacs-async)))
20044 (home-page "https://github.com/abo-abo/org-download")
20045 (synopsis "Facilitate moving images")
20046 (description "This package provides utilities for managing image files
20047 copied into @code{org-mode} buffers.")
20048 (license license:gpl3+))))
20049
20050 (define-public emacs-dash-docs
20051 (let ((commit "111fd9b97001f1ad887b45e5308a14ddd68ce70a")
20052 (revision "1"))
20053 (package
20054 (name "emacs-dash-docs")
20055 (version (git-version "1.4.0" revision commit))
20056 (source
20057 (origin
20058 (method git-fetch)
20059 (uri (git-reference
20060 (url "https://github.com/dash-docs-el/dash-docs.git")
20061 (commit commit)))
20062 (file-name (git-file-name name version))
20063 (sha256
20064 (base32
20065 "0sckb7z0ylflva212bns7iq9mfnffgjghi0qspsbfwra35zb9xng"))))
20066 (build-system emacs-build-system)
20067 (propagated-inputs
20068 `(("emacs-async" ,emacs-async)))
20069 (native-inputs
20070 `(("emacs-undercover" ,emacs-undercover)
20071 ("emacs-ert-runner" ,emacs-ert-runner)))
20072 (arguments
20073 `(#:tests? #t
20074 #:test-command '("ert-runner")
20075 #:phases
20076 ;; this test requires network access, so remove it
20077 (modify-phases %standard-phases
20078 (add-before 'check 'make-tests-writable
20079 (lambda _
20080 (make-file-writable "test/dash-docs-test.el")
20081 #t))
20082 (add-before 'check 'delete-test
20083 (lambda _
20084 (emacs-batch-edit-file "test/dash-docs-test.el"
20085 `(progn (progn
20086 (goto-char (point-min))
20087 (re-search-forward "ert-deftest dash-docs-official-docsets-test")
20088 (beginning-of-line)
20089 (kill-sexp))
20090 (basic-save-buffer)))
20091 #t)))))
20092 (home-page "https://github.com/dash-docs-el/dash-docs")
20093 (synopsis "Offline documentation browser for APIs using Dash docsets")
20094 (description "This package exposes functionality to work with Dash docsets.")
20095 (license license:gpl3+))))
20096
20097 (define-public emacs-helm-dash
20098 (let ((commit "7f853bd34da666f0e9a883011c80f451b06f6c59")
20099 (revision "2"))
20100 (package
20101 (name "emacs-helm-dash")
20102 (version (git-version "1.3.0" revision commit))
20103 (source
20104 (origin
20105 (method git-fetch)
20106 (uri (git-reference
20107 (url "https://github.com/areina/helm-dash.git")
20108 (commit commit)))
20109 (file-name (git-file-name name version))
20110 (sha256
20111 (base32
20112 "0r192vzry1212ihabg9pgw9xar8zdgnbgy0vsgvfm8s5wj6ny7jp"))))
20113 (build-system emacs-build-system)
20114 (propagated-inputs
20115 `(("emacs-helm" ,emacs-helm)
20116 ("emacs-dash-docs" ,emacs-dash-docs)))
20117 (home-page "https://github.com/areina/helm-dash")
20118 (synopsis "Offline documentation browser for APIs using Dash docsets")
20119 (description "This package uses Helm to install and navigate through
20120 Dash docsets.")
20121 (license license:gpl3+))))
20122
20123 (define-public emacs-counsel-dash
20124 (let ((commit "7027868d483b51d949b9f20fb8f34b122ca61520")
20125 (revision "3"))
20126 (package
20127 (name "emacs-counsel-dash")
20128 (version (git-version "0.1.3" revision commit))
20129 (source
20130 (origin
20131 (method git-fetch)
20132 (uri (git-reference
20133 (url "https://github.com/dash-docs-el/counsel-dash.git")
20134 (commit commit)))
20135 (file-name (git-file-name name version))
20136 (sha256
20137 (base32
20138 "0h3f5pxnmb21pq4hh7k4w8jzflz1k2ap7nwpjc222w0q6x6jrbjp"))))
20139 (build-system emacs-build-system)
20140 (propagated-inputs
20141 `(("emacs-dash-docs" ,emacs-dash-docs)
20142 ("emacs-ivy" ,emacs-ivy)))
20143 (arguments
20144 `(#:phases
20145 (modify-phases %standard-phases
20146 (add-after 'unpack 'require-ivy
20147 (lambda _
20148 (substitute* "counsel-dash.el"
20149 (("^\\(require 'cl-lib\\)")
20150 "(require 'cl-lib)\n(require 'ivy)\n(require 'subr-x)"))
20151 #t)))))
20152 (home-page "https://github.com/dash-docs-el/counsel-dash")
20153 (synopsis "Offline documentation browser for APIs using Dash docsets")
20154 (description "This package uses @code{ivy-mode} to install and navigate
20155 through Dash docsets.")
20156 (license license:expat))))
20157
20158 (define-public emacs-el-patch
20159 (package
20160 (name "emacs-el-patch")
20161 (version "2.2.3")
20162 (source
20163 (origin
20164 (method git-fetch)
20165 (uri (git-reference
20166 (url "https://github.com/raxod502/el-patch")
20167 (commit version)))
20168 (file-name (git-file-name name version))
20169 (sha256
20170 (base32
20171 "18djslz177q6q33y82zmg2v6n9236a76kiqfvxdk4vbqzjbq82f7"))))
20172 (build-system emacs-build-system)
20173 (home-page "https://github.com/raxod502/el-patch")
20174 (synopsis "Future-proof your Emacs customizations")
20175 (description "This package allows for an alternate definition of an Elisp
20176 function to be specified and for any differences from the original definition
20177 to be examined using Ediff.")
20178 (license license:expat)))
20179
20180 (define-public emacs-info-plus
20181 (let ((commit "4a6b93c170169594e1e8ea60cd799a1a88a969da")
20182 (revision "2"))
20183 (package
20184 (name "emacs-info-plus")
20185 (version (git-version "0" revision commit))
20186 (source
20187 (origin
20188 (method git-fetch)
20189 (uri (git-reference
20190 (url "https://github.com/emacsmirror/info-plus")
20191 (commit commit)))
20192 (file-name (git-file-name name version))
20193 (sha256
20194 (base32
20195 "1xzmx7m1qbl3b1x6yq1db1a108xqaa64ljfv1hdw763zmy4kc6m0"))))
20196 (build-system emacs-build-system)
20197 (home-page "https://github.com/emacsmirror/info-plus")
20198 (synopsis "Extensions to @file{info.el}")
20199 (description "This package extends Emacs' @file{info.el} by allowing
20200 outline-enabled table of contents, additional metadata association for Info
20201 nodes, and more.")
20202 (license license:gpl2+))))
20203
20204 (define-public emacs-eval-sexp-fu-el
20205 (package
20206 (name "emacs-eval-sexp-fu-el")
20207 (version "0.5.0")
20208 (source
20209 (origin
20210 (method git-fetch)
20211 (uri (git-reference
20212 (url "https://github.com/hchbaw/eval-sexp-fu.el")
20213 (commit (string-append "v" version))))
20214 (file-name (git-file-name name version))
20215 (sha256
20216 (base32
20217 "01mpnpgmlnfbi2yw9dxz5iw72mw3lk223bj172i4fnx3xdrrxbij"))))
20218 (build-system emacs-build-system)
20219 (home-page "https://github.com/hchbaw/eval-sexp-fu.el")
20220 (synopsis "Enhancements for evaluating s-expressions")
20221 (description "This package provides provides variants of
20222 @code{eval-last-sexp} that work on the containing list or s-expression, as
20223 well as an option for visually flashing evaluated s-expressions.")
20224 (license license:gpl3+)))
20225
20226 (define-public emacs-counsel-tramp
20227 (package
20228 (name "emacs-counsel-tramp")
20229 (version "0.6.3")
20230 (source
20231 (origin
20232 (method git-fetch)
20233 (uri (git-reference
20234 (url "https://github.com/masasam/emacs-counsel-tramp")
20235 (commit version)))
20236 (file-name (git-file-name name version))
20237 (sha256
20238 (base32
20239 "1qy9lf7cyv6hp9mmpwh92cpdcffbxzyzchx6878d5pmk9qh6xy92"))))
20240 (build-system emacs-build-system)
20241 (propagated-inputs
20242 `(("emacs-ivy" ,emacs-ivy)))
20243 (home-page "https://github.com/masasam/emacs-counsel-tramp")
20244 (synopsis "Ivy interface for TRAMP")
20245 (description "This package allows @code{ivy-mode} to display and filter
20246 SSH servers.")
20247 (license license:gpl3+)))
20248
20249 (define-public emacs-tramp
20250 (package
20251 (name "emacs-tramp")
20252 (version "2.4.3.4")
20253 (source
20254 (origin
20255 (method url-fetch)
20256 (uri (string-append "https://elpa.gnu.org/packages/"
20257 "tramp-" version ".tar"))
20258 (sha256
20259 (base32 "01il42xb6s38qnb7bhn9d7gscc5p5y4da5a4dp1i1cyi823sfp8f"))))
20260 (build-system emacs-build-system)
20261 (arguments
20262 `(#:emacs ,emacs ;need D-Bus
20263 #:phases
20264 (modify-phases %standard-phases
20265 ;; All but one "/bin/" directory refer to remote
20266 ;; environments, which may not be Guix. Do not patch them
20267 ;; blindly. However, local encoding shell has to be patched.
20268 (replace 'patch-el-files
20269 (lambda* (#:key inputs #:allow-other-keys)
20270 (let ((sh (assoc-ref inputs "bash"))
20271 (file "tramp.el"))
20272 (emacs-substitute-variables file
20273 ("tramp-encoding-shell" (string-append sh "/bin/sh"))))
20274 #t)))))
20275 (inputs
20276 `(("bash" ,bash)))
20277 (home-page "https://savannah.gnu.org/projects/tramp")
20278 (synopsis "Remote file editing package for Emacs")
20279 (description
20280 "Tramp stands for ``Transparent Remote (file) Access, Multiple
20281 Protocol''. This package provides remote file editing, using
20282 a combination of @command{rsh} and @command{rcp} or other work-alike
20283 programs, such as @command{ssh} and @command{scp}.")
20284 (license license:gpl3+)))
20285
20286 (define-public emacs-tramp-auto-auth
20287 (let ((commit "f15a12dfab651aff60f4a9d70f868030a12344ac"))
20288 (package
20289 (name "emacs-tramp-auto-auth")
20290 (version (git-version "20191027" "1" commit))
20291 (source
20292 (origin
20293 (method git-fetch)
20294 (uri (git-reference
20295 (url "https://github.com/oitofelix/tramp-auto-auth.git")
20296 (commit commit)))
20297 (file-name (git-file-name name version))
20298 (sha256
20299 (base32
20300 "09nkjgwppjfgv04q0gv468qihgx4y3p39lpwbd6vbh3wgbccas9k"))))
20301 (build-system emacs-build-system)
20302 (home-page "https://github.com/oitofelix/tramp-auto-auth")
20303 (synopsis "TRAMP automatic authentication library")
20304 (description "This package provides @code{tramp-auto-auth-mode} Emacs
20305 global minor mode whose purpose is to automatically feed TRAMP sub-processes
20306 with passwords for paths matching regexps.")
20307 (license license:gpl3+))))
20308
20309 (define-public emacs-eacl
20310 (package
20311 (name "emacs-eacl")
20312 (version "2.0.1")
20313 (source
20314 (origin
20315 (method git-fetch)
20316 (uri (git-reference
20317 (url "https://github.com/redguardtoo/eacl")
20318 (commit version)))
20319 (file-name (git-file-name name version))
20320 (sha256
20321 (base32
20322 "0ksn11sm3g1ja5lpjz3hrzzw8b480mfcb3q589m52qjgvvn5iyfv"))))
20323 (build-system emacs-build-system)
20324 (propagated-inputs
20325 `(("emacs-ivy" ,emacs-ivy)))
20326 (home-page "https://github.com/redguardtoo/eacl")
20327 (synopsis "Auto-complete lines by using @code{grep} on a project")
20328 (description "This package provides auto-completion commands for single
20329 and multiple lines of code in a project.")
20330 (license license:gpl3+)))
20331
20332 (define-public emacs-semantic-refactor
20333 ;; The last release, 0.5, was made on 2015-07-26 and there have been 47
20334 ;; commits since then.
20335 (let ((commit "6f2c97d17fb70f4ca2112f5a2b99a8ec162004f5"))
20336 (package
20337 (name "emacs-semantic-refactor")
20338 (version (git-version "0.5" "1" commit))
20339 (source
20340 (origin
20341 (method git-fetch)
20342 (uri (git-reference
20343 (url "https://github.com/tuhdo/semantic-refactor")
20344 (commit commit)))
20345 (file-name (git-file-name name version))
20346 (sha256
20347 (base32
20348 "1lyz3zjkx2csh0xdy1zpx8s32qp1p3sig57mwi9xhgpqjyf0axmb"))))
20349 (build-system emacs-build-system)
20350 (home-page "https://github.com/tuhdo/semantic-refactor")
20351 (synopsis "Refactoring tool for C/C++ and Lisp dialects")
20352 (description "This package provides a refactoring tool based on the
20353 Emacs Semantic parser framework. For C and C++ it supports operations such as:
20354
20355 @enumerate
20356 @item Generating class implementations
20357 @item Generating function prototypes
20358 @item Converting functions to function pointers
20359 @item Moving semantic units
20360 @item etc...
20361 @end enumerate
20362
20363 For Lisp dialects like Clojure, ELisp, and Scheme, it supports operations such
20364 as:
20365
20366 @enumerate
20367 @item Formatting the whole buffer
20368 @item Converting sexpressions to one or multiple lines
20369 @item etc...
20370 @end enumerate\n")
20371 (license license:gpl3+))))
20372
20373 (define-public emacs-nhexl-mode
20374 (package
20375 (name "emacs-nhexl-mode")
20376 (version "1.4")
20377 (source
20378 (origin
20379 (method url-fetch)
20380 (uri (string-append
20381 "https://elpa.gnu.org/packages/nhexl-mode-"
20382 version ".el"))
20383 (sha256
20384 (base32 "1c2q4w6hkvc7z4026hiqdcsm2scd6q35x7b0dk80h8qicsbi14c8"))))
20385 (build-system emacs-build-system)
20386 (home-page "https://elpa.gnu.org/packages/nhexl-mode.html")
20387 (synopsis "Minor mode to edit files via hex-dump format")
20388 (description
20389 "This package implements NHexl mode, a minor mode for editing files
20390 in hex dump format. The mode command is called @command{nhexl-mode}.
20391
20392 This minor mode implements similar functionality to @command{hexl-mode},
20393 but using a different implementation technique, which makes it
20394 usable as a \"plain\" minor mode. It works on any buffer, and does
20395 not mess with the undo log or with the major mode.
20396
20397 It also comes with:
20398
20399 @itemize
20400 @item @command{nhexl-nibble-edit-mode}: a \"nibble editor\" minor mode, where
20401 the cursor pretends to advance by nibbles (4-bit) and the self-insertion keys
20402 (which only work for hex-digits) will only modify the nibble under point.
20403 @item @command{nhexl-overwrite-only-mode}: a minor mode to try and avoid
20404 moving text. In this minor mode, not only self-inserting keys overwrite
20405 existing text, but commands like `yank' and @command{kill-region} as well.
20406 @item It overrides @code{C-u} to use hexadecimal, so you can do @code{C-u a 4
20407 C-f} to advance by #xa4 characters.
20408 @end itemize\n")
20409 (license license:gpl3+)))
20410
20411 (define-public emacs-helm-wikipedia
20412 (let ((commit "126f044e0a0e1432e0791c33ce2a41875d704a9b"))
20413 (package
20414 (name "emacs-helm-wikipedia")
20415 (version (git-version "0.0.0" "1" commit))
20416 (home-page "https://github.com/emacs-helm/helm-wikipedia/")
20417 (source
20418 (origin
20419 (method git-fetch)
20420 (uri (git-reference
20421 (url home-page)
20422 (commit commit)))
20423 (file-name (git-file-name name version))
20424 (sha256
20425 (base32
20426 "148a5xsnbsiddhf9cl7yxdk41lrv38h0pip91kcflw9d7l0dp7pr"))))
20427 (build-system emacs-build-system)
20428 (inputs
20429 `(("helm" ,emacs-helm)))
20430 (synopsis "Search suggestions and article extracts from Wikipedia for Emacs")
20431 (description
20432 "This package provides an Emacs Helm interface for search suggestions
20433 and article extracts for Wikipedia.")
20434 (license license:gpl3+))))
20435
20436 (define-public emacs-webfeeder
20437 (package
20438 (name "emacs-webfeeder")
20439 (version "1.0.0")
20440 (source
20441 (origin
20442 (method url-fetch)
20443 (uri (string-append
20444 "https://elpa.gnu.org/packages/webfeeder-"
20445 version
20446 ".tar"))
20447 (sha256
20448 (base32
20449 "06y5vxw9m6pmbrzb8v2i3w9dnhgqxz06vyx1knmgi9cczlrj4a64"))))
20450 (build-system emacs-build-system)
20451 (home-page "https://gitlab.com/Ambrevar/emacs-webfeeder")
20452 (synopsis "Build RSS and Atom webfeeds from HTML files")
20453 (description
20454 "Webfeeder is an Emacs library to generate RSS and Atom feeds from HTML
20455 files. The various elements of the HTML input are parsed with customizable
20456 functions (e.g. @code{webfeeder-title-function}).")
20457 (license license:gpl3+)))
20458
20459 (define-public emacs-evil-numbers
20460 (let ((commit "6ea1c8c3a9b37bed63d48f1128e9a4910e68187e"))
20461 (package
20462 (name "emacs-evil-numbers")
20463 (version (git-version "0.4" "1" commit))
20464 (source (origin
20465 (method git-fetch)
20466 (uri (git-reference
20467 (url "https://github.com/dieggsy/evil-numbers")
20468 (commit commit)))
20469 (file-name (git-file-name name version))
20470 (sha256
20471 (base32
20472 "1aq95hj8x13py0pwsnc6wvd8cc5yv5qin8ym9js42y5966vwj4np"))))
20473 (build-system emacs-build-system)
20474 (home-page "https://github.com/dieggsy/evil-numbers")
20475 (synopsis "Increment and decrement numbers in Emacs")
20476 (description "This package increments and decrements binary, octal,
20477 decimal and hex literals. It works like C-a/C-x in Vim, i.e. searches for
20478 number up to EOL and then increments or decrements and keeps zero padding up
20479 (unlike in Vim). When a region is active, as in Evil's visual mode, all the
20480 numbers within that region will be incremented/decremented (unlike in Vim).
20481
20482 It is a fork of https://github.com/cofi/evil-numbers, which is unmaintained.")
20483 (license license:gpl3+))))
20484
20485 (define-public emacs-rotate-text
20486 (package
20487 (name "emacs-rotate-text")
20488 (version "0.1")
20489 (source (origin
20490 (method git-fetch)
20491 (uri (git-reference
20492 (url "https://github.com/nschum/rotate-text.el.git")
20493 (commit version)))
20494 (file-name (git-file-name name version))
20495 (sha256
20496 (base32
20497 "1cgxv4aibkvv6lnssynn0438a615fz3zq8hg9sb0lhfgsr99pxln"))))
20498 (build-system emacs-build-system)
20499 (home-page "https://nschum.de/src/emacs/rotate-text/")
20500 (synopsis "Cycle through words, symbols and patterns in Emacs")
20501 (description "@code{rotate-text} allows you rotate to commonly
20502 interchanged text with a single keystroke. For example, you can toggle
20503 between \"frame-width\" and \"frame-height\", between \"public\",
20504 \"protected\" and \"private\" and between \"variable1\", \"variable2\" through
20505 \"variableN\".")
20506 (license license:gpl2+)))
20507
20508 (define-public emacs-ediprolog
20509 (package
20510 (name "emacs-ediprolog")
20511 (version "1.2")
20512 (source
20513 (origin
20514 (method url-fetch)
20515 (uri (string-append
20516 "https://elpa.gnu.org/packages/ediprolog-"
20517 version
20518 ".el"))
20519 (sha256
20520 (base32
20521 "039ffvp7c810mjyargmgw1i87g0z8qs8qicq826sd9aiz9hprfaz"))))
20522 (build-system emacs-build-system)
20523 (home-page "https://elpa.gnu.org/packages/ediprolog.html")
20524 (synopsis "Emacs Does Interactive Prolog")
20525 (description "This package provides a major mode that let the user
20526 interact with SWI-Prolog in all buffers. For instance, one can consult Prolog
20527 programs and evaluate embedded queries. This mode is focused on the command
20528 @code{ediprolog-dwim} (Do What I Mean) which is supposed to, depending on the
20529 context, carry out the appropriate action.")
20530 (license license:gpl3+)))
20531
20532 (define-public emacs-evil-cleverparens
20533 (let ((commit "8c45879d49bfa6d4e414b6c1df700a4a51cbb869")
20534 (revision "1"))
20535 (package
20536 (name "emacs-evil-cleverparens")
20537 (version (git-version "2017-07-17" revision commit))
20538 (source (origin
20539 (method git-fetch)
20540 (uri (git-reference
20541 (url "https://github.com/luxbock/evil-cleverparens.git")
20542 (commit commit)))
20543 (sha256 (base32 "0lhnybpnk4n2yhlcnj9zxn0vi5hpjfaqfhvyfy7ckzz74g8v7iyw"))
20544 (file-name (git-file-name name version))))
20545 (build-system emacs-build-system)
20546 (propagated-inputs
20547 `(("emacs-evil" ,emacs-evil)
20548 ("emacs-paredit" ,emacs-paredit)
20549 ("emacs-smartparens" ,emacs-smartparens)))
20550 (home-page "https://github.com/luxbock/evil-cleverparens")
20551 (synopsis "Emacs modal editing optimized for editing Lisp")
20552 (description "@code{evil-cleverparens} remaps Evil keybindings to allow
20553 modal editing with screwing up the structure of Lisp code. Alternatives for
20554 verb commands which would are normally destructive (such as deletion) are
20555 provided. Those alternative commands are and bound by default to their
20556 corresponding Evil keys.")
20557 (license license:expat))))
20558
20559 (define-public emacs-evil-traces
20560 (let ((commit "1931e3ea2c64b4aec393a9c25063c330deff55e3")
20561 (revision "2"))
20562 (package
20563 (name "emacs-evil-traces")
20564 (version (git-version "0.0.1" revision commit))
20565 (source (origin
20566 (method git-fetch)
20567 (uri (git-reference
20568 (url "https://github.com/mamapanda/evil-traces.git")
20569 (commit commit)))
20570 (file-name (git-file-name name version))
20571 (sha256
20572 (base32
20573 "12p9lfxscs182vbd4dy0m5gacs3d4kyprbz5yndpwvl8g2qsqplz"))))
20574 (build-system emacs-build-system)
20575 (propagated-inputs
20576 `(("emacs-evil" ,emacs-evil)))
20577 (arguments
20578 `(#:phases
20579 (modify-phases %standard-phases
20580 (add-after 'unpack 'set-shell
20581 ;; Setting the SHELL environment variable is required for the tests
20582 ;; to find sh.
20583 (lambda _
20584 (setenv "SHELL" (which "sh"))
20585 #t)))
20586 #:tests? #t
20587 #:test-command '("make" "test")))
20588 (home-page "https://github.com/mamapanda/evil-traces")
20589 (synopsis "Visual hints for @code{evil-ex}")
20590 (description "This package adds visual hints to certain @code{ex}
20591 commands in @code{evil-mode}.")
20592 (license license:gpl3+))))
20593
20594 (define-public emacs-evil-tmux-navigator
20595 (package
20596 (name "emacs-evil-tmux-navigator")
20597 (version "0.1.5")
20598 (source
20599 (origin
20600 (method git-fetch)
20601 (uri
20602 (git-reference
20603 (url "https://github.com/keith/evil-tmux-navigator")
20604 (commit version)))
20605 (file-name (git-file-name name version))
20606 (sha256
20607 (base32
20608 "1na44rbc03sr5b4z9pvnps6n4nmrqcz58nywix9825l74a419ijx"))))
20609 (propagated-inputs
20610 `(("emacs-evil" ,emacs-evil)))
20611 (build-system emacs-build-system)
20612 (home-page "https://github.com/keith/evil-tmux-navigator")
20613 (synopsis
20614 "Navigate seamlessly between emacs windows and tmux panes")
20615 (description
20616 "This package lets you use C-h, C-j, C-k and C-l to navigate between
20617 Emacs windows and tmux panes.")
20618 (license license:expat)))
20619
20620 (define-public emacs-xclip
20621 (package
20622 (name "emacs-xclip")
20623 (version "1.10")
20624 (source
20625 (origin
20626 (method url-fetch)
20627 (uri (string-append "https://elpa.gnu.org/packages/"
20628 "xclip-" version ".el"))
20629 (sha256
20630 (base32 "0i3i9kwfg8qmhcmqhhnrb1kljgwkccv63s9q1mjwqfjldyfh8j8i"))))
20631 (build-system emacs-build-system)
20632 (home-page "http://elpa.gnu.org/packages/xclip.html")
20633 (synopsis "Copy and paste GUI clipboard from Emacs in text terminal")
20634 (description
20635 "This package allows Emacs to copy to and paste from the GUI clipboard
20636 when running in text terminal.
20637
20638 It can use external command-line tools for that, e.g., @command{xclip} or
20639 @command{xsel}, which you may need to install in order for the package to
20640 work.")
20641 (license license:gpl3+)))
20642
20643 (define-public emacs-xterm-color
20644 (package
20645 (name "emacs-xterm-color")
20646 (version "1.9")
20647 (source (origin
20648 (method git-fetch)
20649 (uri (git-reference
20650 (url "https://github.com/atomontage/xterm-color.git")
20651 (commit version)))
20652 (file-name (git-file-name name version))
20653 (sha256
20654 (base32
20655 "0i9ivc5xhl5y5v0l18kbhfg8s2abb9zaimyx951b8bc0f5as68xm"))))
20656 (build-system emacs-build-system)
20657 (home-page "https://github.com/atomontage/xterm-color")
20658 (synopsis "ANSI & xterm-256 color text property translator for Emacs")
20659 (description "@code{xterm-color.el} is an ANSI control sequence to
20660 text-property translator.")
20661 (license license:bsd-2)))
20662
20663 (define-public emacs-org-noter
20664 (package
20665 (name "emacs-org-noter")
20666 (version "1.4.1")
20667 (source
20668 (origin
20669 (method git-fetch)
20670 (uri (git-reference
20671 (url "https://github.com/weirdNox/org-noter.git")
20672 (commit version)))
20673 (file-name (git-file-name name version))
20674 (sha256
20675 (base32
20676 "1vwfpdi7hfkxx4vi0cwg7rvqby3i0mymzdkyzrqzv30dazmcjpag"))))
20677 (build-system emacs-build-system)
20678 (propagated-inputs `(("emacs-org" ,emacs-org)))
20679 (home-page "https://github.com/weirdNox/org-noter")
20680 (synopsis "Synchronized, Org-mode, document annotator")
20681 (description
20682 "This package lets you create notes that are kept in sync when you
20683 scroll through the document, but that are external to it---the notes
20684 themselves live in an Org-mode file. As such, this leverages the power of
20685 Org-mode (the notes may have outlines, latex fragments, babel, etc...) while
20686 acting like notes that are made @emph{in} the document.")
20687 (license license:gpl3+)))
20688
20689 (define-public emacs-org-redmine
20690 (let ((commit "e77d013bc3784947c46a5c53f03cd7d3c68552fc"))
20691 (package
20692 (name "emacs-org-redmine")
20693 (version (git-version "0.1" "1" commit))
20694 (source (origin
20695 (method git-fetch)
20696 (uri (git-reference
20697 (url "https://github.com/gongo/org-redmine.git")
20698 (commit commit)))
20699 (file-name (git-file-name name version))
20700 (sha256
20701 (base32
20702 "06miv3mf2a39vkf6mmm5ssc47inqh7dq82khsyc03anz4d4lj822"))))
20703 (build-system emacs-build-system)
20704 (home-page "https://github.com/gongo/org-redmine/")
20705 (synopsis "Redmine tools using Emacs")
20706 (description "This program provides an Emacs client for Redmine.")
20707 (license license:gpl3+))))
20708
20709 (define-public emacs-multi-term
20710 (let ((commit "0804b11e52b960c80f5cd0712ee1e53ae70d83a4"))
20711 (package
20712 (name "emacs-multi-term")
20713 (version "1.2")
20714 (source (origin
20715 (method git-fetch)
20716 (uri (git-reference
20717 (url "https://github.com/manateelazycat/multi-term.git")
20718 (commit commit)))
20719 (file-name (git-file-name name version))
20720 (sha256
20721 (base32
20722 "0apvidmvb7rv05qjnjhax42ma8wrimik5vxx620dlbv17svz7iyf"))))
20723 (build-system emacs-build-system)
20724 (inputs `(("zsh" ,zsh)))
20725 (home-page "https://github.com/manateelazycat/multi-term")
20726 (synopsis "Manage multiple terminal buffers in Emacs")
20727 (description
20728 "This package enhances @code{term.el} with the following features:
20729
20730 @enumerate
20731 @item Functions to switch between multiple terminal buffers
20732 @item List of keys to be intercepted by @code{emacs-multi-term} instead of by
20733 the underlying terminal
20734 @item Kills the unused buffer left after exiting the terminal
20735 @item Kills the running sub-processes along with the terminal when killing the
20736 it forcibly
20737 @item Dedicated window for debugging program.
20738 @end enumerate")
20739 (license license:gpl3+))))
20740
20741 (define-public emacs-elpher
20742 (package
20743 (name "emacs-elpher")
20744 (version "2.7.4")
20745 (source
20746 (origin
20747 (method git-fetch)
20748 (uri (git-reference
20749 (url "git://thelambdalab.xyz/elpher.git")
20750 (commit (string-append "v" version))))
20751 (file-name (git-file-name name version))
20752 (sha256
20753 (base32
20754 "13ba72sjfyg1xvam131iapzqdf9pkwpn67zlyydmm6bv9pxlr431"))))
20755 (build-system emacs-build-system)
20756 (native-inputs
20757 `(("texinfo" ,texinfo)))
20758 (arguments
20759 `(#:phases
20760 (modify-phases %standard-phases
20761 (add-before 'install 'build-doc
20762 (lambda _
20763 (invoke "makeinfo" "elpher.texi"))))))
20764 (home-page "gopher://thelambdalab.xyz/1/projects/elpher/")
20765 (synopsis "Gopher client for Emacs")
20766 (description "Elpher is a full-featured gopher client for Emacs. Its
20767 features include intuitive keyboard and mouse-driven browsing, out-of-the-box
20768 compatibility with evil-mode, clickable web and gopher links in plain text,
20769 caching of visited sites, pleasant and configurable visualization of Gopher
20770 directories, direct visualisation of image files, jumping directly to links by
20771 name (with autocompletion), a simple bookmark management system and
20772 connections using TLS encryption.")
20773 (license license:gpl3+)))
20774
20775 (define-public emacs-zerodark-theme
20776 (package
20777 (name "emacs-zerodark-theme")
20778 (version "4.6")
20779 (source
20780 (origin
20781 (method git-fetch)
20782 (uri (git-reference
20783 (url "https://github.com/NicolasPetton/zerodark-theme")
20784 (commit version)))
20785 (file-name (git-file-name name version))
20786 (sha256
20787 (base32
20788 "0pfyd1iqs7l2ngwgvj9n0r9k1px7yl16h8n502xdyf0pprxcs4p6"))))
20789 (build-system emacs-build-system)
20790 (propagated-inputs
20791 `(("emacs-flycheck" ,emacs-flycheck)
20792 ("emacs-all-the-icons" ,emacs-all-the-icons)))
20793 (home-page
20794 "https://gitlab.petton.fr/nico/zerodark-theme")
20795 (synopsis
20796 "Dark, medium contrast theme for Emacs")
20797 (description
20798 "Zerodark is a dark theme inspired from One Dark and Niflheim.
20799 An optional mode-line format can be enabled with @code{zerodark-setup-modeline-format}.")
20800 (license license:gpl3+)))
20801
20802 (define-public emacs-gnus-alias
20803 (package
20804 (name "emacs-gnus-alias")
20805 (version "20150316")
20806 (source (origin
20807 (method git-fetch)
20808 (uri (git-reference
20809 (url "https://github.com/hexmode/gnus-alias.git")
20810 (commit "9447d3ccb4c0e75d0468899cccff7aa249657bac")))
20811 (file-name (git-file-name name version))
20812 (sha256
20813 (base32
20814 "1i278npayv3kfxxd1ypi9n83q5l402sbc1zkm11pf8g006ifqsp4"))))
20815 (build-system emacs-build-system)
20816 (home-page "https://melpa.org/#/gnus-alias")
20817 (synopsis "Alternative to @code{gnus-posting-styles}")
20818 (description "This Emacs add-on provides a simple mechanism to switch
20819 Identities when using a @code{message-mode} or a @code{message-mode} derived
20820 mode. Identities can include @code{From} and @code{Organisation} headers,
20821 extra headers, body and signature. Other features include:
20822
20823 @itemize
20824 @item Switch Identities in a message buffer.
20825 @item Access original message to help determine Identity of the followup/reply
20826 message.
20827 @item Act on a forwarded message as if it were a message being replied to.
20828 @item Start a new message with a given Identity pre-selected.
20829 @end itemize")
20830 (license license:gpl2+)))
20831
20832 (define-public emacs-ox-epub
20833 (package
20834 (name "emacs-ox-epub")
20835 (version "0.3")
20836 (source (origin
20837 (method git-fetch)
20838 (uri (git-reference
20839 (url "https://github.com/ofosos/ox-epub.git")
20840 (commit (string-append "v" version))))
20841 (file-name (git-file-name name version))
20842 (sha256
20843 (base32
20844 "057sqmvm8hwkhcg3yd4i8zz2xlqsqrpyiklyiw750s3i5mxdn0k7"))))
20845 (build-system emacs-build-system)
20846 (home-page "https://github.com/ofosos/ox-epub")
20847 (synopsis "Export org mode projects to EPUB")
20848 (description "@code{ox-epub} extends the (X)HTML exporter to generate
20849 @code{.epub} files directly from OrgMode. This will export EPUB version 2,
20850 which should give broad compatibility. It should also be relatiely easy to
20851 convert the resulting @code{.epub} to a @code{.mobi} file. Needs a working
20852 zip utility (default is @code{zip}).")
20853 (license license:gpl3+)))
20854
20855 (define-public emacs-ox-hugo
20856 (package
20857 (name "emacs-ox-hugo")
20858 (version "0.8")
20859 (source
20860 (origin
20861 (method git-fetch)
20862 (uri (git-reference
20863 (url "https://github.com/kaushalmodi/ox-hugo.git")
20864 (commit (string-append "v" version))))
20865 (file-name (git-file-name name version))
20866 (sha256
20867 (base32
20868 "11h464cyc28ld0b0zridgm4drydc1qjxbm1y24zrwlkyqqjk6yr7"))))
20869 (build-system emacs-build-system)
20870 (home-page "https://ox-hugo.scripter.co")
20871 (synopsis "Hugo markdown back-end for Org export engine")
20872 (description
20873 "Ox-hugo is an Org exporter backend that exports Org to Hugo-compatible
20874 Markdown, Blackfriday, and also generates the front-matter in TOML or YAML
20875 format.")
20876 (license license:gpl3+)))
20877
20878 (define-public emacs-ox-pandoc
20879 (package
20880 (name "emacs-ox-pandoc")
20881 (version "20180510")
20882 (source (origin
20883 (method git-fetch)
20884 (uri (git-reference
20885 (url "https://github.com/kawabata/ox-pandoc.git")
20886 (commit "aa37dc7e94213d4ebedb85c384c1ba35007da18e")))
20887 (file-name (git-file-name name version))
20888 (sha256
20889 (base32
20890 "0iibxplgdp34bpq1yll2gmqjd8d8lnqn4mqjvx6cdf0y438yr4jz"))))
20891 (build-system emacs-build-system)
20892 (inputs
20893 `(("pandoc" ,ghc-pandoc)))
20894 (propagated-inputs
20895 `(("emacs-dash" ,emacs-dash)
20896 ("emacs-ht" ,emacs-ht)))
20897 (home-page "https://github.com/kawabata/ox-pandoc")
20898 (synopsis "Org exporter for Pandoc")
20899 (description "@code{ox-pandoc} is an exporter for converting Org-mode
20900 files to numerous other formats via Pandoc.")
20901 (license license:gpl3+)))
20902
20903 (define-public emacs-wc-mode
20904 (package
20905 (name "emacs-wc-mode")
20906 (version "1.3")
20907 (source (origin
20908 (method git-fetch)
20909 (uri (git-reference
20910 (url "https://github.com/bnbeckwith/wc-mode.git")
20911 (commit (string-append "v" version))))
20912 (file-name (git-file-name name version))
20913 (sha256
20914 (base32
20915 "0pjlxv46zzqdq6q131jb306vqlg4sfqls1x8vag7mmfw462hafqp"))))
20916 (build-system emacs-build-system)
20917 (home-page "https://github.com/bnbeckwith/wc-mode")
20918 (synopsis "Running word count with goals (minor mode)")
20919 (description "@code{wc-mode} is a minor mode, providing a ‘wc’ function
20920 for Emacs buffers as well as a modeline addition with live word, line and
20921 character counts. Additionally, a user can set specific goals for adding or
20922 deleting words. These goals were partly inspired by 750words.com where the
20923 goal of the site is to encourage writing by setting a goal of 750 words at a
20924 time.")
20925 (license license:gpl3+)))
20926
20927 (define-public emacs-mastodon
20928 (package
20929 (name "emacs-mastodon")
20930 (version "0.9.0")
20931 (source (origin
20932 (method git-fetch)
20933 (uri (git-reference
20934 (url "https://github.com/jdenen/mastodon.el.git")
20935 (commit version)))
20936 (file-name (git-file-name name version))
20937 (sha256
20938 (base32
20939 "0hwax6y9dghqwsbnb6f1bnc7gh8xsh5cvcnayk2sn49x8b0zi5h1"))))
20940 (build-system emacs-build-system)
20941 (arguments
20942 `(#:phases
20943 (modify-phases %standard-phases
20944 ;; Move the source files to the top level, which is included in
20945 ;; the EMACSLOADPATH.
20946 (add-after 'unpack 'move-source-files
20947 (lambda _
20948 (let ((el-files (find-files "./lisp" ".*\\.el$")))
20949 (for-each (lambda (f)
20950 (rename-file f (basename f)))
20951 el-files))
20952 #t)))))
20953 (home-page "https://github.com/jdenen/mastodon.el")
20954 (synopsis "Emacs client for Mastodon")
20955 (description "@code{mastodon.el} is an Emacs client for Mastodon, the
20956 federated microblogging social network.")
20957 (license license:gpl3+)))
20958
20959 ;; The last release tarball is for version 0.6. We pick a commit close to
20960 ;; version 0.6.10, which doesn't have a release tarball.
20961 (define-public emacs-ebdb
20962 (let ((commit "2a87f5ed2a53e3a4e91e8c88ba5afc49f5e945df")
20963 (revision "0"))
20964 (package
20965 (name "emacs-ebdb")
20966 (version (git-version "0.6.10" revision commit))
20967 (source (origin
20968 (method git-fetch)
20969 (uri (git-reference
20970 (url "https://github.com/girzel/ebdb.git")
20971 (commit commit)))
20972 (file-name (git-file-name name version))
20973 (sha256
20974 (base32
20975 "0fidy7z0c86dpqiss97sg5s92fd3fj4bdl8pqqdgg2m00jx4mrjz"))))
20976 (build-system emacs-build-system)
20977 (home-page "https://github.com/girzel/ebdb")
20978 (synopsis "EIEIO port of BBDB, Emacs's contact-management package")
20979 (description "EBDB is a contact management/addressbook package for
20980 Emacs. It's a re-write of the Insidious Big Brother Database (BBDB) using
20981 Emacs Lisp's (relatively new) EIEIO object oriented libraries.")
20982 (license license:gpl3+))))
20983
20984 (define-public emacs-refactor
20985 (package
20986 (name "emacs-refactor")
20987 (version "0.4")
20988 (source (origin
20989 (method git-fetch)
20990 (uri (git-reference
20991 (url "https://github.com/Wilfred/emacs-refactor.git")
20992 (commit version)))
20993 (file-name (git-file-name name version))
20994 (sha256
20995 (base32
20996 "1yky7vlv91501xb43xk19rr8mxlvrsxhawsc98jivf64nad5dqay"))))
20997 (build-system emacs-build-system)
20998 (propagated-inputs
20999 `(("emacs-dash" ,emacs-dash)
21000 ("emacs-s" ,emacs-s)
21001 ("emacs-popup" ,emacs-popup)
21002 ("emacs-list-utils" ,emacs-list-utils)
21003 ("emacs-iedit" ,emacs-iedit)))
21004 (home-page "https://github.com/Wilfred/emacs-refactor/")
21005 (synopsis "Language-specific refactoring in Emacs")
21006 (description "Emacs Refactor (EMR) is a framework for providing
21007 language-specific refactoring in Emacs. It includes refactoring commands for
21008 a variety of languages, including elisp itself.")
21009 (license license:gpl3+)))
21010
21011 (define-public emacs-flyspell-correct
21012 (package
21013 (name "emacs-flyspell-correct")
21014 (version "0.5")
21015 (source
21016 (origin
21017 (method git-fetch)
21018 (uri (git-reference
21019 (url "https://github.com/d12frosted/flyspell-correct.git")
21020 (commit (string-append "v" version))))
21021 (file-name (git-file-name name version))
21022 (sha256
21023 (base32
21024 "1r9hmz7sihhy7npv6nxp04sy57glzmfax5d67mwn96fdnc0yhlnd"))))
21025 (build-system emacs-build-system)
21026 (propagated-inputs
21027 `(("emacs-helm" ,emacs-helm)
21028 ("emacs-ivy" ,emacs-ivy)
21029 ("emacs-popup" ,emacs-popup)))
21030 (home-page
21031 "https://github.com/d12frosted/flyspell-correct")
21032 (synopsis
21033 "Correcting words with flyspell via custom interfaces")
21034 (description
21035 "This package provides functionality for correcting words via custom
21036 interfaces. Several interfaces are supported beside the classic ido: popup,
21037 helm and ivy.")
21038 (license license:gpl3+)))
21039
21040 (define-public emacs-org-emms
21041 (let ((commit "07a8917f3d628c32e5de1dbd118ac08203772533")
21042 (revision "1"))
21043 (package
21044 (name "emacs-org-emms")
21045 (version
21046 (git-version "0.1" revision commit))
21047 (source
21048 (origin
21049 (method git-fetch)
21050 (uri (git-reference
21051 (url "https://gitlab.com/jagrg/org-emms.git")
21052 (commit commit)))
21053 (file-name (git-file-name name commit))
21054 (sha256
21055 (base32
21056 "1sqsm5sv311xfdk4f4rsnvprdf2v2vm7l1b3vqi7pc0g8adlnw1d"))))
21057 (build-system emacs-build-system)
21058 (propagated-inputs
21059 `(("emms" ,emacs-emms)
21060 ("emacs-org" ,emacs-org)))
21061 (home-page "https://gitlab.com/jagrg/org-emms")
21062 (synopsis "Play multimedia files from org-mode")
21063 (description
21064 "This package provides a new org link type for playing back multimedia
21065 files from org-mode using EMMS, The Emacs Multimedia System. If the link
21066 contains a track position, playback will start at the specified position.")
21067 (license license:gpl3+))))
21068
21069 (define-public emacs-org-jira
21070 (package
21071 (name "emacs-org-jira")
21072 (version "4.3.1")
21073 (source
21074 (origin
21075 (method git-fetch)
21076 (uri (git-reference
21077 (url "https://github.com/ahungry/org-jira.git")
21078 (commit version)))
21079 (file-name (git-file-name name version))
21080 (sha256
21081 (base32
21082 "1l80r2a9zzbfk2c78i40h0ww79vm9v4j6xi2h5i4w9kqh10rs6h2"))))
21083 (build-system emacs-build-system)
21084 (propagated-inputs
21085 `(("emacs-request" ,emacs-request)
21086 ("emacs-s" ,emacs-s)
21087 ("emacs-dash" ,emacs-dash)
21088 ("emacs-org" ,emacs-org)))
21089 (home-page "https://github.com/ahungry/org-jira")
21090 (synopsis "Syncing between Jira and Org-mode")
21091 (description
21092 "This package provides an extension to org-mode for syncing issues with
21093 JIRA issue servers.")
21094 (license license:gpl3+)))
21095
21096 (define-public emacs-systemd-mode
21097 (package
21098 (name "emacs-systemd-mode")
21099 (version "1.6")
21100 (source (origin
21101 (method git-fetch)
21102 (uri (git-reference
21103 (url "https://github.com/holomorph/systemd-mode.git")
21104 (commit (string-append "v" version))))
21105 (file-name (git-file-name name version))
21106 (sha256
21107 (base32
21108 "0ylgnvpfindg4cxccbqy02ic7p0i9rygf1w16dm1filwhbqvjplq"))))
21109 (build-system emacs-build-system)
21110 (arguments '(#:include '("\\.el$" "\\.txt$")))
21111 (home-page "https://github.com/holomorph/systemd-mode")
21112 (synopsis
21113 "Major mode for editing systemd units")
21114 (description
21115 "Major mode for editing systemd units in GNU Emacs.")
21116 (license license:gpl3+)))
21117
21118 (define-public emacs-ssh-config-mode
21119 (let ((commit "4c1dfa57d452cb5654453bf186c8ff63e1e71b56")
21120 (revision "1"))
21121 (package
21122 (name "emacs-ssh-config-mode")
21123 (version (git-version "8.0" revision commit))
21124 (source
21125 (origin
21126 (method git-fetch)
21127 (uri
21128 (git-reference
21129 (url "https://github.com/jhgorrell/ssh-config-mode-el.git")
21130 (commit commit)))
21131 (file-name (git-file-name name commit))
21132 (sha256
21133 (base32
21134 "0crglfdazzckizbwzmgl2rn6j85avfzkr1q7ijxd17rp2anvr9bd"))))
21135 (build-system emacs-build-system)
21136 (arguments '(#:include '("\\.el$" "\\.txt$")))
21137 (home-page
21138 "https://github.com/jhgorrell/ssh-config-mode-el")
21139 (synopsis
21140 "Mode for fontification of ~/.ssh/config")
21141 (description
21142 "This package fontifies the ssh config keywords and creates
21143 keybindings for skipping from host section to host section.")
21144 (license license:gpl3+))))
21145
21146 (define-public emacs-ssh-agency
21147 (package
21148 (name "emacs-ssh-agency")
21149 (version "0.4")
21150 (source (origin
21151 (method git-fetch)
21152 (uri (git-reference
21153 (url "https://github.com/magit/ssh-agency.git")
21154 (commit version)))
21155 (file-name (git-file-name name version))
21156 (sha256
21157 (base32
21158 "0895n7bss4wdydic1gflr03f2cwdyqywl16gvb599lpn288jhwvz"))))
21159 (build-system emacs-build-system)
21160 (propagated-inputs
21161 `(("dash" ,emacs-dash)))
21162 (home-page "https://github.com/magit/ssh-agency")
21163 (synopsis "Manage @code{ssh-agent} from Emacs")
21164 (description
21165 "This package provides functions to startup @code{ssh-agent}, set the
21166 needed environment variables in Emacs, and prompt for passphrases from within
21167 Emacs so that pushes and pulls from @code{magit} will not require entering any
21168 passphrase.
21169
21170 It can also be useful on Unix-like platforms to delay having to enter your
21171 passphrase until the first time you push to a remote.")
21172 (license license:gpl3+)))
21173
21174 (define-public emacs-tao-theme
21175 (let ((commit "c5107fbe7e752f4e58c2d2147ff18a1ebb12937c")
21176 (revision "0"))
21177 (package
21178 (name "emacs-tao-theme")
21179 (version (git-version "0" revision commit))
21180 (source
21181 (origin
21182 (method git-fetch)
21183 (uri (git-reference
21184 (url "https://github.com/11111000000/tao-theme-emacs.git")
21185 (commit commit)))
21186 (file-name (git-file-name name version))
21187 (sha256
21188 (base32
21189 "07vvlglmkj87hpxz79s3bl2cjn71vain57fdxs7j9vlr5jkchxwn"))))
21190 (build-system emacs-build-system)
21191 (home-page "https://github.com/11111000000/tao-theme-emacs")
21192 (synopsis "Parameterized uncolored color themes for Emacs")
21193 (description
21194 "This package provides two parameterized uncolored color themes for
21195 Emacs: @code{tao-yin} and @code{tao-yang}. The default
21196 @code{tao-theme-scale-fn} is @code{tao-theme-golden-scale}.
21197
21198 You can customize: @code{tao-theme-scale-fn}, that returns 16 2-digit numbers;
21199 @code{tao-theme-scale-filter-fn}, for edge filter; and
21200 @code{tao-theme-use-height}.")
21201 (license license:gpl3+))))
21202
21203 (define-public emacs-almost-mono-themes
21204 (let ((commit "c3a85c1a665530a5d830665969725cdba8eceb75")
21205 (revision "0"))
21206 (package
21207 (name "emacs-almost-mono-themes")
21208 (version (git-version "0" revision commit))
21209 (source
21210 (origin
21211 (method git-fetch)
21212 (uri (git-reference
21213 (url "https://github.com/cryon/almost-mono-themes.git")
21214 (commit commit)))
21215 (file-name (git-file-name name version))
21216 (sha256
21217 (base32
21218 "034k32xkr5ma415hlkbl35z0jxc4sa1inf87hg3y6lrlfl83fyjh"))))
21219 (build-system emacs-build-system)
21220 (home-page "https://github.com/cryon/almost-mono-themes")
21221 (synopsis "Almost monochromatic themes for emacs in a few variants")
21222 (description
21223 "This package provides a collection of almost monochrome Emacs themes:
21224 @code{almost-mono-black} and @code{almost-mono-white}.")
21225 (license license:gpl3+))))
21226
21227 (define-public emacs-quasi-monochrome
21228 (let ((commit "68060dbbc0bbfe4924387392874186c5a29bb434")
21229 (revision "0"))
21230 (package
21231 (name "emacs-quasi-monochrome")
21232 (version (git-version "1.2" revision commit))
21233 (source
21234 (origin
21235 (method git-fetch)
21236 (uri (git-reference
21237 (url "https://github.com/lbolla/emacs-quasi-monochrome.git")
21238 (commit commit)))
21239 (file-name (git-file-name name version))
21240 (sha256
21241 (base32
21242 "0zp2xr0bjfqrpb0bqczzick1vvbjmipjavrdi70kw6a9caynvq22"))))
21243 (build-system emacs-build-system)
21244 (home-page "https://github.com/lbolla/emacs-quasi-monochrome")
21245 (synopsis "Dark color theme for Emacs")
21246 (description
21247 "This package provides a dark color theme with a black background, high
21248 contrast and few colors.")
21249 (license license:gpl3+))))
21250
21251 (define-public emacs-doom-themes
21252 (let ((commit "54039c5171e3f8c9cef1f82122549b66cd8c8f7b")
21253 (revision "4")
21254 (version "2.1.6"))
21255 (package
21256 (name "emacs-doom-themes")
21257 (version (git-version version revision commit))
21258 (source (origin
21259 (method git-fetch)
21260 (uri (git-reference
21261 (url "https://github.com/hlissner/emacs-doom-themes.git")
21262 (commit commit)))
21263 (file-name (git-file-name name version))
21264 (sha256
21265 (base32 "1iwdjq4q2gkhi6jwas3ywgmdz5dg14sfb3fzhqd7wih6j3i2l3cr"))))
21266 (build-system emacs-build-system)
21267 (native-inputs
21268 `(("emacs-ert-runner" ,emacs-ert-runner)))
21269 (arguments
21270 `(#:tests? #t
21271 #:test-command '("ert-runner")
21272 #:modules ((guix build emacs-build-system)
21273 (guix build utils)
21274 (guix build emacs-utils)
21275 (srfi srfi-1))
21276 #:phases
21277 (modify-phases %standard-phases
21278 (add-after 'unpack 'move-themes
21279 (lambda _
21280 ;; Move the source files to the top level, which is in the
21281 ;; EMACSLOADPATH.
21282 (for-each (lambda (f)
21283 (rename-file f (basename f)))
21284 (find-files "./themes" ".*\\.el$"))
21285 #t))
21286 ;; There is a byte-code overflow issue in the latest checkout
21287 ;; which affects byte-compilation for several (read `most') theme
21288 ;; files. In order to cope with this issue, we disable
21289 ;; byte-compilation until this issue is resolved.
21290 ;; <https://github.com/hlissner/emacs-doom-themes/issues/314>
21291 ;;
21292 ;; NOTE: Byte-comp has been disabled in/after commit 9cd6872.
21293 ;; However our method of selective disabling is preferential to
21294 ;; just widely disabling byte-compilation.
21295 (add-after 'move-themes 'disable-breaking-compilation
21296 (lambda _
21297 (for-each (lambda (file)
21298 (chmod file #o600) ; needed to write changes.
21299 (emacs-batch-disable-compilation file))
21300 (cons "doom-themes-ext-neotree.el"
21301 ;; NOTE: When updating this package, determine
21302 ;; whether changed theme files can byte-compile.
21303 ;; If they can successfully byte-compile, add them
21304 ;; to this list of exceptions.
21305 (lset-difference string-contains
21306 (find-files "." ".*-theme.el")
21307 '("material"
21308 "snazzy"
21309 "tomorrow-day"))))
21310 #t)))))
21311 (synopsis "Wide collection of color themes for Emacs")
21312 (description "Emacs-doom-themes contains numerous popular color themes for
21313 Emacs that integrate with major modes like Org-mode.")
21314 (home-page "https://github.com/hlissner/emacs-doom-themes")
21315 (license license:expat))))
21316
21317 (define-public emacs-modus-operandi-theme
21318 (package
21319 (name "emacs-modus-operandi-theme")
21320 (version "0.8.1")
21321 (source
21322 (origin
21323 (method url-fetch)
21324 (uri (string-append "https://elpa.gnu.org/packages/"
21325 "modus-operandi-theme-" version ".el"))
21326 (sha256
21327 (base32 "0i8s6blkhx53m1jk1bblqs7fwlbn57xkxxhsp9famcj5m0xyfimb"))))
21328 (build-system emacs-build-system)
21329 (home-page "https://gitlab.com/protesilaos/modus-themes")
21330 (synopsis "Accessible light theme (WCAG AAA)")
21331 (description
21332 "Modus operandi is the light version of the Modus accessible themes for
21333 GNU Emacs. The contrast ratio between foreground and background values should
21334 always be greater than 7:1, which conforms with the WCAG AAA accessibility
21335 standard. This is the highest standard of its kind.")
21336 (license license:gpl3+)))
21337
21338 (define-public emacs-modus-vivendi-theme
21339 (package
21340 (name "emacs-modus-vivendi-theme")
21341 (version "0.8.1")
21342 (source
21343 (origin
21344 (method url-fetch)
21345 (uri (string-append "https://elpa.gnu.org/packages/"
21346 "modus-vivendi-theme-" version ".el"))
21347 (sha256
21348 (base32 "121nlr5w58j4q47rh9xjjf9wzb97yl2m1n2l6g58ck4vnarwndl1"))))
21349 (build-system emacs-build-system)
21350 (home-page "https://gitlab.com/protesilaos/modus-themes")
21351 (synopsis "Accessible dark theme (WCAG AAA)")
21352 (description
21353 "Modus vivendi is the dark version of the Modus accessible themes for GNU
21354 Emacs. The contrast ratio between foreground and background values should
21355 always be greater than 7:1, which conforms with the WCAG AAA accessibility
21356 standard. This is the highest standard of its kind.")
21357 (license license:gpl3+)))
21358
21359 (define-public emacs-modus-themes
21360 (deprecated-package "emacs-modus-themes" emacs-modus-operandi-theme))
21361
21362 (define-public emacs-punpun-theme
21363 (let ((commit "2f78125609277b2478abdebd8f9d5ee10a823b65")
21364 (revision "0"))
21365 (package
21366 (name "emacs-punpun-theme")
21367 (version (git-version "0" revision commit))
21368 (source
21369 (origin
21370 (method git-fetch)
21371 (uri (git-reference
21372 (url "https://github.com/wasamasa/punpun-theme.git")
21373 (commit commit)))
21374 (file-name (git-file-name name version))
21375 (sha256
21376 (base32
21377 "1sgxrj3igzq86h3whfymxf4qzv9kpvcrlhbvjmnp7fwrplys0n7d"))))
21378 (build-system emacs-build-system)
21379 (home-page "https://github.com/wasamasa/punpun-theme")
21380 (synopsis "Bleak Emacs theme")
21381 (description
21382 "A bleak theme. Uses shades of gray and the occasional splash of
21383 color. Designed for 256-color terminals. Comes in light and dark!")
21384 (license license:gpl3+))))
21385
21386 (define-public emacs-spacemacs-theme
21387 (let ((commit "f79c40fb241e204539fde97200abae91e828e585")
21388 (revision "1"))
21389 (package
21390 (name "emacs-spacemacs-theme")
21391 (version (git-version "0" revision commit)) ;no release yet
21392 (source
21393 (origin
21394 (method git-fetch)
21395 (uri (git-reference
21396 (url "https://github.com/nashamri/spacemacs-theme.git")
21397 (commit commit)))
21398 (file-name (git-file-name name version))
21399 (sha256
21400 (base32 "1l2kkiyrskkpx8f901v0wrzaah1wjg15zdyv88spj3mh3hwd3b6n"))))
21401 (build-system emacs-build-system)
21402 (home-page "https://github.com/nashamri/spacemacs-theme")
21403 (synopsis
21404 "Light and dark theme for spacemacs that supports GUI and terminal")
21405 (description
21406 "Spacemacs theme is an Emacs color theme that started as
21407 a theme for Spacemacs. The theme comes with dark and light variants
21408 and it should work well with 256 color terminals.")
21409 (license license:gpl3+))))
21410
21411 (define-public emacs-elixir-mode
21412 (package
21413 (name "emacs-elixir-mode")
21414 (version "2.3.1")
21415 (source
21416 (origin
21417 (method git-fetch)
21418 (uri (git-reference
21419 (url "https://github.com/elixir-editors/emacs-elixir.git")
21420 (commit (string-append "v" version))))
21421 (file-name (git-file-name name version))
21422 (sha256
21423 (base32 "06bi68x49v6f7flpz279mm4jpg31ll3s274givm3pvr8slcxs6xg"))))
21424 (build-system emacs-build-system)
21425 (propagated-inputs
21426 `(("emacs-pkg-info" ,emacs-pkg-info)))
21427 (home-page
21428 "https://github.com/elixir-editors/emacs-elixir")
21429 (synopsis "Major mode for editing Elixir files")
21430 (description
21431 "Elixir-Mode provides font-locking, indentation and navigation support
21432 for the Elixir programming language.")
21433 (license license:gpl3+)))
21434
21435 (define-public emacs-dimmer
21436 (package
21437 (name "emacs-dimmer")
21438 (version "0.3.0")
21439 (source
21440 (origin
21441 (method git-fetch)
21442 (uri (git-reference
21443 (url "https://github.com/gonewest818/dimmer.el.git")
21444 (commit version)))
21445 (file-name (git-file-name name version))
21446 (sha256
21447 (base32 "1jv9rrv15nb5hpwcaqlpjj932gyisrkwbv11czkg3v0bn7qn6yif"))))
21448 (build-system emacs-build-system)
21449 (home-page "https://github.com/gonewest818/dimmer.el")
21450 (synopsis "Visually highlights the selected buffer in Emacs")
21451 (description "Dimmer provides a minor mode that indicates which buffer is
21452 currently active by dimming the faces in the other buffers. It does this
21453 nondestructively, and computes the dimmed faces dynamically such that your
21454 overall color scheme is shown in a muted form without requiring you to define
21455 what is a \"dim\" version of every face.")
21456 (license license:gpl3+)))
21457
21458 (define-public emacs-minibuffer-line
21459 (package
21460 (name "emacs-minibuffer-line")
21461 (version "0.1")
21462 (source
21463 (origin
21464 (method url-fetch)
21465 (uri (string-append
21466 "https://elpa.gnu.org/packages/minibuffer-line-"
21467 version
21468 ".el"))
21469 (sha256
21470 (base32 "1ny4iirp26na5118wfgxlv6fxlrdclzdbd9m0lkrv51w0qw7spil"))))
21471 (build-system emacs-build-system)
21472 (home-page "https://elpa.gnu.org/packages/minibuffer-line.html")
21473 (synopsis "Display status info in the minibuffer window")
21474 (description
21475 "This package lets you display various status information in the
21476 minibuffer window instead of the mode-line. Of course, this is only displayed
21477 when the minibuffer window is not already used for other things (e.g. a
21478 minibuffer or an each area message).
21479
21480 The contents and aspect is controlled by the @code{minibuffer-line-format}
21481 variable and the @code{minibuffer-line} face.")
21482 (license license:gpl3+)))
21483
21484 (define-public emacs-eshell-prompt-extras
21485 (package
21486 (name "emacs-eshell-prompt-extras")
21487 (version "1.0")
21488 (home-page "https://github.com/zwild/eshell-prompt-extras")
21489 (source
21490 (origin
21491 (method git-fetch)
21492 (uri (git-reference
21493 (url home-page)
21494 (commit version)))
21495 (file-name (git-file-name name version))
21496 (sha256
21497 (base32
21498 "0gb07mns23dgqqr6qfy7d6ndizy15sqgbgfaig6k5xbjnwi02v9g"))))
21499 (build-system emacs-build-system)
21500 (synopsis "Display extra information and color for your Eshell prompt")
21501 (description "This library displays various customizable elements for
21502 @code{eshell} prompts: remote user, remote host, python virtual environment
21503 info, git branch, git dirty info and git unpushed number. Multiple themes are
21504 available.")
21505 (license license:gpl3+)))
21506
21507 (define-public emacs-eshell-did-you-mean
21508 (package
21509 (name "emacs-eshell-did-you-mean")
21510 (version "0.1")
21511 (home-page "https://github.com/xuchunyang/eshell-did-you-mean")
21512 (source
21513 (origin
21514 (method git-fetch)
21515 (uri (git-reference
21516 (url home-page)
21517 (commit (string-append "v" version))))
21518 (file-name (git-file-name name version))
21519 (sha256
21520 (base32
21521 "0v0wshck5n4hspcv1zk1g2nm6xiigcjp16lx0dc8wzkl6ymljvbg"))))
21522 (build-system emacs-build-system)
21523 (synopsis "Display suggestions on 'command not found' in Eshell")
21524 (description "This library adds a list of 'Did you mean...' suggestions
21525 when the command was not found in Eshell. The suggestions are found after the
21526 commands that bear resemblance to the input command.")
21527 (license license:gpl3+)))
21528
21529 (define-public emacs-unfill
21530 (package
21531 (name "emacs-unfill")
21532 (version "0.2")
21533 (home-page "https://github.com/purcell/unfill")
21534 (source
21535 (origin
21536 (method git-fetch)
21537 (uri (git-reference
21538 (url home-page)
21539 (commit version)))
21540 (file-name (git-file-name name version))
21541 (sha256
21542 (base32 "0wyradin5igp25nsd3n22i2ppxhmy49ac1iq1w2715v8pfmiydnc"))))
21543 (build-system emacs-build-system)
21544 (synopsis "Inverse of Emacs' @code{fill-paragraph} and @code{fill-region}")
21545 (description
21546 "The functions in this package provide the inverse of Emacs'
21547 @code{fill-paragraph} and @code{fill-region}.")
21548 (license license:gpl3+)))
21549
21550 (define-public emacs-windower
21551 (package
21552 (name "emacs-windower")
21553 (version "0.0.1")
21554 (home-page "https://gitlab.com/ambrevar/emacs-windower")
21555 (source
21556 (origin
21557 (method git-fetch)
21558 (uri (git-reference
21559 (url home-page)
21560 (commit version)))
21561 (file-name (git-file-name name version))
21562 (sha256
21563 (base32 "0h24gb1ip0czfasxm8wwcc3v19g7mznzw2sxkmmfb5iis59p7dfy"))))
21564 (build-system emacs-build-system)
21565 (synopsis "Helper functions for window manipulation in Emacs")
21566 (description
21567 "This package provides helper functions for window manipulation in Emacs,
21568 such as:
21569
21570 @itemize
21571 @item switch to last buffer,
21572 @item toggle single window display,
21573 @item toggle between horizontal and vertical splits,
21574 @item move borders more naturally,
21575 @item swap windows à-la @code{windmove}.
21576 @end itemize")
21577 (license license:gpl3+)))
21578
21579 (define-public emacs-flycheck-cpplint
21580 (let ((commit "1d8a090861572258ab704915263feeb3a436c3d2")
21581 (revision "1"))
21582 (package
21583 (name "emacs-flycheck-cpplint")
21584 (version (git-version "0.1" revision commit))
21585 (source
21586 (origin
21587 (method git-fetch)
21588 (uri (git-reference
21589 (url "https://github.com/flycheck/flycheck-google-cpplint")
21590 (commit commit)))
21591 (file-name (git-file-name name version))
21592 (sha256
21593 (base32 "0l6sg83f6z8x2alnblpv03rj442sbnkkkcbf8i0agjmx3713a5yx"))))
21594 (build-system emacs-build-system)
21595 (arguments
21596 `(#:phases
21597 (modify-phases %standard-phases
21598 (add-after 'unpack 'set-cpplint-path
21599 (lambda _
21600 (substitute* "flycheck-google-cpplint.el"
21601 (("\"cpplint.py\"")
21602 (string-append "\"" (which "cpplint") "\"")))
21603 #t)))))
21604 (inputs
21605 `(("cpplint" ,cpplint)))
21606 (propagated-inputs
21607 `(("flycheck-mode" ,emacs-flycheck)))
21608 (synopsis "Google C++ checker for Flycheck")
21609 (description "This package provides a interface for @code{cpplint} over
21610 Flycheck plugin. @code{cpplint} is a static code checker for C++, following
21611 Google guidelines.")
21612 (home-page "https://github.com/flycheck/flycheck-google-cpplint")
21613 (license license:gpl3+))))
21614
21615 (define-public emacs-helm-fish-completion
21616 (package
21617 (name "emacs-helm-fish-completion")
21618 (version "0.3")
21619 (home-page "https://github.com/emacs-helm/helm-fish-completion")
21620 (source
21621 (origin
21622 (method git-fetch)
21623 (uri (git-reference
21624 (url home-page)
21625 (commit version)))
21626 (file-name (git-file-name name version))
21627 (sha256
21628 (base32 "1iv0hwr74hzgrvrr31nlnswvi87lvpg24rd1rhkr5kjicr2295fq"))))
21629 (build-system emacs-build-system)
21630 (propagated-inputs
21631 `(("helm" ,emacs-helm)
21632 ("fish-completion" ,emacs-fish-completion)))
21633 (synopsis "Helm interface for Emacs fish-completion")
21634 (description "Helm Fish Completion is a Helm interface for Emacs
21635 fish-completion. It can be used in both Eshell and M-x shell.")
21636 (license license:gpl3+)))
21637
21638 (define-public emacs-telega
21639 ;; This package has versions newer than indicated on MELPA.
21640 ;; Get the current version from `telega-version` in telega.el.
21641 ;; or by running M-x telega-version.
21642 (let ((commit "ae09592498ce380e57fbb76725fd4c89ae248864")
21643 (revision "0")
21644 (version "0.6.0"))
21645 (package
21646 (name "emacs-telega")
21647 (version (git-version version revision commit))
21648 (source
21649 (origin
21650 (method git-fetch)
21651 (uri (git-reference
21652 (url "https://github.com/zevlg/telega.el.git")
21653 (commit commit)))
21654 (sha256
21655 (base32
21656 "0mv6i80958d9crzspzik5xh5g8326115bvg2frgv0dp9p6rm86m3"))
21657 (patches (search-patches "emacs-telega-test-env.patch"))
21658 (file-name (git-file-name name version))))
21659 (build-system gnu-build-system)
21660 (arguments
21661 `(#:modules ((guix build gnu-build-system)
21662 ((guix build emacs-build-system) #:prefix emacs:)
21663 (guix build utils)
21664 (guix build emacs-utils))
21665 #:imported-modules (,@%gnu-build-system-modules
21666 (guix build emacs-build-system)
21667 (guix build emacs-utils))
21668 #:test-target "test"
21669 #:make-flags (list "WITH_VOIP=t")
21670 #:phases
21671 (modify-phases %standard-phases
21672 (add-after 'unpack 'prefix-patch
21673 (lambda _
21674 (substitute* "server/Makefile"
21675 (("CC=cc")
21676 "CC=gcc")
21677 (("INSTALL_PREFIX=\\$\\(HOME\\)/.telega")
21678 (string-append "INSTALL_PREFIX=" (assoc-ref %outputs "out")
21679 "/bin"))
21680 ;; Manually invoke `run_tests.py` after install phase.
21681 (("python3 run_tests.py")
21682 ""))
21683 #t))
21684 (add-after 'unpack 'telega-paths-patch
21685 (lambda* (#:key inputs #:allow-other-keys)
21686 ;; Hard-code paths to `ffplay` and `ffmpeg`.
21687 (let ((ffplay-bin (string-append (assoc-ref inputs "ffmpeg")
21688 "/bin/ffplay"))
21689 (ffmpeg-bin (string-append (assoc-ref inputs "ffmpeg")
21690 "/bin/ffmpeg")))
21691 (substitute* "telega-ffplay.el"
21692 (("\\(executable-find \"ffplay\"\\)")
21693 (string-append
21694 "(and (file-executable-p \"" ffplay-bin "\")"
21695 "\"" ffplay-bin "\")"))
21696 (("\\(executable-find \"ffmpeg\"\\)")
21697 (string-append
21698 "(and (file-executable-p \"" ffmpeg-bin "\")"
21699 "\"" ffmpeg-bin "\")"))))
21700 ;; Modify telega-util to reflect unique dir name in
21701 ;; `telega-install-data' phase.
21702 (substitute* "telega-util.el"
21703 (("\\(concat \"etc/\" filename\\) telega--lib-directory")
21704 "(concat \"telega-data/\" filename)
21705 (locate-dominating-file telega--lib-directory
21706 \"telega-data\")"))
21707 #t))
21708 ;; The server test suite has a hardcoded path.
21709 ;; Reset this behavior to use the proper path.
21710 (add-after 'unpack 'server-suite-patch
21711 (lambda _
21712 (substitute* "server/run_tests.py"
21713 (("~/.telega/telega-server")
21714 (string-append (assoc-ref %outputs "out")
21715 "/bin/telega-server")))
21716 #t))
21717 (add-after 'install 'run-server-suite
21718 (lambda _
21719 (invoke "python3" "server/run_tests.py")
21720 #t))
21721 (delete 'configure)
21722 ;; Build emacs-side using `emacs-build-system'
21723 (add-after 'compress-documentation 'emacs-add-source-to-load-path
21724 (assoc-ref emacs:%standard-phases 'add-source-to-load-path))
21725 (add-after 'emacs-add-source-to-load-path 'emacs-install
21726 (assoc-ref emacs:%standard-phases 'install))
21727 ;; This step installs subdir /etc, which contains images, sounds and
21728 ;; various other data, next to the site-lisp dir.
21729 (add-after 'emacs-install 'telega-install-data
21730 (lambda* (#:key outputs #:allow-other-keys)
21731 (copy-recursively
21732 "etc"
21733 (string-append (assoc-ref outputs "out")
21734 "/share/emacs/telega-data/"))
21735 #t))
21736 (add-after 'telega-install-data 'emacs-build
21737 (assoc-ref emacs:%standard-phases 'build))
21738 (add-after 'emacs-build 'emacs-make-autoloads
21739 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
21740 (inputs
21741 `(("ffmpeg" ,ffmpeg))) ; mp4/gif support.
21742 (propagated-inputs
21743 `(("emacs-visual-fill-column" ,emacs-visual-fill-column)
21744 ("emacs-company" ,emacs-company)
21745 ("libwebp" ,libwebp))) ; sticker support.
21746 (native-inputs
21747 `(("tdlib" ,tdlib)
21748 ("libtgvoip" ,libtgvoip) ; VoIP support.
21749 ;; Use Emacs with wide ints on 32-bit architectures.
21750 ("emacs" ,(match (%current-system)
21751 ((or "i686-linux" "armhf-linux")
21752 emacs-wide-int)
21753 (_
21754 emacs)))
21755 ("python" ,python)))
21756 (synopsis "GNU Emacs client for the Telegram messenger")
21757 (description
21758 "Telega is a full-featured, unofficial GNU Emacs-based client for the
21759 Telegram messaging platform.")
21760 (home-page "https://github.com/zevlg/telega.el")
21761 (license license:gpl3+))))
21762
21763 (define-public emacs-doom-modeline
21764 (package
21765 (name "emacs-doom-modeline")
21766 (version "2.8.2")
21767 (source (origin
21768 (method git-fetch)
21769 (uri (git-reference
21770 (url "https://github.com/seagle0128/doom-modeline.git")
21771 (commit (string-append "v" version))))
21772 (sha256
21773 (base32
21774 "11srz1mr821axggs2jcmdhihxx09a2dniqv3n039wbdfaimfaidz"))
21775 (file-name (git-file-name name version))))
21776 (build-system emacs-build-system)
21777 (arguments
21778 `(#:test-command '("ert-runner")))
21779 (native-inputs `(("emacs-ert-runner" ,emacs-ert-runner)))
21780 (propagated-inputs
21781 `(("emacs-all-the-icons" ,emacs-all-the-icons)
21782 ("emacs-shrink-path" ,emacs-shrink-path)))
21783 (synopsis "Fancy and fast mode-line inspired by minimalism design")
21784 (description "Doom modeline is a complete modeline for GNU Emacs inspired
21785 by the Doom theme collection. This modeline features support for mode-specific
21786 icon support, git integration, and several other utilities.")
21787 (home-page "https://github.com/seagle0128/doom-modeline/")
21788 (license license:gpl3+)))
21789
21790 (define-public emacs-shrink-path
21791 (package
21792 (name "emacs-shrink-path")
21793 (version "0.3.1")
21794 (source
21795 (origin
21796 (method git-fetch)
21797 (uri (git-reference
21798 (url "https://gitlab.com/bennya/shrink-path.el.git")
21799 (commit (string-append "v" version))))
21800 (sha256
21801 (base32
21802 "0kx0c4syd7k6ff9j463bib32pz4wq0rzjlg6b0yqnymlzfr1mbki"))
21803 (file-name (git-file-name name version))))
21804 (build-system emacs-build-system)
21805 (propagated-inputs
21806 `(("emacs-s" ,emacs-s)
21807 ("emacs-dash" ,emacs-dash)
21808 ("emacs-f" ,emacs-f)))
21809 (home-page "https://gitlab.com/bennya/shrink-path.el")
21810 (synopsis "Fish-style path truncation in emacs-lisp")
21811 (description "This package provides utility functions that allow for
21812 Fish-style truncated directories in eshell and various modelines.")
21813 (license license:gpl3+)))
21814
21815 (define-public emacs-org-present
21816 (let ((commit "d13acd70eff6a1608bc991920232146a0de76b21"))
21817 (package
21818 (name "emacs-org-present")
21819 (version "0.0.1")
21820 (source
21821 (origin
21822 (method git-fetch)
21823 (uri (git-reference
21824 (url "https://github.com/rlister/org-present.git")
21825 (commit commit)))
21826 (file-name (git-file-name name version))
21827 (sha256
21828 (base32
21829 "0jz8xiny3rv9ql0p623byz32pip1b82j2c2nyfz2wd114kiabb6q"))))
21830 (build-system emacs-build-system)
21831 (synopsis "Ultra-minimalist presentation minor-mode for Emacs org-mode")
21832 (description "Org-present is an extremely minimalist presentation tool
21833 for Emacs org-mode. Simply layout your presentation with each slide under a
21834 top-level header, start the minor mode with @code{org-present}, and page through
21835 each slide with left/right keys.")
21836 (home-page "https://github.com/rlister/org-present")
21837 (license license:gpl2))))
21838
21839 (define-public emacs-fullframe
21840 (package
21841 (name "emacs-fullframe")
21842 (version "0.5.0")
21843 (source
21844 (origin
21845 (method git-fetch)
21846 (uri (git-reference
21847 (url "https://github.com/tomterl/fullframe.git")
21848 (commit version)))
21849 (sha256
21850 (base32
21851 "0m43qnhp6ibsskpjkxc86p3lrjsjc0ndqml3lbd65s79x4x7i3fi"))
21852 (file-name (git-file-name name version))))
21853 (build-system emacs-build-system)
21854 (home-page "https://github.com/tomterl/fullframe")
21855 (synopsis "Generalized automatic execution in a single frame")
21856 (description "This library provides helpers for single-window-per-frame
21857 execution of buffer-exposing commands.")
21858 (license license:gpl3+)))
21859
21860 (define-public emacs-eshell-toggle
21861 (let ((commit "ddfbe0a693497c4d4bc5494a19970ba4f6ab9033")
21862 (revision "1"))
21863 (package
21864 (name "emacs-eshell-toggle")
21865 (version (git-version "0.10.0" revision commit))
21866 (source
21867 (origin
21868 (method git-fetch)
21869 (uri (git-reference
21870 (url "https://github.com/4DA/eshell-toggle.git")
21871 (commit commit)))
21872 (sha256
21873 (base32
21874 "0xqrp8pwbmfxjdqipgpw5nw633mvhjjjm3k3j9sh9xdpmw05hhws"))
21875 (file-name (git-file-name name version))))
21876 (build-system emacs-build-system)
21877 (propagated-inputs
21878 `(("emacs-dash" ,emacs-dash)))
21879 (home-page "https://github.com/4DA/eshell-toggle")
21880 (synopsis "Show and hide an @code{eshell} instance")
21881 (description "This package toggles an @code{eshell} instance for the
21882 current buffer.")
21883 (license license:gpl3+))))
21884
21885 (define-public emacs-repl-toggle
21886 (package
21887 (name "emacs-repl-toggle")
21888 (version "0.6.1")
21889 (source
21890 (origin
21891 (method git-fetch)
21892 (uri (git-reference
21893 (url "https://github.com/tomterl/repl-toggle.git")
21894 (commit version)))
21895 (sha256
21896 (base32
21897 "12h3xxja3isnhvrqx7m2g7a5d8h68cc85pbqyhiipfxyafyl1yxd"))
21898 (file-name (git-file-name name version))))
21899 (build-system emacs-build-system)
21900 (propagated-inputs
21901 `(("emacs-fullframe" ,emacs-fullframe)))
21902 (home-page "https://github.com/tomterl/repl-toggle")
21903 (synopsis "Switch to and from current major mode's REPL")
21904 (description "This package provides a function to switch to and from a
21905 REPL appropriate to the current major mode.")
21906 (license license:gpl3+)))
21907
21908 (define-public emacs-blackout
21909 (let ((commit "4bac44671fca4c98d96aa94c79946bf4d4baf0ee")
21910 (revision "1"))
21911 (package
21912 (name "emacs-blackout")
21913 (version (git-version "1.0" revision commit))
21914 (source
21915 (origin
21916 (method git-fetch)
21917 (uri (git-reference
21918 (url "https://github.com/raxod502/blackout.git")
21919 (commit commit)))
21920 (sha256
21921 (base32
21922 "1wnh0nwy6r3a18sy9sqmrwv04vnmaflxy4g7mq8jiyyjijri7l1b"))
21923 (file-name (git-file-name name version))))
21924 (build-system emacs-build-system)
21925 (home-page "https://github.com/raxod502/blackout")
21926 (synopsis "Clean up mode lighters")
21927 (description "This package provides a function for hiding and customizing
21928 display of major and minor modes in the mode line.")
21929 (license license:gpl3+))))
21930
21931 (define-public emacs-ivy-omni-org
21932 (let ((commit "5460a9fc061a4a5ae8372dc8df966ced94abab58")
21933 (revision "1"))
21934 (package
21935 (name "emacs-ivy-omni-org")
21936 (version (git-version "0.2.1" revision commit))
21937 (source
21938 (origin
21939 (method git-fetch)
21940 (uri (git-reference
21941 (url "https://github.com/akirak/ivy-omni-org.git")
21942 (commit commit)))
21943 (file-name (git-file-name name version))
21944 (sha256
21945 (base32
21946 "1np1f51hc3phkl5w02a9a79gl38ra2d535i784fn4pqaasvm0rq8"))))
21947 (build-system emacs-build-system)
21948 (propagated-inputs
21949 `(("emacs-ivy" ,emacs-ivy)
21950 ("emacs-dash" ,emacs-dash)))
21951 (synopsis "Browse anything in Org mode")
21952 (description "This package allows Org items to be accessed via the Ivy
21953 interface.")
21954 (home-page "https://github.com/akirak/ivy-omni-org")
21955 (license license:gpl3+))))
21956
21957 (define-public emacs-ivy-posframe
21958 (let ((commit "ae9bafe94fe6b77b6fe45766ae6172646f6a5d50"))
21959 (package
21960 (name "emacs-ivy-posframe")
21961 (version (git-version "0.1.0" "1" commit))
21962 (source
21963 (origin
21964 (method git-fetch)
21965 (uri (git-reference
21966 (url "https://github.com/tumashu/ivy-posframe.git")
21967 (commit commit)))
21968 (file-name (git-file-name name version))
21969 (sha256
21970 (base32
21971 "1j6yns5d7lh2v1nfcznrirl7qicdli9csciqvfgj4gkh72a97pw1"))))
21972 (build-system emacs-build-system)
21973 (propagated-inputs
21974 `(("emacs-posframe" ,emacs-posframe)
21975 ("emacs-ivy" ,emacs-ivy)))
21976 (home-page "https://github.com/tumashu/ivy-posframe")
21977 (synopsis "Pop a posframe (a child frame) to show Ivy candidates")
21978 (description
21979 "This package provides an Emacs Ivy extension, which let Ivy use
21980 posframe to show its candidate menu.")
21981 (license license:gpl3+))))
21982
21983 (define-public emacs-shackle
21984 (let ((commit "7ccbe513852a1d1700b698547efca14b8940319d")
21985 (revision "1"))
21986 (package
21987 (name "emacs-shackle")
21988 (version (git-version "1.0.3" revision commit))
21989 (source
21990 (origin
21991 (method git-fetch)
21992 (uri (git-reference
21993 (url "https://github.com/wasamasa/shackle.git")
21994 (commit commit)))
21995 (file-name (git-file-name name version))
21996 (sha256
21997 (base32
21998 "0agsp8ia4irr540r898ifhjqp28n1zsq1pilv1kc272spn3qhvp9"))))
21999 (build-system emacs-build-system)
22000 (synopsis "Enforce rules for popups")
22001 (description "This package provides a global minor mode in which users
22002 can specify how popup-displaying functions occupy the screen.")
22003 (home-page "https://github.com/wasamasa/shackle")
22004 (license license:gpl3+))))
22005
22006 (define-public emacs-helm-lacarte
22007 (let ((commit "40a6c449720be521435b6b1da7911af3a0b9dca0")
22008 (revision "1"))
22009 (package
22010 (name "emacs-helm-lacarte")
22011 (version (git-version "0" revision commit))
22012 (source
22013 (origin
22014 (method git-fetch)
22015 (uri (git-reference
22016 (url "https://github.com/emacs-helm/helm-lacarte.git")
22017 (commit commit)))
22018 (file-name (git-file-name name version))
22019 (sha256
22020 (base32
22021 "0dkfd3lap2v7b4nckzv8v7hczmzwzhbl75haqkra107ln91ldbwc"))))
22022 (build-system emacs-build-system)
22023 (propagated-inputs
22024 `(("emacs-helm" ,emacs-helm)
22025 ("emacs-lacarte" ,emacs-lacarte)))
22026 (synopsis "Helm interface to @code{lacarte.el}")
22027 (description "This package provides a Helm interface to
22028 @code{lacarte.el}, a package that displays mode-specific commands as menu
22029 items.")
22030 (home-page "https://github.com/emacs-helm/helm-lacarte")
22031 (license license:gpl3+))))
22032
22033 (define-public emacs-esh-help
22034 (let ((commit "417673ed18a983930a66a6692dbfb288a995cb80")
22035 (revision "1"))
22036 (package
22037 (name "emacs-esh-help")
22038 (version (git-version "1.0.1" revision commit))
22039 (source
22040 (origin
22041 (method git-fetch)
22042 (uri (git-reference
22043 (url "https://github.com/tom-tan/esh-help.git")
22044 (commit commit)))
22045 (file-name (git-file-name name version))
22046 (sha256
22047 (base32
22048 "0x7d51a6ljl014zy7mi27vzcqqbcwg9z4drq29fr2ajk82mqhlgd"))))
22049 (build-system emacs-build-system)
22050 (propagated-inputs
22051 `(("emacs-dash" ,emacs-dash)))
22052 (synopsis "Help functions for Eshell")
22053 (description "This package provides a @code{run-help} function inspired
22054 by @code{zsh} as well as @code{eldoc} support.")
22055 (home-page "https://github.com/tom-tan/esh-help")
22056 (license license:gpl3+))))
22057
22058 (define-public emacs-isearch-dabbrev
22059 (let ((commit "1efe7abba4923015cbc2462395deaec5446a9cc8")
22060 (revision "1"))
22061 (package
22062 (name "emacs-isearch-dabbrev")
22063 (version (git-version "0.1" revision commit))
22064 (source
22065 (origin
22066 (method git-fetch)
22067 (uri (git-reference
22068 (url "https://github.com/Dewdrops/isearch-dabbrev.git")
22069 (commit commit)))
22070 (file-name (git-file-name name version))
22071 (sha256
22072 (base32
22073 "17d0816awadvsw1qc7r0p6ira75jmgxaj9hsk9ypayxsaf6ynyrb"))))
22074 (build-system emacs-build-system)
22075 (synopsis "Use @code{dabbrev} within @code{isearch}")
22076 (description "This package allows @code{dabbrev-expand} to be used
22077 within @code{isearch-mode}.")
22078 (home-page "https://github.com/Dewdrops/isearch-dabbrev")
22079 (license license:gpl3+))))
22080
22081 (define-public emacs-helm-linux-disks
22082 (let ((commit "2cdc8116a08534289eb0dc76461d0f93a0bdf231")
22083 (revision "1"))
22084 (package
22085 (name "emacs-helm-linux-disks")
22086 (version (git-version "0.1" revision commit))
22087 (source
22088 (origin
22089 (method git-fetch)
22090 (uri (git-reference
22091 (url "https://github.com/Akirak/helm-linux-disks.git")
22092 (commit commit)))
22093 (file-name (git-file-name name version))
22094 (sha256
22095 (base32
22096 "1limw82zd8jz3mhh9rqlmhj4cjhfgybs9argfjid1an3vpyhc85i"))))
22097 (build-system emacs-build-system)
22098 (propagated-inputs
22099 `(("emacs-helm" ,emacs-helm)))
22100 (synopsis "Mount/unmount volumes in Linux via Helm")
22101 (description "This package provides a Helm interface to run operations
22102 on removable volumes in Linux.")
22103 (home-page "https://github.com/Akirak/helm-linux-disks")
22104 (license license:gpl3+))))
22105
22106 (define-public emacs-psession
22107 (let ((commit "3e97267c92b164584e06a6c70ee7491714c7c12c")
22108 (revision "1"))
22109 (package
22110 (name "emacs-psession")
22111 (version (git-version "1.5" revision commit))
22112 (source
22113 (origin
22114 (method git-fetch)
22115 (uri (git-reference
22116 (url "https://github.com/thierryvolpiatto/psession.git")
22117 (commit commit)))
22118 (file-name (git-file-name name version))
22119 (sha256
22120 (base32
22121 "15frl618393bc891d0yi3mdxzvbq790a86vfvp3dyd5riz4ddg95"))))
22122 (build-system emacs-build-system)
22123 (propagated-inputs
22124 `(("emacs-async" ,emacs-async)))
22125 (synopsis "Persistent save of @code{elisp} objects.")
22126 (description "This package provides minor modes for saving Emacs session
22127 data, including buffers, window configuration, variables, and more.")
22128 (home-page "https://github.com/thierryvolpiatto/psession")
22129 (license license:gpl3+))))
22130
22131 (define-public emacs-parseedn
22132 (package
22133 (name "emacs-parseedn")
22134 (version "0.1.0")
22135 (source
22136 (origin
22137 (method git-fetch)
22138 (uri (git-reference
22139 (url "https://github.com/clojure-emacs/parseedn.git")
22140 (commit (string-append "v" version))))
22141 (file-name (git-file-name name version))
22142 (sha256
22143 (base32
22144 "11wi3hwcgmy54p6ivpijqm7v0hj6j75a19qk5z779bqfrp79b4pc"))))
22145 (build-system emacs-build-system)
22146 (propagated-inputs
22147 `(("emacs-a" ,emacs-a)
22148 ("emacs-parseclj" ,emacs-parseclj)))
22149 (home-page "https://cider.mx")
22150 (synopsis "EDN parser for Emacs Lisp")
22151 (description
22152 "An Emacs Lisp library for parsing EDN (Clojure) data.
22153 It uses parseclj's shift-reduce parser internally.")
22154 (license license:gpl3+)))
22155
22156 (define-public emacs-parseclj
22157 (package
22158 (name "emacs-parseclj")
22159 (version "0.1.0")
22160 (source
22161 (origin
22162 (method git-fetch)
22163 (uri (git-reference
22164 (url "https://github.com/clojure-emacs/parseclj.git")
22165 (commit (string-append "v" version))))
22166 (file-name (git-file-name name version))
22167 (sha256
22168 (base32
22169 "03bm5dm4hmkqimv4wqxjjh5814pxysmm7z54bv2rf7zwv1x7dggr"))))
22170 (build-system emacs-build-system)
22171 (propagated-inputs `(("emacs-a" ,emacs-a)))
22172 (home-page "https://cider.mx")
22173 (synopsis "Clojure parser for Emacs Lisp")
22174 (description
22175 "An Emacs Lisp library for parsing Clojure code and EDN data.
22176 It supports several input and output formats, all powered by the
22177 same shift-reduce parser function.")
22178 (license license:gpl3+)))
22179
22180 (define-public emacs-hide-mode-line
22181 (package
22182 (name "emacs-hide-mode-line")
22183 (version "1.0.2")
22184 (source (origin
22185 (method git-fetch)
22186 (uri (git-reference
22187 (url "https://github.com/hlissner/emacs-hide-mode-line.git")
22188 (commit (string-append "v" version))))
22189 (file-name (git-file-name name version))
22190 (sha256
22191 (base32
22192 "0dfzjgxfkcw4wisbyldsm1km18pfp9j8xgadn6qnsz11l55bpgyp"))))
22193 (build-system emacs-build-system)
22194 (synopsis "Emacs plugin that hides the mode-line")
22195 (description "A minor mode that hides the mode-line in your current
22196 buffer. It can be used to toggle an alternative mode-line, toggle its visibility,
22197 or simply disable the mode-line in buffers where it is not very useful.")
22198 (home-page "https://github.com/hlissner/emacs-hide-mode-line")
22199 (license license:expat)))
22200
22201 (define-public emacs-helm-cider
22202 ;; No new release since March 2018.
22203 (let ((commit "9363cc537f06233345aa3af5cd46aa5681ad607b"))
22204 (package
22205 (name "emacs-helm-cider")
22206 (version (git-version "0.4.0" "1" commit))
22207 (home-page "https://github.com/clojure-emacs/helm-cider")
22208 (source (origin
22209 (method git-fetch)
22210 (uri (git-reference
22211 (url home-page)
22212 (commit commit)))
22213 (file-name (git-file-name name version))
22214 (sha256
22215 (base32
22216 "0vfn4smqba1vsshz48ggkj8gs94la0sxb1sq4shrb41qj2x3dci7"))))
22217 (build-system emacs-build-system)
22218 (propagated-inputs
22219 `(("emacs-helm" ,emacs-helm)
22220 ("emacs-cider" ,emacs-cider)))
22221 (synopsis "Helm interface to Clojure's CIDER")
22222 (description "Helm-CIDER adds Helm interfaces to
22223 @command{cider-apropos}, @command{cider-apropos-documentation},
22224 @command{cider-browse-ns} (namespaces).
22225
22226 It also provides original Helm commands: @command{helm-cider-spec},
22227 @command{helm-cider-spec-ns}, @command{helm-cider-repl-history},
22228 @command{helm-cider-cheatsheet}.")
22229 (license license:gpl3+))))
22230
22231 (define-public emacs-edn
22232 ;; No release since February 2016
22233 (let ((commit "be9e32d1b49e35247b263b0243df7cfdc8d413ab"))
22234 (package
22235 (name "emacs-edn")
22236 (version (git-version "1.1.2" "1" commit))
22237 (home-page "https://github.com/expez/edn.el")
22238 (source (origin
22239 (method git-fetch)
22240 (uri (git-reference
22241 (url home-page)
22242 (commit commit)))
22243 (file-name (git-file-name name version))
22244 (sha256
22245 (base32
22246 "1xp2hjhn52k6l1g6ypva6dsklpawni7gvjafbz6404f9dyxflh7l"))))
22247 (build-system emacs-build-system)
22248 (propagated-inputs
22249 `(("emacs-peg" ,emacs-peg)))
22250 (synopsis "Read and write EDN from Elisp")
22251 (description "This is an Emacs Lisp library for reading and writing the
22252 data format @code{edn}. See @url{https://github.com/edn-format/edn}.")
22253 (license license:gpl3+))))
22254
22255 (define-public emacs-helm-clojuredocs
22256 (let ((commit "5a7f0f2cb401be0b09e73262a1c18265ab9a3cea"))
22257 (package
22258 (name "emacs-helm-clojuredocs")
22259 (version (git-version "0.3" "1" commit))
22260 (home-page "https://github.com/mbuczko/helm-clojuredocs")
22261 (source (origin
22262 (method git-fetch)
22263 (uri (git-reference
22264 (url home-page)
22265 (commit commit)))
22266 (file-name (git-file-name name version))
22267 (sha256
22268 (base32
22269 "015b8zxh91ljhqvn6z43gy08di54xcw9skw0i7frj3d7gk984qhl"))))
22270 (build-system emacs-build-system)
22271 (propagated-inputs
22272 `(("emacs-helm" ,emacs-helm)
22273 ("emacs-edn" ,emacs-edn)))
22274 (synopsis "Search help on clojuredocs.org with Helm")
22275 (description "This package provides a Helm interface to lookup Clojure
22276 documentation on @url{https://clojuredocs.org} with Helm.
22277
22278 Two function are exposed:
22279 @itemize
22280 @item @command{helm-clojuredocs}: opens a Helm session with no initial
22281 pattern. Searching starts with minimal 3 characters entered.
22282 @item @command{helm-clojuredocs-at-point}: opens a Helm session with initial
22283 pattern guessed from thing under current cursor position.
22284 @end itemize\n")
22285 (license license:gpl3+))))
22286
22287 (define-public emacs-metal-mercury-mode
22288 (let ((commit "99e2d8fb7177cae3bfa2dec2910fc28216d5f5a8")
22289 (revision "1")
22290 (version "0.0.0"))
22291 (package
22292 (name "emacs-metal-mercury-mode")
22293 (version (git-version version revision commit))
22294 (source
22295 (origin
22296 (method git-fetch)
22297 (uri (git-reference
22298 (url "https://github.com/ahungry/metal-mercury-mode.git")
22299 (commit commit)))
22300 (sha256
22301 (base32
22302 "0iil5k3rgifz2vqwsy12rbv5rzyvidq4sgwazsb2hzys8xynmfn5"))
22303 (file-name (git-file-name name version))))
22304 (build-system emacs-build-system)
22305 (propagated-inputs
22306 `(("emacs-dash" ,emacs-dash)))
22307 (synopsis "Major mode for editing Mercury files")
22308 (description
22309 "Major mode for editing Mercury files. This is a rewrite of the original
22310 mercury-mode provided by Emacs as a wrapper around prolog-mode.")
22311 (home-page "https://github.com/ahungry/metal-mercury-mode")
22312 (license license:gpl3+))))
22313
22314 (define-public emacs-boxquote
22315 ;; The following commit is 2.1 release with a switch to GPL3+ license.
22316 (let ((commit "7e47e0e2853bc1215739b2e28f260e9eed93b2c5")
22317 (revision "0"))
22318 (package
22319 (name "emacs-boxquote")
22320 (version (git-version "2.1" revision commit))
22321 (source
22322 (origin
22323 (method git-fetch)
22324 (uri (git-reference
22325 (url "https://github.com/davep/boxquote.el.git")
22326 (commit commit)))
22327 (file-name (git-file-name name version))
22328 (sha256
22329 (base32 "1aqhg24gajvllbqxb0zxrnx6sddas37k2ldfinqyszd856sjhsg3"))))
22330 (build-system emacs-build-system)
22331 (home-page "https://github.com/davep/boxquote.el")
22332 (synopsis "Quote text with different kinds of boxes")
22333 (description "@code{boxquote} provides a set of functions for using
22334 a text quoting style that partially boxes in the left hand side of an area of
22335 text, such a marking style might be used to show externally included text or
22336 example code.")
22337 (license license:gpl3+))))
22338
22339 (define-public emacs-company-ebdb
22340 (package
22341 (name "emacs-company-ebdb")
22342 (version "1.1")
22343 (source
22344 (origin
22345 (method url-fetch)
22346 (uri (string-append "https://elpa.gnu.org/packages/"
22347 "company-ebdb-" version ".el"))
22348 (sha256
22349 (base32 "146qpiigz12zp1823ggxfrx090g0mxs7gz1ba7sa0iq6ibgzwwm9"))))
22350 (build-system emacs-build-system)
22351 (propagated-inputs
22352 `(("emacs-company" ,emacs-company)))
22353 (home-page "https://elpa.gnu.org/packages/company-ebdb.html")
22354 (synopsis "Company completion backend for EBDB in Message mode")
22355 (description "@code{company-ebdb} provides Company mode integration for
22356 EBDB. It is copied more or less intact from @code{company-bbdb}, originally
22357 by Jan Tatarik.")
22358 (license license:gpl3+)))
22359
22360 (define-public emacs-mwim
22361 ;; Use the latest commit not in a release version as of yet, since it
22362 ;; contains a bug fix for the cases where `comment-start-skip' is nil.
22363 (let ((commit "b4f3edb4c0fb8f8b71cecbf8095c2c25a8ffbf85")
22364 (revision "0"))
22365 (package
22366 (name "emacs-mwim")
22367 (version (git-version "0.4" revision commit))
22368 (source
22369 (origin
22370 (method git-fetch)
22371 (uri (git-reference
22372 (url "https://github.com/alezost/mwim.el.git")
22373 (commit commit)))
22374 (file-name (git-file-name name version))
22375 (sha256
22376 (base32 "0l3k611gp9g2x2vfmh92wnhnda81dslpwwpb8mxmzk308man77ya"))))
22377 (build-system emacs-build-system)
22378 (home-page "https://github.com/alezost/mwim.el")
22379 (synopsis "Move to the beginning/end of line, code or comment")
22380 (description "@code{mwim} provides several commands to switch between
22381 various line positions, like moving to the beginning/end of code, line, or
22382 comment.")
22383 (license license:gpl3+))))
22384
22385 (define-public emacs-delight
22386 (package
22387 (name "emacs-delight")
22388 (version "1.5")
22389 (source
22390 (origin
22391 (method url-fetch)
22392 (uri (string-append "https://elpa.gnu.org/packages/"
22393 "delight-" version ".el"))
22394 (sha256
22395 (base32 "0kzlvzwmn6zj0874086q2xw0pclyi7wlkq48zh2lkd2796xm8vw7"))))
22396 (build-system emacs-build-system)
22397 (home-page "https://elpa.gnu.org/packages/delight.html")
22398 (synopsis "Dimmer switch for your mode-line lighter text")
22399 (description "@code{delight} enables customizing or hiding the
22400 mode-line text (lighter) of major and minor modes.")
22401 (license license:gpl3+)))
22402
22403 (define-public emacs-unkillable-scratch
22404 ;; Use the latest (unreleased) commit as of now, since it contains a handy
22405 ;; `unkillable-scratch-do-not-reset-scratch-buffer' customization to not
22406 ;; repopulate the scratch buffer with `initial-scratch-message'.
22407 (let ((commit "b24c2a760529833f230c14cb02ff6e7ec92288ab")
22408 (revision "0"))
22409 (package
22410 (name "emacs-unkillable-scratch")
22411 (version (git-version "1.0.0" revision commit))
22412 (source
22413 (origin
22414 (method git-fetch)
22415 (uri (git-reference
22416 (url "https://github.com/EricCrosson/unkillable-scratch.git")
22417 (commit commit)))
22418 (file-name (git-file-name name version))
22419 (sha256
22420 (base32 "13wjbcxr3km4s96yhpavgs5acs5pvqv3ih1p84diqb3x3i6wd4pa"))))
22421 (build-system emacs-build-system)
22422 (home-page "https://github.com/EricCrosson/unkillable-scratch")
22423 (synopsis "Prevents the *scratch* buffer from being killed")
22424 (description "@code{unkillable-scratch} helps prevent killing buffers
22425 matching a given regexp.")
22426 (license license:gpl2+))))
22427
22428 (define-public emacs-switch-buffer-functions
22429 (package
22430 (name "emacs-switch-buffer-functions")
22431 (version "0.0.1")
22432 (source
22433 (origin
22434 (method git-fetch)
22435 (uri (git-reference
22436 (url "https://github.com/10sr/switch-buffer-functions-el.git")
22437 (commit (string-append "v" version))))
22438 (file-name (git-file-name name version))
22439 (sha256
22440 (base32 "0pq53b8wrjbrxd5hnrcdi0z7mffp4bax55hn90k9ca3j76lhbn1k"))))
22441 (build-system emacs-build-system)
22442 (home-page "https://github.com/10sr/switch-buffer-functions-el")
22443 (synopsis "Hooks run when switching current buffer")
22444 (description "This package provides a hook variable
22445 @code{switch-buffer-functions}. The hooks will be run when the current buffer
22446 is changed after an interactive command, i.e., when @code{post-command-hook}
22447 hooks are run. The hooked functions will be called with both the previous and
22448 the current buffer.")
22449 (license license:unlicense)))
22450
22451 (define-public emacs-erc-scrolltoplace
22452 (package
22453 (name "emacs-erc-scrolltoplace")
22454 (version "0.1.0")
22455 (source
22456 (origin
22457 (method git-fetch)
22458 (uri (git-reference
22459 (url "https://gitlab.com/jgkamat/erc-scrolltoplace.git")
22460 (commit version)))
22461 (file-name (git-file-name name version))
22462 (sha256
22463 (base32 "11zpqwh1mlfifbgnvhc63bvnhg340jgxssm3m43hr1sxsyb52lh6"))))
22464 (build-system emacs-build-system)
22465 (propagated-inputs
22466 `(("emacs-switch-buffer-functions" ,emacs-switch-buffer-functions)))
22467 (home-page "https://gitlab.com/jgkamat/erc-scrolltoplace")
22468 (synopsis "ERC module to replace scrolltobottom while using keep-place")
22469 (description "@code{erc-scrolltoplace} is an ERC module to try
22470 to emulate @code{scrolltobottom} while @code{keep-place} is enabled.")
22471 (license license:gpl3+)))
22472
22473 (define-public emacs-dmenu
22474 ;; Use the latest commit, as there are no tagged releases.
22475 (let ((commit "e8cc9b27c79d3ecc252267c082ab8e9c82eab264")
22476 (revision "0"))
22477 (package
22478 (name "emacs-dmenu")
22479 (version (git-version "0.1" revision commit))
22480 (source
22481 (origin
22482 (method git-fetch)
22483 (uri (git-reference
22484 (url "https://github.com/lujun9972/el-dmenu.git")
22485 (commit commit)))
22486 (file-name (git-file-name name version))
22487 (sha256
22488 (base32 "098ncygms1r33zhjlq4fj2p4jc91v5whqrm3fazzdk7sd6dilf25"))))
22489 (build-system emacs-build-system)
22490 (home-page "https://github.com/lujun9972/el-dmenu")
22491 (synopsis "Simulate the @command{dmenu} command line program")
22492 (description "This package provides a @command{dmenu} command for
22493 launching other commands/applications from within Emacs, similar to the
22494 @command{dmenu} program. This is especially useful when using EXWM.")
22495 (license license:gpl3+))))
22496
22497 (define-public emacs-no-littering
22498 (package
22499 (name "emacs-no-littering")
22500 (version "1.0.3")
22501 (source
22502 (origin
22503 (method git-fetch)
22504 (uri (git-reference
22505 (url "https://github.com/emacscollective/no-littering.git")
22506 (commit (string-append "v" version))))
22507 (file-name (git-file-name name version))
22508 (sha256
22509 (base32 "17is06l0w6glppabv2kaclrnqi3dqb6p6alpslpg7lrjd8vd45ir"))))
22510 (build-system emacs-build-system)
22511 (home-page "https://github.com/emacscollective/no-littering")
22512 (synopsis "Help keep ~/.emacs.d/ clean")
22513 (description "The default paths used to store configuration files and
22514 persistent data are not consistent across Emacs packages, be them built-in or
22515 third-party ones. @code{no-littering} sets out to help clean
22516 @file{~/.emacs.d/} by putting configuration files and persistent data files in
22517 two user-defined directories, as well as using more descriptive names for
22518 files and subdirectories when appropriate.")
22519 (license license:gpl3+)))
22520
22521 (define-public emacs-message-x
22522 ;; Use the latest commit, as there are no tagged releases.
22523 (let ((commit "5524de7bbfdd8749c110f48de5afb024d9f83133")
22524 (revision "0"))
22525 (package
22526 (name "emacs-message-x")
22527 (version (git-version "1.23" revision commit))
22528 (source
22529 (origin
22530 (method git-fetch)
22531 (uri (git-reference
22532 (url "https://github.com/emacsmirror/message-x.git")
22533 (commit commit)))
22534 (file-name (git-file-name name version))
22535 (sha256
22536 (base32 "0qy1xf11j357lsnbb829hnbg7fq1cii4cx54fwf0wgjh1bv2abvj"))))
22537 (build-system emacs-build-system)
22538 (home-page "https://www.emacswiki.org/emacs/message-x.el")
22539 (synopsis "Customizable completion in message headers")
22540 (description "@code{message-x} assigns a context-sensitive function to
22541 the TAB key in Message mode. When on a header line, it performs completion
22542 based on which header we are in (for example, newsgroup name completion makes
22543 sense on the @samp{Newsgroups} header, whereas mail alias expansion makes
22544 sense in the @samp{To} and @samp{Cc} headers). When in the message body, this
22545 executes a different function (default: @code{indent-relative}).")
22546 (license license:gpl2+))))
22547
22548 (define-public emacs-gnus-harvest
22549 (let ((commit "feda071a87b799bd5d23cacde3ee71f0b166e75d")
22550 (revision "0"))
22551 (package
22552 (name "emacs-gnus-harvest")
22553 (version (git-version "1.0" revision commit))
22554 (source
22555 (origin
22556 (method git-fetch)
22557 (uri (git-reference
22558 (url "https://github.com/jwiegley/gnus-harvest.git")
22559 (commit commit)))
22560 (file-name (git-file-name name version))
22561 (sha256
22562 (base32 "08zb7vc3v3wdxkzgi902vlc5ybfvm8fxrvm5drnwfsjj9873pbcb"))))
22563 (build-system emacs-build-system)
22564 (inputs
22565 `(("sqlite" ,sqlite)))
22566 (arguments
22567 `(#:phases
22568 (modify-phases %standard-phases
22569 (add-before 'build 'patch-exec-paths
22570 (lambda* (#:key inputs #:allow-other-keys)
22571 (let ((sqlite (assoc-ref inputs "sqlite"))
22572 (file "gnus-harvest.el"))
22573 (make-file-writable file)
22574 (emacs-substitute-variables file
22575 ("gnus-harvest-sqlite-program"
22576 (string-append sqlite "/bin/sqlite3"))))
22577 #t)))))
22578 (home-page "https://github.com/jwiegley/gnus-harvest")
22579 (synopsis
22580 "Harvest email addresses from read/written Gnus articles")
22581 (description "@code{gnus-harvest} notices email address in every message
22582 or post you read or write, and collects them in a SQLite database, which can
22583 be easily and quickly queried to determine the completion list. It optionally
22584 uses BBDB and Message-X.")
22585 (license license:gpl3+))))
22586
22587 (define-public emacs-auto-dictionary-mode
22588 (package
22589 (name "emacs-auto-dictionary-mode")
22590 (version "1.1")
22591 (source
22592 (origin
22593 (method git-fetch)
22594 (uri (git-reference
22595 (url "https://github.com/nschum/auto-dictionary-mode")
22596 (commit version)))
22597 (file-name (git-file-name name version))
22598 (sha256
22599 (base32 "191294k92qp8gmfypf0q8j8qrym96aqikzvyb9p03wqvbr3r1dsk"))))
22600 (build-system emacs-build-system)
22601 (home-page "http://nschum.de/src/emacs/auto-dictionary/")
22602 (synopsis "Automatic dictionary switcher for Emacs spell checking")
22603 (description "@code{auto-dictionary} is a minor mode that hooks into
22604 Flyspell's on-the-fly spell checking and extends these checks to also detect
22605 language. Auto-dictionary then sets @code{ispell-dictionary} to use the
22606 detected language.")
22607 (license license:gpl2+)))
22608
22609 (define-public emacs-persist
22610 (package
22611 (name "emacs-persist")
22612 (version "0.4")
22613 (source
22614 (origin
22615 (method url-fetch)
22616 (uri (string-append "https://elpa.gnu.org/packages/"
22617 "persist-" version ".tar"))
22618 (sha256
22619 (base32 "0gpxy41qawzss2526j9a7lys60vqma1lvamn4bfabwza7gfhac0q"))))
22620 (build-system emacs-build-system)
22621 (home-page "http://elpa.gnu.org/packages/persist.html")
22622 (synopsis "Persist variables between Emacs sessions")
22623 (description
22624 "This package provides variables which persist across sessions.
22625 Values are stored in a directory in @code{user-emacs-directory}, using
22626 one file per value. This makes it easy to delete or remove unused
22627 variables.")
22628 (license license:gpl3+)))
22629
22630 (define-public emacs-company-emoji
22631 (package
22632 (name "emacs-company-emoji")
22633 (version "2.5.2")
22634 (source
22635 (origin
22636 (method git-fetch)
22637 (uri (git-reference
22638 (url "https://github.com/dunn/company-emoji/")
22639 (commit version)))
22640 (file-name (git-file-name name version))
22641 (sha256
22642 (base32 "0r9zcbm3nb3zw5cwrkl098v5b49jbga5404bj7j55g6k4rwkjar2"))))
22643 (build-system emacs-build-system)
22644 (propagated-inputs
22645 `(("emacs-company" ,emacs-company)))
22646 (home-page "https://github.com/dunn/company-emoji/")
22647 (synopsis "Company completion back-end for emoji")
22648 (description
22649 "This library is a Company back-end providing auto-completion for
22650 emoji.")
22651 (license license:gpl3+)))
22652
22653 (define-public emacs-exiftool
22654 (package
22655 (name "emacs-exiftool")
22656 (version "0.3.2")
22657 (source
22658 (origin
22659 (method git-fetch)
22660 (uri (git-reference
22661 (url "https://git.systemreboot.net/exiftool.el/")
22662 (commit (string-append "v" version))))
22663 (file-name (git-file-name name version))
22664 (sha256
22665 (base32
22666 "0bv58is66cz21yhc0qqkp1z4nk13zfi2l7i6pjbhyi0g1n88qqyv"))))
22667 (build-system emacs-build-system)
22668 (arguments
22669 `(#:tests? #t
22670 #:test-command '("make" "-C" "tests")
22671 #:phases
22672 (modify-phases %standard-phases
22673 (add-after 'unpack 'configure
22674 (lambda* (#:key inputs #:allow-other-keys)
22675 (make-file-writable "exiftool.el")
22676 (emacs-substitute-variables "exiftool.el"
22677 ("exiftool-executable"
22678 (string-append (assoc-ref inputs "perl-image-exiftool")
22679 "/bin/exiftool")))
22680 #t)))))
22681 (inputs
22682 `(("perl-image-exiftool" ,perl-image-exiftool)))
22683 (home-page "https://git.systemreboot.net/exiftool.el/about/")
22684 (synopsis "Elisp wrapper around ExifTool")
22685 (description "@code{emacs-exiftool} is an Elisp wrapper around ExifTool.
22686 ExifTool supports reading and writing metadata in various formats including
22687 EXIF, XMP and IPTC.")
22688 (license license:gpl3+)))
22689
22690 (define-public emacs-password-generator
22691 (package
22692 (name "emacs-password-generator")
22693 (version "1.01")
22694 (home-page "https://github.com/zargener/emacs-password-genarator")
22695 (source
22696 (origin
22697 (method git-fetch)
22698 (uri (git-reference
22699 (url home-page)
22700 (commit "904cdb591a04305ba882ce19e1d117f5fa60f7d3")))
22701 (file-name (git-file-name name version))
22702 (sha256
22703 (base32
22704 "1qgvn79qz1h8ykm5i1qv2fja4v2y0g2i0n5sf7byhnqhqlwn63nv"))))
22705 (build-system emacs-build-system)
22706 (synopsis "Generate passwords inside Emacs")
22707 (description "@code{emacs-password-generator} provides simple functions to
22708 generate random passwords and insert them into the current buffer. It also
22709 supports generation of phonetic and numeric passwords.")
22710 (license license:artistic2.0)))
22711
22712 (define-public emacs-csv
22713 (package
22714 (name "emacs-csv")
22715 (version "2.1")
22716 (home-page "https://gitlab.com/u11/csv.el")
22717 (source
22718 (origin
22719 (method git-fetch)
22720 (uri (git-reference
22721 (url home-page)
22722 (commit (string-append "V" version))))
22723 (file-name (git-file-name name version))
22724 (sha256
22725 (base32
22726 "1vmazjrfcsa9aa9aw8bq5sazdhqvhxyj837dyw5lmh8gk7z0xdaa"))))
22727 (build-system emacs-build-system)
22728 (synopsis "Elisp functions for reading and parsing CSV files")
22729 (description
22730 "@code{csv.el} provides functions for reading and parsing @acronym{CSV,
22731 Comma-Separated Values} files. It follows the format as defined in RFC 4180
22732 @emph{Common Format and MIME Type for CSV
22733 Files} (@url{http://tools.ietf.org/html/rfc4180}).")
22734 (license license:gpl3+)))
22735
22736 (define-public emacs-org-journal
22737 (package
22738 (name "emacs-org-journal")
22739 (version "2.0.0")
22740 (source
22741 (origin
22742 (method git-fetch)
22743 (uri (git-reference
22744 (url "https://github.com/bastibe/org-journal.git")
22745 (commit version)))
22746 (file-name (git-file-name name version))
22747 (sha256
22748 (base32 "18dqd0jy2x530lk0h4fcn9cld9qh4w7b3vxa60fpiia628vsv1dg"))))
22749 (build-system emacs-build-system)
22750 (home-page "https://github.com/bastibe/org-journal")
22751 (synopsis "Simple Org mode journaling mode")
22752 (description
22753 "Org Journal is a set of functions to maintain a simple personal diary /
22754 journal using in Emacs, adapted from
22755 @url{https://www.emacswiki.org/emacs/PersonalDiary}. Convenient bindings
22756 allow the creation of journal records in the current daily, weekly, monthly or
22757 yearly file and search within all records or specified time intervals. All
22758 records can be browsed and searched from the Emacs Calendar for convenience.
22759 All entries in a specified TODO state will be carried over to the next day.")
22760 (license license:bsd-3)))
22761
22762 (define-public emacs-org-static-blog
22763 (package
22764 (name "emacs-org-static-blog")
22765 (version "1.3.0")
22766 (source
22767 (origin
22768 (method git-fetch)
22769 (uri (git-reference
22770 (url "https://github.com/bastibe/org-static-blog")
22771 (commit version)))
22772 (file-name (git-file-name name version))
22773 (sha256
22774 (base32 "15iy3z8rglaqbx1fz14inh18ksgjsmq30b8hyv3lgjvcc9ssaiw0"))))
22775 (build-system emacs-build-system)
22776 (home-page "https://github.com/bastibe/org-static-blog")
22777 (synopsis
22778 "Simple Org mode based static blog generator")
22779 (description
22780 "@code{emacs-org-static-blog} is one more static blog generator, it
22781 focuses on being simple. All files are simple Org files in a directory. The
22782 only requirement is that every Org file must have a @samp{title} and
22783 a @samp{date} keywords, and optionally, a @samp{filetags} keyword.")
22784 (license license:bsd-3)))
22785
22786 (define-public emacs-ddskk
22787 ;; XXX: Upstream adds code names to their release tags, so version and code
22788 ;; name below need to be updated together.
22789 (let ((version "16.3")
22790 (code-name "Kutomatsunai"))
22791 (package
22792 (name "emacs-ddskk")
22793 (version version)
22794 (source
22795 (origin
22796 (method git-fetch)
22797 (uri (git-reference
22798 (url "https://github.com/skk-dev/ddskk")
22799 (commit (string-append "ddskk-" version "_" code-name))))
22800 (file-name (git-file-name name version))
22801 (sha256
22802 (base32 "0ln4x8f35z5y3kf9m718g223bn3lzcmw40jfjg2j5yi24ydf1wm9"))))
22803 (build-system gnu-build-system)
22804 (arguments
22805 `(#:modules ((guix build gnu-build-system)
22806 (guix build utils)
22807 (guix build emacs-utils))
22808 #:imported-modules (,@%gnu-build-system-modules
22809 (guix build emacs-utils))
22810 #:test-target "test"
22811 #:phases
22812 (modify-phases %standard-phases
22813 (replace 'configure
22814 (lambda* (#:key outputs #:allow-other-keys)
22815 (make-file-writable "SKK-MK")
22816 (emacs-substitute-variables "SKK-MK"
22817 ("PREFIX" (assoc-ref outputs "out"))
22818 ("LISPDIR" '(expand-file-name "/share/emacs/site-lisp" PREFIX))
22819 ("SKK_PREFIX" "")
22820 ("SKK_INFODIR" '(expand-file-name "info" PREFIX)))
22821 (for-each make-file-writable (find-files "./doc"))
22822 #t)))))
22823 (native-inputs
22824 `(("emacs-minimal" ,emacs-minimal)))
22825 (home-page "https://github.com/skk-dev/ddskk")
22826 (synopsis "Simple Kana to Kanji conversion program")
22827 (description
22828 "Daredevil SKK is a version of @acronym{SKK, Simple Kana to Kanji
22829 conversion program}, a Japanese input method on Emacs.")
22830 (license license:gpl2+))))
22831
22832 (define-public emacs-objed
22833 (package
22834 (name "emacs-objed")
22835 (version "0.8.3")
22836 (source
22837 (origin
22838 (method url-fetch)
22839 (uri (string-append
22840 "https://elpa.gnu.org/packages/objed-" version ".tar"))
22841 (sha256
22842 (base32
22843 "1s38d6bvggdk5p45ww1jb4gxifzgjwgw1m6ar920nlg0j4fgbcvr"))))
22844 (build-system emacs-build-system)
22845 (home-page "https://github.com/clemera/objed")
22846 (synopsis "Navigate and edit text objects")
22847 (description
22848 "@code{emacs-objed} allows navigating and editing text objects. It
22849 enables modal editing and composition of commands, too. It combines ideas of
22850 other Editors like Vim or Kakoune and tries to align them with regular Emacs
22851 conventions.")
22852 (license license:gpl3+)))
22853
22854 (define-public emacs-haskell-snippets
22855 ;; The commit below is 5 commits ahead of release, and includes a build fix.
22856 (let ((commit "07b0f460b946fd1be26c29652cb0468b47782f3a"))
22857 (package
22858 (name "emacs-haskell-snippets")
22859 (version (git-version "0.1.0" "0" commit))
22860 (source
22861 (origin
22862 (method git-fetch)
22863 (uri
22864 (git-reference
22865 (url "https://github.com/haskell/haskell-snippets")
22866 (commit commit)))
22867 (file-name (git-file-name name version))
22868 (sha256
22869 (base32 "0a7y3awi9hcyahggf0ghsdwvsmrhr9yq634wy9lkqjzrm2hqj0ci"))))
22870 (build-system emacs-build-system)
22871 (arguments
22872 `(#:phases
22873 (modify-phases %standard-phases
22874 (add-after 'install 'install-snippets
22875 (lambda* (#:key outputs #:allow-other-keys)
22876 (let* ((out (assoc-ref outputs "out"))
22877 (snippets
22878 (string-append
22879 out "/share/emacs/site-lisp/snippets/haskell-mode")))
22880 (mkdir-p snippets)
22881 (copy-recursively "snippets/haskell-mode" snippets)
22882 #t))))))
22883 (propagated-inputs
22884 `(("emacs-yasnippet" ,emacs-yasnippet)))
22885 (home-page "https://github.com/haskell/haskell-snippets")
22886 (synopsis "Official collection of YASnippet Haskell snippets for Emacs")
22887 (description "Haskell-Snippets is a collection of YASnippet Haskell
22888 snippets for Emacs.")
22889 (license license:expat))))
22890
22891 (define-public emacs-org-roam
22892 (package
22893 (name "emacs-org-roam")
22894 (version "1.0.0")
22895 (source
22896 (origin
22897 (method git-fetch)
22898 (uri (git-reference
22899 (url "https://github.com/jethrokuan/org-roam.git")
22900 (commit (string-append "v" version))))
22901 (file-name (git-file-name name version))
22902 (sha256
22903 (base32 "08pfa63k194dpk0y2gfa0nzn5lig81q0l9axkq5j4ibj6ifaap4a"))))
22904 (build-system emacs-build-system)
22905 (propagated-inputs
22906 `(("emacs-company" ,emacs-company)
22907 ("emacs-dash" ,emacs-dash)
22908 ("emacs-emacsql-sqlite" ,emacs-emacsql)
22909 ("emacs-f" ,emacs-f)
22910 ("emacs-org-ref" ,emacs-org-ref)
22911 ("emacs-s" ,emacs-s)))
22912 (home-page "https://github.com/jethrokuan/org-roam/")
22913 (synopsis "Non-hierarchical note-taking with Org mode")
22914 (description "Emacs Org Roam is a solution for taking non-hierarchical
22915 notes with Org mode. Notes are captured without hierarchy and are connected
22916 by tags. Notes can be found and created quickly. Org Roam should also work
22917 as a plug-and-play solution for anyone already using Org mode for their
22918 personal wiki.")
22919 (license license:gpl3+)))
22920
22921 (define-public emacs-uml-mode
22922 ;; Package has no release. Version is extracted from "Version:" keyword in
22923 ;; main file.
22924 (let ((commit "4c37ac1c4424b2313cd8f16ba48a98a4cc214200")
22925 (revision "1"))
22926 (package
22927 (name "emacs-uml-mode")
22928 (version (git-version "0.0.4" revision commit))
22929 (source
22930 (origin
22931 (method git-fetch)
22932 (uri (git-reference
22933 (url "https://github.com/ianxm/emacs-uml.git")
22934 (commit commit)))
22935 (file-name (git-file-name name version))
22936 (sha256
22937 (base32 "145i4srnfvd1vyibri2a1l6p9mbjvkkwlrpi41134pbarqffcnka"))))
22938 (build-system emacs-build-system)
22939 (home-page "https://github.com/ianxm/emacs-uml")
22940 (synopsis "Minor mode for editing ASCII UML sequence diagrams")
22941 (description "Emacs UML mode is a minor mode that makes it easy to build
22942 ASCII UML sequence diagrams in Emacs, which can be embedded in source code,
22943 comments or emails.")
22944 (license license:gpl3+))))
22945
22946 (define-public emacs-trashed
22947 (package
22948 (name "emacs-trashed")
22949 (version "1.9.0")
22950 (source
22951 (origin
22952 (method git-fetch)
22953 (uri (git-reference
22954 (url "https://github.com/shingo256/trashed/")
22955 (commit version)))
22956 (file-name (git-file-name name version))
22957 (sha256
22958 (base32 "13grdi12iwlw4fiphdfmvclfpbr6ajlgfbfyi7v41z8k3rxz4ypz"))))
22959 (build-system emacs-build-system)
22960 (home-page "https://github.com/shingo256/trashed/")
22961 (synopsis "View and edit system trash can in Emacs")
22962 (description "Open, view, browse, restore or permanently delete trashed
22963 files or directories in trash can with Dired-like look and feel. The trash
22964 can has to be compliant with freedesktop.org. In Emacs, you can trash files by
22965 deleting them with @code{(setq delete-by-moving-to-trash t)}. This package
22966 provides a simple but convenient user interface to manage those trashed
22967 files.")
22968 (license license:gpl3+)))
22969
22970 (define-public emacs-plantuml-mode
22971 (package
22972 (name "emacs-plantuml-mode")
22973 (version "1.4.1")
22974 (source
22975 (origin
22976 (method git-fetch)
22977 (uri (git-reference
22978 (url "https://github.com/skuro/plantuml-mode")
22979 (commit (string-append "v" version))))
22980 (file-name (git-file-name name version))
22981 (sha256
22982 (base32 "0yp41d2dmf3sx7qnl5x0zdjcr9y71b2wwc9m0q31v22xqn938ipc"))))
22983 (arguments
22984 '(#:phases
22985 (modify-phases %standard-phases
22986 (add-after 'unpack 'use-local-plantuml
22987 (lambda* (#:key inputs #:allow-other-keys)
22988 (let ((plantuml (assoc-ref inputs "plantuml"))
22989 (file "plantuml-mode.el"))
22990 (chmod file #o644)
22991 (emacs-substitute-variables file
22992 ("plantuml-jar-path"
22993 (string-append plantuml "/share/java/plantuml.jar"))
22994 ("plantuml-executable-path"
22995 (string-append plantuml "/bin/plantuml"))
22996 ("plantuml-server-url" 'nil)
22997 ("plantuml-default-exec-mode" ''executable))
22998 (emacs-batch-edit-file file
22999 `(progn (progn
23000 (goto-char (point-min))
23001 (re-search-forward "(defun plantuml-download-jar")
23002 (beginning-of-line)
23003 (kill-sexp))
23004 (basic-save-buffer)))
23005 #t))))))
23006 (inputs
23007 `(("plantuml" ,plantuml)))
23008 (propagated-inputs
23009 `(("emacs-dash" ,emacs-dash)))
23010 (build-system emacs-build-system)
23011 (home-page "https://github.com/skuro/plantuml-mode")
23012 (synopsis "Major mode for editing PlantUML sources")
23013 (description "This package provides a major mode for editing PlantUML
23014 sources. It features syntax highlighting, autocompletion, preview of buffer
23015 or region and use of locally installed binaries.")
23016 (license license:gpl3+)))