1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2014 Taylan Ulrich Bayirli/Kammer <taylanbayirli@gmail.com>
3 ;;; Copyright © 2013-2022 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, 2021, 2022 Ricardo Wurmus <rekado@elephly.net>
8 ;;; Copyright © 2016, 2017, 2018, 2019 Chris Marusich <cmmarusich@gmail.com>
9 ;;; Copyright © 2015, 2016, 2018, 2020 Christine Lemmer-Webber <cwebber@dustycloud.org>
10 ;;; Copyright © 2016 Adriano Peluso <catonano@gmail.com>
11 ;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 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-2023 Nicolas Goaziou <mail@nicolasgoaziou.fr>
18 ;;; Copyright © 2016, 2017, 2018 Alex Vong <alexvong1995@gmail.com>
19 ;;; Copyright © 2016-2022 Arun Isaac <arunisaac@systemreboot.net>
20 ;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
21 ;;; Copyright © 2017, 2018, 2019, 2020, 2022 Mathieu Othacehe <m.othacehe@gmail.com>
22 ;;; Copyright © 2017, 2018, 2019, 2020, 2021, 2022 Clément Lassieur <clement@lassieur.org>
23 ;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
24 ;;; Copyright © 2017, 2018, 2022 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, 2020 Jan (janneke) 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–2021 Tobias Geerinckx-Rice <me@tobias.gr>
33 ;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org>
34 ;;; Copyright © 2017, 2018, 2019, 2020, 2021, 2022 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, 2021 Pierre Neidhardt <mail@ambrevar.xyz>
38 ;;; Copyright © 2018, 2019, 2020 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, 2020, 2021 Pierre Langlois <pierre.langlois@gmx.com>
44 ;;; Copyright © 2018, 2019, 2020, 2021 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, 2021 Joseph LaFreniere <joseph@lafreniere.xyz>
50 ;;; Copyright © 2019 Todor Kondić <tk.code@protonmail.com>15669
51 ;;; Copyright © 2019 Amar Singh <nly@disroot.org>
52 ;;; Copyright © 2019, 2022 Baptiste Strazzulla <bstrazzull@hotmail.fr>
53 ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
54 ;;; Copyright © 2019 Jens Mølgaard <jens@zete.tk>
55 ;;; Copyright © 2019, 2020 Amin Bandali <bandali@gnu.org>
56 ;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
57 ;;; Copyright © 2019 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
58 ;;; Copyright © 2019 Stephen Webber <montokapro@gmail.com>
59 ;;; Copyright © 2019, 2021 Liliana Marie Prikler <liliana.prikler@gmail.com>
60 ;;; Copyright © 2019 David Wilson <david@daviwil.com>
61 ;;; Copyright © 2020 Paul Garlick <pgarlick@tourbillion-technology.com>
62 ;;; Copyright © 2020 Robert Smith <robertsmith@posteo.net>
63 ;;; Copyright © 2020 Evan Straw <evan.straw99@gmail.com>
64 ;;; Copyright © 2020, 2021, 2022 Masaya Tojo <masaya@tojo.tokyo>
65 ;;; Copyright © 2020, 2021 Martin Becze <mjbecze@riseup.net>
66 ;;; Copyright © 2020, 2021, 2022 Michael Rohleder <mike@rohleder.de>
67 ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
68 ;;; Copyright © 2020 6033fe7de85d <6033fe7de85d@airmail.cc>
69 ;;; Copyright © 2020 John Soo <jsoo1@asu.edu>
70 ;;; Copyright © 2020 Jérémy Korwin-Zmijowski <jeremy@korwin-zmijowski.fr>
71 ;;; Copyright © 2020 Alberto Eleuterio Flores Guerrero <barbanegra+guix@posteo.mx>
72 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
73 ;;; Copyright © 2020, 2022 pinoaffe <pinoaffe@gmail.com>
74 ;;; Copyright © 2020, 2021, 2022 Vinicius Monego <monego@posteo.net>
75 ;;; Copyright © 2020 Ryan Desfosses <rdes@protonmail.com>
76 ;;; Copyright © 2020 Marcin Karpezo <sirmacik@wioo.waw.pl>
77 ;;; Copyright © 2020, 2022 Fredrik Salomonsson <plattfot@posteo.net>
78 ;;; Copyright © 2020 Eric Bavier <bavier@posteo.net>
79 ;;; Copyright © 2020, 2021 Morgan Smith <Morgan.J.Smith@outlook.com>
80 ;;; Copyright © 2020 Peng Mei Yu <i@pengmeiyu.com>
81 ;;; Copyright © 2020, 2021, 2022 Niklas Eklund <niklas.eklund@posteo.net>
82 ;;; Copyright © 2020 Marco Grassi <marco.au.grassi98@protonmail.com>
83 ;;; Copyright © 2020 Tomás Ortín Fernández <tomasortin@mailbox.org>
84 ;;; Copyright © 2020-2022 Zhu Zihao <all_but_last@163.com>
85 ;;; Copyright © 2020 Adam Kandur <rndd@tuta.io>
86 ;;; Copyright © 2020 Tim Howes <timhowes@lavabit.com>
87 ;;; Copyright © 2020 Noah Landis <noahlandis@posteo.net>
88 ;;; Copyright © 2020, 2021 Nicolò Balzarotti <nicolo@nixo.xyz>
89 ;;; Copyright © 2020, 2022 André A. Gomes <andremegafone@gmail.com>
90 ;;; Copyright © 2020 Jonathan Rostran <rostranjj@gmail.com>
91 ;;; Copyright © 2020, 2021 Noah Evans <noah@nevans.me>
92 ;;; Copyright © 2020 Brit Butler <brit@kingcons.io>
93 ;;; Copyright © 2021, 2022 Aleksandr Vityazev <avityazev@posteo.org>
94 ;;; Copyright © 2021 Yurii Kholodkov <urist.mckorobochka@gmail.com>
95 ;;; Copyright © 2021 Alexey Abramov <levenson@mmer.org>
96 ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
97 ;;; Copyright © 2021, 2022 Stefan Reichör <stefan@xsteve.at>
98 ;;; Copyright © 2021, 2022 Simon Tournier <zimon.toutoune@gmail.com>
99 ;;; Copyright © 2021 Eugene Klimov <lipklim@mailbox.org>
100 ;;; Copyright © 2021 Zheng Junjie <873216071@qq.com>
101 ;;; Copyright © 2021 David Dashyan <mail@davie.li>
102 ;;; Copyright © 2021 Dhruvin Gandhi <contact@dhruvin.dev>
103 ;;; Copyright © 2021 Matthew James Kraai <kraai@ftbfs.org>
104 ;;; Copyright © 2021 Noisytoot <noisytoot@disroot.org>
105 ;;; Copyright © 2021 Simon South <simon@simonsouth.net>
106 ;;; Copyright © 2021 la snesne <lasnesne@lagunposprasihopre.org>
107 ;;; Copyright © 2021 Brian Kubisiak <brian@kubisiak.com>
108 ;;; Copyright © 2021, 2022 Taiju HIGASHI <higashi@taiju.info>
109 ;;; Copyright © 2022 Brandon Lucas <br@ndon.dk>
110 ;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com>
111 ;;; Copyright © 2022 jgart <jgart@dismail.de>
112 ;;; Copyright © 2022 Dominic Martinez <dom@dominicm.dev>
113 ;;; Copyright © 2022 Peter Polidoro <peter@polidoro.io>
114 ;;; Copyright © 2022 Luis Felipe López Acevedo <luis.felipe.la@protonmail.com>
115 ;;; Copyright © 2022 Thomas Albers Raviola <thomas@thomaslabs.org>
116 ;;; Copyright © 2022 Haider Mirza <haider@haider.gq>
117 ;;; Copyright © 2022 Jose G Perez Taveras <josegpt27@gmail.com>
118 ;;; Copyright © 2022 Hilton Chain <hako@ultrarare.space>
119 ;;; Copyright © 2022 Nicolas Graves <ngraves@ngraves.fr>
120 ;;; Copyright © 2022 Thiago Jung Bauermann <bauermann@kolabnow.com>
121 ;;; Copyright © 2022 Joeke de Graaf <joeke@posteo.net>
123 ;;; This file is part of GNU Guix.
125 ;;; GNU Guix is free software; you can redistribute it and/or modify it
126 ;;; under the terms of the GNU General Public License as published by
127 ;;; the Free Software Foundation; either version 3 of the License, or (at
128 ;;; your option) any later version.
130 ;;; GNU Guix is distributed in the hope that it will be useful, but
131 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
132 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
133 ;;; GNU General Public License for more details.
135 ;;; You should have received a copy of the GNU General Public License
136 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
138 (define-module (gnu packages emacs-xyz)
139 #:use-module ((guix licenses) #:prefix license:)
140 #:use-module (guix packages)
141 #:use-module (guix cvs-download)
142 #:use-module (guix download)
143 #:use-module (guix bzr-download)
144 #:use-module (guix gexp)
145 #:use-module (guix i18n)
146 #:use-module (guix git-download)
147 #:use-module (guix hg-download)
148 #:use-module (guix build-system gnu)
149 #:use-module (guix build-system cmake)
150 #:use-module (guix build-system copy)
151 #:use-module (guix build-system emacs)
152 #:use-module (guix build-system glib-or-gtk)
153 #:use-module (guix build-system perl)
154 #:use-module (guix build-system trivial)
155 #:use-module (gnu packages)
156 #:use-module (gnu packages admin)
157 #:use-module (gnu packages aspell)
158 #:use-module (gnu packages audio)
159 #:use-module (gnu packages bash)
160 #:use-module (gnu packages chez)
161 #:use-module (gnu packages cmake)
162 #:use-module (gnu packages code)
163 #:use-module (gnu packages cpp)
164 #:use-module (gnu packages curl)
165 #:use-module (gnu packages databases)
166 #:use-module (gnu packages dictionaries)
167 #:use-module (gnu packages djvu)
168 #:use-module (gnu packages ebook)
169 #:use-module (gnu packages emacs)
170 #:use-module (gnu packages fonts)
171 #:use-module (gnu packages freedesktop)
172 #:use-module (gnu packages games)
173 #:use-module (gnu packages gawk)
174 #:use-module (gnu packages golang)
175 #:use-module (gnu packages guile)
176 #:use-module (gnu packages gtk)
177 #:use-module (gnu packages gnome)
178 #:use-module (gnu packages graphviz)
179 #:use-module (gnu packages haskell-apps)
180 #:use-module (gnu packages ibus)
181 #:use-module (gnu packages java)
182 #:use-module (gnu packages ncurses)
183 #:use-module (gnu packages networking)
184 #:use-module (gnu packages python)
185 #:use-module (gnu packages python-xyz)
186 #:use-module (gnu packages telephony)
187 #:use-module (gnu packages terminals)
188 #:use-module (gnu packages tex)
189 #:use-module (gnu packages texinfo)
190 #:use-module (gnu packages tcl)
191 #:use-module (gnu packages tls)
192 #:use-module (gnu packages pkg-config)
193 #:use-module (gnu packages xorg)
194 #:use-module (gnu packages lesstif)
195 #:use-module (gnu packages llvm)
196 #:use-module (gnu packages image)
197 #:use-module (gnu packages linux)
198 #:use-module (gnu packages libevent)
199 #:use-module (gnu packages lisp)
200 #:use-module (gnu packages lisp-xyz)
201 #:use-module (gnu packages lsof)
202 #:use-module (gnu packages lua)
203 #:use-module (gnu packages music)
204 #:use-module (gnu packages version-control)
205 #:use-module (gnu packages imagemagick)
206 #:use-module (gnu packages w3m)
207 #:use-module (gnu packages web)
208 #:use-module (gnu packages wget)
209 #:use-module (gnu packages autotools)
210 #:use-module (gnu packages base)
211 #:use-module (gnu packages compression)
212 #:use-module (gnu packages node)
213 #:use-module (gnu packages xml)
214 #:use-module (gnu packages glib)
215 #:use-module (gnu packages acl)
216 #:use-module (gnu packages mail)
217 #:use-module (gnu packages messaging)
218 #:use-module (gnu packages package-management)
219 #:use-module (gnu packages perl)
220 #:use-module (gnu packages pdf)
221 #:use-module (gnu packages racket)
222 #:use-module (gnu packages ruby)
223 #:use-module (gnu packages rust-apps)
224 #:use-module (gnu packages scheme)
225 #:use-module (gnu packages serialization)
226 #:use-module (gnu packages speech)
227 #:use-module (gnu packages xiph)
228 #:use-module (gnu packages mp3)
229 #:use-module (gnu packages gettext)
230 #:use-module (gnu packages fribidi)
231 #:use-module (gnu packages gd)
232 #:use-module (gnu packages fontutils)
233 #:use-module (gnu packages password-utils)
234 #:use-module (gnu packages pulseaudio)
235 #:use-module (gnu packages sphinx)
236 #:use-module (gnu packages screen)
237 #:use-module (gnu packages xdisorg)
238 #:use-module (gnu packages shells)
239 #:use-module (gnu packages shellutils)
240 #:use-module (gnu packages sqlite)
241 #:use-module (gnu packages ghostscript)
242 #:use-module (gnu packages gnupg)
243 #:use-module (gnu packages video)
244 #:use-module (gnu packages haskell-xyz)
245 #:use-module (gnu packages wordnet)
246 #:use-module (gnu packages photo)
247 #:use-module (gnu packages uml)
248 #:use-module (gnu packages finance)
249 #:use-module (gnu packages ocaml)
250 #:use-module (gnu packages erlang)
251 #:use-module (gnu packages statistics)
252 #:use-module (gnu packages libcanberra)
253 #:use-module (guix utils)
254 #:use-module (srfi srfi-1)
255 #:use-module (ice-9 match))
261 (define-public emacs-geiser
263 (name "emacs-geiser")
269 (url "https://gitlab.com/emacs-geiser/geiser")
271 (file-name (git-file-name name version))
273 (base32 "01sif1pw3shhdzcg9vidc2j5cqmrgjh5kynicf5mh3kmlvvsg9k6"))))
274 (build-system emacs-build-system)
277 (modify-phases %standard-phases
278 ;; Move the source files to the top level, which is included in
279 ;; the EMACSLOADPATH.
280 (add-after 'unpack 'move-source-files
282 (let ((el-files (find-files "./elisp" ".*\\.el$")))
283 (for-each (lambda (f)
284 (rename-file f (basename f)))
286 (add-before 'install 'make-info
288 (with-directory-excursion "doc"
289 (invoke "makeinfo" "--no-split"
290 "-o" "geiser.info" "geiser.texi")))))))
293 (home-page "https://www.nongnu.org/geiser/")
294 (synopsis "Collection of Emacs modes for Scheme hacking")
296 "Geiser is a collection of Emacs major and minor modes that conspire with
297 one or more Scheme implementations to keep the Lisp Machine Spirit alive. The
298 continuously running Scheme interpreter takes the center of the stage in
299 Geiser. A bundle of Elisp shims orchestrates the dialog between the Scheme
300 implementation, Emacs and, ultimately, the schemer, giving them access to live
303 This package provides just the core of Geiser. To effectively use it with your
304 favourite Scheme implementation, you also need the corresponding geiser package,
305 e.g. emacs-geiser-guile for Guile.")
306 (license license:bsd-3)))
308 (define-public emacs-geiser-guile
310 (name "emacs-geiser-guile")
316 (url "https://gitlab.com/emacs-geiser/guile")
318 (file-name (git-file-name name version))
320 (base32 "0gp8xbfm7y2gabjyys8jylfy1pkkglqas32xxrbqxfh1hv0cfh2f"))))
321 (build-system emacs-build-system)
324 #:include #~(cons "^src/" %default-include)
326 #~(modify-phases %standard-phases
327 (add-after 'unpack 'patch-geiser-guile-binary
328 (lambda* (#:key inputs #:allow-other-keys)
329 (substitute* "geiser-guile.el"
332 (search-input-file inputs "bin/guile"))))))
333 (add-after 'make-autoloads 'patch-autoloads
335 (substitute* (string-append (elpa-directory #$output)
336 "/geiser-guile-autoloads.el")
337 ;; Activating implementations fails when Geiser is not yet
338 ;; loaded, so let's defer that until it is.
339 (("\\(geiser-activate-implementation .*\\)" all)
341 "(eval-after-load 'geiser-impl '" all ")"))))))))
342 (inputs (list guile-3.0-latest))
343 (propagated-inputs (list emacs-geiser))
344 (home-page "https://www.nongnu.org/geiser/")
345 (synopsis "Guile Scheme support for Geiser")
347 "This package adds support for the Guile Scheme implementation to Geiser,
348 a generic Scheme interaction mode for the GNU Emacs editor.")
349 (license license:bsd-3)))
351 (define-public emacs-ac-geiser
352 (let ((commit "93818c936ee7e2f1ba1b315578bde363a7d43d05")
355 (name "emacs-ac-geiser")
356 (version (git-version "0.1" revision commit))
360 (url "https://github.com/xiaohanyu/ac-geiser")
364 (base32 "00n2qa26yilaj837n1yp6lbqa4gf30nkkbvanl7m9ih7k48ssqmw"))
365 (file-name (git-file-name name version))))
366 (build-system emacs-build-system)
368 (list emacs-geiser emacs-auto-complete))
369 (synopsis "Auto-complete backend for geiser")
371 "This package provides an auto-complete source for Scheme projects
373 (license license:bsd-3)
374 (home-page "https://github.com/xiaohanyu/ac-geiser"))))
376 (define-public emacs-geiser-gauche
377 ;; The latest 0.14 release has an unbound variable (geiser-scheme-dir).
378 (let ((commit "96fa06aaeef18cc1b3b519e83dbb7be09eeb0d07")
381 (name "emacs-geiser-gauche")
382 (version (git-version "0.14" revision commit))
387 (url "https://gitlab.com/emacs-geiser/gauche.git")
389 (file-name (git-file-name name version))
391 (base32 "1ppracwfl1snq0ifdlyxpdlv7fbn3pbxm1hd1ihgqivii5nbya9r"))))
392 (build-system emacs-build-system)
395 #:include '(cons "^geiser-gauche\\.scm$" %default-include)
397 #~(modify-phases %standard-phases
398 (add-after 'unpack 'patch-geiser-gauche-binary
399 (lambda* (#:key inputs #:allow-other-keys)
400 (emacs-substitute-sexps "geiser-gauche.el"
401 ("geiser-custom--defcustom geiser-gauche-binary"
402 (search-input-file inputs "bin/gosh")))))
403 (add-after 'make-autoloads 'patch-autoloads
405 (substitute* (string-append (elpa-directory #$output)
406 "/geiser-gauche-autoloads.el")
407 ;; Activating implementations fails when Geiser is not yet
408 ;; loaded, so let's defer that until it is.
409 (("\\(geiser-activate-implementation .*\\)" all)
411 "(eval-after-load 'geiser-impl '" all ")"))
412 (("\\(geiser-implementation-extension .*\\)" all)
414 "(eval-after-load 'geiser-impl '" all ")"))))))))
415 (inputs (list gauche))
416 (propagated-inputs (list emacs-geiser))
417 (home-page "https://gitlab.com/emacs-geiser/gauche")
418 (synopsis "Gauche Scheme support for Geiser")
420 "This package adds support for the Gauche Scheme implementation to Geiser,
421 a generic Scheme interaction mode for the GNU Emacs editor.")
422 (license license:expat))))
424 (define-public emacs-geiser-racket
426 (name "emacs-geiser-racket")
432 (url "https://gitlab.com/emacs-geiser/racket")
434 (file-name (git-file-name name version))
436 (base32 "04gwd9qa0785zfr6m9a5443ilgvyz05l06cb1waicf83sgp8xl32"))))
437 (build-system emacs-build-system)
440 #:include #~(cons "^src/" %default-include)
442 #~(modify-phases %standard-phases
443 (add-after 'unpack 'patch-geiser-racket-binary
444 (lambda* (#:key inputs #:allow-other-keys)
445 (substitute* "geiser-racket.el"
446 (("\\(t \"racket\")")
448 (search-input-file inputs "bin/racket"))))))
449 (add-after 'make-autoloads 'patch-autoloads
451 (substitute* (string-append (elpa-directory #$output)
452 "/geiser-racket-autoloads.el")
453 ;; Activating implementations fails when Geiser is not yet
454 ;; loaded, so let's defer that until it is.
455 (("\\(geiser-activate-implementation .*\\)" all)
457 "(eval-after-load 'geiser-impl '" all ")"))
458 (("\\(geiser-implementation-extension .*\\)" all)
460 "(eval-after-load 'geiser-impl '" all ")"))))))))
461 (inputs (list racket))
462 (propagated-inputs (list emacs-geiser))
463 (home-page "https://www.nongnu.org/geiser/")
464 (synopsis "Racket support for Geiser")
466 "This package adds support for the Racket implementation to Geiser,
467 a generic Scheme interaction mode for the GNU Emacs editor.")
468 (license license:bsd-3)))
470 (define-public emacs-geiser-chez
472 (name "emacs-geiser-chez")
478 (url "https://gitlab.com/emacs-geiser/chez")
480 (file-name (git-file-name name version))
482 (base32 "03fc9ahb0pmznkcnxzgpni4clj1zgky6vaqkc94nf8b8swniwkm9"))))
483 (build-system emacs-build-system)
485 '(#:include (cons "^src/" %default-include)
487 (modify-phases %standard-phases
488 (add-after 'make-autoloads 'patch-autoloads
489 (lambda* (#:key outputs #:allow-other-keys)
490 (substitute* (string-append
491 (elpa-directory (assoc-ref outputs "out"))
492 "/geiser-chez-autoloads.el")
493 ;; Activating implementations fails when Geiser is not yet
494 ;; loaded, so let's defer that until it is.
495 ;; See <https://gitlab.com/emacs-geiser/chez/-/issues/7>.
496 (("\\(geiser-activate-implementation .*\\)" all)
498 "(eval-after-load 'geiser-impl '" all ")"))
499 (("\\(geiser-implementation-extension .*\\)" all)
501 "(eval-after-load 'geiser-impl '" all ")"))))))))
503 (list (chez-scheme-for-system)))
506 (home-page "https://nongnu.org/geiser/")
507 (synopsis "Support for Chez Scheme in Geiser")
509 "This package adds support for using Chez Scheme in Emacs with Geiser.")
510 (license license:bsd-3)))
512 (define-public emacs-vc-hgcmd
514 (name "emacs-vc-hgcmd")
520 (url "https://github.com/muffinmad/emacs-vc-hgcmd")
521 (commit (string-append "v" version))))
522 (file-name (git-file-name name version))
524 (base32 "1nlaicza4ds325827ks5gb7zn0nc536k2chq8jwbq34ybvxi93wj"))))
525 (build-system emacs-build-system)
526 (home-page "https://github.com/muffinmad/emacs-vc-hgcmd")
527 (synopsis "Version control (VC) backend for the Mercurial command server")
529 "This package provides an Emacs VC backend to work with Mercurial
530 repositories through the
531 @uref{https://www.mercurial-scm.org/wiki/CommandServer,Mercurial command
532 server}. The main advantage compared to @code{vc-hg} is speed.")
533 (license license:gpl3+)))
535 (define-public emacs-telephone-line
536 (let ((commit "6f3455a365912e8f0c45a2240ea79507dee45ade")
539 (name "emacs-telephone-line")
540 (version (git-version "0.5" revision commit))
546 (url "https://github.com/dbordak/telephone-line")
548 (file-name (git-file-name name version))
550 (base32 "1hnd6wnc52sc0ckriqnhaz64pyjk027y0dpcmh2zhpd27i8d4hmq"))))
551 (build-system emacs-build-system)
552 (home-page "https://github.com/dbordak/telephone-line")
553 (synopsis "Implementation of Powerline for Emacs")
555 "Telephone Line is a new implementation of Powerline for Emacs with
556 optional baked-in Evil support, antialiased separators, and an easy
557 configuration language which makes it trivial to write your own themes.")
558 (license license:gpl3+))))
560 (define-public emacs-inspector
561 (let ((commit "0e89d28558f57db4519f154bb72ce617a8c6265d")
564 (name "emacs-inspector")
565 (version (git-version "0.8" revision commit))
569 (url "https://github.com/mmontone/emacs-inspector")
573 (base32 "0n72sqn29b5sya686cicgp40mkk5x5821b7bw4zs6dcl82cyij5n"))
574 (file-name (git-file-name name version))))
575 (build-system emacs-build-system)
579 #:test-command #~(list "emacs" "-Q" "--batch"
581 "-l" "inspector-tests.el"
582 "-l" "tree-inspector-tests.el"
583 "-f" "ert-run-tests-batch-and-exit")
585 #~(modify-phases %standard-phases
586 (add-after 'unpack 'preserve-emacs-28-compatibility
587 ;; XXX: `cl-constantly' function is defined in "cl-lib" starting
588 ;; from Emacs 29+. For now, replace it with its definition.
590 (substitute* "tree-inspector.el"
591 (("cl-constantly") "lambda (_)"))))
592 (add-before 'check 'skip-failing-test
594 (substitute* "tree-inspector-tests.el"
595 (("\\(ert-deftest inspector-tests--inspect-struct-test.*" all)
596 (string-append all " (skip-unless nil)"))))))))
597 (native-inputs (list emacs-ert-runner))
598 (propagated-inputs (list emacs-treeview))
599 (home-page "https://github.com/mmontone/emacs-inspector")
600 (synopsis "Inspection tool for Emacs Lisp objects")
602 "This package provides an introspection tool similar to those found in
603 Common Lisp or Smalltalk, but for Emacs Lisp.")
604 (license license:gpl3+))))
606 (define-public emacs-terminal-here
608 (name "emacs-terminal-here")
614 (url "https://github.com/davidshepherd7/terminal-here")
616 (file-name (git-file-name name version))
618 (base32 "1iv1c2mbvhn00ha46c6f98j9syc71xhjpk8m5wa5p32sk4wcc9f4"))))
619 (build-system emacs-build-system)
620 (home-page "https://github.com/davidshepherd7/terminal-here")
621 (synopsis "Open external terminals from Emacs")
623 "This package provides commands to open external terminal emulators from
624 Emacs, whose initial working directories are determined in relation to the
626 (license license:gpl3+)))
628 (define-public emacs-treeview
629 (let ((commit "d9c10feddf3b959e7b33ce83103e1f0a61162723")
632 (name "emacs-treeview")
633 (version (git-version "1.1.1" revision commit))
637 (url "https://github.com/tilmanrassy/emacs-treeview")
641 (base32 "14s0b6zbapsvgyxki59lglwb3s8wjsjwkgj5r66af9nj2bgz5ms9"))
642 (file-name (git-file-name name version))))
643 (build-system emacs-build-system)
644 (home-page "https://github.com/tilmanrassy/emacs-treeview/")
645 (synopsis "Emacs Lisp framework for tree navigation")
647 "Abstract Emacs Lisp framework for tree navigation.")
648 (license license:gpl3+))))
650 (define-public emacs-hide-lines
652 (name "emacs-hide-lines")
653 (version "20210513.1636")
657 (url "https://github.com/vapniks/hide-lines.git")
658 (commit "f0828c15e50db5eddb905de783e7683b04d1eca3")))
661 "1pw0wp1pzy6snycvz12nj0q7jxxj07h3lqas184w44nhrira7qhj"))))
662 (build-system emacs-build-system)
663 (home-page "https://github.com/vapniks/hide-lines")
664 (synopsis "Commands for hiding lines based on a regexp")
666 "This package provides commands to hide lines based on a regular
668 (license license:gpl3+)))
670 (define-public emacs-hgignore-mode
672 ;; No releases available.
673 (let ((commit "2c5aa4c238848f5b4f2955afcfb5f21ea513653b")
676 (name "emacs-hgignore-mode")
677 ;; `Version:' header says 0.1.20150329
678 (version (git-version "0.1" revision commit))
682 (url "https://github.com/omajid/hgignore-mode")
684 (file-name (git-file-name name version))
687 "0jn9rzhrmmv4lf7rdapdjclk6623d1mir2lq3c46428skhzjlph7"))))
688 (build-system emacs-build-system)
689 (home-page "https://github.com/omajid/hgignore-mode")
690 (synopsis "Major mode for editing @file{hgignore} files")
691 (description "This package provides a basic major mode for
692 editing @file{.hgignore} files used by the Mercurial version control
694 (license license:gpl3+))))
696 (define-public emacs-hsluv
699 (version "20181127.1206")
703 (url "https://github.com/hsluv/hsluv-emacs.git")
704 (commit "c3bc5228e30d66e7dee9ff1a0694c2b976862fc0")))
707 "19q8qlq4s2kfydpadkq1zd92611dvq7dr8vlhlbd9gplzpx7dhfd"))))
708 (build-system emacs-build-system)
709 (propagated-inputs (list emacs-seq))
710 (home-page "https://github.com/hsluv/hsluv-emacs")
711 (synopsis "HSLuv color space conversions")
713 "This package provides an elisp implementation of the HSLUV colorspace
714 conversions documented on @url{http://www.hsluv.org/}. HSLuv is a
715 human-friendly alternative to HSL. CIELUV is a color space designed for
716 perceptual uniformity based on human experiments. When accessed by polar
717 coordinates, it becomes functionally similar to HSL with a single problem: its
718 chroma component doesn't fit into a specific range. HSLuv extends CIELUV with
719 a new saturation component that allows you to span all the available chroma as
721 (license license:expat)))
723 (define-public emacs-platformio-mode
725 (name "emacs-platformio-mode")
730 (url "https://github.com/ZachMassia/PlatformIO-Mode")
731 (commit (string-append "v" version))))
732 (file-name (git-file-name name version))
735 "0ian50v9vaz7kqzn20bhqadq50h0l3zhjkmniinpz4q9klh7drh9"))))
736 (build-system emacs-build-system)
737 (propagated-inputs (list emacs-async emacs-projectile))
738 (home-page "https://github.com/zachmassia/platformio-mode")
739 (synopsis "Minor mode for building and uploading PlatformIO projects")
740 (description "This package provices an Emacs minor mode for building and
741 uploading PlatformIO projects.")
742 (license license:gpl3+)))
744 (define-public emacs-hyperbole
746 (name "emacs-hyperbole")
751 (uri (string-append "https://elpa.gnu.org/packages/"
752 "hyperbole-" version ".tar"))
754 (base32 "171x7jad62xd0n3xgs32dksyhn5abxj1kna0qgm65mm0v73hrv8d"))))
755 (build-system emacs-build-system)
757 (list #:include #~(cons* "DEMO"
766 #~(modify-phases %standard-phases
767 ;; Fix build issues about missing "domainname" and
768 ;; "hpmap:dir-user" parent dir, and missing require in
769 ;; "hgnus.el" (void-function: var-append).
770 (add-after 'unpack 'fix-build
771 (lambda* (#:key inputs #:allow-other-keys)
772 (substitute* "hypb.el"
774 (search-input-file inputs "bin/dnsdomainname")))
775 (substitute* "hyperbole.el"
776 (("\\(hyperb:check-dir-user\\)") ""))
777 (substitute* "hgnus.el"
778 (("hmail ") "hmail hvar "))))
779 (add-after 'install 'install-doc
781 (install-file "man/hyperbole.info"
782 (string-append #$output "/share/info"))
783 (install-file "man/hkey-help.txt"
784 (string-append #$output "/share/doc/"
785 #$name "-" #$version))))
786 (add-after 'install 'install-images
788 (let ((dir (string-append #$output "/share/info/im")))
789 (for-each (lambda (file)
790 (install-file file dir))
791 (find-files "man/im" "\\.png$"))))))))
794 (home-page "https://www.gnu.org/software/hyperbole/")
795 (synopsis "The Everyday Hypertextual Information Manager")
797 "GNU Hyperbole, or just Hyperbole, is a programmable hypertextual
798 information management system. It offers rapid views and interlinking of all
799 kinds of textual information, utilizing Emacs for editing. In particular,
800 Hyperbole lets you quickly create and activate hyperlink buttons, build
801 outlines, manage all your contacts, your windows and frames, and search across
802 buffers, directory trees, or the web.")
803 (license license:gpl3+)))
805 (define-public emacs-vlf
812 (uri (string-append "https://elpa.gnu.org/packages/"
813 "vlf-" version ".tar"))
815 (base32 "0hpri19z6b7dqmrj5ckp8sf0m0l72lkgahqzvfmwhgpgv2p81bny"))))
816 (build-system emacs-build-system)
817 (home-page "https://github.com/m00natic/vlfi/")
818 (synopsis "View large files in Emacs")
820 "Vlf is an Emacs minor mode that allows viewing, editing, searching and
821 comparing large files in batches.")
822 (license license:gpl2+)))
824 (define-public emacs-hg-histedit
826 ;; No releases available.
827 (let ((commit "a05149483b9c5f7848ece0ba6028c900595a6a25")
830 (name "emacs-hg-histedit")
831 (version (git-version "0.0.0" revision commit))
835 (url "https://github.com/jojojames/hg-histedit")
837 (file-name (git-file-name name version))
840 "04zps0d4s99f5a8ahrpyf8b6qw0c1y7rd1bsaq9nc6m4qblsvwc8"))))
841 (build-system emacs-build-system)
843 (list emacs-with-editor))
844 (home-page "https://github.com/jojojames/hg-histedit")
845 (synopsis "Emacs interface to @command{hg histedit}")
846 (description "This package provides an Emacs interface to
847 @command{hg histedit} for editing the commit history.")
848 (license license:gpl3+))))
850 (define-public emacs-package-build
852 (name "emacs-package-build")
857 (url "https://github.com/melpa/package-build")
859 (file-name (git-file-name name version))
862 "165gbrc1h1yj764kn3qq2y1551y04lqnklfa0k87gqgd38q5v985"))))
863 (build-system emacs-build-system)
864 (home-page "https://github.com/melpa/package-build")
865 (synopsis "Tools for assembling an Emacs package archive")
866 (description "This package provides tools for assembling an @acronym{ELPA,
867 Emacs package archive}.")
868 (license license:gpl3+)))
870 (define-public emacs-paredit
872 (name "emacs-paredit")
877 (url "https://mumble.net/~campbell/git/paredit.git")
878 (commit (string-append "v" version))))
879 (file-name (git-file-name name version))
882 "1hwl2jhv1fhsdrspfhprq77n763i4zsj350q024ajy0m2kaql6ws"))))
883 (build-system emacs-build-system)
884 (home-page "http://mumble.net/~campbell/emacs/paredit/")
885 (synopsis "Emacs minor mode for editing parentheses")
887 "ParEdit (paredit.el) is a minor mode for performing structured editing
888 of S-expression data. The typical example of this would be Lisp or Scheme
891 ParEdit helps keep parentheses balanced and adds many keys for moving
892 S-expressions and moving around in S-expressions. Its behavior can be jarring
893 for those who may want transient periods of unbalanced parentheses, such as
894 when typing parentheses directly or commenting out code line by line.")
895 (license license:gpl3+)))
897 (define-public emacs-puni
898 ;; No tagged release upstream
899 (let ((commit "28836e98d5566172b1a94d7b38290d07b49201b2")
903 (version (git-version "0" revision commit))
907 (url "https://github.com/AmaiKinono/puni")
909 (file-name (git-file-name name version))
912 "1z35nzsqcp8q9nnka0d5gpiidl07qfqmd2giwnd3b3v7h3v1kwpz"))))
913 (build-system emacs-build-system)
914 (propagated-inputs (list emacs-with-editor))
915 (home-page "https://github.com/AmaiKinono/puni")
916 (synopsis "Emacs minor mode for structured editing")
918 "Puni is an Emacs minor mode for structured editing: soft deletion,
919 expression navigating and manipulating. It supports many major modes
921 (license license:gpl3+))))
923 (define-public emacs-spaceline-all-the-icons
925 (name "emacs-spaceline-all-the-icons")
930 (url "https://github.com/domtronn/spaceline-all-the-icons.el")
932 (file-name (git-file-name name version))
935 "186v71d8n1iy73drayyf57pyzlz973q74mazkyvb8w3fj8bb3llm"))))
936 (build-system emacs-build-system)
938 (list emacs-all-the-icons
941 (home-page "https://github.com/domtronn/spaceline-all-the-icons.el")
943 "Theme for @code{emacs-spaceline} using @code{emacs-all-the-icons}")
945 "This package is a theme for @code{emacs-spaceline} that recreates most
946 of the segments available in that package using icons from
947 @code{emacs-all-the-icons}. Icon fonts allow for more tailored and detailed
948 information in the mode line.")
949 (license license:expat)))
951 (define-public emacs-snow
952 (let ((commit "35ea06f19047ac99eaff9663cb035491c4a13e07")
956 (version (git-version "0" revision commit))
961 (url "https://github.com/alphapapa/snow.el")
963 (file-name (git-file-name name version))
965 (base32 "1pcqvg70r1k73k3jxgz5qzwqsvwjnwvpfrbjf4b54smglz2nvz19"))))
966 (build-system emacs-build-system)
967 (home-page "https://github.com/alphapapa/snow.el/")
968 (synopsis "Let it snow in Emacs")
969 (description "This package adds a command @code{snow} that displays
970 a buffer in which it snows. The storm varies in intensity, a gentle breeze
971 blows at times, and snow accumulates on the terrain in the scene.")
972 (license license:gpl3+))))
974 (define-public emacs-spongebob
975 (let ((commit "ae8ae6ba0dc57b7357ba87ff0609d27c4a0a5f51")
978 (name "emacs-spongebob")
979 (version (git-version "0" revision commit))
984 (url "https://gitlab.com/dustyweb/spongebob.el")
986 (file-name (git-file-name name version))
988 (base32 "1agqpp078ij2irn0kb8bgqk0nd47fi20yfd9szn8kbqypfqalvgc"))))
989 (build-system emacs-build-system)
990 (home-page "https://gitlab.com/dustyweb/gauche")
991 (synopsis "Memetically mock a region of text")
992 (description "This package transforms text using @code{studlify-region}
993 and inserts a SpongeBob SquarePants ASCII art figure in the current
995 (license license:gpl3+))))
997 (define-public emacs-project
999 (name "emacs-project")
1004 (uri (string-append "https://elpa.gnu.org/packages/project-" version ".tar"))
1006 (base32 "0p2ivkmcx55xwmyg2vhj8qcqg4qd5y3myshn194ncy38lbvsj91h"))))
1007 (build-system emacs-build-system)
1008 (propagated-inputs (list emacs-xref))
1009 (home-page "https://elpa.gnu.org/packages/project.html")
1010 (synopsis "Operations on the current project")
1012 "This library contains generic infrastructure for dealing with projects,
1013 some utility functions, and commands using that infrastructure.")
1014 (license license:gpl3+)))
1016 (define-public git-modes
1018 (name "emacs-git-modes")
1024 (url "https://github.com/magit/git-modes")
1026 (file-name (git-file-name name version))
1028 (base32 "0aqz65pcqc35h5z4s606f48iqn87h5v9nj3cp6n9yjxa2v7w5hfk"))))
1029 (build-system emacs-build-system)
1030 (home-page "https://github.com/magit/git-modes")
1031 (synopsis "Emacs major modes for Git configuration files")
1033 "This package provides Emacs major modes for editing various Git
1034 configuration files, such as @file{.gitattributes}, @file{.gitignore}, and
1035 @file{.git/config}.")
1036 (license license:gpl3+)))
1038 (define-public emacs-with-editor
1040 (name "emacs-with-editor")
1046 (url "https://github.com/magit/with-editor")
1047 (commit (string-append "v" version))))
1048 (file-name (git-file-name name version))
1050 (base32 "1d98hagpm6h5vgx80qlh3zrfcb6z000rfc707w9zzmh634dkg3xx"))))
1051 (build-system emacs-build-system)
1055 #~(modify-phases %standard-phases
1056 (add-before 'install 'enter-lisp-directory
1059 (add-before 'install 'make-info
1061 (with-directory-excursion "../docs"
1062 (invoke "makeinfo" "--no-split"
1063 "-o" "with-editor.info" "with-editor.texi")
1064 (install-file "with-editor.info" "../lisp")))))))
1069 (home-page "https://github.com/magit/with-editor")
1070 (synopsis "Emacs library for using Emacsclient as EDITOR")
1072 "This package provides an Emacs library to use the Emacsclient as
1073 @code{$EDITOR} of child processes, making sure they know how to call home.
1074 For remote processes a substitute is provided, which communicates with Emacs
1075 on stdout instead of using a socket as the Emacsclient does.")
1076 (license license:gpl3+)))
1078 (define-public emacs-libgit
1079 (let ((commit "0ef8b13aef011a98b7da756e4f1ce3bb18e4d55a")
1082 (name "emacs-libgit")
1083 (version (git-version "20200515" revision commit))
1087 (url "https://github.com/magit/libegit2")
1089 (file-name (git-file-name name version))
1092 "0pnjr3bg6y6354dfjjxfj0g51swzgl1fncpprah75x4k94rd369f"))
1093 (patches (search-patches
1094 ;; Submitted for inclusion upstream (see:
1095 ;; https://github.com/magit/libegit2/pull/96).
1096 "emacs-libgit-use-system-libgit2.patch"))
1099 ;; bundled, use the one shipped with emacs instead
1100 (delete-file "src/emacs-module.h")))))
1101 ;; Use the cmake-build-system as it provides support for cross builds.
1102 (build-system cmake-build-system)
1104 `(#:configure-flags '("-DUSE_SYSTEM_LIBGIT2=x")
1105 ;; Add the emacs-build-system byte compilation and install phases.
1106 #:imported-modules (,@%cmake-build-system-modules
1107 (guix build emacs-build-system)
1108 (guix build emacs-utils))
1109 #:modules ((guix build cmake-build-system)
1110 ((guix build emacs-build-system) #:prefix emacs:)
1111 (guix build emacs-utils)
1114 (modify-phases %standard-phases
1115 (add-after 'unpack 'patch-source
1117 ;; Use Emacs 28 unibyte strings.
1118 ;; XXX: This now breaks if linked against Emacs <= 26, probably
1120 (substitute* "src/egit-blob.c"
1121 (("make_string") "make_unibyte_string"))))
1122 (add-after 'unpack 'set-libgit--module-file
1123 (lambda* (#:key outputs #:allow-other-keys)
1124 (let ((out (assoc-ref outputs "out")))
1125 (make-file-writable "libgit.el")
1126 (emacs-substitute-variables "libgit.el"
1127 ("libgit--module-file"
1128 (string-append (emacs:elpa-directory out) "/libegit2.so"))))))
1129 (add-before 'install 'prepare-for-install
1131 (let ((s "../source"))
1132 (copy-file "libegit2.so" (string-append s "/libegit2.so"))
1135 (lambda* (#:key outputs #:allow-other-keys)
1136 (let ((install (assoc-ref emacs:%standard-phases 'install)))
1137 (install #:outputs outputs
1138 #:include (cons "\\.so$"
1139 emacs:%default-include)))))
1140 (add-after 'unpack 'emacs-add-install-to-native-load-path
1141 (assoc-ref emacs:%standard-phases 'add-install-to-native-load-path))
1142 (add-after 'install 'make-autoloads
1143 (assoc-ref emacs:%standard-phases 'make-autoloads))
1144 (add-after 'make-autoloads 'enable-autoloads-compilation
1145 (assoc-ref emacs:%standard-phases 'enable-autoloads-compilation))
1146 (add-after 'enable-autoloads-compilation 'patch-el-files
1147 (assoc-ref emacs:%standard-phases 'patch-el-files))
1148 (add-after 'patch-el-files 'emacs-build
1149 (assoc-ref emacs:%standard-phases 'build))
1150 (add-after 'emacs-build 'validate-compiled-autoloads
1151 (assoc-ref emacs:%standard-phases 'validate-compiled-autoloads)))))
1153 (list pkg-config emacs-no-x git-minimal))
1156 (home-page "https://github.com/magit/libegit2")
1157 (synopsis "Emacs bindings for libgit2")
1158 (description "This is an experimental module written in C providing
1159 libgit2 bindings for Emacs, intended to boost the performance of Magit.")
1160 ;; The LICENSE file says GPL v2+, but libgit.el says GPL v3+.
1161 (license license:gpl3+))))
1163 (define-public emacs-magit
1164 (let ((commit "36059e0b881cb1465cb5ad0099e55e00845a8222")
1167 (name "emacs-magit")
1168 (version (git-version "3.3.0" revision commit))
1173 (url "https://github.com/magit/magit")
1175 (file-name (git-file-name name version))
1177 (base32 "12r5z7jbqh74rb9763smh4sblswzwi41wybzcvsy0zhw2r8lpmzv"))))
1178 (build-system emacs-build-system)
1182 #:test-command #~(list "make" "test")
1183 #:exclude #~(cons* "magit-libgit.el"
1184 "magit-libgit-pkg.el"
1187 #~(modify-phases %standard-phases
1188 (add-after 'unpack 'build-info-manual
1190 (invoke "make" "info")
1191 ;; Copy info files to the lisp directory, which acts as
1192 ;; the root of the project for the emacs-build-system.
1193 (for-each (lambda (f)
1194 (install-file f "lisp"))
1195 (find-files "Documentation" "\\.info$"))))
1196 (add-after 'build-info-manual 'set-magit-version
1198 (make-file-writable "lisp/magit.el")
1199 (emacs-substitute-variables "lisp/magit.el"
1200 ("magit-version" #$version))))
1201 (add-after 'set-magit-version 'patch-exec-paths
1202 (lambda* (#:key inputs #:allow-other-keys)
1203 (for-each make-file-writable
1204 (list "lisp/magit-git.el" "lisp/magit-sequence.el"))
1205 (emacs-substitute-variables "lisp/magit-git.el"
1206 ("magit-git-executable"
1207 (search-input-file inputs "/bin/git")))
1208 (emacs-substitute-variables "lisp/magit-sequence.el"
1209 ("magit-perl-executable"
1210 (search-input-file inputs "/bin/perl")))))
1211 (add-before 'check 'configure-git
1213 ;; Otherwise some tests fail with error "unable to auto-detect
1215 (setenv "HOME" (getcwd))
1216 (invoke "git" "config" "--global" "user.name" "toto")
1217 (invoke "git" "config" "--global" "user.email"
1219 (replace 'expand-load-path
1221 (with-directory-excursion "lisp"
1222 (apply (assoc-ref %standard-phases 'expand-load-path) args))))
1225 (with-directory-excursion "lisp"
1226 (apply (assoc-ref %standard-phases 'install) args)))))))
1232 (list emacs-dash emacs-with-editor emacs-compat))
1233 (home-page "https://magit.vc/")
1234 (synopsis "Emacs interface for the Git version control system")
1236 "With Magit, you can inspect and modify your Git repositories
1237 with Emacs. You can review and commit the changes you have made to
1238 the tracked files, for example, and you can browse the history of past
1239 changes. There is support for cherry picking, reverting, merging,
1240 rebasing, and other common Git operations.")
1241 (license license:gpl3+))))
1243 (define-public emacs-magit-svn
1245 (name "emacs-magit-svn")
1250 (url "https://github.com/magit/magit-svn")
1252 (file-name (git-file-name name version))
1255 "1v1y4fir1plz4kj0cvkcd29wibli4dw7vp4fmbxq4df76d8iy8yd"))))
1256 (build-system emacs-build-system)
1257 (propagated-inputs (list emacs-dash emacs-with-editor emacs-magit))
1258 (home-page "https://github.com/magit/magit-svn")
1259 (synopsis "Git-SVN extension to Magit")
1261 "This package is an extension to Magit, the Git Emacs mode, providing
1262 support for Git-SVN.")
1263 (license license:gpl3+)))
1265 (define-public emacs-magit-popup
1267 (name "emacs-magit-popup")
1273 (url "https://github.com/magit/magit-popup")
1274 (commit (string-append "v" version))))
1275 (file-name (git-file-name name version))
1277 (base32 "0znp6gx6vpcsybg774ab06mdgxb7sfk3gki1yp2qhkanav13i6q1"))))
1278 (build-system emacs-build-system)
1281 (modify-phases %standard-phases
1282 (add-before 'install 'make-info
1284 (invoke "make" "info"))))))
1289 (home-page "https://github.com/magit/magit-popup")
1290 (synopsis "Define prefix-infix-suffix command combos")
1292 "This library implements a generic interface for toggling switches and
1293 setting options and then invoking an Emacs command which does something with
1294 these arguments. The prototypical use is for the command to call an external
1295 process, passing on the arguments as command line arguments.")
1296 (license license:gpl3+)))
1298 (define-public emacs-magit-annex
1300 (name "emacs-magit-annex")
1306 (url "https://github.com/magit/magit-annex")
1307 (commit (string-append "v" version))))
1308 (file-name (git-file-name name version))
1310 (base32 "1amr2c08mq1nnn6k66mgz4rzyni4np7gxm96g4qyla2cbfbachgk"))))
1311 (build-system emacs-build-system)
1312 (propagated-inputs (list emacs-magit))
1313 (home-page "https://github.com/magit/magit-annex/")
1314 (synopsis "Git-annex support for Magit")
1316 "Magit-annex adds a few git-annex operations to the Magit interface.")
1317 (license license:gpl3+)))
1319 (define-public emacs-mct
1326 (url "https://gitlab.com/protesilaos/mct")
1329 (base32 "0vmlss546z0x8y26cxb1iis926pwjfv466gwm0clb8jfqkvr0qmh"))
1330 (file-name (git-file-name name version))))
1331 (native-inputs (list texinfo))
1332 (build-system emacs-build-system)
1336 #~(modify-phases %standard-phases
1337 (add-after 'install 'makeinfo
1341 "--eval=(require 'ox-texinfo)"
1342 "--eval=(find-file \"README.org\")"
1343 "--eval=(org-texinfo-export-to-info)")
1344 (install-file "mct.info" (string-append #$output "/share/info")))))))
1345 (home-page "https://protesilaos.com/emacs/mct")
1346 (synopsis "Enhancement of the default Emacs minibuffer completion UI")
1347 (description "Minibuffer and Completions in Tandem, also known as MCT, or
1348 mct.el, is an Emacs package that enhances the default minibuffer and
1349 @samp{*Completions*} buffer so that they work together as part of a unified
1350 framework. The idea is to make the presentation and overall functionality be
1351 consistent with other popular, vertically aligned completion UIs while
1352 leveraging built-in functionality.")
1353 (license (list license:gpl3+
1354 license:fdl1.3+)))) ; GFDLv1.3+ for the manual
1356 (define-public emacs-fzf
1357 (let ((commit "21912ebc7e1084aa88c9d8b7715e782a3978ed23")
1361 (version (git-version "0.2" revision commit))
1365 (url "https://github.com/bling/fzf.el")
1367 (file-name (git-file-name name version))
1370 "0gdqjh8996hb06bnnyhi94k69mjfrzyfgq00a9s4wwagv28sqmkj"))))
1371 (build-system emacs-build-system)
1374 #:tests? #f ;no tests
1376 #~(modify-phases %standard-phases
1377 (add-after 'unpack 'patch-fzf-executable
1378 (lambda* (#:key inputs #:allow-other-keys)
1379 (emacs-substitute-variables "fzf.el"
1380 ("fzf/executable" (search-input-file inputs "/bin/fzf"))))))))
1382 (home-page "https://github.com/bling/fzf.el")
1383 (synopsis "Emacs front-end for Fzf finder")
1384 (description "This package provides an Emacs front-end for Fzf general
1386 (license license:gpl3+))))
1388 (define-public emacs-minions
1390 (name "emacs-minions")
1396 (url "https://github.com/tarsius/minions")
1397 (commit (string-append "v" version))))
1398 (file-name (git-file-name name version))
1400 (base32 "1bzxxs8mxaihpjkbxgynhsi39lbbnij28grdc3sk9sq09j9752vw"))))
1401 (build-system emacs-build-system)
1404 (home-page "https://github.com/tarsius/minions")
1405 (synopsis "Minor-mode menu for the mode line")
1407 "This package implements a menu that lists enabled minor-modes, as well
1408 as commonly but not currently enabled minor-modes. It can be used to toggle
1409 local and global minor-modes, to access mode-specific menus, and to get help
1412 This menu is intended as a replacement for the incomplete yet wide list of
1413 enabled minor-modes that is displayed in the mode line by default. To use the
1414 menu like this, enable Minions mode.
1416 Alternatively the menu can be bound globally, for example:
1417 @code{(global-set-key [S-down-mouse-3] 'minions-minor-modes-menu)}.")
1418 (license license:gpl3+)))
1420 (define-public emacs-nano-modeline
1421 ;; No tagged release upstream. The commit below matches latest version
1423 (let ((commit "61f62aa4716eae4fa89961955323d146e9791fca"))
1425 (name "emacs-nano-modeline")
1430 (url "https://github.com/rougier/nano-modeline")
1432 (file-name (git-file-name name version))
1435 "1zwf3mp0z4vc36lg057vspk7dr8chcvhivm1l8q7p3m9b6xw8ask"))))
1436 (build-system emacs-build-system)
1437 (home-page "https://github.com/rougier/nano-modeline")
1438 (synopsis "Emacs minor mode controlling mode line")
1439 (description "Nano modeline is a minor mode for Emacs that modifies the
1440 mode line as @samp{[ status | name (primary) secondary ]}. It can be
1441 displayed at the bottom or at the top.")
1442 (license license:gpl3+))))
1444 (define-public emacs-moody
1446 (name "emacs-moody")
1452 (url "https://github.com/tarsius/moody")
1453 (commit (string-append "v" version))))
1454 (file-name (git-file-name name version))
1456 (base32 "09yyihx6cpa724z6cj2rqspajwj325ipgpmckklpgq6l4h5xnwy4"))))
1457 (build-system emacs-build-system)
1458 (home-page "https://github.com/tarsius/moody")
1459 (synopsis "Tabs and ribbons for Emacs mode-line")
1461 "@code{emacs-moody} provides utilities for displaying elements of
1462 the mode line as tabs and ribbons. It also provides replacements for a few
1463 built-in elements. The biggest difference to similar packages is that
1464 this one is much simpler and much more consistent. When using this package,
1465 then only the color of the mode line changes when a window becomes in-/active.")
1466 (license license:gpl3+)))
1468 (define-public emacs-acme-theme
1469 (let ((commit "7c408d111c5e451ecb8fdd5f76cf7d8074aec793")
1472 (name "emacs-acme-theme")
1473 (version (git-version "1.0.0" revision commit))
1479 (url "https://github.com/ianyepan/acme-emacs-theme")
1481 (file-name (git-file-name name version))
1483 (base32 "16qxspzlf0bvw36ff4qnrn5p7mc5sf923ba0ar04cr87bfqgyak4"))))
1484 (build-system emacs-build-system)
1485 (home-page "https://github.com/ianyepan/acme-emacs-theme")
1486 (synopsis "Emacs theme inspired by Plan 9's Acme and Sam Editor")
1487 (description "Acme theme is an Emacs theme with an old-school vibe
1488 inspired by Plan 9 Acme and the Sam text editor.")
1489 (license license:gpl3+))))
1491 (define-public emacs-theme-magic
1492 ;; No tagged release upstream, but the commit below correspond to the 0.2.3
1494 (let ((commit "844c4311bd26ebafd4b6a1d72ddcc65d87f074e3")
1497 (name "emacs-theme-magic")
1503 (url "https://github.com/jcaw/theme-magic")
1505 (file-name (git-file-name name version))
1507 (base32 "10gkg7jh1s1484gm66a87zr7x8vmv00s7gfd0w2pj47nqf98g8hz"))))
1508 (build-system emacs-build-system)
1511 ;; Include Pywal interaction scripts.
1512 #:include #~(cons "^python/" %default-include)
1514 #~(modify-phases %standard-phases
1515 (add-after 'unpack 'patch-exec-paths
1516 (lambda* (#:key inputs #:allow-other-keys)
1517 (substitute* '("theme-magic.el" "python/wal_change_colors.py")
1520 (search-input-file inputs "/bin/python3")
1524 (search-input-file inputs "/bin/wal")
1527 (list python python-pywal))
1528 (home-page "https://github.com/jcaw/theme-magic")
1529 (synopsis "Generate and apply color palettes based on your Emacs theme")
1531 "This package provides a command to extract the colors from your Emacs
1532 theme and apply them to the rest of Linux with Pywal. Pywal only applies your
1533 theme to the current session.")
1534 (license license:gpl3+))))
1536 (define-public emacs-vscode-dark-plus
1538 (name "emacs-vscode-dark-plus")
1544 (url "https://github.com/ianyepan/vscode-dark-plus-emacs-theme")
1545 (commit (string-append "v" version))))
1546 (file-name (git-file-name name version))
1548 (base32 "1vcaqvhdgr91pr7kqskbscs8awm8jp6dkh79h6w36i9ipmc4l4hl"))))
1549 (build-system emacs-build-system)
1550 (home-page "https://github.com/ianyepan/vscode-dark-plus-emacs-theme")
1551 (synopsis "Emacs port of the default VS Code Dark+ theme")
1553 "This theme aims to be as identical as possible to the default Dark+
1554 color scheme used by Visual Studio Code.")
1555 (license license:gpl3+)))
1557 (define-public emacs-theme-sorcery
1558 (let ((revision "0")
1559 (commit "5a1c4445b9e6e09589a299a9962a6973272a0c2f"))
1561 (name "emacs-theme-sorcery")
1567 (url "https://github.com/mtreca/emacs-theme-sorcery")
1569 (file-name (git-file-name name version))
1571 (base32 "1b858049n6nw4qf60fmszjrhl80x7ssh32f7glj722kwy7404kdh"))))
1572 (build-system emacs-build-system)
1574 (list emacs-autothemer))
1575 (home-page "https://github.com/mtreca/emacs-theme-sorcery")
1576 (synopsis "Dark and low-contrast Emacs theme")
1577 (description "Sorcery is a dark and low-contrast Emacs theme inspired by
1578 Apprentice and Sourcerer.")
1579 (license license:gpl3+))))
1581 (define-public emacs-suneater-theme
1583 (name "emacs-suneater-theme")
1589 (url "https://git.sr.ht/~plattfot/suneater-theme")
1593 "0nlam8f8ly86y7p2dn10y9ixnm7bhmigsx7si4cjynh6aiyczyds"))
1594 (file-name (git-file-name name version))))
1595 (build-system emacs-build-system)
1596 (home-page "https://git.sr.ht/~plattfot/suneater-theme")
1597 (synopsis "Minimalistic dark theme for Emacs")
1599 "Suneater is a dark, minimalistic Emacs theme. It was based on Sunburst
1600 theme but now takes more inspiration from the Nano theme.")
1601 (license license:gpl3+)))
1603 (define-public emacs-treepy
1605 (name "emacs-treepy")
1610 (url "https://github.com/volrath/treepy.el")
1612 (file-name (git-file-name name version))
1615 "0pmrpij80m5kgcr8bw36r8wllgppasw08vn3ghwvis9srpaq75cn"))))
1616 (build-system emacs-build-system)
1618 "https://github.com/volrath/treepy.el")
1619 (synopsis "Tree traversal tools")
1621 "Generic tools for recursive and iterative tree traversal based on
1622 clojure.walk and clojure.zip respectively.")
1623 (license license:gpl3+)))
1625 (define-public emacs-typing
1626 (let ((commit "a2ef25dde2d8eb91bd9c0c6164cb5208208647fa")
1629 (name "emacs-typing")
1630 (version (git-version "1.1.4" revision commit))
1635 (url "https://github.com/kensanata/typing")
1637 (file-name (git-file-name name version))
1640 "1dbh0srbf54lgd60ia79y9cfnq3kxlgw01qzdjs9mk3nfazzpgnv"))))
1641 (build-system emacs-build-system)
1642 (home-page "https://github.com/kensanata/typing/")
1643 (synopsis "Emacs game where you have to type fast")
1644 (description "The Typing of Emacs is a game for Emacs that
1645 forces you to type words correctly as fast as possible, otherwise
1646 you will die. The game builds the list of words from the active buffer.")
1647 (license license:gpl2+))))
1649 (define-public emacs-graphql
1650 (let ((commit "b57b5ca5d2d0837e1fb4a4f30c051d5f3e643f0f")) ;version bump
1652 (name "emacs-graphql")
1657 (url "https://github.com/vermiculus/graphql.el")
1659 (file-name (git-file-name name version))
1662 "18k2c2b7y5qgc7qpkqjmz1nv61w470ja3vwprmy5dlkzficzqsvf"))))
1663 (build-system emacs-build-system)
1667 #:test-command #~(list "ert-runner")
1669 #~(modify-phases %standard-phases
1670 (add-after 'unpack 'skip-failing-test
1672 (substitute* "test/graphql-test.el"
1673 (("\\(ert-deftest correct-tag .*" all)
1674 (string-append all " (skip-unless nil)"))))))))
1675 (native-inputs (list emacs-ert-runner))
1676 (propagated-inputs (list emacs-ghub))
1677 (home-page "https://github.com/vermiculus/graphql.el")
1678 (synopsis "GraphQL utilities")
1680 "GraphQL.el provides a generally-applicable domain-specific language for
1681 creating and executing GraphQL queries against your favorite web services.
1682 GraphQL is a data query language and runtime designed and used to request and
1683 deliver data to mobile and web apps.")
1684 (license license:gpl3+))))
1686 (define-public emacs-graphql-mode
1687 ;; No tagged commit. No "Version" keyword either.
1688 (let ((commit "9bed568ec86242dbe30bdbab324aa0eb2cd9bf08")
1691 (name "emacs-graphql-mode")
1692 (version (git-version "0" revision commit))
1697 (url "https://github.com/davazp/graphql-mode")
1699 (file-name (git-file-name name version))
1701 (base32 "0x9y7qq6y0zg8ncamzvk68ccmdyzh7xsj0xs0ykyl20d5wdpplj4"))))
1702 (build-system emacs-build-system)
1703 (home-page "https://github.com/davazp/graphql-mode")
1704 (synopsis "Emacs mode to edit GraphQL schema and queries")
1706 "This package implements a major mode to edit GraphQL schemas and
1707 query. The basic functionality includes syntax highlight and indentation.
1708 Additionally, it is able to send GraphQL queries to an end-point URL.
1710 Files with the @file{.graphql} and @file{.gql} extensions are
1711 automatically opened with this mode.")
1712 (license license:gpl3+))))
1714 (define-public emacs-ghq
1722 (url "https://github.com/rcoedo/emacs-ghq")
1723 (commit (string-append "v" version))))
1724 (file-name (git-file-name name version))
1726 (base32 "0rh2k93c3a0vl073a3s3a3h6gkw454v1lyd7y8l3pd24vw9hc628"))))
1727 (build-system emacs-build-system)
1730 (home-page "https://github.com/rcoedo/emacs-ghq")
1731 (synopsis "Emacs interface for @code{ghq} tool")
1733 "This package provides a set of functions wrapping @code{ghq}, a tool for
1734 organizing remote Go repository clones.")
1735 (license license:gpl3+)))
1737 (define-public emacs-ghub
1745 (url "https://github.com/magit/ghub")
1746 (commit (string-append "v" version))))
1747 (file-name (git-file-name name version))
1749 (base32 "1pw1rjrvvanlcxv3rb64s2p646zfaipp7h7v8djlrrnlgy6mwbqd"))))
1750 (build-system emacs-build-system)
1754 #~(modify-phases %standard-phases
1755 (add-before 'install 'make-info
1757 (invoke "make" "info")))
1758 (add-after 'make-info 'enter-lisp-directory
1761 (add-after 'expand-load-path 'add-el-dir-to-emacs-load-path
1763 (setenv "EMACSLOADPATH"
1764 (string-append (getcwd)
1766 (getenv "EMACSLOADPATH")))))
1767 (add-after 'install 'install-info
1769 (let ((info (string-append #$output "/share/info")))
1770 (install-file "../docs/ghub.info" info)))))))
1774 (list emacs-dash emacs-let-alist emacs-treepy))
1775 (home-page "https://github.com/magit/ghub")
1776 (synopsis "Emacs client libraries for the APIs of various Git forges")
1778 "Ghub provides basic support for using the APIs of various Git forges from
1779 Emacs packages. It supports the REST APIs of Github, Github GraphQL, Gitlab,
1780 Gitea, Gogs and Bitbucket. It abstracts access to API resources using only a
1781 handful of functions that are not resource-specific.")
1782 (license license:gpl3+)))
1784 (define-public emacs-typit
1786 (name "emacs-typit")
1792 (url "https://github.com/mrkkrp/typit")
1794 (file-name (git-file-name name version))
1796 (base32 "0djxmni5mfc9wzm0zg7fsd7138ic5qznbmqd5jyrk4mpf0li8nhy"))))
1797 (build-system emacs-build-system)
1799 '(#:include (cons "^dict/" %default-include)))
1801 (list emacs-f emacs-mmt))
1802 (home-page "https://github.com/mrkkrp/typit")
1803 (synopsis "Typing game for Emacs with two difficulties")
1804 (description "Emacs Typit is a typing game for Emacs. Words that are
1805 picked randomly from the most frequent words in language you're practicing,
1807 (license license:gpl3+)))
1809 (define-public emacs-scribble-mode
1810 (let ((commit "217945d54de5e4bb207033f2116baa28f5c5ecf2")
1813 (name "emacs-scribble-mode")
1814 (version (git-version "0.1" revision commit))
1818 (url "https://github.com/emacs-pe/scribble-mode")
1820 (file-name (git-file-name name version))
1823 "1s5ccw1a5ack01wd94ywfcrar9j98agchwdh30q7iyxr0d2z4sii"))))
1824 (build-system emacs-build-system)
1825 (home-page "https://github.com/emacs-pe/scribble-mode")
1826 (synopsis "Emacs mode for editing the Scribble documentation syntax")
1828 "This package provides basic syntax highlighting and editing support
1829 for editing Racket's Scribble documentation syntax in Emacs.")
1830 (license license:gpl3+))))
1832 (define-public emacs-shroud
1834 (name "emacs-shroud")
1840 (url "https://git.savannah.gnu.org/git/emacs-shroud.git")
1842 (file-name (git-file-name name version))
1844 (base32 "0q2pb3w8s833fjhkzicciw2php4lsnismad1dnwgp2lcway757ra"))))
1845 (build-system gnu-build-system)
1847 `(#:modules ((guix build gnu-build-system)
1848 ((guix build emacs-build-system) #:prefix emacs:)
1850 #:imported-modules (,@%gnu-build-system-modules
1851 (guix build emacs-build-system)
1852 (guix build emacs-utils))
1853 #:configure-flags (list (string-append "--with-lispdir="
1854 (emacs:elpa-directory %output)))
1856 (modify-phases %standard-phases
1857 (add-after 'unpack 'expand-load-path
1858 (assoc-ref emacs:%standard-phases 'expand-load-path)))))
1860 (list autoconf automake texinfo perl emacs-minimal))
1868 (home-page "https://www.nongnu.org/emacs-shroud")
1869 (synopsis "Emacs interface to the Shroud password manager")
1871 "This package provides an Emacs interface to the Shroud password manager,
1872 using the Buffers User Interface library. You can view, copy, and edit secrets
1873 from within Emacs.")
1874 (license license:gpl3+)))
1876 (define-public emacs-solidity
1877 ;; This commit fixes a spacing issue and adds new keywords.
1878 (let ((commit "d166a86b83907e0cfd64c191e9dfce4b44a9843e")
1881 (name "emacs-solidity")
1882 (version (git-version "0.1.10" revision commit))
1887 (url "https://github.com/ethereum/emacs-solidity")
1889 (file-name (git-file-name name version))
1891 (base32 "19hgvsrqch2vp49ag6m76bi5qxd20v95z0ib838rib9as15b17wq"))))
1892 (build-system emacs-build-system)
1894 (list emacs-company emacs-flycheck))
1895 (home-page "https://github.com/ethereum/emacs-solidity")
1896 (synopsis "Major mode for writing Solidity code")
1898 "This is a simple language mode for the Solidity language. It is
1899 a constant work in progress as the language itself also progresses.")
1900 (license license:gpl3+))))
1902 (define-public emacs-unpackaged-el
1903 (let ((commit "746801a677ada6cd6fa076e423aa0953779f3fad")
1906 (name "emacs-unpackaged-el")
1907 (version (git-version "0" revision commit))
1912 (url "https://github.com/alphapapa/unpackaged.el")
1914 (file-name (git-file-name name version))
1917 "0jvb2ci0h0lj368qhbff3pzkxj3nhlligpbkjzi525k9rkjgm7l8"))))
1918 (build-system emacs-build-system)
1920 (list emacs-dash emacs-org emacs-s emacs-hydra emacs-use-package))
1924 #~(modify-phases %standard-phases
1925 (add-after 'unpack 'require-hydra
1927 (substitute* "unpackaged.el"
1928 ((";;; Code:") ";;; Code:\n(require 'hydra)")))))))
1929 (home-page "https://github.com/alphapapa/unpackaged.el")
1930 (synopsis "Useful snippets of Emacs Lisp code")
1931 (description "This package provides Emacs Lisp utilities for a variety
1932 of tasks, including version control, task management, and regex-based
1934 (license license:gpl3+))))
1936 (define-public emacs-haskell-mode
1937 (let ((revision "0")
1938 (commit "5a9f8072c7b9168f0a8409adf9d62a3e4ad4ea3d"))
1940 (name "emacs-haskell-mode")
1941 (version (git-version "17.2" revision commit))
1946 (url "https://github.com/haskell/haskell-mode")
1948 (file-name (git-file-name name version))
1950 (base32 "0np1wrwdq7b9hpqpl9liampacnkx6diphyk8h2sbz2mfn9qr7pxs"))))
1954 (list emacs-minimal emacs-el-search emacs-stream texinfo))
1955 (build-system gnu-build-system)
1958 #:make-flags #~(list
1959 (string-append "EMACS=" #$emacs-minimal "/bin/emacs"))
1960 #:modules `((ice-9 match)
1962 ((guix build emacs-build-system) #:prefix emacs:)
1963 ,@%gnu-build-system-modules)
1964 #:imported-modules `(,@%gnu-build-system-modules
1965 (guix build emacs-build-system)
1966 (guix build emacs-utils))
1968 #~(modify-phases %standard-phases
1970 (add-before 'build 'pre-build
1971 (lambda* (#:key inputs #:allow-other-keys)
1972 (define (el-dir store-dir)
1973 (match (find-files store-dir "\\.el$")
1974 ((f1 f2 ...) (dirname f1))
1977 (let ((sh (search-input-file inputs "/bin/sh")))
1978 (define emacs-prefix? (cut string-prefix? "emacs-" <>))
1980 (setenv "SHELL" "sh")
1981 (setenv "EMACSLOADPATH"
1984 (((? emacs-prefix? name) . dir)
1985 (string-append (el-dir dir) ":"))
1988 (substitute* (find-files "." "\\.el") (("/bin/sh") sh)))))
1989 (add-before 'check 'delete-failing-tests
1990 ;; XXX: these tests require GHC executable, which would be a big
1993 (with-directory-excursion "tests"
1994 ;; File `haskell-indent-tests.el' fails with
1995 ;; `haskell-indent-put-region-in-literate-2'
1997 ;; XXX: https://github.com/haskell/haskell-mode/issues/1714
1998 (for-each delete-file
1999 '("haskell-indent-tests.el"
2000 "haskell-customize-tests.el"
2001 "inferior-haskell-tests.el"))
2003 ;; requires many external tools (e.g. git, hasktags)
2004 (substitute* "haskell-mode-tests.el"
2005 (("\\(ert-deftest haskell-generate-tags.*" all)
2006 (string-append all " (skip-unless nil)"))))))
2008 (lambda* (#:key outputs #:allow-other-keys)
2009 (let* ((out (assoc-ref outputs "out"))
2010 (el-dir (emacs:elpa-directory out))
2012 out "/share/doc/haskell-mode-" #$version))
2013 (info (string-append out "/share/info")))
2014 (define (copy-to-dir dir files)
2015 (for-each (lambda (f)
2016 (install-file f dir))
2019 (with-directory-excursion "doc"
2020 (invoke "makeinfo" "haskell-mode.texi")
2021 (install-file "haskell-mode.info" info))
2022 (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md"))
2023 (copy-to-dir el-dir (find-files "." "\\.elc?"))))))))
2024 (home-page "https://github.com/haskell/haskell-mode")
2025 (synopsis "Haskell mode for Emacs")
2027 "This is an Emacs mode for editing, debugging and developing Haskell
2029 (license license:gpl3+))))
2031 (define-public emacs-dante
2033 (name "emacs-dante")
2038 (url "https://github.com/jyp/dante")
2042 "0q7hackvaplh1f645ngd76f2ls5mvg93xicr3rkxr07hd36yihag"))
2043 (file-name (git-file-name name version))))
2044 (build-system emacs-build-system)
2053 (home-page "https://github.com/jyp/dante")
2054 (synopsis "Minor mode for interactive Haskell")
2056 "This package provides a minor mode for Haskell development that
2057 supports type hints, definition-jumping, completion, and more.")
2058 (license license:gpl3+)))
2060 (define-public emacs-flycheck
2062 (name "emacs-flycheck")
2068 (url "https://github.com/flycheck/flycheck/")
2071 (base32 "0dx6wqxz1yfp4shas4yn6abqc8bz21ks3glcyzznm3xspjdaq21s"))
2072 (file-name (git-file-name name version))))
2073 (build-system emacs-build-system)
2077 (list emacs-shut-up))
2081 #~(modify-phases %standard-phases
2082 (add-after 'unpack 'change-flycheck-version
2084 (substitute* "flycheck.el"
2085 (("\\(pkg-info-version-info 'flycheck\\)")
2086 (string-append "\"" #$version "\""))))))
2087 ;; TODO: many failing tests
2090 #~(list "emacs" "-Q" "--batch"
2092 "--load" "test/flycheck-test"
2093 "--load" "test/run.el"
2094 "-f" "flycheck-run-tests-main")))
2095 (home-page "https://www.flycheck.org")
2096 (synopsis "On-the-fly syntax checking")
2098 "This package provides on-the-fly syntax checking for GNU Emacs. It is a
2099 replacement for the older Flymake extension which is part of GNU Emacs, with
2100 many improvements and additional features.
2102 Flycheck provides fully-automatic, fail-safe, on-the-fly background syntax
2103 checking for over 30 programming and markup languages with more than 70
2104 different tools. It highlights errors and warnings inline in the buffer, and
2105 provides an optional IDE-like error list.")
2106 (license license:gpl3+))) ;+GFDLv1.3+ for the manual
2108 (define-public emacs-flymake-collection
2110 (name "emacs-flymake-collection")
2116 (url "https://github.com/mohkale/flymake-collection")
2117 (commit (string-append "v" version))))
2118 (file-name (git-file-name name version))
2121 "1dxy1bljvd8rar0pivdrfahmgnnjlxm0mlks8mzw3l7k7b7jar6k"))))
2122 (build-system emacs-build-system)
2126 #~(modify-phases %standard-phases
2127 (add-after 'unpack 'chdir
2130 (add-after 'chdir 'move-checkers
2132 ;; Move checkers to the top level, which is in the
2134 (for-each (lambda (f)
2135 (rename-file f (basename f)))
2136 (find-files "./checkers" ".*\\.el$")))))))
2137 (home-page "https://github.com/mohkale/flymake-collection/")
2138 (synopsis "Collection of checkers for Flymake")
2140 "This package provides a comprehensive list of diagnostic-functions for
2141 use with Flymake, give users the tools to easily define new syntax checkers
2142 and help selectively enable or disable diagnostic functions based on major
2144 (license license:expat)))
2146 (define-public emacs-flymake-flycheck
2148 (name "emacs-flymake-flycheck")
2149 (version "20210404.2128")
2153 (uri (string-append "https://melpa.org/packages/flymake-flycheck-"
2156 (base32 "1m59ahd5gjlfwf328labwdlpcxh8ywywkwgfrlsy5jyxfc9ss4nv"))))
2157 (build-system emacs-build-system)
2158 (propagated-inputs (list emacs-flycheck))
2159 (home-page "https://github.com/purcell/flymake-flycheck")
2160 (synopsis "Use Flycheck checkers as Flymake backends")
2162 "This package provides support for running any Flycheck checker as a
2163 Flymake diagnostic backend. The effect is that Flymake will control when the
2164 checker runs, and Flymake will receive its errors.")
2165 (license license:gpl3+)))
2167 (define-public emacs-flymake-quickdef
2168 ;; This particular commit includes bug fixes on top of 1.0.0 release.
2169 (let ((version "1.0.0")
2171 (commit "150c5839768a3d32f988f9dc08052978a68f2ad7"))
2173 (name "emacs-flymake-quickdef")
2174 (version (git-version version revision commit))
2179 (url "https://github.com/karlotness/flymake-quickdef")
2181 (file-name (git-file-name name version))
2183 (base32 "19gfd539l97j8xbrq1fw83b54mxbcamlz9m896088d3p01zf8b0g"))))
2184 (build-system emacs-build-system)
2185 (home-page "https://github.com/karlotness/flymake-quickdef")
2186 (synopsis "Quickly define a new Flymake backend")
2188 "This package mainly defines a macro which helps remove some of the
2189 boilerplate code from defining new Flymake backend functions.")
2190 (license license:gpl3+))))
2192 (define-public emacs-flymake-kondor
2194 (name "emacs-flymake-kondor")
2200 (url "https://github.com/turbo-cafe/flymake-kondor")
2202 (file-name (git-file-name name version))
2204 (base32 "1vcl1q07faqqmrryyia36hbgf78g3cs51pbi0bx41yzz779ribvk"))))
2205 (build-system emacs-build-system)
2206 (home-page "https://github.com/turbo-cafe/flymake-kondor")
2207 (synopsis "Linter with clj-kondo")
2208 (description "This package adds Clojure syntax checker clj-kondo.")
2209 (license license:gpl3+)))
2211 (define-public emacs-flymake-shellcheck
2212 ;; No tag, version grabbed from source .el file.
2213 (let ((commit "ac534e9ef15c82ac86ae65fe5004d29dbc8c92c7")
2216 (name "emacs-flymake-shellcheck")
2217 (version (git-version "0.1" revision commit))
2222 (url "https://github.com/federicotdn/flymake-shellcheck")
2224 (file-name (git-file-name name version))
2226 (base32 "04yfb4sy41spjzk9mhm4gy0h8vnjx09p2g6nm1yzgd9a5ph9sqgl"))))
2227 (build-system emacs-build-system)
2230 (modify-phases %standard-phases
2231 (add-after 'unpack 'substitute-shellcheck-path
2232 (lambda* (#:key inputs #:allow-other-keys)
2233 (make-file-writable "flymake-shellcheck.el")
2234 (emacs-substitute-sexps "flymake-shellcheck.el"
2235 ("defcustom flymake-shellcheck-path"
2236 `(or (executable-find "shellcheck")
2237 ,(string-append (assoc-ref inputs "shellcheck")
2238 "/bin/shellcheck")))))))))
2241 (home-page "https://github.com/federicotdn/flymake-shellcheck")
2242 (synopsis "Flymake backend for Bash/Sh powered by ShellCheck")
2244 "This package provides a backend for Flymake to use the
2245 tool ShellCheck for static analyzing @command{bash} and @command{sh}
2247 (license license:gpl3+))))
2249 (define-public emacs-a
2256 (url "https://github.com/plexus/a.el")
2257 (commit (string-append "v" version))))
2258 (file-name (git-file-name name version))
2260 (base32 "0zkv4xvw1jdsfxqqkxskl2l380gfs13n86hj4hhzrqf0sb6aymws"))))
2261 (build-system emacs-build-system)
2262 (home-page "https://github.com/plexus/a.el/")
2264 "Emacs library for dealing with association lists and hash tables")
2265 (description "@code{emacs-a} provides Emacs Lisp functions for dealing
2266 with associative structures in a uniform and functional way. These functions
2267 can take association lists, hash tables, and in some cases vectors (where the
2268 index is considered the key).")
2269 (license license:gpl3+)))
2271 (define-public emacs-ace-jump-mode
2273 (name "emacs-ace-jump-mode")
2275 (home-page "https://github.com/winterTTr/ace-jump-mode")
2280 (commit (string-append "v" version))))
2283 "1bwvzh056ls2v7y26a0s4j5mj582dmds04lx4x6iqihs04ss74bb"))
2284 (file-name (git-file-name name version))))
2285 (build-system emacs-build-system)
2286 (synopsis "Cursor location minor mode for fast navigation")
2287 (description "Ace-jump-mode is a fast/direct cursor location minor
2288 mode. It creates an N-Branch search tree internally and marks all
2289 the possible position with predefined keys in within the whole Emacs
2290 view. This allows you to move to the character, word, or line almost
2292 (license license:gpl3+)))
2294 (define-public emacs-ahg
2295 ;; No tags; commit from 2021-04-12.
2296 (let ((commit "77bc2a628df006dcd2dc359ac12acdf8091a1356")
2300 (version (git-version "1.0.0" revision commit))
2304 (url "https://bitbucket.org/agriggio/ahg")
2306 (file-name (git-file-name name version))
2309 "1wmvz9d40aznqh2y078v8k7n3l66m48vnf873vifi8rwg6158kqh"))))
2310 (build-system emacs-build-system)
2311 (home-page "https://bitbucket.org/agriggio/ahg")
2312 (synopsis "Emacs front-end for the Mercurial SCM")
2314 "This package provides a simple Emacs front-end for the Mercurial
2315 Distributed @acronym{Source Control Management, SCM} system.")
2316 (license license:gpl3+))))
2318 (define-public emacs-alarm-clock
2320 (name "emacs-alarm-clock")
2325 (url "https://github.com/wlemuel/alarm-clock")
2326 (commit (string-append "v" version))))
2327 (file-name (git-file-name name version))
2330 "02gr5scf50js00xa1chvd0j7agr8bys5madzk96fwg0s4gfdmyqa"))))
2331 (build-system emacs-build-system)
2333 (list #:include #~(cons "alarm.mp3" %default-include)
2335 #~(modify-phases %standard-phases
2336 (add-after 'unpack 'configure
2337 (lambda* (#:key inputs #:allow-other-keys)
2338 (let ((mpg123 (search-input-file inputs "/bin/mpg123"))
2340 (search-input-file inputs "/bin/notify-send")))
2341 (substitute* "alarm-clock.el"
2342 (("\"mpg123\"") (string-append "\"" mpg123 "\""))
2343 (("notify-send") notify-send))))))))
2345 (list libnotify mpg123))
2348 (home-page "https://github.com/wlemuel/alarm-clock")
2349 (synopsis "Alarm clock for Emacs")
2350 (description "Alarm Clock provides an alarm clock for Emacs.")
2351 (license license:gpl3+)))
2353 (define-public emacs-anaphora
2355 (name "emacs-anaphora")
2361 (url "https://github.com/rolandwalker/anaphora")
2362 (commit (string-append "v" version))))
2363 (file-name (git-file-name name version))
2366 "11fgiy029sqz7nvdm7dcal95lacryz9zql0x5h05z48nrrcl4bib"))))
2367 (build-system emacs-build-system)
2368 (home-page "https://github.com/rolandwalker/anaphora/")
2369 (synopsis "Anaphoric expressions for Emacs Lisp")
2370 (description "@code{emacs-anaphora} implements anaphoric expressions for
2373 Anaphoric expressions implicitly create one or more temporary variables which
2374 can be referred to during the expression. This technique can improve clarity
2375 in certain cases. It also enables recursion for anonymous functions.")
2376 (license license:public-domain)))
2378 (define-public emacs-xah-fly-keys
2380 (name "emacs-xah-fly-keys")
2381 (version "17.13.20220526011611")
2385 (url "https://github.com/xahlee/xah-fly-keys")
2386 (commit "b1b1ea62c3f1a329376d9125592175cf2027ebc7")))
2387 (file-name (git-file-name name version))
2390 "1gv8d9zgmhzjg6zk2a7y76dz30a3l91xb1p15vldka95faz197wn"))))
2391 (build-system emacs-build-system)
2392 (home-page "http://xahlee.info/emacs/misc/ergoemacs_vi_mode.html")
2393 (synopsis "Modal keybinding system for Emacs, based on command frequency and
2395 (description "xah-fly-keys.el is a modal editing mode for Emacs, like Vi,
2396 but the design of key/command choice is based on command frequency statistics
2397 and ease-of-key score. Most frequently used commands have most easy keys.")
2398 (license license:gpl3)))
2400 (define-public emacs-xr
2407 (uri (string-append "https://elpa.gnu.org/packages/xr-" version ".tar"))
2409 (base32 "1nz3fhd4qx8fxib78y41jvnzn27lf7mlvpkz565d5zc9q4mr300z"))))
2410 (build-system emacs-build-system)
2411 (home-page "https://elpa.gnu.org/packages/xr.html")
2412 (synopsis "Convert string regexp to rx notation")
2414 "This is an inverse companion to the @code{rx} package for translating
2415 regexps in string form to the @code{rx} notation. Its chief uses are:
2418 @item Migrating existing code to @code{rx} form, for better readability and
2420 @item Understanding complex regexp strings and finding errors in them
2423 In addition to Emacs regexps, this package can also parse and troubleshoot
2424 skip set strings, which are arguments to @code{skip-chars-forward} and
2425 @code{skip-chars-backward}.")
2426 (license license:gpl3+)))
2428 (define-public emacs-ample-regexps
2429 (let ((commit "153969ce547afe410b8986f01c9ed4087c9cd20b")
2432 (name "emacs-ample-regexps")
2433 (version (git-version "0.1" revision commit))
2438 (url "https://github.com/immerrr/ample-regexps.el")
2440 (file-name (git-file-name name version))
2443 "0dkp7bcd7h2ds40wyszy11nmh7c2jxrwy04ayz7pbxh53ir7s2k0"))))
2444 (build-system emacs-build-system)
2446 (list emacs-ert-runner))
2449 #:test-command '("ert-runner" "-l" "ample-regexps")))
2450 (home-page "https://github.com/immerrr/ample-regexps.el")
2451 (synopsis "Compose and reuse Emacs regexps")
2453 "This package allows common parts of regexps to be easily picked out
2455 (license license:gpl3+))))
2457 (define-public emacs-airline-themes
2459 (name "emacs-airline-themes")
2465 (url "https://github.com/AnthonyDiGirolamo/airline-themes")
2467 (file-name (git-file-name name version))
2469 (base32 "1jx17g8a6pxkw4zlx3fwhqgxfzcf3019k8fklykamfrkharzsc2l"))))
2470 (build-system emacs-build-system)
2472 (list emacs-powerline))
2473 (home-page "https://github.com/AnthonyDiGirolamo/airline-themes")
2474 (synopsis "Vim-airline themes for Emacs Powerline")
2476 "This is a port of the themes in Vim-airline to Emacs Powerline.")
2477 (license license:expat)))
2479 (define-public emacs-ample-theme
2480 (let ((commit "536966adf882446165a1f756830028faa792c7a9")
2483 (name "emacs-ample-theme")
2484 (version (git-version "0.0.0" revision commit))
2488 (url "https://github.com/jordonbiondo/ample-theme")
2490 (file-name (git-file-name name version))
2493 "07bpv8dag40qjnm5000pgzpazj4whfxf93x2vprz26sg3mjfx0nf"))))
2494 (build-system emacs-build-system)
2495 (home-page "https://github.com/jordonbiondo/ample-theme")
2496 (synopsis "Theme for Emacs providing dark, light, and flat versions")
2497 (description "Ample themes is a collection of three themes sharing a
2498 similar pallet with a light, dark and flat versions with a focus on being easy
2499 on the eyes during night and day. They only support GUI and 256 colour
2501 (license license:gpl3+))))
2503 (define-public emacs-reformatter
2505 (name "emacs-reformatter")
2511 (url "https://github.com/purcell/reformatter.el")
2513 (file-name (git-file-name name version))
2515 (base32 "1dfn7c3gpavpiwd73v2pasd8wd8b62dczhg9iv1cgh8vaqlsf92x"))))
2516 (build-system emacs-build-system)
2517 (home-page "https://github.com/purcell/reformatter.el")
2518 (synopsis "Define commands which run reformatters on the current buffer")
2520 "This library lets elisp authors easily define an idiomatic command to
2521 reformat the current buffer using a command-line program, together with an
2522 optional minor mode which can apply this command automatically on save.")
2523 (license license:gpl3+)))
2525 (define-public emacs-relative-buffers
2526 (let ((release "0.0.1")
2528 (commit "9762fe268e9ff150dcec2e2e45d862d82d5c4008"))
2530 (name "emacs-relative-buffers")
2531 (version (git-version release revision commit))
2536 (url "https://github.com/emacsattic/relative-buffers")
2538 (file-name (git-file-name name version))
2540 (base32 "0fzhwbpyndwrmxip9zlcwkrr675l5pzwcygi45hv7w1hn39w0hxp"))
2543 ;; Delete the Cask test runners.
2544 (for-each delete-file '("Cask" "test/test-helper.el"))))))
2545 (build-system emacs-build-system)
2549 #:test-command #~(list "ert-runner")))
2551 (list emacs-ert-runner))
2553 (list emacs-dash emacs-f emacs-s))
2554 (home-page "https://github.com/emacsattic/relative-buffers")
2555 (synopsis "Minor mode to rename buffers by project structure")
2557 "This package provides a minor mode for renaming buffers according to
2558 project structure. For Python buffers, that will be the whole module name.
2559 For temporary files and directories, that will be the relative path from the
2561 (license license:gpl3+))))
2563 (define-public emacs-relint
2565 (name "emacs-relint")
2570 (uri (string-append "https://elpa.gnu.org/packages/"
2571 "relint-" version ".tar"))
2573 (base32 "0r20dim2r4a4bv0fmgbnq3graa7hhlai55h9qyknapqbr2j1v1h7"))))
2574 (build-system emacs-build-system)
2575 (propagated-inputs (list emacs-xr))
2576 (home-page "https://github.com/mattiase/relint")
2577 (synopsis "Elisp regexp mistake finder")
2579 "Relint (regular expression lint) scans Elisp files for mistakes in
2580 regexps, including deprecated syntax and bad practice. It also checks the
2581 regexp-like arguments to @code{skip-chars-forward} and
2582 @code{skip-chars-backward}.")
2583 (license license:gpl3+)))
2585 (define-public emacs-bug-hunter
2586 (let ((commit "b88d981afa9154b236c5a3a83b50d5889d46c6a7")
2589 (name "emacs-bug-hunter")
2590 (version (git-version "1.3.1" revision commit))
2595 (url "https://github.com/Malabarba/elisp-bug-hunter")
2597 (file-name (git-file-name name commit))
2600 "134fj493sdn93pyyac8rpz1fzahzmayvphsrmqp3wvgysmfqm38l"))))
2601 (build-system emacs-build-system)
2602 (home-page "https://github.com/Malabarba/elisp-bug-hunter")
2603 (synopsis "Hunt down errors by bisecting elisp files")
2605 "The Bug Hunter is an Emacs library that finds the source of an error
2606 or unexpected behavior inside an elisp configuration file (typically
2607 @file{init.el} or @file{.emacs}).")
2608 (license license:gpl3+))))
2615 (define-public emacs-w3m
2616 ;; Emacs-w3m follows a "rolling release" model.
2619 (version "20220508.2259")
2621 ;; "Officially" this is still on cvs.namazu.org, but that repo
2622 ;; seems to be unreachable.
2625 (url "https://github.com/emacs-w3m/emacs-w3m.git")
2626 (commit "bbcebbe20ebfa807a3e4beaadf40ce6f4be213e7")))
2627 (file-name (git-file-name name version))
2630 "0y892n8jaxzyxi1fgyklc7zfh57ibp4yyywmif69dm28hykj6lmz"))))
2631 (build-system gnu-build-system)
2632 (native-inputs (list autoconf texinfo emacs-minimal))
2633 (inputs (list w3m imagemagick))
2636 #:modules '((guix build gnu-build-system)
2637 ((guix build emacs-build-system) #:prefix emacs:)
2639 (guix build emacs-utils))
2640 #:imported-modules `(,@%gnu-build-system-modules
2641 (guix build emacs-build-system)
2642 (guix build emacs-utils))
2644 #~(list (string-append "--with-lispdir=" (emacs:elpa-directory #$output))
2645 (string-append "--with-icondir="
2646 #$output "/share/images/emacs-w3m")
2647 ;; Leave .el files uncompressed, otherwise GC can't
2648 ;; identify run-time dependencies. See
2649 ;; <http://lists.gnu.org/archive/html/guix-devel/2015-12/msg00208.html>
2650 "--without-compress-install")
2651 #:tests? #f ; no check target
2653 #~(modify-phases %standard-phases
2654 (add-after 'unpack 'autoconf
2656 (invoke "autoconf")))
2657 (add-before 'configure 'support-emacs!
2659 ;; For some reason 'AC_PATH_EMACS' thinks that 'Emacs 26' is
2661 (substitute* "configure"
2662 (("EMACS_FLAVOR=unsupported") "EMACS_FLAVOR=emacs"))))
2663 (add-before 'build 'patch-exec-paths
2664 (lambda* (#:key inputs outputs #:allow-other-keys)
2665 (let ((out (assoc-ref outputs "out")))
2666 (make-file-writable "w3m.el")
2667 (emacs-substitute-variables "w3m.el"
2668 ("w3m-command" (search-input-file inputs "/bin/w3m"))
2669 ("w3m-touch-command" (search-input-file inputs "/bin/touch"))
2670 ("w3m-icon-directory"
2671 (string-append out "/share/images/emacs-w3m")))
2672 (make-file-writable "w3m-image.el")
2673 (emacs-substitute-variables "w3m-image.el"
2674 ("w3m-imagick-convert-program"
2675 (search-input-file inputs "/bin/convert"))
2676 ("w3m-imagick-identify-program"
2677 (search-input-file inputs "/bin/identify"))))))
2679 (lambda* (#:key outputs #:allow-other-keys)
2680 (invoke "make" "install" "install-icons")
2681 (with-directory-excursion
2682 (emacs:elpa-directory (assoc-ref outputs "out"))
2683 (for-each delete-file '("ChangeLog" "ChangeLog.1"))
2684 (symlink "w3m-load.el" "w3m-autoloads.el")))))))
2685 (home-page "http://emacs-w3m.namazu.org/")
2686 (synopsis "Simple Web browser for Emacs based on w3m")
2688 "Emacs-w3m is an emacs interface for the w3m web browser.")
2689 (license license:gpl2+)))
2691 (define-public emacs-wget
2698 (uri (string-append "mirror://debian/pool/main/w/wget-el/wget-el_"
2699 version ".orig.tar.gz"))
2701 (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff"))))
2702 (build-system emacs-build-system)
2703 (inputs (list wget))
2705 (list emacs-minimal))
2707 `(#:tests? #f ;no check target
2709 (modify-phases %standard-phases
2710 (add-after 'unpack 'patch-exec-paths
2711 (lambda* (#:key inputs outputs #:allow-other-keys)
2712 (emacs-substitute-variables "wget.el"
2713 ("wget-command" (search-input-file inputs "/bin/wget"))))))))
2714 (home-page "https://www.emacswiki.org/emacs/EmacsWget")
2715 (synopsis "Simple file downloader for Emacs based on wget")
2717 "Emacs-wget is an emacs interface for the wget file downloader.")
2718 (license license:gpl2+)))
2720 (define-public emacs-eww-lnum
2722 (name "emacs-eww-lnum")
2727 (url "https://github.com/m00natic/eww-lnum")
2729 (file-name (git-file-name name version))
2732 "0gs6bi3s2sszc6v2b26929azmn5513kvyin99n4d0ark1jdbjmv2"))))
2733 (build-system emacs-build-system)
2734 (home-page "https://github.com/m00natic/eww-lnum")
2735 (synopsis "Conkeror-like functionality for Eww")
2736 (description "This is extension to the Emacs browser Eww that adds
2737 Conkeror-like functionality. In short, currently visible links, forms,
2738 buttons are temporarily assigned numbers with which the former can be
2739 immediately activated. Also filtering can be applied so selection can be
2740 incrementally confined in Isearch manner.")
2741 (license license:gpl3+)))
2749 (define emacs-emms-print-metadata
2751 (name "emacs-emms-print-metadata")
2756 (uri (string-append "https://elpa.gnu.org/packages/"
2757 "emms-" version ".tar"))
2759 (base32 "048ijrpw6s4k7zr78fzc3ksjjri6mnyp6c47h5lp5nw5gvm4np7a"))))
2760 (build-system gnu-build-system)
2763 #:make-flags #~(list "emms-print-metadata")
2764 #:tests? #f ; No tests.
2766 #~(modify-phases %standard-phases
2770 (install-file "src/emms-print-metadata"
2771 (string-append #$output "/bin"))
2772 (install-file "emms-print-metadata.1"
2773 (string-append #$output "/share/man/man1")))))))
2776 (home-page "https://www.gnu.org/software/emms/")
2777 (synopsis "The Emacs Multimedia System")
2779 "EMMS is the Emacs Multimedia System. It is a small front-end which
2780 can control one of the supported external players. Thus, it supports
2781 whatever formats are supported by your music player. It also
2782 supports tagging and playlist management, all behind a clean and
2783 light user interface.")
2784 (license license:gpl3+)))
2786 (define-public emacs-emms
2788 (inherit emacs-emms-print-metadata)
2790 (build-system emacs-build-system)
2793 (modify-phases %standard-phases
2794 (add-after 'unpack 'set-external-programs
2795 ;; Specify the absolute file names of the various programs
2796 ;; so that everything works out-of-the-box. (tinytag missing)
2797 (lambda* (#:key inputs #:allow-other-keys)
2798 (let ((amixer (search-input-file inputs "/bin/amixer"))
2799 (emms-print-metadata
2800 (search-input-file inputs "/bin/emms-print-metadata"))
2801 (exiftool (search-input-file inputs "/bin/exiftool"))
2802 (metaflac (search-input-file inputs "/bin/metaflac"))
2803 (mp3info (search-input-file inputs "/bin/mp3info"))
2804 (mpg321 (search-input-file inputs "/bin/mpg321"))
2805 (mid3v2 (search-input-file inputs "/bin/mid3v2"))
2806 (ogg123 (search-input-file inputs "/bin/ogg123"))
2807 (ogginfo (search-input-file inputs "/bin/ogginfo"))
2808 (opusinfo (search-input-file inputs "/bin/opusinfo"))
2809 (vorbiscomment (search-input-file inputs "/bin/vorbiscomment")))
2810 (emacs-substitute-variables "emms-player-mpg321-remote.el"
2811 ("emms-player-mpg321-remote-command"
2812 (string-append mpg321 "/bin/mpg321")))
2813 (substitute* "emms-player-simple.el"
2814 (("\"ogg123\"") (string-append "\"" ogg123 "\"")))
2815 (substitute* "emms-player-simple.el"
2816 (("\"mpg321\"") (string-append "\"" mpg321 "\"")))
2817 (emacs-substitute-variables "emms-info-ogginfo.el"
2818 ("emms-info-ogginfo-program-name" ogginfo))
2819 (emacs-substitute-variables "emms-info-opusinfo.el"
2820 ("emms-info-opusinfo-program-name" opusinfo))
2821 (emacs-substitute-variables "emms-info-libtag.el"
2822 ("emms-info-libtag-program-name" emms-print-metadata))
2823 (emacs-substitute-variables "emms-info-mp3info.el"
2824 ("emms-info-mp3info-program-name" mp3info))
2825 (emacs-substitute-variables "emms-info-metaflac.el"
2826 ("emms-info-metaflac-program-name" metaflac))
2827 (emacs-substitute-variables "emms-source-file.el"
2828 ("emms-source-file-gnu-find" (which "find")))
2829 (substitute* "emms-volume-amixer.el"
2830 (("\"amixer\"") (string-append "\"" amixer "\"")))
2831 (substitute* "emms-tag-editor.el"
2832 (("\"mid3v2\"") (string-append "\"" mid3v2 "\""))
2833 (("\"vorbiscomment\"")
2834 (string-append "\"" vorbiscomment "\"")))
2835 (substitute* "emms-info-exiftool.el"
2836 (("\"exiftool\"") (string-append "\"" exiftool "\"")))))))))
2838 (list emacs-emms-print-metadata
2848 (define-public emacs-emms-mode-line-cycle
2850 (name "emacs-emms-mode-line-cycle")
2856 (url "https://github.com/momomo5717/emms-mode-line-cycle")
2858 (file-name (git-file-name name version))
2861 "0q80f0plch6k4lhs8c9qm3mfycfbp3kn5sjrk9zxgxwnn901y9mp"))))
2862 (build-system emacs-build-system)
2865 (home-page "https://github.com/momomo5717/emms-mode-line-cycle")
2866 (synopsis "Display the EMMS mode line as a ticker")
2868 "This is a minor mode for updating the EMMS mode-line string cyclically
2869 within a specified width. It is useful for displaying long track titles.")
2870 (license license:gpl3+)))
2872 (define-public emacs-emprise
2874 (name "emacs-emprise")
2880 (url "https://git.sr.ht/~plattfot/emprise")
2881 (commit (string-append "v" version))))
2884 "0yddvvpjdcgsiwv24jbddkgl5r1lxgz037akjln6z9acx9qrc8px"))
2885 (file-name (git-file-name name version))))
2886 (build-system emacs-build-system)
2887 (home-page "https://sr.ht/~plattfot/emprise")
2888 (synopsis "Control MPRIS supported media players from Emacs")
2889 (description "This package provides a set of commands to control media
2890 players that supports the Media Player Remote Interfacing
2891 Specification (MPRIS) protocol from Emacs. It uses Emacs' Completing Read
2892 framework as the user interface, which integrates well with Vertico or
2894 (license license:gpl3+)))
2896 (define-public emacs-marginalia-emprise
2898 (name "emacs-marginalia-emprise")
2904 (url "https://git.sr.ht/~plattfot/marginalia-emprise")
2905 (commit (string-append "v" version))))
2908 "1kbk3kgvv1k5zdysvpgcsbxiwn4la3vvnmv3sbzxq7q5v5cr4a54"))
2909 (file-name (git-file-name name version))))
2910 (build-system emacs-build-system)
2912 (list emacs-emprise emacs-marginalia))
2913 (home-page "https://sr.ht/~plattfot/emprise/")
2914 (synopsis "Annotate Emprise with Marginalia")
2915 (description "This package provides an annotation function to show
2916 playback status, artist name and title for Emprise using Marginalia.")
2917 (license license:gpl3+)))
2924 (define-public emacs-ace-link
2926 (name "emacs-ace-link")
2932 (url "https://github.com/abo-abo/ace-link")
2934 (file-name (git-file-name name version))
2937 "147dz79vg4ym5wg3d544bw2khdb2j3hr73rw4qfm64wf0q2dj0vk"))))
2938 (build-system emacs-build-system)
2941 (home-page "https://github.com/abo-abo/ace-link")
2942 (synopsis "Quickly follow links in Emacs")
2944 "Currently, to jump to a link in a @code{Info-mode}, @code{help-mode},
2945 @code{woman-mode}, @code{org-mode}, @code{eww-mode}, @code{compilation-mode},
2946 @code{goto-address-mode} buffer, you can tab through the links to select the
2947 one you want. This is an O(N) operation, where the N is the amount of links.
2948 This package turns this into an O(1) operation. It does so by assigning a
2949 letter to each link using avy.")
2950 (license license:gpl3+)))
2952 (define-public emacs-app-launcher
2953 ;; XXX: Upstream did not tag any commit so far. Base version is extracted
2954 ;; from Version keyword.
2955 (let ((commit "d5015e394b0a666a8c7c4d4bdf786266e773b145")
2958 (name "emacs-app-launcher")
2959 (version (git-version "0.1" revision commit))
2964 (url "https://github.com/SebastienWae/app-launcher")
2966 (file-name (git-file-name name version))
2968 (base32 "0l97ajy27awydyd4gc6323wyhpm5vm2db6i0lp5gqaxi9fp7jivp"))))
2969 (build-system emacs-build-system)
2970 (home-page "https://github.com/SebastienWae/app-launcher")
2971 (synopsis "Use Emacs standard completion to launch applications")
2972 (description "This package defines the @code{app-launcher-run-app}
2973 command, which uses Emacs standard completion to select an application
2974 installed on your machine and launch it.")
2975 (license license:gpl3+))))
2977 (define-public emacs-alchemist
2979 (name "emacs-alchemist")
2984 (uri (string-append "https://stable.melpa.org/packages/"
2985 "alchemist-" version ".tar"))
2987 (base32 "0ygwf9d739zqc8dcckw0j0bqkipw7cmxbrx3l281x237a3d384yw"))))
2988 (build-system emacs-build-system)
2990 (list emacs-elixir-mode emacs-dash emacs-company emacs-pkg-info))
2991 (home-page "http://www.github.com/tonini/alchemist.el")
2992 (synopsis "Elixir tooling integration into Emacs")
2994 "This package brings you all the Elixir tooling and power inside your Emacs
2995 editor. It comes with commands to compile, execute and test your code, spawn
2996 an interactive shell, and look up definitions and documentation as well as
2997 code completion and project management support.")
2998 (license license:gpl3+)))
3000 (define-public emacs-auto-sudoedit
3002 (name "emacs-auto-sudoedit")
3008 (url "https://github.com/ncaq/auto-sudoedit")
3009 (commit (string-append "v" version))))
3010 (file-name (git-file-name name version))
3012 (base32 "1rhdvrj2rjbvl7vkb0wcp6krqxcaigl7jk9z8yvhx6s4cm2qli6q"))))
3015 (build-system emacs-build-system)
3016 (home-page "https://github.com/ncaq/auto-sudoedit")
3017 (synopsis "Automatically re-open read-only files with sudo")
3019 "This package automatically reopens a file or directory with
3020 @command{sudo} if it cannot write to it.")
3021 (license license:expat)))
3023 (define-public emacs-read-only-cfg
3024 ;; XXX: Upstream has no tagged release. Version is extracted from keyword
3026 (let ((commit "c128c9412f768adf89ff5c4ad433cf0beab6656a")
3029 (name "emacs-read-only-cfg")
3030 (version (git-version "0.1.0" revision commit))
3035 (url "https://github.com/pfchen/read-only-cfg")
3037 (file-name (git-file-name name version))
3039 (base32 "11zj4ysmacvz82j1siqlcp30i05my20lscls8wkdjl75g9d2b12l"))))
3040 (build-system emacs-build-system)
3041 (home-page "https://github.com/pfchen/read-only-cfg")
3042 (synopsis "Make files read-only based on user configuration")
3044 "Read-only-cfg is an Emacs minor mode that can automatically make files
3045 read-only based on user configuration. User configuration may be prefix
3046 directories or regex patterns.")
3047 (license license:gpl3+))))
3049 (define-public emacs-bbdb
3056 (uri (string-append "https://elpa.gnu.org/packages/"
3057 "bbdb-" version ".tar"))
3059 (base32 "0bf20r5xhxln6z4qp8zrlln0303dkci2ydsr74pxcj08aqgk5xxf"))))
3060 (build-system emacs-build-system)
3062 ;; XXX: The following file cannot be byte-compiled, because et requires
3063 ;; `vm-autoloads', from the VM package, with is neither in Emacs nor
3064 ;; packaged in Guix. So, don't bother for now.
3065 `(#:exclude '("bbdb-vm\\.el")))
3066 (home-page "http://elpa.gnu.org/packages/bbdb.html")
3067 (synopsis "Contact management utility for Emacs")
3069 "BBDB is the Insidious Big Brother Database for GNU Emacs. It provides
3070 an address book for email and snail mail addresses, phone numbers and the
3071 like. It can be linked with various Emacs mail clients (Message and Mail
3072 mode, Rmail, Gnus, MH-E, and VM). BBDB is fully customizable.")
3073 (license license:gpl3+)))
3075 (define-public emacs-bbdb-vcard
3076 ;; No release since Dec 1, 2013.
3077 (let ((version "0.4.1") ;3d79fdb4200a64a043e203a3baac95c936095b52, not tagged
3079 (commit "113c66115ce68316e209f51ebce56de8dded3606"))
3081 (name "emacs-bbdb-vcard")
3082 (version (git-version version revision commit))
3086 (url "https://github.com/tohojo/bbdb-vcard")
3088 (file-name (git-file-name name version))
3091 "1sr5kd2gvw1b4hl147yb60cgx6j730vdnpyr09p7vmpw65hzwlwm"))))
3092 (build-system emacs-build-system)
3093 (propagated-inputs (list emacs-bbdb))
3094 (home-page "https://github.com/tohojo/bbdb-vcard")
3096 "vCard Import and Export for The Insidious Big Brother Database (BBDB)")
3098 "@code{bbdb-vcard.el} imports and exports vCards (version 3.0) as
3099 defined in RFC 2425 and RFC 2426 to/from The Insidious Big Brother Database
3100 (BBDB). Version 2.1 vCards are converted into version 3.0 on import.")
3101 (license license:gpl2+))))
3103 (define-public emacs-beacon
3105 (name "emacs-beacon")
3111 (url "https://github.com/Malabarba/beacon")
3113 (file-name (git-file-name name version))
3116 "0mypzfasclq7bmw0i8hfyp8c1ycd3kdgd5h1faygzh9r0phh7ciy"))))
3117 (build-system emacs-build-system)
3118 (home-page "https://github.com/Malabarba/beacon")
3119 (synopsis "Emacs minor mode creating a light that follows your cursor around")
3121 "Beacon is an Emacs minor-mode. Whenever the window scrolls a light will
3122 shine on top of your cursor so you know where it is.")
3123 (license license:gpl3+)))
3125 (define-public emacs-carp
3126 (let ((commit "17d3d84963434233997626850195f205882bf0df")
3130 (version (git-version "0" revision commit))
3134 (url "https://github.com/carp-lang/carp-emacs")
3138 (base32 "0mn4mg94hzzwb54kikg4c6hvf9ka15f2nz95g0clmn8r0mvkj4d5"))
3139 (file-name (git-file-name name version))))
3140 (build-system emacs-build-system)
3142 (list emacs-clojure-mode emacs-flycheck))
3143 (home-page "https://github.com/carp-lang/carp-emacs")
3144 (synopsis "Emacs support for Carp")
3146 "This package provides syntax highlighting, a minor mode for
3147 listing type errors via Flycheck, as well as REPL support for Carp.")
3148 (license license:asl2.0))))
3150 (define-public emacs-counsel-bbdb
3152 (name "emacs-counsel-bbdb")
3158 (url "https://github.com/redguardtoo/counsel-bbdb")
3160 (file-name (git-file-name name version))
3162 (base32 "1jrj7hx6y518np3xcnarbj0c43lglcf9gww3fhfqp7lzxl9hvi8s"))))
3163 (build-system emacs-build-system)
3164 (propagated-inputs (list emacs-bbdb emacs-ivy))
3165 (home-page "https://github.com/redguardtoo/counsel-bbdb")
3166 (synopsis "Ivy interface for BBDB")
3167 (description "This Ivy extension enables the use of @code{ivy-mode} to input
3168 email addresses from BBDB efficiently. The main functions are:
3170 @item counsel-bbdb-complete-mail to input email addresses;
3171 @item counsel-bbdb-reload' to reload contacts from BBDB database;
3172 @item counsel-bbdb-expand-mail-alias to expand mail alias.
3174 Since @code{counsel-bbdb} is based on @code{ivy-mode}, all Ivy key bindings
3175 are supported. For example, after @samp{C-u M-x counsel-bbdb-complete-mail},
3176 you can press @samp{C-M-n} to input multiple email addresses.")
3177 (license license:gpl3+)))
3179 (define-public emacs-bluetooth
3181 (name "emacs-bluetooth")
3186 (uri (string-append "https://elpa.gnu.org/packages/"
3187 "bluetooth-" version ".tar"))
3189 (base32 "1p10kcim5wqnbj2kiqv6hgjkzznaa48qysnnf8ym90mylsczr70z"))))
3190 (build-system emacs-build-system)
3195 (home-page "https://gitlab.com/rstocker/emacs-bluetooth")
3196 (synopsis "Manage Bluetooth devices using Emacs")
3198 "This package implements basic Bluetooth management functionality, such
3199 as connecting and disconnecting devices, setting properties and aliases,
3200 putting the adapter in discovery mode and controlling its power supply. It
3201 also includes a pairing agent.")
3202 (license license:gpl3+)))
3204 (define-public emacs-aggressive-indent
3206 (name "emacs-aggressive-indent")
3210 (uri (string-append "https://elpa.gnu.org/packages/"
3211 "aggressive-indent-" version ".tar"))
3214 "166jk1z0vw481lfi3gbg7f9vsgwfv8fiyxpkfphgvgcmf5phv4q1"))))
3215 (build-system emacs-build-system)
3216 (home-page "https://elpa.gnu.org/packages/aggressive-indent.html")
3217 (synopsis "Minor mode to aggressively keep your code always indented")
3219 "@code{aggressive-indent-mode} is a minor mode that keeps your code
3220 always indented. It reindents after every change, making it more reliable
3221 than @code{electric-indent-mode}.")
3222 (license license:gpl2+)))
3224 (define-public emacs-gcmh
3225 ;; No tagged release upstream, but the commit below correspond to the 0.2.1
3227 (let ((commit "0089f9c3a6d4e9a310d0791cf6fa8f35642ecfd9"))
3235 (url "https://gitlab.com/koral/gcmh")
3238 (base32 "0yh1ap8phv3x44rp0yr6z884xqw2apanbx4c0acqglvj0gaaqx25"))
3239 (file-name (git-file-name name version))))
3240 (build-system emacs-build-system)
3241 (home-page "https://gitlab.com/koral/gcmh")
3242 (synopsis "Emacs Garbage Collector Magic Hack")
3244 "This package enforces a sneaky @dfn{garbage collector} (GC) strategy
3245 to minimize GC interference with the activity. During normal use a high GC
3246 threshold is set. When idling GC is immediately triggered and a low threshold
3248 (license license:gpl3+))))
3250 (define-public emacs-ctrlf
3252 (name "emacs-ctrlf")
3258 (url "https://github.com/raxod502/ctrlf")
3259 (commit (string-append "v" version))))
3260 (file-name (git-file-name name version))
3262 (base32 "061id540spjycgy2xshj8kwgdngkjinznhx2qp5pmqzzx7z7rpfb"))))
3263 (build-system emacs-build-system)
3264 (home-page "https://github.com/raxod502/ctrlf/")
3265 (synopsis "Single-buffer text search in Emacs")
3266 (description "CTRLF (pronounced @emph{control F}) is an intuitive and
3267 efficient solution for single-buffer text search in Emacs, replacing packages
3268 such as Isearch, Swiper, and helm-swoop. It takes inspiration from the
3269 widely-adopted and battle-tested @samp{Ctrl+F} interfaces in programs such as
3270 web browsers, but follows the flow and keybindings of Isearch.")
3271 (license license:expat)))
3273 (define-public emacs-dhall-mode
3274 ;; There is no proper release. The base version is extracted from the
3275 ;; "Version" keyword in the main file.
3276 (let ((revision "1")
3277 (commit "484bcf8f78f1183ef45c3b04a362bb73690c6b9b"))
3279 (name "emacs-dhall-mode")
3280 (version (git-version "0.1.3" revision commit))
3286 (url "https://github.com/psibi/dhall-mode")
3288 (file-name (git-file-name name version))
3290 (base32 "1wggg8jlzg9rph4jhxp6yiri178rnasbv38838i973kjgqjxrl76"))))
3291 (build-system emacs-build-system)
3293 (list emacs-reformatter))
3294 (home-page "https://github.com/psibi/dhall-mode")
3295 (synopsis "Major mode for working with Dhall configuration language")
3297 "Dhall-mode provides an Emacs Major mode for working with the Dhall
3298 configuration language. It features:
3301 @item Syntax highlighting
3302 @item Multiline support for String
3303 @item Basic indentation, commenting
3304 @item Automatic formatting on save using dhall-format.
3305 @item Error highlighting.
3307 (license license:gpl3+))))
3309 (define-public emacs-link-hint
3310 ;; Last release was in 2015.
3311 (let ((commit "83cd0489b16f013647d0507ef20905a0a91db433")
3314 (name "emacs-link-hint")
3315 (version (git-version "0.1" revision commit))
3320 (url "https://github.com/noctuid/link-hint.el")
3322 (file-name (git-file-name name version))
3325 "0kwaia6i0asr7yqcw1anzq6lf93357cc1fphkvp0llbmxizmkzb3"))))
3326 (build-system emacs-build-system)
3329 (home-page "https://github.com/noctuid/link-hint.el")
3330 (synopsis "Vimperator-style link-hinting in Emacs")
3331 (description "This package provides commands for visiting and acting on
3333 (license license:gpl3+))))
3335 (define-public emacs-ag
3343 (url "https://github.com/Wilfred/ag.el")
3345 (file-name (git-file-name name version))
3347 (base32 "1p918y24vcn2pdliaymd210xp9fvhd4a1srqbv2lfiqrh59yjidx"))))
3348 (build-system emacs-build-system)
3352 #~(modify-phases %standard-phases
3353 (add-after 'unpack 'substitute-ag-path
3354 (lambda* (#:key inputs #:allow-other-keys)
3355 (make-file-writable "ag.el")
3356 (emacs-substitute-variables "ag.el"
3357 ("ag-executable" (search-input-file inputs "/bin/ag")))))
3358 (add-before 'install 'make-info
3360 (with-directory-excursion "docs"
3361 (invoke "make" "info"))))
3362 (add-after 'install 'install-info
3364 (install-file "docs/_build/texinfo/agel.info"
3365 (string-append #$output "/share/info")))))))
3366 (inputs (list the-silver-searcher)) ; 'ag' executable
3368 (list python-sphinx texinfo))
3370 (list emacs-dash emacs-s))
3371 (home-page "https://github.com/Wilfred/ag.el")
3372 (synopsis "Front-end for ag (the-silver-searcher) for Emacs")
3373 (description "This package provides the ability to use the silver
3374 searcher, a code searching tool, sometimes abbreviated to @code{ag}. Features
3375 include version control system awareness, use of Perl compatible regular
3376 expressions, editing the search results directly and searching file names
3377 rather than the contents of files.")
3378 (license license:gpl3+)))
3380 (define-public emacs-aio
3387 (url "https://github.com/skeeto/emacs-aio")
3389 (file-name (git-file-name name version))
3392 "1y7j10j74r3fy0rcb8g3cm9nlls34qb0pz9xkia7psp77syrlz54"))))
3393 (build-system emacs-build-system)
3396 #:test-command '("emacs" "--batch"
3398 "-f" "ert-run-tests-batch-and-exit")))
3400 (list emacs-elfeed emacs-skewer-mode))
3401 (home-page "https://github.com/skeeto/emacs-aio")
3402 (synopsis "Async/Await for Emacs Lisp")
3403 (description "@code{aio} is to Emacs Lisp as @code{asyncio} is to
3404 Python. This package builds upon Emacs generators to provide functions that
3405 pause while they wait on asynchronous events. They do not block any thread
3407 (license license:unlicense)))
3409 (define-public emacs-async
3411 (name "emacs-async")
3412 (home-page "https://github.com/jwiegley/emacs-async")
3418 (commit (string-append "v" version))))
3419 (file-name (git-file-name name version))
3422 "18pysi1pf6hbv6w0nq50j5xclvgd006iqqijh44wck9hxhdwyfr1"))))
3423 (build-system emacs-build-system)
3424 (synopsis "Asynchronous processing in Emacs")
3426 "This package provides the ability to call asynchronous functions and
3427 processes. For example, it can be used to run dired commands (for copying,
3428 moving, etc.) asynchronously using @code{dired-async-mode}. Also it is used
3429 as a library for other Emacs packages.")
3430 (license license:gpl3+)))
3432 (define-public emacs-auctex
3434 (name "emacs-auctex")
3439 (uri (string-append "https://elpa.gnu.org/packages/"
3440 "auctex-" version ".tar"))
3442 (base32 "0pdinnhkv7vqib01a6vxq1iixs7sw72r0sxzryv78c9hxn2k4552"))))
3443 (build-system emacs-build-system)
3444 ;; We use 'emacs' because AUCTeX requires dbus at compile time
3445 ;; ('emacs-minimal' does not provide dbus).
3448 #:include '("\\.el$" "^images/" "^latex/" "\\.info$")
3449 #:exclude '("^tests/" "^latex/README")
3451 (modify-phases %standard-phases
3452 (add-after 'unpack 'configure
3453 (lambda* (#:key inputs #:allow-other-keys)
3454 (emacs-substitute-variables "preview.el"
3455 ("preview-gs-command"
3456 (search-input-file inputs "/bin/gs")))
3457 (substitute* "preview.el"
3459 (let ((dvipng (search-input-file inputs "/bin/dvipng")))
3460 (string-append "\"" dvipng " ")))
3462 (let ((dvips (search-input-file inputs "/bin/dvips")))
3463 (string-append "\"" dvips " ")))
3465 (let ((pdf2dsc (search-input-file inputs "/bin/pdf2dsc")))
3466 (string-append "\"" pdf2dsc " "))))))
3467 (add-after 'install 'install-doc
3468 (lambda* (#:key outputs #:allow-other-keys)
3469 (let* ((out (assoc-ref outputs "out"))
3470 (etc-dir (string-append out "/share/" ,name "/"
3472 (with-directory-excursion "doc"
3473 (setenv "HOME" (getenv "TMPDIR")) ; for mktextfm
3474 (invoke "pdftex" "tex-ref")
3475 (install-file "tex-ref.pdf"
3476 (string-append etc-dir "/refcards")))))))))
3481 (texlive-updmap.cfg (list texlive-amsfonts))))
3482 (home-page "https://www.gnu.org/software/auctex/")
3483 (synopsis "Integrated environment for TeX")
3485 "AUCTeX is a comprehensive customizable integrated environment for
3486 writing input files for TeX, LaTeX, ConTeXt, Texinfo, and docTeX using Emacs
3488 (license license:gpl3+)))
3490 (define-public emacs-autothemer
3492 (name "emacs-autothemer")
3498 (url "https://github.com/sebastiansturm/autothemer")
3500 (file-name (git-file-name name version))
3503 "0jxlfwcfqdjr3da2xzjnigmckarhjbn6b1i1x4pdzb5djjcz00qc"))))
3504 (build-system emacs-build-system)
3507 (home-page "https://github.com/sebastiansturm/autothemer")
3508 (synopsis "Conveniently create Emacs themes")
3510 "Autothemer provides a thin layer on top of @code{deftheme} and
3511 @code{custom-theme-set-faces} that creates a new custom color theme, based on
3512 a set of simplified face specifications and a user-supplied color palette.")
3513 (license license:gpl3+)))
3515 (define-public emacs-howm
3522 (uri (string-append "https://howm.sourceforge.jp/a/"
3523 "howm-" version ".tar.gz"))
3525 (base32 "0i5pfnvy130fzk8w62301vgsqf1y22chwhjgnm5hjxr9y0kw5ii4"))))
3526 (build-system gnu-build-system)
3528 (list emacs-minimal))
3531 (list (string-append "--with-howmdir=" (emacs:elpa-directory %output)))
3532 #:modules ((guix build gnu-build-system)
3533 ((guix build emacs-build-system) #:prefix emacs:)
3535 #:imported-modules (,@%gnu-build-system-modules
3536 (guix build emacs-build-system)
3537 (guix build emacs-utils))
3539 (modify-phases %standard-phases
3540 (add-after 'install 'make-autoloads
3541 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
3542 (home-page "https://howm.osdn.jp/")
3543 (synopsis "Note-taking tool for Emacs")
3544 (description "Howm is a note-taking tool for Emacs. Like
3545 code@{emacs-wiki.el}, it facilitates using hyperlinks and doing full-text
3546 searches. Unlike code@{emacs-wiki.el}, it can be combined with any format.")
3547 (license license:gpl1+)))
3549 (define-public emacs-bm
3557 (url "https://github.com/joodland/bm")
3559 (file-name (git-file-name name version))
3561 (base32 "180b3rc13asrmsdh7v405d54jkrininvaj52xhp71vw91ng51dkn"))))
3562 (build-system emacs-build-system)
3563 (home-page "https://github.com/joodland/bm")
3564 (synopsis "Visual bookmarks for Emacs")
3565 (description "This package provides visible, buffer local bookmarks and
3566 the ability to jump forward and backward to the next bookmark.")
3567 (license license:gpl2+)))
3569 (define-public emacs-calfw
3571 (name "emacs-calfw")
3577 (url "https://github.com/kiwanami/emacs-calfw")
3578 (commit (string-append "v" version))))
3579 (file-name (git-file-name name version))
3582 "0r42cagvmvvib76kd15nd9ix55ys6i549vxnls4z16s864695zpa"))))
3583 (build-system emacs-build-system)
3586 (home-page "https://github.com/kiwanami/emacs-calfw/")
3587 (synopsis "Calendar framework for Emacs")
3589 "This package displays a calendar view with various schedule data in the
3591 (license license:gpl3+)))
3593 (define-public emacs-caml
3600 (uri (string-append "https://elpa.nongnu.org/nongnu/caml-"
3604 "00ldvz6r10vwwmk6f3az534p0340ywn7knsg2bmvbvh3q51vyl9i"))))
3605 (build-system emacs-build-system)
3606 (home-page "https://github.com/ocaml/caml-mode")
3607 (synopsis "Caml mode for GNU Emacs")
3609 "This package provides a major mode for editing OCaml code in Emacs.
3610 Some of its major features include:
3613 @item syntax highlighting (font lock);
3614 @item automatic indentation;
3615 @item querying the type of expressions (using compiler generated annot files);
3616 @item running an OCaml REPL within Emacs;
3617 @item scanning of declarations and placing them in a menu.
3619 (license license:gpl2+)))
3621 (define-public emacs-caps-lock
3623 (name "emacs-caps-lock")
3628 (uri (string-append "https://elpa.gnu.org/packages/"
3629 "caps-lock-" version ".el"))
3631 (base32 "1i4hwam81p4dr0bk8257fkiz4xmv6knkjxj7a00fa35kgx5blpva"))))
3632 (build-system emacs-build-system)
3633 (home-page "http://elpa.gnu.org/packages/caps-lock.html")
3634 (synopsis "Caps Lock as a minor mode")
3636 "This package provides a minor mode to emulate the behavior of a Caps
3638 (license license:gpl3+)))
3640 (define-public emacs-chronometrist
3642 (name "emacs-chronometrist")
3648 (url "https://tildegit.org/contrapunctus/chronometrist")
3649 (commit (string-append "v" version))))
3650 (file-name (git-file-name name version))
3652 (base32 "0qpkpkipmac24m3ng4ahsml3vi15qcvmid3g02pbpgbpc113zfpl"))))
3653 (build-system emacs-build-system)
3657 #~(modify-phases %standard-phases
3658 (add-after 'unpack 'chdir-elisp
3659 ;; Elisp directory is not in root of the source.
3662 (add-after 'install 'install-doc
3663 ;; Documentation consists of several Markdown files.
3665 (let ((doc (string-append #$output
3666 "/share/doc/emacs-chronometrist-"
3668 (with-directory-excursion "../doc"
3669 (for-each (lambda (f) (install-file f doc))
3670 (cons* "../UNLICENSE"
3672 (find-files "." "\\.md$"))))))))))
3674 (list emacs-alert emacs-dash emacs-s emacs-spark emacs-ts))
3675 (home-page "https://github.com/contrapunctus-1/chronometrist")
3676 (synopsis "Time tracker for Emacs")
3677 (description "Chronometrist is a time tracker in Emacs, largely modelled
3678 after the Android application, @emph{A Time Tracker}.
3682 @item Simple and efficient to use,
3683 @item Displays useful information about your time usage,
3684 @item Support for both mouse and keyboard,
3685 @item Human errors in tracking are easily fixed by editing a plain text file,
3686 @item Hooks to let you perform arbitrary actions when starting/stopping tasks.
3688 ;; Software is dual-licensed.
3689 (license (list license:unlicense license:wtfpl2))))
3691 (define-public emacs-citeproc-el
3693 (name "emacs-citeproc-el")
3699 (url "https://github.com/andras-simonyi/citeproc-el")
3701 (file-name (git-file-name name version))
3703 (base32 "0p9gch5iijia5pm9rzlv50xcad2g9mis9mc90nvh31in9xjcccpz"))))
3704 (build-system emacs-build-system)
3706 `(#:emacs ,emacs)) ;need libxml support
3713 emacs-string-inflection))
3714 (home-page "https://github.com/andras-simonyi/citeproc-el")
3715 (synopsis "Citation Style Language (CSL) processor for Emacs")
3717 "Citeproc-el is an Emacs Lisp library for rendering citations
3718 and bibliographies in styles described in the Citation Style
3719 Language (CSL), an XML-based, open format to describe the formatting
3720 of bibliographic references.")
3721 (license license:gpl3+)))
3723 (define-public emacs-corfu
3725 (name "emacs-corfu")
3731 (url "https://github.com/minad/corfu")
3733 (file-name (git-file-name name version))
3735 (base32 "0cv0hcgsw4l8lk3gqwqlw91m4kc2dd80ndx06rg6czd22qdrd68m"))))
3736 (build-system emacs-build-system)
3739 (modify-phases %standard-phases
3740 ;; Move the extensions source files to the top level, which is included
3741 ;; in the EMACSLOADPATH.
3742 (add-after 'unpack 'move-source-files
3744 (let ((el-files (find-files "./extensions" ".*\\.el$")))
3745 (for-each (lambda (f)
3746 (rename-file f (basename f)))
3748 (home-page "https://github.com/minad/corfu")
3749 (synopsis "Completion overlay region function")
3751 "Corfu enhances the default completion in region function with a completion
3752 overlay. The current candidates are shown in a popup overlay below or above
3753 the point. Corfu can be considered the minimalistic
3754 @code{completion-in-region} counterpart of the Vertico minibuffer UI.")
3755 (license license:gpl3+)))
3757 (define-public emacs-corfu-doc
3759 (name "emacs-corfu-doc")
3765 (url "https://github.com/galeo/corfu-doc")
3766 (commit "f9566cf13f6730a45b2f3c12e491a3fa2097e5d5")))
3767 (file-name (git-file-name name version))
3769 (base32 "098yf29yv1b11p7kvdc7n4ra7f5vcmf6nlvhl85jgwqrsdz1795b"))))
3770 (build-system emacs-build-system)
3771 (propagated-inputs (list emacs-corfu))
3772 (home-page "https://github.com/galeo/corfu-doc")
3773 (synopsis "Documentation popup for Corfu")
3775 "The @code{corfu-doc} package provides a way to display a documentation
3776 popup for completion candidates when using @code{emacs-corfu}. It can
3777 be regarded as @code{emacs-company-quickhelp} for @code{emacs-corfu}.")
3778 (license license:gpl3+)))
3780 (define-public emacs-cape
3788 (url "https://github.com/minad/cape")
3790 (file-name (git-file-name name version))
3792 (base32 "1855wi6ghi42ngjq3qyjr3p1nc57s257v9c98wqmb2n6vca5p2lp"))))
3793 (build-system emacs-build-system)
3794 (home-page "https://github.com/minad/cape")
3795 (synopsis "Completion at point extensions for Emacs")
3797 "Cape provides some Completion At Point Extensions, which can be used in
3798 combination with Corfu completion UI or the default completion UI. The
3799 completion backends used by @code{completion-at-point} are so called
3800 @code{completion-at-point-functions} (Capfs). In principle, the Capfs
3801 provided by Cape can also be used by Company.")
3802 (license license:gpl3+)))
3804 (define-public emacs-direnv
3806 (name "emacs-direnv")
3812 (url "https://github.com/wbolster/emacs-direnv")
3814 (file-name (git-file-name name version))
3816 (base32 "0cf5npgksl9a03mnfdhfdhlf46gr9qz9adjxz3dbckq9b1vl0dfc"))))
3817 (build-system emacs-build-system)
3820 (modify-phases %standard-phases
3821 (add-after 'unpack 'patch-in-direnv
3822 (lambda* (#:key inputs #:allow-other-keys)
3823 (let ((direnv (search-input-file inputs "/bin/direnv")))
3824 (substitute* "direnv.el"
3825 (("\"direnv\"") (string-append "\"" direnv "\"")))))))))
3829 (list emacs-dash emacs-with-editor))
3830 (home-page "https://github.com/wbolster/emacs-direnv")
3831 (synopsis "Direnv integration for Emacs")
3833 "This package provides support for invoking direnv to get the environment
3834 for the current file and updating the environment within Emacs to match.
3836 Direnv can be invoked manually, and a global minor mode is included that will
3837 update the environment when the active buffer changes.
3839 Using emacs-direnv means that programs started from Emacs will use the
3840 environment set through Direnv.")
3841 (license license:gpl3+)))
3843 (define-public emacs-elf-mode
3845 (name "emacs-elf-mode")
3852 (url "https://github.com/abo-abo/elf-mode")
3854 (file-name (git-file-name name version))
3856 (base32 "0cbvjbk2893ag1iy8ggixpirfiyhssm7fii96hb9jqdz874cdl0k"))))
3857 (build-system emacs-build-system)
3858 (home-page "https://github.com/abo-abo/elf-mode")
3859 (synopsis "Show symbol list when opening a binary file in Emacs")
3860 (description "This Emacs package provides a command showing the symbols
3861 that the binary uses instead of the actual binary contents.")
3862 (license license:gpl3+)))
3864 (define-public emacs-org-fc
3865 (let ((commit "f64b5336485a42be91cfe77850c02a41575f5984")
3868 (name "emacs-org-fc")
3869 (version (git-version "0.1.0" revision commit))
3874 (url "https://git.sr.ht/~l3kn/org-fc")
3876 (file-name (git-file-name name version))
3878 (base32 "1d0a3vr09zkplclypcgpfbfd6r0h0i3g3zsqb4pcz6x239d59gd5"))))
3879 (build-system emacs-build-system)
3882 #:include #~(cons* "\\.awk$" "\\.org$" %default-include)
3883 #:exclude #~(cons "^tests/" %default-exclude)
3885 #:test-command #~(list "emacs" "--batch"
3888 "-l" "tests/org-fc-filter-test.el"
3889 "-l" "tests/org-fc-indexer-test.el"
3890 "-l" "tests/org-fc-review-data-test.el"
3891 "-f" "ert-run-tests-batch-and-exit")
3893 #~(modify-phases %standard-phases
3894 (add-after 'unpack 'qualify-paths
3895 (lambda* (#:key inputs #:allow-other-keys)
3896 (let ((find (search-input-file inputs "/bin/find"))
3897 (gawk (search-input-file inputs "/bin/gawk"))
3898 (xargs (search-input-file inputs "/bin/xargs")))
3899 (substitute* "org-fc-awk.el"
3900 (("\"find ") (string-append "\"" find " "))
3901 (("\"gawk ") (string-append "\"" gawk " "))
3902 (("\"xargs ") (string-append "\"" xargs " ")))))))))
3903 (inputs (list findutils gawk))
3904 (propagated-inputs (list emacs-hydra))
3905 (home-page "https://www.leonrische.me/fc/index.html")
3906 (synopsis "Spaced repetition system for Emacs Org mode")
3908 "Org-fc is a spaced-repetition system for Emacs' Org mode.
3909 It allows you to mark headlines in a file as flashcards, turning pieces of
3910 knowledge you want to learn into a question-answer test. These cards are
3911 reviewed at regular interval. After each review, the next review interval is
3912 calculated based on how well you remembered the contents of the card.")
3913 (license license:gpl3+))))
3915 (define-public emacs-font-lock-studio
3916 (let ((commit "12c35967b31233e06946c70627aa3152dacfe261")
3919 (name "emacs-font-lock-studio")
3920 (version (git-version "0.0.7" revision commit))
3925 (url "https://github.com/Lindydancer/font-lock-studio")
3926 (commit "12c35967b31233e06946c70627aa3152dacfe261")))
3927 (file-name (git-file-name name version))
3929 (base32 "0q0s6f5vi3sfifj7vq2nnsmgyyivp1sd3idk32858md5ri71qif0"))))
3930 (build-system emacs-build-system)
3931 (home-page "https://github.com/Lindydancer/font-lock-studio")
3932 (synopsis "Interactive debugger for Font Lock keywords")
3934 "Font Lock Studio is an interactive debugger for Emacs syntax highlighting
3935 rules, also called Font Lock keywords. It can @emph{single-step} Font Lock
3936 keywords -- matchers, highlights, and anchored rules, to see what happens when
3937 a buffer is fontified. Breakpoints can be set on or inside rules. When
3938 inside a rule, matches are visualized using a palette of background colors.
3939 The explainer can describe a rule in plain-text English. Finally, tight
3940 integration with Edebug allows stepping into Lisp expressions that are part of
3941 the Font Lock keywords.")
3942 (license license:gpl3+))))
3944 (define-public emacs-form-feed
3946 (name "emacs-form-feed")
3952 (url "https://depp.brause.cc/form-feed.git")
3954 (file-name (git-file-name name version))
3956 (base32 "10mcj4x2fjq0ikq9adkd72k9zp6caqib628bmj8d67wwabvzj6mk"))))
3957 (build-system emacs-build-system)
3958 (home-page "https://depp.brause.cc/form-feed")
3959 (synopsis "Display ^L glyphs as horizontal lines")
3961 "This package provides a minor mode @code{form-feed-mode} to display page
3962 delimiters which usually appear as ^L glyphs on a single line as horizontal
3963 lines spanning the entire window. The minor mode is suitable for inclusion
3964 into mode hooks and is intended to be used that way.")
3965 (license license:gpl3+)))
3967 (define-public emacs-ggtags
3969 (name "emacs-ggtags")
3974 (uri (string-append "https://elpa.gnu.org/packages/ggtags-"
3978 "0p79x9g94jynl83ndvqp9349vhgkzxzhnc517r8hn44iqxqf6ghg"))))
3979 (build-system emacs-build-system)
3984 (modify-phases %standard-phases
3985 (add-after 'unpack 'configure
3986 (lambda* (#:key inputs #:allow-other-keys)
3987 (chmod "ggtags.el" #o644)
3988 (emacs-substitute-variables "ggtags.el"
3989 ("ggtags-executable-directory"
3990 (dirname (search-input-file inputs "bin/global")))))))))
3991 (home-page "https://github.com/leoliu/ggtags")
3992 (synopsis "Frontend to the GNU Global source code tagging system")
3993 (description "@code{ggtags} provides a frontend to the GNU Global source
3994 code tagging system.
3999 @item Build on @code{compile.el} for asynchronicity and its large feature-set.
4000 @item Automatically update Global's tag files when needed with tuning for
4002 @item Intuitive navigation among multiple matches with mode-line display of
4003 current match, total matches and exit status.
4004 @item Read tag with completion.
4005 @item Show definition at point.
4006 @item Jump to #include files.
4007 @item Support search history and saving a search to register/bookmark.
4008 @item Query replace.
4009 @item Manage Global's environment variables on a per-project basis.
4010 @item Highlight (definition) tag at point.
4011 @item Abbreviated display of file names.
4012 @item Support all Global search backends: @code{grep}, @code{idutils}, etc.
4013 @item Support exuberant ctags @url{http://ctags.sourceforge.net/} and
4014 @code{pygments} backend.
4015 @item Support all Global's output formats: @code{grep}, @code{ctags-x},
4017 @item Support projects on remote hosts (e.g. via @code{tramp}).
4018 @item Support eldoc.
4019 @item Search @code{GTAGSLIBPATH} for references and symbols.
4021 (license license:gpl3+)))
4023 (define-public emacs-go-mode
4024 ;; XXX: Upstream did not tag last release. The commit below matches version
4026 (let ((commit "3273fcece5d9ab7edd4f15b2d6bce61f4e5a0666"))
4028 (name "emacs-go-mode")
4033 (url "https://github.com/dominikh/go-mode.el")
4035 (file-name (git-file-name name version))
4038 "00qzn136d8cl3szbi44xf3iiv75r6n1m7wwgldmzn4i5mpz8dbq7"))))
4042 #:test-command #~(list "ert-runner")
4044 #~(modify-phases %standard-phases
4045 (add-before 'check 'fix-tests
4046 ;; Two tests fail because they (wrongly) assume we run them from
4047 ;; the "test" sub-directory. Fix their expectations.
4049 (let ((test-file "test/go-indentation-test.el"))
4050 (make-file-writable test-file)
4051 (substitute* test-file
4052 (("testdata/indentation_tests/" all)
4053 (string-append "test/" all)))))))))
4054 (build-system emacs-build-system)
4055 (native-inputs (list emacs-ert-runner))
4056 (home-page "https://github.com/dominikh/go-mode.el")
4057 (synopsis "Go mode for Emacs")
4059 "This package provides go-mode, an Emacs mode for working with software
4060 written in the Go programming language.")
4061 (license license:bsd-3))))
4063 (define-public emacs-google-maps
4064 ;; There has been no new release tag since 2013.
4065 (let ((commit "2eb16ff609f5a9f8d02c15238a111fbb7db6c146")
4068 (name "emacs-google-maps")
4069 (version (git-version "1.0.0" revision commit))
4074 (url "https://github.com/jd/google-maps.el")
4076 (file-name (git-file-name name version))
4078 (base32 "1bl0dnksbf14d0xcnvdy9qpvzc5c8jwkxpmfvgayj6djikxnw2md"))))
4079 (build-system emacs-build-system)
4080 (home-page "https://github.com/jd/google-maps.el")
4081 (synopsis "Access Google Maps from Emacs")
4082 (description "The @code{google-maps} package displays Google Maps
4083 directly inside Emacs. It requires a Google Map Static API key to function.")
4084 (license license:gpl3+))))
4086 (define-public emacs-graphviz-dot-mode
4088 (name "emacs-graphviz-dot-mode")
4094 (url "https://github.com/ppareit/graphviz-dot-mode")
4095 (commit (string-append "v" version))))
4096 (file-name (git-file-name name version))
4098 (base32 "1v1p85wk73nfsvv66qf90flgf9dqhmv15z1r7q4zmc4ifklqn08m"))))
4099 (build-system emacs-build-system)
4103 #~(modify-phases %standard-phases
4104 (add-before 'install 'make-info
4105 (lambda* (#:key inputs #:allow-other-keys)
4106 (with-directory-excursion "texinfo"
4107 (substitute* "Makefile"
4108 (("\\/usr\\/bin\\/gzip")
4109 (search-input-file inputs "/bin/gzip")))
4113 (string-append "TEXINFODIR="
4114 #$(this-package-native-input "texinfo")
4116 (add-after 'install 'install-info
4118 (let ((info (string-append #$output "/share/info")))
4119 (install-file "texinfo/graphviz-dot-mode.info.gz" info)))))))
4121 (list gzip texinfo))
4123 (list emacs-company))
4124 (home-page "http://ppareit.github.com/graphviz-dot-mode")
4125 (synopsis "Major mode for editing Graphviz DOT files")
4127 "This Emacs package helps you to create @file{.dot} or @file{.gv} files
4128 using the DOT syntax, and use Graphviz to convert these files to diagrams.")
4129 (license license:gpl2+)))
4131 (define-public emacs-imenu-list
4132 (let ((commit "b50222378412fbe321622a84cb2b036e084c697a")
4136 (name "emacs-imenu-list")
4137 (version (git-version version revision commit))
4143 (url "https://github.com/bmag/imenu-list")
4145 (file-name (git-file-name name version))
4147 (base32 "1936dd41fa05ndzf2bwhllvjz97iz0rflkazjipr7dvz5q072wj2"))))
4148 (build-system emacs-build-system)
4149 (home-page "https://github.com/bmag/imenu-list")
4151 "Automatically tracks the current buffer's imenu entries")
4153 "This Emacs minor mode creates an automatically updated buffer called
4154 @code{*Ilist*} that is populated with the current buffer's imenu entries.
4155 This buffer is typically shown as a sidebar (Emacs vertically splits the
4157 (license license:gpl3+))))
4159 (define-public emacs-mmm-mode
4161 (name "emacs-mmm-mode")
4166 (uri (string-append "https://elpa.gnu.org/packages/"
4167 "mmm-mode-" version ".tar"))
4169 (base32 "12fss1ccb66xc87m5wpr3vg7bfrzz5m0q6s7pa0avvhsm2f8r2yh"))))
4170 (build-system emacs-build-system)
4171 (home-page "https://github.com/purcell/mmm-mode")
4172 (synopsis "Allow multiple major modes in an Emacs buffer")
4174 "MMM Mode is a minor mode that allows multiple major modes to coexist in
4176 (license license:gpl3+)))
4178 (define-public emacs-mmt
4186 (url "https://github.com/mrkkrp/mmt")
4188 (file-name (git-file-name name version))
4190 (base32 "13vbfc5597v0gd87qyhn10f93nb477vjpg3jlpphbax9fvkf4gav"))))
4191 (build-system emacs-build-system)
4192 (home-page "https://github.com/mrkkrp/mmt")
4193 (synopsis "Classic tools to write Emacs Lisp macros")
4194 (description "Emacs MMT is a package that contains classic tools for Emacs
4195 Lisp developers who want to write macros with convenience.")
4196 (license license:gpl3+)))
4198 (define-public emacs-tablist
4200 (name "emacs-tablist")
4205 (url "https://github.com/politza/tablist")
4206 (commit (string-append "v" version))))
4207 (file-name (git-file-name name version))
4210 "0pzsdg0rm59daw34ppss79cg05z9wnr8nkmdcc48nkd0p69ip2yy"))))
4211 (build-system emacs-build-system)
4212 (home-page "https://github.com/politza/tablist")
4213 (synopsis "Extension for @code{tabulated-list-mode}")
4214 (description "Tablist is the Emacs package that provides several
4215 additional features to @code{tabulated-list-mode}: it adds marks,
4216 filters, new key bindings and faces. It can be enabled by
4217 @code{tablist-mode} or @code{tablist-minor-mode} commands.")
4218 (license license:gpl3+)))
4220 (define-public emacs-djvu
4227 (uri (string-append "https://elpa.gnu.org/packages/"
4228 "djvu-" version ".tar"))
4230 (base32 "0i7xwgg2fxndy81lnng6fh9iknals8xvx4f1nmxq7c099bzwb57c"))))
4231 (build-system emacs-build-system)
4232 (inputs (list djview djvulibre))
4236 #~(modify-phases %standard-phases
4237 (add-after 'unpack 'configure
4238 (lambda* (#:key inputs #:allow-other-keys)
4239 (let ((file "djvu.el"))
4240 ;; Specify the absolute executable locations.
4241 (make-file-writable file)
4245 (search-input-file inputs "/bin/djvused")
4249 (search-input-file inputs "/bin/djvm")
4253 (search-input-file inputs "/bin/ddjvu")
4255 (emacs-substitute-variables file
4256 ("djvu-djview-command"
4257 (search-input-file inputs "/bin/djview")))))))))
4258 (home-page "http://elpa.gnu.org/packages/djvu.html")
4259 (synopsis "Edit and view Djvu files via djvused")
4261 "This package is a front end for the command-line program djvused from
4262 DjVuLibre, see @url{http://djvu.sourceforge.net/}.")
4263 (license license:gpl3+)))
4265 (define-public emacs-djvu3
4266 ;; Commit from 2021-06-03.
4267 (let ((commit "37b675be1d4d436cdd0c3b5d3f13e88b59a7bf18")
4270 (name "emacs-djvu3")
4271 ;; `Version:' header says 1.0
4272 (version (git-version "1.0" revision commit))
4277 (url "https://github.com/dalanicolai/djvu3")
4279 (file-name (git-file-name name version))
4282 "0p0izjrgbayx5ybk1n6db5hbrjv9d4kpn57w4iyxdm3h96sp9cmr"))))
4284 (list emacs-djvu emacs-tablist))
4285 (build-system emacs-build-system)
4286 (home-page "https://github.com/dalanicolai/djvu3")
4287 (synopsis "Extend djvu.el to display annotations and more")
4288 (description "This package extends @code{emacs-djvu} with annotation
4289 rendering features and a fast occur search feature using @code{svg.el}.
4291 Other features include:
4294 @item clickable links
4295 @item marker extension to @code{svg.el} for providing arrowheads (or other
4297 @item a quite fancy keyboard annotation function
4298 @item an @code{imenu} index function to enable imenu navigation
4299 @item document restore function to open the document at the last location of
4300 the previous session
4302 (license license:gpl3+))))
4304 (define-public emacs-pabbrev
4306 (name "emacs-pabbrev")
4311 (uri (string-append "https://elpa.gnu.org/packages/"
4312 "pabbrev-" version ".tar"))
4314 (base32 "0iydz8yz866krxv1qv32k88w4464xpymh0wxgrxv6nvniwvhvd0s"))))
4315 (build-system emacs-build-system)
4316 (home-page "http://elpa.gnu.org/packages/pabbrev.html")
4317 (synopsis "Predictive abbreviation expansion")
4319 "The code provides a abbreviation expansion for Emacs. It is
4320 fairly similar to Dabbrev expansion, which works based on the contents
4321 of the current buffer (or other buffers).
4323 Predictive abbreviation expansion works based on the previously
4324 written text. Unlike dynamic abbreviation, the text is analysed
4325 during idle time, while Emacs is doing nothing else.")
4326 (license license:gpl3+)))
4328 (define-public emacs-pdf-tools
4330 (name "emacs-pdf-tools")
4336 (url "https://github.com/vedang/pdf-tools")
4337 (commit (string-append "v" version))))
4338 (file-name (git-file-name name version))
4340 (base32 "1idazz46zx2q84di4p73770l4bcnai2a03q95psg827ykdnmjwij"))))
4341 (build-system gnu-build-system)
4343 `(#:tests? #f ; there are no tests
4344 #:modules ((guix build gnu-build-system)
4345 ((guix build emacs-build-system) #:prefix emacs:)
4347 (guix build emacs-utils))
4348 #:imported-modules (,@%gnu-build-system-modules
4349 (guix build emacs-build-system)
4350 (guix build emacs-utils))
4352 (modify-phases %standard-phases
4353 ;; Build server side using 'gnu-build-system'.
4354 (add-after 'unpack 'enter-server-dir
4355 (lambda _ (chdir "server")))
4356 (add-after 'enter-server-dir 'autogen
4358 (invoke "bash" "autogen.sh")))
4359 ;; Build emacs side using 'emacs-build-system'.
4360 (add-after 'compress-documentation 'enter-lisp-dir
4361 (lambda _ (chdir "../lisp")))
4362 (add-after 'enter-lisp-dir 'emacs-patch-variables
4363 (lambda* (#:key outputs #:allow-other-keys)
4364 (for-each make-file-writable (find-files "."))
4366 ;; Set path to epdfinfo program.
4367 (emacs-substitute-variables "pdf-info.el"
4368 ("pdf-info-epdfinfo-program"
4369 (string-append (assoc-ref outputs "out")
4371 ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto
4372 ;; upgrading" that pdf-tools tries to perform.
4373 (emacs-substitute-variables "pdf-tools.el"
4374 ("pdf-tools-handle-upgrades" '()))))
4375 (add-after 'emacs-patch-variables 'emacs-expand-load-path
4376 (assoc-ref emacs:%standard-phases 'expand-load-path))
4377 (add-after 'emacs-expand-load-path 'emacs-add-install-to-native-load-path
4378 (assoc-ref emacs:%standard-phases 'add-install-to-native-load-path))
4379 (add-after 'emacs-add-install-to-native-load-path 'emacs-install
4380 (assoc-ref emacs:%standard-phases 'install))
4381 (add-after 'emacs-install 'emacs-build
4382 (assoc-ref emacs:%standard-phases 'build))
4383 (add-after 'emacs-install 'emacs-make-autoloads
4384 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
4386 (list autoconf automake emacs-minimal pkg-config))
4388 (list cairo glib libpng poppler zlib))
4390 (list emacs-tablist))
4391 (home-page "https://github.com/vedang/pdf-tools")
4392 (synopsis "Emacs support library for PDF files")
4394 "PDF Tools is, among other things, a replacement of DocView for PDF
4395 files. The key difference is that pages are not pre-rendered by
4396 e.g. ghostscript and stored in the file-system, but rather created on-demand
4397 and stored in memory.")
4398 (license license:gpl3+)))
4400 (define-public emacs-saveplace-pdf-view
4402 (name "emacs-saveplace-pdf-view")
4408 (url "https://github.com/nicolaisingh/saveplace-pdf-view")
4409 (commit (string-append "saveplace-pdf-view-" version))))
4410 (file-name (git-file-name name version))
4412 (base32 "0i03qb6qc2agp9s5s7l08f1wl8anqndh6xshg1c3w357vd1whv7i"))))
4413 (build-system emacs-build-system)
4414 (home-page "https://github.com/nicolaisingh/saveplace-pdf-view")
4415 (synopsis "Save place in pdf-view buffers for Emacs")
4417 "This package extends the built-in Save-Place mode by adding support for
4418 PDF view (see @code{emacs-pdf-tools}). This package will store the
4419 place (e.g., the current page and zoom) of PDF buffers under PDFView mode or
4420 DocView mode, and revisiting those PDF files later using the same mode will
4421 restore the saved place.")
4422 (license license:gpl3+)))
4424 (define-public emacs-pdfgrep
4425 ;; XXX: Upstream does not tag releases. The commit below matches latest
4427 (let ((commit "e250376d97fc5240e07d81108bbca9b5a9ab50f4"))
4429 (name "emacs-pdfgrep")
4435 (url "https://github.com/jeremy-compostella/pdfgrep")
4437 (file-name (git-file-name name version))
4439 (base32 "17yqvvgkgxmcl8nc0mb9yaz884zcdnz7dwvfi4mxjzp1l05fvwjk"))))
4440 (build-system emacs-build-system)
4443 #~(modify-phases %standard-phases
4444 (add-after 'unpack 'patch-pdfgrep-path
4445 (lambda* (#:key inputs #:allow-other-keys)
4446 (make-file-writable "pdfgrep.el")
4447 (emacs-substitute-variables "pdfgrep.el"
4449 (search-input-file inputs "bin/pdfgrep"))))))))
4450 (inputs (list pdfgrep))
4451 (home-page "https://github.com/jeremy-compostella/pdfgrep")
4452 (synopsis "Emacs module providing @code{grep} comparable facilities but
4455 "pdfgrep is a GNU/Emacs module providing @code{grep} comparable
4456 facilities but for PDF files. Its usage is similar to the @code{grep}
4457 function. For example, using the @code{next-error} function gets you to the
4458 next matching page.")
4459 (license license:gpl3+))))
4461 (define-public emacs-dash
4468 (url "https://github.com/magnars/dash.el")
4470 (file-name (git-file-name name version))
4473 "0z6f8y1m9amhg427iz1d4xcyr6n0kj5w7kmiz134p320ixsdnzd8"))))
4474 (build-system emacs-build-system)
4478 #~(modify-phases %standard-phases
4479 (add-after 'unpack 'disable-byte-compile-error-on-warn
4481 (substitute* "Makefile"
4482 (("\\(setq byte-compile-error-on-warn t\\)")
4483 "(setq byte-compile-error-on-warn nil)")))))))
4484 (home-page "https://github.com/magnars/dash.el")
4485 (synopsis "Modern list library for Emacs")
4486 (description "This package provides a modern list API library for Emacs.")
4487 (license license:gpl3+)))
4489 (define-public emacs-bui
4496 (url "https://notabug.org/alezost/emacs-bui.git")
4497 (commit (string-append "v" version))))
4498 (file-name (git-file-name name version))
4501 "0sszdl4kvqbihdh8d7mybpp0d8yw2p3gyiipjcxz9xhvvmw3ww4x"))))
4502 (build-system emacs-build-system)
4505 (home-page "https://notabug.org/alezost/emacs-bui")
4506 (synopsis "Buffer interface library for Emacs")
4508 "BUI (Buffer User Interface) is a library for making @code{list} and
4509 @code{info} interfaces to display an arbitrary data of the same
4510 type, for example: packages, buffers, files, etc.")
4511 (license license:gpl3+)))
4513 (define-public emacs-guix
4514 (let ((commit "cf5b7a402ea503c3dcda85a86b9a6c6dd01896e0")
4518 (version (git-version "0.5.2" revision commit))
4522 (url "https://git.savannah.gnu.org/git/guix/emacs-guix.git")
4524 (file-name (git-file-name name version))
4527 "0wxiipgv91rlk9bhspx370rykywi52rxg5m1f7680vzs3ckc7nyd"))))
4528 (build-system gnu-build-system)
4531 #:modules '((guix build gnu-build-system)
4532 ((guix build emacs-build-system) #:prefix emacs:)
4534 #:imported-modules `(,@%gnu-build-system-modules
4535 (guix build emacs-build-system)
4536 (guix build emacs-utils))
4538 #~(list (string-append "--with-lispdir="
4539 (emacs:elpa-directory #$output)))
4541 #~(modify-phases %standard-phases
4542 (add-after 'unpack 'expand-load-path
4544 ((assoc-ref emacs:%standard-phases 'expand-load-path)
4545 #:prepend-source? #f))))))
4547 (list autoconf automake emacs-minimal pkg-config texinfo))
4549 (list (lookup-package-input guix "guile")
4559 (home-page "https://guix.gnu.org")
4560 (synopsis "Emacs interface for GNU Guix")
4562 "Emacs-Guix provides a visual interface, tools and features for the GNU
4563 Guix package manager. Particularly, it allows you to do various package
4564 management tasks from Emacs. To begin with, run @code{M-x guix-about} or
4565 @code{M-x guix-help} command.")
4566 (license license:gpl3+))))
4568 (define-public emacs-build-farm
4570 (name "emacs-build-farm")
4575 (url "https://notabug.org/alezost/emacs-build-farm.git")
4576 (commit (string-append "v" version))))
4577 (file-name (git-file-name name version))
4580 "0i0bwbav5861j2y15j9nd5m9rdqg9q97zgcbld8pivr9nyxy63lz"))))
4581 (build-system emacs-build-system)
4583 (list emacs-bui emacs-magit-popup))
4584 (home-page "https://notabug.org/alezost/emacs-build-farm")
4585 (synopsis "Emacs interface for Hydra and Cuirass build farms")
4587 "This Emacs package provides an interface for Hydra and
4588 Cuirass (build farms used by Nix and Guix). It allows you to look at
4589 various data related to the build farm projects, jobsets, builds and
4590 evaluations. The entry point is @code{M-x build-farm} command.")
4591 (license license:gpl3+)))
4593 (define-public emacs-d-mode
4595 (name "emacs-d-mode")
4601 (url "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
4603 (file-name (git-file-name name version))
4605 (base32 "0mwd412d2kha8avkyhvvkh8r7an859xk18f7phgx7kj989pr3xkr"))))
4606 (build-system emacs-build-system)
4608 (list emacs-undercover))
4609 (home-page "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
4610 (synopsis "Emacs major mode for editing D code")
4611 (description "This package provides an Emacs major mode for highlighting
4612 code written in the D programming language.")
4613 (license license:gpl2+)))
4615 (define-public emacs-extempore-mode
4616 ;; Use the latest commit at time of packaging. There are no releases or tags.
4617 (let ((commit "09518ae6650d7be33a4633a4c0f31b7130d04c6e")
4620 (name "emacs-extempore-mode")
4621 (version (git-version "0.0.0" revision commit))
4626 (url "https://github.com/extemporelang/extempore-emacs-mode")
4628 (file-name (git-file-name name version))
4630 (base32 "0hfza9lzdsz94gxhmzyp9fwviscv19rmnjgd0q613faayn11sjsp"))))
4631 (build-system emacs-build-system)
4632 (home-page "https://github.com/extemporelang/extempore-emacs-mode")
4633 (synopsis "Emacs major mode for Extempore source files")
4635 "This package provides a major mode for editing Extempore code. It can
4636 create an Extempore REPL, connect the current @code{extempore-mode} buffer to a
4637 running Extempore process, and more.")
4638 (license license:bsd-2))))
4640 (define-public emacs-external-completion
4642 (name "emacs-external-completion")
4647 "https://elpa.gnu.org/packages/external-completion-" version
4651 "12pddwp5jby2icshj77w4kwxv75zi00jdxw18f721d7zx3l7q668"))))
4652 (build-system emacs-build-system)
4653 (home-page "https://elpa.gnu.org/packages/external-completion.html")
4654 (synopsis "Let external tools control Emacs completion style")
4656 "The @code{external} completion style is used with a ``programmable
4657 completion'' table that gathers completions from an external tool such as
4658 a shell utility, an inferior process, an HTTP server. The table and external
4659 tool are fully in control of the matching of the pattern string to the
4660 potential candidates of completion. When @code{external} is in use, the usual
4661 styles configured by the user or other in @code{completion-styles} are
4662 ignored. This compromise is for speed: all other styles need the full data
4663 set to be available in Emacs addressing space, which is often slow if not
4664 completely unfeasible.")
4665 (license license:gpl3+)))
4667 (define-public emacs-kakoune
4668 ;; Package has no release. Version is extracted from "Version:" keyword in
4670 (let ((commit "d73d14e69ea38076af50cc69f846808383ff539d")
4673 (name "emacs-kakoune")
4674 (version (git-version "0.1" revision commit))
4679 (url "https://github.com/jmorag/kakoune.el")
4681 (file-name (git-file-name name version))
4683 (base32 "0nk6jdy1y5mc3ryd0smiqghrk6iv34d5grc7f7migmshlbq0np92"))))
4684 (build-system emacs-build-system)
4686 (list emacs-expand-region emacs-multiple-cursors emacs-ryo-modal))
4687 (home-page "https://github.com/jmorag/kakoune.el")
4688 (synopsis "Emacs simple simulation, but not emulation, of Kakoune")
4689 (description "This package provides many, but not all of the editing
4690 primitives in the Kakoune editor. Unlike Evil mode for Vim, this is a very
4691 shallow emulation, which seeks to do as little work as possible, leveraging
4692 Emacs native editing commands and the work of other packages wherever
4694 (license license:expat))))
4696 (define-public emacs-kana
4697 ;; Package has no release. Version is extracted from "Version:" keyword in
4699 (let ((commit "b239c3c3c6124b46ff720cca7b80ecbafd7fa489")
4703 (version (git-version "1.0.0" revision commit))
4708 (url "https://github.com/chenyanming/kana")
4710 (file-name (git-file-name name version))
4712 (base32 "0vrrl1kniq4h111jvnapvx3wybvsl3alfaygw634mmryr3h7pwi8"))))
4713 (build-system emacs-build-system)
4714 (home-page "https://github.com/chenyanming/kana")
4715 (synopsis "Learn Japanese Kana in Emacs")
4717 "This Emacs mode displays Hiragana and Katakana flashcards. It can use
4718 functionality from Emacs Kanji mode if it is installed.")
4719 (license license:gpl3+))))
4721 (define-public emacs-kanji
4722 ;; Package has no release. Version is extracted from "Version:" keyword in
4724 (let ((commit "5e9d5b72468ece11cfb81b729be6babf63ede425")
4727 (name "emacs-kanji")
4728 (version (git-version "1.0" revision commit))
4733 (url "https://github.com/wsgac/kanji-mode")
4735 (file-name (git-file-name name version))
4737 (base32 "1zh7klqaza840q5f44zzh1wrnd6sqa2k93z3dgx3yhhsxfd1dxvy"))))
4738 (build-system emacs-build-system)
4739 (home-page "https://github.com/wsgac/kanji-mode")
4740 (synopsis "Emacs minor mode for displaying Japanese Kanji stroke order")
4742 "This minor mode displays the stroke order of the Kanji sign under
4743 cursor in a transient buffer. It has a built-in collection of SVG images
4744 depicting stroke orders for all Kanji. The collection is a slightly modified
4745 and limited version of the images provided by the KanjiVG project.")
4746 (license license:gpl3+))))
4748 (define-public emacs-kbd
4749 ;; Package has no release. Version is extracted from "Version:" keyword in
4751 (let ((commit "a7f4c9b9770fa6a58895c5f121df82652bb1b737")
4755 (version (git-version "0.0.1" revision commit))
4760 (url "https://github.com/slotThe/kbd-mode")
4762 (file-name (git-file-name name version))
4764 (base32 "0jv9yfsncgf96308c041hvps3jlc151xb0aipm0vasbma3x83ygm"))))
4765 (build-system emacs-build-system)
4769 #~(modify-phases %standard-phases
4770 (add-after 'unpack 'enter-lisp-directory
4771 (lambda _ (chdir "lisp"))))))
4772 (home-page "https://github.com/slotThe/kbd-mode")
4773 (synopsis "Minor mode for syntax highlighting kmonad's @file{.kbd} files")
4775 "This minor mode provides syntax highlighting for Lisp-like DSL used in
4776 kmonad's configuration files (@file{.kbd}).")
4777 (license license:gpl3+))))
4779 (define-public emacs-keycast
4781 (name "emacs-keycast")
4787 (url "https://github.com/tarsius/keycast")
4788 (commit (string-append "v" version))))
4789 (file-name (git-file-name name version))
4791 (base32 "01z20lsnjk8pwdsl4vx5dqdc4603bmb7fxan7n8j1fgvkvi63yzl"))))
4792 (build-system emacs-build-system)
4793 (home-page "https://github.com/tarsius/keycast")
4794 (synopsis "Show current command and its key in the mode line")
4796 "This package provides Keycast mode. Once enabled, that mode shows the
4797 current command and its key or mouse binding in the mode line, and updates
4798 them whenever another command is invoked.")
4799 (license license:gpl3+)))
4801 (define-public emacs-keyfreq
4803 (name "emacs-keyfreq")
4804 (version "20160516.716")
4808 (uri (string-append "http://melpa.org/packages/keyfreq-"
4812 "008hd7d06qskc3mx0bbdgpgy2pwxr8185fzlyqf9qjg49y74p6g8"))))
4813 (build-system emacs-build-system)
4814 (home-page "https://github.com/dacap/keyfreq")
4815 (synopsis "Track Emacs command frequencies")
4816 (description "@code{emacs-keyfeq} tracks and shows how many times you used
4818 (license license:gpl3+)))
4820 (define-public emacs-olivetti
4822 (name "emacs-olivetti")
4828 (url "https://github.com/rnkn/olivetti")
4829 (commit (string-append "v" version))))
4830 (file-name (git-file-name name version))
4832 (base32 "0wc0rki4zvzdxs126g5c8d92h1vfn9slfkdx831rr9d0jx93wc7s"))))
4833 (build-system emacs-build-system)
4834 (home-page "https://github.com/rnkn/olivetti")
4835 (synopsis "Emacs minor mode for a nice writing environment")
4836 (description "This package provides an Emacs minor mode that puts writing
4838 (license license:gpl3+)))
4840 (define-public emacs-undo-tree
4842 (name "emacs-undo-tree")
4848 (url "https://gitlab.com/tsc25/undo-tree")
4849 (commit "42aab056e37e033816b2d192f9121b89410b958e"))) ; no 0.8.2 tag
4850 (file-name (git-file-name name version))
4852 (base32 "1xvkxc078b4z5zqwndz6jcv4ga8yd2ci32v7l8pdvqjmz7fq7bfz"))))
4853 (build-system emacs-build-system)
4856 (home-page "https://www.dr-qubit.org/undo-tree.html")
4857 (synopsis "Treat undo history as a tree")
4859 "Tree-like interface to Emacs undo system, providing
4860 graphical tree presentation of all previous states of buffer that
4861 allows easily move between them.")
4862 (license license:gpl3+)))
4864 (define-public emacs-undo-fu
4865 ;; There are no tagged releases upstream on gitlab, instead we are using
4866 ;; the most recent commit.
4867 (let ((commit "c0806c1903c5a0e4c69b6615cdc3366470a9b8ca")
4870 (name "emacs-undo-fu")
4871 (version (git-version "0.4" revision commit))
4876 (url "https://gitlab.com/ideasman42/emacs-undo-fu")
4878 (file-name (git-file-name name version))
4880 (base32 "1n594aakmcgyl7qbda86v4wsx8clm62ypiv3h559xz3x72h7mr3j"))))
4881 (build-system emacs-build-system)
4882 (home-page "https://gitlab.com/ideasman42/emacs-undo-fu")
4883 (synopsis "Simple, stable linear undo with redo for Emacs")
4885 "This is a light weight wrapper for Emacs built-in undo system,
4886 adding convenient undo/redo without losing access to the full undo history,
4887 allowing you to visit all previous states of the document if you need.")
4888 (license license:gpl3+))))
4890 (define-public emacs-undo-fu-session
4891 ;; There are no tagged releases upstream on gitlab, instead we are using the
4892 ;; most recent commit.
4893 (let ((commit "56cdd3538a058c6916bdf2d9010c2179f2505829")
4896 (name "emacs-undo-fu-session")
4897 (version (git-version "0.2" revision commit))
4902 (url "https://gitlab.com/ideasman42/emacs-undo-fu-session")
4904 (file-name (git-file-name name version))
4906 (base32 "04wq1alrzzlidcb4mjb5j7pg68pks1vgv7kvvmi6dzb3l602mb2a"))))
4907 (build-system emacs-build-system)
4911 #:test-command #~(list "emacs" "--batch" "-l" "undo-fu-session.el"
4912 "-l" "undo-fu-session-test.el")
4914 #~(modify-phases %standard-phases
4915 (add-before 'check 'set-home
4917 (setenv "HOME" "/tmp"))))))
4918 (home-page "https://gitlab.com/ideasman42/emacs-undo-fu-session")
4919 (synopsis "Save & recover undo steps between Emacs sessions")
4920 (description "This package writes undo/redo information upon file save
4921 which is restored where possible when the file is loaded again.")
4922 (license license:gpl3+))))
4924 (define-public emacs-s
4932 (url "https://github.com/magnars/s.el")
4934 (file-name (git-file-name name version))
4936 (base32 "010i92kagqbfis46n1ffa28fgkdkjp55n13b6f4izar5r7ixm6wx"))))
4937 (build-system emacs-build-system)
4940 #:test-command '("./run-tests.sh")))
4941 (home-page "https://github.com/magnars/s.el")
4942 (synopsis "Emacs string manipulation library")
4943 (description "This package provides an Emacs library for manipulating
4945 (license license:gpl3+)))
4947 (define-public emacs-inflections
4949 (name "emacs-inflections")
4955 (url "https://github.com/eschulte/jump.el")
4957 (file-name (git-file-name name version))
4958 (snippet #~(begin (delete-file "jump.el")))
4960 (base32 "03fh7i6blnbc0zbmp83fk095hr3q4fdvrvfxad74zghcbc2nk7b7"))))
4961 (build-system emacs-build-system)
4962 (home-page "https://github.com/eschulte/jump.el")
4963 (synopsis "Convert english words between singular and plural")
4964 (description "This package provides an Emacs library for converting
4965 english words between singular and plural.")
4966 (license license:gpl3+)))
4968 (define-public emacs-blight
4969 (let ((commit "6bf9c6192d2bf979eebbfae1963401ef3ff4ef5d")
4972 (name "emacs-blight")
4973 (version (git-version "0" revision commit))
4978 (url "https://codeberg.org/emacs-weirdware/blight")
4980 (file-name (git-file-name name version))
4982 (base32 "1x7s1fcva5kkl9iyb5grd6crf38rrz3zb0c6wb85khi9far10vgq"))))
4983 (build-system emacs-build-system)
4984 (home-page "https://codeberg.org/emacs-weirdware/blight")
4985 (synopsis "Control display brightness")
4987 "Blight allows you to control display brightness from Emacs. It
4988 features object-oriented code using EIEIO, a base class implementing
4989 a reasonable API which focuses on the @emph{set the back light to this
4990 percentage} functionality, it includes a concrete implementation that uses
4991 SysFS to control brightness. Other systems (D-Bus, xbacklight, XELB using
4992 XRandR) are easily supportable, giving the same experience across
4994 (license license:gpl3+))))
4996 (define-public emacs-symon
4998 (name "emacs-symon")
4999 (version "20160630")
5004 (url "https://github.com/zk-phi/symon")
5006 (file-name (git-file-name name version))
5008 (base32 "1q7di9s8k710nx98wnqnbkkhdimrn0jf6z4xkm4c78l6s5idjwlz"))))
5009 (build-system emacs-build-system)
5010 (home-page "https://github.com/zk-phi/symon")
5011 (synopsis "Tiny graphical system monitor")
5013 "Tiny graphical system monitor for the Emacs minibuffer when idle.")
5014 (license license:gpl2+)))
5016 (define-public emacs-lemon
5017 (let ((commit "37a6e6d6ef0900ca19c820a2dbc122c7fe6d86cf")
5020 (name "emacs-lemon")
5021 (version (git-version "2.0.0" revision commit))
5026 (url "https://codeberg.org/emacs-weirdware/lemon")
5028 (file-name (git-file-name name version))
5030 (base32 "0bc77vzi4p6mlzmhgybbldlpcsiiv4xqrd5lnc7wzvmxv8byhqpm"))))
5031 (build-system emacs-build-system)
5033 (list emacs-blight emacs-emms))
5036 (home-page "https://codeberg.org/emacs-weirdware/lemon")
5037 (synopsis "System monitors in the echo area")
5039 "Lemon is a tiny system monitor which displays system information in
5040 the echo area when Emacs is has been idle for a few seconds. This is a fork
5041 of zk_phi’s Symon, which has been largely rewritten. It works nicely with
5043 (license license:gpl3+))))
5045 (define-public emacs-sx
5046 (let ((version "20191229")
5048 (commit "e9d1093c97507a6d7b4f4710ef65200dae725e5f"))
5051 (version (git-version version revision commit))
5056 (url "https://github.com/vermiculus/sx.el")
5058 (file-name (git-file-name name version))
5060 (base32 "0m90ddwm8j0y6d1ppqhd2gil1107k202blw6mzm5bdambn4nfqkf"))))
5061 (build-system emacs-build-system)
5063 (list emacs-markdown-mode))
5064 (home-page "https://github.com/vermiculus/sx.el")
5065 (synopsis "Emacs StackExchange client")
5067 "Emacs StackExchange client. Ask and answer questions on
5068 Stack Overflow, Super User, and other StackExchange sites.")
5069 (license license:gpl3+))))
5071 (define-public emacs-skempo
5073 (name "emacs-skempo")
5079 (url "https://github.com/xFA25E/skempo")
5081 (file-name (git-file-name name version))
5084 "0xsr6819qaad0y8rhfrf555c9w7cmgbgkf1a2svgbp7rhhnywl0a"))))
5085 (build-system emacs-build-system)
5086 (home-page "https://github.com/xFA25E/skempo")
5087 (synopsis "Enhancements for skeleton/tempo + abbrev")
5089 "Skempo is an attempt to improve Emacs built-in Skeleton and Tempo
5090 templates. It tries to make a unified syntax for template definitions. It
5091 also adds tags and marks support for Skeleton, and Abbrev support for Tempo.")
5092 (license license:gpl3+)))
5094 (define-public emacs-toc-org
5096 (name "emacs-toc-org")
5102 (url "https://github.com/snosov1/toc-org")
5104 (file-name (git-file-name name version))
5106 (base32 "00a2al7ghrlabf65kfj1mk30p2pl37h6ppwlgghbgiy7rwlzkdbm"))))
5107 (build-system emacs-build-system)
5108 (home-page "https://github.com/snosov1/toc-org")
5109 (synopsis "Table of Contents generator for Emacs Org mode")
5111 "This package generates a table of contents when saving in Org and
5113 (license license:gpl2+)))
5115 (define-public emacs-toml-mode
5116 (let ((version "0.1.3")
5118 (commit "f6c61817b00f9c4a3cab1bae9c309e0fc45cdd06"))
5120 (name "emacs-toml-mode")
5121 (version (git-version version revision commit))
5126 (url "https://github.com/dryman/toml-mode.el")
5128 (file-name (git-file-name name version))
5130 (base32 "05b4ksay85c8y5ncax0qsvnmplwsfiw24z16a58gkarjz938hb57"))))
5131 (build-system emacs-build-system)
5132 (home-page "https://github.com/dryman/toml-mode.el")
5133 (synopsis "Emacs major mode for editing TOML files")
5135 ;; XXX: Ideally we'd use @acronym for "TOML", but Guile's Texinfo
5136 ;; parser does not currently support @comma{}, making it impossible
5137 ;; to use commas in the @acronym arguments.
5138 "This package provides a major mode for editing files in @dfn{TOML}
5139 (Tom's Obvious, Minimal Language) data format.")
5140 (license license:gpl3+))))
5142 (define-public emacs-twittering-mode
5144 (name "emacs-twittering-mode")
5149 (uri (string-append "mirror://sourceforge/twmode"
5150 "/twittering-mode-" version
5151 "/twittering-mode-" version ".tar.xz"))
5153 (base32 "02imis1gxz90lah0b5n37j2hlsaw5igss11d85vpsm5d1bgw8j28"))))
5154 (build-system emacs-build-system)
5155 (home-page "http://twmode.sourceforge.net")
5156 (synopsis "Emacs major mode for Twitter")
5158 "Twittering mode is an Emacs major mode for Twitter.
5159 You can check timelines, tweet, mark posts as favorites and so on with
5161 (license license:gpl2+)))
5163 (define-public emacs-f
5170 (url "https://github.com/rejeep/f.el")
5171 (commit (string-append "v" version))))
5172 (file-name (git-file-name name version))
5175 "1a47xk3yp1rp17fqg7ldl3d3fb888h0fz3sysqfdz1bfdgs8a9bk"))))
5176 (build-system emacs-build-system)
5178 (list emacs-s emacs-dash))
5179 (home-page "https://github.com/rejeep/f.el")
5180 (synopsis "Emacs API for working with files and directories")
5181 (description "This package provides an Emacs library for working with
5182 files and directories.")
5183 (license license:gpl3+)))
5185 (define-public emacs-fountain-mode
5187 (name "emacs-fountain-mode")
5193 (url "https://github.com/rnkn/fountain-mode")
5194 (commit (string-append "v" version))))
5195 (file-name (git-file-name name version))
5197 (base32 "0mml0in6xxhfv4mdb7rl9k8m6xwmrjl5bb301p8d56sfng982pdl"))))
5200 #:phases #~(modify-phases %standard-phases
5201 (add-after 'unpack 'add-contrib
5203 (copy-recursively "contrib" "."))))))
5204 (build-system emacs-build-system)
5205 (home-page "https://github.com/rnkn/fountain-mode")
5206 (synopsis "Major mode for screenwriting in Fountain markup")
5207 (description "Fountain Mode is a scriptwriting program for GNU Emacs
5208 using the Fountain plain text markup format.")
5209 (license license:gpl3+)))
5211 (define-public emacs-fringe-helper
5212 (let ((commit "ef4a9c023bae18ec1ddd7265f1f2d6d2e775efdd")
5215 (name "emacs-fringe-helper")
5216 (version (git-version "1.0.1" revision commit))
5221 (url "https://github.com/nschum/fringe-helper.el")
5223 (file-name (git-file-name name version))
5225 (base32 "0ra9rc53l1gvkqank8apasl3r7wz2yfjrcvmfk3wpxhh24ppxv9d"))))
5226 (build-system emacs-build-system)
5229 #:test-command '("emacs" "--batch"
5231 "-f" "ert-run-tests-batch-and-exit")))
5232 (home-page "https://github.com/nschum/fringe-helper.el")
5233 (synopsis "Helper functions for fringe bitmaps")
5235 "This package allows fringe bitmaps to be defined with a visual string
5237 (license license:gpl2+))))
5239 (define-public emacs-git-gutter
5240 (let ((commit "ec28e85d237065cb3c28db4b66d129da6d309f9c")
5243 (name "emacs-git-gutter")
5244 (version (git-version "0.92" revision commit))
5249 (url "https://github.com/syohex/emacs-git-gutter")
5251 (file-name (git-file-name name version))
5253 (base32 "1fx3jp65ibcsv8akd8g4k701cs8yq0sg1bd2qszzfh6lvc4pblmi"))))
5254 (build-system emacs-build-system)
5255 (home-page "https://github.com/syohex/emacs-git-gutter")
5256 (synopsis "See and manage hunks of text in a version control system")
5258 "This package is an Emacs minor mode for displaying and interacting with
5259 hunks of text managed in a version control system. Added modified and deleted
5260 areas can be indicated with symbols on the edge of the buffer, and commands
5261 can be used to move between and perform actions on these hunks.
5263 Git, Mercurial, Subversion and Bazaar are supported, and many parts of the
5264 display and behaviour is easily customisable.")
5265 (license license:gpl3+))))
5267 (define-public emacs-git-gutter-fringe
5268 (let ((commit "648cb5b57faec55711803cdc9434e55a733c3eba")
5271 (name "emacs-git-gutter-fringe")
5272 (version (git-version "0.23" revision commit))
5277 (url "https://github.com/emacsorphanage/git-gutter-fringe")
5279 (file-name (git-file-name name version))
5281 (base32 "13bqq5r8ys2mmw1ffsm6hn6fji0vq3nx3slw98c9dgbvlprkaiip"))))
5282 (build-system emacs-build-system)
5284 (list emacs-git-gutter emacs-fringe-helper))
5285 (home-page "https://github.com/emacsorphanage/git-gutter-fringe")
5286 (synopsis "See and manage hunks of text in a version control system")
5288 "This package extends @code{git-gutter} to use the fringe area of a
5290 (license license:gpl3+))))
5292 (define-public emacs-git-link
5294 (name "emacs-git-link")
5300 (url "https://github.com/sshaw/git-link")
5301 (commit (string-append "v" version))))
5302 (file-name (git-file-name name version))
5304 (base32 "1ifq9z4p0rbz2bpm6qz89xg5ycn5fflsyradzzxzsgyys0zc6szx"))))
5305 (build-system emacs-build-system)
5309 #:test-command #~(list "make" "test")))
5310 (home-page "https://github.com/sshaw/git-link")
5311 (synopsis "Create links for files and commits in GitHub/GitLab/etc. repos")
5313 "@code{git-link} returns the URL for the current buffer's file location
5314 at the current line number or active region. @code{git-link-commit} returns
5315 the URL for a commit. URLs are added to the kill ring.")
5316 (license license:gpl3+)))
5318 (define-public emacs-frowny
5320 (name "emacs-frowny")
5326 (url "https://github.com/duckwork/frowny.el")
5327 (commit (string-append "v" version))))
5328 (file-name (git-file-name name version))
5330 (base32 "01ss3js71as1jpqcf0x9hfvapiyyhj9ni4y1n6wvqsghv5dcaiy0"))))
5331 (build-system emacs-build-system)
5332 (home-page "https://github.com/duckwork/frowny.el")
5333 (synopsis "Insert frownies in Emacs :(")
5334 (description "This package ships @code{frowny-mode}, which makes it so that
5335 inserting a single @code{(} when after a @code{:} will not automatically close
5336 the parenthesis, meaning that only @code{:(} is inserted. Works with
5337 @code{electric-pair-mode}, @code{paredit-mode}, and others.")
5338 (license license:public-domain)))
5340 (define-public emacs-apache-mode
5342 (name "emacs-apache-mode")
5347 (url "https://github.com/emacs-php/apache-mode")
5349 (file-name (git-file-name name version))
5352 "1grs2x51k8pa6sgfa82s5pwwdfv7zw46ccw0zvd2rvzbhpq21p2z"))))
5353 (build-system emacs-build-system)
5354 (home-page "https://github.com/emacs-php/apache-mode")
5356 "Syntax highlighting and indentation support for Apache config files")
5358 "This package provides @code{apache-mode}, an Emacs major mode for Apache
5359 configuration files which provides syntax highlighting and indentation rules.
5360 This mode supports Apache HTTP Server 2.4 and major modules.")
5361 (license license:gpl2+)))
5363 (define-public emacs-apheleia
5365 (name "emacs-apheleia")
5371 (url "https://github.com/raxod502/apheleia")
5372 (commit (string-append "v" version))))
5373 (file-name (git-file-name name version))
5375 (base32 "1145zh7nqadgz5r2llwjwgj2aciv08mn2cpp3zlf0rf3awg86yg7"))))
5376 (build-system emacs-build-system)
5377 (home-page "https://github.com/raxod502/apheleia")
5378 (synopsis "Reformat buffer stably")
5380 "This package allows for a buffer to be reformatted without moving point,
5381 so that running a formatting tool like @code{Prettier} or @code{Black} upon
5382 saving won't move point back to the beginning of the buffer.")
5383 (license license:gpl3+)))
5385 (define-public emacs-git-timemachine
5387 (name "emacs-git-timemachine")
5393 (url "https://gitlab.com/pidu/git-timemachine.git")
5395 (file-name (git-file-name name version))
5398 "1pz4l1xnq6s67w5yq9107vm8dg7rqf8n9dmbn90jys97c722g70n"))))
5399 (build-system emacs-build-system)
5400 (home-page "https://gitlab.com/pidu/git-timemachine")
5401 (synopsis "Step through historic versions of Git-controlled files")
5402 (description "This package enables you to step through historic versions
5403 of files under Git version control from within Emacs.")
5404 (license license:gpl3+)))
5406 (define-public emacs-minitest
5408 (name "emacs-minitest")
5413 (url "https://github.com/arthurnn/minitest-emacs")
5414 (commit (string-append "v" version))))
5415 (file-name (git-file-name name version))
5418 "0d8kg68yy5x1y3ivj43vzcakb3gii6bh8jm40g4sah5f53bbrs16"))))
5419 (build-system emacs-build-system)
5421 '(#:include (cons "^snippets\\/minitest-mode\\/" %default-include)
5422 #:exclude (delete "^[^/]*tests?\\.el$" %default-exclude)))
5424 (list emacs-dash emacs-f))
5425 (home-page "https://github.com/arthurnn/minitest-emacs")
5426 (synopsis "Emacs minitest mode")
5428 "The minitest mode provides commands to run the tests for the current
5429 file or line, as well as rerunning the previous tests, or all the tests for a
5432 This package also includes relevant snippets for yasnippet.")
5433 (license license:expat)))
5435 (define-public emacs-gdscript-mode
5437 (name "emacs-gdscript-mode")
5443 (url "https://github.com/godotengine/emacs-gdscript-mode")
5445 (file-name (git-file-name name version))
5447 (base32 "09q0himrz7a6xgz0jmcl85qc5xhk5fwi6d2vw1n8qaiavm96ksdy"))))
5448 (build-system emacs-build-system)
5449 (home-page "https://github.com/godotengine/emacs-gdscript-mode")
5450 (synopsis "GDScript support and syntax highlighting in Emacs")
5452 "This package adds support for the GDScript programming language from the
5453 Godot game engine in Emacs. It features all the essentials, e.g., syntax
5454 highlighting, code folding, indentation, automatic pairing, auto-completion,
5455 and code formatting.")
5456 (license license:gpl3+)))
5458 (define-public emacs-el-mock
5460 (name "emacs-el-mock")
5466 (url "https://github.com/rejeep/el-mock.el")
5467 (commit (string-append "v" version))))
5468 (file-name (git-file-name name version))
5470 (base32 "13mv1rhgkwiww2wh5w926jz7idppp492wir1vdl245c5x50dh4f7"))))
5471 (build-system emacs-build-system)
5472 (home-page "https://github.com/rejeep/el-mock.el")
5473 (synopsis "Tiny mock and stub framework in Emacs Lisp")
5475 "Emacs Lisp Mock is a library for mocking and stubbing using readable
5476 syntax. Most commonly Emacs Lisp Mock is used in conjunction with Emacs Lisp
5477 Expectations, but it can be used in other contexts.")
5478 (license license:gpl3+)))
5480 (define-public emacs-ecukes
5482 (name "emacs-ecukes")
5488 (url "https://github.com/ecukes/ecukes")
5489 (commit (string-append "v" version))))
5490 (file-name (git-file-name name version))
5492 (base32 "182qgddfv8nd89y1l55rs5vm5i61ayc8cxbplb8zx0alnid9xrw1"))))
5493 (build-system emacs-build-system)
5495 `(#:include (cons* "^feature/" "^reporters/" "^templates/" %default-include)))
5503 (home-page "https://github.com/ecukes/ecukes")
5504 (synopsis "Cucumber for Emacs")
5506 "This package provides Ecukes, a Cucumber-inspired integration testing
5507 tool for Emacs. Ecukes is not a complete clone of Cucumber and is not
5509 (license license:gpl3+)))
5511 (define-public emacs-ef-themes
5512 ;; XXX: Upstream did not tag last release. The commit below matches version
5514 (let ((commit "35201e49e8c3f5d1a2d6c17cb1697a9e18529a9a"))
5516 (name "emacs-ef-themes")
5522 (url "https://git.sr.ht/~protesilaos/ef-themes")
5524 (file-name (git-file-name name version))
5527 "0c3gly6d5037dvvznf1mzihrfrcrrjmnsd2dda5k4frfyrc25rmn"))))
5528 (build-system emacs-build-system)
5529 (home-page "https://git.sr.ht/~protesilaos/ef-themes")
5530 (synopsis "Colorful and legible themes")
5532 "The Ef themes are a collection of light and dark themes for GNU Emacs
5533 whose goal is to provide colorful yet legible options for users who want
5534 something with a bit more flair than the Modus themes.")
5535 (license license:gpl3+))))
5537 (define-public emacs-espuds
5539 (name "emacs-espuds")
5545 (url "https://github.com/ecukes/espuds")
5546 (commit (string-append "v" version))))
5547 (file-name (git-file-name name version))
5549 (base32 "16r4j27j9yfdiy841w9q5ykkc6n3wrm7hvfacagb32mydk821ijg"))))
5550 (build-system emacs-build-system)
5552 (list emacs-s emacs-dash emacs-f))
5553 (home-page "https://github.com/ecukes/espuds")
5554 (synopsis "Common step definitions for Ecukes")
5555 (description "Espuds is a collection of the most commonly used step
5556 definitions for testing with the Ecukes framework.")
5557 (license license:gpl3+)))
5559 (define-public emacs-spark
5560 (let ((version "20160503") ; no proper tag, use date of commit
5561 (commit "0bf148c3ede3b31d56fd75f347cdd0b0eae60025")
5564 (name "emacs-spark")
5565 (version (git-version version revision commit))
5570 (url "https://github.com/alvinfrancis/spark")
5572 (file-name (git-file-name name version))
5575 "1ykqr86j17mi95s08d9fp02d7ych1331b04dcqxzxnmpkhwngyj1"))))
5576 (build-system emacs-build-system)
5577 (home-page "https://github.com/alvinfrancis/spark")
5578 (synopsis "Sparkline generation library for Emacs Lisp")
5579 (description "@code{emacs-spark} is a sparkline generation library for
5580 Emacs Lisp. It generates a sparkline string given a list of numbers. It is a
5581 port of @code{cl-spark} to Emacs Lisp.")
5582 (license license:expat))))
5584 (define-public emacs-spray
5585 (let ((version "0.0.2") (revision "0")
5586 (commit "74d9dcfa2e8b38f96a43de9ab0eb13364300cb46"))
5588 (name "emacs-spray")
5589 (version (git-version version revision commit))
5593 (url "https://git.sr.ht/~iank/spray")
5595 (file-name (git-file-name name version))
5598 "1avbfr32dvff26kgvd5vgan99nb5c6al9kv5xbmy2rcls17py7r2"))))
5599 (build-system emacs-build-system)
5600 (home-page "https://git.sr.ht/~iank/spray")
5601 (synopsis "Speed reading mode for Emacs")
5603 "For speed reading, or just more enjoyable reading. Narrows
5604 the buffer to show one word at a time. Adjust speed / pause as needed.")
5605 (license license:gpl3+))))
5607 (define-public emacs-es-mode
5609 (name "emacs-es-mode")
5615 (url "https://github.com/dakrone/es-mode")
5617 (file-name (git-file-name name version))
5619 (base32 "1qhfnd5anp5qrmravv7ks5ix763xnki2f5jwcyj70qyxwr0l60cg"))))
5620 (build-system emacs-build-system)
5622 ;; The version of org in Emacs 24.5 is not sufficient, and causes tables
5623 ;; to be rendered incorrectly
5624 (list emacs-dash emacs-org emacs-spark))
5625 (home-page "https://github.com/dakrone/es-mode")
5626 (synopsis "Major mode for editing Elasticsearch queries")
5627 (description "@code{es-mode} includes highlighting, completion and
5628 indentation support for Elasticsearch queries. Also supported are
5629 @code{es-mode} blocks in @code{org-mode}, for which the results of queries can
5630 be processed through @code{jq}, or in the case of aggregations, can be
5631 rendered in to a table. In addition, there is an @code{es-command-center}
5632 mode, which displays information about Elasticsearch clusters.")
5633 (license license:gpl3+)))
5635 (define-public emacs-expand-region
5636 (let ((commit "c5c4362741deebb0985a8a29f9b8b0e25160764a")
5639 (name "emacs-expand-region")
5640 (version (git-version "0.11.0" revision commit))
5645 (url "https://github.com/magnars/expand-region.el")
5647 (file-name (git-file-name name version))
5649 (base32 "17h58v5mnggbrwrp61cwkqx8hzazkdqyz9p6s1hl9g2hys7zkb00"))))
5650 (build-system emacs-build-system)
5651 (home-page "https://github.com/magnars/expand-region.el")
5652 (synopsis "Increase selected region by semantic units")
5654 "Expand region increases the selected region by semantic units. Just
5655 keep pressing the key until it selects what you want. There's also
5656 @code{er/contract-region} if you expand too far.")
5657 (license license:gpl3+))))
5659 (define-public emacs-explain-pause-mode
5660 (let ((commit "2356c8c3639cbeeb9751744dbe737267849b4b51")
5663 (name "emacs-explain-pause-mode")
5664 (version (git-version "0.1" revision commit))
5669 (url "https://github.com/lastquestion/explain-pause-mode")
5671 (file-name (git-file-name name version))
5673 (base32 "0frnfwqal9mrnrz6q4v7vcai26ahaw81894arff1yjw372pfgv7v"))))
5674 (build-system emacs-build-system)
5676 (list emacs-buttercup))
5680 (modify-phases %standard-phases
5681 ;; This causes the byte-compilation before unit-tests to fail.
5682 (add-after 'unpack 'remove-error-on-warn
5684 (substitute* "Makefile"
5685 (("--eval '\\(setq byte-compile-error-on-warn t\\)'") "")))))
5686 ;; Don't run case-tests as they will fail to create sockets because
5687 ;; the path is too long
5688 #:test-command '("make" "byte-compile" "unit-tests")
5689 ;; Parallel testing will cause the tests to run before
5690 ;; byte-compilation is finished
5691 #:parallel-tests? #f))
5692 (home-page "https://github.com/lastquestion/explain-pause-mode")
5693 (synopsis "Top-like interface to determine why Emacs paused")
5695 "This package monitors Emacs function calls and records their execution
5696 time. This information can be reviewed to determine what is causing the user
5697 interface to pause.")
5698 (license license:gpl3+))))
5700 (define-public emacs-filladapt
5702 (name "emacs-filladapt")
5708 "https://elpa.gnu.org/packages/filladapt-"
5712 "1cxyxfdjg1dsmn1jrl6b7xy03xr42fb6vyggh27s4dk417ils6yg"))))
5713 (build-system emacs-build-system)
5714 (home-page "http://elpa.gnu.org/packages/filladapt.html")
5715 (synopsis "Adaptive fill for Emacs")
5717 "This package provides functions which enhance the default behavior of
5718 Emacs' Auto Fill mode and the commands @code{fill-paragraph},
5719 @code{lisp-fill-paragraph}, @code{fill-region-as-paragraph}, and
5722 The chief improvement is that the beginning of a line to be
5723 filled is examined and, based on information gathered, an
5724 appropriate value for fill-prefix is constructed. Also the
5725 boundaries of the current paragraph are located. This occurs
5726 only if the fill prefix is not already non-nil.
5728 The net result of this is that blurbs of text that are offset
5729 from left margin by asterisks, dashes, and/or spaces, numbered
5730 examples, included text from USENET news articles, etc. are
5731 generally filled correctly with no fuss.")
5732 (license license:gpl3+)))
5734 (define-public emacs-fill-column-indicator
5736 (name "emacs-fill-column-indicator")
5742 (url "https://github.com/alpaker/Fill-Column-Indicator")
5744 (file-name (git-file-name name version))
5746 (base32 "0snjznxdwwfdgccdcvrnk467416r244r2r5qcm2sga8l0ha9gw9z"))))
5747 (build-system emacs-build-system)
5748 (home-page "https://www.emacswiki.org/emacs/FillColumnIndicator")
5749 (synopsis "Graphically indicate the fill column")
5751 "Fill-column-indicator graphically indicates the location of the fill
5752 column by drawing a thin line down the length of the editing window.")
5753 (license license:gpl3+)))
5755 (define-public emacs-grep-a-lot
5757 (name "emacs-grep-a-lot")
5763 (url "https://github.com/ZungBang/emacs-grep-a-lot")
5764 (commit "9f9f645b9e308a0d887b66864ff97d0fca1ba4ad")))
5765 (file-name (git-file-name name version))
5767 (base32 "1f8262mrlinzgnn4m49hbj1hm3c1mvzza24py4b37sasn49546lw"))))
5768 (build-system emacs-build-system)
5769 (home-page "https://github.com/ZungBang/emacs-grep-a-lot")
5770 (synopsis "Enables multiple grep buffers in Emacs")
5772 "This Emacs package allows managing multiple grep buffers.")
5773 (license license:gpl3+)))
5775 (define-public emacs-fd
5782 (url "https://github.com/yqrashawn/fd-dired")
5784 (file-name (git-file-name name version))
5787 "1fas0fpvym2lyzybwm44gly9jz6a2fpp72yxnwfbqqjkfgk9910y"))))
5788 (build-system emacs-build-system)
5789 (home-page "https://github.com/yqrashawn/fd-dired")
5790 (synopsis "Dired-mode interface for fd result")
5791 (description "This package provides a dired-mode interface for fd's
5793 (license license:gpl3+)))
5795 (define-public emacs-ripgrep
5797 (name "emacs-ripgrep")
5803 (url "https://github.com/nlamirault/ripgrep.el")
5805 (file-name (git-file-name name version))
5807 (base32 "1a5rdpmvsgsjlc9sywism9pq7jd6n9qbcdsvpbfkq1npwhpifkbj"))))
5808 (build-system emacs-build-system)
5811 (modify-phases %standard-phases
5812 ;; The repository contains both ripgrep and projectile-ripgrep
5813 ;; packages. The latter has been merged into projectile itself.
5814 (add-after 'unpack 'delete-projectile-ripgrep
5816 (delete-file "projectile-ripgrep.el"))))))
5819 (home-page "https://github.com/nlamirault/ripgrep.el")
5820 (synopsis "Search using ripgrep from inside Emacs")
5821 (description "@code{ripgrep} is an Emacs search package based on the
5822 @command{ripgrep} command line tool.")
5823 (license license:gpl2+)))
5825 (define-public emacs-rg
5833 (url "https://github.com/dajva/rg.el")
5835 (file-name (git-file-name name version))
5837 (base32 "1nxzplpk5cf6hhr2v85bmg68i6am96shi2zq7m83fs96bilhwsp5"))))
5838 (build-system emacs-build-system)
5842 #~(modify-phases %standard-phases
5843 (add-after 'unpack 'remove-rg-path
5844 ;; Remove the path to ripgrep so that it works on remote systems.
5846 (let ((file "rg.el"))
5847 (make-file-writable file)
5848 (emacs-substitute-sexps file
5849 ("(defcustom rg-executable" "rg"))))))))
5851 (list emacs-s emacs-wgrep ripgrep))
5852 (home-page "https://rgel.readthedocs.io/en/latest/")
5853 (synopsis "Search tool based on @code{ripgrep}")
5855 "@code{rg} is an Emacs search package based on the @code{ripgrep} command
5856 line tool. It allows one to interactively search based on the editing context
5857 then refine or modify the search results.")
5858 (license license:gpl3+)))
5860 (define-public emacs-inf-ruby
5862 (name "emacs-inf-ruby")
5868 (url "https://github.com/nonsequitur/inf-ruby")
5870 (file-name (git-file-name name version))
5872 (base32 "0a1hhvfbl6mq8rjsi77fg9fh5a91hi5scjrg9rjqc5ffbql67y0v"))))
5873 (build-system emacs-build-system)
5874 (home-page "https://github.com/nonsequitur/inf-ruby")
5875 (synopsis "Provides a REPL buffer connected to a Ruby subprocess in Emacs")
5877 "@code{inf-ruby} provides a Read Eval Print Loop (REPL) buffer, allowing
5878 for easy interaction with a ruby subprocess. Features include support for
5879 detecting specific uses of Ruby, e.g. when using rails, and using a
5880 appropriate console.")
5881 (license license:gpl3+)))
5883 (define-public emacs-zig-mode
5884 (let ((commit "dbc648f5bca8f3b9ca2cc7827f326f5530115144")
5887 (name "emacs-zig-mode")
5888 (version (git-version "0.0.8" revision commit))
5893 (url "https://github.com/ziglang/zig-mode")
5895 (file-name (git-file-name name version))
5897 (base32 "0hwkkwhc5b2pzyqa2h0xw8wxijsrp1fk70fhyv8hx19shzlc4la3"))))
5898 (build-system emacs-build-system)
5903 #:test-command #~(list "emacs" "--batch"
5905 "-f" "ert-run-tests-batch-and-exit")))
5906 (home-page "https://github.com/ziglang/zig-mode/")
5907 (synopsis "Zig mode for Emacs")
5909 "This package provides syntax highlighting and automatic indentation
5910 for the Zig programming language in Emacs.")
5911 (license license:gpl3+))))
5913 (define-public emacs-znc
5921 (url "https://github.com/sshirokov/ZNC.el")
5923 (file-name (git-file-name name version))
5925 (base32 "1ran86ycnays9s23wk3iczqqgnpbyx0lijiarx65am3jc1yzg5ia"))))
5926 (build-system emacs-build-system)
5927 (home-page "https://github.com/sshirokov/ZNC.el")
5928 (synopsis "Make ERC and ZNC get along better")
5930 "This is a thin wrapper around @code{erc} that enables one to use the ZNC
5931 IRC bouncer with ERC.")
5932 (license license:expat)))
5934 (define-public emacs-erc-status-sidebar
5935 (let ((commit "ea4189a1dbfe60117359c36e681ad7c389e2968c")
5938 (name "emacs-erc-status-sidebar")
5939 (version (git-version "0.1" revision commit))
5944 (url "https://github.com/drewbarbs/erc-status-sidebar")
5946 (file-name (git-file-name name version))
5948 (base32 "1hwlhzgx03z8891sblz56zdp8zj0izh72kxykgcnz5rrkyc3vfi3"))))
5949 (build-system emacs-build-system)
5950 (home-page "https://github.com/drewbarbs/erc-status-sidebar")
5951 (synopsis "Hexchat-like activity overview for ERC channels")
5953 "This package provides a Hexchat-like status bar for joined channels in
5954 ERC, an Emacs client for IRC (Internet Relay Chat). It relies on the
5955 @code{erc-track} module, and displays all the same information
5956 @code{erc-track} does in the mode line, but in an alternative format.")
5957 (license license:gpl3+))))
5959 (define-public emacs-shut-up
5961 (name "emacs-shut-up")
5967 (url "https://github.com/cask/shut-up")
5968 (commit (string-append "v" version))))
5969 (file-name (git-file-name name version))
5971 (base32 "1bnmrwrhra6cpc3jjgwwzrydj5ps7q2dlkh2ag4j7rkyv4dlk351"))))
5972 (build-system emacs-build-system)
5973 (home-page "https://github.com/cask/shut-up")
5974 (synopsis "Silence Emacs")
5975 (description "This package silences most output of Emacs when running an
5976 Emacs shell script.")
5977 (license license:expat)))
5979 (define-public emacs-undercover
5981 (name "emacs-undercover")
5987 (url "https://github.com/sviridov/undercover.el")
5988 (commit (string-append "v" version))))
5989 (file-name (git-file-name name version))
5991 (base32 "0qmvyy3xg5qi7ws8zcs934d6afsappr1a6pgfp796xpa9vdr4y6j"))))
5992 (build-system emacs-build-system)
5994 (list emacs-dash emacs-shut-up))
5995 (home-page "https://github.com/sviridov/undercover.el")
5996 (synopsis "Test coverage library for Emacs Lisp")
5998 "Undercover is a test coverage library for software written in Emacs
6000 (license license:expat)))
6002 (define-public emacs-paren-face
6004 (name "emacs-paren-face")
6010 (url "https://github.com/tarsius/paren-face")
6012 (file-name (git-file-name name version))
6014 (base32 "13d8psgd2j3vqmgwwf62gwyq7h6qlj8rrs31fxwjqmzzdblwqy1y"))))
6015 (build-system emacs-build-system)
6016 (home-page "https://github.com/tarsius/paren-face")
6017 (synopsis "Face for parentheses in Lisp modes")
6019 "This library defines a face named @code{parenthesis} used just for
6020 parentheses. The intended purpose of this face is to make parentheses less
6021 visible in Lisp code by dimming them. Lispers probably don't need to be
6022 constantly made aware of the existence of the parentheses. Dimming them might
6023 be even more useful for people new to Lisp who have not yet learned to
6024 subconsciously blend out the parentheses.")
6025 (license license:gpl3+)))
6027 (define-public emacs-page-break-lines
6029 (name "emacs-page-break-lines")
6035 (url "https://github.com/purcell/page-break-lines")
6037 (file-name (git-file-name name version))
6039 (base32 "0plfyzmh93x1r3zgfjyx23cc7vi1pcniipclzlms1iwfkl7zsqvp"))))
6040 (build-system emacs-build-system)
6041 (home-page "https://github.com/purcell/page-break-lines")
6042 (synopsis "Display page breaks as tidy horizontal lines")
6044 "This library provides a global mode which displays form feed characters
6045 as horizontal rules.")
6046 (license license:gpl3+)))
6048 (define-public emacs-simple-httpd
6050 (name "emacs-simple-httpd")
6056 (url "https://github.com/skeeto/emacs-web-server")
6058 (file-name (git-file-name name version))
6060 (base32 "0dpn92rg813c4pq7a1vzj3znyxzp2lmvxqz6pzcqi0l2xn5r3wvb"))))
6061 (build-system emacs-build-system)
6062 (home-page "https://github.com/skeeto/emacs-web-server")
6063 (synopsis "HTTP server in pure Emacs Lisp")
6065 "This package provides a simple HTTP server written in Emacs Lisp to
6066 serve files and directory listings.")
6067 (license license:unlicense)))
6069 (define-public emacs-skewer-mode
6071 (name "emacs-skewer-mode")
6077 (url "https://github.com/skeeto/skewer-mode")
6079 (file-name (git-file-name name version))
6081 (base32 "1ha7jl7776pk1bki5zj2q0jy66450mn8xr3aqjc0m9kj3gc9qxgw"))))
6082 (build-system emacs-build-system)
6084 (list emacs-simple-httpd emacs-js2-mode))
6085 (arguments '(#:include '("\\.el$" "\\.js$" "\\.html$")))
6086 (home-page "https://github.com/skeeto/skewer-mode")
6087 (synopsis "Live web development in Emacs")
6089 "Skewer-mode provides live interaction with JavaScript, CSS, and HTML in
6090 a web browser. Expressions are sent on-the-fly from an editing buffer to be
6091 evaluated in the browser, just like Emacs does with an inferior Lisp process
6093 (license license:unlicense)))
6095 (define-public emacs-litable
6096 (let ((commit "b0278f3f8dcff424bfbdfdefb545b1fbff33206f"))
6098 (name "emacs-litable")
6099 (version (git-version "0.1" "0" commit))
6103 (url "https://github.com/Fuco1/litable")
6105 (file-name (git-file-name name version))
6108 "0bny40hv9a024n01clxns351cs4j4ifhgcc7m4743xncqf612p7g"))))
6109 (build-system emacs-build-system)
6112 (home-page "https://github.com/Fuco1/litable/")
6113 (synopsis "Dynamic evaluation replacement with Emacs")
6114 (description "This package provides dynamic evaluation in Emacs.")
6115 (license license:gpl3+))))
6117 (define-public emacs-literate-elisp
6119 (name "emacs-literate-elisp")
6124 (url "https://github.com/jingtaozf/literate-elisp")
6126 (file-name (git-file-name name version))
6128 (base32 "0i9468rh61l4xq918fgwk6li93lpm6zbn0lkpxr7pbvkgrl5xsr6"))))
6129 (build-system emacs-build-system)
6130 (home-page "https://github.com/jingtaozf/literate-elisp/tags")
6131 (synopsis "Load Emacs Lisp code blocks from Org files")
6133 "Literate-Elisp is an Emacs lisp library to provide an easy way to use
6134 literal programming in Emacs lisp. It extends the Emacs load mechanism so
6135 Emacs can load Org files as Lisp source files directly.")
6136 (license license:gpl3+)))
6138 (define-public emacs-literate-calc-mode
6139 (let ((commit "ba7d22140a165b0fdd900a8d04916115ca6ab8ff")
6142 (name "emacs-literate-calc-mode")
6143 (version (git-version "0.1" revision commit))
6148 (url "https://github.com/sulami/literate-calc-mode.el")
6150 (file-name (git-file-name name version))
6152 (base32 "1bdybw44pmhfpikdv1kg2sx88546xyncks5a4b2s0ak4p66r82k3"))))
6153 (build-system emacs-build-system)
6156 (home-page "https://github.com/sulami/literate-calc-mode.el")
6157 (synopsis "Literate programming for Emacs Calc")
6159 "This library provides literate programming for Calc. There is both
6160 a major and a minor mode. The major mode does some basic syntax highlighting,
6161 while the minor mode only evaluates all Calc statements while typing. In
6162 particular, the minor mode works quite well with Org or Markdown modes, or
6163 other markup language major modes.")
6164 (license license:gpl3+))))
6166 (define-public emacs-standard-dirs
6168 (name "emacs-standard-dirs")
6170 (home-page "https://github.com/lafrenierejm/standard-dirs.el")
6177 (file-name (git-file-name name version))
6179 (base32 "0r814qcrhvx4qlx4sdzwdmrhiryslqclx0bnpp0qcrbx6g8qfl25"))))
6180 (build-system emacs-build-system)
6182 (list emacs-f emacs-s))
6183 (synopsis "Platform-specific paths for config, cache, and other data")
6185 "This package provides platform-specific paths for reading and writing
6186 configuration, cache, and other data.")
6187 (license license:gpl3+)))
6189 (define-public emacs-string-inflection
6191 (name "emacs-string-inflection")
6197 (url "https://github.com/akicho8/string-inflection")
6198 (commit (string-append "v" version))))
6199 (file-name (git-file-name name version))
6201 (base32 "0wskrp3v5gi3b3s9471ijkdncnfd888qd50c72rv2p8846174paj"))))
6202 (build-system emacs-build-system)
6204 (list emacs-ert-runner))
6207 #:test-command '("ert-runner")))
6208 (home-page "https://github.com/akicho8/string-inflection")
6209 (synopsis "Convert symbol names between different naming conventions")
6211 "This Emacs package provides convenient methods for manipulating the
6212 naming style of a symbol. It supports different naming conventions such as:
6217 @item all upper case
6218 @item lower case separated by underscore
6221 (license license:gpl2+)))
6223 (define-public emacs-stripe-buffer
6225 (name "emacs-stripe-buffer")
6231 (url "https://github.com/sabof/stripe-buffer")
6233 (file-name (git-file-name name version))
6235 (base32 "035ym1c1vzg6hjsnd258z4dkrfc11lj4c0y4gpgybhk54dq3w9dk"))))
6236 (build-system emacs-build-system)
6237 (home-page "https://github.com/sabof/stripe-buffer/")
6238 (synopsis "Add stripes to list buffers")
6240 "This Emacs package adds faces to add stripes to list buffers and org
6242 (license license:gpl2+)))
6244 (define-public emacs-org-beautify-theme
6245 ;; Latest release (0.4) is not tagged, use commit hash.
6246 (let ((commit "df6a1114fda313e1689363e196c8284fbe2a2738")
6249 (name "emacs-org-beautify-theme")
6255 (url "https://github.com/jonnay/org-beautify-theme")
6257 (file-name (git-file-name name version))
6259 (base32 "1lkz7736swimad12khwbbqc4gxjydgr1k45p4mx03s25pv1w920y"))))
6260 (build-system emacs-build-system)
6261 (home-page "https://github.com/jonnay/org-beautify-theme")
6262 (synopsis "Theme to make Org mode look more beautiful")
6264 "The theme adds padding between headings, increases the size of titles,
6265 strike through completed TODO headings, changes Org blocks, changes Org check
6267 (license license:gpl3+))))
6269 (define-public emacs-org-books
6271 (name "emacs-org-books")
6277 (url "https://github.com/lepisma/org-books")
6279 (file-name (git-file-name name version))
6282 "1sgckvpjdaig9r2clcvs6ckgf2kx7amikkpq26y30jbnfnbskf0v"))))
6283 (build-system emacs-build-system)
6291 (home-page "https://github.com/lepisma/org-books")
6292 (synopsis "Reading list management with Org mode and Helm")
6294 "Org Books is a tool for managing reading lists in an Org mode file.")
6295 (license license:gpl3+)))
6297 (define-public emacs-org-chef
6298 ;; Upstream does not tag version bumps. Version is extracted from "Version"
6299 ;; keyword in main file.
6300 (let ((commit "87e9a6c4844ff32f47c8d1108ec0f087a3148a8e")
6303 (name "emacs-org-chef")
6304 (version (git-version "0.1.3" revision commit))
6309 (url "https://github.com/Chobbes/org-chef")
6311 (file-name (git-file-name name version))
6313 (base32 "0xdfaf3shl3iij7nnshb5ryccqq70rpk0zm0d3fdwdbfa8rf7fkp"))))
6314 (build-system emacs-build-system)
6315 (propagated-inputs (list emacs-org))
6316 (home-page "https://github.com/Chobbes/org-chef")
6317 (synopsis "Cookbook and recipe management with Emacs Org mode")
6319 "Org Chef is a package for managing recipes in Org mode. One of the
6320 main features is that it can automatically extract recipes from websites like
6322 (license license:expat))))
6324 (define-public emacs-org-inline-pdf
6326 (name "emacs-org-inline-pdf")
6331 (url "https://github.com/shg/org-inline-pdf.el")
6333 (file-name (git-file-name name version))
6336 "1qc92xvgxmnwjixk8bxwbc1l1jj0qk9dg73jyaip6lk4g0wjk6xf"))))
6337 (build-system emacs-build-system)
6342 (modify-phases %standard-phases
6343 (add-after 'unpack 'patch-exec-paths
6344 (lambda* (#:key inputs #:allow-other-keys)
6345 (let ((pdf2svg (assoc-ref inputs "pdf2svg")))
6346 (substitute* "org-inline-pdf.el"
6347 (("\"pdf2svg\"") (string-append "\"" pdf2svg "/bin/pdf2svg\"")))))))))
6348 (home-page "https://github.com/shg/org-inline-pdf.el")
6349 (synopsis "Inline PDF previewing for Org")
6350 (description "This package provides a minor mode that enables
6351 inline PDF preview in Org buffers by using pdf2svg.")
6352 (license license:gpl3+)))
6354 (define-public emacs-org-rainbow-tags
6355 ;; Upstream didn't tag version.
6356 (let ((commit "c6040d228c5e8c5c6d33c7f81fc09d935ad1bcbd"))
6358 (name "emacs-org-rainbow-tags")
6363 (url "https://github.com/KaratasFurkan/org-rainbow-tags")
6365 (file-name (git-file-name name version))
6368 "006nx01sby8k0fc9lf63ldf0sl94ihldyrvqr9r18fb1gpzvivl6"))))
6369 (build-system emacs-build-system)
6370 (home-page "https://github.com/KaratasFurkan/org-rainbow-tags")
6371 (synopsis "Colorize Org tags automatically")
6373 "This package adds random colors to your Org tags. In order to make
6374 colors random but consistent between same tags, colors are generated from the
6375 hash of the tag names.")
6376 (license license:gpl3+))))
6378 (define-public emacs-org-rich-yank
6380 (name "emacs-org-rich-yank")
6386 (url "https://github.com/unhammer/org-rich-yank")
6387 (commit (string-append "v" version))))
6388 (file-name (git-file-name name version))
6390 (base32 "0gxb0fnh5gxjmld0hnk5hli0cvdd8gjd27m30bk2b80kwldxlq1z"))))
6391 (build-system emacs-build-system)
6392 (home-page "https://github.com/unhammer/org-rich-yank")
6393 (synopsis "Automatically surround source code pasted into Org with
6394 @code{#+BEGIN_SRC} blocks")
6396 "This package provides a utility function for Org buffers that makes a
6397 @code{_SRC} block with the appropriate language annotation for code that has
6398 been copied from an Emacs major mode.")
6399 (license license:gpl2+)))
6401 (define-public emacs-org-fancy-priorities
6402 (let ((commit "819bb993b71e7253cefef7047306ab4e0f9d0a86")
6405 (name "emacs-org-fancy-priorities")
6406 (version (git-version "1.1" revision commit))
6411 (url "https://github.com/harrybournis/org-fancy-priorities.git")
6413 (file-name (git-file-name name version))
6416 "13cyzlx0415i953prq6ch7r5iy23c1pz116bdxi5yqags4igh4wv"))))
6417 (build-system emacs-build-system)
6418 (home-page "https://github.com/harrybournis/org-fancy-priorities")
6419 (synopsis "Display org priorities as custom strings")
6421 "This package provides a minor mode that displays Org priorities as
6422 custom strings. This mode does not change your files in any way, it only
6423 displays the priority part of a heading as your preferred string value.")
6424 (license license:expat))))
6426 (define-public emacs-org-fragtog
6428 (name "emacs-org-fragtog")
6434 (url "https://github.com/io12/org-fragtog")
6436 (file-name (git-file-name name version))
6438 (base32 "1xag0pdphigk0ilrj2hacai3p6xgl27jji08aa1zlhq7p3rbay7m"))))
6439 (build-system emacs-build-system)
6442 (home-page "https://github.com/io12/org-fragtog")
6443 (synopsis "Toggle Org mode LaTeX fragments preview at cursor")
6445 "Org mode supports inline image previews of LaTeX fragments. This
6446 package automates this, so fragment previews are disabled for editing when
6447 your cursor steps onto them, and re-enabled when the cursor leaves.")
6448 (license license:gpl3+)))
6450 (define-public emacs-ob-erlang
6451 (let ((revision "1")
6452 (commit "a029c23902b4ad73b84f262a7fc5b98d87b63dfd"))
6454 (name "emacs-ob-erlang")
6455 (version (git-version "20210321" revision commit))
6459 (url "https://github.com/xfwduke/ob-erlang")
6461 (file-name (git-file-name name version))
6464 "1dlb9qgmijff4giglwb358g5zzyjbnay0wkr5spks1bawvyxpiyl"))))
6465 (build-system emacs-build-system)
6466 (home-page "https://github.com/xfwduke/ob-erlang/")
6467 (synopsis "Org-babel support for Erlang")
6468 (description "This package adds support for working with Erlang code
6469 blocks with @code{org-babel} in @code{org-mode}.")
6470 (license license:gpl3+))))
6472 (define-public emacs-ob-restclient
6473 (let ((commit "1b021ce1c67c97fa1aa4d2c0816edb7add129e48"))
6475 (name "emacs-ob-restclient")
6476 (version (git-version "0.02" "3" commit))
6481 (url "https://github.com/alf/ob-restclient.el")
6483 (file-name (git-file-name name version))
6485 (base32 "1bcjj01q5n9w2cch6brbz8pzwnwsmdlgaa4sf5s97b9frmqb2ffg"))))
6487 (list emacs-restclient))
6488 (build-system emacs-build-system)
6489 (home-page "https://github.com/alf/ob-restclient.el")
6490 (synopsis "Org-babel functionality for @code{restclient-mode}")
6492 "This package integrates @code{restclient-mode} with Org.")
6493 (license license:gpl3+))))
6495 (define-public emacs-org-now
6496 (let ((commit "8f6b277a73f1c66e58ccb4b7f40d406851befc91"))
6498 (name "emacs-org-now")
6499 (version (git-version "0.1-pre" "1" commit))
6504 (url "https://github.com/alphapapa/org-now")
6506 (file-name (git-file-name name version))
6508 (base32 "117zzkryznznk6h4i1jqzdn888nl019xrgxm2gza0lndx8dxsg2c"))))
6511 (build-system emacs-build-system)
6512 (home-page "https://github.com/alphapapa/org-now")
6513 (synopsis "Show current Org tasks in a sidebar")
6515 "This package provides commands to show Org headings in a sidebar
6516 window while working on them. After defining one heading as the \"now\"
6517 heading, other headings can be refiled to it with one command, and back to
6518 their original location with another.")
6519 (license license:gpl3+))))
6521 (define-public emacs-orgmdb
6523 (name "emacs-orgmdb")
6529 (url "https://github.com/isamert/orgmdb.el")
6530 (commit "66c13abdb84e0f0a31bae6cfda27478771d58d8e")))
6533 "1hvxha0ih9jhvwj07l6jnpf2vzhgvb6ii73g49c8saxld61l0frf"))
6534 (file-name (git-file-name name version))))
6535 (build-system emacs-build-system)
6538 #~(modify-phases %standard-phases
6539 (add-after 'unpack 'configure
6540 (lambda* (#:key inputs #:allow-other-keys)
6541 (substitute* "orgmdb.el"
6544 (search-input-file inputs "/bin/fd")
6549 (list emacs-dash emacs-org emacs-s))
6550 (home-page "https://github.com/isamert/orgmdb.el")
6551 (synopsis "Emacs' Org mode watchlist manager and OMDb API client")
6552 (description "This package adds tools for managing your watchlist in Emacs'
6553 Org mode and some functions for interacting with the OMDb API.")
6554 (license license:gpl3+)))
6556 (define-public emacs-rich-minority
6558 (name "emacs-rich-minority")
6564 (url "https://github.com/Malabarba/rich-minority")
6566 (file-name (git-file-name name version))
6569 "1kn7c9qr9ykj68iqffzzmjsr6aazwac8cxb7j960sjb282rq0yyj"))))
6570 (build-system emacs-build-system)
6571 (home-page "https://github.com/Malabarba/rich-minority")
6572 (synopsis "Clean-up and beautify the list of minor modes")
6574 "This Emacs package hides and/or highlights minor modes in the
6576 (license license:gpl2+)))
6578 (define-public emacs-robe
6586 (url "https://github.com/dgutov/robe")
6588 (file-name (git-file-name name version))
6590 (base32 "1xbj7wi389n6pxfvxrakvhylkdlqg8ll9ad2zmxggcchygwah6nl"))))
6591 (build-system emacs-build-system)
6593 '(#:include (cons "^lib\\/" %default-include)))
6595 (list emacs-inf-ruby))
6596 (home-page "https://github.com/dgutov/robe")
6597 (synopsis "Ruby code assistance tool for Emacs")
6599 "Robe can provide information on loaded classes and modules in Ruby code,
6600 as well as where methods are defined. This allows the user to jump to method
6601 definitions, modules and classes, display method documentation and provide
6602 method and constant name completion.")
6603 (license license:gpl3+)))
6605 (define-public emacs-robot-mode
6607 (name "emacs-robot-mode")
6613 (url "https://github.com/kopoli/robot-mode")
6615 (file-name (git-file-name name version))
6617 (base32 "10i4lwjf60ms3dj8s7k9c0vb24rhszskhciz9lijphcdh8k622hz"))))
6618 (build-system emacs-build-system)
6619 (home-page "https://github.com/kopoli/robot-mode")
6620 (synopsis "Emacs mode for Robot Framework")
6622 "This major mode facilitates editing Robot Framework source files with
6623 features such as syntax highlighting, comments, finding keywords, completing
6624 keywords and smart indentation.")
6625 (license license:gpl3+)))
6627 (define-public emacs-robot-log
6629 (name "emacs-robot-log")
6634 (url "https://git.sr.ht/~apteryx/emacs-robot-log")
6636 (file-name (git-file-name name version))
6639 "1l9yxryrhvylh2x17cczd8v8978w1nv8173d4l9hv0cr26kp5b68"))))
6640 (build-system emacs-build-system)
6641 (native-inputs (list python-robotframework))
6642 (arguments (list #:tests? #t))
6643 (home-page "https://sr.ht/~apteryx/emacs-robot-log/")
6644 (synopsis "Emacs major mode for viewing RobotFramework debug log files")
6645 (description "@code{robot-log} is an Emacs major mode that allows more
6646 easily viewing and navigating RobotFramework debug log files. It provides
6647 syntax highlighting and convenient shortcuts to move from one keyword to the
6648 next, or locate errors.")
6649 (license license:gpl3+)))
6651 (define-public emacs-robots-txt-mode
6653 (name "emacs-robots-txt-mode")
6658 (url "https://github.com/emacs-php/robots-txt-mode")
6660 (file-name (git-file-name name version))
6663 "07255pn80w4742sz2h9vbmfxxd8ps2kcn73p7m2bgy02kgbzw42b"))))
6664 (build-system emacs-build-system)
6665 (home-page "https://github.com/emacs-php/robots-txt-mode")
6666 (synopsis "Syntax highlighting for @file{robots.txt} files")
6667 (description "This package provides an Emacs major mode for editing
6668 @file{robots.txt} files.")
6669 (license license:gpl3+)))
6671 (define-public emacs-roguel-ike
6673 (name "emacs-roguel-ike")
6679 (url "https://github.com/stevenremot/roguel-ike")
6681 (file-name (git-file-name name version))
6683 (base32 "0rgv4y9aa5cc2ddz3y5z8d22xmr8kf5c60h0r3g8h91jmcw3rb4z"))))
6684 (build-system emacs-build-system)
6689 #:include #~(cons* "^roguel-ike/" "^roguel-ike-lib/" %default-include)
6691 #~(modify-phases %standard-phases
6692 (add-before 'check 'set-test-environment
6694 (setenv "HOME" "/tmp"))))))
6695 (home-page "https://github.com/stevenremot/roguel-ike.git")
6696 (synopsis "Coffee-break roguelike for Emacs")
6698 "Roguel-ike is an attempt to develop a coffee-break roguelike for
6699 Emacs. The complete game would allow the player to create various characters
6700 and to make them fulfill challenges like arena fight and short dungeon
6702 (license license:gpl3+)))
6704 (define-public emacs-rspec
6705 (let ((commit "66ea7cc9699d6edc6115daa024818adbd85efc20")
6708 (name "emacs-rspec")
6709 (version (git-version "1.11" revision commit))
6714 (url "https://github.com/pezra/rspec-mode")
6716 (file-name (git-file-name name version))
6718 (base32 "0b11s8r0pi7ah54km4yg4fqff8wkk409d25qnlwm1l94pdwjd1c8"))))
6719 (build-system emacs-build-system)
6721 `(#:include (cons "^snippets\\/rspec-mode\\/" %default-include)
6723 #:test-command '("make" "test")))
6724 (home-page "https://github.com/pezra/rspec-mode")
6725 (synopsis "Provides a rspec mode for working with RSpec")
6727 "The Emacs RSpec mode provides keybindings for Ruby source files, e.g. to
6728 verify the spec associated with the current buffer, or entire project, as well
6729 as moving between the spec files, and corresponding code files.
6731 Also included are keybindings for spec files and Dired buffers, as well as
6732 snippets for yasnippet.")
6733 (license license:gpl3+))))
6735 (define-public emacs-mode-line-idle
6736 ;; Package has no release. Version is extracted from "Version:" keyword in
6738 (let ((commit "02b1da6278e43cc9cc0356110cc6bfbb37eb8241")
6741 (name "emacs-mode-line-idle")
6742 (version (git-version "0.1" revision commit))
6746 (file-name (git-file-name name version))
6748 (url "https://gitlab.com/ideasman42/emacs-mode-line-idle")
6751 (base32 "0ky330b2sfbzkbxbfp9b21hdywsjw26bllspglz08hrbni7jmry8"))))
6752 (build-system emacs-build-system)
6753 (home-page "https://gitlab.com/ideasman42/emacs-mode-line-idle")
6754 (synopsis "Simple delayed text evaluation for the mode-line")
6756 "Mode Line Idle provides a convenient way to defer text evaluation
6757 which integrates into existing mode-line without requiring a minor mode or
6759 (license license:gpl3+))))
6761 (define-public emacs-nyan-mode
6763 (name "emacs-nyan-mode")
6769 (url "https://github.com/TeMPOraL/nyan-mode/")
6770 (commit (string-append "v" version))))
6771 (file-name (git-file-name name version))
6773 (base32 "0d0hdjliad8afz4br38gwidph9zhmm5s09y45n95kqlazq62jfsx"))))
6774 (build-system emacs-build-system)
6777 #:include #~(cons* "img/" "mus/" %default-include)
6779 #~(modify-phases %standard-phases
6780 (add-after 'unpack 'patch-sources
6781 (lambda* (#:key inputs #:allow-other-keys)
6782 (substitute* "nyan-mode.el"
6784 (string-append (search-input-file inputs "bin/mplayer")
6786 (inputs (list mplayer))
6787 (home-page "https://github.com/TeMPOraL/nyan-mode/")
6788 (synopsis "Nyan Cat as buffer position indicator")
6790 "Nyan mode is an analog indicator of your position in the buffer. The cat
6791 should go from left to right in your mode-line, as you move your point from 0%
6792 to 100%. You can click on the rainbow or the empty space to scroll backwards
6793 and forwards and also animate it.")
6794 (license license:gpl3+)))
6796 (define-public emacs-smart-mode-line
6798 (name "emacs-smart-mode-line")
6804 (url "https://github.com/Malabarba/smart-mode-line")
6806 (file-name (git-file-name name version))
6808 (base32 "1h5w5lrgrmhpaqwppg5msylh7z78mvwy9mm8xiiv8w4wxvncxxl2"))))
6809 (build-system emacs-build-system)
6811 (list emacs-rich-minority))
6812 (home-page "https://github.com/Malabarba/smart-mode-line")
6813 (synopsis "Color-coded smart mode-line")
6815 "Smart Mode Line is a mode-line theme for Emacs. It aims to be easy to
6816 read from small to large monitors by using colors, a prefix feature, and smart
6818 (license license:gpl2+)))
6820 (define-public emacs-sqlite
6821 ;; XXX: There is no tagged commit.
6822 (let ((commit "dad42b8bbca4994be1871343dd18fd6528ee5797")
6825 (name "emacs-sqlite")
6826 (build-system emacs-build-system)
6827 (version (git-version "1.0" revision commit))
6832 (url "https://gitlab.com/cnngimenez/sqlite.el")
6834 (file-name (git-file-name name version))
6836 (base32 "06ln4vijl8kii3nzc5cscgsadx1fqgxksflijd3ain83bn8g4wrd"))))
6837 (home-page "https://gitlab.com/cnngimenez/sqlite.el")
6838 (synopsis "SQLite interface for Emacs Lisp")
6839 (description "Emacs SQLite is a simple SQLite interface for connecting
6840 and retrieving information using the SQLite program through Elisp programming.
6841 It is not intended as a user interface.")
6842 (license license:gpl3+))))
6844 (define-public emacs-sqlite3-api
6846 (name "emacs-sqlite3-api")
6851 (url "https://github.com/pekingduck/emacs-sqlite3-api")
6852 (commit (string-append "v" version))))
6853 (file-name (git-file-name name version))
6856 "0yrfwb3yvhp1ib4izxh1ds68b3zw8gjkjhlk1kivarxnfjnjnly2"))))
6857 (build-system emacs-build-system)
6860 #:tests? (not (%current-target-system))
6861 #:test-command #~(list "make" "test" "EMACS=emacs")
6862 #:modules '((guix build emacs-build-system)
6863 (guix build emacs-utils)
6866 #~(modify-phases %standard-phases
6867 (add-after 'unpack 'patch-module-load
6869 (make-file-writable "sqlite3.el")
6870 (emacs-substitute-sexps "sqlite3.el"
6871 ("(require 'sqlite3-api nil t)"
6873 "(module-load \"" #$output "/lib/sqlite3-api.so\")")))))
6874 (add-before 'check 'build-emacs-module
6876 ;; Remove code that fetches constants from the SQLite website
6877 ;; and the call to generate a timestamp.
6878 (invoke "sed" "--in-place" "3,4d;24,28d;31d" "tools/gen-consts.sh")
6879 ;; Remove filter logic from the script that generates the constants.
6880 (invoke "sed" "--in-place" "7,11d;18,22d" "tools/gen-consts.py")
6881 ;; Generate the consts.c file.
6882 (invoke "make" "--directory=tools")
6883 ;; Remove the SQLITE_STATIC and SQLITE_TRANSIENT
6884 ;; constants. They cause a compilation warning and would have
6885 ;; been removed by the original script.
6886 (invoke "sed" "--in-place" "/ifdef SQLITE_STATIC/,+2d" "consts.c")
6887 (invoke "sed" "--in-place" "/ifdef SQLITE_TRANSIENT/,+2d" "consts.c")
6888 ;; Compile the shared object file.
6889 (invoke "make" #$(string-append "CC=" (cc-for-target)))
6890 ;; Move the shared object file into /lib.
6891 (install-file "sqlite3-api.so"
6892 (string-append #$output "/lib")))))))
6893 (native-inputs (list python sed))
6894 (inputs (list sqlite))
6895 (home-page "https://github.com/pekingduck/emacs-sqlite3-api")
6896 (synopsis "Dynamic module for Emacs to access the SQLite C interface")
6897 (description "This package provides a dynamic module for Emacs that allows
6898 direct access to the SQLite C interface. It only exposes a subset of the full
6899 SQLite C interface, but should satisfy most user's needs.")
6900 (license license:gpl3+)))
6902 (define-public emacs-sr-speedbar
6903 (let ((commit "77a83fb50f763a465c021eca7343243f465b4a47")
6906 (name "emacs-sr-speedbar")
6907 (version (git-version "20161025" revision commit))
6912 (url "https://github.com/emacsorphanage/sr-speedbar")
6914 (file-name (git-file-name name version))
6917 "0sd12555hk7z721y00kv3crdybvcn1i08wmd148z5imayzibj153"))))
6918 (build-system emacs-build-system)
6919 (home-page "https://www.emacswiki.org/emacs/SrSpeedbar")
6920 (synopsis "Same frame Emacs @code{speedbar}")
6922 "This Emacs package allows you to show @code{M-x speedbar} in the
6923 same frame (in an extra window). You can customize the initial width of
6924 the speedbar window.")
6925 (license license:gpl3+))))
6927 (define-public emacs-shell-switcher
6929 (name "emacs-shell-switcher")
6935 (url "https://github.com/DamienCassou/shell-switcher")
6936 (commit (string-append "v" version))))
6937 (file-name (git-file-name name version))
6939 (base32 "0ia7sdip4hl27avckv3qpqgm3k4ynvp3xxq1cy53bqfzzx0gcria"))))
6940 (build-system emacs-build-system)
6941 (home-page "https://github.com/DamienCassou/shell-switcher")
6942 (synopsis "Provide fast switching between shell buffers")
6944 "This package provides commands to quickly switch between shell buffers.")
6945 (license license:gpl3+)))
6947 (define-public emacs-shx
6954 (url "https://github.com/riscy/shx-for-emacs")
6955 (commit (string-append "v" version))))
6956 (file-name (git-file-name name version))
6958 (base32 "1cb5w6p9gnfxgh8qp7yj2f5ibpk1b4b5af3ynldaaj6yfpa8hqzn"))))
6959 (build-system emacs-build-system)
6963 '("emacs" "--batch" "--quiet"
6964 "--script" "test/script.el")))
6965 (home-page "https://github.com/riscy/shx-for-emacs")
6966 (synopsis "Extras for the comint-mode shell")
6968 "This package extends @code{comint-mode}: it parses markup in the output
6969 stream, enabling plots and graphics to be embedded, and adds command-line
6970 functions which plug into Emacs (e.g. use @code{:e <filename>} to edit a
6972 (license license:gpl3+)))
6974 (define-public emacs-names
6975 (let ((commit "d8baba5360e5253938a25d3e005455b6d2d86971")
6976 (version "20151201.0")
6979 (name "emacs-names")
6980 (version (git-version version revision commit))
6985 (url "https://github.com/Malabarba/names")
6987 (file-name (git-file-name name version))
6990 "11wyha2q8y7bzqq3jrzix8n97ywvsibvddrahqcps1a1yqk4hzfz"))))
6991 (build-system emacs-build-system)
6992 (home-page "https://github.com/Malabarba/names/")
6993 (synopsis "Namespace implementation for Emacs Lisp")
6995 "This package provides a macro that writes your namespaces for you.")
6996 (license license:gpl3+))))
6998 (define-public emacs-nameless
7000 (name "emacs-nameless")
7006 (url "https://github.com/Malabarba/Nameless")
7008 (file-name (git-file-name name version))
7010 (base32 "107q1rximjnag9r9vgwh0iv687i3rsscbdnjc46f8l16j6vi4n7d"))))
7011 (build-system emacs-build-system)
7012 (home-page "https://github.com/Malabarba/nameless")
7013 (synopsis "Hide package namespace in your Emacs-lisp code")
7015 "This package provides a @code{nameless-mode} minor mode in which the
7016 package namespace prefix is hidden by a colon.")
7017 (license license:gpl2+)))
7019 (define-public emacs-evil-leader
7021 (name "emacs-evil-leader")
7028 (url "https://github.com/cofi/evil-leader")
7030 (file-name (git-file-name name version))
7032 (base32 "1k2zinchs0jjllp8zkpggckyy63dkyi5yig3p46vh4w45jdzysk5"))))
7035 (build-system emacs-build-system)
7036 (home-page "https://github.com/cofi/evil-leader")
7037 (synopsis "Implement <leader> feature from Vim")
7039 "Evil Leader provides the @code{<leader>} feature from Vim that provides
7040 an easy way to bind keys under a configurable prefix key.")
7041 (license license:gpl3+)))
7043 (define-public emacs-evil-tex
7045 (name "emacs-evil-tex")
7051 (url "https://github.com/iyefrat/evil-tex")
7053 (file-name (git-file-name name version))
7055 (base32 "1wrx8ihimn1sx3vzzfppcwv0yfh3x95jrkxqvzj0ykckipm3zk0b"))))
7056 (build-system emacs-build-system)
7059 (modify-phases %standard-phases
7060 (add-before 'build 'set-home
7061 (lambda _ (setenv "HOME" "/tmp"))))))
7063 (list emacs-auctex emacs-evil))
7064 (home-page "https://github.com/iyefrat/evil-tex")
7065 (synopsis "Evil oriented additions for editing LaTeX")
7066 (description "This package is a toolbox for LaTeX editing with Evil. It
7067 provides many text objects fully utilizing @code{evil-surround}, some useful
7068 movements, and keymaps for quickly entering environments or
7069 @code{cdlatex}-like accents.")
7070 (license license:gpl3+)))
7072 (define-public emacs-evil-textobj-syntax
7073 (let ((commit "2d9ba8c75c754b409aea7469f46a5cfa52a872f3")
7077 (name "emacs-evil-textobj-syntax")
7078 (version (git-version version revision commit))
7083 (url "https://github.com/laishulu/evil-textobj-syntax/")
7085 (file-name (git-file-name name version))
7088 "031p5i3274dazp7rz6m5y38shfgszm1clmkcf58qfqlvy978ammc"))))
7089 (build-system emacs-build-system)
7090 (propagated-inputs (list emacs-evil emacs-names))
7091 (home-page "https://github.com/laishulu/evil-textobj-syntax/")
7092 (synopsis "Text objects based on syntax highlighting")
7094 "This package provides text objects for @code{evil-mode} with
7095 boundaries defined by syntax highlighting.")
7096 (license license:gpl3+))))
7098 (define-public emacs-flycheck-flow
7099 (let ((commit "9e8e52cfc98af6a23fd906f9cb5d5d470d8cf82d")
7103 (name "emacs-flycheck-flow")
7104 (version (git-version version revision commit))
7109 (url "https://github.com/lbolla/emacs-flycheck-flow")
7111 (file-name (git-file-name name version))
7114 "14qldlisbmxzammr500gyha2hiv2xgyzfc6mysqii06kbcqn1ik1"))))
7115 (build-system emacs-build-system)
7117 (list emacs-flycheck))
7118 (home-page "https://github.com/lbolla/emacs-flycheck-flow")
7119 (synopsis "Flow support for @code{flycheck-mode}")
7121 "This package allows @code{flycheck-mode} to provide syntax-checking
7123 (license license:gpl3+))))
7125 (define-public emacs-flycheck-grammalecte
7127 (name "emacs-flycheck-grammalecte")
7133 (url "https://git.umaneti.net/flycheck-grammalecte/")
7134 (commit (string-append "v" version))))
7135 (file-name (git-file-name name version))
7137 (base32 "040mb9djj4cxpjsjch9i30pi36a2z7grkhnsnfdi5qyh341p4pq0"))))
7138 (build-system emacs-build-system)
7140 `(#:include (cons "\\.py$" %default-include)
7141 #:exclude '("^test-profile.el$")
7142 #:emacs ,emacs ;need libxml support
7144 (modify-phases %standard-phases
7145 (add-after 'unpack 'specify-python-location
7146 ;; Hard-code python3 executable location in the library.
7147 (lambda* (#:key inputs #:allow-other-keys)
7148 (let ((python3 (search-input-file inputs "/bin/python3")))
7149 (substitute* '("flycheck-grammalecte.el" "grammalecte.el")
7150 (("\"python3") (string-append "\"" python3)))
7151 (substitute* '("conjugueur.py" "flycheck_grammalecte.py")
7152 (("/usr/bin/env python3?") python3)))))
7153 (add-after 'unpack 'specify-grammalecte-location
7154 ;; Use our own Grammalecte.
7155 (lambda* (#:key inputs #:allow-other-keys)
7156 (make-file-writable "grammalecte.el")
7157 (emacs-substitute-variables "grammalecte.el"
7158 ("grammalecte-python-package-directory"
7159 (search-input-directory
7161 (string-append "lib/python"
7162 ,(version-major+minor (package-version python))
7163 "/site-packages/grammalecte"))))))
7164 (add-after 'unpack 'do-not-phone-home
7165 ;; Do not check for Grammalecte updates, ever.
7167 (make-file-writable "grammalecte.el")
7168 (emacs-substitute-variables "grammalecte.el"
7169 ("grammalecte-check-upstream-version-delay" 0)))))))
7171 (list grammalecte python))
7173 (list emacs-flycheck))
7174 (home-page "https://git.umaneti.net/flycheck-grammalecte/")
7175 (synopsis "Integrate Grammalecte with Flycheck")
7177 "Integrate the French grammar and typography checker Grammalecte with
7178 Flycheck to automatically look for mistakes in your writings. It also
7179 provides an easy way to find synonyms and antonyms for a given word (to avoid
7180 repetitions for example).")
7181 (license license:gpl3+)))
7183 (define-public emacs-flycheck-guile
7185 (name "emacs-flycheck-guile")
7192 (url "https://github.com/flatwhatson/flycheck-guile")
7194 (file-name (git-file-name name version))
7196 (base32 "0hkj3y7xlbbnwagmccav620r3qngpc909pj3n5b876r8gp6rm87p"))))
7198 (list emacs-flycheck emacs-geiser emacs-geiser-guile))
7199 (build-system emacs-build-system)
7200 (home-page "https://github.com/flatwhatson/flycheck-guile")
7201 (synopsis "GNU Guile support for Flycheck")
7203 "This package provides a Flycheck checker for GNU Guile using @code{guild
7205 (license license:gpl3+)))
7207 (define-public emacs-flycheck-ledger
7209 (name "emacs-flycheck-ledger")
7215 (url "https://github.com/purcell/flycheck-ledger")
7217 (file-name (git-file-name name version))
7219 (base32 "1djrj3is0dzrl2703bw7bclf33dp4xqmy144q7xj5pvpb9v3kf50"))))
7223 #~(modify-phases %standard-phases
7224 (add-after 'unpack 'configure
7226 (let ((ledger #$(this-package-input "ledger")))
7227 ;; Specify the absolute executable location of ledger.
7228 (substitute* "flycheck-ledger.el"
7229 (("\"ledger\"") (string-append "\"" ledger "\"")))))))))
7230 (inputs (list ledger))
7232 (list emacs-flycheck))
7233 (build-system emacs-build-system)
7234 (home-page "https://github.com/purcell/flycheck-ledger")
7235 (synopsis "Ledger support for Flycheck")
7237 "This Flycheck checker uses the output of @code{ledger balance} on the
7238 current file to find errors such as unbalanced transactions and syntax
7240 (license license:gpl3+)))
7242 (define-public emacs-flycheck-rust
7244 (name "emacs-flycheck-rust")
7251 (url "https://github.com/flycheck/flycheck-rust")
7253 (file-name (git-file-name name version))
7255 (base32 "1fh6j5w2387nh2fwwjphkhq17cgj5m2q5k0fhidvgc2w65lzbr1r"))))
7257 (list emacs-dash emacs-flycheck emacs-let-alist))
7258 (build-system emacs-build-system)
7259 (home-page "https://github.com/flycheck/flycheck-rust")
7260 (synopsis "Rust/Cargo support for Flycheck")
7262 "This Flycheck extension configures Flycheck automatically for
7263 the current Cargo project.")
7264 (license license:gpl3+)))
7266 (define-public emacs-flycheck-package
7268 (name "emacs-flycheck-package")
7274 (url "https://github.com/purcell/flycheck-package")
7276 (file-name (git-file-name name version))
7279 "00py39n1383761wq6wp194pvyk94ydqdbxj9kl64g9jnipkp7849"))))
7280 (build-system emacs-build-system)
7282 (list emacs-flycheck emacs-package-lint))
7283 (home-page "https://github.com/purcell/flycheck-package")
7284 (synopsis "Flycheck checker for elisp package metadata")
7286 "This library provides a flycheck checker for the metadata in Emacs Lisp
7287 files which are intended to be packages.")
7288 (license license:gpl3+)))
7290 (define-public emacs-flymake-proselint
7291 (let ((commit "9c68ee881f18f554f0ab5bbf5bee1a4b753d792b"))
7293 (name "emacs-flymake-proselint")
7298 (url "https://git.sr.ht/~manuel-uberti/flymake-proselint")
7300 (file-name (git-file-name name version))
7303 "1n8i17il2nfazw3d9kza2r7py61dgdr7kqmg0s1vhrk86qq39669"))))
7304 (build-system emacs-build-system)
7308 #~(modify-phases %standard-phases
7309 (add-after 'unpack 'patch-exec-paths
7310 (lambda* (#:key inputs #:allow-other-keys)
7311 (substitute* "flymake-proselint.el"
7314 "\"" (search-input-file inputs "/bin/proselint") "\""))))))))
7316 (list python-proselint))
7317 (home-page "https://git.sr.ht/~manuel-uberti/flymake-proselint")
7318 (synopsis "Flymake backend for @code{proselint}")
7319 (description "This package adds support for @code{proselint} in Flymake.")
7320 (license license:gpl3+))))
7322 (define-public emacs-elisp-demos
7324 (name "emacs-elisp-demos")
7325 (version "2020.02.19")
7330 (url "https://github.com/xuchunyang/elisp-demos")
7332 (file-name (git-file-name name version))
7335 "0mckgaz92v3y2vlkggx9kd51fd1mahylw39c42l51dyv8wscm7sc"))))
7336 (build-system emacs-build-system)
7338 `(#:include '("\\.el$" "\\.org$")
7340 #:test-command '("make" "test")))
7341 (home-page "https://github.com/xuchunyang/elisp-demos/")
7342 (synopsis "Enhance @code{*Help*} buffers with additional examples")
7344 "This package injects example uses of Elisp functions into their
7345 respective @code{*Help*} buffers.")
7346 (license license:gpl3+)))
7348 (define-public emacs-docker-compose-mode
7350 (name "emacs-docker-compose-mode")
7356 (url "https://github.com/meqif/docker-compose-mode")
7358 (file-name (git-file-name name version))
7361 "1fbcxwfvm33xcdj3cs26d9i1zyrryyjjkv7sc3mfxd45nq8d3ivj"))))
7362 (build-system emacs-build-system)
7364 (list emacs-dash emacs-f emacs-yaml-mode))
7365 (home-page "https://github.com/meqif/docker-compose-mode/")
7366 (synopsis "Major mode for editing @file{docker-compose} files")
7368 "This is a major mode for @file{docker-compose} files that provides
7369 completion of relevant keywords.")
7370 (license license:expat)))
7372 (define-public emacs-dvc
7373 (let ((revision "591") ;no tags or official releases
7374 (guix-revision "1"))
7377 (version (string-append "0.0.0-" guix-revision "." revision))
7383 (revision revision)))
7385 (base32 "03pqn493w70wcpgaxvqnfgynxghw114l9pyiv3r414d84vzhan6h"))
7386 (file-name (string-append name "-" version "-checkout"))))
7387 (build-system gnu-build-system)
7390 #:modules `((guix build gnu-build-system)
7391 ((guix build emacs-build-system) #:prefix emacs:)
7393 #:imported-modules `(,@%gnu-build-system-modules
7394 (guix build emacs-build-system)
7395 (guix build emacs-utils))
7397 #~(list (string-append "--with-lispdir="
7398 (emacs:elpa-directory #$output)))
7399 #:tests? #f ;no test suite
7401 #~(modify-phases %standard-phases
7402 (add-before 'build 'set-home
7403 ;; Something in dvc-bookmarks.el attempts to write config files
7404 ;; in $HOME during the autoload generation.
7405 (lambda _ (setenv "HOME" (getenv "TMPDIR"))))
7406 (add-before 'build 'fix-texinfo
7407 ;; See https://bugs.launchpad.net/dvc/+bug/1264383.
7409 (substitute* "texinfo/dvc-intro.texinfo"
7410 (("@itemx update ``to''") "@item update ``to''")
7411 (("@itemx brief") "@item brief")
7412 (("@itemx full") "@item full")
7413 (("@itemx drop") "@item drop")
7414 (("@itemx left file") "@item left file")))))))
7416 (list autoconf automake emacs-minimal texinfo))
7417 (home-page "http://xsteve.at/prg/emacs_dvc/index.html")
7418 (synopsis "Emacs front-end for various distributed version control systems")
7419 (description "DVC is a legacy Emacs front-end for a number of
7420 distributed version control systems. It currently supports GNU Arch, GNU
7421 Bazaar, git, Mercurial, and Monotone. It also provides some integration with
7422 Gnus, e.g., for applying patches received by email.")
7423 (license license:gpl2+))))
7425 (define-public emacs-sudo-edit
7427 (name "emacs-sudo-edit")
7433 (url "https://github.com/nflath/sudo-edit")
7434 (commit (string-append "v" version))))
7435 (file-name (git-file-name name version))
7437 (base32 "1hncxbg5lvywzkwvdmzvrz71midy4samjq2vvxxhz90z1y5l8l29"))))
7438 (build-system emacs-build-system)
7440 (list emacs-undercover))
7445 #~(modify-phases %standard-phases
7446 (add-before 'check 'fix-makefile
7448 (substitute* "Makefile"
7449 (("\\$\\(CASK\\) exec ") "")))))
7451 #:test-command #~(list "make" "test")))
7452 (home-page "https://github.com/nflath/sudo-edit/")
7453 (synopsis "Open files as another user")
7455 "This package allows editing files as another user, including the root
7457 (license license:gpl3+)))
7459 (define-public emacs-subed
7461 (name "emacs-subed")
7465 (uri (string-append "https://elpa.nongnu.org/nongnu/subed-"
7469 "0q2sfdypj929y4fllk97rsb2bxm9a1izjy1f0z2viz5hz0hpqp26"))))
7473 #:test-command #~(list "make" "test-only")))
7475 (list emacs-buttercup))
7476 (build-system emacs-build-system)
7477 (home-page "https://elpa.nongnu.org/nongnu/subed.html")
7478 (synopsis "Major mode for editing subtitles")
7480 "@code{subed} is an Emacs major mode for editing subtitles while playing
7481 the corresponding video with @code{mpv}. At the moment, the only supported
7482 formats are SubRip (@file{.srt}), WebVTT (@file{.vtt}), and Advanced
7483 SubStation Alpha (@file{.ass}).")
7484 (license license:gpl3+)))
7486 (define-public emacs-miniedit
7488 (name "emacs-miniedit")
7494 (url "https://github.com/emacsmirror/miniedit")
7496 (file-name (git-file-name name version))
7499 "1850z96gly0jnr50472idqz1drzqarr0n23bbasslrc501xkg0bq"))))
7500 (build-system emacs-build-system)
7501 (home-page "https://github.com/emacsmirror/miniedit/")
7502 (synopsis "Enhanced editing for minibuffer fields")
7504 "This package provides a function that can be called from the
7505 minibuffer to enable editing the minibuffer input in another buffer with
7506 @code{text-mode} enabled.")
7507 (license license:gpl2+)))
7509 (define-public emacs-ob-ipython
7511 (name "emacs-ob-ipython")
7512 (version "20180224")
7516 (commit "7147455230841744fb5b95dcbe03320313a77124")
7517 (url "https://github.com/gregsexton/ob-ipython")))
7518 (file-name (git-file-name name version))
7521 "1a10fc2jk37ni5sjjvf87s5nyaz2a6h2mlj5dxh4dhv5sd3bb85p"))))
7522 (build-system emacs-build-system)
7525 (home-page "http://www.gregsexton.org")
7526 (synopsis "Org-Babel functions for IPython evaluation")
7527 (description "This package adds support to Org-Babel for evaluating Python
7528 source code using IPython.")
7529 (license license:gpl3+)))
7531 (define-public emacs-ob-async
7533 (name "emacs-ob-async")
7539 (url "https://github.com/astahlman/ob-async")
7540 (commit (string-append "v" version))))
7541 (file-name (git-file-name name version))
7543 (base32 "10x4hxrjm4pr6vg42a961h9ilqzyd0l0fv7fsbq9clxi439f1nd6"))))
7544 (build-system emacs-build-system)
7546 (list emacs-async emacs-dash))
7547 (home-page "https://github.com/astahlman/ob-async")
7548 (synopsis "Asynchronous src_block execution for org-babel")
7549 (description "@code{ob-async} enables asynchronous execution of org-babel
7551 (license license:gpl3+)))
7553 (define-public emacs-ol-notmuch
7554 (let ((commit "1a53d6c707514784cabf33d865b577bf77f45913")
7557 (name "emacs-ol-notmuch")
7558 (version (git-version "2.0.0" revision commit))
7563 (url "https://git.sr.ht/~tarsius/ol-notmuch")
7567 "16p7j51z8r047alwn2hkb6944f7ds29ckb97b4k8ia00vwch0d67"))
7568 (file-name (git-file-name name version))))
7569 (build-system emacs-build-system)
7571 (list emacs-compat emacs-notmuch emacs-org))
7572 (home-page "https://git.sr.ht/~tarsius/ol-notmuch")
7573 (synopsis "Links to notmuch messages for Emacs' Org mode")
7575 "This package implements links to Notmuch messages and searches for
7576 Emacs' Org mode. A search is a query to be performed by Notmuch; it is the
7577 equivalent to folders in other mail clients. Similarly, mails are referred to
7578 by a query, so both a link can refer to several mails.")
7579 (license license:gpl3+))))
7581 (define-public emacs-debbugs
7583 (name "emacs-debbugs")
7588 (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
7591 (base32 "1w6y02ikjshfk12sdgbryfgj2z4yia2mpifa7g13ab7v9phpqpl1"))))
7592 (build-system emacs-build-system)
7593 (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
7595 (list emacs-soap-client))
7596 (home-page "https://elpa.gnu.org/packages/debbugs.html")
7597 (synopsis "Access the Debbugs bug tracker in Emacs")
7599 "This package lets you access the @uref{http://bugs.gnu.org,GNU Bug
7600 Tracker} from within Emacs.
7602 For instance, it defines the command @code{M-x debbugs-gnu} for listing bugs,
7603 and the command @code{M-x debbugs-gnu-search} for bug searching. If you
7604 prefer the listing of bugs as TODO items of @code{org-mode}, you could use
7605 @code{M-x debbugs-org} and related commands.
7607 A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug
7608 Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.")
7609 (license license:gpl3+)))
7611 (define-public emacs-piem
7619 (url "https://git.kyleam.com/piem")
7620 (commit (string-append "v" version))))
7621 (file-name (string-append name "-" version "-checkout"))
7623 (base32 "0wr6n6wvznngjdp4c0pmdr4xz05dark0kxi5svzhzxsg3rdaql3z"))))
7624 (build-system emacs-build-system)
7627 #~(modify-phases %standard-phases
7628 (add-after 'unpack 'configure
7629 (lambda* (#:key inputs #:allow-other-keys)
7630 (emacs-substitute-variables "piem-b4.el"
7631 ("piem-b4-b4-executable"
7632 (search-input-file inputs "/bin/b4"))))))))
7639 (home-page "https://docs.kyleam.com/piem")
7640 (synopsis "Glue for working with public-inbox archives")
7641 (description "This package provides a collection of Emacs libraries for
7642 working with public-inbox archives. As much of the hard work here is already
7643 done by other Emacs libraries—things like mail clients, news readers, Git
7644 interfaces, and even web browsers—piem is mostly about bridging some of these
7645 parts for convenience.")
7646 (license license:gpl3+)))
7648 (define-public emacs-ert-expectations
7650 (name "emacs-ert-expectations")
7655 (uri "https://www.emacswiki.org/emacs/download/ert-expectations.el")
7658 "0cwy3ilsid90abzzjb7ha2blq9kmv3gfp3icwwfcz6qczgirq6g7"))))
7659 (build-system emacs-build-system)
7660 (home-page "https://www.emacswiki.org/emacs/ert-expectations.el")
7661 (synopsis "Simple unit test framework for Emacs Lisp")
7662 (description "@code{emacs-ert-expectations} is a simple unit test
7663 framework for Emacs Lisp to be used with @code{ert}.")
7664 (license license:gpl3+)))
7666 (define-public emacs-deferred
7668 (name "emacs-deferred")
7670 (home-page "https://github.com/kiwanami/emacs-deferred")
7676 (commit (string-append "v" version))))
7677 (file-name (git-file-name name version))
7679 (base32 "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"))
7681 (search-patches "emacs-deferred-fix-number-of-arguments.patch"))))
7682 (build-system emacs-build-system)
7685 (modify-phases %standard-phases
7686 (add-after 'unpack 'set-shell
7687 ;; Setting the SHELL environment variable is required for the tests
7690 (setenv "SHELL" (which "sh"))))
7691 (add-before 'check 'fix-makefile
7693 (substitute* "Makefile"
7694 (("\\$\\(CASK\\) exec ") "")))))
7696 #:test-command '("make" "test")))
7698 (list emacs-ert-expectations emacs-ert-runner emacs-undercover))
7699 (synopsis "Simple asynchronous functions for Emacs Lisp")
7701 "The @code{deferred.el} library provides support for asynchronous tasks.
7702 The API is almost the same as that of
7703 @uref{https://github.com/cho45/jsdeferred, JSDeferred}, a JavaScript library
7704 for asynchronous tasks.")
7705 (license license:gpl3+)))
7707 (define-public emacs-butler
7709 (name "emacs-butler")
7711 (home-page "https://github.com/AshtonKem/Butler")
7717 (file-name (git-file-name name version))
7720 "1wsk5isza8xqr84w6haal95ssifz6j2lrr5phbsdc90jb9hicbff"))))
7721 (build-system emacs-build-system)
7723 (list emacs-deferred))
7724 (synopsis "Emacs client for Jenkins")
7726 "Butler provides an interface to connect to Jenkins continuous
7727 integration servers. Users can specify a list of server in the
7728 @code{butler-server-list} variable and then use @code{M-x butler-status} to
7729 view the build status of those servers' build jobs, and possibly to trigger
7731 (license license:gpl3+)))
7733 (define-public emacs-zmq
7741 (url "https://github.com/nnicandro/emacs-zmq")
7742 (commit (string-append "v" version))))
7743 (file-name (git-file-name name version))
7745 (base32 "0ngxm5mm0kqgvn8977ryrngamx0khzlw86d8vz5s0jhm2kgwnqp8"))))
7746 (build-system emacs-build-system)
7748 `(#:tests? #f ; no tests
7750 (modify-phases %standard-phases
7751 (add-after 'unpack 'configure
7753 (invoke "make" "src/configure")
7754 (substitute* "src/configure"
7755 (("/bin/sh") (which "sh"))
7756 (("/usr/bin/file") (which "file")))
7758 (add-after 'install 'install-shared-object
7759 (lambda* (#:key inputs outputs #:allow-other-keys)
7760 (let* ((out (assoc-ref outputs "out"))
7761 (site-lisp (string-append out "/share/emacs/site-lisp"))
7762 (libdir (string-append site-lisp "/zmq-0.10.10")))
7763 (copy-file "emacs-zmq.so"
7764 (string-append libdir "/emacs-zmq.so"))))))))
7766 (list autoconf automake libtool pkg-config))
7769 (home-page "https://github.com/nnicandro/emacs-zmq")
7770 (synopsis "Emacs bindings to ØMQ")
7771 (description "This package provides Emacs bindings to ØMQ.")
7772 (license (list license:gpl2+ ;zmq.el
7773 license:gpl3+)))) ;src/emacs-module.h
7775 (define-public emacs-tup-mode
7777 (name "emacs-tup-mode")
7783 (url "https://github.com/ejmr/tup-mode")
7784 (commit (string-append "v" version))))
7785 (file-name (git-file-name name version))
7787 (base32 "0asd024n5v23wdsg1959sszq568wg3a1bp4jrk0cllfji1z0n78y"))))
7788 (build-system emacs-build-system)
7789 (home-page "https://github.com/ejmr/tup-mode")
7790 (synopsis "Major mode for editing ``tupfiles'' used by the Tup build system")
7792 "Tup mode provides syntax highlighting for all of the elements of
7793 tupfiles, such as rule definitions, user-defined variables, macros, flags, bin
7794 variables, and so on. The mode also allows you to execute Tup commands.")
7795 (license license:gpl3+)))
7797 (define-public emacs-compat
7799 (name "emacs-compat")
7800 (version "28.1.2.2")
7804 (url "https://git.sr.ht/~pkal/compat")
7806 (file-name (git-file-name name version))
7809 "1c1pr6zzvgfbsclp1fyx911d4qvihz8hw5mp7g0l0df2rlpypdzw"))))
7810 (build-system emacs-build-system)
7811 (propagated-inputs (list emacs-nadvice))
7812 (home-page "https://git.sr.ht/~pkal/compat")
7813 (synopsis "Emacs Lisp Compatibility Library")
7815 "To allow for the usage of Emacs functions and macros that are defined
7816 in newer versions of Emacs, @code{compat.el} provides definitions that
7817 are installed ONLY if necessary. These reimplementations of functions
7818 and macros are at least subsets of the actual implementations. Be
7819 sure to read the documentation string to make sure.
7821 Not every function provided in newer versions of Emacs is provided
7822 here. Some depend on new features from the core, others cannot be
7823 implemented to a meaningful degree. The main audience for this
7824 library are not regular users, but package maintainers. Therefore
7825 commands and user options are usually not implemented here.")
7826 (license license:gpl3+)))
7828 (define-public emacs-company
7830 (name "emacs-company")
7835 (uri (string-append "https://elpa.gnu.org/packages/"
7836 "company-" version ".tar"))
7838 (base32 "1c9x9wlzzsn7vrsm57l2l44nqx455saa6wrm853szzg09qn8dlnw"))))
7839 (build-system emacs-build-system)
7840 (home-page "https://company-mode.github.io/")
7841 (synopsis "Modular text completion framework")
7843 "Company is a modular completion mechanism. Modules for retrieving
7844 completion candidates are called back-ends, modules for displaying them are
7845 front-ends. Company comes with many back-ends, e.g., @code{company-elisp}.
7846 These are distributed in separate files and can be used individually.")
7847 (license license:gpl3+)))
7849 (define-public emacs-company-box
7850 ;; There is no release yet. Version is extracted from the main
7852 (let ((version "0.0.1")
7854 (commit "be37a9a30dc112ab172af21af694e2cb04a74f85"))
7856 (name "emacs-company-box")
7857 (version (git-version version revision commit))
7862 (url "https://github.com/sebastiencs/company-box")
7864 (file-name (git-file-name name version))
7866 (base32 "13fgmdy51gqdwijqfvb784pirx4lgva0y7ysi0c3fcx8f82cdj59"))))
7867 (build-system emacs-build-system)
7869 (list emacs-company emacs-dash emacs-frame-local))
7870 (home-page "https://github.com/sebastiencs/company-box")
7871 (synopsis "Company front-end with icons")
7873 "Company box is a Company front-end. It supports different
7874 colors for different backends, associates icons to functions,
7875 variables... and their backends, and displays candidate's
7876 documentation. It is not limited by the current window size or
7877 buffer's text properties.
7879 This package is not compatible with a TTY.")
7880 (license license:gpl3+))))
7882 (define-public emacs-company-posframe
7884 (name "emacs-company-posframe")
7889 (url "https://github.com/tumashu/company-posframe")
7890 (commit (string-append "v" version))))
7891 (file-name (git-file-name name version))
7894 "05ays6xkqbxcfplvx7wfc2slflmwc3aw7vkixvabk0ilvisndvgm"))))
7895 (build-system emacs-build-system)
7897 (list emacs-company emacs-posframe))
7898 (home-page "https://github.com/tumashu/company-posframe")
7899 (synopsis "Use a posframe for @code{emacs-company}'s candidate menu")
7901 "Allows @code{emacs-company} to use child frames for its candidate menus.
7903 @code{emacs-company-posframe} is fast enough for daily use and supports CJK
7905 (license license:gpl3+)))
7907 (define-public emacs-irony-mode
7909 (name "emacs-irony-mode")
7911 (home-page "https://github.com/Sarcasm/irony-mode")
7916 (url (string-append home-page ".git"))
7917 (commit (string-append "v" version))))
7918 (file-name (git-file-name name version))
7920 (base32 "1ilvfqn7hzrjjy2zrv08dbdnmgksdgsmrdcvx05s8704430ag0pb"))))
7921 (build-system emacs-build-system)
7925 #~(modify-phases %standard-phases
7926 (add-after 'unpack 'configure
7928 (chmod "irony.el" #o644)
7929 (emacs-substitute-variables "irony.el"
7930 ("irony-server-install-prefix" #$emacs-irony-mode-server)))))))
7931 (inputs (list emacs-irony-mode-server))
7932 (synopsis "C/C++/ObjC Code completion and syntax checks for Emacs")
7933 (description "Irony-mode provides Clang-assisted syntax checking and
7934 completion for C, C++, and ObjC in GNU Emacs. Using @code{libclang} it can
7935 provide syntax checking and autocompletion on compiler level which is very
7936 resistant against false positives. It also integrates well with other
7937 packages like @code{eldoc-mode} and especially @code{company-mode} as
7938 described on the homepage.")
7939 (license license:gpl3+)))
7941 (define-public emacs-irony-mode-server
7943 (inherit emacs-irony-mode)
7944 (name "emacs-irony-mode-server")
7947 (modify-phases %standard-phases
7949 (lambda* (#:key outputs #:allow-other-keys)
7950 (let ((out (assoc-ref outputs "out")))
7953 (string-append "-DCMAKE_INSTALL_PREFIX=" out))))))))
7956 (build-system cmake-build-system)
7957 (synopsis "Server for the Emacs @dfn{irony mode}")))
7959 (define-public emacs-company-irony
7961 (name "emacs-company-irony")
7967 (url "https://github.com/Sarcasm/company-irony")
7968 (commit (string-append "v" version))))
7970 (base32 "1d3jw0d4zymznri86a5iixyxnw16jzkkrbhrh657ys73189c1c73"))
7971 (file-name (git-file-name name version))))
7972 (build-system emacs-build-system)
7974 (list emacs-company emacs-irony-mode))
7975 (synopsis "C++ completion backend for Company using Irony mode")
7976 (description "This backend for Company allows for C++ code completion
7977 with Irony mode using Clang tooling.")
7978 (home-page "https://github.com/Sarcasm/company-irony")
7979 (license license:gpl3+)))
7981 (define-public emacs-flycheck-irony
7983 (name "emacs-flycheck-irony")
7988 (url "https://github.com/Sarcasm/flycheck-irony")
7989 (commit (string-append "v" version))))
7990 (file-name (git-file-name name version))
7992 (base32 "0qa5a8wzvzxwqql92ibc9s43k8sj3vwn7skz9hfr8av0skkhx996"))))
7993 (build-system emacs-build-system)
7995 (list emacs-irony-mode emacs-flycheck emacs-company))
7996 (synopsis "Live syntax checking frontend for Flycheck using irony-mode")
7997 (description "This package provides a frontend for Flycheck that lets
7998 irony-mode do the syntax checking.")
7999 (home-page "https://github.com/Sarcasm/flycheck-irony")
8000 (license license:gpl3+)))
8002 (define-public emacs-irony-eldoc
8004 (name "emacs-irony-eldoc")
8005 (version (package-version emacs-irony-mode))
8010 (url "https://github.com/ikirill/irony-eldoc")
8011 (commit "0df5831eaae264a25422b061eb2792aadde8b3f2")))
8012 (file-name (git-file-name name version))
8014 (base32 "1l5qpr66v1l12fb50yh73grb2rr85xxmbj19mm33b5rdrq2bqmmd"))))
8015 (build-system emacs-build-system)
8017 (list emacs-irony-mode))
8018 (synopsis "Eldoc integration for irony-mode")
8019 (description "Irony-eldoc is an eldoc extension that shows documentation
8020 for the current function or variable in the minibuffer.")
8021 (home-page "https://github.com/ikirill/irony-eldoc")
8022 (license license:gpl3+)))
8024 (define-public emacs-company-quickhelp
8026 (name "emacs-company-quickhelp")
8032 (url "https://github.com/expez/company-quickhelp")
8034 (file-name (git-file-name name version))
8036 (base32 "08ccsfvwdpzpj0gai3xrdb2bv1nl6myjkxsc5774pbvlq9nkfdvr"))))
8037 (build-system emacs-build-system)
8039 (list emacs-pos-tip emacs-company))
8040 (home-page "https://github.com/expez/company-quickhelp")
8041 (synopsis "Popup documentation for completion candidates")
8042 (description "@code{company-quickhelp} shows documentation for the
8043 completion candidate when using the Company text completion framework.")
8044 (license license:gpl3+)))
8046 (define-public emacs-math-symbol-lists
8048 (name "emacs-math-symbol-lists")
8054 (url "https://github.com/vspinu/math-symbol-lists")
8055 (commit (string-append "v" version))))
8056 (file-name (git-file-name name version))
8058 (base32 "1r2i600356k8g0l53s4b5xc24flpka664i8f23zbj4h7gk1g2787"))))
8059 (build-system emacs-build-system)
8060 (home-page "https://github.com/vspinu/math-symbol-lists")
8061 (synopsis "Lists of Unicode math symbols and @code{LaTeX} commands")
8062 (description "This is a storage package used by completion engines like
8063 @code{company-math}.")
8064 (license license:gpl3+)))
8066 (define-public emacs-company-coq
8068 (name "emacs-company-coq")
8075 (url "https://github.com/cpitclaudel/company-coq")
8077 (file-name (git-file-name name version))
8079 (base32 "0dxi4h8xqq5647k7h89s4pi8nwyj3brlhsckrv3p3b1g4dr6mk3b"))))
8081 (list emacs-company emacs-company-math emacs-dash emacs-yasnippet))
8082 (build-system emacs-build-system)
8083 (home-page "https://github.com/cpitclaudel/company-coq")
8084 (synopsis "Emacs extensions for Proof General's Coq mode")
8085 (description "This package includes a collection of Company mode backends
8086 for Proof-General's Coq mode, and many useful extensions to Proof-General. It
8090 @item Prettification of operators, types, and subscripts,
8091 @item Auto-completion,
8092 @item Insertion of cases,
8093 @item Fully explicit intros,
8094 @item Outlines, code folding, and jumping to definition,
8095 @item Help with errors,
8098 (license license:gpl3+)))
8100 (define-public emacs-company-math
8102 (name "emacs-company-math")
8108 (url "https://github.com/vspinu/company-math")
8109 (commit (string-append "v" version))))
8110 (file-name (git-file-name name version))
8112 (base32 "1pj10i7ml5d2spcmf8035ngcq5zc6rs3lqx09d0qj6bsghglr6j3"))))
8113 (build-system emacs-build-system)
8115 (list emacs-company emacs-math-symbol-lists))
8116 (home-page "https://github.com/vspinu/company-math")
8117 (synopsis "Completion backends for math symbols and @code{LaTeX} tags")
8119 "This package provides a backend for use with Company mode allowing for
8120 completion of common math symbols.")
8121 (license license:gpl3+)))
8123 (define-public emacs-compdef
8124 (let ((commit "67104a38763cc819644f711248b170a43bce151b")
8127 (name "emacs-compdef")
8128 (version (git-version "0.2" revision commit))
8133 (url "https://gitlab.com/jjzmajic/compdef.git")
8135 (file-name (git-file-name name version))
8137 (base32 "1f6y6cr67gps9jp5hd20xszfd3k26v70g6z4g5db6wdkvlnc2wkg"))))
8138 (build-system emacs-build-system)
8139 (home-page "https://gitlab.com/jjzmajic/compdef")
8140 (synopsis "Set local completion backends")
8141 (description "This package provides a function to cleanly set local
8142 completion backends according to mode, and integrates with
8143 @code{use-package}.")
8144 (license license:gpl3+))))
8146 (define-public emacs-icomplete-vertical
8148 (name "emacs-icomplete-vertical")
8154 (url "https://github.com/oantolin/icomplete-vertical")
8156 (file-name (git-file-name name version))
8158 (base32 "02v190pb802vck7di39jyf5prvmfsgcxln8mgwsls2b4clx9da97"))))
8159 (build-system emacs-build-system)
8160 (home-page "https://github.com/oantolin/icomplete-vertical")
8161 (synopsis "Display Icomplete candidates vertically")
8163 "This package defines a global minor mode to display Icomplete
8164 completion candidates vertically.")
8165 (license license:gpl3+)))
8167 (define-public emacs-handle
8168 (let ((commit "51c050bc1c6e5caf0eb47ecd985daea1db7241ab")
8171 (name "emacs-handle")
8172 (version (git-version "0.1" revision commit))
8177 (url "https://gitlab.com/jjzmajic/handle.git")
8179 (file-name (git-file-name name version))
8181 (base32 "14f15qzfmwdslml4rv37zb5d1lsjf0jibriz636hb7q7knx1n4sg"))))
8182 (build-system emacs-build-system)
8184 (list emacs-parent-mode))
8185 (home-page "https://gitlab.com/jjzmajic/handle")
8186 (synopsis "Handle generic functions across related major modes")
8187 (description "This package provides generic functions that specialize on
8188 major modes and intended purpose rather than on arguments. Different
8189 callables for tasks like expression evaluation, definition-jumping, and more
8190 can now be grouped accordingly and tried in sequence until one of them
8192 (license license:gpl3+))))
8194 (define-public emacs-nswbuff
8196 (name "emacs-nswbuff")
8202 (url "https://github.com/joostkremers/nswbuff")
8204 (file-name (git-file-name name version))
8206 (base32 "0bkx7mwy3zbb0ixawvn4cysxk3jjc7ahssvdprvw19ls9xx3wbsp"))))
8207 (build-system emacs-build-system)
8208 (home-page "https://github.com/joostkremers/nswbuff")
8209 (synopsis "Quickly switch between buffers")
8210 (description "This package allows for navigating between buffers within
8211 a customizable list.")
8212 (license license:gpl3+)))
8214 (define-public emacs-phi-search
8215 (let ((commit "9a089b8271cb1cff9640848850298c9ec855286c")
8218 (name "emacs-phi-search")
8219 (version (git-version "20160630" revision commit))
8224 (url "https://github.com/zk-phi/phi-search")
8226 (file-name (git-file-name name version))
8228 (base32 "1gr5plcbrfdc4pglfj905s89hf8x0kc083h30wcnd81bnw9jwz1x"))))
8229 (build-system emacs-build-system)
8230 (home-page "https://github.com/zk-phi/phi-search")
8231 (synopsis "Interactive search compatible with @code{multiple-cursors}")
8232 (description "This package can be used with @code{multiple-cursors} to
8233 provide an incremental search that moves all fake cursors in sync.")
8234 (license license:gpl2+))))
8236 (define-public emacs-phi-search-mc
8237 (let ((commit "7aa671910f766437089aec26c3aa7814222d1356")
8240 (name "emacs-phi-search-mc")
8241 (version (git-version "2.2.1" revision commit))
8246 (url "https://github.com/knu/phi-search-mc.el")
8248 (file-name (git-file-name name version))
8250 (base32 "0wr86ad0yl52im6b9z0b9pzmhcn39qg5m9878yfv1nbxliw40lcd"))))
8251 (build-system emacs-build-system)
8253 (list emacs-phi-search emacs-multiple-cursors))
8254 (home-page "https://github.com/knu/phi-search-mc.el")
8255 (synopsis "Extend @code{phi-search} with additional
8256 @code{multiple-cursors} functionality")
8257 (description "This package provides further integration between
8258 @code{multiple-cursors} and @code{phi-search}, a package that allows for
8259 interactive searches to move multiple fake cursors.")
8260 (license license:bsd-2))))
8262 (define-public emacs-multiple-cursors
8264 (name "emacs-multiple-cursors")
8270 (url "https://github.com/magnars/multiple-cursors.el")
8272 (file-name (git-file-name name version))
8274 (base32 "1ijgvzv5r44xqvz751fd5drbvrspapw6xwv47582w255j363r6ss"))))
8275 (build-system emacs-build-system)
8276 (home-page "https://github.com/magnars/multiple-cursors.el")
8277 (synopsis "Multiple cursors for Emacs")
8279 "This package adds support to Emacs for editing text with multiple
8280 simultaneous cursors.")
8281 (license license:gpl3+)))
8283 (define-public emacs-multifiles
8284 ;; There is no tag and no "Version:" keyword. Using the latest release
8286 (let ((commit "dddfe64b8e1c1cd1f9ccc1f03405477fc0d53897")
8289 (name "emacs-multifiles")
8290 (version (git-version "0" revision commit))
8295 (url "https://github.com/magnars/multifiles.el")
8297 (file-name (git-file-name name version))
8299 (base32 "065l04ylplng1vgykkbn2vnkcs3sn1k2cikx1ha2q8wmgx6bkvai"))))
8300 (build-system emacs-build-system)
8303 (home-page "https://github.com/magnars/multifiles.el")
8304 (synopsis "Edit multiple files in a single Emacs buffer")
8306 "This package allows one to view and edit parts of multiple files in
8308 (license license:gpl3+))))
8310 (define-public emacs-mc-extras
8311 (let ((commit "053abc52181b8718559d7361a587bbb795faf164")
8314 (name "emacs-mc-extras")
8315 (version (git-version "1.2.4" revision commit))
8320 (url "https://github.com/knu/mc-extras.el")
8322 (file-name (git-file-name name version))
8324 (base32 "16y48qrd20m20vypvys5jp4v4gc1qrqlkm75s1pk1r68i9zrw481"))))
8325 (build-system emacs-build-system)
8327 (list emacs-multiple-cursors))
8328 (home-page "https://github.com/knu/mc-extras.el")
8329 (synopsis "Extra functions for manipulating multiple cursors")
8331 "This package provides additional functions for
8332 @code{multiple-cursors}, including functions for marking s-expressions,
8333 comparing characters, removing cursors, and more.")
8334 (license license:bsd-2))))
8336 (define-public emacs-typo
8340 (home-page "https://github.com/jorgenschaefer/typoel")
8345 (commit (string-append "v" version))))
8346 (file-name (git-file-name name version))
8349 "1jhd4grch5iz12gyxwfbsgh4dmz5hj4bg4gnvphccg8dsnni05k2"))))
8350 (build-system emacs-build-system)
8351 (synopsis "Minor mode for typographic editing")
8353 "This package provides two Emacs modes, @code{typo-mode} and
8354 @code{typo-global-mode}. These modes automatically insert Unicode characters
8355 for quotation marks, dashes, and ellipses. For example, typing @kbd{\"}
8356 automatically inserts a Unicode opening or closing quotation mark, depending
8358 (license license:gpl3+)))
8360 (define-public emacs-company-lsp
8362 (name "emacs-company-lsp")
8367 (url "https://github.com/tigersoldier/company-lsp")
8369 (file-name (git-file-name name version))
8372 "1hy1x2w0yp5brm7714d1hziz3rpkywb5jp3yj78ibmi9ifny9vri"))))
8373 (build-system emacs-build-system)
8375 (list emacs-dash emacs-lsp-mode emacs-company emacs-s emacs-dash))
8377 (list emacs-buttercup))
8380 #:test-command '("buttercup" "-L" ".")))
8381 (home-page "https://github.com/tigersoldier/company-lsp")
8382 (synopsis "Completion for @code{lsp-mode}")
8384 "This package provides completion features that are not possible with
8385 @code{lsp-mode} and @code{company-capf} alone, including support for trigger
8386 characters and asynchronous fetching of completion candidates.")
8387 (license license:gpl3+)))
8389 (define-public emacs-scala-mode
8391 (name "emacs-scala-mode")
8397 (url "https://github.com/hvesalai/emacs-scala-mode")
8398 (commit (string-append "v" version))))
8399 (file-name (git-file-name name version))
8401 (base32 "1072lsin7dxadc0xyhy42wd0cw549axbbd4dy95wfmfcc1xbzjwv"))))
8402 (build-system emacs-build-system)
8403 (home-page "https://github.com/hvesalai/emacs-scala-mode")
8404 (synopsis "Emacs major mode for Scala")
8406 "This package provides basic Emacs support for the Scala language,
8407 including: local indenting of code, comments and multi-line strings, motion
8408 commands and highlighting.")
8409 ;; There are no copyright headers in the source code. The LICENSE file
8411 (license license:gpl3)))
8413 (define-public emacs-sbt-mode
8415 (name "emacs-sbt-mode")
8421 (url "https://github.com/hvesalai/emacs-sbt-mode")
8422 (commit (string-append "v" version))))
8423 (file-name (git-file-name name version))
8425 (base32 "0lv9ridzk9x6rkf7lj21srnszypyq04vqg05vl10zhpz1yqlnbjd"))))
8426 (build-system emacs-build-system)
8427 (home-page "https://github.com/hvesalai/emacs-sbt-mode")
8428 (synopsis "Basic functionality for interacting with sbt inside Emacs")
8430 "This mode provides basic functionality required for successfully
8431 interacting with sbt inside Emacs. The core functionality includes
8432 interacting with the sbt shell and Scala console, compiling code and
8433 navigation to errors.")
8434 (license license:gpl3+)))
8436 (define-public emacs-scheme-complete
8437 ;; Upstream does not provide tags. The commit below corresponds to the
8438 ;; exact version update. Version is extracted from main file.
8439 (let ((commit "5c0a16684a3be7021d67067b2955f1c3e17a320a"))
8441 (name "emacs-scheme-complete")
8447 (url "https://github.com/ashinn/scheme-complete")
8449 (file-name (git-file-name name version))
8451 (base32 "1smxr5bkzbfrjx21vhrj1wagmqx5yd92i997dbgs16iaqbzzr7cz"))))
8452 (build-system emacs-build-system)
8453 (home-page "https://github.com/ashinn/scheme-complete")
8454 (synopsis "Smart tab completion for Scheme in Emacs")
8456 "This file provides a single function, @code{scheme-smart-complete},
8457 which you can use for intelligent, context-sensitive completion for any Scheme
8458 implementation in Emacs. To use it just load this file and bind that function
8459 to a key in your preferred mode.")
8460 (license license:public-domain))))
8462 (define-public emacs-scel
8463 (let ((version "20170629")
8465 (commit "aeea3ad4be9306d14c3a734a4ff54fee10ac135b"))
8468 (version (git-version version revision commit))
8473 (url "https://github.com/supercollider/scel")
8475 (file-name (git-file-name name version))
8478 "0jvmzs1lsjyndqshhii2y4mnr3wghai26i3p75453zrpxpg0zvvw"))))
8479 (build-system emacs-build-system)
8482 #:modules '((guix build emacs-build-system)
8483 ((guix build cmake-build-system) #:prefix cmake:)
8485 #:imported-modules `(,@%emacs-build-system-modules
8486 (guix build cmake-build-system))
8488 #~(modify-phases %standard-phases
8489 (add-after 'unpack 'configure
8490 (lambda* (#:key outputs #:allow-other-keys)
8491 (substitute* "el/CMakeLists.txt"
8492 (("share/emacs/site-lisp/SuperCollider")
8493 (elpa-directory #$output)))
8494 ((assoc-ref cmake:%standard-phases 'configure)
8496 #:configure-flags '("-DSC_EL_BYTECOMPILE=OFF"))))
8497 (add-after 'expand-load-path 'add-el-dir-to-emacs-load-path
8499 (setenv "EMACSLOADPATH"
8500 (string-append (getcwd)
8502 (getenv "EMACSLOADPATH")))))
8503 (replace 'install (assoc-ref cmake:%standard-phases 'install)))))
8505 (list supercollider))
8507 (list cmake-minimal))
8508 (home-page "https://github.com/supercollider/scel")
8509 (synopsis "SuperCollider Emacs interface")
8510 (description "@code{emacs-scel} is an Emacs interface to SuperCollider.
8511 SuperCollider is a platform for audio synthesis and algorithmic composition.")
8512 (license license:gpl2+))))
8514 (define-public emacs-soothe-theme
8515 ;; There is no named branch.
8516 (let ((commit "0786fe70c6c1b4ddcfb932fdc6862b9611cfc09b")
8519 (name "emacs-soothe-theme")
8520 (version (git-version "20141027.2233" revision commit))
8525 (url "https://github.com/emacsfodder/emacs-soothe-theme")
8527 (file-name (git-file-name name version))
8529 (base32 "10gh1hvxq9gm29r6qzlnva7vjidd7n4kih4z2ihyvbvy9za20xqw"))))
8530 (build-system emacs-build-system)
8531 (home-page "https://github.com/emacsfodder/emacs-soothe-theme")
8532 (synopsis "Colorful, but muted theme for Emacs, dark background with light text")
8534 "Soothe theme is an amalgam of muted color tones and highlighted
8535 backgrounds. It has builtin support for Rainbow delimiters, Org mode,
8536 Whitespace mode, ECB, Flyspell, Ido, Linum, highlight indentation, Show Paren
8538 (license license:gpl3))))
8540 (define-public emacs-company-auctex
8541 (let ((commit "48c42c58ce2f0e693301b0cb2d085055410c1b25")
8544 (name "emacs-company-auctex")
8545 (version (git-version "0.1" revision commit))
8550 (url "https://github.com/alexeyr/company-auctex")
8552 (file-name (git-file-name name version))
8554 (base32 "10qn7frn5wcmrlci3v6iliqzj7r9dls87h9zp3xkgrgn4bqprfp8"))))
8555 (build-system emacs-build-system)
8558 (modify-phases %standard-phases
8559 (add-before 'build 'set-home
8560 (lambda _ (setenv "HOME" "/tmp"))))))
8562 (list emacs-auctex emacs-company emacs-yasnippet))
8563 (home-page "https://github.com/alexeyr/company-auctex/")
8564 (synopsis "Completion for @code{AUCTeX}")
8566 "This package provides a group of backends permitting auto-completion
8567 for @code{AUCTeX}.")
8568 (license license:gpl3+))))
8570 (define-public emacs-mit-scheme-doc
8572 (name "emacs-mit-scheme-doc")
8573 (version "20140203")
8576 (modules '((guix build utils)))
8578 ;; keep only file of interest
8580 (for-each delete-file '("dot-emacs.el" "Makefile"))
8581 (install-file "6.945-config/mit-scheme-doc.el" ".")
8582 (delete-file-recursively "6.945-config")))
8583 (file-name (string-append name "-" version ".tar.bz2"))
8585 (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/"
8586 "6.945/dont-panic/emacs-basic-config.tar.bz2"))
8589 "0dqidg2bd66pawqfarvwca93w5gqf9mikn1k2a2rmd9ymfjpziq1"))))
8590 (build-system emacs-build-system)
8591 (inputs (list mit-scheme))
8594 (modify-phases %standard-phases
8595 (add-after 'unpack 'configure-doc
8596 (lambda* (#:key inputs #:allow-other-keys)
8597 (let* ((mit-scheme-dir (assoc-ref inputs "mit-scheme"))
8598 (doc-dir (string-append mit-scheme-dir "/share/doc/"
8600 ,(package-version mit-scheme))))
8601 (substitute* "mit-scheme-doc.el"
8602 (("http://www\\.gnu\\.org/software/mit-scheme/documentation/mit-scheme-ref/")
8603 (string-append "file:" doc-dir "/mit-scheme-ref/")))))))))
8604 (home-page "https://groups.csail.mit.edu/mac/users/gjs/6.945/dont-panic/")
8605 (synopsis "MIT-Scheme documentation lookup for Emacs")
8607 "This package provides a set of Emacs functions to search definitions of
8608 identifiers in the MIT-Scheme documentation.")
8609 (license license:gpl2+)))
8611 (define-public emacs-constants
8613 (name "emacs-constants")
8615 (home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
8620 (url "https://github.com/fedeinthemix/emacs-constants")
8621 (commit (string-append "v" version))))
8622 (file-name (git-file-name name version))
8624 (base32 "0f5sh6b45a8p9kancjp9jk44ws8ww6x50a0i6zgyyvr7dbvii1a0"))))
8625 (build-system emacs-build-system)
8626 (synopsis "Enter definition of constants into an Emacs buffer")
8628 "This package provides functions for inserting the definition of natural
8629 constants and units into an Emacs buffer.")
8630 (license license:gpl2+)))
8632 (define-public emacs-tagedit
8634 (name "emacs-tagedit")
8640 (url "https://github.com/magnars/tagedit")
8642 (file-name (git-file-name name version))
8644 (base32 "0kq40g46s8kgiafrhdq99h79rz9h5fvgz59k7ralmf86bl4sdmdb"))))
8645 (build-system emacs-build-system)
8647 (list emacs-s emacs-dash))
8648 (home-page "https://github.com/magnars/tagedit")
8649 (synopsis "Some paredit-like features for html-mode")
8651 "This package provides a collection of paredit-like functions for editing
8652 in @code{html-mode}.")
8653 (license license:gpl3+)))
8655 (define-public emacs-slime
8657 (name "emacs-slime")
8663 (url "https://github.com/slime/slime")
8664 (commit (string-append "v" version))))
8665 (file-name (git-file-name name version))
8667 (base32 "1s5mbljlz22pb90gwbd380nighkz6gdxl77hc08gri7wwr5gy5n2"))))
8668 (build-system emacs-build-system)
8672 `(#:include '("\\.el$" "\\.lisp$" "\\.asd$" "contrib")
8673 #:exclude '("^slime-tests.el" "^contrib/test/"
8674 "^contrib/Makefile$" "^contrib/README.md$")
8676 (modify-phases %standard-phases
8677 (add-after 'unpack 'make-git-checkout-writable
8679 (for-each make-file-writable (find-files "."))))
8680 (add-before 'install 'configure
8682 (emacs-substitute-variables "slime.el"
8683 ("inferior-lisp-program" "sbcl"))))
8684 (add-before 'install 'install-doc
8685 (lambda* (#:key outputs #:allow-other-keys)
8686 (let* ((out (assoc-ref outputs "out"))
8687 (info-dir (string-append out "/share/info"))
8688 (doc-dir (string-append out "/share/doc/"
8689 ,name "-" ,version))
8690 (doc-files '("doc/slime-refcard.pdf"
8691 "README.md" "NEWS" "PROBLEMS"
8692 "CONTRIBUTING.md")))
8693 (with-directory-excursion "doc"
8694 (substitute* "Makefile"
8695 (("infodir=/usr/local/info")
8696 (string-append "infodir=" info-dir)))
8697 (invoke "make" "html/index.html")
8698 (invoke "make" "slime.info")
8699 (install-file "slime.info" info-dir)
8700 (copy-recursively "html" (string-append doc-dir "/html")))
8701 (for-each (lambda (f)
8702 (install-file f doc-dir)
8705 (delete-file-recursively "doc")))))))
8706 (home-page "https://github.com/slime/slime")
8707 (synopsis "Superior Lisp Interaction Mode for Emacs")
8709 "SLIME extends Emacs with support for interactive programming in
8710 Common Lisp. The features are centered around @command{slime-mode},
8711 an Emacs minor mode that complements the standard @command{lisp-mode}.
8712 While lisp-mode supports editing Lisp source files, @command{slime-mode}
8713 adds support for interacting with a running Common Lisp process
8714 for compilation, debugging, documentation lookup, and so on.")
8715 (license (list license:gpl2+ license:public-domain))))
8717 (define-public emacs-popup
8719 (name "emacs-popup")
8725 (url "https://github.com/auto-complete/popup-el")
8726 (commit (string-append "v" version))))
8727 (file-name (git-file-name name version))
8729 (base32 "13ww7hld5pa32myj9krr6prmc99s7hnpsw8mw9krpxffykkblj2f"))))
8730 (build-system emacs-build-system)
8731 (home-page "https://github.com/auto-complete/popup-el")
8732 (synopsis "Visual Popup User Interface for Emacs")
8734 "Popup.el is a visual popup user interface library for Emacs.
8735 This provides a basic API and common UI widgets such as popup tooltips
8737 (license license:gpl3+)))
8739 (define-public emacs-popup-kill-ring
8740 (let ((commit "a45c9cf79c4e1207fdbdd662e161154ef224ad61")
8743 (name "emacs-popup-kill-ring")
8744 (version (git-version "0.2.8" revision commit))
8748 (url "https://github.com/waymondo/popup-kill-ring")
8750 (file-name (git-file-name name version))
8753 "0bpnsc4agy6mcnc79d9a6gi79jiiqrhf3a55pw0p4z16m86vwyqr"))))
8754 (build-system emacs-build-system)
8755 (propagated-inputs (list emacs-pos-tip emacs-popup))
8756 (home-page "https://github.com/waymondo/popup-kill-ring")
8757 (synopsis "Interactively insert item from kill-ring")
8758 (description "This Emacs package manages your Emacs kill-ring in an
8759 autocomplete style popup menu.")
8760 (license license:gpl3+))))
8762 (define-public emacs-popper
8763 ;; No tagged release upstream for version 0.45. The commit below matches
8765 (let ((commit "851d83882192ac9599ac5b053614a42d683b3fab"))
8767 (name "emacs-popper")
8772 (url "https://github.com/karthink/popper")
8774 (file-name (git-file-name name version))
8777 "0pk5wzqlz7n6v8rb1957i3ql0wjx578l68a3rp2m9pxr7a8a03h4"))))
8778 (build-system emacs-build-system)
8779 (home-page "https://github.com/karthink/popper")
8780 (synopsis "Emacs minor-mode to summon and dismiss buffers easily")
8782 "Popper is a minor-mode to tame the flood of ephemeral
8783 windows Emacs produces, while still keeping them within arm’s reach.")
8784 (license license:gpl3+))))
8786 (define-public emacs-pydoc
8787 ;; https://github.com/statmobile/pydoc/issues/31
8788 (let ((commit "c8b667e17bfe3e63221f822c5c4d58c8fb4fea90")
8791 (name "emacs-pydoc")
8792 (version (git-version "0.2" revision commit))
8796 (url "https://github.com/statmobile/pydoc")
8800 (base32 "082ar5w28dknaa63mf587vdzr78xlnvh8lbxqq3hk6qa2c72akam"))
8801 (file-name (git-file-name name version))))
8802 (build-system emacs-build-system)
8806 #~(modify-phases %standard-phases
8807 (add-after 'unpack 'patch-python-executable
8808 (lambda* (#:key outputs #:allow-other-keys)
8809 (emacs-substitute-variables "pydoc.el"
8810 ("pydoc-python-command"
8811 (search-input-file outputs "bin/python")))))
8812 (add-after 'unpack 'patch-lsof-executable
8813 (lambda* (#:key inputs #:allow-other-keys)
8814 (substitute* "pydoc.el"
8816 ;; Replace removed double quote in parsing of lsof executable.
8817 (string-append "\"" (search-input-file inputs "bin/lsof")))))))))
8818 (inputs (list lsof python-wrapper))
8819 (propagated-inputs (list python-jedi))
8820 (home-page "https://github.com/statmobile/pydoc")
8821 (synopsis "Navigate Python documentation in Emacs")
8822 (description "This package provides an Emacs mode for navigating
8823 Python documentation with @code{pydoc} in Emacs.")
8824 (license license:gpl3+))))
8826 (define-public emacs-python-black
8828 (name "emacs-python-black")
8834 (url "https://github.com/wbolster/emacs-python-black")
8836 (file-name (git-file-name name version))
8838 (base32 "1x6b67cs7kn8711fxr3fq8y9wcpf9g71asf9wiqfrk2mrfzli6a3"))))
8839 (build-system emacs-build-system)
8841 (list emacs-dash emacs-reformatter python-black-macchiato))
8842 (arguments `(#:tests? #f))
8843 (home-page "https://github.com/wbolster/emacs-python-black")
8844 (synopsis "Reformat Python code via @code{python-black}")
8846 "This package makes it easy to reformat Python code using
8847 @code{python-black} and @code{python-black-macchiato} for entire and partial
8848 buffers, respectively.")
8849 (license license:bsd-3)))
8851 (define-public emacs-py-isort
8853 (name "emacs-py-isort")
8859 (url "https://github.com/paetzke/py-isort.el")
8860 (commit (string-append "v" version))))
8861 (file-name (git-file-name name version))
8863 (base32 "08i55gv392wc12x8v3dca0dmz8a8p9ljsqhyajsb6qv1k120wqhx"))))
8864 (build-system emacs-build-system)
8866 `(#:tests? #f)) ;tests fail with "emacs: standard input is not a tty"
8868 (list python-isort))
8869 (home-page "https://github.com/paetzke/py-isort.el")
8870 (synopsis "Sort the imports in Python buffers")
8872 "This package provides commands and a minor mode to sort Python imports
8873 using @code{python-isort}.")
8874 (license license:gpl3+)))
8876 (define-public emacs-python-environment
8878 (name "emacs-python-environment")
8884 (url "https://github.com/tkf/emacs-python-environment/")
8886 (file-name (git-file-name name version))
8888 (base32 "0q6bib9nr6xiq6npzbngyfcjk87yyvwzq1zirr3z1h5wadm34lsk"))))
8889 (build-system emacs-build-system)
8891 (list emacs-deferred))
8892 (home-page "https://github.com/tkf/emacs-python-environment")
8893 (synopsis "Provides a @code{virtualenv} API in Emacs Lisp")
8895 "This package permits automated installation of tools written in Python.")
8896 (license license:gpl3+)))
8898 (define-public emacs-jedi
8905 (url "https://github.com/tkf/emacs-jedi/")
8906 (commit (string-append "v" version))))
8907 (file-name (git-file-name name version))
8910 "1bckxppfzd5gwn0aw4h86igb7igal9axqncq7j8zmflg7zppncf1"))))
8911 (build-system emacs-build-system)
8914 #:imported-modules `(,@%emacs-build-system-modules
8915 (guix build python-build-system))
8916 #:modules '((guix build emacs-build-system)
8917 ((guix build python-build-system) #:prefix python:)
8918 (guix build emacs-utils)
8921 #~(modify-phases %standard-phases
8922 (add-after 'unpack 'ensure-no-mtimes-pre-1980
8923 (assoc-ref python:%standard-phases
8924 'ensure-no-mtimes-pre-1980))
8925 (add-after 'ensure-no-mtimes-pre-1980 'relax-python-requirements
8927 ;; Argparse should only be required for Python < 3.2
8928 ;; (see: https://github.com/tkf/emacs-jedi/issues/365).
8929 (substitute* "setup.py"
8930 ((".*argparse.*") ""))))
8931 (add-after 'relax-python-requirements 'python:add-install-to-pythonpath
8932 (assoc-ref python:%standard-phases 'add-install-to-pythonpath))
8933 (add-after 'python:add-install-to-pythonpath 'python:install
8934 ;; This is needed to get the Python-built 'jediepcserver' command.
8935 (assoc-ref python:%standard-phases 'install))
8936 (add-after 'python:install 'python:wrap
8937 (assoc-ref python:%standard-phases 'wrap))
8938 (add-after 'python:wrap 'patch-jedi:server-command
8939 (lambda* (#:key outputs #:allow-other-keys)
8940 (emacs-substitute-variables "jedi-core.el"
8941 ("jedi:server-command"
8942 (search-input-file outputs "bin/jediepcserver"))))))))
8943 (native-inputs (list emacs-mocker python-wrapper))
8944 (inputs (list python-wrapper python-epc python-jedi)) ;wrapped
8946 (list emacs-auto-complete emacs-python-environment emacs-epc))
8947 (home-page "https://github.com/tkf/emacs-jedi")
8948 (synopsis "Provides Python completion in Emacs")
8950 "This package provides completion in Python buffers and also helps find
8951 the locations of docstrings, arguments, and functions.")
8952 (license license:gpl3+)))
8954 (define-public emacs-company-jedi
8956 (name "emacs-company-jedi")
8961 (url "https://github.com/syohex/emacs-company-jedi")
8963 (file-name (git-file-name name version))
8966 "1ihqapp4dv92794rsgyq0rmhwika60cmradqd4bn9b72ss6plxs1"))))
8967 (build-system emacs-build-system)
8969 (list emacs-jedi emacs-company))
8970 (home-page "https://github.com/syohex/emacs-company-jedi")
8971 (synopsis "Provides Python completion in @code{company-mode}")
8973 "This package provides a Company backend for Python.")
8974 (license license:gpl3+)))
8976 (define-public emacs-elquery
8978 (name "emacs-elquery")
8985 (url "https://github.com/AdamNiederer/elquery")
8987 (file-name (git-file-name name version))
8989 (base32 "035zjzmd7yfw0rsjpaklc2wwiqw6brkjadch9x8n8n2gjyxg05mn"))))
8990 (build-system emacs-build-system)
8995 #:test-command #~(list "ert-runner")
8996 #:phases #~(modify-phases %standard-phases
8997 (add-after 'unpack 'fix-native-compilation
8999 (substitute* "elquery.el"
9000 (("\\(1- \\(/ length \\(match-data\\)\\) 2\\)")
9001 "(1- (/ (length (match-data)) 2))"))))
9002 (add-before 'check 'disable-failing-tests
9004 (substitute* "test/elquery-test.el"
9005 (("\\(ert-deftest elquery--write-test .*" all)
9006 (string-append all "(skip-unless nil)\n"))))))))
9008 (list emacs-ert-runner emacs-undercover))
9011 (home-page "https://github.com/AdamNiederer/elquery/")
9012 (synopsis "Read and manipulate HTML in Emacs")
9014 "Elquery is a library that lets you parse, query, set, and format HTML using
9015 Emacs Lisp. It implements most of the @code{querySelector} API, and can get
9016 and set HTML attributes.")
9017 (license license:gpl3+)))
9019 (define-public emacs-cov
9020 ;; XXX: Upstream made no release nor any tag so far.
9021 (let ((commit "cd3e1995c596cc227124db9537792d8329ffb696")
9025 (version (git-version "0.1.0" revision commit))
9031 (url "https://github.com/AdamNiederer/cov")
9033 (file-name (git-file-name name version))
9035 (base32 "1gyc0si60czhgrkm7kink1p1zj1h5j5nzif4ivm5bg78l28skmpm"))))
9036 (build-system emacs-build-system)
9039 #:emacs emacs-no-x ;for libxml
9041 #:test-command #~(list "ert-runner")
9043 #~(modify-phases %standard-phases
9044 (add-before 'check 'disable-failing-tests
9046 (substitute* "test/cov-test.el"
9047 (("\\(ert-deftest cov--load-coverage-test-mtime-check .*" all)
9048 (string-append all "(skip-unless nil)\n"))))))))
9050 (list emacs-ert-runner emacs-mocker emacs-undercover))
9052 (list emacs-elquery emacs-f emacs-s))
9053 (home-page "https://github.com/AdamNiederer/cov/")
9054 (synopsis "Emacs extension for displaying coverage data")
9056 "Cov shows code coverage data for your program in Emacs. It supports
9057 currently @code{gcov}, @code{lcov}, @code{coverage.py}, and @code{clover}
9058 output, as well as the Coveralls format produced by Undercover.")
9059 (license license:gpl3+))))
9061 (define-public emacs-puppet-mode
9063 (name "emacs-puppet-mode")
9069 (url "https://github.com/voxpupuli/puppet-mode")
9071 (file-name (git-file-name name version))
9074 "0c5q8qmbligzjsn05di4wh6ggpd3944j4yqb78vzd441b8ssq70i"))))
9075 (build-system emacs-build-system)
9076 (home-page "https://github.com/voxpupuli/puppet-mode")
9077 (synopsis "Emacs major mode for the Puppet configuration language")
9079 "This package provides support for the Puppet configuration language,
9080 including syntax highlighting, indentation of expressions and statements,
9081 linting of manifests and integration with Puppet Debugger.")
9082 ;; Also incorporates work covered by the Apache License, Version 2.0
9083 (license license:gpl3+)))
9085 (define-public emacs-purescript-mode
9086 ;; Retrieved on 2021-05-18.
9087 (let ((revision "0")
9088 (commit "0acd1af446424ba855153161fe07a20f67dc0a89"))
9090 (name "emacs-purescript-mode")
9091 (version (git-version "0.0.0" revision commit))
9096 (url "https://github.com/purescript-emacs/purescript-mode")
9098 (file-name (git-file-name name version))
9101 "0rxdsmx8826az4blhnnvqrx7bjky9hwph6gkyrh33sck26xhh3g5"))))
9102 (build-system emacs-build-system)
9105 (modify-phases %standard-phases
9106 (add-before 'install 'make-info
9108 (invoke "makeinfo" "--no-split"
9109 "-o" "purescript-mode.info" "purescript-mode.texi"))))))
9112 (home-page "https://github.com/purescript-emacs/purescript-mode")
9113 (synopsis "Emacs major mode and related tools for Purescript")
9114 (description "This package provides an Emacs major mode for writing Purescript.")
9115 (license license:gpl3+))))
9117 (define-public emacs-new-purescript-mode
9118 (let ((commit "9f7bb73e26340fcd2ea1946dbad165f0406eb3e1")
9121 (name "emacs-new-purescript-mode")
9122 (version (git-version "0.0.1" revision commit))
9128 (url "https://github.com/justinwoo/new-purescript-mode")
9130 (file-name (git-file-name name version))
9132 (base32 "0b3499df0gfz8yrdxz9dpgwal21h50sciigwz25ri1hwv1c1i7k0"))))
9133 (build-system emacs-build-system)
9134 (home-page "https://github.com/justinwoo/new-purescript-mode/")
9135 (synopsis "Simple PureScript mode for cheap syntax highlighting")
9136 (description "New PureScript mode is a simple PureScript Emacs mode that
9137 just provides syntax highlighting.")
9138 (license license:expat))))
9140 (define-public emacs-god-mode
9142 (name "emacs-god-mode")
9148 (url "https://github.com/emacsorphanage/god-mode")
9150 (file-name (git-file-name name version))
9153 "1njln47w25ix9w0xjv02110ngr8d8ma3w7db0x4xcxhihbl65zly"))))
9154 (build-system emacs-build-system)
9156 (list #:tests? #true
9158 #~(list "emacs" "--no-init-file" "--batch"
9159 "--eval=(require 'ecukes)" "--eval=(ecukes)")))
9160 (native-inputs (list emacs-ecukes))
9161 (home-page "https://github.com/emacsorphanage/god-mode")
9162 (synopsis "Minor mode for entering commands without modifier keys")
9164 "This package provides a global minor mode for entering Emacs commands
9165 without modifier keys. It's similar to Vim's separation of commands and
9166 insertion mode. When enabled all keys are implicitly prefixed with
9167 @samp{C-} (among other helpful shortcuts).")
9168 (license license:gpl3+)))
9170 (define-public emacs-jinja2-mode
9172 (name "emacs-jinja2-mode")
9178 (url "https://github.com/paradoxxxzero/jinja2-mode")
9179 (commit (string-append "v" version))))
9180 (file-name (git-file-name name version))
9182 (base32 "0l26wcy496k6xk7q5sf905xir0p73ziy6c44is77854lv3y0z381"))))
9183 (build-system emacs-build-system)
9184 (home-page "https://github.com/paradoxxxzero/jinja2-mode")
9185 (synopsis "Major mode for jinja2")
9187 "Emacs major mode for jinja2 with: syntax highlighting,
9188 sgml/html integration, and indentation (working with sgml).")
9189 (license license:gpl3+)))
9191 (define-public emacs-company-cabal
9192 ;; The latest version is 0.3.0, but no release has been provided after 0.2.1.
9193 (let ((commit "62112a7259e24bd6c08885629a185afe512b7d3d")
9196 (name "emacs-company-cabal")
9197 (version (git-version "0.3.0" revision commit))
9201 (url "https://github.com/iquiw/company-cabal/")
9203 (file-name (git-file-name name version))
9206 "1gf45xwjzdm8i4q6c6khk4dbg1mmp2r0awz2sjr4dcr2dbd1n7mg"))))
9207 (build-system emacs-build-system)
9209 (list emacs-company))
9211 `(#:include (cons "^tools\\/" %default-include)))
9212 (home-page "https://github.com/iquiw/company-cabal/")
9213 (synopsis "Company completion for Haskell Cabal files")
9215 "This package allows for completion of field names, section names,
9216 field values, and more within @code{haskell-cabal-mode}.")
9217 (license license:gpl3+))))
9219 (define-public emacs-rfcview
9221 (name "emacs-rfcview")
9223 (home-page "http://www.loveshack.ukfsn.org/emacs")
9226 (uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el")
9229 "0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz"))))
9230 (build-system emacs-build-system)
9231 (synopsis "Prettify Request for Comments (RFC) documents")
9232 (description "The Internet Engineering Task Force (IETF) and the Internet
9233 Society (ISOC) publish various Internet-related protocols and specifications
9234 as \"Request for Comments\" (RFC) documents and Internet Standard (STD)
9235 documents. RFCs and STDs are published in a simple text form. This package
9236 provides an Emacs major mode, rfcview-mode, which makes it more pleasant to
9237 read these documents in Emacs. It prettifies the text and adds
9238 hyperlinks/menus for easier navigation. It also provides functions for
9239 browsing the index of RFC documents and fetching them from remote servers or
9240 local directories.")
9241 (license license:gpl3+)))
9243 (define-public emacs-ffap-rfc-space
9245 (name "emacs-ffap-rfc-space")
9247 (home-page "https://user42.tuxfamily.org/ffap-rfc-space/index.html")
9250 (uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el")
9253 "1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck"))))
9254 (build-system emacs-build-system)
9255 (synopsis "Make ffap recognize an RFC with a space before its number")
9256 (description "The Internet Engineering Task Force (IETF) and the
9257 Internet Society (ISOC) publish various Internet-related protocols and
9258 specifications as \"Request for Comments\" (RFC) documents. The
9259 built-in Emacs module \"ffap\" (Find File at Point) has the ability to
9260 recognize names at point which look like \"RFC1234\" and \"RFC-1234\"
9261 and load the appropriate RFC from a remote server. However, it fails
9262 to recognize a name like \"RFC 1234\". This package enhances ffap so
9263 that it correctly finds RFCs even when a space appears before the
9265 (license license:gpl3+)))
9267 (define-public emacs-feature-mode
9268 (let ((version "20190801")
9270 (commit "11ae1671629bfedaa553c7b819676d64eb320992"))
9272 (name "emacs-feature-mode")
9273 (version (git-version version revision commit))
9277 (url "https://github.com/michaelklishin/cucumber.el")
9279 (file-name (git-file-name name version))
9282 "0yd4gkxz9xcbgibfgr8apsid3f83nmg5jgqk5nql0linj5gymc28"))))
9283 (build-system emacs-build-system)
9285 `(#:include (cons* "^features\\/" "snippets\\/" "^support\\/"
9287 (home-page "https://github.com/michaelklishin/cucumber.el/")
9288 (synopsis "Emacs mode for editing Gherkin plain text user stories")
9289 (description "Major mode for editing Gherkin (popularized by the
9290 Cucumber tool) user stories. Also known by the name @code{cucumber.el}.")
9291 (license license:gpl2+))))
9293 (define-public emacs-org-bullets
9295 (name "emacs-org-bullets")
9301 (url "https://github.com/sabof/org-bullets")
9303 (file-name (git-file-name name version))
9305 (base32 "10nr4sjffnqbllv6gmak6pviyynrb7pi5nvrq331h5alm3xcpq0w"))))
9306 (build-system emacs-build-system)
9307 (home-page "https://github.com/sabof/org-bullets")
9308 (synopsis "Show bullets in org-mode as UTF-8 characters")
9310 "This package provides an Emacs minor mode causing bullets in
9311 @code{org-mode} to be rendered as UTF-8 characters.")
9312 (license license:gpl3+)))
9314 (define-public emacs-org-appear
9316 (name "emacs-org-appear")
9322 (url "https://github.com/awth13/org-appear")
9324 (file-name (git-file-name name version))
9326 (base32 "1pdf16agcjfzpjvz8kv39abir35rip93nkawxcpjjh4ywsdsbnm6"))))
9327 (build-system emacs-build-system)
9328 (home-page "https://github.com/awth13/org-appear")
9329 (synopsis "Make invisible parts of Org fragments appear visible")
9330 (description "This package enables automatic visibility toggling of
9331 org-mode elements depending on cursor position. Hidden fragment parts appear
9332 when the cursor enters a fragment and disappear when it leaves.")
9333 (license license:expat)))
9335 (define-public emacs-org-drill
9337 (name "emacs-org-drill")
9343 (url "https://gitlab.com/phillord/org-drill")
9345 (file-name (git-file-name name version))
9347 (base32 "13y302lyscdqrba1sfx60yf5ji2xi7fbsvjsjbw7hiz63kg6rccy"))))
9348 (build-system emacs-build-system)
9350 (list emacs-org emacs-persist))
9351 (home-page "https://gitlab.com/phillord/org-drill")
9352 (synopsis "Flash card memorization system using Org mode")
9354 "This package uses spaced repetition algorithms to conduct interactive
9355 drill sessions to aid in memorization. In these sessions you are shown flash
9356 cards created in Org mode.")
9357 (license license:gpl3+)))
9359 (define-public emacs-anki-editor
9360 ;; Last release was in 2018.
9361 (let ((commit "546774a453ef4617b1bcb0d1626e415c67cc88df")
9365 (name "emacs-anki-editor")
9366 (version (git-version version revision commit))
9371 (url "https://github.com/louietan/anki-editor")
9373 (file-name (git-file-name name version))
9375 (base32 "1if610hq5j8rbjh1caw5bwbgnsn231awwxqbpwvrh966kdxzl4qf"))))
9376 (build-system emacs-build-system)
9378 (list emacs-dash emacs-request))
9379 (home-page "https://github.com/louietan/anki-editor")
9380 (synopsis "Minor mode for making Anki cards with Org mode")
9382 "This package is for people who use Anki as a spaced repetition system
9383 (SRS) but would like to make cards in Org mode.")
9384 (license license:gpl3+))))
9386 (define-public emacs-org-mime
9388 (name "emacs-org-mime")
9394 (url "https://github.com/org-mime/org-mime")
9396 (file-name (git-file-name name version))
9398 (base32 "1w5z9irzk918mj75z5m0j2h8mms8v27x50kp7r3b01wblf0jd2zc"))))
9399 (build-system emacs-build-system)
9400 (home-page "https://github.com/org-mime/org-mime")
9401 (synopsis "Send HTML email using Org mode HTML export")
9403 "This program sends HTML email using Org-mode HTML export.
9404 This approximates a WYSiWYG HTML mail editor from within Emacs, and can be
9405 useful for sending tables, fontified source code, and inline images in
9407 (license license:gpl3+)))
9409 (define-public emacs-org-msg
9410 ;; No git tags. The commit below corresponds to the release of version 4.0.
9411 (let ((commit "60e22e446325a9b3387396459d98be7c1c52579d"))
9413 (name "emacs-org-msg")
9419 (url "https://github.com/jeremy-compostella/org-msg")
9421 (file-name (git-file-name name version))
9423 (base32 "077g7gvn1k6i2x4m2kd3dkrznc89f5a5pd916wsmpy703pv0aca5"))))
9424 (build-system emacs-build-system)
9426 (list emacs-htmlize))
9427 (home-page "https://github.com/jeremy-compostella/org-msg")
9428 (synopsis "Mix Org mode and Message mode to compose emails")
9430 "OrgMsg is a GNU Emacs global minor mode mixing up Org mode and your
9431 Mail User Agent Mode (Message, mu4e, or Notmuch) to compose and reply to
9432 emails in a Outlook HTML friendly style.")
9433 (license license:gpl3+))))
9435 (define-public emacs-org-superstar
9437 (name "emacs-org-superstar")
9443 (url "https://github.com/integral-dw/org-superstar-mode")
9444 (commit (string-append "v" version))))
9445 (file-name (git-file-name name version))
9447 (base32 "12inin2p6pm6vbv3yc06fx343dsp0vp07fjb35w088akhikmqh2a"))))
9448 (build-system emacs-build-system)
9451 (home-page "https://github.com/integral-dw/org-superstar-mode")
9452 (synopsis "Prettify headings and plain lists in Org mode")
9453 (description "This package prettifies headings and plain lists in
9454 Org mode. It is a direct descendant of @code{org-bullets}, with most
9455 of the code base completely rewritten.
9457 Currently, this package prettifies Org heading lines by:
9459 @item replacing trailing bullets by UTF-8 bullets,
9460 @item hiding leading stars, customizing their look or removing them from vision,
9461 @item applying a custom face to the header bullet,
9462 @item applying a custom face to the leading bullets,
9463 @item using double-bullets for inline tasks,
9464 @item (optional) using special bullets for TODO keywords.
9467 It also prettifies Org plain list bullets by:
9469 @item replacing each bullet type (*, + and -) with UTF-8 bullets,
9470 @item applying a custom face to item bullets.
9473 Features degrade gracefully when viewed from terminal.")
9474 (license license:gpl3+)))
9476 (define-public emacs-org-pandoc-import
9478 (name "emacs-org-pandoc-import")
9484 (url "https://github.com/tecosaur/org-pandoc-import/")
9485 (commit (string-append "v" version))))
9486 (file-name (git-file-name name version))
9488 (base32 "00z9bpm975mlyqlxbyib3j547br6kvcam04b70qkmq22vh8yf341"))))
9489 (build-system emacs-build-system)
9492 (cons* "^filters\\/" "^preprocessors" %default-include)
9494 (modify-phases %standard-phases
9495 (add-after 'unpack 'patch-exec-paths
9496 (lambda* (#:key inputs #:allow-other-keys)
9497 (let ((pandoc (assoc-ref inputs "pandoc")))
9498 (substitute* "org-pandoc-import.el"
9499 (("\"pandoc\"") (string-append "\"" pandoc "/bin/pandoc\"")))))))))
9502 (home-page "https://github.com/tecosaur/org-pandoc-import/")
9503 (synopsis "Read and edit non-Org file types in Org")
9505 "This package uses Pandoc to convert selected file types to Org. It can
9506 convert supported non-Org files to an Org file with Pandoc.
9508 It can also intercept requests for non-Org files it knows it can convert,
9509 convert the file to a temporary Org file, and open this file instead. On
9510 save, it exports back to the original non-Org file.")
9511 (license license:gpl3+)))
9513 (define-public emacs-org-pomodoro
9514 ;; Last release version was from 2016.
9515 (let ((commit "aa07c11318f91219336197e62c47bc7a3d090479")
9518 (name "emacs-org-pomodoro")
9519 (version (git-version "2.1.0" revision commit))
9524 (url "https://github.com/marcinkoziej/org-pomodoro")
9526 (file-name (git-file-name name version))
9528 (base32 "0nbprh2nhnmb7ngp9ndr6zr37ashcsvpi5slv7a37x1dl7j6w1k4"))))
9529 (build-system emacs-build-system)
9534 #:include #~(cons "^resources\\/" %default-include)
9537 #~(list "emacs" "--batch"
9538 "-l" "org-pomodoro-tests.el"
9539 "-f" "ert-run-tests-batch-and-exit")
9541 #~(modify-phases %standard-phases
9542 (add-before 'check 'make-tests-writable
9544 (make-file-writable "org-pomodoro-tests.el")))
9545 (add-before 'check 'add-require
9547 (emacs-batch-edit-file "org-pomodoro-tests.el"
9548 `(progn (progn (goto-char (point-min))
9549 (re-search-forward "ert-deftest")
9552 (insert "(require 'org-pomodoro)"))
9553 (basic-save-buffer))))))))
9554 (home-page "https://github.com/marcinkoziej/org-pomodoro")
9555 (synopsis "Pomodoro technique for org-mode")
9556 (description "@code{emacs-org-pomodoro} adds very basic support for
9557 Pomodoro technique in Emacs org-mode.
9559 Run @code{M-x org-pomodoro} for the task at point or select one of the
9560 last tasks that you clocked time for. Each clocked-in pomodoro starts
9561 a timer of 25 minutes and after each pomodoro a break timer of 5
9562 minutes is started automatically. Every 4 breaks a long break is
9563 started with 20 minutes. All values are customizable.")
9564 (license license:gpl3+))))
9566 (define-public emacs-org-sidebar
9568 (name "emacs-org-sidebar")
9574 (url "https://github.com/alphapapa/org-sidebar")
9576 (file-name (git-file-name name version))
9578 (base32 "1r8kp954ciin4j7j7j8ihdkryf5x09s3ryl7bi9h2j6xqc1ij4wq"))))
9579 (build-system emacs-build-system)
9581 (list emacs-dash emacs-org-super-agenda emacs-org emacs-org-ql
9583 (home-page "https://github.com/alphapapa/org-sidebar")
9584 (synopsis "Helpful sidebar for Org buffers")
9585 (description "This package provides a sidebar for Org buffers. At the
9586 top is a chronological list of scheduled and deadlined tasks in the current
9587 buffer (similar to the Org agenda ,but without all its features), and below
9588 that is a list of all other non-done to-do items. If the buffer is narrowed,
9589 the sidebar only shows items in the narrowed portion; this allows seeing an
9590 overview of tasks in a subtree.")
9591 (license license:gpl3+)))
9593 (define-public emacs-org-trello
9595 (name "emacs-org-trello")
9601 (url "https://github.com/org-trello/org-trello")
9603 (file-name (git-file-name name version))
9606 "18y5zdjc7zh4jlwz6k1nl13i721rknqm0vp4mxfnmq0sc5a0qva0"))))
9607 (build-system emacs-build-system)
9615 (home-page "https://org-trello.github.io")
9616 (synopsis "Emacs minor mode for interacting with Trello")
9617 (description "This package provides an Emacs minor mode to extend
9618 @code{org-mode} with Trello abilities. Trello is an online project
9620 (license license:gpl3+)))
9622 (define-public emacs-org-tanglesync
9623 (let ((commit "d99181f173b4e55b4e835d99fcd415e62beb047f")
9626 (name "emacs-org-tanglesync")
9627 (version (git-version "0.6" revision commit))
9632 (url "https://github.com/mtekman/org-tanglesync.el")
9634 (file-name (git-file-name name version))
9636 (base32 "0x94gy1bgfd1f3p9w2bfrqj11bwy9ql0cpi1gw6srpj7kykx0lml"))))
9637 (build-system emacs-build-system)
9640 (home-page "https://github.com/mtekman/org-tanglesync.el")
9641 (synopsis "Sync Org source blocks with tangled external files")
9642 (description "This package automatically pulls changes from source code
9643 to their corresponding tangled blocks.")
9644 (license license:gpl3+))))
9646 (define-public emacs-company-flow
9647 (let ((commit "76ef585c70d2a3206c2eadf24ba61e59124c3a16")
9650 (name "emacs-company-flow")
9651 (version (git-version "0.1.0" revision commit))
9655 (url "https://github.com/aaronjensen/company-flow/")
9657 (file-name (git-file-name name version))
9660 "0zs9cblnbkxa0dxw4lyllmybqizxcdx96gv8jlhx20nrjpi78piw"))))
9661 (build-system emacs-build-system)
9663 (list emacs-company emacs-dash))
9664 (home-page "https://github.com/aaronjensen/company-flow/")
9665 (synopsis "Flow backend for @code{company-mode}")
9667 "This package provides completion for JavaScript files utilizing Flow.")
9668 (license license:gpl3+))))
9670 (define-public emacs-habitica
9671 (let ((commit "c45c602ddf9d6cbb0e3baf5cb3e1b7ef90f2759d")
9674 (name "emacs-habitica")
9675 (version (git-version "1.0" revision commit))
9680 (url "https://github.com/abrochard/emacs-habitica")
9682 (file-name (git-file-name name version))
9685 "0wgnzn3z98bl28jgqi7xklw9fwx2wwgihj3mq0jb8ah4vn70d0j3"))))
9686 (build-system emacs-build-system)
9687 (home-page "https://github.com/abrochard/emacs-habitica")
9688 (synopsis "Emacs interface for Habitica")
9689 (description "Emacs extension for @uref{https://habitica.com/, Habitica},
9690 a RPG style habit tracker and todo list.")
9691 (license license:gpl3+))))
9693 (define-public emacs-atom-one-dark-theme
9694 (let ((commit "1f1185bf667a38d3d0d180ce85fd4c131818aae2")
9697 (name "emacs-atom-one-dark-theme")
9698 (version (git-version "0.4.0" revision commit))
9702 (url "https://github.com/jonathanchu/atom-one-dark-theme")
9706 "1alma16hg3mfjly8a9s3mrswkjjx4lrpdnf43869hn2ibkn7zx9z"))
9707 (file-name (git-file-name name version))))
9708 (build-system emacs-build-system)
9709 (home-page "https://github.com/jonathanchu/atom-one-dark-theme")
9710 (synopsis "Atom One Dark color theme for Emacs")
9711 (description "An Emacs port of the Atom One Dark theme from Atom.io.")
9712 (license license:gpl3+))))
9714 (define-public emacs-zenburn-theme
9716 (name "emacs-zenburn-theme")
9722 (url "https://github.com/bbatsov/zenburn-emacs")
9723 (commit (string-append "v" version))))
9724 (file-name (git-file-name name version))
9726 (base32 "1991s1gz2i3jchf0yvcsjjb5flwn13ifbnnfkqqrxxvy2imfh18q"))))
9727 (build-system emacs-build-system)
9728 (home-page "https://github.com/bbatsov/zenburn-emacs")
9729 (synopsis "Low contrast color theme for Emacs")
9731 "Zenburn theme is a port of the popular Vim Zenburn theme for Emacs.
9732 It is built on top of the custom theme support in Emacs 24 or later.")
9733 (license license:gpl3+)))
9735 (define-public emacs-moe-theme-el
9737 (name "emacs-moe-theme-el")
9743 (url "https://github.com/kuanyui/moe-theme.el")
9744 (commit (string-append "v" version))))
9745 (file-name (git-file-name name version))
9747 (base32 "14higsv6h0pka90gr25a3yxh95xn65l6qxb39mmdzkfdlnzsg664"))))
9748 (build-system emacs-build-system)
9749 (home-page "https://github.com/kuanyui/moe-theme.el")
9750 (synopsis "Anime-inspired color themes")
9752 "This package provides vibrant color schemes with light and dark
9754 (license license:gpl3+)))
9756 (define-public emacs-solarized-theme
9758 (name "emacs-solarized-theme")
9764 (url "https://github.com/bbatsov/solarized-emacs/")
9765 (commit (string-append "v" version))))
9766 (file-name (git-file-name name version))
9768 (base32 "17z6cj8ids88xj2i6zs1s0mxs0fhn3gr7g5nhhy8s8khnzmyy2vj"))))
9769 (build-system emacs-build-system)
9772 (home-page "https://github.com/bbatsov/solarized-emacs")
9773 (synopsis "Port of the Solarized theme for Emacs")
9775 "Solarized for Emacs is a port of the Solarized theme for Vim. This
9776 package provides a light and a dark variant.")
9777 (license license:gpl3+)))
9779 (define-public emacs-color-theme-solarized
9780 ;; From 2017-10-24. No releases available.
9781 (let ((commit "f3ca8902ea056fb8e46cb09f09c96294e31cd4ee")
9784 (name "emacs-color-theme-solarized")
9785 (version (git-version "0" revision commit))
9790 "https://github.com/sellout/emacs-color-theme-solarized")
9792 (file-name (git-file-name name version))
9795 "16d7adqi07lzzr0qipl1fbag9l8kiyr3xrqxi528pimcisbg85d3"))))
9796 (build-system emacs-build-system)
9799 #~(modify-phases %standard-phases
9800 ;; These are intended for old versions of Emacs and do not
9801 ;; compile with emacs>=24.
9802 (add-before 'install 'remove-color-theme
9804 (delete-file "./color-theme-solarized.el")
9805 (delete-file "./color-theme-solarized-pkg.el"))))))
9806 (home-page "https://github.com/sellout/emacs-color-theme-solarized")
9807 (synopsis "Solarized color scheme for Emacs")
9809 "This package provides Emacs highlighting using Ethan Schoonover’s
9810 Solarized color scheme.")
9811 (license license:expat))))
9813 (define-public emacs-poet-theme
9814 (let ((commit "16eb694f0755c04c4db98614d0eca1199fddad70")
9817 (name "emacs-poet-theme")
9818 (version (git-version "0" revision commit))
9823 (url "https://github.com/kunalb/poet")
9825 (file-name (git-file-name name version))
9828 "0zm8jbviddyj7jnyssh77jx43jghbpjwr77n9s3cjp3bmadwkrv5"))))
9829 (build-system emacs-build-system)
9830 (home-page "https://github.com/kunalb/poet/")
9831 (synopsis "Emacs theme for prose")
9833 "Emacs has very good support for multiple fonts in a single file. Poet
9834 uses this support to make it much more convenient to write prose within Emacs,
9835 with particular attention paid to @code{org-mode} and @code{markdown-mode}.
9836 Code blocks, tables, etc are formatted in monospace text with the appropriate
9838 (license license:expat))))
9840 (define-public emacs-ahungry-theme
9842 (name "emacs-ahungry-theme")
9845 (origin (method url-fetch)
9846 (uri (string-append "https://elpa.gnu.org/packages/ahungry-theme-"
9850 "14q5yw56n82qph09bk7wmj5b1snhh9w0nk5s1l7yn9ldg71xq6pm"))))
9851 (build-system emacs-build-system)
9852 (home-page "https://github.com/ahungry/color-theme-ahungry")
9853 (synopsis "Ahungry color theme for Emacs")
9854 (description "Ahungry theme for Emacs provides bright and bold colors.
9855 If you load it from a terminal, you will be able to make use of the
9856 transparent background. If you load it from a GUI, it will default to a
9858 (license license:gpl3+)))
9860 (define-public emacs-color-theme-modern
9861 ;; No release since October 2019
9862 (let ((commit "74ad69bbca6fcfff3c0960d888c7c9c1f9f3e2e8")
9865 (name "emacs-color-theme-modern")
9866 (version (git-version "0.0.3" revision commit))
9870 (url "https://github.com/emacs-jp/replace-colorthemes.git")
9872 (file-name (git-file-name name version))
9875 "13ff4s372wsl5x13vh4vywhi6qcc54gybhp6rxl0r1l4wxidanwn"))))
9876 (build-system emacs-build-system)
9877 (home-page "https://github.com/emacs-jp/replace-colorthemes")
9878 (synopsis "Emacs color themes implemented via built-in customization")
9879 (description "This package contains several themes that were originally
9880 implemented with the venerable @code{color-themes} package, ported to Emacs'
9881 built-in custom themes.")
9882 (license license:gpl3+))))
9884 (define-public emacs-gruvbox-theme
9886 (name "emacs-gruvbox-theme")
9891 (url "https://github.com/greduan/emacs-theme-gruvbox")
9893 (file-name (git-file-name name version))
9896 "0dgjf86i8179l1nsjyc20chysqmy8yhphpd5lzv2ypx79l4z3jka"))))
9897 (build-system emacs-build-system)
9899 (list emacs-autothemer))
9900 (home-page "https://github.com/greduan/emacs-theme-gruvbox")
9901 (synopsis "Gruvbox is a retro groove color scheme ported from Vim")
9903 "Gruvbox is heavily inspired by badwolf, jellybeans and solarized.
9905 Designed as a bright theme with pastel 'retro groove' colors and light/dark
9906 mode switching in the way of solarized. The main focus when developing gruvbox
9907 is to keep colors easily distinguishable, contrast enough and still pleasant
9909 (license license:expat))) ; MIT license
9911 (define-public emacs-spacegray-theme
9912 (let ((commit "9826265c2bceb2ebc1c5e16a45021da0253ace97")
9915 (name "emacs-spacegray-theme")
9916 (version (git-version "0" revision commit))
9920 (url "https://github.com/bruce/emacs-spacegray-theme")
9922 (file-name (git-file-name name version))
9925 "0aplwmm17ypbns5blc4rf5rr6dasj0zp5ibykpfl43fh4bd8z89n"))))
9926 (build-system emacs-build-system)
9927 (home-page "https://github.com/bruce/emacs-spacegray-theme")
9928 (synopsis "Port of Sublime Text's Spacegray theme for Emacs")
9930 "@code{spacegray-theme} is an Emacs port of the Spacegray theme from
9931 Sublime Text. It features a dark blue/gray background and soft blue, green,
9932 orange and red as accent colors.")
9933 (license license:expat)))) ; MIT license
9935 (define-public emacs-org-cv
9936 ;; There are no tagged releases.
9937 (let ((commit "24bcd82348d441d95c2c80fb8ef8b5d6d4b80d95")
9940 (name "emacs-org-cv")
9941 (version (git-version "0" revision commit))
9946 (url "https://gitlab.com/Titan-C/org-cv")
9948 (file-name (git-file-name name version))
9950 (base32 "0zcnbxvlwi4d6vzsm3ag7z74qphdigmx303gppb9d614jnsfsdg2"))))
9951 (build-system emacs-build-system)
9953 (list emacs-ox-hugo))
9954 (home-page "https://titan-c.gitlab.io/org-cv/")
9955 (synopsis "Collection of export backends for Org to generate a CV")
9957 "This project exports an Org file with reasonably structured items into
9958 a LaTeX file, which compiles into a nice CV. In the same spirit, the Org file
9959 may export to Markdown so that it can be used for a web based CV.")
9960 (license license:gpl3+))))
9962 (define-public emacs-ox-gfm
9964 (name "emacs-ox-gfm")
9969 (url "https://github.com/larstvei/ox-gfm")
9970 (commit (string-append "v" version))))
9971 (file-name (git-file-name name version))
9974 "0drdypmgxk3238hmkqw9s3cw9wv94cyfqar5ar0bv0k69s92pxj8"))))
9975 (build-system emacs-build-system)
9976 (home-page "https://github.com/larstvei/ox-gfm")
9977 (synopsis "Github Flavored Markdown Back-End for Org Export Engine")
9978 (description "This package is a small exporter based on the Markdown
9979 exporter already existing in Org mode. It supports the Github flavored
9980 markdown features.")
9981 (license license:gpl3+)))
9983 (define-public emacs-2048-game
9985 (name "emacs-2048-game")
9986 (version "20151026.1233")
9990 (uri (string-append "https://melpa.org/packages/2048-game-"
9994 "0gy2pvz79whpavp4jmz8h9krzn7brmvv3diixi1d4w51pcdvaldd"))))
9995 (build-system emacs-build-system)
9996 (home-page "https://hg.sr.ht/~zck/game-2048")
9997 (synopsis "Implementation of the game 2048 in Emacs Lisp")
9999 "This program is an implementation of 2048 for Emacs.
10000 The goal of this game is to create a tile with value 2048. The size of the
10001 board and goal value can be customized.")
10002 (license license:gpl3+)))
10004 (define-public emacs-chess
10006 (name "emacs-chess")
10011 (uri (string-append "https://elpa.gnu.org/packages/"
10012 "chess-" version ".tar"))
10014 (base32 "1a4iwjdh6k348df6qywjws9z9f862d62m0b2sz57z4xhywiyxpr7"))))
10015 (build-system emacs-build-system)
10019 #~(modify-phases %standard-phases
10020 (add-after 'install 'install-pieces
10023 (string-append #$output "/share/emacs/site-lisp/chess-"
10024 #$version "/pieces")))
10026 (copy-recursively "pieces" pieces)))))))
10027 (home-page "https://elpa.gnu.org/packages/chess.html")
10028 (synopsis "Play chess in GNU Emacs")
10030 "Chess is an Emacs Lisp library and several clients on top of the
10031 underlying library functionality for performing various activities related to
10032 the game of chess.")
10033 (license license:gpl3+)))
10035 (define-public emacs-4clojure
10036 ;; There is no release. Base version is extracted from Version keyword in
10038 (let ((commit "4eccf8c7d4341a36c269451838114b27836699f9")
10041 (name "emacs-4clojure")
10042 (version (git-version "0.2.1" revision commit))
10046 (uri (git-reference
10047 (url "https://github.com/emacsorphanage/4clojure")
10049 (file-name (git-file-name name version))
10051 (base32 "19x653lzc1dxil4ix257hciidbdmbhaxhs6qhlkwi9ygjrlrgvnk"))))
10052 (build-system emacs-build-system)
10054 (list emacs-request))
10055 (home-page "https://github.com/emacsorphanage/4clojure/")
10056 (synopsis "Open and evaluate 4clojure questions in Emacs")
10057 (description "Emacs 4clojure interacts with
10058 @url{http://www.4clojure.com, 4clojure} problems. You can open a specific
10059 question and move to the next or previous one. You can also verify your
10061 (license license:gpl3+))))
10063 (define-public emacs-base16-theme
10065 (name "emacs-base16-theme")
10070 (uri (git-reference
10071 (url "https://github.com/belak/base16-emacs")
10073 (file-name (git-file-name name version))
10075 (base32 "0qp71j77zg8gippcn277s0j5a9n6dbwv3kdp2nya6li4b412vgba"))))
10076 (build-system emacs-build-system)
10078 (list #:include #~(cons "^build\\/.*\\.el$" %default-include)
10080 #~(modify-phases %standard-phases
10081 (add-after 'install 'mv-themes
10083 (use-modules (ice-9 regex))
10084 (let ((theme-dir (string-append (elpa-directory #$output)
10086 (for-each (lambda (theme)
10089 (regexp-substitute #f
10090 (string-match "build\\/"
10093 (find-files theme-dir "\\.el$"))
10094 (delete-file-recursively theme-dir)))))))
10095 (home-page "https://github.com/belak/base16-emacs")
10096 (synopsis "Base16 color themes for Emacs")
10098 "Base16 provides carefully chosen syntax highlighting and a default set
10099 of sixteen colors suitable for a wide range of applications. Base16 is not a
10100 single theme but a set of guidelines with numerous implementations.")
10101 (license license:expat)))
10103 (define-public emacs-solaire-mode
10105 (name "emacs-solaire-mode")
10110 (uri (git-reference
10111 (url "https://github.com/hlissner/emacs-solaire-mode")
10112 (commit (string-append "v" version))))
10113 (file-name (git-file-name name version))
10115 (base32 "1lkm09wznal0grpz61ikc77mjrri1x1bi79qwyf1cah9s0wv3isq"))))
10116 (build-system emacs-build-system)
10117 (home-page "https://github.com/hlissner/emacs-solaire-mode")
10118 (synopsis "Change background of file-visiting buffers in Emacs")
10120 "@code{solaire-mode} is inspired by editors which visually distinguish
10121 code-editing windows from sidebars, popups, terminals, ecetera. It changes the
10122 background of file-visiting buffers (and certain aspects of the UI) to make
10123 them easier to distinguish from other, less important buffers.")
10124 (license license:expat)))
10126 (define-public emacs-embark
10127 ;; XXX: Upstream did not tag last release. Use commit matching version
10129 (let ((commit "09da327d43793f0b30114ee80d82ef587124462a"))
10131 (name "emacs-embark")
10136 (uri (git-reference
10137 (url "https://github.com/oantolin/embark")
10140 (base32 "0drzsa9rzjy0548pa161cf1d71lnyjri31rkwyjray9gy2adbnhv"))
10141 (file-name (git-file-name name version))))
10142 (build-system emacs-build-system)
10144 (list emacs-avy emacs-consult))
10145 (home-page "https://github.com/oantolin/embark")
10146 (synopsis "Emacs mini-buffer actions rooted in keymaps")
10148 "This package provides a sort of right-click contextual menu for Emacs
10149 offering you relevant @emph{actions} to use on a @emph{target} determined by
10152 In the minibuffer, the target is the current best completion candidate. In
10153 the @code{*Completions*} buffer the target is the completion at point. In
10154 a regular buffer, the target is the region if active, or else the file, symbol
10157 The type of actions offered depend on the type of the target. For files you
10158 get offered actions like deleting, copying, renaming, visiting in another
10159 window, running a shell command on the file, etc. For buffers the actions
10160 include switching to or killing the buffer. For package names the actions
10161 include installing, removing or visiting the homepage.")
10162 (license license:gpl3+))))
10164 (define-public emacs-prescient
10166 (name "emacs-prescient")
10171 (uri (git-reference
10172 (url "https://github.com/raxod502/prescient.el")
10173 (commit (string-append "v" version))))
10174 (file-name (git-file-name name version))
10176 (base32 "1mc9pjb80bxcmzaylfwh0sgpvwbx3h35jalznwz464hw3vqfff83"))))
10177 (build-system emacs-build-system)
10179 (list emacs-company emacs-corfu emacs-ivy emacs-selectrum emacs-vertico))
10180 (home-page "https://github.com/raxod502/prescient.el/")
10181 (synopsis "Emacs library for sorting and filtering candidates")
10183 "Prescient is a library for sorting and filtering, as well as extensions
10184 for Ivy and Company that make use of the library.")
10185 (license license:expat)))
10187 (define-public emacs-selectrum
10189 (name "emacs-selectrum")
10194 (uri (git-reference
10195 (url "https://github.com/raxod502/selectrum")
10196 (commit (string-append "v" version))))
10197 (file-name (git-file-name name version))
10199 (base32 "02jrki6vzyfyi1bbslki5pk2348flh9dz18jkc4y7p60bvbr52cb"))))
10200 (build-system emacs-build-system)
10201 (home-page "https://github.com/raxod502/selectrum/")
10202 (synopsis "Incremental narrowing in Emacs")
10203 (description "Selectrum is a solution for incremental narrowing in
10204 Emacs, replacing Helm, Ivy, and IDO. Its design philosophy is based
10205 on choosing the right abstractions and prioritizing consistency and
10206 predictability over special-cased improvements for particular cases.
10207 As such, Selectrum follows existing Emacs conventions where they exist
10208 and are reasonable, and it declines to implement features which have
10209 marginal benefit compared to the additional complexity of a new
10211 (license license:expat)))
10213 (define-public emacs-orderless
10214 (let ((commit "004cee6b8e01f8eb0cb1c683d0a637b14890600f"))
10216 (name "emacs-orderless")
10221 (uri (git-reference
10222 (url "https://github.com/oantolin/orderless")
10225 (base32 "115bwqi2yc44bgvcl7lha8p2s6jgh5hksn4wa9s0kpfxhi14jwmy"))
10226 (file-name (git-file-name name version))))
10227 (build-system emacs-build-system)
10231 #~(modify-phases %standard-phases
10232 (add-after 'install 'makeinfo
10234 (invoke "makeinfo" "orderless.texi")
10235 (install-file "orderless.info"
10236 (string-append #$output "/share/info")))))))
10239 (home-page "https://github.com/oantolin/orderless")
10240 (synopsis "Emacs completion style that matches multiple regexps in any order")
10241 (description "This package provides an orderless completion style that
10242 divides the pattern into space-separated components, and matches candidates
10243 that match all of the components in any order. Each component can match in
10244 any one of several ways: literally, as a regexp, as an initialism, in the flex
10245 style, or as multiple word prefixes.")
10246 (license license:gpl3+))))
10248 (define-public emacs-consult
10250 (name "emacs-consult")
10255 (uri (git-reference
10256 (url "https://github.com/minad/consult")
10259 (base32 "11wk1511hj8m9rmccgq4fb8x7vlr9pi00a9h285lxwj1bdmy9dlz"))
10260 (file-name (git-file-name name version))))
10261 (build-system emacs-build-system)
10262 (propagated-inputs (list emacs-compat))
10263 (home-page "https://github.com/minad/consult")
10264 (synopsis "Consulting completing-read")
10265 (description "This package provides various handy commands based on the
10266 Emacs completion function completing-read, which allows quickly selecting from a
10267 list of candidates.")
10268 (license license:gpl3+)))
10270 (define-public emacs-consult-bibtex
10271 ;; XXX: Upstream contains a single commit, which matches the version below.
10272 (let ((commit "2f870d6eefb54a53216d90a82cff0ff97ba54725"))
10274 (name "emacs-consult-bibtex")
10278 (uri (git-reference
10279 (url "https://github.com/mohkale/consult-bibtex")
10281 (file-name (git-file-name name version))
10284 "0jxjvpg3j8zk77sfhyy27fd1zbj2zz7xayavan3hhj4853q92kwq"))))
10285 (build-system emacs-build-system)
10286 (inputs (list emacs-consult emacs-embark emacs-org-roam-bibtex))
10287 (home-page "https://github.com/mohkale/consult-bibtex")
10288 (synopsis "Consulting-read interface for BibTeX completion")
10289 (description "This package provides a read interface for BibTeX
10290 completion using Consult.")
10291 (license license:gpl3+))))
10293 (define-public emacs-consult-dir
10295 (name "emacs-consult-dir")
10299 (uri (git-reference
10300 (url "https://github.com/karthink/consult-dir")
10301 (commit (string-append "v" version))))
10303 (base32 "1cff4ssrn1mw2s5n090pdmwdirnfih8idg5f0ll2bi2djc4hq5kn"))
10304 (file-name (git-file-name name version))))
10305 (build-system emacs-build-system)
10306 (propagated-inputs (list emacs-consult))
10307 (home-page "https://github.com/karthink/consult-dir")
10308 (synopsis "Insert paths into minibuffer prompts in Emacs")
10309 (description "Consult-dir allows you to easily insert directory
10310 paths into the minibuffer prompt in Emacs.
10312 When using the minibuffer, you can switch---with completion and filtering
10313 provided by your completion setup---to any directory you’ve visited recently,
10314 or to a project or bookmarked directory. The minibuffer prompt will be
10315 replaced with the directory you choose.")
10316 (license license:gpl3+)))
10318 (define-public emacs-consult-notmuch
10320 (name "emacs-consult-notmuch")
10325 (uri (git-reference
10326 (url "https://codeberg.org/jao/consult-notmuch")
10328 (file-name (git-file-name name version))
10330 (base32 "0gcd69i99prnskh1na7clydqgh1y9rbzkdc6dy9zmin9hfdrw1yd"))))
10331 (build-system emacs-build-system)
10333 (list emacs-consult emacs-notmuch))
10334 (home-page "https://codeberg.org/jao/consult-notmuch")
10335 (synopsis "Search and preview Notmuch emails using Consult")
10337 "This package provides two commands using Consult to query Notmuch emails
10338 and present results either as single emails or full trees.")
10339 (license license:gpl3+)))
10341 (define-public emacs-consult-org-roam
10342 (let* ((commit "9572c5bc194a583dc9e86ea7d2751959d86b5c78")
10345 (name "emacs-consult-org-roam")
10346 (version (git-version "0.1" revision commit))
10350 (uri (git-reference
10351 (url "https://github.com/jgru/consult-org-roam")
10353 (file-name (git-file-name name version))
10356 "0c2hjd2gw77h77487fzdqfybg0ricsvlnwwfxai9baawz37bcn7q"))))
10357 (build-system emacs-build-system)
10358 (propagated-inputs (list emacs-consult emacs-org-roam))
10359 (home-page "https://github.com/jgru/consult-org-roam")
10360 (synopsis "Consult integration for Org Roam")
10362 "This is a set of functions to use Org Roam with Consult. This
10363 packages replaces Org Roam's own completing read functions with equivalent
10364 versions utilizing Consult's internal API.")
10365 (license license:gpl3+))))
10367 (define-public emacs-consult-eglot
10369 (name "emacs-consult-eglot")
10373 (uri (git-reference
10374 (url "https://github.com/mohkale/consult-eglot")
10375 (commit (string-append "v" version))))
10377 (base32 "1qxk1npxbf8m3g9spikgdxcf6mzjx6cwy3f5vn6zz5ksh14xw3sd"))
10378 (file-name (git-file-name name version))))
10379 (build-system emacs-build-system)
10380 (propagated-inputs (list emacs-consult emacs-eglot))
10381 (home-page "https://github.com/mohkale/consult-eglot")
10382 (synopsis "Consulting-read interface for eglot")
10383 (description "This package acts as a parallel of consult-lsp for eglot and
10384 provides a front-end interface for the workspace/symbols LSP procedure
10386 (license license:gpl3+)))
10388 (define-public emacs-eglot-tempel
10389 (let ((commit "e08b203d6a7c495d4b91ed4537506b5f1ea8a84f")
10392 (name "emacs-eglot-tempel")
10393 (version (git-version "0.1" revision commit))
10397 (uri (git-reference
10398 (url "https://github.com/fejfighter/eglot-tempel")
10400 (file-name (git-file-name name version))
10402 (base32 "0f4m0bb1f91x9jqfc0ny95a3pfh1mzzjzdjpa6f548hynq8j34ib"))))
10403 (build-system emacs-build-system)
10407 #:test-command #~(list "emacs" "-Q" "-batch"
10408 "-l" "eglot-tempel-tests.el"
10409 "-f" "ert-run-tests-batch-and-exit")))
10410 (native-inputs (list emacs-ert-runner))
10411 (propagated-inputs (list emacs-eglot emacs-tempel))
10412 (home-page "https://github.com/fejfighter/eglot-tempel")
10413 (synopsis "Bridge for Tempel templates with Eglot")
10414 (description "This package is an adapter to use the Tempel templating
10415 library with Eglot instead of Yasnippet.")
10416 (license license:gpl3+))))
10418 (define-public emacs-consult-xdg-recent-files
10419 (let ((commit "593023ffb99a368152ebd4e739488fa560bdfdea")
10422 (name "emacs-consult-xdg-recent-files")
10423 (version (git-version "0" revision commit))
10427 (uri (git-reference
10428 (url "https://github.com/hrehfeld/consult-xdg-recent-files")
10430 (file-name (git-file-name name version))
10432 (base32 "0nd23n67dmlflw52dc1rbhy04mc9ymydnsmvfr75hqb7sznn3343"))))
10433 (build-system emacs-build-system)
10434 (propagated-inputs (list emacs-consult))
10435 (home-page "https://github.com/hrehfeld/consult-xdg-recent-files")
10436 (synopsis "Include files used by other programs than Emacs in Consult")
10438 "This package provides the ability to include files used by other
10439 programs in the candidate lists of commands like @code{consult-recent-file}
10440 and @code{consult-buffer}. This allows to use the same interface for file
10443 On systems that comply with the XDG specification, these files are listed in
10444 the file @file{recently-used.xbel}, which is found in the directory
10445 @file{~/.local/share} or the location described by the environment variable
10446 @code{XDG_DATA_HOME}.")
10447 (license license:gpl3+))))
10449 (define-public emacs-consult-yasnippet
10450 (let ((commit "ae0450889484f23dc4ec37518852a2c61b89f184")
10453 (name "emacs-consult-yasnippet")
10454 (version (git-version "0.2" revision commit))
10458 (uri (git-reference
10459 (url "https://github.com/mohkale/consult-yasnippet")
10461 (file-name (git-file-name name version))
10463 (base32 "13hmmsnmh32vafws61sckzzy354rq0nslqpyzhw97iwvn0fpsa35"))))
10464 (build-system emacs-build-system)
10465 (propagated-inputs (list emacs-consult emacs-yasnippet))
10466 (home-page "https://github.com/mohkale/consult-yasnippet")
10467 (synopsis "Consulting-read interface for Yasnippet")
10469 "This package allows you to expand Yasnippet' snippets through
10470 a completing-read interface. It supports previewing the current snippet
10471 expansion and overwriting the marked region with a new snippet completion.")
10472 (license license:gpl3+))))
10474 (define-public emacs-marginalia
10476 (name "emacs-marginalia")
10481 (uri (git-reference
10482 (url "https://github.com/minad/marginalia")
10484 (file-name (git-file-name name version))
10486 (base32 "1rf4xgb82j1g6ybrzz7ak9hlk86d4r0hcprbqz05hvjnb8nyfa4c"))))
10487 (build-system emacs-build-system)
10488 (home-page "https://github.com/minad/marginalia")
10489 (synopsis "Marginalia in the minibuffer completions")
10491 "This package provides Marginalia mode which adds marginalia to the
10492 minibuffer completions. Marginalia are marks or annotations placed at the
10493 margin of the page of a book or in this case helpful colorful annotations
10494 placed at the margin of the minibuffer for your completion candidates.")
10495 (license license:gpl3+)))
10497 (define-public emacs-smartparens
10499 (name "emacs-smartparens")
10504 (uri (git-reference
10505 (url "https://github.com/Fuco1/smartparens")
10507 (file-name (git-file-name name version))
10509 (base32 "0zij2f2rjjym98w68jkp10n1ckpfprlkk217c3fg16hz5nq4vnm6"))))
10510 (build-system emacs-build-system)
10512 (list emacs-dash emacs-markdown-mode))
10513 (home-page "https://github.com/Fuco1/smartparens")
10514 (synopsis "Paredit-like insertion, wrapping and navigation with user
10517 "Smartparens is a minor mode for Emacs that deals with parens pairs
10518 and tries to be smart about it. It started as a unification effort to
10519 combine functionality of several existing packages in a single,
10520 compatible and extensible way to deal with parentheses, delimiters, tags
10521 and the like. Some of these packages include autopair, textmate,
10522 wrap-region, electric-pair-mode, paredit and others. With the basic
10523 features found in other packages it also brings many improvements as
10524 well as completely new features.")
10525 (license license:gpl3+)))
10527 (define-public emacs-dumbparens
10528 ;; There are no releases.
10529 (let ((commit "18b668772f25e5f7b62c0a000b8169eaf7515057")
10532 (name "emacs-dumbparens")
10533 (version (git-version "0" revision commit))
10539 (url "https://github.com/raxod502/dumbparens")
10541 (file-name (git-file-name name version))
10543 (base32 "0xv2yzjzq2450z007jppf86knnwzb2s3sxvqyk1yp6qs9mgrmnyp"))))
10544 (build-system emacs-build-system)
10548 #:test-command #~(list "make" "test")))
10549 (home-page "https://github.com/raxod502/dumbparens/")
10550 (synopsis "Minor mode that provides improvements on Smartparens")
10552 "@code{emacs-dumbparens} is a minor mode for Emacs that deals with parens
10553 pairs and doesn't try to be smart about it.")
10554 (license license:expat))))
10556 (define-public emacs-highlight-symbol
10557 ;; We prefer a more recent commit that provides an option to squelch
10558 ;; echo-area alerts that can drown out useful information like eldoc
10560 (let ((commit "7a789c779648c55b16e43278e51be5898c121b3a")
10564 (name "emacs-highlight-symbol")
10565 (version (git-version version revision commit))
10569 (uri (git-reference
10570 (url "https://github.com/nschum/highlight-symbol.el")
10572 (file-name (git-file-name name version))
10574 (base32 "19cgyk0sh8nsmf3jbi92i8qsdx4l4yilfq5jj9zfdbj9p5gvwx96"))))
10575 (build-system emacs-build-system)
10576 (home-page "https://nschum.de/src/emacs/highlight-symbol/")
10577 (synopsis "Automatic and manual symbol highlighting for Emacs")
10579 "Use @code{highlight-symbol} to toggle highlighting of the symbol at
10580 point throughout the current buffer. Use @code{highlight-symbol-mode} to keep
10581 the symbol at point highlighted.
10583 The functions @code{highlight-symbol-next}, @code{highlight-symbol-prev},
10584 @code{highlight-symbol-next-in-defun} and
10585 @code{highlight-symbol-prev-in-defun} allow for cycling through the locations
10586 of any symbol at point. Use @code{highlight-symbol-nav-mode} to enable key
10587 bindings @code{M-p} and @code{M-p} for navigation. When
10588 @code{highlight-symbol-on-navigation-p} is set, highlighting is triggered
10589 regardless of @code{highlight-symbol-idle-delay}.
10591 @code{highlight-symbol-query-replace} can be used to replace the symbol.")
10592 (license license:gpl2+))))
10594 (define-public emacs-symbol-overlay
10596 (name "emacs-symbol-overlay")
10601 (uri (git-reference
10602 (url "https://github.com/wolray/symbol-overlay")
10604 (file-name (git-file-name name version))
10606 (base32 "10n0871xzycifyqp73xnbqmrgy60imlb26yhm3p6vfj3d84mg1b2"))))
10607 (build-system emacs-build-system)
10608 (home-page "https://github.com/wolray/symbol-overlay")
10609 (synopsis "Highlight symbols and perform various search operations on them")
10611 "This package provides functions for highlighting and navigating
10613 (license license:gpl3+)))
10615 (define-public emacs-hl-todo
10617 (name "emacs-hl-todo")
10621 (uri (git-reference
10622 (url "https://github.com/tarsius/hl-todo")
10623 (commit (string-append "v" version))))
10624 (file-name (git-file-name name version))
10627 "03i3dvg7scvbxx6z07916zqc7p8w5s9nxv4v2phr68046zjz05dw"))))
10628 (build-system emacs-build-system)
10629 (home-page "https://github.com/tarsius/hl-todo")
10630 (synopsis "Emacs mode to highlight TODO and similar keywords")
10632 "This package provides an Emacs mode to highlight TODO and similar
10633 keywords in comments and strings. This package also provides commands for
10634 moving to the next or previous keyword and to invoke @code{occur} with a
10635 regexp that matches all known keywords.")
10636 (license license:gpl3+)))
10638 (define-public emacs-perspective
10640 (name "emacs-perspective")
10645 (uri (git-reference
10646 (url "https://github.com/nex3/perspective-el")
10648 (file-name (git-file-name name version))
10650 (base32 "1r026cw6p2ss5wg8mxgzf6iv1lb9pdnqyf6yrqb914aibkrvp9b6"))))
10651 (build-system emacs-build-system)
10654 #:test-command '("emacs" "-Q" "-batch" "-L" "."
10655 "-l" "test/test-perspective.el"
10656 "-f" "ert-run-tests-batch-and-exit")))
10657 (home-page "https://github.com/nex3/perspective-el")
10658 (synopsis "Switch between named \"perspectives\"")
10660 "This package provides tagged workspaces in Emacs, similar to workspaces in
10661 windows managers such as Awesome and XMonad. @code{perspective.el} provides
10662 multiple workspaces (or \"perspectives\") for each Emacs frame. Each
10663 perspective is composed of a window configuration and a set of buffers.
10664 Switching to a perspective activates its window configuration, and when in a
10665 perspective only its buffers are available by default.")
10666 ;; This package is released under the same license as Emacs (GPLv3+) or
10667 ;; the Expat license.
10668 (license license:gpl3+)))
10670 (define-public emacs-persp-mode
10672 (name "emacs-persp-mode")
10677 (uri (git-reference
10678 (url "https://github.com/Bad-ptr/persp-mode.el")
10679 (commit (string-append "v" version))))
10680 (file-name (git-file-name name version))
10683 "0b4y7a6j70s9lvr37riyy9k5kh3yvmx0m6nd9c0c8572ji4ij65g"))))
10684 (build-system emacs-build-system)
10685 (home-page "https://github.com/Bad-ptr/persp-mode.el")
10686 (synopsis "Switch between named \"perspectives\" shared among frames")
10688 "This package extends @code{perspective.el} to enable perspectives that
10689 can be saved to and restored from a file.")
10690 (license license:gpl2+)))
10692 (define-public emacs-eyebrowse
10693 ;; XXX: Upstream has no tagged release. Version is extracted from keyword
10695 (let ((commit "88c7b59aa7c5c93bc23812217213adfa238f977b")
10698 (name "emacs-eyebrowse")
10699 (version (git-version "0.7.8" revision commit))
10703 (uri (git-reference
10704 (url "https://depp.brause.cc/eyebrowse.git")
10706 (file-name (git-file-name name version))
10708 (base32 "09s07mvg5bz3dm9sxgn40c7z6d6ry1sdjzsxwgmy825f3xm66avs"))))
10709 (build-system emacs-build-system)
10712 (home-page "https://depp.brause.cc/eyebrowse/")
10713 (synopsis "Simple-minded way to manage window configs in Emacs")
10715 "Eyebrowse is a global minor mode for Emacs that allows you to manage
10716 your window configurations in a simple manner, just like tiling window
10717 managers like i3wm with their workspaces do. It displays their current state
10718 in the modeline by default.")
10719 (license license:gpl3+))))
10721 (define-public emacs-test-simple
10723 (name "emacs-test-simple")
10728 (uri (string-append "https://elpa.gnu.org/packages/test-simple-"
10732 "1yd61jc9ds95a5n09052kwc5gasy57g4lxr0jsff040brlyi9czz"))))
10733 (build-system emacs-build-system)
10734 (home-page "https://github.com/rocky/emacs-test-simple")
10735 (synopsis "Simple unit test framework for Emacs Lisp")
10737 "Test Simple is a simple unit test framework for Emacs Lisp. It
10738 alleviates the need for context macros, enclosing specifications or required
10739 test tags. It supports both interactive and non-interactive use.")
10740 (license license:gpl3+)))
10742 (define-public emacs-load-relative
10744 (name "emacs-load-relative")
10749 (uri (string-append "https://elpa.gnu.org/packages/load-relative-"
10752 (base32 "1m37scr82lqqy954fchjxrmdh4lngrl4d1yzxhp3yfjhsydizhrj"))))
10753 (build-system emacs-build-system)
10754 (home-page "https://github.com/rocky/emacs-load-relative")
10755 (synopsis "Emacs Lisp relative file loading related functions")
10757 "Provides functions which facilitate writing multi-file Emacs packages
10758 and running from the source tree without having to \"install\" code or fiddle
10761 The main function, @code{load-relative}, loads an Emacs Lisp file relative to
10762 another (presumably currently running) Emacs Lisp file.")
10763 (license license:gpl3+)))
10765 (define-public emacs-loc-changes
10767 (name "emacs-loc-changes")
10772 (uri (string-append "https://elpa.gnu.org/packages/loc-changes-"
10776 "1x8fn8vqasayf1rb8a6nma9n6nbvkx60krmiahyb05vl5rrsw6r3"))))
10777 (build-system emacs-build-system)
10778 (home-page "https://github.com/rocky/emacs-loc-changes")
10779 (synopsis "Keeps track of positions even after buffer changes")
10781 "This Emacs package provides a mean to track important buffer positions
10782 after buffer changes.")
10783 (license license:gpl3+)))
10785 (define-public emacs-loccur
10786 (let ((commit "01b7afa62589432a98171074abb8c5a1e089034a")
10789 (name "emacs-loccur")
10790 (version (git-version "1.2.5" revision commit))
10793 (uri (git-reference
10794 (url "https://github.com/fourier/loccur/")
10796 (file-name (git-file-name name version))
10799 "1b1x1xsiwqzsiss1jc6w990v1vfvbn5d5w67yzmx59s9ldjmdqq2"))))
10800 (build-system emacs-build-system)
10801 (home-page "https://github.com/fourier/loccur")
10802 (synopsis "Perform an occur-like folding in current buffer")
10804 "Loccur is a tool to quickly navigate a file. It is a minor mode for
10805 Emacs acting like occur but w/o creating a new window. It just hides all the
10806 text excepting lines containing matches.")
10807 (license license:gpl3+))))
10809 (define-public emacs-realgud
10811 (name "emacs-realgud")
10816 (uri (git-reference
10817 (url "https://github.com/realgud/realgud/")
10821 "1d3s23jk0i34wpyxfajydgyyvsxnpbqrfl0mgydsq7zw2c75ylnq"))
10822 (file-name (git-file-name name version))))
10823 (build-system emacs-build-system)
10828 #~(modify-phases %standard-phases
10829 (add-after 'unpack 'fix-realgud:run-process-void-error
10830 ;; See: https://github.com/realgud/realgud/issues/269.
10832 (substitute* '("realgud/debugger/gdb/gdb.el"
10833 "realgud/debugger/gub/gub.el")
10834 (("^\\(require 'load-relative\\).*" anchor)
10835 (string-append anchor
10836 "(require-relative-list \
10837 '(\"../../common/run\") \"realgud:\")\n")))))
10838 (add-after 'expand-load-path 'fix-autogen-script
10840 (substitute* "autogen.sh"
10841 (("./configure") "sh configure"))))
10842 (add-after 'fix-autogen-script 'autogen
10844 (setenv "CONFIG_SHELL" "sh")
10845 (invoke "sh" "autogen.sh")))
10846 (add-after 'fix-autogen-script 'set-home
10848 (setenv "HOME" (getenv "TMPDIR"))))
10849 (add-before 'patch-el-files 'remove-realgud-pkg.el
10851 ;; FIXME: `patch-el-files' crashes on this file with error:
10852 ;; unable to locate "bashdb".
10853 (delete-file "./test/test-regexp-bashdb.el"))))
10854 #:include #~(cons* ".*\\.el$" %default-include)))
10856 (list autoconf automake emacs-test-simple))
10858 (list emacs-load-relative emacs-loc-changes))
10859 (home-page "https://github.com/realgud/realgud/")
10861 "Modular front-end for interacting with external debuggers")
10863 "RealGUD is a modular, extensible GNU Emacs front-end for interacting
10864 with external debuggers. It integrates various debuggers such as gdb, pdb,
10865 ipdb, jdb, lldb, bashdb, zshdb, etc. and allows visually steping through code in the
10866 sources. Unlike GUD, it also supports running multiple debug sessions in
10868 (license license:gpl3+)))
10870 (define-public emacs-rmsbolt
10871 ;; There is no release tag. Version is extracted from main file.
10872 (let ((commit "ff496660cc52a6dd33d358ef0acc6d4bb70cc340")
10876 (name "emacs-rmsbolt")
10877 (version (git-version version revision commit))
10881 (uri (git-reference
10882 (url "https://gitlab.com/jgkamat/rmsbolt")
10884 (file-name (git-file-name name version))
10886 (base32 "05i0101238yy1da6z543nr9x5gpvgdxrrdn3sw5dibcn6z62ml3p"))))
10887 (build-system emacs-build-system)
10888 (home-page "https://gitlab.com/jgkamat/rmsbolt")
10889 (synopsis "Emacs viewer for compiler output")
10891 "RMSBolt is a package to provide assembly or bytecode output for
10892 a source code input file.")
10893 (license license:agpl3+))))
10895 (define-public emacs-request
10896 ;; We prefer a more recent commit that has support for auth-source,
10897 ;; and has some bug fixes for Emacs 28.
10898 (let ((commit "3336eaa97de923f74b90dda3e35985e122d40805")
10901 (name "emacs-request")
10902 (version (git-version "0.3.2" revision commit))
10905 (uri (git-reference
10906 (url "https://github.com/tkf/emacs-request")
10908 (file-name (git-file-name name version))
10911 "0jckwy5zhz95d6l3lz8b9b34pppcjjzy97fg1wn8mqzhf3h460ac"))))
10912 (build-system emacs-build-system)
10914 `(#:tests? #f)) ; requires network access.
10916 (list emacs-deferred))
10917 (home-page "https://github.com/tkf/emacs-request")
10918 (synopsis "Package for speaking HTTP in Emacs Lisp")
10919 (description "This package provides a HTTP request library with multiple
10920 backends. It supports url.el which is shipped with Emacs and the curl command
10922 (license license:gpl3+))))
10924 (define-public emacs-rudel
10926 (name "emacs-rudel")
10931 (uri (string-append "https://elpa.gnu.org/packages/rudel-"
10934 (base32 "03hcvpp6ykavidwn5x48gs986w1i5icvh7ks6p74pdaagpgw4jmk"))))
10935 (build-system emacs-build-system)
10936 (home-page "http://rudel.sourceforge.net/")
10937 (synopsis "Collaborative editing framework")
10939 "Rudel is a collaborative editing environment for GNU Emacs. Its purpose
10940 is to share buffers with other users in order to edit the contents of those
10941 buffers collaboratively. Rudel supports multiple backends to enable
10942 communication with other collaborative editors using different protocols,
10943 though currently Obby (for use with the Gobby editor) is the only
10944 fully-functional one.")
10945 (license license:gpl3+)))
10947 (define-public emacs-hydra
10949 (name "emacs-hydra")
10954 (uri (git-reference
10955 (url "https://github.com/abo-abo/hydra")
10957 (file-name (git-file-name name version))
10960 "0fapvhmhgc9kppf3bvkgry0cd7gyilg7sfvlscfrfjxpx4xvwsfy"))))
10961 (build-system emacs-build-system)
10964 #:test-command '("make" "test")))
10965 (home-page "https://github.com/abo-abo/hydra")
10966 (synopsis "Make Emacs bindings that stick around")
10968 "This package can be used to tie related commands into a family of short
10969 bindings with a common prefix---a Hydra. Once you summon the Hydra (through
10970 the prefixed binding), all the heads can be called in succession with only a
10971 short extension. Any binding that isn't the Hydra's head vanquishes the
10972 Hydra. Note that the final binding, besides vanquishing the Hydra, will still
10973 serve its original purpose, calling the command assigned to it. This makes
10974 the Hydra very seamless; it's like a minor mode that disables itself
10976 (license license:gpl3+)))
10978 (define-public emacs-pretty-hydra
10980 (name "emacs-pretty-hydra")
10985 (uri (git-reference
10986 (url "https://github.com/jerrypnz/major-mode-hydra.el")
10988 (file-name (git-file-name name version))
10991 "08a15knkdq35pzjq82imff016fbfdib5q4glg2xmdy2b5fnk7jqa"))))
10992 (build-system emacs-build-system)
10994 (list emacs-dash emacs-hydra emacs-s))
10996 `(#:exclude (cons "^major-mode-hydra\\.el" %default-exclude)))
10997 (home-page "https://github.com/jerrypnz/major-mode-hydra.el")
10998 (synopsis "Major mode keybindings managed by Hydra")
11000 "This package offers an hydra-based method of managing major
11001 mode-specific key bindings. It is intended for use as a library only; see
11002 package @code{emacs-major-mode-hydra} for a user-friendly interface.")
11003 (license license:gpl3+)))
11005 (define-public emacs-interleave
11007 (name "emacs-interleave")
11014 (url "https://github.com/rudolfochrist/interleave")
11015 (commit (string-append "interleave-" version))))
11016 (file-name (git-file-name name version))
11018 (base32 "0l5b681mrpk12lx5c16m7kc13p29z6zismwg1llsjg7cdmrmsrcb"))))
11019 (build-system emacs-build-system)
11020 (home-page "https://github.com/rudolfochrist/interleave")
11021 (synopsis "Emacs minor mode to interleave notes and text books")
11023 "Interleave is a minor mode that presents a document viewer side
11024 by side to an Org buffer with your notes relevant to the current page.")
11025 (license license:gpl3+)))
11027 (define-public emacs-major-mode-hydra
11029 (inherit emacs-pretty-hydra)
11030 (name "emacs-major-mode-hydra")
11032 (list emacs-dash emacs-pretty-hydra))
11034 `(#:exclude (cons "^pretty-hydra\\.el" %default-exclude)))
11035 (synopsis "Create nice-looking hydras")
11037 "This package provides the macro @code{pretty-hydra-define} to define
11038 hydras with one column per group of heads.")))
11040 (define-public emacs-ivy
11047 (uri (string-append "https://elpa.gnu.org/packages/ivy-" version ".tar"))
11049 (base32 "0qpza1c45mr8fcpnm32cck4v22fnzz1yb7kww05rzgq1k9iivx5v"))))
11050 (build-system emacs-build-system)
11052 (list emacs-hydra))
11053 (home-page "https://github.com/abo-abo/swiper")
11054 (synopsis "Incremental vertical completion for Emacs")
11056 "This package provides @code{ivy-read} as an alternative to
11057 @code{completing-read} and similar functions. No attempt is made to determine
11058 the best candidate. Instead, the user can navigate candidates with
11059 @code{ivy-next-line} and @code{ivy-previous-line}. The matching is done by
11060 splitting the input text by spaces and re-building it into a regular
11062 (license license:gpl3+)))
11064 (define-public emacs-counsel
11066 (name "emacs-counsel")
11071 (uri (string-append "https://elpa.gnu.org/packages/"
11072 "counsel-" version ".tar"))
11074 (base32 "094zfapfn1l8wjf3djkipk0d9nks0g77sbk107pfsbr3skkzh031"))))
11075 (build-system emacs-build-system)
11077 (list emacs-swiper))
11078 (home-page "https://github.com/abo-abo/swiper")
11079 (synopsis "Various completion functions using Ivy")
11081 "Just call one of the interactive functions in a file to complete the
11082 corresponding thing using Ivy.
11084 The following completions are currently available:
11086 @item Symbol completion for Elisp, Common Lisp, Python, Clojure, C, C++.
11087 @item Describe functions for Elisp: function, variable, library, command,
11088 @item bindings, theme.
11089 @item Navigation functions: imenu, ace-line, semantic, outline.
11090 @item Git utilities: git-files, git-grep, git-log, git-stash, git-checkout.
11091 @item Grep utilities: grep, ag, pt, recoll, ack, rg.
11092 @item System utilities: process list, rhythmbox, linux-app.
11095 (license license:gpl3+)))
11097 (define-public emacs-swiper
11099 (name "emacs-swiper")
11104 (uri (string-append "https://elpa.gnu.org/packages/swiper-" version ".tar"))
11106 (base32 "197pq2cvvskib87aky907wv2am55vilr7y5dabmmm07a8vr9py0v"))))
11107 (build-system emacs-build-system)
11110 (home-page "https://github.com/abo-abo/swiper")
11111 (synopsis "Isearch with an overview")
11113 "This package gives an overview of the current regex search candidates.
11114 The search regex can be split into groups with a space. Each group is
11115 highlighted with a different face.
11117 It can double as a quick `regex-builder', although only single lines will be
11119 (license license:gpl3+)))
11121 (define-public emacs-ivy-xref
11122 (let ((commit "1a35fc0f070388701b05b0a455cbe262e924d547")
11125 (name "emacs-ivy-xref")
11126 (version (git-version "0.1" revision commit))
11130 (uri (git-reference
11131 (url "https://github.com/alexmurray/ivy-xref")
11133 (file-name (git-file-name name version))
11136 "0d71nm9d9ajp5i6dnl8h1hw9jqp8gd1ajgninb1h13i80rplzl9k"))))
11137 (build-system emacs-build-system)
11140 (home-page "https://github.com/alexmurray/ivy-xref")
11141 (synopsis "Ivy interface for @code{xref}")
11142 (description "This package provides an Ivy interface for selecting from
11143 @code{xref} results.")
11144 (license license:gpl3))))
11146 (define-public emacs-ivy-pass
11147 (let ((commit "5b523de1151f2109fdd6a8114d0af12eef83d3c5")
11150 (name "emacs-ivy-pass")
11151 (version (git-version "0.1" revision commit))
11155 (uri (git-reference
11156 (url "https://github.com/ecraven/ivy-pass")
11158 (file-name (git-file-name name version))
11161 "18crb4zh2pjf0cmv3b913m9vfng27girjwfqc3mk7vqd1r5a49yk"))))
11162 (build-system emacs-build-system)
11164 (list emacs-ivy emacs-password-store))
11165 (home-page "https://github.com/ecraven/ivy-pass")
11166 (synopsis "Ivy interface to the @code{pass} password store")
11168 "This package provides an Ivy interface for working with the password
11169 store (@code{pass}) in Emacs.")
11170 (license license:gpl3))))
11172 (define-public emacs-ivy-yasnippet
11173 (let ((commit "32580b4fd23ebf9ca7dde96704f7d53df6e253cd")
11176 (name "emacs-ivy-yasnippet")
11177 (version (git-version "0.1" revision commit))
11181 (uri (git-reference
11182 (url "https://github.com/mkcms/ivy-yasnippet")
11184 (file-name (git-file-name name version))
11187 "1wfg6mmd5gl1qgvayyzpxlkh9s7jgn20y8l1vh1zbj1czvv51xp8"))))
11188 (build-system emacs-build-system)
11190 (list emacs-ivy emacs-yasnippet emacs-dash))
11191 (home-page "https://github.com/mkcms/ivy-yasnippet")
11192 (synopsis "Preview @code{yasnippets} with @code{ivy}")
11193 (description "This package allows you to select @code{yasnippet}
11194 snippets using @code{ivy} completion. When current selection changes in the
11195 minibuffer, the snippet contents are temporarily expanded in the buffer. To
11196 use it, call @code{M-x ivy-yasnippet} (but make sure you have enabled
11197 @code{yas-minor-mode} first).")
11198 (license license:gpl3+))))
11200 ;; The 0.1.6 release is incompatible with newer ivy versions, so we instead
11201 ;; pick a more recent snapshot of the repository, see
11202 ;; https://github.com/Yevgnen/ivy-rich/pull/80.
11203 (define-public emacs-ivy-rich
11204 (let ((commit "600b8183ed0be8668dcc548cc2c8cb94b001363b")
11207 (name "emacs-ivy-rich")
11208 (version (git-version "0.1.6" revision commit))
11212 (uri (git-reference
11213 (url "https://github.com/Yevgnen/ivy-rich")
11215 (file-name (git-file-name name version))
11217 (base32 "1dv6vr7fv32v5m04zdy02sdajpvrnpc4i3pbh2dwfv73ff8d8yxm"))))
11218 (build-system emacs-build-system)
11221 (home-page "https://github.com/Yevgnen/ivy-rich")
11222 (synopsis "More friendly interface for @code{ivy}")
11224 "This package extends Ivy by showing more information in the minibuffer
11225 for each candidate. It adds columns showing buffer modes, file sizes,
11226 docstrings, etc. If @code{emacs-all-the-icons} is installed, it can show
11228 (license license:gpl3+))))
11230 (define-public emacs-avy
11237 (uri (git-reference
11238 (url "https://github.com/abo-abo/avy")
11240 (file-name (git-file-name name version))
11242 (base32 "09qdni1s74i5pv8741szl5g4ynj8fxn0x65qmwa9rmfkbimnc0fs"))))
11243 (build-system emacs-build-system)
11246 #:test-command '("make" "test")))
11247 (home-page "https://github.com/abo-abo/avy")
11248 (synopsis "Tree-based completion for Emacs")
11250 "This package provides a generic completion method based on building a
11251 balanced decision tree with each candidate being a leaf. To traverse the tree
11252 from the root to a desired leaf, typically a sequence of @code{read-key} can
11255 In order for @code{read-key} to make sense, the tree needs to be visualized
11256 appropriately, with a character at each branch node. So this completion
11257 method works only for things that you can see on your screen, all at once,
11258 such as the positions of characters, words, line beginnings, links, or
11260 (license license:gpl3+)))
11262 (define-public emacs-ace-window
11264 (name "emacs-ace-window")
11269 (uri (git-reference
11270 (url "https://github.com/abo-abo/ace-window")
11272 (file-name (git-file-name name version))
11275 "0f3r40d5yxp2pm2j0nn86s29nqj8py0jxjbj50v4ci3hsd92d8jl"))))
11276 (build-system emacs-build-system)
11279 (home-page "https://github.com/abo-abo/ace-window")
11280 (synopsis "Quickly switch windows in Emacs")
11282 "@code{ace-window} is meant to replace @code{other-window}.
11283 In fact, when there are only two windows present, @code{other-window} is
11284 called. If there are more, each window will have its first character
11285 highlighted. Pressing that character will switch to that window.")
11286 (license license:gpl3+)))
11288 (define-public emacs-windsize
11289 ;; There is no proper release. The base version is extracted from the
11290 ;; "Version" keyword in the main file.
11291 (let ((revision "1")
11292 (commit "62c2846bbe95b0a73e996c75e4a644d05f57aaaa"))
11294 (name "emacs-windsize")
11295 (version (git-version "0.1" revision commit))
11299 (uri (git-reference
11300 (url "https://github.com/grammati/windsize")
11302 (file-name (git-file-name name version))
11304 (base32 "13kfrmv3vmkfanxv9nym5v43hx5p7xkgqmx65zcxh4gcbaham1mi"))))
11305 (build-system emacs-build-system)
11306 (home-page "https://github.com/grammati/windsize")
11307 (synopsis "Easy resizing of Emacs windows")
11309 "This package allows moving the borders of the active window
11310 with the arrow keys. It prefers to move the right or bottom border when
11311 possible, and falls back to moving the left or top border otherwise.")
11312 (license license:gpl3+))))
11314 (define-public emacs-window-purpose
11316 (name "emacs-window-purpose")
11321 (uri (git-reference
11322 (url "https://github.com/bmag/emacs-purpose.git")
11323 (commit (string-append "v" version))))
11324 (file-name (git-file-name name version))
11327 "1cw513mh3gyl21qpmgwqjgpi8kwddmd4n69l4ax5a5pv3vvwrcx9"))))
11328 (build-system emacs-build-system)
11330 (list emacs-let-alist emacs-imenu-list))
11342 "^doc/[^/]+.texinfo$"
11345 '("^.dir-locals.el$"
11349 "^[^/]+-tests.el$")))
11350 (home-page "https://github.com/bmag/emacs-purpose")
11351 (synopsis "Purpose-based window management for Emacs")
11352 (description "Purpose is a package that introduces the concept of a
11353 \"purpose\" for windows and buffers, and then helps you maintain a robust
11354 window layout easily.")
11355 (license license:gpl3+)))
11357 (define-public emacs-iedit
11359 (name "emacs-iedit")
11360 (version "0.9.9.9.9")
11364 (uri (git-reference
11365 (url "https://github.com/victorhge/iedit")
11366 (commit (string-append "v" version))))
11367 (file-name (git-file-name name version))
11369 (base32 "02jdyrff88n69d4kadjaac38gwcv28lhiqqa93rlqzdvmgqsbwak"))))
11370 (build-system emacs-build-system)
11371 (home-page "https://www.emacswiki.org/emacs/Iedit")
11372 (synopsis "Edit multiple regions in the same way simultaneously")
11374 "This package is an Emacs minor mode and allows you to edit one
11375 occurrence of some text in a buffer (possibly narrowed) or region, and
11376 simultaneously have other occurrences edited in the same way.
11378 You can also use Iedit mode as a quick way to temporarily show only the buffer
11379 lines that match the current text being edited. This gives you the effect of
11380 a temporary @code{keep-lines} or @code{occur}.")
11381 (license license:gpl3+)))
11383 (define-public emacs-zoutline
11385 (name "emacs-zoutline")
11390 (uri (git-reference
11391 (url "https://github.com/abo-abo/zoutline")
11395 "1w0zh6vs7klgivq5r030a82mcfg1zwic4x3fimyiqyg5n8p67hyx"))
11396 (file-name (git-file-name name version))))
11397 (build-system emacs-build-system)
11398 (home-page "https://github.com/abo-abo/zoutline")
11399 (synopsis "Simple outline library")
11401 "This library provides helpers for outlines. Outlines allow users to
11402 navigate code in a tree-like fashion.")
11403 (license license:gpl3+)))
11405 (define-public emacs-lispy
11406 ;; No release since May 2019 and tons of fixes have landed on master.
11407 ;; https://github.com/abo-abo/lispy/issues/513
11408 (let ((commit "df1b7e614fb0f73646755343e8892ddda310f427"))
11410 (name "emacs-lispy")
11411 (version (git-version "0.27.0" "3" commit))
11412 (home-page "https://github.com/abo-abo/lispy")
11415 (uri (git-reference
11416 (url "https://github.com/abo-abo/lispy")
11420 "02pmnn9cqslahnvllqzawp2j5icmb3wgkrk4qrfxjds68jg7pjj4"))
11422 (search-patches "emacs-lispy-fix-thread-last-test.patch"))
11423 (file-name (git-file-name name version))))
11424 (build-system emacs-build-system)
11426 (list emacs-ace-window emacs-hydra emacs-iedit emacs-swiper
11429 (list which emacs-clojure-mode emacs-undercover))
11432 #:include #~(cons* "^lispy-clojure\\.clj$"
11433 "^lispy-python\\.py$"
11436 ;; XXX: Some failing tests
11437 #~(modify-phases %standard-phases
11438 (add-before 'check 'make-test-writable
11440 (make-file-writable "lispy-test.el")))
11441 (add-before 'check 'remove-failing-test
11443 (emacs-batch-edit-file "lispy-test.el"
11445 (dolist (test '("lispy-eval-python-str" "lispy--clojure-dot-object"))
11446 (goto-char (point-min))
11448 (concat "ert-deftest " test))
11449 (beginning-of-line)
11451 (basic-save-buffer))))))
11453 ;; Set BEMACS to prevent the test suite from loading straight.el.
11454 #:test-command #~(list "make" "test" "BEMACS=emacs -batch")))
11455 (synopsis "Modal S-expression editing")
11457 "Due to the structure of Lisp syntax it's very rare for the programmer
11458 to want to insert characters right before \"(\" or right after \")\". Thus
11459 unprefixed printable characters can be used to call commands when the point is
11460 at one of these special locations. Lispy provides unprefixed keybindings for
11461 S-expression editing when point is at the beginning or end of an
11463 (license license:gpl3+))))
11465 (define-public emacs-lispyville
11466 (let ((commit "89316f01822b2135e52ca27fd308d207ef618052")
11469 (name "emacs-lispyville")
11470 (version (git-version "0.1" revision commit))
11471 (home-page "https://github.com/noctuid/lispyville")
11474 (uri (git-reference (url home-page) (commit commit)))
11477 "10k3hxxpx2v2k4dyad7j1bzmr1q7rzvv4y6c67pa9zcqyaw8m91v"))
11478 (file-name (git-file-name name version))))
11480 (list emacs-evil emacs-lispy))
11481 (build-system emacs-build-system)
11482 (synopsis "Minor mode for integrating Evil with lispy")
11484 "LispyVille's main purpose is to provide a Lisp editing environment
11485 suited towards Evil users. It can serve as a minimal layer on top of lispy
11486 for better integration with Evil, but it does not require the use of lispy’s
11487 keybinding style. The provided commands allow for editing Lisp in normal
11488 state and will work even without lispy being enabled.")
11489 (license license:gpl3+))))
11491 (define-public emacs-function-args
11492 ;; The latest release is from August 21, 2017.
11493 (let ((commit "beba049751fed78666c87bd146a6f1cf149bb819")
11496 (name "emacs-function-args")
11497 (version (git-version "0.6.0" revision commit))
11501 (uri (git-reference
11502 (url "https://github.com/abo-abo/function-args")
11504 (file-name (git-file-name name version))
11507 "1j92ll2afvcp891fxra3sawxg000cs3ra01wxksiil2dg5zpzzkn"))))
11508 (build-system emacs-build-system)
11509 (propagated-inputs (list emacs-ivy))
11510 (home-page "https://github.com/abo-abo/function-args")
11511 (synopsis "C/C++ completion for GNU Emacs")
11513 "This package provides a way of showing an inline arguments hint for
11514 the C/C++ function at point.")
11515 (license license:gpl3+))))
11517 (define-public emacs-lpy
11518 ;; There is no proper release/tag.
11519 (let ((commit "fa95b11e1023704510cc7dd2897bf8bcc3027cbb")
11523 (version (git-version "0.1.0" revision commit))
11527 (uri (git-reference
11528 (url "https://github.com/abo-abo/lpy")
11530 (file-name (git-file-name name version))
11533 "18kx2mfmxy8s8csnp0iaiirl2z9baicq9f2w7rxlgkxww5511v7d"))))
11534 (build-system emacs-build-system)
11536 (list emacs-function-args emacs-lispy emacs-zoutline))
11537 (home-page "https://github.com/abo-abo/lpy")
11538 (synopsis "Modal editing for Python")
11540 "This package provides a minor mode for Python that binds useful
11541 commands to unprefixed keys, such as @code{j} or @code{e}, under certain
11542 circumstances, and leaves the keys untouched outside of those situations,
11543 allowing unprefixed keys to insert their respective characters as expected.")
11544 (license license:gpl3+))))
11546 (define-public emacs-clojure-mode
11548 (name "emacs-clojure-mode")
11553 (uri (git-reference
11554 (url "https://github.com/clojure-emacs/clojure-mode")
11555 (commit (string-append "v" version))))
11556 (file-name (git-file-name name version))
11558 (base32 "0s09b9gbmjmk56jm9hcbk06zfa96kqhgx58d98w13yy01yx0pych"))))
11559 (build-system emacs-build-system)
11561 (list emacs-buttercup emacs-dash emacs-paredit emacs-s))
11564 #:test-command '("buttercup")))
11565 (home-page "https://github.com/clojure-emacs/clojure-mode")
11566 (synopsis "Major mode for Clojure code")
11568 "This Emacs package provides font-lock, indentation, navigation and basic
11569 refactoring for the @uref{http://clojure.org, Clojure programming language}.
11570 It is recommended to use @code{clojure-mode} with Paredit or Smartparens.")
11571 (license license:gpl3+)))
11573 (define-public emacs-clj-refactor
11575 (name "emacs-clj-refactor")
11580 (uri (git-reference
11581 (url "https://github.com/clojure-emacs/clj-refactor.el")
11582 (commit (string-append "v" version))))
11583 (file-name (git-file-name name version))
11585 (base32 "15ya7hp5d2kwh1ig55d75vlghm1vsq99jh44i8q8v25vfmzjp7gp"))))
11586 (build-system emacs-build-system)
11588 (list emacs-yasnippet emacs-paredit emacs-multiple-cursors emacs-cider
11589 emacs-clojure-mode emacs-parseedn emacs-hydra emacs-inflections))
11590 (home-page "https://github.com/clojure-emacs/clj-refactor.el")
11591 (synopsis "Powerful refactoring functionality for Clojure projects")
11592 (description "This Emacs package complements the refactoring functionality
11593 you'd find in clojure-mode and CIDER.")
11594 (license license:gpl3+)))
11596 (define-public emacs-clojure-snippets
11597 ;; Use latest commit (2018) since latest tagged release is too old and is
11598 ;; missing important changes.
11599 (let ((version "1.0.1")
11601 (commit "6068dca90467a0f4ebc2cd39338a173d6f5ddc04"))
11603 (name "emacs-clojure-snippets")
11604 (version (git-version version revision commit))
11608 (uri (git-reference
11609 (url "https://github.com/mpenet/clojure-snippets")
11611 (file-name (git-file-name name version))
11613 (base32 "0vvadcydpsz4b17dlm1jd4fbddzfqibh3mlzv3k4gvp67vv10cqy"))))
11614 (build-system emacs-build-system)
11616 `(#:include (cons* "^.*\\/" %default-include)))
11618 (list emacs-yasnippet))
11619 (home-page "https://github.com/mpenet/clojure-snippets")
11620 (synopsis "Yasnippets for Clojure")
11622 "This package provides Yasnippets snippets for Clojure.")
11623 (license license:gpl3+))))
11625 (define-public emacs-anakondo
11626 ;; This particular commit introduces bug fixes above latest release.
11627 (let ((version "0.2.1")
11629 (commit "c48518560815c49d8d78fb9069906d17e883385e"))
11631 (name "emacs-anakondo")
11632 (version (git-version version revision commit))
11636 (uri (git-reference
11637 (url "https://github.com/didibus/anakondo")
11639 (file-name (git-file-name name version))
11641 (base32 "1fzsqd150gpmrj8kz3zy9cd78x9vank7ra720mljhyf04z0h1mj6"))))
11642 (build-system emacs-build-system)
11643 (home-page "https://github.com/didibus/anakondo")
11644 (synopsis "clj-kondo based Clojure[Script] editing facilities")
11646 "This package makes use of clj-kondo's analysis data to provide code
11647 editing facilities related to Clojure, ClojureScript and cljc source.")
11648 (license license:expat))))
11650 (define-public emacs-epl
11657 (uri (git-reference
11658 (url "https://github.com/cask/epl")
11660 (file-name (git-file-name name version))
11662 (base32 "0d3z5z90ln8ipk1yds1n1p8fj9yyh2kpspqjs7agl38indra3nb4"))))
11663 (build-system emacs-build-system)
11664 (home-page "https://github.com/cask/epl")
11665 (synopsis "Emacs Package Library")
11667 "A package management library for Emacs, based on @code{package.el}.
11669 The purpose of this library is to wrap all the quirks and hassle of
11670 @code{package.el} into a sane API.")
11671 (license license:gpl3+)))
11673 (define-public emacs-counsel-jq
11675 (name "emacs-counsel-jq")
11677 (home-page "https://github.com/200ok-ch/counsel-jq")
11681 (uri (git-reference
11683 (commit "aaf33fc2447096cd0d03b77395fe2a95c9fe1481")))
11684 (file-name (git-file-name name version))
11686 (base32 "10rz0qm8a4bl0m86kx19zq8lri047p4sxqyny08bgm9pbam0wvwn"))))
11687 (build-system emacs-build-system)
11689 (list emacs-swiper jq))
11690 (synopsis "Live preview @code{jq} queries using counsel")
11692 "This Emacs package provides the ability to live preview @code{jq}
11693 queries using counsel.")
11694 (license license:gpl3+)))
11696 (define-public emacs-counsel-notmuch
11697 ;; Upstream provides no release. Extract version for main file.
11698 (let ((commit "a4a1562935e4180c42524c51609d1283e9be0688")
11701 (name "emacs-counsel-notmuch")
11702 (version (git-version "1.0" revision commit))
11706 (uri (git-reference
11707 (url "https://github.com/fuxialexander/counsel-notmuch")
11709 (file-name (git-file-name name version))
11711 (base32 "01k1321d961kc2i660a5595bqk0d85f16snsxngsn5si6y83kqr7"))))
11712 (build-system emacs-build-system)
11715 (modify-phases %standard-phases
11716 (add-after 'unpack 'locate-notmuch
11717 (lambda* (#:key inputs #:allow-other-keys)
11718 (make-file-writable "counsel-notmuch.el")
11719 (emacs-substitute-variables "counsel-notmuch.el"
11720 ("counsel-notmuch-path"
11721 (search-input-file inputs "/bin/notmuch"))))))))
11723 (list emacs-counsel notmuch emacs-s))
11725 (list emacs-notmuch))
11726 (home-page "https://github.com/fuxialexander/counsel-notmuch")
11727 (synopsis "Search emails in Notmuch asynchronously with Ivy")
11729 "This package can be used to search emails in Notmuch
11730 asynchronously, with Counsel and Ivy. Simply call
11731 @code{counsel-notmuch} and input your Notmuch query.")
11732 (license license:gpl3+))))
11734 (define-public emacs-counsel-projectile
11736 (name "emacs-counsel-projectile")
11741 (uri (git-reference
11742 (url "https://github.com/ericdanan/counsel-projectile")
11744 (file-name (git-file-name name version))
11746 (base32 "1vp39r5njfzchkqv9g0w77whazp070anh9gmbkp3z4n3xxbik27f"))))
11747 (build-system emacs-build-system)
11749 (list emacs-counsel emacs-projectile))
11750 (home-page "https://github.com/ericdanan/counsel-projectile")
11751 (synopsis "Enhance Projectile with Ivy")
11753 "This package uses Ivy to provide additional actions for Projectile
11754 commands and replacements for existing functions.")
11755 (license license:gpl3+)))
11757 (define-public emacs-qml-mode
11759 (name "emacs-qml-mode")
11763 (uri (git-reference
11764 (url "https://github.com/coldnew/qml-mode")
11766 (file-name (git-file-name name version))
11769 "1sncsvzjfgmhp4m8w5jd4y51k24n2jfpgvrkd64wlhhzbj3wb947"))))
11770 (build-system emacs-build-system)
11771 (home-page "https://github.com/coldnew/qml-mode/")
11772 (synopsis "Qt Modeling Language (QML) mode for Emacs")
11773 (description "This package provides the @code{qml-mode} major Emacs mode
11774 for editing source files written in the Qt Modeling Language (QML) user
11775 interface markup language. It provides syntax highlighting and basic
11776 navigation commands. @code{qml-mode} is derived from code{js-mode}, the Emacs
11777 builtin JavaScript mode.")
11778 (license license:gpl2+)))
11780 (define-public emacs-queue
11782 (name "emacs-queue")
11786 (uri (string-append "https://elpa.gnu.org/packages/queue-"
11790 "0cx2848sqnnkkr4zisvqadzxngjyhmb36mh0q3if7q19yjjhmrkb"))))
11791 (build-system emacs-build-system)
11792 (home-page "https://www.dr-qubit.org/emacs_data-structures.html")
11793 (synopsis "Queue data structure for Emacs")
11795 "This Emacs library provides queue data structure. These queues can be
11796 used both as a first-in last-out (FILO) and as a first-in first-out (FIFO)
11797 stack, i.e. elements can be added to the front or back of the queue, and can
11798 be removed from the front. This type of data structure is sometimes called an
11799 \"output-restricted deque\".")
11800 (license license:gpl3+)))
11802 (define-public emacs-quickrun
11804 (name "emacs-quickrun")
11809 (uri (git-reference
11810 (url "https://github.com/emacsorphanage/quickrun")
11813 (base32 "0a1n2v09h0n7d9p2izflqqang4ny0b46dlqvmxvkkik4bb6f4wcz"))
11814 (file-name (git-file-name name version))))
11815 (build-system emacs-build-system)
11816 (home-page "https://github.com/emacsorphanage/quickrun")
11817 (synopsis "Execute editing buffer and show its output quickly")
11819 "This package evaluates the content of a buffer, or region, and displays
11820 the result. Quickrun executes not only script languages (Perl, Ruby, Python
11821 etc), but also compiling languages (C, C++, Go, Java etc) and markup
11823 (license license:gpl3+)))
11825 (define-public emacs-pkg-info
11827 (name "emacs-pkg-info")
11832 (uri (git-reference
11833 (url "https://github.com/lunaryorn/pkg-info.el")
11835 (file-name (git-file-name name version))
11837 (base32 "0nk12dcppdyhav6m6yf7abpywyd7amxd4237zsfd32w4zxsx39k1"))))
11838 (build-system emacs-build-system)
11839 (propagated-inputs (list emacs-epl))
11840 (home-page "https://github.com/lunaryorn/pkg-info.el")
11841 (synopsis "Information about Emacs packages")
11843 "This library extracts information from the installed Emacs packages.")
11844 (license license:gpl3+)))
11846 (define-public emacs-spinner
11848 (name "emacs-spinner")
11852 (uri (string-append "https://elpa.gnu.org/packages/spinner-"
11855 (base32 "140kss25ijbwf8hzflbjz67ry76w2cyrh02axk95n6qcxv7jr7pv"))))
11856 (build-system emacs-build-system)
11857 (home-page "https://github.com/Malabarba/spinner.el")
11858 (synopsis "Emacs mode-line spinner for operations in progress")
11860 "This Emacs package adds spinners and progress-bars to the mode-line for
11861 ongoing operations.")
11862 (license license:gpl3+)))
11864 (define-public emacs-sparql-mode
11866 (name "emacs-sparql-mode")
11871 (uri (git-reference
11872 (url "https://github.com/ljos/sparql-mode")
11873 (commit (string-append "v" version))))
11874 (file-name (git-file-name name version))
11876 (base32 "0hqp8r24wvzrkl630wbm0lynrcrnawv2yn2a3xgwqwwhwgva35rn"))))
11877 (build-system emacs-build-system)
11879 (list emacs-company))
11880 (home-page "https://github.com/ljos/sparql-mode")
11881 (synopsis "SPARQL mode for Emacs")
11883 "This package is a major mode for Emacs that provides syntax highlighting
11884 for SPARQL. It can also execute queries against a SPARQL HTTP endpoint, such
11885 as Fuseki or DBPedia.")
11886 (license license:gpl3+)))
11888 (define-public emacs-better-defaults
11890 (name "emacs-better-defaults")
11895 (uri (git-reference
11896 (url "https://git.sr.ht/~technomancy/better-defaults")
11898 (file-name (git-file-name name version))
11901 "1rxznx2l0cdpiz8mad8s6q17m1fngpgb1cki7ch6yh18r3qz8ysr"))))
11902 (build-system emacs-build-system)
11903 (home-page "https://git.sr.ht/~technomancy/better-defaults")
11904 (synopsis "Better defaults for Emacs")
11906 "Better defaults attempts to address the most obvious deficiencies of the
11907 Emacs default configuration in uncontroversial ways that nearly everyone can
11909 (license license:gpl3+)))
11911 (define-public emacs-undohist-el
11913 (name "emacs-undohist-el")
11918 (uri (git-reference
11919 (url "https://github.com/m2ym/undohist-el")
11921 (file-name (git-file-name name version))
11923 (base32 "0hmx2b20nrxg2lb8vplgrzdh8chgxwlbmjvbq5scddggd302sd56"))))
11924 (build-system emacs-build-system)
11925 (home-page "https://github.com/m2ym/undohist-el")
11926 (synopsis "Save undo history between sessions")
11927 (description "This package allows persistent use of undo history for
11928 individual file buffers.")
11929 (license license:gpl3+)))
11931 (define-public emacs-eprime
11932 (let ((commit "17a481af26496be91c07139a9bfc05cfe722506f"))
11934 (name "emacs-eprime")
11935 (version (string-append "20140513-" (string-take commit 7)))
11938 (uri (string-append "https://raw.githubusercontent.com"
11939 "/AndrewHynes/eprime-mode/"
11940 commit "/eprime-mode.el"))
11941 (file-name (string-append "eprime-" version ".el"))
11944 "0v68lggkyq7kbcr9zyi573m2g2x251xy3jadlaw8kx02l8krwq8d"))))
11945 (build-system emacs-build-system)
11946 (home-page "https://github.com/AndrewHynes/eprime-mode")
11947 (synopsis "E-prime checking mode for Emacs")
11948 (description "This package provides an E-prime checking mode for Emacs
11949 that highlights non-conforming text. The subset of the English language called
11950 E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
11951 (license license:gpl3+))))
11953 (define-public emacs-julia-mode
11955 (name "emacs-julia-mode")
11960 (uri (git-reference
11961 (url "https://github.com/JuliaEditorSupport/julia-emacs")
11963 (file-name (git-file-name name version))
11966 "1w131jb9mhvyjxa0p93iwfhzidgbcs6b8i6jg79yisqb9wchik99"))))
11967 (build-system emacs-build-system)
11970 #:test-command '("emacs" "--batch"
11971 "-l" "julia-mode-tests.el"
11972 "-f" "ert-run-tests-batch-and-exit")))
11973 (home-page "https://github.com/JuliaEditorSupport/julia-emacs")
11974 (synopsis "Major mode for Julia")
11975 (description "This Emacs package provides a mode for the Julia
11976 programming language.")
11977 (license license:expat)))
11979 (define-public emacs-julia-repl
11981 (name "emacs-julia-repl")
11985 (uri (git-reference
11986 (url "https://github.com/tpapp/julia-repl")
11988 (file-name (git-file-name name version))
11991 "11vpqqnxqj9nxh8kccj4y6h3f8lib6jxnsk6vxc2j2fqw6alnafm"))))
11992 (build-system emacs-build-system)
11993 (home-page "https://github.com/tpapp/julia-repl")
11994 (synopsis "Minor mode for interacting with a Julia REPL")
11995 (description "This package provides a minor mode for interacting with a
11996 Julia REPL running inside Emacs. The julia process is started in an ANSI
11997 terminal (term), which allows text formatting and colors, and interaction with
11998 the help system and the debugger. It is recommended that you use this minor
11999 mode with the package emacs-julia-mode.")
12000 (license license:expat)))
12002 (define-public emacs-julia-snail
12004 (name "emacs-julia-snail")
12008 (uri (git-reference
12009 (url "https://github.com/gcv/julia-snail")
12011 (file-name (git-file-name name version))
12014 "04nh37izz04lxkvkxhsig8khbrrgdl4p6pkjsv5bxymnp84zwlw7"))))
12015 (build-system emacs-build-system)
12017 (list #:include #~(cons "^JuliaSnail\\.jl" %default-include)))
12019 (list emacs-dash emacs-s emacs-spinner emacs-xref))
12022 emacs-julia-mode ;required by parser
12023 emacs-parsec ;required by parser
12025 (home-page "https://github.com/gcv/julia-snail")
12026 (synopsis "Development environment and REPL interaction package for Julia")
12027 (description "This package provides a development environment and REPL
12028 interaction package for Julia in the spirit of Common Lisp’s SLIME and
12029 Clojure’s CIDER. It enables convenient and dynamic REPL-driven development.")
12030 (license license:gpl3)))
12032 (define-public emacs-smex
12034 (name "emacs-smex")
12038 (uri (string-append "https://raw.githubusercontent.com"
12039 "/nonsequitur/smex/" version "/smex.el"))
12040 (file-name (string-append "smex-" version ".el"))
12043 "0ar310zx9k5y4i1vl2rawvi712xj9gx77160860jbs691p77cxqp"))))
12044 (build-system emacs-build-system)
12045 (home-page "https://github.com/nonsequitur/smex/")
12046 (synopsis "M-x interface with Ido-style fuzzy matching")
12048 "Smex is a M-x enhancement for Emacs. Built on top of Ido, it provides a
12049 convenient interface to your recently and most frequently used commands. And
12050 to all the other commands, too.")
12051 (license license:gpl3+)))
12053 (define-public emacs-js2-mode
12055 (name "emacs-js2-mode")
12056 (version "20220710")
12060 (uri (git-reference
12061 (url "https://github.com/mooz/js2-mode")
12063 (file-name (git-file-name name version))
12065 (base32 "0whvhmgpv6yxqiljd1l4a880i0dhp0z0jxqaad7jjvwij07vvla4"))))
12066 (build-system emacs-build-system)
12069 #:test-command '("make" "test")))
12070 (home-page "https://github.com/mooz/js2-mode/")
12071 (synopsis "Improved JavaScript editing mode for Emacs")
12073 "Js2-mode provides a JavaScript major mode for Emacs that is more
12074 advanced than the built-in javascript-mode. Features include accurate syntax
12075 highlighting using a recursive-descent parser, on-the-fly reporting of syntax
12076 errors and strict-mode warnings, smart line-wrapping within comments and
12077 strings, and code folding.")
12078 (license license:gpl3+)))
12080 (define-public emacs-js-comint
12082 (name "emacs-js-comint")
12087 (uri (string-append "https://stable.melpa.org/packages/"
12088 "js-comint-" version ".el"))
12090 (base32 "1qin0hclm3ly62nl5ddiim64bcd2k74b1yqsqqc61cf9k2q8k287"))))
12091 (build-system emacs-build-system)
12092 (home-page "https://github.com/redguardtoo/js-comint")
12093 (synopsis "Interacting with a JavaScript interpreter")
12095 "This program is a comint mode for Emacs which allows you to run a
12096 compatible JavaScript REPL, such as node, SpiderMonkey or Rhino.
12097 It also defines a few functions for sending JavaScript input to this REPL from
12099 (license license:gpl3+)))
12101 (define-public emacs-nodejs-repl
12103 (name "emacs-nodejs-repl")
12107 (uri (git-reference
12108 (url "https://github.com/abicky/nodejs-repl.el")
12110 (file-name (git-file-name name version))
12113 "0a5mmg3cmdi73giblp07ksl06xzl9nb2m3f96ny4r3rv0ar3v1bx"))))
12114 (build-system emacs-build-system)
12118 (list emacs-ert-expectations))
12121 (modify-phases %standard-phases
12122 (add-after 'unpack 'set-shell
12123 ;; Setting the SHELL environment variable is required for the tests
12126 (setenv "SHELL" (which "sh"))
12128 (add-after 'unpack 'configure
12129 (lambda* (#:key inputs outputs #:allow-other-keys)
12130 (let ((node (assoc-ref inputs "node")))
12131 ;; Specify the absolute file names of the various
12132 ;; programs so that everything works out-of-the-box.
12133 (make-file-writable "nodejs-repl.el")
12134 (emacs-substitute-variables
12136 ("nodejs-repl-command"
12137 (string-append node "/bin/node")))))))
12139 #:test-command '("emacs" "-Q" "--batch"
12141 "-l" "test/test.el"
12142 "-f" "ert-run-tests-batch-and-exit")))
12143 (home-page "https://github.com/abicky/nodejs-repl.el")
12144 (synopsis "Node.js REPL inside Emacs")
12146 "This program is derived from comint-mode and provides the following
12150 @item TAB completion same as Node.js REPL
12151 @item file name completion in string
12152 @item incremental history search
12154 (license license:gpl3+)))
12156 (define-public emacs-typescript-mode
12158 (name "emacs-typescript-mode")
12162 (uri (git-reference
12163 (url "https://github.com/ananthakumaran/typescript.el")
12164 (commit (string-append "v" version))))
12165 (file-name (git-file-name name version))
12168 "186bpvqxx87kp3857mq0mzn1ddsvzmpijix810k6bdz8522x7zdw"))))
12169 (build-system emacs-build-system)
12170 (home-page "https://github.com/ananthakumaran/typescript.el")
12171 (synopsis "Emacs major mode for editing Typescript code")
12173 "This is based on Karl Landstrom's barebones @code{typescript-mode}.
12174 This is much more robust and works with @code{cc-mode}'s comment
12175 filling (mostly). The modifications to the original @code{javascript.el} mode
12176 mainly consisted in replacing \"javascript\" with \"typescript\"
12178 The main features of this Typescript mode are syntactic highlighting (enabled
12179 with @code{font-lock-mode} or @code{global-font-lock-mode}), automatic
12180 indentation and filling of comments and C preprocessor fontification.")
12181 (license license:gpl3+)))
12183 (define-public emacs-tide
12185 (name "emacs-tide")
12189 (uri (git-reference
12190 (url "https://github.com/ananthakumaran/tide")
12191 (commit (string-append "v" version))))
12192 (file-name (git-file-name name version))
12195 "0zrapfxdarakp3kwp73c2ymjx51fsnfk6azi2y1wb2kgsdxl2yim"))))
12196 (build-system emacs-build-system)
12198 (list emacs-dash emacs-flycheck emacs-s emacs-typescript-mode))
12199 (home-page "https://github.com/ananthakumaran/tide")
12200 (synopsis "Typescript IDE for Emacs")
12202 "Tide is an Interactive Development Environment (IDE) for Emacs which
12203 provides the following features:
12207 @item Auto complete
12209 @item Jump to definition, Jump to type definition
12210 @item Find occurrences
12211 @item Rename symbol
12213 @item Compile On Save
12214 @item Highlight Identifiers
12216 @item Code Refactor
12217 @item Organize Imports
12219 (license license:gpl3+)))
12221 (define-public emacs-markdown-mode
12223 (name "emacs-markdown-mode")
12228 (uri (git-reference
12229 (url "https://github.com/jrblevin/markdown-mode")
12230 (commit (string-append "v" version))))
12231 (file-name (git-file-name name version))
12233 (base32 "02vw1zsbwa2hc3sxvbpvbldi5cf1xgd5b9l6fwg24d24j6b2af0j"))))
12234 (build-system emacs-build-system)
12235 (home-page "https://jblevins.org/projects/markdown-mode/")
12236 (synopsis "Emacs Major mode for Markdown files")
12238 "Markdown-mode is a major mode for editing Markdown-formatted text files
12240 (license license:gpl3+)))
12242 (define-public emacs-evil-markdown
12243 (let ((commit "685d7fbb81bc02fa32779d2a127b99a0c8c7436b")
12246 (name "emacs-evil-markdown")
12247 (version (git-version "0.0.2" revision commit))
12251 (uri (git-reference
12252 (url "https://github.com/Somelauw/evil-markdown")
12254 (file-name (git-file-name name version))
12256 (base32 "1z1sjn6dcqv8mmkh6nfcwhnql2z6xr9yx3hs77bfxj79pf3c466p"))))
12257 (build-system emacs-build-system)
12259 (list emacs-evil emacs-markdown-mode))
12260 (home-page "https://github.com/Somelauw/evil-markdown/")
12261 (synopsis "Evil keybindings for @code{markdown-mode}")
12263 "This package provides custom text objects and bindings for
12264 @code{markdown-mode}.")
12265 (license license:gpl3+))))
12267 (define-public emacs-edit-indirect
12269 (name "emacs-edit-indirect")
12274 (uri (git-reference
12275 (url "https://github.com/Fanael/edit-indirect")
12277 (file-name (git-file-name name version))
12279 (base32 "13v0fvzh3nv3bm4c3ld7pknw2g76cjkx81hsrmbrd1irlv4s4b00"))))
12280 (build-system emacs-build-system)
12281 (home-page "https://github.com/Fanael/edit-indirect")
12282 (synopsis "Edit regions in separate buffers")
12283 (description "This package allows you to edit regions in separate buffers,
12284 like @code{org-edit-src-code} but for arbitrary regions.")
12285 (license license:bsd-2)))
12287 (define-public emacs-projectile
12289 (name "emacs-projectile")
12294 (uri (git-reference
12295 (url "https://github.com/bbatsov/projectile")
12296 (commit (string-append "v" version))))
12297 (file-name (git-file-name name version))
12300 "0ybd41iss8vd56qv6czpxqq7a99s4h7i3a2r4khy4rf5blj5zdqi"))))
12301 (build-system emacs-build-system)
12305 #:test-command #~(list "buttercup" "-L" ".")
12307 #~(modify-phases %standard-phases
12308 (add-before 'check 'fix-failing-test
12310 (substitute* "test/projectile-test.el"
12311 (("user-emacs-directory") "\".\"")))))))
12313 (list emacs-buttercup))
12315 (list emacs-dash emacs-pkg-info))
12316 (home-page "https://github.com/bbatsov/projectile")
12317 (synopsis "Manage and navigate projects in Emacs easily")
12319 "This library provides easy project management and navigation. The
12320 concept of a project is pretty basic: just a folder containing special file.
12321 Currently Git, Mercurial and Bazaar repositories are considered projects by
12322 default. If you want to mark a folder manually as a project just create an
12323 empty @file{.projectile} file in it.")
12324 (license license:gpl3+)))
12326 (define-public emacs-skeletor
12327 (let ((commit "47c5b761aee8452716c97a69949ac2f675affe13")
12330 (name "emacs-skeletor")
12331 (version (git-version "1.6.1" revision commit))
12334 (uri (git-reference
12335 (url "https://github.com/chrisbarrett/skeletor.el")
12337 (file-name (git-file-name name version))
12340 "12bdgykfh4mwsqdazxjdvha62h3q3v33159ypy91f6x59y01fi0n"))))
12341 (build-system emacs-build-system)
12343 (list emacs-s emacs-f emacs-dash emacs-let-alist))
12345 (list emacs-ert-runner))
12347 `(#:include (cons "^project-skeletons\\/" %default-include)
12348 ;; XXX: one failing test involving initializing a git repo
12350 (modify-phases %standard-phases
12351 (add-before 'check 'make-test-writable
12353 (make-file-writable "test/skeletor-test.el")
12355 (add-before 'check 'remove-git-test
12357 (emacs-batch-edit-file "test/skeletor-test.el"
12360 (goto-char (point-min))
12362 "ert-deftest initialises-git-repo")
12363 (beginning-of-line)
12365 (basic-save-buffer)))
12368 #:test-command '("ert-runner")))
12369 (home-page "https://github.com/chrisbarrett/skeletor.el")
12370 (synopsis "Project skeletons for Emacs")
12371 (description "This package provides project templates and automates the
12372 mundane parts of setting up a new project, such as version control, licenses,
12374 (license license:gpl3+))))
12376 (define-public emacs-elfeed
12378 (name "emacs-elfeed")
12383 (uri (git-reference
12384 (url "https://github.com/skeeto/elfeed")
12386 (file-name (git-file-name name version))
12388 (base32 "1ghdvfn4f9y69r59i1ga9b3ib1r8sbqg6q1v5rz3f9paagfavrd1"))))
12389 (build-system emacs-build-system)
12392 #:test-command '("make" "test")))
12393 (home-page "https://github.com/skeeto/elfeed")
12394 (synopsis "Atom/RSS feed reader for Emacs")
12396 "Elfeed is an extensible web feed reader for Emacs, supporting both Atom
12397 and RSS, with a user interface inspired by notmuch.")
12398 (license license:gpl3+)))
12400 (define-public emacs-elfeed-org
12401 (let ((commit "77b6bbf222487809813de260447d31c4c59902c9"))
12403 (name "emacs-elfeed-org")
12404 (version (git-version "0.1" "1" commit))
12408 (uri (git-reference
12409 (url "https://github.com/remyhonig/elfeed-org")
12411 (file-name (git-file-name name version))
12413 (base32 "0a2ibka82xq1dhy2z7rd2y9zhcj8rna8357881yz49wf55ccgm53"))))
12414 (build-system emacs-build-system)
12417 #:test-command '("ert-runner" "-L" "org-mode/lisp")
12419 (modify-phases %standard-phases
12420 (add-before 'check 'chmod
12422 (chmod "test/fixture-mark-feed-ignore.org" #o644))))))
12424 (list emacs-elfeed emacs-org emacs-dash emacs-s))
12426 (list emacs-ert-runner emacs-xtest))
12427 (home-page "https://github.com/remyhonig/elfeed-org")
12428 (synopsis "Configure Elfeed with an Org-mode file")
12430 "@code{elfeed-org} lets you manage your Elfeed subscriptions
12431 in Org-mode. Maintaining tags for all RSS feeds is cumbersome using
12432 the regular flat list, where there is no hierarchy and tag names are
12433 duplicated a lot. Org-mode makes the book keeping of tags and feeds
12435 (license license:gpl3+))))
12437 (define-public emacs-elfeed-protocol
12439 (name "emacs-elfeed-protocol")
12444 (uri (git-reference
12445 (url "https://github.com/fasheng/elfeed-protocol")
12447 (file-name (git-file-name name version))
12449 (base32 "0k9rkghp9rg7aidmx7q0n4wpb9z5cwr7j8z167yzaqgf9s3y4jj2"))))
12450 (build-system emacs-build-system)
12452 (list emacs-elfeed))
12453 (home-page "https://github.com/fasheng/elfeed-protocol")
12454 (synopsis "Fever/NewsBlur/ownCloud/tt-RSS protocols for Elfeed")
12456 "Elfeed-protocol provides extra protocols to make self-hosting RSS
12457 readers like Fever, NewsBlur, ownCloud News and Tiny TIny RSS work
12459 (license license:gpl3+)))
12461 (define-public emacs-elfeed-score
12463 (name "emacs-elfeed-score")
12468 (uri (git-reference
12469 (url "https://github.com/sp1ff/elfeed-score")
12471 (file-name (git-file-name name version))
12473 (base32 "0d1yh4wv81n5mnrzdi88z0vbs94m7j3q20r5fc1wk35r4hrl3xqw"))))
12474 (build-system emacs-build-system)
12476 (list emacs-elfeed))
12477 (home-page "https://github.com/sp1ff/elfeed-score")
12478 (synopsis "Gnus-style scoring for Elfeed")
12480 "Elfeed-score is an add-on for Elfeed, an RSS reader for Emacs. It
12481 brings Gnus-style scoring to your RSS feeds. Elfeed, by default, displays
12482 feed entries by date. This package allows you to setup rules for assigning
12483 numeric scores to entries, and sorting entries with higher scores ahead of
12484 those with lower, regardless of date. The idea is to prioritize content
12485 important to you.")
12486 (license license:gpl3+)))
12488 (define-public emacs-el-x
12490 (name "emacs-el-x")
12494 (uri (git-reference
12495 (url "https://github.com/sigma/el-x")
12496 (commit (string-append "v" version))))
12497 (file-name (git-file-name name version))
12500 "1i6j44ssxm1xdg0mf91nh1lnprwsaxsx8vsrf720nan7mfr283h5"))))
12501 (build-system emacs-build-system)
12504 (modify-phases %standard-phases
12505 ;; Move the source files to the top level, which is included in
12506 ;; the EMACSLOADPATH.
12507 (add-after 'unpack 'move-source-files
12509 (let ((el-files (find-files "./lisp" ".*\\.el$")))
12510 (for-each (lambda (f)
12511 (rename-file f (basename f)))
12514 (home-page "https://github.com/sigma/el-x")
12515 (synopsis "Emacs Lisp extensions")
12516 (description "command@{emacs-el-x} defines the @code{dflet} macro to
12517 provide the historic behavior of @code{flet}, as well as
12518 @code{declare-function} stub for older Emacs.")
12519 (license license:gpl2+)))
12521 (define-public emacs-epithet
12523 (let ((commit "cc42338376c2c58da561214c554be8e8856f6a2b"))
12525 (name "emacs-epithet")
12529 (uri (git-reference
12530 (url "https://github.com/oantolin/epithet")
12532 (file-name (git-file-name name version))
12535 "06irgshgcgmm09nswrny8mam6l660ai71rgn0l3rmyp9li8n97j0"))))
12536 (build-system emacs-build-system)
12537 (home-page "https://github.com/oantolin/epithet")
12538 (synopsis "Rename Emacs buffers with descriptive names")
12540 "This package provides a function---@code{epithet-rename-buffer}---to rename
12541 the current buffer with a descriptive name. The name suggestion is governed by
12542 the @code{epithet-suggesters} hook variable: each hook should return either a
12543 name suggestion or @code{nil}, they are called in turn and the first non-nil
12544 suggestion is taken.")
12545 (license license:gpl3+))))
12547 (define-public emacs-eterm-256color
12549 (name "emacs-eterm-256color")
12553 (uri (git-reference
12554 (url "https://github.com/dieggsy/eterm-256color")
12556 (file-name (git-file-name name version))
12559 "0ysxblc90kjcz84siprnyxwh94scflivqbxylzkvjm7hbx93rsh1"))))
12560 (build-system emacs-build-system)
12562 (list emacs-f emacs-xterm-color))
12563 (home-page "https://github.com/dieggsy/eterm-256color")
12565 "Customizable 256 colors for Emacs @code{term} and @code{ansi-term}")
12566 (description "This package uses @code{emacs-xterm-color} to add
12567 customizable 256 color support to @code{term} and @code{ansi-term}.")
12568 (license license:gpl3+)))
12570 (define-public emacs-mocker
12572 (name "emacs-mocker")
12577 (uri (git-reference
12578 (url "https://github.com/sigma/mocker.el")
12579 (commit (string-append "v" version))))
12580 (file-name (git-file-name name version))
12582 (base32 "1dc514cqbfmg33sb3j90s5jmw6jnm3wzvs0zhw3maz13bp7w6z48"))))
12583 (build-system emacs-build-system)
12586 #:test-command '("ert-runner")))
12588 (list emacs-ert-runner))
12591 (home-page "https://github.com/sigma/mocker.el")
12592 (synopsis "Mocking framework for Emacs Lisp")
12593 (description "Mocker.el is a framework for writing tests in Emacs Lisp.
12594 It uses regular Lisp rather than a domain specific language (DSL), which
12595 maximizes flexibility (at the expense of conciseness).")
12596 (license license:gpl2+)))
12598 (define-public emacs-find-file-in-project
12600 (name "emacs-find-file-in-project")
12605 (uri (git-reference
12606 (url "https://github.com/technomancy/find-file-in-project")
12608 (file-name (git-file-name name version))
12610 (base32 "0sq8fyq19jw1hm0m6hiqnvzzvx0c3xigfx7x6i40ib5hnfjlqs0a"))))
12611 (build-system emacs-build-system)
12614 #:test-command '("ert-runner" "tests")))
12616 (list emacs-ert-runner))
12617 (home-page "https://github.com/technomancy/find-file-in-project")
12618 (synopsis "File/directory finder for Emacs")
12619 (description "@code{find-file-in-project} finds files or
12620 directories quickly in the current project. The project root is detected
12621 automatically when Git, Subversion or Mercurial are used. It also provides
12622 functions to assist in reviewing changes on files.")
12623 (license license:gpl3+)))
12625 (define-public emacs-pyvenv
12627 (name "emacs-pyvenv")
12632 (uri (git-reference
12633 (url "https://github.com/jorgenschaefer/pyvenv")
12634 (commit (string-append "v" version))))
12635 (file-name (git-file-name name version))
12637 (base32 "055sgk8zf4wb5nqsf3qasf5gg861zlb1831733f1qcrd2ij5gzxx"))))
12638 (build-system emacs-build-system)
12641 (modify-phases %standard-phases
12642 ;; This phase incorrectly attempts to substitute "activate" and fails
12644 (delete 'patch-el-files))
12646 #:test-command '("ert-runner")))
12648 (list emacs-ert-runner emacs-mocker))
12649 (home-page "https://github.com/jorgenschaefer/pyvenv")
12650 (synopsis "Python virtual environment interface for Emacs")
12651 (description "pyvenv.el is a minor mode to support using Python virtual
12652 environments (virtualenv) inside Emacs.")
12653 (license license:gpl3+)))
12655 (define-public emacs-highlight-indent-guides
12656 (let ((version "0.8.5") ; from package metadata
12658 (commit "c2c9de4d01edfb89609c91d4d7f1d81312015a2c"))
12660 (name "emacs-highlight-indent-guides")
12661 (version (git-version version revision commit))
12665 (uri (git-reference
12666 (url "https://github.com/DarthFennec/highlight-indent-guides")
12668 (file-name (git-file-name name version))
12670 (base32 "10chvqnmdmkx6i9sigqframr85ziyafiz44glwhvhjajfkv42ad2"))))
12671 (build-system emacs-build-system)
12673 "https://github.com/DarthFennec/highlight-indent-guides")
12674 (synopsis "Minor mode to highlight indentation")
12676 "This package provides a minor mode to highlight indentation levels via
12677 font-lock. Indent widths are dynamically discovered, which means this
12678 correctly highlights in any mode, regardless of indent width, even in
12679 languages with non-uniform indentation such as Haskell. This mode works
12680 properly around hard tabs and mixed indentation and behaves well in large
12682 (license license:expat))))
12684 (define-public emacs-highlight-indentation
12685 ;; Last release version is from 2015.
12686 (let ((commit "d03803f2c06749c430443a3d24e039cbafc9c58f")
12689 (name "emacs-highlight-indentation")
12690 (version (git-version "0.7.0" revision commit))
12694 (uri (git-reference
12695 (url "https://github.com/antonj/Highlight-Indentation-for-Emacs")
12697 (file-name (git-file-name name version))
12700 "1jq0gf4kcx9hvrw40rnw5c2qynjpjw1vsjbi2i4lqjbsnfnxn4wz"))))
12701 (build-system emacs-build-system)
12702 (home-page "https://github.com/antonj/Highlight-Indentation-for-Emacs/")
12703 (synopsis "Highlighting indentation for Emacs")
12704 (description "This package provides two minor modes to highlight
12705 indentation guides in Emacs:
12708 @item @code{highlight-indentation-mode}, which displays guidelines
12709 indentation (space indentation only).
12710 @item @code{highlight-indentation-current-column-mode}, which displays
12711 guidelines for the current-point indentation (space indentation only).
12713 (license license:gpl2+))))
12715 (define-public emacs-elpy
12716 ;; Using the latest commit fixes outstanding bugs such as the following:
12717 ;; https://github.com/jorgenschaefer/elpy/issues/1824
12718 ;; https://github.com/jorgenschaefer/elpy/pull/1951
12719 ;; https://github.com/jorgenschaefer/elpy/issues/1940.
12720 (let ((commit "1746e7009000b7635c0ea6f1559018143aa61642")
12723 (name "emacs-elpy")
12724 (version (git-version "1.35.0" revision commit))
12727 (uri (git-reference
12728 (url "https://github.com/jorgenschaefer/elpy")
12730 (file-name (git-file-name name version))
12733 "120xzzaa8jxls3lri6d53zq6gafnkc6d9mlg09an334kkmh8k2fc"))))
12734 (build-system emacs-build-system)
12736 `(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include)
12738 (modify-phases %standard-phases
12739 (add-after 'unpack 'disable-broken-tests
12740 ;; Some tests are known to have problems with Python 3.9; disable
12742 ;; https://github.com/jorgenschaefer/elpy/issues/1856).
12743 ;; Aggressively remove the modules where failing tests were
12744 ;; discovered, as they are similar and fail in a nondeterministic
12747 (with-directory-excursion "test"
12748 (for-each delete-file
12749 (append (find-files "." "elpy-refactor")
12750 (find-files "." "elpy-multiedit")
12751 (find-files "." "elpy-pdb")
12752 (find-files "." "elpy-promise")))
12753 ;; These test fail since upgrading Emacs from version 27 to
12755 ;; https://github.com/jorgenschaefer/elpy/issues/1982).
12756 (delete-file "elpy-project-find-git-root-test.el")
12757 (substitute* "elpy-company-backend-test.el"
12758 (("elpy-company-backend-should-add-shell-candidates.*" all)
12759 (string-append all " :expected-result :failed\n")))
12760 (substitute* "elpy-eldoc-documentation-test.el"
12761 (("elpy-eldoc-documentation-should-show-object-onelinedoc.*" all)
12762 (string-append all " :expected-result :failed\n")))
12763 (substitute* "elpy-shell-send-file-test.el"
12764 (("elpy-shell-send-file-should-accept-large-strings.*" all)
12765 (string-append all " :expected-result :failed\n")))
12766 (substitute* "elpy-shell-echo-inputs-and-outputs-test.el"
12767 (("elpy-shell-should-echo-outputs.*" all)
12768 (string-append all " :expected-result :failed\n"))))))
12769 ;; The default environment of the RPC uses Virtualenv to install
12770 ;; Python dependencies from PyPI. We don't want/need this in Guix.
12771 (add-before 'check 'do-not-use-virtualenv
12773 (setenv "ELPY_TEST_DONT_USE_VIRTUALENV" "1")
12774 (substitute* "elpy-rpc.el"
12775 (("defcustom elpy-rpc-virtualenv-path 'default")
12776 "defcustom elpy-rpc-virtualenv-path 'system"))))
12777 (add-before 'check 'build-doc
12779 (with-directory-excursion "docs"
12780 (invoke "make" "info" "man"))
12781 ;; Move .info file at the root so that it can installed by the
12782 ;; 'move-doc phase.
12783 (rename-file "docs/_build/texinfo/Elpy.info" "Elpy.info")))
12784 (add-after 'build-doc 'install-manpage
12785 (lambda* (#:key outputs #:allow-other-keys)
12786 (let* ((out (assoc-ref outputs "out"))
12787 (man1 (string-append out "/share/man/man1")))
12789 (copy-file "docs/_build/man/elpy.1"
12790 (string-append man1 "/elpy.1"))))))
12792 #:test-command '("ert-runner")))
12794 (list emacs-company
12795 emacs-find-file-in-project
12796 emacs-highlight-indentation
12800 ;; The following are recommended Python dependencies that make
12801 ;; Elpy much more useful. Installing these avoids Elpy prompting
12802 ;; to install them from PyPI using pip.
12809 (list emacs-ert-runner
12812 ;; For documentation.
12815 (home-page "https://github.com/jorgenschaefer/elpy")
12816 (synopsis "Python development environment for Emacs")
12817 (description "Elpy brings powerful Python editing to Emacs. It combines
12818 and configures a number of other packages written in Emacs Lisp as well as
12819 Python, together offering features such as navigation, documentation,
12820 completion, interactive development and more.")
12821 (license license:gpl3+))))
12823 (define-public emacs-rainbow-delimiters
12825 (name "emacs-rainbow-delimiters")
12829 (uri (git-reference
12830 (url "https://github.com/Fanael/rainbow-delimiters")
12832 (file-name (git-file-name name version))
12835 "179mzsd8nvlr0ym9zf9fgdngsgxj3kdgbjblynliirsyk05ssrwc"))))
12836 (build-system emacs-build-system)
12837 (home-page "https://github.com/Fanael/rainbow-delimiters")
12840 #:test-command '("emacs" "-Q" "-batch"
12841 "-l" "rainbow-delimiters-test.el"
12842 "-f" "ert-run-tests-batch-and-exit")))
12843 (synopsis "Highlight brackets according to their depth")
12845 "Rainbow-delimiters is a \"rainbow parentheses\"-like mode for Emacs which
12846 highlights parentheses, brackets, and braces according to their depth. Each
12847 successive level is highlighted in a different color, making it easy to spot
12848 matching delimiters, orient yourself in the code, and tell which statements
12849 are at a given level.")
12850 (license license:gpl3+)))
12852 (define-public emacs-rainbow-identifiers
12854 (name "emacs-rainbow-identifiers")
12858 (uri (string-append "https://raw.githubusercontent.com/Fanael"
12859 "/rainbow-identifiers/" version
12860 "/rainbow-identifiers.el"))
12861 (file-name (string-append "rainbow-identifiers-" version ".el"))
12864 "0325abxj47k0g1i8nqrq70w2wr6060ckhhf92krv1s072b3jzm31"))))
12865 (build-system emacs-build-system)
12866 (home-page "https://github.com/Fanael/rainbow-identifiers")
12867 (synopsis "Highlight identifiers in source code")
12869 "Rainbow identifiers mode is an Emacs minor mode providing highlighting of
12870 identifiers based on their names. Each identifier gets a color based on a hash
12872 (license license:bsd-2)))
12874 (define-public emacs-rainbow-mode
12876 (name "emacs-rainbow-mode")
12881 (uri (string-append "https://elpa.gnu.org/packages/"
12882 "rainbow-mode-" version ".tar"))
12884 (base32 "04v73cm1cap19vwc8lqsw0rmfr9v7r3swc4wgxnk9dnzxi9j2527"))))
12885 (build-system emacs-build-system)
12886 (home-page "https://elpa.gnu.org/packages/rainbow-mode.html")
12887 (synopsis "Colorize color names in buffers")
12889 "This minor mode sets background color to strings that match color
12890 names, e.g., @samp{#0000ff} is displayed in white with a blue background.")
12891 (license license:gpl3+)))
12893 (define-public emacs-ryo-modal
12894 ;; Package has no release. Version is extracted from "Version:" keyword in
12896 (let ((commit "a10f564474cc8fa28a74b04e3b15375315223c44")
12899 (name "emacs-ryo-modal")
12900 (version (git-version "0.45" revision commit))
12904 (uri (git-reference
12905 (url "https://github.com/Kungsgeten/ryo-modal")
12907 (file-name (git-file-name name version))
12909 (base32 "0ypm1rnyry6hb4znb8sgwfi0la6q46ihm8k99kisk0mkgz7im93d"))))
12910 (build-system emacs-build-system)
12911 (home-page "https://github.com/Kungsgeten/ryo-modal")
12912 (synopsis "Emacs minor mode for defining modal editing environments")
12913 (description "RYO modal provides a convenient way of defining modal
12914 keybindings in Emacs, and does not come with any predefined bindings.")
12915 (license license:expat))))
12917 (define-public emacs-valign
12919 (name "emacs-valign")
12924 (uri (git-reference
12925 (url "https://github.com/casouri/valign")
12926 (commit (string-append "v" version))))
12927 (file-name (git-file-name name version))
12929 (base32 "11ks6z532i7vxi6f9g32zhimvikhsqywa2bd5fnnj2ahfx3msa95"))))
12930 (build-system emacs-build-system)
12931 (home-page "https://github.com/casouri/valign")
12932 (synopsis "Pixel-perfect visual alignment for Org and Markdown tables")
12934 "Valign provides visual alignment for Org mode, Markdown and Table.el
12935 tables on GUI Emacs. It can properly align tables containing variable-pitch
12936 font, CJK characters and images. Meanwhile, the text-based alignment
12937 generated by Org mode (or Markdown mode) is left untouched.")
12938 (license license:gpl3+)))
12940 (define-public emacs-visual-fill-column
12942 (name "emacs-visual-fill-column")
12947 (uri (git-reference
12948 (url "https://codeberg.org/joostkremers/visual-fill-column")
12950 (file-name (git-file-name name version))
12952 (base32 "168wiywaffhhn7j4nfbnq4lfxpxl0x17z9ckk3nwkpaz45d9a2q6"))))
12953 (build-system emacs-build-system)
12954 (home-page "https://codeberg.org/joostkremers/visual-fill-column")
12955 (synopsis "Fill-column for visual-line-mode")
12957 "@code{visual-fill-column-mode} is a small Emacs minor mode that mimics
12958 the effect of @code{fill-column} in @code{visual-line-mode}. Instead of
12959 wrapping lines at the window edge, which is the standard behaviour of
12960 @code{visual-line-mode}, it wraps lines at @code{fill-column}. If
12961 @code{fill-column} is too large for the window, the text is wrapped at the
12963 (license license:gpl3+)))
12965 (define-public emacs-writeroom
12967 (name "emacs-writeroom")
12972 (uri (git-reference
12973 (url "https://github.com/joostkremers/writeroom-mode")
12975 (file-name (git-file-name name version))
12978 "0y4jcja9kml1lq88r8b9myk39dgaggh7q7f3a43sj828hvzlccb7"))))
12979 (build-system emacs-build-system)
12981 (list emacs-visual-fill-column))
12982 (home-page "https://github.com/joostkremers/writeroom-mode")
12983 (synopsis "Distraction-free writing for Emacs")
12985 "This package defines a minor mode for distraction-free writing. Some of
12986 the default effects include entering fullscreen, deleting other windows of the
12987 current frame, disabling the mode line, and adding margins to the buffer that
12988 restrict the text width to 80 characters.")
12989 (license license:bsd-3)))
12991 (define-public emacs-wucuo
12993 (name "emacs-wucuo")
12998 (uri (git-reference
12999 (url "https://github.com/redguardtoo/wucuo")
13000 (commit "89b99166768afb811c48a7db7c93c02d51a32b09")))
13001 (file-name (git-file-name name version))
13003 (base32 "03a6jlbv9axrd9yr0xscq3ni7fipm20ppc51kxy0sn241rplv0pg"))))
13004 (build-system emacs-build-system)
13007 #:test-command '("make" "test")
13008 #:phases (modify-phases %standard-phases
13009 ;; Set HOME, otherwise tests fail on loading aspell dict.
13010 (add-before 'check 'set-home
13011 (lambda _ (setenv "HOME" (getcwd)))))))
13014 (list aspell aspell-dict-en))
13015 (home-page "https://github.com/redguardtoo/wucuo")
13016 (synopsis "Fast spell checker for camel case code or plain text")
13018 "Wucuo provides a spell checker on top of either Aspell or Hunspell, and
13019 relies on Flyspell internally. It operates on the current region or buffer,
13020 a file, or a complete directory.")
13021 (license license:gpl3+)))
13023 (define-public emacs-ido-completing-read+
13025 (name "emacs-ido-completing-read+")
13029 (uri (string-append "https://raw.githubusercontent.com"
13030 "/DarwinAwardWinner/ido-ubiquitous/v"
13031 version "/ido-completing-read+.el"))
13032 (file-name (string-append "ido-completing-read+-" version ".el"))
13035 "1wn94nkfv6qyyj6clvms7m7ncqf09bgszv67may530y75kylivav"))))
13036 (build-system emacs-build-system)
13039 #~(modify-phases %standard-phases
13040 (add-after 'unpack 'disable-native-comp
13042 ;; Native compilation of this package may crash your system,
13043 ;; see <https://bugs.gnu.org/57878>.
13046 (make-file-writable file)
13047 (emacs-batch-disable-compilation file #:native? #t))
13048 (find-files "." "\\.el$")))))))
13051 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
13052 (synopsis "Replacement for completing-read using ido")
13054 "The ido-completing-read+ function is a wrapper for ido-completing-read.
13055 Importantly, it detects edge cases that ordinary ido cannot handle and either
13056 adjusts them so ido can handle them, or else simply falls back to the standard
13057 Emacs completion function instead.")
13058 (license license:gpl3+)))
13060 (define-public emacs-ido-ubiquitous
13062 (name "emacs-ido-ubiquitous")
13066 (uri (string-append "https://raw.githubusercontent.com"
13067 "/DarwinAwardWinner/ido-ubiquitous/v"
13068 version "/ido-ubiquitous.el"))
13069 (file-name (string-append "ido-ubiquitous-" version ".el"))
13072 "08iwvqknicqlffda7ixwgzw7q9g2g4j4nsxdw6544r85vaysi4cc"))))
13073 (build-system emacs-build-system)
13075 (list emacs-ido-completing-read+))
13076 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
13077 (synopsis "Use ido (nearly) everywhere")
13079 "Ido-ubiquitous enables ido-style completion for almost every function
13080 that uses the standard completion function completing-read.")
13081 (license license:gpl3+)))
13083 (define-public emacs-yaml
13085 (name "emacs-yaml")
13090 (uri (git-reference
13091 (url "https://github.com/zkry/yaml.el")
13092 (commit (string-append "v" version))))
13093 (file-name (git-file-name name version))
13095 (base32 "0n0cf5y862ajyf2q0pnvbkhg57ggsri33x8y4q99s0a17ksk4qrm"))))
13096 (build-system emacs-build-system)
13097 (home-page "https://github.com/zkry/yaml.el")
13098 (synopsis "YAML parser in Elisp")
13100 "@code{yaml.el} is a YAML parser written in Emacs Lisp without any
13101 external dependencies. It provides an interface similar to the Emacs JSON
13103 (license license:gpl3+)))
13105 (define-public emacs-yaml-mode
13107 (name "emacs-yaml-mode")
13112 (uri (git-reference
13113 (url "https://github.com/yoshiki/yaml-mode")
13115 (file-name (git-file-name name version))
13117 (base32 "0gsa153yp8lmwrvcc3nzpw5lj037y7q2nm23k5k404r5as4k355l"))))
13118 (build-system emacs-build-system)
13119 (home-page "https://github.com/yoshiki/yaml-mode")
13120 (synopsis "Major mode for editing YAML files")
13122 "Yaml mode is an Emacs major mode for editing files in the YAML data
13123 serialization format. As YAML and Python share the fact that indentation
13124 determines structure, this mode provides indentation and indentation command
13125 behavior very similar to that of Python mode.")
13126 (license license:gpl3+)))
13128 (define-public emacs-gitlab-ci-mode
13130 (name "emacs-gitlab-ci-mode")
13131 (version "20190824.12.2")
13134 (uri (git-reference
13135 (url "https://gitlab.com/joewreschnig/gitlab-ci-mode")
13136 (commit (string-append "v" version))))
13137 (file-name (git-file-name name version))
13140 "16fb4r3vq8xkzl911v7gaky95w1agfxjlpaxpjmidwx48rbcar59"))))
13141 (build-system emacs-build-system)
13143 (list emacs-yaml-mode))
13144 (home-page "https://gitlab.com/joewreschnig/gitlab-ci-mode/")
13145 (synopsis "Emacs mode for editing GitLab CI files")
13147 "@code{gitlab-ci-mode} is an Emacs major mode for editing GitLab CI
13148 files. It provides syntax highlighting and completion for keywords and
13149 special variables. An interface to GitLab’s CI file linter is also provided
13150 via @code{gitlab-ci-lint}.")
13151 (license license:gpl3+)))
13153 (define-public emacs-gitlab-snip-helm
13155 (name "emacs-gitlab-snip-helm")
13159 (uri (git-reference
13160 (url "https://gitlab.com/sasanidas/gitlab-snip-helm.git")
13162 (file-name (git-file-name name version))
13165 "1c5js19zyb1z61hapvbfcl5jhrjqij46cxldgqij6al0scw44dga"))))
13166 (build-system emacs-build-system)
13168 (list emacs-dash emacs-helm))
13169 (home-page "https://gitlab.com/sasanidas/gitlab-snip-helm/")
13170 (synopsis "GitLab snippet API interaction for Emacs")
13171 (description "This package provides GitLab snippet API interaction for
13173 (license license:gpl3+)))
13175 (define-public emacs-web-mode
13177 (name "emacs-web-mode")
13182 (uri (git-reference
13183 (url "https://github.com/fxbois/web-mode")
13184 (commit (string-append "v" version))))
13185 (file-name (git-file-name name version))
13187 (base32 "0sd2ysysn8x4iwz2fhnvh8knr3pdqgkvhkhsl948smmfl0dwj42f"))))
13188 (build-system emacs-build-system)
13189 (synopsis "Major mode for editing web templates")
13190 (description "Web mode is an Emacs major mode for editing web templates
13191 aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by
13192 client/server side engines). Web mode is compatible with many template
13193 engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker,
13194 Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template,
13195 Dust.js, React/JSX, Angularjs, ejs, etc.")
13196 (home-page "https://web-mode.org/")
13197 (license license:gpl3+)))
13199 (define-public emacs-templatel
13201 (name "emacs-templatel")
13206 (uri (git-reference
13207 (url "https://github.com/clarete/templatel")
13209 (file-name (git-file-name name version))
13211 (base32 "03n7amd2mfr4jmc4s1ar5ckm86knr7qarxxlkdhbnw3svy5kbc57"))))
13212 (build-system emacs-build-system)
13213 (home-page "https://clarete.li/templatel")
13214 (synopsis "Jinja inspired template language for Emacs Lisp")
13216 "templatel is the modern templating language. It provides variable
13217 substitution and control flow through a clean and powerful language inspired
13218 by Python's Jinja.")
13219 (license license:gpl3+)))
13221 (define-public emacs-wgrep
13223 (name "emacs-wgrep")
13227 (uri (git-reference
13228 (url "https://github.com/mhayashi1120/Emacs-wgrep")
13230 (file-name (git-file-name name version))
13233 "00cwqzb94jlq4mwgv8z7r3mn0a6mhq95z6j189kacq9g4473zh8d"))))
13234 (build-system emacs-build-system)
13235 (home-page "https://github.com/mhayashi1120/Emacs-wgrep")
13236 (synopsis "Edit a grep buffer and apply those changes to the files")
13238 "Emacs wgrep allows you to edit a grep buffer and apply those changes
13239 to the file buffer. Several backends are supported beside the classic grep:
13240 ack, ag, helm and pt.")
13241 (license license:gpl3+)))
13243 (define-public emacs-helm
13245 (name "emacs-helm")
13250 (uri (git-reference
13251 (url "https://github.com/emacs-helm/helm")
13252 (commit (string-append "v" version))))
13253 (file-name (git-file-name name version))
13255 (base32 "1i253ani2bl665biha0f071pncr2jh7x5yxp8rg2013sdf4nr74c"))))
13256 (build-system emacs-build-system)
13258 (list emacs-async emacs-popup))
13259 (home-page "https://emacs-helm.github.io/helm/")
13261 "Incremental completion and selection narrowing framework for Emacs")
13263 "Helm is an incremental completion and selection narrowing framework for
13264 Emacs. It will help steer you in the right direction when you're looking for
13265 stuff in Emacs (like buffers, files, etc).")
13266 (license license:gpl3+)))
13268 (define-public emacs-helm-org
13269 (let ((commit "8457e1e46227bf87726e05c42cec5a4b51c2ef7b")
13272 (name "emacs-helm-org")
13273 (version (git-version "1.0" revision commit))
13277 (uri (git-reference
13278 (url "https://github.com/emacs-helm/helm-org")
13280 (file-name (git-file-name name version))
13282 (base32 "0kcjhwwi492n9m2w894hvdavfvhj45zygy7bwvx103wvpay5h6h6"))))
13283 (build-system emacs-build-system)
13286 (home-page "https://github.com/emacs-helm/helm-org")
13287 (synopsis "Helm interface to the Silver Searcher")
13289 "This package provides a frontend for grepping tools like ag and ack,
13290 as well as features for editing search results.")
13291 (license license:gpl3+))))
13293 (define-public emacs-helm-swoop
13295 (name "emacs-helm-swoop")
13300 (uri (git-reference
13301 (url "https://github.com/emacsorphanage/helm-swoop")
13303 (file-name (git-file-name name version))
13305 (base32 "1qjay0fvryxa8n1ws6r1by512p2fylb2nj7ycm1497fcalb0d706"))))
13306 (build-system emacs-build-system)
13309 (home-page "https://github.com/emacsorphanage/helm-swoop")
13310 (synopsis "Filter and jump to lines in an Emacs buffer using Helm")
13312 "This package builds on the Helm interface to provide several commands
13313 for search-based navigation of buffers.")
13314 (license license:gpl2+)))
13316 (define-public emacs-helm-ag
13318 (name "emacs-helm-ag")
13323 (uri (git-reference
13324 (url "https://github.com/syohex/emacs-helm-ag")
13326 (file-name (git-file-name name version))
13328 (base32 "0ml9yp3qaiwn7iixyxvsj3fxn7gw913qxisr47df57q4ka912law"))))
13329 (build-system emacs-build-system)
13332 (home-page "https://github.com/syohex/emacs-helm-ag")
13333 (synopsis "Helm interface to the Silver Searcher")
13335 "This package provides a frontend for grepping tools like ag and ack,
13336 as well as features for editing search results.")
13337 (license license:gpl3+)))
13339 (define-public emacs-helm-projectile
13341 (name "emacs-helm-projectile")
13346 (uri (git-reference
13347 (url "https://github.com/bbatsov/helm-projectile")
13348 (commit (string-append "v" version))))
13349 (file-name (git-file-name name version))
13351 (base32 "05gpg90gg03yalmv9fw1y9k21i2l617iipvs0p9n80aln8nrzs8g"))))
13352 (build-system emacs-build-system)
13354 (list emacs-helm emacs-projectile))
13355 (home-page "https://github.com/bbatsov/helm-projectile")
13356 (synopsis "Helm integration for Projectile")
13358 "This Emacs library provides a Helm interface for Projectile.")
13359 (license license:gpl3+)))
13361 (define-public emacs-taskrunner
13362 (let ((commit "3afd4a546d42339543d3d4e51b175fc3e82b3358")
13365 (name "emacs-taskrunner")
13366 (version (git-version "0.6" revision commit))
13370 (uri (git-reference
13371 (url "https://github.com/emacs-taskrunner/emacs-taskrunner")
13373 (file-name (git-file-name name version))
13376 "1lkdvmjn3alhqxq2i64sdr977sbw3g0b2670d9bwyzi67qh0jxrv"))))
13377 (build-system emacs-build-system)
13379 (list emacs-async emacs-projectile))
13380 (home-page "https://github.com/emacs-taskrunner/emacs-taskrunner")
13381 (synopsis "Retrieve tasks from various build systems and task-runners")
13382 (description "This package parses Makefiles and build-system files for
13383 multiple project types.")
13384 (license license:gpl3+))))
13386 (define-public emacs-ivy-taskrunner
13387 (let ((commit "75d8d67cfe3c29663fe0f5508a887adf40ed5162")
13390 (name "emacs-ivy-taskrunner")
13391 (version (git-version "0.9" revision commit))
13395 (uri (git-reference
13396 (url "https://github.com/emacs-taskrunner/ivy-taskrunner")
13398 (file-name (git-file-name name version))
13401 "1wf4s4k0ap21f7g5w6128an8nsvbja7f5n889vcml5b6gjz058db"))))
13402 (build-system emacs-build-system)
13404 (list emacs-ivy emacs-taskrunner emacs-projectile))
13405 (home-page "https://github.com/emacs-taskrunner/ivy-taskrunner")
13406 (synopsis "Retrieve build-system tasks using Ivy")
13407 (description "This package provides an Ivy interface for selecting
13408 Makefile targets.")
13409 (license license:gpl3+))))
13411 (define-public emacs-helm-taskrunner
13412 (let ((commit "1910dac19cbc7bd4fd08b0faf9affd455339fbea")
13415 (name "emacs-helm-taskrunner")
13416 (version (git-version "0.9" revision commit))
13420 (uri (git-reference
13421 (url "https://github.com/emacs-taskrunner/helm-taskrunner")
13423 (file-name (git-file-name name version))
13426 "182lmr858fx6rdhp1fy7kv8dvrhzcnxzwfck1q22s6xs8x85d5q7"))))
13427 (build-system emacs-build-system)
13429 (list emacs-helm emacs-taskrunner emacs-projectile))
13430 (home-page "https://github.com/emacs-taskrunner/helm-taskrunner")
13431 (synopsis "Retrieve build-system tasks using Helm")
13432 (description "This package provides a Helm interface for selecting
13433 Makefile targets.")
13434 (license license:gpl3+))))
13436 (define-public emacs-helm-make
13437 (let ((commit "feae8df22bc4b20705ea08ac9adfc2b43bb348d0")
13440 (name "emacs-helm-make")
13441 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
13445 (uri (git-reference
13446 (url "https://github.com/abo-abo/helm-make")
13448 (file-name (git-file-name name version))
13451 "1y2v77mmd1bfkkz51cnk1l0dg3lvvxc39wlamnm7wjns66dbvlam"))))
13452 (build-system emacs-build-system)
13454 (list emacs-helm emacs-projectile))
13455 (home-page "https://github.com/abo-abo/helm-make")
13456 (synopsis "Select a Makefile target with helm")
13457 (description "@code{helm-make} or @code{helm-make-projectile} will give
13458 you a @code{helm} selection of directory Makefile's targets. Selecting a
13459 target will call @code{compile} on it.")
13460 (license license:gpl3+))))
13462 (define-public emacs-islisp-mode
13464 (name "emacs-islisp-mode")
13468 (uri (git-reference
13469 (url "https://gitlab.com/sasanidas/islisp-mode")
13471 (file-name (git-file-name name version))
13474 "1s6alrv1hfi1plj5lh826j0h71xvm2v092kglj3yvy34g73dgrna"))))
13475 (build-system emacs-build-system)
13478 #:include #~(cons "\\.lsp$" %default-include)
13480 #:test-command #~(list "ert-runner")
13482 #~(modify-phases %standard-phases
13483 ;; Move the extensions source files to the top level, which is
13484 ;; included in the EMACSLOADPATH.
13485 (add-after 'unpack 'move-source-files
13487 (for-each (lambda (dir)
13488 (let ((files (find-files dir "\\.(lsp|el)$")))
13489 (for-each (lambda (f)
13490 (rename-file f (basename f)))
13492 '("advance" "implementations/easy-islisp"))))
13493 (add-after 'move-source-files 'patch-eisl-variables
13494 (lambda* (#:key inputs #:allow-other-keys)
13495 (emacs-substitute-variables "easy-islisp.el"
13496 ("easy-islisp-executable"
13497 (search-input-file inputs "/bin/eisl"))
13498 ("easy-islisp-library-directory"
13499 `(or (getenv "EASY_ISLISP")
13500 ,(search-input-directory inputs "share/eisl/library")))))))))
13501 (native-inputs (list emacs-ert-runner))
13502 (inputs (list eisl))
13503 (home-page "https://gitlab.com/sasanidas/islisp-mode")
13504 (synopsis "ISLisp support for Emacs")
13506 "This package provides support for programming with ISLisp in Emacs. It
13507 features a major mode with syntax highlighting, symbol autocompletion and
13508 documentation search, among other features. It also includes an inferior mode
13509 with REPL integration. Currently it only supports the Easy ISLisp (eisl)
13511 (license license:gpl3+)))
13513 (define-public emacs-cider
13515 (name "emacs-cider")
13520 (uri (git-reference
13521 (url "https://github.com/clojure-emacs/cider")
13522 (commit (string-append "v" version))))
13523 (file-name (git-file-name name version))
13525 (base32 "1a3xbfn1id8dcy3178kmdnzcvh7lq2pdwwg4axhncw6jq9hqiqja"))))
13526 (build-system emacs-build-system)
13528 '(#:exclude ;don't exclude 'cider-test.el'
13529 '("^\\.dir-locals\\.el$" "^test/")
13531 ;; XXX: file "test/cider-tests.el" contains a bogus "/bin/command"
13532 ;; string, and `patch-el-files' phase chokes on it (even though the
13533 ;; file is excluded from installation). Remove the phase altogether
13534 ;; since there is no "/bin/executable" to replace in the code base
13536 (modify-phases %standard-phases
13537 (delete 'patch-el-files))))
13539 (list emacs-clojure-mode
13545 (home-page "https://cider.mx/")
13546 (synopsis "Clojure development environment for Emacs")
13548 "CIDER (Clojure Interactive Development Environment that Rocks) aims to
13549 provide an interactive development experience similar to the one you'd get
13550 when programming in Emacs Lisp, Common Lisp (with SLIME or Sly), Scheme (with
13551 Geiser) and Smalltalk.
13553 CIDER is the successor to the now deprecated combination of using SLIME +
13554 swank-clojure for Clojure development.
13556 There are plenty of differences between CIDER and SLIME, but the core ideas
13557 are pretty much the same (and SLIME served as the principle inspiration for
13559 (license license:gpl3+)))
13561 (define-public emacs-sly
13562 ;; Update together with sbcl-slynk.
13563 (let ((commit "4513c382f07a2a2cedb3c046231b69eae2f5e6f0")
13565 ;; Versions are not always tagged. Besides, latest master contains
13566 ;; important fixes.
13569 (version (git-version "1.0.43" revision commit))
13573 (uri (git-reference
13574 (url "https://github.com/joaotavora/sly")
13576 (file-name (git-file-name name version))
13579 "10bzxhi5d7h18hqclxqy2z857d0sfbsnyxvrhmfkdi0h75zz7m4n"))))
13580 (build-system emacs-build-system)
13584 `(#:include (cons* "^contrib\\/" "^lib\\/" "^slynk\\/" %default-include)
13586 ;; The package provides autoloads.
13587 (modify-phases %standard-phases
13588 (delete 'make-autoloads)
13589 (add-before 'install 'install-doc
13590 (lambda* (#:key outputs #:allow-other-keys)
13591 (let* ((out (assoc-ref outputs "out"))
13592 (info-dir (string-append out "/share/info"))
13593 (doc-dir (string-append out "/share/doc/"
13594 ,name "-" ,version))
13595 (doc-files '( ;; "doc/sly-refcard.pdf" ; See sly-refcard.pdf below.
13596 "README.md" "NEWS.md" "PROBLEMS.md"
13597 "CONTRIBUTING.md")))
13598 (with-directory-excursion "doc"
13599 (substitute* "Makefile"
13600 (("infodir=/usr/local/info")
13601 (string-append "infodir=" info-dir))
13602 ;; Don't rebuild contributors.texi since we are not in
13604 (("contributors.texi: Makefile texinfo-tabulate.awk")
13605 "contributors.texi:"))
13606 (invoke "make" "html/index.html")
13607 (invoke "make" "sly.info")
13608 ;; TODO: We need minimal texlive with "preprint" package
13609 ;; (for fullpage.sty). (invoke "make" "sly-refcard.pdf")
13610 (install-file "sly.info" info-dir)
13611 (copy-recursively "html" (string-append doc-dir "/html")))
13612 (for-each (lambda (f)
13613 (install-file f doc-dir)
13616 (delete-file-recursively "doc")
13618 (home-page "https://github.com/joaotavora/sly")
13619 (synopsis "Sylvester the Cat's Common Lisp IDE")
13621 "SLY is Sylvester the Cat's Common Lisp IDE. SLY is a fork of SLIME, and
13622 contains the following improvements over it:
13625 @item A full-featured REPL based on Emacs's @code{comint.el}. Everything
13626 can be copied to the REPL;
13627 @item Stickers, or live code annotations that record values as code traverses them.
13628 @item Flex-style completion out-of-the-box, using Emacs's completion API.
13629 Company, Helm, and other supported natively, no plugin required;
13630 @item An interactive Trace Dialog;
13631 @item Multiple inspectors and multiple REPLs, with independent history.
13632 @item Regexp-capable @code{M-x sly-apropos}.
13633 @item Cleanly ASDF-loaded by default, including contribs, enabled out-of-the-box;
13634 @item \"Presentations\" replaced by interactive backreferences, which
13635 highlight the object and remain stable throughout the REPL session;
13638 SLY tracks SLIME's bugfixes and all its familiar features (debugger, inspector,
13639 xref, etc.) are still available, but with better integration.")
13640 (license license:gpl3+))))
13642 (define-public emacs-sly-quicklisp
13643 (let ((commit "01ebe3976a244309f2e277c09206831135a0b66c")
13646 (name "emacs-sly-quicklisp")
13647 (version (git-version "0.0.0" revision commit))
13648 (home-page "https://github.com/joaotavora/sly-quicklisp")
13652 (uri (git-reference
13655 (file-name (git-file-name name version))
13658 "1vfqmvayf35g6y3ljsm3rlzv5jm50qikhh4lv2zkkswj6gkkb1cv"))))
13659 (build-system emacs-build-system)
13663 `(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
13665 ;; The package provides autoloads.
13666 (modify-phases %standard-phases
13667 (delete 'make-autoloads)
13668 (delete 'enable-autoloads-compilation))))
13669 (synopsis "Quicklisp support for SLY")
13671 "@command{sly-quicklisp} is an external contrib for SLY that provides a
13672 sly-quickload command that prompts the user for a package to install.")
13673 (license license:gpl3+))))
13675 (define-public emacs-sly-asdf
13677 (name "emacs-sly-asdf")
13679 (home-page "https://github.com/mmgeorge/sly-asdf")
13683 (uri (git-reference
13685 (commit (string-append "v" version))))
13686 (file-name (git-file-name name version))
13689 "0gncp8xv33s4wx594bgd35vr1455bcggv1bg28qv75mhv41nzw97"))))
13690 (build-system emacs-build-system)
13692 (list emacs-sly emacs-popup))
13694 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)))
13695 (synopsis "ASDF contrib for SLY")
13697 "@command{sly-asdf} is an external contrib for SLY that provides
13698 additional support for working with ASDF projects.")
13699 (license license:gpl3+)))
13701 (define-public emacs-sly-named-readtables
13702 (let ((commit "a5a42674ccffa97ccd5e4e9742beaf3ea719931f")
13705 (name "emacs-sly-named-readtables")
13706 (version (git-version "0.1" revision commit))
13707 (home-page "https://github.com/joaotavora/sly-named-readtables")
13711 (uri (git-reference
13714 (file-name (git-file-name name version))
13717 "16asd119rzqrlclps2q6yrkis8jy5an5xgzzqvb7jdyq39zxg54q"))))
13718 (build-system emacs-build-system)
13722 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
13723 #:phases (modify-phases %standard-phases
13724 ;; Byte compilation of the autoload file fails.
13725 (delete 'enable-autoloads-compilation))))
13726 (synopsis "Named-readtables support for SLY")
13728 "@command{sly-named-readtables} is an external contrib for SLY that
13729 enables different readtables to be active in different parts of the same
13731 (license license:gpl3+))))
13733 (define-public emacs-sly-macrostep
13734 (let ((commit "5113e4e926cd752b1d0bcc1508b3ebad5def5fad")
13737 (name "emacs-sly-macrostep")
13738 (version (git-version "0.1" revision commit))
13739 (home-page "https://github.com/joaotavora/sly-macrostep")
13743 (uri (git-reference
13746 (file-name (git-file-name name version))
13749 "1nxf28gn4f3n0wnv7nb5sgl36fz175y470zs9hig4kq8cp0yal0r"))))
13750 (build-system emacs-build-system)
13752 (list emacs-sly emacs-macrostep))
13754 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
13756 ;; The package provides autoloads.
13757 (modify-phases %standard-phases
13758 (delete 'make-autoloads)
13759 (delete 'enable-autoloads-compilation))))
13760 (synopsis "Expand Common Lisp macros inside source files with SLY")
13762 "@command{sly-macrostep} is a SLY contrib for expanding CL macros right
13763 inside the source file.")
13764 (license license:gpl3+))))
13766 (define-public emacs-sly-stepper
13767 (let ((commit "da84e3bba8466c2290c2dc7c27d7f4c48c27b39e"))
13769 (name "emacs-sly-stepper")
13770 (version (git-version "0.0.0" "2" commit))
13771 (home-page "https://github.com/joaotavora/sly-stepper")
13775 (uri (git-reference
13778 (file-name (git-file-name name version))
13781 "07p0k797fagn1qha191p6g2b55hsqqkcj59mh0ms9id0ildydil0"))
13782 (modules '((guix build utils)))
13785 (map delete-file (find-files "." ".*-autoloads\\.elc?$"))
13787 (build-system emacs-build-system)
13789 (list cl-agnostic-lizard))
13793 `(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
13795 (modify-phases %standard-phases
13796 (add-after 'expand-load-path 'expand-sly-contrib
13797 (lambda* (#:key inputs #:allow-other-keys)
13798 (let* ((sly (assoc-ref inputs "emacs-sly"))
13799 (contrib (find-files sly "^contrib$" #:directories? #t)))
13800 (setenv "EMACSLOADPATH"
13801 (string-append (string-join contrib ":")
13803 (getenv "EMACSLOADPATH")))
13805 (add-after 'install 'find-agnostic-lizard
13806 (lambda* (#:key inputs outputs #:allow-other-keys)
13807 (let* ((out (assoc-ref outputs "out"))
13808 (file (string-append (elpa-directory out)
13809 "/slynk-stepper.lisp"))
13810 (asd (string-append
13811 (assoc-ref inputs "cl-agnostic-lizard")
13812 "/share/common-lisp/systems/agnostic-lizard.asd")))
13813 ;; agnostic-lizard is found at runtime.
13815 (("\\(require :asdf\\)")
13817 "(require :asdf)\n"
13818 " (funcall (read-from-string \"asdf:load-asd\")\n"
13819 " \"" asd "\")\n")))))))))
13820 (synopsis "Portable Common Lisp stepper interface for Emacs")
13822 "This package features a new, portable, visual stepping facility for
13823 Common Lisp, realized as an extension to SLY.")
13824 (license license:gpl3+))))
13826 (define-public emacs-sly-package-inferred
13827 (let ((commit "800e71e2be631422277e2ec77e6d6f6ea20e95ef")
13830 (name "emacs-sly-package-inferred")
13831 (version (git-version "0.1" revision commit))
13832 (home-page "https://github.com/40ants/sly-package-inferred")
13836 (uri (git-reference
13839 (file-name (git-file-name name version))
13842 "1216idyp034nkqddhw4p53jkhhdxa6xnjjmsvijpf4rxqnfqvapg"))))
13843 (build-system emacs-build-system)
13847 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
13849 ;; The package provides autoloads.
13850 (modify-phases %standard-phases
13851 (delete 'make-autoloads))))
13852 (synopsis "Improved package inferred systems support for SLY")
13854 "@command{sly-package-inferred} is an external contrib for SLY that
13855 replaces its completion with a function which is better suited for systems
13856 using package inferred style.")
13857 (license license:gpl3+))))
13859 (define-public emacs-lua-mode
13861 (name "emacs-lua-mode")
13862 (version "20210802")
13863 (home-page "https://github.com/immerrr/lua-mode/")
13867 (uri (git-reference
13869 (commit (string-append "v" version))))
13870 (file-name (git-file-name name version))
13872 (base32 "0r3svhggdml2n256k3b0zmbjnw51p46gan6dg07bhavpfrqs5196"))))
13873 (build-system emacs-build-system)
13876 #:test-command '("buttercup" "-l" "lua-mode.el")))
13878 (list emacs-buttercup-1.25 lua))
13879 (synopsis "Major mode for lua")
13881 "This Emacs package provides a mode for @uref{https://www.lua.org/,
13882 Lua programming language}.")
13883 (license license:gpl2+)))
13885 (define-public emacs-ebuild-mode
13887 (name "emacs-ebuild-mode")
13892 (uri (string-append
13893 "https://dev.gentoo.org/~ulm/emacs/"
13894 "ebuild-mode-" version ".tar.xz"))
13895 (file-name (string-append name "-" version ".tar.xz"))
13897 (base32 "02fkmzh9rdl061n1p9lgf5mgkm67vxcbd8sj0f1dicb9vyry0zgy"))))
13898 (build-system emacs-build-system)
13902 #~(modify-phases %standard-phases
13903 (add-after 'install 'install-doc
13905 (invoke "make" "ebuild-mode.info")
13906 (install-file "ebuild-mode.info"
13907 (string-append #$output "/share/info")))))))
13910 (home-page "https://devmanual.gentoo.org")
13911 (synopsis "Major modes for Gentoo package files")
13913 "This Emacs package provides modes for ebuild, eclass, eblit, GLEP42
13914 news items, openrc and runscripts.")
13915 (license license:gpl2+)))
13917 (define-public emacs-ebuku
13918 ;; Upstream has no tagged release.
13919 (let ((revision "1")
13920 (commit "0c6cf404a49bd68800221446df186fffa0139325"))
13922 (name "emacs-ebuku")
13923 (version (git-version "0" revision commit))
13926 (uri (git-reference
13927 (url "https://github.com/flexibeast/ebuku")
13929 (file-name (git-file-name name version))
13932 "09fkzmcvzdbdjaa167wiybj0kir7y12pcq2varjywshvq2l7niz4"))))
13933 (build-system emacs-build-system)
13934 (home-page "https://github.com/flexibeast/ebuku")
13935 (synopsis "Emacs interface to the buku Web bookmark manager")
13937 "Ebuku provides a basic interface to the @code{buku} Web bookmark
13939 (license license:gpl3+))))
13941 (define-public emacs-evil
13942 ;; Commit message claims this is 1.15.0, but there's no tag for it, so we
13943 ;; use full git-version instead
13944 (let ((commit "008a6cdb12f15e748979a7d1c2f26c34c84dedbf")
13947 (name "emacs-evil")
13948 (version (git-version "1.15.0" revision commit))
13952 (uri (git-reference
13953 (url "https://github.com/emacs-evil/evil")
13955 (file-name (git-file-name name version))
13958 "1hxhw1rsm0wbrhz85gfabncanijpxd47g5yrdnl3bbm499z1gsvg"))))
13961 (modify-phases %standard-phases
13962 (add-before 'check 'fix-test-helpers
13964 (substitute* "evil-test-helpers.el"
13965 (("\\(undo-tree-mode 1\\)") ""))
13967 (add-before 'install 'make-info
13969 (with-directory-excursion "doc/build/texinfo"
13970 (invoke "makeinfo" "--no-split"
13971 "-o" "evil.info" "evil.texi")))))))
13972 (build-system emacs-build-system)
13973 (native-inputs (list texinfo))
13974 (home-page "https://github.com/emacs-evil/evil")
13975 (synopsis "Extensible Vi layer for Emacs")
13977 "Evil is an extensible vi layer for Emacs. It emulates the
13978 main features of Vim, and provides facilities for writing custom
13980 (license license:gpl3+))))
13982 (define-public emacs-evil-collection
13984 (name "emacs-evil-collection")
13989 (uri (git-reference
13990 (url "https://github.com/emacs-evil/evil-collection")
13992 (file-name (git-file-name name version))
13994 (base32 "159i3qvjnp7jiffwpr517nnxcy3w3g40302vyzxvz6mb6qay6f2c"))))
13995 (build-system emacs-build-system)
13997 (list emacs-evil emacs-annalist))
13999 `(#:include (cons* "^modes\\/" %default-include)))
14000 (home-page "https://github.com/emacs-evil/evil-collection")
14001 (synopsis "Collection of Evil bindings for many major and minor modes")
14002 (description "This is a collection of Evil bindings for the parts of
14003 Emacs that Evil does not cover properly by default, such as @code{help-mode},
14004 @code{M-x calendar}, Eshell and more.")
14005 (license license:gpl3+)))
14007 (define-public emacs-evil-goggles
14008 (let ((commit "08a22058fd6a167f9f1b684c649008caef571459")
14012 (name "emacs-evil-goggles")
14013 (version (git-version version revision commit))
14017 (uri (git-reference
14018 (url "https://github.com/edkolev/evil-goggles")
14020 (file-name (git-file-name name version))
14022 (base32 "1p3vjrij63v9nrcyj3b5jsqzv9y7dgv9i1inx1q7x3s90vndavac"))))
14023 (build-system emacs-build-system)
14026 (home-page "https://github.com/edkolev/evil-goggles")
14027 (synopsis "Displays visual hints when editing with evil")
14028 (description "Creates a visual pulse to indicate the region that is
14029 being deleted, changed, yanked, or pasted when using evil commands")
14030 (license license:gpl3+))))
14032 (define-public emacs-goggles
14034 (name "emacs-goggles")
14039 (uri (git-reference
14040 (url "https://github.com/minad/goggles")
14042 (file-name (git-file-name name version))
14044 (base32 "15bqjmwfdqp2np6fln6xjyw59c5iddvzsyga0lvb8raa753cdh2k"))))
14045 (build-system emacs-build-system)
14046 (home-page "https://github.com/minad/goggles")
14047 (synopsis "Pulse modified region")
14048 (description "Goggles highlights the modified region using pulse.
14049 Currently the commands undo, yank, kill and delete are supported.")
14050 (license license:gpl3+)))
14052 (define-public emacs-goto-chg
14054 (name "emacs-goto-chg")
14059 (uri (git-reference
14060 (url "https://github.com/emacs-evil/goto-chg")
14062 (file-name (git-file-name name version))
14065 "0rgdzhan4n5bd78wvivacqkp0g7jvnwzgh0571p2m4yra09a36mv"))))
14066 (build-system emacs-build-system)
14067 (home-page "https://github.com/emacs-evil/goto-chg")
14068 (synopsis "Go to the last change in the Emacs buffer")
14070 "This package provides @code{M-x goto-last-change} command that goes to
14071 the point of the most recent edit in the current Emacs buffer. When repeated,
14072 go to the second most recent edit, etc. Negative argument, @kbd{C-u -}, is
14073 used for reverse direction.")
14074 (license license:gpl2+)))
14076 (define-public emacs-evil-owl
14077 (let ((commit "24c5f43df375194386344e69bc720ea3986c9510")
14080 (name "emacs-evil-owl")
14081 (version (git-version "0.0.1" revision commit))
14085 (uri (git-reference
14086 (url "https://github.com/mamapanda/evil-owl")
14088 (file-name (git-file-name name version))
14091 "0bqzch14whlmrcasakah3psrzswvkzd7mmi8hx5s64kfp29wbdhi"))))
14092 (build-system emacs-build-system)
14097 #:test-command '("make" "test")))
14098 (home-page "https://github.com/mamapanda/evil-owl")
14099 (synopsis "Preview candidates when using Evil registers and marks")
14101 "This package supplements Evil's register- and mark-based commands with
14102 a popup window for previewing candidates.")
14103 (license license:gpl3+))))
14105 (define-public emacs-evil-paredit
14106 (let ((commit "e058fbdcf9dbf7ad6cc77f0172d7517ef233d55f"))
14108 (name "emacs-evil-paredit")
14109 (version "0.0.2") ; says 0.0.2 in evil-paredit.el
14113 (uri (git-reference
14114 (url "https://github.com/roman/evil-paredit")
14116 (file-name (git-file-name name version))
14118 (base32 "0b08y4spapl4g2292j3l4cr84gjlvm3rpma3gqld4yb1sxd7v78p"))))
14119 (build-system emacs-build-system)
14121 (list emacs-evil emacs-paredit))
14122 (home-page "https://github.com/roman/evil-paredit")
14123 (synopsis "Evil extension to integrate nicely with Paredit")
14125 "This package helps you to not screw up your Paredit setup when using
14126 Evil mode. Whenever you try to use a modifier command like @kbd{d}, @kbd{c},
14127 @kbd{y} to modify the Paredit buffer, it will stop you to do so in the case
14128 you break the parity of parenthesis.")
14129 (license license:expat))))
14131 (define-public emacs-evil-args
14132 (let ((commit "758ad5ae54ad34202064fec192c88151c08cb387")
14135 (name "emacs-evil-args")
14136 (version (git-version "1.0" revision commit))
14140 (uri (git-reference
14141 (url "https://github.com/wcsmith/evil-args")
14143 (file-name (git-file-name name version))
14146 "0k35glgsirc3cph8v5hhjrqfh4ndwh8a28qbr03y3jl8s453xcj7"))))
14147 (build-system emacs-build-system)
14148 (propagated-inputs (list emacs-evil))
14149 (home-page "https://github.com/wcsmith/evil-args")
14150 (synopsis "Motions and text objects for delimited arguments in Evil")
14152 "This package provides motions and text objects for delimited
14153 arguments, such as arguments separated by commas and semicolons.")
14154 (license license:expat))))
14156 (define-public emacs-evil-escape
14158 (name "emacs-evil-escape")
14165 (url "https://github.com/emacsorphanage/evil-escape")
14166 (commit (string-append "v" version))))
14167 (file-name (git-file-name name version))
14169 (base32 "1z30v59igndqzxg9gcx4bsbf5jkh11wp936il8azkrz3qdryaj4a"))))
14172 (build-system emacs-build-system)
14173 (home-page "https://github.com/emacsorphanage/evil-escape")
14174 (synopsis "Escape from insert state and everything else in Emacs")
14176 "Evil escape provides a customizable key sequence to escape from insert
14177 state and everything else in Emacs.")
14178 (license license:gpl3+)))
14180 (define-public emacs-evil-exchange
14181 (let ((commit "47691537815150715e64e6f6ec79be7746c96120")
14185 (name "emacs-evil-exchange")
14186 (version (git-version version revision commit))
14190 (uri (git-reference
14191 (url "https://github.com/Dewdrops/evil-exchange")
14193 (file-name (git-file-name name version))
14196 "0bjpn4yqig17ddym6wqq5fm1b294q74hzcbj9a6gs97fqiwf88xa"))))
14197 (build-system emacs-build-system)
14198 (propagated-inputs (list emacs-evil))
14199 (native-inputs (list emacs-ert-runner))
14202 (modify-phases %standard-phases
14203 (add-before 'check 'fix-makefile
14205 (substitute* "Makefile"
14206 (("cask exec ") ""))
14209 #:test-command '("make" "test")))
14210 (home-page "https://github.com/Dewdrops/evil-exchange")
14211 (synopsis "Exchange text easily within Evil")
14213 "This package, a port of @code{vim-exchange}, provides an Evil operator
14214 for exchanging text.")
14215 (license license:gpl3+))))
14217 (define-public emacs-evil-replace-with-register
14218 (let ((commit "91cc7bf21a94703c441cc9212214075b226b7f67")
14222 (name "emacs-evil-replace-with-register")
14223 (version (git-version version revision commit))
14227 (uri (git-reference
14228 (url "https://github.com/Dewdrops/evil-ReplaceWithRegister")
14230 (file-name (git-file-name name version))
14233 "14rpn76qrf287s3y2agmddcxi27r226i53ixjvd694ss039g0r11"))))
14234 (build-system emacs-build-system)
14235 (propagated-inputs (list emacs-evil))
14236 (home-page "https://github.com/Dewdrops/evil-ReplaceWithRegister")
14237 (synopsis "Quickly replace text with the contents of a register")
14239 "This package provides an Evil operator for replacing text with the
14240 contents of a register.")
14241 (license license:gpl3+))))
14243 (define-public emacs-evil-indent-plus
14244 (let ((commit "0c7501e6efed661242c3a20e0a6c79a6455c2c40")
14248 (name "emacs-evil-indent-plus")
14249 (version (git-version version revision commit))
14253 (uri (git-reference
14254 (url "https://github.com/TheBB/evil-indent-plus")
14256 (file-name (git-file-name name version))
14259 "1g6r1ydscwjvmhh1zg4q3nap4avk8lb9msdqrh7dff6pla0r2qs6"))))
14260 (build-system emacs-build-system)
14261 (propagated-inputs (list emacs-evil))
14262 (home-page "https://github.com/TheBB/evil-indent-plus")
14263 (synopsis "Text objects based on indentation")
14265 "This package adds new text objects for @code{evil-mode} based on
14266 blocks having the same or higher indentation, including or excluding
14267 surrounding lines.")
14268 (license license:gpl2+))))
14270 (define-public emacs-evil-text-object-python
14271 (let ((commit "9a064fe6475429145cbcc3b270fcc963b67adb15")
14275 (name "emacs-evil-text-object-python")
14276 (version (git-version version revision commit))
14280 (uri (git-reference
14281 (url "https://github.com/wbolster/evil-text-object-python")
14283 (file-name (git-file-name name version))
14286 "074zpm6mmr1wfl6d5xdf8jk1fs4ccpbzf4ahhkwga9g71xiplszv"))))
14287 (build-system emacs-build-system)
14288 (propagated-inputs (list emacs-evil))
14289 (home-page "https://github.com/wbolster/evil-text-object-python")
14290 (synopsis "Text objects for Python")
14292 "This package provides @code{evil-mode} text objects for Python.")
14293 (license license:gpl3+))))
14295 (define-public emacs-evil-lion
14296 (let ((commit "6b03593f5dd6e7c9ca02207f9a73615cf94c93ab")
14299 (name "emacs-evil-lion")
14300 (version (git-version "0.0.2" revision commit))
14304 (uri (git-reference
14305 (url "https://github.com/edkolev/evil-lion")
14307 (file-name (git-file-name name version))
14310 "1a162hynp0jcsn50c1w5a02mrw9w3q05c7lkqzqd25px3d0p772q"))))
14311 (build-system emacs-build-system)
14312 (propagated-inputs (list emacs-evil))
14315 #:test-command '("make" "test")))
14316 (home-page "https://github.com/edkolev/evil-lion")
14317 (synopsis "Align operator for @code{evil-mode}")
14319 "This package, a port of @code{vim-lion}, provides an operator for
14320 aligning text objects based on separators.")
14321 (license license:gpl3+))))
14323 (define-public emacs-evil-expat
14324 (let ((commit "f4fcd0aa3edc359adb5c986b5dd9188d220d84e2")
14327 (name "emacs-evil-expat")
14328 (version (git-version "0.0.1" revision commit))
14332 (uri (git-reference
14333 (url "https://github.com/edkolev/evil-expat")
14335 (file-name (git-file-name name version))
14338 "0872ix682hkdz0k8pn6sb54rqkx00rz5fxpd5j2snx406yagpaxz"))))
14339 (build-system emacs-build-system)
14340 (propagated-inputs (list emacs-evil))
14343 #:test-command '("make" "test")))
14344 (home-page "https://github.com/edkolev/evil-expat")
14345 (synopsis "Extra @code{ex} commands for @code{evil-mode}")
14347 "This package provides additional commands for the @code{ex} command
14348 line, including functions for version control with Git and for copying and
14349 pasting into and from @code{tmux} paste buffers.")
14350 (license license:gpl3+))))
14352 (define-public emacs-evil-nerd-commenter
14354 (name "emacs-evil-nerd-commenter")
14359 (uri (git-reference
14360 (url "https://github.com/redguardtoo/evil-nerd-commenter")
14362 (file-name (git-file-name name version))
14365 "1v2iwci0yc1sld1sidrwdnqriyhs78ba3gp4d9az0af48grl7x1w"))))
14366 (build-system emacs-build-system)
14367 (propagated-inputs (list emacs-evil))
14368 (home-page "https://github.com/redguardtoo/evil-nerd-commenter")
14369 (synopsis "Comment and uncomment lines efficiently")
14371 "This package provides text objects and operators for comments within
14372 @code{evil-mode}.")
14373 (license license:gpl3+)))
14375 (define-public emacs-evil-visual-replace
14377 (name "emacs-evil-visual-replace")
14382 (uri (git-reference
14383 (url "https://github.com/troyp/evil-visual-replace")
14385 (file-name (git-file-name name version))
14388 "1gfyrq7xfzmzh3x8k5f08n027dlbwi0pkkxf9c39fkxp4jngibsz"))))
14389 (build-system emacs-build-system)
14390 (propagated-inputs (list emacs-evil))
14391 (home-page "https://github.com/troyp/evil-visual-replace")
14392 (synopsis "Replacement commands for @code{evil-mode} visual blocks")
14394 "This package provides versions of @code{query-replace} and
14395 @code{replace-regexp} that work for @code{evil-mode} visual blocks.")
14396 (license license:gpl2+)))
14398 (define-public emacs-evil-visualstar
14399 (let ((commit "06c053d8f7381f91c53311b1234872ca96ced752")
14403 (name "emacs-evil-visualstar")
14404 (version (git-version version revision commit))
14408 (uri (git-reference
14409 (url "https://github.com/bling/evil-visualstar")
14411 (file-name (git-file-name name version))
14414 "0mkbzw12fav945icibc2293m5haxqr3hzkyli2cf4ssk6yvn0x4c"))))
14415 (build-system emacs-build-system)
14416 (propagated-inputs (list emacs-evil))
14417 (home-page "https://github.com/bling/evil-visualstar")
14418 (synopsis "Instantly search using the visual selection")
14420 "This package provides @code{evil-mode} functions for using selected text
14422 (license license:gpl3+))))
14424 (define-public emacs-monky
14426 (name "emacs-monky")
14430 (uri (git-reference
14431 (url "https://github.com/ananthakumaran/monky")
14433 (file-name (git-file-name name version))
14436 "1fgn7al4zwz2k5wb5dy3byqg9lsrjk9fra341mxh5ma2pfwxjgps"))))
14437 (build-system emacs-build-system)
14438 (home-page "https://ananthakumaran.in/monky/index.html")
14441 #:test-command '("emacs" "--batch"
14442 "-l" "test/monky-unit-test.el"
14443 "-f" "ert-run-tests-batch-and-exit")))
14444 (synopsis "Interactive interface for the Mercurial version control system")
14446 "Monky provides an Emacs interface for Mercurial (Hg). Using Monky, you
14447 can selectively commit files, view the diffs, and other things.")
14448 (license license:gpl3+)))
14450 (define-public emacs-monroe
14452 (name "emacs-monroe")
14457 (uri (git-reference
14458 (url "https://github.com/sanel/monroe")
14460 (file-name (git-file-name name version))
14462 (base32 "101lfrykdbv37spkbw7zihhx26bc1lhjyxbanrcp9880bxj04jiy"))))
14463 (build-system emacs-build-system)
14464 (home-page "https://github.com/sanel/monroe")
14465 (synopsis "Clojure nREPL client for Emacs")
14467 "Monroe is a nREPL client for Emacs, focused on simplicity and easy
14468 distribution, primarily targeting Clojure users")
14469 (license license:gpl3+)))
14471 (define-public emacs-orgalist
14473 (name "emacs-orgalist")
14478 (uri (string-append "https://elpa.gnu.org/packages/"
14479 "orgalist-" version ".el"))
14481 (base32 "1wkxc5kcy1g4lx6pd78pa8znncjyl9zyhsvz7wpp56qmhq4hlav3"))))
14482 (build-system emacs-build-system)
14483 (home-page "https://elpa.gnu.org/packages/orgalist.html")
14484 (synopsis "Manage Org-like lists in non-Org buffers")
14485 (description "Orgalist writes and manages Org mode's plain lists in
14486 non-Org buffers. More specifically, it supports the syntax of Org mode for
14487 numbered, unnumbered, description items, checkboxes, and counter cookies.
14489 The library also implements radio lists, i.e., lists written in Org syntax
14490 later translated into the host format, e.g., LaTeX or HTML.")
14491 (license license:gpl3+)))
14493 (define-public emacs-writegood-mode
14495 (name "emacs-writegood-mode")
14497 (home-page "https://github.com/bnbeckwith/writegood-mode")
14500 (uri (git-reference
14502 (commit (string-append "v" version))))
14505 "1a3gmaaa344kigr209b6wnjiw9ikkmw1j5jda04h3g8f9817njyv"))
14506 (file-name (string-append name "-checkout"))))
14507 (build-system emacs-build-system)
14508 (synopsis "Polish up poor writing on the fly")
14510 "This minor mode tries to find and highlight problems with your writing
14511 in English as you type. It primarily detects \"weasel words\" and abuse of
14513 (license license:gpl3+)))
14515 (define-public emacs-neotree
14517 (name "emacs-neotree")
14519 (home-page "https://github.com/jaypei/emacs-neotree")
14522 (uri (git-reference
14527 "0hx72fq10772bbyqrj7mhhp02k26cccjxdadiqm1ykainhfmn1x0"))
14528 (file-name (git-file-name name version))))
14529 (build-system emacs-build-system)
14530 (synopsis "Folder tree view for Emacs")
14531 (description "This Emacs package provides a folder tree view.")
14532 (license license:gpl3+)))
14534 (define-public emacs-org
14541 (uri (git-reference
14542 (url "https://git.savannah.gnu.org/git/emacs/org-mode")
14543 (commit (string-append "release_" version))))
14544 (file-name (git-file-name name version))
14546 (base32 "1pi9kkcbvsrvw009lf6q2l68n9jyjks94xjqyn36zq1vqcvmg33d"))))
14547 (build-system emacs-build-system)
14551 #:test-command #~(list "make" "test-dirty")
14553 #~(modify-phases %standard-phases
14554 (replace 'expand-load-path
14555 ;; Make sure `load-path' includes "lisp" directory, otherwise
14556 ;; byte-compilation fails.
14558 (with-directory-excursion "lisp"
14559 (apply (assoc-ref %standard-phases 'expand-load-path) args))))
14560 (add-after 'expand-load-path 'bootstrap
14561 ;; XXX: Generate "org-loaddefs.el".
14563 (invoke "make" "autoloads")))
14564 (add-before 'check 'fix-tests
14565 (lambda* (#:key inputs #:allow-other-keys)
14566 ;; XXX: Running tests updates ID locations. The process expects
14567 ;; a file to be writeable in "~/.emacs.d/".
14568 (setenv "HOME" (getcwd))
14569 (mkdir-p ".emacs.d")
14570 ;; These files are modified during testing.
14571 (with-directory-excursion "testing/examples"
14572 (for-each make-file-writable
14576 "ob-shell-test.org"))
14577 ;; Specify where sh executable is.
14578 (let ((sh (search-input-file inputs "/bin/sh")))
14579 (substitute* "babel.org"
14580 (("/bin/sh") sh))))
14581 ;; XXX: Skip failing tests.
14582 (substitute* "testing/lisp/test-ob-shell.el"
14583 (("ob-shell/remote-with-stdin-or-cmdline .*" all)
14584 (string-append all " (skip-unless nil)\n")))
14585 (substitute* "testing/lisp/test-org.el"
14586 (("test-org/org-(encode-time|time-string-to-time) .*" all)
14587 (string-append all " (skip-unless nil)\n")))))
14590 (let ((elpa (elpa-directory #$output))
14591 (info (string-append #$output "/share/info")))
14592 (substitute* "local.mk"
14593 (("^lispdir.*") (string-append "lispdir = " elpa))
14594 (("^datadir.*") (string-append "datadir = " elpa "/etc"))
14595 (("^infodir.*") (string-append "infodir = " info))))
14596 (invoke "make" "install" (string-append "ORGVERSION=" #$version))))
14597 (add-after 'install 'install-org-news
14598 ;; Install ORG-NEWS files in doc directory.
14600 (install-file "etc/ORG-NEWS"
14601 (string-append #$output "/share/doc/"
14602 #$name "-" #$version)))))))
14605 (home-page "https://orgmode.org/")
14606 (synopsis "Outline-based notes management and organizer")
14607 (description "Org is an Emacs mode for keeping notes, maintaining TODO
14608 lists, and project planning with a fast and effective lightweight markup
14609 language. It also is an authoring system with unique support for literate
14610 programming and reproducible research.")
14611 (license license:gpl3+)))
14613 (define-public emacs-org-contrib
14615 (name "emacs-org-contrib")
14620 (uri (git-reference
14621 (url "https://git.sr.ht/~bzg/org-contrib")
14622 (commit (string-append "release_" version))))
14623 (file-name (git-file-name name version))
14625 (base32 "0f3zjy3ybkqmvvlx04251add0vcz248qibxy5akal96l8bdhjajx"))))
14626 (build-system emacs-build-system)
14629 (modify-phases %standard-phases
14630 (add-after 'unpack 'enter-source-directory
14632 (chdir "lisp"))))))
14634 (list emacs-cider))
14637 (home-page "https://git.sr.ht/~bzg/org-contrib")
14638 (synopsis "Unmaintained add-ons for Org mode")
14640 "This package contains add-ons to Org. Be warned that these libraries
14641 receive little if no maintenance and there is no guaranty that they are
14642 compatible with the Org stable version.")
14643 (license license:gpl3+)))
14645 (define-public emacs-org-contacts
14646 ;; XXX: Upstream does not tag version bumps. Commit below matches latest
14648 (let ((commit "217ba04c9d638067a6ccb0829cf1885f54c1d568"))
14650 (name "emacs-org-contacts")
14655 (uri (git-reference
14656 (url "https://repo.or.cz/org-contacts")
14658 (file-name (git-file-name name version))
14660 (base32 "0f0vjdvx0hffj2xvyrya8yfl77djmzmpxdxsx58ym4lmdvwyb6x3"))))
14661 (build-system emacs-build-system)
14662 (propagated-inputs (list emacs-org))
14663 (home-page "https://repo.or.cz/org-contacts")
14664 (synopsis "Contacts management system for Org mode")
14665 (description "Manage your contacts from Org mode. You can auto
14666 complete email addresses, export contacts to a vCard file, put birthdays
14667 in your Org Agenda, and more.")
14668 (license license:gpl3+))))
14670 (define-public emacs-org-vcard
14672 (name "emacs-org-vcard")
14677 (uri (git-reference
14678 (url "https://github.com/flexibeast/org-vcard")
14679 (commit (string-append "v" version))))
14680 (file-name (git-file-name name version))
14682 (base32 "14l3xqahqmnfl3sskqcr33xpcsic8dm9cr9wmbv5la3xv14n10k7"))))
14683 (build-system emacs-build-system)
14684 (home-page "https://github.com/flexibeast/org-vcard")
14685 (synopsis "Org mode support for vCard export and import")
14687 "This package exports and imports vCard files from within GNU Emacs' Org
14689 (license license:gpl3+)))
14691 (define-public emacs-org-pretty-table
14692 ;; There is no release yet.
14693 (let ((commit "1331c600b83d95b28730b1bfcb48369ac1cf12ef")
14696 (name "emacs-org-pretty-table")
14697 (version (git-version "0.0.1" revision commit))
14701 (uri (git-reference
14702 (url "https://github.com/Fuco1/org-pretty-table")
14704 (file-name (git-file-name name version))
14706 (base32 "0yvqxh66y400n2n5ykmb1zrzd80bakffpwn6nmf37728x4cj8krh"))))
14707 (build-system emacs-build-system)
14708 (home-page "https://github.com/Fuco1/org-pretty-table")
14709 (synopsis "Make tables in Org mode and OrgTbl mode prettier")
14711 "This package displays tables in Org mode and OrgTbl mode using Unicode
14713 (license license:gpl3+))))
14715 (define-public emacs-ob-sclang
14716 (let ((commit "cd3f3c847d8149cd4ce4a775942dac88ba92c772")
14719 (name "emacs-ob-sclang")
14720 (version (git-version "0.1" revision commit))
14723 (uri (git-reference
14724 (url "https://repo.or.cz/ob-sclang")
14726 (file-name (git-file-name name version))
14729 "0dr8va2v0262plqxd63yxymqiffkql9klci7wsp5i7xgpka8925q"))))
14730 (build-system emacs-build-system)
14732 (list emacs-org emacs-scel))
14733 (home-page "https://repo.or.cz/ob-sclang")
14734 (synopsis "Org Babel support for SuperCollider")
14735 (description "This package adds support for evaluating @code{sclang} Org
14736 mode source blocks.")
14737 (license license:gpl3+))))
14739 (define-public emacs-org-edna
14741 (name "emacs-org-edna")
14745 (uri (bzr-reference
14746 (url "bzr://bzr.savannah.nongnu.org/org-edna-el")
14747 (revision version)))
14748 (file-name (string-append name "-" version "-checkout"))
14751 "01dblddgx0yid5hrgl4swbr4grhv057kfbdy122wihzqpsrgq86n"))))
14752 (build-system emacs-build-system)
14753 (home-page "https://savannah.nongnu.org/projects/org-edna-el/")
14754 (synopsis "Manage Org task dependencies")
14755 (description "This package provides an extensible means of specifying
14756 conditions which must be fulfilled before a task can be completed and actions
14757 to take once it is. Org Edna runs when either the BLOCKER or TRIGGER
14758 properties are set on a heading, and when it is changing from a TODO state to
14760 (license license:gpl3+)))
14762 (define-public emacs-toodoo
14763 ;; Package has no release. Version is extracted from "Version:" keyword in
14764 ;; main file, and commit below matches version bump.
14766 (name "emacs-toodoo")
14771 (uri (git-reference
14772 (url "https://github.com/ChanderG/toodoo.el")
14773 (commit "149a563863c2f728c5f903475dbce50547c51000")))
14774 (file-name (git-file-name name version))
14777 "00q7aym0kl03j9m66pivgy0snxcjjg402049b2wdy18kgyypfvx8"))))
14778 (build-system emacs-build-system)
14779 (propagated-inputs (list emacs-evil))
14780 (home-page "https://github.com/ChanderG/toodoo.el")
14781 (synopsis "Magit-like interface for a Todo workflow built on top of Org")
14782 (description "This package provides a minor mode for fast and easy management of Todos
14783 using Org mode and transients.")
14784 (license license:asl2.0)))
14786 (define-public emacs-flx
14793 (uri (git-reference
14794 (url "https://github.com/lewang/flx")
14795 (commit (string-append "v" version))))
14798 "0sjybrcnb2sl33swy3q664vqrparajcl0m455gciiih2j87hwadc"))
14799 (file-name (git-file-name name version))))
14800 (build-system emacs-build-system)
14801 (home-page "https://github.com/lewang/flx")
14802 (synopsis "Fuzzy matching for Emacs")
14804 "Flx provides fuzzy matching for emacs a la sublime text.
14805 The sorting algorithm is a balance between word beginnings (abbreviation)
14806 and contiguous matches (substring). The longer the substring match,
14807 the higher it scores. This maps well to how we think about matching.
14808 Flx has support for ido (interactively do things) through flx-ido.")
14809 (license license:gpl3+)))
14811 (define-public emacs-cyberpunk-theme
14813 (name "emacs-cyberpunk-theme")
14818 (uri (git-reference
14819 (url "https://github.com/n3mo/cyberpunk-theme.el/")
14823 "06nff38pcy5rgz13svkajsg0jjk73qy4a8m7p9f76yxcywxlgxlc"))
14824 (file-name (git-file-name name version))))
14825 (build-system emacs-build-system)
14826 (home-page "https://github.com/n3mo/cyberpunk-theme.el")
14827 (synopsis "Cyberpunk theme for Emacs built-in color theme support")
14829 "Cyberpunk color theme for the Emacs 24+ built-in color theme support
14830 known loosely as deftheme. Many mode-specific customizations are included.")
14831 (license license:gpl3+)))
14833 (define-public emacs-dart-mode
14835 (name "emacs-dart-mode")
14840 (uri (git-reference
14841 (url "https://github.com/bradyt/dart-mode")
14843 (file-name (git-file-name name version))
14845 (base32 "1vql8m4nj0brmv58b6lkbhykik8n6j4i7d3nylcls78y7ihc2cz8"))))
14846 (build-system emacs-build-system)
14848 (list emacs-dash emacs-flycheck emacs-s))
14849 (home-page "https://github.com/bradyt/dart-mode")
14850 (synopsis "Emacs mode for the Dart programming language")
14852 "Dart mode is an Emacs major mode for editing Dart files. It provides
14853 basic syntax highlighting and indentation.")
14854 (license license:gpl3+)))
14856 (define-public emacs-danneskjold-theme
14857 (let* ((commit "e4d1f2c76245fe9d0d07133a841e789d139df28d")
14860 (name "emacs-danneskjold-theme")
14861 (version (git-version "0.0.0" revision commit))
14865 (uri (git-reference
14866 (url "https://github.com/rails-to-cosmos/danneskjold-theme")
14868 (file-name (git-file-name name version))
14870 (base32 "1ii3cgf4hlclwaraisxksv98mmhajx517i60p1cgd7vapznn2b6v"))))
14871 (build-system emacs-build-system)
14874 (modify-phases %standard-phases
14875 (add-after 'unpack 'delete-screenshots
14877 (delete-file-recursively "screenshots"))))))
14878 (home-page "https://github.com/rails-to-cosmos/danneskjold-theme")
14879 (synopsis "High-contrast Emacs theme")
14881 "@code{danneskjold-theme} is a high-contrast theme for Emacs.")
14882 (license license:gpl3+))))
14884 (define-public emacs-dream-theme
14885 (let* ((commit "107a11d74365046f28a1802a2bdb5e69e4a7488b")
14888 (name "emacs-dream-theme")
14889 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
14893 (uri (git-reference
14894 (url "https://github.com/djcb/dream-theme")
14896 (file-name (git-file-name name version))
14899 "0za18nfkq4xqm35k6006vsixcbmvmxqgma4iw5sw37h8vmcsdylk"))))
14900 (build-system emacs-build-system)
14901 (home-page "https://github.com/djcb/dream-theme")
14902 (synopsis "High-contrast Emacs theme")
14904 "@code{dream-theme} is a dark, clean theme for Emacs. It is inspired
14905 by zenburn, sinburn and similar themes, but slowly diverging from them.")
14906 (license license:gpl3+))))
14908 (define-public emacs-dracula-theme
14910 (name "emacs-dracula-theme")
14915 (uri (git-reference
14916 (url "https://github.com/dracula/emacs")
14917 (commit (string-append "v" version))))
14918 (file-name (git-file-name name version))
14920 (base32 "15y2djc5jljlvls1x9kp50m1kp0dcksmyixafsyimj66xpq9ngh0"))))
14921 (build-system emacs-build-system)
14922 (home-page "https://draculatheme.com/")
14923 (synopsis "Dark theme for Emacs")
14925 "Dracula is a dark color theme for many editors, shells and more. This
14926 package provides the Emacs theme.")
14927 (license license:expat)))
14929 (define-public emacs-auto-complete
14931 (name "emacs-auto-complete")
14936 (uri (git-reference
14937 (url "https://github.com/auto-complete/auto-complete")
14938 (commit (string-append "v" version))))
14941 "04i9b11iksg6acn885wl3qgi5xpsm3yszlqmd2x21yhprndlz7gb"))
14942 (file-name (git-file-name name version))))
14943 (build-system emacs-build-system)
14945 (list emacs-popup))
14946 (home-page "https://github.com/auto-complete/auto-complete")
14947 (synopsis "Intelligent auto-completion extension for Emacs")
14949 "Auto-Complete is an intelligent auto-completion extension for Emacs.
14950 It extends the standard Emacs completion interface and provides an environment
14951 that allows users to concentrate more on their own work. Its features are:
14952 a visual interface, reduce overhead of completion by using statistic method,
14954 (license license:gpl3+)))
14956 (define-public emacs-autocrypt
14957 (let ((commit "5b55f8d37545e9c441788627c17e350d7edf4055")
14960 (name "emacs-autocrypt")
14961 (version (git-version "0.4.0" revision commit))
14964 (uri (git-reference
14965 (url "https://git.sr.ht/~pkal/autocrypt")
14967 (file-name (git-file-name name version))
14970 "0b06xnjkgwjpxl96mdi674pmvdaiwncifi1a30wxhl1dwr7kr084"))))
14971 (build-system emacs-build-system)
14972 (home-page "https://git.sr.ht/~pkal/autocrypt")
14973 (synopsis "Autocrypt implementation for Emacs")
14974 (description "@code{emacs-autocrypt} is an implementation of
14975 Autocrypt (@url{https://autocrypt.org/}) for various Emacs MUAs. Autocrypt is
14976 a cryptographic protocol for email clients aiming to simplify key exchange and
14979 Run @code{M-x autocrypt-create-account} to initialize an autocrypt key, and
14980 add @code{autocrypt-mode} to your MUA's hooks (@code{gnus-mode-hook},
14981 @code{message-mode-hook}, ...) to activate its usage.")
14982 (license license:cc0))))
14984 (define-public emacs-nginx-mode
14986 (name "emacs-nginx-mode")
14991 (uri (git-reference
14992 (url "https://github.com/ajc/nginx-mode")
14993 (commit (string-append "v" version))))
14994 (file-name (git-file-name name version))
14996 (base32 "17dh5pr3gh6adrbqx588gimxbb2fr7iv2qrxv6r48w2727l344xs"))))
14997 (build-system emacs-build-system)
14998 (home-page "https://github.com/ajc/nginx-mode")
14999 (synopsis "Emacs major mode for editing nginx config files")
15000 (description "This package provides an Emacs major mode for
15001 editing nginx config files.")
15002 (license license:gpl2+)))
15004 (define-public emacs-stream
15006 (name "emacs-stream")
15011 (uri (string-append "https://elpa.gnu.org/packages/"
15012 "stream-" version ".tar"))
15014 (base32 "00c3n4gyxzv7vczqms0d62kl8zsmjfyxa92mwxn2snyx857a9jfw"))))
15015 (build-system emacs-build-system)
15016 (home-page "http://elpa.gnu.org/packages/stream.html")
15017 (synopsis "Implementation of streams for Emacs")
15018 (description "This library provides an implementation of streams for Emacs.
15019 Streams are implemented as delayed evaluation of cons cells.")
15020 (license license:gpl3+)))
15022 (define-public emacs-cl-print
15023 (let ((commit "1a70c553dfb04352afb5b8696fe0cef8acc8f991")
15026 (name "emacs-cl-print")
15027 (version (git-version "1.0" revision commit))
15031 (uri (git-reference
15032 (url "https://github.com/emacsmirror/cl-print")
15034 (file-name (git-file-name name version))
15036 (base32 "164zbnsi5mssvcpy0158fm7fw5cmd1r5nkpn29fmd2b2scy3gm79"))))
15037 (build-system emacs-build-system)
15038 (home-page "https://github.com/emacsmirror/cl-print")
15039 (synopsis "CL-style generic printing")
15040 (description "This package provides a generic function,
15041 @code{cl-print-object}, to which the programmer can add any method they
15043 (license license:gpl3+))))
15045 (define-public emacs-el-search
15046 (let ((commit "07bed84dd8ae9e4c6c648834224b1d33fdbd51e0")
15049 (name "emacs-el-search")
15050 (version (git-version "1.12.6.1" revision commit))
15054 (uri (git-reference
15055 (url "https://github.com/emacsmirror/el-search")
15057 (file-name (git-file-name name version))
15059 (base32 "10w1ldgijdhfsrazp0y3bm76jv5wvdn94k1yp0pmc2m1896b58ak"))))
15060 (build-system emacs-build-system)
15062 (list emacs-stream emacs-cl-print))
15063 (home-page "https://github.com/emacsmirror/el-search")
15064 (synopsis "Expression based interactive search for emacs-lisp-mode")
15065 (description "This package provides expression based interactive search
15066 procedures for emacs-lisp-mode.")
15067 (license license:gpl3+))))
15069 (define-public emacs-ht
15076 (uri (git-reference
15077 (url "https://github.com/Wilfred/ht.el")
15079 (file-name (git-file-name name version))
15081 (base32 "0can9v336lgnq0q2ha3js0565jzp3dlwwqxhcbx5swk5kp148f07"))))
15082 (build-system emacs-build-system)
15083 (propagated-inputs (list emacs-dash))
15085 (list emacs-ert-runner))
15088 #:test-command '("ert-runner")))
15089 (home-page "https://github.com/Wilfred/ht.el")
15090 (synopsis "Hash table library for Emacs")
15092 "This package simplifies the use of hash tables in elisp. It also
15093 provides functions to convert hash tables from and to alists and plists.")
15094 (license license:gpl3+)))
15096 (define-public emacs-log4e
15098 (name "emacs-log4e")
15103 (uri (git-reference
15104 (url "https://github.com/aki2o/log4e")
15105 (commit (string-append "v" version))))
15106 (file-name (git-file-name name version))
15108 (base32 "0dbnks76v05allzkhx9zmyqpn6sk5376n8k2rbpnaw6gmz1ib2fv"))))
15109 (build-system emacs-build-system)
15112 (modify-phases %standard-phases
15113 (add-after 'unpack 'remove-tests
15114 ;; Guile builder complains about null characters in some
15115 ;; strings of test files. Remove "test" directory (it is not
15118 (delete-file-recursively "test"))))))
15119 (home-page "https://github.com/aki2o/log4e")
15120 (synopsis "Logging framework for elisp")
15122 "This package provides a logging framework for elisp. It allows
15123 you to deal with multiple log levels.")
15124 (license license:gpl3+)))
15126 (define-public emacs-denote
15128 (name "emacs-denote")
15133 (uri (git-reference
15134 (url "https://git.sr.ht/~protesilaos/denote")
15136 (file-name (git-file-name name version))
15138 (base32 "0cglzccbqpcppb9s3phhszskkxp2wd0582jv85qhawxabfzyzkj3"))))
15139 (build-system emacs-build-system)
15140 (native-inputs (list texinfo))
15141 (home-page "https://protesilaos.com/emacs/denote/")
15142 (synopsis "Simple notes for Emacs")
15144 "Denote is a simple note-taking tool for Emacs. It is based on the idea that
15145 notes should follow a predictable and descriptive file-naming scheme. The
15146 file name must offer a clear indication of what the note is about, without
15147 reference to any other metadata. Denote basically streamlines the creation of
15148 such files while providing facilities to link between them.")
15149 (license license:gpl3+)))
15151 (define-public emacs-logos
15152 ;; XXX: Upstream did not tag latest release. Use the commit matching
15154 (let ((commit "d8f18f74591ffcac6466409ac7cd29f90838b2fe"))
15156 (name "emacs-logos")
15160 (uri (git-reference
15161 (url "https://git.sr.ht/~protesilaos/logos")
15163 (file-name (git-file-name name version))
15166 "0g3jxzwv99wkxlb36j2nyjibayvwjpy7qc2mz9lfd2945q6apj3z"))))
15167 (native-inputs (list texinfo))
15168 (build-system emacs-build-system)
15172 #~(modify-phases %standard-phases
15173 (add-after 'install 'makeinfo
15174 (lambda* (#:key outputs #:allow-other-keys)
15177 "--eval=(require 'ox-texinfo)"
15178 "--eval=(find-file \"README.org\")"
15179 "--eval=(org-texinfo-export-to-info)")
15180 (install-file "logos.info" (string-append #$output "/share/info")))))))
15181 (home-page "https://protesilaos.com/emacs/logos")
15182 (synopsis "Simple focus mode for Emacs")
15183 (description "This package provides a simple focus mode which can be
15184 applied to any buffer for reading, writing, or even doing a presentation. The
15185 buffer can be divided in pages using the @code{page-delimiter}, outline
15186 structure, or any other pattern.")
15187 (license (list license:gpl3+
15188 license:fdl1.3+))))) ; GFDLv1.3+ for the manual
15190 (define-public emacs-tmr
15197 (uri (git-reference
15198 (url "https://git.sr.ht/~protesilaos/tmr")
15200 (file-name (git-file-name name version))
15202 (base32 "1vz9zfqap221baiy41wpxph33g6h2plnanzgpjs0wk8dz1fpwfky"))))
15203 (build-system emacs-build-system)
15207 #~(modify-phases %standard-phases
15208 (add-after 'unpack 'patch-paths
15209 (lambda* (#:key inputs #:allow-other-keys)
15210 (let ((ffplay (search-input-file inputs "/bin/ffplay")))
15211 (substitute* "tmr.el"
15213 (string-append "\"" ffplay " "))))
15214 (emacs-substitute-variables "tmr.el"
15218 "share/sounds/freedesktop/stereo/alarm-clock-elapsed.oga")))))
15219 (add-after 'install 'makeinfo
15223 "--eval=(require 'ox-texinfo)"
15224 "--eval=(find-file \"README.org\")"
15225 "--eval=(org-texinfo-export-to-info)")
15226 (install-file "tmr.info"
15227 (string-append #$output "/share/info")))))))
15228 (native-inputs (list texinfo))
15229 (inputs (list ffmpeg sound-theme-freedesktop))
15230 (home-page "https://protesilaos.com/emacs/tmr/")
15231 (synopsis "Set timers using a convenient notation")
15233 "TMR is an Emacs package that provides facilities for setting timers
15234 using a convenient notation.")
15235 (license (list license:gpl3+
15236 license:fdl1.3+)))) ;GFDLv1.3+ for the manual
15238 (define-public emacs-gn-mode
15240 (name "emacs-gn-mode")
15245 (uri (git-reference
15246 (url "https://github.com/lashtear/gn-mode")
15248 (file-name (git-file-name name version))
15250 (base32 "0dz5kgzbgsssr38z2kg6m915cvfys42ag1k42bsra3la2pixywfx"))))
15251 (build-system emacs-build-system)
15252 (home-page "https://github.com/lashtear/gn-mode")
15253 (synopsis "Emacs major mode for editing GN (ninja generator) config files")
15255 "GN mode is a major mode for editing @acronym{GN,Ninja Generator} config
15256 files in Emacs. Files of this type (e.g., @file{BUILD.gn} or @file{*.gni})
15257 are common in Chromium-derived projects.")
15258 (license license:bsd-3)))
15260 (define-public emacs-drag-stuff
15262 (name "emacs-drag-stuff")
15267 (uri (git-reference
15268 (url "https://github.com/rejeep/drag-stuff")
15269 (commit (string-append "v" version))))
15270 (file-name (git-file-name name version))
15272 (base32 "1jrr59iazih3imkl9ja1lbni9v3xv6b8gmqs015g2mxhlql35jka"))))
15273 (build-system emacs-build-system)
15274 (home-page "https://github.com/rejeep/drag-stuff")
15275 (synopsis "Drag stuff around in Emacs")
15277 "Drag Stuff is a minor mode for Emacs that makes it possible to drag
15278 stuff (words, region, lines) around in Emacs.")
15279 (license license:gpl3+)))
15281 (define-public emacs-bazel
15282 ;; From 2021-11-21.
15283 ;; No releases available.
15284 (let ((commit "cdb2643dba39fe2bd64ba3b190b94d1ef1d83b18")
15287 (name "emacs-bazel")
15288 (version (git-version "0" revision commit))
15291 (uri (git-reference
15292 (url "https://github.com/bazelbuild/emacs-bazel-mode")
15294 (file-name (git-file-name name version))
15296 (base32 "0ln06dprnivx9zxm6n23ppyx7x4kbn0f85pxwvkq32aq7wnqz82m"))))
15297 (build-system emacs-build-system)
15298 (home-page "https://github.com/bazelbuild/emacs-bazel-mode")
15299 (synopsis "Bazel support for Emacs")
15301 "This package provides support for the Bazel build system. See
15302 @uref{https://bazel.build/} for background on Bazel.")
15303 (license license:asl2.0))))
15305 (define-public emacs-clue
15306 ;; There are no releases so far.
15307 (let ((commit "41895da52cf76f964d97cb8204406ab9828c4839")
15310 (name "emacs-clue")
15311 (version (git-version "0" revision commit))
15314 (uri (git-reference
15315 (url "https://github.com/AmaiKinono/clue")
15317 (file-name (git-file-name name version))
15319 (base32 "08xpdpac82v5vwqqqgbh5imakl4pys6bpfacfk05pk88lw925ql8"))))
15320 (build-system emacs-build-system)
15321 (home-page "https://github.com/AmaiKinono/clue/")
15322 (synopsis "Connecting clues while reading code")
15324 "Clue is a tool for helping you take notes while reading code.
15326 Code reading is all about finding connections between different locations in
15327 a project. With Clue, you can take notes about these connections in plain
15328 text (or your favorite markup language), and insert links to take you to these
15330 (license license:gpl3+))))
15332 (define-public emacs-gntp
15334 (name "emacs-gntp")
15339 (uri (git-reference
15340 (url "https://github.com/tekai/gntp.el")
15341 (commit (string-append "v" version))))
15342 (file-name (git-file-name name version))
15344 (base32 "1nvyjjjydrimpxy4cpg90si7sr8lmldbhlcm2mx8npklp9pn5y3a"))))
15345 (build-system emacs-build-system)
15346 (home-page "https://github.com/tekai/gntp.el")
15347 (synopsis "Growl Notification Protocol for Emacs")
15349 "This package implements the Growl Notification Protocol GNTP
15350 described at @uref{http://www.growlforwindows.com/gfw/help/gntp.aspx}.
15351 It is incomplete as it only lets you send but not receive
15353 (license license:bsd-3)))
15355 (define-public emacs-alert
15357 (name "emacs-alert")
15362 (uri (git-reference
15363 (url "https://github.com/jwiegley/alert")
15364 (commit (string-append "v" version))))
15365 (file-name (git-file-name name version))
15367 (base32 "0lc0p5cl4hfrzw1z2ghb11k1lvljn5m08jw5fmgwgxv667kwh49r"))))
15368 (build-system emacs-build-system)
15370 (list emacs-gntp emacs-log4e))
15371 (home-page "https://github.com/jwiegley/alert")
15372 (synopsis "Growl-style notification system for Emacs")
15374 "Alert is a Growl-workalike for Emacs which uses a common notification
15375 interface and multiple, selectable \"styles\", whose use is fully
15376 customizable by the user.")
15377 (license license:gpl2+)))
15379 (define-public emacs-zones
15381 (name "emacs-zones")
15382 (version "2019.7.13")
15386 (uri (string-append "https://elpa.gnu.org/packages/"
15387 "zones-" version ".el"))
15389 (base32 "0qp1ba2pkqx9d35g7z8hf8qs2k455krf2a92l4rka3ipsbnmq5k1"))))
15390 (build-system emacs-build-system)
15391 (home-page "https://www.emacswiki.org/emacs/Zones")
15392 (synopsis "Define and act on multiple zones of buffer text")
15394 "Library @file{zones.el} lets you easily define and subsequently act on
15395 multiple zones of buffer text. You can think of this as enlarging the notion
15396 of region. In effect, it can remove the requirement of target text being
15397 a contiguous sequence of characters. A set of buffer zones is, in effect,
15398 a (typically) noncontiguous set of text.")
15399 (license license:gpl3+)))
15401 (define-public emacs-mu4e-alert
15403 (name "emacs-mu4e-alert")
15408 (uri (git-reference
15409 (url "https://github.com/iqbalansari/mu4e-alert")
15410 (commit (string-append "v" version))))
15411 (file-name (git-file-name name version))
15413 (base32 "1nvsfbfsma59ilf7c3vjngnmx3aapwvvvaafdy5szm5r6lkicqvg"))))
15414 (build-system emacs-build-system)
15416 (list emacs-alert emacs-s emacs-ht mu))
15417 (home-page "https://github.com/iqbalansari/mu4e-alert")
15418 (synopsis "Desktop notification for mu4e")
15420 "This package provides desktop notifications for mu4e.
15421 Additionally it can display the number of unread emails in the
15423 (license license:gpl3+)))
15425 (define-public emacs-mu4e-jump-to-list
15426 (let ((commit "358bba003543b49ffa266e503e54aebd0ebe614b")
15429 (name "emacs-mu4e-jump-to-list")
15430 (version (git-version "1.0" revision commit))
15434 (uri (git-reference
15435 (url "https://gitlab.com/wavexx/mu4e-jump-to-list.el.git")
15437 (file-name (git-file-name name version))
15440 "00y9nap61q1z2cdql4k9g7fgi2gdgd9iy5s5lzrd9a4agbx6r7sv"))))
15441 (build-system emacs-build-system)
15444 (home-page "https://gitlab.com/wavexx/mu4e-jump-to-list.el")
15445 (synopsis "Select and view mailing lists in mu4e")
15447 "@code{mu4e-jump-to-list} allows you to select and view mailing lists
15448 automatically using existing List-ID headers in your mu database. Just press
15449 \"l\" in the headers view and any mailing list you've subscribed to will be
15450 automatically discovered and presented in recency order.")
15451 (license license:gpl3+))))
15453 (define-public emacs-url-scgi
15455 (name "emacs-url-scgi")
15459 (uri (string-append "https://elpa.gnu.org/packages/"
15460 "url-scgi-" version ".tar"))
15463 "1837vyamwk5mp2nf3k477hyr5pq1xy6p7br7kl6h2k8jmxqy3mlj"))))
15464 (build-system emacs-build-system)
15465 (home-page "https://github.com/skangas/url-scgi/")
15466 (synopsis "SCGI support for url.el")
15468 "This library add support for SCGI URLs to Emacs. It is based on url.el,
15469 which is shipped with Emacs.")
15470 (license license:gpl3+)))
15472 (define-public emacs-mentor
15474 (name "emacs-mentor")
15479 (uri (string-append "https://elpa.nongnu.org/nongnu/mentor-"
15483 "1kkzm881fxhc5hb83x0j12lv22b72nzw45qrypbl1jf2siispz9l"))))
15484 (build-system emacs-build-system)
15486 (list emacs-async emacs-url-scgi emacs-xml-rpc))
15487 (home-page "https://elpa.nongnu.org/nongnu/mentor.html")
15488 (synopsis "Emacs front-end for the rTorrent bittorrent client")
15490 "Mentor is a GNU Emacs frontend for the rTorrent bittorrent client.
15492 By default, it will start and run rTorrent from within Emacs but can also be
15493 configured to use an external rTorrent instance over XML-RPC.
15495 This project aims to provide a feature complete and customizable interface,
15496 that will feel familiar to Emacs users. Key bindings are chosen to be as
15497 close to the vanilla rTorrent curses interface as possible.")
15498 (license license:gpl3+)))
15500 (define-public emacs-message-view-patch
15501 (let ((commit "40bc2e554fc1d0b6f0c403192c0a3ceaa019a78d")
15504 (name "emacs-message-view-patch")
15505 (version (git-version "0.2.0" revision commit))
15508 (uri (git-reference
15509 (url "https://github.com/seanfarley/message-view-patch")
15511 (file-name (git-file-name name version))
15514 "0cmkiggrl42sjx31dwnzac32bs3q2ksmamkq1pjjl8fwshp4g8sv"))))
15515 (build-system emacs-build-system)
15516 (inputs (list emacs-magit))
15517 (home-page "https://github.com/seanfarley/message-view-patch")
15518 (synopsis "Colorize patch-like emails in mu4e or gnus")
15520 "Extension for mu4e or gnus to colorize patch-like emails with diff-mode.
15521 This is based on Frank Terbeck's @code{gnus-article-treat-patch.el} but has
15522 been adapted to also work with mu4e.")
15523 (license license:gpl3+))))
15525 (define-public emacs-mu4e-patch
15526 (deprecated-package "emacs-mu4e-patch" emacs-message-view-patch))
15528 (define-public emacs-pretty-mode
15530 (name "emacs-pretty-mode")
15535 (uri (git-reference
15536 (url "https://github.com/akatov/pretty-mode/")
15538 (file-name (git-file-name name version))
15541 "013fig9i4fyx16krp2vfv953p3rwdzr38zs6i50af4pqz4vrcfvh"))))
15542 (build-system emacs-build-system)
15543 (home-page "https://github.com/akatov/pretty-mode")
15544 (synopsis "Redisplay parts of the buffer as Unicode symbols")
15546 "Emacs minor mode for redisplaying parts of the buffer as pretty symbols.")
15547 (license license:gpl3+)))
15549 (define-public emacs-tempel
15551 (name "emacs-tempel")
15555 (uri (git-reference
15556 (url "https://github.com/minad/tempel")
15558 (file-name (git-file-name name version))
15561 "1jgsjhrfdd72a0na4s1qp8yc24mbgrpxkv8yqac0vgqipg98cdg6"))))
15562 (build-system emacs-build-system)
15563 (home-page "https://github.com/minad/tempel")
15564 (synopsis "Simple templates for Emacs")
15566 "Tempel is a tiny template package for Emacs, which uses the syntax of
15567 the Emacs Tempo library. You may also write your templates in Lisp.")
15568 (license license:gpl3+)))
15570 (define-public emacs-tempel-collection
15571 (let ((commit "cd9529b2a2fdfd49010117d2a1fc49adf9725051")
15574 (name "emacs-tempel-collection")
15575 (version (git-version "0.1" revision commit))
15578 (uri (git-reference
15579 (url "https://github.com/Crandel/tempel-collection")
15581 (file-name (git-file-name name version))
15584 "02x6jq5k7fa46ni64qf8wrmkay6zfbmkildb727zs6wchmyg2znn"))))
15585 (build-system emacs-build-system)
15586 (propagated-inputs (list emacs-tempel))
15587 (home-page "https://github.com/Crandel/tempel-collection")
15588 (synopsis "Collection of TempEl templates")
15589 (description "This package provides a collection of templates for
15590 the Emacs TempEl package.")
15591 (license license:gpl3+))))
15593 (define-public emacs-yasnippet
15595 (name "emacs-yasnippet")
15600 (uri (git-reference
15601 (url "https://github.com/joaotavora/yasnippet")
15603 (file-name (git-file-name name version))
15605 (base32 "0via9dzw8m5lzymg1h78xkwjssh39zr3g6ccyamlf1rjzjsyxknv"))
15607 (search-patches "emacs-yasnippet-fix-tests.patch"))))
15608 (build-system emacs-build-system)
15611 #:test-command '("emacs" "--batch"
15612 "-l" "yasnippet-tests.el"
15613 "-f" "ert-run-tests-batch-and-exit")
15615 (modify-phases %standard-phases
15616 ;; Set HOME, otherwise test-rebindings fails.
15617 (add-before 'check 'set-home
15619 (setenv "HOME" (getcwd))
15621 (home-page "https://github.com/joaotavora/yasnippet")
15622 (synopsis "Yet another snippet extension for Emacs")
15623 (description "YASnippet is a template system for Emacs. It allows you to
15624 type an abbreviation and automatically expand it into function templates.")
15625 (license license:gpl3+)))
15627 (define-public emacs-yasnippet-snippets
15629 (name "emacs-yasnippet-snippets")
15634 (uri (git-reference
15635 (url "https://github.com/AndreaCrotti/yasnippet-snippets")
15637 (file-name (git-file-name name version))
15639 (base32 "0m78jxhjyf4212ig2ncxr6bhhd6yx4c3nc8x4ylamzq21x4fl21r"))))
15640 (build-system emacs-build-system)
15642 `(#:include (cons* "^snippets\\/" %default-include)))
15644 (list emacs-yasnippet))
15645 (home-page "https://github.com/AndreaCrotti/yasnippet-snippets")
15646 (synopsis "Collection of YASnippet snippets for many languages")
15647 (description "This package provides an extensive collection of YASnippet
15648 snippets. When this package is installed, the extra snippets it provides are
15649 automatically made available to YASnippet.")
15650 (license license:gpl3+)))
15652 (define-public emacs-doom-snippets
15653 ;; Use the latest commit, as there are no tagged releases. Version is
15654 ;; extracted from main file.
15655 (let ((release "1.1.0")
15657 (commit "bc613f448eed1bd363e61c41691a61e9fd139534"))
15659 (name "emacs-doom-snippets")
15660 (version (git-version release revision commit))
15664 (uri (git-reference
15665 (url "https://github.com/hlissner/doom-snippets")
15667 (file-name (git-file-name name version))
15669 (base32 "0n4b2pr0gpn8vb2n1rckdq4jk9sj995a62yxk6z2ygw5ad7pkj8f"))))
15670 (build-system emacs-build-system)
15672 `(#:include (cons* "^.*\\/" %default-include)))
15674 (list emacs-yasnippet))
15675 (home-page "https://github.com/hlissner/doom-snippets")
15676 (synopsis "Doom Emacs' snippet library")
15678 "This package provides Yasnippets snippets for Doom Emacs. It also
15679 exposes a small API to assist in writing your own snippets.")
15680 (license license:expat))))
15682 (define-public emacs-helm-c-yasnippet
15683 (let ((commit "65ca732b510bfc31636708aebcfe4d2d845b59b0")
15686 (name "emacs-helm-c-yasnippet")
15687 (version (string-append "0.6.7" "-" revision "."
15688 (string-take commit 7)))
15691 (uri (git-reference
15692 (url "https://github.com/emacs-jp/helm-c-yasnippet")
15694 (file-name (git-file-name name version))
15697 "1cbafjqlzxbg19xfdqsinsh7afq58gkf44rsg1qxfgm8g6zhr7f8"))))
15698 (build-system emacs-build-system)
15700 (list emacs-helm emacs-yasnippet))
15701 (home-page "https://github.com/emacs-jp/helm-c-yasnippet")
15702 (synopsis "Helm integration for Yasnippet")
15703 (description "This Emacs library provides Helm interface for
15705 (license license:gpl2+))))
15707 (define-public emacs-helm-system-packages
15709 (name "emacs-helm-system-packages")
15713 (uri (git-reference
15714 (url "https://github.com/emacs-helm/helm-system-packages")
15715 (commit (string-append "v" version))))
15716 (file-name (git-file-name name version))
15719 "13a8jpj4wwm0yjv8hnsizgjf8wi3r2ap87lyvw7g4c7snp2dydwa"))))
15720 (build-system emacs-build-system)
15727 (modify-phases %standard-phases
15728 (add-after 'unpack 'configure
15729 (lambda* (#:key inputs outputs #:allow-other-keys)
15730 (let ((recutils (assoc-ref inputs "recutils")))
15731 ;; Specify the absolute file names of the various
15732 ;; programs so that everything works out-of-the-box.
15733 (substitute* "helm-system-packages-guix.el"
15734 (("recsel") (string-append recutils "/bin/recsel")))))))))
15735 (home-page "https://github.com/emacs-helm/helm-system-packages")
15736 (synopsis "Helm System Packages is an interface to your package manager")
15737 (description "List all available packages in Helm (with installed
15738 packages displayed in their own respective face). Fuzzy-search, mark and
15739 execute the desired action over any selections of packages: Install,
15740 uninstall, display packages details (in Org Mode) or insert details at point,
15741 find files owned by packages... And much more, including performing all the
15742 above over the network.")
15743 (license license:gpl3+)))
15745 (define-public emacs-helm-org-rifle
15747 (name "emacs-helm-org-rifle")
15752 (uri (git-reference
15753 (url "https://github.com/alphapapa/helm-org-rifle")
15755 (file-name (git-file-name name version))
15758 "0pm6va26kadjvbai4qsnjc2bk379w2nk6h3b5f0c2yv3q5na0p49"))))
15759 (build-system emacs-build-system)
15761 (list emacs-dash emacs-f emacs-helm emacs-org emacs-s))
15762 (home-page "https://github.com/alphapapa/helm-org-rifle")
15763 (synopsis "Rifle through Org files")
15764 (description "This package searches both headings and contents of entries
15765 in Org buffers and displays matching entries.")
15766 (license license:gpl3+)))
15768 (define-public emacs-dired-git-info
15769 ;; Upstream has no proper release. The base version is extracted from the
15770 ;; "Version" keyword in the main file.
15771 (let ((commit "91d57e3a4c5104c66a3abc18e281ee55e8979176")
15774 (name "emacs-dired-git-info")
15775 (version (git-version "0.3.1" revision commit))
15781 (url "https://github.com/clemera/dired-git-info")
15783 (file-name (git-file-name name version))
15785 (base32 "1dr4iv95s4barxxj56znqkl9z0lg5jw731jmjr01s6vn8ar69gik"))))
15786 (build-system emacs-build-system)
15787 (home-page "https://github.com/clemera/dired-git-info/")
15788 (synopsis "Show git info in Emacs Dired")
15789 (description "This Emacs package provides a minor mode which shows git
15790 information inside the Dired buffer.")
15791 (license license:gpl3+))))
15793 (define-public emacs-dired-toggle-sudo
15794 (let ((commit "13bbe52c54893f5aa3e56228450ffdd0c9e1d169")
15797 (name "emacs-dired-toggle-sudo")
15798 (version (git-version "1.0" revision commit))
15802 (uri (git-reference
15803 (url "https://github.com/renard/dired-toggle-sudo")
15805 (file-name (git-file-name name version))
15808 "1fw1pb1z6krqd1pfxxhr6rrfr9ckkcb0zsjzbjk0i2i1q5cg6car"))))
15809 (build-system emacs-build-system)
15810 (home-page "https://github.com/renard/dired-toggle-sudo")
15811 (synopsis "Browse directory with @code{sudo} privileges")
15812 (description "This package allows for the use of @code{dired} with
15813 @code{sudo} privileges.")
15814 (license license:wtfpl2))))
15816 (define-public emacs-diredfl
15818 (name "emacs-diredfl")
15825 (url "https://github.com/purcell/diredfl")
15827 (file-name (git-file-name name version))
15829 (base32 "1zb2lz7rp58zqvpniqcsmqabi7nqg2d8bfd0hgmq68bn2hd25b5z"))))
15830 (build-system emacs-build-system)
15831 (home-page "https://github.com/purcell/diredfl/")
15832 (synopsis "Extra Emacs font lock rules for a more colourful Dired")
15833 (description "This library enables additional font locking in Dired mode.
15834 This is adapted from the extra font lock rules provided by Drew Adams' Dired+
15836 (license license:gpl3+)))
15838 (define-public emacs-memoize
15840 (name "emacs-memoize")
15845 (uri (git-reference
15846 (url "https://github.com/skeeto/emacs-memoize")
15848 (file-name (git-file-name name version))
15850 (base32 "04qgnlg4x6va7x364dhj1wbjmz8p5iq2vk36mn9198k2vxmijwzk"))))
15851 (build-system emacs-build-system)
15854 #:test-command '("emacs" "--batch"
15855 "-l" "memoize-test.el"
15856 "-f" "ert-run-tests-batch-and-exit")))
15857 (home-page "https://github.com/skeeto/emacs-memoize")
15858 (synopsis "Emacs lisp memoization library")
15859 (description "@code{emacs-memoize} is an Emacs library for
15860 memoizing functions.")
15861 (license license:unlicense)))
15863 (define-public emacs-linum-relative
15865 (name "emacs-linum-relative")
15870 (uri (git-reference
15871 (url "https://github.com/coldnew/linum-relative")
15873 (file-name (git-file-name name version))
15875 (base32 "0b3n1gk2w1p72x0zfdz9l70winq2fnjpjrgq0awxx730xk7ypp5n"))))
15876 (build-system emacs-build-system)
15877 (home-page "https://github.com/coldnew/linum-relative")
15878 (synopsis "Relative line numbering for Emacs")
15879 (description "@code{emacs-linum-relative} displays the relative line
15880 number on the left margin in Emacs.")
15881 (license license:gpl2+)))
15883 (define-public emacs-lin
15889 (uri (git-reference
15890 (url "https://git.sr.ht/~protesilaos/lin")
15892 (file-name (git-file-name name version))
15895 "0bbxm2ndp6hcpdiv34dl9smgx5l0m4pdzm7csp283f6q9kwwdf3v"))))
15896 (native-inputs (list texinfo))
15897 (build-system emacs-build-system)
15901 #~(modify-phases %standard-phases
15902 (add-after 'install 'makeinfo
15906 "--eval=(require 'ox-texinfo)"
15907 "--eval=(find-file \"README.org\")"
15908 "--eval=(org-texinfo-export-to-info)")
15909 (install-file "lin.info" (string-append #$output "/share/info")))))))
15910 (home-page "https://protesilaos.com/emacs/lin")
15911 (synopsis "Make @command{hl-line-mode} more suitable for selection UIs")
15912 (description "Lin is a stylistic enhancement for Emacs’ built-in
15913 @command{hl-line-mode}. It remaps the hl-line face (or equivalent)
15914 buffer-locally to a style that is optimal for major modes where line selection
15915 is the primary mode of interaction.")
15916 (license (list license:gpl3+
15917 license:fdl1.3+)))) ; GFDLv1.3+ for the manual
15919 (define-public emacs-idle-highlight
15921 (name "emacs-idle-highlight")
15926 (uri (git-reference
15927 (url "https://github.com/nonsequitur/idle-highlight-mode")
15929 (file-name (git-file-name name version))
15931 (base32 "0x4w1ksrw7dicl84zpf4d4scg672dyan9g95jkn6zvri0lr8xciv"))))
15932 (build-system emacs-build-system)
15933 (home-page "https://www.emacswiki.org/emacs/IdleHighlight")
15934 (synopsis "Highlights all occurrences of the word the point is on")
15936 "This Emacs package provides @code{idle-highlight-mode} that sets
15937 an idle timer to highlight all occurrences in the buffer of the word under
15939 (license license:gpl3+)))
15941 (define-public emacs-ox-twbs
15943 (name "emacs-ox-twbs")
15948 (uri (git-reference
15949 (url "https://github.com/marsmining/ox-twbs")
15950 (commit (string-append "v" version))))
15951 (file-name (git-file-name name version))
15953 (base32 "0nffy7ivs8fw0dj3s66hbsby0riz5wrv7xzm8g9mrfvhki938pqa"))))
15954 (build-system emacs-build-system)
15955 (home-page "https://github.com/marsmining/ox-twbs")
15956 (synopsis "Export org-mode docs as HTML compatible with Twitter Bootstrap")
15958 "This Emacs package outputs your org-mode docs with a simple, clean and
15959 modern look. It implements a new HTML back-end for exporting org-mode docs as
15960 HTML compatible with Twitter Bootstrap. By default, HTML is exported with
15961 jQuery and Bootstrap resources included via osscdn.")
15962 (license license:gpl3+)))
15964 (define-public emacs-highlight-sexp
15966 (name "emacs-highlight-sexp")
15971 (uri (git-reference
15972 (url "https://github.com/daimrod/highlight-sexp")
15973 (commit (string-append "v" version))))
15974 (file-name (git-file-name name version))
15976 (base32 "12cyk2q5g6p4ac2hykw1cag7dp1prjjnck5f7nalwwaklmy62y79"))))
15977 (build-system emacs-build-system)
15978 (home-page "https://github.com/daimrod/highlight-sexp")
15979 (synopsis "Minor mode that highlights the s-exp at the current position")
15981 "This Emacs package highlights the s-exp at the current position.")
15982 (license license:gpl3+)))
15984 (define-public emacs-highlight-stages
15985 (let ((commit "29cbc5b78261916da042ddb107420083da49b271")
15988 (name "emacs-highlight-stages")
15989 (version (string-append "1.1.0" "-" revision "." (string-take commit 7)))
15993 (uri (git-reference
15994 (url "https://github.com/zk-phi/highlight-stages")
15996 (file-name (git-file-name name version))
15999 "0r6nbcrr0dqpgm8dir8ahzjy7rw4nrac48byamzrq96r7ajlxlv0"))
16001 (search-patches "emacs-highlight-stages-add-gexp.patch"))))
16002 (build-system emacs-build-system)
16003 (home-page "https://github.com/wigust/highlight-stages")
16004 (synopsis "Minor mode that highlights (quasi-quoted) expressions")
16005 (description "@code{highlight-stages} provides an Emacs minor mode that
16006 highlights quasi-quoted expressions.")
16007 (license license:gpl3+))))
16009 (define-public emacspeak
16016 (uri (string-append
16017 "https://github.com/tvraman/emacspeak/releases/download/"
16018 version "/emacspeak-" version ".tar.bz2"))
16020 (base32 "0lasj4ggsh93ingf46n16wxfx5zzxvr1igikbmdqlz3i99j331gs"))))
16021 (build-system gnu-build-system)
16024 #:make-flags #~(list (string-append "prefix=" #$output))
16026 #~(modify-phases %standard-phases
16027 (replace 'configure
16028 (lambda* (#:key inputs outputs #:allow-other-keys)
16029 (setenv "SHELL" (which "sh"))
16030 ;; Ensure the tclespeak.so binary is found in the correct location
16031 ;; by adding the path to the Tclx library to the Tcl $auto_path
16033 (with-fluids ((%default-port-encoding "ISO-8859-1"))
16034 (substitute* "servers/espeak"
16035 (("package require Tclx")
16036 (string-append "set auto_path [linsert $auto_path 0 "
16039 "package require Tclx"))))
16040 ;; Configure Emacspeak according to etc/install.org.
16041 (invoke "make" "config")))
16042 (add-after 'build 'build-espeak
16044 (invoke "make" "espeak")))
16046 (lambda* (#:key inputs outputs #:allow-other-keys)
16047 (let* ((out (assoc-ref outputs "out"))
16048 (bin (string-append out "/bin"))
16049 (lisp (string-append out "/share/emacs/site-lisp/emacspeak"))
16050 (info (string-append out "/share/info"))
16051 (emacs (search-input-file inputs "/bin/emacs")))
16052 ;; According to etc/install.org, the Emacspeak directory should
16053 ;; be copied to its installation destination.
16056 (copy-recursively file (string-append lisp "/" file)))
16057 '("etc" "info" "js" "lisp" "media" "servers" "sounds"
16059 ;; Make sure emacspeak is loaded from the correct directory.
16061 (("\\./lisp/emacspeak-setup.el")
16062 (string-append lisp "/lisp/emacspeak-setup.el")))
16063 ;; Install the convenient startup script.
16065 (copy-file "run" (string-append bin "/emacspeak"))))))
16066 #:tests? #f)) ; no check target
16068 (list emacs espeak-ng perl tcl tclx))
16069 (home-page "http://emacspeak.sourceforge.net")
16070 (synopsis "Audio desktop interface for Emacs")
16072 "Emacspeak is a speech interface that allows visually impaired users to
16073 interact independently and efficiently with the computer. Audio
16074 formatting---a technique pioneered by AsTeR---and full support for W3C's Aural
16075 CSS (ACSS) allows Emacspeak to produce rich aural presentations of electronic
16076 information. By seamlessly blending all aspects of the Internet such as
16077 Web-surfing and messaging, Emacspeak speech-enables local and remote
16078 information via a consistent and well-integrated user interface.")
16079 (license license:gpl2+)))
16081 (define-public emacs-adaptive-wrap
16083 (name "emacs-adaptive-wrap")
16088 (uri (string-append "https://elpa.gnu.org/packages/"
16089 "adaptive-wrap-" version ".tar"))
16091 (base32 "1gs1pqzywvvw4prj63vpj8abh8h14pjky11xfl23pgpk9l3ldrb0"))))
16092 (build-system emacs-build-system)
16093 (home-page "https://elpa.gnu.org/packages/adaptive-wrap.html")
16094 (synopsis "Smart line-wrapping with wrap-prefix")
16096 "This Emacs package provides the @code{adaptive-wrap-prefix-mode}
16097 minor mode which sets the wrap-prefix property on the fly so that
16098 single-long-line paragraphs get word-wrapped in a way similar to what
16099 you'd get with @kbd{M-q} using @code{adaptive-fill-mode}, but without
16100 actually changing the buffer's text.")
16101 (license license:gpl3+)))
16103 (define-public emacs-diff-hl
16104 ;;; XXX: Latest release is not tagged. Use commit matching version bump.
16105 (let ((commit "37b00f3bad841e131d69442a89cbebc3041d996b"))
16107 (name "emacs-diff-hl")
16112 (uri (git-reference
16113 (url "https://github.com/dgutov/diff-hl")
16115 (file-name (git-file-name name version))
16117 (base32 "0s3fcwk6c99n2q25bf0a33lphr9mcrxmvr5wz8qsj86jfbyi1is1"))))
16118 (build-system emacs-build-system)
16119 (home-page "https://github.com/dgutov/diff-hl")
16121 "Highlight uncommitted changes using VC")
16123 "@code{diff-hl-mode} highlights uncommitted changes on the side of the
16124 window (using the fringe, by default), allows you to jump between
16125 the hunks and revert them selectively.")
16126 (license license:gpl3+))))
16128 (define-public emacs-diminish
16129 ;; XXX: Upstream did not tag last release.
16130 (let ((commit "fd486ef76e4c1d8211ae337a43b8bba106d4bca7")
16133 (name "emacs-diminish")
16134 (version (git-version "0.46" revision commit))
16138 (uri (git-reference
16139 (url "https://github.com/myrjola/diminish.el")
16141 (file-name (git-file-name name version))
16143 (base32 "1vlgn7swwfzy6yr880698h3qsmfcqprcb1jvffkzmbvhvf458szf"))))
16144 (build-system emacs-build-system)
16145 (home-page "https://github.com/myrjola/diminish.el")
16146 (synopsis "Diminish minor modes with no modeline display")
16147 (description "@code{emacs-diminish} implements hiding or
16148 abbreviation of the mode line displays (lighters) of minor modes.")
16149 (license license:gpl3+))))
16151 (define-public emacs-use-package
16152 ;; XXX: Upstream did not tag latest release. Using commit matching exact
16154 (let ((commit "942617d26e11d80d879ff23d2a8b477bd074a734"))
16156 (name "emacs-use-package")
16160 (uri (git-reference
16161 (url "https://github.com/jwiegley/use-package")
16163 (file-name (git-file-name name version))
16166 "1zpf9xv65jg813k90x8g9k4lja896nqfh48pjinicmz1rn0rf51a"))))
16167 (build-system emacs-build-system)
16171 #:test-command #~(list "emacs" "--batch"
16172 "-l" "use-package-tests.el"
16173 "-f" "ert-run-tests-batch-and-exit")
16175 #~(modify-phases %standard-phases
16176 (add-before 'install 'install-manual
16178 (let ((info-dir (string-append #$output "/share/info")))
16179 (install-file "use-package.info" info-dir))))
16180 (add-before 'install-manual 'build-manual
16182 (invoke "makeinfo" "use-package.texi"))))))
16186 (list emacs-diminish))
16187 (home-page "https://github.com/jwiegley/use-package")
16188 (synopsis "Declaration for simplifying your .emacs")
16189 (description "The use-package macro allows you to isolate package
16190 configuration in your @file{.emacs} file in a way that is both
16191 performance-oriented and tidy.")
16192 (license license:gpl2+))))
16194 (define-public emacs-leaf
16196 (name "emacs-leaf")
16201 (uri (string-append "https://elpa.gnu.org/packages/"
16202 "leaf-" version ".tar"))
16204 (base32 "1rdbrf84ijapiqhq72gy8r5xgk54sf0jy31pgd3w4rl1wywh5cas"))))
16205 (build-system emacs-build-system)
16206 (home-page "https://github.com/conao3/leaf.el")
16207 (synopsis "Simplify your init.el configuration, extended use-package")
16209 "This package provides macros that allows you to declaratively configure
16210 settings typical of an Elisp package with various keywords. The syntax is
16211 similar, but not identical to use-package -- overall, leaf aims at a cleaner
16212 and more predictable implementation.")
16213 (license license:agpl3+)))
16215 (define-public emacs-strace-mode
16216 (let* ((commit "6a69b4b06db6797af56f33eda5cb28af94e59f11")
16219 (name "emacs-strace-mode")
16220 (version (string-append "0.0.2-" revision "." (string-take commit 7)))
16223 (uri (git-reference
16224 (url "https://github.com/pkmoore/strace-mode")
16226 (file-name (git-file-name name version))
16229 "1lbk2kzdznf2bkfazizfbimaxxzfzv00lrz1ran9dc2zqbc0bj9f"))))
16230 (build-system emacs-build-system)
16231 (home-page "https://github.com/pkmoore/strace-mode")
16232 (synopsis "Emacs major mode to highlight strace outputs")
16233 (description "@code{emacs-strace-mode} provides an Emacs major mode
16234 highlighting strace outputs.")
16235 (license license:gpl3+))))
16237 (define-public emacs-default-encrypt
16239 (name "emacs-default-encrypt")
16244 (uri (string-append
16245 "https://informationelle-selbstbestimmung-im-internet.de"
16246 "/emacs/jl-encrypt" version "/jl-encrypt.el"))
16247 (file-name (string-append "jl-encrypt-" version ".el"))
16250 "0w9ggz075j1zwg7d0rv9k8238g600p7czfnnsnawswi7yps2xk78"))))
16251 (build-system emacs-build-system)
16253 "https://informationelle-selbstbestimmung-im-internet.de/Emacs.html")
16254 (synopsis "Automatically encrypt or sign Gnus messages in Emacs")
16256 "DefaultEncrypt is designed to be used with Gnus in Emacs. It
16257 automatically encrypts messages that you send (e.g., email) when public keys
16258 for all recipients are available, and it protects you from accidentally
16259 sending un-encrypted messages. It can also be configured to automatically
16260 sign messages that you send. For details and instructions on how to use
16261 DefaultEncrypt, please refer to the home page or read the comments in the
16262 source file, @file{jl-encrypt.el}.")
16263 (license license:gpl3+)))
16265 (define-public emacs-extend-smime
16267 (name "emacs-extend-smime")
16272 (uri (string-append
16273 "https://informationelle-selbstbestimmung-im-internet.de"
16274 "/emacs/jl-smime" version "/jl-smime.el"))
16275 (file-name (string-append "jl-smime-" version ".el"))
16278 "1iv8s2wjmv3v5qfwlcy9hvvrmxxvp3f8m1krlr789q7bbh35jynh"))))
16279 (build-system emacs-build-system)
16281 "https://informationelle-selbstbestimmung-im-internet.de/Emacs.html")
16282 (synopsis "Improved S/MIME support for Gnus in Emacs")
16284 (list emacs-default-encrypt))
16286 ;; TRANSLATORS: ExtendSMIME, DefaultEncrypt, and emacs-default-encrypt
16287 ;; should not be translated. The name "emacs-default-encrypt" refers to
16288 ;; the Guix package that provides DefaultEncrypt.
16289 "ExtendSMIME is designed to be used with Gnus in Emacs. It enhances
16290 DefaultEncrypt (emacs-default-encrypt) to support S/MIME (Secure/Multipurpose
16291 Internet Mail Extensions) via LDAP (Lightweight Directory Access Protocol).
16292 Before a message (e.g., email) is sent, ExtendSMIME searches for missing
16293 certificates via LDAP and imports them into @code{gpgsm}. When certificates
16294 for all recipients are available, DefaultEncrypt automatically encrypts the
16295 message. For details and instructions on how to use ExtendSMIME, please refer
16296 to the home page or read the comments in the source file,
16297 @file{jl-smime.el}.")
16298 (license license:gpl3+)))
16300 (define-public emacs-htmlize
16302 (name "emacs-htmlize")
16307 (uri (git-reference
16308 (url "https://github.com/hniksic/emacs-htmlize")
16309 (commit (string-append "release/" version))))
16310 (file-name (git-file-name name version))
16312 (base32 "14m8si49br62lgx7asdyp9jysq0v6midrfk32sxy521ydqmqr3c1"))))
16313 (build-system emacs-build-system)
16314 (home-page "https://github.com/hniksic/emacs-htmlize")
16315 (synopsis "Convert buffer text and decorations to HTML")
16316 (description "@code{emacs-htmlize} converts the buffer text and
16317 the associated decorations to HTML. Output to CSS, inline CSS and
16318 fonts is supported.")
16319 (license license:gpl2+)))
16321 (define-public emacs-xmlgen
16323 (name "emacs-xmlgen")
16328 (uri (git-reference
16329 (url "https://github.com/philjackson/xmlgen")
16331 (file-name (git-file-name name version))
16333 (base32 "096i29v0badx0a6339h9ckdz78zj59gbjdp7vj7vhkq9d830392s"))))
16334 (build-system emacs-build-system)
16337 #:test-command '("emacs" "--batch"
16338 "-l" "xmlgen-test.el"
16339 "-f" "ert-run-tests-batch-and-exit")))
16340 (home-page "https://github.com/philjackson/xmlgen")
16341 (synopsis "S-expression to XML domain specific language (DSL) in
16343 (description "@code{emacs-xmlgen} provides S-expression to XML
16344 conversion for Emacs Lisp.")
16345 (license license:gpl2+)))
16347 (define-public emacs-cdlatex
16349 (name "emacs-cdlatex")
16354 (uri (git-reference
16355 (url "https://github.com/cdominik/cdlatex")
16357 (file-name (git-file-name name version))
16359 (base32 "1jj9vmhc4s3ych08bjm1c2xwi81z1p20rj7bvxrgvb5aga2ghi9d"))))
16360 (build-system emacs-build-system)
16362 (list emacs-auctex))
16363 (home-page "https://github.com/cdominik/cdlatex")
16364 (synopsis "Fast Emacs input methods for LaTeX environments and
16366 (description "CDLaTeX is an Emacs minor mode supporting fast
16367 insertion of environment templates and math in LaTeX. Similar
16368 commands are also offered as part of the AUCTeX package, but it is not
16369 the same - CDLaTeX focuses on speediness for inserting LaTeX
16371 (license license:gpl3+)))
16373 (define-public emacs-cnfonts
16375 (name "emacs-cnfonts")
16380 (uri (git-reference
16381 (url "https://github.com/tumashu/cnfonts")
16382 (commit (string-append "v" version))))
16383 (file-name (git-file-name name version))
16385 (base32 "11d44lf0m0kbzq1mvyqkl4aprys0xqaarp08nij57xnynin1rynx"))))
16386 (build-system emacs-build-system)
16387 (home-page "https://github.com/tumashu/cnfonts")
16388 (synopsis "Emacs Chinese fonts setup tool")
16389 (description "cnfonts is a Chinese fonts setup tool, allowing for easy
16390 configuration of Chinese fonts.")
16391 (license license:gpl2+)))
16393 (define-public emacs-boon
16395 (name "emacs-boon")
16400 (uri (git-reference
16401 (url "https://github.com/jyp/boon")
16403 (file-name (git-file-name name version))
16405 (base32 "18il2licf8pgfcrpx2bk55gpf8f537kb9cxqz83jldkhiyry74il"))))
16406 (build-system emacs-build-system)
16408 (list emacs-dash emacs-expand-region emacs-multiple-cursors
16409 emacs-powerline emacs-spaceline))
16410 (home-page "https://github.com/jyp/boon")
16411 (synopsis "Ergonomic command mode for Emacs")
16412 (description "Boon is a complete package for modal editing with a focus on
16413 ergonomics and modularity. Spacial allocation of keys comes first, mnemonics
16414 second. Most common operations are mapped to the home row, common editing
16415 commands are bound to keys reachable with the left hand and movement keys are
16416 reached with the right hand.")
16417 (license license:gpl3+)))
16419 (define-public emacs-cc-mode
16421 (name "emacs-cc-mode")
16427 (url "http://hg.code.sf.net/p/cc-mode/cc-mode")
16429 (string-append "Release_"
16430 (string-replace-substring version "." "_")))))
16431 (file-name (hg-file-name name version))
16433 (base32 "03cvl61baccx57zd62nz2wy4hvij5hl2syg7byaxgrs4c7grr414"))))
16434 (build-system emacs-build-system)
16437 #:test-command '("make" "test")
16439 (modify-phases %standard-phases
16440 (add-before 'install 'make-info
16442 (invoke "make" "info"))))))
16445 (home-page "http://cc-mode.sourceforge.net/")
16446 (synopsis "Framework for creating major modes for C-style languages")
16448 "CC Mode is an Emacs and XEmacs mode for editing C and other languages with
16449 similar syntax; currently C++, Objective-C, Java, CORBA's IDL, Pike, and AWK.")
16450 (license license:gpl3+)))
16452 (define-public emacs-csharp-mode
16454 (name "emacs-csharp-mode")
16459 (uri (git-reference
16460 (url "https://github.com/josteink/csharp-mode")
16462 (file-name (git-file-name name version))
16464 (base32 "1d0pf236xi4c7fazv67a53yrac24lilnkzp9pb55xm88gig7rfmz"))))
16465 (build-system emacs-build-system)
16466 (home-page "https://github.com/josteink/csharp-mode")
16467 (synopsis "Major mode for C# code")
16469 "This is a C# editing mode for Emacs, based on CC mode. It handles
16470 syntax coloring, indentation, insertion of matched pairs of curly braces and
16471 documentation generation. In addition, it provides menu-based navigation
16472 using Imenu, and Compilation mode support for MSBuild, devenv and xbuild.")
16473 (license license:gpl3+)))
16475 (define-public emacs-vala-mode
16476 ;; Upstream has no tagged release.
16477 (let ((commit "d696a8177e94c81ea557ad364a3b3dcc3abbc50f")
16480 (name "emacs-vala-mode")
16481 (version (git-version "0.1" revision commit))
16485 (uri (git-reference
16486 (url "https://github.com/rrthomas/vala-mode")
16488 (file-name (git-file-name name version))
16490 (base32 "0g5pdq757z9d8rk489n5ilhqipdc4i4sfkjwwrxyvgjlapjc04c0"))))
16491 (build-system emacs-build-system)
16494 (modify-phases %standard-phases
16495 (add-after 'unpack 'disable-multiline-support
16496 (lambda* (#:key inputs #:allow-other-keys)
16497 (make-file-writable "vala-mode.el")
16498 (emacs-batch-edit-file "vala-mode.el"
16500 (require 'thingatpt) ;; beginning-of-thing, end-of-thing
16501 (goto-char (point-min))
16503 (re-search-forward ";; Support multiline strings")
16504 (goto-char (match-beginning 0))
16506 (insert ";; FIXME: Support multiline strings
16507 (c-lang-defconst c-multiline-string-start-char vala nil)"))
16509 (re-search-forward "(defcustom vala-multiline-strings")
16510 (goto-char (match-beginning 0))
16511 (insert ";; FIXME: Support multiline strings\n")
16512 (comment-region (beginning-of-thing 'sexp)
16513 (end-of-thing 'sexp)))
16514 (basic-save-buffer))))))))
16515 (home-page "https://github.com/rrthomas/vala-mode")
16516 (synopsis "Vala mode for Emacs")
16518 "This package provides a major mode for editing .vala and .vapi files
16520 (license license:gpl2+))))
16522 (define-public emacs-php-mode
16524 (name "emacs-php-mode")
16529 (uri (git-reference
16530 (url "https://github.com/ejmr/php-mode")
16531 (commit (string-append "v" version))))
16532 (file-name (git-file-name name version))
16534 (base32 "13lkzvamr86409whr8as4721gx9xrlfkmxvv941775mryliqk6j6"))))
16535 (build-system emacs-build-system)
16538 (modify-phases %standard-phases
16539 (add-after 'unpack 'enter-source-directory
16541 (chdir "lisp"))))))
16542 (propagated-inputs (list emacs-projectile))
16543 (home-page "https://github.com/ejmr/php-mode")
16544 (synopsis "Major mode for editing PHP code")
16546 "PHP mode is a major mode for editing PHP source code. It's an extension
16547 of C mode; thus it inherits all C mode's navigation functionality. But it
16548 colors according to the PHP grammar and indents according to the PEAR coding
16549 guidelines. It also includes a couple handy IDE-type features such as
16550 documentation search and a source and class browser.")
16551 (license license:gpl3+)))
16553 (define-public emacs-pos-tip
16555 (name "emacs-pos-tip")
16560 (uri (git-reference
16561 (url "https://github.com/pitkali/pos-tip")
16563 (file-name (git-file-name name version))
16565 (base32 "0w8bnspnk871qndp18hs0wk4x9x31xr9rwbvf5dc8mcbnj29ch33"))))
16566 (build-system emacs-build-system)
16567 ;; The following functions and variables needed by emacs-pos-tip are
16568 ;; not included in emacs-minimal:
16569 ;; x-display-pixel-width, x-display-pixel-height, x-show-tip
16570 (arguments `(#:emacs ,emacs))
16571 (home-page "https://github.com/pitkali/pos-tip")
16572 (synopsis "Show tooltip at point")
16573 (description "The standard library tooltip.el provides a function for
16574 displaying a tooltip at the mouse position. However, locating a tooltip at an
16575 arbitrary buffer position in a window is not easy. Pos-tip provides such a
16576 function to be used by other frontend programs.")
16577 (license license:gpl2+)))
16579 (define-public emacs-pyim-basedict
16580 ;; XXX: The commit below points to the lastest (un-tagged) release.
16581 (let ((commit "d61af27686f7a39e6c138b7261a686e7ea7a0ef7"))
16583 (name "emacs-pyim-basedict")
16588 (uri (git-reference
16589 (url "https://github.com/tumashu/pyim-basedict")
16591 (file-name (git-file-name name version))
16593 (base32 "0fzyh8qmicq2vy9j1ca708ir67dpxp1cwjaw0sw469p24cvj12yy"))))
16594 (build-system emacs-build-system)
16597 (home-page "https://github.com/tumashu/pyim-basedict")
16598 (synopsis "Input method dictionary of pyim")
16599 (description "Pyim-basedict is the default pinyin input method dictionary,
16600 containing words from the Rime project.")
16601 (license license:gpl2+))))
16603 (define-public emacs-pyim
16605 (name "emacs-pyim")
16610 (uri (string-append "https://elpa.gnu.org/packages/pyim-" version ".tar"))
16612 (base32 "0blsz344jq1zx4qs73zinb8fhh2a35k5nx12i2wn76902qx2qc6j"))))
16613 (build-system emacs-build-system)
16615 (list emacs-async emacs-popup emacs-posframe emacs-xr))
16616 (home-page "https://github.com/tumashu/pyim")
16617 (synopsis "Chinese input method")
16619 "This package provides a Chinese input method which supports quanpin,
16620 shuangpin, wubi and cangjie.")
16621 (license license:gpl2+)))
16623 (define-public emacs-pinyinlib
16625 (name "emacs-pinyinlib")
16630 (uri (git-reference
16631 (url "https://github.com/cute-jumper/pinyinlib.el")
16633 (file-name (git-file-name name version))
16636 "1nwj4c3y0kdlkf3jqd2dnibaiazrq6qcj533xk2qw4wmx072yij0"))))
16637 (build-system emacs-build-system)
16638 (home-page "https://github.com/cute-jumper/pinyinlib.el")
16639 (synopsis "Convert first letter of Pinyin to Chinese characters")
16641 "This Emacs library provides functionality for converting the first
16642 letter of Pinyin to Simplified/Traditional Chinese characters.")
16643 (license license:gpl3+)))
16645 (define-public emacs-reverse-im
16647 (name "emacs-reverse-im")
16652 (uri (git-reference
16653 (url "https://github.com/a13/reverse-im.el")
16654 (commit (string-append "v" version))))
16655 (file-name (git-file-name name version))
16657 (base32 "1h4gpyqir0kqf6a7ni8dbqwd4mr33imay0fmprrpfpfqxj0lj7c1"))))
16658 (build-system emacs-build-system)
16659 (home-page "https://github.com/a13/reverse-im.el")
16660 (synopsis "Reverse mapping for non-default system layouts")
16662 "Reverse IM provides a minor mode that toggles translations for all input
16663 methods from a given list.")
16664 (license license:gpl3+)))
16666 (define-public emacs-mini-frame
16667 (let ((commit "60838f3cab438dcbda8eaa15ab3e5d1af88910e9")
16670 (name "emacs-mini-frame")
16671 (version (git-version "1.19" revision commit))
16674 (uri (git-reference
16675 (url "https://github.com/muffinmad/emacs-mini-frame.git")
16679 (base32 "0q01iymz657bg3mcmq7vcl8r0ypsa1pqj1p6gxs7ywx1d33lan4d"))
16680 (file-name (git-file-name name version))))
16681 (build-system emacs-build-system)
16682 (home-page "https://github.com/muffinmad/emacs-mini-frame")
16683 (synopsis "Show minibuffer in child frame")
16685 "@dfn{mini-frame-mode} adds an advice around @code{read-from-minibuffer}
16686 to show the minibuffer as a child frame on top of the current frame.
16687 @code{find-file} and similar functions associated mini-buffers may appear at
16688 the center of the screen and not at the bottom.")
16689 (license license:gpl3+))))
16691 (define-public emacs-posframe
16693 (name "emacs-posframe")
16698 (uri (string-append "https://elpa.gnu.org/packages/"
16699 "posframe-" version ".tar"))
16701 (base32 "05qkwb3ys05chn0maz7q19kp539m7p5acb8di4rni4vjjlkpx2bj"))))
16702 (build-system emacs-build-system)
16703 ;; emacs-minimal does not include the function font-info.
16706 (home-page "https://github.com/tumashu/posframe")
16707 (synopsis "Pop a posframe (a child frame) at point")
16709 "Posframe can pop a posframe at point. A posframe is a child frame
16710 displayed within its root window's buffer. Posframe is fast and works well
16711 with CJK languages.")
16712 (license license:gpl3+)))
16714 (define-public emacs-el2org
16716 (name "emacs-el2org")
16721 (uri (git-reference
16722 (url "https://github.com/tumashu/el2org")
16723 (commit (string-append "v" version))))
16724 (file-name (git-file-name name version))
16726 (base32 "0mzddqny6wpg1fv99xrvlv7rxmaifvmy5bvj4in4pldhm4cx4q1b"))))
16727 (build-system emacs-build-system)
16728 (home-page "https://github.com/tumashu/el2org")
16729 (synopsis "Convert Emacs-lisp file to org file")
16730 (description "El2org is a simple tool, which can convert Emacs-lisp file
16731 to org file, you can use this tool to write orgify commentary.")
16732 (license license:gpl2+)))
16734 (define-public emacs-muse
16736 (name "emacs-muse")
16741 (uri (string-append "https://elpa.gnu.org/packages/"
16742 "muse-" version ".tar"))
16744 (base32 "0g2ff6x45x2k5dnkp31sk3bjj92jyhhnar7l5hzn8vp22l0rv8wn"))))
16745 (build-system emacs-build-system)
16746 (home-page "https://www.gnu.org/software/emacs-muse")
16747 (synopsis "Authoring and publishing environment for Emacs")
16749 "Emacs Muse (also known as Muse) is an authoring and publishing
16750 environment for Emacs. It simplifies the process of writing documents and
16751 publishing them to various output formats such as HTML, LaTeX, or PDF.")
16752 (license license:gpl3+)))
16754 (define-public emacs-mustache
16756 (name "emacs-mustache")
16761 (uri (git-reference
16762 (url "https://github.com/Wilfred/mustache.el")
16764 (file-name (git-file-name name version))
16766 (base32 "1n2ymd92qpvsby6ms0l3kjhdzzc47rri2aiscc6bs07hm4mjpr9q"))))
16767 (build-system emacs-build-system)
16769 (list emacs-dash emacs-ht emacs-s))
16770 (home-page "https://github.com/Wilfred/mustache.el")
16771 (synopsis "Mustache templating library for Emacs")
16772 (description "Mustache templating library for Emacs, mustache is
16773 a simple web template system, which is described as a logic-less system
16774 because it lacks any explicit control flow statements, both looping and
16775 conditional evaluation can be achieved using section tags processing lists
16777 (license license:gpl3+)))
16779 (define-public emacs-org2web
16781 (name "emacs-org2web")
16786 (uri (git-reference
16787 (url "https://github.com/tumashu/org2web")
16788 (commit (string-append "v" version))))
16789 (file-name (git-file-name name version))
16791 (base32 "0wsvfn409a2ivbich8b8zqza78sprirg4bl7igx536ydqclmi0n7"))))
16792 (build-system emacs-build-system)
16794 (list emacs-dash emacs-el2org emacs-ht emacs-mustache
16795 emacs-simple-httpd))
16796 (home-page "https://github.com/tumashu/org2web")
16797 (synopsis "Static site generator based on org-mode")
16798 (description "Org2web is a static site generator based on org-mode,
16799 which code derived from Kelvin H's org-page.")
16800 (license license:gpl2+)))
16802 (define-public emacs-meow
16804 (name "emacs-meow")
16809 (uri (git-reference
16810 (url "https://github.com/meow-edit/meow")
16811 (commit (string-append "v" version))))
16812 (file-name (git-file-name name version))
16814 (base32 "11iz95lm25vpdc3plpm3h1zlmfmfz08xlman8iqk5fa13636v7hj"))))
16815 (build-system emacs-build-system)
16816 (home-page "https://github.com/meow-edit/meow")
16817 (synopsis "Yet another modal editing on Emacs")
16818 (description "Meow is yet another modal editing mode for Emacs. It aims
16819 to blend modal editing into Emacs with minimum interface with its original
16820 key-bindings, avoiding most if not all the hassle introduced by key-binding
16822 (license license:gpl3+)))
16824 (define-public emacs-xelb
16826 (name "emacs-xelb")
16830 (uri (string-append "https://elpa.gnu.org/packages/xelb-"
16834 "1fp5mzl63sh0h3ws4l5p4qgvi7ny8a3fj6k4dhqa98xgw2bx03v7"))))
16835 (build-system emacs-build-system)
16836 ;; The following functions and variables needed by emacs-xelb are
16837 ;; not included in emacs-minimal:
16838 ;; x-display-screens, x-keysym-table, x-alt-keysym, x-meta-keysym
16839 ;; x-hyper-keysym, x-super-keysym, libxml-parse-xml-region
16840 ;; x-display-pixel-width, x-display-pixel-height
16844 (modify-phases %standard-phases
16845 (add-after 'unpack 'regenerate-el-files
16846 (lambda* (#:key inputs #:allow-other-keys)
16848 (string-append "PROTO_PATH="
16849 (assoc-ref inputs "xcb-proto")
16851 (string-append "EMACS_BIN="
16852 (assoc-ref inputs "emacs")
16853 "/bin/emacs -Q")))))))
16854 (native-inputs (list xcb-proto))
16855 (home-page "https://github.com/ch11ng/xelb")
16856 (synopsis "X protocol Emacs Lisp binding")
16857 (description "@code{emacs-xelb} is a pure Emacs Lisp implementation of the
16858 X11 protocol based on the XML description files from the XCB project. It
16859 features an object-oriented API and permits a certain degree of concurrency.
16860 It should enable you to implement low-level X11 applications.")
16861 (license license:gpl3+)))
16863 (define-public emacs-exwm
16865 (name "emacs-exwm")
16867 (synopsis "Emacs X window manager")
16871 (uri (string-append "https://elpa.gnu.org/packages/"
16872 "exwm-" version ".tar"))
16874 (base32 "094k33clmxhnab0wniyrs48sdz28kna2g6fmkhsd7n20nmhhc4sn"))))
16875 (build-system emacs-build-system)
16880 ;; The following functions and variables needed by emacs-exwm are
16881 ;; not included in emacs-minimal:
16882 ;; scroll-bar-mode, fringe-mode
16883 ;; x-display-pixel-width, x-display-pixel-height
16887 (modify-phases %standard-phases
16888 (add-after 'build 'install-xsession
16889 (lambda* (#:key inputs outputs #:allow-other-keys)
16890 (let* ((out (assoc-ref outputs "out"))
16891 (xsessions (string-append out "/share/xsessions"))
16892 (bin (string-append out "/bin"))
16893 (exwm-executable (string-append bin "/exwm")))
16894 ;; Add a .desktop file to xsessions
16895 (mkdir-p xsessions)
16897 (make-desktop-entry-file
16898 (string-append xsessions "/exwm.desktop")
16900 #:comment ,synopsis
16901 #:exec exwm-executable
16902 #:try-exec exwm-executable)
16903 ;; Add a shell wrapper to bin
16904 (with-output-to-file exwm-executable
16906 (format #t "#!~a ~@
16907 ~a +SI:localuser:$USER ~@
16908 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
16909 (search-input-file inputs "/bin/sh")
16910 (search-input-file inputs "/bin/xhost")
16911 (search-input-file inputs "/bin/dbus-launch")
16912 (search-input-file inputs "/bin/emacs")
16914 ((file-exists-p "~/.exwm")
16915 (load-file "~/.exwm"))
16916 ((not (featurep 'exwm))
16918 (require 'exwm-config)
16919 (exwm-config-default)
16920 (message (concat "exwm configuration not found. "
16921 "Falling back to default configuration...")))))))
16922 (chmod exwm-executable #o555)
16924 (home-page "https://github.com/ch11ng/exwm")
16926 "EXWM is a full-featured tiling X window manager for Emacs built on top
16928 (license license:gpl3+)))
16930 (define-public emacs-xelb-no-x-toolkit
16932 (inherit emacs-xelb)
16933 (name "emacs-xelb-no-x-toolkit")
16935 (substitute-keyword-arguments (package-arguments emacs-xelb)
16936 ((#:emacs emacs) `,emacs-no-x-toolkit)))))
16938 (define-public emacs-exwm-no-x-toolkit
16940 (inherit emacs-exwm)
16941 (name "emacs-exwm-no-x-toolkit")
16942 (synopsis "Emacs X window manager (without an X toolkit)")
16944 (list emacs-xelb-no-x-toolkit))
16946 (substitute-keyword-arguments (package-arguments emacs-exwm)
16947 ((#:emacs emacs) `,emacs-no-x-toolkit)))))
16949 (define-public emacs-switch-window
16951 (name "emacs-switch-window")
16956 (uri (git-reference
16957 (url "https://github.com/dimitri/switch-window")
16958 (commit (string-append "v" version))))
16959 (file-name (git-file-name name version))
16962 "0rci96asgamr6qp6nkyr5vwrnslswjxcjd96yccy4aivh0g66yfg"))))
16963 (build-system emacs-build-system)
16964 (home-page "https://github.com/dimitri/switch-window")
16965 (synopsis "Emacs window switch tool")
16966 (description "Switch-window is an emacs window switch tool, which
16967 offer a visual way to choose a window to switch to, delete, split or
16968 other operations.")
16969 (license license:wtfpl2)))
16971 (define-public emacs-exwm-x
16973 (name "emacs-exwm-x")
16975 (synopsis "Derivative window manager based on EXWM")
16979 (uri (git-reference
16980 (url "https://github.com/tumashu/exwm-x")
16981 (commit (string-append "v" version))))
16982 (file-name (git-file-name name version))
16985 "0h248mma7kky30jr9bbhmp95wchl2cx5p6kh0gxmzpbc247dn2cc"))))
16986 (build-system emacs-build-system)
16988 (list emacs-counsel emacs-exwm emacs-switch-window emacs-use-package))
16991 ;; Need emacs instead of emacs-minimal,
16992 ;; for emacs's bin path will be inserted into bin/exwm-x file.
16996 (modify-phases %standard-phases
16997 (add-after 'build 'install-xsession
16998 (lambda* (#:key inputs outputs #:allow-other-keys)
16999 (let* ((out (assoc-ref outputs "out"))
17000 (xsessions (string-append out "/share/xsessions"))
17001 (bin (string-append out "/bin"))
17002 (exwm-executable (string-append bin "/exwm-x")))
17003 ;; Add a .desktop file to xsessions
17004 (mkdir-p xsessions)
17006 (with-output-to-file
17007 (string-append xsessions "/exwm-x.desktop")
17009 (format #t "[Desktop Entry]~@
17014 Type=Application~%" ,name ,synopsis exwm-executable)))
17015 ;; Add a shell wrapper to bin
17016 (with-output-to-file exwm-executable
17018 (format #t "#!~a ~@
17019 ~a +SI:localuser:$USER ~@
17020 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
17021 (search-input-file inputs "/bin/sh")
17022 (search-input-file inputs "/bin/xhost")
17023 (search-input-file inputs "/bin/dbus-launch")
17024 (search-input-file inputs "/bin/emacs")
17025 '(require 'exwmx-loader))))
17026 (chmod exwm-executable #o555)
17028 (home-page "https://github.com/tumashu/exwm-x")
17029 (description "EXWM-X is a derivative window manager based on EXWM, with focus
17030 on mouse-control.")
17031 (license license:gpl3+)))
17033 (define-public emacs-gnugo
17035 (name "emacs-gnugo")
17040 (uri (string-append "https://elpa.gnu.org/packages/gnugo-"
17044 "138gzdyi8scqimvs49da66j8f5a43bhgpasn1bxzdj2zffwlwp6g"))))
17045 (build-system emacs-build-system)
17048 (modify-phases %standard-phases
17049 (add-after 'unpack 'configure
17050 (lambda* (#:key inputs #:allow-other-keys)
17051 (emacs-substitute-variables "gnugo.el"
17052 ("gnugo-xpms" "#'gnugo-imgen-create-xpms" (as-display))
17053 ("gnugo-program" (search-input-file inputs "/bin/gnugo"))))))))
17054 (inputs (list gnugo))
17056 (list emacs-ascii-art-to-unicode emacs-xpm))
17057 (home-page "https://elpa.gnu.org/packages/gnugo.html")
17058 (synopsis "Emacs major mode for playing GNU Go")
17059 (description "This package provides an Emacs based interface for GNU Go,
17060 which can be started via @samp{M-x gnugo}. It has a graphical mode where the
17061 board and stones are drawn using XPM images and supports the use of a mouse.
17062 You can switch to the graphical mode by running @samp{M-x
17063 gnugo-image-display-mode}.")
17064 (license license:gpl3+)))
17066 (define-public emacs-gnuplot
17068 (name "emacs-gnuplot")
17073 (uri (git-reference
17074 (url "https://github.com/emacsorphanage/gnuplot-mode")
17076 (file-name (git-file-name name version))
17078 (base32 "09y177sq24gs7wwjihw59g0m4n1rv2ws9890ynxjxawv823r0fxm"))))
17079 (build-system emacs-build-system)
17080 (home-page "https://github.com/emacsorphanage/gnuplot-mode")
17081 (synopsis "Emacs major mode for interacting with Gnuplot")
17083 "Emacs Gnuplot is an Emacs major mode for interacting with Gnuplot.")
17084 (license license:gpl2+)))
17086 (define-public emacs-transpose-frame
17088 (name "emacs-transpose-frame")
17093 (uri (git-reference
17094 (url "https://github.com/emacsorphanage/transpose-frame")
17095 (commit (string-append "v" version))))
17096 (file-name (git-file-name name version))
17098 (base32 "0m9jmfwwhgkwxbq3y000ymx7parbgqr7gq3yjm2wh1ll747gv51y"))))
17099 (build-system emacs-build-system)
17100 (home-page "https://www.emacswiki.org/emacs/TransposeFrame")
17101 (synopsis "Transpose window arrangement in current frame")
17102 (description "@code{emacs-transpose-frame} provides some interactive
17103 functions which allows users to transpose windows arrangement in currently
17105 (license license:bsd-2)))
17107 (define-public emacs-transpose-mark
17108 ;; XXX: Upstream made no release so far, and did not add a Version keyword.
17109 (let ((commit "667327602004794de97214cf336ac61650ef75b7")
17112 (name "emacs-transpose-mark")
17113 (version (git-version "0" revision commit))
17117 (uri (git-reference
17118 (url "https://github.com/kwrooijen/transpose-mark")
17120 (file-name (git-file-name name version))
17122 (base32 "03wc50vn1kmrgnzzhs06pwpap2p2rx84wwzxw0hawsg1f1l35m2x"))))
17123 (build-system emacs-build-system)
17124 (home-page "https://github.com/kwrooijen/transpose-mark")
17125 (synopsis "Library for transposing lines and regions")
17126 (description "Transpose mark provides some commands that makes
17127 transposing lines and regions easier. You can mark a line and transpose it
17128 with a line at point, or mark a region and transpose it with another region
17129 a point. The plugin provides visual feedback for marked regions.")
17130 (license license:gpl3+))))
17132 (define-public emacs-key-chord
17134 (name "emacs-key-chord")
17139 (uri "https://www.emacswiki.org/emacs/download/key-chord.el")
17140 (file-name (string-append "key-chord-" version ".el"))
17143 "03m44pqggfrd53nh9dvpdjgm0rvca34qxmd30hr33hzprzjambxg"))))
17144 (build-system emacs-build-system)
17145 (home-page "https://www.emacswiki.org/emacs/key-chord.el")
17146 (synopsis "Map pairs of simultaneously pressed keys to Emacs commands")
17147 (description "@code{emacs-key-chord} provides @code{key-chord-mode}, a
17148 mode for binding key chords to commands. A key chord is defined as two keys
17149 pressed simultaneously or a single key quickly pressed twice.")
17150 (license license:gpl2+)))
17152 (define-public emacs-evil-surround
17154 (name "emacs-evil-surround")
17159 (uri (git-reference
17160 (url "https://github.com/emacs-evil/evil-surround")
17162 (file-name (git-file-name name version))
17164 (base32 "1gfgmr4909m36gknprcam6q4rkcqfbi6w43ky7x6jnlmgb6mxggg"))))
17165 (build-system emacs-build-system)
17170 #:test-command '("make" "test")))
17171 (home-page "https://github.com/emacs-evil/evil-surround")
17172 (synopsis "Easily modify surrounding parentheses and quotes")
17173 (description "@code{emacs-evil-surround} allows easy deletion, change and
17174 addition of surrounding pairs, such as parentheses and quotes, in evil mode.")
17175 (license license:gpl3+)))
17177 (define-public emacs-evil-commentary
17179 (name "emacs-evil-commentary")
17184 (uri (git-reference
17185 (url "https://github.com/linktohack/evil-commentary")
17186 (commit (string-append "v" version))))
17187 (file-name (git-file-name name version))
17189 (base32 "1l8zi9wlg1f7ffm8gh92qwk3q7h6cdl8b8zkd9hcda53mq6klpjr"))))
17190 (build-system emacs-build-system)
17193 (home-page "https://github.com/linktohack/evil-commentary")
17194 (synopsis "Comment out code in evil mode")
17195 (description "@code{emacs-evil-commentary} adds keybindings to easily
17196 comment out lines of code in evil mode. It provides @code{gcc} to comment out
17197 lines, and @code{gc} to comment out the target of a motion.")
17198 (license license:gpl3+)))
17200 ;; Tests for emacs-ansi have a circular dependency with ert-runner, and
17201 ;; therefore cannot be run
17202 (define-public emacs-ansi
17203 (let ((commit "2367fba7b3b2340364a30cd6de7f3eb6bb9898a3")
17206 (name "emacs-ansi")
17207 (version (git-version "0.4.1" revision commit))
17211 (uri (git-reference
17212 (url "https://github.com/rejeep/ansi.el")
17214 (file-name (git-file-name name version))
17216 (base32 "1n7h6l4icm6lks3zpvd83j1fzrnspw19rmz7c96vy7pdh1y4v3p3"))))
17217 (build-system emacs-build-system)
17218 (home-page "https://github.com/rejeep/ansi.el")
17219 (synopsis "Convert strings to ANSI")
17220 (description "@code{emacs-ansi} defines functions that turns simple
17221 strings to ANSI strings. Turning a string into an ANSI string can be to add
17222 color to a text, add color in the background of a text or adding a style, such
17223 as bold, underscore or italic.")
17224 (license license:gpl3+))))
17226 ;; Tests for emacs-commander have a circular dependency with ert-runner, and
17227 ;; therefore cannot be run
17228 (define-public emacs-commander
17230 (name "emacs-commander")
17235 (uri (git-reference
17236 (url "https://github.com/rejeep/commander.el")
17237 (commit (string-append "v" version))))
17238 (file-name (git-file-name name version))
17240 (base32 "1j6hhyzww7wfwk6bllbb5mk4hw4qs8hsgfbfdifsam9c6i4spm45"))))
17241 (build-system emacs-build-system)
17243 (list emacs-dash emacs-f emacs-s))
17244 (home-page "https://github.com/rejeep/commander.el")
17245 (synopsis "Emacs command line parser")
17246 (description "@code{emacs-commander} provides command line parsing for
17248 (license license:gpl3+)))
17250 (define-public emacs-eglot
17252 (name "emacs-eglot")
17257 (uri (string-append "https://elpa.gnu.org/packages/eglot-" version
17261 "0iw1jnfsjd2yq73ic3cld8m51wyxdwn3kjv9ala28krvsvb4h3y4"))))
17262 (build-system emacs-build-system)
17264 (list emacs-external-completion
17270 (home-page "https://github.com/joaotavora/eglot")
17271 (synopsis "Client for Language Server Protocol (LSP) servers")
17273 "Emacs Polyglot, or Eglot, is an Emacs @acronym{Language Server Protocol,
17274 LSP} client that stays out of the way. It guesses the LSP program to start
17275 for the current file, using the major mode as a hint. It prompts you to enter
17277 (license license:gpl3+)))
17279 (define-public emacs-jarchive
17281 (name "emacs-jarchive")
17285 (uri (git-reference
17286 (url "https://git.sr.ht/~dannyfreeman/jarchive")
17288 (file-name (git-file-name name version))
17291 "0v1mz9z8dgxr4yj9p0wf0a748nlnvv2z0mrbkbqz7nsnw5djkimd"))))
17292 (build-system emacs-build-system)
17293 (home-page "https://sr.ht/~dannyfreeman/jarchive")
17294 (synopsis "Jarchive teaches Emacs how to navigate to files inside JARs")
17295 (description "Jarchive makes Emacs handle Java and LSP URIs pointing to
17296 source inside JARs.")
17297 (license license:gpl3+)))
17299 (define-public emacs-eldoc
17301 (name "emacs-eldoc")
17306 (uri (string-append
17307 "https://elpa.gnu.org/packages/eldoc-" version ".tar"))
17309 (base32 "0c05dzrs7vrhibj46jpz625482ah6xywji7way6wcvwc711y74fz"))))
17310 (build-system emacs-build-system)
17311 (home-page "http://elpa.gnu.org/packages/eldoc.html")
17312 (synopsis "Show function arglist or variable docstring in echo area")
17314 "This program was inspired by the behavior of the ``mouse documentation
17315 window'' on many Lisp Machine systems; as you type a function's symbol name as
17316 part of a sexp, it will print the argument list for that function. Behavior
17317 is not identical; for example, you need not actually type the function name,
17318 you need only move point around in a sexp that calls it. Also, if point is
17319 over a documented variable, it will print the one-line documentation for that
17320 variable instead, to remind you of that variable's meaning.")
17321 (license license:gpl3+)))
17323 ;; Tests for ert-runner have a circular dependency with ecukes, and therefore
17325 (define-public emacs-ert-runner
17327 (name "emacs-ert-runner")
17332 (uri (git-reference
17333 (url "https://github.com/rejeep/ert-runner.el")
17334 (commit (string-append "v" version))))
17335 (file-name (git-file-name name version))
17338 "08gygn9fjank5gpi4v6ynrkn0jbknxbwsn7md4p9ndygdbmnkf98"))))
17339 (build-system emacs-build-system)
17349 (modify-phases %standard-phases
17350 (add-after 'install 'install-executable
17351 (lambda* (#:key inputs outputs #:allow-other-keys)
17352 (let ((out (assoc-ref outputs "out"))
17353 (source-directory (string-append
17354 (getenv "TMPDIR") "/source")))
17355 (substitute* "bin/ert-runner"
17356 (("ERT_RUNNER=\"\\$\\(dirname \\$\\(dirname \\$0\\)\\)")
17357 (string-append "ERT_RUNNER=\"" (elpa-directory out))))
17358 (install-file "bin/ert-runner" (string-append out "/bin"))
17359 (wrap-program (string-append out "/bin/ert-runner")
17360 (list "EMACSLOADPATH" ":" 'prefix
17361 ;; Do not capture the transient source directory in
17363 (delete source-directory
17364 (string-split (getenv "EMACSLOADPATH") #\:))))
17366 #:include (cons* "^reporters/.*\\.el$" %default-include)))
17367 (home-page "https://github.com/rejeep/ert-runner.el")
17368 (synopsis "Opinionated Ert testing workflow")
17369 (description "@code{ert-runner} is a tool for Emacs projects tested
17370 using ERT. It assumes a certain test structure setup and can therefore make
17371 running tests easier.")
17372 (license license:gpl3+)))
17374 (define-public emacs-xtest
17376 (name "emacs-xtest")
17380 (uri (git-reference
17381 (url "https://github.com/promethial/xtest")
17382 (commit (string-append "v" version))))
17383 (file-name (git-file-name name version))
17386 "1wqx6hlqcmqiljydih5fx89dw06g8w728pyn4iqsap8jwgjngb09"))))
17389 (build-system emacs-build-system)
17390 (home-page "https://github.com/promethial/xtest/")
17391 (synopsis "Simple testing with Emacs")
17392 (description "This package provides a simple testing library for Emacs.")
17393 (license license:gpl3+)))
17395 (define-public emacs-org-transclusion
17396 (let ((commit "cf51df7b87e0d32ba13ac5380557e81d9845d81b")) ;version bump
17398 (name "emacs-org-transclusion")
17403 (uri (git-reference
17404 (url "https://github.com/nobiot/org-transclusion")
17406 (file-name (git-file-name name version))
17408 (base32 "0ix5l8cjcafw8lqhkmwa3cpdw6cbpx65k0iww426nxya849y61yx"))))
17409 (build-system emacs-build-system)
17413 #:test-command #~(list "emacs" "--batch"
17414 "-l" "org-transclusion.el"
17415 "-l" "test/unit-tests.el"
17416 "-f" "ert-run-tests-batch-and-exit")))
17418 (list emacs-ert-runner))
17419 (home-page "https://nobiot.github.io/org-transclusion/")
17420 (synopsis "Enable transclusion with Org Mode")
17421 (description "Org-transclusion lets you insert a copy of text content via
17422 a file link or ID link within an Org file. It lets you have the same content
17423 present in different buffers at the same time without copy-and-pasting it.
17424 Edit the source of the content, and you can refresh the transcluded copies to
17425 the up-to-date state. Org-transclusion keeps your files clear of the
17426 transcluded copies, leaving only the links to the original content.")
17427 (license license:gpl3+))))
17429 (define-public emacs-disable-mouse
17431 (name "emacs-disable-mouse")
17436 (uri (git-reference
17437 (url "https://github.com/purcell/disable-mouse")
17439 (file-name (git-file-name name version))
17441 (base32 "0l6mai68ns3qw3rlvjvzsnqwdy7bxqiy0vdwflq0l1plxb1vazyc"))))
17442 (build-system emacs-build-system)
17443 (home-page "https://github.com/purcell/disable-mouse")
17444 (synopsis "Disable mouse commands globally")
17446 "Provides @code{disable-mouse-mode} and @code{global-disable-mouse-mode},
17447 pair of minor modes which suppress all mouse events by intercepting them and
17448 running a customisable handler command (@code{ignore} by default).")
17449 (license license:gpl3+)))
17451 (define-public emacs-json-reformat
17453 (name "emacs-json-reformat")
17458 (uri (git-reference
17459 (url "https://github.com/gongo/json-reformat")
17461 (file-name (git-file-name name version))
17463 (base32 "1gaifz1brh7yh1wk1c02gddwis4ab6bggv27gy7gcd2s861f8bkx"))
17464 (patches (search-patches "emacs-json-reformat-fix-tests.patch"))))
17465 (build-system emacs-build-system)
17468 #:test-command '("ert-runner")
17470 (modify-phases %standard-phases
17471 (add-before 'check 'make-tests-writable
17473 (for-each make-file-writable (find-files "test"))))
17474 (add-before 'check 'delete-json-objects-order-test
17476 (emacs-batch-edit-file "test/json-reformat-test.el"
17477 `(progn (progn (goto-char (point-min))
17479 "ert-deftest json-reformat-test:json-reformat-region")
17480 (beginning-of-line)
17482 (basic-save-buffer)))))
17483 (add-before 'check 'delete-json-reformat-region-occur-error-test
17485 (emacs-batch-edit-file "test/json-reformat-test.el"
17486 `(progn (goto-char (point-min))
17488 "ert-deftest json-reformat-test:json-reformat-region-occur-error")
17489 (beginning-of-line)
17491 (basic-save-buffer))))))))
17493 (list emacs-dash emacs-ert-runner emacs-shut-up))
17495 (list emacs-undercover))
17496 (home-page "https://github.com/gongo/json-reformat")
17497 (synopsis "Reformatting tool for JSON")
17498 (description "@code{json-reformat} provides a reformatting tool for
17499 @url{http://json.org/, JSON}.")
17500 (license license:gpl3+)))
17502 (define-public emacs-json-snatcher
17504 (name "emacs-json-snatcher")
17509 (uri (git-reference
17510 (url "https://github.com/Sterlingg/json-snatcher")
17512 (file-name (git-file-name name version))
17514 (base32 "05zsgnk7grgw9jzwl80h5sxfpifxlr37b4mkbvx7mjq4z14xc2jw"))))
17515 (build-system emacs-build-system)
17516 (home-page "https://github.com/sterlingg/json-snatcher")
17517 (synopsis "Grabs the path to JSON values in a JSON file")
17518 (description "@code{emacs-json-snatcher} grabs the path to JSON values in
17519 a @url{http://json.org/, JSON} file.")
17520 (license license:gpl3+)))
17522 (define-public emacs-json-mode
17524 (name "emacs-json-mode")
17529 (uri (git-reference
17530 (url "https://github.com/joshwnj/json-mode")
17531 (commit (string-append "v" version))))
17532 (file-name (git-file-name name version))
17534 (base32 "0r0k56q58kb133l9x9nbisz9p2kbphfgw1l4g2xp0pjqsc9wvq8z"))))
17535 (build-system emacs-build-system)
17537 (list emacs-json-snatcher))
17538 (home-page "https://github.com/joshwnj/json-mode")
17539 (synopsis "Major mode for editing JSON files")
17540 (description "@code{json-mode} extends the builtin js-mode syntax
17542 (license license:gpl3+)))
17544 (define-public emacs-jsonrpc
17545 ;; Commit refers to a commit in the Emacs repository, as jsonrpc.el was
17546 ;; upstreamed. By convention, it should refer to a commit in which
17547 ;; jsonrpc.el was actually touched.
17548 (let ((commit "8bf4cdcf79bc3254a9169f28f68922ab83bd4e78")) ;version bump
17550 (name "emacs-jsonrpc")
17555 (uri (git-reference
17556 (url "https://git.savannah.gnu.org/git/emacs")
17558 (file-name (git-file-name name version))
17561 "1mka35kparv7z52kknh9nam4wyczcp73glp48q24v05gm42a8xxr"))))
17562 (build-system emacs-build-system)
17565 #~(modify-phases %standard-phases
17567 (lambda* (#:key source #:allow-other-keys)
17570 (copy-file (string-append source "/lisp/jsonrpc.el")
17572 (home-page "http://elpa.gnu.org/packages/jsonrpc.html")
17573 (synopsis "JSON-RPC library")
17575 "This library implements the JSONRPC 2.0 specification as
17576 described in @url{http://www.jsonrpc.org/}. As the name suggests,
17577 JSONRPC is a generic Remote Procedure Call protocol designed around
17579 (license license:gpl3+))))
17581 (define-public emacs-jsonnet-mode
17583 (name "emacs-jsonnet-mode")
17588 (uri (git-reference
17589 (url "https://github.com/tminor/jsonnet-mode")
17590 (commit (string-append "v" version))))
17591 (file-name (git-file-name name version))
17594 "14nxfa91yg2243v4d5kvynp2645x3811ispmhmpgil3x9qbl9jg9"))))
17595 (build-system emacs-build-system)
17598 (home-page "https://github.com/tminor/jsonnet-mode")
17599 (synopsis "Major mode for editing jsonnet files")
17600 (description "This package provides syntax highlighting, indenting,
17601 formatting, and utility methods for jsonnet files.")
17602 (license license:gpl3+)))
17604 (define-public emacs-restclient
17605 (let ((commit "1fb570643b08ba66eb70831b6f874f52546917f1")
17607 (revision "4")) ;Guix package revision,
17608 ;upstream doesn't have official releases
17610 (name "emacs-restclient")
17611 (version (git-version version revision commit))
17614 (uri (git-reference
17615 (url "https://github.com/pashky/restclient.el")
17619 "0npij1p1yw4p1f1yrx6bl8q18nav5p2xvbp7qhzhn7lb2fdn5jqv"))
17620 (file-name (git-file-name name version))))
17621 (build-system emacs-build-system)
17623 (list emacs-helm emacs-jq-mode))
17624 (home-page "https://github.com/pashky/restclient.el")
17625 (synopsis "Explore and test HTTP REST webservices")
17627 "This tool allows for testing and exploration of HTTP REST Web services
17628 from within Emacs. Restclient runs queries from a plan-text query sheet,
17629 displays results pretty-printed in XML or JSON with @code{restclient-mode}")
17630 (license license:public-domain))))
17632 (define-public emacs-jq-mode
17634 (name "emacs-jq-mode")
17639 (uri (git-reference
17640 (url "https://github.com/ljos/jq-mode")
17641 (commit (string-append "v" version))))
17642 (file-name (git-file-name name version))
17644 (base32 "0xk0if5i9cz4w06lx8v1vdm112pn1ybqgfw048sx15yyvfzgril1"))))
17645 (build-system emacs-build-system)
17646 (home-page "https://github.com/ljos/jq-mode")
17647 (synopsis "Major mode for editing jq queries")
17649 "Jq mode is an Emacs major mode for editing jq-scripts.")
17650 (license license:gpl3+)))
17652 (define-public emacs-whitespace-cleanup-mode
17653 (let ((commit "72427144b054b0238a86e1348c45d986b8830d9d")
17656 (name "emacs-whitespace-cleanup-mode")
17657 (version (git-version "0.10" revision commit))
17660 (uri (git-reference
17661 (url "https://github.com/purcell/whitespace-cleanup-mode")
17665 "1zlk534jbwrsabcg3kqlzk4h4hwya60lh6q2n1v4yn4rpf5ghsag"))
17666 (file-name (git-file-name name version))))
17667 (build-system emacs-build-system)
17668 (home-page "https://github.com/purcell/whitespace-cleanup-mode")
17669 (synopsis "Intelligently call @code{whitespace-cleanup} on save")
17671 "This package provides a minor mode that calls
17672 @code{whitespace-cleanup} before saving the current buffer only if the
17673 whitespace in the buffer was initially clean.")
17674 (license license:gpl3+))))
17676 (define-public emacs-eimp
17677 (let ((version "1.4.0")
17678 (commit "2e7536fe6d8f7faf1bad7a8ae37faba0162c3b4f")
17681 (name "emacs-eimp")
17682 (version (git-version version revision commit))
17686 (uri (git-reference
17687 (url "https://github.com/nicferrier/eimp")
17689 (file-name (git-file-name name version))
17692 "154d57yafxbcf39r89n5j43c86rp2fki3lw3gwy7ww2g6qkclcra"))))
17693 (build-system emacs-build-system)
17696 (modify-phases %standard-phases
17697 (add-after 'unpack 'configure
17698 (lambda* (#:key inputs #:allow-other-keys)
17699 (let ((imagemagick (assoc-ref inputs "imagemagick")))
17700 ;; eimp.el is read-only in git.
17701 (chmod "eimp.el" #o644)
17702 (emacs-substitute-variables "eimp.el"
17703 ("eimp-mogrify-program"
17704 (string-append imagemagick "/bin/mogrify"))))
17707 (list imagemagick))
17708 (home-page "https://github.com/nicferrier/eimp")
17709 (synopsis "Interactive image manipulation utility for Emacs")
17710 (description "@code{emacs-eimp} allows interactive image manipulation
17711 from within Emacs. It uses the code@{mogrify} utility from ImageMagick to do
17712 the actual transformations.")
17713 (license license:gpl2+))))
17715 (define-public emacs-dired-hacks
17716 (let ((commit "d1a2bda6aa8f890cb367297ed93aee6d3b5ba388")
17719 (name "emacs-dired-hacks")
17720 (version (git-version "0.0.1" revision commit))
17723 (uri (git-reference
17724 (url "https://github.com/Fuco1/dired-hacks")
17726 (file-name (git-file-name name version))
17729 "12m81a9kjhs4cyq3lym0vp5nx6z3sfnypyzrnia76x6rjvixjf6y"))))
17730 (build-system emacs-build-system)
17732 (list emacs-dash emacs-eimp emacs-f emacs-s))
17733 (home-page "https://github.com/Fuco1/dired-hacks")
17735 "Collection of useful dired additions")
17737 "This package provides the following collection of Emacs dired mode
17742 @item dired-columns
17744 @item dired-hacks-utils
17749 @item dired-rainbow
17751 @item dired-subtree
17752 @item dired-tagsistant
17754 (license license:gpl3+))))
17756 (define-public emacs-dired-sidebar
17758 (name "emacs-dired-sidebar")
17759 (home-page "https://github.com/jojojames/dired-sidebar")
17764 (uri (git-reference
17767 (file-name (git-file-name name version))
17769 (base32 "090dqaqyjmkzrz4szjpk1iip0bdvb0frp4l79393f8ki8w7c16c1"))))
17770 (build-system emacs-build-system)
17772 (list emacs-dired-hacks))
17773 (synopsis "Sidebar for Emacs using Dired")
17775 "This package provides a sidebar for Emacs similar to @code{NeoTree}
17776 or @code{treemacs}, but leveraging @code{Dired} to do the job of display.")
17777 (license license:gpl3+)))
17779 (define-public emacs-dirvish
17781 (name "emacs-dirvish")
17785 (uri (git-reference
17786 (url "https://github.com/alexluigit/dirvish")
17787 (commit "c535e2147171be5506f4ff34e862bacbfb3de768")))
17790 "1nmp5ci4dvcpih6phfhk66s98lf8b49qd35ymy29kqkf5v4cnwga"))
17791 (file-name (git-file-name name version))))
17792 (build-system emacs-build-system)
17793 (propagated-inputs (list emacs-transient))
17797 #~(modify-phases %standard-phases
17798 ;; Move the extensions source files to the top level, which
17799 ;; is included in the EMACSLOADPATH.
17800 (add-after 'unpack 'move-source-files
17802 (let ((el-files (find-files "./extensions" ".*\\.el$")))
17803 (for-each (lambda (f)
17804 (rename-file f (basename f)))
17806 (home-page "https://github.com/alexluigit/dirvish")
17807 (synopsis "Improved version of the Emacs package Dired")
17809 "Dirvish is an improved version of the Emacs inbuilt package Dired. It
17810 not only gives Dired an appealing and highly customizable user interface, but
17811 also comes together with almost all possible parts required for full usability
17812 as a modern file manager.")
17813 (license license:gpl3+)))
17815 (define-public emacs-which-key
17817 (name "emacs-which-key")
17822 (uri (git-reference
17823 (url "https://github.com/justbur/emacs-which-key")
17824 (commit (string-append "v" version))))
17825 (file-name (git-file-name name version))
17827 (base32 "0ph5mrzz3r7x4dmy93v6affl4jznvic97a30mrs3kvhwyr2v4mby"))))
17828 (build-system emacs-build-system)
17831 #:test-command '("emacs" "--batch"
17832 "-l" "which-key-tests.el"
17833 "-f" "ert-run-tests-batch-and-exit")))
17834 (home-page "https://github.com/justbur/emacs-which-key")
17835 (synopsis "Display available key bindings in popup")
17837 "@code{emacs-which-key} is a minor mode for Emacs that displays the key
17838 bindings following your currently entered incomplete command (a prefix) in a
17839 popup. For example, after enabling the minor mode if you enter C-x and wait
17840 for the default of 1 second, the minibuffer will expand with all of the
17841 available key bindings that follow C-x (or as many as space allows given your
17843 (license license:gpl3+)))
17845 (define-public emacs-free-keys
17847 (name "emacs-free-keys")
17854 (url "https://github.com/Fuco1/free-keys")
17856 (file-name (git-file-name name version))
17858 (base32 "0xgifa7s9n882f9ymyyz9gc11xfbj3vfpnxiq1fqfm5hmwx9pwbc"))))
17859 (build-system emacs-build-system)
17860 (home-page "https://github.com/Fuco1/free-keys")
17861 (synopsis "Show free keybindings for modkeys or prefixes in Emacs.")
17863 "Free-keys shows available key bindings in the current Emacs buffer.")
17864 (license license:gpl3+)))
17866 (define-public emacs-hercules
17868 (name "emacs-hercules")
17873 (uri (git-reference
17874 (url "https://gitlab.com/jjzmajic/hercules.el")
17875 (commit (string-append "v" version))))
17876 (file-name (git-file-name name version))
17878 (base32 "1rp37rhkj8jm07dwr74vc68dhrbvyvrxjdavpb0h073ps9vl9dsc"))))
17879 (build-system emacs-build-system)
17881 (list emacs-which-key))
17882 (home-page "https://gitlab.com/jjzmajic/hercules.el")
17883 (synopsis "Call a chain of related commands without repeated prefix keys")
17885 "This package provides sticky-key-like functionality to obviate the need
17886 for repeated prefix-key sequences, and can reuse existing keymaps. The list
17887 of commands is displayed in a handy popup.")
17888 (license license:gpl3+)))
17890 (define-public emacs-ws-butler
17892 (name "emacs-ws-butler")
17897 (uri (git-reference
17898 (url "https://github.com/lewang/ws-butler")
17899 (commit "323b651dd70ee40a25accc940b8f80c3a3185205")))
17900 (file-name (git-file-name name version))
17902 (base32 "1a4b0lsmwq84qfx51c5xy4fryhb1ysld4fhgw2vr37izf53379sb"))))
17903 (build-system emacs-build-system)
17906 #:test-command '("ert-runner" "tests")))
17908 (list emacs-ert-runner))
17909 (home-page "https://github.com/lewang/ws-butler")
17910 (synopsis "Trim spaces from end of lines")
17912 "This Emacs package automatically and unobtrusively trims whitespace
17913 characters from end of lines.")
17914 (license license:gpl3+)))
17916 (define-public emacs-opencl-mode
17917 ;; Upstream never makes any formal releases, there is only v1.0.
17918 ;; Use the latest commit instead.
17919 (let ((commit "15091eff92c33ee0d1ece40eb99299ef79fee92d")
17922 (name "emacs-opencl-mode")
17923 (version (git-version "1.0" revision commit))
17926 (uri (git-reference
17927 (url "https://github.com/salmanebah/opencl-mode")
17929 (file-name (git-file-name name version))
17931 (base32 "1zn6rr48w0ai0sn51zzyp546va6flfgf9lm12vfrdb6kkiiiq403"))))
17932 (build-system emacs-build-system)
17933 (synopsis "Emacs major mode for editing OpenCL kernels")
17934 (description "This Emacs package provides the @code{opencl-mode} major
17935 mode for editing OpenCL kernels. It supports syntax highlighting and online
17936 access to the OpenCL documentation through the @code{opencl-lookup} function.")
17937 (home-page "https://github.com/salmanebah/opencl-mode")
17938 (license license:gpl3+))))
17940 (define-public emacs-openwith
17941 ;; There is no release tag. Version is extracted from main file.
17942 (let ((version "20120531")
17944 (commit "5fe01dee520d24c839ad5ee18822667457d9f352"))
17946 (name "emacs-openwith")
17947 (version (git-version version revision commit))
17951 (uri (git-reference
17952 (url "https://github.com/garberw/openwith")
17954 (file-name (git-file-name name version))
17956 (base32 "1scbawhlzmj5nhix779rlqf462g37q84vpq205qhg4qyscvfx6bi"))))
17957 (build-system emacs-build-system)
17958 (home-page "https://github.com/garberw/openwith")
17959 (synopsis "Open external applications for files with Emacs")
17961 "This package enables you to associate file name patterns with external
17962 applications that are automatically invoked when you use commands like
17963 @code{find-file}. For example, you can have it open @code{png} files with
17964 @code{feh} and @code{mp4} files with @code{mpv}. This is especially useful
17965 when browsing files with Dired.")
17966 (license license:gpl2+))))
17968 (define-public emacs-org-edit-latex
17970 (name "emacs-org-edit-latex")
17975 (uri (git-reference
17976 (url "https://github.com/et2010/org-edit-latex")
17977 (commit (string-append "v" version))))
17978 (file-name (git-file-name name version))
17980 (base32 "1w0lyz71dq8x28ira4hig1b70bqn1dr53w3k5dgch9szcf6xa86y"))))
17981 (build-system emacs-build-system)
17984 (modify-phases %standard-phases
17985 (add-before 'build 'set-home
17986 (lambda _ (setenv "HOME" "/tmp"))))))
17988 (list emacs-auctex emacs-org))
17989 (home-page "https://github.com/et2010/org-edit-latex")
17990 (synopsis "Edit a LaTeX fragment just like editing a source block")
17992 "Org Edit LaTeX is an extension for Org mode. It lets you edit a LaTeX
17993 fragment in a dedicated buffer just like editing a source block.")
17994 (license license:gpl3+)))
17996 (define-public emacs-emamux
17998 (name "emacs-emamux")
18003 (uri (git-reference
18004 (url "https://github.com/syohex/emacs-emamux")
18006 (file-name (git-file-name name version))
18008 (base32 "19y69qw79miim9cz5ji54gwspjkcp9g2c1xr5s7jj2fiabnxax6b"))))
18009 (build-system emacs-build-system)
18010 (home-page "https://github.com/syohex/emacs-emamux")
18011 (synopsis "Manipulate Tmux from Emacs")
18013 "@code{emacs-emamux} lets Emacs interact with the @code{tmux} terminal
18015 (license license:gpl3+)))
18017 (define-public emacs-plz
18024 (uri (git-reference
18025 (url "https://github.com/alphapapa/plz.el")
18027 (file-name (git-file-name name version))
18029 (base32 "1ack4rajjdmb3fqz5v394rqpvn9mfvbkrxra27yrcqz97mma1ki7"))))
18030 (build-system emacs-build-system)
18031 (inputs (list curl))
18035 #~(modify-phases %standard-phases
18036 (add-after 'unpack 'substitute-curl-path
18037 (lambda* (#:key inputs #:allow-other-keys)
18038 (emacs-substitute-variables "plz.el"
18039 ("plz-curl-program" (search-input-file inputs "/bin/curl"))))))))
18040 (home-page "https://github.com/alphapapa/plz.el")
18041 (synopsis "HTTP library for Emacs")
18043 "This package provides HTTP library for Emacs. It uses Curl as a backend,
18044 which avoids some of the issues with using Emacs’s built-in Url library.")
18045 (license license:gpl3+)))
18047 (define-public emacs-ement
18049 (name "emacs-ement")
18054 (uri (git-reference
18055 (url "https://github.com/alphapapa/ement.el")
18056 (commit (string-append "v" version))))
18057 (file-name (git-file-name name version))
18059 (base32 "1gc5b0mzh4a4xxbzfgjx5m830rymnf93qn2k5jvj7kmwnh15w89h"))))
18060 (build-system emacs-build-system)
18062 `(#:emacs ,emacs)) ;need libxml support
18067 emacs-taxy-magit-section
18069 (home-page "https://github.com/alphapapa/ement.el")
18070 (synopsis "Matrix client for Emacs")
18071 (description "Ement.el is a Matrix client for Emacs.")
18072 (license license:gpl3+)))
18074 (define-public emacs-rpm-spec-mode
18075 (let ((commit "c1c38050c48ea330c7cea632b8785d66daeefb2b")
18078 (name "emacs-rpm-spec-mode")
18079 (version (git-version "0.16" revision commit))
18082 (uri (git-reference
18083 (url "https://github.com/stigbjorlykke/rpm-spec-mode")
18085 (file-name (git-file-name name version))
18088 "0427kcvf2ljhzwxskn3jzk0ncrl3f9zcz2sm83d9pmhh5jax2gch"))))
18089 (build-system emacs-build-system)
18093 #~(modify-phases %standard-phases
18094 (add-after 'unpack 'adjust-for-emacs-28
18096 ;; Since Emacs 28, define-obsolete-variable-alias require a
18097 ;; 3rd argument to specify when the deprecation was
18099 ;; The rpm-spec-mode.el file is encoded in ISO-8859-1 (iso-latin-1).
18100 (with-fluids ((%default-port-encoding "ISO-8859-1"))
18101 (substitute* "rpm-spec-mode.el"
18102 (("'rpm-spec-completion-ignore-case" all)
18103 (string-append all " \"0.12\""))
18104 (("'rpm-spec-nobuild" all)
18105 (string-append all " \"0.12\""))
18106 (("'rpm-spec-initialize-sections" all)
18107 (string-append all " \"0.12\""))
18108 (("'rpm-spec-insert-changelog-version" all)
18109 (string-append all " \"0.12\"")))))))))
18110 (home-page "https://github.com/stigbjorlykke/rpm-spec-mode")
18111 (synopsis "Emacs major mode for editing RPM spec files")
18112 (description "@code{emacs-rpm-spec-mode} provides an Emacs major mode for
18113 editing RPM spec files.")
18114 (license license:gpl2+))))
18116 (define-public emacs-lcr
18123 (uri (git-reference
18124 (url "https://github.com/jyp/lcr")
18126 (file-name (git-file-name name version))
18128 (base32 "0hhn0gqkwki0dfk6j759hmbj1ijn4bs550jh3kgy9jfmnb7cd81l"))))
18129 (build-system emacs-build-system)
18132 (home-page "https://github.com/jyp/lcr")
18133 (synopsis "Lightweight coroutines in Emacs Lisp")
18134 (description "This package provides macros that can translate code into
18135 equivalent continuation-passing code, as well as miscellaneous utility
18136 functions written in continuation-passing style.")
18137 (license license:gpl3+)))
18139 (define-public emacs-attrap
18141 (name "emacs-attrap")
18146 (uri (git-reference
18147 (url "https://github.com/jyp/attrap")
18150 (base32 "0wqc7bqx9rvk8r7fd3x84h8p01v97s6w2jf29nnjb59xakwp22i7"))
18151 (file-name (git-file-name name version))))
18152 (build-system emacs-build-system)
18154 (list emacs-dash emacs-f emacs-flycheck emacs-s))
18155 (home-page "https://github.com/jyp/attrap")
18156 (synopsis "Fix coding error at point")
18157 (description "This package provides a command to fix the Flycheck error
18159 (license license:gpl3+)))
18161 (define-public emacs-git-messenger
18163 (name "emacs-git-messenger")
18168 (uri (git-reference
18169 (url "https://github.com/syohex/emacs-git-messenger")
18171 (file-name (git-file-name name version))
18173 (base32 "04fnby2nblk8l70gv09asxkmnn53fh1pdfs77ix44npp99fyw8ix"))))
18174 (build-system emacs-build-system)
18176 (list emacs-popup))
18179 #:test-command '("emacs" "--batch" "-l" "test/test.el"
18180 "-f" "ert-run-tests-batch-and-exit")))
18181 (home-page "https://github.com/syohex/emacs-git-messenger")
18182 (synopsis "Popup commit message at current line")
18183 (description "@code{emacs-git-messenger} provides
18184 @code{git-messenger:popup-message}, a function that when called, will popup
18185 the last git commit message for the current line. This uses git-blame
18187 (license license:gpl3+)))
18189 (define-public emacs-gitpatch
18191 (name "emacs-gitpatch")
18196 (uri (git-reference
18197 (url "https://github.com/tumashu/gitpatch")
18198 (commit (string-append "v" version))))
18199 (file-name (git-file-name name version))
18201 (base32 "1drf4fvmak7brf16axkh4nfz8pg44i7pjhfjz3dbkycbpp8y5vig"))))
18202 (build-system emacs-build-system)
18203 (home-page "https://github.com/tumashu/gitpatch")
18204 (synopsis "Mail git patch from Emacs")
18205 (description "@code{emacs-gitpatch} lets users easily send git patches,
18206 created by @code{git format-patch}, from @code{magit}, @code{dired} and
18207 @code{ibuffer} buffers.")
18208 (license license:gpl3+)))
18210 (define-public emacs-git-email
18211 ;; Use latest commit since latest tagged release is missing important
18213 (let ((commit "b5ebade3a48dc0ce0c85699f25800808233c73be")
18216 (name "emacs-git-email")
18217 (version (git-version "0.2.0" revision commit))
18221 (uri (git-reference
18222 (url "https://git.sr.ht/~yoctocell/git-email")
18225 (search-patches "emacs-git-email-missing-parens.patch"))
18226 (file-name (git-file-name name version))
18228 (base32 "1lk1yds7idgawnair8l3s72rgjmh80qmy4kl5wrnqvpmjrmdgvnx"))))
18229 (build-system emacs-build-system)
18232 (modify-phases %standard-phases
18233 ;; piem is not yet packaged in Guix.
18234 (add-after 'unpack 'remove-piem
18236 (delete-file "git-email-piem.el")))
18237 (add-before 'install 'makeinfo
18239 (invoke "makeinfo" "doc/git-email.texi"))))))
18243 (list mu emacs-magit emacs-notmuch))
18244 (license license:gpl3+)
18245 (home-page "https://sr.ht/~yoctocell/git-email")
18246 (synopsis "Format and send Git patches in Emacs")
18247 (description "This package provides utilities for formatting and
18248 sending Git patches via Email, without leaving Emacs."))))
18250 (define-public emacs-erc-hl-nicks
18252 (name "emacs-erc-hl-nicks")
18257 (uri (git-reference
18258 (url "https://github.com/leathekd/erc-hl-nicks")
18260 (file-name (git-file-name name version))
18262 (base32 "0k57scxa8rm859fqsm8srhps7rlq06jzazhjbwnadzrh8i5fyvra"))))
18263 (build-system emacs-build-system)
18264 (synopsis "Nickname highlighting for Emacs ERC")
18265 (description "@code{erc-hl-nicks} highlights nicknames in ERC, an IRC
18266 client for Emacs. The main features are:
18268 @item Auto-colorizes nicknames without having to specify colors
18269 @item Ignores certain characters that IRC clients add to nicknames to avoid
18270 duplicates (nickname, nickname’, nickname\", etc.)
18271 @item Attempts to produce colors with a sufficient amount of contrast between
18272 the nick color and the background color
18274 (home-page "https://github.com/leathekd/erc-hl-nicks")
18275 (license license:gpl3+)))
18277 (define-public emacs-engine-mode
18279 (name "emacs-engine-mode")
18284 (uri (git-reference
18285 (url "https://github.com/hrs/engine-mode")
18286 (commit (string-append "v" version))))
18287 (file-name (git-file-name name version))
18289 (base32 "11ls3wrvfmcz61pps438x772nk06rqff91s3xi5rzc3n2hkl1ayb"))))
18290 (build-system emacs-build-system)
18291 (synopsis "Minor mode for defining and querying search engines")
18292 (description "@code{engine-mode} is a global minor mode for Emacs. It
18293 enables you to easily define search engines, bind them to keybindings, and
18294 query them from the comfort of your editor.")
18295 (home-page "https://github.com/hrs/engine-mode")
18296 (license license:gpl3+)))
18298 (define-public emacs-engrave-faces
18300 (name "emacs-engrave-faces")
18304 (uri (string-append "https://elpa.gnu.org/packages/engrave-faces-"
18308 "1q4sjl2rvcfwcirm32nmi53258ln71yhh1dgszlxwknm38a14v3i"))))
18309 (build-system emacs-build-system)
18310 (home-page "https://github.com/tecosaur/engrave-faces")
18311 (synopsis "Convert font-lock faces to other formats")
18312 (description "There are some great packages for exporting buffers to
18313 particular formats, but each one seems to reinvent the core mechanism of
18314 processing the font-lock in a buffer such that it can be exported to
18315 a particular format.
18317 This package aims to produce a versatile generic core which can process
18318 a fontified buffer and pass the data to any number of backends which can deal
18319 with specific output formats.")
18320 (license license:gpl3+)))
18322 (define-public emacs-inheritenv
18324 (name "emacs-inheritenv")
18329 (uri (git-reference
18330 (url "https://github.com/purcell/inheritenv")
18332 (file-name (git-file-name name version))
18334 (base32 "0ygzf70vfb7qwpsllcq5i3brprsnx3sxy2zng02mzwrr5jkx4ypc"))))
18335 (build-system emacs-build-system)
18336 (home-page "https://github.com/purcell/inheritenv/releases")
18337 (synopsis "Emacs temp buffers inherit buffer-local environment variables")
18339 "Inheritenv provides tools to execute processes inheriting the calling
18340 buffer's environment.")
18341 (license license:gpl3+)))
18343 (define-public emacs-enlive
18345 (name "emacs-enlive")
18350 (uri (git-reference
18351 (url "https://github.com/zweifisch/enlive")
18352 (commit (string-append "v" version))))
18353 (file-name (git-file-name name version))
18356 "08j6b79vy8ry4ad1abk3hvxjbb4ylrhkvrbrnq1gcikl4h1p2v63"))))
18357 (build-system emacs-build-system)
18358 (home-page "http://github.com/zweifisch/enlive")
18359 (synopsis "Query HTML document with CSS selectors in Emacs")
18361 "Enlive is an Emacs library that allows the user to query HTML documents
18362 from within Elisp using a DSL similar to CSS selectors.")
18363 (license license:gpl3+)))
18365 (define-public emacs-envrc
18367 (name "emacs-envrc")
18372 (uri (git-reference
18373 (url "https://github.com/purcell/envrc")
18375 (file-name (git-file-name name version))
18378 "0nqqx4qlw75lmbn0v927sg3xyjkk86ihw1q3rdbbn59va41grds4"))))
18379 (build-system emacs-build-system)
18381 (list emacs-inheritenv))
18382 (home-page "https://github.com/purcell/envrc")
18383 (synopsis "Support for Direnv which operates buffer-locally")
18385 "This is library which uses Direnv to set environment variables on
18386 a per-buffer basis. This means that when you work across multiple projects
18387 which have @file{.envrc} files, all processes launched from the buffers ``in''
18388 those projects will be executed with the environment variables specified in
18389 those files. This allows different versions of linters and other tools to be
18390 used in each project if desired.")
18391 (license license:gpl3+)))
18393 (define-public emacs-prop-menu
18395 (name "emacs-prop-menu")
18400 (uri (git-reference
18401 (url "https://github.com/david-christiansen/prop-menu-el")
18403 (file-name (git-file-name name version))
18406 "18ap2liz5r5a8ja2zz9182fnfm47jnsbyblpq859zks356k37iwc"))))
18407 (build-system emacs-build-system)
18409 "https://github.com/david-christiansen/prop-menu-el")
18411 "Create and display a context menu based on text and overlay properties")
18413 "This is a library for computing context menus based on text
18414 properties and overlays. The intended use is to have tools that
18415 annotate source code and others that use these annotations, without
18416 requiring a direct coupling between them, but maintaining
18419 Major modes that wish to use this library should first define an
18420 appropriate value for @code{prop-menu-item-functions}. Then, they should
18421 bind @code{prop-menu-by-completing-read} to an appropriate
18422 key. Optionally, a mouse pop-up can be added by binding
18423 @code{prop-menu-show-menu} to a mouse event.")
18424 (license license:gpl3+)))
18426 (define-public emacs-idris-mode
18427 (let ((commit "9bc7697406f719258d93835df3c1761efbfecaa7")
18430 (name "emacs-idris-mode")
18431 (version (git-version "1.0" revision commit))
18435 (uri (git-reference
18436 (url "https://github.com/idris-hackers/idris-mode")
18438 (file-name (git-file-name name commit))
18441 "1d1f7kx0fw632js7qd1sra5wbpwyamcqs5wpzhyynmr5ybb0vyl7"))))
18442 (build-system emacs-build-system)
18444 (list emacs-prop-menu))
18446 "https://github.com/idris-hackers/idris-mode")
18447 (synopsis "Major mode for editing Idris code")
18449 "This is an Emacs mode for editing Idris code. It is compatible with
18450 the latest versions of Idris 1.")
18451 (license license:gpl3+))))
18453 (define-public emacs-browse-at-remote
18455 (name "emacs-browse-at-remote")
18460 (uri (git-reference
18461 (url "https://github.com/rmuslimov/browse-at-remote")
18463 (file-name (git-file-name name version))
18465 (base32 "0bx4ns0jb0sqrjk1nsspvl3mhz3n12925azf7brlwb1vcgnji09v"))))
18466 (build-system emacs-build-system)
18469 #:test-command '("ert-runner")))
18471 (list emacs-ert-runner))
18473 (list emacs-f emacs-s))
18474 (home-page "https://github.com/rmuslimov/browse-at-remote")
18475 (synopsis "Open github/gitlab/bitbucket/stash page from Emacs")
18477 "This Emacs package allows you to open a target page on
18478 github/gitlab (or bitbucket) by calling @code{browse-at-remote} command.
18479 It supports dired buffers and opens them in tree mode at destination.")
18480 (license license:gpl3+)))
18482 (define-public emacs-tiny
18483 (let ((commit "fd8a6b0b0c564d8242259e20e557ee6041f40908")
18486 (name "emacs-tiny")
18487 (version (git-version "0.2.1" revision commit))
18491 (uri (git-reference
18492 (url "https://github.com/abo-abo/tiny")
18494 (file-name (git-file-name name version))
18497 "1498j392ap2mk4zmsm2id16pfgvj78r428da9vw7hdrzzibai2cx"))))
18498 (build-system emacs-build-system)
18501 #:test-command '("make" "test")))
18502 (home-page "https://github.com/abo-abo/tiny")
18503 (synopsis "Quickly generate linear ranges in Emacs")
18505 "The main command of the @code{tiny} extension for Emacs is @code{tiny-expand}.
18506 It is meant to quickly generate linear ranges, e.g. 5, 6, 7, 8. Some elisp
18507 proficiency is an advantage, since you can transform your numeric range with
18508 an elisp expression.")
18509 (license license:gpl3+))))
18511 (define-public emacs-taxy
18513 (name "emacs-taxy")
18518 (uri (string-append
18519 "https://elpa.gnu.org/packages/taxy-" version ".tar"))
18522 "05czw8fkifb25rwl99dmncr1g0rjfx1bqijl7igqs9j6h9ia2xvg"))))
18523 (build-system emacs-build-system)
18525 (list emacs-magit))
18526 (home-page "https://github.com/alphapapa/taxy.el")
18527 (synopsis "Programmable taxonomical grouping for arbitrary objects")
18529 "Taxy provides a programmable way to classify arbitrary objects into
18530 a hierarchical taxonomy. Allows you to automatically put things in nested
18532 (license license:gpl3+)))
18534 (define-public emacs-taxy-magit-section
18536 (name "emacs-taxy-magit-section")
18540 (uri (string-append
18541 "https://elpa.gnu.org/packages/taxy-magit-section-" version
18545 "0bs00y8pl51dji23zx5w64h6la0y109q0jv2q1nggizk6q5bsxmg"))))
18546 (build-system emacs-build-system)
18547 (propagated-inputs (list emacs-magit emacs-taxy))
18548 (home-page "https://github.com/alphapapa/taxy.el")
18549 (synopsis "View Taxy structs in a Magit Section buffer")
18551 "This library provides a way to view @code{taxy} structs in a column-based,
18552 @code{magit-section} buffer. Columns are defined using simple top-level
18553 forms, and new columns may be easily defined by users in their
18555 (license license:gpl3+)))
18557 (define-public emacs-emojify
18559 (name "emacs-emojify")
18564 (uri (git-reference
18565 (url "https://github.com/iqbalansari/emacs-emojify")
18566 (commit (string-append "v" version))))
18567 (file-name (git-file-name name version))
18570 "1fqnj5x7ivjkm5y927dqqnm85q5hzczlb0hrfpjalrhasa6ijsrm"))))
18571 (build-system emacs-build-system)
18573 `(#:include (cons "^data/" %default-include)))
18576 (home-page "https://github.com/iqbalansari/emacs-emojify")
18577 (synopsis "Display emojis in Emacs")
18578 (description "This package displays emojis in Emacs similar to how Github,
18579 Slack, and other websites do. It can display plain ASCII like @code{:)} as
18580 well as Github-style emojis like @code{:smile:}. It provides a minor mode
18581 @code{emojify-mode} to enable the display of emojis in a buffer.")
18582 (license license:gpl3+)))
18584 (define-public emacs-make-it-so
18585 (let ((commit "b73dfb640588123c9eece230ad72b37604f5c126")
18588 (name "emacs-make-it-so")
18589 (version (git-version "0.1.0" revision commit))
18593 (uri (git-reference
18594 (url "https://github.com/abo-abo/make-it-so")
18596 (file-name (git-file-name name version))
18599 "0p6xhyinzzkrwzbpxqfm8hlii0ikvmmylya240bwsa77w0g1k6xq"))))
18600 (build-system emacs-build-system)
18602 `(#:include (cons "^recipes/" %default-include)))
18605 (home-page "https://github.com/abo-abo/make-it-so")
18606 (synopsis "Transform files with Makefile recipes")
18607 (description "This package provides an interface for selecting from
18608 different conversion recipes, often including tools like @code{ffmpeg} or
18609 @code{convert}. The conversion command need only be written once, and
18610 subsequent invocations can be readily customized. Several recipes are
18611 included by default, and more can be readily added.")
18612 (license license:gpl3+))))
18614 (define-public emacs-unidecode
18615 (let ((commit "5502ada9287b4012eabb879f12f5b0a9df52c5b7")
18618 (name "emacs-unidecode")
18619 (version (git-version "0.2" revision commit))
18623 (uri (git-reference
18624 (url "https://github.com/sindikat/unidecode")
18626 (file-name (git-file-name name version))
18629 "03x3nakbhmakwm977mwrf8jifvjnfwzpjv6wrwpizbqjnkgfchmn"))))
18630 (build-system emacs-build-system)
18632 `(#:include (cons* "^tools/" "^data/" %default-include)
18634 #:test-command '("emacs" "--batch"
18635 "-l" "unidecode-test.el"
18636 "-f" "ert-run-tests-batch-and-exit")
18638 (modify-phases %standard-phases
18639 (add-before 'check 'make-tests-writable
18641 (make-file-writable "unidecode-test.el")
18643 (add-before 'check 'add-require
18645 (emacs-batch-edit-file "unidecode-test.el"
18646 `(progn (progn (goto-char (point-min))
18650 (insert "(require 'unidecode)"))
18651 (basic-save-buffer)))
18653 (home-page "https://github.com/sindikat/unidecode")
18654 (synopsis "Transliterate Unicode text to ASCII")
18655 (description "This package provides functions for converting Unicode to ASCII.")
18656 (license license:gpl2+))))
18658 (define-public emacs-pubmed
18660 (name "emacs-pubmed")
18665 (uri (git-reference
18666 (url "https://gitlab.com/fvdbeek/emacs-pubmed")
18667 (commit (string-append "v" version))))
18668 (file-name (git-file-name name version))
18671 "05j4nhn2bgacc54pvmkhwgdsmzxzkcfn49a12k43wckrrf3izbqf"))))
18672 (build-system emacs-build-system)
18674 (list emacs-deferred emacs-esxml emacs-s emacs-unidecode))
18675 (home-page "https://gitlab.com/fvdbeek/emacs-pubmed")
18676 (synopsis "Interface to PubMed")
18677 (description "This package provides an Emacs interface to the PubMed
18678 database of references on life sciences.")
18679 (license license:gpl3+)))
18681 (define-public emacs-websocket
18683 (name "emacs-websocket")
18688 (uri (string-append "https://elpa.gnu.org/packages/"
18689 "websocket-" version ".tar"))
18691 (base32 "1x664zswas0fpml7zaj59zy97avrm49zb80zd69rlkqzz1m45psc"))))
18692 (build-system emacs-build-system)
18693 (home-page "https://elpa.gnu.org/packages/websocket.html")
18694 (synopsis "Emacs WebSocket client and server")
18696 "This is an Elisp library for WebSocket clients to talk to WebSocket
18697 servers, and for WebSocket servers to accept connections from WebSocket
18698 clients. This library is designed to be used by other library writers, to
18699 write applications that use WebSockets, and is not useful by itself.")
18700 (license license:gpl3+)))
18702 (define-public emacs-oauth2
18704 (name "emacs-oauth2")
18709 (uri (string-append "https://elpa.gnu.org/packages/"
18710 "oauth2-" version ".tar"))
18712 (base32 "1rzly2nwjywrfgcmp8zidbmjl2ahyd8l8507lb1mxm4xqryvf316"))))
18713 (build-system emacs-build-system)
18714 (home-page "https://elpa.gnu.org/packages/oauth2.html")
18715 (synopsis "OAuth 2.0 authorization protocol implementation")
18717 "This package provides an Elisp implementation of the OAuth 2.0 draft.
18718 The main entry point is @code{oauth2-auth-and-store} which will return a token
18719 structure. This token structure can be then used with
18720 @code{oauth2-url-retrieve-synchronously} or @code{oauth2-url-retrieve} to
18721 retrieve any data that need OAuth authentication to be accessed. If the token
18722 needs to be refreshed, the code handles it automatically and stores the new
18723 value of the access token.")
18724 (license license:gpl3+)))
18726 (define-public emacs-auth-source-xoauth2
18728 (name "emacs-auth-source-xoauth2")
18733 (uri (git-reference
18734 (url "https://github.com/ccrusius/auth-source-xoauth2")
18735 (commit (string-append "v" version))))
18736 (file-name (git-file-name name version))
18738 (base32 "0nl859csl8xcd6ybpjj15ph8l8fxwkwf45kbylss68alkyf1rl3v"))))
18739 (build-system emacs-build-system)
18740 (home-page "https://github.com/ccrusius/auth-source-xoauth2")
18741 (synopsis "XOAuth2 authentication capabilities for Emacs auth-source")
18743 "This package adds XOAuth2 authentication capabilities to Emacs
18744 auth-source. This integration requires some preliminary work on the users’
18745 part, which includes creating tokens.")
18746 (license license:asl2.0)))
18748 (define-public emacs-circe
18750 (name "emacs-circe")
18755 (uri (git-reference
18756 (url "https://github.com/jorgenschaefer/circe")
18757 (commit (string-append "v" version))))
18758 (file-name (git-file-name name version))
18760 (base32 "0lrxd4hanaxj85nafsc0wss677slmyaks3qb7a95mj7vic3ib937"))))
18761 (build-system emacs-build-system)
18764 #:test-command '("buttercup" "-L" ".")
18765 #:emacs ,emacs ;requires gnutls
18767 (modify-phases %standard-phases
18768 ;; The HOME environment variable should be set to an existing
18769 ;; directory for the tests to succeed.
18770 (add-before 'check 'set-home
18772 (setenv "HOME" "/tmp")))
18773 (add-before 'check 'remove-failing-tests
18775 (make-file-writable "tests/test-circe.el")
18776 (emacs-batch-edit-file "tests/test-circe.el"
18779 '("should have circe-server-buffer set in the mode hook"
18780 "should complete nicks with colon at the beginning of the input"
18781 "should complete nicks without colon later in the input"))
18782 (goto-char (point-min))
18783 (search-forward (format "(it %S" test))
18784 (beginning-of-line)
18786 (basic-save-buffer))))))))
18788 (list emacs-buttercup))
18789 ;; In order to securely connect to an IRC server using TLS, Circe requires
18790 ;; the GnuTLS binary.
18793 (home-page "https://github.com/jorgenschaefer/circe")
18794 (synopsis "Client for IRC in Emacs")
18795 (description "Circe is a Client for IRC in Emacs. It integrates well with
18796 the rest of the editor, using standard Emacs key bindings and indicating
18797 activity in channels in the status bar so it stays out of your way unless you
18799 (license license:gpl3+)))
18801 (define-public emacs-tracking
18803 (inherit emacs-circe)
18804 (name "emacs-tracking")
18806 ;; "tracking.el" is a library extracted from Circe package. It requires
18808 `(#:include '("^shorten.el$" "^tracking.el$")
18809 ,@(package-arguments emacs-circe)))
18810 (home-page "https://github.com/jorgenschaefer/circe/wiki/Tracking")
18811 (synopsis "Buffer tracking library")
18812 (description "@code{tracking.el} provides a way for different modes to
18813 notify the user that a buffer needs attention. The user then can cycle
18814 through them using @key{C-c C-SPC}.")
18815 (license license:gpl3+)))
18817 (define-public emacs-slack
18818 (let ((commit "ff46d88726482211e3ac3d0b9c95dd4fdffe11c2")
18821 (name "emacs-slack")
18822 (version (git-version "0.0.2" revision commit))
18825 (uri (git-reference
18826 (url "https://github.com/yuya373/emacs-slack")
18828 (file-name (git-file-name name commit))
18831 "15g4dmy4iqqpk8ivhkpsngzllbw0nc5d2sc9j36sdnhwkajzhidj"))))
18832 (build-system emacs-build-system)
18835 (modify-phases %standard-phases
18836 ;; HOME needs to exist for source compilation.
18837 (add-before 'build 'set-HOME
18838 (lambda _ (setenv "HOME" "/tmp") #t)))))
18847 (home-page "https://github.com/yuya373/emacs-slack")
18848 (synopsis "Slack client for Emacs")
18849 (description "This package provides an Emacs client for the Slack
18850 messaging service.")
18851 (license license:gpl3+))))
18853 (define-public emacs-helm-slack
18854 (let ((commit "465f6220f3f5bee4d95492991fca1290c89534eb")
18857 (name "emacs-helm-slack")
18858 (version (git-version "0" revision commit))
18861 (uri (git-reference
18862 (url "https://github.com/yuya373/helm-slack")
18864 (file-name (git-file-name name commit))
18867 "0p1s1kl8v68qjprqkf034cz911qzbqxbscqgpn0c3mbm3yfx81f7"))))
18868 (build-system emacs-build-system)
18871 (modify-phases %standard-phases
18872 ;; HOME needs to exist for source compilation.
18873 (add-before 'build 'set-HOME
18874 (lambda _ (setenv "HOME" "/tmp") #t)))))
18875 (propagated-inputs (list emacs-slack))
18876 (home-page "https://github.com/yuya373/helm-slack")
18877 (synopsis "Helm extension for emacs-slack")
18878 (description "This package provides an helm extension for emacs-slack
18880 (license license:gpl3+))))
18882 (define-public emacs-bash-completion
18883 ;; Need to use a newer commit than the latest version in order to support
18884 ;; completion interfaces that alters the candidate list provided by the
18886 (let ((commit "c5eaeed156ab906190c662d491269230967104b1")
18889 (name "emacs-bash-completion")
18890 (version (git-version "3.1.0" revision commit))
18894 (uri (git-reference
18895 (url "https://github.com/szermatt/emacs-bash-completion")
18897 (file-name (git-file-name name version))
18899 (base32 "0r221iirqsbz13s76r68i496izbirrvcw8ql3wsh205zmxa3jqg1"))))
18900 (inputs (list bash))
18901 (build-system emacs-build-system)
18905 #~(modify-phases %standard-phases
18906 (add-after 'unpack 'make-git-checkout-writable
18908 (for-each make-file-writable (find-files "."))))
18909 (add-before 'install 'configure
18910 (lambda* (#:key inputs #:allow-other-keys)
18911 (emacs-substitute-variables "bash-completion.el"
18912 ("bash-completion-prog"
18913 (search-input-file inputs "/bin/bash"))))))))
18914 (home-page "https://github.com/szermatt/emacs-bash-completion")
18915 (synopsis "Bash completion for the shell buffer")
18917 "@code{bash-completion} defines dynamic completion hooks for shell-mode
18918 and shell-command prompts that are based on Bash completion.")
18919 (license license:gpl2+))))
18921 (define-public emacs-easy-kill
18923 (name "emacs-easy-kill")
18927 (uri (string-append "https://elpa.gnu.org/packages/easy-kill-"
18931 "0h8rzd23sgkj3vxnyhis9iyq8n3xqp9x1mvxlm61s6wwj9j398j6"))))
18932 (build-system emacs-build-system)
18933 (home-page "https://github.com/leoliu/easy-kill")
18934 (synopsis "Kill and mark things easily in Emacs")
18936 "This package provides commands @code{easy-kill} and @code{easy-mark} to
18937 let users kill or mark things easily.")
18938 (license license:gpl3+)))
18940 (define-public emacs-csv-mode
18942 (name "emacs-csv-mode")
18947 (uri (string-append "https://elpa.gnu.org/packages/"
18948 "csv-mode-" version ".tar"))
18950 (base32 "11f01lyz6i133njigg53r890cic8y13kz7dswc8mj7m60a316dmv"))))
18951 (build-system emacs-build-system)
18952 (home-page "https://elpa.gnu.org/packages/csv-mode.html")
18953 (synopsis "Major mode for editing comma/char separated values")
18955 "This Emacs package implements CSV mode, a major mode for editing records
18956 in a generalized CSV (character-separated values) format.")
18957 (license license:gpl3+)))
18959 (define-public emacs-transmission
18961 (name "emacs-transmission")
18966 (uri (git-reference
18967 (url "https://github.com/holomorph/transmission")
18969 (file-name (git-file-name name version))
18971 (base32 "16bn8y2sd7kzihp8bxh4vyay16y91q3yc0gcd0bzywcx3hijqlfc"))))
18972 (build-system emacs-build-system)
18973 (home-page "https://github.com/holomorph/transmission")
18974 (synopsis "Emacs interface to a Transmission session")
18975 (description "This package provides an Emacs interface to interact with a
18976 running session of the Transmission Bittorrent client.
18981 @item List, add, start/stop, verify, remove torrents.
18982 @item Set speed limits, ratio limits, bandwidth priorities, trackers.
18983 @item Navigate to the corresponding file list, torrent info, peer info
18985 @item Toggle downloading and set priorities for individual files.
18987 (license license:gpl3+)))
18989 (define-public emacs-polymode
18991 (name "emacs-polymode")
18996 (uri (git-reference
18997 (url "https://github.com/polymode/polymode")
18998 (commit (string-append "v" version))))
18999 (file-name (git-file-name name version))
19001 (base32 "18ssl2h861dm2jkd3df6wkfr48p8zk337dbvpq5522kia7fq1lbn"))
19003 ;; XXX: Cherry-picked from upstream, remove when bumping to 0.2.3.
19004 (search-patches "emacs-polymode-fix-lexical-variable-error.patch"))))
19005 (build-system emacs-build-system)
19006 (home-page "https://github.com/polymode/polymode")
19007 (synopsis "Framework for multiple Emacs modes based on indirect buffers")
19009 "Polymode is an Emacs package that offers generic support for multiple
19010 major modes inside a single Emacs buffer. It is lightweight, object oriented
19011 and highly extensible. Creating a new polymode typically takes only a few
19012 lines of code. Polymode also provides extensible facilities for external
19013 literate programming tools for exporting, weaving and tangling.")
19014 (license license:gpl3+)))
19016 (define-public emacs-polymode-ansible
19018 (name "emacs-polymode-ansible")
19023 (uri (git-reference
19024 (url "https://gitlab.com/mavit/poly-ansible")
19026 (file-name (git-file-name name version))
19028 (base32 "0f0yq6gmkp194nxk90ipprglf1xkmxrgz1rkgrhfslvxq4q2l81h"))))
19029 (build-system emacs-build-system)
19031 (list emacs-ansible-doc emacs-jinja2-mode emacs-polymode
19033 (properties '((upstream-name . "poly-ansible")))
19034 (home-page "https://gitlab.com/mavit/poly-ansible/")
19035 (synopsis "Polymode for Ansible - Jinja2 in YAML")
19037 "Edit YAML files for Ansible containing embedded Jinja2 templating.")
19038 (license license:gpl3+)))
19040 (define-public emacs-polymode-markdown
19042 (name "emacs-polymode-markdown")
19044 (home-page "https://github.com/polymode/poly-markdown")
19048 (uri (git-reference
19050 (commit (string-append "v" version))))
19051 (file-name (git-file-name name version))
19053 (base32 "1q4qq0ql08hxkdrd2aal03560k612my7bvnfpfij3g432hn0p7v6"))))
19054 (build-system emacs-build-system)
19056 (list emacs-markdown-mode emacs-polymode))
19057 (properties '((upstream-name . "poly-markdown")))
19058 (synopsis "Polymode for Markdown mode")
19060 "This package allows editing source code blocks embedded in Markdown
19061 files using the major mode corresponding to each block.")
19062 (license license:gpl3+)))
19064 (define-public emacs-poly-noweb
19066 (name "emacs-poly-noweb")
19071 (uri (git-reference
19072 (url "https://github.com/polymode/poly-noweb")
19073 (commit (string-append "v" version))))
19074 (file-name (git-file-name name version))
19076 (base32 "1jl5h4nf10xd2gdlsxi6h2n3z5zh26ffcixn68xfp5q4zl34zk8p"))))
19077 (build-system emacs-build-system)
19079 (list emacs-polymode))
19080 (home-page "https://github.com/polymode/poly-noweb")
19081 (synopsis "Polymode for noweb")
19083 "This package provides @code{poly-noweb-mode}, a polymode for noweb
19085 (license license:gpl3+)))
19087 (define-public emacs-powershell
19088 ;; Tagged branch 0.1 is outdated (2015).
19089 (let ((revision "0")
19090 (commit "d1b3f95669343399f199f291ef76c09a0ede5e60"))
19092 (name "emacs-powershell")
19093 (build-system emacs-build-system)
19094 (version (git-version "0.3" revision commit))
19098 (uri (git-reference
19099 (url "https://github.com/jschaf/powershell.el")
19101 (file-name (git-file-name name version))
19103 (base32 "1cxhzaaig88zhylyycvb3849r85j1ijqklnh9zbqsfl2zhpb0g5c"))))
19104 (home-page "https://github.com/jschaf/powershell.el")
19105 (synopsis "Emacs mode for editing PowerShell scripts")
19107 "Powershell is an Emacs major mode for editing and running
19108 Microsoft PowerShell files.")
19109 (license license:gpl3+))))
19111 (define-public emacs-polymode-org
19113 (name "emacs-polymode-org")
19118 (uri (git-reference
19119 (url "https://github.com/polymode/poly-org")
19120 (commit (string-append "v" version))))
19121 (file-name (git-file-name name version))
19123 (base32 "1srnwcsn2bh8gqzxixkhffk7gbnk66kd4dgvxbnps5nxqc6v0qhc"))))
19124 (build-system emacs-build-system)
19126 (list emacs-polymode))
19127 (properties '((upstream-name . "poly-org")))
19128 (home-page "https://github.com/polymode/poly-org")
19129 (synopsis "Polymode definitions for Org mode buffers")
19131 "This package provides definitions for Polymode to support Org buffers.
19132 It edits source blocks in an Org buffer using the native modes of the blocks'
19133 languages while remaining inside the primary Org buffer.")
19134 (license license:gpl3+)))
19136 (define-public eless
19143 (uri (git-reference
19144 (url "https://github.com/kaushalmodi/eless")
19145 (commit (string-append "v" version))))
19146 (file-name (git-file-name name version))
19148 (base32 "01gpzg35v972ik4bimcyhqabjca6sjj41kw2i15xj1k33p4sjqpf"))))
19149 (build-system copy-build-system)
19155 ("docs/eless.info" "share/info/")
19156 ("eless.org" ,(string-append "share/doc/eless-" version "/")))))
19157 (home-page "https://github.com/kaushalmodi/eless")
19158 (synopsis "Use Emacs as a paginator")
19159 (description "@code{eless} provides a combination of Bash script
19160 and a minimal Emacs view-mode.
19165 @item Independent of a user’s Emacs config.
19166 @item Customizable via the @code{(locate-user-emacs-file \"elesscfg\")} config.
19167 @item Not require an Emacs server to be already running.
19168 @item Syntax highlighting.
19169 @item Org-mode file rendering.
19170 @item @code{man} page viewer.
19172 @item Dired, wdired, (batch edit symbolic links).
19173 @item Colored diffs, git diff, git log, ls with auto ANSI detection.
19174 @item Filter log files lines matching a regexp.
19175 @item Auto-revert log files similar to @code{tail -f}.
19176 @item Quickly change frame and font sizes.
19178 (license license:expat)))
19180 (define-public emacs-evil-matchit
19182 (name "emacs-evil-matchit")
19187 (uri (git-reference
19188 (url "https://github.com/redguardtoo/evil-matchit")
19190 (file-name (git-file-name name version))
19192 (base32 "0a55hhqi14g0hy80cfi5anxs44rcdxm1jkkyl561b4d4g823bpbi"))))
19193 (build-system emacs-build-system)
19196 (home-page "https://github.com/redguardtoo/evil-matchit")
19197 (synopsis "Vim matchit ported into Emacs")
19199 "@code{evil-matchit} is a minor mode for jumping between matching tags in
19200 evil mode using @kbd{%}. It is a port of @code{matchit} for Vim.")
19201 (license license:gpl3+)))
19203 (define-public emacs-evil-smartparens
19205 (name "emacs-evil-smartparens")
19210 (uri (git-reference
19211 (url "https://github.com/expez/evil-smartparens")
19213 (file-name (git-file-name name version))
19215 (base32 "1di4qz5fbrlwbg16c2j0m7y8zqfxw027qd7zqmc3rwk9znbhg7wl"))))
19216 (build-system emacs-build-system)
19218 (list emacs-evil emacs-smartparens))
19219 (home-page "https://github.com/expez/evil-smartparens")
19220 (synopsis "Emacs Evil integration for Smartparens")
19221 (description "@code{emacs-evil-smartparens} is an Emacs minor mode which
19222 makes Evil play nice with Smartparens. Evil is an Emacs minor mode that
19223 emulates Vim features and provides Vim-like key bindings.")
19224 (license license:gpl3+)))
19226 (define-public emacs-evil-quickscope
19228 (name "emacs-evil-quickscope")
19233 (uri (git-reference
19234 (url "https://github.com/blorbx/evil-quickscope")
19235 (commit (string-append "v" version))))
19236 (file-name (git-file-name name version))
19238 (base32 "1ja9ggj70wf0nmma4xnc1zdzg2crq9h1cv3cj7cgwjmllflgkfq7"))))
19239 (build-system emacs-build-system)
19244 #:test-command '("emacs" "--batch"
19245 "-l" "evil-quickscope-tests.el"
19246 "-f" "ert-run-tests-batch-and-exit")))
19247 (home-page "https://github.com/blorbx/evil-quickscope")
19248 (synopsis "Target highlighting for emacs evil-mode f,F,t and T commands")
19249 (description "@code{emacs-evil-quickscope} highlights targets for Evil
19250 mode’s f,F,t,T keys, allowing for quick navigation within a line. It is a
19251 port of quick-scope for Vim. Evil is an Emacs minor mode that emulates Vim
19252 features and provides Vim-like key bindings.")
19253 (license license:gpl3+)))
19255 (define-public emacs-bongo
19257 (name "emacs-bongo")
19262 (uri (git-reference
19263 (url "https://github.com/dbrock/bongo")
19265 (file-name (git-file-name name version))
19267 (base32 "1nszph9mn98flyhn1jq3y6mdh6jymjkvj5ng36ql016dj92apvhv"))))
19268 (build-system emacs-build-system)
19269 (home-page "https://github.com/dbrock/bongo")
19270 (synopsis "Media player for Emacs")
19272 "This package provides a flexible media player for Emacs. @code{Bongo}
19273 supports multiple backends such as @code{vlc}, @code{mpg123},
19274 @code{ogg123}, @code{speexdec}, @code{timidity}, @code{mikmod} and
19276 (license license:gpl2+)))
19278 (define-public emacs-groovy-modes
19280 (name "emacs-groovy-modes")
19284 (uri (git-reference
19285 (url "https://github.com/Groovy-Emacs-Modes\
19286 /groovy-emacs-modes")
19288 (file-name (git-file-name name version))
19291 "1jpfyqnqd8nj0g8xbiw4ar2qzxx3pvhwibr6hdzhyy9mmc4yzdgk"))))
19292 (build-system emacs-build-system)
19295 #:test-command '("ert-runner")))
19297 (list emacs-ert-runner emacs-undercover emacs-shut-up emacs-f))
19299 (list emacs-dash emacs-s))
19300 (home-page "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
19301 (synopsis "Groovy related modes for Emacs")
19302 (description "This package provides @code{groovy-mode} for syntax
19303 highlighting in Groovy source files, REPL integration with run-groovy and
19304 Grails project navigation with the grails mode.")
19305 (license license:gpl3+)))
19307 (define-public emacs-jenkinsfile-mode
19308 (let ((commit "65bf3925852c35c6bd499978f08f83c1193f4347")
19311 (name "emacs-jenkinsfile-mode")
19312 (version (git-version "0.0.1" revision commit))
19315 (uri (git-reference
19316 (url "https://github.com/john2x/jenkinsfile-mode")
19318 (file-name (git-file-name name version))
19321 "0w38g88yykslg71xr99ff4vx1ffgy90b7xqvvdflr189gwk3avx1"))))
19323 (list emacs-groovy-modes))
19324 (build-system emacs-build-system)
19325 (home-page "https://github.com/john2x/jenkinsfile-mode/")
19326 (synopsis "Emacs major-mode for editing Jenkinsfile")
19327 (description "This package provides a @code{jenkinsfile-mode} derived
19328 from @code{groovy-mode} for editing Jenkins declarative pipeline files.")
19329 (license license:gpl3+))))
19331 (define-public emacs-kotlin-mode
19332 (let ((commit "0e4bafb31d1fc2a0a420a521c2723d5526646c0b")
19335 (name "emacs-kotlin-mode")
19336 (version (git-version "0.0.1" revision commit))
19340 (uri (git-reference
19341 (url "https://github.com/Emacs-Kotlin-Mode-Maintainers/kotlin-mode")
19343 (file-name (git-file-name name version))
19345 (base32 "09inpgwmnnqaakyn4r4xs8kax8b89dw94kvl521x6d43h9zl5i70"))))
19346 (build-system emacs-build-system)
19349 #:test-command '("ert-runner" "-L" "." "-L" "test")))
19350 (native-inputs (list emacs-ert-runner))
19351 (home-page "https://github.com/Emacs-Kotlin-Mode-Maintainers/kotlin-mode")
19352 (synopsis "Major major-mode for editing Kotlin files")
19354 "This package provides a @code{kotlin-mode} for editing Kotlin files.")
19355 (license license:gpl3+))))
19357 (define-public emacs-org-tree-slide
19358 (let ((commit "d6529bc2df727d09014e0e56abf4f15a8e8fc20f")
19361 (name "emacs-org-tree-slide")
19362 (version (git-version "2.8.18" revision commit))
19365 (uri (git-reference
19366 (url "https://github.com/takaxp/org-tree-slide")
19370 "1br32mpwarmrn158y2pkkmfl2ssv8q8spzknkg2avr16fil0j1pz"))
19371 (file-name (git-file-name name version))))
19372 (build-system emacs-build-system)
19373 (home-page "https://github.com/takaxp/org-tree-slide")
19374 (synopsis "Presentation tool for Org mode")
19376 "Org Tree Slide is a minor mode for using an Org document in
19377 presentations by progressively revealing individual subtrees of the
19379 (license license:gpl3+))))
19381 (define-public emacs-scratch-el
19383 (name "emacs-scratch-el")
19388 (uri (git-reference
19389 (url "https://codeberg.org/emacs-weirdware/scratch")
19390 (commit (string-append "v" version))))
19391 (file-name (git-file-name name version))
19393 (base32 "174d8ancnkgb7q62196kd6nrfib6rnwxw4visgbk1c6yd1w8kray"))))
19394 (build-system emacs-build-system)
19399 (modify-phases %standard-phases
19400 (add-after 'install 'install-doc
19401 (lambda* (#:key outputs #:allow-other-keys)
19402 (unless (invoke "makeinfo" "scratch.texi")
19403 (error "makeinfo failed"))
19404 (install-file "scratch.info"
19405 (string-append (assoc-ref outputs "out")
19408 (home-page "https://codeberg.org/emacs-weirdware/scratch")
19409 (synopsis "Create scratch buffers with the same mode as current buffer")
19410 (description "Scratch is an extension to Emacs that enables one to create
19411 scratch buffers that are in the same mode as the current buffer. This is
19412 notably useful when working on code in some language; you may grab code into a
19413 scratch buffer, and, by virtue of this extension, do so using the Emacs
19414 formatting rules for that language.")
19415 (license license:bsd-2)))
19417 (define-public emacs-kv
19424 (uri (git-reference
19425 (url "https://github.com/nicferrier/emacs-kv")
19426 (commit "721148475bce38a70e0b678ba8aa923652e8900e")))
19427 (file-name (git-file-name name version))
19430 "0r0lz2s6gvy04fwnafai668jsf4546h4k6zd6isx5wpk0n33pj5m"))
19432 (search-patches "emacs-kv-fix-tests.patch"))))
19433 (build-system emacs-build-system)
19436 #:test-command '("emacs" "--batch" "-l" "kv-tests.el"
19437 "-f" "ert-run-tests-batch-and-exit")))
19438 (home-page "https://github.com/nicferrier/emacs-kv")
19439 (synopsis "Key/Value data structures library for Emacs Lisp")
19440 (description "@code{emacs-kv} is a collection of tools for dealing with
19441 key/value data structures such as plists, alists and hash-tables in Emacs
19443 (license license:gpl3+)))
19445 (define-public emacs-esxml
19447 (name "emacs-esxml")
19451 (uri (git-reference
19452 (url "https://github.com/tali713/esxml")
19454 (file-name (git-file-name name version))
19457 "1xzxmgsg0j72sf1vjh9gjswz3c29js0kqhm7r3jrqrh3a5agdnml"))))
19458 (build-system emacs-build-system)
19460 `(#:emacs ,emacs ;need libxml
19461 ;; XXX: Only the two following files are meant to be packaged.
19462 ;; Byte-compiling the others Elisp files leads to build errors anyway.
19463 #:include (list "esxml.el" "esxml-query.el")))
19466 (home-page "https://github.com/tali713/esxml/")
19467 (synopsis "SXML for EmacsLisp")
19468 (description "This is XML/XHTML done with S-Expressions in EmacsLisp.
19469 Simply, this is the easiest way to write HTML or XML in Lisp. This library
19470 uses the native form of XML representation as used by many libraries already
19471 included within Emacs. See @code{esxml-to-xml} for a concise description of
19473 (license license:gpl3+)))
19475 (define-public emacs-nov-el
19477 (name "emacs-nov-el")
19482 (uri (git-reference
19483 (url "https://depp.brause.cc/nov.el.git")
19485 (file-name (git-file-name name version))
19488 "10507fdfx02wb3j7g34w4ii8rgnjbmriq63ir6x1agf38s3i9p52"))))
19489 (build-system emacs-build-system)
19492 #:emacs emacs ;need libxml
19494 #~(modify-phases %standard-phases
19495 (add-after 'unpack 'embed-path-to-unzip
19497 (substitute* "nov.el"
19498 (("\\(executable-find \"unzip\"\\)")
19499 (string-append "\"" (which "unzip") "\""))))))))
19501 (list emacs-dash emacs-esxml))
19504 (home-page "https://depp.brause.cc/nov.el/")
19505 (synopsis "Major mode for reading EPUBs in Emacs")
19506 (description "@code{nov.el} provides a major mode for reading EPUB
19512 @item Basic navigation (jump to TOC, previous/next chapter)
19513 @item Remembering and restoring the last read position
19514 @item Jump to next chapter when scrolling beyond end
19515 @item Renders EPUB2 (@code{.ncx}) and EPUB3 (@code{<nav>}) TOCs
19516 @item Hyperlinks to internal and external targets
19517 @item Supports textual and image documents
19518 @item View source of document files
19519 @item Metadata display
19520 @item Image rescaling
19523 (license license:gpl3+)))
19525 (define-public epipe
19532 (uri (git-reference
19533 (url "https://github.com/cute-jumper/epipe")
19535 (file-name (git-file-name name version))
19537 (base32 "0lkisi1s7sn12nx8zh58qmsxwnk1rjwryj18wcbr148xqz3swg57"))))
19538 (build-system trivial-build-system)
19541 ((guix build utils))
19544 (use-modules (guix build utils))
19546 (copy-recursively (assoc-ref %build-inputs "source") "source")
19549 (substitute* "epipe"
19550 (("/usr/bin/env bash")
19551 (search-input-file %build-inputs "/bin/bash")))
19552 (patch-shebang "epipe.pl"
19553 (list (string-append (assoc-ref %build-inputs "perl")
19556 (for-each (lambda (file)
19557 (install-file file (string-append %output "/bin")))
19558 '("epipe" "epipe.pl")))))
19561 (home-page "https://github.com/cute-jumper/epipe")
19562 (synopsis "Pipe to the @code{emacsclient}")
19563 (description "@code{epipe} provides an utility to use your editor in
19564 the pipeline, featuring the support for running @code{emacsclient}.")
19565 (license license:gpl3+)))
19567 (define-public emacs-jupyter
19569 (name "emacs-jupyter")
19574 (uri (git-reference
19575 (url "https://github.com/nnicandro/emacs-jupyter")
19576 (commit (string-append "v" version))))
19577 (file-name (git-file-name name version))
19579 (base32 "1sr007wsl2y6wqpzkmv3inbpwhvgdcb2nmqzgfg7w1awapi2r13p"))))
19580 (build-system emacs-build-system)
19582 (list emacs-company ;optional
19583 emacs-markdown-mode ;optional
19587 (home-page "https://github.com/nnicandro/emacs-jupyter")
19588 (synopsis "Emacs interface to communicate with Jupyter kernels")
19589 (description "This package provides an Emacs interface to communicate with
19590 Jupyter kernels. It provides REPL and @code{org-mode} source code block
19591 frontends to Jupyter kernels and kernel interactions integrated with Emacs'
19592 built-in features.")
19593 (license license:gpl3+)))
19595 (define-public emacs-hcl-mode
19597 (name "emacs-hcl-mode")
19602 (uri (git-reference
19603 (url "https://github.com/syohex/emacs-hcl-mode")
19605 (file-name (git-file-name name version))
19607 (base32 "0jqrgq15jz6pvx38pnwkizzfiih0d3nxqphyrc92nqpcyimg8b6g"))))
19608 (build-system emacs-build-system)
19609 (home-page "https://github.com/syohex/emacs-hcl-mode")
19610 (synopsis "Major mode for the Hashicorp Configuration Language")
19612 "@code{emacs-hcl-mode} provides an Emacs major mode for working with
19613 @acronym{HCL, Hashicorp Configuration Language}. It provides syntax
19614 highlighting and indentation support.")
19615 (license license:gpl3+)))
19617 (define-public emacs-terraform-mode
19619 (name "emacs-terraform-mode")
19624 (uri (git-reference
19625 (url "https://github.com/syohex/emacs-terraform-mode")
19627 (file-name (git-file-name name version))
19629 (base32 "05hn8kskx9lcgn7bzgam99c629zlryir2pickwrqndacjrqpdykx"))))
19630 (build-system emacs-build-system)
19632 (list emacs-hcl-mode))
19633 (home-page "https://github.com/syohex/emacs-terraform-mode")
19634 (synopsis "Major mode for Terraform")
19636 "@code{emacs-terraform-mode} provides a major mode for working with
19637 @uref{https://www.terraform.io/, Terraform} configuration files. Most of the
19638 functionality is inherited from @code{hcl-mode}.")
19639 (license license:gpl3+)))
19641 (define-public emacs-exec-path-from-shell
19643 (name "emacs-exec-path-from-shell")
19648 (uri (git-reference
19649 (url "https://github.com/purcell/exec-path-from-shell")
19651 (file-name (git-file-name name version))
19654 "1ga8bpxngd3ph2hdiik92c612ki71qxw818i6rgx6f6a5r0sbf3p"))))
19655 (build-system emacs-build-system)
19656 (home-page "https://github.com/purcell/exec-path-from-shell")
19657 (synopsis "Get environment variables such as @env{PATH} from the shell")
19659 "This library allows the user to set Emacs @code{exec-path} and @env{PATH}
19660 from the shell's @env{PATH}, so that @code{shell-command}, @code{compile} and
19661 the like work as expected on systems on which Emacs is not guaranteed to
19662 inherit a login shell's environment variables. It also allows other
19663 environment variables to be retrieved from the shell, so that Emacs will see
19664 the same values you get in a terminal.")
19665 (license license:gpl3+)))
19667 (define-public emacs-frog-menu
19669 (name "emacs-frog-menu")
19674 (uri (string-append "https://elpa.gnu.org/packages/"
19675 "frog-menu-" version ".el"))
19677 (base32 "06iw11z61fd0g4w3562k3smcmzaq3nivvvc6gzm8y8k5pcrqzdff"))))
19678 (build-system emacs-build-system)
19680 (list emacs-avy emacs-posframe))
19681 (home-page "https://github.com/clemera/frog-menu")
19682 (synopsis "Quickly pick items from ad hoc menus")
19684 "This package provides a popup offering a preview of a list of candidates
19685 on which user-defined dispatch actions can act.")
19686 (license license:gpl3+)))
19688 (define-public emacs-frog-jump-buffer
19689 (let ((commit "2d7b342785ae27d45f5d252272df6eb773c78e20")
19692 (name "emacs-frog-jump-buffer")
19693 (version (git-version "0.1.4" revision commit))
19697 (uri (git-reference
19698 (url "https://github.com/waymondo/frog-jump-buffer")
19700 (file-name (git-file-name name version))
19703 "1z00by8hiss1r2lwmzrl8pnz6jykia2849dqqm4l3z5rf6lwvc0f"))))
19704 (build-system emacs-build-system)
19706 (list emacs-dash emacs-frog-menu emacs-avy))
19707 (home-page "https://github.com/waymondo/frog-jump-buffer")
19708 (synopsis "Jump to any Emacs buffer with minimal keystrokes")
19710 "This package provides a preview window of buffers that can be switched
19711 to with quicklink-style selections.")
19712 (license license:gpl3+))))
19714 (define-public emacs-deft
19716 (name "emacs-deft")
19721 (uri (git-reference
19722 (url "https://github.com/jrblevin/deft")
19723 (commit (string-append "v" version))))
19724 (file-name (git-file-name name version))
19727 "0z7cilgiz6krvl5h2z72hkch43qxmypb0k6p5vxn5lx1p6v0mrf2"))))
19728 (build-system emacs-build-system)
19729 (home-page "https://jblevins.org/projects/deft/")
19730 (synopsis "Quickly browse, filter, and edit plain text notes")
19732 "Deft is an Emacs mode for quickly browsing, filtering, and editing
19733 directories of plain text notes, inspired by Notational Velocity.")
19734 (license license:bsd-3)))
19736 (define-public emacs-anzu
19738 (name "emacs-anzu")
19743 (uri (git-reference
19744 (url "https://github.com/syohex/emacs-anzu")
19746 (file-name (git-file-name name version))
19748 (base32 "1jfn5nm6r68wa0gn2k2zy6sdq6c8shw8x04ylzzm5cw7zm60jw0n"))))
19749 (build-system emacs-build-system)
19750 (home-page "https://github.com/syohex/emacs-anzu")
19751 (synopsis "Show number of matches in mode-line while searching")
19753 "Anzu provides a minor mode which displays \"current match/total
19754 matches\" in the mode line in various search modes. This is an Emacs port of
19756 (license license:gpl3+)))
19758 (define-public emacs-ascii-art-to-unicode
19760 (name "emacs-ascii-art-to-unicode")
19765 (uri (string-append "https://elpa.gnu.org/packages/ascii-art-to-unicode-"
19768 (base32 "1c0jva3amhl9c5xc5yzdpi58c8m1djym4ccj31z6wmakq7npy07p"))))
19769 (build-system emacs-build-system)
19770 (home-page "https://elpa.gnu.org/packages/ascii-art-to-unicode.html")
19771 (synopsis "ASCII to Unicode art converter for Emacs")
19772 (description "This Emacs package provides the commands @command{aa2u} and
19773 @command{aa2u-rectangle}. Both of these commands can be used to convert
19774 simple ASCII art line drawings to Unicode; the former works on the active
19775 region of the buffer, while the latter works on rectangular selections.")
19776 (license license:gpl3+)))
19778 (define-public emacs-emmet-mode
19779 (let ((commit "1acb821e0142136344ccf40c1e5fb664d7db2e70")
19782 (name "emacs-emmet-mode")
19783 (version (git-version "1.0.8" revision commit))
19786 (uri (git-reference
19787 (url "https://github.com/smihica/emmet-mode")
19789 (file-name (git-file-name name version))
19792 "1p25h191bm0h5b3w5apg7wks51k7pb7h4dlww4jbl9ri4d33fzcl"))))
19793 (build-system emacs-build-system)
19794 (home-page "https://github.com/smihica/emmet-mode")
19795 (synopsis "Unofficial Emmet's support for Emacs")
19797 "Unfold CSS-selector-like expressions to markup. It is intended to be
19798 used with SGML-like languages: XML, HTML, XHTML, XSL, etc.")
19799 (license license:gpl3+))))
19801 (define-public emacs-ergoemacs-mode
19803 (name "emacs-ergoemacs-mode")
19804 (version "5.22.2.23")
19808 (uri (git-reference
19809 (url "https://github.com/ergoemacs/ergoemacs-mode")
19810 (commit (string-append "v" version))))
19811 (file-name (git-file-name name version))
19814 "1ipwzl0l26g5qvc1sgmz2ra5vn1j3hl0mnkgzpa3j4p8gsmxdiqr"))))
19815 (build-system emacs-build-system)
19817 (list emacs-undo-tree))
19818 (home-page "https://ergoemacs.github.io/")
19819 (synopsis "Emacs mode based on common modern interface and ergonomics")
19821 "This package provides an efficient Emacs keybinding set based on
19822 statistics of command frequency, and supports common shortcuts for open,
19823 close, copy, cut, paste, undo, redo.")
19824 (license license:gpl3+)))
19826 (define-public emacs-password-store
19827 (let ((commit "918992c19231b33b3d4a3288a7288a620e608cb4")
19830 (name "emacs-password-store")
19831 ;; The emacs package version does not match the password-store version,
19832 ;; even though it is part of the same repository. When updating, look
19833 ;; at the version declared in password-store.el.
19834 (version (git-version "2.1.4" revision commit))
19837 (uri (git-reference
19838 (url "git://git.zx2c4.com/password-store")
19840 (file-name (git-file-name name version))
19843 "0ni62f4pq96g0i0q66bch1dl9k4zqwhg7xaf746k3gbbqxcdh3vi"))))
19844 (build-system emacs-build-system)
19847 #~(modify-phases %standard-phases
19848 (add-after 'unpack 'extract-el-file
19850 (copy-file "contrib/emacs/password-store.el"
19851 "password-store.el")
19852 (delete-file-recursively "contrib")
19853 (delete-file-recursively "man")
19854 (delete-file-recursively "src")
19855 (delete-file-recursively "tests")))
19856 (add-after 'extract-el-file 'patch-executables
19857 (lambda* (#:key inputs #:allow-other-keys)
19858 (emacs-substitute-variables "password-store.el"
19859 ("password-store-executable"
19860 (search-input-file inputs "/bin/pass"))))))))
19862 (list password-store))
19864 (list emacs-auth-source-pass emacs-s emacs-with-editor))
19865 (home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs")
19866 (synopsis "Password store (pass) support for Emacs")
19868 "This package provides functions for working with pass (\"the
19869 standard Unix password manager\").")
19870 (license license:gpl3+))))
19872 (define-public emacs-password-store-otp
19874 (name "emacs-password-store-otp")
19879 (uri (git-reference
19880 (url "https://github.com/volrath/password-store-otp.el")
19883 (base32 "0gb48blvnn6ci2wl45z81p41ny7vbgl610hqy6b2hyr2171qjd60"))
19884 (file-name (git-file-name name version))))
19885 (build-system emacs-build-system)
19887 (list emacs-password-store emacs-s))
19888 (home-page "https://github.com/volrath/password-store-otp.el")
19890 "Interact with the @code{pass-otp} extension for @code{pass} from Emacs")
19891 (description "This package provides Emacs functions to interact with the
19892 @code{pass-otp} extension for @code{pass}. It includes functions to import
19893 OTP URIs from screenshots of QR codes, and to export them back to QR codes if
19895 (license license:gpl3+)))
19897 (define-public emacs-auth-source-pass
19898 (let ((commit "847a1f54ed48856b4dfaaa184583ef2c84173edf")
19901 (name "emacs-auth-source-pass")
19902 (version (git-version "5.0.0" revision commit))
19906 (uri (git-reference
19907 (url "https://github.com/DamienCassou/auth-password-store")
19909 (file-name (git-file-name name version))
19911 (base32 "0g48z5w6n3c54zqfpx65dfyl9jqbl15idvbb1hhw2pd9f9r8fykk"))))
19912 (build-system emacs-build-system)
19915 #:test-command '("emacs" "--batch"
19917 "-l" "test/auth-source-pass-tests.el"
19918 "-f" "ert-run-tests-batch-and-exit")))
19919 (home-page "https://github.com/DamienCassou/auth-password-store")
19920 (synopsis "Integrate @code{auth-source} with @code{password-store}")
19921 (description "This package helps Emacs integrate with the Unix
19922 @code{password-store} application.")
19923 (license license:gpl3+))))
19925 (define-public emacs-pass
19927 (name "emacs-pass")
19932 (uri (git-reference
19933 (url "https://github.com/NicolasPetton/pass")
19935 (file-name (git-file-name name version))
19937 (base32 "0jc8j421mlflspg24jvrqc2n3y5n3cpk3hjy560il8g36xi1049p"))))
19938 (build-system emacs-build-system)
19940 (list emacs-password-store emacs-f))
19941 (home-page "https://github.com/NicolasPetton/pass")
19942 (synopsis "Major mode for @file{password-store.el}")
19943 (description "This is a major mode for managing password-store (pass)
19944 keychains. The keychain entries are displayed in a directory-like structure
19945 and can be consulted and modified.")
19946 (license license:gpl3+)))
19948 (define-public emacs-psc-ide
19949 ;; There is no proper release. The base version is extracted from the
19950 ;; "Version" keyword in the main file.
19951 (let ((commit "ce97d719458ea099b40c02f05b6609601c727e66")
19954 (name "emacs-psc-ide")
19955 (version (git-version "0.1.0" revision commit))
19961 (url "https://github.com/purescript-emacs/psc-ide-emacs")
19963 (file-name (git-file-name name version))
19965 (base32 "0xfw93pdf744h2yswc53qwyawfzkc31rv8dmha3irq7k1nklhq6y"))))
19966 (build-system emacs-build-system)
19968 (list emacs-company emacs-dash emacs-flycheck emacs-let-alist
19970 (home-page "https://github.com/purescript-emacs/psc-ide-emacs")
19971 (synopsis "Emacs integration for PureScript's psc-ide tool")
19973 "This package provices Emacs integration for @code{psc-ide}, an IDE
19974 protocol for PureScript programming language. It features:
19978 @item Type at point
19979 @item Go to definition
19980 @item Automatic imports
19982 @item Build system integration, and
19983 @item Flycheck support
19985 (license license:gpl3+))))
19987 (define-public emacs-evil-anzu
19989 (name "emacs-evil-anzu")
19994 (uri (git-reference
19995 (url "https://github.com/syohex/emacs-evil-anzu")
19997 (file-name (git-file-name name version))
19999 (base32 "0lw7fg4gqwj30r0l6k2ni36sxqkf65zf0d0z3rxnpwbxlf8dlkrr"))))
20000 (build-system emacs-build-system)
20002 (list emacs-evil emacs-anzu))
20003 (home-page "https://github.com/syohex/emacs-evil-anzu")
20004 (synopsis "Anzu for evil-mode")
20005 (description "@code{anzu} provides a minor mode that displays the current
20006 match and total match information in the mode-line in various search modes.")
20007 (license license:gpl3+)))
20009 (define-public emacs-pg
20015 (uri (git-reference (url "https://github.com/emarsden/pg-el")
20016 (commit (string-append "v" version))))
20017 (file-name (git-file-name name version))
20020 "0a38rvl5rwfb77p4xxmjhrs6s67pfkzjfm0pdxvf0b6xh7h404kh"))))
20021 (build-system emacs-build-system)
20022 (home-page "https://github.com/emarsden/pg-el")
20023 (synopsis "Emacs Lisp interface for PostgreSQL")
20025 "This module lets you access the PostgreSQL object-relational DBMS from
20026 Emacs, using its socket-level frontend/backend protocol. The module is
20027 capable of automatic type coercions from a range of SQL types to the
20028 equivalent Emacs Lisp type. This is a low level API, and won't be useful to
20030 (license license:gpl2+)))
20032 (define-public emacs-finalize
20034 (name "emacs-finalize")
20039 (uri (git-reference
20040 (url "https://github.com/skeeto/elisp-finalize")
20042 (file-name (git-file-name name version))
20044 (base32 "1gvlm4i62af5jscwz0jccc8ra0grprxpg2rlq91d5nn8dn5lpy79"))))
20045 (build-system emacs-build-system)
20046 (home-page "https://github.com/skeeto/elisp-finalize")
20047 (synopsis "Finalizers for Emacs Lisp")
20049 "This package runs a callback (a finalizer)
20050 after its registered lisp object has been garbage collected. This allows
20051 extra resources, such as buffers and processes, to be cleaned up after the
20052 object has been freed.")
20053 (license license:unlicense)))
20055 (define-public emacs-emacsql
20057 (name "emacs-emacsql")
20062 (uri (git-reference
20063 (url "https://github.com/skeeto/emacsql")
20064 (commit (string-append version))))
20065 (file-name (git-file-name name version))
20067 (base32 "1xpmji2qgr9r38cdhws65x9s9jy7fk93q8g1j2fm7j8kcfjh9x3g"))))
20068 (build-system emacs-build-system)
20071 #:modules '((guix build emacs-build-system)
20073 (guix build emacs-utils)
20076 #~(modify-phases %standard-phases
20077 (add-before 'install 'patch-elisp-shell-shebangs
20079 (substitute* (find-files "." "\\.el")
20080 (("/bin/sh") (which "sh")))))
20081 (add-after 'patch-elisp-shell-shebangs 'setenv-shell
20083 (setenv "SHELL" "sh")))
20084 (add-after 'setenv-shell 'build-emacsql-sqlite
20086 (invoke "make" "binary" (string-append "CC=" #$(cc-for-target)))))
20087 (add-after 'build-emacsql-sqlite 'install-emacsql-sqlite
20088 ;; This build phase installs emacs-emacsql binary.
20090 (install-file "sqlite/emacsql-sqlite"
20091 (string-append #$output "/bin"))))
20092 (add-after 'install-emacsql-sqlite 'patch-emacsql-sqlite.el
20093 ;; This build phase removes interactive prompts
20094 ;; and makes sure Emacs look for binaries in the right places.
20096 (emacs-substitute-variables "emacsql-sqlite.el"
20097 ("emacsql-sqlite-executable"
20098 (string-append #$output "/bin/emacsql-sqlite"))
20099 ;; Make sure Emacs looks for ‘GCC’ binary in the right place.
20100 ("emacsql-sqlite-c-compilers"
20101 `(list ,(which "gcc")))))))))
20103 (list emacs-minimal `(,mariadb "dev") `(,mariadb "lib") postgresql))
20105 (list emacs-finalize emacs-pg))
20106 (home-page "https://github.com/skeeto/emacsql")
20107 (synopsis "Emacs high-level SQL database front-end")
20108 (description "Any readable Lisp value can be stored as a value in EmacSQL,
20109 including numbers, strings, symbols, lists, vectors, and closures. EmacSQL
20110 has no concept of @code{TEXT} values; it's all just Lisp objects. The Lisp
20111 object @code{nil} corresponds 1:1 with @code{NULL} in the database.")
20112 (license license:gpl3+)))
20114 (define-public emacs-emacsql-sqlite3
20116 (name "emacs-emacsql-sqlite3")
20121 (uri (git-reference
20122 (url "https://github.com/cireu/emacsql-sqlite3")
20124 (file-name (git-file-name name version))
20126 (base32 "1jzvvsvi8jm2ws3y49nmpmwd3zlvf8j83rl2vwizd1aplwwdnmd6"))))
20127 (build-system emacs-build-system)
20130 #:test-command '("emacs" "-Q" "--batch" "-L" "."
20131 "--load" "emacsql-sqlite3-test.el"
20132 "-f" "ert-run-tests-batch-and-exit")
20134 (modify-phases %standard-phases
20135 (add-after 'unpack 'embed-path-to-sqlite3
20137 (substitute* "emacsql-sqlite3.el"
20138 (("\\(executable-find \"sqlite3\"\\)")
20139 (string-append "\"" (which "sqlite3") "\""))))))))
20141 (list emacs-ert-runner))
20145 (list emacs-emacsql))
20146 (home-page "https://github.com/cireu/emacsql-sqlite3")
20147 (synopsis "EmacSQL backend for SQLite")
20148 (description "This is yet another EmacSQL backend for SQLite which uses
20149 official @command{sqlite3} executable to access SQL database.")
20150 (license license:gpl3+)))
20152 (define-public emacs-closql
20154 (name "emacs-closql")
20159 (uri (git-reference
20160 (url "https://github.com/emacscollective/closql")
20161 (commit (string-append "v" version))))
20162 (file-name (git-file-name name version))
20165 "1s9riibws28xjn2bjn9qz3m2gvcmrn18b7g5y6am4sy7rgkx3nwx"))))
20166 (build-system emacs-build-system)
20168 (list emacs-emacsql))
20169 (home-page "https://github.com/emacscollective/closql")
20170 (synopsis "Store EIEIO objects using EmacSQL")
20172 "This package stores uniform EIEIO objects in an EmacSQL
20173 database. SQLite is used as backend. This library imposes some restrictions
20174 on what kind of objects can be stored; it isn't intended to store arbitrary
20175 objects. All objects have to share a common superclass and subclasses cannot
20176 add any additional instance slots.")
20177 (license license:gpl3)))
20179 (define-public emacs-epkg
20181 (name "emacs-epkg")
20186 (uri (git-reference
20187 (url "https://github.com/emacscollective/epkg")
20188 (commit (string-append "v" version))))
20189 (file-name (git-file-name name version))
20191 (base32 "0d09ddlhvgp8rpybqmzvzpzdp1hjaq97wp2br4g90lpx2vclkgn7"))))
20192 (build-system emacs-build-system)
20195 (modify-phases %standard-phases
20196 (add-before 'install 'make-info
20197 ;; Documentation is located in "docs/".
20198 (lambda* (#:key outputs #:allow-other-keys)
20199 (with-directory-excursion "docs"
20200 (invoke "makeinfo" "-o" "epkg.info" "epkg.texi")
20201 (let ((info (string-append (assoc-ref outputs "out")
20203 (install-file "epkg.info" info)))))
20204 (add-after 'make-info 'move-to-lisp-directory
20205 ;; Source code is located in "lisp/".
20208 (add-after 'expand-load-path 'add-el-dir-to-emacs-load-path
20210 (setenv "EMACSLOADPATH"
20211 (string-append (getcwd)
20213 (getenv "EMACSLOADPATH"))))))))
20217 (list emacs-closql emacs-dash))
20218 (home-page "https://emacsmirror.net")
20219 (synopsis "Browse the Emacsmirror package database")
20220 (description "This package provides access to a local copy of the
20221 Emacsmirror package database. It provides low-level functions for querying
20222 the database and a @file{package.el} user interface for browsing the database.
20223 Epkg itself is not a package manager.")
20224 (license license:gpl3+)))
20226 (define-public emacs-elisp-slime-nav
20228 (name "emacs-elisp-slime-nav")
20233 (uri (git-reference
20234 (url "https://github.com/purcell/elisp-slime-nav")
20236 (file-name (git-file-name name version))
20238 (base32 "08k4zlawjkb0ldn4lgrhih8nzln398x7dwzpipqfyrmp0xziywma"))))
20239 (build-system emacs-build-system)
20240 (home-page "https://github.com/purcell/elisp-slime-nav")
20241 (synopsis "Make @code{M-.} and @code{M-,} work for elisp like they do in SLIME")
20243 "This package provides SLIME's convenient @code{M-.}and @code{M-,} navigation
20244 in @code{emacs-lisp-mode}, together with an elisp equivalent of
20245 @code{slime-describe-symbol}.")
20246 (license license:gpl3+)))
20248 (define-public emacs-dedicated
20250 (name "emacs-dedicated")
20255 (uri (git-reference
20256 (url "https://github.com/emacsorphanage/dedicated")
20258 (file-name (git-file-name name version))
20260 (base32 "0pba9s0h37sxyqh733vi6k5raa4cs7aradipf3826inw36jcw414"))))
20261 (build-system emacs-build-system)
20262 (home-page "https://github.com/emacsorphanage/dedicated")
20263 (synopsis "Emacs minor mode for toggling a windows's \"dedicated\" flag")
20265 "This simple Emacs minor mode allows you to toggle a window's
20266 \"dedicated\" flag. When a window is \"dedicated\", Emacs will not select
20267 files into that window. This can be quite handy since many commands will use
20268 another window to show results (compilation mode, starting info, and so on).
20269 A dedicated window won't be used for such a purpose. For details, please read
20271 (license license:gpl2+)))
20273 (define-public emacs-nnreddit
20274 (let ((commit "9843f99d01fd8f1eea2fc685965a7c7f4eeb187a")
20277 (name "emacs-nnreddit")
20278 (version (string-append "0.0.1-" revision "."
20279 (string-take commit 7)))
20282 (uri (git-reference
20283 (url "https://github.com/paul-issartel/nnreddit")
20285 (file-name (git-file-name name version))
20288 "0j4h3bnga640250jdq8bwyja49r41ssrsjd6lba4gzzllqk02nbn"))))
20289 (build-system emacs-build-system)
20290 (home-page "https://github.com/paul-issartel/nnreddit")
20291 (synopsis "Reddit backend for the Gnus newsreader")
20292 (description "@url{https://www.reddit.com} backend for the Gnus
20294 (license license:gpl3+))))
20296 (define-public emacs-makey
20298 (name "emacs-makey")
20303 (uri (git-reference
20304 (url "https://github.com/mickeynp/makey")
20306 (file-name (git-file-name name version))
20308 (base32 "1rr7vpm3xxzcaam3m8xni3ajy8ycyljix07n2jzczayri9sd8csy"))))
20309 (build-system emacs-build-system)
20310 (home-page "https://github.com/mickeynp/makey")
20311 (synopsis "Emacs interactive command-line mode")
20313 "This package provides an Emacs interactive command-line mode.")
20314 (license license:gpl3+)))
20316 (define-public emacs-outorg
20317 (let ((commit "78b0695121fb974bc4e971eb4ef7f8afd6d89d64"))
20319 (name "emacs-outorg")
20320 (version (git-version "2.0" "1" commit))
20324 (uri (git-reference
20325 (url "https://github.com/alphapapa/outorg")
20327 (file-name (git-file-name name version))
20330 "03aclh4m3f7rb821gr9pwvnqkkl91px3qxdcarpf3ypa1x4fxvlj"))))
20331 (build-system emacs-build-system)
20332 (home-page "https://github.com/alphapapa/outorg")
20333 (synopsis "Org-style comment editing")
20334 (description "Outorg is for editing comment-sections of source-code
20335 files in temporary Org-mode buffers. It turns conventional
20336 literate-programming upside-down in that the default mode is the
20337 programming-mode, and special action has to be taken to switch to the
20338 text-mode (i.e. Org-mode).")
20339 (license license:gpl3+))))
20341 (define-public emacs-outshine
20343 (name "emacs-outshine")
20347 (uri (git-reference
20348 (url "https://github.com/alphapapa/outshine")
20349 (commit (string-append "v" version))))
20350 (file-name (git-file-name name version))
20353 "1lh9f5dgdbwfyzxk6nsg1xwdjs8gc6p9mbyyhp6f8fnk3h0y88cg"))))
20354 (build-system emacs-build-system)
20356 (list emacs-outorg))
20357 (home-page "https://github.com/alphapapa/outshine")
20358 (synopsis "Emacs outline with outshine")
20359 (description "Outshine attempts to bring the look and feel of
20360 @code{org-mode} to an Emacs outside of the Org major-mode. It is an extension
20361 of @code{outline-minor-mode} (@code{org-mode} itself derives from
20362 outline-mode), so there is no such thing like an outshine mode, only
20363 @code{outline-minor-mode} with outshine extensions loaded.")
20364 (license license:gpl3+)))
20366 (define-public emacs-frecency
20367 (let ((commit "31ef9ff4af1a4fed3dcc24ea74037feea8795c87")
20368 (version "0.1-pre")
20371 (name "emacs-frecency")
20372 (version (git-version version revision commit))
20375 (uri (git-reference
20376 (url "https://github.com/alphapapa/frecency.el")
20380 "051aihjdg3x22svaxhwylpi8i6s2x9j8syvsj1jgilgjjdy15l6j"))
20381 (file-name (git-file-name name version))))
20382 (build-system emacs-build-system)
20384 (list emacs-a emacs-dash))
20385 (home-page "https://github.com/alphapapa/frecency.el")
20386 (synopsis "Sort items by frequency and recency of access")
20387 (description "This package provides a way of sorting items via
20388 a heuristic based on frequency and recency.")
20389 (license license:gpl3+))))
20391 (define-public emacs-org-recent-headings
20392 (let ((commit "97418d581ea030f0718794e50b005e9bae44582e")
20395 (name "emacs-org-recent-headings")
20396 (version (git-version "0.1" revision commit))
20400 (uri (git-reference
20401 (url "https://github.com/alphapapa/org-recent-headings")
20403 (file-name (git-file-name name version))
20405 (base32 "1y11rlnhi36lzhc1cagninv6hlcwbvj88xfr0g0xzpbzy7hys021"))))
20406 (build-system emacs-build-system)
20408 (list emacs-dash emacs-frecency emacs-helm emacs-org emacs-s))
20409 (home-page "https://github.com/alphapapa/org-recent-headings")
20410 (synopsis "Navigate to recently used Org headings and lists")
20412 "This package maintains a list of recently used Org headings,
20413 as well as functions for navigating between these headings.")
20414 (license license:gpl3+))))
20416 (define-public emacs-org-super-agenda
20418 (name "emacs-org-super-agenda")
20423 (uri (git-reference
20424 (url "https://github.com/alphapapa/org-super-agenda")
20426 (file-name (git-file-name name version))
20428 (base32 "10l9h2n09cql4ih7nc0ma3ghdsq9l5v9xlj1lg7kq67icdwjlsvy"))))
20429 (build-system emacs-build-system)
20431 `(#:tests? #f ;FIXNE: Tests try to read "~/org/test.org"
20432 #:test-command '("test/run" "--debug")
20434 (modify-phases %standard-phases
20435 (add-after 'unpack 'prepare-for-tests.el
20437 (make-file-writable "test/test.el")
20438 (emacs-substitute-variables "test/test.el"
20439 ("org-super-agenda-test-results-file"
20440 (string-append (getcwd) "/test/results.el")))
20441 ;; The following tests fail (see:
20442 ;; https://github.com/alphapapa/org-super-agenda/issues/183).
20443 (substitute* "test/test.el"
20444 ((".*org-super-agenda-test--:auto-(map|tags).*" all)
20445 (string-append all " (skip-unless nil)\n"))))))))
20447 (list emacs-f util-linux))
20449 (list emacs-dash emacs-ht emacs-org emacs-s emacs-ts))
20450 (home-page "https://github.com/alphapapa/org-super-agenda")
20451 (synopsis "Supercharged Org agenda")
20452 (description "This package allows items in the Org agenda to be grouped
20453 into sections while preserving the structure imposed by any timestamps.")
20454 (license license:gpl3+)))
20456 (define-public emacs-elegant-agenda-mode
20457 (let ((commit "c72f42e0f551c3dd81e68262f07a96c0ec90a589")
20460 (name "emacs-elegant-agenda-mode")
20461 (version (git-version "0.1.0" revision commit))
20465 (uri (git-reference
20466 (url "https://github.com/justinbarclay/elegant-agenda-mode")
20468 (file-name (git-file-name name version))
20471 "0f8qk3vd41ffbkfqw5nks3bld0qpjrlnk9sb46wcbsyfnrs2v082"))))
20472 (build-system emacs-build-system)
20473 (home-page "https://github.com/justinbarclay/elegant-agenda-mode")
20474 (synopsis "Elegant theme for your org-agenda")
20476 "The elegant-agenda-mode package uses fonts and typography to give your
20477 org-agenda some breathing room and elegance. This package was inspired by the
20478 work Nicolas Rougier.")
20479 (license license:gpl3+))))
20481 (define-public emacs-org-make-toc
20483 (name "emacs-org-make-toc")
20487 (uri (git-reference
20488 (url "https://github.com/alphapapa/org-make-toc")
20490 (file-name (git-file-name name version))
20493 "180ji6nnj6qj0rs1rdp1zlcrfsqf7ikb44ym8icbp5d6al2s4hnr"))))
20494 (build-system emacs-build-system)
20496 (list emacs-org emacs-dash emacs-s))
20497 (home-page "https://github.com/alphapapa/org-make-toc")
20498 (synopsis "Maintain a table of contents for an Org file")
20499 (description "This package facilitates the creation and maintenance of
20500 tables of contents.")
20501 (license license:gpl3+)))
20503 (define-public emacs-ts
20504 ;; XXX: Upstream did not tag last release. Use commit matching version
20506 (let ((commit "552936017cfdec89f7fc20c254ae6b37c3f22c5b"))
20513 (uri (git-reference
20514 (url "https://github.com/alphapapa/ts.el")
20517 (base32 "18lif159zndl19ddz9rfq12l90770858yasfns21ryl1yrq3aifr"))
20518 (file-name (git-file-name name version))))
20519 (build-system emacs-build-system)
20521 ;; XXX: Three tests are failing because of a timezone-related issue
20522 ;; with how they're written. On my machine, all the failing test
20523 ;; results are 18000 seconds (5 hours) off.
20525 ;; The ts-parse-org function accepts a string without any timezone
20526 ;; info, not assumed to be in Unix time, and converts it to a so-called
20527 ;; ts struct. The ts-unix function (accessor) accepts a ts struct,
20528 ;; then seems to assume the struct's corresponding time is in terms of
20529 ;; the user's current time zone, before returning a Unix time in
20532 ;; The failing tests all have similar problems, but nothing else about
20533 ;; the library seems particularly off.
20536 #:test-command #~(list "emacs" "--batch"
20537 "-l" "test/test.el"
20538 "-f" "ert-run-tests-batch-and-exit")
20540 #~(modify-phases %standard-phases
20541 (add-before 'check 'make-tests-writable
20543 (make-file-writable "test/test.el")))
20544 (add-before 'check 'delete-failing-tests
20546 (emacs-batch-edit-file "test/test.el"
20548 (goto-char (point-min))
20549 (dolist (test-regexp
20550 '("ert-deftest ts-fill"
20551 "ert-deftest ts-format"
20552 "ert-deftest ts-parse-org\\_>"
20553 "ert-deftest ts-parse-org-element"))
20554 (re-search-forward test-regexp)
20555 (beginning-of-line)
20557 (goto-char (point-min)))
20558 (basic-save-buffer))))))))
20560 (list emacs-dash emacs-s))
20561 (home-page "https://github.com/alphapapa/ts.el")
20562 (synopsis "Timestamp and date/time library")
20563 (description "This package facilitates manipulating dates, times, and
20564 timestamps by providing a @code{ts} struct.")
20565 (license license:gpl3+))))
20567 (define-public emacs-circadian
20569 (name "emacs-circadian")
20574 (uri (git-reference
20575 (url "https://github.com/guidoschmidt/circadian.el")
20577 (file-name (git-file-name name version))
20579 (base32 "1hydxhmcchaprfmp08xr6nlksz6y97jbf4mswj69bgdfjfbf22km"))))
20584 #~(list "emacs" "--batch"
20586 "--eval" "(ert-run-tests-batch-and-exit test-order)")))
20587 (build-system emacs-build-system)
20589 (list emacs-el-mock))
20590 (home-page "https://github.com/guidoschmidt/circadian.el")
20591 (synopsis "Theme-switching for Emacs based on daytime")
20592 (description "Circadian may reduce eye strain by automatically switching
20593 between light and dark themes based on daytime. It is inspired by color
20594 temperature shifting tools and brightness adaption software.")
20595 ;; The LICENSE file is expat, but the sole ".el" file is explicitly GPL3+.
20596 (license (list license:gpl3+
20599 (define-public emacs-peg
20606 (uri (string-append "https://elpa.gnu.org/packages/peg-" version ".tar"))
20608 (base32 "0yxfwwwc6fck1p9smcm1dwnva42868xvavhy7j749vlxrgb3v94x"))))
20609 (build-system emacs-build-system)
20610 (home-page "https://elpa.gnu.org/packages/peg.html")
20611 (synopsis "Parsing Expression Grammars in Elisp")
20612 (description "This package provides a macro that parses the current buffer
20613 according to a parsing expression grammar.")
20614 (license license:gpl3+)))
20616 (define-public emacs-eldev
20618 (name "emacs-eldev")
20623 (uri (git-reference
20624 (url "https://github.com/doublep/eldev")
20626 (file-name (git-file-name name version))
20628 (base32 "14rrh5ycwd3r5k3df8aif4jii645m5jgplxky3hrjgr8vxd951h8"))))
20629 (build-system emacs-build-system)
20633 #:test-command #~(list "./bin/eldev" "-p" "-dtTC" "test")
20635 #~(modify-phases %standard-phases
20636 (add-after 'unpack 'prepare-for-tests
20638 (setenv "ELDEV_LOCAL" (getcwd))
20639 (make-file-writable "test/project-i/project-i-autoloads.el")))
20640 (add-after 'unpack 'skip-failing-tests
20641 ;; FIXME: 2 tests are failing. Skip them for now.
20643 (delete-file "test/upgrade-self.el")))
20644 (add-after 'install 'install-eldev-executable
20645 ;; This constructs the eldev executable from templates and
20646 ;; installs it in the specified directory.
20648 (let ((bin (string-append #$output "/bin"))
20649 (site-lisp (elpa-directory #$output)))
20651 (setenv "HOME" (getcwd))
20652 (invoke "./install.sh" bin)
20653 (substitute* (string-append bin "/eldev")
20654 ;; Point ELDEV_LOCAL to the installation directory so that
20655 ;; eldev doesn't try to bootstrap itself from MELPA when
20657 (("export ELDEV_EMACS.*" all)
20658 (string-append "export ELDEV_LOCAL=" site-lisp "\n" all)))))))))
20660 (list texinfo)) ;for tests
20661 (home-page "https://github.com/doublep/eldev/")
20662 (synopsis "Emacs-based build tool for Elisp")
20663 (description "Eldev (Elisp Development Tool) is an Emacs-based build tool,
20664 targeted solely at Elisp projects. It is an alternative to Cask. Unlike
20665 Cask, Eldev itself is fully written in Elisp and its configuration files are
20666 also Elisp programs. For those familiar with the Java world, Cask can be seen
20667 as a parallel to Maven — it uses project description, while Eldev is sort of a
20668 parallel to Gradle — its configuration is a program on its own.")
20669 (license license:gpl3+)))
20671 (define-public emacs-with-simulated-input
20673 (name "emacs-with-simulated-input")
20678 (uri (git-reference
20679 (url "https://github.com/DarwinAwardWinner/with-simulated-input")
20680 (commit (string-append "v" version))))
20681 (file-name (git-file-name name version))
20684 "0n8h84whsh0aph8xhn9plprix9f6bysgvarz2anz7kwns19js6s4"))))
20685 (build-system emacs-build-system)
20687 ;; The test suite fails with error: "Spies can only be created in
20690 #:test-command '("buttercup" "-L" ".")))
20692 (list emacs-buttercup emacs-undercover))
20695 (home-page "https://github.com/DarwinAwardWinner/with-simulated-input")
20696 (synopsis "Non-interactive testing Emacs library")
20697 (description "This package provides an Emacs Lisp macro,
20698 @code{with-simulated-input}, which evaluates one or more forms while
20699 simulating a sequence of input events for those forms to read. The result is
20700 the same as if a user had evaluated the forms and then manually typed in the
20701 same input. This macro is useful for non-interactive testing of normally
20702 interactive commands and functions, such as @code{completing-read}.")
20703 (license license:gpl3+)))
20705 (define-public emacs-org-ql
20707 (name "emacs-org-ql")
20711 (uri (git-reference
20712 (url "https://github.com/alphapapa/org-ql")
20716 "0iamqv5j43ngj1xdqr36rkgk9lqpk9bg8y531jsldnvwzrp3srpf"))
20717 (file-name (git-file-name name version))))
20718 (build-system emacs-build-system)
20725 emacs-org-super-agenda
20731 (list emacs-buttercup emacs-with-simulated-input))
20734 #:test-command '("buttercup" "-L" ".")))
20735 (home-page "https://github.com/alphapapa/org-ql/")
20736 (synopsis "Query language for Org buffers")
20737 (description "This package provides a Lispy query language for Org
20738 files, allowing for actions to be performed based on search criteria.")
20739 (license license:gpl3+)))
20741 (define-public emacs-bing-dict
20743 (name "emacs-bing-dict")
20747 (uri (git-reference
20748 (url "https://github.com/cute-jumper/bing-dict.el")
20750 (file-name (git-file-name name version))
20753 "1kn8kmljn0pj0hz7dj7r7nxw43xd6acndaqq92d02mla12hiqayz"))))
20754 (build-system emacs-build-system)
20755 (home-page "https://github.com/cute-jumper/bing-dict.el")
20756 (synopsis "Minimalist Bing dictionary interface in Emacs")
20758 "This package provides a minimalist Emacs extension to search
20759 @uref{http://www.bing.com/dict}. It supports English to Chinese, and
20760 Chinese to English.")
20761 (license license:gpl3+)))
20763 (define-public emacs-org-auto-tangle
20765 (name "emacs-org-auto-tangle")
20769 (uri (git-reference
20770 (url "https://github.com/yilkalargaw/org-auto-tangle")
20772 (file-name (git-file-name name version))
20775 "1kn1jsbv97ps280lcdx19d6hs7pvz7q9ng67xlb1kwjb680pa7rl"))))
20776 (build-system emacs-build-system)
20777 (propagated-inputs (list emacs-async))
20778 (home-page "https://github.com/yilkalargaw/org-auto-tangle")
20779 (synopsis "Automatically tangle code blocks on save")
20781 "@code{org-auto-tangle} allows you to automatically tangle code blocks
20782 whenever saving an @code{org-mode} file.")
20783 (license license:bsd-2)))
20785 (define-public emacs-org-auto-expand
20786 (let ((commit "4938d5f6460e2f8f051ba9ac000b291bfa43ef62")
20789 (name "emacs-org-auto-expand")
20790 (version (git-version "0.1" revision commit))
20793 (uri (git-reference
20794 (url "https://github.com/alphapapa/org-auto-expand")
20796 (file-name (git-file-name name version))
20799 "1my0c6xmkh37lwi6l472lz9d86lf20h6xcllzlxm1lxa24rhva6v"))))
20800 (build-system emacs-build-system)
20802 (list emacs-org emacs-dash))
20803 (home-page "https://github.com/alphapapa/org-auto-expand")
20804 (synopsis "Automatically expand certain Org headings")
20805 (description "This package allows a customizable set of headings in Org
20806 files to be expanded upon opening them.")
20807 (license license:gpl3+))))
20809 (define-public emacs-parsebib
20811 (name "emacs-parsebib")
20816 (uri (git-reference
20817 (url "https://github.com/joostkremers/parsebib")
20819 (file-name (git-file-name name version))
20821 (base32 "0vcl2wvxwpr62c9ym0fm3qaxzhjcrpk4r6r0zaqhkvlf8qr3rg8y"))))
20822 (build-system emacs-build-system)
20823 (home-page "https://github.com/joostkremers/parsebib")
20824 (synopsis "Library for parsing @file{.bib} files")
20826 "This package provides an Emacs library for parsing @file{.bib} files.")
20827 (license license:gpl3+)))
20829 (define-public emacs-ebib
20831 (name "emacs-ebib")
20836 (uri (git-reference
20837 (url "https://github.com/joostkremers/ebib")
20839 (file-name (git-file-name name version))
20841 (base32 "1azgsjf5j8k6llq74brykidcb2mnq6fghk8jyq7qad5afh7n0mrc"))))
20842 (build-system emacs-build-system)
20844 (list emacs-biblio emacs-ivy emacs-parsebib))
20845 (home-page "https://joostkremers.github.io/ebib/")
20846 (synopsis "BibTeX database manager for Emacs")
20848 "Ebib is a BibTeX database manager that runs in GNU Emacs.
20849 With Ebib you can create, sort and manage your @file{.bib} database files, all
20850 within Emacs. It supports searching, multi-line field values and
20851 @samp{@@String} and @samp{@@Preamble} definitions. Ebib integrates
20852 with (La)TeX mode, Org mode and other Emacs editing modes.")
20853 ;; The Ebib source files are released under a BSD license with
20854 ;; the exception of org-ebib.el, which is released under the GNU
20856 (license (list license:bsd-3
20859 (define-public emacs-biblio
20861 (name "emacs-biblio")
20866 (uri (git-reference
20867 (url "https://github.com/cpitclaudel/biblio.el")
20869 (file-name (git-file-name name version))
20871 (base32 "1gxjind6r235az59dr8liv03d8994mqb8a7m28j3c12q7p70aziz"))))
20872 (build-system emacs-build-system)
20874 (list emacs-dash emacs-let-alist))
20875 (home-page "https://github.com/cpitclaudel/biblio.el")
20876 (synopsis "Browse and import bibliographic references")
20877 (description "This package provides an extensible Emacs package for
20878 browsing and fetching references.
20880 @file{biblio.el} makes it easy to browse and gather bibliographic references
20881 and publications from various sources, by keywords or by DOI. References are
20882 automatically fetched from well-curated sources, and formatted as BibTeX.")
20883 (license license:gpl3+)))
20885 (define-public emacs-citar
20887 (name "emacs-citar")
20891 (uri (git-reference
20892 (url "https://github.com/bdarcus/citar")
20893 (commit (string-append "v" version))))
20894 (file-name (git-file-name name version))
20897 "1n69lkp7298gasm9hlbx9nhgp9ggh8w8ffyvi1rmbj96lcnpsyi9"))))
20898 (build-system emacs-build-system)
20900 `(#:phases (modify-phases %standard-phases
20901 (add-before 'build 'set-home
20903 (setenv "HOME" "/tmp"))))))
20904 (propagated-inputs (list emacs-auctex
20910 (home-page "https://github.com/bdarcus/citar")
20911 (synopsis "Emacs package to quickly find and act on bibliographic entries")
20913 "This package provides a completing-read front-end to browse and
20914 act on BibTeX, BibLaTeX, and CSL JSON bibliographic data, and LaTeX,
20915 markdown, and Org cite editing support.
20917 When used with Vertico (or Selectrum), Embark, and Marginalia, it
20918 provides similar functionality to helm-bibtex and ivy-bibtex: quick
20919 filtering and selecting of bibliographic entries from the minibuffer,
20920 and the option to run different commands against them.
20922 With Embark, it also makes available at-point actions in Org
20924 (license license:gpl3+)))
20926 (define-public emacs-citar-org-roam
20928 (name "emacs-citar-org-roam")
20933 (uri (git-reference
20934 (url "https://github.com/emacs-citar/citar-org-roam")
20935 (commit (string-append "v" version))))
20936 (file-name (git-file-name name version))
20938 (base32 "1ldfs7g7ixnrwj23draiph4vy6xq7qgw18vhi7vbw6wvkh9fcv9r"))))
20939 (build-system emacs-build-system)
20940 (propagated-inputs (list emacs-org-roam emacs-citar))
20941 (home-page "https://github.com/emacs-citar/citar-org-roam")
20942 (synopsis "Emacs package to provide tighter Citar and Org-Roam integration")
20944 Out-of-box, Citar provides default support for file-per-note bibliographic
20945 notes that are compatible with Org-Roam v2. This package integrates directly
20946 with the Org-Roam database, and provides the following additional features to
20947 Citar note support:
20949 @item multiple references per note
20950 @item multiple reference notes per file
20951 @item ability to query note citations by reference
20952 @item ``live'' updating of Citar UI for presence of notes
20954 (license license:gpl3)))
20956 (define-public emacs-helm-bibtex
20957 (let ((commit "aa775340ba691d2322948bfdc6a88158568a1399")
20960 (name "emacs-helm-bibtex")
20961 (version (git-version "2.0.0" revision commit))
20965 (uri (git-reference
20966 (url "https://github.com/tmalsburg/helm-bibtex")
20968 (file-name (git-file-name name version))
20970 (base32 "1d3mc17ga09m41i06khghlvixr6gsiacifnhdbrfnp0w5592aprk"))))
20971 (build-system emacs-build-system)
20980 (home-page "https://github.com/tmalsburg/helm-bibtex")
20981 (synopsis "Bibliography manager based on Helm")
20982 (description "This package provides bibliography manager for Emacs,
20983 based on Helm and the bibtex-completion backend.
20988 @item Quick access to your bibliography from within Emacs
20989 @item Powerful search capabilities
20990 @item Provides instant search results as you type
20991 @item Tightly integrated with LaTeX authoring, emails, Org mode, etc.
20992 @item Open the PDFs, URLs, or DOIs associated with an entry
20993 @item Insert LaTeX cite commands, Ebib links, or Pandoc citations,
20994 BibTeX entries, or plain text references at point, attach PDFs to emails
20995 @item Support for note taking
20996 @item Quick access to online bibliographic databases such as Pubmed,
20997 arXiv, Google Scholar, Library of Congress, etc.
20998 @item Imports BibTeX entries from CrossRef and other sources.
21000 (license license:gpl3+))))
21002 (define-public emacs-ewmctrl
21004 (name "emacs-ewmctrl")
21009 (uri (git-reference
21010 (url "https://github.com/flexibeast/ewmctrl")
21011 (commit (string-append "v" version))))
21012 (file-name (git-file-name name version))
21015 "0ilwvx0qryv3v6xf0gxqwnfm6pf96gxap8h9g3f6z6lk9ff4n1wi"))))
21016 (build-system emacs-build-system)
21019 (modify-phases %standard-phases
21020 (add-after 'unpack 'patch-ewmctrl
21021 ;; This build phase makes sure ‘ewmctrl’ looks
21022 ;; for ‘wmctrl’ in the right place.
21024 (let ((file "ewmctrl.el"))
21026 (emacs-substitute-sexps file
21027 ("(defcustom ewmctrl-wmctrl-path" (which "wmctrl")))))))))
21030 (home-page "https://github.com/flexibeast/ewmctrl")
21031 (synopsis "Emacs interface to @code{wmctrl}")
21032 (description "@code{ewmctrl} provides an Emacs interface to
21033 @code{wmctrl} command-line window-management program.")
21034 (license license:gpl3+)))
21036 (define-public emacs-erc-image
21037 (let ((commit "82fb3871f02e24b1e880770b9a3d187aab43d0f0")
21040 (name "emacs-erc-image")
21041 (version (git-version "0" revision commit))
21045 (uri (git-reference
21046 (url "https://github.com/kidd/erc-image.el")
21048 (file-name (git-file-name name version))
21051 "1q8mkf612fb4fjp8h4kbr107wn083iqfdgv8f80pcmil8y33dw9i"))))
21052 (build-system emacs-build-system)
21054 `(#:phases (modify-phases %standard-phases
21055 ;; The package autoloader fails to provide
21056 ;; the image module when handled by Guix.
21057 ;; Disable this phase, and let the package
21058 ;; handle the `eval-after-load' procedure.
21059 (delete 'make-autoloads))))
21060 (home-page "https://github.com/kidd/erc-image.el")
21061 (synopsis "Show inlined images (png/jpg/gif/svg) in ERC buffers")
21062 (description "This plugin subscribes to hooks @code{erc-insert-modify-hook}
21063 and @code{erc-send-modify-hook} to download and show images.")
21064 (license license:gpl3+))))
21066 (define-public emacs-helm-gtags
21068 (name "emacs-helm-gtags")
21073 (uri (git-reference
21074 (url "https://github.com/syohex/emacs-helm-gtags")
21076 (file-name (git-file-name name version))
21078 (base32 "1kc1jzk10nfd2v20g8dwnb6a944afrwdwnkzl06w4ba8k4yim7gi"))))
21079 (build-system emacs-build-system)
21082 (home-page "https://github.com/syohex/emacs-helm-gtags")
21083 (synopsis "Emacs Helm interface to GNU Global")
21085 "@code{emacs-helm-gtags} provides a Emacs Helm interface to GNU Global.")
21086 (license license:gpl3+)))
21088 (define-public emacs-list-utils
21089 ;; Use a git snapshot until upstream fixes the build with emacs 28.1.
21090 ;; See <http://issues.guix.gnu.org/55558>.
21091 (let ((commit "0dec8c02962d2591766739e37c5714ba21133093") (revision "1"))
21093 (name "emacs-list-utils")
21094 (version (git-version "0.4.6" revision commit))
21097 (uri (git-reference
21098 (url "https://github.com/rolandwalker/list-utils")
21100 (file-name (git-file-name name version))
21103 "11nm8649a131bn2kwj4fxkiijdx2d4f1byx7a985zlb3bzdwnaw8"))))
21104 (build-system emacs-build-system)
21105 (home-page "https://github.com/rolandwalker/list-utils")
21106 (synopsis "List-manipulation utility functions")
21108 "This package provides a list manipulation library for Emacs.")
21109 (license license:gpl3+))))
21111 (define-public emacs-parsec
21113 (name "emacs-parsec")
21118 (uri (git-reference
21119 (url "https://github.com/cute-jumper/parsec.el")
21121 (file-name (git-file-name name version))
21123 (base32 "1g1s8s45g3kkbi3h7w0pmadmzdswb64mkdvdpg2lihg341kx37gm"))))
21124 (build-system emacs-build-system)
21125 (home-page "https://github.com/cute-jumper/parsec.el")
21126 (synopsis "Parser combinator library for Emacs Lisp")
21128 "Parsec is a parser combinator library for Emacs Lisp, similar to
21129 Haskell's Parsec library. It contains most of the parser combinators in
21130 Text.Parsec.Combinator, and more combinators can be added if necessary! Most
21131 of the parser combinators have the same behavior as their Haskell
21132 counterparts. Parsec also comes with a simple error handling mechanism so
21133 that it can display an error message showing how the parser fails.")
21134 (license license:gpl3+)))
21136 (define-public emacs-move-text
21138 (name "emacs-move-text")
21143 (uri (git-reference
21144 (url "https://github.com/emacsfodder/move-text")
21146 (file-name (git-file-name name version))
21148 (base32 "0pxvipjp9xvr9zwiwij943jgpy7fk8pxphbdj0vrg8ar5avlqiam"))))
21149 (build-system emacs-build-system)
21150 (home-page "https://github.com/emacsfodder/move-text")
21151 (synopsis "Move current line or region with M-up or M-down")
21152 (description "This package provide functions to move the current line
21153 using @kbd{M-up} or @kbd{M-down} if a region is marked, it will move the
21155 (license license:gpl3+)))
21157 (define-public emacs-validate
21159 (name "emacs-validate")
21163 (uri (git-reference
21164 (url "https://github.com/Malabarba/validate.el")
21166 (file-name (git-file-name name version))
21169 "1l12ibx6cw4mgicgjpw71fb4fr4sd0k54lvbpq7ngc29br3j6i4v"))))
21170 (build-system emacs-build-system)
21171 (home-page "https://github.com/Malabarba/validate.el")
21172 (synopsis "Emacs library for scheme validation")
21173 (description "This Emacs library provides two functions that perform
21174 schema validation.")
21175 (license license:gpl3+)))
21177 (define-public emacs-rainbow-blocks
21178 (let ((commit "dd435d7bb34ff6f162a5f315df308b90b7e9f842"))
21180 (name "emacs-rainbow-blocks")
21181 (version (git-version "1.0.0" "1" commit))
21184 (uri (git-reference
21185 (url "https://github.com/istib/rainbow-blocks")
21187 (file-name (git-file-name name version))
21190 "06yfb3i7wzvqrhkb61zib9xvpb5i00s4frizkzff66im05k0n795"))))
21191 (build-system emacs-build-system)
21192 (home-page "https://github.com/istib/rainbow-blocks")
21193 (synopsis "Highlight sexp blocks")
21194 (description "Rainbow-blocks is an Emacs mode that highlights blocks
21195 made of parentheses, brackets, and braces according to their depth. Each
21196 successive level is highlighted in a different color. This makes it easy to
21197 orient yourself in the code, and tell which statements are at a given level.")
21198 (license license:gpl3+))))
21200 (define-public emacs-tree-mode
21201 (let ((commit "b06078826d5875d74b0e7b7ac47b0d0917610534")
21204 (name "emacs-tree-mode")
21205 (version (string-append "0.0.1" "-" revision "."
21206 (string-take commit 7)))
21210 (uri (git-reference
21211 (url "https://github.com/emacsorphanage/tree-mode")
21213 (file-name (git-file-name name version))
21216 "13bbdhdmqg4x9yghanhr8fsbsxbnypzxdxgicz31sjjm675kpnix"))))
21217 (build-system emacs-build-system)
21218 (home-page "https://github.com/emacsorphanage/tree-mode")
21219 (synopsis "Emacs mode to manage tree widgets")
21221 "This package provides an Emacs library to manage tree widgets.")
21222 (license license:gpl3+))))
21224 (define-public emacs-md4rd
21226 (name "emacs-md4rd")
21230 (uri (git-reference
21231 (url "https://github.com/ahungry/md4rd")
21233 (file-name (git-file-name name version))
21236 "1n6g6k4adzkkn1g7z4j27s35xy12c1fg2r08gv345ddr3wplq4ri"))))
21238 (list emacs-dash emacs-request emacs-s emacs-tree-mode))
21239 (build-system emacs-build-system)
21240 (home-page "https://github.com/ahungry/md4rd")
21241 (synopsis "Emacs Mode for Reddit")
21243 "This package allows reading Reddit from within Emacs interactively.")
21244 (license license:gpl3+)))
21246 (define-public emacs-pulseaudio-control
21247 (let ((commit "a931533140547510decdc368f39b2d2b97ca725f")
21250 (name "emacs-pulseaudio-control")
21251 (version (git-version "0.0.1" revision commit))
21255 (uri (git-reference
21256 (url "https://github.com/flexibeast/pulseaudio-control")
21258 (file-name (git-file-name name version))
21261 "1jvjn9jszjjapi167an49jxcvr88cvgjwykglhp4b8lwhbjfqw76"))))
21262 (build-system emacs-build-system)
21264 '(#:phases (modify-phases %standard-phases
21265 (add-after 'unpack 'patch-file-name
21266 (lambda* (#:key inputs #:allow-other-keys)
21267 (let ((pulseaudio (assoc-ref inputs "pulseaudio")))
21268 (chmod "pulseaudio-control.el" #o600)
21269 (emacs-substitute-variables "pulseaudio-control.el"
21270 ("pulseaudio-control-pactl-path"
21271 (string-append pulseaudio "/bin/pactl")))
21273 (inputs (list pulseaudio))
21274 (home-page "https://github.com/flexibeast/pulseaudio-control")
21275 (synopsis "Control @code{pulseaudio} from Emacs")
21277 "This package allows controlling @code{pulseaudio} from Emacs.")
21278 (license license:gpl3+))))
21280 (define-public emacs-pulsar
21282 (name "emacs-pulsar")
21286 (uri (git-reference
21287 (url "https://git.sr.ht/~protesilaos/pulsar")
21289 (file-name (git-file-name name version))
21292 "0wwj9civyidfcv0k859w0i2aqb75dypy7aihk3cnv1nv2q4m61j5"))))
21293 (native-inputs (list texinfo))
21294 (build-system emacs-build-system)
21298 #~(modify-phases %standard-phases
21299 (add-after 'install 'makeinfo
21303 "--eval=(require 'ox-texinfo)"
21304 "--eval=(find-file \"README.org\")"
21305 "--eval=(org-texinfo-export-to-info)")
21306 (install-file "pulsar.info" (string-append #$output "/share/info")))))))
21307 (home-page "https://protesilaos.com/emacs/pulsar")
21308 (synopsis "Pulse highlight line on demand or after running select functions")
21309 (description "This package temporarily highlights the current line after a
21310 given function is invoked.")
21311 (license (list license:gpl3+
21312 license:fdl1.3+)))) ; GFDLv1.3+ for the manual
21314 (define-public emacs-datetime
21316 (name "emacs-datetime")
21321 (uri (git-reference
21322 (url "https://github.com/doublep/datetime")
21324 (file-name (git-file-name name version))
21326 (base32 "10nf3y4abwkwvi4g11mdwi0dydy4kzfyv21y06dsxm1hc1gmq7zx"))))
21327 (build-system emacs-build-system)
21329 `(#:include (cons "^[^/]*\\.extmap$" %default-include)))
21331 (list emacs-extmap))
21332 (home-page "https://github.com/doublep/datetime/")
21333 (synopsis "Library to work with dates in Emacs")
21334 (description "Parsing, formatting, matching and recoding
21335 timestamps and date-time format strings library for Emacs.")
21336 (license license:gpl3+)))
21338 (define-public emacs-org-mind-map
21339 ;; XXX: Upstream does not provide any tag. The commit below corresponds to
21340 ;; an exact version bump from the main file.
21341 (let ((commit "477701b15cb0c8ed7f021ca76a4cb1a7d9ad6aa5"))
21343 (name "emacs-org-mind-map")
21348 (uri (git-reference
21349 (url "https://github.com/theodorewiles/org-mind-map")
21351 (file-name (git-file-name name version))
21353 (base32 "08sj43py6aid4vpqgsm0v5n94mcmcil0047qjk033492glz6q55c"))))
21356 (build-system emacs-build-system)
21357 (home-page "https://github.com/theodorewiles/org-mind-map")
21358 (synopsis "Create Graphviz directed graphs from Org files")
21360 "This package creates Graphviz directed graphs from Org files.")
21361 (license license:gpl3+))))
21363 (define-public emacs-npm-mode
21365 (name "emacs-npm-mode")
21370 (uri (git-reference
21371 (url "https://github.com/mojochao/npm-mode")
21373 (file-name (git-file-name name version))
21375 (base32 "1mh6nbffciw4yhv049kdhh796ysj1x21ndm3fwymhskb3dy0w1ss"))))
21376 (build-system emacs-build-system)
21377 (home-page "https://github.com/mojochao/npm-mode")
21378 (synopsis "Minor mode for working with @code{npm} projects")
21380 "@code{npm-mode} provides a minor mode to work with @code{npm} projects.")
21381 (license license:gpl3+)))
21383 (define-public emacs-itail
21384 ;; XXX: Upstream provides no tags. The commit below corresponds to an exact
21385 ;; version bump from main file.
21386 (let ((commit "6e43c20da03be3b9c6ece93b7dc3495975ec1888"))
21388 (name "emacs-itail")
21393 (uri (git-reference
21394 (url "https://github.com/re5et/itail")
21396 (file-name (git-file-name name version))
21398 (base32 "044nzxh1hq41faxw3lix0wy78vfz304pjcaa5a11dqfz7q3gx5cv"))))
21399 (build-system emacs-build-system)
21400 (home-page "https://github.com/re5et/itail")
21401 (synopsis "Interactive @code{tail} Emacs mode")
21402 (description "@code{itail} provides interactive @code{tail} mode that
21403 allows you to filter the tail with Unix pipes and highlight the contents of
21404 the tailed file. It works locally or on remote files using Tramp.")
21405 (license license:gpl3+))))
21407 (define-public emacs-loop
21409 (name "emacs-loop")
21414 (uri (git-reference
21415 (url "https://github.com/Wilfred/loop.el")
21417 (file-name (git-file-name name version))
21419 (base32 "1gs95xnmnn8aa4794k7h8mw1sz1nfdh9v0caqj6yvnsdnwy74n5x"))))
21420 (build-system emacs-build-system)
21422 (list emacs-ert-runner emacs-undercover))
21425 #:test-command '("ert-runner")))
21426 (home-page "https://github.com/Wilfred/loop.el")
21427 (synopsis "Imperative loop structures for Emacs")
21428 (description "Loop structures familiar to users of other languages. This
21429 library adds a selection of popular loop structures as well as break and
21431 (license license:gpl3+)))
21433 (define-public emacs-elisp-refs
21435 (name "emacs-elisp-refs")
21440 (uri (git-reference
21441 (url "https://github.com/Wilfred/elisp-refs")
21443 (file-name (git-file-name name version))
21445 (base32 "03p95kwvwb3apb3lhhdlaxs952x7sdlxa2qc1c77cjwrm5xzdg9z"))))
21446 (build-system emacs-build-system)
21455 (list emacs-ert-runner emacs-undercover))
21459 #:test-command #~(list "ert-runner")))
21460 (home-page "https://github.com/Wilfred/elisp-refs")
21461 (synopsis "Find callers of elisp functions or macros")
21462 (description "@code{elisp-refs} finds references to functions, macros or
21463 variables. Unlike a dumb text search, it actually parses the code, so it's
21464 never confused by comments or @code{foo-bar} matching @code{foo}.")
21465 (license license:gpl3+)))
21467 (define-public emacs-crdt
21468 ;; XXX: Upstream does not always tag new releases. The commit below
21469 ;; corresponds exactly to latest version bump.
21470 (let ((commit "e6d42f42c5dedb73560048f4bf6263c63ffa21bb")
21473 (name "emacs-crdt")
21478 (uri (git-reference
21479 (url "https://code.librehq.com/qhong/crdt.el")
21481 (file-name (git-file-name name version))
21483 (base32 "16dpg0d8p4fqjl2nir290iim9bb7f87rwnxs16lx67dasvbfawph"))))
21484 (build-system emacs-build-system)
21485 (home-page "https://code.librehq.com/qhong/crdt.el")
21486 (synopsis "Real-time collaborative editing environment")
21488 "@code{crdt.el} is a real-time collaborative editing environment for
21489 Emacs using Conflict-free Replicated Data Types. With it, you can share
21490 multiple buffer in one session, and see other users’ cursor and region. It
21491 also synchronizes Org mode folding status. It should work with all of Org
21493 (license license:gpl3+))))
21495 (define-public emacs-crux
21497 (name "emacs-crux")
21502 (uri (git-reference
21503 (url "https://github.com/bbatsov/crux")
21504 (commit (string-append "v" version))))
21505 (file-name (git-file-name name version))
21508 "1h28chpyq61k72qh749r5kqq1y70wx3xw9c3zyfzmy750wlw6nyj"))))
21509 (build-system emacs-build-system)
21510 (home-page "https://github.com/bbatsov/crux")
21511 (synopsis "Collection of useful functions for Emacs")
21513 "@code{crux} provides a collection of useful functions for Emacs.")
21514 (license license:gpl3+)))
21516 (define-public emacs-edit-server
21518 (name "emacs-edit-server")
21523 (uri (git-reference
21524 (url "https://github.com/stsquad/emacs_chrome")
21525 (commit (string-append "v" version))))
21526 (file-name (git-file-name name version))
21528 (base32 "0m7gj224sqxjjw5sxky92fnrxg9jy4nf33kwf0aqxnfhqlgh545k"))))
21529 (build-system emacs-build-system)
21532 (modify-phases %standard-phases
21533 (add-after 'unpack 'chdir-elisp
21534 ;; Elisp directory is not in root of the source.
21536 (chdir "servers"))))))
21537 (propagated-inputs (list emacs-ert-async))
21538 (home-page "https://github.com/stsquad/emacs_chrome")
21539 (synopsis "Server that responds to edit requests from Chromium")
21541 "This package provides an edit server to respond to requests from Emacs.")
21542 (license license:gpl3+)))
21544 (define-public emacs-m-buffer-el
21546 (name "emacs-m-buffer-el")
21551 (uri (git-reference
21552 (url "https://github.com/phillord/m-buffer-el")
21553 (commit (string-append "v" version))))
21554 (file-name (git-file-name name version))
21557 "1sx76i59razwccvn6x7rx5a124bfyjw9fcbxf4gj7nsg33qiq809"))))
21561 #~(modify-phases %standard-phases
21562 (add-before 'install 'check
21563 (lambda* (#:key tests? #:allow-other-keys)
21565 (invoke "emacs" "--batch" "-L" "."
21566 "-l" "test/m-buffer-test.el"
21567 "-l" "test/m-buffer-at-test.el"
21568 "-f" "ert-run-tests-batch-and-exit")))))))
21569 (build-system emacs-build-system)
21570 (home-page "https://github.com/phillord/m-buffer-el")
21571 (synopsis "List oriented buffer operations for Emacs")
21572 (description "@code{m-buffer} provides a set of list-orientated functions
21573 for operating over the contents of Emacs buffers.")
21574 (license license:gpl3+)))
21576 (define-public emacs-let-alist
21578 (name "emacs-let-alist")
21583 (uri (string-append
21584 "https://elpa.gnu.org/packages/let-alist-" version ".el"))
21586 (base32 "0szj7vnjzz4zci5fvz7xqgcpi4pzdyyf4qi2s8xar2hi7v3yaawr"))))
21587 (build-system emacs-build-system)
21588 (home-page "https://elpa.gnu.org/packages/let-alist.html")
21589 (synopsis "Easily let-bind values of an assoc-list by their names")
21590 (description "This package offers a single macro, @code{let-alist}. This
21591 macro takes a first argument (whose value must be an alist) and a body.")
21592 (license license:gpl3+)))
21594 (define-public emacs-esup
21595 (let ((commit "0de8af8233d9ce1b67f05a50f25c481c4f1118d8")
21598 (name "emacs-esup")
21599 (version (git-version "0.7.1" revision commit))
21603 (uri (git-reference
21604 (url "https://github.com/jschaf/esup")
21606 (file-name (git-file-name name version))
21609 "01khb3xyj0ylwib6ryzzvqmkh5wvzxiq2n3l0s3h9zv7wx849bzv"))))
21610 (build-system emacs-build-system)
21612 (list emacs-noflet emacs-undercover emacs-buttercup))
21617 #:test-command '("buttercup" "-L" ".")))
21618 (home-page "https://github.com/jschaf/esup")
21619 (synopsis "Emacs start up profiler")
21620 (description "Benchmark Emacs Startup time without ever leaving
21622 (license license:gpl2+))))
21624 (define-public emacs-restart-emacs
21625 (let ((commit "9aa90d3df9e08bc420e1c9845ee3ff568e911bd9")
21628 (name "emacs-restart-emacs")
21629 (version (git-version "0.1.1" revision commit))
21633 (uri (git-reference
21634 (url "https://github.com/iqbalansari/restart-emacs")
21636 (file-name (git-file-name name version))
21638 (base32 "02x1a85k7r95z8091zgjiaj9nf0zvx1jy4xvl3hr12qbnrx1wfav"))))
21639 (build-system emacs-build-system)
21640 (home-page "https://github.com/iqbalansari/restart-emacs")
21641 (synopsis "Restart Emacs from within Emacs")
21642 (description "This package provides a simple command to restart Emacs from
21644 (license license:gpl3+))))
21646 (define-public emacs-svg-lib
21647 ;; XXX: Upstream does not tag releases. The commit hash below corresponds
21648 ;; to the version bump.
21649 (let ((commit "0486c9453449771bc3f5872f70bc5cb23580d0f4"))
21651 (name "emacs-svg-lib")
21656 (uri (git-reference
21657 (url "https://github.com/rougier/svg-lib")
21659 (file-name (git-file-name name version))
21661 (base32 "059vd4k7bvskkriwaiz4n2yafc3inndrr018hqfpic4k02cbwzpv"))))
21662 (build-system emacs-build-system)
21663 (home-page "https://github.com/rougier/svg-lib")
21664 (synopsis "Emacs SVG library for creating tags, icons and bars")
21666 "This is a small Emacs library to create and display various
21667 SVG objects, namely tags, progress bars, progress pies and icons.
21668 Each object is guaranteed to fit nicely in a text buffer ensuring
21669 width is an integer multiple of character width.")
21670 (license license:gpl3+))))
21672 (define-public emacs-svg-tag-mode
21673 ;; XXX: Upstream does not tag releases. The commit hash below corresponds
21674 ;; to the version bump.
21675 (let ((commit "3b07983614bee0195534e7a8a6dcfab757da4f0b"))
21677 (name "emacs-svg-tag-mode")
21682 (uri (git-reference
21683 (url "https://github.com/rougier/svg-tag-mode")
21685 (file-name (git-file-name name version))
21687 (base32 "0nc0y2dn67gy9cly3yamskfd9dd028xbask8gjxql934bq0ads2i"))))
21688 (build-system emacs-build-system)
21690 (list emacs-svg-lib))
21691 (home-page "https://github.com/rougier/svg-tag-mode")
21692 (synopsis "Replace keywords with SVG tags")
21693 (description "This package provides a minor mode that replaces keywords
21694 or expressions with SVG rounded box labels that are fully customizable.")
21695 (license license:gpl3+))))
21697 (define-public emacs-kind-icon
21699 (name "emacs-kind-icon")
21704 (uri (string-append "https://elpa.gnu.org/packages/kind-icon-"
21707 (base32 "0phssrcpmcidzlwy1577f3f02qwjs6hpavb416302y0n8kkhwvli"))))
21708 (build-system emacs-build-system)
21709 (propagated-inputs (list emacs-svg-lib))
21710 (home-page "https://github.com/jdtsmith/kind-icon")
21711 (synopsis "Completion kind icons in Emacs")
21712 (description "Kind-icon mode adds a colorful icon or text prefix based on
21713 @code{:company-kind} for compatible completion UIs. The ``kind'' prefix is
21714 typically used for differentiating completion candidates such as variables or
21716 (license license:gpl3+)))
21718 (define-public emacs-svg-icon
21719 (let ((commit "ebc2b8d0f6c680fd575a90e683cc7b832acd1eb7")
21722 (name "emacs-svg-icon")
21723 (version (git-version "0.1" revision commit))
21727 (uri (git-reference
21728 (url "https://github.com/rougier/emacs-svg-icon")
21730 (file-name (git-file-name name version))
21732 (base32 "1qzqfa8xyw1nkb89kbvw9qcgdwr8g017n8gf3yzwn816qhkfkjrj"))))
21733 (build-system emacs-build-system)
21734 (home-page "https://github.com/rougier/emacs-svg-icon")
21735 (synopsis "Emacs library to create SVG icons on the fly")
21736 (description "This library allows creating SVG icons by parsing remote
21737 collections whose license are compatibles with Emacs. The default size of an
21738 icon is exactly 2x1 characters such that it can be inserted inside a text
21739 without disturbing alignment.")
21740 (license (list license:gpl3+)))))
21742 (define-public emacs-sourcemap
21744 (name "emacs-sourcemap")
21749 (uri (git-reference
21750 (url "https://github.com/syohex/emacs-sourcemap")
21752 (file-name (git-file-name name version))
21754 (base32 "115g2mfpbfywp8xnag4gsb50klfvplqfh928a5mabb5s8v4a3582"))))
21755 (build-system emacs-build-system)
21756 (home-page "https://github.com/syohex/emacs-sourcemap")
21757 (synopsis "Sourcemap parser")
21758 (description "Sourcemap parser")
21759 (license license:gpl3+)))
21761 (define-public emacs-macrostep
21762 (let ((commit "424e3734a1ee526a1bd7b5c3cd1d3ef19d184267"))
21764 (name "emacs-macrostep")
21765 (version (git-version "0.9" "1" commit))
21768 (uri (git-reference
21769 (url "https://github.com/joddie/macrostep")
21771 (file-name (git-file-name name version))
21774 "1fm40mxdn289cyzgw992223dgrjmwxn4q8svyyxfaxjrpb38jhjz"))))
21775 (build-system emacs-build-system)
21780 #~(modify-phases %standard-phases
21781 (add-before 'check 'remove-test
21782 ;; Fails because of requirement ‘/bin/sh’.
21784 (let ((file "macrostep-test.el"))
21785 (make-file-writable file)
21786 (emacs-batch-edit-file file
21787 `(progn (progn (goto-char (point-min))
21789 "(ert-deftest macrostep-expand-c-macros")
21790 (beginning-of-line)
21792 (basic-save-buffer))))))
21794 (lambda* (#:key tests? #:allow-other-keys)
21796 (invoke "emacs" "--batch" "-L" "."
21797 "-l" "macrostep-test.el"
21798 "-f" "ert-run-tests-batch-and-exit")))))))
21799 (home-page "https://github.com/joddie/macrostep")
21800 (synopsis "Interactive macro-expander for Emacs")
21801 (description "@code{macrostep} is an Emacs minor mode for interactively
21802 stepping through the expansion of macros in Emacs Lisp source code. It lets
21803 you see exactly what happens at each step of the expansion process by
21804 pretty-printing the expanded forms inline in the source buffer, which is
21805 temporarily read-only while macro expansions are visible. You can expand and
21806 collapse macro forms one step at a time, and evaluate or instrument the
21807 expansions for debugging with Edebug as normal.")
21808 (license license:gpl3+))))
21810 (define-public emacs-macrostep-geiser
21811 ;; XXX: Upstream does not tag commits (yet). The commit below matches the
21813 (let ((commit "7927651b188cac07113bce5b2cd0de12b2b082f7"))
21815 (name "emacs-macrostep-geiser")
21820 (uri (git-reference
21821 (url "https://github.com/nbfalcon/macrostep-geiser")
21823 (file-name (git-file-name name version))
21825 (base32 "1gz2kypyrb4k76dn4j02c8s6a3dqb1la5jcrdcifv8saa8lvqyli"))))
21826 (build-system emacs-build-system)
21827 (propagated-inputs (list emacs-geiser emacs-macrostep))
21828 (home-page "https://github.com/nbfalcon/macrostep-geiser")
21829 (synopsis "Macrostep for Geiser and Cider")
21831 "This plug-in implements a Macrostep back-end powered by Geiser.")
21832 (license license:gpl3+))))
21834 (define-public emacs-parent-mode
21836 (name "emacs-parent-mode")
21841 (uri (git-reference
21842 (url "https://github.com/Fanael/parent-mode")
21844 (file-name (git-file-name name version))
21846 (base32 "0i5bc7lyyrx6swqlrp9l5x72yzwi53qn6ldrfs99gh08b3yvsnni"))))
21847 (build-system emacs-build-system)
21848 (home-page "https://github.com/Fanael/parent-mode")
21849 (synopsis "Get major mode's parent modes")
21850 (description "Get major mode's parent modes")
21851 (license license:gpl3+)))
21853 (define-public emacs-lacarte
21855 (name "emacs-lacarte")
21859 (uri "https://www.emacswiki.org/emacs/download/lacarte.el")
21862 "1sbmk37ljq5j7dsw5c37sbxvlfgdqswh7bi4dknyjzfxlq50f4am"))))
21863 (build-system emacs-build-system)
21864 (home-page "https://www.emacswiki.org/emacs/lacarte.el")
21865 (synopsis "Execute menu items as commands, with completion")
21866 (description "Execute menu items as commands, with completion.")
21867 (license license:gpl3)))
21869 (define-public emacs-latex-preview-pane
21870 (let ((commit "5297668a89996b50b2b62f99cba01cc544dbed2e")
21873 (name "emacs-latex-preview-pane")
21874 (version (git-version "20151021" revision commit))
21877 (uri (git-reference
21878 (url "https://github.com/jsinglet/latex-preview-pane")
21880 (file-name (git-file-name name version))
21883 "1m4f5p53275k8i9p0y105kkrp9nx1bwn6726my9s5dwnjhr5dnp2"))))
21884 (build-system emacs-build-system)
21887 ;; The welcome and error message templates are in .txt format.
21888 #:include #~(cons "\\.txt$" %default-include)))
21889 (home-page "https://github.com/jsinglet/latex-preview-pane")
21890 (synopsis "Preview pane to ease LaTeX editing in Emacs")
21891 (description "@code{latex-preview-pane} is a minor mode for previewing
21892 LaTeX files directly in Emacs. It supports PDF previews, with either
21893 @command{pdflatex} or @command{xelatex}, and highlights errors in the LaTeX
21895 (license license:gpl3+))))
21897 (define-public emacs-isearch-prop
21898 (let ((commit "4a2765f835dd115d472142da05215c4c748809f4")
21901 (name "emacs-isearch-prop")
21902 (version (git-version "0" revision commit))
21906 (uri (git-reference
21907 (url "https://github.com/emacsmirror/isearch-prop")
21909 (file-name (git-file-name name version))
21912 "06gdk5m84q6pxwng8rjxny1zkll8f3m2x6lw4xyib2dvg7iaslh3"))))
21913 (build-system emacs-build-system)
21914 (home-page "https://www.emacswiki.org/emacs/isearch-prop.el")
21915 (synopsis "Extensions to @code{isearch.el}")
21916 (description "The Emacs library @code{isearch-prop.el} lets you search within
21917 contexts. You can limit incremental search to a set of zones of
21918 buffer text, search contexts that in effect constitute a multi-region.
21919 These zones can be defined in various ways, including some ways
21920 provided specially by this library.")
21921 (license license:gpl3+))))
21923 (define-public emacs-company-lua
21924 (let ((commit "29f6819de4d691e5fd0b62893a9f4fbc1c6fcb52")
21927 (name "emacs-company-lua")
21928 (version (git-version "0.1" "2" commit))
21932 (uri (git-reference
21933 (url "https://github.com/ptrv/company-lua")
21935 (file-name (git-file-name name version))
21938 "0ny2dcc7c585p7v3j6q0rpkbj1qmf2ismy8a5020jpr585xvz0hh"))))
21939 (build-system emacs-build-system)
21941 (list emacs-company emacs-s emacs-f emacs-lua-mode))
21943 `(#:include (cons* "^lua\\/" %default-include)))
21944 (home-page "https://github.com/ptrv/company-lua")
21945 (synopsis "Company backend for Lua")
21947 "This package provides Company backend for Lua programming language.")
21948 (license license:gpl3+))))
21950 (define-public emacs-beginend
21952 (name "emacs-beginend")
21957 (uri (git-reference
21958 (url "https://github.com/DamienCassou/beginend")
21959 (commit (string-append "v" version))))
21960 (file-name (git-file-name name version))
21962 (base32 "17r8v1sjvgcmprywny9fdg54x4pssp8p7a9ivv5mrygkqjz1vykk"))))
21963 ;; TODO: Run tests.
21964 (build-system emacs-build-system)
21966 (list emacs-undercover)) ; For tests.
21967 (home-page "https://github.com/DamienCassou/beginend")
21968 (synopsis "Redefine @code{M-<} and @code{M->} for Emacs modes")
21969 (description "@code{beginend} redefines @code{M-<} and @code{M->}
21970 keybindings for Emacs modes so that point moves to meaningful
21971 locations. Redefined keys are still accessible by pressing the same
21973 (license license:gpl3+)))
21975 (define-public emacs-mbsync
21976 (let ((commit "b62491c0e0d89eb9c66261a16d7ac81231c9c453")
21979 (name "emacs-mbsync")
21980 (version (git-version "0.1.2" revision commit))
21984 (uri (git-reference
21985 (url "https://github.com/dimitri/mbsync-el")
21987 (file-name (git-file-name name version))
21990 "1zlih37mkqjn2czl12zn7lgxxljvrwhqqpbksj9c91zn0f0rm3mz"))))
21991 (build-system emacs-build-system)
21992 (home-page "https://github.com/dimitri/mbsync-el")
21993 (synopsis "Interface to mbsync for Emacs")
21994 (description "This package calls @code{mbsync} from
21996 (license license:gpl3+))))
21998 (define-public emacs-ibuffer-projectile
22000 (name "emacs-ibuffer-projectile")
22005 (uri (git-reference
22006 (url "https://github.com/purcell/ibuffer-projectile")
22008 (file-name (git-file-name name version))
22011 "18cqxnwzzbkcj9jcaw89b210432yzhrl1dwsv48p0jbhfnr17k41"))))
22012 (build-system emacs-build-system)
22014 (list emacs-projectile))
22015 (home-page "https://github.com/purcell/ibuffer-projectile")
22016 (synopsis "Group ibuffer's list by projectile root")
22017 (description "Adds functionality to Emacs @code{ibuffer} for
22018 grouping buffers by their projectile root directory.")
22019 (license license:gpl3+)))
22021 (define-public emacs-ibuffer-vc
22023 (name "emacs-ibuffer-vc")
22028 (uri (git-reference
22029 (url "https://github.com/purcell/ibuffer-vc")
22031 (file-name (git-file-name name version))
22033 (base32 "1mgn7b786j4hwq1ks012hxxgvrfn5rz90adi2j190gmjz60rc5g5"))))
22034 (build-system emacs-build-system)
22035 (home-page "https://github.com/purcell/ibuffer-vc")
22036 (synopsis "Group Ibuffer's list by revision control system indications")
22038 "Ibuffer-VC adds functionality to Ibuffer for grouping buffers by their
22039 parent revision control system root directory, and for displaying, or sorting,
22040 by the status of listed files.")
22041 (license license:gpl3+)))
22043 (define-public emacs-elm-mode
22045 (name "emacs-elm-mode")
22052 (url "https://github.com/jcollard/elm-mode")
22053 (commit (string-append "v" version))))
22054 (file-name (git-file-name name version))
22056 (base32 "1gnr61ibzcznfqy5f8capmbz75rcfikwy106rjdmp45qz2jwp4di"))))
22058 (list emacs-dash emacs-f emacs-reformatter emacs-s))
22059 (build-system emacs-build-system)
22060 (home-page "https://github.com/jcollard/elm-mode")
22061 (synopsis "Emacs major mode for editing Elm source code")
22063 "This package provides a major mode for editing Elm source code, and
22064 working with common core and third-party Elm tools. Its features are:
22067 @item Syntax highlighting
22068 @item Intelligent indentation
22069 @item Integration with elm-make
22070 @item Integration with elm-repl
22071 @item Integration with elm-reactor
22072 @item Integration with elm-package
22073 @item Integration with elm-oracle
22074 @item Integration with elm-format
22075 @item Integration with elm-test
22077 (license license:gpl3+)))
22079 (define-public emacs-helm-mode-manager
22081 (name "emacs-helm-mode-manager")
22086 (uri (git-reference
22087 (url "https://github.com/istib/helm-mode-manager")
22089 (file-name (git-file-name name version))
22092 "1srx5f0s9x7zan7ayqd6scxfhcvr3nkd4yzs96hphd87rb18apzk"))))
22093 (build-system emacs-build-system)
22096 (home-page "https://github.com/istib/helm-mode-manager/")
22097 (synopsis "Switch and toggle Emacs major and minor modes using Helm")
22098 (description "This package provides a Helm interface for toggling Emacs
22099 major or minor mode.
22102 @item @code{helm-switch-major-mode} list of all major modes
22103 @item @code{helm-enable-minor-mode} list of all inactive minor modes
22104 @item @code{helm-disable-minor-mode} list of all ACTIVE minor modes
22107 Hitting @code{RET} enables the mode, @code{C-z} shows the mode
22109 (license license:gpl3+)))
22111 (define-public emacs-hy-mode
22113 (name "emacs-hy-mode")
22118 (uri (git-reference
22119 (url "https://github.com/hylang/hy-mode")
22120 (commit (string-append "v" version))))
22121 (file-name (git-file-name name version))
22123 (base32 "0gihxlmfminadaqdr8d2zccd7wwygl3m0gfzxsk5izi7f8hl4w7f"))))
22124 (build-system emacs-build-system)
22126 (list emacs-dash emacs-s))
22127 (home-page "https://github.com/hylang/hy-mode")
22128 (synopsis "Major mode for Hylang")
22129 (description "This package provides a major mode for Hylang.")
22130 (license license:gpl3+)))
22132 (define-public emacs-web-beautify
22134 (name "emacs-web-beautify")
22139 (uri (git-reference
22140 (url "https://github.com/yasuyk/web-beautify")
22142 (file-name (git-file-name name version))
22144 (base32 "0vms7zz3ym53wf1zdrkbf2ky2xjr1v134ngsd0jr8azyi8siw84d"))))
22145 (build-system emacs-build-system)
22146 (home-page "https://github.com/yasuyk/web-beautify")
22147 (synopsis "Format HTML, CSS and JavaScript, JSON")
22148 (description "This package provides an Emacs functions to format HTML,
22149 CSS, JavaScript, JSON.")
22150 (license license:gpl3+)))
22152 (define-public emacs-helm-shell-history
22153 (let ((commit "110d3c35c52fe4b89b29e79ea4c8626bce7266a1"))
22155 (name "emacs-helm-shell-history")
22156 (version (git-version "0.1" "1" commit))
22160 (uri (git-reference
22161 (url "https://github.com/yuutayamada/helm-shell-history")
22163 (file-name (git-file-name name version))
22166 "18fkjcz69g4dyaxhf9j8svr5x6dhsdnglddwisis8hdn504scpfj"))))
22167 (build-system emacs-build-system)
22170 (modify-phases %standard-phases
22171 (add-before 'check 'patch-helm-shell-history-file
22173 (let ((file "helm-shell-history.el"))
22175 (emacs-substitute-sexps file
22176 ("(defvar helm-shell-history-file"
22177 `(expand-file-name "~/.bash_history"))))
22181 (home-page "https://github.com/yuutayamada/helm-shell-history")
22182 (synopsis "Find shell history with Emacs Helm")
22183 (description "This package provides an Emacs Helm interface to search
22184 throw a shell history.")
22185 (license license:gpl3+))))
22187 (define-public emacs-discover-my-major
22189 (name "emacs-discover-my-major")
22194 (uri (git-reference
22195 (url "https://framagit.org/steckerhalter/discover-my-major.git/")
22197 (file-name (git-file-name name version))
22200 "1wlqyl03hhnflbyay3qlvdzqzvv5rbybcjpfddggda7ias9h0pr4"))))
22201 (build-system emacs-build-system)
22203 (list emacs-makey))
22204 (home-page "https://framagit.org/steckerhalter/discover-my-major/")
22205 (synopsis "Discover key bindings for the current Emacs major mode")
22206 (description "This package discovers key bindings and
22207 their meaning for the current Emacs major-mode.")
22208 (license license:gpl3+)))
22210 (define-public emacs-org-ref
22212 (name "emacs-org-ref")
22217 (uri (git-reference
22218 (url "https://github.com/jkitchin/org-ref")
22219 (commit (string-append "v" version))))
22220 (file-name (git-file-name name version))
22222 (base32 "0xd1qp8dfy8n8b2n3rsdzm8vrfl7dii142kw330s8jp3pavww1f6"))))
22223 (build-system emacs-build-system)
22235 (home-page "https://github.com/jkitchin/org-ref")
22236 (synopsis "Citations, cross-references and bibliographies in Org mode")
22238 "Org Ref is an Emacs library that provides rich support for citations,
22239 labels and cross-references in Org mode.
22241 The basic idea of Org Ref is that it defines a convenient interface to insert
22242 citations from a reference database (e.g., from BibTeX files), and a set of
22243 functional Org links for citations, cross-references and labels that export
22244 properly to LaTeX, and that provide clickable functionality to the user. Org
22245 Ref interfaces with Helm BibTeX to facilitate citation entry, and it can also
22248 It also provides a fairly large number of utilities for finding bad citations,
22249 extracting BibTeX entries from citations in an Org file, and functions to
22250 create and modify BibTeX entries from a variety of sources, most notably from
22253 Org Ref is especially suitable for Org documents destined for LaTeX export and
22254 scientific publication. Org Ref is also useful for research documents and
22256 (license license:gpl3+)))
22258 (define-public emacs-org-reveal
22259 (let ((commit "fe9148b670d144124d9697fcf5d0528f19025104"))
22261 (name "emacs-org-reveal")
22262 (version (git-version "20210902" "1" commit))
22265 (uri (git-reference
22266 (url "https://github.com/yjwen/org-reveal")
22268 (file-name (git-file-name name version))
22271 "034gkbc03z9jzj7ad34mmqgmvj4f14ap7iixh3zx4wp2ipw5xb7c"))))
22272 (build-system emacs-build-system)
22273 (home-page "https://github.com/yjwen/org-reveal")
22274 (synopsis "Org and Reveal.js powered HTML presentation tool")
22275 (description "Org-Reveal is a @command{org-mode} extension that allows
22276 to create beautiful presentations (slides) with 3D effects from simple but
22277 powerful Org contents.")
22278 (license license:gpl3+))))
22280 (define-public emacs-org-re-reveal
22282 (name "emacs-org-re-reveal")
22287 (uri (git-reference
22288 (url "https://gitlab.com/oer/org-re-reveal")
22290 (file-name (git-file-name name version))
22292 (base32 "1bp3kz2awy2mizs59qsa2yl7wfa0197fklnramzifz6z2zv5kbrx"))))
22293 (build-system emacs-build-system)
22295 (list emacs-htmlize emacs-org))
22296 (home-page "https://gitlab.com/oer/org-re-reveal")
22297 (synopsis "Build HTML presentations with reveal.js from Org source files")
22298 (description "This project started as fork of org-reveal. It provides an
22299 export back-end for HTML presentations with reveal.js from Org mode source
22301 (license license:gpl3+)))
22303 (define-public emacs-add-hooks
22305 (name "emacs-add-hooks")
22310 (uri (git-reference
22311 (url "https://github.com/nickmccurdy/add-hooks")
22313 (file-name (git-file-name name version))
22315 (base32 "1jv9fpcsm572zg0j1mbpbfkqgdlqapy89xhhj19pswkhjns1y2wl"))))
22316 (build-system emacs-build-system)
22317 (home-page "https://github.com/nickmccurdy/add-hooks/")
22318 (synopsis "Emacs function for setting multiple hooks")
22319 (description "This package provides a @code{add-hooks} function tidies up
22320 duplicate hook and function names further into a single declarative call.")
22321 (license license:gpl3+)))
22323 (define-public emacs-fancy-battery
22325 (name "emacs-fancy-battery")
22330 (uri (git-reference
22331 (url "https://github.com/emacsorphanage/fancy-battery")
22333 (file-name (git-file-name name version))
22335 (base32 "05lwcwf412m717yhwpjrswqkm8c3i7391rmiwv2k8xc1vk6dpp4g"))))
22336 (build-system emacs-build-system)
22337 (home-page "https://github.com/emacsorphanage/fancy-battery")
22338 (synopsis "Display battery status in Emacs mode line")
22339 (description "This package provides @code{fancy-battery-mode} which is
22340 like the built-in @code{display-battery-mode}, but more fancy. It just the
22341 remaining time, uses colours to indicate the status of the battery, and is
22342 more customizable.")
22343 (license license:gpl3)))
22345 (define-public emacs-fancy-narrow
22347 (name "emacs-fancy-narrow")
22352 (uri (git-reference
22353 (url "https://github.com/Malabarba/fancy-narrow")
22355 (file-name (git-file-name name version))
22357 (base32 "0vcr1gnqawvc1yclqs23jvxm6bqix8kpflf1c7znb0wzxmz9kx7y"))))
22358 (build-system emacs-build-system)
22359 (home-page "https://github.com/Malabarba/fancy-narrow/releases")
22360 (synopsis "Imitate @code{narrow-to-region} with more eye candy")
22362 "Unlike @code{narrow-to-region}, which completely hides text outside
22363 the narrowed region, this package simply de-emphasizes the text, makes it
22364 read-only, and makes it unreachable. This leads to a much more natural
22365 feeling where the region stays static (instead of being brutally moved to a
22366 blank slate) and is clearly highlighted with respect to the rest of the
22368 (license license:gpl2+)))
22370 (define-public emacs-hideshowvis
22371 (let ((commit "614e856620445166a60c00a1c4653dbd59c871c9")
22374 (name "emacs-hideshowvis")
22375 (version (git-version "0.7" revision commit))
22378 (uri (git-reference
22379 (url "https://github.com/sheijk/hideshowvis")
22381 (file-name (git-file-name name version))
22384 "0ykj5jwcm03p5h7sd52qndmzihyan09lqg6rzgmyabvw7p56y90m"))))
22385 (build-system emacs-build-system)
22386 (home-page "https://github.com/sheijk/hideshowvis")
22387 (synopsis "Add icons in the Emacs fringe which @code{hideshow} can hide")
22388 (description "Emacs package to add clickable icons in the fringe for
22389 regions which @code{hideshow} can hide.")
22390 (license license:gpl2+))))
22392 (define-public emacs-know-your-http-well
22394 (name "emacs-know-your-http-well")
22399 (uri (git-reference
22400 (url "https://github.com/for-GET/know-your-http-well")
22401 (commit (string-append "v" version))))
22402 (file-name (git-file-name name version))
22404 (base32 "1lppggnii2r9fvlhh33gbdrwb50za8lnalavlq9s86ngndn4n94k"))))
22407 (modify-phases %standard-phases
22408 (add-after 'unpack 'install-json-files
22409 (lambda* (#:key outputs #:allow-other-keys)
22410 (for-each (lambda (directory)
22411 (copy-recursively directory
22413 (assoc-ref outputs "out")
22416 (add-after 'unpack 'chdir-elisp
22417 ;; Elisp directory is not in root of the source.
22419 (chdir "emacs"))))))
22420 (build-system emacs-build-system)
22421 (home-page "https://github.com/for-GET/know-your-http-well")
22422 (synopsis "Meaning of HTTP headers codes")
22423 (description "Meaning of HTTP headers codes.")
22424 (license license:gpl3+)))
22426 (define-public emacs-navi-mode
22427 (let ((commit "c1d38e8237f4e14af020a0b7d4f118ea198ab674"))
22429 (name "emacs-navi-mode")
22430 (version (git-version "2.0" "1" commit))
22434 (uri (git-reference
22435 (url "https://github.com/alphapapa/navi")
22437 (file-name (git-file-name name version))
22440 "0jj5spk14hgb7zb1cd2n8whcw4k1kd5zb6llwj96v178yaws7l8k"))))
22441 (build-system emacs-build-system)
22443 (list emacs-outshine emacs-outorg))
22444 (home-page "https://github.com/alphapapa/navi")
22445 (synopsis "Emacs major-mode for easy buffer-navigation")
22447 "This package provides an Emacs major-mode for easy buffer-navigation")
22448 (license license:gpl3+))))
22450 (define-public emacs-download-region
22451 (let ((commit "eb9e557529a73b4cfc8281c70dd0d95db333fffa")
22454 (name "emacs-download-region")
22455 (version (string-append "0.0.1" "-" revision "."
22456 (string-take commit 7)))
22460 (uri (git-reference
22461 (url "https://github.com/zk-phi/download-region")
22463 (file-name (git-file-name name version))
22466 "0v52djg39b6k2snizd9x0qc009ws5y0ywqsfwhqgcbs5ymzh7dsc"))))
22467 (build-system emacs-build-system)
22468 (home-page "https://github.com/zk-phi/download-region")
22469 (synopsis "In buffer download manager for Emacs")
22470 (description "@code{download-region} provides in buffer
22471 downloading manager for Emacs.")
22472 (license license:gpl3+))))
22474 (define-public emacs-helpful
22476 (name "emacs-helpful")
22481 (uri (git-reference
22482 (url "https://github.com/Wilfred/helpful")
22484 (file-name (git-file-name name version))
22486 (base32 "0qwsifzsjw95l83m7z07fr9h1sqbhggwmcps1qgbddpan2a8ab8a"))
22487 ;; Cherry-picked from upstream, remove when bumping to 0.20.
22488 (patches (search-patches "emacs-helpful-fix-docstring-test.patch"))))
22489 (build-system emacs-build-system)
22491 (list emacs-elisp-refs emacs-dash emacs-s emacs-f emacs-shut-up))
22493 (list emacs-ert-runner emacs-undercover))
22496 #:test-command '("ert-runner")))
22497 (home-page "https://github.com/Wilfred/helpful")
22498 (synopsis "More contextual information in Emacs help")
22499 (description "@code{helpful} is an alternative to the built-in Emacs help
22500 that provides much more contextual information.
22503 @item Show the source code for interactively defined functions (unlike the
22505 @item Fall back to the raw sexp if no source is available.
22506 @item Show where a function is being called.
22507 @item Docstrings will Highlight the summary (the first sentence), include
22508 cross-references, hide superfluous puncuation.
22509 @item Show you the properties that have been applied to the current
22510 symbol. This provides visibility of features like edebug or byte-code
22512 @item Provide a separate @code{helpful-command} function to view interactive
22514 @item Display any keybindings that apply to interactive functions.
22515 @item Trace, disassemble functions from inside Helpful. This is discoverable
22516 and doesn't require memorisation of commands.
22518 (license license:gpl3+)))
22520 (define-public emacs-logview
22522 (name "emacs-logview")
22527 (uri (git-reference
22528 (url "https://github.com/doublep/logview")
22530 (file-name (git-file-name name version))
22532 (base32 "0vw6brs76z7fkvlazakwhhgdcydjc099j150c7503kwi2hmmp0p8"))))
22534 (list emacs-datetime emacs-extmap))
22535 (build-system emacs-build-system)
22536 (home-page "https://github.com/doublep/logview/")
22537 (synopsis "Emacs mode for viewing log files")
22538 (description "@code{logview} provides an Emacs mode to view log files.")
22539 (license license:gpl3+)))
22541 (define-public emacs-suggest
22543 (name "emacs-suggest")
22545 (home-page "https://github.com/Wilfred/suggest.el")
22549 (uri (git-reference
22552 (file-name (git-file-name name version))
22555 "01v8plska5d3g19sb1m4ph1i3ayprfzk8mi6mpabjy6zad397xjl"))))
22556 (build-system emacs-build-system)
22565 (list emacs-ert-runner emacs-undercover))
22568 #:test-command '("ert-runner")))
22569 (synopsis "Suggest Elisp functions that give the output requested")
22570 (description "Suggest.el will find functions that give the output
22571 requested. It's a great way of exploring list, string and arithmetic
22573 (license license:gpl3+)))
22575 (define-public emacs-benchmark-init
22576 (let ((commit "02435560415bbadbcf5051fb7042880549170e7e")
22579 (name "emacs-benchmark-init")
22580 (version (git-version "1.0" revision commit))
22584 (uri (git-reference
22585 (url "https://github.com/dholm/benchmark-init-el")
22587 (file-name (git-file-name name version))
22589 (base32 "19375vamhld4xm2qrdmhlp2nczfvalmz9x6ahl23zwkilr8n1nbw"))))
22590 (build-system emacs-build-system)
22591 (home-page "https://github.com/dholm/benchmark-init-el")
22592 (synopsis "Benchmark Emacs @code{require} and @code{load} calls")
22593 (description "@code{benchmark-init} provides a way to keep track of where
22594 time is being spent during Emacs startup in order to optimize startup time.")
22595 (license license:gpl3+))))
22597 (define-public emacs-magit-gerrit
22599 (name "emacs-magit-gerrit")
22604 (uri (git-reference
22605 (url "https://github.com/terranpro/magit-gerrit")
22606 (commit (string-append "v" version))))
22607 (file-name (git-file-name name version))
22609 (base32 "1q4kcr2ha2kir7pj0cshmgllgq51543syxkkk5jk3ksfiaba4crj"))))
22610 (build-system emacs-build-system)
22612 (list emacs-magit))
22613 (home-page "https://github.com/terranpro/magit-gerrit")
22614 (synopsis "Magit extension for Gerrit")
22615 (description "This Magit extension provides integration with Gerrit,
22616 which makes it possible to conduct Gerrit code reviews directly from within
22618 (license license:gpl3+)))
22620 (define-public emacs-magit-org-todos-el
22622 (name "emacs-magit-org-todos-el")
22627 (uri (git-reference
22628 (url "https://github.com/danielma/magit-org-todos.el")
22630 (file-name (git-file-name name version))
22633 "07r5x256k1fjjxs1yfg41kc94nwvnjlk2vvknkra3j8v9p0j88m7"))))
22635 (list emacs-magit))
22636 (build-system emacs-build-system)
22637 (home-page "https://github.com/danielma/magit-org-todos.el")
22638 (synopsis "Get todo.org into Emacs Magit status")
22639 (description "This package allows you to get @file{todo.org} into your
22642 If you have a @file{todo.org} file with @code{TODO} items in the root of your
22643 repository, @code{magit-org-todos} will create a section in your Magit status
22644 buffer with each of your todos.")
22645 (license license:gpl3+)))
22647 (define-public emacs-vcsh
22649 (name "emacs-vcsh")
22654 (uri (git-reference
22655 (url "https://gitlab.com/stepnem/vcsh-el.git")
22657 (file-name (git-file-name name version))
22659 (base32 "183pffdiqb7qqmjq31wxl3fpv8qswqgg99gb716rddiyk15ysri7"))))
22660 (build-system emacs-build-system)
22661 (home-page "https://gitlab.com/stepnem/vcsh-el")
22662 (synopsis "Emacs VCSH integration")
22664 "This library provides basic ``enter'' functionality and a few
22665 convenience commands to initialize a @acronym{VCSH, Version Control System for
22666 $HOME} repository and add files to it. It can be used in conjunction with
22668 (license license:public-domain)))
22670 (define-public emacs-f3
22677 (uri (git-reference
22678 (url "https://github.com/cosmicexplorer/f3")
22680 (file-name (git-file-name name version))
22682 (base32 "1qg48zbjdjqimw4516ymrsilz41zkib9321q0caf9474s9xyp2bi"))))
22683 (build-system emacs-build-system)
22686 (home-page "https://github.com/cosmicexplorer/f3")
22687 (synopsis "Fantastic File Finder for Emacs")
22689 "The Fantastic File Finder for Emacs. Find files fast, using helm.")
22690 (license license:gpl3+)))
22692 (define-public emacs-lice-el
22694 (name "emacs-lice-el")
22698 (uri (git-reference
22699 (url "https://github.com/buzztaiki/lice-el")
22700 (commit (string-append "v" version))))
22701 (file-name (git-file-name name version))
22704 "06plnrxj6kgnl9mjcbc48mgagpa60yyyyribwicmcgg9pgrs0wad"))))
22705 (build-system emacs-build-system)
22708 #:include #~(cons "^template/" %default-include)
22710 #~(modify-phases %standard-phases
22711 (add-after 'unpack 'patch-template-directory
22713 (emacs-substitute-variables "lice.el"
22714 ("lice:system-template-directory"
22715 (string-append (elpa-directory #$output) "/template"))))))))
22716 (home-page "https://github.com/buzztaiki/lice-el")
22717 (synopsis "License and header template for Emacs")
22718 (description "@code{lice.el} provides following features:
22721 @item License template management.
22722 @item File header insertion.
22724 (license license:gpl3+)))
22726 (define-public emacs-academic-phrases
22727 (let ((commit "0823ed8c24b26c32f909b896a469833ec4d7b656"))
22729 (name "emacs-academic-phrases")
22730 (version (git-version "0.1" "1" commit))
22734 (uri (git-reference
22735 (url "https://github.com/nashamri/academic-phrases")
22737 (file-name (git-file-name name version))
22740 "0qfzsq8jh05w4zkr0cvq3i1hdn97bq344vcqjg46sib26x3wpz6r"))))
22741 (build-system emacs-build-system)
22743 (list emacs-dash emacs-s emacs-ht))
22744 (home-page "https://github.com/nashamri/academic-phrases")
22745 (synopsis "Bypass that mental block when writing your papers")
22747 "When writing your academic paper, you might get stuck trying to find
22748 the right phrase that captures your intention. This package tries to
22749 alleviate that problem by presenting you with a list of phrases organized by
22750 the topic or by the paper section that you are writing. This package has
22751 around 600 phrases so far.
22753 Using this package is easy, just call @code{academic-phrases} to get a list of
22754 phrases organized by topic, or call @code{academic-phrases-by-section} to
22755 browse the phrases by the paper section and fill-in the blanks if required.")
22756 (license license:gpl3+))))
22758 (define-public emacs-auto-yasnippet
22759 (let ((commit "624b0d9711222073a2a3f2186e2605eb99fc83c9")
22762 (name "emacs-auto-yasnippet")
22763 (version (git-version "0.3.0" revision commit))
22766 (uri (git-reference
22767 (url "https://github.com/abo-abo/auto-yasnippet")
22769 (file-name (git-file-name name version))
22772 "15g8wi067f345xhpi0c12w0h04p4f4lpccwmdjdfj8hzfl4gyxy9"))))
22773 (build-system emacs-build-system)
22776 #:test-command '("make" "test")))
22778 (list emacs-yasnippet))
22779 (home-page "https://github.com/abo-abo/auto-yasnippet/")
22780 (synopsis "Quickly create disposable yasnippets")
22781 (description "This package provides a hybrid of keyboard macros and
22782 yasnippet. You create the snippet on the go, usually to be used just in the
22783 one place. It's fast, because you're not leaving the current buffer, and all
22784 you do is enter the code you'd enter anyway, just placing ~ where you'd like
22785 yasnippet fields and mirrors to be.")
22786 (license license:gpl3+))))
22788 (define-public emacs-highlight-numbers
22790 (name "emacs-highlight-numbers")
22795 (uri (git-reference
22796 (url "https://github.com/Fanael/highlight-numbers")
22798 (file-name (git-file-name name version))
22800 (base32 "1r07mpyr7rhd7bkg778hx6vbhb4n9ixgzkpszhgks7ri6ia38pj8"))))
22801 (build-system emacs-build-system)
22803 (list emacs-parent-mode))
22804 (home-page "https://github.com/Fanael/highlight-numbers")
22805 (synopsis "Highlight numbers in source code")
22806 (description "@code{highlight-numbers-mode} provides a minor mode for
22807 syntax highlighting of numeric literals in source code.
22809 It s customizable: it's easy to add or redefine what exactly constitutes a
22810 \"number\" in given major mode. See @code{highlight-numbers-modelist}.")
22811 (license license:gpl3+)))
22813 (define-public emacs-darkroom
22815 (name "emacs-darkroom")
22820 (uri (string-append "https://elpa.gnu.org/packages/"
22821 "darkroom-" version ".el"))
22823 (base32 "0l1xg5kqmjw22k78qnsln0ifx2dx74xxqj0qp8xxcpqvzzx0xh86"))))
22824 (build-system emacs-build-system)
22825 (home-page "https://elpa.gnu.org/packages/darkroom.html")
22826 (synopsis "Remove visual distractions and focus on writing")
22827 (description "@code{darkroom-mode} makes visual distractions disappear.
22828 The mode-line is temporarily elided, text is enlarged and margins are adjusted
22829 so that it's centered on the window.
22831 @code{darkroom-tentative-mode} is similar, but it doesn't immediately turn-on
22832 @code{darkroom-mode}, unless the current buffer lives in the sole window of
22833 the Emacs frame (i.e. all other windows are deleted). Whenever the frame is
22834 split to display more windows and more buffers, the buffer exits
22835 @code{darkroom-mode}. Whenever they are deleted, the buffer re-enters
22836 @code{darkroom-mode}.")
22837 (license license:gpl3+)))
22839 (define-public emacs-rsw-elisp
22841 (name "emacs-rsw-elisp")
22845 (uri (git-reference
22846 (url "https://github.com/rswgnu/rsw-elisp")
22848 (file-name (git-file-name name version))
22851 "0dfq8myg0r91900bk1s70amsmm4mjk2qsg12v5pk7lla5d2vnyaf"))))
22852 (build-system emacs-build-system)
22853 (home-page "https://github.com/rswgnu/rsw-elisp")
22854 (synopsis "Improved expressions that interactively evaluate Emacs Lisp")
22855 (description "This package improves and replaces the GNU Emacs commands
22856 that interactively evaluate Emacs Lisp expressions. The new commands replace
22857 standard key bindings and are all prefixed with @code{rsw-elisp-}. They work
22858 the same way as the old commands when called non-interactively; only the
22859 interactive behavior should be different.")
22860 (license license:gpl3+)))
22862 (define-public emacs-default-text-scale
22864 (name "emacs-default-text-scale")
22868 (uri (git-reference
22869 (url "https://github.com/purcell/default-text-scale")
22871 (file-name (git-file-name name version))
22874 "0h42jiwxrxjmk7ccwh3h25n7dy2rq61ncm5wx27jhkncc5jdm4h6"))))
22875 (build-system emacs-build-system)
22876 (home-page "https://github.com/purcell/default-text-scale")
22877 (synopsis "Adjust the font size in all Emacs frames")
22878 (description "This package provides commands for increasing or
22879 decreasing the default font size in all GUI Emacs frames.")
22880 (license license:gpl3+)))
22882 (define-public emacs-fixed-pitch
22884 (name "emacs-fixed-pitch")
22889 (uri (git-reference
22890 (url "https://github.com/cstby/fixed-pitch-mode")
22891 (commit (string-append "v" version))))
22892 (file-name (git-file-name name version))
22894 (base32 "0qlavjvib0r71xdy6y6pan9dhr57lw7jhmqk60mwa8fq6km8kpkj"))))
22895 (build-system emacs-build-system)
22896 (home-page "https://github.com/cstby/fixed-pitch-mode")
22898 "Use a monospaced typeface for code and a proportional one elsewhere")
22900 "Fixed-pitch mode is an Emacs minor mode for setting a monospaced typeface.
22901 This allows you to set a proportional typeface for UI elements while keeping
22902 a monospaced typeface for code.")
22903 (license license:gpl3+)))
22905 (define-public emacs-mixed-pitch
22907 (name "emacs-mixed-pitch")
22912 (uri (git-reference
22913 (url "https://gitlab.com/jabranham/mixed-pitch.git")
22915 (file-name (git-file-name name version))
22917 (base32 "1dhljrh44dsnixd8hbb11k6dgap8r8n7jknhfy2afdzq889fih74"))))
22918 (build-system emacs-build-system)
22919 (home-page "https://gitlab.com/jabranham/mixed-pitch")
22920 (synopsis "Mix variable- and fixed-pitch fonts in the same Emacs buffer")
22922 "@code{mixed-pitch-mode} is a minor mode that enables mixing
22923 variable-pitch and fixed-pitch fonts in the same buffer. The list
22924 @code{mixed-pitch-fixed-pitch-faces} defines the faces that are kept
22925 fixed-pitch,everything else becomes variable-pitch.")
22926 (license license:gpl3+)))
22928 (define-public emacs-visual-regexp
22930 (name "emacs-visual-regexp")
22935 (uri (git-reference
22936 (url "https://github.com/benma/visual-regexp.el")
22937 (commit (string-append "v" version))))
22938 (file-name (git-file-name name version))
22940 (base32 "12p3rlhdphwmx1kxsjzcl2wj3i6qgpvw8iwhg1whs6yqgaxivixd"))))
22941 (build-system emacs-build-system)
22942 (home-page "https://github.com/benma/visual-regexp.el/")
22943 (synopsis "Regexp command with interactive visual feedback")
22944 (description "This package provides an Emacs regexp command with
22945 interactive visual feedback.")
22946 (license license:gpl3+)))
22948 (define-public emacs-faceup
22949 (let ((commit "6c92dad56a133e14e7b27831e1bcf9b3a71ff154")
22952 (name "emacs-faceup")
22953 (version (string-append "0.0.1" "-" revision "."
22954 (string-take commit 7)))
22958 (uri (git-reference
22959 (url "https://github.com/Lindydancer/faceup")
22961 (file-name (git-file-name name version))
22964 "1yzmy7flrhrh0i10bdszx8idx6r8h6czm4vm4q0z6fp5fw94zwrx"))))
22965 (build-system emacs-build-system)
22966 (home-page "https://github.com/Lindydancer/faceup")
22967 (synopsis "Markup language for faces and font-lock regression testing")
22968 (description "Emacs is capable of highlighting buffers based on
22969 language-specific @code{font-lock} rules. This package makes it possible to
22970 perform regression test for packages that provide font-lock rules.")
22971 (license license:gpl3+))))
22973 (define-public emacs-racket-mode
22974 ;; XXX: Upstream does not tag releases, nor does it bump versions. The
22975 ;; "0.0.2" version below does not exist. It might change, tho. See
22976 ;; <https://github.com/greghendershott/racket-mode/issues/389>.
22977 (let ((commit "cef5a55d2b766973db92f9d9ab2210c03fa8ba02")
22980 (name "emacs-racket-mode")
22981 (version (git-version "0.0.2" revision commit))
22985 (uri (git-reference
22986 (url "https://github.com/greghendershott/racket-mode")
22988 (file-name (git-file-name name version))
22991 "0zzk0s4akx6ffsbhylgfflcypkkg36a3accxhmmdd11yn5rckv7f"))))
22992 (build-system emacs-build-system)
22995 #:include #~(list "\\.el$" "\\.rkt$")))
22997 (list emacs-faceup emacs-paredit emacs-pos-tip emacs-s))
22998 (home-page "https://www.racket-mode.com/")
22999 (synopsis "Major mode for the Racket language")
23000 (description "Racket mode provides thorough font-lock and indentation.
23001 It follows DrRacket concepts where applicable.")
23002 (license license:gpl2+))))
23004 (define-public emacs-grep-context
23005 (let ((commit "5a4e3efdf775755c1bbefcfe4b461c1166d81d7d")
23008 (name "emacs-grep-context")
23009 (version (git-version "0.1.0" revision commit))
23013 (uri (git-reference
23014 (url "https://github.com/mkcms/grep-context")
23016 (file-name (git-file-name name version))
23019 "00q7l4a3c0ay6g5ff9bfa2qgkiswsyh4s6pqnpg0zpzhvv5710f5"))))
23020 (build-system emacs-build-system)
23023 (home-page "https://github.com/mkcms/grep-context")
23024 (synopsis "Increase context in compilation and grep buffers")
23026 "This package provides an Emacs package for more context in
23027 compilation/grep buffers. Works with @code{wgrep}, @code{ack}, @code{ag},
23029 (license license:gpl3+))))
23031 (define-public emacs-helm-firefox
23033 (name "emacs-helm-firefox")
23038 (uri (git-reference
23039 (url "https://github.com/emacs-helm/helm-firefox")
23040 (commit (string-append "v" version))))
23041 (file-name (git-file-name name version))
23044 "08mjsi2f9s29fkk35cj1rrparjnkm836qmbfdwdz7y51f9varjbs"))))
23047 (build-system emacs-build-system)
23048 (home-page "https://github.com/emacs-helm/helm-firefox")
23049 (synopsis "Display firefox bookmarks with Emacs Helm interface")
23050 (description "Display firefox bookmarks with Emacs Helm interface")
23051 (license license:gpl3+)))
23053 (define-public emacs-interactive-align
23055 (name "emacs-interactive-align")
23060 (uri (git-reference
23061 (url "https://github.com/mkcms/interactive-align")
23062 (commit (string-append "v" version))))
23063 (file-name (git-file-name name version))
23066 "0bh03w91i622hbar5dcq631ndxx1y8kd3h655pgw1g0lqkv1mlnc"))))
23067 (build-system emacs-build-system)
23068 (home-page "https://github.com/mkcms/interactive-align/")
23069 (synopsis "Interactive align-regexp command in Emacs")
23070 (description "Interactive align-regexp command in Emacs")
23071 (license license:gpl3+)))
23073 (define-public emacs-shift-number
23075 (name "emacs-shift-number")
23080 (uri (git-reference
23081 (url "https://github.com/alezost/shift-number.el")
23082 (commit (string-append "v" version))))
23083 (file-name (git-file-name name version))
23086 "0zlwmzsxkv4mkggylxfx2fkrwgz7dz3zbg2gkn2rxcpy2k2gla64"))))
23087 (build-system emacs-build-system)
23088 (home-page "https://github.com/alezost/shift-number.el")
23089 (synopsis "Increase or decrease the number at point")
23090 (description "@code{emacs-shift-number} provides commands
23091 @code{shift-number-up} to increase and @code{shift-number-down} to
23092 decrease the number at point.")
23093 (license license:gpl3+)))
23095 (define-public emacs-highlight-defined
23097 (name "emacs-highlight-defined")
23102 (uri (git-reference
23103 (url "https://github.com/Fanael/highlight-defined")
23105 (file-name (git-file-name name version))
23107 (base32 "0a9nn1jnbgv93kz1iz5iay34d0p7lkpd8ic619ysk8qcksc0yn2i"))))
23108 (build-system emacs-build-system)
23109 (home-page "https://github.com/Fanael/highlight-defined")
23110 (synopsis "Syntax highlighting of known Elisp symbols")
23111 (description "Minor mode providing syntax highlighting of known Emacs Lisp
23112 symbols. Currently the code distinguishes Lisp functions, built-in functions,
23113 macros, faces and variables. To enable call @code{highlight-defined-mode}.")
23114 (license license:gpl3+)))
23116 (define-public emacs-parinfer-mode
23118 (name "emacs-parinfer-mode")
23123 (uri (git-reference
23124 (url "https://github.com/DogLooksGood/parinfer-mode")
23125 (commit (string-append "v" version))))
23126 (file-name (git-file-name name version))
23128 (base32 "0v97ncb0w1slb0x8861l3yr1kqz6fgw1fwl1z9lz6hh8p2ih34sk"))))
23130 (list emacs-dash emacs-rainbow-delimiters emacs-company))
23131 (build-system emacs-build-system)
23132 (home-page "https://github.com/DogLooksGood/parinfer-mode/")
23133 (synopsis "Lisp structure editing mode")
23134 (description "@code{parinfer-mode} is a proof-of-concept editor
23135 mode for Lisp programming languages. It will infer some changes to
23136 keep Parens and Indentation inline with one another.")
23137 (license license:gpl3+)))
23139 (define-public emacs-helm-eww
23141 (name "emacs-helm-eww")
23145 (uri (git-reference
23146 (url "https://github.com/emacs-helm/helm-eww")
23148 (file-name (git-file-name name version))
23151 "0hpq1h0p69c9k6hkd2mjpprx213sc5475q7pr2zpmwrjdzgcv70z"))))
23154 (build-system emacs-build-system)
23155 (home-page "https://github.com/emacs-helm/helm-eww/")
23156 (synopsis "Helm interface to EWW")
23157 (description "This package provides a Helm interface for EWW buffers,
23158 bookmarks and history.")
23159 (license license:gpl3+)))
23161 (define-public emacs-stumpwm-mode
23162 (let ((commit "920f8fc1488f7953f205e1dda4c2ecbbbda56d6")
23165 (name "emacs-stumpwm-mode")
23166 (version (git-version "0.0.1" revision commit))
23169 (uri (git-reference
23170 (url "https://github.com/stumpwm/stumpwm-contrib")
23172 (file-name (git-file-name name version))
23175 "0giac390bq95ag41xkxqp8jjrhfx1wpgglz7jg5rkm0wjhcwmyml"))))
23176 (build-system emacs-build-system)
23179 (modify-phases %standard-phases
23180 (add-after 'unpack 'chdir-elisp
23181 ;; Elisp directory is not in root of the source.
23183 (chdir "util/swm-emacs"))))))
23184 (home-page "https://github.com/stumpwm/stumpwm-contrib")
23185 (synopsis "Emacs minor-mode for Stumpwm")
23186 (description "Emacs minor-mode for Stumpwm")
23187 (license license:gpl3+))))
23189 (define-public emacs-irfc
23191 (name "emacs-irfc")
23192 (version "20130824.507-1")
23196 (uri "https://www.emacswiki.org/emacs/download/irfc.el")
23197 (file-name (string-append "irfc-" version ".el"))
23200 "0rbfrza56kvspvgrwg0b5bj30d0qncqdsmfxn3y5caq4ifcj77hv"))))
23201 (build-system emacs-build-system)
23202 (home-page "https://www.emacswiki.org/emacs/download/irfc.el")
23203 (synopsis "Interface for IETF RFC document")
23205 "This package provides an Emacs interface for IETF RFC document.")
23206 (license license:gpl3+)))
23208 (define-public emacs-ido-at-point
23210 (name "emacs-ido-at-point")
23215 (uri (git-reference
23216 (url "https://github.com/katspaugh/ido-at-point")
23217 (commit (string-append "v" version))))
23218 (file-name (git-file-name name version))
23220 (base32 "1bii7vj8pmmijcpvq3a1scky4ais7k6d7zympb3m9dmz355m9rpp"))))
23221 (build-system emacs-build-system)
23222 (synopsis "Ido-style completion at point")
23224 "This package is an alternative frontend for @code{completion-at-point}.
23225 It replaces the standard completions buffer with Ido prompt.")
23226 (home-page "https://github.com/katspaugh/ido-at-point")
23227 (license license:gpl3+)))
23229 (define-public emacs-ido-vertical-mode
23231 (name "emacs-ido-vertical-mode")
23236 (uri (git-reference
23237 (url "https://github.com/creichert/ido-vertical-mode.el")
23238 (commit (string-append "v" version))))
23239 (file-name (git-file-name name version))
23241 (base32 "1lv82q639xjnmvby56nwqn23ijh6f163bk675s33dkingm8csj8k"))))
23242 (build-system emacs-build-system)
23243 (home-page "https://github.com/creichert/ido-vertical-mode.el")
23244 (synopsis "Makes ido-mode display vertically")
23245 (description "Makes ido-mode display prospects vertically.")
23246 (license license:gpl3+)))
23248 (define-public emacs-wordgen
23250 (name "emacs-wordgen")
23255 (uri (git-reference
23256 (url "https://github.com/Fanael/wordgen.el")
23258 (file-name (git-file-name name version))
23260 (base32 "06vbc9ycz1nbjwjkg99y3lj6jwb6lnwnmkqf09yr00jjrrfhfash"))))
23261 (build-system emacs-build-system)
23262 (home-page "https://github.com/Fanael/wordgen.el")
23263 (synopsis "Random word generator")
23264 (description "This package provides functions to generate random words
23265 using user-provided rules.")
23266 (license license:gpl3+)))
23268 (define-public emacs-on
23269 (let ((commit "83baed07a105c135190d49d7ec77f95e8f38fa54")
23273 (version (git-version "0.1.0" revision commit))
23276 (uri (git-reference
23277 (url "https://github.com/ajgrf/on.el")
23279 (file-name (git-file-name name version))
23282 "14ly3w89hf4jgd8wacirxgd8vrgj7vc0hpfn911w5wa4k2a6nzpp"))))
23283 (build-system emacs-build-system)
23284 (home-page "https://github.com/ajgrf/on.el")
23285 (synopsis "Hooks for faster Emacs startup")
23287 "This package exposes a number of utility hooks and functions ported
23289 (license license:expat))))
23291 (define-public emacs-on-screen
23293 (name "emacs-on-screen")
23298 (uri (string-append
23299 "https://elpa.gnu.org/packages/on-screen-" version ".el"))
23300 (file-name (string-append name "-" version ".el"))
23302 (base32 "0ga4hw23ki583li2z2hr7l6hk1nc2kdg4afndg06cm9jn158wza7"))))
23303 (build-system emacs-build-system)
23304 (home-page "https://github.com/michael-heerdegen/on-screen.el")
23305 (synopsis "Guide your eyes while scrolling")
23307 "Scrolling can be distracting because your eyes may lose
23308 orientation. This library implements a minor mode that highlights
23309 the previously visible buffer part after each scroll.")
23310 (license license:gpl3+)))
23312 (define-public emacs-highlight-escape-sequences
23313 ;; No release upstream. Extract version from main file.
23314 (let ((commit "08d846a7aa748209d65fecead2b6a766c3e5cb41")
23317 (name "emacs-highlight-escape-sequences")
23318 (version (git-version "0.4" revision commit))
23322 (uri (git-reference
23323 (url "https://github.com/dgutov/highlight-escape-sequences")
23325 (file-name (git-file-name name version))
23327 (base32 "05mc3w1f8ykf80914a1yddw6j8cmh0h57llm07xh89s53821v2is"))))
23328 (build-system emacs-build-system)
23329 (home-page "https://github.com/dgutov/highlight-escape-sequences")
23330 (synopsis "Highlight escape sequences in Emacs")
23331 (description "@code{highlight-escape-sequences} provides an
23332 Emacs minor mode to escape sequences in code.")
23333 (license license:gpl3+))))
23335 (define-public emacs-dashboard
23336 (let ((version "1.7.0")
23337 (commit "a69cc103aebd957f967e431399681b6d9d6b52fc")
23340 (name "emacs-dashboard")
23341 (version (git-version version revision commit))
23345 (uri (git-reference
23346 (url "https://github.com/rakanalh/emacs-dashboard")
23348 (file-name (git-file-name name version))
23350 (base32 "1c6snnpc9rp6zhhdz411wyh2wn56yq2cdmxxqsp1ibvac8cbb1pq"))))
23351 (build-system emacs-build-system)
23354 #:include #~(cons* "\\.txt$" "\\.png$" %default-include)
23356 #~(modify-phases %standard-phases
23357 (add-after 'unpack 'patch-dashboard-widgets
23358 ;; This phase fixes compilation error.
23360 (emacs-substitute-variables "dashboard-widgets.el"
23361 ("dashboard-init-info"
23362 '(format "Loaded in %s" (emacs-init-time)))))))))
23364 (list emacs-page-break-lines))
23365 (home-page "https://github.com/rakanalh/emacs-dashboard")
23366 (synopsis "Startup screen extracted from Spacemacs")
23367 (description "This package provides an extensible Emacs dashboard, with
23368 sections for bookmarks, Projectile projects, Org Agenda and more.")
23369 (license license:gpl3+))))
23371 (define-public emacs-slime-company
23373 (name "emacs-slime-company")
23378 (uri (git-reference
23379 (url "https://github.com/anwyn/slime-company")
23380 (commit (string-append "v" version))))
23381 (file-name (git-file-name name version))
23383 (base32 "05dnnc4ms5c9yp9h65k2gbkg3pw9k38nx5wzlwdlfr4shqmw54w0"))))
23384 (build-system emacs-build-system)
23386 (list emacs-slime emacs-company))
23387 (home-page "https://company-mode.github.io")
23388 (synopsis "SLIME completion backend for @code{company-mode}")
23390 "This is a backend implementation for the completion package
23391 @code{company-mode} which supports the normal and the fuzzy completion
23393 (license license:gpl3+)))
23395 (define-public emacs-sml-mode
23397 (name "emacs-sml-mode")
23402 (uri (string-append "https://elpa.gnu.org/packages/sml-mode-"
23405 (base32 "01yf0s474r9xhj6nbs14ljn9ccxb5yy758i17c8nmgmqvm8fx7sb"))))
23406 (build-system emacs-build-system)
23407 (home-page "https://elpa.gnu.org/packages/sml-mode.html")
23408 (synopsis "Major mode for editing (Standard) ML")
23409 (description "SML-MODE is a major Emacs mode for editing Standard ML.
23410 It provides syntax highlighting and automatic indentation and
23411 comes with sml-proc which allows interaction with an inferior SML
23412 interactive loop.")
23413 (license license:gpl3+)))
23415 (define-public emacs-eros
23416 (let ((commit "dd8910279226259e100dab798b073a52f9b4233a")
23419 (name "emacs-eros")
23420 (version (git-version "0.0.1" revision commit))
23424 (uri (git-reference
23425 (url "https://github.com/xiongtx/eros")
23427 (file-name (git-file-name name version))
23430 "08chj3a0lw4ygi2sv7wj0i6ihfbi8jhylr8p92inif8b88r6wg3k"))))
23431 (build-system emacs-build-system)
23432 (home-page "https://github.com/xiongtx/eros")
23433 (synopsis "Evaluation result overlays")
23434 (description "@code{eros} provides evaluation result overlays.")
23435 (license license:gpl3+))))
23437 (define-public emacs-stickyfunc-enhance
23438 (let ((commit "13bdba51fcd83ccbc3267959d23afc94d458dcb0")
23441 (name "emacs-stickyfunc-enhance")
23446 (uri (git-reference
23447 (url "https://github.com/tuhdo/semantic-stickyfunc-enhance")
23449 (file-name (git-file-name name version))
23452 "16dxjsr5nj20blww4xpd4jzgjprzzh1nwvb810ggdmp9paf4iy0g"))))
23453 (build-system emacs-build-system)
23454 (home-page "https://github.com/tuhdo/semantic-stickyfunc-enhance")
23455 (synopsis "Enhancement to stock @code{semantic-stickyfunc-mode}")
23457 "@code{semantic-stickyfunc-mode} shows the function point is currently
23458 in at the first line of the current buffer. This is useful when you have a
23459 very long function that spreads more than a screen, and you don't have to
23460 scroll up to read the function name and then scroll down to original position.")
23461 (license license:gpl3+))))
23463 (define-public emacs-git-auto-commit-mode
23465 (name "emacs-git-auto-commit-mode")
23470 (uri (git-reference
23471 (url "https://github.com/ryuslash/git-auto-commit-mode")
23473 (file-name (git-file-name name version))
23475 (base32 "0gpib57f7xza04g3iyihw5v15hb7pncqsmvyggib902yvcxlkvqf"))))
23476 (build-system emacs-build-system)
23478 (list emacs-buttercup git))
23481 #:test-command '("buttercup" "-L" ".")))
23482 (home-page "https://github.com/ryuslash/git-auto-commit-mode")
23483 (synopsis "Emacs Minor mode to automatically commit and push")
23484 (description "@code{git-auto-commit-mode} is an Emacs minor mode that
23485 tries to commit changes to a file after every save.
23487 When @code{gac-automatically-push-p} is non-nil, it also tries to push to the
23488 current upstream.")
23489 (license license:gpl3+)))
23491 (define-public emacs-scroll-on-drag
23492 (let ((commit "888abd04c34753b1fc4b2fe541bc004ebec5c996")
23495 (name "emacs-scroll-on-drag")
23496 (version (git-version "0.1" revision commit))
23500 (uri (git-reference
23501 (url "https://gitlab.com/ideasman42/emacs-scroll-on-drag.git")
23503 (file-name (git-file-name name version))
23506 "1si4hdqa3jw1inbyh3wb3i5i9grbms1nwky3vyk9zg7iznwm8a9p"))))
23507 (build-system emacs-build-system)
23508 (home-page "https://gitlab.com/ideasman42/emacs-scroll-on-drag")
23509 (synopsis "Interactive scrolling")
23510 (description "This package permits scrolling at increasing speeds based
23511 on drag distance.")
23512 (license license:gpl3+))))
23514 (define-public emacs-company-restclient
23516 (name "emacs-company-restclient")
23521 (uri (git-reference
23522 (url "https://github.com/iquiw/company-restclient")
23523 (commit (string-append "v" version))))
23524 (file-name (git-file-name name version))
23526 (base32 "0yp0hlrgcr6yy1xkjvfckys2k24x9xg7y6336ma61bdwn5lpv0x0"))))
23527 (build-system emacs-build-system)
23529 (list emacs-company emacs-know-your-http-well emacs-restclient))
23530 (home-page "https://github.com/iquiw/company-restclient")
23531 (synopsis "Company-mode completion back-end for restclient-mode")
23532 (description "@code{company-mode} back-end for
23533 @code{restclient-mode}.
23535 It provides auto-completion for HTTP methods and headers in
23536 @code{restclient-mode}. Completion source is given by
23537 @code{know-your-http-well}.")
23538 (license license:gpl3+)))
23540 (define-public emacs-noflet
23541 (let ((version "20170629")
23543 (commit "7ae84dc3257637af7334101456dafe1759c6b68a"))
23545 (name "emacs-noflet")
23546 (version (git-version version revision commit))
23550 (uri (git-reference
23551 (url "https://github.com/nicferrier/emacs-noflet")
23553 (file-name (git-file-name name version))
23556 "0g70gnmfi8n24jzfci9nrj0n9bn1qig7b8f9f325rin8h7x32ypf"))))
23557 (build-system emacs-build-system)
23560 (modify-phases %standard-phases
23561 (add-after 'unpack 'require-dash
23562 ;; noflet.el uses -map from dash, but (require 'dash) is
23563 ;; missing. So, add it.
23565 (substitute* "noflet.el"
23566 ((";;; Code:") ";;; Code:\n(require 'dash)"))
23570 (home-page "https://github.com/nicferrier/emacs-noflet")
23571 (synopsis "Locally override functions")
23572 (description "@code{emacs-noflet} lets you locally override functions,
23573 in the manner of @command{flet}, but with access to the original function
23574 through the symbol: @command{this-fn}.")
23575 (license license:gpl3+))))
23577 (define-public emacs-dumb-jump
23579 (name "emacs-dumb-jump")
23584 (uri (git-reference
23585 (url "https://github.com/jacktasia/dumb-jump")
23586 (commit (string-append "v" version))))
23587 (file-name (git-file-name name version))
23589 (base32 "18d2ll5wlll6pm909hiw8w9ijdbrjvy86q6ljzx8yyrjphgn0y1y"))))
23590 (build-system emacs-build-system)
23592 `(#:tests? #f ; FIXME: Tests freeze when run.
23593 #:test-command '("ert-runner")
23595 (modify-phases %standard-phases
23596 (add-after 'unpack 'set-shell
23598 ;; Setting the SHELL environment variable is required for the
23599 ;; tests to find sh.
23600 (setenv "SHELL" (which "sh")))))))
23602 (list emacs-el-mock emacs-ert-runner emacs-noflet emacs-undercover))
23604 (list emacs-f emacs-popup))
23605 (home-page "https://github.com/jacktasia/dumb-jump")
23606 (synopsis "Jump to definition for multiple languages without configuration")
23607 (description "Dumb Jump is an Emacs \"jump to definition\" package with
23608 support for multiple programming languages that favors \"just working\" over
23609 speed or accuracy. This means minimal --- and ideally zero --- configuration
23610 with absolutely no stored indexes (tags) or persistent background processes.
23611 Dumb Jump performs best with The Silver Searcher @command{ag} or ripgrep
23612 @command{rg} installed.")
23613 (license license:gpl3+)))
23615 (define-public emacs-dts-mode
23617 (name "emacs-dts-mode")
23621 (uri (string-append "https://elpa.gnu.org/packages/dts-mode-"
23625 "0ihwqkv1ddysjgxh01vpayv3ia0vx55ny8ym0mi5b4iz95idj60s"))))
23626 (build-system emacs-build-system)
23627 (home-page "https://elpa.gnu.org/packages/dts-mode.html")
23628 (synopsis "Major mode for Device Tree source files")
23630 "This package provides an Emacs minor mode for highlighting
23631 device tree files.")
23632 (license license:gpl3+)))
23634 (define-public emacs-daemons
23636 (name "emacs-daemons")
23641 (uri (git-reference
23642 (url "https://github.com/cbowdon/daemons.el")
23644 (file-name (git-file-name name version))
23647 "00bkzfaw3bqykcks610vk9wlpa2z360xn32bpsrycacwfv29j7g4"))))
23648 (build-system emacs-build-system)
23649 (home-page "https://github.com/cbowdon/daemons.el")
23650 (synopsis "Emacs UI for managing init system services")
23652 "This is an Emacs mode to give you a UI for managing init system
23653 daemons (services) for those getting tired of typing out @code{sudo service
23654 my_thing reload} all the time. It offers a consistent UI over different init
23656 (license license:gpl3+)))
23658 (define-public emacs-isearch+
23659 (let ((commit "7c251b91a67bf914066e23e269ba52fda5b45f5f")
23662 (name "emacs-isearch+")
23663 (version (git-version "0" revision commit))
23667 (uri (git-reference
23668 (url "https://github.com/emacsmirror/isearch-plus")
23670 (file-name (git-file-name name version))
23673 "1w2799714jcdycjlxgs8lpmmz6dmzvcvqy8xwxhvmgpb60g4f2yr"))))
23674 (build-system emacs-build-system)
23675 (home-page "https://www.emacswiki.org/emacs/isearch+.el")
23676 (synopsis "Extensions to @code{isearch.el}")
23677 (description "This package extends @code{isearch} with advice, dynamic
23678 filters, highlighting of regexp group levels, and more.")
23679 (license license:gpl2+))))
23681 (define-public emacs-eshell-bookmark
23683 (name "emacs-eshell-bookmark")
23688 (uri (git-reference
23689 (url "https://github.com/Fuco1/eshell-bookmark")
23691 (file-name (git-file-name name version))
23694 "14dmsnixf9vqdhsixw693sml0fn80zcf0b37z049fb40cmppqxdw"))))
23695 (build-system emacs-build-system)
23696 (home-page "https://github.com/Fuco1/eshell-bookmark")
23697 (synopsis "Provide @file{bookmark.el} integration for @code{eshell}")
23699 "This package allows for bookmarking @code{eshell} buffers. Upon
23700 visiting the bookmark, a new @code{eshell} session will be opened in the
23701 appropriate directory if no @code{eshell} session is active.")
23702 (license license:gpl3+)))
23704 (define-public emacs-eshell-syntax-highlighting
23706 (name "emacs-eshell-syntax-highlighting")
23711 (uri (git-reference
23712 (url "https://github.com/akreisher/eshell-syntax-highlighting")
23713 (commit (string-append "v" version))))
23714 (file-name (git-file-name name version))
23716 (base32 "1fb9aa85a3hx1rcmv71j6sc3y278452p1y4dabpwy07avb6apd0p"))))
23717 (build-system emacs-build-system)
23718 (home-page "https://github.com/akreisher/eshell-syntax-highlighting")
23719 (synopsis "Add syntax highlighting to Eshell")
23721 "This package highlights user commands at the Eshell interactive prompt
23722 to provide feedback on the validity of commands and syntax.")
23723 (license license:gpl3+)))
23725 (define-public emacs-eshell-z
23727 (name "emacs-eshell-z")
23732 (uri (git-reference
23733 (url "https://github.com/xuchunyang/eshell-z")
23734 (commit (string-append "v" version))))
23735 (file-name (git-file-name name version))
23738 "13dwaq8q23rwmrkpy3gvf7aswrkk6b9ak5221xl7n0bld4wdhq3j"))))
23739 (build-system emacs-build-system)
23740 (home-page "https://github.com/xuchunyang/eshell-z")
23741 (synopsis "Quick navigation to frequently visited directories")
23743 "This package is a port of @code{z}, and keeps track of visited directories
23744 and commands invoked within them in order to enable navigation via input of
23745 matching regexps.")
23746 (license license:gpl3+)))
23748 (define-public emacs-esh-autosuggest
23750 (name "emacs-esh-autosuggest")
23755 (uri (git-reference
23756 (url "https://github.com/dieggsy/esh-autosuggest")
23758 (file-name (git-file-name name version))
23761 "0l2nnlr3b6df1xn0qjf5d5ryy1wcs1jczyfy795vsasd5gm3g0xh"))))
23762 (build-system emacs-build-system)
23763 (propagated-inputs (list emacs-company))
23764 (home-page "https://github.com/dieggsy/esh-autosuggest")
23765 (synopsis "Fish-like autosuggestions in Eshell")
23767 "This package assumes you use something other than company for eshell
23768 completion (e.g. @code{eshell-pcomplete}, @code{completion-at-point},
23769 @code{helm-esh-pcomplete}). @code{company-mode} is used solely as a mechanism
23770 for history autosuggestions.
23772 Unless you're using @code{use-package}'s hook keyword, you can enable the
23773 autosuggestions with:
23774 @code{(add-hook 'eshell-mode-hook #'esh-autosuggest-mode)}")
23775 (license license:gpl3+)))
23777 (define-public emacs-desktop-environment
23779 (name "emacs-desktop-environment")
23784 (uri (git-reference
23785 (url "https://github.com/DamienCassou/desktop-environment")
23786 (commit (string-append "v" version))))
23787 (file-name (git-file-name name version))
23790 "03rl1z860jmirjrrg0xsjx0bqk73k043c8bz6049zhndh7pidri7"))))
23791 (build-system emacs-build-system)
23792 (home-page "https://gitlab.petton.fr/DamienCassou/desktop-environment")
23793 (synopsis "Control your GNU/Linux desktop environment from Emacs")
23795 "This package helps you control your GNU/Linux desktop from Emacs.
23796 With @code{desktop-environment}, you can control the brightness and volume as
23797 well as take screenshots and lock your screen. The package depends on the
23798 availability of shell commands to do the hard work for us. These commands can
23799 be changed by customizing the appropriate variables.")
23800 (license license:gpl3+)))
23802 (define-public emacs-org-caldav
23803 (let ((commit "8569941a0a5a9393ba51afc8923fd7b77b73fa7a")
23806 (name "emacs-org-caldav")
23807 (version (git-version "0.0.0" revision commit))
23811 (uri (git-reference
23812 (url "https://github.com/dengste/org-caldav")
23814 (file-name (git-file-name name version))
23816 (base32 "05lgxqaffnqaqnzl24frafdkskran88hl2ml05qvyjhs4jjbgw9g"))))
23817 (build-system emacs-build-system)
23819 ;; Tests require to have two specific calendars on a test server.
23820 `(#:exclude '("^org-caldav-testsuite\\.el")))
23823 (home-page "https://github.com/dengste/org-caldav")
23824 (synopsis "Sync Org files with external calendars via the CalDAV protocol")
23826 "Org CalDAV synchronizes events between Org files and a CalDAV
23828 (license license:gpl3+))))
23830 (define-public emacs-zotxt
23832 (name "emacs-zotxt")
23837 (uri (git-reference
23838 (url "https://github.com/egh/zotxt-emacs")
23839 (commit (string-append "v" version))))
23840 (file-name (git-file-name name version))
23842 (base32 "1zr67h0w49rsi84mgf6jdili28h8782q6vjl8za0iq1hcx9zqxyf"))))
23843 (build-system emacs-build-system)
23845 (list emacs-deferred emacs-request))
23846 (home-page "https://github.com/egh/zotxt-emacs")
23847 (synopsis "Integrate Emacs with Zotero")
23848 (description "This package provides two integration features between Emacs
23849 and the Zotero research assistant: Insertion of links to Zotero items into an
23850 Org-mode file, and citations of Zotero items in Pandoc Markdown files.")
23851 (license license:gpl3+)))
23853 (define-public emacs-evil-multiedit
23855 (name "emacs-evil-multiedit")
23860 (uri (git-reference
23861 (url "https://github.com/hlissner/evil-multiedit")
23862 (commit (string-append "v" version))))
23863 (file-name (git-file-name name version))
23865 (base32 "08ycwss58zh2zikk79jfj074q78yjcd7vbjgv5ssqvws09x5rgfq"))))
23866 (build-system emacs-build-system)
23868 (list emacs-evil emacs-iedit))
23870 (list emacs-ert-runner))
23873 (modify-phases %standard-phases
23874 (add-before 'check 'fix-checks
23876 (substitute* "Makefile"
23877 (("@cask exec ") ""))
23878 (substitute* "test/test-helper.el"
23879 (("'\\(evil iedit\\)") "nil")))))
23881 #:test-command '("make" "test")))
23882 (home-page "https://github.com/hlissner/evil-multiedit")
23883 (synopsis "Multiple cursors for Evil mode")
23885 "This plugin was an answer to the lack of proper multiple cursor support
23886 in Emacs+Evil. It allows you to select and edit matches interactively,
23887 integrating @code{iedit-mode} into Evil mode with an attempt at sensible
23889 (license license:gpl3+)))
23891 (define-public emacs-evil-mc
23892 (let ((commit "1cabb869fe70cef49f7dc06f015c3ade1a969c8c")
23895 (name "emacs-evil-mc")
23896 (version (git-version "0.0.3" revision commit))
23900 (uri (git-reference
23901 (url "https://github.com/gabesoft/evil-mc")
23903 (file-name (git-file-name name version))
23905 (base32 "0p83p90faq1p02lmsfs7zrnky3cyzgy8z4m83a81r9kakjzhkrnb"))))
23906 (build-system emacs-build-system)
23910 (list emacs-espuds))
23911 (home-page "https://github.com/gabesoft/evil-mc")
23912 (synopsis "Interactive search compatible with @code{multiple-cursors}")
23913 (description "This package can be used with @code{multiple-cursors} to
23914 provide an incremental search that moves all fake cursors in sync.")
23915 (license license:expat))))
23917 (define-public emacs-evil-org
23918 (let ((commit "0d10ff7bb9a3a93d25cd91018b17f0a052b335f3")
23921 (name "emacs-evil-org")
23922 (version (git-version "1.0.3" revision commit))
23926 (uri (git-reference
23927 (url "https://github.com/Somelauw/evil-org-mode")
23929 (file-name (git-file-name name version))
23932 "15g47xgpswzc8lz7qdbbzfcq1n9m4474qa2jkg43l8d5ali8qa7z"))))
23933 (build-system emacs-build-system)
23934 (propagated-inputs (list emacs-evil))
23936 "https://github.com/Somelauw/evil-org-mode")
23937 (synopsis "Evil keybindings for Org mode")
23939 "This package adds supplemental Evil mode key-bindings to Emacs
23940 Org-mode. It features:
23942 @item normal, visual and insert mode bindings;
23943 @item key bindings organised in key themes;
23944 @item operators like > and < to work on headings;
23945 @item text objects;
23946 @item table support;
23947 @item calendar (date selection) support;
23948 @item agenda support.
23950 (license license:gpl3+))))
23952 (define-public emacs-debpaste
23954 (name "emacs-debpaste")
23956 (home-page "https://github.com/alezost/debpaste.el")
23960 (uri (git-reference (url home-page)
23961 (commit (string-append "v" version))))
23962 (file-name (git-file-name name version))
23965 "1wi70r56pd5z0x4dp4m58p9asq03j74kdm4fi9vai83vsl2z9amq"))))
23966 (build-system emacs-build-system)
23968 (list emacs-xml-rpc))
23969 (synopsis "Manipulate pastes from the Debian Pastezone")
23970 (description "Debpaste is an Emacs interface for the Debian Pastezone,
23971 allowing you to receive, post, and delete pastes. It communicates with the
23972 server using XML-RPC.")
23973 (license license:gpl3+)))
23975 (define-public emacs-xml-rpc
23977 (name "emacs-xml-rpc")
23982 (uri (git-reference
23983 (url "https://github.com/hexmode/xml-rpc-el")
23985 (file-name (git-file-name name version))
23987 (base32 "07vgwnk96i1vpsv2glg6kbkamjcs72xiznsa6xk7nl0nranzr3hd"))))
23988 (build-system emacs-build-system)
23989 (home-page "https://github.com/hexmode/xml-rpc-el")
23990 (synopsis "XML-RPC client for Emacs")
23991 (description "This package provides an XML-RPC client for Emacs capable
23992 of both synchronous and asynchronous method calls using the @code{url}
23993 package's async retrieval functionality. @file{xml-rpc.el} represents XML-RPC
23994 datatypes as Lisp values, automatically converting to and from the XML
23995 datastructures as needed, both for method parameters and return values, making
23996 using XML-RPC methods fairly transparent to the Lisp code.")
23997 (license license:gpl3+)))
23999 (define-public emacs-xpm
24006 (uri (string-append "https://elpa.gnu.org/packages/xpm-"
24009 (base32 "13p6s6b2v7h4bnwdkkrd1qz84jd7g2s18w0czhpxv6hvj9sqf5hx"))))
24010 (build-system emacs-build-system)
24011 (home-page "https://elpa.gnu.org/packages/xpm.html")
24012 (synopsis "XPM image editing mode for Emacs")
24013 (description "This Emacs package makes editing XPM images easy (and maybe
24014 fun). Editing is done directly on the (textual) image format, for maximal
24015 cohesion with the Emacs Way.")
24016 (license license:gpl3+)))
24018 (define-public emacs-fish-completion
24020 (name "emacs-fish-completion")
24025 (uri (git-reference
24026 (url "https://gitlab.com/Ambrevar/emacs-fish-completion.git")
24028 (file-name (git-file-name name version))
24031 "17lqip1i1rrsvxzz4bx9rqf1fvwd3hriwg3sj6qxmfc8pylnp37q"))))
24032 (build-system emacs-build-system)
24033 (inputs (list fish))
24036 (modify-phases %standard-phases
24037 (add-after 'unpack 'configure
24038 (lambda* (#:key inputs outputs #:allow-other-keys)
24039 (let ((fish (assoc-ref inputs "fish")))
24040 ;; Specify the absolute file names of the various
24041 ;; programs so that everything works out-of-the-box.
24042 (make-file-writable "fish-completion.el")
24043 (emacs-substitute-variables
24044 "fish-completion.el"
24045 ("fish-completion-command"
24046 (string-append fish "/bin/fish")))))))))
24048 "https://gitlab.com/Ambrevar/emacs-fish-completion")
24049 (synopsis "Fish completion for Emacs pcomplete")
24051 "This package provides completion for the Fish shell to pcomplete (used
24052 by shell and Eshell). You can set it up globally with:
24055 (when (and (executable-find \"fish\")
24056 (require 'fish-completion nil t))
24057 (global-fish-completion-mode))
24060 Alternatively, you can call the @code{fish-completion-mode} manually or in
24061 shell/Eshell mode hook.
24063 The package @code{emacs-bash-completion} is an optional dependency: if available,
24064 @code{fish-completion-complete} can be configured to fall back on bash to further
24065 try completing. See @code{fish-completion-fallback-on-bash-p}.")
24066 (license license:gpl3+)))
24068 (define-public emacs-gif-screencast
24070 (name "emacs-gif-screencast")
24075 (uri (git-reference
24076 (url "https://gitlab.com/Ambrevar/emacs-gif-screencast.git")
24078 (file-name (git-file-name name version))
24081 "1yf6yipvhhna29mzaan5vb3d5qvbrkp2awr5diyf381mvxgk8akh"))))
24082 (build-system emacs-build-system)
24084 (list scrot imagemagick gifsicle))
24087 (modify-phases %standard-phases
24088 (add-after 'unpack 'configure
24089 (lambda* (#:key inputs outputs #:allow-other-keys)
24090 (let ((scrot (assoc-ref inputs "scrot"))
24091 (imagemagick (assoc-ref inputs "imagemagick"))
24092 (gifsicle (assoc-ref inputs "gifsicle")))
24093 (make-file-writable "gif-screencast.el")
24094 ;; Specify the absolute file names of the various
24095 ;; programs so that everything works out-of-the-box.
24096 (emacs-substitute-variables
24097 "gif-screencast.el"
24098 ("gif-screencast-program"
24099 (string-append scrot "/bin/scrot"))
24100 ("gif-screencast-convert-program"
24101 (string-append imagemagick "/bin/convert"))
24102 ("gif-screencast-cropping-program"
24103 (string-append imagemagick "/bin/mogrify"))
24104 ("gif-screencast-optimize-program"
24105 (string-append gifsicle "/bin/gifsicle")))))))))
24107 "https://gitlab.com/Ambrevar/emacs-gif-screencast")
24108 (synopsis "One-frame-per-action GIF recording")
24110 "Call @code{gif-screencast} to start a recording.
24111 A screenshot is taken for every user action. Call
24112 @code{gif-screencast-stop} (<f9> by default) to finish recording and create
24114 (license license:gpl3+)))
24116 (define-public emacs-google-translate
24118 (name "emacs-google-translate")
24123 (uri (git-reference
24124 (url "https://github.com/atykhonov/google-translate/")
24125 (commit (string-append "v" version))))
24126 (file-name (git-file-name name version))
24129 "0rwpij2bm8d4jq2w5snkp88mfryplw8166dsrjm407n2p6xr48zx"))))
24130 (build-system emacs-build-system)
24131 (home-page "https://github.com/atykhonov/google-translate")
24132 (synopsis "Emacs interface to Google Translate")
24134 "This package provides an Emacs interface to the Google Translate
24136 (license license:gpl3+)))
24138 (define-public emacs-helm-company
24140 (name "emacs-helm-company")
24145 (uri (git-reference
24146 (url "https://github.com/Sodel-the-Vociferous/helm-company")
24147 (commit (string-append "v" version))))
24148 (file-name (git-file-name name version))
24151 "1ci37w6ahnqrfpb284gjvxmimlf61sdxb9k192yy9q983cksv2hx"))))
24152 (build-system emacs-build-system)
24154 (list emacs-helm emacs-company))
24156 (list emacs-ert-runner))
24159 #:test-command '("ert-runner")))
24160 (home-page "https://github.com/Sodel-the-Vociferous/helm-company")
24161 (synopsis "Helm interface for company-mode")
24163 "This is a Helm interface to company-mode, a text completion
24165 (license license:gpl3+)))
24167 (define-public emacs-helm-descbinds
24168 (let ((commit "033be73f21778633813264ce1634a6e1ad873d8e"))
24170 (name "emacs-helm-descbinds")
24171 (version (git-version "1.13" "1" commit))
24175 (uri (git-reference
24176 (url "https://github.com/emacs-helm/helm-descbinds")
24178 (file-name (git-file-name name version))
24181 "1n89p56qwa243w1c85i5awnaf7piwjsvfi7nmnsrwm33hix5dknk"))))
24182 (build-system emacs-build-system)
24183 (propagated-inputs (list emacs-helm))
24184 (home-page "https://github.com/emacs-helm/helm-descbinds")
24185 (synopsis "Convenient @code{describe-bindings} with Helm")
24187 "This package is a replacement of @code{describe-bindings} for Helm.
24188 @code{describe-bindings} is replaced with @code{helm-descbinds}. As usual,
24189 type @code{C-h b}, or any incomplete key sequence plus @code{C-h}, to run
24190 @code{helm-descbinds}. The bindings are presented in a similar way as
24191 @code{describe-bindings} does, but you can use completion to find the command
24192 you searched for and execute it, or view its documentation.")
24193 (license license:gpl3+))))
24195 (define-public emacs-helm-emms
24196 (let ((commit "37e5aa029abfa5a5c48636314de8157142944fa2"))
24198 (name "emacs-helm-emms")
24199 (version (git-version "1.3" "3" commit))
24203 (uri (git-reference
24204 (url "https://github.com/emacs-helm/helm-emms")
24206 (file-name (git-file-name name version))
24209 "0r1ai6xhzayyik30w2sx9n62bxxwm12vfmjspv0daqif9az8y3vg"))))
24210 (build-system emacs-build-system)
24212 (list emacs-helm emacs-emms))
24214 "https://github.com/emacs-helm/helm-emms")
24215 (synopsis "Emms for Helm")
24216 (description "Helm interface for Emms to browse all tracks and all folders
24217 from @code{emms-source-file-default-directory}.")
24218 (license license:gpl3+))))
24220 (define-public emacs-helm-exwm
24222 (name "emacs-helm-exwm")
24227 (uri (git-reference
24228 (url "https://github.com/emacs-helm/helm-exwm")
24230 (file-name (git-file-name name version))
24232 (base32 "0g4k01ps14bp2az8v6dcag9llg045k2b4kdis81xx4lvw76znr9v"))))
24233 (build-system emacs-build-system)
24235 (list emacs-helm emacs-exwm))
24237 "https://github.com/emacs-helm/helm-exwm")
24238 (synopsis "Helm for EXWM buffers")
24240 "@code{helm-exwm} runs a Helm session over the list of EXWM buffers.
24241 @code{helm-exwm-switch} is a convenience X application launcher using Helm to
24242 switch between the various windows of one or several specific applications.
24243 See @code{helm-exwm-switch-browser} for an example.")
24244 (license license:gpl3+)))
24246 (define-public emacs-helm-flycheck
24247 (let ((commit "3cf7d3bb194acacc6395f88360588013d92675d6"))
24249 (name "emacs-helm-flycheck")
24250 (version (git-version "0.4" "1" commit))
24254 (uri (git-reference
24255 (url "https://github.com/yasuyk/helm-flycheck")
24257 (file-name (git-file-name name version))
24260 "1a2yfxhz04klwhcandqvfzysxp6b7bxyxx1xk1x3kds5hif5fkl4"))))
24261 (build-system emacs-build-system)
24263 (list emacs-dash emacs-flycheck emacs-helm))
24264 (home-page "https://github.com/yasuyk/helm-flycheck")
24265 (synopsis "Show Flycheck errors with Helm")
24267 "This integrates Flycheck with Helm.")
24268 (license license:gpl3+))))
24270 (define-public emacs-helm-ls-git
24272 (name "emacs-helm-ls-git")
24277 (uri (git-reference
24278 (url "https://github.com/emacs-helm/helm-ls-git")
24279 (commit (string-append "v" version))))
24280 (file-name (git-file-name name version))
24282 (base32 "097zpwpn18dgazp19czrcn6iz965qgr45gq9lvjrkkp0w03pbdb6"))))
24283 (build-system emacs-build-system)
24284 (propagated-inputs (list emacs-helm))
24285 (home-page "https://github.com/emacs-helm/helm-ls-git")
24286 (synopsis "Helm interface for listing the files in a Git repository")
24288 "This package provides a Helm interface for Git files.
24290 @item Display the open buffers in project.
24291 @item Display a status source showing state of project (modified files etc.).
24292 @item Display a list of all files in project under git control.
24293 @item Quickly look at diffs of modified files.
24294 @item Allow switching to @code{git status} with your preferred frontend
24295 (vc-dir, Magit,etc.).
24296 @item Full integration of git-grep, also allow usage of @code{helm-grep} (you
24297 can use ack-grep instead of grep).
24298 @item Integrate usage of gid from id-utils.
24299 @item Full integration with @code{helm-find-files}, allow you to browse
24300 projects unrelated to current-buffer.
24301 @item In addition, all actions of type files and buffers are provided.
24303 (license license:gpl3+)))
24305 (define-public emacs-helm-mu
24306 (let ((commit "77e6fea24e01481418738421dbcfe28ef1bd63cf"))
24308 (name "emacs-helm-mu")
24309 (version (git-version "20180513" "1" commit))
24313 (uri (git-reference
24314 (url "https://github.com/emacs-helm/helm-mu")
24316 (file-name (git-file-name name version))
24318 (base32 "1lh0ahxdc5b2z18m9p30gwg8sbg33sjwkjr38p7h5xsm5fm7i0fz"))))
24319 (build-system emacs-build-system)
24321 (list emacs-helm mu))
24323 "https://github.com/emacs-helm/helm-mu")
24325 "Helm sources for searching emails and contacts")
24327 "Helm sources for searching emails and contacts using @code{mu} and
24328 @code{mu4e}. Mu is an indexer for maildirs and mu4e is a mutt-like MUA for
24329 Emacs build on top of mu. Mu is highly efficient making it possible to get
24330 instant results even for huge maildirs. It also provides search operators,
24331 e.g: @code{from:Peter to:Anne flag:attach search term}.")
24332 (license license:gpl3+))))
24334 (define-public emacs-helm-pass
24336 (name "emacs-helm-pass")
24341 (uri (git-reference
24342 (url "https://github.com/emacs-helm/helm-pass")
24344 (file-name (git-file-name name version))
24347 "19w24isddzamkikq17vbv3y7ha22i7wc09d2nqw1j0qwhrrfkng9"))))
24348 (build-system emacs-build-system)
24350 (list emacs-helm emacs-password-store))
24351 (home-page "https://github.com/emacs-helm/helm-pass")
24352 (synopsis "Helm interface to pass, the standard Unix password manager")
24354 "Users of @code{helm-pass} may also be interested in functionality
24355 provided by other Emacs packages dealing with pass:
24357 @item @code{emacs-password-store}, which @code{helm-pass} relies on.
24358 @item @code{emacs-pass}, a major mode for @code{pass}.
24359 @item @code{auth-source-pass.el}: integration of Emacs' auth-source with
24360 @code{pass}, included in Emacs 26+).
24362 (license license:gpl3+)))
24364 (define-public emacs-image+
24365 (let ((commit "6834d0c09bb4df9ecc0d7a559bd7827fed48fffc"))
24367 (name "emacs-image+")
24368 (version (git-version "0.6.2" "1" commit))
24372 (uri (git-reference
24373 (url "https://github.com/mhayashi1120/Emacs-imagex")
24375 (file-name (git-file-name name version))
24378 "0v66wk9nh0raih4jhrzmmyi5lbysjnmbv791vm2230ffi2hmwxnd"))))
24379 (build-system emacs-build-system)
24380 (inputs (list imagemagick))
24383 (modify-phases %standard-phases
24384 (add-after 'unpack 'configure
24385 (lambda* (#:key inputs outputs #:allow-other-keys)
24386 (let ((imagemagick (assoc-ref inputs "imagemagick")))
24387 ;; Specify the absolute file names of the various
24388 ;; programs so that everything works out-of-the-box.
24389 (chmod "image+.el" #o666)
24390 (emacs-substitute-variables
24392 ("imagex-convert-command"
24393 (string-append imagemagick "/bin/convert"))
24394 ("imagex-identify-command"
24395 (string-append imagemagick "/bin/identify")))))))))
24396 (home-page "https://github.com/mhayashi1120/Emacs-imagex")
24397 (synopsis "Image manipulation extensions for Emacs")
24399 "Image+ provides keybindings allowing you to zoom in or zoom out of an
24400 image, rotate it, save modified images, and more.")
24401 (license license:gpl3+))))
24403 (define-public emacs-package-lint
24405 (name "emacs-package-lint")
24410 (uri (git-reference
24411 (url "https://github.com/purcell/package-lint")
24413 (file-name (git-file-name name version))
24416 "0srqcrhbdmd39jdsvh8k3nbrkqrl4nlic59dp5bal5vj495j7126"))))
24418 '(#:include (cons "^data/" %default-include)))
24419 (build-system emacs-build-system)
24420 (home-page "https://github.com/purcell/package-lint")
24421 (synopsis "Linting library for elisp package authors")
24423 "This provides a list of issues with the Emacs package metadata of a file,
24424 e.g. the package dependencies it requires. See function
24425 @code{package-lint-buffer}. Checks will currently be enabled only if a
24426 \"Package-Requires:\" or \"Package-Version:\" header is present in the
24428 (license license:gpl3+)))
24430 (define-public emacs-packed
24432 (name "emacs-packed")
24437 (uri (git-reference
24438 (url "https://github.com/emacscollective/packed")
24440 (file-name (git-file-name name version))
24442 (base32 "0i2j5yk6xhv4rh3317f241y9llwf4wk18a6a4lkqrvbjpvi9yvn0"))))
24443 (build-system emacs-build-system)
24445 (list emacs-compat))
24446 (home-page "https://github.com/emacscollective/packed")
24447 (synopsis "Package manager agnostic Emacs Lisp package utilities")
24449 "Packed provides some package manager agnostic utilities to work
24450 with Emacs Lisp packages. As far as Packed is concerned packages
24451 are collections of Emacs Lisp libraries that are stored in a
24452 dedicated directory such as a Git repository. And libraries are
24453 Emacs Lisp files that provide the correct feature (matching the
24456 Where a package manager might depend on metadata, Packed instead
24457 uses some heuristics to get the same information---that is slower
24458 and might also fail at times but makes it unnecessary to maintain
24460 (license license:gpl3+)))
24462 (define-public emacs-dpd
24469 (uri (git-reference
24470 (url "https://gitlab.com/lilyp/emacs-dpd")
24472 (file-name (git-file-name name version))
24474 (base32 "0wrqmpfcqp87dr5blpskf9kvm9slvffldqfxx77n15gcw516zzc8"))))
24475 (build-system emacs-build-system)
24477 (list emacs-packed))
24478 (home-page "https://gitlab.com/lilyp/emacs-dpd")
24479 (synopsis "Deliver packages to package.el")
24481 "This package provides tools for generating package-desc structures and
24482 feeding them to package.el library.")
24483 (license license:gpl3+)))
24485 (define-public emacs-picpocket
24486 (let ((version "41")
24487 (commit "fa3a49f011b5ae139728548fec7375743f61c7c7"))
24489 (name "emacs-picpocket")
24494 (uri (git-reference
24495 (url "https://github.com/johanclaesson/picpocket")
24497 (file-name (git-file-name name version))
24499 (base32 "1vb358jyfs3px70ah60dmlz5azdfkva9xrw3mgrr4060vcy7w4q1"))))
24500 (build-system emacs-build-system)
24501 (arguments ; needed for running tests
24504 #:test-command '("emacs" "--batch"
24505 "-l" "picpocket-test.el"
24506 "-f" "ert-run-tests-batch-and-exit")))
24507 (home-page "https://github.com/johanclaesson/picpocket")
24508 (synopsis "Image viewer for Emacs")
24510 "Picpocket is an image viewer for GNU Emacs. It has commands for:
24512 @item File operations on the picture files (delete, move, copy, hardlink).
24513 @item Scale and rotate the picture.
24514 @item Associate pictures with tags which are saved to disk.
24515 @item Filter pictures according to tags.
24516 @item Customizing keystrokes for quick tagging and file operations.
24517 @item Undo and browse history of undoable commands.
24519 (license license:gpl3+))))
24521 (define-public emacs-mu4e-conversation
24522 (let ((commit "98110bb9c300fc9866dee8e0023355f9f79c9b96")
24525 (name "emacs-mu4e-conversation")
24526 (version (git-version "0.0.1" revision commit))
24530 (uri (git-reference
24531 (url "https://gitlab.com/Ambrevar/mu4e-conversation.git")
24533 (file-name (git-file-name name version))
24536 "080s96jkcw2p288sp1vgds91rgl693iz6hi2dv56p2ih0nnivwlg"))))
24537 (build-system emacs-build-system)
24541 "https://gitlab.com/Ambrevar/mu4e-conversation")
24543 "Show a complete thread in a single buffer")
24545 "This package offers an alternate view to mu4e's e-mail display. It
24546 shows all e-mails of a thread in a single view, where each correspondent has
24547 their own face. Threads can be displayed linearly (in which case e-mails are
24548 displayed in chronological order) or as an Org document where the node tree
24549 maps the thread tree.")
24550 (license license:gpl3+))))
24552 (define-public emacs-pinentry
24553 (let ((commit "dcc9ba03252ee5d39e03bba31b420e0708c3ba0c")
24556 (name "emacs-pinentry")
24557 (version (git-version "0.1" revision commit))
24561 (uri (string-append
24562 "http://git.savannah.gnu.org/cgit/emacs/elpa.git/plain"
24563 "/packages/pinentry/pinentry.el?id=" commit))
24564 (file-name (string-append "pinentry.el"))
24567 "1lf30q6r8nz5cjzclbb9bbymsk2y75nskvb55hnjdv93gr3j0sik"))))
24568 (build-system emacs-build-system)
24571 (home-page "https://elpa.gnu.org/packages/pinentry.html")
24572 (synopsis "GnuPG Pinentry server implementation")
24574 "This package allows GnuPG passphrase to be prompted through the
24575 minibuffer instead of graphical dialog.
24577 To use, add @code{allow-emacs-pinentry} to @code{~/.gnupg/gpg-agent.conf},
24578 reload the configuration with @code{gpgconf --reload gpg-agent}, and start the
24579 server with @code{M-x pinentry-start}.")
24580 (license license:gpl3+))))
24582 (define-public emacs-so-long
24584 (name "emacs-so-long")
24589 (uri (git-reference
24590 (url "https://git.savannah.gnu.org/git/so-long")
24592 (file-name (git-file-name name version))
24595 "06a76ajfqgz48yqvvyhi5b9zss9c6h4xz6acg98ibg0v99v9k5pz"))))
24596 (build-system emacs-build-system)
24597 (home-page "https://www.emacswiki.org/emacs/SoLong")
24598 (synopsis "Improve performance in files with long lines")
24599 (description "This package improves the performance of Emacs when
24600 viewing files with long lines. It is included as standard with Emacs 27 or
24602 (license license:gpl3+)))
24604 (define-public emacs-srfi
24605 ;; SRFI data gets updated quite frequently; lastest tag is from
24606 ;; 2020; commit from 2021-08-12.
24607 (let ((commit "e31bf04a3be3aad1286b7fe919c2e4810aae751e")
24610 (name "emacs-srfi")
24611 (version (git-version "0.3" revision commit))
24614 (uri (git-reference
24615 (url "https://github.com/srfi-explorations/emacs-srfi")
24617 (file-name (git-file-name name version))
24620 "01n3yrjrdl2gdhvgd56lpjqg9d82mmrnb0h6hxdx4h5hy8sbk2p4"))))
24621 (build-system emacs-build-system)
24622 (home-page "https://github.com/srfi-explorations/emacs-srfi")
24623 (synopsis "Scheme Requests for Implementation browser in Emacs")
24625 "This package shows a list of all SRFIs and provides commands to visit
24626 them in your web browser.")
24627 (license license:expat))))
24629 (define-public emacs-github-review
24630 (let ((commit "a13a3b4f1b6114a32af843971a145ab880f51232")
24633 (name "emacs-github-review")
24634 (version (git-version "0.1" revision commit))
24638 (uri (git-reference
24639 (url "https://github.com/charignon/github-review")
24641 (file-name (git-file-name name version))
24644 "0injfpxzgfhmqalba845j5l5cdcxxqz43knhxwinf36g52nfabl0"))))
24645 (build-system emacs-build-system)
24647 (list emacs-dash emacs-s emacs-ghub))
24649 (list emacs-buttercup emacs-undercover))
24652 #:test-command '("buttercup" "-L" "test/github-review-test.el")))
24653 (home-page "https://github.com/charignon/github-review")
24654 (synopsis "Review GitHub pull requests within Emacs")
24655 (description "This package provides commands to pull in, comment on, and
24656 accept and reject GitHub pull requests.")
24657 (license license:gpl3+))))
24659 (define-public emacs-deadgrep
24661 (name "emacs-deadgrep")
24666 (uri (git-reference
24667 (url "https://github.com/Wilfred/deadgrep")
24669 (file-name (git-file-name name version))
24672 "0bwf8gsqw7hsmacqd34piwgv066ijfclmxaigkvhvpac0lpsmi79"))))
24673 (build-system emacs-build-system)
24677 #:test-command #~(list "ert-runner")
24679 #~(modify-phases %standard-phases
24680 (add-after 'unpack 'configure
24681 (lambda* (#:key inputs #:allow-other-keys)
24682 (let ((ripgrep (search-input-file inputs "/bin/rg")))
24683 ;; Specify the absolute file name of rg so that everything
24684 ;; works out-of-the-box.
24685 (emacs-substitute-variables "deadgrep.el"
24686 ("deadgrep-executable" ripgrep))))))))
24688 (list emacs-ert-runner emacs-undercover))
24692 (list emacs-dash emacs-s emacs-spinner))
24693 (home-page "https://github.com/Wilfred/deadgrep")
24694 (synopsis "Frontend for @code{ripgrep}")
24695 (description "This package provides an Emacs interface for performing
24696 searches with @code{ripgrep}.")
24697 (license license:gpl3+)))
24699 (define-public emacs-focus
24701 (name "emacs-focus")
24706 (uri (git-reference
24707 (url "https://github.com/larstvei/Focus")
24708 (commit (string-append "v" version))))
24709 (file-name (git-file-name name version))
24712 "0qbzbs18isxyf5yiz64vyxvzjpfjdaafxnas2lhx3sjkgglb08i2"))))
24713 (build-system emacs-build-system)
24714 (home-page "https://github.com/larstvei/Focus")
24715 (synopsis "Minor mode for focusing in on relevant text")
24716 (description "This package provides a minor mode that dims the color of
24717 text in neighboring sections.")
24718 (license license:gpl3+)))
24720 (define-public emacs-pandoc-mode
24722 (name "emacs-pandoc-mode")
24727 (uri (git-reference
24728 (url "https://github.com/joostkremers/pandoc-mode")
24730 (file-name (git-file-name name version))
24733 "1yn9mdlxcv9d33nvgy3wp09qhynb2m50cyhsv1xf77wyzlwdlb2p"))))
24734 (build-system emacs-build-system)
24736 (list emacs-dash emacs-hydra))
24737 (home-page "https://github.com/joostkremers/pandoc-mode")
24738 (synopsis "Minor mode for interacting with Pandoc")
24739 (description "This package provides a Hydra menu for interacting with the
24740 Pandoc, the document-conversion tool.")
24741 (license license:bsd-3)))
24743 (define-public emacs-hlint-refactor-mode
24744 (let ((commit "c4307f86aad6d02e32e9b30cb6edc115584c791c")
24747 (name "emacs-hlint-refactor-mode")
24748 (version (git-version "0.0.1" revision commit))
24752 (uri (git-reference
24753 (url "https://github.com/mpickering/hlint-refactor-mode")
24755 (file-name (git-file-name name version))
24758 "1c71w9s34n0i7mm4njchxn6s3ri1y6mh3akgbg4nq41d42h8iap3"))))
24759 (build-system emacs-build-system)
24761 (list apply-refact hlint))
24762 (home-page "https://github.com/mpickering/hlint-refactor-mode")
24763 (synopsis "Emacs bindings for @code{hlint}'s @code{--refactor} option")
24764 (description "This package applies refactoring suggestions from
24766 (license license:expat))))
24768 (define-public emacs-ccls
24769 (let ((commit "675a5704c14a27931e835a431beea3631d92e8e6")
24772 (name "emacs-ccls")
24773 (version (git-version "0.1" revision commit))
24777 (uri (git-reference
24778 (url "https://github.com/MaskRay/emacs-ccls")
24780 (file-name (git-file-name name version))
24783 "0l4bhyr9d8ljz1f0cfg1s2cjcmh6fiwbk5mdlvc7rrwz5hxc21is"))))
24784 (build-system emacs-build-system)
24786 (list ccls emacs-dash emacs-lsp-mode))
24787 (home-page "https://github.com/MaskRay/emacs-ccls")
24788 (synopsis "Emacs support for the @code{ccls} language server")
24789 (description "This package extends @code{lsp-mode} to work with @code{C}
24790 and @code{C++} files through the @code{ccls} language server.")
24791 (license license:expat))))
24793 (define-public emacs-cpreproc
24795 (name "emacs-cpreproc")
24800 (uri (git-reference
24801 (url "https://git.sr.ht/~plattfot/cpreproc")
24805 "0n4lhj9bbnkbzvifrj9q6z3j7z6jqzkaa36y239cfxdcc7i86c1c"))
24806 (file-name (git-file-name name version))))
24807 (build-system emacs-build-system)
24808 (home-page "https://sr.ht/~plattfot/cpreproc")
24809 (synopsis "Wrap C/C++ code in preprocessor macros")
24811 "Aim for this project is to make it easier to generate preprocessor macros
24812 from Emacs for C/C++ code that needs to be build against multiple incompatible
24813 versions of third party libraries or @code{C++} standards.")
24814 (license license:gpl3+)))
24816 (define-public emacs-cpreproc-openvdb
24818 (name "emacs-cpreproc-openvdb")
24823 (uri (git-reference
24824 (url "https://git.sr.ht/~plattfot/cpreproc-openvdb")
24828 "0n1y8cxx6xipvip8y6nk9ig1dpjdksz77956wlql3lhqcrcn5hzg"))
24829 (file-name (git-file-name name version))))
24830 (build-system emacs-build-system)
24832 (list emacs-cpreproc))
24833 (home-page "https://sr.ht/~plattfot/cpreproc")
24834 (synopsis "Create preprocessor macros for C++ that uses OpenVDB")
24836 "This project makes it easier to generate preprocessor macros from Emacs
24837 for C++ code that uses OpenVDB and needs to be build against multiple
24838 incompatible versions of it.")
24839 (license license:gpl3+)))
24841 (define-public emacs-org-brain
24843 (name "emacs-org-brain")
24848 (uri (git-reference
24849 (url "https://github.com/Kungsgeten/org-brain")
24850 (commit "3faf9303af3f2356e3444e69c22dc6c5774047d1")))
24851 (file-name (git-file-name name version))
24854 "1ad681zk6kckw2zbk0r4iaj4bw8cfqrbd1s3gdwgdjlzq81q9mmj"))))
24855 (build-system emacs-build-system)
24856 (home-page "https://github.com/Kungsgeten/org-brain")
24857 (synopsis "Org-mode wiki and concept-mapping for Emacs")
24858 (description "@code{emacs-org-brain} implements a variant of concept
24859 mapping in Emacs, using @code{org-mode}. An org-brain is a network of
24860 org-mode entries, where each entry is a file or a headline, and you can get a
24861 visual overview of the relationships between the entries: parents, children,
24862 siblings and friends. This visual overview can also be used to browse your
24863 entries. You can think of entries as nodes in a mind map, or pages in a
24865 (license license:expat)))
24867 (define-public emacs-recent-addresses
24868 (let ((commit "afbbfdc43b81e620acf827ca20d297e0c517b6eb")
24871 (name "emacs-recent-addresses")
24872 (home-page "https://nschum.de/src/emacs/recent-addresses/")
24873 (version (git-version "0.1" revision commit))
24876 (uri (git-reference
24877 ;; Note: Use a branch that works with Helm. Submitted
24878 ;; at <https://github.com/nschum/recent-addresses.el/pull/1>.
24879 (url "https://github.com/civodul/recent-addresses.el")
24883 "0ajrq0galjmdyjdjyxazykjyax3gh6hvfk4s7l657pi11g0q5zax"))
24884 (file-name (git-file-name name version))))
24885 (build-system emacs-build-system)
24886 (synopsis "Record recently-used email addressed and auto-complete them")
24888 "@code{recent-addresses} is an Emacs package that allows you to quickly
24889 look up previously used email addresses. It can be used alongside the Gnus
24891 (license license:gpl2+))))
24893 (define-public emacs-fold-dwim
24894 (let ((commit "c46f4bb2ce91b4e307136320e72c28dd50b6cd8b")
24897 (name "emacs-fold-dwim")
24898 (version (git-version "1.2" revision commit))
24899 (home-page "https://github.com/emacsattic/fold-dwim")
24902 (uri (git-reference (url home-page) (commit commit)))
24905 "1yz1wis31asw6xa5maliyd1ck2q02xnnh7dc6swgj9cb4wi7k6i1"))
24906 (file-name (git-file-name name version))))
24907 (build-system emacs-build-system)
24908 (synopsis "Unified user interface for Emacs folding modes")
24910 "DWIM stands for \"do what I mean\", as in the idea that one keystroke
24911 can do different things depending on the context. In this package, it means
24912 that, if the cursor is in a currently hidden folded construction, we want to
24913 show it; if it's not, we want to hide whatever fold the cursor is in.")
24914 (license license:gpl2+))))
24916 (define-public emacs-markup-faces
24918 (name "emacs-markup-faces")
24923 (uri (string-append "https://stable.melpa.org/packages/markup-faces-"
24927 "124dxbaa25fwxnpwsygpz7pw6da6dnnw7y2lic3jf8rgz7lw4v32"))))
24928 (build-system emacs-build-system)
24929 (home-page "https://github.com/sensorflo/markup-faces")
24930 (synopsis "Collection of Emacs faces for markup language modes")
24931 (description "emacs-markup-faces is like font-lock-faces, but tailored for
24932 markup languages instead programming languages. The sub group markup-faces-text
24933 is also intended for 'text viewing modes' such as info or (wo)man. This gives a
24934 common look and feel, or let's say theme, across different markup language modes
24935 and 'text viewing modes' respectively.")
24936 (license license:gpl3+)))
24938 (define-public emacs-adoc-mode
24940 (name "emacs-adoc-mode")
24945 (uri (git-reference
24946 (url "https://github.com/sensorflo/adoc-mode")
24947 (commit (string-append "V" version))))
24948 (file-name (git-file-name name version))
24951 "0kp2aafjhqxz3mjr9hkkss85r4n51chws5a2qj1xzb63dh36liwm"))))
24952 (build-system emacs-build-system)
24955 (modify-phases %standard-phases
24956 ;; See: https://github.com/sensorflo/adoc-mode/issues/39.
24957 (add-after 'unpack 'disable-failing-tests
24963 (syntax-error "test names list must not be empty"))
24964 ((_ file (test-name ...))
24966 (((string-append "^\\(ert-deftest " test-name ".*") all)
24967 (string-append all "(skip-unless nil)\n")) ...)))))
24968 (disable-tests "adoc-mode-test.el"
24969 ("adoctest-test-tempo-delimited-blocks"
24970 "adoctest-test-tempo-macros"
24971 "adoctest-test-tempo-paragraphs"
24972 "adoctest-test-tempo-passthroug-macros"
24973 "adoctest-test-tempo-quotes")))
24976 #:test-command '("emacs" "-Q" "-batch"
24977 "-l" "adoc-mode-test.el"
24978 "-f" "ert-run-tests-batch-and-exit")))
24980 (list emacs-markup-faces))
24981 (home-page "https://github.com/sensorflo/adoc-mode/wiki")
24982 (synopsis "AsciiDoc mode for Emacs")
24983 (description "This package provides an Emacs major mode for editing AsciiDoc
24984 files. It focuses on highlighting the document to improve readability.")
24985 (license license:gpl2+)))
24987 (define-public emacs-racer
24988 (let ((commit "1e63e98626737ea9b662d4a9b1ffd6842b1c648c")
24991 (name "emacs-racer")
24992 (version (git-version "1.2" revision commit))
24998 (url "https://github.com/racer-rust/emacs-racer")
25000 (file-name (git-file-name name version))
25002 (base32 "12a429lajk09qp1jxgig54p8z6wndfgr4jwdmgkc9s2df9sw02d3"))))
25005 #:test-command '("ert-runner")))
25007 (list emacs-ert-runner emacs-undercover))
25009 (list emacs-dash emacs-f emacs-pos-tip emacs-rust-mode emacs-s))
25010 (build-system emacs-build-system)
25011 (home-page "https://github.com/racer-rust/emacs-racer")
25012 (synopsis "Racer support for Emacs")
25014 "This is the official Emacs package for Racer. It supports code
25015 completion of variables, functions and modules. It can also jump to
25016 definition of functions and types, and show a help buffer based on the
25017 docstring of the thing at point.")
25018 (license license:expat))))
25020 (define-public emacs-rust-mode
25022 (name "emacs-rust-mode")
25027 (uri (git-reference
25028 (url "https://github.com/rust-lang/rust-mode")
25030 (file-name (git-file-name name version))
25032 (base32 "0sjhssxaqdd9mayfcjaf6pb0z4sv0xm5wjaqmk6wdmh543m2v1s8"))))
25033 (build-system emacs-build-system)
25035 `(#:tests? #false ;FIXME: phase fail with status 127
25036 #:test-command '("make test")))
25037 (home-page "https://github.com/rust-lang/rust-mode")
25038 (synopsis "Major Emacs mode for editing Rust source code")
25039 (description "This package provides a major Emacs mode for editing Rust
25041 (license (list license:expat
25044 (define-public emacs-rustic
25046 (name "emacs-rustic")
25051 (uri (git-reference
25052 (url "https://github.com/brotzeit/rustic")
25054 (file-name (git-file-name name version))
25056 (base32 "16vsv4fhj8zq9g4zrsmipdb1nydxgw3dhh5s3wawpvx2rcg6gx2l"))))
25057 (build-system emacs-build-system)
25063 emacs-markdown-mode
25068 emacs-xterm-color))
25070 ;; Tests require rust, cargo, rustfmt, and various crates to be
25074 (modify-phases %standard-phases
25075 (add-before 'check 'set-without-cask
25077 (setenv "WITHOUT_CASK" "1"))))))
25078 (home-page "https://github.com/brotzeit/rustic")
25079 (synopsis "Rust development environment for Emacs")
25080 (description "Rustic is a fork of Rust mode.
25081 In addition to its predecessor, it offers the following features:
25083 @item Flycheck integration,
25085 @item multiline error parsing,
25086 @item translation of ANSI control sequences through XTerm color,
25087 @item asynchronous Org Babel,
25088 @item custom compilation process,
25089 @item @command{rustfmt} errors in a Rust compilation mode,
25090 @item automatic LSP configuration with Eglot or LSP mode,
25091 @item optional Rust inline documentation,
25094 (license (list license:expat
25097 (define-public emacs-ztree
25098 ;; Upstream provides no tag, but the commit below matches latest release.
25099 (let ((commit "c9ad9136d52ca5a81475693864e255d29448f43f"))
25101 (name "emacs-ztree")
25106 (uri (git-reference
25107 (url "https://github.com/fourier/ztree")
25109 (file-name (git-file-name name version))
25112 "03i5pa3nfdz6g0yrdk7r2qcn679w0s85cc5kcmgrwlnhdzakgr80"))))
25113 (build-system emacs-build-system)
25114 (home-page "https://github.com/fourier/ztree")
25115 (synopsis "Directory tree comparison mode for Emacs")
25116 (description "Ztree is a project dedicated to implementation of several
25117 text-tree applications inside GNU Emacs. It consists of 2 subprojects:
25118 @command{ztree-diff} and @command{ztree-dir} (the basis of
25119 @command{ztree-diff}).")
25120 (license license:gpl3))))
25122 (define-public emacs-helm-org-contacts
25123 (let ((commit "741eca6239684950219c9a12802386a132491b8c")
25126 (name "emacs-helm-org-contacts")
25127 (version (git-version "20201202" revision commit))
25131 (uri (git-reference
25132 (url "https://github.com/tmalsburg/helm-org-contacts")
25134 (file-name (git-file-name name version))
25137 "1xy51hc3az8bc9sj71sjzy03xpkfa4v3cdcv3gpq3cj2zhk9gr8h"))))
25138 (build-system emacs-build-system)
25140 (list emacs-dash emacs-helm emacs-s))
25141 (home-page "https://github.com/tmalsburg/helm-org-contacts")
25142 (synopsis "Helm source for org-contacts")
25143 (description "This Helm source can be used to search contacts stored in
25144 org-contacts format. There are actions for inserting postal addresses, email
25145 addresses, and phone numbers in the buffer where @command{helm-org-contacts}
25147 (license license:gpl3))))
25149 (define-public emacs-dired-du
25151 (name "emacs-dired-du")
25156 (uri (string-append
25157 "https://elpa.gnu.org/packages/dired-du-" version ".tar"))
25159 (base32 "0vhph7vcicsiq28b10h3b4dvnhckcy4gccpdgsad5j7pwa5k26m1"))))
25160 (build-system emacs-build-system)
25161 (home-page "https://elpa.gnu.org/packages/dired-du.html")
25162 (synopsis "Dired with recursive directory sizes")
25164 "Display the recursive size of directories in Dired.
25165 This file defines a minor mode @command{dired-du-mode} to show the recursive
25166 size of directories in Dired buffers. If @command{du} program is available,
25167 then the directory sizes are obtained with it. Otherwise, the directory sizes
25168 are obtained with Lisp. The former is faster and provide a more precise
25169 value. For directories where the user doesn't have read permission, the
25170 recursive size is not obtained. Once this mode is enabled, every new Dired
25171 buffer displays recursive dir sizes.")
25172 (license license:gpl3+)))
25174 (define-public emacs-dired-rsync
25176 (name "emacs-dired-rsync")
25180 (uri (git-reference
25181 (url "https://github.com/stsquad/dired-rsync")
25183 (file-name (git-file-name name version))
25186 "19za6i96xrmczdh928n5ixd7j7pvy175sz1msaiwvdjwysjr8k51"))))
25187 (build-system emacs-build-system)
25189 (list emacs-s emacs-dash))
25190 (home-page "https://github.com/stsquad/dired-rsync/")
25191 (synopsis "Support for rsync from Emacs dired buffers")
25192 (description "This package adds a single command @code{dired-rsync} which
25193 allows the user to copy marked files in a dired buffer via @code{rsync}. This
25194 is useful, especially for large files, because the copy happens in the
25195 background and doesn’t lock up Emacs. It is also more efficient than using
25196 tramps own encoding methods for moving data between systems.")
25197 (license license:gpl3+)))
25199 (define-public emacs-pcre2el
25200 ;; Last release is very old so we get the latest commit.
25201 (let ((commit "0b5b2a2c173aab3fd14aac6cf5e90ad3bf58fa7d"))
25203 (name "emacs-pcre2el")
25204 (version (git-version "1.8" "1" commit))
25208 (uri (git-reference
25209 (url "https://github.com/joddie/pcre2el")
25211 (file-name (git-file-name name version))
25214 "14br6ad138qx1z822wqssswqiihxiynz1k69p6mcdisr2q8yyi1z"))))
25215 (build-system emacs-build-system)
25216 (home-page "https://github.com/joddie/pcre2el")
25217 (synopsis "Convert between PCRE, Emacs and rx regexp syntax")
25218 (description "@code{pcre2el} or @code{rxt} (RegeXp Translator or RegeXp
25219 Tools) is a utility for working with regular expressions in Emacs, based on a
25220 recursive-descent parser for regexp syntax. In addition to converting (a
25221 subset of) PCRE syntax into its Emacs equivalent, it can do the following:
25224 @item convert Emacs syntax to PCRE
25225 @item convert either syntax to @code{rx}, an S-expression based regexp syntax
25226 @item untangle complex regexps by showing the parse tree in @code{rx} form and
25227 highlighting the corresponding chunks of code
25228 @item show the complete list of strings (productions) matching a regexp,
25229 provided the list is finite
25230 @item provide live font-locking of regexp syntax (so far only for Elisp
25231 buffers – other modes on the TODO list).
25233 (license license:gpl3))))
25235 (define-public emacs-magit-todos
25237 (name "emacs-magit-todos")
25242 (uri (git-reference
25243 (url "https://github.com/alphapapa/magit-todos")
25245 (file-name (git-file-name name version))
25248 "12ay02vk6bk77k33mhlqi41m03a77y80b15rj1dbh1n6jfrjwkfy"))))
25249 (build-system emacs-build-system)
25258 (home-page "https://github.com/alphapapa/magit-todos")
25259 (synopsis "Show source files' TODOs (and FIXMEs, etc) in Magit status buffer")
25260 (description "This package displays keyword entries from source code
25261 comments and Org files in the Magit status buffer. Activating an item jumps
25262 to it in its file. By default, it uses keywords from @code{hl-todo}, minus a
25264 (license license:gpl3)))
25266 (define-public emacs-git-annex
25267 ;; Unreleased version has a fontification fix.
25268 (let ((commit "1324d3f23c534fe79391a2c256bb8803054e383b")
25271 (name "emacs-git-annex")
25272 (version (git-version "1.1" revision commit))
25276 (uri (git-reference
25277 (url "https://github.com/jwiegley/git-annex-el")
25279 (file-name (git-file-name name version))
25282 "1lfky2nsrlndlbvk6vwbswnvbvkz1sxgg0n3r5q6xykdkjym0lrh"))))
25283 (build-system emacs-build-system)
25284 (home-page "https://github.com/jwiegley/git-annex-el")
25285 (synopsis "Emacs integration for git-annex")
25286 (description "Enhances Dired and buffers visiting annex files with
25287 git-annex functionality. In Dired, the names of annex files are shortened by
25288 hiding the symbolic links and fontified based on whether content is present.
25289 Commands for performing some common operations (e.g., unlocking and adding
25290 files) are provided.")
25291 (license license:gpl2+))))
25293 (define-public emacs-hackernews
25295 (name "emacs-hackernews")
25300 (uri (git-reference
25301 (url "https://github.com/clarete/hackernews.el")
25302 (commit (string-append "v" version))))
25303 (file-name (git-file-name name version))
25306 "17lkjcka6ydd6khhz5jbjlybfpx05153z0d8s1rxaxcwl7z2y6cf"))))
25307 (build-system emacs-build-system)
25308 (home-page "https://github.com/clarete/hackernews.el")
25309 (synopsis "Hacker News client for Emacs")
25310 (description "The @command{hackernews} package is able to fetch stories
25311 from six different Hacker News feeds, namely top, new, best, ask, show and job
25312 stories. The default feed is top stories, which corresponds to the Hacker
25314 (license license:gpl3)))
25316 (define-public emacs-tokei
25318 (name "emacs-tokei")
25323 (uri (git-reference
25324 (url "https://github.com/nagy/tokei.el")
25325 (commit (string-append "v" version))))
25326 (file-name (git-file-name name version))
25329 "0gcjlcfxd4bg123gjf7d0vfvfd6zpd0da8svynglca1qhp77jkx1"))))
25330 (build-system emacs-build-system)
25334 #~(modify-phases %standard-phases
25335 (add-after 'unpack 'configure
25336 (lambda* (#:key inputs #:allow-other-keys)
25337 ;; .el is read-only in git.
25338 (make-file-writable "tokei.el")
25339 ;; Specify the absolute file name of tokei so that everything
25340 ;; works out-of-the-box.
25341 (emacs-substitute-variables "tokei.el"
25343 (search-input-file inputs "/bin/tokei"))))))))
25344 (inputs (list tokei))
25345 (propagated-inputs (list emacs-magit))
25346 (home-page "https://github.com/nagy/tokei.el")
25347 (synopsis "Display codebase statistics in Emacs")
25349 "@code{emacs-tokei} is a major-mode for Emacs, that displays codebase
25350 statistics with the help of @code{tokei}.")
25351 (license license:gpl3+)))
25353 (define-public emacs-youtube-dl
25354 (let ((commit "af877b5bc4f01c04fccfa7d47a2c328926f20ef4")
25357 (name "emacs-youtube-dl")
25358 (version (git-version "1.0" "2" commit))
25362 (uri (git-reference
25363 (url "https://github.com/skeeto/youtube-dl-emacs/")
25365 (file-name (git-file-name name version))
25368 "0zkl9jkjbx0lmp9ylv4rqg1zwqibk053s4rp7s1h0i18nzk7vn8j"))))
25369 (build-system emacs-build-system)
25374 (modify-phases %standard-phases
25375 (add-after 'unpack 'configure
25376 (lambda* (#:key inputs #:allow-other-keys)
25377 (let ((youtube-dl (assoc-ref inputs "youtube-dl")))
25378 ;; .el is read-only in git.
25379 (chmod "youtube-dl.el" #o644)
25380 ;; Specify the absolute file names of the various
25381 ;; programs so that everything works out-of-the-box.
25382 (emacs-substitute-variables
25384 ("youtube-dl-program"
25385 (string-append youtube-dl "/bin/youtube-dl")))))))))
25386 (home-page "https://github.com/skeeto/youtube-dl-emacs/")
25387 (synopsis "Emacs youtube-dl download manager")
25388 (description "This package manages a video download queue for
25389 @command{youtube-dl}, which serves as the back end. It manages a single
25390 @command{youtube-dl} subprocess, downloading one video at a time. New videos
25391 can be queued at any time.")
25392 (license license:unlicense))))
25394 (define-public emacs-ytdl
25396 (name "emacs-ytdl")
25401 (uri (git-reference
25402 (url "https://gitlab.com/tuedachu/ytdl")
25404 (file-name (git-file-name name version))
25406 (base32 "010arhvibyw50lqhsr8bm0vj3pzry1h1vgcvxnmyryirk3dv40jl"))))
25407 (build-system emacs-build-system)
25410 (modify-phases %standard-phases
25411 (add-after 'unpack 'configure
25412 (lambda* (#:key inputs #:allow-other-keys)
25413 ;; .el is read-only in git.
25414 (make-file-writable "ytdl.el")
25415 ;; Specify the absolute file names of the various programs so
25416 ;; that everything works out-of-the-box.
25417 (emacs-substitute-variables "ytdl.el"
25419 (search-input-file inputs "/bin/youtube-dl"))))))))
25423 (list emacs-async emacs-dash))
25424 (home-page "https://gitlab.com/tuedachu/ytdl")
25425 (synopsis "Emacs interface for youtube-dl")
25427 "This package manages a video download queue for @command{youtube-dl},
25428 which serves as the back end. New videos can be queued at any time. All
25429 youtube-dl backends are supported. It is possible to create download profiles
25430 depending on the downloaded URL.")
25431 (license license:gpl3+)))
25433 (define-public emacs-ytel
25434 ;; No tagged releases. Using version from main file.
25435 (let ((commit "d40bc7ead8d4d7e4d16b03b66a93d63bef51cc5f")
25438 (name "emacs-ytel")
25439 (version (git-version "0.1.0" revision commit))
25443 (uri (git-reference
25444 (url "https://github.com/grastello/ytel")
25446 (file-name (git-file-name name version))
25448 (base32 "0pxzfsxzrpv59dssrgx2mmwkm6rzk49ffjkgsa3wks7rdyfil3kf"))))
25449 (build-system emacs-build-system)
25452 (modify-phases %standard-phases
25453 (add-after 'unpack 'patch-exec-paths
25454 (lambda* (#:key inputs #:allow-other-keys)
25455 (let ((curl (assoc-ref inputs "curl")))
25456 (substitute* "ytel.el"
25457 (("\"curl\"") (string-append "\"" curl "/bin/curl\"")))))))))
25460 (home-page "https://github.com/grastello/ytel")
25461 (synopsis "Youtube front-end for Emacs")
25463 "This package provides a major mode to search YouTube videos via an
25464 Elfeed-like buffer. Information about videos displayed in this buffer can be
25465 extracted and manipulated by user-defined functions to do various things such
25466 as playing them in some video player, or downloading them.")
25467 (license license:gpl3+))))
25469 (define-public emacs-ytel-show
25470 ;; No tagged releases. Version extracted from main file.
25471 (let ((commit "8b999484eb447ecdb741b24cbef2b5a7260a53e6")
25474 (name "emacs-ytel-show")
25475 (version (git-version "0.1.0" revision commit))
25479 (uri (git-reference
25480 (url "https://github.com/xFA25E/ytel-show")
25482 (file-name (git-file-name name version))
25484 (base32 "0nhgzfzq1bgpbdbljx5z2hzr8ia7ybsyvvr66yj4klz0zj97rghj"))))
25485 (build-system emacs-build-system)
25488 (home-page "https://github.com/xFA25E/ytel-show")
25489 (synopsis "Browse YouTube in Emacs")
25491 "This package provides an Emacs interface for browsing YouTube videos
25493 (license license:gpl3+))))
25495 (define-public emacs-org-web-tools
25497 (name "emacs-org-web-tools")
25502 (uri (git-reference
25503 (url "https://github.com/alphapapa/org-web-tools")
25505 (file-name (git-file-name name version))
25508 "0v4qad54r0z7dr7kg5lpfdsazi44qvrbybx9aciyl4w9grfajphb"))))
25509 (build-system emacs-build-system)
25511 (list emacs-dash emacs-esxml emacs-request emacs-s))
25516 (modify-phases %standard-phases
25517 (add-after 'unpack 'patch-exec-paths
25518 (lambda* (#:key inputs #:allow-other-keys)
25519 (let ((pandoc (assoc-ref inputs "pandoc")))
25520 (substitute* "org-web-tools.el"
25521 (("\"pandoc\"") (string-append "\"" pandoc "/bin/pandoc\"")))
25523 (home-page "https://github.com/alphapapa/org-web-tools")
25524 (synopsis "Display/Process web page as Org-mode content")
25525 (description "This package contains library functions and commands useful
25526 for retrieving web page content and processing it into Org-mode content.
25528 For example, you can copy a URL to the clipboard or kill-ring, then run a
25529 command that downloads the page, isolates the “readable” content with
25530 @command{eww-readable}, converts it to Org-mode content with Pandoc, and
25531 displays it in an Org-mode buffer. Another command does all of that but
25532 inserts it as an Org entry instead of displaying it in a new buffer.")
25533 (license license:gpl3+)))
25535 (define-public emacs-blimp
25536 (let ((commit "e420763d6d18b5d1be552cdbc47f91418343db03"))
25538 (name "emacs-blimp")
25539 (version (git-version "0.0.0" "1" commit))
25543 (uri (git-reference
25544 (url "https://github.com/walseb/blimp")
25546 (file-name (git-file-name name version))
25549 "09wmhpym516b81dfq8smdmysh1fn610dzlyvyl2rkx8600f0fizd"))))
25550 (build-system emacs-build-system)
25553 (home-page "https://github.com/walseb/blimp")
25554 (synopsis "Emacs wrapper around all Imagemagick commands")
25555 (description "Blimp (Bustling Image Manipulation Package) is a complete
25556 wrapper around all Imagemagick commands with descriptions, autocompletion (for
25557 some commands) and hints displayed in prompt using @command{eimp.el} to
25558 execute its commands and resize images.")
25559 (license license:gpl3+))))
25561 (define-public emacs-synosaurus
25563 (name "emacs-synosaurus")
25568 (uri (git-reference
25569 (url "https://github.com/hpdeifel/synosaurus")
25570 (commit (string-append "v" version))))
25571 (file-name (git-file-name name version))
25574 "14dd6p89pmpf1w3nx4f9mzm4sn2b64nicws436ck7pmp223pwciv"))))
25575 (build-system emacs-build-system)
25580 (modify-phases %standard-phases
25581 (add-after 'unpack 'configure
25582 (lambda* (#:key inputs outputs #:allow-other-keys)
25583 (let ((wn (assoc-ref inputs "wordnet")))
25584 ;; .el is read-only in git.
25585 (make-file-writable "synosaurus-wordnet.el")
25586 ;; Specify the absolute file names of the various
25587 ;; programs so that everything works out-of-the-box.
25588 (emacs-substitute-variables "synosaurus-wordnet.el"
25589 ("synosaurus-wordnet--command"
25590 (string-append wn "/bin/wn")))))))))
25591 (home-page "https://github.com/hpdeifel/synosaurus")
25592 (synopsis "Extensible thesaurus mode for Emacs")
25593 (description "Synosaurus is a thesaurus fontend for Emacs with pluggable
25594 backends, including the @command{wordnet} offline backend.")
25595 (license license:gpl3+)))
25597 (define-public emacs-editorconfig
25599 (name "emacs-editorconfig")
25604 (uri (git-reference
25605 (url "https://github.com/editorconfig/editorconfig-emacs")
25606 (commit (string-append "v" version))))
25607 (file-name (git-file-name name version))
25610 "1v8x649r9b0ihnhddkkfb8ck21z2hr3swgczwgzwdk0ys6pl89my"))))
25611 (build-system emacs-build-system)
25612 (home-page "https://github.com/editorconfig/editorconfig-emacs")
25613 (synopsis "Define and maintain consistent coding styles between different
25615 (description "The EditorConfig project consists of a file format for
25616 defining coding styles and a collection of text editor plugins that enable
25617 editors to read the file format and adhere to defined styles. EditorConfig
25618 files are easily readable and they work nicely with version control systems.")
25619 (license license:gpl3+)))
25621 (define-public emacs-all-the-icons
25623 (name "emacs-all-the-icons")
25628 (uri (git-reference
25629 (url "https://github.com/domtronn/all-the-icons.el")
25631 (file-name (git-file-name name version))
25633 (base32 "0lwgvgnqf7vihglm0c5bwsxbl4x7f641289cji5s7jwy2dbsqk7g"))))
25634 (build-system emacs-build-system)
25636 `(#:include '("\\.el$" "^data/")
25637 #:exclude '("^test/")
25639 (modify-phases %standard-phases
25640 (add-after 'install 'install-fonts
25641 (lambda* (#:key outputs #:allow-other-keys)
25642 (let ((fonts (string-append (assoc-ref outputs "out")
25645 (with-directory-excursion "fonts"
25646 (install-file "all-the-icons.ttf" fonts)
25648 (install-file "file-icons.ttf" fonts)
25649 (install-file "octicons.ttf" fonts)
25650 (install-file "weathericons.ttf" fonts)))))
25652 (lambda* (#:key outputs #:allow-other-keys)
25653 (apply invoke "ert-runner" "-l"
25654 (append (find-files "data" "\\.el")
25655 '("all-the-icons-faces.el"))))))))
25657 (list emacs-f emacs-ert-runner))
25659 (list emacs-f emacs-memoize font-awesome font-google-material-design-icons))
25660 (home-page "https://github.com/domtronn/all-the-icons.el")
25661 (synopsis "Collect icon fonts and propertize them within Emacs")
25663 "All-the-icons is a utility package to collect various icon fonts and
25664 propertize them within Emacs. Icon fonts allow you to propertize and format
25665 icons the same way you would normal text. This enables things such as better
25666 scaling of and anti aliasing of the icons.")
25667 ;; Package is released under Expat license. Elisp files are licensed
25668 ;; under GPL3+. Fonts come with various licenses: Expat for
25669 ;; "all-the-icons.ttf" and "file-icons.ttf", Apache License 2.0 for
25670 ;; "material-design-icons.ttf", and SIL OFL 1.1 for "fontawesome.ttf",
25671 ;; "ocitcons.ttf" and "weathericons.ttf".
25673 (list license:expat license:gpl3+ license:silofl1.1 license:asl2.0))))
25675 (define-public emacs-all-the-icons-completion
25676 ;; XXX: No tags. Extract version from keyword in main file.
25677 (let ((commit "9e7d456b0934ecb568b6f05a8445e3f4ce32261f")
25680 (name "emacs-all-the-icons-completion")
25681 (version (git-version "0.0.1" revision commit))
25685 (uri (git-reference
25686 (url "https://github.com/iyefrat/all-the-icons-completion")
25688 (file-name (git-file-name name version))
25690 (base32 "04bnmmd6lyx0p39sgymqvmcy7bk8mr7sikbpy49adxi7d2891ldg"))))
25691 (build-system emacs-build-system)
25692 (propagated-inputs (list emacs-all-the-icons))
25693 (home-page "https://github.com/iyefrat/all-the-icons-completion")
25694 (synopsis "Add icons to completion candidates")
25695 (description "This package adds icons to completion candidates using the
25696 built-in completion metadata functions. For example, with this package,
25697 @code{find-file} can display a file icon for each candidate based on the file
25699 (license license:gpl3+))))
25701 (define-public emacs-wttrin
25702 (let ((commit "df5427ce2a5ad4dab652dbb1c4a1834d7ddc2abc")
25705 (name "emacs-wttrin")
25706 (version (git-version "0.2.0" revision commit))
25709 (uri (git-reference
25710 (url "https://github.com/bcbcarl/emacs-wttrin")
25712 (file-name (git-file-name name version))
25715 "1ai655f10iayb4vw0ass2j3x83f4vsv90326mnywkzfl3sxd432z"))))
25716 (build-system emacs-build-system)
25718 (list emacs-xterm-color))
25719 (home-page "https://github.com/bcbcarl/emacs-wttrin")
25720 (synopsis "Frontend for weather web service @url{wttr.in}")
25721 (description "This package provides local weather information from
25723 (license license:expat))))
25725 (define-public emacs-browse-kill-ring
25726 (let ((commit "1ef72cc6accd94cd7032c02b1b2c78ae7f1d1965")
25729 (name "emacs-browse-kill-ring")
25730 (version (git-version "2.0.0" revision commit))
25734 (uri (git-reference
25735 (url "https://github.com/browse-kill-ring/browse-kill-ring")
25737 (file-name (git-file-name name version))
25740 "0mil32g7hcw376jibs5hdyv00xbaql3m4a27rwqaafg0x59avxdj"))))
25741 (build-system emacs-build-system)
25742 (home-page "https://github.com/browse-kill-ring/browse-kill-ring")
25743 (synopsis "Interactively insert items from kill-ring")
25745 "Did you ever feel that @code{C-y M-y M-y M-y ...} is not a great way
25746 of trying to find that piece of text you know you killed a while back? Then
25747 @code{browse-kill-ring.el} is for you.")
25748 (license license:gpl2+))))
25750 (define-public emacs-powerline
25752 (name "emacs-powerline")
25757 (uri (git-reference
25758 (url "https://github.com/milkypostman/powerline")
25760 (file-name (git-file-name name version))
25763 "1hp3xp18943n0rlggz55150020ivw8gvi1vyxkr4z8xhpwq4gaar"))))
25764 (build-system emacs-build-system)
25765 (home-page "https://github.com/milkypostman/powerline/")
25766 (synopsis "Mode-line plugin for Emacs")
25767 (description "Powerline is a utility plugin which allows you to create
25768 a better-looking, more functional Emacs mode-line. A collection of predefined
25769 themes comes with the package.")
25770 (license license:gpl3+)))
25772 (define-public emacs-spaceline
25774 (name "emacs-spaceline")
25779 (uri (git-reference
25780 (url "https://github.com/TheBB/spaceline")
25781 (commit (string-append "v" version))))
25782 (file-name (git-file-name name version))
25785 "1q8r95zfrh0vxna5ml2pq9b9f66clfqcl4d2qy2aizkvzyxg6skl"))))
25786 (build-system emacs-build-system)
25788 (list emacs-dash emacs-powerline emacs-s))
25789 (home-page "https://github.com/TheBB/spaceline")
25790 (synopsis "Powerline theme from Spacemacs")
25791 (description "Spaceline provides Spacemacs' mode-line theme.
25792 This package provides features for three kinds of users.
25795 @item You just want to use the Spacemacs mode-line theme and forget about it.
25796 @item You want to use something similar to the Spacemacs mode-line theme, but
25797 with a handful of easy tweaks.
25798 @item You want an easy-to-use library for building your own mode-line from
25799 scratch, and you think the Spacemacs theme looks good.
25801 (license license:gpl3+)))
25803 (define-public emacs-spaceline-next
25804 (let ((commit "1b26af2c1a701481ac5d90928fe0200e389756c3")
25805 (last-release-version "2.0.1")
25808 (inherit emacs-spaceline)
25809 (name "emacs-spaceline-next")
25810 (version (git-version last-release-version revision commit))
25814 (uri (git-reference
25815 (url "https://github.com/TheBB/spaceline")
25818 (base32 "11lwckqcgzsahrkkm5wk1ph4kc7d4yz05r7251g8c9f0q6vdj9dp"))
25819 (file-name (git-file-name name version)))))))
25821 (define-public emacs-column-marker
25823 (name "emacs-column-marker")
25828 (uri "https://www.emacswiki.org/emacs/download/column-marker.el")
25829 (sha256 (base32 "05bv198zhqw5hqq6cr11mhz02dpca74hhp1ycwq369m0yb2naxy9"))))
25830 (build-system emacs-build-system)
25831 (home-page "https://www.emacswiki.org/emacs/ColumnMarker")
25832 (synopsis "Emacs mode for highlighting columns")
25834 "With @code{column-marker.el} you can highlight any number of text columns.
25835 Three such highlight column markers are provided by default. This is
25836 especially useful for languages like COBOL or Fortran where certain columns
25837 have special meaning. It is also handy for aligning text across long vertical
25838 distances. Multi-column characters, such as @kbd{TAB} are treated
25840 (license license:gpl2+)))
25842 (define-public emacs-slime-repl-ansi-color
25843 (let ((commit "ad03263f5d4de473bc173b64a6fc3dc1106393d7"))
25845 (name "emacs-slime-repl-ansi-color")
25846 (version (git-version "0.0.0" "1" commit))
25849 (uri (git-reference
25850 (url "https://github.com/deadtrickster/slime-repl-ansi-color")
25852 (file-name (git-file-name name version))
25855 "0bpg7gxz310x7bnlg324c507sxc5gxwwz6h64h6kdq141r73vbi4"))))
25856 (build-system emacs-build-system)
25857 (home-page "https://github.com/deadtrickster/slime-repl-ansi-color")
25858 (synopsis "Color ANSI codes in the REPL of SLIME")
25859 (description "Color ANSI codes in the REPL of SLIME")
25860 (license license:gpl2+))))
25862 (define-public emacs-helm-slime
25864 (name "emacs-helm-slime")
25868 (uri (git-reference
25869 (url "https://github.com/emacs-helm/helm-slime")
25871 (file-name (git-file-name name version))
25874 "0mrpjhpijdrq353fnfvdj9l9xfsz390qlcvifcair9732ma7i8l0"))))
25875 (build-system emacs-build-system)
25877 (list emacs-helm emacs-slime))
25878 (home-page "https://github.com/emacs-helm/helm-slime")
25879 (synopsis "Helm for SLIME, the Superior Lisp Interaction Mode for Emacs")
25880 (description "Helm-SLIME defines a few new commands:
25883 @item helm-slime-complete: Select a symbol from the SLIME completion systems.
25884 @item helm-slime-list-connections: Yet another slime-list-connections with Helm.
25885 @item: helm-slime-apropos: Yet another slime-apropos with Helm.
25886 @item helm-slime-repl-history: Select an input from the SLIME REPL history and insert it.
25888 (license license:gpl3+)))
25890 (define-public emacs-helm-sly
25892 (name "emacs-helm-sly")
25896 (uri (git-reference
25897 (url "https://github.com/emacs-helm/helm-sly")
25899 (file-name (git-file-name name version))
25902 "06x8wyx1r0s7askkvlbklgz1cszv34qsvv3gryndw350smk1v8kx"))))
25903 (build-system emacs-build-system)
25905 (list emacs-helm emacs-sly))
25906 (home-page "https://github.com/emacs-helm/helm-sly")
25907 (synopsis "Helm for SLY, a Common Lisp interaction mode for Emacs")
25908 (description "Helm-SLY defines a few new commands:
25911 @item @code{helm-sly-list-connections}: Yet another Lisp connection list with
25913 @item @code{helm-sly-apropos}: Yet another @command{apropos} with Helm.
25914 @item @code{helm-sly-mini}: Like @command{helm-sly-list-connections}, but
25915 include an extra source of Lisp-related buffers, like the events buffer or the
25918 (license license:gpl3+)))
25920 (define-public emacs-gtk-look
25922 (name "emacs-gtk-look")
25926 (uri "https://download.tuxfamily.org/user42/gtk-look.el")
25929 "14p2nwrd51cr1v06fxbjjn6jdrkf9d6vcxhmscm0kl677s25ypsp"))))
25930 (build-system emacs-build-system)
25933 (modify-phases %standard-phases
25934 (add-after 'unpack 'configure
25936 ;; File is read-only.
25937 (chmod "gtk-look.el" #o644)
25938 (emacs-substitute-variables "gtk-look.el"
25939 ("gtk-lookup-devhelp-indices"
25940 '(list (expand-file-name "~/.guix-profile/share/gtk-doc/html/*/*.devhelp*"))))
25942 (home-page "http://user42.tuxfamily.org/gtk-look/index.html")
25943 (synopsis "Find and display HTML documentation for GTK, GNOME and Glib")
25944 (description "@command{gtk-look} finds and displays HTML documentation for
25945 GTK, GNOME and Glib functions and variables in Emacs, similar to what
25946 info-lookup-symbol does for info files (C-h S). The documentation is expected
25947 to be devhelp indexes with HTML files. The location of the indexes can be
25948 customized. In addition to C code development @command{gtk-look} is good for
25951 @item @command{perl-gtk2}, recognising class funcs like
25952 @command{Gtk2::Label->new} and bare method names like @command{set_text}.
25953 @item @command{guile-gnome}, recognising methods like @command{set-text} and
25954 classes like @command{<gtk-window>}.
25956 (license license:gpl3+)))
25958 (define-public emacs-ov
25964 (uri (git-reference
25965 (url "https://github.com/ShingoFukuyama/ov.el")
25967 (file-name (git-file-name name version))
25970 "0qxk2rf84j86syxi8xknsq252irwg7sz396v3bb4wqz4prpj0kzc"))))
25971 (build-system emacs-build-system)
25972 (home-page "https://github.com/ShingoFukuyama/ov.el")
25973 (synopsis "Overlay library for Emacs Lisp")
25974 (description "@code{ov.el} provides a simple way to manipulate overlays in
25976 (license license:gpl3+)))
25978 (define-public emacs-matrix-client
25979 (let ((commit "d2ac55293c96d4c95971ed8e2a3f6f354565c5ed"))
25981 (name "emacs-matrix-client")
25982 (version (git-version "0.0.0" "6" commit))
25985 (uri (git-reference
25986 (url "https://github.com/jgkamat/matrix-client-el")
25988 (file-name (git-file-name name version))
25991 "1scfv1502yg7x4bsl253cpr6plml1j4d437vci2ggs764sh3rcqq"))))
25992 (build-system emacs-build-system)
25999 emacs-frame-purpose
26002 emacs-rainbow-identifiers
26006 (home-page "https://github.com/jgkamat/matrix-client-el")
26007 (synopsis "Matrix client for Emacs")
26008 (description "@code{matrix-client} is a simple chat UI to Matrix.org
26009 rooms. It also provides an API which allows Emacs to seamlessly create
26010 RPC channels with users and other software.")
26011 (license license:gpl3+))))
26013 (define-public emacs-sesman
26015 (name "emacs-sesman")
26020 (uri (git-reference
26021 (url "https://github.com/vspinu/sesman")
26022 (commit (string-append "v" version))))
26023 (file-name (git-file-name name version))
26026 "0z5jb4vpbjsi63w3wjy6d2lgz33qdfvrgfb3bszv4hcf6a96y7fc"))))
26027 (build-system emacs-build-system)
26030 (modify-phases %standard-phases
26031 (add-after 'unpack 'set-shell
26032 ;; Setting the SHELL environment variable is required for the tests
26035 (setenv "SHELL" (which "sh"))
26038 #:test-command '("make" "test")))
26039 (home-page "https://github.com/vspinu/sesman")
26040 (synopsis "Session manager for Emacs based IDEs")
26041 (description "Sesman provides facilities for session management and
26042 interactive session association with the current contexts (project, directory,
26043 buffers). While sesman can be used to manage arbitrary sessions, it primary
26044 targets the Emacs based IDEs (CIDER, ESS, Geiser, Robe, SLIME etc.)")
26045 (license license:gpl3+)))
26047 (define-public emacs-buttercup
26049 (name "emacs-buttercup")
26054 (uri (git-reference
26055 (url "https://github.com/jorgenschaefer/emacs-buttercup")
26056 (commit (string-append "v" version))))
26057 (file-name (git-file-name name version))
26060 "0a5wvm7nh4748wzvp2b9jll74ifqz22bicxkl5fwp4di4vrqpd47"))))
26061 (build-system emacs-build-system)
26065 #:test-command #~(list "make" "test")
26067 #~(modify-phases %standard-phases
26068 (add-after 'install 'install-bin
26070 (install-file "bin/buttercup"
26071 (string-append #$output "/bin")))))))
26072 (home-page "https://github.com/jorgenschaefer/emacs-buttercup")
26073 (synopsis "Behavior driven emacs lisp testing framework")
26074 (description "Buttercup is a behavior-driven development framework for
26075 testing Emacs Lisp code. It groups related tests so they can share
26076 common set-up and tear-down code, and allows the programmer to \"spy\" on
26077 functions to ensure they are called with the right arguments during testing.")
26078 (license license:gpl3+)))
26080 ;;; Required by emacs-lua-mode
26081 (define emacs-buttercup-1.25
26083 (inherit emacs-buttercup)
26084 (name "emacs-buttercup")
26089 (uri (git-reference
26090 (url "https://github.com/jorgenschaefer/emacs-buttercup")
26091 (commit (string-append "v" version))))
26092 (file-name (git-file-name name version))
26095 "0fsysvsypda6b7azc15bpaprq3bwx4gb6rlq2mj6f8rgwdqc8153"))))))
26097 (define-public emacs-cort
26099 (name "emacs-cort")
26103 (uri (git-reference
26104 (url "https://github.com/conao3/cort.el")
26105 (commit (string-append "v" version))))
26106 (file-name (git-file-name name version))
26109 "03c223nczpbdkjmq69panhbsq2a0zj20w329jgj4c0zsj8m1a32a"))))
26110 (build-system emacs-build-system)
26115 #:test-command '("emacs" "--batch" "--quick"
26116 "--directory=." "--load=cort-tests.el"
26117 "--funcall=cort-test-run")))
26118 (home-page "https://github.com/conao3/cort.el")
26119 (synopsis "Unit test framework for the Emacs Lisp")
26120 (description "@code{cort} is a lightweight Emacs Lisp unit test library.")
26121 (license license:gpl3+)))
26123 (define-public emacs-wordnut
26124 (let ((commit "feac531404041855312c1a046bde7ea18c674915")
26127 (name "emacs-wordnut")
26128 (version (git-version "0.1" revision commit))
26129 (home-page "https://github.com/gromnitsky/wordnut")
26132 (uri (git-reference (url home-page) (commit commit)))
26135 "1jl0b6g64a9w0q7bfvwha67vgws5xd15b7mkfyb5gkz3pymqhfxn"))
26137 (search-patches "emacs-wordnut-require-adaptive-wrap.patch"))
26138 (file-name (git-file-name name version))))
26139 (build-system emacs-build-system)
26141 (list wordnet emacs-adaptive-wrap))
26142 (synopsis "Major mode for WordNet")
26143 (description "This Emacs package provides an interface for
26144 @code{wordnet}. Features include completion, if the query is not found
26145 too ambiguous and navigation in the result buffer.")
26146 (license license:gpl3+))))
26148 (define-public emacs-frame-local
26149 ;; There is no release yet. Version is extracted from the main
26151 (let ((version "0.0.1")
26153 (commit "7ee1106c3bcd4022f48421f8cb1ef4f995da816e"))
26155 (name "emacs-frame-local")
26156 (version (git-version version revision commit))
26160 (uri (git-reference
26161 (url "https://github.com/sebastiencs/frame-local")
26163 (file-name (git-file-name name version))
26165 (base32 "0zfxsxdh3bd3fd566zl0byp13p5b8f4cgkwl637imvarvahczigp"))))
26166 (build-system emacs-build-system)
26167 (home-page "https://github.com/sebastiencs/frame-local")
26168 (synopsis "Access variables local to an Emacs frame")
26170 "This package allows setting and accessing variables local to
26171 an Emacs frame. Note that the variables created with this package do
26172 not have any relation with variables defined by @code{defvar},
26173 @code{defconst}, etc.")
26174 (license license:gpl3+))))
26176 (define-public emacs-frame-purpose
26178 (name "emacs-frame-purpose")
26182 (uri (git-reference
26183 (url "https://github.com/alphapapa/frame-purpose.el")
26187 "0jq2aam1yvccw887ighd1wm2xkvk5bv53ffiz3crcl16a255aj4q"))
26188 (file-name (git-file-name name version))))
26189 (build-system emacs-build-system)
26192 (synopsis "Purpose-specific frames for Emacs")
26193 (description "@code{frame-purpose} makes it easy to open purpose-specific
26194 frames that only show certain buffers, e.g. by buffers’ major mode, their
26195 filename or directory, etc, with custom frame/X-window titles, icons, and
26196 other frame parameters.")
26197 (home-page "https://github.com/alphapapa/frame-purpose.el")
26198 (license license:gpl3+)))
26200 (define-public emacs-arduino-mode
26201 (let ((commit "652c6a328fa8f2db06534d5f231c6b6933be3edc")
26204 (name "emacs-arduino-mode")
26205 (version (git-version "1.3.0" revision commit))
26209 (uri (git-reference
26210 (url "https://repo.or.cz/arduino-mode")
26213 (base32 "16izwrk1dfsa14kylfhsxdwkx76g0jdk0znl1z7cypxh5q9ijy1x"))
26214 (file-name (git-file-name name version))))
26215 (build-system emacs-build-system)
26217 (list emacs-flycheck emacs-spinner))
26218 (synopsis "Emacs major mode for editing Arduino sketches")
26219 (description "This package provides an Emacs major mode for editing
26220 Arduino sketches and Org Babel support.")
26221 (home-page "https://repo.or.cz/arduino-mode")
26222 (license license:gpl3+))))
26224 (define-public emacs-annalist
26226 (name "emacs-annalist")
26230 (uri (git-reference
26231 (url "https://github.com/noctuid/annalist.el")
26235 "1jlb5w4972l8m2aa18q2l6arfpm65g4nk21dn1yi8c9dbpk2g67c"))
26236 (file-name (git-file-name name version))))
26237 (build-system emacs-build-system)
26239 (list emacs-buttercup emacs-lispy emacs-evil))
26242 (modify-phases %standard-phases
26243 (add-before 'check 'fix-makefile
26245 (substitute* "Makefile"
26246 (("cask exec ") ""))
26249 #:test-command '("make" "test")))
26250 (home-page "https://github.com/noctuid/annalist.el")
26251 (synopsis "Record and display information with Org headings and tables")
26252 (description "This package allows for keybindings, settings, hooks, and
26253 advice to be recorded and displayed.")
26254 (license license:gpl3+)))
26256 (define-public emacs-general
26257 (let ((commit "a0b17d207badf462311b2eef7c065b884462cb7c")
26260 (name "emacs-general")
26261 (version (git-version "0" revision commit))
26265 (uri (git-reference
26266 (url "https://github.com/noctuid/general.el")
26269 (base32 "0wn5rk3gkimdklip392mnjrmkymgrb7q9skifi03cbpjam1anzvv"))
26270 (file-name (git-file-name name version))))
26271 (build-system emacs-build-system)
26273 (list emacs-buttercup emacs-evil emacs-which-key emacs-use-package))
26276 #:test-command '("buttercup" "-L" "test/test-general.el")))
26277 (home-page "https://github.com/noctuid/general.el")
26278 (synopsis "More convenient key definitions in emacs")
26279 (description "@code{general.el} provides a more convenient method for
26280 binding keys in emacs (for both evil and non-evil users). Like
26281 @code{use-package}, which provides a convenient, unified interface for
26282 managing packages, @code{general.el} is intended to provide a convenient,
26283 unified interface for key definitions. While this package does implement some
26284 completely new functionality (such as the ability to make vim-style
26285 keybindings under non-prefix keys with an optional timeout), its primary
26286 purpose is to build on existing functionality to make key definition more
26287 clear and concise. @code{general-define-key} is user-extensible and supports
26288 defining multiple keys in multiple keymaps at once, implicitly wrapping key
26289 strings with (@code{kbd ...}), using named prefix key sequences (like the
26290 leader key in vim), and much more.")
26291 (license license:gpl3+))))
26293 (define-public emacs-tldr
26294 (let ((commit "7203d1be3dcbf12131846ffe06601933fa874d74"))
26296 (name "emacs-tldr")
26297 (version (git-version "0" "1" commit))
26298 (home-page "https://github.com/kuanyui/tldr.el")
26301 (uri (git-reference
26302 (url (string-append home-page ".git"))
26306 "1bw6la463l2yfm7rp76ga4makfy4kpxgwi7ni5gxk31w11g26ryk"))
26307 (file-name (git-file-name name version))))
26308 (build-system emacs-build-system)
26310 (list emacs-request))
26311 (synopsis "Simplified and community-driven man pages for Emacs")
26312 (description "@code{emacs-tldr} allows the user to access tldr pages
26313 from within emacs. The @code{tldr} pages are a community effort to simplify
26314 the man pages with practical examples.")
26315 (license license:wtfpl2))))
26317 (define-public emacs-window-layout
26319 (name "emacs-window-layout")
26321 (home-page "https://github.com/kiwanami/emacs-window-layout")
26324 (uri (git-reference
26326 (commit (string-append "v" version))))
26329 "0wgqi8r844lbx52fn6az8c1n8m681rp6dkfzd54wmdk1ka7zmvv6"))
26330 (file-name (git-file-name name version))))
26331 (build-system emacs-build-system)
26332 (synopsis "Simple window layout management framework for emacs")
26333 (description "A window-layout management library that can split a frame
26334 or a window into some windows according to a layout recipe.")
26335 (license license:gpl3+)))
26337 (define-public emacs-e2wm
26339 (name "emacs-e2wm")
26341 (home-page "https://github.com/kiwanami/emacs-window-manager")
26344 (uri (git-reference
26346 (commit (string-append "v" version))))
26349 "12midsrx07pdrsr1qbl2rpi7xyhxqx08bkz7n7gf8vsmqkpfp56s"))
26350 (file-name (git-file-name name version))))
26351 (build-system emacs-build-system)
26353 (list emacs-window-layout))
26354 (synopsis "Equilibrium Emacs Window Manager")
26355 (description "E2WM is a window manager for Emacs. It enables to
26356 customize the place of pop-up window, how the windows are split, how the
26357 buffers are located in the windows, keybinds to manipulate windows and
26358 buffers, etc. It also has plug-ins to help your Emacs life.")
26359 (license license:gpl3+)))
26361 (define-public emacs-ctable
26362 ;; Latest release is not tagged. Use commit matching version bump.
26363 (let ((commit "04dbcddeba1da1f39e885bc0d36240ff37d829e9")
26366 (name "emacs-ctable")
26368 (home-page "https://github.com/kiwanami/emacs-ctable")
26371 (uri (git-reference
26376 "16yrx1z44xs24z2a0gwzf1xhhks1wrzafc5ihf6lbw843rq2jar0"))
26377 (file-name (git-file-name name version))))
26378 (build-system emacs-build-system)
26380 ;; XXX: The following file does not compile. It is not useful, so
26382 (list #:exclude #~(cons "^test-ctable\\.el" %default-exclude)))
26383 (synopsis "Table component for Emacs Lisp")
26384 (description "This program is a table component for Emacs Lisp. Other
26385 programs can use this table component for the application UI.")
26386 (license license:gpl3+))))
26388 (define-public emacs-leetcode
26389 (let ((commit "8624496af9e105c3e07d88844b37ede87540d604")
26392 (name "emacs-leetcode")
26393 (version (git-version "0" "1" commit))
26394 (home-page "https://github.com/ginqi7/leetcode-emacs")
26397 (uri (git-reference
26398 (url "https://github.com/ginqi7/leetcode-emacs")
26402 "11pp7ydlmwrv7djf9mwk4xzn295xbmdnj5x13bfj5yjpjr89p531"))
26403 (file-name (git-file-name name version))))
26404 (build-system emacs-build-system)
26406 (list emacs-names emacs-ctable))
26407 (synopsis "Solve and submit LeetCode problems from within Emacs")
26408 (description "This package provides an Emacs interface to LeetCode
26409 allowing users to log in and solve problems of their choice using Emacs.")
26410 (license license:unlicense))))
26412 (define-public emacs-epc
26413 (let ((commit "e1bfa5ca163273859336e3cc89b4b6460f7f8cda"))
26416 (version (git-version "0.1.1" "1" commit))
26417 (home-page "https://github.com/kiwanami/emacs-epc")
26420 (uri (git-reference
26425 "15nkrjgi64f829isfd6xrhl4zw8jirr8pkas7nisrbk1av868hx0"))
26426 (file-name (git-file-name name version))))
26427 (build-system emacs-build-system)
26429 (list emacs-deferred emacs-ctable))
26430 (synopsis "RPC stack for Emacs Lisp")
26431 (description "This program is an asynchronous RPC stack for Emacs.
26432 Using this RPC stack, Emacs can communicate with the peer process
26433 smoothly. Because the protocol employs S-expression encoding and consists of
26434 asynchronous communications, the RPC response is fairly good.")
26435 (license license:gpl3+))))
26437 (define-public emacs-edbi
26438 (let ((commit "6f50aaf4bde75255221f2292c7a4ad3fa9d918c0"))
26440 (name "emacs-edbi")
26441 (version (git-version "0.1.3" "1" commit))
26442 (home-page "https://github.com/kiwanami/emacs-edbi")
26445 (uri (git-reference
26450 "0x0igyvdcm4863n7zndvcv6wgzwgn7324cbfjja6xd7r0k936zdy"))
26451 (file-name (git-file-name name version))))
26452 (build-system emacs-build-system)
26455 perl-rpc-epc-service
26457 ;; TODO: Adding support for perl-dbd-mysql and others would
26458 ;; dramatically increase the closure size. Make several packages?
26461 (list emacs-e2wm emacs-epc))
26463 `(#:include '("\\.el$" "\\.pl$")
26465 (modify-phases %standard-phases
26466 (add-after 'unpack 'patch-path
26467 (lambda* (#:key inputs #:allow-other-keys)
26468 (let ((perl (assoc-ref inputs "perl")))
26469 (substitute* "edbi.el"
26470 (("\"perl\"") (string-append "\"" perl "/bin/perl\"")))
26472 (add-after 'wrap 'wrap-edbi-bridge
26473 (lambda* (#:key inputs outputs #:allow-other-keys)
26474 (let* ((out (assoc-ref outputs "out"))
26475 (bridge (string-append (elpa-directory out)
26476 "/edbi-bridge.pl")))
26477 (chmod bridge #o555)
26478 (wrap-program bridge
26479 `("PERL5LIB" ":" prefix (,(getenv "PERL5LIB")))))
26481 (synopsis "Database Interface for Emacs Lisp")
26482 (description "This program connects the database server through Perl's
26483 DBI, and provides DB-accessing API and the simple management UI.")
26484 (license license:gpl3+))))
26486 (define-public emacs-edbi-sqlite
26487 (let ((commit "52cb9ca1af7691b592f2cfd2f007847e7a4ccd5f"))
26489 (name "emacs-edbi-sqlite")
26490 (version (git-version "0.1.1" "1" commit))
26491 (home-page "https://github.com/proofit404/edbi-sqlite")
26494 (uri (git-reference
26499 "1vll81386fx90lq5sy4rlxcik6mvw7zx5cc51f0yaca9bkcckp51"))
26500 (file-name (git-file-name name version))))
26501 (build-system emacs-build-system)
26504 (synopsis "Open SQLite files in Emacs")
26505 (description "This package is a convenience wrapper for @command{edbi}
26506 to open SQLite databases.")
26507 (license license:gpl3+))))
26509 (define-public emacs-nice-citation
26510 (let ((commit "1013b56d9d1495a335f40a5f76203034dc5fa0ea")
26513 (name "emacs-nice-citation")
26514 (version (git-version "0.0.2" revision commit))
26518 (uri (git-reference
26519 (url "https://github.com/damiencollard/nice-citation")
26522 (base32 "00xqr7haca5vd0bzd043lc6x4fjb903z96frz9b8cbd7spp63z7q"))
26523 (file-name (git-file-name name version))))
26524 (build-system emacs-build-system)
26525 (home-page "https://github.com/damiencollard/nice-citation")
26526 (synopsis "Depth-colored citations for Gnus")
26528 "This package replaces the traditional chevron citation marks @samp{>}
26529 with a Unicode vertical bar with the same color as the text it is quoting.
26531 It is purely presentation: the underlying text is unchanged. In particular,
26532 if you send a message containing a citation, it will contain the traditional
26534 (license license:gpl3+))))
26536 (define-public emacs-nix-mode
26538 (name "emacs-nix-mode")
26543 (uri (git-reference
26544 (url "https://github.com/NixOS/nix-mode")
26545 (commit (string-append "v" version))))
26546 (file-name (git-file-name name version))
26548 (base32 "1xvrnpk7cnjm55ja6j7bdnszkzj914gmyzb12r89jh0z25r09crq"))))
26549 (build-system emacs-build-system)
26551 (list emacs-company emacs-json-mode emacs-magit emacs-mmm-mode))
26552 (home-page "https://github.com/NixOS/nix-mode")
26553 (synopsis "Emacs major mode for editing Nix expressions")
26554 (description "@code{nixos-mode} provides an Emacs major mode for editing
26555 Nix expressions. It supports syntax highlighting, indenting and refilling of
26557 (license license:lgpl2.1+)))
26559 (define-public emacs-libmpdel
26561 (name "emacs-libmpdel")
26565 (uri (git-reference
26566 (url "https://github.com/mpdel/libmpdel")
26567 (commit (string-append "v" version))))
26568 (file-name (git-file-name name version))
26571 "03bavca89cf7dsjmg7hb48qnvca41ndiij33iw5yjjhbq1zyj8r4"))))
26572 (build-system emacs-build-system)
26576 #:test-command #~(list "ert-runner")))
26578 (list emacs-ert-runner))
26579 (home-page "https://github.com/mpdel/libmpdel")
26580 (synopsis "Emacs library to communicate with Music Player Daemon (MPD)")
26582 "LibMPDel is an Emacs library client to communicate with Music Player
26583 Daemon (MPD), a flexible, powerful, server-side application for playing
26585 (license license:gpl3+)))
26587 (define-public emacs-mpdel
26589 (name "emacs-mpdel")
26594 (uri (git-reference
26595 (url "https://github.com/mpdel/mpdel")
26596 (commit (string-append "v" version))))
26597 (file-name (git-file-name name version))
26600 "1wg48z0g6qqsd38r2ydba8dp7cq72cnkzshmhj6900xak6f5ywfd"))))
26601 (build-system emacs-build-system)
26603 (list emacs-libmpdel emacs-navigel))
26604 (home-page "https://gitea.petton.fr/mpdel/mpdel")
26605 (synopsis "Emacs user interface for Music Player Daemon (MPD)")
26607 "MPDel provides an Emacs user interface to control playback (play, pause,
26608 next, volume) and display and control the current playlist as well as your
26609 stored playlists.")
26610 (license license:gpl3+)))
26612 (define-public emacs-navigel
26614 (name "emacs-navigel")
26618 (uri (git-reference
26619 (url "https://github.com/DamienCassou/navigel")
26620 (commit (string-append "v" version))))
26621 (file-name (git-file-name name version))
26624 "0v9f7wb6yghds3hjj8x5di6gfa8n5kjwhav7la1ca2zwgs2c1a9p"))))
26625 (build-system emacs-build-system)
26629 #:test-command #~(list "ert-runner")))
26631 (list emacs-ert-runner))
26633 (list emacs-tablist))
26634 (home-page "https://github.com/DamienCassou/navigel")
26635 (synopsis "Emacs library for creating tabulated-list based user-interfaces")
26637 "The navigel package is a library that makes it simpler for Emacs Lisp
26638 developers to define user-interfaces based on tablists (also known as
26639 tabulated-lists).")
26640 (license license:gpl3+)))
26642 (define-public emacs-eat
26649 (uri (git-reference
26650 (url "https://codeberg.org/akib/emacs-eat")
26651 (commit (string-append "v" version))))
26652 (file-name (git-file-name name version))
26655 "0zs1fwbapgsap8vai97f1inginb896gl15kyjm521nvaywk4rc12"))
26656 (modules '((guix build utils)))
26659 ;; Remove generated terminfo database.
26660 (delete-file-recursively "terminfo")))))
26661 (build-system emacs-build-system)
26665 #:include #~(cons* "^term/"
26671 #~(modify-phases %standard-phases
26672 (add-before 'install 'build-info
26674 (invoke "make" "info")))
26675 (add-before 'install 'build-terminfo-database
26677 (invoke "make" "terminfo"))))))
26679 (list ncurses texinfo))
26680 (home-page "https://codeberg.org/akib/emacs-eat")
26681 (synopsis "Terminal emulator in Emacs")
26683 "Eat (Emulate A Terminal) is a terminal emulator in Emacs, written in
26684 pure Elisp. It has features like complete mouse support and shell
26686 (license license:gpl3+)))
26688 (define-public emacs-vterm
26689 (let ((commit "e19dc2bb9859a75616bf068c341a540d0d329e4d"))
26691 (name "emacs-vterm")
26695 (uri (git-reference
26696 (url "https://github.com/akermu/emacs-libvterm")
26698 (file-name (git-file-name name version))
26701 "0iqlzpy83ra6xz406fmddfj72bmkdb5b1j59m1dbxf3wxn55320d"))))
26702 (build-system emacs-build-system)
26704 `(#:modules ((guix build emacs-build-system)
26705 ((guix build cmake-build-system) #:prefix cmake:)
26706 (guix build emacs-utils)
26707 (guix build utils))
26708 #:imported-modules (,@%emacs-build-system-modules
26709 (guix build cmake-build-system))
26711 (modify-phases %standard-phases
26712 (add-after 'unpack 'substitute-vterm-module-path
26713 (lambda* (#:key outputs #:allow-other-keys)
26714 (chmod "vterm.el" #o644)
26715 (emacs-substitute-sexps "vterm.el"
26716 ("(require 'vterm-module nil t)"
26718 ,(string-append (assoc-ref outputs "out")
26719 "/lib/vterm-module.so"))))))
26720 (add-after 'build 'configure
26722 (lambda* (#:key outputs #:allow-other-keys)
26723 ((assoc-ref cmake:%standard-phases 'configure)
26725 #:out-of-source? #f
26726 #:configure-flags '("-DUSE_SYSTEM_LIBVTERM=ON"))))
26727 (add-after 'configure 'make
26729 (lambda* (#:key (make-flags '()) outputs #:allow-other-keys)
26730 ;; Compile the shared object file.
26731 (apply invoke "make" "all" make-flags)
26732 ;; Move the file into /lib.
26735 (string-append (assoc-ref outputs "out") "/lib")))))
26738 (list cmake-minimal libtool libvterm))
26739 (home-page "https://github.com/akermu/emacs-libvterm")
26740 (synopsis "Emacs libvterm integration")
26741 (description "This package implements a bridge to @code{libvterm} to
26742 display a terminal in an Emacs buffer.")
26743 (license license:gpl3+))))
26745 (define-public emacs-vterm-toggle
26746 ;; There have been no releases.
26747 (let ((commit "d10239b7bb89b78dddb82f66ac2286bc0b02747b")
26750 (name "emacs-vterm-toggle")
26751 (version (git-version "0.0.4" revision commit))
26755 (uri (git-reference
26756 (url "https://github.com/jixiuf/vterm-toggle")
26758 (file-name (git-file-name name version))
26760 (base32 "0r9n23wg9cfy10h5f9zqr8jpkvw34f9rylri3nxq870awjab7rqi"))))
26761 (build-system emacs-build-system)
26762 (propagated-inputs (list emacs-vterm))
26763 (home-page "https://github.com/jixiuf/vterm-toggle")
26764 (synopsis "Toggle between a vterm buffer and other buffers")
26766 "This package provides a DWIM way to switch from an Emacs buffer to
26767 a vterm buffer and back again.")
26768 (license license:gpl3+))))
26770 (define-public emacs-multi-vterm
26771 (let ((commit "a3df7218c1ecadef779e2c47815201052283f9ea")
26774 (name "emacs-multi-vterm")
26775 (version (git-version "1.0" revision commit))
26778 (uri (git-reference
26779 (url "https://github.com/suonlight/multi-vterm")
26781 (file-name (git-file-name name version))
26784 "0z6321994c4c8f5iya240pzvhirci9idlc110wjjwsm4pzdrrppj"))))
26785 (build-system emacs-build-system)
26786 (propagated-inputs (list emacs-vterm))
26787 (home-page "https://github.com/suonlight/multi-vterm/")
26788 (synopsis "Manage multiple vterm buffers in Emacs")
26790 "This package provides an Emacs library to manage vterm buffers.")
26791 (license license:gpl3+))))
26793 (define-public emacs-simple-mpc
26794 ;; There have been no releases.
26795 (let ((commit "bee8520e81292b4c7353e45b193f9a13b482f5b2")
26798 (name "emacs-simple-mpc")
26799 (version (git-version "0" revision commit))
26803 (uri (git-reference
26804 (url "https://github.com/jorenvo/simple-mpc")
26806 (file-name (git-file-name name version))
26809 "1ja06pv007cmzjjgka95jlg31k7d29jrih1yxyblsxv85s9sg21q"))))
26810 (build-system emacs-build-system)
26811 (propagated-inputs (list emacs-s))
26812 (home-page "https://github.com/jorenvo/simple-mpc")
26813 (synopsis "Simple Emacs frontend to mpc")
26814 (description "This package provides an Emacs major mode which acts as a
26815 front end to mpc, a client for the @dfn{Music Player Daemon} (MPD).")
26816 (license license:gpl3+))))
26818 (define-public emacs-mkmcc-gnuplot-mode
26820 (name "emacs-mkmcc-gnuplot-mode")
26825 (uri (git-reference
26826 (url "https://github.com/mkmcc/gnuplot-mode")
26827 (commit "601f6392986f0cba332c87678d31ae0d0a496ce7")))
26828 (file-name (git-file-name name version))
26831 "14f0yh1rjqc3337j4sbqzfb7pjim2c8a7wk1a73xkrdkmjn82vgb"))))
26832 (build-system emacs-build-system)
26833 (home-page "https://mkmcc.github.io/software/gnuplot-mode.html")
26834 (synopsis "Minimal emacs major mode for editing gnuplot scripts")
26835 (description "@code{emacs-mkmcc-gnuplot-mode} is a minimal emacs major
26836 mode for editing gnuplot scripts. It provides syntax highlighting,
26837 indentation and a command to plot the file.")
26838 (license license:gpl3+)))
26840 (define-public emacs-cmake-font-lock
26841 ;; Upstream does not tag commits. The commit hash below matches version
26843 (let ((commit "0d6111b36a66013aa9b452e664c93308df3b07e1"))
26845 (name "emacs-cmake-font-lock")
26849 (uri (git-reference
26850 (url "https://github.com/Lindydancer/cmake-font-lock")
26852 (file-name (git-file-name name version))
26855 "12ga8ri7v9r5y46pghk80ww27i7nhbrg0r3s2ina42drlkkliqj4"))))
26856 (build-system emacs-build-system)
26858 (list emacs-faceup))
26860 (list #:include #~(cons "^admin\\/" %default-include)))
26861 (home-page "https://github.com/Lindydancer/cmake-font-lock")
26862 (synopsis "Advanced type-aware syntax-highlighting for CMake")
26863 (description "This package highlights function arguments in CMake
26864 according to their use.")
26865 (license license:gpl3+))))
26867 (define-public emacs-detached
26869 (name "emacs-detached")
26873 (uri (git-reference
26874 (url "https://git.sr.ht/~niklaseklund/detached.el")
26876 (file-name (git-file-name name version))
26879 "0dvvyqc0nw9has54vps10f5iv831cb29vqvbvx0m2djv9pacqp17"))))
26883 #:test-command #~(list "ert-runner")
26885 #~(modify-phases %standard-phases
26886 (add-after 'unpack 'configure
26887 (lambda* (#:key inputs #:allow-other-keys)
26888 (emacs-substitute-variables "detached.el"
26889 ("detached-dtach-program"
26890 (search-input-file inputs "/bin/dtach"))
26891 ("detached-shell-program"
26892 (search-input-file inputs "/bin/bash"))))))))
26893 (build-system emacs-build-system)
26894 (native-inputs (list emacs-ert-runner))
26895 (inputs (list dtach))
26896 (home-page "https://git.sr.ht/~niklaseklund/detached.el")
26897 (synopsis "Launch and manage detached processes from Emacs")
26899 "The Detached package allows users to run processes detached from Emacs.
26900 It provides integration with multiple built-in modes, as well as providing an
26901 interface to attach and interact with the processes.")
26902 (license license:gpl3+)))
26904 (define-public emacs-dtache
26905 (deprecated-package "emacs-dtache" emacs-detached))
26907 (define-public emacs-dtrt-indent
26909 (name "emacs-dtrt-indent")
26913 (uri (git-reference
26914 (url "https://github.com/jscheid/dtrt-indent")
26916 (file-name (git-file-name name version))
26919 "16g4bv2py423l19n0kaz18a41wk5fsrpnqzifdss6amqh0dqyvmf"))))
26920 (build-system emacs-build-system)
26921 (home-page "https://github.com/jscheid/dtrt-indent")
26922 (synopsis "Minor mode that guesses the indentation offset")
26923 (description "This package provides a minor mode that guesses the
26924 indentation offset originally used for creating source code files and
26925 transparently adjusts the corresponding settings in Emacs, making it more
26926 convenient to edit foreign files.")
26927 (license license:gpl2+)))
26929 (define-public emacs-repo
26931 (name "emacs-repo")
26935 (uri (git-reference
26936 (url "https://github.com/canatella/repo-el")
26938 (file-name (git-file-name name version))
26941 "0jgiawdnzjlrpx2j1y6djwbqncdpmyfd31q1qf1890049y8ppxnb"))))
26942 (build-system emacs-build-system)
26944 (list emacs-el-mock emacs-ert-runner))
26946 (list emacs-f emacs-magit))
26947 (home-page "https://github.com/canatella/repo-el")
26948 (synopsis "Emacs interface for the Google Repo tool")
26949 (description "This package provides integration of the Google Repo tool
26950 with emacs. It displays the output of the @code{repo status} command in a
26951 buffer and launches Magit from the status buffer for the project at point.")
26952 (license license:gpl3+)))
26954 (define-public emacs-repology
26956 (name "emacs-repology")
26961 (uri (string-append "https://elpa.gnu.org/packages/"
26962 "repology-" version ".tar"))
26964 (base32 "1ngx23b7dilyps20nznrrn867kbxyn6nryf4p1sy5m576hkw18kn"))))
26965 (build-system emacs-build-system)
26970 #~(list "emacs" "-Q" "-batch"
26971 "-l" "repology-tests.el"
26972 "-f" "ert-run-tests-batch-and-exit")))
26973 (home-page "https://elpa.gnu.org/packages/repology.html")
26974 (synopsis "Repology API access via Elisp")
26976 "This package provides tools to query Repology API (see
26977 @url{https://repology.org/api}), process results, and display them.")
26978 (license license:gpl3+)))
26980 (define-public emacs-alect-themes
26982 (name "emacs-alect-themes")
26987 (uri (git-reference
26988 (url "https://github.com/alezost/alect-themes")
26989 (commit (string-append "v" version))))
26990 (file-name (git-file-name name version))
26992 (base32 "190clnm5x4hpzrq2wp18vxg6614ly3ciyv0y1sm9rfr9w9z5i0ya"))))
26993 (build-system emacs-build-system)
26994 (home-page "https://github.com/alezost/alect-themes")
26995 (synopsis "Low contrast, light, dark and black color theme for Emacs")
26996 (description "@code{emacs-alect-themes} provides configurable light, dark
26997 and black color themes for Emacs. The themes are intended to be used with
26999 (license license:gpl3+)))
27001 (define-public emacs-google-c-style
27002 (let ((commit "6271f3f473ceb3a7fef99388a3040903b1a145f1")
27005 (name "emacs-google-c-style")
27006 (version (git-version "0.1" revision commit))
27009 (uri (git-reference
27010 (url "https://github.com/google/styleguide")
27012 (file-name (git-file-name name version))
27015 "1jghyyasdl15c4gaqaxmdn43am63k6bykn5ab83f1ahv9zi1krxk"))))
27016 (build-system emacs-build-system)
27017 (home-page "https://github.com/google/styleguide")
27018 (synopsis "Emacs settings file for Google C/C++ style")
27019 (description "@code{emacs-google-c-style} provides an Emacs settings
27020 file for Google C and C++ style.")
27021 (license license:gpl1+))))
27023 (define-public emacs-redshank
27024 (let ((commit "f98e68f532e622bcd464292ca4a9cf5fbea14ebb")
27027 (name "emacs-redshank")
27028 (version (git-version "0.1" revision commit))
27031 (uri (git-reference
27032 (url "http://www.foldr.org/~michaelw/projects/redshank.git")
27034 (file-name (git-file-name name version))
27037 "1jdkgvd5xy9hl5q611jwah2n05abjp7qcy9sj4k1z11x0ii62b6p"))))
27038 (build-system emacs-build-system)
27040 (list emacs-paredit))
27041 (home-page "http://www.foldr.org/~michaelw/emacs/redshank/")
27042 (synopsis "Common Lisp Editing Extensions (for Emacs)")
27043 (description "Redshank is a collection of code-wrangling Emacs macros
27044 mostly geared towards Common Lisp, but some are useful for other Lisp
27045 dialects, too. Redshank's code transformations aim to be expression-based (as
27046 opposed to character-based).")
27047 (license license:gpl1+))))
27049 (define-public emacs-disk-usage
27051 (name "emacs-disk-usage")
27056 (uri (git-reference
27057 (url "https://gitlab.com/Ambrevar/emacs-disk-usage")
27059 (file-name (git-file-name name version))
27062 "0hv2gsd8k5fbjgckgiyisq4rn1i7y4rchbjy8kmixjv6mx563bll"))))
27063 (build-system emacs-build-system)
27064 (home-page "https://gitlab.com/Ambrevar/emacs-disk-usage")
27065 (synopsis "Sort and browse disk usage listings with Emacs")
27066 (description "Disk Usage is a file system analyzer: it offers a tabulated
27067 view of file listings sorted by size. Directory sizes are computed
27068 recursively. The results are cached for speed.")
27069 (license license:gpl3+)))
27071 (define-public emacs-orgit
27073 (name "emacs-orgit")
27075 (home-page "https://github.com/magit/orgit")
27078 (uri (git-reference
27080 (commit (string-append "v" version))))
27081 (file-name (git-file-name name version))
27084 "1hjfsj12qx06m8ji4l2sg502a55sabar4h6c2b2i9nmp1xf5889l"))))
27085 (build-system emacs-build-system)
27087 (list emacs-dash emacs-magit))
27088 (synopsis "Support for Org links to Magit buffers")
27089 (description "This package defines several Org link types, which can be
27090 used to link to certain Magit buffers. Use the command
27091 @command{org-store-link} while such a buffer is current to store a link.
27092 Later you can insert it into an Org buffer using the command
27093 @code{org-insert-link}.")
27094 (license license:gpl3+)))
27096 (define-public emacs-amx
27103 (uri (git-reference
27104 (url "https://github.com/DarwinAwardWinner/amx")
27105 (commit (string-append "v" version))))
27106 (file-name (git-file-name name version))
27108 (base32 "0h1cxqqf0hixh25j679r57bq9dv0b20icf268wbnsim5xp88ngf8"))))
27109 (build-system emacs-build-system)
27112 (home-page "https://github.com/DarwinAwardWinner/amx")
27113 (synopsis "Alternative M-x interface for Emacs")
27114 (description "Amx is an alternative interface for M-x in Emacs. It
27115 provides several enhancements over the ordinary
27116 @code{execute-extended-command}, such as prioritizing your most-used commands
27117 in the completion list and showing keyboard shortcuts, and it supports several
27118 completion systems for selecting commands, such as Ido and Ivy.")
27119 (license license:gpl3+)))
27121 (define-public emacs-lorem-ipsum
27122 (let ((commit "4b39f6fed455d67f635b3837cf5668bf74d0f6cd"))
27124 (name "emacs-lorem-ipsum")
27125 (version (git-version "0.2" "1" commit))
27126 (home-page "https://github.com/jschaf/emacs-lorem-ipsum/")
27129 (uri (git-reference
27132 (file-name (git-file-name name version))
27135 "0a3b18p3vdjci89prsgdzjnfxsl8p67vjhf8ai4qdng7zvh50lir"))))
27136 (build-system emacs-build-system)
27137 (synopsis "Insert dummy pseudo Latin text in Emacs")
27138 (description "This package provides convenience functions to insert
27139 dummy Latin text into a buffer. This can be useful if you need to produce
27140 paragraphs or pages of text for testing purposes.")
27141 (license license:gpl3+))))
27143 (define-public emacs-lisp-extra-font-lock
27144 (let ((commit "4605eccbe1a7fcbd3cacf5b71249435413b4db4f"))
27146 (name "emacs-lisp-extra-font-lock")
27147 (version (git-version "0.0.6" "1" commit))
27148 (home-page "https://github.com/Lindydancer/lisp-extra-font-lock")
27151 (uri (git-reference
27154 (file-name (git-file-name name version))
27157 "152vcp3mdlv33jf5va4rinl1d0k960gnfhbrqqrafazgx9j3ya8w"))))
27158 (build-system emacs-build-system)
27159 (synopsis "Highlight bound variables and quoted expressions in Emacs")
27160 (description "This package highlight the location where local variables
27161 is created (bound, for example, by let) as well as quoted and backquoted
27162 constant expressions.")
27163 (license license:gpl3+))))
27165 (define-public emacs-docker-tramp
27167 (name "emacs-docker-tramp")
27172 (uri (git-reference
27173 (url "https://github.com/emacs-pe/docker-tramp.el")
27174 (commit (string-append "v" version))))
27175 (file-name (git-file-name name version))
27178 "05966l3af9lg4nlsz6wrq282ipwxh19ggirfyabjrr1syw3v2crn"))))
27179 (build-system emacs-build-system)
27180 (home-page "https://github.com/emacs-pe/docker-tramp.el")
27181 (synopsis "TRAMP integration for docker containers")
27183 "This package provides a TRAMP method for Docker containers.")
27184 (license license:gpl3+)))
27186 (define-public emacs-docker
27188 (name "emacs-docker")
27193 (uri (git-reference
27194 (url "https://github.com/Silex/docker.el")
27196 (file-name (git-file-name name version))
27198 (base32 "1743x2s7ss7h329yayima3pqi62f0qjv56g5y6b7iwk40wpnhv9v"))))
27200 (list emacs-undercover))
27208 (arguments `(#:tests? #false)) ;no tests
27209 (build-system emacs-build-system)
27210 (home-page "https://github.com/Silex/docker.el")
27211 (synopsis "Manage docker from Emacs")
27212 (description "This package provides an Emacs interface for Docker.")
27213 (license license:gpl3+)))
27215 (define-public emacs-dockerfile-mode
27217 (name "emacs-dockerfile-mode")
27222 (uri (git-reference
27223 (url "https://github.com/spotify/dockerfile-mode")
27224 (commit (string-append "v" version))))
27225 (file-name (git-file-name name version))
27228 "0bv19mii4h47jllps72h69nwrlbfvwxgca1cl4cdxvpx0zkr6qx7"))))
27229 (build-system emacs-build-system)
27232 (home-page "https://github.com/spotify/dockerfile-mode")
27233 (synopsis "Major mode for editing Dockerfile")
27235 "This package provides a major mode @code{dockerfile-mode} for use with
27236 the standard @code{Dockerfile} file format.")
27237 (license license:asl2.0)))
27239 (define-public emacs-lsp-mode
27240 (let ((commit "26c4d3e54ad2956623e64132312fe864274d346f")
27243 (name "emacs-lsp-mode")
27244 (version (git-version "8.0.1" revision commit))
27248 (uri (git-reference
27249 (url "https://github.com/emacs-lsp/lsp-mode")
27251 (file-name (git-file-name name version))
27253 (base32 "0klnik69b5y6s2q00vyshxymlg7k4x9x6m7wpsf7z9w12qn27alx"))))
27254 (build-system emacs-build-system)
27256 `(#:emacs ,emacs ;need libxml support
27258 (modify-phases %standard-phases
27259 (add-after 'unpack 'move-clients-libraries
27260 ;; Move all clients libraries at top-level, as is done, e.g., in
27263 (for-each (lambda (f)
27264 (install-file f "."))
27265 (find-files "clients/" "\\.el$"))))
27266 (add-before 'move-clients-libraries 'fix-patch-el-files
27267 ;; /bin/ksh is only used on macOS, which we don't support, so we
27268 ;; don't want to add it as input.
27270 (substitute* '("clients/lsp-csharp.el" "clients/lsp-fsharp.el")
27271 (("/bin/ksh") "ksh")))))))
27277 emacs-markdown-mode
27279 (home-page "https://emacs-lsp.github.io/lsp-mode/")
27280 (synopsis "Emacs client and library for the Language Server Protocol")
27282 "LSP mode is a client and library implementation for the Language
27283 Server Protocol. This mode creates an IDE-like experience by providing
27284 optional integration with other popular Emacs packages like Company, Flycheck,
27286 (license license:gpl3+))))
27288 (define-public emacs-lsp-treemacs
27290 (name "emacs-lsp-treemacs")
27295 (uri (git-reference
27296 (url "https://github.com/emacs-lsp/lsp-treemacs")
27298 (file-name (git-file-name name version))
27300 (base32 "05ivqa5900139jzjhwc3nggwznhm8564dz4ydcxym2ddd63571k0"))))
27301 (build-system emacs-build-system)
27303 (list emacs-lsp-mode emacs-treemacs))
27304 (home-page "https://github.com/emacs-lsp/lsp-treemacs")
27305 (synopsis "Integration between LSP mode and treemacs")
27307 "This package provides integration between LSP mode and treemacs,
27308 and implementation of treeview controls using treemacs as a tree renderer.")
27309 (license license:gpl3+)))
27311 (define-public emacs-dap-mode
27313 (name "emacs-dap-mode")
27318 (uri (git-reference
27319 (url "https://github.com/emacs-lsp/dap-mode")
27321 (file-name (git-file-name name version))
27323 (base32 "1zczmcv8562lachkvcwy6njn7zkgny08iznpmrx821wr8mh52wnn"))))
27324 (build-system emacs-build-system)
27326 (list emacs-bui emacs-lsp-mode emacs-posframe emacs-lsp-treemacs))
27327 (home-page "https://emacs-lsp.github.io/dap-mode")
27328 (synopsis "Emacs client/library for Debug Adapter Protocol")
27330 "Dap mode is an Emacs client/library for Debug Adapter
27331 Protocol (DAP), a wire protocol for communication between client and
27332 debug server. It is similar to the LSP but provides integration with
27334 (license license:gpl3+)))
27336 (define-public emacs-bfuture
27338 (name "emacs-bfuture")
27343 (uri (git-reference
27344 (url "https://git.sr.ht/~plattfot/bfuture")
27345 (commit (string-append "v" version))))
27348 "1qflkyr7fafw84mksxs25mka133y8ak8nsga3al29014pshbvzxn"))
27349 (file-name (git-file-name name version))))
27350 (build-system emacs-build-system)
27352 (list #:tests? (not (%current-target-system))
27353 #:test-command #~'("ert-runner")))
27354 (native-inputs (list emacs-ert-runner))
27355 (home-page "https://github.com/plattfot/bfuture.el")
27356 (synopsis "Basic future concept for Emacs with Tramp support")
27358 "This package provides basic functions for spawning processes asynchronous in
27359 Emacs and retrieving the output. It is similar to @code{emacs-pfuture} except
27360 that this works over Tramp but the feature set is more limited. For example,
27361 it cannot tell stdout and stderr apart.")
27362 (license license:gpl3+)))
27364 (define-public emacs-pfuture
27366 (name "emacs-pfuture")
27371 (uri (git-reference
27372 (url "https://github.com/Alexander-Miller/pfuture")
27374 (file-name (git-file-name name version))
27376 (base32 "0ifasmkfj06fb9whk7gg47fiim0bbwyh3279sd72psqbbxfixddf"))))
27377 (build-system emacs-build-system)
27378 (home-page "https://github.com/Alexander-Miller/pfuture")
27379 (synopsis "Simple wrapper around asynchronous processes for Emacs")
27380 (description "This package provides a simple wrapper around asynchronous
27381 processes for Emacs.")
27382 (license license:gpl3+)))
27384 (define-public emacs-treemacs
27386 (name "emacs-treemacs")
27391 (uri (git-reference
27392 (url "https://github.com/Alexander-Miller/treemacs")
27394 (file-name (git-file-name name version))
27396 (base32 "0l6pbfrkl0v1iyc43vyhchbcfy7cjhinn8pw07aq4ssh6lxil7kp"))))
27397 (build-system emacs-build-system)
27399 (list emacs-ace-window
27407 (list emacs-buttercup emacs-el-mock))
27413 #:test-command #~(list "make" "-C" "../.." "test")
27415 #~(modify-phases %standard-phases
27416 (add-after 'unpack 'fix-makefile
27418 (substitute* "Makefile"
27419 (("@\\$\\(CASK\\) exec ") "")
27420 ;; Guix does not need to prepare dependencies before testing.
27421 (("test: prepare") "test:"))))
27422 (add-after 'fix-makefile 'chdir-elisp
27423 ;; Elisp directory is not in root of the source.
27425 (chdir "src/elisp")))
27426 (add-before 'check 'delete-failing-tests
27427 ;; FIXME: 4 tests out of 254 are failing.
27429 (emacs-batch-edit-file "../../test/treemacs-test.el"
27431 (goto-char (point-min))
27432 (re-search-forward "describe \"treemacs--parent\"")
27433 (beginning-of-line)
27435 (basic-save-buffer)))))
27436 (add-before 'install 'patch-paths
27437 (lambda* (#:key inputs #:allow-other-keys)
27438 (make-file-writable "treemacs-core-utils.el")
27439 (emacs-substitute-variables "treemacs-core-utils.el"
27440 ("treemacs-dir" (string-append #$output "/")))
27441 (make-file-writable "treemacs-icons.el")
27442 (substitute* "treemacs-icons.el"
27444 (string-append (elpa-directory #$output) "/icons/default")))
27445 (make-file-writable "treemacs-customization.el")
27446 (emacs-substitute-variables "treemacs-customization.el"
27447 ("treemacs-python-executable"
27448 (search-input-file inputs "/bin/python3")))
27449 (make-file-writable "treemacs-async.el")
27450 (substitute* "treemacs-async.el"
27452 (string-append (elpa-directory #$output) "/scripts")))))
27453 (add-after 'install 'install-data
27455 (with-directory-excursion "../.." ;treemacs root
27458 (string-append (elpa-directory #$output) "/icons/default"))
27461 (string-append (elpa-directory #$output) "/scripts"))))))))
27462 (home-page "https://github.com/Alexander-Miller/treemacs")
27463 (synopsis "Emacs tree style file explorer")
27465 "Treemacs is a file and project explorer similar to NeoTree or Vim's
27466 NerdTree, but largely inspired by the Project Explorer in Eclipse. It shows
27467 the file system outlines of your projects in a simple tree layout allowing
27468 quick navigation and exploration, while also possessing basic file management
27470 (license license:gpl3+)))
27472 (define-public emacs-treemacs-extra
27474 (inherit emacs-treemacs)
27475 (name "emacs-treemacs-extra")
27477 `(,@(package-propagated-inputs emacs-treemacs)
27478 ("emacs-all-the-icons" ,emacs-all-the-icons)
27479 ("emacs-evil" ,emacs-evil)
27480 ("emacs-magit" ,emacs-magit)
27481 ("emacs-projectile" ,emacs-projectile)
27482 ("emacs-perspective" ,emacs-perspective)
27483 ("emacs-persp-mode" ,emacs-persp-mode)
27486 (substitute-keyword-arguments
27487 (package-arguments emacs-treemacs)
27489 `(modify-phases ,phases
27490 (add-after 'chdir-elisp 'copy-extra
27492 (copy-recursively "../extra" ".")))))))))
27494 (define-public emacs-libyaml
27495 ;; Upstream made no release so far.
27496 (let ((version "0.1")
27498 (commit "961e0d8b9ef47464c049e07be7fcefd3903f8cbc"))
27500 (name "emacs-libyaml")
27501 (version (git-version version revision commit))
27505 (uri (git-reference
27506 (url "https://github.com/syohex/emacs-libyaml")
27508 (file-name (git-file-name name version))
27510 (base32 "1c85583r47yjbpzbjgjzrwzqdlmy229xx9az2r18smcyd9da92c3"))))
27511 (build-system emacs-build-system)
27514 #:tests? #f ;no test
27515 #:modules '((guix build emacs-build-system)
27516 (guix build emacs-utils)
27517 (guix build utils))
27518 #:imported-modules `(,@%emacs-build-system-modules
27519 (guix build gnu-build-system))
27521 #~(modify-phases %standard-phases
27522 (add-after 'unpack 'substitute-libyaml-core-path
27524 (make-file-writable "libyaml.el")
27525 (substitute* "libyaml.el"
27526 (("^\\(require 'libyaml-core\\)")
27527 (string-append "(module-load \"" #$output
27528 "/lib/libyaml-core.so\")")))))
27529 (add-after 'check 'make
27531 (lambda* (#:key (make-flags '()) #:allow-other-keys)
27532 ;; Compile the shared object file.
27533 (apply invoke "make" "all" "CPPFLAGS=" make-flags)
27534 ;; Move the file into /lib.
27535 (install-file "libyaml-core.so"
27536 (string-append #$output "/lib")))))))
27537 (native-inputs (list libyaml))
27538 (home-page "https://github.com/syohex/emacs-libyaml")
27539 (synopsis "Libyaml bindings for Emacs")
27541 "This package implements bindings for LibYAML to be able to parse YAML
27543 (license license:gpl3+))))
27545 (define-public emacs-lsp-java
27547 (name "emacs-lsp-java")
27551 (uri (git-reference
27552 (url "https://github.com/emacs-lsp/lsp-java")
27554 (file-name (git-file-name name version))
27557 "1h0hqgjpk5mbylma1fkva0vx45achf0k7ab2c5y8a2449niww90h"))))
27558 (build-system emacs-build-system)
27560 (list emacs-dap-mode
27562 emacs-markdown-mode
27568 (home-page "https://github.com/emacs-lsp/lsp-java/")
27569 (synopsis "Java support for lsp-mode")
27570 (description "Emacs Java IDE using Eclipse JDT Language Server.")
27571 (license license:gpl3+)))
27573 (define-public emacs-lsp-metals
27575 (name "emacs-lsp-metals")
27579 (uri (git-reference
27580 (url "https://github.com/emacs-lsp/lsp-metals")
27582 (file-name (git-file-name name version))
27585 "0ca5xq1l3lscx36pcdnpy2axgyikjrl18naqr140kr1y500sy37s"))))
27586 (build-system emacs-build-system)
27588 (list emacs-dap-mode emacs-lsp-treemacs emacs-scala-mode))
27589 (home-page "https://github.com/emacs-lsp/lsp-metals")
27590 (synopsis "Scala support for LSP mode")
27591 (description "This package is an Emacs Scala IDE using LSP mode to connect
27593 (license license:gpl3+)))
27595 (define-public emacs-lsp-ui
27597 (name "emacs-lsp-ui")
27601 (uri (git-reference
27602 (url "https://github.com/emacs-lsp/lsp-ui")
27604 (file-name (git-file-name name version))
27607 "1pd5lvjlmd6zq64py21yi5zxhcza9g5q48ngfivv7fi7pf3vsv00"))))
27608 (build-system emacs-build-system)
27610 (list emacs-dash emacs-lsp-mode emacs-markdown-mode emacs-flycheck))
27611 (home-page "https://github.com/emacs-lsp/lsp-ui")
27612 (synopsis "User interface extensions for @code{lsp-mode}")
27614 "@code{LSP-ui} contains several enhancements and integrations for
27615 @code{lsp-mode}, such as visual flychecking, displaying references in-line,
27616 and code peeking.")
27617 (license license:gpl3+)))
27619 (define-public emacs-lsp-lua-emmy
27620 (let ((commit "ab53fb2a8b8942804eb75bab5624fd19f1d360bf"))
27622 (name "emacs-lsp-lua-emmy")
27623 (version (git-version "0.1.0" "1" commit))
27626 (uri (git-reference
27627 (url "https://github.com/phenix3443/lsp-lua-emmy")
27629 (file-name (git-file-name name version))
27632 "0rbizis73n1w5ig07fj1han74chbc1zpbp5bn37rj0gz608aqka8"))))
27633 (build-system emacs-build-system)
27635 (list emacs-lsp-mode))
27636 (home-page "https://github.com/phenix3443/lsp-lua-emmy/")
27637 (synopsis "Lua support in @code{lsp-mode} client for Emacs")
27638 (description "This package provides a Lua language support in
27639 @code{lsp-mode} client for Emacs.")
27640 (license license:gpl3+))))
27642 (define-public emacs-lsp-ivy
27644 (name "emacs-lsp-ivy")
27649 (uri (git-reference
27650 (url "https://github.com/emacs-lsp/lsp-ivy")
27652 (file-name (git-file-name name version))
27654 (base32 "0nb9ypa8hyx7i38rbywh8hn2i5f9l2l567hvdr9767fk279yr97n"))))
27655 (build-system emacs-build-system)
27657 (list emacs-dash emacs-ivy emacs-lsp-mode))
27658 (home-page "https://github.com/emacs-lsp/lsp-ivy")
27659 (synopsis "Provide LSP-enhanced completion for symbols")
27661 "This package enhances @code{ivy} with completion for symbols from
27662 workspaces with a LSP-compliant server running.")
27663 (license license:gpl3+)))
27665 (define-public emacs-helm-lsp
27667 (name "emacs-helm-lsp")
27671 (uri (git-reference
27672 (url "https://github.com/emacs-lsp/helm-lsp")
27674 (file-name (git-file-name name version))
27677 "1vq3qpqm3ndqyvf5bk8qhqcr60x9ykc0ipk2a43rr3yjm4z1b6s9"))))
27678 (build-system emacs-build-system)
27680 (list emacs-helm emacs-lsp-mode emacs-dash))
27681 (home-page "https://github.com/emacs-lsp/helm-lsp")
27682 (synopsis "Provide LSP-enhanced completion for symbols")
27684 "This package enhances @code{helm} with completion for symbols from
27685 workspaces with a LSP-compliant server running.")
27686 (license license:gpl3+)))
27688 (define-public emacs-helm-notmuch
27690 (name "emacs-helm-notmuch")
27692 (home-page "https://github.com/emacs-helm/helm-notmuch/")
27695 (uri (git-reference
27698 (file-name (git-file-name name version))
27701 "1k038dbdpaa411gl4071x19fklhnizhr346plxw23lsnxir9dhqc"))))
27702 (build-system emacs-build-system)
27704 (list emacs-helm emacs-notmuch))
27705 (synopsis "Search emails with Emacs Notmuch and Helm")
27707 "This package can be used to search emails in Emacs, searching result
27708 displays as you type thanks to Helm, though @command{notmuch-search} does the
27710 (license license:gpl3+)))
27712 (define-public emacs-notmuch-maildir
27714 (name "emacs-notmuch-maildir")
27719 (uri (git-reference
27720 (url "https://git.sr.ht/~tarsius/notmuch-maildir")
27721 (commit (string-append "v" version))))
27722 (file-name (git-file-name name version))
27724 (base32 "1fqnx6hhg0cqj82yjpl7llg6vvppc3y8q9k6g67mqr7z3712bw0x"))))
27725 (build-system emacs-build-system)
27727 (list emacs-notmuch))
27728 (home-page "https://git.sr.ht/~tarsius/notmuch-maildir")
27729 (synopsis "Visualize maildirs as a tree")
27731 "This package can visualize maildirs hierarchically in Notmuch's ``hello
27733 (license license:gpl3+)))
27735 (define-public emacs-elmacro
27737 (name "emacs-elmacro")
27739 (home-page "https://github.com/Silex/elmacro")
27742 (uri (git-reference
27745 (file-name (git-file-name name version))
27748 "1x4wnsshf9h10mp51x92vs5rxw5had4gmw6zz4f53czx1ymcv16a"))))
27749 (build-system emacs-build-system)
27751 (list emacs-s emacs-dash))
27752 (synopsis "Convert keyboard macros to Emacs Lisp")
27754 "This package displays keyboard macros or latest interactive commands
27756 (license license:gpl3+)))
27758 (define-public emacs-transient
27760 (name "emacs-transient")
27765 (uri (git-reference
27766 (url "https://github.com/magit/transient")
27767 (commit (string-append "v" version))))
27768 (file-name (git-file-name name version))
27770 (base32 "0c7wbd0j0b802bzdpdkrx2q7wm7b9s56rk554dnadkpywhmdiqwn"))))
27771 (build-system emacs-build-system)
27773 `(#:tests? #f ;no test suite
27775 (modify-phases %standard-phases
27776 (add-after 'unpack 'build-info-manual
27778 (invoke "make" "info")
27779 ;; Move the info file to lisp so that it gets installed by the
27780 ;; emacs-build-system.
27781 (rename-file "docs/transient.info" "lisp/transient.info")))
27782 (add-after 'build-info-manual 'enter-lisp-directory
27784 (chdir "lisp"))))))
27789 (home-page "https://magit.vc/manual/transient")
27790 (synopsis "Transient commands in Emacs")
27791 (description "Taking inspiration from prefix keys and prefix arguments
27792 in Emacs, Transient implements a similar abstraction involving a prefix
27793 command, infix arguments and suffix commands. We could call this abstraction
27794 a \"transient command\", but because it always involves at least two
27795 commands (a prefix and a suffix) we prefer to call it just a \"transient\".")
27796 (license license:gpl3+)))
27798 (define-public emacs-forge
27800 (name "emacs-forge")
27805 (uri (git-reference
27806 (url "https://github.com/magit/forge")
27807 (commit (string-append "v" version))))
27808 (file-name (git-file-name name version))
27810 (base32 "0p1jlq169hpalhzmjm3h4q3x5xr9kdmz0qig8jwfvisyqay5vbih"))))
27811 (build-system emacs-build-system)
27813 `(#:tests? #f ;no tests
27815 (modify-phases %standard-phases
27816 (add-after 'unpack 'build-info-manual
27818 (invoke "make" "info")
27819 ;; Move the info file to lisp so that it gets installed by the
27820 ;; emacs-build-system.
27821 (rename-file "docs/forge.info" "lisp/forge.info")))
27822 (add-after 'build-info-manual 'chdir-lisp
27824 (chdir "lisp"))))))
27834 emacs-markdown-mode
27836 (home-page "https://github.com/magit/forge/")
27837 (synopsis "Access Git forges from Magit")
27838 (description "Work with Git forges, such as Github and Gitlab, from the
27839 comfort of Magit and the rest of Emacs.")
27840 (license license:gpl3+)))
27842 (define-public emacs-matcha
27843 (let ((commit "c7df5cf5cdac9ae369e241342389ccda0205eab9"))
27845 (name "emacs-matcha")
27846 (version (git-version "0.0.1" "1" commit)) ;no upstream release
27849 (uri (git-reference
27850 (url "https://github.com/jojojames/matcha")
27852 (file-name (git-file-name name version))
27855 "1lfnh1glg6al677m7ci0x8g5wjdhjxlfl3nv1f1ppsw4dpnwsj9b"))))
27856 (propagated-inputs (list emacs-hydra))
27857 (build-system emacs-build-system)
27858 (home-page "https://github.com/jojojames/matcha/")
27859 (synopsis "Collection of hydras with a generic interface to launch them")
27860 (description "Matcha provides a collection of transients for various
27861 packages with a consistent way to use them.")
27862 (license license:gpl3+))))
27864 (define-public emacs-undo-propose-el
27865 (let ((commit "f80baee566807d733fbacbab08a897bcd62579c3")
27868 (name "emacs-undo-propose-el")
27869 (version (git-version "3.0.0" revision commit))
27873 (uri (git-reference
27874 (url "https://github.com/jackkamm/undo-propose-el")
27876 (file-name (git-file-name name version))
27879 "00rqz63bhh66q78l646q3w16gydygj8h4d8np0dpbifgzciak90b"))))
27880 (build-system emacs-build-system)
27883 #:test-command '("make" "test")))
27884 (home-page "https://github.com/jackkamm/undo-propose-el")
27885 (synopsis "Simple and safe navigation of @code{undo} history")
27886 (description "This package permits navigation of @code{undo} history in a
27887 temporary buffer, which is read-only save for @code{undo} commands, and
27888 subsequent committal of a chain of @code{undo} commands as a single edit in
27889 the @code{undo} history.")
27890 (license license:gpl3+))))
27892 (define-public emacs-elisp-docstring-mode
27893 (let ((commit "f512e509dd690f65133e55563ebbfd2dede5034f")
27897 (name "emacs-elisp-docstring-mode")
27898 (version (git-version version revision commit))
27902 (uri (git-reference
27903 (url "https://github.com/Fuco1/elisp-docstring-mode")
27905 (file-name (git-file-name name version))
27908 "0al8m75p359h4n82rf0dsl22qfdg9cwwywn5pn7x6gb96c7qrqaa"))))
27909 (build-system emacs-build-system)
27910 (home-page "https://github.com/Fuco1/elisp-docstring-mode")
27911 (synopsis "Major mode for editing Emacs Lisp docstrings")
27912 (description "This package provides font lock and automatic escaping and
27913 unescaping of quotes.")
27914 (license license:gpl3+))))
27916 (define-public emacs-vimrc-mode
27917 (let ((commit "13bc150a870d5d4a95f1111e4740e2b22813c30e")
27921 (name "emacs-vimrc-mode")
27922 (version (git-version version revision commit))
27926 (uri (git-reference
27927 (url "https://github.com/mcandre/vimrc-mode")
27929 (file-name (git-file-name name version))
27932 "0026dqs3hwygk2k2xfra90w5sfnxrfj7l69jz7sq5glavbf340pk"))))
27933 (build-system emacs-build-system)
27934 (home-page "https://github.com/mcandre/vimrc-mode")
27935 (synopsis "Major mode for Vimscript")
27936 (description "This package provides font lock and @code{beginning-} and
27937 @code{end-of-defun} functions for Vimscript files.")
27938 (license license:gpl3+))))
27940 (define-public emacs-flycheck-elm
27941 (let ((revision "0")
27942 (commit "1b60050efd4729bfba548f3e5adbcb58436667cb"))
27944 (name "emacs-flycheck-elm")
27945 (version (git-version "0" revision commit))
27951 (url "https://github.com/bsermons/flycheck-elm")
27953 (file-name (git-file-name name version))
27955 (base32 "1kjms9d2c98ffd1qxs879qhg0n4jzic0r5kni9y4gz3v09ww8zms"))))
27956 (build-system emacs-build-system)
27958 (list emacs-flycheck emacs-let-alist))
27959 (home-page "https://github.com/bsermons/flycheck-elm")
27960 (synopsis "Flycheck support for the Elm language")
27961 (description "Flycheck Elm adds Flycheck support for Elm language.")
27962 (license license:gpl3+))))
27964 (define-public emacs-flycheck-haskell
27965 (let ((commit "32ddff87165a7d3a35e7318bee997b5b4bd41278")
27968 (name "emacs-flycheck-haskell")
27969 (version (git-version "0.8" revision commit))
27973 (uri (git-reference
27974 (url "https://github.com/flycheck/flycheck-haskell")
27976 (file-name (git-file-name name version))
27979 "10pgsbagq6qj4mshq5sypv0q0khck92b30sc793b4g1pfpsxvgjn"))))
27980 (build-system emacs-build-system)
27982 (list emacs-dash emacs-flycheck emacs-haskell-mode emacs-let-alist))
27984 `(#:include '("\\.el$" "\\.hs$")))
27985 (home-page "https://github.com/flycheck/flycheck-haskell")
27986 (synopsis "Flycheck for Haskell")
27987 (description "This package configures syntax-checking for Haskell
27989 (license license:gpl3+))))
27991 (define-public emacs-js2-refactor-el
27992 (let ((commit "d4c40b5fc86d3edd7c6a7d83ac86483ee1cb7a28")
27995 (name "emacs-js2-refactor-el")
27996 (version (git-version "0.9.0" revision commit))
28000 (uri (git-reference
28001 (url "https://github.com/magnars/js2-refactor.el")
28003 (file-name (git-file-name name version))
28006 "08b25y3raz0p98zxk9xdd8nj9shqd6mzrqhbq1gg4cwsmi7h7ly1"))))
28007 (build-system emacs-build-system)
28009 (list emacs-dash emacs-s emacs-js2-mode emacs-yasnippet
28010 emacs-multiple-cursors))
28012 (list emacs-buttercup emacs-espuds))
28013 (home-page "https://github.com/magnars/js2-refactor.el")
28014 (synopsis "JavaScript refactoring in Emacs")
28015 (description "This package provides various refactoring functions for
28017 (license license:gpl3+))))
28019 (define-public emacs-prettier
28020 (let ((commit "e9b73e81d3e1642aec682195f127a42dfb0b5774")
28024 (name "emacs-prettier")
28025 (version (git-version version revision commit))
28029 (uri (git-reference
28030 (url "https://github.com/prettier/prettier-emacs")
28032 (file-name (git-file-name name version))
28035 "0hj4fv3fgc60i6jrsx4a81s5c9fsxxafhhs3q2q1dypsscjci9ph"))))
28036 (build-system emacs-build-system)
28037 (home-page "https://github.com/prettier/prettier-emacs")
28038 (synopsis "Automatic formatting of JavaScript code")
28039 (description "This package integrates Prettier with Emacs, and
28040 provides a minor mode that autoformats the buffer upon saving.")
28041 (license license:expat))))
28043 (define-public emacs-fish-mode
28045 (name "emacs-fish-mode")
28050 (uri (git-reference
28051 (url "https://github.com/wwwjfy/emacs-fish")
28053 (file-name (git-file-name name version))
28056 "1spxxkji9xa930sbwvzyjm8jrqk9ra0xqhivw7zd12a4c56nhna9"))))
28057 (build-system emacs-build-system)
28058 (home-page "https://github.com/wwwjfy/emacs-fish")
28059 (synopsis "Major mode for Fish shell scripts")
28060 (description "This package provides syntax highlighting and indentation
28061 functions for Fish shell scripts.")
28062 (license license:gpl3+)))
28064 (define-public emacs-eshell-up
28065 (let ((commit "9c100bae5c3020e8d9307e4332d3b64e7dc28519")
28069 (name "emacs-eshell-up")
28070 (version (git-version version revision commit))
28074 (uri (git-reference
28075 (url "https://github.com/peterwvj/eshell-up")
28077 (file-name (git-file-name name version))
28080 "00zdbcncjabgj5mp47l1chymx5na18v2g4kj730dgmj3rnl3iz2q"))))
28081 (build-system emacs-build-system)
28082 (home-page "https://github.com/peterwvj/eshell-up")
28083 (synopsis "Quickly go to a parent directory in @code{Eshell}")
28084 (description "This package provides quick navigation to a specific
28085 parent directory using @code{Eshell}.")
28086 (license license:gpl3+))))
28088 (define-public emacs-springboard
28089 ;; Upstream provides no tag. Using the latest commit. Version is extracted
28090 ;; from "Version:" keyword.
28091 (let ((commit "687d1e5898a880878995dc9bffe93b4598366203")
28095 (name "emacs-springboard")
28096 (version (git-version version revision commit))
28100 (uri (git-reference
28101 (url "https://github.com/jwiegley/springboard")
28103 (file-name (git-file-name name version))
28105 (base32 "0fn8c4hqblfjvcpg68kj2dmdjqsdnxddqbzgvakl43zckjg8pi01"))))
28106 (build-system emacs-build-system)
28108 (list emacs-helm emacs-ivy))
28109 (home-page "https://github.com/jwiegley/springboard")
28110 (synopsis "Change the Emacs default directory quickly")
28112 "This Emacs package provides a quick way to change the default
28113 directory for only the next invoked command. The directory selection can be
28114 done using Helm, Ido or Ivy.")
28115 (license license:gpl2+))))
28117 (define-public emacs-tco-el
28118 (let ((commit "482db5313f090b17ed22ccd856f0e141dc75afe6")
28121 (name "emacs-tco-el")
28122 (version (git-version "0.3" revision commit))
28126 (uri (git-reference
28127 (url "https://github.com/Wilfred/tco.el")
28129 (file-name (git-file-name name version))
28132 "1z7xkbrqznk6ni687qqknp8labcyhl8y6576hjfri89fn21385y9"))))
28133 (build-system emacs-build-system)
28137 (list emacs-ert-runner emacs-undercover))
28140 #:test-command '("ert-runner")))
28141 (home-page "https://github.com/Wilfred/tco.el")
28142 (synopsis "Tail-call optimization for Emacs Lisp")
28143 (description "This package provides tail-call optimization for Emacs
28144 Lisp functions that call themselves in tail position.")
28145 (license license:gpl3+))))
28147 (define-public emacs-equake
28148 ;; Upstream provides no tagged releases, but the commit below matches an
28150 (let ((commit "4d6ef75a4d91ded22caad220909518ccb67b7b87"))
28152 (name "emacs-equake")
28157 (uri (git-reference
28158 (url "https://gitlab.com/emacsomancer/equake")
28160 (file-name (git-file-name name version))
28162 (base32 "11xfr71y78idcn461p4pz7b0k01nhz15cyl97bjqq6ii5xhbhvdx"))))
28163 (build-system emacs-build-system)
28166 (home-page "https://gitlab.com/emacsomancer/equake/")
28167 (synopsis "Drop-down console for @code{Eshell} and terminal emulators")
28168 (description "This package provides a Quake-style drop-down console
28169 compatible with Emacs' shell modes.")
28170 (license license:gpl3+))))
28172 (define-public emacs-vdiff
28173 ;; There is no proper tag, but the commit below matches the version bump.
28174 (let ((commit "007e44be19d068fd6b49874b6e9b8df8b1f552bd"))
28176 (name "emacs-vdiff")
28181 (uri (git-reference
28182 (url "https://github.com/justbur/emacs-vdiff")
28184 (file-name (git-file-name name version))
28186 (base32 "197xrwph1llrzjgkhlvagiwdgfp68pb45w5afg89ndahpqc2725s"))))
28187 (build-system emacs-build-system)
28189 (list emacs-hydra))
28192 #:test-command '("emacs" "-Q" "-batch" "-L" "."
28193 "-l" "vdiff-test.el"
28194 "-f" "ert-run-tests-batch-and-exit")))
28195 (home-page "https://github.com/justbur/emacs-vdiff/")
28196 (synopsis "Frontend for diffing based on vimdiff")
28198 "This package permits comparisons of two or three buffers based on diff
28200 (license license:gpl3+))))
28202 (define-public emacs-vdiff-magit
28203 ;; Need to use a more recent commit than the latest release version because
28204 ;; of Magit and Transient
28205 (let ((commit "b100d126c69e5c26a61ae05aa1778bcc4302b597")
28209 (name "emacs-vdiff-magit")
28210 (version (git-version version revision commit))
28214 (uri (git-reference
28215 (url "https://github.com/justbur/emacs-vdiff-magit/")
28217 (file-name (git-file-name name version))
28220 "16cjmrzflf2i1w01973sl944xrfanakba8sb4dpwi79d92xp03xy"))))
28221 (build-system emacs-build-system)
28222 (propagated-inputs (list emacs-vdiff emacs-magit))
28223 (home-page "https://github.com/justbur/emacs-vdiff-magit/")
28224 (synopsis "Frontend for diffing based on vimdiff")
28225 (description "This package permits comparisons of two or three buffers
28226 based on diff output.")
28227 (license license:gpl3+))))
28229 (define-public emacs-all-the-icons-dired
28231 (name "emacs-all-the-icons-dired")
28236 (uri (git-reference
28237 (url "https://github.com/wyuenho/all-the-icons-dired")
28239 (file-name (git-file-name name version))
28242 "1shla7nyhml9m3g81p6yy8k4pdq289gb42900xzfp7zl4qvnm2vy"))))
28243 (build-system emacs-build-system)
28245 (list emacs-all-the-icons))
28246 (home-page "https://github.com/wyuenho/all-the-icons-dired")
28247 (synopsis "Show icons for each file in @code{dired-mode}")
28248 (description "This package allows icons from @file{all-the-icons.el} to
28249 be used in @code{dired-mode}.")
28250 (license license:gpl3+)))
28252 (define-public emacs-all-the-icons-ibuffer
28254 (name "emacs-all-the-icons-ibuffer")
28259 (uri (git-reference
28260 (url "https://github.com/seagle0128/all-the-icons-ibuffer")
28261 (commit (string-append"v" version))))
28262 (file-name (git-file-name name version))
28265 "1c1fkkwzxxa90fd5q5x6xlj48p8rhj4bs7h8wxx41w6wsggk2fm2"))))
28266 (build-system emacs-build-system)
28268 (list emacs-all-the-icons))
28269 (home-page "https://github.com/seagle0128/all-the-icons-ibuffer")
28270 (synopsis "Display icons for all buffers in ibuffer")
28272 "This package uses @code{emacs-all-the-icons} to display icons in Ibuffer
28274 (license license:gpl3+)))
28276 (define-public emacs-exwm-edit
28277 (let ((commit "e1291e311840f1049106fe98cec032a1c75efd2b")
28281 (name "emacs-exwm-edit")
28282 (version (git-version version revision commit))
28286 (uri (git-reference
28287 (url "https://github.com/agzam/exwm-edit/")
28289 (file-name (git-file-name name version))
28292 "031cb8fvv5n30djr9lpl6vz3rl15zykfvjlgkjc8l33a3l5mw8j0"))))
28293 (build-system emacs-build-system)
28296 (home-page "https://github.com/agzam/exwm-edit/")
28297 (synopsis "Open temp buffers for editing text from EXWM buffers")
28298 (description "This package facilitates editing text from EXWM buffers by
28299 generating a temp buffer in which any useful Emacs utilities and modes can be
28301 (license license:gpl3+))))
28303 (define-public emacs-ert-async
28305 (name "emacs-ert-async")
28310 (uri (git-reference
28311 (url "https://github.com/rejeep/ert-async.el")
28312 (commit (string-append "v" version))))
28313 (file-name (git-file-name name version))
28316 "0hn9i405nfhjd1h9vnwj43nxbbz00khrwkjq0acfyxjaz1shfac9"))))
28317 (build-system emacs-build-system)
28318 (home-page "https://github.com/rejeep/ert-async.el")
28319 (synopsis "Async support for ERT")
28320 (description "This package allows ERT to work with asynchronous tests.")
28321 (license license:gpl3+)))
28323 (define-public emacs-prodigy
28325 (name "emacs-prodigy")
28330 (uri (git-reference
28331 (url "https://github.com/rejeep/prodigy.el")
28332 (commit (string-append "v" version))))
28333 (file-name (git-file-name name version))
28336 "04xspdj67nas1ivv0ldlmmkr6v7zd7y3k346pnfgvq8wzqi6x4vz"))))
28337 (build-system emacs-build-system)
28339 (list emacs-dash emacs-f emacs-s))
28341 (list emacs-el-mock emacs-ert-async))
28342 (home-page "https://github.com/rejeep/prodigy.el")
28343 (synopsis "Manage external services from within Emacs")
28344 (description "This package provides a GUI for defining and monitoring services.")
28345 (license license:gpl3+)))
28347 (define-public emacs-prodigy-el
28348 (deprecated-package "emacs-prodigy-el" emacs-prodigy))
28350 (define-public emacs-web-server
28352 (name "emacs-web-server")
28357 (uri (string-append "https://elpa.gnu.org/packages/"
28358 "web-server-" version ".tar"))
28360 (base32 "10lcsl4dg2yr9zjd99gq9jz150wvvh6r5y9pd88l8y9vz16f2lim"))))
28361 (build-system emacs-build-system)
28362 (home-page "https://github.com/eschulte/emacs-web-server/")
28363 (synopsis "Web server with handlers in Emacs Lisp")
28364 (description "This package supports HTTP GET and POST requests with
28365 url-encoded parameters, as well as web sockets.")
28366 (license license:gpl3+)))
28368 (define-public emacs-markdown-preview-mode
28370 (name "emacs-markdown-preview-mode")
28375 (uri (git-reference
28376 (url "https://github.com/ancane/markdown-preview-mode")
28377 (commit (string-append "v" version))))
28378 (file-name (git-file-name name version))
28381 "0a0qskhy6jil583hq3mgbzdsi3m1schzyzrd46yfxdsvqiczg170"))))
28382 (build-system emacs-build-system)
28384 (list emacs-markdown-mode emacs-websocket emacs-web-server))
28385 (arguments '(#:include '("\\.el$" "\\.html$")))
28386 (home-page "https://github.com/ancane/markdown-preview-mode")
28387 (synopsis "Preview Markdown files")
28388 (description "This package provides a minor mode for preview of Markdown
28389 files, and sends rendered Markdown to a web browser.")
28390 (license license:gpl3+)))
28392 (define-public emacs-dotenv-mode
28394 (name "emacs-dotenv-mode")
28399 (uri (git-reference
28400 (url "https://github.com/preetpalS/emacs-dotenv-mode")
28401 (commit (string-append "v" version))))
28402 (file-name (git-file-name name version))
28405 "0ys1czramj3c8zbnxxc599bqc0nqp3nnn3n45ac9cjglx5iaydq3"))))
28406 (build-system emacs-build-system)
28407 (home-page "https://github.com/preetpalS/emacs-dotenv-mode")
28408 (synopsis "Major mode for @file{.env} files")
28409 (description "This package provides syntax highlighting for @file{.env}
28411 (license license:gpl3+)))
28413 (define-public emacs-add-node-modules-path
28415 (name "emacs-add-node-modules-path")
28420 (uri (git-reference
28421 (url "https://github.com/codesuki/add-node-modules-path")
28423 (file-name (git-file-name name version))
28426 "09vf921dh6lawh14rk02gjsvz88x9vd1c68ilf2fzkap5dh61dy5"))))
28427 (build-system emacs-build-system)
28428 (propagated-inputs (list emacs-s))
28429 (home-page "https://github.com/codesuki/add-node-modules-path")
28430 (synopsis "Add @file{node_modules} to the buffer-local @file{exec-path}")
28431 (description "This package searches the parent directories of the
28432 current file for the project's @file{node_modules/.bin/} directory, allowing
28433 Emacs to find project-specific installations of packages.")
28434 (license license:expat)))
28436 (define-public emacs-flow-minor-mode
28437 (let ((commit "d1b32a7dd0d33c6a00a106da5f4b2323602cbd3e")
28441 (name "emacs-flow-minor-mode")
28442 (version (git-version version revision commit))
28446 (uri (git-reference
28447 (url "https://github.com/an-sh/flow-minor-mode")
28449 (file-name (git-file-name name version))
28452 "169r4ib9qg9q6fm3p0p23qs1qx4pa9pg1qvyq4ysr85i7kwygppl"))))
28453 (build-system emacs-build-system)
28454 (home-page "https://github.com/an-sh/flow-minor-mode")
28455 (synopsis "Minor mode for JavaScript Flow files")
28456 (description "This package integrates Flow with Emacs, allowing for
28457 definition-jumping and type-checking on demand.")
28458 (license license:bsd-3))))
28460 (define-public emacs-rjsx-mode
28462 (name "emacs-rjsx-mode")
28467 (uri (git-reference
28468 (url "https://github.com/felipeochoa/rjsx-mode")
28469 (commit (string-append "v" version))))
28470 (file-name (git-file-name name version))
28473 "08b4hdgq4hc1yfd9pvyir2j3cqqdqa3j5svgaba97x5fzhsz7y8i"))))
28474 (build-system emacs-build-system)
28476 (list emacs-js2-mode))
28479 #:test-command '("make" "test")))
28480 (home-page "https://github.com/felipeochoa/rjsx-mode")
28481 (synopsis "Major mode for JSX files")
28482 (description "This package extends the parser of @code{js2-mode} to
28483 support JSX syntax.")
28484 (license license:expat)))
28486 (define-public emacs-origami-el
28487 (let ((commit "1f38085c8f9af7842765ed63f7d6dfe4dab59366")
28491 (name "emacs-origami-el")
28492 (version (git-version version revision commit))
28496 (uri (git-reference
28497 (url "https://github.com/gregsexton/origami.el")
28499 (file-name (git-file-name name version))
28502 "0ha1qsz2p36pqa0sa2sp83lspbgx5lr7930qxnwd585liajzdd9x"))))
28503 (build-system emacs-build-system)
28505 (list emacs-dash emacs-s))
28506 (home-page "https://github.com/gregsexton/origami.el")
28507 (synopsis "Flexible text-folding")
28508 (description "This package provides a minor mode for collapsing and
28509 expanding regions of text without modifying the actual contents.")
28510 (license license:expat))))
28512 (define-public emacs-peep-dired
28513 (let ((commit "c88a9a3050197840edfe145f11e0bb9488de32f4")
28517 (name "emacs-peep-dired")
28518 (version (git-version version revision commit))
28522 (uri (git-reference
28523 (url "https://github.com/asok/peep-dired")
28525 (file-name (git-file-name name version))
28528 "1wy5qpnfri1gha2cnl6q20qar8dbl2mimpb43bnhmm2g3wgjyad6"))))
28529 (build-system emacs-build-system)
28530 (home-page "https://github.com/asok/peep-dired")
28531 (synopsis "Preview files in another window")
28532 (description "This package provides a minor mode that allows files to be
28533 previewed by scrolling up and down within a @code{dired} buffer.")
28534 (license license:gpl3+))))
28536 (define-public emacs-counsel-etags
28538 (name "emacs-counsel-etags")
28543 (uri (git-reference
28544 (url "https://github.com/redguardtoo/counsel-etags")
28546 (file-name (git-file-name name version))
28548 (base32 "1v77lpp0nij1rjg2k9wj42kqk7xqg1dzs9vmadha6f2j8j6375m8"))))
28549 (build-system emacs-build-system)
28551 (list emacs-counsel))
28553 `(#:tests? #f ;require internet access
28554 #:test-command '("make test")))
28555 (home-page "https://github.com/redguardtoo/counsel-etags")
28556 (synopsis "Fast @code{Ctags}/@code{Etags} solution with @code{ivy-mode}")
28557 (description "This package uses @code{ivy-mode} to facilitate navigating
28558 and searching through @code{Ctags} files.")
28559 (license license:gpl3+)))
28561 (define-public emacs-ivy-clipmenu
28562 (let ((commit "d2071f2c5043a05d610cd1952e84176ca78c31dc"))
28564 (name "emacs-ivy-clipmenu")
28565 (version (git-version "0.0.1" "1" commit))
28568 (uri (git-reference
28569 (url "https://github.com/wpcarro/ivy-clipmenu.el")
28571 (file-name (git-file-name name version))
28574 "0npd8glzk5z4n7y9mzbsbzi0cf3by19fqcki052jr3dga363lds7"))))
28576 (list emacs-f emacs-ivy))
28577 (build-system emacs-build-system)
28578 (home-page "https://github.com/wpcarro/ivy-clipmenu.el")
28579 (synopsis "Ivy integration with clipmenu")
28580 (description "Ivy integration with the clipboard manager, clipmenu.")
28581 (license license:expat))))
28583 (define-public emacs-org-download
28584 (let ((commit "42ac361ef5502017e6fc1bceb00333eba90402f4")
28587 (name "emacs-org-download")
28588 (version (git-version "0.1.0" revision commit))
28591 (uri (git-reference
28592 (url "https://github.com/abo-abo/org-download")
28594 (file-name (git-file-name name version))
28596 (base32 "0cg4y7hy7xbq4vrbdicfzgvyaf3cjbx2zkqd4yl0y2garz71j99l"))))
28597 (build-system emacs-build-system)
28599 (list emacs-org emacs-async))
28600 (home-page "https://github.com/abo-abo/org-download")
28601 (synopsis "Facilitate moving images")
28602 (description "This package provides utilities for managing image files
28603 copied into @code{org-mode} buffers.")
28604 (license license:gpl3+))))
28606 (define-public emacs-org-drill-table
28607 ;; No releases or tags.
28608 (let ((commit "096387d929bcf3eb479e0a9d5da9cf32c756a759")
28611 (name "emacs-org-drill-table")
28612 (version (git-version "0.1" revision commit))
28616 (uri (git-reference
28617 (url "https://github.com/chrisbarrett/org-drill-table.git")
28619 (file-name (git-file-name name version))
28621 (base32 "1a8ygrcag8i9hdpy2vsn0sh8lwhl9b56rv91j3rddy1jv5qx1ipb"))))
28622 (build-system emacs-build-system)
28624 (list emacs-dash emacs-org emacs-s))
28625 (home-page "https://github.com/chrisbarrett/org-drill-table")
28626 (synopsis "Generate Org drill cards using Org mode tables")
28628 "This package generates drill cards based on an Org mode table in the
28629 current subtree. The cards are inserted under a new ``Cards'' heading in the
28631 (license license:gpl3+))))
28633 (define-public emacs-dash-docs
28634 (let ((commit "dafc8fc9f1ddb2e4e39e0b8d066c42d5d7ce8d06")
28637 (name "emacs-dash-docs")
28638 (version (git-version "1.4.0" revision commit))
28642 (uri (git-reference
28643 (url "https://github.com/dash-docs-el/dash-docs")
28645 (file-name (git-file-name name version))
28648 "0n6d3mm43gj16v8kjjradcfik93wb89dsqnfcbskb28bvcamafid"))))
28649 (build-system emacs-build-system)
28651 (list emacs-async))
28653 (list emacs-undercover emacs-ert-runner))
28656 #:test-command '("ert-runner")
28658 ;; this test requires network access, so remove it
28659 (modify-phases %standard-phases
28660 (add-before 'check 'make-tests-writable
28662 (make-file-writable "test/dash-docs-test.el")
28664 (add-before 'check 'delete-test
28666 (emacs-batch-edit-file "test/dash-docs-test.el"
28668 (goto-char (point-min))
28669 (re-search-forward "ert-deftest dash-docs-official-docsets-test")
28670 (beginning-of-line)
28672 (basic-save-buffer)))
28674 (home-page "https://github.com/dash-docs-el/dash-docs")
28675 (synopsis "Offline documentation browser for APIs using Dash docsets")
28676 (description "This package exposes functionality to work with Dash docsets.")
28677 (license license:gpl3+))))
28679 (define-public emacs-helm-dash
28680 (let ((commit "7f853bd34da666f0e9a883011c80f451b06f6c59")
28683 (name "emacs-helm-dash")
28684 (version (git-version "1.3.0" revision commit))
28688 (uri (git-reference
28689 (url "https://github.com/areina/helm-dash")
28691 (file-name (git-file-name name version))
28694 "0r192vzry1212ihabg9pgw9xar8zdgnbgy0vsgvfm8s5wj6ny7jp"))))
28695 (build-system emacs-build-system)
28697 (list emacs-helm emacs-dash-docs))
28698 (home-page "https://github.com/areina/helm-dash")
28699 (synopsis "Offline documentation browser for APIs using Dash docsets")
28700 (description "This package uses Helm to install and navigate through
28702 (license license:gpl3+))))
28704 (define-public emacs-counsel-dash
28705 (let ((commit "370d5f6f14b5294d0eb717f7b2a6a8e93df1ed24")
28708 (name "emacs-counsel-dash")
28709 (version (git-version "0.1.3" revision commit))
28713 (uri (git-reference
28714 (url "https://github.com/dash-docs-el/counsel-dash")
28716 (file-name (git-file-name name version))
28718 (base32 "1fn38vbz46ijarjvhgw7iy7dj9s2a2miy95fyy9f8b5sj8nrdfvz"))))
28719 (build-system emacs-build-system)
28721 (list emacs-counsel emacs-dash-docs))
28722 (home-page "https://github.com/dash-docs-el/counsel-dash")
28723 (synopsis "Offline documentation browser for APIs using Dash docsets")
28724 (description "This package uses @code{ivy-mode} to install and navigate
28725 through Dash docsets.")
28726 (license license:expat))))
28728 (define-public emacs-devdocs
28730 (name "emacs-devdocs")
28735 (uri (string-append
28736 "https://elpa.gnu.org/packages/"
28737 "devdocs-" version ".tar"))
28739 (base32 "0qyp8lhf76yv2ym7cryvygvf2m9jah5nsl1g79gqjrsin6vlhqka"))))
28740 (build-system emacs-build-system)
28741 (home-page "https://github.com/astoff/devdocs.el")
28742 (synopsis "Emacs viewer for DevDocs")
28744 "This package provides a documentation viewer similar to Emacs's
28745 built-in Info browser, but geared towards documentation obtained from
28746 @url{https://devdocs.io}.")
28747 (license license:gpl3+)))
28749 (define-public emacs-cascading-dir-locals
28750 (let ((release "0.1")
28752 (commit "efdf5e6d62b955ee0ca3c170eae1d388799f9fa0"))
28754 (name "emacs-cascading-dir-locals")
28755 (version (git-version release revision commit))
28756 (home-page "https://github.com/fritzgrabo/cascading-dir-locals")
28760 (uri (git-reference
28763 (file-name (git-file-name name version))
28765 (base32 "1jwd99kk5l588n7wwi1x3b4bgimm66x1icna3n20pwaj49kf0zy8"))))
28766 (build-system emacs-build-system)
28767 (synopsis "Apply all @file{.dir-locals.el} from root to current directory")
28769 "This package provides a global minor mode that changes how Emacs
28770 handles the lookup of applicable dir-locals files (@file{.dir-locals.el}):
28771 instead of starting at the directory of the visited file and moving up the
28772 directory tree only until a first dir-locals file is found, collect and apply
28773 all (!) dir-locals files found from the current directory up to the root one.
28775 Values specified in files nearer to the current directory take precedence over
28776 values in files farther away from it.
28778 You might want to use this to globally set dir-local variables that apply to
28779 all of your projects, then override or add variables on a per-project basis.")
28780 (license license:gpl3+))))
28782 (define-public emacs-calibredb
28784 (name "emacs-calibredb")
28789 (uri (git-reference
28790 (url "https://github.com/chenyanming/calibredb.el")
28792 (file-name (git-file-name name version))
28794 (base32 "1l30s3wv21mpybbxni5fziq2awai9k60i87s6fid56hg262r7jp0"))))
28795 (build-system emacs-build-system)
28799 #~(modify-phases %standard-phases
28800 (add-after 'unpack 'patch-paths
28801 (lambda* (#:key inputs #:allow-other-keys)
28802 (make-file-writable "calibredb-core.el")
28803 (let ((calibredb (search-input-file inputs "/bin/calibredb"))
28804 (fetch-ebook-metadata
28805 (search-input-file inputs "/bin/fetch-ebook-metadata")))
28806 (emacs-substitute-variables "calibredb-core.el"
28807 ("calibredb-fetch-metadata-program" fetch-ebook-metadata)
28808 ("calibredb-program" calibredb))))))))
28812 (list emacs-dash emacs-esxml emacs-s))
28813 (home-page "https://github.com/chenyanming/calibredb.el")
28814 (synopsis "Yet another calibre client for Emacs")
28815 (description "This package integrates calibre into Emacs.
28817 @item Powerful ebook dashboard.
28818 @item Manage ebooks, actually not only ebooks!
28819 @item Manage Ebook libraries.
28820 @item Another bookmarks solution, by setting the tags and comments.
28821 @item Quick search, filter, make actions on items with ivy and helm.
28822 @item Org-ref support.
28824 (license license:gpl3)))
28826 (define-public emacs-el-patch
28828 (name "emacs-el-patch")
28833 (uri (git-reference
28834 (url "https://github.com/raxod502/el-patch")
28836 (file-name (git-file-name name version))
28838 (base32 "0qkx7f19kl85n56bp3q40200a6ynpkhimcnb3k6x4n6idn6ff2pa"))))
28839 (build-system emacs-build-system)
28840 (home-page "https://github.com/raxod502/el-patch")
28841 (synopsis "Future-proof your Emacs customizations")
28842 (description "This package allows for an alternate definition of an Elisp
28843 function to be specified and for any differences from the original definition
28844 to be examined using Ediff.")
28845 (license license:expat)))
28847 (define-public emacs-info-plus
28848 (let ((commit "29811edf7a71764ac343631facc00268d9483146")
28851 (name "emacs-info-plus")
28852 (version (git-version "0" revision commit))
28856 (uri (git-reference
28857 (url "https://github.com/emacsmirror/info-plus")
28859 (file-name (git-file-name name version))
28862 "0ayq7z6dbf43vczbkjm1l976hxcfrmw45nfywbf1kjpzl3viy4gy"))))
28863 (build-system emacs-build-system)
28864 (home-page "https://github.com/emacsmirror/info-plus")
28865 (synopsis "Extensions to @file{info.el}")
28866 (description "This package extends Emacs' @file{info.el} by allowing
28867 outline-enabled table of contents, additional metadata association for Info
28869 (license license:gpl2+))))
28871 (define-public emacs-eval-in-repl
28873 (name "emacs-eval-in-repl")
28878 (uri (git-reference
28879 (url "https://github.com/kaz-yos/eval-in-repl")
28880 (commit (string-append "v" version))))
28881 (file-name (git-file-name name version))
28883 (base32 "1mrssbl0wyc6iij8zk1y3h9bd3rv53nnrxsij7fn67l1m4z0clyn"))))
28884 (build-system emacs-build-system)
28887 #~(list "eval-in-repl\\.el" "eval-in-repl-test\\.el" "README\\.md")))
28888 (propagated-inputs (list emacs-dash emacs-paredit emacs-ace-window))
28889 (home-page "https://github.com/kaz-yos/eval-in-repl")
28890 (synopsis "One keybinding to communicate with REPLs")
28892 "@code{eval-in-repl} provides a consistent ESS-like evaluation interface
28893 for various REPLs. In particular, it mimics ESS' C-RET binding, which sends a
28894 line or region to an appropriately configured shell. This package provides
28895 just the core of @code{eval-in-repl}---for the languages themselves, see their
28896 respective packages.")
28897 (license license:expat)))
28899 (define* (make-emacs-eval-in-repl repl #:key
28900 (eval-in-repl-package emacs-eval-in-repl)
28901 (language (string-capitalize repl))
28903 "Construct an emacs-eval-in-repl package for REPL, which interprets LANGUAGE.
28904 Optionally propagate INPUTS or use a different EVAL-IN-REPL-PACKAGE."
28906 (inherit eval-in-repl-package)
28907 (name (string-append "emacs-eval-in-repl-" repl))
28910 #~(list #$(string-append "eval-in-repl-" repl "\\.el"))))
28911 (propagated-inputs (cons* eval-in-repl-package
28913 ((procedure? inputs) (inputs))
28914 ((promise? inputs) (force inputs))
28917 (format #f (G_ "This package provides an ESS-like binding to send lines
28918 or regions to a REPL from ~a buffers.") language))))
28920 (define-public emacs-eval-in-repl-cider
28921 (make-emacs-eval-in-repl "cider" #:language "Clojure"
28922 #:inputs (list emacs-cider)))
28924 (define-public emacs-eval-in-repl-elm
28925 (make-emacs-eval-in-repl "elm" #:inputs (list emacs-elm-mode)))
28927 (define-public emacs-eval-in-repl-erlang
28928 (make-emacs-eval-in-repl "erlang" #:inputs (delay (list emacs-erlang))))
28930 (define-public emacs-eval-in-repl-geiser
28931 (make-emacs-eval-in-repl "geiser" #:language "Scheme"
28932 #:inputs (list emacs-geiser)))
28934 (define-public emacs-eval-in-repl-hy
28935 (make-emacs-eval-in-repl "hy" #:inputs (list emacs-hy-mode)))
28937 (define-public emacs-eval-in-repl-ielm
28938 (make-emacs-eval-in-repl "ielm" #:language "Emacs Lisp"))
28940 (define-public emacs-eval-in-repl-iex
28941 (make-emacs-eval-in-repl
28942 "iex" #:language "Elixir"
28944 (list emacs-elixir-mode emacs-alchemist))))
28946 (define-public emacs-eval-in-repl-javascript
28947 (make-emacs-eval-in-repl "javascript"
28948 #:inputs (list emacs-js2-mode emacs-js-comint)))
28950 (define-public emacs-eval-in-repl-lua
28951 (make-emacs-eval-in-repl "lua" #:inputs (list emacs-lua-mode)))
28953 (define-public emacs-eval-in-repl-ocaml
28954 (make-emacs-eval-in-repl "ocaml" #:language "OCaml"
28955 #:inputs (delay (list emacs-tuareg))))
28957 (define-public emacs-eval-in-repl-prolog
28958 (make-emacs-eval-in-repl "prolog"))
28960 (define-public emacs-eval-in-repl-python
28961 (make-emacs-eval-in-repl "python"))
28963 (define-public emacs-eval-in-repl-racket
28964 (make-emacs-eval-in-repl "racket" #:inputs (list emacs-racket-mode)))
28966 (define-public emacs-eval-in-repl-ruby
28967 (make-emacs-eval-in-repl "ruby" #:inputs (list emacs-inf-ruby)))
28969 (define-public emacs-eval-in-repl-scheme
28970 (make-emacs-eval-in-repl "scheme"))
28972 (define-public emacs-eval-in-repl-shell
28973 (make-emacs-eval-in-repl "shell"))
28975 (define-public emacs-eval-in-repl-slime
28976 (make-emacs-eval-in-repl "slime" #:language "Common Lisp"
28977 #:inputs (list emacs-slime)))
28979 (define-public emacs-eval-in-repl-sly
28980 (make-emacs-eval-in-repl "sly" #:language "Common Lisp"
28981 #:inputs (list emacs-sly)))
28983 (define-public emacs-eval-in-repl-sml
28984 (make-emacs-eval-in-repl "sml" #:language "Standard ML"
28985 #:inputs (list emacs-sml-mode)))
28987 (define-public emacs-ob-elm
28988 (let ((commit "d3a9fbc2f56416894c9aed65ea9a20cc1d98f15d")
28991 (name "emacs-ob-elm")
28992 (version (git-version "0.0" revision commit))
28996 (uri (git-reference
28997 (url "https://github.com/BonfaceKilz/ob-elm")
28999 (file-name (git-file-name name version))
29002 "1wdlr0cbsb2drdmcn2bnivjkj1f2v52l6yizwsnjgi4xq3w6k56h"))))
29003 (build-system emacs-build-system)
29004 (home-page "https://github.com/BonfaceKilz/ob-elm")
29005 (synopsis "Org-Babel support for Elm code")
29007 "This package adds support to Org-Babel for evaluating Elm code.")
29008 (license license:gpl3+))))
29010 (define-public emacs-org-babel-eval-in-repl
29012 (name "emacs-org-babel-eval-in-repl")
29017 (uri (string-append "https://stable.melpa.org/packages/"
29018 "org-babel-eval-in-repl-" version ".tar"))
29020 (base32 "0bdnps6m3kcvsagz8cfm3kf2rvxzl2p252pfggwbdbl43kzvl35h"))
29021 (modules '((guix build utils)))
29023 #~(begin (delete-file "eval-in-repl-matlab.el")))))
29024 (build-system emacs-build-system)
29025 (propagated-inputs (list emacs-eval-in-repl emacs-ess))
29026 (home-page "https://github.com/diadochos/org-babel-eval-in-repl")
29027 (synopsis "Eval org-mode babel code blocks in various REPLs")
29029 "This package allows you to execute org-mode source code blocks with
29030 @code{eval-in-repl}. It can execute code blocks asynchronously, without
29031 needing to write the result into the buffer.")
29032 (license license:expat)))
29034 (define-public emacs-eval-sexp-fu-el
29036 (name "emacs-eval-sexp-fu-el")
29041 (uri (git-reference
29042 (url "https://github.com/hchbaw/eval-sexp-fu.el")
29043 (commit (string-append "v" version))))
29044 (file-name (git-file-name name version))
29047 "19rv0kwajq0j8inglp84sml23ci74wdcvp5bl6zxbw5skqpf6phr"))))
29048 (build-system emacs-build-system)
29049 (home-page "https://github.com/hchbaw/eval-sexp-fu.el")
29050 (synopsis "Enhancements for evaluating s-expressions")
29051 (description "This package provides provides variants of
29052 @code{eval-last-sexp} that work on the containing list or s-expression, as
29053 well as an option for visually flashing evaluated s-expressions.")
29054 (license license:gpl3+)))
29056 (define-public emacs-counsel-tramp
29058 (name "emacs-counsel-tramp")
29063 (uri (git-reference
29064 (url "https://github.com/masasam/emacs-counsel-tramp")
29066 (file-name (git-file-name name version))
29068 (base32 "02dhchmyaqv6855mafjxizzgpl32rmnwdmw0nbm6rkckr13cgjl1"))))
29069 (build-system emacs-build-system)
29071 (list emacs-counsel))
29072 (home-page "https://github.com/masasam/emacs-counsel-tramp")
29073 (synopsis "Ivy interface for TRAMP")
29075 "This package allows @code{ivy-mode} to display and filter SSH servers.")
29076 (license license:gpl3+)))
29078 (define-public emacs-tramp
29080 (name "emacs-tramp")
29085 (uri (string-append "https://elpa.gnu.org/packages/"
29086 "tramp-" version ".tar"))
29088 (base32 "1y58k0qdc9i3av61p9ks7hg5vynsi2zslv5mswcbd1wf23iggr7c"))))
29089 (build-system emacs-build-system)
29092 #:emacs emacs ;need D-Bus
29094 #~(modify-phases %standard-phases
29095 ;; All but one "/bin/" directory refer to remote
29096 ;; environments, which may not be Guix. Do not patch them
29097 ;; blindly. However, local encoding shell has to be patched.
29098 (replace 'patch-el-files
29099 (lambda* (#:key inputs #:allow-other-keys)
29100 (emacs-substitute-variables "tramp.el"
29101 ("tramp-encoding-shell"
29102 (search-input-file inputs "/bin/sh"))))))))
29105 (home-page "https://savannah.gnu.org/projects/tramp")
29106 (synopsis "Remote file editing package for Emacs")
29108 "Tramp stands for ``Transparent Remote (file) Access, Multiple
29109 Protocol''. This package provides remote file editing, using
29110 a combination of @command{rsh} and @command{rcp} or other work-alike
29111 programs, such as @command{ssh} and @command{scp}.")
29112 (license license:gpl3+)))
29114 (define-public emacs-tramp-auto-auth
29115 (let ((commit "f15a12dfab651aff60f4a9d70f868030a12344ac"))
29117 (name "emacs-tramp-auto-auth")
29118 (version (git-version "20191027" "1" commit))
29122 (uri (git-reference
29123 (url "https://github.com/oitofelix/tramp-auto-auth")
29125 (file-name (git-file-name name version))
29128 "09nkjgwppjfgv04q0gv468qihgx4y3p39lpwbd6vbh3wgbccas9k"))))
29129 (build-system emacs-build-system)
29130 (home-page "https://github.com/oitofelix/tramp-auto-auth")
29131 (synopsis "TRAMP automatic authentication library")
29132 (description "This package provides @code{tramp-auto-auth-mode} Emacs
29133 global minor mode whose purpose is to automatically feed TRAMP sub-processes
29134 with passwords for paths matching regexps.")
29135 (license license:gpl3+))))
29137 (define-public emacs-eacl
29139 (name "emacs-eacl")
29144 (uri (git-reference
29145 (url "https://github.com/redguardtoo/eacl")
29147 (file-name (git-file-name name version))
29149 (base32 "1d2krw9x1mw6jn1q07nbq2qi92fms85q3i9wa2q5drs3368l55vr"))))
29150 (build-system emacs-build-system)
29153 (home-page "https://github.com/redguardtoo/eacl")
29154 (synopsis "Auto-complete lines by using @code{grep} on a project")
29155 (description "This package provides auto-completion commands for single
29156 and multiple lines of code in a project.")
29157 (license license:gpl3+)))
29159 (define-public emacs-semantic-refactor
29160 ;; The last release, 0.5, was made on 2015-07-26 and there have been 47
29161 ;; commits since then.
29162 (let ((commit "6f2c97d17fb70f4ca2112f5a2b99a8ec162004f5"))
29164 (name "emacs-semantic-refactor")
29165 (version (git-version "0.5" "1" commit))
29169 (uri (git-reference
29170 (url "https://github.com/tuhdo/semantic-refactor")
29172 (file-name (git-file-name name version))
29175 "1lyz3zjkx2csh0xdy1zpx8s32qp1p3sig57mwi9xhgpqjyf0axmb"))))
29176 (build-system emacs-build-system)
29177 (home-page "https://github.com/tuhdo/semantic-refactor")
29178 (synopsis "Refactoring tool for C/C++ and Lisp dialects")
29179 (description "This package provides a refactoring tool based on the
29180 Emacs Semantic parser framework. For C and C++ it supports operations such as:
29183 @item Generating class implementations
29184 @item Generating function prototypes
29185 @item Converting functions to function pointers
29186 @item Moving semantic units
29190 For Lisp dialects like Clojure, ELisp, and Scheme, it supports operations such
29194 @item Formatting the whole buffer
29195 @item Converting sexpressions to one or multiple lines
29198 (license license:gpl3+))))
29200 (define-public emacs-nhexl-mode
29202 (name "emacs-nhexl-mode")
29207 (uri (string-append "https://elpa.gnu.org/packages/"
29208 "nhexl-mode-" version ".el"))
29210 (base32 "0qvxfg7sv4iqyjxzaim6b4v9k5hav36qd4vkf9jwzw6p5fri8w8d"))))
29211 (build-system emacs-build-system)
29212 (home-page "https://elpa.gnu.org/packages/nhexl-mode.html")
29213 (synopsis "Minor mode to edit files via hex-dump format")
29215 "This package implements NHexl mode, a minor mode for editing files
29216 in hex dump format. The mode command is called @command{nhexl-mode}.
29218 This minor mode implements similar functionality to @command{hexl-mode},
29219 but using a different implementation technique, which makes it
29220 usable as a \"plain\" minor mode. It works on any buffer, and does
29221 not mess with the undo log or with the major mode.
29223 It also comes with:
29226 @item @command{nhexl-nibble-edit-mode}: a \"nibble editor\" minor mode, where
29227 the cursor pretends to advance by nibbles (4-bit) and the self-insertion keys
29228 (which only work for hex-digits) will only modify the nibble under point.
29229 @item @command{nhexl-overwrite-only-mode}: a minor mode to try and avoid
29230 moving text. In this minor mode, not only self-inserting keys overwrite
29231 existing text, but commands like `yank' and @command{kill-region} as well.
29232 @item It overrides @code{C-u} to use hexadecimal, so you can do @code{C-u a 4
29233 C-f} to advance by #xa4 characters.
29235 (license license:gpl3+)))
29237 (define-public emacs-helm-wikipedia
29238 (let ((commit "126f044e0a0e1432e0791c33ce2a41875d704a9b"))
29240 (name "emacs-helm-wikipedia")
29241 (version (git-version "0.0.0" "1" commit))
29242 (home-page "https://github.com/emacs-helm/helm-wikipedia/")
29246 (uri (git-reference
29249 (file-name (git-file-name name version))
29252 "148a5xsnbsiddhf9cl7yxdk41lrv38h0pip91kcflw9d7l0dp7pr"))))
29253 (build-system emacs-build-system)
29256 (synopsis "Search suggestions and article extracts from Wikipedia for Emacs")
29258 "This package provides an Emacs Helm interface for search suggestions
29259 and article extracts for Wikipedia.")
29260 (license license:gpl3+))))
29262 (define-public emacs-webfeeder
29264 (name "emacs-webfeeder")
29269 (uri (string-append
29270 "https://elpa.gnu.org/packages/webfeeder-"
29275 "1l128q424qsq9jv2wk8cv4zli71rk34q5kgwa9axdz0d27p9l6v4"))))
29276 (build-system emacs-build-system)
29277 (home-page "https://gitlab.com/Ambrevar/emacs-webfeeder")
29278 (synopsis "Build RSS and Atom webfeeds from HTML files")
29280 "Webfeeder is an Emacs library to generate RSS and Atom feeds from HTML
29281 files. The various elements of the HTML input are parsed with customizable
29282 functions (e.g. @code{webfeeder-title-function}).")
29283 (license license:gpl3+)))
29285 (define-public emacs-evil-numbers
29286 ;; XXX: Upstream did not tag latest release. Use commit matching exact
29288 (let ((commit "61dde4e3715fd1255df8f87a37d9c8022e909bf4"))
29290 (name "emacs-evil-numbers")
29295 (uri (git-reference
29296 (url "https://github.com/juliapath/evil-numbers")
29298 (file-name (git-file-name name version))
29301 "006s8azhypp5n7jnvqkb4rmzqmnsdwj87c3r97zhjzgi2jq953gx"))))
29302 (build-system emacs-build-system)
29306 #:test-command #~(list "emacs" "--batch"
29307 "-l" "evil-numbers.el"
29308 "-l" "tests/evil-numbers-tests.el"
29309 "-f" "ert-run-tests-batch-and-exit")))
29310 (native-inputs (list emacs-ert-runner))
29311 (propagated-inputs (list emacs-evil))
29312 (home-page "https://github.com/juliapath/evil-numbers")
29313 (synopsis "Increment and decrement numeric literals")
29315 "This package provides functionality to search for a number up to the
29316 end of a line and increment or decrement it.")
29317 (license license:gpl3+))))
29319 (define-public emacs-janpath-evil-numbers
29320 (deprecated-package "emacs-janpath-evil-numbers" emacs-evil-numbers))
29322 (define-public emacs-rotate-text
29324 (name "emacs-rotate-text")
29328 (uri (git-reference
29329 (url "https://github.com/nschum/rotate-text.el")
29331 (file-name (git-file-name name version))
29334 "1cgxv4aibkvv6lnssynn0438a615fz3zq8hg9sb0lhfgsr99pxln"))))
29335 (build-system emacs-build-system)
29336 (home-page "https://nschum.de/src/emacs/rotate-text/")
29337 (synopsis "Cycle through words, symbols and patterns in Emacs")
29338 (description "@code{rotate-text} allows you rotate to commonly
29339 interchanged text with a single keystroke. For example, you can toggle
29340 between \"frame-width\" and \"frame-height\", between \"public\",
29341 \"protected\" and \"private\" and between \"variable1\", \"variable2\" through
29343 (license license:gpl2+)))
29345 (define-public emacs-ediprolog
29347 (name "emacs-ediprolog")
29352 (uri (string-append
29353 "https://elpa.gnu.org/packages/ediprolog-"
29356 (base32 "021jm5zdxrjg7xcja18vgc2v52rk17xi1k7xxw8q802nmixhy0js"))))
29357 (build-system emacs-build-system)
29358 (home-page "https://elpa.gnu.org/packages/ediprolog.html")
29359 (synopsis "Emacs Does Interactive Prolog")
29360 (description "This package provides a major mode that let the user
29361 interact with SWI-Prolog in all buffers. For instance, one can consult Prolog
29362 programs and evaluate embedded queries. This mode is focused on the command
29363 @code{ediprolog-dwim} (Do What I Mean) which is supposed to, depending on the
29364 context, carry out the appropriate action.")
29365 (license license:gpl3+)))
29367 (define-public emacs-evil-cleverparens
29368 (let ((commit "8c45879d49bfa6d4e414b6c1df700a4a51cbb869")
29371 (name "emacs-evil-cleverparens")
29372 (version (git-version "2017-07-17" revision commit))
29375 (uri (git-reference
29376 (url "https://github.com/luxbock/evil-cleverparens")
29378 (sha256 (base32 "0lhnybpnk4n2yhlcnj9zxn0vi5hpjfaqfhvyfy7ckzz74g8v7iyw"))
29379 (file-name (git-file-name name version))))
29380 (build-system emacs-build-system)
29382 (list emacs-evil emacs-paredit emacs-smartparens))
29383 (home-page "https://github.com/luxbock/evil-cleverparens")
29384 (synopsis "Emacs modal editing optimized for editing Lisp")
29385 (description "@code{evil-cleverparens} remaps Evil keybindings to allow
29386 modal editing with screwing up the structure of Lisp code. Alternatives for
29387 verb commands which would are normally destructive (such as deletion) are
29388 provided. Those alternative commands are and bound by default to their
29389 corresponding Evil keys.")
29390 (license license:expat))))
29392 (define-public emacs-ntlm
29394 (name "emacs-ntlm")
29399 (uri (string-append "https://elpa.gnu.org/packages/ntlm-" version ".el"))
29401 (base32 "01d0bcmh8a36qf871w6bc05kjk9bmnh843m9869xw06zyvqwg9mv"))))
29402 (build-system emacs-build-system)
29403 (home-page "https://elpa.gnu.org/packages/ntlm.html")
29404 (synopsis "NTLM (NT LanManager) authentication support")
29406 "This library is a direct translation of the Samba release 2.2.0
29407 implementation of Windows NT and LanManager compatible password encryption.")
29408 (license license:gpl3+)))
29410 (define-public emacs-nadvice
29412 (name "emacs-nadvice")
29417 (uri (string-append "https://elpa.gnu.org/packages/"
29418 "nadvice-" version ".el"))
29420 (base32 "0gi3csnxbs8h7iy0scsl35sic3gv90swa89hhdjwb7qvpirfdcgw"))))
29421 (build-system emacs-build-system)
29422 (home-page "https://elpa.gnu.org/packages/nadvice.html")
29423 (synopsis "Forward compatibility for Emacs-24.4's nadvice")
29425 "This package tries to re-implement some of nadvice.el's functionality on
29426 top of the old defadvice system, to help users of defadvice move to the new
29427 advice system without dropping support for Emacs<24.4.")
29428 (license license:gpl3+)))
29430 (define-public emacs-url-http-ntlm
29432 (name "emacs-url-http-ntlm")
29437 (uri (string-append "https://elpa.gnu.org/packages/"
29438 "url-http-ntlm-" version ".el"))
29440 (base32 "1cakq2ykraci7d1gl8rnpv4f2f5ffyaidhqb1282g7i72adwmb98"))))
29441 (build-system emacs-build-system)
29442 (propagated-inputs (list emacs-ntlm))
29443 (home-page "https://elpa.gnu.org/packages/url-http-ntlm.html")
29444 (synopsis "NTLM authentication for the url library")
29445 (description "This package provides a NTLM handler for the URL package.")
29446 (license license:gpl3+)))
29448 (define-public emacs-soap-client
29450 (name "emacs-soap-client")
29455 (uri (string-append "https://elpa.gnu.org/packages/"
29456 "soap-client-" version ".tar"))
29458 (base32 "0ajv6l1p8dinnlybwzvv4c2i6291is6isjxb2h4apg27g66qbcki"))))
29459 (build-system emacs-build-system)
29460 (home-page "httpa://elpa.gnu.org/packages/soap-client.html")
29461 (synopsis "Access SOAP web services")
29463 "This package provides a SOAP client to access web services.")
29464 (license license:gpl3+)))
29466 (define-public emacs-fsm
29473 (uri (string-append "https://elpa.gnu.org/packages/fsm-" version ".el"))
29475 (base32 "1jyxyqdbfl8nv7c50q0sg3w5p7whp1sqgi7w921k5hfar4d11qqp"))))
29476 (build-system emacs-build-system)
29477 (home-page "https://elpa.gnu.org/packages/fsm.html")
29478 (synopsis "Finite State Machine library")
29480 "This package provides Finite State Machine library to make asynchronous
29481 programming in Emacs Lisp easy and fun.")
29482 (license license:gpl3+)))
29484 (define-public emacs-excorporate
29486 (name "emacs-excorporate")
29491 (uri (string-append "https://elpa.gnu.org/packages/"
29492 "excorporate-" version ".tar"))
29494 (base32 "1g0wc2kp15ra323b4rxvdh58q9c4h7m20grw6a0cs53m7l9xi62f"))))
29495 (build-system emacs-build-system)
29497 (list emacs-fsm emacs-nadvice emacs-soap-client emacs-url-http-ntlm))
29498 (home-page "https://elpa.gnu.org/packages/excorporate.html")
29499 (synopsis "Exchange integration")
29500 (description "This package provides Exchange integration for Emacs.")
29501 (license license:gpl3+)))
29503 (define-public emacs-evil-traces
29504 ;; XXX: Upstream does not tag releases. Use commit matching exact version
29506 (let ((commit "05e201cd63b549e3c88b5c3fc9b264bd6fe5a42c"))
29508 (name "emacs-evil-traces")
29512 (uri (git-reference
29513 (url "https://github.com/mamapanda/evil-traces")
29515 (file-name (git-file-name name version))
29518 "0vadpy2whcgx08blyb4vw6wq3nrxdl03zv85lp37pf3mdk9kwmga"))))
29519 (build-system emacs-build-system)
29523 #:test-command #~(list "make" "test")
29525 #~(modify-phases %standard-phases
29526 (add-after 'unpack 'set-shell
29527 ;; Setting the SHELL environment variable is required for the
29528 ;; tests to find sh.
29530 (setenv "SHELL" (which "sh")))))))
29533 (home-page "https://github.com/mamapanda/evil-traces")
29534 (synopsis "Visual hints for Emacs' Evil Ex commands")
29535 (description "This package adds visual hints to certain Ex commands in
29537 (license license:gpl3+))))
29539 (define-public emacs-evil-tmux-navigator
29541 (name "emacs-evil-tmux-navigator")
29548 (url "https://github.com/keith/evil-tmux-navigator")
29550 (file-name (git-file-name name version))
29553 "1na44rbc03sr5b4z9pvnps6n4nmrqcz58nywix9825l74a419ijx"))))
29556 (build-system emacs-build-system)
29557 (home-page "https://github.com/keith/evil-tmux-navigator")
29559 "Navigate seamlessly between emacs windows and tmux panes")
29561 "This package lets you use C-h, C-j, C-k and C-l to navigate between
29562 Emacs windows and tmux panes.")
29563 (license license:expat)))
29565 (define-public emacs-everywhere
29566 ;; No upstream release. Extract version from main file.
29567 (let ((commit "ace53396a66ed4b753f42c04a5a0db2bcd770423")
29570 (name "emacs-everywhere")
29571 (version (git-version "0.0.1" revision commit))
29574 (uri (git-reference
29575 (url "https://github.com/tecosaur/emacs-everywhere")
29577 (file-name (git-file-name name version))
29580 "0p55shxvqm1713af33mfglny7rpi31d42wvgwylcsfy4jvnsq8bb"))))
29584 #~(modify-phases %standard-phases
29585 (add-after 'unpack 'patch-exec-paths
29586 (lambda* (#:key inputs #:allow-other-keys)
29587 (substitute* "emacs-everywhere.el"
29589 (string-append "\""
29590 (search-input-file inputs "/bin/xclip")
29593 (string-append "\""
29594 (search-input-file inputs "/bin/xdotool")
29597 (string-append "\""
29598 (search-input-file inputs "/bin/xprop")
29601 (string-append "\""
29602 (search-input-file inputs "/bin/xwininfo")
29604 (inputs (list xclip xdotool xprop xwininfo))
29605 (build-system emacs-build-system)
29606 (home-page "https://github.com/tecosaur/emacs-everywhere")
29607 (synopsis "System-wide popup Emacs windows for quick edits")
29608 (description "@code{emacs-everywhere} launches a new Emacs frame, and the
29609 contents of the buffer are pasted into the previously focused application on
29610 deletion of the frame.")
29611 (license license:gpl3+))))
29613 (define-public emacs-xclip
29615 (name "emacs-xclip")
29620 (uri (string-append "https://elpa.gnu.org/packages/"
29621 "xclip-" version ".tar"))
29623 (base32 "0hgblj8ng7vfsdb7g1mm9m2qhzfprycdd77836l59prpak5kp55q"))))
29624 (build-system emacs-build-system)
29625 (home-page "http://elpa.gnu.org/packages/xclip.html")
29626 (synopsis "Copy and paste GUI clipboard from Emacs in text terminal")
29628 "This package allows Emacs to copy to and paste from the GUI clipboard
29629 when running in text terminal.
29631 It can use external command-line tools for that, e.g., @command{xclip} or
29632 @command{xsel}, which you may need to install in order for the package to
29634 (license license:gpl3+)))
29636 (define-public emacs-xterm-color
29638 (name "emacs-xterm-color")
29643 (uri (git-reference
29644 (url "https://github.com/atomontage/xterm-color")
29646 (file-name (git-file-name name version))
29648 (base32 "127lq50q62x06kd1xrf8lyc4rkqbfhfy86gsx1x4x169am2xk397"))))
29649 (build-system emacs-build-system)
29650 (home-page "https://github.com/atomontage/xterm-color")
29651 (synopsis "ANSI & xterm-256 color text property translator for Emacs")
29652 (description "@code{xterm-color.el} is an ANSI control sequence to
29653 text-property translator.")
29654 (license license:bsd-2)))
29656 (define-public emacs-org-noter
29658 (name "emacs-org-noter")
29663 (uri (git-reference
29664 (url "https://github.com/weirdNox/org-noter")
29666 (file-name (git-file-name name version))
29669 "1vwfpdi7hfkxx4vi0cwg7rvqby3i0mymzdkyzrqzv30dazmcjpag"))))
29670 (build-system emacs-build-system)
29671 (propagated-inputs (list emacs-org))
29672 (home-page "https://github.com/weirdNox/org-noter")
29673 (synopsis "Synchronized, Org-mode, document annotator")
29675 "This package lets you create notes that are kept in sync when you
29676 scroll through the document, but that are external to it---the notes
29677 themselves live in an Org-mode file. As such, this leverages the power of
29678 Org-mode (the notes may have outlines, latex fragments, babel, etc...) while
29679 acting like notes that are made @emph{in} the document.")
29680 (license license:gpl3+)))
29682 (define-public emacs-org-redmine
29683 (let ((commit "e77d013bc3784947c46a5c53f03cd7d3c68552fc"))
29685 (name "emacs-org-redmine")
29686 (version (git-version "0.1" "1" commit))
29689 (uri (git-reference
29690 (url "https://github.com/gongo/org-redmine")
29692 (file-name (git-file-name name version))
29695 "06miv3mf2a39vkf6mmm5ssc47inqh7dq82khsyc03anz4d4lj822"))))
29696 (build-system emacs-build-system)
29697 (home-page "https://github.com/gongo/org-redmine/")
29698 (synopsis "Redmine tools using Emacs")
29699 (description "This program provides an Emacs client for Redmine.")
29700 (license license:gpl3+))))
29702 (define-public emacs-multi-term
29703 ;; No upstream release. Extract version from main file.
29704 (let ((commit "017c77c550115936860e2ea71b88e585371475d5")
29707 (name "emacs-multi-term")
29708 (version (git-version "1.5" revision commit))
29712 (uri (git-reference
29713 (url "https://github.com/manateelazycat/multi-term")
29715 (file-name (git-file-name name version))
29717 (base32 "043dqd8i8h6hbcg11rzprxin2yq5lb902zlrb7mxah44vyp8wrdi"))))
29718 (build-system emacs-build-system)
29721 (home-page "https://github.com/manateelazycat/multi-term")
29722 (synopsis "Manage multiple terminal buffers in Emacs")
29724 "This package enhances @code{term.el} with the following features:
29727 @item Functions to switch between multiple terminal buffers
29728 @item List of keys to be intercepted by @code{emacs-multi-term} instead of by
29729 the underlying terminal
29730 @item Kills the unused buffer left after exiting the terminal
29731 @item Kills the running sub-processes along with the terminal when killing the
29733 @item Dedicated window for debugging program.
29735 (license license:gpl3+))))
29737 (define-public emacs-elpher
29739 (name "emacs-elpher")
29744 (uri (git-reference
29745 (url "git://thelambdalab.xyz/elpher")
29746 (commit (string-append "v" version))))
29747 (file-name (git-file-name name version))
29749 (base32 "1c6pid2ip2c2lpww42wxgq4qflx1m8vxilyva03h8xzgr39kwq64"))))
29750 (build-system emacs-build-system)
29753 #:emacs emacs-no-x ;need libxml support
29755 #~(modify-phases %standard-phases
29756 (add-before 'install 'build-doc
29758 (invoke "makeinfo" "elpher.texi"))))))
29761 (home-page "gopher://thelambdalab.xyz/1/projects/elpher/")
29762 (synopsis "Gopher and gemini client for Emacs")
29763 (description "Elpher is a full-featured gopher and gemini client for
29764 Emacs. Its features include intuitive keyboard and mouse-driven browsing,
29765 out-of-the-box compatibility with evil-mode, clickable links in plain text,
29766 caching of visited sites, pleasant and configurable visualization of Gopher
29767 directories, direct visualisation of image files, jumping directly to links by
29768 name (with autocompletion), a simple bookmark management system and
29769 connections using TLS encryption.")
29770 (license license:gpl3+)))
29772 (define-public emacs-zerodark-theme
29774 (name "emacs-zerodark-theme")
29779 (uri (git-reference
29780 (url "https://github.com/NicolasPetton/zerodark-theme")
29782 (file-name (git-file-name name version))
29785 "1r5s4mvwlxsb9ylr6dkfxpm1l0pbqkmn5gwjdcfk762cnxlam8cm"))))
29786 (build-system emacs-build-system)
29788 (list emacs-flycheck emacs-all-the-icons))
29790 "https://gitlab.petton.fr/nico/zerodark-theme")
29792 "Dark, medium contrast theme for Emacs")
29794 "Zerodark is a dark theme inspired from One Dark and Niflheim.
29795 An optional mode-line format can be enabled with @code{zerodark-setup-modeline-format}.")
29796 (license license:gpl3+)))
29798 (define-public emacs-gnus-alias
29800 (name "emacs-gnus-alias")
29801 (version "20150316")
29804 (uri (git-reference
29805 (url "https://github.com/hexmode/gnus-alias")
29806 (commit "9447d3ccb4c0e75d0468899cccff7aa249657bac")))
29807 (file-name (git-file-name name version))
29810 "1i278npayv3kfxxd1ypi9n83q5l402sbc1zkm11pf8g006ifqsp4"))))
29811 (build-system emacs-build-system)
29812 (home-page "https://melpa.org/#/gnus-alias")
29813 (synopsis "Alternative to @code{gnus-posting-styles}")
29814 (description "This Emacs add-on provides a simple mechanism to switch
29815 Identities when using a @code{message-mode} or a @code{message-mode} derived
29816 mode. Identities can include @code{From} and @code{Organisation} headers,
29817 extra headers, body and signature. Other features include:
29820 @item Switch Identities in a message buffer.
29821 @item Access original message to help determine Identity of the followup/reply
29823 @item Act on a forwarded message as if it were a message being replied to.
29824 @item Start a new message with a given Identity pre-selected.
29826 (license license:gpl2+)))
29828 (define-public emacs-ox-epub
29830 (name "emacs-ox-epub")
29834 (uri (git-reference
29835 (url "https://github.com/ofosos/ox-epub")
29836 (commit (string-append "v" version))))
29837 (file-name (git-file-name name version))
29840 "057sqmvm8hwkhcg3yd4i8zz2xlqsqrpyiklyiw750s3i5mxdn0k7"))))
29841 (build-system emacs-build-system)
29842 (home-page "https://github.com/ofosos/ox-epub")
29843 (synopsis "Export org mode projects to EPUB")
29844 (description "@code{ox-epub} extends the (X)HTML exporter to generate
29845 @code{.epub} files directly from OrgMode. This will export EPUB version 2,
29846 which should give broad compatibility. It should also be relatiely easy to
29847 convert the resulting @code{.epub} to a @code{.mobi} file. Needs a working
29848 zip utility (default is @code{zip}).")
29849 (license license:gpl3+)))
29851 (define-public emacs-ox-gemini
29853 (let ((commit "168f820ea401fb813435a3a55af295873a4c110b")
29856 (name "emacs-ox-gemini")
29857 (version (git-version "0" revision commit))
29861 (uri (git-reference
29862 (url "https://git.sr.ht/~abrahms/ox-gemini")
29864 (file-name (git-file-name name version))
29866 (base32 "0jmiya3f9vv4v64p5kxla6wiiyv4wg4w7f4a6zmdrjcn11hflqmm"))))
29867 (build-system emacs-build-system)
29868 (home-page "https://sr.ht/~abrahms/ox-gemini")
29869 (synopsis "Export Org files in Gemini format")
29871 "@code{ox-gemini} adds support for exporting Org files in Gemini
29872 format. Many things were taken from the ASCII exporter, from which
29873 @code{ox-gemini} derives.")
29874 (license license:gpl3+))))
29876 (define-public emacs-ox-haunt
29878 (name "emacs-ox-haunt")
29883 (uri (git-reference
29884 (url "https://git.sr.ht/~jakob/ox-haunt")
29885 (commit (string-append "v" version))))
29886 (file-name (git-file-name name version))
29888 (base32 "1rs1n228c2fmpvirc57bqgf2616ijpphkgf4w9ln5j46snmkam25"))))
29889 (build-system emacs-build-system)
29890 (home-page "https://git.sr.ht/~jakob/ox-haunt")
29891 (synopsis "Export Org files to HTML appropriate for Haunt")
29893 "This library implements an HTML back-end for the Org generic exporter,
29894 producing output appropriate for Haunt's @code{html-reader}.")
29895 (license license:gpl3+)))
29897 (define-public emacs-ox-hugo
29899 (name "emacs-ox-hugo")
29904 (uri (git-reference
29905 (url "https://github.com/kaushalmodi/ox-hugo")
29906 (commit (string-append "v" version))))
29907 (file-name (git-file-name name version))
29910 "054ln6x92qyicvc5l1m9yjqqzwpg3j66v0shxsypp97vfw2d3ww6"))))
29911 (build-system emacs-build-system)
29913 (list emacs-tomelr))
29914 (home-page "https://ox-hugo.scripter.co")
29915 (synopsis "Hugo markdown back-end for Org export engine")
29917 "Ox-hugo is an Org exporter backend that exports Org to Hugo-compatible
29918 Markdown, Blackfriday, and also generates the front-matter in TOML or YAML
29920 (license license:gpl3+)))
29922 (define-public emacs-ox-pandoc
29924 (name "emacs-ox-pandoc")
29925 (version "20180510")
29928 (uri (git-reference
29929 (url "https://github.com/kawabata/ox-pandoc")
29930 (commit "aa37dc7e94213d4ebedb85c384c1ba35007da18e")))
29931 (file-name (git-file-name name version))
29934 "0iibxplgdp34bpq1yll2gmqjd8d8lnqn4mqjvx6cdf0y438yr4jz"))))
29935 (build-system emacs-build-system)
29939 (list emacs-dash emacs-ht))
29940 (home-page "https://github.com/kawabata/ox-pandoc")
29941 (synopsis "Org exporter for Pandoc")
29942 (description "@code{ox-pandoc} is an exporter for converting Org-mode
29943 files to numerous other formats via Pandoc.")
29944 (license license:gpl3+)))
29946 (define-public emacs-ox-reveal
29947 (let ((commit "07900f29fada581d0e1b0f1e2057cea5e1ba8ce1")
29950 (name "emacs-ox-reveal")
29951 (version (git-version "1.0" revision commit))
29955 (uri (git-reference
29956 (url "https://github.com/hexmode/ox-reveal")
29958 (file-name (git-file-name name version))
29961 "132b0llxda8jivabvm2ssbrdny7q2q1c0z4ikb12k4kia3fvg6cg"))))
29962 (build-system emacs-build-system)
29965 (home-page "https://github.com/hexmode/ox-reveal")
29966 (synopsis "reveal.js Presentation Back-End for Org export engine")
29968 "Org Reveal exports your Org documents to @code{reveal.js} presentations.
29969 With org-reveal, you can create beautiful presentations with 3D effects from
29970 simple but powerful Org contents.")
29971 (license license:gpl3+))))
29973 (define-public emacs-ox-rss
29974 ;; XXX: Upstream provides no version nor tags whatsoever.
29975 (let ((commit "83dc898fa5493925b01716e5dd495d5e07c3d41a")
29978 (name "emacs-ox-rss")
29979 (version (git-version "0" revision commit))
29982 (uri (git-reference
29983 (url "https://gitlab.com/nsavage/ox-rss")
29985 (file-name (git-file-name name version))
29988 "0513kixv9bgkignmji95m3rskn6px6c0fack4zdl61qq09fg8w6h"))))
29989 (build-system emacs-build-system)
29990 (home-page "https://gitlab.com/nsavage/ox-rss")
29991 (synopsis "RSS 2.0 back-end for Org export engine")
29993 "This library implements an RSS 2.0 back-end for Org exporter, based
29994 on the HTML back-end.")
29995 (license license:gpl3+))))
29997 (define-public emacs-wc-mode
29999 (name "emacs-wc-mode")
30003 (uri (git-reference
30004 (url "https://github.com/bnbeckwith/wc-mode")
30005 (commit (string-append "v" version))))
30006 (file-name (git-file-name name version))
30009 "1wzgb4z2qyyv223x5fc7ff2fn5xpz4s7lr1q1y33q8878a7w9d45"))))
30010 (build-system emacs-build-system)
30011 (home-page "https://github.com/bnbeckwith/wc-mode")
30012 (synopsis "Running word count with goals (minor mode)")
30013 (description "@code{wc-mode} is a minor mode, providing a ‘wc’ function
30014 for Emacs buffers as well as a modeline addition with live word, line and
30015 character counts. Additionally, a user can set specific goals for adding or
30016 deleting words. These goals were partly inspired by 750words.com where the
30017 goal of the site is to encourage writing by setting a goal of 750 words at a
30019 (license license:gpl3+)))
30021 (define-public emacs-mastodon
30023 (name "emacs-mastodon")
30027 (uri (git-reference
30028 (url "https://codeberg.org/martianh/mastodon.el")
30030 (file-name (git-file-name name version))
30033 "13swcbvwhjl8ksrgzvmfafkgd3iz8znk49bs1n48w3g9qvh097w7"))))
30034 (build-system emacs-build-system)
30037 #~(modify-phases %standard-phases
30038 ;; Move the source files to the top level, which is included in
30039 ;; the EMACSLOADPATH.
30040 (add-after 'unpack 'move-source-files
30042 (let ((el-files (find-files "./lisp" ".*\\.el$")))
30043 (for-each (lambda (f)
30044 (rename-file f (basename f)))
30047 (list emacs-request))
30048 (home-page "https://codeberg.org/martianh/mastodon.el")
30049 (synopsis "Emacs client for Mastodon")
30050 (description "@code{mastodon.el} is an Emacs client for Mastodon, the
30051 federated microblogging social network.")
30052 (license license:gpl3+)))
30054 (define-public emacs-ebdb
30056 (name "emacs-ebdb")
30061 (uri (string-append "https://elpa.gnu.org/packages/"
30062 "ebdb-" version ".tar"))
30064 (base32 "0qldw0a346xbkq289mynvfz38n4yh2rfbvgs5f7ixfc014y3j3gw"))))
30065 (build-system emacs-build-system)
30066 (home-page "https://github.com/girzel/ebdb")
30067 (synopsis "EIEIO port of BBDB, Emacs's contact-management package")
30069 "EBDB is a contact management/addressbook package for Emacs. It's
30070 a re-write of the Insidious Big Brother Database (BBDB) using Emacs
30071 Lisp's (relatively new) EIEIO object oriented libraries.")
30072 (license license:gpl3+)))
30074 (define-public emacs-refactor
30076 (name "emacs-refactor")
30080 (uri (git-reference
30081 (url "https://github.com/Wilfred/emacs-refactor")
30083 (file-name (git-file-name name version))
30086 "1yky7vlv91501xb43xk19rr8mxlvrsxhawsc98jivf64nad5dqay"))))
30087 (build-system emacs-build-system)
30089 (list emacs-dash emacs-s emacs-popup emacs-list-utils emacs-iedit))
30090 (home-page "https://github.com/Wilfred/emacs-refactor/")
30091 (synopsis "Language-specific refactoring in Emacs")
30092 (description "Emacs Refactor (EMR) is a framework for providing
30093 language-specific refactoring in Emacs. It includes refactoring commands for
30094 a variety of languages, including elisp itself.")
30095 (license license:gpl3+)))
30097 (define-public emacs-flyspell-correct
30099 (name "emacs-flyspell-correct")
30104 (uri (git-reference
30105 (url "https://github.com/d12frosted/flyspell-correct")
30106 (commit (string-append "v" version))))
30107 (file-name (git-file-name name version))
30109 (base32 "1m5da6r82hk0c2x3lw03qnkk79sx67875afw0ybblj3cmfk6szd1"))))
30110 (build-system emacs-build-system)
30111 ;; XXX: emacs-avy-menu is not packaged, so we ignore the file below.
30113 `(#:exclude '("flyspell-correct-avy-menu\\.el")))
30115 (list emacs-helm emacs-ivy emacs-popup))
30116 (home-page "https://github.com/d12frosted/flyspell-correct")
30117 (synopsis "Correcting words with flyspell via custom interfaces")
30119 "This package provides functionality for correcting words via custom
30120 interfaces. Several interfaces are supported beside the classic Ido: Popup,
30122 (license license:gpl3+)))
30124 (define-public emacs-spell-fu
30125 ;; There are no tagged releases upstream on gitlab, instead we are using the
30126 ;; most recent commit.
30127 (let ((commit "50be652a6ec8590c3098f46094a92213623349c1") (revision "0"))
30129 (name "emacs-spell-fu")
30130 (version (git-version "0.3" revision commit))
30133 (uri (git-reference
30134 (url "https://gitlab.com/ideasman42/emacs-spell-fu")
30136 (file-name (git-file-name name version))
30139 "0n7qwnirvkh2aprb7l1wj9rywdsn33a7s32716m3afcvy7z9pyh4"))))
30140 (build-system emacs-build-system)
30141 (home-page "https://gitlab.com/ideasman42/emacs-spell-fu")
30142 (synopsis "Fast highlighting of misspelled words")
30144 "This is a light weight spell checker for Emacs,
30145 that runs from the syntax highlighter without starting external processes.")
30146 (license license:gpl3+))))
30148 (define-public emacs-org-emms
30149 (let ((commit "07a8917f3d628c32e5de1dbd118ac08203772533")
30152 (name "emacs-org-emms")
30154 (git-version "0.1" revision commit))
30158 (uri (git-reference
30159 (url "https://gitlab.com/jagrg/org-emms.git")
30161 (file-name (git-file-name name commit))
30164 "1sqsm5sv311xfdk4f4rsnvprdf2v2vm7l1b3vqi7pc0g8adlnw1d"))))
30165 (build-system emacs-build-system)
30167 (list emacs-emms emacs-org))
30168 (home-page "https://gitlab.com/jagrg/org-emms")
30169 (synopsis "Play multimedia files from org-mode")
30171 "This package provides a new org link type for playing back multimedia
30172 files from org-mode using EMMS, The Emacs Multimedia System. If the link
30173 contains a track position, playback will start at the specified position.")
30174 (license license:gpl3+))))
30176 (define-public emacs-org-jira
30178 (name "emacs-org-jira")
30183 (uri (git-reference
30184 (url "https://github.com/ahungry/org-jira")
30186 (file-name (git-file-name name version))
30189 "1s91l4ibjvvc7rfvd8gldxqrcgjq00q83fdww217ck2ps5yrzyjl"))))
30190 (build-system emacs-build-system)
30192 (list emacs-request emacs-s emacs-dash emacs-org))
30193 (home-page "https://github.com/ahungry/org-jira")
30194 (synopsis "Syncing between Jira and Org-mode")
30196 "This package provides an extension to org-mode for syncing issues with
30197 JIRA issue servers.")
30198 (license license:gpl3+)))
30200 (define-public emacs-slime-volleyball
30202 (name "emacs-slime-volleyball")
30207 (uri (string-append "https://elpa.gnu.org/packages/"
30208 "slime-volleyball-" version ".tar"))
30210 (base32 "07xavg6xq5ckrfy5sk5k5ldb46m5w8nw1r1k006ck8f23ajaw5z2"))))
30211 (build-system emacs-build-system)
30212 (arguments '(#:include '("\\.el$" "\\.svg$" "\\.b64$" "slime\\.el\\.gz$")))
30213 (home-page "http://elpa.gnu.org/packages/slime-volleyball.html")
30214 (synopsis "SVG slime volleyball game")
30216 "Emacs Slime Volleyball is a volleyball game. Win points by
30217 making the ball land on your opponent's side of the court. The first
30218 player to five points wins! You can play against a friend, or
30219 challenge the three computer opponents in one player mode. You can
30220 even train opponent slimes.")
30221 (license license:gpl3+)))
30223 (define-public emacs-syslog-mode
30225 (name "emacs-syslog-mode")
30226 (version "20210910.1952")
30229 (uri (git-reference
30230 (url "https://github.com/vapniks/syslog-mode.git")
30231 (commit "072664784dae41a573a9de8d178bf577b7526b82")))
30234 "04ddpn6il6mh1f992x3fxl6yljryghi51q4845lx08cbc74wnfz0"))))
30235 (build-system emacs-build-system)
30236 (propagated-inputs (list emacs-hide-lines emacs-ov emacs-hsluv))
30237 (home-page "https://github.com/vapniks/syslog-mode")
30238 (synopsis "Major-mode for viewing log files and strace output")
30239 (description "This library provides a major-mode for viewing syslog and
30240 strace files. You can highlight and filter the lines of the file by regular
30241 expressions and by timestamp, view notes associated with files, extract text,
30242 count matches, etc.")
30243 (license license:gpl3+)))
30245 (define-public emacs-systemd-mode
30247 (name "emacs-systemd-mode")
30251 (uri (git-reference
30252 (url "https://github.com/holomorph/systemd-mode")
30253 (commit (string-append "v" version))))
30254 (file-name (git-file-name name version))
30257 "0ylgnvpfindg4cxccbqy02ic7p0i9rygf1w16dm1filwhbqvjplq"))))
30258 (build-system emacs-build-system)
30259 (arguments '(#:include '("\\.el$" "\\.txt$")))
30260 (home-page "https://github.com/holomorph/systemd-mode")
30262 "Major mode for editing systemd units")
30264 "Major mode for editing systemd units in GNU Emacs.")
30265 (license license:gpl3+)))
30267 (define-public emacs-ssh-config-mode
30268 (let ((commit "4c1dfa57d452cb5654453bf186c8ff63e1e71b56")
30271 (name "emacs-ssh-config-mode")
30272 (version (git-version "8.0" revision commit))
30278 (url "https://github.com/jhgorrell/ssh-config-mode-el")
30280 (file-name (git-file-name name commit))
30283 "0crglfdazzckizbwzmgl2rn6j85avfzkr1q7ijxd17rp2anvr9bd"))))
30284 (build-system emacs-build-system)
30285 (arguments '(#:include '("\\.el$" "\\.txt$")))
30287 "https://github.com/jhgorrell/ssh-config-mode-el")
30289 "Mode for fontification of ~/.ssh/config")
30291 "This package fontifies the ssh config keywords and creates
30292 keybindings for skipping from host section to host section.")
30293 (license license:gpl3+))))
30295 (define-public emacs-ssh-agency
30297 (name "emacs-ssh-agency")
30301 (uri (git-reference
30302 (url "https://github.com/magit/ssh-agency")
30304 (file-name (git-file-name name version))
30307 "1i3zmsn0w2k7p2hlzssibckm32kf05l56mkhg96x4sf06g3pwq1d"))))
30308 (build-system emacs-build-system)
30311 (home-page "https://github.com/magit/ssh-agency")
30312 (synopsis "Manage @code{ssh-agent} from Emacs")
30314 "This package provides functions to startup @code{ssh-agent}, set the
30315 needed environment variables in Emacs, and prompt for passphrases from within
30316 Emacs so that pushes and pulls from @code{magit} will not require entering any
30319 It can also be useful on Unix-like platforms to delay having to enter your
30320 passphrase until the first time you push to a remote.")
30321 (license license:gpl3+)))
30323 (define-public emacs-super-save
30325 (name "emacs-super-save")
30330 (uri (git-reference
30331 (url "https://github.com/bbatsov/super-save")
30332 (commit (string-append "v" version))))
30333 (file-name (git-file-name name version))
30336 "066fyg4r4pksyandpd7s53hagpvm2rw90q5ks4jlpgy7x00hw09l"))))
30337 (build-system emacs-build-system)
30338 (home-page "https://github.com/bbatsov/super-save")
30339 (synopsis "Auto-save buffers, based on your activity")
30340 (description "Super-save auto-saves your buffers, when certain events
30341 happen, e.g., when you switch between buffers or when an Emacs frame loses
30342 focus. You can think of it as both something that augments and replaces the
30343 standard Auto-save mode.")
30344 (license license:gpl3+)))
30346 (define-public emacs-tao-theme
30347 (let ((commit "468ee4f6ba7afb9dbfc8855ae2c333cb16ca4408")
30350 (name "emacs-tao-theme")
30351 (version (git-version "1.1.1" revision commit))
30355 (uri (git-reference
30356 (url "https://github.com/11111000000/tao-theme-emacs")
30358 (file-name (git-file-name name version))
30361 "0yqibx6wcdsj5k6130c3qp0hmj6zwhfjrrvw98lny23ksw6k0s3s"))))
30362 (build-system emacs-build-system)
30363 (home-page "https://github.com/11111000000/tao-theme-emacs")
30364 (synopsis "Parameterized uncolored color themes for Emacs")
30366 "This package provides two parameterized uncolored color themes for
30367 Emacs: @code{tao-yin} and @code{tao-yang}. The default
30368 @code{tao-theme-scale-fn} is @code{tao-theme-golden-scale}.
30370 You can customize: @code{tao-theme-scale-fn}, that returns 16 2-digit numbers;
30371 @code{tao-theme-scale-filter-fn}, for edge filter; and
30372 @code{tao-theme-use-height}.")
30373 (license license:gpl3+))))
30375 (define-public emacs-almost-mono-themes
30376 (let ((commit "c3a85c1a665530a5d830665969725cdba8eceb75")
30379 (name "emacs-almost-mono-themes")
30380 (version (git-version "0" revision commit))
30384 (uri (git-reference
30385 (url "https://github.com/cryon/almost-mono-themes")
30387 (file-name (git-file-name name version))
30390 "034k32xkr5ma415hlkbl35z0jxc4sa1inf87hg3y6lrlfl83fyjh"))))
30391 (build-system emacs-build-system)
30392 (home-page "https://github.com/cryon/almost-mono-themes")
30393 (synopsis "Almost monochromatic themes for emacs in a few variants")
30395 "This package provides a collection of almost monochrome Emacs themes:
30396 @code{almost-mono-black} and @code{almost-mono-white}.")
30397 (license license:gpl3+))))
30399 (define-public emacs-quasi-monochrome
30400 (let ((commit "68060dbbc0bbfe4924387392874186c5a29bb434")
30403 (name "emacs-quasi-monochrome")
30404 (version (git-version "1.2" revision commit))
30408 (uri (git-reference
30409 (url "https://github.com/lbolla/emacs-quasi-monochrome")
30411 (file-name (git-file-name name version))
30414 "0zp2xr0bjfqrpb0bqczzick1vvbjmipjavrdi70kw6a9caynvq22"))))
30415 (build-system emacs-build-system)
30416 (home-page "https://github.com/lbolla/emacs-quasi-monochrome")
30417 (synopsis "Dark color theme for Emacs")
30419 "This package provides a dark color theme with a black background, high
30420 contrast and few colors.")
30421 (license license:gpl3+))))
30423 (define-public emacs-doom-themes
30425 (name "emacs-doom-themes")
30429 (uri (git-reference
30430 (url "https://github.com/hlissner/emacs-doom-themes")
30431 (commit (string-append "v" version))))
30432 (file-name (git-file-name name version))
30434 (base32 "120pcas0l1m6w551qxfcl2fx0aysjqp91nn47zdxrr8rs01654wr"))))
30435 (build-system emacs-build-system)
30437 (list emacs-ert-runner))
30440 #:test-command #~(list "ert-runner")
30441 #:modules '((guix build emacs-build-system)
30443 (guix build emacs-utils)
30446 #~(modify-phases %standard-phases
30447 (add-after 'unpack 'move-themes
30449 ;; Move the source files to the top level, which is in the
30451 (for-each (lambda (f)
30452 (rename-file f (basename f)))
30454 (find-files "./themes" ".*\\.el$")
30455 (find-files "./extensions" ".*\\.el$"))))))))
30456 (synopsis "Wide collection of color themes for Emacs")
30457 (description "Emacs-doom-themes contains numerous popular color themes for
30458 Emacs that integrate with major modes like Org-mode.")
30459 (home-page "https://github.com/hlissner/emacs-doom-themes")
30460 (license license:expat)))
30462 (define-public emacs-modus-themes
30464 (name "emacs-modus-themes")
30469 (uri (git-reference
30470 (url "https://git.sr.ht/~protesilaos/modus-themes")
30472 (file-name (git-file-name name version))
30474 (base32 "16m8y56jyf44rj541fqb243pmbz9bk5py5zl1xhzal4fsk5bsfrg"))))
30475 (native-inputs (list texinfo))
30476 (build-system emacs-build-system)
30480 #~(modify-phases %standard-phases
30481 (add-after 'install 'makeinfo
30485 "--eval=(require 'ox-texinfo)"
30486 "--eval=(find-file \"doc/modus-themes.org\")"
30487 "--eval=(org-texinfo-export-to-info)")
30488 (install-file "doc/modus-themes.info"
30489 (string-append #$output "/share/info")))))))
30490 (home-page "https://protesilaos.com/modus-themes/")
30491 (synopsis "Accessible themes for Emacs (WCAG AAA standard)")
30493 "The Modus themes are designed for accessible readability. They conform
30494 with the highest standard for color contrast between any given combination of
30495 background and foreground values. This corresponds to the WCAG AAA standard,
30496 which specifies a minimum rate of distance in relative luminance of 7:1.
30498 The Modus themes consist of six themes. Modus Operandi is a light theme,
30499 while Modus Vivendi is dark. Modus Operandi Tinted and Modus Vivendi Tinted
30500 are variants of the two main themes. They slightly tone down the intensity of
30501 the background and provide a bit more color variety. Modus Operandi
30502 Deuteranopia and its companion Modus Vivendi Deuteranopia are optimized for
30503 users with red-green color deficiency.")
30504 (license (list license:gpl3+
30505 license:fdl1.3+)))) ; GFDLv1.3+ for the manual
30507 (define-public emacs-punpun-theme
30508 (let ((commit "7026684cd568cb691af3ced5de14c375fe6f5a1a")
30511 (name "emacs-punpun-theme")
30512 (version (git-version "0" revision commit))
30516 (uri (git-reference
30517 (url "https://depp.brause.cc/punpun-theme")
30519 (file-name (git-file-name name version))
30522 "1nwvlp93l5lj259mchd1a2glq3jxd0h1vazsbjqfi07hsg86xjp0"))))
30523 (build-system emacs-build-system)
30524 (home-page "https://depp.brause.cc/punpun-theme")
30525 (synopsis "Bleak Emacs theme")
30527 "A bleak theme. Uses shades of gray and the occasional splash of
30528 color. Designed for 256-color terminals. Comes in light and dark!")
30529 (license license:gpl3+))))
30531 (define-public emacs-spacemacs-theme
30533 (name "emacs-spacemacs-theme")
30538 (uri (git-reference
30539 (url "https://github.com/nashamri/spacemacs-theme")
30541 (file-name (git-file-name name version))
30543 (base32 "1yz8xg9ni9290nly5b93djkzk9235q6k4lhb5ghs6snr0r39157n"))))
30544 (build-system emacs-build-system)
30545 (home-page "https://github.com/nashamri/spacemacs-theme")
30547 "Light and dark theme for spacemacs that supports GUI and terminal")
30549 "Spacemacs theme is an Emacs color theme that started as
30550 a theme for Spacemacs. The theme comes with dark and light variants
30551 and it should work well with 256 color terminals.")
30552 (license license:gpl3+)))
30554 (define-public emacs-elixir-mode
30556 (name "emacs-elixir-mode")
30561 (uri (git-reference
30562 (url "https://github.com/elixir-editors/emacs-elixir")
30563 (commit (string-append "v" version))))
30564 (file-name (git-file-name name version))
30566 (base32 "0f2a360h8bizvqk6bmgxm59g8n7id5rzwlbv6d383h15w298mcga"))))
30567 (build-system emacs-build-system)
30569 (list emacs-pkg-info))
30571 "https://github.com/elixir-editors/emacs-elixir")
30572 (synopsis "Major mode for editing Elixir files")
30574 "Elixir-Mode provides font-locking, indentation and navigation support
30575 for the Elixir programming language.")
30576 (license license:gpl3+)))
30578 (define-public emacs-dimmer
30579 (let ((commit "2f915b100044e09dd647b22085e1696249c4b115")
30582 (name "emacs-dimmer")
30583 (version (git-version "0.4.2" revision commit))
30587 (uri (git-reference
30588 (url "https://github.com/gonewest818/dimmer.el")
30590 (file-name (git-file-name name version))
30593 "00y6645zjary1sz7517qy5pjwfm5ipsc46sypmdygin65hbbc8wg"))))
30594 (build-system emacs-build-system)
30595 (home-page "https://github.com/gonewest818/dimmer.el")
30596 (synopsis "Visually highlights the selected buffer in Emacs")
30597 (description "Dimmer provides a minor mode that indicates which buffer is
30598 currently active by dimming the faces in the other buffers. It does this
30599 nondestructively, and computes the dimmed faces dynamically such that your
30600 overall color scheme is shown in a muted form without requiring you to define
30601 what is a \"dim\" version of every face.")
30602 (license license:gpl3+))))
30604 (define-public emacs-minibuffer-line
30606 (name "emacs-minibuffer-line")
30611 (uri (string-append
30612 "https://elpa.gnu.org/packages/minibuffer-line-"
30616 (base32 "1ny4iirp26na5118wfgxlv6fxlrdclzdbd9m0lkrv51w0qw7spil"))))
30617 (build-system emacs-build-system)
30618 (home-page "https://elpa.gnu.org/packages/minibuffer-line.html")
30619 (synopsis "Display status info in the minibuffer window")
30621 "This package lets you display various status information in the
30622 minibuffer window instead of the mode-line. Of course, this is only displayed
30623 when the minibuffer window is not already used for other things (e.g. a
30624 minibuffer or an each area message).
30626 The contents and aspect is controlled by the @code{minibuffer-line-format}
30627 variable and the @code{minibuffer-line} face.")
30628 (license license:gpl3+)))
30630 (define-public emacs-minimap
30632 (name "emacs-minimap")
30637 (uri (string-append
30638 "https://elpa.gnu.org/packages/minimap-"
30642 (base32 "09fm0ziy8cdzzw08l7l6p63dxz2a27p3laia2v51mvbva8177ls1"))))
30643 (build-system emacs-build-system)
30644 (home-page "http://elpa.gnu.org/packages/minimap.html")
30645 (synopsis "Sidebar showing a @emph{mini-map} of a buffer")
30647 "Minimap provides Emacs with a minimap sidebar, which is a smaller
30648 display of the current buffer on the side, like a scrollbar. It highlights
30649 the currently shown region and updates its position automatically. You can
30650 navigate in the minibar by dragging the active region with the mouse, which
30651 will scroll the corresponding edit buffer. Additionally, you can overlay
30652 information from the tags gathered by CEDET's semantic analyzer.)")
30653 (license license:gpl3+)))
30655 (define-public emacs-eshell-prompt-extras
30657 (name "emacs-eshell-prompt-extras")
30659 (home-page "https://github.com/zwild/eshell-prompt-extras")
30663 (uri (git-reference
30666 (file-name (git-file-name name version))
30669 "0gb07mns23dgqqr6qfy7d6ndizy15sqgbgfaig6k5xbjnwi02v9g"))))
30670 (build-system emacs-build-system)
30671 (synopsis "Display extra information and color for your Eshell prompt")
30672 (description "This library displays various customizable elements for
30673 @code{eshell} prompts: remote user, remote host, python virtual environment
30674 info, git branch, git dirty info and git unpushed number. Multiple themes are
30676 (license license:gpl3+)))
30678 (define-public emacs-eshell-did-you-mean
30680 (name "emacs-eshell-did-you-mean")
30685 (uri (git-reference
30686 (url "https://github.com/xuchunyang/eshell-did-you-mean")
30687 (commit (string-append "v" version))))
30688 (file-name (git-file-name name version))
30690 (base32 "158g8b4crm0gf5pilfxf89hdsb22gr1wbrjyx9gf45bmcll3i9vf"))))
30691 (build-system emacs-build-system)
30692 (home-page "https://github.com/xuchunyang/eshell-did-you-mean")
30693 (synopsis "Display suggestions on 'command not found' in Eshell")
30694 (description "This library adds a list of 'Did you mean...' suggestions
30695 when the command was not found in Eshell. The suggestions are found after the
30696 commands that bear resemblance to the input command.")
30697 (license license:gpl3+)))
30699 (define-public emacs-unfill
30701 (name "emacs-unfill")
30703 (home-page "https://github.com/purcell/unfill")
30707 (uri (git-reference
30710 (file-name (git-file-name name version))
30712 (base32 "0pg64nza2mp4xyr69pjq51jsq1aaym0g38g4jzaxr0hh3w0ris1n"))))
30713 (build-system emacs-build-system)
30714 (synopsis "Inverse of Emacs' @code{fill-paragraph} and @code{fill-region}")
30716 "The functions in this package provide the inverse of Emacs'
30717 @code{fill-paragraph} and @code{fill-region}.")
30718 (license license:gpl3+)))
30720 (define-public emacs-windower
30722 (name "emacs-windower")
30724 (home-page "https://gitlab.com/ambrevar/emacs-windower")
30728 (uri (git-reference
30731 (file-name (git-file-name name version))
30733 (base32 "0h24gb1ip0czfasxm8wwcc3v19g7mznzw2sxkmmfb5iis59p7dfy"))))
30734 (build-system emacs-build-system)
30735 (synopsis "Helper functions for window manipulation in Emacs")
30737 "This package provides helper functions for window manipulation in Emacs,
30741 @item switch to last buffer,
30742 @item toggle single window display,
30743 @item toggle between horizontal and vertical splits,
30744 @item move borders more naturally,
30745 @item swap windows à-la @code{windmove}.
30747 (license license:gpl3+)))
30749 (define-public emacs-flycheck-cpplint
30751 (name "emacs-flycheck-cpplint")
30756 (uri (git-reference
30757 (url "https://github.com/flycheck/flycheck-google-cpplint")
30759 (file-name (git-file-name name version))
30761 (base32 "1nlyv81pyqmyz18dlzw5h23prhkvyzb0aasjxba8mm33avx0fvvb"))))
30762 (build-system emacs-build-system)
30765 (modify-phases %standard-phases
30766 (add-after 'unpack 'set-cpplint-path
30768 (substitute* "flycheck-google-cpplint.el"
30769 (("\"cpplint.py\"")
30770 (string-append "\"" (which "cpplint") "\""))))))))
30774 (list emacs-flycheck))
30775 (synopsis "Google C++ checker for Flycheck")
30776 (description "This package provides a interface for @code{cpplint} over
30777 Flycheck plugin. @code{cpplint} is a static code checker for C++, following
30778 Google guidelines.")
30779 (home-page "https://github.com/flycheck/flycheck-google-cpplint")
30780 (license license:gpl3+)))
30782 (define-public emacs-highlight-doxygen
30783 ;; Upstream does not tag releases. Commit below matches version bump.
30784 (let ((commit "eec4874e2e89d4eb39091aad89a67dff8f8ec84c"))
30786 (name "emacs-highlight-doxygen")
30791 (uri (git-reference
30792 (url "https://github.com/Lindydancer/highlight-doxygen")
30796 "0r3rv1px43r265716l3g20c1ss4381h1mc1kjxin22vdmrj6cmxy"))
30797 (file-name (git-file-name name version))))
30798 (build-system emacs-build-system)
30799 (home-page "https://github.com/Lindydancer/highlight-doxygen")
30800 (synopsis "Highlight Doxygen comments in Emacs, including code blocks")
30802 "This package highlights Doxygen comments.
30804 In addition to highlighting Doxygen commands and their arguments, entire
30805 Doxygen comment are highlighted, making them stand out compared to other
30806 comments. The code blocks are highlighted according to the
30807 language they are written in.")
30808 (license license:gpl3+))))
30810 (define-public emacs-helm-fish-completion
30812 (name "emacs-helm-fish-completion")
30814 (home-page "https://github.com/emacs-helm/helm-fish-completion")
30818 (uri (git-reference
30821 (file-name (git-file-name name version))
30823 (base32 "1j2vfngq3512naaayv9kx0d1q2zg1xgs69l8afc7swg72h0l0imw"))))
30824 (build-system emacs-build-system)
30826 (list emacs-helm emacs-fish-completion))
30827 (synopsis "Helm interface for Emacs fish-completion")
30828 (description "Helm Fish Completion is a Helm interface for Emacs
30829 fish-completion. It can be used in both Eshell and M-x shell.")
30830 (license license:gpl3+)))
30832 (define-public emacs-helm-switch-to-repl
30834 (name "emacs-helm-switch-to-repl")
30836 (home-page "https://github.com/emacs-helm/helm-switch-to-repl")
30840 (uri (git-reference
30843 (file-name (git-file-name name version))
30845 (base32 "0n8qa549c5syvgqw1h2zrakjjbygddpxzaifaq5irscgdcajrads"))))
30846 (build-system emacs-build-system)
30849 (synopsis "Helm action to switch directory in Emacs REPLs")
30850 (description "Helm \"Switch-to-REPL\" offers the
30851 @code{helm-switch-to-repl} action, a generalized and extensible version of
30852 @code{helm-ff-switch-to-shell}. It can be added to @code{helm-find-files} and
30853 other @code{helm-type-file} sources such as @code{helm-locate}.")
30854 (license license:gpl3+)))
30856 (define-public emacs-telega-server
30858 (name "emacs-telega-server")
30863 (uri (git-reference
30864 (url "https://github.com/zevlg/telega.el")
30865 (commit (string-append "v" version))))
30867 (base32 "1ffy17i5fi1bw5r5m6x372c52hc1k83wxdxvi4z0hixyklj48nsv"))
30868 (file-name (git-file-name "emacs-telega" version))
30870 (search-patches "emacs-telega-path-placeholder.patch"
30871 "emacs-telega-test-env.patch"))))
30872 (build-system gnu-build-system)
30876 #~(list (string-append "CC=" #$(cc-for-target))
30877 (string-append "INSTALL_PREFIX=" #$output "/bin"))
30879 #~(modify-phases %standard-phases
30880 (add-before 'configure 'enter-subdirectory
30881 (lambda _ (chdir "server")))
30882 (replace 'configure
30884 (substitute* "run_tests.py"
30885 (("^(TELEGA_SERVER = ).*$" _all prefix)
30886 (string-append prefix
30887 "\"" #$output "/bin/telega-server\"\n")))))
30889 (add-after 'install 'check
30890 (assoc-ref %standard-phases 'check))
30891 (add-before 'install-license-files 'leave-subdirectory
30892 (lambda _ (chdir ".."))))
30893 #:test-target "test"))
30895 (list tdlib-1.8.0 libappindicator))
30897 (list python pkg-config))
30898 (home-page "https://zevlg.github.io/telega.el/")
30899 (synopsis "Server process of Telega")
30900 (description "Telega-server is helper program to interact with Telegram
30901 service, and connect it with Emacs via inter-process communication.")
30902 (license license:gpl3+)))
30904 (define-public emacs-telega
30906 (inherit emacs-telega-server)
30907 (name "emacs-telega")
30908 (build-system emacs-build-system)
30911 #:emacs (if (target-64bit?)
30913 ;; Require wide-int support for 32-bit platform.
30915 #:include #~(cons "^etc\\/" %default-include)
30917 #~(modify-phases %standard-phases
30918 (add-after 'unpack 'patch-sources
30919 (lambda* (#:key inputs #:allow-other-keys)
30920 ;; Hard-code paths to `ffplay` and `ffmpeg`.
30921 (let* ((ffplay-bin (search-input-file inputs "/bin/ffplay"))
30922 (ffmpeg-bin (search-input-file inputs "/bin/ffmpeg")))
30923 (substitute* '("telega-ffplay.el" "telega-vvnote.el")
30924 (("(shell-command-to-string\|concat) \"(ffmpeg\|ffprobe)"
30926 (string-append func " \""
30928 inputs (string-append "/bin/" cmd))))
30929 (("\\(executable-find \"ffplay\"\\)")
30930 (string-append "(and (file-executable-p \"" ffplay-bin "\")"
30931 "\"" ffplay-bin "\")"))
30932 (("\\(executable-find \"ffmpeg\"\\)")
30933 (string-append "(and (file-executable-p \"" ffmpeg-bin "\")"
30934 "\"" ffmpeg-bin "\")"))))))
30935 (add-after 'unpack 'configure
30936 (lambda* (#:key inputs outputs #:allow-other-keys)
30937 (substitute* "telega-customize.el"
30938 (("@TELEGA_SERVER_BIN@")
30939 (search-input-file inputs "/bin/telega-server")))
30940 (substitute* "telega-util.el"
30941 (("@TELEGA_SHARE@")
30942 (string-append (elpa-directory (assoc-ref outputs "out"))
30945 (list emacs-telega-server ffmpeg))
30946 (native-inputs '())
30948 (list emacs-visual-fill-column emacs-company
30949 emacs-rainbow-identifiers))
30950 (synopsis "GNU Emacs client for the Telegram messenger")
30951 (description "Telega is a full-featured, unofficial GNU Emacs-based client
30952 for the Telegram messaging platform.")))
30954 (define-public emacs-telega-contrib
30956 (inherit emacs-telega)
30957 (name "emacs-telega-contrib")
30960 #:exclude #~(list "telega-live-location.el")
30962 #~(modify-phases %standard-phases
30963 (add-after 'unpack 'enter-subdirectory
30964 (lambda _ (chdir "contrib")))
30965 (add-before 'install-license-files 'leave-subdirectory
30966 (lambda _ (chdir ".."))))))
30968 (native-inputs '())
30970 (list emacs-alert emacs-all-the-icons emacs-dashboard emacs-telega))
30971 (synopsis "Contributed packages to Telega")
30972 (description "Telega-contrib is a collection of third-party
30973 contributed packages to Telega.")))
30975 (define-public emacs-doom-modeline
30977 (name "emacs-doom-modeline")
30982 (uri (git-reference
30983 (url "https://github.com/seagle0128/doom-modeline")
30984 (commit (string-append "v" version))))
30986 (base32 "1v24hiqs4zbq613vanixgng9cx697di63jpafpmjlsripjfvk1qp"))
30987 (file-name (git-file-name name version))))
30988 (build-system emacs-build-system)
30990 `(#:test-command '("ert-runner")))
30991 (native-inputs (list emacs-ert-runner))
30993 (list emacs-all-the-icons emacs-compat emacs-dash emacs-shrink-path))
30994 (synopsis "Fancy and fast mode-line inspired by minimalism design")
30995 (description "Doom modeline is a complete modeline for GNU Emacs inspired
30996 by the Doom theme collection. This modeline features support for mode-specific
30997 icon support, git integration, and several other utilities.")
30998 (home-page "https://github.com/seagle0128/doom-modeline/")
30999 (license license:gpl3+)))
31001 (define-public emacs-mood-line
31003 (name "emacs-mood-line")
31008 (uri (git-reference
31009 (url "https://gitlab.com/jessieh/mood-line")
31011 (file-name (git-file-name name version))
31013 (base32 "1j2fjsqbv2f7m1hrrb18gl4cj4kn749xkvpm2p82d7rh4a37q2pr"))))
31014 (build-system emacs-build-system)
31015 (home-page "https://gitlab.com/jessieh/mood-line")
31016 (synopsis "Minimal mode-line for Emacs")
31018 "Mood-line is a minimal Emacs mode-line configuration that aims to
31019 replicate some of the features of the Doom modeline package.")
31020 (license license:gpl2+)))
31022 (define-public emacs-simple-modeline
31024 (name "emacs-simple-modeline")
31029 (uri (git-reference
31030 (url "https://github.com/gexplorer/simple-modeline")
31032 (file-name (git-file-name name version))
31035 "1rnzrx7gcaw056cqvnb1wai4hala0r0gpk3a4kyyghyp9hmrxbb5"))))
31036 (build-system emacs-build-system)
31037 (home-page "https://github.com/gexplorer/simple-modeline")
31038 (synopsis "Simple mode-line configuration for Emacs")
31040 "This package provides a simple mode-line configuration for Emacs.")
31041 (license license:gpl3+)))
31043 (define-public emacs-frames-only-mode
31045 (name "emacs-frames-only-mode")
31050 (uri (git-reference
31051 (url "https://github.com/davidshepherd7/frames-only-mode")
31053 (file-name (git-file-name name version))
31055 (base32 "0y0sdjixaxvywrlp2sw51wnczhk51q1svl5aghbk9rkxpwv9ys9v"))))
31056 (build-system emacs-build-system)
31058 (list emacs-dash emacs-s))
31059 (home-page "https://github.com/davidshepherd7/frames-only-mode")
31060 (synopsis "Use frames instead of Emacs windows")
31062 "This is an Emacs global minor mode to use Emacs frames instead of Emacs'
31063 internal windowing system. This combines particularly well with tiling window
31064 managers such as XMonad.")
31065 (license license:gpl3+)))
31067 (define-public emacs-modalka
31069 (name "emacs-modalka")
31074 (uri (git-reference
31075 (url "https://github.com/mrkkrp/modalka")
31077 (file-name (git-file-name name version))
31079 (base32 "0ggj8q92sb6wp3hs1vhpmy56id0p3i9zwnw24g2v7xa7w8ac9s7l"))))
31080 (build-system emacs-build-system)
31081 (home-page "https://github.com/mrkkrp/modalka")
31082 (synopsis "Minor mode to easily define native custom modal editing")
31084 "This is a building kit to help switch to modal editing in Emacs. The
31085 main goal of the package is to make modal editing in Emacs as natural and
31086 native as possible. Modalka lets you define your own keys and does not come
31087 with a preconfigured set of keys.")
31088 (license license:gpl3+)))
31090 (define-public emacs-shrink-path
31092 (name "emacs-shrink-path")
31097 (uri (git-reference
31098 (url "https://gitlab.com/bennya/shrink-path.el.git")
31099 (commit (string-append "v" version))))
31102 "0kx0c4syd7k6ff9j463bib32pz4wq0rzjlg6b0yqnymlzfr1mbki"))
31103 (file-name (git-file-name name version))))
31104 (build-system emacs-build-system)
31106 (list emacs-s emacs-dash emacs-f))
31107 (home-page "https://gitlab.com/bennya/shrink-path.el")
31108 (synopsis "Fish-style path truncation in emacs-lisp")
31109 (description "This package provides utility functions that allow for
31110 Fish-style truncated directories in eshell and various modelines.")
31111 (license license:gpl3+)))
31113 (define-public emacs-org-present
31114 (let ((commit "d13acd70eff6a1608bc991920232146a0de76b21"))
31116 (name "emacs-org-present")
31121 (uri (git-reference
31122 (url "https://github.com/rlister/org-present")
31124 (file-name (git-file-name name version))
31127 "0jz8xiny3rv9ql0p623byz32pip1b82j2c2nyfz2wd114kiabb6q"))))
31128 (build-system emacs-build-system)
31129 (synopsis "Ultra-minimalist presentation minor-mode for Emacs org-mode")
31130 (description "Org-present is an extremely minimalist presentation tool
31131 for Emacs org-mode. Simply layout your presentation with each slide under a
31132 top-level header, start the minor mode with @code{org-present}, and page through
31133 each slide with left/right keys.")
31134 (home-page "https://github.com/rlister/org-present")
31135 (license license:gpl2))))
31137 (define-public emacs-fullframe
31139 (name "emacs-fullframe")
31144 (uri (git-reference
31145 (url "https://git.sr.ht/~tomterl/fullframe")
31148 (base32 "1q276p3bagx9fhzyzjmz449f95k1z287x4p34980d06klj11lrab"))
31149 (file-name (git-file-name name version))))
31150 (build-system emacs-build-system)
31151 (home-page "https://git.sr.ht/~tomterl/fullframe")
31152 (synopsis "Generalized automatic execution in a single frame")
31154 "This library provides helpers for single-window-per-frame execution of
31155 buffer-exposing commands.")
31156 (license license:gpl3+)))
31158 (define-public emacs-eshell-toggle
31159 (let ((commit "ddfbe0a693497c4d4bc5494a19970ba4f6ab9033")
31162 (name "emacs-eshell-toggle")
31163 (version (git-version "0.10.0" revision commit))
31167 (uri (git-reference
31168 (url "https://github.com/4DA/eshell-toggle")
31172 "0xqrp8pwbmfxjdqipgpw5nw633mvhjjjm3k3j9sh9xdpmw05hhws"))
31173 (file-name (git-file-name name version))))
31174 (build-system emacs-build-system)
31177 (home-page "https://github.com/4DA/eshell-toggle")
31178 (synopsis "Show and hide an @code{eshell} instance")
31179 (description "This package toggles an @code{eshell} instance for the
31181 (license license:gpl3+))))
31183 (define-public emacs-repl-toggle
31185 (name "emacs-repl-toggle")
31190 (uri (git-reference
31191 (url "https://git.sr.ht/~tomterl/repl-toggle")
31195 "18dpy7a7yrn7m7qifrjk5zcr6zbd3kwp9pb55la9052vwipxxvfk"))
31196 (file-name (git-file-name name version))))
31197 (build-system emacs-build-system)
31199 (list emacs-fullframe))
31200 (home-page "https://git.sr.ht/~tomterl/repl-toggle")
31201 (synopsis "Switch to and from current major mode's REPL")
31202 (description "This package provides a function to switch to and from a
31203 REPL appropriate to the current major mode.")
31204 (license license:gpl3+)))
31206 (define-public emacs-rime
31208 (name "emacs-rime")
31213 (uri (git-reference
31214 (url "https://github.com/DogLooksGood/emacs-rime")
31215 (commit (string-append "v" version))))
31216 (file-name (git-file-name name version))
31218 (base32 "0z0iwsqr92g8ykxb51gkawwxwzx0faw0027zgdi7c38ngjqld237"))))
31219 (build-system emacs-build-system)
31221 '(#:include (cons "\\.so$" %default-include)
31223 (modify-phases %standard-phases
31224 (add-after 'unpack 'patch-rime-data-path
31225 (lambda* (#:key inputs #:allow-other-keys)
31226 (make-file-writable "rime.el")
31227 (emacs-substitute-variables "rime.el"
31228 ("rime-share-data-dir"
31229 (search-input-directory inputs
31230 "share/rime-data")))))
31231 (add-before 'install 'build-emacs-module
31233 (invoke "make" "lib"))))))
31235 (list librime rime-data))
31237 (list emacs-dash emacs-popup emacs-posframe))
31238 (home-page "https://github.com/DogLooksGood/emacs-rime")
31239 (synopsis "Rime input method in Emacs")
31241 "Rime is an Emacs input method built upon Rime input method engine.")
31242 (license license:gpl3+)))
31244 (define-public emacs-bison-mode
31246 (name "emacs-bison-mode")
31251 (uri (string-append
31252 "https://elpa.nongnu.org/nongnu/bison-mode-"
31255 (base32 "19n9kz1ycjpxngd3clzr8lzrnnw19l8sfvlx1yqn35hk7017z7ab"))))
31256 (build-system emacs-build-system)
31257 (home-page "https://elpa.nongnu.org/nongnu/bison-mode.html")
31258 (synopsis "Major mode for editing Bison, Yacc, and Lex files")
31260 "This Emacs package provides a major mode for editing Bison, Yacc, and
31262 (license license:gpl2+)))
31264 (define-public emacs-blackout
31265 (let ((commit "4bac44671fca4c98d96aa94c79946bf4d4baf0ee")
31268 (name "emacs-blackout")
31269 (version (git-version "1.0" revision commit))
31273 (uri (git-reference
31274 (url "https://github.com/raxod502/blackout")
31278 "1wnh0nwy6r3a18sy9sqmrwv04vnmaflxy4g7mq8jiyyjijri7l1b"))
31279 (file-name (git-file-name name version))))
31280 (build-system emacs-build-system)
31281 (home-page "https://github.com/raxod502/blackout")
31282 (synopsis "Clean up mode lighters")
31283 (description "This package provides a function for hiding and customizing
31284 display of major and minor modes in the mode line.")
31285 (license license:gpl3+))))
31287 (define-public emacs-ivy-omni-org
31288 (let ((commit "5460a9fc061a4a5ae8372dc8df966ced94abab58")
31291 (name "emacs-ivy-omni-org")
31292 (version (git-version "0.2.1" revision commit))
31296 (uri (git-reference
31297 (url "https://github.com/akirak/ivy-omni-org")
31299 (file-name (git-file-name name version))
31302 "1np1f51hc3phkl5w02a9a79gl38ra2d535i784fn4pqaasvm0rq8"))))
31303 (build-system emacs-build-system)
31305 (list emacs-ivy emacs-dash))
31306 (synopsis "Browse anything in Org mode")
31307 (description "This package allows Org items to be accessed via the Ivy
31309 (home-page "https://github.com/akirak/ivy-omni-org")
31310 (license license:gpl3+))))
31312 (define-public emacs-ivy-posframe
31314 (name "emacs-ivy-posframe")
31319 (uri (string-append "https://elpa.gnu.org/packages/"
31320 "ivy-posframe-" version ".tar"))
31322 (base32 "0b498qzaydjrhplx4d7zcrs883dlrhfiz812sv4m3pmhfwifcchh"))))
31323 (build-system emacs-build-system)
31325 (list emacs-ivy emacs-posframe))
31326 (home-page "https://github.com/tumashu/ivy-posframe")
31327 (synopsis "Pop a posframe (a child frame) to show Ivy candidates")
31329 "This package provides an Emacs Ivy extension, which let Ivy use
31330 posframe to show its candidate menu.")
31331 (license license:gpl3+)))
31333 (define-public emacs-shackle
31335 (name "emacs-shackle")
31340 (uri (git-reference
31341 (url "https://depp.brause.cc/shackle.git")
31343 (file-name (git-file-name name version))
31345 (base32 "0s4br59zpd5qq7z9074ddq9lmwnddq2ixijwi666wp5gxw45fpgg"))))
31346 (build-system emacs-build-system)
31347 (synopsis "Enforce rules for popups")
31349 "This package provides a global minor mode in which users
31350 can specify how popup-displaying functions occupy the screen.")
31351 (home-page "https://depp.brause.cc/shackle")
31352 (license license:gpl3+)))
31354 (define-public emacs-showtip
31355 (let ((commit "930da302809a4257e8d69425455b29e1cc91949b")
31358 (name "emacs-showtip")
31359 (version (git-version "0.01" revision commit))
31363 (uri (git-reference
31364 (url "https://github.com/emacsorphanage/showtip")
31366 (file-name (git-file-name name version))
31368 (base32 "01zak0zhha6dp7a2hm28d065gjnc462iwpsfyxhbxgfzcdlicqc7"))))
31369 (build-system emacs-build-system)
31370 (home-page "https://github.com/emacsorphanage/showtip")
31371 (synopsis "Show tip at cursor")
31373 "This library provide one function to show tooltip near the cursor.")
31374 (license license:gpl2+))))
31376 (define-public emacs-sdcv
31377 ;; No tagged version upstream.
31378 (let ((commit "943ae3e90cc9a0a88a37cc710acd7424fd4defc4" )
31381 (name "emacs-sdcv")
31382 (version (git-version "1.5.2" revision commit))
31386 (uri (git-reference
31387 (url "https://github.com/stardiviner/sdcv.el")
31389 (file-name (git-file-name name version))
31391 (base32 "0i1ylvw7p46pkf3yyyzcdmdhsspzymnnnvx8s0i7vynngr5x0vzh"))))
31392 (build-system emacs-build-system)
31394 (list emacs-popup emacs-pos-tip emacs-showtip))
31395 (home-page "https://www.emacswiki.org/emacs/download/sdcv.el")
31396 (synopsis "Emacs interface for @code{sdcv}")
31398 "This plugin translates words with @code{sdcv}, and displays
31399 translation using a tooltip or in a dedicated buffer.")
31400 (license license:gpl3+))))
31402 (define-public emacs-helm-lacarte
31403 (let ((commit "40a6c449720be521435b6b1da7911af3a0b9dca0")
31406 (name "emacs-helm-lacarte")
31407 (version (git-version "0" revision commit))
31411 (uri (git-reference
31412 (url "https://github.com/emacs-helm/helm-lacarte")
31414 (file-name (git-file-name name version))
31417 "0dkfd3lap2v7b4nckzv8v7hczmzwzhbl75haqkra107ln91ldbwc"))))
31418 (build-system emacs-build-system)
31420 (list emacs-helm emacs-lacarte))
31421 (synopsis "Helm interface to @code{lacarte.el}")
31422 (description "This package provides a Helm interface to
31423 @code{lacarte.el}, a package that displays mode-specific commands as menu
31425 (home-page "https://github.com/emacs-helm/helm-lacarte")
31426 (license license:gpl3+))))
31428 (define-public emacs-esh-help
31429 (let ((commit "417673ed18a983930a66a6692dbfb288a995cb80")
31432 (name "emacs-esh-help")
31433 (version (git-version "1.0.1" revision commit))
31437 (uri (git-reference
31438 (url "https://github.com/tom-tan/esh-help")
31440 (file-name (git-file-name name version))
31443 "0x7d51a6ljl014zy7mi27vzcqqbcwg9z4drq29fr2ajk82mqhlgd"))))
31444 (build-system emacs-build-system)
31447 (synopsis "Help functions for Eshell")
31448 (description "This package provides a @code{run-help} function inspired
31449 by @code{zsh} as well as @code{eldoc} support.")
31450 (home-page "https://github.com/tom-tan/esh-help")
31451 (license license:gpl3+))))
31453 (define-public emacs-isearch-dabbrev
31454 (let ((commit "1efe7abba4923015cbc2462395deaec5446a9cc8")
31457 (name "emacs-isearch-dabbrev")
31458 (version (git-version "0.1" revision commit))
31462 (uri (git-reference
31463 (url "https://github.com/Dewdrops/isearch-dabbrev")
31465 (file-name (git-file-name name version))
31468 "17d0816awadvsw1qc7r0p6ira75jmgxaj9hsk9ypayxsaf6ynyrb"))))
31469 (build-system emacs-build-system)
31470 (synopsis "Use @code{dabbrev} within @code{isearch}")
31471 (description "This package allows @code{dabbrev-expand} to be used
31472 within @code{isearch-mode}.")
31473 (home-page "https://github.com/Dewdrops/isearch-dabbrev")
31474 (license license:gpl3+))))
31476 (define-public emacs-helm-linux-disks
31477 (let ((commit "2cdc8116a08534289eb0dc76461d0f93a0bdf231")
31480 (name "emacs-helm-linux-disks")
31481 (version (git-version "0.1" revision commit))
31485 (uri (git-reference
31486 (url "https://github.com/Akirak/helm-linux-disks")
31488 (file-name (git-file-name name version))
31491 "1limw82zd8jz3mhh9rqlmhj4cjhfgybs9argfjid1an3vpyhc85i"))))
31492 (build-system emacs-build-system)
31495 (synopsis "Mount/unmount volumes in Linux via Helm")
31496 (description "This package provides a Helm interface to run operations
31497 on removable volumes in Linux.")
31498 (home-page "https://github.com/Akirak/helm-linux-disks")
31499 (license license:gpl3+))))
31501 (define-public emacs-psession
31502 (let ((commit "3e97267c92b164584e06a6c70ee7491714c7c12c")
31505 (name "emacs-psession")
31506 (version (git-version "1.5" revision commit))
31510 (uri (git-reference
31511 (url "https://github.com/thierryvolpiatto/psession")
31513 (file-name (git-file-name name version))
31516 "15frl618393bc891d0yi3mdxzvbq790a86vfvp3dyd5riz4ddg95"))))
31517 (build-system emacs-build-system)
31519 (list emacs-async))
31520 (synopsis "Persistent save of @code{elisp} objects")
31521 (description "This package provides minor modes for saving Emacs session
31522 data, including buffers, window configuration, variables, and more.")
31523 (home-page "https://github.com/thierryvolpiatto/psession")
31524 (license license:gpl3+))))
31526 (define-public emacs-parseedn
31528 (name "emacs-parseedn")
31533 (uri (git-reference
31534 (url "https://github.com/clojure-emacs/parseedn")
31535 (commit (string-append "v" version))))
31536 (file-name (git-file-name name version))
31538 (base32 "01j8nrkcm2s0ps277b5zb4pys29lk4cq49rlcqpj19gbfpkwcvdv"))))
31539 (build-system emacs-build-system)
31541 (list emacs-a emacs-parseclj))
31542 (home-page "https://cider.mx")
31543 (synopsis "EDN parser for Emacs Lisp")
31545 "Parseedn is an Emacs Lisp library for parsing EDN (Clojure) data.
31546 It uses parseclj's shift-reduce parser internally.")
31547 (license license:gpl3+)))
31549 (define-public emacs-parseclj
31551 (name "emacs-parseclj")
31556 (uri (git-reference
31557 (url "https://github.com/clojure-emacs/parseclj")
31558 (commit (string-append "v" version))))
31559 (file-name (git-file-name name version))
31561 (base32 "0ifc9gyp7hr97ssnsqxiwrzmldqysz874crlg6jm4iy5l9fyls22"))))
31562 (build-system emacs-build-system)
31563 (propagated-inputs (list emacs-a))
31564 (home-page "https://cider.mx")
31565 (synopsis "Clojure parser for Emacs Lisp")
31567 "Parseclj is an Emacs Lisp library for parsing Clojure code and EDN data.
31568 It supports several input and output formats, all powered by the same
31569 shift-reduce parser function.")
31570 (license license:gpl3+)))
31572 (define-public emacs-hide-mode-line
31574 (name "emacs-hide-mode-line")
31578 (uri (git-reference
31579 (url "https://github.com/hlissner/emacs-hide-mode-line")
31580 (commit (string-append "v" version))))
31581 (file-name (git-file-name name version))
31584 "0dfzjgxfkcw4wisbyldsm1km18pfp9j8xgadn6qnsz11l55bpgyp"))))
31585 (build-system emacs-build-system)
31586 (synopsis "Emacs plugin that hides the mode-line")
31587 (description "A minor mode that hides the mode-line in your current
31588 buffer. It can be used to toggle an alternative mode-line, toggle its visibility,
31589 or simply disable the mode-line in buffers where it is not very useful.")
31590 (home-page "https://github.com/hlissner/emacs-hide-mode-line")
31591 (license license:expat)))
31593 (define-public emacs-helm-cider
31595 (name "emacs-helm-cider")
31599 (uri (git-reference
31600 (url "https://github.com/clojure-emacs/helm-cider")
31601 (commit (string-append "v" version))))
31602 (file-name (git-file-name name version))
31605 "0jjjy68pmmsx0biawyi5581cqh2b4zb0q8f5vs49ihpzn6zc04vk"))))
31606 (build-system emacs-build-system)
31608 (list emacs-helm emacs-cider))
31609 (home-page "https://github.com/clojure-emacs/helm-cider")
31610 (synopsis "Helm interface to Clojure's CIDER")
31611 (description "Helm-CIDER adds Helm interfaces to
31612 @command{cider-apropos}, @command{cider-apropos-documentation},
31613 @command{cider-browse-ns} (namespaces).
31615 It also provides original Helm commands: @command{helm-cider-spec},
31616 @command{helm-cider-spec-ns}, @command{helm-cider-repl-history},
31617 @command{helm-cider-cheatsheet}.")
31618 (license license:gpl3+)))
31620 (define-public emacs-edn
31621 ;; No release since February 2016
31622 (let ((commit "be9e32d1b49e35247b263b0243df7cfdc8d413ab"))
31625 (version (git-version "1.1.2" "1" commit))
31626 (home-page "https://github.com/expez/edn.el")
31629 (uri (git-reference
31632 (file-name (git-file-name name version))
31635 "1xp2hjhn52k6l1g6ypva6dsklpawni7gvjafbz6404f9dyxflh7l"))))
31636 (build-system emacs-build-system)
31639 (synopsis "Read and write EDN from Elisp")
31640 (description "This is an Emacs Lisp library for reading and writing the
31641 data format @code{edn}. See @url{https://github.com/edn-format/edn}.")
31642 (license license:gpl3+))))
31644 (define-public emacs-ednc
31645 (let ((commit "940a4adbbeb3b6b1a72270a814d52770dd89a997")
31648 (name "emacs-ednc")
31649 (version (git-version "0.1" revision commit))
31653 (uri (git-reference
31654 (url "https://github.com/sinic/ednc")
31656 (file-name (git-file-name name version))
31658 (base32 "1gsx2qgv5xm9r0i0axd4hf31g2rq2m4a1hvnif48g4xb0llss73c"))))
31659 (build-system emacs-build-system)
31660 (home-page "https://github.com/sinic/ednc")
31661 (synopsis "Emacs Desktop Notification Center")
31663 "The Emacs Desktop Notification Center (EDNC) is an Emacs package written
31664 in pure Lisp that implements a Desktop Notifications service according to the
31665 freedesktop.org specification. EDNC aspires to be a small, but flexible
31666 drop-in replacement of standalone daemons like Dunst.")
31667 (license license:gpl3+))))
31669 (define-public emacs-helm-clojuredocs
31670 (let ((commit "5a7f0f2cb401be0b09e73262a1c18265ab9a3cea"))
31672 (name "emacs-helm-clojuredocs")
31673 (version (git-version "0.3" "1" commit))
31674 (home-page "https://github.com/mbuczko/helm-clojuredocs")
31677 (uri (git-reference
31680 (file-name (git-file-name name version))
31683 "015b8zxh91ljhqvn6z43gy08di54xcw9skw0i7frj3d7gk984qhl"))))
31684 (build-system emacs-build-system)
31686 (list emacs-helm emacs-edn))
31687 (synopsis "Search help on clojuredocs.org with Helm")
31688 (description "This package provides a Helm interface to lookup Clojure
31689 documentation on @url{https://clojuredocs.org} with Helm.
31691 Two function are exposed:
31693 @item @command{helm-clojuredocs}: opens a Helm session with no initial
31694 pattern. Searching starts with minimal 3 characters entered.
31695 @item @command{helm-clojuredocs-at-point}: opens a Helm session with initial
31696 pattern guessed from thing under current cursor position.
31698 (license license:gpl3+))))
31700 (define-public emacs-helm-selector
31702 (name "emacs-helm-selector")
31704 (home-page "https://github.com/emacs-helm/helm-selector")
31708 (uri (git-reference
31711 (file-name (git-file-name name version))
31714 "01lh1df0bnas1p7xlqc4i1jd67f8lxgq0q2zsvx10z8828i76j3v"))))
31715 (build-system emacs-build-system)
31718 (synopsis "Convenient related-buffer selection for Emacs Helm")
31719 (description "Helm Selector is a collection of Helm helper functions for
31720 convenient buffer selection.
31722 It is especially helpful to create Helm sessions to navigate buffers of a
31723 given mode in a “do what I mean” fashion:
31725 If current buffer is not of mode X, switch to last buffer of mode X. If
31726 current buffer is of mode X, show a Helm session of all buffers in mode X. In
31727 the Helm session, it’s also possible to input an arbitrary name which will be
31728 used for the creation of a new buffer of mode X.")
31729 (license license:gpl3+)))
31731 (define-public emacs-helm-wordnut
31732 (let ((commit "9681a9535a839cd5d042c302945ae595852fe7bf"))
31734 (name "emacs-helm-wordnut")
31735 (version (git-version "0.1" "1" commit))
31736 (home-page "https://github.com/emacs-helm/helm-wordnut")
31740 (uri (git-reference
31743 (file-name (git-file-name name version))
31746 "0msj7nbsb363pxamxi7n2z08cp5jizkpjbwia8f5a161wjglrihs"))))
31747 (build-system emacs-build-system)
31754 (modify-phases %standard-phases
31755 (add-after 'unpack 'configure
31756 (lambda* (#:key inputs #:allow-other-keys)
31757 (let ((wn (assoc-ref inputs "wordnet")))
31758 ;; .el is read-only in git.
31759 (chmod "helm-wordnut.el" #o644)
31760 ;; Specify the absolute file names of the various
31761 ;; programs so that everything works out-of-the-box.
31762 (emacs-substitute-variables "helm-wordnut.el"
31763 ("helm-wordnut-prog" (string-append wn "/bin/wn"))
31764 ("helm-wordnut-wordnet-location"
31765 (string-append wn "/dict")))))))))
31766 (synopsis "Emacs Helm interface for Wordnet")
31767 (description "This package is merely a combination of two other Emacs
31768 packages: @code{helm-wordnet} and @code{wordnut}. It features word completion
31769 with Helm and displays a buffer of all the different result types available to
31771 (license license:gpl3+))))
31773 (define-public emacs-helm-xref
31775 (name "emacs-helm-xref")
31780 (uri (git-reference
31781 (url "https://github.com/brotzeit/helm-xref")
31783 (file-name (git-file-name name version))
31785 (base32 "0v0wm1x11r1h9p139c5rl0r4s5q6092bmwrsnr2140ddbq34mnvy"))))
31786 (build-system emacs-build-system)
31789 (home-page "https://github.com/brotzeit/helm-xref")
31790 (synopsis "Helm interface for @code{xref}")
31791 (description "This package provides a Helm interface for selecting
31792 @code{xref} results.")
31793 (license license:gpl3+)))
31795 (define-public emacs-metal-mercury-mode
31796 (let ((commit "99e2d8fb7177cae3bfa2dec2910fc28216d5f5a8")
31800 (name "emacs-metal-mercury-mode")
31801 (version (git-version version revision commit))
31805 (uri (git-reference
31806 (url "https://github.com/ahungry/metal-mercury-mode")
31810 "0iil5k3rgifz2vqwsy12rbv5rzyvidq4sgwazsb2hzys8xynmfn5"))
31811 (file-name (git-file-name name version))))
31812 (build-system emacs-build-system)
31815 (synopsis "Major mode for editing Mercury files")
31817 "Major mode for editing Mercury files. This is a rewrite of the original
31818 mercury-mode provided by Emacs as a wrapper around prolog-mode.")
31819 (home-page "https://github.com/ahungry/metal-mercury-mode")
31820 (license license:gpl3+))))
31822 (define-public emacs-boxquote
31824 (name "emacs-boxquote")
31829 (uri (git-reference
31830 (url "https://github.com/davep/boxquote.el")
31831 (commit (string-append "v" version))))
31832 (file-name (git-file-name name version))
31834 (base32 "0d7m9kcwhbgv4pikaa2dzlg9zkmwdhyx2ksn68di6xzbh838892q"))))
31835 (build-system emacs-build-system)
31836 (home-page "https://github.com/davep/boxquote.el")
31837 (synopsis "Quote text with different kinds of boxes")
31838 (description "@code{boxquote} provides a set of functions for using
31839 a text quoting style that partially boxes in the left hand side of an area of
31840 text, such a marking style might be used to show externally included text or
31842 (license license:gpl3+)))
31844 (define-public emacs-buffer-env
31846 (name "emacs-buffer-env")
31850 (uri (string-append "https://elpa.gnu.org/packages/buffer-env-"
31854 "0y8ik87dqldhn6q631zp2ln9z5byqgm9icrvr4xrdx6g8mr9c56z"))))
31855 (build-system emacs-build-system)
31856 (propagated-inputs (list emacs-compat))
31857 (home-page "https://github.com/astoff/buffer-env")
31858 (synopsis "Create buffer-local process environments")
31859 (description "This package creates buffer-local environments using scripts
31860 similar to Direnv. This allows Emacs to call the correct version of external
31861 programs such as linters, compilers, and language servers on a per-project
31863 (license license:gpl3+)))
31865 (define-public emacs-buffer-move
31867 (name "emacs-buffer-move")
31872 (uri (git-reference
31873 (url "https://github.com/lukhas/buffer-move")
31875 (file-name (git-file-name name version))
31877 (base32 "0xdks4jfqyhkh34y48iq3gz8swp0f526kwnaai5mhgvazvs4za8c"))))
31878 (build-system emacs-build-system)
31879 (home-page "https://github.com/lukhas/buffer-move")
31880 (synopsis "Functions for moving Emacs' buffers around")
31882 "This package define functions for swapping buffers between windows
31883 contained in the same frame. An alternate behavior is to have the current
31884 window switch to the previous buffer instead of swapping with the other
31886 (license license:gpl3+)))
31888 (define-public emacs-company-ebdb
31890 (name "emacs-company-ebdb")
31895 (uri (string-append "https://elpa.gnu.org/packages/"
31896 "company-ebdb-" version ".el"))
31898 (base32 "146qpiigz12zp1823ggxfrx090g0mxs7gz1ba7sa0iq6ibgzwwm9"))))
31899 (build-system emacs-build-system)
31901 (list emacs-company))
31902 (home-page "https://elpa.gnu.org/packages/company-ebdb.html")
31903 (synopsis "Company completion backend for EBDB in Message mode")
31904 (description "@code{company-ebdb} provides Company mode integration for
31905 EBDB. It is copied more or less intact from @code{company-bbdb}, originally
31907 (license license:gpl3+)))
31909 (define-public emacs-mwim
31910 ;; Use the latest commit not in a release version as of yet, since it
31911 ;; contains a bug fix for the cases where `comment-start-skip' is nil.
31912 (let ((commit "b4f3edb4c0fb8f8b71cecbf8095c2c25a8ffbf85")
31915 (name "emacs-mwim")
31916 (version (git-version "0.4" revision commit))
31920 (uri (git-reference
31921 (url "https://github.com/alezost/mwim.el")
31923 (file-name (git-file-name name version))
31925 (base32 "0l3k611gp9g2x2vfmh92wnhnda81dslpwwpb8mxmzk308man77ya"))))
31926 (build-system emacs-build-system)
31927 (home-page "https://github.com/alezost/mwim.el")
31928 (synopsis "Move to the beginning/end of line, code or comment")
31929 (description "@code{mwim} provides several commands to switch between
31930 various line positions, like moving to the beginning/end of code, line, or
31932 (license license:gpl3+))))
31934 (define-public emacs-delight
31936 (name "emacs-delight")
31941 (uri (string-append "https://elpa.gnu.org/packages/"
31942 "delight-" version ".el"))
31944 (base32 "0pihsghrf9xnd1kqlq48qmjcmp5ra95wwwgrb3l8m1wagmmc0bi1"))))
31945 (build-system emacs-build-system)
31946 (home-page "https://elpa.gnu.org/packages/delight.html")
31947 (synopsis "Dimmer switch for your mode-line lighter text")
31948 (description "@code{delight} enables customizing or hiding the
31949 mode-line text (lighter) of major and minor modes.")
31950 (license license:gpl3+)))
31952 (define-public emacs-unkillable-scratch
31953 ;; Use the latest (unreleased) commit as of now, since it contains a handy
31954 ;; `unkillable-scratch-do-not-reset-scratch-buffer' customization to not
31955 ;; repopulate the scratch buffer with `initial-scratch-message'.
31956 (let ((commit "b24c2a760529833f230c14cb02ff6e7ec92288ab")
31959 (name "emacs-unkillable-scratch")
31960 (version (git-version "1.0.0" revision commit))
31964 (uri (git-reference
31965 (url "https://github.com/EricCrosson/unkillable-scratch")
31967 (file-name (git-file-name name version))
31969 (base32 "13wjbcxr3km4s96yhpavgs5acs5pvqv3ih1p84diqb3x3i6wd4pa"))))
31970 (build-system emacs-build-system)
31971 (home-page "https://github.com/EricCrosson/unkillable-scratch")
31972 (synopsis "Prevents the *scratch* buffer from being killed")
31973 (description "@code{unkillable-scratch} helps prevent killing buffers
31974 matching a given regexp.")
31975 (license license:gpl2+))))
31977 (define-public emacs-switch-buffer-functions
31979 (name "emacs-switch-buffer-functions")
31984 (uri (git-reference
31985 (url "https://github.com/10sr/switch-buffer-functions-el")
31986 (commit (string-append "v" version))))
31987 (file-name (git-file-name name version))
31989 (base32 "0pq53b8wrjbrxd5hnrcdi0z7mffp4bax55hn90k9ca3j76lhbn1k"))))
31990 (build-system emacs-build-system)
31991 (home-page "https://github.com/10sr/switch-buffer-functions-el")
31992 (synopsis "Hooks run when switching current buffer")
31993 (description "This package provides a hook variable
31994 @code{switch-buffer-functions}. The hooks will be run when the current buffer
31995 is changed after an interactive command, i.e., when @code{post-command-hook}
31996 hooks are run. The hooked functions will be called with both the previous and
31997 the current buffer.")
31998 (license license:unlicense)))
32000 (define-public emacs-erc-scrolltoplace
32002 (name "emacs-erc-scrolltoplace")
32007 (uri (git-reference
32008 (url "https://gitlab.com/jgkamat/erc-scrolltoplace.git")
32010 (file-name (git-file-name name version))
32012 (base32 "11zpqwh1mlfifbgnvhc63bvnhg340jgxssm3m43hr1sxsyb52lh6"))))
32013 (build-system emacs-build-system)
32015 (list emacs-switch-buffer-functions))
32016 (home-page "https://gitlab.com/jgkamat/erc-scrolltoplace")
32017 (synopsis "ERC module to replace scrolltobottom while using keep-place")
32018 (description "@code{erc-scrolltoplace} is an ERC module to try
32019 to emulate @code{scrolltobottom} while @code{keep-place} is enabled.")
32020 (license license:gpl3+)))
32022 (define-public emacs-dmenu
32023 ;; Use the latest commit, as there are no tagged releases.
32024 (let ((commit "e8cc9b27c79d3ecc252267c082ab8e9c82eab264")
32027 (name "emacs-dmenu")
32028 (version (git-version "0.1" revision commit))
32032 (uri (git-reference
32033 (url "https://github.com/lujun9972/el-dmenu")
32035 (file-name (git-file-name name version))
32037 (base32 "098ncygms1r33zhjlq4fj2p4jc91v5whqrm3fazzdk7sd6dilf25"))))
32038 (build-system emacs-build-system)
32039 (home-page "https://github.com/lujun9972/el-dmenu")
32040 (synopsis "Simulate the @command{dmenu} command line program")
32041 (description "This package provides a @command{dmenu} command for
32042 launching other commands/applications from within Emacs, similar to the
32043 @command{dmenu} program. This is especially useful when using EXWM.")
32044 (license license:gpl3+))))
32046 (define-public emacs-no-littering
32048 (name "emacs-no-littering")
32053 (uri (git-reference
32054 (url "https://github.com/emacscollective/no-littering")
32055 (commit (string-append "v" version))))
32056 (file-name (git-file-name name version))
32058 (base32 "1grc5fk7ng4d6i8fwfpm3cb2b19s9sbdjbdn8ybchk7cj45kkl24"))))
32059 (build-system emacs-build-system)
32060 (home-page "https://github.com/emacscollective/no-littering")
32061 (synopsis "Help keep @file{~/.emacs.d/} clean")
32062 (description "The default paths used to store configuration files and
32063 persistent data are not consistent across Emacs packages, be them built-in or
32064 third-party ones. @code{no-littering} sets out to help clean
32065 @file{~/.emacs.d/} by putting configuration files and persistent data files in
32066 two user-defined directories, as well as using more descriptive names for
32067 files and subdirectories when appropriate.")
32068 (license license:gpl3+)))
32070 (define-public emacs-meson-mode
32072 (name "emacs-meson-mode")
32077 (uri (git-reference
32078 (url "https://github.com/wentasah/meson-mode")
32079 (commit (string-append "v" version))))
32080 (file-name (git-file-name name version))
32082 (base32 "0hlqvq3j4f6g16nj3bm2wbkncn8hv8c8iqd0sch3w80wwqnr622y"))))
32083 (build-system emacs-build-system)
32084 (home-page "https://github.com/wentasah/meson-mode")
32085 (synopsis "Major mode for Meson build system files")
32087 "This is an Emacs major mode for Meson build system files. Syntax
32088 highlighting works reliably. Indentation works too, but there are probably
32089 cases where it breaks.")
32090 (license license:gpl3+)))
32092 (define-public emacs-message-x
32093 ;; Use the latest commit, as there are no tagged releases.
32094 (let ((commit "5524de7bbfdd8749c110f48de5afb024d9f83133")
32097 (name "emacs-message-x")
32098 (version (git-version "1.23" revision commit))
32102 (uri (git-reference
32103 (url "https://github.com/emacsmirror/message-x")
32105 (file-name (git-file-name name version))
32107 (base32 "0qy1xf11j357lsnbb829hnbg7fq1cii4cx54fwf0wgjh1bv2abvj"))))
32108 (build-system emacs-build-system)
32109 (home-page "https://www.emacswiki.org/emacs/message-x.el")
32110 (synopsis "Customizable completion in message headers")
32111 (description "@code{message-x} assigns a context-sensitive function to
32112 the TAB key in Message mode. When on a header line, it performs completion
32113 based on which header we are in (for example, newsgroup name completion makes
32114 sense on the @samp{Newsgroups} header, whereas mail alias expansion makes
32115 sense in the @samp{To} and @samp{Cc} headers). When in the message body, this
32116 executes a different function (default: @code{indent-relative}).")
32117 (license license:gpl2+))))
32119 (define-public emacs-glsl-mode
32120 ;; No tag, version grabbed from source .el file.
32121 (let ((commit "b07112016436d9634cd4ef747f9af6b01366d136")
32124 (name "emacs-glsl-mode")
32125 (version (git-version "2.4" revision commit))
32129 (uri (git-reference
32130 (url "https://github.com/jimhourihan/glsl-mode")
32132 (file-name (git-file-name name version))
32134 (base32 "0bav9ipfm0vy26n74ngsmjzc7fsyqz6xmriadzx55s44h8p5dn1s"))))
32135 (build-system emacs-build-system)
32136 (home-page "https://github.com/jimhourihan/glsl-mode")
32137 (synopsis "Major mode for Open GLSL shader files")
32139 "This package provides a major mode for editing OpenGLSL grammar files,
32140 usually files ending with @file{.vert}, @file{.frag}, @file{.glsl} or
32141 @file{.geom}. It is based on C mode plus some features and pre-specified
32143 (license license:gpl3+))))
32145 (define-public emacs-gnus-harvest
32146 (let ((commit "feda071a87b799bd5d23cacde3ee71f0b166e75d")
32149 (name "emacs-gnus-harvest")
32150 (version (git-version "1.0" revision commit))
32154 (uri (git-reference
32155 (url "https://github.com/jwiegley/gnus-harvest")
32157 (file-name (git-file-name name version))
32159 (base32 "08zb7vc3v3wdxkzgi902vlc5ybfvm8fxrvm5drnwfsjj9873pbcb"))))
32160 (build-system emacs-build-system)
32165 (modify-phases %standard-phases
32166 (add-before 'build 'patch-exec-paths
32167 (lambda* (#:key inputs #:allow-other-keys)
32168 (let ((sqlite (assoc-ref inputs "sqlite"))
32169 (file "gnus-harvest.el"))
32170 (make-file-writable file)
32171 (emacs-substitute-variables file
32172 ("gnus-harvest-sqlite-program"
32173 (string-append sqlite "/bin/sqlite3"))))
32175 (home-page "https://github.com/jwiegley/gnus-harvest")
32177 "Harvest email addresses from read/written Gnus articles")
32178 (description "@code{gnus-harvest} notices email address in every message
32179 or post you read or write, and collects them in a SQLite database, which can
32180 be easily and quickly queried to determine the completion list. It optionally
32181 uses BBDB and Message-X.")
32182 (license license:gpl3+))))
32184 (define-public emacs-auto-dictionary-mode
32186 (name "emacs-auto-dictionary-mode")
32191 (uri (git-reference
32192 (url "https://github.com/nschum/auto-dictionary-mode")
32194 (file-name (git-file-name name version))
32196 (base32 "191294k92qp8gmfypf0q8j8qrym96aqikzvyb9p03wqvbr3r1dsk"))))
32197 (build-system emacs-build-system)
32198 (home-page "http://nschum.de/src/emacs/auto-dictionary/")
32199 (synopsis "Automatic dictionary switcher for Emacs spell checking")
32200 (description "@code{auto-dictionary} is a minor mode that hooks into
32201 Flyspell's on-the-fly spell checking and extends these checks to also detect
32202 language. Auto-dictionary then sets @code{ispell-dictionary} to use the
32203 detected language.")
32204 (license license:gpl2+)))
32206 (define-public emacs-persist
32208 (name "emacs-persist")
32213 (uri (string-append "https://elpa.gnu.org/packages/"
32214 "persist-" version ".tar"))
32216 (base32 "090n4479zs82by7a3vb551gyjvv8lpfcylk43ywr2lfyssc9xiq0"))))
32217 (build-system emacs-build-system)
32218 (home-page "http://elpa.gnu.org/packages/persist.html")
32219 (synopsis "Persist variables between Emacs sessions")
32221 "This package provides variables which persist across sessions.
32222 Values are stored in a directory in @code{user-emacs-directory}, using
32223 one file per value. This makes it easy to delete or remove unused
32225 (license license:gpl3+)))
32227 (define-public emacs-company-emoji
32229 (name "emacs-company-emoji")
32234 (uri (git-reference
32235 (url "https://github.com/dunn/company-emoji/")
32237 (file-name (git-file-name name version))
32239 (base32 "1prcjdqm4djp5nr93m2axddhhdmn1s0y157px9zsk7g5yi36dn6q"))))
32240 (build-system emacs-build-system)
32242 (list emacs-company))
32243 (home-page "https://github.com/dunn/company-emoji/")
32244 (synopsis "Company completion back-end for emoji")
32246 "This library is a Company back-end providing auto-completion for
32248 (license license:gpl3+)))
32250 (define-public emacs-exiftool
32252 (name "emacs-exiftool")
32257 (uri (git-reference
32258 (url "https://git.systemreboot.net/exiftool.el/")
32259 (commit (string-append "v" version))))
32260 (file-name (git-file-name name version))
32263 "0bv58is66cz21yhc0qqkp1z4nk13zfi2l7i6pjbhyi0g1n88qqyv"))))
32264 (build-system emacs-build-system)
32267 #:test-command '("make" "-C" "tests")
32269 (modify-phases %standard-phases
32270 (add-after 'unpack 'configure
32271 (lambda* (#:key inputs #:allow-other-keys)
32272 (make-file-writable "exiftool.el")
32273 (emacs-substitute-variables "exiftool.el"
32274 ("exiftool-executable"
32275 (search-input-file inputs "/bin/exiftool"))))))))
32277 (list perl-image-exiftool))
32278 (home-page "https://git.systemreboot.net/exiftool.el/about/")
32279 (synopsis "Elisp wrapper around ExifTool")
32280 (description "@code{emacs-exiftool} is an Elisp wrapper around ExifTool.
32281 ExifTool supports reading and writing metadata in various formats including
32282 EXIF, XMP and IPTC.")
32283 (license license:gpl3+)))
32285 (define-public emacs-password-generator
32287 (name "emacs-password-generator")
32289 (home-page "https://github.com/zargener/emacs-password-genarator")
32293 (uri (git-reference
32295 (commit "904cdb591a04305ba882ce19e1d117f5fa60f7d3")))
32296 (file-name (git-file-name name version))
32299 "1qgvn79qz1h8ykm5i1qv2fja4v2y0g2i0n5sf7byhnqhqlwn63nv"))))
32300 (build-system emacs-build-system)
32301 (synopsis "Generate passwords inside Emacs")
32302 (description "@code{emacs-password-generator} provides simple functions to
32303 generate random passwords and insert them into the current buffer. It also
32304 supports generation of phonetic and numeric passwords.")
32305 (license license:artistic2.0)))
32307 (define-public emacs-csv
32311 (home-page "https://gitlab.com/u11/csv.el")
32315 (uri (git-reference
32317 (commit (string-append "V" version))))
32318 (file-name (git-file-name name version))
32321 "1vmazjrfcsa9aa9aw8bq5sazdhqvhxyj837dyw5lmh8gk7z0xdaa"))))
32322 (build-system emacs-build-system)
32323 (synopsis "Elisp functions for reading and parsing CSV files")
32325 "@code{csv.el} provides functions for reading and parsing @acronym{CSV,
32326 Comma-Separated Values} files. It follows the format as defined in RFC 4180
32327 @emph{Common Format and MIME Type for CSV
32328 Files} (@url{http://tools.ietf.org/html/rfc4180}).")
32329 (license license:gpl3+)))
32331 (define-public emacs-org-journal
32333 (name "emacs-org-journal")
32338 (uri (git-reference
32339 (url "https://github.com/bastibe/org-journal")
32341 (file-name (git-file-name name version))
32343 (base32 "0s82sh2svc0mzr1ak414n5r2j0dmwvvyx4swk2c61zivc2gjd778"))))
32344 (build-system emacs-build-system)
32345 (home-page "https://github.com/bastibe/org-journal")
32346 (synopsis "Simple Org mode journaling mode")
32348 "Org Journal is a set of functions to maintain a simple personal diary /
32349 journal using in Emacs, adapted from
32350 @url{https://www.emacswiki.org/emacs/PersonalDiary}. Convenient bindings
32351 allow the creation of journal records in the current daily, weekly, monthly or
32352 yearly file and search within all records or specified time intervals. All
32353 records can be browsed and searched from the Emacs Calendar for convenience.
32354 All entries in a specified TODO state will be carried over to the next day.")
32355 (license license:bsd-3)))
32357 (define-public emacs-org-static-blog
32359 (name "emacs-org-static-blog")
32364 (uri (git-reference
32365 (url "https://github.com/bastibe/org-static-blog")
32367 (file-name (git-file-name name version))
32369 (base32 "0p3bhnp91x65xr5d40kdmyj7vgyq62bvq3b1gfwv7881sh8p6hr9"))))
32370 (build-system emacs-build-system)
32371 (home-page "https://github.com/bastibe/org-static-blog")
32373 "Simple Org mode based static blog generator")
32375 "@code{emacs-org-static-blog} is one more static blog generator, it
32376 focuses on being simple. All files are simple Org files in a directory. The
32377 only requirement is that every Org file must have a @samp{title} and
32378 a @samp{date} keywords, and optionally, a @samp{filetags} keyword.")
32379 (license license:bsd-3)))
32381 (define-public emacs-ddskk
32382 ;; XXX: Upstream adds code names to their release tags, so version and code
32383 ;; name below need to be updated together.
32384 (let ((version "17.1")
32385 (code-name "Neppu"))
32387 (name "emacs-ddskk")
32392 (uri (git-reference
32393 (url "https://github.com/skk-dev/ddskk")
32394 (commit (string-append "ddskk-" version "_" code-name))))
32395 (file-name (git-file-name name version))
32397 (base32 "0xm53rybxki2784gyjkafg6956viyhhcq51kbmnrwc6aw3yzh7aw"))))
32398 (build-system gnu-build-system)
32400 `(#:modules ((guix build gnu-build-system)
32402 (guix build emacs-utils))
32403 #:imported-modules (,@%gnu-build-system-modules
32404 (guix build emacs-utils))
32405 #:test-target "test"
32407 (modify-phases %standard-phases
32408 (replace 'configure
32409 (lambda* (#:key outputs #:allow-other-keys)
32410 (make-file-writable "SKK-MK")
32411 (emacs-substitute-variables "SKK-MK"
32412 ("PREFIX" (assoc-ref outputs "out"))
32413 ("LISPDIR" '(expand-file-name "/share/emacs/site-lisp" PREFIX))
32415 ("SKK_INFODIR" '(expand-file-name "info" PREFIX)))
32416 (for-each make-file-writable (find-files "./doc"))
32418 (add-after 'unpack 'fix-test
32420 (substitute* "Makefile"
32421 (("/bin/rm") (which "rm"))))))))
32423 (list emacs-minimal ruby))
32424 (home-page "https://github.com/skk-dev/ddskk")
32425 (synopsis "Simple Kana to Kanji conversion program")
32427 "Daredevil SKK is a version of @acronym{SKK, Simple Kana to Kanji
32428 conversion program}, a Japanese input method on Emacs.")
32429 (license license:gpl2+))))
32431 (define-public emacs-ddskk-nicola
32433 (inherit emacs-ddskk)
32434 (name "emacs-ddskk-nicola")
32436 (list emacs-ddskk))
32439 (let ((out (assoc-ref %outputs "out")))
32441 (list (string-append "PREFIX=" out)
32442 (string-append "LISPDIR=" out "/share/emacs/site-lisp"))))
32443 #:tests? #f ; no tests in this subtree
32444 ,@(substitute-keyword-arguments (package-arguments emacs-ddskk)
32446 `(modify-phases ,phases
32447 (add-after 'unpack 'chdir
32451 (replace 'configure
32452 (lambda* (#:key outputs #:allow-other-keys)
32453 (make-file-writable "NICOLA-DDSKK-CFG")
32454 (emacs-substitute-sexps "NICOLA-DDSKK-CFG"
32455 ("setq NICOLA-DDSKK_PREFIX" ""))
32457 (synopsis "Nicola layout for Daredevil SKK")
32459 "Daredevil SKK is a version of @acronym{SKK, Simple Kana to Kanji
32460 conversion program}, a Japanese input method on Emacs. This package adds
32461 support for the Nicola keyboard layout to it.")))
32463 (define-public emacs-tamil99
32465 (name "emacs-tamil99")
32469 (uri (git-reference
32470 (url "https://git.systemreboot.net/tamil99/")
32471 (commit (string-append "v" version))))
32472 (file-name (git-file-name name version))
32475 "12sr59b2ngay66snb2m4a5zy6n11ahnmc5wy42l3ks7fd4cc5rgs"))))
32476 (build-system emacs-build-system)
32477 (home-page "https://git.systemreboot.net/tamil99/about/")
32478 (synopsis "Tamil99 input method for Emacs")
32479 (description "This package implements the @code{tamil99} input method for
32480 Emacs. Tamil99 is a keyboard layout and input method that is specifically
32481 designed for the Tamil language. Vowels and vowel modifiers are input with
32482 your left hand, and consonants are input with your right hand.")
32483 (license license:gpl3+)))
32485 (define-public emacs-objed
32487 (name "emacs-objed")
32492 (uri (string-append
32493 "https://elpa.gnu.org/packages/objed-" version ".tar"))
32496 "1s38d6bvggdk5p45ww1jb4gxifzgjwgw1m6ar920nlg0j4fgbcvr"))))
32497 (build-system emacs-build-system)
32498 (home-page "https://github.com/clemera/objed")
32499 (synopsis "Navigate and edit text objects")
32501 "@code{emacs-objed} allows navigating and editing text objects. It
32502 enables modal editing and composition of commands, too. It combines ideas of
32503 other Editors like Vim or Kakoune and tries to align them with regular Emacs
32505 (license license:gpl3+)))
32507 (define-public emacs-haskell-snippets
32508 ;; The commit below is 7 commits ahead of release, and includes a build fix.
32509 ;; And also a fix in one snippet.
32510 (let ((commit "1c29c4a68ce89848b8d371c6510d1de3b586c8b3"))
32512 (name "emacs-haskell-snippets")
32513 (version (git-version "0.1.0" "1" commit))
32519 (url "https://github.com/haskell/haskell-snippets")
32521 (file-name (git-file-name name version))
32523 (base32 "1lwnggarmavyf164cfzbzzkq9ffahhd3bz7gw644czs49sndcawf"))))
32524 (build-system emacs-build-system)
32528 #~(modify-phases %standard-phases
32529 (add-after 'install 'install-snippets
32533 #$output "/share/emacs/site-lisp/snippets/haskell-mode")))
32535 (copy-recursively "snippets/haskell-mode" snippets)))))))
32537 (list emacs-yasnippet))
32538 (home-page "https://github.com/haskell/haskell-snippets")
32539 (synopsis "Official collection of YASnippet Haskell snippets for Emacs")
32540 (description "Haskell-Snippets is a collection of YASnippet Haskell
32541 snippets for Emacs.")
32542 (license license:expat))))
32544 (define-public emacs-orca
32545 ;; XXX: Upstream did not tag any commit so far. Base version is extracted
32546 ;; from Version keyword.
32547 (let ((commit "0687f416a5573f63b691d384454f5a793266ed97")
32550 (name "emacs-orca")
32551 (version (git-version "0.1.0" revision commit))
32555 (uri (git-reference
32556 (url "https://github.com/abo-abo/orca")
32558 (file-name (git-file-name name version))
32560 (base32 "00a363vkqvryw5s7pj0kh8pqq5vvbf1pmbzz0b1z1fckwr49sv0f"))))
32561 (build-system emacs-build-system)
32562 (propagated-inputs (list emacs-zoutline))
32563 (home-page "https://github.com/abo-abo/orca")
32564 (synopsis "Handler for Org Capture")
32566 "This package provides several convenient recipes for configuring Org
32567 Capture, mainly for capturing from a browser. It can match URLs and inject
32568 the capture in a targeted Org file, under a targeted heading. The more this
32569 package is configured, the less refiling is needed on your captures: they will
32570 go directly to where they belong.")
32571 (license license:gpl3+))))
32573 (define-public emacs-org-roam
32575 (name "emacs-org-roam")
32580 (uri (git-reference
32581 (url "https://github.com/org-roam/org-roam")
32582 (commit (string-append "v" version))))
32583 (file-name (git-file-name name version))
32585 (base32 "09wcqdqy2gcsyd1mbcm90b70y3qj921m4ky8l3avhzpdwgyw8wy5"))))
32586 (build-system emacs-build-system)
32590 #~(modify-phases %standard-phases
32591 ;; Move the extensions source files to the top level, which
32592 ;; is included in the EMACSLOADPATH.
32593 (add-after 'unpack 'move-source-files
32595 (let ((el-files (find-files "./extensions" ".*\\.el$")))
32596 (for-each (lambda (f)
32597 (rename-file f (basename f)))
32599 (add-after 'move-source-files 'patch-exec-paths
32600 (lambda* (#:key inputs #:allow-other-keys)
32601 (make-file-writable "org-roam-graph.el")
32602 (emacs-substitute-variables "org-roam-graph.el"
32603 ("org-roam-graph-executable"
32604 (search-input-file inputs "/bin/dot")))))
32605 (add-after 'install 'install-image
32606 (lambda* (#:key outputs #:allow-other-keys)
32607 (install-file "doc/images/org-ref-citelink.png"
32608 (string-append #$output "/share/info/images"))))
32609 (add-after 'install-image 'make-info
32610 (lambda* (#:key outputs #:allow-other-keys)
32611 (with-directory-excursion "doc"
32612 (invoke "makeinfo" "-o" "org-roam.info" "org-roam.texi")
32613 (install-file "org-roam.info"
32614 (string-append #$output "/share/info"))))))))
32621 emacs-emacsql-sqlite3
32626 (home-page "https://github.com/org-roam/org-roam/")
32627 (synopsis "Non-hierarchical note-taking with Org mode")
32628 (description "Emacs Org Roam is a solution for taking non-hierarchical
32629 notes with Org mode. Notes are captured without hierarchy and are connected
32630 by tags. Notes can be found and created quickly. Org Roam should also work
32631 as a plug-and-play solution for anyone already using Org mode for their
32633 (license license:gpl3+)))
32635 (define-public emacs-org-roam-bibtex
32637 (name "emacs-org-roam-bibtex")
32642 (uri (git-reference
32643 (url "https://github.com/org-roam/org-roam-bibtex")
32644 (commit (string-append "v" version))))
32645 (file-name (git-file-name name version))
32647 (base32 "166n1q30xamms4lfqq9vp0yknq33gwlk54qaravxxwz01fdpgb25"))))
32648 (build-system emacs-build-system)
32650 (list emacs-helm-bibtex emacs-org-ref emacs-org-roam))
32651 (home-page "https://github.com/org-roam/org-roam-bibtex")
32652 (synopsis "Connector between Org Roam, BibTeX-completion, and Org Ref")
32654 "Org Roam BibTeX is a library which offers a tighter integration between
32655 Org Roam, Helm-BibTeX, and Org Ref. It allows users to access their
32656 bibliographical notes in Org Roam directory via Helm BibTeX, Ivy BibTeX, or by
32657 opening Org Ref's @code{cite:} links.")
32658 (license license:gpl3+)))
32660 (define-public emacs-org-generate
32662 (name "emacs-org-generate")
32666 (uri (git-reference
32667 (url "https://github.com/conao3/org-generate.el")
32668 (commit (string-append "v" version))))
32669 (file-name (git-file-name name version))
32672 "0z2frp5mn3lp2xskwanw2rncrwa50x3aphy87vfxmhx4fqlqrzy8"))))
32674 (list emacs-cort emacs-with-simulated-input))
32676 (list emacs-mustache))
32678 ;; FIXME: Tests fail with "Wrong type argument: sequencep, :equal". It
32679 ;; seems to be an issue with Cort library.
32681 #:test-command '("emacs" "--batch" "--quick"
32682 "--directory=." "--load=org-generate-tests.el"
32683 "--funcall=cort-test-run")))
32684 (build-system emacs-build-system)
32685 (home-page "https://github.com/conao3/org-generate.el")
32686 (synopsis "Generate template files and folders from Org document")
32687 (description "This package generates files and folders from Emacs
32688 org-mode templates.")
32689 (license license:gpl3+)))
32691 (define-public emacs-uml-mode
32692 ;; Package has no release. Version is extracted from "Version:" keyword in
32694 (let ((commit "4c37ac1c4424b2313cd8f16ba48a98a4cc214200")
32697 (name "emacs-uml-mode")
32698 (version (git-version "0.0.4" revision commit))
32702 (uri (git-reference
32703 (url "https://github.com/ianxm/emacs-uml")
32705 (file-name (git-file-name name version))
32707 (base32 "145i4srnfvd1vyibri2a1l6p9mbjvkkwlrpi41134pbarqffcnka"))))
32708 (build-system emacs-build-system)
32709 (home-page "https://github.com/ianxm/emacs-uml")
32710 (synopsis "Minor mode for editing ASCII UML sequence diagrams")
32711 (description "Emacs UML mode is a minor mode that makes it easy to build
32712 ASCII UML sequence diagrams in Emacs, which can be embedded in source code,
32713 comments or emails.")
32714 (license license:gpl3+))))
32716 (define-public emacs-ukrainian-holidays
32717 ;; There is no proper release.
32718 ;; The base version is extracted from the source code.
32719 (let ((revision "0")
32720 (commit "e52b0c92843e9f4d0415a7ba3b8559785497d23d"))
32722 (name "emacs-ukrainian-holidays")
32723 (version (git-version "1.0" revision commit))
32729 (url "https://github.com/abo-abo/ukrainian-holidays")
32731 (file-name (git-file-name name version))
32733 (base32 "033v4ck979lhkpwblci5clacfc1xnkq03p5d1m566wff8dp5flwz"))))
32734 (build-system emacs-build-system)
32735 (home-page "https://github.com/abo-abo/ukrainian-holidays")
32736 (synopsis "Ukrainian holidays for Emacs calendar")
32738 "This package provides Ukrainian holidays for Emacs calendar.")
32739 (license license:gpl3+))))
32741 (define-public emacs-trashed
32743 (name "emacs-trashed")
32748 (uri (git-reference
32749 (url "https://github.com/shingo256/trashed/")
32751 (file-name (git-file-name name version))
32753 (base32 "08v7g2zgrad0r0n4pla8j3i2aql46byq82jr712cvxhydd5gnzf9"))))
32754 (build-system emacs-build-system)
32755 (home-page "https://github.com/shingo256/trashed/")
32756 (synopsis "View and edit system trash can in Emacs")
32757 (description "Open, view, browse, restore or permanently delete trashed
32758 files or directories in trash can with Dired-like look and feel. The trash
32759 can has to be compliant with freedesktop.org. In Emacs, you can trash files by
32760 deleting them with @code{(setq delete-by-moving-to-trash t)}. This package
32761 provides a simple but convenient user interface to manage those trashed
32763 (license license:gpl3+)))
32765 (define-public emacs-placeholder
32767 (let ((commit "b80cb152ddd63db40cc581eafee9d2ac08328df8"))
32769 (name "emacs-placeholder")
32773 (uri (git-reference
32774 (url "https://github.com/oantolin/placeholder")
32776 (file-name (git-file-name name version))
32779 "1ifiaxrp7inj70a3zf5137dih4b1sw38zmkp3h7dj79k2bv7h34h"))))
32780 (build-system emacs-build-system)
32781 (home-page "https://github.com/oantolin/placeholder")
32782 (synopsis "Treat any buffer as a template with placeholders to fill-in")
32784 "This package provides a simple way to treat text in a buffer as a template
32785 with placeholders where text needs to be filled in. Any occurrence of
32786 @code{<++>} in the buffer is a placeholder. You can navigate among the
32787 placeholder with the placeholder-forward and placeholder-backward commands.
32788 They move the point to the next placeholder in the specified direction and
32789 delete the placeholder so you can immediately start typing the text that
32790 should replace it. However, if you call them again immediately after, they
32791 restore that occurrence of the placeholder and move to the next.")
32792 (license license:gpl3+))))
32794 (define-public emacs-plantuml-mode
32796 (name "emacs-plantuml-mode")
32801 (uri (git-reference
32802 (url "https://github.com/skuro/plantuml-mode")
32803 (commit (string-append "v" version))))
32804 (file-name (git-file-name name version))
32806 (base32 "0yp41d2dmf3sx7qnl5x0zdjcr9y71b2wwc9m0q31v22xqn938ipc"))))
32809 (modify-phases %standard-phases
32810 (add-after 'unpack 'use-local-plantuml
32811 (lambda* (#:key inputs #:allow-other-keys)
32812 (let ((plantuml (assoc-ref inputs "plantuml"))
32813 (file "plantuml-mode.el"))
32815 (emacs-substitute-variables file
32816 ("plantuml-jar-path"
32817 (string-append plantuml "/share/java/plantuml.jar"))
32818 ("plantuml-executable-path"
32819 (string-append plantuml "/bin/plantuml"))
32820 ("plantuml-server-url" 'nil)
32821 ("plantuml-default-exec-mode" ''executable))
32822 (emacs-batch-edit-file file
32824 (goto-char (point-min))
32825 (re-search-forward "(defun plantuml-download-jar")
32826 (beginning-of-line)
32828 (basic-save-buffer)))
32834 (build-system emacs-build-system)
32835 (home-page "https://github.com/skuro/plantuml-mode")
32836 (synopsis "Major mode for editing PlantUML sources")
32837 (description "This package provides a major mode for editing PlantUML
32838 sources. It features syntax highlighting, autocompletion, preview of buffer
32839 or region and use of locally installed binaries.")
32840 (license license:gpl3+)))
32842 (define-public emacs-execline
32844 (name "emacs-execline")
32848 (uri (git-reference
32849 (url "https://gitlab.com/KAction/emacs-execline/")
32850 (commit (string-append "v" version))))
32851 (file-name (git-file-name name version))
32854 "02q531c9wvdwflhggflnci4a36h2bb90bq25bbhw6i2lvrd9sk55"))))
32855 (build-system emacs-build-system)
32860 #:test-command '("emacs" "-Q" "-batch" "-L" "."
32862 "-f" "ert-run-tests-batch-and-exit")))
32863 (home-page "https://gitlab.com/KAction/emacs-execline/")
32864 (synopsis "Major Emacs mode for editing execline scripts")
32866 "This package provides a major mode for editing execline scripts.
32870 @item Syntax highlighting of commends, builtin commands and variable substitution.
32871 @item Completion of builtin commands.
32872 @item Working @code{comment-region} command.
32873 @item Indentation of blocks.
32874 @item Automatic enable of mode in @file{*.exec} files.
32875 @item Automatic enable of mode in files with @code{execlineb} interpreter.
32877 (license license:gpl3+)))
32879 (define-public emacs-pcmpl-args
32881 (name "emacs-pcmpl-args")
32886 (uri (git-reference
32887 (url "https://github.com/JonWaltman/pcmpl-args.el")
32890 (base32 "19xwwpfcf0l9jh7xixyjd5adivj27jw00zvxb7n1240k5p332pzi"))
32891 (file-name (git-file-name name version))))
32892 (build-system emacs-build-system)
32893 (home-page "https://github.com/JonWaltman/pcmpl-args.el")
32894 (synopsis "Enhanced shell command completion")
32896 "pcmpl-args extends option and argument completion of shell commands read
32897 by Emacs. It is intended to make shell completion in Emacs comparable to the
32898 rather excellent completion provided by both Bash and Zsh.")
32899 (license license:gpl3+)))
32901 (define-public emacs-shell-command+
32903 (name "emacs-shell-command+")
32907 (uri (git-reference
32908 (url "https://git.sr.ht/~pkal/shell-command-plus")
32910 (file-name (git-file-name name version))
32912 (base32 "14akj7pavfhch6ljwl26mhv7qczgmqn7mld62cf6mh4ghmhy3z4y"))))
32913 (build-system emacs-build-system)
32914 (home-page "http://elpa.gnu.org/packages/shell-command+.html")
32915 (synopsis "Extended Emacs @code{shell-command}")
32917 "Shell-command+ is a @code{shell-command} substitute that extends the
32918 regular Emacs command with several features. You can for example count all
32919 the lines in a buffer with @code{> wc -l}, or delete all lower case letters in
32920 the selected region with @code{| tr -d a-z}.")
32921 (license license:gpl3+)))
32923 (define-public emacs-shell-pop
32924 (let ((commit "4b4394037940a890a313d715d203d9ead2d156a6")
32927 (name "emacs-shell-pop")
32928 (version (git-version "0.64" revision commit))
32932 (uri (git-reference
32933 (url "https://github.com/kyagi/shell-pop-el")
32935 (file-name (git-file-name name version))
32937 (base32 "0s77n6b9iw1x3dv91ybkpgy3zvqd12si7zw3lg0m2b6j1akrawsg"))))
32938 (build-system emacs-build-system)
32939 (home-page "https://github.com/kyagi/shell-pop-el")
32940 (synopsis "Utility which helps with pop up shell buffer")
32942 "This Emacs utility helps you pop up and pop out shell buffer window
32943 easily. Four pre-set options are: @samp{shell}, @samp{terminal},
32944 @samp{ansi-term}, and @samp{eshell}. You can also set your custom shell if
32945 you use some other configuration.")
32946 (license license:gpl3+))))
32948 (define-public emacs-tshell
32949 ;; XXX: Upstream has no tagged release. Version is extracted from keyword
32951 (let ((commit "47ef3a6c537b06eb422d9a124e1c44062223e323")
32954 (name "emacs-tshell")
32955 (version (git-version "0.1.0" revision commit))
32959 (uri (git-reference
32960 (url "https://github.com/TatriX/tshell")
32962 (file-name (git-file-name name version))
32964 (base32 "0yv38bqdp6b614lbj4v408vv5mlic3vs1v7266xrfxm1cm903apj"))))
32965 (build-system emacs-build-system)
32966 (home-page "https://github.com/TatriX/tshell")
32967 (synopsis "Experimental buffer-oriented Emacs shell")
32969 "Tshell is an experimental buffer-oriented shell. It supports shell
32970 and Emacs lisp commands.")
32971 (license license:gpl3+))))
32973 (define-public emacs-extmap
32975 (name "emacs-extmap")
32980 (uri (git-reference
32981 (url "https://github.com/doublep/extmap")
32983 (file-name (git-file-name name version))
32985 (base32 "00415w4l9wfpw9v0a35dm1av2w1m6s36yr9f9286jg844x6l375f"))))
32986 (build-system emacs-build-system)
32987 (home-page "https://github.com/doublep/extmap")
32988 (synopsis "Externally-stored constant mapping for Emacs Lisp")
32989 (description "Extmap is a very simple package that lets you build a
32990 read-only, constant database that maps Emacs Lisp symbols to
32991 arbitrary Emacs Lisp objects.")
32992 (license license:gpl3+)))
32994 (define-public emacs-csound-mode
32995 ;; XXX: Upstream did not tag last release. Using the commit matching
32997 (let ((commit "44c49e5a9262ede4b4477bafb13b42b1ba047b9c"))
32999 (name "emacs-csound-mode")
33004 (uri (git-reference
33005 (url "https://github.com/hlolli/csound-mode")
33007 (file-name (git-file-name name version))
33010 "0kfhca1n0iv1400jf4ggjbarg7ry8ccd5bs7cf2brjdiqp74cvwb"))))
33011 (build-system emacs-build-system)
33015 #~(modify-phases %standard-phases
33016 (add-after 'unpack 'disable-breaking-compilation
33018 (let ((file "csound-font-lock.el"))
33019 (make-file-writable file)
33020 (emacs-batch-disable-compilation file)))))))
33022 (list emacs-dash emacs-highlight emacs-multi emacs-shut-up))
33023 (home-page "https://github.com/hlolli/csound-mode")
33024 (synopsis "Emacs major mode for coding in CSound")
33025 (description "This package provides both a basic major mode for editing
33026 CSound files, as well as a REPL for fast feedback when composing and
33027 sound-designing using CSound.")
33028 (license license:gpl3+))))
33030 (define-public emacs-multi
33032 (name "emacs-multi")
33037 (uri (git-reference
33038 (url "https://github.com/kurisuwhyte/emacs-multi")
33039 (commit (string-append "v" version))))
33040 (file-name (git-file-name name version))
33043 "11zabs7qpdhri6n90ck7pgwcbz46d813nyl73h5m1i8jvz1wzx7v"))))
33044 (build-system emacs-build-system)
33045 (home-page "https://github.com/kurisuwhyte/emacs-multi")
33046 (synopsis "Clojure-style multi-methods for Emacs Lisp")
33047 (description "Provides Emacs Lisp with a form of polymorphism
33048 by way of predicate dispatching. Methods consist of a dispatch
33049 function, and a series of branches. The dispatch function is
33050 applied to the arguments, and the result value is checked against
33051 the expectations of each branch to define which one to invoke.")
33052 (license license:expat)))
33054 (define-public emacs-highlight
33055 (let ((commit "24366dfd5062a6902a13a03d724fc099db3121b8")
33058 (name "emacs-highlight")
33059 (version (git-version "0" revision commit))
33063 (uri (git-reference
33064 (url "https://github.com/emacsmirror/highlight/")
33066 (file-name (git-file-name name commit))
33069 "17r7f4y6b05nq2pzaq8pwww0s6j64vd6fikyv7pliv1n74sljj0d"))))
33070 (build-system emacs-build-system)
33071 (home-page "https://github.com/emacsmirror/highlight")
33072 (synopsis "Highlighting commands for GNU Emacs")
33073 (description "This library adds the possibility for ad-hoc
33074 applying highlighting to any face in GNU Emacs. The functionality
33075 of this library depends on overlays, which by default are not
33076 picked up when copy-pasting text from buffer to buffer.")
33077 (license license:gpl2+))))
33079 (define-public emacs-org-webring
33081 (name "emacs-org-webring")
33086 (uri (git-reference
33087 (url "https://git.sr.ht/~brettgilio/org-webring")
33089 (file-name (git-file-name name version))
33092 "1si0jah7n2gvlvghjy5dpannqpkxni5rczfp1x2a4z6ydalr3bn5"))))
33093 (build-system emacs-build-system)
33096 (modify-phases %standard-phases
33097 (add-after 'install 'install-assets
33098 (lambda* (#:key outputs #:allow-other-keys)
33099 (let* ((out (assoc-ref outputs "out"))
33101 (string-append out "/share/emacs/org-webring-assets")))
33103 (copy-recursively "assets" assets)
33106 (list emacs-xmlgen))
33107 (home-page "https://sr.ht/~brettgilio/org-webring")
33108 (synopsis "Generate webrings for Org-based sites / blogs")
33109 (description "Org-webring is an alternative implementation of a
33110 feed-based webring, taking inspiration from openring by Drew DeVault.
33111 Intended to integrate with Org-based websites and blogs (either
33112 directly, or indirectly, as in ox-hugo), it will fetch a given list of
33113 web feed files and correctly parse and format the elements to be
33114 displayed for sharing.")
33115 (license license:gpl3+)))
33117 (define-public emacs-orglink
33119 (name "emacs-orglink")
33124 (uri (git-reference
33125 (url "https://github.com/tarsius/orglink")
33127 (file-name (git-file-name name version))
33129 (base32 "1619ly90vh2lla5rbw87a4n0rfal3wpbf7005jjiyv2ay88nc7l9"))))
33130 (build-system emacs-build-system)
33131 (home-page "https://github.com/tarsius/orglink")
33132 (synopsis "Use Org mode links in other modes")
33133 (description "This library implements support for some Org mode link types
33134 in other major modes. Links can be opened and edited like in Org mode.")
33135 (license license:gpl3+)))
33137 (define-public emacs-scpaste
33138 (let ((commit "cd4fa0aafecd839736e0b6cba68b4fc4d7045472")
33141 (name "emacs-scpaste")
33146 (uri (git-reference
33147 (url "https://git.sr.ht/~technomancy/scpaste")
33149 (file-name (git-file-name name commit))
33152 "1nvwbwl26z03963g9c82b3ggm39r95z1vp7c9qsa9mjm46dyq27w"))))
33153 (build-system emacs-build-system)
33155 (list emacs-htmlize))
33156 (home-page "https://git.sr.ht/~technomancy/scpaste")
33157 (synopsis "Emacs-based static HTML pastebin")
33158 (description "This library will place an HTML copy of a
33159 buffer on an active webserver to which the user has SSH access.
33160 It is similar in purpose to services such as Gist or Pastebin,
33161 but is much simpler since it assumes the user has access to a
33162 publicly-accessible HTTP server.")
33163 (license license:gpl3+))))
33165 (define-public emacs-company-reftex
33167 (name "emacs-company-reftex")
33172 (uri (git-reference
33173 (url "https://github.com/TheBB/company-reftex")
33174 (commit "275ef708f08d3bf0eb30632148e5c6184eeaacdb")))
33175 (file-name (git-file-name name version))
33178 "118cgw5lsffqdqz95mnkw36mmnsbg9m52r2np4m7v14mjjwr9fby"))))
33179 (build-system emacs-build-system)
33181 (list emacs-company emacs-s))
33182 (home-page "https://github.com/TheBB/company-reftex")
33183 (synopsis "RefTeX backends for company-mode")
33184 (description "This package provides company-mode backends for completing
33185 label references and citations in LaTeX. It is based on RefTeX, which is
33186 included with Emacs.")
33187 (license license:gpl3+)))
33189 (define-public emacs-company-org-block
33190 (let ((commit "115af0a3625f4669358eca568466d468cacc78bd")
33193 (name "emacs-company-org-block")
33194 (version (git-version "0.3" revision commit))
33197 (uri (git-reference
33198 (url "https://github.com/xenodium/company-org-block")
33200 (file-name (git-file-name name version))
33203 "13kdwi4d1pvba6wv9yn1s0dl4cnq61zwf3j647d1s5ybqlrw5f4r"))))
33204 (build-system emacs-build-system)
33206 (list emacs-company))
33207 (home-page "https://github.com/xenodium/company-org-block")
33208 (synopsis "Emacs @code{company-complete} for Org blocks")
33210 "Insert Emacs Org blocks with completion via @code{company} mode.")
33211 (license license:gpl3+))))
33213 (define-public emacs-html-to-hiccup
33214 ;; Package has no release. Version is extracted from "Version:" keyword in
33216 (let ((commit "50a52e2b0d13d865187acdf775b8203d5003f2f1")
33219 (name "emacs-html-to-hiccup")
33220 (version (git-version "1" revision commit))
33224 (uri (git-reference
33225 (url "https://github.com/plexus/html-to-hiccup")
33227 (file-name (git-file-name name version))
33229 (base32 "1qi092mw2n08v6yr0j6hlpx0pnlcnhxjqbsrlw9pn4yin6zk91yp"))))
33230 (build-system emacs-build-system)
33232 (list emacs-dash emacs-s))
33233 (home-page "https://github.com/plexus/html-to-hiccup")
33234 (synopsis "Turn HTML into Hiccup syntax")
33236 "This is an Emacs package that turns HTML into Hiccup syntax
33237 which is a popular notation to use when doing Clojure/ClojureScript
33239 ;; There is a conflict between the repository official LICENSE
33240 ;; file and the header of the main elisp file which indicates
33241 ;; that it is licensed under the GPL version 3 or later.
33242 (license (list license:mpl2.0 license:gpl3+)))))
33244 (define-public emacs-iter2
33246 (name "emacs-iter2")
33251 (uri (git-reference
33252 (url "https://github.com/doublep/iter2")
33254 (file-name (git-file-name name version))
33256 (base32 "1k0n35vxcvvy8c2yih24c8gjc4bqd5lawda0zz62c5kgksgn87ri"))))
33257 (build-system emacs-build-system)
33258 (home-page "https://github.com/doublep/iter2")
33259 (synopsis "Reimplementation of Elisp generators")
33260 (description "@code{iter2} is a fully compatible reimplementation of
33261 built-in generator package. It provides @code{iter2-defun} and
33262 @code{iter2-lambda} forms that can be used in place of @code{iter-defun} and
33263 @code{iter-lambda}. All other functions and macros (e.g. @code{iter-yield},
33264 @code{iter-next}) are intentionally not duplicated: just use the ones from the
33265 original package.")
33266 (license license:gpl3+)))
33268 (define-public emacs-bind-map
33269 (let ((commit "510a24138d8de3b8df0783f1ac493a551fc9bd74")
33272 (name "emacs-bind-map")
33273 (version (git-version "1.1.2" revision commit))
33277 (uri (git-reference
33278 (url "https://github.com/justbur/emacs-bind-map")
33280 (file-name (git-file-name name version))
33282 (base32 "0crxjy1ykgb429z8ikjv5iy8vg5i0qn8n86p2lgri4glx45sxxx0"))))
33283 (build-system emacs-build-system)
33284 (home-page "https://github.com/justbur/emacs-bind-map")
33285 (synopsis "Bind personal keymaps in multiple locations")
33287 "@code{emacs-bind-map} provides a macro bind-map which can be used to
33288 make a keymap available across different leader keys including ones
33289 tied to evil states. It is essentially a generalization of the idea
33290 of a leader key as used in Vim or the @code{emacs-evil-leader} package,
33291 and allows for an arbitrary number of leader keys.")
33292 (license license:gpl3+))))
33294 (define-public emacs-spaceleader
33295 (let ((commit "5d88d120494623d6777d464ec40ff4bb7d6b1d57")
33298 (name "emacs-spaceleader")
33299 (version (git-version "0.0.3" revision commit))
33303 (uri (git-reference
33304 (url "https://github.com/mohkale/spaceleader")
33306 (file-name (git-file-name name version))
33308 (base32 "1prnjf7zs49z5a8qwhn8d0qnp60b3l0xhjkqg6v237acvk2axixr"))))
33309 (build-system emacs-build-system)
33316 (home-page "https://github.com/mohkale/spaceleader")
33317 (synopsis "Emacs leader key implementation from Spacemacs")
33319 "@code{emacs-spaceleader} replicates Spacemacs' leader key features,
33320 without requiring all of Spacemacs. The @code{<Leader>} key, inspired by Vim,
33321 provides an easy way to bind keys under a configurable prefix key.")
33322 (license license:gpl3+))))
33324 (define-public emacs-promise
33326 (name "emacs-promise")
33331 (uri (git-reference
33332 (url "https://github.com/chuntaro/emacs-promise")
33334 (file-name (git-file-name name version))
33336 (base32 "1xb34zdbwjvahfhycjphdkm925kgd22dr298c57hwxza4ljc2hxj"))))
33337 (build-system emacs-build-system)
33338 (home-page "https://github.com/chuntaro/emacs-promise")
33339 (synopsis "Promises/A+ for Emacs")
33340 (description "This is a simple implementation of Promises/A+.
33342 This implementation ports the following Promises/A+ features
33343 faithfully. See @url{https://github.com/then/promise}.
33346 @item The same API as the JavaScript version of Promise can be used.
33347 @item It has all the @code{then}, @code{catch}, @code{resolve}, @code{reject},
33348 @code{all}, @code{race}, etc.
33349 @item It supports \"thenable\".
33350 @item It supports \"Inheritance of Promise\".
33351 @item It supports \"rejection-tracking\".
33353 (license license:gpl3+)))
33355 (define-public emacs-async-await
33357 (name "emacs-async-await")
33362 (uri (git-reference
33363 (url "https://github.com/chuntaro/emacs-async-await")
33365 (file-name (git-file-name name version))
33367 (base32 "0aav9qdswnw7ynqlzn0sm34as5fj2d85syxgg8zjabzp6646ay29"))))
33368 (build-system emacs-build-system)
33370 (list emacs-promise emacs-iter2))
33371 (home-page "https://github.com/chuntaro/emacs-async-await")
33372 (synopsis "Async/Await for Emacs")
33373 (description "This is a simple implementation of Async/Await inspired by
33374 the TypeScript implementation.")
33375 (license license:gpl3+)))
33377 (define-public emacs-rocket-chat
33379 (let ((commit "96fe27a8678de5ae4061f635108a7192eee13f98"))
33381 (name "emacs-rocket-chat")
33382 (version (git-version "0.0.0" "1" commit))
33386 (uri (git-reference
33387 (url "https://github.com/4hiziri/rocket-chat")
33389 (file-name (git-file-name name version))
33391 (base32 "02a4j0yy7330kfr3rd3k2agdj01ii6989nki598anbamq6xvj5ql"))))
33392 (build-system emacs-build-system)
33394 (list emacs-async-await emacs-request))
33395 (home-page "https://github.com/4hiziri/rocket-chat")
33396 (synopsis "Emacs Rocket.chat client")
33397 (description "This package provides an Emacs client for the Rocket.chat
33399 (license license:expat))))
33401 (define-public emacs-monokai-theme
33403 (name "emacs-monokai-theme")
33408 (uri (git-reference
33409 (url "https://github.com/oneKelvinSmith/monokai-emacs")
33410 (commit (string-append "v" version))))
33411 (file-name (git-file-name name version))
33413 (base32 "0dy8c3349j7fmp8052hbgvk0b7ldlv5jqpg0paq1i0hlypivd30i"))))
33414 (build-system emacs-build-system)
33415 (home-page "https://github.com/oneKelvinSmith/monokai-emacs")
33416 (synopsis "High contrast color theme for Emacs")
33418 "Monokai theme is a port of the popular TextMate Monokai theme for
33420 (license license:gpl3+)))
33422 (define-public emacs-nord-theme
33424 (name "emacs-nord-theme")
33429 (uri (git-reference
33430 (url "https://github.com/arcticicestudio/nord-emacs")
33431 (commit (string-append "v" version))))
33432 (file-name (git-file-name name version))
33434 (base32 "096f8cik4jz89bvkifwp3gm9iraqrd75ljy2q9js724v7yj88711"))))
33435 (build-system emacs-build-system)
33436 (home-page "https://www.nordtheme.com/")
33437 (synopsis "Low contrast arctic color theme for Emacs")
33439 "Nord is an arctic, north-bluish color scheme created for a clean and
33440 uncluttered design pattern to achieve optimal focus and readability for code
33441 syntax highlighting and UI components.")
33442 (license license:expat)))
33444 (define-public emacs-janet-mode
33445 (let ((commit "2f5bcabcb6953e1ed1926ba6a2328c453e8b4ac7"))
33447 (name "emacs-janet-mode")
33448 (version (git-version "0.1.0" "1" commit))
33452 (uri (git-reference
33453 (url "https://github.com/ALSchwalm/janet-mode")
33455 (file-name (git-file-name name version))
33457 (base32 "0qj0gpycv2f3z1dgz1a27bjn983hrr3ppvrp7csl34lagnmp89rz"))))
33458 (build-system emacs-build-system)
33459 (home-page "https://github.com/ALSchwalm/janet-mode")
33460 (synopsis "Emacs major mode for the Janet programming language")
33462 "This package provides an Emacs major mode for editing Janet files.")
33463 (license license:gpl3))))
33465 (define-public emacs-inf-janet
33466 (let ((commit "df46651d3aad32593b2195c80ca91fb64d571fb7"))
33468 (name "emacs-inf-janet")
33469 (version (git-version "0.1.0" "1" commit))
33473 (uri (git-reference
33474 (url "https://github.com/velkyel/inf-janet")
33476 (file-name (git-file-name name version))
33478 (base32 "0g0y7q62667j0p32md1h6zb2cap9fga9qgdg7138xwjqnk0328v7"))))
33479 (build-system emacs-build-system)
33482 (modify-phases %standard-phases
33483 (add-after 'unpack 'fix-program-name
33485 (make-file-writable "inf-janet.el")
33486 (emacs-substitute-variables "inf-janet.el"
33487 ("inf-janet-program" "janet")))))))
33489 (list emacs-janet-mode))
33490 (home-page "https://github.com/velkyel/inf-janet")
33491 (synopsis "Run an external Janet process in an Emacs buffer")
33493 "This Emacs package provides a Janet REPL to evaluate @code{janet-mode}
33495 (license license:expat))))
33497 (define-public emacs-map
33504 (uri (string-append "https://elpa.gnu.org/packages/map-"
33508 "1gvywhdfg27nx6pyq7yfwq9x6j96jama59i5s9rp41pvg2dlmvm0"))))
33509 (build-system emacs-build-system)
33510 (home-page "http://elpa.gnu.org/packages/map.html")
33511 (synopsis "Map manipulation functions")
33512 (description "This package provides Emacs map-manipulation functions that
33513 work on alists, hash-table and arrays. All functions are prefixed with
33515 (license license:gpl3+)))
33517 (define-public emacs-xref
33519 (name "emacs-xref")
33524 (uri (string-append "https://elpa.gnu.org/packages/xref-"
33527 (base32 "0vqs2l4gypdx475yi0yic0mnsg1f9nm698gi90kh7xfcpmkfcgb4"))))
33528 (build-system emacs-build-system)
33529 (home-page "http://elpa.gnu.org/packages/xref.html")
33530 (synopsis "Cross-referencing commands")
33532 "This library provides a generic infrastructure for cross referencing
33533 commands, in particular @code{find-definition}.")
33534 (license license:gpl3+)))
33536 (define-public emacs-burly
33538 (name "emacs-burly")
33543 (uri (git-reference
33544 (url "https://github.com/alphapapa/burly.el")
33546 (file-name (git-file-name name version))
33548 (base32 "0zaknazhi8if38rmy9irnqwagsl76pqlxnzawzgn1vlv3aawivdk"))))
33549 (build-system emacs-build-system)
33552 (home-page "https://github.com/alphapapa/burly.el")
33553 (synopsis "Save and restore frame/window configurations with buffers")
33554 (description "This package provides tools to save and restore frame and
33555 window configurations in Emacs, including buffers that may not be live
33556 anymore. In this way, it's like a lightweight \"workspace\" manager, allowing
33557 you to easily restore one or more frames, including their windows, the
33558 windows' layout, and their buffers.")
33559 (license license:gpl3+)))
33561 (define-public emacs-smart-hungry-delete
33562 (let ((commit "7c1d56a92481594e14d40b5fdf6c48657a0108a0"))
33564 (name "emacs-smart-hungry-delete")
33569 (uri (git-reference
33570 (url "https://github.com/hrehfeld/emacs-smart-hungry-delete")
33572 (file-name (git-file-name name version))
33575 "0mxaslx5823s68a8ggbbnmfk1jiswjvip5s4sg7ihfagnci72wni"))))
33576 (build-system emacs-build-system)
33577 (home-page "https://github.com/hrehfeld/emacs-smart-hungry-delete")
33578 (synopsis "Smart hungry deletion of whitespace")
33579 (description "@code{emacs-smart-hungry-delete} hungrily deletes whitespace
33580 between cursor and next word, parenthesis or delimiter while honoring some
33581 rules about where space should be left to separate words and parentheses.")
33582 (license license:gpl2+))))
33584 (define-public emacs-seriestracker
33586 (name "emacs-seriestracker")
33591 (uri (git-reference
33592 (url "https://github.com/MaximeWack/seriesTracker")
33594 (file-name (git-file-name name version))
33596 (base32 "0b9hf20iah3ym2d4kz67k0kb48dq0442zxw4zmc03zg3sxfdxh0x"))))
33597 (build-system emacs-build-system)
33598 (propagated-inputs (list emacs-dash))
33599 (home-page "https://github.com/MaximeWack/seriesTracker")
33600 (synopsis "Keep track of the TV shows you watch from Emacs")
33602 "This package provides a major mode for tracking TV shows.
33603 TV shows data (episode list, release dates, etc.) are sourced from
33604 the free database hosted at @url{episodate.com}. The mode presents an
33605 outlined list of tracked shows, their episodes and release dates, and
33606 enables the user to see when new episodes for their favorite shows get
33607 released, and track their progress in watching a series.")
33608 (license license:gpl3+)))
33610 (define-public emacs-webpaste
33612 (name "emacs-webpaste")
33617 (uri (git-reference
33618 (url "https://github.com/etu/webpaste.el")
33620 (file-name (git-file-name name version))
33622 (base32 "07hj9nr7x6c9w2dnvc58cfbprgp9cqzdxflp5qlpglzdw0bi9s3c"))))
33623 (build-system emacs-build-system)
33626 #:test-command '("make" "unit" "integration")
33628 (modify-phases %standard-phases
33629 (add-after 'unpack 'fix-tests
33631 ;; Do not use cask to run tests.
33632 (substitute* "Makefile"
33633 (("\\$\\{CASK\\} exec ") ""))
33634 ;; Disable tests that need network access.
33635 (substitute* (list "tests/unit/test-webpaste-provider-creation.el"
33636 "tests/integration/test-webpaste-providers.el")
33637 (("describe") "xdescribe")))))))
33639 (list emacs-buttercup))
33641 (list emacs-request))
33642 (home-page "https://github.com/etu/webpaste.el")
33643 (synopsis "Paste to pastebin-like services")
33644 (description "This mode pastes whole buffers or parts of buffers
33645 to pastebin-like services. It supports more than one service and will
33646 failover if one service fails. More services can easily be added over time
33647 and preferred services can easily be configured.")
33648 (license license:gpl3+)))
33650 (define-public emacs-keystore-mode
33651 (let ((release "0.0.1")
33653 (commit "43bd5926348298d077c7221f37902c990df3f951"))
33655 (name "emacs-keystore-mode")
33656 (version (git-version release revision commit))
33657 (home-page "https://github.com/peterpaul/keystore-mode")
33661 (uri (git-reference
33664 (file-name (git-file-name name version))
33666 (base32 "06cznkqkm04zz5lqfb514aqvsr2p13arzysixv0ss0bqpvdq7cv7"))))
33667 (build-system emacs-build-system)
33671 '("emacs" "--no-init-file" "--batch"
33672 "--eval=(require 'ecukes)" "--eval=(ecukes)")))
33674 (list emacs-ecukes emacs-espuds emacs-undercover openjdk9))
33676 (list emacs-origami-el emacs-s))
33677 (synopsis "Major mode for viewing and managing Java keystores")
33679 "This package provides an Elisp wrapper around the Java
33680 @command{keytool} command and major mode for viewing Java keystores.")
33681 (license license:expat))))
33683 (define-public emacs-ivy-avy
33685 (name "emacs-ivy-avy")
33690 (uri (string-append
33691 "https://elpa.gnu.org/packages/"
33692 "ivy-avy-" version ".tar"))
33694 (base32 "1q5caxm4rnh4jy5n88dhkdbx1afsshmfki5dl8xsqbdb3y0zq7yi"))))
33695 (build-system emacs-build-system)
33697 (list emacs-ivy emacs-avy))
33698 (home-page "https://github.com/abo-abo/swiper")
33699 (synopsis "Avy integration for Ivy")
33701 "This package adds a \"C-'\" binding to Ivy minibuffer that uses Avy.")
33702 (license license:gpl3+)))
33704 (define-public emacs-vertico
33706 (name "emacs-vertico")
33711 (uri (git-reference
33712 (url "https://github.com/minad/vertico")
33714 (file-name (git-file-name name version))
33716 (base32 "0g2zy70gks24g7i4qj1ijx57g016svbymb8l493j81c4bhc88mjl"))))
33717 (build-system emacs-build-system)
33720 (modify-phases %standard-phases
33721 ;; Move the extensions source files to the top level, which is included in
33722 ;; the EMACSLOADPATH.
33723 (add-after 'unpack 'move-source-files
33725 (let ((el-files (find-files "./extensions" ".*\\.el$")))
33726 (for-each (lambda (f)
33727 (rename-file f (basename f)))
33731 (home-page "https://github.com/minad/vertico")
33732 (synopsis "Vertical interactive completion")
33734 "Vertico provides a minimalistic vertical completion UI, which is based
33735 on Emacs' default completion system. By reusing the default system, it
33736 achieves full compatibility with built-in Emacs commands and completion
33737 tables. Vertico is pretty bare-bone and only provides a minimal set of
33738 commands. Additional optional enhancements can be provided externally by
33739 complementary packages.")
33740 (license license:gpl3+)))
33742 (define-public emacs-wisp-mode
33744 (name "emacs-wisp-mode")
33750 (url "https://hg.sr.ht/~arnebab/wisp")
33751 (changeset (string-append "v" version))))
33752 (file-name (git-file-name name version))
33754 (base32 "1hqwdmx081icv516cyndjkwvgr7b41hi5qdaylkv0jran35jwjiw"))))
33755 (build-system emacs-build-system)
33756 (home-page "https://www.draketo.de/software/wisp")
33757 (synopsis "Syntax highlighting and indentation support for Wisp files")
33759 "This package provides @code{wisp-mode}, an Emacs major mode for Wisp
33760 files, providing syntax highlighting and indentation rules.")
33761 (license license:gpl3+)))
33763 (define-public emacs-ivy-hydra
33765 (name "emacs-ivy-hydra")
33770 (uri (string-append
33771 "https://elpa.gnu.org/packages/"
33772 "ivy-hydra-" version ".tar"))
33774 (base32 "06rln9bnq5hli5rqlm47fb68b8llpqrmzwqqv4rn7mx3854i9a5x"))))
33775 (build-system emacs-build-system)
33777 (list emacs-ivy emacs-hydra))
33778 (home-page "https://github.com/abo-abo/swiper")
33779 (synopsis "Additional key bindings for Ivy")
33781 "This package provides the `hydra-ivy/body' command, which is a
33782 quasi-prefix map, with many useful bindings. These bindings are
33783 shorter than usual, using mostly unprefixed keys.")
33784 (license license:gpl3+)))
33786 (define-public emacs-cwl-mode
33788 (name "emacs-cwl-mode")
33793 (uri (git-reference
33794 (url "https://github.com/tom-tan/cwl-mode")
33796 (file-name (git-file-name name version))
33799 "0507acyr9h4646scx316niq27vir6hl2gsgz7wdbiw0cb2drfkd1"))))
33800 (build-system emacs-build-system)
33802 (list emacs-yaml-mode))
33803 (home-page "https://github.com/tom-tan/cwl-mode")
33804 (synopsis "Emacs mode for @acronym{CWL, Common Workflow Language} files")
33805 (description "This package provides a major mode for editing
33806 @acronym{CWL, Common Workflow Language} files.")
33807 (license license:gpl3+)))
33809 (define-public emacs-dictionary
33811 (name "emacs-dictionary")
33816 (uri (git-reference
33817 (url "https://github.com/myrkr/dictionary-el")
33818 (commit (string-append "v" version))))
33819 (file-name (git-file-name name version))
33821 (base32 "0zsjbpq0s0xdxd9r541f04bj1khhgzhdlzr0m4p17zjh1zardbpi"))))
33822 (build-system emacs-build-system)
33823 (home-page "http://www.myrkr.in-berlin.de/dictionary/index.html")
33824 (synopsis "Emacs client for dictionary servers")
33825 (description "This package provides commands for interacting with a
33826 dictionary server (as defined by RFC 2229; by default, the public server at
33827 dict.org) from within Emacs.")
33828 (license license:gpl2+)))
33830 (define-public emacs-multitran
33832 (name "emacs-multitran")
33837 (uri (git-reference
33838 (url "https://github.com/zevlg/multitran.el")
33840 (file-name (git-file-name name version))
33842 (base32 "0zjl7zyydx2pan2ashbwbp70nlmw17hq5w03sfk12wi7j1nihwbz"))))
33843 (build-system emacs-build-system)
33844 (home-page "https://github.com/zevlg/multitran.el")
33845 (synopsis "Emacs interface to the multitran.com online dictionary")
33846 (description "@code{emacs-multitran} is a zero-dependency Emacs interface
33847 to the @url{https://multitran.com} online dictionary.")
33848 (license license:gpl3+)))
33850 (define-public emacs-blacken
33852 (name "emacs-blacken")
33859 (url "https://github.com/pythonic-emacs/blacken")
33860 (commit (string-append "v" version))))
33861 (file-name (git-file-name name version))
33863 (base32 "0pf9yllx0h78m925sdrg6hbv54ky2pi7cpkdsnx891qjsahvjnpy"))))
33864 (build-system emacs-build-system)
33866 (list python-black))
33869 (modify-phases %standard-phases
33870 (add-after 'unpack 'patch-python-black
33871 (lambda* (#:key inputs #:allow-other-keys)
33872 (make-file-writable "blacken.el")
33873 (emacs-substitute-variables "blacken.el"
33874 ("blacken-executable"
33875 (search-input-file inputs "/bin/black"))))))))
33876 (home-page "https://github.com/pythonic-emacs/blacken")
33877 (synopsis "Python Black for Emacs")
33879 "Use the @command{python} @command{black} package to reformat
33880 @command{python} buffers.")
33881 (license license:gpl3)))
33883 (define-public emacs-code-cells
33884 ;; XXX: Upstream does not tag releases. The commit below matches version
33886 (let ((commit "fd68a33eb43b3cbd44fed767f48e230382903592"))
33888 (name "emacs-code-cells")
33893 (uri (git-reference
33894 (url "https://github.com/astoff/code-cells.el")
33896 (file-name (git-file-name name version))
33898 (base32 "072d5vldjfg9mj4a86bw8xmxl3hmywsnx4f2k6nayqy4whry5fmq"))))
33899 (build-system emacs-build-system)
33900 (home-page "https://github.com/astoff/code-cells.el")
33901 (synopsis "Emacs utilities for code split into cells, including Jupyter
33903 (description "This package lets you efficiently navigate, edit and
33904 execute code split into cells according to certain magic comments.")
33905 (license license:gpl3+))))
33907 (define-public emacs-kibit-helper
33909 (name "emacs-kibit-helper")
33914 (uri (git-reference
33915 (url "https://github.com/brunchboy/kibit-helper")
33916 (commit (string-append "v" version))))
33917 (file-name (git-file-name name version))
33919 (base32 "0ky167xh1hrmqsldybzjhyqjizgjzs1grn5mf8sm2j9qwcvjw2zv"))))
33920 (build-system emacs-build-system)
33923 (home-page "http://www.github.com/brunchboy/kibit-helper")
33924 (synopsis "Use the Kibit Leiningen plugin from Emacs")
33926 "Kibit Helper provides functions to work with the Kibit Leiningen plugin
33927 for detecting and improve non-idiomatic Clojure source code.")
33928 (license license:gpl3+)))
33930 (define-public emacs-mint-mode
33932 (name "emacs-mint-mode")
33937 (uri (git-reference
33938 (url "https://github.com/creatorrr/emacs-mint-mode")
33939 (commit (string-append "v" version))))
33940 (file-name (git-file-name name version))
33942 (base32 "0fwxhkkhvbwdxrg9j9pjgkh864fa8rvc6dcr46a69spyjja3rw90"))))
33943 (build-system emacs-build-system)
33944 (home-page "https://github.com/creatorrr/emacs-mint-mode")
33945 (synopsis "Major mode for Mint language")
33946 (description "Mint mode provides syntax highlighting for Mint language.")
33947 (license license:gpl3+)))
33949 (define-public emacs-seeing-is-believing
33950 (let ((version "1.2.0") ; from .el file
33951 (commit "fbbe246c0fda87bb26227bb826eebadb418a220f")
33954 (name "emacs-seeing-is-believing")
33955 (home-page "https://github.com/jcinnamond/seeing-is-believing")
33956 (version (git-version version revision commit))
33960 (uri (git-reference
33963 (file-name (git-file-name name version))
33966 "1h1b48s2iirswdlvfz41jbflm4x09ksc2lycrc1awzlwd6r8hdhg"))))
33967 (build-system emacs-build-system)
33969 "Minor mode for running the seeing-is-believing Ruby gem")
33971 "@uref{https://github.com/JoshCheek/seeing_is_believing,Seeing Is
33972 Believing} is a ruby gem to evaluate Ruby code, recording the results of each
33973 line. This minor mode provides an easy way to run it from Emacs on the
33974 current region or entire buffer.")
33975 (license license:gpl3+))))
33977 (define-public emacs-nasm-mode
33979 (name "emacs-nasm-mode")
33984 (uri (git-reference
33985 (url "https://github.com/skeeto/nasm-mode")
33987 (file-name (git-file-name name version))
33990 "1dyc50a1zskx9fqxl2iy2x74f3bkb2ccz908v0aj13rqfqqnns9j"))))
33991 (build-system emacs-build-system)
33992 (home-page "https://github.com/skeeto/nasm-mode")
33993 (synopsis "NASM x86 assembly major mode")
33995 "NASM mode is a major mode for editing NASM x86 assembly programs.
33996 It includes syntax highlighting, automatic indentation, and imenu integration.
33997 Unlike Emacs' generic ASM mode, it understands NASM-specific syntax.")
33998 (license license:unlicense)))
34000 (define-public emacs-validate-html
34001 ;; XXX: Upstream did not tag commits yet. However, commit below matches the
34002 ;; last version bump. Version is extracted from the keyword in main file.
34003 (let ((commit "748e874d50c3a95c61590ae293778e26de05c5f9"))
34005 (name "emacs-validate-html")
34012 (url "https://github.com/arthurgleckler/validate-html")
34014 (file-name (git-file-name name version))
34016 (base32 "0b2b5dm85jwgkqvga23r3vfya07vxv2n7a3a6r1pxpk8asqlw41c"))))
34017 (build-system emacs-build-system)
34018 (home-page "https://github.com/arthurgleckler/validate-html")
34019 (synopsis "Run the W3C HTML Validator directly from Emacs")
34021 "@command{emacs-validate-html} installs the command @code{validate-html},
34022 which sends the current buffer to the World Wide Web Consortium’s HTML
34023 Validator service and displays the results in a buffer in Compilation mode.")
34024 (license license:gpl3+))))
34026 (define-public emacs-volatile-highlights
34027 ;; XXX: Upstream does not tag releases. Commit below matches version bump.
34028 (let ((commit "9a20091f0ce7fc0a6b3e641a6a46d5f3ac4d8392"))
34030 (name "emacs-volatile-highlights")
34034 (uri (git-reference
34035 (url "http://github.com/k-talo/volatile-highlights.el")
34037 (file-name (git-file-name name version))
34040 "1dsa6769lphyyv7yg92vkkpk395w52q4m7hdn8xy7s6lh5c6a955"))))
34041 (build-system emacs-build-system)
34042 (home-page "http://github.com/k-talo/volatile-highlights.el")
34043 (synopsis "Emacs minor mode for visual feedback on some operations")
34044 (description "@code{volatile-highlights-mode} brings visual feedback to
34045 some operations by highlighting portions relating to the operations. All of
34046 highlights made by this library will be removed when any new operation is
34048 (license license:gpl3+))))
34050 (define-public emacs-global-tags
34051 (let ((commit "06db25d91cc8bfb5e24e02adc04de1226c7e742d")
34054 (name "emacs-global-tags")
34055 (version (git-version "0.7" revision commit))
34056 (home-page "https://git.launchpad.net/global-tags.el/")
34059 (uri (git-reference
34062 (file-name (git-file-name name version))
34065 "1q30cbqq0h1gfwlcbnx9s930li7w7a0y8sx2ivbvvyyc2j5gsk4j"))))
34066 (build-system emacs-build-system)
34068 (list emacs-async emacs-ht))
34069 (synopsis "Testeable Emacs Lisp API that wraps around GNU Global")
34070 (description "This package provides a testeable Emacs Lisp API that
34071 wraps GNU Global calls and integration to editor using this API with
34072 project.el and xref.el.")
34073 (license license:gpl3+))))
34075 (define-public emacs-seq
34082 (uri (string-append "https://elpa.gnu.org/packages/seq-" version ".tar"))
34084 (base32 "1lbxnrzq88z8k9dyylg2636pg9vc8bzfprs1hxwp9ah0zkvsn52p"))))
34085 (build-system emacs-build-system)
34086 (home-page "https://elpa.gnu.org/packages/seq.html")
34087 (synopsis "Sequence manipulation functions")
34089 "This Emacs package provides sequence manipulation functions that
34090 complement basic functions provided by @file{subr.el}. All its functions
34091 are prefixed with @code{seq-} and work on lists, strings, and vectors.")
34092 (license license:gpl3+)))
34094 (define-public emacs-setup
34096 (name "emacs-setup")
34101 (uri (string-append "https://elpa.gnu.org/packages/setup-"
34104 (base32 "1sr514w4mn0fbdawjb5p0fd6i6q2zi9737rbwcgakb1l9cqvb5qy"))))
34105 (build-system emacs-build-system)
34106 (home-page "https://git.sr.ht/~pkal/setup")
34107 (synopsis "Helpful configuration macro")
34109 "The @code{setup} macro simplifies repetitive configuration patterns, by
34110 providing context-sensitive local macros in @code{setup} bodies. These macros
34111 can be mixed with regular elisp code without any issues, allowing for
34112 flexible and terse configurations. The list of local macros can be
34113 extended by the user via @code{setup-define}. A list of currently known
34114 local macros are documented in the docstring for @code{setup}.")
34115 (license license:gpl3+)))
34117 (define-public emacs-tomelr
34119 (name "emacs-tomelr")
34124 (uri (git-reference
34125 (url "https://github.com/kaushalmodi/tomelr/")
34126 (commit (string-append "v" version))))
34128 (base32 "03iih7arjlfg8gdp4v2xglas9z519q1s11l28igr8l0m5y0pdrnk"))
34129 (file-name (git-file-name name version))))
34130 (build-system emacs-build-system)
34131 (propagated-inputs (list emacs-map emacs-seq))
34132 (home-page "https://github.com/kaushalmodi/tomelr/")
34133 (synopsis "Emacs-Lisp library for converting S-expressions to TOML")
34135 "This package provides the @code{tomelr-encode} function to convert a Lisp
34136 data expression in Alist or Plist format to a TOML string.")
34137 (license license:gpl3+)))
34139 (define-public emacs-ed-mode
34140 ;; XXX: Upstream did not tag any commits yet.
34141 (let ((commit "69f4fb34eca8df6a3bfe24bd8d8075551f0264ac")
34144 (name "emacs-ed-mode")
34145 (version (git-version "0" revision commit))
34151 (url "https://github.com/ryanprior/ed-mode")
34153 (file-name (git-file-name name version))
34155 (base32 "058siccx6znw1bcp820bll0jg300xz8w1wf97zr1fa6jwfxyhhvi"))))
34156 (build-system emacs-build-system)
34157 (home-page "https://github.com/ryanprior/ed-mode")
34158 (synopsis "Emacs ed emulation")
34160 "@code{ed-mode} lets you interact with Emacs buffers like you would do
34161 with the ed editor.")
34162 (license license:gpl3+))))
34164 (define-public emacs-alsamixer-el
34166 (name "emacs-alsamixer-el")
34173 (url "https://github.com/remvee/alsamixer-el")
34175 (file-name (git-file-name name version))
34177 (base32 "0c40vycphv5nf374rp8pnzvi50vlmgab3wrdq92hyprjw76gwxhk"))))
34178 (build-system emacs-build-system)
34179 (home-page "https://github.com/remvee/alsamixer-el")
34180 (synopsis "Emacs interface to amixer")
34181 (description "@code{emacs-alsamixer-el} provides basic commands to control
34182 audio volume via amixer.")
34183 (license license:gpl3+)))
34185 (define-public emacs-fennel-mode
34186 ;; XXX: Commit below refers to the un-tagged latest release.
34187 (let ((commit "b3c52964eda7c0267f6e3f0ad6c690c3a1e89da1"))
34189 (name "emacs-fennel-mode")
34194 (uri (git-reference
34195 (url "https://git.sr.ht/~technomancy/fennel-mode")
34197 (file-name (git-file-name name version))
34199 (base32 "1yib626wi7xiairzqkk96s99p1q7mmr2y5v78bv01h5d7h12sdgq"))))
34200 (build-system emacs-build-system)
34201 (home-page "https://git.sr.ht/~technomancy/fennel-mode")
34202 (synopsis "Emacs major-mode for editing Fennel code")
34204 "Fennel mode provides font-lock, indentation, navigation, and REPL for
34205 Fennel code within Emacs.")
34206 (license license:gpl3+))))
34208 (define-public emacs-org-modern
34210 (name "emacs-org-modern")
34215 (uri (git-reference
34216 (url "https://github.com/minad/org-modern")
34219 (base32 "0bqps8dpvqd2dfw3bamnnf1ikvd48vn8hgb08975f0wski54xh5n"))
34220 (file-name (git-file-name name version))))
34221 (build-system emacs-build-system)
34222 (home-page "https://github.com/minad/org-modern")
34223 (synopsis "Modern Org Style")
34225 "@code{emacs-org-modern} implements a modern style for your Org
34226 buffers using font locking and text properties. The package styles
34227 headlines, keywords, tables and source blocks.")
34228 (license license:gpl3+)))
34230 (define-public emacs-pyimport
34231 (let ((commit "a6f63cf7ed93f0c0f7c207e6595813966f8852b9")
34234 (name "emacs-pyimport")
34235 (version (git-version "1.1" revision commit))
34241 (url "https://github.com/Wilfred/pyimport")
34243 (file-name (git-file-name name version))
34245 (base32 "1q5gqhvh4zq5dy8vns694warcz48j1hdnxg16sjck4gsi9xivbvs"))))
34246 (build-system emacs-build-system)
34248 (list python-pyflakes))
34250 (list emacs-dash emacs-s emacs-shut-up))
34253 #~(modify-phases %standard-phases
34254 (add-after 'unpack 'patch-pyflakes-executable
34255 (lambda* (#:key inputs #:allow-other-keys)
34256 (let ((pyflakes (search-input-file inputs "/bin/pyflakes")))
34257 (make-file-writable "pyimport.el")
34258 (substitute* "pyimport.el"
34260 (string-append "\"" pyflakes)))))))))
34261 (home-page "https://github.com/Wilfred/pyimport")
34262 (synopsis "Manage Python imports from Emacs")
34264 "@code{emacs-pyimport} manages python imports from Emacs via @code{python-pyflakes}.")
34265 (license license:gpl3+)))) ; License is in pyimport.el
34267 (define-public emacs-straight-el
34268 (let ((commit "f21103d97d180fba0b6e2e86ebb0b6269219ef2c")
34271 (name "emacs-straight-el")
34272 (version (git-version "0" revision commit))
34278 (url "https://github.com/radian-software/straight.el")
34280 (file-name (git-file-name name version))
34282 (base32 "1dqhb7kx4hr3cm4gj6qdk9aav05vc016y4nks2dj1sy88wia6wsv"))))
34283 (build-system emacs-build-system)
34288 #~(list "emacs" "-Q" "--batch"
34291 "--load" "tests/straight-test.el"
34292 "--eval" "(progn (require 'straight-ert-print-hack) (ert-run-tests-batch-and-exit))")
34294 #~(modify-phases %standard-phases
34295 (add-after 'unpack 'patch-git-executable
34296 (lambda* (#:key inputs #:allow-other-keys)
34297 (make-file-writable "straight.el")
34298 (substitute* "straight.el"
34300 (string-append "\""
34301 (search-input-file inputs "/bin/git")
34303 (add-after 'check 'delete-tests
34304 ;; "tests" directory includes bogus ".el" files that can make
34305 ;; `patch-el-files' phase fail.
34307 (delete-file-recursively "tests"))))))
34313 (list emacs-magit))
34314 (home-page "https://github.com/radian-software/straight.el/")
34315 (synopsis "Purely functional package manager for the Emacs hacker")
34317 "@code{emacs-straight-el} is a purely functional package manager for the Emacs
34319 (license license:expat))))
34321 (define-public emacs-osm
34325 (home-page "https://github.com/minad/osm")
34328 (uri (git-reference
34331 (file-name (git-file-name name version))
34334 "0iacf3mqjq8vfhd0nyzry0spishyvn92zgd55ivqxb9xfdr3lx9x"))))
34335 (build-system emacs-build-system)
34337 (list #:phases #~(modify-phases %standard-phases
34338 (add-after 'unpack 'set-curl-file-name
34339 (lambda* (#:key inputs #:allow-other-keys)
34340 (substitute* "osm.el"
34341 (("\"curl( ?)\"" _ space)
34342 (string-append "\""
34343 (search-input-file inputs
34346 (add-after 'install 'makeinfo
34350 "--eval=(require 'ox-texinfo)"
34351 "--eval=(setq org-export-with-broken-links t)"
34352 "--eval=(find-file \"README.org\")"
34353 "--eval=(org-texinfo-export-to-info)")
34354 (install-file "osm.info"
34355 (string-append #$output
34356 "/share/info")))))))
34357 (inputs (list curl))
34358 (native-inputs (list texinfo))
34359 (synopsis "OpenStreetMap viewer for Emacs")
34361 "This package provides an OpenStreetMap viewer for Emacs, featuring
34362 zoomable and moveable map display, display of tracks and POIs from GPX files,
34363 parallel fetching of tiles with cURL, and more.")
34364 (license license:gpl3+)))
34366 (define-public emacs-corfu-terminal
34368 (name "emacs-corfu-terminal")
34375 (url "https://codeberg.org/akib/emacs-corfu-terminal")
34376 (commit (string-append "v" version))))
34377 (file-name (git-file-name name version))
34379 (base32 "15pwv48v6plvc33715x1j1g6vf53ds4880ly5h96x2idffh7fncl"))))
34380 (build-system emacs-build-system)
34381 (propagated-inputs (list emacs-corfu emacs-popon))
34382 (home-page "https://codeberg.org/akib/emacs-corfu-terminal/")
34383 (synopsis "Replace corfu child frames with popups")
34385 "This package replaces the child frames @code{emacs-corfu} uses
34386 with popups, which also work in the terminal.")
34387 (license license:gpl3+)))
34389 (define-public emacs-corfu-doc-terminal
34390 ;; Upstream does not tag releases, version taken from package header.
34391 (let ((commit "d8945c64b52d76e864b767b3048674f222daf80b")
34394 (name "emacs-corfu-doc-terminal")
34395 (version (git-version "0.5" revision commit))
34401 (url "https://codeberg.org/akib/emacs-corfu-doc-terminal")
34403 (file-name (git-file-name name version))
34405 (base32 "0j0dd8np5x93wic22bc5i9h7bq2gj700n4fh11dzzgsj14lv2r5k"))))
34406 (build-system emacs-build-system)
34408 (list emacs-corfu emacs-corfu-doc emacs-corfu-terminal emacs-popon))
34409 (home-page "https://codeberg.org/akib/emacs-corfu-doc-terminal/")
34410 (synopsis "Replace corfu docmentation child frames with popups")
34412 "This package replaces the child frames @code{emacs-corfu-doc} uses
34413 with popups, which also work in the terminal.")
34414 (license license:gpl3+))))
34416 (define-public emacs-popon
34418 (name "emacs-popon")
34425 (url "https://codeberg.org/akib/emacs-popon")
34426 (commit (string-append "v" version))))
34427 (file-name (git-file-name name version))
34429 (base32 "0wkydg326ql8cvvmibq1nf6y40d1b0ax0p892pwncmi7awnf20gr"))))
34430 (build-system emacs-build-system)
34431 (home-page "https://codeberg.org/akib/emacs-popon/")
34432 (synopsis "Pop floating text on a window")
34434 "@code{emacs-popon} allows you to pop text on a window, what we call
34435 a popon. Popons are window-local and sticky, they don't move while
34436 scrolling, and they even don't go away when switching buffer, but you
34437 can bind a popon to a specific buffer to only show on that buffer.")
34438 (license license:gpl3+)))
34440 (define-public emacs-consult-lsp
34442 (name "emacs-consult-lsp")
34447 (uri (git-reference
34448 (url "https://github.com/gagbo/consult-lsp")
34450 (file-name (git-file-name name version))
34452 (base32 "0bnq8jahcyjsai1y4ngdq08y77m1hn78h3p48czr7sg907nr42yh"))))
34453 (build-system emacs-build-system)
34454 (propagated-inputs (list emacs-consult emacs-lsp-mode emacs-f))
34455 (home-page "https://github.com/gagbo/consult-lsp/")
34456 (synopsis "LSP mode and Consult helping each other")
34458 "@code{emacs-consult-lsp} provides helpers for interactively selecting LSP
34459 workspace diagnostics, symbols, and file symbols from @{emacs-lsp-mode}
34460 by leveraging @code{emacs-consult} APIs.")
34461 (license license:expat)))
34463 (define-public emacs-purs-mode
34464 ;; XXX: Upstream set no tag nor any Version keyword. Using 0 as the base
34466 (let ((commit "16553383915cf453747a491715ed0427c107cc9e")
34469 (name "emacs-purs-mode")
34470 (version (git-version "0" revision commit))
34476 (url "https://github.com/PureFunctor/purs-mode")
34478 (file-name (git-file-name name version))
34480 (base32 "0174p0g38jd34jwpww7zgh48i3lkhqrnrxz8ca09idz4adri38z7"))))
34481 (build-system emacs-build-system)
34482 (home-page "https://github.com/PureFunctor/purs-mode/")
34483 (synopsis "PureScript major mode for Emacs")
34485 "Purs mode provides a PureScript major mode for Emacs.")
34486 (license license:gpl3+))))
34488 (define-public emacs-pdb-capf
34489 (let ((commit "31602ccab53aa7dcf26a1af222c7da2bcc1390ed")
34492 (name "emacs-pdb-capf")
34493 (version (git-version "1.0" revision commit))
34499 (url "https://github.com/muffinmad/emacs-pdb-capf")
34501 (file-name (git-file-name name version))
34503 (base32 "0x2pg03csf25vj8y2zb5sv493dk3n0s4xbkihii2mzhkx82vgpxg"))))
34504 (build-system emacs-build-system)
34505 (home-page "https://github.com/muffinmad/emacs-pdb-capf")
34506 (synopsis "Completion-at-point function for pdb")
34508 "@code{emacs-pdb-capf} provides a @code{completion-at-point} function
34509 for pdb allowing completion in a @code{*gud-pdb*} buffer.")
34510 (license license:gpl3+))))
34512 (define-public emacs-bitbake-modes
34514 (name "emacs-bitbake-modes")
34519 (uri (git-reference
34520 (url "https://bitbucket.org/olanilsson/bitbake-modes")
34521 (commit (string-append "v" version))))
34523 (base32 "1580cfpfmsjwiq6v2vsqjwhzj9m4lrhhf3nffmbzp36r6q5n8611"))
34524 (file-name (git-file-name name version))))
34525 (build-system emacs-build-system)
34526 (propagated-inputs (list emacs-mmm-mode))
34527 (home-page "https://bitbucket.org/olanilsson/bitbake-modes")
34528 (synopsis "Emacs major modes for bitbake")
34530 "@code{emacs-bitbake-modes} is a collection of major modes and tools that can
34531 be useful when working with the bitbake files in Yocto and OpenEmbedded
34533 (license license:gpl3+)))
34535 (define-public emacs-vundo
34537 (name "emacs-vundo")
34541 (uri (string-append "https://elpa.gnu.org/packages/vundo-"
34545 "032aqcqq2xhh12qcpp8p3qldv0r9cnqr2y11jk1m5cvgal1cbb68"))))
34546 (build-system emacs-build-system)
34547 (home-page "https://github.com/casouri/vundo")
34548 (synopsis "Visualize the undo tree")
34550 "Vundo (visual undo) displays the undo history as a tree and lets you move in the
34551 tree to go back to previous buffer states. To use vundo, type @kbd{M-x vundo RET} in
34552 the buffer you want to undo. An undo tree buffer should pop up.")
34553 (license license:gpl3+)))
34555 (define-public emacs-hare-mode
34556 ;; XXX: Upstream did not tag any commit. Using "Version:" keyword as base
34558 (let ((commit "bb7b2faccb5939b0c8d4ffa6a6e28a0d2bc93dd6")
34561 (name "emacs-hare-mode")
34562 (version (git-version "0.1.0" revision commit))
34565 (uri (git-reference
34566 (url "https://git.sr.ht/~bbuccianti/hare-mode")
34568 (file-name (git-file-name name version))
34571 "13vjlmxfgwiljzjwkzhxzz565y34fggsbp840bxlwbwa6lsfrsa8"))))
34572 (build-system emacs-build-system)
34573 (home-page "https://git.sr.ht/~bbuccianti/hare-mode")
34574 (synopsis "Hare major mode for Emacs")
34576 "This package an Emacs major mode for the Hare programming language.")
34577 (license license:gpl3+))))
34579 (define-public emacs-org-cliplink
34580 (let ((commit "13e0940b65d22bec34e2de4bc8cba1412a7abfbc")
34583 (name "emacs-org-cliplink")
34584 (version (git-version "0.2" revision commit))
34590 (url "https://github.com/rexim/org-cliplink")
34592 (file-name (git-file-name name version))
34594 (base32 "1avyiw8vlv4n1r7zqvc6wjlsz7jl2pqaprzpm782gzp0c999pssl"))))
34595 (build-system emacs-build-system)
34599 #:test-command #~(list "ert-runner")
34601 #~(modify-phases %standard-phases
34602 (add-after 'unpack 'patch-curl-executable
34603 (lambda* (#:key inputs #:allow-other-keys)
34604 (substitute* "org-cliplink-transport.el"
34605 (("\\(executable-find \"curl\"\\)")
34606 (let ((curl (search-input-file inputs "/bin/curl")))
34607 (string-append "\"" curl "\"")))))))))
34609 (list emacs-el-mock emacs-ert-runner emacs-undercover))
34612 (home-page "https://github.com/rexim/org-cliplink/")
34613 (synopsis "Insert Org mode links from the clipboard")
34615 "Org Cliplink provides a simple command that takes a URL from the
34616 clipboard and inserts an Org mode link with a title of a page found by the URL
34617 into the current buffer.")
34618 (license license:expat))))
34620 (define-public emacs-flymake-mypy
34621 (let ((commit "d79e158f9ed3065ab692cd0d4048aac985c4fecd")
34624 (name "emacs-flymake-mypy")
34628 (uri (git-reference
34629 (url "https://github.com/com4/flymake-mypy")
34631 (file-name (git-file-name name version))
34634 "1zaa2kljsmm13layqmb7dwd7l2x3a5ymzzmzjjhykc67kbyjvvkk"))))
34635 (build-system emacs-build-system)
34636 (home-page "https://github.com/com4/flymake-mypy")
34637 (synopsis "Flymake checker for mypy")
34639 "This package provides Flymake support for Python static type checking
34641 (license license:bsd-2))))
34643 (define-public emacs-mpv
34644 ;; No release since Dec 28, 2021.
34645 (let ((commit "2e0234bc21a3dcdf12d94d3285475e7f6769d3e8")
34649 (version (git-version "0.2.0" revision commit))
34653 (uri (git-reference
34654 (url "https://github.com/kljohann/mpv.el")
34656 (file-name (git-file-name name version))
34658 (base32 "0mvzg2wqpycny2dmiyp8jm0fflvll7ay6scvsb9rxgfwimr2vbw5"))))
34659 (build-system emacs-build-system)
34662 #:tests? #f ;there are no tests
34664 #~(modify-phases %standard-phases
34665 (add-after 'set-mpv-el-version 'patch-exec-paths
34666 (lambda* (#:key inputs #:allow-other-keys)
34667 (emacs-substitute-variables "mpv.el"
34669 (search-input-file inputs "/bin/mpv"))))))))
34670 (inputs (list mpv))
34671 (home-page "https://github.com/kljohann/mpv.el/")
34672 (synopsis "Control MPV for easy note taking")
34674 "This package is a potpourri of helper functions to control a MPV
34675 process via its IPC interface.")
34676 (license license:gpl3+))))
34678 (define-public emacs-apel-lb
34679 ;; No release since Jun 15, 2010.
34680 (let ((version "10.8") ;tag chise-base-0_25
34682 (commit "82eb2325bd149dc57b43a9ce9402c6c6183e4052"))
34684 (name "emacs-apel-lb")
34685 (version (git-version version revision commit))
34688 (uri (git-reference
34689 (url "https://github.com/wanderlust/apel")
34691 (file-name (git-file-name name version))
34694 "0qiw19pn1cs8y571irw7bjdygkvwan9ch2i1dg139dri4b6q1il6"))))
34695 (build-system emacs-build-system)
34696 (home-page "https://www.emacswiki.org/emacs/WanderLust")
34697 (synopsis "Library for making portable Emacs Lisp programs")
34699 "A Portable Emacs Library (APEL) is a library for making portable Emacs
34700 Lisp programs. APEL-LB is a variant of APEL, which features supports to
34702 (license license:gpl2+))))
34704 (define-public emacs-flim-lb
34705 ;; No release since Nov 28, 2007.
34706 (let ((version "1.14.9")
34708 (commit "57c6b868aa314717f40a520daed7249665e8d992"))
34710 (name "emacs-flim-lb")
34711 (version (git-version version revision commit))
34714 (uri (git-reference
34715 (url "https://github.com/wanderlust/flim")
34717 (file-name (git-file-name name version))
34720 "1mf8r5mf3bd0719fnhifb6lfvl7n4m552crcdhkbkkif8srrl6df"))))
34721 (build-system emacs-build-system)
34722 (propagated-inputs (list emacs-apel-lb emacs-oauth2))
34723 (home-page "https://www.emacswiki.org/emacs/WanderLust")
34725 "Library for basic features about message representation or encoding")
34727 "FLIM is a library to provide basic features about message representation
34728 or encoding. FLIM-LB is a variant of FLIM, which features supports to latest
34730 (license license:gpl2+))))
34732 (define-public emacs-semi-epg
34733 ;; No release since Dec 24, 2003.
34734 (let ((version "1.14.6")
34736 (commit "ac3e726ca94ed245c25881ec8d7177d0d834ea6a"))
34738 (name "emacs-semi-epg")
34739 (version (git-version version revision commit))
34742 (uri (git-reference
34743 (url "https://github.com/wanderlust/semi")
34745 (file-name (git-file-name name version))
34748 "1bg07y6svvg1mmlr455x3j1anjp3wbv27s6b2inp294rbwprm41n"))))
34749 (build-system emacs-build-system)
34750 (propagated-inputs (list emacs-bbdb-vcard emacs-flim-lb))
34751 (home-page "https://www.emacswiki.org/emacs/WanderLust")
34752 (synopsis "Library to provide MIME feature for GNU Emacs")
34754 "SEMI is a package for GNU Emacs to provide features related with MIME
34755 user interface. SEMI-EPG is a variant of SEMI, which features supports to
34756 EasyPG and latest Emacs.")
34757 (license license:gpl2+))))
34759 (define-public emacs-wanderlust
34760 ;; No release since Jan 15, 2010.
34761 ;; FIXME: Building with emacs-next-pgtk would yield a void variable related
34762 ;; macro-expansion failure at runtime, so don't rewrite emacs input of this
34764 (let ((version "2.15.9")
34766 (commit "f5cb2f0cf5e2c893acf2e669fd549836828dfdfc"))
34768 (name "emacs-wanderlust")
34769 (version (git-version version revision commit))
34772 (uri (git-reference
34773 (url "https://github.com/wanderlust/wanderlust")
34775 (file-name (git-file-name name version))
34776 (modules '((guix build utils)))
34778 '(begin (substitute* "WL-CFG"
34780 (string-append "(setq wl-install-utils t)" "\n"
34781 "(setq WL_PREFIX \"\")" "\n"
34782 "(setq ELMO_PREFIX \"\")" "\n")))
34783 (substitute* "Makefile"
34784 (("package-user-dir") "NONE"))))
34787 "1ijs57wv1vrh33vn311hgkp42vlmjyi998nc4qdrqi7yy9j8hl1h"))))
34788 (build-system emacs-build-system)
34791 #~(modify-phases %standard-phases
34792 (add-after 'expand-load-path 'chdir-elmo
34795 (add-after 'chdir-elmo 'expand-load-path-elmo
34796 (assoc-ref %standard-phases 'expand-load-path))
34797 (add-after 'expand-load-path-elmo 'chdir-utils
34799 (chdir "../utils")))
34800 (add-after 'chdir-utils 'expand-load-path-utils
34801 (assoc-ref %standard-phases 'expand-load-path))
34802 (add-after 'expand-load-path-utils 'chdir-wl
34805 (add-after 'chdir-wl 'expand-load-path-wl
34806 (assoc-ref %standard-phases 'expand-load-path))
34807 (add-after 'expand-load-path-wl 'change-directory
34810 (add-after 'install 'install-via-makefile
34811 (lambda* (#:key inputs #:allow-other-keys)
34812 (let ((emacs (search-input-file inputs "/bin/emacs"))
34813 (lispdir (elpa-directory #$output))
34814 (infodir (string-append #$output "/share/info")))
34815 (for-each mkdir-p (list lispdir infodir))
34816 (substitute* "Makefile"
34817 (("(EMACS\t= )emacs" all m)
34818 (string-append m emacs))
34819 (("(LISPDIR = )NONE" all m)
34820 (string-append m lispdir))
34821 (("(PIXMAPDIR = )NONE" all m)
34822 (string-append m lispdir "/icons"))
34823 (("(INFODIR = )NONE" all m)
34824 (string-append m infodir))))
34825 (invoke "make" "install")
34826 (invoke "make" "install-info"))))))
34827 (propagated-inputs (list emacs-semi-epg))
34828 (home-page "https://www.emacswiki.org/emacs/WanderLust")
34829 (synopsis "Yet Another Message Interface on Emacsen")
34831 "Wanderlust is an mail/news management system on Emacsen. It supports
34832 IMAP4rev1(RFC2060), NNTP, POP and local message files.
34834 The main features of Wanderlust:
34837 @item Pure elisp implementation.
34838 @item Supports IMAP4rev1, NNTP, POP(POP3/APOP), MH and Maildir format.
34839 @item Unified access method to messages based on Mew-like Folder Specification.
34840 @item Mew-like Key-bind and mark handling.
34841 @item Manages unread messages.
34842 @item Interactive thread display.
34843 @item Folder Mode shows the list of subscribed folders.
34844 @item Message Cache, Disconnected Operation.
34845 @item MH-like FCC (Fcc: %Backup and Fcc: $Backup is allowed).
34846 @item MIME compliant (by SEMI).
34847 @item Transmission of news and mail are unified by Message transmitting draft.
34848 @item Graphical list of folders.
34849 @item View a part of message without retrieving the whole message (IMAP4).
34850 @item Server-side message look up (IMAP4), multi-byte characters are allowed.
34851 @item Virtual Folders.
34852 @item Supports compressed folder using common archiving utilities.
34853 @item Old articles in folders are automatically removed/archived (Expiration).
34854 @item Automatic re-file.
34855 @item Template function makes it convenient to send fixed form messages.
34857 (license license:gpl2+))))
34859 (define-public emacs-waveform
34860 ;; XXX: Upstream provides no Version keyword. Using 0 as base version.
34861 (let ((commit "ee52c6a72b3e9890743e3a6e2fc1f3195f5687b2")
34864 (name "emacs-waveform")
34865 (version (git-version "0" revision commit))
34869 (uri (git-reference
34870 (url "https://github.com/sachac/waveform-el")
34872 (file-name (git-file-name name version))
34874 (base32 "082ls7khd22fjwnk7h1zxrmqqcmxqh2wx2vljlxhjh9bcp1y2pyr"))))
34875 (build-system emacs-build-system)
34878 #:tests? #f ;there are no tests
34880 #~(modify-phases %standard-phases
34881 (add-after 'set-waveform-el-version 'patch-exec-paths
34882 (lambda* (#:key inputs #:allow-other-keys)
34883 (emacs-substitute-variables "waveform.el"
34884 ("waveform-ffmpeg-executable"
34885 (search-input-file inputs "/bin/ffmpeg"))))))))
34886 (inputs (list ffmpeg))
34887 (propagated-inputs (list emacs-mpv))
34888 (home-page "https://github.com/sachac/waveform-el/")
34889 (synopsis "Display a waveform and use it to navigate")
34891 "This package displays a waveform of a sound file. You can then play or
34892 navigate through it.")
34893 (license license:gpl3+))))
34895 (define-public emacs-project-x
34896 ;; There is no proper release.
34897 ;; The base version is extracted from the README.org.
34898 (let ((revision "0")
34899 (commit "0b78f4e33b994612fcb305b3cf6d3b1e3b62cea7"))
34901 (name "emacs-project-x")
34902 (version (git-version "0.1.6" revision commit))
34908 (url "https://github.com/karthink/project-x")
34910 (file-name (git-file-name name version))
34912 (base32 "1xxzxxm0jila5s9sfay6ywj2j8pyz4wwcrycvnrrzh0vxcsgzf9s"))))
34913 (build-system emacs-build-system)
34914 (home-page "https://github.com/karthink/project-x")
34915 (synopsis "Enhancement to Emacs built-in Project library")
34917 "Project-X provides convenience features for Emacs' Project library.
34918 In particular, it saves and restores project files and window configurations
34920 (license license:gpl3+))))
34922 (define-public emacs-vertico-posframe
34924 (name "emacs-vertico-posframe")
34928 (uri (string-append
34929 "https://elpa.gnu.org/packages/vertico-posframe-" version
34933 "1cwi26jz9dn8la6zxxai2pfkcpz8lwf4cd8hr44lak6x0ca9bwr3"))))
34934 (build-system emacs-build-system)
34935 (propagated-inputs (list emacs-posframe emacs-vertico))
34936 (home-page "https://github.com/tumashu/vertico-posframe")
34937 (synopsis "Pop up a frame at point to show vertical completion UI")
34939 "Vertico is an Emacs package that provides a vertical completion UI based
34940 on the default completion system. Posframe is an Emacs package that provides
34941 a way to pop up a frame at point. Vertico-posframe is an Emacs package and
34942 a Vertico extension which provides a way to pop up a frame at point to show
34943 a vertical completion UI.")
34944 (license license:gpl3+)))
34947 ;;; Avoid adding new packages to the end of this file. To reduce the chances
34948 ;;; of a merge conflict, place them above by existing packages with similar
34949 ;;; functionality or similar names.